CN116700794A - 一种获取待执行指令的方法及系统 - Google Patents
一种获取待执行指令的方法及系统 Download PDFInfo
- Publication number
- CN116700794A CN116700794A CN202310759467.3A CN202310759467A CN116700794A CN 116700794 A CN116700794 A CN 116700794A CN 202310759467 A CN202310759467 A CN 202310759467A CN 116700794 A CN116700794 A CN 116700794A
- Authority
- CN
- China
- Prior art keywords
- buffer
- instructions
- executed
- processor
- instruction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 239000000872 buffer Substances 0.000 claims abstract description 143
- 238000004891 communication Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30069—Instruction skipping instructions, e.g. SKIP
-
- 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/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Advance Control (AREA)
Abstract
本申请涉及计算机技术领域,公开一种获取待执行指令的方法及系统,所述方法包括:处理器一次从片内存储器将N个待执行指令按顺序地预取并存储到缓冲器中,处理器的时钟是片内存储器的N倍,片内存储器的位宽是处理器的N倍;处理器按顺序地从缓冲器中读取并执行待执行指令;当检测到下一个待执行指令的地址与当前执行指令不连续时,判断程序跳转并在缓存区中查询跳转指令,如查询未命中,处理器从片内存储器中读取并执行跳转指令及其后的N‑1个指令,同时将跳转指令及其后的N‑1个指令存储到缓存区中,如查询命中,处理器从缓存区中读取并执行跳转指令。本申请利用小容量的缓存区,可以在低成本的情况下达到和大容量缓存区相同的性能。
Description
技术领域
本申请涉及计算机技术领域,更具体地涉及一种获取待执行指令的方法及系统。
背景技术
本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是已被公开的现有技术。
随着工艺的演进,处理器的速度越来越快,由此带来内存墙的问题,即:存储器的速度赶不上处理器的速度,存储器的性能限制了处理器的性能发挥。对嵌入式系统来说,存在同样的问题,内部的非挥发存储器的速度比处理器的速度慢好几倍,每次读取一条指令,处理器需要等待多个周期。但是可以将内部的非挥发存储器的位宽增加到多条指令的宽度,使之存储器的数据吞吐量大于或等于处理器的吞吐量。
发明内容
本申请的目的在于提供一种获取待执行指令的方法,利用小容量的缓存区,可以提升存储器提取指令的性能,加快提取速度,减少处理器需要等待的周期。
本申请公开了一种获取待执行指令的方法,包括:
处理器一次从片内存储器将N个待执行指令按顺序地预取并存储到缓冲器中,其中,所述处理器的时钟是所述片内存储器的时钟的N倍,所述片内存储器的位宽是所述处理器的位宽的N倍;
所述处理器按顺序地从所述缓冲器中读取并执行所述待执行指令;以及
当检测到下一个待执行指令的地址与当前执行指令的地址不连续时,所述处理器判断程序发生跳转并在缓存区中查询该发生跳转的跳转指令,如查询未命中,所述处理器从所述片内存储器中读取并执行所述跳转指令及其后的N-1个指令,同时将所述跳转指令及其后的N-1个指令存储到所述缓存区中,如查询命中,所述处理器从所述缓存区中读取并执行所述跳转指令。
在一个优选例中,所述缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器和所述第二缓冲器分别存储N个待执行指令,所述方法还包括:所述处理器一次从片内存储器将N个待执行指令按顺序地预取并依次交替地存储到所述第一缓冲器和所述第二缓冲器中。
在一个优选例中,所述处理器依次交替地从所述第一缓冲器和所述第二缓冲器中读取并执行存储其中的待执行指令。
在一个优选例中,所述处理器的时钟为100MHz,所述处理器的位宽为16位,所述片内存储器的时钟为25MHz,所述片内存储器的位宽为64位,所述N为4。
在一个优选例中,所述缓存区的容量为1KB~4KB。
在一个优选例中,所述缓存区包括多条缓存行,每条缓存行保存N个待执行指令,每条缓存行包括有效位、地址信息栏和N个待执行指令的指令信息。
在一个优选例中,还包括:从所述片内存储器预取位于所述跳转指令后的待执行指令并存储到所述缓冲器中。
本申请还公开了一种获取待执行指令的系统,包括:处理器、与所述处理器通信连接的片内存储器、缓冲器、缓存区,其中,所述处理器的时钟是所述片内存储器的时钟的N倍,所述片内存储器的位宽是所述处理器的位宽的N倍;其中,所述缓冲器中按顺序地存储有从所述片内存储器预取的N个待执行指令,所述缓存区中存储有跳转指令及每个跳转指令后的N-1个待执行指令;
其中,所述处理器按顺序地从所述缓冲器中读取并执行所述N个待执行指令,当检测到下一个待执行指令的地址与当前执行指令的地址不连续时,所述处理器判断程序发生跳转并在所述缓存区查询所述发生跳转的跳转指令,如查询未命中,所述处理器从所述片内存储器中读取并执行所述跳转指令及其后的N-1个指令,同时将所述跳转指令及其后的N-1个指令存储到所述缓存区中,如查询命中,所述处理器从所述缓存区中读取并执行所述跳转指令。
在一个优选例中,所述缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器和所述第二缓冲器分别存储N个待执行指令,所述处理器一次从片内存储器将N个待执行指令按顺序地预取并依次交替地存储到所述第一缓冲器和所述第二缓冲器中。
本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式与现有技术相比,主要区别及其效果在于:
本申请实施方式中,缓冲器中按顺序地存储有从片内存储器预取的多个待执行指令,缓存区中存储有跳转指令。当程序跳转时,处理器在缓存区查询跳转指令,如查询未命中,处理器从片内存储器中读取并执行跳转指令,同时将跳转指令存储到缓存区中,如查询命中,处理器从缓存区中读取并执行跳转指令。本申请利用小容量的缓存区可以提升存储器提取指令的性能,加快提取速度,减少处理器需要等待的周期,硬件开销小,可以在低成本的情况下达到和大容量缓存区相同的性能。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请一个实施例中的获取待执行指令的方法的流程示意图。
图2是根据本申请一个实施例中的读取指令的顺序结构示意图。
图3是根据本申请一个实施例中的读取指令的跳转结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
处理器:是计算机处理数据、运行程序的最终执行单元,是计算机的核心部件。
缓冲器(buffer);在内存中预留指定大小的存储空间用来对输入/输出的数据作临时存储,这部分预留的内存空间就叫做缓冲器。
缓存区(cache):cache存储器是介于处理器和主存储器之间的高速小容量存储器,通常由SRAM(Static Random Access Memory静态存储器)组成。cache是处理器与内存之间的桥梁,用于平衡高速设备与低速设备(内存)之间的速度差异。
缓冲行(buffer line):是缓冲器用以保存指令数据的单元。
缓存行(cache line):是缓存区用以保存指令数据的单元。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的一个实施例中涉及一种获取待执行指令的方法,其流程如图1所示,该方法包括:
步骤101,处理器一次从片内存储器将多个(N个)待执行指令按顺序地预取并存储到缓冲器(buffer)中。其中,处理器的时钟是片内存储器的时钟的N倍,片内存储器的位宽是处理器的位宽的N倍。
在一个实施例中,所述处理器的时钟为100MHz,指令位宽为16位,所述片内存储器的时钟为25MHz,位宽为64位,所述N为4。也就是说,处理器的处理速度匹配片内存储器的吞吐量。
在一个实施例中,缓冲器包括第一缓冲器和第二缓冲器,第一缓冲器和第二缓冲器分别存储N个待执行指令。所述方法还包括:处理器一次从片内存储器将N个待执行指令按顺序地预取并依次交替地存储到第一缓冲器和第二缓冲器中。例如,处理器预取指令1-4并存储在第一缓冲器中,接着,处理器预取指令5-8并存储在第二缓冲器中,再次,处理器预取指令9-12并存储在第一缓冲器中,依次类推。
步骤102,处理器按顺序地从缓冲器中读取并执行待执行指令。应当注意,处理器依次交替地从第一缓冲器和第二缓冲器中读取并执行存储其中的待执行指令。例如在上面描述的示例中,处理器首先从第一缓冲器中依次读取并执行指令1-4,接着从第二缓冲器中依次读取并执行指令5-8,再次从第一缓冲器中依次读取并执行指令9-12,依次类推。可以理解,第一缓冲器和第二缓冲器形成乒乓缓冲器。
步骤103,当检测到下一个待执行指令的地址与当前执行指令的地址不连续,也即当程序跳转至地址不连续的指令时,处理器判断程序发生跳转并在缓存区(cache)查询跳转指令,如查询未命中,处理器从片内存储器中读取并执行跳转指令,同时将跳转指令存储到缓存区中,如查询命中,处理器从缓存区中读取并执行跳转指令。
当程序第一次在某个位置发生跳转时,缓存区中没有保存该跳转指令,使得查询未命中,因此处理器需要从片内存储器中读取该跳转指令并将其存储到缓存区中。当后续再次在该位置发生跳转时,缓存区中已保存有该跳转指令,使得查询命中,因而处理器可以直接从缓存区中读取并执行该跳转指令,而无需再次从片内存储器中读取,避免了因此导致的处理器等待时间。
在一个实施例中,缓存区可以仅保存跳转指令。在另一个实施例中,缓存区不仅保存跳转指令,还可以保存跳转指令后的一个或多个待执行指令。例如,在一个实施例中,缓存区保存跳转指令及跳转指令后的N-1个(三个)待执行指令。
在一个实施例中,所述缓存区的大小为1KB~4KB。缓存区包括一条或多条缓存行(cache line),每条缓存行保存N个待执行指令,每条缓存行包括有效位、地址信息栏和N个待执行指令的指令信息。
本申请中高速缓存区的容量可以很小,例如以每个跳转点缓存4个指令,每个指令2字节为例,假设高速缓存区的容量为1KB,则高速缓存区可以缓存128个跳转点。因此本申请可以利用很小的高速缓存区可以缓存足够的跳转点,并且进一步的跳转指令的命中率可以达到很高。
可以理解的是,每条缓存行可以用于保存一次程序跳转时需要执行的指令。缓存区仅保存跳转指令或保存跳转指令及跳转指令后的一个或多个待执行指令取决于每条缓存行的容量。例如,当一条缓存行可以保存多个指令时,可以在程序发生跳转时,将跳转指令及跳转指令后的一个或多个待执行指令保存到一条缓存行中。
应当注意,本实施例中的术语“跳转指令”指的是:在程序执行过程中,如从当前位置跳转到指定位置,该指定位置所对应的一个待执行指令,或所对应的一个待执行指令及后续的一个或多个待执行指令,也就是一条缓存行中存储的指令。
在一个实施例中,所述方法还包括:从片内存储器预取位于跳转指令后的待执行指令并存储到缓冲器中。中央处理器执行完存储于缓存区中的跳转指令之后,可以直接从缓冲器中顺序执行后续指令。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请的保护范围的限制。
对于背景技术中描述的每次读取指令处理器需要等待多个周期,通常的解决方法有:
第一种:增加存储器的宽度,使得处理器一次可以读取多条指令。如果控制器中设计了指令预取逻辑,在执行当前指令的时候,利用两个或者多个缓冲器(buffer)缓存预取下一个缓冲行(buffer line)的指令。当执行到下一个缓冲行的时候,指令已经预取完毕,可以使得顺序执行的时候零等待,不影响处理器的顺序执行效率。该方案的缺点是在程序跳转时,缓冲器的缓存指令失效,需要重新缓冲,每次程序跳转都会带来性能的损失。
第二种:增加缓存区(cache),在缓存区的命中范围内处理器可以零等待访问,但是没命中的指令则需要等待存储器的访问。缓存区命中率与缓存区的容量有关,大的缓存区容量对性能有很大帮助。由于缓存区是缓存所有指令,所以需要较大的容量才能满足程序需求,这对于小芯片来说,缓存区的成本较高。
目前的解决方法中,指令预取逻辑无法解决指令跳转的问题,而缓存区需要较大的容量才能满足性能需求,成本高。
对此,本发明是针对嵌入非挥发存储器(即片内存储器),结合指令预取和跳转缓存区来实现性能的提升。指令的跳转是通过地址线是否连续来判断,与指令集无关,因为可以适合ARM(是一种基于RISC架构的处理器)或者RiscV(一个基于精简指令集原则的开源指令集架构)等多种处理器内核,不需要对指令做判断。
下面是芯片内部的场景:
非挥发存储器在芯片内部,虽然速度慢,但是存储器的数据宽度可以加大,不受外部IO(输入输出)的限制。虽然存储器的速度比处理器慢,但是可以通过增加宽度达到同样的数据吞吐量。比如处理器每周期执行16位指令,但是速度是存储器的4倍,那么64位的数据宽度可以满足处理器的指令需求,同样都是每4周期64位的指令。
由于存储器的带宽大,每次存储器的访问,都会读取多条指令,可以保存到控制器内部的缓冲器中。一次访问能满足处理器连续的多条指令的需求。如果有两个或者多个缓冲器,在处理器读取缓冲器1中的指令时,缓冲器2可以预取下一个缓冲行的指令,避免处理器等待指令读取的时间。
如果程序发生跳转,取指令的地址会出现不连续。跳转的原因可能是分支指令,函数调用,或者是中断。新的指令不在现有的缓冲器中,则需要从存储器中读取新的指令,此时会造成性能的损失。
有一个小的跳转指令缓存区,仅保存跳转后的指令。当第一次跳转发生,所取到的指令在传给处理器的同时,也会保存到指令缓存区中。当多次执行同一个地址的跳转指令时,处理器可以直接从指令缓存区中取指令。片内存储器则直接从缓存区后的地址开始取指令,等到处理器执行完缓存区中的指令后,正好可以执行存储器中预取的指令,避免了处理器等待所造成的性能损失。
由于跳转指令只占处理器指令的一部分,所以只需要一个小的跳转指令缓存区,配合存储器预取逻辑,就能让处理器零等待的执行慢速存储器中的程序。
如图2所示,顺序执行时,处理器(MCU)从预取缓冲器1和缓冲器2读取指令,但是读取的指令不保存到缓存区中。例如,处理器顺序地从缓冲器1和缓冲器2中读取指令0-7并执行。
发生第一次程序跳转时,跳转指令在缓存区中未命中,处理器从存储器中取指令,同时跳转指令会保存在缓存区中。
发生多次跳转时,跳转指令在缓存区中命中,处理器直接从缓存区中取指令,缓冲器则取缓存区指令后的顺序指令。
如图3所示,程序多次从指令1跳转到指令11时,指令11以及后面同一个缓存行指令(即指令12和指令13)都保存在跳转指令缓存区中,处理器可以直接从缓存行后的指令14开始取指,避免处理器等待。
跳转指令缓存区中由多个缓存行组成,每个缓存行包括V(valid,是否有效)、tag(保存地址信息)、data(保存一个或多个指令)。如果缓存行有效并且地址匹配,则返回data中保存的指令给处理器。
本申请的另一个实施例中还公开了一种获取待执行指令的系统包括:处理器、与处理器通信连接的片内存储器、缓冲器、以及缓存区,其中,处理器的时钟是片内存储器的时钟的N倍,片内存储器的位宽是处理器的位宽的N倍。其中,缓冲器中按顺序地存储有从片内存储器预取的N个待执行指令,缓存区中存储有跳转指令及每个跳转指令后的N-1个待执行指令。其中,处理器按顺序地从缓冲器中读取并执行N个待执行指令,当检测到下一个待执行指令的地址与当前执行指令的地址不连续时,处理器判断程序发生跳转并在缓存区查询跳转指令,如查询未命中,处理器从片内存储器中读取并执行跳转指令及其后的N-1个指令,同时将跳转指令及其后的N-1个指令存储到缓存区中,如查询命中,处理器从缓存区中读取并执行跳转指令。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请提及的所有文献都在本申请中引用作为参考,就如同每一篇文献被单独引用作为参考那样。此外应理解,在阅读了本申请的上述讲授内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (10)
1.一种获取待执行指令的方法,其特征在于,包括:
处理器一次从片内存储器将N个待执行指令按顺序地预取并存储到缓冲器中,其中,所述处理器的时钟是所述片内存储器的时钟的N倍,所述片内存储器的位宽是所述处理器的位宽的N倍;
所述处理器按顺序地从所述缓冲器中读取并执行所述待执行指令;以及
当检测到下一个待执行指令的地址与当前执行指令的地址不连续时,所述处理器判断程序发生跳转并在缓存区中查询该发生跳转的跳转指令,如查询未命中,所述处理器从所述片内存储器中读取并执行所述跳转指令及其后的N-1个指令,同时将所述跳转指令及其后的N-1个指令存储到所述缓存区中,如查询命中,所述处理器从所述缓存区中读取并执行所述跳转指令。
2.根据权利要求1所述的方法,其特征在于,所述缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器和所述第二缓冲器分别存储N个待执行指令,所述方法还包括:所述处理器一次从片内存储器将N个待执行指令按顺序地预取并依次交替地存储到所述第一缓冲器和所述第二缓冲器中。
3.根据权利要求2所述的方法,其特征在于,所述处理器依次交替地从所述第一缓冲器和所述第二缓冲器中读取并执行存储其中的待执行指令。
4.根据权利要求1所述的方法,其特征在于,所述处理器的时钟为100MHz,所述处理器的位宽为16位,所述片内存储器的时钟为25MHz,所述片内存储器的位宽为64位,所述N为4。
5.根据权利要求1所述的方法,其特征在于,所述缓存区的容量为1KB~4KB。
6.根据权利要求1所述的方法,其特征在于,所述缓存区包括多条缓存行,每条缓存行保存N个待执行指令,每条缓存行包括有效位、地址信息栏和N个待执行指令的指令信息。
7.根据权利要求1所述的方法,其特征在于,还包括:从所述片内存储器预取位于所述跳转指令后的待执行指令并存储到所述缓冲器中。
8.一种获取待执行指令的系统,其特征在于,包括:处理器、与所述处理器通信连接的片内存储器、缓冲器、以及缓存区,其中,所述处理器的时钟是所述片内存储器的时钟的N倍,所述片内存储器的位宽是所述处理器的位宽的N倍;其中,所述缓冲器中按顺序地存储有从所述片内存储器预取的N个待执行指令,所述缓存区中存储有跳转指令及每个跳转指令后的N-1个待执行指令;
其中,所述处理器按顺序地从所述缓冲器中读取并执行所述N个待执行指令,当检测到下一个待执行指令的地址与当前执行指令的地址不连续时,所述处理器判断程序发生跳转并在所述缓存区查询所述发生跳转的跳转指令,如查询未命中,所述处理器从所述片内存储器中读取并执行所述跳转指令及其后的N-1个指令,同时将所述跳转指令及其后的N-1个指令存储到所述缓存区中,如查询命中,所述处理器从所述缓存区中读取并执行所述跳转指令。
9.根据权利要求8所述的系统,其特征在于,所述缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器和所述第二缓冲器分别存储N个待执行指令,所述处理器一次从片内存储器将N个待执行指令按顺序地预取并依次交替地存储到所述第一缓冲器和所述第二缓冲器中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至7中任意一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310759467.3A CN116700794A (zh) | 2023-06-26 | 2023-06-26 | 一种获取待执行指令的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310759467.3A CN116700794A (zh) | 2023-06-26 | 2023-06-26 | 一种获取待执行指令的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116700794A true CN116700794A (zh) | 2023-09-05 |
Family
ID=87840922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310759467.3A Pending CN116700794A (zh) | 2023-06-26 | 2023-06-26 | 一种获取待执行指令的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700794A (zh) |
-
2023
- 2023-06-26 CN CN202310759467.3A patent/CN116700794A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8788759B2 (en) | Double-buffered data storage to reduce prefetch generation stalls | |
US5586295A (en) | Combination prefetch buffer and instruction cache | |
KR100278328B1 (ko) | 캐시 미스 버퍼 | |
US20150143045A1 (en) | Cache control apparatus and method | |
CN111538679B (zh) | 一种基于内嵌dma的处理器数据预取方法 | |
US9753855B2 (en) | High-performance instruction cache system and method | |
KR20120086363A (ko) | 연산 처리 장치 | |
CN112579175B (zh) | 分支预测方法、分支预测装置和处理器核 | |
US20080140934A1 (en) | Store-Through L2 Cache Mode | |
CN111142941A (zh) | 一种非阻塞高速缓存缺失处理方法及装置 | |
CN114925001A (zh) | 处理器、页表预取方法、电子设备 | |
US20070271407A1 (en) | Data accessing method and system for processing unit | |
US20160217079A1 (en) | High-Performance Instruction Cache System and Method | |
CN108874691B (zh) | 数据预取方法和内存控制器 | |
US20040088490A1 (en) | Super predictive fetching system and method | |
CN112148366A (zh) | 一种芯片降低功耗提升性能的flash加速方法 | |
US7111127B2 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
CN115563031A (zh) | 指令高速缓存的预取控制方法、装置、芯片及存储介质 | |
CN116700794A (zh) | 一种获取待执行指令的方法及系统 | |
CN112711383B (zh) | 用于电力芯片的非易失性存储读取加速方法 | |
US20130145097A1 (en) | Selective Access of a Store Buffer Based on Cache State | |
US7085887B2 (en) | Processor and processor method of operation | |
US9037806B2 (en) | Reducing store operation busy times | |
US9047199B2 (en) | Reducing penalties for cache accessing operations | |
JP2008052518A (ja) | Cpuシステム |
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 |