在 CS4100 计算机结构这门课,黄婷婷教授大致按 Computer Organization and Design: The Hardway/Software Interface 这本书的顺序对计算机结构进行了详尽的讲解,着重讲解了1-5章的内容,课程与该教材搭配学习效果极佳。由于在这门课程的开课时间,教材只出到了 4ed,所以选用教材是 4ed,但是 5ed 和 4ed 内容差别不大,所以笔者采用了 5ed 进行学习。
个人认为能力是在实作中提升,但遗憾的是,该课程并未公开作业部分,经过一番搜寻,发现阳明交大李毅郎教授和科技大学刘一宇副教授均有开发 Cache 相关的实作,遂以这些作为本课程的作业。
國立陽明交通大學李毅郎教授相關的 Labs (Lab6 為 Cache Lab):
- https://github.com/nctu-ms07/Computer-Organization [Spring 2020]
- https://github.com/wishx97/Computer-Organization-NCTU [Spring 2018]
- https://github.com/Sea-n/NCTU-109B-Comp-Org [Spring 2021]
本人实作位于目录 Cache-Lab/
國立台灣科技大學劉一宇副教授關於 Cache 的 Labs:
- 快取記憶體組織 [YouTube]
除此之外,大陆高校和科研机构也开设了一些精品实验:
中科院软件所 PLCT 实验室 手搓 RISC-V 高性能模拟器:
- 手搓 RISC-V 高性能模拟器 (2023 年春季) [bilibili]
中科院软件所 PLCT 实验室 从零开始实现链接器:
- 从零开始实现链接器 (2022秋季) [bilibili]
南京大学 计算机科学与技术系 计算机系统基础 课程实验 (PA) 2023:
- ICS2023-南京大学计算机系统基础实验课 [bilibili]
To understand how a computer system work. Emphasis will be placed on
- What characterizes the performance of a computer
- Instruction set design and its interaction with compiler
- Basic building blocks: I/O, Memory, Datapath, Control
- Pipelined datapath
- Website: 10002 資訊工程學系 計算機結構
- Video: 计算机结构 Computer Architecture
P.A.Patterson and J.L. Hennessy, Computer Organization and Design:
The Hardway/Software Interface, 5th Edition.
- Computer abstractions and technology
- The role of performance
- Instructions:language of the machine
- Arithmetic for computers
- The processor: datapath and control
- Enhancing performance with pipelining
- Large and fast: exploiting memory hierarchy
- Interfacing processors and peripherals
ISA 影响Clock Rate,这是因为ISA所提供的指令会影响 Clock Rate。例如,单周期处理器,提供单周期乘法指令和不提供单周期乘法指令的处理器,它们的 Clock Rate 是极有可能不同的。
write through 只需要1个时钟周期,是因为不管 tag 是否命中,重写 cache 的数据不会影响 memory 的数据 (正确数据已被写入memory)。如果下一周期发现 tag 命中,不用作任何处理,如果 tag 未命中,则阻塞并搬运 cache 中此块的其他数据进来 (一般写一个 word,而一个 block 通常不止一个 word,所以需要搬其他的 word 进来并修改 tag)。
write back 不能像 write through 一样无需判断 tag 命中就重写数据,因为被覆盖的数据可能是唯一 (cache 与 memory 的数据不一致)。需要先判断 tag 命中再写入数据,所以需要 2 个时钟周期。
- 國立陽明交通大學 李毅郎教授 計算機組織 Computer Organization – 100學年度
- 國立臺灣科技大學 劉一宇副教授 Computer Organization
- HackMD 上的 資工所考試 資源連結