CN101228512B - 用于管理高速缓冲存储器存取的方法和设备 - Google Patents
用于管理高速缓冲存储器存取的方法和设备 Download PDFInfo
- Publication number
- CN101228512B CN101228512B CN2006800271420A CN200680027142A CN101228512B CN 101228512 B CN101228512 B CN 101228512B CN 2006800271420 A CN2006800271420 A CN 2006800271420A CN 200680027142 A CN200680027142 A CN 200680027142A CN 101228512 B CN101228512 B CN 101228512B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- data
- cache memory
- banks
- 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.)
- Active
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
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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
Abstract
在多处理器系统中,控制对给定处理器的以内存库工作的高速缓冲存储器的存取,使得共享数据存取指向指定用于保存共享数据的一个或一个以上内存库,且/或非共享数据存取指向指定用于保存非共享数据的一个或一个以上内存库。可将非共享数据内存库指定为专门用于保存非共享数据,使得共享数据存取不会干扰对所述内存库的非共享存取。而且,可将共享数据内存库指定为专门用于保存共享数据,且可将一个或一个以上内存库指定为用于保存共享和非共享数据两者。存取控制电路基于接收到与存取相关联的共享指示信号,而将共享和非共享存取指向各自的内存库。另外,在一个或一个以上实施例中,所述存取控制电路响应于内存库配置信号而重新配置一个或一个以上内存库指定。
Description
技术领域
本发明大体上涉及微处理器,且具体地说,涉及管理微处理器高速缓冲存储器。
背景技术
较高性能的微处理器常使用分层存储器结构,包含基本量的主存储器和一个或一个以上更高等级的较小、较快的高速缓冲存储器,以便使存储器的速度与处理器速度更紧密地匹配。举例来说,级1(L1)高速缓冲存储器通常驻存在芯片上,并代表可用于微处理器的最小、最快的高速缓冲存储器。级2(L2)高速缓冲存储器驻存在芯片上或芯片外,并与用于微处理器的L1高速缓冲存储器相比,提供稍慢但通常较大量的高速缓冲存储器。在微处理器与主存储器之间可能存在额外等级的逐渐更慢(且更大)的高速缓冲存储器。
在操作中,高速缓冲存储器作为微处理器与(相比而言)较慢的主存储器之间的缓冲器而操作,且用于保存微处理器最可能需要的指令和/或数据的副本。如果所需指令或数据项的副本驻存在高速缓冲存储器中,那么微处理器读取/写入所述副本,而不是存取主存储器,且因此避免了与主存储器存取相关联的潜在长得多的存取延迟。
在两个或两个以上微处理器共享存储器空间的多处理器环境下,高速缓存操作变得更加复杂。在此类环境下,两个或两个以上微处理器可能高速缓存来自主存储器的同一数据。即,多个微处理器每一者可能高速缓存来自主存储器的同一数据项的副本。为了确保每个微处理器存取给定数据项的最新近更新的值,必须使用某种方法来使微处理器之间的高速缓冲存储器同步。高速缓冲存储器同步通过提供某种机制防止个别微处理器使用值已经通过其它微处理器的操作而变得过时的数据项,来维持高速缓冲存储器“相干性”。高速缓冲存储器同步可由硬件强制执行的相干性或由软件通过高速缓冲存储器管理指令来管理。
一种类型的硬件强制执行的高速缓冲存储器相干性是“广播”型途径。用于高速缓冲存储器同步的基于广播的途径通常依靠每个微处理器来传输与数据存储器操作有关的消息。个别微处理器或其高速缓冲存储器控制器进而监视(“监听”)那些消息,以确定另一微处理器的动作是否已经使保存在其相关联高速缓冲存储器中的任何数据项无效。
使用这些所谓的“监听”总线因此代表维持多处理器系统中的高速缓冲存储器相干性的相对较直接且有效的方法。然而,监听总线可能减小高速缓冲存储器的有效存取带宽,因为通常在用于由微处理器进行的本地产生的高速缓冲存储器存取的同一“端口”或存取总线上支持对给定高速缓冲存储器的监听业务存取。监听业务的量随着微处理器计数增加而显著增加,且最终,监听业务的量可能显著限制整体系统性能。
对大量监听业务所提出的高速缓冲存储器存取干扰问题的各种解决方法包含使用多端口高速缓冲存储器,其中监听业务和本地产生的业务在不同端口上存取高速缓冲存储器。然而,此类配置可显著增加高速缓冲存储器的尺寸、功率消耗和费用。
发明内容
在以内存库工作的高速缓冲存储器管理方法的至少一个实施例中,通过减少或消除以内存库工作的高速缓冲存储器的至少一个高速缓冲存储器内存库中的共享数据与非共享数据的混合,来减少共享数据高速缓冲存储器存取(例如,与监听业务相关联的高速缓冲存储器存取)与非共享数据高速缓冲存储器存取之间的干扰。减少或消除此类混合可包括指定所述以内存库工作的高速缓冲存储器的一个或一个以上内存库用于保存共享数据,且将对共享数据的高速缓冲存储器存取指向所指定的一个或一个以上高速缓冲存储器内存库。另外(或作为替代),可通过指定所述以内存库工作的高速缓冲存储器的一个或一个以上内存库用于保存非共享数据,且将对非共享数据的高速缓冲存储器存取指向所指定的一个或一个以上高速缓冲存储器内存库,来减少或消除此类混合。
举例来说,给定高速缓冲存储器存取(读取或写入)根据“内存库选择函数”指向特定高速缓冲存储器内存库中的特定高速缓冲存储器位置,所述“内存库选择函数”可能至少部分地由一个或一个以上高速缓冲存储器存取地址信号来驱动。如本文所使用,术语“内存库选择函数”涵盖用于为特定高速缓冲存储器存取地址选择特定内存库的多种不同方法和算法。举例来说,所述术语可涵盖地址和/或其它信号散列函数,或代表直接的地址解码。
然而,根据如本文所教示的高速缓冲存储器管理的至少一个实施例来实施内存库选择函数,存取类型指示符(例如,共享存取指示符)修改所述内存库选择函数,使得对共享数据和/或对非共享数据的高速缓冲存储器存取被指向(导向)以内存库工作的高速缓冲存储器中的一个或一个以上指定内存库。举例来说,内存库选择函数可将共享存取指向共享存取内存库或指向混合(共享与非共享)存取内存库。此动作“集中”对指定用于保存共享数据的内存库中的共享数据的高速缓冲存储器存取活动。类似地,可使用存取类型指示符来修改内存库选择函数,以便将非共享存取指向非共享存取内存库或指向混合存取内存库,以集中对指定用于保存非共享数据的内存库中的非共享数据的高速缓冲存储器存取活动。在这两种情况下,针对以内存库工作的高速缓冲存储器中的至少一个内存库,减少或消除了共享数据存取与非共享数据存取之间的干扰。
针对以内存库工作的高速缓冲存储器中的至少一个内存库而减少共享数据高速缓冲存储器存取与非共享数据高速缓冲存储器存取之间的干扰的一般方法包括:指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据,所述第一类型的数据是共享数据和非共享数据中的一者,以及将对第一类型的数据的高速缓冲存储器存取指向所述一个或一个以上第一内存库。所述方法可进一步包括指定所述以内存库工作的高速缓冲存储器的一个或一个以上第二内存库用于保存第二类型的数据,所述第二类型的数据是共享和非共享数据中的另一者,以及将对第二类型的数据的高速缓冲存储器存取指向所述一个或一个以上第二内存库。任何或所有此类指定都可能是专用的或非专用的(混合的)。
实施上述方法或上述方法的变化形式的以内存库工作的高速缓冲存储器的一个实施例包括存取控制电路,其经配置以基于将对第一类型的数据的高速缓冲存储器存取指向以内存库工作的高速缓冲存储器的指定用于保存第一类型的数据的一个或一个以上第一高速缓冲存储器内存库,而减少共享数据高速缓冲存储器存取与非共享数据高速缓冲存储器存取之间的干扰,所述第一类型的数据是共享数据与非共享数据中的一者。所述存取控制电路进一步可将对第二类型的数据的高速缓冲存储器存取指向以内存库工作的高速缓冲存储器的一个或一个以上第二高速缓冲存储器内存库,其中所述第二类型的数据是共享和非共享数据中的另一者。
在此类实施例中,存取控制电路可直接或间接响应于存取类型指示符,所述存取类型指示符可以是提供到以内存库工作的高速缓冲存储器的与高速缓冲存储器存取相关联的共享存取信号。共享存取指示符信号的逻辑状态或值或某一其它特性指示给定高速缓冲存储器存取是否针对共享(或非共享)数据,且存取控制电路的内存库选择函数相应地修改,以将高速缓冲存储器存取指向适当的高速缓冲存储器内存库。
还可根据内存库配置信号来修改内存库选择函数。即,可根据需要或要求来改变以内存库工作的高速缓冲存储器的配置,使得可改变将一个或一个以上内存库指定为用于共享数据、非共享数据或混合数据。此类改变可在计算机操作系统级进行控制,和或由在与以内存库工作的高速缓冲存储器相关联的处理器上运行的个别程序来控制。
附图说明
图1是说明包含以内存库工作的高速缓冲存储器的多处理器电路的框图。
图2是说明图1的多处理器电路中的处理器和以内存库工作的高速缓冲存储器的给定一者的框图。
图3是说明根据非共享/共享数据存取类型来控制以内存库工作的高速缓冲存储器存取的一个实施例的逻辑流程图。
图4是说明用于控制以内存库工作的高速缓冲存储器存取的存取控制电路的一个实施例的框图。
图5是说明具有非共享和共享内存库布置的以内存库工作的高速缓冲存储器的框图。
图6是说明用于控制以内存库工作的高速缓冲存储器存取的存取控制电路的另一实施例的框图。
图7是说明具有另一非共享和共享内存库布置的以内存库工作的高速缓冲存储器的框图。
具体实施方式
图1至少部分地说明多处理器电路8,其包含多个微处理器10和相关联的存储器高速缓冲存储器12,所述存储器高速缓冲存储器12通过系统总线14耦合到主存储器16。处理器10可实施在一起,例如在一个集成电路装置、芯片上系统电路(多芯片模块)中,或可单独地实施。类似地,高速缓冲存储器12可整体或部分地集成到处理器10中,或可单独地实施。举例来说,高速缓冲存储器12-1可包含:等级1(L1)高速缓冲存储器,其包含在处理器10-1内;和等级2(L2)高速缓冲存储器,其在内部或在外部实施。处理器10-1的所说明的实施例包含高速缓冲存储器控制器18-1,其可包含许多存储器管理特征。类似的配置可用于处理器10-2和10-3,且用于其相应的高速缓冲存储器12-2和12-3。
当然,针对处理器10和高速缓冲存储器12选出的一般物理实施方案通常与本文所论述的高速缓冲存储器存取控制方法和设备没有密切关系,且所属领域的技术人员将了解各种电路实施方案变化的可能。举例来说,可根据需要或要求使用比所说明的更大或更小数目的处理器10和相应的高速缓冲存储器12。
考虑到这些变化,多处理器电路8可作为对称多处理(SMP)电路而操作,其中处理器10协作地执行一个或一个以上计算机程序、程序线程等。处理器10每一者可包括精简指令集计算机(RISC)处理器,其包含具有一个或一个以上指令执行管线的核心单元,且进一步包含用于预测性地高速缓存指令和数据的预取出单元,用于跟踪存储器映射和许可的转译后备缓冲器(translation look-aside buffer)等。而且,如所述,处理器10中的每一者可进一步包含高速缓冲存储器控制器18,其可包括将所述处理器介接到高速缓冲存储器12中的个别一者、介接到系统总线14且介接到主存储器16的较大存储器管理单元的一部分。当然,处理器10中的每一者可进一步包括未说明的功能元件,例如调试电路等。
主存储器16可配置有一个或一个以上范围的用于保存可由所述处理器10中的任一者或一者以上操作的数据的“共享”存储器,和一个或一个以上范围的供处理器10中的特定处理器使用的“非共享”存储器。在所述情形下,处理器10中的每一者可在高速缓冲存储器12的相应一者中高速缓存非共享与共享数据的混合。在一个或一个以上实施例中,将高速缓冲存储器12中的至少一者配置为以内存库工作的高速缓冲存储器,其包括两个或两个以上高速缓冲存储器内存库。优选地,不同内存库提供独立的可存取性,使得对一个内存库的存取不干扰对另一内存库的存取。
由于需要在高速缓冲存储器12之间维持数据相干性,所以多处理电路8使用一种或一种以上形式的基于“广播”的数据相干性协议,也称为“监听”协议。通过监听,处理器10中的一者对共享数据的经高速缓存副本的操作由其余处理器10所了解,使得可作出适当的高速缓冲存储器冲刷和/或主存储器更新,以确保处理器10中的每一者对所述共享数据的有效当前副本进行操作。
举非限制性实例,多处理电路的监听协议可以是基于写入广播的,其中处理器10和/或高速缓冲存储器12中的每一者将所有写入发送到系统总线14上,使得其它处理器/高速缓冲存储器可根据需要更新其各自的经高速缓存的数据。或者,可使用写入失效协议,其中写入到高速缓冲存储器12的一者中的给定高速缓冲存储器线致使同一高速缓冲存储器线出现在待失效的其它高速缓冲存储器12中的任一者中。(“高速缓冲存储器线”通常包括从主存储器中的特定地址范围高速缓存的给定数据块)。当然,可针对多处理电路8实施其它监听协议,例如修改-共享-无效(Modified-Shared-Invalid,MSI)、修改-专用-共享-无效(MESI)或修改-拥有者-专用-共享-无效(MOESI)。
在一种或一种以上形式的监听业务在系统总线14上流动的情况下,对高速缓冲存储器12的存取可包含大量的与维持高速缓冲存储器12上的共享数据相干性相关联的监听业务。另外,处理器10中的每一者对保存在其相关联高速缓冲存储器12中的共享数据和非共享数据两者进行本地存取,以满足在其上执行的代码的要求。举例来说,对高速缓冲存储器12-1的存取包括用于维持数据相干性的与监听有关的共享数据存取与由处理器10-1进行的与其正在进行的程序指令的执行相关联而实行的本地存取的混合。常规上,对同一高速缓存端口或对以内存库工作的高速缓冲存储器中的同一内存库的与监听有关和与操作有关的存取在总体高速缓冲存储器存取带宽方面彼此竞争。因而,在常规系统中,监听业务因此通过与非监听高速缓冲存储器存取竞争可用的高速缓冲存储器带宽而减小有效性能。
图2说明处理器10-1(也称为“P1”)及其相关联高速缓冲存储器12-1的一个实施例。在图示中,以内存库工作的高速缓冲存储器12-1包括存取控制电路20,和四个高速缓冲存储器内存库22-1到22-4。可根据需要或要求实施更大或更小数目的高速缓冲存储器内存库22。而且,在以内存库工作的高速缓冲存储器12-1包括芯片外L2高速缓冲存储器的情况下,存取控制电路20作为以内存库工作的高速缓冲存储器12-1的一部分而实施可能是有利的。然而,在一个或一个以上实施例中,存取控制电路20作为处理器10-1的一部分在机上实施。在此类实施例中,存取控制电路20可实施为高速缓冲存储器控制器18-1的一部分。
在任何情况下,在操作中,存取控制电路20认可高速缓冲存储器存取与非共享数据或共享数据有关,且根据与内存库22相关联的非共享/共享指定而相应地引导那些存取。在一个或一个以上实施例中,此类认可基于处理器10-1向存取控制电路提供共享存取指示信号和/或内存库配置信号。可针对处理器10-2和10-3(即P2、P3)中的任一者或一者以上且针对其相应的高速缓冲存储器12-2和12-3采用相同或类似的配置。
无论如何,以内存库工作的高速缓冲存储器12中的给定一者内的内存库22的每一者优选地可独立地存取,使得对内存库22中的一者的存取不干扰对其余内存库22的存取。通过所述高速缓冲存储器配置,内存库22中的一者或一者以上可被指定为用于保存非共享数据、共享数据或其混合。
如果内存库22中的特定内存库被指定为专门用于保存非共享数据,那么与维持共享数据相干性相关联的与监听有关的存取都不会干扰对内存库22中的那些特定内存库的本地非共享数据存取。当然,内存库22中的特定内存库可被指定为专门用于保存共享数据,或用于保存共享与非共享数据的混合。一般来说,内存库22中的不同内存库可被指定为用于非共享用途、共享用途或混合用途,且为内存库22中的至少一者保留本地处理器存取带宽的方法包括从所述至少一个内存库中排除共享数据。以此方式引导共享和非共享数据存取取决于与内存库22中的特定内存库相关联的不同指定。
更概括地说,存取控制电路20的实施例可经配置以实施针对以内存库工作的高速缓冲存储器中的至少一个内存库减少共享数据高速缓冲存储器存取与非共享数据高速缓冲存储器存取之间的干扰的方法。举例来说,存取控制电路20可通过指定以内存库工作的高速缓冲存储器12的一个或一个以上第一内存库22用于保存第一类型的数据(所述第一类型的数据是共享数据和非共享数据中的一者),且将对第一类型的数据的高速缓冲存储器存取指向所述一个或一个以上第一内存库,来减少此类干扰。可基于向存取控制电路12提供的与高速缓冲存储器存取相关联的存取类型指示符,将存取认可为以第一类型的数据为目标。
存取控制电路20进一步可经配置以指定以内存库工作的高速缓冲存储器12的一个或一个以上第二内存库22用于保存第二类型的数据,所述第二类型的数据是共享和非共享数据中的另一者,且将对第二类型的数据的高速缓冲存储器存取指向所述一个或一个以上第二内存库22。在此类实施例中,指定以内存库工作的高速缓冲存储器12的一个或一个以上第一内存库22用于保存第一类型的数据可包括指定第一高速缓冲存储器内存库22用于保存共享数据。类似地,指定一个或一个以上第二高速缓冲存储器内存库22用于保存第二类型的数据可包括指定第二高速缓冲存储器内存库22用于保存非共享数据。
通过这种布置,将对第一类型的数据的高速缓冲存储器存取指向高速缓冲存储器内存库22中的所述第一者,且将对非共享数据的高速缓冲存储器存取指向高速缓冲存储器内存库22中的所述第二者。还应注意,此类指定之一或两者可以是专用的,使得所有的共享和/或非共享存取都被专门指向以内存库工作的高速缓冲存储器12中的一个或一个以上指定内存库22。然而,所述指定还可以是非专用的,使得至少对于给定范围的高速缓冲存储器地址来说,共享和非共享存取两者都指向同一内存库。甚至在高速缓冲存储器内存库22中的给定一者被指定为混合内存库的情况下,也可控制所述内存库的用于共享或非共享数据的量或百分比,例如其可主要用于共享或非共享数据,使得所述内存库中对于非主要类型的数据的存取干扰最小。
存取类型指示符可以是在软件控制下设置的信号或其它类型的值。举例来说,存取类型指示符可包括微处理器10内的由软件编写的页面表中的位,使得硬件(例如,处理器10)在基于给定存储器地址执行页面表查找之后具有对指示符的存取权。在另一实施例中,存取类型指示符可包括对照处理器10内的一些软件编写的配置寄存器进行地址解码/比较的结果。举例来说,软件可对两个寄存器进行配置以指示共享区域开头和结尾,且处理器10可通过对照那些寄存器而比较存取地址的全部或一部分以确定给定存取是共享的还是非共享的,来将存取类型指示符信号设置为适当的状态。
在又一实施例中,处理器10内的软件编程的寄存器用于指示某一类型的存取是共享的还是非共享的,且所述寄存器的状态或值因此充当存取类型指示符信号。共享/非共享确定可基于软件对何种类型的存取能够存取存储器的哪些区域的了解。此类布置可能对与高速缓冲存储器管理操作、转译后备缓冲器(TLB)管理操作和其它专门功能(例如,数据流动(data streaming)等)相关联的存取有用。
无论如何,考虑到上述共享/非共享存取引导方法,图3说明可经实施以支持引导共享和非共享存取的处理逻辑,且所述处理逻辑将所述高速缓冲存储器12的任一者或一者以上中的内存库22中的特定内存库指定为共享或非共享(步骤100)而开始。此步骤可以是隐式步骤,例如在以内存库工作的高速缓冲存储器12配置有预界定的共享和非共享内存库指定的情况下,或此步骤可以是其中内存库指定是可配置的实施例中的显式步骤。
假定作出所需指定,那么处理通过进行高速缓冲存储器存取(步骤102),和将存取类型确定为共享或非共享(步骤104)而继续。如果所述存取是针对共享数据的(步骤106处,是),那么其指向内存库22中被指定为保存共享数据的一者。相反,如果所述存取是针对非共享数据的(步骤106处,否),那么其指向内存库22中被指定为保存非共享数据的一者。
图4说明存取控制电路20的一个实施例,所述存取控制电路20包括内存库选择器电路24,其经配置以基于“散列”针对高速缓冲存储器存取而产生的一个或一个以上地址位,将高速缓冲存储器存取指向非共享或共享内存库22。举例来说,对于两个内存库22,可使用一个或一个以上地址线来分别对应于共享或非共享存取而产生“BANK 0”选择信号或“BANK 1”选择信号。图5说明两个此类选择性地存取的内存库22。
类似地,图6和图7分别说明存取控制电路20的另一实施例,和共享和非共享内存库指定的相应实例。更具体地说,图6中所说明的存取控制电路20的实施例根据散列一个或一个以上地址线和共享存取指示信号以及(视情况)内存库配置信号,来引导非共享和共享数据高速缓冲存储器存取。共享存取指示符信号可包括一个或一个以上位,且可根据正逻辑或负逻辑而被断言,以指示给定高速缓冲存储器存取是针对映射到主存储器的共享或非共享区域的高速缓冲存储器线的。此类共享指示可根据经存储以供处理器使用的存储器页面信息而容易地产生。类似于共享指示信号,内存库配置信号可以是一个或一个以上位,且可以是处理器产生的。
将处理器10-1用作实例,高速缓冲存储器控制器18-1可经配置以产生共享指示符信号和/或内存库配置信号,以支持存取控制电路20的操作。在需要的情况下,高速缓冲存储器控制器18-1可经配置以响应于(例如)主存储器16的重新映射,或响应于不同操作系统或程序模式而动态地更新内存库配置信号。在此类情况下,高速缓冲存储器控制器18-1可经配置以作为对共享/非共享内存库指定进行重新配置的一部分而冲刷以内存库工作的高速缓冲存储器12-1或以其它方式使其无效或对其进行清除。所属领域的技术人员将了解,处理器10-2和10-3、高速缓冲存储器控制器18-2和18-3以及以内存库工作的高速缓冲存储器12-2和12-3的任一者或一者以上中可存在类似配置。
当然,所属领域的技术人员应了解,本文的论述内容涉及各种说明性实施例且不限制本发明,附图也不限制本发明。事实上,本发明仅受所附权利要求书及其合法均等物限制。
Claims (22)
1.一种针对以内存库工作的高速缓冲存储器中的至少一个内存库,减少与多处理器系统中的高速缓冲存储器监听业务相关的共享数据高速缓冲存储器存取和针对存取处理器专用的数据的非共享数据高速缓冲存储器存取之间的干扰的方法,所述方法包括:
指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据,所述第一类型的数据是共享数据和非共享数据中的一者;以及
将对所述第一类型的数据的高速缓冲存储器存取指向所述一个或一个以上第一内存库。
2.根据权利要求1所述的方法,其进一步包括指定所述以内存库工作的高速缓冲存储器的一个或一个以上第二内存库用于保存第二类型的数据,所述第二类型的数据是共享和非共享数据中的另一者,以及将对所述第二类型的数据的高速缓冲存储器存取指向所述一个或一个以上第二内存库。
3.根据权利要求2所述的方法,其中指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据包括指定所述以内存库工作的高速缓冲存储器的第一高速缓冲存储器内存库用于保存共享数据,且其中指定一个或一个以上第二高速缓冲存储器内存库用于保存第二类型的数据包括指定所述以内存库工作的高速缓冲存储器的第二高速缓冲存储器内存库用于保存非共享数据。
4.根据权利要求3所述的方法,其中将对所述第一类型的数据的高速缓冲存储器存取指向所述一个或一个以上第一内存库包括将对共享数据的高速缓冲存储器存取指向所述第一高速缓冲存储器内存库,且进一步包括将对非共享数据的高速缓冲存储器存取指向所述第二高速缓冲存储器内存库。
5.根据权利要求1所述的方法,其进一步包括指定所述以内存库工作的高速缓冲存储器的一个或一个以上第二内存库用于保存第二类型的数据,所述第二类型的数据是共享和非共享数据中的另一者,以及将对所述第二类型的数据的高速缓冲存储器存取指向所述一个或一个以上第二内存库。
6.根据权利要求1所述的方法,其中指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据包括指定所述以内存库工作的高速缓冲存储器的至少一个内存库专门用于保存所述第一类型的数据。
7.根据权利要求1所述的方法,其中指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据包括指定所述以内存库工作的高速缓冲存储器的至少一个内存库用于保存所述第一类型的数据与第二类型的数据的混合,所述第二类型的数据是共享和非共享数据中的另一者。
8.根据权利要求1所述的方法,其中将对所述第一类型的数据的高速缓冲存储器存取指向所述一个或一个以上第一内存库包括将内存库选择函数配置成响应于指示高速缓冲存储器存取是否针对所述第一类型的数据的存取类型指示符信号。
9.根据权利要求8所述的方法,其中将内存库选择函数配置成响应于指示高速缓冲存储器存取是否针对所述第一类型的数据的存取类型指示符包括:将所述内存库选择函数配置成根据一个或一个以上高速缓冲存储器存取地址信号和所述存取类型指示符信号,将给定高速缓冲存储器存取指向所述以内存库工作的高速缓冲存储器的特定内存库中的特定的一或多个位置。
10.根据权利要求1所述的方法,其中指定所述以内存库工作的高速缓冲存储器的一个或一个以上第一内存库用于保存第一类型的数据包括:将用于将高速缓冲存储器存取指向所述以内存库工作的高速缓冲存储器中的特定内存库的内存库选择函数配置成响应于指示个别高速缓冲存储器存取是否涉及所述第一类型的数据的存取类型指示符信号。
11.根据权利要求10所述的方法,其进一步包括根据需要重新配置所述内存库选择函数,以改变对所述以内存库工作的高速缓冲存储器的所述一个或一个以上第一内存库的所述指定。
12.根据权利要求11所述的方法,其进一步包括响应于改变所述指定,而从所述以内存库工作的高速缓冲存储器的所述一个或一个以上第一内存库冲刷当前高速缓存的数据。
13.一种减少以内存库工作的高速缓冲存储器中对与多处理器系统中的高速缓冲存储器监听业务相关的共享数据的高速缓冲存储器存取和对存取处理器专用的非共享数据的高速缓冲存储器存取之间的高速缓冲存储器存取干扰的方法,所述方法包括:
减少或消除以内存库工作的高速缓冲存储器的至少一个高速缓冲存储器内存库中的共享与非共享数据的混合;以及
将与共享和非共享数据中的一者相关的高速缓冲存储器存取指向至少一个其中其他的共享和非共享数据已被减少或消除的高速缓冲存储器内存库。
14.根据权利要求13所述的方法,其中减少或消除所述以内存库工作的高速缓冲存储器的至少一个高速缓冲存储器内存库中的共享与非共享数据的混合包括:指定所述以内存库工作的高速缓冲存储器中的一个或一个以上内存库用于保存共享数据,以及将对共享数据的高速缓冲存储器存取指向所述指定的一个或一个以上高速缓冲存储器内存库。
15.根据权利要求13所述的方法,其中减少或消除以内存库工作的高速缓冲存储器的至少一个高速缓冲存储器内存库中的共享与非共享数据的混合包括:指定所述以内存库工作的高速缓冲存储器的一个或一个以上内存库用于保存非共享数据,以及将对非共享数据的高速缓冲存储器存取指向所述指定的一个或一个以上高速缓冲存储器内存库。
16.一种以内存库工作的高速缓冲存储器,其包括存取控制电路,所述存取控制电路经配置以通过将对第一类型的数据的高速缓冲存储器存取指向所述以内存库工作的高速缓冲存储器的指定用于保存所述第一类型的数据的一个或一个以上第一高速缓冲存储器内存库,来减少与多处理器系统中的高速缓冲存储器监听业务相关的共享数据高速缓冲存储器存取和针对存取处理器专用的数据的非共享数据高速缓冲存储器存取之间的干扰,所述第一类型的数据是共享数据和非共享数据中的一者。
17.根据权利要求16所述的以内存库工作的高速缓冲存储器,其中所述存取控制电路经配置以将对第二类型的数据的高速缓冲存储器存取指向所述以内存库工作的高速缓冲存储器的一个或一个以上第二高速缓冲存储器内存库,其中所述第二类型的数据是共享和非共享数据中的另一者。
18.根据权利要求17所述的以内存库工作的高速缓冲存储器,其中所述存取控制电路经配置以基于向所述以内存库工作的高速缓冲存储器提供的与给定高速缓冲存储器存取相关联的存取类型指示符信号,而确定所述给定高速缓冲存储器存取是针对所述第一类型的数据还是针对所述第二类型的数据。
19.根据权利要求16所述的以内存库工作的高速缓冲存储器,其中所述存取控制电路经配置以基于接收到与高速缓冲存储器存取相关联的存取类型指示符信号而实施内存库选择函数,且其中所述存取控制电路经配置以在所述存取类型指示符信号指示给定高速缓冲存储器存取是针对所述第一类型的数据时,将所述给定高速缓冲存储器存取指向所述一个或一个以上第一高速缓冲存储器内存库。
20.根据权利要求16所述的以内存库工作的高速缓冲存储器,其中所述一个或一个以上第一高速缓冲存储器内存库中的至少一者被指定为专门用于保存所述第一类型的数据。
21.根据权利要求16所述的以内存库工作的高速缓冲存储器,其中所述一个或一个以上第一高速缓冲存储器内存库中的至少一者被指定为非专门用于保存所述第一类型的数据。
22.根据权利要求16所述的以内存库工作的高速缓冲存储器,其中所述存取控制电路可经配置以允许改变对所述一个或一个以上第一高速缓冲存储器内存库的所述指定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/144,207 US7353319B2 (en) | 2005-06-02 | 2005-06-02 | Method and apparatus for segregating shared and non-shared data in cache memory banks |
US11/144,207 | 2005-06-02 | ||
PCT/US2006/021401 WO2006130809A2 (en) | 2005-06-02 | 2006-06-02 | Method and apparatus for managing cache memory accesses |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101228512A CN101228512A (zh) | 2008-07-23 |
CN101228512B true CN101228512B (zh) | 2011-05-11 |
Family
ID=37027583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800271420A Active CN101228512B (zh) | 2005-06-02 | 2006-06-02 | 用于管理高速缓冲存储器存取的方法和设备 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7353319B2 (zh) |
EP (1) | EP1902370B1 (zh) |
JP (1) | JP4477688B2 (zh) |
KR (1) | KR100953854B1 (zh) |
CN (1) | CN101228512B (zh) |
AT (1) | ATE459920T1 (zh) |
DE (1) | DE602006012678D1 (zh) |
IL (1) | IL187807A0 (zh) |
MX (1) | MX2007015246A (zh) |
WO (1) | WO2006130809A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925815B1 (en) * | 2006-06-29 | 2011-04-12 | David Dunn | Modifications to increase computer system security |
US8661265B1 (en) | 2006-06-29 | 2014-02-25 | David Dunn | Processor modifications to increase computer system security |
US8041854B2 (en) * | 2007-09-28 | 2011-10-18 | Intel Corporation | Steering data units to a consumer |
US7809875B2 (en) * | 2008-06-30 | 2010-10-05 | Wind River Systems, Inc. | Method and system for secure communication between processor partitions |
US20100017569A1 (en) * | 2008-07-16 | 2010-01-21 | Agere Systems Inc. | Pcb including multiple chips sharing an off-chip memory, a method of accessing off-chip memory and a mcm utilizing fewer off-chip memories than chips |
US8112585B2 (en) * | 2009-04-30 | 2012-02-07 | Netapp, Inc. | Method and apparatus for dynamically switching cache policies |
JP5121896B2 (ja) * | 2010-08-11 | 2013-01-16 | 株式会社東芝 | マルチコアプロセッサシステムおよびマルチコアプロセッサ |
US20130159630A1 (en) * | 2011-12-20 | 2013-06-20 | Ati Technologies Ulc | Selective cache for inter-operations in a processor-based environment |
US9195658B2 (en) | 2012-12-12 | 2015-11-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Managing direct attached cache and remote shared cache |
CN103268321B (zh) * | 2013-04-19 | 2016-04-27 | 中国建设银行股份有限公司 | 高并发交易数据处理方法和装置 |
US20150370707A1 (en) * | 2014-06-24 | 2015-12-24 | Qualcomm Incorporated | Disunited shared-information and private-information caches |
JP6558009B2 (ja) * | 2015-03-23 | 2019-08-14 | 富士ゼロックス株式会社 | 転送装置、転送システムおよびプログラム |
KR102411920B1 (ko) | 2017-11-08 | 2022-06-22 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN110688331B (zh) * | 2018-07-05 | 2021-08-17 | 珠海全志科技股份有限公司 | 一种SoC芯片及读取数据的方法 |
GB2584440B (en) * | 2019-06-03 | 2021-12-08 | Advanced Risc Mach Ltd | Cache arrangement for graphics processing systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751989A (en) * | 1993-09-30 | 1998-05-12 | Apple Computer, Inc. | System for decentralizing backing store control of virtual memory in a computer |
CN1221150A (zh) * | 1997-10-08 | 1999-06-30 | 戴尔美国公司 | 模拟计算机存储装置的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5854638A (en) * | 1996-02-02 | 1998-12-29 | Opti Inc. | Unified memory architecture with parallel access by host and video controller |
GB9701960D0 (en) | 1997-01-30 | 1997-03-19 | Sgs Thomson Microelectronics | A cache system |
US5943686A (en) | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Multiple cache directories for non-arbitration concurrent accessing of a cache memory |
US6751704B2 (en) | 2000-12-07 | 2004-06-15 | International Business Machines Corporation | Dual-L2 processor subsystem architecture for networking system |
ATE521040T1 (de) * | 2001-06-11 | 2011-09-15 | Zoran Microelectronics Ltd | Ein spezialspeichergerät |
-
2005
- 2005-06-02 US US11/144,207 patent/US7353319B2/en active Active
-
2006
- 2006-06-02 CN CN2006800271420A patent/CN101228512B/zh active Active
- 2006-06-02 JP JP2008514886A patent/JP4477688B2/ja not_active Expired - Fee Related
- 2006-06-02 MX MX2007015246A patent/MX2007015246A/es active IP Right Grant
- 2006-06-02 EP EP06771913A patent/EP1902370B1/en not_active Not-in-force
- 2006-06-02 DE DE602006012678T patent/DE602006012678D1/de active Active
- 2006-06-02 KR KR1020077030698A patent/KR100953854B1/ko not_active IP Right Cessation
- 2006-06-02 WO PCT/US2006/021401 patent/WO2006130809A2/en active Application Filing
- 2006-06-02 AT AT06771913T patent/ATE459920T1/de not_active IP Right Cessation
-
2007
- 2007-12-02 IL IL187807A patent/IL187807A0/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751989A (en) * | 1993-09-30 | 1998-05-12 | Apple Computer, Inc. | System for decentralizing backing store control of virtual memory in a computer |
CN1221150A (zh) * | 1997-10-08 | 1999-06-30 | 戴尔美国公司 | 模拟计算机存储装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
US7353319B2 (en) | 2008-04-01 |
EP1902370A2 (en) | 2008-03-26 |
IL187807A0 (en) | 2008-08-07 |
KR100953854B1 (ko) | 2010-04-20 |
US20060277356A1 (en) | 2006-12-07 |
JP2008542923A (ja) | 2008-11-27 |
CN101228512A (zh) | 2008-07-23 |
DE602006012678D1 (de) | 2010-04-15 |
ATE459920T1 (de) | 2010-03-15 |
KR20080014899A (ko) | 2008-02-14 |
JP4477688B2 (ja) | 2010-06-09 |
MX2007015246A (es) | 2008-02-21 |
EP1902370B1 (en) | 2010-03-03 |
WO2006130809A2 (en) | 2006-12-07 |
WO2006130809A3 (en) | 2007-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101228512B (zh) | 用于管理高速缓冲存储器存取的方法和设备 | |
EP2430551B1 (en) | Cache coherent support for flash in a memory hierarchy | |
US6349363B2 (en) | Multi-section cache with different attributes for each section | |
US6721848B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US5627992A (en) | Organization of an integrated cache unit for flexible usage in supporting microprocessor operations | |
US7389402B2 (en) | Microprocessor including a configurable translation lookaside buffer | |
US6345342B1 (en) | Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line | |
US8607024B2 (en) | Virtual address cache memory, processor and multiprocessor | |
US6920521B2 (en) | Method and system of managing virtualized physical memory in a data processing system | |
US20120198163A1 (en) | Level One Data Cache Line Lock and Enhanced Snoop Protocol During Cache Victims and Writebacks to Maintain Level One Data Cache and Level Two Cache Coherence | |
US6321306B1 (en) | High performance multiprocessor system with modified-unsolicited cache state | |
US20170185515A1 (en) | Cpu remote snoop filtering mechanism for field programmable gate array | |
US20200104259A1 (en) | System, method, and apparatus for snapshot prefetching to improve performance of snapshot operations | |
US20020112129A1 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache | |
US6574714B2 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache | |
US6345344B1 (en) | Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits | |
US6385702B1 (en) | High performance multiprocessor system with exclusive-deallocate cache state | |
US6374333B1 (en) | Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention | |
US6314498B1 (en) | Multiprocessor system bus transaction for transferring exclusive-deallocate cache state to lower lever cache | |
US6349369B1 (en) | Protocol for transferring modified-unsolicited state during data intervention | |
US6345343B1 (en) | Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state |
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 |