具有全局和局部标记状态的高速缓存相干性协议制造技术

技术编号:2887886 阅读:223 留言:0更新日期:2012-04-11 18:40
一种高速缓存相干性协议使用一种“标记”相干性状态以追踪将修改值写回至系统存储器的责任,允许插入该值而不必立即将它写回至系统存储器,因而增加存储器频带。该标记状态能赋予最近刚装载修改值的高速缓存线,从而在高速缓存间(水平地)迁涉。能进一步使用与标记状态有关的历史状态。本发明专利技术也能用于具有群集处理单元的多处理器计算机系统,以使标记状态能用于支持单独处理单元群集的每个组中的高速缓存线中的一条。可将优先级赋予不同高速缓存状态,包括标记状态,以响应于访问相应存储块的请求。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机系统,更具体地涉及一种高速缓存相干性协议,它为修改的数据提供一种新的相干性状态,从而改进高速缓存的插入操作而不必要求将插入的数据写至系统存储器。常规多处理器计算机系统10的基本结构示于附图说明图10中。计算机系统10具有多个处理单元,其中有两个12a和12b被描述,它们连至不同外设,包括输入/输出(I/O)设备14(例如显示器,键盘,图形指点器(鼠标)和永久存储设备(硬盘),供处理单元使用以执行程序指令的存储设备16(例如随机存取存储器或RAM)以及其主要用途是当第一次接通计算机电源时自外设中之一个(通常是永久存储设备)中找出并装载一个操作系统的固件18。处理单元12a和12b通过各种渠道与外设通信,包括通用的互连或总线20或存储器直接存取通道(未示出)。计算机系统10可具有许多未示出的附加部件,例如用于与例如调制解调器或打印机连接的串行和并行端口。还有可与图1框图中所示部件一起使用的其它部件;例如,可用于控制视频显示器的显示适配器,可用于访问存储器16的存储器控制器,等等。计算机也可具有两个以上处理单元。在对称多处理器(SMP)计算机中,所有处理单元一般都是相同的,也即,它们都在运行中使用一套公共指令和协议集或子集,并一般具有相同体系结构。一种典型体系结构示于图1中。一个处理单元包括一个具有众多用于执行程序指令以操作计算机的寄存器和执行单元的处理器核22。一个示例性处理单元包括由国际商业机器公司推上市场的Power PCTM处理器。处理单元也可具有一个或多个高速缓存,例如可用高速存储设备实现的指令高速缓存24和数据高速缓存26。高速缓存通常用于临时存放可由处理器重复地存取的值,以便加速处理而省掉自存储器16中装载值的较长时间的步骤。当这些高速缓存与处理器核整体地封装在单个集成芯片28上时,它们称为“片上的”。每个高速缓存与一个高速缓存控制器(未示出)相关连,后者管理处理器核与高速缓存之间的数据和指令的传送。处理单元可包括附加高速缓存,例如高速缓存30,由于它支持片上(级别1)高速缓存24和26,它被称为级别2(L2)高速缓存。换而言之,高速缓存30用作存储器16和片上高速缓存之间的中间级,并能存储比片上高速缓存所能存储的大得多的信息(指令和数据),但是存取开销大些。例如,高速缓存30可能是一片其存储容量为256或512仟字节的芯片,而处理器可能是一个具有其总存储量为64仟字节的片上高速缓存的IBM PowerPCTM604系列处理器。高速缓存30连至总线20,及自存储器16装载至处理器芯片22的全部信息必须通过高速缓存30。虽然图1只阐述了一个双级高速缓存层次,但也可提供多级高速缓存层次,其中有串连高速缓存的许多级别(L3、L4,等等)。如果在给定处理单元的L1高速缓存中有一个块,则它也会在该处理单元的L2和L3高速缓存中出现。此性能称之为相容。今后假定相容原理适用于与本专利技术相关的高速缓存。在SMP计算机中,重要的是提供一个相干存储系统,也即,对于所有处理器都要求对每个个别存储单元的写操作以某种顺序串连起来。例如,假定存储器中一个单元由一系列写操作改变内容,采取值1、2、3、4。在高速缓存相干系统中,所有处理器能观察到对给定单元的写操作按照所示顺序进行着。然而,处理单元有可能疏漏对存储器单元的一次写操作。读取存储器单元的给定的处理单元可能看到顺序1、3、4而漏掉对值2的更新。实现这些性能的系统被称为“相干的”。实际上所有相干性协议只对高速缓冲块的大小粒度进行操作。也即,相干性协议在高速缓存块基础上而不是单独地对个别存储器单元控制数据的移动和写许可(今后,“数据”一词用于指为或由程序使用的数字值或相当于程序指令的值的存储器值)。有一些协议和技术用于完成熟悉技术人员所知道的高速缓存相干性。所有这些用于维持相干性的机制要求这些协议只准一个处理器具有在任何给定时间对给定存储器单元(高速缓存块)实行写操作的“许可”。这项要求的结果是任何时候当一个处理单元试图写入一个存储器单元时,它必须首先通知所有其它处理单元它想写入该单元并自所有其它处理单元接收许可以便执行写操作。为在系统中实现高速缓存相干性,这些处理器在一条公共通用互连(例如总线20)上进行通信。这些处理器在互连上传送消息以表达它们要自存储器单元读取或向它写入的愿望。当该互连上有一个操作时,所有其它处理器都“探听”(监视)此操作并决定它们的高速缓存的状态是否允许执行所要求的操作以及如果可以的话则在什么条件下。有数个总线事务处理要求探听和跟踪行动以承诺总线事务处理及维持存储器相干性。探听操作通过接收合格的探听请求而激发,并由一定总线信号的确认而生成。只当发生探听命中时才将指令处理中断,同时探听状态机确定需要一个附加高速缓存探听以解决所中断的扇区的相干性。这种通信是必要的,因为在具有高速缓存的系统中,存储器的一定块的最新有效副本可能已自系统存储器16移至系统中的一个或多个高速缓存中(如上所描述的)。如果一个处理器(例如12a)试图访问一个当前不在其高速缓存层次中的存储器单元,则包含该存储器单元的实际(当前)值的块的正确版本可能或在系统存储器16中或在另一个处理单元例如处理单元12b的一个或多个高速缓存中。如正确版本是在系统的一个或多个其它高速缓存中,则必须自系统的高速缓存中而不是自系统存储器中获得正确值。例如,考虑一个处理器例如12a试图读取存储器中一个单元。它首先轮询它自已的L1高速缓存(24或26)。如该块不在L1高速缓存内,该请求即被送至L2高速缓存(30)。如该块仍不在L2高速缓存内,该请求则被送至较低高速缓存级,例如L3高速缓存。如该块不在较低级别高速缓存中,则该请求送至通用互连(20)上以供处理。一旦一个操作被置于通用互连上,则所有其它处理单元探听该操作并确定该块是否在它们的高速缓存内。如果一个给定处理单元具有一个其L1高速缓存中处理单元所请求的块及该块中的值被修改,则按照相容原理L2高速缓存和任何较低级别高速缓存也具有块的副本(然而它们的副本是过时的,因为处理器高速缓存中的副本已修改过)。因此当处理单元的最低级高速缓存(例如L3)探听读取操作时,它应确定被请求的块在较高级高速缓存中并被修改。当此事发生时,L3高速缓存在通用互连上放置一个消息,通知处理单元稍后时间必须“重试”其操作,因为存储器单元的实际值在存储器层次顶层L1高速缓存中,必须检索以使它可用来服务于原请求处理单元的读取请求。一旦原请求处理单元的请求被重试后,L3高速缓存启动一个过程,以便自L1高速缓存中检索修改值,并按照准确实现细节将它提供给L3高速缓存、主存储器或两者。为自更高级高速缓存中检索该块,L3高速缓存通过高速缓存间的连接将消息送至更高级高速缓存,以请求检索该块。这些消息沿处理单元层次往上传送,直至它们到达L1高速缓存,并使该块沿层次往下移至最低级别(L3或主存储器)以便能服务于来自原请求单元的请求。原请求单元实际上将读取请求重新送至通用互连上。然而此时修改值已自处理单元的L1高速缓存中检索出并置于系统存储器中,因此原请求处理器的读请求得到满足。刚才描述的方案通常称为“探听推动”。在通用互连上探听读取请求,使处理单元将块“推”至层次本文档来自技高网...

【技术保护点】
一种在多处理器计算机系统中维持高速缓存相干性的方法,该计算机系统具有众多的组合成至少两个群集的处理单元,每个处理单元群集具有至少两个高速缓存级,其中第一高速缓存级中众多高速缓存中的给定的一个只供单个处理单元使用,及第二高速缓存级中的众多高速缓存中给定的一个供同一群集中两个或更多处理单元使用,该方法包括以下步骤:将标记的相干性状态赋予与第一处理单元群集中第一处理单元相关连的第一高速缓存级中一个高速缓存中的第一高速缓存线,以标示第一高速缓存线包含一个对应于计算机系统的系统存储 设备的一个存储块的修改值,及标示该修改值尚未写至系统存储设备的存储块;以及将标记的相干性状态赋予与第二处理单元群集中第二处理单元相关连的第一高速缓存级中一个高速缓存中的第二高速缓存线,以标示第二高速缓存线包含一个修改值及标示该修改值尚未 写至系统存储设备的存储块。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:拉维库玛阿里米利约翰史蒂文多德森杰里唐刘易斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1