计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上

1.2计算机基本组成

1.2.1 冯·诺依曼机器的特点

约定:本教材不依靠任何现代机器作为模型讲解!

冯·诺依曼计算机的特点可归结如下:

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

现代计算机的体系结构都被称为 “冯·诺依曼” 计算机。冯·诺依曼也是最早提出“存储程序”这个概念。什么是存储程序呢?

存储程序概念解释:就是将运行的电脑程序,以二进制代码存储在电脑的主存里面,然后运行。

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第1张图片 典型的冯·诺依曼计算机硬件框图

上图中的 “实线” 代表计算机里面的数据线(也就是数据在计算机中要走的路)。在上文中也明确给讲到,冯诺依曼机器是以 “运算器” 为中心的计算机。设想数据从 “输入设备” 进入计算机之后,想要从计算机输出就必须要经过 “运算器”,这无疑让 “运算器” 变成了整个计算机中最忙的一个部件,这样一来运算器就变成了该硬件结构计算机的瓶颈。 所以要对该机型进行改进:改为以存储器为中心的机器

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第2张图片 以存储器为中心的计算机硬件框图

上图所示,将以 “运算器” 为中心的计算机,改进成以 “以存储” 器为中心的机器。图中各个部件的功能如下:

  1. 运算器:用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内。
  2. 存储器:用来存放数据和程序。
  3. 控制器:用来控制、只会程序和数据的输入、运行以及处理运算结果。
  4. 输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式。
  5. 输出设备:用来将机器运算结果转换为人民熟悉的信息形式打印或输出到显示器。

由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大规模集成电路制作工艺出现后,这量大部件往往集成在同一芯片上,因此,通常将它们合起来统称为中央处理器(CPU)。把输入设备与输出谁被简称为I/O设备。这样,现代计算机可以认为由三大部分组成:CPU、I/O、主存储器。将上图的计算机硬件从新规划一下:

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第3张图片 现代计算机硬件分层

现代计算机主要分为 “主机” 与 “I/O”两部分。

“主机” 是由 “主存” 与 “CPU” 构成

“CPU” 是由 “ALU” 与 “CU”  构成

了解了现代计算机的硬件分层之后,可以用一张新图示来代表现代计算机:

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第4张图片 现代计算机的组成框图

我们已经对现代计算机有了一个大致的了解,而计算机在运行过程中就需要有指令。机器的指令分为两部分组成,有“操作码”与“地址码”组成。

操作码:操作码表示机器所执行的各种操作,如取数、存数、加、减、乘、除、停机、打印等。

地址码:表示参加运算的数在存储器内的位置。

注意:志气指令的操作码和地址码都采用0、1代码的组合表示。

举例:如某机器的指令字长为16位,其中操作码占6位,地址码占10位。  如图所示:

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第5张图片 指令格式示意

  下面以让计算机去解决一个问题的方式、让计算机去执行一个程序的方式来初体验一下机器的运行。

例如:计算     ax^{2}+bx+c     下方将进行运算步骤的描述,可以边看描述边对照组成框图来体验运算过程

解题步骤如下:方式一

  1. 将 x 取至运算器中
  2. 乘以 x ,得 x^{2} , 存于运算器中
  3. 再乘以 a ,得 ax^{2} ,存于运算器中
  4. 将 ax^{2}  送至存储器中
  5. 取 b 至运算器中 
  6. 乘以 x ,得 bx ,存于运算器中
  7. 将 ax^{2} 从存储器中取出与 bx 相加,得 ax^{2}+bx ,存于运算器中
  8.  再取 c 与 ax^{2}+bx相加,得  ax^{2}+bx +c,存于运算器中

可见,不包括停机、输出打印工需要8不,若将上式改变,则期步骤可简化为以下5步

方式二:将上式改为   (ax+b)x+c

  1. 将 x 取至运算器中
  2. 乘以 a ,的ax,存于运算器中
  3. 加 b ,得 ax+b 存于运算器中
  4. 乘以 x ,得 (ax+b)x,存于运算器中
  5. 加 c ,得  (ax+b)x+c 存于运算器中。

上面两种解题方式,属于我们人类的方式。将上述的运算步骤写成计算机一一对应的机器指令,就完成了运算程序的编写。前文已经讲过指令是有操作码和地址码组成的,操作码有自己的操作性质(说白了就是操作码代表着机器要干些啥活或有什么动作),下面对操作码与操作性质做举例:

操作码与操作性质对应表
操作码 操作性质 具体内容
000001 取数 将指令地址码只是的存储单元中的操作数取到运算器的累加器ACC中
000010 存数 将ACC中的数存至指令地址码只是的存储单元中
000011 将ACC中的数与指令地址码指示的存储单元中的数相加,结果存于ACC中
000100 将ACC中的数与指令地址码只是的存储单元中的数相乘,结果存于ACC中
000101 打印 将指令地址码只是的存储单元中的操作书打印输出
000110 停机  

操作码只是一串二进制的数字,二这串由0、1代表的数组具有明确的意义。对于上文中提到的运算例程,可以用上表中的指令写出一份运算程序的清单,方便大家理解

计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上_第6张图片  ​​上文中计算程序的程序清单

上面的例子就是将数据与指令都保存在了主存单元当中,这就可以认为是存储程序的计算机结构。下一篇文章就一起学习存储器的结构!

你可能感兴趣的:(计算机组成原理(唐朔飞)笔记-1.2计算机基本组成上)