CN85109251B - 先行控制的数据处理系统 - Google Patents

先行控制的数据处理系统 Download PDF

Info

Publication number
CN85109251B
CN85109251B CN85109251A CN85109251A CN85109251B CN 85109251 B CN85109251 B CN 85109251B CN 85109251 A CN85109251 A CN 85109251A CN 85109251 A CN85109251 A CN 85109251A CN 85109251 B CN85109251 B CN 85109251B
Authority
CN
China
Prior art keywords
instruction
main memory
impact damper
signal
central controller
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
CN85109251A
Other languages
English (en)
Other versions
CN85109251A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN85109251A publication Critical patent/CN85109251A/zh
Publication of CN85109251B publication Critical patent/CN85109251B/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
    • 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
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

数据处理系统至少由一个主存贮器与中央控制器组成。主存贮器存放中央控制器要执行的指令。主存贮器内部包括一个偶数部分缓冲器与奇数部分缓冲器,分别用来临时存放偶数地址与奇数地址的指令。这些经缓冲器的预取指令按序从这两个缓冲器交替地送往中央处理器。

Description

先行控制的数据处理系统
本发明及具有先行控制功能的数据处理系统,具体地说,涉及利用预取的指令按先行控制方法进行工作的数据处理系统。
数据处理系统内中央控制器(CC)的处理能力,例如处理速度,是由各种因素决定的。特别是在所谓诺依曼式数据处理系统中,数据处理系统的处理时间在很大程度上取决于用于数据处理系统中的主存贮器(MM)进行访问的存取时间。为了缩短高速处理时的存取时间,曾提出了各种技术。其中之一是采用分级存贮器。典型的分级存贮器技术是采用高速缓冲存贮器,它大大提高数据处理系统的工作速度。然而,从软件设计自由度的角度来看,高速缓冲存贮器法并非上策,因为要考虑到各种各样的条件限制。特别是所需求的每一组数据是否实际存在高速缓冲存贮器内,变得至关重要。通常将它称为“命中率”。此外,高速缓冲存贮器必须用高速存贮器元件组成,这样就得增加有关数据处理系统的成本。
鉴于上述问题,长期以来希望能实现一种高性能价格比的数据处理系统,即一种能够以极短的指令取数时间与很高的处理速度进行工作的廉价的数据处理系统。
众所周知,为了提高访问主存贮器(MM)的速度,在数据处理系统中采用了一种称之为存贮器分体的方法,这种方法的典型例子见授予Willefft的第3,866,180号美国专利和日本特许公报昭51-4382号。另外,为了提高中央控制器(CC)的处理速度,在数据处理系统中采用一种称之为先行控制的方法,如日本许公报昭45-16193就提出了一种先行控制方法。由于一串指令通常在主存贮器(MM)中都是逐条按序存放,先行控制法采用了预取的指令。将存贮器分体法与先行控制法相结合,对于提高整个数据处理系统的处理速度,也许是最合适的。
在现有技术中,实现先行控制有两种已知的方法,每种方法在以后还要详述。然而,这两种方法都有缺点。第一种方法的缺点是,中央控制器(CC)的工作速度越高,先行控制的效能越差。第二种方法的缺点是,主存贮器(MM)与中央控制器(CC)之间用作存贮器总线的联线太多。
因此,本发明的目的是提供一种具有对已知的先行控制加以改进的先行控制的数据处理系统,从而排除了上述现有技术中的缺点。
为了达到上述目的,根据本发明,主存贮器(MM)是这样构成的:首先,主存贮器MM主要由地址为偶数的偶数存贮器体与地址为奇数的奇数存贮器体组成。偶数存贮器体与奇数存贮器件可彼此独立工作。其次,偶、奇数存贮器体各自均有缓冲器用来存放预取的指令,即分别有偶数预取缓冲器与奇数预取缓冲器。在中央控制器(CC)发出取指命令之前每个缓冲器预先按序存入来自主存贮器的指令序列。随后,装在主存储器(MM)内的存贮器控制逻辑电路动作,将偶、奇数缓冲器中的指令交替地送给中央控制器(CC)。
下面是附图说明。
根据以下所述实施方案的介绍并参阅附图,对本发明的目的与特点将会有进一步的了解。其中:
图1是根据以往的先行控制法工作的数据处理系统;
图2是根据本发明提出的实验性方法工作的数据处理系统;
图3是说明根据以往的先行控制法工作时存贮器存取的时序图;
图4是说明采用本发明时存贮器存取的时序图;
图5是根据本发明提出的先行控制法工作的数据处理系统;
图6A、6B、6C与6D为本发明提出的主存贮器的框图;
图7A与7B是本发明提出的示于图5、图6A~6D中存贮器的详细电路的范例;
图8是说明图7A、7B中所示主存贮器工作的时序图;
图9是说明图6B、6D与图7A中所示定时控制电路工作的时序图;
图10是图7B中预取指令地址计数器的详细电路范例;
图11是图6B中所示预取指令地址计数器的详细范例。
最佳实施方案的介绍如下:
在没有介绍本发明的实施方案之前,先参阅有关附图,讨论一下有关技术及其缺点。
图1是根据现有的先行控制法工作的数据处理系统。在图1中主存贮器(MM)11、中央控制器(CC)12,以及通道控制器(CHC)13共同联接到存贮器总线14,控制器(CHC)又接到共用总线17,它挂有象磁带存贮器18与软盘驱动器19这一类的各种输入输出设备(I/O)。中央控制器(CC)12至少包括一个指令预取缓冲器(IPB)15与一个存放操作数的寄存器(OPREC)。缓冲器15的容量为(n+1)个字(o~n)。
根据现有技术的第一种先行控制法,指令预取缓冲器15装在中央控制器(CC)12内。采用此方法时,只要预取缓冲器15中存有先行的指令,就可以保持中央控制器(CC)12的高速工作,然而,随着中央控制器(CC)12处理速度的提高,预取缓冲器15与主存贮器(MM)11之间的信息来往也变得十分频繁。在此种情况下,存贮器总线处于这么一种状态:总线只忙于应付缓冲器(IPB)15与主存贮器(MM)11之间的信息交往。结果,预取缓冲器15不再接收预取的指令。
图2是根据本发明提出的实验性先行控制法工作的数据处理系统。图2中与图1相同的各部件采用了相同的编号或符号。以后在其它的图中也是这样。新加的部件有奇数存贮器体(O.MB)21与偶数存贮器体(E.MB)22(两者均在主存贮器(MM)11之内)、偶数存贮器总线14-E以及奇数存贮器体14-O。由于采用两组存贮器总线,即偶数与奇数存贮器总线14E与14-O,上述存储器总线的忙碌状态(参阅图1中14)得以缓和。在主存贮器(MM)中,这两个存贮器体,即奇数与偶数存贮器体(MB)21与22,分别有一组奇数与偶数存贮器总线14-O与14-E。那些地址号码为偶数的规定为偶数存贮器体,地址号码为奇数的规定为奇数存贮器体。这样,每组存贮器总线14-E与14-O)的信息流量为图1中存贮器总线14的一半。然而,这个实验性方法有上述已提及的缺点,其联线为图1系统所用的两倍。应当提出,每一组联线通常都包括一束一百条左右的并线。此外,每条联线两端通常都备有一个一百芯左右的联接器。这意味着图2的数据处理系统需要增大体积与提高成本,因此性能价格比很差。
图3是说明按现有技术的先行控制法工作时存贮器存取的时序图。
在图3所示的范例中,中央控制器(CC)前后相继发出两条装入指令。但应当懂得,如果前后相继发出一条装入指令与存数指令,存贮器的存联情况完全一样。在每个存贮器存取周期内,分段“e”表示中央控制器(CC)的所述机器周间。根据第一条装入指令,在时间2e内完成取指操作(INST FET CH),紧接着在时间2e内完成取数操作。在这个存贮器存取周期中,中央控制器(CC)执行完以符号“X”与“NOP”表示的操作。符号“X”表示计算要取下一个操作数的地址,符号“NOP”表示无操作,即中央控制器不作任何算术运算。上述关于第一条装入指令的存贮器存取的说明,对于第二条装入指令的存贮器存取也完全有效。众所周知,在诺依曼型数据处理系统中,按装入指令从主存贮器读数以及按存数指令将数据写入主存贮器,通常约占中央控制器(CC)参与工作的全部操作的一半。根据上述理由可以知道,如果上述装入与存数指令能以比以往更高的速度完成,则数据处理系统的处理能力能够大大提高。一般地说,主存贮器(MM)的存取时间为2e或3e(如图3所示)。相反,根据本发明,在取指(INST FETCH)时主存贮器(MM)的存取时间缩短到1e。因此,根据本发明设计的数据处理系统,其吞吐率与处理速度可以大大提高。
图4是说明采用本发明的存贮器存取的时间图。这里不同的是,每个取指操作(INST FETCH)均在1e时间内完成,而每个取数操作(OP FETCH)在2e时间内完成,与图3一样。结果是,每条装入指令可在3e时间内完成,比采用以往技术完成同样操作所需的时间缩短了1e(=4e-3e)。此外,提高存贮器存取速度并没有使用昂贵的高速缓冲存贮器这一类专用设备。
图5是根据本发明的先行控制法工作的数据处理系统。它的特点是主存贮器(MM)11由奇数存贮器体21与偶数存贮器体22组成,这两个体分别与对应的预取指令缓冲器,即奇数预取指令缓冲器(O.PFIB)31与偶数预取指令缓冲器(E.PFIB)32,互相配合工作。上面曾指出,相应的奇数存贮器体21与偶数存贮器体22是按照偶数地址与奇数地址来划分的。
奇数预取指令缓冲器(O.PFIB)31旁边有一条奇数操作数通道33。同样,偶数预取指令缓冲器(E.PFIB)32旁边也有一条偶数操作数通道34。通常,指令都逐条按序存放,直到指令序列中遇到跳步指令为止。这意味着,对于如装入指令或存数指令这样的指令,有可能决定后面跟着的指令。相反,不可能决定下一个要用到的操作数,因为操作数不是按序而是随机存放的。因此,预取缓冲器,例如缓冲器31与32,对于操作数没有用处。换言之,操作数的处理都是实时的,分别通过操作数通道35与34,直接在存贮器体21、22与中央控制器(CC)12之间传送。
上面曾提及,象装入与存数这样的指令都是逐条按序存放的。因此,指令序列都是按序排列的。这就是说,指令序列交替地从存贮器21与22读出,交替地存入相应的预取指令缓冲器31与32。这样,当预取指令缓冲器31与32中有一个将存放的指令送往中央控制器(CC)12时,另一个缓冲器就向相应的存贮器体获取随后要执行的指令,并将它们存入。这些提供指令与取指令的操作都是同时进行的。因此,主存贮器(MM)的工作速度基本是采用现有技术的存贮器工作速度的两倍。如图4所示,这种主存贮器的高速工作方式使取指的操作时间从2e缩短到1e。主存贮器本身的工作速度通常在100~200毫微秒之间。由寄存器组成的预取指令缓冲器31与32的工作速度通常在10~20毫微秒范围之内。在这种情况下,如果主存贮本身能按这样高的速度进行工作,则预取指令缓冲器也许可以不要。然而,这种高速存贮器通常都很贵,不适合于商业化使用。
因此,缓冲器31与32中的预取指令,在存贮器控制逻辑电路(LNT)35与36控制下,交替地送给中央控制器(CC)12。
图6A、6B、6C与6D是按本发明设计的主存贮器框图,应当知道,图6A~6D中所示的框图在图5中只用方框21、22、31、35与36表示。图5中的中央控制器(CC)按序读取存在主存贮器中的指令,并按同样的次序执行。主存贮器(MM)包括奇数存贮器体(O.MB)21与偶数存贮器体(E.MB)22,它们分别由奇数与偶数地址确定。这些存贮器体21与22示于以前的图5与图6B、6D。存贮器体21与22分别配有奇数预取指令缓冲器(O.PFIB)31与偶数预取指令缓冲器(E.PFIB)32。缓冲器31与32最好由缓冲器对组成。即图6B中的31Ⅰ与31Ⅱ,以及图6D中的32Ⅰ与32Ⅱ。奇数预取指令缓冲器(31)的数目不限于图6B中所示的两个,它可以是三个或更多。图6D的偶数预取指令缓冲器(32)也是如此。
奇数预取指令缓冲器31对在中央控制器(CC)每次发出取指请求(IREQ)之前已从存贮器体21按序读出的各条指令进行存贮。偶数预取指令缓冲器(32)也是如此。
当中央控制器(CC)发出取指请求(IREQ)时,存贮器控制逻辑电路35与36控制预取指令缓冲器31与32,交替地发送有关的指令。
主存贮器里面没有监测电路。其中一个是奇数缓冲器监测电路(O.sup)107。电路107用来监测先行指令是否已经存放在奇数预取指令缓冲器37之中,并产生最终监测信息。另一个是偶数缓冲器监测电路(E.sup)108,其操作与上述107电路相仿。
电路107产生的最终监测信息以及电路108产生的最终监测信息,一方面反馈到主存贮器内部,一方面送到中央控制器(CC),分别为图6B与6D右下角的“O.BFUL”与“E.BFUL”所示。信息O.BFUL表示,奇数预取指令缓脉器31目前至少存有一条预取指令。同样,信息E.BFUL表示偶数预取指令缓冲器32目前至少存有一条预取指令。中央控制器(CC)则监视反馈信息(O.BFUL、E.BFUL),以决定是否在中央控制器(CC)内提前执行。
每次当中央控制器(CC)发生操作数读/请求时,主存贮器从中央控制器(CC)获得一个禁示预取指令信号“INH”。
每次当读取指令的地址发生不连续时,在发出取指请求(IREQ)之前主存贮器从中央控制器(CC)获得一个起动预取指令信号“IPST”,这样,主存贮器就开始预读指令的操作。
此外,主存贮器还从通道控制器(CHC)13获得访问通道请求信号“CHREQ”,以及从中央控制器(CC)或通道控制器(CHC)获得地址信息“ADRES”。
图6A~6D中的全部元件,除了存贮器体21、22以及预取指令缓冲器31、32以外,组成图5中的存贮器控制逻辑电路(35、36),它根据6A左侧所示的各种信号与请求作出响应。换言之,存贮器控制逻辑电路的作用好象是一个预读控制电路。存贮器控制逻辑电路(35、36)包括:一个中断排队电路(PRINT)101、非预取控制电路(NPRE)103、预读控制电路(ADR)105以及上述缓冲器监测电路(O.sup)107(均示于图6A)、定时控制电路(TIM)111、奇数选择控制电路(SEL)113、预取指令地址计数器(ADCOUNT)115、地址选择电路(ADSEL)117、输入选择器(ISEL)119、输出选择器(OSEL)121以及门(GT)123(均示于图B)。上述部件均属于奇数的部分。偶数部分中相同的部件示于图6C与6D。在图6D中,标号126表示一个数据选择器(DTSEL),为存贮器总线14选择一个读出的数据“RD”。“RD”正上方的字符“MOK”表示存贮器存取OK信号。在图6A与6B中,每个符号“Lsub”表示地址信息“ADRES”的最低位。
中断排队电路101(与102)处理访问通道请求“CHREQ”与操作数读/写请求“PREQ”,其优先级高于取指请求“IREQ”。非预取控制电路103与104在每次出现起动指令预取信号“IPST”时动作。具体地说,在下列这些情况均产生信号“IPST”:由于跳步指令使地址不连续时,出现不该预取的指令时,或者在预取指令缓冲器(31、32)中没有预取的指令时。预读控制电路105(与106)接收禁止指令预取信号“INH”,对每个操作数读/写请求都加以同样的信号,以保证在任何时候读数可以在2e时间内完成(参阅图4中的“OPFETCH”)。缓冲器监测电路107(与108)已经解释过,它的作用是监测预取指令缓冲器(31、32)的状态。定时控制电路111(与112)为有关的电路产生定时控制时钟脉冲。选择控制电路113(与114)决定预取的指令存放在预取指令缓冲器31Ⅰ是31Ⅱ,这是通过输入选择器119实现的。在另一方面,选择控制电路113(与114)还决定从预取指令缓冲器31Ⅰ还是31Ⅱ读取预取指令,这是通过输出选择器121实现的。预取指令地址计数器115按序确定读取有关指令的一系列地址。地址选择电路117产生地址,地址来自计数器115以确定预取指令,它还产生确定无需预取指令的地址;经过选择,地址也可以来自地址信息“ADRES”。这样,产生的地址访问存贮器体21。
在出现上述禁止指令预取信号“INH”时上述存贮器控制逻辑电路接收这个信号“INH”,并禁止将预取指令送到预取指令缓冲器31(32也一样)。
存贮器控制逻辑电路根据来自监测电路107(108也一样)的上述最终监测信息,将按照最终监测信息从存贮器体21(32也一样)读出的预取指令存入预取指令缓冲器31(32),并响应中央控制器(CC)发出的取指请求“IREQ”,将存放着的预取指令送给中央控制器(CC)。
上面已指出,预取指令缓冲器31(32也一样)最好由两个或更多个缓冲器组成,如缓冲器31Ⅰ与31Ⅱ(32Ⅰ与32Ⅱ也一样)。在这种情况下,存贮器控制逻辑电路一方面选择要存放读出预取指令的缓冲器(31Ⅰ或31Ⅱ),一方面选择其中一个缓冲器,从那里将存放着的预取指令送到中央控制器(CC)。
存贮器控制逻辑电路中预取指令地址计数器115(116也一样)将计数的地址逐个增量,从而能够按序从存贮器体21(22也一样)读出预取指令。
图7A与7B表示出了按本发明设计的图5、图6A~6D所示主存贮器的详细电路范例。应当知道,由于主存贮器的奇数部分实际上与其中偶数部分具有同样的结构,因此图7A与7B只示出了偶数部分。因此,图7A与7B的结构对应于前面的图6C与6D。同样的元件与信号均用了相同的标号与符号。
图8是说明图7A与7B所示主存贮器工作情况的时间图。
图9是说明图6B、6D与9A所示定时控制电路(TIM)工作情况的时间图。
主存贮器的工作过程如下。当主存贮器刚开始工作或者执行某种跳步指令时,取指请求“IREQ”跟在起动指令预取信号“IPST”的后面,落后e/2时间,如图8左上角所表。上面已提到,字符e表示一个机器周期(参阅图4)。时延e/2可从时钟Ⅰ与Ⅱ获得,这两者相位相差π。在最初阶段,存放在预取指令缓冲器32Ⅰ与32Ⅱ中的内容是无效的,因为这些都是以前存下来要执行的指令。因此,在这个时刻,所需的指令必须直接从存贮器体(E.MB)22读取。为此,需要初始化。例如,将要执行的指令的首地址放入预取指令地址计数器(ADCOUNT)116。然后将放入的首地址址增2。首地址已按地址信息“ADRES”的方式给出。应当注意的是,信息“ADRES”不仅指出预取指令的地址,它还指出其他无需预取的指令的地址。由累计数器(ACC)201与读出计数器(READ)202组成的缓冲器监测电路108,也由起动指令预取信号“IPST”将其复位,进行初始化。复位时,电路108发出命令,首先确定缓冲器32Ⅰ与此相应,由累加缓冲器指示计数器203与读出缓冲器指示计数器204组成的选择控制电路114,当存着的预取指令要读出时,首先确定缓冲器32Ⅰ。计数器201与202由时钟推动,计数器203与204由时钟Ⅱ推动。这样,当主存贮器进行初始化时,计数器201~204由信号“IPST”复位,地址计数器(ADCOUNT)116的内容预置为预取指令的首地址。此后不久,中央控制器(CC)就发出取指请求“IREQ”,并送到“与”门213。“与”门213是中断排队电路(PRINT)的一部分。由“IREQ”由“IREQ”选通的“与”门213的输出将电路(PRINT)112中的有关部件SR触发器217置位,从而产生一个信号“IACT”,表示请求“IREQ”现在已经有效。随后,定时控制电路(TIM)112受信号a的触发,此信号相应于触发器217的置位输出,信号a的波形如图9所示。出现在电路112中的信号b、c与d的有关波形分别示于图9。定时控制电路112还产生一个行地址选通定时信号“RAS.T”,读数指示信号“RDI”1经过延迟线DL7,以及列地址选通地址信号“CAS.T”,这些信号的波形也示于图9。信号“RAS.T”、“RDI”与“CAS.T”均送到存贮器体22,存贮器体22产生由来自地址选择电路118的地址确定的读出数据RD。读出数据RD经过“与”门124、“或”门以及数据选择器126。当主存贮器存取OK信号“MOK”回送到中央控制器(CC)时,控制器(CC)决定有关的请求“IREQ”目前已经结束。读出数据(RD)示于图8中的RD那一行。
相反,当产生操作数读/写请求“PREQ”时,预取操作必须停止。这是因为操作数读/写操作必须经过图5所示的操作数通道33或34以实时的方式完成。为了实现实时方式,预取操作必须这样进行,使得操作数读/写操作能立即开始。这样也保证了时间序列:e→2e→e→2e,其中每个操作数读/写操作在任何时候都必须在2e时间内完成。简言之,当产生操作数请求“PREQ”时,预取操作必须停止,以保证使用操作数请求“PREQ”所需的存贮器体。为此,系统中引入了一个禁止指令预取信号“INH”。每对“INH”与“PREQ”信号已在图8表示得很清楚。
即使有了信号“INH”,预取指令缓冲器(31与32)仍然处于全面预取指令的状态,如图8波形所示。图8的时间序列是在一定条件下产生的,即装入指令与存数指令连续、交替地从中央控制器(CC)发出,这是对于本发明最严重的情况。从图8的序列可知,将信号“LBACT”控制在刚刚产生每个信号“INH”之前产生。信号“IBACT”由触发器218产生,它由“与”门218的输出置位。在触发器218工作时,进行指令预取操作。“与”门214通过反相器在它的输入端接收信号“INH”。因此当出现信号“INH”时,或者信号“IBACT”已经产生,或者没有产生信号“IBACT”。由于信号“INH”与“IBACT”之间的时间关系,始终能保持取数周期,在2e时间内响应请求“PREQ”,如图4所示。
信号“PACT”表示,每个请求“PREQ”产生后经过时也e的延迟,响应操作数请求“PREQ”,正在进行操作数读/写操作,信号“PACT”由触发器216产生,它由“与”门212的输出置位。图7A中的信号“CHACT”由触发器215产生,它由“与”门211的输出驱动。信号“CHACT”表示,根据产生的通道访问请求“CHREQ”,通过控制器(CHC)13已投入工作。
这样,当信号“INH”送入主存贮器时,预取指令缓冲器(31或32)已经工作,缓冲器(31或32)的工作即将结束,因此,信号“PACT”可以跟在后面,上述时序关系不仅偶数部分必须保持,主存贮器的奇数部分也如此。这样,至少信号“INH”得共同送到主存贮器的器的奇数与偶数部分。当图8中出现下一个信号“INH”时,偶数部分中的信号“IBACT”则已产生,并将立即消失。这就保证了信号“PACT”的插入。换言之,每次产生请求“PREQ”时均保证有信号“PACT”产生,因为请求“PREQ”总是伴随信号“INT”。在这种情况下,请求“IREQ”控制得使请求在1e时间内执行完毕,然而,请求“IREQ”与信号“INH”在时序上没有关系。
上面已指出,信号“IBACT”必须在每次出现信号“INH”时消失,这是由“与”门214(图7A)来完成的。此时,如果出现读数请求“PREQ”,就获得有关读出数据RD(见图8中第二次出现的RD)。
图8的时序表明,首先是产生奇数部分的“IREQ”,随后开始出现信号“IACT”。每次发生请求“IREQ”均产生信号“IACT”,此此后有关指令的读取操作与信号“IBACT”同步完成。
在图7A中,累加计数器(ACC)201累计预取指令缓冲器(32Ⅰ,32Ⅱ)中任一个存有预取指令的次数。读出计数器(READ)202累计响应发出的请求预取指令缓冲器(32Ⅰ,32Ⅱ)中任一个向中央控制器(CC)输送正存指令的次数。计数器201每当触发器218产生信号“IBACT”时增1,该信号表示预取操作正开始。计数器202每当预取指令送往中央控制器(CC)时增1,它相当于这么一个事件,控制器(CC)正发生取指请求“IREQ”。因此,每接收一个“IREQ”计数器202增1。
计数器201与202均有2位计数单元组成,有2位输出。计数器201与202的总共4位输出送到数字比较器。如图7A所示,它由4个“异”门(EOR)、2个“或”门221与222组成。也就是说,数字比较器检出计数器201与202中计数值的差异。“与”门222产生信号“A”,当计数器201中的计数值大于计数器202时,变为逻辑“O”。这意味着,已存预取指令的数目之差为“2”。因此,预取指令缓冲器32Ⅰ与32Ⅱ均存满了预取指令。在这种情况下,信号“IBACT”应当消失,以停止指令预取操作。为此,逻辑值为“O”的信号“A”送到“与”门214。如果信号“A”不是逻辑“O”而是逻辑“1”,则缓冲器32Ⅰ与32Ⅱ还不到全满状态,因此可以继续进行指令预取操作。为此,逻辑值为“1”的信号“A”得“与”门214打开,产生信号“IBACT”。当计数器201与202共同由起动指令预取信号“IPST”置位时,计数器201与202的计数值之差为“0”,因此,由于这两个缓冲器未存有数据,缓冲器32Ⅰ与32Ⅱ开始工作。当数值从“0”变为“1”时,缓冲器32Ⅰ与32Ⅱ均存满了数据(预取指令)。随后,预取操作继续进行。
当出现请求“IREQ”时,计数器202增1,从缓冲器32Ⅰ或32Ⅱ读出预取指令。在这种情况下,数字比较器测得,计数器201与202中的数值差不是“2”,而是“0”或“1”。然后,“或”门222自动地产生逻辑值为“1”的信号,进行预取操作(“IBACT”)。
在图8中。信号“IACT”是在主存贮器的奇数部分产生的。当出现请求“IREQ”时,信号“IACT”首先产生。在这种情况下,预取指令缓冲器中不存有指令。因此,信号“IACT”通过“或”门232送到相应的存贮器体,并直接根据地址“ADRES”立即访问该存贮器体。另一方面,在偶数部分已产生信号“IBACT”,如图8所示,这样,有关预取指令已存放在预取指令缓冲器32Ⅰ。这条存放着的指令首先用于有关的请求“IREQ”。随后的指令将根据相应的信号“IBACT”按序存入缓冲器31Ⅰ、32Ⅱ、31Ⅱ等,然后按序从中读出。信号“PACT”与信号“IBACT”在奇数或偶数部分不能同时产生。然而,偶数(或奇数)部分的信号“PACT”与奇数(或偶数)部分的信号“IBACT”则允许同时产生,如图8所示。
上述数字比较器的“或”门221产生信号“B”,当计数器201与202中的计数值彼此相等时,它变为逻辑“0”。换言之,只要两者的计数值有差异,信号“B”总是为逻辑“1”。这就是说,预取指令缓冲器32Ⅰ与32Ⅱ交替地存满指令,至少其中有一个缓冲器是存满了指令。只要有一条预取指令或若干条预取指令存放在一个或两个缓冲器内,就可保证中央控制器(CC)以1e的操作速度工作。与前述信号“E.BFUL”一样,此信息送到中央控制器(CC),这个信号表示,至少有一条预取指令存在指令缓冲器(32)之中。当出现信号“E.BFUL”时,确保中央控制器(CC)在1e时间内完成它的操作(图4),因为立即可获得下一条指令。这样,“或”门222上的信号“A”表示,当逻辑值为“0”时应当继续进行预取操作,“或”门221上的信号“A”表示,当逻辑值为“0”时应当继续进行预取操作,“或”门221上的信号“B”则表示,当其逻辑值为“1”时,表示预取指令缓冲器32Ⅰ、32Ⅱ目前至少存有一条指令。因此,中央控制器(CC)能够以1e的速度工作,另一方面,当信号“B”为逻辑“0”时,将“与”213关闭,定时控制电路112不工作。这意味着不需要直接从存贮器体22获得数据。如果在某种情况下,由于指令的某种组合缓冲器(32)中没有预取指令,则要取的数据必须根据请求“IREQ”直接从存贮器体22读取。当出现起动指令预取信号“IPST”时,计数器221与222复位,从而产生输出逻辑“0”。因此,“或”门221上的信号“B”最初为逻辑“1”。逻辑“1”的信号“B”用作上述的信号“E.BFUL”,它表示缓冲器(32)还有空位,尚可存放预取指令,因此,控制器(CC)继续进行指令预取操作。
包括选择控制电路114的计数器203与204由1位计数器组成。因此每个计数器203与204交替产生逻辑“0”与“1”,如“0”→“1”→“0”→“1”……。计数器203决定预取指令首先应当存放在缓冲器32Ⅰ与32Ⅱ中的哪一个。计数器204则决定首先应当从缓冲器32Ⅰ与32Ⅱ中的哪一个读取已存的预取指令。每次从触发器218产生信号“IBACT”时,计数器203增1,此信号表示指令预取操作必须由缓冲器(32)完成。另一方面,每次从中央控制器(CC)得到请求“IREQ”时,计数器204增1。为此,请求信号“IREQ”经过由D触发器组成的两级串接延迟线DL送到计数器204。每条延迟线与时钟①同步时延为1e。这样,总共达到了2e的时延。
图7A中上部分示出的“或”门232接收信号“CHACT”、“PACT”与“IACT”,它们是分别响应请求“CHREQ”、“PREQ”与“IREQ”而产生的。应当指出,信号“CHACT”、“PACT”与“IACT”表示那些不能按预取方式完成的操作。换言之,上述这三个信号所涉及的这些操作,必须按实时方式完成。这是因为这些操作不象装入与存数指令,它们没有连续性。因此,与这些信号有关的数据必须直接从存贮器体22读取。
图7A中上部分示出的“或”门231接收“与”门211、212和213的输出,只要接收其中一个输出,就将“与”门214关闭,以避免由信号“IBACT”引起的在存贮器体进行预取操作以及由上述三个信号引起的在同一存贮器体进行直接读取操作之间的冲突。
触发器215~218均由定时控制电路112的输出复位。一旦由信号“CHACT”到“IBAC”中的某个信号引起的操作开始以后,由其余信号引起的各种操作必须等待,直到正开始的操作结束。为此,触发器215~218均由定时控制电路112复位。
数据选择器由“与”门241、242和“或”门243组成。“与”门241与242根据地址的最低位交错地开关,该最低位区分奇数部分与偶数部分。奇数部分的读出数据RD与偶数部分的读出数据,RD在“或”门243相“或”。根据请求“CHREQ”与“PREQ”对存贮器体22的访问,是利用地址选择电路118提供的地址“ADRES”来完成的。在另一方面,根据取指请求(IREQ→IBACT)对存贮器体22的访问,是利用地址选择电路118提供的来自预取指令地址计数器116的地址完成的。这样,电路118有选择地提供非预取指令与预取指令的地址。在图7B中,电路118由四个“与”门和一个“或”门组成。
门124(图7B)由“与”门组成,由信号“b”(图9)与“或”门232(图7A)的输出信号开门。输出选择器122由“与”门251和255组成,这两个门交替地由经过1e时延的信号“IREQ”开门,这些信号由图7A下部示出的前述延迟线DL产生。进行预取操作时,定时控制电路112的控制不起作用。因此,输出选择器122直接由延迟线DL的信号“C”选通。
通常中央控制器(CC)根据主存贮器存取OK信号“MOK”(图6D与7B)决定其操作速度。更具体地说,控制器(CC)的内部控制速度在每次接到信号“MOK”时决定。根据本发明,信号“O.BFUL”与“E.BFUL”也同时送到中央控制器(CC)。如果将信号“BFUL”送到控制器(CC),每次发出取指请求“IREQ”时,控制器(CC)本身就决定内部控制操作必须以1e或2e的速度完成。如果出现“BFUL”信号,控制器(CC)能够以1e的速度工作。如果没有这种“BFUL”信号,则控制器(CC)本身决定,根据已发出的请求“IREQ”,内部控制操作应当以2e的速度完成。相反,当出现请求“CHREQ”与“PREQ”时,控制器(CC)本身在收到“MOK”信号时决定内部控制操作速度。
图10是图7B中所示预取指令地址计数器(ADCOUNT)的详细电路范例。当采用8位地址时,此计数器由7位计数器301与1位寄存器302组成,后者作为地址的最低位,始终为逻辑“0”。
图11是图6B中所示预取指令地址计数器(ADCOUNT)的详细电路范例。当采用8位地址时,该预取指令地址计数器115由7位计数器311与1位寄存器312组成。后者作为地址的最低位,始终为逻辑“1”。此外,它还包括一个定时控制逻辑电路313。如图所示,这个逻辑电路由两个“与”门和两个D触发器组成。参阅图10与11可知,如果出现起动指令预取信号“IPST”时,首地址为主存贮器奇数部分的奇数地址,则需要在出现下一个地址时开始执行有关的预取操作。因此,当计数器115被接收的信号“IBACT”增1后才访问存贮器体21(图6B)。主存贮器偶数部分的情况也一样。
与上述相反,如果出现起动预取信号“IPST”时首地址不是前进的奇数而是偶数,则产生下列操作。在这种情况下,首地址的最低位为逻辑“0”,信号“IPST”要设置的主存贮器奇数部分的地址已被预取操作的地址占用,因为有关计数器115(参阅图11)的最低位为逻辑“1”。这样,必须禁止由信号“IBACT”引起的计数操作,使信号“IBACT”跟在下一个信号“IPST”的后面。为此,在逻辑电路313中,在D触发器组利用时钟将信号“IPST”保持了3/2e的时间,“与”门操作由信号“Lsub”完成。这样,当最初对主存贮器奇数部分设置偶数地址时,第一次计数操作就被禁止。相反,在同样的情况下主存贮器偶数部分不需要禁止计数,计数操作必须继续进行。
上面已详细谈到,本发明提出了一种不增加成本的具有先行控制的数控处理系统。因此,能够以很好的性能价格所实现指令的高速读取。

Claims (15)

1、数据处理系统,至少包括一个主存贮器与一个中央控制器,中央控制器读出存放在主存贮器内的指令,并执行这些读出的指令;
主存贮器包括一个偶数存贮器体与一个奇数存贮器体,分别由偶数地址与奇数地址确定,这两个存贮器体彼此独立工作;
其特征在于:
主存贮器还包括一个偶数预取指令缓冲器与奇数预取指令缓冲器,分别与偶数存贮体与奇数存贮器配合工作;
在中央控制器发出取指请求(“IREQ”)之前主存贮器按序从偶数与奇数存贮器体读出指令,并将这些读出的指令存入相应的预取指令缓冲器;
主存贮器在响应中央控制器发出的取指请求(“IREQ”)时对偶数与奇数预取指令缓冲器进行控制,使存放的预取指令交替地从偶数与奇数预取指令缓冲器产生,然后将它们送往中央控制器;
主存贮器还包括一个偶数监测电路与一个奇数监测电路,它的产生结果监测信息,指示预取指令是否已经分别预先存入相应的预取指令缓冲器;
中央控制器每次当指令序列发生中断(例如地址跳步)时产生起动指令预取信号(“IPST”),用以启动主存贮器中的预先读数控制以及从存贮器体读出的指令,起动指令预取信号是在发出取指信号(“IREQ”)之前发出的;和
主存贮器由其中的存贮器控制逻辑电路控制,存贮器控制逻辑电路工作时根据监测电路的结果监测信息,完成从预取指令缓冲器预先读取指令的操作,将这些读出的指令存入预取指令寄存器,然后响应发出的取指请求(“IREQ”)将已存好的预取指令从相应的预取指令缓冲器送到中央控制器,主存贮器是自动执行指令读取的。
2、权项1中提出的系统,其特征在于结果监测信息一方面在主存贮器内产生,用以控制指令预取操作,另一方面送给中央控制器,用以内部控制。
3、权项1中提出的系统,其特征在于主存贮器工作时接收各种指令,包括操作数读写请求(“PREQ”),当主存贮器接到操作数读写请求(“PREQ”)时,中央控制器在每次发出操作数读/写请求之前,先发出禁止指令预取信号(“INH”)。
4、权项3中提出的系统,其特征在于主存贮器由其中的存贮器控制逻辑电路控制,存贮器控制逻辑电路工作时接收禁止指令预取信号(“INH”),禁止预先读出指令送往预取指令缓冲器。
5、权项1中提出的系统,其特征在于每个偶数与奇数预取指令缓冲器由一组多缓冲器组成,存贮器控制逻辑电路中有一个选择控制电路,
选择控制电路工作时,一方面决定要存放预取指令的多缓冲器中的某个缓冲器,另一方面决定存好的预取指令从多缓冲器中的哪一个缓冲器送往中央控制器。
6、权项1中提出的系统,其特征在于存贮器控制逻辑电路还包括一个偶数预取指令地址计数器与奇数预取指令地址计数器,每个预取指令地址计数器的内容递增,按序确定完成预先读数操作所需的地址。
CN85109251A 1984-11-01 1985-10-31 先行控制的数据处理系统 Expired CN85109251B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP230527/84 1984-11-01
JP59-230527 1984-11-01
JP59230527A JPH0670773B2 (ja) 1984-11-01 1984-11-01 先行制御方式

Publications (2)

Publication Number Publication Date
CN85109251A CN85109251A (zh) 1986-08-13
CN85109251B true CN85109251B (zh) 1988-11-09

Family

ID=16909141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN85109251A Expired CN85109251B (zh) 1984-11-01 1985-10-31 先行控制的数据处理系统

Country Status (7)

Country Link
US (1) US4755933A (zh)
EP (1) EP0180237B1 (zh)
JP (1) JPH0670773B2 (zh)
KR (1) KR900007134B1 (zh)
CN (1) CN85109251B (zh)
CA (1) CA1241763A (zh)
DE (1) DE3585205D1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS618785A (ja) * 1984-06-21 1986-01-16 Fujitsu Ltd 記憶装置アクセス制御方式
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4937770A (en) * 1986-02-07 1990-06-26 Teradyne, Inc. Simulation system
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
JP3081614B2 (ja) * 1989-03-08 2000-08-28 富士通株式会社 部分書込み制御装置
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
JPH06131244A (ja) * 1992-10-20 1994-05-13 Fujitsu Ltd 共有メモリの非同期アクセス方式
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
JP3462245B2 (ja) * 1993-12-22 2003-11-05 株式会社リコー 中央演算処理装置
US5819063A (en) * 1995-09-11 1998-10-06 International Business Machines Corporation Method and data processing system for emulating a program
US5829010A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Apparatus and method to efficiently abort and restart a primary memory access
US5974497A (en) * 1997-05-22 1999-10-26 Dell Computer Corporation Computer with cache-line buffers for storing prefetched data for a misaligned memory access
US6058461A (en) 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
JP3420091B2 (ja) * 1998-11-30 2003-06-23 Necエレクトロニクス株式会社 マイクロプロセッサ
US6532521B1 (en) 1999-06-30 2003-03-11 International Business Machines Corporation Mechanism for high performance transfer of speculative request data between levels of cache hierarchy
US6496921B1 (en) * 1999-06-30 2002-12-17 International Business Machines Corporation Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions
US6510494B1 (en) 1999-06-30 2003-01-21 International Business Machines Corporation Time based mechanism for cached speculative data deallocation
US6421762B1 (en) 1999-06-30 2002-07-16 International Business Machines Corporation Cache allocation policy based on speculative request history
US6421763B1 (en) 1999-06-30 2002-07-16 International Business Machines Corporation Method for instruction extensions for a tightly coupled speculative request unit
US6629178B1 (en) 2000-06-15 2003-09-30 Advanced Micro Devices, Inc. System and method for controlling bus access for bus agents having varying priorities
US6643755B2 (en) * 2001-02-20 2003-11-04 Koninklijke Philips Electronics N.V. Cyclically sequential memory prefetch
US6799264B2 (en) * 2001-02-20 2004-09-28 Koninklijke Philips Electronics N.V. Memory accelerator for ARM processor pre-fetching multiple instructions from cyclically sequential memory partitions
CA2378777A1 (en) * 2002-03-25 2003-09-25 Catena Networks Canada Inc. Shared program memory with fetch and prefetch buffers
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
KR101305490B1 (ko) * 2005-10-01 2013-09-06 삼성전자주식회사 메모리 맵핑 방법 및 장치
US8176349B2 (en) * 2009-04-30 2012-05-08 Hewlett-Packard Development Company, L.P. Look-ahead processor for signaling suitable non-idle performance state for main processor
CN115222015A (zh) * 2021-04-21 2022-10-21 阿里巴巴新加坡控股有限公司 指令处理装置、加速单元和服务器
CN114089686A (zh) * 2021-11-05 2022-02-25 长园医疗精密(深圳)有限公司珠海分公司 一种双控电磁阀的控制方法及控制系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866180A (en) * 1973-04-02 1975-02-11 Amdahl Corp Having an instruction pipeline for concurrently processing a plurality of instructions
JPS514382A (zh) * 1974-07-03 1976-01-14 Toray Industries
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
JPS5212536A (en) * 1975-07-21 1977-01-31 Hitachi Ltd Buffer memory control system
JPS5440180A (en) * 1977-09-03 1979-03-28 Nakajima Seisakusho Gomei Automatic repeatedly feces removing machine
US4214303A (en) * 1977-12-22 1980-07-22 Honeywell Information Systems Inc. Word oriented high speed buffer memory system connected to a system bus
US4381541A (en) * 1980-08-28 1983-04-26 Sperry Corporation Buffer memory referencing system for two data words
JPS57166241U (zh) * 1981-04-13 1982-10-20
US4438493A (en) * 1981-07-06 1984-03-20 Honeywell Information Systems Inc. Multiwork memory data storage and addressing technique and apparatus
JPS6145272B2 (zh) * 1981-12-04 1986-10-07 Burroughs Corp
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
JPS5971184A (ja) * 1982-10-15 1984-04-21 Nec Corp 記憶装置
JPS59180635A (ja) * 1983-03-31 1984-10-13 Fujitsu Ltd 命令先取制御方式
US4621320A (en) * 1983-10-24 1986-11-04 Sperry Corporation Multi-user read-ahead memory
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
US4617624A (en) * 1984-04-16 1986-10-14 Goodman James B Multiple configuration memory circuit

Also Published As

Publication number Publication date
US4755933A (en) 1988-07-05
JPS61109146A (ja) 1986-05-27
EP0180237A3 (en) 1988-04-27
CN85109251A (zh) 1986-08-13
EP0180237A2 (en) 1986-05-07
DE3585205D1 (de) 1992-02-27
KR900007134B1 (en) 1990-09-29
KR860004357A (ko) 1986-06-20
JPH0670773B2 (ja) 1994-09-07
CA1241763A (en) 1988-09-06
EP0180237B1 (en) 1992-01-15

Similar Documents

Publication Publication Date Title
CN85109251B (zh) 先行控制的数据处理系统
SU1561834A3 (ru) Устройство адресации к пам ти
US4169284A (en) Cache control for concurrent access
CA1240069A (en) Memory access control system
EP0009938B1 (en) Computing systems having high-speed cache memories
US4167782A (en) Continuous updating of cache store
US5561781A (en) Port swapping for improved virtual SRAM performance and processing of concurrent processor access requests
EP0029517A2 (en) Store-in-cache mode data processing apparatus
GB2213294A (en) Data processor
EP0019358A1 (en) Hierarchical data storage system
JPH0449144B2 (zh)
EP0437160B1 (en) Main storage memory cards having single bit set and reset functions
CN86108261A (zh) 数字传送装置
JP4144153B2 (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JPH0792779B2 (ja) データ転送制御装置
EP0217479A2 (en) Information processing unit
US5276853A (en) Cache system
CA1296808C (en) Memory access controller
CN85105547B (zh) 用于一信息处理装置的存储器存取控制系统
EP1096384B1 (en) Bridge unit between a system bus and a local bus
US6005820A (en) Field memories
JPH0215150Y2 (zh)
JP2682789B2 (ja) コンピュータ入出力キャッシュ・システム
JPS6266350A (ja) キヤツシユ・メモリ
JPS61239339A (ja) ペ−ジ・デ−タ転送制御方式

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