计算机组成与体系结构
计算机组成与体系结构
冯诺依曼和哈佛体系结构
冯诺依曼体系结构包括?*
运算器、控制器、存储器、输入设备和输出设备
各自的特点?*
冯·诺伊曼体系结构的特点
A.使用二进制数和存储程序
B.存储程序并按地址顺序执行
C.把程序及其操作数据一同存储
哈佛体系结构的特点
把程序与其操作数据分开存储
冯诺依曼体系结构和哈弗体系结构的不同点?前者继承了后者那些特点?*
1)数据和指令的存储方式:都将数据和指令存储在计算机的存储器中,但它们的存储方式略有不同。 2)运算方式:在进行运算时都采用类似的算法和操作。
继承:高速缓存Cache
冯诺依曼体系结构怎么区分指令和数据?*
时间上,取指周期取出的是指令,执行周期取出的是数据;
空间上,流向控制器的是指令,流向运算器的是数据。
机器码
反码
反码的唯一意义是作为计算补码的中间过程,本身不参与任何运算。
补码*
计算机采用补码表示进行存储和运算,因为补码符号位可以直接参与运算,无论数是正,还是负,计算机总是做加法运算。
补码可以确定\(2^n\)个二进制数,原码只能确定\(2^n - 1\)(-0和+0是同一个数) *。
为什么补码的符号位可以参与运算?*
补码 天然满足 加法循环群 的概念,包含三大性质 (单位元、结合律 和 逆元)
本质上,补码的第一位并不是符号位。
只是构造完成后,恰好能用01判断符号,和原码中符号位的定义一致。
正数原码的补码就是本身;负数原码的补码 是 原码的反码 + 1;
怎么理解 负数原码的补码 是 原码的反码 + 1?
我们以-7为例子,7的原码是0111,设 X 为 -7
X + 0111 = 0000,
-> X = 0000 - 0111
-> X = 1 + (1111 - 0111)
1111 + 0111 就是 0111取反 + 1
移码*
移码的定义:移码是一种用于表示有符号数的编码方式。
移码的存在目的是为了进行数的比较操作。*
移码的基本原理:将每个数值加上一个固定的偏移量,使其范围从负数变为非负数。
移码的计算:移码等于补码的符号(第一位数字)位取反。
浮点数*
计算机中常用的数据表示格式有两种,定点和浮点:
定点数中,一个数中小数点的位置是固定的;定点格式可表示的数值的范围有限,但要求的处理硬件简单。
浮点数中,一个数中小数点的位置是浮动的; 浮点格式可表示的数值的范围很大,但要求的处理硬件复杂。
浮点数的表示: \[ \{S(1):E(m):M(n)\} == \pm1.M*2^{E} \] 浮点数采用二进制科学计数法表示。
S为尾数的符号位,用01表示正负,占1位;
E为阶码,用移码表示,紧跟在符号位之后,占m位;
M为尾数,用原码表示,放在低位部分,占n位;
为什么指数的偏移量不选128?*
当阶码E为全0且尾数M也为全0时,表示的真值X为零, 结合符号位S为0或1,有正零和负零之分
当阶码E为全1且尾数M也为全0时,表示的真值X为无穷大(∞),结合符号位S为0或1,有+∞和-∞之分
这样,在32位浮点数表示中,要除去E用全0和全1( 255)表示零和无穷大的特殊情况,因此,阶码E的取 值范围变为1~254,指数的偏移量不选128( 10000000B),而选127(01111111B)
对于32位规格化浮点数,真正的指数值e为-126~+127
浮点数的规格化:
为了提高数据的表示精度,需要充分利用尾数的有效位数;当尾数的值不为0时,尾数域的最高有效位应为1, 否则就要用修改阶码同时左右移动小数点的办法,使其变成符合这一要求的表示形式。
定点加、减法运算
补码加/减
加法: \[ [x]补+[y]补=[x+y]补 (mod 2)\\ \] 当两数以补码形式相加时,运算的结果将直接得到两数之和的补码。
符号位可以作为数据的一部分参加运算而不用单独处理,有进位也只要丢弃即可。
减法: \[ [x-y]补=[x+(-y)]补=[x]补+[-y]补 (mod 2) \] 补码定点减法和补码定点加法在本质上是相同的,减法运算可以转换成加法运算。
只需要将[y]补连同符号位取反且最低位加1,即可得到[-y]补。
溢出判断
双符号位法:
如果两个数相加后,其结果的两个符号位一致(00 或11),则没有发生溢出;
如果两个符号位不一致(10或01),则发生溢出;
两个正数的首位都为00,若不溢出,仍然为00,否则为01(正溢);
两个负数的首位都为11,若不溢出,仍然为11,否则为10(负溢);
但是不论溢出与否,运算结果的最高符号位始终指示正确的符号。
定点乘、除法
(期末考试不会考乘、除运算)
逻辑运算
(需要认识 与、或、非、异或等运算符号)
定点运算器
1)ALU
2)数据总线
3)运算器的结构形式
A.单总线结构
B.双总线结构
C.三总线结构
4)寄存器
浮点运算器
浮点运算规则:
1)加减法: \[ x\pm y=2^{E_x}\times M_x\pm2^{E_y}\times M_y=\begin{cases}(M_x\times2^{E_x-E_y}\pm M_y)\times2^{E_y}&\mathrm{(Ex<=Ey)}\\(M_x\pm M_y\times2^{E_y-E_x})\times2^{E_x}&\mathrm{(Ex>Ey)}&\end{cases} \]
对阶必须遵循“小阶向大阶靠拢”的原则:
尾数的左右移都会造成有效数据的移出与丢失,但是右移丢失的是最低有效位,而左移丢失的却是最高有效位。
显然,右移更能减小数据误差。
2)乘除法:
计算题不做要求,只考选择。
存储器
随机读写存储器
按保存数据的机理分为:
1)静态存储器(SRAM):集成度低,成本高,功耗较大;通常作为Cache的存储体。
2)动态存储器(DRAM):电路简单,集成度高,成本低,功耗小;要不间断地进行刷新;作为主存储器的主体部分
3)增强型动态存储器(EDRAM): 在DRAM芯片上集成一个高速小容量的SRAM芯片,起到高速缓存的作用, 性能得到显著改进
只读存储器
只读存储器ROM是一种存储固定信息的存储器。
其特点是在正常工作状态下只能读取数据,不能即时修改或重新写入数据。
ROM的最大优点是具有不易失性
只读存储器有两大类:
1)不可重写只读存储器(MROM、PROM);
2)可重写只读存储器(EPROM、EEPROM、闪速 存储器flash ROM等);
主存储器
存储容量:
大多数计算机采用字节为单位来表征存储容量。
在按字节寻址的计算机中,存储容量的最大字节数可由地址码的位数来确定。
例如,一台计算机的地址码为n位,则可产生个不同的地址码,如 果地址码被全部利用,则其最大容量为\(2^n\)个字节。
总线
1)数据总线
2)地址总线
3)控制总线
拓展
1)位拓展法*
模块化组织
1)顺序方式
2)交叉方式