CN105975252B - 一种处理指令的流水线的实现方法、装置及处理器 - Google Patents
一种处理指令的流水线的实现方法、装置及处理器 Download PDFInfo
- Publication number
- CN105975252B CN105975252B CN201610282278.1A CN201610282278A CN105975252B CN 105975252 B CN105975252 B CN 105975252B CN 201610282278 A CN201610282278 A CN 201610282278A CN 105975252 B CN105975252 B CN 105975252B
- Authority
- CN
- China
- Prior art keywords
- instruction
- stage
- decoding
- jump
- present
- 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 66
- 238000010586 diagram Methods 0.000 description 5
- 210000003934 vacuole Anatomy 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种处理指令的流水线的实现方法、装置及处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述方法包括:在所述取指阶段从指令存储器中获取待处理的预定数量的指令;在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。本发明能够提高流水线效率;同时能够节省硬件开销和可能产生的延迟开销和功耗开销。
Description
技术领域
本发明涉及处理器体系结构技术领域,尤其涉及一种处理指令的流水线的实现方法、装置及处理器。
背景技术
跳转指令是处理器,例如MIPS处理器,指令集架构中常用的指令,其用于将程序执行从执行第一指令序列转换为执行第二指令序列,当处理器从存储器获取跳转指令时,其跳转到目标地址并且开始执行第二指令序列。可见,跳转指令的执行结果直接影响了后续操作从何处获取指令。另外,MIPS指令集规定所有的跳转指令都必须有延迟槽指令,所述延迟槽指令为紧接着跳转指令的后一条指令,其一定会被处理器执行的,而不管之前的跳转指令是否真的满足跳转条件。
在五级流水线MIPS处理器中,其执行指令的过程包括:取指IF(InstructionFetch)、译码ID(Instruction Decode)、执行EX(Execute)、访存MEM(Memory)和写回WB(Write Back)。如图1所示,跳转指令S1-01的执行结果直接影响了后续操作从何处获取指令,同时跳转指令S1-01之后的第一条指令(即延迟槽指令)S1-02一定会被取到处理器内部执行,但是跳转指令S1-01之后的第二条指令(即延迟槽指令S1-02之后的第一条指令)S1-03是否被取到处理器中执行,依赖于跳转指令S1-01的执行结果。如果执行结果为不跳转,那么指令S1-03会被取到处理器中执行;如果执行结果为跳转,那么指令S1-03就不会被取到处理器内被执行,程序会跳转到一条新的程序地址。通常跳转指令S1-01的执行结果在执行阶段才能被确定,然而在执行阶段计算出跳转地址之后,如果指令S1-03按照正常流水线操作已经取过指令了(如图1所示的S1-04和S1-05),则可能出现跳转指令S1-01位于执行阶段S1-04的计算出跳转地址的时刻与指令S1-03位于取指阶段S1-05的取到指令的时刻存在先后顺序,从而使得取到的指令有可能不是真正要获取的指令。
为了克服上述技术问题,现有技术中存在两种解决方案:
第一种处理指令的流水线方法是:在跳转地址未计算出来时,将跳转指令之后的第二条指令的取指阶段延迟一个时钟周期(如图2所示)或者在跳转指令之后插入空操作指令(如图3所示),待所述跳转地址计算出来之后,再进行取指。
具体地,如图2所示,S2-01为跳转指令,S2-02为延迟槽指令,S2-03为跳转指令S2-01之后的第二条指令(即延迟槽指令S2-02之后的第一条指令),S2-04为跳转指令之后的第二条指令的取指阶段延迟一个时钟周期的示意图,即S2-04为一个“空泡”。如图3所示,S3-01为跳转指令,S3-02为延迟槽指令,S3-03为跳转指令S3-01之后的第二条指令(即延迟槽指令S3-02之后的第一条指令),S3-04为插入的空操作指令。
第二种处理指令的流水线的方法是:采用分支预测器,在计算出跳转地址之前,对取指地址进行预测,在计算出跳转地址之后,检查取指地址是否预测正确,如果预测正确则继续执行;如果预测不正确则取消已经取到的指令,重新进行取指。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
针对第一种处理指令的流水线的方法,由于在流水线中出现了“空泡”,虽然能够保证处理器可以正确取到指令,但是却损失了流水线效率;
针对第二种处理指令的流水线的方法,由于需要专门的分支预测器,因此硬件开销比较大,另外,如果跳转地址预测不正确,还会产生额外的延迟开销和功耗开销。
发明内容
本发明提供的处理指令的流水线的实现方法、装置及处理器,能够提高流水线效率;同时能够节省硬件开销和可能产生的延迟开销和功耗开销。
第一方面,本发明提供一种处理指令的流水线的实现方法,应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述方法包括:
在所述取指阶段从指令存储器中获取待处理的预定数量的指令;
在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;
在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。
第二方面,本发明提供一种处理指令的流水线的实现装置,应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述装置包括、取指模块、译码模块和执行模块,其中,
所述取指模块,用于在所述取指阶段从指令存储器中获取待处理的预定数量的指令;
所述译码模块,用于在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时则计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;
所述执行模块,用于在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。
第三方面,本发明还提供一种处理器,所述处理器包括上述处理指令的流水线的实现装置。
本发明实施例提供的处理指令的流水线的实现方法、装置及处理器,在取指阶段从指令存储器中获取待处理的预定数量的指令;在译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;在执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。可见,本发明实施例是在译码阶段来计算跳转指令的目标跳转地址,而不是像现有技术在执行阶段进行。与现有技术相比,一方面,能够在保证处理器可以正确取到指令的前提下,避免出现现有技术中的“空泡”和“空操作指令”现象,从而提高了流水线效率;一方面,不需要专门的分支预测器,节省了分支预测器所带来的硬件开销和额外的延迟开销和功耗开销;另一方面,本发明实施例并非通过增加2条延迟槽指令来保证处理器能够正确取到指令,而是采用1条延迟槽指令,在译码阶段来计算跳转指令的目标跳转地址的技术手段,保证处理器能够正确取到指令,相应的可以取得节省1条延迟槽指令的使用,从而能够在保证处理器可以正确取到指令的前提下,最大限度地提高了流水线效率的技术效果。
附图说明
图1为五级流水线遇到跳转指令时可能无法正确取指的示意图;
图2为现有技术中处理指令的流水线的方法一实施例的示意图;
图3为现有技术中处理指令的流水线的方法一实施例的示意图;
图4为本发明处理指令的流水线的实现方法一实施例的流程图;
图5为以传统的五流水线为例说明本发明处理指令的流水线的实现方法的示意图;
图6为本发明处理指令的流水线的实现装置一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种处理指令的流水线的实现方法,应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述方法包括:
S11、在所述取指阶段从指令存储器中获取待处理的预定数量的指令。
S12、在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码。
S13、在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。
本发明实施例中处理指令的流水线从指令流水线每级流水线功能的角度来说包括:取指阶段、译码阶段和执行阶段;若是从指令流水线的级别阶段的角度来说分为三级流水线(包括1-3个阶段),五级流水线(包括1-5个阶段),七级流水线(包括1-7个阶段)等。上述取指阶段、译码阶段和执行阶段分别具体为指令流水线的第1阶段、第2阶段和第3阶段。
本发明实施例提供的处理指令的流水线的实现方法,在取指阶段从指令存储器中获取待处理的预定数量的指令;在译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。可见,本发明实施例是在译码阶段来计算跳转指令的目标跳转地址,而不是像现有技术在执行阶段进行。与现有技术相比,一方面,能够在保证处理器可以正确取到指令的前提下,避免出现现有技术中的“空泡”和“空操作指令”现象,从而提高了流水线效率;另一方面,不需要专门的分支预测器,节省了分支预测器所带来的硬件开销和额外的延迟开销和功耗开销;另一方面,本发明实施例并非通过增加2条延迟槽指令来保证处理器能够正确取到指令,而是采用1条延迟槽指令,在译码阶段来计算跳转指令的目标跳转地址的技术手段,保证处理器能够正确取到指令,因此可以取得节省1条延迟槽指令的使用,从而能够在保证处理器可以正确取到指令的前提下,最大限度地提高了流水线效率的技术效果。
可选地,在所述步骤S13之前,所述步骤S12之后,还包括:
S14、在所述译码阶段从寄存器中获取执行所述延迟槽指令或者所述跳转目标指令所需的源操作数。
进一步地,步骤S12中,在所述译码阶段判断出当前指令不是跳转指令时直接对所述当前指令进行译码;
相应地,步骤S13为:在所述执行阶段执行译码后的当前指令。
相应地,步骤S14为:在所述译码阶段从寄存器中获取执行所述译码后的当前指令所需的源操作数。
其中,所述译码阶段具体为指令流水线的第二阶段。
下面,以传统的五级流水线为例,即指令流水线包括五个阶段:取指阶段、译码阶段、执行阶段、访存阶段和写回阶段,描述一个具体程序的执行过程(如表1所示,为MIPS架构的汇编代码):
表1
指令序列 | 程序序列 | 执行结果及程序注释 |
0 | .global_start | |
1 | _start:Ori$1,$0,0x0001 | 执行,$1为0x0001 |
2 | Ori$2,$0,0x0002 | 执行,$2为0x0002 |
3 | b s1 | 执行,跳转指令 |
4 | 1:ori$1,$0,0x0003 | 执行,延迟槽指令,$1为0x0003 |
5 | ori$1,$0,0x0004 | 不执行 |
6 | S1:ori$3,$0,0x0003 | 执行,$3为0x0003 |
7 | Beq$1,$3,_loop | 执行,判断$1和$3相等,跳转到loop |
8 | Ori$1,$0,0x0004 | 执行,延迟槽指令,$1为0x0004 |
9 | Ori$1,$0,0x0005 | 不执行, |
10 | _loop:j_loop | 执行,分支跳转指令 |
11 | nop | 执行,延迟槽指令 |
为了便于说明问题,这里假设指令流水线的各个阶段的处理时间相同,都是1个时钟周期。由表1可知,指令3为跳转指令,指令4为延迟槽指令,指令6为指令3的目标跳转地址对应的指令;指令7为跳转指令,指令8为延迟槽指令,指令10为指令7的目标跳转地址对应的指令。
针对表1所示的具体指令,本发明的处理指令的流水线的实现方法是将计算跳转指令的目标跳转地址放在指令流水线的译码阶段来进行,即如图5所示,由于将指令3的目标跳转地址的计算放在了其指令流水线的译码阶段(即第4个时钟周期),从而使得指令6的取指就不会受到干扰,因为指令6在其指令流水线的取指阶段(即第5个时钟周期)取指时,指令3已经在其指令流水线的译码阶段(即第4个时钟周期)计算出了目标跳转地址;同理,由于将指令7的目标跳转地址的计算放在了其指令流水线的译码阶段(即第7个时钟周期),从而使得指令10的取指就不会受到干扰,因为指令10在其指令流水线的取指阶段(即第8个时钟周期)取指时,指令7已经在其指令流水线的译码阶段(即第7个时钟周期)计算出了目标跳转地址。
本发明实施例还提供一种处理指令的流水线的实现装置,所述装置应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述装置包括取指模块11、译码模块12和执行模块13。
所述取指模块11,用于在所述取指阶段从指令存储器中获取待处理的预定数量的指令。
其中,所述指令存储器与所述取指模块11连接。
所述译码模块12,用于在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时则计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码。
所述执行模块13,用于在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。
本发明实施例提供的处理指令的流水线的实现装置,所述装置应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,所述装置包括取指模块、译码模块和执行模块。所述取指模块,用于在所述取指阶段从指令存储器中获取待处理的预定数量的指令;所述译码模块,用于在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时则计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;所述执行模块,用于在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令。与现有技术相比,一方面,能够在保证处理器可以正确取到指令的前提下,避免出现现有技术中的“空泡”和“空操作指令”现象,从而提高了流水线效率;一方面,不需要专门的分支预测器,节省了分支预测器所带来的硬件开销和额外的延迟开销和功耗开销;另一方面,本发明实施例并非通过增加2条延迟槽指令来保证处理器能够正确取到指令,而是采用1条延迟槽指令,在译码阶段来计算跳转指令的目标跳转地址的技术手段,保证处理器能够正确取到指令,因此可以取得节省1条延迟槽指令的使用,从而能够在保证处理器可以正确取到指令的前提下,最大限度地提高了流水线效率的技术效果。
可选地,所述译码模块12,还用于在所述译码阶段从寄存器中获取执行所述延迟槽指令或者所述跳转目标指令所需的源操作数。
其中,所述寄存器与所述译码模块12连接。
进一步地,所述译码模块12,还用于在所述译码阶段判断出当前指令不是跳转指令时直接对所述当前指令进行译码;
相应地,所述执行模块13,还用于在所述执行阶段执行译码后的当前指令。
相应地,所述译码模块12,还用于在所述译码阶段从寄存器中获取执行所述译码后的当前指令所需的源操作数。
进一步地,所述译码模块12工作的译码阶段具体为指令流水线的第二阶段。
另外,本发明还提供一种处理器,其中,所述处理器包括上述任一项所述的装置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种处理指令的流水线的实现方法,应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,其特征在于,所述方法包括:
在所述取指阶段从指令存储器中获取待处理的预定数量的指令;
在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;
在所述执行阶段依次执行译码后的延迟槽指令和跳转目标指令。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述译码阶段判断出当前指令不是跳转指令时直接对所述当前指令进行译码;
在所述执行阶段执行译码后的当前指令。
3.根据权利要求1所述的方法,其特征在于,在所述执行阶段依次执行所述译码后的延迟槽指令和跳转目标指令之前,还包括:
在所述译码阶段从寄存器中获取执行所述延迟槽指令或者所述跳转目标指令所需的源操作数。
4.根据权利要求2所述的方法,其特征在于,在所述执行阶段执行译码后的所述当前指令之前,还包括:
在所述译码阶段从寄存器中获取执行所述译码后的当前指令所需的源操作数。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述译码阶段具体为指令流水线的第二阶段。
6.一种处理指令的流水线的实现装置,应用于基于延迟槽指令的处理器,所述处理指令的流水线包括取指阶段、译码阶段和执行阶段,其特征在于,所述装置包括取指模块、译码模块和执行模块;
所述取指模块,用于在所述取指阶段从指令存储器中获取待处理的预定数量的指令;
所述译码模块,用于在所述译码阶段对所述预定数量的指令中的各个指令进行指令类型的判断,在判断出当前指令是跳转指令时则计算跳转的目标地址,并根据所述跳转的目标地址从所述指令存储器中获取跳转目标指令,以及对所述当前指令之后的延迟槽指令和所述跳转目标指令进行译码;
所述执行模块,用于在所述执行阶段依次执行译码后的延迟槽指令和跳转目标指令。
7.根据权利要求6所述的装置,其特征在于,所述译码模块,还用于在所述译码阶段判断出当前指令不是跳转指令时直接对所述当前指令进行译码;
所述执行模块,还用于在所述执行阶段执行译码后的当前指令。
8.根据权利要求7所述的装置,其特征在于,所述译码模块,还用于在所述译码阶段从寄存器中获取执行所述延迟槽指令或者所述跳转目标指令所需的源操作数;和/或所述译码模块,还用于在所述译码阶段从寄存器中获取执行所述译码后的当前指令所需的源操作数。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述译码模块工作的译码阶段具体为指令流水线的第二阶段。
10.一种处理器,其特征在于,所述处理器包括权利要求6至9中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610282278.1A CN105975252B (zh) | 2016-04-29 | 2016-04-29 | 一种处理指令的流水线的实现方法、装置及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610282278.1A CN105975252B (zh) | 2016-04-29 | 2016-04-29 | 一种处理指令的流水线的实现方法、装置及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105975252A CN105975252A (zh) | 2016-09-28 |
CN105975252B true CN105975252B (zh) | 2018-10-09 |
Family
ID=56994198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610282278.1A Active CN105975252B (zh) | 2016-04-29 | 2016-04-29 | 一种处理指令的流水线的实现方法、装置及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105975252B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255519B (zh) * | 2016-12-29 | 2020-08-14 | 展讯通信(上海)有限公司 | 同步多线程处理器的浮点指令处理方法及装置 |
CN109683962B (zh) * | 2017-10-18 | 2023-08-29 | 深圳市中兴微电子技术有限公司 | 一种指令集模拟器流水线建模的方法及装置 |
CN110825440B (zh) | 2018-08-10 | 2023-04-14 | 昆仑芯(北京)科技有限公司 | 指令执行方法和装置 |
CN111176729A (zh) * | 2018-11-13 | 2020-05-19 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、装置及计算机可读存储介质 |
CN110780925B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码系统及方法 |
CN111008042B (zh) * | 2019-11-22 | 2022-07-05 | 中国科学院计算技术研究所 | 基于异构流水线的高效通用处理器执行方法及系统 |
CN113138798A (zh) * | 2020-01-18 | 2021-07-20 | 佛山市云米电器科技有限公司 | 多场景下的指令执行方法、装置、设备及存储介质 |
CN112181492A (zh) * | 2020-09-23 | 2021-01-05 | 北京奕斯伟计算技术有限公司 | 一种指令处理方法、指令处理装置和芯片 |
CN113110879B (zh) * | 2021-03-31 | 2023-05-30 | 北京中科晶上科技股份有限公司 | 指令处理方法及装置 |
CN113946540B (zh) * | 2021-10-09 | 2024-03-22 | 深圳市创成微电子有限公司 | 一种dsp处理器及其判断跳转指令的处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735686B1 (en) * | 2000-06-30 | 2004-05-11 | Hitachi, Ltd. | Data processing device including two instruction decoders for decoding branch instructions |
US7096348B2 (en) * | 2003-12-15 | 2006-08-22 | Freescale Semiconductor, Inc. | Method and apparatus for allocating entries in a branch target buffer |
CN101216778A (zh) * | 2008-01-21 | 2008-07-09 | 中国科学院计算技术研究所 | 一种risc处理器装置及其指令地址转换查找方法 |
CN102117198A (zh) * | 2009-12-31 | 2011-07-06 | 上海芯豪微电子有限公司 | 一种分支处理方法 |
CN103838550A (zh) * | 2012-11-26 | 2014-06-04 | 上海芯豪微电子有限公司 | 一种分支处理系统和方法 |
-
2016
- 2016-04-29 CN CN201610282278.1A patent/CN105975252B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735686B1 (en) * | 2000-06-30 | 2004-05-11 | Hitachi, Ltd. | Data processing device including two instruction decoders for decoding branch instructions |
US7096348B2 (en) * | 2003-12-15 | 2006-08-22 | Freescale Semiconductor, Inc. | Method and apparatus for allocating entries in a branch target buffer |
CN101216778A (zh) * | 2008-01-21 | 2008-07-09 | 中国科学院计算技术研究所 | 一种risc处理器装置及其指令地址转换查找方法 |
CN102117198A (zh) * | 2009-12-31 | 2011-07-06 | 上海芯豪微电子有限公司 | 一种分支处理方法 |
CN103838550A (zh) * | 2012-11-26 | 2014-06-04 | 上海芯豪微电子有限公司 | 一种分支处理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105975252A (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105975252B (zh) | 一种处理指令的流水线的实现方法、装置及处理器 | |
CN104471529B (zh) | 用以扩展软件分支目标提示的方法及设备 | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
JP4864840B2 (ja) | マイクロプロセッサ | |
JP2014182817A (ja) | 条件付きショート前方分岐の計算的に等価な述語付き命令への変換 | |
TW201732566A (zh) | 從亂序處理器中的不良儲存-至-負載轉發復原的方法與設備 | |
EP2812792B1 (en) | Using the least significant bits of a called function's address to switch processor modes | |
US20050268040A1 (en) | Cache system having branch target address cache | |
KR100309860B1 (ko) | 프로세서의시뮬레이터및시뮬레이션방법 | |
US9395985B2 (en) | Efficient central processing unit (CPU) return address and instruction cache | |
JP5233078B2 (ja) | プロセッサ及びその処理方法 | |
CN104423927A (zh) | 指令处理方法及装置、处理器 | |
JPS62226231A (ja) | プロセツサ | |
CN113946368A (zh) | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 | |
CN106445466B (zh) | 超长指令字指令集的指令处理方法及装置 | |
CN114116004B (zh) | 一种基于优选通道的跳转指令处理方法及系统 | |
US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
CN113254083B (zh) | 指令处理方法、指令处理系统及处理器、芯片 | |
CN118276951B (zh) | 基于risc-v的指令扩展方法及实现装置 | |
JP3954159B2 (ja) | 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法 | |
JPH01255036A (ja) | マイクロプロセッサ | |
JPH11353011A (ja) | シーケンス制御装置 | |
CN114296804A (zh) | 双模指令集架构下的阵列处理器可避免load_use冒险停顿 | |
CN104102588B (zh) | 降低寄存器堆读功耗的电路和方法 | |
CN113946540A (zh) | 一种dsp处理器及其判断跳转指令的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |