计算机组成原理:2、基本组成

Posted by 蔡华的博客 on September 19, 2018

冯·诺依曼计算机基本概念

本文中的内存结构只是课程中用到的一个特定的机器的设计,并非所有的计算机都是这样的。

  • 现在的计算机都是程序存储计算机,也就是冯诺依曼计算机。
  • 特点:
    • 计算机有五大部件组成:输入、输出、控制器(CU)、运算器(ALU)、存储器(主存、辅存)
    • 指令和数据以同等地位存于存储器中,按地址寻访。
    • 指令和数据按照二进制保存
    • 指令由操作码和地址码组成(e.g 0001 00001000,0001代表读取,00001000代表要读取 数据在内存(寄存器)中的位置)。
    • 存储程序,存储在存储器中。
    • 以运算器为中心。
  • 现代计算机:
    • ALU + CU = CPU
    • CPU + 主存(RAM\ROM\Cache(inter上cache有L1\L2\L3)) = 主机
    • 输入 + 输出 + 辅存 = IO设备
    • 主机 + IO = 计算机系统硬件
  • CU控制数据的读取+写入,操作的是存储器,还可以控制指令的执行顺序操作的是运算器。
  • 如果以运算器为中心进行硬件设计会是的运算器成为系统的瓶颈(overhead)。所以改进成以存储器为中心,这样可以是的IO设备直接和存储器关联。

计算机解决问题的步骤:

  • 建立数学模型
  • 确定计算方法
  • 编制程序:程序就是运算的全部步骤,指令就是每一个步骤。

程序清单

计算机主要组成

存储器

  • 存储器的组成由以下:
    • 存储体: 大楼->若干房间->如果床位
      • 存储单元:房间
        • 存储原件:床位,本质就是0/1了
      • 存储单元:存放一串二进制代码
      • 存储字:存储单元中二进制代码的组合
      • 存储字长:存储单元中二进制代码的位数
      • 每一个存储单元都有一个地址,通过地址进行访问。存储单元保存的可以是数据,也可以是指令。
    • MAR:存储器地址寄存器,保存存储单元地址或编号。反应存储单元个数。
    • MDR:存储器数据寄存器,要保持到存储体的数据,或者刚刚从存储体取出的数据。反应了存储字长。
  • 硬件结构

存储体

运算器

  • 在我理解中运算器是真正进行数据计算的地方,都是采用二级制的加减乘除。具体实现应该是数字电路方面的知识了。
  • 对于不同的运算,在指令执行过程中使用到的寄存器数量不同。比如加减法是不需要MQ(乘商寄存器,multiplication & quotient的缩写)的。
  • ALU:运算器核心
  • ACC:累加寄存器
  • X:保存数据的寄存器
  • MQ:乘商寄存器

加

减

乘

除

运算器操作

控制器

  • 功能:
    • 解释指令
    • 保证指令的按序执行
  • 解释指令过程,也是一个指令的执行过程:
    • 取指令:从内存单元中取指令。→ PC
    • 分析指令:把操作码部分送到控制单元进行分析 → IR
    • 执行指令:控制单元控制相应的执行部件来执行操作 → CU
  • 硬件结构
    • PC:程序计数器:寄存器,存放当中要执行的指令的地址,具有计数功能(PC)+ 1-> PC,(类似指针操作)
    • IR:指令寄存器,存放当前要执行的指令。控制单元从IR中取出操作码进行分析。
    • CU:发出控制信号

控制器

  • 所以控制器的执行顺序是:CU(不确定,因为没有讲清楚)从PC取当前要执行指令的地址,根据地址找到指令后存到IR,CU分析指令后得到操作码,然后执行。PC++后就是到了下一条指令的地址,然后继续之前的操作。

存储器、运算器和控制器是如何协作的

取数例子

取数

  1. PC中保存着指令的地址,将地址放入MAR。
  2. 用MAR中的地址从存储体中得到指令(操作码+操作数据地址码)
  3. 将得到的指令放到MDR
  4. 将指令从MDR放到IR

    ——————–取指令结束——————–

  5. IR将操作码送到CU,CU译码,开始操作元器件。
  6. IR中地址码送到MAR,这个地址码就是我们真正要操作的数据。
  7. MAR从存储体取到数据
  8. 数据保存到MDR
  9. MDR讲输入送到ACC

    ——————–整个操作结束——————

  • NOTE: 在这个图中没有体现的是如何将最初的取值指令地址放到PC中

存数例子

存数

  1. PC中保存着指令的地址,将地址放入MAR。
  2. 用MAR中的地址从存储体中得到指令(操作码+操作数据地址码)
  3. 将得到的指令放到MDR
  4. 将指令从MDR放到IR

    ——————–取指令结束——————–

  5. IR将操作码送到CU,CU译码,开始操作元器件。
  6. IR中地址码送到MAR,这个地址码就是我们真正要操作的数据。
  7. MAR将地址告诉存储体,这个数据要存起来
  8. ACC中的数据保存到MDR
  9. MDR将数据放到存储体

    ——————–整个操作结束——————

计算机执行程序的过程

程序执行

  • 这里就回答了之前的问题,在程序被输入到计算机的内存后,第一个指令的地址会被放入到PC中。在指令执行的过程中,PC+1操作使得能够不断的执行新的指令。

延展阅读

主存、副存、内存、外存

存储器是计算机的重要组成部分,用于存储程序与数据,可分为:计算机内部的存储器(内存储器,简称内存)、计算机外部的存储器(外存储器,简称外存)

一般来说,主存指的是内存;但是在一些专业性较强的场合,主存与内存还是有一定区别的。内存储存器还有其他形式。而外存指的是辅存,比如硬盘、U盘、光盘及软盘等。

cpu中的存储器和主存是两个概念。处理器需要自己的内存储器,它们以寄存器的形式存在。

内存:

内存又称主存,是CPU能直接寻址的存储空间,它的特点是存取速率快。内存是电脑中主要部件,它是相对于外存来说。

内存一般采用半导体存储单元,包括随机存储器(RAM)、只读存储器(ROM)和高级缓存(Cache)。

RAM(Random Access Memory):

高速存取,支持读写数据,读写时间相等,且与地址无关,但是断电后其中的数据会丢失。

ROM(Read Only Memory):

断电后信息不丢失,如计算机启动用的BIOS芯片。存取速度很低,(较RAM而言)且不能改写。由于不能改写信息,不能升级,现已很少使用。

Cache:

介于CPU与内存之间,常用有一级缓存(L1)、二级缓存(L2)、三级缓存(L3)(一般存在于Intel系列)。它的读写速度比内存还快,当CPU在内存中读取或写入数据时,数据会被保存在高级缓冲存储器中,当下次访问该数据时,CPU直接读取高级缓冲存储器,而不是更慢的内存。

外存:

外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。外存需要通过I/O系统与之交换数据,又称为辅助存储器。常见的外储存器有硬盘、软盘、光盘、U盘等

参考

  • https://blog.csdn.net/lewky_liu/article/details/78147842