低功率高速缓存及其快速存取数据的方法转让专利

申请号 : CN200310114851.0

文献号 : CN1514372B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 查理·谢勒

申请人 : 威盛电子股份有限公司

摘要 :

一高速缓存由利用直接映像的快速存取并可独立选择的复数个快取区块所组成,且每一区块能够储存复数个高速缓存线并具有复数个输出。此外,高速缓存还包含复数个与每个快取区块相关联的比较逻辑单元,且每个比较逻辑单元具有复数个输入,用以接收相关联快取区块的复数个输出,并将接收到的相关联快取区块的复数个输出与输入至此高速缓存的地址总线中的一值加以比较。最后,此高速缓存包含输出逻辑单元,此输出逻辑单元从与每个快取区块相关联的比较逻辑单元的输出中选择其一做为整个高速缓存的最后输出。

权利要求 :

1.一种高速缓存,其至少包含:

复数个快取区块,每一该快取区块包含复数个具有多路关联性的数据线,且该快取区块更包含复数个输出,其中该复数个快取区块的该每一个输出包含一快取标签,该复数个输出符合一集合关系型处理的连接关系,高速缓存内嵌入一混成架构,其同时结合直接映像式及集合关系型快取处理观念,译码器和快取区块共组成一高速缓存的直接映像部分,并通过地址总线地址位定义一输入地址映像至指定的快取区块;

一第一逻辑单元,在一特定时间内用作选择所欲操作的该复数个快取区块之一;

复数个比较逻辑单元,与该复数个快取区块相对应,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的地址总线的复数个位位置;及一第二逻辑单元,用以从该复数个比较逻辑单元之一选择一输出,以做为该高速缓存的输出;

其中该第一逻辑单元与输入至该高速缓存地址总线中的至少一地址线相连接,以控制在一特定时间内被选择所欲操作的某一该快取区块;以及若该输出的快取标签部分与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

2.如权利要求1所述的高速缓存,其中上述的第一逻辑单元包含一译码器。

3.如权利要求1所述的高速缓存,其中上述的第二逻辑单元包含一多路复用器。

4.如权利要求3所述的高速缓存,其中输入至该高速缓存的地址总线中的至少一地址线,是输入至该多路复用器,以控制某一该比较逻辑单元的输出,而该比较逻辑单元的输出是直接连接至该高速缓存的输出。

5.如权利要求1所述的高速缓存,其中上述的复数个快取区块的每一个输出包含对应的数据及至少一对应的状态位。

6.如权利要求1所述的高速缓存,其中上述的复数个比较逻辑单元是用以将相应的快取区块的复数个输出的标签部分与输入至该高速缓存的地址总线中的一部分进行比较。

7.如权利要求1所述的高速缓存,其中上述的每一个比较逻辑单元是用以输出数据及输出至少一状态位,而该状态位用以表示该高速缓存数据是否正确。

8.如权利要求1所述的高速缓存,其中上述的复数个快取区块,被配置成仅有其中之一会被选择到,且该被选择到的快取区块是在任何一特定时间内均以正常功率模式下来操作,而其它未被选择到的该快取区块则以一闲置、低功率模式下来操作。

9.一种可携式电子装置,其至少包含:

一处理器;

一内存;及

一高速缓存,其包含:

复数个快取区块,每一该快取区块包含复数个具有多路关联性的数据线,且每一该快取区块更包含复数个输出,其中每一个该输出包含一快取标签,该复数个输出符合一集合关系型处理的连接关系;

一第一逻辑单元,用作选择在一特定时间内所欲操作的该复数个快取区块之一;

复数个比较逻辑单元,与该复数个快取区块相对应,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的地址总线的复数个位位置;及一第二逻辑单元,用以从该复数个比较逻辑单元之一选择一输出,以做为该高速缓存的输出;

其中该第一逻辑单元与输入至该高速缓存地址总线中的至少一地址线相连接,以控制在一特定时间内被选择所欲操作的某一该快取区块;且若该输出的快取标签与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

10.一种高速缓存,其至少包含:

复数个快取区块,可经由一直接映像快速存取而独立地被选择,该快取区块包含复数个输出,其中每一个该输出包含一快取标签,且该复数个输出符合一集合关系型处理的连接关系;

复数个比较逻辑单元,与该复数个快取区块相关联,每一该比较逻辑单元具有复数个输入,用以接收来自于该相关联的快取区块的复数个输出,且配置比较该相关联的快取区块的复数个输出与一输入至该高速缓存的部分地址总线中的一值;及一输出逻辑单元,用以将一被选择的该快取区块相关联的比较逻辑单元的输出做为该高速缓存的输出;

其中若该输出的快取标签与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

11.如权利要求10所述的高速缓存,更包含一选择逻辑单元,用以控制被选择的该复数个快取区块,该选择逻辑单元的形成,确保在任何时间内没有两个以上的该快取区块被选择,并且上述的所有未被选择的该快取区块则维持在一闲置、低功率模式下操作。

12.一种混成高速缓存,其至少包含:

一输入部分,包括复数个可通过一直接映像快速存取而独立地被选择的快取区块,且每一该快取区块能够储存复数个高速缓存线,并具有复数个输出,其中每一个该输出包含一快取标签,且该复数个输出符合一集合关系型处理的连接关系;及一输出部分,包括一比较逻辑单元,配置比较该被选择的快取区块的复数个输出与一输入至该高速缓存的部分地址总线中的一值,该输出部分更可输出由该被选择的快取区块所输出的高速缓存数据;

其中若该输出的快取标签与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

13.如权利要求12所述的混成高速缓存,其中上述的输入部分,包含一译码器以接收输入至该混成高速缓存的地址的一部分,及输出复数个选择信号线,其中上述的每一该选择信号线,可电性地连接至该复数个快取区块其中之一。

14.如权利要求13所述的混成高速缓存,其中上述的每一复数个快取区块,能够进入一闲置、低功率模式,以反应出该电性连接的选择信号线的状态。

15.如权利要求12所述的混成高速缓存,其中上述的输入部分,用以确保该复数个快取区块,仅有其中之一在任何特定时间内,是在一动作、正常功率模式下来操作,且其余未被选择的该复数个快取区块则在闲置、低功率模式下操作。

16.如权利要求12所述的混成高速缓存,其中上述的输出部分,包含与复数个快取区块相关联的比较逻辑单元,且每一该比较逻辑单元具有复数个输入,用以接收来自于相关联的该复数个快取区块的输出,且配置比较该相关联的快取区块的复数个输出上的讯息与一输入至该高速缓存的地址总线的复数个位位置。

17.一种快速存取数据的方法,其至少包含:

直接映像一输入至高速缓存的地址到复数个快取区块之一,且每一该快取区块具有复数个输出,其中每一个该输出包含一快取标签,该复数个输出符合一集合关系型处理的连接关系;及处理该复数个输出,将该复数个经由直接映像至该高速缓存的输出当做一复数路集合关系型高速缓存来处理;

其中若该输出的快取标签与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

18.如权利要求17所述的快速存取数据的方法,更包含在一闲置、低功率模式下来操作所有非经直接映像的该快取区块。

19.如权利要求17所述的快速存取数据的方法,更包含在任何一特定的时间内,确保只有一该快取区块是在一动作、正常功率模式下来操作。

20.如权利要求17所述的快速存取数据的方法,当上述的处理步骤决定一命中发生时,则更包括将来自对应至该地址且在该直接映像快取区块中的高速缓存数据输出。

21.如权利要求17所述的快速存取数据的方法,其中上述的处理步骤包含比较该复数个输出的每一个的标签部分与输入至该高速缓存地址的一部分。

22.如权利要求17所述的快速存取数据的方法,其中上述的直接映像包含输入该地址的一部分至一译码器。

说明书 :

低功率高速缓存及其快速存取数据的方法

技术领域

[0001] 本发明有关于一种高速缓冲存储器;特别是关于一种低功率高速缓存及一种快速存取数据方法。

背景技术

[0002] 计算机系统(或其它以处理器为主的系统)创新的驱动力之一,来自于对更快速且更强大的数据处理能力的需求。长久以来,影响计算机速度的主要瓶颈之一在于从内存中存取数据的速度,即所谓的内存存取时间(memory access time)。微处理器由于拥有相对较快速的处理器周期时间(processor cycle time),故经常于内存存取时,因需利用等待状态(wait state)以克服其相对较慢的内存存取时间而造成延迟。因此,改进内存存取时间已成为增进计算机效能的主要研究领域之一。
[0003] 为弥补快速处理器周期时间与低速内存存取时间的差距,于是产生了高速缓存。高速缓存为一非常快速且相当昂贵的小容量零等待状态(zero wait state)内存,用以储存经常由主存储器中存取的数据及程序代码的复本。处理器能够通过操作此种非常快速的内存,减少内存在存取时必需增加的等待状态次数。当处理器从内存中寻找数据并且该数据存在于高速缓存中,则称一快速存取读取命中(read hit),并且由此内存存取的数据能由高速缓存提供给处理器而不出现等待状态。若该数据不存在于高速缓存中,则称快速存取读取误失(read miss)。在快速存取读取误失时,内存进而向系统找寻数据,且该数据可由主存储器中取得,就如同高速缓存不存在时所做的动作一般。在快速存取读取误失时,由主存储器取得的数据将提供给处理器,并由于此数据在统计上有可能再一次被处理器利用到,所以此数据亦同时存入高速缓存中。
[0004] 一有效率的高速缓存导致一较高的存取“命中率”(hit rate),其定义为发生在所有的内存存取时高速缓存存取命中的百分比。当一高速缓存具有较高的存取命中率时,则大部分的记忆存取以零等待状态来完成。一较高的高速缓存存取命中率的净效应为:较少发生的内存存取误失的等待状态被大量具零等待状态的内存命中存取所平均,导致每次存取平均近乎为零等待状态。虽然处理器中的高速缓存最广为所知,但其它的高速缓存也为人所知及应用,例如:输入/输出(I/O)高速缓存被用来做为一系统总线及输入/输出总线间数据的缓冲及快速存取。
[0005] 不管其为一处理器高速缓存、输入/输出高速缓存、或为它种高速缓存,在高速缓存中效能考量的重点在于其组织及管理方式。高速缓存基本上以一直接映像式内存结构、一集合关连式(set-associative)内存结构、或一完全关连式(fullassociative)内存结构来组成。
[0006] 一直接映像式高速缓存提供最简单且最快速的高速缓存,但却因每一笔数据只能占据一特定位置,而严格限制其高速缓存位置数目。当两笔或多笔经常使用的数据在一直接映像式高速缓存中映像至相同位置,并且这些数据被一程序以循环方式循环地使用,则发生高速缓存振荡(cache thrashing)。以高速缓存的术语来说,振荡(thrashing)发生于当高速缓存花费过多的时间在交换包含所参考到数据的高速缓存线(cache lines),以响应中央处理器所对内存参照的要求。特别地,当每一笔数据被参考到时,它取代前者并造成一相当慢的主存储器存取。高速缓存振荡由于迫使过多的主存储器存取而严重地减低程序执行速度。
[0007] 一集合关系型内存结构利用一地址中的一部分来存取一数据区块集合。该地址的其它一部分则被用来比较这数据区块集合中每一区块的标签(tag)。假如在此数据区块集合中,其中之一区块的标签与该地址部分吻合,则吻合的区块数据将被用做后续的数据处理。与集合关系型结构不同,在一完全关系型内存结构中,其内存结构等效上具有一大量区块的单一集合,且数据能被写入及读出该单一集合中的任何区块。
[0008] 在此三种高速缓存结构中,直接映像式高速缓存结构是最易于实作,并被认为是最快速的存取方式。然而,集合关系型高速缓存是较复杂,因此实作上也较为昂贵。当高速缓存的容量增加,其结构亦变得愈加复杂且昂贵,尤其是完全关系型高速缓存。另外,集合关系型高速缓存的命中率仅略少于完全关系型高速缓存;因此,具较低复杂性及较快存取速度的集合关系型高速缓存(相对于完全关系型高速缓存而言),特别在高速缓存容量增加后,成为另一种更理想的选择方式。
[0009] 如上述的介绍,图1所示为一现有技术的16路(16-way)集合关系型高速缓存的方块图。在高速缓存10内部具有复数个快取区块12、14、16及18。快取区块的数目可随着系统的不同而改变,但区块数目的安排基本上是为了较快速的操作及较低的复杂性。因10
此,一具有四个4仟(此处1仟为2 )字节(kilobytes)区块的高速缓存要比一具有单一个16仟字节区块的高速缓存要来得快速。尽管详细的实作方式随高速缓存的不同而改变,但对快取区块12、14、16及18的一般结构及操作方法却为现有技术的,因此并不在此赘述。
基本上每一快取区块包含一数据区域、一标签区域及控制逻辑。举例来说,假设在图1中,每个快取区块包含32条数据线(高速缓存线),每一数据线储存8个字符(一个字符包含
4个8位的字节)。另外,假设每一快取区块具有4组此种数据区域的集合,则每一区块包含4仟字节数据。
[0010] 如上所述,一高速缓存为一高速的内存,能加快主存储器的存取速度,特别是当具有良好设计使其具有较高的“命中”率。在图1中,一地址总线20输入至此高速缓存。如对应至地址总线20上所输入值的有效数据(valid data)被储存在该高速缓存中,则该笔数据输出至高速缓存的输出38。地址总线20耦合至每个快取区块,并且该地址总线的最低有效位(least significant bits)被用来存取储存于该区块数据区中对应该最低有效位群的数据。当数据写入一快取区块的数据区中,该地址总线的最高有效位群(most significant bits)被写入该快取区块的标签区中的相对位置(即一对应于最低有效位群所指示用以取出及储入数据的位置)。
[0011] 如所知,一高速缓存控制器(未于图标)控制在不同的快取区块12、14、16及18中数据的读取及储存的演算方法。有许多不同已现有技术的演算方法可用来完成此种控制且其已被相关人士所了解,因此不在此赘述。当一地址值被置于地址总线20用来作为数据的读取时,此地址总线20的最低有效位群被用来读取在每一快取区块中相对应的数据位置。
[0012] 如图1所示,每一快取区块具有4个内部数据区;因此,每一快取区块产生4个输出。如图中快取区块12,其4个输出分别以数字22、24、26及28表示。数据区中对应最低有效位群所指示位置的数据将被置于快取区块12的输出端之一。因为快取区块12包含4个内部数据区;因此,将有4个数据值(每一个值由每一数据区中所读取)输出于快取区块12的输出端上。相同地,储存于对应的标签内存区的标签值(对应于低最有效位群)也同样地置于快取区块12的每一输出上。为此,稍早当数据被写入数据区中,地址总线的最高有效位群被写入对应的标签区位置。
[0013] 此外,一个或多个状态位(status bits)亦输出于输出22、24、26及28。故考虑一状态位用来显示由某一特别位置所取得的数据是否有效,因此,对任何希望由内存中读取数据的指令,每一快取区块12、14、16及18输出4个不同的值。一逻辑区块35则完成这16个输出中每个标签部分与存在地址总线20中的最高有效位间之一16路(16-way)的比较。假如发现吻合的目并且此笔数据的状态位显示此数据有效(valid),则高速缓存10输出此笔数据于其输出38。众所周知,一个或多个状态位也同此数据输出。然而,如无“命中”(“命中”意即地址总线20中的最高有效位与有效的区块输出之一的标签部分吻合),则该待寻的数据便必须由系统或主存储器中撷取。
[0014] 在操作过程中,高速缓存10中不同的电路及逻辑单元均以常态来操作。众所周知,以电池操作的处理器驱动的可携式电子装置(如掌上型计算机、无线电话、MP3播放器等)不断的被广泛应用,因此,如何降低这些装置的耗能以延长电池的使用时间亦成为所需。当高速缓存容量扩大,需要操作的功率亦随之增加;因此,如何改良高速缓存的结构及操作方法以达到降低其操作功率为今重要课题。

发明内容

[0015] 本发明的明确目的、优点及创新特征将在以下做部分的说明,而其余部分对于了解此技术领域的人将经由以下说明的审视而愈加明显或由本发明的实施而得知。通过操作与所述的申请专利范围中的揭露,亦能对本发明的目的及优点有所了解。
[0016] 鉴于上述发明背景中,传统的高速缓存所产生的诸多缺点,本发明的主要目的在于提供一种新的高速缓存结构及其存取数据的方法,以降低其操作时的耗能程度。
[0017] 在一实施例中,一高速缓存包含复数个可利用直接映像式快取存取来独立选择的快取区块,且每一快取区块能够储存复数个高速缓存线(cache lines)并具有复数个输出,其中该复数个快取区块的该每一个输出包含一快取标签;一第一逻辑单元,在一特定时间内用作选择所欲操作的该复数个快取区块之一;此高速缓存更进一步包含与每一快取区块相关联的比较逻辑单元,且每一比较逻辑单元具有复数个输入,用来接收来自与其相关联快取区块的复数个输出,并将接收到的相关联快取区块的复数个输出与输入此高速缓存的地址总线的一值相比较。最后,此高速缓存包含一输出逻辑单元,用来输出所选择快取区块相关联的比较逻辑单元的输出;其中该第一逻辑单元与输入至该高速缓存地址总线中的至少一地址线相连接,以控制在一特定时间内被选择所欲操作的某一该快取区块;以及,若该输出的快取标签部分与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。
[0018] 本发明的另一实施例在于提供一快速存取数据的方法。本方法将一输入至此高速缓存的地址直接映像至复数个快取区块之一,其中每一快取区块具有n个输出,并且本方法将此直接映像高速缓存的n个输出当做n路集合关联(n-way set associative)式高速缓存来处理;其中若该输出的快取标签部分与输入至该高速缓存的地址总线中的一部分吻合,则每一该比较逻辑单元能够输出来自与其对应的该快取区块的复数个输出之一,以做为该高速缓存的数据输出。

附图说明

[0019] 图1为一现有技术的16路完全关系型高速缓存的方块图;
[0020] 图2为根据本发明一实施例的高速缓存结构方块图;
[0021] 图3为根据本发明一实施例的32位地址的位位置方块图;
[0022] 图4为根据本发明一实施例的高速缓存结构方块图;及
[0023] 图5为根据本发明一实施例的高速缓存最上层功能操作的流程图。
[0024] 图中符号说明:
[0025] 10 高速缓存
[0026] 12 快取区块1
[0027] 14 快取区块2
[0028] 16 快取区块3
[0029] 18 快取区块4
[0030] 20 地址总线
[0031] 22 快取区块的输出
[0032] 24 快取区块的输出
[0033] 26 快取区块的输出
[0034] 28 快取区块的输出
[0035] 35 16路比较逻辑单元
[0036] 38 高速缓存的输出
[0037] 100 高速缓存
[0038] 110 译码器
[0039] 112 快取区块1
[0040] 114 快取区块2
[0041] 116 快取区块3
[0042] 118 快取区块4
[0043] 122A 快取区块1的输出
[0044] 122B 快取区块2的输出
[0045] 122C 快取区块3的输出
[0046] 122D 快取区块4的输出
[0047] 124A 快取区块1的输出
[0048] 124B 快取区块2的输出
[0049] 124C 快取区块3的输出
[0050] 124D 快取区块4的输出
[0051] 126A 快取区块1的输出
[0052] 126B 快取区块2的输出
[0053] 126C 快取区块3的输出
[0054] 126D 快取区块4的输出
[0055] 128A 快取区块1的输出
[0056] 128B 快取区块2的输出
[0057] 128C 快取区块3的输出
[0058] 128D 快取区块4的输出
[0059] 132A 4路比较逻辑单元
[0060] 132B 4路比较逻辑单元
[0061] 132C 4路比较逻辑单元
[0062] 132D 4路比较逻辑单元
[0063] 140 地址总线
[0064] 142A 4路比较逻辑单元的输出
[0065] 142B 4路比较逻辑单元的输出
[0066] 142C 4路比较逻辑单元的输出
[0067] 142D 4路比较逻辑单元的输出
[0068] 150 多路复用器
[0069] 152 高速缓存100的输出
[0070] 200 高速缓存
[0071] 222 快取区块的输出
[0072] 224 快取区块的输出
[0073] 226 快取区块的输出
[0074] 228 快取区块的输出
[0075] 232 4路比较逻辑单元
[0076] 252 高速缓存200的输出

具体实施方式

[0077] 上述已将本发明的内容作一简要说明,以下将伴随附图对本发明作更进一步的详细说明。本发明所沿用的现有技术,在此仅作重点式的引用,以助本发明的阐述。而且下述内文中对本发明的相关附图及其说明并不应受限于本实施例,反而其意图在涵盖有关本发明精神及在附属申请专利范围中所定义的发明范围所有可替代、修正的及类似的案件。
[0078] 如图2所示,其为一依照本发明之一实施例所建构的高速缓存100的内部结构方块图。在描述此图的详细结构或其它实施例之前,须强调的是,此处所提供的图并不应限制本发明的范围及精神所在。实际上,在图2及图4中的实施例说明是选择用来和图1的现有技术做比较;因此,图2及图4中实施例的快取区块容量及数目与图1中相同。然而拜现有技术所赐,本发明并不局限所使用的快取区块于特定的容量及数目。实际上,本发明的观念是准备应用于具有各种不同容量及数目的快取区块。此外,在图2及图4中所示的不同逻辑区块的内部结构及操作方式(意即快取区块及比较逻辑单元的内部结构)是现有技术,毋须再对其做多余的验证;因此,这些组件的内部结构及操作方式毋须在此赘述。
[0079] 在图2中,一高速缓存100具有复数个快取区块(在本图中有4个区块)112、114、116及118。这些快取区块的结构及操作方式与图1中所述的快取区块相似。然而,在图1与图2中,其显著的差别在于本发明的快取区块112、114、116及118的操作方式可被控制在一动作中(active)、正常功率(normal-power)的操作模式或在一闲置中(inactive)、低功率(low-power)的操作模式。在本发明的较佳实施例中,此复数个快取区块是被同步控制的,以致于在任何特定时间内,快取区块112、114、116及118中只有一个是以动作中、正常功率的操作模式来操作,然而其余未被选择的快取区块则是处于闲置中、低功率的操作模式。
[0080] 许多电子装置其电路是设计在低功率或“睡眠”操作模式下来操作,其电路系统汲取相当少的能量,如互补金属氧化物半导体(CMOS)是特别适合于此种应用。这种已知的电路系统或技术可应用于快取区块112、114、116及118。因为此种在低功率模式来操作的电路系统设计为已知,故毋须对已现有技术此技艺的人赘述如何实现在高速缓存100中快取区块的技术。
[0081] 在所示的实施例中,快取区块的选择是经由一译码器110来控制。在图2中,一个具有4个输出的译码器110与4个快取区块一起使用。译码器110的输出是电性耦合至每一快取区块112、114、116及118的输入(意即经由一选择控制线)。众所周知,此译码器110具有2个逻辑输入位并且这些逻辑输入位的总值决定其输出为何。举例来说,若其输入位为″00″,则其输出连接至快取区块112的选择输入会被确立(asserted),而译码器
110的其余三个输出则不会被确立(de-asserted);若其输入位为″01″,则其输出连接至快取区块114的选择输入会被确立;相同地,若其输入位为″10″,则其输出连接至快取区块116的选择输入会被确立;最后,若其输入位为″11″,则其输出连接至快取区块118的选择输入会被确立。
[0082] 在图2中的一个应用,将地址总线140的2个信号线输入至译码器110,因此,译码器110的结构是在一特定时间内用来快速地选择快取区块112、114、116及118其中之一使其工作于正常功率模式下,而其余三个快取区块则是在闲置、低功率模式下来操作。因为快取区块包含了高速缓存100内大部分的逻辑闸(因其中所含的内存储存区),故令4个逻辑区块的其中3个总是在低功率模式下来操作,能实际地节省整个内存的能量。事实上,在本实施例中,高速缓存100操作时所消耗的能量约为未利用本发明来完成的高速缓存所消耗能量的25%。在许多应用中,如可携式电子装置及其它以电池来供能的电子装置,此种能量上的节约消耗可使电池的使用时间显著的延长。
[0083] 至于在地址总线140上所加载的值,其地址可能为一实际的地址(physical address)或映像至一实际地址的虚拟地址(virtual address),其映像可由本附图以外部分的组件来完成,且任何此种映像不会影响本发明的范围及内容。就此点来说,本处所示附图及描述的发明,不论使用实际的或虚拟的地址均可达到相同的效果。
[0084] 参考图2,每一快取区块112、114、116及118是由4个内部数据区所组成(数据区未于图中特别明示);因此,4个输出122、124、126及128连接至比较逻辑单元132。每个输出可由相关联的快取区块传递其数据(data)、标签(tag)及状态(status)至相关联的比较逻辑单元。在图2中,输出以单线来表示,但亦可能由多个讯号线组成连接路径。再者,在一较佳的实施例中,每一输出将包含数据、标签及状态的信息。然而,和本发明范围及精神一致的另一实施例中,(最初)可能只传送标签及状态信息到比较逻辑单元132。如果根据比较标签及状态信息可探知其为一“命中”情况,则数据位可随后由快取区块中读取出来。
[0085] 不同于图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。
[0086] 在实施例中,比较逻辑单元132A-132D也被设计成可以低功率模式下来操作。与其它所有未被选择的快取区块相关联的比较逻辑单元,亦可以闲置、低功率模式下来操作以达到节省能量的目的。
[0087] 每一比较逻辑单元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的选择控制位。
[0088] 本发明的概念是准备扩充至其它的高速缓存结构。举例来说,一具有8个快取区块的高速缓存结构可利用本发明来完成。在此实施例中,三个地址位可被译码器110及多路复用器150用来选择所需的快取区块;同样地,具有不同容量或不同数目的内部数据组合(如8路关系型)可用相同的方法来完成。
[0089] 如图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的输出中的标签相比较。
[0090] 由前述所知,高速缓存100内嵌入一混成(hybrid)架构,其同时结合直接映像式及集合关系型快取处理观念。一译码器110和快取区块112、114、116及118共组成一高速缓存的直接映像部分,并通过地址总线140的第10及11地址位定义一输入地址映像至指定的快取区块。在高速缓存100中的电路系统,系将所选择的快取区块置于一动作中、正常功率模式下来操作,而同时将其余三个快取区块置于闲置中、低功率模式下来操作。因此,与被选择的快取区块相关联的比较逻辑单元132,则以集合关联的方式来操作。被选择到的快取区块输出复数个数据值及相关的标签,此标签被相关联的比较逻辑单元132用来与地址总线140(以及一数据有效状态位或来自快取区块输出的指示信号)的最高有效位群相比较,以决定是否一高速缓存“命中”发生。然后相关联的比较逻辑单元132的输出经由多路复用器150接连到高速缓存100的输出152。
[0091] 高速缓存100的结构反映出设计上相当程度的择优(trade off)考量。于本发明中,由于将4个快取区块112、114、116及118中的3个停止其操作来达到快速及省能的目的,将导致命中率与其它方法相比,例如将全数的快取区块均保持操作状态下时,会有稍许的减少。意即在图1的结构中高速缓存要比图2的结构具些微较高的命中率。然而,图2的结构却比图1的结构在能量消耗上有显著的减少;因此,对于许多在耗能需极小的应用上,如靠电池来操作的装置或可携式电子装置,此种结构成为所需。此外,在图2的高速缓存结构中,因命中率稍许的降低而牺牲其些许的效能,实际上经常为电子装置的使用者所忽略,但却能因为其能量消耗显著的降低使电池的使用时间延长而明显地受益。
[0092] 如上所述,本发明并未受限于图2的结构,举例来说,只要符合本发明的范围及精神,即使不同的快取区块容量,不同的快取区块数目和不同的关联程度,均可运用显而易知的方式对其做修改,即可应用本发明。本领域技术的技术者也可以做出其它符合本发明的范围及精神的改良。参考图4所示,其为一在容量及结构(就关于快取区块而言)类似于图2的高速缓存的方块图并说明了本发明的另一实施例。在图4中,相同的标号应用于类似的组件中。因此,在图2中已描述过的组件结构及操作方式将不在此赘述,以下将只专注于讨论其间的差异。
[0093] 明显地,图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的结构在任何特定时间,只有一快取区块在动作模式下来操作,因此允许其输出在电性上彼此连接,因而减少比较逻辑单元的数目。
[0094] 比较逻辑单元232比较在每一信号路径222、224、226及228上的标签(及有效状态)值及地址总线140的最高有效位群。假如对于一有效标签发生吻合情形,则比较逻辑单元232显示一命中并且将对应的数据置于高速缓存的输出252上。
[0095] 图5为根据本发明一实施例的高速缓存最上层功能操作方法的流程图。依照此实施例,此高速缓存收到一向高速缓存进行存取数据的要求(其中包含一地址,意即一数据读取指令)(步骤302),则地址的一部分直接映像来选择快取区块其中之一,每一快取区块储存相关联的数据集合(步骤304)。此直接映像的(被选择到的)快取区块能够在一动作、正常功率模式下操作。然而,其余未被选择到的快取区块则被置于一闲置、低功率的操作模式(步骤306)。如上所述,被选择到的快取区块处理输入至其本身的地址位,并且输出对应至其输入地址的每一内部数据组所对应的数据、标签及状态信息。假设在此快取区块中,有n(n为一整数)组数据,则此快取区块输出n组对应的数据、标签及状态信息于n个输出上。
[0096] 随后此方法将此直接映像的快取区块的n个输出当做一n路集合关系型高速存取的功能(步骤308)来处理。换句话说,此高速缓存会比较选择到的快取区块的每一有效输出的标签值,以决定这些标签与输入至此高速缓存的地址的一部分(意即,最高有效位群)是否相吻合(步骤310)。若是吻合时,则一高速缓存“命中”确实发生,则来自此命中标签的数据组所对应的数据由此高速缓存来输出(步骤312)。然而,若无命中发生,则所搜寻地址的数据转由主存储器中来提取(步骤314)。
[0097] 以上所述仅为本发明的具体实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。