CN1302393C - 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 - Google Patents
高速缓冲存储器系统和控制高速缓冲存储器系统的方法 Download PDFInfo
- Publication number
- CN1302393C CN1302393C CNB018095232A CN01809523A CN1302393C CN 1302393 C CN1302393 C CN 1302393C CN B018095232 A CNB018095232 A CN B018095232A CN 01809523 A CN01809523 A CN 01809523A CN 1302393 C CN1302393 C CN 1302393C
- Authority
- CN
- China
- Prior art keywords
- cache memory
- data
- fully
- buffer device
- accessed
- 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
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
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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)高速缓冲存储器、和包括多个小块的大块尺寸配置的完全联系的(fully associative)空间缓冲器。在此,对直接映射的高速缓冲存储器和完全联系的缓冲器的访问未命中,则根据先进先出(FIFO)处理,将被访问地址的数据和邻近地址的数据复制到完全联系的空间缓冲器中的大块中。而且,如果在将要从完全联系的缓冲器中挤出的相对应的大块数据之中,访问一个或多个小数据块,就将被访问的小块复制到直接映射的高速缓冲存储器中。
Description
技术领域
本发明涉及一种用于控制高速缓冲存储器系统的方法,所述的高速缓冲存储器系统是用于提高中央处理单元CPU的访问速度,更具体地说,涉及一种用于控制具有直接映射的(direct-mapped)高速缓冲存储器和完全联系的(fully associative)缓冲器的高速缓冲存储器系统。
背景技术
在当今的多级的和复杂的存储器系统中,基于CPU对指令或数据的请求而对存储器的访问时间会造成相当的延迟。所以需要一种按照一定次序安排的存储器体系,在所述的次序中,如图1中所示,CPU访问来自该体系中不同的存储器的数据。参考图1,CPU访问存储器的次序是按照寄存器10、高速缓冲存储器系统11、主存储器12、磁盘13、和磁带14的次序。在此,具有最快访问时间的寄存器10被指定为最高层次级别,而具有最慢访问时间的磁带14被指定为最低层次级别。
在上述的存储器之中,高速缓冲存储器系统11是在访问主存储器12之前先被访问的,所以,该高速缓冲存储器系统的结构和控制方法会显著影响CPU的执行速度和功率消耗。高速缓冲存储器系统11是基于局域性原理来设计和控制的。
局域性分为空间局域性和时间局域性。空间局域性是指邻近的或附近的存储器位置将一次被紧密地一起引用的趋势。时间局域性是指被检索过一次的数据不久将被再次检索的可能性。
高速缓冲存储器系统通过保留最近引用过的数据而使用时间局域性,通过每当发生未命中(miss)时取出多个字作为高速缓冲存储器块而使用空间局域性。当高速缓冲存储器容量固定时,这两种用于优化每类局域性的方法是彼此相反的。典型地,块尺寸的增加与高速缓冲存储器块的数目成反比。所以,随着块尺寸的增加,更多与被访问的存储器地址邻近的数据被复制到高速缓冲存储器系统中。在这种情况中,由于高速缓冲存储器块数目的减少,被引用的数据在高速缓冲存储器系统中就驻留较短的时间量。这样,如果高速缓冲存储器系统的存储容量在预定的级别上是固定的,随着块尺寸的增加,高速缓冲存储器系统就具有更高的空间局域性,但具有较低的时间局域性。反之,随着块尺寸的减小,高速缓冲存储器系统就具有较低的空间局域性,但具有较高的时间局域性。
为了尽量减小上述的冲突,已经建议了一种包括两种高速缓冲存储器存储器的高速缓冲存储器系统,所述的两种高速缓冲存储器存储器是被分别控制的。根据高速缓冲存储器系统的传统的高速缓冲存储器控制方法,使用了复杂的机制来利用两种局域性,例如,使用了局域性预测表、编译器、局域性检测单元、预取(prefetch)、等等的方法。这些传统的高速缓冲存储器控制方法具有的问题是,它们在设计上复杂和具有高的硬件成本。
发明内容
本发明的目的是一种包括具有不同结构的两种高速缓冲存储器的高速缓冲存储器系统及其控制方法,以使用时间局域性和空间局域性,来减小未命中率和功率消耗。
根据本发明的一个实施例,本发明提供了一种用于控制高速缓冲存储器系统的方法,所述的高速缓冲存储器系统具有用小块尺寸配置的直接映射高速缓冲存储器和用大块尺寸配置的完全联系的空间缓冲器。
该方法包括步骤:(a)如果对直接映射的高速缓冲存储器和完全联系的空间缓冲器的访问未命中,则根据先进先出(FIFO)算法,将被访问地址的数据和邻近的地址的数据复制到完全联系的缓冲器中的大块中;以及(b)如果在步骤(a)中,将要从完全联系的空间缓冲器中挤出的大块数据之中,存在被访问的一个或多个小数据块,那么,就将被访问的相对应的小块移动到直接映射的高速缓冲存储器中。
根据本发明的另一个实施例,本发明提供了一种用于控制高速缓冲存储器系统的方法,其中,所述的高速缓冲存储器系统具有用小块尺寸配置的一个直接映射的高速缓冲存储器、和用包括多个小块的大块配置的一个完全联系的空间缓冲器。
该用于控制具有一个直接映射的高速缓冲存储器和一个完全联系的空间缓冲器的高速缓冲存储器系统的方法包括步骤:(a)如果对直接映射的高速缓冲存储器和完全联系的缓冲器的访问未命中,则检查在完全联系的缓冲器中是否存在一个空的大块;(b)如果在步骤(a)中存在空的大块,则根据FIFO处理,将在步骤(a)中访问的地址的数据和在大块中的邻近的地址的数据复制到完全联系的缓冲器中。
如果在步骤(a)中不存在空的块,则该方法还包括执行下面的步骤(c1)至(c7);(c1)检查已被直接写入完全联系的空间缓冲器中的小数据块是否存在于它的根据先进先出(FIFO)处理将要被挤出的相对应的大数据块中;(c2)如果已被直接写入完全联系的空间缓冲器中的小数据块,存在于属于它的将要被挤出的大数据块中,则将相对应的小数据块复制到直接映射的高速缓冲存储器中;(c3)检查已被访问的小块数据是否存在于根据FIFO处理将要被挤出的大块数据之中;(c4)如果存在被访问的小块数据,则检查是否将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中;(c5)如果将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中或完全联系的缓冲器中;则将将要被挤出的小块数据移动到主存储器中;(c6)将确定在步骤(c3)中已被访问的小块数据复制到直接映射的高速缓冲存储器中;以及(c7)根据FIFO处理,将在步骤(a)中访问的地址的数据和在大块中的邻近的地址的数据复制到完全联系的缓冲器中。
根据本发明的另一个实施例,提供了一种高速缓冲存储器系统,包括:一个直接映射的高速缓冲存储器和一个完全联系的空间缓冲器,该直接映射的高速缓冲存储器用小块尺寸配置,而完全联系的空间缓冲器用具有小块尺寸的多个小块的大块尺寸配置,其中,如果对直接映射的高速缓冲存储器的访问未命中,并且对完全联系的空间缓冲器的访问未命中,则根据先进先出(FIFO)算法,将被访问地址的数据和邻近的地址的数据复制到完全联系的缓冲器中的大块中;以及将将要从完全联系的空间缓冲器中挤出的大块数据之中的被访问的一个或多个小块移动到直接映射的高速缓冲存储器中。
通过选择地将候选的小块数据高速缓冲存储到直接映射的高速缓冲存储器中来使用时间局域性。使用大取出尺寸来增强空间局域性。用于时间局域性的选择机制是基于用于选择将要存储到直接映射的高速缓冲存储器中的块的时间间隔的。代替将每一个未命中的块直接放置到直接映射的高速缓冲存储器中的是,根据本发明,将包括未命中小块的大块放置到完全联系的空间缓冲器中。然后,根据先进先出(FIFO)处理,当大块从完全联系联系的空间缓冲器中被替换的时候,未命中的块被移动到直接映射的高速缓冲存储器中。
当在直接映射的和完全联系的空间缓冲器中都发生未命中时,未命中的地址和附近的地址的数据被取出放到空间缓冲器的大块中。如果在直接映射的高速缓冲存储器中引用未命中,但在空间缓冲器中命中了,则从空间缓冲器中取出其相对应的小块并设置其命中比特。使用这种命中比特,能够使高速缓冲存储器系统选择地确定显示时间局域性的那些块。这样,数据会在直接映射高速缓冲存储器中驻留一个长的时段,所以,时间局域性增加了,因此减小了未命中率和功率消耗。
附图说明
图1是根据一种次序而安排的存储器体系的方框图,按照所述的次序,中央处理单元CPU访问该体系中不同的存储器;
图2说明了根据本发明的一个实施例的应用了高速缓冲存储器控制方法的高速缓冲存储器系统的方框图;
图3是用于控制图2的高速缓冲存储器系统的流程图;
图4示出了与根据传统的控制方法的victim(牺牲)高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的未命中率的图;
图5示出了与根据传统的控制方法的victim高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的平均访问时间的图;
图6示出了与根据传统的控制方法的victim高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的标准化的功率消耗的图;以及
图7说明了根据本发明的另一个实施例的应用了高速缓冲存储器控制方法的高速缓冲存储器系统的方框图。
具体实施方式
根据本发明的一个实施例,如图2中所示,应用了高速缓冲存储器控制方法的高速缓冲存储器系统包括直接映射的高速缓冲存储器21和完全联系的空间缓冲器22。直接映射的高速缓冲存储器21包括数据存储单元211和控制比特存储单元212。配置数据存储单元211使被中央处理单元CPU(未示出)访问的数据被存储在8字节的小块(SUB)中。响应从地址总线201输入的索引(index)信号DMI,控制比特存储单元212为每个小块(SUB)存储一组比特,即1位有效比特V、1位脏(dirty)比特D、和n-位标记(tag)比特(T)。比较器203检查通过地址总线201从CPU输入的标记信号DMT的值是否存在于控制比特存储单元212的标记T中,并产生一个访问结果信号DMH,用于指示对直接映射高速缓冲存储器21的访问是命中的还是未命中的。通过控制总线(未示出)将访问结果信号DMH输入到CPU。复用器204选择地向直接映射高速缓冲存储器21的数据存储单元211输入来自数据总线202的8字节的数据字(DW)中的一个数据字(DW)和来自完全联系的空间缓冲器22的四个小块220、221、222、和223的8字节的数据字(DW)。
配置完全联系的空间缓冲器22使被CPU访问的地址的数据和邻近地址的数据被存储在具有四个小块,即小块220、221、222、和223的一个32字节的大块中。响应通过地址总线201从CPU输入的标记信号SBT,在完全联系的空间缓冲器22中的内容可寻址存储器(CAM)227,为大块220、221、222、和223产生一位有效比特(V)226,并为每个小块220、221、222、和223产生一位脏比特(D)225和一位命中比特(H)224。与门505检查在内容可寻址存储器227中产生的地址是否有效,并产生一个访问结果信号SBH,该访问结果信号SBH用于指示对完全联系的空间缓冲器22的访问是命中的或是未命中的。通过控制总线,将访问结果信号SBH输入到CPU。
通过经由复用器207发布每个存储器条(bank)使能信号BE,来自地址总线201的两位偏移(offset)控制信号SBO,选择地使能(enable)小块220、221、222、和223的输入和输出。而且,通过复用器206,来自数据总线202或来自诸如主存储器之类的从属存储器的8字节数据字(DW),被输入到选择地被使能的小块220、221、222、和223中。
现在,将参考图2和图3来描述用于根据本发明控制高速缓冲存储器系统的方法。
首先,通过基于来自CPU的写请求的写操作或基于来自CPU的读请求的读操作,在相同级别上并行访问直接映射的高速缓冲存储器21和完全联系的空间缓冲器22(步骤S301)。然后,检查对直接映射的高速缓冲存储器21的访问是否命中(步骤S302)。如果对直接映射的高速缓冲存储器21的读访问是命中的(步骤S303),读出的数据被发送到CPU(步骤S315)以终止该过程。如果对直接映射的高速缓冲存储器21的写访问是命中的(步骤S303),就执行写操作(步骤S303a),并且,设置直接映射的高速缓冲存储器21中被访问的小块(SUB)的脏位(D)(步骤S304),以终止该过程。
另一方面,当对直接映射的高速缓冲存储器21的访问是未命中的时候,就检查对完全联系的空间缓冲器22的访问是否是命中的(步骤S305)。如果对完全联系的空间缓冲器22的读访问是命中的(步骤S306),则执行写操作(步骤S306a),并且,设置被访问的每个小块220、221、222或223的命中比特H3、H2、H1或H0(步骤S314),并将读出的数据发送到CPU(步骤S315),从而终止该过程。如果对完全联系的缓冲器22的写访问是命中的(步骤S306),则设置用于被访问的每个小块220、221、222或223的脏比特D3、D2、D1或D0以及命中比特H3、H2、H1或H0(步骤S307和步骤S314),从而终止该过程。在完全联系的空间缓冲器中的任何脏小块220、221、222、或223的写回(write back)操作不能在完全联系的空间缓冲器中直接发生,因为任何修改的或引用的小块220、221、222、或223,在被替换之前,总是复制在直接映射的高速缓冲存储器21中。
如果对直接映射的高速缓冲存储器21和完全联系的空间缓冲器22的访问都是未命中的,则进行关于在完全联系的空间缓冲器22中是否存在空大块220、221、222、和223的检查(步骤S308)。在此,如果在完全联系的空间缓冲器22中设置了所有有效比特(V)226的状态,则在那里就不存在空大块220、221、222、和223。如果没有设置有效比特226中的一个的状态,则在完全联系的空间缓冲器22中就存在一个空大块220、221、222、和223。
根据先进先出(FIFO)算法,如果在完全联系的空间缓冲器22中存在一个空大块220、221、222、和223,就将大数据块复制到在完全联系的空间缓冲器22中的空大块220、221、222、和223(步骤S313)。然后,设置用于被访问的每个小块220、221、222、或223的命中比特H3、H2、H1、或HO(步骤S314)。在此,在读操作的情况下,读出的数据被发送到CPU(步骤S315)。
另一方面,根据FIFO算法,如果在完全联系的空间缓冲器22中不存在空大块220、221、222、和223,则进行关于在大块220、221、222、和223之中是否存在被访问的一个小块220、221、222、或223数据的检查,所述的大块220、221、222、和223是根据FIFO算法将要从完全联系的空间缓冲器22中挤出去的数据的(步骤S309)。在步骤S309中,如果在小块220、221、222、和223的命中比特H3、H2、H1、和H0中的至少一个被设置,则确定相对应的小块数据已经被访问过到了。同样,根据FIFO算法,在主存储器中的大块数据被复制到完全联系的空间缓冲器22中的空大块220、221、222、和223中(步骤S313)。然后,设置被访问的小块220、221、222、或223数据的命中比特H3、H2、H1、和H0(步骤S314)。在此,在读操作的情况下,读出的数据被发送给CPU(步骤S315)。
如果在步骤S309中存在小数据块,则检查将要从直接映射的高速缓冲存储器中挤出的小块数据(SUB)是否已经根据步骤S306a或步骤S303a而被直接写入(步骤S310)。在步骤S310中,如果设置了相对应的小块(SUB)的脏比特(D),则小块数据(SUB)被确定为已直接写入到直接映射的高速缓冲存储器21中(见步骤S307)。如果存在根据步骤S306a或步骤S303a而被直接写入的小块数据(SUB),则将小块数据SUB移动到主存储器中,所述的主存储器是从属存储器(步骤S311)。
而且,将已经被访问的小块220、221、222、或223数据移动到直接映射的高速缓冲存储器21中(步骤S312)。然后,根据FIFO处理,将大数据块复制到完全联系的空间缓冲器22中的空大块220、221、222、或223中(步骤S313)。然后,被访问的小块220、221、222、或223数据的命中比特H3、H2、H1、和H0在被访问的同时而被设置(步骤S314)。在此,在读操作的情况下,读出的数据被发送到CPU(步骤S315)。
图4示出了与根据传统的控制方法的victim高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的未命中率。图5示出了与根据传统的控制方法的victim高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的平均访问时间。图6示出了与根据传统的控制方法的victim高速缓冲存储器系统相比较的根据本发明的高速缓冲存储器控制方法的高速缓冲存储器系统的标准化的功率消耗。Go、tomcatv、gcc、ijpeg、compress、applu、vortex、和m88ksim表示具有用于模拟的不同的时间局域性和空间局域性的不同的基准程序。
在传统的victim高速缓冲存储器系统中,直接映射的高速缓冲存储器和victim缓冲器在块的尺寸上的配置相同。参考数411、421、431、441、451、461、471、481、491、511、521、531、541、551、561、571、581、和591表示一个victim高速缓冲存储器系统的图,所述的victim高速缓冲存储器系统包括一个直接映射的高速缓冲存储器和一个victim缓冲器,每个都具有8字节的块。参考数412、422、432、442、452、462、472、482、492、512、522、532、542、552、562、572、582、和592表示一个victim高速缓冲存储器系统的图,所述的victim高速缓冲存储器系统包括一个直接映射的高速缓冲存储器和一个victim缓冲器,每个都具有16字节的块。参考数413、423、433、443、453、463、473、483、493、513、523、533、543、553、563、573、583、593、611、621、631、641、651、661、671、681、和691表示一个victim高速缓冲存储器系统的图,所述的victim高速缓冲存储器系统包括一个直接映射的高速缓冲存储器和一个victim缓冲器,每个都具有32字节的块。参考数414、424、434、444、454、464、474、484、494、514、524、534、544、554、564、574、584、594、612、622、632、642、652、662、672、682、和692表示根据本发明的高速缓冲存储器系统的图,根据本发明的高速缓冲存储器系统包括直接映射的高速缓冲存储器21和完全联系的空间缓冲器22,如图2中所示,直接映射的高速缓冲存储器21具有图2的8字节的小块(SUB),完全联系的空间缓冲器22具有图2的32字节的大块220、221、222、和223。
参考图4、图5和图6,应用了高速缓冲存储器控制方法的高速缓冲存储器系统与传统的victim高速缓冲存储器系统相比,具有低的未命中率、低的平均访问时间、和低的功率消耗。
图7说明了根据本发明的另一个实施例的应用了高速缓冲存储器控制方法的高速缓冲存储器系统的方框图。图7中与图2的参考数字相同的参考数表示相同的组成部分。高速缓冲存储器系统包括:地址发生器AG、复用器228和206R、反相器209、预取控制器208、以及与门232。图7的高速缓冲存储器存储器子系统除了具有用于现在将要描述的预取模式的附加特征之外,与图2的系统相似的。
在预取模式的情况中,如果与大块相对应的预取比特P仍然是复位状态(reset),则当在完全联系的空间缓冲器22的任何存储器条中出现命中,且已经设置了与其大块SUB3、SUB2、SUB1和SUB0相对应的命中比特H3、H2、H1、和H0之中的至少一个时,就启动预取操作。同时,为预取地址而找寻空间缓冲器的标记以检查其是否已经存在。如果该地址不在于空间缓冲器中,预取控制器208产生预取信号PFS和目标地址PFA,以便将大块从从属存储器取出放到预取缓冲器231。并且,还设置产生预取信号的大块的预取比特(P)。最好是,这个预取比特(P)将阻止预取控制器208找寻已经使用的大块。也就是说,如果设置了大块的预取比特(P),则随后的大块(即,预取目标块)必须存在于完全联系的空间缓冲器22或预取缓冲器231之中。所以,不必找寻完全联系的空间缓冲器22的标记是否存在。
而且,在预取模式中,当设置了多个命中比特时,预取控制器208就产生预取信号。然后,由预取控制器208连续地执行两个操作。第一个操作是当存储在完全联系的空间缓冲器22中的第1个大块的命中出现时,找寻完全联系的空间缓冲器22的标记部分,以便检测第(1+1)个大块是否已经存在于完全联系的空间缓冲器22中。在这中情况中,存在一个周期的损失(penalty),但是,这种开销是可以忽略的,因为,预取只启动(initiate)由CPU产生的地址总数的大约1.5%-2.5%。这样,平均MCPI(每条指令的存储器周期)增加大约0.06%。如果第(1+1)个大块不存在于完全联系的空间缓冲器22中,则执行第二个操作:将第(1+1)个大块预取到预取缓冲器231中。如果在直接映射的高速缓冲存储器21和完全联系的空间缓冲器22中都发生了未命中,高速缓冲存储器控制器就启动其未命中处理过程。在产生这种未命中处理时,已经在预取缓冲器231中的块被发送到完全联系的空间缓冲器22。所以,发送时间可以被完全掩盖,因为,有大量的时间来执行这种块移动,即,19个时钟周期用于处理一个未命中。
图7中的高速缓冲存储器系统具有用户可以选择的两种模式,也就是说,非预取模式和预取模式。预取模式保证了以低开销的更多的性能增加。在每次存储器访问中,都同时访问直接映射的高速缓冲存储器21和完全联系的空间缓冲器22。
在非预取模式中,或者在预取模式中,如果在直接映射的高速缓冲存储器21中发现有小块(例如,8字节的块尺寸),则过程就与任何传统的高速缓冲存储器命中一样。将请求的数据项无延迟地发送到CPU。在非预取模式中,或者在预取模式中,当存储器地址由CPU产生时,就用一些地址比特从完全联系的空间缓冲器22中的一些存储器条之中选择一条。如图7中那样,作为一个设计例子,如果小块的尺寸是8字节且大块的尺寸是32字节,则存储器条的数目就假定为四。使用最多两位的大块偏移来使能完全联系的空间缓冲器22中的四条存储器条中的一条。这样,通过每次只使能一条存储器条就可以减少功率消耗。在这种情况下,一条存储器条的块尺寸就是8字节,且等于直接映射的高速缓冲存储器21中的块的尺寸。每条存储器条的所有小块的项目(entry)都有一个命中比特,以检查大块之中的特定的小块先前是否已经被引用过或未被引用过。如果在完全联系的空间缓冲器22中出现命中,那么,那个小块的命中比特就变成置位的,以将其标记为已被引用过的块。
在预取模式的情况下,如果与大块相对应的预取比特(P)仍然是复位状态,则当在完全联系的空间缓冲器22的任何存储器条中出现命中,且已经设置了与其大块相对应的一个或多个命中比特时,就启动预取操作。同时,为预取地址而找寻完全联系的空间缓冲器22的标记以检查其是否已经存在。如果该地址不在完全联系的空间缓冲器22中,预取控制器208产生预取信号PFS,以便将大块从从属存储器取出。并且,还设置产生预取信号的大块的预取比特(P)。在这里,当在设置了预取比特P的大块SUB3、SUB2、SUB1、和SUB0内,小块SUB3、SUB2、SUB1、和SUB0被再次访问时,就不执行预取,因为,相对应的预取已经被执行。在用于更新完全联系的缓冲器22的步骤中执行预取(图3中的步骤S313)。
更具体地说,在用于更新完全联系的缓冲器22的步骤S313的操作过程中,通过预取缓冲器231和复用器206R,将将要被预取的数据从附属存储器复制到完全联系的缓冲器22中的大数据块中。在这里,通过先进先出(FIFO)处理来执行图3中的步骤S308到步骤S313。
下面,当一个比特,在大数据块SUB3、SUB2、SUB1、和SUB0的4个命中比特H3、H2、H1、H0的其它3个命中比特已经被设置的状态下,最终被设置时,预取比特就被设置,并执行预取。在这里,当在设置了预取比特P的大块SUB3、SUB2、SUB1、和SUB0内,小数据块SUB3、SUB2、SUB1、和SUB0被再次访问时,就不执行预取,因为,相对应的预取已经被执行。
当试图访问完全联系的缓冲器22时,用于在内容可寻址存储器227中搜索的当前所读的地址立即被输入到地址发生器AG。如果一个比特,在大数据块SUB3、SUB2、SUB1、和SUB0的4个命中比特H3、H2、H1、H0的其它3个命中比特已经被设置的状态下,最终被设置时,则4个命中比特H3、H2、H1、H0的所有逻辑状态为“1”。在这种情况下,预取控制器208输入到与门232的预取信号PFS的状态进行翻转,这样,预取信号PFS的状态是“1”。同样,地址发生器AG将来自内容可寻址的存储器227的输入地址的下一个地址输入到复用器228。换句话说,地址发生器AG将全部命中比特被设置为“1”的输入地址的下一个地址输入到复用器228。然后,内容可寻址的存储器227在内部搜索与来自复用器228的输入地址相同的地址。在这里,不搜索任何预取比特被设置为“1”的大数据块的地址,这样,减少了搜索时间。
根据搜索操作,存在一个周期的延迟,但是,这种开销是可以忽略的,因为,预取只启动(initiate)由CPU产生的地址总数的大约1.5%-2.5%。换句话说,平均MCPI(每条指令的存储器周期)增加大约0.06%。
在搜索操作之后,如果在内容可寻址的存储器227中存在下一个地址,内容可寻址的存储器227就将“1”状态的信号输入到与门205,这样,来自反相器209和与门232的输出信号将变为“0”状态。换句话说,“0”状态的取使能信号PFSE是通过预取缓冲器231和复用器206R来自附属存储器的联系的缓冲器22。在这里,通过先进先出(FIFO)算法来执行图3中的步骤S308到步骤S313。然而,在步骤S314的情况中,预取的数据的大数据块的全部的命中比特被设置为“0”。
根据预取模式,对具有高访问率的大数据块的下一个地址的数据执行预取。因此,大块的预取的数据也具有高访问率,这样,就减少了整体访问时间。
如上述所述,被输入到地址发生器AG。因此,地址发生器AG不将下一个地址发送到地址总线201,这样,就不执行预取。
同时,在搜索操作之后,如果在内容可寻址的存储器227中不存在下一个地址,内容可寻址的存储器227就将“0”状态的信号输入到与门205,这样,来自反相器209和与门232的输出信号将变为“1”状态。换句话说,“1”状态的取使能信号PFSE被输入到地址发生器AG。因此地址发生器AG将下一个地址发送到地址总线201,这样,就执行预取。在用于更新完全联系的缓冲器22的步骤(图3中的步骤S313)中执行预取。更具体地说,在用于更新完全联系的缓冲器22的步骤S313的操作过程中,将要被预取的数据被复制到完全联系的缓冲器22的大数据块中。根据本发明的高速缓冲存储器控制方法,在将要从完全联系的空间缓冲器中被挤出去的大块数据之中的被访问的小块数据被复制到直接映射的高速缓冲存储器中。命中比特信息的使用,使得高速缓冲存储器系统选择地确定显示出时间局域性强的那些小块。该高速缓冲存储器控制方法利用了关于小块的使用情况的命中比特信息,所述的小块是在与空间缓冲器中的入口的数目成比例的时间间隔期间获得的。相应地,通过在保持空间局域性的同时增加时间局域性,就增加了数据驻留于直接映射的高速缓冲存储器中的持续时间,因此减少了高速缓冲存储器系统的未命中率和功率消耗。
虽然已经参考本发明的优选实施例具体地显示和描述了本发明,那些本领域技术人员应当理解,在不偏离由所附权利要求所限定的本发明的实质和范围的前提下,可以进行各种形式上和细节上的改变。
Claims (12)
1.一种用于控制高速缓冲存储器系统的方法,其中,该高速缓冲存储器系统具有用小块尺寸配置的一个直接映射的高速缓冲存储器、和用具有多个小块的大块配置的一个完全联系的空间缓冲器,该方法包括步骤:
(a)如果对直接映射的高速缓冲存储器的访问未命中,并且对完全联系的空间缓冲器的访问未命中,则根据先进先出(FIFO)算法,将被访问地址的数据和邻近的地址的数据复制到完全联系的缓冲器中的大块中;以及
(b)如果在步骤(a)中,将要从完全联系的空间缓冲器中挤出的大块数据之中,存在被访问的一个或多个小数据块,那么,就将被访问的小块移动到直接映射的高速缓冲存储器中。
2.如权利要求1的用于控制高速缓冲存储器系统的方法,还包括:
如果在完全联系的缓冲器中的大数据块的至少两个小数据块被访问,则预取大数据块的下一个地址的数据,并根据先进先出(FIFO)处理,在步骤(a)中,将预取的数据复制到完全联系的缓冲器中的大块中。
3.一种用于控制高速缓冲存储器系统的方法,其中,该高速缓冲存储器系统具有用小块尺寸配置的一个直接映射的高速缓冲存储器、和用具有多个小块的大块配置的一个完全联系的空间缓冲器,该方法包括步骤:
(a)如果对直接映射的高速缓冲存储器和完全联系的缓冲器的访问未命中,则检查在完全联系的缓冲器中是否存在一个空的大块;以及
(b)如果在步骤(a)中存在空的大块,则根据FIFO处理,将在步骤(a)中访问的地址的数据和在大块中的邻近的地址的数据复制到完全联系的缓冲器中。
4.如权利要求3的用于控制高速缓冲存储器的方法,如果在步骤(a)不存在空块,则该方法还包括:
检查在根据先进先出(FIFO)处理将要被挤出的相对应的大数据块之中,是否存在已经被直接写入完全联系的空间缓冲器中的小数据块。
5.如权利要求4的用于控制高速缓冲存储器系统的方法,该方法还包括:
如果已被直接写入完全联系的空间缓冲器中的小数据块,存在于属于它的将要被挤出的大数据块中,则将相对应的小数据块移动到直接映射的高速缓冲存储器中。
6.如权利要求5的用于控制高速缓冲存储器系统的方法,该方法还包括:
检查已被访问的小块数据是否存在于根据FIFO处理将要被挤出的大块数据之中。
7.如权利要求6的用于控制高速缓冲存储器系统的方法,该方法还包括:
如果存在被访问的小块数据,则检查是否将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中。
8.如权利要求7的用于控制高速缓冲存储器系统的方法,该方法还包括:
如果将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中或完全联系的缓冲器中;则将将要被挤出的小块数据复制到主存储器中。
9.如权利要求8的用于控制高速缓冲存储器系统的方法,该方法还包括:
将小块数据移动到直接映射的高速缓冲存储器中,其中,在检查根据FIFO处理将要被挤出的大数据块之中是否小数据块已经被访问过的步骤中,小块数据被确认为已经被访问过了。
10.如权利要求9的用于控制高速缓冲存储器系统的方法,该方法还包括:
根据FIFO处理,将在步骤(a)中访问的地址的数据和在大块中的邻近的地址的数据复制到完全联系的缓冲器中。
11.如权利要求3所述的用于控制高速缓冲存储器系统的方法,该方法还包括下列步骤:
(c)如果在步骤(a)中不存在空的块,则执行下面的步骤(c1)至(c7);
(c1)检查已被直接写入完全联系的空间缓冲器中的小数据块是否存在于它的根据先进先出(FIFO)处理将要被挤出的相对应的大数据块中;
(c2)如果已被直接写入完全联系的空间缓冲器中的小数据块,存在于属于它的将要被挤出的大数据块中,则将相对应的小数据块复制到直接映射的高速缓冲存储器中;
(c3)检查已被访问的小块数据是否存在于根据FIFO处理将要被挤出的大块数据之中;
(c4)如果存在被访问的小块数据,则检查是否将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中;
(c5)如果将要被挤出的小块数据已被直接写入直接映射的高速缓冲存储器中或完全联系的缓冲器中;则将将要被挤出的小块数据移动到主存储器中;
(c6)将确定在步骤(c3)中已被访问的小块数据复制到直接映射的高速缓冲存储器中;以及
(c7)根据FIFO处理,将在步骤(a)中访问的地址的数据和在大块中的邻近的地址的数据复制到完全联系的缓冲器中。
12.一种高速缓冲存储器系统,包括:
一个直接映射的高速缓冲存储器和一个完全联系的空间缓冲器,该直接映射的高速缓冲存储器用小块尺寸配置,而完全联系的空间缓冲器用具有小块尺寸的多个小块的大块尺寸配置,其中
如果对直接映射的高速缓冲存储器的访问未命中,并且对完全联系的空间缓冲器的访问未命中,则根据先进先出(FIFO)算法,将被访问地址的数据和邻近的地址的数据复制到完全联系的缓冲器中的大块中;以及
将将要从完全联系的空间缓冲器中挤出的大块数据之中的被访问的一个或多个小块移动到直接映射的高速缓冲存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR2000/26187 | 2000-05-16 | ||
KR1020000026187A KR100335500B1 (ko) | 2000-05-16 | 2000-05-16 | 직접사상 캐쉬와 완전연관 버퍼를 포함한 캐쉬 시스템의제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1429366A CN1429366A (zh) | 2003-07-09 |
CN1302393C true CN1302393C (zh) | 2007-02-28 |
Family
ID=19668781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018095232A Expired - Lifetime CN1302393C (zh) | 2000-05-16 | 2001-05-16 | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7047362B2 (zh) |
JP (1) | JP4218820B2 (zh) |
KR (1) | KR100335500B1 (zh) |
CN (1) | CN1302393C (zh) |
AU (1) | AU2001262755A1 (zh) |
GB (1) | GB2377298B (zh) |
WO (1) | WO2001088716A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133975B1 (en) * | 2003-01-21 | 2006-11-07 | Advanced Micro Devices, Inc. | Cache memory system including a cache memory employing a tag including associated touch bits |
US7260681B2 (en) * | 2005-06-02 | 2007-08-21 | Seagate Technology Llc | Stripe buffer list |
US7401188B2 (en) * | 2005-06-29 | 2008-07-15 | Intel Corporation | Method, device, and system to avoid flushing the contents of a cache by not inserting data from large requests |
KR100659984B1 (ko) * | 2005-12-28 | 2006-12-22 | 주식회사 에너테크 | 하이브리드 방식의 고조파 저감 장치 |
US8499120B2 (en) * | 2008-10-17 | 2013-07-30 | Seagate Technology Llc | User selectable caching management |
US8347037B2 (en) | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8489819B2 (en) * | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8949540B2 (en) * | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
CN101515295B (zh) * | 2009-03-23 | 2010-12-01 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
US8285939B2 (en) * | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
JP2012194742A (ja) * | 2011-03-16 | 2012-10-11 | Nec Engineering Ltd | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理方法 |
JP5791133B2 (ja) * | 2014-08-13 | 2015-10-07 | Necエンジニアリング株式会社 | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理用プログラム |
TWI755878B (zh) * | 2020-09-30 | 2022-02-21 | 威聯通科技股份有限公司 | 動態改變資料預取量的方法及使用其之終端裝置 |
US20230409240A1 (en) * | 2022-05-25 | 2023-12-21 | Samsung Electronics Co., Ltd. | Systems and methods for managing a storage system |
US20240330191A1 (en) * | 2023-03-28 | 2024-10-03 | Xilinx, Inc. | Descriptor cache eviction for multi-queue direct memory access |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493026A (en) * | 1982-05-26 | 1985-01-08 | International Business Machines Corporation | Set associative sector cache |
US6047357A (en) * | 1995-01-27 | 2000-04-04 | Digital Equipment Corporation | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2264577A (en) * | 1940-02-27 | 1941-12-02 | United Shoe Machinery Corp | Lasting machine |
US6170999B1 (en) * | 1996-12-27 | 2001-01-09 | Canon Kabushiki Kaisha | Power transmission device wherein a film take-up spool gear also partakes in film rewinding |
KR100333587B1 (ko) * | 1997-08-29 | 2002-09-25 | 엘지전자주식회사 | 냉장고의 냉장실냉기 역류방지장치 |
US6397296B1 (en) * | 1999-02-19 | 2002-05-28 | Hitachi Ltd. | Two-level instruction cache for embedded processors |
US6460115B1 (en) * | 1999-11-08 | 2002-10-01 | International Business Machines Corporation | System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism |
US6609177B1 (en) * | 1999-11-12 | 2003-08-19 | Maxtor Corporation | Method and apparatus for extending cache history |
-
2000
- 2000-05-16 KR KR1020000026187A patent/KR100335500B1/ko active IP Right Grant
-
2001
- 2001-05-16 GB GB0222826A patent/GB2377298B/en not_active Expired - Lifetime
- 2001-05-16 CN CNB018095232A patent/CN1302393C/zh not_active Expired - Lifetime
- 2001-05-16 JP JP2001585046A patent/JP4218820B2/ja not_active Expired - Fee Related
- 2001-05-16 US US10/258,074 patent/US7047362B2/en not_active Expired - Lifetime
- 2001-05-16 AU AU2001262755A patent/AU2001262755A1/en not_active Abandoned
- 2001-05-16 WO PCT/KR2001/000793 patent/WO2001088716A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493026A (en) * | 1982-05-26 | 1985-01-08 | International Business Machines Corporation | Set associative sector cache |
US6047357A (en) * | 1995-01-27 | 2000-04-04 | Digital Equipment Corporation | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy |
Also Published As
Publication number | Publication date |
---|---|
US20030149842A1 (en) | 2003-08-07 |
JP4218820B2 (ja) | 2009-02-04 |
US7047362B2 (en) | 2006-05-16 |
KR100335500B1 (ko) | 2002-05-08 |
WO2001088716A1 (en) | 2001-11-22 |
GB0222826D0 (en) | 2002-11-06 |
KR20000050112A (ko) | 2000-08-05 |
JP2003533822A (ja) | 2003-11-11 |
CN1429366A (zh) | 2003-07-09 |
GB2377298B (en) | 2004-12-22 |
GB2377298A (en) | 2003-01-08 |
AU2001262755A1 (en) | 2001-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1302393C (zh) | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 | |
CN1296827C (zh) | 一种使用数据地址增加组相关存储器的访问速度的方法 | |
US5778434A (en) | System and method for processing multiple requests and out of order returns | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
JP3618385B2 (ja) | データをバッファリングする方法およびそのシステム | |
US7266647B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
EP0695996B1 (en) | Multi-level cache system | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
EP0185867A2 (en) | A memory hierarchy and its method of operation | |
EP0795820A2 (en) | Combination prefetch buffer and instructions cache | |
US20130205089A1 (en) | Cache Device and Methods Thereof | |
CN1820257A (zh) | 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 | |
CN1675626A (zh) | 用于转移目标的指令高速缓冲存储器通路预测 | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
US6668307B1 (en) | System and method for a software controlled cache | |
CN1726477A (zh) | 用于预取和存储器管理的页描述符 | |
CN1667570A (zh) | 用最近条目队列补充分支目标缓冲器的方法和系统 | |
JPH07104816B2 (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
US5897651A (en) | Information handling system including a direct access set associative cache and method for accessing same | |
CN1155893C (zh) | 具有低电耗指令高速缓冲存储器的数据处理器 | |
US20030163643A1 (en) | Bank conflict determination | |
CN1286006C (zh) | 高速缓存系统与管理高速缓存的方法 | |
US6598124B1 (en) | System and method for identifying streaming-data | |
JP2008512758A (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 |
Granted publication date: 20070228 |
|
CX01 | Expiry of patent term |