一种高速缓存及从高速缓存读取数据的方法与运算逻辑的制作方法

文档序号:6382778阅读:193来源:国知局
专利名称:一种高速缓存及从高速缓存读取数据的方法与运算逻辑的制作方法
技术领域
本发明是有关于一种高速缓存(cache memory),特别是有关于一种从高速缓存读取数据的方法及其运算逻辑。
背景技术
在计算机系统(或是以其它处理器为基础的系统)创新下的驱动力,已经被要求必须具备有更快及更强大的效能。然而,长久以来,影响计算机速度的一个主要瓶颈之一在于从存储器存取数据的速度,即所谓存储器存取时间(memory access time)。微处理器由于拥有相对较快的处理器周期时间(processor cycle time),故经常于存储器存取时,因需利用等待状态(wait state)以克服其相对较慢的存储器存取时间而造成延迟。因此,改进存储器存取时间已成为增进计算机效能的主要研究领域之一。
为了弥补快速处理器周期时间与低速存储器存取时间的差距,于是产生了高速缓存。高速缓存为一非常快速且相当昂贵的小容量零等待状态(zero wait state)的存储器,是用以维持经常由主存储器中存取的数据及程序代码的复本。处理器能够通过操作此种非常快速的存储器,减少存储器在存取时必须增加的等待状态次数。当处理器从存储器中寻找数据并且此数据存在于高速缓存中,则称一快速存取读取命中(read hit),并且由此存储器存取的数据能由高速缓存提供给处理器而不出现等待状态。若此数据不存在于高速缓存中,则称快速存取读取失败(read miss)。在快速存取读取失败时,存储器进而向系统找寻数据,且该数据可由主存储器取得,就如同高速缓存不存在时所做的动作一样。在快速存取读取失败时,由主存储器取得的数据将提供给处理器,并由于此数据在统计上有可能再一次被处理器应用到,因此,此数据亦同时存入高速缓存中。
一有效的高速缓存导致一较高的存取“命中率”(hit rate),其定义为发生在所有存储器存取时,高速缓存存取命中率的百分比。当一高速缓存有较高的存取命中率时,则大部分的存储器存取以零等待状态来完成。一较高的高速缓存存取命中率的净效应为较少发生的存储器存取失败的等待状态被大量具零等待状态的存储器存取命中所平均,导致每次存取平均近乎为零等待状态。
众所周知,现今有很多不同种类的高速缓存结构,一般而言,这些结构依高速缓存的应用而有所不同,但是大致上,高速缓存的内部存储器结构被划分为一数据区(data area)及一标签区(tag area)。而维持在高速缓存中的数据位址被纪录于高速缓存中的标签记忆区内,顺序的数据位元或顺序的字符数据一般维持于高速缓存的数据存储器区中的单一快取线(single cache line)内,而一位址或标签被同样地维持在高速缓存中相关的标签存储器区内。当经由处理器或是其它元件存取数据时,位址(实质上或虚拟的)会被输入到高速缓存中,且跟标签存储器区内的位址做比较。如上所述,假若最近的(currently)搜寻位址存在于标签存储器区内,则会产生“命中”(hit)的情形,且会从数据存储器区中取得相关的数据。
如上述介绍,图1所示为已知高速缓存10内元件的方块图。如前述,高速缓存为一高速的存储器,其可加速主存储器的存取速度,更是当具有良好设计以使其具有较高的“命中率”。如所了解的,一位址总线20输入至高速缓存时,假如对应到位址总线20上所输入值的有效数据(valid data)被维持在高速缓存中,则该笔数据会输出至高速缓存的输出38。位址总线20耦合至数据存储器12,且此位址总线的最低有效位元(least significant bits)被使用来维持在数据存储器12中的存取数据。当数据被写入高速缓存中的数据存储器时,位址总线最高的有效位元则被写入到高速缓存的标签存储器14的相对位置(例如相对于被使用来存取数据的最低有效位元)。
从数据存储器12读取的数据被维持于一锁存器13或是其它电路元件中,直至再从数据存储器12执行另一个读取的动作(此时在锁存器中的数据被重写)。同样地,从高速缓存10中的标签存储器14取得的位址数据,维持于一锁存器15或是其它合适的电路元件中,直至从标签存储器14取得下一个标签信息。而比较逻辑35提供一信息的比较,比较的数据来源由位于位址总线20上的现行位址与标签存储器14中所取得的标签信息。假如此比较指出现行请求(currently-requested)数据是位于标签存储器14内,则一比较逻辑35的输出36可能会被引导到逻辑运算40中,以产生一数据存储器12的读选通(readstrobe)42,其中,此逻辑运算40在图1中可视为「已知读选通逻辑运算」(Conventional RS Logic)。而一缓存器或是其它电路元件50可能被用来提供保存从锁存器13所输出的数据。其中锁存器13可以是一个分离的电路元件,或是依高速缓存10的数据存储器12的特殊设计来整合成存储器12的一部份。
在操作过程中,高速缓存10中不同的电路及逻辑单元均以常态来操作。众所周知,以电池操作的处理器驱动可携式电子装置(如掌上型计算机、无线电话、MP3播放器等)不断地被广泛地应用,因此,如何降低这些装置的耗能以延长电池的使用时间亦成为所需。当高速缓存容量扩大,需要操作的功率亦随之增加,因此,如何改进高速缓存的结构及操作方法,以达到降低其操作功率为当今重要之课题。

发明内容
鉴于上述发明背景中,传统的高速缓存所产生的诸多缺点,本发明的主要目的在于提出一种新的高速缓存结构及其读取数据的方法,以降低其操作时的耗能。在一实施例中,一高速缓存,包含一数据存储器及用来禁止请求数据的读取,当所请求的数据之前已从数据存储器中读取,且可从高速缓存中其它的电路元件中读取目前可用的数据。
在另一实施例中,提供从一高速缓存读取请求的数据的方法。此对应到第一个数据请求的方法,其利用第一次的请求,从数据存储器读取比请求更多的字符数据,且将所读取的数据暂存在一电路元件中。然后,对应到第二个数据请求,其为顺序的数据请求,此数据请求的方法禁止了数据存储器的主动运算,且从电路元件读取请求的数据。


图1为已知高速缓存10的内部元件的方块图;图2为与图1描述相似的一高速缓存的电路元件方块图,其为了强调本发明一实施例的元件;图3根据本发明的一实施例的数据存储器产生读选通的示意图;图4为本发明的另一实施例且与图2相似的方块图;图5为根据本发明的一实施例的高速缓存最上层功能操作流程图;图6为根据本发明的另一实施例的高速缓存最上层功能操作流程图;图7为根据本发明的再一实施例的高速缓存最上层功能操作流程图。
图中符号说明10高速缓存12数据存储器13锁存器14标签存储器15锁存器20位址总线35比较逻辑
36输出38输出40已知读选通逻辑运算42读选通信号50电路元件100 高速缓存112 数据存储器113 锁存器126 输出140 读选通控制逻辑141 读选通信号142 或门143 禁止信号144 与门146 或门160 多路复用器161 多路复用器选择线170 判断顺序逻辑运算171 顺序信号212 数据存储器213 数据维持元件240 禁止存取逻辑运算302 数据请求步骤304 判定请求数据步骤是否为有顺序的306 由数据存储器读取数据308 锁存或维持已读取的数据310 由锁存器或其它电路元件读取维持数据312 判定位址线数值是否为0314 禁止数据存储器执行现行数据读取402 读取请求步骤
404 判定目前标签是否与先前标签相同406 由数据存储器读取数据408 锁存或维持已读取的数据410 由锁存器或其它电路元件读取维持数据412 禁止数据存储器执行现行数据读取502 读取请求步骤504 判定数据是否于其它元件中506 由数据存储器读取数据508 锁存或维持已读取的数据510 由锁存器读取数据512 禁止数据存储器执行现行数据读取514 由其它的元件读取数据具体实施方式
上述已将本发明的内容作一摘要说明,以下将结合附图对本发明做更进一步的详细说明。本发明所沿用的现有技术,在此仅作重点式的引用,以助本发明的阐述。而且下述内容中对本发明的相关附图及其说明并不应受限于本实施例,反而其意图在涵盖有关本发明精神及在附属专利申请范围中所定义的发明范围中所有可替代、修正及类似的案件。
根据已知技术所述,在此描述的高速缓存及其取得数据的方法并不局限在实施例中的阐述。更进一步说,在本发明中有关于不同实施例的描述,其可实施于不同种类的高速缓存的结构及其系统,例如本发明可利用一相当普遍的高速缓存结构来描述之。本发明的优点易于应用到具有分离数据、指令快取及统一快取(unified caches)的高速缓存,而本发明的概念亦同样地可应用到同步以及异步高速缓存结构,再者,本发明的意旨可应用于具有直接映像(direct-mapped)结构、全关联(fully-associative)结构或部分关联(set-associative)结构的高速缓存上。另外,如同在已知技术中所熟知的,且描述于2003年7月18日所提出申请的一台湾发明专利申请案件(案件号码为92119642),存储器区(数据及标签两者)通常被划分成较小的快取区块以利于容易执行,而本发明在此所描述的内容,可完全地应用到此种形式的高速缓存的结构上。在此类的结构中,发明概念可应用到每一快取区块的每一数据存储器区。其它有关于本发明的延伸及其应用,于下述的讨论中将趋于明了。
如图2所示,其为依照本发明的一实施例所建构的高速缓存100的内部结构方块图。在描述此图的详细结构或其它实施例之前,需强调是,此处所提供的图并不应限制本发明的范围及其精神所在。实际上,在图2中的实施例的说明是选择用来和图1的现有技术做比较,再者,在图2中所描述的不同的逻辑区块的操作及内部结构为现有技术,因此,这些元件的内部结构及操作方式无须在此赘述。
在图2中,一高速缓存100具有一数据存储器112及一标签存储器14,为了可以容易了解图2中具体实施例的发明概念,因此,以图1中的现有技术的高速缓存10的元件来作为标定高速缓存100中元件的参考数字,其中,不同之处在于图2中为读选通控制逻辑(read strobecontrol logic)140,而锁存器113及增加的多路复用器160亦被加入在此图2的实施例中。因此,如上所述,本发明实际上是利用有顺序的(sequential)有效存储器存取编号,利用此特性,可减少存取数据至数据存储器112中,因此,可节省使用数据存储器区112的存取,并进而节省整体高速缓存100的消耗电力。
在图2实施例的描述中,锁存器113可被设计为包含从数据存储器112读取的多字符数据,锁存器113合适的大小可为二字符、四字符或八字符。在一应用中,高速缓存100的数据存储器112包含复数个快取线,而每一快取线为八个字符数据。因此,在此实施例中,锁存器113较佳为八个字符数据或少于八个字符数据,再者,为了较容易实施及设计,此锁存器的大小为二的次方,其中,可接受二个字符数据、四个字符数据及八个字符数据。此外,对于锁存器113的每一字符数据提供一输出,其中,于图2的实施例中以四个输出126给予说明,应该可以理解的,每一输出的126宽度(width)为32位或一字符数据。这些输出直接到达一多路复用器160或其它适合的电路元件中,以选择出被传送到高速缓存100的输出38,此亦即由多路复用器160至输出38,控制多路复用器选择线161来选择性地挑选出从锁存器113中所需要的输出126。
在图2中,一新的元件为读选通控制逻辑140,当所需要的数据已存在于锁存器113中时,此逻辑140会禁止正常的读选通信号141(read strobe signal)的选通(strobe)。通过禁止正常的选通以及从数据存储器读取数据,会禁止在数据存储器1 12内不同的门元件(gate element)的切换,其亦可大大节省电能的消耗(更是应用在互补式金属氧化物半导体(CMOS)时)。因此,本发明实施例的概念之一为了数据存储器112产生读选通信号141。
参阅图3,为读选通控制逻辑140的一实施例的方块图。为了便于阐述,此控制逻辑的一元件为图1中,已知高速缓存可产生读选通信号的逻辑运算40。在此更加以阐述实施例的上下文中,假设读选通信号141为一低态有效信号(active low signal),则一或门142(OR gate)可利用在已知读选通逻辑运算40所产生的读选通41来门控(gate)一禁止信号143,因此,当禁止信号143为一逻辑运算1,则读选通信号141为一逻辑运算1,故而禁止(inhibit)了数据存储器112的选通。假如所找寻的数据已存在于锁存器中,则用以产生读选通信号141的逻辑运算的其余元件会禁止读选通。而判别是利用以下的区分(1)所找寻的数据是顺序地位于与先前取得(previously-retrieved)数据相关的位置;及(2)目前的搜寻数据不在锁存器113的第一位置(first location)。
逻辑运算170可提供指出现行请求数据(currently-requested data)是否顺序地位于与先前取得的数据(previously-retrieved date)相关的位置。假如高速缓存被设计成一处理器电路的一部份(例如机载(onboard)),则在处理器中的其它信号或电路(假如有恰当的设计)会自动地产生信号171,例如为了一指令高速缓存(instruction cache),逻辑运算结合程序计数器(program counter)可立即地产生此信号171;亦或逻辑运算可由一管线处理机(processor pipeline)的执行部分内提供,以产生信号171;亦或逻辑运算170可被设计成高速缓存的一部分。在实施例中,此逻辑运算可纯粹地与一存在锁存器15中的标签及输入到位址总线20内目前的标签做比较,此存在锁存器中的标签来自于先前的数据存取,而此输入到位址总线20内的标签与辨别目前的请求数据有关。而此用来执行比较的电路,其设计及开发如现有技术中所述,并不需在此赘述。
对于图2及图3的实施例,假如信号171表示数据存取是有顺序的,则确定现行请求数据不会是锁存器113的第一字符数据。此判定可容易地用二个最低有效位元(例如A1和A0)都是逻辑运算0来确认,因此,一或门146可用来比较两个最低有效位元(A1和A0)。假如此两个位址都是或其中一个是为一逻辑运算1,则或门146的输出为1。此数值可由一与门144(AND gate)与信号171作比较,其信号171可指出现行需求位址是否顺序地位于与先前取得的数据相关的位置。假如信号171为一逻辑运算1,且从或门146的输出为一逻辑运算1,则读选通141将会被禁止。另一方面,假如信号输入到线171为一逻辑运算0(表示现行位址数据并不是为顺序的),或是假如现行位址数据存在于锁存器113的第一位置中,则读选通信号141将会单纯是从已知读选通逻辑运算40中输出的读选通41。
更进一步的叙述,假设一具有八字符快取线的数据存储器112和一锁存输出113被设计成可维持从数据存储器112读取的四个字符。假如请求的第一字符数据相当于在快取线上的第一字符数据,则(从系统存储器填充快取线后)读选通控制逻辑140不会禁止已知的读选通信号(因为不管请求数据是否为有顺序的,请求数据的二个最低有效位元为逻辑运算0),因此,快取线上的第一组四字符将被读取到锁存器113中,而控制多路复用器160来引导第一字符到输出38。假如接下来的数据请求为在相同快取线上的第二字符数据,则逻辑运算170会指示此请求为一有顺序的存取,且最低有效位元的值为1。因此,逻辑140会产生禁止读选通141的效果。此可防止数据存储器112因需要存取及读取数据所需消耗的电力,因此,亦可减少在利用数据存储器读取数据所消耗的其它电力。另外,多路复用器160可被选择用来传递第二字符数据到输出38。
以有些许差异的例子来做更进一步的叙述。假如一第一次的数据请求为了一存在于快取线第二位置的一字符数据(假设此高速缓存读取来自于偶数快取线边界(cache line boundary)的系统存储器的数据),则读选通信号141将不会被禁止。虽然最低有效位元的位址不会指出数据存在于锁存器113的第一位置,但用来产生顺序信号171的逻辑运算170为一逻辑0,藉以指出数据存取并不是有顺序地位于有关的先前检索数据。
图3为利用位址总线的二个最低有效位元(A1和A0),来设计为可维持四个字符的一锁存器113的实施例,然而,其锁存器很容易扩充成不同大小的锁存器。例如,假如锁存器只能维持二个字符数据,则只需要位址线A0,且不需要或门146(位址线A0会被直接输入至与门144)。同样地,假如锁存器维持八个字符数据,则会使用到位址线A2、A1及A0(全部输入到一个三输入(three-input)或门)。
参阅图4,其与图2相似,但略微有些不同的本发明的另一实施例。根据前述,本发明的一主要概念的优点为可以识别存在于一锁存器中,或是在高速缓存内其它电路元件内的目前请求数据,因此,数据不需被分离,且可从高速缓存的数据存储器单独地读取数据。由于数据存取具有顺序的性质,通过禁止读取数据存储器中不需要的数据来可有效地节省能源。在图4实施例的描述中,数据存储器212可设计成一锁存器并非为数据存储器的一整合部份。因此,数据维持元件213可被耦合至数据存储器212的输出,在一实施例中,此数据维持元件213可为一锁存器。然而,为了与本发明的精神及其范围一致,此数据维持元件213也可为其它任何不同的元件。
图4亦阐述了用逻辑运算240来禁止数据存储器的存取。此逻辑运算240可与在图2中的逻辑140为相同的工具,然而,在其它实施例中,逻辑运算240可具有不同的形式。例如,图2中所述的逻辑140用来与已知读选通共同产生逻辑运算。应该可以理解的,本发明不是只限定禁止一读选通信号产生的实施例,且包含如实施例中所述的可禁止数据存储器212的主动运算。在一实施例中,提供与数据存储器元件有关的一致能信号(enable signal),其与读选通的输入不同。此图4实施例中的逻辑运算240可产生此信号,此信号被引导到一致能输入(enable input)或是数据存储器212的其它输入,用以禁止数据存储器的正常操作。在此实施例中,已知产生读选通的电路(此图4中未示)可耦合至数据存储器212的读选通输入。
图5为一根据本发明的一实施例的高速缓存最上层功能操作方法的流程图。在第一步骤中,产生一读取请求(步骤302),或是从高速缓存中的数据存储器请求其它的数据。然后,此实施例可决定所请求的数据是否有顺序地位于与先前读取数据相关的位置(步骤304)。假如数据不是有顺序地位于其中,则数据会从高速缓存的数据存储器中取得(步骤306),且被锁存(latched)到一与数据存储器输出耦合的锁存元件中(步骤308),如同在已知高速缓存中所操作的一样。因此,数据可从锁存器中读取(步骤310)且从高速缓存中输出。然而,假如步骤304决定所请求的数据有顺序地位于相关的先前检索数据中,则用此方法可决定位址线的最低位元是否都为逻辑0(步骤312)。假如是,则此步骤会决定数据存在于高速缓存的第一位置内,且继续进行到步骤306。然而,如果最低有效位元不是为逻辑0,则此方法会禁止数据存储器执行一现行数据读取(active data retrieval)(步骤314),且会从一锁存器或其它可能的维持数据元件中直接读取数据(步骤310)。
参阅图6,为根据本发明的另一实施例的高速缓存最上层功能操作方法的流程图。与图5中所述相同,图6的方法起始于向数据存储器提出一读取请求(步骤402),因此,此方法可决定目前标签(current tag)是否与先前标签相同,假如不是,则数据必须从一不同的快取线中读取,亦不能存于锁存器中。因此,假如步骤404的答案为“否”,则如图5中所描述的,数据从数据存储器中读取(步骤406)及锁存(步骤408),因此,数据可从锁存器中读取(步骤410)。假如目前请求数据的标签与先前请求数据的标签一致,则表示目前请求数据存在于锁存器中,为了让此判定维持正确,可以理解地,图6实施例的锁存器与数据存储器区的快取线为相同的大小。因此,假如步骤404的判断结果为“是”,则此方法可禁止数据存储器执行现行数据读取(步骤412),且数据可从锁存器或其它可能的维持元件中读取(步骤410)。
参阅图7,其为根据本发明的再一实施例的高速缓存最上层功能操作方法的流程图。如同图5及图6中所描述的,图7的方法起始于向高速缓存内数据存储器提出一读取请求(步骤502)。图7中的方法适用不同于图2及图4中所述的高速缓存结构,更要说明的是,此结构不具有锁存器或其它耦合至数据存储器输出的维持元件,然而,此结构仍可从数据存储器读取数据且维持数据在其它的电路元件中,直至下一个快取线被读取。在图7的实施例中,当判断高速缓存其它元件中是否存有现行请求数据时,会产生一判定(determination)(步骤504),关于「其它的」元件,步骤504参照除了数据存储器以外的一元件,因此,此「其它的」元件可为一锁存器(与图2相同)、一数据维持电路元件(与图4相同),或是其它在高速缓存中的元件。假如数据不存在于其它的元件中时,则数据会从数据存储器中读取(步骤506),且利用其它的电路元件来锁存(或维持)(步骤508),如在上述图5及图6中所描述的一般,因此,维持的数据可被读取(步骤510)。然而,假如步骤504判断在高速缓存其它元件中存有现行请求数据时,则数据存储器将会禁止正常的操作(步骤512),且会直接从最近可用的「其它」元件读取现行请求数据(步骤514)。
以上所述仅为本发明的具体实施例而已,并非用以限定本发明的申请专利范围;凡其它为脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。
权利要求
1.一种高速缓存,其包含一数据存储器;及一运算逻辑,用来禁止从该数据存储器中读取一请求数据,其若是该请求数据先前已从该数据存储器中读取,且可从高速缓存其它的电路元件中读取。
2.如权利要求1所述的高速缓存,其中该其它的电路元件为耦合至该数据存储器的一输出的一锁存器。
3.如权利要求1所述的高速缓存,其中该运算逻辑用来产生一禁止该数据存储器的一读选通的输出。
4.如权利要求1所述的高速缓存,其中该运算逻辑用来鉴定该请求数据的一个或多个较低位址位元,且依据该其它的电路元件的大小与该一个或多个较低位址位元所包含的一位址来决定该请求数据是否可读取于该其它的电路元件。
5.如权利要求2所述的高速缓存,更包含一判断逻辑对应于一数据的请求,该判断逻辑用来判定现行请求数据是否存在于该锁存器中。
6.一种高速缓存,具有一数据存储器来储存数据及一锁存器来锁存从该数据存储器读取的数据,从该高速缓存读取请求数据的方法包含从一先前读取的数据,判断所请求的数据目前是否储存于该锁存器中;禁止该数据存储器读取数据,其对应于所请求数据目前存在于该锁存器中的判定;从该数据存储器读取数据至该锁存器中,其对应于所请求数据目前不存在于该锁存器中的判定;及从该锁存器中读取数据。
7.如权利要求6所述的从该高速缓存读取请求数据的方法,其中该判断步骤包含判别所请求的数据是否有顺序地位于一先前请求的请求数据中。
8.如权利要求7所述的从该高速缓存读取请求数据的方法,其中该判断的步骤更包含判定所请求的数据不存在于该锁存器的一第一边界位置。
9.如权利要求8所述的从该高速缓存读取请求数据的方法,其中判断所请求的数据不存在于该锁存器的该第一边界位置的步骤更包含确定该数据存储器的最低有效位元不为零,假如该锁存器维持两个字符数据;及确定该数据存储器的两个最低有效位元都不为零,假如该锁存器维持四个字符数据。
10.一种从一高速缓存读取请求数据的方法,其包含回应一第一数据请求,其利用该第一数据请求从一数据存储器读取比请求数据更多的字符数据;暂存该请求数据在一电路元件中;及回应一第二数据请求,其为顺序的数据请求,禁止该数据存储器的主动运算及从该电路元件中读取数据。
11.如权利要求10所述的从该高速缓存读取请求数据的方法,其中更包含判别该顺序数据请求的第二数据请求目前是否存在于该电路元件中。
12.如权利要求10所述的从该高速缓存读取请求数据的方法,其中该暂存该请求数据在该电路元件中的步骤更包含锁存读取数据在一锁存元件中。
13.如权利要求10所述的从该高速缓存读取请求数据的方法,其中该从数据存储器读取数据的步骤更包含读取至少两个字符数据,当该第一数据请求只请求一字符数据时。
全文摘要
本发明提供一种高速缓存及从高速缓存读取数据的方法及其运算逻辑,此高速缓存包括与一数据存储器输出结合的锁存器,且数据存储器控制锁存数据的输出,此锁存器亦包括一判断逻辑。而此判断逻辑可判断出目前的请求数据是否存在于锁存逻辑运算中。最后,此锁存器包括一可用来禁止数据存储器主动运算的禁止运算逻辑,其回应上述的判断逻辑运算。此外,本发明亦提供相对应的从一高速缓存读取数据的方法,以降低其操作时的耗能。
文档编号G06F12/08GK1521636SQ20041000501
公开日2004年8月18日 申请日期2004年2月12日 优先权日2003年5月2日
发明者查理斯·F·雪洛, 查理斯 F 雪洛 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1