IP Library › Granted Patent US 8,917,565
Granted Patent B2
US 8,917,565 · App. 13/419,673 · Granted Dec 23, 2014

Solid state disk controller apparatus

Inventor: Dong-Ryul Ryu (Gyeonggi-do, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0659G06F11/1008G06F3/0679G06F3/0619
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,917,565
App. No.
13/419,673
Granted
Dec 23, 2014
Kind
B2
Abstract

A solid state disk controller apparatus comprises a first port; a second port having a plurality of channels; a central processing unit connected to a CPU bus; a buffer memory configured to store data to be transferred from the second port to the first port and from the first port to the second port; a buffer controller/arbiter block connected to the CPU bus and configured to control read and write operations of the buffer memory based on a control of the central processing unit; a first data transfer block connected between the first port and the buffer controller/arbiter block and configured to transfer data to be stored/read in/from the buffer memory bypassing the CPU bus; and a second data transfer block connected between the second port and the buffer controller/arbiter block and configured to transfer data to be stored/read in/from the buffer memory bypassing the CPU bus.

Claims (50)

1. A solid state drive controller comprising:

a first data transfer block connected to a first port;

a second data transfer block connected to a second port;

a plurality of FIFOs connected between the first data transfer block and the second data transfer block in parallel, and configured to transfer data between the first data transfer block and the second data transfer block;

a plurality of error checking and correction (ECC) blocks coupled to the plurality of FIFOs, respectively; and

a central processing unit (CPU) connected to the first and second data transfer blocks through a CPU bus,

wherein data is transferred from the first port to the second port through the first data transfer block, the plurality of FIFOs and the second data transfer block, bypassing the CPU bus and the CPU, and data is transferred from the second port to the first port through the second data transfer block, the plurality of FIFOs and the first data transfer block, bypassing the CPU bus and the CPU, under control of the CPU, and

wherein the plurality of ECC blocks are configured to generate ECC data based on first data stored in the plurality of FIFOs when the first data is transferred from the plurality of FIFOs to the second data transfer block and to detect errors of second data stored in the plurality of FIFOs when the second data is transferred from the second data transfer block to the plurality of FIFOs.

2. The solid state drive controller of claim 1 , wherein the first data transfer block comprises:

a host interface control block configured to communicate data and commands with an external host through the first port; and

a FIFO configured to provide a data transfer path between the host interface control block and a buffer memory bypassing the CPU bus and the CPU.

3. The solid state drive controller of claim 2 , wherein the second data transfer block comprises:

a memory interface control block configured to communicate the data with a plurality of semiconductor memories and the plurality of FIFOs,

wherein the plurality of FIFOs are configured to communicate data with the buffer memory bypassing the CPU bus and the CPU.

4. The solid state drive controller of claim 1 , wherein the first data transfer block is configured to receive a command from the first port and to communicate the received command to the CPU through the CPU bus, bypassing a data transfer path for transferring the data between the first and second data transfer blocks.

5. The solid state drive controller of claim 4 , wherein the first data transfer block comprises a first register, wherein the first data transfer block is configured to store the received command into the first register, and wherein the CPU is configured to read the command stored in the first register through the CPU bus.

6. The solid state drive controller of claim 5 , wherein the CPU is configured to communicate the read command to the second data transfer block, bypassing the data path between the first and second data transfer blocks.

7. The solid state drive controller of claim 6 , wherein the second data transfer block comprises a second register, and wherein the CPU is configured to write the read command into the second register.

8. The solid state drive controller of claim 1 , further comprising:

a buffer memory connected between the first data transfer block and the plurality of FIFOs, and configured to store the data transferred between the first and second ports.

9. The solid state drive controller of claim 8 , wherein the data transferred from the first or second data transfer block is stored into the buffer memory, and the data read from the buffer memory is transferred to the first or second data transfer block.

10. The solid state drive controller of claim 8 , wherein the second data stored in the plurality of FIFOs are transferred to the buffer memory after the plurality of ECC blocks detects the errors, and then the errors detected by the plurality of ECC blocks are corrected in the buffer memory.

11. The solid state drive controller of claim 8 , further comprising:

a buffer controller/arbiter block configured to transfer the data between the first and second data transfer blocks, bypassing the CPU bus and the CPU, and further configured to control read and write operations of the buffer memory,

wherein the data transferred from the first or second data transfer block is stored into the buffer memory, and the data read from the buffer memory is transferred to the first or second data transfer block, and

wherein the buffer controller/arbiter block is configured to control the read and write operations of the buffer memory, under the control of the CPU through the CPU bus.

12. The solid state drive controller of claim 11 , wherein when an ECC block of the plurality of ECC blocks detects an error in the data transferred between the first port and the second port, the ECC block requests the buffer controller/arbiter block to correct the erroneous data in the buffer memory.

13. A method of operating a solid state drive controller, the method comprising:

communicating data transfer commands to a central processing unit (CPU) through a CPU bus, bypassing a data transfer path between a first port and a second port;

transferring first data from the first port to a plurality of FIFOs along the data transfer path, bypassing the CPU bus and the CPU, in response to a first command from the CPU;

generating ECC data based on the first data stored in the plurality of FIFOs;

transferring the first data from the plurality of FIFOs to the second port along the data transfer path bypassing the CPU bus and the CPU;

transferring second data from the second port to the plurality of FIFOs along the data transfer path, bypassing the CPU bus and the CPU, in response to a second command from the CPU;

detecting errors of the second data stored in the plurality of FIFOs; and

transferring the second data stored in the plurality of FIFOs to the first port along the data transfer path bypassing the CPU bus and the CPU,

wherein the errors of the second data are corrected while the second data is transferred from the plurality of FIFOs to the first port.

14. The method of claim 13 , wherein transferring the second data from the plurality of FIFOs to the first port comprises:

storing the second data transferred from the plurality of FIFOs into a buffer memory; and

transferring the data read from the buffer memory to the first port.

15. The method of claim 14 , wherein

the errors of the second data are corrected when the second data is stored in the buffer memory.

16. A solid state drive controller comprising:

a host interface connected to a first port electrically coupled to an external host;

a memory interface connected to a second port electrically coupled to a plurality of non-volatile memories through a plurality of channels;

a central processing unit (CPU) connected to the host interface and the memory interface through a CPU bus;

a plurality of FIFOs corresponding to the plurality of channels, respectively, and configured to provide a plurality of data transfer paths between the memory interface and a buffer memory, the plurality of FIFOs temporarily storing data transferred from the first port to the second port and from the second port to the first port via the plurality of data transfer paths, under control of the CPU; and

a plurality of error checking and correction (ECC) blocks connected to the plurality of FIFOs, respectively, and configured to detect errors of the data stored in the plurality of FIFOs,

wherein each of the plurality of data transfer paths bypasses the CPU bus and the CPU.

17. The solid state drive controller of claim 16 , wherein the data stored in the plurality of FIFOs are transferred to the buffer memory after the plurality of ECC blocks detects the errors, and then the errors detected by the plurality of ECC blocks are corrected in the buffer memory.

18. The solid state drive controller of claim 1 , wherein the second port is electrically coupled to a plurality of semiconductor memories through a plurality of channels.

Priority Claims (1)
KR 2005-2611 · Jan 11, 2005 · national
Continuity (3)
Continuation 12491813 · Jun 25, 2009
Continuation 11311990 · Dec 19, 2005
Related Publication 20120173806A1 · Jul 5, 2012