防止封锁一个系统控制器的高优先级请求的电路的制作方法

文档序号:6405174阅读:310来源:国知局
专利名称:防止封锁一个系统控制器的高优先级请求的电路的制作方法
技术领域
本发明涉及一种使数据处理系统的系统控制部件的各预定命令类型不致被封锁的电路,更具体地说,涉及一种信号发生电路,该电路可用于避免对一个系统控制部件的高优先级请求的封锁,而所述控制部件具有多命令层次条件循环端口服务的优先级分级结构。
本系统的系统控制部件已包括基于端口组的端口优先级,因此可旁路某个成组端口。成组端口特别能以一前一后地配置数据处理系统的形式出现,从而使两个中央处理器(CPUs)可对两个相应的系统控制部件(SCUs)的每一个提出各种请求,同时使两个输入/输出(I/O)部件被分别连到两个SCUs。本发明被包括在一个具有多个赋有预定优先级层次的命令类别的系统控制器内。包含本发明的所述系统控制器的端口服务是建立在命令的高和低两种层次的基础上的,高层次命令具有优先于低层次命令的优先权。各层次彼此独立。当要服务于某一端口时,只要在这一层次范围内不存在由于该系统的某些必要部分失效而封锁了某个待处理的服务请求的更高优先级端口,则该层次内的优先权便被循环。当判定对一个较低的高优先级请求已服务的次数是跳过某一较高的待处理高优先级请求的预定服务次数时,则本发明的电路产生这样一个控制信号。以使系统控制器阻止来自诸设备(连到CPUs和I/O单元)的其它请求被SCU处理。当单个独立端口在预定的选择区间内未被选用时,则该端口用户可在已建立的系统要求范围内改变其命令层次。
本专利申请与名称为“具有多命令层次的条件循环端口服务优先级分级结构用于控制系统访问的设备”的美国专利申请有关,该申请是由RobertJ.Kaegel等人转让给本申请的受让人-Honegwell信息设备公司并于同日提交申请的(该美国专利申请的申请号为)。
为此,借助本发明提供了一种电路,用以避免对一个具有多命令层次的条件循环多端口服务优先级的系统控制器的高优先级请求的封锁。
一个数据处理系统包括一个系统控制制器,该控制器用于根据来自操作时连到系统控制器的某相应端口的多个设备的某个访问请求,去控制至少一个子系统的访问。所述访问请求是处在彼此具有预定的相对优先级的多个命令层次中的一个层次,而且所述各端口都具有各命会层次内的彼此相对的预定的端口优先级。所述端口优先级是在对应于来自正被允许访问的设备的访问请求的命令层次范围内有条件地循环的。所述系统控制器包括一个用于避免对一个较高的待处理的高优先级请求进行封锁的电路。该电路包括一个计数单元以统计不允许较高的待处理的高优先级请求访问的次数。该计数结果形成暂存在该计数单元内的计数值。在操作中被连到计数单元的一个比较单元将所述计数值与一个预定值相比较,所述预定值就是所述数据处理系统将允许旁路所述较高的待处理的优先级请求的次数的预定值。当所述计数值等于所述预定值时,即从该比较单元输出一个控制信号。该控制信号被耦合到每个端口,以便禁止该系统控制器接受来自各设备的其它任何访问请求。
所述电路还包括一个锁存单元,该单元在操作时被连接到比较单元,该锁存单元是用于在判定一个后续于被允许访问的高优先级请求不是最高一级的高优先级请求时保持所述控制信号直至所有待处理的高优先级请求均已被允许访问时为止。一个复位单元,该单元在操作时被连到计数单元,当一个高优先级请求被允许访问而同时没有更高的高优先级请求正待处理时,该复位单元清除所述计数值。
因此,本发明的一个目的是为避免封锁待处理更高的高优先级请求而提供一种电路本发明的另一目的是为提供一种电路,以便阻止对一个具有多命令层次的条件循环优先级分级结构的系统控制器的待处理更高的高优先级请求进行封锁。
本发明的又一目的是提供一种电路,以便阻止对一个具有多个命令层次,每个命令层次有一预定优先级的系统控制器进行对待处理更高的高优先级请求的封锁。
本发明的进一步目的是为提供一种电路,用以阻止对一个具有多层次,每个命令层次有一预定优先级,各层次相互独立的系统控制器发出的待处理更高的高优先级请求进行封锁。
本发明的再一目的是为提供一种用于避免对某种系统控制器的待处理更高的高优先级请求进行封锁的电路,该控制器是具有多个层次,各命令层次具有某一预定优先级,各层次相互独立,而且只要某层次范围内没有一个服务请求正在进行中,则当要服务某个端口时,各端口的各层次范围的优先级是循环的。
本发明的上述以及其他目的在参照了下列说明以及附图后将会变得更明瞭,附图中相同字符表示相同部件,同时各附图构成本申请的一部分。


图1表示一个数据处理系统,该系统包括一个系统控制部件,本发明的电路即可在该系统控制部件内找到;
图2表示图1所述数据处理系统的系统控制部件的功能方块图;
图3表示来自同一存储部件的两个不同端口的请求的定时图;
图4表示来自两个不同端口的同时请求的一个定时图;
图5表示利用本发明电路的系统控制部件的端口请求控制部件的一个功能方块图;
图6表示利用本发明电路的系统控制部件的活动优先级选择控制部件的一个功能方块图;
图7表示利用本发明电路的图6中活动优先级选择控制部件的端口优先级接受性控制部件的一个逻辑框图;
图8表示利用本发明电路的图6中活动优先级选择控制部件的端口优先级禁止前进控制部件的一个逻辑框图;
图9表示端口优先级选择控制部件的部分逻辑框图;
图10表示本发明电路的一个功能方块图;
图11表示图10的本发明最佳实施例电路的一个逻辑框图;
图12表示所述系统控制部件的活动寄存器的一个部分功能方块图;
总起来合成图13的图13A和13B表示本发明最佳实施例的端口请求控制部件的一个逻辑框图;
图14表示所述数据寄存器的一个功能方块图,该图表明数据通过系统控制部件的数据流;和图15表示系统控制部件的最佳实施例的存储器接口的一个定时图。
参照图1,图中所示数据处理系统(DPS)10包括一个装有本发明电路的系统控制部件(SCU)50。在DPS10中,包括有一个存储器20,一台中央处理机(CPU)30,和一个输入/输出(I/O)部件40,部件40本身又具备种种外围设备(PER)的接口。CPU30和I/O部件40经由系统控制部件(SCU)50同存储器20连接。(CPU和I/O部件40为执行DPS10的预定任务而请求存储器20。SCU50(或有时称之谓存储器控制装置)判定CPU30或I/O部件40将在请求的同时获得对存储器20的访问,还是在接近于请求的同时获得对存储器20的访问。为了消除对存储器20访问的(或对内部SCU寄存器的访问)请求中的各冲突,SCU50的逻辑包括一个可使高优先级请求先被允许的一张优先级分类表。一般说来,在被允许访问存储器20以前,CPU30能抽出一小段等待时间。在某些情况下,当I/O部件40正同例如磁盘文件连接时,则由于I/O特性(即数据转移)发生在I/O部件40和磁盘文件之间而使I/O部件40抽不出等待时间。在某些情况下,I/O部件40正同某个不要求快速访问存储器20的外部设备连接,则在此情况下的I/O部件便能够等待。于是,诸如高的和低的优先级命令的各种不同类型命令被编入DPS10,这些命令是由所述诸设备(即,DPS10的最佳实施例的CPU30或I/O部件40)发布,以便有助于保证由SCU50在允许访问存储器20的问题上作出正确判定。表1表示出在此最佳实施例中所用的命令格式。SCU50包括多个端口;在最佳实施例中,SCU50包括各端口0-7,这些端口各具有基于某一命令层次内的端口数目的初始优先级。由于服务一个来自I/O部件40或CPU30或任何可连到对应端口的辅助设备的请求的结果,可使一个命令层次内的优先级循环,以便避免优先级端口被封锁。还有,所述优先级的循环是有条件的,该条件是在一个还未被响应的命令层次范围以内,没有一个更高的待处理优先级请求。这就进一步保证了一个更高的优先级请求不会长期地被忽略。虽然已编入该最佳实施例的命令层次只有两个,但本领域的技术人员当然懂得可增加所述命令层次的数目。再有,在SCU50的最佳实施例讨论中虽然只用了端口0和1,当然也可将附加设备连接到所述现有端口,或可变更端口的数目。
数据处理系统10的最佳实施例中的存储器20包括16个存储部件-存储部件0200至存储部件15215,各存储部件0-15被连接到总线220,该总线220包括一根输入总线和一根输出总线(图中未示),所述SCU50也被连到总线220。
在SCU50和CPU30之间、以及SCU50和I/O部件40之间存在一个用于分别经由互连线31,41的交换数据的I/O协议。当CPU30或I/O部件40要求访问存储器20时,则将一个请求信号置位于各自的互连线31′,41′上,后者是所示互连线31,41的一部分。当然,互连线31,41以及总线220包括诸数据线、地址、和命令与控制线。此外,表示命令的信号和表示存储器存储单元的某一信号通过请求装置(即,
上。SCU50的逻辑可判定是否要接受来自CPU30或I/O部件40的请求信号。若满足预定条件(例如存储器处在可用状态,……),则就按照SCU50逻辑的优先级分级结构而接受所述请求,同时从SCU50发出一接受信号送至该端口,而若按照所制订的协议允许数据在端口和CPU30(或I/O部件40)之间进行数据传送的话,则所述接受信号又从端口传送至CPU30或I/O部件40。此处令人感兴趣的是根据本发明的多命令层次条件循环多端口服务优先级分级结构,用于接受来自CPU30或I/O部件40请求的SCU50的逻辑,这将在下面详细论述。有关SCU50中所用的本发明电路,将在下面论述。在SCU50已接受了CPU30或用于数据传送的I/O部件40以后所进行的数据传送是与已制订的协议一致的,因而与对SCU50或本发明的电路的论述无关,故在此不作进一步论及。
表1
表1(续)
表1(续)
表1.(续)
位0位1位2位3-5类型目的地优先级代码0=读0=SCU0=低1=写1=存储器1=高在论述本发明的电路以前,应对SCU50有一个清楚的了解故现将参照示出SCU50的功能方块图,附图2予以说明。该最佳实施例的SCU50包括8个端口,即端口0至端口7(51-0至51-7),每个端口被连接至各自的设备。在该SCU50
件40(图中未示),而端口151-1是经由互连线31连到CPU30(图中未示)的。在SCU50的这个最佳实施例中,留下的端口2至端口7(51-2至51-7)诸端口未被连到任何设备。各端口51-0至51-7被连到各自的端口请求控制器52-0至52-7。在端口0请求控制器52-0,……至端口7请求控制器52-7中的每个端口请求控制器的输出将相应的专用请求信号耦合到一个活动优先级选择控制器56。在完成请求的定时、选定存储部件、构成请求类型以及为允许请求所需的硬设备的有效性的基础上,所述活动优先级选择控制器56接受该请求并将一个接受请求信号PO-ACPT-REQ、……P7-ACPT-REQ耦合到相应的端口(端口051-0、……端口751-7)。此外,各种不同控制信号从活动优先级选择控制器56被连到活动寄存器58和用于同总线220连接的活动寄存器逻辑部件58的存储器数据寄存器(图中未示)。在SCU50的最佳实施例中,存在着为提供高达五项要同时处理的活动的逻辑,一项活动是接受一个端口请求。活动优先级选择控制器56运用一控制信号-保持请求(HOLd-REQ),以便当判定某个较低的高优先级请求被服务的次数已是跳过某个待处理较高的高优先级请求的预定次数时,就阻止任何其他请求被耦合通过端口51。所述HOLD-REQ信号被耦合到端口0-51、-0至端口751-7的每一个。下文包含了对本发明电路的最佳实施例的论述。包括有一个存储部件忙碌控制部件54,用于处理和保持有关存储部件0200至存储部件15215的忙/闲状态的信息。相应的状态信号从存储部件忙碌控制器54被耦合到相应的端口请求控制逻辑电路52-0至52-7。
某一端口的接受(从而在同时的-或差不多同时的-各请求已由连到SCU50的设备提出时就可允许其同SCU501存储器20通信)是基于一种优先级的分级结构的,在此分级结构中,各端口均已对各命令层次规定了一个初始优先级,但当某命令层次之内的一个请求已被服务时,则该命令层次内的优先级发生变化(即,循环);不过,这种优先级的变化是有条件的即在那个命令层次范围内不存在一个较高优先级的待处理端口请求。端口服务是基于来自连到SCU50的设备的各命令的层次,SCU50的本最佳实施例包括两个命令层次,即高和低。现结合附图2,3和4描述本发明最佳实施例的所述接受操作。图3表示对同一存储部件而言具有同一命令层次的请求的定时图,其中一个请求是在一个时钟时间(T-TIME)以后提出的,图4表示来自诸设备同时(即同一时钟时间)提出的具有同一命令层次的请求的一个定时图。在此应当指出SCU50,存储器20和SCU一设备等的接口定时是建立在同步的基础上的。
参考图3,图中示出一个时钟信号,也称之谓定时〔定义〕〔definer〕CLK-DEF。一个时钟周期称之为T-TIME。图中示出的第二时钟信号,即定时(非一定义)(non-definer),借此,每半个T-TIME周期产生一个时钟脉冲。在图3实例中,一个来自CPU30对存储器0的请求出现在To-TIME的起始点。这个请求是通过互连线31的。一个从端口1 51-1输出的请求存在信号(P1-REQ-PRES)在T1的起始点输出,并被耦合到相应的端口1的请求控制器52-1。在T1的起始点还提出一个由I/O部件40请求存储器0的请求,该请求是经由互连线41而进行的。在一个T-TIME以后,即T2开始时,端口0 51-0输出所述请求存在信号(PO-REQ-PRES),同时该信号被耦合到端口0请求控制器52-0。然而,在T1时间间隔内,端口1请求控制逻辑52-1和活动优先级选择控制逻辑56使端口1的接受请求信号(P1-ACPT-REQ)产生,并返回连到端口1 51-1。结果,在T2开始时,存储器部件0 200已被选择并导致一个忙碌状态指示,以致当端口0请求控制逻辑52-0处理来自端口0的请求存在信号时,所请求的存储器将是无效的,从而阻碍(即,低或不活动的)各专用请求信号(PO-PREQ-GO,PO-LPREQ-PRES,PO-HPREQ-PRES,和PO-HPRI-REQ)到活动优先级选择控制器56。
参见图4,图中显示了由于同时请求的结果而产生的诸控制信号(图4的定时示出一个写2个字到存储器的操作,各请求是能够用于同一命令层次内的任何命令的)。在T0时间间隔内,在T0时间开始时,来自I/O部件40和CPU部件30的请求分别经由互连线41,31提出。包含在互连线41,31上的信息包括地址、区段、数据和命令/控制信息。在T0时间间隔内,端口051-0和端口1 51-1根据命令和地址信息执行某些处理,致使各存储器选择位(0-3)被连到存储部β悼刂破 4,同时来自各对应端口51的命令位(0-5)被耦合到它的相应的端口请求控制器52。来自各端口51的地址位(0-27),命令位(0-5)和区段位(0-3)被耦合到活动寄存器逻辑部件58。在所述SCU50的最佳实施例中,采用了36位CPU字(加4位奇偶校验位),每个字有四个9比特字节。诸区段标识一字内的一个字节,而诸地址位规定存储器存储单元和存储部件的地址。在T1时间开始时,为响应对相应设备的请求,端口0产生端口0请求存在信号(PO-REQ-PRES)和端口1 51-1产生端口1的请求存在信号(P1-REQ-PRES)。结果,端口0请求控制器52-0和端口1请求控制器52-1将对应的各特定请求信号(PX-PREQ-GO,PX-LPREQ-PRES,PX-HPREQ-PRES和PX-HPRI-REQ,其中对端口0来说,X=0;对端口1则X=1)耦合到对应的活动优先级选择控制器56。此时,活动优先级选择控制器56的优先级选择逻辑变得有效了,从而对来自端口0或端口1的请求作出接受其中哪一个的判定,被接受的请求是来自具有最高优先级的端口的请求。该判定是在T1时间内完成的。如果命令层次相同,则在该命令层次范围内,首先为最高优先级端口服务。当命令层次不等时,则首先为具有最高命令层次的端口服务。由于活动优先级选择控制器56的优先级选择逻辑的操作结果,产生了端口0的接受请求信号(PO-ACPT-REQ),则在该信号被耦合到端口0 51-0后,才开始T2T-TIME(此处为举例说明起见,假设此时端口0具有较高的优先级)。若由端口1所选的存储部件不同于由端口0所选的存储部件,而且总线220在固有的时间间隔内是可用的,并满足其他条件(即,在正确时刻为执行该命令所需逻辑是有效的,也就是说,该时刻该命令实际上被执行了)的话,则在T2T-TIME期间,将接受端口1的请求(在图4中由虚线表示的P1-ACPT-REQ信号,该信号照例应该在T3T-TIME开始之前耦合返回到端口1 51-1)。起始活动信号(START-ACT)的开始启动了存储器循环,并由端口0请求所选的存储部件指示一种忙碌状态。在图4中所示的其余信号基本上表示某些存储器接口的定时关系。在T2期间,诸地址位ADR(0-27),诸区段位(0-3)和对存储器的命令被耦合到存储器20。此外,来自端口(在此情况下是端口0)的数据(PC-DTA)被耦合到各活动寄存器58,对各活动寄存器58来说,在第一个T2/2时间内,第一个40位字是有效的,而在第二个T2/2期间,第二个40位字有效。DPS10的最佳实施例的40位字包括36位数据字加4个奇偶校验位。于是在T4时间间隔内,待写入存储器的数据就被置于总线220上。在T6时间间隔内,存储器状态字从存储器20被读至SCU50。这个循环组成最佳实施例系统的最小写循环时间。
在时间T0期间,由端口51经由互连线31,41接收的各种不同信号都被寄存在端口逻辑线路(图中未示出)内。结果,为处理请求所需的各种不同信号(PX-REQ-PRES-其中X表示端口0-7),各命令信号(PX-CMD〔0-5〕),各存储器选择信号(PX-MEM-SEL〔0-3〕)和各地址与区段信号(PO-ADR〔0-27〕和PX-ZONE〔0-3〕)均对剩下的SCU50的逻辑是有效的。
在对SCU50的操作进行详尽讨论之前,先扼要地举例综述SCU50在响应来自设备的诸请求而允许访问存储器方面的操作。假设一个数据处理系统有一个SCU50带八个端口0-7。再假设在某一预定周期内,端口优先级和命令层次如表2所示,命令层次是固定的而端口优先级是(有条件地)可循环的。再进一步假设在该预定周期内,一个具有命令层D的请求命令存在于端口6上,而具有命令层B的一个请求命令出现在端口2上。由于这两个请求是同时发生的(即,在同一个预定周期内),故优先级逻辑必须确定应允许(或服务)哪个请求。由于来自端口2的请求是一个B层命令,又因B层命令的优先级为高,故对端口2的请求将胜过对端口6的请求而被允许访问(即,对端口6的请求被旁路)。首先考虑在优先级分级结构方面的命令层次采用B命令层端口优先级。然后,考虑如果在B命令层端口优先级中不存在待处理的更高优先级端口请求时,则端口优先级就要被循环,以致端口2,即刚服务过的端口,就具有最低的优先级,导致B命令层端口优先级依次为3(最高优先级),4,5,6,7,0,1,2。这样,该循环是在一个命令层内的。就上述次序(循环前)而言,若对端口5,6,7,0,1,之任一具有B命令层的端口请求正待处理,但由于为允许该请求的硬设备的无效性而使这些端口不具备运行条件,则B命令层内的循环就要被禁止。尽管在表2中未示出,但还存在一个A命令层,一个C命令层和一个E命令层次端口优先级。
表2
参见图5,这是端口请求控制器52的一个功能方块图。来自对应端口的请求存在信号和命令信号与来自存储部件忙碌控制部件54和活动寄存器58的各种不同控制信号一道被接收。(注意图5中所示端口请求控制部件52的信号标志具有与端口0请求控制器52-0相关的专用标号。然而,该逻辑对具有特定PX信号-其中X规定各自端口的各个端口请求控制部件52是重复的。)禁止封锁信号PO-INH-LK是响应于读封锁命令而产生的一个控制信号,该控制信号是控制SCU去封锁所有存储部件而阻止来自其他端口的读封锁和写承诺(honor)封锁命令的。所述存储部件是由来自初始封锁端口的后继服务命令解除封锁的。活动寄存器58包括多个移位寄存器,所述移位寄存器的各位置对应一个时间段,在该时间段内,由于已被接收的一个活动的结果,总线220的存储器输入总线或存储器输出总线将是有效的。在活动寄存器58的一个移位寄存器里的数据构成控制信号(ACT-DIN-SR-B〔7-10〕),该控制信号指示一个未来周期内的预先输入总线忙碌状态并被耦合到一个存储器数据输入总线比较部件151。同样,若由于某个活动的结果,数据要从一个存储器部件读出,则各活动寄存器58的一个第二移位寄存器指示总线220的数据输出总线是处于忙碌的那个时间段,该第二移位寄存器的各预定位(位8-10)构成控制信号ACT-DOUT-SR-B(8-10),并被耦合到存储器数据输出总线比较部件152。同样,属于SCU50的内部寄存器的中断/连接队列也能被访问,同时指示SCU50的某些内部逻辑将处于忙碌状态的控制信号ACT-IC-SR-B(1-2)被耦合到INT/CON写比较部件153。来自存储部件忙碌控制器54的控制信号ADRU-GO表示上存储部件,即存储部件0-7(200-207),是否可用,而控制信号ADRL-GO表示下存储部件,即存储部件8-15(208-215),是否可用,这两种控制信号均被耦合到存储部件比较部件154。比较部件150-154的各输出被耦合到端口请求接受控制器156。若在一(各)个预定的未来周期期间,为命令操作所需的存储器和总线不忙碌,而且用于该接受命令而作的操作所需的逻辑线路是有效的,则端口请求接受控制器156将预定的专用请求信号输出到活动优先级选择控制部件56。
参见图6,这是表示活动优先级选择控制器56的一张功能方块图。一个端口优先级接受控制部件160接收来自诸端口请求控制部件52(其中可能一个以上是真实的)之一个的请求存在运行信号(PREQ-GO),所有这些信号在T-TIME期间处于同一命令层内。根据这些输入,端口优先级接受控制器160的逻辑为在一个给定T-TIME期间只接受一个请求而作出判定,并输出该接受请求信号(PX-ACPT-REQ)至相应的端口。在接受以后,则在后继的T-时间开始时,各端口的优先级被有条件地循环。一个端口优先级超前禁止控制部件161同端口优先级接受部件160连接。该端口优先级超前禁止控制部件161接收来自各端口请求控制部件52的低优先级请求存在信号(LPREQ-PRES)和高优先级请求存在信号(HPREQ-PRES),并根据刚接受的该命令层内较高优先级待处理请求,该逻辑就判定是禁止还是允许该端口优先级接受控制部件160的循环。一个接收到一个指示哪个端口已有一个请求被接受的接受信号(ACPT),而且还接收到包括来自各端口的高优先级请求信号的其他控制信号的端口优先级选择控制部件162就产生用于将执行所请求操作所需的信息装入活动寄存器的控制信号,而且还产生一个被耦合到存储部件忙碌控制部件54的启动存储器信号(START-MEM)。
现将描述优先级逻辑。如上所述,活动优先级选择控制器56包括端口优先级接受控制器160,端口优先级超前禁止控制器161,端口优先级选择控制器162,以及活动选择控制器163。参见图7,这是表示端口优先级接受控制器160的一个逻辑框图。端口优先级接受控制器160包括第一种多个开关,即循环开关(ROT-SWIROTSW8),每个循环开关201-208有0-7八个输入端,这些循环开关接受来自每个端口的PX-PREQ-GO信号,以使PO-PREQ-GO信号被连到第一循环开关201上的0输入端,第二循环开关202的第七输入位置,第三循环开关203的第六输入位置,第四循环开关204的第五输入位置,第五循环开关205的第四输入位置,第六循环开关206的第三输入位置,第七循环开关207的第二输入位置,和第八循环开关208的第一输入位置。所有余下的PX-REQ-GO信号以类似方式被连到其余的循环开关202-208的各预定位置。各循环开关的输出被连到相应的与非门211-218。此外,每个循环开关的补码或反码(bar)输出则以如下的优先次序被连到它下面的各与非门。同与非门211相关的第一循环开关201具有较第二循环开关202为高的优先级;因此,第一循环开关201的反码输出被连到第二与非门212和其下面的每个与非门213-218。所述各与非门构成端口优先级接收控制逻辑160的优先级树。第二种多个开关,即导引开关221-228被这样连到优先级树,以致第二种开关的输出使接受信号返回同基于优先级循环的正确端口耦合。导引开关221-228和循环开关201-208的选择位置已分别同那里的选择控制信号PRI-SW-SEL4,2,1和4A,2A,1A耦合。这里选择控制信号是相似的,即,在逻辑上是相同的信号。例如,当各选择控制信号具有二进制值010时,循环开关201-208的各第三输入端(即,输入端〔2〕)被选中,从而给定端口2为最高优先级。若由端口2提出一个请求,则信号REQ1将会表示接受;无论如何,各导引开关221-228也将会被选在输入端(2)。这就相当于在第三导引开关223的输入端(2)上的一个活动输入(信号),开关223传送耦合到端口2的P2-ACPT信号。各循环开关201-208和导引开关221-228类似于TI74S/5/型8至1(eighttoone)选择开关。
第一与非门211输出具有最高优先级的请求信号。该最高优先级端口是通过各选择信号PRI-SW-SEL而获得并正如下面将描述的那样地循环。起初,当各开关的选择输入都为0时,则连到循环开关201的输入端0的端口0将具有最高优先级。当选择信号等于二进制001时,则各循环开关201-208的输入端(1)将被允许。此时,由于端口1输入请求信号P1-REQ-GO被耦合到ROTSW/201的输入端1,该输入将被连到优先级树的最高优先级与非门211;因此端口1将具有最高优先级。再者,此时,连到端口2输入请求信号的第二循环开关202的输入端/将具有最高优先级,等等以此类推。因此,根据下面所描述的循环型式,优先级树的最高优先级与非门对每个端口都可能有效。
现将描述对优先级循环的禁止。参见图8,这是说明端口优先级超前禁止控制器161的一张逻辑框图。端口优先级超前禁止控制器161具有与其耦合的来自各端口的低优先级请求存在信号和高优先级请求存在信号-分别为PX-LPREQ-PRES,和PX-HPREQ-PRES。所述高优先级请求存在信号和低优先级请求存在信号分别与2至1(twoto.one)选择器(SED341,342的相应输入端(1)和(0)连接。被连到选择器341,342一个选择输入端的是高优先级请求信号HPRI-REQ,而且该信号是这样工作的,以致当一个高优先级请求出现在8个端口中任一个上时,该信号是高电平,即逻辑1,表示一个高优先级请求存在于至少一个端口上。选择器341,342的各输出被连到禁止开关(INHSW)301-306的一个预定输入端。紧接着的连接配置类似于为继上述循环开关后所作的接线配置;也就是说,表示端口0请求PO-REQ的、选择器341的输出位置被连到第一禁止开关301的0位置,第二禁止开关302的第七位置,第三禁止开关303的第六位置,……。一个第三选择器345也产生相应于以上连同循环和导引开关一起说明的信号的选择控制信号。为描述禁止过程,例如假设选择控制信号PRI-SW-SEL4B,2B,1B具有二进制值101。这相当于选择端口5作为具有最高优先级的端口,因为正如图7所示,循环开关201至208的第六输入端(位置5)将被选定,而端口5的信号被连到第一循环开关201的输入位置5。在此情况下,优先级次序将是5,6,7,0,1,2,3和4。假设一个对端口5的高优先级请求正待处理,一个对端口7的高优先级请求正待处理,由于某种原因,例如,由端口5所请求的存储器处在忙碌状态而由端口7所请求的存储器是可用的,则端口5请求运行信号(P5-REQ-GO)是不活动的,因而端口7请求运行信号,P7-REQ-GO是存在的。结果,与循环开关203的输入位置5耦合的端口7请求运行信号将产生请求信号3,即REQ3,后者与导引开关228的输入端5耦合,导引开关228又将接受信号输出至端口7。由于在本例中存在端口5的高优先级请求信号,还由于禁止开关301的位置5的输入已被选定,故禁止开关301的输出将包含一个零。结果,由于禁止开关301的输出被接到各禁止与非门321至326,故各禁止与非门的一个输入端将有一个0输入,从而导致对或非门303的各输入端输入一个1输入。这将产生禁止优先级超前信号(INH-PRI-ADV′)的一个逻辑0输出,该禁止优先级超前信号的逻辑0是禁止优先级超前的0。由此可见当输入端口5没有待处理请求同时端口6没有待处理请求时,REQ3-GO便是一个逻辑1。禁止开关301的输出也将会是一个逻辑1,同时禁止开关302输出也将会是一个逻辑1,从而产生禁止与非门322的一个0输出。这个被连接到或非门330的输出将会产生禁止优先级超前信号的一个逻辑/输出,它是一个取消对循环开关201-208的优先级超前的禁止的。开关201-208正常地前进。
参见图9,图中示出端口优先级选择控制器162的某些逻辑。为各循环开关和选择开关所难≡窨刂菩藕臥RI-SW-SEL/A,2A“4A和PRI-SW-SEL1,2,4被从选择器(SEL)401,402输出。选择控制选择器401,402输出用于低优先级情况或高优先级情况的选择控制信号。这些选择控制选择器具有一个被连到一个高优先级寄存器(REG)411各输出端的各(1)输入和被连接到一个低优先级寄存器(REG)412的各输出端的各(0)输入。低优先级寄存器412包含用于低优先级请求的当前循环状态(即,低命令层次端口优先级表),而高优先级寄存器411包含用于高优先级请求的优先级状态(即,高命令层次端口优先级表)。加法器421将选择器402的输出连到其B一输入端,而加法器421的A-输入端被连到一个表示已被接受的端口数的输入树。当某个端口已被接受而循环还未被禁止时,则那个端口就被置于该已接受命令层内的端口优先级表的底项,同时对按序后继端口给予最高优先级;因此,所述循环并不是建立在连续的基础上而仅仅在已产生一个接受之后才进行循环,已被接受的那个端口被置于所述端口优先级表的底项。该优先级表一直保持到一个接受信号已被产生为止。高优先级信号HPRI-REQ是根据各端口的高优先级请求信号PX-HPRI-REQ通过或操作(ORing)而产生的,所述或操作由或非门425执行。所述高优先级请求信号经由选择器401,402被用来选择高优先级寄存器411的输出或低优先级寄存器412的输出。这样,例如,当该高优先级状态致使端口0被给予最高优先级时,各选选控制信号PRI-SW-SELI,2,4将会是二进制000。若对端口4的请求运行信号是有效的,而且没有别的端口正在请求,则端口4就会被接受。结果,具有对端口4的输入请求的循环开关205的输入位置0将会产生一个为逻辑1的输出信号REQ5。开关5以上的所有循环开关即开关1-4,201-204的反码输出在逻辑1导致REQ5-GO′信号时将会有反码输出,即与非门215的输出,(处于逻辑0状态)。因此,或非门431,432,433的输出值分别会是101。再者,由于在这个例子中没有更高的优先级请求正待处理,故禁止优先级超前信号是一个逻辑1,即,循环未被禁止。与门435,436,437分别有二进制输出101,同时加法器421的输入会是5。相当于各选择控制信号的高优先级寄存器411内的当前值是0,而在下一个时钟周期,该高优先级寄存器411会被加1,以包含该值5。这样,在下一周期,选择控制信号将有一个值5,从而给予端口5以最高优先级。在SCU50的最佳实施例中加法器执行每一周期的添加。因此,当没有一个接受被形成,并且优先级超前有效时,为保持相同优先级,则由加法器421加上一个0数,即,在各A输入端上设置有一个零值。若不存在高优先级请求而有低优先级请求,则将处理该低优先级请求。
参见图10,这是表示用于产生保持请求信号(HOLD-REQ)的电路的一个功能框图。该保持请求信号是一个发送到全部端口51的控制信号,该控制信号表示当判定一个较低的高优先级请求已被服务了越过一个待处理较高的高优先级请求预定的服务次数时,端口51准备阻止来自各设备的其他请求被耦合到相应端口请求控制逻辑52。每当一个较高的高优先级请求正在进行中、并对一个端口请求正服务时,计数器520便被加1并将其同设置在预置寄存器510中的一个预定值在一个比较器530中进行比较。被设置在预置寄存器510中的计数(或值)是一个这样的预定计数,即在这个数以内,该系统将允许具有待处理请求的一个更高优先级端口先被旁路,然后才封锁任何来自诸设备的其他请求。预置寄存器510可通过手动控制设置值,或可经由一个同数据处理系统10的其他逻辑交接的接口(未示出)来设置。当一个较高的高优先级请求已被旁路的次数等于预置寄存器510内的设置值时,比较器(COMP)530便输出一个信号,即保持请求信号,然后该信号被连到全部端口51。各端口51的最佳实施例包括为在HOLD-REQ信号一旦启动情况下,去禁止由端口51接收的其他请求,直到所有的高优先级型请求均已被服务为止所用的逻辑线路。所包括的锁存器540是用以维持HOLD-REQ信号的。当产生比较保持请求信号(即,比较器530的输出)时,该信号的持续时间取决于下一个高优先级的接受。若下一个高优先级接受相当于待处理的最高优先级请求,则计数器520经由门580置零,同时保持请求信号被清除。若后继高优先级请求不是待处理的最高的高优先级请求(即,优先级未被循环),则锁存器540经由与门570和或门550而置“1”。当锁存器540被置“1”则它将借助任一个从端口0至端口7输入至或门560的待处理高优先级端口请求信号来保持置“1”。那时保持请求信号仍是活动的直至所有的高优先级请求均已被服务为止。
参见图11,该图是图10的保持信号产生电路的一张逻辑框图。在最佳实施例中,计数器520是作为移位寄存器520而设置的。该最佳实施例的比较器530包括与门531-534和或门535。该最佳实施例的预置寄存器510是一个用于储存包括计数(或值)的控制信息的三级寄存器,并且寄存器510包括一个至少用于该数值的最低有效位(LSB)的部位,一个用于该数值的最高有效位的部位和一个控制级S1。正如上面提到的,预置寄存器510可被装入来自如同本领域的技术人员所公知的某种外部来源的信息。移位寄存器520有一个连到逻辑“1”的输入端SR。当一个接受信号ACPT产生并存在各高优先级请求HPRI-REQ时,则这些信号将是逻辑“1”。正如上面所解释的,若一个待处理较高的高优先级请求未被服务,则优先级的循环便会被禁止,而所述禁止优先级超前信号INH-PRI-ADV便是逻辑“1”。在接受信号为逻辑“1”同时INH-PRI-ADV为表示优先级循环曾被禁止的逻辑1的情况下,则表明一个较低的高优先级请求曾被服务,并最好对计数器(移位寄存器)520加1。对此情况而言,与非门545便有一个使OR门546产生“1”输出的逻辑零输出。假设锁存器540的输出为逻辑零,则根据上述诸条件与非门547的输出为逻辑1,而OR门548的输出为一个逻辑0。这样,移位寄存器控制信号SO,S1便分别为逻辑01,这就导致移位寄存器将一个逻辑1输入至移位寄存器520的第一部位。每当移位寄存器520向右移位一次,逻辑1值便向右移一个位置,这相当于加上一个1的计数值。将该移位寄存器520的内容与预置寄存器510内的设置值比较。在该最佳实施例中,一个1-4的计数(即,一个0-3的二进制值)是有效的,并在比较器530中被比较。当移位寄存器520已达到在预置寄存器510中所设置的数时,比较器530,或门535的输出是产生保持请求信号HOLD-REQ的逻辑1。一旦产生一个保持请求信号,则当后继端口高优先级请求接受造成禁止端口高优先级超前时,通过锁存器540可保持或锁定所述保持请求信号。只要一个高优先级请求信号存在于任何端口上,锁存器540便由与非门551所保持。
若一个接受信号ACPT已经产生,即,一个高优先级请求是存在的,而且优先级超前还未被禁止,即,INH-PRI-ADV信号是一个逻辑零;则与非门545的输出是逻辑1,而与非门547的输出是一个逻辑0。在此情况下,就对最高的高优先级端口进行服务。这并不是打算产生保持请求信号的条件,而结果OR门546,548的输出两者均是逻辑1,从而导致移位寄存器控制信号SO,S1分别为逻辑11。这种状态使移位寄存器520复位至一个零值。若没有一个接受信号已被产生,若不存在高优先级请求,而且若没有进行中的保持请求信号,则或门546,548的输出将产生分别为逻辑00的移位寄存器控制信号S0,S1,并将对移位寄存器520有效地执行空操作指令。在对所有的已在进行中的各高优先级请求已服务之后,锁存器540将被复位,这是因为从与非门551和联接比较器输出信号的与非门552来的输入信号将达到使锁存器540复位的程度。最佳实施例的移位寄存器520可利用一块TI74LS158来实现的。寄存器510的位置S1在最佳实施例中是在HOLD-REQ存在时用于产生一种禁止对所有存在低优先级端口请求进行服务的禁止低优先级请求信号(INH-LPRI-REQ),该寄存器510也能通过DPS10来动态地预置或设置。虽然本发明的最佳实施例是对两个命令层次(即,高和低)的,但本领域的专业人员自然懂得本发明也可直接应用于具有许多命令层次的系统。
参见图12,这是表示某些活动寄存器58的一张功能框图。正如上面已经提到的,SCU50的最佳实施例允许接受并同时处理5项活动。其中三个活动寄存器(周期长度,数据入,和数据出)都是移位寄存器,移位寄存器的每个位置标志一个时间段;在此时间段内,某些SCU50的预定逻辑和/或存储器20尚待利用,不是高优先级运行信号就是低优先级运行信号;这两信号不会互混,而且高优先级请求信号将总是具有优先于低优先级请求信号的优先顺序。
参见图14,这是表示数据寄存器和通过SCU50的数据的数据流的一个功能方框图。
图15表明存储器20的接口的一张定时图,该图描绘读或写2-字,4-字,6-字和8字所需的时间(分别为2W,4W,6W和8W)。此外,还表示了读写变换(RAR)的定时。
虽然已对被认为是本发明的最佳实施例作了说明;但显然,在不脱离本发明的基本精神和范围情况下可能作出许多变动和改型。所以,打算在所附权利要求中去覆盖属于本发明真实范围内的所有这类变更和改型。
权利要求
1.在一个具有一系统控制器的数据处理系统中,所述控制器是用以响应来自在操作时被连接到所述系统控制器的一个相应端口的多个设备的访问请求而对至少一个子系统的访问进行控制的,所述访问请求正处于多个命令层次之一,其中所述多个命令层次具有彼此相对的预定优先级,而且其中每个命令层次内的各端口具有彼此相对的预定端口优先级,所述端口优先级在对应于来自允许访问的访问请求的命令层次内是有条件地循环的,所述系统控制器包括一个用于防止封锁某一待处理较高的高优先级请求的电路,所述电路的特征在于包括a)用于统计所述待处理较高高优先级请求未被允许访问的次数的计数装置,该计数过程产生一个被暂存于所述计数装置中的数值;和b)在操作时被连接到所述计数装置的比较装置,用以将所述计数值同一个预定值进行比较;所述预定值是一个所述数据处理系统将允许对该待处理较高的高优先级请求进行旁路的预定次数;以便在所述计数值等于所述预定值时产生各控制信号;所述控制信号被连到各端口,以禁止被所述系统控制器接受的来自诸设备的任何其他访问请求。
2.在一个具有一系统控制器的数据处理系统中,所述系统控制器是用以响应来自在操作时被连到其一个相应端口的多个设备的访问请求而对至少一个子系统的访问进行控制的,所述访问请求正处于多个命令层次之一,其中所述多个命令层次具有彼此相对的预定优先级,而且其中每个命令层次内的各端口具有彼此相对的预定端口优先级,所述端口优先级在对应于来自被允许访问的访问请求的命令层次内是有条件地循环的,所述系统控制器包括一个用于防止封锁某一待处理较高高优先级请求的电路,所述电路的特征在于包括a)用于统计所述待处理较高高优先级请求未被允许访问的次数的计数装置,该计数过程产生一个被暂存于所述计数装置中的数值;b)在操作时被连到所述计数装置的比较装置,用以将所述计数值同一个预定值进行比较;所述预定值是一个所述数据处理系统将允许对所述待处理较高高优先级请求进行旁路的预定次数,以便在所述计数值等于所述预定值时产生各控制信号;所述控制信号被耦合到每个端口,以禁止被所述系统控制器接受的来自所述设备的任何其他访问请求;和c)锁定装置,它在操作时被连到所述比较装置,用以当判定一个被允许访问的后续的高优先级请求不是最高高优先级请求时,保持所述控制信号;所述控制信号被保持直到所有的待处理高优先级请求均已被允许访问为止。
3.根据权项1的用于避免对一待处理较高的高优先级请求的封锁的电路,其特征在于进一步包括在操作时被连到所述计数装置的复位装置,以便当一个高优先级请求被允许访问而又没有更高的高优先级请求正待处理时,清除所述计数值。
4.根据权项2的用于避免对一待处理较高的高优先级请求的封锁的电路,其特征在于进一步包括在操作时被连到所述计数装置的复位装置,以便当一个高优先级请求被允许访问而又没有更高的高优先级请求正待处理时,清除所述计数值。
全文摘要
用于防止对一个系统控制器的待处理较高的高优先级请求实行封锁的电路,该电路包含一个用以统计待处理的较高的高优先级请求未被允许访问的次数的计数单元,其计数结果数值被暂存于其内。一个比较单元将该数值同一个预定值比较,该预定值是数据处理系统将允许对待处理的较高的高优先级请求进行旁路的预定次数。当该计数值等于预定值时,比较单元输出一控制信号,该信号被连到各端口以禁止来自设备的其他访问请求为系统控制器所接受。
文档编号G06F13/18GK1033489SQ8710788
公开日1989年6月21日 申请日期1987年11月14日 优先权日1987年11月14日
发明者罗伯特·杰罗姆·凯格奥, 伦约德·拉宾 申请人:霍尼韦尔·布尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1