WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Modular crossbar interconnection metwork for data transactions between system units in a multi-processor system    
United States Patent4968977   
Link to this pagehttp://www.wikipatents.com/4968977.html
Inventor(s)Chinnaswamy; Kumar (Milford, MA); Flynn; Michael E. (Grafton, MA); Polzin; R. Stephen (Holden, MA)
AbstractFor efficiently handling data transactions between various system units (CPUs, I/O units and main memory units) in a multi-processor system, the system units are linked via a plurality of expandable crossbar modules, each providing a set of interconnections or well-defined mappings between the sets of input and output nodes, with each output being defined in terms of only one input. In addition to the nodes provided at the input and output sections, each crossbar module is also provided with discrete input and output expansion portions through which the module may be linked to other identically configured crossbar modules when additional nodes are to be integrated into the system. The expansion ports allow serial linking of crossbar modules so as to establish a connection between source and destination nodes which are spread across different crossbar modules. The serially-linked expansion ports realize direct mapping between all system nodes in the form of a two-stage network; the basic crossbar design remains the same and there is no need for the problematic redesign of crossbar modules for accommodating added data transfer nodes. The modular crossbar design is particularly adapted for use with different system configurations having different numbers of communication nodes and permits a system to be upgraded by adding communication nodes by using additional identically configured crossbar modules.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Chinnaswamy; Kumar (Milford, MA); Flynn; Michael E. (Grafton, MA); Polzin; R. Stephen (Holden, MA)
Owner/Assignee     Digital Equipment Corporation (Maynard, MA)
Patent assignment
All assignments
Publication Date     November 6, 1990
Application Number     07/306,336
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     February 3, 1989
US Classification     340/2.24 370/351
Int'l Classification     H04O 011/00
Examiner     Yusko; Donald J.
Assistant Examiner     Magistre; Dervis
Attorney/Law Firm     Arnold, White & Durkee
Address
Parent Case    
Priority Data    
USPTO Field of Search     340/825.02 340/825.79 340/825.8 340/825.5 340/826 340/825.04 370/58.1 379/271 379/272 379/273 379/274 379/291 379/292 379/306 364/133 364/134
Patent Tags     modular crossbar interconnection metwork data transactions between units multi-processor
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3637944



[0 after 0 votes]
4845722
Kent
370/388
Jul,1989

[0 after 0 votes]
4821034
Anderson
340/2.22
Apr,1989

[0 after 0 votes]
4752777
Franaszek
340/2.24
Jun,1988

[0 after 0 votes]
4706150
Lebizay
340/825.5
Nov,1987

[0 after 0 votes]
4695999
Lebizay
370/217
Sep,1987

[0 after 0 votes]
4692917
Fujioka
370/392
Sep,1987

[0 after 0 votes]
4653085
Chan
379/93.14
Mar,1987

[0 after 0 votes]
4635250
Georgiou
370/380
Jan,1987

[0 after 0 votes]
4616358
Rehm
370/388
Oct,1986

[0 after 0 votes]
4577308
Larson
370/212
Mar,1986

[0 after 0 votes]
4417244
Melas
340/2.22
Nov,1983

[0 after 0 votes]
4173713
Giesken
370/374
Nov,1979

[0 after 0 votes]
4038638
Hwang
340/2.22
Jul,1977

[0 after 0 votes]
3916380
Fletcher
340/2.26
Oct,1975

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a multi-processing system of the kind having a system control unit (SCU) for operating a plurality of system units in a parallel fashion, said system units including a plurality of central processing units (CPUs), at least one input/output (I/O) unit and at least one main memory unit (MMU), interconnection means for establishing communication paths for data transactions between system units designated by communication commands as source and destination nodes, said interconnection means comprising:

at least two crossbar modules, each module adapted to establish a direct path or mapping between one of a fixed number of source nodes and one of the same fixed number of destination nodes defined thereupon, the source and destination nodes provided on one crossbar module corresponding to different ones of said system units than those provided on other crossbar modules,

each of said modules including at least one expansion source node and at least one corresponding expansion destination node through which the crossbar modules are connectable in such a way as to establish a data path between source nodes defined on one of said crossbar modules and destination nodes defined on another of said crossbar modules,

wherein said interconnection means further comprises:

means for accepting control commands designating the source and destination nodes for executing a data transaction,

means for determining whether the designated source and destination nodes are defined on a single crossbar module or are defined on separate crossbar modules,

means for generating a control signal to said single crossbar module containing both the source and destination nodes in order to establish the required data path by a direct mapping between said nodes, and

means for generating separate control signals to each of said crossbar modules on which the source and destination nodes are separately defined in order to establish the required data path by an indirect mapping between said nodes, said indirect mapping being established by (i) a first sub-mapping between the designated source node and the expansion node of the crossbar module containing said source node and (ii) a second sub-mapping between the designated destination node and the expansion node of the crossbar module containing said destination node.

2. The multi-processing system of claim 1 wherein said interconnection means further includes means for generating, for a selected time period, a busy signal indicating that the source node, the destination node, and the expansion nodes being used at a given time for establishing a data transaction path are unavailable for establishing other transaction paths.

3. The multi-processing system of claim 2 wherein the control commands accepted by the interconnection means include a size command defining a period of time for which the required transaction path needs to be established, and wherein said means provided within said interconnection means for generating said busy signal generates said signal for predefined periods of time for certain predefined data transactions, and for other data transactions generates the busy signal on the basis of said size commands.

4. The multi-processing system of claim 1 wherein the system comprises four CPUs, two MMUs, two I/O units, and one service processor unit (SPU), and wherein the interconnection means comprises two crossbar modules, each crossbar module being adapted to provide interconnections between up to five source and destination nodes, respectively corresponding to two CPUs, one I/O unit, one MMU, and one SPU.

5. A multi-processing computer system comprising:

a plurality of system units, said system units including a plurality of central processing units (CPUs), at least one input/.output (I/O) unit, and at least one main memory unit (MMU); and

interconnection means for establishing communication paths for data transactions between system units designated by communication commands as source and destination nodes, said interconnection means including:

at least two crossbar modules; each module including means for establishing a direct path between one of a fixed number of source nodes and one of the same fixed number of destination nodes defined thereupon, and at least one expansion source node and at least one corresponding expansion destination node, the expansion source and expansion destination nodes of one crossbar module being connected to the expansion destination and expansion source nodes, respectively, of the other module for enabling a data path to be established between source nodes defined on one crossbar module and destination nodes defined on the other crossbar module;

means for accepting control commands designating the source and destination nodes for executing a data transaction,

means for determining whether the designated source and destination nodes are defined on a single crossbar module or are defined on separate crossbar modules,

means for generating a control signal to said single crossbar module containing both the source and destination nodes in order to establish the required data path by a direct mapping between said nodes; and

means for generating separate control signals to each of said crossbar modules on which the source and destination nodes are separately defined in order to establish the required data path by an indirect mapping between said nodes, said indirect mapping being established by (i) a first sub-mapping between the designated source node and the expansion node of the crossbar module containing said source node and (ii) a second sub-mapping between the designated destination node and the expansion node of the crossbar module containing said destination node.

6. The multi-processing system of claim 5 wherein the control commands accepted by the interconnection means include a size command defining a period of time for which the required transaction path needs to be established, and wherein said means provided within said interconnection means for generating said busy signal generates said signal for predefined periods of time for certain predefined data transactions, and for other data transactions generates the busy signal on the basis of said size commands.

7. The multi-processing system of claim 6 wherein the control commands accepted by the interconnection means include a size command defining the period of time for which the required transaction path needs to be established, and wherein said means provided within said interconnection means for generating said busy signal generates said signal for predefined periods of time for certain predefined data transactions, and for other data transactions generates the busy signal on the basis of said size commands.

8. The multi-processing system of claim 5 wherein the system comprises four CPUs, two MMUs, two I/O units, and one service processor unit (SPU), and wherein each crossbar module has five source and destination nodes, respectively, connected to two CPUs, one I/O unit, one MMU, and one SPU.

9. In a multi-processing system of the kind having a system control unit (SCU) for operating a plurality of system units in a parallel fashion, said system units including a plurality of central processing units (CUPs), at least one input/output (I/O) unit, and at least one main memory unit (MMU), interconnection means for establishing communication paths for data transactions between system units designated by communication commands as source and destination nodes, said interconnection means comprising:

at least two crossbar modules, each module adapted to establish a direct path between one of a fixed number of source nodes and one of a fixed number of destination nodes defined thereupon, each crossbar module having a respective demultiplexer for each source node and a respective multiplexer for each destination node, each demultiplexer in each crossbar module having an input connected to its respective source node and a respective output for each of the destination nodes in said each crossbar module, each multiplexer in each crossbar module having an output connected to its respective destination node and a respective input connected to a respective output of each of the demultiplexers in said each crossbar module, each of said modules including at least one expansion source node and at least one corresponding expansion destination node, the expansion source node of each module being connected directly to the expansion destination node of another one of the modules, to thereby establish a data path between source nodes defined on one of said crossbar modules and destination nodes defined on another of said crossbar modules; and

control means for operating said demultiplexers and said multiplexers in said modules for executing data transactions between designated source and destination nodes, said control means including

means responsive when the designated source and destination nodes are defined on a single crossbar module for operating the demultiplexer of the designated source node and the multiplexer of the designated destination node in order to establish the required data path by a direct path between the designated source and destination nodes, and

means responsive when the designated source and destination nodes are defined on separate crossbar modules for operating the demultiplexer of the designated source node and the multiplexer of the destination expansion node on a first one of the separate crossbar modules, and for operating the multiplexer of the destination node and the demultiplexer of the expansion source node on a second one of the separate crossbar modules, in order to establish the required data path by an indirect path between said nodes, said indirect path including the expansion destination node on the module having the designated source node, and the expansion source node on the module having the designated destination node.

10. The multi-processing system of claim 9, wherein said interconnection means further includes means for generating, for a selected time period, a busy signal indicating that the source node, the destination node, and the expansion nodes being used at a given time for establishing a data transaction path are unavailable for establishing other transaction paths.

11. The multi-processing system of claim 10, wherein the control commands accepted by the interconnection means include a size command defining a period of time for which the required transaction paths needs to be established, and wherein said means for generating said busy signal generates said signal for predefined periods of time for certain predefined data transactions, and for other data transactions generates the busy signal on the basis of said size commands.;

12. The multi-processing system of claim 10, wherein the system comprises four CPUs, two MMUs, two I/O units, the one service processor unit (SPU), and wherein the interconnection means comprises two crossbar modules, each crossbar module being adapted to provide interconnections between up to five source and destination nodes, respectively corresponding to two CPUs, one I/O unit, one MMU, and one SPU.
 Description Submit all comments and votes
 


RELATED APPLICATIONS

The present application discloses certain aspects of a computing system that is further described in the following U.S. patent applications filed concurrently with the present application: Evans et al., AN INTERFACE BETWEEN A SYSTEM CONTROL UNIT AND A SYSTEM PROCESSING UNIT OF A DIGITAL COMPUTER, Ser. No. 07/306,325 filed Feb. 3, 1989; Arnold et al., METHOD AND APPARATUS FOR INTERFACING A SYSTEM CONTROL UNIT FOR A MULTIPROCESSOR SYSTEM WITH THE CENTRAL PROCESSING UNITS, Ser. No. 07/306,837 filed Feb. 3, 1989; Gagliardo et al., METHOD AND MEANS FOR INTERFACING A SYSTEM CONTROL UNIT FOR A MULTI-PROCESSOR SYSTEM WITH THE SYSTEM MAIN MEMORY, Ser. No. 07,306,326 filed Feb. 3, 1989; D. Fite et al., METHOD AND APPARATUS FOR RESOLVING A VARIABLE NUMBER OF POTENTIAL MEMORY ACCESS CONFLICTS IN A PIPELINED COMPUTER SYSTEM, Ser. No. 07/306,767 filed Feb. 3, 1989; D. Fite et al., DECODING MULTIPLE SPECIFIERS IN A VARIABLE LENGTH INSTRUCTION ARCHITECTURE, Ser. No. 07/307,347 filed Feb. 3, 1989; D. Fite et al., VIRTUAL INSTRUCTION CACHE REFILL ALGORITHM, Ser. No. 07/306,831 filed Feb. 3, 1989; Herman et al., PIPELINE PROCESSING OF REGISTER AND REGISTER MODIFYING SPECIFIERS WITHIN THE SAME INSTRUCTION, Ser. No. 07/306,833 filed Feb. 3, 1989; Murray et al., MULTIPLE INSTRUCTION PREPROCESSING SYSTEM WITH DATA DEPENDENCY RESOLUTION FOR DIGITAL COMPUTERS, Ser. No. 07/306,773 filed Feb. 3, 1989; D. Fite et al., PREPROCESSING IMPLIED SPECIFIERS IN A PIPELINED PROCESSOR, Ser. No. 07,306,849 filed Feb. 3, 1989; D. Fite et al., BRANCH PREDICTION, Ser. No. 07/306,760 filed Feb. 3, 1989; Fossum et al., PIPELINED FLOATING POINT ADDER FOR DIGITAL COMPUTER, Ser. No. 07/306,343 filed Feb. 3, 1989; Grundmann et al., SELF TIMED REGISTER FILE, Ser. No. 07/306,445 filed Feb. 3, 1989; Beaven et al., METHOD AND APPARATUS FOR DETECTING AND CORRECTING ERRORS IN A PIPELINED COMPUTER SYSTEM, Ser. No. 07,306,828 filed Feb. 3, 1989; Flynn et al., METHOD AND MEANS FOR ARBITRATING REQUESTS USING A SYSTEM CONTROL UNIT IN A MULTI-PROCESSOR SYSTEM, Ser. No. 07,306,871 filed Feb. 3, 1989; E. Fite et al., CONTROL OF MULTIPLE FUNCTION UNITS WITH PARALLEL OPERATION IN A MICROCODED EXECUTION UNIT, Ser. No. 07,306,832 filed Feb. 3, 1989; Webb, Jr. et al., PROCESSING OF MEMORY ACCESS EXCEPTIONS WITH PRE-FETCHED INSTRUCTIONS WITHIN THE INSTRUCTION PIPELINE OF A VIRTUAL MEMORY SYSTEM-BASED DIGITAL COMPUTER, Ser. No. 07,306,866 filed Feb. 3, 1989; Hetherington et al., METHOD AND APPARATUS FOR CONTROLLING THE CONVERSION OF VIRTUAL TO PHYSICAL MEMORY ADDRESSES IN A DIGITAL COMPUTER SYSTEM, Ser. No. 07,306,544 filed Feb. 3, 1989; Hetherington et al., WRITE BACK BUFFER WITH ERROR CORRECTING CAPABILITIES, Ser No. 07,306,703 filed Feb. 3, 1989; Flynn et al., METHOD AND MEANS FOR ARBITRATING COMMUNICATION REQUESTS USING A SYSTEM CONTROL UNIT IN A MULTI-PROCESSOR SYSTEM, Ser. No. 07,306,871 filed Feb. 3, 1989; Polzin et al., METHOD AND APPARATUS FOR INTERFACING A SYSTEM CONTROL UNIT FOR A MULTI-PROCESSOR SYSTEM WITH INPUT/OUTPUT UNIT, Ser. No. 07,306,862 filed Feb. 3, 1989; Gagliardo et al., MEMORY CONFIGURATION FOR USE WITH MEANS FOR INTERFACING A SYSTEM CONTROL UNIT FOR A MULTI-PROCESSOR SYSTEM WITH THE SYSTEM MAIN MEMORY, Ser. No. 07,306,404 filed Feb. 3, 1989; and Gagliardo et al., METHOD AND MEANS FOR ERROR CHECKING OF DRAM-CONTROL SIGNALS BETWEEN SYSTEM MODULES, Ser. No. 07/306,836 filed Feb. 3, 1989;

TECHNICAL FIELD

This invention relates generally to multi computer systems in which a plurality of system units including multiple central processor units (CPUs), Input/Output (I/O) units, and main memory units (MMUs) are operated in a parallel fashion. More particularly, this invention relates to an improved interconnection network adapted for use in such a multi-processor system and which provides efficient data transaction linkage between system units.

DESCRIPTION OF RELATED ART

High performance computers have traditionally relied upon the techniques of multi-processing and parallel processing in order to achieve increased computational power by, among other factors, circumventing bottleneck problems resulting from use of a single memory interface through which all data and control information must pass. Parallel architectures, for instance, approach such problems in a variety of ways, ranging from simple replication of conventional architecture to the utilization of completely new machine organizations.

Multi-processor architectures typically comprise a number of processors connected through some form of multi-path communication system to a common shared memory, a shared I/O system, and possibly to each other. High operational speeds and operational redundancy are achieved in high performance systems by provision of multiple communication paths between a plurality of processor units and input/output units along with parallel paths to mass storage and other devices. In a multi-processing system the parallel operation of the plurality of CPUs in conjunction with the system memory units, input/output devices, and other units of the computing system is typically coordinated by a system control unit (SCU) which links all system units ported into it and provides inter-unit communication for efficient exchange of data and related control signals. The SCU keeps all system components active while avoiding inter-unit conflicts and services requests for communications between the system memory and the system units linked through the various ports on the SCU.

Accordingly, one of the important aspects of such a system is to provide an efficient interconnection network linking the various system units that are ported into the SCU. System units in multi-processor systems are generally linked by one of two interconnection techniques: via shared buses or through data switches. A number of factors dictate the choice of one of these techniques for a particular multi-processing application. Shared buses are relatively less expensive but have restricted application because of their inherent time-multiplexed nature of operation which permits only one communication transaction (e.g., a memory to process or contact) to occur at a time. Buses, however, have the advantageous capability of being readily expanded to accept another processor, memory, or other system unit since the interconnection to the bus is necessitated only at a single junction.

Switched networks, on the other hand, allow multiple transactions to be executed concurrently as long as the transactions involved do not relate to the same system unit. More specifically, the processing elements or system units in such networks are interconnected with some kind of switching network with the capacity to transfer many data items simultaneously. A variety of switching networks are conventional and include shuffle networks, augmented data manipulation networks, butterfly switches, and crossbar matrix switches. Crossbar switches, in particular, are commonly used for implementation of a generalized connection network providing a mapping between input and output nodes in such a manner that each input can be switched to any output. However, in interconnected multi-processor systems, the time efficiency resulting from the capability to handle simultaneous multiple communication sessions comes at the expense of switch complexity and the associated increase in cost.

A major disadvantage accruing from the use of switched interconnection networks is the difficulty involved in expanding the number of system nodes beyond a predefined limit. With crossbar switches, for instance, the complexity of connections for "n" modes is given by n.sup.2 ; consequently, the number of connections increases dramatically when new processors and system units are added. As a result, when the node count is high, it becomes necessary to employ complicated multi-stage switching.

A severe restriction associated with crossbar switches is the extreme difficulty in expanding the crossbar to accommodate added system ports. Crossbars are hence designed for specific system configurations; when there is a need for the system configuration to be revised to include additional processors or memory ports, particularly in systems having a modular memory configuration adapted for expandability, a complete redesign of the crossbar network is necessitated.

SUMMARY OF THE INVENTION

For efficiently handling data transactions between various system units in a multi-processor system, the system units are linked via a plurality of expandable crossbar modules, each providing a set of interconnections or well-defined mappings between the sets of input and output nodes, with each output being defined in terms of only one input. In addition to the nodes provided at the input and output sections, each crossbar module is also provided with discrete input and output expansion ports through which the module may be linked to other identically configured crossbar modules when additional nodes are to be integrated into the system. The addition of each new crossbar module functionally replicates the modular capability of the basic crossbar module configuration.

The provision of the expansion ports on each crossbar module accordingly allows a multi-stage interconnection network to simulate the operation of a complete crossbar switch, when a full connection network is desired. It is significant that the provision of the expansion ports on each basic crossbar module permits easy expansion of node-handling capacity without the need for redesigning the crossbar and without the additional full-capacity exchange switches that would be required in a similar multi-stage interconnection network using conventional non-modular crossbars.

According to a preferred embodiment, an interconnection network is provided that permits the SCU to process simultaneous data transactions between units of a multi-processor system, which at its full capacity includes four CPUs, a pair of independently accessible main memory units (MMUs), a pair of input/output (I/O) units, and a console or service processor unit (SPU). Each crossbar module is designed as a 5.times.5 crossbar switch adapted to provide a complete mapping of five input nodes to five output nodes. A single crossbar module is hence capable of switching data transactions between a sub-system comprising a pair of CPUs, a single MMU, and a single I/O unit, and a SPU. Each module is provided with an expansion source node and an expansion destination node for serially linking crossbar modules so as to establish a connection between source and destination nodes which are spread across different crossbar modules.

If the sub-system is to be upgraded to its full capacity, it is merely required that an additional crossbar module be provided, with the expansion ports of the separate crossbar modules being linked together in a serial manner, without the need for additional switching arrangements. The serially-linked expansion ports realize the direct mapping of all system modes in the form of a two-stage network; however, what is important is that the basic crossbar design remains the same and the need to redesign the module to accommodate the added data-transfer nodes is obviated.

The modular arrangement using the expansion ports on each crossbar module can conveniently be expanded to accommodate larger node capacities by the addition of a corresponding number of identical crossbar modules. In all cases, a direct mapping of nodes existing across serially expanded crossbars is realized by a series of sub-mappings providing links respectively between a source node within a given crossbar to the output expansion port thereof, the output expansion port to the input expansion port of a crossbar module which includes the destination node, and finally that input expansion port to the destination node itself.

According to a preferred implementation of the modular crossbar scheme of this invention, incoming data transaction commands are buffered and decoded to identify the source and destination ports. A data switch controller is provided for identifying the need for sub-mappings and in response thereto assigning the sub-mappings required for executing a particular direct mapping. More specifically, the controller monitors the availability of data transaction paths by recognizing when any of the specified source and destination nodes become unavailable for participating in data transactions. More importantly the controller determines whether the two nodes specified for a particular data transaction are ported into the crossbar module forming the initial stage of the interconnection network. If the nodes are part of the same module, data transfer is accomplished by a direct mapping from the source node to the destination node. Otherwise, control is relinquished to an expansion port decoder which identifies the particular crossbar modules in the subsequent stages of the interconnection network in which the designated nodes are defined.

Appropriate sub-mappings are then provided for serially linking the expansion ports of the crossbar modules identified as housing the ports for the source and the destination nodes. In physical terms, the sub-mappings establish a sequential, yet direct link for transfer of data to or from a requesting source node and a designated destination node. The details involved in implementing a modular crossbar arrangement of the type discussed above , including the identification of the need to address expansion ports, the decoding process for identifying modules containing a source and destination nodes, and the generation of sub-mappings linking the nodes will be discussed in detailed below.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the drawings in which:

FIG. 1 is a simplified block diagram illustrating a multi-processor computer system in which a system control unit (SCU) is provided with an interconnection network for linking a plurality of processors and input/output (I/O) units together and to a shared memory;

FIG. 2 is a simplified illustration of a preferred interconnection network in the form of a pair of crossbar modules serially linked through expansion ports for use with the multi-processor system of FIG. 1;

FIG. 3 is a detailed schematic diagram of the basic modular composition of a crossbar module illustrating the manner in which input nodes are mapped onto output nodes including the expansion nodes;

FIG. 4 is a block diagram illustrating data transaction commands recognized by a data switch controller and responsive control signals generated by the data switch controller for controlling the crossbar modules;

FIG. 5 is a table illustrating the preferred control inputs for defining the source/destination ports for the two-staged arrangement of crossbar modules shown in FIG. 3;

FIG. 6 is a table illustrating the preferred control inputs for defining sub-sources and sub-destinations for crossbar modules when sub-mappings are needed to execute communication requests;

FIG. 7 is a block diagram of a preferred modular construction for the data switch controller of FIG. 4; and

FIG. 8 is a flowchart illustrating the arbitration of communication requests and the response of the data switch controller to granted requests for controlling the crossbar modules for establishing the requested data transaction paths between system units.

While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that it is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Turning now to the drawings and referring in particular to FIG. 1, there is shown a simplified block diagram of a multi-processor computer system 10 which uses a plurality of central processing units (CPUs) 12 and is adapted to permit simultaneous operation of the system CPUs, in combination with a plurality of input/output (I/O) units 14, by allowing the system units to share a common main memory 16 for the system. The I/O units 14 are used to permit the processing system in general and the CPUs in particular to communicate with the external world through an appropriate I/O interface (not shown) associated with the units. The main memory 16 itself typically comprises a plurality of memory modules or units 16A and 16B. A system control unit (SCU) 18 links the CPUs 12 and I/O units 14 to the main memory 16 and to each other through an interconnection network 20. The SCU 18 also uses the interconnection network 20 to link the various system modules to a service processor/console unit (SPU) 22 which performs traditional console functions including status determination and the control of the overall operation of the processing system.

In the multi-processor system of FIG. 1, efficient communication between system units linked through the SCU 18 and the main memory 16, and more particularly between each system CPU 12 and each system I/O unit 14 and the individually addressable segments comprising each memory unit 16A, 16B is handled through dedicated interface means 24. The specific configuration of the main memory and the particular manner in which the SCU is interfaced to the memory is not important to the present invention and accordingly will not be discussed in detail herein. For purposes of describing the present invention, it suffices to state that each memory unit 16A, 16B of the main memory 16 is provided with a corresponding memory port on the SCU with each port being linked to a separate pair of individually addressable segments which are interleaved on block boundaries.

The interconnection network 20 functions as means for providing a path for data transactions between the various system units and the multi-processor system and links the CPUs 12, the I/O units 14, and the SPU 22 together for exchange of data between themselves and each of the plurality of main memory units (MMUs) 16A and 16B. Accordingly, the interconnection network 20 may form part of the dedicated interface means 24 between the SCU and main memory in addition to linking the remaining system units.

Each system unit, such as a CPU or an I/O unit, is ported into the SCU 18 through a discrete port and all communication requests between memory and the system units, as well as between the units themselves, are lodged at the corresponding port on the SCU. The SCU 18 functions to keep system units active while avoiding inter-unit conflict by handling requests for communications between the system unit and the system memory that are received at various ports on the SCU. Because the various CPUs and I/O units are operated in a parallel fashion within the multi-processor system, a plurality of communication requests are routinely received at the SCU. In addition, a number of such requests may typically require access to the same system resources in order to honor the requests by executing the commands associated therewith.

Incoming requests received at the SCU ports from the system units are arbitrated for processing by the SCU in a manner which utilizes the system resources in the most efficient manner and in addition treats each arriving system request in a fair manner by processing the request within a reasonable period of time. A preferred technique on the basis of which the SCU can arbitrate outstanding requests from system units in such a way as to achieve the dual requirements of system efficiency and unit fairness is described in the above mentioned Flynn et al. U.S. application Ser. No., 07/306,871, filed Feb. 3, 1989 titled "Method and Means for Arbitrating Communication Requests Using A System Control Unit In a Multi-Processor System," which is also owned by the assignee of the present invention.

Regardless of the arbitration technique that is used to define the order in which incoming communication requests are processed, it is critical that a number of data transactions between system units be performed simultaneously in order to achieve efficient system operation by optimizing the processing capabilities of the plurality of system CPUs.

Traditional interconnection networks have typically comprised of shared buses in systems where simultaneous multiple data transactions are not critical. Where a number a number of data transactions have to be processe