一、计算机组成原理
上溢:双符号位的最高位表示的始终是结果的正负值,两个数进行运算,得到的结果的绝对值超过最大表示范围。两个正数的运算结果超出了数值位的表示的最大范围,所以数值位进位到符号位了,说明,其绝对值超过了表示的最大范围,为上溢。定点整数之间只会发生上溢。
下溢:两个浮点数运算,得到的结果的绝对值超过最小的表示范围。两个数是负数,这个两个数的运算结果超过了数值位的最小范围,所以数值位上的1被借走了,说明其绝对值超过了表示的最小范围,为下溢。只有浮点数的运算会发生下溢。
边界对齐:以空间换时间的思路,起始地址要能够被自身长度整除。采用边界对齐后,访问一个字只需要一次访存。
存储方式:大端存储和小端存储。
大端方式:高字节存储在低地址(顺着存),小端方式:高字节存储在高地址(逆着存)。
浮点数加减运算:
对阶:小阶向大阶看齐
尾数加减
规格化
- 左规:尾数的最高位为非有效位时进行左规吧
- 右规:尾数溢出时右规
舍入:在右规和对阶的过程中都有可能存在舍入的问题
溢出判断:
- 阶码上溢:抛出异常
- 阶码下溢:按机器0处理
IEEE 754 标准:阶码用移码表示,尾数用原码表示,隐藏最高位的1。
并行进位加法器:加法器的多个进位同时产生(通过进位产生函数和进位传递函数)。
计算机的多级存储系统:
- 主存-缓存:用来缓解速度压力,完全由硬件实现,缓存是主存的副本
- 主存-辅存:用来缓解容量压力,有操作系统和硬件配合实现,主存是辅存的副本
硬布线控制器与微程序控制器
- 硬布线控制器是用组合逻辑电路来实现控制器中的CU,微程序控制器是用存储程序的思想来实现CU
- 硬布线的执行速度块,微程序控制器执行速度慢
- 硬布线繁琐,不规整,微程序控制器较规整
- 硬布线应用于RISC,微程序控制器应用于CISC
- 硬布线不易扩充,微程序控制器易于扩充
影响指令流水线的因素
- 结构冲突:多条指令在同一时刻争用同一资源(比如取址与取数据争用内存)。
- 数据冲突:当指令在流水线中重叠执行时,后面的指令需要用到前面的指令的执行结果,而前面的指令尚未写回导致的冲突。
- 控制冲突:如果现在想要执行某条指令,是由之前指令的运行结果决定,而现在那条之前指令的结果还没产生,就导致了控制冲突。(遇到转移指令,或者其他改变PC的指令)
增强总线效能的办法
- 猝发传输:读写一组连续的字时,只需要给出首地址即可
- 总线复用:信号线在不同的时间传输不同的信息