体系结构复习资料(1-2章)_第1页
体系结构复习资料(1-2章)_第2页
体系结构复习资料(1-2章)_第3页
体系结构复习资料(1-2章)_第4页
体系结构复习资料(1-2章)_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

计算机体系结构复习资料计算机体系结构相关公式1.CPU时间=指令数*每条指令的时钟周期数*时钟周期所占时间2.Amdahl阿姆达尔定律——总加速比=3.晶体产量=晶片成品率*(1+单位面积缺陷*晶片面积/α)-α其中,晶片成品率表示因已经报废而无须测试的晶片数,α表示掩膜层数,通常α=4.0。4.平均存储器访问时间=命中时间+失效率*失效开销计算机体系结构相关公式5.每条指令缺失数=每条指令存储器访问数*缺失率6.cache索引空间:2index=cache容量/(块大小*组关联度)经验规律第一章计算机设计基本原理集成电路功耗(主要是动态功耗)功率计算:能量计算:电容性负载电压开关频率集成电路成本例题:设单位面积残次品密度为0.4/cm2,分别求出边长为1.0cm和1.5cm的晶片的成品率。答:晶片面积分别为1cm2和2.25cm2:面积较大的成品率为:可靠性MTTF平均无故障时间,MTTR平均修复时间Amdahl定律处理器性能公式CPI=CPU时间=CPI*该程序指令数*时钟周期长度CPU时钟周期数=第i条指令的执行时间第i条指令例题假设我们有如下测量值:浮点操作频率为25%,浮点操作指令平均CPI为4.0,其他指令平均CPI为1.33,FPSQR指令的执行频率为2%,FPSQR的平均CPI为20,以下有两种方案,一种是将FPSQRCPI减少至2,另一种是将所有浮点操作的CPI减少至2.5比较两种方案性能。第二章指令级并行及其开发主要内容:流水线指令级并行MIPS五段流水线1. 流水线的性能受限于流水线中指令之间的相关性:结构相关数据相关(写后读RAW,读后写WAR,写后写WAW)控制相关CPI流水线=CPI理想+停顿结构相关+停顿写后读+停顿读后写

+停顿写后写+停顿控制相关本章研究的内容:如何消除这些停顿,使得进入流水线的指令序列运行时能有更好的并行性4.1指令级并行的概念2. 本章所研究的提高指令级并行的技术(1)循环展开: 控制相关停顿(2)基本流水线调度:数据写后读停顿(3)指令动态调度: 各种数据相关停顿(4)分支预测: 控制相关停顿(5)推断: 所有数据/控制相关停顿(6)多指令流出: 提高理想CPI其他技术:如向量计算机(不在本章讨论)研究范围:一个基本程序块,如一个循环体4.1.1 循环展开调度的基本方法提高指令级并行的最基本方法:(1)指令调度

(2)循环展开一般由编译器来完成。指令调度:通过改变指令在程序中的位置,将相关指令

之间的距离加大到不小于指令执行延迟的时

钟数,使相关指令成为实际上的无关指令。操作意义分析: 每次循环一共使用了五个操作三个操作为实际操作(LD,ADDD,SD)

两个操作为循环控制(SUBI,BENZ)事实上,循环控制所需要的指令数一般是恒定的,不会因每次循环所含的操作个数的多少而变化,但它所花费的时间显然与循环次数有关---通过增加每次循环完成的操作来降低循环次数,从而降低循环控制所花费的时间。循环展开:通过多次复制循环体(并改变循环结束条件)来减少循环控制对性能的影响(循环控制指令以及控制相关引起的停顿)。

循环展开+指令调度要注意这几方面问题:(1)正确性(主要是循环控制和操作数偏移量修改)(2)有效性(主要是不同循环次之间的无关性)(3)使用不同的寄存器(避免冲突)(4)尽可能减少循环控制中的测试和分支(5)注意对存储器数据的相关性分析(6)注意新的相关性关键:要分析清指令之间存在怎样的相关性以及在这种相关性下指令应该如何被修改和调度。4.1.2 相关性相关性指的是一条指令的运行如何依赖于另一条指令的运行。研究相关性,不但可作为是否可指令调度的依据,而且可了解程序固有的并行性以及可以获得的并行性。相关意味指令的运行、结果产生的顺序有要求,意味指令的并行运行和改变顺序可能会产生问题,不意味指令的流水线运行一定会产生停顿。

相关类型数据相关(datadependence)

名相关(namedependence)

控制相关(controldependence)1.数据相关对指令i和j,如果

(1)指令j使用指令i产生的结果,或

(2)指令j与指令k数据相关,指令k与指令i数据相关(传递性)分析数据相关的主要工作:(1)确定指令的相关性(2)确定数据的计算顺序(3)确定最大并行性数据相关是程序相关性中最本质的相关性之一。2.名相关两条指令使用相同的寄存器或内存单元(称为名),但它们之间没有数据流。指令j和指令i之间的名相关有以下两种:(1)反相关:指令i先执行,指令j写的名是指令i读

的名(读后写相关)。(2)输出相关:指令i和指令j写的是同一个寄存器或内

存单元(写后写相关)。

LOOP: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 LD F0,-8(R1) ADDD F4,F0,F2 SD -8(R1),F4......名相关不能改变指令顺序,但由于没有数据流,但可以通过改变操作数名来消除名相关,称为重命名(renaming)技术:

LOOP: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 LD F8,-8(R1) ADDD F12,F8,F2 SD -8(R1),F12......3.控制相关分支指令引起的相关,如果一条指令是否执行的情况依赖于一条分支指令,则称它与该分支指令控制相关。例

ifp1{s1};ifp2{s2};=>s1控制相关于p1,s2控制相关于p2s1与p2、s2与p1控制无关。基本处理原则(1)与控制相关的指令不能移到分支指令之前;(2)与控制无关的指令不能移到分支指令之后;减少或消除控制相关的方法是减少或消除分支指令。可能的数据冒险4.3控制相关的动态解决技术上一章解决控制相关:(1)“冻结”或“排空”流水线的方法(2)“预测分支失败”的方法(3)“预测分支成功”的方法(4)“延迟分支”的方法

a)从前调度

b)从目标处调度

c)从失败处调度除了“延迟分支”方法的“从前调度”以外,性能的获得都是以预测成功为前提。如果预测在 编译时进行(或固定)

----控制相关的静态解决技术 执行时进行动态进行

----控制相关的动态解决技术上一章的方法都是静态解决技术。4.3.1减少分支延迟:分支预测缓冲技术基本思想:基于该分支指令的历史记录----根据该分支指令在最近一次或几次的运行情况(分支成功或失败),来预测该分支指令的本次运行情况(分支成功或失败)。实现方法:建立一片缓冲区,记录各运行过的分支指令的运行情况(分支成功或失败)。缓冲区如何寻址----根据分支指令地址的低位,究竟 多少位取决于缓冲区大小。缓冲区的内容----预测位,其长度(多少位)决定能 记录该指令前多少次运行情况。分支指令的执行过程:(1)现场保留。(2)按预测方向取后继指令。(3)得到分支结果后 如果预测成功,继续运行; 如果预测失败,恢复保留的现场,从分支处重新 执行;(4)修改预测位。(1)预测位长度为1预测位内容:记录该指令最近一次分支是否成功,

如“1”表示分支成功,“0”表示分

支失败。预测方法: 如果该指令最近一次分支成功则预测 分支成功,反之则预测分支失败。预测位修改:如果实际运行该指令发现分支成功,则 置预测位为“1”,反之为“0”。(2)预测位长度为n预测位内容:为0到2n-1计数器,每次分支结果 出来后,如分支成功则加1,分支失 则减1,计数器值增加到2n-1后不 再增加,减小到0后不再减小。预测方法: 如果计数器值大于或等于最大值的一 半2n-1,预测分支成功,反之预测分 支失败。N为2时的预测位:实际试验:(1)预测位为2和预测位为n的预测性能差别不大。(2)预测缓冲区大小增加到4096个记录项后预测性能不再明显增加(只用取指令地址的低12位)(3)在预测位为2,预测缓冲区为4096个记录项情况下,预测准确率为82%99%,即预测失败率为

1%18%。起作用的前提:目标地址的计算要快于分支结果计算。1. 基本流水线的数据相关解决方法:采用定向技术(相关隐藏)停顿2. 解决停顿的方法:静态调度方法(编译器)产生于60年代,目前比较流行。动态调度方法(处理器)产生于更早时期,目前在一些RISC机中仍在采用。4.2指令的动态调度3. 动态调度的优点:能处理某些在编译时无法知道的相关情况能简化编译器的设计使代码适合移植4. 动态调度的主要缺点:硬件复杂度大调度的范围比较小4.2.1 动态调度的原理1.基本流水线的最大问题是指令必须顺序流出:例如: DIVD F0,F2,F4 ADDD F10,F0,F8 SUBD F12,F8,F14SUBD指令并不与前面指令数据相关,但仍需等待。2.动态调度的解决方法:

(1)结构相关:设置多个功能部件或功能部件流水化

(2)数据相关:挂起停顿:后续指令全部被停顿挂起:后续指令仍可执行,被流出(如果没有数据相关)或也被挂起(如果有数据相关)处理器中:可以有多条指令同时被执行(多个功能部件)可以有多条指令被挂起(一旦解除数据相关则运行)指令运行乱序乱序带来的问题:异常处理比较复杂,难以确定和恢复现场。3.指令译码阶段分成两个阶段:流出(Issue,IS):指令译码,检查结构相关(停顿)读操作数(ReadOperands,RO):检查数据相关(挂起)4.2.2 动态算法之二:Tomasulo算法1.采用于IBM360/91浮点部件(1967年);2.将记分牌技术和寄存器重命名技术结合起来,更有效地解决写后写、读后写相关;3.寄存器重命名技术使得在不改变指令系统前提下实际寄存器数量得到增加。开发这种技术的原因:IBM360/91一方面需要获得很高的浮点性能,一方面又希望整个360系列只用一个指令系统和编译器只能有四个浮点寄存器,指令和指令之间较易产生读后写、写后写相关通过寄存器重命名技术增加实际的寄存器数量TomasuloOrganizationAdvancedComputerArchitecture5AllresultsfromFPfunc.unitsandloadsarebroadcastedontheCBDThereservationstationsholdinstructionsthatbeenissuedandareawaitingexecutionatafunctionunit保留站一旦浮点运算指令流出,进入保留站保留站记录指令的操作,如果任何一个操作数就绪,则将其值立即取入保留站,使得指令执行时无需再访问相应的寄存器(解决了读后写)保留站中相关指令之间的数据传递直接进行(不通过浮点寄存器),使得保留站中某些指令可以没有目的寄存器(减少了寄存器使用量增加了寄存器数量)如果保留站中有两条指令的目的寄存器相同,则前面指令的目的寄存器会被删除(解决了写后写)基本结构(DLX)三个FP加法保留站可记录三条浮点加减法指令两个FP乘法保留站可记录两条浮点乘除法指令六个取缓冲可记录六条读存储器指令三个存缓冲可记录三条写存储器指令(149页图4.5)浮点运算指令留在保留站的原因是等待操作数的形成(写后读)或等待运算操作的完成访存指令留在存取缓冲的原因是等待访存操作的完成或等待存操作数的形成指令运行过程(1)指令流出(IS):取一条浮点指令,如果有相应的空闲保留站就流出,如果操作数就绪(在寄存器中)就将值送入保留站;如果是访存指令,有空的缓冲则流出。否则等待。 解决了结构相关。

(2)执行(EX):如果操作数未就绪,监视公共数据总线等待结果(某个操作完成后会以广播方式通知所有等待该结果的保留站),当两个操作数都就绪则开始运行。 解决了写后读相关。(3)写结果(WB):结果计算完,写入公共数据总线,广播至所有等待该结果的保留站和目的寄存器(如果存在)。数据结构(1)指令状态表:表示正在执行的各指令处于三步中

的哪一步。(2)寄存器状态表:表示各寄存器分别是哪一个保留站的目的寄存器。(3)保留站:一共有六个域

Busy:该保留站是否空闲

Op:对操作数S1、S2的操作

Vj,Vk:操作数值

Qj,Qk:将产生操作数值的保留站号,为零表示操

作数值已在Vj、Vk中或不需要。 (4)取缓冲:一共有两个域

Busy:该保留站是否空闲

Address:地址值

(5)存缓冲:一共有四个域

Busy:该保留站是否空闲

Address:地址值

Vj:操作数值

Qj:将产生操作数值的保留站号,为

零表示操作数值已在Vj中。TomasuloExampleCycle0InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2Load1NoLDF245+R3Load2NoMULTF0F2F4Load3NoSUBDF8F6F2DIVDF10F0F6ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No0Add3No0Mult1No0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F300FUAdvancedComputerArchitecture8Latency:load1,add2,multiply10anddivide40clockcyclesTomasuloExampleCycle1InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R21Load1Yes34+R2LDF245+R3Load2NoMULTF0F2F4Load3NoSUBDF8F6F2DIVDF10F0F6ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No

Add3No0Mult1No0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F301FULoad1AdvancedComputerArchitecture9TomasuloExampleCycle2InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R21Load1Yes34+R2LDF245+R32Load2Yes45+R3MULTF0F2F4Load3NoSUBDF8F6F2DIVDF10F0F6ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No

Add3No0Mult1No0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F302FULoad2Load1AdvancedComputerArchitecture10Note:Unlike6600,canhavemultipleloadsoutstandingAdvancedComputerArchitecture11TomasuloExampleCycle3InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R213Load1Yes34+R2LDF245+R32Load2Yes45+R3MULTF0F2F43Load3NoSUBDF8F6F2DIVDF10F0F6ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No

Add3NoR(F4)Load20Mult1YesMULTD0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F303FUMult1Load2Load1Note:registernamesareremoved(“renamed”)inReservationStations;MULTissuedvs.scoreboardLoad1completing;whatiswaitingforLoad1?TomasuloExampleCycle4InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R324Load2Yes45+R3MULTF0F2F43Load3NoSUBDF8F6F24DIVDF10F0F6ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQkLoad20Add1YesSUBDM(34+R2)0Add2No

Add3NoR(F4)Load20Mult1YesMULTD0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F304FUMult1Load2M(34+R2)Add1AdvancedComputerArchitecture12•Load2completing;whatiswaitingforit?TomasuloExampleCycle5InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F24DIVDF10F0F65ADDDF6F8F2ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk

2Add1YesSUBDM(34+R2) 0Add2No

Add3No10Mult1YesMULTDM(45+R3) 0Mult2YesDIVDM(45+R3)R(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F305FUMult1M(45+R3)M(34+R2)Add1Mult2AdvancedComputerArchitecture13TomasuloExampleCycle6InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F24DIVDF10F0F65ADDDF6F8F26ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk1Add1YesSUBDM(34+R2)0Add2YesADDD Add3No9Mult1YesMULTDM(45+R3)0Mult2YesDIVDM(45+R3)M(45+R3)Add1R(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F306FUMult1M(45+R3)Add2Add1Mult2AdvancedComputerArchitecture14•IssueADDDherevs.scoreboard?TomasuloExampleCycle7InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F247DIVDF10F0F65ADDDF6F8F26ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1YesSUBDM(34+R2)0Add2YesADDD Add3No8Mult1YesMULTDM(45+R3)0Mult2YesDIVDM(45+R3)M(45+R3)Add1R(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F307FUMult1M(45+R3)Add2Add1Mult2AdvancedComputerArchitecture15•Add1completing;whatiswaitingforit?TomasuloExampleCycle8InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULF0F2F43Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F26ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No2Add2YesADDDM()-M()M(45+R3)0Add3No7Mult1YesMULTM(45+R3)R(F4)0Mult2YesDIVDM(34+R2)Mult1RegisterresultsClockF0F2F4F6F8F10F12...F308FUMult1M(45+R3)Add2M()-M()Mult2AdvancedComputerArchitecture16TomasuloExampleCycle9InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F26ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No1Add2YesADDDM()–M()0Add3No6Mult1YesMULTDM(45+R3)0Mult2YesDIVDM(45+R3)R(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F309FUMult1M(45+R3)Add2M()–M()Mult2AdvancedComputerArchitecture17InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F2610ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2YesADDDM()–M()0Add3No5Mult1YesMULTDM(45+R3)0Mult2YesDIVDM(45+R3)R(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F3010FUMult1M(45+R3)Add2M()–M()Mult2TomasuloExampleCycle10AdvancedComputerArchitecture18•Add2completing;whatiswaitingforit?TomasuloExampleCycle11AdvancedComputerArchitecture19•WriteresultofADDDherevs.scoreboard?TomasuloExampleCycle12InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F2467DIVDF10F0F65ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No0Add3No3Mult1YesMULTDM(45+R3)0Mult2YesDIVDR(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F3012FUMult1M(45+R3)(M-M)+M()M()–M()Mult2AdvancedComputerArchitecture20•Note:allquickinstructionscompletealreadyTomasuloExampleCycle13InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No Add3No2Mult1YesMULTDM(45+R3)0Mult2YesDIVDR(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F3013FUMult1M(45+R3)(M–M)+M()M()–M()Mult2AdvancedComputerArchitecture21TomasuloExampleCycle14InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F43Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No0Add3No1Mult1YesMULTDM(45+R3)0Mult2YesDIVDR(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F3014FUMult1M(45+R3)(M–M)+M()M()–M()Mult2AdvancedComputerArchitecture22TomasuloExampleCycle15InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F4315Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No Add3No0Mult1YesMULTDM(45+R3)0Mult2YesDIVDR(F4)M(34+R2)Mult1RegisterresultstatusClockF0F2F4F6F8F10F12...F3015FUMult1M(45+R3)(M–M)+M()M()–M()Mult2AdvancedComputerArchitecture23•Mult1completing;whatiswaitingforit?TomasuloExampleCycle16InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F431516Load3NoSUBDF8F6F2478DIVDF10F0F65ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No Add3No0Mult1No40Mult2YesDIVDM*F4M(34+R2)RegisterresultstatusClockF0F2F4F6F8F10F12...F3016FUM*F4M(45+R3)(M–M)+M()M()–M()Mult2AdvancedComputerArchitecture24•Note:JustwaitingfordivideTomasuloExampleCycle55AdvancedComputerArchitecture25TomasuloExampleCycle56InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F431516Load3NoSUBDF8F6F2478DIVDF10F0F6556ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No Add3No0Mult1No0Mult2YesDIVDM*F4M(34+R2)RegisterresultstatusClockF0F2F4F6F8F10F12...F3056FUM*F4M(45+R3)(M–M)+M()M()–M()Mult2AdvancedComputerArchitecture26•Mult2completing;whatiswaitingforit?TomasuloExampleCycle57InstructionstatusExecutionWriteInstructionjkIssuecompleteResultBusyAddressLDF634+R2134Load1NoLDF245+R3245Load2NoMULTF0F2F431516Load3NoSUBDF8F6F2478DIVDF10F0F655657ADDDF6F8F261011ReservationStationsS1S2RSforjRSforkTimeNameBusyOpVjVkQjQk0Add1No0Add2No Add3No0Mult1No0Mult2NoRegisterresultstatusClockF0F2F4F6F8F10F12...F3057FUM*F4M(45+R3)(M–M)+M()M()–M()M*F4/M•Again,in-orderissue,out-of-orderexecution,completionAdvancedComputerArchitecture27ComparetoScoreboardCycle62InstructionstatusReadExecutiWriteInstructionjkIssueoperandcompletResultLDF634+R21234LDF245+R35678MULTF0F2F4691920SUBDF8F6F2791112DIVDF10F0F68216162ADDDF6F8F213141622FunctionalunitstatusdestS1S2FUforjFUforkFj?Fk?TimeNameBusyOpFiFjFkQjQkRjRk

Integer Mult1 Mult2 Add0DivideNoNoNoNoNoRegisterresultstatusClockF0F2F4F6F8F10F12...F3062FUAdvancedComputerArchitecture28•WhytakeslongeronScoreboard/6600?TomasuloLoopExampleLoop:LDF00R1F2R1#8MULTDSDSUBIBNEZF4F4R1R1F00R1Loop

AssumeMultiplytakes4clocks Assumefirstloadtakes8clocks(cachemiss?),secondloadtakes4clocks(hit) Tobeclear,willshowclocksforSUBI,BNEZ Reality,integerinstructionsaheadAdvancedComputerArchitecture30LoopExampleCycle0InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R11Load1NoMULTF4F0F21Load2NoSDF40R11Load3NoQiLDF00R12Store1NoMULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R10Mult1No0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30080QiAdvancedComputerArchitecture31LoopExampleCycle1InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F21Load2NoSDF40R11Load3NoQiLDF00R12Store1NoMULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R10Mult1No0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30180QiLoad1AdvancedComputerArchitecture32LoopExampleCycle2InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2NoSDF40R11Load3NoQiLDF00R12Store1NoMULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R1R(F2)Load10Mult1YesMULTD0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30280QiLoad1Mult1AdvancedComputerArchitecture33LoopExampleCycle3InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2NoSDF40R113Load3NoQiLDF00R12Store1Yes80Mult1MULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R1R(F2)Load10Mult1YesMULTD0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30380QiLoad1Mult1AdvancedComputerArchitecture34•Note:MULT1hasnoregistersnamesinRSLoopExampleCycle4InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2NoSDF40R113Load3NoQiLDF00R12Store1Yes80Mult1MULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R1R(F2)Load10Mult1YesMULTD0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30472QiLoad1Mult1AdvancedComputerArchitecture35LoopExampleCycle5InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2NoSDF40R113Load3NoQiLDF00R12Store1Yes80Mult1MULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R1R(F2)Load10Mult1YesMULTD0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30572QiLoad1Mult1AdvancedComputerArchitecture36LoopExampleCycle6InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2Yes72SDF40R113Load3NoQiLDF00R126Store1Yes80Mult1MULTF4F0F22Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R1R(F2)Load10Mult1YesMULTD0Mult2NoSUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30672QiLoad2Mult1AdvancedComputerArchitecture37•Note:F0neverseesLoad1resultLoopExampleCycle7InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2Yes72SDF40R113Load3NoQiLDF00R126Store1Yes80Mult1MULTF4F0F227Store2NoSDF40R12Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R10Mult1YesMULTD0Mult2YesMULTDR(F2)R(F2)Load1Load2SUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30772QiLoad2Mult2AdvancedComputerArchitecture38•Note:MULT2hasnoregistersnamesinRSLoopExampleCycle8InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111Load1Yes80MULTF4F0F212Load2Yes72SDF40R113Load3NoQiLDF00R126Store1Yes80Mult1MULTF4F0F227Store2Yes72Mult2SDF40R128Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R10Mult1YesMULTD0Mult2YesMULTDR(F2)R(F2)Load1Load2SUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30872QiLoad2Mult2AdvancedComputerArchitecture39LoopExampleCycle9InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R1119Load1Yes80MULTF4F0F212Load2Yes72SDF40R113Load3NoQiLDF00R126Store1Yes80Mult1MULTF4F0F227Store2Yes72Mult2SDF40R128Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R10Mult1YesMULTD0Mult2YesMULTDR(F2)R(F2)Load1Load2SUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F30964QiLoad2Mult2AdvancedComputerArchitecture40•Load1completing;whatiswaitingforit?LoopExampleCycle10InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111910Load1NoMULTF4F0F212Load2Yes72SDF40R113Load3NoQiLDF00R12610Store1Yes80Mult1MULTF4F0F227Store2Yes72Mult2SDF40R128Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R14Mult1YesMULTDM(80)R(F2)SUBIR1R1#80Mult2YesMULTDR(F2)Load2BNEZR1LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F301064QiLoad2Mult2AdvancedComputerArchitecture41•Load2completing;whatiswaitingforit?LoopExampleCycle11AdvancedComputerArchitecture42LoopExampleCycle12InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111910Load1NoMULTF4F0F212Load2NoSDF40R113Load3Yes64QiLDF00R1261011Store1Yes80Mult1MULTF4F0F227Store2Yes72Mult2SDF40R128Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMULTF4F0F20Add3NoSDF40R12Mult1YesMULTD3Mult2YesMULTDM(80)R(F2)M(72)R(F2)SUBIR1BNEZR1R1#8LoopRegisterresultstatusClockR1F0F2F4F6F8F10F12...F301264QiLoad3Mult2AdvancedComputerArchitecture43LoopExampleCycle13InstructionstatusExecutionWriteInstructionjkiterationIssuecompleteResultBusyAddressLDF00R111910Load1NoMULTF4F0F212Load2NoSDF40R113Load3Yes64QiLDF00R1261011Store1Yes80Mult1MULTF4F0F227Store2Yes72Mult2SDF40R128Store3NoReservationStationsS1S2RSforjRSforkVjVkQjQkTimeNameBusyOp

0Add1 NoCode:LDF00R10Add2NoMUL

温馨提示

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

评论

0/150

提交评论