IP Library Granted Patent US 9,170,755
Granted Patent B2
US 9,170,755 · App. 13/898,903 · Granted Oct 27, 2015

Command and data selection in storage controller systems

Inventors: Tal Sharifie (Lehavim, IL); Shay Benisty (Beer Sheva, IL); Yair Baram (Metar, IL)
Assignee: SanDisk Technologies Inc.
G06F3/0659G06F3/0613G06F3/0671
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 9,170,755
App. No.
13/898,903
Granted
Oct 27, 2015
Kind
B2
Abstract

A storage controller system may include a host controller that queues host commands as data transfer commands in a plurality of queue channels. The storage controller system may also include a data storage controller that selects data transfer commands for execution. The data storage controller may select all data transfer commands associated with a host command when all of the data transfer commands are located at heads of the queue channels. Alternatively, the data storage controller may select for execution data transfer commands at heads of the queue channels when associated cache areas are available to receive data, regardless of whether all of the data transfer commands associated with a host command are at the heads. The host controller may then retrieve the data in the cache areas when all of the data to be sent to the host in response to the host command is being cached.

Claims (32)

1. A storage controller system comprising:

a data storage controller configured to:

determine first information that identifies at least two heads of at least two queue channels of a plurality of queue channels that at least two data transfer commands associated with a same host command are to be located at the same time before the data storage controller selects for execution any of the at least two data transfer commands located at any of the at least two heads;

determine second information that identifies associations between data transfer commands and host commands at each head of the plurality of queue channels;

compare the first information with the second information to determine whether the at least two data transfer commands associated with the same host command are located at the at least two heads at the same time; and

select for execution all of the at least two data transfer commands associated with the same host command when the comparison indicates that the at least two data transfer commands are located at the at least two heads at the same time.

2. The storage controller system of claim 1 , wherein the data storage controller is further configured to:

withhold selection for execution any of the at least two data transfer commands located at the at least two heads of the at least two queue channels when the comparison indicates that at least one of the at least two data transfer commands associated with the same host command is not located at the at least two heads.

3. The storage controller system of claim 1 , wherein the data storage controller is further configured to execute all of the at least two data transfer commands associated with the same host command at substantially the same time.

4. The storage controller system of claim 1 , wherein the data storage controller is further configured to send to a host all data to be sent in response to the host command without any of the at least two data transfer commands associated with the host command pending in the queue channels.

5. The storage controller system of claim 1 , further comprising a host controller configured to:

receive the host command from a host;

queue the received host command as the at least two data transfer commands in of the at least two queue channels; and

generate the first information based on the queue of the at least two data transfer commands in the at least two queue channels; and queued,

provide the first information to the data storage controller in order for the data storage controller to perform the comparison.

6. The storage controller system of claim 5 , wherein the first information comprises a bitmap associated with the host command, and wherein the bitmap comprises a plurality of bits, each bit being associated with one of the queue channels and having a value that indicates whether a data transfer command of the at least two data transfer commands is being queued in the associated queue channel.

7. A method of selecting for execution data transfer commands stored in queue channels, the method comprising:

determining, with one or more controllers, first information that identifies at least two heads of at least two queue channels of a plurality of queue channels that at least two data transfer commands associated with a same host command are to be located at the same time before the one or more controllers selects for execution any of the at least two data transfer commands located at any of the at least two heads;

determining, with the one or more controllers, second information that identifies associations between data transfer commands and host commands at each head of the plurality of queue channels;

comparing, with the one or more controllers, the first information with the second information to determine whether the at least two data transfer commands associated with the same host command are located at the at least two heads at the same time;

selecting for execution, with the one or more controllers, all of the at least two data transfer commands when the comparing indicates that the at least two data transfer commands are located at the at least two heads at the same time; and

determining not to select for execution, with the one or more controllers, any of the at least two data transfer commands when the comparing indicates that less than all of the at least two data transfer commands associated with the same host command are located at the at least two heads of the at least two queue channels.

8. The method of claim 7 , further comprising:

executing, with the one or more controllers, all of the at least two data transfer commands associated with the host command at substantially the same time.

9. The method of claim 7 , further comprising:

sending, with the one or more controllers, to a host all data requested to be sent in response to the host command without any of the at least two data transfer commands associated with the same host command pending in the at least two queue channels.

10. The method of claim 7 , further comprising:

receiving, with the one or more controllers, the host command from a host;

queuing, with the one or more controllers, the received host command as the at least two data transfer commands in the at least two queue channels;

generating, with the one or more controllers, the first information based on the queuing of the at least two data transfer commands in the at least two queue channels; and

accessing, with the one or more controllers, the first information to compare the first information with the second information.

11. The method of claim 10 , wherein the first information comprises a bitmap associated with the host command, and wherein the bitmap comprises a plurality of bits, each bit being associated with one of the queue channels and having a value that indicates whether a data transfer command of the one or more data transfer commands is being queued in the associated queue channel.

Assignments (5)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2013
From: SHARIFIE, TAL; BENISTY, SHAY; BARAM, YAIR
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 030503/0838 →
Continuity (1)
Related Publication 20140351456A1 · Nov 27, 2014