与处理器无关的循环条目高速缓冲存储器的制作方法

文档序号:6432349阅读:120来源:国知局
专利名称:与处理器无关的循环条目高速缓冲存储器的制作方法
技术领域
本发明标的物一般来说涉及电子器件,且更特定来说涉及微控制器,包括嵌入式非易失性存储器(NVM)控制器。
背景技术
微控制器通常包括处理器及一个或一个以上类型的存储器,例如易失性及非易失性存储器(NVM)。举例来说,微控制器可具有静态随机存取存储器(SRAM)装置及快闪存储器装置两者。处理器可比快闪存储器更快速地存取SRAM,但由于SRAM昂贵,通常SRAM较小且不能够存储整个软件代码。因此,在一些微控制器中,例如,在不首先将指令从快闪存储器拷贝到SRAM的情况下,处理器可执行直接从快闪存储器读取的指令。在其中处理器直接从嵌入式NVM取指令的微控制器中,可通过预取指令来改善性能。举例来说,在使用宽存储器数据总线存取NVM的情况下,可使用根据存储器数据总线宽度定大小的一对预取缓冲器来减少等待状态的平均数目。预取尤其在处理器正在执行顺序代码时改善性能。

发明内容
一种存储器控制器经配置以从处理器接收读取请求且从存储器返回存储器字。所述存储器控制器包含地址比较器及循环条目高速缓冲存储器。所述地址比较器经配置以确定先前读取请求地址与当前读取请求地址之间的差。所述地址比较器还经配置以确定所述差是否为正且小于某一地址差,且如果如此的话,那么指示有限反向跳转。所述循环条目高速缓冲存储器经配置以在所述地址比较器指示有限反向跳转时存储所述当前读取请求地址的当前存储器字。


图1是具有嵌入式快闪存储器的实例性微控制器的框图,所述嵌入式快闪存储器是经由快闪存储器控制器从微处理器核心被存取。图2是实例性存储器控制器的示意图。图3是图解说明实例性微处理器循环主体指令的图表。图4是用于将存储器字存储于循环条目高速缓冲存储器中的实例性过程的流程图。
具体实施例方式系统总述图1是具有嵌入式快闪存储器107的实例性微控制器100的框图,嵌入式快闪存储器107是经由快闪存储器控制器105从微处理器核心101被存取。微控制器100包括经配置以存取芯片上存储器103、107及其它外围装置104、105的微处理器101。微控制器100由一组端子140供电。端子140包括(举例来说)一系列物理接入端子(PAD)以给微控制器100供电,所述系列物理接入端子中的一些用于提供电压源VDD,一些用于提供接地GND。在一些实施方案中,微控制器的组件使用系统总线120交换数据,系统总线120可包括从外围装置104、105向微处理器101携载数据的读取数据总线、从微处理器101向外围装置104、105携载数据的写入数据总线及携载控制信号以指示系统总线120上的传送方向的地址总线。由于系统总线120的地址总线由外围装置104、105共享,因此可使用地址解码器102来解码所述地址总线上所携载的值以便一次选择一个外围装置。地址解码器102 连接到地址总线(系统总线120的部分)且可提供选择信号121、122、123。这些选择信号可由存储器103及外围装置104、105读取以计及系统总线120上所携载的值。当所述地址总线的地址值匹配为芯片上存储器103分配的地址范围时,可选择芯片上存储器103(例如,信号123为活动的)。当所述地址总线的地址值匹配为嵌入式快闪存储器控制器105分配的地址范围时,可选择嵌入式快闪存储器控制器105 (例如,信号121 为活动的)。在一些实施方案中,在地址解码器102中硬接线地址范围。响应于经选择,选定存储器103或者外围装置104或105将对应数据提供到系统总线120上,所述对应数据由微处理器101读取且根据应用软件被处理。在一些实施方案中,微处理器101经由中断信号125检测数据的可用性。当经设定时,中断信号125触发中断控制器104。接着,中断控制器104直接将所述事件用信号通知给微处理器101的专用引脚。当微处理器101由中断信号125触发时,其内部状态机中断对当前任务的处理且借助系统总线120对中断控制器104执行读取存取以获得中断源(外围装置)。嵌入式快闪存储器107存储(举例来说)应用软件作为用于微处理器101的可执行指令。芯片上存储器103(例如,SRAM)存储在微处理器101执行所述应用软件期间使用的中间变量的值。微处理器101使用系统总线120取所述应用软件。微处理器101可(1)首先将所述应用软件的指令从快闪存储器107拷贝到芯片上存储器103中且接着从芯片上存储器103取所述指令,或( 从快闪存储器107取所述指令。在第一种情况下,由于芯片上存储器103的速度,存取时间通常较短。总体系统的性能通常较高。然而,芯片上存储器103经定大小以存储软件加中间变量的值,此可增加微控制器100的成本。在第二种情况下,芯片上存储器103的大小可较小,因为其存储中间变量的值而不存储应用软件。此可降低微控制器100的成本。一般来说,由于快闪存储器107的速度, 第二种情况下的存取时间较长,使得微控制器100的性能较低。微处理器101经由快闪存储器控制器105存取快闪存储器107。快闪存储器控制器105将来自系统总线120的读取请求翻译成快闪存储器107所使用的协议。为在直接从快闪存储器107取指令时改善微控制器100的性能,嵌入式快闪存储器读取数据总线106比系统总线120宽。举例来说,在一些实施方案中,系统总线为32位宽且存储器数据总线为1 位宽。快闪存储器控制器105执行预取。预取包括提前读取恰好位于上一经存取数据之后的数据,即使此尚未被请求。将提前读取的数据置于高速缓冲存储器(例如,高速存储器,例如寄存器)中。当实际上需要所述指令时,可从所述高速缓冲存储器快速地存取所述指令。当微处理器101从快闪存储器107取指令时,其发出地址及指示正在执行指令读取的一个或一个以上控制信号。存储器控制器105接着通常从所请求指令的快闪地址开始执行预取。当顺序地取下一指令时,预取改善性能。在一些实施方案中,存储器控制器105 识别循环条目指令且高速缓冲存储所述循环条目指令。下文进一步参照图2到图4论述识别及高速缓冲存储循环条目指令。尽管图1描绘具有快闪存储器107的微控制器100,但其它类型的存储器是可行的。举例来说,可使用其它类型的NVM。一般来说,存储器经配置以使得存储器的读取存取时间大于微处理器取指令循环时间,且使得存储器控制器可比其可将数据发送到处理器更快地存取存储器(例如,使用较宽总线)。在这些配置中,预取可改善微控制器速度。所揭示的实施方案提供优于常规微控制器的经改善性能。可通过使处理器直接从 NVM取指令来降低微控制器成本。尽管通过高速缓冲存储循环条目指令可能产生来自NVM 的低响应时间,但仍可改善微控制器性能。实例性存储器控制器图2是实例性存储器控制器220的示意图。可使用存储器控制器220 (举例来说) 作为图1的快闪存储器控制器105。当存储器控制器220在系统地址总线上从微处理器接收到系统读取请求时,存储器控制器220使用存储器地址总线及所述系统读取请求所给出的地址来从存储器读取字。 存储器控制器220接着通过在所述系统读取请求所给出的所述地址之后的下一顺序地址处取下一字来从存储器预取所述字。所述所预取的下一字存储于高速缓冲存储器中。所述高速缓冲存储器包含(举例来说)一对预取缓冲器201。又可使用所述预取缓冲器201,使得一个预取缓冲器201可供用于被写入新字,而一个预取缓冲器201正存储所预期读取请求的字。当微处理器正顺序地从存储器取指令时,预取缓冲器有助于最小化微处理器的等待状态的数目。在一些情况下,其中存储器带宽充足,根本不等待微处理器,直到间断在指令序列中出现。地址比较器202检测有限地址范围的反向跳转。此种反向跳转指示循环条目指令。循环条目指令是在微处理器一直重复直到到达结束条件的指令循环的开始处的指令。 地址比较器202(举例来说)使用二进制输出信号指示有限范围的反向跳转。存储器控制器220高速缓冲存储循环条目高速缓冲存储器(例如,一对分支缓冲器20 中的循环条目指令。存储器控制器220尝试仅将循环条目指令高速缓冲存储到所述循环条目高速缓冲存储器中。举例来说,当微处理器正在执行指令时,(举例来说)由于评估条件、函数调用、中断调用或循环迭代,各种序列间断可出现。高速缓冲存储导致那些间断的指令可不改善性能,因此存储器控制器220尝试区分循环条目指令。存储器控制器220尝试使用地址比较器202来检测循环条目指令;然而,地址比较器202可在一些情况下指示并非为循环条目指令的指令的有限范围内的反向跳转。存储器控制器220可使用额外信息来区分循环条目指令。举例来说,存储器控制器220可从微处理器接收指示读取请求是针对指令还是针对其它数据的请求的系统读取类型信号。如果所述请求是针对其它数据,那么存储器控制器220确定不将所述数据高速缓冲存储于循环条目高速缓冲存储器中,因为其并非为循环条目指令。实例性循环指令图3是图解说明实例性微处理器循环主体指令的图表。在图3中,标记为LO到Ln的框表示微处理器的指令。将指令群组存储为存储器字。展示所述存储器字在垂直虚线之间。以从MbO到Mpl的存储器地址来标记所述存储器字。出于说明的目的,图3图解说明其中LO为循环条目指令且Ln为所述循环中的最后指令的实例性情景。在执行所述指令时,微处理器请求存储器字MbO到Mpl且执行指令 LO到Ln。在执行Ln之后,微处理器再次请求MbO,使得其可开始再次执行LO处的指令。当存储器控制器检测到从Ln到LO的反向跳转时,所述存储器控制器将存储器字 MbO及Mbl存储于循环条目高速缓冲存储器(例如,图2中所示的所述对分支缓冲器203) 中。在将那些存储器字高速缓冲存储于所述循环条目高速缓冲存储器中之后,组合所述存储器控制器中经由循环主体的常规顺序预取机制与对所述循环条目高速缓冲存储器(分支缓冲器20 的快速读取存取,可在微处理器处没有等待状态或等待状态最少的情况下迭代整个循环。为识别循环条目(例如,L0),由图2的地址减法器204从先前存取存储器地址减去微处理器当前存取存储器地址。在一些实施方案中,如果当前及先前存取两者均被辨识为取指令,那么存储器控制器仅将存储器字存储于循环条目高速缓冲存储器中。举例来说, 微处理器可提供读取类型指示符信号以识别其正在请求指令还是其它数据。如果所述减法的结果为正但小于固定地址范围(Max_BaCkward_Jump),那么存储器控制器确定已采取短反向分支。在一些实施方案中,循环条目高速缓冲存储器针对多个循环条目存储存储器字 (或存储器字对)。举例来说,可针对经确定含有循环条目指令的存储器字阵列创建寄存器堆。高速缓冲存储存储器字对(图3中的MbO,即含有循环条目指令的存储器字,及 Mbl,即下一顺序存储器字)而非仅高速缓冲存储含有循环条目指令的存储器字(图3中的 MbO)可在重新进入所述循环时减少微处理器所需要的等待状态的数目。所述循环的第一指令LO可位于从目标存储器字MbO的开始到结束的任何地方。如果由于循环条目指令LO在分支目标存储器字MbO内部的位置较晚,存储器存取时间比微处理器从循环条目指令(图3 中的L0)到位于下一存储器字内部的第一指令(图3中的L2)取指令的时间长,那么微处理器将等待,直到第二存储器字Mbl可用。确定有限范围内的反向跳转指示循环条目依赖于三个假设(1)正向跳转(即使是短的正向跳转)并非是到循环条目的跳转,但更可能是由于在测试结果评估或者函数调用或中断调用或者其它之后即刻执行的条件代码所致的跳转;( 短循环展示高速缓冲存储其条目更有益(如果循环主体指令长度由几百个指令组成,那么通常将不会通过减少读取第一循环指令所需要的等待状态的数目而经历显著改善);(3)长反向跳转更可能不对应于短循环条目,但对应于函数调用或中断调用或者其它序列间断,至少在像C语言或甚至来自平常汇编代码的良好结构化的高级语言中是这样的。在一些实施方案中,存储器控制器包括多于单对存储器字大小的寄存器,以便高
7速缓冲存储嵌套循环的其它外循环条目。如果从循环主体内部调用函数,那么这些额外对还可高速缓冲存储函数调用作为侧效果,此可改善性能。过程总述图4是用于将存储器字存储于循环条目高速缓冲存储器中的实例性过程400的流程图。所述过程由存储器控制器(例如,图2的存储器控制器220)执行。存储器控制器从处理器接收读取请求(步骤40 。所述读取请求指定存储器(例如,快闪存储器装置)中所存储的存储器字的存储器地址。存储器控制器确定所请求存储器字是否在循环条目高速缓冲存储器中(步骤420)。一般来说,存储器控制器将所述读取请求的所述存储器地址与所述循环条目高速缓冲存储器中所存储的存储器字的存储器地址进行比较。在一些实施方案中,所述循环条目高速缓冲存储器中所存储的所述存储器字的所述存储器地址也存储于所述循环条目高速缓冲存储器中。如果所请求字在所述循环条目高速缓冲存储器中,那么存储器控制器不从所述存储器读取所请求存储器字(步骤 422)。而是,存储器控制器针对所请求存储器字存取所述循环条目高速缓冲存储器。存储器控制器确定先前从处理器接收的读取请求所指定的地址与当前读取请求 (在步骤402中接收的读取请求)所指定的地址之间的差(步骤404)。所述先前接收的读取请求存储于(举例来说)寄存器中。存储器控制器确定所述差是否为正且小于某一差(步骤406)。如果所述差为负或大于所述某一差,那么存储器控制器不将所请求存储器字存储于循环条目高速缓冲存储器中(步骤410)。如果所述差为正且小于所述某一差,那么可将所请求存储器视为含有循环条目指令。在一些实施方案中,存储器控制器从所述存储器取所请求存储器字,且在确定所述差为正且小于所述某一差之后将所述存储器字存储于循环条目高速缓冲存储器中。在一些其它实施方案中,存储器控制器从处理器接收读取类型指示符,其指示当前地址对应于数据读取还是指令读取。存储器控制器确定所述读取类型指示符是否对应于数据读取(步骤408),且如果如此的话那么不将所请求存储器字存储于循环条目高速缓冲存储器中(步骤410)。如果存储器控制器确定所述读取类型指示符对应于指令读取,那么存储器控制器取所请求存储器字且将所述存储器字存储于循环条目高速缓冲存储器中 (步骤412)。在一些实施方案中,存储器控制器取顺序地跟在所请求存储器字之后的下一存储器字且将所述下一存储器字存储于所述循环条目高速缓冲存储器中(步骤418)。在一些实施方案中,存储器控制器首先确定是否存储所述下一存储器字(步骤414)。存储器控制器通过确定当前存储器字内的目标指令是否在当前存储器字内的某一位置之后来确定是否存储所述下一存储器字。如果所述目标指令在所述某一位置之后,那么存储器控制器确定存储所述下一存储器字(步骤418)。如果所述目标指令不在所述某一位置之后,那么存储器控制器确定不存储所述下一存储器字(步骤416)。虽然本文件含有许多具体实施细节,但这些实施细节不应被视为限制可主张的范围,而是视为对特定实施例可能特有的特征的说明。在此说明书中在单独实施例的背景中描述的某些特征也可以组合形式实施于单个实施例中。相反,在单个实施例的背景中描述的各种特征也可分开地或以任何适合子组合形式实施于多个实施例中。此外,尽管上文可将特征描述为以某些组合形式起作用且甚至最初主张如此,但来自所主张组合的一个或一个以上特征在一些情况下可从所述组合去除,且所述所主张组合可针对子组合或子组合的变化形式。
权利要求
1.一种包含存储器控制器的系统,其中所述存储器控制器经配置以从处理器接收读取请求且从存储器返回存储器字,且其中所述存储器控制器包含地址比较器,其经配置以确定先前读取请求地址与当前读取请求地址之间的差,并确定所述差是否为正且小于某一地址差,且如果如此的话,那么指示有限反向跳转;及循环条目高速缓冲存储器,其经配置以在所述地址比较器指示有限反向跳转时存储所述当前读取请求地址的当前存储器字。
2.根据权利要求1所述的系统,其中所述存储器控制器经配置以从所述处理器接收新读取请求地址,确定所述新读取请求地址匹配所述当前读取请求地址,且从所述循环条目高速缓冲存储器读取所述当前存储器字且将所述当前存储器字返回到所述处理器。
3.根据权利要求1所述的系统,其中所述存储器控制器经配置以从所述处理器接收指示所述当前读取请求地址对应于数据读取还是指令读取的读取类型指示符,且其中所述循环条目高速缓冲存储器经配置以在所述读取类型指示符指示所述当前读取请求地址对应于数据读取的情况下不存储所述当前存储器字。
4.根据权利要求1所述的系统,其中所述循环条目高速缓冲存储器进一步经配置以存储顺序地跟在所述当前读取请求地址之后的下一存储器地址的下一存储器字。
5.根据权利要求1所述的系统,其中所述存储器控制器经配置以确定所述当前存储器字内的目标指令是否在所述当前存储器字内的某一位置之后,且如果所述目标指令在所述某一位置之后,那么将顺序地跟在所述当前请求地址之后的下一存储器地址的下一存储器字存储于所述循环条目高速缓冲存储器中,且如果所述目标指令不在所述某一位置之后, 那么不将所述下一存储器字存储于所述循环条目高速缓冲存储器中。
6.根据权利要求1所述的系统,其中所述循环条目高速缓冲存储器经配置以存储多个循环条目存储器字,每一循环条目存储器字对应于所述地址比较器指示有限反向跳转所针对的一不同存储器地址。
7.根据权利要求1所述的系统,其中所述存储器控制器经配置以接收对所述存储器中的数据的请求且在接收到对顺序地位于所述存储器中的所述数据之后的额外数据的特定请求之前读取所述数据及所述额外数据两者,且将所述额外数据存储于预取高速缓冲存储器中。
8.根据权利要求1所述的系统,其中所述存储器为非易失性存储器。
9.根据权利要求1所述的系统,其进一步包含耦合到所述存储器控制及所述处理器的系统数据总线及耦合到所述存储器控制器及所述存储器的存储器数据总线,其中所述存储器数据总线比所述系统数据总线宽。
10.根据权利要求1所述的系统,其进一步包含所述处理器及所述存储器。
11.一种由存储器控制器执行的方法,所述方法包含从处理器接收存储器中的存储器字的先前读取请求地址及当前读取请求地址;确定所述先前读取请求地址与所述当前读取请求地址之间的差;确定所述差为正且小于某一地址差;及将所述当前读取请求地址的来自所述存储器的当前存储器字存储于循环条目高速缓冲存储器中。
12.根据权利要求11所述的方法,其进一步包含从所述处理器接收新读取请求地址;确定所述新读取请求地址匹配所述当前读取请求地址;及从所述循环条目高速缓冲存储器读取所述当前存储器字且将所述当前存储器字返回到所述处理器。
13.根据权利要求11所述的方法,其进一步包含从所述处理器接收指示所述当前读取请求地址对应于数据读取还是指令读取的读取类型指示符;及如果所述读取类型指示符指示指令读取,那么将所述当前存储器字存储于所述循环条目高速缓冲存储器中,且如果所述读取类型指示符指示数据读取,那么不将所述当前存储器字存储于所述循环条目高速缓冲存储器中。
14.根据权利要求11所述的方法,其进一步包含存储顺序地跟在所述当前读取请求地址之后的下一存储器地址的下一存储器字。
15.根据权利要求11所述的方法,其进一步包含确定所述当前存储器字内的目标指令是否在所述当前存储器字内的某一位置之后,且如果所述目标指令在所述某一位置之后,那么将顺序地跟在所述当前请求地址之后的下一存储器地址的下一存储器字存储于所述循环条目高速缓冲存储器中,且如果所述目标指令不在所述某一位置之后,那么不将所述下一存储器字存储于所述循环条目高速缓冲存储器中。
16.根据权利要求11所述的方法,其进一步包含存储多个循环条目存储器字,每一循环条目存储器字对应于一不同存储器地址。
17.根据权利要求11所述的方法,其进一步包含从所述处理器接收对所述存储器中的数据的请求;在接收到对顺序地位于所述存储器中的所述数据之后的额外数据的特定请求之前读取所述数据及所述额外数据两者;及将所述额外数据存储于预取高速缓冲存储器中。
18.根据权利要求17所述的方法,其进一步包含接收对所述额外数据的另一请求且在不存取所述存储器的情况下从所述预取高速缓冲存储器返回所述额外数据。
19.根据权利要求11所述的方法,其中所述存储器为非易失性存储器。
20.根据权利要求11所述的方法,其中接收所述当前读取请求地址包含从耦合到所述处理器及所述存储器控制器的系统总线接收所述当前读取请求地址,且其中存储来自所述存储器的所述当前存储器字包含在耦合到所述存储器及所述存储器控制器的存储器总线上存取所述存储器,且其中所述存储器数据总线比所述系统数据总线宽。
全文摘要
本发明涉及与处理器无关的循环条目高速缓冲存储器。本发明提供一种存储器控制器,其经配置以从处理器接收读取请求且从存储器返回存储器字。所述存储器控制器包含地址比较器及循环条目高速缓冲存储器。所述地址比较器经配置以确定先前读取请求地址与当前读取请求地址之间的差。所述地址比较器还经配置以确定所述差是否为正且小于某一地址差,且如果如此的话,那么指示有限反向跳转。所述循环条目高速缓冲存储器经配置以在所述地址比较器指示有限反向跳转时存储所述当前读取请求地址的当前存储器字。
文档编号G06F12/08GK102436422SQ201110259298
公开日2012年5月2日 申请日期2011年8月31日 优先权日2010年9月2日
发明者弗兰克·卢纳迪尔, 弗雷德里克·舒马赫 申请人:爱特梅尔卢梭公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1