CN107729054A - 实现处理器对循环体执行的方法及装置 - Google Patents
实现处理器对循环体执行的方法及装置 Download PDFInfo
- Publication number
- CN107729054A CN107729054A CN201710972635.1A CN201710972635A CN107729054A CN 107729054 A CN107729054 A CN 107729054A CN 201710972635 A CN201710972635 A CN 201710972635A CN 107729054 A CN107729054 A CN 107729054A
- Authority
- CN
- China
- Prior art keywords
- loop
- loop body
- instruction
- processor
- buffer area
- 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.)
- Granted
Links
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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
Abstract
本发明涉及一种实现处理器对循环体执行的方法及装置,其方法包括:检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;根据所述循环开始信号,使所述循环体对应的指令保留在所述指令队列缓存区;将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,处理器从所述起始地址开始,依次执行所述程序块对应的指令;当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号。本发明的技术方案,通过设置循环控制机制,使得重复执行程序块时直接从指令缓存区中读取指令,节省了分支开销,加快了循环体的执行效率。
Description
技术领域
本发明涉及处理器体系结构领域,特别是涉及一种实现处理器对循环体执行的方法及装置。
背景技术
现有的处理器体系中,利用流水线技术,以提高处理器执行的效率,但对于流水线来说,分支跳转的发生,会清空流水线,执行程序时需要重新获取新的程序指令,产生了额外的开销,大大影响了流水线的执行效率。
现有技术中,主要是通过分支预测的方法节省分支跳转所产生的开销,但是分支预测硬件机制复杂,预测时需要查询预测表,不仅增加硬件成本,而且在查表过程中也会带来开销,无法完全解决循环体在循环执行过程中产生的开销问题。
发明内容
基于此,有必要针对循环体开销的问题,提出一种实现处理器对循环体执行的方法。
一种实现处理器对循环体执行的方法,包括:
检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块;
根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区;
将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令;
当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号;
根据所述循环返回信号控制指针跳转至所述起始地址,返回控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令的步骤。
一种实现处理器对循环体执行的装置,包括:
循环控制机制启动模块,用于检测到进入循环体时,控制所述循环体对应的指令依次进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块;
指令保存模块,用于根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区;
指令执行模块,用于将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令;
返回信号发出模块,用于当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号;
指令跳转模块,用于根据所述循环返回信号控制指针跳转至所述起始地址,使得所述指令执行模块再次控制处理器从所述起始地址开始,依次执行所述程序块对应的指令。
上述实现处理器对循环体执行的方法及装置,通过设置循环控制机制,控制指令队列缓冲区中的指令,使得循环体节省分支开销,加快了循环体的执行效率。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述实现处理器对循环体执行的方法的步骤。
上述计算机存储介质,通过其存储的计算机程序,实现了加快了循环体的执行效率。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述实现处理器对循环体执行的方法的步骤。
上述计算机设备,通过所述处理器上运行的计算机程序,实现了加快了循环体的执行效率。
附图说明
图1为本发明实现处理器对循环体执行的方法的一实施例的示意性结构图;
图2为本发明实现处理器对循环体执行的方法的一实施例的示意性流程图;
图3为一具体应用场景下循环体无开销执行的流水线时空图;
图4为本发明实现处理器对循环体执行的装置的一实施例的示意性结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明实现处理器对循环体执行的方法的一实施例的示意性流程图。
如图1所示,本实施例中实现处理器对循环体执行的方法包括步骤:
步骤S11,检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块。
程序块的运行是由若干指令执行来完成,其中,指令即将执行时是存放于指令队列缓存区。指令队列缓存区存在于寄存器中,用于暂存即将执行的指令,并且通过移位寄存器,将已执行的指令移除,即将执行的指令移进。预设的循环控制机制为指令队列缓存区发送控制信号,包括循环开始信号,循环返回信号和循环结束信号,指令队列缓存区接收到循环控制机制发送的信号后,根据不同的信号执行对应的命令。预设次数为循环体需要循环执行的次数,可以是由寄存器启动,也可以由立即数启动,预设次数在32位处理器中支持0到2的32次方,当预设次数为0时,循环体执行的次数为0次,即循环体不执行。步骤S12,根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区。
循环开始信号为循环控制机制发送的控制信号;移位寄存器功能包括将已执行的指令移除出指令队列缓存区,若冻结移位寄存器功能,移位寄存器则停止将指令移除出指令队列缓存区的操作,使得指令继续存储在指令队列缓存区中。
步骤S13,将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令。
每个存储在指令队列缓存区中的指令都有对应存储的地址,根据地址可以搜索到该地址对应的指令。指令执行的顺序和指令在队列缓存区的位置的顺序一致。
步骤S14,当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号。
其中,程序块对应的指令为支撑程序块执行的所有指令。
步骤S15,根据所述循环返回信号控制指针跳转至所述起始地址,返回控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令的步骤。
其中,指针为处理器取指指针,指向指令队列,处理器根据指针指向的指令队列地址,将该地址对应的指令调出执行。
上述技术方案,通过设置循环控制机制,触发循环控制机制发送控制指令队列缓存区中指令运行的信号,将促使循环体中重复执行程序块运行的指令保存在指令队列缓存区中,使得重复执行程序块时可以直接从指令缓存区中读取指令,节省了分支开销,加快了循环体的执行效率。
在一实施例中,当检测到所述程序块对应的指令全部执行结束之后,触发所述循环控制机制发出一循环返回信号之前,还包括:检测对所述程序块的执行次数是否达到所述预设次数,若否,触发所述循环控制机制发出一循环返回信号;若是,触发所述循环控制机制发出一循环结束信号,根据所述循环结束信号终止所述循环控制机制,并恢复所述指令队列缓存区的移位寄存器功能。预设次数为在执行指令时,处理器自动加载循环体中需要循环执行的程序块的次数。每完成一次循环,需要循环执行的程序块的次数自动递减。当程序块执行的循环次数达到预设次数,即需要循环执行的程序块的次数为零时,循环体停止运行,处理器触发循环控制机制发出循环结束信号,使循环控制机制结束对指令队列缓存区的控制。当程序块执行的循环次数没有达到预设次数,即需要循环执行的程序块的次数不为零时,处理器触发循环控制机制发出一循环返回信号。
在一实施例中,在检测到进入循环体之后,若检测到中断信号,将对所述循环体的执行信息保存入栈后,执行中断服务程序;当所述中断服务程序执行结束之后,将所述循环体的执行信息出栈,继续执行所述循环体对应的指令。其中,中断信号为中断检测机制发送;检测进入循环体后,启动中断检测机制,实时检测是否需要响应中断。循环体的执行信息包括循环体里面的指令条数、循环体需要执行的次数等。中断服务程序为执行循环体程序时处理器需要临时处理突发事件的程序。
在一实施例中,在检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区步骤之前,还包括:检测所述循环体的大小是否与所述指令缓存区大小匹配;若所述循环体的大小超过所述指令缓存区大小,发出报错信号。循环体的大小为循环体包含的指令数,指令缓存区大小为指令缓存区可以同时缓存的指令数,循环体包含的指令数小于或者等于指令缓存区可以同时缓存的指令数,则循环体的大小与指令缓存区大小匹配。其中,循环体的指令数由汇编器自动计算。
在一实施例中,检测到进入循环体时,判断当前循环体是否与其他循环体嵌套;若是,将所述其他循环体的信息入栈。循环体与其他循环体嵌套,则该循环体外层存在其他循环体,运行该循环体时,需要先将外层其他循环体的信息入栈保存,运行完该循环体再将他循环体的信息出栈运行。其中,其他循环体的信息包括循环体的起始地址,结束地址以及重复循环的次数。
在另一实施例中,在根据所述循环结束信号终止所述循环控制机制之后,还包括步骤:若当前循环体与其他循环体嵌套,将所述其他循环体的信息出栈,控制所述处理执行其他循环体对应的指令。循环体与其他循环体嵌套,则该循环体外层存在其他循环体,循环体结束运行后,将他循环体的信息出栈运行。其中,其他循环体的信息包括循环体的起始地址,结束地址以及重复循环的次数。
在一实施例中,在检测到进入循环体之后,还包括:当检测到所述循环体发生分支跳转时,结束执行所述循环体。分支跳转时为对分支判定成功产生跳转时候。正在运行某程序时需要运行其他程序,则产生分支。
请参阅图2,图2为一应用场景下的实现处理器对循环体执行的方法示意性结构图,包括指令队列、REPEAT模块控制机制、中断检测器。
如图2所示,指令队列有可以同时缓存n个指令的缓存地址,用于依次将执行循环体程序所需要的指令移入并缓存;REPEAT模块控制机制通过发送repeat_start、repeat_back、repeat_end控制信号,来控制指令队列中缓存的指令的执行;中断检测器用于执行循环体程序时,实时检测是否需要响应中断。
当处理器检测到开始执行循环体程序的REP指令时,加载循环体需要循环执行的次数和判断循环体有没有被其他循环体嵌套,若是,将被嵌套的循环体信息入栈的同时启动REPEAT模块控制机制和中断检测器;若否,直接启动REPEAT模块控制机制和中断检测器。
REPEAT模块控制机制启动后发送repeat_start控制信号,指令队列缓存区接收到repeat_start控制信号后,冻结其移位寄存器的功能,使当前执行的指令仍然保留在指令队列缓存区中不被移除,处理器取指指针指向指令队列中的下一个地址,执行下一个指令,以此类推,直至循环体的指令数达到预设定的值,即指令队列中全部缓存执行循环体所需要的所有指令,则触发REPEAT模块控制机制发送repeat_back控制信号。下一次执行循环体程序时,即指令队列缓存区接收到repeat_start控制信号后,处理器不需要重新获取新的指令,绕回接收到repeat_start控制信号时处理器取指指针所指向的起始地址,从该起始地址开始依次将指令队列中缓存的指令读取执行。当检测到循环体已经完成需要循环执行的次数,触发REPEAT模块控制机制发送repeat_end控制信号。指令队列缓存区接收到repeat_end控制信号后,结束对循环体的控制功能,对缓存在指令队列中的指令进行处理,并恢复到普通模式。当循环体执行结束后,判断循环体外是否还存在另一个循环体,若是,则将该循环体信息出栈并执行。
其中,循环体主要涉及两个参数,一个是循环体中重复执行的指令的数目,另一个是循环体重复循环的次数。循环体重复执行的指令的数目和循环体重复循环的次数可以用如表1的汇编格式表示:
表1.汇编格式示例1
REP Rm,Rn | Rm为指令数,Rn为次数,R代表处理器内部通用寄存器 |
REP km,Rn | km为指令数,Rn为次数,k代表立即数 |
REP Rm,kn | Rm为指令数,kn为次数 |
REP km,kn | km为指令数,kn为次数 |
循环体大小检查,汇编器自动检查循环体的指令数来计算循环体的大小,循环体大小检查可以用如表2的汇编格式表示:
表2.汇编格式示例2
REP Rm{rep_block} | Rm为次数,花括号里面为循环体 |
REP km{rep_block} | km为次数,花括号里面为循环体 |
REP Rm....rep_end | Rm为次数,rep_end为循环体结束标志 |
REP km....rep_end | km为次数,rep_end为循环体结束标志 |
在执行循环体的时候,中断检测机制启动,实时检测是否需要响应中断,当中断发生时将当前执行的循环体信息保存入栈,优先进入中断服务程序;完成中断服务程序后,将循环体信息出栈,重新执行该循环体。
请参阅图3,图3为一具体应用场景下循环体无开销执行的流水线时空图。
如图3所示,cyc表示指令执行的周期,St1至St9为指令执行的阶段;在执行REP指令后,重复执行指令A由于已执行过,存储在了指令队列缓存区中,再一次执行指令A时,不需要到外部存储器去取指令,可以直接从指令队列缓存区中读取指令A,从而节省了需要重新获取指令A的分支开销。
请参阅图4,图4为本发明实现处理器对循环体执行的装置的一实施例的示意性结构图。
本实施例所述的实现处理器对循环体执行的装置,包括循环控制机制启动模块310,指令保存模块320,指令执行模块330,返回信号发出模块340,指令跳转模块350,其中:
循环控制机制启动模块310,用于检测到进入循环体时,控制所述循环体对应的指令依次进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块。
程序块的运行是由若干指令执行来完成,其中,指令即将执行时是存放于指令队列缓存区。指令队列缓存区存在于寄存器中,用于暂存即将执行的指令,并且通过移位寄存器,将已执行的指令移除,即将执行的指令移进。预设的循环控制机制为指令队列缓存区发送控制信号,包括循环开始信号,循环返回信号和循环结束信号,指令队列缓存区接收到循环控制机制发送的信号后,根据不同的信号执行对应的命令。预设次数为循环体需要循环执行的次数,可以是由寄存器启动,也可以由立即数启动,预设次数在32位处理器中支持0到2的32次方,当预设次数为0时,循环体执行的次数为0次,即循环体不执行。。
指令保存模块320,用于根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区。
循环开始信号为循环控制机制发送的控制信号;移位寄存器功能包括将已执行的指令移除出指令队列缓存区,若冻结移位寄存器功能,移位寄存器则停止将指令移除出指令队列缓存区的操作,使得指令继续存储在指令队列缓存区中。
指令执行模块330,用于将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令。
每个存储在指令队列缓存区中的指令都有对应存储的地址,根据地址可以搜索到该地址对应的指令。指令执行的顺序和指令在队列缓存区的位置的顺序一致。
返回信号发出模块340,用于当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号。
其中,程序块对应的指令为支撑程序块执行的所有指令。
指令跳转模块350,用于根据所述循环返回信号控制指针跳转至所述起始地址,使得所述指令执行模块再次控制处理器从所述起始地址开始,依次执行所述程序块对应的指令。
其中,程序块对应的指令为支撑程序块执行的所有指令。
上述实现处理器对循环体执行的装置,使用循环控制机制启动模块310启动预设的循环控制机制,并通过指令保存模块320和指令执行模块330对指令队列中的指令进行存储和执行。当循环体中程序块对应的指令全部执行结束后,触发返回信号发出模块340发送循环返回信号,并通过指令跳转模块350驱动处理器重新执行循环体的程序。使得循环体节省分支开销,加快了循环体的执行效率。
本发明在一个实施例中还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,上述处理器执行所述计算机程序时实现上述实施例中任意一种实现处理器对循环体执行的方法。
该计算机设备,其处理器执行程序时,通过实现如上述各实施例中的任意一种实现处理器对循环体执行的方法,从而可以加快了循环体的执行效率。
本发明在一个实施例中还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一种实现处理器对循环体执行的方法。
该计算机存储介质,其处理器执行程序时,通过实现如上述各实施例中的任意一种实现处理器对循环体执行的方法,从而可以加快了循环体的执行效率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种实现处理器对循环体执行的方法,其特征在于,包括:
检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块;
根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区;
将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令;
当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号;
根据所述循环返回信号控制指针跳转至所述起始地址,返回控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令的步骤。
2.根据权利要求1所述的实现处理器对循环体执行的方法,其特征在于,当检测到所述程序块对应的指令全部执行结束之后,触发所述循环控制机制发出一循环返回信号之前,还包括:
检测对所述程序块的执行次数是否达到所述预设次数,若否,触发所述循环控制机制发出一循环返回信号;若是,触发所述循环控制机制发出一循环结束信号,根据所述循环结束信号终止所述循环控制机制,并恢复所述指令队列缓存区的移位寄存器功能。
3.根据权利要求1所述的实现处理器对循环体执行的方法,其特征在于,还包括:
在检测到进入循环体之后,若检测到中断信号,将对所述循环体的执行信息保存入栈后,执行中断服务程序;
当所述中断服务程序执行结束之后,将所述循环体的执行信息出栈,继续执行所述循环体对应的指令。
4.根据权利要求1所述的实现处理器对循环体执行的方法,其特征在于,在检测到进入循环体时,控制所述循环体对应的指令进入处理器对应的指令队列缓存区步骤之前,还包括:
检测所述循环体的大小是否与所述指令缓存区大小匹配;
若所述循环体的大小超过所述指令缓存区大小,发出报错信号。
5.根据权利要求2所述的实现处理器对循环体执行的方法,其特征在于,还包括:
检测到进入循环体时,判断当前循环体是否与其他循环体嵌套;
若是,将所述其他循环体的信息入栈。
6.根据权利要求5所述的实现处理器对循环体执行的方法,其特征在于,在根据所述循环结束信号终止所述循环控制机制之后,还包括:
若当前循环体与其他循环体嵌套,将所述其他循环体的信息出栈,控制所述处理执行其他循环体对应的指令。
7.如权利要求1-6任一项所述的实现处理器对循环体执行的方法,其特征在于,在检测到进入循环体之后,还包括:当检测到所述循环体发生分支跳转时,结束执行所述循环体。
8.一种实现处理器对循环体执行的装置,其特征在于,包括:
循环控制机制启动模块,用于检测到进入循环体时,控制所述循环体对应的指令依次进入处理器对应的指令队列缓存区,并启动预设的循环控制机制,通过所述循环控制机制发出一循环开始信号;其中,所述循环体包括需重复执行预设次数的程序块;
指令保存模块,用于根据所述循环开始信号冻结所述指令队列缓存区的移位寄存器功能,使所述循环体对应的指令保留在所述指令队列缓存区;
指令执行模块,用于将所述指令队列缓存区中当前待执行指令的地址标识为起始地址,控制所述处理器从所述起始地址开始,依次执行所述程序块对应的指令;
返回信号发出模块,用于当检测到所述程序块对应的指令全部执行结束时,触发所述循环控制机制发出一循环返回信号;
指令跳转模块,用于根据所述循环返回信号控制指针跳转至所述起始地址,使得所述指令执行模块再次控制处理器从所述起始地址开始,依次执行所述程序块对应的指令。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7任一所述的实现处理器对循环程序执行的方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一所述的实现处理器对循环程序执行的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710972635.1A CN107729054B (zh) | 2017-10-18 | 2017-10-18 | 实现处理器对循环体执行的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710972635.1A CN107729054B (zh) | 2017-10-18 | 2017-10-18 | 实现处理器对循环体执行的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729054A true CN107729054A (zh) | 2018-02-23 |
CN107729054B CN107729054B (zh) | 2020-07-24 |
Family
ID=61211928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710972635.1A Active CN107729054B (zh) | 2017-10-18 | 2017-10-18 | 实现处理器对循环体执行的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729054B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124495A (zh) * | 2019-12-16 | 2020-05-08 | 海光信息技术有限公司 | 一种数据处理方法、解码电路及处理器 |
CN111782272A (zh) * | 2020-07-16 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种vliw处理器中重复程序的执行控制方法及装置 |
CN111782273A (zh) * | 2020-07-16 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
CN112988234A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向不稳定控制流循环体的分支指令辅助预测器 |
CN114138334A (zh) * | 2021-10-29 | 2022-03-04 | 北京中科昊芯科技有限公司 | 一种循环程序执行方法、装置以及处理器 |
WO2023142502A1 (zh) * | 2022-01-29 | 2023-08-03 | 上海商汤智能科技有限公司 | 循环指令处理方法、装置、芯片、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016887A1 (en) * | 2000-05-31 | 2002-02-07 | Scales Richard H. | Loop cache memory and cache controller for pipelined microprocessors |
CN102968293A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于指令队列的程序循环代码动态检测及执行方法 |
CN106775591A (zh) * | 2016-11-21 | 2017-05-31 | 江苏宏云技术有限公司 | 一种处理器的硬件循环处理方法和系统 |
-
2017
- 2017-10-18 CN CN201710972635.1A patent/CN107729054B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016887A1 (en) * | 2000-05-31 | 2002-02-07 | Scales Richard H. | Loop cache memory and cache controller for pipelined microprocessors |
CN102968293A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于指令队列的程序循环代码动态检测及执行方法 |
CN106775591A (zh) * | 2016-11-21 | 2017-05-31 | 江苏宏云技术有限公司 | 一种处理器的硬件循环处理方法和系统 |
Non-Patent Citations (1)
Title |
---|
杨惠 等: "高性能低功耗FT-XDSP的指令缓存队列", 《小型微型计算机系统》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124495A (zh) * | 2019-12-16 | 2020-05-08 | 海光信息技术有限公司 | 一种数据处理方法、解码电路及处理器 |
CN111782272A (zh) * | 2020-07-16 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种vliw处理器中重复程序的执行控制方法及装置 |
CN111782273A (zh) * | 2020-07-16 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
CN111782273B (zh) * | 2020-07-16 | 2022-07-26 | 中国人民解放军国防科技大学 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
CN111782272B (zh) * | 2020-07-16 | 2022-08-19 | 中国人民解放军国防科技大学 | 一种vliw处理器中重复程序的执行控制方法及装置 |
CN112988234A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向不稳定控制流循环体的分支指令辅助预测器 |
CN114138334A (zh) * | 2021-10-29 | 2022-03-04 | 北京中科昊芯科技有限公司 | 一种循环程序执行方法、装置以及处理器 |
WO2023142502A1 (zh) * | 2022-01-29 | 2023-08-03 | 上海商汤智能科技有限公司 | 循环指令处理方法、装置、芯片、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107729054B (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729054A (zh) | 实现处理器对循环体执行的方法及装置 | |
US7886134B2 (en) | Loop iteration prediction by supplying pseudo branch instruction for execution at first iteration and storing history information in branch prediction unit | |
EP0655679B1 (en) | Method and apparatus for controlling instruction in pipeline processor | |
US20080184010A1 (en) | Method and apparatus for controlling instruction cache prefetch | |
US11379239B2 (en) | Apparatus and method for making predictions for instruction flow changing instructions | |
EP0297943A2 (en) | Microcode reading control system | |
JPH08314719A (ja) | プロセッサ及び翻訳装置 | |
CN107943518A (zh) | 一种局部跳转指令取指电路 | |
KR100719420B1 (ko) | 정보 처리 장치 | |
US9471309B2 (en) | Arithmetic processing apparatus and method for high speed processing of application | |
US7613911B2 (en) | Prefetching exception vectors by early lookup exception vectors within a cache memory | |
US20070022275A1 (en) | Processor cluster implementing conditional instruction skip | |
CN110727463B (zh) | 一种基于动态信用的零级指令循环缓冲预取方法及装置 | |
US11860762B2 (en) | Semiconductor device, control flow inspection method, non-transitory computer readable medium, and electronic device | |
JPS63314644A (ja) | デ−タ処理装置 | |
CN103744641B (zh) | 禁止已翻译指令序列执行的方法、装置和虚拟机 | |
JP3826648B2 (ja) | バウンダリ実行制御装置及びバウンダリ制御方法 | |
JP3709933B2 (ja) | 分岐予測による分岐命令高速化方法、およびプロセッサ | |
JPS5952349A (ja) | 命令先取制御装置 | |
JPH04268928A (ja) | エミュレーション装置及び半導体装置 | |
US20200310812A1 (en) | Apparatus and method for making predictions for instruction flow changing instructions | |
KR20010022065A (ko) | 조건부 점프의 취급에 적용된 처리기 및 방법 | |
JPS63318634A (ja) | 命令先取り方式 | |
US9280345B2 (en) | Pipeline processor including last instruction | |
JPH0247725A (ja) | データ処理装置 |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |