CN1514372A - 低功率高速缓存及其快速存取资料的方法 - Google Patents
低功率高速缓存及其快速存取资料的方法 Download PDFInfo
- Publication number
- CN1514372A CN1514372A CNA2003101148510A CN200310114851A CN1514372A CN 1514372 A CN1514372 A CN 1514372A CN A2003101148510 A CNA2003101148510 A CN A2003101148510A CN 200310114851 A CN200310114851 A CN 200310114851A CN 1514372 A CN1514372 A CN 1514372A
- Authority
- CN
- China
- Prior art keywords
- cache
- output
- blocks
- outputs
- block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000012545 processing Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims 2
- 230000009471 action Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一高速缓存由利用直接映像(direct-mapped)的快速存取并可独立选择的复数个快取区块所组成,且每一区块能够储存复数个高速缓存线(cache lines)并具有复数个输出。此外,高速缓存还包含复数个与每个快取区块相关联的比较逻辑单元,且每个比较逻辑单元具有复数个输入,用以接收相关联快取区块的复数个输出,并将接收到的相关联快取区块的复数个输出与输入至此高速缓存的地址总线中的一值加以比较。最后,此高速缓存包含输出逻辑单元,此输出逻辑单元从与每个快取区块相关联的比较逻辑单元的输出中选择其一做为整个高速缓存的最后输出。
Description
技术领域
本发明有关于一种高速缓冲存储器;特别是关于一种低功率高速缓存及一种快速存取资料方法。
背景技术
计算机系统(或其它以处理器为主的系统)创新的驱动力之一,来自于对更快速且更强大的数据处理能力的需求。长久以来,影响计算机速度的主要瓶颈之一在于从内存中存取资料的速度,即所谓的内存存取时间(memory access time)。微处理器由于拥有相对较快速的处理器周期时间(processor cycle time),故经常于内存存取时,因需利用等待状态(wait state)以克服其相对较慢的内存存取时间而造成延迟。因此,改进内存存取时间已成为增进计算机效能的主要研究领域之一。
为弥补快速处理器周期时间与低速内存存取时间的差距,于是产生了高速缓存。高速缓存为一非常快速且相当昂贵的小容量零等待状态(zero wait state)内存,用以储存经常由主存储器中存取的资料及程序代码的复本。处理器能够通过操作此种非常快速的内存,减少内存在存取时必需增加的等待状态次数。当处理器从内存中寻找资料并且该资料存在于高速缓存中,则称一快速存取读取命中(read hit),并且由此内存存取的资料能由高速缓存提供给处理器而不出现等待状态。若该数据不存在于高速缓存中,则称快速存取读取误失(read miss)。在快速存取读取误失时,内存进而向系统找寻资料,且该资料可由主存储器中取得,就如同高速缓存不存在时所做的动作一般。在快速存取读取误失时,由主存储器取得的资料将提供给处理器,并由于此资料在统计上有可能再一次被处理器利用到,所以此数据亦同时存入高速缓存中。
一有效率的高速缓存导致一较高的存取“命中率”(hit rate),其定义为发生在所有的内存存取时高速缓存存取命中的百分比。当一高速缓存具有较高的存取命中率时,则大部分的记忆存取以零等待状态来完成。一较高的高速缓存存取命中率的净效应为:较少发生的内存存取误失的等待状态被大量具零等待状态的内存命中存取所平均,导致每次存取平均近乎为零等待状态。虽然处理器中的高速缓存最广为所知,但其它的高速缓存也为人所知及应用,例如:输入/输出(I/O)高速缓存被用来做为一系统总线及输入/输出总线间资料的缓冲及快速存取。
不管其为一处理器高速缓存、输入/输出高速缓存、或为它种高速缓存,在高速缓存中效能考量的重点在于其组织及管理方式。高速缓存基本上以一直接映像式内存结构、一集合关连式(set-associative)内存结构、或一完全关连式(full-associative)内存结构来组成。
一直接映像式高速缓存提供最简单且最快速的高速缓存,但却因每一笔数据只能占据一特定位置,而严格限制其高速缓存位置数目。当两笔或多笔经常使用的数据在一直接映像式高速缓存中映像至相同位置,并且这些资料被一程序以循环方式循环地使用,则发生高速缓存振荡(cache thrashing)。以高速缓存的术语来说,振荡(thrashing)发生于当高速缓存花费过多的时间在交换包含所参考到资料的高速缓存线(cache lines),以响应中央处理器所对内存参照的要求。特别地,当每一笔资料被参考到时,它取代前者并造成一相当慢的主存储器存取。高速缓存振荡由于迫使过多的主存储器存取而严重地减低程序执行速度。
一集合关系型内存结构利用一地址中的一部分来存取一资料区块集合。该地址的其它一部分则被用来比较这资料区块集合中每一区块的标签(tag)。假如在此资料区块集合中,其中之一区块的标签与该地址部分吻合,则吻合的区块资料将被用做后续的数据处理。与集合关系型结构不同,在一完全关系型内存结构中,其内存结构等效上具有一大量区块的单一集合,且资料能被写入及读出该单一集合中的任何区块。
在此三种高速缓存结构中,直接映像式高速缓存结构是最易于实作,并被认为是最快速的存取方式。然而,集合关系型高速缓存是较复杂,因此实作上也较为昂贵。当高速缓存的容量增加,其结构亦变得愈加复杂且昂贵,尤其是完全关系型高速缓存。另外,集合关系型高速缓存的命中率仅略少于完全关系型高速缓存;因此,具较低复杂性及较快存取速度的集合关系型高速缓存(相对于完全关系型高速缓存而言),特别在高速缓存容量增加后,成为另一种更理想的选择方式。
如上述的介绍,图1所示为一现有技术的16路(16-way)集合关系型高速缓存的方块图。在高速缓存10内部具有复数个快取区块12、14、16及18。快取区块的数目可随着系统的不同而改变,但区块数目的安排基本上是为了较快速的操作及较低的复杂性。因此,一具有四个4仟(此处1仟为210)字节(kilobytes)区块的高速缓存要比一具有单一个16仟字节区块的高速缓存要来得快速。尽管详细的实作方式随高速缓存的不同而改变,但对快取区块12、14、16及18的一般结构及操作方法却为现有技术的,因此并不在此赘述。基本上每一快取区块包含一资料区域、一标签区域及控制逻辑。举例来说,假设在图1中,每个快取区块包含32条数据线(高速缓存线),每一数据线储存8个字符(一个字符包含4个8位的字节)。另外,假设每一快取区块具有4组此种资料区域的集合,则每一区块包含4仟字节数据。
如上所述,一高速缓存为一高速的内存,能加快主存储器的存取速度,特别是当具有良好设计使其具有较高的“命中”率。在图1中,一地址总线20输入至此高速缓存。如对应至地址总线20上所输入值的有效资料(valid data)被储存在该高速缓存中,则该笔数据输出至高速缓存的输出38。地址总线20耦合至每个快取区块,并且该地址总线的最低有效位(least significant bits)被用来存取储存于该区块资料区中对应该最低有效位群的资料。当资料写入一快取区块的资料区中,该地址总线的最高有效位群(most significant bits)被写入该快取区块的标签区中的相对位置(即一对应于最低有效位群所指示用以取出及储入资料的位置)。
如所知,一高速缓存控制器(未于图标)控制在不同的快取区块12、14、16及18中资料的读取及储存的演算方法。有许多不同已现有技术的演算方法可用来完成此种控制且其已被相关人士所了解,因此不在此赘述。当一地址值被置于地址总线20用来作为资料的读取时,此地址总线20的最低有效位群被用来读取在每一快取区块中相对应的数据位置。
如图1所示,每一快取区块具有4个内部资料区;因此,每一快取区块产生4个输出。如图中快取区块12,其4个输出分别以数字22、24、26及28表示。资料区中对应最低有效位群所指示位置的资料将被置于快取区块12的输出端之一。因为快取区块12包含4个内部资料区;因此,将有4个资料值(每一个值由每一资料区中所读取)输出于快取区块12的输出端上。相同地,储存于对应的标签内存区的标签值(对应于低最有效位群)也同样地置于快取区块12的每一输出上。为此,稍早当资料被写入资料区中,地址总线的最高有效位群被写入对应的标签区位置。
此外,一个或多个状态位(status bits)亦输出于输出22、24、26及28。故考虑一状态位用来显示由某一特别位置所取得的数据是否有效,因此,对任何希望由内存中读取资料的指令,每一快取区块12、14、16及18输出4个不同的值。一逻辑区块35则完成这16个输出中每个标签部分与存在地址总线20中的最高有效位间之一16路(16-way)的比较。假如发现吻合的目并且此笔资料的状态位显示此资料有效(valid),则高速缓存10输出此笔数据于其输出38。众所周知,一个或多个状态位也同此资料输出。然而,如无“命中”(“命中”意即地址总线20中的最高有效位与有效的区块输出之一的标签部分吻合),则该待寻的资料便必须由系统或主存储器中撷取。
在操作过程中,高速缓存10中不同的电路及逻辑单元均以常态来操作。众所周知,以电池操作的处理器驱动的可携式电子装置(如掌上型计算机、无线电话、MP3播放器等)不断的被广泛应用,因此,如何降低这些装置的耗能以延长电池的使用时间亦成为所需。当高速缓存容量扩大,需要操作的功率亦随之增加;因此,如何改良高速缓存的结构及操作方法以达到降低其操作功率为今重要课题。
发明内容
本发明的明确目的、优点及创新特征将在以下做部分的说明,而其余部分对于了解此技术领域的人将经由以下说明的审视而愈加明显或由本发明的实施而得知。通过操作与所述的申请专利范围中的揭露,亦能对本发明的目的及优点有所了解。
鉴于上述发明背景中,传统的高速缓存所产生的诸多缺点,本发明的主要目的在于提供一种新的高速缓存结构及其存取资料的方法,以降低其操作时的耗能程度。
在一实施例中,一高速缓存包含复数个可利用直接映像式快取存取来独立选择的快取区块,且每一快取区块能够储存复数个高速缓存线(cache lines)并具有复数个输出。此高速缓存更进一步包含与每一快取区块相关联的比较逻辑单元,且每一比较逻辑单元具有复数个输入,用来接收来自与其相关联快取区块的复数个输出,并将接收到的相关联快取区块的复数个输出与输入此高速缓存的地址总线的一值相比较。最后,此高速缓存包含一输出逻辑单元,用来输出所选择快取区块相关联的比较逻辑单元的输出。
本发明的另一实施例在于提供一快速存取资料的方法。本方法将一输入至此高速缓存的地址直接映像至复数个快取区块之一,其中每一快取区块具有n个输出,并且本方法将此直接映像高速缓存的n个输出当做n路集合关联(n-way set associative)式高速缓存来处理。
附图说明
图1为一现有技术的16路完全关系型高速缓存的方块图;
图2为根据本发明一实施例的高速缓存结构方块图;
图3为根据本发明一实施例的32位地址的位位置方块图;
图4为根据本发明一实施例的高速缓存结构方块图;及
图5为根据本发明一实施例的高速缓存最上层功能操作的流程图。
图中符号说明:
10 高速缓存
12 快取区块1
14 快取区块2
16 快取区块3
18 快取区块4
20 地址总线
22 快取区块的输出
24 快取区块的输出
26 快取区块的输出
28 快取区块的输出
35 16路比较逻辑单元
38 高速缓存的输出
100 高速缓存
110 译码器
112 快取区块1
114 快取区块2
116 快取区块3
118 快取区块4
122A 快取区块1的输出
122B 快取区块2的输出
122C 快取区块3的输出
122D 快取区块4的输出
124A 快取区块1的输出
124B 快取区块2的输出
124C 快取区块3的输出
124D 快取区块4的输出
126A 快取区块1的输出
126B 快取区块2的输出
126C 快取区块3的输出
126D 快取区块4的输出
128A 快取区块1的输出
128B 快取区块2的输出
128C 快取区块3的输出
128D 快取区块4的输出
132A 4路比较逻辑单元
132B 4路比较逻辑单元
132C 4路比较逻辑单元
132D 4路比较逻辑单元
140 地址总线
142A 4路比较逻辑单元的输出
142B 4路比较逻辑单元的输出
142C 4路比较逻辑单元的输出
142D 4路比较逻辑单元的输出
150 多路复用器
152 高速缓存100的输出
200 高速缓存
222 快取区块的输出
224 快取区块的输出
226 快取区块的输出
228 快取区块的输出
232 4路比较逻辑单元
252 高速缓存200的输出
具体实施方式
上述已将本发明的内容作一简要说明,以下将伴随附图对本发明作更进一步的详细说明。本发明所沿用的现有技术,在此仅作重点式的引用,以助本发明的阐述。而且下述内文中对本发明的相关附图及其说明并不应受限于本实施例,反而其意图在涵盖有关本发明精神及在附属申请专利范围中所定义的发明范围所有可替代、修正的及类似的案件。
如图2所示,其为一依照本发明之一实施例所建构的高速缓存100的内部结构方块图。在描述此图的详细结构或其它实施例之前,须强调的是,此处所提供的图并不应限制本发明的范围及精神所在。实际上,在图2及图4中的实施例说明是选择用来和图1的现有技术做比较;因此,图2及图4中实施例的快取区块容量及数目与图1中相同。然而拜现有技术所赐,本发明并不局限所使用的快取区块于特定的容量及数目。实际上,本发明的观念是准备应用于具有各种不同容量及数目的快取区块。此外,在图2及图4中所示的不同逻辑区块的内部结构及操作方式(意即快取区块及比较逻辑单元的内部结构)是现有技术,毋须再对其做多余的验证;因此,这些组件的内部结构及操作方式毋须在此赘述。
在图2中,一高速缓存100具有复数个快取区块(在本图中有4个区块)112、114、116及118。这些快取区块的结构及操作方式与图1中所述的快取区块相似。然而,在图1与图2中,其显著的差别在于本发明的快取区块112、114、116及118的操作方式可被控制在一动作中(active)、正常功率(normal-power)的操作模式或在一闲置中(inactive)、低功率(low-power)的操作模式。在本发明的较佳实施例中,此复数个快取区块是被同步控制的,以致于在任何特定时间内,快取区块112、114、116及118中只有一个是以动作中、正常功率的操作模式来操作,然而其余未被选择的快取区块则是处于闲置中、低功率的操作模式。
许多电子装置其电路是设计在低功率或“睡眠”操作模式下来操作,其电路系统汲取相当少的能量,如互补金属氧化物半导体(CMOS)是特别适合于此种应用。这种已知的电路系统或技术可应用于快取区块112、114、116及118。因为此种在低功率模式来操作的电路系统设计为已知,故毋须对已现有技术此技艺的人赘述如何实现在高速缓存100中快取区块的技术。
在所示的实施例中,快取区块的选择是经由一译码器110来控制。在图2中,一个具有4个输出的译码器110与4个快取区块一起使用。译码器110的输出是电性耦合至每一快取区块112、114、116及118的输入(意即经由一选择控制线)。众所周知,此译码器110具有2个逻辑输入位并且这些逻辑输入位的总值决定其输出为何。举例来说,若其输入位为″00″,则其输出连接至快取区块112的选择输入会被确立(asserted),而译码器110的其余三个输出则不会被确立(de-asserted);若其输入位为″01″,则其输出连接至快取区块114的选择输入会被确立;相同地,若其输入位为″10″,则其输出连接至快取区块116的选择输入会被确立;最后,若其输入位为″11″,则其输出连接至快取区块118的选择输入会被确立。
在图2中的一个应用,将地址总线140的2个信号线输入至译码器110,因此,译码器110的结构是在一特定时间内用来快速地选择快取区块112、114、116及118其中之一使其工作于正常功率模式下,而其余三个快取区块则是在闲置、低功率模式下来操作。因为快取区块包含了高速缓存100内大部分的逻辑闸(因其中所含的内存储存区),故令4个逻辑区块的其中3个总是在低功率模式下来操作,能实际地节省整个内存的能量。事实上,在本实施例中,高速缓存100操作时所消耗的能量约为未利用本发明来完成的高速缓存所消耗能量的25%。在许多应用中,如可携式电子装置及其它以电池来供能的电子装置,此种能量上的节约消耗可使电池的使用时间显著的延长。
至于在地址总线140上所加载的值,其地址可能为一实际的地址(physical address)或映像至一实际地址的虚拟地址(virtual address),其映像可由本附图以外部分的组件来完成,且任何此种映像不会影响本发明的范围及内容。就此点来说,本处所示附图及描述的发明,不论使用实际的或虚拟的地址均可达到相同的效果。
参考图2,每一快取区块112、114、116及118是由4个内部资料区所组成(资料区未于图中特别明示);因此,4个输出122、124、126及128连接至比较逻辑单元132。每个输出可由相关联的快取区块传递其资料(data)、标签(tag)及状态(status)至相关联的比较逻辑单元。在图2中,输出以单线来表示,但亦可能由多个讯号线组成连接路径。再者,在一较佳的实施例中,每一输出将包含资料、标签及状态的信息。然而,和本发明范围及精神一致的另一实施例中,(最初)可能只传送标签及状态信息到比较逻辑单元132。如果根据比较标签及状态信息可探知其为一“命中”情况,则资料位可随后由快取区块中读取出来。
不同于图1的比较逻辑单元所执行的16路(16-way)比较,本发明的每一比较逻辑单元132A、132B、132C及132D只需做一4路(4-way)的比较。此种用来完成4路(4-way)比较的逻辑,显然要比16路(16-way)的比较来的简化许多。然而,类似于图1所示的实施例及现有技术的技艺,本发明的地址总线140的最高有效位群(MSBs)被电性耦合至每一比较逻辑单元132,这些在地址总线140上的最高有效位群(MSBs)被用来和对应的快取区块的每一输出中的地址标签作比较。如图2所示,快取区块112对应于(或关联于)比较逻辑单元132A;相同地,快取区块114对应于(或关联于)比较逻辑单元132B;快取区块116及118则分别对应至比较逻辑单元132C及132D。
在实施例中,比较逻辑单元132A-132D也被设计成可以低功率模式下来操作。与其它所有未被选择的快取区块相关联的比较逻辑单元,亦可以闲置、低功率模式下来操作以达到节省能量的目的。
每一比较逻辑单元132A-132D分别具有输出142A、142B、142C及142D,且每一输出耦合至一可将其输出数据传递至高速缓存100的输出152上的逻辑单元。在图2所示的实施例中,这种逻辑单元是经由一多路复用器(multiplexor)150所组成。在此组成中,输入至译码器110地址总线140的2个相同位可被做为多路复用器的选择线,因此,可将与译码器110所选择的快取区块相关联的比较逻辑单元132的输出142上的数据传递至输出152。因此,当这2个地址位经由译码器110来控制以选择快取区块112使其在正常功率模式下来操作。这些相同的地址位亦控制多路复用器150,并将比较逻辑单元132A的输出142A上的数据传递至高速缓存100的输出152。在图2所示的实施例中,高速缓存100包含4个快取区块112、114、116及118。每一快取区块包含4组各具1仟字节的数据区(总计16仟字节);因此,可利用地址位中的第10及11位来做为控制译码器110及多路复用器150的选择控制位。
本发明的概念是准备扩充至其它的高速缓存结构。举例来说,一具有8个快取区块的高速缓存结构可利用本发明来完成。在此实施例中,三个地址位可被译码器110及多路复用器150用来选择所需的快取区块;同样地,具有不同容量或不同数目的内部资料组合(如8路关系型)可用相同的方法来完成。
如图3所示,用来说明在图2中高速缓存的地址位位置的较佳结构。一32位的地址结构可定义成ADDR[31:0],其中ADDR[31]表示最高有效位及ADDR[0]表示最低有效位。因此,两个最低有效地址位(ADDR[1:0])可定义成在一给定的高速缓存线的中的字节(byte)选择位。同样地,地址位ADDR[4:2]可定义成在一特定的高速缓存线的中的字符(word)选择位。依序地,ADDR[9:5]可用来标明在数据储存区中的高速缓存线。如前所述,对于图2中快取架构中的快取区块的内部资料区较佳的布局,包含8个字符高速缓存线;因此,在一特定的高速缓存线中,需要3个位做为字符的辨认;同样地,每一具有32个高速缓存线的资料区需要5个位(即ADDR[9:5])做为辨认或选择某一特定高速缓存线。因此,地址位ADDR[9:0]可做为在每一快取区块112、114、116及118的数据区中指定用来辨认任意的字节。此外,地址位ADDR[11:10]提供译码器110及多路复用器150的输入以控制相关的快取区块的选择/驱动(activation)以及其相关联的比较逻辑单元的输出选择。最后,地址位ADDR[31:12]形成地址总线140的最高有效位以输入至每一比较逻辑单元132A-132D与来自快取区块112、114、116及118的输出中的标签相比较。
由前述所知,高速缓存100内嵌入一混成(hybrid)架构,其同时结合直接映像式及集合关系型快取处理观念。一译码器110和快取区块112、114、116及118共组成一高速缓存的直接映像部分,并通过地址总线140的第10及11地址位定义一输入地址映像至指定的快取区块。在高速缓存100中的电路系统,系将所选择的快取区块置于一动作中、正常功率模式下来操作,而同时将其余三个快取区块置于闲置中、低功率模式下来操作。因此,与被选择的快取区块相关联的比较逻辑单元132,则以集合关联的方式来操作。被选择到的快取区块输出复数个资料值及相关的标签,此标签被相关联的比较逻辑单元132用来与地址总线140(以及一资料有效状态位或来自快取区块输出的指示信号)的最高有效位群相比较,以决定是否一高速缓存“命中”发生。然后相关联的比较逻辑单元132的输出经由多路复用器150接连到高速缓存100的输出152。
高速缓存100的结构反映出设计上相当程度的择优(trade off)考量。于本发明中,由于将4个快取区块112、114、116及118中的3个停止其操作来达到快速及省能的目的,将导致命中率与其它方法相比,例如将全数的快取区块均保持操作状态下时,会有稍许的减少。意即在图1的结构中高速缓存要比图2的结构具些微较高的命中率。然而,图2的结构却比图1的结构在能量消耗上有显著的减少;因此,对于许多在耗能需极小的应用上,如靠电池来操作的装置或可携式电子装置,此种结构成为所需。此外,在图2的高速缓存结构中,因命中率稍许的降低而牺牲其些许的效能,实际上经常为电子装置的使用者所忽略,但却能因为其能量消耗显著的降低使电池的使用时间延长而明显地受益。
如上所述,本发明并未受限于图2的结构,举例来说,只要符合本发明的范围及精神,即使不同的快取区块容量,不同的快取区块数目和不同的关联程度,均可运用显而易知的方式对其做修改,即可应用本发明。现有技术技术者也可以做出其它符合本发明的范围及精神的改良。参考图4所示,其为一在容量及结构(就关于快取区块而言)类似于图2的高速缓存的方块图并说明了本发明的另一实施例。在图4中,相同的标号应用于类似的组件中。因此,在图2中已描述过的组件结构及操作方式将不在此赘述,以下将只专注于讨论其间的差异。
明显地,图4及图2实施例间的主要差异在于高速缓存的输出部分。在图2中,比较逻辑单元132A、132B、132C及132D与每一个快取区块相关联。每一快取区块的输出直接连接至相关联的比较逻辑单元来做比较,并且比较逻辑单元132的输出经由一多路复用器150连接至输出152。然而,在任何特定时间,4个比较逻辑单元132A-132D中的3个将会控制在不操作的功能,如其相关联的快取区块一样,会被控制于闲置、低功率的模式下来操作。此外,与本发明的范围及精神一致的另一实施例,则可由只具单一比较逻辑单元232来完成。如图4所示,一特定快取区块的输出222、224、226及228可电性地连接至其余的快取区块的对应输出上,并且每一输出可输入至比较逻辑单元232。决定于被选择用来完成各种不同快取区块的低功率模式的操作方式,下拉式(pull-down)电阻可连接至每一输出222、224、226及228。然而,若对于各种不同的快取区块的低功率操作模式仅导致其输出浮置(floating),即高阻抗或三态(tri-state),则其唯一的动作快取区块的输出将足以驱动其信号路径222、224、226及228,而无需额外的下拉式或上拉式(pull-up)电阻。图4的结构在任何特定时间,只有一快取区块在动作模式下来操作,因此允许其输出在电性上彼此连接,因而减少比较逻辑单元的数目。
比较逻辑单元232比较在每一信号路径222、224、226及228上的标签(及有效状态)值及地址总线140的最高有效位群。假如对于一有效标签发生吻合情形,则比较逻辑单元232显示一命中并且将对应的数据置于高速缓存的输出252上。
图5为根据本发明一实施例的高速缓存最上层功能操作方法的流程图。依照此实施例,此高速缓存收到一向高速缓存进行存取资料的要求(其中包含一地址,意即一资料读取指令)(步骤302),则地址的一部分直接映像来选择快取区块其中之一,每一快取区块储存相关联的资料集合(步骤304)。此直接映像的(被选择到的)快取区块能够在一动作、正常功率模式下操作。然而,其余未被选择到的快取区块则被置于一闲置、低功率的操作模式(步骤306)。如上所述,被选择到的快取区块处理输入至其本身的地址位,并且输出对应至其输入地址的每一内部资料组所对应的资料、标签及状态信息。假设在此快取区块中,有n(n为一整数)组资料,则此快取区块输出n组对应的资料、标签及状态信息于n个输出上。
随后此方法将此直接映像的快取区块的n个输出当做一n路集合关系型高速存取的功能(步骤308)来处理。换句话说,此高速缓存会比较选择到的快取区块的每一有效输出的标签值,以决定这些标签与输入至此高速缓存的地址的一部分(意即,最高有效位群)是否相吻合(步骤310)。若是吻合时,则一高速缓存“命中”确实发生,则来自此命中标签的数据组所对应的数据由此高速缓存来输出(步骤312)。然而,若无命中发生,则所搜寻地址的资料转由主存储器中来提取(步骤314)。
以上所述仅为本发明的具体实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。
Claims (24)
1.一种高速缓存,其至少包含:
复数个快取区块,每一该快取区块包含复数个具有多路关联性的数据线,且该快取区块更包含复数个输出;
一第一逻辑单元,在一特定时间内用作选择所欲操作的该复数个快取区块之一;
复数个比较逻辑单元,与该复数个快取区块相对应,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的地址总线的复数个位位置;及
一第二逻辑单元,用以从该复数个比较逻辑单元之一选择一输出,以做为该高速缓存的输出。
2.如权利要求1所述的高速缓存,其中上述的第一逻辑单元包含一译码器。
3.如权利要求2所述的高速缓存,其中上述的译码器与输入至该高速缓存的地址总线中的至少一地址线(address line)相连接,以控制在一特定时间内被选择所欲操作的某一该快取区块。
4.如权利要求1所述的高速缓存,其中上述的第二逻辑单元包含一多路复用器。
5.如权利要求4所述的高速缓存,其中输入至该高速缓存的地址总线中的至少一地址线,是输入至该多路复用器,以控制某一该比较逻辑单元的输出,而该比较逻辑单元的输出是直接连接至该高速缓存的输出。
6.如权利要求1所述的高速缓存,其中上述的复数个快取区块的每一个输出包含一快取标签、对应的资料及至少一对应的状态位。
7.如权利要求6所述的高速缓存,其中上述的复数个比较逻辑单元是用以将相应的快取区块的复数个输出的标签部分与输入至该高速缓存的地址总线中的一部分进行比较。
8.如权利要求6所述的高速缓存,若该输出的快取标签部分与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。
9.如权利要求1所述的高速缓存,其中上述的每一个比较逻辑单元是用以输出资料及输出至少一状态位,而该状态位用以表示该高速缓存资料是否正确。
10.如权利要求1所述的高速缓存,其中上述的复数个快取区块,被配置成仅有其中之一会被选择到,且该被选择到的快取区块是在任何一特定时间内均以正常功率模式下来操作,而其它未被选择到的该快取区块则以一闲置、低功率模式下来操作。
11.一种可携式电子装置,其至少包含:
一处理器;
一内存;及
一高速缓存,其包含:
复数个快取区块,每一该快取区块包含复数个具有多路关联性的资料线,且每一该快取区块更包含复数个输出;
一第一逻辑单元,系用作选择在一特定时间内所欲操作的该复数个快取区块之一;
复数个比较逻辑单元,系与该复数个快取区块相对应,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的地址总线的复数个位位置;及
一第二逻辑单元,用以从该复数个比较逻辑单元之一选择一输出,以做为该高速缓存的输出。
12.一种高速缓存,其至少包含:
复数个快取区块,可经由一直接映像快速存取而独立地被选择,且每一该快取区块可储存复数条高速缓存线(cache lines),并具有复数个输出;
复数个比较逻辑单元,与该复数个快取区块相关联,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的部分地址总线中的一值;及
一输出逻辑单元,用以将一被选择的该快取区块相关联的比较逻辑单元的输出做为该高速缓存的输出。
13.如权利要求12所述的高速缓存,更包含一选择逻辑单元,用以控制被选择的该复数个快取区块,该选择逻辑单元的形成,系确保在任何时间内没有两个以上的该快取区块被选择,并且上述的所有未被选择的该快取区块则维持在一闲置、低功率模式下操作。
14.一种混成(hybrid)高速缓存,其至少包含:
一输入部分,包括复数个可通过一直接映像快速存取而独立地被选择的快取区块,且每一该快取区块能够储存复数个高速缓存线(cachelines),并具有复数个输出;及
一输出部分,包括一比较逻辑单元,配置比较该被选择的快取区块的复数个输出与一输入至该高速缓存的部分地址总线中的一值,该输出部分更可输出由该被选择的快取区块所输出的高速缓存数据。
15.如权利要求14所述的混成高速缓存,其中上述的输入部分,包含一译码器以接收输入至该混成高速缓存的地址的一部分,及输出复数个选择信号线,其中上述的每一该选择信号线,可电性地连接至该复数个快取区块其中之一。
16.如权利要求15所述的混成高速缓存,其中上述的每一复数个快取区块,能够进入一闲置、低功率模式,以反应出该电性连接的选择信号线的状态。
17.如权利要求14所述的混成高速缓存,其中上述的输入部分,用以确保该复数个快取区块,仅有其中之一在任何特定时间内,是在一动作、正常功率模式下来操作,且其余未被选择的该复数个快取区块则在闲置、低功率模式下操作。
18.如权利要求14所述的混成高速缓存,其中上述的输出部分,包含与复数个快取区块相关联的比较逻辑单元,且每一该比较逻辑单元具有复数个输入,用以接收来自于相关联的该复数个快取区块的输出,且配置比较该相关联的快取区块的复数个输出上的讯息与一输入至该高速缓存的地址总线的复数个位位置。
19.一种快速存取资料的方法,其至少包含:
直接映像一输入至该高速缓存的地址到复数个快取区块之一,且每一该快取区块具有n个输出;及
处理该n个输出,系将该n个经由直接映像至该高速缓存的输出当做一n路集合关系型高速缓存来处理。
20.如权利要求19所述的快速存取资料的方法,更包含在一闲置、低功率模式下来操作所有非经直接映像的该快取区块。
21.如权利要求19所述的快速存取资料的方法,更包含在任何一特定的时间内,确保只有一该快取区块是在一动作、正常功率模式下来操作。
22.如权利要求19所述的快速存取资料的方法,当上述的处理步骤决定一命中发生时,则更包括将来自对应至该地址且在该直接映像快取区块中的高速缓存数据输出。
23.如权利要求19所述的快速存取资料的方法,其中上述的处理步骤包含比较该n个输出的每一个的标签部分与输入至该高速缓存地址的一部分。
24.如权利要求19所述的快速存取资料的方法,其中上述的直接映像包含输入该地址的一部分至一译码器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/406,482 US20040199723A1 (en) | 2003-04-03 | 2003-04-03 | Low-power cache and method for operating same |
US10/406,482 | 2003-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1514372A true CN1514372A (zh) | 2004-07-21 |
CN1514372B CN1514372B (zh) | 2011-11-23 |
Family
ID=33097325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2003101148510A Expired - Lifetime CN1514372B (zh) | 2003-04-03 | 2003-11-11 | 低功率高速缓存及其快速存取数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040199723A1 (zh) |
CN (1) | CN1514372B (zh) |
TW (1) | TWI220472B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048763B (zh) * | 2004-10-01 | 2012-05-23 | 格罗方德半导体公司 | 一种配置处理器的高速缓冲存储器的方法与处理器 |
CN101739343B (zh) * | 2008-11-24 | 2012-08-22 | 威刚科技股份有限公司 | 闪存系统及其运作方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7360023B2 (en) * | 2003-09-30 | 2008-04-15 | Starcore, Llc | Method and system for reducing power consumption in a cache memory |
US7457901B2 (en) * | 2005-07-05 | 2008-11-25 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling variable width data transfers |
CN100461142C (zh) * | 2005-07-05 | 2009-02-11 | 威盛电子股份有限公司 | 微处理器、处理器总线系统、及执行稀疏写入处理的方法 |
US7441064B2 (en) * | 2005-07-11 | 2008-10-21 | Via Technologies, Inc. | Flexible width data protocol |
US7502880B2 (en) | 2005-07-11 | 2009-03-10 | Via Technologies, Inc. | Apparatus and method for quad-pumped address bus |
US7444472B2 (en) * | 2005-07-19 | 2008-10-28 | Via Technologies, Inc. | Apparatus and method for writing a sparsely populated cache line to memory |
US7590787B2 (en) * | 2005-07-19 | 2009-09-15 | Via Technologies, Inc. | Apparatus and method for ordering transaction beats in a data transfer |
TW200821831A (en) * | 2005-12-21 | 2008-05-16 | Nxp Bv | Schedule based cache/memory power minimization technique |
US9864694B2 (en) * | 2015-05-04 | 2018-01-09 | Arm Limited | Tracking the content of a cache using a way tracker having entries with a cache miss indicator |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736293A (en) * | 1984-04-11 | 1988-04-05 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interleaved set-associative memory |
US5210843A (en) * | 1988-03-25 | 1993-05-11 | Northern Telecom Limited | Pseudo set-associative memory caching arrangement |
US5249286A (en) * | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
US5386527A (en) * | 1991-12-27 | 1995-01-31 | Texas Instruments Incorporated | Method and system for high-speed virtual-to-physical address translation and cache tag matching |
US5913223A (en) * | 1993-01-25 | 1999-06-15 | Sheppard; Douglas Parks | Low power set associative cache memory |
US5410669A (en) * | 1993-04-05 | 1995-04-25 | Motorola, Inc. | Data processor having a cache memory capable of being used as a linear ram bank |
JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
US5699315A (en) * | 1995-03-24 | 1997-12-16 | Texas Instruments Incorporated | Data processing with energy-efficient, multi-divided module memory architectures |
US5550774A (en) * | 1995-09-05 | 1996-08-27 | Motorola, Inc. | Memory cache with low power consumption and method of operation |
US6006310A (en) * | 1995-09-20 | 1999-12-21 | Micron Electronics, Inc. | Single memory device that functions as a multi-way set associative cache memory |
GB2311880A (en) * | 1996-04-03 | 1997-10-08 | Advanced Risc Mach Ltd | Partitioned cache memory |
US5802602A (en) * | 1997-01-17 | 1998-09-01 | Intel Corporation | Method and apparatus for performing reads of related data from a set-associative cache memory |
GB2344665B (en) * | 1998-12-08 | 2003-07-30 | Advanced Risc Mach Ltd | Cache memory |
GB2350910A (en) * | 1999-06-08 | 2000-12-13 | Advanced Risc Mach Ltd | Status bits for cache memory |
KR100373849B1 (ko) * | 2000-03-13 | 2003-02-26 | 삼성전자주식회사 | 어소시어티브 캐시 메모리 |
US6976075B2 (en) * | 2000-12-08 | 2005-12-13 | Clarinet Systems, Inc. | System uses communication interface for configuring a simplified single header packet received from a PDA into multiple headers packet before transmitting to destination device |
US6845432B2 (en) * | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
US6662271B2 (en) * | 2001-06-27 | 2003-12-09 | Intel Corporation | Cache architecture with redundant sub array |
-
2003
- 2003-04-03 US US10/406,482 patent/US20040199723A1/en not_active Abandoned
- 2003-07-18 TW TW092119642A patent/TWI220472B/zh not_active IP Right Cessation
- 2003-11-11 CN CN2003101148510A patent/CN1514372B/zh not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048763B (zh) * | 2004-10-01 | 2012-05-23 | 格罗方德半导体公司 | 一种配置处理器的高速缓冲存储器的方法与处理器 |
CN101739343B (zh) * | 2008-11-24 | 2012-08-22 | 威刚科技股份有限公司 | 闪存系统及其运作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1514372B (zh) | 2011-11-23 |
TW200421086A (en) | 2004-10-16 |
TWI220472B (en) | 2004-08-21 |
US20040199723A1 (en) | 2004-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1093962C (zh) | 高速缓存中最近最少使用替换结构及其机制的执行方法 | |
US20210406170A1 (en) | Flash-Based Coprocessor | |
CN1315060C (zh) | 储存存储器型式数据的转译旁视缓冲器 | |
CN1154049C (zh) | 双端口管道两级高速缓冲存储器系统 | |
US7831760B1 (en) | Serially indexing a cache memory | |
CN1522410A (zh) | 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位 | |
CN1397887A (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
TWI514144B (zh) | 積聚分頁錯失之信號傳遞與處置技術 | |
CN1516030A (zh) | 重排多个数据存取指令的方法与装置 | |
CN1241753A (zh) | 半导体集成电路和数据处理系统 | |
JPH07200399A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 | |
CN1514372A (zh) | 低功率高速缓存及其快速存取资料的方法 | |
CN104937568A (zh) | 用于多页尺寸转换后备缓冲器(tlb)的装置和方法 | |
CN1306419C (zh) | 一种高速缓存及从高速缓存读取数据的方法 | |
CN1120196A (zh) | 地址变换电路 | |
CN1278241C (zh) | 用以跟踪内存存取的存储页管理装置及方法 | |
EP4020232A1 (en) | Compressed cache memory with parallel decompress on fault | |
US7475192B2 (en) | Cache organization for power optimized memory access | |
EP2524314B1 (en) | System and method to access a portion of a level two memory and a level one memory | |
CN1040104A (zh) | 用于双母线微机系统的延迟高速存贮器写操作启动电路 | |
CN117083599A (zh) | 硬件辅助的存储器访问跟踪 | |
CN1168025C (zh) | 用于多线程处理机的指令高速缓存器 | |
US7631163B2 (en) | Fast virtual to physical memory mapping | |
CN100350378C (zh) | 用于并行访问多个存储器模块的方法和设备 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20040721 |
|
CI01 | Publication of corrected invention patent application |
Correction item: Rejection of patent application Correct: Dismiss False: Reject Number: 31 Volume: 26 |
|
ERR | Gazette correction |
Free format text: CORRECT: PATENT APPLICATION REJECTION AFTER PUBLICATION; FROM: REJECTION TO: REJECTION OF REVOCATION |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20111123 |
|
CX01 | Expiry of patent term |