CN101419543B - 预测高速寄存器的存取位置的方法及系统 - Google Patents

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

Info

Publication number
CN101419543B
CN101419543B CN2007101679166A CN200710167916A CN101419543B CN 101419543 B CN101419543 B CN 101419543B CN 2007101679166 A CN2007101679166 A CN 2007101679166A CN 200710167916 A CN200710167916 A CN 200710167916A CN 101419543 B CN101419543 B CN 101419543B
Authority
CN
China
Prior art keywords
register
positional information
caluclate table
hashed value
access address
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.)
Active
Application number
CN2007101679166A
Other languages
English (en)
Other versions
CN101419543A (zh
Inventor
卢彦儒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN2007101679166A priority Critical patent/CN101419543B/zh
Publication of CN101419543A publication Critical patent/CN101419543A/zh
Application granted granted Critical
Publication of CN101419543B publication Critical patent/CN101419543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种快取系统,包含有一高速寄存器、一预测表以及一散列模块。预测表用于存储至少一存取地址所对应存取该高速寄存器的至少一高速寄存单元的位置信息,而散列模块则根据至少一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置信息。

Description

预测高速寄存器的存取位置的方法及系统
技术领域
本发明涉及一种快取系统,特别涉及一种可根据一存取地址来预测高速寄存器的存取位置的快取系统。
背景技术
美国专利第6,643,739号揭露一现有快取系统100,如图1所示。该现有快取系统100包括有:地址110(包括有:卷标(Tag)111、索引(Index)112以及字符(Word)113等字段)、高速寄存器120、多个比较器130a-130n、缓冲器140a-140n、以及路预测表150。其中,该现有快取系统100的各元件的工作原理请参考美国专利第6,643,739号。然而该现有快取系统100仍存有一些缺点。例如:由于路预测表150是以地址的一部份(如,卷标字段111)作为索引,故卷标字段111内容相同但其它字段内容不同的多个地址在此快取系统中均会对应到路预测表150中的同一个索引,造成一存取地址A通过查询路预测表150所得出的预测的路可能是另一存取地址B先前发生快取命中时所纪录的路(way)的信息。此外,为了加速运算执行的速度,现行的快取系统在接收到处理器所传来的一指令地址时,便根据此指令地址预先存取下一指令可能要求的数据,所以路预测表150中所存储的是下一指令所存取的路的信息,并以目前指令地址的卷标字段作为其索引,在这种情况下,若处理器所传来的指令C可能有两种以上的执行结果,亦即指令C的地址会对应到多个下一指令C′、C″(例如指令C是一分支指令(branch instruction),而执行结果包含有分支发生(branch taken)以及分支不发生(branch nottaken)),该现有快取系统100的路预测表150并无法区分这种可能的情况。故该现有快取系统100的预测准确率不高,使得快取系统的功率消耗无法有效降低。
发明内容
有鉴于此,本发明的目的之一在于提供一种可预测存取位置的快取系统及其预测方法,以解决现有技术所面临的问题,提高预测的准确性、以及降低快取系统的功率消耗。
根据本发明的一实施例,其提供一种快取系统。该快取系统包含有一高速寄存器,包含有多个高速寄存单元;一预测表,耦接于该高速寄存器,用来存储至少一存取地址所对应存取的至少一高速寄存单元的位置信息;以及一散列模块,耦接于该预测表,用来根据至少一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置信息。
根据本发明的另一实施例,其提供一种预测一高速寄存器中的存取位置信息的方法,且该高速寄存器包含有多个高速寄存单元。该方法包含有在一预测表中存储至少一高速寄存单元的位置信息,以及根据一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中得到一目标位置信息,其中,该目标位置信息与该目标存取地址相对应。
附图说明
图1是现有快取系统的示意图。
图2是本发明快取系统的一实施例的示意图。
图3是本发明的快取系统的另一实施例的示意图。
附图符号说明
100、200 快取系统        110、240    地址
111      标签字段        112         索引字段
113      字符字段        120、210    高速寄存器
130      比较器          140         缓冲器
150      路预测表        220         预测表
230      散列模块        232         快取存取历史寄存器
234      散列运算单元    250         比较电路
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的替换策略(replacementpolicy)可为最少使用(Least Recently Used,LRU)算法以及最常使用(MostRecently Used,MRU)算法,由于这些算法是熟知此项技术领域的人士所熟习,故在此省略。本发明并不限定更新预测表220时应采用的算法。
请参考图3,其是图2的快取系统200的一实施例的示意图。在本实施例中,散列模块230依据高速寄存器210的存取历史以及地址240来产生作为索引的散列值,因此,散列模块230包含有一快取存取历史寄存器232,用来存储存取高速寄存器210的一存取历史记录,以及一散列运算单元234,耦接于快取存取历史寄存器232以及预测表220,用来根据地址240以及该存取历史记录形成散列值。
在一实施例中,快取存取历史寄存器232是一移位寄存器(shiftregister)。一较佳实施例中,该移位寄存器的长度与作为索引的部分地址(如卷标字段)的长度相同。作为索引的部分地址的长度并不以上述实施例为限,在其它的实施例中,亦可以地址中的卷标字段的部分或地址中的卷标字段再加上至少一位来加以实施。而该部分地址的长度又是依据预测表220的集合数目而定,举例来说,若预测表220具有64个集合,则地址的卷标字段的长度必须是6个位才足以表示出各个集合,因此快取存取历史寄存器2 32为一个6位的移位寄存器,但不以此为限。在图3中所示的「00」代表该高速寄存器中的第0路,「01」代表该高速寄存器中的第1路,以此类推。
散列运算单元234可以是但不限定于一XOR逻辑运算单元。由于程序结构一般具有规律性与规则性(例如:局部性(locality)),可以预期大多数情况下每次执行一指令时,此时的快取命中历史记录会与上一次执行该指令时的快取命中历史记录相同。即使快取命中历史记录与上一次执行该指令时的快取命中历史记录不同,也可以在预测表220中建立一个新的索引,如此一来,即使两地址具有相同的卷标字段内容,由于其快取命中历史记录有很高的机率是不相同的,经过散列模块230处理后可以形成两个具有区别性的索引来存取预测表220,降低碰撞的情况发生;同理,本实施例亦可降低可能有两种以上执行结果的指令(例如:分支指令(branch instruction))所产生的碰撞,使每下一指令地址所对应的位置信息可分别纪录在预测表220中,不至于彼此互相更新而导致预测准确率下降。
本发明并不限定只能应用于集合关系型高速寄存器。藉由一逻辑运算单元及一移位寄存器来对地址进行处理,本发明可以低成本的方式来达成90%以上的预测正确率,使得快取系统的存取效率提高,进而节省其功率消耗。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (10)

1.一种快取系统,包含有:
一高速寄存器,包含有多个高速寄存单元;
一预测表,耦接于该高速寄存器,用来存储至少一存取地址所对应存取的至少一高速寄存单元的位置信息;以及
一散列模块,耦接于该预测表,用来根据至少一目标存取地址形成对应于该目标存取地址的一散列值,并以该散列值作为索引来自该预测表中存取位置信息,
其中,该散列模块包含有:
一寄存器,耦接于该高速寄存器,用来存储存取该高速寄存器时所产生的一历史记录;以及
一散列运算单元,耦接于该寄存器以及该预测表,用来根据该目标存取地址以及该历史记录形成该散列值。
2.如权利要求1所述的系统,其中,该预测表是以该散列值作为索引来标示该预测表所存储的该至少一高速寄存单元的位置信息。
3.如权利要求1所述的系统,其中,该历史记录包含有至少一快取命中发生时所读取的一高速寄存单元的位置信息。
4.如权利要求1所述的系统,其中,该寄存器是一移位寄存器,用来依序记录每一快取命中发生时所读取的一高速寄存单元的位置信息。
5.如权利要求1所述的系统,其中,该寄存器的大小与该预测表集合的数目有关。
6.一种预测一高速寄存器中的存取位置信息的方法,该高速寄存器包含有多个高速寄存单元,该方法包含有:
在一预测表中存储至少一高速寄存单元的位置信息;
根据一目标存取地址形成对应于该目标存取地址的一散列值;以及
以该散列值作为索引来自该预测表中得到一目标位置信息,其中,该目标位置信息与该目标存取地址相对应,
其中,形成该散列值的步骤包含有:
存储存取该高速寄存器时所产生的一历史记录;以及
根据该目标存取地址以及该历史记录形成该散列值。
7.如权利要求6所述的方法,其中,存储该位置信息的步骤包含有:
当快取命中发生时,存储所读取的该高速寄存单元的位置信息。
8.如权利要求7所述的方法,其中,存储该位置信息的步骤包含有:
当快取失误发生时,存储从另一存储装置所取得的数据存放在该高速寄存器中的一高速寄存单元的位置信息。
9.如权利要求6所述的方法,其中,在将该目标存取地址所对应存取的该高速寄存单元的位置信息存入该预测表时,以该散列值作为索引来标示该位置信息。
10.如权利要求6所述的方法,其中,该历史记录包含有至少一快取命中发生时所读取的一高速寄存单元的位置信息。
CN2007101679166A 2007-10-26 2007-10-26 预测高速寄存器的存取位置的方法及系统 Active CN101419543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101679166A CN101419543B (zh) 2007-10-26 2007-10-26 预测高速寄存器的存取位置的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101679166A CN101419543B (zh) 2007-10-26 2007-10-26 预测高速寄存器的存取位置的方法及系统

Publications (2)

Publication Number Publication Date
CN101419543A CN101419543A (zh) 2009-04-29
CN101419543B true CN101419543B (zh) 2010-12-01

Family

ID=40630338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101679166A Active CN101419543B (zh) 2007-10-26 2007-10-26 预测高速寄存器的存取位置的方法及系统

Country Status (1)

Country Link
CN (1) CN101419543B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction
CN106250064B (zh) 2016-08-19 2020-05-12 深圳大普微电子科技有限公司 固态硬盘控制装置和基于学习的固态硬盘数据存取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860199A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Hashing indexer for branch cache
CN1564989A (zh) * 1999-12-20 2005-01-12 加林克半导体V·N·有限公司 Mac地址高速搜索引擎

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860199A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Hashing indexer for branch cache
CN1564989A (zh) * 1999-12-20 2005-01-12 加林克半导体V·N·有限公司 Mac地址高速搜索引擎

Also Published As

Publication number Publication date
CN101419543A (zh) 2009-04-29

Similar Documents

Publication Publication Date Title
US10019369B2 (en) Apparatuses and methods for pre-fetching and write-back for a segmented cache memory
CN109983536B (zh) 响应标签匹配命令的存储电路
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
TWI382426B (zh) 預測快取記憶體之存取位置的方法及系統
US8499123B1 (en) Multi-stage pipeline for cache access
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
CN101470670A (zh) 具有扇区功能的高速缓冲存储器
CN101826056A (zh) 数据处理设备和方法
CN103914398B (zh) 用以管理具有实体地址空间的存储器使用率的方法及装置
US6950909B2 (en) System and method for reducing contention in a multi-sectored cache
CN103383672A (zh) 高速缓存控制以减少事务回滚
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
US20030149842A1 (en) Method for controling cache system comprising direct-mapped cache and fully-associative buffer
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
CN101419543B (zh) 预测高速寄存器的存取位置的方法及系统
US7865691B2 (en) Virtual address cache and method for sharing data using a unique task identifier
US20210373887A1 (en) Command delay
CN101158926B (zh) 跟踪高速缓存中节省功率的装置和方法
US11048637B2 (en) High-frequency and low-power L1 cache and associated access technique
US20060015689A1 (en) Implementation and management of moveable buffers in cache system
KR20240014431A (ko) 스토리지 장치를 위한 적응형 캐시 인덱싱
CN114691541A (zh) 一种基于动态访问的dram-nvm混合内存预测器
JPH1055309A (ja) 階層キャッシュメモリ装置
GR20170200059U (el) Κυκλωμα αποθηκευσης

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant