本发明涉及微计算机系统,特别是使用高速缓冲存储器子系统并对锁定功能提供可编程控制的微计算机系统。 在微计算机系统中使用高速缓冲存储器子系统导致不少引人入胜的操作优点。使用高速缓冲存储器子系统的微计算机系统实际上是双总线微计算机。CPU(中央处理单元)与高速缓冲存储器子系统是通过可称为一条CPU本地总线连接在一起的。独立于该CPU本地总线有一条系统总线,在它上面可以连接其它的设备(I/O(输入/输出)设备,附加存储器等)。高速缓冲存储器子系统的存在将系统总线从任何读存储器访问中解脱到这样的程度,即所寻找的信息也可在高速缓冲存储器子系统中找到,因为并非所有需要的信息都可以在高速缓冲存储器子系统中找到,而且写操作通常既指向高速缓冲存储器子系统又指向存储器,当然在系统总线与CPU本地总线之间必须有某种连接。
尽管如此,在某些情况中,对于某些命令CPU与/或高速缓冲存储器控制器是安排成禁止高速缓冲存储器操作的。例如,80386CPU包括一个用于多处理器与多主机设计的LOCK(锁定)信号。这一信号通知其它总线主机该处理器正在执行一个不允许中断的多总线周期操作。例如,80386在中断认可总线周期期间当更新段描述符和页表时和当它执行交换指令时自动请求LOCK。80386的制造厂商推荐将80386的LOCK输出连接到高速缓冲存储器控制器的LOCK输入上。由于高速缓冲存储器控制器既可见到CPU本地总线(高速缓冲存储器位于它上面)又可见到系统总线(主存储器及其它存储器位于其上),所以它有能力允许一次高速缓冲存储器操作或禁止这一高速缓冲存储器操作。典型地,高速缓冲存储器控制器(例如一个82385)会在任何提交LOCK输入的周期上阻止一次高速缓冲存储器操作。
80386与82385设备的特征在“微处理器与外部设备手册”“82385高性能32位高速缓冲存储器控制器”和“80386导论”以及80386硬件参考手册中均有说明,以上资料都是英特尔(Intel)出版的。在“82385高性能32位高速缓冲存储器控制器”中指出(3、4、2节)当(80386)提交LOCK输出时,不管序列中所引用的地址是否位于高速缓冲存储器中在系统总线上流过一个序列。换言之,一次读命中将如同一次读未命中一样运行。
尽管上文是这样说明的,在大多数个人计算机(PC)环境中,描述符在系统处理器之间是不共享的。结果,提交LOCK信号地后果导致显著的性能降低,尤其是当在80386保护方式中操作时。这一性能降低的出现是由于82385高速缓冲存储器控制器将一切锁定的操作为非高速缓冲存储的来对待的。
为了解决这一问题,本发明提供了耦合在(例如80386的)一个LOCK输出端与(例如82385的)LOCK输入端之间的一个附加的逻辑(电路)。这一附加逻辑包括一个可以取两个二值状态之一的控制输入端。附加逻辑的控制输入端受一个选择的I/O端口的一个特定位的驱动。当该I/O端口的该特定位被提交时,它在逻辑上的作用是禁阻(80386的)LOCK输出与(82385的)LOCK输入之间的一切关系。更具体地,当该I/O端口的选择位激活时,(82385的)LOCK输入是不激活的,不管80386的LOCK输出如何。另一方面,在该I/O端口的该选择位在非激活状态时,该逻辑允许82385的LOCK输入随80386的LOCK输出状态变动。
从而,该I/O端口的选择位的状态或者启动微计算机系统的LOCK功能或者禁阻该LOCK功能。在本发明的一个较佳实施例中,这是在本申请的受让人所制造的PS/2″微计算机系统上实现的,这是一种单处理器或单总线主机系统,当在OS/2″操作系统下操作时,禁阻LOCK功能能够明显地提高性能(高达6%)。这一性能提高对于使用高速缓冲存储器子系统来达到增强性能作出了贡献。在没有本发明时,在规定的操作条件下,CPU与高速缓冲存储器控制器禁止使用高速缓冲存储器子系统(及其性能优点)。
在本发明的一个较佳实施例中,LOCK输入与输出是低电平激活,附加逻辑包括一个单一的或(OR)门。在这一实施例中,LOCK功能被一个从该I/O端口的特定位到该或门的一个高电平控制输入所禁阻。另一方面,当该I/O端口的特定位处于低电平状态时,LOCK功能与先有技术中同样地操作。
由于对附加逻辑的控制输入提供了可编程性,当I/O口的特定位(控制位)为低电平时,允许微计算机系统如同附加逻辑并不存在那样地操作。另一方面,当特定位即控制输入为高电平时,则LOCK功能受到禁阻。如熟悉本技术的人员所清楚的,借此,对LOCK功能的控制是放在软件中的,该软件控制所选择的I/O端口的特定位的状态。
因而,本发明提供了一种多总线微计算机系统包括:以一条CPU本地总线连接在一起的一个CPU及一个高速缓冲存储器子系统,所述高速缓冲器子系统包括一个82385高速缓冲存储器控制器及一个高速缓冲存储器,将所述82385连接到一个随机访问存储器及多个可寻址功能单元的系统总线装置,所述CPU有一个LOCK输出及所述82385有一个LOCK输入,以及耦合在所述CPU的所述LOCK输出与所述82385的所述LOCK输入之间的逻辑装置,所述逻辑装置包括一个用于禁阻所述LOCK输出与所述LOCK输入之间的任何关系的控制输入。
熟悉本技术的人员将会理解,本发明可应用于不使用80386CPU,82385高速缓冲存储器控制器,或两者中之一的微计算机系统。更具体地,本发明可应用于任何包括一个高速缓冲存储器子系统的任何多总线微计算机系统中,其中的CPU包括一个LOCK信号,而高速缓冲存储器控制器则响应这一信号禁阻高速缓冲存储操作。相应地,在另一方面,本发明提供了一种多总线微计算机系统包括:以一条CPU本地总线连接在一起的一个CPU及一个高速缓冲存储器子系统,所述高速缓冲存储器子系统包括一个高速缓冲存储器控制器及一个高速缓冲存储器,将所述高速缓冲存储器控制器连接到一个随机访问存储器及多个可寻址的功能单元的系统总线装置,所述CPU有一个LOCK输出及所述高速缓冲存储器控制器有一个LOCK输入,所述高速缓冲存储器控制器包括用于将任何与一个激活的LOCK输入相关联的周期作为一个非缓冲存储周期处理的装置,以及耦合在所述CPU的所述LOCK输出与所述高速缓冲存储器控制器的所述LOCK输入之间的逻辑装置,所述逻辑装置包括一个用于禁阻所述LOCK输出与所述LOCK输入之间任何关系的控制输入。
图1是使用本发明的一个典型微计算机系统的总体三维视图。
图2是使用本发明的一个典型微计算机系统的大部分部件的详细方框图;
图3示出了一个CPU,一个高速缓冲存储器控制器及根据本发明所增加的逻辑之间的关系;以及
图4是展示图3中的系统所使用的三个信号之间的关系的一个陈述图。
图1示出了可使用本发明的一种典型微计算机系统。如图所示,微计算机系统10包括互连在一起的若干部件。更具体地,一个系统单元30耦合于并驱动一台监视器20(例如一台常用的视频显示器)系统单元30也耦合于诸如键盘40与鼠标50这样的输入设备。诸如打印机60这样的输出设备也能连接在系统单元30上。最后,系统单元30可包括一个或多个磁盘驱动器,例如磁盘驱动器70。如下文将描述的,系统单元30响应诸如键盘40与鼠标50等输入设备以及磁盘驱动器70等输入/输出设备提供驱动诸如监视器20与打印机60等输出设备的信号。当然,熟悉本技术的人员知道其他常用的部件也可以连接到系统单元30上与之进行相互作用。根据本发明,微计算机系统10包括(下文将更详细地说明的)一个高速缓冲存储器子系统,并有一条互连一台处理器,一个高速缓冲存储器控制与一个高速缓冲存储器的CPU本地总线,该CPU本地总线是经由一个缓冲器与一条系统总线耦合的。该系统总线互连诸如键盘40,鼠标50,磁盘驱动器70,监视器20与打印机60等I/O设备并与它们相互作用。此外,根据本发明,系统单元30也可包括一条包括一个微通道(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(以微通道(TM)插座表示)之间的接口。诸如存储器331这样的设备可耦合到总线320上。
虽然用于高速缓冲存储器写的数据可来自存储器350,这些数据也可以来自其它存储器例如配置在微通道(TM)总线上的存储器。
图3与4示出了本发明在CPU225的LOCK输出与高速缓冲存储器控制器260的LOCK输入之间的联系上的应用。图4中的表是表示LOCK输出,或门01的控制输入与连接到高速缓冲存储器控制器260的LOCK输入的或门01的输出之间的关系的一张状态图。图4下方的注解表示LOCK信号是低电平激活,LOCK功能在高电平信号时被禁阻。低电平状态的控制信号启动LOCK输入跟随LOCK输出,然而在高电平状态中,不管LOCK输出的状态如何,LOCK输入总是禁阻(高电平)的。
在一个较佳实施例中,CPU225包括一个80386,而高速缓冲存储器控制器260包括一个82385。或门01的控制输入端可以连接到来自任何选中的I/O端口的任何特定位上。当这样连接时,这一I/O端口上的位的状态将决定高速缓冲存储器控制器260的LOCK输入是否跟随CPU225的LOCK输出的状态。在高速缓冲缓冲存储器控制器260的LOCK输入不跟随CPU225的LOCK输出的情况下,它是在一个禁阻的或高电平状态中。在这一状态中,如熟悉本技术的人员所清楚的那样,高速缓冲存储器控制器260将根据其它参数决定任何周期是否是可高速缓冲存储的。另一方面,如果控制位为低电平时(启动LOCK功能),则高速缓冲存储器控制器260将不考虑这些其他的参数而将任何与CPU225的低电平输出的一个低电平状态相关联的周期作为非高速缓冲存储对待。
从而,本发明提供了在软件控制下启动或禁阻LOCK功能的能力,且在一种对于CPU225完全透明的方式中做到这一点。
显而易见的,虽然在一个较佳实施例中,CPU225包括一个80386且高速缓冲存储器控制器260包括一个82385,但本发明的应用不限于使用在包括这些设备的微计算机系统中。反之,包括一个复制80386/82385的LOCK功能特征的高速缓冲存储器子系统的任何微计算机系统都是应用本发明的一个候选者。同样显而易见的是,本发明也能应用于LOCK信号是高电平激活而不是低电平微活的微计算机系统中。例如,高电平激活条件可以用一个与(AND)门来代替或门01结合对控制位的状态的适当改变来进行处理。以高电平激活信号,及使用一个与门作为附加逻辑,一个高电平控制信号允许LOCK输入跟随LOCK输出,而一个低电平控制位则禁阻该LOCK输入。
虽然在这里描述了本发明的一个较佳实施例,从上文中可以清楚地看到在本发明的精神与范围内可以作出许多改变。因而,本发明应当由下面所附的权利要求书来进行解释而不是由这里所描述的具体例子来说明。