计算机概述


计算机硬件的基本组成

早期的冯洛伊曼结构

冯洛伊曼提出了存储程序的思想,即在进行操作计算机计算的时候将指令二进制代码的形式提前直接输入到计算机的主储存器中,而计算机会按照存储的指令逐条执行

image-20220226165739283

在计算机系统中的软件和硬件在逻辑上是等效的

冯洛伊曼计算机的特点有:

  • 计算机由五大部件组成
  • 指令和数据以同等地位存储在存储器中,可以按地址寻访
  • 指令和数据用二进制表示
  • 指令由操作码(具体运算类型)和地址码组成
  • 存储程序(提前存储在存储器)
  • 运算器为中心

现代计算机结构

image-20220226170159297

现代以存储器为中心,运算器和控制器直接和存储器连接,现代将运算器和控制器集合在一起,形成了CPU

image-20220226170515990


硬件部件

主存储器的基本组成

image-20220226171557536

MAR(Memory Address Register):存储地址寄存器

MDR (Memory Data Register):存储数据寄存器

MAR存放的是地址,存储体通过MAR的内容寻找需要的信息

MDR存放的是数据,存储体通过MAR找到数据后,将数据放到MDR中


image-20220226172036544

数据在存储体中按地址进行存储

存储字:存储单元中二进制代码的组合

存储字长:存储单元中二进制的位数

MAR的位数可以反映存储单元的总个数,而MDR的位数可以反映存储字长

MAR的位数×MDR的位数=存储器的总容量


运算器的基本组成

image-20220226172430521

运算器用于实现算术运算和逻辑运算

由ACC MQ ALU X组成,核心是ALU

ACC:累加器,用于存放操作数,或运算结果

MQ(Multiple-Quotient Register):乘商寄存器,在乘除运算的时候,用于存放操作数或运算结果

ALU(Arithmetric and Logic Unit):算术逻辑单元,通过内部复杂的电路实现算术运算,逻辑运算

X:通用的操作数寄存器,用于存放操作数


控制器的基本组成

image-20220226184759208

CU:控制单元,分析指令,给出控制信号

IR(Instruction Register):指令寄存器,存放当前执行的指令

PC:程序计数器,存放下一条指令地址,有自动加一功能

完成一条指令需要先取指令,分析指令,再执行指令


计算机的工作过程

image-20220304195213228

从存储体中取一个数的过程:

  1. PC →MAR 将下一条指令在存储体中的地址传输到MAR中
  2. MAR→存储体
  3. MAR→MDR 存储体根据MAR中的地址找到该指令,并将该指令内容传到MDR中去
  4. MDR→IR IR存放当前指令
  5. IR→CU 指令的操作码送到了CU中,分析当前指令的内容,得出这是取数指令
  6. IR→MAR 指令的地址码送到MAR
  7. MAR→存储体
  8. MAR→MDR MAR根据地址码,取出数放到MDR中
  9. MDR→ACC ACC存储了数

主要是存储体会工作两次,第一次根据PC给出地址码,第二次根据地址码给出数


image-20220304202001740

从存储体中存储一个数的过程:

  1. PC →MAR
  2. MAR→存储体
  3. MAR →MDR 存储体根据MAR的值,将指令放在MDR中
  4. MDR →IR 将MDR的值放入IR中
  5. IR →CU 将指令的操作码放入CU中,CU分析出这是存数指令
  6. IR →MAR 指令的地址码放入MAR中
  7. ACC →MDR 导致MDR等于操作数
  8. MAR→存储体
  9. MDR →存储体 MDR中的操作数会被存入到存储体中,地址为MAR中的地址

对比存数和取数的操作,可以看出在1~4步取指令以及第5步分析指令阶段,执行的操作是一样的,区别只是在分析指令指令后的操作不同

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


计算机的层次结构

image-20220304203734219

实际上,有三种级别的语言,上图中只是比较传统的一种语言

  1. 类似C,C++等语言,会先通过编译程序翻译成汇编语言,再由汇编语言翻译成机器语言
  2. 也可以直接用编译程序将高级语言翻译成机器语言
  3. 类似JAVAScript等语言,需要解释器,将源程序的一条语句翻译成机器语言后,立即执行,才会接着翻译下一句

计算机性能指标

存储器的性能指标

容量=存储单元个数×存储字长/8 =Byte


CPU的性能指标

主频:CPU内数字脉冲信号振荡的频率,和时钟周期互为倒数,单位Hz,反映每秒有多少个时钟周期

CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数

执行一条指令的耗时为:CPI×CPU时钟周期

IPS(Instruction Per Second):每秒执行多少条指令 =主频/平均CPI

FLOPS:每秒执行的浮点运算次数

(K=$10^3$,M=$10^6$,G=$10^9$,T=$10^{12}$)


系统整体的指标

数据通路带宽:数据总线一次能并行的位数

吞吐量:系统在单位时间内处理请求的数量

响应时间:从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间