METHOD AND SYSTEM FOR QUEUING TRANSFERS OF MULTIPLE NON-CONTIGUOUS ADDRESS RANGES WITH A SINGLE COMMAND
First Claim
1. A method for queuing a plurality of transfers associated with a single command, the method comprising:
- sending a single command over an interface to request a storage device to transfer of a plurality of non-continuous address ranges; and
receiving a single interrupt upon completion of the transfer of the plurality of non-continuous address ranges.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for queuing transfers of multiple non-contiguous address ranges within a single command are disclosed. Embodiments of systems include system processors, memory to store data and executable software, and storage devices to receive transfer commands stored in system memory. A host controller interface driver is executed by one or more system processors and collects multiple non-continuous address ranges from storage-device transfer requests and records starting addresses and quantities of data to transfer for each non-continuous range in a tagged command list. It records the number of address ranges in the tagged command list, and a tagged-transfer opcode in a command, and stores the command and the tagged command list in a command table for the storage device. It records a base address for the command table in memory and an offset for the tagged command list into a command header, which is stored in a command queue.
-
Citations
25 Claims
-
1. A method for queuing a plurality of transfers associated with a single command, the method comprising:
-
sending a single command over an interface to request a storage device to transfer of a plurality of non-continuous address ranges; and receiving a single interrupt upon completion of the transfer of the plurality of non-continuous address ranges. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for requesting transfer of a plurality of non-contiguous address ranges in a storage device, the method comprising:
-
recording for each of the plurality of non-continuous address ranges, a starting address and quantity of data to transfer, in a tagged command list; recording a count of the number of non-contiguous address ranges, recorded in the tagged command list, and a tagged-transfer opcode in a command, said command and said tagged command list being stored in a command table in a memory; and recording a base address for the command table in memory and an offset for the tagged command list in a command header, said command header being one of a plurality of command headers stored in a command queue. - View Dependent Claims (11, 12, 13, 14)
-
-
15. An article of manufacture including a machine readable medium, said machine readable medium storing state and/or executable data, which when accessed by one or more machines causes said one or more machines to:
-
collect a plurality of non-continuous address ranges from a corresponding plurality of transfer requests; record for each of the plurality of non-continuous address ranges, a starting address and quantity of data to transfer, in a tagged command list; record a count of the number of non-contiguous address ranges, recorded in the tagged command list, and a tagged-transfer opcode in a command, said command and said tagged command list being stored in a command table in a memory; and record a base address for the command table in memory and an offset for the tagged command list in a command header, said command header being one of a plurality of command headers stored in a command queue. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A system for requesting transfer of a plurality of non-contiguous address ranges with a single command, the system comprising:
-
a one or more system processors; a system memory to store data and executable software; a storage device coupled with the system memory to receive transfer commands stored in the system memory; and an processor executable host controller interface driver stored in the system memory that when executed by the one or more system processors causes said to one or more system processors to; collect a plurality of non-continuous address ranges from a corresponding plurality of storage-device transfer requests; record for each of the plurality of non-continuous address ranges, a starting address and quantity of data to transfer, in a tagged command list; record a count of the number of non-contiguous address ranges, recorded in the tagged command list, and a tagged-transfer opcode in a command, said command and said tagged command list being stored in a command table in the system memory for said storage device; and record a base address for the command table in memory and an offset for the tagged command list in a command header, said command header being one of a plurality of command headers stored in a command queue. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification