本书采用流行的教学法,从计算机组成和设计向下至更精细的层次,详细展示如何用SystemVerilog和VHDL构建MIPS微处理器。本书为学生提供了一个很好的机会,使他们可以在现代FPGA上进行大型的数字设计,既能增长学生的专业知识,又能启发学生运用所学知识去解决实际问题。
—— David A. Patterson
加州大学伯克利分校,《计算机组成与设计》的作者之一
本书采用一种独特的现代数字设计方法,先介绍数字逻辑门,接着讲述组合电路和时序电路的设计,并以这些基本的数字逻辑设计概念为基础,重点介绍如何设计实际的MIPS处理器。另外,在全书的实例中运用SystemVerilog和VHDL展示基于CAD的电路设计方法和技术。通过本书,读者能够构建自己的微处理器,并能够自顶向下地理解微处理器的工作原理。
第2版更新了关于微机上通用处理器以及几乎随处可见的微控制器中的I/O系统的内容,提供了多个实例来说明如何使用RS232、SPI、电机控制、中断、无线和模数转换器与外围设备交互。除了对全书内容进行更新和扩展外,新版在编程和代码例题中采用SystemVerilog(替代Verilog)与VHDL两种语言给出数字系统设计的实现。中文版还新增附录D“MIPS处理器的FPGA实现”,补充在实际开发板和软件开发环境上设计和实现计算机微处理器系统的相关内容。
第2版特色
介绍数字逻辑设计的基础知识,并通过设计实际的MIPS微处理器来加强逻辑概念。
在例题部分,分别用两种最流行的硬件描述语言(SystemVerilog和VHDL)给出相应数字系统设计的实现。
通过大量示例,加深读者对关键概念和技术的理解和记忆。
新增附录D“MIPS处理器的FPGA实现”,帮助读者使用主流工具和软件开发环境进行实际应用设计。
前
戴维·莫尼·哈里斯
(David Money Harris)
哈维玛德学院工程系教授,拥有斯坦福大学电子工程博士学位,麻省理工学院电子工程与计算机科学硕士学位。他曾在Intel公司从事Itanium和Pentium II处理器的逻辑和电路设计,并担任Sun Microsystems、 惠普、 Evans & Sutherland和其他设计公司的顾问。他的兴趣包括教学、构建芯片、户外探索。他取得了12项专利,并且与人合著了三本芯片设计方面的教材。
莎拉 L. 哈里斯
(Sarah L. Harris)
哈维玛德学院工程系助理教授,拥有斯坦福大学电子工程博士学位。她曾为惠普、圣地亚哥超算中心、Nvidia公司和微软亚洲研究院工作,擅长计算机体系结构设计和系统设计。
后
陈俊颖
现任华南理工大学软件学院讲师,是广州市机器人软件及复杂信息处理重点实验室成员、华南理工大学智能软件与机器人科研团队成员。她于香港大学获得电机电子工程博士学位(获得全额奖学金资助),此前于浙江大学获得电子信息工程学士学位(获得优秀毕业生荣誉称号)。她目前主要从事医学超声成像算法性能研究、异构高性能实时计算、超级计算应用及性能分析、实时医学超声成像系统设计、医学超声图像识别算法研究等方面的科研及教学工作。此外,她是IEEE、ACM和中国计算机学会(CCF)会员,并于2012年1月获得IEEE-HKN国际学术荣誉学会永久会员。
目前已经有很多优秀的数字逻辑设计书籍,也有一些很好的计算机体系结构教材(例如,Patterson和Hennessy撰写的经典教材),为什么还需要出版一本包含了数字逻辑设计和体系结构的书呢?本书的独特之处在于从计算机体系结构的视角来学习数字逻辑设计,内容从基本的二进制开始,直到引导学生完成MIPS处理器的设计。
多年来,我们曾在哈维玛德学院使用了多个版本的《Computer Organization and Design》(计算机组成与设计)(由Patterson和Hennessy撰写)。我们特别欣赏该书覆盖了MIPS处理器的体系结构和微体系结构,因为MIPS处理器是获得商业成功的体系结构,而且它也非常简单,可以在导论课程中向学生解释清楚,并可以由学生自主设计和实现。由于我们的课程没有预修课程,所以前半个学期需要介绍数字逻辑设计,而这部分没有被《Computer Organization and Design》所包含。其他大学也表示需要一本能包含数字电路设计和体系结构的教材。于是,我们着手开始准备这样一本包含了数字逻辑设计和体系结构的书。
我们相信设计处理器对于电子工程和计算机专业的学生是一个特殊而重要的经历。对外行而言,处理器内部的工作几乎像魔术一样,然而事实证明,如果详细解释,处理器的工作原理就非常易于理解。数字逻辑设计本身是一个令人激动的主题。汇编语言程序则揭示了处理器内部所用的语言。而微体系结构将两者联系在一起。
本书适合于在一个学期内完成教学的数字逻辑设计和计算体系结构入门课程,也可以用于两个学期的教学,以便用更多的时间来消化和理解书中所讲的知识并在实验室中进行实践。不需要任何预修内容也可以教授这个课程。本书一般在大学本科二年级或者三年级使用,也可以提供给聪明的一年级学生学习。
特点
本书有以下特点。
并列讲述SystemVerilog和VHDL语言
硬件描述语言(Hardware Description Language,HDL)是现代数字逻辑设计实践的中心,而设计者分成了SystemVerilog语言和VHDL语言两个阵营。在介绍了组合逻辑和时序逻辑设计后,本书紧接着就在第4章介绍硬件描述语言。硬件描述语言将在第5章和第7章用于设计更大的模块和整个处理器。然而,如果不讲授硬件描述语言,那么可以跳过第4章,而后续章节仍然可以继续使用。
本书的特色在于使用并列方式讲述SystemVerilog和VHDL,使读者可以快速地对比两种语言。第4章描述适用于这两种硬件描述语言的原则,而且并列给出了这两种语言的语法和实例。这种并列方法使得在教学中教师可以选择其中一种硬件描述语言来讲述,也可以让读者在专业实践中很快地从一种描述语言转到另一种描述语言。
经典的MIPS体系结构和微体系结构
第6章和第7章主要介绍MIPS体系结构。这部分内容主要改编自Patterson和Hennessy的论著。MIPS是一个理想的体系结构,因为每年有上百万实际产品投入使用,而且高效和易于学习。同时,世界各地上百所大学已经围绕MIPS体系结构开发了教学内容、实验和工具。
现实视角
第6、7、8章列举了Intel公司x86处理器系列的体系结构、微体系结构和存储器层次结构。第8章还介绍了Microchip PIC32微控制器的外部设备。这些章节揭示了书中所讲的概念如何应用到很多PC内部芯片和消费电子产品的设计中。
高级微体系结构概览
第7章介绍了现代高性能微体系结构的特征,包括分支预测、超标量、乱序执行操作、多线程和多核处理器。这些内容对于第一次上体系结构课程的学生比较容易理解,并说明了本书介绍的微体系结构原理是如何扩展到现代处理器的设计中的。
章末的习题和面试问题
学习数字设计的最佳方式是实践。每章的最后有很多习题来实际应用所讲述的内容。习题后面是同行向申请这个领域工作的学生提出的一些面试问题。这些问题可以让学生感受到面试过程中可能遇见的典型问题。习题答案可以通过本书的配套网站和教师网站获得。更详细的内容参见下文——在线补充资料。
在线补充资料
关于本书教辅资源,使用教材的教师需通过爱思唯尔的教材网站(wwwtextbookselseviercom)注册并通过审批后才能获取。具体方法如下:在wwwtextbookselseviercom教材网站查找到该书后,点击“instructor manual”便可申请查看该教师手册。有任何问题,请致电01085208853。——编辑注
补充材料可以通过textbookselseviercom/9780123944245获得。本书配套网站(对所有读者开放)包括了以下内容:
●奇数编号习题的答案。
●Altera和Synopsys公司专业版计算机辅助设计工具的链接。
●QtSpim(一般称为SPIM)的链接,一个MIPS模拟器。
●MIPS处理器的硬件描述语言(HDL)代码。
●Altera Quartus Ⅱ工具的提示。
●Microchip MPLAB IDE(集成开发环境)工具的提示。
●PPT格式的电子教案。
●课程示例和实验素材。
●勘误表。
教师网站(链接到本书配套网站,仅提供给在textbookselseviercom注册的使用者)包括:
●所有习题的答案。
●Altera和Synopsys公司专业版计算机辅助设计工具的链接(Synopsys公司为取得资格认证的大学提供Synplify Premier工具的50个许可证。更多Synopsys大学计划内容请参见本书教师网站)。
●JPG格式和PPT格式的书中插图。
关于在课程中使用Altera、Synopsys、Microchip和QtSpim工具的更详细的内容请参见下文。构建实验工具的细节也将在下面介绍。
如何使用课程中的软件工具
Altera Quartus II
Quartus Ⅱ Web Edition是QuartusTM Ⅱ FPGA设计工具的免费版本。基于此软件,学生可以使用原理图或者硬件描述语言(SystemVerilog或VHDL)完成数字逻辑设计。在完成设计后,学生可以使用Altera Quartus Ⅱ Web Edition中包含的ModelSimTMAltera Starter Edition工具模拟电路。Quartus Ⅱ Web Edition还包含支持SystemVerilog或者VHDL的内置逻辑综合工具。
Web Edition和Subscription Edition两个软件的区别在于,Web Edition仅支持Altera公司部分常用的FPGA器件。ModelSimAltera Starter Edition和ModelSim商业版的区别在于,Starter Edition降低了10000多行硬件描述语言代码的模拟速度。
Microchip MPLAB IDE
Microchip MPLAB IDE是用于PIC微控制器编程的工具,可免费下载。MPLAB将程序的编写、编译、模拟和调试集成到一个界面。它包括一个C编译器和调试器,允许学生开发C语言和汇编程序,编译它们,以及可选择地将它们编程到PIC微控制器。
可选工具:Synplify Premier和QtSpim
Synplify Premier和QtSpim是本课程资料的可选工具。
Synplify Premier产品是一个面向FPGA和CPLD设计的综合和调试环境。它包含HDL Analyst,一个独特的图形化HDL分析工具,自动生成可以回HDL源代码交叉探测的设计示意图。在学习和调试过程中这非常有用。
Synopsys公司为取得资格认证的大学提供SynplifyPremier工具的50个许可证。更多关于Synopsys大学计划内容或者Synopsys FPGA设计软件信息,请参见本书教师网站(textbookselseviercom/9780123944245)。
QtSpim(简称为SPIM)是一个可运行MIPS汇编代码的MIPS模拟器。学生可以在文本文件中输入MIPS汇编代码,通过QtSpim进行模拟。QtSpim显示指令、存储器和寄存器的值。用户手册和示例文件的链接可以通过本书配套网站(textbookselseviercom/9780123944245)访问。
实验
配套网站提供了从数字逻辑设计到计算机体系结构的一系列实验的链接。这些实验教学生如何使用Quartus Ⅱ工具来输入、模拟、综合和实现他们的设计。这些实验也包含了使用Microchip MPLAB IDE完成C语言和汇编语言编程的内容。
经过综合后,学生可以在Altera DE2开发和教育板上实现自己的设计。这个功能强大且具有价格优势的开发板可以通过wwwalteracom获得。该开发板包含可通过编程来实现学生设计的FPGA。我们提供的实验描述了如何使用Cyclone Ⅱ Web Edition在DE2开发板上实现一些设计。
为了运行这些实验,学生需要下载并安装Altera Quartus Ⅱ Web Edition和Microchip MPLAB IDE。教师也需要选择软件安装在实验室的机器上。这些实验包括如何在DE2开发板上实现项目的指导。这些实现步骤可以跳过,但是我们认为它有很大的价值。
我们在Windows平台上测试了所有的实验,当然这些工具也可以在Linux上使用。
错误
正如所有有经验的程序员所知道的,比较复杂的程序都毫无疑问存在潜在的错误。本书也不例外。我们花费了大量的精力查找和去除本书的错误。然而,错误仍然不可避免。我们将在本书的网站上维护和更新勘误表。
请将你发现的错误发送到ddcabugs@onehotlogiccom。第一个报告实质性错误而且在后续版本中采用了其修改意见的读者可以得到1美元的奖励!
致谢
首先,我们要感谢David Patterson和John Hennessy。他们在《Computer Organization and Design》(计算机组成与设计)一书中对MIPS微体系结构进行了开创性的介绍。我们多年以来讲授了该书的多个版本。感谢他们对这本书的慷慨支持,以及允许在他们的微体系结构上进行设计。
我们喜爱的卡通画作家Duane Bibby花费了很长时间和努力来说明数字电路设计中有趣的奇遇。我们也很感激Morgan Kaufamann公司的Nate McFadden、Todd Green、Danielle Miller、Robyn Day以及团队的其他同事,没有他们的热情支持,本书将无法面世。
我们要感谢Matthew Watkins为第7章“异构多处理器”一节撰稿。我们也感谢Chris Parks、Carl Pearson和Johnathan Chai为本书第2版测试代码和开发内容。
很多评阅人也对本书的质量给予了很大的帮助。他们包括:John Barr、Jack VBriner、Andrew CBrown、Carl Baumgaertner、AUtku Diril、Jim Frenzel、Jaeha Kim、Phillip King、James PinterLucke、Amir Roth、ZJerry Shi、James EStine、Luke Teyssier、Peiyi Zhao、Zach Dodds、Nathaniel Guy、Aswin Krishna、Volnei Pedroni、Karl Wang、Ricardo Jasinski以及一位匿名评阅人。
我们也非常感谢哈维玛德学院上这个课程的学生,他们对本书的草稿提供了有帮助的反馈。需要特别记住的是:Matt Weiner、Carl Walsh、Andrew Carter、Casey Schilling、Alice Clifton、Chris Acon和Stephen Brawner。
最后,但同样重要的是,我们要感谢家人的爱和支持。
本书以一种易于接受的方式介绍了从计算机组成和设计到更细节层次的教学内容,展现了如何使用VHDL和System Verilog语言设计MIPS处理器的技术细节。为学生提供在现代FPGA上实现大型数字系统设计的机会。书中提供的方法既向学生传授了知识又具有启发性。
——David APatterson,加利福尼亚大学伯克利分校
本书为传统的教学内容提供了新的视角。很多教科书看上去像繁杂的灌木丛,作者在这 本书中将“枯枝”去除,同时保留了最基本的内容,并把这些内容放到了现代的环境中。因此,他们提供的教材可以激发学生未来挑战设计方案的兴趣。
——Jim Frenzel,爱达荷大学
Harris的写作风格引人入胜,而且能提供很多知识。他们对材料的运用水平很高,通过大量的图来引导学生进入计算机工程领域。组合逻辑电路、微体系结构和存储器系统等内容处理得非常好。
——James PinterLucke,克莱蒙麦肯纳学院
Harris的这本书非常清晰且易于理解。习题的设计非常好,同时也提供了很多现实案例。这本书避免了许多其他教材中冗长而费解的解释。很明显,作者花费了很多时间和努力来提高这本书的可读性。本人强烈推荐这本书。
——Peiyi Zhao,查普曼大学
Harris撰写了一部成功融合数字系统设计和计算机体系结构的教材。这是一本很受欢迎的教科书, 它介绍了很多数字系统设计的内容,同时详细解释了MIPS体系结构的细节。本人强烈推荐这本书。
——James EStine,Jr,俄克拉荷马州立大学
这是一本令人印象深刻的书。Harris将晶体管、电路、逻辑门、有限状态机、存储器、算术部件等微处理器设计中的所有重要元素完美地结合在一起,并最终引出计算机体系结构。这本书为理解如何完美地设计复杂系统提供了很好的指导。
——Jaeha Kim, Rambus公司
这是一本写得非常好的书,不仅适用于第一次学习这些领域的年轻工程师,而且可以为有经验的工程师提供参考。本人强烈推荐这本书。
——AUtku Diril,Nvidia公司
计算机\硬件
本书采用流行的教学法,从计算机组成和设计向下至更精细的层次,详细展示如何用SystemVerilog和VHDL构建MIPS微处理器。本书为学生提供了一个很好的机会,使他们可以在现代FPGA上进行大型的数字设计,既能增长学生的专业知识,又能启发学生运用所学知识去解决实际问题。
——David A. Patterson,加州大学伯克利分校,《计算机组成与设计》的作者之一
本书基于作者丰富的教学和实践经验,以幽默的写作风格展示了最新的数字设计技术。书中采用一种独特的现代数字设计方法,先介绍数字逻辑门,接着讲述组合电路和时序电路的设计,并以这些基本的数字逻辑设计概念为基础,重点介绍如何设计实际的MIPS处理器。另外,在全书的实例中运用SystemVerilog和VHDL展示基于CAD的电路设计方法和技术。通过本书,读者能够构建自己的微处理器,并能够自顶向下地理解微处理器的工作原理。
第2版更新了关于微机上通用处理器以及几乎随处可见的微控制器中的I/O系统的内容,提供了多个实例来说明如何使用RS232、SPI、电机控制、中断、无线和模数转换器与外围设备交互。除了对全书内容进行更新和扩展外,新版在编程和代码例题中采用SystemVerilog(替代Verilog)与VHDL两种语言给出数字系统设计的实现。第2版还提供了更多的习题和一个新的关于C语言编程的附录,以加强编程与处理器体系结构之间的联系。
第2版特色
介绍数字逻辑设计的基础知识,并通过设计实际的MIPS微处理器来加强逻辑概念。
在例题部分,分别用两种最流行的硬件描述语言(SystemVerilog和VHDL)给出相应数字系统设计的实现。
通过大量示例,帮助读者加深对关键概念和技术的理解和记忆。
配套网站中提供了丰富的教辅资源,包括教学幻灯片、实验材料、奇数题答案、HDL文件,以及各种用于FPGA设计的CAD工具的下载链接等。
数字设计和计算机体系结构(英文版·第2版)
书号:978-7-111-44810-5
定价:129.00元
[美]戴维·莫尼·哈里斯(David Money Harris) 哈维玛德学院,莎拉 L.哈里斯(Sarah L. Harris) 哈维玛德学院 著:戴维?莫尼?哈里斯(David Money Harris) 哈维玛德学院工程学教授,拥有斯坦福大学电子工程博士学位,麻省理工学院电子工程与计算机科学硕士学位。他曾在Intel公司从事Itanium和Pentium II处理器的逻辑和电路设计,并担任Sun Microsystems、 惠普、 Evans & Sutherland和其他设计公司的顾问。他的兴趣包括教学、构建芯片、户外探索。他取得了12项专利,并且与人合著了三本芯片设计方面的教材。
莎拉?L.哈里斯(Sarah L. Harris) 哈维玛德学院工程学副教授,拥有斯坦福大学电子工程博士学位。她曾为惠普、圣地亚哥超算中心和Nvidia公司工作,擅长计算机体系结构设计和系统设计。
陈俊颖 译:暂无简介
数字逻辑设计、计算机体系结构、嵌入式系统和片上系统设计等课程是计算机系统课程的主体。本书巧妙地将数字设计和计算机体系结构融合在一起,既明确了数字设计是计算机体系结构的基础知识,也让读者了解了计算机体系结构课程如何运用数字设计课程中的关键知识。本书各章节知识连贯衔接,自然而然地引导读者从最基本的0和1一直深入到计算机微处理器的构建。通过本书,完全没有计算机系统和软硬件知识的学生,也能从零开始循序渐进地掌握设计计算机微处理器以及编写相应程序的基本原理和方法。
“层次化、模块化、规整化”三大计算机软硬件通用的设计原则,贯穿本书始终。通过这样的设计思想学习,读者能建立良好的工程设计思路,为将来设计大规模的复杂软硬件系统打下良好的基础。同时,第2版的内容紧密贴近领域新动态,书中涉及的相关数据、编程语言、软件工具、硬件结构等都紧跟行业发展。在征得原书作者和原出版社同意的情况下,本书增加了附录D“MIPS处理器的FPGA实现”,补充在实际开发板和软件开发环境上设计和实现计算机微处理器系统的相关内容。通过本书的学习,能增强读者使用主流工具和开发环境进行实际应用设计的能力。
此外,本书内容丰富充实,文字通俗流畅,叙述风趣幽默,并配有大量示例和习题,有助于读者理解和掌握数字设计和计算机体系结构的相关知识。本书不仅适合用于相关专业课程的教学,也适合作为相关工程技术人员的参考书籍。
本书由华南理工大学陈俊颖翻译定稿。在本书的完成过程中,华南理工大学的陈虎(原书第1版译者)和闵华清等老师给予了大力的支持与帮助,机械工业出版社的姚蕾等编辑提出了宝贵的意见并付出了辛勤的劳动,Imagination Technologies公司的RobertOwen、Laurence Keung和工程师提供了积极的建议和技术支持,在此对他们表示衷心的感谢!
在本书翻译过程中,译者力求准确无误地表达原文意思,尽可能使文字流畅易懂。但是受译者水平和时间所限,难免有疏漏和错误之处,恳请广大读者不吝指正。
最后,特别感谢我的家人一直以来对我无私的关爱。
译者
2016年1月6日
出版者的话
译者序
本书赞誉
前言
第1章二进制1
11课程计划1
12控制复杂性的艺术1
121抽象1
122约束2
123三Y原则3
13数字抽象3
14数制4
141十进制数4
142二进制数5
143十六进制数6
144字节、半字节和全字7
145二进制加法8
146有符号的二进制数8
15逻辑门10
151非门11
152缓冲器11
153与门11
154或门11
155其他两输入逻辑门11
156多输入门12
16数字抽象13
161电源电压13
162逻辑电平13
163噪声容限13
164直流电压传输特性14
165静态约束15
17CMOS晶体管*16
171半导体16
172二极管17
173电容17
174nMOS和pMOS晶体管17
175CMOS非门19
176其他CMOS逻辑门19
177传输门20
178类nMOS逻辑20
18功耗*21
19总结和展望22
习题22
面试问题28
第2章组合逻辑设计29
21引言29
22布尔表达式31
221术语31
222与或式31
223或与式32
23布尔代数33
231公理33
232单变量定理33
233多变量定理34
234定理的统一证明方法35
235等式化简36
24从逻辑到门37
25多级组合逻辑39
251减少硬件39
252推气泡40
26X和Z41
261非法值X41
262浮空值Z41
27卡诺图42
271画圈的原理43
272卡诺图化简逻辑44
273无关项46
274小结47
28组合逻辑模块47
281复用器47
282译码器50
29时序51
291传播延迟和最小延迟51
292毛刺54
210总结55
习题55
面试问题60
第3章时序逻辑设计61
31引言61
32锁存器和触发器61
321SR锁存器62
322D锁存器63
323D触发器64
324寄存器64
325带使能端的触发器65
326带复位功能的触发器65
327晶体管级锁存器和触发器的设计*66
328小结66
33同步逻辑设计67
331一些有问题的电路67
332同步时序电路68
333同步电路和异步电路70
34有限状态机70
341有限状态机设计实例70
342状态编码74
343Moore型状态机和Mealy型状态机76
344状态机的分解79
345由电路图导出状态机80
346有限状态机小结82
35时序逻辑的时序82
351动态约束83
352系统时序83
353时钟偏移*87
354亚稳态88
355同步器89
356分辨时间的推导*90
36并行92
37总结94
习题95
面试问题100
第4章硬件描述语言101
41引言101
411模块101
412硬件描述语言的起源101
413模拟和综合102
42组合逻辑104
421位运算符104
422注释和空白104
423缩位运算符106
424条件赋值106
425内部变量106
426优先级109
427数字109
428Z和X110
429位混合111
4210延迟112
43结构化建模113
44时序逻辑115
441寄存器115
442复位寄存器115
443带使能端的寄存器116
444多寄存器116
445锁存器119
45更多组合逻辑119
451case语句120
452if语句122
453带有无关项的真值表122
454阻塞赋值和非阻塞赋值124
46有限状态机127
47数据类型*130
471SystemVerilog130
472VHDL131
48参数化模块*133
49测试程序135
410总结138
习题138
面试问题145
第5章数字模块146
51引言146
52算术电路146
521加法146
522减法151
523比较器152
524算术逻辑单元153
525移位器和循环移位器154
526乘法*155
527除法*156
528补充阅读156
53数制157
531定点数157
532浮点数*157
54时序电路模块160
541计数器160
542移位寄存器160
55存储器阵列162
551概述162
552动态随机访问存储器164
553静态随机访问存储器165
554面积和延迟165
555寄存器文件165
556只读存储器165
557使用存储器阵列的逻辑167
558存储器HDL167
56逻辑阵列168
561可编程逻辑阵列169
562现场可编程逻辑门阵列169
563阵列实现*173
57总结174
习题174
面试问题180
第6章体系结构181
61引言181
62汇编语言182
621指令182
622操作数:寄存器、存储器和常数183
63机器语言187
631R类型指令187
632l类型指令188
633J类型指令189
634解释机器语言代码189
635存储程序189
64编程190
641算术/逻辑指令190
642分支193
643条件语句194
644循环195
645数组197
646函数调用200
65寻址方式206
66编译、汇编和装入208
661内存映射208
662转换成二进制代码和开始执行程序209
67其他主题*211
671伪指令211
672异常212
673有符号指令和无符号指令212
674浮点指令213
68从现实世界看:x86结构*214
681x86寄存器215
682x86操作数215
683状态标志216
684x86指令集216
685x86指令编码218
686x86的其他特性219
687小结219
69总结219
习题220
面试问题227
第7章微体系结构228
71引言228
711体系结构状态和指令集228
712设计过程229
713MIPS微体系结构230
72性能分析230
73单周期处理器231
731单周期数据路径231
732单周期控制235
733更多指令237
734性能分析239
74多周期处理器240
741多周期数据路径240
742多周期控制244
743更多指令252
744性能分析254
75流水线处理器255
751流水线数据路径257
752流水线控制258
753冲突258
754更多指令269
755性能分析269
76硬件描述语言表示*270
761单周期处理器270
762通用模块274
763基准测试程序276
77异常*279
78高级微体系结构*281
781深流水线282
782分支预测282
783超标量处理器284
784乱序处理器285
785寄存器重命名287
786单指令流多数据288
787多线程288
788同构多处理器289
789异构多处理器289
79从现实世界看:x86微体系结构*290
710总结295
习题296
面试问题300
第8章存储器和输入/输出系统301
81引言301
82存储器系统性能分析304
83高速缓存305
831高速缓存中存放的数据305
832高速缓存中的数据查找305
833数据的替换311
834高级高速缓存设计*312
835MIPS高速缓存的发展*314
84虚拟存储器315
841地址转换316
842页表317
843转换后备缓冲器318
844存储器保护319
845替换策略*319
846多级页表*319
85I/O简介321
86嵌入式I/O系统322
861PIC32MX675F512H微控制器322
862通用数字I/O326
863串行I/O328
864计时器336
865中断337
866模拟I/O339
867其他微控制器外设343
87PC I/O系统358
871USB359
872PCI和PCI Express360
873DDR3内存360
874网络360
875SATA361
876连接到PC361
88从现实世界看:x86存储器和I/O系统*363
881x86高速缓存系统363
882x86虚拟存储器364
883x86可编程I/O365
89总结365
后记365
习题365
面试问题371
附录A数字系统实现372
附录BMIPS指令396
附录CC语言编程400
附录DMIPS处理器的FPGA实现433
补充阅读452
索引454