CN102446086A - 一种可参量化专用指令集处理器设计平台 - Google Patents
一种可参量化专用指令集处理器设计平台 Download PDFInfo
- Publication number
- CN102446086A CN102446086A CN2011102745886A CN201110274588A CN102446086A CN 102446086 A CN102446086 A CN 102446086A CN 2011102745886 A CN2011102745886 A CN 2011102745886A CN 201110274588 A CN201110274588 A CN 201110274588A CN 102446086 A CN102446086 A CN 102446086A
- Authority
- CN
- China
- Prior art keywords
- instruction
- target processor
- module
- data
- selection module
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种可参量化专用指令集处理器设计平台,包括通用寄存器个数选择模块、总线位宽选择模块、数据存储器类型选择模块、程序控制指令选择模块、算术逻辑运算指令选择模块、目标处理器生成模块、可重定向汇编器。本发明对于不同的应用领域,根据用户选择的相关参数,在专用指令集处理器核的结构框架内生成最优的、最节省资源的专用指令集处理器核,缩短了专用指令集处理器的设计周期。可重定向汇编器根据用户选择的参数即可将汇编器定位到目标处理器上,将汇编源程序翻译为目标处理器的机器代码,降低了编程人员的工作量,从而提高了工作效率。
Description
技术领域
本发明属于数字信号处理技术领域,更进一步涉及到一种可参量化专用指令集处理器设计平台。该设计平台对于不同的应用领域,根据用户选择的相关参数,在专用指令集处理器核的结构框架内生成最优的、最节省资源的专用指令集处理器核。
背景技术
专用指令集处理器技术是近几年发展较快的一项技术,它的提出是一项具有重大意义的创新,特别是在嵌入式微处理器领域当中,专用指令集处理器的应用已经成为一种设计趋势。专用指令集处理器的核心思想是针对某种特定的应用领域,开发出与之相对应的专用指令集和体系结构且可以高效运行目标算法的专用处理器。专用指令集处理器的设计一般包括两个方面,硬件结构设计和软件设计即专用汇编器与编译器的设计。
西安电子科技大学申请的专利“适于数字信号处理应用的专用指令集微处理系统”(专利申请号200910021540.7,公开号CN101504599A)公开了一种适于数字信号处理应用的专用指令集微处理系统及设计方法,根据典型数字信号处理应用,采用16位精简指令集微处理器结构进行设计,整个系统包括算术运算单元、通用寄存器单元、数据地址产生单元、程序定序单元、数据存储单元、数据交换寄存器单元。
该专利申请技术的不足之处是专用指令集处理器的硬件结构固定,对于不同的应用领域,该体系结构适应性较差且资源利用率较低,需要人工裁剪才能满足应用要求,延长了专用指令集处理器的设计周期。另外,裁剪后的电路没有专门的汇编器支持,应用此专用指令集处理器需要编写机器代码,增加了编程人员的工作量,降低了工作效率。
发明内容
本发明的目的在于克服上述现有技术的不足,提出一种可参量化专用指令集处理器设计平台。
本发明实现的思路是,提供一种可参量化专用指令集处理器设计平台,对于不同的应用领域,根据用户选择的相关参数,在专用指令集处理器核的结构框架内生成最优的、最节省资源的专用指令集处理器核。
本发明包括通用寄存器个数选择模块、总线位宽选择模块、数据存储器类型选择模块、程序控制指令选择模块、算术逻辑运算指令选择模块、目标处理器生成模块、可重定向汇编器;其中:
通用寄存器个数选择模块用于配置目标处理器的通用寄存器文件,并向目标处理器生成模块传递参数值;
总线位宽选择模块用于配置目标处理器数据总线位宽、数据/程序存储器地址总线位宽,并向目标处理器生成模块传递参数值;
数据存储器类型选择模块用于配置目标处理器数据存储器的类型,并向目标处理器生成模块传递参数值;
程序控制指令选择模块用于裁剪程序控制指令,配置目标处理器硬件电路,并向目标处理器生成模块传递参数值;
算术逻辑运算指令选择模块用于裁剪算术逻辑运算指令,配置目标处理器的功能单元电路,并向目标处理器生成模块传递参数值;
目标处理器生成模块用于接收用户选择的各项参数值,生成并保存目标专用指令集处理器的硬件电路,以硬件描述语言Verilog HDL文件的形式导出;
可重定向汇编器用于用户编写应用程序,并接收用户选定的参数值,将应用程序汇编成目标处理器的机器代码,保存并导出生成的机器代码文件、程序存储器的硬件描述语言Verilog HDL文件、资源使用率文件。
本发明与现有技术相比具有以下优点:
第一、由于本发明在设计专用指令集处理器硬件结构时,采用了参数可选择、指令可裁剪的参量化设计,克服了现有技术中硬件结构固定的不足,本发明可以应用于不同的技术领域,在专用指令集处理器核的结构框架内生成最优、最节省资源的专用指令集处理器核,提高了专用指令集处理器的处理速度与电路资源的利用效率。
第二、由于本发明在设计专用指令集处理器时,提供了一种可参量化设计平台,克服了现有技术中对于不同应用领域需要重新设计专用指令集处理器的不足,本发明用户只需要在设计平台上选择相应的参数即可生成所需的最优目标专用指令集处理器,缩短了专用指令集处理器的设计周期。
第三、由于本发明在设计专用指令集处理器时,提供了可重定向汇编器,克服了现有技术中无法将汇编器定位到不同目标处理器的不足,本发明对于不同应用领域编程人员用汇编语言编写应用程序代码,根据用户选择的参数即可将汇编器定位到目标处理器上,将汇编源程序翻译为目标处理器的机器代码,降低了编程人员的工作量,从而提高了工作效率。
附图说明
图1为本发明的结构图;
图2为利用本发明设计的专用指令集处理器电路结构图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
参照图1,本发明包括通用寄存器个数选择模块、总线位宽选择模块、数据存储器类型选择模块、程序控制指令选择模块、算术逻辑运算指令选择模块、目标处理器生成模块、可重定向汇编器。
通用寄存器个数选择模块用于配置目标处理器的通用寄存器文件,并向目标处理器生成模块传递参数值。通用寄存器个数有8个、16个、32个三种选择,若用于小规模数据处理应用,数据存储器与运算功能单元之间数据交换量小,可选择8或16个寄存器;若用于大规模数据处理应用,数据存储器与运算功能单元之间数据交换量大,可选择32个寄存器。
总线位宽选择模块用于配置目标处理器数据总线位宽、数据/程序存储器地址总线位宽,并向目标处理器生成模块传递参数值。数据总线位宽选择范围为8位、16位、18位、24位、32位,若应用于大规模并行处理的典型应用,数据总线位宽可选择8位、16位、18位;若应用于复杂应用,数据总线位宽可选择24位、32位。数据/程序存储器地址总线位宽选择范围为9位、10位、11位、12位,用户根据具体处理数据量的大小和程序的复杂程度,选择响应的数据/程序地址总线位宽。
数据存储器类型选择模块用于配置目标处理器数据存储器的类型,并向目标处理器生成模块传递参数值。数据存储器类型有单页存储、双页存储两种选择类型。数据的输入/输出若采用乒乓操作,数据存储器选择双页存储类型,否则,数据存储器选择单页存储类型。
程序控制指令选择模块用于裁剪程序控制指令,配置目标处理器硬件电路,并向目标处理器生成模块传递参数值。可供选择的指令为跳转指令,具体包括为“零”跳转、为“负”跳转、有“进位”跳转、有“溢出”跳转、“大于”跳转、“小于”跳转、无条件跳转。在具体应用中,用户在该模块内选择所需的跳转指令,不需要的跳转指令可不选,在产生目标处理器电路时,没有选择的跳转指令就没有相应的执行电路,节省了电路资源。
算术逻辑运算指令选择模块用于裁剪算术逻辑运算指令,配置目标处理器的功能单元电路,并向目标处理器生成模块传递参数值。可供选择的指令为算术运算指令、逻辑运算指令、移位指令、乘指令、乘后累加指令。算术运算指令包括加、带进位加、减、带借位减;逻辑运算指令包括逻辑“非”、逻辑“与”、逻辑“或”、逻辑“异或”;移位指令包括左移、逻辑右移、算术右移、无移位。在具体应用中,该模块指令的裁剪方式同程序控制指令选择模块,用户只需选择所需的运算指令,在产生目标处理器电路时,没有选择的运算指令就没有相应的功能单元电路。
目标处理器生成模块用于接收用户选择的各项参数值,生成并保存目标专用指令集处理器的硬件电路,以硬件描述语言Verilog HDL文件的形式导出。用户选择的各项参数通过平台内部的消息响应函数,对参数进行赋值并保存,这些已赋值的参数通过接口函数控制文件字符流输出的方式,产生并保存目标处理器电路,以硬件描述语言Verilog HDL文件的形式导出。
例如,用户选择数据总线的位宽为18位,平台内部的消息响应函数响应此操作,将数据总线位宽databus变量置为18,通过接口函数中的条件语句if与文件字符流输出语句在硬件描述语言Verilog HDL源文件中参数parameter型变量定义部分产生对应的语句。又如,用户在选择指令时,每一条可裁剪的指令都有一个开关变量来控制执行单元电路的产生,若一条指令的开关变量为“真”时,通过接口函数中的条件语句if与文件字符流输出语句产生该指令相应执行单元电路的硬件描述语言Verilog HDL源代码,若开关变量为“假”时,则不产生该指令执行单元电路的硬件描述语言Verilog HDL源代码。
参照图2,利用本发明设计的目标处理器电路结构包括数据地址产生器、数据存储器、通用寄存器单元、算术运算单元、程序定序器、程序存储器和数据交换接口单元。
程序存储器存放应用程序的指令代码。程序定序器解释程序指令,并向通用寄存器单元、数据地址产生器、算术运算单元和数据交换接口单元发送指令代码。数据地址产生器根据程序定序器发送的指令代码对通用/专用寄存器进行寄存器寻址、对数据存储器进行变址寻址,并将寻址结果发送到数据存储器。数据存储器一方面接收外部发送的待处理数据进行存储,另一方面根据来自数据地址产生器的寻址结果将存储在对应地址中的待处理数据发送给通用寄存器单元,同时接收来自通用寄存器单元的处理后数据进行存储。通用寄存器单元根据程序定序器发送的指令代码,一方面接收来自数据存储器的待处理数据并转发给算术运算单元,另一方面接收经过算术运算单元处理后的数据并转发给数据存储器、数据交换接口单元,同时还要接收来自数据交换接口单元的数据并转发给算术运算单元。数据交换接口单元根据程序定序器发送的指令代码将来自通用寄存器单元的数据进行存储并转发给系统外部,同时又将外部数据转发给通用寄存器单元。算术运算单元根据程序定序器发送的指令代码对来自通用寄存器单元的操作数进行各种运算操作,同时又将运算结果存入通用寄存器单元。
可重定向汇编器用于用户编写应用程序,并接收用户选定的参数值,将应用程序汇编成目标处理器的机器代码,保存并导出生成的机器代码文件、程序存储器的硬件描述语言Verilog HDL文件、资源使用率文件。用户在使用可重定向汇编器进行应用程序开发时,可以新建一个汇编文件进行程序编写,也可以打开已有的汇编源程序。在对程序进行汇编之前,同样地先选择目标处理器的各项参数,将汇编器定位到目标处理器,才能生成正确的目标机器代码文件、程序存储器的硬件描述语言Verilog HDL文件、资源使用率文件。其中,资源使用率文件是用户所写应用程序中各条指令的使用频率。
Claims (7)
1.一种可参量化专用指令集处理器设计平台,其特征在于,包括通用寄存器个数选择模块、总线位宽选择模块、数据存储器类型选择模块、程序控制指令选择模块、算术逻辑运算指令选择模块、目标处理器生成模块、可重定向汇编器;其中:
所述的通用寄存器个数选择模块用于配置目标处理器的通用寄存器文件,并向目标处理器生成模块传递参数值;
所述的总线位宽选择模块用于配置目标处理器数据总线位宽、数据/程序存储器地址总线位宽,并向目标处理器生成模块传递参数值;
所述的数据存储器类型选择模块用于配置目标处理器数据存储器的类型,并向目标处理器生成模块传递参数值;
所述的程序控制指令选择模块用于裁剪程序控制指令,配置目标处理器硬件电路,并向目标处理器生成模块传递参数值;
所述的算术逻辑运算指令选择模块用于裁剪算术逻辑运算指令,配置目标处理器的功能单元电路,并向目标处理器生成模块传递参数值;
所述的目标处理器生成模块用于接收用户选择的各项参数值,生成并保存目标专用指令集处理器的硬件电路,以硬件描述语言Verilog HDL文件的形式导出;
所述的可重定向汇编器用于用户编写应用程序,并接收用户选定的参数值,将应用程序汇编成目标处理器的机器代码,保存并导出生成的机器代码文件、程序存储器的硬件描述语言Verilog HDL文件、资源使用率文件。
2.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的通用寄存器个数选择模块提供8个、16个、32个三种选择。
3.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的总线位宽选择模块在选择总线位宽时,数据位宽选择范围为8位、16位、18位、24位、32位;数据/程序存储器地址总线位宽选择范围为9位、10位、11位、12位。
4.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的数据存储器类型选择模块提供单页存储、双页存储两种选择类型。
5.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的程序控制指令选择模块在选择指令时可供选择的指令为跳转指令。
6.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的算术逻辑运算指令选择模块在选择指令时可供选择的指令为算术运算指令、逻辑运算指令、移位指令、乘指令、乘后累加指令。
7.根据权利要求1所述的一种可参量化专用指令集处理器设计平台,其特征在于,所述的资源使用率文件为用户所写应用程序中各条指令的使用频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102745886A CN102446086A (zh) | 2011-09-15 | 2011-09-15 | 一种可参量化专用指令集处理器设计平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102745886A CN102446086A (zh) | 2011-09-15 | 2011-09-15 | 一种可参量化专用指令集处理器设计平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102446086A true CN102446086A (zh) | 2012-05-09 |
Family
ID=46008608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102745886A Pending CN102446086A (zh) | 2011-09-15 | 2011-09-15 | 一种可参量化专用指令集处理器设计平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102446086A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313615A (zh) * | 2016-06-20 | 2019-02-05 | 瑞典爱立信有限公司 | 用于动态地选择指令集的方法和装置 |
CN110442986A (zh) * | 2019-08-09 | 2019-11-12 | 山东超越数控电子股份有限公司 | 一种基于cpld逻辑代码生成器管理服务器主板的方法 |
CN114968910A (zh) * | 2022-07-29 | 2022-08-30 | 中国人民解放军国防科技大学 | 一种电路功能可裁剪的数字信号处理芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504599A (zh) * | 2009-03-16 | 2009-08-12 | 西安电子科技大学 | 适于数字信号处理应用的专用指令集微处理系统 |
-
2011
- 2011-09-15 CN CN2011102745886A patent/CN102446086A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504599A (zh) * | 2009-03-16 | 2009-08-12 | 西安电子科技大学 | 适于数字信号处理应用的专用指令集微处理系统 |
Non-Patent Citations (2)
Title |
---|
刘仍稳: "ASIP的流水线以及参量化设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
吴圣宁,李思昆: "重定向编译器的研究进展和趋势", 《计算机科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313615A (zh) * | 2016-06-20 | 2019-02-05 | 瑞典爱立信有限公司 | 用于动态地选择指令集的方法和装置 |
CN109313615B (zh) * | 2016-06-20 | 2022-09-16 | 瑞典爱立信有限公司 | 用于动态地选择指令集的方法和装置 |
CN110442986A (zh) * | 2019-08-09 | 2019-11-12 | 山东超越数控电子股份有限公司 | 一种基于cpld逻辑代码生成器管理服务器主板的方法 |
CN114968910A (zh) * | 2022-07-29 | 2022-08-30 | 中国人民解放军国防科技大学 | 一种电路功能可裁剪的数字信号处理芯片 |
CN114968910B (zh) * | 2022-07-29 | 2022-10-21 | 中国人民解放军国防科技大学 | 一种电路功能可裁剪的数字信号处理芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086816B2 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US11307873B2 (en) | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging | |
US10445234B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features | |
US10564980B2 (en) | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator | |
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
US10558575B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10416999B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10417175B2 (en) | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator | |
US10380063B2 (en) | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator | |
US20190303297A1 (en) | Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
US20190095369A1 (en) | Processors, methods, and systems for a memory fence in a configurable spatial accelerator | |
Ye et al. | CHIMAERA: A high-performance architecture with a tightly-coupled reconfigurable functional unit | |
US20190101952A1 (en) | Processors and methods for configurable clock gating in a spatial array | |
US20190004994A1 (en) | Processors and methods for pipelined runtime services in a spatial array | |
US11029958B1 (en) | Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator | |
US10459866B1 (en) | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator | |
US10853073B2 (en) | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator | |
EP2056211B1 (en) | Reconfigurable coprocessor architecture template for nested loops and programming tools | |
US11907713B2 (en) | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator | |
Abdelhamid et al. | A highly-efficient and tightly-connected many-core overlay architecture | |
CN102446086A (zh) | 一种可参量化专用指令集处理器设计平台 | |
Abdelhamid et al. | MITRACA: A next-gen heterogeneous architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120509 |