数据处理系统和用于监控处理单元的高速缓冲存储器一致性的方法

文档序号:6657135阅读:184来源:国知局
专利名称:数据处理系统和用于监控处理单元的高速缓冲存储器一致性的方法
技术领域
本发明涉及一种数据处理系统,其具有多个处理单元、用于存储来自所述处理单元的数据的共享存储器以及用于将共享存储器与多个处理单元相连的互连装置。本发明还涉及一种用于监控多个处理单元的高速缓冲存储器一致性的方法。
背景技术
在当今的片上系统中,多个处理单元通过某种互连方式共享存储器,处理单元可以分别访问该存储器。这种互连典型地为处理单元至存储器的互连,它可以是简单的总线或复杂的片上点对点网络。处理单元通常包含高速缓冲存储器。高速缓冲存储器是由硬件管理的片上存储器,它消除了较长的存储等待时间并节省了外部DRAM带宽。如果IC中存在多个高速缓冲存储器,则应该使它们同步以向处理单元传递正确的数据。这个问题被称作高速缓冲存储器一致性。现代多处理器集成电路—像Intel Montecito、IBM Power 5、Philips Viper PNX8550、Sun MAJC等一典型地包括上百万个晶体管,因而对其设计进行验证变得越来越困难。为了在不进行重新制造的情况下找出集成电路的工作区、或是确定硬件并快速地重新制造芯片,希望尽可能早地找出任何种类的硬件逻辑缺陷。这样节省了推向市场的时间。
用于查找任何硬件缺陷的技术典型地称作调试。一些现代复杂的集成电路包括测试和调试工具,这些工具可以具体实现为断点模块。这些模块典型的是在发生例如从特定的存储区进行加载等特定事件时被激活的。为了对IC中的一些内部寄存器和存储器进行仔细检查,停止IC时钟。每一个集成电路会包括联合测试访问组JTAG接口,用于执行对集成电路的检查。JTAG是IEEE 1149标准。
然而,断点模块仅针对规定的事件集合而工作,所述事件集合需要在设计期间确定。这些断点模块对集成电路硬件的检查范围有限。断点模块可以监控总线上的地址信号,一旦对总线上的特定地址进行访问,则执行断点。这些断点模块是一种硬件调试解决方案,允许对IC中的选定信号进行检查。因此,这些断点模块仅能够查找那些在设计期所预料的缺陷。这些断点模块不会查找出其它任何缺陷。
Cantin等在2001年6月在Workshops on Memory PerformanceIssues发表的“Dynamic Verification of Cache Coherence Protocol”中公开了一种用于改进高速缓冲存储器一致的多处理器的故障容限的方法。通过动态地对硬件中的高速缓冲存储器一致性操作进行验证,可以检测到由制造故障、软错误和设计错误导致的差错。因此,多重处理环境内不同处理单元的高速缓冲存储器一致性的硬件动态验证得以执行。多处理器中每一个处理单元都包括硬件一致性检查单元和用于在各个处理单元之间通信状态转移的附加确认总线。然而,这种方法会导致额外的总线和各个处理单元的更为复杂的结构。此外,这种验证硬件会加大用于实现验证硬件的额外的验证和设计上的工作量。
Sorin等人在2003年6月22-25日San Francisco,Proceedings ofthe International Conference on Dependable Systems and Networks上发表的“Dynamic Verification of End-to-End MultiprocessorInvariants”中公开了另一种使用分布特征分析的验证方法。这里,每一个一致的处理单元动态地创建包含该处理单元至少一些状态转移的特征。集中收集这些特征,执行针对协议违背(即不变量(invariant))的验证。然而,这种技术需要针对特征分布的专用基础结构,从而导致额外的硬件复杂度。

发明内容
因此,本发明的目的是提供一种数据处理系统和一种用于监控不同处理单元的高速缓冲存储器一致性的方法,所述系统和方法提供了针对不同处理单元的高速缓冲存储器一致性的改进的监控工具。
这个目的由根据权利要求1的数据处理系统以及根据权利要求9用于监控不同处理单元的高速缓冲存储器一致性的方法而实现。
因此,提供了一种的数据处理系统,具有多个处理单元、用于存储来自所述处理单元的数据的共享存储器以及用于连接存储器与多个处理单元的互连装置。所述处理单元中至少一个包括高速缓冲存储器。此外,设置有转移缓冲器,用于对所述多个处理单元中所述至少一个处理单元的高速缓冲存储器的状态转移中至少一些进行缓冲。设置有监控装置,用于基于转移缓冲器的数据,对所述多个处理单元的高速缓冲存储器的高速缓冲存储器一致性进行检测,以确定任何的一致性违背。
因此,为了对处理单元的高速缓冲存储器的高速缓冲存储器一致性进行验证,任何处理单元都不必对状态转移进行跟踪。相反,这由监控装置来执行,从而可以使处理单元的设计保持不变,并且可以容易地缩放该设计。
根据本发明一方面,监控装置适于在已发生高速缓冲存储器一致性协议的违背时发出信号,从而可以对该违背进行处理。
根据本发明另一方面,监控装置在运行时启动对导致所确定的高速缓冲存储器一致性违背的缺陷进行修补,即不需要停止并重新设计数据处理系统。
根据本发明另一方面,监控装置实现为所述多个处理单元之一中软件监控器。因此,监控装置可以是可再编程的和灵活的。
根据本发明另一方面,状态转移缓冲器设置在互连装置中,其中互连装置对转移缓冲器进行更新。因此,由于通过该互连获得与状态转移有关的信息,所以不需要处理单元额外地发出信号。
根据本发明另一方面,监控装置在专用处理单元上实现,而转移缓冲器实现为所述专用处理单元中的存储映像输入/输出寄存器。
根据本发明另一方面,基于存储在转移缓冲器和/或共享存储器中的状态转移的历史数据,执行缺陷验证或高速缓冲存储器一致性违背验证。由于转移缓冲器仅具有有限的尺寸,所以状态转移的一些历史数据可以存储在共享存储器中,从而可以在较长时间段上执行关于高速缓冲存储器一致性违背的分析。
本发明还与一种用于监控数据处理系统中多个处理单元的高速缓冲存储器一致性的方法有关,所述处理单元其中至少一些包括高速缓冲存储器并通过互连装置与共享存储器相连。对所述处理单元的高速缓冲存储器的状态转移进行缓冲,并基于缓冲的状态转移数据而监控所述多个处理单元的高速缓冲存储器的高速缓冲存储器一致性。
本发明基于对高速缓冲存储器一致性协议的正确性进行监控的思想。在转移缓冲器中对处理单元的状态转移进行缓冲。监控装置对缓冲的状态转移进行监控,以查找任何不可接受的状态转移。如果发现这种不可接受的状态转移,监控装置可以发起错误通知或可以启动对所发现的缺陷的修补。
因此,即使在集成电路制造之后,也能够解决该复杂集成电路内的功能性硬件缺陷。这是在运行中实时完成的。因此,与现有技术领域中的技术相比,这是一种非常灵活且全面的机制。这种机制能够查找并解决导致协议违背的硬件高速缓冲存储器一致性逻辑中的任何缺陷。
参考下文所述的实施例,本发明范围内的这些和其它方面将会变得明显并得以说明。


图1示出了根据第一实施例的多处理器环境的框图;图2示出了根据第二实施例的多处理器环境的框图;以及图3示出了根据第三实施例的多处理器环境的框图。
具体实施例方式
图1示出了根据第一实施例的多处理器环境的基本设置的框图。这里示出了多个处理单元PU、互连装置IM和存储器M。此外还示出了监控装置MM和转移缓冲器STB。转移缓冲器STB设置在互连装置IM处,而且监控装置MM与互连装置IM相连。处理单元PU中一些还包括高速缓冲存储器C。这种高速缓冲存储器C可以是1级高速缓冲存储器,并构成由硬件管理的片上存储器,该片上存储器消除了较长的存储等待时间并节省了额外的DRAM带宽。如果IC中存在多个高速缓冲存储器,则应该对它们进行同步以向处理单元传递正确的数据。
从互连事务处理中提取出高速缓冲存储器的状态转移。转移缓冲器STB用于捕获处理单元PU的高速缓冲存储器的状态转移。为了确保处理单元PU的正确处理,执行高速缓冲存储器一致性协议。监控装置MM访问转移缓冲器STB并检查状态转移,以查找高速缓冲存储器一致性协议中的任何违背。如果监控装置MM找到高速缓冲存储器一致性协议的违背,则可以发出信号通知该错误或启动对导致该错误的缺陷的修补。
监控装置MM可以实现为可编程处理单元上的软件监控器。可选择地,监控装置还可以实现为专用处理单元PU。
根据第一实施例的转移缓冲器STB设置成靠近互连装置。转移缓冲器STB实现为具有一个写端口和一个读端口的FIFO,其中写端口针对处理单元PU,读端口针对监控装置MM。
图2示出了根据第二实施例的多处理器环境的框图。这里示出了多个处理单元PU、互连装置和存储器M。另外示出了具有转移缓冲器STB的监控装置MM。因此,与第一实施例相比,监控装置MM和转移缓冲器STB在一个单元中实现。优选地,转移缓冲器STB实现为存储映像输入/输出寄存器MMIO。与第一实施例中相同,互连装置IM会自动地对高速缓冲存储器一致性处理单元中的状态转移进行更新。
根据第一或第二实施例的监控装置MM适于检测高速缓冲存储器一致性协议违背。对于具有修改、共享和无效状态的MSI协议来说,高速缓冲存储器一致性协议违背可能是由于在处理单元(PU)中另一个高速缓冲存储器(C)中,修改状态下的多条高速缓冲存储器线路或修改的高速缓冲存储器线路处于共享状态。关于高速缓冲存储器一致性协议的更多信息,请参考Else Vier Science在2003年出版的、由JohnL.Hennessy & David Patterson合著的“Computer Architecture”第三版的6.3-6.4章。因此,转移缓冲器STB可以用于记录或存储高速缓冲一致性处理单元的标识号(这些转移标识号类似于修改-共享、共享-无效等)和处理单元的地址。
监控装置MM检查状态转移的历史,以查找任何高速缓冲存储器一致性协议违背。监控装置MM把状态转移从转移缓冲器STB存储到共享存储器M,以创建更长时间段上的状态转移历史数据,从而也可以检测长期的高速缓冲存储器一致性违背。之后,监控装置MM检查存储在存储器M和转移缓冲器STB中的整个状态转移历史,以检测违背。
如果高速缓冲存储器一致多处理器与高速缓冲存储器一致性协议有关,那么上述方案对于这些多处理器特别有效。典型地,这些协议简单且仅具有少数不变量(invariant)。
图3示出了根据第三实施例的多处理器环境的框图。除了处理单元PU、互连装置IM、存储器M和监控装置MM之外,还设置有边界扫描装置BSM和调试装置DM。
第三实施例可以基于第一或第二实施例。由监控装置MM确定的高速缓冲存储器一致性违背(即缺陷)时实时修补的,即紧接在发现缺陷之后立即修补。硬件调试陷工程师查找硬件缺陷(可能借助监控装置MM)。然后利用监控装置在检测到硬件缺陷时所执行的修补,更新监控器。换句话说,在运行时执行调试。为了确定所发现的缺陷的位置,边界扫描装置BCM执行扫描链或边界扫描。IEEE 1149.1标准中描述了边界扫描。具有多处理器环境的芯片典型地包括联合测试访问组JTAG接口。在标准操作期间,边界单元不起作用,允许数据通过多重处理环境而传播。然而在测试模式期间,捕获所有的输入信号,对其进行分析,并将所有的输出信号复位,以测试通过端口TAP(测试访问端口)控制器和指令寄存器所控制的扫描单元的操作。然后使用调试装置DM对边界链中与检测到的高速缓冲存储器一致性违背或检测到的缺陷有关的那些部分进行修改。
因此,在包括多个处理单元、共享存储器和用于连接多个处理单元和共享存储器的互连装置的数据处理系统中,设置有边界扫描单元以执行边界扫描。另外设置有调试装置,用于对边界扫描的一部分进行修改,以纠正数据处理系统的逻辑缺陷。
所述系统的优点在于该系统是可伸缩的。即使针对大量的处理单元,所述系统也占用较小的面积和较小的功率。由于使用软件进行监控,所以不需要额外的总线并能够灵活而容易地对解决方案进行修改。
对于将状态转移存储到转移缓冲器,可选择地或附加地,可以将状态转移中至少一些存储在高速缓冲存储器C中。
尽管已相对于设置在处理单元处的高速缓冲存储器(即1级高速缓冲存储器)的高速缓冲存储器一致性协议,描述了上述实施例,但是本发明的基本原理还可应用于2级或3级高速缓冲存储器。这里,为了确定任何的高速缓冲存储器一致性违背,还包括用于存储高速缓冲存储器一致性协议中涉及的高速缓冲存储器状态转移的转移缓冲器、以及用于监控存储的状态转移的监控装置。
应当注意,上述实施例示出了本发明而不是限制了本发明,在不背离所述权利要求的范围的前提下,本领域的技术人员能够设计出多种可选实施例。在权利要求中,括号内的任何附图标记都不应被解释为对该权利要求的限制。单词“包括”不排除权利要求中所列元件或步骤之外的其他元件或步骤的存在。元件之前的单词“一个”不排除多个该元件的存在。在枚举有多个装置的设备权力要求中,这些装置中的多个可以用同一项硬件来实现。仅在互不相同的从属权力要求中引用特定手段并不表示无法对这些手段的组合进行有利使用。
此外,权利要求中的任何附图标记都不应被解释为对权利要求保护范围的限制。
权利要求
1.一种数据处理系统,包括-多个处理单元(PU),其中所述多个处理单元(PU)中至少一个处理单元包括高速缓冲存储器(C);-共享存储器(M),用于存储来自所述多个处理单元(PU)的数据;-互连装置(IM),用于将所述共享存储器(M)与所述多个处理单元(PU)相连;-转移缓冲器(STB),用于对所述多个处理单元(PU)的至少一个高速缓冲存储器(C)的状态转移进行缓冲;以及-监控装置(MM),用于基于在转移缓冲器(STB)中缓冲的状态转移,对所述多个处理单元的所述至少一个高速缓冲存储器(C)的高速缓冲存储器一致性进行监控,以确定高速缓冲存储器一致性违背。
2.根据权利要求1所述的数据处理系统,其中所述监控装置(MM)适于在确定了高速缓冲存储器一致性违背的情况下发出通知。
3.根据权利要求1所述的数据处理系统,其中所述监控装置(MM)适于在运行时对所确定的高速缓冲存储器一致性违背进行修补。
4.根据权利要求3所述的数据处理系统,还包括边界扫描装置(BSM),用于对所述数据处理系统的内部寄存器执行边界扫描;以及-调试装置(DM),用于对边界链的故障部分进行修改。
5.根据权利要求1至3中任意一项所述的数据处理系统,其中监控装置(MM)以软件的形式在可编程处理单元(PU)上实现。
6.根据权利要求5所述的数据处理系统,其中转移缓冲器(STB)设置在互连装置(IM)处,以及所述互连装置(IM)对转移缓冲器(STB)进行更新。
7.根据权利要求1至3中任意一项所述的数据处理系统,其中监控装置在可编程处理单元(PU)上实现,以及将转移缓冲器(STB)作为存储映像输入/输出寄存器设置在监控装置(MM)中。
8.根据权利要求3、5或7所述的数据处理系统,其中状态转移还存储在所述共享存储器(M)中,以及所述监控装置(MM)适于基于存储在所述转移缓冲器(STB)和/或所述共享存储器(M)中的状态转移的历史数据,对高速缓冲存储器一致性协议的违背进行验证。
9.一种用于监控数据处理系统内多个处理单元(PU)的高速缓冲存储器一致性的方法,所述多个处理单元通过互连装置(IM)与共享存储器(M)相连,其中所述多个处理单元(PU)中至少一个处理单元包括高速缓冲存储器(C),所述方法包括步骤-对所述多个处理单元(PU)中至少一个高速缓冲存储器(C)的状态转移进行缓冲;以及-基于缓冲的状态转移,对所述多个处理单元的所述至少一个高速缓冲存储器(C)的高速缓冲存储器一致性进行监控,以确定高速缓冲存储器一致性违背。
10.根据权利要求9所述的方法,其中基于状态转移的历史数据,对所述至少一个高速缓冲存储器(C)的高速缓冲存储器一致性进行监控。
11.根据权利要求9或10所述的方法,其中将状态转移存储在所述高速缓冲存储器(C)中至少一个或转移缓冲器(STB)中。
12.一种数据处理系统,包括-多个处理单元(PU);-共享存储器(M),用于存储来自所述多个处理单元(PU)的数据;-互连装置(IM),用于将共享存储器(M)和所述多个处理单元(PU)相连;-边界扫描装置(BSM),用于对所述数据处理系统内部执行边界扫描;以及-调试装置(DM),用于在运行时对边界链的故障部分进行修改。
13.根据权利要求11所述的数据处理系统,还包括转移缓冲器(STB),用于对所述多个处理单元(PU)的至少一个高速缓冲器(C)的状态转移进行缓冲;以及-监控装置(MM),用于基于在转移缓冲器(STB)中缓冲的状态转移,对所述多个处理单元的所述至少一个高速缓冲存储器(C)的高速缓冲存储器一致性进行监控,以确定高速缓冲存储器一致性违背。
全文摘要
本发明涉及一种数据处理系统,所述系统具有多个处理单元(PU),用于存储来自所述处理单元(PU)的数据的共享存储器(M)以及用于将存储器(M)与多个处理单元(PU)相连的互连装置(IM)。至少一个处理单元(PU)包括高速缓冲存储器(C)。此外,设置有转移缓冲器(STB),用于对所述多个处理单元(PU)中所述至少一个处理单元的高速缓冲存储器(C)的至少一部分状态转移进行缓冲。设置有监控装置(MM),用于基于转移缓冲器(STB)的数据而监控所述多个处理单元(PU)的高速缓冲存储器(C)的高速缓冲存储器一致性,以确定任何的一致性违背。
文档编号G06F11/28GK101044461SQ200580035548
公开日2007年9月26日 申请日期2005年10月17日 优先权日2004年10月19日
发明者安德烈·S·泰雷奇科, 贾拉姆·穆尔卡尼卡拉内奇斯瓦兰 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1