CA2152637C - Network for transferring consecutive packets between processor and memory with a reduced blocking time - Google Patents

Network for transferring consecutive packets between processor and memory with a reduced blocking time

Info

Publication number
CA2152637C
CA2152637C CA002152637A CA2152637A CA2152637C CA 2152637 C CA2152637 C CA 2152637C CA 002152637 A CA002152637 A CA 002152637A CA 2152637 A CA2152637 A CA 2152637A CA 2152637 C CA2152637 C CA 2152637C
Authority
CA
Canada
Prior art keywords
packets
data
input
output
ports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002152637A
Other languages
French (fr)
Other versions
CA2152637A1 (en
Inventor
Yuuki Date
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CA2152637A1 publication Critical patent/CA2152637A1/en
Application granted granted Critical
Publication of CA2152637C publication Critical patent/CA2152637C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Abstract

For making in a parallel computer system an interconnection network transfer data sequences, each composed of consecutive packets, from input ports (17) to a destination port indicated among output ports (19) by a routing address specified by a leading packet of each data sequence, control registers (31) hold the routing address of a privileged sequence determined by arbiters (39) in response to such addresses held in the control registers and stored in control buffers (33), Data of the consecutive packets of the privileged sequence are simultaneously stored in and produced from data buffers (37). Controlled by the arbiters, input selectors (41, 43) select the data for delivery to the destination port through output buffers (55) and output selectors (57) controlled by a selector operating arrangement (59-63).
When the data of the consecutive packets are not yet wholly stored in the data buffers, the input selectors select only those already stored in the data buffers and then select the data of remaining ones of the consecutive packets as soon as they reach the data buffers.

Description

2 1 ~ 3 7 NETWORK FOR TRANSFERRING CONSECUTIVE
PACKETS BETWEEN PROCESSOR AND MEMORY
WITH A REDUCED BLOCKING TIME

BACKGROUND OF THE INVENTION:
This invention relates to an interconnecting network for use in a parallel computer system in transferring between a processor unit and a memory unit consecutive packets representative of data.
A recent trend in electronic digital computers is to use as a parallel computer system a great number of computer units in parallel. The parallel computer system comprises a plurality of processors collectively as a processor unit and a plurality of memories as a memory unit. Data sequences are bidirectionally transferred between the processor unit and the memory unit through interconnection networks.
In the manner described in an invited paper cor.tributed by Takao Takeuchi and two others to the IEICE Transactions, Volume E 74, No. 4 (April 1991), pages 752 to 760, under the title of "Suitch Architectures and Technologies for Asynchronous Transfer Mode", each data sequence is transmitted through an interconnection network as consecutive packets, Various interconnection networks are already known. Each interconnection network has a first plurality of input ports and a second plurality of output ports.

The first plurality may be equal to the second plurality.
As will later be described more in detail, the data sequences are supplied to the input ports. Each data sequence ~526~7 comprises a leading packet among the consecutive packets to specify one of the output ports that should be supplied with the data sequence under consideration.
Control buffers are connected to the input ports, respective-ly, to store the leading packets of the data sequences. Databuffers are connected to the input ports, respectively. Each data buffer stores the leading packet and others of the consecutive packets of the data sequence supplied to one of the input ports that is connected to the data buffer in question. The leading packet and the others of consecutive packets are stored collectively as stored packets. A selector unit is connected to the data buffers and to the output ports to sele^t one of the data buffers that should deliver the stored packets to a certain one of the output ports.
Each of arbiters, equal in number to the control buffers, is connected to the control buffers and to the selector unit.
With reference to the leading packets stored in the control buffers to specify one of the outputportS in common as a destination port, the arbiters determine one of the data buffers at a time that should deliver the stored packets as output packets to the distination port. In this manner, the arbiters give a priority right for each of the output ports to one of the data sequences to make this one of the data sequences serve as a privileged sequence. The interconnection network serves as a cross-point device operable in machine cycles.
If the privileged sequence and a different sequence of the data sequences are supplied to two of` the input ports earlier and later in one machine cycle to have a destination port in common, the selector unit selects the stored packets of the privileged sequence. Having produced these stored packets as the output packets, the selector unit selects the stored packets of the different sequence, If the privileged sequence consists of N consecutive packets, where N represents a natural number, the consecutive packets of the different sequence must be kept in the data buffer therefor during N machine cycles. In this mannert this conventional irterconnection network is operable with an unduly long blocking time of overloading the interconnection network. The conventional interconnection network has a low throughput or internal link speed to adversely aIfect performances of the processor unit and of the parallel computer system.
SUMMARY OE THE INVENTION:
It is consequently an object of the present invention to provide an interconnection network for use in a parallel computer system in transferring data sequences, each data sequence composed of consecutive packets, between a processor unit and a memory unit with a high throughput.
It is another ob,je^t of this invention to provide an interconnection network which is of the type described and which can transfer a fresh sequence of the data sequences with a short blocking time when the fresh sequence should be transferred while a current sequence of the data sequences is transmitted, It is still another ob,ject of this invention to provide an interconnection network which is of the type described and which does not adversely affect performance of a precessor unit of the parallel co~puter system.

It is yet another object of this invention to provide an interconnection network which is of the type described and which does not adversely affect performance of the parallel computer system.
Other objects of this invention will become clear as the description proceeds, In accordance with this invention, there is provided an interconnection network which is for use between a processor unit and a memory unit of a parallel computer system in transferring data sequences from a first plurality of input ports to a second plurality of output ports with each data sequence of the data sequences composed of consecutive packets and routed to one of the output ports that is specified by a leading packet of the consecutive packets and which comprises: (A) input buffer means connected to the input ports for storing at least a leading portion of the data sequence with the consecutive packets of the leading portion stored as primary stored packets to simultaneously produce the primary stored packets in one machine cycle as supply packets;
(B) input selector means connected to the input buffer means for selecting primary selected packets from the supply packets to produce the primary selected packets and for selecting, as soon as a remaining portion of the data sequence reaches the input buffer means, secondary selected packets from the consecutive packets of the re~aining portion to produce the secondary selected packets; and (C) output buffer means connected to the input selector means and to the output ports for storing the primary and the secondary selected packets collectively as secondary stored packets to produce the secondary stored packets as output packets for - 21~6~7 delivery to the above-mentioned one of output ports.
BRIEF DES5RIPTION OF THE DRA~ING:
Fig. 1 is a block diagram of a parellel computer system comprising an interconnection network to which the instant invention is applicable;
Fig. 2 is a block diagram of a conventional interconnection network Fig. 3 is a block diagram of an interconnection network according to an embodiment of this invention;
Fig. 4 is a block diagram of a first arbiter for use in the interconnection network illustrated in Fig. 3;
Fig. 5 shows a truth table for use in describing operation of an enamble signal generator used in the first arbiter depicted in Fig. 4;
Fig. 6 shows a truth table for use in describing operation of a request arbiter used in the first arbiter illustrated in Fig. 4;
Fig. ~ shows a selection logic table for use in describing operation of a first selector used in the interconnection network illustrated in Fig. 3;
Fig. 8 shows a selection logic table for use in describing operation of a second selector used in the interconnection network depicted in Fig. 3;
Fig, 9 is a block diagram of a secord arbiter for use in the interconnection network depicted in Fig. 3; and Fig. 10 shows a truth table for use in describing operation of an enable sigral generator used in the second arb~ter depicted in Fig. 9.

DESC~IPTION OF THE PREFERRED EM30DIMENT:
Referring to Eig, 1, a parâllel computer system comprises an interconnection network 11 to which the present invention is applicable. In Fig. 1, the parallel computer system comprises first and second processors 13(1) and 13(2) which are herein referred to collectively âS a processor unit 13, First and second common memories 15(1) and 15(2) are collectively referred to as a memory unit 15, Each of the first and the second common memories 15 (suffixes (1) and (2) omitted) is for use in co.~mon by the processor unit 13, ~irst and second input ports 17(1) and 17(2) are interposed between the interconnection network 11 and the first and the second processors 13 (suffixes (1) and (2) omitted), First and second output ports 19(1) and 19(2) are interposed between the interconnection network 11 and the first and the second common memories 15, In general, the interconnection network 11 is for use in transferring data sequences from a first plurality P of input ports l? to a second plurality of output ports 19, A~though the input ports 17 are connected in Fig, 1 to the processor units 13, the input ports 17 may be connected to the memory unit 15 with the output ports 19 connected to the processor unit 13 to transfer reply data as the consecutive packets from the memory unit 15 to the processor unit 13, Each data sequence is composed of from two to four consecutive packets, namely, of up to a predeter-mined number N of consecutive packets, The consecutive pac~ets of the data sequen_es are delivered to the input ports 17 in an asy~nchronous manner. The interconnection network 11 is, however, operable ln machine cycles. It is therefore 21~2637 possible to understand that the input ports 17 are supplied with the consecutive pacXets of the data sequences in respective machine cycles, The data sequences are routed to desired ones of the output ports 19.
The input ports 17 are identified by first through P-th input port numbers. It is possible to understand without loss of ~enerality that the first through the P-th input port numbers are in an ascending order. The output ports 19 are identified by first through Q-th routing addresses. Each data sequence comprises a leading or foremost packet among the conse~utive packets, The leading packet specifies a validity bit and a particular address among the first through the Q-th routing addresses.
The validit~y bit is a binary bit and indicates by a binary one bit that data of the leading packet and others of the consecutive packets are valid. The validity bit of a binary zero bit indicates that such data are invalid. If the output ports 19 are only two in number as illustrated, each routing address is represented also by a binary bit with the first and the second output ports indicated by the binary zero and one bits. The binary one and zero bits will alternatively be referred to as having binary one and zero levels.
Turning to Fig. 2, a conventional interconnection network will be described in order to facilitate an understanding of an interconnection network according to this invention. Like in Fig. 1, the conventional interconn~ction network is for use in transferring between the first and the second input ports 17(1) and 1~(2) and the first and the second output ports 19(1) and 19(2) the data sequences of the type described in conjunction 21~2~7 with Fig. 1. It should be noted that each of the first and the second input ports 17 is depicted in duplicate merely for convenience of illustration.
The conventional interconnection network comprises first and second control buffers 21(1) and 21(2) connected to the first and the second input ports 17. Supplied to the first and the second input ports 17, first and second sequences of the data sequences comprise the leading packets, Each leading packet represents a datum and specifies the Yalidity bit and one of the routing addresses collectively as a control signal.
The first and the second control buffers 21 (suffixes (1) and (2) omitted) are for temporarily storing the control signals of the first and the second sequences as stored signals.
~onnected to the first and the second input ports 17, first and second data buffers 23(1) and 23(2) are for storing the data of the leading and the others of consecutive packets of the first and the second sequences as stored data. The data of the first sequence is routed to one of the first and the second output ports 19 that is specified by the routing address indi^ated by the leading packet of the first sequence. The data of the second sequence are routed to one of the first and the second output ports that is specified by the routing address indicated by the leading packet of the second sequence.
When the leaiing packets indica~ive of one of the output ports 19 in common in the ~irst and the second sequences are received by the first and the second input ports 17 substantially concurrently, namely, in one machine cycle, only one of the first and the second sequences must first be dealt with. The other of the first and the second sequences must be processed after processing of the above-mentioned one of the first and the second sequences. One of such data sequences is consequently given a priority right and is used as a privileged sequence. It is possible to give the priority right to the data sequence received by one port of the input ports 17 that is identified by a smallest one of the first through the P-th input port numbers among the input port numbers given to ones of the input ports 17 supplied with the data sequences under consideration, respectively.
Each of first and second arbiters 25(1) and 25(2) is connected to the first and the second control buffers 21. Each of first and second selectors 27(1) and 27(2) is connected to the first and the second data buffers 23 (suffixes (1) and (2) omitted), The first and the second selectors 27 (suffixes (1) and (2) omitted) are connected to the first and the second output ports 19 and therefore correspond to the first and the second output ports 19, The first and the second arbiters 25(1) and 25(2) will either collectively or individually be designated by a simple reference numeral 25.
It will be assumed that the leading packets of the data sequences are received ln one machine cycle by some or all of the input ports 17 and that the data sequences shouid be routed to one of the output ports 19 that is identified by a common address indicated by the leading packets of the data sequences.
Under the circumstances, the first and the second arbiters 25 refer to the control signals stored in the first and the second control buffers 21 as regards the common address and as regards the input port numbers of the input ports 17 in question and ~152~37 judge the priority right of each data sequence to determine one of the data sequences as the privileged sequence and to produce a first and a second arb~ter signal for delivery to the first and the second selectors 27.
One of the first and the second arbiter signals indicates one of the first and the second data buffers 23 and one of the first and the second output ports 19, This one of the first and the second data buffers 23 is loaded with the leading and the other packets of the privileged sequence. This one of the output ports 19 is the destination port and corresponds to one of the first and the second selectors 27, Controlled by one of the first and the second arbiter signals, this one of the first and the second selectors 27 selects the leading and the other packets of the privileged sequence as output packets for delivery to the destination port in successive machine cycles, It will be presumed that the privileged sequence consists of N consecutive packets, In this event, a different sequence of the data se,quences under consideration must be kept in the other of the first and the second data buffers 23 as long as N machine cycles. The conventional interconnection network accordingly has a low throughpet and is operable with a long blocking time, Referring now to Fig, 3, the description will proceed to an interconnection network according to a preferred embodiment of this invention. Similar parts are designated by like reference numerals. It will be assumed merely for simplicity of illustration that the input ports 17 are the first and the second input ports 17(1) and 17(2), that the output ports 19 are the first and the second output ports 19(1) and 19(2), and that each data sequence consists of first and second packets as the consecutive packets, The first packet is the leading packet described in the foregoing.
The second packet is a data packet. The leading packets of the data sequences are supplied to the first and the second input ports 1~ in respective machine cycles. Like the first and the second input ports 17, the first and the second output ports 19 are depicted in duplicate, Connected to the first and the second input ports 17, first and second control registers (CREG) 31(1) and 31(2) are for holding, while locked or contents-held as will later be described, the control signals of the leading or the first packets of the data sequences received by the first and the second input ports 17, The first and the second control registers 31(1) and 31(2) will either collectively or individually be designated by a single reference numeral 31, This manner of designation will be used throughout the following, Among each control signal, the validity bit and the routing address will be denoted by V and RA, The control signal therefore represents combinations (V, RA), The first and the second output ports 19(1) and 19(2) will be identified by the first and the second routing addresses of the binary zero and one bits, As a result, the control signal represents one of the combinations (0, 0), (1, 0), (1, 1), and so forth at a time for the example being illustrated.
While locked, each of the first and the second control registers 31 holds the control sign~l as a held signal and produces the held signal, In this manner, the first and the second control registers 31 produce first and second held signals ~ 0 and 21~2637 312-o, Connected to the first and the second control registers 31, first and second control buffers (CBUF) 33(1) and 33(2) or 33 store the first and the second held signals as first and second stored signals and produce the first and the second stored signals as indicated at 331-o and 332-o, Connected to the first and the second input ports 17, first and second data registers (DREG) 35(1) and 35(2) or 35 are for holding during one machine cycle the data of the leading packets of the data sequences received by the first and the second input ports 17 at the respective machine cycles. In this manner, the first and the second data buffers 35 hold first and second held data, At a next machine cycle, each of the first and the second data registers 35 holds as another held datum the datum of the seoond packet of the data sequence supplied to a pertinent 15 one of the first and the second input ports 17, More in general, first through (N-l)-th primary data registers are serially connected to the first input port:l7(1) collectively as a first data register unit 35(1), Similarly, first through (N-l)-th secondary data registers are cornected to the second input port 17(2) as a second data register unit 35(2), Each of the first and the second data register units 35 holds the data of the consecutive packets of a relevent one of the data sequences during (N - 1) machine cycles in total, At a further subsequent machine cycle, each of the data register 25 units 35 produces a data train of the data of the first through the ~-th consecutive packets from points of serial connection of the first through the (N-l)-th data registers and a pertinent one of the input ports 17 in a "packet-serial" manner, In this manner, the first and the second data register units 35 produce primary and secondary held packets 351-0 and 352-0.
In the example being illustrated, first and second data buffers (DBUF) l?(l) and 37(2) or 37 are connected to the 5 first and the second data registers 35 and to the first and the second input ports 17. Each of the first and the second data buffers 37 stores the data of the leading and the other consecutive packets of the data sequence received by the pertinent one of the input ports 17. When taken into consideration, the data of the first through the N-th consecutive packets of each data sequence are simultaneously stored ir. a concerned one of the first and the second data buffers 37 as its primary stored data which are herein called primary stored packets. The first and the second data buffers 37 produce their primary stored packets simultaneously in one machine cycle in a "packet-parallel" fashion as first and second primary stored packets 371-o and 372-0.
In the manner which will presently become clear, first and second arbiters 39(1) and 39(2) or 39 correspond to the first and the se_ond output ports l9 and are operable differently from 20 the first and the second arbiters 25 described in conjunction with Fig. 2. Each of the first and the second arbiters 39 is cross connected to the first and the second control registers 31 and to the first and the second control buffers 33. The first arbiter 39(1) produces primary first and second arbiter signals 391-1 and 391-2 and a primary zeroth arbiter signal 391-0. The second arciter 39(2) produces secondary first and second arbiter signals 392-1 and 392-2 and a secondary zeroth arbiter signal 392-o .

2152~37 It will again be assumed that the first and the second sequences are supplied to the first and the second input ports 17, respectively, with the leading packets of the first and the second sequences received in one machine cycle to specify the 5 common address as the particular address and that each of the first and the second sequences consists of the first and the second packets. Referring to the common address and to the first and the second input port numbers, the first and the second arbiters 39 give the priority right to the first sequence and determine the first sequence as the privileged sequence.
In such an event, each of the control signals of the first and the second sequences represents the combination (1, O). If no data sequence precedes the first sequence at the first input port 17(1), the first control register 31(1) produces the 15 control signal of the first sequence while locked. The control signal is not stored in the first control buffer 33(1), which keeps its output signal quiescent, namely, at 0. The control signal of the second sequence is not produced from the second control register 31(2) but is stored in the second control buffer 20 33(2). The data of the first and the second packets are successively produced from the first data register or register unit 35~1) and are not stored in the first data buffer 37(1). Irrespective of presence and absence of a data sequence preceding the privileged sequence, the first and the second packets are not produced from 25 the second data register or register unit 35(2) but are stored simultaneously in the second data buffer 37(2). Output si~nals of the second control register 31(2), the second data re~ister unit 35(2), and the second data buffer 37(2) are all quiescent.

If followed by the privileged or the first sequence and preceded by no data sequence, a preceding sequence of the data sequences is processed by the interconnection network.
In the meanwhile, the control signal of the privileged sequence 5 is stored in the first control buffer 33(1) as a stored signal.
The data of the first and the second packets of the privileged sequence are simultaneously stored in the first data buffer 37(1) as stored data. After the preceding sequence is dealt with, the first control register 31(1) is locked. The first control buffer 33(1) produces the combination. Immediately subsequently, the first data buffer 37(1) simultaneously produces the stored data, Output signals of the first control register 31(1) and the second register unit 35(2) are both quiescent.
Eike the first and the second arbiters 39, first primary and secondary selectors 41(1) and 41(2) or 41 corres~ond to the first and the second output ports 19. The first primary and secondary selectors 41 are controlled by the primary and the secondary first arbiter signals. Each of the first primary and secondary selectors 41 is cross connected to the first and the 20 second data register units 35 and to the first and the second data buffers 37. Second primary and secondary selectors (SEL) 43(1) and 43(2) or 43 are serially connected to the first primary and secondary selectors 41 and are controlled by the primary and the secondary arbiter signals. In the .~anner which will 25 shortly be described, the first primary selector 41(1) produces first primary and secondary selected signals 411-0 and 411-1.

The first secondary selestor 41(2) produces second primary and secondary selected signals 412-0 and 412-1. The second primary ~1~26~7 and secondary selectors 43 produce primary and secondary second selected signals 431-o and 432-o.
Turning to Fig. 4 during a short while with Fig. 3 continuously referred to, the first ar~iter 39(1) comprises a 5 first enable signal generator 45(1) supplied from the first and the second control buffers 33 with stored si~nals of the first and the second trains 331-o and 332-o and from the first and the second control registers 31 with held signals of the first and the second data trains 311-0 and 332-0. hs will presently become clear, the first enable slgnal generator 45(1) produces first through fourth primary enable signals 451-0, 451-1, 451-2, and 451-3 which are given a logic one level only when the validity bit V is the binary one bit and the routing address RA is the binary zero bit indicative of the first output port 19(1) in 15 the control signal supplied from one or the other of the first and the second control buffers 33 and of the first and the second control registers 31.
Connected to the first enable signal generator 45(1) and accompanied by first and second primary loops, a first request 20 arbiter 47(1) is controlled by the first through the fourth primary enable signals and by first and second prim~ry loop input signals 491-o and 511-o. The first and t.he second primary loops include first and second primary flip-flops 49(1) and 51(1). The first request arbiter 47(1) produces the prim~ry zeroth through second arbiter signals 391-o to 391-2 and first and second primary loop output si~nals 391-3 and 391-4.
In the manner which will presently become clear, the first and the second primary loop output signals are given the 21~2637 logic one level when the privileged sequen_e is the data sequence supplied to the first and the second input ports 17, respectively.
The first and the second prlmary loop output signals are branched to primary first and second branches 53(11) ar,d 53(12) or 53 5 and are supplied through connections not shown in Fig. 3 to the first and the second control registers 31. When given the logic one level, the first and the second primary loop output signals make corresponding ones of the first and the second control registers 31 keep the control signals of the leading packets supplied thereto, Furthermore, the first and the second primary loop output s~gnals of the logic one level put the first and the second primary flip-flops 49(1) and 51(1) on or in a lit state and thereby give the logic one level to the first and the second primary loop output signals.
Further turning to Figs. 5 and 6 with Figs, 3 and 4 15 continuously referred to, truth tables are shown for the first enable signal generator 45(1) and the first request arbiter 47(1).
In Fig. 6, ea^h crisscross indicates "don't care". It is now readily possible to make up such tables for the first arbiter 39(1) for three or more input ports 17 and to implement the first arbiter 39(1) as oy a microcomputer.
Still further turning to Figs. 7 and 8 with Figs. 3 through 6 continuously referred to, selection logic tables are shown for the first and the second primary selectors 41(1) and 43(1). Those for the first and the second secondarl selectors 41(2) and 43(2) are similar provided that the control signals and the selected data are reworded accordingly.
Referring now to Fig, 9 and again to Figs, 3 and 4, the second arbiter 39(2) is similar in structure and operation 21~2637 to the first arbiter 39(1), A little more in detail, a second enable signal generator 45(2) is supplied from the first and the second control buffers 33 and from the first and the second control registers 31 with the control signals as indicated.
A second request arbiter 47(2) is connected to the second enable signal generator 45(2) to supply the first and the second secondary selectors 41(2) and 43(2) with the control signals as depicted and to produce the secondary zeroth arbiter signal. Accompanied by the second request arbiter 47(2), first and second secondary flip-flops 49(2) and 51(2) are connected to the first and the second control registers 31, Like the prim2r~ first and second branches 53, secondary first and second branches 53(21) and 53(22) or 53 supply first and second secondary loop output signals to the first and the second control registers 31, It is now readily 15 possible to implement third and other arbiters 39 when the output ports 19 are three or more in number, Turning to Fig. 10 with Figs. 3 to 9 again referred to, a truth table for the second enable signal generator 45(2) is similar to that shown in ~ig. 5. Another truth table for 20 the second request arbiter 47(2) is similar to that of Fig. 6 and is omitted. Selection logic tables for the first and the second secondary selectors 41(2) and 43(2) are si~lar to those of Figs, 7 and 8 and are no more shoHn, It is now readily possible to make up such truth tables and selection logic tables when 25 the output ports 19 are three or more in number.
Turning back to Fig. 3, description of the interconnection network will be continued. Prior to such a further description, the above-described operation of the interconnection network will be reviewed.
It is assumed as above that the interconnection network has the first and the second input ports 17 and the first and the second output ports 19. The first and the second input ports 1~ are supplied with the first and the second sequences, each consisting of the first and the second packets.
It will first be presumed that both the first and the second sequences should be routed to the first output port 19(1), In this event, the first arbiter 39(1) is put in operation.
If the first sequence is given the priority ri~ht as the privileged sequence, the first primary flip-flop 49(1) is turned on to keep the control signal of the privileged sequence in the first control register 31(1). The first primary selector 41(1) selects the first packet of the privileged sequence and will select in a next subsequent machine cycle the second packet of the privileged sequence. In this machine cycle, the control signal of the privileged sequence is kept in the first control register 31(1). It is consequently possible for the first primary selector 41(1) to select the second packet with no delay.
If the se^ond sequence is given the priority right, the second primary flip-flop 51(1) is turned on to keep the control si~nal` of the second sequence in the second control register 31(2). The second pri.~ary selector 41(2) therefore selects the second pa-ket of the second sequence with no delay after having selected the first packet OI the second sequence.

It will now be presumed that both the f~rst and the second sequences should be routed to the se~ond output port 19(2).

In this event, the second arbiter 39(2) is put in operation.

21~637 If the first sequence is given the priority right, the first secondary flip-flop 49(2) is lit to keep the control sigr.al of the first sequence in the first control register 31(1).
The first secondary selector 41(2) selects the first packet of the first sequence and will select in a next subsequent machine cycle the second packet of the first sequence. Inasmuch as the control signal is kept in the first control register 31(1), this selector 41(2) sele_ts the second packet with no delay.
If the second sequence is the privileged sequence, the second secondary flip-flop 51(2) is lit to keep the control signal of the second sequence in the second control register 31(2). The first secondary selector 41(2) selects the second packet of the second sequence with no delay.
It will now first be surmised that the first primary selector 41(1) selects one of the first and the second data register units 35. In a first machine cycle, this selector 41(1) selects the first packet of a selected sequence of the first and the second sequences as the first primary selected signal 411-0.
In a ~econd machine cycle, the second packet of the selected sequence is selected as the first primary selected signal. The second primary selector 43(1) is for selecting in the second machine cycle the first primary selected signal as the primary second selected signal 431-0.
It will next be surmised that the first secondary selector 41(2) selects one of the first and the second data register units 35. In a first machine cycle, this selector 41(2) selects the first packet of the selected seqllence as the first secondary selected signal 412-0. In a second machine cycle, the second 21~2637 packet of the selected sequence is selec~ed as the first secondary selected signal. The second secondary selector 43(2) is for selecting in the second machine cycle the first secondary selected signal as the secondary second sele^ted signal 4~2-o, In the interconnection network being illustrated, first and second output buffers 55(1) and 55(2) or 55 are connected to the second primary and secondary selectors 43 and therefore correspond to the first and the second output ports 19. The first and the se-ond packets of the privileged sequence are stored either packet serially or in packet parallel in one of the first and the second output buffers 55 that corresponds to the above-mentioned one of the output ports 19, In this manner, the consecutive packets of the privile~ed sequence are stored in one or the other of the output buffers 55 as secondary stored packets and are 15 pro.1uced as secondary supply packets. For conYenience of the description which follows, the first and the second packets of the privileged sequence are referr~d to as first and second primary output buffered signals 551-0 and 551-1 when produced from the first output buffer 55(1). When produced from the second output 20 buffer 55(2), such packets are called first and second secondary out?ut buffered si~nals 552-o and 552-1. When stored in packet serial in a correlated one of the output buffers 55, the second packet is preferably stored in a memory word for the first packet without destruction of the first packet.
~irst and second output selectors 57(1) and 57(2) or 57 are connected to the first and the second output b-~ffers 55 and to the first ard the second output ports 19. In t'ne manner described in the following, the first and the second output selectors 21~26~7 57 are controlled by first and second output selector control signals to select the secondary supply packets as output packets for delivery to the above-mentioned one of the output ports 19 in packet serial, Produced from the first and the second output selectors 57, primary and secondary output packets are indicated by 571-0 and 572-0, Select logic tables for the first and the second output selectors 57 are not different from that shown in Fig, 10 except for the control signals and the selected data and will not be described any longer, Produced from the first and the second arbiters 39, the primary and the secondary zeroth arbiter sig~als 391-0 and 392-0 ~ndicate the validity bit V and, instead of the routing address RA, a reply routing address RRA. This routin~ address represents the input port number of one of the input ports 17 that should re^eive the privileged sequence and is equal to the routing address indicative of the destination port, Such validity bits and reply routing addresses are stored in first and second additional buffers 59(1) and 59(2) or 59, The reply routing addresses are delivered to the first and the second output ports 19 in synchronism with delivery of the first packet of the privileged sequence to the destination port and are used in the memory unit 15 described in con,junction with Fig. 1. In response, the memory unit 15 produces the reply data which are described bef`ore in connection with Fig. 1 and are transferred to the input port in question through another interconnection network described hereinabove.
From the first and the second additional buffers 59, the validity bits atored therein are delivered to first ~input terminals of first and second two-input Al~-D gates 61(1) and 61(2) or 61, First and second output signals of the first and the second AND gates 61 are supplied to first and second cor.trol flip-flops 63(1) and 63(2) or 63, each of which has an inverter output terminal and which hold first and second control flags.
Produced through the inverter output terminals, the first and the second control flags are delivered to second input terminals of the first and the second AND gates 61 in a machine cycle next following the machine cycle in which the first packets are selected by the first and the second output selectors 57.
The gates 61 produce the first and the second output si~nals as the first and the second output selector control signals which are now indicated by labels 611-o and 612-0, On selecting the first packet of the privileged sequence by one of the first and the second output selectors 57, the first and the second additional buffers 59 produce the validity bit of the binary one level. The gates 61 give the binary one level to the first and the second output selector control signals and to the first and the second control flags. ~n a next machine 20 cycle, the binary zero bits are supplied to the second input terminals of the gates 61. Irrespective of the validity bits produced from the first and the second additional buffers 59, the binary zero level is given to the first and the seoond out?ut selector control signals to make the first and the secnnd outp~t 25 selectors 57 select the second and subsequent pac~ets supplied from the first and the second out~ut bu~fers 55.

It is now understood that combinatior!s OI the first and the second additional buffers 59, the first and the second AND ~ates 61, ar.d the first and the second control f'lip-flops 63 serve as serial operating means for making the first and the second output selectors 57 produce the output packets in packet serial. It is readily possible to adapt the serial operating means to each data se~uence composed of up to N consecut~ve packets.
While this invention has thus far been described in specific con,junction with a single preferred embodiment thereof, it is possible for one skilled in the art to put this inventlon into practice in various other manners, For example, it is possible t~ use the first through the P-th input port numbers of a descending order or of a certain prescribed order, In this event, the privileged sequence is what is received by one of the input ports 17 that is identified by the input port number of a predetermined one among the input port numbers of the prescribed order when two or more data sequences are received by ones of the input ports 17 with the leading packets of these data sequences received in one machine cycle to indicate a common address of the routing addresses. It is possible to make the interconnection network deal with data sequences which are composed of different numbers of consecutive packets and more than ~our consecutive packets,

Claims (10)

1. An interconnection network for use between a processor unit an a memory unit of a parallel computer system in transferring data sequences from a first plurality of input ports to a second plurality of output ports with each data sequence of said data sequences composed of consecutive packets and routed to one of said input ports that is specified by a leading packet of said consecutive packets, said interconnection network comprising:
input buffer means connected to said input ports for storing at least a leading portion of said data sequence with the consecutive packets of said leading portion stored as primary stored packets to simultaneously produce said primary stored packets in one machine cycle as supply packets;
input selector means connected to said input buffer means for selecting primary selected packets from said supply packets to produce said primary selected packets and for selecting, as soon as a remaining portion of said data sequence reaches said input buffer means, secondary selected packets from the consecutive packets of said remaining portion to produce said secondary selected packets; and output buffer means connected to said input selector means and to said output ports for storing said primary and said secondary selected packets collectively as secondary stored packets to produce said secondary stored packets as output packets for delivery to said one of output ports,
2. An interconnection network as claimed in Claim 1, wherein said input ports are connected to said processor unit, (Claim 2 continued) said output ports being connected to said memory unit.
3. An interconnection network as claimed in Claim 1, wherein said input ports are connected to said memory unit, said output ports being connected to said processor unit.
4. An interconnection network as claimed in Claim 1, wherein said input selector means judges a priority right given to each of said data sequences to determine the data sequence having said priority right as a privileged sequence and to select said supply packets as said primary selected packets and the consecutive packets of said remaining portion as said secondary selected packets when the primary stored packets are the consecutive packets of the leading portion of said privileged sequence.
5. An interconnection network as claimed in Claim 1, said input ports being identified by first through P-th input port numbers of an ascending order and receiving said data sequences with the leading packets of said data sequences received in respective machine cycles, where P represents said first plurality, said output ports being identified by first through Q-th routing addresses, where Q represents said second plurality, the leading packet of each data sequence specifying one of said routing addresses, wherein said input buffer means comprises:
control registers connected to said input ports, respectively, for holding the routing addresses of said leading packets to produce the routing addresses held therein as held addresses;
control buffers connected to said control registers, respectively, for storing said held addresses as stored addresses;

(Claim 5 continued) data register units connected to said input ports, respectively, for holding the consecutive packets of said data sequences during a predetermined number of machine cycles to produce the consecutive packets held therein as held packets;
and data buffers connected to said input ports, respectively, and to said data register units, respectively, for storing said held packets as said primary stored packets to simultaneously produce said primary stored packets in one machine cycle as said supply packets,
6. An interconnection network as claimed in Claim 5, said one of output ports being identified by a particular address among said routing addresses, ones of said input ports receiving preceding sequences of said data sequences with the leading packets of said preceding sequences received earlier in one machine cycle to specify a common address as said particular address than the leading packets specifying said common address in others of said data sequences, wherein said input selector means judges one of said preceding sequences as said privileged sequence when said one of preceding sequences is received by one port of said ones of input ports that is identified by a smallest one of said first through said P-th input port numbers among the input port numbers given to said ones of input ports.
7. An interconnection network as claimed in Claim 6, said supply packets being primary supply packets, wherein said input selector means comprises:

(Claim 7 continued) arbiter means connected to said control registers and said control buffers for determining said one of preceding sequences as said privileged sequence to produce a first and a second arbiter signal. said first arbiter signal indicating one of said data register units and one of said data buffers that are connected to said one port, said second aroiter signal indicating through said output buffer means said one of output ports first input selector means connected to said data register units, said data buffers, and said aroiter means for selecting the consecutive packets stored in said one of data buffers as primary input selector selected packets and the consecutive packets held in said one of data register units as secondary input selector selected packets; and second input selector means connected to said arbiter means, said first input selector means, and said output buffer means for selecting said secondary selected packets as secondary supply packets to deliver said secondary supply packets to said one of output ports.
8, An interconnection network as claimed in Claim 7, further comprising content holding means connected to said arbiter means and said control registers for making said one of control registers hold said held address until said aroiter means determines said one of preceding sequence as said privileged sequence.
9, An interconnection network as claimed in Claim 8, wherein said output buffer means comprises:

(Claim 9 continued) output buffers connected to said second input selector means and corresponding to said output ports, respectively, for storing said primary and said secondary selected packets collectively as said secondary stored packets to produce said secondary stored packets as said secondary supply packets; and output selector means connected to said arbiter means, said output buffers, and said output ports for selecting said output packets from said secondary supply packets for delivery to said one of output ports.
10. An interconnection network for use between a processor unit and a memory unit of a parallel computer system in transferring data sequences from a first plurality of input ports to a second plurality of output ports with each of said data sequences composed of consecutive packets and routed to one of said output ports that is specified by a leading packet of said consecutive packets, said interconnection network comprising:
input buffer means connected to said input ports for storing the consecutive packets of each data sequence packet by packet as primary stored packets to simultaneously produce said primary stored packets in one machine cycle as supply packets selector means connected to said input buffer means for selecting said supply packets as selected packets and for selecting a leading and a remaining portion of said supply packets collectively as said selected packets, said leading portion being selected when all the consecutive packets of said each data sequence are not stored in said input buffer means, said remaining portion being selected as soon as each of the consecutive packets of (Claim 10 continued) said each data sequence reaches said input buffer means: and output buffer means connected to said selector means and to said output ports for storing said selected packets as secondary stored packets to produce said secondary stored packets as output packets for delivery to said one of output ports.
CA002152637A 1994-06-27 1995-06-26 Network for transferring consecutive packets between processor and memory with a reduced blocking time Expired - Fee Related CA2152637C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP145100/1994 1994-06-27
JP6145100A JP2644185B2 (en) 1994-06-27 1994-06-27 Data processing device

Publications (2)

Publication Number Publication Date
CA2152637A1 CA2152637A1 (en) 1995-12-28
CA2152637C true CA2152637C (en) 1999-08-17

Family

ID=15377378

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002152637A Expired - Fee Related CA2152637C (en) 1994-06-27 1995-06-26 Network for transferring consecutive packets between processor and memory with a reduced blocking time

Country Status (6)

Country Link
US (1) US5857078A (en)
EP (1) EP0690390B1 (en)
JP (1) JP2644185B2 (en)
BR (1) BR9502279A (en)
CA (1) CA2152637C (en)
DE (1) DE69519825T2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295563B2 (en) * 2001-10-01 2007-11-13 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have ordering requirements
US7274692B1 (en) 2001-10-01 2007-09-25 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have multiple destinations
US7221678B1 (en) * 2001-10-01 2007-05-22 Advanced Micro Devices, Inc. Method and apparatus for routing packets
US7353317B2 (en) * 2004-12-28 2008-04-01 Intel Corporation Method and apparatus for implementing heterogeneous interconnects
JP5691555B2 (en) * 2011-01-25 2015-04-01 日本電気株式会社 Interconnected network control system and interconnected network control method
US9137173B2 (en) * 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
US11275632B2 (en) 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN113010173A (en) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 Method for matrix data broadcasting in parallel processing
CN113094099A (en) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 Matrix data broadcast architecture
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320502A (en) * 1978-02-22 1982-03-16 International Business Machines Corp. Distributed priority resolution system
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses
US4724520A (en) * 1985-07-01 1988-02-09 United Technologies Corporation Modular multiport data hub
JPH01221042A (en) * 1988-02-29 1989-09-04 Toshiba Corp Congestion control method for packet exchange
US4862454A (en) * 1988-07-15 1989-08-29 International Business Machines Corporation Switching method for multistage interconnection networks with hot spot traffic
US5053942A (en) * 1988-11-01 1991-10-01 The Regents Of The University Of California Bit-sliced cross-connect chip having a tree topology of arbitration cells for connecting memory modules to processors in a multiprocessor system
DE69030640T2 (en) * 1989-11-03 1997-11-06 Compaq Computer Corp Multiprocessor arbitration in single processor arbitration schemes
JPH077975B2 (en) * 1990-08-20 1995-01-30 インターナショナル・ビジネス・マシーンズ・コーポレイション System and method for controlling data transmission
US5251209A (en) * 1991-03-28 1993-10-05 Sprint International Communications Corp. Prioritizing attributes in integrated services networks
US5313458A (en) * 1991-06-03 1994-05-17 Fujitsu Limited Traffic control system
US5339313A (en) * 1991-06-28 1994-08-16 Digital Equipment Corporation Method and apparatus for traffic congestion control in a communication network bridge device
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
MX9308193A (en) * 1993-01-29 1995-01-31 Ericsson Telefon Ab L M CONTROLLED ACCESS ATM SWITCH.

Also Published As

Publication number Publication date
EP0690390A3 (en) 1996-01-17
CA2152637A1 (en) 1995-12-28
US5857078A (en) 1999-01-05
DE69519825D1 (en) 2001-02-15
JP2644185B2 (en) 1997-08-25
JPH0818565A (en) 1996-01-19
DE69519825T2 (en) 2001-08-02
EP0690390B1 (en) 2001-01-10
EP0690390A2 (en) 1996-01-03
BR9502279A (en) 1996-02-27

Similar Documents

Publication Publication Date Title
US5117420A (en) Method and apparatus for routing message packets
US4701906A (en) Packet switching network with multiple packet destinations
EP0198010B1 (en) Packet switched multiport memory nxm switch node and processing method
CA1263729A (en) Delta network of a cross-point switch
EP0381671B1 (en) Method and apparatus for routing message packets
CA1089107A (en) Channel bus controller
CA2152637C (en) Network for transferring consecutive packets between processor and memory with a reduced blocking time
JPS62503208A (en) Self-routing packet switching network with sequential packet distribution function
JPH02234543A (en) Digital switch board and message conbining switch and its operating method
JP2830833B2 (en) Communication method between processors and processor used therefor
JPH02237248A (en) Exchanging method in multistage mutual connection network
CA2000145C (en) Data transfer controller
US5420982A (en) Hyper-cube network control system having different connection patterns corresponding to phase signals for interconnecting inter-node links and between input/output links
EP0322116B1 (en) Interconnect system for multiprocessor structure
US5257385A (en) Apparatus for providing priority arbitration in a computer system interconnect
JP2853652B2 (en) Packet transmitting method and apparatus in inter-processor communication
JPS63172362A (en) Inter-processor communication system
CA2002104C (en) Vector processing apparatus
KR940005025B1 (en) Packet type switch element for multi-step connection
JP2878160B2 (en) Competitive mediation device
JP2882304B2 (en) Multiprocessor system
JP2976700B2 (en) Synchronous control method between processors
JP2731738B2 (en) Multiprocessor system
KR100253504B1 (en) Controlling apparatus of atm switch having selection circuit
JPH1091589A (en) Inter-processor synchronization controller

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed