E-BOOK 【101教材】计算机组成与实现 高小鹏,万寒 【101教材】计算机组成与实现

【101教材】计算机组成与实现

👤 高小鹏,万寒 📖 高等教育出版社 📋 9787040618976 🌐 zh-CN
52
下载次数
4.8
用户评分

📦 下载本书

  • 理解CPU工作原理:通过从零开发功能型CPU,深入掌握指令执行、数据通路与控制器的核心机制。
  • 掌握硬件设计方法:学习基于模型的CPU开发流程,提升分析、设计和实现计算机硬件系统的实践能力。
  • 打通汇编与组成知识:将汇编语言与计算机组成原理融合,建立从软件指令到硬件实现的完整认知链条。
  • 应对复杂系统设计:通过单周期、多周期、流水线CPU的递进设计,学会权衡性能与复杂度,解决实际工程问题。
  • 强化动手实验能力:配套实验体系与自动评测系统,帮助读者在实践中验证理论,克服“只学不练”的困境。
★★★
中级
入门初级中级进阶高级
  • 计算机专业本科生:作为“101计划”核心教材,适合系统学习计算机组成原理,打下扎实硬件基础。
  • 考研备考学生:覆盖组成原理核心考点,结合CPU开发实践,有助于深入理解抽象概念。
  • 硬件开发爱好者:通过动手设计CPU,提升数字逻辑与硬件描述语言的实际应用能力。
  • 软件工程师:了解底层硬件执行机制,有助于编写高效代码并优化程序性能。
  • 相关技术人员:需要参考计算机硬件设计方法,解决工作中遇到的系统级问题。
  1. 循序渐进:按章节顺序阅读,先掌握数据表示与指令集,再进入CPU设计,避免跳跃导致理解断层。
  2. 重点攻克:第4至6章是核心,建议反复研读单周期、多周期和流水线CPU的设计过程,并配合实验验证。
  3. 动手实践:每章后的实验必须完成,利用希冀平台的自动评测系统检验设计正确性,强化动手能力。
  4. 结合视频:对于重难点,如流水线冒险处理,可先观看配套视频再阅读文字,提高学习效率。
  5. 综合应用:学完前8章后,重点完成第9章集成MIPS微系统,将各模块整合,检验整体掌握程度。
  • 模型化设计思维:掌握基于模型的CPU开发方法,能够将复杂系统分解为可验证的模块。
  • 指令集深入理解:精通MIPS指令集及其编码,能熟练编写和阅读汇编程序。
  • CPU架构实现能力:独立设计并实现单周期、多周期及流水线CPU,理解性能权衡。
  • 存储与IO知识:掌握存储层次、缓存原理及输入输出机制,构建完整计算机系统观。
  • 工程实践技能:通过实验与评测系统,提升调试、测试和优化硬件设计的实战能力。
  • 职业发展基础:为后续学习操作系统、编译原理及从事芯片设计等方向奠定坚实基础。

📖 书籍简介

内容简介
  《计算机组成与实现》是计算机领域本科教育教学改革试点工作(“101计划”)系列教材之一,以开发一个具有数十条指令规模且能够通过严格测试的功能型CPU为挑战性学习成果,培养学生掌握基于模型的CPU开发方法,进而具备分析、设计和开发计算机硬件系统的基本能力,为后续专业学习与职业发展奠定坚实基础。
  《计算机组成与实现》根据设计一台计算机的教学要求,将传统意义上的汇编语言和计算机组成两门课程的相关知识进行重构,包括计算机概述、数据表示与运算方法、计算机指令、单周期CPU、多周期CPU、流水线CPU、存储层次、输入输出和集成MIPS微系统等内容。同时,创新性地介绍“CPU形式建模综合方法”,并以“系统设计详解”的形式讲解系统设计中的思考重点与权衡精要。
  为了满足读者对在线开放学习的需求,《计算机组成与实现》配套建设了重难点知识点视频、相关工具操作视频、教学课件、难度递进的实验体系和自动评测系统。上述所有教学资源均部署在希冀平台(具体操作参见附录B.5),便于读者在线实践。
  《计算机组成与实现》既可作为高校本科计算机类专业计算机组成课程教材,也可供相关技术人员参考。
内页插图
目录
第1章 计算机概述
1.1 计算机的应用及其分类
1.2 计算机的基本硬件构成
1.2.1 输入输出设备
1.2.2 主存储器
1.2.3 中央处理器
1.3 计算机的层次结构
1.4 本章小结
思考题

第2章 数据表示与运算方法
2.1 常见进制及其转换
2.1.1 十进制
2.1.2 二进制
2.1.3 十六进制
2.2 字节、字等常用术语
2.3 二进制加法
2.4 整数的二进制表示方法
2.4.1 原码
2.4.2 补码
2.5 浮点数的二进制表示方法
2.6 补码的常见基本运算
2.6.1 负数的二进制补码表示
2.6.2 减法
2.6.3 符号扩展
2.6.4 比较
2.6.5 乘法
2.6.6 除法
2.7 本章小结
思考题

第3章 计算机指令
3.1 MIPS指令集概述
3.2 CPU执行程序的基本原理
3.2.1 程序的全流程
3.2.2 主存储器
3.2.3 CPU
3.2.4 指令与指令集
3.2.5 示例程序执行过程解读
3.2.6 CPU执行程序的核心要点
3.3 计算器:一个综合案例
3.4 指令格式及其操作数
3.4.1 指令基本格式
3.4.2 第1类操作数:寄存器
3.4.3 第2类操作数:立即数
3.4.4 第3类操作数:主存单元
3.5 指令集与汇编程序
3.5.1 汇编程序的基本结构
3.5.2 主存变量声明
3.5.3 读存储器
3.5.4 写存储器
3.5.5 寄存器加载立即数高位
3.5.6 算术运算
3.5.7 逻辑运算
3.5.8 分支指令与if-else、switch及循环结构
3.5.9 伪指令
3.5.10 移位指令
3.5.11 函数
3.5.12 空操作指令
3.6 指令编码
3.6.1 R型指令
3.6.2 l型指令
3.6.3 J型指令
3.7 汇编与反汇编实战
3.7.1 汇编
3.7.2 反汇编
3.8 实验指引
3.8.1 MARS的获取与安装
3.8.2 实验内容
3.9 本章小结
思考题

第4章 单周期CPU
4.1 单周期CPU设计模型
4.1.1 MIPS-CO指令集
4.1.2 单周期CPU的基本结构
4.1.3 完整的数据通路模型
4.1.4 完整的单周期CPU模型
4.2 数据通路基础部件建模
4.2.1 程序计数器
4.2.2 次地址计算单元
4.2.3 指令存储器
4.2.4 寄存器堆
4.2.5 数据存储器
4.2.6 算术逻辑单元
4.3 构建单周期CPU的数据通路
4.3.1 从addu指令开始
4.3.2 支持subu指令
4.3.3 支持ori指令
4.3.4 支持lw指令
4.3.5 支持sw指令
4.3.6 支持beq指令
4.3.7 支持jal指令
4.3.8 支持jr指令
4.4 构建单周期CPU的控制器
4.4.1 addu指令的执行过程及其控制信号取值
4.4.2 0ri指令的执行过程及其控制信号取值
4.4.3 lw指令的执行过程及其控制信号取值
4.4.4 beq指令的执行过程及其控制信号取值
4.4.5 生成控制信号表达式
4.5 集成数据通路与控制器
4.6 单周期CPU性能分析
……

第5章 多周期CPU
第6章 流水线CPU
第7章 存储层次
第8章 输入输出
第9章 集成MIPS微系统

附录
参考文献
前言/序言
  一、本书写作背景
  本书起因于我作为亲历者至今仍深度参与的一项教学研究工作。2006年,北京航空航天大学计算机学院(以下简称“学院”)经历了首批工程教育专业认证试点工作。这项工作让我们认识到“学习知识≠具备能力”,明确了教学体系必须从“传授知识转向能力培养”,并思考一个问题:计算机专业学生的核心能力是什么?2007年,学院启动了一项对计算机专业本科教育教学产生深远影响的改革工作:将计算机组成、操作系统、编译技术等计算机专业必修课程组建为课程群,并提出课程群建设目标是培养本科生自主开发功能型的“CPU、操作系统、编译器”的能力。后来,教育部高等学校计算机类专业教学指导委员会将这种能力命名为“计算机系统能力”,在全国范围内开展并推动“系统能力培养”教育教学改革工作。这项工作从2007年至今持续近二十年,已经逐步成为当前计算机类专业的教学改革热点之一,有力地支撑了“能力培养”等核心理念在一大批计算机专业的有效实施。
  计算机组成是课程群的首门课程,也是学院本科课程体系中变革最剧烈的课程,我提出了“大课重课”建设思路,即知识面宽、挑战度高、实验强度大。课程不仅要在一个学期内讲授大量的理论知识,还要求学生独立开发一个具有数十条指令规模且通过严格测试的功能型CPU。目前,学院2/3以上本科生能够开发出具有30条指令以上规模且充分转发的5级标准流水线,并通过高强度的自动化评测。
  教学实践表明,对于正在学习计算机组成课程的本科生来说,开发如此复杂度的CPU是极具挑战的。显然,本项工作对教师也提出了挑战。教师不能仅仅给学生定义挑战性教学目标,更要探寻一条帮助学生直达顶峰的可行之路!于是,这催生了本书的核心内容-CPU形式建模综合方法。
  二、本书的特点
  本书的第1个特点是精简教学内容。
  经历了数十年的高速发展,计算机硬件技术的知识体系已经非常庞大,绝大多数计算机组成教材讲授的内容也随之越来越多。在规划本书内容时,我曾经一度非常纠结。
  为了实现CPU开发这个教学目标,学院的计算机组成课程包含传统意义上的数字电路、汇编语言和计算机组成3门课程的知识体系。要在一门课程中容纳如此庞大的知识体量并且在一个学期内完成教学,就要采用颇为激进的方法。RISC——计算机领域里程碑式的技术,也是本书讲授的内容,为我们指明了思路:围绕顶层教学目标剔除大量关联度极低甚至无关联的知识点,从而构建出必须讲授的核心知识。于是,这些在教学过程中形成的核心知识,就成为本书讲述的内容。考虑到很多高校仍设置了独立的数字电路相关课程,因此这部分内容未纳入本教材中。
  本书的第2个特点是重视工程实践。
  要想了解计算机的工作原理,最好的方式莫过于亲自动手设计一台计算机。为帮助学生完成这个任务,本书除介绍理论知识外,还包含大量工程实践相关的内容。本书还在最后一章给出了一个较为完整的功能型计算机的开发过程,有助于学生形成对计算机完整的、系统的认识。此外,本书以“系统设计详解”方式探讨了设计思想、思考要素、设计权衡以及软硬件协同等高层次内容,且这些内容具有广泛的适用性,不仅局限在计算机硬件方面。
  在课程讲授和教材建设过程中,也同步自主开发了配套的实验体系与相应的自动评测系统。读者可以登录在线平台进行实验学习,并完成自动评测,以检验所学效果。具体操作请参见附录B.5。另外,我们针对部分章节的重点内容还配套了微视频,以帮助读者更好地理解教学内容。
  本书的第3个特点是讲授CPU开发方法。
  迄今为止,CPU始终处于计算机硬件技术体系的核心位置。因此,无论是教材、课程,还是实验,CPU都是核心内容。我们希望学生开发的CPU能支持数十条指令而不仅是几条指令。这是因为:一是使学生对整个计算机系统理解得更全面、更深刻,二是为学生学习后续操作系统课程打下坚实的基础,三是使学生能够以CPU为例体会系统设计的思想精要。严格地说,缺乏规模的系统就不称其为系统!
  一般认为,当指令集规模增长后需要更多的开发时间和大量的“技巧”来应对复杂度的非线性增长。本书介绍的“CPU形式建模综合方法”可以高效地分解CPU开发任务,极大地降低开发复杂度。如果遵循这套方法并保持足够细心,学生就能在有限的时间内完成以前难以完成的任务。
  现代计算机的底层硬件、核心软件以及关键算法的复杂度越来越高,因此其开发过程也越来越依赖于基于模型的开发方法。本书之所以要花费很大篇幅来讲授该方法的目的在于:通过CPU开发这一实例,帮助学生学习和实践了一种基于模型的开发方法。我始终认为,掌握一般性方法比掌握具体知识更重要。
  本书的第4个特点是同时讲授MIPS和LoongArch两种计算机体系结构。
  无须避讳,我国长期以来在CPU、操作系统、编译器等计算机底层核心技术方面缺乏储备,从而导致计算机核心技术和产品高度依赖国外。随着国家政策的持续发力以及科研体系的不断完善,一大批具有完全知识产权的自主计算技术正在迅速发展并逐步成为市场不可或缺的力量。我认为在本科教学体系中非常有必要让学生同时学习多种技术。为此,本书同时讲授了MIPS和LoongArch两种CPU指令集,前者是源自国外的技术,后者则是我国具有完全自主知识产权的CPU核心技术。我希望通过对比分析式学习,能让学生扩大知识面并在一定程度上提升思辨能力。
  本书的第5个特点是将内容分为基础与拓展两部分。
  我国目前有1000余个计算机相关专业。由于它们在人才培养方面存在显著的差异化和层次化,因此不能要求一本教材讲授的知识适用于所有专业,也很难要求每位学生学习并掌握教材中的全部内容。为此,本书将教学内容分为基础和拓展两部分。
  基础部分侧重讲授核心知识,因此我个人认为基础部分应该作为绝大多数学生都应该学习的内容。拓展部分则主要侧重讲授CPU形式建模综合方法、LoongArch体系结构以及少量前沿技术。对于拓展部分来说,教师和学生可以根据自己的实际情况选择学习内容。例如CPU形式建模综合方法涉及单周期、多周期和流水线三种架构,学生可以只做单周期CPU,或者做完单周期再做多周期,再或者三者皆做。
  三、本书主要内容及组织
  本书主要内容按基础部分和拓展部分组织。其中基础部分包括如下主要内容:
  1)指令集是整个计算机硬件部分最重要的抽象技术之一,是计算机软硬件的接口。它向上提供给软件操作硬件的基本方法,并隐藏了硬件的实现细节,向下则为CPU硬件开发提供了设计需求。学习指令集就是学习计算机硬件语言,这是深入学习其他内容的前提。
  2)虽然汇编语言在现代软件开发中愈发不重要,但是掌握汇编语言是开发CPU的基础,也有助于理解计算机系统行为。

📑 章节目录

  1. 计算机概述
  2. 数据表示与运算方法
  3. 计算机指令
  4. 单周期CPU
  5. 多周期CPU
  6. 流水线CPU
  7. 存储层次
  8. 输入输出
  9. 集成MIPS微系统
  10. CPU形式建模综合方法
  11. 系统设计详解
  12. 实验与评测系统指南