IP Library Granted Patent US 10,977,201
Granted Patent B1
US 10,977,201 · App. 14/447,339 · Granted Apr 13, 2021

Per IO direct memory access redirection

Inventors: Luke E. McKay (Rose Hill, KS); Roger T. Clegg (Wichita, KS)
Assignee: Avago Technologies International Sales Pte. Limited
G06F13/28G06F13/4027
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 10,977,201
App. No.
14/447,339
Granted
Apr 13, 2021
Kind
B1
Abstract

A bridge device tracks each individual IO between two PCIe busses and provides a translated address based on a scatter/gather list. Tracking provides a natural means of scatter/gather list translation to and from a native PCIe storage protocol's scatter/gather list (or other scatter/gather like mechanism). In addition, the awareness of the IO context provides a means for detecting erroneous transactions that would otherwise cause a system error and/or data corruption to be aborted preventing those error scenarios.

Claims (49)

1. A bridge apparatus comprising:

a processor;

one or more host ports connected to the processor;

one or more device ports connected to the processor; and

memory in communication with the processor,

wherein the processor is configured to:

receive a transaction request;

determine a device interface protocol selected from one of advanced host controller interface (AHCI), nonvolatile memory express (NVME), and small computer system interface over peripheral component interconnect express (SOP);

initiate a device communication process according to the determined device interface;

produce a scatter/gather list based on and unique to the transaction request, the scatter/gather list including a memory space type and associating one or more host memory addresses in the host memory address space with one or more memory address offsets and transaction sizes; and

inform a direct memory access redirector that a message identifier is associated with a requestor of the transaction request.

2. The bridge apparatus of claim 1 , wherein the processor is further configured to determine a data transfer size based on the transaction request and wherein the memory space type included in the scatter/gather list specifies a host port from among the one or more host ports.

3. The bridge apparatus of claim 1 , wherein the processor is further configured to provide a memory address range in the device memory space.

4. The bridge apparatus of claim 3 , wherein the processor is further configured to dynamically translate one or more device side memory addresses to one or more host side memory addresses.

5. The bridge apparatus of claim 3 , wherein the processor is further configured to dynamically translate one or more device side memory addresses to one or more memory addresses in the memory.

6. The bridge apparatus of claim 5 , wherein the processor is further configured to pass the transaction request from one of the one or more host ports to one of the one or more device ports.

7. A memory device controller comprising:

a processor;

memory connected to the processor; and

computer executable program code configured to execute on the processor,

wherein the computer executable program code is configured to:

receive a transaction request;

determine a device interface protocol selected from one of advanced host controller interface (AHCI), nonvolatile memory express (NVME), and small computer system interface over peripheral component interconnect express (SOP);

initiate a device communication process according to the determined device interface;

produce a scatter/gather list based on the transaction request, the scatter/gather list specifying a memory space type for the transaction request and associating one or more host memory addresses in the host memory address space with one or more memory address offsets and transaction sizes;

inform a direct memory access redirector that a message identifier is associated with a requestor of the transaction request.

8. The memory device controller of claim 7 , wherein the computer executable program code is further configured to determine a data transfer size based on the transaction request and wherein the memory space type included in the scatter/gather list specifies a use of internal memory.

9. The memory device controller of claim 7 , wherein the computer executable program code is further configured to provide a memory address range in the device memory space.

10. The memory device controller of claim 9 , wherein the computer executable program code is further configured to dynamically translate one or more device side memory addresses to one or more host side memory addresses.

11. The memory device controller of claim 9 , wherein the computer executable program code is further configured to dynamically translate one or more device side memory addresses to one or more memory addresses in the memory.

12. The memory device controller of claim 11 , wherein the computer executable program code is further configured to pass the transaction request to a host device.

13. A data storage system comprising:

a memory device controller comprising:

a processor; and

memory in communication with the processor; and one or more data storage devices,

wherein:

the processor is configured to:

receive a transaction request;

determine a device interface protocol selected from one of advanced host controller interface (AHCI), nonvolatile memory express (NVME), and small computer system interface over peripheral component interconnect express (SOP);

initiate a device communication process according to the determined device interface;

produce a scatter/gather list based on the transaction request, the scatter/gather list specifying a memory space type for the transaction request and associating one or more host memory addresses in the host memory address space with one or more memory address offsets and transaction sizes;

inform a direct memory access redirector that a message identifier is associated with a requestor of the transaction request.

14. The system of claim 13 , wherein the one or more data storage devices are peripheral component interconnect express devices.

15. The system of claim 13 , wherein the processor is further configured to determine a data transfer size based on the transaction request and wherein the memory space type included in the scatter/gather list specifies a host port.

16. The system of claim 13 , wherein the processor is further configured to provide a memory address range in the device memory space.

17. The system of claim 16 , wherein the processor is further configured to dynamically translate one or more device side memory addresses to one or more host side memory addresses.

18. The system of claim 13 , wherein the processor is further configured to dynamically translate one or more device side memory addresses to one or more memory addresses in the memory.

19. The system of claim 18 , wherein the processor is further configured to provide a memory address range in the device memory space to a host device.

20. The system of claim 19 , wherein the processor is further configured to pass a data transfer request from the host device to one of the one or more data storage devices.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 038062/0967 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2014
From: MCKAY, LUKE E.; CLEGG, ROGER T.
To: LSI CORPORATION
Reel/Frame 033426/0137 →
Continuity (1)
Provisional Application 61903708 · Nov 13, 2013
Cited By (2)
US 12,360,933 US 12,393,529