高速缓存和体系结构特定功能分层的方法

文档序号:6413960阅读:192来源:国知局
专利名称:高速缓存和体系结构特定功能分层的方法
技术领域
本发明总体上涉及数据处理系统中的高速缓存控制器,并且尤其涉及数据处理系统中用于高速缓存的高速缓存控制器。更进一步,本发明涉及,在用于数据处理系统中的高速缓存的控制器内,对高速缓存和体系结构特定功能进行分层,以便于类属接口的定义,此接口可以转换为特定总线体系结构。
使用二级(L2)高速缓存的数据处理系统典型地包括用于管理影响高速缓存事物处理的高速缓存控制器。这样的高速缓存控制器通常在功能级上实现,如图5所示。比如,高速缓存控制器502可以包括管理高速缓存目录的逻辑504、实现最近最少使用(LRU)替换原则的逻辑506、管理重载缓冲区508的逻辑、以及管理存回缓冲区510的逻辑。在传统的实现方案中,高速缓存对这些和其它体系结构功能,即高速缓存控制器所需的典型功能,总体上说是相当可见的。因此,高速缓存控制器设计对专门的处理器,如PowerPCTM、AlphaTM或X86族系列处理器是特定的。
除了是处理器特定的,高速缓存控制器一般说来也是总线特定的。即高速缓存控制器的实现对支配处理器与高速缓存控制器之间总线上事物处理的协议是典型特定的。实际上,高速缓存控制器内的动作是由总线操作启动的。这样,不论在设计上还是在操作上,高速缓存控制器与连接到高速缓存控制器的特定总线是严格匹配的。
用于所讨论的数据处理系统的处理器一般支持很大数量的高速缓存管理指令,如刷新命令、数据高速缓存块存储等。对这些指令的支持典型地在高速缓存逻辑上实现,通过对不同指令使用特别的情形,使高速缓存控制器设计的需求大大复杂化。
使用现有技术实现高速缓存控制器的一个问题是在高速缓存控制器逻辑和到总线的总线接口单元之间定义类属接口的实际不可能性。这样的一个类属接口将是有用的,因为当为不同的处理器或总线体系结构的操作,对整体高速缓存控制器设计重新改进时,其将允许再次使用高速缓存控制器逻辑。
因此,实现高速缓存控制器逻辑是所期望的,其允许对高速缓存控制器逻辑和高速缓存控制器的总线接口单元之间的类属接口进行定义。如果高速缓存控制器设计同时便于高速缓存控制器逻辑的重复使用,这也是一种优势。最后,这对于高速缓存控制器设计允许类属接口的实现也是有利的,根据个别总线操作的特点,接口可以定制。
因此,本发明的一个目的在于为数据处理系统提供一个改进的高速缓存控制器。
本发明的另一个目的在于提供一个改进的高速缓存控制器,其具有分层的高速缓存和体系结构特定功能。
本发明还有一个目的在于在高速缓存控制器内,高速缓存控制器逻辑和总线接口单元之间提供类属接口。
如现在所描述的,上述目的已经实现。高速缓存和高速缓存控制器内的体系结构功能被分层,并装备了类属接口。对高速缓存和体系结构操作分层允许控制器内控制器逻辑和总线接口单元之间类属接口的定义。通过吸取所支持操作的要素,并加入到类属协议,来定义类属接口。依据操作的特点,接口本身可以是脉冲或保持接口。因为控制器逻辑隔离于处理器或总线体系结构所需的特定协议,通过适当地修改总线接口单元,设计可以直接应用于不同协议或处理器的新控制器上。
通过下列详细的书面描述,本发明的上述和其它的目的、特色和优势将显而易见。
被认为能代表本发明的特征新特性在附加的权利要求书中列出。就本发明本身而言,同最佳使用模式及其进一步的目的和优点一样,通过参考下面对示范性实施例的详细描述,并连同附图,将可以很好地理解。其中

图1描述了一个数据处理系统,利用它可实现本发明的最佳实施例,图2是根据本发明最佳实施例的、在数据处理系统中的控制器框图;以及图3描述了根据本发明的最佳实施例,控制器中类属接口变量的时序框图;图4是表示根据本发明的最佳实施例,在高速缓存和体系结构特定功能分层的控制器内,使用类属接口过程的高级流程图;以及图5描述现有技术下的高速缓存控制器的框图。
现在参考附图,并且尤其参考图1,描述了可在其中实现本发明最佳实施例的数据处理系统的框图。数据处理系统100可以包括仅仅一个处理器或包括几个处理器的对称多处理机(SMP)系统。在所描述的例子中表示了单个处理器系统。处理器102可以是超标量精简指令集(RISC)处理器,在处理器内,包括分离的一级指令以及数据高速缓存104和106。PowerTM处理器可用作处理器102。
处理器102连接到联合的二级(L2)高速缓存108上。L2高速缓存108与用于数据处理系统100的系统总线110连接。如I/O总线桥114一样,本机内存112也连接到系统总线110上。其它设备,如内存映射图形适配器116也可以连接到系统总线110上。I/O总线桥114还连接到I/O总线118上,此总线可以连接多种其它设备,如局域网(LAN)适配器120和硬盘驱动器122。
对此技术一般熟练的人员,可以理解图1中描述的硬件是可以更改的。比如,还可以加入其它外设,如光盘驱动器和类似产品,或用其取代所描述的硬件。所描述的例子并不意味着要对本发明体系结构进行仿效。
尤其是,数据处理系统可不必如例子中所表示的,仅局限于单处理器,以从本发明受益。比如,通过使用各带相应的L2高速缓存的两个处理器,本发明可以用来提高数据处理系统的性能。
参考图2,根据本发明的最佳实施例,描述了在数据处理系统中的控制器框图。控制器202在图1中描述的高速缓存108内实现。控制器202包括连接到上层总线206的总线接口单元204,以用于处理器或更高一级高速缓存;以及连接下层总线210的总线接口单元208,此总线可以是系统总线或连接到另一个高速缓存的总线。上层总线206与下层总线210可以不同;比如,上层总线可以是60X,而下层总线可以是另一种总线。
控制器202中的高速缓存和体系结构的特定功能被分层。这样,控制器202包括高速缓存控制器212及体系结构控制器214。操作被区别为“高速缓存”或“体系结构”操作。高速缓存控制器212仅处理高速缓存操作,并且只有高速缓存控制器212对高速缓存216操作。体系结构控制器214处理体系结构的操作,并且其操作被高速缓存212看作系统方面的操作。
第三单元,非高速缓存控制器218,也包括在高速缓存控制器202中。非高速缓存控制器218实际上是高速缓存控制器212的副本,其它仅仅处理高速缓存操作。然而,高速缓存控制器212处理指向高速缓存内存单元的高速缓存操作,非高速缓存控制器218处理的高速缓存操作指向没有映射到高速缓存216的高速缓存内存单元。由于那些对此技术熟练的人员所了解的原因,把系统内存的一部分当成不可高速缓存的是有利的。比如,这样的内存可以被内存映射器件所使用。高速缓存控制器212对整个高速缓存块操作,而非高速缓存控制器218对较小的内存段操作,往往小于8-16个字节。而且,非高速缓存控制器218不存贮数据,而高速缓存控制器212保存在高速缓存216中处理的数据副本。
高速缓存操作是那些典型的操作,即读或写内存单元的数值,并因此可以修改或检索内存单元的数据值。其余操作被定义为体系结构操作。与高速缓存操作不同,体系结构操作通常不改变内存单元的数值。体系结构操作可在高速缓存层次中,把数据移到不同的单元,改变个别内存单元中的数据状态,或执行其它这样的功能。然而,体系结构操作通常不直接改变内存单元的数值。
由高速缓存控制器212支持的高速缓存操作,包括了影响系统高速缓存的大多数操作。在由给定处理器支持的完整操作集里,高速缓存操作可以不从被频繁地执行并/或消耗绝大部分处理器周期的一部分指令集中导出。然而,忽略指向处理器内部其它功能单元如浮点、定点、或分支单元的指令,高速缓存操作经常集中使用,并使用大部分时间。
影响系统高速缓存的其余操作--那些用于高速缓存管理、操作系统管理、页面管理和同步化,等--被结构体系控制器214分层和支持。事实上,所有的处理器体系结构支持如此的操作,其在实时操作中的使用远少于高速缓存操作。另外,在体系结构操作中的单个操作通常对于不同的被感兴趣的处理器,如果不是用完全不同的方式,用区别很大的方式来实现。处理器方面的体系结构操作通过体系结构控制器214到系统总线210上,并作为透明的系统方面的体系结构操作,影响高速缓存控制器212。
不同的设计可以有不同的由高速缓存控制器支持的操作集,并且,在缺省模式下,其余操作被分层以被体系结构控制器支持。然而,由高速缓存控制器支持的增加操作数目功能增加了所需逻辑的复杂性。另外,所选的被高速缓存控制器支持的指令并不被所有被感兴趣的处理器支持,高速缓存控制器设计不具备到新控制器设计的直接可转换性。
一些操作仅仅从控制器202内部的一条路径传下--即通过体系结构控制器214或高速缓存控制器212--其它操作被分解并从两条路径传下。高速缓存控制器212使用“转发”设计,其中在接口220启动的操作在接口222产生响应,而在接口222启动的操作在接口220产生响应。
由于高速缓存和体系结构操作在控制器202内被分层,总线事物处理和协议也可以被分层。即可以为控制器212,体系结构控制器214,和非高速缓存控制器218定义类属接口。这样,接口220-230包括对总线接口单元204和208的类属协议接口,它们在可能的程度上,并非是体系结构特定的。这使得高速缓存控制器212的设计从总线206和总线210的特定协议中解耦,以允许高速缓存控制器212的设计可以重复使用。但是,如果不对高速缓存和体系结构特定功能分层,以分离复杂性而设计类属协议接口事实上是不可能的。
与传统高速缓存控制器对比,高速缓存控制器212可以以独立于总线206和210的方式实现,仅对高速缓存操作反应。尽管这样的高速缓存操作由总线206或210的事物处理启动,但仅仅某些总线事物处理将在高速缓存控制器212中引起反应。在最佳实施例中,高速缓存控制器212仅对在总线206上取指令操作(IFETCH)、LOAD操作和WRITE操作,以及在总线210上的READ操作、WRITE操作以及传统的SNOOPS作出反应。这使得了对高速缓存控制器212的设计需求大大简化。这通过避免覆盖极不规则(语义上的和临时性的)体系结构操作和高速缓存操作的常规行动来完成。对体系结构操作和高速缓存操作作出反应的负担从高速缓存控制器212的设计中解脱出来,并被置入体系结构控制器214中。
每一台被感兴趣的商业处理器,以本质上相同的形式,支持由高速缓存控制器212处理的高速缓存操作。在本发明中的高速缓存控制器212被类属接口220和222从特定实现解耦出来,在特定实现中仅仅小小的不同便可以把各种被感兴趣处理器中的可比较指令区别开来。
通过对所选的高速缓存和体系结构功能进行分层,并实现到总线接口单元204和208的类属接口,控制器202总体设计的大部分可直接转换到新的实现方案。不必大量修改高速缓存操作,可以重新使用高速缓存控制器逻辑。总线接口单元逻辑新部分可以容易地实现,用以处理新的总线协议,以及把高速缓存、体系结构、非高速缓存控制器212、214和218的类属协议接口220-230转换成总线206和总线210的接口。实现支持不同处理器设计的主要工作是体系结构控制器所需要的。由于处理器体系结构差别较大,需要对支持体系结构操作逻辑进行单独设计。总之,不论怎样,既然仅仅由体系结构控制器214处理的操作语义将会改变,对于不同处理器所作的设计上的努力可以大大节省。
通过对高速缓存和体系结构功能进行分层,使高速缓存控制器212仅对少量基本操作起反应,控制器逻辑在很大程度上被流线型化和简单化。此外,因为通过分离操作的两种类别,不同类别操作间交互关系的问题被消除,所以体系结构控制器的逻辑也被简化。高速缓存和体系结构控制器可设计成独立的单元。
总线接口单元204和208负责管理事物处理到总线206和系统总线210的协议。如果为接口220-230定义了类属接口,控制器212、214和218的设计可以脱离于特定总线体系结构。总线接口单元204和208把特定总线事物处理转换成类属接口220-230的协议。控制器212、214和218于是成为独立的,与总线协议或处理器上的变化无关。
在定义类属接口时,从给定总线接口单元204或208到控制器212、214和218中任何每一个的接口与到其中另一个的接口将有区别,特别是总线206不同于210时。类似地,任何特定控制器212、214或218到总线接口单元204的接口和到208的接口将不同。这样,接口220-230的每一组将会不同。接口是类属的,因为通过把操作转换成类属协议,它们被设计成处理BIU以外的任何操作。总线操作的本质是从总线协议提取出,并通过类属接口由BIU与控制器通讯。
为定义类属接口220-230,类属协议必须从传递到接口的操作中提取出。忽略总线或处理器体系结构的差别,在等价操作中,可以确认公共线程。比如,READ和WRITE常常以本质相同的方式工作,但是可能有时序或持续时间的不同,其被BIU掩盖或在单个类属协议的详细内容中管理。
现在参考图3,根据本发明的最佳实施例,描述在控制器中类属接口变量的时序框图。对于“脉冲”接口,总线接口单元负责收集所有与操作有关的信息,并将信息包装成信息包。总线接口单元于是传输准备信号(RDY),并用信息包发送操作信息。激发脉冲接口对于其中在相当短的时间内,能获取所有相关信息的操作非常合适。收集好的信息可以有效地传输,常常以单个周期。因为处理器将迅速产生操作所需的所有信息,非高速缓存的STORE是适合于脉冲接口操作的一个例子。
“保持”接口典型地涉及请求信号(REQ),其能保留一段时间。与所请求的操作相关的信息--如地址或域码的限定信息--已经事先由源汇编。其它各种信号在源与目标之间交换,以控制数据传送。结束信号终结交换。保持接口适合于具有无限制属性的操作,比如那些需要长时间并且潜在地时间有变化的操作。READ操作就是一个例子,它占用的时间是随机不能控制的。
那些对此技术熟练的人员将认识到除了所描述的脉冲和保持接口以外,其它接口也将适合在高速缓存和体系结构特定功能分层的控制器内实现类属接口,包括对上述接口的变动。比如,在其它控制信号隐含的信息可以取代显式的DONE信号。用于实现接口操作的特征将驱动最适合的接口。
重新参考图2,接口220-230中的每一个实际上是一组接口。比如,接口集220对于在BIU204和高速缓存控制器212之间传送的每一个操作至少有一个明确的接口。由于性能方面的原因,一个特定操作接口的多个相同版本可以包括在专门接口集里。特定操作的接口将在操作类型和上述的脉冲、保持、或其它接口适合性的基础上实现参考图4,根据本发明的最佳实施例,表示在高速缓存和体系结构特定功能分层的控制器内,使用类属接口过程的高级流程图。在高速缓存和体系结构特定操作分层并且包括高速缓存和体系结构控制器类属接口的控制器内,过程被执行。
过程开始于402步,其描述在处理器总线探测操作。过程接着到404步,其说明使用一个类属接口,把操作转换成类属协议,到步406,其描述判断指令是高速缓存操作还是体系结构操作。尽管是分别描述的,但404和406步可以重叠,由于为对合适的接口进行操作转换,必须决定操作性质。
如果操作是高速缓存操作,过程进行到408步,其表示在高速缓存控制器内执行操作。过程进行到416步,其描述过程处于空闲状态,直到探测到另一个操作。重新参考406步,如果操作不是高速缓存操作,过程进行到410步,此步描述了把操作分解成高速缓存操作,并接着进行到412步,其描述把高速缓存操作转换成系统总线协议。410和412步可重叠。
接下来,过程进行到414步,其表示把高速缓存操作传输到系统总线。接着,过程进行到416步,其描述过程处于空闲状态,直到探测到另一个操作。
所述过程涉及在控制器中处理器方面的总线接口单元操作。类似过程也出现在控制器系统总线方面,但是其仅仅要求402、404和406步。
通过允许类属接口与分层的高速缓存和体系结构操作联合使用,本发明提供了使控制器逻辑设计不受协议和/或处理器变化影响能力。这是用现有技术途径是不能实现的,其采用相对简单的高速缓存操作覆盖语义上的和临时性的体系结构操作。体系结构操作呈现出不规则的、临时性的行为,同样的操作在不同的场合需要的时间不同。体系结构操作同样需要对特殊事件的支持。体系结构和高速缓存操作相互联系越多,就越难定义类属接口并获得伴随的利益。
另外,本发明在控制器合适的段之间,对复杂性进行分割,把它们移到合适的位置。这样,控制器的每一段在已定义好的接口中具有已定义好的工作项目。这种分割-占领法把设计的努力分层成更易管理、相对独立的单元。
当参考最佳实施例,特别说明和描述本发明时,对此技术熟练的人员将理解只要不脱离本发明的精神和范围,可以在其中的方式和细节上作各种修改。
权利要求
1.一种在高速缓存控制器中,使用类属接口的方法,包括以特定协议,接收总线操作;把所述总线操作转换成多个控制器单元中的一个控制器逻辑单元的类属接口所使用的协议,在所述的多个控制器单元中的每一个控制器逻辑单元处理不同类别的操作;以及传输所述转换过的总线操作到所述控制器逻辑单元,其中,类属体系结构的独立接口可以用于控制器逻辑单元,对高速缓存控制器内的操作类别进行分层。
2.一个高速缓存控制器,包括一个总线接口单元;多个控制器逻辑单元,在所述的多个控制器单元中的每一个控制器逻辑单元处理不同类别的操作;以及在其中所述多个控制器逻辑单元的一个控制器逻辑单元和所述总线接口单元之间,至少有一个类属接口,其中在高速缓存控制器中,对所述操作类别分层的控制器逻辑单元装备了体系结构独立的接口。
全文摘要
在高速缓存控制器内的高速缓存和体系结构特定功能被分层,并装备了类属接口。高速缓存和体系结构操作的分层,允许对控制器内控制器逻辑和总线接口单元之间的类属接口进行定义。通过吸取被支持操作的本质,加入到类属协议,以定义类属接口。接口本身可以是脉冲或保持接口,这根据操作性质而定。通过适当修改总线接口单元,设计可直接应用于不同协议或处理器的、新的控制器上。
文档编号G06F12/08GK1202655SQ9810568
公开日1998年12月23日 申请日期1998年3月23日 优先权日1997年4月14日
发明者拉维·K·阿里米利, 约汉·S·多德森, 杰里·D·路易斯, 德雷克·E·威廉 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1