01 / 导读
导读
引用
Harris, S. L., & Harris, D. (2021). Digital Design and Computer Architecture, RISC-V Edition. Morgan Kaufmann (Elsevier).
章节概要
纸质书共八章,约 540 页。关于嵌入式输入/输出的第九章,以及关于数字系统实现、RISC-V 指令集和 C 语言编程的附录,通过本书的配套网站提供。据出版社介绍,本书“带领读者从数字逻辑的基础一直走到实际的处理器设计”,从逻辑门出发,经过组合电路和时序电路,最终设计出 RISC-V 微处理器,全书贯穿使用 SystemVerilog 和 VHDL。
第 1 章:From Zero to One(从零到一)
开篇一章(约 50 页)是整个序列的起点。章名“从零到一”,加上出版社所说本书从数字逻辑门讲起,表明本章引入数字逻辑的基本概念。
第 2 章:Combinational Logic Design(组合逻辑设计)
本章(约 50 页)设计输出只取决于当前输入的电路,以逻辑门为构件。
第 3 章:Sequential Logic Design(时序逻辑设计)
第 3 章(约 65 页)加入带有存储的电路,其输出还取决于过去的输入。它是两章逻辑设计中篇幅较长的一章。
第 4 章:Hardware Description Languages(硬件描述语言)
本章(约 65 页)讲授描述电路所用的语言。出版社说,SystemVerilog 和 VHDL 贯穿全书,用于基于 CAD 的设计示例;作者的勘误表提到本章有一个七段数码管译码器示例。
第 5 章:Digital Building Blocks(数字构件)
第 5 章(约 60 页)建立在第 2、3 章的组合电路和时序电路之上。出版社称这些为“基本构件”,并说它们构成了后续处理器设计的基础。
第 6 章:Architecture(体系结构)
体系结构一章(约 90 页)使读者透彻理解 RISC-V 指令集;出版社称,这使读者能够在硬件仿真、软件仿真和实际硬件中为 RISC-V 处理器编程。配套的 I/O 一章回指本章第 6.5.1 节,其中把一部分地址空间留给 I/O 设备。
第 7 章:Microarchitecture(微体系结构)
这是篇幅最长的一章(约 105 页),用来构建处理器。出版社列出了 RISC-V 体系结构的单周期、多周期和流水线版本的 SystemVerilog 与 VHDL 设计。勘误表显示,本章习题包括时序问题,例如假定相等比较器的延迟。
第 8 章:Memory Systems(存储系统)
纸质书以一章简短的内容(约 45 页)讲存储系统收尾,是八章中最短的一章。
配套内容:第 9 章与附录
第 9 章 Embedded I/O Systems(嵌入式 I/O 系统,约 64 页)先介绍内存映射 I/O,然后展示如何使用带有 RISC-V 微控制器的 SparkFun RED-V RedBoard,涉及其通用、串行和模拟 I/O、定时器与脉宽调制,最后讲与字符 LCD、VGA 显示器、蓝牙模块和电机的接口。附录 A(Digital System Implementation)涵盖 74xx 逻辑、可编程逻辑、专用集成电路、数据手册、逻辑系列、开关与 LED、封装、传输线和经济学,并注明理解本书其余部分并不需要它。附录 B 以表格概述 RISC-V 指令集(RV32I、RV64I、浮点、乘除、压缩指令、伪指令和特权指令),附录 C 是一份由浅入深直到常见错误的 C 语言入门。
核心概念
第 1–5 章:数字设计
- 组合逻辑与时序逻辑:有存储与无存储的两类电路,其他一切都由它们构建。
- 硬件描述语言:用 SystemVerilog 和 VHDL 描述、仿真和综合电路。
- 数字构件:由门和寄存器构成的标准较大部件。
第 6–8 章:体系结构与微体系结构
- RISC-V 指令集:软件与处理器之间的接口。
- 单周期、多周期与流水线微体系结构:同一体系结构的三种实现及其权衡。
- 存储系统:处理器如何与存储器相连。
配套第 9 章与附录
- 内存映射 I/O:通过普通的加载和存储访问设备。
- 微控制器外设:RISC-V 开发板上的 GPIO、串行与模拟 I/O、定时器和脉宽调制。
评析
优点
- 从门到处理器的一条主线。 各章顺序沿一条线从逻辑走向可运行的 RISC-V 处理器;出版社把目标描述为让读者构建自己的微处理器,并对其工作原理有自上而下的理解。
- 包含硬件描述语言。 SystemVerilog 和 VHDL 都有介绍,基本构件和三种处理器版本都有相应设计,读者可以选择自己用的语言。
- 现代而开放的指令集。 RISC-V 版采用开源体系结构,配套网站上的附录 B 给出了基本指令集和扩展指令集的指令表。
- 丰富的配套资源。 作者网站提供讲课幻灯片、实验、插图、HDL 文件、奇数号习题的解答、视频、名为 SonicRV 的 RISC-V 可视化工具,以及两门可免费观看的 edX 课程(数字设计和计算机体系结构)。
- 实用的硬件章节。 在线的 I/O 一章让体系结构落到能在真实开发板上运行的东西上。
局限
- 部分重要内容仅在线提供。 I/O 一章和三个附录不在纸质书中,读者需要访问配套网站。
- 存储部分较简短。 存储系统一章只有约 45 页,比微体系结构一章短得多,不能替代专门的体系结构教材。
- 只有一种指令集和一块开发板。 一切都建立在 RISC-V 上,I/O 示例使用特定的 SparkFun 开发板;需要 MIPS 或 ARM 内容的读者应查看本书的其他版本。
- 公开的解答只涵盖一半习题。 作者网站只提供奇数号习题的解答,所以自学读者对其余习题没有公开答案。
在课程中的定位
这本书自硬件向上展开:读者要自己设计处理器。Bryant 和 O'Hallaron 的 Computer Systems: A Programmer's Perspective 从程序员一侧出发,通过 C、机器代码、存储器和操作系统机制来讲机器,因此是很合适的软件方面的搭档。Petzold 的 Code 是面向普通读者的叙述性入门,可以排在本书之前;Nisan 和 Schocken 的 The Elements of Computing Systems 是项目式的路径,同样从逻辑门起步,一直做到编译器和操作系统。
读完本书之后,Hennessy 和 Patterson 的 Computer Architecture: A Quantitative Approach 是研究生层次的研究,讨论设计选择如何影响性能和能耗;Shen 和 Lipasti 的 Modern Processor Design 则讲述超出第 7 章所达到的流水线设计的超标量处理器。
如何使用本书
出版社说明的读者对象是修读数字逻辑与计算机体系结构合并课程的电气工程、计算机工程和计算机科学本科生,以及想了解 RISC-V 体系结构的专业人士。本书也适合先学数字逻辑、再学计算机组成的两学期课程。
实用的安排:
- 核心: 按顺序读第 1 至 8 章。第 1 至 3 章和第 5 章是数字设计的核心,第 4 章最好与它们同时读,每出现一个电路就编写并仿真。
- 体系结构部分: 第 6 至 8 章,读第 6 章时把附录 B 的 RISC-V 指令表摆在一旁。
- 可选: 有 RISC-V 开发板的话读第 9 章;想了解实际工程问题读附录 A;不熟悉 C 语言则读附录 C。
- 练习: 使用习题、奇数号习题的解答和作者网站上的实验,并通过 edX 课程观看带互动题的视频讲座。
