Method and apparatus for address translation on PCI bus over infiniband network
First Claim
1. A method for enabling one or more PCI devices to read data via a network from a memory of a host system or to write data to said memory on said host system via said network, wherein said PCI devices are attached to a PCI bus and connected to said network via a target channel adpater that translates PCI bus transactions and interrupts into network requests and that translates network requests to PCI transactions, and wherein each of said PCI devices has a PCI address range associated therewith, comprising:
- (a) allocating a PCI memory window on said target channel adpater, said PCI memory window being assigned to said host system, (b) posting a pseudo address that belongs to said target channel adpater on said PCI bus when reading data via said network from said memory of said host system or when writing data on said memory of said host system via said network, wherein said pseudo address comprises a base part and an offset part, (c) using said base part to identify said PCI memory window assigned to said host system by step (a), and (d) using said offset part for calculating a virtual address specifying a physical location of said memory at said host system.
1 Assignment
0 Petitions
Accused Products
Abstract
A system having a plurality of PCI devices, a PCI bus, a host system with a host memory, an network, and a target channel adpater. The plurality of PCI devices are attached to the PCI bus, which is connected via the target channel adpater and the network to the host system. The target channel adpater translates PCI bus transactions and PCI bus interrupts into network requests and network requests to PCI transactions. Each of the PCI devices has a PCI address range associated with it. A PCI memory window is allocated on the target channel adpater and is assigned to the host system. The PCI devices are enabled to post a pseudo address that belongs to the target channel adpater on the PCI bus when reading data via the network from the host memory or when writing data in the host memory via the network, the pseudo address comprising a base part (VABase) and an offset part (Offset). The base part (VABase) identifies the PCI memory window being assigned to the host system and the offset part (Offset) is useable for calculating a virtual address (VA) specifying a physical memory location in the host memory.
-
Citations
31 Claims
-
1. A method for enabling one or more PCI devices to read data via a network from a memory of a host system or to write data to said memory on said host system via said network, wherein said PCI devices are attached to a PCI bus and connected to said network via a target channel adpater that translates PCI bus transactions and interrupts into network requests and that translates network requests to PCI transactions, and wherein each of said PCI devices has a PCI address range associated therewith, comprising:
-
(a) allocating a PCI memory window on said target channel adpater, said PCI memory window being assigned to said host system, (b) posting a pseudo address that belongs to said target channel adpater on said PCI bus when reading data via said network from said memory of said host system or when writing data on said memory of said host system via said network, wherein said pseudo address comprises a base part and an offset part, (c) using said base part to identify said PCI memory window assigned to said host system by step (a), and (d) using said offset part for calculating a virtual address specifying a physical location of said memory at said host system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for address translation between one or more PCI devices that are attached to a PCI bus and connected via a target channel adpater and an network to a host system, wherein each of said PCI devices has a PCI address range associated therewith, and wherein said target channel adpater translates PCI bus transactions and PCI bus interrupts into network requests and network requests to PCI transactions, comprising:
-
(a) allocating a PCI memory window on said target channel adpater, said PCI memory window being assigned to said host system, (b) posting a pseudo address that belongs to said target channel adpater on said PCI bus, wherein said pseudo address comprises a base part and an offset part, (c) using said base part to identify said PCI memory window assigned to said host system by step (a), and (d) using said offset part for calculating a virtual address specifying a physical location of a memory of said host system. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a host system that includes a host memory, a network that carries a plurality of network requests, a PCI bus that carries a plurality of PCI bus transactions and/or PCI bus interrupts, a target channel adapter that connects said PCI bus via said network to said host system and that translates said PCI bus transactions and PCI bus interrupts, which are destined for said host system, to network requests and said network requests, which are destined for said PCI bus, to said PCI bus transactions, wherein a PCI memory window is allocated on said target channel adpater and is assigned to said host system, and one or more PCI devices that are attached to said PCI bus, that each have a PCI address range associated therewith and that each, when enabled, posts on said PCI bus one of said plurality of PCI bus transactions or PCI bus interrupts that includes a pseudo address, which belongs to said target channel adpater, when reading data via said network from said host memory or when writing data in said host memory via said network, wherein said pseudo address comprises a base part and an offset part, wherein said base part identifies said PCI memory window and wherein said offset part is useable for calculating a virtual address specifying a physical memory location in said host memory. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A memory media for a target channel adapter that is interconnected with one or more PCI devices via a PCI bus and connected via an network to a host system, wherein each of said PCI devices has a PCI address range associated therewith, and wherein said target channel adpater translates PCI bus transactions and PCI bus interrupts into network requests and network requests to PCI transactions, comprising:
-
first means for causing said target channel adapter to process an allocated PCI memory window, said PCI memory window being assigned to said host system, second means for causing said target channel adapter to post a pseudo address that belongs to said target channel adpater on said PCI bus, wherein said pseudo address comprises a base part and an offset part, third means for causing said target channel adapter to use said base part to identify said PCI memory window assigned to said host system by said first means, and fourth means for causing said target channel adapter to use said offset part for calculating a virtual address specifying a physical location of a memory of said host system. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A system comprising:
-
a host system that includes a host memory, a network and a PCI bus, a target channel adapter that connects said PCI bus via said network to said host system, wherein a PCI memory window is allocated on said target channel adpater and is assigned to said host system, and one or more PCI devices that are attached to said PCI bus that each, when enabled, posts on said PCI bus a pseudo address, which belongs to said target channel adpater, when reading data via said network from said host memory or when writing data in said host memory via said network, wherein said pseudo address comprises a base part and an offset part, wherein said base part identifies said PCI memory window and wherein said offset part is indicative of a virtual address that specifies a physical memory location in said host memory.
-
Specification