第32卷第10期 2015年1O月 计算机应用与软件 Computer Applications and Software Vol_32 No.10 Oet.2015 HR.2 DSP核的周期精度模拟器设计 吴紫盛 李 源 杨群何虎 (清华大学微电子学研究所北京100084) 摘要HR一2(华睿2号)是核高基重大专项中面向雷达应用的一款高性能数字信号处理器。为了给HR-2 DSP核开发提供一款 模拟器以进行性能评测和优化指导,并提前进行多核架构的探索,提出一种高效的周期精度软件模拟器建模方法。首先分析该处理 器的流水线结构,指令动态执行和分支预测机制,然后使用LISA语言在PD(Processor Designer)工具中对该处理器的流水线、指令集 和寄存器重命名等内容进行设计实现,从而开发出HR-2 DSP核的周期精度模拟器模型。实验结果表明,基于该建模方法开发的模 拟器周期精度误差在10%以内,可以进行高精度的处理器性能评测和各种模式下的架构探索。 关键词 中图分类号数字信号处理器TP302.1 模拟器周期精度 流水线A LISA语言 文献标识码DOI:10.3969/j.issn.1000—386x.2015.10.018 DESIGNING CYCLE ACCURATE SIMULAToR FoR HR_2 DSP Wu Zisheng Li Yuan Yang Qun He Hu (Institute ofMicroelectronics,Tsinghua University,Being 100084,China) Abstract HR一2 is a high—performance diigtla signal processor(DSP)for radar applications in national major specila projects of core elec— tronic devices.In order to provide a simulator for HR-2 DSP development to carry out performance evaluation and optimisation guidance as well as to implement in advance the exploration of multi—core architecture.we proposed aJl efficient cycle accurate simulator modelling meth— od.First,we analysed processor’s pipeline architecture,dynamic instruction execution and branch prediction mechanisms,then we used LI— SA language to have designed and implemented on processor designer(PD)the contents of pipeline,instruction set nd aregister renaming of processor,thereby developed the cycle accurate simulator model of HR-2 DSP.Experimentl resultas showed that the simulator developed by this modelling method could obtmn more than 90%cycle accuracy,and processors’performance evaluation and architecture exploration in different patterns could be performed with high accuracy. Keywords DSP Simulator Cycle accuracy Pipeline LISA language 统态寄存器和访存系统等内容,并在此基础上搭建仿真验证 0 引 言 提高指令级并行度(ILP)是现代微处理器的重要课题…。 HR一1(华睿1号)在2009年被列入国家“核高基”重大专项,采 用了DSP和CPU多核架构设计,在处理能力和能耗方面具有明 显的优势 J。HR-2是HR-1的第二代产品,由多个DSP核和可 配置专用处理核组成,具有很高的设计复杂程度。传统的基于 RTL的处理器开发和性能分析由于开发周期长,迭代速度慢,无 平台。不同于指令精度的处理器模型,HR-2的周期精度级 模型可以真实的模拟处理器硬件功能和执行过程,实现指令 周期信息的匹配。 1相关工作 1.1 HR_2架构及流水线介绍 HR-2的整体设计继承于上一代处理器HR.1,架构如图1 所示。它的主要特征如下: 法满足对处理器架构的提前探索和优化指导 ,因此需要给 HR-2提供一款周期精度的模拟器。 处理器的ESL(Electronic System Leve1)模型基于特定的 ・四路超标量 ・Gshare,BTB,RAS组成的分支预测机制 商业软件平台开发,仿真速度快,开发周期短,能够完全模拟 目标处理器的硬件系统,提供几乎全部的硬件细节,对于软 硬件联合仿真有重要作用 ’ 。HR-2的ESL模型基于Syn. opsys公司的PD/PA软件开发平台,主要用来进行性能分 ・指令乱序执行 ・2路512位访存通道 析、软件开发和架构探索。本文使用基于LISA语言的PD开 发工具对HR-2 DSP核(以下简称HR一2)进行周期精度级的 模拟器建模,包括指令流水线、指令功能、转移预测机制、系 收稿日期:2014—04一叭。核高基重大专项(2叭2zx010340o1— 002)。吴紫盛,硕士生,主研领域:高性能数字信号处理器。李源,硕士 生。杨群,硕士生。何虎,副教授。 第10期 吴紫盛等:HR.2 DSP核的周期精度模拟器设计 83 图1 HR-2总体架构 HR-2根据功能单元分为九类流水线,每类流水线指令都会 经过以下几级流水线: IF(取指) 计算取指地址,并将这个地址放在指令总线上 用来读取cache,将读取指令送到指令总线上并存入指令暂存寄 存器。 PDC(预译码级) 对指令进行预译码操作并送入IF中保 存,指令的分支预测也在这一级完成。 IDU(译码级) 对指令暂存寄存器中的指令进行译码。 DPU(派遣级)对译码后的指令进行重命名操作,并将指 令派遣到各个执行单元的保留站中。 ISS(发射级) 从满足发射条件的指令中选出一条发射到 该保留站对应的执行单元中。 EXU(执行级)执行单元执行指令,不同的执行单元执行 指令需要的周期不同。 RET(提交级) 提交指令,即确认指令执行完毕,并将指令 的执行结果写回到体系结构寄存器中。 WB(写回级) 根据提交指令的执行结果更新体系结构寄 存器,完成该指令的执行。 1.2 HR-2指令的动态执行 指令在流水线的DPU级之前(包括DPU)都是顺序流动 的,即流动顺序就是取指顺序。而在ISS和EXU级是乱序流动 的,即指令可以不按照取指顺序在流水线中流动。在RET级及 后面的流水级中,指令又恢复了顺序流动。 HR-2指令的乱序执行部份采用tomasulo算法,各个执行部 件的保留站中保存指令的源操作数,当一条指令所需的全部源 操作数都准备好之后,就随时可以发射而与程序的顺序无关。 当指令执行完成后,会在结果总线上广播结果,如果该指令的目 标寄存器的地址与保留站中指令的源寄存器的地址相同,保留 站就将这个结果保存下来并将相应的源操作数的ready位设为 1,表示这个源操作数已经准备好。 1.3 HR-2指令的猜测行为 对于典型的MIPS程序来说,动态转移的发生频率平均在 15%一25%之间,这意味着每隔3~6条指令就要执行一条转移 指令 J。HR-2允许指令的猜测执行,即允许根据分支预测的结 果提前取出指令并在分支预测的结果未得到验证时提前执行。 HR-2通过给不同分支的指令分配不同的基本块来区分这 些指令,基本块以分支指令之后的延迟槽指令作为结尾,包括从 结尾指令前推到上一条延迟槽指令之后的所有指令,所以一个 基本块就代表程序中的一个分支的全部指令。HR一2支持8个 基本块,每个基本块都有一个基本块编号(0~7),指令在被存 入指令暂存寄存器时就被赋予该指令所在基本块的基本块编 号,这个基本块编号会跟随指令在流水线中流动直到被提交 为止。 2 HR-2周期精度级建模 2.1流水线建模 , PD是一个自动化的嵌入式处理器设计工具。该开发工具 基于处理器的描述语言LISA 2.0,这是一种混合的功能/结构建 模语言,用来描述可编程处理器体系结构以及它们的外设和接 口,可以大大加快标准或定制处理器的设计 J。 - HR-2模拟器建模的难点在于处理器结构复杂,包含多条并 行的流水线,且不同流水线的周期数各不相同。在HR-2中,IF、 PDC、IDU、DPU、RET和WB是共用的流水级,而ISS和EXU根 据不同指令操作和周期各不相同,因此可以利用这一特点来设 计流水线的结构和执行顺序,如图2(a)所示。流水线的周期行 为通过主函数main来实现,main函数作为程序的入口,标志着 一个“周期”的开始,在每个“周期”内,反向的依次执行每个流 水级,结束之后再次进入main函数,标志着下一“周期”的开 始。图中的EXE级和ISS级以并行的方式描述,实际的执行过 程是有先后的,考虑到执行级执行的结果要广播给ISS级,因此 先依次执行EXE级的所有模块,再依次执行各功能单元的ISS 级。HR-2的流水线建模采用逆序的执行过程,与流水线的推进 方向相反,这样模拟出来的流水线执行过程刚好是正确的。 流水线的推进流程如图2(b)所示,图中只选取了流水线中 关键的几级流水级进行演示。纵向是每个“周期”内流水级的 执行顺序(从上往下),横向是单条流水线的推进方向。由于后 级流水级依赖上一级的数据,因此刚开始的几个周期中被触发 的流水级(实线框内)虽然执行,但是没有有效数据,相当于气 泡。CYCLE 0的IF是第一条流水线的起点,经过七个周期的推 进,在CYCLE 7执行完毕,之后流水线达到稳定状态。每级流 水级由单独的函数进行描述,可以在满足设计要求的情况下对 功能描述和控制逻辑加以抽象,并进行模块化,从而提高开发的 效率。 ) 图2 HR-2流水线建模流程 计算机应用与软件 2.2指令集建模 HR_2指令集按照功能单元可以分为算术和逻辑计算类指 令(ALU),乘法和乘加类指令&除法类指令(MDU),存储器加 载类指令&存储器存储类指令(LSU),分支和跳转类指令 (BQU),NEXE指令和浮点(FPU)、向量(VPU)指令。这些指令 2015亟 未重命名,32—63表示已被重命名。在指令写回后,需要将 RAT表中对应的目标寄存器物理地址恢复为逻辑地址,恢复的 逻辑如下: RAT[RAT_lad&[ROB—id]]=RAT_Iaddr[ROB—id] 对源寄存器的重命名操作需要读取RAT,等待重命名的指 令使用自己的源寄存器逻辑地址(inst—rs—lad&)在RAT中查找 到相应的物理地址(inst—rs—ad&),将这个物理地址作为执行阶 的编码和信息需要在PD中描述,供译码阶段对指令进行译码。 为了清楚地对指令进行分类,采用分层的方式对指令进行定义, 通过指令类型将指令分为七类,每一类指令又可以细分更具体 段的源寄存器物理地址,从而完成对源寄存器的重命名操作,源 寄存器重命名规则如下(以rs为例): instrs——的指令,每条指令都有独立的一个OPERATION来定义指令的 编码格式、语法和行为 。指令译码时通过索引编码格式 addr=RAT[inst一 ̄一1addr] 当有流水线的指令被取消时,这些被取消的指令所使用的 (CODING)中非变量位的值,准确地调用相应指令的OPERA- TION进行译码和指令信息的提取,指令的译码索引过程如图3 所示。 图3指令译码过程 以ALU类的ADD指令为例,该指令实现定点的加法运算 rd=rs+rt,其中rd为目的寄存器,rs和rt为源寄存器。指令编 码的定义如下所示: CODING{0b000000 REG_S REG_T REG—D 0b00000 0bl00000} 括号中包含了ADD指令编码的格式,共32位,其中第0— 10位和第26—31位是固定值,而REG—S,REG—T和REG—D被 分别定义成5位可变的变量,对应ADD指令所需要的源寄存器 和目的寄存器。指令译码时会从指令编码相应的位置提取源/ 目的寄存器的地址。指令的汇编和行为语法如下: SYNTAX{.IADD”REG D”,”PEG—S”,”REG_T} BEHAV10R { Mu_opc ̄e=OPC_ADD; alu_rs=REG—s;//re ̄ster index alu—rs—vld=true; } 译码只是对指令编码进行解析,提取操作数地址和操作数 类型等信息,并将这些信息传递给DPU级进行派遣,指令的执 行在每个功能单元的执行级进行。 2.3寄存器重命名建模 寄存器的重命名是维护数据相关,避免冲突冒险的核心技 术,也是实现指令动态执行的关键。寄存器重命名逻辑根据指 令译码器提供的寄存器逻辑地址,通过查找寄存器别名表 (RAT)和对4条待派遣指令的相关性分析来进行寄存器重命名 操作。寄存器重命名分为对源寄存器的重命名和对目标寄存器 的重命名。目标寄存器的重命名规则如下: RAT[RAT_lad&[ROB—id]]=ROB—id+32 其中ROB—id是指令在派遣时分配到的ROB项(0~31),相当 于指令的唯一性编号,同时标识着指令的先后顺序;RAT—lad& [ROBjd]表示该ROB—id对应指令的目标寄存器的逻辑地址 (0—31);而RAT[RAT—lad&[ROB—id]]表示该逻辑寄存器的 物理地址(0—63),用于对源寄存器的重命名操作,0—31表示 重命名寄存器需要被释放,RAT要恢复到对这些指令做寄存器 重命名操作之前的状态。 3模型验证与评测 HR-2的CA模型验证需要两部分的支持,一是验证平台的 搭建,二是仿真结果的比对 J。验证平台基于PDBG,通过加载 CPU设计方提供的华睿2号典型应用程序进行模型仿真,仿真 结果的正确性通过和同一应用程序的标准l3 og文件进行比对。2 1 0 4 5 3 5 2 5 l 5 0 这里通过三步实现对HR-2 CA模型的验证和处理器性能评测, 首先通过CPU设计方基于指令覆盖率驱动生成的随机测试程 序验证模型的周期精度,然后评估该模型对FFr、FIR等主流数 字信号处理运算的性能,最后通过主流处理器运算能力测试程 序Dh ̄stone和Whetstone测试处理器性能。该随机测试程序在 HR_2 CA模型和硬件的执行周期结果如图4所示。 周期 (Xl0 ) 一一一cA模仿仿真——RTL仿真 图4指令一周期曲线图 仿真结果表明,HR-2 CA模型周期精度误差在10%以 内,很好地模拟了真实的硬件行为,达到了周期级精度的建 模。从图中会发现刚开始的一段指令执行周期两者相差较 大,这主要是因为模型中对CACHE的建模是基于延迟的,和 真实的硬件行为还有差距,导致L2 cache miss的情况下执行 周期数不一致,随着L2 cache miss的减少,模型的周期精度 逐渐提升。 在验证了模型的正确性之后,评估该模型对FFT、FIR等 主流数字信号处理运算的性能,表1为HR.2 CA模型对1K 点FFT、FIR和矩阵乘法运算的执行时间(周期)表。从表中 可以看出,HR-2 CA模型能够正确地执行各类数字信号处理 程序,由于具有较好的周期精度,对处理器性能的评估具有 很好的参考性,也为在该模型上进行软件开发提供了良好的 环境。 第l0期 吴紫盛等:HR-2 DSP核的周期精度模拟器设计 表1 HR-2 CA模型性能测试 85 理器架构研究;可以用来进行软件开发,测试结果表明HR-2的 CA模型在笔记本虚拟机上达到12kCPS的仿真速度,利用该模 2.9×i0 序号 1 典型算法 FF-r 运算规模 1K 运算时间(cycle) 型提前进行软件开发将大大加快开发的进度;可以用来进行架 构探索,为多种处理器核搭配组成的多核架构方案选择奠定了 1K、16阶 2 HR 1K、64阶 7.8×103 2.9×10 基础,有着重大的意义。后续希望进一步探索不同模式和算法 组合下的处理器性能,进行多维度的分析和评测,同时借助完成 的模拟器搭载多核架构,进行多核处理器的架构预研。 1K、128阶 16阶 3 MatrixMul 5.9×10 1.2×10 64阶 9.8 x10 参考文献 最后进行基准测试程序的评测,本文对面向通用计算性能 的微处理器主流基准程序Dhrystone和Whetstone进行了评 [1]沈钲,孙义和.一种支持同时多线程的Vuw DSP架构[J].电子 测 。表2为HR-2 CA模型与主流ARM处理器核的Dhrys. tone评测对比(DMIPS/MHZ)。从评测结果可以看出,HR-2的 性能介于ARM1 1和Codex—A5之间,具有优秀的性能表现。 表2 HR-2 CA模型Dhrystone评测结果比较 Microprocessor Core Dhrystone result(DMIPS/MHZ) ARM7.ARM710a O.68 ARM8一ARM810 1.16 ARM11一ARM1176JZ(F)一S 1.25 HR-2 1.28 Cortex.A5 1.57 此基础上比较不同发射模式下的处理器性能,HR-2不同发 射模式下的Dhrystone和Whetstone评测结果如图5所示。 图5 Dhrystone评测结果 图中HR-2—1,HR-2—2,HR-2.4分别对应HR-2的单发射, 双发射,四发射模式。仿真结果表明,HR-2在四发射模式下的 性能要比单发射模式下有显著的提升(32.5%),而与双发射模 式下相差不大(10%),这说明单纯提高多发射数量并不能带来 性能持续的显著提升。对处理器性能的提升还需要深入挖掘提 高指令并行度的方法,比如对分支预测的优化和派遣机制的改 进等。有了HR-2 CA模型,就可以对处理器结构进行仿真和分 析,通过实际的测试找到性能提升的瓶颈,并指导硬件开发。 4结语 通过PD工具实现的HR-2 CA模型真实地模拟了处理器流 水线和指令功能的行为,在合理抽象的情况下保证了指令执行 的周期精度。实验结果表明该模拟器精确地实现了HR-2软件 仿真,借助HR-2的CA模型可以用来进行处理器性能分析,对 处理器结构和实现算法进行优化,同时该模型可复用于新的处 学报,2010,38(2):352—358. [2]陈敏超,李笑天,郭德源,等.HR-1 DSP软件模拟器设计[J].计 算机应用与软件,2012,29(11):101—103,176. [3]朱大林,郭德源,何虎.VLIW DSP指令级精度模拟器的快速实现 方法[J].计算机工程与设计,2013,34(1):256—261. [4]游余新.基于ESL设计方法学的SOC设计[J].中国集成电路, 2011,20(9):29—35. [5]Chen C H,Yao T K,Dai J H,et a1.A pipelined multiprecessor sys— tem—oil—a—chip(SoC)design methodology for steraming singal process— ing[J].Journal of Vibration and Control,2014,20(2):163—178. [6]Hennessy J L,Patterson D A,Bai Yuebin.Computer Architecture: Quantitative Research Methods(fouah edition)[M].Electronic Indus— try Press,2007:45—50. [7]魏国,吴健,阮园.基于LISA模型的汇编器研究与实现[J].微电 子学与计算机,2012,29(2):114一l18. [8]杨丹,史浩山,张梅娟.DSP软件开发工具链的设计与实现[J]. 计算机测量与控制,2011,19(9):2296—2299. [9]Schubert K D,Roesner W,Ludden J M,et a1.Functional veriifcation of the IBM POWER?microprocessor and POWER7 muhiprocessor sys- terns[J].IBM Journal of Research and Development,2011,55(3): 10:1—10:17. [10]RongH,XianM,WangH,eta1.Time—Stealer:A StelathyThreatfor Virtualization Scheduler and Its Countermeasures[M]//Information nad Communications Security.Springer International Publishing, 2013 1100—112. (上接第58页) [8]Wu S,Li F,Mehrotra S,eta1.QueryOptimizationforMassively Paral— lel Data Processing[C]//Proc.of the 2nd Symposium on Cloud Corn— puting,2011,Caseals,Portugal,Victoria:ACM SOCC:338—356. [9]Bent J,Denehy T E,Livny M,et a1.Data—Driven Batch Scheduling [C]//Prec.of the 2nd Int1.Workshop on Data-Aware Distirbuted Computing,2009,schia,Itlay,New York:DIDC,1—10. [10]刘义,景宁,陈荦,等.MapReduce框架下基于R-树的k-近邻连接 算法[J].软件学报,2013,24(8):1836—1851. [1 1]Gates A.Comparing Pig Latin and SQL for Constructing Data Process— ing Pipelines[EB/OL].(2009—8—25)[2011—6—19].http:// developer.yahoo.com/blogs/hadoop/posts/2010/01/comparingpig—.—. 1atin_and—sql_fo/. [12]TPC.TPC Benchmark H Standard Specification[EB/OL].(2009—5 —16)[2012—3—27].http://www.tpc.ors/tpch/spec/tpch2.9. 0.pdf. [13]Dai D.PigMix Benchmark[EB/OL].(2008—6—12)[2013—4— 15].https://ewiki.apache.org/comquence/display/PIG/PigMix.