10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第4天 2018/10.29)

10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第4天 2018/10.29


今天是 2年修完清华6个CS硕士学位第40天

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. 今日学习成果

今日评分:85分(效率中上)

• 视频501 处理器设计的主要思路
○ 初步理解 处理器的设计步骤
○ 掌握 R I型MIPS指令的详细信息(功能,格式)
○ 掌握对 各个指令进行需求分析 的方法
○ 通过分析指令系统的需求,得出硬件部分需要满足哪些功能
○ 学会设计如下部件的基本功能,以及理解这么设计的原因
○ ALU 立即数拓展部件 程序计数器(pc) 寄存器堆 储存器
○ 理解我们为什么需要设计“两读一写”寄存器
○ 需要支持同时读出两个寄存器,和写入一个寄存器, 这样的寄存器堆特征,我们称为“两读一写”。
○ 理解为什么指令存储器是只读的(它不是PC,而是一个存储器),地址和数据都是32位的
○ 深刻理解寄存器堆的读写控制特性
○ 有3个数据接口信号,分别对应两读一写:busA,busB,busW
○ 理解Rw Ra Rb信号的功能;busA,busB,busW的意义
○ 写信号受时钟控制(在时钟信号( clk) 的上升沿, 如果写使能信号有效( WriteEnable==1) , 将busW的内容存入该寄存器
○ 寄存器堆的读操作不受时钟控制
○ 深刻理解存储器和寄存器的写使能信号的功能和作用,以及读操作不受时钟控制而写操作受控制;
○ 本节summery
完成了指令系统的分析,得出了对数据通路的需求, 数据通路选择了合适的组件
○ Tips
○ 知道:存储器与寄存器堆不同在于,我们只给入一组地址信号, 而不是寄存器堆所提供的两组寄存器编号的输入。
• 视频502 数据通路的建立
○ 本节主旨: 根据指令需求, 连接组件, 建立数据通路
○ 掌握 基于指令需求 设计数据通路的方法
○ 学会逐步建立满足如下指令的数据通路(基于MIPS架构)
○ 使得PC程序计数器能够实现 顺序更新+跳转更新(IFU)
○ 加法和减法指令 addu
○ 逻辑运算指令 ori
○ 访存指令 lw sw
○ 检测点:请复述IFU和ADDU两个数据通路整个流程
• 视频503 运算指令的控制信号
○ 掌握add指令的操作步骤(三步)
○ 了解ori指令的操作步骤(三步)
○ 理解add指令为什么是在一个时钟周期之内执行完毕的,理解一个时钟周期内的不同时间段都在干嘛。
• 视频504 访存指令的控制信号
○ 懂了503节就没不用复习这节了,这节内容和503基本一样
○ 了解 sw lw的数据通路流程和控制信号
• 视频505 分支指令的控制信号
○ 懂了503节就没不用复习这节了,这节内容和503基本一样
○ 掌握beq指令的数据通路层面的实现流程(信号是怎么传递的,各个控制信号的值是多少)
• 视频506 控制信号的集成
○ 掌握 如何根据我们之前设计的控制信号,设计出一个完整的CPU集成电路图
○ 本节实际上是我上周学的“如何将真值表变成实际电路图”的问题
○ 因为我已经学过了,所以很简单,不用复习

• 视频601 流水线的基本原理
○ 理解 五级流水线的大致框架
○ 理解 流水线寄存器的作用
○ 掌握:会计算并比较不同深度的流水线的性能大小
○ T-理解 流水线寄存器会带来额外的延迟,从而使得流水线做完一道菜要花费的时间比单周期更久
○ T-HJ流水线定理
• 视频602 流水线的优化
○ 不平衡的流水线
○ 它造成的缺点
○ 什么是不平衡的流水线?
○ 为什么不平衡的流水线必须干等着?
○ 超级流水线
○ 什么是超级流水线?
○ 为什么超级流水线能提升CPU时钟频率?为什么深度越深,时钟频率越大?
○ 掌握:计算不同深度的超级流水线的时钟周期
○ 深刻理解:流水线的级数不是越多越好;
○ 理解:为什么现在我们很难通过继续增加流水线的深度来获得性能上的提升
○ 理解:非常著名的CPU频率大战的意义(没有意义)
• 视频603 超标量流水线
○ 知道名词:双发射,四发射,N发射
○ 掌握:超标量流水线的工作原理和能够提升性能的原因
○ 理解:超标量流水线和之前的标量流水线的关系
○ 理解:多核CPU和超标量流水线之间的关系
• 北大604 流水线的冒险
○ 理解三大冒险的定义
○ 掌握如下两种结构冒险发生的原因以及解决方案
○ 同时读写存储器
○ 同时读写寄存器
○ 为什么存储器规定不能同时读写?(因为我们所有的单个MIPS汇编指令都不需要同时对存储器进行读写),而寄存器需要同时读写
• 北大605 数据冒险的处理
○ T-理解:软件层面解决数据冒险(Nop)的缺点
○ T-理解:硬件层面识别是否发生数据冒险的方法
○ T-理解:load-use冒险不可以用单纯的前递技术来- 解决
○ 理解数据前递技术相较于类空泡法的优点
○ 掌握数据前递技术的三种情况
○ 第1旁路-ALU输出前递
○ 第2旁路-存储器输出前递
○ load-use问题解决

• 北大606 控制冒险的处理
○ 意义:理解转移指令为什么会对流水线性能造成的严重影响
○ T-我们为什么要为了beq而改进译码部件,如何改进?
○ 理解转移指令的开销的概念以及哪两个方面会造成开销?
○ T-理解:为什么我们愿意为了降低beq的流水开销而去更改译码电路?
○ 深刻理解三类转移指令和流水线的关系
○ j指令竟然不会让流水线停顿
○ beq,jr指令会让流水线停顿1周期
○ 掌握延迟转移技术的原理和功能

• 北大701 存储参差结构概况
○ T-理解:为什么早期计算机不需要Cache(SRAM)?
○ 掌握:会计算不同内存性能对CPU执行时间的影响
• 北大702 DRAM和SRAM
○ 为什么DRAM速度慢?
○ 为什么SRAM贵?
○ 为什么SRAM耗能高?
○ 掌握DRAM和SRAM的内部结构以及其工作原理
知道了他们的那些特点是如何产生的。(集成度 功耗 价格 速度等特点)

3. 今日时间表

在这里插入图片描述

4. 今日反思

  1. 今日效率中上,评分89分,挺满意的,基本上全天心流状态。唯一美中不足的地方便是晚上睡觉前(23点~24点)效率有点低
  2. 人生只有一次,努力,然后创造奇迹。

5. 明日目标

完成北大课程3章的学习(困难-极大)

  • 学习北大计组第7章:存储器层次结构
  • 学习北大计组第8章:中断和异常
  • 学习北大计组第9章:I/O设备
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值