CN111176729A - 一种信息处理方法、装置及计算机可读存储介质 - Google Patents
一种信息处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111176729A CN111176729A CN201811343266.0A CN201811343266A CN111176729A CN 111176729 A CN111176729 A CN 111176729A CN 201811343266 A CN201811343266 A CN 201811343266A CN 111176729 A CN111176729 A CN 111176729A
- Authority
- CN
- China
- Prior art keywords
- instruction
- jump
- information
- jump instruction
- instruction 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 32
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000004519 manufacturing process Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000009191 jumping Effects 0.000 claims 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Abstract
本文公开了一种信息处理方法,装置及计算机可读存储介质,信息处理方法包括:处理器控制进程获取流水线正在执行的当前指令的类型;如果当前指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;所述当前指令执行完后,控制流水线解析当前指令以得到当前指令的第二跳转指令信息;如果第一跳转指令信息和第二跳转指令信息相同,控制流水线执行获得的跳转指令。由于处理器控制进程预先获得了跳转指令信息和跳转指令,当流水线解析出跳转指令信息就是获得的指令信息时,说明获得的跳转指令是正确的,可以直接执行获得的跳转指令,提升了流水线的执行性能。
Description
技术领域
本发明实施例涉及计算机技术领域,尤指一种信息处理方法、装置及计算机可读存储介质。
背景技术
“取指”是指处理器从指令存储单元中取出所要执行的指令的操作,传统处理器常常采用多线程单流水线方法进行取指。
虽然这种方法可以以切换线程的方式来缓解调度上的延时,降低流水线空闲率,但是随着微码指令的复杂程度日益提高,常常会涉及到指令的多次跳转,而一旦涉及到指令跳转,就需要等待流水线解析跳转指令信息,然后才能获取跳转指令,因此会降低流水线的执行性能。
发明内容
为了解决上述技术问题,本发明实施例提供了信息处理方法,装置及计算机可读存储介质,能够提高指令获取速度,从而提升流水线的执行性能。
为了达到本发明实施例的目的,本发明实施例提供了一种信息处理方法,包括:
处理器控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线执行获得的跳转指令。
本发明实施例还提供了一种信息处理方法,包括:
处理器获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
本发明实施例还提供了一种信息处理装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线执行获得的跳转指令。
本发明实施例还提供了一种信息处理装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机可执行命令,所述计算机可执行命令用于执行以下步骤:
控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二的跳转指令信息相同,控制所述流水线执行获得的跳转指令。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机可执行命令,所述计算机可执行命令用于执行以下步骤:
获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
由于处理器控制进程预先获得了第一跳转指令信息和跳转指令,当流水线解析出第二跳转指令信息就是获得的第一指令信息时,说明获得的跳转指令是正确的,可以直接执行获得的跳转指令,节省了处理时间,因此本发明实施例提供的信息处理方法,装置及计算机可读存储介质提高了指令获取速度,提升了流水线的执行性能。
本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。
图1为本发明实施例提供的一种信息处理方法的流程示意图;
图2为本发明实施例提供的另一种信息处理方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种信息处理方法,如图1所示,包括:
步骤101、处理器控制进程获取流水线正在执行的当前指令的类型。
步骤102、如果当前指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
需要说明的是,参考信息包含不同当前指令对应的跳转指令信息,因此根据参考信息能够获取当前指令的跳转指令信息,第一跳转指令信息中的“第一”用于标识该跳转指令信息是根据参考信息获得的。具体的,跳转指令信息是能够标识跳转指令的信息,例如可以是跳转指令的地址信息,如果跳转指令信息是跳转指令的地址信息,那么根据跳转指令的地址信息就能够知晓跳转指令所在地址,进而获取跳转指令。
步骤103、当前指令执行完后,控制流水线解析当前指令以得到当前指令的跳转指令信息。
步骤104、如果第一跳转指令信息和第二跳转指令信息相同,控制流水线执行获得的跳转指令。
需要说明的是,本发明实施例中“第一跳转指令信息”指的是控制进程根据参考信息获得的跳转指令信息,该信息相当于“预测”出的一个跳转指令信息,而本发明实施例中“第二跳转指令信息”指的是控制流水线解析当前指令得到的跳转指令信息,该信息相当于“实际解析”出的一个跳转指令信息。
本发明实施例提供的信息处理方法,由于处理器控制进程预先获得了第一跳转指令信息和跳转指令,当流水线解析出第二跳转指令信息就是获得的第一指令信息时,说明获得的跳转指令是正确的,可以直接执行获得的跳转指令,因此节省了处理时间,增加了指令获取速度,也提升了流水线的执行性能。
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。
需要说明的是,跳转可能性数值可以以概率的形式表示,可以以权重的形式表示。
具体的,假设当前指令信息、跳转指令信息与跳转可能性数值的对应关系中的当前指令信息包括:指令A、指令B和指令C,指令A可能的跳转指令为指令a1、指令a2、指令a3和指令a4,指令B可能的跳转指令为指令b1、指令b2和指令b3,指令C可能的跳转指令为指令c1和指令c2,假设跳转可能性数值以权重的形式表示,指令A跳转指令a1的权重为5,指令A跳转指令a2的权重为4,指令A跳转指令a3的权重为8,指令A跳转指令a4的权重为1;指令B跳转指令b1的权重为3,指令B跳转指令b2的权重为4,指令B跳转指令b3的权重为1;指令C跳转指令c1的权重为3,指令C跳转指令c3的权重为2,那么当前指令信息、跳转指令信息与跳转可能性数值的对应关系可以由表1所示,
表1
控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,包括:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与当前指令对应,且跳转可能性数值最大的跳转指令信息,作为当前指令的第一跳转指令信息。
可选地,控制流水线执行获得的跳转指令之后,还包括:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
具体的,可以按照预先制定的规则在参考信息中增加与获得的跳转指令对应的跳转可能性数值,举例来说,假设跳转可能性数值以权值的形式表示并且参考信息如表1所示,并且假设每次修改跳转可能性数值时在原先数值基础上加1,还假设获得的跳转指令是指令a3,因此增加指令a3对应的跳转可能性数值至“10”。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,还包括:
获取与第二跳转指令信息对应的跳转指令。
控制流水线执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
本发明实施例还提供一种信息处理方法,如图2所示,包括:
步骤201、处理器获取携带有起始指令信息的报文。
步骤202、获取与起始指令信息对应的起始指令。
步骤203、控制流水线对报文执行起始指令,并控制进程获取流水线正在执行的起始指令的类型。
步骤204、如果起始指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
步骤205、当前指令执行完后,控制流水线解析起始指令以得到起始指令的第二跳转指令信息。
步骤206、如果第一跳转指令信息和第二跳转指令信息相同,控制流水线对报文继续执行获得的跳转指令,并重复执行控制进程获取流水线正在执行的当前指令的类型的步骤,直到流水线正在执行的当前指令的类型是出包指令。
具体的,从起始指令到出包指令过程中每一条指令都需要判断其类型,如果是跳转指令类型,则需要按照步骤204、205和206前半部分的内容进行处理,只不过步骤204、205和206前半部分的内容是以“起始指令”为对象进行描述的,当处理非起始指令时,可以将处理对象由“起始指令”变更为“当前指令”进行描述,即:控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。当流水线执行完当前指令后,控制流水线解析当前指令以得到当前指令的第二跳转指令信息。如果第一跳转指令信息和第二跳转指令信息相同,控制流水线对报文继续执行获得的跳转指令,
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。
控制进程根据预先建立的参考信息获取起始指令的第一跳转指令信息,包括:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与起始指令对应,且跳转可能性数值最大的跳转指令信息,作为起始指令的第一跳转指令信息。
可选地,控制流水线执行获得的跳转指令之后,还包括:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,还包括:
获取与第二跳转指令信息对应的跳转指令。
控制流水线对报文执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
可选地,根据获得的第一跳转指令信息获取跳转指令,包括
在指令缓存中查找是否存在与获得的第一跳转指令信息对应的跳转指令。
如果存在,获取与获得的第一跳转指令信息对应的跳转指令。
如果不存在,在外部存储器中查找并获取与获得的第一跳转指令信息对应的跳转指令。
可选地,根据获得的跳转指令信息获取跳转指令之后,还包括:
将获得的第一跳转指令存储在线程对应的指令寄存器中。
本发明实施例提供的信息处理方法,由于处理器控制进程预先获得了第一跳转指令信息和跳转指令,当流水线解析出第二跳转指令信息就是获得的第一指令信息时,说明获得的跳转指令是正确的,可以直接执行获得的跳转指令,因此节省了处理时间,增加了指令获取速度,从而提升了流水线的执行性能和报文处理速度。
本发明实施例还提供一种信息处理方法,该方法包括:
步骤1、报文从前级模块调度到微处理器中,在线程管理模块中首先分配获得一个用于执行指令的线程号和一个用于表示报文实际缓存的包号。
步骤2、在指令预取模块中根据报文中携带的起始指令地址向指令缓存中发起指令申请。指令缓存收到指令取指申请后,进行指令检索,如果检索命中则返回指令,否则向内核外部指令存储发出取指请求。此外,在指令预取模块中,也完成分支预测模块给出的跳转地址的取指请求。
步骤3、指令预取模块取回指令后,交于指令预解析模块进行指令解析,解析完成后交由指令调度模块进行调度,如果在此步骤中解析出该条指令是一条分支跳转指令,则同时将此指令发送给分支跳转模块进行分支预测。
步骤4、指令调度模块根据最近最少使用(Least Recently Used,LRU)调度算法将指令发射给流水线进行执行。
步骤5、流水线分为七级流水,不同的指令会对不同存储进行操作,若执行的指令非出包指令,则向指令预取模块继续发出下一条指令的执行请求,否则当流水线执行完一条发包指令后,会通知后级出包调度模块准备出包。此外,流水线如果解析出跳转指令,会向分支预测模块发出实际的跳转地址用于分支概率修正。
步骤6、出包调度模块在得到流水线的出包信号之后,回收此报文在入口处的线程号和包号,并将报文调度出微处理器。
具体的,当一个报文进入网络处理器内核中处理时,在获得一个线程号后,指令预取模块先解析报文携带的指令起始地址,并从指令缓存中取指令,预取模块解析取回的指令类型,判断是否为跳转指令,如果非跳转指令则直接将指令根据LRU调度给流水线执行,否则不仅需要将指令根据LRU调度给流水线执行,还需要要将这条指令发送给分支预测模块,然后根据分支预测给出的跳转可能性提前向指令缓存发出取指请求,并缓存在对应线程的指令寄存器中,等待流水线执行跳转指令解析出跳转地址后与跳转预测的地址进行比对,如果一致则直接将指令发往LRU进行调度,否则此线程挂起,并向I-cache重新取指,同时,根据流水线解析出的实际跳转分支地址进行分支预测的概率修正,根据流水线解析出的实际跳转分支地址进行分支计数器的累加,当指令预取需要进行分支预测时,先解析出指令的所有的跳转分支,再根据各跳转分支的计数器大小(历史跳转次数)进行判跳转断概率判断,当其中任一计数器溢出时,该计数器置1,其余所有计数器清0。当报文最终执行到出包指令时,则出包调度模块将报文调出微处理器,同时释放线程号与包号。
本发明实施例还提供一种信息处理装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
控制进程获取流水线正在执行的当前指令的类型。
如果当前指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
当前指令执行完后,控制流水线解析当前指令以得到当前指令的第二跳转指令信息。
如果第一跳转指令信息和第二跳转指令信息相同,控制流水线执行获得的跳转指令。
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。存储器中具体存储有以下可被处理器执行的命令:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与当前指令对应,且跳转可能性数值最大的跳转指令信息,作为当前指令的第一跳转指令信息。
可选地,存储器中还存储有以下可被处理器执行的命令:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,存储器中还存储有以下可被处理器执行的命令:
获取与第二跳转指令信息对应的跳转指令。
控制流水线执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
本发明实施例还提供一种信息处理装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
获取携带有起始指令信息的报文。
获取与起始指令信息对应的起始指令。
控制流水线对报文执行起始指令,并控制进程获取流水线正在执行的起始指令的类型。
如果起始指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
当前指令执行完后,控制流水线解析起始指令以得到起始指令的第二跳转指令信息。
如果第一跳转指令信息和第二跳转指令信息相同,控制流水线对报文继续执行获得的跳转指令,并重复执行控制进程获取流水线正在执行的当前指令的类型的步骤,直到流水线正在执行的当前指令的类型是出包指令。
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。存储器中具体存储有以下可被处理器执行的命令:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与起始指令对应,且跳转可能性数值最大的跳转指令信息,作为起始指令的第一跳转指令信息。
可选地,存储器中还存储有以下可被处理器执行的命令:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,存储器中还存储有以下可被处理器执行的命令:
获取与第二跳转指令信息对应的跳转指令。
控制流水线对报文执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
可选地,存储器中具体存储有以下可被处理器执行的命令:
在指令缓存中查找是否存在与获得的第一跳转指令信息对应的跳转指令。
如果存在,获取与获得的第一跳转指令信息对应的跳转指令。
如果不存在,在外部存储器中查找并获取与获得的第一跳转指令信息对应的跳转指令。
可选地,存储器中还存储有以下可被处理器执行的命令:
将获得的第一跳转指令存储在线程对应的指令寄存器中。
本发明实施例还提供一种计算机可读存储介质,存储介质上存储有计算机可执行命令,计算机可执行命令用于执行以下步骤:
控制进程获取流水线正在执行的当前指令的类型。
如果当前指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
当前指令执行完后,控制流水线解析当前指令以得到当前指令的第二跳转指令信息。
如果第一跳转指令信息和第二跳转指令信息相同,控制流水线执行获得的跳转指令。
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。计算机可执行命令具体用于执行以下步骤:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与当前指令对应,且跳转可能性数值最大的跳转指令信息,作为当前指令的第一跳转指令信息。
可选地,计算机可执行命令还用于执行以下步骤:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,计算机可执行命令还用于执行以下步骤:
获取与第二跳转指令信息对应的跳转指令。
控制流水线执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
本发明实施例还提供一种计算机可读存储介质,存储介质上存储有计算机可执行命令,计算机可执行命令用于执行以下步骤:
获取携带有起始指令信息的报文。
获取与起始指令信息对应的起始指令。
控制流水线对报文执行起始指令,并控制进程获取流水线正在执行的起始指令的类型。
如果起始指令的类型是跳转指令类型,控制进程根据预先建立的参考信息获取起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令。
当前指令执行完后,控制流水线解析起始指令以得到起始指令的第二跳转指令信息。
如果第一跳转指令信息和第二跳转指令信息相同,控制流水线对报文继续执行获得的跳转指令,并重复执行控制进程获取流水线正在执行的当前指令的类型的步骤,直到流水线正在执行的当前指令的类型是出包指令。
可选地,参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,跳转可能性数值用于表示当前指令跳转至跳转指令的可能性。计算机可执行命令具体用于执行以下步骤:
控制进程根据指令信息、跳转指令信息与跳转可能性数值的对应关系获取与起始指令对应,且跳转可能性数值最大的跳转指令信息,作为起始指令的第一跳转指令信息。
可选地,计算机可执行命令还用于执行以下步骤:
在参考信息中增加与获得的跳转指令对应的跳转可能性数值。
可选地,如果第一跳转指令信息和第二跳转指令信息不相同,计算机可执行命令还用于执行以下步骤:
获取与第二跳转指令信息对应的跳转指令。
控制流水线对报文执行与第二跳转指令信息对应的跳转指令。
在参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
可选地,计算机可执行命令具体用于执行以下步骤:
在指令缓存中查找是否存在与获得的第一跳转指令信息对应的跳转指令。
如果存在,获取与获得的第一跳转指令信息对应的跳转指令。
如果不存在,在外部存储器中查找并获取与获得的第一跳转指令信息对应的跳转指令。
可选地,计算机可执行命令还用于执行以下步骤:
将获得的第一跳转指令存储在线程对应的指令寄存器中。
虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明实施例而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (14)
1.一种信息处理方法,包括:
处理器控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线执行获得的跳转指令。
2.根据权利要求1所述的信息处理方法,其特征在于,所述参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,所述跳转可能性数值用于表示当前指令跳转至跳转指令的可能性;
所述控制进程根据预先建立的参考信息获取当前指令的第一跳转指令信息,包括:
控制所述进程根据所述指令信息、跳转指令信息与跳转可能性数值的对应关系获取与所述当前指令对应,且跳转可能性数值最大的跳转指令信息,作为所述当前指令的第一跳转指令信息。
3.根据权利要求2所述的信息处理方法,其特征在于,所述控制流水线执行获得的跳转指令之后,还包括:
在所述参考信息中增加与获得的跳转指令对应的跳转可能性数值。
4.根据权利要2所述的信息处理方法,其特征在于,如果第一跳转指令信息和第二跳转指令信息不相同,还包括:
获取与第二跳转指令信息对应的跳转指令;
控制所述流水线执行所述与第二跳转指令信息对应的跳转指令;
在所述参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
5.一种信息处理方法,包括:
处理器获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
6.根据权利要5所述的信息处理方法,其特征在于,所述参考信息包括:当前指令信息、跳转指令信息与跳转可能性数值的对应关系;其中,所述跳转可能性数值用于表示当前指令跳转至跳转指令的可能性;
所述控制进程根据预先建立的参考信息获取起始指令的第一跳转指令信息,包括:
控制所述进程根据所述指令信息、跳转指令信息与跳转可能性数值的对应关系获取与所述起始指令对应,且跳转可能性数值最大的跳转指令信息,作为所述起始指令的第一跳转指令信息。
7.根据权利要6所述的信息处理方法,其特征在于,所述控制流水线执行获得的跳转指令之后,还包括:
在所述参考信息中增加与获得的跳转指令对应的跳转可能性数值。
8.根据权利要6所述的信息处理方法,其特征在于,如果第一跳转指令信息和第二跳转指令信息不相同,还包括:
获取与第二跳转指令信息对应的跳转指令;
控制所述流水线对所述报文执行所述与第二跳转指令信息对应的跳转指令;
在所述参考信息中增加与解析得到的跳转指令对应的跳转可能性数值。
9.根据权利要求5所述的信息处理方法,其特征在于,所述根据获得的第一跳转指令信息获取跳转指令,包括
在指令缓存中查找是否存在与获得的第一跳转指令信息对应的跳转指令;
如果存在,获取所述与获得的第一跳转指令信息对应的跳转指令;
如果不存在,在外部存储器中查找并获取与获得的第一跳转指令信息对应的跳转指令。
10.根据权利要求5所述的信息处理方法,其特征在于,所述根据获得的第一跳转指令信息获取跳转指令之后,还包括:
将获得的第一跳转指令存储在所述线程对应的指令寄存器中。
11.一种信息处理装置,其特征在于,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线执行获得的跳转指令。
12.一种信息处理装置,其特征在于,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:
获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
13.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机可执行命令,所述计算机可执行命令用于执行以下步骤:
控制进程获取流水线正在执行的当前指令的类型;
如果所述当前指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述当前指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述当前指令以得到所述当前指令的第二跳转指令信息;
如果第一跳转指令信息和第二的跳转指令信息相同,控制所述流水线执行获得的跳转指令。
14.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机可执行命令,所述计算机可执行命令用于执行以下步骤:
获取携带有起始指令信息的报文;
获取与所述起始指令信息对应的起始指令;
控制流水线对所述报文执行所述起始指令,并控制进程获取流水线正在执行的起始指令的类型;
如果所述起始指令的类型是跳转指令类型,控制所述进程根据预先建立的参考信息获取所述起始指令的第一跳转指令信息,并根据获得的第一跳转指令信息获取跳转指令;
所述当前指令执行完后,控制所述流水线解析所述起始指令以得到所述起始指令的第二跳转指令信息;
如果第一跳转指令信息和第二跳转指令信息相同,控制所述流水线对所述报文继续执行获得的跳转指令,并重复执行控制所述进程获取所述流水线正在执行的当前指令的类型的步骤,直到所述流水线正在执行的当前指令的类型是出包指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811343266.0A CN111176729A (zh) | 2018-11-13 | 2018-11-13 | 一种信息处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811343266.0A CN111176729A (zh) | 2018-11-13 | 2018-11-13 | 一种信息处理方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111176729A true CN111176729A (zh) | 2020-05-19 |
Family
ID=70649923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811343266.0A Pending CN111176729A (zh) | 2018-11-13 | 2018-11-13 | 一种信息处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176729A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2258338A1 (en) * | 1999-01-11 | 2000-07-11 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
US20110078425A1 (en) * | 2009-09-25 | 2011-03-31 | Shah Manish K | Branch prediction mechanism for predicting indirect branch targets |
CN102053818A (zh) * | 2009-11-05 | 2011-05-11 | 无锡江南计算技术研究所 | 分支预测方法及装置、处理器 |
CN102099781A (zh) * | 2009-05-19 | 2011-06-15 | 松下电器产业株式会社 | 分支预测装置、其分支预测方法、编译器、其编译方法及分支预测程序记录介质 |
CN102163143A (zh) * | 2011-04-28 | 2011-08-24 | 北京北大众志微系统科技有限责任公司 | 一种实现值关联间接跳转预测的方法 |
CN102750219A (zh) * | 2011-04-22 | 2012-10-24 | 清华大学 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
CN104423929A (zh) * | 2013-08-21 | 2015-03-18 | 华为技术有限公司 | 一种分支预测方法及相关装置 |
CN104793921A (zh) * | 2015-04-29 | 2015-07-22 | 深圳芯邦科技股份有限公司 | 一种指令分支预测方法与系统 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN105786448A (zh) * | 2014-12-26 | 2016-07-20 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN105867884A (zh) * | 2016-03-24 | 2016-08-17 | 清华大学 | 一种改进型PAp分支预测方法 |
CN105867880A (zh) * | 2016-04-01 | 2016-08-17 | 中国科学院计算技术研究所 | 一种面向间接跳转分支预测的分支目标缓冲器及设计方法 |
CN105975252A (zh) * | 2016-04-29 | 2016-09-28 | 龙芯中科技术有限公司 | 一种处理指令的流水线的实现方法、装置及处理器 |
-
2018
- 2018-11-13 CN CN201811343266.0A patent/CN111176729A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2258338A1 (en) * | 1999-01-11 | 2000-07-11 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
CN102099781A (zh) * | 2009-05-19 | 2011-06-15 | 松下电器产业株式会社 | 分支预测装置、其分支预测方法、编译器、其编译方法及分支预测程序记录介质 |
US20110078425A1 (en) * | 2009-09-25 | 2011-03-31 | Shah Manish K | Branch prediction mechanism for predicting indirect branch targets |
CN102053818A (zh) * | 2009-11-05 | 2011-05-11 | 无锡江南计算技术研究所 | 分支预测方法及装置、处理器 |
CN102750219A (zh) * | 2011-04-22 | 2012-10-24 | 清华大学 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
CN102163143A (zh) * | 2011-04-28 | 2011-08-24 | 北京北大众志微系统科技有限责任公司 | 一种实现值关联间接跳转预测的方法 |
CN104423929A (zh) * | 2013-08-21 | 2015-03-18 | 华为技术有限公司 | 一种分支预测方法及相关装置 |
CN105786448A (zh) * | 2014-12-26 | 2016-07-20 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN104793921A (zh) * | 2015-04-29 | 2015-07-22 | 深圳芯邦科技股份有限公司 | 一种指令分支预测方法与系统 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN105867884A (zh) * | 2016-03-24 | 2016-08-17 | 清华大学 | 一种改进型PAp分支预测方法 |
CN105867880A (zh) * | 2016-04-01 | 2016-08-17 | 中国科学院计算技术研究所 | 一种面向间接跳转分支预测的分支目标缓冲器及设计方法 |
CN105975252A (zh) * | 2016-04-29 | 2016-09-28 | 龙芯中科技术有限公司 | 一种处理指令的流水线的实现方法、装置及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US20170286119A1 (en) | Providing load address predictions using address prediction tables based on load path history in processor-based systems | |
US20060242365A1 (en) | Method and apparatus for suppressing duplicative prefetches for branch target cache lines | |
JP5815596B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
TW201235939A (en) | Instruction sequence buffer to store branches having reliably predictable instruction sequences | |
JP6796717B2 (ja) | 分岐ターゲットバッファの圧縮 | |
US20230350683A1 (en) | Branch prediction method, branch prediction apparatus, processor, medium, and device | |
US20220283811A1 (en) | Loop buffering employing loop characteristic prediction in a processor for optimizing loop buffer performance | |
WO2017053111A1 (en) | Method and apparatus for dynamically tuning speculative optimizations based on predictor effectiveness | |
TW201433979A (zh) | 在提前執行中資料的選擇性污染 | |
CN116048627B (zh) | 指令缓冲方法、装置、处理器、电子设备及可读存储介质 | |
US11249762B2 (en) | Apparatus and method for handling incorrect branch direction predictions | |
US9158696B2 (en) | Hiding instruction cache miss latency by running tag lookups ahead of the instruction accesses | |
US10789169B2 (en) | Apparatus and method for controlling use of a register cache | |
CN111176729A (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN114528025B (zh) | 指令处理方法、装置、微控制器及可读存储介质 | |
US9311247B1 (en) | Method and apparatus for detecting patterns of memory accesses in a computing system with out-of-order program execution | |
US10732980B2 (en) | Apparatus and method for controlling use of a register cache | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
US20140019722A1 (en) | Processor and instruction processing method of processor | |
JP2508021B2 (ja) | デ−タ処理装置 | |
WO2019202287A1 (en) | An apparatus and method for prefetching data items | |
US11928474B2 (en) | Selectively updating branch predictors for loops executed from loop buffers in a processor | |
CN117472446B (zh) | 基于处理器的多级取指目标缓冲器的分支预测方法 | |
US8266414B2 (en) | Method for executing an instruction loop and a device having instruction loop execution capabilities |
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 |