IP Library Granted Patent US 8,850,098
Granted Patent B2
US 8,850,098 · App. 12/653,989 · Granted Sep 30, 2014

Direct memory access (DMA) address translation between peer input/output (I/O) devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,850,098
App. No.
12/653,989
Granted
Sep 30, 2014
Kind
B2
Abstract

A method and apparatus is described herein for supporting direct memory accesses between peer I/O devices. It is determined whether a guest physical address (GPA) referenced by an access generated from an I/O device, is within a range of GPAs associated with local I/O devices based at least in part on a GPA base and a GPA window size. If the GPA is within the window, then the GPA is translated to an HPA based at least in part on a base HPA associated with a local device and then forwarded to that local device. However, if the GPA is not within the window, then the access is forwarded upstream.

Claims (14)

1. A method comprising:

determining if a peer-to-peer transfer request generated by a first Peripheral Component Interconnect (PCI) device references an address in a window of addresses of a target device that has the same PCI bus address of a PCI master device;

forwarding the peer-to-peer transfer request to a translation logic, if the target device does not have the same PCI bus address of the PCI master device, wherein the translation logic to translate the first device virtual address to the address of the target device is based at least in part on the PCI bus base address of the PCI master device plus offset, wherein once translated, a translation field is included with the address to indicate that a translation has already occurred and that a subsequent translation is unnecessary;

forwarding the peer-to-peer transfer request to a local direct memory access (DMA) engine, if the address of the target device has the same PCI bus address of the PCI master device.

2. The method of claim 1 , wherein the address of the target device is a device virtual address.

3. An apparatus comprising:

determination logic to determine if a peer-to-peer transfer request generated by a first Peripheral Component Interconnect (PCI) device references an address of a target device that has the same PCI bus address of a PCI master device;

forwarding logic to forward the peer-to-peer transfer request to a translation logic, if the target device does not have the same PCI bus address of the PCI master device;

translation logic to translate the address of the target device based at least in part on the PCI bus base address of the PCI master device plus offset, wherein once translated, a translation field is included with the address to indicate that a translation has already occurred and that a subsequent translation is unnecessary; and

the forwarding logic to forward the peer-to-peer transfer request to a local direct memory access (DMA) engine, if the address of the target device has the same PCI bus address of the PCI master device.

4. The apparatus of claim 3 , wherein the address of the target device is a device virtual address.

5. The apparatus of claim 3 , wherein translation of the first device virtual address to the address of the target device is based at least in part on the PCI bus base address of the PCI master device plus offset.

6. The apparatus of claim 3 , wherein the logic is within a bridge.

7. The apparatus of claim 3 , wherein the translation logic is within a port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →