DLX流水线技术数据相关与结构相关

DLX流水线技术数据相关与结构相关
DLX流水线技术数据相关与结构相关

3.3.2流水线的数据相关

1. 数据相关简介

当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使得读/写操作顺序不同于它们非流水实现的顺序,这将导致数据相关。首先让我们考虑下列指令在流水线中的执行情况:ADD R1,R2,R3

SUB R4,R5,R1

AND R6,R1,R7

OR R8,R1,R9

XOR R10,R1,R11

ADD指令后的所有指令都要用到ADD指令的计算结果,如图3.3.4所示,ADD 指令在WB 段才将计算结果写入寄存器R1 中,但是SUB 指令在其ID 段就要从寄存器R1 中读取该计算结果,这种情况就叫做数据相关。除非有措施防止这一情况出现,否则SUB 指令读到的是错误的值。所以,为了保证上述指令序列的正确执行,流水线只好暂停ADD 指令之后的所有指令,直到ADD 指令将计算结果写入寄存器R1 之后,再启动ADD

指令之后的指令继续执行。

从图3.3.4还可以看到,AND 指令同样也将受到这种相关关系的影响。ADD 指令只有到第五个时钟周期末尾才能结束对寄存器R1 的写操作,所以AND 指令在第四个时钟周期从寄存器R1 中读出的值也是错误的。而XOR 指令则可以正常操作,因为它是在第六个时钟周期读寄存器R1 的内容。

另外,利用DLX流水线的一种简单技术,可以使流水线顺利执行OR 指令。这种技术就是:在DLX 流水线中,约定在时钟周期的后半部分进行寄存器文件的读操作,而在时钟周期的前半部分进行寄存器文件的写操作。在本章的图中,我们将寄存器文件的边框适当地画成虚线来表示这种技术。

2. 通过定向技术减少数据相关带来的暂停

图3.3.4中的数据相关问题可以采用一种称为定向(也称为旁路或短路)的简单技术来解决(动画演示)。定向技术的主要思想是:在某条指令(如图3.3.4中的ADD 指令)产生一个计算结果之前,其它指令(如图3.3.4中的SUB 和AND 指令)并不真正需要该计算结果,如果能够将该计算结果从其产生的地方(寄存器文件EX/MEM)直接送到其它指令需要它的地方(ALU 的输入寄存器),那么就可以避免暂停。基于这种考虑,定向技术的要点可以归纳为:

(1) 寄存器文件EX/MEM 中的ALU 的运算结果总是回送到ALU 的输入寄存器。

(2) 当定向硬件检测到前一个ALU 运算结果的写入寄存器就是当前ALU 操作的源寄存器时,那么控制逻辑将前一个ALU 运算结果定向到ALU 的输入端,后一个ALU 操作就不必从源寄存器中读取操作数。

图3.3.4还表明,流水线中的指令所需要的定向结果可能并不仅仅是前一条指令的计算结果,而且还有可能是前面与其不相邻指令的计算结果,图3.3.5是采用了定向技术后上述例子的执行情况,其中寄存器文件和功能单元之间的箭头表示定向路径。上述指令序列可以在图3.

3.5中顺利执行而无需暂停。

上述定向技术可以推广到更一般的情况,可以将一个结果直接传送到所有需要它的功能单元。也就是说,一个结果不仅可以从某一功能单元的输出定向到其自身的输入,而且还可以从某一功能单元的输出定向到其它功能单元的输入。

(1) 写后读相关(RAW:Read After Write)(命名规则):j 的执行要用到i 的计算结果,当它们在流水线中重叠执行时,j 可能在i 写入其计算结果之前就先行对保存该结果的寄存器进行读操作,从而得到错误的值。这是最常见的一种数据相关,图3.3.6和图3.3.

7中采用定向技术消除的数据相关就属于这种类型。

(2) 写后写相关(WAW:Write After Write ):j 和i 的目的寄存器相同,当它们在流水线中重叠执行时,j 可能在i 写入其计算结果之前就先行对该结果寄存器进行写操作,从而导致写入顺序错误,在目的寄存器中留下的是i 写入的值,而不是j 写入的值。

如果在流水线中不只一个段可以进行写操作,或者当流水线暂停某条指令时,允许该指令之后的指令继续前进,就可能会产生这种类型的数据相关。由于DLX 流水线只在WB 段写寄存器,所以在DLX 流水线中执行的指令不会发生这种类型的数据相关。如果我们对DLX流水线作如下改变,在DLX流水线中执行的指令就有可能发生WAW相关。首先,将ALU 运算结果的写回操作移到MEM 段进行,因为这时计算结果已经有效;其次,假

设访问数据存储器占两个流水段。下面是两条指令在修改后的DLX 流水线中执行的情况:

可以看出,在修改后的DLX 流水线中执行上述指令序列后,寄存器R1 中的内容是第一条指令(LW)的写入结果,而不是ADD 指令的写入结果。这就是由于WAW 相关所带来的错误执行结果。

(3) 读后写相关(WAR:Write After Read ):j 可能在i 读取某个源寄存器的内容之前就先对该寄存器进行写操作,导致i 后来读取到的值是错误的。

由于DLX 流水线在ID 段完成所有的读操作,在WB 段完成所有的写操作。所以,在DLX 流水线中不会产生这种类型的数据相关。基于上面修改后的DLX 流水线,考察下面两条指令的执行情况:

如果SW 指令在MEM2 段的后半部分读取寄存器R2 的值,ADD 指令在WB 段的前半部分将计算结果写回寄存器R2,则SW 将读取错误的值,将ADD 指令的计算结果写入存储器中。值得注意的是,在读后读(RAR:Read After Read)的情况下,不存在数据相关问题。

4. 需要暂停的数据相关

前面我们讨论了如何利用定向技术消除由于数据相关带来的暂停。但是,并不是所有数据相关带来的暂停都可以通过定向技术消除。

为了保证流水线正确执行上述指令序列,可以设置一个称为流水线互锁(pipeline interlo ck)的功能部件。一旦流水线互锁检测到上述数据相关,流水线暂停执行LW指令之后的所有指令,直到能够通过定向解决该数据相关为止。

图3.3.12为流水线互锁插入暂停后流水线数据通路;

图3.3.13是加入暂停前后的流水线时空图。

下面讨论如何利用编译器技术来减少这种必须的暂停,然后论述如何在流水线中实现数据相

关检测和定向。

5. 对数据相关的编译器调度方法

流水线常常会遇到许多种类型的暂停。比如,采用典型的代码生成方法对A = B + C这种常用的表达式进行处理,可以得到如图3.3.14所示的指令序列。从图3.3.14可以看出,在ADD 指令的流水过程中必须插入一个暂停时钟周期,以保证变量C的读入值有效。既然定向无法消除指令序列中所包含的这种暂停,那么能否让编译器在进行代码生成时就消除这些潜在的暂停呢?

实际上,编译器的确可以通过重新组织代码顺序来消除这种暂停。通常称这种重新组织代码顺序消除暂停的技术为流水线调度(pipeline scheduling)或指令调度(instruction schedulin g)。

例3.6 请为下列表达式生成没有暂停的DLX代码序列。假设载入延迟为1个时钟周期。

a =

b - c;

d =

e - f;

解:调度前后的指令序列如表3.2所示。可以看出,两条ALU指令(ADD Ra,Rb,R c 和SUB Rd,Re,Rf)分别和两条Load指令(LW Rc,c和LW Rf,f)之间存在数据相关。为了保证流水线正确执行调度前的指令序列,必须在指令执行过程中插入两个时钟周期的暂停。但是考察调度后的指令序列不难发现,由于流水线允许定向,就不必在指令执行

过程中插入任何暂停周期。

6. 对DLX流水线控制的实现

让一条指令从流水线的指令译码段(ID)移动到执行段(EX)的过程通常称为指令发射,而经过了该过程的指令为已发射的指令。

对于DLX 标量流水线而言,所有的数据相关均可以在流水线的ID段检测到,如果存在数据相关,指令在其发射之前就会被暂停。这样,我们可以在ID段决定需要什么样的定向,然后设置相应的控制。在流水线中较早地检测到相关,可以降低实现流水线的硬件复杂度,因为这样不必在流水过程中被迫将一条已经改变了机器状态的指令挂起。另外一种方法是在使用一个操作数的时钟周期开始(DLX 流水线的EX 和MEM 段的开始)检测相关,确定必需的定向。

为了说明这两种方法的不同,我们将以Load 指令所引起的RAW 相关为例,论述如何通过在ID段的检测来实现流水线控制,其中到ALU 输入的定向路径可以在EX 段。表3.3列出了流水线相关检测硬件可以检测到的各种相关情况。

现在来看看如何实现流水线互锁。如果某条指令和Load 指令有一个RAW 相关时,该指令处于ID段,Load 指令处于EX段。我们可以用表3.4来描述此时所有可能的相关情况。

一旦硬件检测到上述RAW 相关,流水线互锁必须在流水线中插入暂停周期,使正处于IF 和ID段的指令不再前进。另外,还必须暂停向前传送IF/ID 寄存器组的内容,使得流水线能够保持被暂停的指令。

对定向而言,虽然可能要考虑许多情况,但是定向逻辑的实现方法是类似的。实现定向逻辑的关键是,流水线寄存器不仅包含了被定向的数据,而且包含了目标和源寄存器域。从上面的讨论可知,所有定向都是从ALU 或数据存储器的输出到ALU、数据存储器或0检测单元的输入的定向,我们可以分别将EX/MEM 和MEM/WB 段的寄存器IR 同ID/EX 和EX/MEM 段中的寄存器IR 相比较,决定是否需要定向,从而实现必需的定向控制。

定向的控制硬件除了需要用比较器和组合逻辑来确定什么时候打开哪一条定向路径之外,还需要在ALU 输入端采用具有多个输入的多路器,并增加相应的定向路径连接通路。改进图3.2.17中的相关硬件,可以得到图3.3.15,图中画出了所增设的定向路径。

在DLX 中,任何流水线寄存器到任何功能单元的输入都可能需要定向路径。前面的一些数据相关的实例均是有关寄存器操作数的,但是数据相关也有可能发生在一对指令对存储器同一单元进行读写的时候。不过,本章仅讨论有关寄存器的数据相关。

3. 数据相关的分类

根据指令对寄存器的读写顺序,可以将数据相关分为三类。习惯上,这些相关是根据流水线所必须保持的访问顺序来命名的。考虑流水线中的两条指令i 和j ,且i 在j 之前

进入流水线,由此可能带来的数据相关有:

手工装配流水线结构与生产节拍分析

手工装配流水线结构与生产节拍分析 在目前国内制造业中,手工装配流水线是最基本的生产方式,相当多的产品的装配都在手工装配流水线上进行的,进行产品的装配作业,特别在家电制造行业就是一个典型的例子.这种装配作业中在制造业中发挥重要作用,它适用于产品需求量较大;相同或相似;装配过程中可以分解为多个工序;减少人的疲劳强度,而且节约一些成本.手工装配流水线的基本特点,成本低廉;可以充分利用国内大量廉价劳动力资源,由于产品是有许多零件和部件组成的;需要许多工人完成工序.如果每一个工人长期从事某一工序或多个工序操作;可以达到一定的操作水平和技能;生产组织灵活性很好,不仅能够适应多品种中小批量生产的需要(因厂家的订单数量不多,但是品种多的话,规格需要更换)不适合于自动化生产;有利于提高产品的质量,有许多产品是要靠人工和机器完成的;能够及时发现产品质量问题;在实际情况中也反映,市场竞争相当激烈;,用户和商家对产品的质量要求更高,新产品周期更短,产品价格更低.企业的最终目标也是时间更短;质量要求更高;成本更低;降低成本是企业竞争手段之一,采用手工流水线就可以满足上述要求,同时也是实现自动化的基础;更利于自动化的快速发展.当然这种生产方式有许多不足之处.技术含量低,需要大批量人员进行生产,阻碍产品的技术提高和市场竞争力. 一.手工装配流水线的基本结构;要点;概念. 手工装配流水线就是自动化输送装置基础上由一系列工人按一次序组成的工作站系统;每个工人作为一个工作站后工位完成产品制造装配过程中的不同工序,当产品经过全部工人的装配操作后即完成全部装配操作,并最终成为产品;如果生产线只完成部分工序的装配检测为半成品.产品的输送系统有许多形式如皮带输送线;滚筒输送线;悬挂链输送线等.输送的方式可以是连续的也可以是间歇式的;工作的操作方式也多样.通常有如下几种方式: (1)直接在输送线上的产品上进行装配,产品随输送线一起运动,工人也随之运动;操作完成后再返回原位置; (2)将产品从输送线上取下,在输送线旁边的工作台上完成装配后再将产品送回输送线上; (3)工件通过工装板在输送线上输送,工装板到达装配位置后停下来重新定位装配,装配完成后将工装板及工件随输送线运动;工人的工作既可以坐着进行例如一些零件较小的装配;也可以站立进行例如在生产大型产品(如轿车.空调等)采用悬挂链输送线输送,工人可以在工位的区域内活动;边随输送线上的产品同时移动位置直到完成装配为止.根据工序所需要的时间长短有区别,每个工位的操作工序既可以是工序时间较长的的单个工序也可以是工序时间较短的多个工序;每个工位的排序可根据生产

计算机系统结构 指令流水线相关性实验报告

指令流水线相关性 实验报告 计算机02班 2012年5月13日

一.实验目的 通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。 二.实验设备环境 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。 三.实验原理 指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。 数据相关:由于流水线中各条指令的重叠操作使得原来对操作数的访问顺序发生了变化而导致了数据相关的冲突。 控制相关:由条件转移指令引起的相关。 结构相关:多条指令进入流水线后在同一机器周期内争用同一

功能部件所发生的冲突。 四.实验步骤 程序中出现的数据相关: (1)截图及分析: lbu r3,0x0(r2)需要在执行IntEX周期之后才能将r3值传送给seqi指令,而后续指令seqi r5,r3,0x0a在ID周期读取r3寄存器的值,故seqi r5,r3,0x0a与lbu r3,0x0(r2)发生了读写相关。 所以为了避免冲突,将seqi r5,r3,0x0a指令的intEx延迟一个周期执行。 ( 2 )相关指令组合: lbu r3,0x0(r2)

seqi r5,r3,0x0a 程序中出现的结构相关: (1)截图及分析: addi r2,r2,0x1该指令与它的上一条指令add r1,r1,r3发生了结构相关。由于add r1,r1,r3与其上一条指令multu r1,r1,r4发生了数据相关,在ID段需要暂停4个周期。因此add r1,r1,r3不能进入intEX段,所以addi r2,r2,0x1就不能进入ID段。指令译码器发生争用情况,因此addi r2,r2,0x1与add r1,r1,r3发生了结构相关。addi r2,r2,0x1的information窗口信息如下图所示:

自动化机械加工生产线结构组成形式

自动化机械加工生产线结构组成形式 根据制造行业及工艺上的区别,自动化生产线具有很多类型,例如自动化机械加工生产线、自动化装配生产线、自动化喷涂生产线、自动化焊接生产线、自动化电镀生产线等。其中最典型的是以下两种:一种为自动化机械加工生产线,用于机械零件加工行业;另一种为自动化装配生产线,用于各种产品的后期装配生产。 自动化机械加工生产线主要从事零件的铣削、钻孔及其他类似的回转切削加工工序,主要应用与以下零件加工场合: ·零件大批量生产 ·零件设计成熟 ·长期生产 ·需要多种加工工序 在上述场合,才有用自动化机械加工生产线就可以显示出它的巨大优越性。例如:很低的人工成本、很低的制造成本、零件制造周期短、占用场地最少等。 在自动化机械加工生产线中,根据生产线结构形式的区别可以分为以下两种类型: ·未设置内部零件存储缓存区的自动化机械加工生产线 ·设置内部零件存储缓存区的自动化机械加工生产线 上述两类自动化机械加工生产线的节拍原理存在较大的区别,本文主要介绍未设置内部零件存储缓冲区的自动化机械加工生产线结构组成及节拍原理。 (1)结构组成 这种自动化机械加工生产线的基本结构原理如图1所示。 图1 典型的自动化机械加工生产线结构原理示意图 这种自动化机械加工生产线在机械结构上主要有以下三部分组成: ·零件自动输送系统 ·单个的机械加工工作站(如自动机床) ·控制系统 通过输送系统将各台机械加工工作站连接在一起,原始零件(未加工的零件)从生产线的一端进入,在一台工作站上完成加工后再由输送系统输送到相邻的下一台工作站,没一台工作站完成不同的加工工序,经过最后一台工作站后得到完成全部加工工序的零件。 在生产线上可能还有部分检测工作站,用于对工件加工过程中的加工质量进行自动检测。此外还可能有部分人工操作的工作站,用于代替技术上极难实现自动化加工活在成本上不经济的自动化加工工序。 由于零件的机械加工通常都要求较高的加工精度,对零件的定位精度自然要求较高,因此零件的自动输送采用一种专用的夹具——随行夹具来输送。随行夹具不仅可以对待加工的零件进行准确的定位,还可

自动生产线的结构与组成

自动生产线的结构与组成 自动生产线通常都是由以下基本的结构模块根据需要搭配组合而成的: ●工件的自动输送及自动上下料机构 ●辅助机构(定位、夹紧、分隔、换向等) ●执行机构(各种装配、加工、检测等执行机构) ●驱动及传动系统 ●传感器与控制系统 1. 工件的输送及自动上下料系统 工件或产品的移送处理是自动化装配的第一个环节,包括自动输送、自动上料、自动卸料动作,替代人工装配场合的搬运及人工上下料动作,该部分是自动化专机或生产线不可缺少的基本部分,也是自动机械设计的基本内容。其中自动输送通常应用在生产线上,实现各专机之间物料的自动传送。 ①输送系统 输送系统包括小型的输送装置及大型的输送线,其中小型的输送装置一般用了自动化专机,大型的输送线则用于自动化生产线,在人工装配流水线上也大量应用了各种输送系统。没有输送线,自动化生产线也就无法实现。 根据结构类型的区别,最基本的输送线有:皮带输送线、链条输送线、滚筒输送线等;根据输送线运行方式的区别,输送线可以按连续输送、断续输送、定速输送、变速输送等不同的方式运行。

②自动上下料系统 自动上下料系统是指自动化专机在工序操作前与工序操作后专门用于自动上料、自动卸料的机构。在自动化专机上,要完成整个工序动作,首先必须将工件移送到操作位置或定位夹具上,待工序操作完成后,还需要将完成工序操作后的工件或产品卸下来,准备进行下一个工作循环。 自动机械中最典型的上料机构主要有: ●机械手 ●利用工件自重的上料装置(如料仓送料装置、料斗式送料装置) ●振盘 ●步进送料装置 ●输送线(如皮带输送线、链条输送线、滚筒输送线等) 卸料机构通常比上料机构更简单,最常用的卸料机构或方法主要有: ●机械手 ●气动推料机构 ●压缩空气喷嘴 气动推料机构就是采用气缸将完成工序操作后的工件推出定位夹具,使工件在重力的作用下直接落人或通过倾斜的滑槽自动滑入下方的物料框内。对于质量特别小的工件,经常采用压缩空气喷嘴直接将工件吹落掉人下方的物料框内。 2. 辅助机构 在各种自动化加工、装配、检测、包装等工序的操作过程中,除自动上下料机构外,还经常需要以下机构或装置: ①定位夹具 工件必须位于确定的位置,这样对工件的工序操作才能实现需要的精度,因此需要专用的定位夹具。 ②夹紧机构 在加工或装配过程中工件会受到各种操作附加力的作用,为了使工件的状态保持固定,需要对工件进行可靠的夹紧,因此需要各种自动夹紧机构。 ③换向机构 工件必须处于确定的姿态方向,该姿态方向经常需要在自动化生产线上的不

流水线的相关问题

流水线只有连续不断地流动,不出现断流,才能获得高效率。如果处理不当,使流水线产生“断流”,就会使流水效率显著下降。流水过程中因为相关问题而产生冲突,是导致流水线断流的主要原因。一般来讲,流水线的相关主要分为以下三种类型。 1. 结构相关 结构相关是指当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,两条或两条以上指令争用同一资源而引起的冲突,因此,结构相关又称为资源相关。 例如,假设一条指令流水线由5段组成,分别为取指令(IF)、指令译码(ID)、取操作数(MEM)、执行运算(EX)和写寄存器(WR)。该流水线的时空图如图8-12所示。 图8-12 5段指令流水线 从图中可以看出,指令I2的取操作数和指令I4的取指令都需要访问存储器。若机器中只有一个单端口存储模块,那么I2的取操作数和指令I4的取指令就产生了访存冲突,两个操作无法同时进行,这就是一种典型的资源冲突。 一种解决这种冲突的方法是在机器中增加存储器模块,如使用双端口存储器,使指令和数据分别存放在不同的存储器模块中,这样,取指令和取操作数就不会发生冲突。另一种方法是,当发生取指令或取操作数冲突时,将其中一个操作的执行时间推迟,如图8-13所示。当然,这样的话也就是发生了流水线的断流,流水线的吞吐率就下降了。 图8-13 访存相关引起流水线断流 2. 数据相关 当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就有可能产生数据相关。 在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。例如,某一时间以下3条指令在图8-12的流水线中执行。 ADD R1, R2, R3 ;(R2)+(R3)→R1

辊筒流水线介绍及其结构

辊筒流水线介绍及其结构 产品简介: 滚筒流水线是依靠转动着的辊子和物品间的摩擦使物品向前移动。按其驱动形式可分为无动力滚筒流水线、动力滚筒流水线。在动力滚筒流水线中,驱动辊子的方法目前一般不在采用单独驱动的方式,而是多采用成组驱动,常用电机与减速器组合,再通过链传动、带传动来驱动辊子旋转。按其驱动形式又分为链传动(单链、双链),带传动(平带、V形带和O形带)这两种形式。滚筒流水线主要由辊子、机架、支架、驱动部份等组成,具有输送重量大、速度快、运转轻快、能实现多品种共线分流的输送的特点。 1、滚筒输送线辊子直径:25mm~200mm; 2、滚筒输送线辊子长度:20mm~3000mm; 3、滚筒输送线锥形辊子锥度:1:16~1:30; 4、滚筒输送线回转机中心最小回转半径:900 mm; 5、滚筒输送线单驱动最大长度:20 m; 6、滚筒输送线输送速度:0.4 mm~30 m/min; 7、输滚筒输送线送物品最大重量:100Kg/m; 8、可根据客户要求定做该类产品。 特点: 滚筒线之间易于衔接过滤,可用多条滚筒线及其它输送设备或专机组成复杂的物流输送系统,完成多方面的工艺需要。可采用积放滚筒实现物料的堆积输送。滚筒输送机结构简单,可靠性高,使用维护方便。 结构形式有:

按驱动方式可分为滚筒线和无动力滚筒线,按布置形式可分为水平输送滚筒线、倾斜输送滚筒线和转弯滚筒线。还可按客户要求特殊设计,以满足各类客户的要求。 标准规格: 滚筒线内宽度为200、300、400、500、600、700、800、1000、1200mm等。也可按客户需求采用其它特殊规格。转弯滚筒线标准转弯内半径为R600、R900、R 1200mm等,也可按客户需求采用其它特殊规格。直段滚筒所用的滚筒直径有38、50、?60、76、89mm等。 技术参数:

流水线处理机及其设计精讲

-流水线处理机及其设计精讲

————————————————————————————————作者: ————————————————————————————————日期:

6.3.3 流水线各级信号的产生 至此,我们已经描述过了所有3种指令类型的流水线操作。下面我们来总结控制信号的产生方法。控制信号分布在流水线处理机的各级,我们当然可以在它们要被使用的流水线级产生,例如SIMM可在EXE级产生。但这样,除了译码将会造成本级一些延迟之外,还要使用流水线寄存器来传递必要的信息,例如指令操作码等。我们采用的方法是,控制信号集中在ID级由译码电路产生,并使用流水线寄存器把每一个控制信号传递到它被使用的流水线级。我们把所有的控制信号归纳在表6.4中。表6.5列出了除了ALUOP的各控制信号的产生表达式。表6.6列出了ALUOP控制信号的产生表达式。 由以上表达式,我们可以有如图6.29所示的控制电路。图中使用了流水线寄存器来把控制信号传递到合适的流水线级。我们可以看出,流水线控制部件的设计方法与非流水线单周期处理机的控制部件的设计方法非常类似,而有限状态机和微程序的设计方法显得不太适合。 表6.4 流水线各级控制信号的定义 流水线级控制信号注释 IF级BTAKEN转移发生 ID级SST 选择store(rd) EXE级 SIMM选择立即数ALUOP ALU操作码WZ 写Z标志 MEM级WMEM 写存储器 WB级 SLD 选择load WREG 写寄存顺堆表6.5控制信号的产生表达式 BTAKEN=branch+bne Z+beqZ SST=store SIMM=andi+ori+addi+subi+load+store WZ=andi+ori+addi+subi+and+or+add+sub WMEM=store SLD=load WREG=andi+ori+addi+subi+and+or+add+sub+load 表6.6 ALU控制信号的产生表达式 指令ALUOP1 ALUO P0 操作指令ALUOP1 ALUO P0 操作 and 0 0 与andi0 0 与or0 1 或ori 0 1 或add 1 0加addi 1 0 加

DLX流水线技术数据相关与结构相关

3.3.2流水线的数据相关 1. 数据相关简介 当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使得读/写操作顺序不同于它们非流水实现的顺序,这将导致数据相关。首先让我们考虑下列指令在流水线中的执行情况:ADD R1,R2,R3 SUB R4,R5,R1 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11 ADD指令后的所有指令都要用到ADD指令的计算结果,如图3.3.4所示,ADD 指令在WB 段才将计算结果写入寄存器R1 中,但是SUB 指令在其ID 段就要从寄存器R1 中读取该计算结果,这种情况就叫做数据相关。除非有措施防止这一情况出现,否则SUB 指令读到的是错误的值。所以,为了保证上述指令序列的正确执行,流水线只好暂停ADD 指令之后的所有指令,直到ADD 指令将计算结果写入寄存器R1 之后,再启动ADD 指令之后的指令继续执行。

从图3.3.4还可以看到,AND 指令同样也将受到这种相关关系的影响。ADD 指令只有到第五个时钟周期末尾才能结束对寄存器R1 的写操作,所以AND 指令在第四个时钟周期从寄存器R1 中读出的值也是错误的。而XOR 指令则可以正常操作,因为它是在第六个时钟周期读寄存器R1 的内容。 另外,利用DLX流水线的一种简单技术,可以使流水线顺利执行OR 指令。这种技术就是:在DLX 流水线中,约定在时钟周期的后半部分进行寄存器文件的读操作,而在时钟周期的前半部分进行寄存器文件的写操作。在本章的图中,我们将寄存器文件的边框适当地画成虚线来表示这种技术。 2. 通过定向技术减少数据相关带来的暂停 图3.3.4中的数据相关问题可以采用一种称为定向(也称为旁路或短路)的简单技术来解决(动画演示)。定向技术的主要思想是:在某条指令(如图3.3.4中的ADD 指令)产生一个计算结果之前,其它指令(如图3.3.4中的SUB 和AND 指令)并不真正需要该计算结果,如果能够将该计算结果从其产生的地方(寄存器文件EX/MEM)直接送到其它指令需要它的地方(ALU 的输入寄存器),那么就可以避免暂停。基于这种考虑,定向技术的要点可以归纳为: (1) 寄存器文件EX/MEM 中的ALU 的运算结果总是回送到ALU 的输入寄存器。

流水线课程设计

目录 1.序言……………………………………………………………………………… 2.现有机电系统分析……………………………………………………………… 2.1 现有机电系统全面介绍…………………………………………………… 3.改进方案…………………………………………………………………………3.1 M06装配单元现有问题分析…………………………………………………… 3.2M06装配单元改进方案分析…………………………………………………… 4.机械系统设计……………………………………………………………………… 4.1传动系统的设计………………………………………………………… 4.2 通用零部件的选择…………………………………………………………… 4.3 关键零部件有限元分析…………………………………………………5.控制系统设计……………………………………………………………………… 5.1控制系统方案……………………………………………………………… 5.2 控制系统元器件的确定……………………………………………………… 5.3控制系统设计………………………………………………………………6.机电系统动画展示………………………………………………………………… 7.总结…………………………………………………………………………………参考资料………………………………………………………………………………

1.序言 机电系统实践课程是学习以电子技术特别是微电子技术为主导、多重新兴技术与机械技术交叉、融合而形成的综合性高技术,通过实现机电一体化不断提高劳动生产率,减轻人们的体力劳动,逐步代替部分脑力劳动。通过这种技术生产出来的是种类繁多的机电一体化产品,这些产品被广泛地应用到国民经济、科技活动、国防建设和人民生活等各个领域。 这次课程设计是学生完成本专业教学计划的一个极为重要的实践性教学环节,是使学生综合运用所学过的基本理论、基本知识与基本技能去解决专业范围内的工程技术问题而进行的一次基本训练。这对学生即将从事的相关技术工作和未来事业的开拓都具有一定意义。 本次设计的是M06装配单元模块,系统在生产线中对工件进行外套装配的过程。整个系统采用PLC进行控制。在装配单元中,料仓式供料机构连续不断的输出外壳工件,气缸将外壳工件传递到装配平台上,M07机械手模块搬运工件至外壳工件上方,使两工件进行装配,过程中利用气缸,传感器,磁性开关等达到装配的目的。 2.现有机电系统分析 2.1 M06装配单元结构 实现M06工序的装置由三个模块(仓料式供料机构、外壳工件输送机构、装配工艺装置)组成,有料仓式供料结构、外罩引导结构、滑块、光电漫反射传感器、光纤漫反射传感器、回转气缸、迷你气缸、双杆气缸等结构 2.2 M06装配单元功能 该站点对工件进行外壳装配,料仓式供料机构连续不断的输出外壳工件,迷你气缸将外壳工件传递到装配平台上,装配工艺装置配合M07机械手模块实现对两工件进行装配。 2.3 现有机电系统全面介绍 1.M01 供料及检测 功能:该站点能根据调度程序,自动供应检不同材质、颜色、尺寸的原料。并检测记录相关信息。构成:离心供料机将成堆原料有序排出,由弧形滑道传递到检测工位点进行检测,由升降机构提升工件到接口工位。

一种CPU中八级流水线结构设计

一种CPU中八级流水线结构设计 随着DSP(数字信号处理)芯片在电子技术领域广泛应用,它处理任务的数量和速度因此越发受到重视。流水线是CPU(中央处理单元)处理指令的重要方式,但传统流水线已无法满足高科技领域内的CPU日益增长的需求。 而扩展CPU流水线级数能容纳更多指令,使CPU处理指令的速度更快,故扩展CPU流水线势在必行,并极具应用价值。本人设计了一款32位浮点型DSP芯片中的八级流水线结构。 该芯片应用于工业控制领域,基于哈佛总线结构,内部具有8条总线,程序空间和数据空间相互独立,拥有丰富的精简指令集系统,支持多种寻址模式,内核含有32位的算术逻辑单元和32位乘法器单元等。配置了多种多样的外设模块,包括多通道缓存串行接口、增强型正交编码器、增强型脉宽调制器、增强型脉冲补获器和高速同步串行接口等。 本设计结合这款芯片的所属特点进行了流水线工作原理和模块等分析。首先分析了四级流水线和五级流水线工作原理,在原有结构基础上完成了八级流水线的整体结构设计,对设计所需要的技术进行了研析。 其次为了方便设计和仿真验证,将八级流水线分解成八个流水级功能模块,分别是取值级F1和F2划分为F模块,译码级D1和D2划分为寄存器堆模块和CU 模块,读取级R1和R2划分为R模块,执行级E划分为ALU模块,写回级W划分为WB模块。最后搭建DSP系统仿真验证平台,编写测试程序,植入到ROM存储空间,选择微处理器工作模式,引导ROM启动对设计的功能模块采用局部到整体的方式进行仿真验证,验证结果正确。 八级流水线对比五级流水线的CPU,增加了 CPU执行指令的容积和速度。因

此设计的八级流水线结构对CPU中流水线的研究具有极大的意义。

CPU流水线技术中的结构相关和数据相关

2010年第7期福建电脑 CPU流水线技术中的结构相关和数据相关 孙启良 (济南大学理学院山东济南250022) 摘要:CPU流水线技术是计算机CPU设计中普遍采用的一种并行处理技术。它可以提高指令的运行效率,但是其流水线相关问题是流水线执行过程中的主要障碍,会给流水线中指令序列的顺利执行带来许多不利的影响。流水线中的相关主要是结构相关和数据相关,本文重点介绍了他们的解决方法。其中数据相关较普遍,旁路技术是主要的解决方法。 关键词:流水线技术时钟周期旁路技术编译器 1、引言 计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。流水线技术是一种非常经济、对提高计算机的运算速度非常有效的技术。采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,成为计算机中普遍使用的一种并行处理技术。 计算机各个部分几乎都可以采用流水线技术,运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线。多个计算机之间,通过存储器连接,也可以采用流水线,称为宏流水线[1]。如果指令的执行过程可以采用流水线,那么称为指令流水线[1]。 如图只用T0-T8八个时钟周期就完成了I1-I5五条指令的运行。 在指令流水线中经常有一些被称为"相关"的情况发生,它使得指令序列中下一条指令无法按照设计的时钟周期执行,这些"相关"可能会降低流水线可以获得的理想性能。 流水线中的相关可以分为以下三种类型: 第一种是结构相关,是指令在重叠执行的过程中,硬件资源满足不了指令重叠执行的要求,发生硬件资源冲突而产生的相关。 第二种是数据相关,是指在同时重叠执行的几条指令中,一条指令依赖于前面指令执行结果数据,但是又得不到时发生的相关。 第三种是控制相关,它是指流水线中的分支指令或者其他需要改写PC的指令造成的相关。 流水线相关问题是流水线执行过程中的主要障碍,会给流水线中指令序列的顺利执行带来许多不利的影响。如果不能较好的处理流水线相关问题,就可能影响流水线的性能,甚至使程序运行产生错误的结果。 2、结构相关 如果因资源冲突而无法使用某种指令组合,那么就称该流水线产生了结构相关。例如:指令和数据都共享一个存储器,在某个时钟周期内,流水线既要完成某条指令对数据的存储器访问操作,又要完成后续的另一条指令的取指令操作,这样就会发生存储器访问冲突问题,产生结构相关[2]。 消除结构相关的最简单方法就是引入暂停周期,如下图所示,这必然要降低流水线的性能 结构相关的起因是资源争用,那么可以考虑采用资源充分重复设置的方法来避免结构相关。这是解决结构相关的基本方法。特殊的,对存储器争用冲突,有如下解决方法: (1)如果指令和数据放在同一个存储器,可使用双端口存储器,其中一个端口存取数据,另一个端口取指令。 (2)设置两个存储器,其中一个作为数据存储器,另一个作为指令存储器。 上述两种方案中,取指令和访问数据可以并行进行,不会发生结构相关。 3、数据相关 流水线技术可以通过指令的重叠执行来改变指令的相对执行时间,这就可能导致流水线中的指令序列读写操作数的顺序发生改变,而不同于非流水线时的指令序列读写操作数的顺序[3]。示例如下 : 49

流水线结构RS(255,223)译码器的VLSI设计

第!"卷第#期 $%%%年#月计算机研究与发展&’()*+,’-.’/0(12))232+).456272,’0/2*1789:!";*8:#&<=>$%%%原稿收到日期?#@@@A %!A %$B 修改稿收到日期?#@@@A %"A $$>王进祥;男;#@C D 年E 月生;硕士;主要研究方向为F .设计G 630设计G 26+工具开发和差错控制技术研究>张乃通;男;#@!H 年生; 教授;博士生导师;主要研究方向为通信系统设计G 卫星通信技术和移动通信技术研究>来逢昌;男;#@C $年生;副教授;主要研究方向为F .设计技术方法G 26+工具研究等> 叶以正;女;#@!"年生;教授;博士生导师;主要研究方向为集成电路设计方法G 逻辑综合技术G 26+工具研究等>流水线结构I J K L M M ;L L N O 译码器的P Q J R 设计王进祥 张乃通S 来逢昌叶以正K 哈尔滨工业大学微电子中心哈尔滨#E %%%#O S K 哈尔滨工业大学通信研究所哈尔滨#E %%%#O 摘要 )3码已经广泛应用于通信系统G 计算机系统G 存储介质G 网络和数字电视中;以提高数据的可靠性B )3 K $E E ;$$!O 码是美国航空航天局K *+3+O 和欧洲空间站K 23+O 在深空卫星通信系统中所采用的标准外码>文中用18T A U 8V =设计方法完成了采用频域译码算法的)3K $E E ;$$!O 译码器的7,3F 设计;提出了一个W - K $E C O 上串行计算的流水线结构的$E E 点F --1;该结构的F --1与译码器的其它模块可形成完美的流水线; 减少了面积;提高了通过率>设计的规模约$%万门;总的时延为"D %个时钟周期;工作频率为$%/4X 时;译码器的通过为#C %/Y T Z >关键词)3译码器; --1;746,;7,3F ;生成多项式;流水处理中图法分类号 10!%$>$[P Q J R \]J R ^_‘ab R b ]Q R _]I J K L M M ;L L N O \]c ‘\]I d+*W &e =A f e <=g ;h 4+*W *+7,3FU i Z e g =83T e T i 9e =i)3K $E E ;$$!O U i +8U i 0e =30i 4-i =+,U 8.1j e Z U i Z e g = e Z .8U i 9i Ue =746,B /j i 2i 0e 3e i Ug 1j i +8.T 9i 5e /,83)3K $E E ;$$!O U i +8U i 0e Z .8.T <0e =gV e /j Z e .e 9<0U i Z e g =Z ;/j e Z U i Z e g =j 6789:(;&)3U i +8U i 0;--1;746,;7,3F ;g i =i 0但是;随着码长的增加;)3译码器的复杂性剧增;所以)3码被发现之初并没有得到足够的重视> 随着微电子技术的高速发展;单片集成中等长度码长的)3译码器已成为可能;有不少文献报导)3译码器的7,3F > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>结构及实万方数据

计算机系统结构第四章(习题解答)

1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一 段的时间分别是△t 、2△t 和3△t 。在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。 ⑴ 顺序执行方式。 ⑵ 仅“取指令”和“执行”重叠。 ⑶ “取指令”、“分析”和“执行”重叠。 答: ⑴ 顺序执行方式 1 2 ...... 1 2 1 2 T =∑=++n 1 i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t ⑵ 仅“取指令”和“执行”重叠 1 2 ...... 1 2 1 2 T =6△t +∑=+1 -n 1 i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t ⑶ “取指令”、“分析”和“执行”重叠 1 2 3 4 ...... 1 2 3 4 1 2 3 4 △t 2△t 3△t △t 2△t 3△t △t 2△t 3△t

T =6△t +∑=1 -n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t 2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为 △t 。开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。求流水线的实际吞吐率、加速比和效率。 答: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足: )n (t 75 t )n /17(5t )1n 7(n 5TP ∞→?=?+=?+= 加速比为: )n (7 20 n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=?+??= 从上面的时空图很容易看出,效率为: )n (7 5 n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=?+???= 3. 用一条5个功能段的浮点加法器流水线计算∑==10 1i i A F 。每个功能段的延迟 时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。 答: 首先需要考虑的是“10个数的和最少需要做几次加法”,我们可以发现,加

第05章流水线课后习题

第5章课后习题 1.填空题 (1) 衡量流水线性能的主要指标有 (2) 指令乱序流动可能造成 (3) 解决数据相关主要有 (4) 超标量处理机开发的是 行性。 (1). 吞吐率、加速比、效率 (2). 先写后读、先读后写、写写 (3). 推后分析、设置专用路径 (4). 空间、时间 2.假设一条指令的执行过程分为"取指令"、"分析"和"执行"三段,每一段的时间分别为△t、2△t和3△t。在下列各种情况下,分别写出连续执行n条指令所需要的时间表达式。 (1) 顺序执行方式。 (2) 仅"取指令"和"执行"重叠。 (3) "取指令"、"分析"和"执行"重叠。 第2题 (1) 顺序执行时每条指令用时=△t+2△t+3△t=6△t, 因此n条指令所需要的时间=6n*△t

(2) 第一条指令完成需要时间=△t+2△t+3△t=6△t,根据题义,下一条指令的"取指令"与上一条指令"执行"的最后一个△t重叠。因此,自从第一条指令完成后,每隔4△t完成一条指令。所以余下的n-1条指令用时(n-1)*4△t. 所以,n条指令所需要的时间=6△t+(n-1)*4△t=2(2n+1)△t。 (3) 第一条指令完成需要时间=△t+2△t+3△t=6△t,由于一条指令的"取指令"和"分析"阶段和下一条指令的"执行"阶段重叠,因此,此后每3△t 完成一条指令,余下的n-1条指令用时(n-1)*3△t. 因此n条指令所需要的时间=6△t+(n-1)*3△t=3(n+1)△t 3.用一条5个功能段的浮点加法器流水线计算F=。每个功能段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。 第3题 假设每个功能段的延迟时间为△t。 F==[(A1+1A2)+6(A3+2A4)+8(A5+3A6)]+9[(A7+4A8)+7(A9+5A10)] 由上面的时空图可以看出,在20△t时间内共完成9个加法操作。因此: 吞吐率为:TP= 9/20=0.45 加速比为:Sp= 9*5/20=2.5 效率为:E= 45/(20*5)=45%

计算机体系结构 指令流水线相关性分析 实验报告

实验二指令流水线相关性分析

实验类别:验证实验 实验目的: 通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC 处理器的特点的理解。 实验学时:4 实验组人数:1/1 实验设备环境: WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。 实验原理: 指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。实验内容和要求:使用WinDLX模拟器,对求阶乘程序Fact.s做分析。 实验步骤: 1、观察程序中出现的数据/控制/结构相关 程序中出现的数据相关

lbu r3,0x0(r2)需要在WB周期才能将值写入r3里,而后续的指令seqi r5,r3,0x0a在intEx周期里读取r3寄存器的值,发生了读写相关。所以为了避免冲突,将seqi r5,r3,0x0a的指令的intEx延迟一个周期执行。 程序中出现的控制相关 movi2fp f10,r1在IF指令周期后为aborted。原因在于:第二条指令jal InputUnsigned 为无条件转移指令,但只有在该指令译码的时候才可以知道转移的位置。但是此时movif2p f10,r1指令已经取出,所以需要将该指令流水清空,由于是刚执行了IF指令,所以只需要重新取新的指令就可以了。 程序中出现的结构相关 由于上条指令add r1,r1,r3的intEx的执行延迟了4个指令周期,所以

实验一:流水线相关

实验一流水线中的相关 实验目的 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台 WinDLX模拟器 实验内容和步骤 ●乘程序fact.s 求最大 (做实验前请先认真阅读WinDLX教程) 2.用WinDLX模拟器执行下列三个程序(任选一个): ●求阶公倍数程序gcm.s ●求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 注意:fact.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。gcm.s也是如此。 3.用WinDLX运行程序structure_d.s,通过模拟: ●找出存在结构相关的指令对以及导致结构相关的部件; ●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百 分比; ●论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 4.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾 选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 5.在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。 重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 预备知识 1. WinDLX WinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,

实验名称 流水线中的相关

实验名称流水线中的相关 1.1 实验目的 1. 加深对计算机流水线基本概念的理解。 2. 理解MIPS结构如何用5段流水线来实现,理解各段的功能以及基本操作 3. 加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响;; 4. 进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。 1.2 实验平台 实验平台采用指令级和流水线操作级模拟器MIPSsim 1.3 实验内容和步骤 首先要掌握MIPSsim模拟器的使用方法。 1.启动MIPSsim 2. 根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容) 3.参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序,然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。 4. 选择“配置”→“流水方式”选项,使模拟器工作在流水方式下。 5. 观察程序在流水线中的执行情况,步骤如下: (1)选择MIPSsim “文件”→“载入程序”选项,加载pipeline.s。 (2)关闭定向功能。这是通过“配置”→“定向”(使该项前面没有√号)来实现的。(3)用单步执行一个周期的方式(在“执行”菜单中)或按F7键执行程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。 (4)当执行到第13个时钟周期时,各段分别正在处理的指令是: IF: LW $4, 60($r6) ID: ADDI $r3, $r0, 25 EX: ADDI $r1, $r1, -1 MEM: ADDI $r6, $r0, 8 WB: ADD $r2, $r1, $r0 画出这时的时钟周期图。如下图所示:

相关文档
最新文档