10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31
今天是 2年修完清华6个CS硕士学位第42天
1. 第4次周计划概览
接下来10天,我将开启第一次主宰力量系列计划(2年精读彻底掌握40本国外计算机类类传世之作)。
第一次主宰力量计划之10天精读掌握 计算机组成与设计(COAD:Patterson and Hennessy,500页)
○ 教材网址:https://book.douban.com/subject/10441748/
○ 作者简介:
§ John L. Hennessy 斯坦福大学校长
§ David A. Patterson 加州大学伯克利分校计算机科学系教授,美国国家工程研究院院士,IEEE和ACM会士
○ 计划时间: 10.24~11.2号(这是2年修完清华6个CS硕士学位之第35天~45天,第4次周计划)
○ 学习时间:平均每天至少核心学习时间达到13小时,10天高效率学习130小时。
○ 伏笔:我对本书的难度也不太了解,如果部分内容难度过高我可能需要13~15天才能完成本教材的学习。
○ 辅助学习视频:
北京大学-计算机组成:http://www.chinesemooc.org/kvideo.php?do=kvideo_announcement&kvideoid=4392&classesid=1967
PS:10.27和10.28两天因为有事没有学习,不计入本次十天计划
2. 今日学习成果
今日评分:81.5分(效率中)
今日目标完成率80%
• 903-输入输出的控制方式
○ 主要复习程序查询传送方式的数据输出过程的流程
○ T-理解程序控制方式的两种分类和优缺点
• 904-中断控制方式
○ 深度掌握:中断控制方式和程序控制方式的优缺点和使用场景(外卖小哥和女朋友)
○ 深度掌握:中断和程序控制各自的优势
○ 能够复述:中断控制方式的数据输出过程
○ 本节中断控制方式的数据输入和输出过程和上节大同小异,不用过于在意此过程的细节。本节的核心是理解中断控制方式和程序控制方式各自的优缺点和适用场景
○ 感知:
○ 程序控制方式-外设被动CPU主动催
○ 中断控制方式-外设有申请服务的主动权,外设主动CPU被动
• 905-外部中断的处理过程
○ T-理解:我们为什么需要中断控制器(PIC)
○ T-理解:为什么可屏蔽中断的类型码由中断控制器提供
○ 掌握外部中断的来源
○ 掌握可屏蔽中断的处理流程
○ 理解中断嵌套的处理流程,以及何时会发生中断嵌套
• 906-直接存储器访问方式
○ 为什么会出现自带DMA控制器的I/O接口?
○ 掌握DMAC的基本工作步骤(详细复述)
○ 掌握CPU配置DMAC参数的流程和意义
○ 掌握DMA,程序,中断三种传送方式的各自使用场景(搬家,女朋友,外卖)
○ 理解独立的DMA控制器的特点和意义
○ 了解:master接口和slave接口的功能,以及存储器 DMA CPU 普通外设分别具有哪些接口。
○ T-理解 DMA传输完成后如何停止?(通过中断通知CPU)
○ T-理解 显卡、网卡、硬盘控制器这些 对传输力要求很高的I/O接口中一般都会自带DMA控制器
• 斯坦福COAD-P,H 4,1节
○ 设计一个MIPS子集的CPU处理器,深度理解其中为了提高CPU速度的许多设计思想
• 斯坦福COAD-P,H 4.2节
○ 理解组合单元和状态单元的定义,功能
○ 理解时钟方法的定义和意义
○ 理解规定信号的读写时间的重要性
○ 了解:我们可以使用边沿触发时钟来实现时钟方法
○ 理解组合逻辑,状态单元,时钟周期的关系 (图4-3)
• 斯坦福COAD-P,H 4.3节
○ T-理解:为何我们设计的程序计数器PC不需要写控制信号?
○ T-理解:为何寄存器堆的读操作不需要读控制信号,而写操作需要写控制信号(因为MIPS指令体系本身的性质决定)
○ T-理解:为何寄存储器的读操作即需要读控制信号,而写操作需要写控制信号(防出错,可能会读错 可能读到别的非法地址去了)
○ 掌握:R型指令的数据通路设计
○ 掌握:访存指令的数据通路设计
○ 掌握:分支指令的数据通路设计
○ T-掌握:CPU设计细节之如何在不同类型的指令间共享部分特定数据(共享数据通路单元)
○ 使用多选器和控制信号
○ T-掌握:CPU设计细节之如何在搭建好基本的数据通路之后精准控制每个状态单元,多选器,ALU的控制信号
○ 通过控制单元实现
○ 理解:寄存器堆的概念
○ T-强逻辑,难,细节
The instruction set architecture specifes that the base for the branch address
calculation is the address of the instruction following the branch. Since we
compute PC + 4 (the address of the next instruction) in the instruction fetch
datapath, it is easy to use this value as the base for computing the branch
target address.
■ The architecture also states that the offset feld is shifed lef 2 bits so that it
is a word offset; this shift increases the effective range of the offset 偏移量 feld by a
factor of 4.
○ T-理解:beq对应的PC跳转更新地址的实现细节
The datapath for a branch uses the ALU to evaluate the branch condition and
a separate adder to compute the branch target as the sum of the incremented PC and the
sign-extended, lower 16 bits of the instruction (the branch displacement), shifted left 2
bits.
○ check
1 Which of the following is correct for a load instruction? Refer to Figure 4.10.
a.1 MemtoReg should be set to cause the data from memory to be sent to the
register fle.
b. MemtoReg should be set to cause the correct register destination to be
sent to the register fle.
c. We do not care about the setting of MemtoReg for loads.
2 Te single-cycle datapath conceptually described in this section must have
separate instruction and data memories, because
a. the formats of data and instructions are different in MIPS, and hence
different memories are needed.
b. having separate memories is less expensive.
c. 1the processor operates in one cycle and cannot use a single-ported
memory for two different accesses within that cycle
• 斯坦福COAD-P,H 4.4节
• 4.4.1
• 生成ALU控制信号的方法
○ 由多级译码的方法生成(ALUoP+funct字段→ALU控制信号)
• 多级译码
○ ALUOp来源(机器指令的字段)
○ funct字段来源(机器指令的字段)
• 理解无关项的概念
• 4.4.2
• T-深刻理解:设计CPU时,多选器在 选择指令的目标寄存器发挥的作用
• 深刻体会:MIPS架构因为限定了几种指令类型,因此CPU构造的过程异常简单。(可以共用很多数据通路组件)
• 深刻理解:控制单元输入和输出
○ 输入:opcode(6位)
○ 输出:一大堆控制信号
• 深刻体会:控制单元是如何一步步的从输入到输出+多级译码,最终控制整个电路的?
• 深刻体会:我们是如何利用MIPS指令的“规整性”,将一个MIPS指令割裂开来,然后让其每一部分对应一个特殊的控制信号,从而实现了该MIPS指令。
○ 如:31-26位,作为控制信号输入
○ 如,25-21位,读寄存器1
○ 如:20-16位,读寄存器2或XXX
○ 如:15-11位:写寄存器
○ 以上描述其实对于更复杂的MIPS指令还有变体,XXX表示的就是变体
• 知道:单周期实现 single clock cycle implementation 的概念
• 掌握 无条件跳转指令的格式+跳转地址组成方式+数据电路实现方式
• 深刻体会:单周期实现的缺点
○ 1:单周期实现和加速大概率事件思想相违背
○ 2:时钟周期太长
3. 今日时间表
4. 今日反思
- 评分81.5分,核心学习时间11.5小时,今天睡懒觉了8点才起床。
5. 明日目标
完成斯坦福9节学习的学习(目标困难-中上)
斯坦福COAD-P&H: 流水线和异常4.5~4.9
斯坦福COAD-P&H: 存储器5.1~5.4