tk's blog
  • tk's blog Read Me
  • 算法相关
    • 数据结构
      • 【集训整理】 旋转treap模板
      • 二叉树及相关数据结构的java语言实现
      • 快乐树0x01:AVL树的java实现
      • 快乐树0x02 线段树实现(c++)
      • 链表的Java语言实现
    • 算法
      • DP的背包问题小结-java语言描述
      • 【集训整理】2-SAT问题 模板题
      • 【集训整理】Tarjan算法 模板题
      • 【集训整理】差分约束 模板题
      • 【集训整理】最近公共祖先LCA 模板题
      • 二分查找与二分答案-java实现
      • 动态规划-java语言练习一:暴力DP
      • 快速幂
      • 状态压缩DP-java描述
      • 差分
      • 乘法逆元
    • 题解
      • CFRound-GoodBye2022题解
  • java相关
    • Java与算法竞赛——注意事项摘录
    • java面向对象简要总结 一
    • java面向对象简要总结 三
    • java面向对象简要总结 二
  • 后端相关
    • Linux-Crontab命令
    • Spring Data JPA 使用方法
    • Spring集成Artemis实现JSM的异步消息传递
    • Spring使用自定义配置项
    • MIT6.824分布式系统Lab1.MapReduce笔记
    • MIT6.824分布式系统Lab2-Raft-A笔记
    • MIT6.824分布式系统Lab2-Raft-B笔记
  • 杂谈
    • 杂谈-关于2021
  • 杂项
    • c语言 scanf的返回值
    • 系统设计
  • 计科基础
    • 编译原理
      • 编译原理:词法分析笔记
    • CSAPP 第二章笔记
    • 计算机组成原理笔记
    • CSAPP Lab1. Datalab
    • CSAPP Lab2 Bomblab
  • C++每日一题
    • C++每日一题 Day 1 肥宅水
    • C++每日一题 Day 2 数字反转
    • C++每日一题 Day 3 理五的凡尔赛风气
    • C++每日一题 Day 4 我喜欢这个数
    • C++每日一题 Day 5 数字楼梯
    • C++每日一题 Day 6 插火把
    • C++每日一题 Day 7 贪吃蛇
    • C++每日一题 Day 8 蒙德最强战力
    • C++每日一题 Day 9 璃月七星选举
    • C每日一题 Day 2 肥宅水
    • C每日一题 Day 3 理五的凡尔赛风气
    • C语言每日一题 Day 1 荧妹好感队
由 GitBook 提供支持
在本页
  • 第一章
  • 第二章
  • 第三章
  • 第四章
  • 第五章
  1. 计科基础

计算机组成原理笔记


第一章

  1. 冯诺依曼体系:

  • 由五大部件(储存器,运算器,控制器,输入设备和输出设备)组成;

  • 采用二进制表示信息;

  • 采用存储程序的工作方式。

  1. 所有计算机都是冯诺依曼体系? ×

  2. 硬件系统基本组成:

    • CPU由运算部件、寄存器组和控制器组成,通过CPU内部总线相互交换信息;控制器提供整个系统工作所需的各种微命令,这些微命令可用组合逻辑电路或执行微程序产生。

    • 储存器包括主存,外存和高速缓存等。

    • 输入输出设备、总线和接口。

  3. 北桥:内存控制,视频控制,与CPU的交互;南桥:控制外部设备和BIOS

  4. 性能的评价指标:

    • 字长:定点运算的操作数的位数;

    • CPU主频f:CPU内核的工作频率,CPU时钟频率。时钟周期T = 1/f。

    • 平均每条指令的时钟周期数CPI,每条指令的平均用时 = CPI / f

第二章

  1. 十六进制的一种标注方法是以H为后缀,最大数码为F;

  2. 原码:第一位符号位,0正1负;范围是 −(1−2n−1)到1−2n−1-(1-2^{n-1}) 到 1-2^{n-1}−(1−2n−1)到1−2n−1

  3. 补码:- (X) = (X变反 + 1);范围是−1到1−2n−1-1 到 1-2^{n-1}−1到1−2n−1

  4. 浮点数: N=(−1)s×1.M×2E−127N = (-1)^s ×1.M × 2 ^{E-127}N=(−1)s×1.M×2E−127

  5. IEEE754:一位符号位,8位指数位,23位尾数位,共32位

  6. 十进制转IEEE754:先转换成二进制,规格化二进制(1.xx * 2^x),阶码真值+偏置值得阶码,再拼上尾数和符号位。

  7. 大端法:高字节存放在低地址,就是人的阅读习惯;小端法:高字节放在高地址,使得数据位的权值和地址的高低联系起来。

  8. 补码加法:符号位参与运算直接相加;补码减法:转换为与减数的负数(变反+1)相加;

  9. 原码加减法:先对数值位进行加减,再处理符号位

第三章

  1. CPU硬件结构模型:

    • 运算部件:ALU,输入逻辑,输出逻辑

    • 缓存部件

    • 寄存器组:通用寄存器、暂存器、指令寄存器IR、程序计数器PC、程序状态字寄存器PSW、地址寄存器MAR、数据缓冲寄存器MBR(模型的MDR)、栈指针寄存器SP。

    • 可被编程访问:R0-R3,PSW,PC,SP 不可访问:IR、MAR、MDR、C、D

    • PSW中有些位可以被编程修改 √

    • 控制部件

    • 时序系统

    • 数据通路和控制通路

  2. 寻址方式:

    • 立即寻址:直接在指令里读操作数

    • 直接寻址:给出内存地址或寄存器号,以读取操作数

    • 间接寻址:从某寄存器或主存中读取一个地址,然后再到这个地址读取操作数

    • 变址寻址:如X(R0),表示 取PC指向的地址里的值 加上R0里的值 得到操作数的有效地址 然后在这个地址里就可以找到操作数。实质是将形式地址作为基址地址,寄存器里的内容为偏移量。

    • 基址寻址:将寄存器的内容作为基址地址,形式地址作为偏移量。

  3. 模型机的一些寻址方式:

    • R: 寄存器的内容作为操作数

    • (R):寄存器的内容作为有效地址

    • -(R):寄存器的内容-1后作为有效地址

    • (R)+:寄存器的内容作为有效地址,访问完成后寄存器的内容+1

    • @(R)+:寄存器的内容为间接地址,访问完成后寄存器的内容+1

    • X(R):见14

  4. 模型机的控制系统结构:微命令发生器、时序系统,以及对IR、PSW、PC的信息输入。

  5. 控制系统的输入信号:IR、PSW、PC、时序系统、IO请求、复位信号

  6. 时序系统:一条指令的完成(指令周期),分为若干个工作周期,每个工作周期又分为若干个时钟周期(节拍)

  7. 并行加法器的运算速度取决于传递进位信号的逻辑电路(进位链)

  8. 串行进位链:$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$

  9. 四大基本工作周期:

    • 取址周期FT:完成将指令从M取出送进IR,以及修改PC

    • 源周期ST:读取操作数,暂存于C

    • 目的周期DT:读取目的地址放入MAR,或读取目的操作数,暂存于D

    • 执行周期ET:执行数据传输、运算等

  10. 指令流程:重点一张图

  1. 常见模型机指令流程(微指令):

    • 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送出的值复制到寄存器

  2. 处理X(R0):X是一个地址,存在当前指令的下一个地址。处理时应取PC指向的地址(因为取值的时候PC已经+1,这时候就指向X)的值与R0的内容相加,得到操作数地址。处理完后PC要+1(略过X)。

第四章

  1. 存储器的主要性能:速度(T,用存储周期表示)、容量(S,用MB GB表示)、价格(C,用每位的价格表示)

  2. 命中率:H = N1 / (N1 + N2),N1:对M1储存器的访问次数;N2:对M2储存器的访问次数

  3. 存取方式分类:

    • RAM:随机访问存储器,如主存和高速缓存;

    • SAM:顺序访问存储器,按顺序遍历查找,如磁带

    • DAM:直接访问存储器,可以先直接确定一块区域,然后再顺序查找,如磁盘

  4. 存储器的技术指标:

    • 存取时间TA:进行一次读写的时间

    • 存取周期TM:本次存取到下次存取开始的时间 TM = TA + 传输、复原等时间

    • 数据传输率DTR,也叫传输带宽

  5. 主存的逻辑设计:

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

    • 设计过程:

    低位分配给芯片,高位用于片选逻辑。剩下的位留空。

    片选逻辑用来选择芯片。这里的片选实际上只用到了两个地质线A11-A12(能表示2^2个芯片).

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

    补充连线图:

  6. 奇偶校验:约定校验码中1的个数为奇数/偶数,码距=1。例:偶校验:1011001 0 ; 1911911 1.

  7. 海明校验:可以找出错误的位。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两个校验位负责校验。每个校验位都对其负责的位进行奇偶校验(异或)。接收方重新按检测位进行检验,如果发现不一致,综合所有检测位的结果,排除一致的检测位,算出有错的位。

第五章

  1. 总线定义:一组能为多个部件分时共享的信息传送线路;总线分类:CPU内总线、部件内总线、系统总线、外总线;

  2. 接口定义:主机与外设间的连接逻辑,控制外设I/O操作;接口分类:并行接口(接口与系统)、串行接口(接口与外设)。

  3. 中断定义:CPU暂停执行现行程序,转去执行为某个随机事态服务的中断处理程序。处理完毕后自动恢复原程序的执行。典型应用:管道中、低速I/O操作;处理故障。

  4. 中断的流程:保护现场-中断服务处理-恢复现场-开中断-返回

  5. DMA定义:直接存储器访问,是依靠硬件而不需要CPU的直接在主存与外围设备之间进行数据传送的方式,如磁盘IO。·

上一页CSAPP 第二章笔记下一页CSAPP Lab1. Datalab

最后更新于1年前