防止多核处理器中的写回竞争的制作方法

文档序号:6478079阅读:176来源:国知局
专利名称:防止多核处理器中的写回竞争的制作方法
防止多核处理器中的写回竞争
背景技术
本发明涉及微处理器体系结构领域。微处理器设计者不断努力提高微处理器性 能,设计能提供例如计算能力增强、运行速度提高、功耗降低和/或成本降低的微处理器体 系结构。就许多现有的微处理器体系结构而言,越来越难以通过提高工作频率来提高微处 理器性能。因此,许多较新的微处理器体系结构已经着重于并行处理以提高性能。微处理器体系结构中所采用的一种并行处理技术是多处理核。该技术利用并行工 作以执行软件应用程序的称为核的多个独立的处理器。两个或多个处理核可实现于同一集 成电路管芯中、实现于集成在同一集成电路封装中的多个集成电路管芯中、或实现于这些 实现的组合中。通常,多个处理核共享公用接口且可共享其它外围资源。微处理器相比典型的存储器接口而言运行更快。此外,在处理器请求数据的时间与接收到所请求数据的时间之间,许多类型的电子存储器具有相对长的等待时间。为了使 微处理器花费在空闲和等待数据上的时间最少,许多微处理器使用高速缓存来储存程序指 令和数据的临时副本。典型的高速缓存通常与微处理器高度集成于同一集成电路管芯中或 至少集成于同一集成电路封装中。因此,高速缓存非常快而且等待时间少。然而,这种紧密 集成限制了高速缓存的尺寸。高速缓存通常被分成固定数量的高速缓存存储单元,称为高速缓存线。通常,各条 高速缓存线与一组系统存储器地址相关联。各条高速缓存线适于储存来自相关联的系统存 储器地址之一的程序指令和/或数据。当处理器或处理器核修改或更新在高速缓存存储单 元中存储的数据时,该数据最终需要被拷贝回系统存储器。通常,处理器或处理器核推迟更 新系统存储器——称为写回操作,直到处理器核需要高速缓存线储存来自系统存储器的不 同数据的副本。此外,在具有多个处理器核的处理器中,各个处理器核可具有独立的高速缓存。因 此,该处理器必须确保不同高速缓存中同一数据的副本一致。这称为高速缓存一致性。此 夕卜,一个处理器核可从另一处理器核的高速缓存中读取,而不是从系统存储器中拷贝相应 的指令和/或数据。这降低了处理器空闲时间和对系统存储器的冗余访问。期望处理器能高效地执行写回操作。还期望处理器确保处理器核高速缓存之间的 写回和读取不相互干扰。还期望处理器高效地保持多个处理器核的高速缓存一致性,以及 各个高速缓存独立地工作。还期望使处理器致力于高速缓存一致性的部分的尺寸和复杂程 度最小化。

发明内容
本发明的实施例在当处理器核单元在另一处理器核单元请求数据的大致同时发 出对该数据的写回请求时防止写回竞争状况引起处理器错误。处理器核单元保持对数据负 责,直到写回请求由来自高速缓存一致性管理器单元的干预消息的接收所确认。如果对同 一数据的请求在与该写回请求相关联的干预消息之前到达,则处理器核单元提供所请求的 数据并消除待处理的写回请求。对该数据的请求将启动对该数据的隐式写回,从而使待处理的写回请求成为冗余。在一个实施例中,处理器核单元通过等待干预消息的接收然后以 消除消息作为响应来消除该请求。在另一实施例中,与高速缓存线相关联的高速缓存一致性数据指示处理器核单元 是否已经在与写回请求相关联的干预消息之前接收到对数据的请求。当写回请求发起时, 高速缓存线的高速缓存一致性数据具有“经修改”值。当处理器核单元从高速缓存一致性 管理器单元接收到与写回请求相关联的干预消息时,高速缓存线的高速缓存一致性数据被 检查。如果该高速缓存线的高速缓存一致性数据已经从“经修改”值改变(例如改变成“共 享”或“无效”),则这指示已经在与写回请求相关联的干预消息之前接收到对数据的请求, 并且写回请求应被消除。本发明的一个实施例通过充分利用用于干预消息的数据路径和响应来传送与写 回请求相关联的数据而降低了高速缓存一致性管理器单元的逻辑的复杂程度。在一个实施 例中,处理器核单元向高速缓存一致性管理器单元发送写回请求。该请求不包括写回数据。 在接收到与写回请求相关联的干预消息后,处理器核单元向高速缓存一致性管理器单元提 供指示该写回操作不应被消除的干预消息响应。该干预消息响应包括写回数据。因为高速 缓存一致性管理器已经要求数据路径处理处理器核单元之间的数据转移,所以几乎不需要 或完全不需要向高速缓存一致性管理器添加附加的开销来处理与写回请求相关联的数据。附图简述将参照附图描述本发明,在附图中

图1示出根据本发明的实施例的示例处理器;图2A-2B示出根据本发明的实施例的执行写回操作的方法;图3示出防止高速缓存之间的写回操作与读取之间的干扰的方法;图4示出根据本发明的实施例的处理器的高速缓存一致性管理器单元;图5示出了根据本发明的实施例的降低高速缓存一致性管理器单元的复杂程度 的执行写回操作的方法;图6示出适用于本发明的实施例的示例计算机系统。
具体实施例方式图1示出根据本发明的实施例的示例处理器100。示例处理器100的实施例包括 两个或多个处理器核单元105,诸如处理器核单元105A、105B以及105C。各个处理器核单 元105包括至少一个处理器核。例如,处理器核单元105A、105B以及105C分别包括处理器 核 110AU10B 以及 IlOC0处理器核110能对数据执行一种或多种信息处理功能。处理器核110可执行固定 的功能序列,或能响应于程序指令执行灵活的功能序列。处理器核110中的每一个可根据 RISC和/或CISC体系结构来配置,而且可使用SISD或SIMD指令处理标量或向量数据类 型。处理器核110可包括通用和专用寄存器文件以及执行单元,这些执行单元被配置成执 行逻辑功能、算法或其它数学功能、数据操纵功能、或能使用数字逻辑电路实现的任何其它 类型的功能。处理器核110中的每一个可具有相同的功能和能力,或可具有用于不同目的 的不同功能和能力。在一实施例中,处理器核单元105经由数据总线127与高速缓存一致性管理器单元125连接。诸如数据总线127A、127B以及127C之类的数据总线127可被实现为各个处理器核单元105与高速缓存一致性管理器单元125之间的点对点数据连接。高速缓存一致 性管理器单元125便于经由外部接口 130和/或可任选的共享L2高速缓存132在处理器 核单元105、系统存储器以及I/O之间转移指令和/或数据。一般而言,处理器核单元105 可共享系统存储器的全部或部分和/或高速缓存的一个或多个可任选的级,诸如可选的共 享L2高速缓存132。高速缓存一致性管理器单元125的实施例可接收系统存储器读取和写入请求、读 取来自其它高速缓存的请求、和/或并行且可能同时地写回来自各个处理器核单元的请 求。高速缓存一致性管理器单元125的实施例可以任意顺序处理和服务这些请求。例如, 高速缓存一致性管理器单元125的实施例可将请求重新排序以优化存储器访问、加载平衡 请求、给予一个或多个处理器核单元优于其它处理器核单元的优先级、和/或给予一种或 多种类型的请求优于其它类型请求的优先级。在某些实现中,处理器核单元105可利用软 件锁定元来确保来自多个处理器核的存储器访问的期望排序。在一个实施例中,处理器100实现于集成电路封装中。处理器100的其它实施例 可实现于该集成电路封装中的单个集成电路管芯中,或实现于单个集成电路封装中的多个 集成电路管芯中。各个处理器核单元105包括一个或多个高速缓存级,用于临时存储与其相关联的 处理器核可能需要的数据。高速缓存中存储的数据可包括程序指令和/或程序数据。典型 的高速缓存被组织成高速缓存线。各条高速缓存线存储与一个或多个虚拟或物理存储器地 址对应的数据副本。各条高速缓存线还存储用于管理该高速缓存线的附加数据,诸如用来 标识与高速缓存线相关联的存储器地址的高速缓存线标签数据以及用于使高速缓存线中 的数据与其它高速缓存和/或与计算机系统存储器同步的高速缓存一致性数据。高速缓存 标签可由与该高速缓存线相关联的存储器地址的全部或一部分构成。示例处理器核单元105A、105B以及105C分别包括Ll高速缓存单元115A、115B以 及115C。Ll高速缓存单元115经由数据总线117A、117B以及117C与它们相关联的处理器 核110连接。虽然为清楚起见示为单条总线,但每条数据总线117可由Ll高速缓存单元与 其相关联的处理器核之间的一条或多条数据总线组成。Ll高速缓存单元115的实施例还可 包括便于将数据转移至相应的Ll高速缓存单元和从相应的Ll高速缓存单元转移出的高速 缓存控制逻辑单元120。高速缓存单元115可以与两路或多路完全关联、集合关联或直接映 射。为清楚起见,Ll高速缓存单元115中的每一个被示为能存储处理器核单元可能需要的 任何类型数据的单个高速缓存;然而,本发明的实施例可包括在各个处理器核单元中用于 单独存储不同类型的数据的单独的Ll高速缓存单元,诸如程序指令高速缓存、程序数据高 速缓存以及翻译后备缓冲数据高速缓存。在实施例中,Ll高速缓存单元115中的每一个可存储有限数量的高速缓存线。当 超过了 Ll高速缓存单元的容量时,这些高速缓存线之一从Ll高速缓存中被去除,以为新的 高速缓存线腾出空间。被去除的高速缓存线称为受害线。可根据诸如选择最近最少使用的 高速缓存线之类的高速缓存替换策略和/或根据与程序相关联的高速缓存指令选择受害 高速缓存线。如果受害线中的数据未被相关联的处理器核修改,则受害线中的数据可被丢 弃或覆盖。然而,如果受害线中的数据已被相关联的处理器核修改,则经修改数据必须被拷贝回系统存储器(或不同的高速缓存级)中以确保程序的正确操作。将经修改的高速缓存数据从高速缓存拷贝到更高等级的高速缓存或系统存储器中的操作称为写回操作。当处理器核单元105中的一个请求对数据的访问时,高速缓存一致性管理器单元 125可尝试在其它处理器核单元105中的一个的高速缓存中定位所请求数据的副本。高速 缓存一致性管理器单元125可与从共享系统存储器和/或共享更高级高速缓存中对此数据 的推测性读取请求并行地执行对所请求数据的搜索。高速缓存一致性管理器单元125的实 施例可使用窥探式访问方案或基于目录的访问方案来确定处理器核单元105中的任一个 是否在其高速缓存中包括所请求的数据。在窥探式访问方案中,对数据的请求被广播给处 理器核单元105中的部分或全部。作为响应,处理器核单元105执行高速缓存窥探操作,以 确定它们相应的高速缓存是否包括所请求的数据并响应高速缓存一致性管理器单元125。 在基于目录的访问方案中,高速缓存一致性管理器单元125查询目录以确定处理器核单元 125中的任一个是否包括所请求数据的副本。该目录可被包括在高速缓存一致性管理器 125中或在高速缓存一致性管理器单元125的外部,并经由总线或数据通信互连连接。图2A示出根据本发明的实施例的用于执行第一种类型的写回操作的方法200。方 法200的写回操作称为显式写回操作,因为它由高速缓存中存储有经修改数据的处理器核 单元显式启动。如以下详细讨论的那样,处理器核可通过向高速缓存一致性管理器发送显 式写回来发起显式写回请求。当高速缓存一致性管理器准备好处理该显式写回请求时,它 向发出请求的处理器核单元发回确认消息,称为自干预请求。该自干预消息允许发出请求 的处理器核单元确认显式写回应当进行,而且还指示发出请求的处理器核不再负责将此数 据提供给任何其它处理器核单元。方法200以选择包括经修改数据的高速缓存线以供写回操作的步骤205开始。如 上所述,当Ll高速缓存处于最大容量而且处理器核要求该高速缓存线存储其它数据时,可 选择该高速缓存线以进行写回操作。在其它实施例中,处理器核单元可在不同的情况下选 择经修改的缓存线以进行写回操作,诸如响应于转储清除部分或全部处理器核的高速缓存 的特定程序指令。在一个实施例中,各条高速缓存线包括至少指示其数据是否被修改的高速缓存一 致性数据。在该实施例中,当选择高速缓存线作为受害线时,处理器核单元可评估相关联 的高速缓存一致性数据,以确定该受害线是否包括经修改数据从而需要写回操作以保留经 修改数据。例如,MESI高速缓存一致性协议将高速缓存线标记为经修改(“M”);独占 (“E”),表示处理器核单元仅具有数据的高速缓存副本而且可以自由修改;共享(“S”), 表示两个或多个处理器核单元已经高速缓存了此数据,而且各个处理器核可读取该数据但 不能修改它;或无效(“I”),表示高速缓存线中的数据无效,而且处理器核单元可在该高速 缓存线中存储其它数据。诸如MSI、M0SI以及MOESI —致性方案之类的其它高速缓存一致 性方案也可与本发明的实施例一起使用。步骤210向高速缓存一致性管理器单元发送显式的写回请求。在一个实施例中, 显式写回请求标识存储经修改数据的高速缓存线和/或应当存储经修改数据的系统存储 器地址。在某些实现中,显式写回请求还包括要写回系统存储器或可任选的更高级高速缓 存的经修改数据。如上所述,高速缓存一致性管理器单元可处理在步骤210中发送的诸如写回请求之类的请求,并以任何顺序竞争来自其它处理器核单元的请求。为保持高速缓存一致性,在 步骤215,请求显式写回的处理器核单元在允许所选的高速缓存线被不同的数据覆盖之前 等待来自高速缓存一致性管理器单元的确认消息。在此等待周期中,处理器核单元仍将负 责将经修改的缓存线数据提供给任何其它发出请求的处理器核单元。此外,在此等待周期 期间,该处理器核单元及其相关联的处理器核可执行其它指令、处理其它数据,并将任何其 它数据提供给任何其它发出请求的处理器核单元,而不是停止工作或保持空闲。一旦从高速缓存一致性管理器单元接收到消息,决策块220评估所接收到的消 息。如果从高速缓存一致性管理器单元接收到的消息是对经修改的高速缓存线数据的请 求,则步骤225将该经修改数据提供给发出请求的处理器核单元。如果在写回请求发出的 大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则可能会发生上述情况,而 且高速缓存一致性管理器单元在写回请求之前处理该数据请求。在步骤225的实施例中,包括该经修改的高速缓存线数据的处理器核单元将经修 改数据的副本发送至高速缓存一致性管理器单元,该高速缓存一致性管理器单元又将该经 修改数据的副本转发给发出请求的处理器核单元。在步骤225之后,处理器核单元返回步 骤215以等待来自高速缓存一致性管理器单元的另一消息。反之,如果在从高速缓存一致性管理器单元接收到消息时,决策块220确定该消 息是与步骤210中发送的写回请求相关联的写回确认消息——称为自干预消息,则方法 200进行至步骤230。在经修改的高速缓存线被发送至高速缓存一致性管理器单元以便写回存储器系 统或更高级的高速缓存之后,步骤230将所选的经修改高速缓存线标记为无效。这允许处 理器核单元使用该所选的高速缓存线来存储其它数据。一旦该所选的高速缓存线被标记为 无效,则处理器核单元不再负责将该经修改高速缓存线数据提供给任何发出请求的核。取 而代之,如果另一处理器核请求该数据,则它必须从诸如系统存储器或可任选的更高级高 速缓存之类的另一存储单元取回。此时,该处理器核单元以显式写回操作结束。虽然该处理 器核单元在步骤220和230接收并处理与写回请求相关联的自干预消息,但高速缓存一致 性管理器执行将经修改数据写回系统存储器或共享更高级高速缓存的操作。在步骤230完 成时,高速缓存一致性管理器单元要么已经将经修改的高速缓存线数据写回系统存储器, 或者处于该操作的过程中,从而处理器核单元中的任一个将可访问系统存储器中的该经修 改数据。在步骤230之后,处理器核单元仍可接收请求经修改的高速缓存线数据的消息。 如果在写回请求发出的大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则 可能会发生上述情况,而高速缓存一致性管理器单元首先处理写回请求。在此情况下,在可 任选的步骤235,之前存储经修改高速缓存线的处理器核单元接收请求经修改的高速缓存 线数据的消息。因为该高速缓存线现在被标记为无效,所以在步骤235,该处理器核单元向 一致性管理器和/或发出请求的处理器核单元返回高速缓存未命中响应。然后通过从系统 存储器或可任选的更高级高速缓存取回数据来满足对经修改的高速缓存数据的请求。
如上所述,第一处理器核单元可接收来自其它存储器核单元的对第一处理器核单 元的高速缓存中的数据的请求。方法250示出了根据本发明的实施例的图2B中所示的处 理来自其它处理器核单元的数据请求的方法。方法250可协同上述方法200 —起工作。
在步骤255,高速缓存一致性管理器单元从处理器核单元接收对共享数据访问的 请求。在步骤260,高速缓存一致性管理器单元确定另一处理器核单元的高速缓存是否包括 所请求的数据。在一个实施例中,高速缓存一致性管理器单元向其它处理器核单元发出标 识所请求数据的高速缓存窥探消息。各个处理器核单元的高速缓存控制逻辑评估该高速缓 存窥探消息,以确定与它们相关联的高速缓存是否包括所请求的数据。该确定结果被提供 给高速缓存一致性管理器单元。在基于目录的方案中,一致性管理器访问目录以确定哪些 处理器可能包括所请求的数据。如果至少一个处理器核单元的高速缓存中包括所请求的数据,则在步骤260,高速 缓存一致性管理器单元选择适当的处理器核单元之一,并将该数据请求转发给该处理器核 单元以取回所请求的数据。或者,高速缓存一致性管理器单元从系统存储器请求该数据。因 为从系统存储器取回数据时的等待时间长,所以高速缓存一致性管理器的实施例可在执行 高速缓存窥探的同时窥探式地从系统存储器请求数据。如果在另一处理器核单元的高速缓 存中发现该数据,则稍后可消除该系统存储器请求(或忽略其结果)。在步骤265,接收该数据请求的处理器核单元标识可能存储有所请求数据的高速缓存线。该接收处理器核单元评估与该高速缓存线相关联的高速缓存一致性数据,以确定 该高速缓存线是否包括其它处理器核单元可用的数据的有效副本。在一个实施例中,如果该高速缓存线的高速缓存一致性数据被设置为“无效”,则该高速缓存不再具有所请求的数据(例如因为干预写回操作的完成)。因此,步骤270返回 高速缓存未命中。在一个实施例中,如果高速缓存线的高速缓存一致性数据被设置为“共享”,则该 高速缓存具有所请求数据的有效和可用副本。因此,步骤275例如经由高速缓存一致性管 理器向发出请求的处理器核单元返回所请求的数据。在某些情况下,多个处理器核单元可 具有处于共享状态的所请求数据的副本。在这种情况下,高速缓存一致性管理器单元可使 用优先级或负载平衡方案来选择这些处理器核单元之一从而提供所请求的数据。在一个实施例中,如果高速缓存线的高速缓存一致性数据被设置为“独占”,则该 高速缓存具有所请求数据的有效副本,但该副本不可与其它处理器核单元共享。因此,步骤 280将高速缓存线的状态从“独占”改变成“共享”,从而使该数据“可用”。然后步骤275将 所请求的数据返回至发出请求的处理器核单元。在一个实施例中,如果高速缓存线的高速缓存一致性数据被设置为“经修改”,则 该高速缓存具有所请求数据的有效和经修改副本,但该副本不可与其它处理器核单元共 享。因为所请求数据的诸如系统存储器副本和其它高速缓存中的副本之类的所有副本必 须与高速缓存线中的经修改数据一致,所以步骤285启动经修改高速缓存数据的写回。这 种类型的写回被称为隐式写回,因为它不是由与经修改高速缓存数据相关联的处理器核发 起,而是另一处理器核单元请求共享该数据的结果。在步骤285发起写回请求之后,步骤280将高速缓存线的状态从“经修改”改变成 “共享”,从而使该数据可用。然后步骤275将所请求的数据返回至发出请求的处理器核单兀。在方法250的另一实施例中,第一处理器核可请求对存储在另一处理器核的高速 缓存中的数据的排他访问而不是共享访问。可作出该请求,以使第一处理器核能修改该数据。可在该请求中指示所请求的数据访问的类型(即共享或排他)。方法250的另一实施 例可通过执行如上所述的步骤255到265然后进行至步骤285来实现该功能。在一个实施 例中,步骤285可任选地发起经修改高速缓存线数据向存储器的写回。接着,步骤275将所 请求的经修改数据返回至第一处理器核。在步骤275之后,步骤290将该高速缓存线标记 为无效。方法250示出了根据本发明的实施例的处理来自其它处理器核单元的数据请求 的方法。方法250可协同上述方法200 —起工作。有时,第一处理器核单元可在另一处理 器核单元请求经修改数据并触发隐式写回的大致同时发出显式写回请求。在这些情况下, 会出现竞争状况。为防止出现错误,并在与高速缓存一致性管理器单元服务显式和隐式写回请求的顺序无关的情况下确保处理器核单元的行为一致,图3示出了防止高速缓存之间的写回操 作与读取之间的干扰的方法300。方法300从选择包括经过修改的数据的高速缓存线以供写回操作的步骤305开 始。此时,另一处理器核单元可能正在从所选的经修改高速缓存线请求或已经从中请求数 据。然而,第一处理器核单元此时可能不知道对经修改高速缓存线的任何请求。步骤310向高速缓存一致性管理器单元发送显式写回请求。在一个实施例中,显 式写回请求标识存储经修改数据的高速缓存线和/或应当存储经修改数据的系统存储器 地址。在某些实现中,显式写回请求还包括要写回系统存储器或可任选的更高级高速缓存 的经修改数据。如上所讨论,高速缓存一致性管理器单元可以任何顺序处理步骤310中发送的诸 如写回请求之类的请求和来自其它处理器核单元的任何竞争请求。为保持高速缓存一致 性,在步骤315,请求显式写回的处理器核单元在允许所选的高速缓存线被不同的数据覆盖 之前等待来自高速缓存一致性管理器单元的确认消息。在此等待周期中,处理器核单元仍 将负责将经修改的缓存线数据提供给任何其它发出请求的处理器核单元。此外,在此等待 周期期间,该处理器核单元及其相关联的处理器核可执行其它指令、处理其它数据,并将任 何其它数据提供给任何其它发出请求的处理器核单元,而不是停止工作或保持空闲。一旦从高速缓存一致性管理器单元接收到消息,决策块320评估所接收到的消 息。如果从高速缓存一致性管理器单元接收到的消息是对经修改的高速缓存线数据的请 求,则步骤325将该经修改的数据提供给发出请求的处理器核单元。如果在写回请求发出 的大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则可能会发生上述情况, 而且高速缓存一致性管理器单元在写回请求之前处理该数据请求。在步骤325将经修改的高速缓存线数据提供给另一处理器核单元时,如方法250 中所描述的那样,隐式写回被自动触发。该隐式写回最终将经修改的高速缓存数据线写回 系统存储器,并将经修改的高速缓存线的高速缓存一致性状态从“经修改”改成“共享”,或 从“经修改”改成“无效”。在步骤325的实施例中,包括该经修改的高速缓存线数据的处理 器核单元将经修改数据的副本发送至高速缓存一致性管理器单元,该高速缓存一致性管理 器单元又将该经修改数据的副本转发给发出请求的处理器核单元。同时,高速缓存一致性 管理器将经修改数据写回至系统存储器或共享的更高级高速缓存。在步骤325之后,处理器核单元仍具有待处理的显式写回请求。在步骤330,处理器核单元等待与该显影写回请求相关联的自干预消息从高速缓存一致性管理器单元返回。 在等待该自干预消息的同时,该处理器核单元及其相关联的处理器核可执行其它指令、处 理其它数据,并将任何其它数据提供给任何其它发出请求的处理器核单元,而不是停止工 作或保持空闲。一旦接收到与该显式写回请求相关联的自干预消息,该处理器核单元在步骤335 消除该显式写回。在一个实施例中,该处理器核单元向高速缓存一致性管理器单元发送干 预响应消息以消除该显式写回请求。在替代实施例中,该处理器核单元不响应该自干预消 息;高速缓存一致性管理器单元将此解释为消除该显式写回请求。反之,如果在从高速缓存一致性管理器单元接收到消息时,决策块320确定该消息是与步骤310中发送的写回请求相关联的自干预消息,则方法300进行至步骤340。步骤340将所选的经修改高速缓存线标记为无效。这允许处理器核单元使用该所 选的高速缓存线来存储其它数据。一旦该所选的高速缓存线被标记为无效,则处理器核单 元不再负责将该经修改的高速缓存线数据提供给任何发出请求的核。取而代之,如果另一 处理器核需要该数据,则它必须从诸如系统存储器或可任选的更高级高速缓存之类的另一 存储单元取回。此时,该处理器核单元以显式写回操作结束。此时,经修改的高速缓存线数 据已被写入系统存储器,或处于正被写回系统存储器的过程中。当处理器核单元在步骤320和340接收并处理与写回请求相关联的自干预消息 时,高速缓存一致性管理器可执行其它任务。一旦完成步骤340,则该处理器核单元将干预 消息响应提供给高速缓存一致性管理器单元。在此情况下,干预消息效应不包括对写回的 消除。因此,高速缓存一致性管理器单元将完成将经修改数据写回系统存储器或共享的更 高级高速缓存,以使该经修改数据在系统存储器中或更高级的共享高速缓存中对处理器核 单元中的任一个可用。在步骤340之后,处理器核单元仍可接收请求经修改高速缓存线数据的消息。如 果在写回请求发出的大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则可 能会发生上述情况,而高速缓存一致性管理器单元首先处理写回请求。在此情况下,在可任 选的步骤345,之前存储经修改高速缓存线的处理器核单元接收请求经修改高速缓存线的 消息。因为该高速缓存线现在被标记为无效,所以在步骤350,该处理器核单元向高速缓存 一致性管理器和/或发出请求的处理器核单元返回高速缓存未命中响应。然后通过从系统 存储器或可任选的更高级高速缓存取回数据来满足对经修改高速缓存数据的请求。在另一实施例中,处理器核单元不需要保持之前发出的写回请求的记录以实现方 法300。在该实施例中,与高速缓存线相关联的高速缓存一致性数据用于指示当接收到自干 预请求时,是应当消除还是执行该写回请求。如果处理器核单元接收到自干预请求,而且相 关联的高速缓存线具有高速缓存一致性值“共享”或“无效”,则这指示处理器核单元对该高 速缓存线的隐式写回已经进行,而可将显式写回消除。如果处理器核单元接收到自干预请 求时其相关联的高速缓存线具有高速缓存一致性值“经修改”,则这指示该处理器该高速缓 存线仍需要被写回系统存储器或可任选的更高级的高速缓存。图4示出了根据本发明的实施例的高速缓存一致性管理器单元400。高速缓存一 致性管理器单元400包括请求单元405、干预单元410、响应单元415以及存储器接口单元 420。请求单元405包括用于从N个处理器核单元接收读取请求、写入请求、写回请求以及其它高速缓存相关请求的输入425,其中N为任何正整数。请求单元405经由连接435向存 储器接口单元420发送不一致读取和写入请求以及窥探式一致读取,该不一致读取和写入 请求是不需要与其它处理器核单元高速缓存中的数据的一致性的读取和写入请求。这些请 求还包括对经修改高速缓存数据的显式和隐式写回请求。对于需要处理器核高速缓存和系 统存储器中的数据一致的一致存储器访问,请求单元405经由连接430向干预单元410发 送诸如自干预消息之类的一致干预消息。干预单元410经由输出440向N个处理器核单元发出诸如自干预消息之类的干预消息。干预消息还可包括来自其它处理器核单元经由请求单元405对所接收数据的转发请 求。包括其它处理器核单元请求的数据的对干预消息的响应由干预单元410经由输入445 接收。如果处理器核单元请求在另一处理器核单元的高速缓存中存储的数据,则该数据经 由输入445被返回至干预单元410。然后干预单元410经由连接455将该数据转发至响应 单元415,该数据在连接455处将被发送回发出请求的处理器核单元。如果处理器核单元请求未存储在另一处理器核单元的高速缓存中的数据以供读 取或写入,则干预单元410可通过经由连接450向存储器接口单元420发送一致读取或写 入请求来请求对该数据的访问。存储器接口单元从请求单元405和干预单元410接收不一致读取和写入请求、一致读取和写入请求以及写回请求。存储器接口单元420经由输入和输出470访问系统存储 器和/或诸如L2高速缓存之类的更高级的高速缓存以满足这些请求。响应于这些存储器 访问请求而从系统存储器和/或更高级的高速缓存取回的数据经由连接465被转发至响应 单元415。无论该数据是从另一处理器核单元、系统存储器还是可任选的更高级高速缓存取 回,响应单元415都经由输出460将所请求的数据返回给正确的处理器核单元。在高速缓存一致性管理器单元400的一个实施例中,请求单元405、干预单元410、 响应单元415以及存储器接口单元420包括用于向处理器核单元发送经高速缓存数据和/ 或从处理器核单元取回经高速缓存数据的数据路径。这些数据路径中的每一个都向高速缓 存一致性管理器单元400引入复杂程度和实质开销。为降低高速缓存管理器单元400的复杂程度,高速缓存管理器单元400的替代实 施例消除了请求单元中用于从处理器核单元接收经高速缓存数据的数据路径。高速缓存一 致性管理器单元400的该实施例包括从处理器核单元接收读取请求、写入请求以及写回请 求的请求单元405。这些写入请求和写回请求不包括被写入存储器的数据。代替地,该高速 缓存一致性管理器充分利用干预单元410的数据路径来将写入和写回数据从处理器核单 元发送至高速缓存一致性管理器单元400。因此,降低了请求单元405的复杂程度。对于高速缓存一致性管理器单元利用没有用于经高速缓存数据的数据路径的请 求单元405正常工作的实施例,写回操作根据以上图2A中所描述的操作进行修改。图5示 出了根据本发明的实施例的执行降低高速缓存一致性管理器单元的复杂程度的写回操作 的方法500。方法500从选择包括经修改数据的高速缓存线以供写回操作的步骤505开始。此 时,另一处理器核单元可能正在从所选的经修改高速缓存线请求或已经从中请求数据。然 而,第一处理器核单元此时可能不知道对经修改高速缓存线的任何请求。在步骤510,第一处理器核向高速缓存一致性管理器单元发送显式写回请求。在一个实施例中,显式写回请求标识存储经修改数据的高速缓存线和/或应当存储经修改数据 的系统存储器地址。在某些实现中,显式写回请求不包括经修改数据。如上所讨论,高速缓存一致性管理器单元可以任何顺序处理步骤510中发送的诸如写回请求之类的请求和来自其它处理器核单元的任何竞争请求。为保持高速缓存一致 性,在步骤515,请求显式写回的处理器核单元在允许所选的高速缓存线被不同的数据覆盖 之前等待来自高速缓存一致性管理器单元的确认消息。在此等待周期中,处理器核单元仍 将负责将经修改的缓存线数据提供给任何其它发出请求的处理器核单元。此外,在此等待 周期期间,该处理器核单元及其相关联的处理器核可执行其它指令、处理其它数据,并将任 何其它数据提供给任何其它发出请求的处理器核单元,而不是停止工作或保持空闲。—旦从高速缓存一致性管理器单元接收到消息,决策块520评估所接收到的消 息。如果从高速缓存一致性管理器单元接收到的消息是对经修改的高速缓存线数据的请 求,则步骤525将该经修改的数据提供给发出请求的处理器核单元。如果在写回请求发出 的大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则可能会发生上述情况, 而且高速缓存一致性管理器单元在写回请求之前处理该数据请求。在步骤525将经修改的高速缓存线数据提供给另一处理器核单元时,如方法250 中所描述的那样,隐式写回被自动触发。该隐式写回最终将经修改的高速缓存数据线写回 系统存储器,并将经修改的高速缓存线的高速缓存一致性状态从“经修改”改成“共享”。在 步骤525的实施例中,包括该经修改的高速缓存线数据的处理器核单元经由与其干预单元 的连接将经修改数据的副本发送至高速缓存一致性管理器单元,该高速缓存一致性管理器 单元又将该经修改数据的副本转发给发出请求的处理器核单元。在步骤525之后,处理器核单元仍具有待处理的显式写回请求。在步骤530,处理 器核单元等待与该显式写回请求相关联的自干预消息从高速缓存一致性管理器单元返回。 在等待该自干预消息的同时,该处理器核单元及其相关联的处理器核可执行其它指令、处 理其它数据,并将任何其它数据提供给任何其它发出请求的处理器核单元,而不是停止工 作或保持空闲。—旦接收到与该显式写回请求相关联的自干预消息,该处理器核单元在步骤535 消除该显式写回。在一个实施例中,该处理器核单元向高速缓存一致性管理器单元发送消 除消息以消除该显式写回请求。在替代实施例中,该处理器核单元不响应该自干预消息;高 速缓存一致性管理器单元将此解释为消除该显式写回请求。反之,如果在从高速缓存一致性管理器单元接收到消息时,决策块520确定该消 息是与步骤510中发送的写回请求相关联的自干预消息,则方法500进行至步骤537。步骤537响应于自干预消息提供干预响应消息。该干预响应消息包括与写回请求 相关联的经修改高速缓存线数据。该干预响应消息被高速缓存一致性管理器的干预单元接 收。因为高速缓存一致性管理器的干预单元已经要求了用于接收经高速缓存的数据以便于 处理器核单元之间的数据转移的数据路径,所以向干预单元提供与写回操作相关联的经修 改的高速缓存线数据数据几乎不或完全不向干预单元增加附加复杂程度。步骤540将所选的经修改高速缓存线标记为无效。这允许处理器核单元使用该所 选的高速缓存线来存储其它数据。一旦该所选的高速缓存线被标记为无效,则处理器核单 元不再负责将该经修改的高速缓存线数据提供给任何发出请求的核。取而代之,如果另一处理器核需要该数据,则它必须从诸如系统存储器或可任选的更高级高速缓存之类的另一 存储单元取回该数据。此时,该处理器核单元以显式写回操作结束。此时,高速缓存一致性 管理器单元完成对经修改高速缓存线数据的写回,从而该经修改数据在系统存储器中或更 高级的共享高速缓存中对其它处理器核单元可用。
在步骤540之后,处理器核单元仍可接收请求经修改高速缓存线数据的消息。如 果在写回请求发出的大致同时,另一处理器核单元请求该经修改的高速缓存线数据,则可 能会发生上述情况,而高速缓存一致性管理器单元首先处理写回请求。在此情况下,在可选 的步骤545,之前存储经修改高速缓存线的处理器核单元接收请求经修改高速缓存线的消 息。因为该高速缓存线现在被标记为无效,所以在步骤550,该处理器核单元向高速缓存一 致性管理器和/或发出请求的处理器核单元返回高速缓存未命中响应。然后通过从系统存 储器或可任选的更高级高速缓存取回数据来满足对经修改高速缓存数据的请求。图6示出适用于本发明的实施例的示例计算机系统1000。计算机系统1000通 常包括一个或多个输出设备1100,包括诸如CRT、IXD、OLED, LED、气体等离子体、电子墨水 之类的显示设备或其它类型的显示器、扬声器和其它音频输出设备;诸如振动致动器之类 的触觉输出设备;计算机1200 ;键盘1300 ;输入设备1400 ;以及网络接口 1500。输入设备 1400可包括计算机鼠标、轨迹球、手柄、轨迹垫、图形输入板、触摸屏、话筒、多种传感器和/ 或允许用户或环境与计算机系统1000交互的其它有线或无线输入设备。网络接口 1500的 实施例通常提供与诸如局域网、广域网(例如因特网)和/或虚拟网络(例如虚拟专用网 络(VPN))之类的电子通信网络的有线或无线通信。网络接口 1500可实现一种或多种有线 或无线联网技术,包括以太网、802. 11标准中的一种或多种、蓝牙以及超宽带联网技术。计算机1200通常包括诸如一个或多个通用处理器1600之类的部件,以及诸如随 机存取存储器(RAM) 1700和非易失性存储器1800之类的存储设备。非易失性存储器1800 可包括软盘;固定或移动硬盘;诸如DVD-ROM、CD-ROM以及条形码之类的光存储介质;诸 如闪存之类的非易失性半导体存储设备;只读存储器(ROM);电池供电的非易失性存储器; 纸或其它打印介质;以及联网的存储设备。系统总线1900将上述部件互连。处理器1600 可包括诸如处理器100、150以及400之类的上述处理器的实施例。RAM 1700和非易失性存储器1800是用于存储数据、音频/视频文件、计算机程 序、小应用程序解释器或编译器、虚拟机以及本文所描述的本发明的实施例的有形介质的 示例。例如,上述处理器的实施例可被表示为能实现包括本发明的实施例的设计、描述、建 模、模拟、测试、集成和/或集成电路制造和/或计算机系统的人可读或计算机可读程序和 数据文件。这些程序和数据文件可用于将本发明的实施例实现为独立的集成电路,或用于 将本发明的实施例与其它部件集成以形成组合诸如微处理器、微控制器、片上系统(SoC)、 数字信号处理器、嵌入式处理器或专用集成电路(ASIC)之类的集成电路。表达本发明的实施例的程序和数据文件可使用通用编程或脚本语言,诸如C或 C++ ;诸如VHDL或Verilog之类的硬件描述语言;实现于RAM、ROM中或硬接线且适于控制 和协调处理器或其它集成电路中的部件的工作的微代码;和/或适用于本领域已知的电子 设计自动化软件应用的标准或专有格式数据文件。程序和数据文件可在不同的抽象度上表 示本发明的实施例,包括作为功能描述、作为逻辑门和其它电路部件的综合网表、以及作为 适合于在半导体制造工艺下使用的集成电路布局或掩模集。这些程序和数据文件可通过由计算机执行的电子设计自动化软件来处理,以设计处理器并产生用于其制造的掩模。计算机1200的其它实施例可包括用于配置、操作、模拟、测试以及于用于集成电 路设计、测试以及制造的专用硬件和软件通信的专用输入、输出以及通信子系统。
本领域技术人员根据本说明书和附图可设想另外的实施例。在其它实施例中,可 有利地作出以上公开的本发明的组合或子组合。为便于理解,对该体系结构的框图和流程 图进行了分组。然而,应当理解的是,块的组合、新块的添加、块的重排等被构想为在本发明 的替代实施例中。应当理解,本文中所描述的装置和方法可被包括在诸如微处理器核之类的半导体 知识产权核中(例如表达为硬件描述语言或综合网表),并在制造集成电路时变成硬件。 此外,可使用硬件和软件的组合,包括适合在处理器中执行的微代码来实现本发明的实施 例。因此,应当以说明性而非限制性的意味对待说明书和附图。然而,显然,在不背离如所 附权利要求所述的本发明的更宽泛精神和范围的情况下,可对这些实施例作出各种修改和 改变。
权利要求
一种在与包括至少两个处理器核单元的处理器中的处理器核单元相关联的高速缓存的高速缓存线中保持数据的经修改副本的方法,所述方法包括选择包括经修改的高速缓存数据的高速缓存线以供写回操作;向高速缓存一致性管理器单元发送对所选的高速缓存线的写回请求;从所述高速缓存一致性管理器单元接收第一干预消息;确定所述第一干预消息是否与来自发出请求的处理器核单元对所述经修改的高速缓存数据的请求相关联;以及响应于确定所述第一干预消息与对所述经修改的高速缓存数据的请求相关联,将所述经修改的高速缓存数据提供给所述发出请求的处理器核单元,并消除所述写回请求。
2.如权利要求1所述的方法,其特征在于,消除所述写回请求包括 从所述高速缓存一致性管理器单元接收附加干预消息;确定所述附加干预消息是否与所述写回请求相关联;以及响应于确定所述附加干预消息与所述写回请求相关联,向所述高速缓存一致性管理器 单元发送包括写回请求消除指示符的干预消息响应。
3.如权利要求1所述的方法,其特征在于,消除所述写回请求包括 从所述高速缓存一致性管理器单元接收附加干预消息;确定所述附加干预消息是否与所述写回请求相关联;以及响应于确定所述附加干预消息与所述写回请求相关联,阻止向所述高速缓存一致性管 理器单元发送干预消息响应,从而指示所述高速缓存一致性管理器单元所述写回请求应当 被消除。
4.如权利要求1所述的方法,其特征在于,还包括确定所述第一干预消息是否与所述写回请求相关联;以及响应于确定所述第一干预消息与所述写回请求相关联,将所选的高速缓存线标记为无效。
5.如权利要求1所述的方法,其特征在于,还包括 从所述高速缓存一致性管理器单元接收附加干预消息;确定所述附加干预消息是否与对所述经修改的高速缓存数据的请求相关联;以及 响应于确定所述附加干预消息与对所述经修改的高速缓存数据的请求相关联,向所述 发出请求的处理器核发送高速缓存未命中消息。
6.如权利要求1所述的方法,其特征在于,向所述发出请求的处理器核单元提供所述 经修改的高速缓存数据包括向所述高速缓存一致性管理器单元发送包括所述经修改的高 速缓存数据的干预消息响应。
7.—种在与包括至少两个处理器核单元的处理器中的处理器核单元相关联的高速缓 存的高速缓存线中保持数据的经修改副本的方法,所述方法包括选择包括经修改的高速缓存数据的高速缓存线以供写回操作; 向高速缓存一致性管理器单元发送对所选的高速缓存线的写回请求; 从所述高速缓存一致性管理器单元接收与所述写回请求相关联的第一干预消息; 确定所述第一干预消息是否在接收到来自发出请求的处理器核单元对所述经修改的 高速缓存数据的请求之后被接收到;以及响应于确定所述第一干预消息在接收到对所述经修改的高速缓存数据的请求之后被 接收到,消除所述写回请求。
8.如权利要求7所述的方法,其特征在于,确定所述第一干预消息是否在接收到对所 述经修改的高速缓存数据的请求之后被接收到包括评估与所选的高速缓存线相关联的高 速缓存一致性属性值。
9.如权利要求8所述的方法,其特征在于,设置为经修改的所述高速缓存一致性属性 值指示在接收到对所述经修改的高速缓存数据的请求之后未接收到所述第一干预消息。
10.如权利要求8所述的方法,其特征在于,设置为共享的所述高速缓存一致性属性值 指示在接收到对所述经修改的高速缓存数据的请求之后接收到所述第一干预消息。
11.如权利要求8所述的方法,其特征在于,设置为无效的所述高速缓存一致性属性值 指示在接收到对所述经修改的高速缓存数据的请求之后接收到所述第一干预消息。
12.如权利要求7所述的方法,其特征在于,还包括响应于确定在接收到对所述经修改的高速缓存数据的请求之后未接收到所述第一干 预消息,将所选的高速缓存线标记为无效。
13.如权利要求7所述的方法,其特征在于,接收到对所述经修改的高速缓存数据的请 求被包括在来自所述高速缓存一致性管理器单元的附加干预消息中。
14.如权利要求7所述的方法,其特征在于,消除所述写回请求包括向所述高速缓存一 致性管理器单元发送包括写回请求消除指示符的干预消息响应。
15.如权利要求7所述的方法,其特征在于,消除所述写回请求包括阻止向所述高速缓 存一致性管理器单元发送干预消息响应,从而指示所述高速缓存一致性管理器单元所述写 回请求应当被消除。
16.一种计算机可读存储介质,所述计算机可读存储介质包括定义处理器的逻辑电路 且适于被计算机执行的电子设计自动化应用程序所使用的指令,其中所述逻辑电路适于执 行以下操作选择包括经修改的高速缓存数据的高速缓存线以供写回操作;向高速缓存一致性管理器单元发送对所选的高速缓存线的写回请求;从所述高速缓存一致性管理器单元接收第一干预消息;确定所述第一干预消息是否与来自发出请求的处理器核单元对所述经修改的高速缓 存数据的请求相关联;以及响应于确定所述第一干预消息与对所述经修改的高速缓存数据的请求相关联,将所述 经修改的高速缓存数据提供给所述发出请求的处理器核单元,并消除所述写回请求。
17.如权利要求16所述的计算机可读介质,其特征在于,消除所述写回请求包括从所述高速缓存一致性管理器单元接收附加干预消息;确定所述附加干预消息是否与所述写回请求相关联;以及响应于确定所述附加干预消息与所述写回请求相关联,向所述高速缓存一致性管理器 单元发送包括写回请求消除指示符的干预消息响应。
18.如权利要求16所述的计算机可读介质,其特征在于,消除所述写回请求包括从所述高速缓存一致性管理器单元接收附加干预消息;确定所述附加干预消息是否与所述写回请求相关联;以及响应于确定所述附加干预消息与所述写回请求相关联,阻止向所述高速缓存一致性管 理器单元发送干预消息响应,从而指示所述高速缓存一致性管理器单元所述写回请求应当 被消除。
19.如权利要求16所述的计算机可读介质,其特征在于,还包括 确定所述第一干预消息是否与所述写回请求相关联;以及响应于确定所述第一干预消息与所述写回请求相关联,将所选的高速缓存线标记为无效。
全文摘要
一种处理器通过保持对数据负责直到写回请求被来自高速缓存一致性管理器的干预消息确认而防止写回竞争状况。如果对同一数据的请求在该干预消息之前到达,则处理器核单元提供所请求的数据并消除待处理的写回请求。与高速缓存线相关联的高速缓存一致性数据指示是否已经在与写回请求相关联的干预消息之前接收到对数据的请求。当写回请求发起时,高速缓存线的高速缓存一致性数据具有“经修改”值。当接收到与写回请求相关联的干预消息时,检查该高速缓存线的高速缓存一致性数据。高速缓存一致性数据从“经修改”值的变化指示在干预之前已经接收到对数据的请求,从而写回请求应被消除。
文档编号G06F13/00GK101802796SQ200880103410
公开日2010年8月11日 申请日期2008年6月20日 优先权日2007年6月22日
发明者A·施托勒, S·维欣 申请人:密普斯技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1