计算机系统结构计算机组成计算机实现Amdahl定律MIPSMFLOPSCPI冯·诺依曼结构数据表示数据类型浮点数浮点数的误差相对误差浮点数表示方式的效率编址单位寻址方式Huffman编码法RISCCISC存储系统虚拟存储系统并行存储器随机算法先进先出算法近期最少使用算法最久没有使用算法最优替换算法Cache系统全相联映象方式直接映象方式组相联映象段相联映象Cache系统的加速比Cache系统的加速比SPCache一致性输入输出设备程序控制输入输出方式中断输入输出方式DMA方式中断源中断优先级中断响应时间中断向量法中断现场的保存和恢复中断屏蔽指令级并行先行控制缓冲技术预处理技术先行指令缓冲栈先行读数栈后行写数栈先行操作栈RR型指令RX型指令RS型指令缓冲深度相关数据相关指令相关主存操作数相关通用寄存器数据相关变址相关控制相关转移预测技术流水线处理机时空图线性流水线非线性流水线流水线的级别处理机级流水线功能部件级流水线处理机间流水线单功能流水线多功能流水线静态流水线动态流水线吞吐率加速比效率预约表启动距离禁止启动距离启动循环恒定循环禁止向量平均启动距离冲突向量简单循环基本块局部相关全局相关顺序流动乱序流动数据重定向动态转移预测技术向量处理机向量循环和分段开采链接技术向量递归最大性能R∞半性能向量长度n1/2互连网络互连函数网络规模结点度距离网络直径等分宽度结点间的线长对称性频宽传输时间飞行时间传输时延发送方开销接收方开销静态互连网络动态互连网络线路交换存储转发寻径虚拟直通虫蚀寻径虚拟通道单播(unicast)选播(multicast)广播(broadcast)会议(conference)SIMD计算机分布式存储器结构共享存储器结构阵列控制器CU总线公共数据总线CDB模式位线指令控制线多处理机共享存储多处理机分布存储多处理机SMPS2MPMPP机群系统计算机系统结构:计算机系统结构这个名词来源于英文computerarchitecture,也有译成计算机体系结构,定义为由程序设计者所看到的一个计算机系统的属性,即概念性结构和功能特性。计算机组成:计算机组成是计算机系统结构的逻辑实现,包括机器内部的数据流和控制流的组成以及逻辑设计等。计算机实现:计算机实现是指计算机组成的物理实现。它包括处理机、主存等部件的物理结构,器件的集成度和速度,信号传输,器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术以及有关的制造技术和工艺等。Amdahl定律:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。系统结构的评价标准:程序运行速度、程序和数据的容量、功耗、体积、编程的难易程度、成本等指标。MIPS:每秒平均执行的百万指令条数。MFLOPS:每秒平均执行的百万次浮点操作次数。CPI:执行每条指令所需要的平均时钟周期数。冯·诺依曼结构:冯·诺依曼等人于1946年提出了一个完整的现代计算机雏型,它由运算器、控制器、存储器和输入输出设备组成,这种结构称为冯·诺依曼结构。数据表示:数据表示研究的是计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。数据表示是数据类型中最常用,也是相对比较简单,用硬件实现相对比较容易的几种。如定点数(整数)、逻辑数(布尔数)、浮点数(实数)、十进制数、字符、字符串、堆栈和向量等。数据类型:在计算机系统中,数据的类型有各种各样,如文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符等。浮点数:是一种数据表示方法。目标是用最短的字长表示最大范围的实数和尽可能高的数据精度。浮点数的误差:浮点数集F的误差可以这样定义,令N是浮点数集F内的任一给定实数,而M是F中最接近N,且被用来代替N的浮点数,则定义绝对表数误差为:相对误差(RelativeRepresentationRrror)为:浮点数表示方式的效率:浮点数表示方式的效率定义为:编址单位:编址单位有字编址、字节编址和位编址等几种。寻址方式:指令在执行过程中通常需要操作数,运算结果要送到存储单元中保持,寻找操作数及数据存放单元的方法称为寻址方式。Huffman编码法:Huffman编码法是1992年由Huffman首先提出的一种编码方法,开始主要用于电报报文的编码。对使用频率最高的码字,用短码表示;使用频率低的码字,用长码表示。这样,可以缩短整个报文的长度。RISC:精简指令系统计算机。CISC:复杂指令系统计算机存储系统:两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软件与硬件相结合的方法连接起来成为一个系统,这就是存储系统。虚拟存储系统:虚拟存储系统由主存储器与联机的外部存储器(目前一般为磁盘存储器)构成,采用硬件与软件相结合的方法来调度。操作系统用内存管理部件管理虚存,实现用户透明的进程空间的32位寻址。并行存储器:并行存储器设置多个独立的存储器,让它们并行工作,在一个存储周期内可以访问到多个数据,提高存储器速度。随机算法:即RAND算法(Randomalgorithm)。利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种算法最简单,而且容易实现。但是,这种算法完全没有利用主存储器中页面调度情况的历史信息,也没有反映程序的局部性,所以命中率比较低。先进先出算法:即FIFO算法(First-InFirst-Outalgorithm)。这种算法选择最先调入主存储器的页面作为被替换的页面。它的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,没有反映程序的局部性。因为最先调入主存的页面,很可能也是经常要使用的页面。近期最少使用算法:即LRU算法(LeastRecentlyUsedalgorithm)。这种算法选择近期最少访问的页面作为被替换的页面。显然,这是一种非常合理的算法,因为到目前为止最少使用的页面,很可能也是将来最少访问的页面。该算法既充分利用了主存中页面调度情况的历史信息,又正确反映了程序的局部性。但是,这种算法实现起来非常困难。它要为每个页面设置一个很长的计数器,并且要选择一个固定的时钟为每个计数器定时计数。在选择被替换页面时,要从所有计数器中找出一个计数值最大的计数器。因此,通常采用另外一种变通的办法,就是下面的LFR算法。最久没有使用算法:即LFU算法(LeastFrequentlyUsedalgorithm)。这种算法把近期最久没有被访问过的页面作为被替换的页面。它把LRU算法中要记录数量上的多与少简化成判断有与无,因此,实现起来比较容易。LFU算法的具体实现方法将在下一节中介绍。最优替换算法:即OPT算法(OPTimalreplacemantalgorithm)。上面介绍的几种页面替换算法主要是以主存储器中页面调度情况的历史信息为依据的,它假设将来主存储器中的页面调度情况与过去一段时间内主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最好的算法应该是选择将来最久不被访问的页面作为被替换的页面。这种替换算法的命中率一定是最高的。这就是最优替换算法,简称OPT算法。Cache系统:Cache系统是在主板或者CPU内部集成一块高速访问存储器,并与内存联合构成缓存系统。缓存系统的原理类似于虚拟存储系统。一般处理机中有一级Cache,它与主存储器构成一个两级的存储系统。一些高性能处理机都采用两级Cache。其中,第一级在CPU内部,它的容量比较小,速度很快。第二级在主扳上,容量比较大,速度比第一级要低5倍左右。也有部分高性能处理机采用三级Cache。前两级都在CPU内部。全相联映象方式:全相联映象方式是指主存中的任意一块可以映象到Cache中的任意一块的位置上。直接映象方式:直接映象方式是一种最简单,也是最直接的方法。主存中一块只能映象到Cache的一个特定的块中。组相联映象:组相联方式是目前在Cache中用得比较多的一种地址映象和变换方式。它是介于全相联和直接相联之间的一种折中方案。组相联映象方式也采用与全相联映象方式和直接相联映象方式相同的方法把主存和Cache按同样大小划分成块。所不同的地方是:组相联映象方式还把主存和Cache按同样大小划分成组,每一组都由相同的块数组成。段相联映象:把组相联映象方式中的映象关系改变一下,组内改用直接映象方式,而组间改用全相联映象方式,这样就成了段相联映象方式。实际上,段相联映象方式是组相联映象方式的一种变形,也是介于全相联与直接相联两种映象方式之间的一种折中方案。Cache系统的加速比:假设Cache的访问周期为TC,主存储器的访问周期Tm,Cache系统的等效访问周期为T,Cache的命中率为H。在本章开始曾经给出如下关系:T=H·TC+(1-H)·Tm则Cache系统的加速比SP(Speedup)可以定义为:Cache一致性:在正常情况下,Cache中所存放的内容应该是主存的部分副本。然而,由于以下两个原因,在一段时间内,主存某单元中的内容与Cache对应单元中的内容可能是不相同。这样,就造成Cache与主存的不一致问题。输入输出设备:把人以外的各种设备称为输入输出设备,或者称为外围设备。程序控制输入输出方式:程序控制输入输出方式是在程序中由用户编写指令控制输入输出。一切的输入输出动作都是程序控制进行的。中断输入输出方式:当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,但出现在现行程序的什么地方是事先不知道的事件时,CPU暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序。DMA方式:DMA(DirectMemoryAccess)方式又称为直接存储器服务方式,它利用DMA控制器在主存和高速外围设备(磁盘等)之间直接进行数据交换,以提高设备访问速度。中断源:引起中断的各种事件称为中断源。中断优先级:在中断源比较多的情况下,很可能同时发生多个中断请求,CPU必须安排一个响应和处理中断的优先顺序。这个顺序就是中断优先级。中断响应时间:从一个中断源向处理机发出中断服务请求开始,到处理机实际开始为这个中断源服务时为止,这一段时间称为中断响应时间。中断向量法:中断向量法在主存储器的固定区域中开辟出一个专用的中断向量区,同样用硬件排队器和编码器在所有请求中断服务的中断源中,产生具有最高优先级的中断源编号,然后隐含执行两条识别中断源的指令,直接通过硬件转向这个中断源的中断服务程序入口。中断现场的保存和恢复:中断发生时,需要打断当前正在执行的程序而转去执行中断处理例程。此时需要保存当前程序的一些工作现场以便在中断例程完成后恢复执行。对当前程序状态的保存恢复就是中断现场的保存和恢复。中断屏蔽:程序运行中有时需要故意的忽略某些中断,此时可以通过中断屏蔽位使得系统对于对应的中断源不予响应。标量处理机:只有标量数据表示和标量指令系统的处理机称为标量处理机。标量处理机是一种最通用,也是使用最普遍的处理机。指令级并行:处理机中同时多条指令并行执行。先行控制:先行控制技术的关键是缓冲技术和预处理技术,以及这两者的相结合。通过对指令流和数据流的预处理和缓冲,能够尽量使指令分析器和指令执行部件独立地工作,并始终处于忙碌状态。缓冲技术:缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。预处理技术:预处理技术是把进入运算器的指令都处理成寄存器-寄存器型(RR型)指令,它与缓冲技术相结合,为进入运算器的指令准备好所需要的全部操作数。先行指令缓冲栈:先行指令缓冲栈作为主存储器与指令分析器之间的一个缓冲部件,用它来平滑主存储器和指令分析器的工作。先行读数栈:先行读数栈由一组缓冲寄存器和有关控制逻辑等组成。每一个缓冲寄存器由三部分组成,包括先行地址缓冲寄存器、先行操作数缓冲寄存器和标志字段。也可以把先行地址缓冲寄存器和先行操作数缓冲寄存器合用一个寄存器。后行写数栈:后行写数栈也由一组缓冲寄存器和有关控制逻辑等组成。每一个缓冲寄存器必须包括后行地址缓冲寄存器、后行数据缓冲寄存器和标志字段三个部分,其中