首页> 中国专利> 使用地址位移机制以增加所支持的高速缓冲存储器容量的微计算机系统

使用地址位移机制以增加所支持的高速缓冲存储器容量的微计算机系统

摘要

高速缓冲存储器控制器所支持的高速缓冲存储器容量可以通过位移CPU地址输出端与高速缓冲存储器控制器的地址输入端之间的关系及相应地加倍高速缓冲存储器线大小来进行扩充。在某些情况中,附加的逻辑生成一个隐藏的存储器周期以便从存储器中取出等于新线大小的数目的字节而与数据总线的宽度无关。这一隐藏的存储器周期是由一次读未命中与生成一个并非CPU生成的存储器地址的附加逻辑启动的。这一隐藏的存储器周期对CPU及高速缓冲存储器控制器是透明的。

著录项

  • 公开/公告号CN1047741A

    专利类型发明专利

  • 公开/公告日1990-12-12

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN90103768.0

  • 申请日1990-05-24

  • 分类号G06F13/20;

  • 代理机构中国国际贸易促进委员会专利代理部;

  • 代理人冯庚瑄

  • 地址 美国纽约

  • 入库时间 2023-12-17 12:10:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2002-04-24

    其他有关事项 其他有关事项:1992年12月31日以前的发明专利申请,授予专利权且现仍有效的,其保护期限从15年延长到20年。根据国家知识产权局第80号公告的规定,下述发明专利权的期限由从申请日起十五年延长为二十年。在专利权的有效期内,所有的专利事务手续按照现行专利法和实施细则的有关规定办理。 申请日:19900524

    其他有关事项

  • 1993-03-03

    授权

    授权

  • 1990-12-12

    公开

    公开

  • 1990-10-24

    实质审查请求

    实质审查请求

说明书

本发明涉及微计算机系统,特别涉及使用一个具有82385高速缓冲存储器控制器的高速缓冲存储器子系统的微计算机系统,该高速缓冲存储器子系统至少包括64KB高速缓冲存储器。

本申请与下列共同未决的申请相关,並已全部转让给本发明的受让人。

美国专利申请号198,893“使用82385高速缓冲存储器控制器选择性地指派写周期的方法与装置”,1988年5月26日以拉尔夫M.贝根(Ralph    M.Begun),派脱里克M.布兰特(Patrick    M.Bland)和马克E.迪安(Mark    E.Dean)的名义提出;

美国专利申请号198,895“在具有仲裁的80386/82385微计算机系统中运行的80386的系统总线争用”,1988年5月26日以派脱里克M.布兰特,马克E.迪安和菲利浦E.米灵(Philip    E.Milling)的名义提出;

美国专利申请号198,894“采用80386微处理器与82385高速缓冲存储器控制器动态确定总线大小的微计算机系统中的流水作业操作控制”,1988年5月26日以派脱里克M.布兰特,拉尔夫M.贝根和马克E.迪安的名义提出;以及

美国专利号198,890“在具有80386与82385的双总线微计算机系统中的延迟高速缓冲存储器写启动电路”,1988年5月26日以拉尔未M.贝根,派脱克M.布兰特和马克E.迪安的名义提出。

上述公开在此引用作为对比文件。

在微计算机系统中使用高速缓冲存储器子系统引发了若干吸引人的操作优点。由于这些从使用高速缓冲存储器子系统引发的优点部分地取决于高速缓冲存储器的大小,使产生了增加高速缓冲存储器大小的愿望。使用高速缓冲存储器子系统的微计算机系统实际上是双总线微计算机系统。CPU与高速缓冲存储器子系统是通过可称为CPU本地总线相连接的。与CPU本地总线相分离的是一条系统总线,在这上面可以连接其它设备(I/O设备,增加的存储器等)。高速缓冲存储器子系统的存在,在一定程序上缓和了系统总线的任何读存储器访问,以至所寻找的信息也同时可在高速缓冲存储器子系统中找到。由于並非所有要求的信息都可在高速缓冲存储器子系统中找到,而写操作又通常既指向高速缓冲存储器子系统又指向存储器,所以在系统总线与CPU本地总线之间必须有某种连接。

将来自存储器设备的数据进行高速缓冲存储以支持来自一台给定的CPU的快速访问时间,並不是一个新概念。许多包含第一与第二级高速缓冲存储器的系统已经开发並上市。由于CPU时钟速度不断增加,这又不断地减小最小周期时间,正在为个人计算机系统研究高速缓冲存储器,以最大限度地提高它们的性能。许多公司(英特尔、日立、日本电气、东芝等)正在研制並出售高速缓冲存储器控制器片及子系统。大多数因受可利用又标记随机存储器的数量的限制,而只能支持最多32KB的高速缓冲存储数据随机访问存储器(RAM)。

双总线微计算机中流行的一类包含82385高速缓冲存储器控制器。制造厂商所出售的高速缓冲存储器控制器仅限于控制最多32KB的高速缓冲存储器。提高这种微计算机系统中的高速缓冲存储器的容量到32KB以上是大家所希望的。82385的规格与功能,说明可以在英特尔“微处理器与外部设备手册”与“82385高性能32位高速缓冲存储器控制器”(1987)中查到。也可参看英特尔的“80386概论”与80386硬件参考手册(1886)。

因此,本发明的一个主要目的是提供一个使用82385高速缓冲存储器控制器的双总线微计算机系统,其中,高速缓冲存储器超过32KB。另一个目的是当高速缓冲存储器控制器本身无法支持这些增加的高速缓冲存储器容量时,提供装置以增加所支持的高速缓冲存储器。

如下文将要描述的,本发明提供一种体系结构与/或一种方法,用于将一个82385高速缓冲存储器控制器所能支持的高速缓冲随机访问存储器提高到至少64KB。这一体系结构也能用于任何设计成支持一定量的高速缓冲随机访问存储器的高速缓冲存储器控制器,並提供至少将该高速缓冲随机访问存储器加倍的能力。这里所描述的增加或加倍高速缓冲随机访问存储器的技术,並不需要额外的标记随机访问存储器而只需要最少量的附加支持逻辑。

82385内部包括四个部件,82385包括一个与微计算机系统总线接口的82385本地总线接口,一个与80386控制总线接口的处理器接口;一个具有来自80386地址总线及“窥探(Snoop)”总线的输入端的高速缓冲存储器目录;以及最后,实际上控制该高速缓冲存储器的一个高速缓冲存储器控制。由于高速缓冲存储器对于82385是外部的,物理地改变高速缓冲存储器的大小只受高速缓冲存储器目录的组织的禁止,该目录对82385是内部的,因而是不能改变的。

高速缓冲存储器内部目录提供1024个标志的空间。在一个32KB的高速缓冲存储器中,每一个标记表示32字节。由于数据总线是32位的,单一的一次主存储器引用能够(並且事实上)访问不是一个字节而是四个字节;所访问的四个字节称作一线。因而,每一个标记表示八线。由于高速缓冲存储器目录是在高速缓冲存储器控制器内部,因而是不能改变的;按照本发明,高速缓冲存储器容量是以增加线的大小来增加的。在一个较佳实施例中,线的大小从四字节加倍到八字节,即64位。加倍线的大小以后,标记仍然表示八线,但是每线是八字节,而不是四字节。

因为标记目录容量不能增加,所以每一标记必须表示64字节,而不是32字节。这是通过将标记组织中的地址线的有效位移位一位完成的。

在制造厂商的文档中,地址总线线是以连接到CPU上的对应地址输出脚来进行描述的。地址线是连接到高速缓冲存储器控制器的对应地址输入脚上的,以这种方式CPU的一个地址输出脚被连接到高速缓冲存储器控制器的对应地址输入脚上。为了精确地描述本发明,由于地址线的移位,将使用不同的术语。更具体地,CPU的地址输出脚将用前缀“A”来标识,地址总线的对应地址线带有相同的参照字符(这是约定的)。而高速缓冲存储器控制器的地址输入脚则以“CC”前缀来标识。系统总线地址线以“BA”前缀标识且系统总线数据线以“BD”前缀标识。

更具体地说,来自80386的地址脚A3-A30连接到82385中的地址脚CCA2-CCA29(82385的地址输入端CCA30接地而80386的地址输出端CCA31连接到82385的输入端A31)。同时,64KB高速缓冲存储器的线大小从四字节增加到八字节。给定了单个读周期的容量32位(在一台80386/82385机器中),产生了为每一次读未命中建立一个额外的读周期的要求。需要这一额外的读周期来维护80386对系统的接口。换言之,80386与82385是设计成每一次读未命中周期访问一条线。因为新线是八字节(不是四字节),为了维护这一接口,某些改变是必要的。起作用的改变是生成一个第二读周期(对于82385与80386都是透明的),来访问该线上的第二个四字节。第一个读周期抽取新线大小的一半(四字节),而第二个读周期抽取该新线大小的另外四字节(剩下的32位)。在这两个读周期中的一个中,由增加的逻辑电路生成一个地址,该地址不是CPU所供给的。更具体地,地址线A1(来自80386)被反转並用于取存储在高速缓冲随机存储器中的一个初始的四个字节。此后,线A2(未反转的)再度传递给系统,以寻址第二个32位的群。在该第二读周期中读出的数据被提供给处理器,並且也存储在高速缓冲随机存储器中。这个第二周期是以生成另外一个地址选通信号(/MISS1)来建立的。系统总线接口单元(微通道(TM)或其他系统总线)和本地总线存储器接口将/MISS1作为另一个/BADS信号使用(82385地址选通)。在系统接口看来,第二个周期像是一个流水线处理器周期。所以,/BADS或者/MISS1两者都能启动一个总线周期。作为生成一个第二读周期的替代,到存储器设备的数据接口可以从32位增加到64位。然而这一替代会要求快速DRAM与SRAM,因为需要一个额外的跨接缓冲器来将正确的数据选通到80386。这一变形能显著地改进82385高速缓冲存储器接口上的性能。

此外,並根据一个较佳实施例,给82385与80386的就绪(READY)信号,一直保持激活到第二读未命令中总线周期的结束。第一个32位(第一个读周期)以触发SRAMCS2片选存储在高速缓冲随机访问存储器中。这一信号被限制在一个激活的SRAM的高电平片选输入上。SRAMCS2是常激活的,且在一个高速缓冲存储器的第一读周期或一个读未命中的未尾变成不激活的。一个CLK2时钟周期以后,它又变成激活的。

为了供给窥探(SNOOP)操作,窥探地址也必须移位一位。这是将系统总线地址信号BA3-BA23分别连接到82385窥探地址端SA2-SA22上来实现的。信号ADRNABLE连接到82385窥探地址信号SA23。对于所有小于16兆字节的窥探地址ADRNABLE都是低电平,而对于所有大于等于16兆字节的窥探地址,是高电平。这使得高速缓冲存储器无效周期对于适用24位寻址或32位寻址的系统主机都能够正常工作。使用ADRNABLE作为一个窥探地址,的确将最大可窥探存储器空间限制到32兆字节。因为只驱动24位地址的系统主机並不驱动SA24-SA31,它将限制可窥探地址空间在16兆字节上,所以ADRNABLE有必要作为对82385的一个输入。82385上这些输入端(SA24-SA31)接地(或者低电平)。

CPU地址输出与高速缓冲存储器控制器之间的关系的位移技术,可用于为82385以外的高速缓冲存储器控制器,增加所支持的高速缓冲存储器容量,也是明显的。

从而,相对于一个方面而言,本发明提供一个多总线微计算机系统包括:

靠一条CPU本地总线连接在一起的一台CPU及一个高速缓冲存储器子系统,所述高速缓冲存储器子系统包括一个高速缓冲存储器控制器与一个高速缓冲存储器;一个系统总线装置将所述高速缓冲存储器控制器连接到一个随机访问存储器与多个可寻址的功能单元,

其中所述CPU具有寻址输出端,及所述高速缓冲存储器控制器具有寻址输入端,

将所述CPU的一些寻址输出端连接到所述高速缓冲存储器控制器的某些所述寻址输入端的装置,从而使CPU寻址输出端不连接到所述高速缓冲存储器控制器的对应寻址输入端,以及

将所述CPU的至少一个寻址输出端连接到地址逻辑生成器装置的装置,该地址逻辑生成器装置是用于向所述随机访问存储器生成不是所述CPU所生成的寻址输入的。

按照本发明的一个具体实施例,CPU寻址输出端A3-A30被连接到高速缓冲存储器控制器的寻址输入端A2-A29,而CPU寻址输出端A2则连接到地址逻辑生成器装置。

在根据本发明的一个具体实施例中,82385高速缓冲存储器控制器和按照本发明所增加的逻辑电路,提供了一个支持64KB高速缓冲存储器的系统。

图1是应用本发明的一个典型的微计算机系统的一个总体三维视图;

图2是应用本发明的一个典型的微计算机系统的大多数部件的详细方框图;

图3为展示一个高速缓冲存储器控制器(例如82385)的内部构造的方框图;

图4示出了图3中的高速缓冲存储器目录中的一个典型标记寄存器的内容,它是用于一种先有技术的直接映射高速缓冲存储器组织的;

图5示出了图3的高速缓冲存储器目录中一个典型标记寄存器的内容,它是用于采用本发明时直接映射高速缓冲存储器组织的;

图6示出了图3的高速缓冲存储器目录的目录A与目录B中典型标记寄存器的内容,它是用于一种先有技术两路组合高速缓冲存储器组织的;

图7表示图3的高速缓冲存储器目录的目录A与目录B中的典型标记寄存器的内容,它是用于采用本发明的两路组合高速缓冲存储器组织的;

图8是图2的部分详细方框图,示出CPU225,高速缓冲存储器控制器260,高速缓冲存储器255之间的互相连接,系统总线以及所增加的逻辑电路C1、C2与G1-G7;以及

图9是采用本发明的原理时CPU执行三条存储器读命令的一个例子。

图1示出了可以应用本发明的一个典型微计算机系统。如图所示,该微计算机系统10包括若干互连的部件。更具体地,一个系统单元30耦合于並驱动一台监视器20(例如一台普通的视频显示器)。该系统单元30同时耦合于输入设备,例如一个键盘40与一个鼠标50。一台输出设备,例如一台打印机60也可以连接到系统单元30上。最后,系统单元30可能包括一个或多个磁盘驱动器,例如磁盘驱动器70。下面将要说明,系统单元30响应输入设备(例如键盘40与鼠标50)以及输入/输出设备(例如磁盘驱动器70),提供信号来驱动输出设备(例如监视器20与打印机60)。当然,熟悉这一技术的人员知道,其他常用部件也可以连接到系统单元30,与之进行交互作用。按照本发明,微计算机系统10包括(下面将要更具具地描述)一个高速缓冲存储器子系统,且有一CPU本地总线互连一台处理器,一个高速缓冲存储器控制器及一个高速缓冲存储器,这一CPU本地总线经由一个缓冲器耦合于一条系统总线。该系统总线连接于並交互作用于I/O设备例如键盘40,鼠标50,磁盘驱动器70,监视器20及打印机60。此外,根据本发明,系统单元30可能还包括一条第三总线,该总线包括一个微通道(Micro    Channel)(TM)总线,用于互连系统总线与其它(选用的)输入/输出设备,存储器等。

图2是一个高层方框图,展示根据本发明的一个典型微计算机系统的各种部件。一条CPU本地总线230(包括数据,地址与控制部分)提供一台微处理器225(例如80386),一个高速缓冲存储器控制260(它可能包括一个82385高速缓冲存储器控制器)以及一个随机访问高速缓冲存储器255之间的连接。在CPU本地总线230上还耦合有一个缓冲器240。该缓冲器240本身连接到也包括地址、数据与控制部分的系统总线250。系统总线250延伸在缓冲器240与另一个缓冲器253之间。

系统总线250同时连接到一个总线控制与定时元件265以及一个DMA(直接存储器访问)控制器325。一条仲裁控制总线340将该总线控制与定时元件265和一个中央仲裁元件335相耦合。存储器350同样连接到系统总线250上。存储器350包括一个存储器控制元件351,一个地址多路转换器352及一个数据缓冲器353。这些元件与存储元件361至364互连,如图2所示。

另一个缓冲器267耦合在系统总线250与一条平面型总线270之间。平面型总线270分别包括地址、数据与控制部分。沿平面型总线270耦合的有各种I/O适配器与其它部件,诸如显示器适配器275(用于驱动监视器20)、时钟280、附加随机访问存储器285、一个RS232适配器290(用于串行I/O操作)、打印机适配器295(可用于驱动打印机60)、定时器300、软盘适配器305(与磁盘驱动器70协作)、一个中断控制器310及只读存储器315。缓冲器253提供系统总线250与一条选用的特征总线,例如微通道(TM)总线320之间的接口;该微通道总线320以微通道(TM)插座表示。诸如存储器331等设备可以耦合到总线320上。用于高速缓冲存储器写入的数据可从存储器350发出,但这些数据也可能从其它存储器例如安装在微通道(TM)总线上的存储器发出。

图3是一个方框图,它取自英特尔(Intel)出版物“82385高性能32位高速缓冲存储器控制器”(1987)。图3示出了82385内部包括四个部件:一个本地总线接口;一个处理器接口;一个高速缓冲存储器控制以及一个高速缓冲存储器目录。对于本发明的目标,增加高速缓冲存储器容量,有特殊意义的是高速缓冲存储器目录是82385内部的这一事实。这意味着高速缓冲存储器目录的容量是不能改变的。此外,同样有特殊意义的是在高速缓冲存储器目录的内容与从80386地址总线作用在高速缓冲存储器目录上的信息之间不能有任何改动。

先有技术论证了许多用于组织一个高速缓冲存储器与选择高速缓冲存储器与主存储器之间的关系的技术。一种流行的技术称作直接映射,另一种流行技术称作两路组合(fwo-way    set    associative)。80386的地址总线是32位宽,从而82385具有寻址输入端CCA0-CCA31。在直接映射模式中,高速缓冲存储器目录包括1024个26位寄存器。1024个寄存器中的每一个被划分成图4所示的各部分。位0-7(8位)由高速缓冲存储器控制元件建立。这些为线有效位,每一位用于高速缓冲存储器中的一条线。英特尔对82385使用一个32KB高速缓冲存储器(最大容许量)的推荐技术标准,将一个直接映射标记域目录中的一个入口与八条线的数据相关联,其中每线为四个字节。位8是标记有效位,它也是由高速缓冲存储器控制(元件)建立的。位9-25对应于地址位A31-A15,它们是将80386地址总线上所提供的信号直接存储起来的。在英特尔推荐的体系结构中,来自80386的寻址输出位A2-A31直接连接到82385的对应地址输入端,即CCA2-CCA31。然而,如下文将描述的,依照本发明,这一推荐技术标准是不被遵守的,且并事实上,在某些80386地址输出位与82385的地址总线输入端之间有一个“位移量”或移位。

地址A14-A5是用于寻址标记随机访问存储器目录的。熟悉本技术的人将能理解这十位对于从1024个寄存器中选出一个是足够的。地址A4-A2(三位)用于从8条线中选取一条。

图6示出了两路组合组织的高速缓冲存储器目录组织。在这一组织中将1024个寄存器分成两半,以提供512个27位寄存器在目录A中,並将另外512个27位寄存器提供在目录B中。先参见目录A中的典型寄存器,位0-7又是八个线有效位,由高速缓冲存储器控制器建立並存储在高速缓冲存储器目录中。每一个线有效位代表一条四字节线。位8还是一个标记有效位,而位9-26对应于80386地址位A31-A14,它们是直接存储以指明一个选中的页的。地址位A13-A5(九位)足以从目录中的512个寄存器中选取一个。目录B是以类似的方式组织的。与图4中所描述的组织的情形一样,地址位A2-A4(三位)足以从标记所代表的八条线中选取一条(一条线还是四个字节)。最后,每一个标记对有一个LRU位(最近最少使用的)。这一位由高速缓冲存储器控制器设置或消除来指示下一个入口是否应当在目录A或者在目录B中对应构成。

给定了这一固定的组织与高速缓冲存储器目录的固定容量,並给定了在80386寻址输出位与主存储器之间维持一个不变关系的必要性。本发明的目标是构成一个支持64KB高速缓冲存储器的体系结构。使用直接映射标记体系结构,1024个目录入口中的每一个表示8条线。由于每一条线是4个字节,熟悉这一技术的人员不难知道采用这一体系结构的高速缓冲存储器的最大容量为32KB。两路组合体系结构(图6)给出相同的结果。

按照本发明,线大小已从四字节变为八字节。图5示出了一个直接映射标记域的对应高速缓冲存储器目录组织。如图5所示,位0-7仍然代表八个线有效位;这些位由高速缓冲存储器控制器控制(元件)写入和重新写入,对于每一条线现在所代表的是八字节而不是四字节这一事实是完全透明的。位8仍然是一个标记有效位。现在是用位A3-A5来选择一条线而不是用A2-A4。结果是,位A6-A15被用于在高速缓冲存储器目录中寻址寄存器(不同于图4中所示的使用位A5-A14)。从而,该目录现在包括了一个16位标记域,位A16-A31。上述的数据则占用位位置0-24,位位置25空着。图7示出了对于图6的一种类似于图5对图4的关系。更具体地,每一个标记寄存器仍然有八个线有效位,虽然这些八个线有效位各代表8字节线而不是4字节线。位A3-A5用于选取一条给定的8字节线。位8仍然是标记有效位。位A6-A14现在用于寻址标记寄存器(不同于图6中使用位A5-A13)。相应地,位A15-A31(而不是A14-A31)直接存储以指示所选择的页。

现在参见图8,这是图2的一部分的详细方框图,展示相关信号的关系以及图8中所示的若干部件之间的互连。更具体地,图8示出了CPU225,高速缓冲存储器控制器260,地址锁存器AL与数据锁存器DL,缓冲器240的部件(见图2),高速缓冲存储器255以及若干附加逻辑部件。这些附加的逻辑部件中包括PAL    C1,PAL    C2,一组两个输入端与门G1-G7,一个或门O1及锁存器D1。

虽然图8示出了具体的逻辑元件C1、C2、O1及G1-G7,熟悉本技术的人员应能理解以不同的具体元件来组装不同的逻辑功能具有广阔的天地。图8中的特定展示其目的的更着重在说明与描述,而指导如何在不同的具体元件中组装逻辑功能则是次要的。

图8中的体系结构与82385的制造厂商所推荐的体系结构之间的两个主要区别,在于高速缓冲存储器255及CPU225与高速缓冲存储器控制器260的输出端之间的关系上。更具体地,尽管82385的制造厂商清楚地表明高速缓冲存储器255的最大容量是32KB,高速缓冲存储器255(或静态随机访问存储器-SRAM)具有至少64K字节的容量,分成32KB存储体A与一个类似的32KB存储体B。

如图8中顶部所示,CPU225的地址输出位A3-A31连接到高速缓冲存储器控制器260的寻址输入端CCA2-CCA29及CCA31上。更具体地,图8意在表示位A3-A30是连接到端CCA2-CCA29上而端A31是连接到端CCA31上的。如图8所示,端CCA30接地。地址位A2形成对PAL    C2与锁存器D1的一个输入。PAL    C2的一个输出是一个信号NEWA2,这是输入到地址锁存器AL的,从而使地址锁存器能够输出位BA2-BA31,其中输出位BA3-BA31完全相同地对应于输入位A3-A31而输出位B2则对应于输入位NEWA2。

因为高速缓冲存储器目录与微计算机系统地址结构之间的关系已经被位移了,所以对窥探总线也必须注意。熟悉本技术的人员知道为了保持高速缓冲存储器的协调性,高速缓冲存储器控制器260必须对存储器写功能具有能见度。当然,它对于起源于CPU225的存储器写功能是具有能见度的,由于它与CPU225的寻址与控制输出是连接的。然而,在典型的微计算机系统中,其它设备也可能写入存储器,因此高速缓冲存储器控制器260提供有窥探功能,以监视其它设备对主存储器的写入。为了维护已经位移了的关系,高速缓冲存储器控制器260的窥探输入端SA2-SA22是连接到地址位BA3-BA23上的,如图8所示。

虽然在前面各图中没有明确示出,一个32KB高速缓冲存储器(以4字节入口配置)需要13个寻址位。而64KB高速缓冲存储器255则需要14个寻址位。图8中所示的寻址信息是由锁存器D1(12位,A3-A14)的输出所提供的。此外,高速缓冲存储器255寻址输入AO/(一个第13位)是从C2的CACA2输出提供的。最后,第十四位的作用是由高速缓冲存储器控制器生成或者高速缓冲存储器启动A(COEA或CWEA)或者高速缓冲存储器启动B(COEB或CWEB)来建立的存储体选择。

采用高速缓冲存储器控制器的典型微计算机系统使用至少4字节线大小,部分地由于数据总线的宽度,即32位。数据总线的宽度意味着在一个给定的存储器周期中,从存储器中可以抽取32位,从而在响应一个高速缓冲存储器读未命令中中,4个字节即一线更新过的信息能够在一个给定的读周期上写入该高速缓冲存储器。将线大小从4字节改变到8字节的后果,如本发明中的情形,提出为了维护在一个高速缓冲器读未命中上更新一整线,必须还要作其他的改动。在本发明的一个较佳实施例中,由PAL    C1与PAL    C2所提供的附加的逻辑提供了一个第二或隐藏的存储器周期。这一存储器周期隐藏得使CPU225与高速缓冲存储器控制器260都觉察不到。从而,一次读未命中生成两个存储器周期。在这两个存储器周期的第一个中,地址输出A2被反转(NEWA2)並与地址位A3-A31一起用于一次32位存储器取出。这一存储器周期中的数据存储在高速缓冲存储器255中。而后,输出A2的作用再度传递给系统(NEWB2)与高速缓冲随机存储器255(与位A3-A31一起)。然而,在这一周期上,A2的作用並不反转而从存储中寻址第二组32位。在第二周期中读取的数据送至处理器225,並且也存储在高速缓冲存储器255中。这一附加周期是以生成一个替代地址选通信号(MISS1)来建立的。系统总线接口单元(微通道(TM)或其他系统总线)与本地总线存储器接口将MISS1用作一个替代的BADS(82385地址选通)信号。这一附加的或隐藏的周期在系统接口看来好象是一个流水线处理器周期,所以BADS或MISS1两者都能启动一个总线周期。

虽然按照本发明的较佳实施例,MISS1用于建立一个附加的或隐藏的周期,也可以用一种代替的配置来提供一个64位宽度的数据总线,因而附加的或隐藏的周期是不必要的,即一个单一的存储器周期能够取出对应于一条8字节线的64位数据。使用一个64位存储器接口的一个缺点是需要更快的DRAM与SRAM,因为需要一个额外的跨接缓冲器来将适当的数据选通到CPU225。

为了保持该隐藏的周期对于CPU225及高速缓冲存储器控制器260是透明的,将BREADY(来自系统)保持激活,直到第二读未命中总线周期结束(包括BADS所建立的周期与MISS1所建立的附加周期两者)。在第一读周期上读取的第一个32位数据组以(在PAL    C2中所形成的)产生脉冲SRAMCS2(片选)存储在高速缓冲存储器255中。这一信号被结合在高速缓冲存储器255的激活高片选输入上。SRAMCS2是常激活的,而在一个可高速缓冲的读未命中的第一个读周期结束时变成可激活的。在一个CLK2时钟周期以后又变成激活的。

信号NEWA2,/MISS1,/NEWLA2,/CPUNA,SRAMCS2,/CACA2,及NACACHE以下列8个逻辑式定义;

上文中曾引用过的逻辑式将紧接着在下面重新给出。在本材料中所用的符号有下列相关意义:

符号    定义

/    求反

:=    寄存器中存储的项,等于

=    组合项,等于

&    逻辑与

+    逻辑式

逻辑异式(XOR)

NEWA2=CA2(NCA &/CWR & MISS1 & SRAMCS2)

/MISS1:=

MISS1    &    BUSCYC385    &    CPUNA    &    /BADS    &    /(BW/R)    &    CLK    &    NCA

+    MISS1    &    /BUSCYC385    &    /BADS    &    /(BW/R)    &    CLK    &    NCA    &    /BREADZ

+    /MISS1    &    /CLK

+    /MISS1    &    BREADY

/NEWLA2    :=/CA2    &    MISS1    &    CPUNA    &    CLK

+    MISS1    &    /BUSCYC385    &    /BADS    &    /(BW/R)    &    CLK    &    NCA    &    /BREADZ

/CA2

+    /NEWLA2    &    /MISS1    &    CLK

+    /NEWLA2    &    MISS1    &    /CPUNA    &    CLK    &    BREADY

+    /NEWLA2    &    /CLK

+    /NEWLA2    &    MISS1    &    /CPUNA    &    CLK    &    BUSCYC385

/CPUNA    :=    /MISS1    &    CLK    &    CPUNA    &    /NACACHE

+    /MISS1    &    CLK    &    CPUNA    &    /BREADY    &    /BUSCYC385

+    /CPUNA    &    /CLK

+    /CPUNA    &    /MISS1    &    CLK

+    /CPUNA    &    CLK    &    BREADY

+    /CPUNA    &    CLK    &    BUSCYC385    &    NACACHE

SRAMCS2    :=

SRAMCS2    &    /MISS1    &    /BREADY    &    /BUSCYC385    &    CLK

/CACA2=/NEWLA2    &    /CPUNA    &    MISS1

+    NEWLA2    &    /MISS1

+    /CA2    &    MISS1    &    CPUNA    &    CLK

+    /NEWLA2    &    MISS1    &    CPUNA    &    /CLK

+    /NEWLA2    &    MISS1    &    CPUNA    &    /CA2

/NACACHE    =    /CASGATE

+    /MISS1    &    /CMD

+    RESET

其中:

/CASGATE指明激活主存储器周期,激活低电平,而/CMD指明在系统总线以外的一条总线上的一个激活周期(例如微通道),激活低电平。

在上文中:

BREADY是来自系统总线(激活低电平)的信号,指明该总线上的周期已经完成。

CA2表示CPU225的A2输出;

BADS是英特尔定义的来自高速缓冲存储器控制器260的地址选通(激活低电平);

CLK表示一个英特尔定义的时钟信号;

RESET是英特尔定义的复位信号(激活高电平);

NCA表示一个非高速缓冲存储器访问,如在共同未决申请中所定义的;

BUSCYC385是在共同未决申请案中所定义的另一个信号。

图9是若干CPU读命令,在高速缓冲存储器目录上产生的结果,及特别是线有效位,以及所产生的操作的一个例子。图9中的例子是在假定步骤1以前已经倒空了高速缓冲存储器的情况下提供的,所以在步骤1以前整个目录是无效的。

步骤1示出CPU255在地址O执行一条读命令。在结果列中,图9示出发生了两次存储器取。在一次存储器取中,双字0(4字节)被取出並存储在高速缓冲存储器中。尔后,另一次存储器取双字4(又是4个字节)也被完成並存储在高速缓冲存储器中。高速缓冲存储器目录(见第二列)设置目录地址0的标记有效位,並且线有效字节在被高速缓冲存储器控制器更新以后是11111110。

步骤2是CPU所执行的一条读存储器地住4的命令。根据先有技术,这将是一次高速缓冲存储器未命中由于原先的存储器取(步骤1处)只取来4个字节(0-3)。然而,根据本发明,作为步骤1的结果所实现的两个读存储器周期现在已向高速缓冲存储器提供了所寻址的存储器位置的内容。相应地,这一命令的结果是一次高速缓冲存储器命中,对高速缓冲存储器目录不作变动,並且不从主存储器读入更多的数据,因为该数据是从高速缓冲存储器中访问的。

步骤3示出了对地址8的一次CPU读。这又一次产生两个存储器周期,第一个双字8(4个字节)以及以后的双字CH(另一个4字节)。高速缓冲存储器目录中的线有效字节更新成如图9中线有效字节列中所示。

参见图8及NEWA2的逻辑式,首先从图8中可以看清,从地址锁存器AL输出的在地址总线(BA2-BA31)上的信号包括直接来自CPU225的寻址位A3-A31,以及在A2导线上的信号NEWA2。这一信号NEWA2是在PAL    C2中生成的,且第一个逻辑式定义这一信号。熟悉本技术的人员将会从上文描述中了解信号MISS1在隐藏的存储器读周期中是一种状态,而在隐藏的读周期之外的其它周期中是另外一种状态。结果是,当项CA2可能是常量时,信号NEWA2在隐藏的读周期中是一种状态,而在其它读周期中则是另一种状态。这便提供了在隐藏周期中一个反转的A2位和在其它存储器读周期中的一个非反转的A2位。换言之,以C2处理NEWA2向系统地址总线(AL的BA2-BA31输出)加载一个不是由CPU225生成的地址。具体说,在隐藏的周期中NEWA2=/A2,这不是CPU255生成的一个地址位。

从上文中可以看清,由一次高速缓冲存储器未命中产生(与由/MISSI实现)隐藏的读周期的必要性,是数据总线的宽度不足以供应该新的线大小(8个字节)这一事实导致的结果。从而,如果数据总线足以供应线大小,则可以消除该隐藏的总线周期。/MISS1式中的前两项示出了生成“隐藏的”周期的条件。/NCA高电平说明所要求的地址是可高速缓冲存储的。/BADS激活说明或者是一次高速缓冲存储器未命中或者是一次非高速缓冲存储的周期。然而,NCA和/BADS的共同激活的与是专指一次高速缓冲存储器未命中的。最后/(BW/R)激活表明一次读。从而这三个信号的结合专指一次高速缓冲存储器读未命中,正是建立该“隐藏的”周期的条件。第一项用于非流水线周期(CPUNA)而第二项则用于流水线周期(BREADY)。最后两项用于在适当的时候终止/MISS1。

正如NEWA2在来自CPU的一次给定的读未命中上反转以建立两个地址,一个在“隐藏的”周期上而另一个用于CPU所启动的读未命中(一个地址是以NEWA2高电平建立的而另一个地址是以NEWA2低电水建立的),同样的高速缓冲存储器255的寻址也必须反转。换言之一次高速缓冲存储器读未命中将导致一次高速缓冲存储器写。由于CPU225与高速缓冲存储器控制器260只看见一个周期所以只会建立单一的高速缓冲存储器地址。来自CPU的A2地址位並不直接到达高速缓冲存储器255的地址输入端。反之,A2上的作用是由CACA2位再生的。然而,这一位也将像NEWA2反转在系统总线上的地址那样地反转。NEWLA2是被建立来再生CPU的A2位的。CACA2的反转发生在MISS1改变状态时。

为了同样的理由,同时建立SRAMCS2。除了建立输入到高速缓冲存储器的一个附加的地址以外(一个不是CPU建立的地址),也有必要从高速缓冲存储器控制器所建立的一个单一周期中构造出两个对高速缓冲存储器255的控制周期。这是SRAMCS2的功能。SRAMCS2正当第一个即“隐藏的”周期结束时反转以启动对高速缓冲存储器255的第二个周期。

如在共同未决申请中所定义的,当提出CPUNA时,该信号启动CPU流水线操作一个周期。MISS1参予CPUNA的形成以保证“隐藏的”周期完成后不允许提出CPUNA。这一操作防止CPU在读未命中序列(包括两个周期)的第二个一半能够完成以前在一个流水线周期上离开。

虽然本发明的较佳实施例是结合82385高速缓冲存储器控制器描述的,熟悉本技术的人员能够理解,应用本发明的原理,用其它高速缓冲存储器控制器支持的高速缓冲存储器也能够用这里所描述的技术来扩充,即将CPU地址输出与高速缓冲存储器控制器地址输入之间的关系移位。这一对所支持的高速缓冲存储器的扩充並不要求将内部高速缓冲存储器目录或高速缓冲存储器控制器的其它内部部件改动到这样的程序以至以扩充线大小来扩充所支持的高速缓冲存储器容量。在数据总线能够以新的线大小支持单一周期传送的微计算机系统中,便不需要使用本发明的其它技术,即隐藏的读周期。另一方面,如果扩充所支持的高速缓冲存储器容量要求将线大小增加到超出数据总线的宽度,则引入一个隐藏的读周期这一技术,如这里所描述的,也能用于克服这一问题。同样楚清的是,在理论上,没有理由只采用一个单一的隐藏读周期。换言之,以适当的地址位移及多个隐藏周期,所支持的高速缓冲存储器容量可以增加这里所描述的100%(从32KB到64KB)以上。从上文的观点来看,清楚地表明在本发明的精神与范围内,对这里所描述的较佳实施例可以做出多种改变,以扩充一个给定的高速缓冲存储器控制器所支持的高速缓冲存储器容量,从而,不能用这里所描述的例子来直接解释本发明的精神与范围,而是只能用这里所附的权利要求来解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号