CN1021143C - 多处理机公用的流水线超高速缓冲存储器 - Google Patents
多处理机公用的流水线超高速缓冲存储器 Download PDFInfo
- Publication number
- CN1021143C CN1021143C CN 85107692 CN85107692A CN1021143C CN 1021143 C CN1021143 C CN 1021143C CN 85107692 CN85107692 CN 85107692 CN 85107692 A CN85107692 A CN 85107692A CN 1021143 C CN1021143 C CN 1021143C
- Authority
- CN
- China
- Prior art keywords
- cache
- signal
- access unit
- unit
- subsystem
- 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 - Lifetime
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
一种超高速缓冲存储器,具有可由一组源共亲的两级流水线,这组源包括两个独立工作的中央处理单元(CPUS)。在该缓冲存储器中包括一个装置,用来将交替的时间片分配给两个CPUS,使它们的操作偏移一个流水线级。使得当一个流水线级为一个CPU执行目录检索时,另一个流水线级则为另一个CPU执行数据缓冲器读出。每个CPU的程序都设计得使所用的时间片少于所分配到的时间片,干是,当流水线级被其它源的请求处理占满时,这些处理单元能够无冲突地操作。
Description
本发明涉及计算机***和多处理机***。更具体地说,本发明是涉及含有一个超高速缓冲存储器***的多处理机***。
众所周知,超高速缓冲存储器不论对于小的还是大的,单处理机还是多处理机***,在增加其解题能力上都一直具有很高的效力。在多处理机***中,通常用两种方式来构成超高速缓冲存储器。第一种是公用超高速缓冲存储结构,在此中一个或几个主存储器模块利用一个超高速缓冲存储器。***里的所有处理机都可对它进行存取。第二种结构是专用超高速缓冲存储装置,在此中的超高速缓冲存储器只服务于单个处理机。Miohael Dubois和Fay A.Briggs,在IEEE Transactions on Computers,Volume C-31,NO.11,November,1982中,以“Effects of Cache Coherency in Multipro-cessors”为题描述了这些结构。
此外,人们还曾把多处理机***设计得共用一个包括超高速缓冲存储器的公用控制器。美国专利4,378,591和4392,200都是这些类型***的例子。在这些***中,各个处理单元接到公用总线并包括一个判优电路,用来分配访问超高速缓冲存储器所用的总线周期。人们还发现在解决各处理机的存取冲突方面化了许多时间。从而除
了增加***的复杂性之外,这本身也降低了***的效能。
另外,在美国4,378,591专利所公开的***中,在超高速缓冲存储器***里还包括其它一些总线周期申请源,比如先进先出(FIFO)存储器。这个设备必须根据一个优先级,通过局部总线获得对超高速缓冲存储器的存取。对FIFO给予一个比处理单元更高的优先权,以便使信息的传送(通常是主存储器的写数操作)得以从先进行。也就是说,对操高速缓冲存储器的修改操作给予一个比处理机请求更高的优先权,于是进一步降低了***的效能。
一个先有的单处理机***利用了一个存储器***,它包括一个超高速缓冲存储器和用全分段流水线实现的主存储器。该***是单个的个人计算机***,因此只能供单用户***使用。关于这种***的讨论,可参考Douglas W.Clark,Butler W.Lampson和Kenneth A.Pier所写的文章,题为“The Memory System of a High-Performance Personal Computer”利登在IEEE Trcvnsactions on Computers,Volume C-30,NO.10,October 1981。
因此,本发明的主要目的是:提供一种能够处理多源请求的高效能超高速缓冲存储***。
本发明的另一个目的是提供一种若干个独立的操作源在无冲突的基础上能共享一个超高速缓冲存储器的***。
本发明提出的最佳实施方案达到了上述的目的和优点。按照本发明,构成一个具有两级流水线的超高速缓冲存储器子***,使包括一定数目独立操作的中央处理单元的多个源可以共享这两级流水线。当第二级流水线执行从超高速缓冲存储器取出所要数据并把它们送给源的时候,第一级
流水线则为查找目录和比较操作提供数据。超高速缓冲存储器还包括定时和控制装置,它与请求源相联,对每个处理单元分配时间片,使它们的操作偏移一个流水线级。
通过超高速缓冲存储器控制装置同步各个源的操作,有效地消除了各源之间的冲突机会,从而增加了***的效能。这样,超高速缓冲存储器不断地循环让所有的源进行无冲突的流水线操作。
另外,在该最佳实施方案中,对每个中央处理单元的程序作这样的安排,使之其需用的时间片少于超高速缓冲存储单元分配给它的所有时间片。也就是说,在该最佳实施方案中,每个中央处理机每隔一个时间片要求分配给它一个。剩下的时间片用于其它一些源。在该最佳实施方案中,一个这种其它源是先进先出(FIFO)缓冲器,它处理修改和替换请求。本发明的装置使这些请求能在自由时间片内以保证缓冲器不会溢出的速率得到处理。
更详细地说,该最佳实施方案包括一个具有两个中央处理单元的中央处理单元子***(CPUS)。每个CPU具有一个虚存管理单元,用于把请求的虚拟地址转换为实际地址。每个中央处理单元都由微程序控制,每隔一个微指令操作周期对交替的微指令进行译码,以产生请求。包含在该超高速缓冲存储器中的同步控制电路产生一些同步信号,用于以不同的时间间隔同步每个中央处理单元的时钟电路。把这些时间间隔偏移一个足够的时隙数,以便为这些子***提供一个无冲突的操作。
通过下面结合附图的描述,将会更好地了解在其组织和操作方法上被确认为本发明的新特征,以及本发明的其它目的和优点,然而应该清楚地知道,所给出的每个附图只是用于图解和说明的目的,而不是要做为本发明的限定。
图1是一个***的方框图,它包括了本发明的各个装置。
图2是根据本发明构成的图1的一个中央子***的方框图。
图3a到图3c详细地表示了图2的定时和控制电路。
图4是一个用来解释本发明的装置操作的定时图。
图1示出了一个多处理机数据处理***10,包括从14到30的一组子***,它们都连到***总线12。列出的子***包括从14到16的一组中央子***,从20到28的一组存储器子***和***子***30。每个子***包括一个接口区,它使与之相连的一个单元或一些单元对***总线12上的另一个单元异步地传送或接收以命令中断,数据或应答/状态形式表示的请求。即可以假设每个接口区包括一些总线逻辑电路,正如美国专利3995,258号所公开的(由George J.Barlow发明的题为“Data Processing System Having a Data Integrity Technique”)。
从14到16每个中央子***的组织都是相同的。图2以方框图的形式表示根据本发明构成的中央子***14。子***14包括一对中央处理单元(CPU)子***14-2和14-4,共享一个超高速缓冲存储的***14-6。超高速缓冲存储子***14-6通过一个先进先出(FIFO)子***14-10连接到总线12,可以把子***14-10认为是包括在14-1之中。
从图2看出,在结构上CPU子***14-2和14-4二者是相同的。即每个CPU子***包括一个32位的中央处理单元(CPU)(即CPU子***的14-20和14-40),以及一个虚存管理单
元(VMMU)(即VMMU 14-26和14-46)。该虚存管理单元(VMMU)用于把CPU虚拟地址转换成实际地址,而该实际地址作为存储器请求的一部分送到超高速缓冲存储子***14-6。同时,每个CPU子***包括一个只读存储器(ROS)和一个16位的ROS数据输出寄存器(ROR)(即ROS14-24,14-44和ROR14-25,14-45)。
在每个周期的开始,每个ROS所处的状态使之能把一个16比特的微指令字读到它的数据输出寄存器(ROR)中,该微指令定义了该周期中要执行的操作种类(固件步骤/程序中的逻辑单元)。在每个CPU子***中的时钟电路(即电路14-22和14-42),为这里解释的超高速缓冲存储子***14-6控制下的它的子***建立基本定时。每个CPU子***的部件可用标准的集成电路片构成。
从图2看到,超高速缓冲存储子***14-6被组织成一个源地址产生部分和两个分开的流水线级,每个都具有其自己的译码和控制电路。该源地址产生部分包括方框14-62和14-64,它执行源地址选择和递增功能。第一流水线级是一个地址级,它包括从方框14-66到14-76的电路,如图所示。这级执行锁存产生的源地址,目录检索和命中比较的功能。该第一流水线级以级数和列地址形式产生一个输出信息。通过方框14-60的定时和控制电路产生的定时信号来同步第一流水线级的操作。
把来自第一级的信息即刻传送到第二流水线级,使第一级可用于下一个源的请求。第二流水线级是数据级,包括从方框14-80到14-96的电路,如图所示。这一级执行从缓冲存储器14-88和14-90存取所要数据的功能,或者用从FIFO子***14-10接收的数据来替换/存储数据。于是该第二流水线级提供传送到其中一
个CPU子***的一个36比特的数据字。也是通过方框14-60的定时和控制电路产生的定时信号来同步第二流水线级的操作。
第一和第二流水线级的各种方框都是由标准集成电路构成的(比如1984年Texas仪器公司取得版权的“The TTL Data BOOK,Volumn 3”中所描述的那些集成电路)以及从1983年Aavanced Micro Devices公司取得版权的“Aavanced Micro Devices Drogrammable Array Logic Handbook”中所描述的那些集成电路)。例如,方框14-62的地址选择器电路就是由两组6个级联的74AS857多路器组件构成的,以选择四个地址中的一个。方框14-92的交换多路端也是由同类的组件构成的。方框14-68和14-72的锁存器是由74AS843 D型锁存器组件构成的。方框14-70的交换多路器和数据寄存器电路是由单一的同步可编程序陈列逻辑部件构成的,比如元件标号AHPA16R6A,它是由AdVanced Micro Devices公司制造的。
目录存储器14-74和14-76由8位片式超高速缓冲存储地址比较器电路(部件标号为TMS2150JL)构成,该组件是由Texas仪器公司制造的。地址和数据寄存器从14-80到14-84,14-94和14-96由部件标号为SN74AS823的9位接口触发器构成,该触发器也是由Texas仪器公司制造的。缓冲存储器是由INMOS公司生产的标号为IMS1420的4K×4比特存储器组件构成的。方框14-64的地址递增电路是由标号为74AS18/A的标准ALU组件和标号为AmPA16L8A的可编程序规律逻辑部件构成的,这两个部件都是由Aclvanced
Micro Devices公司制造的。
第一和第二级命令寄存器,以及方框14-66和14-86的译码电路,分别利用了标号为AmpAL16R4A和AmpAL16R6A的由钟同步的可编程序矩阵逻辑部件,它们是由Advanced Micro Devices公司制造的。这些电路产生要求的选择、图2中所示的读和写控制信号(即信号SWAPLTtoo,SWAPRTtoo POLDOT-OL,PILDDT-OL,POLDDTOR,PILDDT-OR)。进一步的详细描述可参考附录的逻辑式。
从图2可见,把超高速缓冲存储子***14-6组织为偶和奇两部分,使之根据奇或偶的存储器地址同时存取两个数据字。关于这类超高速缓冲存储器存取装置的进一步的情况,可参考美国专利NO,4,378,591,它转让给了与此同一的受让人。
图2还以方框形式表示了FIFO子***14-10,它包括连接到替换地址寄存器14-12和***总线12上的方框14-11的FIFO控制和同步电路。FIFO子***14-10接收在***总线12上任何两个子***间的所有转移信息。当该信息是用于修改主存里面的数据时,把该信息编码以指示这种修改或替换操作,FIFO子***14-10还接收由存储器请求产生的任何新数据,该存储器请求是通过超高速缓冲存储子***14-6向***总线12提出的。把修改和新数据都作为请求存储在子***14-10中所包含的缓冲存储器里。FIFO控制电路译码每个请求并启动适当的操作周期,使之把地址,数据和命令加到图2所示的超高速缓冲存储子***14-6的各个部分对于本发明的目的,可以认为FIFO子***是一个常规的设计,采取美国专利NO,4,195,340中所公开的电路形式。(应专利转让给了与此相同的受让人)。
通过方框14-60的定时和控制电路来建立图2的每个子***的基本定时。根据本发明,这种控制使得CPU子***14-2,14-4和FIFO子***14-10能够不冲突地共享超高速缓冲存储子***14-6。从图3a到图3c详细地表示了方框14-60的电路。图3a表示方框14-600的地址选择逻辑电路,它产生控制信号PTOSEL+OO,PT1SEL+OO,SLFIAD+OO和SLRPAD+OO。这些信号是根据来自CPU子***14-2和14-4的CPU超高速缓冲存储器请求信号,来自接口区14-1的CPU端口忙录信号PTOBSy-OO和PT1BSy-oo来自FIFO子***14-10的FIFO信号FIUPDT+OO和FISHBA+OO和来自方框14-640定时电路的地址定时信号TM1AD2+OO和TM3AD4+OO而产生的。这些信决定地址选择器14-62的状态以从子***14-2,14-4和14-10中选出一个作为请求地址源。
从图3a可见,这些电路包括与门14-602到14-608和或门14-610。该图还示出了ROR寄存器14-25和14-45的第2位,以及包括与门14-112的FIFO方框14-11的部分,该14-11的部分产生信号FIUPDT+OO和FISHBA+OO。
图3b表示方框14-620的流水线时钟电路。这些电路确定了不同类型的超高速缓冲存储器周期,启动该流水线,以产生信号STPIPE+OO。信号STPIPE+OO决定时钟同步寄存器14-632的状态,寄存器14-632根据每个请求产生预定的一串信号。
更详细地说,从14-622到14-628的每一个与非(NAND)门供给一个信号,表示图2的一个子***所要求动作的种类。即信号POCARD-OO和P1CARD-OO分别表示为CPU0子***14-2和CPU1子***14-4服务的超高速缓冲存储器请求,而信号FISHBA-10和FIUPDT-10表示为FIFO子***14-10服务的超高速缓冲存储器请求。可以把这些请求概括如下:
1.CPU0读周期
当接口14-1中的CPU端口0不为忙碌(即信号PTOBSY-10=1)时,在第一时间片/间隔(即信号TIMEO1+00=1)中,根据ROS14-24引起的超高速缓冲存储器请求(即信号PORDO2+10=1)进行CPU0读操作。把CPU0子***14-2提供的地址送到第一流水线级,并把目标读出。当检测到命中时,表示所要求的数据存储在数据缓存器中,则读缓存器并将该数据通过时钟存入CPU0的数据寄存器中。当检测到未命中时,把CPU0端口置为忙录,把该请求转送给存储器以取出所要求的数据。
2.CPU1读周期
当接口14-1的CPU端口1不为忙录时(即信号PT1BSY-10=1)时,在第三时间片/间隔(即信号TIMEO3+00=1)中,根据ROS14-44引起的超高速缓冲存储器请求(即信号
PIRDO2+10=1)进行CPU1读操作。
3.第二个半总线周期
当FIFO子***14-10具有一个存储的请求(即信号FIHAVE+10=1)时,在第一或第三时间片/间隔(即信号TM1OR3+00=1)中,根据FIF0子***14-10引起的超高速缓冲存储器第一类的请求,进行第二半总线周期操作,用来处理由主存储器或返回到***总线12(即信号FISHBA=1)上的I/O设备所请求的数据。当FIF0子***14-10把来自一个I/O设备的数据供给到第一流水线级时,它从此通过,不改变任何存储器状态,并通过时钟存到适当的CPU数据寄存器中。将来自主存储器的数据写入超高速缓冲存储器的数据缓冲器,并用时钟把它存到适当的CPU数据寄存器中。
4.存储器写修改周期
当FIF0子***14-10具有一个存储的请求时(即信号FIHAVE+10=1),在第一或第三时间片/间隔(即信号TM1OR3+00=1)中,根据FIF0子***14-10引起的超高速缓冲存储器第二类的请求,进行存储器写修改周期,以根据这种数据的应答(即信号F1ACKR+00=1)来替代修改来自***总线12的数据(即信号FIUPDT+00=1)。FIF0子***14-10把数据供给到第一流水线级,以进行目录存储器的读数。当检测到命中时,把替换数据写入缓冲存储器。
当把POCARD-00到FIUPDT-10信号中任何一个降低到二进制“0”时,或非门14-630〔等效于一个与非(NAND)门〕将启动流水线信号STPIPE+00升高到二进制的“1”。这给寄存器14-632一个状态以使响应每个钟信号MCLOCK+
00开始计数。把寄存器14-632接成一个环形计数器,把寄存器输出直接或通过如图所示的反相器电路14-634反相后反馈到相继的寄存器输入级,寄存器14-632响应每个出现的时钟信号MCLOCK+00,将脉冲打入到第一级,连续地进行计数。这就产生了从PIPEOA+OA到PIPEOB-OB一系列脉冲信号。时钟信号MCLOCK+00是由包含在方框14-60中的晶体振荡器电路(未示出)产生的。同时把钟信号MCLOCK+00作为输入加到方框14-22和14-42的CPU时钟电路上。
图3c表示方框14-640的主计数器和同步控制电路,以及方框14-660的FIF0周期选择逻辑电路。方框14-640的电路,根据时钟信号MCLOCK+00产生所要求的从TIMEO1+00到TMIOR3+00的定时信号序列,它们确定各种时间片/间隔,在这些时间片/间隔中超高速缓冲存储子***14-6执行处理子***超高速缓冲存储器请求所要求的各种操作。
主计数器包括一个寄存器14-650和如图示那样分别连接的与非门14-742以及或门从14-644到14-648。该装置作为一个环形计数器由每个时钟信号MCLOCK+00递增或推进。主计数器把定时信号TIMEO1+00和TIMEO3+00加到方框14-652的同步控制电路。这些电路产生信号POMSYN+00和信号PIMSYN+00,把它们分别加到方框14-22和14-24的CPU0和CPU1的时钟电路。每个这种信号把CPU时钟电路的操作与超高速缓冲存储子***的定时和控制电路同步。更具体地说,把同步信号POMSYN+00加到包括在方框14-22中的环形计数器寄存器的触发器级TIMEO2输入端;而把同步信号PIMSYN+00加到包括在方框14-44中的环形计数器寄存器
的触发器级TIMEO2输入端。每次出现这种信号时,使CPU的时钟电路按适当的时间间隔推进一位。信号POMSYNC+00和P1MSYNC+00定这样产生的,使它们保持两个时间片/间隔的相互偏移(见附录)。
方框14-660的FIF0周期选择逻辑电路包括一对非或门14-662和14-664、一对与门14-666和14-668、或非门14-670、非与门(NAND)14-672和一个如所示那样串联的钟同步的D型寄存触发器级14-672这些电路在时间片/间隔TIMEO2和TIMEO4产生FIF0周期信号CYFIFO+00和FIFO信号DOAFIF+00,如这里所说明的,用它们把FIFO子***14-10的操作与超高速缓冲存储器子***14-6的操作同步。
参考图1到图3C,现在将结合图4的定时图来描述本发明提出的实施方案的操作。假设图3b和3c的环形计数器电路14-620和14-640正在循环或工作(即正在根据时钟信号MCLOCK+00计数),并且已把两个ROS存储器14-24和14-44初始化到预定的状态。如前所述,把每个ROS存储器的ROS字进行适当地编码,以便获得“1”和“0”交错的代码,以此规定分配给CPU子***14-2和14-4的周期。图2中示出了这种编码,其中每个ROS字的第二位是被适当编码的。
在信号TIMEO1+00的前沿,用时钟把ROS字存储到CPV0 ROS数据寄存器14-25。检查ROS字的命令字段(即位0和1)。当位0和1为10时,这规定超高速缓冲存储器子***14-6是执行一个***总线请求,把其中的数据从连接到***总线12上的设备读出或写入。假设超高速缓冲存储器请求规定了一个主存
储器读出操作,超高速缓冲存储子***14-6读超高速缓冲存储器。在此时,检测ROS的数据位2,以确定是否CPU0将利用下一个将要来到的超高速缓冲存储流水线周期,它相当于时间间隔T2和T3。当位2是“0”时,这表示CPU0子***14-2将不用下一个超高速缓冲存储器周期。然而,当位2是“1”时,这表示CP0子***14-2将要运用下一个超高速缓冲存储器周期。
假设CPU0子***14-2的端口电路没有忙于处理其它的***总线请求(即信号PTOBSY-10=1)。从图3b可看出,与非门14-622强制信号POCARD-00到“0”,这将使非或门14-630把起动流水线信号STPIPE+00强制到二进制“1”。从图4可见,这个信号有效到信号TIMEO1+00的后沿。即是说,由斜线表示的起动流水线信号STPIPE+00一直有效到图4中作为CPU0周期信号的前沿。
应该指出,在信号STPIPE+00产生的期间,对应于ROS数据字位2的PORDO2+10与定时信号TMIAD2+00和端口忙录信号PTOBSY-00一起使图3a的与门14-602将地址选择信号PTOSEL+00变为“1”。这规定或形成了地址选择器14-62的状态,使之选择来自CPUOVMMU19-26的33位地址作为加到奇和偶锁存器14-68和14-72上的地址。
把启动流水线信号STPIPE+00加到图3b的环形计数器14-623,并在第二时钟信号MCLOCK+00的前沿送入第一位。如图4所示,其结果导致了信号PIPEOA+OA的产生。
启动流水线信号STPIPE+00的首次出现即确定了一个CPUO周期。把信号PIPEOA+OA作为时钟输入加到奇和偶地址锁存器14-68和14-72。把同样的信号也加到方框14-66
的第一级寄存器和译码电路,以及交换多路器数据寄存器14-70。在信号PIPEOA+OA的前沿,选通锁存器14-68和14-72;在该信号的后沿,让这些锁存器存储由CPU0 VMMU14-26产生的超高速缓冲存储器请求地址。即如果原地址为奇地址,则偶地址锁存器14-72存储由增量电路14-64预先增1的偶地址。把未增1的奇地址存储在奇地址锁存器14-68中。
把锁存器14-68和14-72的奇和偶地址的内容加到奇和偶目录存储器14-74和14-76中。设所需要的数据位于超高速缓冲存储器中,目录存储器14-74和14-76读出级和列信号,该信息指出了所要求的数据在各自的缓冲存储器14-88和14-90中所在的地址。方框14-66的译码电路产生适当的目录读出信号。根据信号PIPEOA+OA把它存入可编程序阵列逻辑输出寄存器中。这就完成了由第一流水线级执行的操作。
从图4可见,在信号PIPEOB+OA的前沿把目录级和列信息装入第二流水线级的奇和偶地址寄存器14-80和14-84中。这个信号是由环形计数器14-632根据第三个时钟信号MCLOCK+00而产生的。这里未用根据第二个时钟信号MCLOCK+00产生的PIPMOA+OB信号。
与此同时,偶和奇地址寄存器由信号PIPEOB+OA打入信息,方框14-86的第二级命令寄存器和译码电路译码命令字,从而产生左和右交换信号SWAPLT+00和SWAPRT+00,加到交换多路器14-92上。把由方框14-86的电路产生的交换信号以及其它信号,用信号PIPEOB+OA把它们存入可编程序阵列逻辑输出寄存器。
把从奇和偶缓冲存储器14-88和14-90读出的奇和偶数据
字,按照信号SWAPLT00和SWAPRT+00的规定,通过交换多路器14-92进行转移。同时,方框14-86还产生左半字信号和右半字信号POLDDT-OL和POLDDT-OR,使得时钟信号PIPEOB-OB把单字或双字存入CPU0数据寄存器14-94。然后,在微程序控制下把该数据字传送到CPU子***14-2。
从图3b看出,信号PIPEOB-OB与图4的信号PIPEOB+OB相位相反,它是由环状计数器14-632根据第四个时钟信号MCLOCK+00产生的。这就完成了第二流水线级的操作。
从图4可见,在处理CPU1子***14-4的超高速缓冲存储器的主存储器请求中,第一和第二流水线级执行相似的操作系列。即在时间T3通过与非门14-624把信号PICARD-00强制到二进制“0”来产生第二启动流水线信号STPIPE+00。在定时间隔T4中,当把用于CPU0超高速缓冲存储器请求的缓冲存储器地址存入寄存器14-80和14-84时,把来自CPU1子***14-4的超高速缓冲存储器请求的奇和偶地址锁存到奇和偶地址锁存器14-68和14-72中。
其次,在另一个超高速缓冲存储器命中的情况下,目录存储器14-74和14-76读出级和到信息,该信息指出了要求数据在奇和偶超高速缓冲存储器的缓冲存储器14-88和14-90中的地址。根据信号PIPEOB+OA把这个信息装入奇和偶地址寄存器14-80和14-84。同时,方框14-86的电路通过命令译码产生左和右交换信号SWAPLT+00和SWAPRT+00,以及信号PILDDT-OL和PILDDT-OR。
结果是把从奇和偶缓冲存储器14-80和14-84读出的数据
字和经过交换多路器14-92转换的数据字由时钟存入CPU1数据寄存器14-96中。这就完成了第二超高速缓冲存储器请求的处理。
现在假设FIFO子***14-10要求服务,这将导致产生第三个启动流水线信号STPIPE+00。这个周期可由上述两类请求的任一个来得出。
根据本发明,不管何时,只要有一个空间的流水线级就可为FIFO子***14-10服务。当CPU0 ROS数据位2是“0”时,在时间T1中出现空间流水线级;或当CPU1ROS数据的位2是“0”时,在时间T3出现。这启动在这些时间为之服务的FIFO子***14-10。所以当相应的CPU子***没有申请超高速缓冲存储器周期时,FIFO周期出现在时间2和时间4。
在图4中,假设CPU0子***14-2和CPU1子***14-4及利用下面的T1和T3时间片/周期。当FIFO子***14-10产生一个超高速缓冲存储器写修改请求时,则超高速缓冲存储器请求地址源是来自电路14-11所给出命令的FIFO地址部分。也就是说,规定或形成地址选择器14-62的状态,以把该地址传送到奇和偶锁存器14-68和14-72中。
当把来自FIFO子***电路14-11的数据存入方框14-70的交换寄存器后,同时信号PIPEOA+OA把该信息存入该锁存器中,通过来自FIFO子***14-10的信号(即地址位22)对方框14-70的可编程阵列逻辑电路规定状态,以精确地将左和右两半数据字併成一个,然后用信号PIPEOA+OA的前沿把它们存入交换寄存器。
如图4所见,在命中的情况下,信号PIPEOB+OA把级和列信息装入奇和偶地址寄存器14-80和14-84中,它们指出了要
修改的数据在奇和偶超高速缓冲存储器的缓冲存储器14-88和14-90中的地址。同时,把修改数据存入数据寄存器14-82。然后,在方框14-86的译码电路产生的写信号控制下,把修改数据写入奇和偶缓冲存储器14-88和14-90。从图3c可看出,在时间T1(即信号TIMEO1+00=1)中,当信号PORDO2+10是“0”时,方框14-660的线路使信号DOAFIF+00变为二进制“1”。从图4可见,根据时钟信号MCLOCK+00,信号DOAFIF+00使信号CYFIFO+00变为二进制“1”。把信号CYFIFO+00加到方框14-11的FIFO电路,使内部FIFO计数器电路递增,这就完成了在FIFO子***14-10内所存储的请求的处理。这也完成了超高速缓冲存储器子***14-6的FIFO请求的处理。
假设在下一个FIFO周期中,FIFO子***14-10提供一个替换请求,它将使图3b的与非门14-626强信号FIUPOT-10变为“0”。结果产生了第四个启动流水线信号STPIPE+00。在这种情况下,当按照CPU超高速缓冲存储器请求把该请求最初送向***总线12时,RAR寄存器14-12已经装入数据。因此,超高速缓冲存储器子***14-6执行一个相似的操作系列。
应当指出,当信号PORDO2+00或PTOBSY-10是“0”,并且信号PIRDO2+10或PTIBSY-10是“0”时,FIFO周期是在时间T1和时间T3的通过信号DOAFIF+00分别启动的。这导致FIFO周期在时间T2和T4出现。在每个情况下,当两组信号(即PORDO2+10,PTOBSY-10和PIRDO2+10,PTIBSY-10)是“1”时,这将禁止产生信号SLFIFO+OA或信号SLFIFO+OB,从而禁止产生
FIFO周期。这样,当获得时间片/周期的CPU子***正在利用该周期时,FIFO周期被废弃。
在最坏的情况下,在FIFO子***14-10中至多可以堆积两个请求。这样,如上所述,像图4中所示的那样,当FIFO子***14-10存满数据时,则最多可以一前一后产生两个FIFO周期。本发明的装置保证以最高的速率从***总线12接收请求,使得有足够的空间流水线级为FIFO子***14-6服务。这是通过使每个CPU子***每隔一个微指令/固件逻辑单元利用一个超高速缓冲存储器周期来实现的。对于CPV子***14-2,在每个时间T1读出的隔个微指令字读出可以规定一个超高速缓冲存储器请求。对于CPU子***14-4也是同样,在每个时间T3读出的隔个微指令字也规定一个超高速缓冲存储器请求。这种方式中,超高速缓冲存储器子***可以无冲突或无争夺地处理来自若干个源的超高速缓冲存储器请求。
应该知道,当超高速缓冲存储器子***14-6根据一个CPU超高速缓冲存储器请求检测到一个未命中情况时,这将使接口区电路14-1把端口电路置为忙录状态(即把信号PTOBSY-10或PTIBSY-10置为“0”)。把这依次送回到CPU子***,使其停止它的操作。因为这种操作与了解本发明无关,故将不做进一步的讨论。
从上所述可以知道本发明是如何能够快速处理来自多源的超高速缓冲存储器请求的。它能在无冲突的基础上使得多处理机***的各个不同的子***分时使用一个超高速缓冲存储器。这使得当一个源所请求的数据不在超高速缓冲的存储器中时,能够继续处理来自其它源的超高速缓冲存储器请求。
附录
通过下面的布系表示式给出用于产生图2信号的逻辑式。
3.*P1LDDT-OL=除了
CPUNUM=CP NOM之外与1相同。
4.*P1LDDT-OR=除了
CPUNUM=CPUNUM之外与1相同。
*这些信号与信号PIPEOB+OA是同步的。
7.CPUCYL=PORO02·TM1AD2+P1ROO2·TM3AD4=PTOSEL+00+PT1SEL+00。
8.CPUNUM=P1RDO2·TM3AD4=PT1EL+00。
9.
CPUNUM=PORDO2·TM1AD2=PTOSEL+00
10.POMSYNCH+00=DATA AYAIL·TIME01+
PORD15·TIME01
这里DATA AVAIL=POLDDT-OL·POLDDT-OR。
11.P1MSYNCH+00=DATA AYAIL·TIME03+
PORD15·TIME03
这里DATA AVAIL=PILDDT-OL·PILDDT-OR。
*这些信号与信号PIPEOB+OA是步。
逻辑式各项说明
1.DBWDRD=由ROS的数据位4=1和ROS的数据位5=0定义的双字读命令(上述的位值是由方框14-66的译码电路产生的),它与信号PIPEOA+OA同步。
2.CPUNUM=由方框14-66的电路产生的CPU号码(CPU0或CPU1)信号,它与信号PIPEOA+OA同步。
3.CPUCYL=方框14-66的电路根据信号PTOSEL+00和PTISEL+00产生的CPU周期信号,它与信号PIPEOA+OA同步。
4.EVNHIT=由偶目录存储器14-76产生的命中信号,加到方框14-86的译码电路上。
5.CMAD22=在选择器14-62的输出产生的超高速缓冲存储器的存储器地址位22。
6.CMAD23=在选择器14-62的输出产生的超高速缓冲存储器的存储器地址位23,它规定把数据字装到数据寄存器14-94或14-96的哪一半(左或右)。
7.FIAD17=来自FIFO子***14-11的FIFO地址位17,它确定哪个CPU接收替换数据。
8.FIDBWD=来自FIFO子***14-11的FIFO双字命令位,它规定何时把该数据转换回两个字。
9.FISHBA=来自14=11的FIFO第二半总线周期应答信号,它规定:FIFO子***要求一个超高速缓冲存储器周期,以便处理在第二半总线周期(SHBC)从I/O设备或存储器接收的数据。
10.ODDHIT=由奇目录存储器14-74产生的命中信号,加到方框14-86的译码电路。
11.RPMREF=由RAR14-12提供的存储器访问信号,它使之考虑任何例外的情况。
12.RPAD22=来自RAR14-12的替换地址位22。
那些本领域的技术人员应该知道,对本发明提出的方案可以做许多变化。例如,可以改变***定时,比如对某子***可以分配不同的时间片,也可以改变ROS存储器14-24和14-44的编码使之利用不同的周期(比如每个第三,第四等)。还可改变位数和超高速缓冲存储器宽度(即处理单字双或四倍长字)。对本领域的技术人员来说其它的变化也是明显的。
Claims (5)
1、一种超高速缓冲存储器***,通过一组存取单元对超高速缓冲存储器单元提供并行存取,其中所述的每个存取单元,按照对所述超高速缓冲存储器单元的存取要求,给出一个主存储器单元的地址指示,所述***的特征在于:
一个定时和控制装置(14-60),用于同步所述存取单元对所述超高速缓冲存储器单元的存取,使得在一次只允许一个所述的存取单元起始访问所述的超高速缓冲存储器单元;
一个第一级(14-68,70,72),用于接收地址指示并检索对应地址指示的所述超高速缓冲存储器单元的目录(14-74,76),如果检索成功,给出代表在该超高速缓冲存储器(14-88,90)中所存对应数据的位置的输出信号;
一个第二级(14-80,82,84,92),用于接收上述输出信号并对其做出响应,访问由上述输出信号表示的在该超高速缓冲存储器(14-88,90)中的单元;
其中所述的定时和控制装置同时地允许一个所述的存取单元去访问所述第一级,而另一所述存取单元快速地跟随所述目录的成功检索去访问所述第二级。
2、如权利要求1的超高速缓冲存储器***,其特征进一步在于:
一个与每个所述存取单元相连的地址选择装置,用于接收所述地址指示;并且其中
所述定时和控制装置与所述存取单元和所述地址选择装置相连接,使得所述地址选择装置向所述第一级传送由所述存取单元之一提供的地址指示,该存取单元是被所述定时和控制装置允许对所述第一级进行访问的那一个存取单元。
3、如权利要求1的超高速缓冲存储器***,其特征进一步在于:
所述定时和控制装置通过同步其各自的时钟电路(14-22,14-42),来同步每一存取单元所进行的所述访问,使所述存取单元能够改变对所述超高速缓冲存储器单元的起始访问间隔。
4、如权利要求3的超高速缓冲存储器***,其特进一步在于:
一个附加存取单元(14-10),至少所述被同步的存取单元之一被编程为选择性地放弃其访问间隔中的一个,以允许所述附加存取单元对所述超高速缓冲存储器单元的超始访问。
5、如权利要求4的超高速缓冲存储器***,其特征进一步在于:
所述被同步的存取单元是CPU子***,且所述附加存取单元为一FIFO子***,用于提出对所述超高速缓冲存储器单元进行访问的附加请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 85107692 CN1021143C (zh) | 1985-10-19 | 1985-10-19 | 多处理机公用的流水线超高速缓冲存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 85107692 CN1021143C (zh) | 1985-10-19 | 1985-10-19 | 多处理机公用的流水线超高速缓冲存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN85107692A CN85107692A (zh) | 1987-05-06 |
CN1021143C true CN1021143C (zh) | 1993-06-09 |
Family
ID=4795731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 85107692 Expired - Lifetime CN1021143C (zh) | 1985-10-19 | 1985-10-19 | 多处理机公用的流水线超高速缓冲存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1021143C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE0403128D0 (sv) * | 2004-12-22 | 2004-12-22 | Xelerated Ab | A method for a processor, and a processor |
WO2015096002A1 (zh) * | 2013-12-23 | 2015-07-02 | 华为技术有限公司 | 分配存储空间的方法、装置和控制器 |
-
1985
- 1985-10-19 CN CN 85107692 patent/CN1021143C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN85107692A (zh) | 1987-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0176972B1 (en) | Multiprocessor shared pipeline cache memory | |
KR920008430B1 (ko) | 처리 판독 메모리 장치 | |
EP0009938B1 (en) | Computing systems having high-speed cache memories | |
US6173369B1 (en) | Computer system for processing multiple requests and out of order returns using a request queue | |
US3786427A (en) | Dynamic address translation reversed | |
US4136386A (en) | Backing store access coordination in a multi-processor system | |
JP2809962B2 (ja) | 資源管理方式 | |
AU628529B2 (en) | Method and means for arbitrating communication requests using a system control unit in a multi-processor system | |
US4392200A (en) | Cached multiprocessor system with pipeline timing | |
US7290116B1 (en) | Level 2 cache index hashing to avoid hot spots | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
CN1652092A (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
CN1397877A (zh) | 据物理分页指针比较结果转送数据的装置及方法 | |
US10789194B2 (en) | Techniques for efficiently synchronizing data transmissions on a network | |
CN1140869C (zh) | 一种环绕式缓冲器以及在其中确定项目顺序优先级的方法 | |
CN1287296C (zh) | 减少快取储存器标签阵列存取动作的***及其方法 | |
US6463514B1 (en) | Method to arbitrate for a cache block | |
US5655102A (en) | System and method for piggybacking of read responses on a shared memory multiprocessor bus | |
CN101061462A (zh) | 多处理器***以及其中的排他控制方法 | |
US5893163A (en) | Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system | |
JP2547949B2 (ja) | データ・コヒーレンシを維持する方法及びシステム | |
EP0279189B1 (en) | Storage system | |
JP2003256275A (ja) | バンク競合決定 | |
CN1021143C (zh) | 多处理机公用的流水线超高速缓冲存储器 | |
CN1052562A (zh) | 具有单比特置位和复位功能的主存储器插板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |