IP Library Granted Patent US 8,949,475
Granted Patent B2
US 8,949,475 · App. 14/217,802 · Granted Feb 3, 2015

Efficient connection management in a SAS target

Inventor: Arie Peled (Tel-Mond, IL)
Assignee: Apple Inc.
G06F3/0661G11B5/09G06F3/0617G06F3/068G06F3/0611G06F3/0655G06F3/0689
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 8,949,475
App. No.
14/217,802
Granted
Feb 3, 2015
Kind
B2
Abstract

A method includes pre-configuring a hardware-implemented front-end of a storage device with multiple contexts of respective connections conducted between one or more hosts and the storage device. Storage commands, which are received in the storage device and are associated with the connections having the pre-configured contexts, are executed in a memory of the storage device using the hardware-implemented front-end. Upon identifying a storage command associated with a context that is not pre-configured in the hardware-implemented front-end, software of the storage device is triggered to configure the context in the hardware-implemented front-end, and the storage command is then executed using the hardware-implemented front-end in accordance with the context configured by the software.

Claims (28)

1. A method for data storage, comprising:

in a hardware-implemented front-end of a storage device,

opening at least one connection;

executing, in a memory of the storage device, commands associated with at least one connection;

closing the at least one connection after executing the commands;

caching one or more contexts of respective one or more connections that were most recently closed, wherein each context of the one or more contexts includes encryption and decryption state variables;

receiving a command associated with a given connection that is currently open;

checking the given connection against the cached contexts;

in response to identifying that the given connection is one of the one or more connections that were most recently closed, re-opening the given connection using one of the cached contexts; and

executing the command in accordance with the one of the contexts.

2. The method according to claim 1 , wherein the commands are received in accordance with 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 3 , wherein executing the commands comprises carrying out the commands without involvement of a Central Processing Unit (CPU) of the storage device.

5. A data storage apparatus, comprising:

an interface, which is arranged to communicate with one or more hosts; and

a hardware-implemented front-end, which is configured to:

open at least one connection, to execute in a memory of the apparatus storage commands associated with the at least one connection;

close the at least one connection after executing the storage commands;

cache one or more contexts of respective one or more connections that were most recently closed, wherein each context of the one or more contexts includes encryption and decryption state variables;

receive a storage command associated with a given connection that is not currently open;

check the given connection against the cached contexts;

in response to identifying that the given connection is one of the one or more connections that were most recently closed, re-open the given connection using one of the cached contexts; and

execute the storage command in accordance with the one of the cached contexts.

6. The apparatus according to claim 5 , wherein the storage commands are received in accordance with a Serial Attached Storage (SAS) storage protocol.

7. The apparatus according to claim 5 , wherein the interface, the hardware-implemented front-end and the memory are comprised in a Solid State Disk (SSD).

8. The apparatus according to claim 5 , wherein the hardware-implemented front-end is further configured to close each connection following a predefined inactivity period on the connection.

9. The apparatus according to claim 5 , wherein the hardware-implemented front-end is further configured to execute the storage commands without involvement of a Central Processing Unit (CPU) of the apparatus.

10. the method according to claim 1 , wherein closing the at least one connection comprises closing each connection following a predefined inactivity period on the connection.

Continuity (4)
Division 13439860 · Apr 5, 2012
Provisional Application 61476287 · Apr 17, 2011
Provisional Application 61528771 · Aug 30, 2011
Related Publication 20140201391A1 · Jul 17, 2014