的关键技术.ppt

上传人:本田雅阁 文档编号:2319722 上传时间:2019-03-20 格式:PPT 页数:27 大小:127.51KB
返回 下载 相关 举报
的关键技术.ppt_第1页
第1页 / 共27页
的关键技术.ppt_第2页
第2页 / 共27页
的关键技术.ppt_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《的关键技术.ppt》由会员分享,可在线阅读,更多相关《的关键技术.ppt(27页珍藏版)》请在三一文库上搜索。

1、2.5.4 RISC的关键技术,1. 延时转移技术 为了使指令流水线不断流,在转移指令之后插入一条没有数据相关和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术。 采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预。 读采用延迟转移的程序,必须十分小心。,无条件转移指令的延迟执行,条件转移指令的延迟执行 调整前的指令序列: 1:MOVE R1, R2 2:CMP R3, R4 ;(R3)与(R4)比较 3:BEQ EXIT ;如果(R3)=(R4)则转移 NEXT: MOVE R4, A,调整后的指令序列: 1:CMP R3, R4 ;(R3)与(R4)比较

2、 2:BEQ EXIT ;如果(R3)=(R4)则转移 3:MOVE R1,R2 ;被插入的指令 NEXT: MOVE R4, A,采用延迟转移技术的两个限制条件 被移动指令在移动过程中与所经过的指令之间没有数据相关 被移动指令不破坏条件码,至少不影响后面的指令使用条件码 如果找不到符合上述条件的指令,必须在条件转移指令后面插入空操作 如果指令的执行过程分为多个流水段,则要插入多条指令 插入1条指令成功的概率比较大,插入2条或2条以上指令成功的概率明显下降,2. 指令取消技术 采用指令延时技术,经常找不到可以用来调整的指令, 可考虑采用另一种方法:指令取消技术 分为两种情况: (1)向后转移(

3、适用于循环程序) 实现方法:循环体的第一条指令安放在两个位置,分别在循环体的前面和后面。 如果转移成功,则执行循环体后面的指令,然后返回到循环体开始; 否则取消循环体后面的指令,效果: 能够使指令流水线在绝大多数情况下不断流。 对于循环程序,由于绝大多数情况下,转移是成功的。 只有最后一次出循环时,转移不成功。,(2)向前转移(IF THEN ) 实现方法:如果转移不成功,执行转移指令 之后的下条指令,否则取消下条指令。 例子:R R R “IF”部分的程序代码 S S S COMP R1, R2, THRU T T T “THEN”部分的程序代码 U U U THRU: V V V 效果:转

4、移成功与不成功的概率, 通常各50 主要优点:不必进行指令流调整,3. 重叠寄存器窗口技术 (Overlapping Register Window) 原因:在RISC中,子程序比CISC中多 因为传送参数而访问存储器的信息量很大 美国加洲大学伯克利分校的F Baskett提出 实现方法:设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的三个窗口和一个公共的窗口,在这些窗口中: 有一个窗口是与前一个过程共用 有个窗口是与下一个过程共用。 与前一过程共用的窗口可以用来存放前一过程传递给本过程的参数,同时也可以用于存放本过程传送给前一过程的计算结果。,例子:(在RISC

5、II中采用的方法) 目前,SUN公司的SPARC、SuperSPARC、UtraSPARC等处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环圈。 效果:可以减少大量的访存操作。 另外,要在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把益出部分的寄存器中内容压入堆栈。,4. 指令流调整技术 目标:通过变量重新命名消除数据相关,提高流水线效率 例子:调整后的指令序列比原指令序列的执行速度快一倍 ADD R1,R2,R3 ADD R1,R2,R3 ADD R3,R4,R5 MUL R6,R7,R0 MUL R6,R7,R3 ADD R3,R4,R5 MUL R3,

6、R8,R9 MUL R0,R8,R9 调整前的指令序列 调整后的指令序列,5. 以硬件为主固件为辅 固件的主要缺点是: 执行速度低。目前,ROM的速度低于SRAM 一条机器指令通常要多条微指令解释执行 固件的主要优点是: 便于实现复杂指令,便于修改指令系统 以硬联逻辑为主来实现指令系统 对于少数复杂的指令,目前的许多处理机也用微程序技术实现。,2.5.5 RISC优化编译技术,RISC对编译器带来的方便主要有: (1)指令系统比较简单、对称、均匀,指令选择工作简单。 (2)选择寻址方式的工作简单, (3)因为采用LOAD/STORE方式,省去了是否生成访问存储器指令的选择工作。 (4)由于大多

7、数指令在一个周期内执行完成,为编译器调整指令序列提供了极大的方便。,RISC对编译器造成的困难主要有: (1)必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数。 (2)做数据和控制相关性分析,要调整指令的执行序列,并与硬件相配合实现指令延迟技术和指令取消技术等。 (3)要设计复杂的子程序库,RISC的子程序库通常要比CISC的子程序库大得多。,2.6 VLIW指令系统,2.6.1 什么是WLIW 2.6.2 指令级并行技术 2.6.3 VLIW的主要特点 2.6.4 VLIW处理机,2.6.1 什么是VLIW,1. VLIW (Very Long

8、Instruction Word) 的背景 由美国J. A. Fisher教授于1981年首先提出 最初来源于水平微程序 由J. A. Fisher创建的Mutiflow公司研制了的世界上第一台VLIW处理机TRACE28/300。 一条指令中包含有多个能够同时执行的操作 TRACE28/300处理机的一条超长指令中最多有28条可以同时执行的指令。 算法和编译技术是关键 在下一代处理机中将普遍采用,2. 什么是VLIW指令系统 一种显式指令级并行指令系统。 EPIC:Explicitly Parallel Instruction Computing 在一条VLIW指令中包含有多个相同或不同的操

9、作字段(每个操作字段的功能相当于一般处理机中的一条指令)。每个操作字段能够分别独立控制各自的功能部件同时工作,即用一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。 通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。哪些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。,2.6.2 指令级并行,提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(Instruction

10、Level Parallelism) 超标量(Superscalar)处理机 依靠设置多条指令流水线,并通过同时发射多条指令来提高处理机的运算速度,将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术. 超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).这样,可以使得cpu的IPC(Instruction Per Clock) 1, 从而提高

11、cpu处理速度.,超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度. 超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作. 我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术.,超流水线(Superpipelining)处理机 通过分时使用同一条指令流水线的不同部分来提高处理机的运算速度。 超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Cloc

12、k来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间就越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令的操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度就提高了。,2.6.3 VLIW的主要特点,1. 采用显式并行指令计算(EPIC:Explicitly Parallel Instruction Computing)方式。 在VLIW处理机上运行的程序是一个二维指令矩阵,每一行上的所有操作组成一条超长指令,他们之间没有数据相关、控制相关和功能部件冲突,这

13、些指令可以在VLIW处理机上同时执行 超标量处理机和超流水线处理机通常采用隐式并行指令方式。程序是一维线性的指令序列,每条指令中一般只包含一个操作。,2.指令级并行度高 超标量处理机和超流水线处理机的指令级并行度一般为2左右,通常不超过4, 目前多数VLIW处理机的指令级并行度在4至8之间,有的已经达到几十。 由于在VLIW中通过并行编译器来开发程序中的指令级并行性,可以在一个循环、一个函数、甚至整个程序中寻找指令级并行性,而且,可以采用软件流水、循环展开等指令级并行度很高的方法充分开发程序中的多种并行性,3. 硬件结构规整、简单 VLIW处理机主要由很规则的寄存器、存储器、运算部件和数据通路

14、等组成,不规则的控制器很简单,而且,不需要复杂的指令并行调度窗口及多发射机制等。 4. 编译器的实现难度大 VLIW并行编译器主要依靠指令级并行算法、数据相关性分析算法、寄存器分配算法及并行编译技术等来显式开发程序中的指令级并行性,从而提高处理机的运行速度。要研制指令级并行度高的编译器难度很大。,2.6.4 VLIW处理机,1. 安腾(Intanium)处理机 Intel公司与HP公司联合研制 在Intel公司称为IA-64处理机 安腾(Intanium)处理机有自己独立的系统软件和应用软件 2. DAISY (Dynamically Architected Instruction Set f

15、rom Yorktown) 处理机 由IBM公司研制 采用动态二进制转换技术实现与X86处理机兼容,3. Crusoe处理机 由Transmeta公司研制 已经大量应用于笔记本计算机中,一个重要特点是功耗很低。 采用动态二进制转换技术把X86通用处理机的程序直接映射到Crusoe处理机的VLIW结构中执行。 4. 嵌入式、DSP、JAVA虚拟机 很多专用处理机采用VLIW体系结构,本章重点: 1. 浮点数的表示方法及性质 2. 浮点数的设计方法 3. 浮点数的舍入方法和警戒位位数的设置 4. 自定义数据表示方法的原理 5. 指令格式的优化设计 6. RISC思想 7. RISC关键技术 练习题: 2 .2 2.6 2.9 2.10 2.13 2.14 2.20,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1