专利名称:多中央处理机互锁装置的制作方法
本发明总的来说涉及用于数据通信的装置,特别是涉及无论局部区域网络(LAN)体系结构如何,都可以彼此通信的计算机的LAN。
在科学和商业多种用途中,对处理数据的数字计算机的不断增长的使用,已经把数据的容量扩大到多个计算机通常都需要的程度,每个计算机专用于一个不同的任务,为了完成它们各自的任务,需要在计算机之间进行通信。过去计算机用于处理某种类型的事务。在七十年代初期多数计算机成批地处理事务。在计算技术的早期,人们论及成批处理时,一般看成对成组的穿孔卡进行处理。每个卡是一件事务,计算机读成批的卡,并成批地处理信息。在六十年代,人们开始研讨交互计算,利用交互计算可以构成程序,以便逐一地处理事务,而不是成批地处理事务。通常在象打字机那样的称为终端的数据输入装置上产生交互处理。读卡、磁带或磁盘并然后把数据成批地发送给计算机的成批处理终端,通常叫作远程作业输入终端或远程成批处理终端。在集中式或分布式网络中可以进行成批处理或交互处理。集中式网络完全依靠由至少一个计算机构成的中央计算设备,而分布式网络则在一个计算设备和另一个计算设备之间分配任务。在网络中每个智能实体叫作一个节点。一些节点是计算机,另一些节点是终端,而且还有其它一些节点可以是某种类型的通信装置。可以用多种方式构成网络,并且能够由单一的通信系统对至少两个同时工作的计算机网络提供通信。有多种类型的网络结构,下面列出了一些比较通用的网络1.点对点网络点对点网络是最简单的网络,由一台计算机、通信线路和一个终端或在该线路另一端的另一台计算机构成。
2.多点网络多点网络是点对点网络的扩展,使用多条点对点链路把站彼此连接起来。
3.星形网络星形网络是集中式网络,其中远程站通过各自的点对点链路馈送到一个唯一的完成主要计算的地点。
4.环形网络环形网络以闭环方式连接网络节点,每个节点都链接到右面和左面邻近的节点上。
5.总线结构网络总线网络逻辑上是用从一根中央主干向外伸展的链路,例如分路和支路等构形的。当信号通过总线时,每个连接的节点都收听带有目的地址的信号。典型的总线系统是Ethernet(以太网络)和实质上所有的宽带系统。
6.分级网络在分级网络中,一些计算机依次馈送到其它一些计算机,而这些计算机又依次馈送到别的计算机。用作远程终端设备的计算机可以具有独立处理能力,并利用高级的或低级的资源,如信息或其它需要的资源。
这些基本类型的网络即可以是覆盖长距离的全局网络或宽阔区域网络(WAN),也可以是覆盖相对较短距离的局部区域网络(LAN),例如在一两个建筑物中的计算机。
虽然发送的数字数据可以在若干毫秒内容易地越过整个大陆,但是在建筑物中要传送最后大约一英里,有时却要花费更长的时间。因此,对以覆盖距离为0.1至10公里的局部区域网络(LANs)的形式进行数据局部分配中出现的这个瓶颈问题,提出了多种解决方案,这些解决方案能以每秒100千位至10兆位或甚至更高的速率发送数据。局部区域网络(LAN)上的每个终端节点都可以与其它每个节点通信,并且该网络不需要中央节点或中央处理机。在采用这些网络之前,操作来自不同卖方的设备的办公室工作人员必须设法彼此连接成一个系统,在该系统中在各种终端之间没有一个公共接口。近来采用的最突出的LANs是Xerox的Ethernet,一种基带系统。(基带系统直接在媒体上发送数据信号,而宽带系统要在调制载有数据信号的甚高射频或超高射频载波之后才能在通信媒体上发送。)Ethernet以每秒10兆位的速度发送数据,最大距离为2.5公里,该网络不能用于音频或视频的用途。
另一方面,来自Wang Laboratories(王氏实施室)的WangNet(王氏网络)是一种宽带拓扑结构的实例,WangNet可以适应所有音频、数据和视频三种用途,其速度与EtherNet的速度相等。WangNet的带宽覆盖10至350兆赫的范围。WangNet还采用了使更多的节点连接到更长距离电缆上的分支树的拓扑结构。
美国加利福尼亚州圣约瑟市的Corvus系统公司推销OMNINET(全网络),OMNINET是一种建立在双心绞合线上的总线拓扑结构,其目的集中在用于个人计算机的连接网络。OMNINET以每秒1兆位的速率发送数据,并且可以适应直到63APPle Ⅱ型计算机。计算机可以共享1至16个软磁盘存储器,这样就可以把存储器扩充到5至10兆字节。
还有其它的LAN的可供选择的方案,例如来自网络系统公司的HYPER Channel(超信道);NET/ONE;ARC和其它方案。
因为这些基带和宽带系统都是建立在专有的不同结构上,所以需要用于连接设备的标准。为了避免增加接口,IEEE(电气和电子工程师学会)的标准委员会设立了一个分会,正式通过用于终端和电缆之间的接口装置的规格,和用于通过电缆存取数据以及数据编码方案的逻辑协议。另一个组织-国际标准协会(ISO)也特设一个委员会研究网络设备的兼容性,最后导致公布了开放式系统互连参考模式(OSI)。在兼容性方面,开放式系统是指一种可以开放地用于来自各个竟争制造商的设备的网络模式。OSI模式装置接成网络的结果是分成各层的功能。在OSI模式中有7层,被编号为第1层至第7层。
第1层是物理层,确定网络的电气和机械特性,例如使用调制技术的媒体、网络工作的频率和使用的电压。
第2层是数据链路层,确定用于共享连接各种节点的物理媒体的存取策略。通用的LAN技术包括载波读出多路存取争用检测(CSMA/CD)和标记传输方案。此外,用于放置网络特定信息和数据包,例如节点寻址也是第2层的功能。
第3层,并非所有LAN都需要第3层,但是在位于互连的LAN上的节点之间需要路经选择机构的网络必须有第3层。在一个单独的LAN上,每个节点都能收到传播的数据,因为一种特殊的连接法推断出恰当地对其寻址的那些包,没有必要进行路径选择。
第4层是传送层,处理可靠性和数据传送的基本级。该层涉及信息流控制、错误处理和与信息包的发送和接收有关的问题。(信息包由用户发出的数据,加上网络所需的,从一个网络节点把用户数据传送到另一个网络节点的任何信息构成。)第5层是会话层,对LAN特别重要。当两个设备之间形成链路时,就建立了会话。因此会话层提供从至少两个LAN连接或节点来的数据流的建立和终止。
第6层是表示层,该层进行协议转换、数据析取,并在该层发生对图形命令的展开。
最后,第7层是应用层。所有从第1层至第6层都是设计用来支援该层。电子报文系统、终端仿真能力和文件传送程序都是可以在第7层进行操作的软件实例。
由于设备、网络和标准的增加,因此就有必要具有一个局部区域控制器系统,以便无论对哪种物理层局部区域网络(LAN)的连接,与传送层、网络层和逻辑链路控制层相关的软件都将是不用变更的、透明的,并且与两侧隔离,即与属于Level6计算机系统(一种从市场上可以买到的由HoneyWell信息系统公司生产的计算机系统。)的控制器总线侧隔离,又与属于各种类型的LAN,例如Ethernet、标记环路或标记总线的控制器通信适配器侧隔离。
更具体地说,需要设计一种局部区域网络控制器(LANS),该控制器可以提供接口软件,以支援传送层、网络层和逻辑链路控制层的软件,以便当对其进行某种新型的LAN连接时,将不必变更这个软件。并且该设计应该达到使在使用Level6处理机硬件情况下,控制器的硬件接口对该层的软件透明。因此,必须有LAN控制器的专用总线对通信层软件从硬件的两侧进行隔离,从而允许使用各种适配器去处理CSMA和Ethernet,或标记环路,或标记总线的LAN体系结构;并且将来数据必须能够用于支援PBX适配器。
(可以从下列原始资料中获得部分上述情报(1)“商业通信”,Nicholas Mokhott著,在1982年1月的IEEE Spectrum上发表;
(2)“大体系结构中的局部区域网络”,Thomas Wm.Madron著,1984年由Hayden图书公司出版;
(3)“局部区域网络入门”,David D.Clark、Kenneth T.Pogran和David P.Reed著,在197811月IEEE的Proceedings V01.66,No.11发表。)下面引用了与局部区域网络(LNA)相关的一些典型的现有技术设备,但是这并不表示已经对现有技术进行了无遗漏的检索,也不表示这就是最接近的现有技术。
(1)“多计算机通信系统”,Anil K.Agrawal及其他人发明,1985年1月8日发表,美国专利号4493021。
(2)“根据优先权选择接口的系统”,Pierre Austray及其他人发明,1984年11月27日发表,美国专利号4485436。
(3)“用于通信总线系统的端口逻辑”,Kapal;P.Eswaran及其他人发明,1981年9月29日发表,美国专利号4292623。
(4)“可扩展和可压缩的局部区域网络系统”,David M.BTYant及其他人发明,1984年2月7日发表,美国专利号4430651。
本发明的主要目的是提供一种改进的LAN控制器总线。
本发明的另一个目的是对LAN控制器的专用DMA直接存储器存取)总线提供一种LAN控制器的接口。
本发明还有一个目的是提供一种专用总线,它不仅可以与连接到该专用总线的单元通信,而且还可以与连接到该专用总线的LANS通信。
根据本发明上述的和其它的目的,对LAN控制器提供一种专用总线,该总线使各种LAN能够连接到LAN控制器。当在该总线之外提供其它完整性和通信功能时,该总线允许连接各种计算机单元,例如Motoro/a的68000处理器。
适配器接口可以具有多达4个子插件。每个子插件有奇数的和偶数的插头。设计这些插头以便处理控制线路和数据线路。这些子插件是硬件装置,利用这些子插件通过把LAN连接到专用总线上可以实现对磁盘、磁带和存储器等的通信。
在下文描述的最佳实施例中能实现本发明上述的以及其它的目的和特征。一些被认为是本发明特征的新特征,不论是结构还是操作方法,同其它的优点一起,结合以下将能较好地加以理解。但是,每一张附图仅仅用来解释和说明,而不是作为本发明限度的解说,这一点,也是应加以理解的。
图1为一个使用本发明的LAN系统的示意图。
图2为本发明的方块图。
图3为本发明操作结构的方块图。
图4,图表1和2为本发明分离总线特征的逻辑方块图。
图5为本发明LAN控制器专用总线的逻辑方块图。
图6为用在LAC适配器间的具体接口。
图7为本发明的一个多CPU互锁装置的逻辑方块图。
图8为LAC控制块的示意图,用于从主存储器装载/转储LAC软件。
图9为LAN控制块的示意图,用于启动I/O指令。
图10为一典型信箱区的示意图,用它请求DMA操作,以便移动一数据块。
图11为用于发送信息的一个硬件格式示意图。
图12和13表示RAM中的暂存队列。
图14为LAC控制器中I/O调度处理的流程图。
图15和16表示LAC控制器的DMA程序的流程图。
图17为适配器中断程序的流程图,用于中断LAC控制器。
图18为一个适配器三个不同的MAC程序的流程图。
图19为LAN控制块的LAC传送流程的示意图。
图20为LAN控制块的LAC接收流程的示意图。
局部区域控制器子系统(LACS)是一个可编程的通信子系统,它连到Honeywell Level6 Megabus(大总线)系统,参见作为即时发明的授与同一个代理人的美国专利3,993,981,3,995,258;4,000,485;4,001,790和4,050,097。LACS包括以下通信部件设备(a)局部区域控制器(LAC)母插件;
(b)媒体存取控制器(MAC)和具体层次的适配器;
(c)中断线耦合器(TCS);
(d)RF(射频)调制-解调器。
本发明是关于上述头两项(即LAC和适配器)的阐明和描述。
LACS确定为能够支持任何IEEE802局部区域网络标准。LACS的设计是把Honeywell Level/LACS接口的交互作用减至最小,同时按照Level6(L6)专用硬件特性和LAN适配器接口隔离借助插件通信软件工作的LACS。一个来自Bridge通信公司的商售通信内核在LAC中用作操作系统(OS)。在本发明中“CS软件”(通信服务)指的是LAC-常驻软件,它实现开放系统相互连结(OSI)链路,网络和转送层;“SM软件”(系统管理层实例)指的是LAC-常驻软件,它支持IEEE802系统管理功能。
虽然IEEE802标准不比标准数据链路接口(层3/层2)更高,所提供的Level6-到-LACS的接口如此灵活,以致于能容易地适用于支持更高的(即会话/转送)层接口。
用作所有局部区域网络(LAN)的LACS装在一标准Honeywell Level6机箱中,同时要求在Megabus(大总线)系统上有一个槽,它将支持更大的Level6系统的32位地址总线。LAN适配器从LAC到LAN提供一个接口。适配器(一个子插件)包括一媒体存取控制器(MAC)。LAC为最多四个适配器子插件的固定提供保证。适配器有多种型式(即标记总线MAC;CSMA/CD MAC;等。)。
*Megabus是Honeywell的注册商标。
中断线耦合器(TCS)是商售型的(例如,宽带方向耦合器、标记环、Ethernet收发报机)并都分别封装成单元。宽带使用的RF调制解调器也是分开封装的。
由于它的支持相同型或不同型适配器的能力,LACS不仅能用于IEEE802 LAN与level6的联结,而且将能用作IEEE802 LANS之间的网间连接器,或者,对于宽带LANS的情形,能用作为宽带信道之间的桥接装置。LACS其它方面的应用可以是如用作LAN通信监控/应用记录和网路控制。通信(CS)和系统管理(SM)软件当然适合于各种应用。
图1表示具有同Level6系统联结的LACS的一个局部区域网络,用于工作站LAN存取以及用作LAN之间的网间连接器。
在图1中,LAC101在其输入/输出(I/O)接口中为多至16个处理机的多处理机中心系统提供保证。LAC101为Level6(L6)系统102和LAN100提供联结,在那里LAC101通过Megabus 103同L6系统102接口。此外LAC101起到至其它LANS例如至LAN104或Ethernet105的网间连接器作用。在Level6 CPU的控制下,它可以服务于其它通信需要,例如服务于新的多线控制器(NMLC)107,以及主机计算机系统,例如DPS8 106。
在图2,这里表示LAC101的更为详细的方块图。一商售微处理机(MC68000)201联到一微处理机总线(μ/P)200并通过适配器联接210-213同适配器相联。一商售RAM209耦合于DMA总线214,并通过总线耦合器206接到微处理器总线(μ/P)200。RAM实际上被分为两部分一数据缓冲RAM和一程序RAM。分成两部分的意向在于随着程序RAM中软件的执行,允许在具有Level6存储器或LAN适配器的数据缓冲RAM中同时直接存储器存取(DMA)。总线耦合器206为商售收发报机型74LS245,它把μ/P总线200同DMA总线214隔开,同时允许MC68000在每侧的总线200和214同时独立地工作,还允许微处理器到整个RAM202,209中的任何单元存取。
DMA控制器208是Motorola公司生产的商品68440控制器,它还是两通道器件,其一个通道由微处理器201通过Megabus接口207执行Level6主存储器215和数据缓冲器RAM209之间的数据DMA传送;另一个通道用于接收来自Megabus216的I/O指令信息,并将它传送到数据缓冲器RAM209的一个暂存队列,以便进一步分析并安排固件或接口(IF)软件。
定时器203的型号是9513,它是商售的Advanced Micro Devices公司生产的商品;它为LAC操作系统提供时基信号,为LAC软件提供定时功能(图中未示出)。
对于适配器的DMA功能度由在适配器它们本身确定的硬件来提供,适配器DMA通常在数据缓冲器RAM之内或之外。
程序RAM202和数据缓冲器RAM209之间数据的传送直接由MC68000微处理器201执行,程序RAM202和主存储器215(象在装载/转储操作中一样)之间数据的传送用两步进行首先在微处理器201控制下在程序RAM202和数据缓冲器RAM209之间传送,然后由DMA控制器208执行数据缓冲器RAM209和主存储器215之间的传送。
图3是用来进一步了解操作系统(OS)的结构关系,了解桥接器通信内核OS以及接口(IF)软件和硬件,虽然这对于本发明而言是没有必要的。
图3反映贯穿说明书所阐述的功能度,在图中CS和SM软件301,302不直接控制LAC硬件,而是接口,用接口通过IF软件304处理和例行程序。IF软件把CS和SM软件同硬件的专有性能隔开,从而使进一步重新实现硬件(例如,具有更大尺度LSI部分)不再需要影响软件,所有LAC软件装载到LAC程序RAM202。
在详细说明中,不论按照特定的软件由送到它的信箱信息产生或是通常由于存在来自LAC硬件的中断所产生,IF软件认为是由处理或中断程序所组成。按照OS303的见解,这些IF“中断程序”或者与IF信箱-产生过程(下面说明)相关联,或者是一个基本上只由一个中断组成的程序。
IF软件存储器直接存储器存取(MEMPMA)和输入输出调度(IODISP)程序已经相联结,这些程序把异常事件或故障通知大总线层管理实体(MBLME)。MBLME依次把这些事件通知系统管理(SM)软件;它通常还作为SM同这些程序之间的中间体。
对于每一个具体附加的适配器,IF软件304媒体存取控制器(MAC)程序由MAC发射、接收和层管理程序组成。
对于LAN联结(S),通信服务(CS)软件301提供转送、网络和链路层功能,每一层具有一个同执行类似于MBLME相似功能的层相联结的层管理实体。
系统管理(SM)软件提供全部控制以及通知LACS层管理实体的系统状态,同时在CPU中具有系统管理软件。
操作系统/开放系统(OS)内核软件提供例如定时和控制处理调度以及通过信箱信息。对于各种程序调用,来自内核的误差响应处理由CS和IF软件送到内核。
LAC还包括一些PROM(程控只读存储器)-常驻固件(在图上未示出),它为QLTS(质量逻辑测试),RAM装载/转储以及基本的I/O指令提供保证。
进程通信(下面将进一步说明)是通过使用OS SENDMSG程序调用的信箱信息来完成的,它们都是装置,依靠它们一个处理过程可以送一个信息或另一处理过程的请求服务。它们也是这样的装置,依靠它们异步事件的出现或异步服务的完成,对软件将是显而易见的,因此软件处理能继续着手其下一个步骤。调用程序将检索送到它的信箱区,软件程序可以取得它们本身的信箱的ID(识别),它们也可以取得其它程序的公众所知的注册信箱的ID(识别)。
对于影响信箱队列中信息相对位置的信箱信息,桥接器OS303提供若干优先权,可以利用的信息优先权是URGENT、NORMAL、MUST、DELIVER和FAST。
LAN控制块(LCB)(下面说明)是Level6Cpu和LACS之间进行通信的主要交通工具,具有大总线的OS/SM软件接口301、302是通过接收来自IF软件I/O调度处理304的信箱信息以及通过送到IF软件的信箱信息得到支持的。接收到的信箱信息基本上由至主存储器215的LAN控制块(LCBS)的指示字所组成。至存储器DMA处理的信箱信息通常用来传送主存储器215和LAC数据缓冲器RAM209之间的数据,或者用来读入LCBS,或者用来写状态信息至主存储器215LCBS并中断CPU。
具有适配器的CS/SM软件接口是通过由IF软件媒体存取控制器(MAC)处理产生的信箱信息(即数据显示和控制显示)以及通过送到IF软件MAC处理的信箱信息得到支持的。
在正常运行时,介于Level6和LACS之间的软件接口使用送到LACS的I/O装载(IOLD)指令以及由伴随中断至Level6的LAC送到主存储器的回复状态信息。
所有数据信息,行政的和管理的操作都是立足于使用主存储器215中的LAN控制块(LCBS),并且均以IOLD指令形式给定的信息加以指明。在LAC中适当的软件处理将导致LCB模仿RAM,如象一个LCB LAN控制块图象(LCBI)那样,而且在完成请求操作之后,将导致最终状态送到LCB。在进行操作中,将使用各种不同的处理方法。
如图4、5和6所示,LAC基本上由三条总线组成,图4主要包括微处理器(μ/P)总线400;直接存储器存取(DMA)总线614a,614b。图5主要包括适配器总线521a,521b,522a,522b以及图6包括联结器1和2。这些总线至多包括16个数据位,2个奇偶校验位和23个地址位,还包括含有数据选通,地址选通,读/写线以及功能码线的控制总线。
现在参见图4和图5,这里有一个Motorola型的微处理器(μ/P)401,它是在储存在商售动态随机存取存储器(DRAM)402中的操作系统(OS)的控制下进行操作的。这个操作系统OS控制从DMA总线(614b)到适配器数据和地址总线421b以及Megabus 416B的数据流。(当下面讨论适配器总线时,这将进一步充分讨论。)商售可清除可编程只读存储器(EPROM)404为16K×16位宽,是商售27128型的。EPROM404包含一快速逻辑检验(QLT)和到微处理器401的堆栈指示字。EPROM也配置Motorola型68440 DMA芯片408,转送来自Level6计算机系统214a,214b,215的I/O指令块,以便储存到64K×18动态随机存取存储器(DRAM)411,并应用Motorola 68000(μ/P)401执行Level6指令。Level6Cpu214a/b也把操作系统(OS)装入动态随机存取存储器(DRAM)402,这将应用微处理器(μ/P)401执行程序和指令。
对于在图2上用参考号数214a,214b,215标志的以及在图4第2张图上用参考号数414a,414b标志的Level6系统,为了用LAC通过Megabus 216,416a,416b进行通信,Level6 Cpu 214a/b通过74AS867/26S10型Megabus接口407a,74AS823/26S10型接口407b发给LAC一指令。这个指令由74A823型寄存器接收作为功能码。Level 6 Cpu 414a把地址放在地址接口407a上,而Level Cpu 414b把数据放在数据接口407b上。这样,数据即放在先入先出(FIFO)430的输入端上,而指令被放在控制器的输入端上。当指令被送到控制器408时,一信号被送到DMA芯片408a,以请求取得DMA总线614b的控制。DMA片408a回答请求并允许控制器408把数据放在DMA总线614a,614b上。之后,DMA芯片408a访问控制器的存储器408b并把DMA数据传送到DRAM411。当此程序完成时,DMA芯片408a将允许微处理器401执行操作。之后,微处理器401将请求DMA总线,而且如果许可的话,它将传送来自存储器408b的数据,以便进一步进行处理和分析。
为了通过LACS101把数据从Honeywell Level6系统102传送到LAN100,μ/P68000首先把Level6开始地址装入Megabus地址接口407a。在Megabus地址接口407a里,有一个量程计数器,它把计算的字数装入存储器408b中。之后,μ/P401装载一个DMA地址到DMA芯片408a中。这样装入的DMA地址寻址存储器408b,为了计算装入存储器408b的字数,它也装入一个量程计数器。之后在μ/P401的控制下,数据通过Megabus数据接口407b传送到先入先出(FIFO)存储器和DMA总线614b。之后DMA芯片408a把在DMA总线614b上的数据传送到DMA缓冲存储器408b。期间,用74LS245收发报机406b把μ/P401同DMA传送隔开。这样μ/P401能同时执行一些其它的应用DRAM402得到信息的任务。当DMA传送是由Level6到DMA存储器时,DMA片408a中断μ/P401。之后μ/P401通过74LS245型收发报机420a,420b发出指令到DMA总线614a,614以及到适配器总线421a,421b。之后接收指令的适配器读DMA存储器408b,并把来自DMA存储器408b的数据传送到适配器422a或422b同时传送到LAN100。当这个程序产生时,μ/P401通过收发报机406b,420a,420b分别同DMA总线614a,614b和适配器总线421a,421b隔开。之后μ/P401依靠它的操作系统OS进行操作,同时对DMA片408a安排下一个传送块。收发报机406b允许微处理器总线运行它的程序,DMA总线以及执行从Level6存储器215,Megabus216到DMA存储器408b的传送。这样,总线的隔开允许所有三条总线同时运行而不相互干扰。这就使LAN是非常多能的,而且通过LAC提供更大的输入输出信息通过量。
现在参见图5和6,这里表示由适配器子插件联结210-213(还是见图2)和适配器的子插件216-219组成的适配器接口的方块图。包括适配器接口系统的整个LAN插件至多可具有四个子插件522a,522b,每一个子插件具有A奇偶接头。例如,子插件#1(适配器接口#1)具有适配器联结W01和W02;子插件#2(适配器接口#2)具有联结W03和W04,等等。奇数联结操纵控制线;而偶数联结操纵数据线0-15和地址线00-23,适配器的子插件可以具有由Ethernet,标记环,标记总线,磁盘,磁带,存储器等制成的任何型式。
适配器总线421a,421b,521b用商售74LS245型的收发报机420a,420b,520b,520bc,同DMA总线414b,514b隔开,在DMA总线需要送数据至适配器总线的地方,收发报机允许数据流按此方向流动;反之,当适配器总线需要送信息到DMA总线时,收发报机指向另一方面。在联结器(210-213)上的每一个适配器子插件216-219都适合于传送或接收来自LAN的数据;那个到DMA总线的适配器请求和一个68452型的判优片509决定哪一个请求具有最高优先权,之后决定总线到哪个具有最高优先权的适配器。它也通过74S20型门531送一个信号至7474触发器型芯片。一旦设置了触发器530,则将指示一个子插件适配器在处理中的周期。之后信号通过用读/写信号选通的门532、533加到收发报机520b,520bc。加到门532,533的读/写信号确定数据通过收发报机521b,521bc……按什么方向,即是DMA总线放在适配器总线上,还是适配器总线放在DMA总线上,当这种数据传送完成时,下一个最高优先权适配器即可启动其周期。
应用来自收发报机406b的启动信号,数据传送也可以传向适配器,也可以从适配器传来。按照这种传送技术μ/P401用适配器启动信号为收发报机406b编制程序。相应地,通过收发报机406b,μ/P401在其控制之下可以读或送数据至适配器。因此,通过收发报机520b,520bc的隔开方式,和通过收发报机406b的选择,允许用μ/P401编制程序的LAN在LAN上应用任何类型的子插件(适配器)。
参见图6,它表示LAC和连接的适配器之间的具体接口。适配器接口电联结器W01-W08组成。图6表示两个典型的联结器。所有偶数联结器W02,W04,W06,W08包括数据位0-15和地址位1-23。所有奇数联结器W01,W03,W05,W07操纵控制信号。在奇数联结器上,联结器终端10是总线清除信号;联结器终端11是主清除信号;而联结终端12是总线错误指示。联结器终端13处理优先权错误信号;而读/写信号加到联结器终端18,数据应答信号加到终端20。一较高数据选通信号加到终端22;而一较低数据选通信号加到终端24,一数据地址选通信号加加到终端26,终端29控制用于系统时钟的信号,而终端31控制用于2×2系统时钟的信号。终端35控制用于1/8系统时钟比的信号。电源接通信号通过终端34控制。来自适配器的中断请求信号加到终端47,至适配器的中断应答信号加到终端48。至适配器的启动选通信号加到终端49。来自适配器的总线请求信号加在终端51上,而至子插件的总线允许应答信号加在终端52上;而从适配器到LAN的总线允许应答加到终端53。联结终端用以识别各种数据线和地址线。
输入/输出(I/O)指令为了用Level6 Cpus 214a,214b提供LACS的控制,使用具有不同功能码(FC)的一组输入/输出(I/O)指令。
输出指令1.IO(FC=01)输出LACS控制。
2.IOLD(FC=09/0D)输出LCB指示字。
输入指令1.IO(FC=26)输入器件ID。
输出LACS控制I/O(FC=01)……该指令传送一16位控制字至LACS。所有适配器和接口都受该指令的作用。指令中使用的信道数是不重要的,定位定义如下位0硬予置(如果是1)。
位1停止I/O(如果一位是1,位O是零)。
位2-15MBZ(一定为0)。
硬予置功能由电源启动序列开始或者由输出LACS控制指令(是指令的第一位)是一个1;即FC=01。该予置功能引起下列反应(a)LAC和适配器RAM202,216a-219a被请零。
(b)所有LAC中的硬件寄存器以及适配器被清零。
(c)LAC运行其质量逻辑测试(QLT)并确定适当的配置信息。
(d)LAC进入停止状态,这时其功能度由受PROM204支持的那些功能组成。
如果I/O指令的位1是一个1和位0是一个0,则执行停止I/O,这将引起下列反应(a)LAC中的硬件寄存器以及适配器被清零。
(b)依靠固件控制LAC开始或者继续运行。这时功能度由受PROM常驻固件204支持的那些功能所组成。
输出LCB指示字IOLD(FC=09/0D)……IOLD指令基本上是由两个功能码组成。当现在与一个地址的装入有关时为功能码09;而当现在与装载域有关时为功能码OD。该指令包括两个分别的总线传送到LAC。第一传送是一个32位字节的地址,而第二传送是一个16位的域字,其指令高8位是翻译,以确定LAC硬/软功能,而其指令低8位确定LAN控制块LCB字节的长度。地址和LCB长度一起确定Level6主存储器215中一个LCB的位置和长度。当Level6 Cpu 214a或214b发出一IOLD指令时,Megabus 216把09功能码放在Megabus地址位18-23上。LAN接收该功能码并将它存入图2,5的母插件中。LAN将作出响应的下一个功能码是完成IOLD指令的OD功能码。
关于发出IOLD指令,将呈现出来的一个主要问题是在多处理系统中,没有一互锁装置,IOLD指令能够从两个Cpu发出,而且这些IOLD指令有可能交错,因为LAC没有办法(Know how)配合从二个Cpu中送出的09加OD一对功能码。互锁装置产生一NAK(否定应答)到第二个Cpu,后者将阻止模糊周期并将发出所有来自同一个Cpu的IOLDs。
参见图7,这里表示商售74S112触发器701,它存储来自第一IOLD指令的第一功能码09。触发器701的一个输出信号加到商售16L8型可编程阵列逻辑(PAL)703;Megabus地址位18-23也加到PAL。PAL703将功能码解码并决定由Level6发出的功能码是应答(Acked)还是不应答(NAked)。一旦作出判断,它就存储在74AS823型锁存器704中。锁存器起着信号标作用,它能把来自总线的信息排除等候,因此,总线能释放而信息能在适当的时间使用。当LAN检测用于LAN插件的指令时决定锁存电路信号标704。为终止周期,触发器701复位至功能码OD。触发器701可考虑成为一括号的类型,它用功能码09置位,而用功能码OD复位。PAL703解码功能位,并决定对Megabus哪个功能码将被应答(Acked)或不应答(NAKed)。这样,当在每个Cpu接收错误应答的情况下,该逻辑将阻止发生IOLD的第一Cpu和发出IOLD的第二Cpu。为了NAK,使得任何在IOLD之后的输入指令提供控制LAN插件,使用了触发器702。它是用作为一个信号标,这个信号标将置位于第一IOLD功能码09上,并且当且仅当有一个主清零信号加于它时方能复位。只要LAN插件已经对IOLD指令给予控制,从而作为信号标的702将阻止Level6的输入指令。
一旦一个输出LACS控制指令(FC=01)按序完成,一输入装置ID指令(FC=26)使LAC PROM204把16位装置ID字送到Megabus。该ID识别LAC和连接到被访问的适配器信道的适配器。LAC被指定到64信道编号组,对于输入装置ID指令(FC=26),信道地址的最后6位有效位被LAC处理成为由两个字段组成最高2位表示适配器子插件状态,而最低4位表示同适配器216-219相联系的子信道,用于输入装置ID指令的信道数编码由使用具有0-9的10位格式完成。LAC插件地址由位于首4位的码识别;适配器状态由4-5位置的2位码识别;最后,适配器上的子信道由6-9位置的4位识别。
数据传送LAC设计的主要问题之一是在LAC中需设有不管组成何种形式的LAN系统均维持不变的驻留通讯层软件。为此,相应的就必须将此驻留软件与L6(级6)的大总线(Megabus)侧以及LAN接口相互隔离。用来完成这一任务而同时仍保持LAN和L6之间的、以及LAC控制器自身内部的通讯层的硬件是LAC控制字块,如图8、图9以及图10-13中所表示的。
图8所示的LAC控制字块的功用是由主存储器装载或转储LAC软件,将LAC RAM202的不同部分转送入主存贮器215,和检索某一LAC配置信息。其操作是由前面谈过的输出LCB指针IOLD启动的。图8中的LAC控制字块具有16毕特宽度字的格式,其中第一字801分成数部份,起始的6毕特留作未来的硬件使用(RHU),其次4毕特指明发出装载或转储命令自身的CPU 214a、214b的通道数的最低位4毕特。CPU通道数的其余高位毕特总是O,因此,只列出这后面的4毕特。801的另外6毕特标明在接收到中断时CPU需应用的64个可能中断级别中的一个。
字802指定能执行的操作(这里仅可能有3种)之一。它表明是执行将LAC RAM 202的内容存入或传送给CPU中的主存贮器215的操作,还是相反由DPS6存贮器向LAC和RAM装载。第三个操作是将由LAC RAM得到的配置信息存入DPS6存贮器。
地址字803和804存放欲将数据传送入(或出)的L6存贮器的地址的高、低位部份。
传送范围字805以字节数来限定在LAC和主存贮器间传送的信息的范围。
LAC RAM地址字806和807指明数据进入(或传出)的LAC RAM202部份的地址的高和低位部份。在信息为读组态式时,所指明的组态信息即已隐含着该特定地址。RSU字808留给可能成为需要的软件应用。
状态字809表明完成传送操作时所运送给CPU的信息的有关状态。如果出现问题,该操作将终止,而这种状态将在状态字809中指出。但如果传输中没有问题,此状态字将全部为O。如果有问题,状态字809的8个高位毕特必定仍然全为0。其后是一个无效功能毕特,它用来指出该请求因某种原因而成为无效,这多半是由于所采用的装载或转储操作码是一个未加定义的编码。例如,下一毕特是存贮器取尽MEMEXH,并指明正一个紧跟着一个地发出了数个装载或转储操作命令,从而控制器就不可能全部处理它们,因为它每次只能处理一个这样的操作。字809的下一个毕特是RAM不存在毕特,它表明字806、807中所定义的地址指向到LAC RAM中不存在的存贮区域。由此,该毕特就说明了因这种障碍传送操作没有完成。下一毕特RAMP表示在读出LAC RAM 202信息将其传送到CPU存贮器215期间出现了奇偶校验误差。状态字809的MY毕特代表存贮器(黄牌)予警(MeMory Yellow),它表示在由L6向LAC RAM传送信息时,数据读出中发生了差错,但此差错是可以纠正的。所以该数据已被送给LAC。这是一个表明L6存贮器中存在某种不足的警报。接下来的毕特NEM是L6存贮器不存在的缩写词,它指出在利用由字803、804所形成的地址时,有一部份不存在的L6存贮器215被寻址了。毕特L6B表明在由L6存贮器向LAC传送信息期间发生了L6总线奇偶校验误差,此误差存在于L6大总线216中某处,而且被置入LAC RAM 202中的数据内部有差错。字809的最后一个毕特是存贮器(红牌)警告(MeMory Red)的缩写词,它指明在由L6存贮器向LAC存贮器传送中,由L6存贮器读出的信息不正确,而且是无法由纠错硬件纠正的,因此传送到LAC送到LAC RAM的信息是错误的。MBZ810是一个供将来应用的、必须全为0的字。最后,终结字811具有一个由LAC控制器为完成操作所设定的终结状态毕特SC,被用来给L6软件指明在字809中什么样的状态表示操作终结态。
现在来看图9,这里所表示的是前面已叙述过的I/O启动命令用的另一种LAN控制字块格式,字901是一个16毕特的字,其中高6位毕特也留作硬件应用(RSU),通常是全O。其后4毕特指定CPU通道,并标明发出该命令的CPU的通道数量低位4毕特,同时,它也是在I/O启动完成时被中断的通道数。字901的级号是最低6毕特,它指出在64个CPU中断级中,哪一级在操作完成时被驱动。
RSU字902是供任何所需目的的软件应用的备用区。字903,904表示微处理机201开始执行某一特定程序时所使用的微处理机启动地址。通常在微处理机启动前,该微处理机的存贮器202将已经为前述的与图8相关的一个装载操作所装载,因之,现在这一命令的目的就是要告诉该微处理机从何处开始来执行这已经装载3的程序。MBz字906、907是两个必须保持为全0的字。MBZ字908含有一个由微处理机201在其完成启动操作时所装载的终结状态毕特(SC),它向在被中断中的中央处理机指出,I/O启动命令已经正确地完成了。MBZ字908的其它部份全部为0。
图10所示是一个典型的信箱区信息,用来请求一DMA操作以转移数据块,例如将前述的LAN控制字块在位于LAC中的存贮器和位于L6中的存贮器之间传送,即从RAM202到RAM215。信息标题1001通常包含一种型式码,它精确地定义所需求的传送类型,即如LAN控制字块等的块传送。虽然图10所示的仅仅只含有一个字,但一般信息标题都包含有数个信息字。RHU字1002留作硬件应用,是为将来应用准备的额外备用空间。完成一个操作后,例如传送一字块,请求这一传送的CPU可能需要加以中断,并通知所发生的事情。字1003指定当需要这样一个中断时要应用的参数。不过只有在由字1003的最低6毕特组成的级不是全0时,才能送出一个中断。LAC通道数包含字1003的高6位毕特,它被用于中断时为CPU提供给LAC的命令最初寻址的特定通道。字1003的CPU通道数基本上与图8和图9的相同,是一个指定欲被中断的CPU通道数的4毕特字。最后,级别字是一个规定中断级别的6毕特字。返回信箱区ID字105和106标识LAC内部实际要求执行该操作的信箱区202a,因此它表述在操作本身完成时需通告的过程。当操作终结时,状态字1007即由存贮器DMA过程返回。各毕特的定义与图8的状态字809类似。L6存贮器地址字1008和1009指定传送入或由其送出的L6存贮器的地址的高位和低位部份。量程字1010指定操作中欲传送的字或字节数。LAC RAM地址字1011和1012标明信息欲送入或由其取得的LAC RAM中的地址。RSU字1013留作未来的硬件使用。
现在来看图11,该图示出了一个信箱区信息,该信息是作为一个用于在LAN上传送一个数据而使用的典型的数据传输请求被送往适配器接口软件进程的。这具有IEEE标准委员会接口的各种型式LAN。信息标题1101含有数个信息毕特,如定义欲传输信息性质的型式码,指定欲送出该局部区域网络的数据位于RAM202、214中地址的缓冲地址说明符。帧控制字1102由8低位毕特组成,用来指明记号总线中或记号环形帧的帧型式。RSU字1103是留作软件用的区域。返回信箱区ID字1104、1105标明要求进行发送或传输的进程的信箱区,以便将一信息加入信箱区内从而使得在操作完成时可对进程予以识别。
状态字1106主要由软件根据其所要求返回的内容所作出的决定来定义的。型式或数据长字1107用于CSMA/CD及Ethernet网络帧中。在Ethernet型LAN连接到LAC的情况下,它指明帧长;而在CSMA/CD型LAN连接到LAC时,它则表明采用的是IEEE802 3型帧。目的地址字1108指明信息将送达的站的地址,最后,RSU字1109则是一个留作软件应用的区域。
图12和13所示为被指定作为I/O命令暂存队列的RAM存贮区的地点和格式。图12是存贮单元字节地址为800400-800700编号为1301-1304的不同队列。图13表示这些队列中任何一个的一个典型项目。字1201为被暂时存贮的通道数;而地址字1202、1203则表明主存中欲传送的信息的高位和低位地址。量程字1204指明欲传送信息中的字节数。
接口(IF)软件图14至18是一组较详细说明各种IF软件进程和中断子程序的高层功能职责的流程图。
现在来看图14,这里作出了LAC控制器中I/O调度过程所执行的操作的流程图。中断等待时间1401代表I/O命令中断能得到此子程序服务之前的微处理机时间长度。每当LAC控制器接收到一个I/O命令,微处理机201总需要一定的时间来作出响应,起动操作才能对此中断进行处理。配置块MBX 1402是一个对LAC控制器内核软件的调用,以配置一信息块使得I/O调度进程能向LAC控制器内的某一其它进程通报有关刚刚收到的IOLD命令。此调度进程所执行的实际操作由调度表1403的索引规定。该调度表除了由上文已讨论过的、作为I/O命令的组成部份的操作码加以检索外,还借助I/O命令所寻址的通道数来作为索引。由此,此调度进程将利用调度表进行检索以便确定什么样的进程需要通报。如果没有进程需要通报,这一指令就将依赖对一调度信息进行汇编1405并将此信息送到下一步SENDMSG1407而被调度到大总线管理层。I/O命令然后被送到层管理进程,此进程的职能是决定应该怎么做。假设1404确定信箱区ID有效,进程即对包含有IOLD信息的汇编调度信息1406进行汇编,而此信息再由SENDMSG1408送到被认定能对之进行处理的某一进程。在通常的DMA信息情况下,它一般被送到传输/发送进程或者传输/接收进程,这按它是输入操作的I/O命令还是输出操作的I/O命令而定。如果此进程运行当中收到另外的命令,就象在队列1409中有多个项目那样,那么此调度进程将返回到配置块MBX1402,并对下面的命令重复此进程。如果队列1409中没有另外的项目,则调度进程进入1410。
由图15和16可看到由LAC控制器工作的DMA进程的流程图。实际上这里进程有两部份。图15所示的一部份是由DMA操作完成后的中断所启动的存贮器DMA进程。图16所示的进程的另外一部份则取决于信箱区202a是否收到了任何请求。
首先参照图16,当由LAC控制器中的一个进程收到一存贮器DMA操作请求时,操作即开始。此进程要开始执行,首先必须交换上下文SW 1601。而后内核软件调用BRECV1602将确定在其输入信箱区内是否有任何请求。如果没有任何要求进程执行什么操作的请求,那么此进程就终止,到BRECV指令1602即不在向前进行。如果具有对某种操作的请求,那么就要调用含有所有信号的操作系统内核对中断进程进行检验SEMAWAIT 1603以确定中断进程已经没有正在执行有关DMA控制器的某一另外的操作,就是说已经有一个DMA操作在进行。如果当时没有DMA操作在进行,则进程将前进到步骤1604,在此它将所需的信息装载到大总线寄存器和DMA控制器以执行DMA传送,完成这种装载操作之后,进程即将先前在步骤1603检验过的记号设置一个记号毕特SEMAWAIT 1605(借助于调用操作系统内核),以使得在此记号毕特被置位时将不执行另外的DMA操作。在步骤1606,检验标志以了解是否还有任何因完成了操作而提出的中断请求在等待CPU接受<即所谓“悬案”>。如果无悬案存在,即送出一返回信箱区信息给原请求操作的过程。在送出返回信息步骤MBX1607,为已经完成的DMA操作发出返回信息。(它不是对刚刚开始的该特定DMA操作的返回)。然后软件回到BRECV1602,并且如果没有要它执行什么操作的请求的话就停止。如果有另外一个请求在等待,它将按照SEMAWAIT1603而停止,这是在当操作开始时在步骤1605所设定的记号。此特定的DMA操作一完成,进程流程即转到图15。在中断被识别和开始执行前,又有一个中断等待时间1501。该进程一经接受,测试1502即作出决定此进程是否能处理在L6和LAC控制器之间作分散或集中式数据传输。如果这是一个分散或集中式的操作,则此操作即通过1503、1507和1511步骤进行,由于此时DMA控制器已经就绪,所以此进程可以继续进行所需的附加传输的分散或集中操作。如果仅只是一次传送,因为没有分散或集中式数据传送,那么,此进程就进到差错检验1504来确定是否存在诸如奇偶校验差错或不存在存贮器等的差错。如果存在任何差错,则对状态信息1505作有关所发生差错型式的汇编。于1508设定一标志以示可给请求进程返回一信息(这一标志与步骤1606所引用的是同样标志)。现在在步骤1603中所引用的记号在步骤1509被解除了,从而就可进行进程的第二部份和处理下一个操作,并进行步骤1512。如果步骤1504中无差错,在步骤1506就要检验确定在操作完成时L6是否要求被中断。(这是由前面谈过的DMA请求中优先级编码来决定的,它表明存在着一个中断请求。)如果不出现差错,则将按步骤1510对L6执行(或尝试)中断,以便给L6系统指明一DMA操作无差错地完成了。如果在操作中有差错,将不作中断尝试。而代之以将状态信息1505送回到发出请求的过程,向其指明操作中出现了差错。
现在参看图17,图中所示为对LAC控制器实行中断的适配器中断子程序的流程图。当适配器216-219之一向LAC控制器送出一个中断信号指出它已完成了某种操作或者发生了什么异常事件需要向某一软件进程通报有关情况,此时LAC控制器即启动此子程序。为此,在由步骤1701,1702,1703,1705和1704所组成的循环中,有一个循环其中断软件将确定中断是由哪一适配器发生的。由此,由所有的4个可能适配器出来的中断信号是被一齐限定在一根引出线上的,软件就必须向每一适配器查询它是否是要求中断的适配器。因此,该循环就说明了要依次对每一个适配器进行测试,并作出那一适配器提出中断请求的决定。如果它确定了中断是由某适配器发出的,那么中断子程序就转到步骤1706,1707,1708,并组成由中断原因所决定的信息。在SEND MSG MAC N TX 1707,由一个刚刚结束了曾经要求进行传输请求的适配器送出一个信息。SENDMSG MAC N RX 1708表明一个适配器已经由LAN收到一个输入信息,因此,此适配器希望送出一信箱区信息来处理这一具体情况。SENDMSG MAC N LM 1706说明发生了一个事件,以及送出一信箱区信息到MAC层管理进程来处理该事件。最后,在信息发送完成后,即进入步骤1709中断子程序。
现在参看图18,图中列出了某些适配器专用MAC进程,并表述了一特定适配器用的三种不同的MAC进程的流程。此进程再一次由上下文转换1801初始化,1801接受所有的信箱区信息或者进行上下文转换来接受它。进程BRECV MAC LM1802、BRECV MAC RX 1803或BRECV MAC TX 1804之一在其信箱区由图17所示的适配器中断进程接受到一信箱区信息时即进入活动状态。只有其中之一按照所收到的信息被激活。MAC管理层1802,1805在活动时将根据情况采取某种行动,例如向它发送一信息来通报站管理进程,或者仅仅是使适配器自己复位。当已收到一信息BRECV MAC RX 1803,此进程即替换在处理该信息中MAC适配器已用完的缓冲器1806。MAC适配器具有予定数量的,可用来存放数据的缓冲器,那些已经为输入信息应用过的必须被置换,以便使适配器能准备接受另外的信息。这一操作一完成,进程就要判定信息中或适配器中是否有任何差错1808。假如有差错,就将该信息丢掉1811。如果无差错,进程即去掉MAC标题1814,为将该信息送给逻辑连接控制层软件进程进行下一步处理作准备。(它是301中的CS软件进程之一)。在配置步1815配置一存贮器块供建立信箱区信息之用。然后在步骤1816将此信息加以汇编,并将其送至逻辑连接控制进程步骤1818。如果需要的话,在步骤1819和1820 MAC进程取得备用缓冲器以便将来适配器可能需要置换缓冲器。
如果执行了一个传输操作,BRECV MAC TX 1804将收到一个信息表明该传输操作已完成。该信息要经检查来确定它属于何种类型的信息,就是说,是否此信息是从用以表明完成的适配器中断子程序接受到的,还是此信息是从请求其作传输的连接层控制(LLC)接收到的。假定是一个完成信息,则在步骤1810中对一完成返回信息进行汇编并在步骤1813中送到LLC。这一作完,进程就要确定在它的队列1824中是否还有信息要传输。如果还有另外的信息,进程就进行到步骤1825,在此向适配器发送请求,使它能传输正等候中的信息。如果步骤1824确定了队列中没有信息在等候,就设定一适配器等待毕特1826,它仅仅表明,适配器已不再忙于任何工作,并且循环回到BRECV MAG TX 1804接收信箱区。相反,如果由LLC接收到一个要求传输的请求,那么为标明将执行传输的MAC的原地址所需的标题就被加入步骤1809,而适配器等待毕特将在步骤1812进行检验,以确定此请求进来时适配器是否确实不在作任何工作。如果适配器是在等待什么工作,进程就前进到步骤1821,并立即将传输请求送给适配器而将适配器等待毕特复位1823,表明现在适配器已在忙碌。另一方面,如果在步骤1812中确定该请求是在适配器已在忙于进行某种工作时进入的,那么此请求就被加到适配器的队列1827。
现在看图19,这里作出了LAC传送流程。第一步,CPU214a/b中的LAC驱动软件在存贮器中由IORB 1903内的信息组成LCB1902。LCB将包含有标明所需处理和功能以及参数的信息,它还包含指定存贮器中含有欲发送的数据的缓存的物理地址和范围。LCB也包括供由LAC返回状态用的空间。
第二步,LACS驱动器1901向LACS发出一输入/输出装载命令(IOLD)。由此命令给出的地址指向LCB,而其“范围”参数则有两字段高位8毕特是功能码字段,低位8毕特指定LCB的大小。IOLD信息为LAC硬件DMA控制器由大总线216取下并置入暂存队列1902。这产生一个中断,以启用I/O调度进程(IODISP)来检查该命令。在确定此IOLD有效后,它即利用命令中的通道数来引用一个调度表,并决定命令的去向以作下步处理。此时,此子程序得到一个RAM存贮块(通过一配置调用),将LCB指针IOLD信息存入这一存贮块,并将其送到(通过SENDMSG调用)CS进程信箱区。LCB指针IOLD信息块的格式前面已经讨论过了。如果队列中有更多的I/O命令,I/O调度进程也将加以处理。I/O调度进程所获得的所有信息块都必须通过某另一进程返回到空白的存贮器(即步骤12)。
步骤3CS进程1905安排为由OS执行(因为信箱区信息寻址到它)。此进程检索信箱区信息,在获得为LCB映象(LCBI)1907所需的RAM存贮块之后,送出一信息到存贮器DMA请求进程1906,以请求LCB进入该LCBI的DMA。如果此时没有其它事要做,那么,CS进程自己就可以暂停。
步骤4存贮器DMA请求进程1906使得DMA控制器将LCB 1902复制到LCBI 1907中。完成这一操作后,DMA控制器中断微处理机201。这使得存贮器DMA进程被再次调用。这一进程将状态信息置于CS进程所发送的信息块中,而后再将此信息块(通过SENDMSG调用)返回到被指定的返回信箱区。原先由步骤3中的CS进程置于该信息块的RSU段中的信息使得它有可能识别已完成的特定的DMA操作。
步骤5CS进程对步骤4的信箱区信息作出响应。在对LCBI进行检查并计算出L6缓存总数后,它调用-GETBUF来取得保存数据信息足够大的RAM缓存区。而后它发出一信箱区信息给存贮器DMA进程,以及使数据由主存移到RAM中的这一缓存区。典型的信息块格式如图10和11所示。LB缓存表由LCBI1907得到,而级别字段则应为0。
步骤6存贮器DMA进程使DMA控制器208将主存中的数据复制到RAM缓存区209。必要时,此进程将促成一个对主存来说是“集中”式的DMA。而对LAC RAM来说,DMA总是按照在逻辑上是单个的缓存器进行的。在完成DMA后,存贮器DMA进程重新被调用,将状态放到信息块中并将其返回到所指定的(CS进程的)返回信箱区。
步骤7CS进程对步骤6的信箱区信息作出响应。它发出一信箱区信息到存贮器DMA进程1906,使存贮器中LCB 1902中的状态完整化,并中断CPU214a/b。在原来某个时间,LACS驱动器将通报这一状态的完成到IORB1903。假如欲将一信息送到IEEE802型LAN,则CS进程必须生成标题段,而且将作为导引信息加到DMA缓冲区209。CS进程也必须在此缓存区的起始部份保留左边的另外的空间供MAC进程在其前面加以标题。CS LLC进程将信箱区信息1908加以汇编,并将其送到(1909)适当的MAC进程。
步骤8在具有较高优先级请求处理时,MAC传送进程将对请求进行排队。一等一个请求成为可能,进程即将其送到适配器216-219。适配器完成给信息帧(SA和FC)加以标题的操作,而且在介质存取规定允许时,将一正确编排的帧格式(包括前序、界符和FCS)通过适配器的PHYS层装备送给LAN。当传送完成时,适配器DMA控制器发出一中断信号到LAC的微处理器201。
步骤9适配器中断子程序调用一由此适配器取得最终状态的MAC传送进程。此MAC传送进程释放RAM缓存器(FREEBUF调用)。如果有其它的传送请求在等候,进程将传送一个到适配器。
图19中,尽管为了清楚起见刚才叙述的传送流程是说明一单个流程,实际各不同阶段的任何瞬间都有多条流程在进行处理中。由于每一个软件进程都是为解决其所有要完成的任务而编写的,因之,如果可能的话,在自行放弃微处理机前,每一被传送信息所执行的上下文交换的数量,在典型的负荷下,将倾向于较之仅为考虑单个信息流程时要少。
为了处理所接收到的信息,有两种方案可供采用,其决策依据是是否该应用希望只有在由LAN接收到信息后才分派缓存器,还是它希望予先设想可能的输入信息来分派缓存。在第一种或即读取-通报的情况下,必须发出两个IOLD,而且必须为每一信息发送两个中断信号给CPU。在第二种情况下,对主存空间的要求势必会较大,因为为了等待信息而必须涉及到缓冲器。
对接收流程的叙述将不如发送情况那样详细,因为CS软件进程,IF软件进程,硬件中断以及中断固件的相互作用是类似的。
对于接收操作,CS软件不必如发送操作时那样需由存贮管理要求数据缓冲器。而IF软件MAC进程则将能自动地为每一适配器提供数个可用的逻辑缓存器,它们中每一个都具有足以容纳最大可能信息的空间。在收到一有效信息后,MAC进程的数据指示子程序将通过缓存器传递给合适的CS进程。
如图20所示,在读出-通报的情况下,CPU软件通过LCB输出指针IOLD命令向LAC发出一系列LCB,它们被叫做“读取-通报”LCB2002。这些是用来提供CS软件可能用以通报CPU软件信息的到达的LCB。当由这一措施指出了信息到达时,CPU软件将发一读出LCB以指明该信息应被置于主存中的位置,而且通常还要发出另一读取-通报LCB来替代先前应用的那个。这种设计可以使数据直接输入到应用缓冲器。读取LCB与读取-通报LCB之间的差异在于LCB自身内部的某些软件定义的指出。
在步骤6,CS进程2006查询它的读取-通报LCB表,了解其中是否有一个与刚收到的这一特定信息有关。如果没有,此信息即留在RAM中(不过假如在相当长时间过去后还没有合适的LCB,进程将被强制丢掉此信息)。通常情况下,CS进程将欲被传送到存贮器215中LCB的信息标题1001中的内容加以汇编,将信息区信息块加以汇编,并将其送到请求将此信息内容作DMA传送进读取-通报LCB2002的存贮器DMA进程2007。在此信息块中,CPU通道和中断级字段反映出原先IOLD和LCB中给出的作为通道数的信息内容(见图8)。
在步骤7中,DMA控制器2007将信息传送到读取-通报LCB2002,并中断微处理机201使其再次调用存贮器DMA进程2007。现在这一进程发送所请求的中断给CPU,而在这一工作完成时将步骤6的信息块返回到返回信箱区(CS进程)。
在步骤8,CPU软件响应此中断,由查询未完成的IORB或由其它措施来确定该数据信息应放在主存内何处。然后,LACS驱动器2001在存贮器中设立一读取LCB。此LCB将含有步骤6的识别符(以使LAC中的CS进程能鉴别哪一数据信息需要传送),并指定它们将被置入的主存区。
在步骤9,LACS驱动器2001针对LcB向LACS发出-IOLD。在通常状态下,IF软件将LCB指针信号2005传送给CS进程2006。
在步骤10中,CS进程发出要存贮器DMA进程将LCB复制进RAM中的LCBI2008的请求。
在步骤12中,CS进程检查LCBI,确定一读取操作已被调用。该进程计算L6缓存器的总体大小,并计算LCB状态量程余数值,将最后的状态放入LCBI2008中。然后它发出一个请求给存贮器DMA进程以使数据信息由RAM209转移到主存215和将最终状态从LCBI输送到LCB,并中断CPU。
在步骤13,按照需要DMA控制器将RAM缓存区中的数据2012复制入主存,以DMA进程的控制实现一“分散”DMA。在成功地完成此数据传送后,DMA进程执行一个块传送,将LCBI状态复制进LCB并中断CPU。完成此操作后,存贮器DMA进程将信箱区信息块返回到返回信箱区(CS进程)。
在步骤14,CS进程可释放数据缓存器,LCBI块以及信箱区信息块。
同样,虽然为了清楚起见这里的说明和图都只介绍了单个流程,实际在各阶段任何瞬间都在进行多个线索的处理。由于每一软件进程的编制都企图在让出微处理机前完成它的所有予定工作,每一收到的信息所执行的上下文交换的数量在典型负荷下,均要较仅考虑单个信息流时为少。
在读取LCB情况下(图中未示出),CPU发出针对读取LCB的IOLD,每一读取LCB包含有面向系统存贮器中缓存器的指针,该缓存器的大小足以容纳最大可能的信息。仅需给CPU送出一个中断,即在数据和最后状态被输送完之后。
由对本发明的一个实施方案的图解和说明,熟悉本技术领域:
的人们将可想到,可有不同的许多变型和改进来实现本发明,而仍然不超出本发明权利要求
的实质和范围。因此,本发明领域仅受限于权利要求
所指出的范围。
缩写词/定义ACK 肯定应答CM 控制器管理(软件)CRC 循环冗余校验CPU 中央处理单元CS 通讯服务(软件)CSMA/CD 载体读出多路存取/冲突检测DMA 直接存贮器存取DA 目标地址DRAM 动态RAMDSAP 终端服务存取点EPROM 可抹可编程只读存贮器FC 功能码/帧控FIFO 先入先出GA 群地址GFTBUF 取得缓存ICN 中断控制字IODISP I/O通讯IORB I/O请求块ID 标识IF 接口(软件)I/O 输入/输出IOLD I/O装载LAC 局部区域控制器
LACS 局部区域控制器子系统LAN 局部区域网络LCB LAN控制块LCBI LAN控制块映象LLC 连接层控制LME 层管理体LMI 层管理接口LSAP 连接服务存取点LSI 大规模集成电路MAC 媒体存取控制器MBLME 大总线层管理体MBZ 一定为0MEMDMA 存贮器DMAMSB 最高位字节MSB 最高位毕特MTBF 平均无故障时间MTTR 平均检修时间NAK 否定应答ORU 最佳替换单元OS 操作系统/开放系统OSI 开放系统互连PAL 可编程逻辑矩阵PC 个人计算机PIO 实际I/O
PROM 可编程ROMPDU 协议数据单元QLT 质量逻辑测试RAM 随机存取存贮器RFU 留作未来应用RHU 留作硬件应用RINT 恢复中断RSU 留作软件应用SA 原地址/站地址SC 状态完善/服务调用SM 系统管理(软件)SMDSI 系统管理数据服务接口SSAP 源服务存取点TBD 待定义TC 总线耦合器T&V 验证WS 工作站
权利要求
1.由多个处理单元构成的计算机网络系统,包括有(a).发送/接收信息信号用的第一网络总线;(b).与所说第一网络总线相耦合的第一组合处理单元;(c).与所说第一网络总线相耦合,并能为所说的第一组合处理单元共享的第一存贮器,所说的第一存贮器用来存贮将由所说的第一组合处理单元中任一单元执行的计算机指令,所说的计算机指令有输入/输出(I/O)命令;(d).与所说的第一网络总线相耦合的第一控制器装置,所说的这一装置允许所说的第一组合处理单元执行多路同时操作。
2.权利要求
1中所述的计算机网络系统,包括一组与所说的第一网络总线相耦合的第一I/O单元,而其中所说的I/O命令包括至少具有两个功能码的输入/输出装载命令(IOLD),第一功能码是关于地址的装载,第二功能码是关于所说的第一存贮器中的装载量程。
3.权利要求
2中所述的计算机网络系统,包括有耦合到所说的第一网络总线,用来存贮第一功能码的第一存贮装置。
4.权利要求
3中所述的计算机网络系统,包括有第一可程编矩阵逻辑(PAL)装置,用来确定第一功能码是否应予应答(ACKed)还是不予应答(NAKed)。
5.权利要求
4中所说的计算机网络系统,其中所说的PAL包括有对第一功能码进行译码的第一译码装置。
6.权利要求
5中所述的计算机网络系统,包括有与所说的第一网络总线耦合的用来存贮经过译码的功能码的第二存贮装置。
7.权利要求
6中所述的计算机网络系统,包括,与所说的第一控制器装置相耦合的LAN网络。
8.权利要求
7中所述的计算机网络系统,其中所说的第二存贮装置是一个锁存器,它在所说的PAL确定第一功能码是为LAN网络应用所发出的时候即加以锁存。
9.权利要求
8所说的计算机网络系统,其中所说的第一存贮装置是一个触发器,它在收到第一功能码时即置位。
10.权利要求
9中所述的计算机网络系统,其中所说的触发器在PAL确定第一功能码是为供LAN网络应用而发出的时候复位,借此,所说的第一存贮装置即接收第二功能码。
专利摘要
本发明为一局部区域网络(LAN)控制器专用总线,它由微处理器(μP)总线,直接存储器存取总线和一适配器总线组成。该总线在提供另外的完整通信功能时,允许把各种计算机元件联接到超出总线范围之外的其它的计算机元件或计算机系统上。所有总线包括至多具有4个子插件的适配器接口,每一个子插件具有奇偶数联接器。有些子插件设计来操纵控制线;而另外一些子插件用来控制数据和地址线。
文档编号G06F13/12GK87106122SQ87106122
公开日1988年8月3日 申请日期1987年7月28日
发明者爱德华·比彻明 申请人:霍尼韦尔·布尔公司导出引文BiBTeX, EndNote, RefMan