IP Library Granted Patent US 7,130,932
Granted Patent B1
US 7,130,932 · App. 10/191,958 · Granted Oct 31, 2006

Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device

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,130,932
App. No.
10/191,958
Granted
Oct 31, 2006
Kind
B1
Abstract

A method and apparatus for increasing the performance of communications between a host processor and an interconnected device is provided. The present invention allows data transfers to be performed without requiring frequent interrupts of the host processor by the adapter interconnecting the host processor to the device. In addition, the present invention allows the host to issue commands without writing extensive commands or data to the adapter. Instead, the host is merely required to increment a value held by a register, and to place commands in memory that is local to the host. Furthermore, the present invention allows direct memory access operations to commence even in the absence of receiving confirmation from the device that the device is ready to perform such operations. The present invention is suitable for interconnecting a host system to one or more devices, including in connection with the provisions of a redundant array of inexpensive disks.

Claims (25)

1. A method for passing command information from a host to a device adapter, comprising:

a. providing a command block from said host, wherein said command block comprises at least initial scatter/gather data and a command to transfer data;

b. loading said command block into memory local to said host;

c. incrementing a producer register;

d. fetching said command block from said memory and to said device adapter;

e. initiating operation of a direct memory access engine, without waiting for confirmation from a device that said device is ready to perform a data transfer operation;

f. performing said command to transfer data contained in said command block; and

g. incrementing a consumer register.

2. The method of claim 1 , wherein said initial scatter/gather data comprises a start address and a data length.

3. The method of claim 1 , wherein said command is performed without generating an interrupt requiring servicing by said host.

4. The method of claim 1 , wherein said step of fetching said command block comprises accessing said memory local to said host from said device adapter.

5. The method of claim 1 , wherein said producer register and said consumer register are established as part of said device adapter.

6. The method of claim 1 , further comprising interrupting said host after said step of performing said command contained in said command block.

7. The method of claim 1 , further comprising issuing a single interrupt from said controller and to said host, wherein more than one interrupt is transferred in accordance with a command included in said command block.

8. The method of claim 1 , wherein said device adapter is operatively connected to a storage device.

9. The method of claim 1 , wherein said command comprises at least one of a command to write data to said storage device and a command to read data from said storage device.

10. The method of claim 1 , further comprising generating a host interrupt in said device adapter, wherein said host interrupt is related to a plurality of device interrupts.

11. The method of claim 1 , wherein said control block comprises a scatter/gather list.

12. The method of claim 1 , further comprising writing an address of a first command block in memory.

13. The method of claim 12 , wherein said address of a first command block is written to a control block address register.

14. The method of claim 1 , wherein said command block comprises an address for scatter/gather data.

15. The method of claim 14 , further comprising loading said scatter/gather data into a scatter/gather engine.

16. The method of claim 15 , further comprising arming a data DMA engine in response to a non-zero address for scatter/gather data.

17. The method of claim 15 , wherein said command contained in said command block comprises a read operation, wherein a data DMA engine receives data from said scatter/gather engine, and wherein said data DMA engine retrieves data identified by said scatter/gather data received from said scatter/gather engine.

18. The method of claim 1 , wherein said device comprises at least one of an ATA and a SATA device.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2012
From: HUPPER ISLAND LLC
To: RPX CORPORATION
Reel/Frame 028142/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2011
From: ADPT CORPORATION
To: HUPPER ISLAND LLC
Reel/Frame 026459/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2002
From: GHAFFARI, BAHAREH
To: ADAPTEC, INC.
Reel/Frame 013099/0518 →