IP Library Granted Patent US 9,804,783
Granted Patent B1
US 9,804,783 · App. 14/881,052 · Granted Oct 31, 2017

Hierarchical host controller for SSD device

Inventors: Shengkun Bao (San Jose, CA); Wing Hui (San Jose, CA); Ananthanarayanan Nagarajan (Palo Alto, CA); Kin Ming Chan (Fremont, CA)
Assignee: SK Hynix Memory Solutions Inc.
G06F3/061G06F3/0635G06F3/0659G06F3/0685
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,804,783
App. No.
14/881,052
Granted
Oct 31, 2017
Kind
B1
Abstract

A command is received from a host. It is determined which paths in a plurality of paths are enabled. The type of command and the length associated with the command, if applicable, are determined. A path to use to perform the command is selected from the plurality of paths based at least in part on (1) which paths are determined to be enabled and one or more of the following (2 a ) the type of the command or (2 b ) the length associated with the command. The selected path is used to perform the command.

Claims (55)

1. A system, comprising:

a plurality of paths, wherein the plurality of paths is categorized at least by operations that the plurality of paths is eligible to handle, the plurality of paths includes one or more of the following: (1) a full feature set, soft-coded path, (2) a reduced feature set, soft-coded path, or (3) a hard-coded path; and

a path assignor configured to:

receive a command from a host;

determine which paths, in the plurality of paths, are eligible to handle the command based on at least a part of;

(1) operation of the command or (2) a length associated with the command, if applicable;

select, from the plurality of paths, a path to use to perform the command based at least in part on (1) which paths are determined to be enabled and one or more of the following (2a) the operation of the command or (2b) the length associated with the command; and

use the selected path to perform the command.

2. The system recited in claim 1 , wherein the system includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

3. The system recited in claim 1 , wherein:

the full feature set, soft-coded path includes a first set of firmware configured to run on a first embedded processor;

the reduced feature set, soft-coded path includes a second set of firmware configured to run on a second embedded processor; and

the hard-coded path includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

4. The system recited in claim 3 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path, (2) the reduced feature set, soft-coded path, and (3) the hard-coded path are enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path;

in the event the command is an I/O type of command and the length associated with the command is less than a threshold, select the reduced feature set, soft-coded path; and

in the event the command is an I/O type of command and the length associated with the command is greater than a threshold, select the hard-coded path.

5. The system recited in claim 4 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path and (2) the reduced feature set, soft-coded path are enabled and the hard-coded path is not enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path; and

in the event the command is an I/O type of command, select the reduced feature set, soft-coded path.

6. A method, comprising:

receiving a command from a host;

determining which paths, in a plurality of paths, are enabled, wherein the plurality of paths is categorized at least by operations that the plurality of paths is eligible to handle, the plurality of paths includes one or more of the following: (1) a full feature set, soft-coded path, (2) a reduced feature set, soft-coded path, or (3) a hard-coded path;

determining (1) operation of the command or (2) a length associated with the command, if applicable;

selecting, from the plurality of paths, a path to use to perform the command based at least in part on (1) which paths are determined to be enabled and one or more of the following (2a) the operation of the command or (2b) the length associated with the command; and

using the selected path to perform the command.

7. The method recited in claim 6 , wherein the method is performed by a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

8. The method recited in claim 6 , wherein:

the full feature set, soft-coded path includes a first set of firmware configured to run on a first embedded processor;

the reduced feature set, soft-coded path includes a second set of firmware configured to run on a second embedded processor; and

the hard-coded path includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

9. The method recited in claim 8 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path, (2) the reduced feature set, soft-coded path, and (3) the hard-coded path are enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path;

in the event the command is an I/O type of command and the length associated with the command is less than a threshold, select the reduced feature set, soft-coded path; and

in the event the command is an I/O type of command and the length associated with the command is greater than a threshold, select the hard-coded path.

10. The method recited in claim 9 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path and (2) the reduced feature set, soft-coded path are enabled and the hard-coded path is not enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path; and

in the event the command is an I/O type of command, select the reduced feature set, soft-coded path.

11. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a command from a host;

determining which paths, in a plurality of paths, are enabled, wherein the plurality of paths is categorized at least by operations that the plurality of paths is eligible to handle, the plurality of paths includes one or more of the following: (1) a full feature set, soft-coded path, (2) a reduced feature set, soft-coded path, or (3) a hard-coded path;

determining (1) operation of the command or (2) a length associated with the command, if applicable;

selecting, from the plurality of paths, a path to use to perform the command based at least in part on (1) which paths are determined to be enabled and one or more of the following (2a) the operation of the command or (2b) the length associated with the command; and

using the selected path to perform the command.

12. The computer program product recited in claim 11 , wherein:

the full feature set, soft-coded path includes a first set of firmware configured to run on a first embedded processor;

the reduced feature set, soft-coded path includes a second set of firmware configured to run on a second embedded processor; and

the hard-coded path includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

13. The computer program product recited in claim 12 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path, (2) the reduced feature set, soft-coded path, and (3) the hard-coded path are enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path;

in the event the command is an I/O type of command and the length associated with the command is less than a threshold, select the reduced feature set, soft-coded path; and

in the event the command is an I/O type of command and the length associated with the command is greater than a threshold, select the hard-coded path.

14. The computer program product recited in claim 13 , wherein selecting the path includes in the event (1) the full feature set, soft-coded path and (2) the reduced feature set, soft-coded path are enabled and the hard-coded path is not enabled:

in the event the command is an administrative type of command, select the full feature set, soft-coded path; and

in the event the command is an I/O type of command, select the reduced feature set, soft-coded path.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: BAO, SHENGKUN; NAGARAJAN, ANANTHANARAYANAN
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 043717/0758 →
Continuity (1)
Provisional Application 62065447 · Oct 17, 2014