IP Library Granted Patent US 9,195,592
Granted Patent B1
US 9,195,592 · App. 14/097,086 · Granted Nov 24, 2015

Advanced management of a non-volatile memory

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,195,592
App. No.
14/097,086
Granted
Nov 24, 2015
Kind
B1
Abstract

A method of managing a non-volatile memory module, the method may include: allocating, by a memory controller, logically erased physical blocks of a non-volatile memory module to a spare block pool; allocating, by the memory controller, physical blocks from the spare block pool to become buffer blocks of a buffer of the non-volatile memory module; and controlling, by the memory controller, a utilization of the buffer blocks of the buffer by applying a page based buffer management scheme.

Claims (37)

1. A method of managing a non-volatile memory module, the method comprising:

allocating, by a memory controller, logically erased physical blocks of a non-volatile memory module to a spare block pool;

allocating, by the memory controller, physical blocks from the spare block pool to become buffer blocks of a buffer of the non-volatile memory module; and

controlling, by the memory controller, a utilization of the buffer blocks of the buffer by applying a page based buffer management scheme.

2. The method according to claim 1 wherein the allocating of the logically erased physical blocks comprises:

initially allocating a predefined number of physical blocks to the spare block pool; and

further allocating to the spare block pool additional logically erased physical blocks.

3. The method according to claim 1 wherein the controlling of the utilization of the buffer blocks comprises controlling cleaning operations in response to a status of the buffer.

4. The method according to claim 1 further comprising controlling, by the memory controller, a utilization of a memory section of the non-volatile memory module that differs from the buffer by applying a block based buffer management scheme.

5. The method according to claim 4 comprising managing a logical block to physical block mapping data structure that maps logical blocks to mapped physical blocks.

6. The method according to claim 4 comprising receiving data sectors to be written to the non-volatile memory module and determining whether to write the data sectors to the buffer or to a mapped physical block.

7. The method according to claim 6 wherein the determining is responsive to a state of the buffer.

8. The method according to claim 1 wherein the logically erased physical blocks comprise all logically erased physical blocks of the non-volatile memory module.

9. The method according to claim 1 wherein the logically erased physical blocks form only a part of all logically erased physical blocks of the non-volatile memory module.

10. The method according to claim 1 comprising allocating the logically erased physical blocks to multiple spare block pools, wherein different spare block pools are associated with different types of programming, wherein different types of programming differ from each other by a number of logical bits programmed per flash memory cell; and allocating, by the memory controller, physical blocks from the multiple spare block pools to become buffer blocks of the buffer of the non-volatile memory module.

11. The method according to claim 10 wherein the allocating of the physical blocks from the multiple spare block pools comprising independently managing the multiple spare block pools.

12. The method according to claim 1 further comprising allocating, by the memory controller, physical blocks that have become buffer blocks of a buffer of the non-volatile memory module to a sequential portion of the non-volatile memory module.

13. The method according to claim 1 further comprising allocating, by the memory controller, physical blocks from the spare block pool to a sequential portion of the non-volatile memory module.

14. A non-transitory computer readable medium that stores instructions that once executed by a memory controller cause the memory controller to:

allocate logically erased physical blocks of a non-volatile memory module to a spare block pool;

allocate physical blocks from the spare block pool to become buffer blocks of a buffer of the non-volatile memory module; and

control a utilization of the buffer blocks of the buffer by applying a page based buffer management scheme.

15. The non-transitory computer readable medium according to claim 14 that stores instructions that once executed by a memory controller cause the memory controller to initially allocate a predefined number of physical blocks to the spare block pool; and further allocate to the spare block pool additional logically erased physical blocks.

16. The non-transitory computer readable medium according to claim 14 that stores instructions that once executed by a memory controller cause the memory controller to control cleaning operations in response to a status of the buffer.

17. The non-transitory computer readable medium according to claim 14 that stores instructions that once executed by a memory controller cause the memory controller to control a utilization of a memory section of the non-volatile memory module that differs from the buffer by applying a block based buffer management scheme.

18. The non-transitory computer readable medium according to claim 17 that stores instructions that once executed by a memory controller cause the memory controller to manage a logical block to physical block mapping data structure that maps logical blocks to mapped physical blocks.

19. The non-transitory computer readable medium according to claim 14 that stores instructions that once executed by a memory controller cause the memory controller to receive data sectors to be written to the non-volatile memory module and determine whether to write the data sectors to the buffer or to a mapped physical block.

20. The non-transitory computer readable medium according to claim 19 that stores instructions that once executed by a memory controller cause the memory controller to determine in response to a state of the buffer.

21. A memory controller, comprising:

an allocation circuit that is arranged to allocate logically erased physical blocks of a non-volatile memory module to a spare block pool and to allocate physical blocks from the spare block pool to become buffer blocks of a buffer of the non-volatile memory module; and

a buffer memory controller that is arranged to control a utilization of the buffer blocks of the buffer by applying a page based buffer management scheme.

22. The memory controller according to claim 21 wherein the allocation circuit is arranged to initially allocate a predefined number of physical blocks to the spare block pool; and further allocate to the spare block pool additional logically erased physical blocks.

23. The memory controller according to claim 21 wherein the buffer memory controller is arranged to control cleaning operations in response to a status of the buffer.

24. The memory controller according to claim 21 comprising a block control circuit that is arranged to control a utilization of a memory section of the non-volatile memory module that differs from the buffer by applying a block based buffer management scheme.

25. The memory controller according to claim 24 that is arranged to manage a logical block to physical block mapping data structure that maps logical blocks to mapped physical blocks.

26. The memory controller according to claim 24 comprising an interface that is arranged to receive data sectors to be written to the non-volatile memory module and wherein the memory controller is arranged to determine whether to write the data sectors to the buffer of to a mapped physical block.

27. The memory controller according to claim 26 wherein the determining is responsive to a state of the buffer.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2015
From: WEINGARTEN, HANAN; MALY, IGAL; SEGAL, AVIGDOR
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 036826/0579 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →