垂直高速缓冲的伪精确I-高速缓存的包括性制造技术

技术编号:2887829 阅读:203 留言:0更新日期:2012-04-11 18:40
在处理器可访问的二级(L2)高速缓存中,实现一个改进的MESI高速缓存一致性协议,该处理器有分开的一级(L1)数据和指令高速缓存。改进MESI协议包含共享状态的两个子状态,它代表与共享状态相同的一致性信息以及关于主题高速缓存登记项的内容/一致性的附加信息。在较低级高速缓存(例如L3)中,对处于共享一致性状态的第一子状态的一个高速缓存登记项进行重新配置,不会使L2高速缓存中的同一高速缓存登记项的内容无效。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总的关于垂直高速缓存(cache)体系中的包括性,具体地,有关就被高速缓存的指令而论的选择包括性。更具体地,本专利技术有关选择包括性,以防止由于在较低高速缓存级上的重新分配,而使被高速缓存的指令丢掉。典型的超标量精减指令集(RISC)处理器至少在其存储体系的一级(L1)层中包含有分开的数据和指令高速缓存。由于当代超标量处理器中所要求的带宽,必须有分离的数据和指令高速缓存,在这些处理器中,每个处理器周期内,取指令和引用数据可能很容易达到多于一次高速缓存存取。于是,L1高速缓存(它一般被嵌入在处理器硬件中并被设计为响应时间等于或少于一个处理器周期)通常被分开,以便指令和数据引用可以在同一处理器周期中被发往各单独的高速缓存。许多数据处理系统都可能包含多级高速缓存体系,它们是逻辑上有秩序的,即,首先检查较高级的高速缓存,若在一个较高级失中,则立即访问较低级上的高速缓存。一般,多级高速缓存被用于以递减的存取等待时间将向处理器的数据分成多个阶段。在高速缓存体系的较高层,使用较小,较快的高速缓存,而在较低层使用较大的,较慢的高速缓存。通常,这类垂直高速缓存结构被认为是包括的,即,每个高速缓存的内容都包含高速缓存体系中紧接其上的高速缓存中的内容。当从系统内存中读出新的数据或指令而需要高速缓存中的空间时,高速缓存按在该高速缓存中实施的特定置换规则选择一个牺牲品并将所选高速缓存存储单元重新分配。在包含在多个高速缓存中的一个高速缓存存储单元被在一个高速缓存中重新分配的情况下,通过在其它高速缓存中重新分配同一存储单元,保持了逻辑上有序的高速缓存的包括性,不过,在有些情况下,这将产生不期望的结果。例如,若一个包含指令的高速缓存存储单元在三级(L3)高速缓存中被重新分配,则同一空间通常在二级(L2)高速缓存中被重新分配。若随后处理器/L1高速缓存试图从L2高速缓存中再装入指令,则它将在L2和L3高速缓存中落空,并(假设在高速缓存体系中没有更多的级)被要求从系统内存中存取所希望的指令。指令的再装入有时是必须的,例如,在执行了一个误预测分支时。因为从系统内存读取的等待时间往往远大于从L2,L3高速缓存读取的等待时间,所以可能出现明显的性能延迟。在高速缓存存储单元被重新分配时,防止指令被丢弃的一个问题是,没有将高速缓存中的指令和数据区分出来的明显机制。系统内存中的程序源代码可能包含无法分辨的指令和数据的混合。这可能出现在,例如,在一个装载程序在将代码装入系统内存之后,解除代码连接的情况下。这样,当选中一个牺牲品时,就没有用来客观标识指令的方法,从而设计一个置换规则来选择一个替代牺牲品。进一步,不必所有高速缓存级都包含L1指令高速缓存。仅需要L2高速缓存包括L1指令高速缓存的当前和最近内容,以便使指令再装入的延迟时间最少。在高速缓存体系的所有级中都要求同样的包括性有损于整个高速缓存的效率。于是,希望提供一个机制,以保持高速缓存体系的较高级中的指令的有选择的包括性。若较低高速缓存级的重新配置不影响该机制,则更加有利,这样,就不要求在所有高速缓存级上都保持指令高速缓存的包括性。本专利技术的一个目的是提供垂直高速缓存体系中的包括性的一个改进系统。本专利技术的另一个目的是提供一个方法和装置,提供关于垂直高速缓存体系中高速缓存的指令的有选择的包括性。本专利技术的另一个目的是提供有选择的包括,以防止由于在较低高速缓存级上的重新配置,使得被高速缓存的指令被丢弃掉。上述目的可通过以下描述的方法达到。在可被处理器(该处理器有一个分开的一级(L1)数据和指令高速缓存)访问的二级(L2)高速缓存中实现改进的MESI高速缓存一致性协议。该改进MESI协议包括共享状态的两个子状态,它代表与共享状态同样的一致性信息,外加关于主题高速缓存登记项(subject cache entry)的内容/一致性的附加信息。一个子状态,SIC0’指示高速缓存登记项被认为包含的是指令,因为其内容是作为一条取指令操作的结果从系统内存中取出的。第二个子状态,SIC1’表明同样的信息,并表明在该主题高速缓存登记项的包括性处于第一共享子状态时,一个被监听的清空操作命中该主题高速缓存登记项。将处于共享一致性状态的第一子状态中的一个高速缓存登记项在较低级(例如L3)高速缓存中进行重新分配,不会导致一个L2高速缓存中的同一高速缓存登记项的内容无效。一旦进入了第一子状态,一致性状态就不会转变为无效状态,除非收到一个设计为使指令无效的操作。来自本地处理器的,违反其内容中包含指令这一假设的操作,会使一致性状态转变为一个普通的共享状态。因为处于两个一致性子状态的高速缓存登记项的内容被认为是指令,而非数据,所以,L2高速缓存的指令不会作为被监听的清空的结果而被丢弃,而是被保留下来,以供本地处理器可能的再装入使用。通过下面的详细介绍,可以清楚以上内容以及本专利技术的其它目的、特征和优点。被认为是本专利技术特征的新颖的特性在所述权利要求中提出。不过,本专利技术本身,以及一个优选的使用模式,更多的目的及优点,借助于下面对一个示例实施例的具体描述及附图,可以得到更好的理解,附图中附图说明图1描述了按本专利技术的一个优选实施方案给出的一个多处理器数据处理系统;图2是按本专利技术的一个优选实施方案给出的L2高速缓存的方框图;以及图3描述按本专利技术的一个优选实施方案给出的改进的MESI高速缓存一致性协议的状态图。现参照附图,特别是图1,描述按本专利技术的一个优选实施方案给出的一个多处理器数据处理系统。数据处理系统100是一个包含多个处理器102和104的对称多处理器(SMP)系统,它最好包含可从纽约Armonk的国际商用计算机公司中获得的PowerPCTM处理器家族中的一个。尽管在示例实施方案中仅描述了两个处理器,但本领域专业人士可以认识到,按本专利技术,可以在多处理器数据处理系统中使用更多的处理器。处理器102和104分别包含一个一级(L1)数据高速缓存106和108及一个L1指令高速缓存110和112。尽管在示例实施方案中举例说明为分开的指令和数据高速缓存,但本领域专业人士可以认识到,可以实现一个单个的,统一的L1高速缓存。为了使数据存取等待时间最小化,在数据处理系统100中可以实现一个或多个更多的高速缓存存储器级。例如二级(L2)高速缓存114和116,三级(L3)高速缓存118和119。较低高速缓存级-L2和L3-被用于将向L1高速缓存的数据分阶段,且一般有逐级增大的存储容量,但存取等待时间逐级加长。例如,数据高速缓存106和108及指令高速缓存110和112每个可能有32KB的存储容量及大约1-2个处理器周期的存取等待时间。L2高速缓存114和116可能有512KB的存储容量,但存取等待时间为5个处理器周期,而L3高速缓存118和119可能有4MB的存储容量和大于15个处理器周期的存取等待时间。于是,L2高速缓存114和116及L3高速缓存118和119作为处理器102和104及系统内存120间的中间存储器。系统存储器120一般有大得多的存储容量,但其存取等待时间可能大于50个处理器周期。数据处理系统100中所采用的高速缓存体系的级数和高速缓存体系的配置都可以不同。图示例子中的L2高速缓存114和116是连接在它们各自的处理本文档来自技高网...

【技术保护点】
在包括系统内存和多个高速缓存的数据处理系统中,保持高速缓存一致性的方法,包括:执行一条取指令操作,把一个数据项读取到第一高速缓存中;并且将该数据项的一致性指示器设置为第一状态,以表明可以在第一高速缓存和至少一个其它高速缓存中找到该数 据项,且包含该数据项的所有高速缓存都与系统内存一致,并表明,该数据项是由一个取指令操作读取的。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:RK阿里米里JS多德森
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1