计算机系统结构
分類: 图书,计算机/网络,计算机理论,
作者: 陈智勇 主编
出 版 社: 西安电子科技大学出版社
出版时间: 2004-1-1字数: 493000版次: 1页数: 324印刷时间: 2006/08/01开本: 16开印次: 3纸张: 胶版纸I S B N : 9787560613093包装: 平装内容简介
本书系统地讲述了计算机系统结构的基本概念、设计原理和分析方法,以及有关的先进技术和最新的发展趋向。
全书共分9章。第1章讲述计算机系统层次结构,计算机系统结构、组成、实现的定义及相互关系,计算机性能,计算机系统结构的分类。第2章讲述指令格式的优化,CISC、RISC、退耦CISC/RISC、后RISC的有关概念及其采用的相关技术。第3章讲述存储体系,页式虚拟存储器和Cache存储器。第4章讲述标量流水线技术,超标量超流水技术,VLIW体系结构以及先进的流水线调度技术。第5章讲述并行处理技术,SIMD并行处理机及互连网络。第6章讲述向量的流水处理,提高向量处理性能的常用技术。第7章讲述多处理机结构,多处理机Cache的一致性,多处理机性能模型以及并行机的最新发展趋势。第8章主要讲述并行算法的基础知识。第9章主要讲述程序流机制,数据流程序图和数据流机的基本结构。
本书内容丰富、取材先进,在阐述基本原理的基础上,力图给出设计方法和实例,以帮助读者更好地理解一些比较抽象的概念。每章均有一定数量的例题和习题,书后附有习题的参考答案。本书可作为高等院校计算机专业本科生的教材或有关专业的研究生教材,也可作为科技人员的参考书。
目录
第1章 基础知识
1.1 计算机系统层次结构
1.1.1 按功能划分的多级层次结构
1.1.2 按功能划分层次的好处
1.2 计算机系统结构
1.2.1 计算机系统结构的定义
1.2.2 计算机系统结构研究的内容
1.3 计算机组成
1.3.1 计算机组成的定义
1.3.2 计算机组成设计
1.4 计算机实现
1.4.1 计算机实现的定义
1.4.2 器件技术研究的内容
1.4.3 系统结构、组成、实现三者的关系和相互影响
1.5 计算机性能
1.5.1 性能因子CPI
1.5.2 计算机性能常用指标MIPS和MFLOPS
1.5.3 计算机系统结构的性能评价标准
1.5.4 计算机系统设计的定量原理
1.6 计算机系统的分类
1.6.1 Flynn分类法
1.6.2 冯氏分类法
习题1
第2章 指令系统
2.1 指令格式的优化
2.1.1 操作码的优化表示
2.1.2 指令字格式的优化
2.2 CISC
2.2.1 CISC的发展
2.2.2 CISC的特点
2.3 RISC
2.3.1 RISC结构采用的基本技术
2.3.2 经典CISC和纯RISC体系结构的比较
2.3.3 退耦CISC/RISC
2.4 后RISC
2.4.1 后RISC特征
2.4.2 几种后RISC机器的比较
习题2
第3章 存储系统设计
3.1 存储系统原理
3.1.1 基本概念
3.1.2 多级存储层次
3.1.3 存储系统的性能参数
3.2 交叉访问存储器
3.2.1 主存系统的类型
3.2.2 高位交叉访问存储器
3.2.3 低位交叉访问存储器
3.2.4 拓宽存储器带宽的方法
3.3 页式虚拟存储器
3.3.1 虚拟存储器的工作原理
3.3.2 虚拟存储器的地址映像与变换
3.3.3 页面替换算法及其实现
3.3.4 提高虚拟存储器等效访问速度的措施
3.3.5 影响主存命中率的某些因素
3.4 Cache存储器
3.4.1 Cache存储器的工作原理
3.4.2 Cache存储器的地址映像与变换
3.4.3 Cache替换算法及其实现
3.4.4 Cache的透明性分析
3.4.5 Cache的取算法
3.4.6 影响Cache存储器性能的因素
习题3
第4章 流水线计算机设计技术
4.1 重叠解释方式和相关处理
4.1.1 重叠解释方式的提出
4.1.2 一次重叠工作方式
4.1.3 相关处理
4.2 流水线的工作原理
4.3 流水线的特点
4.4 流水线的分类
4.4.1 根据向下扩展和向上扩展的思想分类
4.4.2 按流水线功能的多少分类
4.4.3 按流水线的工作方式分类
4.4.4 按流水线的连接方式分类
4.5 线性流水线性能分析
4.5.1 吞吐率和加速比
4.5.2 效率
4.6 线性流水线性能分析举例
4.7 非线性流水线的基本概念
4.8 相关处理和控制机构
4.8.1 局部相关的处理
4.8.2 全局相关的处理
4.8.3 流水机器的中断处理
4.9 先进的流水技术——动态调度
4.9.1 流水的集中式动态调度——记分板机制
4.9.2 流水的分布式动态调度——Tomasulo方法
4.9.3 动态硬件预测转移方法
4.10 超标量处理机和VLIW体系结构
4.10.1 超标量处理机
4.10.2 VLIW体系结构
4.11 超流水处理机
4.12 超标量超流水处理机
习题4
第5章 并行处理技术
5.1 计算机系统结构中并行性的发展
5.1.1 并行性的基本概念
5.1.2 实现并行性技术的途径
5.1.3 计算机系统结构中并行性的发展
5.2 SIMD并行处理机
5.2.1 SIMD并行处理机的基本结构与特点
5.2.2 ILLIAC Ⅳ的处理单元阵列结构
5.2.3 阵列处理机的并行算法
5.3 SIMD计算机的互连网络
5.3.1 互连网络的设计准则
5.3.2 互连函数的表示
5.3.3 单级互连网络
5.4 网络特性
5.4.1 结点度和网络直径
5.4.2 聚集带宽和等分带宽
5.4.3 数据寻径功能
5.5 静态连接网络
5.5.1 线性阵列
5.5.2 环和带弦环
5.5.3 循环移数网络和全连接
5.5.4 树形和星型
5.5.5 胖树型
5.5.6 网格型和环网型
5.5.7 超立方体
5.5.8 带环立方体
5.5.9 k元n-立方体网络
5.6 动态连接网络
5.6.1 总线互连方式
5.6.2 交叉开关互连方式
5.6.3 多级网络互连方式
5.6.4 蝶式网络
5.6.5 组合网络
习题5
第6章 向量处理机
6.1 向量处理的基本概念
6.1.1 向量流水处理的主要特点
6.1.2 向量处理机的基本系统结构
6.1.3 向量的处理方式
6.2 一般的向量处理机
6.2.1 寄存器组
6.2.2 多个单功能流水部件
6.2.3 运算流水线
6.3 提高向量处理性能的常用技术
6.3.1 多功能部件的并行操作
6.3.2 链接技术
6.3.3 条件语句和稀疏矩阵的加速处理方法
6.3.4 向量归约操作的加速方法
6.4 向量处理的性能评价
6.4.1 向量流水处理的时间
6.4.2 与向量长度有关的向量流水处理机性能参数
6.5 多向量多处理机
6.5.1 Cray Y-MP
6.5.2 C-90和机群
6.5.3 Fujitsu VP2000
6.5.4 VPP500
习题6
第7章 多处理机
7.1 多处理机结构
7.1.1 多处理机的特点
7.1.2 多处理机的硬件结构
7.2 多处理机的Cache一致性
7.2.1 Cache一致性问题的原因
7.2.2 监听一致性协议
7.2.3 MESI监听协议
7.2.4 基于目录的协议
7.3 程序的划分和调度
7.3.1 粒度的组合和调度
7.3.2 静态多处理机调度
7.4 多处理机性能模型
7.4.1 基本模型
7.4.2 N台处理机系统的基本模型
7.4.3 随机模型
7.4.4 通信开销为线性函数的模型
7.4.5 一个完全重叠通信的理想模型
7.4.6 一个具有多条通信链的模型
7.5 并行机的发展趋势
7.5.1 并行向量处理机
7.5.2 对称多处理机
7.5.3 大规模并行处理机
7.5.4 分布共享存储器多处理机
7.5.5 机群
习题7
第8章 并行算法
8.1 并行算法的基础知识
8.1.1 并行算法的定义和分类
8.1.2 进程中的同构性
8.1.3 并行算法的表达
8.1.4 并行算法中的同步与通信
8.2 同步技术
8.2.1 原子性
8.2.2 控制同步
8.2.3 数据同步
8.2.4 高级同步结构
8.2.5 低级同步原语
8.3 程序并行性的分析
8.3.1 数据相关
8.3.2 控制相关
8.4 并行编程概述
8.4.1 并行编程概况
8.4.2 并行编程方法
8.4.3 并行算法范例
8.5 并行编程模型
8.5.1 蕴式并行性
8.5.2 显式并行模型
习题8
第9章 数据流计算机系统结构
9.1 程序流机制
9.1.1 控制流和数据流
9.1.2 数据流驱动的基本原理
9.1.3 需求驱动方式
9.1.4 归约机模型
9.2 计算模型分类
9.2.1 控制驱动、共享存储器模型
9.2.2 并行控制驱动、共享存储器模型
9.2.3 数据驱动模型
9.2.4 需求驱动模型
9.3 数据流程序图和数据流语言
9.3.1 数据流程序图
9.3.2 数据流语言
9.4 数据流机的基本结构
9.4.1 静态数据流机
9.4.2 动态数据流机
习题9
附录一 各章习题参考答案
习题1参考答案
习题2参考答案
习题3参考答案
习题4参考答案
习题5参考答案
习题6参考答案
习题7参考答案
习题8参考答案
习题9参考答案
附录二 专业术语中英文对照表
参考文献
书摘插图
第1章 基础知识
1.1计算机系统层次结构
1.1.1按功能划分的多级层次结构
现代计算机是通过执行指令来解决问题的,它由软件和硬件两大部分组成。描述一个任务如何实现的指令序列称为程序,所有程序在执行前都必须转换成计算机能识别且能直接执行的机器指令。这些机器指令与机器硬件直接对应,并能被其直接识别和执行,然而使用机器语言编程既不方便,也无法适应解题需要和计算机应用范围的扩大。这个问题可从两方面去解决,前提都是需要设计一个比机器指令更方便使用或编程的指令集合,由它构成新的语言,例如汇编语言。汇编语言是一种符号语言,给程序员编程提供了方便,但尽管每个语句仍基本上与机器指令对应,却并不能被机器直接识别和执行。用汇编语言开发的程序需要某种转换才能在实际机器上执行:一种是翻译(translation),即在执行汇编语言源程序之前生成一个等价的机器语言指令序列来替换它,生成的程序全部由机器指令组成,计算机执行等效的机器语言源程序,而不是原来的汇编语言源程序,也即把源程序先转换成目标程序,然后再在机器上执行目标程序以获得结果;另一种是解释(interpretation),即用机器指令写一个程序,将汇编语言源程序作为输入数据,按顺序检查它的每条指令,然后直接执行等效的机器指令序列来解决问题。
汇编语言源程序可以在机器上运行并获得结果,是因为有汇编程序的支持。在汇编语言程序设计者看来,就好像有了一台用汇编语言作为机器语言的机器。这里的机器是指能存储和执行程序的算法和数据结构的集合体。我们把以软件为主实现的机器称为虚拟机器,而把由硬件和固件实现的机器称为实际机器。显然,虚拟机器的实现是构筑在实际机器之上的。图1.1给出了虚拟机器与实际机器之间构成的一个简单的层次结构。
……