专利名称:高速缓存和体系结构特定功能分层的方法
技术领域:
本发明总体上涉及数据处理系统中的高速缓存控制器,并且尤其涉及对高速缓存和体系结构特定功能分层的高速缓存控制器。更进一步,本发明涉及,在控制器内对高速缓存和体系结构特定功能进行分层,以提高性能并简化设计。
使用二级(L2)高速缓存的数据处理系统典型地包括用于管理影响高速缓存事物处理的高速缓存控制器。这样的高速缓存控制器通常在功能级上实现,如图3所示。比如,高速缓存控制器302可以包括管理高速缓存目录的逻辑304、实现最近最少使用(LRU)替换原则的逻辑306、管理重载缓冲区308的逻辑、以及管理存回缓冲区310的逻辑。在传统的实现中,高速缓存对这些和其它体系结构功能,即高速缓存控制器所需的典型功能,总体上说是相当可见的。因此,高速缓存控制器设计对专门的处理器,如PowerPCTM、AlphaTM或X86族系列处理器是特定的。
现有技术对控制器的实现提出了严格且复杂的设计要求。可获得的最大频率受限于所需的互锁。对设计的测试和形式验证可能由于设计的复杂性而无法进行。因此,简化高速缓存控制器以消除复杂性是所期望的。
因此,本发明的一个目的在于为数据处理系统提供一个改进的高速缓存控制器。
本发明的另一个目的在于提供一个改进的高速缓存控制器,其具有分层的高速缓存和体系结构特定功能。
本发明还有一个目的在于在控制器内对高速缓存和体系结构的特定功能分层,以提高性能并简化设计。
如现在所描述的,上述目的已经实现。控制器中的高速缓存和体系结构特定功能被分层,简化了设计需求。可以实现更快速的性能,并且整体设计的单个段可以单独测试并在形式上验证。也便于内存一致性模型之间的转换。由于允许使用较低价的、合适的过程,整体设计的不同段可以用不同的集成线路实现。
通过下列详细的书面描述,本发明的上述和其它的目的、特色和优势将显而易见。
被认为能代表本发明特征的新特性在附加的权利要求书中列出。就本发明本身而言,同最佳使用模式及其进一步的目的和优点一样,通过参考下面对示范性实施例的详细描述,并连同附图,将可以很好地理解。其中
图1描述了根据本发明的最佳实施例的用非共享高速缓存控制器设计实现的数据处理系统;图2是根据本发明的最佳实施例的、非共享高速缓存控制器设计的框图;以及图3描述现有技术下的高速缓存控制器设计。
现在参考附图,并且尤其参考图1,描述一个根据本发明最佳实施例的、利用非共享高速缓存控制器设计实现的数据处理系统。数据处理系统100可以包括仅仅单个处理器或包括几个处理器的对称多处理机(SMP)系统。在所描述的例子中表示了单个处理器系统。处理器102可以是超标量精简指令集(RISC)处理器,在处理器内,包括分离的一级指令以及数据高速缓存104和106。PowerTM处理器可用作处理器102。
处理器102连接到二级(L2)高速缓存108上,此为非共享高速缓存。第二个处理器(未画出)可以加入到此系统,其可以拥有单独的L2高速缓存或者与处理器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中处理的数据副本。
高速缓存操作是那些典型的操作,即读或写内存单元的数值,并因此可以修改或检索内存单元的数据值。高速缓存操作概括说来是那些由处理器内的LOAD或STORE指令,或是其等价指令引起的简单操作。其余操作被定义为体系结构操作。与高速缓存操作不同,体系结构操作更复杂并且基本上不修改内存单元中的数据值。体系结构操作可在高速缓存层次中把数据移到不同的单元,改变个别内存单元中的数据状态,或执行其它这样的功能。然而,体系结构操作通常不直接改变内存单元的数值。一个例外是在PowerPCTM体系结构中的数据高速缓存块置零(DCBZ)指令,这是一个体系结构操作,它在高速缓存块基础上改变内存单元中的数据值。
由高速缓存控制器212支持的高速缓存操作包括了影响系统高速缓存的大多数操作。在由给定处理器支持的完整操作集里,高速缓存操作可以不从被频繁地执行并/或消耗绝大部分处理器周期的一部分指令集中导出。然而,忽略指向处理器内部其它功能单元如浮点、定点、或分支单元的指令,高速缓存操作经常集中使用,并使用大部分时间。
影响系统高速缓存的其余操作--那些用于高速缓存管理、操作系统管理、页面管理和同步化,等--被结构体系控制器214分层并支持。事实上,所有的处理器体系结构支持如此的操作,其在实时操作中的使用远少于高速缓存操作。另外,在体系结构操作中的单个操作通常对于不同的被感兴趣的处理器,如果不是用完全不同的方式,用区别很大的方式来实现。
不同的设计可以有不同的由高速缓存控制器支持的操作集,并且,在缺省模式下,其余操作被分层,以被体系结构控制器支持。然而,由高速缓存控制器支持的增加操作数目功能增加了所需逻辑的复杂性。另外,所选的被高速缓存控制器支持的指令并不被所有被感兴趣的处理器支持,高速缓存控制器设计不具备到新控制器设计的直接可转换性。
一些操作仅仅从控制器202内部的一条路径传下--即通过体系结构控制器214或高速缓存控制器212--其它操作被分解并从两条路径传下。高速缓存控制器212使用“转发”设计,其中在接口220启动的操作在接口222产生响应,而在接口222启动的操作在接口220产生响应。
由于高速缓存和体系结构操作在控制器202内被分层,总线事物处理和协议也可以被分层。即可以为控制器212,体系结构控制器214,和非高速缓存控制器218定义类属接口。这样,接口220-230包括对总线接口单元204和208的类属协议接口,它们在可能的程度上,并非是体系结构特定的。这使得高速缓存控制器212的设计从总线206和总线210的特定协议中解耦,以允许高速缓存控制器212的设计可以重复使用。总线接口单元204和208负责管理到总线206和系统总线210的事物处理和协议,把特定总线事物处理转化为类属协议接口220-230的协议。通过使用类属协议接口220-230,控制器212、214和218从特定总线体系结构隔离出来,并可以很容易地复制。
与传统高速缓存控制器对比,高速缓存控制器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仅对少量基本操作起反应,高速缓存控制器逻辑在很大程度上被流线型化和简单化。此外,因为通过分离操作的两种类别,不同类别操作间交互作用的问题被消除,所以体系结构控制器的逻辑也被简化。高速缓存和体系结构控制器可设计成独立的单元。
通过对高速缓存和体系结构功能进行分层,允许那些经常被执行的操作--高速缓存操作--尽可能快地执行。其余体系结构操作,其发生概率较小,为每20,000次操作出现一次,由在控制器202存在(且必需)的监测逻辑分层并处理。
通过对高速缓存和体系结构功能进行分层也为设计高速缓存控制器212提供了便利。除了能够把设计上的努力集中在尽快地简单运行少数指令,高速缓存控制器212的设计可以单独地完成并测试。体系结构控制器214所需的复杂逻辑不妨碍高速缓存控制器设计的实现,其可以使用类属接口来测试。
形式验证试图用数学方法证明设计的操作。如此的形式验证对于巨大、复杂的设计事实上是不可能的。本发明的模块化途径允许在整体设计中对不同单元进行独立的形式验证。
因为高速缓存控制器212仍然保存LRU逻辑和其它上述的必需的逻辑,因此高速缓存控制器设计的独立验证是重要的。另外,当故障包含在设计的主干路径上,而且如果主干路径比较复杂,故障将很难定位。通过对体系结构控制器214和高速缓存控制器212所需的更复杂的逻辑进行分层,故障将比较容易地定位。而且,由于分层设计,体系结构控制器214内的故障影响高速缓存控制器212操作的可能性会减少,控制器212可以正常运行。
因为体系结构操作所需的复杂的、专用的逻辑被分离,当体系结构控制器214以低频率运行时,高速缓存控制器212可以流水线化并且以处理器频率操作。事实上,体系结构控制器214可以以独立集成芯片或独立电路小片实现,并使用较廉价的过程。
因为由体系结构控制器214处理的操作并不经常发生,控制器202整体性能的增加可以实现。通过仅仅针对必要的逻辑对高速缓存控制器212流水线化,设计可以允许经常执行的指令尽快地运行。
直接在控制器主干路径中提供专门的有关体系结构操作的硬件,大大增加了所需逻辑的复杂性,并影响了核心控制器逻辑的流线化和频率。然而,传统设计在主干路径中包括支持体系结构指令所需的缓慢、超标量、非流线型逻辑,使整个高速缓存控制器速度下降。
通过对高速缓存和体系结构进行分层,允许高速缓存操作的流线化,并通过消除互锁需要,简化设计需求。设计的简化直接影响可能获得的时钟频率(MHz),因为越复杂的逻辑需要更多的互锁,增加了周期时间。
分层技术允许设计以简单、相当独立的单元实现。分层技术也允许高速缓存控制器设计能使内存一致性模型之间的转换更容易。通过单独改变高速缓存和体系结构控制器,控制器设计可以使转移--从一个内存一致模型到另一个模型,一个处理器到另一个,或者两者都有--更迅捷。
当参考最佳实施例,特别表示和描述本发明时,那些对此技术熟练的人员将理解只要不脱离本发明的精神和范围,可以在其中的方式和细节上作各种修改。
权利要求
1.一种在控制器中对操作分层的方法,包括在第一控制器单元,执行高速缓存操作;以及在第二控制器单元,执行体系结构操作,其中在所述控制器内的操作被分层。
2.一个控制器,包括执行高速缓存操作的第一控制器单元;以及执行体系结构操作的第二控制器单元,其中在所述控制器内的操作被分层。
全文摘要
高速缓存和体系结构特定功能在控制器内被分层,简化了设计需求。可以获得更快捷的性能,并且整体设计的单个段可以单独测试并在形式上验证。也便于内存一致性模型之间的转换。允许使用较低价的、合适的过程,整体设计的不同段可以用不同的集成线路实现。
文档编号G06F12/08GK1196523SQ9810569
公开日1998年10月21日 申请日期1998年3月23日 优先权日1997年4月14日
发明者拉维·K·阿里米利, 约汉·S·多德森, 杰里·D·路易斯, 德雷克·E·威廉 申请人:国际商业机器公司