CN101833435A - 基于传输触发架构可配置处理器指令冗余消除方法 - Google Patents

基于传输触发架构可配置处理器指令冗余消除方法 Download PDF

Info

Publication number
CN101833435A
CN101833435A CN201010150063A CN201010150063A CN101833435A CN 101833435 A CN101833435 A CN 101833435A CN 201010150063 A CN201010150063 A CN 201010150063A CN 201010150063 A CN201010150063 A CN 201010150063A CN 101833435 A CN101833435 A CN 101833435A
Authority
CN
China
Prior art keywords
immediately
instruction
instruction word
territory
long
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
Application number
CN201010150063A
Other languages
English (en)
Inventor
郭炜
鲁超
王粟
魏继增
史再峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201010150063A priority Critical patent/CN101833435A/zh
Publication of CN101833435A publication Critical patent/CN101833435A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明公开了一种基于传输触发架构的可配置处理器中指令冗余消除的方法,该处理器的指令字格式包括若干个普通子指令槽,其中,普通子指令槽包括条件位、源域以及目的域;子指令槽如果存放空子指令则变成空操作槽;该方法通过复用空操作槽,进行指令冗余消除。与现有技术相比,本发明设计了一种新的基于TTA架构处理器的指令字格式,去掉了传统TTA架构指令字的长立即数槽,通过充分复用空操作槽来存放长立即数,有效地减少传统TTA架构指令字中大量存在的空操作,从而有效的增加代码的密度,减小指令存储器的大小。

Description

基于传输触发架构可配置处理器指令冗余消除方法
技术领域
本发明属于嵌入式处理器设计技术领域,特别是涉及基于传输触发架构的可配置处理器设计领域。
背景技术
基于传输触发架构(Transport Triggered Architecture,TTA)的处理器是由荷兰Delft大学的Henk Corporaal教授提出来的。传统的CISC、RISC、VLIW架构的处理器均是通过指定操作来编程的。例如ADD r1,r2,r3这条指令,先将r2和r3寄存器中的值相加,然后送入r1寄存器中,因此我们称此类处理器架构为操作触发处理器架构。TTA的核心思想是利用数据传输来触发操作,即任何数据在通过总线写入功能单元FU(Function Unit)的特定寄存器的同时会触发一次完整的操作。
基于传输触发架构的处理器由很多的功能单元FU、控制器(CTRL,Controller)构成,每个功能单元FU包含三种基本寄存器:操作数寄存器(operand register),触发寄存器(trigger register)和结果寄存器(result register)。功能单元FU和控制器(CTRL通过多条总线相连,如图1所示,为一个包含4条总线和5个功能单元FU的TTA架构处理器示意图。在编程时,只需指定数据在功能单元FU间的传输方向,而由控制单元CTL负责取指令、译码以及控制每一个功能单元FU从各个总线中读写数据。功能单元FU可以是一个乘法器(MUL)、加法器(ADD)、运算单元(ALU)、通用寄存器(GPR),还可以是一个存取单元(LD/ST)。TTA架构处理器中的功能单元FU的选择是由应用的复杂程度所决定的,并且FU的数量和功能单元类型以及总线数量等都是可以配置的。而基于TTA架构处理器的总线数量则决定了整个处理器的并行度。
传统的TTA架构的指令字格式如图2所示,包括并行子指令槽slot 1·slot n和长立即数槽LI,并行子指令槽的个数由处理器的总线数量决定,长立即数槽的位宽由指令中长立即数的大小和数据总线的位宽决定。并行子指令由源域和目的域构成:源域决定了源寄存器的标号(S)或短立即数(SI),目的域决定了目的寄存器的标号(D),而源域和目的域的宽度是由功能单元FU中的寄存器及通用寄存器的数量所决定的。因此,如果指令字中有长立即数,则指令字位宽度可以表示成公式1
l=(s+d)×n+w    公式1
其中l是指令字的位宽,s是源域的位宽,d是目的域的位宽,n代表指令中操作的个数,即子指令槽的个数,w是长立即数槽的位宽。
对于指令级并行的可配置处理器,由于其高性能及可扩展性,被广泛应用于片上系统(SoC)中,尤其是在数字信号处理领域。TTA架构作为超长指令字(VLIW,VeryLong Instruction Word)架构的超集,具有指令级并行的特点。但低代码密度以及需要较大的指令存储空间是基于TTA架构处理器的主要问题。由于功能单元FU数量有限,所有的操作不可能在同一时间内全部执行,因此这就产生了许多的空操作(NOP);而且,由于长立即数太长而不能放入子指令槽中,因此需要引进额外的子指令槽空间。
为了解决上述两个问题,基于字典编码、哈夫曼编码等的指令压缩方法可以用来减少代码量从而减少指令存储空间。但是这些指令压缩的方法需要额外的硬件电路,因此本发明引进了一种新的而非指令压缩的指令冗余消除的方法,此种方法对TTA指令字中的空操作槽进行了充分地复用,克服了上述现有技术的缺陷。
发明内容
基于上述技术问题,本发明提出了一种新的基于传输触发架构的可配置处理器指令字以及指令冗余消除的方法,基于传输触发架构的可配置处理器,对其指令字中存在的一些空操作槽进行复用,以存放长立即数,达到缩短指令字长度的目的。
本发明提出了一种基于传输触发架构的可配置处理器中指令字格式,该处理器的指令字格式包括若干个普通子指令槽,其中:普通子指令槽包括条件位、源域以及目的域;普通子指令槽如果存放空子指令则变成空操作槽;
指令字的位宽
l=(c+s+d)×n
其中,l是指令字的位宽,c是条件位的位宽,s是源域的位宽,d是目的域的位宽,n代表指令中操作的个数,即子指令槽的个数;
在对指令字进行编码的过程中,决定源域中存放内容的条件位,其位宽c
Figure GDA0000020694980000021
其中,lw是长立即数的位宽,sw是短立即数的位宽;
指令冗余消除方法包括以下步骤:
步骤1,对于输入的含有立即数的指令字,先判断立即数是否是长立即数,如果不是长立即数,那么直接存放在源域中并标记条件位;如果是长立即数,则截取与源域位宽相等的数,并放入源域中,标记条件位,余下长立即数其他部分,执行步骤2;
步骤2,判断此指令字中是否有空操作槽,如果此指令字中没空操作槽,那么在紧接着的本条指令字的下面加一条新的指令字,将没有带立即数的子指令转存到新指令字中,这样本条指令字就产生了空操作槽,执行步骤3;如果此指令字中有空操作槽,执行步骤3;
步骤3,判断能否存入空操作槽中。如果能够存放,则将部分长立即数存入空操作槽中,并作好条件位的标记;如果不能存放,继续截取,得到与源域和目的域位宽总数相等的数以及余下部分,转到步骤2执行;
所述源域包括源寄存器标号、短立即数或长立即数低位部分,所述长立即数低位部分是将长立即数按照由低位到高位的顺序,截取得到与源域位宽相等的数L-LI。
所述含有长立即数指令字,其指令译码流程包括,当指令译码电路检测到条件位有长立即数标记存在时,把长立即数的各个部分被送入到寄存器,然后由译码电路将这些长立即数的各个部分组合起来送进数据总线之中。
与现有技术相比,本发明设计的新的TTA架构处理器的指令字格式,去掉了传统TTA架构指令字的长立即数槽,通过充分复用空操作槽来存放长立即数,有效地减少传统TTA架构指令字中大量存在的空操作,从而有效的增加代码的密度,减小指令存储器的大小。
附图说明
图1为具有4条总线和5个功能单元FU的TTA架构处理器;
图2为传统的TTA架构指令字格式示意图;
图3为本发明的基于传输触发架构的可配置处理器的指令字示意图;
图4为本发明的复用空操作槽存入长立即数的流程图;
图5为传统TTA架构指令与冗余消除后的指令对比图;
图6为本发明的含有长立即数的指令译码流程图。
具体实施方式
以下结合附图对本发明提出的基于传输触发架构的可配置处理器的指令字以及指令冗余消除的方法进行详细地介绍。
如图3所示,为本发明提出的一种新的基于传输触发架构的可配置处理器的指令字格式,该指令字包括若干个普通子指令槽,普通子指令槽分为条件位C、目的域D以及源域(该域可能存放源寄存器标号S、短立即数SI或长立即数低位部分L-LI);普通子指令槽由于存入空子指令变成空操作槽。
上述新指令字去掉了传统传输触发架构指令字中的长立即数槽。处理器的总线数量决定了指令字中的并行子指令槽slot数量。每个并行的子指令槽包括条件位C,源域,目的域。条件位C决定源域中存放的是源寄存器标号S、短立即数SI或长立即数低位部分L-LI;目的域则决定了目的寄存器标号D。指令字的宽度可以表示成公式2。
l=(c+s+d)×n    公式2
其中l是指令字的位宽,c是条件位的位宽,s是源域的位宽,d是目的域的位宽,n代表指令中操作的个数,即子指令槽的个数。
在对指令字进行编码的过程中,条件位C决定了源域中存放的内容,其位宽c可以用公式3来表示。
Figure GDA0000020694980000041
公式3
其中lw是长立即数位宽,sw是短立即数位宽。
对条件位C进行编码,编号分别决定源域里存放的是源域的标号S,或是短立即数SI,或是长立即数的低位部分L-LI。在复用空操作槽时,源域和目的域都存放长立即数其他部分P-LI。
如图4所示为本发明的复用空操作槽存入长立即数的流程图,该流程的操作包括以下步骤:当指令字中含有立即数并且是短立即数时,将其直接存放在源域中,并作好条件位C的标记;如果是长立即数,则先将长立即数按照由低位到高位的顺序,截取与源域位宽(s)相等的长立即数,并将其放入源域中,同时标记此子指令条件位C;若指令字中有空操作槽并且被截取之后余下的长立即数其他部分P-LI能够放入空操作槽中,则将其存放在空操作中,并标记此子指令的条件位C;如果本条指令字中没有空操作槽,则在紧接着的本条指令字的下面加一条新的指令字,将没有带立即数的子指令转存到新指令字中,本条指令字中空出来的空操作存放长立即数其他部分P-LI;若仍然不能存放余下的长立即数其他部分P-LI,则继续截取与源域和目的域位宽总数(s+d)相等的数,并将此数以及剩余部分数按上述方法寻找空操作槽并存放。
C语言程序先通过编译器前端得到指令的串行汇编代码,编译器后端得到并行汇编代码,再通过汇编器对并行的汇编代码进行指令冗余消除,最后转化为二进制代码。
以下为本发明的最佳实施方式:
参照图3和图4,下面说明一种复用空操作槽存放长立即数的最佳实施方式。
步骤1
对于输入的含有立即数的指令字,先判断立即数是否是长立即数。如果不是长立即数,那么直接存放在源域中并标记条件位(C)。如果是长立即数,则截取与源域位宽(s)相等的数,并放入源域中,标记条件位(C),余下长立即数其他部分(P-LI),执行步骤2.
步骤2
判断此指令字中是否有空操作槽。如果此指令字中没空操作槽,那么在紧接着的本条指令字的下面加一条新的指令字,将没有带立即数的子指令转存到新指令字中,这样本条指令字就产生了空操作槽,执行步骤3。如果此指令字中有空操作槽,执行步骤3。
步骤3
判断能否存入空操作槽中。如果能够存放,则将部分长立即数存入空操作槽中,并作好条件位C的标记。如果不能存放,继续截取,得到与源域和目的域位宽总数(s+d)相等的数以及余下部分,转到步骤2执行。
图5为一个传统TTA架构指令与冗余消除后指令的对比图。图中的标记含义为:slot:子指令槽,LI:长立即数,C:条件位,D:目的寄存器标号,L-LI:长立即数低位部分,P-LI:长立即数其他部分。图··中(1)是传统的指令字格式,其中指令字2包含3条子指令、1条空操作和长立即数槽LI,由于子指令6有长即数LI,所以将长立即数LI放在长立即数槽中。图··中(2)是经过指令冗余消除之后的指令格式。执行指令冗余消除时,将长立即数其他部分P-LI存放在本条指令字的空操作中,这里假设长立即数在被截取与源域位宽(s)相等的数之后,余下的长立即数其他部分P-LI能够存放在空操作槽之中。
图6为含有长立即数的指令译码流程图,当指令译码电路检测到条件位C有长立即数标记存在时,把子指令中长立即数的各个部分被送入到寄存器,然后由译码电路将这些长立即数的各个部分组合起来送进数据总线之中。

Claims (3)

1.一种基于传输触发架构可配置处理器指令冗余消除方法,其特征在于,该处理器的指令字格式包括若干个普通子指令槽,其中:普通子指令槽包括条件位、源域以及目的域;普通子指令槽如果存放空子指令则变成空操作槽;
指令字的位宽
l=(c+s+d)×n
其中,l是指令字的位宽,c是条件位的位宽,s是源域的位宽,d是目的域的位宽,n代表指令中操作的个数,即子指令槽的个数;
在对指令字进行编码的过程中,决定源域中存放内容的条件位,其位宽c
Figure FDA0000020694970000011
其中,lw是长立即数的位宽,sw是短立即数的位宽;
该方法通过的复用指令字中存在的空操作槽存放长立即数,进行指令冗余消除,包括以下步骤:
步骤(1),对于输入的含有立即数的指令字,先判断立即数是否是长立即数,如果不是长立即数,那么直接存放在源域中并标记条件位;如果是长立即数,则截取与源域位宽相等的数,并放入源域中,标记条件位,余下长立即数其他部分,执行步骤(2);
步骤(2),判断此指令字中是否有空操作槽,如果此指令字中没空操作槽,那么在紧接着的本条指令字的下面加一条新的指令字,将没有带立即数的子指令转存到新指令字中,这样本条指令字就产生了空操作槽,执行步骤(3);如果此指令字中有空操作槽,执行步骤(3);
步骤(3),判断能否存入空操作槽中。如果能够存放,则将部分长立即数存入空操作槽中,并作好条件位的标记;如果不能存放,继续截取,得到与源域和目的域位宽总数相等的数以及余下部分,转到步骤(2)执行。
2.如权利要求1所述的基于传输触发架构可配置处理器指令冗余消除方法,所述源域包括源寄存器标号、短立即数或长立即数低位部分,所述长立即数低位部分是将长立即数按照由低位到高位的顺序,截取得到与源域位宽相等的数L-LI。
3.如权利要求1所述的基于传输触发架构可配置处理器指令冗余消除方法,所述含有长立即数的指令字,其指令译码流程包括,当指令译码电路检测到条件位有长立即数标记存在时,把长立即数的各个部分被送入到寄存器,然后由译码电路将这些长立即数的各个部分组合起来送进数据总线之中。
CN201010150063A 2010-04-19 2010-04-19 基于传输触发架构可配置处理器指令冗余消除方法 Pending CN101833435A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010150063A CN101833435A (zh) 2010-04-19 2010-04-19 基于传输触发架构可配置处理器指令冗余消除方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010150063A CN101833435A (zh) 2010-04-19 2010-04-19 基于传输触发架构可配置处理器指令冗余消除方法

Publications (1)

Publication Number Publication Date
CN101833435A true CN101833435A (zh) 2010-09-15

Family

ID=42717515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010150063A Pending CN101833435A (zh) 2010-04-19 2010-04-19 基于传输触发架构可配置处理器指令冗余消除方法

Country Status (1)

Country Link
CN (1) CN101833435A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102231102A (zh) * 2011-06-16 2011-11-02 天津大学 基于余数系统的rsa密码处理方法及协处理器
CN103348317A (zh) * 2011-11-07 2013-10-09 辉达公司 减少64位计算机程序循环中符号扩展指令的需求驱动算法
CN104049952A (zh) * 2013-03-15 2014-09-17 三星电子株式会社 直接和嵌套依赖指令的调度器中重置推测源就绪的方法
CN105573716A (zh) * 2015-12-15 2016-05-11 西安电子科技大学 基于传输触发结构体系的专用指令集处理器
CN109753307A (zh) * 2017-11-03 2019-05-14 北京思朗科技有限责任公司 指令存储方法
CN116841618A (zh) * 2023-07-04 2023-10-03 上海耀芯电子科技有限公司 Tta处理器的指令压缩方法和系统,解压方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304312A (zh) * 2008-06-26 2008-11-12 复旦大学 一种适用于精简指令集处理器的加密单元

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304312A (zh) * 2008-06-26 2008-11-12 复旦大学 一种适用于精简指令集处理器的加密单元

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SU WANG等: "An instruction redundancy removal method on a transport triggered architecture processor", 《INTEGRATED CIRCUITS, ISIC "09. PROCEEDINGS OF THE 2009 12TH INTERNATIONAL SYMPOSIUM ON》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102231102A (zh) * 2011-06-16 2011-11-02 天津大学 基于余数系统的rsa密码处理方法及协处理器
CN102231102B (zh) * 2011-06-16 2013-08-07 天津大学 基于余数系统的rsa密码处理方法及协处理器
CN103348317A (zh) * 2011-11-07 2013-10-09 辉达公司 减少64位计算机程序循环中符号扩展指令的需求驱动算法
CN103348317B (zh) * 2011-11-07 2017-02-15 辉达公司 减少64位计算机程序循环中符号扩展指令的需求驱动算法
CN104049952A (zh) * 2013-03-15 2014-09-17 三星电子株式会社 直接和嵌套依赖指令的调度器中重置推测源就绪的方法
CN104049952B (zh) * 2013-03-15 2018-10-16 三星电子株式会社 直接和嵌套依赖指令的调度器中重置推测源就绪的方法
CN105573716A (zh) * 2015-12-15 2016-05-11 西安电子科技大学 基于传输触发结构体系的专用指令集处理器
CN109753307A (zh) * 2017-11-03 2019-05-14 北京思朗科技有限责任公司 指令存储方法
CN109753307B (zh) * 2017-11-03 2020-08-11 北京思朗科技有限责任公司 指令存储方法
CN116841618A (zh) * 2023-07-04 2023-10-03 上海耀芯电子科技有限公司 Tta处理器的指令压缩方法和系统,解压方法和系统
CN116841618B (zh) * 2023-07-04 2024-02-02 上海耀芯电子科技有限公司 Tta处理器的指令压缩方法和系统,解压方法和系统

Similar Documents

Publication Publication Date Title
CN101833435A (zh) 基于传输触发架构可配置处理器指令冗余消除方法
KR101754462B1 (ko) 동적 비순차적 프로세서 파이프라인을 구현하기 위한 방법 및 장치
EP2531929B1 (en) A tile-based processor architecture model for high efficiency embedded homogneous multicore platforms
CN101344840B (zh) 一种微处理器及在微处理器中执行指令的方法
US8918623B2 (en) Implementing instruction set architectures with non-contiguous register file specifiers
US8291196B2 (en) Forward-pass dead instruction identification and removal at run-time
CN102508635B (zh) 一种处理器装置及其循环处理方法
WO2005093562A1 (ja) データ処理装置、データ処理プログラム、およびデータ処理プログラムを記録した記録媒体
CN100555216C (zh) 一种数据处理方法及处理器
EP1023660A1 (en) Processor utilizing template field instruction encoding
CN101763247B (zh) 利用可编程转移表快速转移的系统和方法
CN101739235A (zh) 将32位dsp与通用risc cpu无缝混链的处理器装置
CN102270112A (zh) Risc微处理器指令译码电路
CN103116485A (zh) 一种基于超长指令字专用指令集处理器的汇编器设计方法
US6023756A (en) Instruction processing method and system for variable-length instructions
CN101194228A (zh) 微处理器中的有效子程序返回
US5958043A (en) Superscalar processor with forward map buffer in multiple instruction parallel issue/execution management system
CN102262611A (zh) 一种16位的risc cpu系统结构
CN102402418A (zh) 处理器
CN101114217A (zh) 对复杂指令译码生成微码的译码装置和方法
CN114661355A (zh) Risc架构处理器的寄存器架构、寄存器组及risc架构处理器
US10409599B2 (en) Decoding information about a group of instructions including a size of the group of instructions
US20020116599A1 (en) Data processing apparatus
CN102637149A (zh) 一种处理器及其运行方法
US8131978B2 (en) Restoring plural instructions for same cycle execution from partial instructions and combined supplementing portions generated for compact storage

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: 20100915