The disclosure relates in general to a controlling method and a controlling circuit, and more particularly to a memory controlling method, a memory controlling circuit and a memory system.
Along with the development of the semiconductor technology, various memories are invented. Digital data can be stored in the memory, such that the memory is widely used in electronic devices.
However, in a NAND flash, a garbage collection operation and a wear-leveling operation may increase the response time. In a phase change memory (PCM), a refresh operation may increase the response time. Therefore, how to minimize the response time is a way to achieve the quality of service (Qos).
The disclosure is directed to a memory controlling method, a memory controlling circuit and a memory system. At least one of a plurality of memory chips in each partner group is required to serve a reading request or a writing request, such that the garbage collection operation, the wear-leveling operation and the refresh operation will not increase the response time and the quality of service (Qos) can be achieved.
According to one embodiment, a memory controlling method is provided. A memory includes a plurality of memory chips. The memory controlling method includes the following steps: The memory chips are grouped into at least two partner groups by a grouping unit. A quantity of the memory chips in each of the partner groups is at least two. At least one of the memory chips in each of the partner groups is required to serve a reading request or a writing request by a processing unit.
According to another embodiment, a memory controlling circuit is provided. A memory includes a plurality of memory chips. The memory controlling circuit includes a grouping unit and a processing unit. The grouping unit is used for grouping the memory chips into at least two partner groups. A quantity of the memory chips in each of the partner groups is at least two. The processing unit is used for requiring at least one of the memory chips in each of the partner groups to serve a reading request or a writing request.
According to another embodiment, a memory system is provided. The memory system includes a plurality of memory chips and a memory controlling circuit. The memory controlling circuit includes a grouping unit and a processing unit. The grouping unit is used for grouping the memory chips into at least two partner groups. A quantity of the memory chips in each of the partner groups is at least two. The processing unit is used for requiring at least one of the memory chips in each of the partner groups to serve a reading request or a writing request.
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.
Please refer to
Please refer to
That is to say, each memory chip could be organized by small/large configuration (such as page/block, sector/block, sector/page), small configuration (such as sector, page), or large configuration (such as block). In
If too many memory chips C0, . . . , CN (or C0′, . . . , CN′) are being performed high latency operation, such as the garbage collection operation, the wear-leveling operation, or the refresh operation, at the same time, the response time for the reading request and the writing request will be increased. Therefore, it is needed to ensure that the reading request or the writing request can be performed on at least one of the memory chips C0, . . . , CN (or C0′, . . . , CN′).
Please refer to
The memory chip C00 is organized by blocks B000, B001, . . . , B00N. The memory chip C0N is organized by blocks B0N0, B0N1, . . . , B0NN. The memory chip CM0 is organized by blocks BM00, BM01, . . . , BM0N. The memory chip CMN is organized by blocks BMN0, BMN1, . . . , BMNN.
Please refer to
Please refer to
In one embodiment, the quantities of the memory chips in the partner groups are identical. For example, in
In another embodiment, the quantities of the memory chips in the partner groups can be different. For example, the quantity of the memory chips in one partner group can be N+1, and the quantity of the memory chips in another partner group can be N.
In step S520, the processing unit 920 requires at least one of the memory chips in each of the partner groups to serve a reading request or a writing request. For example, the processing unit 920 may require one memory chip in each of the partner groups to serve the reading request or the writing request. If most of the memory chips C00, . . . , C0N, except the memory chip C00, are being performed the garbage collection operation, the wear-leveling operation or the refresh operation at the same time, the processing unit 920 will require the memory chip C00 to be served for the reading request or the writing request. That is to say, if another garbage collection operation is requested, the memory chip C00 will not be performed this garbage collection operation.
In another embodiment, the processing unit 920 may require more than one memory chips in each of the partner groups to serve the reading request or the writing request. For example, the processing unit 920 may require the memory chips C00 and C0N to be served for the reading request or the writing request, if other memory chips are being performed the garbage collection operation, the wear-leveling operation or the refresh operation at the same time.
In this step, at least one of the memory chips C00, . . . , C0N is dynamically selected. The at least one of the memory chips C00, . . . , C0N which is required to serve the reading request and the writing request is not predetermined at the beginning.
Please refer to
Referring to
TH is the progressive threshold, Tint, is the lowest space utilization of a memory chip to activate cold data migration, Tend is the highest space utilization allowed in a memory chip, and Uavg is the average space utilization.
In the step S730, the a plurality of blocks of one of the memory chips are ranged in a multi-level linked list ML in accordance with an amount of valid pages, and the data is migrated according to the multi-level linked list ML. For example, please refer to
The large unit, such as blocks B1 to B9, is selected from the bottom level in the multi-level linked list ML for migration due to the large amount of valid small unit, such page/sector. In
The large unit, such as blocks B1 to B9, is selected from the top level in the multi-level linked list ML for the garbage collection operation, the wear-leveling operation or the refresh operation due to the small amount of valid small unit, such as page/sector. In
By performing the migration, cold data will not be centered in some of the memory chips and the space utilizations can be balanced the space utilizations.
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 exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.