WO1984003192A1 - Interface pour un reseau de donnees - Google Patents
Interface pour un reseau de donnees Download PDFInfo
- Publication number
- WO1984003192A1 WO1984003192A1 PCT/US1984/000054 US8400054W WO8403192A1 WO 1984003192 A1 WO1984003192 A1 WO 1984003192A1 US 8400054 W US8400054 W US 8400054W WO 8403192 A1 WO8403192 A1 WO 8403192A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- data
- node
- receive
- storage means
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 61
- 239000000872 buffer Substances 0.000 claims description 121
- 230000015654 memory Effects 0.000 claims description 107
- KKEBXNMGHUCPEZ-UHFFFAOYSA-N 4-phenyl-1-(2-sulfanylethyl)imidazolidin-2-one Chemical compound N1C(=O)N(CCS)CC1C1=CC=CC=C1 KKEBXNMGHUCPEZ-UHFFFAOYSA-N 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 75
- 238000000034 method Methods 0.000 abstract description 56
- 238000012545 processing Methods 0.000 abstract description 36
- 238000004891 communication Methods 0.000 abstract description 6
- 230000004044 response Effects 0.000 description 68
- 230000006870 function Effects 0.000 description 21
- 230000009471 action Effects 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004886 process control Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Definitions
- This invention relates to a data communication network for use in a distributed data processing or data switching system, and more specifically, to a method and apparatus for flexibly interconnecting data sources and destinations in a local data communications system.
- Background of the Invention Many larger modern data processing and data switching systems are distributed processing systems consisting of a number of physically separated data processing or data switching facilities. These data processing or data switching facilities are frequently interconnected in a local data network.
- the data processing or data switching facilities are located within individual entities or nodes which are connected to a common transmission or data network medium such as a coaxial cable. Facilities located within different nodes communicate by transmitting data messages, usually in the form of limited length packets of data, over the medium.
- a local data network is frequently used in systems having a moderate community of data processing interest among the interconnected data processing or data switching host processors (main frames) at each node and requiring the flexible exchange of a substantial quantity of data among these host processors.
- Networks of such systems frequently require flexible message interconnection arrangements in which some messages must be sent to several nodes.
- some prior art systems have used destination addressing to route packets of data.
- each packet contains a destination address and each node is prepared to examine every packet to see if the destination address matches one of the addresses of packets that are received by that node. This capability permits a single message to be received by one or a set of nodes.
- Local data networks including this type of facility are described in D. D. Clark et al.: Introduction to Local Area Networks, Proceedings of the IEEE, V. 67, No. 11, pp. 1497-1517, November, 1978.
- each of the host processors in a node is normally executing one or more major tasks called program processes.
- Processes executing in different nodes communicate with each other by sending a data message, consisting of one or more data packets, over the data network medium.
- a data message consisting of one or more data packets
- the data of the message must generally be stored in an area of memory called the data space of the destination process.
- data received at a node must first be stored in a buffer register and then in an intermediate location in memory. These steps may be carried out autonomously without involving the host processor.
- the host processor examines the received data in the intermediate location in order to identify the destination process and to find an appropriate location in memory, generally in the data space of the destination process.
- the host processor then causes the received data to be transferred to this appropriate location in memory.
- the step of storing in an intermediate location and the subsequent examination and transfer steps degrade system performance by delaying the arrival of the received data in the data space of the destination process where it can be processed.
- the examination and transfer steps use expensive host processor resources and substan-tially reduce the data processing capacity of these expensive host processors.
- OMK to preparing data messages, checking received data messages, verifying that data messages have been properly received by a destination, and initiating retransmission of messages whenever necessary.
- Acknowledgment messages must be generated and transmitted from a message destination to a message source. Carrying out these functions substantially reduces the data processing capacity of these expensive host processors.
- a data packet including a destination address and data, transmitted on a local data network transmission medium is received and stored in a buffer register in a node of the local data network.
- the packet destination address stored in the register is used to generate control signals defining the address of the memory block in the node associated with the destination address; the packet data is then transmitted directly to storage in memory at the associated address.
- address identification data indicating the packet destination addresses of packets whose data is to be stored in node storage of this node is stored in memory and, when a packet is received, the packet destination address is compared with the stored address identification data of the node. If the comparison indicates that the packet contains data to be stored in node storage, identification signals are generated which are used to derive control signals for controlling the transmission of the data of the received packet to the address in node storage associated with the received packet destination address.
- a content addressable memory is used to store the destination addresses of packets received by a node.
- this permits a large number of destination addresses to be recognized at each node.
- an interface processor controls the transmission and reception of data packets over the transmission medium, and the transmission of received data packets to an appropriate location in storage within the node.
- this arrangement reduces the data processing load of the host processors which carry out the data processing tasks within each node.
- a local bus is used at each node to communicate data among the modules of the node.
- a memory access arrangement controls transmission of data over that local bus, between a network interface connected to the medium and the host processors and node storage, and stores each packet directly in storage associated with a destination address.
- the host processor of a node specifies the addresses of the memory blocks in which the data of a received packet is to be stored. These addresses are then used to generate the control signals which are used to control transmission of the data of a received packet to memory at these addresses.
- addresses are addresses of memory in the data space of destination program processes of the node.
- a node is adapted to check for proper reception of a data packet by checking for errors in reception of a data packet and, generally, for any condition which prevents the storage of error free data in node storage.
- the node is also adapted to generate and transmit acknowledgment packets, representing either positive or negative acknowledgment of receipt of a data packet.
- a positive acknowledgment packet acknowledges proper reception of a packet; a negative acknowledgment packet acknowledges lack of proper reception of a packet.
- These acknowledgment packets may be generated in response to acknowledgment request data sent with a data packet or in response to data packets sent to specific packet destination addresses or to specific program processes. With such acknowledgment packets, it is possible to implement different reliability levels of transmission protocols.
- a low level protocol packet will require limited checks and no acknowledgment, whereas a high level protocol packet is fully checked and requires a receiving node to generate an acknowledgment packet.
- the extra operations required for high reliability data transmission are only performed when needed.
- the data processing and the generation of acknowledgment packets and other messages required to support higher reliability protocol checks are performed by the interface processor.
- the packet when high reliability protocol checks on a particular packet fail, the packet is retransmitted under the control of the network interface processor.
- this further reduces the load on the host processor.
- the data of a data packet includes error check data. This error check data is used to detect errors within the packet data.
- data files may be duplicated by associating two file destinations in different nodes with the packet destination address contained in packets used to update the files.
- One of these destinations may be designated a master destination.
- the interface processor of the node containing the master destination generates acknowledgment packets when necessary.
- this reduces the special data processing required for transmission and reception of a data packet having multiple destinations.
- one message switch of a larger data network interconnected by data links may be implemented by connecting data links to the nodes of the local data network. These data links communicate with other message switches of the global data network and with input/output terminals connected directly to the global network. Messages between source and destination data links connected to different nodes of the local data network are sent over the transmission medium.
- FIG. 1 represents a local data network including a block diagram of a typical node
- FIG. 2 is a block diagram of a network interface for one node
- FIG. 3 shows the format of packets sent over the data network medium
- FIG. 4 specifies the use of the packet destination address spectrum
- FIG. 5 shows the layout of a content addressable memory used for identifying packet destination addresses
- FIG. 6 shows an overall layout of memory used for controlling the transmission and reception of data packets
- FIG. 7 shows the layout of memory used for controlling data transmission and for making requests of the interface processor
- FIG. 8 shows the layout of memory used for controlling reception of data packets
- FIG. 9 shows the layout of memory used for communicating responses from the interface processor to host processes
- FIG. 10 is a table of program addresses used by a host processor for processing responses from the interface processor
- FIG. 11 shows the layout of memory used for controlling additional functions executed in processing a request for medium or high reliability transmission of data packets
- FIG. 12 shows the layout of memory used for controlling additional functions executed in receiving data packets transmitted with medium or high reliability protocols
- FIG. 13 shows a process control block for a host processor program process.
- FIG. 1 shows a local data network including a block diagram of one of the nodes, node 10.
- the data network medium 110 a transmission medium, interconnects all the nodes, i.e., nodes 9, 10,...,n, of the local data network.
- This medium may be, for example, a coaxial cable with a tap allowing the attachment of an interface, such as network interface 100.
- data processing tasks are performed in each node.
- Data is communicated between the nodes via the data network medium which is connected to a network interface at each node.
- data is transmitted between such a network interface 100 and the rest of the node via local bus 120.
- Local bus 120 is connected to data processing modules of the node such as: a host processor 111 comprising a central processing unit 115 and storage 116; an- input/output controller 113 comprising a central processing unit 117 and storage 118 connected to an input/output device 114 such as a terminal, printer, card reader, or data link; and shared memory 112.
- the input/output controller can also be used for controlling bulk memory devices such as drives for magnetic disks or tapes.
- Node storage means for the node include storage such as a shared memory 112, host processor storage 116, and input/output controller storage 118. In alternate nodal configurations, the only node storage means could be the storage 116 directly associated with the host processor 111.
- the host processors execute basic tasks of the system called program processes, or host processes. In this distributed processing system, different program processes are executed on different processors in different nodes which do not directly access a common memory.
- the processors in different nodes of this system are interconnected only by the data network medium; processes executing on processors in different nodes communicate with each other, not by storing data in a commonly accessible memory, but by sending messages, comprising packets of data, over the data network medium.
- the host processors also contain message handler programs, well known in the prior art, which communicate with application program processes executing in the host processor. Some of the functions of conventional message handler programs are executed in this system by the interface processor, and these are explained in detail in this description.
- the host processor 111 in this system does not directly control the sending of packets to the data network medium. It communicates various types of requests to the network interface 100, including requests to send a packet stored in a block of memory, called a transmit buffer, in memory 116 of the host processor 111 or in shared memory 112. The network interface communicates responses to these requests, including the response that a requested packet was sent, back to the host processor. The network interface also controls the reception and storage of incoming data packets and notifies the host processor when a data packet has been received.
- node 10 is shown with only one host processor and one shared storage, it is possible to have more than one host processor at any node.
- Memory layout diagrams in this description indicate where a processor identification is needed in case a node has more than one host processor.
- I/O controllers may be treated as separate host processors if they are capable of action independent of an associated host processor.
- a major objective of the exemplary distributed processing system of FIG. 1 is to achieve high reliability system performance. In a distributed processing system, if some module fails, other modules are available to take over their function. In order to achieve high reliability system performance, it is important that a given data processing function not be tied to a given data processing, storage, or input/output module.
- Each logical channel is defined by a destination address sent with every packet associated with that logical channel.
- Each node stores a list of destination addresses associated with that node and is responsive to receive and retain any packet identified with one of these destination addresses.
- a given packet destined for use by a given destination program process, can be routed to whichever node in the system has been assigned to execute the destination program process. Note that in this system, in which each node has access to the data network medium, only memory set-up operations are required to create a channel, and that no physical path need be specially set up. Hence the term logical channel.
- FIG. 2 shows details of network interface 100.
- a receive circuit interface 151 is connected to the data network medium 110 and receives signals from that medium. These signals are then stored in buffer register 162 by receive control 152.
- Buffer register 162 stores the packet data of any received data packet and an initial header including the packet destination address of a packet.
- a transmit circuit interface 161 is also connected to the data network medium 110 and is used to transmit signals on that medium representing data stored in buffer register 163.
- Buffer register 163 is loaded with the packet data of a data packet to be transmitted on the medium under the control of transmit control 164; the initial header is loaded directly from network interface processor 153 into transmit buffer register 163.
- the central processing unit (CPU) 155 of network interface processor 153 is a 32-bit microprocessor.
- CPU 155 can access buffer register 162 via receive control 152 and can access buffer register 163 directly. It can set up commands in the transmit control 164 (e.g., transmit a packet, load buffer register 163 from the output of direct memory access 154, write a word in buffer register 163); the receive control 152 (e.g., transmit a packet in buffer register 162 to direct memory access 154 for storage in node storage, read a word in buffer register 162, discard a packet in buffer register 162) ; and the direct memory access 154 (e.g., transmit a block of data received from receive control 152 to local bus 120 for storage in node storage starting at a specified address, transmit a block of data from node storage starting at a specified address to transmit control 164 for storage in buffer register 163) .
- the transmit control 164 e.g., transmit a packet, load buffer register 163 from the output of direct memory access
- Interface processor 153 is also connected to local bus 120 in order to access node storage such as storage 116 associated with host processor 111, and in order to permit node processors such as host
- Receive control 152 can simultaneously control the reception of one data packet from network medium 110 and the transmission via direct memory access 154 of another data packet to node storage.
- Transmit circuit interface block 161 and receive circuit interface block 151 are connected to the data network medium 110 and the transmit control 164 and receive control 152, respectively.
- the direct interface circuits in these blocks generate electrical signals to and receive electrical signals from the medium.
- These direct interface circuits are similar to those commercially available for use with the Ethernet network and handle functions including medium availablity detection, collision detection, and, in response to control signals from transmission control 164, back-off and retransmission after collision detection.
- circuit blocks 161 and 151 perform a number of other functions. They convert straight binary to Manchester coding and vice versa; Manchester coding is used for communicating over the medium as described further below with respect to FIG. 3.
- Receive circuit interface 151 also derives a clock from the received electrical signals to sample that signal at the appropriate time. Output signals transmitted to the medium are clocked in transmit circuit interface 161 by a system clock (not shown) . All of these functions are well known in the prior art and can be implemented using commercially available integrated circuit components.
- Buffer register 162 is 8 kilobytes long and acts like a circular buffer. New packets received from the data network medium are added after previous packets, or are discarded immediately if not destined for this node.
- Receive control 152 maintains a load pointer for loading newly received packets, and an unload pointer indicating the starting address of packets in the receive buffer register which have not yet been disposed of by the interface processor. When a new packet is received, the load pointer is changed; if the packet is discarded by the receive control because the packet is not destined for this node ' , the receive control resets the load pointer to the start of that packet.
- the packet When a packet has been examined by the interface processor 153 and, if necessary, data from the packet has been transmitted to node storage, the packet may be discarded from buffer register 162 and the unload pointer changed. If in loading the buffer register 162, data is received which would go beyond the limit indicated by the unload pointer, such data is not stored and an indication of buffer register 162 overflow is made available by receive control 152 to interface processor 153.
- the network interface processor examines previously received packets in order and, after having processed them and/or having caused their data to be stored in nodal storage, discards a packet by instructing the receive control 152 that the space for the packet may now be made available for new packets arriving from the data network medium; receive control 152 responds by moving up the unload pointer.
- a destination address provides a means for each node to recognize whether a packet is destined for that node and is used to direct the packet data to an appropriate destination in storage within a destination node.
- the specific location within such storage is usually in the data space of the destination program process.
- a receive port is a receiving end of a logical channel. I is set up when memory in the receiving node is properly initialized and when the content addressable memory 160, which stores the destination addresses of packets which are to be examined by the interface processor 153, stores the destination address in a memory location associated with that receive port. In each node, up to 64 receive ports are available, each associated with one of the destination addresses of packets received by a node. The receive port number represents a storage address identification used to select the address in memory and identify where the data of the packet is to be stored.
- each node has one special destination address, called the physical address of that node, used as the destination address of packets directed to the control and maintenance system of that node, or to the interface processor of the node; each node must assign a receive port- to the physical address at the time the node is initialized.
- Network interface 100 is arranged so that data packets may be simultaneously transmitted and received. This means that one of the destinations of a data packet may be in the source node. This simplifies some of the system software since there is no need to check, whenever messages are to be sent to other processes, whether the receiving process is executed in the source node and to take alternate actions in that case.
- Content addressable memory 160 is used to store a list of the packet destination addresses associated with data packets which are to be received in a node.
- Content addressable memories are well known in the prior art and are commercially available. Associated with each member of that list is a receive port number.
- the content addressable memory has internal circuitry for performing a comparison between a search function, the received packet destination address in this case, and a list of values of corresponding data, a list of destination addresses in this case; if a match is found, the content addressable memory reads the output data corresponding to the matched search function, a receive port number in this case.
- the content addressable memory when the packet destination address of a received packet, stored in buffer register 162 and also sent to memory 160, matches one of the destination addresses stored in content addressable memory 160, the content addressable memory generates the receive port number associated with that destination address. This receive port number is later stored by receive control 152 in buffer register 162 in a position corresponding to the preamble (see discussion of FIG. 3) of a received packet.
- content addressable memory 160 receives the packet destination address directly from receive circuit interface 151; alternatively, memory 160 could receive this address from receive control 152.
- the receive port number is later used by interface processor 153 to find the address of a block of memory, called a receive buffer, where the packet data of the packet is to be stored.
- Direct memory access 154 is used to control the transmission of data stored in buffer register 162 via direct memory access 154 and the local bus 120 to storage 116, shared memory 112, or storage 118. Data is passed, one word at a time, from buffer register 162 to direct memory access 154 by receive control 152; the receive control is set up by interface processor 153 to a starting point within buffer register 162 and to the length of the block of data to be transmitted to nodal storage.
- the direct memory access receives, from interface processor 153, control signals representing the starting address of the receive buffer and an indication of the length of the block. The length of the total data packet was previously generated by receive control circuit 152 which stored this length in buffer register 162 in a position corresponding to the (not needed) preamble of the data packet (see FIG. 3) .
- buffer register 163 is loaded directly by interface processor 153 and, under the control of transmit control 164 and direct memory access 154, via local bus 120 from storage 116, shared memory 112 or storage 118. Transmit control 164 also generates signals to transmit circuit interface 161 to control back-off and retransmission following collision detection.
- Direct memory access 154 receives the starting address in nodal storage and the length of the block from interface processor 153; transmit control 164 also receives the length of the block from interface processor 153 and always starts loading data from nodal storage at the position just beyond the header of the packet.
- the content addressable memory 160 is changed relatively infrequently.
- the arrangement used in this system is to write data from interface processor 153 into buffer register 163, and then, under the control of transmit control 164, transfer this data to content addressable memory 160.
- interface processor 153 could have direct access to memory 160.
- a transmit port consists of a number of blocks of memory and is used to provide for communications between host processes and the network interface processor 153.
- the system provides up to 64 transmit ports in each node.
- Each transmit port has associated storage used for responses to the host program process which requested the transmission of a packet or some other action by the interface processor. After an action has been completed, a confirmation or denial response is returned to the requesting process, using the transmit port number to identify that process and using the response mechanism, described below with respect to FIG. 9.
- High reliability system performance requires high reliability data transmission. Relatively few processes in a distributed processing system can tolerate the occasional loss of packets of data transmitted among these processes.
- the responsibility for insuring that data is transmitted reliably, and is retransmitted if necessary, lies with the host processors and processes which generate and receive such data.
- the present invention implements automatic retransmission under the control of the network interface processors, thus relieving the host processors of that portion of their load attributable to checking on the successful transmission and reception of the data packets.
- each packet is acknowledged by a positive acknowledgment packet representing proper reception of a data packet, or a negative acknowledgment packet representing lack of proper reception of a data packet, generated under the control of the receiving node interface processor 153. If a packet is not acknowledged within a specified time or a negative acknowledgment packet is received, the interface processor notifies the transmitting host process; the host process may then call for the message to be retransmitted.
- a further check of packet data is made.
- the direct memory access 154 adds a separate cyclic redundancy code check to the data of data field 205 (FIG. 3) .
- the data in the data field including this check is then checked by direct memory access 154 upon transmission to the destination memory 112, 116, or 118 (FIG. 1) .
- This permits a complete check from source memory at one node to destination memory at another node.
- a negative acknowledgment is sent out if a cyclic redundancy code check failure is encountered, even though a risk is incurred that the source address was incorrectly received.
- a packet received with a check failure is not discarded automatically by the receive control 152, but is examined by interface processor 153. If a check failure has been encountered, a negative acknowledgment packet is sent if the received packet was transmitted with medium or high reliability protocol. The packet is then discarded.
- a pseudo channel associates control data with the transmission of packets requiring medium or high reliability protocol.
- a protocol channel has two ends, one associated with a transmitting node, the other with a receive port on a receiving node. At each end of a protocol channel, the protocol channel identifies storage used by the interface processor to maintain data necessary for implementing the acknowledgment and retransmission features necessary for medium and high reliability protocol data transmission.
- a specific protocol channel exists between one source node generating data packets and a destination address of one destination node.
- Acknowledgment messages sent via the logical channel associated with the physical address of the node which transmitted the packet being acknowledged, are associated upon receipt with a transmit protocol channel and are used to update the data controlling retransmission of data packets.
- Medium and high reliability protocol data messages are directly transmitted over a conventional logical channel, but convey data identifying an associated protocol channel.
- up to 128 transmit and 128 receive protocol channels are available at each node.
- a data or miscellaneous packet format 200 capable of conveying the header data required to implement the functions described above, is shown in FIG. 3.
- It consists of a header (fields 201-204), a data field 205, and a check field 206.
- the header starts with a preamble 201, a group of bits arranged in a standard pattern recognized by each circuit interface 151 as representing the beginning of a packet of data.
- a destination address field 202 representing the packet destination address
- an abbreviated (2 byte or 4 hexadecimal character) physical address field 203 representing the physical identity (for example, 0009 for node 9) of the source node sending the message
- a miscellaneous control data field 204 described further below. Then comes the packet data field 205, if any, of the packet. Finally, the packet concludes with a group of
- OMPI check characters in check field 206 representing, in this system, check sums for a cyclic redundancy code; these are verified upon reception to see if the message has been received correctly.
- One of the functions of the circuit interfaces 151 and 161 is to decode or generate, respectively, Manchester code representations of data to be stored in or transmitted from buffer registers in the network interface. Other known coding schemes, could also be used.
- Field 204 of packet format 200 comprises six bytes of data.
- One byte specifies the type of packet and includes types such as: data; request to set up a receive port; confirmation that a receive port has been set up; positive acknowledgment of a data packet (in format 210) ; and negative acknowledgment of a data packet (in format 210) specifying a type of failure (for example, cyclic redundancy check failure, receiving host processor failure, receiving interface buffer register full) .
- the second byte specifies the level of protocol of this packet, representing acknowledgment request data.
- the third and fourth bytes specify the transmit and receive protocol channel numbers associated with this packet, and contain meaningful data only when medium or high level protocol is used.
- the fifth byte specifies the sequence number of this packet and contains meaningful data only when high level protocol is used.
- a sixth byte is used for maintenance purposes and is not pertinent to this invention. Message acknowledgment is required for medium and high reliability protocol messages.
- An acknowledgment packet format 210 (FIG. 3) is used for positive and
- the header of the original data packet being acknowledged contained the abbreviated physical address (field 203) of the source node.
- the destination address 212 is the full physical address (abbreviated address plus an identifying two byte prefix consisting of hexadecimal ffff to identify a physical address) of the source node, and the abbreviated physical address 213 of the destination node.
- the source node as previously indicated, is prepared to recognize its own physical address as a destination address.
- the interface processor always examines the type byte within field 204 or 214 of any received packet before taking any further action.
- the interface processor When a node receives an acknowledgment message, the interface processor recognizes that this is an acknowledgment message which corresponds to a message transmitted by this node.
- the transmit protocol channel number also in field 214, is used to associate the acknowledgment message with a transmit request, as described below with respect to FIG. 11.
- the interface processor 153 assembles the header which includes the various portions of fields 201-204 or 211-214 (FIG. 3) of the packet from the locations in which they have been stored and storing them in storage 156 (FIG. 2) . Then, when the packet is to be transmitted, these fields are sequentially transmitted from interface processor 153 via transmit control 164 to transmit buffer register 163, thence to circuit interface 161 which transmits Manchester encoded signals on the data network medium. If the packet contains data stored in memory 112, 116, or 118 (FIG. 1), the direct memory access 154 transmits data corresponding to data field 205 (FIG. 3) from a location in memory 112, 116, or 118, to transmit buffer register 163 via transmit control 164, whence the data is transmitted to circuit interface 161 and data network medium 110. For packets
- circuit interface 161 which generates cyclic redundancy code (CRC) data throughout the transmission of the packet, transmits the CRC data representing field 206 or 216.
- CRC cyclic redundancy code
- Packet reception is very similar. Once the content addressable memory 160 has found a match between the packet destination address of a received packet and one of the entries in memory 160, it generates a receive port number which is then stored by receive control 152 in receive buffer register 162, effectively being substituted for part of the preamble. The contents of fields 202-204 or 212-214 which are stored in receive buffer register 162 are used to control the setting up of message reception data. The identity of the receive port number is used by the interface processor to generate the address of a receive buffer in memory 112, 116, or 118, so that the packet data can be sent from receive buffer register 162 by receive control 152 and by direct memory access 154 via local bus 120 to memory 112, 116, or 118. Circuit interface 151 generates the cyclic redundancy code throughout the reception of the packet and generates an error signal representing results of the check which it stores in buffer register 162 with the receive port number for examination by interface processor 153.
- FIG. 4 and 5 show the address spectrum of the destination addresses, and the layout of the content addressable memory 160 used to store such destination addresses.
- the destination address is a 4-byte (32 bit) quantity which is shown for convenience in hexadecimal form (two characters per byte).
- Range 221 the specific destination address comprising all zeros, is reserved for broadcast messages destined for all nodes which are initialized to receive such broadcast messages.
- Range 222 consisting of addresses 00000001 to fffeffff is available for the assignment of other general purpose logical channels.
- 65,535 addresses in range 223 from fffOOOO to fffffffe are available to represent physical addresses of nodes, and are used to identify packet destinations or sources representing a node itself instead of a process executing on a node.
- Source addresses are transmitted in abbreviated form.
- An abbreviated physical address is the last two bytes of a physical address; for example, the abbreviated physical address corresponding to ffffl23a is . 123a.
- the address (range 224) comprising all f's, corresponding to all l's on a binary basis, is illegal.
- the addresses in block 390 of the content addressable memory represent the destination addresses associated with the 64 receive ports to which this node is responsive. As previously indicated, the destination address of every packet on the data network medium is compared with the contents of the content addressable memory 160 to see whether that packet is to be received by this node.
- Receive port 0 is usually reserved for broadcast messages associated with the broadcast destination address 00000000; therefore the contents of location 391, corresponding to receive port 0, are hexadecimal 00000000.
- Location 392 contains the receive port number, 0, corresponding to location 391.
- Receive port 1 is associated with the physical address of the node. Therefore, the contents of location 393 of node 10 (ten) are hexadecimal ffffOOOa. (000a is hexadecimal ten.)
- the contents of memory locations 395,...,397 are the packet destination addresses associated with receive ports 2,... ,63, respectively.
- each processor must be made capable of accepting instructions from some overall control node.
- each node In order to listen for messages on the interconnection medium, each node must open a receive port; in order to be able to receive initialization, control, and maintenance messages and messages requesting the opening of a receive port, it is convenient for each node to open a receive port associated with its own physical address (within range 223 of FIG. 4) to be used for messages to the control system of a node. When this receive port has been opened, the node is prepared to accept messages to the physical address of that node.
- Initial messages from a system initialization process in a control node of the system to a node initialization process in each node will selectively open a set of receive ports to allow each node to communicate with other nodes, and will initiate the execution of the basic program processes assigned to each node.
- Initializing or opening a transmit port reserves the memory space required in the interface processor to allow a host program process in a host processor to receive responses from the interface processor to requests from that host program process, including the request to transmit a data packet.
- Initializing or opening a receive port prepares the network interface to accept all messages, including those sent from this node, addressed to that receive port.
- Initializing or opening a protocol channel prepares a network interface to store and exchange data necessary to implement medium or high reliability protocol data transmission of a packet or series of packets; a protocol channel associates a given receive port with all ports of one node transmitting to that receive port. Associated with each of these ports and channels are the blocks of memory described below.
- FIG. 6 shows some of the memory blocks used for communications between a host processor 111, and an interface processor, 153, in the same node.
- the host processor makes a request of the interface processor, such as a request to transmit a packet of data
- the host processor makes an entry in the network transmit queue 310 at a location indicated by the network transmit queue control block 320.
- the entry specifies a transmit port; in addition, in case a data packet is to be transmitted, the entry points to the transmit buffer 331 within a transmit buffer area 330 associated with that transmit port where the data of the packet, previously loaded by host processor 111, is to be found.
- Each transmit port has an associated response queue 340 and response queue control block 350 for storing responses from the interface processor 153 to a host processor 111.
- the response queue 340 is loaded by the interface processor 153 and stores responses to requests to send a data packet or responses to other requests from the host processor.
- the control block 350 keeps track of which responses have been processed by the host processor, and where the next response from the interface proce ⁇ sor should be stored.
- the interface processor causes received data to be transmitted to a receive buffer such as 361 within receive buffer area 360 (see FIG. 8).
- Each receive port has its own receive queue control block 380, and generally has its own receive queue 370 and its own associated set of receive buffers such as 360.
- the location within a receive buffer area 360, such as a receive buffer 361 (see FIG. 8), where the next packet is to be stored is placed in.
- FIG. 7 shows more detailed memory layouts associated with the transmission of data packets.
- the host processor generates a message and places it in a block 331 within transmit buffer area 330.
- the transmit buffer block 331 is linked to an entry 319 in the network transmit queue 310 by the pointer 314 to the starting address of block 331.
- the entry 319 in the network, transmit queue 310 also contains the destination address 311 of the packet, a job identification number 313 subsequently used to properly associate a response queue entry with the host process, the size 315 of the data of the packet, the number 316 of the transmit port to be used, and a type 317 identifying this as a low level protocol data message.
- the load pointer 323 of the network transmit queue control block 320 is updated to inform the interface processor that a new entry has been entered into the network transmit queue.
- the interface processor recognizes that a request has been loaded by the host processor by detecting a mismatch between the load pointer 323, which points to one entry beyond the most recently loaded request, and unload pointer 324, which points one entry beyond the transmit queue entry of the request most recently processed by the interface processor.
- the interface processor examines the contents of the entry indicated by its unload pointer and increments unload pointer 324 to point to the next network transmit queue entry in preparation for subsequent examination of that next entry when that next entry has been loaded.
- the interface processor prepares a packet of the format 200 (FIG. 3). It locates the packet destination address 311 (FIG. 7) and the type of packet .317 in transmit queue entry 319. For a data message, the source physical address which is associated with the sending node is found in a copy (not shown) of location 393 of table 390 (FIG. 5) retained in interface processor storage 156 (FIG. 2) . The data of the message is found through the buffer address pointer 314 (FIG. 7) and the size of the block of data in location 315 in the network transmit queue entry. When the data packet has been transmitted to the data network medium, the interface processor makes an entry in the response queue 340 (FIG. 11) associated with this transmit port indicating by means of an appropriate response type, that a data packet had been transmitted.
- the type of request is stored in location 317 of the network transmit queue by the host processor.
- the network interface responds to this type of request indication by taking the appropriate action and storing its response in the response queue 340 (FIG. 11) associated with the transmit port of the request.
- the network transmit queue control block 320 (FIG. 7) , one required in each node, and response queue control blocks 350 (FIG. 9) , one required per transmit port, share certain characteristics.
- Each contains a start pointer (321 and 351, respectively) , a size indicator (322 and 352, respectively) , a load pointer (323 and 354, respectively) which points to the location in the queue in which the next entry is to be made, and an unload pointer (324 and 355, respectively) which points to the next entry to be unloaded.
- the load or unload pointer respectively, is incremented to point to the next potential entry.
- a start pointer (321 and 351, respectively)
- a size indicator (322 and 352, respectively)
- a load pointer (323 and 354, respectively) which points to the location in the queue in which the next entry is to be made
- an unload pointer (324 and 355, respectively
- OMPI check must be made to make certain that the entry will still be made in or taken from the queue; this is done by comparing the start pointer plus the queue size, with the incremented pointer plus the size of an entry. If the incremented pointer plus the size of the entry exceeds the end of the queue, then the pointer, instead of being incremented, should point to the beginning of the queue.
- Operation of the receive queue control blocks 380 (FIG. 8), receive queues 370, and receive buffers such as 361 is different.
- the different approach makes it possible to avoid requiring a relatively expensive unusable receive buffer (corresponding to a relatively inexpensive unusable queue entry in the previous cases) and to avoid the necessity of always allocating a relatively expensive, possibly unnecessary, receive buffer for each space in the receive queue. This is done by providing each queue entry with data indicating availability of assigned buffer storage space for use in storing received messages.
- a receive queue control block 380 is associated with each receive port.
- the receive queue control block has a load pointer 387 which points to the next receive queue entry.
- Each entry in a receive queue 370 is capable of being associated with a single receive buffer, a block of memory associated with one or more receive ports used to store the data of a received packet.
- An entry 375 contains the address 371 of the associated receive buffer 361 and the size of the block of data stored therein.
- OMP buffer contains the address of the buffer and a blank (all zeros) data size field.
- the host processor makes a queue entry available by writing therein the address of an available receive buffer and setting the data size field to zero.
- a receive queue entry corresponding to a full buffer i.e., the corresponding receive buffer is not available for reception of new data packets
- a receive queue entry corresponding to an available receive buffer is recognizable by having a non-zero value in the buffer address field 371 and a zero value in the data size field 372; if the next receive queue entry pointed to by load pointer 387 has other values, this is equivalent to detection of queue overflow, and is one of the conditions reported in a negative acknowledgment packet.
- the receive queue control block also specifies the size 382 of each receive buffer; this size is set when a receive port is initialized.
- the start 380 and size of the queue 383 are also set at receive port initialization time.
- network interface 100 checks to see whether the packet on the medium is destined for this node by comparing the destination address in position 202 or 212 of message format 200 or 210 (FIG. 3) , respectively, against the list of network addresses stored in table 390 (FIG. 5). If there is a match, the number of the corresponding receive port is identified. The search for a
- OMPI match and identification of the corresponding receive port is most conveniently performed by a content addressable memory 160 or some system having search capability properties -withii the appropriate time constraints; the message destination must be identified before the next packet is received in order to allow a packet not destined for this node to be discarded, thus avoiding filling buffer register 162 with irrelevant packets.
- the destination address is used as the search function of the content addressable memory, which generates the identity of the receive port when there is a match between the search function and one of the stored destination addresses.
- Control block 380 Associated with each receive port is a receive queue control block 380 (FIG. 8) which controls the storing of information in a receive buffer.
- Control block 380 contains the starting address 381 of the receive queue, the size 382 of each receive buffer such as 361, the size 383 of receive queue 370, the identification 384 of a specific host processor within the node, the number 388 of an associated receive protocol channel, and a load pointer 387.
- Load pointer 387 points to the receive queue entry 375 which in turn points to an appropriate receive buffer, which can be located in the data space of the destination program process.
- Buffer entry 375 includes a pointer 371, which points to a receive buffer 361 in receive buffer area 360 where the received data may be stored, and a size indicator 372 which indicates the size of the entry being made.
- the individual receive buffers need not be contiguous as shown in FIG.- 8 but can be scattered in several blocks.
- a relatively short receive buffer is assigned and a relatively long packet is transmitted.
- the data of one packet is sent via several direct memory access block transfers to several receive buffers corresponding to several consecutive receive queue entries.
- a special indicator (such as all binary l's) in the data size field of a full receive queue entry indicates to the host process that the packet data is continued in another receive buffer; the host process can find the length of the entry in each receive buffer except the last by reading field 382, the buffer size field.
- the size indicator 372 associated with the last buffer contains the total size of the packet data.
- a single receive queue and a single set of receive buffers with several destination addresses, hence several receive ports. This can be accomplished by designating one of these receive ports as a primary receive port and by linking or chaining secondary receive ports to the primary receive port through a linking or chaining entry in the receive queue control block.
- the control block, receive queue and receive buffers associated with the primary receive port are used.
- a secondary port control block entry can be identified by having a zero in the start field 381 and a link or chain entry in the load pointer field 387.
- the response queue shown in FIG. 9 illustrates the method of communicating responses from a network interface processor to a host process.
- a control block 350 which administers a response queue 340.
- Entries are loaded into the response queue by the interface processor, and are unloaded by the appropriate host processor, identified by the host processor number 353 which is initialized when the port is opened.
- the start 351, size 352, load 354 and unload 355 pointers are used as previously described, to administer a response queue 340 and are also initialized when the port is opened.
- One response queue entry 347 is shown.
- the entry in the response queue includes the job identification number 341, used by the host program process which generated the request or data packet to identify the response to that request or data packet.
- the entry also includes the buffer address of the packet 342, the size of the packet 343, and a type of response 345 (e.g., positive acknowledgment, negative acknowledgment, type of failure, successful opening of a port or protocol channel) .
- a program address (Table 230, FIG. 10) to associate responses from that port with an appropriate program function of the host program process that made a request to the interface processor; these program addresses are stored in a transfer address table 230 and accessed by using the transmit port number as an index to find the program address associated with responses to a given transmit port.
- the program address 231 associated with the i'th transmit port is in the i'th position in table 230.
- the system is able to check for proper reception of a data packet, including ability to store received data in node storage. It checks received data via the cyclic redundancy (CRC) code, separately checks the CRC code of the data field, checks for availability of space in the receive buffer register and in a receive buffer, and checks that data was transmitted to the receive buf er.
- CRC cyclic redundancy
- a transmit protocol channel is established between one node or network interface and one destination address and is associated with a receive protocol channel on the node which has a receive port capable of receiving that destination address. Any transmit port on the transmitting node can use the same transmit protocol channel.
- the transmit protocol channel can be considered a channel for the transmission of packet reliability information between a transmitting network interface and a receive port on a receiving network interface. If a plurality of receive ports on different nodes are associated with the same destination address, only one receive port, called the master receive port, will send back positive or negative acknowledgment packets to verify or deny proper reception of a data packet; in effect, only the master receive port will be associated with an active receive protocol channel.
- Each transmit protocol channel has a control block 410 and an associated linked queue 430, 438,..., 439, 440 (FIG. 11) of network transmit requests.
- the data in the transmit queue entry is stored in a new entry linked to the transmit protocol channel linked queue. This will allow the entry to be cleared from the network transmit queue so that subsequent entries in the transmit queue network may be processed. If the transmit protocol channel is available, the packet is sent out immediately. Otherwise, transmission is deferred until the protocol channel has processed previous requests and is available. Note that only after each entry in the linked queue has been fully processed, including an acknowledgment, does processing of the next entry begin. Immediate availability of a transmit protocol channel thus implies an empty linked queue.
- Each transmit queue entry such as 430, contains: a link, 431, used to link to the next entry in the queue; a job identification number 432, subsequently used by the host process to associate a response with the proper host program process function; a buffer address 433, used to locate the data to be transmitted; the size 434 of the data field of the packet; the transmit port 435 to be used; and the type 436 of the request.
- This data plus the destination address stored in location 411 of the transmit protocol channel control block, the associated receive protocol channel number 414, and the transmit protocol channel number (originally used to access the control block 410), are all that is necessary to control the processing of the original network transmit queue request represented by the transmit protocol channel linked queue entry.
- the interface processor When a message requiring medium or high reliability transmission protocol is to be sent to a given receive port, the interface processor first checks to see if a transmit protocol channel already exists. If not, such a channel is opened from the network interface of this node to the receive port associated with this destination network address at one node.
- a transmit protocol channel control block such as 410 is initialized with the destination address 411 of the associated destination, the transmission protocol level 413, a transmit timeout limit 415, the current time 416 (updated each time a packet is transmitted) , a limit on the number of repeated transmissions of a packet 417, an initial value of zero for the number of repetitions already incurred 418, and a convenient initial sequence number 412 (for example, 0) .
- Sequence numbers are sequential numbers used with high reliability protocol in order to allow a protocol channel to check that no data packets were lost.
- An acknowledgment must not only be for a message properly received but must indicate the correct sequence number. Transmission of the next packet is delayed until there has been satisfactory transmission of the current packet and until such transmission has been acknowledged. Each acknowledgment message is checked for the proper sequence number before the next packet is sent when high reliability protocol is used.
- a message is sent to the destination address requesting that a receive protocol channel be - opened. This message is confirmed by a return message including the number of the assigned receive protocol channel; this number is inserted in location 414 of the transmit protocol channel control block 410.
- the interface processor notifies the host processor via an entry in the type field 345 of response queue 340 (FIG. 9) that a transmit protocol channel has been opened and returns the number of the transmit protocol channel in location 344.
- the receiving node at the other end of a protocol channel initializes a receive protocol channel control block such as 460 within a receive protocol channel control block area 450 (EIG. 12) .
- This control block contains the physical address of the transmitting node 461, which, as previously indicated, is the destination address of an acknowledgment packet.
- the sequence number 462 must be initialized to the value indicated in the request to open the receive protocol port.
- the status 463 of the protocol . port, indicating the level of transmission protocol to be used, and the number of the transmit protocol channel 464 corresponding to this receive protocol channel are also initialized.
- the number of the receive protocol channel is also stored in location 388 of the receive queue control block 380 of the corresponding receive port.
- OMPI data packets to both copies. Queries for stored file data, as opposed to update requests, are sent only to the node containing a master copy; a separate destination address is used for such queries.
- update packets are sent to both copies simultaneously, using medium or high reliability protocol, only the interface processor of the node containing the master copy sends acknowledgment packets.
- the interface processor or host processor of the node containing the slave copy keeps track of whether the entire update message was correctly received.
- the slave copy may be separately queried, using a separate destination address, to check whether the update message was correctly received; if not, the update message is retransmitted to the slave copy.
- the master/slave indicator 465 would be marked "master" in the control block of the master t.ode, and "slave” in the control block of the slave node(s).
- the master/slave indicator 465 is set to the "master" state.
- the interface processor of the receiving node then sends a message to the transmitting node confirming the opening of a receive protocol channel and giving the number of the receive protocol channel as part of the control field 214 of packet format 210 (FIG. 3) .
- the host process specifies the transmit protocol channel number 312 as part of any network transmit queue entry 319 (FIG. 7).
- the interface processor inserts
- the interface processor of the receiving node In response to a data packet, the interface processor of the receiving node generates a positive acknowledgment packet confirming proper reception or a negative acknowledgment packet reporting lack of proper reception including an imperfectly received data packet and other problems.
- the network interface of the receiving node transmits the positive or negative acknowledgment packet back to the transmit network interface, identified from field 203 of the original data packet, with the number of the transmit protocol channel, and including a sequence number if high level protocol transmission is used with this protocol channel.
- the destination address 212 (format 210) of this packet is the physical address of the transmit network node.
- a network interface When a network interface receives a message it checks to see if this message is an acknowledgment and if so, finds the number of the transmit protocol channel in order to access data of the transmit protocol channel control block and linked queue (FIG. 11) .
- the acknowledgment message sequence number is compared with the sequence number 412 of the appropriate transmitting protocol channel to check that no packets have been lost. If the acknowledgment is positive, the sequence number 412 is incremented and the protocol channel allows the transmission of the next packet, if any, to commence; if the acknowledgment is negative or missing, the packet is retransmitted using the previous sequence number.
- process 5 associated at this time with process 5 stores a process number 501, a job identification number 502, a transmit port number 503, a transmit protocol channel number 504, the address 505 of a buffer containing the data of a message to be transmitted, an indicator 506 of the size of the packet data, the packet destination address 507 of the message, and a program address 508 associated with response queue entries corresponding to the job identification number stored in location 502.
- the process control block were to be associated with the reception of data, the receive port number would be stored in location 510 and a program address for processing received data stored in location 509.
- the process control block also contains other information not pertinent to this example.
- the process number 501 has been initialized to 5
- the address 505 of the buffer and size 507 of the packet data have been set as a result of the previous processing actions whereby the process generated the data to be transmitted
- the destination address 507 has been initialized to 00000015
- the job identification number 502 has been initialized to 175
- the program address 508 has been initialized to be responsive to responses to the request to send a data packet.
- Process 5 first causes a response queue for a transmit port to be opened and the response queue control block for that transmit port to be initialized.
- Process 5 hunts for an available transmit port by looking over table 230 of queue response program addresses (FIG. 10) to find a port with a blank entry. In this case, port 7 has a blank entry and is selected. Therefore, the response queue control block for transmit port 7 is initialized.
- Locations 351 and 352 are initialized to indicate the starting address and size of the response queue and the load and unload pointers 354 and 355 are initially set to point to the first location in response queue 340.
- Location 353 is initialized to the number of the requesting host processor if there is more than one processor in the node.
- a program address must be initialized in table 230 (FIG. 10) to associate responses from transmit port 7 to the program process controlling that transmit port.
- Host processor 111 next requests the interface processor 153 to open transmit port 7.
- the request is loaded as an entry in network transmit queue 310 (FIG. 7) .
- the job identification number (175) is loaded in location 313, and the representation of a request to open a transmit port is loaded as the type of request in location 317.
- the transmit port number 316 is set to the value 7, previously derived. After these entries have been made in the network transmit queue 310, the load pointer 323 is updated to point to the next network transmit queue entry.
- the interface processor 153 detects a mismatch between unload pointer 324 and load pointer 323, in response to which it processes network transmit queue entries.
- the interface processor processes the present entry, it recognizes that the type of request, stored in location 317, requires the opening of transmit port 7.
- the response to the host process indicating the successful opening of a transmit port is stored in the next available location in the response queue of transmit port 7 specified in the request.
- the response comprises the job identification number (175) , the number of the transmit port (7) just opened in field 344 which is usually used for the transmit protocol channel number, and a type indicator (transmit port opened) .
- the host processor and interface processor always read the type indicator first, and so are able to interpret the contents of a field differently if this is required for a given type of response, request, or packet. This response is then transmitted via the response queue to the requesting process, process 5.
- the entry that is loaded into the network transmit queue contains the following items: the destination address 311 is the physical address of node 9, ffff0009; the job identification number (location 313) is 175; the type of request 317 is a request to open a receive port; and the transmit port number in location 316 is 7.
- the destination address 00000015 which must be transmitted to node 9 in order to tell node 9 which destination address should be associated with its receive port is loaded in location 314, since no buffer space is needed for this message.
- a packet is then sent to node 9 over transmit port 1 using node 9's physical address (ffff0009) as the destination address, the abbreviated form of node 10's physical address (000a) as the source address, and including the destination address 00000015 in the data field 205 of the packet.
- the short data field as well as the header data are set up directly in buffer register 163 by processor 153.
- the request packet is detected by the interface processor of node 9 which checks the type of all incoming data packets. In response to this message node 9 selects an available receive port. For this example, receive port 3 will be selected. Node 9 must initialize an entry in table 390 (FIG.
- This memory includes a receive queue control block such as that shown in the layout of 380 (FIG. 8) which points to receive queue entries such as those shown in the layout of block 370 which in turn point to receive buffers such as block 361.
- the receive queue control block must indicate the starting location of the receive queue 381, the load pointer 387, used to point to the appropriate receive queue entry, the size of each receive buffer such as 361 in location 382, and the size of the receive queue in location 383.
- Node 9 then sends a confirming message to the physical address of node 10 informing node 10 that a receive port has been opened which will be responsive to packet destination address 00000015.
- this message is received at node 10 an entry is made in response queue 340 associated with transmit port 1. The entry will identify the job number 175, and will indicate by the response type that the response was the successful opening of a receive port. This response will be routed to process 5, the process which requested the action.
- a master control node might receive such a request; the master node could send a destination address and open receive port request.
- each node could open its own receive ports and broadcast the corresponding destination addresses to all nodes.
- Host processor 111 next requests the interface processor 153 to open a transmit protocol channel. Since a transmit protocol channel to a common destination can be shared by several transmit ports, the network interface processor compares the destination address with the destination addresses stored in the transmit protocol channel control blocks of all transmit protocol channels in transmit protocol channel control block area 400 (FIG. 11) . If a match were found, a response would be sent via the response queue of transmit port 7 indicating the number of the transmit protocol channel in location 344 (FIG. 10) of the response. Here, no protocol channel exists from node 10 to destination address 00000015, so that a protocol channel must be opened. The request to open a transmit protocol channel passed to the network interface processor via the network transmit queue 310 (FIG.
- ' includes a job identification number in location 313, the transmit port number in location 316, the request to open a protocol channel in type field 317, a timeout limit passed in location 312 and a retransmit limit, passed in location 314.
- the interface processor first examines the type field 317, and can interpret the contents of locations 312 and 314 differently for this request. Assume transmit protocol channel 2 is available and is selected.
- the transmit protocol channel control block 410 (FIG.
- transmit protocol channel 2 must be initialized with the destination address 411 of the receive port associated with the transmit protocol channel, the receive protocol channel number 414 at the receiving network interface, the time out limit 415 associated with individual packets sent on the channel currently associated with a given transmit protocol channel, the limit 417 on the number of repetitions or attempts to send the message before the host is notified that the packet cannot be delivered, and a sequence number 412.
- the network processor after opening the transmit protocol channel makes an entry in the response queue for transmit port 7 reporting the transmit protocol channel number in location 344 and reporting the successful opening of the port via the type field entry in location 345.
- host processor 111 sends a request to network interface processor 153 via an entry in the network transmit queue 310 (FIG. 7) requesting that a receive protocol channel be opened at node 9 to correspond to transmit protocol channel 2.
- the destination address 311 is 00000015
- the transmit protocol channel is 2
- the job identification number is still 175
- the transmit port number is 7,
- the type of request is the request to open a receive protocol channel.
- a message is generated transmitting this data to destination address 00000015.
- the request is detected by the interface processor of node 9 which checks the type of all incoming data packets. In response to this request a receive protocol channel number and a receive protocol channel control block are assigned in node 9-.
- the receive protocol channel number is 6, and the receive protocol channel must be initialized with the physical address of the transmitting node (ffffOOOa, transmitted as an abbreviated physical address in field 203, FIG. 3), the initial sequence number to be used in transmissions over this protocol channel (received as a sequence number in field 204) , the transmit protocol channel (2) corresponding to this receive protocol channel, and the receive port number (3) associated with this receive protocol channel in node 9.
- Node 9 will then send to destination address ffffOOOa (the physical address of node 10) a packet indicating that receive protocol channel number 6 has been opened to correspond with transmit protocol channel 2 of node 10. This information is received in node 10 and loaded into the response queue (FIG. 9) of transmit port 7 to inform the host process (process 5) .
- Transmit port 7 is now ready to transmit high level protocol data packets using destination address 00000015 to receive port 3 of node 9 using its transmit protocol channel 2 of node 10 and the associated receive protocol channel 6 in node 9.
- High level protocol packets can be transmitted in format 200 (FIG. 3) and acknowledged in packets of format 210. All data packets will be checked, acknowledged, and, if necessary, retransmitted up to the limit initialized in 417 of the protocol channel control block 410 (FIG. 11) . All packets have a sequence number which is checked to ensure that no packets are missing or have been received out of sequence.
- the host processor breaks up such messages into groups of single packet messages. For systems in which long messages are more frequent, it would be appropriate to have the interface processor perform the packetizing function.
- the size field (315) of any message in the network transmit queue or transmit protocol channel transmit queue would be examined by the interface processor.
- the processor would keep a current pointer to the transmit buffer, a current packet size indicator, and a flag that a particular message contains more than one packet. After each packet has been sent, this flag would be examined, and if necessary, another packet would be sent.
- the response queue entry would be made only after the full message had been transmitted.
- Acknowledgment packets could be sent back after each packet, after every m packets, or only at the end of the message, according to the needs of a particular application. If two or more of the nodes have an I/O device such as 114 which is a data link to some other data network or to data terminals, then the local data network described herein can be used as a local data switch or as a message switch for a larger global data switching network. Data messages going outside the local data network need a data link destination address for a message. Nodes associated with incoming or two way data links have access to stored translation data to indicate the node associated with any data link destination address.
- a logical channel and, if desired, a protocol channel is set up from the incoming data link node to the outgoing data link node, to transmit the data; this process is the same as that described above for the transmission of other packets between nodes.
- a data link destination address is examined by a data reception process in the I/O controller, such as 113, associated with the incoming packet data link.
- the incoming packet can then be routed, inside another packet of the format used for transmitting packets within the local data network, to a second node connected to the outgoing data link of the destination of the incoming data packet.
- This second node will be initialized to have a receive port, associated with the outgoing data link, to route the packet to appropriate storage, either within an I/O controller, or some shared node storage such as unit 112, prior to transmission to the destination.
- a data transmission process in the second node then controls the transmission of the packet, stripped of its local data network header and check data (fields 201, 202, 203, 204, 206 of FIG. 3) , to the destination via the outgoing data link.
- the fundamental need is the storage in memory or circuitry of the identification of destination addresses associated with packets to be received by a given node.
- the identifications can be stored directly as multi-bit addresses, or as indirect indications such as addresses with selected bits masked, to be compared with the destination address of any packet on the data network medium. Storing each address is convenient since position on a list can be used as an address identification to obtain the desired storage address (receive buffer) for a packet, but any other means of generating the storage address based on a specific destination address, such as a tabular translation arrangement, would also serve the purpose.
- the content addressable memory can be used directly to translate from a packet destination address to the desired storage address, by storing each desired address directly in association with the corresponding destination address instead of storing the receive port number as in the present implementation.
- the level of the protocol retained throughout a series of packets and transmitted with each packet, determines the type of check and acknowledgment.
- data concerning acknowledgment requests could be initialized in a receiving node when a receive port or receive protocol channel is set up and not transmitted with each packet.
- Flexible types of acknowledgment requests are readily implementable in this type of system.
- data concerning acknowledgments is sent with each packet. It is also possible to associate acknowledgment request data in each node with each receive port. The messages requesting initialization of a port and/or protocol channel would pass the acknowledgment requirement data which would then be initialized in the control blocks of a port and protocol channel.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Procédé et appareil permettant de relier d'une manière flexible les points nodaux (9, 10, n) d'un réseau local de données afin d'obtenir une transmission internodale fiable de données tout en réduisant au minimum la charge supplémentaire du traitement des données sur les processeurs principaux de chaque point nodal. Un processeur d'interface (100) est situé à chaque point nodal pour commander la transmission et la réception de paquets de données et la communication de données provenant et en direction de l'emplacement dans le stockage de points nodaux associés avec les processus des programmes qui génèrent et reçoivent les données. Différents protocoles sont disponibles pour différents types de messages et sont commandés par le processeur d'interface de manière à obtenir une fiabilité élevée de la transmission de données là où elle est nécessaire. Les adresses de destination sont associées à chaque paquet de données pour assurer un acheminement flexible des données.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46438383A | 1983-02-07 | 1983-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1984003192A1 true WO1984003192A1 (fr) | 1984-08-16 |
Family
ID=23843725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1984/000054 WO1984003192A1 (fr) | 1983-02-07 | 1984-01-17 | Interface pour un reseau de donnees |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0137804A4 (fr) |
CA (1) | CA1223326A (fr) |
WO (1) | WO1984003192A1 (fr) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0150084A2 (fr) * | 1984-01-03 | 1985-07-31 | Texas Instruments Incorporated | Architecture de processeur pour la commande intelligente d'adaptateurs de communication de données |
EP0184423A2 (fr) * | 1984-12-03 | 1986-06-11 | Westinghouse Electric Corporation | Appareil et méthode de commande universelle de processus |
EP0193305A2 (fr) * | 1985-02-13 | 1986-09-03 | Texas Instruments Incorporated | Interface pour coupler un microprocesseur standard avec un adaptateur de communication |
EP0255857A2 (fr) * | 1986-05-23 | 1988-02-17 | Hitachi, Ltd. | Système de processeurs multiples |
EP0285334A2 (fr) * | 1987-04-02 | 1988-10-05 | Advanced Micro Devices, Inc. | Récepteur/émetteur asynchrone et universel |
CH667543A5 (en) * | 1985-04-19 | 1988-10-14 | Bbc Brown Boveri & Cie | Data communication for processing network - using stored table in communication unit for each node defining data segment storage location |
EP0378071A2 (fr) * | 1989-01-10 | 1990-07-18 | Bull HN Information Systems Inc. | Multiprocesseur de commande avec mémoire de commande partagée |
EP0410860A1 (fr) * | 1989-07-27 | 1991-01-30 | Bull S.A. | Dispositif passerelle de connexion d'un bus d'ordinateur à un réseau fibre optique en forme d'anneau |
GB2200818B (en) * | 1987-02-09 | 1991-04-10 | Intel Corp | Global serial channel for microcontroller |
EP0436931A1 (fr) * | 1990-01-11 | 1991-07-17 | Alcatel Business Systems | Transmission de messages sur bus partagé |
GB2243057A (en) * | 1990-04-12 | 1991-10-16 | Apple Computer | Ring interconnect system architecture |
WO1992006436A2 (fr) * | 1990-10-03 | 1992-04-16 | Thinking Machines Corporation | Systeme d'ordinateur parallele |
US5165019A (en) * | 1990-05-29 | 1992-11-17 | Apple Computer, Inc. | Ring interconnect system architecture |
US5301322A (en) * | 1986-05-23 | 1994-04-05 | Hitachi, Ltd. | System for converting job/process identifiers into processor/process identifiers in transferring data between processes in a multiprocessor system |
EP0597691A1 (fr) * | 1992-11-12 | 1994-05-18 | International Business Machines Corporation | Dispositif de file d'attente et procédé d'opération |
EP0598510A2 (fr) * | 1992-11-18 | 1994-05-25 | Canon Kabushiki Kaisha | Méthode et appareil pour déterminer adaptativement le format de paquets de données transportés sur un réseau local |
EP0602769A2 (fr) * | 1992-12-18 | 1994-06-22 | Fujitsu Limited | Système multiprocesseur |
EP0642246A2 (fr) * | 1993-09-08 | 1995-03-08 | Hitachi, Ltd. | Méthode de communication de réseau et système de réseau |
WO1996003822A1 (fr) * | 1994-07-21 | 1996-02-08 | Allied Telesyn International Corp. | Appareil et procede pour interfacer un reseau |
EP0739119A2 (fr) * | 1991-03-29 | 1996-10-23 | Mitsubishi Denki Kabushiki Kaisha | Appareil pour tampon de mémoire |
EP0753817A1 (fr) * | 1995-07-10 | 1997-01-15 | International Business Machines Corporation | Procédé et dispositif de communication de données |
WO1997038512A1 (fr) * | 1996-04-08 | 1997-10-16 | Ford Motor Company | Procede et circuit d'interface pour communication multiplexe |
DE19628426A1 (de) * | 1996-07-15 | 1998-01-29 | Deutsche Telekom Mobil | Verfahren und Anordnung zur Verknüpfung von Kommunikationsnetzen |
EP0841776A1 (fr) * | 1996-11-12 | 1998-05-13 | Sony Corporation | Méthodes de communication et appareil électronique associée |
EP1014643A2 (fr) * | 1998-12-04 | 2000-06-28 | Hitachi, Ltd. | Appareil pour l'interface de réseau |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4354263A (en) * | 1979-06-13 | 1982-10-12 | Herve Bordry | Computer-communications concentrator for transmission and switching of packetized data |
US4408323A (en) * | 1981-06-29 | 1983-10-04 | Bell Telephone Laboratories, Incorporated | Processor facilities for integrated packet and voice switching |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4441162A (en) * | 1981-04-22 | 1984-04-03 | Pitney Bowes Inc. | Local network interface with control processor & DMA controller for coupling data processing stations to common serial communications medium |
IL66667A (en) * | 1981-10-02 | 1985-06-30 | Hughes Aircraft Co | Method of routing messages between a plurality of data processing units |
-
1984
- 1984-01-17 WO PCT/US1984/000054 patent/WO1984003192A1/fr not_active Application Discontinuation
- 1984-01-17 EP EP19840900784 patent/EP0137804A4/fr active Pending
- 1984-01-30 CA CA000446317A patent/CA1223326A/fr not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4354263A (en) * | 1979-06-13 | 1982-10-12 | Herve Bordry | Computer-communications concentrator for transmission and switching of packetized data |
US4408323A (en) * | 1981-06-29 | 1983-10-04 | Bell Telephone Laboratories, Incorporated | Processor facilities for integrated packet and voice switching |
Cited By (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0150084A3 (en) * | 1984-01-03 | 1988-03-23 | Texas Instruments Incorporated | Architecture for intelligent control of data communication adapters |
EP0150084A2 (fr) * | 1984-01-03 | 1985-07-31 | Texas Instruments Incorporated | Architecture de processeur pour la commande intelligente d'adaptateurs de communication de données |
EP0184423A2 (fr) * | 1984-12-03 | 1986-06-11 | Westinghouse Electric Corporation | Appareil et méthode de commande universelle de processus |
EP0184423A3 (en) * | 1984-12-03 | 1988-09-28 | Westinghouse Electric Corporation | Universal process control device and method |
EP0193305A2 (fr) * | 1985-02-13 | 1986-09-03 | Texas Instruments Incorporated | Interface pour coupler un microprocesseur standard avec un adaptateur de communication |
EP0193305A3 (fr) * | 1985-02-13 | 1989-01-18 | Texas Instruments Incorporated | Interface pour coupler un microprocesseur standard avec un adaptateur de communication |
CH667543A5 (en) * | 1985-04-19 | 1988-10-14 | Bbc Brown Boveri & Cie | Data communication for processing network - using stored table in communication unit for each node defining data segment storage location |
EP0255857A3 (en) * | 1986-05-23 | 1990-10-31 | Hitachi, Ltd. | Parallel computer system having convertors from program identification codes to processor identification codes |
EP0255857A2 (fr) * | 1986-05-23 | 1988-02-17 | Hitachi, Ltd. | Système de processeurs multiples |
US5301322A (en) * | 1986-05-23 | 1994-04-05 | Hitachi, Ltd. | System for converting job/process identifiers into processor/process identifiers in transferring data between processes in a multiprocessor system |
GB2200818B (en) * | 1987-02-09 | 1991-04-10 | Intel Corp | Global serial channel for microcontroller |
EP0285334A2 (fr) * | 1987-04-02 | 1988-10-05 | Advanced Micro Devices, Inc. | Récepteur/émetteur asynchrone et universel |
EP0285334A3 (en) * | 1987-04-02 | 1989-09-06 | Advanced Micro Devices, Inc. | Universal asynchronous receiver-transmitter |
EP0378071A2 (fr) * | 1989-01-10 | 1990-07-18 | Bull HN Information Systems Inc. | Multiprocesseur de commande avec mémoire de commande partagée |
EP0378071A3 (fr) * | 1989-01-10 | 1991-08-28 | Bull HN Information Systems Inc. | Multiprocesseur de commande avec mémoire de commande partagée |
EP0410860A1 (fr) * | 1989-07-27 | 1991-01-30 | Bull S.A. | Dispositif passerelle de connexion d'un bus d'ordinateur à un réseau fibre optique en forme d'anneau |
FR2650412A1 (fr) * | 1989-07-27 | 1991-02-01 | Bull Sa | Dispositif passerelle de connexion d'un bus d'ordinateur a un reseau fibre optique en forme d'anneau |
EP0436931A1 (fr) * | 1990-01-11 | 1991-07-17 | Alcatel Business Systems | Transmission de messages sur bus partagé |
GB2243057A (en) * | 1990-04-12 | 1991-10-16 | Apple Computer | Ring interconnect system architecture |
GB2243057B (en) * | 1990-04-12 | 1995-01-04 | Apple Computer | Ring interconnect system architecture |
US5165024A (en) * | 1990-04-12 | 1992-11-17 | Apple Computer, Inc. | Information transfer and receiving system with a ring interconnect architecture using voucher and ticket signals |
US5165019A (en) * | 1990-05-29 | 1992-11-17 | Apple Computer, Inc. | Ring interconnect system architecture |
WO1992006436A3 (fr) * | 1990-10-03 | 1992-10-15 | Thinking Machines Corp | Systeme d'ordinateur parallele |
US5333268A (en) * | 1990-10-03 | 1994-07-26 | Thinking Machines Corporation | Parallel computer system |
WO1992006436A2 (fr) * | 1990-10-03 | 1992-04-16 | Thinking Machines Corporation | Systeme d'ordinateur parallele |
US5768625A (en) * | 1991-03-29 | 1998-06-16 | Mitsubishi Denki Kabushiki Kaisha | Vehicle based LAN a communication buffer memory having at least one more number of storage areas for receive status and source address than the number of areas for receive data |
EP0739118A3 (fr) * | 1991-03-29 | 1997-10-29 | Mitsubishi Electric Corp | Appareil de communication |
EP0739119A2 (fr) * | 1991-03-29 | 1996-10-23 | Mitsubishi Denki Kabushiki Kaisha | Appareil pour tampon de mémoire |
EP0739119A3 (fr) * | 1991-03-29 | 1997-09-10 | Mitsubishi Electric Corp | Appareil pour tampon de mémoire |
EP0739118A2 (fr) * | 1991-03-29 | 1996-10-23 | Mitsubishi Denki Kabushiki Kaisha | Appareil de communication |
EP0597691A1 (fr) * | 1992-11-12 | 1994-05-18 | International Business Machines Corporation | Dispositif de file d'attente et procédé d'opération |
EP0598510A3 (fr) * | 1992-11-18 | 1995-02-01 | Canon Information Syst Inc | Méthode et appareil pour déterminer adaptativement le format de paquets de données transportés sur un réseau local. |
EP0598510A2 (fr) * | 1992-11-18 | 1994-05-25 | Canon Kabushiki Kaisha | Méthode et appareil pour déterminer adaptativement le format de paquets de données transportés sur un réseau local |
US5696899A (en) * | 1992-11-18 | 1997-12-09 | Canon Kabushiki Kaisha | Method and apparatus for adaptively determining the format of data packets carried on a local area network |
EP0602769A2 (fr) * | 1992-12-18 | 1994-06-22 | Fujitsu Limited | Système multiprocesseur |
US5557744A (en) * | 1992-12-18 | 1996-09-17 | Fujitsu Limited | Multiprocessor system including a transfer queue and an interrupt processing unit for controlling data transfer between a plurality of processors |
EP0602769A3 (en) * | 1992-12-18 | 1995-11-02 | Fujitsu Ltd | A multiprocessor system. |
KR100326864B1 (ko) * | 1993-09-08 | 2002-06-22 | 가나이 쓰도무 | 네트워크통신방법및네트워크시스템 |
EP0642246A3 (fr) * | 1993-09-08 | 1995-12-13 | Hitachi Ltd | Méthode de communication de réseau et système de réseau. |
EP0642246A2 (fr) * | 1993-09-08 | 1995-03-08 | Hitachi, Ltd. | Méthode de communication de réseau et système de réseau |
WO1996003822A1 (fr) * | 1994-07-21 | 1996-02-08 | Allied Telesyn International Corp. | Appareil et procede pour interfacer un reseau |
US5615340A (en) * | 1994-07-21 | 1997-03-25 | Allied Telesyn Int'l Corp. | Network interfacing apparatus and method using repeater and cascade interface with scrambling |
EP0753817A1 (fr) * | 1995-07-10 | 1997-01-15 | International Business Machines Corporation | Procédé et dispositif de communication de données |
US5752078A (en) * | 1995-07-10 | 1998-05-12 | International Business Machines Corporation | System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory |
US5881063A (en) * | 1996-04-08 | 1999-03-09 | Ford Motor Company | Half-message based multiplex communication interface circuit which uses a main microcontroller to detect a match in addresses and generate a qualified signal |
WO1997038512A1 (fr) * | 1996-04-08 | 1997-10-16 | Ford Motor Company | Procede et circuit d'interface pour communication multiplexe |
DE19628426A1 (de) * | 1996-07-15 | 1998-01-29 | Deutsche Telekom Mobil | Verfahren und Anordnung zur Verknüpfung von Kommunikationsnetzen |
DE19628426C2 (de) * | 1996-07-15 | 2001-06-07 | Deutsche Telekom Mobil | Verfahren zur Verknüpfung von Kommunikationsnetzen |
EP0841776A1 (fr) * | 1996-11-12 | 1998-05-13 | Sony Corporation | Méthodes de communication et appareil électronique associée |
US6108718A (en) * | 1996-11-12 | 2000-08-22 | Sony Corporation | Communication method and electronic apparatus thereof |
US6779138B2 (en) | 1998-04-12 | 2004-08-17 | Hitachi, Ltd. | Highly reliable distributed system |
EP1014643A2 (fr) * | 1998-12-04 | 2000-06-28 | Hitachi, Ltd. | Appareil pour l'interface de réseau |
EP1014643A3 (fr) * | 1998-12-04 | 2002-12-18 | Hitachi, Ltd. | Appareil pour l'interface de réseau |
US6591380B1 (en) | 1998-12-04 | 2003-07-08 | Hitachi, Ltd. | Means for comparing sent data on the transmission side of a network in a highly reliable distributed system |
US7036050B2 (en) | 1998-12-04 | 2006-04-25 | Hitachi, Ltd. | Highly reliable distributed system |
US7356739B2 (en) | 1998-12-04 | 2008-04-08 | Hitachi, Ltd. | System and program for controlling a distributed processing system |
Also Published As
Publication number | Publication date |
---|---|
EP0137804A1 (fr) | 1985-04-24 |
EP0137804A4 (fr) | 1987-10-12 |
CA1223326A (fr) | 1987-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4654654A (en) | Data network acknowledgement arrangement | |
WO1984003192A1 (fr) | Interface pour un reseau de donnees | |
US4692918A (en) | Reliable local data network arrangement | |
US6493343B1 (en) | System and method for implementing multi-pathing data transfers in a system area network | |
EP0479478B1 (fr) | Réseau de communication arrangé pour des messages orientés connexion et orientés sans connexion | |
EP0393898B1 (fr) | Dispositif de mémoire-tampon programmable pour la classification par ordre de priorités des messages de données | |
US4715030A (en) | Local area network bridge | |
US5805808A (en) | Real time parser for data packets in a communications network | |
US5619497A (en) | Method and apparatus for reordering frames | |
US5396490A (en) | Packet reassembly method and apparatus | |
US4287592A (en) | Method and apparatus for interfacing stations in a multiloop communications system | |
US6308218B1 (en) | Address look-up mechanism in a multi-port bridge for a local area network | |
US5590122A (en) | Method and apparatus for reordering frames | |
US5856972A (en) | Duplicate message detection method and apparatus | |
US6148004A (en) | Method and apparatus for establishment of dynamic ESCON connections from fibre channel frames | |
EP0195598B1 (fr) | Récepteur de données fonctionnant avec un protocole universel | |
JPH03130863A (ja) | 制御要素転送システム | |
JPH06511615A (ja) | パケット送信システム内でパケット・シーケンスを維持するための方法および装置 | |
JPH05153194A (ja) | 通信制御装置における緩衝域連鎖の方法およびその装置 | |
US6804767B1 (en) | Method and system for automatic address table reshuffling in network multiplexers | |
EP0094177B1 (fr) | Appareil pour la transmission directe mémoire à mémoire entre ordinateurs | |
EP0639016A2 (fr) | Système de traitement de données multi-nodal | |
US8072884B2 (en) | Method and system for output flow control in network multiplexers | |
US7076517B2 (en) | Serial communication device with dynamic filter allocation | |
KR100261887B1 (ko) | Pci 버스를 이용한 데이터 인터페이스 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AL | Designated countries for regional patents |
Designated state(s): DE FR GB |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1984900784 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1984900784 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1984900784 Country of ref document: EP |