《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于语言的ASIP系统级综合方法研究

基于语言的ASIP系统级综合方法研究

2010-01-13
作者:苏鹤年,李 曦,王志刚,杨 君

摘  要: 针对传统ASIP设计方法的不足,提出基于体系结构描述语言的ASIP系统级综合方法,并介绍综合系统xpSyn是如何完成ASIP处理器硬件综合的。
关键词: 专用指令集处理器  体系结构描述语言  系统级综合

  VLSI(超大规模集成电路)技术的发展使得单个芯片可以集成更多的晶体管,SoC设计也成为芯片设计的一个重要研究领域。ASIP(专用指令集处理器)是SoC的一个重要模块,其性能、灵活性、设计复杂度介于专用集成电路和通用处理器之间,在SoC设计中得到广泛应用。
  如何快速有效地为系统定制ASIP处理器是一项极具挑战性的工作。为了找到合适的处理器体系结构,需要在设计初期针对应用进行设计空间搜索,寻找到合适的处理器结构,并用硬件描述语言(HDL)进行硬件实现。传统设计方法是直接使用HDL语言进行硬件设计,但难以实现快速定制处理器的目标。为此,本文探讨了基于体系结构描述语言(ADL)的系统级设计方法,并着重研究系统级综合,用以提高ASIP的设计效率。
1  系统级设计流程
  传统的ASIP设计方法是在处理器的硬件结构层使用HDL进行设计。由于相应的编译器和仿真器与之没有完善的接口,从而导致开发困难。为此,一种基于ADL的系统级设计方法日益成为研究的热点。系统级设计方法以体系结构描述为核心,包括一个完整的开发平台,如图1所示。系统首先针对一组特定的应用及设计约束,分析得到初始的目标体系结构,并用ADL语言描述(包括指令集和结构信息);然后通过ADL开发平台,自动生成软件工具(包括编译器、仿真器、汇编器和连接器)和处理器的RTL级HDL描述;接着,分别在软件和硬件两个方面进行评测,查看评测结果是否满足设计约束。如果不满足,则由设计者对目标体系结构的ADL描述进行修改,再通过开发平台完成软件工具和硬件描述的生成及评测,直到满足设计约束。这时得到目标体系结构对应的软件工具和硬件描述。

  与传统设计方法相比,基于语言的设计方法有如下优点:(1)以语言为核心描述目标体系结构,包括处理器的指令集和结构特征,可作为软件工具开发和硬件设计的共同设计描述。(2)支持ADL语言的开发平台,可针对目标体系结构自动生成软件工具和硬件RTL级描述,减少开发时间。(3)搜索满足设计约束的目标体系结构的过程包含在整个开发流程中。若某种结构的评测结果不满足设计约束,只需修改ADL描述就可以很快生成新的软件工具和硬件描述,开发效率得到提高。
  当需要对ASIP芯片进行物理设计时,RTL级的HDL描述是一个重要的部分。在基于语言的系统级设计中,生成RTL级的HDL描述由开发平台的综合系统完成。利用ADL语言在系统级对处理器结构进行描述,并通过综合系统自动生成硬件RTL级HDL描述,是本文着重讨论的系统级综合方法。
2  体系结构描述语言xpADL
  为了研究ASIP 的系统级设计方法,本文提出一种自行设计的A2IDE开发平台。它基于xpADL[1]描述语言,提供了图形化的用户输入,并根据用户的描述自动生成针对该结构的仿真器、编译器及可综合的RTL级HDL描述。要完成系统级的设计,xpADL语言对目标体系结构的描述必须包括指令集行为和处理器结构信息。实例1使用xpADL对DLX体系结构进行描述,从而说明了xpADL对体系结构的描述方法。
实例1:XPADL对DLX体系结构的描述
  (1)存储系统描述(以通用寄存器为例)
<memory>
   <name>GPR</name>
   <type>regfile</type>
   <width>32</width>
   <size>32</size>
</memory>
  (2)域描述(域即为指令中的某个字段,以操作数域rs为例)
<region_def>
  <name>rs</name>
  <range>
    <high_position>25</high_position>
    <low_position>21</low_position>
  </range>
</region_def>
  (3)变量描述(指令通过变量取得操作数,以变量V_RS为例)
<var>
  <name>V_RS</name>
  <source>
    <memory>GPR</memory>
  </source>
  <vartype>word</vartype>
  <addressmode addressmode_reigon=″rs″
             base_address_at="GPR">
    <addmodetype>register</addmodetype>
  </addressmode>
  <aligned>true</aligned>
  <signed>true</signed>
</var>
  (4)操作描述(以ADD指令为例,描述了指令格式、编码及在EX和WB段的行为)
<opcode>
  <operation>ADD</operation>
  <format>
    <region coding=″000000″ source=″op″/>
    <region source=″rs″/>
    <region source=″rt″/>
    <region source=″rd″/>
    <region coding=″100000″ source=″func″/>
  </format>
  <pipe_behaviour>
    <stage_behaviour>
        <stage_name>EX</stage_name>
        <behaviour>
            writeLatch(ALU_OUTPUT,
            readLatch(SRC1)+readLatch(SRC2));
        </behaviour>
    </stage_behaviour>
    <stage_behaviour>
        <stage_name>WB</stage_name>
        <behaviour>
          write(GPR,readLatch(TARG_REG),
            WORD,0,readLatch(ALU_OUTPUT));
        </behaviour>
    </stage_behaviour>
  </pipe_behaviour>
</opcode>
  (5)流水线结构描述(流水线的各段,流水段之间的锁存器及有公共操作的段行为)
<pipeline_section>
  <stages>
    <stage>IF</stage>
    <stage>ID</stage>
    <stage>EX</stage>
    <stage>MEM</stage>
    <stage>WB</stage>
  </stages>
  <latch>
    <cell>
      <name>IR</name>
      <cell_type>32</cell_type>
    </cell>
    ……
  </latch>
  <stage_behaviour>
    <stage_name>ID</stage_name>
    <behavior>
      if ( (readLatch(ID,LSRC1)==readLatch(EXE,LDST))
         || (readLatch(ID,LSRC2)==readLatch(EXE,LDST))
         || (readLatch(ID,LSRC1)==readLatch(MEM,LDST))
         || (readLatch(ID,LSRC2)==readLatch(MEM,LDST))
      )
         stall(ID);
    </behavior>
  </stage_behavior>
</pipeline_section>
3  硬件综合系统的设计
  硬件实现是ASIP设计流程中重要的一步。在基于体系结构描述语言的系统级综合方法中,综合系统需要把目标体系结构的xpADL描述转换为硬件RTL级HDL描述。下面介绍的xpSyn综合器是A2IDE的综合子系统,根据目标结构的xpADL结构描述和微操作描述,可以生成具有流水线的处理器结构及具体的功能部件描述。整个综合器的框架和内部流程如图2所示。

  综合器内部有三个主要模块:解释器、优化器和分配器,分别进行xpADL向内部表示的转换、内部表示优化以及数据通路和控制通路的生成。指令的行为操作要由功能部件完成。综合器内部提供了一个功能部件库,便于综合器进行数据通路的综合。
3.1 内部表示及优化
  xpADL是基于XML语言的,使用数据绑定(Data-binding)技术可以方便地访问到xpADL描述的任何处理器信息。如存储器位宽、大小等结构信息,很容易直接映射到HDL描述。而xpADL对处理器指令行为的描述是采用类C的语言,为了便于把行为描述转换成硬件操作并进行优化,需要进一步把指令行为描述转换为内部表示。首先,分析每条指令在每个段的微操作描述,在内部使用数据控制流图来表示,从而生成每条指令的数据通路连接和相应的控制信息。图3是实例1中ADD指令在EX段的流图表示。把各条指令对应的数据控制流图合并在一起,就构成了整个处理器的数据通路和相应的控制信息。

  在生成整个数据控制流图之后,需要对内部表示进行优化。xpADL支持int类型变量作为行为描述的临时存储。用户没有在处理器结构描述中定义这些临时存储,所以在生成硬件时,这些临时存储不需要生成寄存器结构。在内部表示中,把这些临时数据节点删除。
3.2 数据通路的综合
  数据通路包括存储系统、功能部件和各种连接线路。综合器的底层提供了基本部件的RTL模型库,用于支持存储部件和功能部件的综合,如寄存器、锁存器、加法器、移位器等。同一类型的部件有多种实现,它们在芯片面积、执行时间、功耗等方面会有所不同。用户根据需要在xpADL中设定不同功能部件的参数,综合器根据用户要求选择特定的实现。
  根据指令的数据控制流图表示,对每个操作分配完功能部件后,便要生成各个端口之间的连线。连接线路是从数据流图中抽取的,每一条边生成一个连接线路。下面是实例1中ADD指令在EX段的连接线路,这些连接线路对应于HDL中信号的连接。
  c1:(ID_EX_SRC1.out,ADDER1.data_in1)
  c2:(ID_EX_SRC2.out,ADDER1.data_in2)
  c3:(ADDER1.result,EX_MEM_ALU_OUT.in)
  在生成端口连接时,会出现多个输出端口对应一个输入端口的情况,这样会产生信号冲突。信号冲突问题可以通过插入多路选择器(MUX)来解决。为了简化多路选择器的插入过程,对每一个产生信号冲突的端口,只插入一个多路选择器,多路选择器输入端口的数目等于引起冲突的信号源数目。多路选择器的插入算法为:在每一个流水段,扫描每个输入端口,若该输入端口对应多个数据源,则需要插入多路选择器。为此建立一个多路选择器的连接,将多路选择器的输出端口连接到该信号冲突的端口。对于每一个数据源端口,生成一个从该端口到多路选择器的连接,并删除原来的连接。直到每个部件的每个输入端口都只对应一个数据源,多路选择器的插入工作便完成了。下面是其算法的具体描述:

3.3 控制通路的综合
  控制通路主要包括译码控制器的生成和流水线控制器的生成二个部分。译码器需要编码输入和控制信息输出,分别从指令编码信息和指令行为控制信息中抽取,综合器为其生成HDL的条件判断语句。指令的编码信息由xpADL各指令<opcode>中的<format>提供,<format>给出了指令的编码格式以及具体的编码。而具体的控制信号是通过分析指令行为得到的,包括功能部件操作控制信号、多路选择器的选通信号。每条指令对应了自己的数据控制流图,图上的每个功能部件的操作控制信号都加入到该指令的控制信息中。在解决信号冲突时引入了多路选择器,把属于某条指令的数据通路对应的多路选择器选通信号加入到该指令的控制信息中。
  在流水线执行过程中会出现各种相关,可以通过暂停或清空部分/整条流水线来解决。xpADL中提供了基本的流水线控制操作,如stall( )、flush( )等,但需要系统设计者描述产生相关的条件。综合器为了支持流水线控制的操作,需要生成流水线控制器。用户描述的条件判断语句转换成HDL条件判断语句,而stall( )和flush( )操作的实现,是通过在锁存器增加流水线控制信号端口以及相应暂停、清空操作来完成的。
4  实验验证
  为了验证从xpADL描述生成RTL级HDL模型的可行性,本文描述了一个具有DLX[3]指令集子集的处理器Mini-
DLX。它具有一条五级的流水线,含有算术逻辑单元和乘法部件。对于通过xpSyn综合器生成的VHDL源码,在没有进行任何手工优化操作的前提下,使用Synopsys公司的逻辑综合工具Design Compiler,对生成的HDL源码进行逻辑综合,得到表1中的参数。同时,使用手工方法直接用VHDL对MiniDLX进行描述,再进行逻辑综合,提取的参数见表1。

  可以看出,使用xpSyn在系统级综合生成的HDL描述与手动描述逻辑综合后得到的性能参数为同一数量级,相差不大,从而说明了这种从系统级ADL描述直接生成HDL描述的方法是可行的。
5  总  结
  以ADL语言为核心的ASIP设计中,系统级综合是很重要的一个部分,它完成ADL描述到RTL级HDL描述的自动转换,协助设计者进行硬件设计。针对xpADL语言在描述处理器结构时的特点,本文提出了体系结构语言的系统级综合方法,用于RTL级处理器模型设计、描述的中间表示、数据通路和控制通路的生成等。实验证明,这种基于体系结构语言的系统级综合方法是可行的。在现有工作的基础上,未来的工作会侧重解决具有多周期部件、中断控制器等处理器结构的综合问题。同时,高效的功能部件分配综合算法也是要研究的一个重要问题。
参考文献
1   Lu L,Li X,Xiong Y et al.XM-ADL,an extensible markup architecture description language.In:ASIC/SOC Conference,15th Annual IEEE International,2002
2   Mclaughlin B.Java and XML Data-binding.O′Reiuy &  Associates Inc,2002
3   Patterson D A,Hennessy J L.Computer Architecture A Quantitative Approach.Morgan Kaufmann Publishers Inc,2001

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。