内容简介

  《计算机体系结构基础》由国内从事微处理器设计的一线科研人员编写而成。作者从微处理器设计的角度出发,充分考虑计算机体系结构的学科完整性,强调体系结构、基础软件、电路和器件的融会贯通。《计算机体系结构基础》共分16章,包括指令系统结构、计算机硬件结构、CPU微结构、并行处理结构、计算机性能分析等主要内容,重点放在作为软硬件界面的指令系统结构,以及包含CPU、GPU、南北桥协同的计算机硬件结构上。《计算机体系结构基础》可作为高等学校“计算机体系结构”课程的本科生教材,同时也适合相关专业研究生或计算机技术人员参考阅读。

目录

丛书序言
推荐序
自序
前言
第一部分引言
第1章引言
1.1计算机体系结构的研究内容
1.1.1-以贯之
1.1.2什么是计算机
1.1.3计算机的基本组成
1.2衡量计算机的指标
1.2.1计算机的性能
1.2.2计算机的价格
1.2.3计算机的功耗
1.3计算机体系结构的发展
1.3.1摩尔定律和工艺的
发展
1.3.2计算机应用和体系
结构
1.3.3计算机体系结构发展
1.4体系结构设计的基本原则
1.4.1平衡性
1.4.2局部性
1.4.3并行性
1.4.4虚拟化
1.5本章小结
习题
第二部分指令系统结构
第2章指令系统
2.1指令系统简介
2.2指令系统设计原则
2.3指令系统发展历程
2.3.1指令集的演变
2.3.2存储管理的演变
2.3.3运行级别的演变
2.4本章小结
习题
第3章指令集结构
3.1地址空间
3.2操作数
3.2.1数据类型
3.2.2访存地址
3.2.3寻址方式
3.3指令操作和编码
3.4RISC指令集比较
3.5C语言的机器表示
3.6本章小结
习题
第4章异常与中断
4.1异常分类
4.2异常处理
4.3中断
4.3.1中断的优先级和原子性
4.3.2向量化中断
4.3.3中断传递机制
第三部分计算机硬件结构
第四部分CPU的微结构
第五部分并行处理结构
第六部分系统评价与性能分析

精彩书摘

  《计算机体系结构基础》:
  中断线方式传递中断有一些限制。首先是扩展性不够强,在搭建较复杂的板级系统时会引入过多的共享,降低中断处理的效率。其次,中断处理过程需要通过查询中断控制器以及设备上的状态寄存器来确认中断和中断原因,中间有较长的延迟,同样不利于提高效率。在多处理器平台中,高性能外设(如万兆网卡)对中断处理的性能有更高的要求,需要实现多处理器的负载均衡、中断绑定等功能,传统的中断线方式难以做到。而这正好是消息中断的长处。
  消息中断以数据的方式在总线上传递。发中断就是往指定的地址写一个指定的数。相比总线外增加专门的中断线的“带外”(Side-Band)传输形式,消息中断在“带内”(In-Band)传输。增加中断时不需要改动消息传递的数据通路,因而有较高的扩展性和灵活性,也为更高程度的优化提供了可能。比如一个设备可以申请更多的中断号,使中断处理程序无须查询设备状态,只根据中断号就能知道应当做什么处理。
  ……

前言/序言

  前言计算机体系结构是一门比较抽象的学科,很有可能经过一个学期的学习只学到一些概念。

  本课程教学希望达到三个目的。一是建立学生的系统观。计算机系统的复杂性体现在计算机中各部分之间的关系非常复杂。如苹果iPhone的CPU性能不如Intel的X86CPU,但用户体验明显好于桌面计算机,这就是系统优化的结果。希望学生学完这门课程后能够从系统的角度看待计算机,不再简单地以主频论性能,或者简单地把用户体验归结于CPU的单项性能。二是掌握计算机体系结构的若干概念。计算机体系结构中的概念很多,虽然抽象,但是必须掌握。比如计算机体系结构的四大设计原则,指令系统结构,处理器流水线,等等。三是掌握一些重点知识并具备一些重点能力。主要包括:计算机的ABI接口,存储管理中的虚实地址转换过程,通过10地址空间扫描进行IO设备初始化,计算机系统的启动过程,重要总线如AXI总线、内存总线、PCIE总线的信号及其时序,用Verilog编写RTL代码的能力,先行进位加法器的逻辑,两位一乘补码乘法器逻辑,用Perf或Oprofile进行性能分析的能力,等等。

  《计算机体系结构基础》第一部分为引言,介绍体系结构研究内容、主要性能指标、发展趋势以及设计原则。

  计算机体系结构(ComputerArchitecture)是描述计算机各组成部分及其相互关系的一组规则和方法,是程序员所看到的计算机属性。计算机体系结构主要研究内容包括指令系统结构(In-structionSetArchitecture,简称ISA)和计算机组织结构(ComputerOrganization)。微体系结构(Micro-architecture)是微处理器的组织结构,并行体系结构是并行计算机的组织结构。冯·诺依曼结构的存储程序和指令驱动执行原理是现代计算机体系结构的基础。

  《计算机体系结构基础》第二部分介绍以指令系统结构为核心的软硬件界面,包括指令系统总体介绍、指令集结构、异常与中断、存储管理、软硬件协同等内容。贯穿该部分内容的一个核心思想是建立高级语言(如C语言)与指令系统结构的关系。例如,C语言的语句与指令系统的关系,算术语句可直接映射为相关运算指令,for循环映射为条件跳转,switch语句映射为跳转索引和跳转表等;操作系统中地址空间的组织与指令访问内存的关系,静态全局变量映射到地址空间的静态数据区、局部变量映射到堆栈区、动态分配的数据则映射到进程空间的堆中;操作系统中进程和线程的表示及切换在指令和地址映射方面的具体体现;敲击键盘和移动鼠标等事件如何通过指令系统的外部中断传递到CPU,以及指令系统对操作系统处理外部中断的必要支持;等等。

  《计算机体系结构基础》第三部分介绍计算机硬件结构。该部分的核心思想是搞清楚计算机内部包括CPU、GPU、内存、10之间是如何协同完成软件规定的各种操作的。例如,在计算机开机过程中,BIOS完成硬件初始化后把操作系统从硬盘拷贝到内存执行的过程中南北桥与CPU是如何配合的;CPU和GPU是如何协同操作完成计算机屏幕显示的,在显示过程中哪些活是CPU干的,哪些活是GPU干的;包括以太网、USB等在内的各种IO接口的驱动在硬件上的具体体现是什么;等等。

  《计算机体系结构基础》第四部分介绍微结构。该部分的核心思想是建立指令系统和晶体管之间的“桥梁”。

  微结构是决定CPU性能的关键因素。由于微结构是“计算机体系结构”硕士课程的主要内容,因此本科课程的微结构内容在追求系统地介绍有关概念的基础上,重点把先行进位加法器和五级静态流水线讲透,希望学生通过对先行进位加法器和五级静态流水线的深入了解,举一反三地了解微结构的实现方式。微结构中动态流水线、乱序执行和多发射等内容只做概念性的介绍。

  《计算机体系结构基础》第五部分介绍并行处理结构。应用程序的并行行为是并行处理的基础,现代计算机通过多层次的并行性开发来提高性能。并行处理编程模型包括消息传递模型(如MPI)和共享存储模型(如OpenMP)等。多核处理器的设计需要考虑存储一致性模型、高速缓存一致性协议、片上互连、多核同步等核心问题。

  《计算机体系结构基础》第六部分介绍计算机的性能分析方法。性能不是由一两个具体指标(如主频)决定的,而是若干因素综合平衡的结果;性能评测也没有绝对合理公平的办法,不同的计算机对不同的应用适应性不一样,对某类应用甲计算机比乙计算机性能高,对另外一类应用可能反之。

  巨大的设计空间和工作负载的多样性,导致计算机系统的性能分析和评价成为一个非常艰巨的任务。计算机性能分析的主要方法包括理论建模,用模拟器进行性能模拟,以及对实际系统进行性能评测等。

  上述面面俱到的课程安排主要是考虑到体系结构学科的完整性,但本科课程重点是软硬件界面及计算机硬件结构。对于一般高校,并行处理结构和计算机系统性能分析可以不讲。

  在选修本课程前,学生应对C语言程序设计、数字逻辑电路有一定的基础。本课程试图说明一个完整的计算系统的工作原理,其中涉及部分操作系统的知识。为了有更好的理解,还可以同时选修操作系统课程。课程中的实例和原理介绍以MIPS体系结构为主。与传统课程中讲授的X86体系结构相比,MIPS结构相对简单明晰而又不失全面。学生可以通过配套的实验课程,自底而上构建自己的计算机系统,包括硬件、操作系统以及应用软件,从而对“如何造计算机”有更深刻的认识。

  由于时间仓促,《计算机体系结构基础》还存在不少问题,主要包括不少内容的详略失衡,文字严谨性不够,举例不够导致很多内容过于抽象。好在总体结构基本完整了,在下一版改版时可以重点解决上述问题。下一版改版时争取精选100个例子覆盖《计算机体系结构基础》重要内容,使计算机体系结构进一步从抽象走向具体化。


其他推荐