Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HIGH-SPEED PACKET BUS
Document Type and Number:
WIPO Patent Application WO/1994/018766
Kind Code:
A1
Abstract:
A high-speed bus system (1000) for a computer is constructed of a network of buses (101A-120A and 101B-120B) with parallel bit lines, each bus of which operates independently and supports serial packet communications, wherein transmit agents (22, 24, 26, 28) and receive agents (141) associated with each communicating element in the bus system are connected to the bus system (1000). Each transmit agent (22, 24, 26, 28) controls a single bus for transmission and each receive agent (141) is connected to all other buses for a reception in a diagonal topology. The architecture is based on use of a buffering element at each node in the bus structure, herein referred to as a cell bus interface (CBI) unit. Based on header data containing address information appended as part of a packet cell by a transmitting transmit agent, each receive agent (141) decides whether the information provided on any bus is intended for it as a destination agent.

Inventors:
WILKINSON IAN CHARLES KEITH
DUFFIE KINGSTON
LAWRENCE MICHEL
Application Number:
PCT/US1994/001448
Publication Date:
August 18, 1994
Filing Date:
February 09, 1994
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DSC COMMUNICATIONS (US)
International Classes:
G06F13/40; H04L12/54; H04L12/933; H04L12/937; H04Q11/04; (IPC1-7): H04J3/24
Foreign References:
US4862451A1989-08-29
US4955020A1990-09-04
US5001704A1991-03-19
US5029124A1991-07-02
Download PDF:
Claims:
WHAT IS CLAIMED IS;
1. A highspeed bus system for interconnecting communicating elements at nodes in a computer having substantially straight, elongate slots in a backplane, a single communicating element being disposed at each node, the bus system in said backplane comprising: a plurality of bus pairs, each bus pair comprising a first bus and second bus physically extending in opposing diagonal directions relative to adjacent bus pairs and orientation of said slots to respective terminations, each said bus having parallel bit lines, all said bit lines of all of said buses being of equal length between each and every node connection of each said first bus and second bus; and each node comprising: a single transmit agent means disposed with said communicating element, said transmit agent means comprising a first transmit agent and a second transmit agent for communicating identical digital information from said communicating element to said first transmit agent and said second transmit agent, said first transmit agent being coupled to only one said first bus, and said second transmit agent being coupled to only one said second bus of said bus pair; and a plurality of receive agents of a number equal to at least the number of other ones of said nodes, all of said plurality of receive agents being disposed with a single one communicating element, each one of said receive agents being coupled to only one of said first bus and said second bus to receive said digital data via only one bus from only one of said transmit agents; such that each said transmit agent means transmits digital data from a single communicating element to all other communicating elements via a single bus pair and controls only a single bus pair.
2. The bus system according to claim 1 wherein said bus pairs are each provided with a separate and independent clock means such that each said bus pair is operative independent of all other bus pairs.
3. The bus system according to claim 2 wherein at each node said transmit agent means and said receive agents are provided with bus couplings substantially in a row, wherein the first transmit agent is disposed at a first end, the second transmit agent is disposed at a second end and said receive agents are disposed in a row between said first transmit agent and said second transmit agent.
4. The bus system according to claim 1 wherein said transmit agent means further comprising means for transmitting, via a single bus pair, packetized wordparallel data addressable to an addressed communicating element and wherein each said receive agent further comprises means for intercepting data addressed to its associated communicating element.
5. The bus system according to claim 4 wherein associated with each receive agent comprises means for buffering data directed to its associated communicating element.
6. The bus system according to claim 4 wherein said intercepting means includes means for using as criteria for intercepting packet header data containing address information appended as part of a packet cell by a transmitting transmit agent.
7. The bus system according to claim 6 wherein said using means is a bit mask.
8. The bus system according to claim 1 wherein each transmit agent is disposed at the end of a bus opposite said termination.
9. The bus system according to claim 1 wherein said receive agent includes a control processor means, a receive buffer for each bus, a firstin, firstout storage register means (FIFO) , a video random access memory means (VRAM) for relaying data to said communicating element and a plurality of cell bus interface modules sufficient for servicing each bus, said cell bus interface module comprising: first means coupled to a first said receive buffer for receiving and checking incoming data; second means coupled to a second said receive buffer for receiving and checking incoming data; means coupled to said first receiving means and to said second receiving means and further to said VRAM and to said FIFO for controlling access of data to said VRAM and to said FIFO; and means coupled to said first receiving means and to said second receiving means and further to said control processor and said controlling means for tracking status and for programming said controlling means.
10. A cell bus interface module constructed as a single VLSI element for use in a multiplebus system for interconnecting communicating elements in a computer system having receive agents associated with each communicating element which include a control processor means, a receive buffer for each bus, a firstin, firstout storage register means (FIFO) , a video random access memory means (VRAM) for relaying data to said communicating element, the cell bus interface for each bus comprising: first means operative to be coupled to a first said receive buffer for receiving and checking incoming data asynchronously with respect to data on other buses; second means operative to be coupled to a second said receive buffer for receiving and checking incoming data asynchronously with respect to data on other buses; means operative to be coupled to said first receiving means and to said second receiving means and further to said VRAM and to said FIFO for controlling access of data to said VRAM and to said FIFO; and means coupled to said first receiving means and to said second receiving means and further to said control processor and said controlling means for tracking status and for programming said controlling means.
Description:
HIGH-SPEED PACKET BUS

5

BACKGROUND OF THE INVENTION This invention relates to intracomputer communications architectures and more particularly to bus structures of specialized computer systems. Specifically the 0 invention relates to computer systems useful in telecommunications systems which require real-time routing and switching of digitized traffic. A particular application is in the field of ISDN data switching at telephone central offices. There is a need for a high-speed bus for a 5 telecommunications switch for digital communication applications wherein the primary usage is switching data between an external source or input resource and an external output or destination resource. Known bus topologies assume that communications of input resources and output resources is 0 primarily with a central processing unit and not with one another. Addressing schemes are typically based on references to memory space associated with the central processing unit. As a consequence, the special problems associated with high¬ speed communication between resources have not been fully 5 considered or addressed.

One issue is availability. A failed receiver on a bus can effectively destroy a bus. In a digital telephone switch, peak data rate or loading is a primary design issue. Data cannot be lost or delayed excessively even under peak load 0 conditions.

What is needed is a bus topology and input/output structure which is capable of receiving, buffering and forwarding digital information with a minimum of delay even under extreme loading conditions. 5

SUMMARY OF THE INVENTION According to the invention, a high-speed packet bus system for a computer is constructed of a network of buses with parallel bit lines termed cell buses, each cell bus operating independently and supporting word-wide serial packet communications, wherein transmit agents and receive agents associated with each individual communicating element in the bus system are connected to the bus system. Each transmit agent controls a single bus for transmission and each receive agent is connected to all other buses for reception. A diagonal bus topology is employed with transmit agents at one end and terminations at the other end. The architecture is based on use of a buffering element at each node in the bus structure, herein referred to as a cell bus interface (CBI) unit. Based on header data containing address information appended as part of a packet cell by a transmitting transmit agent, each receive agent decides whether the information provided on any bus is intended for it as a destination agent. Further according to the invention, the CBI unit comprises four self-contained modules interacting to service a cell bus port pair, to access specialized data storage and to communicate with a control and programming central processing unit (CP) . The CBI unit, constructed as a single VLSI device, comprises a pair of identical cell bus front end modules, a FIFO/VRAM output control module and a CP interface, control and status module.

The invention will be better understood upon reference to the detailed description in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a diagonal bus structure in accordance with the invention.

Fig. 2 is a simplified illustration of one element of the invention.

Fig. 3 is a diagram of a bus organization.

Fig. 4 is a diagram of a bus packet cell organization.

Fig. 5 is a block diagram of a plurality of receive agents illustrating a cell bus interface. Fig. 6 is a block diagram of a cell bus interface.

DESCRIPTION OF THE PREFERRED EMBODIMENT Bus System Structure

Referring to Fig. 1, a bus system 1000 according to the invention comprises a plurality of cell buses for connection to a plurality of nodes having a transmit agent means consisting of a pair of transmit agents and a plurality of receive agents associated with each source node or card. The number of receive agents is equal to the number of bus pairs. In a specific embodiment, there is provision for 20 nodes or cards 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, each card (for example card 1) having a first transmit agent 22 and a second transmit agent 24. There are thus forty transmit agents in pairs 22, 24; 26, 28; 30, 32; 34, 36; 38, 40; 42, 44; 46, 48; 50, 52; 54, 56; 58, 60; 62, 64; 66, 68; 70, 72; 74, 76; 78, 80; 82, 84; .86, 88; 90, 92; 94, 86; and 98, 100. Each of the transmit agents 22, 24; 26, 28; ...; 98, 100 is coupled at a position to one segment of a cell bus pair (101A, 101B through 120A, 120B) and terminated in matching loads (121A, 121B; 122A, 122B; ...; 140A, 140B) . Each cell bus pair is provided with the same data by the transmit agent pair and are therefore treated as a single bus. Transmit agents are paired because the bus is always driven at an end point of a bus and from an end of a card. As shown more clearly in Fig. 2 in a simplified illustration of one element of the same topology as in Fig. 1, for the third card 3 as the example, each cell bus pair (103A, 103B) constitutes a cell bus (103) which is so characterized because it receives a common packet cell signal from a source 500 on the card 3 through paired transmit agents 30, 32 respectively coupled to the bus segments 103A, 103B. Each of

the bus segments 103A, 103B is respectively terminated in a matching load 123A, 123B.

Referring to both Fig. 1 and Fig. 2, each card 1-20 has for example nineteen receive agents 141 for servicing a destination 143, with a single receive agent 141 coupled to one segment or cell bus of each cell bus pair 101A, 101B; ...; 120A, 12OB. The coupling receive agent 141 is solely a function of card position on a backplane. In card 3, for example, the transmit agent 30 thus has sole control of bus segment 103A, and the matching transmit agent 32 has sole possession of bus segment 103B, but only one receive agent 141 on any card receives from either of the paired transmit agents 30, 32. The number of recieve agents 141 in each node is equal to at least the number of other nodes in the system. While no separate receive agent is needed for the home node, one may be provided. The receive agents 141 are disposed physically between the transmit agents 30, 32, on the card (Fig. 1), while each transmit agent 30, 32 is electrically coupled to receive output in common from signal source 500 (Fig. 2) . There are receive agents for every position of every bus on a backplane. The position of the card therefore has no effect on the interception of a message transmitted from any transmit agent, and there can be no instance of interference between transmit agents on any one bus segment. The buses are all word- parallel, and the buses are physically parallel to adjacent buses in a backplane. The spacing of the connections between adjacent nodes of identical design is such that a round-trip signal path length from any first node through any transmit agent to any receive agent 141 of any second node then to its associated transmit agent and back to a receive agent of the first node is the same distance for all positions in the backplane. This topology is termed herein a diagonal bus structure, since the backplane cross connections between cards in a card cage are diagonally coupled. In theory, and under peak load, each transmit agent can transmit parallel signals as wide as the bus allows simultaneously to all cards through the respective receive agents.

Bus Organization

In a preferred embodiment, referring to Fig. 3, each bus, such as bus 103A, is organized as eight bits of data 201 and thus capable of receiving an octet of data each cycle. In addition the bus 103A has one parity bit line 202, a synchronization pulse line 203 and a clock line 204. At a clock rate of 25 MHz, each bus is thus capable of transferring about 200 Megabits per second. For a bus system of 20 buses, the transfer rate capacity is thus about 4 Gigabits per second.

Data Organization

The data in the bus system is packaged and communicated in self-contained packet cells 210 (Fig. 4) with bus-system-specific address information in a header 212. The packet cells are preferably in standard ATM (asynchronous transfer mode) format of the ISDN standard and are at this level of transmission independent of any other higher-level data communications protocol which may control integrity of the content of the data received in the bus system. At this level, therefore, the protocol does not require that a packet cell so communicated be acknowledged as properly received, as this task is left to a higher layer of the governing protocol, the information for which is communicated as data in the data field in this format. Each packet cell in a specific preferred embodiment of the bus system is of a fixed length consisting of 53 octets (53 x 8 bits) of data in a data field 214 preceded by a header field 212 of 3 octets, 20 bits of which being for destination address information. The destination address is organized as a bit mask in a destination address field 216 and four bits are for traffic type information in a traffic type field 218. Thus, traffic can be directed to any one or a multiple of up to twenty destinations by a simple mask on the destination address field 216 and without need for a decoder. The receive agents of each node either individually or through a common destination 143 screen data using the address mask for the node. The source 500 and the destination 143 herein may be termed a communicating element.

Clock and Transmission Mode

A master clock on clock line 203 (Fig. 3) of each card 3 (Fig. 2) controls a synchronization (sync) pulse on pulse line 204 for each transmit agent, as each transmit agent serves as a head end for its own bus (103A, 103B) . The sync pulse -"brackets" each packet cell, and each packet cell is communicated under control of the clock associated with the transmit agent of the source card 3, which has control of one bus coupled to each of the other cards. There is no problem with unequal propagation delays since the total path lengths for a round-trip packet cell exchange is equal for any position in the backplane of the bus system. The data may therefore be communicated in the bus system without concern for clock skew.

Interface Elements

Each node in the computer system has a mechanism serviced by the bus which communicates interactively with other nodes. The mechanism is termed the communicating element. The communicating element encompasses a source 500 of data and an end point or destination 143 for data. Referring to Fig. 5, in a specific embodiment, the data reception function for each node is carried out by interface elements termed cell bus interface unit (CBI) 220 in connection with one or more receive buffers 222, 224. A receive agent 141 as herein employed comprises a single receive buffer 222 coupled to any single one of the buses 101A, 101B; ... ; 120A, 120B and an associated CBI 220. A CBI may be dedicated to a single receive agent. Preferably a single CBI 220 services several receive buffers and therefore constitutes together several receive agents. The CBI directly interfaces with a control and programming CPU (CP) 226, as well as a receive FIFO (first in-first out) circuit 228, receive VRAM (Video or high speed random access memory) 230, a receive VRAM contents FIFO and associated logic 232 and various VLSI ancillary circuits 234. The receive buffers 222, 224 receive and initially buffer data directly from one bus each of the cell buses 101A...120B. The CP 226 is used to initially configure and

program the CBI 220, thereafter obtaining access to internal registers to verify and update link status and the like, as well as to control some operations.

The VLSI ancillary circuits 234 include a clock oscillator to provide a master clock source to the CBI 220. The FIFO 228 is for buffering "route-type" packet cells. The VRAM 230 is a serial buffer for buffering all valid packet cells received through the CBI 220 for relay to the end point or destination 143 (not shown) . The VRAM contents FIFO 232 is used to keep track of the actual number of packet cells contained in the VRAM 230. In summary, therefore, the CBI 220 validates the data as being directed to the destination served by particular receive agent, and the receive VRAM 228 buffers and forwards the validated data to the destination. The destination (Fig. 2) then uses or processes the data and may at some point respond via a source to transmit agent means associated with same node with return traffic via a cell on a different cell bus path to the originating node.

Cell Bus Interface Module

Referring to Fig. 6 with Fig. 5, the CBI 220 comprises four self-contained modules operative to interact to service cell bus ports from for example receive buffers 222 and 224, to access specialized data storage and to communicate with the CP 226. The CBI, constructed as a single VLSI device, comprises at least first and second identical cell bus front end modules 240, 242, which are coupled to the receive buffers 222 and 224, respectively, a FIFO/VRAM output control module 246, which is coupled to the receive FIFO 228, the receive VRAM 230 and the receive VRAM contents FIFO and logic 232, and a CP interface, control and status module 248, which is coupled to the CP 226. An external oscillator (not shown) provides the CBI a clock source on clock lone line 250. An external ID bus 252 provides information to the CBI 220 as to the identity of the cell bus ports the CBI 220 is to service.

Each cell bus front end module 240, 242 provides the interface between the bus receiver buffers 222, 224 and the

other modules 246, 248, as well as the other devices such as the FIFO 228 and VRAM 230 via a bus 254. The cell bus front end module 240, 242 provides interface functions and checks on the incoming cell data, such as cell length, parity and addressing, as well as provide temporary buffer space of.up to two incoming cells.

The FIFO/VRAM output control module 246 provides the control interface between the buffers space of each cell bus front end 240, 242 and the external FIFO 228 and VRAM 230. It functions to receive transfer requests, determine which transfer request is to be serviced first, and transfer the buffered cell if the external hardware latency is below a preselected threshold (500ns) or discard the cell with a LOSS cell indication to the CP226. The element 246 also notifies the VRAM control 232 when a preselected number of cells

(sixteen) have been transferred to the VRAM 230 or when a time out period has expired and a number of cells are contained in a shift register of the VRAM 228.

The CP interface control and status module 248 provides the CP 226 with control over the operation of the CBI 220 and monitor its status via a dedicated interface, internal registers and local memory. It includes a CPU interface, a small RAM memory for readback of the value of write registers, three eight-bit counters to hold "good," "bad" and "lost" cell counts, a sixteen-bit register for data to program and test the FIFO/VRAM output control module 246, a master control register, an interrupt mask register and a status register, as well as an interrupt generation circuit and a logic block for controlling overall operation. The modules of the CBI 220 cooperate as building blocks in support of data receiving tasks for a node in a diagonal bus system.

The invention has now been explained in reference to specific embodiments. Other embodiments will be apparent to those of ordinary skill in the art. It is therefore now intended that this invention be limited, except as indicated by the appended claims.