IP Library Granted Patent US 7,664,889
Granted Patent B2
US 7,664,889 · App. 11/240,177 · Granted Feb 16, 2010

DMA descriptor management mechanism

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 7,664,889
App. No.
11/240,177
Granted
Feb 16, 2010
Kind
B2
Abstract

A storage device is disclosed. The storage device includes a storage controller. The storage controller includes a direct memory access (DMA) Descriptor Manager (DM) to generate DMA descriptors by monitoring user data and a data integrity field (DIF) transferred between a host memory and a local memory based upon a function being performed.

Claims (21)

1. A storage device comprising:

a host bus adapter including a storage controller, the storage controller including:

a local memory;

a direct memory access (DMA) engine to insert a data integrity field (DIF) into a data block; and

a DMA Descriptor Manager (DM) to generate DMA descriptors by monitoring user data and the DIF transferred between a host memory and the local memory based upon a function being performed, the DIF being a serial protocol Block Guard (BG), the DM also being to store a current running DIF in an input/output (I/O) context if the function is a particular BG function, the I/O context and the current running DIF being associated with an I/O sequence that includes a current received frame and a next received frame, the current received frame being associated with and used to generate the current running DIF, and the DM being to fetch, after arrival of the next received frame, the I/O context to synthesize new descriptors based upon the current running DIF stored in the I/O context, the next received frame, and upon buffer lengths and locations in the host memory and the local memory included in the DMA descriptors, the DM generating the DMA descriptors based on a request by at least one transport layer corresponding to one or more storage links for the frames.

2. The storage device of claim 1 wherein the DMA descriptor manager generates separate descriptors based on host buffer boundaries and/or local buffer boundaries.

3. The storage device of claim 1 wherein the storage controller further comprises a storage protocol engine.

4. The storage device of claim 1 further comprising an I/O context cache memory.

5. A method comprising:

monitoring, at a direct memory access (DMA) Descriptor Manager (DM), user data and a data integrity field (DIF) transferred between a host memory and a local memory, a host bus adapter comprising the DM; and

the DM generating DMA descriptors based upon the user data and the DIF transferred between the host memory and the local memory and a function being performed, the DIF being a serial protocol Block Guard (BG), the DM also being to store a current running DIF in an input/output (I/O) context if the function is a particular BG function, the I/O context and the current running DIF being associated with an I/O sequence that includes a current received frame and a next received frame, the current received frame being associated with and used to generate the current running DIF, and the DM being to fetch, after arrival of the next received frame, the I/O context to synthesize new descriptors based upon the current running DIF stored in the I/O context, the next received frame, and upon buffer lengths and locations in the host memory and the local memory included in the DMA descriptors, the DM generating the DMA descriptors based on a request by at least one transport layer corresponding to one or more storage links for the frames.

6. The method of claim 5 further comprising the DM generating separate descriptors based on host buffer boundaries and/or a local buffer boundaries.

7. A system comprising:

a host memory; and

a host bus adapter including a storage device including:

a local memory;

a direct memory access (DMA) engine to insert a data integrity field (DIF) into a data block; and

a DMA Descriptor Manager (DM) to generate DMA descriptors by monitoring user data and the DIF transferred between the host memory and the local memory based upon a function being performed, the DIF being a serial protocol Block Guard (BG), the DM also being to store a current running DIF in an input/output (I/O) context if the function is a particular BG function, the I/O context and the current running DIF being associated with an I/O sequence that includes a current received frame and a next received frame, the current received frame being associated with and used to generate the current running DIF, and the DM being to fetch, after arrival of the next received frame, the I/O context to synthesize new descriptors based upon the current running DIF stored in the I/O context, the next received frame, and upon buffer lengths and locations in the host memory and the local memory included in the DMA descriptors, the DM generating the DMA descriptors based on a request by at least one transport layer corresponding to one or more storage links for the frames.

8. The system of claim 7 wherein the DMA descriptor manager to generate separate descriptors based on host buffer boundaries and/or local buffer boundaries.

9. The system of claim 8 wherein the storage device further comprises a storage protocol engine.

10. The system of claim 7 further comprising one or more storage protocol engines.

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