具有动态锁步支持的高速缓存存储器制造技术

技术编号:7917594 阅读:214 留言:0更新日期:2012-10-25 02:25
公开了一种具有动态锁步支持的高速缓存存储器。可以以将高速缓存的第一部分(例如,81)专用于锁步模式执行,而提供第二(或剩余)部分(例如,82)用于非锁步执行模式的方式来划分高速缓存存储装置。例如,在使用被组织为集相关联高速缓存的高速缓存存储的实施例中,可以通过保留高速缓存中通道的子集以当在锁步模式中操作时使用来实现划分。剩余通道的一些或全部可用于当在非锁步执行模式中操作时使用。在一些实施例中,可以以相似的方式保留高速缓存集的子集而不是高速缓存通道,但为了具体说明,随后的说明书的大部分强调通道分区的实施例。

【技术实现步骤摘要】

本专利技术涉及多处理器数据处理系统,并且更具体地,涉及便利在处理器操作的锁步和异步模式之间的过渡的高速缓存技术。
技术介绍
在一些数据处理应用中,使用多个处理器实例来利用相同数据输入并行地执行相同代码序列。通常,处理器锁步地执行。然后错误逻辑可以检测在处理器的执行状态间的差别,并且基于此,用信号发送在处理器实例之一中的瞬时或永久错误。例如,在汽车电子系统中,可以将这种形式的冗余用于实现可靠性阈值或期望的安全完整性水平。遗憾的是,提供冗余处理器很昂贵,并且总的来说,不是数据处理应用的所有方面都要求这样的可靠性或安全完整性水平。结果,数据处理应用的非关键方面可能由于锁步执行开销而增加负担,并且/或者可能浪费有用的处理周期。 附图说明通过示例说明本专利技术,并且本专利技术不受限于附图,在附图中,相似的附图标记指示类似的元素,并且其中图I以框图形式图示根据本专利技术的一些实施例的数据处理系统。图2以框图形式图示根据本专利技术的一些实施例的另一种数据处理系统。图3以框图形式图示诸如在图I或图2中图示的高速缓存实例的一个示例,该高速缓存实例包括适合于动态锁步支持的高速缓存控制逻辑。图4以框图形式图示高速缓存控制和状态寄存器的部分,该部分在图3的高速缓存实例的一个示例中可编程地限定对锁步模式和执行模式的通道的分配。图5和6继而以表格形式图示在图4的高速缓存控制和状态寄存器内的字段定义的一个示例。图7以流程图形式图示在图3的高速缓存实例的一个示例中访问请求的锁步模式命中/未命中处理。图8以流程图形式图示在图3的高速缓存实例的一个示例中访问请求的执行模式命中/未命中处理。图9以框图形式图示图3的更换逻辑和锁步模式控制的一个示例,其中,提供了更换指针实例、状态和逻辑的锁步和执行模式版本。图10以框图形式图示图3的更换逻辑和锁步模式控制的另一个示例,其中,提供了集命名的更换指针实例、状态和逻辑的锁步和执行模式版本。图11以流程图形式图示通过诸如在图9或图10中图示的更换逻辑对全局和局部更换状态的更新的锁步模式处理。图12以流程图形式图示通过诸如在图9或图10中图示的更换逻辑对全局和局部更换状态的更新的执行模式处理。本领域内的普通技术人员将理解,出于简单和清楚的目的图示附图中的元素,并且不必须按照比例绘制。例如,在附图中的一些元素的尺寸相对于其他元素可能被夸大,以有助于提高对本专利技术的实施例的理解。具体实施例方式期望下述技术通过该技术,在数据处理系统中处理器实例的集合可以在一些时间在锁步执行模式中操作,而在其他时间(并且/或者对于计算加载的特定部分)支持一般独立的计算任务的并行的、非锁步的执行。以这种方式,数据处理应用可以受益于在现代多处理器和多核处理器实现中可获得的另外的处理能力,同时当并且如果需要时向冗余分配那种处理能力的一部分。在期望时动态进入到执行的锁步模式和从执行的锁步模式退出提出了相当大的挑战,特别是当在数据处理系统中存在高速缓存时。具体地说,由于锁步操作通常需要在逐个周期基础上(或至少相位、周期对应地)多个处理器的相同执行,所以在高速缓存状态上的差别是有问题的。例如,在由相应的处理器使用的相应高速缓存的内容上的差别可以导致一个处理器在代码序列中具有用于特定存储器访问的高速缓存命中,而对试图在锁步中·执行的另一个(或另一些)对于相同的存储器访问导致高速缓存未命中。由于在相应的处理器上的不同的非锁步计算的交织执行,以及在相应的高速缓存操作的更换算法可能逐出(evict)不同的高速缓存行的事实,使得保持相同的高速缓存状态复杂化。传统解决方案趋向于是粗糙的,或者禁止用于锁步执行的高速缓存,或者在执行模式之间的过渡处无效或仅刷新高速缓存内容。可以明白,用于进入锁步执行的两个处理器的高速缓存状态的同步会导致很高的开销,可能增加成千上万的执行周期。所需要的是便于从独立的非锁步执行模式动态地、低开销地进入到处理器锁步执行模式,并且在一些情况下动态地、低开销地从处理器锁步执行模式退出进入到独立的非锁步执行模式的技术。锁步分区和命中/未命中处理已经发现,可以以下述方式来划分高速缓存存储装置将高速缓存的第一部分专用于锁步模式执行,而第二(剩余)部分用于非锁步执行模式。例如,在使用被组织为集相关联高速缓存的高速缓存存储装置的实施例中,可以通过保留高速缓存中的通道的子集以当在锁步模式中操作时使用。剩余通道的一些或全部可用于当在非锁步执行模式中操作时使用。在一些实施例中,可以以类似的方式来保留高速缓存集的子集,而不是高速缓存通道,但是为了具体说明,随后的说明的大部分强调通道划分的实施例。在许多实用数据处理应用中,锁步模式执行利用多个处理器实例来用于冗余,以实现可靠性或期望的安全完整性水平,而非锁步执行通过使得处理器实例可用于执行独立的程序、处理或线程而提供增强的执行性能。因此,虽然没有限制,但是在此进行的描述的大部分关注于示例性实施例和/或如下使用情形,其中,在安全或冗余激发的锁步执行模式和非锁步的执行模式之间进行过渡。尽管如此,基于在此进行的描述,本领域内的普通技术人员将理解在提供锁步和非锁步模式的高速缓存架构中的本专利技术的技术的利用或适用条件,而与安全或性能问题无关。因此,说明性地关注于通道划分的实施例,在锁步模式中使用的高速缓存通道的第一子集保持有效,并且当过渡到执行模式时未被刷新或无效,并且反之亦然。相反,当与这些锁步通道所关联的处理器在执行模式中执行时,这些锁步通道被锁定或冻结并且不可用于更换。在锁步模式中,这些相同的锁步通道被解锁或解冻,但是根据在锁步执行集的处理器上执行的相同的代码序列,相同地跟踪在与锁步执行集的其他处理器相关联的高速缓存中的锁步通道的状态。锁定/解锁对于应用软件通常是透明的,并且可以与在要求(或受益于)在多个处理器实例上的锁步模式执行的处理或线程和不要求在多个处理器实例上的锁步模式执行的处理或线程之间的上下文转换一致。被分配到执行模式的高速缓存通道在锁步模式中保持有效,但是不满足加载或存储命中,并且不可用于分配。上面的一种暗示是在一个模式中进行的存储器访问请求(例如,与由处理器执行模式执行的加载和存储操作对应)可以在与另一种模式相关联的高速缓存部分中命中。高速缓存在直写模式中运行,并且以保持在高速缓存的相应部分中表示的条目之间、例如在锁步和执行通道中的对应的高速缓存行条目之间的一致性的方式来处理访问请求。更具体地,通常满足源自在执行模式中执行的加载操作的向锁步通道的高速缓存 命中,并且该高速缓存命中向处理器返回高速缓存数据。另一方面,不允许源自在锁步模式中执行的加载操作的向执行通道的高速缓存命中来满足加载操作,因为在与锁步执行集的另一个处理器(或多个处理器)相关联的高速缓存中的执行通道可能不包含行。相反,在一个实施例中,这样的命中使得在执行通道中的对应行无效。结果,对于在多个通道中的相同地址的多个拷贝没有问题。而是,对源自在锁步模式中执行的加载操作的向执行通道的命中被命中/未命中逻辑当作未命中(相对于锁步通道)来对待,并且导致高速缓存行分配,并且填充到锁步通道中的高速缓存行。虽然写入命中提出了挑战,但是在此所述的技术以革新的方式来处理这些挑战。对于已经被保留用于锁步模式执行的向高速缓存通道发生的写入命中(在执行本文档来自技高网...

【技术保护点】
一种用于操作计算系统的方法,所述计算系统包括多个处理器,每个处理器具有被划分为锁步分区和非锁步分区的关联高速缓存,所述方法包括:在操作的锁步模式和操作的非锁步模式之间动态地过渡,其中,在所述操作的锁步模式中,所述多个处理器的每个以时间对应来执行相同的代码序列,并且其中,在所述操作的非锁步模式中,所述多个处理器能够执行不同的代码序列;在所述非锁步模式中,满足来自所述锁步分区的至少一些加载命中和来自所述非锁步分区的至少一些其他加载命中;以及在所述锁步模式中,满足仅来自所述锁步分区的加载命中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:威廉·C·莫耶
申请(专利权)人:飞思卡尔半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1