CN1306419C - 一种高速缓存及从高速缓存读取数据的方法 - Google Patents
一种高速缓存及从高速缓存读取数据的方法 Download PDFInfo
- Publication number
- CN1306419C CN1306419C CNB200410005012XA CN200410005012A CN1306419C CN 1306419 C CN1306419 C CN 1306419C CN B200410005012X A CNB200410005012X A CN B200410005012XA CN 200410005012 A CN200410005012 A CN 200410005012A CN 1306419 C CN1306419 C CN 1306419C
- Authority
- CN
- China
- Prior art keywords
- data
- read
- latch
- speed cache
- carrier store
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract 2
- 241001269238 Data Species 0.000 claims description 11
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 3
- 230000004069 differentiation Effects 0.000 claims description 2
- 230000002123 temporal effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- IUVCFHHAEHNCFT-INIZCTEOSA-N 2-[(1s)-1-[4-amino-3-(3-fluoro-4-propan-2-yloxyphenyl)pyrazolo[3,4-d]pyrimidin-1-yl]ethyl]-6-fluoro-3-(3-fluorophenyl)chromen-4-one Chemical compound C1=C(F)C(OC(C)C)=CC=C1C(C1=C(N)N=CN=C11)=NN1[C@@H](C)C1=C(C=2C=C(F)C=CC=2)C(=O)C2=CC(F)=CC=C2O1 IUVCFHHAEHNCFT-INIZCTEOSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
本发明提出一种高速缓存及其从高速缓存读取数据的方法,以降低传统高速缓存操作时的耗能。本发明提出的高速缓存的组成包含以下元件:一数据存储器;一数据维持元件,其连接至数据存储器的一输出端以维持数据存储器输出的数据;一多路复用器,其连接数据维持元件以选择该数据存储器输出的数据;一判断逻辑电路,用以判断所请求的数据目前是否在该数据维持元件之中;以及一禁止逻辑电路,当判断逻辑电路判断所请求的数据储存于数据维持元件之中时,用以禁止数据存储器的主动运作。此外,本发明同时亦提供一种相对应的高速缓存的数据读取方法,以降低其操作时的耗能。
Description
技术领域
本发明是有关于一种高速缓存(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 判定位址线数值是否为0
314 禁止数据存储器执行现行数据读取
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)。通过禁止正常的选通以及从数据存储器读取数据,会禁止在数据存储器112内不同的门元件(gate element)的切换,其亦可大大节省电能的消耗(更是应用在互补式金属氧化物半导体(CMOS)时)。因此,根据上述,本发明实施例的特征之一,即在于产生读选通信号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)。
以上所述仅为本发明的具体实施例而已,并非用以限定本发明的申请专利范围;凡其它为脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。
Claims (12)
1.一种高速缓存,其特征是,包含:
一数据存储器;
一数据维持元件,连接至该数据存储器之一的输出以维持该数据存储器输出的数据;
一多路复用器,耦合到该数据维持元件,用以选择该数据存储器输出的数据;
一判断逻辑电路,用以响应一数据请求,该判断电路判断一请求数据目前是否在该数据维持元件之中;及
一禁止逻辑电路,用以响应该判断逻辑电路,当该判断逻辑电路判断该请求数据在该数据维持元件之中时,该禁止逻辑电路禁止该数据存储器的主动运作。
2.如权利要求1所述的高速缓存,其中该数据维持元件为一锁存器。
3.如权利要求1所述的高速缓存,其中该判断逻辑电路更包含一比较逻辑电路,以比较该请求数据的地址标签与目前现行的数据请求的地址标签。
4.如权利要求1所述的高速缓存,其中该判断逻辑电路进一步包含一判断顺序逻辑电路,以判断该请求数据是否顺序地位于一先前取得的数据的位置上。
5.如权利要求1所述的高速缓存,其中该禁止逻辑电路产生一读写通信号或一致能信号至该数据存储器。
6.一种从高速缓存读取请求数据的方法,其中该高速缓存具有一数据存储器以储存数据及一锁存器以锁存从该数据存储器读取的数据,该从高速缓存读取请求数据的方法包含:
从一先前读取的数据判断该请求数据目前是否储存于该锁存器中;
在判断该请求数据目前储存在该锁存器中时,禁止该数据存储器读取数据;
在判断该请求数据目前没有储存在该锁存器中时,从该数据存储器读取数据至该锁存器中;及
从该锁存器中读取数据。
7.如权利要求6所述的从该高速缓存读取请求数据的方法,其中该判断步骤包含判别所请求的数据是否有顺序地位于一先前请求的请求数据中。
8.如权利要求7所述的从该高速缓存读取请求数据的方法,其中该判断的步骤更包含判定所请求的数据不存在于该锁存器的一第一边界位置。
9.如权利要求8所述的从该高速缓存读取请求数据的方法,其中判断所请求的数据不存在于该锁存器的该第一边界位置的步骤更包含:
确定该数据存储器的最低有效位元不为零,假如该锁存器维持两个字符数据;及
确定该数据存储器的两个最低有效位元都不为零,假如该锁存器维持四个字符数据。
10.一种从一高速缓存读取请求数据的方法,其包含:
从一数据存储器读取比第一数据请求所请求的数据字符更多的数据;暂存该读取的数据在一电路元件中;
接收一第二数据请求,判断该第二数据请求所请求的数据目前是否存在于该电路元件中;
当判断所请求的数据存在于暂存数据的电路元件中时,禁止该数据存储器的主动运算,并从该电路元件中读取数据,以响应在该第一数据请求之后的该第二数据请求。
11.如权利要求10所述的从高速缓存读取请求数据的方法,其中该暂存该读取的数据在该电路元件中的步骤更包含锁存该读取的数据在一锁存元件中。
12.如权利要求10所述的从该高速缓存读取请求数据的方法,其中当该第一数据请求仅请求一字符数据时,该从数据存储器读取数据的步骤至少读取两个字符数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/429,009 | 2003-05-02 | ||
US10/429,009 US20040221117A1 (en) | 2003-05-02 | 2003-05-02 | Logic and method for reading data from cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1521636A CN1521636A (zh) | 2004-08-18 |
CN1306419C true CN1306419C (zh) | 2007-03-21 |
Family
ID=33310523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410005012XA Expired - Lifetime CN1306419C (zh) | 2003-05-02 | 2004-02-12 | 一种高速缓存及从高速缓存读取数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040221117A1 (zh) |
CN (1) | CN1306419C (zh) |
TW (1) | TWI283810B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
JP2006072935A (ja) * | 2004-09-06 | 2006-03-16 | Fujitsu Ltd | 半導体装置及びデータ書き込み制御方法 |
US8624906B2 (en) | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8416251B2 (en) | 2004-11-15 | 2013-04-09 | Nvidia Corporation | Stream processing in a video processor |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
CN100426246C (zh) * | 2005-12-28 | 2008-10-15 | 英业达股份有限公司 | 存储系统的高速缓存的数据的保护方法 |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
TWI411914B (zh) * | 2010-01-26 | 2013-10-11 | Univ Nat Sun Yat Sen | 利用快取記憶體之資料追蹤系統及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN88102647A (zh) * | 1987-05-11 | 1988-12-28 | 美国电话电报公司 | 多用途存贮器 |
JPH07219848A (ja) * | 1994-02-03 | 1995-08-18 | Internatl Business Mach Corp <Ibm> | キャッシュ制御システム |
CN1123933A (zh) * | 1994-05-19 | 1996-06-05 | 国际商业机器公司 | 集成的二级超高速缓冲存储器和带有多路数据端口的存储器控制器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2260631B (en) * | 1991-10-17 | 1995-06-28 | Intel Corp | Microprocessor 2X core design |
US5463585A (en) * | 1993-04-14 | 1995-10-31 | Nec Corporation | Semiconductor device incorporating voltage reduction circuit therein |
US5835934A (en) * | 1993-10-12 | 1998-11-10 | Texas Instruments Incorporated | Method and apparatus of low power cache operation with a tag hit enablement |
JPH08263370A (ja) * | 1995-03-27 | 1996-10-11 | Toshiba Microelectron Corp | キャッシュメモリシステム |
US6480938B2 (en) * | 2000-12-15 | 2002-11-12 | Hewlett-Packard Company | Efficient I-cache structure to support instructions crossing line boundaries |
US6938126B2 (en) * | 2002-04-12 | 2005-08-30 | Intel Corporation | Cache-line reuse-buffer |
US6801980B2 (en) * | 2002-04-25 | 2004-10-05 | International Business Machines Corporation | Destructive-read random access memory system buffered with destructive-read memory cache |
-
2003
- 2003-05-02 US US10/429,009 patent/US20040221117A1/en not_active Abandoned
-
2004
- 2004-02-12 CN CNB200410005012XA patent/CN1306419C/zh not_active Expired - Lifetime
- 2004-02-12 TW TW093103409A patent/TWI283810B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN88102647A (zh) * | 1987-05-11 | 1988-12-28 | 美国电话电报公司 | 多用途存贮器 |
JPH07219848A (ja) * | 1994-02-03 | 1995-08-18 | Internatl Business Mach Corp <Ibm> | キャッシュ制御システム |
CN1120699A (zh) * | 1994-02-03 | 1996-04-17 | 国际商业机器公司 | 高速缓存控制系统 |
CN1123933A (zh) * | 1994-05-19 | 1996-06-05 | 国际商业机器公司 | 集成的二级超高速缓冲存储器和带有多路数据端口的存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
TWI283810B (en) | 2007-07-11 |
CN1521636A (zh) | 2004-08-18 |
US20040221117A1 (en) | 2004-11-04 |
TW200424850A (en) | 2004-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1306419C (zh) | 一种高速缓存及从高速缓存读取数据的方法 | |
CN1154049C (zh) | 双端口管道两级高速缓冲存储器系统 | |
US7395372B2 (en) | Method and system for providing cache set selection which is power optimized | |
US5524220A (en) | Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems | |
US7475192B2 (en) | Cache organization for power optimized memory access | |
JP3817449B2 (ja) | データ処理装置 | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
CN1758214A (zh) | 指令高速缓存和指令翻译后备缓冲器的控制器及控制方法 | |
CN87105300A (zh) | 高速缓冲存储器的目录和控制装置 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
KR20050034127A (ko) | 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩 | |
CN1302393C (zh) | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 | |
CN1397887A (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
JP2000003308A (ja) | オ―バラップしたl1およびl2メモリ・アクセス方法および装置 | |
CN1851677A (zh) | 嵌入式处理器系统及其数据操作方法 | |
CN1726477A (zh) | 用于预取和存储器管理的页描述符 | |
JP2008545199A (ja) | メモリ内の同じページに対する多数の変換ルックアサイド緩衝器へのアクセスの防止 | |
CN1955947A (zh) | 一种高速缓存失效的处理器访存指令处理方法 | |
CN1155893C (zh) | 具有低电耗指令高速缓冲存储器的数据处理器 | |
US8271732B2 (en) | System and method to reduce power consumption by partially disabling cache memory | |
JP4669244B2 (ja) | キャッシュメモリ装置およびメモリ制御方法 | |
US20040024958A1 (en) | High speed DRAM cache architecture | |
CN1514372B (zh) | 低功率高速缓存及其快速存取数据的方法 | |
CN1896971A (zh) | 操作系统辅助磁盘高速缓存系统和方法 | |
JPS63238646A (ja) | マイクロプロセッサ |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070321 |