预测高速寄存器的存取位置的方法及系统的制作方法

文档序号:6613204阅读:210来源:国知局
专利名称:预测高速寄存器的存取位置的方法及系统的制作方法
技术领域
本发明涉及一种快取系统,特别涉及一种可根据一存取地址来预测高速 寄存器的存取位置的快取系统。
背景技术
美国专利第6, 643,739号揭露一现有快取系统100,如图1所示。该现 有快取系统100包括有地址110(包括有巻标(Tag) 111、索引(Index) 112以及字符(Word) 113等字段)、高速寄存器120、多个比较器130a-130n、 緩沖器"0a-140n、以及路预测表150。其中,该现有快取系统100的各元件 的工作原理请参考美国专利第6, 643, 739号。然而该现有快取系统100仍存 有一些缺点。例如由于路预测表150是以地址的一部份(如,巻标字段lll) 作为索引,故巻标字段lll内容相同但其它字段内容不同的多个地址在此快 取系统中均会对应到路预测表150中的同一个索引,造成一存取地址A通过 查询路预测表150所得出的预测的路可能是另一存取地址B先前发生快取命 中时所纪录的路(way)的信息。此外,为了加速运算执行的速度,现行的快取 系统在接收到处理器所传来的一指令地址时,便根据此指令地址预先存取下 一指令可能要求的数据,所以路预测表150中所存储的是下一指令所存取的 路的信息,并以目前指令地址的巻标字段作为其索引,在这种情况下,若处 理器所传来的指令C可能有两种以上的执行结果,亦即指令C的地址会对应 到多个下一指令C'、 Cff (例如指令C是一分支指令(branch instruction), 而执行结果包含有分支发生(branch taken)以及分支不发生(branch not taken )),该现有快取系统100的路预测表150并无法区分这种可能的情况。 故该现有快取系统100的预测准确率不高,使得快取系统的功率消耗无法有 效降低。

发明内容
有鉴于此,本发明的目的之一在于提供一种可预测存取位置的快取系统及其预测方法,以解决现有技术所面临的问题,提高预测的准确性、以及降 低快取系统的功率消耗。
根据本发明的一实施例,其提供一种快取系统。该快取系统包含有一高
速寄存器,包含有多个高速寄存单元; 一预测表,耦接于该高速寄存器,用 来存储至少一存取地址所对应存取的至少一高速寄存单元的位置信息;以及 一散列模块,耦接于该预测表,用来根据至少一目标存取地址形成对应于该 目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置
^吕息。
根据本发明的另 一实施例,其提供一种预测一高速寄存器中的存取位置 信息的方法,且该高速寄存器包含有多个高速寄存单元。该方法包含有在一 预测表中存储至少一高速寄存单元的位置信息,以及根据一目标存取地址形 成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表 中得到一目标位置信息,其中,该目标位置信息与该目标存取地址相对应。


图l是现有快取系统的示意图。
图2是本发明快取系统的一实施例的示意图。
图3是本发明的快取系统的另一实施例的示意图。
附图符号说明
100、200快取系统110、 240地址
111标签字段112索引字賴二
113字符字段120、 210高速寄存器
130比较器140緩沖器
150路预测表220预测表
230散列模块232快取存取历史寄存器
234散列运算单元250比4交电^各
260输出电路270使能信号。
具体实施例方式
为了降低预测时所使用的一索引可能对应到多个不同存取地址的碰撞
(collision)情况产生,本发明才艮据至少一存取地址以形成对应于该存耳又地址的一散列值,并以该散列值作为索引来自 一预测表中存取高速寄存器的位 置信息。
图2是本发明的快取系统200的一实施例的示意图。快取系统200包含 有一高速寄存器210、 一预测表220、 一散列模块230、 一地址240、 一比较 电路250以及一输出电路260。在一实施例中,高速寄存器210是一集合关 系型高速寄存器(set associative cache),包含有多个内存集合(例如是
2、 3..... n路内存单元)。该内存单元可由SRAM内存来实施。当快取系统
200接收到一地址240时,散列才莫块230便对部分的地址240 (例如地址的巻 标字段)进行散列运算以形成对应于地址240的一散列值,并以该散列值作 为索引来读取预测表220,并根据预测表220中与该散列值相同处所指示的 位置信息来产生一使能(enabling)信号270以开启该位置信息所指示的高 速寄存器210中的特定一路,再由对应于该路的一比较电路250判断该路中 是否存储有地址240所需的数据。若有,则输出该路中所存储的数据;若无, 则再将其它几路(在图2中是3路)予以开启并与地址240进行巻标的比较, 若其它几路的比对结果皆为不符合,则代表快取失误(cache miss),此时, 必须藉由存取其它内存来获得所需要的数据。当然亦可将高速寄存器210的 所有路都开启,但以使能信号270控制高速寄存器210的输出电路260 (例 如多路复用器、选择器、緩冲器)来仅输出该位置信息所指示的特定一路 的数据。
请注意,在建立预测表220时同样需先对部分的地址,例如地址的巻标 字段进行散列运算,再以得出的散列值作为索引在预测表220中存储高速寄 存单元的位置信息。在一实施例中,预测表220存储在一多端口 ( multi-port ) 内存,此预测表220可同时进行读取(Read)及写入(Write)的操作;在另 一实施例中,预测表220存储在一单端口 (single-port )内存,当快取失误 发生而从另一存储装置来取得所需的数据并存放在高速寄存器210时,对预 测表220进行更新。 一实施例中,预测表220的替换策略(replacement policy )可为最少使用(Least Recently Used, LRU)算法以及最常使用(Most Recently Used, MRU)算法,由于这些算法是熟知此项技术领域的人士所熟 习,故在此省略。本发明并不限定更新预测表220时应采用的算法。
请参考图3,其是图2的快取系统200的一实施例的示意图。在本实施 例中,散列模块230依据高速寄存器210的存取历史以及地址240来产生作为索引的散列值,因此,散列模块230包含有一快取存取历史寄存器232, 用来存储存取高速寄存器210的一存取历史记录,以及一散列运算单元234, 耦接于快取存取历史寄存器232以及预测表220,用来根据地址240以及该 存取历史记录形成散列值。
在一实施例中,快取存取历史寄存器232是一移位寄存器(shift r eg i s t er )。 一较佳实施例中,该移位寄存器的长度与作为索引的部分地址(如
在其它的实施例中,亦可以地址中的巻标字段的部分或地址中的巻标字段再 加上至少一位来加以实施。而该部分地址的长度又是依据预测表220的集合 数目而定,举例来说,若预测表220具有64个集合,则地址的巻标字段的长 度必须是6个位才足以表示出各个集合,因此快取存取历史寄存器232为一 个6位的移位寄存器,但不以此为限。在图3中所示的「00」代表该高速寄 存器中的第O路,「01」代表该高速寄存器中的第l路,以此类推。
散列运算单元234可以是但不限定于一 XOR逻辑运算单元。由于程序结 构一般具有规律性与规则性(例如局部性(locality)),可以预期大多数 情况下每次执行一指令时,此时的快取命中历史记录会与上一次执行该指令 时的快取命中历史记录相同。即使快取命中历史记录与上一次执行该指令时 的快取命中历史记录不同,也可以在预测表220中建立一个新的索引,如此 一来,即使两地址具有相同的巻标字段内容,由于其快取命中历史记录有很 高的机率是不相同的,经过散列模块2 30处理后可以形成两个具有区别性的 索引来存取预测表220,降低碰撞的情况发生;同理,本实施例亦可降低可 能有两种以上执行结果的指令(例如:分支指令(branch instruction))所 产生的碰撞,使每下一指令地址所对应的位置信息可分别纪录在预测表220 中,不至于彼此互相更新而导致预测准确率下降。
本发明并不限定只能应用于集合关系型高速寄存器。藉由 一逻辑运算单 元及一移位寄存器来对地址进行处理,本发明可以低成本的方式来达成90% 以上的预测正确率,使得快取系统的存取效率提高,进而节省其功率消耗。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均 等变化与》务饰,皆应属本发明的涵盖范围。
权利要求
1. 一种快取系统,包含有一高速寄存器,包含有多个高速寄存单元;一预测表,耦接于该高速寄存器,用来存储至少一存取地址所对应存取的至少一高速寄存单元的位置信息;以及一散列模块,耦接于该预测表,用来根据至少一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置信息。
2. 如权利要求1所述的系统,其中,该预测表是以该散列值作为索引来 标示其所存储的该至少一高速寄存单元的位置信息。
3. 如权利要求1所述的系统,其中,该散列模块包含有一寄存器,耦接于该高速寄存器,用来存储存取该高速寄存器时所产生 的一历史记录;以及一散列运算单元,耦接于该寄存器以及该预测表,用来根据该目标存取 i也址以及该历史记录形成该散列值。
4. 如权利要求3所述的系统,其中,该历史记录包含有至少一快取命中 发生时所读取的 一 高速寄存单元的位置信息。
5. 如权利要求3所述的系统,其中,该寄存器是一移位寄存器,用来依 序记录每一快取命中发生时所读取的一高速寄存单元的位置信息。
6. 如权利要求3所述的系统,其中,该寄存器的大小与该预测表集合的 数目有关。
7. —种预测一高速寄存器中的存取位置信息的方法,该高速寄存器包含 有多个高速寄存单元,该方法包含有在 一预测表中存储至少 一 高速寄存单元的位置信息; 根据一 目标存取地址形成对应于该目标存取地址的一散列值;以及 以该散列值作为索引来自该预测表中得到一目标位置信息,其中,该目 标位置信息与该目标存取地址相对应。
8. 如权利要求7所述的方法,其中,存储该位置信息D 步骤包含有 当快取命中发生时,存储所读取的该高速寄存单元的位置信息。
9. 如权利要求8所述的方法,其中,存储该位置信息的步骤包含有当快取失误发生时,存储从另 一存储装置所取得的数据存放在该高速寄 存器中的一高速寄存单元的位置信息。
10. 如权利要求7所述的方法,其中,在将该目标存取地址所对应存取的 该高速寄存单元的位置信息存入该预测表时,以该散列值作为索引来标示该 位置信息。
11. 如权利要求7所述的方法,其中,形成该散列值的步骤包含有 存储存取该高速寄存器时所产生的一历史记录;以及根据该目标存取地址以及该历史记录形成该散列值。
12. 如权利要求11所述的方法,其中,该历史记录包含有至少一快取命 中发生时所读取的一高速寄存单元的位置信息。
全文摘要
本发明提供一种快取系统,包含有一高速寄存器、一预测表以及一散列模块。预测表用于存储至少一存取地址所对应存取该高速寄存器的至少一高速寄存单元的位置信息,而散列模块则根据至少一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置信息。
文档编号G06F12/08GK101419543SQ20071016791
公开日2009年4月29日 申请日期2007年10月26日 优先权日2007年10月26日
发明者卢彦儒 申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1