计算机组成

2020-08-30  本文已影响0人  谭英智

冯诺依曼

重要的设计思想

组成

要点

co-archi

执行指令步骤

模型

co-model

输入输出

co-inoutmodel
co-inout

南北桥演变

co-sn1
co-sn2
co-sn3

演进的方向是,随着输入输出设备越来越快,它们对CPU的读写性能也要求更高,对于多个IO共享南北桥的方法,会严重影响读写效率,所以为了适应这些高速IO,会逐渐地使用增加芯片,增加总线,增加存储等方法,对高速IO做特殊化处理,使得计算机可以充分利用这些高速IO

指令系统

寄存器结构

8086

co-8086 co-address

80386

co-80386

8664

co-8664

X86指令

co-codeType

特点:

MIPS指令

设计思想

特点

算术运算与逻辑运算

门电路

co-gate

非门

co-not

VDD为高电频

A通电,则P门打开,M门闭合

Y输出低电平

与门

co-and
co-and0

或门

co-or

异或门

co-nor

通过组合与门和或门,得到异或门

寄存器原理

D触发器

co-d

逻辑ALU

co-alu

输入x(32位),y(32位),分别接入与/或/非等门电路,并产生n个输出,通过控制电路,选择其中一个,并输出

加法

半加器

co-helf-add

在不考虑进位的情况下,通过分析输入输出的逻辑运算,可以通过异或和与门实现加法

全加器

co-add

通过两个半加器,实现带进位的加法器

优化

通过上述的全加器,可以通过串行的方法,实现多位的加法运算

但是如果每个步骤都需要等待前一位的进位才可以进行,效率会非常差

co-addopt

根据以上公式,可以通过实现复杂的逻辑电路,通过三级门直接计算出进位c,实现优化的目的

co-addoptgate

随着位数的增加,这种方法实现的门电路就会越复杂。所以对于32位的加法,会通过4个8位超前加法器组合实现。

乘法

十进制的乘法,需要查找乘法表,并进行中间结果的累加,计算方法非常复杂

二进制的乘法,不需要查找乘法表,只需要通过移位计算出中间结果,并进行中间结果的累加,计算简单

初始版本

co-multi0

优化

co-multopt

除法

通过移位和减法实现

co-divide

优化

co-diviedopt

单周期处理器设计

取指电路

co-fetch

加法电路

co-design-add

rd = rs + rt

读存储电路

co-design-load

rt = addressLoad(rs+imm16)

写存储电路

co-design-save

address(rt+imm16) = rs

流水线处理器

标量流水线

co-water

用串行的方法来设计cpu,需要进行取指-》译码-》执行-》访存-》写回

每个步骤都必须等待上一阶段完成,才可以进行

那么在执行每条指令时,会浪费大量的时间在等待

为了提高每个步骤的吞吐量,可以使用流水线的方式来设计CPU

co-watertimeling

从上图可以看到,cpu的吞吐量增加了,但是对于单条指令,执行的时间却变长了。

可以看出,流水线的切分,并不是越细越好。在达到一定的粒度时,性能会不升反降

超标量流水线

标量流水线,只有一条工作的路线

超标量,会有多条线路并行的进行流水线工作

多核CPU

一个核的CPU拥有一个超标量流水线

多核CPU则拥有多个超标量流水线

流水线冒险

定义

阻止下一条指令在下一时钟周期执行的情况

co-water-struct

如果冲突,则把指令推迟到下一周期执行

如果在一个时钟周期内可以完成两个以上的操作,例如读写,则在时钟的前半周期先进行操作,后面的指令在时钟的后半部分进行操作

co-water-data co-water-control

存储层次

对比

co-cache

CPU跟DRAM(内存)的差距越来越大,如果直接相连,会让CPU浪费大量的时间在等待,SRAM虽然价格高,但是速度快,可以作为cache作为中间层,提高CPU的数据读写性能

访问存储

cache映射策略

通过主存地址,hash

co-cache-hash

冲突替换算法

设计

数据和代码存在不同的cache中

中断与异常

由于计算机难免陷入异常状态,例如除0,此时计算机的状态是异常的,无法正确的进行下一指令的操作,那么此时需要引入异常处理,通过触发中断,计算机根据中断号,执行相关的代码,进行状态的修复。

中断的另一个用途是,低速外设,例如键盘输入,通过中断,CPU指定中断程序,把键盘输入写入内存,进行数据交换

如果外设拥有大量的数据需要交换,此时单靠中断和CPU直接操作,会消耗大量的CPU资源,使得CPU无法进行其他程序的执行,此时需要引入其他的芯片,例如显卡,处理数据,并进行数据的传输,等传输完成,再由CPU对数据进行运算

过程

输入输出设备

编址方式

IO控制方式

CPU如果控制外设的数据传送

上一篇 下一篇

猜你喜欢

热点阅读