提供数据处理设备和方法用于处理对共享存储器的写访问请求。数据处理设备具有多个处理单元,用于执行要求对共享存储器中的数据的访问的数据处理操作,每个处理单元具有与其相关联的高速缓存以用于存储数据的子集以供该处理单元访问。提供了采用高速缓存一致性协议的高速缓存一致性逻辑,以确保由每个处理单元访问的数据是最新的。每个处理单元将在输出用于存储在共享存储器中的数据值时发出写访问请求,并且在写访问请求是属于要求更新相关联的高速缓存和共享存储器两者的类型时,在高速缓存一致性逻辑内启动一致性操作。随后,执行有关与多个处理单元相关联的所有高速缓存的一致性操作以便确保在那些高速缓存中的数据保持一致,所述高速缓存包括与发出写访问请求的处理单元相关联的高速缓存。高速缓存一致性逻辑还可操作以将有关写访问请求的主题数据值的更新请求发出到共享存储器。此技术提供了用于确保此类写访问请求的行为正确的一种特别简单、有效的机制,而不影响引发处理单元及其相关联高速缓存的复杂性和访问时序。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据处理设备中对共享存储器的写访问请求的处理。
技术介绍
提供多处理系统,其中例如处理器核的两个或更多处理单元共享 对共享存储器的访问,这已为人所熟知。通过设置不同的处理器核并 行运行各自的数据处理操作,此类系统一般用于得到更高的性能。提供此类多处理能力的已知数据处理系统包括IBM370系统和SPARC 多处理系统。这些特殊的多处理系统是高性能系统,其中,几乎不关 心功率效率和功率消耗,而主要目的是最大处理速度。为进一步加快此类多处理系统内对数据的访问速度,为每个处理 单元在其中提供其自己的本地高速緩存以存储保存在共享存储器中 的数据的子集,这已为人所熟知。虽然这能加快对数据的访问数据, 但它使数据一致性的问题变得复杂。具体而言,将理解,如果特定处 理器执行有关在其本地高速緩存中保存的数据值的写操作,则该数据 值将在高速緩存内本地更新,但可能不一定同时在共享存储器中也更 新。具体而言,如果所述数据值涉及存储器的回写(writeback)区域, 则只有当随后从高速緩存清除该数据值时,高速緩存中的更新的数据 值才会存储回共享存储器。由于数据可与其它处理器共享,因此,重要的是确保那些处理器 在寻求访问共享存储器中相关联的地址时将访问最新的数据。为确保 这种情况发生,在多处理系统内采取高速緩存一致性协议以确保在特 定处理器更新其本地高速緩存中保存的数据值时,将使得该最新的数 据可用于随后请求访问该数据的任何其它处理器,这已为人所熟知。根据一个典型的高速緩存一致性协议,处理器执行的某些访问将 要求执行一致性操作。 一致性操作将使通知发送到其它处理器,标识 正在发生的访问类型和正在访问的地址。这将4吏那些其它处理器执行 高速緩存一致性协议定义的某些动作,并且在一些情况下也可产生某 些信息,这些信息从一个或多个那些处理器反馈回启动要求一致性操 作的访问的处理器。通过此类技术,在各自本地高速緩存中保存的数 据一致性得以维护,从而确保了每个处理器访问最新的数据。 一个此类高速緩存一致性协议是"修改、独占、共享、无效"(MESI)高速緩存 一致性协议。如果能保证特定的数据段只由处理器之一独占使用,则在该处理 器访问该数据时,将不要求一致性操作。然而,在典型的多处理系统 中,多数数据在处理器之间共享,这是因为数据一般归类为共享数据, 或者是因为多处理系统允许在处理器之间的进程迁移,或者实际上允 许特定进程并行在多个处理器上运行,结果是即使专用于特定进程的 数据也不能保证由特定处理器独占使用。虽然高速緩存一致性协议的使用能用于确保每个处理单元访问最 新的数据,但在具有多个处理单元共享存储器的系统内,仍有某些类 型的访问的处理能变得极为复杂。例如,如果共享存储器的某个区域 指定为通写(writethrough)区域,并且特定的处理单元对共享存储器 的该通写区域发出写访问请求,则在与引发该写访问请求的该处理单 元相关联的高速緩存中执行任何更新的同时,必须更新存储器。在多 处理器系统中执行此类更新引入许多危害。要使得能够发生正确的行 为,相关联本地高速緩存的高速緩存控制逻辑要求另外的逻辑以确保 对高速緩存和共享存储器的更新原子地发生,但另外的逻辑将增大其 复杂性的和/或在访问高速緩存中引入相当大的延迟。原子操作必须以 整体执行而无任何介入的读或写操作,使得防止在更新操作进行的同 时对相同数据位置进行任何其它读或写访问。作为在处理对共享存储器的通写区域的写访问请求时能发生的危害类型的示例,考虑第 一写在高速緩存中引起命中并且正由高速緩存一致性逻辑处理,因此在处理器核内保持未决的情况。在该处理在进行的同时,对与第一写相邻位置的第二写^皮发出。第一写仍在未决时处理第二写的标准方式是在适当时合并两次访问。大多数情况下这是为了节省功率(当一致性逻辑已经完成其工作时只会对高速緩存进行一次写)和提高性能(两次写的合并允许单个"时隙(slot)"用于两次存储器访问,因此为 一些随后的存储器访问释放一些资源)。然而,如果这些写的目标是某一可共享的存储器区域,则此合并不应进行,因为它可能导致第一写被一致性逻辑发出两次。在第一写已经^皮处理,并且存储器已更新时,第二写应仍由一致性逻辑处理以便至少更新存储器。由于两次写已合并在一起,因此,第二一致性动作(和第二存储器更新)实际上将由两次写的合并组成,并且因此第一写将对存储器重复进行。这违反了任何存储器排序模型,因而被禁止。为防止这种双重写,第一方案在于增加一些逻辑(因此增加一定的复杂性)以防止此类合并。避免此复杂性增加的其它可能的方案在于即使在标准情况下也阻止此类合并发生对性能和功率消耗的影响。给定由提供这种一致性通写写访问引入的另外复杂性和危害,提供具高速緩存一致功能的处理器的许多系统不太可能想要支持此类行为,并且因此一个选择是不允许对共享存储器进行通写写访问。然而,即使釆取了此类主张,但仍有其它类型的访问引入类似的危害。具体而言,特定处理器或在该处理器上运行的特定进程可将共享存储器的某个区域指定为不可高速緩存的,并且可关于该不可高速緩存的区域执行写访问。可假设对于不可高速緩存的写访问,无需在高速緩存中执行任何查找。然而,如果处理器使用不可高速緩存的存储器区域,则这只意味着处理器本身不将与该不可高速緩存的区域有关的任何数据分配到高速緩存中。然而,包括也能够访问本地高速緩存的紧密耦合的协处理器等系统中的其它处理器,可具有不同的存储器视8图,并且具体而言对于一个处理器^L为不可高速緩存的区域,另一个处理器可能不将其视为不可高速緩存的。此外,不同的存储器映射可由在同一处理器内运行的不同进程使用,并且因此不可高速緩存的写访问请求的主题数据可能实际上驻留在高速緩存内。结果,在处理对共享存储器的不可高速緩存的写访问时, 一般必须在高速緩存中执行查找,并且结果能够理解必须处理的行为极其类似于更早所述一致性通写写访问。因此,即使决定不支持对共享存储器的一致性通写写访问,仍必须提供一些能力来处理不可高速緩存的共享写访问。然而,引入此类能力在引入的另外复杂性和/或产生的另外访问延迟方面代价极高,特别是在不可高速緩存的共享写访问在高速緩存中产生命中的实际可能性极低时,这是经常发生的。因此,最好是提供一种更具成本效益的解决方案,以实现要求更新与引发处理单元相关联的高速緩存和共享存储器两者的类型的写-沐问^貪求的正确的4亍为。
技术实现思路
从第一方面来看,本专利技术提供一种数据处理设备,包括多个处理单元,可操作以执行要求对共享存储器中的数据的访问的数据处理操作;每个处理单元具有与其相关联的高速緩存,高速緩存可操作以存储所述数据的子集以供该处理单元访问;高速緩存一致性逻辑,采用高速緩存一致性协议以确保由每个处理单元访问的数据是最新的;每个处理单元可操作以在输出用于存储在所述共享存储器中的数据值时发出写访问请求,在写访问请求是属于要求更新相关联的高速緩存和共享存储器两者的类型时,在高速緩存一致性逻辑内启动一致性操作;高速緩存一致性逻辑可操作以执行有关与多个处理单元相关联的高速緩存的 一致性操作,所述高速緩存包括与发出写访问请求的处理单元相关联的高速緩存,以便确保在那些高速緩存中的数据保持一致;以及高速緩存一致性本文档来自技高网...
【技术保护点】
一种数据处理设备,包括: 多个处理单元,可操作以执行要求对共享存储器中的数据的访问的数据处理操作; 每个处理单元具有与其相关联的高速缓存,所述高速缓存可操作以存储所述数据的子集以供该处理单元访问; 高速缓存一致性逻辑,采用 高速缓存一致性协议以确保由每个处理单元访问的数据是最新的; 每个处理单元可操作以在输出用于存储在所述共享存储器中的数据值时发出写访问请求,在所述写访问请求是属于要求更新所述相关联的高速缓存和所述共享存储器两者的类型时,在所述高速缓存一 致性逻辑内启动一致性操作; 所述高速缓存一致性逻辑可操作以执行有关与所述多个处理单元相关联的高速缓存的一致性操作,所述高速缓存包括与发出所述写访问请求的处理单元相关联的高速缓存,以便确保在那些高速缓存中的数据保持一致;以及 所述 高速缓存一致性逻辑还可操作以将有关所述写访问请求的主题数据值的更新请求发出到所述共享存储器。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:FCM皮里,PJP拉法伦,NBE拉塔耶,SD比尔斯,RR格里森思怀特,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:GB[英国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。