CN1287296C - 减少快取储存器标签阵列存取动作的系统及其方法 - Google Patents
减少快取储存器标签阵列存取动作的系统及其方法 Download PDFInfo
- Publication number
- CN1287296C CN1287296C CNB2004100348459A CN200410034845A CN1287296C CN 1287296 C CN1287296 C CN 1287296C CN B2004100348459 A CNB2004100348459 A CN B2004100348459A CN 200410034845 A CN200410034845 A CN 200410034845A CN 1287296 C CN1287296 C CN 1287296C
- Authority
- CN
- China
- Prior art keywords
- access request
- cache
- data address
- storage access
- data
- 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
- 230000009471 action Effects 0.000 title claims description 42
- 238000000034 method Methods 0.000 title claims description 26
- 238000003860 storage Methods 0.000 claims abstract description 102
- 230000000052 comparative effect Effects 0.000 claims description 29
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 3
- 230000007423 decrease Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 238000000700 time series analysis 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
-
- 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
技术领域
本发明是有关于计算机快取储存器,特别是关于降低快取储存器电力损耗的系统及其方法。
背景技术
微处理器是一种能够高速执行指令的装置。微处理器必须与一储存器系统相连结,其中,此储存器系统的容量愈大且速度愈快则愈理想;然而,实作上此种设计不太容易实现。目前一般所采用的方法是使用复合式储存器系统(composite memory system),所谓复合式储存器系统是同时具有一容量较小但速度较快的快取储存器(cache memory)以及一容量较大但速度较慢的主储存器(main memory)元件。例如,上述快取储存器的存取时间大约为10奈秒(nanosecond),而上述主储存器的存取时间则大约为100奈秒。
快取储存器为一具有相对较小容量与较快速度的储存系统,其位置可为整合于处理器内、靠近处理器或是位于处理器与主储存器之间;快取储存器所储存的是为可以让处理器快速存取的指令或是资料。快取储存器的执行效能主要决定于欲执行程序在存取所需指令资料时对于指令资料的位置与存取时间的掌控好坏程度。自容量较大但速度较慢的主储存器所传来的资料会自动经由可即时支援的硬件而置入快取储存器中,其传输的单位通常称为“资料线”(界于32与256位元组之间)。
当处理器请求执行一储存器读取操作(memory read operation)时,系统会检查快取储存器内是否存在有所需的资料;若快取储存器内存在有该所需资料,则由快取储存器直接提供该所需资料给处理器;若快取储存器内并无存在该所需资料,则由处理器自主储存器中擭取该所需资料。由上述可知,利用快取储存器储存经常使用的必要资讯可提升处理器执行效率,因快取储存器能够以较快速度将必要资讯传送至处理器。典型的快取储存器系统是利用资料阵列(data array)储存资料,并利用标签阵列(tag array)储存资料的标签位址。
一般来说,一主储存器位址(main memory address)包含一标签区(tagfield)以及一索引区(index field)。其中,上述索引区用以索引储存于一快取标签阵列内的一特定标签位址(tag address)。当存取快取储存器时,系统会读取上述标签位址并与主储存器内的标签区相比较。若此两者相吻合,表示快取储存器中存有所需的资料(此种状况称为快取命中,cache hit),此时系统自快取储存器中读取所需资料并送至处理器。若此两者不吻合,表示快取储存器中并无存在所需的资料(此种状况称为快取失败,cache miss),此时系统会自其他元件如主储存器中撷取所需资料。若一欲执行程序对于所需存取资料的位置具有良好的掌控,则于其执行时大部分的处理器存取动作可由快取储存器支援而完成。此时对处理器来说,平均储存器存取时间接近于快取储存器的存取时间,约为一至二个时脉循环;当处理器无法于快取储存器中找到所需资料时会导致一快取失败惩罚(cache misspenalty),其意义为系统需花费较长的时间自主储存器中撷取资料。
传统具有管线结构的快取系统(pipelined cache)于执行操作时先查阅快取标签并比较储存器位址与标签阵列中的标签位址;接著,当上述比较结果为出现快取命中时则针对适当的资料阵列进行存取。现代电脑系统中的快取储存器于执行操作时若欲循序连续撷取资料则经常会造成多重重复存取同一快取线(cache line)的现象,例如,当处理器撷取一指令时,后续指令经常刚好位于下一个位址中。
因此,能减少标签阵列读取动作并据以降低整体电力损耗的快取储存器存取方法及其系统,是目前产业所追求的目标。
发明内容
本发明的目的是提供一种减少快取储存器标签阵列存取动作的系统及其方法。
本发明提供的减少快取储存器标签阵列存取动作方法包含:
接收一第一储存器存取请求;
搜寻一标签阵列,其中,该搜寻动作包含比较一与该第一储存器存取请求相关的标签位址与该标签阵列内所储存的一标签项目;
记录该比较结果;
当该比较结果为该标签位址与该标签阵列内的标签项目相符合时,存取一第一资料位址,其中,该第一资料位址位于一预定的快取线上,且该预定快取线位于快取储存器内的一资料阵列中;以及
令一第二储存器存取请求继续使用该比较结果以便于省略为回应该第二储存器存取请求所执行的标签阵列搜寻动作,其中,该第二储存器存取请求的存取对象为一第二资料位址,该第二资料位址位于该预定快取线上并循序连续排列于该第一资料位址旁。
其中还包含预测该第二资料位址是否循序连续排列于该第一资料位址旁。
其中还包含预测相对于该第一资料位址,该第二资料位址于该预定快取线上的位置。
其中还包含预测该第二资料位址依是递增或是递减顺序而循序连续排列于该第一资料位址旁。
其中还包含提供一预测讯号予快取储存器。
其中上述令该第二储存器存取请求继续使用该比较结果的动作还包含判断该第一与第二资料位址中何者是指向该预定快取线的起始端。
其中上述令该第二储存器存取请求继续使用该比较结果的动作还包含判断该第一与第二资料位址中何者是指向该预定快取线的末端。
其中上述记录该比较结果的动作还包含利用一正反器储存该比较结果以供该第二储存器存取请求使用。
其中上述记录该比较结果的动作还包含当该第二储存器存取请求是循序连续于该第一储存器存取请求时,利用一多工器产生一输出,其中,该输出用以致能该资料阵列以供该第二储存器存取请求使用。
其中上述第一与第二储存器存取请求所请求者为对该快取储存器执行写入操作。
其中上述第一与第二储存器存取请求所请求者为对该快取储存器执行读取操作。
其中上述比较结果指在该标签阵列内发现快取命中或是快取失败。
其中若该比较结果为在该标签阵列内发现快取失败且该第二资料位址于该预定快取线上是循序连续排列于该第一资料位旁,则忽略该第二储存器存取请求。
本发明提供的减少快取储存器标签阵列存取动作的系统具有一快取储存器,该快取储存器于回应循序连续的快取储存器存取请求时可减少搜寻标签阵列的次数,该快取储存器包含:
至少一个标签阵列;
至少一个与该标签阵列相关的资料阵列;
一标签读取控制逻辑模组以控制标签阵列的搜寻动作;
一与该标签阵列相关的比较器;
一储存模组以于回应一第一储存器存取请求时储存该比较器的比较结果,其中,该第一储存器存取请求的存取对象为一第一资料位址,该第一资料位址位于该资料阵列中的一快取线上;
其中,当回应一第二储存器存取请求,且该第二储存器存取请求的存取对象为循序连续排列于该第一资料位址旁的一第二资料位址时,令该第二储存器存取请求继续使用该比较结果以便于省略为回应该第二储存器存取请求所执行的标签阵列搜寻动作。
其中上述标签读取控制逻辑模组与一处理器相关,其中,该处理器可提供一讯号以指出该第二资料位址是否循序连续排列于该第一资料位址旁。
其中上述讯号还可指出该第二资料位址是依递增或是递减顺序而循序连续排列于该第一资料位址旁。
其中还包含一快取控制器命中/失败控制逻辑模组以指出于回应该第一储存器存取请求时储存于该储存模组中的该比较结果是否亦可用于该第二储存器存取请求。
其中上述快取控制器命中/失败控制逻辑模组还可指出该第一与第二资料位址中何者位于该快取线的起始端。
其中上述快取控制器命中/失败控制逻辑模组还可指出该第一与第二资料位址中何者位于该快取线的末端。
其中上述储存模组包含一正反器以及一多工器。
附图说明
上述本发明的发明特征、优点与实施方式将由以下的附图与具实施方式作进一步加以说明,其中:
图1所示为一具有管线结构的快取储存器次系统的示意图;
图2所示为一支援多重循序连续性储存器存取操作(multiple sequentialmemory accesses)快取储存器的时序比较表;
图3所示为根据本发明的一实施例所建构的改良式快取储存器次系统的示意方块图;以及
图4所示为图3中改良式快取储存器次系统的时序比较表。
具体实施方式
本发明提供了一改良式快取储存器标签阵列存取方法及其系统。本发明利用存取顺序(access sequence)以及方向资讯(direction information)以减少所需的标签阵列读取动作。
参阅图1所示,其为一传统快取储存器次系统(亦可简称为“快取储存器”)100,此快取储存器100具有一标签阵列104与一资料阵列106并与一处理器102合作。应注意的是,图中虽仅示有一个标签阵列与资料阵列,然本发明亦能以多重标签阵列与资料阵列的方式加以施行。图1中其他重要元件包含一快取控制器命中/失败控制逻辑模组(cache controllermiss/hit control logic module)108以及一标签读取控制逻辑模组(tag readcontrol logic module)110。此快取系统另有一比较器112,此比较器112用以产生一讯号以于系统中出现快取命中(hit)时加以指出。上述快取控制器命中/失败控制逻辑模组108与标签读取控制逻辑模组110与上述处理器102以及一系统储存器114互相联系,据以执行所有储存器读取与写入操作。其他于图1中所示的公知元件于本说明书中则并不赘述。
图1中,处理器102会对快取储存器100发出储存器存取请求,此储存器存取请求中指示有位于一特定位址的数个位元以便于在存取快取储存器时做为索引用。当储存器存取请求致能快取储存器100后,快取控制器116(见图)致能上述标签阵列104并执行一标签查阅动作(tag look-up)以比较并检查标签阵列104中是否储存有与上述索引所指示的标签位址相同的标签项目(tag entry)/标签位址。若比较结果发现系统中存在有相符合的,则称此次存取动作为一快取命中(cache hit)。当出现快取命中时,系统会于下一时脉周期中读取上述资料阵列106,且于读取过程中资料阵列106会提供一资料项目(例如,一适当的指令或是资料)并传回处理器102。
若上述比较结果发现系统中并无存在相符合的,则称此次存取动作为一快取失败(cache miss)。当出现快取失败时,上述快取控制器116会执行一快取线填入程序(cacheline fill sequence)(假设此次存取动作所存取的储存器位址区域为可快取的)以便于自主储存器中将所需资料传送至资料阵列106中。
参阅图2所示,其为一快取支援多重背向循序连续读取操作(cachesupporting multiple back-to-back Sequential read access)的时序分析图表。本实施例中是假设所使用的快取储存器大小为一个位元组(byte);此外,本实施例中是令由储存器存取请求所起始的一读取操作所实际使用的位址为核心位址(core address),并分别标示为200-207。如熟习此领域的可了解,为简化讨论的复杂性,本实施例仅取用一个位元组大小的快取储存器作为讨论的对象,然而实际上快取储存器中的每一个资料项目可为任意大小。
本实施例所讨论的情况为:对一快取储存器进行循序连续存取操作且每一个读取请求皆成功找到相对应的快取命中。所谓循序连续(sequential)存取操作是指一目前储存器存取操作程序所撷取到的所需资料项目与一之前储存器存取操作程序所撷取到的另一所需资料项目皆位于同一快取线上。较佳的情况为:前后两个被撷取的所需资料项目位于同一快取线上的相邻位址中(事实上此种情况在一般快取系统读取操作程序中为典型的结果)。由于系统是根据资料项目的所在位址辨认每一个资料项目,因此上述含有前后两个所需资料的两个相邻位址亦可称为循序连续的。此外,由于快取储存器是自处理器接收存取请求以寻找资料,因此亦可称上述前后两个所需资料所分别对应的前后两个储存器存取请求为循序连续的储存器存取请求。
在图2中,本实施例是假设系统中出现分别标号为n至n+7的八个储存器存取请求。如图中所示,由于传统快取系统并无针对前一存取操作程序已成功于资料阵列中找到所需资料的情况作最适化调整,因此每当处理器对系统发出存取请求并启动一时脉间隔(clock period)时,系统会利用一标签致能讯号致能并搜寻标签阵列;接著,则根据搜寻结果决定是否启动一标签命中讯号,其中此标签命中讯号是用以于系统中发现快取命中时加以指出。如前所述,本实施例中是假设上述的八个存取请求皆成功发现快取命中,因此在第一个时脉循环之后上述标签命中讯号是开启的。之后,当系统中出现一资料位址讯号指出已找到各快取命中于资料阵列中所对应的资料位址后,系统自该对应位址撷取资料。接著,如图中的“读取资料传输至处理器”列所示,此快取系统的输出会被输入至处理器中。
继续参阅图2,在时脉间隔1中,处理器发出第一个储存器存取请求(标示为n);在第二个时脉间隔中,标签阵列查阅与上述储存器存取请求n相关的标签位址200并比对此标签位址200与标签阵列中的项目。假设比对结果为发现相符合,则此次存取动作即可视为一快取命中。接著,系统产生一标签命中讯号作为相关资料阵列的致能讯号,据此令系统于后续时脉间隔(亦即图中的时脉间隔3)中读取该资料阵列。此外,处理器并在时脉间隔2中处理(pipeline)一后续储存器存取请求(n+1)。在时脉间隔3中,系统读取上述资料阵列并将所需资料传送回处理器中以回应上述储存器存取请求n,同时,系统会产生对应于储存器存取请求(n+1)的标签命中讯号并处理再另一个后续储存器存取请求(n+2)。若如前所假设,处理器依序发出的所有储存器存取请求皆于快取储存器中找到所对应的快取命中,则于图中所示的时脉间隔4、5、6、7以及8中此快取储存器所执行的动作皆与上述于时脉间隔3中所执行的相同。
如熟悉此领域人员所可了解,位于标签阵列中的各项目是相关于储存于资料阵列中的快取线,其中,每一个快取线上通常含有多个循序连续排列的资料项目。典型快取储存器系统中,位于快取线上的资料项目的个数是四个至八个;为方便解释,在此则以每个快取线包含四个资料项目的情况为例。在每个快取线包含四个资料项目的情况下,储存器位址200-203是位于同一个快取线上,且系统中只有唯一一个标签项目是相关于储存器位址200-203。此时,系统所接收的最初四个储存器存取请求事实上是令系统搜寻同一个标签阵列。因此,若针对储存器位址200的标签阵列搜寻结果能够被暂时保存,则此笔资讯亦可用以表示针对储存器位址201、202以及203的标签阵列搜寻动作所应获得的搜寻结果。如此,则于存取操作时,对于此种循序连续排列的储存器位址不再需要重复针对其中每一个位址进行存取与比较的动作。如上所述,由在存取同一快取线上的四个资料阵列项目(data array entry)时省去其中三个快取标签的读取与比较动作,本发明可将快取储存器所需的电力损耗降低至传统技术的四分之一。
参阅图3所示,其为根据本发明的一实施例所建构的改良式快取决系统(cache sub-system)的示意方块图。系统在进行操作时,首先必须决定所接收的储存器存取请求是否为循序连续;若为是,则可利用图2实施例中所述的方法省去重复搜寻同一标签的动作以达到节省电力损耗的目的。因此,在发出储存器存取请求的同时,处理器会另外发出一循序连续存取讯号(sequential access signal)302以指出目前所发出的储存器存取请求是否循序连续于前次储存器存取请求。上述循序连续存取讯号302会启动一另外整合于快取储存器中的电路以便于利用前次的标签阵列搜寻结果。例如,当循序连续存取讯号302指出目前所发出的储存器存取请求为循序连续时,另一个由处理器所发出的递增/递减讯号303会进一步指出此循序连续储存器存取请求是为递增趋势或是递减趋势,亦即指出目前欲存取的储存器位址是递增或递减于前次所存取的储存器位址。例如,储存器存取请求(n+2)是递增于储存器存取请求(n+1)。另一方面,若目前的储存器存取请求为储存器存取请求(n+2)且后续的储存器存取请求为储存器存取请求(n+1),则此时后续储存器存取请求是递减于目前储存器存取请求。上述两种额外讯号可由处理器102利用其内部逻辑(internal logic)与处理能力(processing power)而产生。
如前所述,为避免因回应循序连续的储存器存取请求而重复多重执行标签阵列搜寻工作,除上述程序外,本发明另一个必需动作为将第一个标签阵列的搜寻结果储存起来或是传予后续存取工作使用。因此,于快取系统中必须加入一储存机制以便于储存标签搜寻结果。如图3所示,本实施例利用一多工器(multiplexer)304以及一正反器(flip-flop)306储存并致能上述标签命中讯号(tag hit signal),据以启动上述快取资料致能讯号以读取所欲资料阵列,并储存该讯号以供于下一时脉间隔中所执行的工作使用。本实施例中,上述多工器与正反器的组合是以“标签命中储存逻辑模组(taghit storage logic module)”307称之。
由于在资料阵列中,资料项目是由快取线的形式而顺序排列,因此在存取时利用位于同一快取线上的首尾两个资料项目作为搜寻的指标是一有效的方式。为实现此种指标方式,图3中的快取控制器命中/失败控制逻辑模组(cache controller miss/hit control logic module)308会指示予图中的标签读取控制逻辑模组(tag read control logic module)三项资讯:(1)上述标签命中储存逻辑模组是否含有一有效资料项目(valid entry);(2)前次存取动作所存取的是否为一快取线的末端资料项目;以及(3)前次存取动作所存取的是否为一快取线的起始端资料项目。前次所存取的资料项目是位于一快取线的起始端或是未端对于后续存取动作的重要性在于后续储存器存取请求只能为“单向”循序连续的。在本发明的另一实施例中,前次所存取的资料项目在一快取线上的精确位置亦可被储存起来以便于之后用以判断有多少潜在的循序连续存取工作;其中,在此所指的循序连续存取工作并不论其所存取的资料项目于该快取线上是递增或是递减于目前所存取的。参阅下列表1以及表2所示,其配合其他相关讯号说明系统中如何产生上述标签致能讯号以及后续的资料致能讯号。在此两列表中,数字1是表示活跃状态;数字0是表示非活跃状态;而符号X则表示无资料可供辨识的停止状态(dormant)。其中,数字1亦可表示递增且数字0亦可表示递减。
表1
储存器存取请求 | 循环连续存取 | 递增/增减 | 有效标签命中储存值 | 快取线末端资料项目存取 | 快取线起始端资料项目存取 | 标签致能讯号 |
0 | X | X | X | X | X | 0 |
1 | 0 | X | X | X | X | 1 |
1 | X | X | 0 | X | X | 1 |
1 | 1 | X | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | X | 0 |
1 | 1 | 1 | 1 | 1 | X | 1 |
1 | 1 | 0 | 1 | X | 0 | 0 |
1 | 1 | 0 | 1 | X | 1 | 1 |
表2
储存器存取请求 | 循环连续存取 | 递增/增减 | 有效标签命中储存值 | 快取线末端资料项目存取 | 快取线起始端资料项目存取 | 标签致能讯号 |
0 | X | X | X | X | X | 0 |
1 | 0 | X | X | X | X | 0 |
1 | X | X | 0 | X | X | 0 |
1 | 1 | X | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | X | 1 |
1 | 1 | 1 | 1 | 1 | X | 0 |
1 | 1 | 0 | 1 | X | 0 | 1 |
1 | 1 | 0 | 1 | X | 1 | 0 |
参阅图4所示,其为图3中所示的快取储存器系统实施例的时序比较表。比较图4与图2,可发现图4较图2多出了循序连续存取讯号、递增/递减讯号、有效标签命中储存值、快取线末端资料项目存取讯号、资料致能选择讯号以及已储存标签命中讯号。
图4中,实际所使用的储存器位址是标示为200-207;快取储存器的大小为一个位元组(byte)且每一条单一快取线具有四个资料项目。如于说明图2实施例时所假设的,在此亦假设每一个储存器存取请求皆能够成功发现快取命中,且如图4中的标签致能讯号所示,系统存取每一条快取线时,只有第一个存取请求会执行标签阵列的读取动作。例如,储存器存取请求n以及储存器存取请求(n+4)会读取标签阵列;应注意的是,此两个储存器请求的存取对象为两条不同的快取线。此外,如熟悉此领域人员可了解,本实施例中若令每一个快取线具有八个资料项目,则系统将改为每经过八个循序连续排列的储存器存取请求方执行一次标签阵列搜寻动作。
由在存取同一快取线时减少搜寻快取标签阵列的次数,本发明所提供的快取储存器次系统能够大幅降低其于执行存取操作程序时所需的电力损耗。而欲建构本发明则仅需于现有快取系统电路架构中加入少量的额外逻辑元件即可。
此外,应注意的是,上述实施例是假设其所含的快取线具有四个资料项目,然而此数目可依实际应用需要而调整,且数目愈大则本发明所可达成的省电效果将愈明显。
另外,在上述实施例中所讨论的快取储存器系统是为一单向操作(single direct mapped;one-way set associated),然而本发明亦可由多向操作的快取储存器系统而实施。欲实施上述多向操作的快取储存器系统,则需于每一额外方向上加入一多工器-正反器组。
另外,在上述实施例中所讨论的情况是假设于读取操作程序中每一个存取动作皆可发现其所对应的快取命中,然而本发明亦可适用于出现快取失败的情况。当发现快取失败时,系统停止存取该存取中的快取线,直至成功自别处调出所需资料载入该快取线后方继续存取动作。因此,本发明可进一步修改成为亦可处理出现快取失败的情况,其中,上述表1与表2可修改成为表3与表4。欲编译所有用以处理相关讯号的逻辑须提供以下四种资讯:(1)上述标签命中储存逻辑模组中是否含有一有效资料项目;(2)前次存取快取储存器的结果为命中或是失败;(3)前次存取快取储存器时所存取的资料项目是否位于一快取线的末端;以及(4)前次存取快取储存器时所存取的资料项目是否位于一快取线的起始端。参阅表3以及表4所示,配合其他相关讯号说明系统中如何产生上述标签致能讯号以及后续资料致能讯号。为避免困扰并与上述实施例(存取结果皆为发现快取命中)有所区别,在表3中,上述标签命中储存值是以标签储存值取代,且系统中可另外产生一讯号以指出此次存取操作程序的结果为快取命中或是快取失败。此外,上述快取控制器命中/失败控制逻辑模组308的另一任务为当一快取线被填满所需资料后清除上述有效标签储存值。
表3
储存器存取请求 | 循环连续存取 | 递增/增减 | 有效标签储存值 | 快取线末端资料项目存取 | 快取线起始端资料项目存取 | 标签致能讯号 |
0 | X | X | X | X | X | 0 |
1 | 0 | X | X | X | X | 1 |
1 | X | X | 0 | X | X | 1 |
1 | 1 | X | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | X | 0 |
1 | 1 | 1 | 1 | 1 | X | 1 |
1 | 1 | 0 | 1 | X | 0 | 0 |
1 | 1 | 0 | 1 | X | 1 | 1 |
表4
储存器存取请求 | 循序连续存取 | 递增/递减 | 有效标签储存值 | 命中(1)/失败(0) | 快取线末端资料项目存取 | 快取线起始端资料项目存取 | 后续资料致能讯号 |
0 | X | X | X | X | X | X | 0 |
1 | 0 | X | X | X | X | X | 0 |
1 | X | X | 0 | X | X | X | 0 |
1 | 1 | X | 1 | 0 | X | X | 0 |
1 | 1 | X | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | X | 1 |
1 | 1 | 1 | 1 | 1 | 1 | X | 0 |
1 | 1 | 1 | 1 | 1 | X | 0 | 1 |
1 | 1 | 1 | 1 | 1 | X | 1 | 0 |
另外,根据上述有关读取操作的实施方式,熟习此领域人员应了解本发明亦可利用同样的方法应用于写入操作上;亦即,当多个所欲写入的资料位于同一快取线上时,本发明亦可由同样的方式降低快取系统所需的电力损耗;于进行一循序连续程序以将资料填满位于资料阵列中的一快取线的过程中,当在该快取线上找到第一个资料位址后即可停止搜寻标签阵列(以找出其他资料项目位置)的动作。
显然地,根据以上实施例中的描述,本发明可能有许多修正与差异,因此需要在其附加的权利要求范围内加以理解,除了上述详细描述外,本发明还可以广泛地在其他的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明申请专利范围,凡其他未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的申请专利范围内。
Claims (18)
1.一由在进行循序连续存取操作时省略不必要的标签阵列搜寻动作以减少快取储存器的电力损耗的方法,该方法包含:
接收一第一储存器存取请求;
搜寻一标签阵列,其中,该搜寻动作包含比较一与该第一储存器存取请求相关的标签位址与该标签阵列内所储存的一标签项目;
记录该比较结果;
当该比较结果为该标签位址与该标签阵列内的标签项目相符合时,存取一第一资料位址,其中,该第一资料位址位于一预定的快取线上,且该预定快取线位于快取储存器内的一资料阵列中;以及
令一第二储存器存取请求继续使用该比较结果以便于省略为回应该第二储存器存取请求所执行的标签阵列搜寻动作,其中,该第二储存器存取请求的存取对象为一第二资料位址,该第二资料位址位于该预定快取线上并循序连续排列于该第一资料位址旁。
2.如权利要求1所述的方法,其特征在于,还包含预测该第二资料位址是否循序连续排列于该第一资料位址旁。
3.如权利要求2所述的方法,其特征在于,还包含预测相对于该第一资料位址,该第二资料位址于该预定快取线上的位置。
4.如权利要求3所述的方法,其特征在于,还包含预测该第二资料位址是依递增或是递减顺序而循序连续排列于该第一资料位址旁。
5.如权利要求2所述的方法,其特征在于,还包含提供一预测讯号予快取储存器。
6.如权利要求1所述的方法,其特征在于,其中上述令该第二储存器存取请求继续使用该比较结果的动作还包含:判断该第一资料位址是否指向该预定快取线的起始端;以及判断该第二资料位址是否指向该预定快取线的起始端。
7.如权利要求1所述的方法,其特征在于,其中上述令该第二储存器存取请求继续使用该比较结果的动作还包含:判断该第一资料位址是否指向该预定快取线的末端;以及判断该第二资料位址是否指向该预定快取线的末端。
8.如权利要求1所述的方法,其特征在于,其中上述记录该比较结果的动作还包含利用一正反器储存该比较结果以供该第二储存器存取请求使用。
9.如权利要求8所述的方法,其特征在于,其中上述记录该比较结果的动作还包含当该第二储存器存取请求是循序连续于该第一储存器存取请求时,利用一多工器产生一输出,其中,该输出用以致能该资料阵列以供该第二储存器存取请求使用。
10.如权利要求1所述的方法,其特征在于,其中上述第一与第二储存器存取请求所请求者为该快取储存器执行写入操作。
11.如权利要求1所述的方法,其特征在于,其中上述第一与第二储存器存取请求所请求者为该快取储存器执行读取操作。
12.如权利要求1所述的方法,其特征在于,其中上述比较结果指在该标签阵列内发现快取命中或是快取失败。
13.如权利要求1所述的方法,其特征在于,其中若该比较结果为在该标签阵列内发现快取失败且该第二资料位址于该预定快取线上是循序连续排列于该第一资料位旁,则忽略该第二储存器存取请求。
14.一快取储存器,该快取储存器于回应循序连续的快取储存器存取请求时可减少搜寻标签阵列的次数,该快取储存器包含:
至少一个标签阵列;
至少一个与该标签阵列相关的资料阵列;
一标签读取控制逻辑模组以控制标签阵列的搜寻动作;
一与该标签阵列相关的比较器;
一储存模组以于回应一第一储存器存取请求时储存该比较器的比较结果,其中,该第一储存器存取请求的存取对象为一第一资料位址,该第一资料位址位于该资料阵列中的一快取线上;
其中,当回应一第二储存器存取请求,且该第二储存器存取请求的存取对象为循序连续排列于该第一资料位址旁的一第二资料位址时,令该第二储存器存取请求继续使用该比较结果以便于省略为回应该第二储存器存取请求所执行的标签阵列搜寻动作。
15.如权利要求14所述的快取储存器,其特征在于,其中上述标签读取控制逻辑模组与一处理器相关,其中,该处理器可提供一讯号以指出该第二资料位址是否循序连续排列于该第一资料位址旁。
16.如权利要求15所述的快取储存器,其特征在于,其中上述讯号还可指出该第二资料位址是依递增或是递减顺序而循序连续排列于该第一资料位址旁。
17.如权利要求14所述的快取储存器,其特征在于,还包含一快取控制器命中/失败控制逻辑模组以指出于响应该第一储存器存取请求时储存于该储存模组中的该比较结果是否亦可用于该第二储存器存取请求,该快取控制器命中/失败控制逻辑模组还可指出该第一资料位址是否位于该快取线的起始端与末端以及该第二资料位址是否位于该快取线的起始端与末端。
18.如权利要求14所述的快取储存器,其特征在于,其中上述储存模组包含一正反器以及一多工器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/447,930 US7143243B2 (en) | 2003-05-29 | 2003-05-29 | Tag array access reduction in a cache memory |
US10/447,930 | 2003-05-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1542627A CN1542627A (zh) | 2004-11-03 |
CN1287296C true CN1287296C (zh) | 2006-11-29 |
Family
ID=33451382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100348459A Expired - Lifetime CN1287296C (zh) | 2003-05-29 | 2004-04-15 | 减少快取储存器标签阵列存取动作的系统及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7143243B2 (zh) |
CN (1) | CN1287296C (zh) |
TW (1) | TWI249672B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441136B2 (en) * | 2005-04-04 | 2008-10-21 | Advanced Micro Devices, Inc. | System for predictive processor component suspension and method thereof |
US20070005912A1 (en) * | 2005-07-01 | 2007-01-04 | Ming-Chung Kao | Apparatus and method for reducing tag ram access |
US7571281B1 (en) * | 2006-06-02 | 2009-08-04 | Nvidia Corporation | Look-up filter structures, systems and methods for filtering accesses to a pool of tags for cache memories |
TWI365456B (en) * | 2008-01-07 | 2012-06-01 | Realtek Semiconductor Corp | Apparatus for predicting memory access and method thereof |
US8914580B2 (en) | 2010-08-23 | 2014-12-16 | Apple Inc. | Reducing cache power consumption for sequential accesses |
US8549383B2 (en) | 2011-08-24 | 2013-10-01 | Oracle International Corporation | Cache tag array with hard error proofing |
US10318302B2 (en) | 2016-06-03 | 2019-06-11 | Synopsys, Inc. | Thread switching in microprocessor without full save and restore of register file |
US10558463B2 (en) | 2016-06-03 | 2020-02-11 | Synopsys, Inc. | Communication between threads of multi-thread processor |
US10628320B2 (en) * | 2016-06-03 | 2020-04-21 | Synopsys, Inc. | Modulization of cache structure utilizing independent tag array and data array in microprocessor |
US10613859B2 (en) | 2016-08-18 | 2020-04-07 | Synopsys, Inc. | Triple-pass execution using a retire queue having a functional unit to independently execute long latency instructions and dependent instructions |
US10552158B2 (en) | 2016-08-18 | 2020-02-04 | Synopsys, Inc. | Reorder buffer scoreboard having multiple valid bits to indicate a location of data |
US10324850B2 (en) | 2016-11-11 | 2019-06-18 | Microsoft Technology Licensing, Llc | Serial lookup of tag ways |
US10565121B2 (en) * | 2016-12-16 | 2020-02-18 | Alibaba Group Holding Limited | Method and apparatus for reducing read/write contention to a cache |
US10565122B2 (en) | 2017-05-30 | 2020-02-18 | Microsoft Technology Licensing, Llc | Serial tag lookup with way-prediction |
US10324845B1 (en) * | 2017-07-28 | 2019-06-18 | EMC IP Holding Company LLC | Automatic placement of cache operations for complex in-memory dataflows |
US20230305920A1 (en) * | 2022-03-24 | 2023-09-28 | Cypress Semiconductor Corporation | Apparatus for on demand access and cache encoding of repair data |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980823A (en) * | 1987-06-22 | 1990-12-25 | International Business Machines Corporation | Sequential prefetching with deconfirmation |
US5544342A (en) * | 1993-06-30 | 1996-08-06 | International Business Machines Corporation | System and method for prefetching information in a processing system |
US5761706A (en) * | 1994-11-01 | 1998-06-02 | Cray Research, Inc. | Stream buffers for high-performance computer memory system |
US5692151A (en) * | 1994-11-14 | 1997-11-25 | International Business Machines Corporation | High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address |
US5897654A (en) * | 1995-02-10 | 1999-04-27 | International Business Machines Corporation | Method and system for efficiently fetching from cache during a cache fill operation |
US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
GB9724031D0 (en) * | 1997-11-13 | 1998-01-14 | Advanced Telecommunications Mo | Cache memory operation |
US6282706B1 (en) * | 1998-02-10 | 2001-08-28 | Texas Instruments Incorporated | Cache optimization for programming loops |
US6449694B1 (en) * | 1999-07-27 | 2002-09-10 | Intel Corporation | Low power cache operation through the use of partial tag comparison |
US6453390B1 (en) * | 1999-12-10 | 2002-09-17 | International Business Machines Corporation | Processor cycle time independent pipeline cache and method for pipelining data from a cache |
US6463506B1 (en) * | 2000-04-29 | 2002-10-08 | Hewlett-Packard Company | Arrangement of data within cache lines so that tags are first data received |
KR100351504B1 (ko) * | 2000-06-05 | 2002-09-05 | 삼성전자 주식회사 | 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템 |
JP4073157B2 (ja) * | 2000-08-21 | 2008-04-09 | 富士通株式会社 | タグメモリのアクセス回数を制限したキャッシュシステム |
KR100395756B1 (ko) * | 2001-06-16 | 2003-08-21 | 삼성전자주식회사 | 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서 |
EP1361518B1 (en) * | 2002-05-10 | 2013-08-07 | Texas Instruments Incorporated | Reducing TAG-RAM accesses and accelerating cache operation during cache miss |
-
2003
- 2003-05-29 US US10/447,930 patent/US7143243B2/en not_active Expired - Lifetime
-
2004
- 2004-04-08 TW TW093109682A patent/TWI249672B/zh not_active IP Right Cessation
- 2004-04-15 CN CNB2004100348459A patent/CN1287296C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
TW200421091A (en) | 2004-10-16 |
TWI249672B (en) | 2006-02-21 |
US20040243764A1 (en) | 2004-12-02 |
US7143243B2 (en) | 2006-11-28 |
CN1542627A (zh) | 2004-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1287296C (zh) | 减少快取储存器标签阵列存取动作的系统及其方法 | |
CN1252605C (zh) | 重排多个数据存取指令的方法与装置 | |
US6912628B2 (en) | N-way set-associative external cache with standard DDR memory devices | |
CN1088215C (zh) | 不按顺序执行读写指令的存储器控制器 | |
CN101038532A (zh) | 数据存储装置及其方法 | |
CN1208723C (zh) | 处理有序数据请求到存储器的方法及设备 | |
CN1991810A (zh) | 可支持多个内部通道软件请求的直接存储器存取控制器 | |
CN1037983A (zh) | 页式存储器中数据的存取装置和方法 | |
US6832294B2 (en) | Interleaved n-way set-associative external cache | |
CN112506823B (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
CN101046724A (zh) | 磁盘接口处理器以及磁盘操作命令的处理方法 | |
CN1306419C (zh) | 一种高速缓存及从高速缓存读取数据的方法 | |
JPH07271674A (ja) | キャッシュ最適化の方法 | |
CN1155893C (zh) | 具有低电耗指令高速缓冲存储器的数据处理器 | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
CN1155891C (zh) | 用于处理直接存取存储设备的存取请求的方法 | |
CN1818887A (zh) | 基于sram的嵌入式文件系统的实现方法 | |
CN106569961B (zh) | 一种基于访存地址连续性的cache模块及其访存方法 | |
US20060143313A1 (en) | Method for accessing a storage device | |
CN116257191B (zh) | 存储器的控制器、组件、电子设备及命令调度方法 | |
CN1227932A (zh) | 通过流水线控制访问的高速缓冲存储器系统及其访问方法 | |
CN1109301C (zh) | 显示存储器控制设备 | |
US7739478B2 (en) | Multiple address sequence cache pre-fetching | |
US10579519B2 (en) | Interleaved access of memory |
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 |
Granted publication date: 20061129 |
|
CX01 | Expiry of patent term |