共用超高速缓冲存贮器子系统的 计算机索引存贮器装置 本发明是关于计算机系统的超高速缓冲存贮器子系统,特定而言,本发明是关于可具备多路处理器的计算机系统的超高速缓冲存贮器子系统的索引存贮结构,更特定而言,本发明是关于具备多路处理器且共用次级超高速缓冲存贮器子系统的计算机系统的超高速缓冲存贮器子系统的索引存贮结构。
随着微处理器(microprocessor)技术的快速进步,以微处理器为基础的计算机系统,也随之拥有同样快速进步的各式各样的应用功能。另一方面,微处理器虽然功能快速地进步,但其价格不但没有随着功能的进步而等比地提高,反而显现出逐步减低地价格/功能比。典型的一个例子是由美国的苹果计算机公司(Apple Comput-ers,Inc),万国商业机器公司(International Businese Machin-es Corporation)与摩托罗拉半导体公司(Motorola Semicoductor)所共同推出的“威力计算机”微处理器(“PowerPC”processor),在功能上与英代尔公司(Intel Corpration)的“奔腾”微处理器(“Pentium”processor)约属同一等级,但价格则便宜了约略一半。
作为多数计算机系统的中央处理单元(CPU,central process-ing unit)和微处理器,由于这种功能进步而价格下滑的趋势,已在计算机系统的设计与使用上带来一些显著而重要的改变。其中一种明显的趋势是,虽然微处理器的功能越来越强大,但对某些诸如工程计算等的用途而言,其计算的能力仍属不尽理想。不过,由于前述的价格便宜的因素,一种增加计算机系统的运算能力的办法即是增加计算机系统中微处理器的数量,即所谓的多路处理器计算机系统(multiprocessor computer system),正在使用。
另一方面,现今微处理器的技术,虽然在合理价格的范围之内的确是进步神速,但计算机系统之中与微处理器具有同等重要性的另一种关键性元件,亦即半导体存贮器器,其情况却并非如此。目前在合理价格的范围内适用的半导体存贮器基本上有两种,亦即动态随机存取存贮器(DRAM,dynamic random access memory)与静态随机存取存贮器(SRAM,static random access memory)。DRAM具有相当大的单位存贮容量,但其存取速度,与现今的高性能微处理器比较起来,却显得令人无法忍受的慢。典型的高性能微处理器若要将DRAM作为作业用存贮体,便可能仅发挥不超过其百分之二十的功能,其余的时间皆须等待慢速的DRAM的响应。在另一方面,SRAM虽然具有较高的存取速度,但仍无法完全与现今最快的微处理器相匹配,而且其单位存贮容量与DRAM比较起来亦是小了很多。
由于前述存贮体技术现况的关系,现今的高性能微处理器皆采用了所谓超高速缓冲存贮(cache memory)的设计结构,直接地将小量但速度快得足以与微处理器本身完全匹配的超高速缓冲存贮器,称为主超速缓冲存贮器(primary cache),制作于微处理器内部。不但如此,良好的计算机系统设计也将超高速缓冲存贮器的结构设置于微处理器与计算机系统的较慢但便宜而大量的DRAM主存贮器之间,称为次级超高速缓冲存贮器(secondary cache),以便将计算机系统的整体存贮器存取速度提高至最快可能速度(约在主超高速缓冲存贮器速度的七至九成,视超高速缓冲存贮器的设计结构与容量而定)。
对于采用现代高性能微处理器作为CPU多路处理器计算机系统而言,所应用的每一个微处理器本身即可以拥有其内部的主超高速缓冲存贮器,所以,为了节省成本,这个多路微处理器系统常只使用一组级超高速缓冲存贮器子系统。
在应用了主、次两级超高速缓冲存贮器的计算机系统之中,其硬件结构设计上极为重要的一个要点,是必须能够维持由微处理器内部的高速存贮所构成的主超高速缓冲存贮器,由SRAM所构成的次级超高速缓冲存贮器,以及由DRAM所构成的系统主存贮器之间的数据相容性,称为超高速缓冲存贮一致性,或超高速缓冲存贮相容性(cache coherency或cache consistency)。为了要维持超高速缓冲存贮的相容性,具有多重处理器的计算机系统中的每一个微处理器都需要能够在必要的时机进行一些较为繁复费时的超高速缓冲存贮相容性检查的动作。
以采用了Intel Pentium微处理器为主处理器的多路处理器计算机系统为例,一旦有总线上的主处理器(bus master)占用了系统的资源之后,便必须立即检查在该总线主处理器所存取的存贮地址是否也存在于系统的主Pentium处理器之中,若有的话,该数据的状态如何,在该总线主处理器使用过该存贮地址之后的该数据的状态又应如何,等等。这种计算机系统对其超高速缓冲存贮相容性的处理可以依照所谓的MESI协定(MESI protocol,Modified/Exclus-ive/Shared/Invalid protocol),利用进行微处理器的询问周期(inquire cycle或snoop cycle)来处理。由于这种微处理器所进行的询问周期需花费相当多的CPU时间,并且会占用计算机系统中的总线时间,因此计算机系统如何设计,以便将进行这种询问动作的机会减至最低,已经成为设计高性能计算机系统的一个重要主题。
因此,本发明的目的是在于提供一种共用超高速缓冲存贮器子系统的多路处理器索引存贮(tag RAM)结构,可以适用于计算机系统的多路处理器环境,针对不同的处理器记录反应个别数据线与特定处理器之间的关系。
本发明共用超高速缓冲存贮器子系统的计算机索引存贮器结构的组成为:该装置装设在一包括有内部超高速缓冲存贮的一主处理器,系统主存贮器,以及一个设置于该主处理器与该系统主存贮器之间的次级超高速缓冲存贮器的计算机系统内,该共用超高速缓冲存贮子系统的索引存贮装置包括有:
具有多条数据线的多个索引地址位;
具有多个数据线位置的一个变更位;与
具有多个数据线位置的多个处理器状态位;
该多个处理器状态位可记录储存于处理器的超高速缓冲存贮器中各条数据线的询问状态。
本发明的其它目的与特点将结合附图在后面予以详细说明。
附图简要说明:
图1为一示意图,显示常用技术中所采用的典型索引存贮的结构;与
图2为一示意图,显示依据本发明的共用的超高速缓冲存贮器子系统的多路处理器计算机系统索引存贮(tag RAM)结构。
首先参考图1,其中所显示的是常用技术中计算机系统所采用的典型索引存贮器结构。以直接映射的超高速缓冲存贮子系统(direct-mapped cache memory subsystem)为例,总共n条数据线的超高速缓冲数据存贮器30中的每一条数据线31、32、33、......等存贮位置,在超高速缓冲索引存贮器40之中,皆各有一个对应的索引存贮41、42、43、......位置。在另一方面,超高速缓冲索引存贮40则总共包括有一个适当数量的索引地址(tag address)位tag[MSB]61,tag[MSB-1]62,......TAG[LSB)m-1。典型的直接映射超高速缓冲存贮子系统可能会包含有8位的索引地址。除了此8位的索引地址之外,具有数据回写(write back)能力的超高速缓冲存贮控制系统也会使用一个额外的变更位(dirty bit或altered bit)51来记录已经经过计算机系统的CPU所修改过的超高速缓冲存贮内容,以便在该超高速缓冲存贮位置要被覆盖掉之前,先行写回系统的主存贮器之中。
前述的常用技术超高速缓冲索引存贮器系统,当其计算机系统之中,有设置于总线上的主处理器存在时,无法针对每一个不同的处理器来记录某一特定数据线与该特定处理器之间的关系。此时,参考图2,本发明扩充了常用的超高速缓冲索引存贮结构,除了原有的超高速缓冲数据存贮器30之外,并在原有的超高速缓冲存贮索引地址位40以及变更位51之外,更加上了计算机系统之中与所有处理器的数量相同的处理器相关对应的状态位70,包括了P(m-1)CIN71、P(m-2)CIN 72、......及POCIN 79等m个位元。在这种结构之中,每个处理器状态位71、72、......等,都是被用来储存计算机系统之中的每个处理器CPU(m-1)81、CPU(m-2)82、......以及CPU0 89等m个处理器在各该条数据线上的数据状态。
在图2中的超高速缓冲存贮结构之中,整个的超高速缓冲存贮子系统容纳了多路处理器计算机系统的m个处理器的n条超高速缓冲存取数据线的共用超高速缓冲存贮器(shared cache memory)。其中的P(m-1)CIN 71、P(m-2)CIN 72、......以及POCIN 79等m个位元部分的动作在后面详细说明。
计算机系统在启动时,假定是以CPU0来启动整个系统,则包含了本发明的超高速缓冲索引存贮结构的扩充部分即会被初始化为如下列的状态:
[P(m-1)CIN、.....P1CIN、POCIN]=[0、......0、1]若CPU1进行数据读取的动作,并且达到读取命中(read hit),则
[P(m-1)CIN、......P1CIN、POCIN]=[0、......1、1]若所达到的状态是询问写入命中(snoop write hit)的话,则便将所有位清除为零
[P(m-1)CIN、......P1CIN、POCIN]=[0、......0、0]
利用这种演算法则(algorithm),本发明在检查到有一个PxCIN为0时,即可以确定该第x个CPUx中不包括有此条超高速缓冲存贮数据线,在进行询问周期时即可避开此CPUx,节省询问周期所须占用的时间,进而增加系统的效率。
如此,本发明利用扩充的超高速缓冲索引存贮结构,分别地记录计算机系统之中每一个处理器的超高速缓冲存贮询问写入命中状态,便可以在部分的状况之中减免询问周期的进行,由于询问周期的进行需要花费相对较多的CPU时钟周期,因此,询问周期的减少即意味着系统效率的整体提高。