CN101561833B - 专用指令集处理器的设计方法 - Google Patents
专用指令集处理器的设计方法 Download PDFInfo
- Publication number
- CN101561833B CN101561833B CN200910031327A CN200910031327A CN101561833B CN 101561833 B CN101561833 B CN 101561833B CN 200910031327 A CN200910031327 A CN 200910031327A CN 200910031327 A CN200910031327 A CN 200910031327A CN 101561833 B CN101561833 B CN 101561833B
- Authority
- CN
- China
- Prior art keywords
- model
- instruction
- processor
- lisa
- behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
一种专用指令集处理器处理器的设计方法是一种在芯片设计之初就进行精确性能评估的方法,并且是提前具体应用的测试,使设计流程加快并且减少因芯片性能达不到要求而重新设计的可能性。其方法是在设计前期建立LISA的处理器模型,通过LISA模型生成相应的软件工具,并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期精确的AHB总线模型、EMI模型、SDRAM模型;通过修改处理器的模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法;通过扩展平台上模块的模型,直接在模型上进行验证,加快处理器的设计周期。
Description
技术领域
本发明涉及处理器的设计方法,尤其是一种专用指令集处理器的设计方法,属于嵌入式微处理器设计领域。
背景技术
目前传统的处理器设计是一种串行设计方法,首先是处理器结构的定义,进行软硬件划分,决定哪些功能由硬件实现;其次是根据软硬件划分的结果,定义处理器的指令集;同时,软件工程师也开始设计配套的工具链。硬件设计和软件工具链设计是基本独立的,设计方法完全不同,因此很容易产生硬件的性能和软件的性能不一致的现象。最后系统工程师搭建系统进行性能测试。由于传统的处理器设计软硬件之间没有达到很好的协同设计,并且软硬件的划分也是设计人员根据经验完成,如果最终性能未能达到要求,整个设计工作需要重新进行,严重影响产品的上市时间。此外,市场上出现的可配置处理器,只是单一的扩展其指令集来实现不同的配置,属于半定制处理器,这样的处理器灵活性比较低。
发明内容
本发明的目的在于提供一种专用指令集处理器周期级精确模型的设计方法,它是一种快速软硬件划分的搜索方法,能够在处理器设计之初就进行最优软硬件的划分,建立处理器的LISA周期精确模型,使软件工具链自动生成,并且具体应用的程序设计也不需要等到硬件设计完成后才能调试,因此可以加快设计流程,并且能够精确的评估将要设计出来的处理器的性能。
为实现上述目的,本发明采取的技术方案是:一种专用指令集处理器的设计方法,其特征在于:在设计前期建立LISA处理器模型,通过LISA处理器模型生成相应的软件工具,并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期精确的AHB总线模型、EMI模型、SDRAM模型;其中,LISA处理器模型、EMI模型连接在AHB总线模型上,LISA处理器模型是AHB总线模型上的主设备(master)、EMI模型是AHB总线模型上的从设备(slave);SDRAM模型接到EMI模型上;通过修改LISA处理器模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法;通过扩展平台上已经建立的LISA处理器模型、AHB总线模型、EMI模型、SDRAM模型,直接在模型上进行验证,加快处理器的设计周期。。
包括以下步骤:
1)建立LISA处理器模型首先需要设计基本指令集的LISA处理器模型,包括资源模型、结构模型、指令集模型;其中基本指令集采用树形结构,包括:加法减法指令、乘法乘加指令、移位指令、数据MOVE指令以及程序控制指令;
2)设计AHB总线、EMI和SDRAM周期精确模型:AHB总线模型中的仲裁器使用的算法是时间片轮转算法;EMI模型内部包含一个8级深度的写缓存,为了保证数据的一致性,只有当写缓存为空时,EMI才会从SDRAM读取数据;SDRAM模型使用两个三维数组存储数据,其中第一维代表块(bank),第二维代表行,第三维代表列,它们是进行LISA处理器模型性能评估必要组成部分;
3)把所有的模型在ARM ESL上搭建虚拟硬件原型平台,并在上面运行需要处理的目标应用,并统计目标应用中各个模块的消耗CPU的资源及评估处理器性能,通过评测处理器的性能,来决定是否可以进行硬件设计;
4)修改LISA处理器模型:在指令集的树形结构中加入新的扩展指令的节点,使用改进后处理器模型在虚拟原型平台上进行性能的评估。
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模型则可以显示的指明这些信息。
本发明的优点及有益效果:本发明方法是一种在芯片设计之初就能够通过搜索所有的软硬件的划分,找到最合适具体应用的划分,能够在资源、性能、功耗等方面在设计之初就能够找到最佳的平衡。减少通过经验和手工进行软硬件划分存在的不确定性,减少因为最终芯片达不到性能而重新设计的可能性,加快了处理器的设计周期,属于全定制处理器范畴。本发明在建立周期精确级模型的基础上,并且可以。它的主要优势是在芯片设计之初就使用虚拟原型平台,还可以精确的评估多核情况下系统的性能,通过搜索具体应用的不同划分方法,把不同的模块分别使用不同的处理器执行,获得最优的划分方法和最优的性能。
本发明的专用指令集处理器周期精确级模型设计及性能评估方法,在对MP3解码算法进行设计专用指令集处理器的过程如下。下表所示,设计过程中处理器的性能评估(20帧的MP3解码):
周期数 | 66MHZ频率下的性能(秒) | |
基本指令集(16位指令) | 95,471,232 | 1.45 |
+32位数据读写指令 | 84,530,376 | 1.28 |
+32加减指令 | 65,056,338 | 0.99 |
+32位乘法指令 | 51,256,123 | 0.78 |
+32位乘加指令 | 40,215,951 | 0.61 |
+扩展4条特殊指令 | 29,176,132 | 0.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资源消耗。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
参看图1,传统的处理器设计是一种串行的设计的流程,需要硬件工程师、软件工程师和系统工程师协同完成,但是正是因为分开完成硬件的设计、软件的设计,使得软硬件设计间很容易出现不一致性。如图2,本发明的方法是在前期建立LISA的处理器模型,通过LISA模型生成相应的软件工具,减少出现软硬件不一致的可能性。并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,可以通过修改处理器的模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法,并且可以通过扩展平台上模块的模型,增加系统的功能。并且具体应用的验证也不需要等到硬件完成之后,直接可以在模型上进行验证,加快了处理器的设计流程。
本发明的设计流程见图2:
第一步,完成基本处理器的周期精确级模型的设计,包括结构模型、资源模型和指令模型。实现的指令集也是处理器的基本指令:加减法、乘法乘加、数据MOVE指令、移位指令和程序控制指令。
第二步,生成相应的工具链:汇编器、链接器和调试器。
第三步,直接设计需要完成的应用的汇编代码。
第四步,设计系统需要的其它模块的周期精确级模型,如AHB模型、EMI模型、SDRAM模型。在ARM ESL上搭建与真实系统相同的虚拟原型平台,并进行性能的测试,并统计解码过程中各个模块占用CPU的资源情况;
第五步,根据具体应用的各个模块的算法和CPU资源的占用情况,将最优价值的部分使用特殊指令完成,有效的提高完成应用的效率,并在虚拟原型平台上重新进行系能测试。
第六步,以MP3解码系统为例,在虚拟原型平台上搭建ARM7TDMI处理器模型和已设计的处理器模型的双核平台,通过把MP3解码算法中的不同模块分别在两个处理器上运行,获得最优的分割方法,达到最优的解码结果。
上述周期精确级LISA处理器模型、AHB模型、EMI模型和SDRAM模型设计的步骤如下:a)处理器模型:包括资源模型、结构模型、指令集模型。资源和结构都是在主操作中定义的,指令集模型是采用树形结构,从根节点到叶节点。结构资源定义处理器流水线操作;资源模型定义处理器内部使用的存储空间,在哈佛结构中,需要定义两组存储空间:指令存储空间和数据存储空间;b)模型中流水线运行的指令预取、译码、执行等单元的模型设计。完成设计存储空间的读写函数、指令的反汇编函数等;c)设计指令集的树形结构中的每个节点,包含组成段、编码段、语法段以及指令的行为段;d)搭建ARM ESL虚拟原型平台需要的其它周期精确级模型,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%,成为指令集扩展的目标。
Claims (3)
1.一种专用指令集处理器的设计方法,其特征在于:在设计前期建立LISA处理器模型,通过LISA处理器模型生成相应的软件工具,并在ARM ESL上搭建与真实硬件性能相仿的虚拟原型平台,包括设计平台需要的周期精确的AHB总线模型、EMI模型、SDRAM模型;其中,LISA处理器模型、EMI模型连接在AHB总线模型上,LISA处理器模型是AHB总线模型上的主设备、EMI模型是AHB总线模型上的从设备;SDRAM模型接到EMI模型上;通过修改LISA处理器模型,搜索出各种不同情况下的性能,获得最优的软硬件划分方法;通过扩展平台上已经建立的LISA处理器模型、AHB总线模型、EMI模型、SDRAM模型,直接在模型上进行验证,加快处理器的设计周期。
2.根据权利要求1所述专用指令集处理器的设计方法,其特征在于包括以下步骤:
1)建立LISA处理器模型首先需要设计基本指令集的LISA处理器模型,包括资源模型、结构模型、指令集模型;其中基本指令集采用树形结构,包括:加法减法指令、乘法乘加指令、移位指令、数据MOVE指令以及程序控制指令;
2)设计AHB总线、EMI和SDRAM周期精确模型:AHB总线模型中的仲裁器使用的算法是时间片轮转算法;EMI模型内部包含一个8级深度的写缓存,为了保证数据的一致性,只有当写缓存为空时,EMI才会从SDRAM读取数据;SDRAM模型使用两个三维数组存储数据,其中第一维代表块,第二维代表行,第三维代表列,它们是进行LISA处理器模型性能评估必要组成部分;
3)把所有的模型在ARM ESL上搭建虚拟硬件原型平台,并在上面运行需要处理的目标应用,并统计目标应用中各个模块的消耗CPU的资源及评估处理器性能,通过评测处理器的性能,来决定是否可以进行硬件设计;
4)修改LISA处理器模型:在指令集的树形结构中加入新的扩展指令的节点,使用改进后处理器模型在虚拟原型平台上进行性能的评估。
3.根据权利要求2所述专用指令集处理器的设计方法,其特征在于:
LISA处理器模型需要设计一个主操作,包含结构段、资源段和主操作行为段,它是LISA处理器模型的入口,与指令相独立,用字符串“main”标示,其中:
主操作结构段采用字符串“structure”进行声明,用来描述周期精确模型的结构,定义锁存器的类型以及描述处理器的流水线结构;
主操作资源段使用字符串“resources”进行声明,模型中有两类资源:采用C/C++语言定义的资源,预定义模块中需要使用的数据结构;采用LISA语言定义的资源,定义模型使用的寄存器、存储器模型;
主操作行为段定义包括LISA处理器模型的初始化行为、重启行为、指令预取行为,反汇编行为以及终止行为,它是为了生成描述LISA处理器模型运行时的变化,以及生成配套工具链;
指令集的描述,LISA采用树形结构描述处理器的指令,包含一个或多个指令树,每个指令树中所有指令的宽度必须一致,并且都在根指令中进行指定,它是操作树的入口,主操作行为段中隐式的引用根指令,再通过根指令引用指令树中的其它指令;指令树中的每个节点都包含组成段、语法段、编码段和指令行为段,分别描述指令组成信息、汇编语法信息、行为以及时序信息,形成指令图、行为图、语法图;组成段采用字符串“composition”进行声明,它是例化当前操作引用的子操作,包含两种规则:或规则和与规则,或规则是在所有被引用的子操作属性中进行选择;与规则是结合所有的子操作的的所有属性;编码段使用字符串“coding”进行声明,描述了指令字中操作码、操作数、标志位各个域的编码,编码元素由终结符和非终结符组成,终结符可以是“0”、“1”或“x”,“x”表示当前位可以是“0”或“1”;非终结符是定义在当前操作的组成段中的实例的名称,表示引用该子操作中的编码段,语法段采用字符串“syntax”进行声明,描述LISA处理器模型的汇编语法结构;指令行为段使用字符串“behavior”进行声明,采用C语言进行建模,通过使用资源段中的全局资源以及组成段中实例的子操作模拟当前指令的行为,通过把通用指令的行为定义在操作树的较高层,把特定指令的行为放在操作树的较低层,实现指令行为的分层结构;为了对模型进行优化及资源共享,必须建立模型的互斥信息,组成段或规则中的各个子操作必须是互斥的,RTL模型中的互斥信息很难提取,而抽象层次较高的LISA模型则可以显示的指明这些信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910031327A CN101561833B (zh) | 2009-05-08 | 2009-05-08 | 专用指令集处理器的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910031327A CN101561833B (zh) | 2009-05-08 | 2009-05-08 | 专用指令集处理器的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101561833A CN101561833A (zh) | 2009-10-21 |
CN101561833B true CN101561833B (zh) | 2012-09-05 |
Family
ID=41220635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910031327A Active CN101561833B (zh) | 2009-05-08 | 2009-05-08 | 专用指令集处理器的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101561833B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231180B (zh) * | 2011-07-30 | 2014-05-28 | 张鹏 | 处理器指令编码可重定义的方法 |
CN105957044B (zh) * | 2016-06-03 | 2018-10-02 | 金陵科技学院 | 具有asip核心的图像融合红外热像仪 |
CN107688469B (zh) * | 2016-12-23 | 2020-02-11 | 北京国睿中数科技股份有限公司 | 兼顾通用指令和专用指令的可重构计算装置 |
CN107688704A (zh) * | 2017-08-25 | 2018-02-13 | 金陵科技学院 | 基于Petri网模型的ASIP行为逻辑综合方法 |
CN113515348B (zh) * | 2021-07-16 | 2023-11-14 | 江苏师范大学 | 一种基于时机动作流的模拟器建模方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810373B1 (en) * | 1999-08-13 | 2004-10-26 | Synopsis, Inc. | Method and apparatus for modeling using a hardware-software co-verification environment |
CN1716189A (zh) * | 1999-05-13 | 2006-01-04 | Arc国际美国控股公司 | 设计用户可定制的处理器的方法以及装置 |
-
2009
- 2009-05-08 CN CN200910031327A patent/CN101561833B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716189A (zh) * | 1999-05-13 | 2006-01-04 | Arc国际美国控股公司 | 设计用户可定制的处理器的方法以及装置 |
US6810373B1 (en) * | 1999-08-13 | 2004-10-26 | Synopsis, Inc. | Method and apparatus for modeling using a hardware-software co-verification environment |
Also Published As
Publication number | Publication date |
---|---|
CN101561833A (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101561833B (zh) | 专用指令集处理器的设计方法 | |
Cai et al. | Retargetable profiling for rapid, early system-level design space exploration | |
CN109189479A (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
CN103329097A (zh) | 工具生成器 | |
CN104091092A (zh) | 大规模电力系统小干扰稳定性的特征值分析系统 | |
CN103262081A (zh) | 用于驱动从架构优化到物理设计闭合的设计收敛的基于集成数据模型的框架 | |
Zuo et al. | A polyhedral-based systemc modeling and generation framework for effective low-power design space exploration | |
CN101826016A (zh) | 支持多核并行程序设计的可视化建模及代码框架生成方法 | |
CN106650086A (zh) | 基于fluent软件的间接空冷系统数值模拟平台 | |
CN103098058A (zh) | 根据算法和规格的自动最佳集成电路生成器 | |
CN104020982A (zh) | 具有高效返回预测能力的分支目标缓冲器 | |
CN111143038A (zh) | Risc-v架构微处理器内核信息模型建模及生成方法 | |
CN105631135A (zh) | 基于abaqus基坑开挖快速建模分析系统及其应用方法 | |
CN102541738B (zh) | 加速多核cpu抗软错误测试的方法 | |
CN109683962A (zh) | 一种指令集模拟器流水线建模的方法及装置 | |
Carrington et al. | Applying an automated framework to produce accurate blind performance predictions of full-scale hpc applications | |
Anuradha et al. | Efficient workload characterization technique for heterogeneous processors | |
Basu et al. | High level synthesis from Sim-nML processor models | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
CN113569419B (zh) | 一种液体火箭发动机三维总装模型快速生成系统及方法 | |
CN107704650A (zh) | 采用adl可执行规约的asip设计方法 | |
CN111143208A (zh) | 基于处理器技术辅助fpga实现ai算法的验证方法 | |
CN111177836B (zh) | 海洋工程设计数据的获取方法、系统、介质及设备 | |
Shah et al. | A lightweight-system-level power and area estimation methodology for application specific instruction set processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |