CN1025518C - 利用管道接口异步传送控制元素的设备与方法 - Google Patents

利用管道接口异步传送控制元素的设备与方法 Download PDF

Info

Publication number
CN1025518C
CN1025518C CN90107142A CN90107142A CN1025518C CN 1025518 C CN1025518 C CN 1025518C CN 90107142 A CN90107142 A CN 90107142A CN 90107142 A CN90107142 A CN 90107142A CN 1025518 C CN1025518 C CN 1025518C
Authority
CN
China
Prior art keywords
message block
entity
pipeline
handling system
data handling
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 - Fee Related
Application number
CN90107142A
Other languages
English (en)
Other versions
CN1050450A (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.)
Lenovo Singapore Pte Ltd
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1050450A publication Critical patent/CN1050450A/zh
Application granted granted Critical
Publication of CN1025518C publication Critical patent/CN1025518C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/46Multiprogramming arrangements
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation

Abstract

一个微处理机系统,包括带有系统存贮器和分离的缓存存贮器的处理机单元、一个或多个带有存贮器的子系统适配器单元、可以附加在适配器上的可选I/O以及总线接口。在处理机中的存贮器及在适配器中的存贮器被系统用作为共用存贮器,被构造成一个分布式FIFO循环队列。通过把代表请求、应答和状态信息的控制元素放在管道上来实现单元之间的异步通信。共用存贮器能够组织成每个“单元对”之间的“管道对”,将一个管道用于界外控制元素,将另一个管道用于界内控制元素,从而允许全双工操作。结果由于较低的中断开销而获得较高的总体通过速率。

Description

本发明属于计算系统领域,特别是命令发送机制。具体地说,本发明是关于个人计算机类机器与一组可以带有附加设备的智能子系统之间各种命令、应答和状态信息的异步发送。
与本文相关的美国专利申请系列号,申请日是1989年6月16日,题目为“计算系统的中断管理”,该申请转让给了本专利申请的受让人,它描述了一个中断管理系统,可用于本发明中的分布式管道排队系统,这里作为参考引用。
与本文相关的另一美国专利申请,系列号07/364,931,申请日是1989年6月9日,题目为“计算系统的命令发送”,该申请也转让给本专利申请的受让人,它描述了本发明中的管道排队系统,这里作为参考引用。
在一个由主系统和至少一个子系统构成的数据处理或计算系统中,需要与单个子系统进行直接或间接命令的通信,一般是通过I/O(输入/输出)通道实现。
一个直接命令是能够在一次操作中直接发送给一个子系统的命令,它完全地包括了所需要的内容,可以完全地规定该子系统要完成的一个操作。与此不同,一个间接命令需要更多的数据来规定操作,这些数据的数量超过了在一个通道I/O周期内所能提供的数据量。间接命令本身是指向系统存贮器中一块区间的一个指针(pointer),这一区间中包含了完全确定要由子系统完成的一个操作所必须的全部参数。这一个存贮区间块常称作“控制块”。
在一个典型的已有技术构成的计算机系统中,接口总线主要(orerhead)涉及控制块传送的接口总线消耗限制了子系统及它们各自I/O的通过能力(throughput    capacity)。这种限制是由于其他子系统或处理器任务的竞争(competing)而不能使处理器和子系统之间构成同步联接所造成的结果。处理器的性能因其不能从适配器和I/O通道得到服务而受到削弱,而适配器和I/O通道的性能又受到处理器能否以适配器和I/O处理数据的速度来发送和接收数据的能力的影响。结果,就需要消除在接口总线处的“瓶颈”,它既不允许处理器也不允许适配器及其各自的I/O实现它们的硬件本身所允许的高性能。
本发明通过在总线接口造成一个分配管道来满足上述需要,这一管道允许处理器异步发送和接收对于直接或间接命令的控制块(为本文所需,以下将称控制块为“控制元素(control    element))而不需要由适配器或I/O设备来干预。同样,适配器和I/O能异步向该管道发送和接收控制元素而不受处理器的干预。此外,该管道允许在子系统之间传送控制元素而独立于处理器的干预。
本发明的一个目的是以一种改进的方式在处理机和附属子系统之间传送控制信息和数据。
本发明的第二个目的是在处理机和一个附属子系统之间传送控制信息和数据而与该附属子系统的可利用性无关。
本发明的第三个目的是在处理机和附属子系统之间传送控制信息和数据,而与该处理机的可利用性无关。
本发明的第四个目的是以全双工方式在处理机和附属子系统之间传送控制信息和数据。
本发明的第五个目的是在处理机和附属子系统 之间异步传送控制信息和数据。
本发明的第六个目的是在一个计算机系统的各子系统之间传送控制信息和数据,而不受处理机的干预。
本发明的第七个目的是在一个公共接口上实现处理机与多个不同的子系统之间传送控制信息和数据。
本发明的第八个目的是在异步或同步基础上在处理机和各子系统之间有选择地传送控制信息和数据。
本发明上述目的及其他目的、特点和优点的实现是采用了位于处理机及各子系统中的分布式共享存器区来形成一个构成FIFO(先进先出)循环队列的分布式管道。管道是指一个用来发送控制元素的发送空间。控制元素由一个送出装置(加处理器或者子系统)送出,置入上述的发送空间中。这种管道把信息在委托者和服务者之间进行传递。实际上,上述的管道由电连接在多个单元之间的一个分布式共享存贮器构成。控制元素由处理机和子系统异步放置在管道上。每个控制元素包括一个固定的字段(field),载有包括源和目的的自描述信息。在固定字段之后是一个可变长字段,它可以包含数据或指向管道外部缓存区的指针,该缓存区能包含数据或要执行的命令表(即间接命令)。固定字段也包含控制位,它允许子系统和处理机在必要时同步执行各自的命令元素表。向管道异步发送控制元素和从管道异步接收控制元素允许处理器和各子系统自由地运行,从而避免了中断延迟。此外,由控制元素结构实现了公共接口,它允许不同的子系统类型使用同一管道。
图1是本发明使用单个发送单元和单个接收单元和一种简化框图。
图2是用于通知系统中各单元的信号机构的总图。
图3是由图2中的信号机构使用的状态信息方块图。
图4是系统使用的中断逻辑图。
图5是本发明使用多个子系统及实体时的框图。
图6是使用多个子系统和实体的本发明另一张图,它也显示出传送的发送机制及传送接收机机。
图7是控制元素图。
图8是直接SCB命令图。
图9是基SCB(base    SCB)图。
图10是执行表(execute    list)图。
图11是用于命令链接的控制元素图。
图12给出该表请求(read    list    request)的格式。
图13给出间接数据链接用的控制块格式。
图14给出通知(notify)位和等待位的位置。
从总体上说,本发明允许处理机和子系统异步传送数据和控制信息,从而避免了降低处理机及子系统性能的中断延迟。此外,也能在各子系统之间异步传送数据和控制信息而不受处理机干预。微处理机系统包括一个处理器单元,它带有系统存贮器和单独的缓存存贮器;包括一个或多个带有存贮器的适配器单元;还有可以附加到适配器上的任选I/O设备,以及总线接口(它也可称作微通道(micro    channel)。处理机中的存贮器及适配器中的存贮器可以被系统用作一个共用存贮器,它构成一个分布式FIFO(先进先出)循环队列(一个管道)。把代表请求,应答和状态信息的控制元素放到管道上,借以实现单元到单元的异步通信。各单元可以独立于其他单元来发送和接收控制元素,从而允许在各单元之间自由地异步发送和接收控制信息共用存贮器可以组织成每对单元之间的管道对,这样,利用一个管道向外发送控制元素,利用一个管道向内接收控制元素,从而允许全双工操作。控制元素有标准的固定头段字段,在其后是可变长字段。固定头段允许不同的硬件适配器使用共同的接口协议(protocol)。将管道和共同的接口协议相结合,允许许多不同类型的硬件适配器进行异步通信,结果由于降低了中断开销而得到较高的总体通过速度。
本发明的一个重要特点是使用了共同存贮器来存放控制信息。用来存放控制信息的共用存贮器在物理上是分布于处理器和子系统之间的,在下文中有时将称作分布式管道或管道。系统中的一个单元,例如处理机或子系统适配器,能向该分布管道发送自描述型控制元素,使其后由另一个单元接收,控制元素载有命令、数据、或存贮在管道外部缓存器内数据的地址。打算接收控制元素的系统单元将尽可能快地从管道取出这一控制元素,但不要 求发送单元去等待接收单元动作。所以,发送单元能把控制元素放到分布式管道中并继续其他工作,而不必等待其他单元的响应。
图1用于举例说明的目的,它是本发明的一个简化图,使用单个发送与接收单元和单一管道。此外,发送单元有单一的用户实体(client    entity),它可以是应用程序或类似程序,还有单一的伺服实体,例如,它可以是一个附加在子系统上的I/O设备。对于通晓本专业技术的人而言应该理解,在实践中将会使用多重发送与接收单元以及多个管道、用户以及服务器。
图1给出本发明中数据和控制信息的总流程。发送和接收单元102和108构成了一个单元对,它可以是一个处理机单元和一个子系统单元,或者两个都是子系统单元。发送单元102在共用存贮器106(分布管道)中放置一个控制元素104,从而要求接收单元108完成某项工作。在控制元素104中包含命令和控制信息。如果要从发送单元102向接收单元108传送数据,它可以以下述两种方式之一进行传送。第一,它可以在控制元素104的可变长字段中直接传送。关于在控制元素内放置数据的控制元素,下文中还要更详细的描述。第二,它可以由发送单元102放置在缓存区110中。然后发送单元102将把缓存区110中包含的数据的地址和长度先放到控制元素104中,然后再向分布管到106发送控制元素104。应该理解,数据进出缓存区和管道的实际运动可以通过大家公知的技术以多种方式实现,例如通过使用DMA(直接存贮器存取)逻辑。作为一般规则,最好是使用外部缓存器110来传送数据,因为分布管道106的大小有限,会迅速地被许多应用中的大量数据传送所占满。在这一点上,发送单元102不必等待接收单元108去响应它。发送单元102能继续其他工作,包括以控制元素104的形式向分布管道106中放置其他任务请求。
接收单元108将从管道106取回控制元素104,执行控制元素中包含的任务请求,并应答发送单元102。如果控制元素104把数据放在缓存区110中,接收单元108将从缓存区110读取数据或写入数据。当任务请求被完成时,接收单元将把一个控制元素116放到管道112上,借以回答发送单元102。(控制元素104和116在功能上是相同的,管道106和112在功能上也是相同的。它们被分别称呼是为了说明该管道在物理上是位于系统中不同单元中。此外,本优选实施例使用逻辑上分开的管道来发送和接收控制元素)。正如发送单元102那样,接收单元108也不必等待来自发送单元102的响应。它可以立即继续其他任务,包括从管道106取回更多的控制元素104。
当发送单元从管道112取回了包含有对发送单元102的请求所作应答的控制元素后,它能根据这个应答作出适应的反应。
上面讨论的逻辑步骤由传送支持部件118(它包括传送发送机构和传送接收机构)及总线114来支持。在最佳实施例中的传送支持机构是在目前工艺水平下公知的状态逻辑。控制信息和数据在物理上通过总线114在发送单元。接收单元、缓存器110及管道106之间移动。再有,传送支持机构118包含有使加入队列/使脱离队列(enqueue/dequeue)逻辑(图中未画),用于控制各控制元素在管道106和112中FIFO(先进先出)队列上的放置。
图2、3和4给出本发明中发送信号、状态逻辑和中断处理所使用的基本机构。图2所示控制单元基本流程是利用发送接口202及使加入队列逻辑204把控制元素放入管道220。然后它利用使脱离队列逻辑206及接收接口逻辑208把控制元素从管道220中移出。使加入队列和使脱离队列逻辑利用了图3所示状态信息。还有逻辑210和214用于识别管道中的某些状态变化,并发信号通知另一边。发出信号的办法是把状态变化代理物(surrogate)的状态信息推入代理物加入队列逻辑212,216,然后把理由代码推入这个单元的理由区(图4所示)。一旦代理物信息及理由信息被推入,则硬件级基本元素(primitive)引起中断(如图4所示)。这个硬件基本元素可以是中断控制硬件,也可以由写I/O端口或映射存贮区来引起硬件中断。
图5所示结构在实际应用方面比图1更能代表本发明。然而,如对图1的讨论,实际的实体(entity)数目并不限于图中所给出的数目,而是要讨论的具体系统组成中硬件能力的函数。图5所示处理器单元502包括了多个用户实体(client    entities)504、506、508、510。每个实体可以是一个 程序或某个要求与子系统单元相互作用的其他系统任务。图中的子系统由实际上出现的典型系统来代表,如适配器卡512、514。每个适配器512和514又带有多个伺服实体516、518、520、522、524、526,它们可以是I/O(输入/输出)设备,如通信线、打印机、终端、或其他类似设备。图5也表示出多个分布式管道528、530、532,在共用存贮器534中使用。如图所示,用于单元对的管道对可以为处理机/子系统单元对502/512及502/514使用,或者为子系统/子系统单元对512/514使用。每个管道将控制元素536送到总线114上,正如对图1的描述中所讨论的那样。
图6给出本发明的总体安排,以表明循环管道与系统之间的关系。图中有一对循环管道602、604,它们沿相反方向传送控制元素,每一个管道的基本操作是相同的。这里有为使控制元素(图中未画出)加入阶列和脱离队列所需要的状态信息606、608、610、612、614、616、618、620。这些状态信息分布于两个单元622和624之间。传送支持机构626、628、630、632在多重实体与实体对634、636、638、640、642、644、646、648之间共用。传送支持机构的各部分通过微通道650彼此通信。
图7给出控制元素中各字段的排布。下面对本发明如何使用这些控制元素进行一般性讨论。
工作命令(work    order):
利用SCB结构的传送服务在系统单元或适配器的用户(实体)与适配器或系统单元中的服务器(实体)之间交换“请求”(request)及对那些请求的“回答”(reply)。这些请求及其相应的回答即称作工作命令。每一个工作命令的组成是:一个用于描述被要求执行任务的单元的控制元素,一个或多个用于指明被要求执行任务的单元的完成状态或当前状态的控制元素。执行任务单元的出错状态或处理状态的变化分别在出错与事件控制元素中报告。利用这一定义,下述各项中的每一个都将是有效的工作命令:
一单个请求元素不带应答元素;
单个请求元素带有单个应答元素;
单个请求元素带有多个应答元素;
单个请求元素带有一个出错元素;
单个请求元素带有一个事件(event)元素;
单个请求元素带有事件元素和出错元素;
单个请求元素带有事件元素、应答元素和出错元素。
当多个请求元素链接在一起时,链中每个请求元素被作为单个工作命令的一部分来处理。
元素:
元素,或要精确地说是控制元素,用于在用户和服务器之间交换控制信息,有时也用于交换数据。它们好象是带有阅读窗口的信窗,允许传送服务机构使用窗口中的信息来传送控制元素而不必知道或理解在控制元素的其余部分包含些什么。典型情况是:一个控制元素包含下列内容:
16位(bit)类型字段
16位长度字段
16位源字段
16位目的字段
32位相关字段
可变长的值字段
前五个字段为传送服务机构及用户和服务器所使用。它构成了在“信封”中可通过窗口见到的信息。其余字段,即值字段,包含有信封中的内容。它包含的信息只对用户及服务器有意义。
下面各节更详细地描述这些字段中的每一个在从属于传送服务机构时的格式与内容。
类型字段:
元素中的类型字段是一个16位字,用于标识一个元素和指出如何解释元素中的其余字段。类型字段由如下子元素组成:
EID元素标识符-2位的子字段,用于标识元素类型。有四种元素类型:
1)请求(00)-用户向服务器发出的元素,请服务器代表它完成一个任务单元。它需要在用户与服务器之间传送数据和控制信息。
2)-回答(01)-由服务器发出的一个元素,用于响应某些请求元素。并不是所有的请求元素都由应答来回答,只有那些请求得到信息的请求元素才有应答。
3)-事件(10)-该元素包含目信息是关于一个请求的进行情况、一个先前的请求引起的副作用、或者是关于一个实体的状态。服务器或用户都可发送事件元素。
4)-出错(11)-该元素提供关于前一个请求 的出错信息,或关于服务器或传送机构的“健康与福利”状况的信息。
S-取消应答标志-指出在这一请求元素的处理已经成功地完成时是否用户需要服务器返回一个应答元素。当该位置1时,应答被取消,于是将没有应答返回。当该位被是0时,则是否有应答返回取决于实体与实体之间的协议。
C-链接标志-指出“命令链接”是否有效。当“命令链接”有效时,代表一个任务单元的元素链中所有元素将按它们出现的顺序逐个处理。下表指出如何解释各链位:
00-指出无链接(是第一个也是最后一个)
01-指出一个命令链的开始(第一个元素)
11-指出一个元素在链中(中间元素)
10-指出链尾(最后一个元素)
I-“间接”标志-指出在元素的值字段中包含的是指定功能所需参数还是仅仅给出了实际存贮参数的数据区的长度及指针。当是1时,在值字段中包含的是指向参数值区的指针。
N-“通知”标志-指出当该元素的处理开始时用户是否要求得到服务器的通知。当是1时,将利用通知事件元素将一个通知返回给用户。
W-等待标志-指出用户是否要求服务器在处理该请求元素或任何来自该挂号用户的其他请求之前先等待,直至它其后得到来自该用户的“恢复(resume)”事件元素通知时才开始处理。当是1时,处理过程将被挂起。
E-“加速”标志-用于标识一个控制元素,指出用户想要服务器尽可能快地处理这一控制元素,也就是在任何其他可以等候处理的控制元素之前处理该控制元素。当是1时该控制元素被加速处理。
FC-功能代码-7位子字段,用于标识要完成的功能,并指出如何解释值段中的内容。
长度字段:
一个元素中的长度字段是一个16位字,用于指定元素的总长度,以字节为单位。这个长度包括2字节用于类型字段,2字节用于长度字段,2字节用于源字段,2字节用于目的字段,4字节用于相关字段,以及几字节用于可变长值字段。
源字段:
源字段为16位字,用于指明一个元素的起源。它是一个有结构字段,包含单元标识符。和实体标识符。对于微通道(Micro    Channel)而言,单元标识符是总线单元号,允许取值范围是0至15,实体标识符是256个可能源之一。为管理的目的,实体0(零)被保留了。它们放在一起提供了足够的信息可以不混淆地识别出总线单元及在该总线单元中发出这一控制元素的施体。
目的字段:
目的字段为16位字,用于标识一个控制元素的目的或目标。与源字段相似,它也是一个结构字段,包含单元标识符和实体标识符。对于微通道,单元标识符是总线单元号,允许取值范围是0至15,实体标识符是256个可能目标之一。为了管理的目的保留了实体标识符0(零)。它们在一起提供了足够的信息,可以不混淆地识别出总线单元及在总线单元中哪一个实体将要接受这一控制元素。
相关字段:
相关字段是32位的双字,用于提供一个标识字,将一个响应(response)与一个先前的请求关联起来。相关标识符的格式和内容由请求源实体决定。它可以是一个序列号,控制块或请求包(packet)的地址,或数据缓存区的地址。在应答、出错或事件控制元素中将这个相关标识符回送给请求源。
值字段:
一个控制元素的值字段是一个可变长字段。用于包含附加的宗量、参数、或数据,以供类型字段中的功能代码所指定操作的需要。这一信息的类型、长度及格式是可变的,取决于所指定的功能。
功能代码:
在一个控制元素中,功能代码用于标识要完成的操作,并指出如何解释字段中的内容。功能代码的高位用于区分近用功能代码与补充定义的功能代码。当位6被置成1时,它表明其余位(0-5)包含一个未纳入体系的功能代码。当位6被置0时,表明其余位(0-5)包含下述通用功能代码之一:
-立即SCB命令(FC=1)
-初始化(FC=2)
-基础SCB命令(FC=3)
-读(FC=4)
-列表读(List)(FC=5)
-立即读(FC=6)
-写(FC=7)
-列表写(FC=8)
-立即写(FC=9)
-执行列表(FC=10)
-标记(FC=11)
-消除(FC=12)
-复位(FC=13)
-读结构(confguration)(FC=14)
-诊断(FC=15)
-挂起(FC=16)
-恢复(FC=17)
-通告(notify)(FC=18)
-通知(inform)(FC=19)
-卷绕(wrap)(FC=31)
功能代码0.20至30、32至63为保留码,如果在控制元素中发现它们应作为出错状态处理。
挂起、恢复、引起注意、通知以及卷绕功能代码只在事件控制元素中使用。所有其他功能代码用于请求,应答和出错控制元素。
下面几节详细描述扩展SCB结构支持的各种元素类型中上述功能的格式、内容和用途。
立即SCB:
立即SCB元素为适配器迁移(migration)的几种形式提供了一个路径。它们允许传送服务机构与已存在的SCB一起使用。这一元素的格式和内容示于图8。
初始化:
在请求、应答和出错元素中会出现初始化功能。在请求元素中,它调用服务器的初始化功能。包含服务器初始化功能所需任何附加参数的值字段在请求元素中传送给服务器。在请求元素中的值字段传送过去的初始化参数是与服务器相独立的,因而需要由服务器基(basis)定义到一个服务器上。
如果在初始化请求元素中的类型字段中将“间接”标志置位,则在值字段中不包含实际初始化参数,而是包含存贮实际参数本身的数据区的地址和长度。
服务器向请求单元回送一个应答元素,以报告成功地完成了一个初始化请求。来自初始化请求元素的源、目的和相关标识符以及任何返回都放在该应答元素的值字段中。
在应答元素中传递的回送参数是独立于服务器的,因而需要由服务器基把它定义到一个服务器上。
用户可以通过对初始化请求元素中的类型字段中的取消应答标志置位,来选择取消返回一个应答元素。
如果没有成功,则在出错元素的值字段中放置来自初始化请求元素的源、目的和相关标识符以及标明失败原因的状态信息,以此返回给请求初始化者。
基SCB:
基SCB元素提供了某些适配器迁移形式所需要的路径。它们允许传送服务器与已存在的SCB一起使用。这些元素的格式和内容示于图9。
读:
在请求、应答和出错元素中会发现读功能。在一个请求元素中,它用于建立和开始从服务器向一个用户传送数据和控制信息。在请求元素中把源、目的、相关标识符以及服务器读功能所需要的参数传送给服务器。
应该说明的是,在请求元素的值字段中所包含的参数并不限于上文规定的那些。也可能提供附加参数来满足每个用户/服务器关系的需要。
如果在读请求元素中的类型字段中对“间接”标志置位,则值字段中不再包含字节计数、数据地址以及可选参数,而是包含存放这些值的一个数据区的地址和长度。当服务器已经成功能完成了这一传送时,它返回一个应答元素,在其值字段中包含来自读请求元素的源、目的、及相关标识符,以及传送的实际字节数。
用户可以对读请求元素的类型字段中的“取消应答”标志置位,来取消回送一个应答元素。
如果读不成功,则回送一个出错元素,在其值字段中包括有来自读请求元素的源、目的、相关标识符,还包含说明失败原因的状态信息。
列表读:
在请求、应答、及出错元素中会发现列表敏功能。它用于建立和启动将数据和信息从一个服务器向若干个可能不连续存贮区的传送。这一功能常被称作数据链接(data    ch    chaining)。在请求元素中放有源、目的、相关标识符、以及值字段,值字段中含有读列表功能中所需要的字节计数/数据地址 对的列表,这些都由请求元素传送给服务器。
如果在读列表请求元素的类型字段中对间接标志置位,则值字段中不是包含字节计数与数据地址的列表,而是包含存贮实际列表的区域地址与长度。
当服务器已经成功地完成了这一传送时,它回送一个应答元素,其中来自敏列表请求元素的源、目的及相关标识符以及剩余字节计数被放置在应答元素的值字段中。
用户可以对读列表请求元素的类型字段中的“取消应答”标志置位,来选择取消回送应答元素。
如果没有成功,则在出错元素的值字段中放置来自读列表请求元素的源、目的和相关标识符以及表明失败原因的状态信息,返回给请求者。读列表出错元素的格式和内容与读出错元素的格式和内容相同。
立即读:
立即读功能出现在请求、应答和出错元素中。它用于请求从服务器到用户传送数据和/或控制信息。它与读请求的不同点在于数据要数在应答元素的值字段中回送,它将立即被用户得到。源、目的、相关标识符、以及包含订即读功能所需参数的值字段都放在请求元素中传递给服务器。
能利用立即读请求元素回送的数据量取决于系统结构
(configuration)。就是说,它直接与传送队列的大小有关。所以,当使用这一请求元素时要加小心。
当服务器已经成功地完成了这一传送时,它回送一个应答元素,在值字段中放置来自立即读请求元素的源、目的及相关标识符,以及实际传送字节数,后面紧跟数据本身。
立即读功能不顾及在立即读请求元素的类型字段中的取消应答标志是否置位,因为它总是要回送一个应答元素。
如果不成功,则回送一个出错元素给请求者,在其值字段中包含来自立即读请求元素的源、目的和相关标识符,以及标明失败原因的状态信息。
写:
在请求、应答及出错元素中会出现写功能。它用于建立和启动从一个用户到一个服务器的数据与控制信息的传送。在请求元素中向服务器传送源、目的、相关标识符以及包含需由写功能传送数据的数量和地址的值字段等全部内容。
应当指出的是,在请求元素的值字段中包含的参数并不限于上文中规定的那些。还可以能提供附加参数以满足每个用户/服务器关系的需要。
如果在写请求元素的类型字段中的间接标志被置位,则值字段中不包含字节计数、数据地址及任选参数,而是包含存贮它们的数据区的地址和长度。
当服务器已经成功地完成了这一传送时,它回送一个应答元素,在其值字段中包含有来自写请求元素的源、目的和相关标识符,以及被传送的实际字节数。
用户可以对写请求元素的类型字段中的取消应答标志置位,来选定取消回送应答元素。
如果不成功,则回送一个出错元素,在其值字段中包含来自写请求元素的源、目的和相关标识符,以及表明失败原因的状态信息。列表写:
在请求、应答和出错元素中会发现列表写功能。它用于建立和启动从几个可能不连续的存贮区域向一个服务器传送数据和控制信息。这一功能常称作数据链接。源、目的、相关标识符以及含有列表写所需字节计数/数据地址对列表的值字段都在请求元素中传递给服务器。
如果在列表写请求元素的类型字段中的间接标志置位,则在值字段中不含有字节计数和数据地址,而代之以含有实际存贮列表的区域的位置和长度。
当服务器已经成功地完成了这一传送时,它回送一个应答元素,将来自列表写请求元素的源、目的、相关标识符以及剩余字节计数放在应答元素的值字段中。列表写应答元素的格式和内容与写应答元素的格式和内容相同。
用户可以对列表写请求元素的类典字段中的取消应答标志置位,来选定取消应答元素的回送。
如果不成功,则向请求者回送一个出错元素,在其值字段中包含了来自列表写请求元素的源、目的和相关标识符,以及表明失败原因的状态信息。列表写出错元素的格式和内容均与写出错元素的格式和内容相同。
立即写:
在请求、应答和出错元素中会出现立即写功 能。它用于从挂号用户向一个服务器传送数据和/或控制信息。它与写请求的不同点在于数据出现在请求元素的值字段中并使服务器立即得到。源、目的、相关标识符以及数据本身放在请求元素中传递给服务器。
在请求元素值字段中包含的数据格式及意义均独立于用户和服务器,在这里未予定义。
用立即写请求元素所能传递的数据量取决于系统结构,就是说,它直接与传送队列的大小有关。所以,使用这一请求元素时要当心。
当服务器已经成功地接受了数据时,它回送一个应答信号,在其值字段中含有来自立即写请求元素的源、目的、相关标识符以及实际接收字节数的计数。
用户可以对立即写请求元素的类型字段中的取消应答标志置位,来选定取消回送应答元素。
如果没有成功,则向请求者回送一个出错元素,在其值字段中含有来自立即写请求元素的源、目的和相关标识符,以及表明失败原因的状态信息。
执行列表:
图10给出一个执行列表的例子。执行列表功能是在请求和应答元素的类型字段中指出的。它用于建立一个重复的循环,以执行由该元素指向一次或多次的请求元素表。源、目的、相关标识符、以及含有执行列表功能所需位置、长度和数量的值字段,都放在请求元素中传递给服务器。
一个要执行的请求的列表由一个或多个请求元素构成,它们在存贮器中必须连续放置。在壳中的每个元素含有自己的长度字段,从而能容易地确定下一个元素的起点。“列表长度”字段确定了列表到何处终止。每通过一遍这一个列表,重复计数便减1,如果不为零,则该列表再被重复执行一次。如果初始重复计数为负值或零,则该请求终止,不执行表中任何请求。
构成列表的那些请求元素可含有这一节中定义的任何功能代码,并使用对它们可用的选择标志。
当重复计数达到零时,列表终止执行,服务器回送一个应答元素,带有来自原执行列表请求元素的源、目的、以及相关标识符。
用户可以对列表执行请求元素的类型字段中的取消应答标志置位,来选定取消回送应答元素。
如果在处理列表中任一元素时发生了错误,则列表被终止执行。然而,返回的出错元素只是对应于出错的请求元素的那一个。
标记:
标记功能只用于请求元素中,用来提供一种手段标记或指出一个用户和一个服务器之间可能同步的一点。它不完成其他功能,只是向服务器传递一个相关标识符。
这一功能的能力在于它能够利用“引起注意”和“等待”标志向用户通知服务器当前处理状态。
如果在标记请求元素中设置“间接”、“取消应答”和“加速”标志,标记功能忽略掉它们。
消掉:
“消掉”功能用于请求、应答和出错元素。在一个请求元素中,它用于请求消掉一个或多个未完成的请求元素。源和目的、相关标识符、含有“消掉资格证明符(cancellation    qualifier)”及可选请求元素相关标识符表的值字段,所有这些都放在该请求元素中传递给服务器。
“消掉资格证明符”各位规定了哪些请求元素要被消掉。
-全部未完成的请求-(位0=1)
-与源标识符(ID)匹配的那些请求-(位1=1)
-与“消掉”表值匹配的第一个请求-(位2=1)
-与“消掉”表值匹配的所有请求-(位3=1)
每当消掉资格证明符的位2或位3被置1时,就存在一个消掉表。如果位1被置1,那么位2或位3也必须置位。
如果在“消掉”请求元素的类型字段中对“间接”标志置位,则值字段不含有消掉表,而代之以实际存贮这个表的数据区的位置和长度。
当服务器已经成功地完成了消掉功能时,它向请求者回送一个应答元素。在应答元素中回送来自消掉请求元素的源、目的、以及相关标识符。
服务器将试图消掉在消掉请求的值字段中出现了各自相关标识符的所有请求。如果由于任何原因而使服务器不能这样做,它将返回一个出错元素,其中有状态和它能够消掉的那些请求的相关标识符表。一个空表则表明服务器不能完成“消掉”功能。
然而,带有全部来完成元素标识符的消掉请求 将不返回带有被消掉元素表的出错元素。
复位:
复位功能用于请求、应答、和出错元素。在请求元素中,它用于请求服务器置于已知状态。在请求元素中向服务器传递源、目的、相关标识符以及含有所需状态的值字段。
当服务器已经成功地完成了复位时,它回送一个应答元素,向申请者回送来自复位请求元素的源、目的及相关标识符。
复位功能不顾及在复位请求元素中所设置的“取消应答”标志和“间接”标志。
如果没有成功,则向请求者回送一个出错元素,在其出错元素的值字段中含有来自复位请求元素的源、目的和相关标识符,以及表明失败原因的状态信息。
读结构:
读结构功能用于请求、应答和出错元素。当用于请求元素中时,它使服务器向挂号用户回送结构信息。在请求元素中向服务器传递源、目的、相关标识符及值字段,在值字段中含有字节计数、数据地址、及选定的要回送的特定结构信息。
应当指出,在值字段中包含的参数不限于上面规定的那些。还可以提供附加参数来满足每个用户/服务器关系的需要。
如果在读结构请求元素的类型字段中的“间接”标志置拉,则在值字段中不是包含可选参数,而代之以包含存贮实际参数本身的数据区的位置和长度。
服务器向申请者回送一个应答元素来报告已成功地完成了读结构请求。在应答元素的值字段中回送来自读结构请求元素的源、目的、及相关标识符。
用户可以对读结构请求元素的类型字段中的“取消应答”标记置位,以选定取消回送一个应答请求。
如果服务器不能回报结构信息,则向请求者返回一个出错元素,在其值字段中含有来自读结构请求元素的源、目的、和相关标识符,以及出错理由。
诊断:
诊断功能用于请求、应答及出错元素。在一个请求中,它用于启动一个由服务器运行的诊断例行程序。在请求元素中向服务器传递源、目的、相关标识符以及值字段。在值字段中含有要运行的指定诊断测试以及任何操作参数。
如果在诊断请求元素的类型字段中的“间接”标志被置位,则在值字段中不含有可选参数,而代之以含有存贮实际参数本身的数据区的位置和长度。
服务器向请求者回送一个应答元素,来报告运行诊判测试的结果。在应答元素中回送来自诊断请求元素的源、目的、相关标识符以及包含测试结果的值字段。
用户可以对诊断请求元素的类型字段中的“取消应答”标志置位,来选定取消返回应答元素。
如果服务器不能运行请求的诊断测试,则向申请者返回一个出错元素,在其值字段中含有来自诊断请求元素的源、目的、相关标识符以及出错理由。
事件(events):
除请求、应答和出错元素外,传送服务机构还提供了另一个元素,用于传递关于一个请求的进程、一个先前请求的副作用、或关于一个实体状态的信息,这就是“事件”元素。事件增素与其他元素的不用点是:它报告通信实体(挂号用户或服务器)之一的状态变化。由于这些状态变化的突发性影响,必须尽可能迅速地将变化通知匹敌(peer-)的实体。在下面几节将描述事件元素中功能代码的格式、内容和用途。
挂起:
挂起事件用于通知用户有关服务器处理状态的变化。每当服务器收到的来自用户的请求元素类型字段中的等待标志被置1时,服务器便改变其状态。于是服务器挂起正在处理的请求以及随后来自指定源的全部请求。这种变化由一个“挂起事件”元素通知给用户。在事件元素的值字段中放有引起挂起的请求元素中的源、目的以及相关标识符,这些都传递给用户。
恢复:
恢复事件用于通告服务器关于用户处理状态的变化。挂号用户用这一事件来通告服务器,现在挂号用户所处的状态可以恢复请求元素的处理过程。在恢复事件的值字段中向服务器回送当初引起“挂起”的元素中的源、目的、以及相关标识符。
从一个对挂起状态不负责任的源所接收的恢复 事件将被忽略,一个没有处于挂起状态的目的接收到的恢复事件也将被忽略。
通告(notification):
通告事件用于确认从挂号用户接收到了一个请求元素,如果在该请求元素的类型字段中的通告标志置1的话。服务器使用通告事件元素向用户传达这一点。在事件元素的值字段中向用户回送含有通告标志的那个请求元素的源和目的,以及相关标识符。
通知(inform):
通知事件用于提供用户和服务器相互传送关于各自处理状态信息的手段。
卷绕(wrap):
卷绕事件是由管理和控制启动的事件,用于传送系统内部。它用于同步与界内(in-bound)或界外(out-bound)传送管道(队列)有关的操作。
卷绕事件元素只能由传送机构(delivery    agent)发送。卷绕事件通知目的传送机构有关的传送队列已经卷绕,因此下一个元素应该从传送队列的顶部脱离队列。
命令链接:
服务器处理请求元素可以同步进行也可以异步进行,取决于命令链接是否生效。通常,一个服务器可以以对服务器有意义的任何顺序来处理请求(异步)。然而,有时用户也希望服务器按各请求被提交的顺序去处理这些请求(同步)。命令链接即用于这一目的。每当在一个请求中设置了命令链接字段。便意味着在链中下一个元素的处理只能在服务器和/或设备已经完成了对当前请求元素的处理并向用户返回了适当的应答之后才开始。对元素中的链接指示位赋值即表明要链接,这些值是:BC=链的开始,MC=链的中间,EC=链的结尾。图11说明了这些值。然后,对请求的处理恢复到对链中下一个请求元素的处理。这一过程将继续下去,直到链中所有元素都已处理完毕,或者遇到了出错状态。当遇到出错状态时,回送一个出错并放弃链中的其余请求元素。
数据链接:
常常需要将来自几个不连续存贮区的数据集合起来传送给一个单一目的地(写),或者以过来将数据从一个单一源分散开传送给几个不连续的存贮区(读)。这通常称作数据链接。SCB结构支持两种数据链接方法:直接和间接。
直接数据链接:
在直接数据链接方式中,由链接表中的条目描述每个非连续数据区。该条目包含一个数据区的字节数及指向它的地址指针。在传送出去了由一个条目描述的一个数据区之后,便处理在链接表中的下一条目。这一动作继续到表中所有条目均已被处理或者没有更多数据存在时为止。直接数据链接通过使用“列表读”和“列表写”功能代码来调用。图12给出直接数据链接使用的列表读元素的格式。
间接数据链接:
间接数据链接与直接数据链接相似,只是链接表的位置不同。这里的链接表不是请求元素的一部分,代之以将它分离出去。它是利用请求元素使字段中的一个间接表指针来访问的。间接数据链接的调用方法是在列表读或列表写请求元素中设置间接标志。图13给出间接数据链接所用列表读元素的格式。
使用通告和等待:
当一个元素将要被处理时,用户可以在适当的请求元素中设置通告标志来要求有关那个元素的通告。这使服务器向用户回送一个事件通告元素,在其值字段中放有包含通告标志的元素的源、目的及相关标识符。
一个用户可以在把一个适当的请求元素提交给传送服务机构之前在它的类型字段中设置等待标志,从而使一组请求元素的处理暂时挂起。这使得服务器中止对请求元素的进一步处理,回送一个事件通告元素,其值字段中放有包含挂起标志的那个元素的相关标识符,并在继续处理之前等待自起源挂号用户的恢复事件。图14给出通告和等待的各种用法的组合。
尽管已结合最佳实施例对本发明进行了说明和描述,但熟悉本专业技术的人们会理解,可以对其细节做各种改变而不会偏离本发明的精神实质、范围及原理(teaching)。例如,有许多已有技术中公知的排队技术,至少其中有一些可以用来代替在最佳实施例中所使用的FIFO循环排队技术。类似地,也可以改变控制元素的格式。因此,这里所公开的发明的范围只由其权利要求来限定。

Claims (57)

1、一种数据处理系统,该系统包括一个用于在位于系统中不同单元的实体之间传送代表请求、应答或异步通告的信号块的系统,上述的数据处理系统包括:
第一单元类型,该第一单元类型进一步包含至少一个处理机;
第二单元类型,该第二单元类型进一步包含至少一个子系统,它可以有附属设备;
一个接口总线,与所述各个单元类型相联接;
其特征在于上述的数据处理系统还包括:
一个以电气方式连接在上述的第一单元类型和第二单元类型之间的分布式管道,该分布式管道由构成一个先入先出队列或者一个循环队列的分布式共享存贮器组成;上述的分布式共享存贮器具有多个用于放置从上述的第一单元类型和上述的第二单元类型接收到的信息块的存贮区域,
每个所述单元类型进一步包括:
至少一个实体;
一个传送发送机构,用于从所述实体向所述分布整道发送指向另一实体的信息块而没有与任何其他实体发生相互作用,以及
一个传送接收机构,用于使指定的所述实体接收来自分布管道的信息块,而没有与任何其他实体发生相互作用;
这里所说的信息块异步地从所述实体之一经过所述分布管道传送给所述实体中的另一个。
2、根据权利要求1的数据处理系统,其特征是所述管道包含供多个实体对使用的信息块。
3、根据权利要求1的数据处理系统,其特征是所述传送发送机构还包括在所述分布管道中出现状态变化时通知所述传送接收机构的装置。
4、根据权利要求1的数据处理系统,其特征是所述传送发送机构还包括通知传送接收机构以预定时间间隔去检验分布管道状态的装置。
5、根据权利要求1的数据处理系统,其特征是每个所述单元有一个实体专门用于管理它的各个单元与所述分布管道的相互作用。
6、根据权利要求1的数据处理系统,其特征是每个单元还包括一个到所述分布管道的接口,它使用共同的一组推(Push)、拉(Pull)和中断基元(Primitive)。
7、根据权利要求1的数据处理系统,其特征是所述发送信息块的实体是来自所述单元类型之一,而所述接收信息块的实体来自所述单元类型中的另一个。
8、根据权利要求7的数据处理系统,其特征是所述管道为循环队列。
9、根据权利要求7的数据处理系统,其特征是所述管道为FIFO队列。
10、根据权利要求7的数据处理系统,其特征是所述信息块进一步包括一个固定长度部分和一个可变长度部分,所述固定长度部分进一步包括一个类型字段用于描述信息块中的信息类型,一个长度字段包含信息块的长度,一个源字段描述信息块的源,一个目的字段描述信息块的目的物,以及一个相关字段用于把请求和应答关联起来。
11、根据权利要求7的数据处理系统,其特征是所述可变长度部分包含数据。
12、根据权利要求10的数据处理系统,其特征是所述可变长度部分还包括一个字段,其中含有要附属设备立即执行的命令;以及
所述类型字段还包括一个立即命令标识符,这里所述发送立即命令的实体能把命令装在一个信息块中并把所述立即命令送过所述分布管道。
13、根据权利要求10的数据处理系统,其特征在于:所述包含发送信息块的实体的单元还包括缓存存储器,用于在所述分布管道的外部存贮数据,而所述信息块还有字段来指明与所述信息块相关联的数据在缓存区中的位置。
14、根据权利要求10的数据处理系统,其特征在于:所述包含发送信息块的实体的单元还包括多个缓存存贮器,用于在所述分布管道的外部存贮数据,而所述信息块还有字段来指明在与所述信息块的关联的数据在所述多个缓存存贮器中的位置。
15、根据权利要求13的数据处理系统,其特征是:所述可变长度部分还包括一个字段,其中的供附属设备设立即执行的命令所在缓存区的地址;而且,
所述类型字段还包括一个立即命令标识符;这里所述发送立即命令的实体能把命令封装到一个信息块中并把立即命令通过所述分布管道传送出去。
16、根据权利要求13的数据处理系统,其特征是:所述可变长度部分还包括一个字段去指明含有对一个实体一系列请求的一个执行表的长度,一个字段指明所述执行表的地址,以及一个重复计数指出该执行表要重复执行的次数;而且,
所述类型字段还包括一个执行表标识符。
17、根据权利要求16的数据处理系统,其特征是所述类型字段还包括通告(notify)位和等待位,用以向接收实体指出发送实体所要求的同步状态;
这里所述发送实体由所述接收实体同步。
18、根据权利要求1的数据处理系统,其特征是所述发送信息块的实块在一个子系统之中,而所述接收信息块的实体也在一个子系统之中。
19、根据权利要求18的数据处理系统,其特征是所述管道为一个循环队列。
20、根据权利要求18的数据处理系统,其特征是所述管道为一个FIFO队列。
21、根据权利要求18的数据处理系统,其特征是所述信息块有一个固定长度部分和一个可变长度部分,所述固定长度部分进一步包括若干信息字符,描述信息块中信息类型、信息块的长度、信息块元素源、信息块目的物、以及用于将请求与应答关联地址相关信息。
22、根据权利要求21的数据处理系统,其特征是所述可变长度部分含有数据。
23、根据权利要求21的数据处理系统,其特征在于:所述可变长部分还包括一个字段,其中有要由附属设备立即执行的命令;而且
所述类型字段还包括一个立即命令标识符;这里所述发送立即命令的实体能把命令封装在一个控制命令内并通过所述分布管道传递出去。
24、根据权利要求21的数据处理系统,其特征在于:所述单元进一步包括在分布管道外部存放数据缓存存贮器,而所述信息进一步包括一个字段,指明与所述信息块相关联的数据在所述缓存区中的位置。
25、根据权利要求21的数据处理系统,其特征在于:所述单元还包括多个缓存存贮器,用于容纳在所述分布管道外的数据,而所述还包括字段用以指示在所述多个缓存存贮器中所述信息块相关联的数据的存放位置。
26、根据权利要求24的数据处理系统,其特征在于:所述可变长字段还包括一个含有要附属设备立即执行的命令的缓存区的地址;而且
所述类型字段还包括一个立即命令标识符;这里所述发送立即命令的实体能把命令封装在一个信息块中并经所述分布管道传送出去。
27、根据权利要求21的数据处理系统,其特征是所述可变长部分还包括一个字段指明含有对一个实体的一系列请求的执行表的长度,一个字段指明所述执行表的地址,一个重复计数指明该执行表要被重复执行和次数;并且
所述类型字段还包括一个执行表标识符。
28、根据权利要求27的数据处理系统,其特征在于所述类型字段还包括通告位和等待位,用以向接收实体指出发送实体所需同步状态。
这里所述发送实体被所述接收实体同步。
29、根据权利要求1的数据处理系统,其特征是所述传送发送机构还包括检测所述分布管道何时被充满的装置。
30、根据权利要求1的数据处理系统,其特征在于所述传送发送机构还包括检测何时在所述分布管道中可以得到的空间足以容纳另一个信息块的装置。
31、根据权利要求30的数据处理系统,其特征在于所述发送传送机构还包括一个装置,当所述分布管道没有可得到的空间供另一个信息块使用时,用此装置将一个卷绕(wrap)元素放在所述分布管道的末尾,该卷绕元素向所述传送接收机构指出可得到的管道空间的末尾;
这里所述发送接收机构复位到管道空间的起点。
32、根据权利要求1的数据处理系统,其特征是所述传送接收机构进一步包括检测何时所述分布管道为空的装置。
33、根据权利要求1的数据处理系统,其特征是所述传送接收机构进一步包括检测何时所述分布管道由空状态变为非状态的装置。
34、根据权利要求1的数据处理系统,其特征是有多个分布管道。
35、根据权利要求34的数据处理系统,其特征是每个单元对有一对分布管道与该单元相对上关联,所述分布管道对进一步包括第一分布管道,用于从所述单元对的第一单向向该单元对的第二单元发送信息块,第二分布管道,用于从该单元对的第二单元向该单元对的第一单元发送信息块;
这里所述单元对以全双工方式操作。
36、在一个具有通过一根接口总线连接的多个子系统单元和以分布管道和形式分布在多个单元之间的一个共用存贮器的系统中的各单元之间传送代表请求,应答或异步通告(notificaton)的信息块的一种方法,其特征在于:
从一个发送单元向所述分布管道发送信息块,代表请求和应答,并指向一个接收单元,这种发送不需与任何其他单元相互作用;
被指定的接收单元从所述分布管道接收信息块而不需与任何其他单元相互作用;
这里所述信息块经过所述分布管道从所述单元之一异步传送到所述单元中的另一个。
37、根据权利要求36的方法,其特征在于上述的子系统单元包括至少一个处理器。
38、根据权利要求36的方法,其特征是所述信息块作为一个循环队列被写入所述分布管道和从分布管道读出。
39、根据权利要求36的方法,其特征是所述信息块作为一个FIFO队列被写入所述分布管道和从分布管道读出。
40、根据权利要求36的方法,其特征是:还有一个步骤,即当信息块被放到所述分布管道上时,由所述发送机构向所述接收机构发出信号。
41、根据权利要求36的方法,其特征是:还有一个步骤,由所述传送机构通知所述传送接收机构以预定的时间间隔去检查分布管道的状态。
42、根据权利要求36的方法,其特征是还有一个步骤,即使用每个所述单元中的管理实体去控制所述单元与所述分布管道的相互作用。
43、根据权利要求36的方法,其特征在于:所述信息块由一个固定长度部分和一个可变长度部分组成,其固定长度部分进一步包括:描述信息块中信息类型的类型字段,含有控制信息块的长度字段,描述信息块源的字段,描述信息块的目的地的目的字段,以及把请求与应答关联起来的相关字段。
44、根据权利要求43的方法,其特征是还有在所述可变长部分中传送数据的步骤。
45、根据权利要求43的方法,其特征是还有一个步骤,即在所述可变长部分中插入一个命令,供附属设备立即执行;并且
在所述类型字段中插入一个立即命令标识符;
这里所述发送该立即命令的实体能把命令封装在一个控制元素之中,并经过所述分布管道把该立即命令传送出去。
46、根据权利要求43的方法,其特征是还有一个步骤,即在包含发送信息块实体中使用缓存存贮器在所述分布管道外部来存放数据,并进一步利用所述信息块中的字段来标识数据在该缓存区中的位置。
47、根据权利要求43的方法,其特征是还有一个步骤,即在包含发送信息块实体的单元中使用一组缓存存贮器,用于在所述分布管道外部来存放数据,并进一步利用所述信息块中的若干字段来标识数据在这组缓存存贮器中的位置。
48、根据权利要求46的方法,其特征还有一个步骤,即在所述可变长度部分中插入一个缓存区位置的地址,该缓存区存有要被某一个附属设备立即执行的命令;并在所述类型字段中插入一个立即命令标识符;
这里所述发送该立即命令的实体能把命令封装在一个信息块之中并通过分布管道把该立即命令传送出去。
49、根据权利要求43的方法,其特征是将多个请求联接起来放在一个执行表中;
办法是:通过所述可变长度字段来指出所述执行的长度,指出该执行表的地址,并指出该执行表要被重复的次数;并且
在该控制元素的类型字段中设置执行表标识符。
50、根据权利要求49的方法,其特征在于在执行该执行表期间发送和接收单元借助如下方法来同步,由所述发送和接收单元控制在所述类型字段中的通告位和等待位,来向所述发送和接收单元指出对方的状态。
51、根据权利要求36的方法,其特征是还有一个步骤,就是使用所述传送发送机构去检测何时该分布管道已满。
52、根据权利要求36的方法,其特征是还有一个步骤,就是使用所述传送发送机构来检验何时在分布管道中的可得到空间足以容纳另一个控制元素。
53、根据权利要求52的方法,其特征是还有一个步骤,即当所述分布管道没有足够的可得到空间供另一个信息块使用时,在该分布管道的末尾放置一个卷绕(wrap)元素,该卷绕元素向所述传送接收机构指示这是可得到的管道空间的末尾;
此时该传送接收机构复位到管道空间的起点。
54、根据权利要求36的方法,其特征是还有一个步骤,即利用所述传送接收机构来检测何时该分布管道为空管道;
55、根据权利要求36的方法,其特征是还有一个步骤,即检测该分布管道何时从空状态变成非空状态。
56、根据权利要求36的方法,其特征是使用多个分布管道。
57、根据权利要求56的方法,其特征在于还有一个步骤,即对于每个单元对使用一对分布管道,共第一分布管道用于从该单元对中的第一单元向该单元对中的第二单元发送信息块,其第二分布管道用于从该单元对中的第二单元向该单元对中的第一单元发送;
这里每个单元对都以全双工方式操作。
CN90107142A 1989-09-22 1990-08-22 利用管道接口异步传送控制元素的设备与方法 Expired - Fee Related CN1025518C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41114589A 1989-09-22 1989-09-22
US07/411,145 1989-09-22

Publications (2)

Publication Number Publication Date
CN1050450A CN1050450A (zh) 1991-04-03
CN1025518C true CN1025518C (zh) 1994-07-20

Family

ID=23627758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN90107142A Expired - Fee Related CN1025518C (zh) 1989-09-22 1990-08-22 利用管道接口异步传送控制元素的设备与方法

Country Status (13)

Country Link
US (1) US5325492A (zh)
EP (1) EP0419066A2 (zh)
JP (1) JP3208397B2 (zh)
KR (1) KR950002391B1 (zh)
CN (1) CN1025518C (zh)
AU (1) AU630493B2 (zh)
BR (1) BR9004685A (zh)
CA (1) CA2025711C (zh)
GB (1) GB9012970D0 (zh)
MY (1) MY107143A (zh)
NZ (1) NZ235002A (zh)
PH (1) PH30203A (zh)
SG (1) SG44433A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810081A (zh) * 2011-06-01 2012-12-05 国际商业机器公司 光纤信道输入/输出数据路由系统和方法

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
FR2696256B1 (fr) * 1992-09-30 1994-11-25 Bull Sa Utilisation de "tubes" pour le transfert d'états entre différents systèmes distants.
US5448708A (en) * 1992-10-30 1995-09-05 Ward; James P. System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
CA2125607A1 (en) * 1993-06-30 1994-12-31 David Thielen Method and system for buffering transient data
US5617570A (en) * 1993-11-03 1997-04-01 Wang Laboratories, Inc. Server for executing client operation calls, having a dispatcher, worker tasks, dispatcher shared memory area and worker control block with a task memory for each worker task and dispatcher/worker task semaphore communication
US5706432A (en) * 1993-11-04 1998-01-06 International Business Machines Corporation Mechanism for receiving messages at a coupling facility
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
US5606666A (en) * 1994-07-19 1997-02-25 International Business Machines Corporation Method and apparatus for distributing control messages between interconnected processing elements by mapping control messages of a shared memory addressable by the receiving processing element
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
US5764907A (en) * 1994-10-17 1998-06-09 Chrysler Corporation Computer to microcomputer interface
US5671441A (en) * 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
WO1996023317A1 (en) * 1995-01-23 1996-08-01 Tandem Computers Incorporated A method for accessing a file in a multi-processor computer system using pipes and fifos
US5802546A (en) * 1995-12-13 1998-09-01 International Business Machines Corp. Status handling for transfer of data blocks between a local side and a host side
US5794069A (en) * 1995-12-13 1998-08-11 International Business Machines Corp. Information handling system using default status conditions for transfer of data blocks
US5860088A (en) * 1996-12-06 1999-01-12 International Business Machines Corporation Method for extraction of a variable length record from fixed length sectors on a disk drive
US5857213A (en) * 1996-12-06 1999-01-05 International Business Machines Corporation Method for extraction of a variable length record from fixed length sectors on a disk drive and for reblocking remaining records in a disk track
US6061771A (en) * 1997-04-30 2000-05-09 International Business Machines Corporation Cross-system data piping system using an external shared memory
US6170045B1 (en) 1997-04-30 2001-01-02 International Business Machines Corporation Cross-system data piping using an external shared memory
US6092166A (en) * 1997-04-30 2000-07-18 International Business Machines Corporation Cross-system data piping method using an external shared memory
US6345312B1 (en) * 1997-08-28 2002-02-05 International Business Machines Corporation Selectively dummying a data pipe transparent to a writer application
US6389482B1 (en) * 1997-08-28 2002-05-14 International Business Machines Corp. Dynamic transitioning from a local pipe to a cross-system pipe
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US7107371B1 (en) * 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6088370A (en) 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6804769B1 (en) * 2000-02-18 2004-10-12 Hewlett-Packard Development Company, L.P. Unified buffer for tracking disparate long-latency operations in a microprocessor
EP1894089B1 (en) * 2005-05-30 2012-07-11 Nxp B.V. Data pipeline management system and method for using the system
US20070168536A1 (en) * 2006-01-17 2007-07-19 International Business Machines Corporation Network protocol stack isolation
US7613840B2 (en) * 2006-08-17 2009-11-03 General Electric Company Methods and apparatus for dynamic data acquisition configuration parameters
US10848811B2 (en) 2007-07-05 2020-11-24 Coherent Logix, Incorporated Control information for a wirelessly-transmitted data stream
US8312189B2 (en) * 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8214562B2 (en) * 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
EP2439904B1 (en) * 2008-06-07 2014-01-15 Coherent Logix Incorporated Transmitting and receiving control information for use with multimedia streams
US20100070502A1 (en) * 2008-09-16 2010-03-18 Beckman Coulter, Inc. Collision Free Hash Table for Classifying Data
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
JP2015127898A (ja) 2013-12-27 2015-07-09 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
JP2015127899A (ja) * 2013-12-27 2015-07-09 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
JP2015127900A (ja) 2013-12-27 2015-07-09 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、サーバシステムおよび情報処理システム
CN108833578B (zh) * 2018-06-30 2021-07-23 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备
CN110691002B (zh) * 2018-07-05 2021-07-23 武汉斗鱼网络科技有限公司 一种中断检测方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4212057A (en) * 1976-04-22 1980-07-08 General Electric Company Shared memory multi-microprocessor computer system
IT1126475B (it) * 1979-12-03 1986-05-21 Honeywell Inf Systems Apparato di comunicazione tra piu' processori
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
JPS56140459A (en) * 1980-04-04 1981-11-02 Hitachi Ltd Data processing system
JPS5789128A (en) * 1980-11-25 1982-06-03 Hitachi Ltd Controlling system for information interchange
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
AU4907285A (en) * 1984-11-09 1986-05-15 Spacelabs, Inc. Communications bus broadcasting
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
US4809217A (en) * 1985-10-31 1989-02-28 Allen-Bradley Company, Inc. Remote I/O port for transfer of I/O data in a programmable controller
US5155807A (en) * 1986-02-24 1992-10-13 International Business Machines Corporation Multi-processor communications channel utilizing random access/sequential access memories
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US4783730A (en) * 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US4876644A (en) * 1987-10-30 1989-10-24 International Business Machines Corp. Parallel pipelined processor
US5003463A (en) * 1988-06-30 1991-03-26 Wang Laboratories, Inc. Interface controller with first and second buffer storage area for receiving and transmitting data between I/O bus and high speed system bus
JP2572292B2 (ja) * 1990-05-14 1997-01-16 株式会社小松製作所 非同期データ伝送装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810081A (zh) * 2011-06-01 2012-12-05 国际商业机器公司 光纤信道输入/输出数据路由系统和方法
CN102810081B (zh) * 2011-06-01 2015-07-29 国际商业机器公司 光纤信道输入/输出数据路由系统和方法

Also Published As

Publication number Publication date
KR910006842A (ko) 1991-04-30
EP0419066A2 (en) 1991-03-27
JPH03130863A (ja) 1991-06-04
EP0419066A3 (zh) 1994-04-20
KR950002391B1 (ko) 1995-03-17
MY107143A (en) 1995-09-30
PH30203A (en) 1997-02-05
JP3208397B2 (ja) 2001-09-10
GB9012970D0 (en) 1990-08-01
BR9004685A (pt) 1991-09-10
US5325492A (en) 1994-06-28
NZ235002A (en) 1992-08-26
CA2025711C (en) 1998-03-31
AU630493B2 (en) 1992-10-29
SG44433A1 (en) 1997-12-19
CA2025711A1 (en) 1991-03-23
AU6130990A (en) 1991-03-28
CN1050450A (zh) 1991-04-03

Similar Documents

Publication Publication Date Title
CN1025518C (zh) 利用管道接口异步传送控制元素的设备与方法
CN1689284A (zh) 网络交换装置和网络交换方法
CN1158605C (zh) 采用crc用于芯片上存储器中数据完整性的方法和装置
CN1592886A (zh) 通过虚拟线程执行计算机多任务的方法及装置
CN1908904A (zh) 实时内部简易监视器
CN1993674A (zh) 多芯架构中的资源管理
CN1007760B (zh) 多中央处理机互锁装置
CN1551592A (zh) 数据传输控制装置、电子设备及数据传输控制方法
CN1716922A (zh) 移动装置消息传送的方法和系统
CN1258142C (zh) 用于管理对资源访问的方法
CN1382333A (zh) 可按比例配置的开关结构
CN1591374A (zh) 直接存储器存取传输控制器
JP6944535B2 (ja) タスク割り当てシステムにおける行動ペアリングのための技法
CN1267806C (zh) 信息处理器,信息处理方法,及信息处理程序
CN1201942A (zh) 报文处理方法和装置及用于存储控制程序的存储介质
CN1254058C (zh) 节点装置和分组传输控制方法
CN1385794A (zh) 数据传送控制装置、电子装置和数据传送控制方法
CN1601512A (zh) 使用多个处理器的虚拟设备的系统和方法
CN1229952C (zh) 通信方法
CN1275164C (zh) 数据传输控制系统、电子设备、及数据传输控制方法
CN1949206A (zh) 多处理器系统的消息通信方法及装置
CN1208931C (zh) 电子邮件发送/接收方法、电子邮件系统及其通信设备
CN1638357A (zh) 具有链表处理器的存储器管理系统
CN1749978A (zh) 具有逻辑分区功能的磁盘控制器
CN1014189B (zh) 总线流程控制机构

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C15 Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993)
OR01 Other related matters
ASS Succession or assignment of patent right

Owner name: LIAN XIANG(SINGAPORE)PRIVATE LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINE CORP.

Effective date: 20061027

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20061027

Address after: Singapore Express

Patentee after: Lenovo (Singapore) Pte. Ltd.

Address before: American New York

Patentee before: International Business Machines Corp.

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