Memory device and memory control circuit
A memory device and a memory control circuit are provided. The memory control circuit is used to control a memory cell array. A processing circuit of the memory control circuit is configured to obtain a mapping group identification according to a namespace identification and a logical address through a namespace-table. The processing circuit is configured to obtain a block group identification and a mapping entry through a logical-to-virtual-mapping-table according to the mapping group identification and the offset of the logical address in the mapping group identification. The processing circuit is configured to obtain a super block identification according to the block group identification and the virtual block number through a virtual-to-physical-block-table. The processing circuit is configured to obtain a physical block number according to the super block identification, a channel, a die and a plane through the virtual-to-physical-block-table.
The disclosure relates in general to an electronic device and a control circuit, and more particularly to a memory device and a memory control circuit.
BACKGROUNDFor a memory cell array with a capacity of 8 TB, 32-bit addressing technology can currently be used to define the address of a 4 KB block. However, for a memory cell array with a capacity of 16 TB (or higher), the number of addressing bits must be increased and cannot be maintained at 32 bits.
Although the endurance group addressing technology has been developed to maintain the amount of addressed data at 32 bits. However, the endurance group addressing technology will cause the problem of writing efficiency being halved (or even lower). For example, suppose we have two endurance groups, each write on a group will only utilize the half of channel since the write between group can not interfere with each other. Therefore, researchers are working hard to develop a new addressing technology that aims to enable memory cell arrays with a capacity of 16 TB (or higher) to still use 32 bits for addressing and maintain write efficiency.
SUMMARYThe disclosure is directed to a memory device and a memory control circuit. Through the operation of a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table, a memory cell array with a capacity of 16 TB (or higher) could use a 32-bit virtual address without increasing the number of addressing bits or reducing writing efficiency.
According to one embodiment, a memory control circuit is provided. The memory control circuit is used for controlling a memory cell array. The memory control circuit includes a storage unit and a processing circuit. The storage unit is used for storing a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table. The processing circuit is connected to the storage unit. The processing circuit is configured to obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table; obtain a block group identification and a mapping entry according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table; obtain a super block identification according to the block group identification and a virtual block number through a virtual-to-physical-block-table; and obtain a physical block number through the virtual-to-physical-block-table.
According to another embodiment, a memory control circuit is provided. The memory control circuit is used for controlling a memory cell array. The memory control circuit includes a storage unit and a processing circuit. The storage unit is configured to store a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table. The processing circuit is connected to the storage unit. The processing circuit is configured to obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table; obtain a block group identification and a mapping entry according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table; obtain a physical block number through the virtual-to-physical-block-table.
According to an alternative embodiment, a memory device is provided. The memory device includes a memory cell array and a memory control circuit. The memory control circuit is used for controlling the memory cell array. The memory control circuit includes a storage unit and a processing circuit. The storage unit is configured to store a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table. The processing circuit is connected to the storage unit. The processing circuit is configured to obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table; obtain a block group identification and a mapping entry according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table; obtain a super block identification according to the block group identification and a virtual block number through the virtual-to-physical-block-table; obtain a physical block number through the virtual-to-physical-block-table.
In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically shown in order to simplify the drawing.
DETAILED DESCRIPTIONThe technical terms used in this specification refer to the idioms in this technical field. If there are explanations or definitions for some terms in this specification, the explanation or definition of this part of the terms shall prevail. Each embodiment of the present disclosure has one or more technical features. To the extent possible, a person with ordinary skill in the art may selectively implement some or all of the technical features in any embodiment, or selectively combine some or all of the technical features in these embodiments.
Please refer to
The storage circuit 213 (or the temporary storage circuit 214) is used to store the data used to manage the memory cell array 220. The storage circuit 213 is, for example, a Dynamic Random Access Memory (DRAM). The temporary storage circuit 214 (or the storage circuit 213) is used to temporarily store the data to be read or written. The temporary storage circuit 214 is, for example, a Static Random Access Memory (SRAM). The host interface 211 is used to communicate with the host 100. The memory interface 212 is used to communicate with the memory cell array 220. The memory control circuit 210 is used to control the memory cell array 220 to perform a read operation, a write operation, a garbage collection, or the error correction.
Please refer to
One super block identification SBID consists of physical blocks from each plane of the memory cell array 220. Each channel CH includes a plurality of dies DE, and each of the dies DE includes a plurality of planes PL. Each of the planes PL includes a plurality of blocks BLKs. Each of the block group identification BGID could obtain the maximum write bandwidth in the namespace identification NSID.
Please refer to
Each of the virtual block number VBN maps to a coding number for the super block identification SBID. For example, in the coding number “0” for the block group identification BGID, the coding number “0” for the virtual block number VBN maps to the coding number “2” for the super block identification SBID; in the coding number “0” for the block group identification BGID, the coding number “255” for the virtual block number VBN maps to the coding number “511” for the super block identification SBID; in the coding number “1” for the block group identification BGID, the coding number “0” for the virtual block number VBN maps to the coding number “1” for the super block identification SBID; in the coding number “1” for the block group identification BGID, the coding number “255” for the virtual block number VBN maps to the coding number “234” for the super block identification SBID.
In the coding number “0” for the block group identification BGID and the coding number “1” for the block group identification BGID, the coding numbers for the super block identification SBID are “0” to “511”.
Each of the coding numbers for the super block identification SBID maps to the plurality of physical block numbers PBN in different planes PL. For example, the coding number “0” for the super block identification SBID maps to the coding number “0” for the physical block number PBN in the coding number “0” for the channel CH, the coding number “0” for the die DE and the coding number “0” for the plane PL. The coding number “0” for the super block identification SBID maps to the coding number “0” for the physical block number PBN in the coding number “0” for the channel CH, the coding number “0” for the die DE and the coding number “1” for the plane PL.
Each of the coding number for the super block identification SBID records the state ST as “Free” or “Used”. The state ST is used for the block configuration during the write operation or the garbage collection.
Each of the coding numbers for the super block identification SBID records the valid count VC and the erase count EC. The valid count VC and the erase count EC are used for the block configuration during the write operation or the garbage collection.
Through the design of the virtual-to-physical-block-table V2PBT, the above-mentioned processing circuit 215 could obtain the super block identification SBID according to the block group identification BGID and the virtual block number VBN through the virtual-to-physical-block-table V2PBT, and obtain the physical block number PBN according to the super block identification SBID, the channel CH, the die DE and the plane PL.
Please refer to
In the logical-to-virtual-mapping-table L2VMT, the coding numbers for the mapping group identification MGID map to the coding numbers for the block group identification BGID in a round robin policy. For example, if the block group identification BGID has two coding numbers: “0” and “1”, the even coding number for the mapping group identification MGID maps to the coding number “0” for the block group identification BGID, and the odd coding number for the mapping group identification MGID maps to the coding number “1” for the block group identification BGID. The round robin policy is just one example and is not used to limited this disclosure. For example, N continuous coding numbers for the mapping group identification MGID could be grouped into the same block group identification BGID.
Each of the mapping entries ME maps a set of 32-bit virtual address VA. The 32-bit virtual address VA is composed of the channel CH, the die DE, the plane PL, the virtual block number VBN, the page PG and the block BLK. In this embodiment, no matter how large the capacity of the memory cell array 220 is, the virtual address VA could be maintained at 32 bits. For example, if the capacity of the memory cell array 220 is 16 TB, the block group identification BGID has two coding numbers. In the virtual address VA, the coding number for the channel CH occupies 4 bits, the coding number for the die DE occupies 3 bits, the coding number for the plane PL occupies 2 bits, the coding number for the virtual block number VBN occupies 8 bits, the coding number for the page PG occupies 13 bits, and the coding number for the block BLK occupies 2 bits. If the capacity of the memory cell array 220 is 32 TB, the block group identification BGID has 4 coding numbers. In the virtual address VA, the coding number for the channel CH occupies 4 bits, the coding number for the die DE occupies 4 bits, the coding number for the plane PL occupies 2 bits, the coding number for the virtual block number VBN occupies 7 bits, the coding number for the page PG occupies 13 bits, and the coding number for the block BLK occupies 2 bits.
By analogy, the capacity of the memory cell array 220 is 8 TB or multiple of 8 TB, the number of the block group identification BGID is depended on the multiple of 8 TB. If the memory cell array has a capacity of 8*2{circumflex over ( )}N TB (N is a natural number), and suppose in 8 TB need M bits for block addressing, then the virtual block number VBN occupies M-N bits.
Please refer to
Please refer to
One coding number for the mapping group identification MGID maps to one coding number for the block group identification BGID (shown in the
Through the design of the namespace-table NST, the logical-to-virtual-mapping-table L2VMT and the virtual-to-physical-block-table V2PBT, the memory cell array 220 with a capacity of 16 TB (or higher) could still use 32 bits for addressing, and the write efficiency could be maintained.
In addition, one super block identification SBID consists of physical blocks from each plane of the memory cell array 220. The memory cell array 220 could support global wear leveling.
In order to explain the technology of the present disclosure more clearly, the read operation, the write operation and the garbage collection are described in detail below respectively.
Please refer to
The following is an example of reading data whose coding number for the namespace identification NSID is “1” and the logical address LA is “2000000”. Refer to the mark (1) in
Each of the coding numbers for the mapping group identification MGID maps to 524288 mapping entries ME. The logical address LA is “2000000”. After the division operation of 2000000/524288, the quotient of “3” could be obtained. In other words, the logical address LA of “2000000” maps to the fourth coding number for the mapping group identification MGID (that is, the coding number “3” for the mapping group identification MGID).
Then, refer to the mark (2) in
Then, please refer to
The 427136th mapping entry ME in the coding number “3” for the mapping group identification MGID maps to the virtual address VA of “(10, 3, 2, 123, 500, 2)”. In the virtual address VA of “(10, 3, 2, 123, 500, 2)”, the coding number for the channel CH is “10”, the coding number for the die DE is “3”, the coding number for the plane PL is “2”, and the coding number for the virtual block number VBN is “123”. Through the virtual-to-physical-block-table V2PBT, the coding number “1” for the block group identification BGID and the coding number “123” for the virtual block number VBN map to the coding number “234” for the super block identification SBID.
Then, refer to the mark (4) in
According to the above description, through the technology of the present disclosure, during the read operation of the memory cell array 220 with a capacity of 16 TB (or higher), 32 bits can still be used for addressing without increasing the addressing bits. The following uses a flow chart to illustrate the reading operation of the present disclosure.
Please refer to
Next, in the step S120, refer to the mark (2) in
Then, in the step S130, refer to the mark (3) in
Afterwards, in the step S140, refer to the mark (4) in
Next, in the step S150, the memory cell array 220 is accessed according to the channel CH, the die DE, the plane PL, the page PG, the block BLK and the physical block number PBN of the mapping entry ME, and the data is replied to the host 100.
The reading operation could be completed through the above-mentioned steps S110 to S150, but the above-mentioned steps S110 to S150 are not used to limit the application of the disclosed technology in the reading operation. The following further explains the application of the disclosed technology in the writing operation.
Please refer to
The following is an example of writing data into the coding number “1” for the namespace identification NSID and the logical address LA is “2000000”. Refer to the mark (1) in
Each of the coding numbers for the mapping group identification MGID maps to 524288 mapping entries ME. The logical address LA is “2000000”. After the division operation of 2000000/524288, the quotient of “3” could be obtained. That is to say, the logical address LA of “2000000” maps to the fourth mapping group identification MGID (i.e. the coding number “3” for the mapping group identification MGID).
Refer to the mark (2) in
Next, please refer to
Next, refer to mark (3-b) in
Then, refer to the mark (3-c) in
Next, please refer to
Refer to mark (4) in
Next, refer to the mark (4-a) in
Then, please refer to
Next, refer to the mark (6-a) in
According to the above description, through the technology of the present disclosure, during the write operation of the memory cell array 220 with a capacity of 16 TB (or higher), 32 bits can still be used for addressing without increasing the addressing bits. The following uses a flow chart to illustrate the writing operation of the present disclosure.
Please refer to
Next, in the step S220, whether the opened superblock corresponding to this block group identification BGID is not existed or is full is determined. If the opened superblock corresponding to this block group identification BGID is not existed or is full, then the process proceeds to the step S230; if the open superblock corresponding to this block group identification BGID is existed and is not full, then the process proceeds to the step S250.
In the step S230, refer to the mark (3-a) in
Then, in the step S240, refer to the mark (3-b) in
Next, in the step S250, refer to the mark (4) in
In the step S260, refer to the mark (4-a) in
Next, in the step S270, refer to the mark (5) in
Then, in the step S280, refer to the marks (6-a) and (6-b) in
The writing operation could be completed through the above steps S210 to S280, but the above steps S210 to S280 are not used to limit the application of the disclosed technology in the writing operation. The application of the disclosed technology in the garbage collection is further explained below.
Please refer to
Next, please refer to
Then, refer to the mark (3) in
Next, please refer to
Then, please refer to
According to the above description, through the technology of the present disclosure, during the garbage collection of the memory cell array 220 with a capacity of 16 TB (or higher), 32 bits can still be used for addressing without increasing the addressing bits. The following uses a flow chart to illustrate the garbage collection of the present disclosure.
Please refer to
Next, in the step S320, refer to mark (2) in
Then, in the step S330, whether the opened superblock corresponding to the block group identification BGID is not existed or is full is determined. If the opened superblock corresponding to the block group identification BGID is not existed or is full, then the process proceeds to the step S340; if the opened superblock corresponding this block group identification BGID is existed and is not full, then the process proceeds to the step S360.
In the step S340, the super block identification SBID with the smallest erase count EC is selected as the opened superblock.
Then, in the step S350, the virtual block number VBN that has not been paired to the super block identification SBID is selected from the block group identification BGID. At this time, the state ST of the selected super block identification SBID will be changed to “Used”.
Then, in the step S360, refer to the mark (3) in
Next, in the step S370, refer to the mark (4) in
Then, in the step S380, refer to mark (5) in
The garbage collection could be completed through the above steps S310 to S380, but the above steps S310 to S380 are not used to limit the application of the disclosed technology in the garbage collection.
Please refer to
Through the design of the virtual-to-physical-block-table V2PBT′, the above processing circuit 215 could obtain the physical block number PBN according to the block group identification BGID, the superblock identification offset SBID′, the channel CH, the die DE and the plane PL through the virtual-to-physical-block-table V2PBT′.
According to the above embodiment, through the operation of the namespace-table NST, the logical-to-virtual-mapping-table L2VMT and the virtual-to-physical-block-table V2PBT, the memory cell array 220 with a capacity of 16 TB (or higher) could use the 32-bit virtual address VA without increasing the number of addressing bits or reducing writing efficiency.
The above disclosure provides various features for implementing some implementations or examples of the present disclosure. Specific examples of components and configurations (such as numerical values or names mentioned) are described above to simplify/illustrate some implementations of the present disclosure. Additionally, some embodiments of the present disclosure may repeat reference symbols and/or letters in various instances. This repetition is for simplicity and clarity and does not inherently indicate a relationship between the various embodiments and/or configurations discussed.
It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplars only, with a true scope of the disclosure being indicated by the following claims and their equivalents.
Claims
1. A memory control circuit, used for controlling a memory cell array, wherein the memory control circuit comprises:
- a storage unit, configured to store a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table; and
- a processing circuit, connected to the storage unit;
- wherein the processing circuit is configured to;
- obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table;
- obtain a block group identification and one of a plurality of mapping entries according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table, wherein the offset is a remainder of dividing the logical address by a number of the plurality of mapping entries corresponding to the mapping group identification; and
- obtain a physical block number through the virtual-to-physical-block-table.
2. The memory control circuit according to claim 1, wherein in the virtual-to-physical-block-table, a coding number for the block group identification maps to a plurality of coding numbers for a superblock identification offset.
3. A memory control circuit, used for controlling a memory cell array, wherein the memory control circuit comprises:
- a storage unit, used for storing a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table; and
- a processing circuit, connected to the storage unit;
- wherein the processing circuit is configured to:
- obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table;
- obtain a block group identification and one of a plurality of mapping entries according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table, wherein the offset is a remainder of dividing the logical address by a number of the plurality of mapping entries corresponding to the mapping group identification;
- obtain a super block identification according to the block group identification and a virtual block number through the virtual-to-physical-block-table; and
- obtain a physical block number through the virtual-to-physical-block-table.
4. The memory control circuit according to claim 3, wherein the memory cell array has a capacity of 8 or more TB, and a number of the block group identification is determined by the capacity of the memory cell array.
5. The memory control circuit according to claim 1, wherein the physical block number is obtained according to the super block identification, a channel, a die and a plane through the virtual-to-physical-block-table.
6. The memory control circuit according to claim 1, wherein in the virtual-to-physical-block-table, a coding number for the block group identification maps to a plurality of coding numbers for the virtual block number, and each of the coding numbers for the virtual block number maps a coding number for the super block identification.
7. The memory control circuit according to claim 1, wherein in the logical-to-virtual-mapping-table, a plurality of coding numbers for the mapping group identification map to a plurality of coding numbers for the block group identification in a round robin policy.
8. The memory control circuit according to claim 1, wherein in the logical-to-virtual-mapping-table, N continuous coding numbers of the mapping group identification are mapped to an identical coding number of the block group identification.
9. The memory control circuit according to claim 1, wherein the memory cell array has a capacity of 2{circumflex over ( )}N*8 TB, and a number of addressing bits is 32 bits.
10. The memory control circuit according to claim 1, wherein in the namespace-table, a coding number for the namespace identification maps to one or more coding numbers for the mapping group identification.
11. The memory control circuit according to claim 1, wherein a coding number for the mapping group identification maps to a coding number for the block group identification.
12. A memory device, comprising:
- a memory cell array; and
- a memory control circuit, used for controlling the memory cell array, wherein the memory control circuit comprises: a storage unit, configured to store a namespace-table, a logical-to-virtual-mapping-table and a virtual-to-physical-block-table; and a processing circuit, connected to the storage unit;
- wherein the processing circuit is configured to;
- obtain a mapping group identification according to a namespace identification and a logical address through the namespace-table;
- obtain a block group identification and one of a plurality of mapping entries according to the mapping group identification and an offset of the logical address in the mapping group identification through the logical-to-virtual-mapping-table, wherein the offset is a remainder of dividing the logical address by a number of the plurality of mapping entries corresponding to the mapping group identification;
- obtain a super block identification according to the block group identification and a virtual block number through the virtual-to-physical-block-table; and
- obtain a physical block number through the virtual-to-physical-block-table.
13. The memory device according to claim 12, wherein the memory cell array has a capacity of 8 or more TB, and a number of the block group identification is determined by the capacity of the memory cell array.
14. The memory device according to claim 12, wherein the physical block number is obtained according to the super block identification, a channel, a die and a plane through the virtual-to-physical-block-table.
15. The memory device according to claim 12, wherein in the virtual-to-physical-block-table, a coding number for the block group identification maps to a plurality of coding numbers for the virtual block number, and each of the coding numbers of the virtual block number maps to a coding number for the super block identification.
16. The memory device according to claim 12, wherein in the logical-to-virtual-mapping-table, a plurality of coding numbers for the mapping group identification map to a plurality of coding numbers for the block group identification in a round robin policy.
17. The memory device according to claim 12, wherein in the logical-to-virtual-mapping-table, N continuous coding numbers of the mapping group identification are mapped to an identical coding number of the block group identification.
18. The memory device according to claim 12, wherein the memory cell array has a capacity of 2{circumflex over ( )}N*8 TB, and a number of addressing bits is 32 bits.
19. The memory device according to claim 12, wherein in the namespace-table, a coding number for the namespace identification maps to one or more coding numbers for the mapping group identification.
20. The memory device according to claim 12, wherein a coding number for the mapping group identification maps to a coding number for the block group identification.
| 11614876 | March 28, 2023 | Chen |
| 20140208062 | July 24, 2014 | Cohen |
| 20140325117 | October 30, 2014 | Canepa |
| 20160098355 | April 7, 2016 | Gorobets |
| 20160342509 | November 24, 2016 | Kotte |
| 20170286287 | October 5, 2017 | Hady |
| 20180239697 | August 23, 2018 | Huang |
| 20200133849 | April 30, 2020 | Harris |
| 20210011859 | January 14, 2021 | Li |
| 20220269440 | August 25, 2022 | Lin |
| 20230152973 | May 18, 2023 | Hwang |
| 20240094928 | March 21, 2024 | Das |
| 20240095165 | March 21, 2024 | Benisty |
| 20240095182 | March 21, 2024 | Tadokoro |
| I874200 | February 2025 | TW |
- Kim et al. “A Space-Efficient Flash Translation Layer for CompactFlash Systems.” May 2002. IEEE. IEEE Transactions on Consumer Electronics. vol. 48. pp. 366-375.
Type: Grant
Filed: Apr 23, 2024
Date of Patent: Oct 21, 2025
Assignee: MACRONIX INTERNATIONAL CO., LTD. (Hsinchu)
Inventors: Ting-Yu Liu (Hsinchu), Chi-Yu Chen (Hsinchu)
Primary Examiner: Nathan Sadler
Application Number: 18/642,936
International Classification: G06F 12/02 (20060101);