IP Library Granted Patent US 10,664,391
Granted Patent B2
US 10,664,391 · App. 16/000,402 · Granted May 26, 2020

Controller and operating method thereof

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,664,391
App. No.
16/000,402
Granted
May 26, 2020
Kind
B2
Abstract

A controller includes: a counter suitable for counting a number of valid pages in each of a plurality of blocks in a memory device as first parameter values; a block selector suitable for selecting one or more first candidate blocks, the first parameter value of each of which is within a predetermined range, and selecting a victim block among the one or more first candidate blocks; and a processor suitable for controlling the memory device to read valid data stored in the victim block and program the valid data into a target block in the memory device.

Claims (42)

1. A controller comprising:

a block selector suitable for:

selecting one or more first candidate blocks, a first parameter value of each of which is within a predetermined range;

selecting, among the one or more first candidate blocks, one or more second candidate blocks, a second parameter value of each of which is a minimum value, if a number of the one or more first candidate blocks is greater than or equal to two; and

detecting a second candidate block as a victim block if a number of the one or more second candidate blocks is one; and

a processor suitable for controlling a memory device to read valid data stored in the victim block and program the valid data into a target block in the memory device,

wherein each first parameter value represents a number of valid pages in each of a plurality of blocks in the memory device, and

wherein each second parameter value represents a number of times that valid data stored in each of the one or more first candidate blocks are programmed into the target block.

2. The controller of claim 1 , wherein if the number of the one or more second candidate blocks is greater than or equal to two, the block selector selects, among the second candidate blocks, one or more third candidate blocks, a third parameter value of each of which is a minimum value,

wherein if a number of the one or more third candidate blocks is one, the block selector detects a third candidate block as the victim block, and

wherein each third parameter represents a number of times that valid data stored in each of the one or more second candidate blocks are read.

3. The controller of claim 2 , wherein if the number of the one or more third candidate blocks is greater than or equal to two, the block selector selects, among the third candidate blocks, one or more fourth candidate blocks, the first parameter value of each of which is a minimum value, and

wherein if a number of the one or more fourth candidate blocks is one, the block selector detects a fourth candidate block as the victim block.

4. The controller of claim 1 , wherein if the number of the one or more first candidate blocks is one, the block selector selects a first candidate block as the victim block.

5. The controller of claim 1 , wherein the processor controls the memory device to perform an erase operation on the victim block.

6. The controller of claim 1 , wherein the processor controls the memory device to perform a program operation on a page unit of the target block.

7. The controller of claim 6 , wherein the processor controls the memory device to program dummy data into a chunk of the target block which is not programmed, during the program operation.

8. The controller of claim 7 , wherein the processor controls the memory device to sequentially read the valid data stored in the victim block.

9. The controller of claim 8 , further comprising:

a cache memory suitable for storing the read valid data.

10. An operating method of a controller, comprising:

selecting one or more first candidate blocks, a first parameter value of each of which is within a predetermined range;

selecting, among the one or more first candidate blocks, one or more second candidate blocks, a second parameter of each of which is a minimum value, if a number of the one or more first candidate blocks is greater than or equal to two;

detecting a second candidate as a victim block if a number of the one or more second candidate blocks is one;

reading valid data stored in the victim block; and

programming the valid data into a target block,

wherein each first parameter value represents a number of valid pages in each of a plurality of blocks in a memory device, and

wherein each second parameter value represents a number of times that valid data stored in each of the one or more first candidate blocks are programmed into the target block.

11. The operating method of claim 10 , further comprising:

selecting, among the one or more second candidate blocks, one or more third candidate blocks, a third parameter of each of which is a minimum value, if the number of the one or more second candidate blocks is greater than or equal to two; and

detecting a third candidate block as the victim block if a number of the one or more third candidate blocks is one,

wherein the third parameter represents a number of times that valid data stored in each of the one or more second candidate blocks are read.

12. The operating method of claim 11 , further comprising:

selecting, among the one or more third candidate blocks, one or more fourth candidate blocks, the first parameter of each of which has a minimum value, if the number of the one or more third candidate blocks is greater than or equal to two; and

detecting a fourth candidate block as the victim block if a number of the one or more fourth candidate blocks is one.

13. The operating method of claim 10 , further comprising selecting a first candidate block as the victim block if the number of the one or more first candidate blocks is one.

14. The operating method of claim 10 , further comprising performing an erase operation on the victim block.

15. The operating method of claim 10 , wherein the programming of the valid data is carried out to perform a program operation on a page unit of the target block.

16. The operating method of claim 15 , wherein the programming of the valid data is carried out to program dummy data for a chunk of the target block which is not programmed, during the program operation.

17. The operating method of claim 10 , wherein the reading of the valid data is carried out to sequentially read the valid data stored in the victim block.

18. The operating method of claim 17 , further comprising:

storing the read valid data into a cache memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2024
From: SK HYNIX INC.
To: MIMIRIP LLC
Reel/Frame 067335/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: JANG, EUN-SOO
To: SK HYNIX INC.
Reel/Frame 046304/0478 →