# 计算机组成原理笔记

***

## 第一章

1. 冯诺依曼体系：

* 由五大部件（储存器，运算器，控制器，输入设备和输出设备）组成；
* 采用二进制表示信息；
* 采用存储程序的工作方式。

2. 所有计算机都是冯诺依曼体系？ ×
3. 硬件系统基本组成：
   * CPU由运算部件、寄存器组和控制器组成，通过CPU内部总线相互交换信息；控制器提供整个系统工作所需的各种微命令，这些微命令可用组合逻辑电路或执行微程序产生。
   * 储存器包括主存，外存和高速缓存等。
   * 输入输出设备、总线和接口。
4. 北桥：内存控制，视频控制，与CPU的交互；南桥：控制外部设备和BIOS
5. 性能的评价指标：
   * 字长：定点运算的操作数的位数；
   * CPU主频`f`：CPU内核的工作频率，CPU时钟频率。时钟周期T = 1/f。
   * 平均每条指令的时钟周期数CPI，每条指令的平均用时 = CPI / f

## 第二章

6. 十六进制的一种标注方法是以H为后缀，最大数码为F；
7. 原码：第一位符号位，0正1负；范围是 $$-(1-2^{n-1}) 到 1-2^{n-1}$$
8. 补码：- (X) = (X变反 + 1)；范围是$$-1 到 1-2^{n-1}$$
9. 浮点数： $$N = (-1)^s ×1.M × 2 ^{E-127}$$
10. IEEE754：一位符号位，8位指数位，23位尾数位，共32位
11. 十进制转IEEE754：先转换成二进制，规格化二进制（1.xx \* 2^x），阶码真值+偏置值得阶码，再拼上尾数和符号位。
12. 大端法：高字节存放在低地址，就是人的阅读习惯；小端法：高字节放在高地址，使得数据位的权值和地址的高低联系起来。
13. 补码加法：符号位参与运算直接相加；补码减法：转换为与减数的负数（变反+1）相加；
14. 原码加减法：先对数值位进行加减，再处理符号位

## 第三章

13. CPU硬件结构模型：
    * 运算部件：ALU，输入逻辑，输出逻辑
    * 缓存部件
    * 寄存器组：通用寄存器、暂存器、指令寄存器IR、程序计数器PC、程序状态字寄存器PSW、地址寄存器MAR、数据缓冲寄存器MBR（模型的MDR）、栈指针寄存器SP。
    * 可被编程访问：R0-R3，PSW，PC，SP 不可访问：IR、MAR、MDR、C、D
    * PSW中有些位可以被编程修改 √
    * 控制部件
    * 时序系统
    * 数据通路和控制通路
14. 寻址方式：
    * 立即寻址：直接在指令里读操作数
    * 直接寻址：给出内存地址或寄存器号，以读取操作数
    * 间接寻址：从某寄存器或主存中读取一个地址，然后再到这个地址读取操作数
    * 变址寻址：如X(R0)，表示 取PC指向的地址里的值 加上R0里的值 得到操作数的有效地址 然后在这个地址里就可以找到操作数。实质是将形式地址作为基址地址，寄存器里的内容为偏移量。
    * 基址寻址：将寄存器的内容作为基址地址，形式地址作为偏移量。
15. 模型机的一些寻址方式：
    * R： 寄存器的内容作为操作数
    * (R)：寄存器的内容作为有效地址
    * -(R)：寄存器的内容-1后作为有效地址
    * (R)+：寄存器的内容作为有效地址，访问完成后寄存器的内容+1
    * @(R)+：寄存器的内容为间接地址，访问完成后寄存器的内容+1
    * X(R)：见14
16. 模型机的控制系统结构：微命令发生器、时序系统，以及对IR、PSW、PC的信息输入。
17. 控制系统的输入信号：IR、PSW、PC、时序系统、IO请求、复位信号
18. 时序系统：一条指令的完成（指令周期），分为若干个工作周期，每个工作周期又分为若干个时钟周期（节拍）
19. 并行加法器的运算速度取决于传递进位信号的逻辑电路（进位链）
20. 串行进位链：$C\_i = G\_i + P\_iC\_{i-1}$；并行进位链：$C\_i = G\_i + P\_iG\_{i-1} + P\_iP\_{i-1}G\_{i-2}+...+P\_i...P\_1C\_0$
21. 四大基本工作周期：
    * 取址周期FT：完成将指令从M取出送进IR，以及修改PC
    * 源周期ST：读取操作数，暂存于C
    * 目的周期DT：读取目的地址放入MAR，或读取目的操作数，暂存于D
    * 执行周期ET：执行数据传输、运算等
22. 指令流程：重点一张图

![](https://pic1.imgdb.cn/item/63687f3f16f2c2beb1929690.jpg)

23. 常见模型机指令流程（微指令）：
    * E开头：Enable，将寄存器内容打到总线上，如EMAR
    * R：从主存读内容到总线
    * W：写内容到主存
    * S开头：将（外）总线上的内容读入寄存器，如SIR，SMDR
    * 直接传递，如PC->A，用于将寄存器的值打入A或B，或简单的对寄存器的值传
    * 直通A/B：直接让A/B穿过ALU
    * A加B：让ALU算A+B，然后输出
    * DM：直接送出移位器
    * CP开头：过ALU送出的值复制到寄存器
24. 处理X(R0)：X是一个地址，存在当前指令的下一个地址。处理时应取PC指向的地址（因为取值的时候PC已经+1，这时候就指向X）的值与R0的内容相加，得到操作数地址。处理完后PC要+1（略过X）。

## 第四章

24. 存储器的主要性能：速度（T，用存储周期表示）、容量（S，用MB GB表示）、价格（C，用每位的价格表示）
25. `命中率`：H = N1 / (N1 + N2)，N1：对M1储存器的访问次数；N2：对M2储存器的访问次数
26. 存取方式分类：
    * RAM：随机访问存储器，如主存和高速缓存；
    * SAM：顺序访问存储器，按顺序遍历查找，如磁带
    * DAM：直接访问存储器，可以先直接确定一块区域，然后再顺序查找，如磁盘
27. 存储器的技术指标：
    * 存取时间TA：进行一次读写的时间
    * 存取周期TM：本次存取到下次存取开始的时间 TM = TA + 传输、复原等时间
    * 数据传输率DTR，也叫传输带宽
28. 主存的逻辑设计：

    * 总容量 = 编制单元数\*位数，位数指每个编制单元的数据宽度。设计时用小容量芯片拼，例如4M \* 2 可以由 4个1M \* 2 或 2个4M \* 1 拼成。
    * 设计过程：

    ![](https://i.328888.xyz/2022/12/08/fmXIo.png)

    ![](https://i.328888.xyz/2022/12/08/fmxuV.png)

    > 低位分配给芯片，高位用于片选逻辑。剩下的位留空。
    >
    > 片选逻辑用来选择芯片。这里的片选实际上只用到了两个地质线A11-A12（能表示2^2个芯片）.

    ![](https://i.328888.xyz/2022/12/08/fmzPq.png)

    > 注意上面R/W那一条是控制总线

    > 补充连线图：

    ![](https://i.328888.xyz/2022/12/08/fp4Bt.png)
29. 奇偶校验：约定校验码中1的个数为奇数/偶数，码距=1。例：偶校验：1011001 0 ; 1911911 1.
30. 海明校验：可以找出错误的位。m+k<=2^k-1，m表示数据位数，k表示校验码位数。海明校验的校验码分部于第2^0，2^1,2^2...位。其他位都是数据位。将其他位的位置转换为二进制，其对应位为1的位数2^a = 1，2^b = 0，2^c = 1 ，就说明这个位由2^a、2^c两个校验位负责校验。每个校验位都对其负责的位进行奇偶校验（异或）。接收方重新按检测位进行检验，如果发现不一致，综合所有检测位的结果，排除一致的检测位，算出有错的位。

## 第五章

31. 总线定义：一组能为多个部件分时共享的信息传送线路；总线分类：CPU内总线、部件内总线、系统总线、外总线；
32. 接口定义：主机与外设间的连接逻辑，控制外设I/O操作；接口分类：并行接口（接口与系统）、串行接口（接口与外设）。
33. 中断定义：CPU暂停执行现行程序，转去执行为某个随机事态服务的中断处理程序。处理完毕后自动恢复原程序的执行。典型应用：管道中、低速I/O操作；处理故障。
34. 中断的流程：保护现场-中断服务处理-恢复现场-开中断-返回
35. DMA定义：直接存储器访问，是依靠硬件而不需要CPU的直接在主存与外围设备之间进行数据传送的方式，如磁盘IO。·
