CN112947999B - 一种精简指令集计算机指令功能扩展的方法及装置 - Google Patents
一种精简指令集计算机指令功能扩展的方法及装置 Download PDFInfo
- Publication number
- CN112947999B CN112947999B CN202110261019.1A CN202110261019A CN112947999B CN 112947999 B CN112947999 B CN 112947999B CN 202110261019 A CN202110261019 A CN 202110261019A CN 112947999 B CN112947999 B CN 112947999B
- Authority
- CN
- China
- Prior art keywords
- instruction
- function
- enhanced
- target
- fixed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006870 function Effects 0.000 claims abstract description 121
- 101100396930 Pseudomonas aeruginosa imm1 gene Proteins 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 101100396933 Pseudomonas aeruginosa (strain ATCC 15692 / DSM 22644 / CIP 104116 / JCM 14847 / LMG 12228 / 1C / PRS 101 / PAO1) imm2 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种精简指令集计算机指令功能扩展的方法及装置,本发明方法包括确定要增强的目标指令功能;使用现有指令集的指令实现目标指令功能,得到对应的固定指令序列;在编译器中实现对目标指令功能进行识别和使用对应的固定指令序列实现;在处理器内部实现对固定指令序列探测并变换为增强指令,所述增强指令为处理器的内部指令、对程序员不可见且不是现有指令集的一部分,在处理器内部实现增强指令的执行。本发明能够在指令集中不增加新的指令、保持指令集兼容性的基础上增强指令集的功能,实现精简指令集中指令功能增强,提高处理器的性能,具有实现简单、使用灵活的优点。
Description
技术领域
本发明涉及处理器微体系结构设计领域,具体涉及一种精简指令集计算机指令功能扩展的方法及装置。
背景技术
精简指令集计算机每条指令的功能相对单一,带来的好处是指令实现简单,相应的硬件实现开销较小。RISC-V是第五代精简指令集的缩写,是目前使用较广泛的一种精简指令集。目前RISC-V指令集对指令为了减小相应指令集的复杂程度,对指令集进行了分类,一个计算机可以根据相应的使用场景,只实现一些指令集。例如在MCU中只实现I类指令,保证了指令集的标准性,同时能够让实现尽量简单,芯片设计成本低,并且实际使用功耗,面积方面具有较强的优势。
RISC-V标准指令集G代表了标准的IMAFD扩展(分别代码整数、多周期乘除、原子、单精度点和双精度浮点指令扩展)和Zicsr、Zifencei扩展,为了软件的兼容性,目前通用领域实现的指令集通常就是G扩展。
指令集在功能上是完整的,但是对于某些程序,可能这些指令的功能还不够强大,即一个相对独立的功能需要多条指令的组合才能完成。这就造成了程序的体积膨胀,同时,指令在执行时也会占用更多执行资源,例如指令队列、发射资源、执行部件等。另外,由于执行延迟等于所有指令的延迟叠加,完成该功能的需要更长的执行延迟。因此,处理器在执行该程序时,性能将受到直接影响。
一种直观的方式就是进行指令功能的扩展,将一个独立的功能,使用一条指令来实现,通过在指令集中增加指令的方式,减少指令数量,缩减指令执行延迟,由此,可以提高处理器执行该指令的性能。但是,这种方式最大的弊端就是破坏了程序的兼容性,加剧了指令集生态系统的碎片化。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种精简指令集计算机指令功能扩展的方法及装置,本发明能够在指令集中不增加新的指令、保持指令集兼容性的基础上增强指令集的功能,实现精简指令集中指令功能增强,提高处理器的性能,具有实现简单、使用灵活的优点。
为了解决上述技术问题,本发明采用的技术方案为:
一种精简指令集计算机指令功能扩展的方法,包括:
1)确定要增强的目标指令功能;
2)使用现有指令集的指令实现目标指令功能,得到对应的固定指令序列;
3)在编译器中实现对目标指令功能进行识别和使用对应的固定指令序列实现;
4)在处理器内部实现对固定指令序列探测并变换为增强指令,所述增强指令为处理器的内部指令、对程序员不可见且不是现有指令集的一部分;
5)在处理器内部实现增强指令的执行。
可选地,步骤1)中确定要增强的目标指令功能在目标精简指令集中包含多条指令。
可选地,步骤1)中确定要增强的目标指令功能为下述两种方式中的一种:方式1,通过正向分析程序的指令功能,分析目标精简指令集实现的指令数和执行延迟,根据指令数和执行延迟选择某一种指令功能作为要增强的目标指令功能;方式2,针对程序采用目标精简指令集的编译结果,参考参照采用其他指令集的编译结果,选择某一种指令功能作为要增强的目标指令功能。
可选地,所述选择某一种指令功能时采用的参数指标包括:指令功能的实现复杂度,所述实现复杂度包括硬件开销,所述硬件开销包括逻辑量、面积、功耗中的至少一种或多种指标;指令功能的延迟,所述延迟是指指令功能需要多少个时钟周期可以完成;指令功能的输入和输出的个数和类型是否超过现有数据通路。
可选地,步骤2)中使用现有指令集的指令实现目标指令功能时,得到对应的固定指令序列中的指令共用目的寄存器。
可选地,步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令时,还包括将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令的步骤。
可选地,步骤5)在处理器内部实现增强指令的执行时,处理器的指令执行步骤包括:
S1)取指令;
S2)在译码前,首先通过操作数对连续的指令探测是否为固定指令序列,若探测到固定指令序列,则判断固定指令序列中指令的目的寄存器是否相同,如果目的寄存器不同,则将固定指令序列变换为增强指令,并保持固定指令序列中共用目的寄存器的上一条指令不变;如果目的寄存器相同,则将固定指令序列变换为增强指令,并将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令;然后在进行指令译码;
S3)针对译码得到的指令进行指令分派;
S4)指令发射;
S5)指令执行,若被执行的指令为增强指令,则通过处理器中对应的逻辑部件执行;
S6)将指令执行结果写回目标寄存器。
可选地,步骤1)中确定要增强的目标指令功能为从一个rs寄存器中二进制比特串中获取特定的比特并放到rd寄存器的低位的二进制比特操作;步骤2)中的现有指令集为RISC-V指令集、且得到对应的固定指令序列包括Slli rd0,rs1,#imm0和Slri rd0,rd0,#imm1两条指令,其中slli为带立即数的逻辑左移指令,slri为带立即数的逻辑右移指令,rd0和rs1均为寄存器,#imm0和#imm1分别为两个立即数;步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令后得到的增强指令包括:nop和Bext rd0,rs1,#imm0,#imm1两条指令,其中nop为空操作指令,Bext为增强指令功能对应的指令增强功能编码指令,#imm0和#imm1分别为两个立即数。
此外,本发明还提供一种精简指令集计算机指令功能扩展的装置,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述精简指令集计算机指令功能扩展的方法的步骤。
可选地,所述微处理器中包含有用于执行增强指令的增强指令执行部件。
和现有技术相比,本发明具有下述优点:
1、性能高。本发明中将多个指令才能完成的功能,使用一个内部增强的指令进行实现,降低了指令执行的延迟,提高了程序执行性能。
2、兼容性好。本发明中的方法,使用现有指令集对新增功能进行表示,保证了程序的兼容性,避免了指令集生态的碎片化。
3、使用灵活。即使没有编译器的支持,对于已经编译好的二进制程序,也可以进行固定序列的探测,从而增强处理器的性能。
附图说明
图1为本发明实施例方法的核心流程示意图。
图2为本发明实施例中实现增强功能指令的固定指令序列指令对比示意图。
图3为本发明实施例中固定指令序列替换为内部指令表示后的指令对比示意图。
图4为本发明实施例中二进制比特截取功能的示意图。
图5为本发明实施例中RISC-V G扩展指令集中实现二进制比特截取功能的相应汇编。
图6为本发明实施例中RISC-V G扩展指令集中实现功能增强指令的序列。
具体实施方式
如图1所示,本实施例精简指令集计算机指令功能扩展的方法包括:
1)确定要增强的目标指令功能;
2)使用现有指令集的指令实现目标指令功能,得到对应的固定指令序列;
3)在编译器中实现对目标指令功能进行识别和使用对应的固定指令序列实现;
4)在处理器内部实现对固定指令序列探测并变换为增强指令,所述增强指令为处理器的内部指令、对程序员不可见且不是现有指令集的一部分;
5)在处理器内部实现增强指令的执行。
一般从程序行为出发,分析程序中使用广泛的功能,确定要增强的目标指令功能。而且步骤1)中确定要增强的目标指令功能在目标精简指令集中包含多条指令,例如包括两条或者更多条。
本实施例中,步骤1)中确定要增强的目标指令功能为下述两种方式中的一种:
方式1,通过正向分析程序的指令功能,分析目标精简指令集实现的指令数和执行延迟,根据指令数和执行延迟选择某一种指令功能作为要增强的目标指令功能;
方式2,针对程序采用目标精简指令集的编译结果,参考参照采用其他指令集的编译结果,选择某一种指令功能作为要增强的目标指令功能。
本实施例中,所述选择某一种指令功能时采用的参数指标包括:指令功能的实现复杂度,所述实现复杂度包括硬件开销,所述硬件开销包括逻辑量、面积、功耗中的至少一种或多种指标;指令功能的延迟,所述延迟是指指令功能需要多少个时钟周期可以完成(可评估增强指令功能的收益);指令功能的输入和输出的个数和类型是否超过现有数据通路。
为了保持指令的兼容性,只能使用现有指令集的指令对需要增强的指令功能进行实现。一般包括多条已有的指令实现对应的功能。通常要求该序列是固定的,即指令的类型和顺序是是固定的,便于编译器和目标处理器实现的简单性。
为了提高目标体系结构指令功能增强的性能,实现指令性能增强的指令序列目的寄存器尽量能够重用,本实施例步骤2)中使用现有指令集的指令实现目标指令功能时,得到对应的固定指令序列中的指令共用目的寄存器。如图2中子图(a)所示,某个增强的指令功能使用Inst0和Inst1实现:Inst0的目的寄存器是rd0,源寄存器是rs1和rs2;Inst1的目的寄存器是rd1,源寄存器为rd0和rs3。在增强指令功能的实现中,需要重用目的寄存器rd0,即Inst1的目的寄存器修改为rd0,如图2中子图(b)所示。由此保证rd0的结果只有Inst1使用,不会有其它指令使用,以便于硬件实现指令功能增强时,可以进行更好地性能优化。
步骤3)在编译器中实现对目标指令功能进行识别和使用对应的固定指令序列实现。此步骤包含源程序编译过程中,识别增强指令的功能的模式,并将该模式使用步骤2)中的固定指令序列进行实现,同时实现目的寄存器的使用优化。
步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令主要是实现将步骤2)中的固定指令序列转换为内部实现的指令增强功能编码,另外,还需要对该固定指令序列进行处理,在提升处理器性能的同时,保证指令流执行的正确性。本实施例中,步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令时,还包括将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令(nop指令)的步骤。对于图2中子图(a)中的指令序列,完成固定指令序列探测后,将转换为图3中子图(a)的指令序列,其中InstE是增强指令的在目标处理器的内部指令。Inst0和Inst1的序列转换为Inst0和InstE后,InstE的源操作数为rs1、rs2和rs3,由此InstE不依赖与Inst0的执行。假设Inst0、Inst1、InstE的执行延迟都是1,那么进行指令功能增强后,该增强的功能延迟从2变为1,可提高程序执行性能。对于图2中子图(b)中的指令序列,由于进行了目的寄存器的重用,Inst0的目的寄存器只有Inst1使用,故在进行指令功能增强后,Inst0的目的寄存器没有指令使用,Inst0可以优化为nop指令(不进行任何操作),如图3中子图(b)所示。那么增强指令后,不但可以将该增强的功能延迟从2变为1,还可以少执行一个指令,减少执行资源的浪费,降低功耗。
最终,通过步骤5)在处理器内部实现增强指令的执行。在目标处理器内部对需要增强的指令功能进行实现。一般包括制定增强指令的内部编码,并在译码、指令分派、指令发射、指令执行阶段、指令写回阶段增加相应的逻辑进行控制和运算实现。本实施例中,步骤5)在处理器内部实现增强指令的执行时,处理器的指令执行步骤包括:
S1)取指令;
S2)在译码前,首先通过操作数对连续的指令探测是否为固定指令序列,若探测到固定指令序列,则判断固定指令序列中指令的目的寄存器是否相同,如果目的寄存器不同,则将固定指令序列变换为增强指令,并保持固定指令序列中共用目的寄存器的上一条指令不变;如果目的寄存器相同,则将固定指令序列变换为增强指令,并将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令;然后在进行指令译码;
S3)针对译码得到的指令进行指令分派;
S4)指令发射;
S5)指令执行,若被执行的指令为增强指令,则通过处理器中对应的逻辑部件执行;
S6)将指令执行结果写回目标寄存器。
下文以RISC-V现有的指令集扩展G作为例子,对本实施例精简指令集计算机指令功能扩展的方法进行进一步的详细说明:
在对C源代码生成的汇编进行分析后发现,当前RISC-V G扩展中缺少对二进制比特的操作。如图4所示,程序中常用的一个操作是从一个rs寄存器中二进制比特串中获取特定的比特,并放到rd寄存器的低位。因此,步骤1)中确定要增强的目标指令功能为从一个rs寄存器中二进制比特串中获取特定的比特并放到rd寄存器的低位的二进制比特操作。
步骤2)中使用现有指令集的指令实现目标指令功能,得到对应的固定指令序列时,由于RISC-V G扩展指令集的限制,对于该功能的实现需要先将该二进制数左移,截掉高位,然后再右移截取低位。也就是如图5中子图(a)所示的指令序列:一个slli(带立即数的逻辑左移指令)指令,接着一个slri指令(带立即数的逻辑右移指令)。这样一个逻辑简单的操作需要两个指令进行实现,操作的延迟为2个时钟周期。两个指令的组合功能需要1个源寄存器和2个立即数(共12bit),可以自然地融合在当前的指令和数据通路中,所以可以考虑对指令集进行功能增强扩展,实现该比特位截取的功能。
为了提高目标体系结构指令功能增强的性能,实现指令性能增强的指令序列目的寄存器尽量能够重用,本实施例步骤2)中使用现有指令集的指令实现目标指令功能时,得到对应的固定指令序列中的指令共用目的寄存器。如图5所示,一般的实现在图5中子图(a)中,没有对slli指令的目的寄存器进行优化。优化实现在图5中子图(b)中,slli和slri的目的寄存器相同。因此,步骤2)中的现有指令集为RISC-V指令集、且得到对应的固定指令序列包括Slli rd0,rs1,#imm0和Slri rd0,rd0,#imm1两条指令,其中slli为带立即数的逻辑左移指令,slri为带立即数的逻辑右移指令,rd0和rs1均为寄存器,#imm0和#imm1分别为两个立即数;在编译器中对该功能进行支持,发现比特截取的操作,生成图5中子图(b)中的指令序列,保证两条指令之间不插入其他指令,并优化目的寄存器的使用,将slli的目的寄存器和slri的目的寄存器置为相同寄存器。
最终,步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令后得到的增强指令包括:nop和Bext rd0,rs1,#imm0,#imm1两条指令,其中nop为空操作指令,Bext为增强指令功能对应的指令增强功能编码指令,#imm0和#imm1分别为两个立即数,图6中子图(b)所示。
步骤5)在处理器内部实现增强指令的执行时,处理器的指令执行步骤包括:
a)取指令。取指令的过程和普通指令处理过程完全相同。
b)译码。在译码前对指令图5中的两类指令序列进行探测和变换。包括:i.探测:探测实现为通过操作数对固定指令序列的判断,具体为对连续两条指令进行判断,通过操作数进行判断。如果某条指令为slli指令,那么通过判断紧跟该指令的下一条指令是否为slri指令就可以实现对图5中子图(b)的中固定指令序列的判断;ii.优化:实现探测之后,还需要判断slli指令的目的寄存器和slri的目的寄存器是否相同,也就是判断指令序列为图5中子图(a)还是图5中子图(b)。iii.变换:如果目的寄存器不同,则将这两条指令变换为图6中子图(a)的内部表示,如果目的寄存器相同,则将这两条指令变换为图6中子图(b)的内部表示。其中bext指令表示从rs1中将imm2和imm3之间的比特截取出来,放到rd寄存器的低位。Bext指令的Imm2和imm3是根据slli指令的imm0和slri的imm1计算所得。而起其中Bext指令仅用于在处理器内部,对程序员不可见,不是指令集的一部分。
c)指令分派。按普通处理器的过程进行指令分派,通常涉及将不同的指令类型分配到不同的执行部件,在指令部件的队列中等待。将slli指令发送到原有的指令部件,nop指令不用发射到指令执行部件,直接完成即可。将bext指令发送到相应的部件。一般来说,bext指令和slli指令操作类似,可以在同一个指令部件进行实现,并且执行延迟实现为一个时钟周期。
d)指令发射。指令在部件的队列中等待源操作数准备好,然后等待被调度。
e)指令执行。Slli指令按原有执行方式执行。Bext指令通过新增的逻辑执行。由于bext执行的功能简单,通常一个时钟周期即可完成,即将slli和slri两条指令串行执行的功能从两个时钟周期的延迟缩短到一个时钟周期,提升了处理器性能。
f)结果写回。Bext结果写到相应的寄存器中,指令完成并提交,结束指令的生命周期。
此外,本实施例还提供一种精简指令集计算机指令功能扩展的装置,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述精简指令集计算机指令功能扩展的方法的步骤。作为一种可选的实施方式,本实施例中微处理器中包含有用于执行增强指令的增强指令执行部件,以提升增强指令的执行效率。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述精简指令集计算机指令功能扩展的方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种精简指令集计算机指令功能扩展的方法,其特征在于,包括:
1)确定要增强的目标指令功能;
2)使用现有指令集的指令实现目标指令功能,得到对应的固定指令序列;
3)在编译器中实现对目标指令功能进行识别和使用对应的固定指令序列实现;
4)在处理器内部实现对固定指令序列探测并变换为增强指令,所述增强指令为处理器的内部指令、对程序员不可见且不是现有指令集的一部分;
5)在处理器内部为目标指令功能增加的逻辑部件实现增强指令的执行;
步骤1)中确定要增强的目标指令功能在目标精简指令集中包含多条指令,步骤1)中确定要增强的目标指令功能为下述两种方式中的一种:方式1,通过正向分析程序的指令功能,分析目标精简指令集实现的指令数和执行延迟,根据指令数和执行延迟选择某一种指令功能作为要增强的目标指令功能;方式2,针对程序采用目标精简指令集的编译结果,参照采用其他指令集的编译结果,选择某一种指令功能作为要增强的目标指令功能。
2.根据权利要求1所述的精简指令集计算机指令功能扩展的方法,其特征在于,所述选择某一种指令功能时采用的参数指标包括:指令功能的实现复杂度,所述实现复杂度包括硬件开销,所述硬件开销包括逻辑量、面积、功耗中的至少一种或多种指标;指令功能的延迟,所述延迟是指指令功能需要多少个时钟周期可以完成;指令功能的输入和输出的个数和类型是否超过现有数据通路。
3.根据权利要求1所述的精简指令集计算机指令功能扩展的方法,其特征在于,步骤2)中使用现有指令集的指令实现目标指令功能时,得到对应的固定指令序列中的指令共用目的寄存器。
4.根据权利要求1所述的精简指令集计算机指令功能扩展的方法,其特征在于,步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令时,还包括将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令的步骤。
5.根据权利要求1所述的精简指令集计算机指令功能扩展的方法,其特征在于,步骤5)在处理器内部实现增强指令的执行时,处理器的指令执行步骤包括:
S1)取指令;
S2)在译码前,首先通过操作数对连续的指令探测是否为固定指令序列,若探测到固定指令序列,则判断固定指令序列中指令的目的寄存器是否相同,如果目的寄存器不同,则将固定指令序列变换为增强指令,并保持固定指令序列中共用目的寄存器的上一条指令不变;如果目的寄存器相同,则将固定指令序列变换为增强指令,并将固定指令序列中共用目的寄存器的上一条指令优化为空操作指令;然后在进行指令译码;
S3)针对译码得到的指令进行指令分派;
S4)指令发射;
S5)指令执行,若被执行的指令为增强指令,则通过处理器中对应的逻辑部件执行;
S6)将指令执行结果写回目标寄存器。
6.根据权利要求1所述的精简指令集计算机指令功能扩展的方法,其特征在于,步骤1)中确定要增强的目标指令功能为从一个rs寄存器中二进制比特串中获取特定的比特并放到rd寄存器的低位的二进制比特操作;步骤2)中的现有指令集为RISC-V指令集、且得到对应的固定指令序列包括Slli rd0,rs1,#imm0和Slri rd0,rd0,#imm1两条指令,其中slli为带立即数的逻辑左移指令,slri为带立即数的逻辑右移指令,rd0和rs1均为寄存器,#imm0和#imm1分别为两个立即数;步骤4)中在处理器内部实现对固定指令序列探测并变换为增强指令后得到的增强指令包括:nop和Bext rd0, rs1, #imm0, #imm1两条指令,其中nop为空操作指令,Bext为增强指令功能对应的指令增强功能编码指令,#imm0和#imm1分别为两个立即数。
7.一种精简指令集计算机指令功能扩展的装置,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~6中任意一项所述精简指令集计算机指令功能扩展的方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~6中任意一项所述精简指令集计算机指令功能扩展的方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110261019.1A CN112947999B (zh) | 2021-03-10 | 2021-03-10 | 一种精简指令集计算机指令功能扩展的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110261019.1A CN112947999B (zh) | 2021-03-10 | 2021-03-10 | 一种精简指令集计算机指令功能扩展的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112947999A CN112947999A (zh) | 2021-06-11 |
CN112947999B true CN112947999B (zh) | 2022-06-28 |
Family
ID=76228630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110261019.1A Active CN112947999B (zh) | 2021-03-10 | 2021-03-10 | 一种精简指令集计算机指令功能扩展的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947999B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018848A (zh) * | 2018-09-29 | 2019-07-16 | 安凯(广州)微电子技术有限公司 | 一种基于risc-v的混合混算系统及方法 |
WO2020138663A1 (ko) * | 2018-12-26 | 2020-07-02 | (주)자람테크놀로지 | 사용자 정의 명령어 셋을 지원하는 하드웨어 고속 연산 결합형 risc-v 기반 연산 장치 및 그 방법 |
CN112214242A (zh) * | 2020-09-23 | 2021-01-12 | 上海赛昉科技有限公司 | 一种risc-v指令压缩方法、系统及计算机可读介质 |
CN112256330A (zh) * | 2020-11-03 | 2021-01-22 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4178278B2 (ja) * | 2004-05-25 | 2008-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ装置、最適化方法、コンパイラプログラム、及び記録媒体 |
CN111399912B (zh) * | 2020-03-26 | 2022-11-22 | 超睿科技(长沙)有限公司 | 一种面向多周期指令的指令调度方法、系统及介质 |
-
2021
- 2021-03-10 CN CN202110261019.1A patent/CN112947999B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018848A (zh) * | 2018-09-29 | 2019-07-16 | 安凯(广州)微电子技术有限公司 | 一种基于risc-v的混合混算系统及方法 |
WO2020138663A1 (ko) * | 2018-12-26 | 2020-07-02 | (주)자람테크놀로지 | 사용자 정의 명령어 셋을 지원하는 하드웨어 고속 연산 결합형 risc-v 기반 연산 장치 및 그 방법 |
CN112214242A (zh) * | 2020-09-23 | 2021-01-12 | 上海赛昉科技有限公司 | 一种risc-v指令压缩方法、系统及计算机可读介质 |
CN112256330A (zh) * | 2020-11-03 | 2021-01-22 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112947999A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027769B (zh) | 使用寄存器访问指令发起指令块执行 | |
US8904153B2 (en) | Vector loads with multiple vector elements from a same cache line in a scattered load operation | |
KR101754462B1 (ko) | 동적 비순차적 프로세서 파이프라인을 구현하기 위한 방법 및 장치 | |
CN101957744B (zh) | 一种用于微处理器的硬件多线程控制方法及其装置 | |
JP3797471B2 (ja) | マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置 | |
US20120060016A1 (en) | Vector Loads from Scattered Memory Locations | |
US20170083320A1 (en) | Predicated read instructions | |
CN101916180A (zh) | Risc处理器中执行寄存器类型指令的方法和其系统 | |
KR20180021812A (ko) | 연속하는 블록을 병렬 실행하는 블록 기반의 아키텍쳐 | |
TW201712544A (zh) | 驗證分支目標 | |
JPH11194939A (ja) | データ処理装置 | |
JP2018500657A5 (zh) | ||
US6950926B1 (en) | Use of a neutral instruction as a dependency indicator for a set of instructions | |
US20130151822A1 (en) | Efficient Enqueuing of Values in SIMD Engines with Permute Unit | |
WO2014090085A1 (en) | Branch-free condition evaluation | |
EP3289444A1 (en) | Explicit instruction scheduler state information for a processor | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
US11366669B2 (en) | Apparatus for preventing rescheduling of a paused thread based on instruction classification | |
WO2012151331A1 (en) | Methods and apparatus for constant extension in a processor | |
CN113703832B (zh) | 一种立即数转移指令的执行方法、装置及介质 | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
CN100444118C (zh) | 基于逻辑发射序号的软、硬件结合指令相关性控制方法 | |
JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
WO2016210023A1 (en) | Decoding information about a group of instructions including a size of the group of instructions | |
US10235167B2 (en) | Microprocessor with supplementary commands for binary search and associated search method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220531 Address after: 201210 room 2fa222, block a, building 1, No. 800, Naxian Road, Pudong New Area, Shanghai Applicant after: Chaorui Technology (Shanghai) Co.,Ltd. Address before: Room 2106, Great Wall wanfuhui gold block, No.9 Shuangyong Road, Kaifu District, Changsha City, Hunan Province, 410003 Applicant before: Transcendence information technology (Changsha) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |