华东理工Tomasulo算法实验:深入理解与操作详解

1星 需积分: 3 31 下载量 85 浏览量 更新于2024-08-04 7 收藏 1.09MB DOCX 举报
华东理工大学计算机体系结构实验二专注于Tomasulo算法的学习和实践,旨在通过深入理解指令级并行性和Tomasulo算法的工作原理,增强学生在设计和实现高性能处理器中的技能。实验分为三个主要部分,分别涉及指令流管理、浮点处理部件和保留站的结构。 首先,实验的主要目标包括: 1. 深入掌握指令级并行性的概念,了解如何在Tomasulo算法中利用并行计算来提高处理器性能。 2. 熟悉Tomasulo算法的具体步骤,包括指令的流入、执行和写回过程,尤其是对浮点指令和Load/Store指令的特殊处理。 3. 学习并理解浮点处理部件的结构,包括其内部操作的时钟周期延迟模型。 4. 掌握保留站的设计,这是Tomasulo算法的核心部分,用于暂存待操作的指令和数据,以便在不同阶段进行计算。 5. 实践能力的提升,即根据给定的代码片段,分析并预测每个时钟周期内保留站、指令状态表以及浮点寄存器状态表的状态变化。 实验平台是基于Tomasulo算法的模拟器,让学生能够在虚拟环境中操作和观察算法的实际运行效果。 实验内容具体涉及到以下操作: 1. 对于一个包含浮点操作的代码段,例如加减乘除和Load/Store操作,要求学生在指令MUL.D即将写回时,准确描述保留站、Load缓冲器以及寄存器状态表中的内容。这需要对算法的执行顺序有清晰的理解,因为Tomasulo算法会在适当的时候分配运算资源,并确保数据的一致性。 2. 通过模拟器的步进执行模式,逐个时钟周期地跟踪指令的执行过程,观察指令状态表和寄存器状态表的变化,从而理解每个操作如何影响系统状态,以及如何通过保留站管理来实现指令的流水线处理。 在整个实验过程中,学生不仅要学习理论知识,还要具备将理论应用到实际问题解决的能力,这对于理解和优化现代计算机体系结构至关重要。通过这个实验,学生将深化对计算机体系结构的实践认识,为未来在相关领域工作打下坚实基础。
2023-03-10 上传
Tomasulo算法实验报告 课程名称:高级计算机系统结构 学号: 姓名: 指导教师: 日期:2011年12月8日 Tomasulo算法实验报告全文共5页,当前为第1页。 Tomasulo算法实验报告全文共5页,当前为第1页。 实验目的 加深对指令集并行性及开发的理解。 加深对Tomasulo算法的理解。 掌握Tomulo算法在指令流出、执行、写结果各阶段对浮点操作指令以及load和store指令进行什么处理。 掌握采用了Tomasulo算法的浮点处理部件的结构。 掌握保留站的结构。 给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。 实验平台 Tomasulo算法模拟器。 实验内容 1. 假设浮点功能部件的延迟时间为加减法2个周期,乘法10个时钟周期,除法40个时钟周期,load部件2个时钟周期。运行程序的代码段如下: L.D F6, 24(R2) L.D F2, 12(R3) MUL.D F0, F2,F4 SUB.D F8,F6,F2 DIV.D F10,F0,F6 ADD.D F6,F8,F2 当指令MUL.D写结果时,保留站中内容如下表所示: 当指令MUL.D写结果时,load缓冲器中内容如下表所示: 当指令MUL.D写结果时,寄存器状态表中的内容如下表所示: 观察分析: 周期1:取出第一条指令L.D F6, 24(R2),地址偏移量24写入LOAD1,LOAD1名存入寄存器F6。 周期2:取出第二条指令L.D F2, 12(R3),地址偏移量12写入LOAD2,LOAD2名存入寄存器F2,同时第一条指令开始执行,LOAD1上写入绝对地址。 周期3:取出第三条指令MUL.D F0, F2,F4,第一条指令完成,第二条指令开始执行,LOAD2上写入绝对地址。保留站中存入待运算的操作数和操作。寄存器F0上QI写入保留站中待运算命令的名称。 Tomasulo算法实验报告全文共5页,当前为第2页。 周期4:取出第四条指令SUB.D F8,F6,F2,第二条指令执行完成,第一条指令写入结果M1到寄存器F6,保留站中存入第四条指令的待运算操作数和操作。LOAD1清空。 Tomasulo算法实验报告全文共5页,当前为第2页。 周期5:取出第五条指令DIV.D F10,F0,F6,第二条指令写结果M2到寄存器F2,LOAD2清空。保留站中存入第五条指令的待运算操作数和操作 周期6:取出第六条指令ADD.D F6,F8,F2,第三条和第四条指令开始执行,相关的操作数和操作符被存入保留站 周期7:第四条指令执行完成,保留站中的第三条指令继续执行。 周期8:第四条指令写结果M3到寄存器F8,保留站中存放第四条指令的位置清空,第三条指令继续执行。 周期9:第六条指令开始执行。第三条指令继续执行。 周期10:第六条指令执行完成,第三条指令继续执行。 周期11:第六条指令写结果M4到寄存器F6中,清空保留站中原来存放第六条指令的位置。第三条指令继续执行。 周期12~15:第三条指令继续执行,直到完成。 周期16:第三条指令写结果M5到寄存器F0,保留站中原来存放第三条指令的位置清空。 周期17~56:第五条指令开始执行,直到结束 周期57:第五条指令执行结束后写结果M6到F10,保留站中原来存放第五条指令的位置清空。 2. 对于与1相同的延迟时间和代码段 (1)在第3个时钟周期时,保留站内容如下表所示: 在第3个时钟周期时,load缓冲器内容如下表所示: 在第3个时钟周期时,寄存器状态表内容如下表所示: (2)步进5个时钟周期后,保留站内容如下表所示: Tomasulo算法实验报告全文共5页,当前为第3页。load缓冲器内容如下表所示: Tomasulo算法实验报告全文共5页,当前为第3页。 寄存器状态表中内容如下表所示: (3)再步进10个时钟周期后,保留站内容如下表所示: load缓冲器内容如下表所示: 寄存器状态表中内容如下表所示: 3. 浮点功能部件的延迟时间为加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。load部件2个时钟周期。运行程序的代码段如下: L.D F12, 20(R5) L.D F2, 10(R6) MUL.D F6, F2,F10 SUB.D F0,F8,F2 DIV.D F10,F0,F12 ADD.D F8,F12,F2 在第3个时钟周期时,保留站内容如下表所示: load缓冲器内容如下表所示: 寄存器状态表中内容如下表所示: Tomasulo算法实验报告全文共5页,当前为第4页。 Tomasulo算法实验报告全文共5页,当前为第4页。 步进5个时钟周期后,保留站内容如下表所示: load缓冲器内容如下表所示: 寄存器状态表中内容如下表所示: 再步