CN102662635A - 超长指令字变长指令实现方法及实现该方法的处理器 - Google Patents

超长指令字变长指令实现方法及实现该方法的处理器 Download PDF

Info

Publication number
CN102662635A
CN102662635A CN2012100767086A CN201210076708A CN102662635A CN 102662635 A CN102662635 A CN 102662635A CN 2012100767086 A CN2012100767086 A CN 2012100767086A CN 201210076708 A CN201210076708 A CN 201210076708A CN 102662635 A CN102662635 A CN 102662635A
Authority
CN
China
Prior art keywords
processor
instruction
execution units
long instruction
instructions
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
CN2012100767086A
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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN2012100767086A priority Critical patent/CN102662635A/zh
Publication of CN102662635A publication Critical patent/CN102662635A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

一种超长指令字变长指令实现方法及实现该方法的处理器,该方法是首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,然后将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成复杂的计算操作,该处理器是采用多发射技术,在其多个独立的硬件执行单元之间存在数据交互行为,本发明在多个执行单元之间增加数据交互的能力,使多条指令能够并行地被分发到多个执行单元中,从而提高了执行效率,通过本发明能够突破指令编码长度限制,用同一时钟周期并行执行的多条指令来实现复杂的计算操作,扩展了指令编码空间,增强了处理器的数据处理能力。

Description

超长指令字变长指令实现方法及实现该方法的处理器
技术领域
本发明属于指令编码架构领域,涉及对复杂计算操作指令编码的拆分,特别涉及一种超长指令字变长指令实现方法及实现该方法的处理器。
背景技术
对于采用固定长度或有限长度指令编码的处理器架构,一些复杂的计算操作由于指令编码长度的限制而无法用一条指令来实现,必须将这些复杂的计算操作拆分为互相有数据依赖关系的多条简单指令。
依据指令集架构来分类,处理器架构可分为复杂指令集计算(CISC,Complex Instruction Set Computing)和精简指令集计算(RISC,ReducedInstruction Set Computing)两种。
在CISC架构的处理器中,往往采用可变长度的指令,很容易用单条指令来实现复杂的计算操作。然而对于RISC架构的处理器来说,它的指令编码一般具有固定的长度,每条指令的功能也较为简单。通常情况下,RISC处理器的每条指令的长度不超过32bit,这是由指令编码空间和可执行代码体积两个因素决定的,采用32bit或16bit的指令编码,能够在指令编码空间和代码体积之间取得较好的均衡。如清华大学微电子所DSP实验室自主研发的第三代数字信号处理器Magnolia采用32bit固定长度的指令编码,而该实验室自主研发的第二代数字信号处理器Lily则采用16bit和32bit混合长度的指令编码方式。
类似RISC架构这种固定长度或有限长度的指令编码方式,为其带来一个问题,就是一些复杂的计算操作,由于指令编码长度的限制,无法用一条简单的指令来实现。如对32/64bit位宽的立即数或地址的操作,复数运算、向量运算、加/解密、通信、多媒体等领域中包含多个操作数的复杂计算操作,对内存中的数据进行复杂操作等。
在传统的采用固定长度或有限长度指令编码的处理器设计中,为了实现这些复杂的计算操作,往往把这些操作拆分为互相有数据依赖关系的多条简单指令。由于数据依赖关系的存在,这些指令必须按照选择顺序,在多个时钟周期内顺次执行,无法在单个时钟周期内完成。如果不对这些复杂的计算操作进行拆分,而是像CISC处理器那样定义不规则长度的指令来实现,则不仅会破坏处理器指令集的一致性,还会对处理器的取指、译码、分发等硬件逻辑设计造成较大影响,甚至可能成为关键路径,降低处理器的性能。
当今的处理器架构设计中,为了提高处理器的计算能力,往往使用多发射(Multiple Issue)技术来实现指令级并行(ILP,Instruction LevelParallelism)。多发射技术可通过在处理器中设计一系列独立的硬件执行单元来实现,多个硬件执行单元可以并行地执行不同的指令。根据数据依赖关系判定和指令并行性判定方式的不同,又可以把采用了多发射技术的处理器架构分为超标量(Superscalar)、超长指令字(VLIW,Very Long InstructionWord)、显式并行指令计算(EPIC,Explicitly Parallel Instruction Computing)等。如清华大学微电子所DSP实验室自主研发的第二代和第三代数字信号处理器都是采用了多发射技术的VLIW架构处理器,第二代的Lily处理器具有6个独立的硬件执行单元,第三代的Magnolia处理器具有8个独立的硬件执行单元,即能够实现最多6条或8条指令的并行执行。
发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种超长指令字变长指令实现方法及实现该方法的处理器,解决了复杂的计算操作难以用单条指令实现的问题。
为了实现上述目的,本发明采用的技术方案是:
一种超长指令字变长指令实现方法,首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到采用多发射技术的处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成计算操作,所述的简单指令是指这些指令符合处理器的固定长度或有限长度的指令编码规则,该组在同一个时钟周期并行执行的有数据依赖关系的多条简单指令视为一条超长指令。
所述多个硬件执行单元之间存在数据交互行为。
所述互相有数据依赖关系的多条简单指令是这些指令之间存在RAW(Read After Write)、WAW(Write After Write)或WAR(Write After Read)类型的数据相关性。
一种实现所述超长指令字变长指令实现方法的处理器,采用多发射技术,并且在处理器的多个硬件执行单元之间增加了数据交互,所述的数据交互行为用于传递中间计算结果、寄存器值或控制信息。
与现有技术相比,本发明提供的优点是:
1)允许采用固定长度或有限长度指令编码的处理器以此种方式来突破指令编码长度限制,实现复杂的计算操作;
2)采用本发明的解决方案,可以减少不规则指令编码对处理器的取指、译码、分发逻辑设计的不良影响;
3)本发明能够使处理器处理复杂计算操作的周期数大幅缩短,从而增强了处理器的并行计算能力,提高了处理器的性能;
附图说明
图1为本发明的方法示意图。
图2为本发明实施例中传统方式向寄存器写入64bit立即数。
图3为本发明实施例中采用本发明方法的处理器在单周期执行64bit立即数指令。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
以清华大学微电子所DSP实验室自主研发的第三代数字信号处理器Magnolia为例,它是一款VLIW架构的处理器。Magnolia处理器中共有8个执行单元,并采用了32位定长指令编码,如图1所示。对于VLIW架构的处理器来说,各条指令的数据依赖关系是由编译器来判定的,编译器能够在满足各种硬件资源限制的条件下,把没有数据依赖关系的指令安排到同一个时钟周期并行地执行。在实际执行过程中,处理器对指令并行性的判定则采用了该处理器特有的“功能单元升序”的方式来判定。
由此可见,Magnolia处理器完全具有本发明实现的条件:a、采用32bit固定长度的指令编码;b、有多个硬件执行单元,实现了多发射技术。
在此基础上,以一个典型的64bit立即数指令为例,描述本发明的具体实施方式。
首先,对复杂的计算操作进行拆分。64bit立即数指令要完成向寄存器中写入一个64位数据的任务,然而一条指令只有有限的32bit,无法同时容纳功能单元、目的寄存器、指令操作码和这个64bit的立即数。在不损害Magnolia处理器的编码方式和指令并行性判定原则的条件下,传统的拆分方式是将此操作拆分成4条独立的指令,每条指令都向同一个目的寄存器写入64bit立即数的一部分。由于这几条指令的目的寄存器是同一个,所以它们之间存在数据依赖关系,只能由同一个执行单元按先后顺序执行,如图2所示。
采用本发明的拆分方式为,仍将此操作拆分为4条独立指令,它们使用同一个目的寄存器,因而仍存在数据依赖关系。但是这4条独立指令被安排到不同的执行单元,这样才能够利用处理器的多发射技术,实现并行的分发和执行。Magnolia处理器共有AAMMDDFF共8个执行单元,本实施例中的4条独立指令,分别被编码到A、M、M、D四个执行单元之中。
其次是实现硬件执行单元的数据交互。传统意义的硬件执行单元之间没有耦合,不能够进行数据交互。在本发明的方案中,多个硬件执行单元之间允许进行必要的数据交互行为。如对于64bit立即数指令的示例来说,被编码到A、M、M、D四个执行单元的4条独立指令,将被并行地分发和执行,在执行过程中,A、M、M、D四个执行单元之间进行数据交互,将4条指令中的数据片断进行拼合,最终组合成一个完整的64bit数据,写入目的寄存器中。处理器局部结构如图3所示。
通过图3的实现方式,使得处理器能够在单个时钟周期内处理64bit立即数的写入问题,与传统的执行方式相比,提高了执行效率。
由于复杂的计算操作被拆分成多条独立的指令后,虽然存在数据依赖关系,仍可以在同一时刻并行地执行,因此这样的多条连续指令可以视为一个整体,即特殊的“长指令”,相对于处理器32bit定长指令编码而言,即实现了变长指令。
实现本发明所述超长指令字变长指令实现方法的多发射技术处理器,在其处理器硬件执行单元之间增加用于传递中间计算结果、寄存器值或控制信息等功能的数据交互行为,该数据交互行为的目的是为了解决存在数据依赖关系的多条指令的并行执行。
最简单的数据交互行为是使用直连的数据线路来传输参与计算的必要数据,包括中间计算结果、寄存器值或控制信息等。例如在64bit立即数指令中使用直连的16bit位宽的数据线路将四部分16bit数据合并到一起,得到最终的64bit结果。而为了实现更复杂的计算操作,可能需要更为复杂的数据交互行为,如更大位宽的数据线路或更多次的数据交换等形式。

Claims (5)

1.一种超长指令字变长指令实现方法,首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,其特征在于,将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到采用多发射技术的处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成计算操作,所述的简单指令是指这些指令符合处理器的固定长度或有限长度的指令编码规则,该组在同一个时钟周期并行执行的有数据依赖关系的多条简单指令视为一条超长指令。
2.根据权利要求1所述超长指令字变长指令实现方法,其特征在于,所述多个硬件执行单元之间存在数据交互行为。
3.根据权利要求1所述超长指令字变长指令实现方法,其特征在于,所述互相有数据依赖关系的多条简单指令是指这些指令之间存在RAW(ReadAfter Write)、WAW(Write After Write)或WAR(Write After Read)类型的数据相关性。
4.一种实现权利要求1所述超长指令字变长指令实现方法的处理器,采用多发射技术,其特征在于,在其处理器多个独立的硬件执行单元之间存在数据交互行为。
5.根据权利要求4所述的处理器,其特征在于,所述的数据交互行为用于传递中间计算结果、寄存器值或控制信息。
CN2012100767086A 2012-03-21 2012-03-21 超长指令字变长指令实现方法及实现该方法的处理器 Pending CN102662635A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012100767086A CN102662635A (zh) 2012-03-21 2012-03-21 超长指令字变长指令实现方法及实现该方法的处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100767086A CN102662635A (zh) 2012-03-21 2012-03-21 超长指令字变长指令实现方法及实现该方法的处理器

Publications (1)

Publication Number Publication Date
CN102662635A true CN102662635A (zh) 2012-09-12

Family

ID=46772136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100767086A Pending CN102662635A (zh) 2012-03-21 2012-03-21 超长指令字变长指令实现方法及实现该方法的处理器

Country Status (1)

Country Link
CN (1) CN102662635A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298487A (zh) * 2014-10-11 2015-01-21 张鹏 处理器指令执行部件模块化设计及模块组合的方法
WO2015024482A1 (zh) * 2013-08-19 2015-02-26 上海芯豪微电子有限公司 变长指令字处理器系统和方法
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备
CN111295641A (zh) * 2017-11-07 2020-06-16 高通股份有限公司 使用宽度减小vliw处理器的vliw指令处理的系统和方法
CN111857832A (zh) * 2020-07-15 2020-10-30 国家电网有限公司能源互联网技术研究院 一种超长指令插入判断方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061780A (en) * 1997-01-24 2000-05-09 Texas Instruments Incorporated Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
CN1409210A (zh) * 2001-09-20 2003-04-09 松下电器产业株式会社 处理器、编译装置与编译方法、存储介质
US7127590B1 (en) * 1999-06-02 2006-10-24 Canon Kabushiki Kaisha Reconfigurable VLIW processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061780A (en) * 1997-01-24 2000-05-09 Texas Instruments Incorporated Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
US7127590B1 (en) * 1999-06-02 2006-10-24 Canon Kabushiki Kaisha Reconfigurable VLIW processor
CN1409210A (zh) * 2001-09-20 2003-04-09 松下电器产业株式会社 处理器、编译装置与编译方法、存储介质

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015024482A1 (zh) * 2013-08-19 2015-02-26 上海芯豪微电子有限公司 变长指令字处理器系统和方法
US10140126B2 (en) 2013-08-19 2018-11-27 Shanghai Xinhao Microelectronics Co. Ltd. Variable length instruction processor system and method
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备
CN104298487A (zh) * 2014-10-11 2015-01-21 张鹏 处理器指令执行部件模块化设计及模块组合的方法
WO2016054964A1 (zh) * 2014-10-11 2016-04-14 张鹏 处理器指令执行部件模块化设计及模块组合的方法
CN111295641A (zh) * 2017-11-07 2020-06-16 高通股份有限公司 使用宽度减小vliw处理器的vliw指令处理的系统和方法
US11663011B2 (en) 2017-11-07 2023-05-30 Qualcomm Incorporated System and method of VLIW instruction processing using reduced-width VLIW processor
CN111295641B (zh) * 2017-11-07 2024-05-31 高通股份有限公司 使用宽度减小vliw处理器的vliw指令处理的系统和方法
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法
CN110018848B (zh) * 2018-09-29 2023-07-11 广州安凯微电子股份有限公司 一种基于risc-v的混合混算系统及方法
CN111857832A (zh) * 2020-07-15 2020-10-30 国家电网有限公司能源互联网技术研究院 一种超长指令插入判断方法及系统
CN111857832B (zh) * 2020-07-15 2023-10-20 国家电网有限公司能源互联网技术研究院 一种超长指令插入判断方法及系统

Similar Documents

Publication Publication Date Title
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
CN102662635A (zh) 超长指令字变长指令实现方法及实现该方法的处理器
CN105389158B (zh) 数据处理系统、编译器、处理器的方法和机器可读介质
EP3350708B1 (en) Dense read encoding for dataflow isa
KR101710116B1 (ko) 프로세서, 메모리 관리 장치 및 방법
US20160378499A1 (en) Verifying branch targets
US10095519B2 (en) Instruction block address register
Hu et al. Using dynamic binary translation to fuse dependent instructions
US11977891B2 (en) Implicit program order
CN102004719A (zh) 支持同时多线程的超长指令字处理器结构
CN105359129A (zh) 用于提供用于基因组测序和比对的族群计数功能的方法、装置、指令以及逻辑
CN103995827B (zh) MapReduce计算框架中的高性能排序方法
CN103761075A (zh) 一种粗粒度动态可重构数据规整控制单元结构
Sharifian et al. Chainsaw: Von-neumann accelerators to leverage fused instruction chains
CN204790975U (zh) 数据通路流水线
US7461235B2 (en) Energy-efficient parallel data path architecture for selectively powering processing units and register files based on instruction type
EP3350690A1 (en) Implicit program order
CN103218207B (zh) 基于单/双发射指令集的微处理器指令处理方法及系统
Qun et al. Assessment of ecosystem energy flow and carrying capacity of swimming crab enhancement in the Yellow River estuary and adjacent waters
Zhang et al. ZIPPER: Exploiting tile-and operator-level parallelism for general and scalable graph neural network acceleration
CN202720631U (zh) 基于单/双发射指令集的微处理器指令处理系统
Sato et al. Importance of single-core performance in the multicore era
TWI740860B (zh) 基於截斷的確定性有限自動機利用硬體過濾器施行複雜正規表示法樣式匹配的方法與設備
CN101042641B (zh) 一种具有动态提交流水线功能的数字信号处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120912