一种DSP周期精度高效建模方法.docx_第1页
一种DSP周期精度高效建模方法.docx_第2页
一种DSP周期精度高效建模方法.docx_第3页
一种DSP周期精度高效建模方法.docx_第4页
全文预览已结束

下载本文档

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

文档简介

李笑天1 ,殷淑娟2 ,何虎1( 1 清华大学 微电子学研究所,北京 100084; 2 北京信息科技大学 理学院,北京 100192)摘 要: 为了便于数字信号处理器( DSP) 的架构探索,提出了一种全新的基于 Gem5 模拟器 Atomic 模型,为顺序多发射、多级执行的 DSP 进行周期精度高效建模的通用方法。通过修改 Atomic 现有的三级流水线,添加一级 新的流水线,达到了在 Gem5 中为 DSP 进行周期精度仿真的目的; 通过硬件表格类的设计,改变 Gem5 指令集与 处理器的耦合,达到了在 Gem5 中为 DSP 进行快速高效建模的目的。运行基准测试程序 Dhrystone2 的结果表 明,该建模方法得到的周期信息与 TL 硬件代码的仿真结果相同。而对代码的统计表明,该建模方法能提高代 码的复用率和可维护性,使建模能快速响应设计,缩短 DSP 设计迭代周期。关键词: Gem5 模拟器; 周期精度; 高效建模; 架构探索; 处理器建模中图分类号: TP311 52文献标志码: A文章编号: 1001-3695( 2015) 01-0121-04doi:10 3969 / j issn 1001-3695 2015 01 028High-efficient cycle-accurate modeling of DSP based on Gem5LI Xiao-tian1 ,YIN Shu-juan2 ,HE Hu1( 1 Institute of Microelectronic,Tsinghua University,Beijing 100084,China; 2 School of Applied Science,Beijing Information Science Tech- nology University,Beijing 100192,China)Abstract: To facilitate the architecture exploration of digital signal processor ( DSP) ,this paper proposed a new general mod-eling method for inorder multi-issue,multi-stage execution DSP based on Gem5 Atomic CPU model This DSP modeling meth- od modified the original three-stage pipeline in Gem5 Atomic model and added a new pipeline stage to achieve the correctness of cycle-accurate modeling This method also designed a new hardware table class and modified the coupling of ISA and CPU to gain the high efficiency The result of running Dhrystone2 1 shows that this modeling method concludes a same result with the TL code Furthermore,statistics of the code indicates that the modeling method can promote the maintainability of the code This method lets the modeling do quick response to the design and shorten the DSP design cycleKey words: Gem5 simulator; cycle-accurate; high-efficient modeling; architecture exploration; DSP modeling本文基于 Gem5 软件模拟器的 Atomic CPU 模型,通 过修改其原有的三级流水线模型,并新增加了一级流水线,实现了 一种全新的 DSP 周期精度通用建模方法。同时,从代码的可 维护性和去耦合性两方面,提出了在 Gem5 上对 DSP 进行高效 建模的方法,使模拟器能快速响应 DSP 架构的设计迭代,并使 之适用于多人建模开发,解决了为顺序 Superscalar 或 VLIW 架 构的 DSP 进行周期精度高效建模的问题。同时,在此建模方 法基础上,对清华大学微电子所 DSP 实验室自行设计的顺序 Superscalar 和 VLIW 混合架构 DSP lily210 进行了架构的迭代 设计和改进,从 lily2 的实例说明了此建模方法的正确性和高 效性,以及对 DSP 架构设计的重要意义。计算机软件模拟器是一种用来建模处理器以达到预测处理器的输出与性能的软件。相比硬件开发,计算机软件模拟器 建模具有工作量小、可配置性和灵活性高、易于调试、统计数据 更加详细等诸多优势1,2。基于以上的优势,计算机软件模拟 器能够极大地加快处理器的迭代设计周期,且为后期的跨平台 程序调试带来极大的便利。 主流的计算机软件模拟器有 Gem5、QEMU、SimOS、Simics、Simplescalar 等,从仿真精度上可 以分为指令集精度仿真和周期精度仿真。指令集精度的仿真 通常采用解释执行,仿真速度快,适用于全系统的仿真以用于 跨平台程序的运行,如基于 QEMU 的 Android 模拟器3。周期 精度的仿真速度较慢,但是能反馈建模处理器验证或基准测试 的精确结果,适用于处理器新架构的探索设计4 6。数字信号处理器( DSP) 属于处理器范畴,主要面向数字信 号处理,也支持通用程序和微控制等。DSP 的应用范围决定了 其普遍采用顺序超标量架构( superscalar) 或超长指令字架构 ( VLIW) ,在控制住功耗的同时拥有较高的性能。前者通过硬 件实现动态分发,程序兼容性和移植性好,流控制能力强7,8。 后者通过编译器或者程序员静态分发,具有很高的指令并行性,但是兼容性和移植性差,适合人工优化9。Gem5 软件模拟器介绍1Gem5 是一款由 Michigan 大学开发的开源计算机软件模 拟器,采用离散事件驱动方式进行处理器的仿真,并集成了众 多主流商用指令集( ISA) 和 CPU 模型11。如今越来越多的公 司都在 Gem5 上进行包括 Cache、总线协议、流水线、指令集等 的架构开发探索工作,使得 Gem5 成为应用最广泛、业内影响 最大的一款适用于架构探索的软件模拟器之一12。收稿日期: 2014-01-08; 修回日期: 2014-03-04基金项目: “核高基”科技重大专项资助项目( 2012ZX01034001-002)作者简介:李笑天( 1989-) ,男,上海人,硕士,主要研究方向为微处理器架构设计、微处理器架构软件工具链设计( lixtmail 163 com) ; 殷淑娟( 1981-) ,女,讲师,主要研究方向为数字信号处理、模拟电子设计; 何虎( 1974-) ,男,副教授,博士,主要研究方向为高性能数字信号处理器设计122计 算 机 应 用 研 究第 32 卷Gem5 软件模拟器架构图 1 为 Gem5 模拟器的架构,虚 线上方是集成的 ISA 模 型,下方是集成的 CPU 模型。通过配置所需的 ISA 和 CPU,就 能组成一个完整的处理器建模。译码建模为了满足指令多发射的需求,需要循环将 fetch 模块取出的指 令全部译码,得到指令的静态信息,供后续分发模块的使用。2. 3 分发建模为了满足指令多发射的需求,在现有的 Atomic 基础上,增 加分发级,模拟硬件的指令分发。Dispatch 模块的工作步骤 如下:a) 从 decode 的结果中取出一条指令。b) 进行分发判决,若指令可以分发,执行步骤 c) ,否则,跳 转到步骤 d) 。c) 更新分发信息,将指令放入 dispatch buffer 中,跳转到步 骤 a) 。d) 记录下该指令地址,用于下次取指。Dispatch 模块的关键在于步骤 b) 中的 分 发 判 决。对 于 DSP 经常采用的顺序多发射 Superscalar 和 VLIW 架构,下面给 出具体的分发建模。1. 12. 21. 2 现有 Gem5 Atomic 模型周期精度建模面临的问题Gem5 的官方文档中,建议通过修改 Atomic 模型而得到自 定义的 CPU 模型。现有的 Atomic 模型具有取指( fetch) 、译码 ( decode) 和执行( execute) 模块。在一个周期内,完成所有三级 流水线操作,即指令的整个生命周期。如图 2 所示,这种仿真 架构对于单发射、单拍执行的 DSP 是行之有效的。模拟器通 过做到与硬件相同的吞吐率( 指令 / 周期) 来保证准确的周期 精度。2. 3. 1顺序 Superscalar 分发顺序 Superscalar 架构的分发主要对指令间的真实数据依赖和硬件限制进行判决。真实数据依赖的核心在于寄存器 依赖表,寄存器依赖表需要具备三个基本功能:a) 问询,待分发指令的源寄存器是否与寄存器依赖表中 的寄存器存在依赖关系;b) 写入,指令可以分发,将其目的寄存器编号及周期信息 写入寄存器依赖表中;c) 更新,每个周期结束时,更新寄存器依赖表中的周期信 息,并删除完成指令的寄存器。寄存器依赖表的底层内存模型可以选择普通的数组,亦可13但是在如今的商用 DSP 领域,低性能的单发射、单拍执行的 DSP 几乎不存在,取 而代之的是多发射、多拍执行的顺序 Superscalar 或 VLIW 架构。Gem5 Atomic 现有的仿真架构无法 满足周期精度的需求。以选择 C +STL 中的 vector 或 map。在后续的高效建模中,+也将介绍一种全新的寄存器依赖表的实现。2. 3. 2 VLIW 分发VLIW 架构的分发逻辑比较简单,一般指令中 1 位或者多 位作为显示并行指示 位14,15。VLIW 分发只需要一个 基 本 功能:问询,待分发指令显示并行位是否标志其为可并行。VLIW 架构的分发不需要借助容器的实现,因为这些并行 判决不含周期信息,不需要进行存储和更新。2Gem5Atomic 下的周期精度建模2. 1 取指建模现有 Gem5 Atomic 中的 fetch 模块每周期只能取出一条指 令,无法满足多发射架构 DSP 的需求。通过修改现有代码,封 装出能够一次取多条指令的 fetch 模块,执行步骤如下:a) 实例化 request 类,存储取指信息;b) 通过内置 TLB 模型,实现虚实地址转换;c) 实例化 packet 类,用于端口数据交换;d) 向 cache 发出请求,结果存放在 packet 中;e) 从 packet 中取出指令。 封装后 fetch 模块代码如下:tick fetch ( int8_t * inst,Addr addr,int size)request req;req setVirt( 0,addr,size,INST_FETCH, cpuinstMasterId( ) ,addr) ;itbtranslateAtomic( req,tc,EXECUTE) ;pakcet pkt = packet ( req,eadeq) ;pkt dataStatic ( inst) ;return icachePort sendAtomic ( req) ;封装后的 fetch 模块,从给定的取指地址 addr 处,取出 size 大小的指令,存放在 inst 指针所指向的数组中,并 返回 Gem5 内置 cache 的时延。2. 4执行建模现有 Gem5 Atomic 中的 execute 模块,每周期只能执行一条指令,且所有的指令都将在一拍内完成执行,包括了寄存器和内存的写回。而商用 DSP 普遍具有多个功能单元。各个功 能单元,比如访存、乘法、ALU 的执行周期也不尽相同。为了 达到周期精度建模,execute 模块必须进行流水,以保证软件模 拟的吞吐率( 指令 / 周期) 与真实硬件相同。指令完成运算,得到结果并不代表指令的完成,只有将结 果写回寄存器或内存,才会对后续的指令产生影响。对现 有 execute 模块进行流水的核心思想就是将一拍完成的指令运算 结果暂存,等待相应的周期后再将结果写回。Execute 模块的步骤如下:a) 执行 execute 函数,完成指令的运算;b) 将指令的执行结果和周期信息写入寄存器 buffer 中予 以暂存;c) 每个周期结束时,更新寄存器 buffer 中的周期信息,并 将周期已为 0 的指令结果写回。123第 1 期李笑天,等: 一种 DSP 周期精度高效建模方法上述提到的寄存器 buffer 就是指令执行结果暂存的地方,和寄存器依赖表的结构相同,只多了存储执行结果的功能。 同时在 execute 函数中需要用寄存器 buffer 的写接口替代寄存器写接口完成执行结果的暂存。图 3 是修改后 Atomic 模型指令运行情况,从中可以看到,增 加了每周期的指令运行宽度以满足多发射 DSP 的需求。同时,将 多拍执行的指令进行了流水,以满足多拍执行 DSP 的需求。替换策略剔除已有元素后再进行插入操作。3. 2. 2 Table 的设计在 Table 模板类的设计中,遵从以下设计原则:a) 分离上层接口与底层内存模型;b) 分离 Table 替换策略和 Table 内部架构。 以下是 Table 模板类框架代码:templatesize_t Set,size_t Way,class Key, class T,class Compare,class Hash,class eplace class Table typedef std: : pairsize_t,size_tPosition; Position search ( const Key ) ;Position insert ( const Key ,const T ) ; ;class eplace Position operator( ) ( size_t set) ; void searchCallback ( Position) ; void insertCallback ( Position) ; ;代码中 Position 类的设计遵循设计原则 a) 。如用指针代 替 Position,底层内存模型从线性改为非线性,所有指针的运算 操作都会失效,降低代码的可维护性。代码中 eplace 类作为模板参数遵循设计原则 b) 。调用 Table 的基本操作 search 和 insert 时,eplace 类相应的回调函数 searchCallback 和 insertCallback 会被执行,完成 eplace 与 Table 的交互。这样设计的原因在于不同的 Table 都需要有对于各自 最优的替换策略算法,将 Table 的替换策略与内部设计分离,减 少了各部分之间的耦合性,使 Table 模板类更具通用性。3Gem5Atomic 下的高效建模在 DSP 架构探索过程中,需要建模初始模型并进行多次迭代改进以得到最终架构,这是一个较大的工程,对 DSP 建模 和迭代提出了快速高效的要求。3. 1 ISA 与 CPU 的耦合现有 Gem5 通过寄存器进行 ISA 与 CPU 的耦合。CPU 向 ISA 提供寄存器的读写接口,ISA 完成指令的运算。但在实际 DSP 设计迭代过程中,对于寄存器宽度与向量指令数据宽度的 改变,需要修改所有相关指令的 ISA 读写寄存器接口,且需要 显式地在 ISA 中完成寄存器数据和指令操作数数据的转换,代 码的可维护性很差,迭代修改效率很低。如果采用如图 4 所示的全新耦合方式,CPU 向 ISA 提供指 令操作数读写接口,ISA 中的指令对操作数可见而对寄存器不 可见,那么对于寄存器宽度和向量指令数据宽度的修改,只需 要在 CPU 中一次性添加操作数与寄存器的对应关系,完全不 需要修改 ISA 中的指令。这样极大地提升了代码可维护性,使 得整个建模能够快速响应 DSP 的迭代设计。4建模准确性验证与架构探索实例为了验证上述建模过程的正确性,选取清华大学微电子所自行设计的混合架构 DSP 处理器 lily2 作为测试的 DSP,Dhrys-16作为测试用的基准程序( benchmark) ,将 TL 仿真tone2 1和 Gem5 Atomic 软件仿真的周期数进行对比。然后给出基于第 2、3 章所述的周期精度高效建模方法进行 lily2 架构探索的 实例,表明该建模方法对于 DSP 架构探索设计的重要意义。lily2 DSP 介绍测试所用 lily2 混合架构 DSP,将顺序 Superscalar 和 VLIW 这两种常用 DSP 架构进行了混合。前者每周期至多发射 2 条 指令,后者为 6 条。拥有多个多拍执行的功能单元,访存指令 为 4 周期,乘法指令为 2 周期,ALU 指令 1 周期。4. 2 建模准确性验证如图 5 所示,lily2 混合架构 DSP 的 TL 与 Gem5 仿真周期 数相差最大在 4% 以内,且误差均来自于 TL 中的 cache 与 Gem5 中内置 cache 的差异。如果排除 cache 因素,两者仿真周 期将完全精确匹配。从 lily2 DSP 仿真周期数的对比中可以看出,改进后的周期 精度建模方法是完全可行的,解决了原有 Atomic 模型无法对 VLIW 架构和顺序 Superscalar 架构进行周期精度仿真的问题。4. 13. 2 表( Table) 模板类在 DSP 建模中,Table 数据结构被反复地应用,诸 如寄存 器、寄存器依赖表、分支预测 BTB 表等。抽象出 Table 的共同 特征,谨慎设计 Table 模板类,利于 DSP 各模块的去耦合性和 代码的可维护性。DSP 架构探索流程实例3. 2. 1Table 的共同特征4. 3Table 本质上是一类容器,但有别于 C + + STL 中的容器。前者容量可动态增加,而后者容量固定不变。一个具有 N-Set、每个 Set 有 M-Way 的 Table 共有 M N 个表项。每个表项均由有效位 ( valid) 、键 值 ( key) 和 对 应 值 ( mapped-value) 三部分组成。查找和插入是 Table 的基本操作,当 Table 满时,需要根据4. 3. 1顺序 Superscalar 架构探索考虑到普通程序跳转指令出现频率在 15% 25% ,DSP程序跳转指令出现频率稍低,但可预测性更强17。使用分支 预测技术将大大减少跳转的周期损失。且考虑到访存指令往 往是程序关键路径所在,使用值预测技术可以充分地利用现有 的访存功能单元,减少关键路径的长度。124计 算 机 应 用 研 究第 32 卷分支预测和值预测技术在 Gem5 中建模的关键在于分支预测缓冲区( BTB) 、值预测表( VPT) 以及各自算法的实现。在 lily2 中,分支预测采用 2-bit 状态机预测法,值预测则采用最近 使用地址法18。采用 Table 模板类实现 BTB 以及 VPT 表,仅 通过添加约 200 行的代码,就能得到如图 6 所示的性能分析结 果,能给设计带来很积极的指导作用。多拍执行的 DSP 进行建模的方法。借助这种建模方法,可以对通用主流 DSP 进行快速建模,探索 DSP 架构设计以及跨平 台调试功能。同时提出了一些 DSP 高效建模的方法,有效地 降低了 DSP 建模时各个模块的耦合性,适合多人并行开发,且 能快速响应 DSP 架构探索迭代设计,通过模块复用,有效降低 了代码量,增加了代码的可维护性。修改后的 Gem5 Atomic 模 型配合 DSP 高效建模方法,形成了一套完整的对于 DSP 进行 通用建模的方法,对于 DSP 架构的探索具有重要的意义。参考文献:1MAGNUSSON P S, CHISTENSSON M, ESKILSON J, et alSimics: a full system simulation platformJ Computer,2002,35( 2) : 50-58BINKET N L,DESLINSKI G,HSU L ,et al The M5 simu-lator: modeling networked systems J IEEE Micro,2006,26 ( 4 ) :52-60BELLAD F QEMU: a fast and portable dynamic translatorC/ / Proc of USENIX Annual Technical Conference Berkeley: USENIX, 2005: 41-46YOUST M T PTLsim: a cycle accurate full system x86-64 microar- chitectural simulator C/ / Proc of IEEE International Symposium on Performance Analysis of Systems Software 2007: 23-34PEES S,HOFFMANN A,ZIVOJNOVIC V,et al LISAmachinedescription language for cycle-accurate models of programmable DSP architecturesC/ / Proc of the 36th Annual ACM / IEEE Design Auto- mation Conference New York: ACM Press,1999: 933-938YE W,VIJAYKISHNAN N,KANDEMI M,et al The design anduse of simplepower: a cycle-accurate energy estimation toolC/ / Proc of the 37th Annual Design Automation Conference New York: ACM Press,2000: 340-345VAJAPEYAM S,MITA T Improving superscalar instruction dis- patch and issue by exploiting dynamic code sequencesJ ACM SI- GACH Computer Architecture News,1997,25( 2) : 1-12 OLUKOTUN K,HAMMOND L The future of microprocessorsJ Queue,2005,3( 7) : 26-29SCHLANSKE M S,AU B EPIC: explicitly parallel instruction computingJ Computer,2000,33( 2) : 37-4524. 3. 2 VLIW 架构探索由于 VLIW 架构通常运行大运算量的 DSP 程序和手写汇 编程序,在架构探索过程中,以常用的 DSP 程序作为驱动力。 表 1 给出了 VLIW 架构的迭代设计过程,通过高效建模方 法,在 Gem5 中只需要通过添加新指令、新寄存器、新操作数和 对应关系,就可以快速完成整个架构迭代设计。图 7 显示了以FFT 为测试程序得到的 VLIW 迭代设计性能改进数据。34表 1Gem5 中的 VLIW 架构迭代设计流程5架构改进原因架构改进方案模拟器中实现大量向量指令 向量分量之间交换X 和 Y 簇无法通信指令集中在某单元eg 从 32 128 bit增加相应的指令 增加簇间通信指令 修改指令集添加新 eg 和 Op添加新指令添加新指令 修改指令解码表64. 3. 3 lily2 在 Gem5 中架构探索结果如图 8 所示是完整的 lily2 混合架构 DSP 经过迭代设计后 的性能。采用 Dhrystone2 1 基准程序,将改进前和改进后的 lily2 与 AM Cortex-A 系列处理器进行比对,改 进 前 的 lily2 DMIPS / MHz 为 0 78,改进后为 2 35,性能接近于乱序发射的 AM Cortex-A919。78910 SHEN Zheng,HE Hu Architecture design of a variable length in-struction set VLIW DSPJ Tsinghua Science and Technology,2009,14( 5) : 561-56911 BINKET N,BECKMANN B,BLACK G,et al Gem5: a multiple-ISA full system simulator with detailed memory modelJ Computer Architecture News,2011,3912 BINKET N,BECKMANN B,BLACK G,et al The Gem5 si

温馨提示

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

评论

0/150

提交评论