CN110688160B - 一种指令流水线处理方法、系统、设备及计算机存储介质 - Google Patents
一种指令流水线处理方法、系统、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110688160B CN110688160B CN201910832252.3A CN201910832252A CN110688160B CN 110688160 B CN110688160 B CN 110688160B CN 201910832252 A CN201910832252 A CN 201910832252A CN 110688160 B CN110688160 B CN 110688160B
- Authority
- CN
- China
- Prior art keywords
- instruction set
- pipeline processing
- target
- pipeline
- result
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 303
- 238000011010 flushing procedure Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 abstract description 17
- 230000000875 corresponding effect Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000011056 performance test Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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
-
- 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
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
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
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种指令流水线处理方法、系统、设备及计算机存储介质。
背景技术
当前,在服务器等设备中,为了提高CPU(Central Processing Unit,中央处理器)的运算效率和指令执行的并行性,可以设置CPU以流水线的方式处理指令。以RISC-V(Reduced Instruction Set Computer FIVE,第五代精简指令集)架构的流水线为例,可以将指令执行通道分成5个单元,通道中流水线的每个单元之间使用级间寄存器来存放相应的控制信号和数据,对应的流水线结构分别为取指(Ifetch)、译码(Dec)、执行(Exec)、存储器操作(Mem)和写回寄存器(WB),CPU需按照流水线结构对指令进行处理。
然而,在流水线的取指阶段无法得知条件跳转的结构是跳还是不跳,因此CPU只能进行预测,而到了流水线的末端才能够通过实际的运算得知该分支是真的该跳还是不该跳,如果发现真实的结果与预测的结果不相符,则意味着预测失败,需要将所有预取的错误指令全部丢弃掉,并重取正确的指令流进行处理,也即需进行流水线冲刷处理,由此使得CPU对指令进行流水线处理的效率较低。
综上所述,如何提高对指令进行流水线处理的效率是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种指令流水线处理方法,其能在一定程度上解决如何提高对指令进行流水线处理的效率的技术问题。本申请还提供了一种指令流水线处理系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种指令流水线处理方法,包括:
获取目标指令集;
获取目标预测结果,所述目标预测结果为对所述目标指令集的跳转方式进行预测后得到的结果;
按照所述目标预测结果,对所述目标指令集进行流水线处理;
判断是否接收到流水线冲刷请求,若是,则对应保存所述目标指令集及相应的流水线处理结果,以基于所述流水线处理结果对所述目标指令集再次进行流水线处理。
优选的,所述对应保存所述目标指令集及相应的流水线处理结果之后,还包括:
获取待运行指令集;
判断所述待运行指令集是否与所述目标指令集吻合;
若所述待运行指令集与所述目标指令集吻合,则根据所述流水线处理结果对所述待运行指令集进行流水线处理目标预测结果;
若所述待运行指令集与所述目标指令集不吻合,则直接对所述待运行指令集进行流水线处理目标预测结果。
优选的,所述对应保存所述目标指令集目及相应的流水线处理结果,包括:
获取所述目标指令集的PC值、流水线处理结果及指令编码;
按照预设格式对应保存所述目标指令集及所述流水线处理结果;
所述预设格式中的元素类型包括流水线处理结果、指令编码、PC值;
所述判断所述待运行指令集是否与所述目标指令集吻合,包括:
获取所述待运行指令集的PC值;
判断所述待运行指令集的PC值是否与所述目标指令集的PC值吻合,若是,则判定所述待运行指令集与所述目标指令集吻合,若否,则判定所述待运行指令集与所述目标指令集不吻合。
优选的,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
获取所述目标指令集中各个指令的译码结果;
对应保存所述目标指令集及所述译码结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
从流水线架构的执行阶段开始,直接对所述译码结果进行流水线处理。
优选的,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
将接收到所述流水线冲刷请求时,所述目标指令集中未执行的指令作为第一类指令,将所述目标指令集中除所述第一类指令之外的指令作为第二类指令;
获取所述第一类指令的译码结果,对应保存所述第一类指令及所述译码结果;
获取所述第二类指令的执行结果,对应保存所述第二类指令及所述执行结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
对于所述待运行指令集中与所述第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对所述译码结果进行流水线处理;
对于所述待运行指令集中与所述第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对所述执行结果进行流水线处理。
优选的,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
获取在接收到所述流水线冲刷请求时,所述目标指令集在流水线架构不同阶段下的处理结果;
对应保存所述目标指令集及在流水线架构不同阶段下的所述处理结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
按照流水线架构,从所述处理结果对应的流水线架构阶段的下一阶段开始,直接对所述处理结果进行流水线处理。
优选的,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
在预设存储设备中,对应保存所述目标指令集及所述流水线处理结果。
一种指令流水线处理系统,包括:
第一获取模块,用于获取目标指令集;
第二获取模块,用于获取目标预测结果,所述目标预测结果为对所述目标指令集的跳转方式进行预测后得到的结果;
第一处理模块,用于按照所述目标预测结果,对所述目标指令集进行流水线处理;
第一判断模块,用于判断是否接收到流水线冲刷请求,若是,则对应保存所述目标指令集及相应的流水线处理结果,以基于所述流水线处理结果对所述目标指令集再次进行流水线处理。
一种指令流水线处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述的方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的方法。
本申请提供的一种指令流水线处理方法,获取目标指令集;获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果;按照目标预测结果,对目标指令集进行流水线处理;判断是否接收到流水线冲刷请求,若是,则对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集再次进行流水线处理。本申请提供的一种指令流水线处理方法,在按照对目标指令集进行流水线处理,并且接收到流水线冲刷请求后,还会对应保存目标指令集及相应的流水线处理结果,从而后续在再次对目标指令集进行处理时,可以直接使用保存的流水线处理结果进行流水线处理,与重新对目标指令集进行流水线处理的现有技术相比,可以提高对指令的流水线处理效率。本申请提供的一种指令流水线处理系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种指令流水线处理方法的第一流程图;
图2为本申请实施例提供的一种指令流水线处理方法的第二流程图;
图3为本申请实施例提供的一种指令流水线处理系统的结构示意图;
图4为五级流水线架构图;
图5为实际应用中本申请提供的指令流水线处理系统的结构示意图;
图6为本申请实施例提供的一种指令流水线处理设备的结构示意图;
图7为本申请实施例提供的一种指令流水线处理设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,在服务器等设备中,为了提高CPU(Central Processing Unit,中央处理器)的运算效率和指令执行的并行性,可以设置CPU以流水线的方式处理指令。以RISC-V(Reduced Instruction Set Computer FIVE,第五代精简指令集)架构的流水线为例,可以将指令执行通道分成5个单元,通道中流水线的每个单元之间使用级间寄存器来存放相应的控制信号和数据,对应的流水线结构分别为取指(Ifetch)、译码(Dec)、执行(Exec)、存储器操作(Mem)和写回寄存器(WB),CPU需按照流水线结构对指令进行处理。
然而,在流水线的取指阶段无法得知条件跳转的结构是跳还是不跳,因此CPU只能进行预测,而到了流水线的末端才能够通过实际的运算得知该分支是真的该跳还是不该跳,如果发现真实的结果与预测的结果不相符,则意味着预测失败,需要将所有预取的错误指令全部丢弃掉,并重取正确的指令流进行处理,也即需进行流水线冲刷处理,由此浪费了CPU的功耗,并且损失了CPU的性能,流水线越深,CPU的损耗多大,并且CPU得到正确处理结果的时长越长,CPU对指令的流水线处理效率越低。本申请提供的一种指令流水线处理方法可以在一定程度上提高对指令的流水线处理效率。
请参阅图1,图1为本申请实施例提供的一种指令流水线处理方法的第一流程图。
本申请实施例提供的一种指令流水线处理方法,应用于服务器等设备,可以包括以下步骤:
步骤S101:获取目标指令集。
实际应用中,可以先获取目标指令集,目标指令集中指令的数量及类型可以根据实际应用场景确定,比如在对服务器的性能测试过程中,目标指令集可以包括对服务器进行性能测试的一系列指令等。
步骤S102:获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果。
实际应用中,在按照流水线架构对目标指令集进行处理的时候,当一个指令面临着多个跳转路径时,可能并不确定该指令所要进行的跳转路径,此时,便需要对目标指令集的跳转方式进行预测,得到目标预测结果,对目标指令集的跳转方式进行预测的过程可以参阅现有技术,本申请在此不做具体限定。
步骤S103:按照目标预测结果,对目标指令集进行流水线处理。
实际应用中,在得到目标预测结果后,便可以按照目标预测结果,对目标指令集进行流水线处理。应当指出,具体应用场景中,并不对流水线处理的级数进行限定,比如为了使得运行频率较高,可以将流水线架构的级数设置的较长等,此时每一级流水线容纳的硬件逻辑便较小,运行频率较高,进而使得流水线的吞吐效率较高;流水线的级数可以根据实际需要确定,比如可以为十几级、二十几级等。
步骤S104:判断是否接收到流水线冲刷请求,若是,则执行步骤S105。
实际应用中,由于目标预测结果是预测出来的目标指令集的跳转方式,目标指令集的跳转指令是否真正需要产生跳转可能需要经过流水线“执行”阶段之后才能够被确定,而指令在流水线中是以“流水”形式执行,以经典的五级流水线模型为例,第一条指令在“执行”阶段,第二条指令便处于“译码”阶段,如果第一条指令是一条预测的分支跳转指令,那么第二条指令(及其后续指令)便处于一种预测执行的状态,在第一条分支跳转指令是否真正需要跳转经过“执行”阶段确定之后,如果发现预测错误了,便意味着第二条指令(及其后续指令)都需要被取消掉并放弃执行,此时,会生成流水线冲刷请求;如果发现预测成功了,便意味着第二条指令(及其后续指令)不需要被取消,可以真正执行,所以在按照目标预测结果,对目标指令集进行流水线处理后,为了决定流水线处理结果是否能够真正被交付,需判断是否接收到流水线冲刷请求。
具体应用场景中,流水线冲刷请求可以为外界生成并传输给服务器等,也可以是服务器等自动生成的,以经典的五级流水线模型为例,第一条指令在“执行”阶段,第二条指令便处于“译码”阶段,第一条指令遭遇了中断或者异常,那么第二条指令和后续的指令便都需要被取消而放弃执行,也即在流水线运行的过程中,由于程序执行的不确定性,会出现异常或者是跳转、子程序或异常处理程序返回的情况,导致顺序执行的指令发生变化,服务器等可以统计出现指令跳转的情况,之后根据目标指令集的运行情况决定是否生成流水线冲刷请求等。
步骤S105:对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集再次进行流水线处理。
实际应用中,在判定接收到流水线冲刷请求后,便可以对应保存目标指令集及相应的流水线处理结果,以基于后续流水线处理结果对目标指令集再次进行流水线处理,避免重新对目标指令集进行流水线处理,提高处理效率。应当指出,在未接收到流水线冲刷请求时,可以按照设定的流水线架构,完成对目标指令集的流水线处理。
本申请提供的一种指令流水线处理方法,获取目标指令集;获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果;按照目标预测结果,对目标指令集进行流水线处理;判断是否接收到流水线冲刷请求,若是,则对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集进行流水线处理。本申请提供的一种指令流水线处理方法,在按照目标预测结果对目标指令集进行流水线处理,并且接收到流水线冲刷请求后,还会对应保存目标指令集及相应的流水线处理结果,从而后续在再次对目标指令集进行处理时,可以直接使用保存的流水线处理结果进行流水线处理,与重新对目标指令集进行流水线处理的现有技术相比,可以提高对指令的流水线处理效率。
请参阅图2,图2为本申请实施例提供的一种指令流水线处理方法的第二流程图。
实际应用中,本申请实施例提供的一种指令流水线处理方法可以包括以下步骤:
步骤S201:获取目标指令集。
步骤S202:获取目标预测结果。
步骤S203:按照目标预测结果,对目标指令集进行流水线处理。
步骤S204:判断是否接收到流水线冲刷请求,若是,则执行步骤S105。
步骤S205:对应保存目标指令集及相应的流水线处理结果。
步骤S206:获取待运行指令集。
实际应用中,待运行指令集指的是接收到流水线冲刷请求后,重新获取的待运行的指令集,待运行指令集中指令的类型及数量可以根据实际需要确定。
步骤S207:判断待运行指令集是否与目标指令集吻合;若待运行指令集与目标指令集吻合,则执行步骤S208,若待运行指令集与目标指令集不吻合,则执行步骤S209。
实际应用中,由于待运行指令集的流水线处理过程为一个新的流水线处理过程,而待运行指令集中可能存在与目标指令集中相同的指令,那么,便可以根据保存的流水线处理结果,直接得到该指令的流水线处理结果,所以在获取待运行指令集之后,可以先判断待运行指令集是否与目标指令集吻合。
步骤S208:根据流水线处理结果对待运行指令集进行流水线处理。
实际应用中,在判定待运行指令集与目标指令集吻合后,便可以根据流水线处理结果对待运行指令集进行流水线处理。
应当指出,本申请并不限定待运行指令集与目标指令集吻合的判断条件,比如在判断待运行指令集与目标指令集是否吻合时,由于待运行指令集与目标指令集中相同指令的数量越多,两个指令集越吻合,所以可以设置一个预设数量,将待运行指令集与目标指令集中相同指令的数量与该预设数量进行比较,若待运行指令集与目标指令集中相同指令的数量大于等于该预设数量,则判定待运行指令集与目标指令集吻合,否则,判定待运行指令集与目标指令集不吻合等。。
步骤S209:直接对待运行指令集进行流水线处理。
实际应用中,若待运行指令集与目标指令集不吻合,则直接按照设定的流水线架构对待运行指令集重新进行流水线处理。
本申请实施例提供的一种指令流水线处理方法中,由于在取指过程中会确定指令的PC值,而指令的PC值具有唯一性,所以可以借助PC值来判断待运行指令集是否与目标指令集吻合,具体的,在对应保存目标指令集及相应的流水线处理结果时,可以获取目标指令集的PC值、流水线处理结果及指令编码;按照预设格式对应保存目标指令集及流水线处理结果;预设格式中的元素类型包括流水线处理结果、指令编码、PC值;
相应的,在判断待运行指令集是否与目标指令集吻合时,可以获取待运行指令集的PC值;判断待运行指令集的PC值是否与目标指令集的PC值吻合,若是,则判定待运行指令集与目标指令集吻合,若否,则判定待运行指令集与目标指令集不吻合。
请参阅表1,表1为按预设格式保存的流水线处理结果。
表1按预设格式保存的流水线处理结果
本申请实施例提供的一种指令流水线处理方法中,由于在流水线架构的执行阶段之后,才会出现流水线冲刷请求,也即意味着接收到流水线冲刷请求时的指令译码结果是正确可用的,所以为了提高保存的流水线处理结果的可用性,在对应保存目标指令集及相应的流水线处理结果时,可以获取目标指令集中各个指令的译码结果;对应保存目标指令集及译码结果;
相应的,在根据流水线处理结果对待运行指令集进行流水线处理时,可以从流水线架构的执行阶段开始,直接对译码结果进行流水线处理。
本申请实施例提供的一种指令流水线处理方法中,当接收到流水线冲刷请求时,已经被执行的指令的处理结果与真实的处理结果不相符,而未被执行的指令的处理结果与真实的处理结果相符的可能性较大,也即处于流水线架构译码及译码之前阶段的指令处理结果可被使用的概率较大,所以为了进一步提高保存的流水线处理结果的可用性,在对应保存目标指令集及相应的流水线处理结果时,可以将接收到流水线冲刷请求时,目标指令集中未执行的指令作为第一类指令,将目标指令集中除第一类指令之外的指令作为第二类指令;获取第一类指令的译码结果,对应保存第一类指令及译码结果;获取第二类指令的执行结果,对应保存第二类指令及执行结果;
相应的,在根据流水线处理结果对待运行指令集进行流水线处理时,可以对于待运行指令集中与第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理;对于待运行指令集中与第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对执行结果进行流水线处理。
本申请实施例提供的一种指令流水线处理方法中,由于每个指令在流水线架构不同阶段的处理结果不同,每个指令可被交付的可能性也不尽相同,而一个指令被再次使用的话,其在流水线不同阶段的处理结果可能相同,所以为了进一步提高保存的流水线处理结果的可用性,在对应保存目标指令集、及相应的流水线处理结果时,可以获取在接收到流水线冲刷请求时,目标指令集在流水线架构不同阶段下的处理结果;对应保存目标指令集及在流水线架构不同阶段下的处理结果;
相应的,在根据流水线处理结果对待运行指令集进行流水线处理时,可以按照流水线架构,从处理结果对应的流水线架构阶段的下一阶段开始,直接对处理结果进行流水线处理。
本申请实施例提供的一种指令流水线处理方法中,由于保存的数据的多样性及负责性,可能会占用服务器等设备较多的存储空间,为了节省服务器等设备的存储空间,在对应保存目标指令集及相应的流水线处理结果时,可以在预设存储设备中,对应保存目标指令集及流水线处理结果。预设存储设备的类型及容量可以根据实际需要确定。
请参阅图3,图3为本申请实施例提供的一种指令流水线处理系统的结构示意图。
本申请实施例提供的一种指令流水线处理系统,可以包括:
第一获取模块101,用于获取目标指令集;
第二获取模块102,用于获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果;
第一处理模块103,用于按照目标预测结果,对目标指令集进行流水线处理;
第一判断模块104,用于判断是否接收到流水线冲刷请求,若是,则对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集再次进行流水线处理。
本申请实施例提供的一种指令流水线处理系统,还可以包括:
第三获取模块,用于第一判断模块对应保存目标指令集及相应的流水线处理结果之后,获取待运行指令集;
第二判断模块,用于判断待运行指令集是否与目标指令集吻合;若待运行指令集与目标指令集吻合,则根据流水线处理结果对待运行指令集进行流水线处理;若待运行指令集与目标指令集不吻合,则直接对待运行指令集进行流水线处理。
本申请实施例提供的一种指令流水线处理系统,第一判断模块可以包括:
第一获取单元,用于获取目标指令集的PC值、流水线处理结果及指令编码;
第一保存单元,用于按照预设格式对应保存目标指令集及流水线处理结果;预设格式中的元素类型包括流水线处理结果、指令编码、PC值、跳转方式;
相应的,第二判断模块可以包括:
第二获取单元,用于获取待运行指令集的PC值;
第一判断单元,用于判断待运行指令集的PC值是否与目标指令集的PC值吻合,若是,则判定待运行指令集与目标指令集吻合,若否,则判定待运行指令集与目标指令集不吻合。
本申请实施例提供的一种指令流水线处理系统,第一判断模块可以包括:
第三获取单元,用于获取目标指令集中各个指令的译码结果;
第二保存单元,用于对应保存目标指令集及译码结果;
相应的,第二判断模块可以包括:
第一处理单元,用于从流水线架构的执行阶段开始,直接对译码结果进行流水线处理。
本申请实施例提供的一种指令流水线处理系统,第一判断模块可以包括:
第一分类单元,用于将接收到流水线冲刷请求时,目标指令集中未执行的指令作为第一类指令,将目标指令集中除第一类指令之外的指令作为第二类指令;
第三保存单元,用于获取第一类指令的译码结果,对应保存第一类指令、及译码结果;
第四保存单元,用于获取第二类指令的执行结果,对应保存第二类指令、及执行结果;
相应的,第二判断模块可以包括:
第二处理单元,用于对于待运行指令集中与第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理;
第三处理单元,用于对于待运行指令集中与第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对执行结果进行流水线处理。
本申请实施例提供的一种指令流水线处理系统,第一判断模块可以包括:
第四获取单元,用于获取在接收到流水线冲刷请求时,目标指令集在流水线架构不同阶段下的处理结果;
第五保存单元,用于对应保存目标指令集及在流水线架构不同阶段下的处理结果;
相应的,第二判断模块可以包括:
第四处理单元,用于按照流水线架构,从处理结果对应的流水线架构阶段的下一阶段开始,直接对处理结果进行流水线处理。
本申请实施例提供的一种指令流水线处理系统,第一判断模块可以包括:
第六保存单元,用于在预设存储设备中,对应保存目标指令集及流水线处理结果。
应当指出,本申请提供的指令流水线处理系统的结构可以根据实际需要确定,为了便于理解,以图4所示的五级流水线为例,对实际应用中的指令流水线处理系统进行描述。请参阅图5,图5为实际应用中本申请提供的指令流水线处理系统的结构示意图。
在图5中,各模块功能如下所示:
冲刷处理模块:若收到来自异常处理模块和分支预测模块发送来的流水线冲刷请求,便通知指令取指控制模块暂停取指操作;若收到译码处理模块的预取指令的流水线处理结果后,将其存储在中间状态缓存RAM中;
指令取指控制模块:若收到来自冲刷处理模块的流水线冲刷请求,便挂起PC值处理模块的请求,并通知指令取指处理模块将指令缓存FIFO中的预取指令全部处理完毕;若未收到冲刷请求,则通知指令取指处理模块和PC值处理模块继续进行取指操作;
指令取指处理模块:若收到来自指令取指控制模块的流水线冲刷请求,便将指令缓存FIFO中的预取指令全部进行处理,并将预取指令的流水线处理结果发往译码控制模块;若没有收到流水线冲刷请求,则将预取指令的流水线处理结果发往译码控制模块;
译码控制模块:若收到来自指令取指处理模块的流水线冲刷指令处理请求,便将流水线冲刷指令处理结果发往译码处理模块;若没有收到流水线冲刷指令请求,则将预取指令的流水线处理结果发往译码处理模块;
译码处理模块:若收到来自译码控制模块的预取指令的流水线处理结果,便将预取指令进行译码,译码完成后,将中间状态结果按照预设格式进行组包,并发往冲刷指令处理模块;若收到中间状态匹配模块发送来的中间状态结果,则直接根据约定的预设格式,将相关结果同时输出到分支预测模块和下一级模块依次进行处理(如执行模块,仿存模块和写回模块等);若没有收到流水线冲刷请求,则将预取指令的译码结果同时发往分支预测模块和下一级模块依次进行处理(如执行模块,仿存模块和写回模块等);
中间状态匹配模块:若收到来自指令取指处理模块的读取指令的请求,首先根据PC值跟缓存在中间状态缓存RAM中的指令包的PC值部分进行匹配,如果匹配成功,直接从中间状态缓存RAM中读取中间状态结果发往译码处理模块,如果匹配不成功,则向上一级发出取指请求,等获取到指令后发往指令取指处理模块;
异常处理模块:负责处理器的异常情况的处理,并产生流水线冲刷请求;
PC值处理模块:负责处理器的取指的PC值的产生;
分支预测模块:在分支指令执行结束之前猜测哪一路分支将会被运行,以提高处理器的指令流水线的性能;
执行模块:根据指令的具体操作类型发射给具体的运算单元进行执行;
仿存模块:访问数据存储器;
写回模块:将执行结果写回寄存器。
本申请还提供了一种指令流水线处理设备及计算机可读存储介质,其均具有本申请实施例提供的一种指令流水线处理方法具有的对应效果。请参阅图6,图6为本申请实施例提供的一种指令流水线处理设备的结构示意图。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取目标指令集;
获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果;
按照目标预测结果,对目标指令集进行流水线处理;
判断是否接收到流水线冲刷请求,若是,则对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集再次进行流水线处理。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对应保存目标指令集及相应的流水线处理结果之后,获取待运行指令集;判断待运行指令集是否与目标指令集吻合;若待运行指令集与目标指令集吻合,则根据流水线处理结果对待运行指令集进行流水线处理;若待运行指令集与目标指令集不吻合,则直接对待运行指令集进行流水线处理。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取目标指令集的PC值、流水线处理结果及指令编码;按照预设格式对应保存目标指令集及流水线处理结果;预设格式中的元素类型包括流水线处理结果、指令编码、PC值;相应的,获取待运行指令集的PC值;判断待运行指令集的PC值是否与目标指令集的PC值吻合,若是,则判定待运行指令集与目标指令集吻合,若否,则判定待运行指令集与目标指令集不吻合。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取目标指令集中各个指令的译码结果;对应保存目标指令集及译码结果;相应的,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将接收到流水线冲刷请求时,目标指令集中未执行的指令作为第一类指令,将目标指令集中除第一类指令之外的指令作为第二类指令;获取第一类指令的译码结果,对应保存第一类指令及译码结果;获取第二类指令的执行结果,对应保存第二类指令及执行结果;相应的,对于待运行指令集中与第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理;对于待运行指令集中与第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对执行结果进行流水线处理。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取在接收到流水线冲刷请求时,目标指令集在流水线架构不同阶段下的处理结果;对应保存目标指令集及在流水线架构不同阶段下的处理结果;相应的,按照流水线架构,从处理结果对应的流水线架构阶段的下一阶段开始,直接对处理结果进行流水线处理。
本申请实施例提供的一种指令流水线处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在预设存储设备中,对应保存目标指令集及流水线处理结果。
请参阅图7,本申请实施例提供的另一种指令流水线处理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现指令流水线处理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取目标指令集;
获取目标预测结果,目标预测结果为对目标指令集的跳转方式进行预测后得到的结果;
按照目标预测结果,对目标指令集进行流水线处理;
判断是否接收到流水线冲刷请求,若是,则对应保存目标指令集及相应的流水线处理结果,以基于流水线处理结果对目标指令集再次进行流水线处理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对应保存目标指令集及相应的流水线处理结果之后,获取待运行指令集;判断待运行指令集是否与目标指令集吻合;若待运行指令集与目标指令集吻合,则根据流水线处理结果对待运行指令集进行流水线处理;若待运行指令集与目标指令集不吻合,则直接对待运行指令集进行流水线处理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取目标指令集的PC值、流水线处理结果及指令编码;按照预设格式对应保存目标指令集及流水线处理结果;预设格式中的元素类型包括流水线处理结果、指令编码、PC值;相应的,获取待运行指令集的PC值;判断待运行指令集的PC值是否与目标指令集的PC值吻合,若是,则判定待运行指令集与目标指令集吻合,若否,则判定待运行指令集与目标指令集不吻合。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取目标指令集中各个指令的译码结果;对应保存目标指令集及译码结果;相应的,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将接收到流水线冲刷请求时,目标指令集中未执行的指令作为第一类指令,将目标指令集中除第一类指令之外的指令作为第二类指令;获取第一类指令的译码结果,对应保存第一类指令及译码结果;获取第二类指令的执行结果,对应保存第二类指令及执行结果;相应的,对于待运行指令集中与第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对译码结果进行流水线处理;对于待运行指令集中与第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对执行结果进行流水线处理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取在接收到流水线冲刷请求时,目标指令集在流水线架构不同阶段下的处理结果;对应保存目标指令集及在流水线架构不同阶段下的处理结果;相应的,按照流水线架构,从处理结果对应的流水线架构阶段的下一阶段开始,直接对处理结果进行流水线处理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在预设存储设备中,对应保存目标指令集及流水线处理结果。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种指令流水线处理中相关部分的说明请参见本申请实施例提供的一种指令流水线处理中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种指令流水线处理方法,其特征在于,包括:
获取目标指令集;
获取目标预测结果,所述目标预测结果为对所述目标指令集的跳转方式进行预测后得到的结果;
按照所述目标预测结果,对所述目标指令集进行流水线处理;
判断是否接收到流水线冲刷请求,若是,则对应保存所述目标指令集及相应的流水线处理结果,以基于所述流水线处理结果对所述目标指令集再次进行流水线处理;
其中,所述对应保存所述目标指令集及相应的流水线处理结果之后,还包括:
获取待运行指令集;
判断所述待运行指令集是否与所述目标指令集吻合;
若所述待运行指令集与所述目标指令集吻合,则根据所述流水线处理结果对所述待运行指令集进行流水线处理目标预测结果;
若所述待运行指令集与所述目标指令集不吻合,则直接对所述待运行指令集进行流水线处理目标预测结果。
2.根据权利要求1所述的方法,其特征在于,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
获取所述目标指令集的PC值、流水线处理结果及指令编码;
按照预设格式对应保存所述目标指令集及所述流水线处理结果;
所述预设格式中的元素类型包括流水线处理结果、指令编码、PC值;
所述判断所述待运行指令集是否与所述目标指令集吻合,包括:
获取所述待运行指令集的PC值;
判断所述待运行指令集的PC值是否与所述目标指令集的PC值吻合,若是,则判定所述待运行指令集与所述目标指令集吻合,若否,则判定所述待运行指令集与所述目标指令集不吻合。
3.根据权利要求1或2所述的方法,其特征在于,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
获取所述目标指令集中各个指令的译码结果;
对应保存所述目标指令集及所述译码结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
从流水线架构的执行阶段开始,直接对所述译码结果进行流水线处理。
4.根据权利要求1或2所述的方法,其特征在于,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
将接收到所述流水线冲刷请求时,所述目标指令集中未执行的指令作为第一类指令,将所述目标指令集中除所述第一类指令之外的指令作为第二类指令;
获取所述第一类指令的译码结果,对应保存所述第一类指令及所述译码结果;
获取所述第二类指令的执行结果,对应保存所述第二类指令及所述执行结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
对于所述待运行指令集中与所述第一类指令相吻合的指令,从流水线架构的执行阶段开始,直接对所述译码结果进行流水线处理;
对于所述待运行指令集中与所述第二类指令相吻合的指令,从流水线架构的存储器操作阶段开始,直接对所述执行结果进行流水线处理。
5.根据权利要求1或2所述的方法,其特征在于,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
获取在接收到所述流水线冲刷请求时,所述目标指令集在流水线架构不同阶段下的处理结果;
对应保存所述目标指令集及在流水线架构不同阶段下的所述处理结果;
所述根据所述流水线处理结果对所述待运行指令集进行流水线处理,包括:
按照流水线架构,从所述处理结果对应的流水线架构阶段的下一阶段开始,直接对所述处理结果进行流水线处理。
6.根据权利要求1所述的方法,其特征在于,所述对应保存所述目标指令集及相应的流水线处理结果,包括:
在预设存储设备中,对应保存所述目标指令集及所述流水线处理结果。
7.一种指令流水线处理系统,其特征在于,包括:
第一获取模块,用于获取目标指令集;
第二获取模块,用于获取目标预测结果,所述目标预测结果为对所述目标指令集的跳转方式进行预测后得到的结果;
第一处理模块,用于按照所述目标预测结果,对所述目标指令集进行流水线处理;
第一判断模块,用于判断是否接收到流水线冲刷请求,若是,则对应保存所述目标指令集及相应的流水线处理结果,以基于所述流水线处理结果对所述目标指令集再次进行流水线处理;
第三获取模块,用于获取待运行指令集;
第二判断模块,用于判断所述待运行指令集是否与所述目标指令集吻合;若所述待运行指令集与所述目标指令集吻合,则根据所述流水线处理结果对所述待运行指令集进行流水线处理目标预测结果;若所述待运行指令集与所述目标指令集不吻合,则直接对所述待运行指令集进行流水线处理目标预测结果。
8.一种指令流水线处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910832252.3A CN110688160B (zh) | 2019-09-04 | 2019-09-04 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
PCT/CN2019/121578 WO2021042596A1 (zh) | 2019-09-04 | 2019-11-28 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
US17/640,589 US11915006B2 (en) | 2019-09-04 | 2019-11-28 | Method, system and device for improved efficiency of pipeline processing of instructions, and computer storage medium |
KR1020227008585A KR20220040500A (ko) | 2019-09-04 | 2019-11-28 | 명령어 파이프라인 처리 방법, 시스템, 디바이스 및 컴퓨터 저장 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910832252.3A CN110688160B (zh) | 2019-09-04 | 2019-09-04 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688160A CN110688160A (zh) | 2020-01-14 |
CN110688160B true CN110688160B (zh) | 2021-11-19 |
Family
ID=69107822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910832252.3A Active CN110688160B (zh) | 2019-09-04 | 2019-09-04 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11915006B2 (zh) |
KR (1) | KR20220040500A (zh) |
CN (1) | CN110688160B (zh) |
WO (1) | WO2021042596A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138803B (zh) * | 2021-05-12 | 2023-03-24 | 类人思维(山东)智慧科技有限公司 | 一种计算机编程用指令集存储系统 |
CN113868899B (zh) * | 2021-12-03 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种分支指令处理方法、系统、设备及计算机存储介质 |
CN114924999B (zh) * | 2022-07-21 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种高速缓存管理方法、装置、系统、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100342349C (zh) * | 1997-12-16 | 2007-10-10 | 英特尔公司 | 错误推测之后的指令再执行的流水线外部跟踪缓冲器 |
CN104298488A (zh) * | 2014-09-29 | 2015-01-21 | 上海兆芯集成电路有限公司 | 循环预测器指导的循环缓冲器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135719A1 (en) | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for tracing instruction disposition information |
US7363477B2 (en) * | 2003-12-03 | 2008-04-22 | Intel Corporation | Method and apparatus to reduce misprediction penalty by exploiting exact convergence |
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US7685410B2 (en) * | 2007-02-13 | 2010-03-23 | Global Foundries Inc. | Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects |
US7779241B1 (en) * | 2007-04-10 | 2010-08-17 | Dunn David A | History based pipelined branch prediction |
US8533441B2 (en) * | 2008-08-12 | 2013-09-10 | Freescale Semiconductor, Inc. | Method for managing branch instructions and a device having branch instruction management capabilities |
US9952869B2 (en) * | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
CN101881995B (zh) * | 2010-06-04 | 2011-11-09 | 四川大学 | 一种针对arm指令集的层次分类功耗测量方法 |
US20140025894A1 (en) * | 2012-07-18 | 2014-01-23 | Electronics And Telecommunications Research Institute | Processor using branch instruction execution cache and method of operating the same |
CN103984525B (zh) | 2013-02-08 | 2017-10-20 | 上海芯豪微电子有限公司 | 指令处理系统及方法 |
CN104423927B (zh) | 2013-08-30 | 2018-07-13 | 华为技术有限公司 | 指令处理方法及装置、处理器 |
CN106843816B (zh) | 2017-01-23 | 2019-06-18 | 青岛专用集成电路设计工程技术研究中心 | 一种分支预测控制方法及装置 |
-
2019
- 2019-09-04 CN CN201910832252.3A patent/CN110688160B/zh active Active
- 2019-11-28 WO PCT/CN2019/121578 patent/WO2021042596A1/zh active Application Filing
- 2019-11-28 KR KR1020227008585A patent/KR20220040500A/ko unknown
- 2019-11-28 US US17/640,589 patent/US11915006B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100342349C (zh) * | 1997-12-16 | 2007-10-10 | 英特尔公司 | 错误推测之后的指令再执行的流水线外部跟踪缓冲器 |
CN104298488A (zh) * | 2014-09-29 | 2015-01-21 | 上海兆芯集成电路有限公司 | 循环预测器指导的循环缓冲器 |
Non-Patent Citations (2)
Title |
---|
A Novel Approach for Branch Buffer Consuming Power Reduction;B. Zamani;《2008 International Conference on Computer and Electrical Engineering》;20090109;436-440 * |
面向TI C67X DSP深度流水线及并行指令执行模拟优化技术的研究;高进;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190215(第 02 期);I138-458 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021042596A1 (zh) | 2021-03-11 |
KR20220040500A (ko) | 2022-03-30 |
US11915006B2 (en) | 2024-02-27 |
CN110688160A (zh) | 2020-01-14 |
US20220334844A1 (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688160B (zh) | 一种指令流水线处理方法、系统、设备及计算机存储介质 | |
CN107315715B (zh) | 一种用于执行矩阵加/减运算的装置和方法 | |
US9043806B2 (en) | Information processing device and task switching method | |
WO2012106716A1 (en) | Processor with a hybrid instruction queue with instruction elaboration between sections | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
CN107870780B (zh) | 数据处理装置和方法 | |
CN112445538B (zh) | 可重构处理器的配置加载系统及方法 | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
US8412862B2 (en) | Direct memory access transfer efficiency | |
CN116243978A (zh) | 分布式训练中的数据规约方法、装置、介质和训练系统 | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
TWI752068B (zh) | 一種運算裝置及其操作方法 | |
US10776139B2 (en) | Simulation apparatus, simulation method, and computer readable medium | |
US20100125720A1 (en) | Instruction mode identification apparatus and method | |
US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
US20140281368A1 (en) | Cycle sliced vectors and slot execution on a shared datapath | |
US9740660B2 (en) | CPU control method, electronic system control method and electronic system for improved CPU utilization in executing functions | |
CN117093266A (zh) | 指令处理装置、方法、电子设备和存储介质 | |
CN115269011A (zh) | 指令执行单元、处理单元及相关装置和方法 | |
JP2024072010A (ja) | プログラム、命令実行制御装置、及び命令実行制御方法 | |
CN116382893A (zh) | 基于协处理器的运算方法、装置、存储介质及电子设备 | |
CN115167923A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
CN118057308A (zh) | 指令处理优化方法及相关装置 |
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 |