CN110780925B - 一种指令流水线的预译码系统及方法 - Google Patents
一种指令流水线的预译码系统及方法 Download PDFInfo
- Publication number
- CN110780925B CN110780925B CN201910821767.3A CN201910821767A CN110780925B CN 110780925 B CN110780925 B CN 110780925B CN 201910821767 A CN201910821767 A CN 201910821767A CN 110780925 B CN110780925 B CN 110780925B
- Authority
- CN
- China
- Prior art keywords
- instruction
- branch
- current
- address
- information
- 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 17
- 238000004364 calculation method Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003068 static effect Effects 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种指令流水线的预译码系统及方法,预译码系统包括:依次连接的指令流水线、指令存储器、预译码逻辑和下一级存储器,指令存储器与下一级存储器连接;预译码逻辑用于当确定从下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至指令存储器;指令流水线用于根据从指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。本发明所提供的系统及方法,避免了重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
Description
技术领域
本发明涉及处理器技术领域,具体涉及一种指令流水线的预译码系统及方法。
背景技术
现代处理器设计中,指令流水线从一级指令缓冲中取得指令并提交执行部件执行。一级指令缓存中存放的指令二进制编码,指令流水线读取指令的二进制编码后,将其转换成控制信号,指示各部件的运行。
为了维护正确的指令流,并且支持高效的指令执行,指令流水线中设置了预译码部件和转移预测部件,用于检测指令流中存在的转移类指令,尽早计算其转移方向,并进行适时的信息更新和指令流方向调整。
由于一级指令缓存中存放的指令均会被多次取出并多次执行,因此对于转移类指令来说,其预译码动作(判断转移指令类型,计算程序的转移方向)会多次进行。由于大部分转移类指令每次预译码的结果均是相同的,可以认为重复的预译码动作是冗余的,因此这些预译码动作的重复造成了处理器运行时动态功耗的浪费。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种指令流水线的预译码系统及方法,避免了重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
为实现上述目的,本发明采用的技术方案如下:
一种指令流水线的预译码系统,所述预译码系统包括:依次连接的指令流水线、指令存储器、预译码逻辑和下一级存储器,所述指令存储器与所述下一级存储器连接;
所述预译码逻辑用于当确定从所述下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至所述指令存储器;
所述指令流水线用于根据从所述指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
进一步,如上所述的一种指令流水线的预译码系统,所述第一转移指令编码信息包括指令类型和转移偏移量,所述第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,所述简化后指令类型包括预译码已识别信息和转移指令子类型;
所述转移指令标识用于标识当前指令是否为转移指令;
所述预译码已识别信息用于标识该转移指令是否已经通过所述预译码逻辑获取对应的第二转移指令编码信息;
所述转移目标信息用于记录该转移指令的转移目标指令的地址;
所述转移指令子类型用于标识该转移指令的具体类型。
进一步,如上所述的一种指令流水线的预译码系统,所述预译码逻辑用于:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,根据计算得到的当前指令的转移目标指令的地址和当前指令的第一转移指令编码信息得到当前指令的第二转移指令编码信息。
进一步,如上所述的一种指令流水线的预译码系统,所述预译码逻辑用于:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,将计算得到的当前指令的转移目标指令的地址划分为高段和低段,将低段部分作为当前指令的第二转移指令编码信息中的转移目标信息;
根据高段部分的值与当前指令的地址高段的值,对当前指令的第二转移指令编码信息中的预译码已识别信息进行标识。
进一步,如上所述的一种指令流水线的预译码系统,所述预译码逻辑用于:
当确定当前指令的转移目标指令的地址高段部分的值等于当前指令的地址高段的值时,将当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别。
进一步,如上所述的一种指令流水线的预译码系统,所述预译码逻辑用于:
根据当前指令的第一转移指令编码信息中的指令类型判断当前指令是否为转移指令,并根据判断结果对当前指令的第二转移指令编码信息中的转移指令标识和转移指令子类型进行标识。
进一步,如上所述的一种指令流水线的预译码系统,所述指令流水线用于:
根据从所述指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息确定是否根据当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
进一步,如上所述的一种指令流水线的预译码系统,所述指令流水线用于:
当确定从所述指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别时,将当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段拼接得到当前指令的转移目标指令的地址。
一种指令流水线的预译码方法,所述预译码方法包括:
(1)当确定从所述下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至所述指令存储器;
(2)根据从所述指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
进一步,如上所述的一种指令流水线的预译码方法,所述第一转移指令编码信息包括指令类型和转移偏移量,所述第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,所述简化后指令类型包括预译码已识别信息和转移指令子类型;
所述转移指令标识用于标识当前指令是否为转移指令;
所述预译码已识别信息用于标识该转移指令是否已经通过所述预译码逻辑获取对应的第二转移指令编码信息;
所述转移目标信息用于记录该转移指令的转移目标指令的地址;
所述转移指令子类型用于标识该转移指令的具体类型。
本发明的有益效果在于:本发明所提供的系统及方法,通过预译码逻辑对转移类指令进行提前解析,得到第二转移指令编码信息存储在指令存储器中,当流水线的控制逻辑从指令存储器中取指时,可以直接通过将指令存储中存储的当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段拼接得到当前指令的转移目标指令的地址,避免了重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
附图说明
图1为本发明实施例中提供的传统流水线同预译码逻辑的关系示意图;
图2为本发明实施例中提供的一种指令流水线的预译码系统的结构示意图;
图3为本发明实施例中提供的下一级存储器中存储的转移指令编码格式示意图;
图4为本发明实施例中提供的指令存储器中存储的转移指令编码格式示意图;
图5为图4中的简化后指令类型的示意图;
图6为本发明实施例一中提供的预译码逻辑工作机制示意图;
图7为本发明实施例中提供的一种指令流水线的预译码方法的流程示意图.
具体实施方式
下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。
传统流水线同预译码逻辑的关系如图1所示,处理器的缓存一般组织成多级结构,指令流水线从一级指令缓存中取得指令,一级指令缓存从更下级的缓存中取得指令。指令流水线取得指令之后,送入预译码部件,其中主要包含指令类型的解析和转移类执行转移方向的计算。由于一级指令缓存中存放的指令均会被多次取出并多次执行,因此对于转移类指令来说,其预译码动作(判断转移指令类型,计算程序的转移方向)会多次进行。由于大部分转移类指令每次预译码的结果均是相同的,可以认为重复的预译码动作是冗余的,因此这些预译码动作的重复造成了处理器运行时动态功耗的浪费。
针对上述缺陷,本发明提出的一种指令流水线的预译码系统及方法,如图2所示,主要结构包括三方面:1)将预译码逻辑放置在一级指令缓存同下一级缓存之间;2)一级指令缓存中指令存储结构设计;3)指令流水线中转移目标地址拼接。本发明设计将预译码部件提前至一级指令缓存的写入通路,将转移类指令提前解析,并提前计算转移方向,避免重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
如图2所示,本发明提供一种指令流水线的预译码系统,预译码系统包括:依次连接的指令流水线、指令存储器、预译码逻辑和下一级存储器,指令存储器与下一级存储器连接;
预译码逻辑用于当确定从下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至指令存储器;
指令流水线用于根据从指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
第一转移指令编码信息包括指令类型和转移偏移量,第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,简化后指令类型包括预译码已识别信息和转移指令子类型;
转移指令标识用于标识当前指令是否为转移指令;
预译码已识别信息用于标识该转移指令是否已经通过预译码逻辑获取对应的第二转移指令编码信息;
转移目标信息用于记录该转移指令的转移目标指令的地址;
转移指令子类型用于标识该转移指令的具体类型。
预译码逻辑用于:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,根据计算得到的当前指令的转移目标指令的地址和当前指令的第一转移指令编码信息得到当前指令的第二转移指令编码信息。
预译码逻辑用于:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,将计算得到的当前指令的转移目标指令的地址划分为高段和低段,将低段部分作为当前指令的第二转移指令编码信息中的转移目标信息;
根据高段部分的值与当前指令的地址高段的值,对当前指令的第二转移指令编码信息中的预译码已识别信息进行标识。
预译码逻辑用于:
当确定当前指令的转移目标指令的地址高段部分的值等于当前指令的地址高段的值时,将当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别。
预译码逻辑用于:
根据当前指令的第一转移指令编码信息中的指令类型判断当前指令是否为转移指令,并根据判断结果对当前指令的第二转移指令编码信息中的转移指令标识和转移指令子类型进行标识。
指令流水线用于:
根据从指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息确定是否根据当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
指令流水线用于:
当确定从指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别时,将当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段拼接得到当前指令的转移目标指令的地址。
本发明通过预译码逻辑对转移类指令的第一转移指令编码信息进行提前解析,得到第二转移指令编码信息存储在指令存储器中,当流水线的控制逻辑从指令存储器中取指时,可以直接通过将指令存储中存储的当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段进行拼接,得到当前指令的转移目标指令的地址,避免重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
工作原理:
本发明通过将预译码逻辑放置在一级指令缓存与下一级缓存之间,所有从下一级缓存取得的指令均需要经过预译码逻辑的解析,识别出转移指令,并且计算出转移方向。对于大部分转移类指令,其转移目标的计算在每次执行时是不变的,这类指令的转移目标计算方法包括:
转移目标=本指令地址+本指令编码中部分字段 式一
预译码逻辑识别出指令的转移类型并计算出转移方向后,将该信息(包括转移类型和转移方向)写入一级指令缓存。在传统处理器设计中,一级指令缓存(图1中的指令存储器)中写入的指令编码信息同下一级缓存(图1中的下一级存储器)中指令的编码信息完全一致,传统处理器中的转移指令编码信息如图3所示。在本发明中,给出了一种新的指令编码信息格式,主要为了以最小开销区别出转移类指令和非转移类指令,同时在该指令编码中记录预译码逻辑识别出的转移指令信息。
如图2所示,下一级存储器传递给预译码逻辑的信息包含若干条指令,每条指令的信息均如图3所示,即第一转移指令编码信息,预译码逻辑传递给指令存储器的信息对应上述若干条指令,每条指令的信息如图4所示,即第二转移指令编码信息。
本发明的转移指令编码信息如图4所示,与图3的标准指令编码结构的主要区别在于:
(1)在图3的指令编码宽度上增加1比特,用以标识当前指令是否为转移类指令,即图4中的C位。
(2)缩短图3中的“指令类型”字段,图3中的“指令类型”字段需要编码处理器能够识别的所有指令类型,图4中“简化后指令类型”仅需要区分出不同的转移指令即可,即图5中的“转移指令子类型”,具有针对性,其中“预译码已识别”标记为1位,标记该转移指令的编码是否已经经过预译码逻辑完全转换。不能被预译码逻辑完全转换的指令包括两类:
a)转移目标计算方法不属于上文中列举的转移目标计算方法;
例如:转移目标地址=某寄存器的值+本指令地址,其中,某寄存器的值需要经过一次读寄存器操作获取。
处理器需要处理的转移指令有许多类型,其中一种类型为a)类情况所示,其转移目标地址的计算需要在每次执行时是动态改变的(根源在于其目标地址计算需要获取一个动态的寄存器的值),因此无法提前计算。本发明适用于另一类转移指令,其转移目标计算仅依赖于静态信息,因此可以实现提前计算。
b)预译码逻辑计算出的转移目标无法在图4中的“转移目标”字段中有效存储的转移指令。发生a)、b)两种情况时,本发明的预译码逻辑将保留指令原转移指令编码信息中的“转移偏移量”字段,不会将其转换为下文描述的“转移目标”字段。
(3)将图3中的“转移偏移量”字段转换为图4中的“转移目标”字段,用于记录该转移指令的转移目标指令的地址。由于处理器的指令地址宽度通常超过指令编码宽度,因此,图4中的“转移目标”字段无法完全储存完整的转移目标地址。本发明中,将预译码逻辑计算得到当前指令的转移目标指令的地址(转移目标地址)划分为高低两段,其中低段存储在图4所示的“转移目标”字段中,流水线执行转移指令时,存在两个地址:转移指令本身的地址和转移目标指令的地址。流水线自身会有专门的结构存储并维护转移指令本身的地址,本发明中,转移目标指令的地址的高段直接使用转移指令本身的地址的高段。
若“当前指令地址”高段的值等于“转移目标地址”高段,则置位“预译码已识别”标记,表示这条指令从图2所示的指令存储器输出时,可以利用第二转移指令编码信息中的“转移目标”字段与“当前指令的地址”高段直接拼接得到转移目标地址,判断和置位均由预译码逻辑负责。
若“当前指令地址”高段的值不等于“转移目标地址”高段,则对应于上文b)类情形,预译码逻辑计算出的转移目标无法在图4中的“转移目标”字段中有效存储,本发明的预译码逻辑将保留指令原转移指令编码信息中的“转移偏移量”字段,不会将其转换为“转移目标”字段。该指令从图2所示的指令存储器输出时,将重新利用上文式一计算得到转移目标地址。
实施例一
如图6所示,预译码逻辑从下一级存储器中取出一条图3格式的指令,并对该指令进行解析,识别出该指令的指令类型为转移指令,并根据该转移指令地址[50:0]和转移偏移量[20:0]计算出该指令的转移目标地址[50:0],将转移目标地址划分为高低两段,其中低段部分[25:0]存储在指令存储器内的图4格式的“转移目标”字段中,高段部分[50:26]用于后续判断。
从图中可知,“当前指令地址”高段的值[50:26]等于计算出的“转移目标地址”高段[50:26],则表明当前指令的编码已经被预译码逻辑完全转化,此时,预译码逻辑置位“预译码已识别”标记,当这条指令“指令存储器”输出时,控制逻辑直接从指令存储器中的该条指令存储位置的“转移目标”字段得到,对于已经置位了“预译码已识别”的转移类指令来说,可以直接将“转移目标”字段作为转移目标地址的低段。
流水线自身的硬件逻辑将控制逻辑从指令存储器中取出的“转移目标”字段,与自身存储的“当前指令地址”高段进行拼接,得到当前指令的转移目标地址,进而从转移目标地址重新取指,避免在流水线前端重复执行预译码动作。
本发明通过位于指令存储器和下一级存储器之间的预译码逻辑对转移类指令提前解析,并提前计算转移方向,当流水线的控制逻辑从指令存储器中取指时,可以直接取出“转移目标”字段,通过硬件逻辑进行拼接得到转移目标地址,避免重复的预译码动作,可以有效减少处理器流水线前段的动态功耗。
如图7所示,一种指令流水线的预译码方法,预译码方法包括:
S100、当确定从下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至指令存储器;
S200、根据从指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
第一转移指令编码信息包括指令类型和转移偏移量,第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,简化后指令类型包括预译码已识别信息和转移指令子类型;
转移指令标识用于标识当前指令是否为转移指令;
预译码已识别信息用于标识该转移指令是否已经通过预译码逻辑获取对应的第二转移指令编码信息;
转移目标信息用于记录该转移指令的转移目标指令的地址;
转移指令子类型用于标识该转移指令的具体类型。
S100包括:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,根据计算得到的当前指令的转移目标指令的地址和当前指令的第一转移指令编码信息得到当前指令的第二转移指令编码信息。
S100包括:
当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,将计算得到的当前指令的转移目标指令的地址划分为高段和低段,将低段部分作为当前指令的第二转移指令编码信息中的转移目标信息;
根据高段部分的值与当前指令的地址高段的值,对当前指令的第二转移指令编码信息中的预译码已识别信息进行标识。
S100包括:
当确定当前指令的转移目标指令的地址高段部分的值等于当前指令的地址高段的值时,将当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别。
S100包括:
根据当前指令的第一转移指令编码信息中的指令类型判断当前指令是否为转移指令,并根据判断结果对当前指令的第二转移指令编码信息中的转移指令标识和转移指令子类型进行标识。
S200包括:
根据从指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息确定是否根据当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
S200包括:
当确定从指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别时,将当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段拼接得到当前指令的转移目标指令的地址。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种指令流水线的预译码系统,其特征在于,所述预译码系统包括:依次连接的指令流水线、指令存储器、预译码逻辑和下一级存储器,所述指令存储器与所述下一级存储器连接;
所述预译码逻辑用于当确定从所述下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至所述指令存储器;
所述指令流水线用于根据从所述指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址;所述第一转移指令编码信息包括指令类型和转移偏移量,所述第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,所述简化后指令类型包括预译码已识别信息和转移指令子类型;当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,根据计算得到的当前指令的转移目标指令的地址和当前指令的第一转移指令编码信息得到当前指令的第二转移指令编码信息;当确定当前指令为转移指令时根据当前指令的第一转移指令编码信息中的转移偏移量和当前指令的地址计算得到当前指令的转移目标指令的地址,将计算得到的当前指令的转移目标指令的地址划分为高段和低段,将低段部分作为当前指令的第二转移指令编码信息中的转移目标信息;
根据高段部分的值与当前指令的地址高段的值,对当前指令的第二转移指令编码信息中的预译码已识别信息进行标识;当确定从所述指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别时,将当前指令的第二转移指令编码信息中的转移目标信息与当前指令的地址高段拼接得到当前指令的转移目标指令的地址。
2.根据权利要求1所述的一种指令流水线的预译码系统,其特征在于,
所述转移指令标识用于标识当前指令是否为转移指令;
所述预译码已识别信息用于标识该转移指令是否已经通过所述预译码逻辑获取对应的第二转移指令编码信息;
所述转移目标信息用于记录该转移指令的转移目标指令的地址;
所述转移指令子类型用于标识该转移指令的具体类型。
3.根据权利要求1所述的一种指令流水线的预译码系统,其特征在于,所述预译码逻辑用于:
当确定当前指令的转移目标指令的地址高段部分的值等于当前指令的地址高段的值时,将当前指令的第二转移指令编码信息中的预译码已识别信息标识为已识别。
4.根据权利要求2所述的一种指令流水线的预译码系统,其特征在于,所述预译码逻辑用于:
根据当前指令的第一转移指令编码信息中的指令类型判断当前指令是否为转移指令,并根据判断结果对当前指令的第二转移指令编码信息中的转移指令标识和转移指令子类型进行标识。
5.根据权利要求3所述的一种指令流水线的预译码系统,其特征在于,所述指令流水线用于:
根据从所述指令存储器中取得的当前指令的第二转移指令编码信息中的预译码已识别信息确定是否根据当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址。
6.一种指令流水线的预译码方法,应用于权利要求1-5任一项所述的一种指令流水线的预译码系统,其特征在于,所述预译码方法包括:
(1)当确定从所述下一级存储器中取出的当前指令为转移指令时根据当前指令的地址和第一转移指令编码信息得到当前指令的第二转移指令编码信息并输出至所述指令存储器;
(2)根据从所述指令存储器中取得的当前指令的第二转移指令编码信息和当前指令的地址得到当前指令的转移目标指令的地址;所述第一转移指令编码信息包括指令类型和转移偏移量,所述第二转移指令编码信息包括转移指令标识、简化后指令类型和转移目标信息,所述简化后指令类型包括预译码已识别信息和转移指令子类型。
7.根据权利要求6所述的一种指令流水线的预译码方法,其特征在于,
所述转移指令标识用于标识当前指令是否为转移指令;
所述预译码已识别信息用于标识该转移指令是否已经通过所述预译码逻辑获取对应的第二转移指令编码信息;
所述转移目标信息用于记录该转移指令的转移目标指令的地址;
所述转移指令子类型用于标识该转移指令的具体类型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910821767.3A CN110780925B (zh) | 2019-09-02 | 2019-09-02 | 一种指令流水线的预译码系统及方法 |
PCT/CN2020/082067 WO2021042705A1 (zh) | 2019-09-02 | 2020-03-30 | 一种指令流水线的预译码系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910821767.3A CN110780925B (zh) | 2019-09-02 | 2019-09-02 | 一种指令流水线的预译码系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110780925A CN110780925A (zh) | 2020-02-11 |
CN110780925B true CN110780925B (zh) | 2021-11-16 |
Family
ID=69383341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910821767.3A Active CN110780925B (zh) | 2019-09-02 | 2019-09-02 | 一种指令流水线的预译码系统及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110780925B (zh) |
WO (1) | WO2021042705A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780925B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码系统及方法 |
CN114116016B (zh) * | 2022-01-27 | 2022-04-22 | 广东省新一代通信与网络创新研究院 | 基于处理器的指令预取方法及装置 |
CN115878187B (zh) * | 2023-01-16 | 2023-05-02 | 北京微核芯科技有限公司 | 支持压缩指令的处理器指令处理装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349160A (zh) * | 2001-11-28 | 2002-05-15 | 中国人民解放军国防科学技术大学 | 流水线控制相关延迟消除方法 |
CN101042641A (zh) * | 2007-04-24 | 2007-09-26 | 上海华龙信息技术开发中心 | 一种具有动态提交流水线功能的数字信号处理器 |
CN101256504A (zh) * | 2008-03-17 | 2008-09-03 | 中国科学院计算技术研究所 | 一种支持x86虚拟机的risc处理器装置及方法 |
CN105824603A (zh) * | 2016-03-14 | 2016-08-03 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
US10203959B1 (en) * | 2016-01-12 | 2019-02-12 | Apple Inc. | Subroutine power optimiztion |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3698123B2 (ja) * | 2002-06-25 | 2005-09-21 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
CN1333334C (zh) * | 2005-08-15 | 2007-08-22 | 中国航天时代电子公司第七七一研究所 | 微处理器的整数单元中五级容错流水结构的实现方法 |
US20080034132A1 (en) * | 2006-08-01 | 2008-02-07 | Nec Electronics Corporation | Memory interface for controlling burst memory access, and method for controlling the same |
JP5012084B2 (ja) * | 2007-02-22 | 2012-08-29 | 富士通セミコンダクター株式会社 | 情報処理装置 |
US8886920B2 (en) * | 2011-05-13 | 2014-11-11 | Oracle International Corporation | Associating tag to branch instruction to access array storing predicted target addresses for page crossing targets for comparison with resolved address at execution stage |
CN104504329A (zh) * | 2014-12-30 | 2015-04-08 | 中国人民解放军装备学院 | 一种程序运行时处理器指令校验方法 |
CN105975252B (zh) * | 2016-04-29 | 2018-10-09 | 龙芯中科技术有限公司 | 一种处理指令的流水线的实现方法、装置及处理器 |
CN106873944A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 在动态二进制翻译系统中处理间接转移指令的方法和装置 |
CN110780925B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码系统及方法 |
-
2019
- 2019-09-02 CN CN201910821767.3A patent/CN110780925B/zh active Active
-
2020
- 2020-03-30 WO PCT/CN2020/082067 patent/WO2021042705A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349160A (zh) * | 2001-11-28 | 2002-05-15 | 中国人民解放军国防科学技术大学 | 流水线控制相关延迟消除方法 |
CN101042641A (zh) * | 2007-04-24 | 2007-09-26 | 上海华龙信息技术开发中心 | 一种具有动态提交流水线功能的数字信号处理器 |
CN101256504A (zh) * | 2008-03-17 | 2008-09-03 | 中国科学院计算技术研究所 | 一种支持x86虚拟机的risc处理器装置及方法 |
US10203959B1 (en) * | 2016-01-12 | 2019-02-12 | Apple Inc. | Subroutine power optimiztion |
CN105824603A (zh) * | 2016-03-14 | 2016-08-03 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021042705A1 (zh) | 2021-03-11 |
CN110780925A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110780925B (zh) | 一种指令流水线的预译码系统及方法 | |
CN101228506B (zh) | 用于预测分支指令的方法和设备 | |
US5193205A (en) | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address | |
US9361110B2 (en) | Cache-based pipline control method and system with non-prediction branch processing using a track table containing program information from both paths of a branch instruction | |
JP4585005B2 (ja) | 分岐訂正によるプリデコードのエラー処理 | |
US7003691B2 (en) | Method and apparatus for seeding differences in lock-stepped processors | |
US9823932B2 (en) | Branch prediction | |
KR101005633B1 (ko) | 일정한 개수의 가변 길이 명령을 가진 명령 캐시 | |
US10162635B2 (en) | Confidence-driven selective predication of processor instructions | |
US8943298B2 (en) | Meta predictor restoration upon detecting misprediction | |
JP2000029701A (ja) | 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。 | |
JP2006134331A (ja) | ブランチ目的アドレスを利用してキャッシュウェイを予測するプロセッサ及びその方法 | |
KR20070116058A (ko) | 가변 길이 명령어에 대한 절전 방법 및 장치 | |
US20140156978A1 (en) | Detecting and Filtering Biased Branches in Global Branch History | |
GB2386448A (en) | Prediction of instructions in a data processing apparatus | |
EP3144814B1 (en) | Method and apparatus for generating a profile of a target program | |
US5276825A (en) | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction | |
US11379239B2 (en) | Apparatus and method for making predictions for instruction flow changing instructions | |
US7613910B2 (en) | Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device | |
US20050268040A1 (en) | Cache system having branch target address cache | |
US7234046B2 (en) | Branch prediction using precedent instruction address of relative offset determined based on branch type and enabling skipping | |
US7519799B2 (en) | Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof | |
CN112579166B (zh) | 一种多级分支预测器跳过训练标识的确定方法及装置 | |
US9542190B2 (en) | Processor with fetch control for stoppage | |
US7174444B2 (en) | Preventing a read of a next sequential chunk in branch prediction of a subject chunk |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |