CN87107293A - 用于数字数据处理器的总线接口电路 - Google Patents
用于数字数据处理器的总线接口电路 Download PDFInfo
- Publication number
- CN87107293A CN87107293A CN87107293.9A CN87107293A CN87107293A CN 87107293 A CN87107293 A CN 87107293A CN 87107293 A CN87107293 A CN 87107293A CN 87107293 A CN87107293 A CN 87107293A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- signal
- data
- bus
- processor
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
- Microcomputers (AREA)
- Non-Insulated Conductors (AREA)
- Communication Cables (AREA)
Abstract
一个用于数字式数据处理系统中的处理器,它包括一个总线接口电路以便与系统内的其它装置之间来回传输数据,控制在一个内部总线上的处理器内的信息传输。总线接口电路包括二个状态机,一个用于控制信息的内部传输,另一个用于控制信息的外部传输。状态机通过标志通信,标志表明什么时间有外部操作待处理,还提供一组锁存器用于从处理器的其它部分接收写数据、写地址和读地址,一个输入锁存器从系统内其它装置接收信息,从而允许同时启动写操作和读操作。
Description
本发明总的来说属于数字式数据处理系统。
一个典型的数字式数据处理系统包括三个基本部件,即一个处理器部件、一个存贮器部件和一个输入/输出部件。存贮器部件在可寻址的贮存单元内存贮信息。信息包括数据和处理数据用的指令。处理器部件包括一个或多个数字式数据处理装置或“处理器”,信息在每个处理器和存贮器之间往返传送,将输入的信息翻译成指令或数据,再按照指令处理数据。计算结果然后贮存在存贮器部件内的可寻址单元上。
输入/输出部件还与存贮器部件进行通信,以便向系统传送信息和从它得到经过处理的数据。组成输入/输出部件的装置通常按照由处理器部件向它提供的控制信息进行工作,此控制信息决定了输入/输出装置将执行的操作。至少有一类由输入/输出装置完成的操作是传输用户信息,即在输入/输出装置和存贮器部件之间传输为用户程序所用的信息。通常,由输入/输出部件组成的典型装置包括例如打印机、电传打字机和视频显示终端,还可包括如磁盘或磁带贮存装置这类辅助信息贮存设备。
除作为输入/输出设备工作外,磁盘存贮装置(有时,还有磁带存贮装置)还可起着部分的存贮器部件的作用。尤其是,一个存贮器部件典型地包括一个主内存,处理器能相当快地访问其内容,但一般来说这是一种价格比较高的存贮设备。现代的内存典型地采用MOS或双极性半导体技术实现,可提供的存贮容量从几分之一兆字节至几十兆 字节。
处理器处理数据过程中的主要的“瓶颈”是指令和待处理的数据向处理器的传输和经过处理的数据向系统的其它部分的传输。在处理器和存贮器部件之间的信息传输典型的是数据和指令,在处理器和输入/输出部件之间的信息传输典型的是用于控制输入/输出部件工作的控制信息,虽然处理器也可与某些类型的输入/输出装置之间传输数据。在数字式数据处理系统中的处理器具有一个与这些装置之间传输信息用的接口电路。
一个处理器典型地包括几个功能部件,包括一个用于存贮立即使用的数据/指令的高速缓存、执行基本的算术和逻辑操作以处理指令的数据通路和控制电路,这些控制电路用于翻译指令,获取操作数或待处理的数据、启动数据通路从而执行一系列操作使得由指令标识的操作被执行,并使得经过处理的数据贮存起来。在处理器各个内部功能部件之间的信息传输是相当复杂的,尤其当处理器含有一个高速缓存,以及支持虚拟处理而必须提供虚拟地址和实际地址之间转换的时候更是如此。
本发明提供一种用于数字式数据处理系统的新型处理器。
简言之,用于数字式数据处理系统的处理器包括一个与系统内其它装置之间传输数据和在处理器内部由一个内部总线控制信息传输用的总线接口电路。总线接口电路包括二个状态机,一个用来控制信息的内部传输,另一个用来控制信息的外部传输。状态机通过标誌传送,标誌指示何时有外部操作待处理。备有一组锁存电路,用来从处理器的其它部分接收写数据、写地址和读地址;一个输入锁存电路从系统的其它装置接收信号,从而允许同时启动一个写操作和一个读操作。除非需要另外的操作,否则处理器继续工作。
通过相应附图和下述说明,可更好地了解本发明上述提到的和更深入的优点。这些附图包括:
图1A是含有本发明的数字式数据处理系统总方框原理图;
图1B是图1A所描述的系统中所用的处理器的结构方框图;
图2由图2A至图2D组成,是一组有助于理解本发明的定时图;
图3是图1B所描述的处理器中,控制与系统其它部分间的信息传输用的部分电路的详细方框图。
在图1A上,一个含有本发明的数据处理系统,作为其基本组成部分,包括一个中央处理机(CPU)10、一个存贮器11和一个或多个输入/输出子系统12(在图1中只画出一个输入/输出子系统)。总线13将CPU10、存贮器11和输入/输出子系统12并行地互连。CPU10执行贮存在存贮器11中可寻址存贮单元中的指令。指令识别将要对操作数执行的操作,操作数也贮存在存贮器装置的可寻址单元中。在需要指令和操作数时,它们被CPU10取出,经过处理的数据送回存贮器11中贮存。CPU10还向输入/输出子系统12发送控制信息,使输入/输出子系统完成所选定的操作,如向存贮器11发送数据或由其中检索数据。数据可以包括指令或操作数,它们可以是发送至存贮器11的数据或从存贮器11检索出来供在外存贮存或显示的经过处理的数据。
一个操作员控制台14用作操作员的接口。它允许操作员检查和存放数据、暂停CPU的工作、或人工控制CPU10执行一组指令并确定CPU10对此所作出的响应。它还允许操作员经由一个引导程序对系统初始化和对整个数据处理系统完成各种诊断测试。
数据处理系统可以包括几种类型的输入/输出装置20,这包括磁盘和磁带辅助存贮装置、电传打字机、视频显示终端、行式打印机、 电话和计算机网络装置等。所有这些装置经一个或几个控制器22通过一个设备总线21与总线13通信。控制器22、与它连接的设备总线21和与控制器通信的输入/输出装置20确定了一个输入/输出子系统12。
存贮器11包括一个存贮器控制器15,它与总线13直接相连,并连接到一组存贮单元阵列17。阵列17包含一组在其中存贮信息的可寻址的存贮单元。存贮器控制器15通过总线13从CPU10或从一个输入/输出子系统12接收传输请求。通过总线13可以发送几种类型的传送请求,它们可分为二大类。一种类型是,信息被写入或贮存在存贮单元里;在另一种类型中,信息由存贮单元检索或读出。
图1A所描述的系统还包括有一个写缓冲器23,它与总线13和存贮器控制器15连接并截取由CPU送往存贮器11的写传输请求。在此系统中,存贮器控制器15并不对由CPU10或输入/输出控制器22经过总线13传送的写请求作出响应。尤其是,写缓冲器23对写信息进行缓冲,写信息包括要写入的数据和用以识别在阵列17中数据贮存单元的相应地址。当存贮器控制器能接收一个写操作时,写缓冲器通过一条专用总线24向存贮器控制器15发送地址和相应的数据,存贮器控制器15再使阵列17把数据贮存在由其地址识别的单元之内。因此,如果CPU10通过总线13发送写数据的速率变得太高而使得存贮器11不能接受时,写缓冲器23能缓冲此请求,直至存贮器11能再接受它们为止。存贮器控制器15也直接连到总线13以便对由CPU10或输入/输出控制器22来的读请求作出响应,并向它们回送读出数据。
对此技术领域有经验的人员将会理解,在图1A所示的单处理器系统中使用一个写缓冲器23将是很有用的,但更有用的是在多处理器系统中使用(未示出)。在多处理器系统中,存贮器11将从一系列CPU 和相应的输入/输出子系统12接受读和写请求。为了避免由于CPU10等待完成一个写操作所造成的处理的延迟,写缓冲器23取得写地址和数据(而暂存),CPU10就可继续处理工作。
写缓冲器还包括用于监控由CPU10通过总线13来的读请求的电路。如果写缓冲器23确认经由总线13已传送一个识别数据的读请求,此数据正在被进行缓冲暂存,并且还没有送入存贮器11,缓冲器通过它的专用总线24禁止存贮器控制器对此请求作出响应,而由写缓冲器23通过总线13发送所请求的数据来完成此读操作。
图1A描述的系统还包括一个系统控制电路25,在CPU10的控制下,此电路完成判优操作。因此,如果系统具有一个以上的输入/输出子系统12,它起着调节各个输入/输出子系统12对总线13访问的作用。
CPU10包括一个处理器30和一个选用的浮点处理器31。典型的情况是,浮点处理器是一个选用设备,在按本发明构成的数字式数据处理系统或CPU10中不一定需要存在。浮点处理器包括有为处理选定类型数据(即指浮点格式的数据)的指令的优化的电路。典型地说,处理器30也能处理同样的数据,但需更长的时间来完成处理工作。
图1B所示的为系统中所用的一个处理器30的详细功能方框图。在图1B中,处理器30包括一个总线接口电路33,它连接至总线13的各种控制线(图上用参考编号13A总括示出),按照下述方式通过总线的各种线发送和接收信号。总线接口电路还与一个IDAL内部总线34相接,此内部总线与高速缓存35、数据通路36、存贮器管理装置37和处理器控制电路40之间的传输信号。在下面的图3中还将介绍处理器30的一个实施例所用的一种总线接口电路33。
在IDAL内部总线34上还连接着一组寄存器,在总线接口电路33的控制下,它在IDAL内部总线34和总线13的DAL线50之间传输数据。具体地说,在总线接口装置33的控制下,一个写数据寄存器250和一个写地址寄存器251分别接收写数据和写数据将被存入的存贮器11中单元的地址或输入/输出装置12中的地址。如下面将介绍的,在适当时刻,总线接口装置33使得这些寄存器的内容通过一个多路转接器253传送到DAL线50以完成写操作。类似地,在总线接口装置33的控制下,一个读地址寄存器252接收一个含有被读出数据的单元的地址。在适当时刻,总线接口装置33使得读地址寄存器252的内容通过多路转接器253耦合至DAL线50以完成一个读操作。也是在总线接口装置33的控制下,读数据被锁存在一个输入寄存器254上。总线接口装置33也可使得输入寄存器254的内容作为RCV DAT接收的数据信号耦合至IDAL内部总线34。
处理器控制电路40对从存贮器11检索的程序指令解码,在相继的处理循环中使得数据通路36完成为执行指令所需的算术和逻辑操作。数据通路36包括一组寄存器255用于存贮待处理的数据,和供执行处理的算术、逻辑电路256。
处理器30的一个实施例采用虚拟地址,并提供虚拟地址转换电路37用来将虚拟地址转换成实际地址。虚拟地址转换电路包括一组虚源寄存器257,它从处理器30中的其它电路接收虚拟地址,这些电路最主要的是数据通路36,虚拟地址转换电路还包括含有某些转换信息的转换缓冲器260。转换是在处理器控制电路40的控制之下,在需要时进行的。实际地址通过一个多路转接器261从转换电路37耦合至IDAL内部总线34。数据通路36也可包括实际地址,为多路转接器 261提供第二个源输入。处理器控制电路40控制多路转接器261。
在CPU10中高速缓存35是一个普通的信息存贮电路。高速缓存在K.黄(K.Hwang)和F.伯律格(F.Briggs)所著的“计算机结构和并行处理”一书(McGraw-Hill公司出版,1984年)的第2.4节第98页等处,和V.哈马洽(V.Hamacher)所著的“计算机结构”(McGraw-Hill公司出版,1984年)的第8.6节第306页等处均有阐述。高速缓存35包括一个由许多存贮单元组成的数据存贮区38。数据存贮区38是以数据块形式组织的,每个块含有二个存贮单元,每个存贮单元贮存一个信息字,即能在总线13上一次传送的信息量。在一个特定的实施例中,一个信息字相当于4个字节,或32个二进制数字的信息。因此,每个块可以贮存8个字节的信息。
高速缓存35含有HIT/MISS(找到/未找到)逻辑电路262,它确定何时一个由虚拟地址转换电路产生的实际地址相应于高速缓存35中的一个地址。从虚源寄存器257来的虚拟地址的低位部分,在一个实施例中为VA SRCE(8∶3)信号,通过一个多路转接器264被耦合,用来选择数据贮存区中的一个数据块和相关联的标签41的项。HIT/MISS逻辑电路262然后确定关联的标签41的项(entry)的内容是否与所转换的实际地址相应。如果相应,则HIT/MISS逻辑电路产生一个判定的HIT信号,此信号被送至总线接口装置33。如果总线接口装置33没有接收到一个判定的HIT信号,它以一般方式在总线13上启动一个操作以便检索被寻址单元的内容。如果HIT信号是判定的,总线接口装置33并不在总线13上启动一个操作,而是允许从高速缓存数据贮存区38来的数据通过一个多路转接器263传送到IDAL内部总线34上,一般地说,此数据将送至数据通路36上。
在此技术领域内熟悉的人员会理解,贮存在高速缓存35的一个数据块中的信息,当它从存贮器装置11中收到时,是贮存在存贮器11中的信息的复制。高速缓存35中的每一个数据块有一个关联的标签41,其内容由总线接口电路33所确定,以便识别存贮器11中信息被复制的单元。此外,每个数据块还有一个失效(Stale)标誌42,它由总线接口电路所复位或清除,以便指出这个块的内容事实上是否由标签标识的单元的复制,即这个块的内容是否失效。
在高速缓存35的一个实施例中,数据存贮区38、标签41和标誌42是动态存贮器。一个更新计数器262在总线接口装置33的控制下产生更新地址,此地址通过多路转接器264耦合以更新动态存贮器。
一个指令可以包括有一个或几个操作数说明符,说明符标识在数据通路36中寄存器上的操作数的单元,或标识一个标明在虚拟地址空间操作数的单元地址。例子可参见1980年11月25日授于W.D.斯特列克(W.D.Strecker)等人的美国专利4,236,206,“用于执行可变长度指令的中央处理机”。处理器控制电路40与数据通路一起对每个操作数说明符解码以标识操作数的单元,然后再从被标识的单元取得操作数。一个操作数说明符本身可以包含操作数(即操作数说明符可以是一个“文字数”),操作数说明符也可以标识含有操作数的那些数据通路寄存器中的一个(未示出)。
此外,操作数还可以是在程序的虚拟存贮空间的单元之内。操作数说明符可以指示出怎样确定此单元。如果操作数是在虚拟存贮空间内,控制电路40使得存贮器管理电路37将虚拟地址转换成实际地址。在取得操作数的实际地址后,总线接口电路33就取得操作数。首先,它确定操作数是否在高速缓存35内。如果操作数是在高速缓存内,总线接口电路将操作数发送至数据通路36。在另一方面,如果操作数不在高速缓存35内,总线接口电路33通过总线13发送一个读请求至存贮器11,以便检索操作数。在取得所有操作数后,数据通路36可以执行指令所要求的操作。
操作数说明符还可以标识出经过处理的数据将存贮的单元。控制电路40和存贮器管理电路37以与上述同样的方式用来确定实际地址。如果经过处理的数据将存贮在存贮器11中,则总线接口33经由总线13执行所需的写操作。此外,如果实际地址相应于高速缓存中的一个适当的标签,总线接口33就使得数据存贮在高速缓存35内。
总线接口装置33包括一个控制在总线13上传输数据的状态机270,和一个控制IDAL内部总线34上传输数据的IDAL状态机271。总线接口装置还控制一个浮点处理器逻辑电路272,后者又相应地控制与浮点处理器31的通信。在下面图3中还将更详细介绍总线接口装置33。
总线13上的操作
总线13包括一组线,用来在各种由它连接的装置之间传输表示信息的信号。尤其是,总线13包括DAL(31∶0)数据地址线50,它传送DAT数据和ADRS地址信号。如果CPU10、尤其是处理器30正在启动一个传输过程,使处理器30成为传输过程的总线主控装置,处理器30首先通过DAL(31∶0)数据地址线50发送ADRS地址信号,并同时在线52上发送TR TYPE(2∶0)传输型命令信号,它说明传输操作是一个读操作还是写操作。经过一段足够使ADRS地址信号和TR TYPE(2∶0)传输型命令信号稳定下来的短时间,处理器30然后在线51上判定一个ADRS STR地址选通信号。
当ADRS STR地址选通信号被判定时,接至总线13的所有其它装置接收和解码此ADRS地址和TR TYPE(2∶0)传输型命令信号,而含有被ADRS地址信号所标识的单元的装置即为对传输的响应装置(或从动装置)。如果传输操作是一个写操作并且ADRS地址信号标识存贮器11中的一个单元,则写缓冲器23是从动装置。在处理器30判定ADRS STR地址选通信号后经过一个选定的时间,它从各自的线上除去ADRS地址信号和TR TYPE(2∶0)传输型命令信号。
如果被传输的TR TYPE(2∶0)传输型命令信号规定一个写操作,主控装置则通过线50发送数据信号,然后在线53上判定一个DATA STR数据选通信号。从动装置然后接收和贮存所发送的数据。当数据已贮存时,如果操作完成,没有出错,则被寻址的装置就在线54上判定一个RDY准备信号;如果在存贮操作过程中出错,则在线55上判定一个ERR出错信号。
在另一方面,如果被传送的TR TYPE(2∶0)传输型命令信号规定的是一个读操作,从动装置从由地址信号所标识的单元检索数据,通过DAL(31∶0)数据地址线50将数据发送出去,并通过线54发出一个判定的RDY准备信号。对此作出响应,处理器30接收数据并经线53发送一个判定的DATA STR数据选通信号。
无论在读或写操作过程中,在从动装置已判定RDY准备信号或ERR出错信号(如果在传输过程中出错)之后,处理器30除去(negate)DATA STR数据选通信号。然后从动装置除去RDY准备或ERR出错信号,处理器30再除去ADRS STR地址选通信号而结束传输过程。
除处理器30以外的连接至总线13的装置也可以成为总线主控器 并启动与存贮器11间的传输。输入/输出子系统12,尤其是它们的输入/输出控制器22可以成为总线主控器。为了成为总线主控器,输入/输出控制器22通过线56判定一个DMR直接存贮器请求信号。然后处理器30通过线57判定一个DMG直接存贮器许可信号,此信号为输入/输出控制器22所接收。此时输入/输出控制器启动一个与存贮器之间的传输过程,其工作方式与上述处理器30的情况相同。输入/输出控制器保持DMR直接存贮器请求信号于判定状态一直至它结束传输过程为止。因此,如果输入/输出控制器要求多次传输,它可以保持DMR直接存贮器请求信号于判定状态,直至它结束所有传输过程为止。在DMR直接存贮器请求信号处于判定状态期间,处理器30处于停止状态,也就是说,它监控总线13各条线上的信号,但除此之外它不执行任何指令。
如果系统包含有多个输入/输出子系统12,由各个输入/输出控制器22发出的要求成为总线主控器的各单独的请求信号被送至系统控制器,它判定DMR直接存贮器请求信号并监控DMG直接存贮器许可信号的状态。当处理器30判定DMG直接存贮器许可信号时,系统控制器按照优先级裁决方案使得一个输入/输出控制器22成为总线主控器。
总线13还有许多其它传送状态和控制信号的线。线60上有CLK时钟信号,用于系统中工作的同步,总线13上的各种信号都按照CLK时钟信号定时。
线61上有CCTL高速缓存控制信号,它有二个功能。如同在保尔·洛宾菲尔德(Paul Rubinfeld)1986年9月12日的同时待批美国专利申请第908825号:“数字数据处理系统高速缓冲存贮器内容的 失效标记”(“Cache Invalidate Protocol for Digital Data Processing System”中所说明的,例如,CCTL高速缓存控制信号由一个当时是总线主控器,并对存贮器11执行写操作的输入/输出控制器22所判定。输入/输出控制器22当它正在DAL数据地址线50上发送ADRS地址信号、在线52上发送TR TYPE传输型信号、并在线51上判定ADRS STR地址选通信号的同时,判定CCTL信号。当CCTL高速缓存控制信号被判定,并且TR TYPE传输型信号表明的是一个对存贮器11的写操作时,总线接口33检查所有高速缓存项的标签41的内容。如果总线13的DAL数据地址线50上的ADRS信号与一个标签41的内容相符,则总线接口33对于高速缓存的这个数据块的S失效标誌42置位。
CCTL高速缓存控制信号还可被存贮器11所判定,用以防止处理器30在高速缓存35中存贮在读操作期间被请求的数据。例如,在存贮器11是一个多端口存贮器时,就可能用到这种判定,也就是说,如果该存贮器是由几个处理器共享,每个处理器通过一个单独的总线访问存贮器11,并且被检索的数据是来自一组对所有处理器都可使用的一组可寻址的存贮单元。但这样的数据贮存在高速缓冲存贮器35中是不希望的,因为另一个处理器可能会更新共享单元的内容。由于更新不是通过总线13进行的,处理器30不能检测出这些更新。如果处理器30使用从高速缓存来的这类数据,它可能与存贮器中相应单元的内容不符。由于CCTL高速缓存控制信号的这种使用,存贮器11与其在DAL数据地址线50上发送数据的同时判定CCTL高速缓存控制信号,并保持高速缓存控制信号于判定状态,直至它除去数据为止。
总线13还包括一根线62,它带有一个CLR WRT BUF清除写 缓冲器信号。CLR WRT BUF清除写缓冲器信号是由处理器30对其内部的某些状态的响应而判定的,而这些状态在处理器30之外用其他方法是不能检测的,例如,处理器30在执行一条致使它转换过程上下文的指令,或它开始执行一个中断服务例行程序或一个异常例行程序时,它判定CLR WRT BUF清除写缓冲器信号。CLR WRT BUF清除写缓冲器信号由微指令的一个字段所控制,微指令是在执行这些指令期间由处理器控制电路40所产生的。
当CLR WRT BUF清除写缓冲器信号被判定时,写缓冲器23确定它是否有数据要贮存在存贮器11内。如果它没有,它就什么也不做。但是,如果写缓冲器23具有要存贮在存贮器11中的某些数据,它就判定DMR直接存贮器请求信号,并继续试图将其余数据贮存在存贮器11中。为对判定的DMR直接存贮器请求信号作出响应,处理器判定DMG直接存贮器许可信号,此信号被写缓冲器23所忽略,因而处理器处于停止状态。写缓冲器23保持DMR直接存贮器请求信号于判定状态,直至它含有的所有数据被正确地贮存在存贮器11中为止。如果在贮存过程中不出现错误,写缓冲器23取消DMR直接存贮器请求信号,从而允许处理器30继续工作。
如果在存贮器11的写入过程中出错,写缓冲器23向处理器发出出错信号,使得处理器30运行例行程序在当前的上下文范围内查找和纠正出错。这样做大大简化出错校正。如果处理器被允许在检查出错误之前转换上下文,则将难于确定原来产生错误的上下文。如果能确定上下文,出错校正就容易得多,因此写缓冲器23不让处理器转换上下文,直到当前上下文的所有数据被正确地贮存在存贮器11中为止。 与浮点处理器31之间的传输
处理器30还连接到浮点处理器31,以便:(1)向浮点处理器31传送浮点指令操作码,指明待完成的操作,如下面结合图2A所介绍的;(2)使操作数数据传送至浮点处理器31,用于进行如图2B和2C所介绍的处理;(3)由浮点处理器31取得经过处理的数据,如图2D所说明的。处理器30和浮点处理器31由二组线70和71互相连接,线70上传输CP STA(1∶0)浮点状态信号,线71上传输CP DAT(5∶0)浮点数据信号。浮点处理器31还连接到总线13的几条线上,包括DAL数据地址线50、接收CLK时钟信号的线60、接收ADRS STR地址选通信号的线51、接收RDY准备信号的线54、接收ERR出错信号的线55和接收DMG直接存贮器许可信号的线57。CP STA(1∶0)浮点状态信号和CP DAT(5∶0)浮点数据信号是与线60上的CLK时钟信号同步发送的。
在空闲时,浮点处理器31与线60上的CLK时钟信号同步地对线70和71上的信号状态重复采样,当至少在线71的一根线上具有一个判定的电平信号时,浮点处理器31锁存这些线和线70上的信号。参见图2A,当处理器30向浮点处理器31发送一个指令时,在由一个选定数量的CLK时钟信号的节拍期间,它通过线71向浮点处理器31至少发送指令的操作码的一部分作为CP DAT(5∶0)浮点数据信号。在此期间,与CLK时钟信号的一个节拍相同步,浮点处理器31锁存和贮存信号。在此时间间隔结束时,处理器30从线70和71上除去这些信号。
在线71上传送的CP DAT(5∶0)浮点数据信号足以标识待完成的浮点算术操作,并标识在操作中要用到的操作数的数量。与线71上传送操作信息的同时,在线70上其它信息也作为CP STA(1∶0)浮点状态信号被传送,提供有关浮点处理的进一步信息。尤其是,浮点操作数可用许多称为数据类型的格式编码。有关操作数格式的信息在线70上作为CP STA(1∶0)浮点状态信号被传送。在一种实施例中,有关操作数格式的某些信息也通过线71与操作信息一起被传送。
收到操作码时,浮点处理器31对它解码,以确定待完成的操作和所需的操作数的数量。处理器30(响应于发送操作码)和浮点处理器31(响应于接收操作码)然后进入一种状态:此时操作数通过DAL数据地址线50传送。数据类型信息用于向浮点处理器31标识每种操作数的格式。对于有些操作数的格式,需要的位比在DAL数据地址线50上一次传输所能容纳的还多,因此为了传送一个操作数需要多次传输。因此,数据类型信息也指示出在DAL数据地址线50上需要传输每个操作数的传输次数。
一个操作数可以贮存在三个源中的任一个内,这三个源是存贮器11(图1),高速缓存35和数据通路36的处理器的寄存器。一次操作所需的不同的操作数也可贮存在这三个源的任何一个之中。但是,如果为了传输一个操作数需要在DAL数据地址线50上进行多次传输,一般地讲,所有的传输都是对同一个源的。图2B描述的是为了从存贮器中检索一个操作数而被传送的信号的状态。图2C描述的是为了从高速缓存35或数据通路36的寄存器传送一个操作数所传送的信号。尤其是,图2B和2C描述在DAL数据地址线50上实现单次传输的信号状态。应当看到,对一个操作数可能会需要多次传输。
对于图2B来说,如果操作数是在存贮器11中,处理器30从存贮器11启动检索数据。尤其是如上所述的,处理器30完成一个读操作, 把ADRS地址信号加到DAL数据地址线50上并判定ADRS STR地址选通信号。此后不久,处理器30将CP STA(1∶0)浮点状态信号加在线70上,使其二进制数值为0,即它除去全部二个CP STA(1∶0)浮点状态信号。此外,处理器30在线71上发送CP DAT(5∶0)浮点数据信号,在线71上CP DAT(5∶4)浮点数据信号含有一个地址对准码,它表明在DAL数据地址线50上传送的数据中有多少要用于操作数中。如果操作数是在DAL(5∶0)数据地址线上的一个短文字数,则CP DAT(0)浮点数据信号被判定,否则CP DAT(1)浮点数据信号被判定。
由于浮点处理器31已经以图2A所介绍的过程收到操作信息,它处于一种接收操作数的状态。判定的CP DAT(5∶0)浮点数据信号向浮点处理器31表明,它将对总线13上选定的线进行采样,尤其是对传送ADRS STR地址选通信号的线51。浮点处理器31利用ADRS STR地址选通信号的判定状态来确定操作数正在从存贮器11中被检索。如果当浮点处理器31接收判定的CP DAT(5∶0)浮点数据信号时,ADRS STR地址选通信号被判定,作为对存贮器11在线54上判定RDY准备信号作出响应,它锁存DAL数据地址线50上的数据信号。处理器30对DATA STR数据选通信号作出响应以完成传输过程。
应该理解,如果存贮器11对一个检索请求的响应是一个判定的ERR出错信号而不是一个判定的RDY准备信号,则浮点处理器31将不对DAL数据地址线50上被传送的数据进行锁存。处理器30将执行任何所需的出错校正操作,例如可能是必要的多次重试,并重复进行如图2B所示的操作。
图2C表示的是时间图,它有助于理解从处理器30将一个操作数传送至浮点处理器31,无论操作数是在高速缓存35或在数据通路36的一个寄存器中。在任一种情况下,处理器都置数据信号于DAL数据地址线50上,同时CP DAT(5∶0)浮点数据信号具有如上面图2B所述的相同的编码,并且,除去全部二个CP STA(1∶0)浮点状态信号。这些信号被处理器30保持CLK时钟信号的选定节拍数,在此时间间隔内,浮点处理器31锁存DAL数据地址线50上的信号。如果为传送一个完整的操作数需要在DAL数据地址线50上作多次传送,则重复图2C中的时序。
如果一个操作数的数据类型需要在DAL数据地址线50上作多次传输来传送一个完整的操作数,则处理器30、存贮器11和浮点处理器31重复图2B和图2C描述的操作,直至整个操作数被传送为止。
应该理解,图2B中的操作顺序和图2C的操作顺序是相似的,但有下述差别。如果当CP DAT(5∶0)浮点数据信号被判定时,ADRS STR地址选通信号在线51上也被判定,浮点处理器31利用判定的RDY准备信号作为当时在DAL数据地址线50上操作数(或操作数的一部分)存在的指示。但是,如果当CP DAT(5∶0)浮点数据信号被判定时,ADRS STR地址选通信号未被判定,则浮点处理器31利用CP DAT(5∶0)浮点数据信号的判定作为当时在DAL数据地址线50上操作数(或操作数的一部分)存在的指示。在这二种情况下,浮点处理器31与线60上的CLK时钟信号都同步地锁存DAL数据地址线50上的信号,在上述第一种情况下,是在接收到RDY准备信号之后进行,在第二种情况下是在接收到已判定的一个CP DAT(5∶0)浮点数据信号之后进行。
在操作数据传送之后,处理器30和浮点处理器31进入这样一个 状态,在此状态中,当浮点处理器31准备发送操作结果时,处理器30准备接收这些结果,图2D描述的时间图详细地说明处理器30和浮点处理器31用来把经过处理的数据传送到处理器30所用的操作顺序,经过处理的数据包括状态码(它说明结果是负的或零,以及有关结果的其他选定事实)和表示由浮点处理器31完成的计算数值的数据信号。
在图2D上,一开始,处理器30在线70和71上发送信号码,表示它已准备好接收经过处理的数据,在一个实施例中,二个CP STA(1∶0)浮点状态信号都被除去,CP DAT(3)浮点数据信号在其它信号都被除去的情况下被判定。此后,浮点处理器31就可以通过线70和71发送。
当浮点处理器31准备发送经过处理的数据时,它发送一个CP STA(1∶0)浮点状态信号,表示对应这个结果的一个代码,同时还发送CP DAT(5∶0)浮点数据信号表示状态码。浮点处理器31把这些信号保持CLK时钟信号的选定节拍数,然后把数据信号放置在DAL数据地址线50上,同时在线70和线71上发送一个对应这个结果的一个代码。如果在DAL数据地址线50上需要多次传输来传送经过处理的数据信号,浮点处理器31与CLK时钟信号同步地传送它们。
当浮点处理器31正在处理操作数并且在它把结果发送至处理器30之前,处理器30可以判定DMG直接存贮器许可信号,它允许输入/输出子系统12参与一项与存贮器11之间的传送。当处理器30表示它已准备接收经过处理的数据之后,浮点处理器31监视线57的状态。当浮点处理器31准备回送经过处理的数据时,如果在线57上判定有DMG直接存贮器许可信号,则浮点处理器延迟回送此经过处理的数据, 直至DMG信号被除去为止。
此外,如果发生出错,例如在从存贮器11检索操作数时出错,处理器30表示将不打算从浮点处理器31接收经过处理的数据,处理器30也不取消浮点处理器31的操作,反之,在处理器30向浮点处理器31发送一个新的操作码时,浮点处理器31对此操作码进行操作。应该看到,由处理器30通过线70和71所发送的、用来表示它已准备接收经过处理的数据的CP STA(1∶0)浮点状态信号和CP DAT(5∶0)浮点数据信号,不应与任何操作码相对应,以便浮点处理器31能区分它们。
总线接口电路33
图3所示为在一个实施例中处理器30的一种总线接口电路33。在图3上,总线接口电路包括一个控制总线13(图1A)的状态机270和控制IDAL内部总线34工作的第二个状态机271。二个状态机270和271独立地工作,但下述的几种标誌和控制信号除外:这些信号允许状态机271向状态机270表示需要在总线13上进行操作,以及由状态机270提供响应信号向状态机271表示操作的结束。
控制IDAL内部总线34的状态机271从处理器30中的各种源(通常由控制逻辑273所表示)、从总线13上的若干终端(通常由总线13的引线端274所表示)、以及从控制电路40(图1B)的微指令接收输入信号。状态机271发送输出信号来控制处理器30内的许多电路(包括控制与浮点处理器31之间的传输的逻辑电路272),还发送控制高速缓存和地址输入多路转接器264工作的几个信号(图1B)。此外,状态机271的输出信号还控制含有标誌(未示出)的逻辑电路276, 该标誌指示读操作待处理,此读操作又由一个RD REQ读请求信号的状态所指示;还可指示写操作待处理,此写操作由一个WRT REQ写请求的状态所指示,标誌还可指示从处理器30至浮点处理器31有操作数传输待处理,它由BRDCST REQ广播请求信号的状态所指示。
控制逻辑276在操作系统控制下还可确定在一个读操作过程中在总线13上所收到的某些信息(图1A)是否应贮存在高速缓存35中(图1B)。例如,操作系统可以调整处理器30将它所读的所有信号贮存在高速缓存35中。另一种可能是,操作系统可以不允许把处理器指令贮存在高速缓存35中,而仅允许把待处理的数据贮存在高速缓存中。但是,一般地说,操作系统不允许从图1A所示的系统其它部分中的各种控制寄存器所接收到的信息贮存在高速缓存35内。控制逻辑276调整一个CACHE ACC可高速缓存访问信号,以便控制将在总线13上所接收的信息进行高速缓存。
如上所述,在处理器30以外的一个装置也可控制该传输是否打算借助线61上的CCTL高速缓存控制信号而进行高速缓存(图1A)。
状态机271基于引线274上的信号状态,直接或间接地通过其它控制逻辑(未示出)控制把写数据与读和写地址装入锁存器250至252,和控制从输入数据贮存器254的读数据的传输。
控制总线13上传输的状态机270从控制逻辑276接收RD REQ读请求、WRT REQ写请求和BRDCST REQ广播请求信号,以及总线引线274来的信号,还产生发送至逻辑电路277的信号,该逻辑电路控制组成总线13的几个信号的状态。此外,状态机270还产生发送至控制逻辑280的信号,该控制逻辑电路进而控制锁存器250、251、252和254以及多路转接器253的工作(图1B),使信号能耦合至总 线13的DAL数据地址线50,并从这里接收返回信号。在一个读操作完成后,状态机270还判定一个CLR RD FLAGS清除读标誌信号,它使得控制逻辑276除去RD REQ读请求信号。
以此为基础,下面介绍图3所描述的总线控制电路33的工作。在一个由控制电路40所启动的写操作过程中,如果控制逻辑273没有判定DMA OR WRT PND(DMA或写待处理)信号,状态机271先把将被写入的单元地址装入写地址锁存器251(图1B),并确定此单元是否被缓存(is Cached)于高速缓存35内(图1B)。如果DMA OR WRT PND已判定,那么或者图1A所描述的系统内的另一个装置正在使用总线13,或者状态机271已使得写地址和数据分别装入锁存器251和250(图1B),这些数据尚未通过总线13传输。
如果DMA OR WRT PND(DMA或写待处理)信号没有判定,则要确定待写入的单元是否被缓存。如果此单元被缓存,高速缓存35内相应于该单元的项必须用新的数据予以更新。为了确定此单元是否被缓存,状态机271产生一个CACHE FTN(1∶0)高速缓存功能信号(使高速缓存被读出)和CACHE ADRS(1∶0)信号(使多路转接器264采用由虚拟地址转换电路37产生的实际地址)。在此操作过程中,IDAL CACHE XMIT高速缓存发送信号被除去,从而禁止高速缓存的数据被耦合到内部数据总线34上。如果该单元被缓存,HIT信号将由AND与门312所判定,这将反映在从控制逻辑273来的MISS信号的状态中。
如果MISS信号没有判定,则待写入的单元被缓存。对被除去的MISS信号作出响应,状态机271产生CACHE FTN(1∶0)高速缓存功能信号(启动一个高速缓存写操作)和CACHE ADRS(1∶0)高速 缓存地址信号(启动多路转接器264去使用从虚拟地址转换电路来的地址)。同时,写入高速缓存项的数据被贮存在写数据锁存器250(图1B)内,而控制逻辑内的标誌被调整使产生一个判定的WRREQ写请求信号。在此操作过程中,MBOX STALL信号被判定从而禁止虚拟地址转换电路的工作。
在另一方面,如果MISS信号被判定,则待写入的单元没有被缓存。为对判定的MISS信号作出响应,状态机使写数据锁存至写数据锁存器250(图1B),并使WRT REQ信号被控制逻辑276所判定。此外,CACHE ADRS(1∶0)高速缓存地址信号被调整使得更新计数器262增1,并使得多路转接器264把地址耦合至标誌42、标签41和数据存贮器38(图1B)使它们被更新。在此操作过程中,MBOX STALL信号也被判定,从而禁止虚拟地址转换电路工作,防止它产生另一个实际地址。
在写操作完成后,DMA OR WRT PND(DMA或写待处理)信号被除去。这允许另一个地址和写数据装入锁存器250和251(图1B),更新操作也被启动。
在读操作过程中,由状态机271所完成的或启动的操作决定于所要求的信息是指令还是数据,以及所要求的信息是否曾在高速缓存35内(图1B)。如果由地址标识的单元是在高速缓存内,并且在标签41或数据38(图1B)内无奇偶校验位错误,则信息在高速缓存内,这将使该高速缓存项不能使用。可能会需要一个读操作来检索一个指令,在这种情况下控制逻辑273判定一个IB REQ指令缓冲器请求信号。否则控制电路40判定一个RD读信号。如果所需的信息不在高速缓存35内,控制逻辑273也判定一个READ MISS信号。READ MISS信 号是所描述的HIT信号的补码。
作为对从控制电路40来的一个判定的RD读信号或对判定一个IB REQ指令缓冲器请求信号的响应,状态机271产生CACHE FTN(1∶0)高速缓存功能信号(这些信号启动一个高速缓存读操作)和CACHE ADRS(1∶0)高速缓存地址信号(它启动多路转接器264(图1B)去使用从虚拟地址转换逻辑37来的地址)。同时,状态机271判定ARM APRS STR待命地址选通(arm address strobe)信号,该信号使得由虚拟地址转换逻辑37来的地址装入读地址锁存器252。如果操作是对IB REQ信号作出过响应,状态机271还判定一个INITIB REQ启动指令缓冲器请求信号,该信号使得控制逻辑273设置一个标誌,此标誌又进而使得判定一个PREV IB REQ先前指令缓冲器请求信号。如果信息在高速缓存35内,状态机271允许信息由高速缓存35耦合至如上面图5所述的位置,然后操作终止。
如果信息不在高速缓存35内,并且DMA OR WRT PND(DMA或写待处理)信号被判定,则状态机271判定STALL和MBOX STALL信号从而使处理机30停止,还判定CACHE ADRS(1∶0)信号允许更新操作。处理器的停止允许在开始读操作之前完成写操作。
如果DMA OR WRT PND(DMA或写待处理)信号被除去,则读操作继续。状态机271允许控制逻辑276判定RD REQ读请求信号。状态机271然后监控CACHEABLE(可高速缓存)信号、CCTL高速缓存控制信号、RDY准备信号、和ERR出错信号以确定读操作的结束。如果CACHEABLE或CCTL高速缓存控制信号表明信息不应进行高速缓存,则在总线13上有一个传输过程。在另一种情况,如果信息将进行高速缓存,则需有二次传输,高速缓存项内的每个字各一次(图1B)。由于在一个特定的实施例中,第二最低有效地址位标识待检索的字,在第二检索过程中,在读地址寄存器中的第二地址位被倒置以便标识待检索的第二个字。这样,字可以与它们位于存贮器11中的可寻址单元的相反次序检索出来。
如果传输是打算用高速缓存,当收到RDY准备信号时,如果DAL PAR ERR奇偶校验位出错信号没有判定(说明在收到的信息中无奇偶校验位错误),状态机271使多路转接器264(图1B)使用从虚拟地址转换电路来的地址选择高速缓存35中的一个项,并使此信息装入所选定的高位字或低位字。信息将装入的高速缓存35中的那个字取决于VA(2)虚拟地址位的状态,此信息然后耦合至数据通路36(图1B)。
如果DAL PAR ERR奇偶校验位出错信号被判定,或在线55上ERR出错信号被判定(图1A),表示参与传输的其它装置的错误响应,则操作取决于PREV IB REQ先前指令缓冲器请求信号是否判定。如果已判定,则由一个判定的IB FILL ERR指令缓冲器填补出错信号通知控制电路40(图1B)使它能采取校正动作。如果PREV IB REQ先前指令缓冲器请求信号没有被判定,则STALL和MBOX STALL信号被判定以停止处理器30,并且TRAP REQ陷阱请求信号被判定,它使处理器控制电路40执行选定的恢复操作。
如果所接收的信息是将进行高速缓存的,并且当收到数据时如果ERR出错信号或DAL PAR ERR奇偶校验位出错信号都没有判定,则状态机271继续使第二个字被接收并贮存在高速缓存35内。如果第二个字被正确地接收,如上所述它贮存在高速缓存35中。状态机271 产生CACHE ADRS(1∶0)高速缓存地址信号,该信号使多路转接器264使用从虚拟地址转换电路37来的地址,还产生CACHE FTN(1∶0)高速缓存功能信号,使第二个字贮存在高速缓存的项中。但是,状态机271并不使信息传送至数据通路36。
在另一种情况,如果ERR出错信号或DAL PAR ERR奇偶校验位出错信号被判定,则MBOX STALL信号被判定,使虚拟地址转换电路37停止工作,并且被写入第一个字的高速缓存的项被标誌为无效的。同时,CACHE ADRS(1∶0)信号被调整使得多路转接器264使用从更新计数器262来的更新地址来更新高速缓存35的内容和使计数器增1。
每当状态机271不使信息在高速缓存35内写入或读出时,状态机271就使得更新操作被执行。为使操作进行,状态机271产生CACHE ADRS信号,此信号使多路转接器264使用从更新计数器262来的更新地址信号,以常规方式来更新贮存电路38、41和42的内容(图1B)。
状态机271也可响应来自控制逻辑273的DMA INV REQ无效请求信号使高速缓存35中的项无效。如图1B介绍时所述,此请求信号是在判定的CCTL高速缓存控制信号和判定的ADRS STR地址选通信号两者都为图1A的系统内其它装置所判定,并且两者相重合时产生的。它在其它装置执行与存贮器11的DMA(直接存贮器访问)操作时发生,因此DMG直接存贮器允许信号将被判定。如果另一装置把数据传输至存贮器11中在高速缓存35内存贮的单元内,高速缓存的项必须标识为无效的。在图1B中,为对DMG和ADRS STR地址选通信号的重合作出响应,一个AND与门401使输入数据贮存器254贮存信号,在此情况下,是在DAL数据/地址线50上的地址信号。
为响应DMA INV REQ无效请求信号,状态机271首先试图用输入数据贮存器254内的地址完成一个对高速缓存35的读操作,而不使高速缓存的数据耦合至内部总线34上。如果MISS信号判定,此单元不进行高速缓存,并且,无进一步的操作。
但是,如果MISS信号被除去,在输入数据锁存器254的地址所标识的单元被高速缓存,而状态机则启动一个高速缓存无效操作。此时它产生CACHE FTN(1∶0)高速缓存功能信号(此信号又启动一个无效操作),它还产生CACHE ADRS(1∶0)高速缓存地址信号,此信号使多路转接器264在无效操作中使用输入数据锁存器的内容。
状态机270的工作是对下列信号作出响应:CCTL高速缓存控制信号、DMR直接存贮器请求、由总线13来的RDY准备和ERR出错信号、RD REQ读请求、WRT REQ写请求、BRDCST REQ广播请求、从控制逻辑276来的CACHE ACC可高速缓存访问信号和从状态机271来的INH DMA禁止直接存贮器访问和AMR RD REQ待命读请求信号。如果状态机270接收一个判定的DMR直接存贮器请求信号,表示在图1A中描述的系统中另一个装置需要在总线上完成一次传输,除非INH DMA禁止DMA信号或BRDCST REQ广播请求信号被判定,否则状态机270就除去DIS DMG禁止直接存贮器许可信号,从而使控制逻辑277判定DMG直接存贮器许可信号。判定的DMG直接存贮器许可信号使另一个装置在总线13上执行传输。此外,状态机270判定DATA IN信号,该信号使DAL控制逻辑280调整DAL数据地址线50以允许系统内其它装置使用这些地址线。状态机270还判定TRI-STATE STR三态选通信号,使控制逻辑277允许其它装置使用DATA STR数据选通信号、ADRS STR地址选通信号和TRTYPE 传输型信号。
另一种可能是,如果系统内没有其它装置要在总线13上执行传输,则状态机270为响应从控制逻辑276来的RD REQ、WRT REQ和BRDCST REQ广播请求信号而在总线13上进行传输。如果WRT REQ写请求信号判定,则表示在锁存器251和250上分别有一个写地址和写数据(图1B);如果DMR信号未判定,状态机270产生DAL CONT(1∶0)(DAL内容)信号,它使得多路转接器253把写地址从锁存器251耦合至DAL数据地址线50上。同时,状态机270判定ADRS STR EN地址选通启动信号,该信号又使控制逻辑277判定ADRS STR地址选通信号。
其次,状态机270产生DAL CONT(1∶0)(DAL内容)信号,该信号使多路转接器253把写数据锁存器250的内容耦合至DAL数据地址线50上,同时,状态机270判定DATA STR EN数据选通启动信号,这样,进而又使控制逻辑277判定DATA STR数据选通信号。此后,状态机等待直至RDY准备或ERR出错信号判定。如果收到判定的RDY信号,通过除去ADRS STR EN地址选通启动和DATA STR EN数据选通启动信号而使操作终止,这样,进而又使控制逻辑277分别除去ADRS STR地址选通和DATA STR数据选通信号,使控制逻辑276除去WRT REQ信号。
在另一种情况下,如果收到判定的ERR出错信号,状态机270执行一次重试企图,此时它产生DAL CONT(1∶0)(DAL内容)信号,该信号使多路转接器253把写数据信号从锁存器250耦合至DAL数据地址线50。
如果RDY准备和ERR出错信号都判定,则产生一个重试信号,使传输企图重新进行一次。
如果不发生其它操作,状态机270产生DAL CONT(1∶0)(DAL内容)信号,它使得多路转接器253把读地址锁存器252的内容耦合至DAL数据地址线50。这允许状态机270在其它信号和状态允许一个读操作发生时立即启动一个读操作。在读操作过程中,当RD REQ读请求信号判定时,状态机270判定ADRS STR EN地址选通启动信号,这样,进而又使控制逻辑277判定ADRS STR地址选通信号。状态机270然后判定DATA IN数据输入信号,该信号使控制逻辑280调整DAL数据地址线50,以便系统内其它装置使用它们。同时,状态机判定DATA STR EN数据选通启动信号,这样,进而又使控制逻辑277判定DATA STR数据选通信号。
下面的操作取决于CACHE ACC可高速缓存访问信号是否被控制逻辑276所判定。如果此信号已判定,则所检索的数据是可高速缓存的,因此二个字被读至总线13上。另一种情况,如果CACHE ACC可高速缓存访问信号没有判定,则所检索的数据是不可高速缓存的,只有一个字被读至总线13上。如果CACHE ACC可高速缓存访问信号没有判定,状态机270判定一个RD DATA LAT读数据锁存器信号,当此信号判定时,它使输入锁存器254(图1B)从而接收在DAL数据地址线50上的信号。当RD DATA LAT读数据锁存器信号在此后被除去时,信号被输入锁存器所锁存。如果ERR出错信号被除去,为对判定的RDY准备信号作出响应,状态机270除去RD DATA LAT读数据锁存器信号,并判定CLR RD FLAGS清除读标誌信号。为对判定的CLR RD REQ信号作出响应,控制逻辑276除去RD REQ读请求信号。
在另一方面,如果CACHE ACC可高速缓存访问信号判定,则按上述执行一个读操作。如果在数据被锁存至输入数据锁存器上时CCTL高速缓存控制信号没有判定,也执行第二次操作。在另一情况下,如果CCTL高速缓存控制信号判定,说明参与传输的其它装置排除对数据执行高速缓存,则不执行第二次操作。
状态机271使用INH DMA禁止直接存贮器存取信号来禁止状态机270对从其它装置接收DMR直接存贮器请求信号作出响应而判定DMG直接存贮器许可信号。INH DNA禁止直接存贮器存取信号是在与浮点处理器31间的某些传输过程中判定的(图1A)。
由控制电路40来的RD BRDCST读广播和BASIC BRDCST基本广播信号使得状态机271传输高速缓存35中的或数据通路36中的寄存器255中的浮点操作数信息(见图1B)。控制逻辑276也被启动以判定BRDCST REQ广播请求信号,从而使状态机270按上面所述传输此信息。状态机271还使控制逻辑273设定一个标誌,此标誌判定一个FPP PND浮点处理器待处理信号。状态机271判定一个SIG FPP号令浮点处理器信号(signal floating point processor signal),以便向FPP接口电路272表示它已准备从浮点处理器31接收一个浮点操作的结果。当如上所述状态码准备好时,接口电路272判定一个CP OK信号,当结果数据准备好时,它判定一个CP RDY准备信号,为响应CP RDY准备信号,状态机271使状态机270接收结果数据。如果浮点处理器31发出一个出错信号,则接口电路272判定一个CP ERR出错信号,为响应CP OK、CP RDY或CP ERR信号,状态机271使控制FPP PND浮点处理器待处理信号的标誌复位,从而除去信号。
总线接口电路33提供许多优点。首先,采用二个状态机270和271,每个控制不同的操作和通过标誌进行通信,大大简化了电路。
此外,状态机271使高速缓存35更新,而允许在其中使用动态存贮部件。这减小了高速缓存的实际尺寸,或者有利于在与过去相同的区域中提供更多的高速缓存的存贮量。
此外,应该理解,总线接口电路33在检索可高速缓存的数据,首先检索程序需要的数据,然后检索用以贮存在高速缓存项内的其他字。在现有系统中,数据字的检索次序与它们在存贮器11内贮存的次序相同,因此,第一个数据字可能不是程序立即需要的那个字。这延迟了处理的继续,直到第二个字取出为止。
此外,当一个写操作待处理时,总线接口电路33允许读操作开始,从而使得产生一个读地址并被锁存至读地址锁存器252。在待处理的写操作完成之前,读操作没有完成,但当写操作完成时,读地址可立即被发送。
最后,总线接口电路还允许使高速缓存的项变为无效,这通过由图1A所描述的系统内其它装置完成的直接存贮器存取操作来进行,而与处理器30内是否已设置读或写操作无关。也就是说,高速缓存项无效操作可响应在输入锁存器254上所接收的DMA地址而产生,而写数据和写地址则在相应的锁存器251和250上所锁存(图1B),一个读地址也被锁存至锁存器252上。这简化了无效操作过程。
上述的介绍一直是限制在本发明的一个特定的实施例上。但是,对此发明很明显可进行各种变化和修改,而同时保留本发明的部分或全部的优点。因此,所附的权利要求包括属于本发明的实际精神和范围有关的所有这样的变化和修改。
Claims (2)
1、一种用于数字式数据处理系统的处理器,它包括一个处理信息的处理电路和一个与总线连接的总线接口电路,用于在上述的总线上从上述的系统内其它装置把信息传输给上述的处理电路进行处理,并用于在上述的总线上从上述的处理电路把经过处理的信息传输至上述的其它装置,上述的接口电路包括:
A 输入锁存器装置,它连接至上述的处理电路和上述的总线,以便将从其它装置接收的信息锁存,供传输至上述的处理电路;
B 输出锁存器装置,它连接至上述的处理电路和上述的总线,以便将上述的处理电路的信息锁存,供传输至另一个装置;
C 接口控制装置,包括:
i内部状态装置,它连接至上述的处理电路、上述的输出锁存器装置和上述的输入锁存器装置,以便在上述的处理电路和上述的输出锁存器装置和上述的输入锁存器装置之间控制传输信息;
ii外部状态装置,它连接至上述的输入锁存器装置、上述的输出锁存器装置和上述的总线,以便在上述的其它装置和上述的输入锁存器装置和上述的输出锁存器装置之间控制信息传输;
iii状态装置,它连接至上述的内部状态装置和上述的外部状态装置,并由上述的内部状态装置控制以便响应上述的输入锁存器装置和上述的输出锁存器装置的状态而具有一个选定的状态,从而控制上述的外部状态装置的工作。
2、一个总线接口电路,用于数字式数据处理系统中的处理器,它包括至少一个连接至一个总线的其它装置,上述的处理器包括一个处理信息的处理电路和上述的总线接口电路,上述的总线接口电路是用于与一个总线连接以便在上述的总线上从上述的其它装置将信息传输至上述的处理电路进行处理,和在上述的总线上从上述的处理电路将经过处理的信息传输至上述的其它装置,上述的接口电路包括:
A 输入锁存器装置,它连接至上述的处理电路和上述的总线,以便将从另一个装置接收的信息锁存至上述的处理电路;
B 输出锁存器装置,它连接至上述的处理电路和上述的总线,以便将上述的处理电路的信息锁存,供传输至另一个装置;
C 接口控制装置包括:
ⅰ 内部状态装置,它连接至上述的处理电路、上述的输出锁存器装置和上述的输入锁存器装置,以便在上述的处理电路和上述的输出锁存器装置和上述的输入锁存器装置之间控制信息的传输;
ⅱ 外部状态装置,它连接至上述的输入锁存器装置、上述的输出锁存器装置和上述的总线,以便在上述的其它装置和上述的输入锁存器装置和上述的输出锁存器装置之间控制信息的传输;
ⅲ 状态装置,它连接至上述的内部状态装置和上述的外部状态装置,并由上述的内部状态装置控制以便响应上述的输入锁存器装置和上述的输出锁存器装置的状态而具有选定的状态,从而控制上述的外部状态装置的工作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US017647 | 1987-02-24 | ||
US07/017,647 US4831520A (en) | 1987-02-24 | 1987-02-24 | Bus interface circuit for digital data processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN87107293A true CN87107293A (zh) | 1988-09-07 |
CN1011356B CN1011356B (zh) | 1991-01-23 |
Family
ID=21783770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN87107293A Expired CN1011356B (zh) | 1987-02-24 | 1987-12-07 | 用于数字数据处理器的总线接口电路 |
Country Status (12)
Country | Link |
---|---|
US (1) | US4831520A (zh) |
EP (1) | EP0283628B1 (zh) |
JP (1) | JP2547424B2 (zh) |
KR (1) | KR920004402B1 (zh) |
CN (1) | CN1011356B (zh) |
AT (1) | ATE125629T1 (zh) |
AU (1) | AU589815B2 (zh) |
BR (1) | BR8800537A (zh) |
CA (1) | CA1287924C (zh) |
DE (1) | DE3751426T2 (zh) |
IN (1) | IN171632B (zh) |
MX (1) | MX162024A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100524267C (zh) * | 2007-02-15 | 2009-08-05 | 威盛电子股份有限公司 | 数据处理系统及数据处理方法 |
CN101091189B (zh) * | 2004-11-25 | 2010-12-08 | 意大利电信股份公司 | 用于移动通信设备的联合ic卡和无线收发器模块 |
CN111813726A (zh) * | 2020-07-10 | 2020-10-23 | 中科芯集成电路有限公司 | 控制信号从高速总线向低速总线的转换方法 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091845A (en) * | 1987-02-24 | 1992-02-25 | Digital Equipment Corporation | System for controlling the storage of information in a cache memory |
US4965721A (en) * | 1987-03-31 | 1990-10-23 | Bull Hn Information Systems Inc. | Firmware state apparatus for controlling sequencing of processing including test operation in multiple data lines of communication |
US5029074A (en) * | 1987-06-29 | 1991-07-02 | Digital Equipment Corporation | Bus adapter unit for digital processing system |
AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
US5003459A (en) * | 1988-04-01 | 1991-03-26 | Digital Equipment Corporation | Cache memory system |
US5230067A (en) * | 1988-05-11 | 1993-07-20 | Digital Equipment Corporation | Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto |
US5097437A (en) * | 1988-07-17 | 1992-03-17 | Larson Ronald J | Controller with clocking device controlling first and second state machine controller which generate different control signals for different set of devices |
IT1227711B (it) * | 1988-11-18 | 1991-05-06 | Caluso Torino | Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo. |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
AU625293B2 (en) * | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
JPH0687232B2 (ja) * | 1988-12-19 | 1994-11-02 | 三菱電機株式会社 | データ処理装置 |
CA1325288C (en) * | 1989-02-03 | 1993-12-14 | Ricky C. Hetherington | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system |
DE3923872A1 (de) * | 1989-07-19 | 1991-01-24 | Philips Patentverwaltung | Schaltungsanordnung zum steuern des zugriffs auf einen speicher |
GB2238694A (en) * | 1989-12-02 | 1991-06-05 | Motorola Inc | "data interface system " |
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5203004A (en) * | 1990-01-08 | 1993-04-13 | Tandem Computers Incorporated | Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections |
US5307471A (en) * | 1990-01-31 | 1994-04-26 | Nec Corporation | Memory controller for sub-memory unit such as disk drives |
US5276852A (en) * | 1990-10-01 | 1994-01-04 | Digital Equipment Corporation | Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions |
US5255374A (en) * | 1992-01-02 | 1993-10-19 | International Business Machines Corporation | Bus interface logic for computer system having dual bus architecture |
US5353429A (en) * | 1991-03-18 | 1994-10-04 | Apple Computer, Inc. | Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller |
US5291609A (en) * | 1991-06-13 | 1994-03-01 | Sony Electronics Inc. | Computer interface circuit |
US5265216A (en) * | 1991-06-28 | 1993-11-23 | Digital Equipment Corporation | High performance asynchronous bus interface |
US5471638A (en) * | 1991-10-04 | 1995-11-28 | Bull Hn Inforamtion Systems Inc. | Bus interface state machines with independent access to memory, processor and registers for concurrent processing of different types of requests |
US5414827A (en) * | 1991-12-19 | 1995-05-09 | Opti, Inc. | Automatic cache flush |
US5388237A (en) * | 1991-12-30 | 1995-02-07 | Sun Microsystems, Inc. | Method of and apparatus for interleaving multiple-channel DMA operations |
CA2080210C (en) * | 1992-01-02 | 1998-10-27 | Nader Amini | Bidirectional data storage facility for bus interface unit |
JPH07504527A (ja) * | 1992-03-09 | 1995-05-18 | オースペックス システムズ インコーポレイテッド | 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム |
DE4326740C1 (de) * | 1993-08-09 | 1994-10-13 | Martin Kopp | Architektur für eine Rechenanlage |
US5721882A (en) * | 1994-08-05 | 1998-02-24 | Intel Corporation | Method and apparatus for interfacing memory devices operating at different speeds to a computer system bus |
IES950209A2 (en) * | 1995-03-24 | 1995-10-18 | Lake Res Ltd | Communication apparatus for communicating two microprocessors |
US6260126B1 (en) | 1998-06-05 | 2001-07-10 | International Busines Machines Corporation | Data storage subsystem having apparatus for enabling concurrent housekeeping processing while an input/output data transfer occurs |
WO2001035234A1 (en) * | 1999-11-05 | 2001-05-17 | Analog Devices, Inc. | Generic serial port architecture and system |
US6961796B2 (en) * | 2001-07-26 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Extendable bus interface |
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7200024B2 (en) * | 2002-08-02 | 2007-04-03 | Micron Technology, Inc. | System and method for optically interconnecting memory devices |
US7117316B2 (en) * | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US7149874B2 (en) * | 2002-08-16 | 2006-12-12 | Micron Technology, Inc. | Memory hub bypass circuit and method |
US7054971B2 (en) * | 2002-08-29 | 2006-05-30 | Seiko Epson Corporation | Interface between a host and a slave device having a latency greater than the latency of the host |
US7836252B2 (en) * | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
US7102907B2 (en) * | 2002-09-09 | 2006-09-05 | Micron Technology, Inc. | Wavelength division multiplexed memory module, memory system and method |
US7245145B2 (en) * | 2003-06-11 | 2007-07-17 | Micron Technology, Inc. | Memory module and method having improved signal routing topology |
US7120727B2 (en) * | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7107415B2 (en) * | 2003-06-20 | 2006-09-12 | Micron Technology, Inc. | Posted write buffers and methods of posting write requests in memory modules |
US7428644B2 (en) * | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7260685B2 (en) * | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
US7133991B2 (en) | 2003-08-20 | 2006-11-07 | Micron Technology, Inc. | Method and system for capturing and bypassing memory transactions in a hub-based memory system |
US7136958B2 (en) * | 2003-08-28 | 2006-11-14 | Micron Technology, Inc. | Multiple processor system and method including multiple memory hub modules |
US20050050237A1 (en) * | 2003-08-28 | 2005-03-03 | Jeddeloh Joseph M. | Memory module and method having on-board data search capabilities and processor-based system using such memory modules |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7234070B2 (en) | 2003-10-27 | 2007-06-19 | Micron Technology, Inc. | System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding |
US7788451B2 (en) * | 2004-02-05 | 2010-08-31 | Micron Technology, Inc. | Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system |
US7412574B2 (en) * | 2004-02-05 | 2008-08-12 | Micron Technology, Inc. | System and method for arbitration of memory responses in a hub-based memory system |
US7257683B2 (en) | 2004-03-24 | 2007-08-14 | Micron Technology, Inc. | Memory arbitration system and method having an arbitration packet protocol |
US7213082B2 (en) | 2004-03-29 | 2007-05-01 | Micron Technology, Inc. | Memory hub and method for providing memory sequencing hints |
US7447240B2 (en) * | 2004-03-29 | 2008-11-04 | Micron Technology, Inc. | Method and system for synchronizing communications links in a hub-based memory system |
US6980042B2 (en) * | 2004-04-05 | 2005-12-27 | Micron Technology, Inc. | Delay line synchronizer apparatus and method |
US7363419B2 (en) * | 2004-05-28 | 2008-04-22 | Micron Technology, Inc. | Method and system for terminating write commands in a hub-based memory system |
US20080282072A1 (en) * | 2007-05-08 | 2008-11-13 | Leonard Todd E | Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table |
US8621154B1 (en) | 2008-04-18 | 2013-12-31 | Netapp, Inc. | Flow based reply cache |
US8161236B1 (en) | 2008-04-23 | 2012-04-17 | Netapp, Inc. | Persistent reply cache integrated with file system |
US8171227B1 (en) | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2837214A1 (de) * | 1978-08-25 | 1980-03-06 | Siemens Ag | Anordnung zum uebertragen von digitalen datensignalen |
US4258417A (en) * | 1978-10-23 | 1981-03-24 | International Business Machines Corporation | System for interfacing between main store memory and a central processor |
JPS5714922A (en) * | 1980-07-02 | 1982-01-26 | Hitachi Ltd | Storage device |
US4503535A (en) * | 1982-06-30 | 1985-03-05 | Intel Corporation | Apparatus for recovery from failures in a multiprocessing system |
-
1987
- 1987-02-24 US US07/017,647 patent/US4831520A/en not_active Expired - Lifetime
- 1987-08-21 IN IN734/DEL/87A patent/IN171632B/en unknown
- 1987-09-02 MX MX8089A patent/MX162024A/es unknown
- 1987-09-04 CA CA000546136A patent/CA1287924C/en not_active Expired - Fee Related
- 1987-09-17 EP EP87402076A patent/EP0283628B1/en not_active Expired - Lifetime
- 1987-09-17 AT AT87402076T patent/ATE125629T1/de not_active IP Right Cessation
- 1987-09-17 DE DE3751426T patent/DE3751426T2/de not_active Expired - Lifetime
- 1987-09-28 JP JP62243532A patent/JP2547424B2/ja not_active Expired - Fee Related
- 1987-10-22 AU AU80035/87A patent/AU589815B2/en not_active Ceased
- 1987-10-30 KR KR1019870012091A patent/KR920004402B1/ko not_active IP Right Cessation
- 1987-12-07 CN CN87107293A patent/CN1011356B/zh not_active Expired
-
1988
- 1988-02-05 BR BR8800537A patent/BR8800537A/pt not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101091189B (zh) * | 2004-11-25 | 2010-12-08 | 意大利电信股份公司 | 用于移动通信设备的联合ic卡和无线收发器模块 |
CN100524267C (zh) * | 2007-02-15 | 2009-08-05 | 威盛电子股份有限公司 | 数据处理系统及数据处理方法 |
CN111813726A (zh) * | 2020-07-10 | 2020-10-23 | 中科芯集成电路有限公司 | 控制信号从高速总线向低速总线的转换方法 |
CN111813726B (zh) * | 2020-07-10 | 2023-03-07 | 中科芯集成电路有限公司 | 控制信号从高速总线向低速总线的转换方法 |
Also Published As
Publication number | Publication date |
---|---|
KR880010365A (ko) | 1988-10-08 |
DE3751426D1 (de) | 1995-08-31 |
EP0283628A2 (en) | 1988-09-28 |
CN1011356B (zh) | 1991-01-23 |
BR8800537A (pt) | 1988-09-27 |
EP0283628B1 (en) | 1995-07-26 |
AU8003587A (en) | 1988-08-25 |
KR920004402B1 (ko) | 1992-06-04 |
MX162024A (es) | 1991-03-22 |
ATE125629T1 (de) | 1995-08-15 |
CA1287924C (en) | 1991-08-20 |
AU589815B2 (en) | 1989-10-19 |
DE3751426T2 (de) | 1996-03-14 |
EP0283628A3 (en) | 1990-05-16 |
IN171632B (zh) | 1992-11-28 |
US4831520A (en) | 1989-05-16 |
JP2547424B2 (ja) | 1996-10-23 |
JPS63208963A (ja) | 1988-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN87107293A (zh) | 用于数字数据处理器的总线接口电路 | |
CN1277216C (zh) | 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 | |
EP0071719B1 (en) | Data processing apparatus including a paging storage subsystem | |
KR100274771B1 (ko) | Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법 | |
KR100293136B1 (ko) | Smp버스의최근판독상태에서의캐시라인들의공유개입방법 | |
EP0404369A2 (en) | A method for maintaining cache coherence in a multiprocessor computer system | |
EP0526930A1 (en) | A processor buffered interface for multiprocessor systems | |
JPH0458050B2 (zh) | ||
WO1999036858A1 (en) | Data transferring in source-synchronous and common clock protocols | |
CN88100762A (zh) | 可编程选件的选择 | |
US5987530A (en) | Method for caching data and generating only one read request to read the requested data and additional data in universal serial bus system | |
US3704453A (en) | Catenated files | |
KR920007950B1 (ko) | 다이렉트 메모리 액세스 제어장치 | |
WO1988006762A1 (en) | Central processor unit for digital data processing system including cache management mechanism | |
US5339397A (en) | Hardware primary directory lock | |
CN1160618C (zh) | 可编程控制器 | |
CN1016653B (zh) | 数字数据处理系统用的总线适配器装置 | |
JPH08115289A (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
CN1019152B (zh) | 数字数据处理系统中处理器与专用指令处理器间的接口 | |
EP0072107B1 (en) | Peripheral sub-systems accommodating guest operating systems | |
EP0522728B1 (en) | Method for efficient access of data stored in a nexus table | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
CN1282087C (zh) | 远程数据存取方法及使用该方法的计算机 | |
JPS6319857Y2 (zh) | ||
AU617514B2 (en) | Multiple processor/cache memory system and data transaction control therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |