基于32位超标量处理器的保留站设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【关键词】保留站;ALU;超标量;多发射
【中图分类号】TP311
【文献标识码】A
【文章编号】1008-1151(2013)11-0003-02
Reservation station design based on 32 bits superscalar processors
Abstract: The reservation station will temporarily store the data sent by data register or the ALU unit according to superscalar processor register renaming principle. When the data in two data bits is ready, the instructions stored in reservation station will be sent to ALU unit to calculate. In this design, a structure is added to receive data from ALU unit. It can judge the source of the data and whether the data sent by ALU unit will be used. When the ALU unit operation is complete, the data can be sent to corresponding reservation station before the next clock cycle. Compared to read data from the reordering buffer (ROB), this will reduce the time that reservation station
假设顺序读入的两条新指令分别为 IR0 与 IR1,则(2) 中数据相关性的检测策略如下:
RAW: (1)检测 IR0 [dst]与 IR1[src0]或 IR1[src1]的值是否 一样,如一样则重命名 IR1[src0]或 IR1[src1],使 IR1[src0] 或 IR1[src1]的值指向产生 IR0[dst]结果的 ALU 序号, IR0[dst]保存于 ROB 中。 (2)将 IR0[src0]和 IR0[src1]与寄存器文件中的 Qi 字 段进行比较,检查 Qi 字段是否有内容。如:IR0[src0]为 1, 则检测寄存器 R1 中 Qi 是否为 0(0 表示无效),若为 0,则说 明不存在 RAW 的数据冒险;若不为 0,则表示 R1 的值来自于 Qi 字段所指向的保留站的指令运行结果,即 IR0[src0]=R1.Qi (R1.Qi 表示 R1 中 Q i 的值) WAR 与 WAW: 为避免 IR_0[dst]与各保留站中的 Psrc_0 或 Psrc_1 相 同,或为避免 IR0[dst]所对应寄存器中的 Qi 字段有效,则所 有目的寄存器 dst 全部重命名。 对于 WAR,因为操作数的数值保存于保留站中,或者操作 数的数值指向某一保留站的运算结果,则操作数的获取可以 独立于写操作,从而避免了 WAR。 对于 WAW,则在重命名完成之后更新对应的寄存器的 Qi 字段。
IR_decode 发来的数据;如果不是,对于 rt 操作数直接赋 0, 即使 rt 操作数处于已准备好的状态。
(4)保留站 busy 位置 1。 3.2 保留站已完成初次的数据存储,在等待 ALU 中送来 的数据 (1)对于操作数与立即数保持不变。 (2)对于 rs 或 rt 操作数,如果与 ALU 送来的数据相匹 配,则将 rs 或 rt 操作数置 0,保存 rs 或 rt 操作数对应的数 据,否则,如果不匹配,则继续等待。 (3)对于保留站 busy 标志位,当 rs 与 rt 操作数都为 0, 则发射保留站中的指令与数据,busy 位置 0,否则保持置 1。 在该保留站的设计中,共有 7 个标志信号,分别是 sw_en, reg_data0/1_ROB_ID_match,RS_ID_send_en, reg_data0/1_ROB_ID_ match_first_write,其中 sw_en 是 store word 指令的使能信号, reg_data0/1_ROB_ID_match 表示在上述情况 2 中 alu 送来的 数据与需求的数据 ID 是否相匹配,reg_ data0/1_ROB_ID_ match_ first_write 表示在上述情况 1 中 alu 送来的数据与 需求的数据 ID 是否相匹配,RS_ID_send_en 表示该保留站发 射指令的使能信号。 在该设计中,如果在第一次写入数据时,rs 与 rt 操作数 的数据没有准备好,则存在一种可能,即指令发送到保留站 时,所需要的数据刚好由 alu 运算完成,而如果在情况 2 中 再存储之前从 alu 中送来的数据,若 alu 刷新,则数据会丢 失。因此在该设计中考虑到这一点,对保留站的结构进行了 改进,在情况 1 时,增加了一个对 rs 与 rt 操作数来源的判 断信号,该信号作为 select 信号控制 mux 来选择数据是来自 alu 还是来自上一级 IR_decode 发来的数据,相关电路结构如 图 1 所示,reg_data0/1_ROB_ID_match_first_write 是比较 器的输出信号,为图中的 select 信号。
的数据位,当两个数据位的数据都准备好时,则发射存储在保留站中的指令给 ALU 单元进行运算。文章的设计中,增加了从
ALU 单元接受数据的结构,使保留站可以判断数据的来源,以及是否使用 ALU 单元送来的数据。当 ALU 单元运算完成时,数
据可以在下一个时钟周期前送至对应的保留站。与从重排序缓存(ROB)中读取数据相比较,这将减少保留站获取数据的时间。
2 寄存器重命名原理在保留站中的应用
在多发射处理器中,为发挥其指令执行的并行性的优势, 应在一个时钟周期中尽可能的发射多条指令。为实现指令的 多发射,需要在指令的发射阶段检测发射的多条指令是否有 数据相关产生。如有 WAR(读后写)或 WAW(写后写)的数据相关 产生,则可用寄存器重命名的方法解决[1]。在本文中,将就双 发射处理器中发射阶段中寄存器重命名技术及发射端的硬件
图 1 用于判断数据来源的比较器与 mux
4 仿真与结果
在该设计中,通过 Modelsim 对该保留站的设计进行了仿 真验证,总共对三种情况进行了验证:(1)保留站第一次写 入两个已准备就绪的数据。(2)保留站写入的数据中只有一 个数据准备就绪。(3)保留站接收从 ALU 送来的数据,(下转 第 7 页)
表 1 保留站格式
Op
Qj
Qk
Vj
Vk
A
Busy
其中 op 表示操作码;Qj 与 Qk 表示产生源操作数的保留 站,若为 0,则说明源操作数在 Vj 或 Vk 中已准备好;Vj 与 Vk 表示源操作数的值或保存偏移量字段;A 为计算 load 指令 和 store 指令的存储器地址保存信息;Busy 表示保留站及其 相关功能单元已被占用。在本设计中,所有指令将沿用该结 构,对于写数据(sw)这条指令,由于其操作数与执行的特殊 性将会在沿用该结构的基础上做适当改进。
总第 15 卷 171 期 2013 年 11 月
大众科技 Popular Science & Technology
Vol.15 No.11 November 2013
基于 32 位超标量处理器的保留站设计
翟召岳
(同济大学电子与信息工程学院,上海 201804)
【摘 要】该保留站根据超标量处理器中寄存器重命名的原理, 将从数据寄存器或 ALU 单元送来的数据临时存储在保留站
实现进行探讨。 双发射处理器即每个时钟周期发射两条指令。本文设计
的双发射处理器采用 tomasulo 算法与重排序缓存(ROB), tomasulo 算法相比记分牌算法具有两个优势:(1)指令不会 因为 WAR 或 WAW 的数据相关而产生停顿;(2)由于保留站采 用分布式,相对于记分牌的集中式,运算单元计算的数据可以同 时送至各保留站。Tomasulo 算法中的保留站格式如表 1[2]:
在将指令发射进入保留站前,处理器将会检测发射指令
【收稿日期】2013-10-21 【作者简介】翟召岳(1988-),男,山东人,供职于同济大学电子与信息工程学院电子科学技术系,微电子学与固体电子 学工学硕士,研究方向为计算机体系结构。
-3-
的源操作数(src)与目的操作数(dst)。由于 RAW(写后读)为数 据相关的真相关,因此寄存器重命名技术主要针对 WAR 或 WAW 的数据相关[3]。
3.1 数据第一次进入该保留站 (1)保存指令操作数与立即数。 (2)对于 rs 操作数,无论指令是 I-type 还是 R-type, 都需要存储 rs 的数据,因此仅增加对于 rs 数据来源的判断: 判断所保存的数据是来自 alu 还是来自上一级 IR_decode 发 来的数据。 (3)对于 rt 操作数,若指令为 I-type 指令,判断是否 是 store word 指令,如果是,对于 rt 操作数的处理与 R-type 一 样 , 判 断 所 保 存 的 数 据 是 来 自 alu 还 是 来 自 上 一 级
指令被读入并发射进入保留站的过程如下: (1)两条指令从存储器中被读入。 (2)指令将进入检测端,在检测端进行 RAW、WAR 和 WAW 的数据相关性检测,并根据是否有寄存器调用的冲突来决定 是否进行寄存器重命名。对于 RAW 的相关,只能等待写操作 的完成,而对于 WAR 与 WAW 的数据相关,则可进行寄存器重 命名,以此来避免数据相关。 (3)将重命名之后的指令送入保留站。
3 保留站设计的实现
在本文作者所设计的处理器中,保留站格式采用了 Tomasulo 算法的保留站格式。由于 J-tpye 指令在 pc 模块中 进行处理,因此该保留站针对 R-type 与 I-type 两种类型指 令进行处理。对于保留站的设计主要考虑两种情况,再从该 两种情况中扩展开来,两种情况中的特殊情况如下所示:
need to get the data. Keywords: reservation station; ALU; superscalar
1 引言
在多发射处理器中,为了提高对后续指令的处理速度, 引入了保留站,保留站将起到暂存数据的作用,当数据准备 好时则发送至下一级的 ALU 单元。本文设计了一种保留站, 在该保留站中增加了从 ALU 单元接受数据的结构,可以判断 所需的数据是否从 ALU 单元中送来。该保留站使用 Verilog HDL 进行了 RTL 级的描述,并用 ModelSim 进行了仿真,通过 Xilinx ISE 的综合工具来看,速度最高可达 203.603MHz。考 虑到采用的 XXX 模型以及 FPGA 仿真版中 LUT 单元数量对布局 布线的限制,则实际速度应会更快。
4 实验装置功能特点
(1)函数信号通过电流放大器对功率放大,形成足够的 磁场驱动电流,利用线圈进行电流到磁场的变换,从而获得 对应于各种信号波形的磁场模式。利用标准磁场计定标校准 后,实现对霍尔传感器进行各种形态磁场下的探测实验和研 究。
-4-
感器匝数 n,对式(1)变形得到式(2)。
n = (L × l) /(k × uo × us × s)
百度文库
(2)
在给定条件下依据式(2),得到电感器匝数 n 取整为 115 (匝)。
(3)实际电路中电感器的制作 本系统电路对电感器电感量的取值为——mH,注意批量 制作时要保证工艺一致性良好。 线圈在空心圆直筒骨架上多层紧密排绕,骨架外径 12mm, 内径 10.5mm,绕线长度 50mm;采用高强聚酯漆包线,线径 0.62mm;直接留出适当长度绕线做电感器引脚; 线圈绕线完成后,用黄蜡绸紧绕两层以固定线圈,在 65 ℃恒温箱烘烤 2 小时,然后整体浸绝缘清漆 5 分钟,取出烘 干,插入磁棒即可。
相关文档
最新文档