EP1222753A1 - Parallel bus communications over a packet-switching fabric - Google Patents
Parallel bus communications over a packet-switching fabricInfo
- Publication number
- EP1222753A1 EP1222753A1 EP00958963A EP00958963A EP1222753A1 EP 1222753 A1 EP1222753 A1 EP 1222753A1 EP 00958963 A EP00958963 A EP 00958963A EP 00958963 A EP00958963 A EP 00958963A EP 1222753 A1 EP1222753 A1 EP 1222753A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- bus
- packet
- network
- channel
- command
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
- H04L1/0063—Single parity check
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
Definitions
- the present invention relates generally to computing systems, and specifically to devices and methods for bridging between a parallel bus and a switching fabric or network.
- the central processing unit In current-generation computers, the central processing unit (CPU) is connected to the system memory and to peripheral devices by a parallel bus, such as the ubiquitous Peripheral Component Interface (PCI) bus.
- PCI bus protocols and rules are described in detail in the PCI Local Bus Specification, Revision 2.2 (1998), published by the PCI Special Interest Group (Hillsboro, Oregon), which is incorporated herein by reference. Briefly, the PCI specification defines a set of bus commands, or cycles, each identified by a 4-bit code on the C/BE (Bus Command and Byte Enable) lines of the bus.
- a bus master such as a CPU, sends commands to a target device on the bus by specifying a 32- or 64-bit bus address of the target device. Table I below lists the PCI bus command codes for reference. The different types of read and write commands in the table are based on the division of the overall PCI address space into Memory, I/O and Configuration address spaces.
- I/O serial input/output
- NGIO Next Generation I/O
- FIO Fluture I/O
- SAN Storage Area Networks
- a bridge device links a parallel bus to a packet-switched network.
- the parallel bus comprises a PCI bus
- the packet-switched network comprises an InfiniBand (IB) network, but the principles of the present invention are similarly applicable to buses and networks of other types.
- the bridge device receives bus commands that are issued by a master device to a specified address on the bus, and translates them into packets for transmission over the network.
- the packets are sent to a network address, typically a virtual address on the network, that is assigned to correspond to the specified bus address.
- the bridge device receives packets from the network that are destined for devices on the bus, and translates them into appropriate bus responses or commands, to be conveyed to the proper address on the bus.
- the bridge device thus enables master devices on the bus to communicate transparently with destination devices on the network, as though the destination devices were actually present on the bus. It similarly enables devices on the network to communicate transparently with target devices on the bus.
- one or more segments are allocated to the bridge device in the address space of the bus.
- the segments are preferably allocated in each of the Memory, I/O and Configuration address spaces.
- Each segment is divided into one or more address ranges, and each range is associated with a unique channel on the network.
- a channel lookup table held by the bridge device lists attributes of each of the channels.
- These attributes also including a mapping between bus addresses and network addresses to which the packet is to be sent.
- the bridge device uses the attributes in the table to construct and transmit a packet of the appropriate type to the proper network address over the assigned channel. This flexible allocation of address segments and ranges, and the use of the lookup table to associate channel properties with address ranges on the PCI bus, make the bridge device particularly convenient to configure and use.
- a similar arrangement is preferably used to map the channels and network addresses to the corresponding bus addresses of the destination devices.
- a method for bridging between a parallel bus and a packet-switched network including: allocating at least one segment in an address space of the parallel bus for communications between devices on the bus and the packet-switched network; defining a correspondence between bus addresses within the at least one segment and respective network addresses on the network; receiving a bus command directed to a specified one of the bus addresses within the at least one segment; and transmitting a packet over the network to one of the network addresses responsive to the correspondence.
- allocating the at least one segment includes allocating a plurality of segments, wherein the bus includes a Peripheral Component Interface (PCI) bus, and the address space includes Memory, Input/Output (I/O) and Configuration address spaces, and wherein allocating the plurality of segments includes allocating the segments in at least two of the addresses spaces.
- the packet-switched network includes an InfiniBand switching fabric.
- defining the correspondence includes assigning a channel in the network to correspond to a given range of the bus addresses within the at least one segment, the given range including the specified bus address, and transmitting the packet includes sending the packet over the assigned channel.
- the given range includes substantially all of the at least one segment.
- assigning the channel includes dividing the segment into a plurality of non-overlapping ranges, one of which is the given range.
- assigning the channel includes recording attributes of the channel in a lookup table, and transmitting the packet includes looking up the attributes in the table responsive to the bus command so as to transmit the packet in accordance with the attributes.
- looking up the attributes includes determining an index to the lookup table based on the bus address specified by the bus command.
- the recorded attributes of the channel include a status of the channel, and transmitting the packet includes deciding, responsive to the status, whether to transmit the packet or to return to a device on the bus that issued the bus command an indication that the packet could not be sent.
- transmitting the packet includes transmitting a request packet to a destination device on the network, and the method includes receiving a response packet over the network from the destination device, and generating a response on the parallel bus based on the response packet.
- receiving the bus command includes receiving the command from a master device on the bus, and generating the response includes returning the response to the master device, such that the command and response are substantially indistinguishable to the master device from commands sent to and responses received from other devices on the bus with which the master device is in communication.
- receiving the bus command includes receiving a read command for execution by a destination device at the one of the network addresses, and transmitting the packet includes sending a network read request packet to the destination device.
- receiving the read command includes receiving a command to read a given quantity of data from the destination device, and sending the network read request packet includes setting a data length field in the read request packet responsive to the given quantity.
- receiving the command to read the given quantity includes receiving a command to read one or more cache lines.
- receiving the bus command includes receiving a write command for execution by a destination device at the one of the network addresses, and transmitting the packet includes sending a network write request packet to the destination device.
- defining the correspondence includes defining a relation between the one or more bus addresses and one or more virtual addresses on the network.
- a method for bridging between a packet-switched network and a parallel bus including: allocating at least one channel on the packet-switched network for communications with devices on the parallel bus; defining a correspondence, for use in the communications over the at least one channel, between one or more network addresses on the network that are accessible via the at least one channel and one or more respective bus addresses in an address space of the parallel bus; receiving a packet at one of the network addresses over the at least one channel; and conveying a bus command over the bus to one of the bus addresses responsive to the correspondence.
- the at least one channel includes a plurality of channels.
- the bus includes a Peripheral Component Interface (PCI) bus
- the network includes an InfiniBand switch fabric, wherein allocating the at least one channel includes associating a plurality of channels with respective InfiniBand Work Queue Pairs (WQPs).
- PCI Peripheral Component Interface
- WQPs InfiniBand Work Queue Pairs
- allocating the at least one channel includes recording attributes associated with the channel in a lookup table, and conveying the bus command includes looking up the attributes in the table responsive to a characteristic of the packet so as to convey the bus command in accordance with the recorded attributes.
- the characteristic of the packet includes a channel number assigned to the channel in the network over which the packet is received, and looking up the attributes includes determining an index to the lookup table based on the identification number and finding the attributes in the table indicated by the index.
- determining the index includes using as the index a first portion of the identification number, and looking up the attributes includes matching a second portion of the identification number to a tag stored in the table in order to verify that the attributes indicated by the index pertain to the channel over which the packet is received.
- the method includes refreshing the attributes recorded in the table with respect to the channel over which the packet is received when the second portion of the identification number does not match the tag.
- conveying the bus command includes determining the bus address to which to convey the command by transforming the network address at which the packet is received, based on the attributes recorded in the table. Most preferably, defining the correspondence includes defining a correspondence between one or more virtual addresses on the network and the one or more respective bus addresses. Further preferably, conveying the bus command includes conveying the command to a destination device on the bus at the one of the bus addresses, and the method includes receiving a response over the bus from the destination device, and transmitting a response packet over the at least one channel of the network responsive to the response. In a preferred embodiment, receiving the packet includes receiving a read request packet for execution by the destination device, and conveying the bus command includes generating a read cycle on the bus addressed to the destination device.
- receiving the read request packet includes receiving a packet specifying a length of data to read from the destination device, and generating the read cycle includes selecting one of a plurality of types of read cycles to generate, responsive to the specified data length.
- receiving the packet includes receiving a write request packet for execution by the destination device, and conveying the bus command includes generating a write cycle on the bus addressed to the destination device.
- a bridge device for bridging between a parallel bus and a packet-switched network, including: a target channel adapter (TCA), adapted to receive a bus command over the parallel bus directed to a specified one of a plurality of bus addresses within a segment in an address space of the parallel bus, which segment is allocated to the TCA for communications between devices on the bus and the packet-switched network, the TCA being further adapted to generate, responsive to the bus command, a data packet for transmission over the packet-switched network to a network address corresponding to the specified bus address in accordance with a predefined address correspondence; and a network interface adapter, configured to transmit the data packet over the packet-switched network to the network address.
- the network interface adapter includes a switch.
- a device for bridging between a packet-switched network and a parallel bus including: a network interface adapter, configured to receive a data packet sent to a specified network address over a channel on the packet-switched network, which channel is allocated on the network for communications with devices on the parallel bus; and a target channel adapter (TCA), which is adapted to select a bus address in an address space of the parallel bus corresponding to the specified network address in accordance with an address correspondence, defined for use in the communications over the at least one channel, between network addresses that are accessible via the channel and respective bus addresses in the address space of the parallel bus, and to convey a bus command to the selected bus address responsive to the received data packet.
- TCA target channel adapter
- FIG. 1 is a block diagram that schematically illustrates a system for bridging between a parallel bus and a packet-switched network, in accordance with a preferred embodiment of the present invention
- Fig. 2 is a block diagram that schematically illustrates details of a bridging device in the system of Fig. 1, in accordance with a preferred embodiment of the present invention
- Fig. 3 is a flow chart that schematically illustrates a method for converting a bus command to a packet for transmission over a packet-switched network, in accordance with a preferred embodiment of the present invention
- Fig. 4 is a block diagram that schematically illustrates construction of a channel index for use in the method of Fig. 3, in accordance with a preferred embodiment of the present invention
- Figs. 5 and 6 are block diagrams that schematically illustrate schemes for segmenting memory space on a parallel bus, in accordance with a preferred embodiment of the present invention.
- Fig. 7 is a flow chart that schematically illustrates a method for converting a packet received over a packet-switched network to a bus command, in accordance with a preferred embodiment of the present invention.
- Fig. 1 is a block diagram that schematically illustrates a system 20 for bridging between a PCI bus 22 and an InfiniBand (IB) packet-switched network 30, in accordance with a preferred embodiment of the present invention.
- a master device on bus 22 such as a central processing unit (CPU) 24, wishes to read from or write to a destination device, such as an I/O device 38, over network 30.
- a second bridge device 32 may be used to communicate with a peripheral device 36 on bus 34.
- bridge devices 28 and 32 in cooperation constitutes a PCI-to-PCI bridge and is described in greater detail in the above-mentioned patent application entitled "Bridge between Parallel Buses over a Packet-Switched Network.” While preferred embodiments are described hereinbelow with reference to the PCI bus and the IB network, it will be understood that the principles of the present invention may be applied, mutatis mutandis, to bridge between parallel buses and networks of other types and obeying different standards.
- CPU 24 issues an appropriate PCI read or write command to an address in the address space of PCI bus 22 that is assigned to bridge device 28.
- the remainder of the PCI bus address space is typically assigned to peripheral and I/O devices 26 on bus 22.
- Bridge device 28 generates an IB packet based on the CPU request and sends it over network 30 to device 38.
- the I/O device returns the appropriate response (typically data, in the case of a read command, or an acknowledgment of a write command) back to bridge device 28.
- This bridge device generates a corresponding PCI bus cycle, in which it passes the response over bus 22 to the CPU.
- each device on PCI bus 22 can have multiple address segments, assigned to it in each of the Memory, Configuration and I/O address spaces on the bus 22.
- bridge device 28 is designed so that thirty-two such segments can be assigned to the device, although alternatively, a larger or smaller number of segments may be available.
- the segments are divided into ranges, most preferably up to 128 ranges in all for the Memory and I/O segments, and another eight ranges for the Configuration segments. (The configuration ranges are preferably set aside for communication with the Configuration address space of other, remote PCI buses, such as bus 34.) Each range is associated with a channel over network 30, as described in detail hereinbelow.
- CPU 24 Upon start-up or reconfiguration of system 20, CPU 24 is informed of a PCI address for I/O device 38 that is within one of the address segments assigned to bridge device 28.
- the CPU addresses all read and write commands destined for device 38 to this address.
- Each of the address ranges assigned to bridge device 28 is associated with a different channel, or Work Queue Pair (WQP) in IB network 30.
- WQP Work Queue Pair
- Each channel in the IB network corresponds to a fixed path and level of service through the network, and packet ordering is preferably maintained among all packets carried by a given channel.
- Fig. 2 is a block diagram that schematically illustrates details of bridging device 28, in accordance with a preferred embodiment of the present invention.
- Device 28 comprises a target channel adapter (TCA) 50, which is coupled to PCI bus 22, and a network interface, such as a switch 52, coupled to network 30.
- TCA target channel adapter
- Preferred switches for this purpose are described in the above-mentioned provisional patent applications nos. 60/152,849 and 60/175,339, for example.
- the design of switch 52 is beyond the scope of the present patent application, however, and substantially any packet switch capable of interfacing with TCA 50 will be suitable for carrying out the function of switch 52.
- TCA 50 is responsible for converting PCI commands (or cycles) into IB packets, and vice versa.
- the TCA comprises a PCI target unit (PCIT) 54 and a PCI master unit (PCLM) 56.
- PCIT 54 responds to transactions originating on PCI bus 22, which are initiated by a bus master such as CPU 24.
- the PCIT receives read and write commands from the PCI bus and generates the appropriate IB read and write request packets for transmission via switch 52.
- PCIT 54 receives these packets and generates the appropriate response cycles on PCI bus 22 (typically returning data in response to a read request or an acknowledgment in response to a write request).
- PCLM 56 is responsible for receiving IB read and write request packets from network 30, sent by IB device 38 or bridge device 32, for example. It converts these requests into the appropriate read and write commands on bus 22, which in this case is the destination bus. The PCLM then packetizes the resulting response to send back to the originating bus.
- Fig. 3 is a flow chart that schematically illustrates a method by which PCIT 54 processes a PCI bus cycle and generates a corresponding IB packet, in accordance with a preferred embodiment of the present invention.
- the PCIT is preferably capable of capturing PCI bus cycles with addresses in any of thirty-two different segments. Each segment is delimited by a lower bar address and an upper limit address, which are preferably programmable for each segment individually.
- the bar and limit for each segment are listed in a segment header, along with an identification of the PCI address space (Memory, I/O or Configuration) to which the segment belongs.
- the bar and limit are most preferably set on 1 MB boundaries in the PCI address space, so that the 20 least significant bits (LSB) of the bar are set to 00000, and the 20 LSB of the limit are set to FFFFF.
- LSB least significant bits
- PCIT 54 receives a cycle on the PCI bus and examines its C/BE code and destination address.
- address checking step 72 the address is compared to the bars and limits in the PCIT segment headers in order to determine whether it falls within one of the configured segments. Setting the bar and limit on 1 MB boundaries is useful in this regard, as it allows rapid comparison of the address to the bars and limits without using a great deal of logic or computing power. Cycles having addresses outside all of the PCIT segments are ignored, at a cycle discard step 74.
- PCIT 54 proceeds to assemble the information needed to prepare a packet for transmission, beginning with a segment parameter reading step 76.
- the PCIT must first determine the IB channel that has been assigned to carry packets associated with the current cycle address, and it must then obtain relevant channel parameters for preparing and sending the packet.
- each such channel corresponds to a range of the addresses within the segment, which may comprise the entire segment.
- the channel parameters are held in a target channel lookup table (CLT) 58 (Fig. 2). These parameters preferably include, but are not limited to, the following attributes: • EB Work Queue Pair (WQP) context, providing connection information for the channel such as the WQP number and the service type and level, destination ED. • LB channel properties, such as the channel status - whether the channel is enabled or disabled, packet serial number (PSN), and the number of delayed read or write request packets that the channel can handle.
- WQP EB Work Queue Pair
- PSN packet serial number
- IB packet properties for example - - Whether PCI Write cycles are to be conveyed on this channel as LB Remote Direct
- RDMA packets or as Send packets.
- RDMA packets specify an address in the memory of the destination device to which data are to be written, while Send packets do not.
- Latency parameters i.e., how much data to accumulate at LB network device 38 before sending a read response packet back to bridge device 28.
- the segment headers held by the PCIT preferably include, for each segment, a channel base index (CBI) and offset and mask parameters, which are read at step 76.
- CBI channel base index
- the CBI and the offset and mask parameters are used in calculating a channel index (CI) at an index computation step 78, based on the PCI address range in which the bus command was received at step 70.
- the CI identifies the channel over which the packet is to be sent in response to the PCI bus command. It also serves as the index to CLT 58, at a lookup step 80, in order to determine the necessary attributes of the channel. Further details regarding the assignment of channels to PCI address ranges and of the computation of the CI are described hereinbelow.
- the attributes retrieved from CLT 58 are used to build and send the corresponding packet, at a packet sending step 82. If the channel is unavailable, because the channel properties indicate that it is disabled or that its queue of delayed requests is full, PCIT 54 will not send the packet, but will rather return a "retry" or failure indication on PCI bus 22. Assuming the channel to be enabled, however, various types of packets may be sent through the LB network switching fabric, invoking different sorts of responses at the packet destination. According to IB convention, the packet type is specified by an Extended Transport Header (ETH) associated with the transport layer of the LB protocol stack.
- ETH Extended Transport Header
- RDMA Remote Direct Memory Access
- the virtual address is preferably calculated by PCIT 54 by applying mask and address parameters, stored in CLT 58, to the PCI address of the corresponding read or write bus command.
- the first message of a RDMA read or write request contains a RDMA ETH specifying a virtual address for the operation, an access key (R_key) and a total length of the data buffer to read or write.
- the RDMA write request includes a payload containing the data to be written (which may be continued in subsequent RDMA write packets).
- Table LI below lists all of the PCI bus commands that may be received by PCIT 54 on bus 22, along with the corresponding IB packet types that the PCIT will send over network 30 at step 82, in accordance with a preferred embodiment of the present invention:
- PCIT 54 receives the response packet from device 38 and generates a corresponding PCI bus cycle on bus 22. Further details of the process by which PCIT 54 services read and write transactions initiated on bus 22 are described in the above-mentioned patent application entitled "Bridge between Parallel Buses over a Packet- Switched Network. "
- FIG. 4 is a block diagram that schematically illustrates details of index computation step 78, in accordance with a preferred embodiment of the present invention.
- a channel index (CI) 94 is constructed by concatenating a specified number of mask bits 96 taken from a PCI address 90 at which the command was received, with a number of the most significant bits (MSB) 98 of channel base index (CBI) 92.
- a configuration bit 100 is preferably added to CI 94 to indicate whether address 90 belongs to one of the 128 ranges assigned to bridge device 28 in the memory and I/O address spaces of the PCI bus to the configuration address space, or to one of the eight special ranges assigned to the configuration space.
- the mask parameter in the segment header specifies the number of mask bits 96 to select from the PCI address (two bits in the example of Fig. 4), at an offset from the least significant bit (LSB) of the PCI address that is given by the offset parameter. Bits 98 are taken from CBI 92 to give a total CI length of 8 bits. The CBI bits are concatenated between mask bits 96 and configuration bit 100 to obtain the 8-bit CI 94.
- Figs. 5 and 6 are block diagrams that schematically illustrate the assignment of ranges in PCI Memory spaces 110 and 120 to IB channels, using the method of Fig. 4. In Fig. 5, Memory space 110 includes segments 3 and 4.
- Segment 3 has a bar and limit on 4 MB boundaries and is divided into four ranges, each 1 MB wide. Given an offset parameter of 20, the two mask bits 96 cycle in order through the segment from 0 to 3 (binary 00 to 11). With CBI 92 set to 8 (binary 100), CBI bits 98 in CI 94 will be 0001. Thus, the four ranges of segment 3 receive channel indices of 8, 9, A and B, respectively. Similarly, segment 4 has its bar aligned on a 16 MB boundary, with an offset of 22. The single mask bit 96 in this case sequentially takes the values 0 and 1, giving two 4MB ranges. With CBI 92 set in this case to C, the two ranges have channel indices of C and D.
- Memory space 120 includes segments 0, 1 and 2, which in this case are not aligned on 4 MB boundaries.
- segment 2 is divided into four ranges, having the same mask and offset values as segment 3 (Fig. 5), mask bits 96 of segment 2 sequence as 2, 3, 0, 1.
- the 1 MB ranges in segment 2 receive channel indices 6, 7, 4 and 5, in that order.
- Segment 0 is an example of non-uniform division of a segment into ranges.
- the two mask bits 96 for this segment are equal to 00 in the lowest 1 MB range, 01 over the next 2 MB, and 10 in the upper 1 MB, giving channel indices of 0, 1 and 2, respectively.
- Fig. 7 is a flow chart that schematically illustrates a method by which PCLM 56 (Fig. 2) processes an IB packet and generates a corresponding PCI bus cycle, in accordance with a preferred embodiment of the present invention.
- the PCLM refers to a master channel lookup table (CLT) 60, which, like target CLT 58, provides the channel parameters pertinent to generating the PCI cycle.
- the parameters include, but are not limited to:
- IB channel properties also as in target CLT 58, and including the message serial number (MSN) to be used in preparing the response packets to LB request packets that PCLM 56 receives.
- MSN message serial number
- PCI cycle properties for example - - Cycle type - whether this channel corresponds to PCI Memory, I/O or
- PCLM 56 receives an IB packet, at a packet reception step 130, and attempts to look up the corresponding channel parameters in CLT 60.
- the PCLM preferably extracts the seven LSB of the WQP number for use as an index to the CLT, at an indexing step 132. It uses the index to look up the indicated CLT entry, at a lookup step 134.
- master CLT 60 includes 128 entries, for up to 128 active channels, and the master CLT serves as a sort of data cache for parameters regarding these channels. Parameters of additional channels over which PCLM 56 can receive packets, beyond the active 128, are preferably stored in another memory.
- the PCLM checks the upper seventeen bits of the WQP number against a Master WQP tag stored in the CLT for this channel entry, at a tag matching step 136. If the tag matches, it means that the cache holds the correct data for this channel. Otherwise, the data in this entry of CLT 60 are preferably refreshed from memory, at a cache refresh step 138. Alternatively, it may be that this channel has not been configured in PCLM 56, in which case the packet is discarded, and an error is reported. Having found the appropriate entry in the CLT, PCLM 56 reads the PCI attributes that it will need in order to construct a corresponding PCI cycle, at an attribute reading step 140.
- the PCLM validates the packet, checking, for example, that the packet has arrived in the proper order and carries appropriate protection parameters (P Key and R_Key in LB network convention). In other words, the PCLM implements transport layer functions of network 30. The PCLM then calculates the address on PCI bus 22 to which the cycle is to be addressed, at an addressing step 142. For RDMA read and write packets, the address map and mask parameters in the CLT are used to determine the PCI address based on the virtual address of the LB packet that was received. For IB send packets, PCLM 56 will generate write cycles to a PCI bus address specified in the CLT. The address may be incremented from one packet to the next.
- PCLM 56 generates the appropriate PCI cycle for the packet that it has received, at a cycle generation step 144.
- Table III lists the types of PCI cycles that are generated in response to incoming IB packets, in accordance with a preferred embodiment of the present invention. Further details of the process by which PCLM 56 services read and write requests received over IB network 30 are described in the above-mentioned patent application entitled "Bridge between Parallel Buses over a Packet-Switched Network.”
- Bridge device 28 enables devices on the PCI bus, such as CPU 24, to carry out transactions transparently with LB device 38 and with PCI peripheral device 36 on PCI bus 34 as though these remote devices were actually located on bus 22.
- the bridge device similarly enables LB device 38 to interact transparently with PCI bus devices.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
Description
Claims
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15284999P | 1999-09-08 | 1999-09-08 | |
US152849P | 1999-09-08 | ||
US17533900P | 2000-01-10 | 2000-01-10 | |
US175339P | 2000-01-10 | ||
US65364500A | 2000-09-01 | 2000-09-01 | |
US653645 | 2000-09-01 | ||
PCT/IL2000/000543 WO2001018989A1 (en) | 1999-09-08 | 2000-09-07 | Parallel bus communications over a packet-switching fabric |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1222753A1 true EP1222753A1 (en) | 2002-07-17 |
EP1222753A4 EP1222753A4 (en) | 2003-04-02 |
Family
ID=27387334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP00958963A Withdrawn EP1222753A4 (en) | 1999-09-08 | 2000-09-07 | Parallel bus communications over a packet-switching fabric |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1222753A4 (en) |
AU (1) | AU7036600A (en) |
IL (1) | IL148258A0 (en) |
WO (1) | WO2001018989A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928508B2 (en) | 2002-09-12 | 2005-08-09 | Sun Microsystems, Inc. | Method of accessing a remote device from a host by mapping an address of the device to a memory address of the host |
US7028130B2 (en) * | 2003-08-14 | 2006-04-11 | Texas Instruments Incorporated | Generating multiple traffic classes on a PCI Express fabric from PCI devices |
US20050262269A1 (en) * | 2004-05-20 | 2005-11-24 | Pike Jimmy D | System and method for information handling system PCI express advanced switching |
US7243173B2 (en) | 2004-12-14 | 2007-07-10 | Rockwell Automation Technologies, Inc. | Low protocol, high speed serial transfer for intra-board or inter-board data communication |
US8862685B2 (en) * | 2008-11-21 | 2014-10-14 | Continental Teves Ag & Co. Ohg | Data transmission protocol for synchronization communication between two communication devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623697A (en) * | 1994-11-30 | 1997-04-22 | International Business Machines Corporation | Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension |
US5835738A (en) * | 1994-06-20 | 1998-11-10 | International Business Machines Corporation | Address space architecture for multiple bus computer systems |
EP0887738A1 (en) * | 1997-06-27 | 1998-12-30 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Interface bridge between a system bus and local buses with translation of local addresses for system space access programmable by address space |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141351A (en) * | 1996-12-20 | 2000-10-31 | International Business Machines Corporation | Radio frequency bus for broadband microprocessor communications |
US5920698A (en) * | 1997-01-06 | 1999-07-06 | Digital Equipment Corporation | Automatic detection of a similar device at the other end of a wire in a computer network |
-
2000
- 2000-09-07 WO PCT/IL2000/000543 patent/WO2001018989A1/en not_active Application Discontinuation
- 2000-09-07 AU AU70366/00A patent/AU7036600A/en not_active Abandoned
- 2000-09-07 IL IL14825800A patent/IL148258A0/en unknown
- 2000-09-07 EP EP00958963A patent/EP1222753A4/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835738A (en) * | 1994-06-20 | 1998-11-10 | International Business Machines Corporation | Address space architecture for multiple bus computer systems |
US5623697A (en) * | 1994-11-30 | 1997-04-22 | International Business Machines Corporation | Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension |
EP0887738A1 (en) * | 1997-06-27 | 1998-12-30 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Interface bridge between a system bus and local buses with translation of local addresses for system space access programmable by address space |
Non-Patent Citations (2)
Title |
---|
ANONYMOUS: "UPA to PCI Interface User's Manual" [Online] May 1997 (1997-05) , SUN MICROSYSTEMS, INC. , USA XP002228315 Retrieved from the Internet: <URL: http://www.sun.com/processors/manuals/802- 7835.pdf> [retrieved on 2003-01-22] * page 1-9, line 4 - line 10; figures 1-1 * * figures 1-4 * * paragraph [3.3.9] * * paragraph [0005] * * |
See also references of WO0118989A1 * |
Also Published As
Publication number | Publication date |
---|---|
AU7036600A (en) | 2001-04-10 |
WO2001018989A1 (en) | 2001-03-15 |
IL148258A0 (en) | 2002-09-12 |
EP1222753A4 (en) | 2003-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US6480500B1 (en) | Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes | |
US8208470B2 (en) | Connectionless packet data transport over a connection-based point-to-point link | |
US7068651B2 (en) | Fibre channel address adaptor having data buffer extension and address mapping in a fibre channel switch | |
US7076569B1 (en) | Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities | |
US5781549A (en) | Method and apparatus for switching data packets in a data network | |
US7263103B2 (en) | Receive queue descriptor pool | |
US5619497A (en) | Method and apparatus for reordering frames | |
US6671273B1 (en) | Method for using outgoing TCP/IP sequence number fields to provide a desired cluster node | |
US6571303B1 (en) | Communication control method and apparatus utilizing a shared buffer which is shared by a system processor and a communication controller using a virtual address or a real address | |
WO2001018988A1 (en) | Bridge between parallel buses over a packet-switched network | |
US7403525B2 (en) | Efficient routing of packet data in a scalable processing resource | |
EP1068710A2 (en) | System and process for high-speed pattern matching for application-level switching of data packets | |
US7529865B1 (en) | Packet buffer management apparatus and method | |
CN1802836A (en) | Network protocol off-load engine memory management | |
US7124231B1 (en) | Split transaction reordering circuit | |
US7245615B1 (en) | Multi-link protocol reassembly assist in a parallel 1-D systolic array system | |
US6657959B1 (en) | Systems and methods for implementing ABR with guaranteed MCR | |
US20040073724A1 (en) | Network stack layer interface | |
EP1222753A1 (en) | Parallel bus communications over a packet-switching fabric | |
US9274586B2 (en) | Intelligent memory interface | |
US6163540A (en) | System and method for establishing unique sequence identification in an information exchange of a system network | |
IL148258A (en) | Parallel bus communications over a packet-switching fabric | |
US6603768B1 (en) | Multi-protocol conversion assistance method and system for a network accelerator | |
US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20020321 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: 7H 04L 12/46 B Ipc: 7H 04L 29/12 B Ipc: 7G 06F 13/40 A |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20030219 |
|
17Q | First examination report despatched |
Effective date: 20030530 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20031010 |
|
RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB IT |