0%

1.1计算机系统层次结构

计算机系统层次结构

计算机硬件的组成

冯·诺依曼计算机

将指令以代码的形式存入主存储器中,之后按照顺序依次执行,直到程序执行结束。

冯诺依曼计算机

冯诺依曼计算机

特点:

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

冯诺伊曼机基本工作方式是控制流驱动 按地址访问并顺序执行指令是冯诺依曼机工作方式的基本特点

如何区分指令和数据:

  • 通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。
  • 通过地址来源区分,由\(PC\)提供存储单元地址的取出的是指令,由指令地址码部分取出(提供存储单元地址或在指令中给出立即数)的是操作数。

现代计算机的组织结构

以存储器为核心
计算机的功能部件

计算机的功能部件

存储器

存储器包括主存储器(主存、内存储器)和辅助存储器(辅存、外存储器)

主存的组成如图所示:

  • 存储体:存放二进制信息;
  • 地址寄存器(MAR,Memory Adders Register):存放访存地址,经过地址译码后找到相应的存储单元; MAR的位数表示地址码的长度
  • 数据寄存器(MDR,Memory Data Register):暂存要从存储器中读或写的信息。 MDR的位数表示每个存储单元的位数,也叫存储字长

主存的作用:程序运行时的主要位置,包括所需的数据

敲重点:MAR和MDR之间关系的理解

主存储器是由若干存储单元构成的,每个存储单元包含若干存储元件,每一个存储元件可以存储一位二进制代码0或1。因此每一个存储单元可以存储一串二进制码。这串二进制码称为存储字,它的位数称为存储字长,实际上就是存储单元中存储元件的个数。

例如,一个存储单元中有8个存储元件,则其存储字长为8位(bit),也可以称为1字节(B,Byte)。

MAR有n位(有n位地址) = 有 \(2^n\) 个存储单元 。

MAR和MDR虽然是存储器一部分,但现在也存在于CPU


举例

题1:寄存器和高速缓冲寄存器Cache都集成在CPU上,离CPU越近速度越快,所以存取速度上寄存器>Cache>内存。


题2:计算机位数相关的计算


运算器

用于处理计算机的算术运算和逻辑运算。运算器包括:

  • 算术逻辑单元(ALU)(核心
  • 累加器(ACC)
  • 乘商寄存器(MQ)
  • 操作计数器(X)
  • 变址寄存器(IX)
  • 基址寄存器(BR)
  • 程序状态寄存器(PSW)

控制器

控制计算机各部件运行。包括:

  • 控制单元(CU)
  • 指令寄存器(IR):存放当前执行指令的地址
  • 程序计数器(PC):自动加1以得到下一条指令的地址

1.2.2 计算机的工作过程

简单版本:

先定义下面会用到的变量含义:

M:主存中某存储单元 OP(IR):取操作码 Ad(IR):取地址码

取指令

  1. PC --> MAR:将指令的地址从PC(程序计数器)传至地址寄存器
  2. M(MAR) --> MDR:根据地址从存储体(或地址寄存器)中取到指令,并传至数据寄存器
  3. (MDR) --> IR:将得到的指令传给指令寄存器

分析指令

  1. OP(IR) --> CU:CU(控制单元)分析IR(指令寄存器)中的指令,并做出操作

执行指令

  1. Ad(IR) --> MAR:IR(指令寄存器)将地址码给地址寄存器
  2. M(MAR) --> MDR:地址寄存器找到数据,存至数据寄存器
  3. (MDR) --> ACC:数据寄存器将数据传至累加器

CPU通过指令周期的不同阶段来区分指令和数据

详细版本:


举例:

题1:CPU结构

解析:地址译码器是主存里面的


1.2.3 计算机的层次结构

  • M4:用编译程序翻译成机器语言程序
  • M3:用汇编程序汇编成机器语言程序
  • M2:用机器语言解释操作系统
  • M1:用微指令解释机器指令
  • M0:由硬件直接执行微指令
  • 翻译程序:源程序→机器语言
    • 编译(C++、Java)
      • 高级语言→机器语言
      • 通篇翻译
      • 仅需执行一次
    • 解释(python、JS)
      • 高级语言→机器语言
      • 翻译一句执行一句
      • 每次执行都需要翻译
    • 汇编
      • 汇编语言→机器语言
  • 硬件和软件之间互相依存,协同发展
  • 两者间没有严格的界限

举例:上下层关系

1. 上层实现对下层功能的拓展,下层是上层的基础。

2. 上下层可以分割,仅有下层没有上层也可以