专用指令集处理器的设计方法

文档序号:6481771阅读:199来源:国知局
专利名称:专用指令集处理器的设计方法
技术领域
本发明涉及处理器的设计方法,尤其是一种专用指令集处理器的设计方法,属于嵌入 式微处理器设计领域。
背景技术
目前传统的处理器设计是一种串行设计方法,首先是处理器结构的定义,进行软硬件 划分,决定哪些功能由硬件实现;其次是根据软硬件划分的结果,定义处理器的指令集; 同时,软件工程师也开始设计配套的工具链。硬件设计和软件工具链设计是基本独立的, 设计方法完全不同,因此很容易产生硬件的性能和软件的性能不一致的现象。最后系统工 程师搭建系统进行性能测试。由于传统的处理器设计软硬件之间没有达到很好的协同设 计,并且软硬件的划分也是设计人员根据经验完成,如果最终性能未能达到要求,整个设 计工作需要重新进行,严重影响产品的上市时间。此外,市场上出现的可配置处理器,只 是单一的扩展其指令集来实现不同的配置,属于半定制处理器,这样的处理器灵活性比较 低。

发明内容
本发明的目的在于提供一种专用指令集处理器周期级精确模型的设计方法,它是一种 快速软硬件划分的搜索方法,能够在处理器设计之初就进行最优软硬件的划分,建立处理 器的LISA周期精确模型,使软件工具链自动生成,并且具体应用的程序设计也不需要等 到硬件设计完成后才能调试,因此可以加快设计流程,并且能够精确的评估将要设计出来 的处理器的性能。
为实现上述目的,本发明采取的技术方案是 一种专用指令集处理器处理器的设计方
法,其特征在于在设计前期建立LISA的处理器模型,通过LISA模型生成相应的软件工 具,并在ARMESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期 精确的AHB总线模型、EMI模型、SDRAM模型;其中,LISA处理器的模型、EMI模型连接 在AHB上,LISA处理器模型是A朋上的master、 EMI模型是AHB上的slave; SDRAM模型 接到EMI模型上;通过修改LISA处理器的模型,搜索出各种不同情况下的性能,获得最 优的软硬件划分方法;通过扩展平台上已经建立的LISA处理器模型、AHB总线模型、EMI 模型、SDRAM模型,直接在模型上进行验证,加快处理器的设计周期。 包括以下步骤
1) 设计基本指令集的LISA处理器模型,包括资源模型、结构模型、指令集模型;其 中基本指令集采用树形结构,包括加法减法指令、乘法乘加指令、移位指令、数据M0VE 指令以及程序控制指令;
2) 设计A朋总线、EMI和SDRAM周期精确模型AHB模型中的仲裁器使用的算法是时 间片轮转算法;EMI模型内部包含一个8级深度的写缓存,为了保证数据的一致性,只有 当写缓存为空时,EMI才会相应对外的读操作;SDRAM模型使用两个三位数组存储数据,其中第一维代表bank,第二维代表行,第三位代表列,它们是进行LISA处理器模型性能 评估必要组成部分;
3) 把所有的模型在ARM ESL上搭建虚拟硬件原型平台,并在上面运行需要处理的目 标应用,并统计目标应用中各个模块的消耗CPU的资源及评估处理器性能,通过评测处理 器的性能,来决定是否可以进行硬件设计;
4) 修改LISA处理器模型在指令集的树形结构中加入新的扩展指令的节点,使用改 进后处理器模型在虚拟原型平台上进行性能的评估,以MP3解码为例,通过使用虚拟原型 平台上接入ARM7TDMI处理器模型,获得在ARM7TDMI+主用指令集处理器模型后双核系统 下MP3解码的最后划分,MP3解码中IMDCT和子带综合在专用指令集处理器上运行,其余 模块都在ARM7TDMI处理器上运行;
5) LISA周期精确级模型设计中,加入对流水线的描述,以精确的描述指令的运行状 态,提高模型的仿真精度。
LISA处理器模型需要设计一个主操作,包含结构段、资源段和主操作行为段,它是 LISA处理器模型的入口,与指令相独立,用字符串"main"标示,其中
主操作结构段采用字符串"structure"进行声明,用来描述周期精确模型的结构, 定义锁存器的类型以及描述处理器的流水线结构;
主操作资源段使用字符串"resources"进行声明,模型中有两类资源采用C/C++ 语言定义的资源,主要是预定义模块中需要使用的数据结构;采用LISA语言定义的资源, 主要是模型使用的寄存器、存储器模型;
主操作行为段主要定义处理器的init行为、reset行为、指令预取dispatch行为, 反汇编disassemble行为以及terminate行为等,它是为了生成描述处理器运行时的变化, 以及生成配套工具链;
指令集的描述,LISA采用树形结构描述处理器的指令,可以包含一个或多个指令树, 每个指令树中所有指令的宽度必须一致,并且都在根指令中进行指定,它是操作树的入口 , 主操作行为段中隐式的引用根指令,再通过根指令引用指令树中的其它指令;指令树中的 每个节点都包含组成段、语法段、编码段和行为段,分别描述指令组成信息、汇编语法信 息、行为以及时序信息,形成指令图、行为图、语法图;组成段采用字符串"composition" 进行声明,它是例化当前操作引用的子操作,包含两种规则或规则和与规则,或规则是 在所有被引用的子操作属性中进行选择;与规则是结合所有的子操作的的所有属性;编码 段使用字符串"coding"进行声明,描述了指令字中操作码、操作数、标志位等各个域的 编码,编码元素由终结符和非终结符组成,终结符可以是"0"、 "1"或"x", "x"表示当 前位可以是"0"或"1";非终结符是定义在当前操作的组成段中的实例的名称,表示引 用该子操作中的编码段,语法段采用字符串"syntax"进行声明,描述LISA处理器模型 的汇编语法结构;指令行为段使用字符串"behavior"进行声明,采用C语言进行建模, 通过使用资源段中的全局资源以及组成段中实例的子操作模拟当前指令的行为,通过把通 用指令的行为定义在操作树的较高层,把特定指令的行为放在操作树的较低层,实现指令 行为的分层结构;为了对模型进行优化,特别是资源共享,必须建立模型的互斥信息,如
5组成段或规则中的各个子操作必须是互斥的,RTL模型中的互斥信息很难提取,而抽象层 次较高的LISA模型则可以显示的指明这些信息。
本发明的优点及有益效果:本发明方法是一种在芯片设计之初就能够通过搜索所有的
软硬件的划分,找到最合适具体应用的划分,能够在资源、性能、功耗等方面在设计之初 就能够找到最佳的平衡。减少通过经验和手工进行软硬件划分存在的不确定性,减少因为 最终芯片达不到性能而重新设计的可能性,加快了处理器的设计周期,属于全定制处理器 范畴。本发明在建立周期精确级模型的基础上,并且可以。它的主要优势是在芯片设计之 初就使用虚拟原型平台,还可以精确的评估多核情况下系统的性能,通过搜索具体应用的 不同划分方法,把不同的模块分别使用不同的处理器执行,获得最优的划分方法和最优的 性能。
本发明的专用指令集处理器周期精确级模型设计及性能评估方法,在对MP3解码算法 进行设计专用指令集处理器的过程如下。下表所示,设计过程中处理器的性能评估(20帧 的MP3解码)
周期数66MHZ频率下的性能(秒)
基本指令集(16位指令)95, 471,2321. 45
+ 32位数据读写指令84, 530, 3761.28
+ 32加减指令65, 056, 3380. 99
+ 32位乘法指令51, 256, 1230.78
+ 32位乘加指令40,215, 9510. 61
+扩展4条特殊指令29, 176, 1320. 44
使用专用指令集处理器模型能够精确的评估指令的位宽以及各种指令对具体应用的
影响,如上面的MP3解码算法的性能看出,相对于16位基本指令,使用32位读写指令后 性能提升11. 5%,使用32位加减法指令性能提升23%,使用32位乘加指令性能提升21. 2%, 使用特殊指令后性能提升27. 5%,并且性能已经达到一帧22ms,达到实时性要求的26ms。


图1为传统的处理器设计流程;
图2为釆用本发明中基于LISA语由'设计处理器及ARM ESL性能评估的流程; 图3为LISA处理器模型中行为图、编码图、语法图,以及形成的指令图; 图4为使用基本指令集处理器获得的MP3解码算法各个模块对CPU资源消耗。
具体实施例方式
下面结合附图与具体实施方式
对本发明作进一歩详细描述。
参看图l,传统的处理器设计是一种串行的设计的流程,需要硬件工程师、软件工程 师和系统工程师协同完成,但是正是因为分开完成硬件的设计、软件的设计,使得软硬件
6设计间很容易出现不一致性。如图2,本发明的方法是在前期建立LISA的处理器模型, 通过LISA模型生成相应的软件工具,减少出现软硬件不一致的可能性。并在ARMESL上 搭建与真实硬件性能相仿的虚拟原型平台,可以通过修改处理器的模型,搜索出各种不同 情况下的性能,获得最优的软硬件划分方法,并且可以通过扩展平台上模块的模型,增加 系统的功能。并且具体应用的验证也不需要等到硬件完成之后,直接可以在模型上进行验 证,加快了处理器的设计流程。
本发明的设计流程见图2:
第一步,完成基本处理器的周期精确级模型的设计,包括结构模型、资源模型和指令 模型。实现的指令集也是处理器的基本指令加减法、乘法乘加、数据M0VE指令、移位 指令和程序控制指令。
第二步,生成相应的工具链汇编器、链接器和调试器。
第三步,直接设计需要完成的应用的汇编代码。
第四步,设计系统需要的其它模块的周期精确级模型,如A朋模型、EMI模型、SDRAM 模型。在ARMESL上搭建与真实系统相同的虚拟原型平台,并进行性能的测试,并统计解 码过程中各个模块占用CPU的资源情况;
第五步,根据具体应用的各个模块的算法和CPU资源的占用情况,将最优价值的部分 使用特殊指令完成,有效的提高完成应用的效率,并在虚拟原型平台上重新进行系能测试。
第六步,以MP3解码系统为例,在虚拟原型平台上搭建ARM7TDMI处理器模型和已设 计的处理器模型的双核平台,通过把MP3解码算法中的不同模块分别在两个处理器上运 行,获得最优的分割方法,达到最优的解码结果。
上述周期精确级LISA处理器模型、AHB模型、EMI模型和SDRAM模型设计的步骤如下 a)处理器模型包括资源模型、结构模型、指令集模型。资源和结构都是在主操作中定义 的,指令集模型是采用树形结构,从根节点到叶节点。结构资源定义处理器流水线操作;
资源模型定义处理器内部使用的存储空间,在哈佛结构中,需要定义两组存储空间指令 存储空间和数据存储空间;b)模型中流水线运行的指令预取、译码、执行等单元的模型设 计。完成设计存储空间的读写函数、指令的反汇编函数等;C)设计指令集的树形结构中 的每个节点,包含组成段、编码段、语法段以及指令的行为段;d)搭建ARMESL虚拟原 型平台需要的其它周期精确级模型,AHB模型、EMI模型、SDRAM模型。;e)以MP3解码 为例,完成使用处理器指令设计的MP3解码程序,使用虚拟原型平台可以精确的评估使用 不同的算法得到的解码性能,获得最终各个模块在解码过程中对CPU的资源消耗;f)根 据资源的消耗情况,选择解码过程中对资源消耗最大的部分使用特殊指令完成,这样可以 大幅度的提高性能。
作为本发明的一个实施例,使用32位处理器比使用16位处理器进行MP3的解码性能 提升57. 9%,主要原因是MP3的定点化解码程序大部分是32位的操作,因此16位的处理 器需要多次进行寄存器间,以及寄存器与存储器之间的数据交换,而且16位的乘加指令 不能发挥作用。作为本发明的另一个实施例,经过对MP3解码程序的分析,子带综合是MP3解码中最 消耗资源的部分,而且它主要是向量乘法的集合,所以完成向量乘法这样的特殊指令,性 能提升27. 5%。
图3为LISA处理器模型中行为图、编码图、语法图,以及形成的指令图,它们分别 代表了 LISA处理器模型中的指令行为段、编码段、语法段。它体现了 LISA模型中所有指
令和操作之间的关系。
图4为使用基本指令集LISA处理器模型获得的MP3解码算法各个模块对CPU资源消 耗情况,显示了子带综合模块消耗了最多的CPU资源,约占74.41%,成为指令集扩展的 目标。
权利要求
1、一种专用指令集处理器处理器的设计方法,其特征在于在设计前期建立LISA的处理器模型,通过LISA模型生成相应的软件工具,并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期精确的AHB总线模型、EMI模型、SDRAM模型;其中,LISA处理器的模型、EMI模型连接在AHB上,LISA处理器模型是AHB上的master、EMI模型是AHB上的slave;SDRAM模型接到EMI模型上;通过修改LISA处理器的模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法;通过扩展平台上已经建立的LISA处理器模型、AHB总线模型、EMI模型、SDRAM模型,直接在模型上进行验证,加快处理器的设计周期。
2、 根据权利要求1所述专用指令集处理器处理器的设计方法,其特征在于包括以下 步骤-1)设计基本指令集的LISA处理器模型,包括资源模型、结构模型、指令集模型;其 中基本指令集采用树形结构,包括加法减法指令、乘法乘加指令、移位指令、数据MOVE 指令以及程序控制指令;、2)设计AHB总线、EMI和SDRAM周期精确模型A朋模型中的仲裁器使用的算法是时 间片轮转算法;EMI模型内部包含一个8级深度的写缓存,为了保证数据的一致性,只有 当写缓存为空时,EMI才会相应对外的读操作;SDRAM模型使用两个三位数组存储数据, 其中第一维代表bank,第二维代表行,第三位代表列,它们是进行LISA处理器模型性能 评估必要组成部分;3) 把所有的模型在ARM ESL上搭建虚拟硬件原型平台,并在上面运行需要处理的目 标应用,并统计目标应用中各个模块的消耗CPU的资源及评估处理器性能,通过评测处理 器的性能,来决定是否可以进行硬件设计;4) 修改LISA处理器的模型在指令集的树形结构中加入新的扩展指令的节点,使用 改进后处理器模型在虚拟原型平台上进行性能的评估,以MP3解码为例,通过使用虚拟原 型平台上接入ARM7TDMI处理器模型,获得在ARM7TDMI+主用指令集处理器模型后双核系 统下MP3解码的最后划分,MP3解码中IMDCT和子带综合在专用指令集处理器上运行,其 余模块都在ARM7T函I处理器上运行;5) LISA周期精确级模型设计中,加入对流水线的描述,以精确的描述指令的运行状 态,提高模型的仿真精度。
3、 根据权利要求2所述专用指令集处理器处理器的设计方法,其特征在于LISA处理器模型需要设计一个主操作,包含结构段、资源段和主操作行为段,它是 LISA处理器模型的入口,与指令相独立,用字符串"main"标示,其中主操作结构段采用字符串"structure"进行声明,用来描述周期精确模型的结构, 定义锁存器的类型以及描述处理器的流水线结构;主操作资源段使用字符串"resources"进行声明,模型中有两类资源采用C/C++语言定义的资源,主要是预定义模块中需要使用的数据结构;采用LISA语言定义的资源, 主要是模型使用的寄存器、存储器模型;主操作行为段主要定义包括LISA处理器模型的init行为、reset行为、指令预取 dispatch行为,反汇编disassemble行为以及terminate行为,它是为了生成描述LISA 处理器模型运行时的变化,以及生成配套工具链;指令集的描述,LISA采用树形结构描述处理器的指令,可以包含一个或多个指令树, 每个指令树中所有指令的宽度必须一致,并且都在根指令中进行指定,它是操作树的入口, 主操作行为段中隐式的引用根指令,再通过根指令引用指令树中的其它指令;指令树中的 每个节点都包含组成段、语法段、编码段和行为段,分别描述指令组成信息、汇编语法信 息、行为以及时序信息,形成指令图、行为图、语法图;组成段采用字符串"composition" 进行声明,它是例化当前操作引用的子操作,包含两种规则或规则和与规则,或规则是 在所有被引用的子操作属性中进行选择;与规则是结合所有的子操作的的所有属性;编码 段使用字符串"coding"进行声明,描述了指令字中操作码、操作数、标志位等各个域的 编码,编码元素由终结符和非终结符组成,终结符可以是"0"、 "1"或"x", "x"表示当 前位可以是"0"或"1";非终结符是定义在当前操作的组成段中的实例的名称,表示引 用该子操作中的编码段,语法段采用字符串"syntax"进行声明,描述LISA处理器模型 的汇编语法结构;指令行为段使用字符串"behavior"进行声明,采用C语言进行建模, 通过使用资源段中的全局资源以及组成段中实例的子操作模拟当前指令的行为,通过把通 用指令的行为定义在操作树的较高层,把特定指令的行为放在操作树的较低层,实现指令 行为的分层结构;为了对模型进行优化,特别是资源共享,必须建立模型的互斥信息,如 组成段或规则中的各个子操作必须是互斥的,RTL模型中的互斥信息很难提取,而抽象层 次较高的LISA模型则可以显示的指明这些信息。
全文摘要
一种专用指令集处理器处理器的设计方法是一种在芯片设计之初就进行精确性能评估的方法,并且是提前具体应用的测试,使设计流程加快并且减少因芯片性能达不到要求而重新设计的可能性。其方法是在设计前期建立LISA的处理器模型,通过LISA模型生成相应的软件工具,并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期精确的AHB总线模型、EMI模型、SDRAM模型;通过修改处理器的模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法;通过扩展平台上模块的模型,直接在模型上进行验证,加快处理器的设计周期。
文档编号G06F17/50GK101561833SQ20091003132
公开日2009年10月21日 申请日期2009年5月8日 优先权日2009年5月8日
发明者刘新宁, 麟 戴, 时龙兴, 军 杨, 锋 罗, 谈力立 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1