本发明总的说来涉及差错检验系统,更确切地说,涉及数字通信系统中的程序检验多路控制和识别器的相交矩阵领域。 所有数字通信系统需要一套规则(称为规约)来控制系统的不同模块之间的通信。为了确保某一特定通信不会违反此规约,必须应用差错检验系统,这已为公众所熟知。
许多系统中的通信中包括一“握手”操作,来建立二模块之间的连接。在运行的各个阶段传送各数据域,从而使模块实现对通信信道的控制。相互区分和识别所要进行的运行的类型、以及在通信信道中传送数据。此规约对每一阶段指定可能会产生的数据域的值。
数字系统的一个优点是能够用加入(或删除)模块或功能的方法,重新配置硬件,能够改变规约,使不同阶段所使用的域值得到改变。然而,现有差错检验程序通常不能重新配置而限制了它们在数字通信系统中的实用性(utility)。
本发明是一种用于数字通信系统的可重新配置的差错检验系统。差错检验系统用一差错检验程序的值,来检验在某一特定通信过程中产生的数据域是否受一通信规约的允许或禁止。此系统可以用修改差错检验程序来重新配置。
按照本发明的一个方向,差错检验信号可以用一通信操作中产生的域地特定组合以程序可控的方式来储存和选择。被选中的差错检验信号的值指示规约是否允许域的这种特定组合值。
按照本发明的另一目的,此差错检验信号是由一硬线连接的矩阵译码器产生的。所产生的特定差错信号是由一通信运行期间产生的域的特定组合产生的。如果差错信号达到某一预定值,则规约就禁止域的这种特定组合。行屏蔽寄存器和列屏蔽寄存器将由包括在这种特定组合中的域选择的、或者具有屏蔽值、或者具有非屏蔽值的差错屏蔽/配置信号进行程序可控的储存。所选择的差错信号和差错屏蔽/配置信号被用到一逻辑电路,当被选差错信号值为预定值并且被选屏蔽/配置信号为屏蔽值时,就改变此被选误差信号的值。
本发明的另一目的是,通信系统的每一模块中包括差错检验系统,从而提供用来检验具有差错的通信信道的容错。
其他特征和优点在阅读了下文的详细说明和附图后将变得明显起来。
图1描述的是包括一CPU线路板的共用总线通信系统;
图2描述的是基本IBUS操作的仲裁阶段、命令阶段和数据阶段;
图3是本发明支持待检验的差错条件具有完全程序化的实施例方框图;
图4是本发明第二种较佳实施例方框图;
图5描述的是完全可编程序差错检验矩阵;
图6是一IBUS命令/长度应答差错检验矩阵;
图7描述的是一个命令/应答硬线连接差错检验矩阵。
本发明是一种差错检验系统,这种差错检验系统具有许多类型的数字通信系统的普遍的实用性。这种系统的许多特征可以从某一特定总线系统的描述内容中得以更好的理解。在下文的详细描述中,将参照Tandom计算机股份有限公司制造的计算机中使用的总线子系统,描述这种差错检验系统。对总线子系统的描述仅详细到足以详细描述本发明的程度。
图1描述的是包括有一CPU线路板的共用总线通信系统,CPU线路板具有几个通过一共用总线(IBUS)12进行通信的模块。这些模块包括一处理机接口芯片(PIC)14、一维护诊断芯片(MDC)16、一存储器接口芯片(MIC)18以及二总线接口模块(IPB_X和IPB_Y)20和22。
IBUS12是同步并行数据通路,在这条通路上,独立模块可以在配置的环境中传送地址和数据信息。总线运行与基本系统时钟同步。IBUS上发生的所用事件与时钟脉冲的上升沿相关。在总线上定义了两种基本操作:仲裁和传送,每一种操作可以同时发生。
仲裁操作使一个模块成为IBUS的唯一的占有者。企图获得IBUS占有权的模块(请求模块)必须在试图传送信息之前作出仲裁并获得IBUS的占有权。
传送操作允许已经获得IBUS占有权的请求模块发送数据到一应答模块或从一响应模块接收数据,并且包括命令(Command)阶段和数据阶段。在命令阶段,请求模块在作出仲裁和获得IBUS的占有权以后,把被选模块的地址放置到地址/数据线上,把命令放到握手线上。在数据阶段,数据在请求模块和应答模块之间传送。传送的长度由命令阶段的请求模块确定,并可以是只有一个字节至许多字。
图2描述的是基本IBUS操作的仲裁阶段、命令阶段和数据阶段。请求模块X和Y对其仲裁线(Arb lines)作出断言,请求占有IBUS,在周期1对SC(系统控制)作出断言,将总线占有权授于请求模块X(本例中,请求模块X的优先级高于请求模块Y的优先级)。在命令阶段,请求模块X在周期1和周期2内在地址/数据线上驱动被选请求模块的高地址和低地址,在周期1内在应答线上驱动命令(CMD),在周期2内在应答线上驱动数据传送的长度。在数据阶段,在周期3和周期4内在地址/数据线上,在请求模块和响应模块之间传送数据。同时,在数据阶段,响应模块在应答线上,对传送第一个字,响应模块传送READODD作为回答,对传送所有后续字,响应模块传送READEVEN作为回答。
图3是本发明支持待检验的差错条件具有完全程序化的实施例框图。如上所述,总线操作需要对几个数据域进行传送,这些数据域代表对数据实施传送所需的信息。总线传送规约建立起一对域(M和N)值是否被允许的规定。例如,M域和N域可以分别对一请求模块和一应答模块作出识别。在这种情况下,如果由M值和N值识别的特定模块之间的通信由规约判定不允许,则差错检验机被编程,输出一真值。
所以,图3所示实施例执行差错检验函数:
F(M,N)=T,仅当由M和N编码的值不被允许,否则为F。
如果M是一个m位数据域,N是一个n位数据域,则数据域可分别编码成2m和2n个值。上述等式中的符号M和N代表特定对M域和N域的值的配对。所以,如果由特定对M和N编码的值被规约所禁止,则函数值为“真”(T),如果不被禁止,则函数值为“否”(F)。
参见图3,在一个门阵列中,执行一可完全编程的检验矩阵30。此矩阵由可扫描寄存器组成,且有一扫描数据入输入和一扫描数据出输出。被检验的域M和N分别具有宽度m和n。相应地,此矩阵具有2n列、2m行。
总线上产生的M域和N域在适当时刻由M及N锁存器32和34锁存,并分别被施加列行MUX35和列MUX36,用来选择对应于被施加域的一行和一列。被选的输出施加到一输出与门38的一个输入端,计时触发脉冲信号施加到另一输入端,用来提供时钟控制差错信号。
现在描述图3所示实施例的运行。对应于被选硬件配置和总线传送规约的F(M,N)值被选择出来,并被排列成具有2n×2m位阵势的扫描模式。位的顺序将由矩阵中建立的特定扫描路经确定。在通过扫描数据入输入将扫描图形读入矩阵以后,每一个F(M,N)值将被储存在由M和N域的接收对选择的特定存储位置。如果系统被重新配置,或者规约被改变,则不同的扫描图形被读入此矩阵,从而对差错检验系统进行再配置。
图4是本发明的第二种较佳实施例框图,这种实施例减小了第一种实施例中所需要的存储元件的数量,并且在许多应用场合下减少了门计数器数。
图4中,矩阵译码逻辑40模块在其行和列输出端处接收M信号及N的信号对,并在由M及N的信号接收对选择的输出端处提供一不屏蔽的差错检验信号。可扫描的行寄存器和列寄存器42及44具有一扫描数据入输入端和一扫描数据出输出端。可扫描行寄存器及列寄存器存储“差错屏蔽/配置位”,此“差错屏蔽/配置位”可以由特定行输入端、列输入端或行/列横断面输入端进行选择。
对差错屏蔽/配置位的选择是由差错树46在硬件中进行的。硬件包括一屏蔽与门48,用来接收作为门输入的被选的差错屏蔽/配置位以及作为信号输入的被选的非屏蔽差错检验信号,并在其输出端给出一可屏蔽差错检验信号。屏蔽“与”门的输出与一“或”门50的输入耦合,“或”门50的输出与计时“与”门52的输入耦合。计时“与”门52的其他输入端接收计时触发脉冲信号(可有可无);且其输出是一时间控制差错检验信号。
现在描述图4所示实施例的运行。用于某一特定规约的预定差错检验函数与矩阵译码逻辑块的门阵列硬线连接在一起。如果被选行差错检验位和列差错检验位全都为“真”,则屏蔽“与”门48打开,可屏蔽差错检验信号等于非屏蔽差错检验信号。
尽管差错函数被硬件制作在矩阵译码逻辑之内,可扫描配置寄存器42和48使用于特定接收行输入、列输入、或行/列相交输入的差错检验由程序可控地从“真”变为“否”。正如从图4可以清楚理解的那样,如果行配置位或列配置位对于给定M域或N位总是否,则相应屏蔽“与”门的输出总是“否”。相应地,一为“真”的屏蔽差错位可以由程序可控地变为“否”。然而反之则不然,即,一为“否”的非屏蔽差错位不能由程序可控地变为“真”。这样,可以对对应屏蔽状态的屏蔽/配置位重新编程,在新规约中允许那些原先被禁止的特定行输入、列输入或行/列相交输入。
图3和图4所描述的实施例可能更适合于某一特定应用场合。图5-图7是描述较佳实施例特定应用场合的示意图。
图3所示完全可编程的实施例可以更好地适用于具有大量灵活性和再配置性(reconfigurability)的应用场合。例如,可以改变容许应答模块/请求模块对和禁止应答模块/请求模块时,完全可编程实施例可能更适合。
图5描述的是完全可编程序差错检验矩阵。在这种配置结构中,对于一指定总线传送,应答模块ID数据域值和请求模块ID数据域值被用作列和行的识别。这些ID是在总线传送的周期2(图2)中在总线上产生的。特定请求/应答对的相交处为零,表示此对是总线规约允许的。如果规约改变,则相交值通过扫描记录下来。同样要注意的是,如果连接另一模块,如,一非同步传送模块,则可以对此模块指定一个不用的行和列,并修改存储在指定行或列中的差错检验信号。
图4所示屏蔽可编程实施例可以更好地适合于录活程度较小的应用场合。例如,对于某一特定规约,数据传送操作的某种数据类型可被允许用作一小组数据转移长度。对另一规约,允许的数据传送类型的数据传送长度可能被改变。这些改变可以用重新编排屏蔽寄存器中的配置位来实现。图6描述的一矩阵译码器,它具有由不同传送长度值识别的列和由不同总线命令识别的行。此图包括一将实际域值(即O至F)和符号命令和字长参数配对的映射。例如,一命令域值等于6表示一块写命令,而一传送长度域值等于6表示一7字传送长度。矩阵的“预”(Pre)或“规约差错”域与“真”值硬线连接在一起,而“OK”域与“否”值硬线连接在一起。
再回头来看图2,CMD和LENGTH应答是在连续时钟周期内在应答线上产生的。当长度域产生时,命令域被锁存并提供给差错检验译码器。用来减小门计数器数的硬线实施例的优点现在很明显了。注意,对于第8至第F行输入端,少于一个字的传送是由命令域定久的。相应地,因为第1至第F列是用作转移长度大于1个字的,所以对第8至第F行以及第1至第F列的行/列相交定义了一个规约差错。这样,一个简单的门配置结构产生了这个用于120种可能的行/列相交情况的差错检验信号。
这里也同样显示了屏蔽函数的通用性。例如,在图6所示的矩阵中,行输入端2、4和5为非定义命令,这些非定义命令在收到时产生非定义差错检验信号。然而,如果行输入端4随后被定义为传送1至8个字的命令,则如果UC4L屏蔽位被复置,那么非屏蔽差错检验信号可被屏蔽,从而对应于等于4的命令域,没有差错信号会产生。另外,如果想要移去来自系统的长度差错检验函数,则L屏蔽位可被复置。
图7描述了一个命令应答硬线连接差错检验矩阵。注意从图6和图7,如果规约差错屏蔽位(P)被复置,则CMD/长度差错检验函数和CMD/信号交换差错检验函数被屏蔽。所以,差错树包括一个用来对由两个硬线连接的译码器产生的非屏蔽差错检验信号进行屏蔽的屏蔽门。再者,从图7进一步可看出,如果应答信号1-6的任何一个信号是以后被定义的,则非屏蔽差错检验信号可以由屏蔽位UHS6-UHS6中的一个进行屏蔽。另外,应答差错检验矩阵可以用重新设置HS屏蔽位来屏蔽。
回头再看图1,在此较佳实施例中,差错检验矩阵被冗余地包括在每一模块中,差错检验信号由MDC16接收和处理。在某一特定差错检验矩阵有故障的情况下,这种冗余提供容错操作。另外,对不同模块的检验结果如果不一致,则总线的电学问题可以被检测出来。
现在结合实施例已对本发明作了详细描述。很明显,对本领域的普通技术人员来说,可以对本发明作种种变异。例如,尽管本发明针对的是共用总线通信系统,但本发明同样也适用于使其他通信信道的数字通信系统,如电话线路、光导纤维、微波或无线电频率链路。另外,较佳实施例中的检验矩阵是在门阵列中实施的,但也可以使用任何合适的存储媒介,如RAM、ROM或通用寄存器。上文中已经描述了两个域的相交,但也可以实行根据两个以上域的差错检验。相应地,上文对本发明的描述不应视为对本发明的限制,本发明应以权利要求为准。