CN1679006A - 处理器预取以匹配存储器总线协议特性 - Google Patents

处理器预取以匹配存储器总线协议特性 Download PDF

Info

Publication number
CN1679006A
CN1679006A CNA038199335A CN03819933A CN1679006A CN 1679006 A CN1679006 A CN 1679006A CN A038199335 A CNA038199335 A CN A038199335A CN 03819933 A CN03819933 A CN 03819933A CN 1679006 A CN1679006 A CN 1679006A
Authority
CN
China
Prior art keywords
cache
data
data element
processor
memory
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.)
Granted
Application number
CNA038199335A
Other languages
English (en)
Other versions
CN100390757C (zh
Inventor
J·-W·范德维尔德特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nytell Software LLC
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1679006A publication Critical patent/CN1679006A/zh
Application granted granted Critical
Publication of CN100390757C publication Critical patent/CN100390757C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

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

超高速缓存线路读取的示例性实施例包括:提供第一存储器(206),其中具有用于存储第一组N个数据元素(209a)和第二相邻组N个数据元素(209b)的位置。这两组数据元素与第一存储器(206)线路对准。N个数据元素构成整数个线路。提供处理器(202),用于访问超高速缓冲存储器(207),并且该处理器操作在两种模式,即第一模式(290)和第二模式(291)。确定处理器的操作模式。当该处理器处于第一模式(290)中时,一次N个数据元素地将数据从第一存储器传送到超高速缓冲存储器(207)。当该处理器处于第二模式中时,至少若干次,该处理器一次M×N个数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器,M是大于1的整数。

Description

处理器预取以匹配存储器总线协议特性
技术领域
本发明涉及数据预取领域,并且更具体地涉及以有助于减少处理器故障周期(stall cyc1e)的方式从存储器中预取数据的领域。
背景技术
随着集成电路技术发展为更小的特征尺寸,因而正在研发更快的中央处理单元(CPU)。不幸地,其中通常存储指令和数据的诸如随机存取存储器(RAM)形式的主存储器的存储器子系统的存取时间尚未匹配CPU的存取时间。CPU必须访问这些较慢的设备,以便从中检索指令和数据来对其进行处理。在检索这些指令和数据的过程中,在CPU和较慢的存储器子系统之间存在瓶颈。典型地,为了降低该瓶颈的影响,在存储器子系统和CPU之间实现超高速缓冲存储器,以便利用较低的等待时间(latency)将最近使用的(MRU)指令和数据提供给处理器。超高速缓冲存储器的目的是增加从存储器子系统流向CPU的信息的指令和数据等待时间。通过所需要的时钟周期数量来测量等待时间,以便将预定数量的信息从主存储器传送给CPU。所需要的时钟周期数量越少,则等待时间越好。
在CPU执行指令期间,访问存储器子系统和超高速缓冲存储器。首先访问超高速缓冲存储器,以查看相应的数据字节是否满足存储器存取请求。如果满足存储器存取请求,则超高速缓存“命中(hit)”结果,否则如果不满足存储器存取请求,则访问存储器子系统,以检索数据字节。必须访问存储器子系统以检索所需要的数据字节,这被称作超高速缓存“未命中(miss)”。当超高速缓存未命中发生时,处理器遭遇故障周期,同时将所需要的数据字节从存储器子系统传送给处理器和超高速缓冲存储器。
执行从存储器子系统中预取数据字节的处理,以减少处理器故障周期。通过预期指令和数据的未来使用,执行从存储器子系统中预取该预期信息,以便当使用实际发生时,能够更快地给超高速缓冲存储器提供该信息。结果,能够减少处理器故障周期的数量,因为预取了数据,并且不必再从存储器子系统中读取(fetch)该数据。
预取数据块的处理使用数据总线,这提供存储器子系统和超高速缓冲存储器之间的通信。作为预取操作的结果,降低了数据总线带宽。在一些情况下,预取处理从处理器将不使用的存储器子系统中检索数据块。这给总线使用增添了不必要的负载。将数据块读取到超高速缓冲存储器体系的某一层次需要替换现有的超高速缓存数据块,其中这样的数据块替换可能导致额外的总线使用,因为产生了另一个读取操作以便从存储器子系统中提供正确的数据。通常,重新组织超高速缓存数据块,以便将所替换的块移动到超高速缓冲存储器体系中的较低层次上。而且,如果所移动的数据块在超高速缓冲存储器体系的最高层次上不再可用于未来参考,则可能导致超高速缓存未命中。
此外,因为下述原因,处理器在预期其未来使用时预取额外的数据块也可能是无效的。一个接一个地出现大量的预取可能导致突发的总线使用,这导致降低数据总线带宽。突发的总线使用可能导致使用共享数据总线资源的其它组件的临时不足,这可能导致其它类型的处理器故障周期,因而对处理器和系统性能具有降级影响。
当从存储器子系统向超高速缓冲存储器传送数据字节时,传送的单位被称作超高速缓存线路。一旦已从存储器子系统传送出超高速缓存线路,则从存储器中预取下一个超高速缓存线路。预取处理基于从存储器子系统中预取下一个顺序线路将改善处理器性能的假定。当在当前的超高速缓存线路上超高速缓存未命中出现时,已经从存储器子系统中读取了相应的超高速缓存线路,有效地降低超高速缓存线路读取等待时间。在这种情况下,仅当超高速缓存未命中在这一线路上出现时,才将预取的超高速缓存线路放置在超高速缓冲存储器内,在超高速缓存未命中出现之前,预取的超高速缓存线路驻留在预取超高速缓存线路缓冲器内。这阻止了因为未使用的预取超高速缓存线路而牺牲有用的超高速缓存线路。
这个执行下一顺序超高速缓存线路预取的处理是用于降低处理器可见的慢速存储器子系统访问时间即存储器等待时间的影响的公知技术。通过使用预取来隐藏这个等待时间,处理器遭受较少的故障周期,因为潜在预期的超高速缓存线路已经出现在靠近超高速缓冲存储器的预取缓冲器内。因而处理器可以从超高速缓冲存储器中更有效地访问这个预取超高速缓存线路,因此潜在地改善处理器性能。
超高速缓存线路预取可能降低系统性能。处理器随后不再需要的预取超高速缓存线路随后从存储器子系统传送给处理器,因而消耗存储器带宽,阻止其它的存储器事务处理发生。在其中多个处理单元必需共享关键的存储器带宽资源的片上统一存储器系统结构(UnifiedMemory system on chip architecture)中,这种负面影响变得更加明显。因此,预取是从系统结构以及处理器的观点出发必须解决的处理。
通常,确定在超高速缓冲存储器内使用的超高速缓存线路的大小以允许处理器的最佳性能;通常,这需要为最常见的情况即超高速缓存命中来优化超高速缓存线路大小。而且,超高速缓存线路的大小涉及超高速缓存未命中的增加或减少。如果超高速缓存线路太大,则导致超高速缓存污染,因为超高速缓冲存储器包含太多的数据,并且此数据的绝大部分不能由处理器使用,因为它是不正确的。如果超高速缓存线路太小,则超高速缓存并未包含足够的数据量来防止大多数的超高速缓存未命中,并且处理器需要从存储器子系统中预取数据,以便有助于处理操作。
上述问题在其中多个处理器共享同一存储器和总线资源的多处理器系统内变得甚至更加明显。在这样的系统内,超高速缓存未命中影响所有处理器的性能,并且需要以及时的方式有效地解决超高速缓存未命中,以维持总体系统性能。有效的预取显著地提高处理器性能。
发明内容
根据本发明,提供一种超高速缓存线路读取的方法,包括以下步骤:提供第一存储器,其中具有存储器位置,用于存储第一组N个数据元素和第二相邻组N个数据元素,这两组数据元素在第一存储器内被线路对准,其中N个数据元素构成整数个线路;提供超高速缓冲存储器;提供处理器,用于访问超高速缓冲存储器和用于在两个模式即第一模式和第二模式之中的每个模式内操作;确定处理器的操作模式;当处理器处于第一操作模式中时,一次N个数据元素地将数据从第一存储器传送给超高速缓冲存储器;和至少若干次地当处理器处于第二操作模式中时,一次M×N个数据元素地将数据从第一存储器传送给超高速缓冲存储器,其中M是大于1的整数。
根据本发明的另一方面,提供一种其中存储数据的存储器,该数据涉及用于执行下述步骤的指令:从包括第一操作模式和第二操作模式的多个操作模式中确定处理器的操作模式;当处理器处于第一操作模式中时,一次N个数据元素地将数据从第一存储器传送给超高速缓冲存储器;和至少若干次地当处理器处于第二操作模式中时,一次M×N个数据元素地将数据从第一存储器传送给超高速缓冲存储器,其中M是大于1的整数。
根据本发明的又一方面,提供一种存储器系统电路,包括:超高速缓冲存储器;和超高速缓存线路读取电路,用于在第一模式操作中在单个操作中将构成一个或多个超高速缓存线路的N个数据元素读取到超高速缓冲存储器内,并在第二其他的操作模式中在单个操作中将构成多个超高速缓存线路的M个数据元素读取到超高速缓冲存储器内,其中M>N,并且其中M和N之中的每个都是整数个超高速缓存线路。
附图说明
现在将参考附图描述本发明,在附图中:
图1a图示现有技术的片上系统(system on chip)结构;
图1b图示现有技术的多处理器片上系统(SoC)结构;
图1c图示另一个现有技术的多处理器片上系统(SoC)结构;
图2a图示与本发明一起使用的片上系统结构;
图2b图示多处理器片上系统(SoC)结构;
图2c图示多处理器片上系统(SoC)结构的另一实施例;
图2d图示用于处理器的第一和第二操作模式;
图3a是具有存储在其中的四个数据元素的五个顺序超高速缓存线路的存储器子系统存储页面的简化存储器图;
图3b是具有存储在其中的八个数据元素的五个顺序超高速缓存线路的存储器子系统存储页面的简化存储器图;和
图4图示包含四个数据元素对准的存储器结构的简化存储器图,具有分隔8个数据元素的较粗线。
具体实施方式
图1a图示现有技术的片上系统(SoC)结构101。SoC定义耦合到片外存储器控制器104的处理器102。此片外存储器控制器通过外部数据总线105耦合到形式为动态随机存取存储器(DRAM)的存储器子系统106。存储器子系统106包括“n”个存储页面106a至106n,其中这n个页面中的每个页面是可被单个访问。还提供了超高速缓存缓冲器108,用于在将超高速缓存线路存储在作为SoC101的一部分提供的超高速缓冲存储器107内之前存储从存储器子系统传送的超高速缓存线路。
使用片外存储器控制器104来访问任一存储页面106a至106n,以便使用外部数据总线105将数据字节从存储器子系统提供给超高速缓冲存储器107和超高速缓存缓冲器108。典型地,在存储器子系统106和超高速缓冲存储器107或超高速缓存缓冲器108之间传送的数据字节量是构成超高速缓存线路109的数据字节量。片外存储器控制器104受处理器102的控制,并负责执行从存储器子系统106到超高速缓冲存储器107和超高速缓存缓冲器108的预取事务处理,以降低处理器故障周期。
当处理器102生成预取事务处理时,可能会导致恒定等待时间和可变等待时间。恒定等待时间具有恒定的时间量,需要相同的时间量来建立每个预取事务处理。可变等待时间在时间上根据在事务处理期间将要预取的数据元素的数量成比例地变化。因此,将可变等待时间乘以在预取操作中传送的数据元素数量并相加恒定等待时间,将生成总的预取等待时间。
当发生预取事务处理时,外部数据总线105专用于当前的预取事务处理,并因而其它的事务处理在此时不能共享相同的外部总线105资源,直到完成该预取。完成预取事务处理所花费的时间取决于在此事务处理中传送的数据字节的数量。因而,在一些情况下,执行具有更小超高速缓存线路大小的预取事务处理将是更为有利的,以便将更少的外部总线资源用于每个事务处理。然而,通过生成更多数量的预取事务处理,在建立每个事务处理上将花费更多的时间,并因此归固于恒定等待时间的时间量增加。因此,在预取事务处理的数量和在每个预取事务处理中传送的数据量之间具有折衷。
当访问存储器子系统时,产生其它的困难,因为存在由于访问存储器子系统106内的存储页面而导致的附加等待时间。当访问存储器子系统106内的存储页面时,随后访问该相同的存储页面是不可能的,因为用于存储该页面的存储器电路通常是单端口的,并因而并不支持在不同地址上的多个读出。如果已经执行预取事务处理用于访问在第一地址上的当前存储页面,则延迟在第二地址上访问同一存储页面的后续事务处理的执行,直到已经完成在前事务处理。这产生了下一个顺序超高速缓存线路预取的问题,因为通常下一顺序超高速缓存线路位于与先前读取的超高速缓存线路相同的存储页面内。然而,预取下一顺序超高速缓存线路的处理在开始之前遭受延迟,因为下一顺序超高速缓存线路预取事务处理必须等待,直到已经完成前一超高速缓存线路读取事务处理。一旦已经完成读取操作,则存储页面可用于访问,并且下一顺序超高速缓存线路预取事务处理开始。典型地,在待完成的事务处理的等待时间期间,处理器经历故障周期,因而导致处理器102更低效率的指令处理。更不必说的是,当外部数据总线资源正用于预取操作时,试图使用同一总线资源的其它存储器子系统事务处理可能会导致干扰。当然,耦合处理器、超高速缓冲存储器和片外存储器控制器的内部数据总线也在预取操作过程中被使用,并因而下一顺序超高速缓存线路的读取可能导致来自源自其它的SoC单元的存储器子系统事务处理的干扰。因而,因为存储器子系统106内封闭的片外存储页面,通常观察到大的事务处理等待时间。上述问题在多处理器系统内尤其复杂。
图1b图示多处理器片上系统(SoC)结构111。该SoC内的结构类似于图1a所示的结构。然而,在这种情况下,已经添加了附加处理器112。两个处理器102和112都耦合到片外存储器控制器104,并在从存储器子系统106检索数据元素时共享外部数据总线105。因而,在一些情况期间,片外存储器控制器104正访问存储器子系统以实现处理器102的预取事务处理。在这些相同的情况期间,附加处理器112不立即访问存储器子系统,因为正在使用外部总线105。如果附加处理器112正在等待以初始化预取操作,则附加处理器112在此时间期间遭受故障周期,以等待处理器102完成预取操作。因此,将附加处理器添加到SoC并不必然增加系统的处理能力。每个处理器几乎固定地等待其它处理器的预取操作完成使双处理器系统的性能降低到单处理器系统的性能,或甚至更差。因而,除非添加附加处理器的益处有助于增加处理带宽,否则多处理器系统是不利的。实际上,当两个处理器在互相竞争同一外部总线105资源时,性能降低。
图1c图示多处理器片上系统(SoC)结构121的另一实施例。该SoC内的结构类似于图1b所示的结构。然而,在这种情况下,利用专用处理器122替换附加处理器112。SoC的操作基本上与图1b等同。也就是说,因为每个处理器是不同的,并用于提供不同应用的性能,所以这样的一种系统即使在故障周期很多时也有可能经历性能改善。
当然,故障周期的降低将导致上述任一系统的性能改善。
在此,描述利用到存储器子系统的SoC接口的特性的下一顺序线路预取技术。并不对超高速缓存未命中的每次出现,生成从存储器子系统的单个超高速缓存线路预取,而是生成既读取出现未命中的超高速缓存线路和又读取下一个顺序超高速缓存线路的单个事务处理。结果是单个存储器子系统预取事务处理,在仅从存储器子系统中预取单个超高速缓存线路时与事务处理大小相比,其具有两倍的事务处理大小;当然,恒定的等待时间保持相同。因此,生成单个2n元素请求的预取事务处理,而不是在前n元素不能解决超高速缓存未命中时继之以随后的n元素请求的n元素请求,n是超高速缓存线路内的元素数量。因而,这种类型的预取操作降低了突发性总线使用。当检索2n个元素时,可变的等待时间在这两种情况下是相同的,因为在预取操作中传送相同数量的数据字节。当然,取决于在降低故障周期和突发性总线使用方面哪一个最有效,2n、3n和4n等元素请求预取事务处理是可能的。
图2a图示片上系统结构(SoC)201。该SoC定义耦合到内部数据总线和片外存储器控制器204的处理器202。此片外存储器控制器通过外部数据总线205耦合到形式为动态随机存取存储器(DRAM)的存储器子系统206或第一存储器206。存储器子系统206包括“n”个存储页面206a至206n,其中n个页面中的每个页面都是可以被分别访问的。还提供了超高速缓存缓冲器208,用于从存储器子系统传送的单个超高速缓存线路,并用于在将多超高速缓存线路存储在作为SoC201的一部分提供的超高速缓冲存储器207内之前存储从存储器子系统传送的多超高速缓存线路。
使用片外存储器控制器204来访问任一存储页面206a至206n,以便使用外部数据总线205将数据字节从存储器子系统提供给超高速缓冲存储器207和超高速缓存缓冲器208。典型地,在存储器子系统和超高速缓冲存储器207或超高速缓存缓冲器208之间传送的数据字节量是构成超高速缓存线路的数据字节量;然而,在超高速缓存未命中情况期间,传送构成多个超高速缓存线路的数据字节量。片外存储器控制器204受处理器202的控制,并负责执行从存储器子系统206到超高速缓冲存储器207和超高速缓存缓冲器208的预取事务处理,以降低处理器故障周期。片外存储器控制器204在其中包括用于执行单个超高速缓存线路209a传送操作和用于执行多个超高速缓存线路传送操作的电路。例如,多超高速缓存线路在超高速缓存未命中情况期间传送两个顺序的超高速缓存线路209a和209b。
图2b图示多处理器片上系统(SoC)结构211。该SoC内的结构类似于图2a所示的结构。然而,在这种情况下,已经添加了附加处理器212。两个处理器202和212都耦合到片外存储器控制器204,并在从存储器子系统206中检索数据元素时共享外部数据总线205。因而,在一些情况期间,片外存储器控制器204在访问存储器子系统以实现处理器202的预取事务处理。在这些相同情况期间,附加处理器212未立即访问存储器子系统,因为正在使用外部总线205。
图2c图示多处理器片上系统(SoC)结构221的另一实施例。该SoC内的结构类似于图2b所示的。然而,在这种情况下,专用处理器222替换了附加处理器212。SoC的操作基本上与图2b的相同。
根据图2d,图示一幅流程图,其表示处理器工作在第一操作模式290或第二操作模式291中,用于在预取事务处理中传送数据。在第一操作模式290中,处理器从第一存储器向超高速缓冲存储器传送数据,一次传送N个数据元素,在第二操作模式291中,处理器从第一存储器向超高速缓冲存储器传送数据,一次传送M×N个数据元素,其中M是大于1的整数。
根据图3a,图示存储器子系统存储页面206a,具有在其中存储的五个顺序超高速缓存线路301至305。这些超高速缓存线路中的每个超高速缓存线路分别具有4个数据元素301a至301d直到305a至305d。这些5×4个数据元素位于开始地址0x00到0x10上。如果一般利用An表示数据元素的地址,则使用An+1=An+(4*元素大小)发现到第n个元素的下一个顺序线路。
当从存储器子系统向SoC内的电路单元传送超高速缓存线路时,使用存储器系统,协议。对于这些协议而言,通常存在观察到的三个方面。首先,存储器子系统协议通常支持为事务处理单元大小的2的整数幂的事务处理大小。即,它们使用2的幂即2n的事务处理大小来操作。因此,2、4和8个元素数据传送对于存储器子系统事务处理是常用的。
其次,存储器子系统事务处理存储区域通常是根据事务处理大小被对准的区域。因此,4元素事务处理是指其中第一个元素被四元素对准的区域,如图3a所示,其中AnMOD(元素大小)=0。在存储器子系统内对准超高速缓存线路有助于从存储器子系统内读出这些超高速缓存线路。尽管图3a的超高速缓存线路均具有4个元素,因而Anmod4=0,但也容易支持8元素超高速缓存线路。在图3b中图示包括8个元素超高速缓存线路的存储器。
根据图3b,图示具有其中存储的5个顺序超高速缓存线路311至315的存储器子系统存储页面106a。这些超高速缓存线路之中的每个超高速缓存线路分别包括8个数据元素311a至311h直到315a至315h。这5×8个数据元素位于开始地址0x00至0x20上。如果一般利用An表示这些数据元素的地址,则使用An+1=An+(8*元素大小)发现到第n个元素的下一个顺序线路。
此外,大多数存储器子系统协议支持事务处理内线性地址环绕式处理(wrap around)。因此,如果使用四元素对准边界之外的其他来访问超高速缓存线路,则依然传送这四个数据元素,然而,并不以顺序数据元素递增地址的顺序进行传送。例如,如果对于元素301b出现超高速缓存未命中,则预取事务处理开始于元素301b的地址,因而以下述顺序301b、301c、301d、301a从存储器子系统传送这些数据元素。传送四个元素,因为这是在这个例子中使用的超高速缓存线路大小,并且存储器子系统是四元素线路对准的。只要将导致超高速缓存未命中和在地址0x00上的超高速缓存线路内的元素即元素301b从存储器子系统提供给处理器,则处理器开始未出现故障的操作。当然,为了释放处理器的重新填充单元以便将来使用,从存储器子系统传送整个四元素超高速缓存线路。
尽管看起来图3a和图3b的存储器子系统结构之间的差别仅在于设计选择,但是现在已经发现它支持两种结构,分别用于处理器的不同操作模式,这给整个系统的性能提供了好处。下面参考图4的存储器图进行解释。
在图4中,图示四数据元素对准的存储器结构,具有分隔8数据元素对准的数据元素的粗线。当超高速缓存命中情况出现时,该超高速缓存以与现有技术缓存类似的方式操作,其中因为处理器操作在第一模式290中,在单个存储器存取操作中传送超高速缓存线路。当超高速缓存未命中出现时,因为处理器操作在第二模式291内,在单个存储器存取操作中传送两个超高速缓存线路。优选地,这两个超高速缓存线路是8元素对准的。因而,当对于数据元素401a出现超高速缓存未命中时,检索超高速缓存线路401。然而,当对于元素402e出现超高速缓存未命中时,在第一超高速缓存未命中数据传送操作中传送单个超高速缓存线路;此后,如果超高速缓存未命中情况继续,则检索两个超高速缓存线路401。可选择地,检索两个超高速缓存线路402;这是较为不利的,因为它为了很小可能的增益而增加了总线使用。
当对于元素403a出现超高速缓存未命中时,传送两个超高速缓存线路403增加了将足够的数据存储在超高速缓存内以解决超高速缓存未命中的可能性,并降低了后续超高速缓存未命中的可能性。因为数据元素403a靠近其超高速缓存线路的末尾,所以出现这种可能性。
再次参见图4的存储器图,公开了本发明的另一个实施例。在超高速缓存未命中期间,当满足下述两个条件时:导致超高速缓存线路内超高速缓存未命中的元素是在该超高速缓存线路内的第一元素402a;和导致超高速缓存线路内超高速缓存未命中402a的元素被四数据元素对准以及被八数据元素对准,则执行预取事务处理,用于以两个超高速缓存线路402的形式预取多个超高速缓存线路,每个超高速缓存线路具有四个数据元素。
当满足上述两个条件时,执行双倍大小的预取事务处理,从而使用第二操作模式传送八个数据元素402。这有利地允许处理器无故障地操作,只要将导致超高速缓存未命中的第一元素402a提供给处理器。此外,在将下一线路或预取线路的任何数据元素提供给处理器之前,由处理器检索第一超高速缓存线路的所有数据元素。因此,这允许释放处理器的再填充单元,只要将8元素事务处理的前四个元素提供给处理器。
当超高速缓存线路内的数据元素但非第一数据元素导致超高速缓存未命中时,因为线性地址环绕式处理,在本实施例中避免两个顺序的超高速缓存线路的传送。因此,并不传送来自下一顺序超高速缓存线路的元素,因为该处理器操作在第一操作模式中。
有利地,当指令超高速缓存参考具有非常规律的顺序访问模式时,根据该实施例的预取技术的性能有效地操作。因为当对某一超高速缓存线路的参考出现在存储器子系统中时,在将来很可能参考该顺序超高速缓存线路。因此,通过提供两个超高速缓存线路即当前的和顺序的超高速缓存线路给处理器,减少了处理器故障周期以及与预取事务处理相关的总的恒定等待时间。
用于流/顺序访问模式的数据超高速缓存参考受益于顺序预取。这些访问模式通常在其第一元素上未命中超高速缓存线路。有利地,根据本发明实施例的预取当前和下一顺序超高速缓存线路的处理在出现未命中的超高速缓存线路的第一元素被八元素对准时对于流/顺序访问模式是有益的。
当然,当出现未命中的超高速缓存线路内的第一元素并非八元素对准时,没有系统上的性能命中,因为它默认该系统的“正常”超高速缓存预取操作。
尽管使用单个和双倍超高速缓存线路大小描述了本发明,但是也可以使用其它的多个超高速缓存线路大小。优选地,多个超高速缓存线路大小是2的幂。更优选地,超高速缓存线路内的数据元素数量是2的幂。
在不脱离本发明的精神或范围的情况下,可以预见许多其它的实施例。

Claims (29)

1.一种超高速缓存线路读取的方法,包括以下步骤:提供第一存储器(206),其中具有存储器位置,用于存储第一组N个数据元素(209a)和第二相邻组N个数据元素(209b),这两组数据元素在第一存储器(206)内进行线路对准,其中N个数据元素构成整数个线路;提供超高速缓冲存储器(207);提供处理器(202),用于访问超高速缓冲存储器(207)和用于在两个模式即第一模式(290)和第二模式(291)之中的每个模式内操作;确定处理器的操作模式;当处理器处于第一操作模式(290)中时,一次N个数据元素地将数据从第一存储器传送到超高速缓冲存储器(207);和至少若干次当处理器处于第二操作模式(291)中时,一次M×N个数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器,其中M是大于1的整数。
2.根据权利要求1的方法,其中第一模式(290)包括超高速缓存命中模式,其中在请求时由处理器所请求的数据存储在超高速缓冲存储器(207)内,和其中第二模式(291)包括超高速缓存未命中模式,其中在请求时由处理器所请求的数据并不存储在超高速缓冲存储器内。
3.根据权利要求2的超高速缓存线路读取的方法,包括以下步骤:确定已经出现超高速缓存未命中的数据元素(402a)是否在第一存储器(206)内被M线路对准,和其中仅在数据元素(402a)被M线路对准时,执行一次M×N数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器(207)的步骤。
4.根据权利要求3的方法,其中M是2的幂。
5.根据权利要求4的方法,其中M是2。
6.根据权利要求5的方法,其中N=4。
7.根据权利要求2的方法,包括以下步骤:确定已经出现超高速缓存未命中的数据元素(402a)是否在第一存储器(206)内被M线路对准的数据元素(402)的线路内,和其中仅当数据元素(402a)被M线路对准时,执行一次M×N数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器(207)的步骤。
8.根据权利要求7的方法,其中M是2的幂。
9.根据权利要求8的方法,其中M是2。
10.根据权利要求9的方法,其中N=4。
11.一种存储器,其中存储数据,该数据涉及用于执行下述步骤的指令:从包括第一操作模式(290)和第二操作模式(291)的多个操作模式中确定处理器的操作模式;当处理器处于第一操作模式中时,一次N个数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器(207);和至少若干次当处理器处于第二操作模式(291)中时,一次M×N个数据元素地将数据从第一存储器(206)传送到超高速缓冲存储器(207),其中M是大于1的整数。
12.根据权利要求11的存储器,其中该数据用于执行指令,以使第一模式(290)包括超高速缓存命中模式,其中在请求时由处理器所请求的数据存储在超高速缓冲存储器(207)内,和其中第二模式(291)包括超高速缓存未命中模式,其中在请求时由处理器(202)所请求的数据并不存储在超高速缓存内。
13.根据权利要求12的存储器,其中该数据涉及用于执行下述步骤的指令:确定已经出现超高速缓存未命中的数据元素是否在第一存储器(206)内被M线路对准,和其中仅当数据元素被M线路对准时,执行一次M×N数据元素地将数据从第一存储器(206)传送给超高速缓冲存储器(207)的步骤。
14.根据权利要求13的存储器,其中M是2的幂。
15.根据权利要求14的存储器,其中M是2。
16.根据权利要求15的存储器,其中N=4。
17.根据权利要求12的存储器,其中该数据涉及用于执行下述步骤的指令:确定已经出现超高速缓存未命中的数据元素(402a)是否在第一存储器(206)内被M线路对准的数据元素的线路内,和其中仅当数据元素被M线路对准时,执行一次M×N数据元素(402a)地将数据从第一存储器(206)传送到超高速缓冲存储器(207)的步骤。
18.根据权利要求17的方法,其中M是2的幂。
19.根据权利要求18的方法,其中M是2。
20.根据权利要求19的方法,其中N=4。
21.一种存储器系统电路,包括:超高速缓冲存储器(207);和超高速缓存线路读取电路(204),用于在第一模式操作中,在单个操作中将构成一个或多个超高速缓存线路的N个数据元素读取到超高速缓冲存储器内,并在第二其他操作模式中,在单个操作中将构成多个超高速缓存线路的M个数据元素读取到超高速缓冲存储器内,其中M>N,并且其中M和N之中的每个都是整数个超高速缓存线路。
22.根据权利要求21的存储器系统电路,其中N个数据元素构成一个超高速缓存线路,和M个数据元素构成多个超高速缓存线路。
23.根据权利要求22的存储器系统电路,其中M个数据元素构成两个超高速缓存线路。
24.根据权利要求23的存储器系统,其中N=4。
25.根据权利要求23的存储器系统,包括用于操作在超高速缓存命中操作模式和超高速缓存未命中操作模式中的处理器,和其中第一操作模式(290)是处理器的超高速缓存命中操作模式和第二其他操作模式(291)是处理器的超高速缓存未命中操作模式。
26.根据权利要求21的存储器系统,包括用于操作在超高速缓存命中操作模式和超高速缓存未命中操作模式中的处理器(202),和其中第一操作模式(290)是处理器(202)的超高速缓存命中操作模式和第二其他操作模式(291)是处理器(202)的超高速缓存未命中操作模式。
27.根据权利要求26的存储器系统,其中第二其他操作模式(291)是超高速缓存未命中模式,其中超高速缓存未命中涉及为M数据元素对准的数据元素的超高速缓存线路内的数据元素。
28.根据权利要求27的存储器系统,其中第二其他操作模式(291)是超高速缓存未命中模式,其中超高速缓存未命中涉及M数据元素对准的数据元素。
29.一种存储器系统电路,包括:超高速缓冲存储器(207);和超高速缓存线路读取电路(204),用于在第一超高速缓存命中操作模式(290)中,在单个操作中将构成一个或多个超高速缓存线路的N个数据元素读取到超高速缓冲存储器(206)内,并用于若干次在第二超高速缓存未命中操作模式(291)中,在单个操作中将构成多个超高速缓存线路的M个数据元素读取到超高速缓冲存储器(206)内,其中M>N,并且其中M和N之中的每个都是整数个超高速缓存线路。
CNB038199335A 2002-08-23 2003-08-15 处理器预取以匹配存储器总线协议特性 Expired - Fee Related CN100390757C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/226,158 2002-08-23
US10/226,158 US7162588B2 (en) 2002-08-23 2002-08-23 Processor prefetch to match memory bus protocol characteristics

Publications (2)

Publication Number Publication Date
CN1679006A true CN1679006A (zh) 2005-10-05
CN100390757C CN100390757C (zh) 2008-05-28

Family

ID=31887174

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038199335A Expired - Fee Related CN100390757C (zh) 2002-08-23 2003-08-15 处理器预取以匹配存储器总线协议特性

Country Status (6)

Country Link
US (1) US7162588B2 (zh)
EP (1) EP1535163A1 (zh)
JP (1) JP2005536798A (zh)
CN (1) CN100390757C (zh)
AU (1) AU2003255978A1 (zh)
WO (1) WO2004019213A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241475B (zh) * 2006-12-22 2011-09-28 英特尔公司 从动态随机存取存储器到静态随机存取存储器的预取
CN102591799A (zh) * 2011-12-30 2012-07-18 华为技术有限公司 一种存放数据的方法和装置
CN102884489A (zh) * 2010-05-03 2013-01-16 高通股份有限公司 针对通信端口采用可变时钟选通滞后的设备和方法
CN106844231A (zh) * 2016-12-23 2017-06-13 北京北大众志微系统科技有限责任公司 末级高速缓存软硬件协作分区域管理系统及管理方法
CN106844232A (zh) * 2016-12-23 2017-06-13 北京北大众志微系统科技有限责任公司 一种面向多核处理器的共享末级高速缓存访存方法和装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW576977B (en) * 2002-09-11 2004-02-21 Sunplus Technology Co Ltd Structure and method for planning control commands and data access
US7237068B2 (en) * 2003-01-28 2007-06-26 Sun Microsystems, Inc. Computer system employing bundled prefetching and null-data packet transmission
US7904887B2 (en) * 2006-02-16 2011-03-08 International Business Machines Corporation Learning and cache management in software defined contexts
JP4574712B2 (ja) * 2006-02-28 2010-11-04 富士通株式会社 演算処理装置、情報処理装置及び制御方法
US20080098176A1 (en) * 2006-10-18 2008-04-24 Krishna M V V Anil Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US8473688B2 (en) * 2010-03-26 2013-06-25 Microsoft Corporation Anticipatory response pre-caching
JP5598337B2 (ja) * 2011-01-12 2014-10-01 ソニー株式会社 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
US9507628B1 (en) 2015-09-28 2016-11-29 International Business Machines Corporation Memory access request for a memory protocol

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989009444A1 (en) * 1988-04-01 1989-10-05 Digital Equipment Corporation Cache with at least two fill sizes
US4994962A (en) * 1988-10-28 1991-02-19 Apollo Computer Inc. Variable length cache fill
US5784711A (en) 1990-05-18 1998-07-21 Philips Electronics North America Corporation Data cache prefetching under control of instruction cache
US5752263A (en) * 1995-06-05 1998-05-12 Advanced Micro Devices, Inc. Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US5835929A (en) * 1996-05-20 1998-11-10 Integrated Device Technology, Inc. Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of a line fill
US5854934A (en) * 1996-08-23 1998-12-29 Hewlett-Packard Company Optimizing compiler having data cache prefetch spreading
US6279081B1 (en) * 1998-12-22 2001-08-21 Hewlett-Packard Company System and method for performing memory fetches for an ATM card
DE19939764A1 (de) * 1999-08-21 2001-02-22 Philips Corp Intellectual Pty Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
US6754780B1 (en) * 2000-04-04 2004-06-22 Hewlett-Packard Development Company, L.P. Providing data in response to a read command that maintains cache line alignment
TW480406B (en) * 2000-08-09 2002-03-21 Via Tech Inc Two-way cache system of peripheral device interface and its operating method
US6499085B2 (en) * 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US6584549B2 (en) * 2000-12-29 2003-06-24 Intel Corporation System and method for prefetching data into a cache based on miss distance
US6662277B2 (en) * 2001-07-31 2003-12-09 Hewlett-Packard Development Company, L.P. Cache system with groups of lines and with coherency for both single lines and groups of lines

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241475B (zh) * 2006-12-22 2011-09-28 英特尔公司 从动态随机存取存储器到静态随机存取存储器的预取
CN102884489A (zh) * 2010-05-03 2013-01-16 高通股份有限公司 针对通信端口采用可变时钟选通滞后的设备和方法
US9285860B2 (en) 2010-05-03 2016-03-15 Qualcomm Incorporated Apparatus and methods employing variable clock gating hysteresis for a communications port
CN102884489B (zh) * 2010-05-03 2016-09-21 高通股份有限公司 针对通信端口采用可变时钟选通滞后的设备和方法
CN102591799A (zh) * 2011-12-30 2012-07-18 华为技术有限公司 一种存放数据的方法和装置
CN102591799B (zh) * 2011-12-30 2015-04-15 华为技术有限公司 一种存放数据的方法和装置
US9208085B2 (en) 2011-12-30 2015-12-08 Huawei Technologies Co., Ltd. Method and apparatus for storing data
CN106844231A (zh) * 2016-12-23 2017-06-13 北京北大众志微系统科技有限责任公司 末级高速缓存软硬件协作分区域管理系统及管理方法
CN106844232A (zh) * 2016-12-23 2017-06-13 北京北大众志微系统科技有限责任公司 一种面向多核处理器的共享末级高速缓存访存方法和装置

Also Published As

Publication number Publication date
AU2003255978A1 (en) 2004-03-11
US7162588B2 (en) 2007-01-09
WO2004019213A1 (en) 2004-03-04
JP2005536798A (ja) 2005-12-02
EP1535163A1 (en) 2005-06-01
US20040039878A1 (en) 2004-02-26
CN100390757C (zh) 2008-05-28

Similar Documents

Publication Publication Date Title
US6725334B2 (en) Method and system for exclusive two-level caching in a chip-multiprocessor
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
CN1240000C (zh) 用于改进超高速缓存性能的输入/输出页面删除确定
CN100375067C (zh) 异构多核微处理器局部空间共享存储方法
US6138213A (en) Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
CN102804152B (zh) 对存储器层次结构中的闪存的高速缓存一致性支持
US7711902B2 (en) Area effective cache with pseudo associative memory
US4933837A (en) Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
JP3197866B2 (ja) キャッシュの操作を改良する方法及びコンピュータ・システム
CN1679006A (zh) 处理器预取以匹配存储器总线协议特性
US8593474B2 (en) Method and system for symmetric allocation for a shared L2 mapping cache
CN101042679A (zh) 维护存储器一致性的方法和系统
CN1820257A (zh) 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器
CN1955948A (zh) 用于管理高速缓存数据的数字数据处理设备和方法
CN1746867A (zh) 使用核心指示符的高速缓存过滤
CN1320464C (zh) 用于维持共享高速缓存一致性的方法和设备
US6715035B1 (en) Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency
JP2005346215A (ja) 情報処理装置および情報処理方法
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
CN1849591A (zh) 使用高速缓存未命中模式来寻址跨距预测表
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
CN1829976A (zh) 具有动态存储分配的集成电路
CN111273860A (zh) 一种基于网络和页粒度管理的分布式内存管理方法
JPH10301850A (ja) データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム
US6775742B2 (en) Memory device storing data and directory information thereon, and method for providing the directory information and the data in the memory device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20070817

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20070817

Address after: Holland Ian Deho Finn

Applicant after: NXP B.V.

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NITAI SOFTWARE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120321

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120321

Address after: Delaware

Patentee after: NYTELL SOFTWARE LLC

Address before: Holland Ian Deho Finn

Patentee before: NXP B.V.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080528

CF01 Termination of patent right due to non-payment of annual fee