高等计算机体系结构_第1页
高等计算机体系结构_第2页
高等计算机体系结构_第3页
高等计算机体系结构_第4页
高等计算机体系结构_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章计算机体系结构的基本概念1八十年代后,有两种技术使得体系结构技术对计算机性能发展的影响越来越大: 1)RISC技术- 使得体系结构的发展空间一下子被打开;2)微处理器技术-使得设计新型体系结构的风险、成本、耗时都大为降低。 2从计算机语言的角度,把计算机系统按功能划分成多级层次结构。微程序机器级, 机器语言, 操作系统虚拟机, 汇编语言虚拟机,高级语言虚拟机,应用语言虚拟机3语言实现的两种基本技术 翻译:先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N

2、+1级的指令,依此重复进行。解释执行比翻译花的时间多,但存储空间占用较少。4计算机体系结构的定义:程序员所看到的计算机的属性,即概念性结构与功能特性。5透明性:在计算机技术中,对这种本来是存在的事物或属性但从某种角度看又好象不存在。6。对于通用寄存器型机器,这些属性主要是指:(1) 数据表示(硬件能直接辩认和处理的数据类型)(2) 寻址规则(包括最小寻址单元、寻址方式及其表示) (3) 寄存器定义(包括各种寄存器的定义、数量和使用方式)(4) 指令集(包括机器指令的操作类型和格式、指令间的排序和控制机构等)(5) 中断系统(中断的类型和中断响应硬件的功能等)(6) 机器工作状态的定义和切换(如

3、管态和目态等)(7) 存储系统(主存容量、程序员可用的最大存储容量等)(8) 信息保护(包括信息保护方式和硬件对信息保护的支持)(9) I/O结构(包括I/O连接方式、处理机/存储器与I/O设备间数据传送的方式和格式以及I/O操作的状态等)7.经典计算机体系结构概念的实质:计算机系统中软硬件界面的确定,其界面之上的是软件 的功能,界面之下的是硬件和固件的功能8.计算机组成:计算机体系结构的逻辑实现。计算机组成包括的内容可以有:处理机、主存等部件的逻辑结构,机器级内数据流和控制流的组成、各部件的功能以及之间的联系等。计算机实现:计算机组成的物理实现。计算机实现包括的内容可以有:处理机、主存等部件

4、的物理结构,包括器件的集成度和速度的确定,器件、模块、插件、底板的划分与连接,组装装配技术及信号连接、电源、冷却方法等。一种体系结构可以有多种组成。一种组成可以有多种物理实现。9.系列机:在一个厂家内生产的具有相同的体系结构,但具有不同组成和实现的一系列不同型号的机器。10.软件兼容:同一个软件可以不加修改地运行于体系结构相同的各档机器,而且它们所获得的结果一样,差别只在于有不同的运行时间。向上(下)兼容:按某档机器编制的程序,不加修改的就能运行于比它高(低)档的机器。向前(后)兼容:按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前(后)投入市场的机器。向后兼容是软件兼

5、容的根本特征,也是系列机的根本特征兼容机不同厂家生产的具有相同体系结构的计算机。11存储程序计算机的主要特点(1) 机器以运算器为中心;(2) 采用存储程序原理;(3)存储器是按地址访问的线性编址的空间;(4) 控制流由指令流产生;(5) 指令由操作码和地址码组成; (6)数据以二进制编码表示采用二进制运算。 11.保护的存储器空间是否把指令和数据放在同一存储器中?优点 :(1)不必预先区分指令和数据,易实现存储管理软件;(2)程序和指令在执行过程中可以被修改,因而可以编写出灵活的可修改的程序;(3)对于存取指令和数据仅需一套读/写和寻址电路,硬件简单;(4)数据可以分配于任何可用空间,从而可

6、更有效地利用存储空间等。缺点:(1)不利于进行程序调试诊断; (2)不利于实现程序的可再入性和程序的递归调用(3不利于重叠和流水方式的操作。12.计算机可以根据价格分为五个档次: 巨型机、大型机、中型机、小型机、微型机13.根据当前的计算机应用市场的现状和价格特征,通常把计算机分为:服务器、桌面系统和嵌入式计算三大领域。14. 新型体系结构的设计(1)合理地增加计算机系统中硬件的功能比例,这种体系结构对操作系统、高级语言甚至应用软件提供更多更好的支持;(2) 通过多种途径提高计算机体系结构中的并行性等级,使得凡是能并行计算和处理的问题都能并行计算和处理,使这种体系结构和组成对算法提供更多更好的

7、支持15. 计算机的设计受两方面因素的影响(1)计算机现在和未来的使用方法(2)下层的实现技术16.软件技术最重要的发展趋势程序及数据所使用存储器容量的不断增大;(2) 编译器的重要性日益突出,逐渐成为用户与计算机的主要界面。17桌面计算、服务器和嵌入式计算对计算机系统设计的巨大影响:(1)桌面计算市场是销售额最大的市场,是对性能价格比要求最为苛刻和敏感的市场。(2)服务器市场对计算机的要求是可用性、大容量和可扩展性。(3)嵌入式计算与解决的应用问题密切相关,需求千差万别。18.现代计算机实现技术的基础核心是以晶体管为基本单元的平面集成电路。摩尔定律集成电路密度大约每两年翻一番。19四种实现技

8、术对于当代计算机的发展发挥着非常关键的作用逻辑电路 ,半导体DRAM(动态随机访问存储器) ,磁盘 ,网络 20.集成电路制造中的重要技术指标之一:特征尺寸随着特征尺寸减小,挑战首先是功耗。原因:(1) 导致集成电路连线的相对长度增加,单位长度阻抗也增大,更高的电路工作主频需要更大的电流来驱动电平的翻转和信号变化的传递;(2) 电路密度增加,导致芯片单位面积功率(功率密度)上升;(3) 集成电路在减小特征尺寸的同时,也在减少电路各层的厚度从而降低了工作电压;(4) 随着特征尺寸的下降,晶体管各个电极之间的绝缘层性能急剧下降,电极之间漏电流的问题日益突出;(5) 由于现代微处理器中的部件成千上万

9、,而这些部件并不都是同时工作,这就需要在设计中合理分配电力使用,对于不工作的部件暂时减低工作性能或者暂停工作,以减少系统的功耗。在设计上将面临的问题:微处理器芯片正确性验证复杂性成倍上升。一个计算机体系结构,从产生到消亡,大致 需要1520年的时间21. 影响计算机系统成本的主要因素(1) 时间(对成本产生最直接影响)即使实现技术没有变动,计算机系统的制造成本也会不断下降。 (2) 产量产量的增加会加速工艺的稳定; 产量增加提高了生产效率,降低了成本;产量增加降低每台单机必须加入的开发费用,从而使得单机成本下降。 (3) 商品化(更重要的是它影响产品的价格)22.集成电路的基本制造工艺:(1)

10、首先生产圆片;(2)在圆片上制造出一些小程序;大量电路单元;(3)园片经过测试后按照制造的电路单元被切割成基片;(4) 基片在外壳中封装好以后就是集成电路成品。集成电路成本 = 基片成本 = 每块园片上的基片数 = -基片成品率= 园片成品率 (1+ )- 23.计算机性能的评测 响应时间:从事件开始到结束之间的时间,也称为执行时间。(计算机完成某一任务所花费的全部时间) 流量:在单位时间内所能完成的工作量。 相同点:都认为能够以最短时间完成指定任务的计算机就是最快的。不同点:响应时间针对单任务,而流量针对多任务。 X比Y快n倍: = nn = = =24.CPU时间CPU工作的时间,不包含I

11、/O等待时间及运行其它程序的时间。用户CPU时间,系统CPU时间25.目前常用的测试程序可以分为5类:(按测试可靠性由高至低的顺序列出) (1) 真实程序:真实使用的程序;(2)修正的应用程序(3) 核心程序:从真实程序中提取能反映系统性能的关键程序段组成的程序(4) 小测试程序:特地编写的反映系统某一方面性能的;(5) 合成测试程序:根据对大量应用程序中各种操作的比例进行统计后按照这个比例人为制造出来的程序。26。测试程序组件,选择一组各个方面有代表性的测试程序,组成一个通用测试程序集合。最大优点:避免了独立测试程序存在的片面性,尽可能全面地测试了一个计算机系统的性能。最常见的测试程序组件是

12、基于UNIX的SPEC主要版本包括SPEC89、SPEC92 SPEC95和SPEC2000等。、 27. 性能设计和评测的基本原则 三条基本原则和方法:(1)大概率事件优先的原则对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。(2)Amdahl定律加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。 (3) 一个“好”的计算机系统:具有高性价比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能 。(1)系统加速比 = = 系统加速比依赖于两个因素: 可改进比例:可改进部分在原系统计算时间中所占的比例,它总是小于等于的

13、。例如: 一个需运行60秒的程序中有20秒的运算可以加速,那么该比例就是20/60。部件加速比:可改进部分改进以后的性能提高,一般情况下它是大于的 。例如: 系统改进后执行程序,其中可改进部分花费2秒的时间,而改进前该部分需花费5秒,则性能提高为5/2。总执行时间改进后 = 不可改进部分的执行时间 +可改进部分改进后的执行时间总执行时间改进后=(1-可改进比例)总执行时间改进前+ =(1-可改进比例) + 总执行时间改进前 系统加速比 = =Amdahl定律:性能递减规则如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。1)可改进比例为,这时系统加速比等于,即系统性能无法提

14、高。2)部件加速比趋于无穷,这时分母中可改进比例与部件加速比之比趋于,由此系统加速比趋于除以减可改进比例,这是加速这个部件所获得的系统性能改善的极限。 推论:如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于1/(1-fe)。28程序的局部性原理程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚包括指令和数据两部分。程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。29CPU的性能将程序执行的时间进行分解 (1) 计算机工作的时钟频率:计算机系统中与实现技术和工艺有关的因

15、素。单位是MHz(f)。 (2) 总时钟周期数程序执行的cpu时间 =总时钟周期数 / 时钟频率 “指令时钟数”CPI”一个与计算机体系结构有关的参数。CPI = 总时钟周期数 / IC IC:程序执行过程中所处理的指令数。总CPU时间 = CPI IC / 时钟频率 时钟频率:反映了计算机实现技术、生产工艺和计算机组织。 CPI:反映了计算机实现技术、计算机指令集的结构和计算机组织。IC:反映了计算机指令集的结构和编译技术对CPU性能公式进行进一步细化假设:计算机系统有n种指令; CPIi :第i种指令的处理时间; ICi :在程序中第i种指令出现的次数; 则程序执行时间为CPU时间 = (

16、CPIi ICi) / 时钟频率CPI = (CPIi ICi) / IC = (CPIi ICi / IC)其中:(ICi / IC)反映了第i种指令在程序中所占的比例。 例1.1假设我们考虑条件分支指令的两种不同设计方法如下:(1) CPUA:通过比较指令设置条件码,然后测试条件码进行分支。 (2)CPUB:在分支指令中包括比较过程在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占20%。由于CPUA在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.25倍

17、。哪一个CPU更快?如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,哪一个CPU更快呢?解:我们不考虑所有系统问题,所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%,剩下的指令占用1个时钟周期。所以CPIA= 0.2 2 + 0.80 1 = 1.2则CPU性能为:总CPU时间A = IC 1.2 时钟周期A根据假设有时钟周期B = 1.25 时钟周期A在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的80%,分支指令的比例为:20%/80% = 25%这些分支指令占用2个时钟周期,而剩下的75%的指令占用1个时钟周期,因此: CPIB = 0.25 2 +

18、 0.75 1 = 1.25因为CPUB不执行比较故:ICB = 0.8 ICA因此CPUB性能为: 总CPU时间B = ICB CPIB 时钟周期B = 0.8 ICA 1.25 (1.25 时钟周期A) = 1.25 ICA 时钟周期A 在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。如果CPUA的时钟周期时间仅仅比CPUB快1.1倍 则时钟周期B = 1.10 时钟周期ACPUB的性能为:总CPU时间B = ICB CPIB 时钟周期B = 0.8 ICA 1.25 (1.10 时钟周期A) = 1.10 ICA 时钟周期A因此CPUB由于

19、执行更少指令条数,比CPUA运行更快。30并行性在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。只要时间上互相重叠,就存在并行性。同时性两个或多个事件在同一时刻发生的并行性。并发性两个或多个事件在在同一时间间隔内发生的并行性。 31从执行程序的角度看,并行性等级从低到高可分为:(1)指令内部并行:指令内部的微操作之间的并行。 (2)指令级并行:并行执行两条或多条指令。(3)线程级并行:并发执行多个线程,通常是以一个进程内控制派生的多个线程为调度单位。(4)任务级或过程级并行:并行执行两个或多个过程或任务(程序段)。(5)作业或程序级并行:在多个作业或程序间的并行。从处理数

20、据的角度,并行性等级从低到高可以分为:(1)字串位串: 同时只对一个字的一位进行处理。(2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。(3)字并位串:同时对许多字的同一位(称位片)进行处理。(4) 全并行: 同时对许多字的全部或部分位进行处理。32提高并行性的三种技术途径(1) 时间重叠。多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 (2) 资源重复。根据“以数量取胜”的原则,通过重复地设置资源,尤其是硬件资源,以大幅度提高计算机系统的性能。 (3) 资源共享。这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设

21、备。33单机系统中并行性的发展 (1) 在发展高性能单处理机过程中,起着主导作用的是时间重叠这个途径。实现时间重叠的基础:部件功能专用化。 把一件工作按功能分割为若干相互联系的部分; 把每一部分指定给专门的部件完成; 然后按时间重叠原则把各部分执行过程在时间上重叠起来,使所有部件依次分工完成一组同样的工作。(2) 在单处理机中,资源重复的运用已经普遍起来。部件冗余;多操作部件,多存储体;并行处理机,相联处理机;同构型(对称型)多处理机系统(3) 资源共享实质:用单处理机模拟多处理机的功能,形成所谓虚拟机的概念。多道程序,分时系统;智能终端;分布处理系统分布处理系统把若干个具有独立功能的处理机(

22、或计算机)相互连接起来,在操作系统全盘控制下,统一协调地工作,而最少依赖集中的程序、数据或硬件。34多机系统中并行性的发展(1) 耦合度。反映多机系统的各机器之间的物理连接的紧密程度和交互作用能力的强弱。最低耦合:耦合度最低的系统。除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。松散耦合或间接耦合系统:通过通道或通信线路实现计算机间互连,共享某些外围设备(例如磁盘、磁带等),机间的相互作用是在文件或数据集一级进行。紧密耦合系统或直接耦全系统:机间物理连接的频带较高,它们往往通过总线或高速开关实现互连,可以共享主存。 (2) 功能专用化。专用外围处理机(松散耦合系统

23、);高级语言处理机、数据库处理机;异构型多处理机系统(3) 机间互连。可重构、容错多处理机;紧密耦合系统; 同构型多处理机系统(4) 网络化。通信处理机,远程网络;局部计算机网;分布处理系统第二章 计算机指令集结构设计1指令集结构分类 (1) 在CPU中操作数的存储方法(2) 指令中显式表示的操作数个数 (3) 操作数的寻址方式 (4) 指令集所提供的操作类型 (5) 操作数的类型和大小 2CPU中操作数的存储方法,是各种指令集结构之间最主要的区别所在。CPU中用来存储操作数的存储单元主要有:堆栈,累加器,一组寄存器指令中的操作数可以显式给出,也可以隐式地给出。3根据CPU内部存储单元类型进行

24、分类堆栈型指令集结构,累加器型指令集结构, 通用寄存器型指令集结构例 C=A+B表达式在这三种类型指令集结构上的实现方法。假设A、B、C均是保存在存储器单元中,且A和B的值在运算过程中一直被保持。堆栈:PUSH A,PUSH B,ADD,POP C累加器:LOAD A,ADD B,Store C寄存器(寄存器存储器):LOAD R1,AADD R1,B,Store C,R1寄存器(寄存器寄存器):LOAD R1,ALOAD R2,B,Add R3,R1,R2,Store C,R34三种类型指令集结构的优缺点 堆栈型:优点是一种表示计算的简单模型;指令短小。缺点堆栈不能被随机访问,从而很难生成有

25、效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现。累加器型:优点减小了机器的内部状态;指令短小。缺点由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。寄存器型:优点是代码生成最一般的模型。缺点所有操作数均需命名,且显式表示,因而指令比较长。5通用寄存器型指令集结构的主要优点使编译器有效地使用寄存器。(1) 在表达式求值方面,比其它类型指令集结构具有更大的灵活性;(2) 寄存器可以用来存放变量。减少存储器的通信量,加快程序的执行速度(因为寄存器比存储器快);可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小。 6CPU需要设置多少个寄存器 主要由编译器使用寄存器的情况来

26、决定。为表达式求值保留一些寄存器;为传递参数保留一些寄存器;用剩下的寄存器来保存变量。(一般来说,ALU指令有03个存储器操作数。)7通用寄存器指令集结构进一步细分为三种类型:寄存器 - 寄存器型;寄存器 - 存储器型;存储器 - 存储器型8常见的三种通用寄存器型指令集结构的优缺点注:表中(m,n)的含义是, 指令的n个操作数中有m个存储器操作数。寄存器寄存器型(0,3):优点简单,指令字长固定,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。缺点和指令中含有对存储器操作数访问的结构相比,指令条数多,因而其目标代码较大。寄存器存储器型(1,2):优点可以直接对存储器操作数进行访问,容易

27、对指令进行编码,且其目标代码较小。缺点指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。由于指令的操作数可以存储在不同类型的存储器单元,所以每条指令的执行时钟周期数也不尽相同。存储器存储器型(3,3):优点是一种最紧密的编码方式,无需“浪费”寄存器保存变量。缺点指令字长多种多样。每条指令的执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问瓶颈问题。9.当前指令集结构中所使用的一些操作数寻址方式。 寄存器寻址Add R4 , R3立即值寻址Add R4 , #3偏移寻址Add R4 , 100(R1) 寄存器间接寻址Ad

28、d R4 , (R1) 索引寻址Add R3 , (R1 + R2) 直接寻址或绝对寻址Add R1 , (1001) 存储器间接寻址Add R1 , (R3)自增寻址Add R1 , (R2)+ 自减寻址Add R1, -(R2) 缩放寻址Add R1 , 100(R2)R310指令集中操作的分类 算术和逻辑运算;数据传输;控制;系统;浮点;十进制;字符串;图形11指令集结构功能设计问题复杂指令集计算机(CISC)强化指令功能,实现软件功能向硬件功能转移。精简指令集计算机(RISC)尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。当今指令集结构功能设计的一个主要趋势。 CIS

29、C的主要特点:1)指令系统复杂,表现在指令数多,一般大于100条;寻址方式多,一般大于4种指令格式多,一般大于4种;2)绝大多数指令需要多个机器时钟周期方可完成。3)各种指令都可访问存储器。4)多采用微程序控制。5)有专用寄存器。6)难以进行优化编译CISC结构追求的目标:强化指令功能,减少程序的指令条数,以达到提高性能的目的。CISC结构存在的缺点(1) 在CISC结构的指令系统中,各种指令的使用频率相差悬殊。(2) CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成 本,而且还容易造成设计错误。(3) CISC结构指令系统的复杂性给VLSI设计增加了很大负担

30、,不利于单片集成(4) CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。(5) 在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。RISC的主要特点:1)精简指令系统指令条数少,一般小于100条;2)基本寻址方式少,一般23种2)指令格式少,一般23种; 4)指令长度一致(32位);3)以寄存器-寄存器方式工作,除了Load/Store指令访问存储器外,其余指令只访问寄存器;3)除了Load/Store指令访问存储器外,所有指令在一个机器时钟周期完成,并采用流水线技术;4)使用较多的通用寄存器,一般

31、至少32个,不允许有专用寄存器;5)大多采用硬联线控制,少用或不用微程序实现;6)采用针对体系结构特点的优化编译技术,防止或减少流水线中出现的相关性,保证流水线畅通。(设计思想指令系统只包含那些使用频率很高的指令和一些必要指令)目的:使得计算机体系结构更加简单、更加合理和更加有效,克服CISC结构的缺点,使机器速度更快,程序运行时间缩短,从而提高计算机系统的性能设计原则:选取使用频率最高的指令,并补充一些最有用的指令;每条指令的功能应尽可能简单,并在一个机器周期内完成;所有指令长度均相同;只有Load和Store操作指令才访问存储器; 其它指令操作均在寄存器之间进行;以简单有效的方式支持高级语

32、言。12控制指令(1) 跳转: 当控制指令为无条件改变控制流时,称之为“跳转”(2) 分支:当控制指令是有条件改变控制流时,称之为“分支”。(3)控制流程的各种改变情况:条件分支跳转;过程调用;过程返回13常用的三种表示分支条件的技术及其优缺点 条件码(CC):测试分支条件的方法在程序的控制下,由ALU操作设置特殊的位。优点可以自由设置分支条件。缺点CC是额外状态,条件码限制了指令顺序,因为必须从一条指令将分支条件信息传送到分支指令。条件寄存器:测试分支条件的方法根据比较结果测试条件寄存器。优点简单。缺点占用了一个寄存器。比较且分支:测试分支条件的方法比较操作是分支指令的一部分,通常这种比较是

33、受一定限制的。优点比较操作是分支指令的一部分,通常这种比较是受一定限制的。缺点分支指令的操作增多14两种方法来保存寄存器的内容: (1) “调用者保存”方法 在一个调用者调用别的过程时,必须保存调用者所要保存的寄存器,以备调用结束返回后,能够再次访问调用者。 (2) “被调用者保存”方法被调用的过程必须保存它要用的寄存器,保证不会破坏过程调用者的程序执行环境,并在过程调用结束返回时,恢复这些寄存器的内容。15操作数类型和操作数表示是软硬件主要界面之一 。操作数类型:面向应用、面向软件系统所处理的各种数据结构.操作数表示:硬件结构能够识别、指令系统可以直接调用的那些结构。16操作数的类型整数(定

34、点);浮点;十进制;字符;字符串;向量;堆栈17操作数类型的两种表示方法 (1) 操作数的类型由操作码的编码指定。(最常见的一种方法,ADD和FADD)(2) 数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算(少见)。 18操作数大小:字节;半字(16位);单字(32位);双字(64位)(1) 字符: 用ASCII码表示,为一个字节大小。(2) 整数: 用二进制补码表示,其大小可以是字节、半字或单字。(3) 浮点操作数: 单精度浮点(单字大小)和双精度浮点(双字大小)(4) 字符串: 将字符串中的每个字符当作一个字节来看待。 (5) 十进制操作数 压缩十进制用4位二

35、进制数编码数字09,然后将两个十进制数字压缩在一个字节中存储。 二进制编码十进制将十进制数字直接用字符串来示 19指令集格式的设计 指令由操作码和地址码组成设计原则(1)尽可能地增加寄存器数目和寻址方式类型;(2)充分考虑寄存器字段和寻址方式字段对指令平均字长的影响,以及它们对目标代码大小的影响;(3)设计出的指令集格式能够在具体实现中容易处理。20两种表示寻址方式的方法(1) 将寻址方式编码于操作码中,由操作码在描述指令操作的同时,也描述了相应操作的寻址方式;(2) 为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。选择哪种表示寻址方式的方法?由两个因数决定:(1) 指

36、令集结构所采用的寻址方式种类及其适用范围 (2) 操作码与寻址方式之间的独立程度寻址方式多,指令中操作数多适合用地址描述符方法。 21三种指令集编码格式 : 变长编码格式;固定长度编码格式;混合型编码格式变长编码格式:(1)有效减少指令集结构的平均指令长度,降低目标代码的长度。(2)使得各条指令的字长和执行时间大不一样。多数CISC计算机的指令集结构均是采用这种编码格式。固定长度编码格式将操作类型和寻址方式组合编码在操作码中,所有指令的长度是固定唯一的混合型编码格式通过提供一定类型的指令字长期望能够兼顾降低目标代码长度和降低译码复杂度两个目标。22 DLX指令集结构DLX中的寄存器:(1) 3

37、2个通用寄存器。命名:R0、R1、R31。长度:32位寄存器R0的值总是为0。(2) 32个浮点寄存器。命名:F0、F1、F31长度:32位(用来保存32位的单精度浮点数 )(3) 一些特殊的寄存器(比如用来保存浮点操作结果信息的浮点状态寄存器)可以和通用寄存器相互进行数据传送。DLX的数据类型(1)整型数据。有8位、16位和32位多种长度。(当8位和16位整型数据载入到寄存器中时,用0或数据的符号位来填充32位通用寄存器中的剩余位。) (2)浮点数据。有32位单精度浮点数和64位双精度浮点数。浮点数据表示采用的是IEEE 754标准DLX的寻址方式和数据传送(1)寻址方式:寄存器寻址;立即值

38、寻址;偏移寻址;寄存器间接寻址 (2) 寄存器寻址字段的大小为5位,用来表示32个通用寄存器或浮点寄存器。(3) 存储器地址采用的是高端字节表示顺序,存储器按字节寻址,其地址宽度为32位。(4) 通过寄存器(通用寄存器和浮点寄存器)和存储器之间的数据传送操作完成对存储器的访问。DLX的指令格式:寻址方式编码在操作码中;指令的字长32位,其中用6位表示操作码。DLX中四种类型的操作:Load和Store操作;ALU操作;分支和跳转操作;浮点操作约定:(1) 符号“”: 数据传送操作其后附带一个下标n,也即“n” 表示传送一个n位数据。(2) 符号“#”: 两个域的串联操作(3) 域的下标:表明从

39、该域中选择某一位。域中位的标记是从最高位开始标记,并且起始标记为0;下标可以是一个单独的数字如 RegsR40 :选择寄存器R4中内容的符号位;下标也可以是一个范围。RegsR324.31 :选择寄存器R3中内容的最低一个字节。(4) 上标:表示复制一个域。如 024可以得到一个24位全为0的一个域。(5) 变量Mem:表示存储器中的一个数组,存储器按照字节寻址。例R8和R10:32位寄存RegsR1016.31 16(MemRegsR80)8 # MemRegsR8的含义。第三章 流水线技术流水线的基本概念1. 指令流水线把指令的解释过程分解为“分析”和“执行” 两个子过程,并让这两个子过程

40、分别用独立的分析部件和执行部件来实现。理想情况:速度提高一倍浮点加法流水线把浮点加法的全过程分解为“求阶差”、“对阶”、“尾数相加”、“规格化”四个子过程,并让它们分别用各自独立的部件来实现。理想情况:速度提高3倍时空图时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段。流水技术流水技术是指:将一个重复的时序过程分解成为若干个子过程,而每个子过程都可有效地在其专用功能段上与其他子过程同时执行。流水技术的特点(1) 流水过程由多个相联系的子过程组成,每个子过程称为流水线的“级”或“段”。“段”的目称为流水线的“深度”。(2) 每个子过程由专用的功

41、能段实现;(3) 各个功能段所需时间应尽量相等,否则,时间的功能段将成为流水线的瓶颈,会造成流水线的“堵塞”和“断流”。这个时间一般为一个时钟周期(拍);(4) 流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;(5) 流水技术适合于大量重复的时序过程,只有输入端能连续地提供任务,流水线的效率才能充分发挥。3.1.2 流水线的分类1按功能的多少来分单功能流水线:只能完成一种固定功能的 流水线。多功能流水线:流水线的各段可以进行不同的 连接,从而实现不同的功能。2按同一时间内各段之间的连接方式来分静态流水线:在同一时刻

42、,流水线的各段只能 按同一种功能的连接方式工作。在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。动态流水线:在同一时刻,流水线的各段可以按不同功能的连接方式工作。这样就不是非得相同运算的一串操作才能流水处理。 优点:能提高流水线的效率 缺点:会使流水线的控制变得复杂3按照流水线的级别来分部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。处理机级流水线(指令流水线):把指令的解释执行过程按照流水方式进行处理。 例如:前面把指令解释过程分解为:分析和执行DLX的基本流水线把指令解释过程分解为:取指令、指令译码、执行、访存、写回

43、。(图示) 处理机间流水线(宏流水线):它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。4按照数据表示来分标量处理机:不具有向量指令和向量数据表示, 仅对标量进行流水处理的处理机。例如:IBM360/91, Amdahl 470V/6 等向量处理机:具有向量指令和向量数据表示的 处理机。例如:TI ASC, CRAY-I 等5. 按照是否有反馈回路来分线性流水线:流水线中的各段串行连接,没 有反馈回路。非线性流水线:流水线中的各段除有串行连接 外,还有反馈回路。 6. 按照流动是否可以乱序来分顺序流动流水线:流水线输出端任务流出的顺 序与输入端任务流入的顺序相同。异

44、步流动流水线(乱序流水线):流水线输出端任务流出的顺序与输入端任务流入的顺序不同。3.2DLX的基本流水线1. 实现DLX指令的一种简单数据通路定义:ADD:加法器PC:指令计数器NPC:下一条顺序指令计数器IR:指令寄存器A、B:操作数临时寄存器Imm:立即数临时寄存器Cond:条件值寄存器MUX:多路开关ALU:运算器ALU Output:运算器输出寄存器LMD:存储器数据读取寄存器2. 一条DLX指令最多需要以下5个时钟周期:(1) 取指令周期(IF) IR MemPC NPC PC4(2)指令译码/读寄存器周期(ID) A RegsIR6 .10 B RegsIR11 .15 Imm

45、(IR16)16 # IR16 .31指令译码和读寄存器是并行进行的。之所以能做到这一点,是因为在DLX指令格式中,操作码在固定位置。这种技术也称为固定字段译码。(3)执行/有效地址计算周期(EX) 在这个周期,不同的指令有不同的操作。(4)存储器访问/分支完成周期(MEM) 在该周期处理的DLX指令只有Load、Store和 分支指令。存储器访问LMD MemALUOutput 或 Mem ALUOutput B 分支操作if(cond)PC ALUOutput else PC NPC (5)写回周期(WB)不同指令在该周期完成的工作也不一样 寄存器寄存器型 ALU 指令 RegsIR16

46、.20 ALUOutput 寄 存器立即值型 ALU 指令 RegsIR11 .15 ALUOutput Load 指令RegsIR11 .15 LMD 3. 分支指令需要4个时钟周期,其它指令需要5 5个时钟周期假设分支指令占总指令数的12, 则: CPI4.88上述实现无论在性能上还是在硬件开销上,都不是优化的。3.2.2 基本的DLX流水线1一种简单的 DLX 流水线我们可以把3.2.1中的数据通路流水化:每个时钟周期启动一条新的指令。这样,该数据通路中的每一个周期就成了一个流水段。2. 简单DLX流水线的流水过程第一种描述(类似于时空图)第二种描述(按时间错开的数据通路序列)3. 采用

47、流水技术还应解决好以下几个问题:(1)应保证不会在同一个时钟周期内在同一数据 通路资源上做不同的操作。例如,不能要求一个ALU同时既做有效地址计算,又做减法操作。上述简单DLX流水线中:指令存储器(IM)和数据存储器(DM)分开,避免了访存冲突; ID段和WB段都要访问同一寄存器文件。ID段:读WB段:写 如何解决对同一寄存器的访问冲突?;没有考虑 PC 问题。流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行PC值的加4操作,并保留新的PC值。这种操作必须在IF段完成,以便为取下一条指令做好准备。(2)每一流水段内的操作都必须在一个时钟周期 内完成(3)流水线寄存器(组)流

48、水线各段之间需设置流水线寄存器(也称为锁存器)流水线寄存器组及其所含寄存器的命名。例如,ID段和EX段之间的流水线寄存器组中的IR寄存器的名称为:ID/EX.IR流水线寄存器的作用把数据和控制信息从一个流水段传送到下一个流水段。4. DLX流水线的操作对于流水线中的指令来说,在任一时刻,它仅在流水线中的某一段内执行操作。因此,只要知道每一流水段在各种指令下进行何种操作,就知道了整个流水线的操作。(表3.1)给出了DLX流水线各段的操作。5DLX流水线的控制主要是确定如何控制那四个多路选择器。IF段MUX:下一条指令地址为增长后的PC(当前PC 加4)或向前数第三条指令的ALUOutput的值,

49、前提是那条指令为分支指令并且条件成立EX段MUX:上面一个MUX选择一个操作数是寄存器值还是NPC(分支指令),下面一个MUX选择另一个操作数是寄存器值还是立即数(I型指令)WB段MUX:写回寄存器的值来自于LMD(Load指令)或ALUOutput(ALU指令)3.2.3 流水线性能分析1. 吞吐率吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。(1) 最大吞吐率TPmax 最大吞吐率是指流水线在连续流动达到稳定状态后所得到的吞吐率。 若流水线各段的时间相等,均为t0 ,则: TPmax 1 /t0 若流水线各段的时间不等,则: 1TPmaxm axti 最大吞吐率取决于流水线中最

50、慢的一段所需的时间,这段就成了流水线的瓶颈。 消除瓶颈的方法 细分瓶颈段 重复设置瓶颈段 (时-空图)(2) 实际吞吐率TP 流水线的实际吞吐率小于最大吞吐率 第一种情况:各段时间相等(设为t0) 假设流水线由 m 段组成,完成 n 个任务。时空图完成 n 个任务所需的时间 T流水mt0(n1)t0 第二种情况:各段时间不等时空图完成 n 个任务所需的时间T流水ti(n1)tj tj maxti 实际吞吐率TP ti(n1)tjTP mi=1n2. 加速比S加速比是指流水线的速度与等功能非流水线的速度之比。ST非流水T流水(其中T流水和T非流水分别为按流水和按非流水方式处理 n 个任务所需的时

51、间)若流水线为 m 段,且各段时间相等,均为t0 ,则: T非流水n mt0 T流水mt0(n1)t0 S T非流水T流水nmt0mt0(n1)t0mnmn1mn1 m1 可以看出:当n m 时,S m想一想:n 越大越好?3效率 E效率是指流水线的设备利用率。(1) 由于流水线有通过时间和排空时间,所以 流水线的各段并不是一直满负荷地工作。故:E 1(2) 若各段时间相等,则各段的效率ei相等,即 e1e2 e3emnt0T流水 (解释) 整个流水线的效率为:nt0 n 1E T流水 m+n-1 1m-1 n当 n m 时,E 1(3) 从时空图上看,效率实际上就是 n 个任务所占的时空区与

52、 m 个段总的时空区之比,即: n 个任务占用的时空区E m 个段总的时空区(4) 提高流水线效率所采取的措施对于提高吞吐率也有好处。4流水线性能分析举例例3.1 在静态流水线上计算 AjBj (j从1到4), 求:吞吐率,加速比,效率。解:(1) 确定适合于流水处理的计算过程(2) 画时空图(3) 计算性能 吞吐率 TP7(20t) 加速比 S(34t)(20t)1.7 效率 E(4436)(820)0.21例3.2 假设前面DLX非流水线实现的时钟周期时间 为10ns,ALU和分支指令需要4个时钟周期,访 问存储器指令需5个时钟周期,上述指令在程序 中出现的相对频率分别是:40%、20%和

53、40%。在 基本的DLX流水线中,假设由于时钟扭曲和寄存 器建立延迟等原因,流水线要在其时钟周期时 间上附加1ns的额外开销。现忽略任何其他延迟 因素的影响,请问:相对于非流水实现而言, 基本的DLX流水线执行指令的加速比是多少?解:当非流水执行指令时,指令的平均执行时间为 TPI非流水 = 10ns(40%+20%)440%5) = 10ns4.4 = 44ns 在流水实现中,指令执行的平均时间是最慢一段的执行时间加上额外开销,即 TPI流水 = 10ns+1ns = 11ns 所以基本的DLX流水线执行指令的加速比为S =TPI非流水TPI流水44ns11ns= 4例3.3 假设在DLX的

54、非流水实现和基本流水线中,5个功能单元的时间为:10,8,10,10,7(ns), 流水额外开销为:1ns,求加速比S。解:T非流水1081010745 (ns) T流水 10111 (ns) S 45114.15有关流水线性能的若干问题(1) 流水线并不能减少(而且一般是增加)单条指 令的执行时间,但却能提高吞吐率。(2) 增加流水线的深度(段数)可以提高流水线的 性能。(3) 流水线的深度受限于流水线的延迟和流水线 的额外开销。(4) 流水线的额外开销包括: 流水寄存器的延迟(建立时间和传输延迟) 时钟扭曲(5) 当时钟周期小到与额外开销相同时,流水已没意 义。因为这时在每一个时钟周期中已

55、没有时间来 做有用的工作。(6) 需用高速的锁存器来作为流水寄存器。 Earle锁存器(1965)的三个特点: 对时钟扭曲不太敏感(相对而言) 其延迟为常数:2个门级延迟,避免了数据通 过锁存器时的扭曲。 锁存器中可以进行两级逻辑运算而不增延迟时 间。这样每个流水段中的两级逻辑可以与锁存 器重叠,从而能隐藏锁存器开销的绝大部分。(7) 相关问题 如果流水线中的指令相互独立,则可以充分 发挥流水线的性能。但在实际中,指令间可能会 是相互依赖,这会降低流水线的性能。下一节介 绍如何解决相关问题。3.3流水线中的相关1相关的概念流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原

56、指定的时钟周期开始执行。2相关的分类 结构相关 当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了结构相关。 数据相关 当一条指令需要用到前面某条指令的结 果,从而不能重叠执行时,就发生了数据相关。 控制相关 当流水线遇到分支指令和其他能够改变 PC值的指令时,就会发生控制相关。3几个问题 相关有可能会使流水线停顿。 消除相关的基本方法:让流水线中的某些指令暂停,而让其它指令继续执行。3.3.1 流水线中的结构相关1. 在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。2. 如果某种指令组合因资源冲突而不能顺利重 叠执行,则称该机器

57、具有结构相关。3. 常见的导致结构相关的原因: 功能部件不是全流水 重复设置的资源的份数不够4. 结构相关举例:访存冲突当数据和指令存在同一存储器中时,访存指令会导致访存冲突。解决办法: 插入暂停周期(“流水线气泡”或“气泡”)解决方法: 设置相互独立的指令存储器和 数据存储器或设置相互独立的指令Cache和数据Cache。5. 避免结构相关: 所有功能单元完全流水化 设置足够的硬件资源。硬件代价很大。6. 有些设计方案允许有结构相关 降低成本 减少部件的延迟3.3.2 流水线的数据相关1. 数据相关简介当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水

58、实现时的顺序,这将导致数据相关。2. 利用定向技术减少数据相关引起的暂停 (1) 定向技术的主要思路:在发生上述 数据相关时,后面的指令并不是马上就要用到前一条指令的计算结果。如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。 (2) 采用定向技术消除上例中的相关(3) 当定向硬件检测到前面某条指令的结果寄存 器就是当前指令的源寄存器时,控制逻辑会 将前面那条指令的结果直接从其产生的地方 定向到当前指令所需的位置。(4) 一个功能单元的输出不仅可以定向到其自身 的输入,而且还可以定向到其它单元的输入(5) 在DLX中,任何流水寄存器到任何功能单元的 输入都可能需要定向路径。

59、(6) 当两条指令对存储器同一单元进行读写时, 也可能发生数据相关。但本章仅讨论有关寄 存器的数据相关。3. 数据相关的分类按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:(考虑两条指令i和j , 假设i 先进入流水线)(1) 写后读相关 (RAW) (命名规则) 在 i 写入之前,j 先去读。 j 读出的内容是错误的。这是最常见的相关。(2) 写后写相关 (WAW) 在 i 写入之前,j 先写。 最后写入的结果是 i 的,错误 这种相关仅出现在这样的流水线中: 流水线中有多个段可以进行写操作 当某条指令在流水线中暂停时,允许其后 的指令继续向前流动。 DLX整数流水线中不会发生这

60、种相关 (仅在WB段进行写操作) 若对DLX作以下修改,则会发生WAW相关: 把ALU操作指令的“写回”移到MEM段 假设访问数据存储器需占用两拍(3) 读后写相关 (WAR)在 i 读之前,j 先写。i 读出的内容是错误的! 这种相关仅出现在这样的流水线中:有些指令是在流水线的后部读源操作数,而有些指令则是在流水线的前部写结果。 DLX流水线中不会发生这种相关; (读在先(ID),写在后(WB)) 这种相关很少发生; (因为流水线一般是先读操作数,后写结果 复杂指令可能导致这种相关。4. 需要暂停的数据相关(1) 并非所有的数据相关都可以用定向技术解决(2) 增加流水线互锁硬件,插入“暂停”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论