计算机组成原理

引子

王天下有三重焉,其寡过矣乎!

上焉者虽善,无征。无征,不信。不信,民弗从。下焉者虽善,不尊。不尊,不信。不信,民弗从。

故君子之道,本诸民,徵诸庶民。考诸三王而缪,建诸天地而不悖。质诸鬼神而无疑。百世以俟圣人而不惑。

质鬼神而无疑,知天也。百世以俟圣人而不惑,知人也。

是故君子动而世为天下道,行而世为天下法,言而世为天下则。远之,则有望;近之,则不厌。

诗曰:在彼无恶,在此无射;庶几夙夜,以永终誉。君子未有不如此,而蚤有誉于天下者也。

–《中庸》

计算机系统概论

计算机系统简介

计算机 = 硬件 + 软件

  1. 由硬件直接执行微指令,微程序机器$M_0$,微指令系统
  2. 直接执行机器语言的机器称为实际机器$M_1$,最底层$M_1$,机器语言机器
  3. 用机器语言解释操作系统,虚拟机$M_2$,操作系统机器
  4. 具有翻译功能的汇编程序的计算机称为$M_2$,虚拟机$M_3$,汇编语言机器
  5. 将高级语言先翻译成汇编语言程序,再在$M_2$、$M_1$上执行,虚拟机$M_4$,高级语言机器

20世纪60年代出现了各种面向问题的高级语言:FORTRAN,BASIC,PASCAL,C

翻译程序有两种:编译程序,解释程序

把软件永恒地存于只读存储器中,称为固件

计算机体系结构:偏向于抽象,和高级,是指封装后的使用特性。

计算机组成:实现特性的底层技术,偏向于具体,和底层。

1945年,数学家冯·诺伊曼(von Neumann)在研究EDVAC机时提出了‘存储程序’的概念,以此概念为基础的各类计算机通称为冯·诺伊曼机。特点如下:

  • 计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成
  • 指令和数据以同等地位存放于存储器内,并可按地址寻访
  • 指令和数据均用二进制表示
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
  • 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
  • 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成

典型计算机各部件功能:

  • 运算器用来完成算数运算和逻辑运算,并将运算的中间结果暂存在运算器内
  • 存储器用来存放数据和程序
  • 控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果
  • 输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等
  • 输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。

大规模集成电路制作工艺出现后,运算器和控制器往往集成在同一芯片上,统称为CPU(Central Processing Unit)。输入和输出设备简称为I/O设备

这样,现代计算机可认为由三大部分组成:CPU、I/O设备及主存储器(Main Memory)。CPU和主存储器合称为主机,I/O设备又可称为外部设备。

算数逻辑单元(Arithmetic Logic Unit, ALU)简称算逻部件,用来完成算数逻辑运算。控制单元(Control Unit, CU)用来解释存储器中的指令,并发出各种操作命令来执行指令。ALU和CU是CPU的核心部件。

I/O设备也受CU控制,用来完成相应的输入、输出操作

计算机有条不紊的工作都是在控制器统一指挥下完成的

用计算机解决一个实际问题通常包括两个步骤:

  1. 上机前的准备
    1. 建立数学模型
    2. 确定计算方法
    3. 编制解题程序
  2. 计算机的工作过程
    1. 主存储器
    2. 运算器
    3. 控制器
    4. I/O

计算机主要技术指标

  1. 机器字长
  2. 存储容量
  3. 运算速度

计算机的发展及应用

ENIAC 1943年开始批准制造,1946年交付使用

  1. 第一代电子管计算机:1946
  2. 第二代晶体管计算机:1964
  3. 第三代集成电路计算机:1964 System/360

集成电路的影响是革命性的,Moore定律:微芯片上集成的晶体管数目每三年翻两番。

计算机设计者必须不断平衡处理器、主存、I/O设备和互连结构之间的数据吞吐率和数据处理的需要,使计算机性能越来越好。

21世纪初的眼光来看,微处理器的发展重点将会是以下这几个方面:

  1. 进一步提高复杂度来提高处理器性能
  2. 通过线程/进程级并行性的开发提高处理器的性能
  3. 将存储器集成到处理芯片内来提高处理器性能
  4. 发展嵌入式处理器

软件发展的特点

  1. 开发周期长
  2. 制作成本昂贵
  3. 检测软件产品质量的特殊性

软件是程序以及开发、使用和维护程序需要的所有文档

软件的应用

  1. 科学计算
  2. 数据处理
  3. 工业控制和实时控制
  4. 网络技术的应用