多处理机公用的流水线超高速缓冲存储器.pdf

上传人:111****112 文档编号:965471 上传时间:2018-03-21 格式:PDF 页数:35 大小:1.41MB
返回 下载 相关 举报
摘要
申请专利号:

CN85107692

申请日:

1985.10.19

公开号:

CN85107692A

公开日:

1987.05.06

当前法律状态:

终止

有效性:

无权

法律详情:

专利权的终止(专利权有效期届满)申请日:1985.10.19公告日:1993.6.9|||授权||||||公开

IPC分类号:

G06F9/30

主分类号:

G06F9/30

申请人:

霍尼韦尔信息系统公司

发明人:

詹姆斯·W·基利; 索马斯·F·约斯

地址:

美国马萨诸塞州02154沃尔瑟姆

优先权:

专利代理机构:

中国国际贸易促进委员会专利代理部

代理人:

栾本生

PDF下载: PDF下载
内容摘要

一种超高速缓冲存储器,具有可由一组源共亲的两级流水线,这组源包括两个独立工作的中央处理单元(CPUS)。在该缓冲存储器中包括一个装置,用来将交替的时间片分配给两个CPUS,使它们的操作偏移一个流水线级。使得当一个流水线级为一个CPU执行目录检索时,另一个流水线级则为另一个CPU执行数据缓冲器读出。每个CPU的程序都设计得使所用的时间片少于所分配到的时间片,于是,当流水线级被其它源的请求处理占满时,这些处理单元能够无冲突地操作。

权利要求书

1: 一种数据处理系统包括: 一组数据请求源,每个的作用是产生数据的存储器请求,每个请求包括一个地址; 一个连接到所述数据请求源的流水线型的超高速缓冲存储器单元,用于接收所述的存储器请求,所述的单元包括: 连接到每个所述源的定时和控制装置,用于同步这些源与所述超高速缓冲存储器单元间的操作,所述的定时和控制装置产生信号序列,每个序列定义一个时间间隔数,对所述的每一个源至少分配一个不同的间隔; 连接到所述定时和控制装置的第一流水线超高速缓冲存储器级,在所述的一个时间片中,定时和控制装置根据所述请求地址来规定所述流水线级的状态,这个地址是在一个所述分配的时间片中从一个所述的源接收的,当数据存储在超高速缓冲存储器里时,产生用于存取所述请求数据的信号; 连接到所述定时和控制装置的第二流水线超高速缓冲存储器级,在所述的另一个时间片中,所述的定时装置规定所述第二流水线级的状态,以便接收所述信号,并存取传送到请求源的指定数据,使之能无冲突地处理来自所述多个数据请求源的请求。
2: 权利要求1的系统,其中所述超高速缓冲存储器单元还包括: 连接到所述每个源的地址选择装置,用于接收所述请求的地址,其中所述定时和控制装置包括: 连接到所述的一组数据处理源和所述地址选择装置的地址选择逻辑 装置,所述地址选择逻辑装置是根据从所述源接收的超高速缓冲存储器请求信号工作的,以产生用于规定所述地址选择装置状态的选择信号,以便把在所分配的一个时间片中从所述的一个源接收的请求地址传送到所述第一流水线超高速缓冲存储器级。
3: 权利要求2的系统,其中所述的定时和控制装置还包括: 主定时装置,其作用是重复产生信号序列,每个序列规定了一串所述的时间间隔; 连接到所述主定时装置和所述每个源的流水线启动信号发生装置,所述的流水线启动信号发生装置包括:一组周期产生装置,每个都连接到一个所述不同的源和主定时装置上;连接到所述的一组周期产生装置和每个流水线级的流水线定时装置; 所述的周期产生装置用来根据超高速缓冲存储器请求,在所分配的时间间隔中产生启动流水线信号,该超高速缓冲存储器请求规定了该组数据处理源所要求的服务种类; 所述的流水线定时用来根据每个启动流水线信号产生一个预定的流水线相位信号序列,它由所述的一个信号序列偏移而得,所述的各个不同的流水线相位信号规定了每个所述流线级的状态,以执行在一个超高速缓冲存储器操作周期中完成一个超高速缓冲存储器请求处理所要求的那些操作。
4: 权利要求3的系统,其中所述的系统还包括一个系统总线、一个主存储器和一组共同连接到所述系统总线的数据处理装置,所述的一组数据处理源包括若干中央处理单元子系统和一个FIFO子系统,所述的FIFO子系统连接系统总线,每个子系统至少连接所述的周期产生装置中不同的一个,每个所述的中央处理单元子系统用来在每个所分配的时间间隔中规定一个对应的周期产生装置的状态,以启动一个从所 述超高速缓冲存储器单元取出数据的读操作周期,所述的FIFO子系统用来在未分配的时间间隔中规定一个不同的周期产生装置的状态,以启动超高速缓冲存储器周期,去处理替换和修改从所述系统总线接收的数据。
5: 权利要求1的系统,其中所述第一和第二流水线级中的第一流水线级包括: 连接到所述定时和控制装置的目录存储器装置,所述的目录存储器装置具有用于存储目录地址的一组单元,它规定了数据在所述超高速缓冲存储器装置中存储的位置,还有一个用于产生命中信号的装置,这些命中信号表示所要求的数据是否存储在所述的第二级内; 连接到所述目录存储器装置、所述定时和控制装置以及每个所述数据处理源的第一级命令译码装置,在一个所分配的时间间隔中对所述第一级命令译码装置规定状态,以产生使所述目录存储装置读出所述信息的控制信号,并产生用于从第二级存取请求数据的所述命中信号。
6: 权利要求5的系统,其中所述的第二流水线级包括: 缓冲存储器装置,具有一组由对应的目录地址所确定的存储单元; 连接到所述缓冲存储器装置、所述定时和控制装置、以及每个数据处理源的输出数据寄存器装置; 连接到所述缓冲器装置、定时和控制装置、以及第一级命令译码装置的第二级命令译码装置,在所述的另一个时隙间隔中对所述第二级命令译码装置规定状态,以产生使所述缓冲存储器装置接受所述信息的控制信号,并读取存储在所述输出数据寄存器装置中的要传送到所述的一个源去的所请求的数据。
7: 权利要求1的系统,其中所述数据处理源的每一个源包括: 接到所述定时和控制装置的时钟发生装置,用于接收使所述时钟发生装置的操作与所述超高速缓冲存储器单元同步的定时信号; 连接到所述时钟发生装置,以及所述定时和控制装置的微程序控制装置,在操作的固件周期,所述微程序控制装置存储和提供微指令,把所述微指令的预定字段进行译码,以规定在每个分配的时间间隔中什么时候由其中一个对应的数据处理源提出超高速缓冲存储器请求。
8: 权利要求7的系统,其中只是把一个所述数据处理源的微程序控制装置中所述预定微指令的预定字段进行译码,以便在分配给每一个数据处理源的时间间隔所确定的周期中提出一个超高速缓冲存储器请求。
9: 权利要求8的系统,其中每一个所述数据处理源的时钟发生装置都规定所述微程序控制装置的状态,以便在所分配的时间间隔中提供所述的微指令,该时间间隔与另一个所述数据处理源间有一个预定数目时间间隔的偏移,使之能够并行处理来同许多所述数据处理源的请求。
10: 一种数据处理系统包括: 一组数据处理子系统,每个都产生存取数据的的存储器请求,每个请求包含一个地址; 连接到每个所述数据处理子系统的一个流水线超高速缓冲存储器子系统,用于接收所述数据请求,所述超高速缓冲存储器子系统包括:连接到每个数据处理子系统的定时和控制装置,用于使所有数据处理子系统的操作与所述超高速缓冲存储器子系统同步,所述定时和控制装置产生一些时钟信号周期,每一个都规定了一个对应数目的时间片,把预定数目的时间片分配给对应数目的所述子系统;输入选择装置用于在一个相应的配给时间片中,从一个所述子系统中选择一个请求地址;连接到所述定时和控制装置的第一流水线超高速缓冲存储器级,在各个对应数 目的子系统所利用的各个时间片中,通过所述的定时和控制装置来规定所述流水线级的状态,以根据来自于一个子系统的请求来产生地址信号,它规定了请求数据存储的地方;连接到所述定时和控制装置、所述数目子系统和所述第一流水线超高速缓冲存储器级的第二超高速缓冲存储器流水线级,用于接收所述地址信号,在随后的一个存储所述地址信号的时间片中规定所述第二超高速缓冲存储器流水线级的状态,并读取所规定的用于传送到一个对应子系统去的数据。

说明书


本发明涉及计算机系统和多处理机系统。更具体地说,本发明是涉及含有一个超高速缓冲存储器系统的多处理机系统。

    众所周知,超高速缓冲存储器不论对于小的还是大的,单处理机还是多处理机系统,在增加其解题能力上都一直具有很高的效力。在多处理机系统中,通常用两种方式来构成超高速缓冲存储器。第一种是公用超高速缓冲存储结构,在此中一个或几个主存储器模块利用一个超高速缓冲存储器。系统里的所有处理机都可对它进行存取。第二种结构是专用超高速缓冲存储装置,在此中的超高速缓冲存储器只服务于单个处理机。Michael    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子系统包括一个只读存储器(RDS)和一个16位的ROS数据输出寄存器(ROR)(即ROS14-24,14-44和ROR14-25,14-45)。

    在每个周期的开始,每个ROS所处的状态使之能把一个16比特的微指令字读到它的数据输出寄存器(RDR)中,该微指令定义了该周期中要执行的操作种类(固件步骤/程序中的逻辑单元)。在每个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的可编程序规律逻辑部件构成的,这两个部件都是由AclvancedMicro    Devices公司制造的。

    第一和第二级命令寄存器,以及方框14-66和14-86的译码电路,分别利用了标号为AmpAL16R4A和AmpAL16R6A的由钟同步的可编程序矩阵逻辑部件,它们是由Advanced    Micro    Devices公司制造的。这些电路产生要求的选择、图2中所示的读和写控制信号(即信号SWAPLTtoo,SWARRTtoo    POLDOT-OL,PILDDT-OL,POLDDFOR,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。该图还示出了RDR寄存器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分别表示为CPUO子系统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的FIFO周期选择逻辑电路包括一对非或门14-662和14-664、一对与门14-666和14-668、或非门14-670、非与门(NAND)14-672和一个如所示那样串联的钟同步的D型寄存触发器级14-672这些电路在时间片/间隔TIMEO2和TIMEO4产生FIFO周期信号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”时,这表示PU0子系统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-OD把单字或双字存入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的编码使之利用不同的周期(比如每个第三,第四等)。还可改变位数和超高速缓冲存储器宽度(即处理单字双或四倍长字)。对本领域的技术人员来说其它的变化也是明显的。

多处理机公用的流水线超高速缓冲存储器.pdf_第1页
第1页 / 共35页
多处理机公用的流水线超高速缓冲存储器.pdf_第2页
第2页 / 共35页
多处理机公用的流水线超高速缓冲存储器.pdf_第3页
第3页 / 共35页
点击查看更多>>
资源描述

《多处理机公用的流水线超高速缓冲存储器.pdf》由会员分享,可在线阅读,更多相关《多处理机公用的流水线超高速缓冲存储器.pdf(35页珍藏版)》请在专利查询网上搜索。

一种超高速缓冲存储器,具有可由一组源共亲的两级流水线,这组源包括两个独立工作的中央处理单元(CPUS)。在该缓冲存储器中包括一个装置,用来将交替的时间片分配给两个CPUS,使它们的操作偏移一个流水线级。使得当一个流水线级为一个CPU执行目录检索时,另一个流水线级则为另一个CPU执行数据缓冲器读出。每个CPU的程序都设计得使所用的时间片少于所分配到的时间片,于是,当流水线级被其它源的请求处理占满时,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1