计算机系统结构-自考
2025-04-06 15:37:43 0 举报
AI智能生成
计算机系统结构自考内容 全本重点内容罗列,逢考必过
作者其他创作
大纲/内容
第4章 存储体系
4.2 虚拟存储器
4.2.1 虚拟存储器的管理方式
段式管理:
程序模块化,每个模块独立,便于链接、修改和保护。
共享程序或数据可单独构成一个段,便于管理。
每道程序有一个段表,存放各段装入主存的状况信息。
页式管理:
主存空间和程序空间等分成固定大小的页,按页顺序编号。
适用于多道程序方式工作。
段页式管理:
结合段表和页表,兼具段式和页式管理的特点。
4.2.2 页式虚拟存储器的构成
地址映像和变换:
将虚存单元按规则装入实主存,建立虚地址与实地址的对应关系。
主存页面位置可对应多个虚页,映像方式影响对应关系。
全相联映像:
主存中任意一块可映像装入到Cache中任意一块位置。
相联目录表法:
压缩页表,只存放已装入主存的虚页与实页位置的对应关系。
采用按内容访问的相联存储器构成。
页面替换算法:
随机算法(RAND):用随机数产生器产生被替换页的页号,简单易实现。
先进先出算法(FIFO):选择最早装入主存的页作为被替换页,实现方便。
近期最少使用算法(LRU):选择近期最少访问的页作为被替换页。
堆栈型替换算法:
LRU算法和OPT算法是堆栈型算法,满足特定条件。
4.2.3 页式虚拟存储器实现中的问题
页面失效的处理:
访问的虚页不在实际主存中时,发生页面失效。
提高虚拟存储器等效访问速度的措施:
提高主存命中率。
提高主存访问速度。
加快内部地址映像和变换,如采用快-慢表层次。
影响主存命中率和CPU效率的因素:
程序地址流、替换算法、分配给程序的实页数(主存容量)。
4.3 高速缓冲存储器(Cache)
4.3.1 工作原理和基本结构
Cache存储器:
弥补主存速度不足,在处理机和主存之间设置高速、小容量的Cache。
构成Cache—主存存储层次,从CPU角度看,速度接近Cache,容量是主存的。
4.3.2 地址的映像与变换
全相联映像:
主存中任意一块可映像装入到Cache中任意一块位置。
直接映像:
主存空间按Cache大小等分成区,每区内的各块按位置一一对应到Cache的相应块位置。
组相联映像:
各组之间是直接映像,组内各块之间是全相联映像。
结合全相联和直接映像的优点,减少块冲突概率,提高Cache空间利用率。
4.3.4 Cache存储器的透明性及性能分析
写回法:
CPU执行写操作时,信息只写入Cache,仅当需要替换时,才将改写过的Cache块写回主存。
写直达法:
处理机写入Cache的同时,也通过通路直接写入主存。
Cache的取算法:
按需取进法,在Cache块失效时才将要访问的字所在块取进。
适当选择Cache的容量、块大小、组相联的组数和组内块数,保证较高命中率。
Cache存储器的性能分析:
评价性能主要看命中率,命中率与块大小、块总数、组大小、替换算法和地址流的簇聚性有关。
Cache速度与容量影响等效访问速度。
4.4 三级存储体系
4.4.1 物理地址Cache
物理地址Cache由“Cache—主存”和“主存—辅存”两个独立的存储层次组成。
4.4.2 虚地址Cache
虚地址Cache是将Cache—主存—辅存直接构成三级存储层次形式。
4.4.3 全Cache
全Cache是最近出现的组织形式,尚不成熟,尚未商品化。
没有主存,只用Cache与辅存中的一部分构成“Cache-辅存”存储体系。
Cache存储系统的等效访问时间要接近于Cache的,容量是虚地址空间的容量。
第5章 标量处理机
5.1 重叠方式
5.1.1 重叠原理与一次重叠
重叠的原理:
指令的重叠解释使机器语言程序的执行速度会比采用顺序解释的有较大的提高。
解释一条机器指令的微操作可归并成取指令、分析和执行三部分。
顺序解释:
各条指令之间顺序串行(执行完一条指令后才取下条指令)地进行,每条指令内部的各个微操作也顺序串行地进行。
优点是控制简单,转入下条指令的时间易于控制。但缺点是上一步操作未完成,下一步操作便不能开始,速度上不去,计算机各部件的利用率低。
一次重叠:
实际上“分析”和“执行”所需的时间常不相同,还需在硬件中解决控制上的同步,保证任何时候都只是“执行k”与“分析k+1”重叠。
这种指令分析部件和指令执行部件任何时候都只有相邻两条指令在重叠解释的方式为“一次重叠”。
5.1.2 相关处理
转移指令的处理:
当程序中遇到条件转移时,一旦条件转移成功,重叠解释实际变成了顺序解释。
指令相关的处理:
对于有指缓的计算机,由于指令是提前从主存取进指缓的,为了判定是否发生了指令相关,需要对多条指令地址与多条指令的运算结果地址比较,看是否有相同的,这是很复杂的。
主存空间数相关的处理:
主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联。
如果让“执行k”与“分析k+1”在时间上重叠,就会使“分析k+1”读出的数不是第k条指令执行完应写入的结果而出错。要想不出错,只有推后“分析k+1”的读。
通用寄存器组相关的处理:
一般的计算机中,通用寄存器除了存放源操作数、运算结果外,也可能存放形成访存操作数物理地址的变址值或基址值。
因此,通用寄存器组的相关又有操作数的相关和变址值或基址值的相关两种。
推后“分析k+1”和设置“相关专用通路”是解决重叠方式相关处理的两种基本方法。前者是以降低速度为代价,使设备基本上不增加。
5.2 流水方式
5.2.1 基本概念
工作原理:
“分析k+1”与“执行k”的一次重叠是把指令的解释过程分解成“分析”与“执行”两个子过程,在独立的分析部件和执行部件上时间重叠地进行。
流水的分类:
按处理的级别可分为部件级、处理机级和系统级。
从流水线具有功能的多少,可以分为单功能流水线和多功能流水线。
按多功能流水线的各段能否允许同时用于多种不同功能连接流水,可把流水线分为静态流水线和动态流水线。
静态流水线在某一时间内各段只能按一种功能连接流水,只有等流水线全部流空后,才能切换成按另一种功能连接流水。
动态流水线的各功能段在同一时间内可按不同运算或功能连接。
从计算机所具有的数据表示角度,可以把流水线处理机分为标量流水机和向量流水机。
标量流水机没有向量数据表示,只能用标量循环方式来处理向量和数组。
向量流水机指的是计算机有向量数据表示,设置有向量指令和向量运算硬件,能流水地处理向量和数组中的各个元素。
从流水线中各功能段之间是否有反馈回路的角度,可以把流水线分为线性流水线和非线性流水线。
5.2.2 标量流水线的主要性能
吞吐率TP和加速比SP:
吞吐率是流水线单位时间里能流出的任务数或结果数。
公式:( Tp = \frac{n}{t_m - t_n + \Delta t} )
效率:
效率是衡量流水线性能的重要指标之一。
5.2.3 标量流水机的相关处理和控制机构
局部性相关的处理
方法:
推后后续指令对相关单元的读,直至在先的指令写入完成。
设置相关直接通路,将运算结果经相关直接通路直接送入所需部件。
全局性相关的处理
定义:全局性相关指的是已进入流水线的转移指令(尤其是条件转移指令)和其后续指令之间相关。
处理方法:
使用猜测法。
加快和提前形成条件码。
采取延迟转移。
加快短循环程序的处理。
流水机器的中断处理
特点:中断会引起流水线断流,但出现概率比条件转移的概率要低得多,且是随机发生的。
处理重点:主要是如何处理好断点现场的保存和恢复,而不是如何缩短流水线的断流时间。
非线性流水线的调度
任务:给定流水线的段数、任务经过流水线的总拍数以及预约表,需要完成以下内容:
写出延迟禁止表F、冲突向量C。
画出流水线状态转移图。
求出最佳调度方案、最小平均延迟及流水线的最大吞吐率。
5.3 指令级高度并行的超级处理机
5.3.1 超标量处理机
定义:超标量处理机采用多指令流水线,每个时钟周期可以同时流出多条指令(称为度m)。
时空图:假设一条指令包含取指令、译码、执行、存结果4个子过程,常规的标量流水线单处理机是在每个时钟周期解释完一条指令,而超标量处理机可以在每个时钟周期处理多条指令。
第6章 向量处理机
6.1 向量的流水处理与向量流水处理机
6.1.1 向量的处理和向量的流水处理
处理方式:
横向(水平)处理方式:逐个求D向量元素的方法,不适合流水处理。
纵向处理方式:对整个向量按相同操作执行完之后再转去执行别的操作,适合流水处理。
分组纵横处理方式:结合横向和纵向处理的优点,适合流水处理。
6.1.3 通过并行、链接提高性能
示例:计算向量D=A×(B+C),采用不同的执行方式(串行、部分并行、链接技术)对性能的影响。
6.2 阵列处理机的原理
6.2.1 阵列处理机的构形和特点
两种构形:
分布式存储器阵列处理机:数据合理地预分配到各个处理单元的局部存储器中,各处理单元主要用自己的局部存储器中的数据运算。
集中式共享存储器阵列处理机:所有处理单元共享一个存储器。
特点:
与流水线处理机相比,阵列处理机利用的是资源重复,而不是时间重叠。利用的是并行性中的同时性,而不是并发性。
6.2.2 ILLIAC IV的处理单元阵列结构
特点:采用分布式存储器,是SIMD系统的主流。
6.2.3 ILLIAC IV的并行算法举例
矩阵加:一维情况,简单并行处理。
矩阵乘:二维数组运算,复杂度较高。
累加和:将顺序相加转为并行相加,利用处理单元的活跃标志位。
6.3 SIMD计算机的互连网络
6.3.1 互连网络的设计目标与互连函数
设计目标:
结构简单,降低成本。
互连灵活,满足算法和应用需求。
信息交换步数少,提高速度性能。
模块性好,便于VLSI实现和系统扩充。
6.3.2 互连网络应抉择的几个问题
操作方式:同步、异步及同步与异步组合。
交换方法:线路交换、包交换及线路与包交换组合。
网络拓扑结构:静态和动态。
6.3.3 基本的单级互连网络
立方体单级网络:基于三维立方体结构,每个处理单元只能直接连到其二进制编号的某一位取反的其他3个处理单元上。
PM2I单级网络:基于“加减2i”操作,实现特定的互连函数。
混洗交换单级网络:包含全混(Perfect Shuffle)和交换(Exchange)两种互连函数。
蝶形单级网络:通过交换二进制地址的最高位和最低位实现互连。
6.3.4 基本的多级互连网络
交换开关:具有两个入端和两个出端的交换单元,用于多级互连网络。
控制方式:
级控制:同一级的所有开关用一个控制信号控制。
单元控制:每个开关独立控制。
部分级控制:第i级的所有开关用i+1个信号控制。
多级网络类型:
多级立方体网络(如STARAN网络、间接二进制n方体网络)。
多级混洗交换网络(如omega网络)。
多级PM2I网络。
基准网络:作为中间介质,模拟其他网络的拓扑和功能。
多级交叉开关网络(如CLOS网络)。
多级蝶式网络。
6.3.5 全排列网络
特点:至少有两个以上的通道能满足一对结点的互连要求,数据寻径不唯一,有较多冗余,可靠性、灵活性较好。
6.4 共享主存构形的阵列处理机中并行存储器的无冲突访问
一维数组存储:并行存储器分体数为4,交叉存放。
二维数组访问:主存有m个分体并行,访问n个元素的数组子集,要求无冲突访问。
错位存放:使行或列的各元素能并行访问,但主对角线和次对角线会冲突。
多维数组问题:数组大小不固定,各维元素个数不等,可能超出分体数m。
6.5 脉动阵列流水处理机
6.5.1 脉动阵列结构的原理
定义:由处理单元(PE)构成,数据同步向前推进。
特点:
结构简单、规整,模块化强,可扩充性好。
数据通信距离短、规则。
高计算并行性,减轻I/O通信量。
专用性强,限制应用范围。
6.5.2 通用脉动阵列结构
描述:未提供详细内容。
第7章 多处理机
7.1 多处理机的概念、问题和硬件结构
7.1.1 多处理机的基本概念和要解决的技术问题
定义:多台处理机共享I/O子系统,通过主存或通信网络协同工作。
目的:
提高解题速度和系统整体性能。
提高系统可靠性、适应性和可用性。
类型:同构型、异构型、分布型。
与阵列处理机对比:
阵列处理机:向量指令操作级并行(SIMD)。
多处理机:作业或任务间并行(MIMD)。
技术问题:
硬件结构:异步通信。
算法:挖掘通用算法的并行性。
系统管理:资源分析、任务分配、调度、同步和通信。
动态资源分配和任务调度:解决动态资源分配和任务调度,防止死锁。
7.1.2 多处理机的硬件结构
紧耦合多处理机:通过共享主存通信,通信速率受限于主存频宽。
层次型
非层次型
松耦合多处理机:通过通道或消息传送系统通信。
机间互连形式:
总线形式
环形互连形式
交叉开关形式
多端口存储器形式
蠕虫穿洞寻径网络
开关枢纽结构形式
存储器组织:并行多体交叉主存系统减少冲突。
7.2 紧耦合多处理机多Cache的一致性问题
7.2.1 多Cache的一致性问题的产生
问题描述:多个Cache中同一信息块内容可能出现不一致。
7.2.2 多Cache的一致性问题的解决办法
解决进程迁移问题:禁止迁移或强制写回主存。
硬件基础:监视Cache协议法和目录表法。
软件基础:不将公用可写数据存入Cache。
7.3 多处理机的并行算法
7.3.1 并行算法的定义和分类
定义:并行算法是多个可同时执行的进程集合,各进程可相互作用、协调和并发操作。
分类:
按运算基本对象:
数值型
非数值型
按并行进程间的操作顺序:
同步型
异步型
独立型
按任务粒度:
细粒度:指向量或循环级的并行
中粒度:指较大的循环级并行
粗粒度:指子任务级的并行
7.3.2 程序并行性的分析
数据相关:如果 ( P_i ) 的左部变量在 ( P_j ) 的右部变量集内,且 ( P_j ) 必须取出 ( P_i ) 的运算结果作为操作数,则 ( P_j )“数据相关”于 ( P_i )。
数据反相关:如果 ( P_j ) 的左部变量在 ( P_i ) 的右部变量集内,且当 ( P_i ) 未取用其变量的值之前,不允许被 ( P_j ) 所改变,则 ( P_j )“数据反相关”于 ( P_i )。
数据输出相关:如果 ( P_i ) 的左部变量也是 ( P_j ) 的左部变量,且 ( P_j ) 存入其算得的值必须在 ( P_i ) 存入之后,则 ( P_j )“数据输出相关”于 ( P_i )。
结论:
先写后读的数据相关:不能并行,特殊情况下可交换串行。
先读后写的数据反相关:可以并行,但必须保证写入顺序。
写-写的数据输出相关:可以并行,但需保证写入顺序。
若同时有先写后读和先读后写:必须并行,读写同步。
无相关或仅有源数据相同:可以并行、顺序串行和交换串行。
7.3.3 并行语言与并行编译
FORK语句:派生出新进程,分配处理机,原进程继续执行。
JOIN语句:作为并发进程的终端语句,用于同步。
7.3.4 多处理机的性能
任务粒度:任务粒度的大小显著影响多处理机的性能和效率。
粒度过小:辅助开销大,系统效率低。
粒度过大:并行度低,性能不会很高。
7.4 多处理机的操作系统
7.4.1 主从型操作系统
优点:
结构简单,实现方便。
可最大限度地利用单处理机操作系统的成果。
缺点:
对主处理机的可靠性要求高。
主处理机负荷过重会影响系统性能。
7.4.2 各自独立型操作系统
优点:
适应分布处理,可靠性高。
系统效率高。
缺点:
实现复杂,共享表格访问冲突增加。
资源利用率低。
7.4.3 浮动型操作系统
优点:
资源负荷平衡好。
灵活性高。
缺点:
设计最为困难。
7.5 多处理机的发展
7.5.1 多处理机发展的几种形式
分布式共享存储器多处理机
对称多处理机
多向量多处理机
并行向量处理机
大规模并行处理机(MPP)
机群系统
7.5.2 机群系统的优点
性能价格比高
开发周期短
可扩展性好
资源利用率高
用户投资风险小
用户编程方便
第8章 数据流计算机和归约机
8.1 数据流计算机
8.1.1 数据驱动的概念
控制流方式:Von Neumann型计算机,指令顺序执行,受程序计数器控制。
数据流方式:数据令牌表示操作数或参数已准备就绪,指令执行序只受数据相关性制约。
8.1.3 数据流计算机的结构
静态和动态:根据对数据令牌处理方式不同,分为静态和动态两类。
8.1.5 数据流计算机的进展
提高并行度等级
同、异步结合
控制流与数据流相结合
8.2 归约机
定义:归约机是需求驱动的,执行操作序列取决于对数据的需求。
特点:
面向函数式语言。
大容量物理存储器和虚拟存储器。
多处理器或处理机并行结构。
适合函数式程序的互连结构。
减少进程调度及通信开销。
第1章 计算机系统结构概论
1.1 计算机系统的层次结构
计算机系统的组成
硬件:运算器、控制器、存储器、输入设备、输出设备
软件:系统软件、应用软件
多级层次结构
从使用语言角度,计算机系统可按功能划分为多层机器级,如微程序机器、传统机器语言机器、操作系统机器、汇编语言机器、高级语言机器、应用语言机器等层次。
层次结构由高到低,传统机器语言机器处于第1级。
1.2 计算机系统结构、计算机组成和计算机实现
计算机系统结构
定义:对计算机系统中各级界面的定义及其功能分配,每级都有自己的系统结构。
属性包括:
数据表示:硬件能直接识别和处理的数据类型及格式。
寻址方式:最小可寻址单位、寻址种类、地址计算等。
寄存器组织:通用/专用寄存器的设置、数量、字长、使用约定等。
指令系统:二进制或汇编指令的操作类型、格式、排序方式、控制机构等。
存储系统组织:主存的最小编址单位、编址方式、容量、最大可编址空间等。
中断机构:中断的分类与分级、中断处理程序功能及入口地址等。
系统机器级的管态和用户态的定义与切换。
I/O结构:输入/输出设备的连接、使用方式、流量、操作结束、出错指示等。
信息保护方式和保护机构等属性。
计算机组成
定义:计算机系统结构的逻辑实现,包括机器级内部的数据流和控制流的组成以及逻辑设计等。
设计要点:
数据通路宽度
专用部件的设置
各种操作对部件的共享程度
功能部件的并行度
控制机构的组成方式
缓冲和排队技术
预估、预判技术
可靠性技术
计算机实现
定义:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。
设计着眼于器件技术和微组装技术,器件技术起主导作用。
确定指令系统中是否要设置乘法指令属于计算机系统结构,主存容量与编址方式的确定也属于计算机系统结构。
三者关系
相同结构的计算机,可因速度不同而采用不同的组成。
一种组成可有多种不同的实现方法。
结构不同会使可能采用的组成技术不同。
1.3 计算机系统的软、硬件取舍及定量设计原理
软、硬件取舍的基本原则
软件功能可以用硬件或固件完成,硬件功能也可以用软件模拟完成,但在性能、价格、实现难易程度上有所不同。
提高硬件功能比例可提高解题速度,减少程序所需存储空间,但增加硬件成本,降低硬件利用率和系统灵活性及适应性。
提高软件功能比例可降低硬件成本,提高系统灵活性和适应性,但解题速度会下降,软件设计费用和存储器用量增加。
原则:
原则1:考虑现有硬件条件下,系统要有高性价比,从实现费用、速度和其他性能要求综合考虑。
原则2:考虑准备采用和可能采用的组成技术,避免过多或不合理地限制各种组成、实现技术的采用。
原则3:不能仅从硬件角度考虑,还应从软件角度为编译和操作系统实现以及高级语言程序设计提供更多硬件支持。
计算机系统的定量设计
内容包括哈夫曼压缩原理、Amdahl定律、程序访问的局部性定律等。
哈夫曼压缩原理:尽可能加速处理高概率事件对性能提高更显著。
Amdahl定律:改进效果好的高性能系统应是各部分性能平衡提高的系统,不能仅靠某个功能部件性能提高。
程序访问的局部性定律:程序访问的局部性包括时间上和空间上的两个局部性。
计算机系统设计的主要任务和方法
主要任务:包括系统结构、组成和实现的设计,涉及软硬件功能分配、计算机指令系统设计、功能组织、逻辑设计、集成电路设计、封装、电源、冷却等。
首先要根据市场和应用情况,确定用户对计算机系统功能、性能和价格的要求,应用软件对功能确定起主要作用。
设计方法包括“由上往下”设计、“由下往上”设计、“从中间开始”向两边设计等。
1.3.1 软、硬件取舍的基本原则
软件功能实现:软件的功能可以用硬件或固件完成,硬件的功能也可以用软件模拟完成,但在性能、价格、实现难易程度上有所不同。
取舍原则:
提高硬件功能比例可以提高解题速度,减少程序所需的存储空间,但会增加硬件成本,降低硬件利用率和系统的灵活性及适应性。
提高软件功能比例可以降低硬件成本,提高系统的灵活性和适应性,但解题速度会下降,软件设计费用和存储器用量增加。
原则:
原则1:考虑现有硬件条件下,系统要有高的性能价格比,主要从实现费用、速度和其他性能要求来综合考虑。
原则2:考虑到准备采用和可能采用的组成技术,避免过多或不合理地限制各种组成、实现技术的采用。
原则3:不能仅从硬件角度考虑,还应从软件角度为编译和操作系统实现以及高级语言程序设计提供更多硬件支持。
1.3.2 计算机系统的定量设计原理
哈夫曼(Huffman)压缩原理:尽可能加速处理高概率的事件远比加速处理概率很低的事件对性能的提高要显著。
Amdahl定律:改进效果好的高性能系统应是一个各部分性能均能平衡得到提高的系统,不能只是其中某个功能部件性能的提高。
程序访问的局部性定律:程序访问的局部性包括时间上和空间上的两个局部性。
1.3.3 计算机系统设计的主要任务和方法
主要任务:
包括系统结构、组成和实现的设计。
涉及软硬件功能分配、计算机指令系统设计、功能组织、逻辑设计、集成电路设计、封装、电源、冷却等。
首先要根据市场和应用情况,确定用户对计算机系统功能、性能和价格的要求。
应用软件对功能的确定起主要作用。
设计方法:
“由上往下”设计(由顶向底)。
“由下往上”设计(由底向顶)。
“从中间开始”向两边设计,这是通用机一般采用的方法。
1.4 软件、应用、器件的发展对系统结构的影响
1.4.1 软件发展对系统结构的影响
统一高级语言:通过统一高级语言,可以提高软件的可移植性和开发效率。
采用系列机:通过系列机的设计,可以提高系统的兼容性和扩展性。
模拟和仿真:
模拟:用机器语言程序解释,其解释程序存储于主存中。
仿真:用微程序解释,其解释程序存储于控制存储器中。
1.4.2 应用发展对系统结构的影响
计算机应用分类:计算机应用可归纳为向上升级的4类:数据处理、信息处理、知识处理和智能处理。
1.4.3 器件发展对系统结构的影响
器件集成度提高:器件集成度的提高,使器件的速度迅速提高,机器主频和速度也有数量级的提高。
器件可靠性提高:器件可靠性有数量级的提高,保证流水技术的实现。
高速、廉价的半导体存储器:使解题速度得以迅速提高的高速缓冲存储器和虚拟存储器的概念真正实现。
现场型PROM器件:使微程序技术得以实现。
高速相联存储器:促进相联处理机这种结构的发展,推动向量机、数组机、数据库机的发展。
1.5 系统结构中的并行性开发及计算机系统的分类
1.5.1 并行性的概念与开发
并行性的含义与级别:
并行性包含同时性和并发性二重含义。
从执行程序的角度来看,并行性等级由低到高可分为四级:指令内部、指令之间、任务或进程之间、作业或程序之间。
从处理数据的角度来看,并行性等级从低到高可以分为四级:位串字串、位并字串、位片串字并、全并行。
从信息加工步骤和阶段来看,并行性等级又分为:存储器操作并行、处理器操作步骤并行、处理器操作并行、指令、任务、作业并行。
并行性开发的途径:
时间重叠
资源重复
资源共享
1.5.2 计算机系统的分类
弗林(Flynn)分类法:
单指令流单数据流(SISD)
单指令流多数据流(SIMD)
多指令流单数据流(MISD)
多指令流多数据流(MIMD)
冯氏分类法:
字串位串(WSBS)——称位串处理方式。
字串位并(WSBP)——称字(字片)处理方式。
字并位串(WPBS)——称位(位片)处理方式。
字并位并(WPBP)——称全并行处理方式。
库克分类法:
单指令流单执行流(SISE)——典型的单处理机系统。
单指令流多执行流(SIME)——带多操作部件的处理机。
多指令流单执行流(MISE)——带指令级多道程序的单处理机。
多指令流多执行流(MIME)——典型的多处理机系统。
第2章 数据表示、寻址方式与指令系统
2.1 数据表示
2.1.1 数据表示的定义
数据表示指的是能由计算机硬件识别和引用的数据类型,表现在它有对这种类型的数据进行操作的指令和运算部件。
2.1.2 高级数据表示
自定义数据表示
标志符数据表示
主要优点:
简化了指令系统和程序设计
简化了编译程序
便于实现一致性校验
能由硬件自动变换数据类型
支持数据库系统的实现与数据类型无关的要求
为软件调试和应用软件开发提供支持
数据描述符和标志符的差别
标志符是和每个数据相连的,合存在一个存储单元中,描述单个数据的类型特征。
数据描述符则是与数据分开存放,用于描述所要访问的数据是整块的还是单个的,访问该数据块或数据元素所要的地址以及其他信息等。
向量、数组数据表示
为向量、数组数据结构的实现和快速运算提供更好的硬件支持的方法是增设向量、数组数据表示,组成向量机。
堆栈数据表示
堆栈计算机的特点:
由高速寄存器组成的硬件堆栈,并附加控制电路,让它与主存中的堆栈区在逻辑上构成整体,使堆栈的访问速度是寄存器的,容量是主存的。
有丰富的堆栈操作指令且功能很强,可直接对堆栈中的数据进行各种运算和处理。
有力地支持了高级语言程序的编译。
有力地支持了子程序的嵌套和递归调用。
2.1.3 引入数据表示的原则
原则1:看系统的效率是否有显著提高,包括实现时间和存储空间是否有显著减少。实现时间是否减少主要看在主存和处理机之间传送的信息量是否减少。
原则2:看引入这种数据表示后,其通用性和利用率是否提高。
2.1.4 浮点数尾数基值大小和下溢处理方法的选择
浮点数尾数基值的选择
阶码部分包含了阶符和阶值两部分,可用原码、补码或增码(移码)表示。
浮点数阶值的位数主要影响可表示区的大小,即表示数的范围大小,而尾数的位数主要影响在可表示区中能表示值的精度。
尾数基值的选择会影响尾数的位数,例如:
基值为2时,尾数位数不变。
基值为8时,尾数位数为原位数的1/3。
基值为16时,尾数位数为原位数的1/4。
基值为10时,尾数位数为原位数的1/4。
浮点数尾数的下溢处理方法
截断法:将尾数超出计算机字长的部分截去,实现最简单。
舍入法:在计算机运算的规定字长之外增设一位附加位,存放溢出部分的最高位,每当进行尾数下溢处理时,将附加位加1。
恒置“1”法:将计算机运算的规定字长的最低位恒置为“1”,实现最简单,但最大误差较大。
查表舍入法:用ROM或PLA存放下溢处理表,速度较快,平均误差可调节到0,但硬件量大。
2.2 寻址方式
2.2.1 寻址方式的三种面向
多数计算机将主存、寄存器、堆栈分类编址,分别有面向主存、面向寄存器和面向堆栈的寻址方式。
面向主存的寻址主要访问主存,少量访问寄存器。
面向寄存器的寻址主要访问寄存器,少量访问主存和堆栈。
面向堆栈的寻址主要访问堆栈,少量访问主存或寄存器。
2.2.2 寻址方式在指令中的指明
寻址方式在指令中一般有两种不同的指明方式:
占用操作码中的某些位来指明。
在地址码部分专门设置寻址方式位字段指明。
2.2.3 程序在主存中的定位技术
静态再定位
在目的程序装入主存时,由装入程序用软件方法把目的程序的逻辑地址变换成物理地址,程序执行时,物理地址不再改变。
动态再定位
在程序不做变换直接装入主存的同时,将装入主存的起始地址存入对应该道程序使用的基址寄存器中。程序执行时,通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理地址后去访存。
虚实地址映像表
地址加界法要求程序员所用编址空间不能超出实际主存的容量。采用虚拟存储器增加了映像表硬件后,使程序空间可以超过实际主存空间。
2.2 寻址方式
2.2.1 寻址方式的三种面向
面向主存:主要访问主存,少量访问寄存器。
面向寄存器:主要访问寄存器,少量访问主存和堆栈。
面向堆栈:主要访问堆栈,少量访问主存或寄存器。
2.2.2 寻址方式在指令中的指明
操作码中指明:占用操作码中的某些位来指明寻址方式。
地址码中指明:在地址码部分专门设置寻址方式位字段指明。
2.2.3 程序在主存中的定位技术
静态再定位
在目的程序装入主存时,由装入程序用软件方法把目的程序的逻辑地址变换成物理地址,程序执行时,物理地址不再改变。
动态再定位
在程序不做变换直接装入主存的同时,将装入主存的起始地址存入对应该道程序使用的基址寄存器中。
程序执行时,通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理地址后去访存。
程序执行时,通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理地址后去访存。
虚实地址映像表
地址加界法要求程序员所用编址空间不能超出实际主存的容量。采用虚拟存储器增加了映像表硬件后,使程序空间可以超过实际主存空间。
2.3 指令系统的设计和优化
2.3.1 指令系统设计的基本原则
指令系统:是程序设计者看计算机的主要属性,是软、硬件的主要界面,它在很大程度上决定了计算机具有的基本功能。
指令系统设计:包括指令的功能(操作类型、寻址方式和具体操作内容)和指令格式的设计。
指令类型:
非特权型指令:主要供应用程序员使用,也可供系统程序员使用。包括算术逻辑运算、数据传送、浮点运算、字符串、十进制运算、控制转移及系统控制等子类。
特权型指令:只供系统程序员使用,用户无权使用。用户只有先经访管指令(非特权型)调用操作系统,再由操作系统来使用这些特权指令。包括“启动I/O”(多用户环境下)、停机等待、存储管理保护、控制系统状态、诊断等子类。
编译程序设计者要求指令系统应具有的特性:
规整性
对称性
独立性和全能性
正交性
可组合性
可扩充性
系统结构设计者希望:
指令码密度适中
兼容性
适应性
2.3.2 指令操作码的优化
指令组成:指令由操作码和地址码两部分组成。
哈夫曼编码:利用哈夫曼算法构造哈夫曼树,优化操作码的编码方式,减少信息冗余。
扩展操作码编码:根据指令的频度分布状况选择合适的编码方式,以缩短操作码的平均码长。
2.3.3 指令字格式的优化
优化措施:
采用扩展操作码,并根据指令的频度分布状况选择合适的编码方式,以缩短操作码的平均码长。
采用多种寻址方式,以缩短地址码的长度,并在有限的地址长度内提供更多的地址信息。
采用多种地址制,以增强指令的功能,缩短程序的长度,并加快程序的执行速度。
在同种地址制内再采用多种地址形式,让每种地址字段可以有多种长度,且让长操作码与短地址码进行组配。
在维持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度。
2.4 指令系统的发展和改进
2.4.3 按RISC方向发展和改进指令系统
CISC的问题
指令系统庞大,一般指令在200条以上。
许多指令的操作繁杂,执行速度很低,甚至不如用几条简单、基本的指令组合实现。
由于指令系统庞大,使高级语言编译程序选择目标指令的范围太大,难以优化生成高效机器语言程序,编译程序也太长、太复杂。
由于指令系统庞大,各种指令的使用频度都不会太高,且差别很大,其中相当一部分指令的利用率很低。
设计RISC的基本原则
确定指令系统时,只选择使用频度很高的那些指令,再增加少量能有效支持操作系统、高级语言实现及其他功能的指令,大大减少指令条数,一般使之不超过100条。
减少指令系统所用寻址方式种类,一般不超过两种。简化指令的格式限制在两种之内,并让全部指令都是相同长度。
让所有指令都在一个机器周期内完成。
扩大通用寄存器数,一般不少于32个,尽量减少访存,所有指令只有存(STORE)、取(LOAD)指令访存,其他指令一律只对寄存器操作。
为提高指令执行速度,大多数指令都用硬联控制实现,少数指令才用微程序实现。
通过精简指令和优化设计编译程序,简单、有效地支持高级语言的实现。
设计RISC结构采用的基本技术
按设计RISC的一般原则来设计。
逻辑实现采用硬联和微程序相结合。
在CPU中设置大量工作寄存器并采用重叠寄存器窗口。
指令用流水和延迟转移。
采用高速缓冲存储器Cache,设置指令Cache和数据Cache分别存放指令和数据。
优化设计编译系统。
2.4.1 两种途径和方向(CISC和RISC)
复杂指令系统计算机(CISC):通过增强原有指令的功能以及设置更为复杂的新指令来实现软件功能的硬化,使机器指令系统日益庞大和复杂。
精简指令系统计算机(RISC):通过减少指令种数和简化指令功能来降低硬件设计的复杂度,提高指令的执行速度。
2.4.2 按CISC方向发展和改进指令系统
面向目标程序的优化实现改进
途径1:通过对大量已有机器的机器语言程序及其执行情况,统计各种指令和指令串的使用频度来加以分析和改进。
途径2:增设强功能复合指令来取代原先由常用宏指令或子程序实现的功能,由微程序解释实现,提高运算速度,减少程序调用的额外开销,减少子程序所占的主存空间。
面向高级语言的优化实现改进
途径1:通过对源程序中各种高级语言语句的使用频度进行统计来分析改进。
途径2:增强系统结构的规整性,减少例外或特殊的情况和用法,让所有运算都对称、均匀地在存储(寄存器)单元间进行。
途径3:改进指令系统,使它与各种语言间的语义差距都有同等的缩小。
途径4:由“以指令系统为主,高级语言为从”方式演变成“以高级语言为主,指令系统为从”的方式。
途径5:发展高级语言计算机(或称高级语言机器)。
面向操作系统的优化实现改进
途径1:通过对操作系统中常用指令和指令串的使用频度进行统计分析来改进。
途径2:考虑如何增设专用于操作系统的新指令。
途径3:把操作系统中频繁使用的,对速度影响大的机构型软件子程序硬化或固化,改为直接用硬件或微程序解释实现。
途径4:发展让操作系统由专门的处理机来执行的功能分布处理系统结构。
2.4.3 按RISC方向发展和改进指令系统
CISC的问题
指令系统庞大,一般指令在200条以上。
许多指令的操作繁杂,执行速度很低。
高级语言编译程序选择目标指令的范围太大,难以优化生成高效机器语言程序,编译程序也太长、太复杂。
指令系统庞大,各种指令的使用频度都不会太高,且差别很大,其中相当一部分指令的利用率很低。
设计RISC的基本原则
确定指令系统时,只选择使用频度很高的那些指令,再增加少量能有效支持操作系统、高级语言实现及其他功能的指令,大大减少指令条数,一般使之不超过100条。
减少指令系统所用寻址方式种类,一般不超过两种。简化指令的格式限制在两种之内,并让全部指令都是相同长度。
让所有指令都在一个机器周期内完成。
扩大通用寄存器数,一般不少于32个,尽量减少访存,所有指令只有存(STORE)、取(LOAD)指令访存,其他指令一律只对寄存器操作。
为提高指令执行速度,大多数指令都用硬联控制实现,少数指令才用微程序实现。
通过精简指令和优化设计编译程序,简单、有效地支持高级语言的实现。
设计RISC结构采用的基本技术
按设计RISC的一般原则来设计。
逻辑实现采用硬联和微程序相结合。
在CPU中设置大量工作寄存器并采用重叠寄存器窗口。
指令用流水和延迟转移。
采用高速缓冲存储器Cache,设置指令Cache和数据Cache分别存放指令和数据。
优化设计编译系统。
RISC技术的发展
好处:
简化指令系统设计,适合VLSI实现。
提高计算机的执行速度和效率。
降低设计成本,提高系统的可靠性。
可直接支持高级语言的实现,简化编译程序的设计。
问题和不足:
指令少,使原来在CISC上由单一指令完成的某些复杂功能现在要用多条RISC指令才能完成,加重了汇编语言程序设计的负担,增加了机器语言程序的长度,占用存储空间多,加大了指令的信息流量。
对浮点运算的执行和虚拟存储器的支持虽有很大加强,但仍显得不足。
RISC计算机的编译程序比CISC的难写。
第3章 存储、中断、总线与I/O系统
3.1 存储系统的基本要求和并行主存系统
3.1.1 存储系统的基本要求
对存储系统的基本要求是大容量、高速度和低价格。
在存储器所用器件一定的条件下,容量越大,因其延迟增大会使速度降低;容量越大,存储器总价格会越大;存储器速度越快,价格也越高。
3.1.2 并行主存系统
单体单字存储器:一次可访问一个存储器字,主存最大频宽为 ( BW = \frac{W}{T_M} )。
单体多字存储器:主存在一个存储周期内可读出多个CPU字,主存最大频宽为 ( BW = \frac{m \times W}{T_M} )。
并行主存系统:能并行读出多个CPU字的单体多字和多体单字、多体多字的交叉访问主存系统。
主存最大频宽 ( B_m = \frac{m \times W}{T_M} ),其中 ( m ) 为并行度,( W ) 为分体宽度,( T_M ) 为存储周期。
3.1.2 并行主存系统的计算
例题:
问题:设主存采用模 ( m ) 多分体交叉存取,每个分体的存取周期为 ( T_M = 2 \mu s ),要求主存实际频宽为 8MB/s,但实际频宽只能达到最大频宽的 0.6 倍。
计算:
若分体宽度 ( W = 4 ) 字节,则主存模数 ( m ) 应取多少才能满足要求?(( m ) 取2的幂)
若主存模数为8,则分体宽度 ( W ) 应为多少才能满足要求?
解题:
( 0.6 \times m \times 4 / 2 \geq 8 ),解得 ( m \geq 6.667 ),因此主存模数应取8。
( 0.6 \times 8 \times W / 2 \geq 8 ),解得 ( W \geq 3.333 ),因此分体宽度应取4字节。
3.2 中断系统
3.2.1 中断的分类和分级
中断分类:
机器校验中断:告诉程序发生了设备故障,可用64位机器校验中断码指明故障原因和严重性。
访管中断:用户程序需要操作系统介入时,通过执行“访管”指令时发生。
程序性中断:包括指令和数据的格式错、程序执行中出现异常等。
外部中断:来自计算机外部,包括各种定时器中断、外部信号中断及中断键中断。
输入/输出中断:CPU与I/O设备及通道联系的工具,在输入/输出操作完成或者I/O通道或者设备产生故障时发出。
重新启动中断:操作员或另一台CPU要启动一个程序所用。
中断分级:中断系统按中断源的级别高低来响应,通常优先级最高的中断定为第1级,其次是第2级,再次是第3级……
机器校验为第1级
程序性和管理程序调用为第2级
外部为第3级
输入/输出为第4级
重新启动为最低级
3.2.2 中断的响应次序与处理次序
中断响应次序:在同时发生多个不同中断类的中断请求时,由中断响应硬件中的排队器所决定的响应次序。
中断处理次序:中断处理要由中断处理程序来完成,而中断处理程序在执行前或执行中是可以被中断的。
例题:
问题:机器有5级中断,中断响应次序为1→2→3→4→5,现要求实际中断处理次序为2→3→1→5→4。
计算:
设计各级中断处理程序的中断级屏蔽位的状态,令“0”为开放,“1”为屏蔽。
若运行用户程序时,同时发生1、3级中断请求,而在1级中断服务未完成时,又发生2、3、4、5级中断,请画出处理机执行程序全过程的示意图(标出交换PSW的时间)。
解题:
设计中断级屏蔽位:
1级中断处理程序屏蔽2、3、4、5级中断。
2级中断处理程序屏蔽3、4、5级中断。
3级中断处理程序屏蔽4、5级中断。
4级中断处理程序屏蔽5级中断。
5级中断处理程序不屏蔽任何中断。
处理机执行程序全过程的示意图:
用户程序运行时,同时发生1、3级中断请求。
1级中断处理程序运行,屏蔽2、3、4、5级中断。
1级中断处理程序运行2个单位时间后,发生2、3、4、5级中断请求。
2级中断处理程序运行,屏蔽3、4、5级中断。
2级中断处理程序运行3个单位时间后,返回1级中断处理程序。
1级中断处理程序继续运行,屏蔽3、4、5级中断。
1级中断处理程序运行3个单位时间后,返回用户程序。
3.2.3 中断系统的软、硬件功能分配
中断系统的功能:
中断请求的保存和清除
优先级的确定
中断断点及现场的保存
对中断请求的分析和处理
中断返回
中断现场:包括软件状态和硬件状态。
3.3 总线系统
3.3.1 总线与总线系统的定义
总线:用于互连计算机、CPU、存储器、I/O接口及外围设备、远程通信设备间信息传送通路的集合。
总线系统:总线与其相配合的附属控制电路统称为总线系统。按信息传送功能、性能的不同,有数据线,地址线,命令、时序和中断信号等控制/状态线,电源线,地线及备用线等。
3.3.2 总线的分类
按在系统中的位置:
芯片级(CPU芯片内的总线)
板级(连接插件板内的各个组件,也称局部总线或内部总线)
系统级(系统间或主机与I/O接口或设备之间的总线)
按信息传送方向:
单向传输
双向传输(半双向和全双向)
按用法:
专用总线:只连接一对物理部件的总线。
优点:
多个部件可以同时收/发信息,不争用总线,系统流量高。
通信时不用指明源和目的,控制简单。
任何总线的失效只会使连于该总线的两个部件不能直接通信,但它们仍可通过其他部件间接通信,系统可靠。
缺点:总线数多。
非专用总线:允许多个部件共享的总线。
3.3.3 总线的控制
集中式总线控制:
优先次序的确定可以有串行链接、定时查询和独立请求3种不同的方式,也可以是它们的结合。
串行链接方式:获得使用总线权的优先次序是由“总线可用”线所接部件的物理位置来决定的,离总线控制器越近的部件其优先级越高。
定时查询方式:
缺点:控制线的线数较多,需 (2 + \lceil \log_2 N \rceil) 根;可以共享总线的部件数受限于定时查询线的线数(编址能力),扩展性稍差;控制较为复杂;总线分配的速度取决于计数信号的频率和部件数,不能很高。
独立请求方式:每个部件都有独立的总线请求线和总线响应线。
3.3.4 总线的通信技术
同步通信:所有部件共享同一时钟信号,数据传输在时钟信号的控制下同步进行。
异步通信:部件之间通过握手信号进行通信,不依赖于统一的时钟信号,适用于速度差异较大的部件之间的通信。
3.3.5 数据宽度与总线线数
数据宽度:I/O设备取得I/O总线后所传送数据的总量。数据宽度有单字(单字节)、定长块、可变长块、单字加定长块和单字加可变长块等之分。
单字(单字节)宽度适合于输入机、打印机等低速设备。
定长块宽度适合于磁盘等高速设备,可以充分利用总线带宽。
可变长块宽度适合于高优先级的中高速磁带、磁盘等设备。
对于挂有速度较低而优先级较高的设备的总线,可以采用单字加定长块传送。
采用单字加可变长块的传送,是一种灵活有效却复杂、开销大的方法。
总线线数:总线要有发送/接收电路、传输导线或电缆、转接插头和电源等。在满足性能前提下应尽量减少线数。总线线数可通过采用线的功能组合、编码和并/串—串/并转换来减少。总线标准一般包括机械、功能、电气及过程(同步)等4个方面的标准。
3.4 I/O系统
3.4.1 I/O系统概述
I/O系统:包括输入/输出设备、设备控制器及与输入/输出操作有关的软、硬件。
I/O系统的发展:经历了3个阶段,相对应于3种方式,即程序控制I/O(包括全软件的、程序查询的、中断驱动的)、直接存储器访问(DMA)及I/O处理机方式。它们可分别用于不同的计算机系统,也可用于同一系统。
输入/输出设备的分类:
外存:磁盘、磁带、光盘等。
传输设备:键盘、鼠标、光笔、显示器、各种打印/印字机、声音输入/输出设备、图形扫描器、网络驱动器等。
3.4.2 通道处理机的工作原理和流量设计
启动I/O指令:主要的输入/输出指令,属于管态指令。
通道的分类:
字节多路通道:适用于连接大量的像光电机等字符类低速设备。
数组多路通道:适合于连接多台磁盘等高速设备。
选择通道:适合于连接优先级高的磁盘等高速设备。
通道流量的设计:
通道流量:通道在数据传送期内,单位时间内传送的字节数。它能达到的最大流量称通道极限流量。
字节多路通道:通道极限流量 ( D_{max} = \frac{1}{T_s + T_d} )。
数组多路通道:通道极限流量 ( D_{max} = \frac{K}{T_s + K \cdot T_d} )。
选择通道:通道极限流量 ( D_{max} = \frac{N}{T_s + N \cdot T_d} )。
0 条评论
下一页