CN111782273A - 一种提高重复程序执行性能的软硬件协同缓存装置 - Google Patents
一种提高重复程序执行性能的软硬件协同缓存装置 Download PDFInfo
- Publication number
- CN111782273A CN111782273A CN202010687037.1A CN202010687037A CN111782273A CN 111782273 A CN111782273 A CN 111782273A CN 202010687037 A CN202010687037 A CN 202010687037A CN 111782273 A CN111782273 A CN 111782273A
- Authority
- CN
- China
- Prior art keywords
- execution
- packet
- instruction
- cache
- register
- 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
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/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
-
- 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/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提高重复程序执行性能的软硬件协同缓存装置,其包括:起始寄存器,用来标识重复程序段的起始位置;结束寄存器,用来识别重复程序段的结束位置;计数寄存器,用来存储重复程序执行的次数;控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。本发明具有结构简单、原理简单、适用范围广等优点。
Description
技术领域
本发明主要涉及到数字信号处理器技术领域,特指一种提高重复程序执行性能的软硬件协同缓存装置。
背景技术
数字信号处理器(DSP)作为数字信号处理的核心,其应用已经广泛深入到了航天、航空、雷达、声纳、通信、家用电器等各个领域,成为电子系统的心脏。高性能低功耗DSP的研制对推动这些领域技术的进步,起重要的作用。DSP可以快速的实现对信号的采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
VLIW体系结构的DSP的指令特点是将固定长度的指令字段封装成一个取指包,执行包是由同一拍需要同时执行的指令字段组成,长度不固定,一个取指包中可能只包含一个执行包,也可能包含多个执行包。一个执行包可能只包含一个功能部件的指令,也可能包含多个功能部件的指令。
DSP应用程序的特点是重复调用一些核心算法,这体现在应用程序中存在大量的需要重复执行的程序段,最典型的是循环程序,如for循环和while循环。代码执行过程中存在大量需要重复执行的程序段对其执行效率带来了很大影响:一方面程序反复执行需要重新从执行包缓存中取指译码,将取指包译码成执行包,带来了不必要的功耗浪费;另一方面增加了对指令存储的访问次数,对于嵌入式应用而言不仅增加了访存延迟,更增大了访存功耗。
软件流水是一种提高程序执行效率的方法,软件流水通过重叠执行循环的不同迭代,来加速循环的执行和减少循环转移的次数。模调度算法是一种重要的软件流水算法,其核心思想是在为循环构建出一种迭代方式,当循环的不同迭代以一定的间隔执行时,迭代内和迭代间的指令间都没有相关性违反和资源冲突出现。
但在现有技术中存在以下问题,重复执行的程序段还是需要重新访存取指译码,无形中加大了访存延迟对程序执行效率的影响,同时也加大了程序执行时的功耗。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单、原理简单、适用范围广的提高重复程序执行性能的软硬件协同缓存装置。
为解决上述技术问题,本发明采用以下技术方案:
一种提高重复程序执行性能的软硬件协同缓存装置,其包括:
起始寄存器,用来标识重复程序段的起始位置;
结束寄存器,用来识别重复程序段的结束位置;
计数寄存器,用来存储重复程序执行的次数;
控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;
执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。
作为本发明的进一步改进:当执行的不是重复程序时,选择正常取指译码的执行包进行派发;当执行的重复程序时,直接派发执行包缓存中的执行包。
作为本发明的进一步改进:所述执行包缓存单元的结构是一个深度为Y位宽为N*X+PC的缓存,其中Y是支持的重复程序包含的执行包长度,N是派发到功能部件的指令信息的位宽,X是功能单元的数量,PC是每个执行包的地址位宽;缓存的执行包信息包含指令域Inst_field和指令有效信息Inst_active。
作为本发明的进一步改进:所述执行包缓存单元的每一行都是一个执行包,所述执行包中包含多个部件的指令或只包含某一个部件的指令;当只包含一个部件的指令时,一行中就只有该部件的指令信息是有效的,即Inst_active为1,其他无效部件的Inst_active为0;当执行包缓存派发完毕或者需要作废指令时将Inst_active置为0。
作为本发明的进一步改进:所述执行包缓存单元中控制器状态机的执行包缓存包含3个状态,空闲状态idle,装载状态load,派发状态dispatch。
作为本发明的进一步改进:所述状态的切换条件包括:
(1)当检测到将要执行的执行包地址落在了特定的地址空间或者检测到开始寄存器的特定位被写入了1,则将状态切换到load状态,开始缓存执行包;
(2)当检测到将要执行的执行包的地址跳出了特定的地址空间或者检测到结束寄存器的特定位被写入了1,同时计数寄存器的值不为0,则将状态切换到diapatch,暂停取指又执行包缓存直接向功能部件派发执行包;
(3)当检测到计数寄存器的值为0,同时执行包缓存的派发计数器的值也为0,即重复程序的执行包都派发完了,将状态切换到idle;
(4)当检测到将要执行的执行包地址没有落在特定的地址空间且开始寄存器的特定位也没被写入1,则状态机维持在idle状态;
(5)当检测到将要执行的执行包地址仍然处在特定的地址空间且没检测到结束寄存器的特定位被写1,则状态机维持在load状态;
(6)当派发计数器的值不为0,或者派发计数器的值为0且计数寄存器的值不为0时,则状态机维持在dispatch状态。
作为本发明的进一步改进:当所述执行包缓存单元派发分支指令时,访存取指恢复执行,恢复取指流水,判断分支目标指令是否和执行包缓存中的一致。
作为本发明的进一步改进:当指令信息一致时,表明重复程序要求执行的次数还未执行完,要继续派发执行包;如果指令信息不一致时,则表明重复程序要求执行的次数已经执行完,此时不再从执行包缓存中继续派发执行包;同时取指流水已经在正常执行了。
作为本发明的进一步改进:在派发分支指令时取指译码的执行包信息和执行包缓存中的指令包缓存信息一致,但还是选择来自正常取指译码产生的执行包。
作为本发明的进一步改进:当检测到起始寄存器的特定位被写了1,或者将要执行的执行包地址落在了特定的地址空间时,按照执行顺序依次将派发到功能部件的执行包存储到执行包缓存单元中。
与现有技术相比,本发明的优点在于:
1、本发明的提高重复程序执行性能的软硬件协同缓存装置,结构简单、原理简单、适用范围广,通过借助软件标识的重复程序段长度和执行次数,省略了指令访存和执行包译码,直接派发重复程序段执行包,减少了访存延迟对程序执行的影响,同时降低了执行程序的功耗。且重复执行的程序执行的次数越多收益越大。
2、本发明的提高重复程序执行性能的软硬件协同缓存装置,大大提高了程序的执行效率降低访存功耗,其软件协同主要提供两种方法来标识需要重复执行的程序和重复执行的次数。一种是将需要重复执行的程序编译在特定的地址空间,同时将重复执行的程序的次数存储在特定的计数寄存器中,这样当硬件取指时识别出将要执行的程序是存储在特定的地址空间时,就开始启动缓存存储和派发执行包。另一种是在重复程序段的前后写特殊的寄存器来启动缓存开始存储和派发执行包。
附图说明
图1是本发明软硬件协同缓存装置的原理示意图。
图2是本发明在具体应用实例中执行包缓存结构的原理示意图。
图3是本发明在具体应用实例中执行包缓存状态机的原理示意图。
图4是本发明在具体应用实例中软硬件协同缓存工作的示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的提高重复程序执行性能的软硬件协同缓存装置,是在指令派发站设计一个软硬件协同缓存装置,其包括:
起始寄存器,用来标识重复程序段的起始位置;
结束寄存器,用来识别重复程序段的结束位置;
计数寄存器,用来存储重复程序执行的次数。
控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,同时清除起始寄存器和结束寄存器的控制位和维护计数寄存器。
执行包缓存单元,用来存储派发到功能部件的执行包信息。
当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水,省去访存取指和译码,降低访存延迟和译码功耗。
如图2所示,当执行的不是重复程序时,选择正常取指译码的执行包(Piped_Exe_packet)进行派发;当执行的重复程序时,直接派发执行包缓存中的执行包(Repeat_Exe_packet)。
在具体应用实例中,执行包缓存的结构是一个深度为Y位宽为N*X+PC的缓存,Y是支持的重复程序包含的执行包长度,N是派发到功能部件的指令信息的位宽,X是功能单元的数量,PC是每个执行包的地址位宽。其中缓存的执行包信息包含指令域Inst_field和指令有效信息Inst_active。
由于执行包缓存单元的每一行都是一个执行包,执行包中可能包含多个部件的指令,也可能只包含某一个部件的指令。当只包含一个部件的指令时,一行中就只有该部件的指令信息是有效的,即图中Inst_active为1,其他无效部件的Inst_active为0。当执行包缓存派发完毕或者需要作废指令时也只需要将Inst_active置为0即可。
软硬件协同缓存位于指令派发站,将派发到功能部件的执行包信息缓存到执行包缓存单元中,当执行重复程序时暂停访存取指译码直接从执行包缓存单元中派发执行包。在具体应用实例中,如图3所示,执行包缓存单元中的控制器状态机,执行包缓存包含3个状态,空闲状态idle,装载状态load,派发状态dispatch。
1、空闲状态idle:复位后执行包缓存状态机处于空闲状态,在该状态下会对取指包PC进行识别,判断将要执行包的执行包是否落入特定的地址空间;或者等待起始寄存器的特定位被写入1。
2、装载状态load:处在该状态时,执行包缓存单元开始工作,将派发到功能部件的执行包存储到执行包缓存单元的相应位置。
3、派发状态dispatch:处在该状态时说明已经确认当前正在执行的程序是重复程序段,处在此状态时执行包缓存单元开始向功能部件派发执行包。
状态切换条件:
(1)当检测到将要执行的执行包地址落在了特定的地址空间或者检测到开始寄存器的特定位被写入了1,则将状态切换到load状态,开始缓存执行包。
(2)当检测到将要执行的执行包的地址跳出了特定的地址空间或者检测到结束寄存器的特定位被写入了1,同时计数寄存器的值不为0,则将状态切换到diapatch,暂停取指又执行包缓存直接向功能部件派发执行包。
(3)当检测到计数寄存器的值为0,同时执行包缓存的派发计数器的值也为0(即重复程序的执行包都派发完了),将状态切换到idle。
(4)当检测到将要执行的执行包地址没有落在特定的地址空间且开始寄存器的特定位也没被写入1,则状态机维持在idle状态。
(5)当检测到将要执行的执行包地址仍然处在特定的地址空间且没检测到结束寄存器的特定位被写1,则状态机维持在load状态。
(6)当派发计数器的值不为0,或者派发计数器的值为0且计数寄存器的值不为0时,则状态机维持在dispatch状态。
当执行包缓存单元派发分支指令时,访存取指恢复执行,原因是为了恢复取指流水,判断分支目标指令是否和执行包缓存中的一致。当指令信息一致时,表明重复程序要求执行的次数还未执行完,要继续派发执行包;如果指令信息不一致时,则表明重复程序要求执行的次数已经执行完,此时不能再从执行包缓存中继续派发执行包。同时取指流水已经在正常执行了。在派发分支指令时取指译码的执行包信息和执行包缓存中的指令包缓存信息一致,但还是选择来自正常取指译码产生的执行包。
如指令流中出现下述指令组合:
或者特定的空间为0x00000000-0x00001000,而出现的程序段为:
0x40000000:Write 20,count_reg
0x40000004:FUe_0||FUa_0||FUc_0||FUd_0
0x00000000:FUa_1||FUb_1||FUc_1||FUx_1
0x00000010:FUa_2||FUb_2||FUc_2||FUx_2
0x00000020:FUa_3||FUb_3||FUc_3||FUx_3
0x00000030:FUb_4||FUc_4||FUx_4
0x0000003c:FUa_5||FUb_5||FUc_5||FUx_5
0x0000004c:FUa_6||FUb_6||FUc_6
0x00000058:FUa_7||FUb_7||FUc_7||FUx_7
0x40000100:FUa_1||FUb_1||FUc_1||FUx_1
当检测到起始寄存器的特定位被写了1,或者将要执行的执行包地址落在了特定的地址空间时,按照执行顺序依次将派发到功能部件的执行包存储到执行包缓存单元中。如图4所示,当将要执行的执行包地址跳出了特定的地址空间或者检测到结束寄存器的特定位被写入了1,同时计数寄存器的值不为0,则此时暂停取指和译码,直接由执行包缓存向功能部件派发执行包信息。当派发计数器的值为0,且计数寄存器的值也为0时,执行包缓存停止派发执行包,恢复取指和译码。
本发明的缓存装置所执行的方法主要有两种,一种是将需要重复执行的程序段编译在特定的地址空间,同时将执行次数编译到特定的寄存器中;另一种是在重复执行的程序段前后插入写特定寄存器的操作,同时将执行次数写入特定的寄存器中。
针对第一种软件协同方法,硬件一直检测执行程序的PC值,当发现将要执行的程序落在特定的地址空间时,执行包缓存开始按照执行包执行的顺序将执行包一个个存储到执行包缓存中。当检测到将要执行的程序的PC值跳出特定地址空间时,此时暂停取指,同时检测软硬件协同缓存中的计数寄存器,当寄存器的值不为0时,执行包缓存将存储的执行包按照存储顺序一个个派发到功能部件,当派发最后一个执行包时,将计数寄存器减1,再检测计数寄存器是否为0,当不为0时,将执行包缓存中的执行包再派发一遍。当检测到计数寄存器的值为0时,停止派发执行包,同时恢复取指。
针对第二种软件协同方法,当软硬件协同缓存中的起始寄存器的特定位被写1时,则执行包缓存开始存储派发到功能部件的执行包,当软硬件协同缓存中的结束寄存器的特定位被写1时,停止缓存执行包;同时暂停取指,检测计数寄存器的值是否为0,当计数寄存器的值不为0时,执行包缓存将存储的执行包按照存储顺序一个个派发到功能部件,当派发最后一个执行包时,将计数寄存器减1,再检测计数寄存器是否为0,当不为0时,将执行包缓存中的执行包再派发一遍。当检测到计数寄存器的值为0时,停止派发执行包,同时恢复取指。
当检测到起始寄存器的特定位被写1或者检测到将要执行的程序落在特定的地址空间时,执行包缓存才开始缓存执行包。当检测到结束寄存器的特定位被写1或者检测到将要执行的程序跳出特定地址空间时,执行包缓存停止存储执行包。
要将取指部件派发的将要取回的取指包的地址记录下来,以便比对地址是否落入特定的地址空间。
执行包缓存存储一个执行包时,缓存写指针加一,缓存长度计数器加一。在派发执行包时,将缓存长度计数器赋给派发计数器,每派发一个执行包,读指针加一,派发计数器减一。当派发计数器减到0时,完成一次重复程序的执行。
当检测到结束寄存器的特定位被写1或者检测到将要执行的程序跳出特定地址空间时,同时计数寄存器的值也不为0时,此时要暂停取指和取指包译码转化为执行包。当检测到计数寄存器的值为0时,要恢复取指和取指包译码转化为执行包。
软硬件协同缓存装置内的起始寄存器和结束寄存器写1时标识重复执行程序段的开始位置和结束位置,当写0时不会对寄存器产生任何影响。执行包缓存开始存储执行包,硬件自动将起始寄存器清0;当执行包缓存开始派发执行包时,硬件将结束寄存器清0。
硬件设计的执行包缓存的可以存储的执行包数量会反馈给软件,当重复程序段的程度超过执行包缓存的深度时,软件不再将程序处理成软硬件协同缓存可以派发的情况,硬件不需判断执行包长度。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种提高重复程序执行性能的软硬件协同缓存装置,其特征在于,包括:
起始寄存器,用来标识重复程序段的起始位置;
结束寄存器,用来识别重复程序段的结束位置;
计数寄存器,用来存储重复程序执行的次数;
控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;
执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。
2.根据权利要求1所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,当执行的不是重复程序时,选择正常取指译码的执行包进行派发;当执行的重复程序时,直接派发执行包缓存中的执行包。
3.根据权利要求1所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元的结构是一个深度为Y位宽为N*X+PC的缓存,其中Y是支持的重复程序包含的执行包长度,N是派发到功能部件的指令信息的位宽,X是功能单元的数量,PC是每个执行包的地址位宽;缓存的执行包信息包含指令域Inst_field和指令有效信息Inst_active。
4.根据权利要求1-3中任意一项所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元的每一行都是一个执行包,所述执行包中包含多个部件的指令或只包含某一个部件的指令;当只包含一个部件的指令时,一行中就只有该部件的指令信息是有效的,即Inst_active为1,其他无效部件的Inst_active为0;当执行包缓存派发完毕或者需要作废指令时将Inst_active置为0。
5.根据权利要求1-3中任意一项所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元中控制器状态机的执行包缓存包含3个状态,空闲状态idle,装载状态load,派发状态dispatch。
6.根据权利要求5所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述状态的切换条件包括:
(1)当检测到将要执行的执行包地址落在了特定的地址空间或者检测到开始寄存器的特定位被写入了1,则将状态切换到load状态,开始缓存执行包;
(2)当检测到将要执行的执行包的地址跳出了特定的地址空间或者检测到结束寄存器的特定位被写入了1,同时计数寄存器的值不为0,则将状态切换到diapatch,暂停取指又执行包缓存直接向功能部件派发执行包;
(3)当检测到计数寄存器的值为0,同时执行包缓存的派发计数器的值也为0,即重复程序的执行包都派发完了,将状态切换到idle;
(4)当检测到将要执行的执行包地址没有落在特定的地址空间且开始寄存器的特定位也没被写入1,则状态机维持在idle状态;
(5)当检测到将要执行的执行包地址仍然处在特定的地址空间且没检测到结束寄存器的特定位被写1,则状态机维持在load状态;
(6)当派发计数器的值不为0,或者派发计数器的值为0且计数寄存器的值不为0时,则状态机维持在dispatch状态。
7.根据权利要求1-3中任意一项所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,当所述执行包缓存单元派发分支指令时,访存取指恢复执行,恢复取指流水,判断分支目标指令是否和执行包缓存中的一致。
8.根据权利要求7所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,当指令信息一致时,表明重复程序要求执行的次数还未执行完,要继续派发执行包;如果指令信息不一致时,则表明重复程序要求执行的次数已经执行完,此时不再从执行包缓存中继续派发执行包;同时取指流水已经在正常执行了。
9.根据权利要求8所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,在派发分支指令时取指译码的执行包信息和执行包缓存中的指令包缓存信息一致,但还是选择来自正常取指译码产生的执行包。
10.根据权利要求7所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,当检测到起始寄存器的特定位被写了1,或者将要执行的执行包地址落在了特定的地址空间时,按照执行顺序依次将派发到功能部件的执行包存储到执行包缓存单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687037.1A CN111782273B (zh) | 2020-07-16 | 2020-07-16 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687037.1A CN111782273B (zh) | 2020-07-16 | 2020-07-16 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782273A true CN111782273A (zh) | 2020-10-16 |
CN111782273B CN111782273B (zh) | 2022-07-26 |
Family
ID=72768200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010687037.1A Active CN111782273B (zh) | 2020-07-16 | 2020-07-16 | 一种提高重复程序执行性能的软硬件协同缓存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782273B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308236B1 (en) * | 1995-07-05 | 2001-10-23 | Via Technologies, Inc. | Local bus with dynamic decoding capability |
CN1437724A (zh) * | 2000-03-03 | 2003-08-20 | 坦诺网络公司 | 使用内部处理器存储空间的高速数据处理 |
US20030229763A1 (en) * | 2002-04-02 | 2003-12-11 | Ip-First Llc | Apparatus and method for renaming a data block within a cache |
CN1508690A (zh) * | 2002-12-19 | 2004-06-30 | �Ҵ���˾ | 使能跟踪重复指令的方法和系统 |
CN1717654A (zh) * | 2002-11-28 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 数据处理器的循环控制电路 |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
CN101911016A (zh) * | 2008-01-11 | 2010-12-08 | 国际商业机器公司 | 执行相对指令 |
CN102968293A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于指令队列的程序循环代码动态检测及执行方法 |
US20140310696A1 (en) * | 2011-06-08 | 2014-10-16 | Hyperion Core Inc. | Tool-level and hardware-level code optimization and respective hardware modification |
CN107729054A (zh) * | 2017-10-18 | 2018-02-23 | 珠海市杰理科技股份有限公司 | 实现处理器对循环体执行的方法及装置 |
US20180060168A1 (en) * | 2016-08-25 | 2018-03-01 | Microsoft Technology Licensing, Llc | Data error detection in computing systems |
CN108196884A (zh) * | 2014-04-25 | 2018-06-22 | 安华高科技通用Ip(新加坡)公司 | 利用生成重命名的计算机信息处理器 |
CN108780396A (zh) * | 2016-03-23 | 2018-11-09 | Arm有限公司 | 程序循环控制 |
US20190377580A1 (en) * | 2008-10-15 | 2019-12-12 | Hyperion Core Inc. | Execution of instructions based on processor and data availability |
-
2020
- 2020-07-16 CN CN202010687037.1A patent/CN111782273B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308236B1 (en) * | 1995-07-05 | 2001-10-23 | Via Technologies, Inc. | Local bus with dynamic decoding capability |
CN1437724A (zh) * | 2000-03-03 | 2003-08-20 | 坦诺网络公司 | 使用内部处理器存储空间的高速数据处理 |
US20030229763A1 (en) * | 2002-04-02 | 2003-12-11 | Ip-First Llc | Apparatus and method for renaming a data block within a cache |
CN1717654A (zh) * | 2002-11-28 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 数据处理器的循环控制电路 |
CN1508690A (zh) * | 2002-12-19 | 2004-06-30 | �Ҵ���˾ | 使能跟踪重复指令的方法和系统 |
CN101911016A (zh) * | 2008-01-11 | 2010-12-08 | 国际商业机器公司 | 执行相对指令 |
US20190377580A1 (en) * | 2008-10-15 | 2019-12-12 | Hyperion Core Inc. | Execution of instructions based on processor and data availability |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
US20140310696A1 (en) * | 2011-06-08 | 2014-10-16 | Hyperion Core Inc. | Tool-level and hardware-level code optimization and respective hardware modification |
CN102968293A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于指令队列的程序循环代码动态检测及执行方法 |
CN108196884A (zh) * | 2014-04-25 | 2018-06-22 | 安华高科技通用Ip(新加坡)公司 | 利用生成重命名的计算机信息处理器 |
CN108780396A (zh) * | 2016-03-23 | 2018-11-09 | Arm有限公司 | 程序循环控制 |
US20180060168A1 (en) * | 2016-08-25 | 2018-03-01 | Microsoft Technology Licensing, Llc | Data error detection in computing systems |
CN107729054A (zh) * | 2017-10-18 | 2018-02-23 | 珠海市杰理科技股份有限公司 | 实现处理器对循环体执行的方法及装置 |
Non-Patent Citations (1)
Title |
---|
王子聪等: "片上多核处理器Cache访问均衡性研究", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111782273B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100676011B1 (ko) | 인스트럭션 처리 방법 및 장치와 기계 판독가능한 매체 | |
JP4642305B2 (ja) | マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置 | |
US5742782A (en) | Processing apparatus for executing a plurality of VLIW threads in parallel | |
US7502914B2 (en) | Transitive suppression of instruction replay | |
US8407454B2 (en) | Processing long-latency instructions in a pipelined processor | |
US6484254B1 (en) | Method, apparatus, and system for maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses | |
JP2928695B2 (ja) | 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法 | |
US6564313B1 (en) | System and method for efficient instruction prefetching based on loop periods | |
CN100461094C (zh) | 一种针对流处理器的指令控制方法 | |
US9632788B2 (en) | Buffering instructions of a single branch, backwards short loop within a virtual loop buffer | |
US20060149941A1 (en) | Method and apparatus for vector execution on a scalar machine | |
US20020083373A1 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US6601153B1 (en) | Method and apparatus for increasing computer performance through asynchronous memory block initialization | |
KR101541001B1 (ko) | 아직 발행되지 않은 명령들에 대한 얼리 액세스를 가진 코프로세서를 구비한 프로세서 | |
CN108287730A (zh) | 一种处理器流水线结构 | |
CN116414464B (zh) | 调度任务的方法和装置、电子设备和计算机可读介质 | |
CN104461758A (zh) | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 | |
JP2003140965A (ja) | 分散共有メモリ型並列計算機および命令スケジューリング方法 | |
US6748523B1 (en) | Hardware loops | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
CN111782273B (zh) | 一种提高重复程序执行性能的软硬件协同缓存装置 | |
CN116414541A (zh) | 兼容多种任务工作模式的任务执行方法和装置 | |
US7328327B2 (en) | Technique for reducing traffic in an instruction fetch unit of a chip multiprocessor | |
US9983932B2 (en) | Pipeline processor and an equal model compensator method and apparatus to store the processing result | |
CN111782272B (zh) | 一种vliw处理器中重复程序的执行控制方法及装置 |
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 |