IP Library Granted Patent US 10,089,041
Granted Patent B2
US 10,089,041 · App. 15/014,223 · Granted Oct 2, 2018

Efficient connection management in a SAS target

Inventor: Arie Peled (Tel-Mond, IL)
Assignee: Apple Inc.
G06F3/0661G06F3/068G06F3/0611G06F3/0617G06F3/0619G06F3/0655G06F3/0659G06F3/0688G06F3/0689G11B5/09
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,089,041
App. No.
15/014,223
Granted
Oct 2, 2018
Kind
B2
Abstract

A method for data storage includes, in a storage device that communicates with a host over a storage interface for executing a storage command in a memory of the storage device, estimating an expected data under-run between fetching data for the storage command from the memory and sending the data over the storage interface. A data size to be prefetched from the memory, in order to complete uninterrupted execution of the storage command, is calculated in the storage device based on the estimated data under-run. The storage command is executed in the memory while prefetching from the memory data of at least the calculated data size.

Claims (19)

1. A method for data storage, comprising:

in a storage device that executes storage commands in a memory of the storage device, maintaining a hash table that stores tags of active connections and is accessed by hash values that are produced by applying a hash function to the tags extracted from received storage commands, wherein the hash table comprises a plurality of entries each configured to store up to N tags associated with a respective one of the hash values, wherein each of the active connections is associated with a unique value in the hash table;

receiving in the storage device a storage command that is associated with a new connection and comprises a tag of the new connection;

applying the hash function to the tag so as to produce a hash value;

performing a lookup in the hash table using the hash value to determine if the tag of the new connection matches one of the tags in an entry of the hash table associated with the hash value;

responsive to detecting that the tag of the new connection matches one of the tags in the entry of the hash table associated with the hash value, outputting an error message including an indication that the new connection has a duplicate tag with an existing active connection; and

declining the new connection upon detecting that all the N tags in the entry associated with the hash value are already occupied if the tag does not otherwise match one of the tags in the entry of the hash table.

2. The method according to claim 1 , wherein the storage command and the connection conform to a Serial Attached Storage (SAS) storage protocol.

3. The method according to claim 1 , wherein the storage device comprises a Solid State Disk (SSD).

4. The method according to claim 1 , wherein declining the new connection comprises sending a declination message to a host that initiated the storage command.

5. The method according to claim 4 , wherein sending the declination message comprises sending a Serial Attached Storage (SAS) “task set full” message.

6. A data storage apparatus, comprising:

an interface, which is arranged to receive storage commands for execution in a memory of the apparatus; and

storage circuitry, which is arranged to maintain a hash table that stores tags of active connections and is accessed by hash values produced by applying a hash function to the tags extracted from received storage commands, wherein each of the active connections is associated with a unique value in the hash table, wherein the hash table comprises a plurality of entries each configured to store up to N tags associated with a respective one of the hash values, to receive via the interface a storage command that is associated with a new connection and comprises a tag of the new connection, to apply the hash function to the tag so as to produce a hash value, to perform a lookup in the hash table using the hash value to determine if the tag of the new connection matches one of the tags in an entry of the hash table associated with the hash value, and, responsive to detecting that the tag of the new connection matches one of the tags in an entry of the hash table associated with the hash value, to output an error message including an indication that the new connection has a duplicate tag with an existing active connection;

wherein the storage circuitry is further arranged to decline the new connection upon detecting that all the N tags in the entry associated with the hash value are already occupied if the tag does not otherwise match one of the tags in the entry of the hash table.

7. The apparatus according to claim 6 , wherein the storage command and the connection conform to a Serial Attached Storage (SAS) storage protocol.

8. The apparatus according to claim 6 , wherein the interface, the storage circuitry and the memory are comprised in a Solid State Disk (SSD).

9. The apparatus according to claim 6 , wherein the storage circuitry is arranged to decline the new connection by sending a declination message to a host that initiated the storage command.

10. The apparatus according to claim 9 , wherein the declination message comprises a Serial Attached Storage (SAS) “task set full” message.

Continuity (4)
Division 13439863 · Apr 5, 2012
Provisional Application 61476287 · Apr 17, 2011
Provisional Application 61528771 · Aug 30, 2011
Related Publication 20160154598A1 · Jun 2, 2016