CN1009589B - 在动态确定总线大小并具有80386处理器与32385高速缓冲存储器控制器的微型计算机系统中对流水线操作的控制 - Google Patents

在动态确定总线大小并具有80386处理器与32385高速缓冲存储器控制器的微型计算机系统中对流水线操作的控制

Info

Publication number
CN1009589B
CN1009589B CN89102628A CN89102628A CN1009589B CN 1009589 B CN1009589 B CN 1009589B CN 89102628 A CN89102628 A CN 89102628A CN 89102628 A CN89102628 A CN 89102628A CN 1009589 B CN1009589 B CN 1009589B
Authority
CN
China
Prior art keywords
address
signal
bus
equipment
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CN89102628A
Other languages
English (en)
Other versions
CN1037976A (zh
Inventor
罗尔弗·木瑞·贝根
帕特里克·莫里斯·布兰德
马克·爱德华·迪安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1037976A publication Critical patent/CN1037976A/zh
Publication of CN1009589B publication Critical patent/CN1009589B/zh
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

流水线操作与动态确定总线大小之间的不相容性可以用一个地址译码器并使高速缓冲设备地址位于一个预定范围而非高速缓冲设备的地址则不在该预定范围之内这两点来加以调节。由于高速缓冲设备是32位设备。流水线操作只有当地址译码器指明所访问的是高速缓冲设备时才能允许。此时,下一地址信号被提供给该80386,允许它在完成前一个周期以前进入下一个周期。反之,下一地址信号受到抑制直至该周期完成,即不采用流水线操作。

Description

本发明涉及微型计算机系统的改进,特别是应用动态确定总线大小和流水线操作的,尤其特别是进一步包括高速缓冲存储器子系统的这些系统。
有关80386,其特征以及它在包含高速缓冲存储器子系统的微型计算机系统中使用的背景信息在Intel的“Introduction    to    the80386”,1986年4月和80386硬件参考手册(1986)中已有说明。82385的特性和操作性能在Intel出版物“82385    High    Performance    32-Bit    Cache    Controller”(1987)中说明。
在微型计算机系统中,如同在其它计算机系统一样,操作速度是一个重要的判定标准,在大多数情况下必须与系统价格进行平衡。过去首先在大型计算机和小型机中引入的加快操作速度的许多特性现在已进入微型计算机系统中。其中包括高速缓冲存储器子系统和流水线操作。
在一些微型计算机系统中(例如使用80386的那些系统),流水线操作是一种有吸引力的操作方式的选择。对于80386/82385微型计算机系统当该82385高速缓冲存储控制器设定为连接到80386的一个对应输入端时它发出一个NA信号。在一个给定的总线周期结束以前使该82385将这一NA信号送至80386而使82386能在下一操作周期中输出信息(数据,地址和/或控制)。连同所连 接的部件一起调整定时,使得当高速缓冲存储器操作是该给定的操作时,该给定的操作所需的信息已经被高速缓冲存储器所接受,所以改变80386的输出信息使之对应于下一周期将不致于干扰正在完成中的操作。这对于发生高速缓冲存储器缺失状态的情况也同样成立,在这种情况中要访问的不是高速缓冲存储器而是主存储器,由于访问主存储器是经由锁存缓冲区的,所以有关给定操作的信息是存在其中的。
80386也具有以所谓动态确定总线大小进行操作的能力。80386是标称32位机器,即数据总线的宽度是32位。然而当应答指明16位设备(只传送16位数据的设备)的存在而向80386提出的BS16信号时,80386也能与16位设备一起操作。BS16信号对于80386的重要性在于它已执行的是32位操作。当然,16位设备不能在一次操作中传送80386所能生成和/或接收的32位数据。从而必须有一个第二操作(周期),而且80386能响应BS16信号自动生成下一个必要的周期。
为了在82385存在时这类操作得以成功,就必须要求82385具有关于参加操作的设备的特征的信息,从而使送至80386的NA信号不是无予见性地生成的。如所引用的Intel出版物中所述,82385不同于80386,前者要求在周期开始时得到设备信息,而后者可以在周期的相当晚的时刻接收并作用于设备信息。
在一些微型计算机系统中,以把设备的地址与其位数相联的方法接受这一制约,例如把所有32位设备置于第一个事先规定的地址范围,而把所有16位设备置于第二个不同的地址范围,由于采用了这一技术,设备的位数可由其地址确定。
然而,在需要在广阔地变化着的地址范围中灵活地分配种类繁多 的设备的系统中,这一制约难于实行。这类系统之一是那些采用IBM微通送(TM)总线的系统。
在许多系统中,包括上述类型的系统,在一个设备被寻址时将返回其位数的指标,然而,由于82385要求在一个总线周期的开始时便得到所需的设备数信息,以致在那些只能在周期的后期获得信息的系统中,可能出现无予见性的NA信号。
因此,本发明的一个目的是在80386/82385微型计算机系统中提供一种有选择地控制NA信号而使只在适当的环境中耦合于80386的配置。在其它环境中防止该NA信号到达80386。防止NA信号到达80386进而防止了流水线操作,即在给定的周期结束以前防止用于下一周期的信息的生成。采用了这一灵活控制NA信号的方式,微型计算机系统便得以在动态确定总线大小下操作,即它能对在周期开始时不了解正在与之操作的设备的位数信息的各种不同位数的设备进行操作。
可以高速缓冲的设备,即生成能够高速缓冲数据的设备,必定是32位设备。所有这类设备具有指明可高速缓冲性的地址(具体说是标志)。其它所有设备(不论是否32位设备)具有指明不能在高速缓冲存储器中找到它们所生成的信息的地址。对NA信号的控制部分地取决于可高速缓冲性。具体地,由于任何可高速缓冲的设备是32位的,所以当对可高速缓冲设备进行操作时,不存在无预见性的NA信号问题。此外,在发生高速缓冲命中时,因为只有可高速缓冲设备(32位设备)能发生高速缓冲命中所以NA信号是适当的这一点毫无问题。从而,容许动态确定总线大小和流水线作业的一个重要特性在于断定对一非可高速缓冲设备的地址时防止或禁止NA信号到达 80386。
如果,在一个给定周期的进行中(其中,NA信号已被禁止),得知该设备为32位设备,则该周期以正常方式结束(不以流水线)。反之,如果在周期的进行中得知与之操作的是一16位设备(而周期则为32位周期),则80386生成追加的必要周期。这一操作对82385是完全透明的,即82385在两个周期中不参与第二个的控制。最后,如果得知与之操作的设备为一8位设备,则80386所“见”为一16位设备,从而它的操作无异于该设备为16位设备情况下的说明。换言之,80386“见到”-16位设备,因此在第一周期结束后(在该周期中它被通知正在和16位设备进行操作),生成一个第二周期。然而,将80386的每一个16位周期变换为两个8位周期的其他逻辑不但对82385是透明的同时对80386也是透明的。因此在将一个32位的周期导向一个8位设备时,82385不参加操作,80386生成两个16位周期,而其它逻辑对每个16位的80386周期进行操作以生成两个8位周期。
从而依照一个方面,本发明提供了一种具有在进行中的操作结束以前响应下一个地址信号的流水线指令排序的微型计算机系统。所述微型计算机系统包括:一个处理器,具有一给定的位宽度;一个具有所述位宽度的高速缓冲存储器子系统,这子系统以一局部总线耦合于所述处理器;一条另外的总线将所述局部总线连接到具有所述给定的位宽度的其它部件,和至少一个具有减小的位宽度的部件;具有所述给定位宽度的所述部件中至少有一部分具有与所述高速缓冲存储器子系统相关的地址范围内的地址,而且具有减小的位宽度的所述至少一个部件具有和所述高速缓冲存储器子系统相关的地址范围以外的地址。
其中所述微型计算机系统进一步包括:
a)地址译码器装置响应所述局部总线上提交的一个地址以生成一个信号指明所述提交的地址是否位于与所述高速缓冲存储器子系统相关的所述地址范围内,以及
b)逻辑装置响应来自所述地址译码器装置的所述信号以对所述微处理器生成用于流水线操作的一个下一地址信号,除非所述地址译码器装置指明所提交的地址是位于与所述高速缓冲子系统相关的范围之外的。
图1是采用本发明的一个典型微型计算机系统的三维总体图;
图2是采用本发明的一个典型微型计算机系统的大部分部件的详细框图;
图3是比图2更详细些的框图,展示了制造商所推荐的80386与82385之间的连接,这对于了解为什么这样一种配置对于动态确定总线大小是不相容的这一问题是有帮助的;
图4是类似于图3的更为详细的框图,但所示的是本发明的应用,它同时允许流水线指令排序和动态确定总线大小;
图5是同时对82385和80386都透明的处理16至8位周期变换的装置的进一步详细框图;以及
图6和7是定时图以及锁存器DL及其控制信号LEDMA(DMA锁存置能)的框图,用于展示同步DMA子系统与CPU局部总线的接口(在不同时钟下操作)以避免可能出现在系统总线250上的争用。
图1示出了可采用本发明的一个典型的微型计算机系统。如图所示,微型计算机系统10包括互连的若干部件。更具体地,系统单元30耦合于并驱动监视器20(例如普通的视频显示器)。系统单元30同时耦合于输入设备,例如键盘40与鼠标50,输出设备如打印机60也能连接到系统单元30上。最后,系统单元30包括一个或多个磁盘驱动器,例如磁盘驱动器70,如下面要说明的,系统单元30响应输入设备(例如键盘40和鼠标50)和输入/输出设备(例如磁盘驱动器70)提供驱动输出设备(例如监视器20和打印机60)的信号。当然精于此道者熟知其它的传统的部件也能连接到系统单元30用于与之交互式访问。依照本发明,微型计算机系统10包括(下面将更具体地说明)一个高速缓冲存储器子系统以CPU局部总线与处理器互连,一高速缓冲控制和一高速缓冲存储器,该存储器经过一个缓冲器与系统总线耦合。系统总线互连于并交互式访问I/O设备,例如键盘40,鼠标50,磁盘驱动器70,监视器20和打印机60。再者,依照本发明,系统单元30尚能包括一条第三总线,该总线包含一微通道(TM)系统结构用于系统总线与其它输入/输出设备之间的互连。
图2是高层框图示出依照本发明的一个典型的微型计算机系统的各种部件。一条CPU局部总线230(包括数据,地址和控制部分)提供微处理器225(例如80386),高速缓冲控制260(可能包括一个82385高速缓冲控制器),以及一个随机存取高速缓冲存储器255之间的连接。同时耦合于系统局部总线230上的有缓冲器240。缓冲器240本身连接到系统总线250,并且也包括地址,数据及控制 部分。系统总线延伸在缓冲器240与另一缓冲器253之间。系统总线250也连接到总线控制与定时元件265以及DMA控制器325上。仲裁控制总线340将总线控制与定时元件265耦合到中央仲裁元件335。主存储器350也连接在系统总线250上,主存储器包括一个存储器控制元件351,一个地址多路器352和一个数据缓冲器353。这些元件与存储器元件361至364互连,如图2所示。
另一缓冲器267耦合于系统总线250与二维总线270之间。二维总线270包括对应的地址,数据和控制部分。沿二维总线耦合的有各式各样的I/O适配器和其它部件例如显示器适配器275(用于驱动监视器20),时钟280,附加的随机访问存储器285,RS232适配器290(用于串行I/O操作),打印机适配器295(可用于驱动打印机60),定时器300,软盘适配器305(与磁盘驱动器70协同工作),中断控制器310以及只读存储器315。
缓冲器253(一边与系统总线250相耦合)另一边与微通道(TM)总线320的微通道(TM)插口330耦合。总线320可以支持各种位数的设备包括32位设备,16位设备及8位设备。图中示出了耦合在总线320上的一个典型存储设备331,这一总线的优点之一是向用户提供了在不同插口中随意插入各种设备的灵活性。这些设备的混用和它们在不同插口上的配置避免了固定的地址分配并且是本发明的必要性的基本理由。缺少了本发明,这里所述的80386/82385微型计算机系统不是完全不能使用流水线操作便是由于无法预见的或不合理的流水线操作而导致错误操作。
图3示出了制造商所推荐的关于生成和使用下一地址(NA)信号的80386与82385之间的选择性互连。更具体地,CPU局部总线230 与系统总线250之间的接口是缓冲器240,它的部件中包括一个控制缓冲器DL(用于数据)和AL(用于地址)。如图3所示,CPU局部总线的数据部件(CPULBD)在CPU局部总线一侧是对DL的一个输入/输出连接。同样,系统总线250的数据部件SBD在系统总线250一侧是对DL的输入/输出连接。缓冲器DL受其输入信号LDSTB,BT/R和DOE控制。LDSTB将数据锁存进DL,而DOE开放DL的输出,接受输入(CPU局部总线230或系统总线250)或送出输出(系统总线250或CPU局部总线230)的方向由BT/R确定。
同样,缓冲器AL的地址部件具有来自CPU局部总线的地址部件(CPULBA)的输入和导向系统总线250的地址部件(SBA)的输出。以类似的方式,缓冲器的AL部件受其两个控制信号BACP与BAOE的控制,前者将来自CPULBA的地址信息锁存进AL而后者开放输出,即对系统总线250。控制信号LDSTB,DOE,BACP与BAOE是由82385提供的。
CPU局部总线230的地址部件CPULBA源于80386,而CPU局部总线P30的数据部件CPULBD则源于/终于80386。
82385在生成NA信号中使用两个外加的信号X16与NCA。X16信号指明正在与之进行操作的设备是16位还是32位设备,信号X16的来源之一是局部总线地址译码器(LBAD)。此外,制造商推荐将信号BS16结合于信号X16。信号BS16是输入到80386向其指明正在与之进行操作的设备是16或32位的。信号BS16的一个来源是一个设备地址译码器,例如MAD。MAD表示耦合于系统总线250的任何设备或任何其它总线(例如总线270或320) 的地址译码器。当一台设备(例如MAD)在一条总线地址部件(例如MA)上认出其地址时,它返回信号BS16,该信号是高电平还是低电平取决于该设备是16或32位设备。
非高速缓冲地址(NCA)是82385的另一个输入,它指明所提交的地址是否为可高速缓冲地址。可高速缓冲地址的定义是与高速缓冲子系统相容的设备的地址,也就是一个32位设备的地址。这一信号是高速缓冲地址译码器(CAD)根据来自CPU局部总线230的地址部件的输入生成的。制造商建议使用对82385的这一输入可以留出一部分存储器作为非高速缓冲区。
图3中示出的推荐体系结构在任何一个下述环境中提供高效的流水线操作(应用NA信号);
1)所有连接到系统总线250或任何与之耦合的总线上的设备均为32位设备,或者
2)只要在任何总线周期开始时能够获得X16信号,则连接到系统总线250或任何与之耦合的总线上的设备可以是32位或16位的设备。
当在一给定的总线周期开始时能够获得X16信号,基于这一信息82385得以确定NA信号是否合宜,如果并不合宜,便不生成该信号。从而当80386是在与一台32位设备操作时,则正常情况下NA信号是在一个给定的周期结束以前生成的,以之使流水线操作生效。反之,若该设备为-16位设备,则不生成NA信号,而使80386生成用于与一台16位设备进行正常操作的第二个必要的周期。
然而,某些总线子系统(例如微通道CTM总线)的体系结构提供给混合的8位,16位和32位设备。因为非到典型的设备MAD在总线子系统上辨认出自己的地址以后一定时间,BS16信号是不返回的。 对于82385依据它来确定是否要生成NA信号说来,它的生成为时过晚。从而,82385的特性使之与具有灵活性的总线子系统,例如微通道(TM)总线所表现的,不能兼容,特别是在NA信号的生成上不能兼容。
图4是类似于图3的框图,但根据本发明的使用作了改变,在介绍图4所示的装置的操作以前,先说明图3与图4之间的若干差别。
一个主要差别是82385输出的X16与NA不再被使用。
此外,在82385与80386之间介入了一个新的逻辑元件CL。该逻辑元件CL生成CPUNA信号(代替废用的来自82385的NA信号)。逻辑单元CL响应来自82385的CADR与BADS信号发出的NCA信号(指明是否发生高速缓冲存储缺失)。该逻辑元件CL同时具有输入BW/R指明任何系统总线周期是读还是写。将要说明,当BW/R用于本发明的一个实施例中时,它并不是一个主要的信号。
除了来自CPULBA的A17-A26,与A31位的输入以外,译码器CADR还接收可编程高速缓冲性位(PCB),在一个实际建成的实施例中,这三位中的第一位表示允许高速缓冲储存ROM空间的决定。第二位或者允许译码器CADR根据被译码的信息输出NCA,或者宣布所有访问都是非高速缓冲的,即不论CPULBA上提交的地址是什么都声明NCA。最后,第三位在一种状态中指明从0到8兆字节的地址空间是高速缓冲的而从8到16兆字节的地址空间是非高速缓冲的。在另一种状态,该位指明在0到16兆字节范围内的地址空间都是高速缓冲的。如果愿意,可将这一位的作用翻番以简单地反映从第一个16兆字节到后续的16兆字节范围内的状态。当然,这些特殊的高速缓冲性指示位(或其它位)的应用对于本发明并不是主要 的。然而,配置CADR使之能对其输入快速译码并生成NCA则是重要的。在一个实际构成的实施例中,从CPULBA上的合法地址生成NCA的定时窗口是非常短的,其数量级为10毫微秒。
图3与图4之间的另一主要差别是现在该典型的MAD生成的不是单一的BS16信号(如图3中的情形)而是两个信号,CS32与CS16。这就使得MAD能够表明自己是32位设备,16位设备,或者8位设备。CS32信号输入到一个触发器FF,该FF用于在一种状态下当MAD是一台32位设备时和在不同状态下当MAD是8位或16位设备时生成BS16信号。如果该设备既不生成CS32也不生成CS16,则根据设定的补缺值,该设备为一台8位设备。
以上引用的逻辑等式立即在下面重新列出。在本材料中的符号具有下述含义:
符号    定义
/    非
:=    赋值项,等于
=    组合项,等于
&    逻辑“与”
+    逻辑“或”
逻辑等式
/BT2:=BUSCYC385    &    PIPECYC385    &    /BADS    &    CLK    &    BT2    (1)
+    BUSCYC385    &    /PIPECYC385    &    BADS    &    CLK    &    NACACHE    &    BT2
+    MISS1    &    /BUSCYC385    &    /BADS    &    /(BW/R)    &    CLK    &    NCA    &    /BREADY
+    /MISS1    &    /BREADY    &    /BUSCYC385    &    CLK
+    /BT2    &    BREADY    &    NACACHE
+    /CLK    &    /BT2
/BUSCYC385:=BUSCYC385    &    /BADS    &    CLK    (2)
+    BUSCYC385    &    /PIPECYC385    &    CLK
+    BUSCYC385    &    /BT2    &    CLK
+    /BUSCYC385    &    BREADY
+    /BUSCYC385&    /CLK
/CPUNA:=/MISS1    &    CLK    &    CPUNA    &    /NACACHE    (3)
+    /MISS1    &    CLK    &    CPUNA    &    /BREADY    &    /BUSCYC385
+    /CPUNA    &    /CLK
+    /CPUNA    &    /MISS1    &    CLK
+    /CPUNA    &    CLK    &    BREADY
+    /CPUNA    &    BUSCYC385    &    NACACHE    &    CLK
/MISS1:=MISS1    &    BUSCYC385    &    CPUNA    &    /BADS    &
/(BW/R)    &    CLK    &    NCA    (4)
+    MISS1    &    /BUSCYC385    &    /BADS    &    /(BW/R)    &    CLK    &
NCA    &    /BREADY
+    /MISS1    &    /CLK
+    /MISS1    &    BREADY
/PIPECYC385:=PIPECYC385    &    /BADS    &    /BUSCYC385    &
CLK    &    /BREADY    (5)
+    PIPECYC385    &    /MISS1    &    BT2    &    /BUSCYC385    &
CLK    &    /BREADY
+    /PIPECYC385    &    /CLK
在上述逻辑等式中下列信号是在引用的Intel出版物中所说明或引用的:
BADS
BREADY
(BW/R)    实际上是BW/R,括号用于表示整个项是一个信号CLK
(W/R)    实际上是W/R,括号用于表示整个项是一个信号
BADS,激活时表明在系统总线250上的一个合法地址。BREADY是从系统总线250到CPU局部总线230的一个就绪信号。BW/R定义一个系统总线250的写或读。CLK是一个处理器定时信号,它与处理器225同相。(W/R)是CPU局部总线230的传统的写或读信号。
等式(1)-(5)定义:
BT2
BUSCYC385
CPUNA
MISS1
PIPECYC385
根据所定义的信号,在引用的Intel出版物中说明或引用的信号是NCA与NACACHE。
BT2反映系统总线250的状态。状态BT2是引用的Intel出版物中所定义的状态。
BUSCYC385也反映系统总线250的状态。对于总线状态BTI,BT1,BT1P它是高电平,而对于总线状态BT2,BT2P与BT2I则是 低电平(这些也都是引用的Intel出版物中所引用的)。
CPUNA是对80386表示允许流水线操作的信号,这是替代来自82385的NA信号的信号。
MISS1激活时定义用于处理对高速缓冲设备的64位读的双周期中的第一周期。
PIPECYC385在BT1P(这是引用的Intei出版物中引用的一种总线状态)时激活。
NCA是在译码CPU局部总线230上的地址部分时生成的一个信号,激活时反映非高速缓冲访问。可高速缓冲性是以标志部分(A31至A17)与定义什么标志(如果有的话)表示其与非高速缓冲地址相反的可高速缓冲地址的可编程信息两者相结合来确定的。
NACACHE是类似于BNA信号的一个信号。BNA是系统生成的信号请求来自CPU局部总线230的下一地址,并在引用的Intel出版物中被引用。NACACHE与BNA之间的差别仅在于BNA是为32K高速缓冲存储器建立的而NACACHE则是为64K高速缓冲存储器建立的。只要高速缓冲存储器如Intel出版物中所提及的是32K的,这里所说的NACACHE信号可以用BNA信号替代。
考察等式3,在第一与第二行中可见到集合项。第一行中的项指明一个流水线操作。/MISS1指明32位操作(将要说明)因此CPUNA是适当的。第二行中的项是一个早结束的非流水线操作,例如/BREADY。参见等式4,第一行与第二行中是集合项。它们都取决于NCA。
图5是与缓冲器和译码器267(与总线270相关联的)和缓冲器253(与微通道(TM)总线320相关联)相关联的装置的详图。 前面已经说明,图4中的装置当32位周期导向8位或16位设备时提供两个16位周期,而且是以对82385透明的方式这样做的。图5中的装置用于为每一个导向8位设备的16位周期生成两个8位周期,并且是以对80386透明的方式进行的。
更具体地,该装置包括控制逻辑CLA,一个定序器S和一个受控耦合器ALS,该耦合器将数据线中有选择的几个与其他数据线相耦合。更具体地,如图5所示,在信号DIR和/G的控制下可以将低8位(D0-D7)耦合于第二个8位段(D8-D15)。再者,传送的方向(自左至右或自右至左)也受控于DIR。
更具体地,在80366生成的任一16位周期中,数据是放置在数据总线的低16位上的。为了将80386生成的一个16位周期为相当的MAD转换成两个8位周期,图5中示出的硬件迫使该16位操作在8位设备MAD看来如同两个8位操作,而对80386看来这两个8位周期如同一个16位周期。
控制逻辑CLA为转换周期控制执行译码功能。它检测必须产生能换周期的时刻,并控制ALS的GATE245和DIR    245信号,它们是将数据总线的低8位连接到数据总线的第二个8位段的。CLA的逻辑等式列在下面。每当检测到转换周期条件时,信号DATACONV激活该序列。当信号CS16不激活时表示8位设备的存在,从而必须进行转换。而当信号CS16激活时,则指明一台16位或32位设备。在序列中使用Q1指明转换周期的前一半的结束。信号DATACONV与Q1输入定序器S,定序器S执行两个功能。一是保持80386不就绪直到周期的后一半被启动以后。将ARDYEN驱动为逻辑1向80386发信号不要结束该周期。定序器也用于激励一个8位周期的结束和第二 个8位周期的开始。ALTALE将逻辑1记录到AO地址线上,并使等待状态发生器重新启动。CNTLOFF使激活命令信号成为不激活态后再变成激活态以激励一个周期的结束和另一周期的开始。CONVAO用于作为AO地址锁存器的一个输入在转换周期的后一半迫使AO成为逻辑1。
完成的16位到8位转换周期在时间和功能上等价于两个连续的8位周期。
上面所引用并在图5中示出的信号定义如下:
MEMCS16    16位存储器设备选择
(I/OCS16)    16位I/O设备选择,括号用于指出该表达式为一
单个信号。
AEN1,AEN2    允许从DMA控制器送来地址
MEMR,MEMW,IOR,IOW    CPU命令信号
XBHE    总线高允许,指明数据必须出现在数据总线的较高8
位段上
XAO    最低有效地址位线
Q1    等待状态发生器输出(第二状态输出)
D0-D7    数据总线的最低8位段
D8-D15    数据总线的第二8位段
ARDYEN    在转换周期中对82284    ADDS等待状态的异步就
绪允许,以生成两个8位周期
ALT    ALE(激活高)    替换地址锁存,用于使AO成为逻辑1,并重新启动等待状态发生器以进行第二8位传送。
CONV.AO(激活高)    转换周期AO,向AO地址锁存器提供一个
逻辑1使AO在第二8位周期中增加
CNTOFF    控制关闭,关闭激活命令信号三个时钟以激励一个8位周期的结束和第二个8位周期的开始,CNTLOFF亦用于在第一个8位传送时将低位数据总线锁存到CPU(在读周期中),输入到82288
逻辑等式
/GATE    245;=MEMCS16    &    AEN1    &    AEN2    &
/MEMR    &    /XBHE    &    XAO    (6)
+    MEMCS16    &    AEN1    &    AEN2    &    /MEMW    &    /XBHE    &    XAO
+    (I/OCS16)    &    AEN1    &    AEN2    &    /IOR    &    /XBHE    &    XAO
+    (I/OCS16)    &    AEN1    &    AEN2    &    /IOW    &    /XBHE    &    XAO
+    /AEN1    &    /MEMCS16    &    /XBHE    &    /IOR
+    /AEN1    &    /MEMCS16    &    /XBHE    &    /MEMR
/DIR245:=/AEN1    &    /MEMR    (7)
+    AEN1    &    AEN2    &    /XBHE    &    /MEMW
+    AEN1    &    AEN2    &    /XBHE    &    /IOW
/DATA    CONV:=MEMCS16    &    AEN1    &    AEN2    &    /MEMR    &
Q1    &    /XBHE    &    /XAO    (8)
+    MEMCS16    &    AEN1    &    AEN2    &    /MEMW    &    Q1    &    /XBHE    &    /XAO
+    (I/OCS16)    &    AEN1    &    AEN2    &    /IOR    &    Q1    &    /XBHE    &    /XAO
+    (I/OCS16)    &    AEN1    &    AEN2    &    /IOW    &    Q1    &    /XBHE    &    /XAO
图7中示出了锁存器DL,系统总线250与CPU局部总线230之间的数据输入/输出连接以及控制信号LEDMA的详图。图6示出了信号LEDMA与CPU局部总线230上其它信号(图6中上面三分之一用符号“82385局部总线信号以25MHz”指示),可选择特性总线320上的信号(以参照词“微通道(TM)总线320信号”指示)和系统总线250上的信号(用符号“DMA信号”指示的下面三分之一)之间的相对关系。如图6中上部三分之一所示,CPU局部总线230是一个同步定时总线(时钟CPUCLK2与CPUCLK的关系如图中所示)。中间部分(构成图6的主要部分)示出了在CPU局部总线230上的单个周期。周期的起始点以最左边的垂直线表示,而周期的结束则以最右边的垂直线表示。如图6中中间三分之一所示,CPU局部总线230上的一个周期一经开始,在经过系统总线250延伸到总线320的一个周期中,命令信号SSO*与SS1*成为激活的(低电平)。经过短暂的时间以后,一个地址即被锁存进缓冲器253中(以ADL*参照)。随即,信号CMD*也成为激活状态(低电平),这一点定义了系统总线250与可选择特性总线320上的DMA周期的开始,这是以第三条(从左数)垂直线的延长伸入图6中下面三分之一来表示的,DMA周期开始后不久,信号DMASO与DMAS1成为激活状态(低电平)。如图6中所见,信号DMARDY*随即改变状态。在DMARDY*的下一个转变(向低电平的转变)上,所需的数据便位于系统总线250上。于是,信号LEDMA改变状态(上升转变)。这具有将系统总线250上的数据锁存进锁存器DL的效果。使LEDMA发生状态改变的同一转变对BREADY*也具有作用(如图6中箭头所示)。换言之,当DMARDY*被采样为低电平时,所需的数据已锁存进锁存器DL且DMA通道已释放了总线250。 从而如图6所示,DMARDY*的转变导致BREADY*的转变。在BT2的下一个向高电平转变,CPU周期便可安全地结束(这是图6中最右边的垂直线)。如图6中所见,CPU周期的结束引发CMD*的状态改变(在微通道(TM)总线320上)并且也有释放LEDMA的作用,因为在该周期结束时,CPU225从锁存器DL接受数据。
上面说明了结束CPU周期的前提,和结束CPU周期的条件是DMA周期的先期结束。这保证了当CPU启动下一个周期时(图6中最右垂直线以右),DMA周期已较早地完成,“使总线上在DMA周期的过程中没有可能曾经传送过的数据”。
从而本发明通过有选择地在适当时候生成CPUNA提供了动态确定总线大小(它提供了对微通道(TM)总线320是重要的灵活性)与流水线操作之间的调节。如已指出的,CPUNA取决于检测到一次高速缓冲访问,这时在进行中的周期结束以前生成CPUNA。反之,当检测到非高速缓冲访问时,则抑制流水线,即在系统总线250指明该周期完成(发出BREADY)以前不生成CPUNA。
同时,通过缓冲器DL建立了同步的DMA机构与同步的(但为另一个时钟所驱动)CPU局部总线之间的调节。当CPU局部总线230启动DMA周期时,在DMA周期结束以后CPU局部总线230上的周期才结束。
这里所说明的只是本发明的一个特定的实施例,不言而喻,本发明可以多种方式实施。于是,本发明不能直接理解为这里说明的实例而应根据所附的权项进行理解。

Claims (1)

1、一种微型计算机系统,具有流水线指令定序并能在正进行中的操作完成之前响应一个下一地址信号,所述微型计算机系统包括:
一台具有给定位宽的处理器,
一个具有所述给定位宽的高速缓冲存储器子系统,以一条局部总线耦合于所述处理器,以及
另一条总线将所述局部总线连接于其它部件,这些其它部件具有所述给定的位宽并至少有一台部件具有减小的位宽,至少某些具有所述给定位宽的所述部件具有与所述高速缓冲子系统相关联的一个地址范围内的一个地址,并且具有减小的位宽的所述至少一个部件具有与所述高速缓冲子系统相关联的一个地址范围以外的一个地址,其特征在于:所述微型计算机系统进一步包括:
a)地址译码器装置,能对所述局部总线上提交的一个地址作出响应以生成一个信号指明所述提交的地址是否位于与所述高速缓冲存储器子系统相关联的所述地址范围之内,以及
b)逻辑装置能对所述地址译码器装置作出响应以对所述微处理器生成一个下一地址信号用于流水线操作,除非所述地址译码器装置指明一个位于与所述高速缓冲子系统相关联的范围以外的提交地址。
CN89102628A 1988-05-26 1989-04-25 在动态确定总线大小并具有80386处理器与32385高速缓冲存储器控制器的微型计算机系统中对流水线操作的控制 Expired CN1009589B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US198,894 1988-05-26
US07/198,894 US5125084A (en) 1988-05-26 1988-05-26 Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller

Publications (2)

Publication Number Publication Date
CN1037976A CN1037976A (zh) 1989-12-13
CN1009589B true CN1009589B (zh) 1990-09-12

Family

ID=22735315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN89102628A Expired CN1009589B (zh) 1988-05-26 1989-04-25 在动态确定总线大小并具有80386处理器与32385高速缓冲存储器控制器的微型计算机系统中对流水线操作的控制

Country Status (25)

Country Link
US (1) US5125084A (zh)
EP (1) EP0343988B1 (zh)
JP (1) JPH0623960B2 (zh)
KR (1) KR930002321B1 (zh)
CN (1) CN1009589B (zh)
AR (1) AR242671A1 (zh)
AT (1) ATE112869T1 (zh)
AU (1) AU615055B2 (zh)
BE (1) BE1002768A4 (zh)
BR (1) BR8902393A (zh)
CA (1) CA1313274C (zh)
DE (2) DE3914265A1 (zh)
DK (1) DK169492B1 (zh)
ES (1) ES2063818T3 (zh)
FI (1) FI95175C (zh)
FR (1) FR2632090A1 (zh)
GB (2) GB8904921D0 (zh)
HK (1) HK11492A (zh)
IT (1) IT1230207B (zh)
MX (1) MX173139B (zh)
MY (1) MY104738A (zh)
NL (1) NL8901326A (zh)
NO (1) NO174788B (zh)
SE (1) SE8901307L (zh)
SG (1) SG110691G (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2504206B2 (ja) * 1989-07-27 1996-06-05 三菱電機株式会社 バスコントロ―ラ
CA2023998A1 (en) * 1989-11-13 1991-05-14 Thomas F. Lewis Apparatus and method for guaranteeing strobe separation timing
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
JP3215105B2 (ja) * 1990-08-24 2001-10-02 富士通株式会社 メモリアクセス装置
GB9018992D0 (en) * 1990-08-31 1990-10-17 Ncr Co Internal bus for work station interfacing means
US5274763A (en) * 1990-12-28 1993-12-28 Apple Computer, Inc. Data path apparatus for IO adapter
CA2060820C (en) * 1991-04-11 1998-09-15 Mick R. Jacobs Direct memory access for data transfer within an i/o device
GB2256296B (en) * 1991-05-31 1995-01-18 Integrated Device Tech Multiplexed status and diagnostic pins in a microprocessor with on-chip caches
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5630163A (en) * 1991-08-09 1997-05-13 Vadem Corporation Computer having a single bus supporting multiple bus architectures operating with different bus parameters
JP2599539B2 (ja) * 1991-10-15 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 直接メモリ・アクセス装置及びルック・アヘッド装置
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置
US5317712A (en) * 1991-12-19 1994-05-31 Intel Corporation Method and apparatus for testing and configuring the width of portions of a memory
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
US5307475A (en) * 1992-06-29 1994-04-26 The United States Of America As Represented By The Secretary Of The Navy Slave controller utilizing eight least/most significant bits for accessing sixteen bit data words
US5313593A (en) * 1992-09-17 1994-05-17 International Business Machines Corp. Personal computer system with bus noise rejection
JPH0827773B2 (ja) * 1992-10-23 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ経路を使用可能にする方法、装置およびデータ処理システム
JP3369227B2 (ja) * 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
JPH07210537A (ja) * 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
US5835960A (en) * 1994-01-07 1998-11-10 Cirrus Logic, Inc. Apparatus and method for interfacing a peripheral device having a ROM BIOS to a PCI bus
US5548733A (en) * 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
US5842041A (en) * 1994-05-20 1998-11-24 Advanced Micro Devices, Inc. Computer system employing a control signal indicative of whether address is within address space of devices on processor local bus
JP3153078B2 (ja) * 1994-09-09 2001-04-03 日本電気株式会社 データ処理装置
JP2630271B2 (ja) * 1994-09-14 1997-07-16 日本電気株式会社 情報処理装置
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
US5758188A (en) * 1995-11-21 1998-05-26 Quantum Corporation Synchronous DMA burst transfer protocol having the peripheral device toggle the strobe signal such that data is latched using both edges of the strobe signal
US6504854B1 (en) 1998-04-10 2003-01-07 International Business Machines Corporation Multiple frequency communications
US6725348B1 (en) * 1999-10-13 2004-04-20 International Business Machines Corporation Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
JP3857661B2 (ja) * 2003-03-13 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、及び記録媒体
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US8825962B1 (en) 2010-04-20 2014-09-02 Facebook, Inc. Push-based cache invalidation notification
CN113514408B (zh) * 2021-06-28 2024-06-11 杭州谱育科技发展有限公司 具有校正功能的臭氧检测装置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4016541A (en) * 1972-10-10 1977-04-05 Digital Equipment Corporation Memory unit for connection to central processor unit and interconnecting bus
US4314334A (en) * 1977-08-30 1982-02-02 Xerox Corporation Serial data communication system having simplex/duplex interface
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4503534A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for redundant operation of modules in a multiprocessing system
US4649476A (en) * 1983-10-31 1987-03-10 Motorola, Inc. Microcomputer having an internal address mapper
JPS6240555A (ja) * 1985-08-16 1987-02-21 Fujitsu Ltd プリフエツチ制御方式
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US4933845A (en) * 1987-09-04 1990-06-12 Digital Equipment Corporation Reconfigurable bus
CA1315011C (en) * 1987-09-28 1993-03-23 Paul R. Culley System for fast selection of non-cacheable address ranges using programmed array logic
CA1314104C (en) * 1987-09-28 1993-03-02 Paul R. Culley Executing code from slow rom on high speed computer compatible with slower speed computers

Also Published As

Publication number Publication date
AU615055B2 (en) 1991-09-19
AU3409989A (en) 1989-11-30
KR890017604A (ko) 1989-12-16
BE1002768A4 (fr) 1991-06-04
EP0343988A2 (en) 1989-11-29
HK11492A (en) 1992-02-21
IT8920648A0 (it) 1989-05-25
FI95175B (fi) 1995-09-15
ES2063818T3 (es) 1995-01-16
DE3914265C2 (zh) 1992-01-09
CN1037976A (zh) 1989-12-13
DK169492B1 (da) 1994-11-07
DK189489D0 (da) 1989-04-19
KR930002321B1 (ko) 1993-03-29
JPH02146645A (ja) 1990-06-05
MX173139B (es) 1994-02-02
AR242671A1 (es) 1993-04-30
SE8901307L (sv) 1989-11-27
GB2219110B (en) 1991-02-20
EP0343988A3 (en) 1991-01-30
EP0343988B1 (en) 1994-10-12
BR8902393A (pt) 1990-01-16
NO891584D0 (no) 1989-04-18
GB8904921D0 (en) 1989-04-12
NO891584L (no) 1989-11-27
NO174788C (zh) 1994-07-13
JPH0623960B2 (ja) 1994-03-30
NL8901326A (nl) 1989-12-18
IT1230207B (it) 1991-10-18
GB8912018D0 (en) 1989-07-12
CA1313274C (en) 1993-01-26
DE68918754D1 (de) 1994-11-17
FR2632090A1 (fr) 1989-12-01
SG110691G (en) 1992-02-14
MY104738A (en) 1994-05-31
SE8901307D0 (sv) 1989-04-11
DK189489A (da) 1989-11-27
GB2219110A (en) 1989-11-29
NO174788B (no) 1994-03-28
ATE112869T1 (de) 1994-10-15
FI891787A (fi) 1989-11-27
FI891787A0 (fi) 1989-04-14
FI95175C (fi) 1995-12-27
US5125084A (en) 1992-06-23
DE68918754T2 (de) 1995-04-27
DE3914265A1 (de) 1989-11-30

Similar Documents

Publication Publication Date Title
CN1009589B (zh) 在动态确定总线大小并具有80386处理器与32385高速缓冲存储器控制器的微型计算机系统中对流水线操作的控制
CN1113300C (zh) 半导体装置及计算机系统
CN1029047C (zh) 具有把组块脉冲式操作转换为流水线操作装置的数据处理系统
CN1191531C (zh) 总线系统
CN105224480B (zh) 一种用于响应于读取要求的存取存储器装置的方法和装置
CN1038160C (zh) 多处理器数据存储器共享
CN1053281C (zh) 系统总线外围总线间最佳数据传送用多总线系统总线桥
CN1026926C (zh) 动态存储系统中动态调定各时标用的数据处理系统
CN1010808B (zh) 在有仲裁的80386/82385微机系统运行中80386对系统总线的抢用
CN1097784C (zh) 协处理器系统以及带辅助运算功能的外部存储装置
US5884051A (en) System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
CN1102265C (zh) 用于在多条总线之间传送信息的系统和方法
CN1106609C (zh) 在一个计算机系统中配置多个媒体的方法和设备
CN1694085A (zh) 内部总线系统
JPH0713908A (ja) 多重化バスを有する情報処理システムでバック・ツー・バック・データ転送を提供する方法および装置
CN1118478A (zh) 在信息处理系统的不同总线结构之间提供准确和完整的通信的方法和设备
CN1169064C (zh) 可编程存储器存取接口类型的集成电路微处理器及方法
CN1040104A (zh) 用于双母线微机系统的延迟高速存贮器写操作启动电路
CN1570907A (zh) 多处理器系统
CN1199120C (zh) 具有共享一个共用存储器的多个处理器的装置
CN1127022C (zh) 具有地址变换的数据处理方法及设备
CN1624673A (zh) 数据传输装置
CN1020005C (zh) 使用地址位移机制以增加所支持的高速缓冲存储器容量的微计算机系统
CN1252733C (zh) 存储系统、存储单元、比特屏蔽电路及相关方法
CN1040875A (zh) 有选择地寄存写操作周期的方法和装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C13 Decision
GR02 Examined patent application
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee