CN106155928A - 一种存储层次预取系统和方法 - Google Patents
一种存储层次预取系统和方法 Download PDFInfo
- Publication number
- CN106155928A CN106155928A CN201510178436.4A CN201510178436A CN106155928A CN 106155928 A CN106155928 A CN 106155928A CN 201510178436 A CN201510178436 A CN 201510178436A CN 106155928 A CN106155928 A CN 106155928A
- Authority
- CN
- China
- Prior art keywords
- address
- predicted
- screening
- storage hierarchy
- generator
- 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
Abstract
本发明提供了一种存储层次预取系统和方法,能根据初始地址持续产生预测地址并对预测地址进行筛选,通过筛选的预测地址被用于访问较低存储层次读取信息存入本存储层次,未通过筛选的预测地址导致该预取系统终止基于该初始地址的预取。
Description
技术领域
本发明涉及计算机,通讯及集成电路领域。
背景技术
存储程序计算机中的中央处理器从存储器中读取指令或数据供处理器执行,执行的结果送回存储器中存储。随着技术的进步,存储器的容量增大,其访问延迟增大,存储器访问的通道延迟也增大;而处理器的执行速度却增快,因此存储器访问延迟日益成为计算机性能提高的严重瓶颈。在此存储器访问延迟包括存储器件内部的访问延迟;及存储器间与处理器间的传输通道延迟,比如复数个芯片间在电路板或共用基底上或硅片通孔TSV的传输延迟,中间层次芯片如北桥的延迟,多个存储芯片间接力串接的延迟,因传输格式转换导致的延迟,因通信协议导致的延迟。
因此,存储程序计算机使用缓存器试图掩盖存储器访问延迟以缓解此一瓶颈,但目前仍然无法完全掩盖。为此某些存储程序计算机使用预取试图进一步掩盖存储器访问延迟,但也遇到了困难。其中的一些困难是因为多层次缓存而导致,因为从较高缓存层次的预取请求要通过复数个存储层次,层层传递才能到达最低层的存储器。本发明提出的方法与系统装置能直接解决上述或其他的一个或多个困难。
发明内容
本发明提出了一种在处理器的存储器层次结构(Memory Hierarchy)中增设地址产生器的方法及其相应系统装置,该增设的地址产生器可以与处理器协同工作以解决上述或其他的一个或多个困难。所述增设的地址产生器可以先于处理器核产生预测地址,从较低的存储器层次读取指令及数据存入本层次的存储器,以备处理器核使用。
本发明的目的在于提供一种存储器层次系统、存储器层次方法及存储系统,以提高设备运行速度。
为此,本发明提供了一种存储层次预取系统,包括:
较低存储层次,用以存储信息并根据收到的访问地址或预测地址向存储器提供信息块;
存储器,用以存储信息并根据收到的访问地址输出当前信息块;
地址产生器,用以对初始地址或预测地址加一增量,持续产生预测地址,并对产生的地址进行筛选,向较低存储层次提供筛选通过的预测地址,获取相应信息填充存储器;当预测地址未通过筛选时,所述地址产生器终止操作。
较高存储层次,用以向存储器提供访问地址,接收存储器输出的当前信息块。
可选的,在所述的存储层次预取系统中,所述地址产生器通过如下产生方法一产生所述初始地址:
产生方法一、所述地址产生器在所述访问地址上加一增量,产生所述初始地址。
可选的,在所述的存储层次预取系统中,所述地址产生器通过如下产生方法二产生所述初始地址:
产生方法二、所述地址产生器解析所述当前信息块,若判断所述当前信息块中包含分支指令,则计算该分支指令的目标地址,产生所述初始地址。
可选的,在所述的存储层次预取系统中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法一对产生的所述预测地址进行筛选:
判断所述地址产生器产生的所述预测地址的相应信息是否已在所述存储器中,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取系统中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法二对产生的所述预测地址进行筛选:
判断所述地址产生器产生的预测地址是否越过预设的地址边界,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取系统中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法三对产生的所述预测地址进行筛选:
判断所述地址产生器根据一个访问地址持续产生的所述预测地址计数是否达到预设的最大值,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取系统中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法四对产生的所述预测地址进行筛选:
判断根据所述地址产生器产生的所述预测地址从较低存储层次获得的信息块中是否含有间接分支指令,若否,则当时被检测的所述预测地址通过筛选。
可选的,在所述的存储层次预取系统中,所述预取按所述访问地址访问存储器的时间点安排预取优先权,较晚访问的所述访问地址比较早访问的访问地址优先;对超过一定限度的较早访问放弃预取。
本发明还提供一种存储层次预取方法,包括:
步骤A:所述地址产生器根据初始地址持续产生预测地址;
步骤B:所述地址产生器对产生的预测地址进行筛选;
步骤C:通过筛选的预测地址被向较低存储层次发送;
步骤D:较低存储层次输出信息块;
步骤E:所述信息块存入存储器;
步骤F:未通过筛选的预测地址使地址产生器终止操作。
可选的,在所述的存储层次预取方法中,所述地址产生器利用如下筛选方法一对产生的所述预测地址进行筛选:
判断所述地址产生器产生的所述预测地址的相应信息是否已在所述存储器中,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取方法中,所述地址产生器通过如下产生方法二产生所述初始地址:
产生方法二、所述地址产生器解析所述当前信息块,若判断所述当前信息块中包含分支指令,则计算该分支指令的目标地址,产生所述初始地址。
可选的,在所述的存储层次预取方法中,所述地址产生器含有地址筛选器, 对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法一对产生的所述预测地址进行筛选:
判断所述地址产生器产生的所述预测地址的相应信息是否已在所述存储器中,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取方法中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法二对产生的所述预测地址进行筛选:
判断所述地址产生器产生的预测地址是否越过预设的地址边界,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取方法中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法三对产生的所述预测地址进行筛选:
判断所述地址产生器根据一个访问地址持续产生的所述预测地址计数是否达到预设的最大值,若否,则该产生的所述预测地址通过筛选。
可选的,在所述的存储层次预取方法中,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法四对产生的所述预测地址进行筛选:
判断根据所述地址产生器产生的所述预测地址从较低存储层次获得的信息块中是否含有间接分支指令,若否,则当时被检测的所述预测地址通过筛选。
可选的,在所述的存储层次预取方法中,所述预取按所述访问地址访问存储器的时间点安排预取优先权,较晚访问的所述访问地址比较早访问的访问地址优先;对超过一定限度的较早访问放弃预取。
附图说明
图1是本发明实施例一的存储层次系统的框结构示意图;
图2是本发明实施例二的存储层次系统的框结构示意图;
图3是本发明实施例三的存储层次系统的框结构示意图;
图4是本发明实施例四的存储层次系统的框结构示意图;
图5是本发明实施例五的存储层次系统的框结构示意图;
图6是本发明实施例六的存储层次系统的框结构示意图;
图7是本发明实施例六的存储层次系统的扫描器结构示意图;
图8是本发明实施例六的存储层次系统的扫描器结构示意图;
对于本领域专业人士,还可以在本发明的说明、权利要求和附图的启发下,理解、领会本发明所包含其他方面内容。
有益效果
本发明所述方法和系统装置可以掩盖处理器经过存储器层次结构访问信息的延迟。对于本领域专业人士而言,本发明的其他优点和应用是显见的。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
需说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式并非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。
虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特定实施例,正相反,发明者的出发点在于保护所有基于由本权利声明定义的精神或范围内进行的改进、等效转换和修改。同样的元器件号码可能被用于所有附图以代表相同的或类似的部分。
此外,在本说明书中以包含处理器的体系结构为例进行说明,本发明技术方案可以被应用于包含任何合适的处理器(Processor)的体系结构。例如,所述处理器可以是通用处理器(General Purpose Processor)、中央处理器(CPU)、微处理器(Microprocessor)、处理器核(Core)、微控制器(MCU)、数字信号处 理器(DSP)、图象处理器(GPU)、片上系统(SOC)、专用集成电路(ASIC)等。所述存储器或缓存可以由任何合适的存储设备构成,如:寄存器(register)或寄存器堆(register file)、静态存储器(SRAM)、动态存储器(DRAM)、闪存存储器(Flash memory)、硬盘(HD)、固态硬盘(SSD)以及任何一种合适的存储器件或未来的新形态存储器。本发明中所述信息可以是指令或数据。
【实施例一】
请参考图1,其为本发明实施例一的存储层次系统的框结构示意图。其中10为缓存器标签单元(Tag Unit),20为缓存器存储器(RAM),两者共同构成处理器的一个存储器层次;18为增设的地址产生器,14为选择器。13为存储器访问地址(Memory Access Address),来自处理器核或较高存储器层次(Memory Hierarchi)以对本存储器层次进行访问;地址13被送到选择器14的一个输入端,经选择器14选择后,经总线11与标签单元10中存储的标签比较匹配。如总线13上的地址在标签单元10中获得匹配,则存储器20中的相应信息经总线23送到较高存储器层次或处理器核供使用。如访问地址13在标签单元10中未获匹配,则该地址经总线11送出访问较低存储器层次,获得的信息经总线21存入本存储器层次的存储器20,总线11上的地址也被存入标签单元10中的相应表项。此时访问地址13在标签单元10中获得匹配,相应信息经总线23送到较高存储器层次或处理器核供使用。也可以将总线21上的信息在存入存储器20的同时直接旁路到总线23上。地址产生器18基于总线11上的地址,在该地址上增加一个增量15,其增量为一个信息块的大小,产生预测地址(Predicted Address)19送到选择器14的另一个输入端。图中未显示的仲裁器控制选择器14,如访问地址13有效,则仲裁器选择访问地址13放上总线11送到标签单元10匹配;如访问地址13上无效,而预测地址19有效,则仲裁器选择预测地址19放上总线11送到标签单元10匹配。
如预测地址19未在标签单元中获得匹配,则该预测地址19经总线11送出访问较低存储器层次,获得的信息经总线21存入本存储器层次的存储器20,总线11上的地址也被存入标签单元10中的相应表项。此时总线21上的信息不需被旁路到总线23上。地址产生器18就如此循环,在总线11的地址上增加增量15产生预测地址19;只要访问地址13无效,仲裁器就控制选择器14选择预测 地址19经总线11送到标签单元10匹配;只要预测地址与标签单元10中的标签不匹配,总线11上的预测地址就被送出访问较低的存储器层次获取信息存入存储器20;地址产生器18在总线11的地址上增加增量15产生预测地址19。当预测地址19与标签单元10中的标签匹配时,则地址产生器18终止基于该预测地址的后续操作。即本实施例的地址产生器18由在标签单元10中未获得匹配的访问地址13触发,持续产生预测地址19以访问较低的存储器层次,获取信息填充本存储层次的存储器20,直到预测地址在本层次的标签单元10中获得匹配为止。也即以地址与标签单元10中的标签匹配来控制地址产生器的操作,未匹配的访问地址触发地址产生器18的操作,匹配的预测地址终止地址产生器18的操作。
实施例一中的地址产生器18在其产生的预测地址19与标签存储器10中的标签匹配时会持续操作。某些情况下,需要地址产生器18在预测地址与标签仍然匹配的情况下终止操作,比如在程序的结尾处,以下三个实施例展示三种不同的终止方式。
【实施例二】
请参考图2,其为本发明实施例二的存储层次系统的框结构示意图。其中10为缓存器标签单元,20为缓存器存储器,18为地址产生器,13为访问地址,19为预测地址,14为选择器选择13或19,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线,23为本层次与较高存储层次或处理器核之间的信息总线,与图1中相同。其操作也与实施例一相似,不再赘述。图2中增加了指令译码器22。来自较高存储层次或处理器核的访问地址13有一伴随信号指明要获得的的信息是指令或数据。这一信号经总线11送到地址产生器18,地址产生器18产生预测地址19时也保持这一信号。因此根据伴随总线11上的预测地址的这一信号可以确定经总线21来自较低存储层次的信息块是指令块或数据块。指令译码器22对总线21上的指令块中指令进行译码。如果22译出上述指令块中有间接分支指令,则使地址产生器18终止产生预测地址。因为编译后的程序都以间接分支指令结尾,如此就避免了对程序结尾以后的存储器位置进行预取。
【实施例三】
请参考图3,其为本发明实施例三的存储层次系统的框结构示意图。其中10为缓存器标签单元,20为缓存器存储器,18为地址产生器,14为选择器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线,23为本层次与较高存储层次或处理器核之间的信息总线,与图1中相同。其操作也与实施例一相似,不再赘述。图3中增加了计数器12。计数器12对由地址产生器18根据总线13上的访问地址产生的预测地址19赋予一个初始计数值‘N’。地址产生器每产生一个新的预测地址,计算器12中的计数值即减‘1’。当计算器12中的计数值到‘0’时,使地址产生器18终止操作,使预取的信息块数目不超过一个预设的最大值。如此可以防止预取太多处理器核的分支选择不执行的指令段或不使用的数据段。也可以防止预取太多程序结尾后的无效信息。
【实施例四】
请参考图4,其为本发明实施例四的存储层次系统的框结构示意图。其中10为缓存器标签单元,20为缓存器存储器,18为地址产生器,14为选择器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线,23为本层次与较高存储层次或处理器核之间的信息总线,与图1中相同。其操作也与实施例一相似,不再赘述。图4中增加了比较器16。比较器16将由地址产生器18根据总线13上的访问地址产生的预测地址19与16中存储的地址边界比较。如预测地址19越过了比较器16中存储的地址边界,则使地址产生器18终止操作,使预取的信息块不越过地址边界。该地址边界可以是分配给处理器的的最小存储器区间,例如一个存储页面(page)或一个存储段(segment)。如此可以防止预取超出本线程所获分配的存储器范围。同样可以防止预取太多处理器核选择不执行的指令段或不使用的数据段。所述地址边界可以是预存在比较器16中或由程序写入比较器16中的寄存器中。
【实施例五】
请参考图5,其为本发明实施例五的存储层次系统的框结构示意图。其中10为缓存器标签单元,20为缓存器存储器,18为地址产生器,14为选择器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较 低存储层次与本层次之间的信息总线,23为本层次与较高存储层次或处理器核之间的信息总线,与图1中相同。其操作也与实施例一相似,不再赘述。图5中增加了图2中的指令译码器22,图3中的计数器12以及图4中的比较器16。可以根据需要选用上述的部分或全部装置以终止地址产生器18的操作。如果使用上述全部装置,则在标签单元10中未获得匹配的有效访问地址13触发地址产生器18产生预测地址19,预测地址经总线11送出访问较低存储层次,获取信息填充存储器20。地址产生器18持续产生新的预测地址19直到预测地址与标签单元中的标签匹配,或预测地址越过预设的存储器地址边界,或产生的预测地址的数目达到了预设的最大值,或获取的指令块中有间接分支指令为止。
【实施例六】
请参考图6,其为本发明实施例六的存储层次系统的框结构示意图。其中10为缓存器标签单元,20为缓存器存储器,14为选择器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线,23为本层次与较高存储层次或处理器核之间的信息总线,以上各模块及总线与图1中同样号码的模块相同。新增扫描器28,其包含了实施例一至四中地址产生器18,计数器12,比较器16的功能,并能扫描通过总线28传输的信息块,根据其中分支指令产生分支目标初始地址。实施例六可实现实施例五的所有功能。实施例六与实施例五以及实施例一至四的最大差异在于地址产生器操作不但可以由有效的访问地址13在标签单元中未获匹配而获得;而且可以由有效的访问地址13在标签单元10中获得匹配触发。
上述有效访问地址13在标签单元中未获匹配,因而触发地址产生器及地址产生器操作的过程与实施例一中相同,在此不再赘述。有效的访问地址13经总线11在标签单元10中获得匹配时,从存储器20读取相应信息块经总线23送到较高存储层次或处理器核,同时也将总线11上的有效访问地址送到扫描器28。扫描器中的地址产生器根据上述在标签单元中标签匹配的有效访问地址持续产生预测地址,并按实施例一至四中各条件终止产生预测地址。扫描器28中的地址产生器可以在上述有效地址中的块地址(存储器地址高位,例如标签与索引地址)上加上增量获得顺序下个信息块的初始预测地址。进一步,扫描器28也可以译码总线23上指令块中的各指令,对其中的分支指令,28中的地址产生器 以分支指令本身的地址加上分支指令中的分支偏移量得到分支目标地址作为初始预测地址。此后地址产生器即产生初始预测地址后的顺序预测地址直到终止条件使其终止产生预测地址。某些存储器器层次结构用缓存地址来直接对存储器寻址,此时可以用缓存块地址(缓存地址中的高位,例如路号与索引地址)读出标签单元10中的标签与索引地址合并送到扫描器28作为存储器块地址。
【实施例七】
请参考图7,其为本发明实施例六的存储层次系统的扫描器结构示意图。实施例7可以完成以顺序下块地址为初始预测地址的操作。图7中10为缓存器标签单元,20为缓存器存储器,14为选择器,22为指令地址译码器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线,以上各模块及总线与图5中同样号码的模块相同。扫描器28包含了由寄存器30,加法器32,选择器34构成的地址产生器,其功能类似于实施例一中的地址产生器18;包含了由寄存器36,减法器38,选择器40构成的计数器,其功能类似于实施例三中的计数器12;包含了地址边界比较器16,还包含了由存储单元40及41构成的有损栈(Loosy Stack)。
当满足实施例六所述的触发条件时,(即访问地址13有效时),选择器40选择预设最大预取数‘N’33送到减法器38减‘1’,其差存入寄存器36;同时选择器34选择总线11上的地址送到加法器32与增量15相加,其和存入寄存器30。30的输出即为预测地址19,如此时访问地址13无效,选择器14选择预测地址19经总线11送到标签单元10匹配。如预测地址19与10中的标签匹配,则终止地址产生器的进一步操作。如预测地址19与10中的标签不匹配,则总线11上的地址被送到较低存储层次读取信息填入存储器20;同时选择器40选择寄存器36的输出37送到减法器38减‘1’,其差存入寄存器36;选择器34选择总线19上的预测地址送到加法器32与增量15相加,其和存入寄存器30。如此循环操作直到减法器38的输出为‘0’;或预测地址19与标签单元10中标签匹配,或预测地址19越过边界比较器16中预设的边界;或指令译码器22译出间接分支指令为止。
如果地址产生器操作过程中得知,访问地址13将会有效,则选择器14在本时钟周期仍选择预测地址19放上总线11送到标签单元10匹配。同时预测地 址19被压入有损栈中存储器46,总线37上的计数被压入有损栈中存储器48的同一行。下一时钟周期,选择器14选择有效的访问地址13放上总线11送到标签单元10匹配。如果不匹配,此后如前所述,扫描器28中选择器34选择总线11上新的访问地址送到加法器32产生基于新的访问地址的预测地址;同时选择器40选择最大预取块数33送到减法器38计数,开始基于新的访问地址的预取。当基于新的访问地址的预取因为上述任何原因终止时,选择器34选择来自有损栈中存储器46的总线31,将栈顶的预测地址送入加法器32与增量15相加;同时选择器40选择来自有损栈中存储器48的总线35,将栈顶的计数值送入减法器38减‘1’;如此恢复被打断的基于老的访问地址的预取。栈的使用使得对处理器核最可能需要的信息的预取(当前有效访问地址13提出访问请求的后续信息的预取)或较可能需要的信息的预取(最近的有效访问地址13提出访问请求的后续信息预取的地址在栈顶或接近栈顶)有优先权。有损栈深度有限,当有损栈填满后继续对其压栈,会使位于其栈底的表项被抛弃。如此可以放弃对处理器核在短时间内较少概率使用的信息(其地址可能在栈底)的预取。
图7中实施例中扫描器28可以根据访问地址产生顺序预测地址,其与图5中各模块是完全等效的,可以将扫描器28应用到图5中以取代图5中地址产生器18,计数器12及边界比较器16。对图7实施例稍做改变可以使其对经总线23传递的分支指令做分支目标预取。
【实施例八】
请参考图8,其为本发明实施例六的存储层次系统的扫描器结构示意图。实施例八可以完成以顺序下块地址为初始预测地址,以及以分支目标地址为初始预测地址的操作。图8中10为缓存器标签单元,20为缓存器存储器,14为选择器,22为指令地址译码器,13为访问地址,19为预测地址,11为经选择器14选择后的地址总线,21为较低存储层次与本层次之间的信息总线。扫描器28包含了由寄存器30,加法器33,选择器34构成的地址产生器;包含了由寄存器36,减法器38,选择器40构成的计数器;包含了地址边界比较器16,还包含了由存储单元40及41构成的有损栈(Loosy Stack)。以上各模块及总线与图7中同样号码的模块相同。与图7中相比增加了本层次与较高存储层次或处理器核之间的信息总线23,扫描器28中也增添了指令译码器50及选择器52以便支 持以分支目标地址为初始预测地址的操作。
实施例中扫描器28产生两种初始预测地址,顺序初始预测地址,或者分支目标初始预测地址。产生初始预测地址后都按在当前预测地址上增加增量的方法产生下一个预测地址(也即按地址顺序下一信息块的地址)。不管访问地址在标签单元10中是否匹配,扫描器28都会以总线11上的访问地址加上增量15的方式产生顺序初始预测地址,并在该顺序初始预测地址上产生后续预测地址,从较低存储层次预取信息存入本层次的存储器20,直到终止条件使扫描器28中地址产生器终止产生预测地址为止。当以顺序地址为预测地址时,图8中指令译码器50控制选择器52选择增量15送到加法器32的输入端,其后的操作过程与实施例七及图7完全一致,在此不再赘述。
只有当总线11上的指令访问地址在标签单元10中匹配,存储器20经总线23输出相应的指令块时,扫描器28才会产生分支目标初始预测地址。此时指令译码器50对总线23上的上述指令块中的指令进行译码,对指令中的直接分支指令计算其分支目标地址。此时指令译码器50控制选择器52选择总线23上该分支指令中的分支偏移量送到加法器32的一个输入端;并且将该分支指令在指令块中的块内地址偏移量经总线54送出,与总线11上的块地址拼合成分支指令的源地址送到加法器32的另一个输入端。加法器32将分支指令的地址(源地址)与分支偏移量相加,输出分支目标地址。该分支目标地址经寄存器30寄存后输出,是为分支目标初始地址19。如此时访问地址13无效,则该分支目标初始地址被选择器14选择,经总线11送往标签单元10匹配。若分支目标初始地址与标签单元10中的标签匹配,则该分支目标指令已在存储器20中,不需基于该分支目标初始地址进行任何预取。因此指令译码器50可以处理下一条直接分支指令。
如果分支目标初始地址与标签单元10中的标签不匹配,则选择器34选择分支目标初始地址19送到加法器32的一个输入端,此时指令译码器50控制选择器52选择增量15送到加法器32的另一个输入端,因此加法器32的输出即分支目标初始地址的顺序下一个指令块的地址。请注意标签单元10的匹配及对存储器20访问只使用块地址,即地址的标签部分以及索引地址,因此预测地址19上的块内地址偏移量对上述匹配与寻址没有影响;但是加法器32计算分支目 标初始地址时需要将分支指令的块内地址偏移量经总线54与总线11上的块地址拼合送到加法器32的输入端,否则产生的分支目标初始地址可能有误差,落在错误的指令块上。此后的操作与实施例七及图7相同,不再赘述。
根据本发明技术方案,还可以将本发明所公开的方法与系统应用到不同结构的存储器层次结构中。某些缓存系统使用缓存器地址直接访问存储器层次,缓存器地址没有存储器地址中的标签,而是已经将标签映射为路号。因此缓存器块地址只有路号及索引地址。扫描器28配合这种缓存系统时可以用缓存器块地址寻址标签单元10,从中读出相应的标签,将该标签与缓存器块地址中的索引地址拼合成存储器块地址经总线11送到扫描器28中供其产生预测地址。其余操作与上述实施例八相同。本发明所公开的方法与系统适用于任何存储器层次结构,特别适合于存储器容量较大的存储器层次,例如处理器中层次最低的存储器层次,最后级缓存(Last Level Cache)。
根据本发明技术方案和构思,还可以有其他任何合适的改动。对于本领域普通技术人员来说,所有这些替换、调整和改进都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种存储层次预取系统,其特征在于,包括:
较低存储层次,用以存储信息并根据收到的访问地址或预测地址向存储器提供信息块;
存储器,用以存储信息并根据收到的访问地址输出当前信息块;
地址产生器,用以对初始地址或预测地址加一增量,持续产生预测地址,并对产生的地址进行筛选,向较低存储层次提供筛选通过的预测地址,获取相应信息填充存储器;当预测地址未通过筛选时,所述地址产生器终止操作。
较高存储层次,用以向存储器提供访问地址,接收存储器输出的当前信息块。
2.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器通过如下产生方法一产生所述初始地址:
产生方法一、所述地址产生器在所述访问地址上加一增量,产生所述初始地址。
3.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器通过如下产生方法二产生所述初始地址:
产生方法二、所述地址产生器解析所述当前信息块,若判断所述当前信息块中包含分支指令,则计算该分支指令的目标地址,产生所述初始地址。
4.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法一对产生的所述预测地址进行筛选:
判断所述地址产生器产生的所述预测地址的相应信息是否已在所述存储器中,若否,则该产生的所述预测地址通过筛选。
5.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法二对产生的所述预测地址进行筛选:
判断所述地址产生器产生的预测地址是否越过预设的地址边界,若否,则该产生的所述预测地址通过筛选。
6.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法三对产生的所述预测地址进行筛选:
判断所述地址产生器根据一个访问地址持续产生的所述预测地址计数是否达到预设的最大值,若否,则该产生的所述预测地址通过筛选。
7.如权利要求1所述的存储层次预取系统,其特征在于,所述地址产生器含有地址筛选器,对所述地址产生器产生的所述预测地址进行筛选,所述地址筛选器利用如下筛选方法四对产生的所述预测地址进行筛选:
判断根据所述地址产生器产生的所述预测地址从较低存储层次获得的信息块中是否含有间接分支指令,若否,则当时被检测的所述预测地址通过筛选。
8.如权利要求1所述的存储层次预取系统,其特征在于,所述预取按所述访问地址访问存储器的时间点安排预取优先权,较晚访问的所述访问地址比较早访问的访问地址优先;对超过一定限度的较早访问放弃预取。
9.一种存储层次预取方法,其特征在于,包括:
步骤A:所述地址产生器根据初始地址持续产生预测地址;
步骤B:所述地址产生器对产生的预测地址进行筛选;
步骤C:通过筛选的预测地址被向较低存储层次发送;
步骤D:较低存储层次输出信息块;
步骤E:所述信息块存入存储器;
步骤F:未通过筛选的预测地址使地址产生器终止操作。
10.如权利要求9所述的存储层次预取方法,其特征在于,所述地址产生器利用如下筛选方法一对产生的所述预测地址进行筛选:
判断所述地址产生器产生的所述预测地址的相应信息是否已在所述存储器中,若否,则该产生的所述预测地址通过筛选。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178436.4A CN106155928A (zh) | 2015-04-13 | 2015-04-13 | 一种存储层次预取系统和方法 |
PCT/CN2016/077853 WO2016155623A1 (zh) | 2015-03-30 | 2016-03-30 | 基于信息推送的信息系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178436.4A CN106155928A (zh) | 2015-04-13 | 2015-04-13 | 一种存储层次预取系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106155928A true CN106155928A (zh) | 2016-11-23 |
Family
ID=58057581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510178436.4A Pending CN106155928A (zh) | 2015-03-30 | 2015-04-13 | 一种存储层次预取系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990405B2 (en) | 2019-02-19 | 2021-04-27 | International Business Machines Corporation | Call/return stack branch target predictor to multiple next sequential instruction addresses |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158925A (zh) * | 2006-10-04 | 2008-04-09 | 国际商业机器公司 | 用于支持跟踪和标准高速缓存行的同时存储的装置和方法 |
CN101464845A (zh) * | 2009-01-09 | 2009-06-24 | 威盛电子股份有限公司 | 用于总线系统的预取装置、预取系统及预取数据方法 |
US20120079202A1 (en) * | 2010-09-28 | 2012-03-29 | Kai Chirca | Multistream prefetch buffer |
CN104050092A (zh) * | 2013-03-15 | 2014-09-17 | 上海芯豪微电子有限公司 | 一种数据缓存系统及方法 |
CN104423929A (zh) * | 2013-08-21 | 2015-03-18 | 华为技术有限公司 | 一种分支预测方法及相关装置 |
US20150089186A1 (en) * | 2013-09-25 | 2015-03-26 | Ho-Seop Kim | Store address prediction for memory disambiguation in a processing device |
-
2015
- 2015-04-13 CN CN201510178436.4A patent/CN106155928A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158925A (zh) * | 2006-10-04 | 2008-04-09 | 国际商业机器公司 | 用于支持跟踪和标准高速缓存行的同时存储的装置和方法 |
CN101464845A (zh) * | 2009-01-09 | 2009-06-24 | 威盛电子股份有限公司 | 用于总线系统的预取装置、预取系统及预取数据方法 |
US20120079202A1 (en) * | 2010-09-28 | 2012-03-29 | Kai Chirca | Multistream prefetch buffer |
CN104050092A (zh) * | 2013-03-15 | 2014-09-17 | 上海芯豪微电子有限公司 | 一种数据缓存系统及方法 |
CN104423929A (zh) * | 2013-08-21 | 2015-03-18 | 华为技术有限公司 | 一种分支预测方法及相关装置 |
US20150089186A1 (en) * | 2013-09-25 | 2015-03-26 | Ho-Seop Kim | Store address prediction for memory disambiguation in a processing device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990405B2 (en) | 2019-02-19 | 2021-04-27 | International Business Machines Corporation | Call/return stack branch target predictor to multiple next sequential instruction addresses |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107621959B (zh) | 电子装置及其软件训练方法、计算系统 | |
TWI451334B (zh) | 微處理器及縮短尋訪時間之方法 | |
CN102792285B (zh) | 用于处理数据的装置和方法 | |
TWI454915B (zh) | 實施具有不同操作模式之多階記憶體階層的設備與方法 | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US8145876B2 (en) | Address translation with multiple translation look aside buffers | |
US20100312955A1 (en) | Memory system and method of managing the same | |
US20120297139A1 (en) | Memory management unit, apparatuses including the same, and method of operating the same | |
US10915459B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
US10255195B2 (en) | Apparatus and method for performing address translation | |
BR112014013606B1 (pt) | Método, dispositivo e sistema para distribuir armazenamentos de dados entre memória volátil e memória não volátil | |
JP3449487B2 (ja) | 変換索引緩衝機構 | |
US20180018095A1 (en) | Method of operating storage device and method of operating data processing system including the device | |
US10324760B2 (en) | Leases for blocks of memory in a multi-level memory | |
CN106227676A (zh) | 一种高速缓存以及从高速缓存中读取数据的方法和装置 | |
US8028118B2 (en) | Using an index value located on a page table to index page attributes | |
US7054999B2 (en) | High speed DRAM cache architecture | |
US20020144078A1 (en) | Address translation | |
JP2006040176A (ja) | キャッシュメモリ装置およびメモリ制御方法 | |
US10817433B2 (en) | Page tables for granular allocation of memory pages | |
CN106155928A (zh) | 一种存储层次预取系统和方法 | |
CN105335296B (zh) | 一种数据处理方法、装置及系统 | |
CN109299021A (zh) | 页迁移方法、装置和中央处理器 | |
KR100417548B1 (ko) | 집적된캐쉬메모리와,디지탈메모리에서메모리소자에데이타를제공하는방법 | |
KR100517765B1 (ko) | 캐시 메모리 및 그 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201203 501, No. 14, Lane 328, Yuqing Road, Pudong New Area, Shanghai Applicant after: SHANGHAI XINHAO MICROELECTRONICS Co.,Ltd. Address before: 200092, B, block 1398, Siping Road, Shanghai, Yangpu District 1202 Applicant before: SHANGHAI XINHAO MICROELECTRONICS Co.,Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161123 |