Method of controlling non-volatile memory device
Granted 18 Jun 2013 · no office action yet
Assignee: Samsung Electronics
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Chan-Ik Park, Jeong-Woo Lee, Sung-Joo Yoo, Hyun-Jin Choi · Examiner: Anthan Tran · AU 2827 · TC 2800
Life of the application
6 dated eventsAbstract
A method of controlling a non-volatile memory device includes comparing the number of banks that are in operating states with a threshold value. If the number of the banks is smaller than the threshold value, data stored in a standby bank is read. If there is no bank having data to be read, a standby bank is programmed. If the number of the banks is equal to or greater than the threshold value or if the reading or the programming is performed, it is determined whether there is a reading or programming command to be performed. If there is the reading or programming command to be performed, the process is repeated from the comparing step. The programming may include programming of a most significant bit (MSB) page or a least significant bit (LSB) page.
Description
12 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of Korean Patent Application No. 10-2010-0049827, filed on May 27, 2010, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
›BACKGROUND
1. Technical Field
The inventive concept relates to a memory device, and more particularly, to a method of controlling a non-volatile memory device.
2. Discussion of the Related Art
Flash memory is a form of non-volatile memory in which data is stored therein within a plurality of memory cells. When desired, data stored in a cell of flash memory may be electrically erased, and thus, flash memory devices are widely used in computers and memory cards. Flash memory devices may be used instead of hard disk drives in portable information devices such as mobile phones, personal digital assistants (PDAs), and digital cameras. These portable information devices require storage devices of larger capacities in order to provide users with various functions, and accordingly, flash memory devices that may store multi-bit data of two or more bits in one memory cell have been suggested.
›SUMMARY
According to an exemplary embodiment of the inventive concept, there is provided a method of controlling a non-volatile memory device including a plurality of banks. The method includes comparing the number of first banks that are in operating states with a first threshold value. If the number of the first banks is smaller than the first threshold value, data stored in a bank that is in a standby state among the plurality of banks is read in response to a corresponding reading command among at least one received command. If there are no banks, data of which is to be read, a bank in the standby state among the plurality of banks is programmed in response to a corresponding programming command among at least one received command. When the number of the first banks is equal to or greater than the first threshold value or when the reading or the programming is performed, it is determined whether there is a reading command to be performed or a programming command to be performed among the at least one received command. If there is the reading command to be performed or the programming command to be performed, the processes is performed again from the comparing step.
According to an aspect of the inventive concept, there is provided a method of controlling a non-volatile memory device including a plurality of banks. The method includes comparing the number of first banks that are in operating states with a first threshold value. If the number of the first banks is smaller than the first threshold value, a bank that is in a standby state among the plurality of banks is programmed in response to a corresponding programming command among at least one received command. If the number of the first banks is equal to or greater than the first threshold value or if the programming is performed, it is determined whether there is a programming command to be performed among the at least one received command. If there is the programming command to be performed, the process is performed again from the comparing step.
›BRIEF DESCRIPTION OF THE DRAWINGS
Exemplary embodiments of the inventive concept will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram of a system according to an exemplary embodiment of the present inventive concept;
FIG. 2 is a diagram of a second memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 3 is a circuit diagram of a first bank shown in FIG. 2 , according to an exemplary embodiment of the present inventive concept;
FIG. 4A is a diagram illustrating an operation of programming a least significant bit (LSB) page, and FIG. 4B is a diagram illustrating an operation of programming a most significant bit (MSB) page according to an exemplary embodiment of the present inventive concept;
FIG. 5 is a flowchart illustrating a method of controlling a non-volatile memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 6 is a flowchart illustrating a method of controlling a non-volatile memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 7 is a flowchart illustrating a method of controlling a non-volatile memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 8A is a diagram of the non-volatile memory device of FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 8B is a table showing commands transmitted from a host of FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 9 is a flowchart illustrating a method of controlling a non-volatile memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 10A is a diagram of the non-volatile memory device of FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 10B is a table showing commands transmitted from the host of FIG. 1 , according to an exemplary embodiment of the present inventive concept;
FIG. 11 is a flowchart illustrating a method of controlling the non-volatile memory device shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept; and
FIG. 12A is a diagram of the non-volatile memory device of FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 12B is a table showing commands transmitted from the host of FIG. 1 , according to an exemplary embodiment of the present inventive concept.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 1 of 8
The attached drawings illustrate exemplary embodiments of the present inventive concept.
Hereinafter, exemplary embodiments of the present inventive concept will be described in detail with reference to the attached drawings. Like reference numerals in the drawings may denote like elements.
FIG. 1 is a block diagram of a system 100 according to an exemplary embodiment of the present inventive concept.
Referring to FIG. 1 , the system 100 includes a host 110 , a controller 120 , a cache memory device 130 , and a non-volatile memory device 140 .
The host 110 may generate a predetermined command COM, for example, a programming command, a reading command, or an erasing command. The cache memory device 130 may temporarily store data DATA to be programmed before the data DATA is stored in the non-volatile memory 140 , or may temporarily store the data DATA read from the non-volatile memory device 140 . For example, the cache memory device 130 may be a dynamic random access memory (DRAM). However, the present inventive concept is not limited thereto. The non-volatile memory device 140 may store data. The non-volatile memory device 140 may transmit/receive data to/from the controller 120 through a channel among n channels labelled CH_ 0 , CH_ 1 , . . . , CH_n. The non-volatile memory device 140 may be, for example, a flash memory device.
The controller 120 may perform operations according to the command COM transmitted from the host 110 . For example, when the controller 120 receives the programming command from the host 110 , the controller 120 may perform controlling operations so that the cache memory device 130 temporarily stores the data DATA to be programmed and the non-volatile memory device 140 may store the data DATA later. If the host 110 transmits the reading command, the controller 120 may perform controlling operations so that the data DATA is read from the non-volatile memory device 140 and temporarily stored in the cache memory 130 , and then, is transmitted to the host 110 . Operations of the controller 120 will be described in more detail later with reference to FIGS. 5 through 10 .
FIG. 2 is a diagram of a second memory device 200 , similar in function to the non-volatile memory device 140 shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept.
FIG. 2 shows one channel CH in the non-volatile memory device 140 of FIG. 1 , for the convenience of description. For example, when the non-volatile memory device 140 is connected to n channels CH_ 0 , CH_ 1 , . . . , CH_n (wherein n is a natural number) as shown in FIG. 1 , the non-volatile memory device 140 may include n structures of FIG. 2 .
Referring to FIGS. 1 and 2 , the non-volatile memory device 140 may include first through m-th banks B 1 , B 2 , . . . , Bm (wherein m is a positive integer). Each of the first through m-th banks B 1 , B 2 , . . . , Bm includes a plurality of memory cells for storing data, and the first through m-th banks B 1 , B 2 , . . . , Bm are connected to each other via the channel CH. Each of the memory cells may be capable of storing multi-bit data. If the command COM transmitted from the host 110 is the programming command, the controller 120 controls operations of the flash memory device so that the data DATA is programmed in a corresponding memory cell in one of the first through m-th banks B 1 , B 2 , . . . , Bm. If the command COM transmitted from the host 110 is the reading command, the controller 120 controls operations of the flash memory device 140 so that the data DATA is read from a corresponding memory cell in one of the first through m-th banks B 1 , B 2 , . . . , Bm. If the command COM transmitted from the host 110 is the erasing command, the controller 120 may control operations of the flash memory device 140 so that the corresponding memory cell in one of the first through m-th banks B 1 , B 2 , . . . , Bm may be erased.
FIG. 3 is a circuit diagram of the first bank B 1 shown in FIG. 2 , according to an exemplary embodiment of the present inventive concept.
FIG. 3 shows the first bank B 1 of FIG. 2 , for the convenience of description. However, second through m-th banks B 2 , . . . , Bm may each have the same structure as the first bank B 1 shown in FIG. 3 .
Referring to FIGS. 1 through 3 , the first bank B 1 includes a plurality of strings. Each of the strings may include a string selection transistor SST, a ground selection transistor GST, and memory cells MC 31 , MC 30 , . . . , MC 0 . The string selection transistor SST has a gate connected to a string selection line SSL and a first terminal connected to a corresponding bit line. The ground selection transistor GST has a gate connected to a ground selection line GSL and a first terminal connected to a common source line CSL. The memory cells MC 31 , MC 30 , . . . , MC 0 are each connected between a second terminal of the string selection transistor SST and a second terminal of the ground selection transistor GST. Corresponding word lines WL 31 , WL 30 , . . . , WL 0 are connected to gates of the memory cells MC 31 , MC 30 , . . . , MC 0 . A plurality of bit line pairs (BL e 0 , BL o 0 ), (BL e 1 , BL 0 1 ), . . . , (BL e (n−1), BL o (n−1)) may be arranged to cross the word lines WL 31 , WL 30 , . . . , WL 0 . In reading/programming operations, one bit line in each of the bit line pairs (BL e 0 , BL o 0 ), (BL e 1 , BL o 1 ), . . . , (BL e (n−1), BL o (n−1)) may be selected. A word line may therefore consist of two pages. However, a word line may alternatively consist of one page.
The programming operation for storing 2-bit data may be classified as an operation of programming a least significant bit (LSB) page and an operation of programming a most significant bit (MSB) page. Hereinafter, the operations of programming the LSB and the MSB will be described with reference to FIGS. 4A and 4B .
FIG. 4A is a diagram illustrating the operation of programming the LSB page, and FIG. 4B is a diagram illustrating the operation of programming the MSB page according to an exemplary embodiment of the present inventive concept.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 2 of 8
A memory cell may be programmed to have one of the following states “11”, “10”, “00”, and “01”. Hereinafter, it is assumed that the memory cell of the “11” state is an erased cell, a threshold voltage of the memory cell having the “10” state is greater than that of the memory cell having the “11” state, a threshold voltage of the memory cell having the “00” state is greater than that of the memory cell having the “10” state, and a threshold voltage of the memory cell having the “01” state is greater than that of the memory cell having the “00” state.
Under the above-described circumstances, when the LSB page is programmed with respect to a memory cell that is already programmed to the “11” state, the memory cell is changed to the erased state or the “10” state as shown in FIG. 4A . If the MSB page is programmed with respect to the memory cell of the “10” state, the memory cell is changed to the “10” state or the “00” state as shown in FIG. 4B . In addition, when the MSB page is programmed with respect to the memory cell of the “11” state, the memory cell is changed to the erased state or the “01” state as shown in FIG. 4B .
Programming of a predetermined bank may include an erasing operation of the bank, as well as the programming operation of the bank. Accordingly, an example of a programming operation including an erasing operation is described hereinafter.
FIG. 5 is a flowchart illustrating a method of controlling the non-volatile memory device 140 shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept.
Referring to FIGS. 1 through 5 , the controller 120 receives the command COM from the host 110 (S 510 ). The controller 120 controls a predetermined operation according to the command COM transmitted from the host 110 . A next command COM may be transmitted before the operation control when the command COM is transmitted. The controller 120 may accordingly process a plurality of commands COM in an order of transmission.
The controller 120 may compare the number of first banks in operating states among the banks which are greater or equal to a first threshold value (S 520 ). The operating states may indicate whether a predetermined operation has been performed in the bank, for example, the state of programming predetermined data in the bank, the state of reading the data from the bank, or the state of erasing the bank. For example, the first bank may be the bank in which the predetermined data is being programmed, the data is being read, or the erasing operation is being performed. Accordingly, the first bank may be the bank in the operating state. The first threshold value may be determined according to the maximum power level consumed by the non-volatile memory device 140 . For example, when first through m-th banks B 1 , B 2 , . . . , Bm are connected to one channel CH as shown in FIG. 2 , the first threshold value may have a value between 1 and m.
As a result of comparing in operation S 520 , when the number of first banks is smaller than the first threshold value (No, S 520 ), the controller 120 may search for a bank that is in a standby state to perform the programming operation (S 530 ). For example, the controller 120 may detect whether there is a bank in the standby state, which corresponds to the programming command among the commands COM transmitted from the host 110 . The standby state may be the state where a predetermined operation is not performed in the bank. If the bank that is in the standby state for performing the programming operation is detected as a result of operation S 530 (Yes, S 530 ), the controller 120 may control the bank so that the predetermined data may be programmed in the detected bank in response to the programming command for programming the predetermined data in the bank in the standby state (S 540 ).
Otherwise, if the number of the first banks is equal to or greater than the first threshold value as a result of the comparing in operation S 520 (Yes, S 520 ), if there is no bank that is in the standby state for performing the programming operation as a result of determination in operation S 530 (No, S 530 ), or if operation S 540 is performed, the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 550 ). If there is a command to be performed as a result of determination in operation S 550 (Yes, S 550 ), then the controller 120 may repeat the operations again from operation S 520 .
FIG. 6 is a flowchart illustrating a method of controlling the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept.
Referring to FIGS. 1 through 6 , the controller 120 receives the commands COM from the host 110 (S 610 ). As described above with reference to FIG. 5 , the controller 120 may receive a plurality of commands COM and the controller 120 may process the plurality of commands COM in the order of transmission.
The controller 120 may compare the number of first banks in operating states among the first through mth banks B 1 , B 2 , . . . , Bm with a first threshold value (S 620 ). The first banks may be the banks in operating states, for example, the bank in which predetermined data is programmed, the predetermined data is read, or the erasing operation is performed. Operation S 620 may be similar to operation S 520 of FIG. 5 , described above.
If the number of the first banks is smaller than the first threshold value as a result of determination in operation S 620 (No, SS 620 ), then the controller 120 searches for a second bank (S 630 ). The second bank may be a bank in a standby state for programming the MSB page. For example, the controller 120 may detect whether there is a bank in the standby state corresponding to the programming command for performing the programming of the MSB page. The standby state may indicate that the predetermined operation is not performed in the bank and may accordingly describe all states except for the operating state.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 3 of 8
If the bank that is in the standby state for performing the programming of the MSB page is detected as a result of detection in operation S 630 (Yes S 630 ), the controller 120 controls the MSB page of the detected bank to be programmed in response to the programming command for programming the MSB bank of the detected bank in the standby state (S 640 ).
Otherwise, if the second bank is not detected as a result of determination in operation S 630 (No, S 630 ), the controller 120 detects whether there is a third bank (S 650 ). The third bank may be a bank that is in the standby state for programming the LSB page. For example, the controller 120 may detect whether there is a bank in the standby state in correspondence with the programming command for programming the LSB page among the commands COM transmitted from the host 110 . The standby state may indicate that the predetermined operation is not performed in the bank, and may accordingly describe all states except for the operating state.
If the third bank that is in the standby state for programming the LSB page is detected as a result of detection in operation S 650 (Yes, S 650 ), the controller 120 may control the LSB page of the detected bank to be programmed in response to the programming command for programming the LSB page of the bank in the standby state (S 660 ).
Otherwise, if the number of the first banks is equal to or greater than the first threshold value as a result of the determination in operation S 620 (Yes, S 620 ), or if the bank that is in the standby state for programming the LSB page is not detected as a result of the detection in operation S 650 (No S 650 ), then the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 670 ). Additionally, after operation S 640 is performed, or after operation S 660 is performed, the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 670 ). If there is a command to be performed as a result of the determination in operation S 670 (Yes, S 670 ), then the controller 120 may repeat the above-described operations from operation S 620 .
FIG. 7 is a flowchart illustrating a method of controlling the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept.
Referring to FIGS. 1 through 7 , the controller 120 receives commands COM from the host 110 (S 710 ). As described above with reference to FIG. 5 , the commands COM may be transmitted to the controller 120 , and the controller 120 may process the commands COM in the order of transmission.
The controller 120 compares the number of first banks in the operating states among the banks with the first threshold value (S 720 ). The first banks are the banks in the operating states, for example, the banks in which predetermined data is programmed, the predetermined data is read, or the erasing operation is performed. Operation S 720 may be similar to operation S 520 of FIG. 5 described above.
If the number of the first banks is smaller than the first threshold value as a result of determination in operation S 720 (No, S 720 ), the controller 120 detects whether there is a second bank (S 730 ). The second bank may be a bank that is in the standby state for programming the LSB page. For example, the controller 120 may detect whether there is a bank in the standby state corresponding to the programming command for performing the LSB page programming among the commands COM transmitted from the host 110 . The standby state may indicate that the predetermined operation is not performed in the bank, and may accordingly describe all states except for the operating state.
If the bank that is in the standby state for performing the programming of the LSB page is detected as a result of detection in operation S 730 (Yes, S 730 ), then the controller 120 controls the LSB page of the detected bank to be programmed in response to the programming command for programming the LSB bank of the detected bank in the standby state (S 740 ).
Otherwise, if the second bank is not detected as a result of determination in operation S 730 (No, S 730 ), the controller 120 detects whether there is a third bank (S 750 ). The third bank may be a bank that is in the standby state for programming the MSB page. For example, the controller 120 may detect whether there is a bank in the standby state in correspondence with the programming command for programming the MSB page among the commands COM transmitted from the host 110 . The standby state may indicate that the predetermined operation is not performed in the bank, and may accordingly describe all states except for the operating state.
If the third bank that is in the standby state for programming the MSB page is detected as a result of detection in operation S 750 (Yes, S 750 ), then the controller 120 may control the MSB page of the detected bank to be programmed in response to the programming command for programming the MSB page of the bank in the standby state (S 760 ).
Otherwise, if the number of the first banks is equal to or greater than the first threshold value as a result of the determination in operation S 720 (Yes, S 720 ), if the bank that is in the standby state for programming the MSB page is not detected as a result of the detection in operation S 750 (No, S 750 ), then the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 770 ). Additionally, when operation S 740 is performed, or when operation S 760 is performed, the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 770 ). If there is a command to be performed as a result of the determination in operation S 770 (Yes, S 770 ), the controller 120 may repeat the above-described operations from operation S 720 .
FIG. 8A is a diagram of the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 8B is a table showing the commands COM transmitted from the host 110 of FIG. 1 , according to an exemplary embodiment of the present inventive concept. In FIG. 8A , the banks shaded with lines are the banks in the operating states. Accordingly, hereinafter, it is assumed that the banks B 1 , B 3 , and B 4 are in the operating states. In addition, it is assumed that the first threshold value is 5.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 4 of 8
Hereinafter, operations of the non-volatile memory device 140 will be described with reference to FIGS. 1 through 5 , and FIGS. 8A and 8B .
The controller 120 receives the commands COM shown in FIG. 8B from the host 110 . In operation S 520 , since the number of the first banks B 1 , B 3 , and B 4 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 530 . In operation S 530 , the controller 120 searches for the bank that is in the standby state for performing the programming operation. In FIG. 8B , the bank B 3 that is related to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state, and the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is in the standby state, and thus, the bank B 2 is detected in operation S 530 . In addition, in operation S 540 , the controller 120 controls the MSB page of the bank B 2 detected in operation S 530 to be programmed.
After operation S 540 , there are some commands (LPG_B 3 , LPG_B 8 , and MPG_B 4 ) to be performed in operation S 550 , and thus, the controller 120 performs the operations again from operation S 520 . In operation S 540 , the number of first banks B 1 , B 2 , B 3 , and B 4 in the operating states is four. In operation S 520 , since the number of the first banks B 1 , B 2 , B 3 , and B 4 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 530 . In operation S 530 , the controller 120 searches for the bank that is in the standby state for performing the programming operation. In FIG. 8B , the bank B 3 relating to the command (LPG_B 3 ) for programming the LSB page of the bank B 3 and the bank B 2 relating to the command (MPG_B 2 ) for programming the MSB page of the bank B 2 are in the operating states, and the bank B 8 relating to the command (LPG_B 8 ) for programming the LSB page of the bank B 8 is in the standby state, and thus, the bank B 8 is detected in operation S 530 . In addition, in operation S 540 , the controller 120 controls the LSB page of the bank B 8 detected in operation S 530 to be programmed.
In operation S 550 , after performing operation S 540 , there are the commands (LPG_B 3 , and MPG_B 4 ) to be performed, and thus, the controller 120 performs the operations again from operation S 520 . Since operations S 540 is performed, the number of first banks B 1 , B 2 , B 3 , B 4 , and B 8 in the operating states is 5. In operation S 520 , since the number of the first banks B 1 , B 2 , B 3 , B 4 , and B 8 is equal to or greater than the first threshold value, the controller 120 performs operation S 550 . The controller 120 does not perform the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , and B 8 that are currently in the operating states changes to the standby state after finishing the operation.
Hereinafter, operations of the non-volatile memory device 140 will be described with reference to FIGS. 1 through 4 , 6 , 8 A, and 8 B.
The controller 120 receives the commands COM shown in FIG. 8B from the host 110 . In operation S 620 , since the number of the first banks B 1 , B 3 , and B 4 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 630 . In operation S 630 , the controller 120 searches for the second bank that is in the standby state for programming the MSB page. The bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is in the standby state, and thus, the second banks B 2 is detected in operation S 630 . In addition, in operation S 640 , the controller 120 controls the MSB page of the second bank B 2 that is detected in operation S 630 to be programmed.
There are commands (LPG_B 3 , LPG_B 8 , and MPG_B 4 ) to be performed when operation S 670 is performed after operation S 640 , and thus, the controller 120 performs the operations again from operation S 620 . Since operation S 640 is performed, the number of the first banks B 1 , B 2 , B 3 , and B 4 in the operating states is four. In operation S 620 , the number of the first banks B 1 , B 2 , B 3 , and B 4 in the operating states is smaller than the first threshold value, and thus, the controller 120 performs operation S 630 . In operation S 630 , the controller 120 searches for the second bank that is in the standby state for programming the MSB page. Since the bank B 4 relating to the command MPG_B 4 for programming the MSB page of the bank B 4 shown in FIG. 8B is in the operating state, the controller 120 does not search for the second bank in operation 5630 . Therefore, the controller 120 performs operation S 650 . In operation S 650 , the controller 120 searches for a third bank that is in the standby state for programming the LSB page. Since the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 shown in FIG. 8B is in the operating state and the bank B 8 relating to the command LPG_B 8 for programming the MSB page of the bank B 8 is in the standby state, the bank B 8 is searched for as the third bank in operation S 650 . In addition, in operation S 660 , the controller 120 controls the LSB page of the third bank B 8 detected in operation S 650 to be programmed.
When operation S 670 is performed after operation S 660 , there are commands (LPG_B 3 , and MPG_B 4 ) to be performed, and thus, the controller 120 performs the operations again from operation S 620 . Since operation S 660 is performed, the number of first banks B 1 , B 2 , B 3 , B 4 , and B 8 in the operating states is five. In operation S 620 , the number of the first banks in the operating states is equal to or greater than the first threshold value, and thus, the controller 120 performs operation S 670 . The controller 120 does not perform the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , and B 8 that are currently in the operating states finishes the operation and changes into the standby state.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 5 of 8
Hereinafter, operations of the non-volatile memory device 140 will be described with reference to FIGS. 1 through 4 , and 7 through 8 B.
The controller 120 receives the commands COM shown in FIG. 8B from the host 110 . In operation S 720 , since the number of the first banks B 1 , B 3 , and B 4 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 730 . In operation S 730 , the controller 120 searches for the second bank that is in the standby state for programming the LSB page. The bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state and the bank B 8 relating to the command LPG_B 8 for programming the LSB page of the bank B 8 is in the standby state, and thus, the second bank B 8 is detected in operation S 730 . In addition, in operation S 740 , the controller 120 controls the LSB page of the second bank B 8 that is detected in operation S 730 to be programmed.
There are commands (LPG_B 3 , MPG_B 8 , and MPG_B 4 ) to be performed when operation S 770 is performed after operation S 740 , and thus, the controller 120 performs the operations again from operation S 720 . Since operation S 740 is performed, the number of the first banks B 1 , B 2 , B 3 , and B 8 in the operating states is four. In operation S 720 , the number of the first banks B 1 , B 2 , B 3 , and B 8 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 730 . In operation S 730 , the controller 120 searches for the second bank that is in the standby state for programming the LSB page. Since the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 shown in FIG. 8B is in the operating state, the controller 120 does not search for the second bank in operation S 730 . Therefore, the controller 120 performs operation S 750 . In operation S 750 , the controller 120 searches for a third bank that is in the standby state for programming the MSB page. Since the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 shown in FIG. 8B is in the standby state, the bank B 2 is found as the third bank in operation S 750 . In addition, in operation S 760 , the controller 120 controls the MSB page of the third bank B 2 detected in operation S 750 to be programmed.
When operation S 770 is performed after operation S 760 , there are commands (LPG_B 3 , and MPG_B 4 ) to be performed, and thus, the controller 120 performs the operations again from operation S 720 . Since operation S 760 is performed, the number of first banks B 1 , B 2 , B 3 , B 4 , and B 8 in the operating states is five. In operation S 720 , the number of the first banks in the operating states is equal to or greater than the first threshold value, and thus, the controller 120 performs operation S 770 . The controller 120 does not perform the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , and B 8 that are currently in the operating states finishes the operation and changes into the standby state.
The programming operations of the non-volatile memory device 140 are described as above. Hereinafter, the reading operation of the non-volatile memory device 140 will be described with reference to FIGS. 9 through 10B .
FIG. 9 is a flowchart illustrating a method of controlling the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept.
Referring to FIGS. 1 through 4 , and 9 , the controller 120 receives commands COM from the host 110 (S 910 ). As described with reference to FIG. 5 , the controller 120 may receive a plurality of commands COM, and the controller 120 may process the plurality of commands COM in the order of transmission.
The controller 120 may compare the number of first banks in the operating states with the first threshold value (S 920 ). Operation S 920 may be similar to operation S 520 discussed above with reference to FIG. 5 .
If the number of first banks is smaller than the first threshold value as a result of determination in operation S 920 (No, S 920 ), then the controller 120 may search for a bank that is in the standby state for performing the reading operation (S 930 ). For example, the controller 120 may detect whether there is a bank in the standby state that corresponds to the reading operation among the commands COM transmitted from the host 110 . The standby state may indicate that a certain operation is not performed in the bank. If the bank that is in the standby state for performing the reading operation is detected as a result of the detection in operation S 930 (Yes, S 930 ), the controller 120 controls the data stored in the detected bank to be read in response to the reading command for reading the data stored in the bank in the standby state (S 940 ).
Otherwise, if the number of the first banks is equal to or greater than the first threshold value as a result of determination in operation S 920 (Yes, 920 ), or if the bank in the standby state is not detected as a result of the detection in operation S 930 (No S 930 ), then the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 950 ). Additionally, if operation S 940 is performed, the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 950 ). If there is a command to be performed as a result of determination in operation S 950 (Yes, S 950 ), the controller 120 may perform the operations again from operation S 920 .
FIG. 10A is a diagram of the non-volatile memory device 140 shown in FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 10B is a table showing the commands COM transmitted from the host 110 of FIG. 1 . In FIG. 10A , the banks shaded with lines are the banks in the operating states. Hereinafter, it is assumed that the banks B 1 , B 3 , B 4 , and B 5 are in the operating states. In addition, it is assumed that the first threshold value is 5.
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 6 of 8
Hereinafter, operations of the non-volatile memory device 140 will be described with reference to FIGS. 1 through 4 , and 9 through 10 B.
The controller 120 receives the commands COM shown in FIG. 10B from the host 110 . In operation S 920 , since the number of the first banks B 1 , B 3 , B 4 , and B 5 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 930 . In operation S 930 , the controller 120 searches for the bank that is in the standby state for performing the reading operation. In FIG. 10B , the bank B 5 relating to the command RD_B 5 for reading data stored in the bank B 5 is in the operating state, and the bank B 6 relating to the command RD_B 6 for reading data stored in the bank B 6 is in the standby state, and thus, the bank B 6 is detected in operation S 930 . In addition, in operation S 940 , the controller 120 controls the data stored in the bank B 6 detected in operation S 930 to be read.
In operation S 950 , after performing operation S 940 , there is a command (RD_B 5 ) to be performed, and thus, the controller 120 performs the operations again from operation S 920 . Since operation S 940 is performed, the number of first banks B 1 , B 3 , B 4 , B 5 , and B 6 in the operating states is 5. In operation S 920 , since the number of the first banks B 1 , B 3 , B 4 , B 5 , and B 6 is equal to or greater than the first threshold value, the controller 120 performs operation S 950 . The controller 120 does not perform the received commands COM until at least a first bank among the first banks B 1 , B 3 , B 4 , B 5 , and B 6 that are currently in the operating states changes into the standby state after finishing the operation.
FIG. 11 is a flowchart illustrating a method of controlling the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept.
Hereinafter, the reading operation or the programming operation of the non-volatile memory device 140 of FIG. 1 will be described with reference to FIGS. 1 through 11 .
The controller 120 receives commands COM from the host 110 (S 1110 ). As described with reference to FIG. 5 , the controller 120 may receive a plurality of commands COM, and the controller 120 may process the plurality of commands COM in the order of transmission.
The controller 120 may compare the number of first banks in the operating states with the first threshold value (S 1120 ). The first bank may be the bank in the operating state, such as the bank in which predetermined data is programmed, predetermined data is read, or the erasing operation is performed. Operation S 1120 may be similar to operation S 520 discussed above with respect to FIG. 5 .
If the number of first banks is smaller than the first threshold value as a result of determination in operation S 1120 (No, S 1120 ), then the controller 120 may search for a bank that is in the standby state for performing the reading operation (S 1130 ). For example, the controller 120 may detect whether there is a bank in the standby state that corresponds to the reading command among the commands COM transmitted from the host 110 . The standby state may indicate that a certain operation is not performed in the bank. If the bank that is in the standby state for performing the reading operation is detected as a result of the detection in operation S 1130 (Yes, S 1130 ), then the controller 120 controls the data stored in the detected bank to be read in response to the reading command for reading the data stored in the bank in the standby state (S 1150 ). However, operation S 1140 may be additionally performed between operation S 1130 and operation S 1150 , and operation S 1150 might not be performed when a predetermined condition is satisfied even if the bank that is in the standby state for performing the reading operation is detected in operation S 1130 . For example, the controller 120 may determine whether operation S 1150 is performed by using at least one of the number of times of repeatedly performing operation S 1150 , the time of performing operation S 1150 continuously, and the number of programming commands to be performed. For example, the controller 120 may determine that operation S 1150 is not performed when operation S 1150 is performed continuously 10 times. However, the conditions of operation S 1140 are not limited to the above three cases, and conditions may be added or changed if necessary.
Otherwise, if the bank that is in the standby state for performing the reading operation as a result of detection in operation S 1130 or if the above conditions in operation S 1140 are satisfied (Yes, S 1140 ), then the controller 120 may search for a bank that is in the standby state for performing the programming operation (S 1160 ). For example, the controller 120 may detect whether there is a bank in the standby state corresponding to the programming command to be performed among the commands COM transmitted from the host 110 . The standby state may indicate that a predetermined operation is not performed in the bank. If the bank that is in the standby state for performing the programming operation is detected as a result of operation S 1160 (Yes, S 1160 ), then the controller 120 may control the data to be programmed in the detected bank in response to the programming command (S 1170 ).
Otherwise, if the number of the first banks is equal to or greater than the first threshold value as a result of determination in operation S 1120 (Yes, S 1120 ), or if the bank that is in the standby state for performing the programming operation is not detected as a result of the detection in operation S 1160 (No, S 1160 ), then the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 1180 ). Additionally, if operation S 1150 is performed, or if operation S 1170 is performed, the controller 120 may determine whether there is a command to be performed among the commands COM transmitted from the host 110 (S 1180 ). If there is a command to be performed as a result of determination in operation S 1180 (Yes, S 1180 ), the controller 120 may perform the operations again from operation S 1120 .
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 7 of 8
Although not shown in FIG. 11 , operations S 630 and S 650 illustrated in FIG. 6 may be performed instead of operations S 1160 and S 1170 . Otherwise, operations S 730 and S 750 illustrated in FIG. 7 may be performed instead of operations S 1160 and S 1170 of FIG. 11 . Operations S 630 and S 650 are described in detail above with reference to FIG. 6 , and operations S 730 and S 750 are described in detail above with reference to FIG. 7 .
FIG. 12A is a diagram showing the non-volatile memory device 140 of FIG. 1 , according to an exemplary embodiment of the present inventive concept, and FIG. 12B is a table showing commands COM transmitted from the host 110 of FIG. 1 , according to an exemplary embodiment of the present inventive concept. In FIG. 12A , the banks filled with lines are the banks in the operating states. Hereinafter, it is assumed that the banks B 1 , B 3 , and B 4 are in the operating states. In addition, it is assumed that the first threshold value is 5.
Hereinafter, operations of the non-volatile memory device 140 will be described with reference to FIGS. 1 through 12B .
The controller 120 receives the commands COM shown in FIG. 12B from the host 110 . In operation S 1120 , since the number of the first banks B 1 , B 3 , and B 4 in the operating states is smaller than the first threshold value, the controller 120 performs operation S 1130 . In operation S 1130 , the controller 120 searches for the bank that is in the standby state for performing the reading operation. In FIG. 12B , the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 5 is in the operating state, and the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is not the bank that is in the standby state for performing the reading operation. Since the bank B 5 relating to the command RD_B 5 for reading the data stored in the bank B 5 is in the standby state, the bank B 5 is detected in operation S 1130 . When it is assumed that the conditions of operation S 1140 are not satisfied, the controller 120 controls the data stored in the bank B 5 that is detected in operation S 1130 to be read in operation S 1150 .
In operation S 1180 , after performing operation S 1150 , there are commands (LPG_B 3 , MPG_B 2 , LPG_B 8 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . Since operation S 1150 is performed, the number of first banks B 1 , B 3 , B 4 , and B 5 in the operating states is 4. In operation S 1120 , since the number of the first banks B 1 , B 3 , B 4 , and B 5 is smaller than the first threshold value, the controller 120 performs operation S 1130 . In operation S 1130 , the controller 120 searches for a bank that is in the standby state for performing the reading operation. In FIG. 12B , since the bank B 6 relating to the command RD_B 6 for reading the data stored in the bank B 6 is in the standby state, the bank B 6 is detected in operation S 1130 .
When it is assumed that the conditions of operation S 1140 are satisfied, the controller 120 may perform operation S 1160 without performing operation S 1150 . The controller 120 searches for a bank that is in the standby state for performing the programming operation. In FIG. 12B , the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state and the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is in the standby state, and thus, the bank B 2 is detected in operation S 1160 . In addition, the controller 120 controls the MSB page of the bank B 2 that is detected in operation S 1160 to be programmed in operation S 1170 .
In operation S 1180 , after performing operation S 1170 , there are commands (LPG_B 3 , LPG_B 8 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . Since operations S 1150 and S 1170 are performed, the number of first banks B 1 , B 2 , B 3 , B 4 , and B 5 in the operating states is 5. In operation S 1120 , since the number of the first banks B 1 , B 2 , B 3 , B 4 , and B 5 is equal to or greater than the first threshold value, the controller 120 performs operation S 1180 . The controller 120 does not perform the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , and B 5 that are currently in the operating states changes into the standby state after finishing the operation.
Hereinafter, a case where operations S 630 and S 650 illustrated in FIG. 6 are performed instead of operations S 1160 and S 1170 of FIG. 11 will be described. Here, it is assumed that the first threshold value is 6.
The performing of a reading operation after searching for the bank B 5 may be similar to the manner described above. In addition, it is here assumed that the bank B 6 is detected in operation S 1130 and the conditions of operation S 1140 are satisfied.
In operation S 630 , the controller 120 searches for a second bank that is in the standby state for programming the MSB page. In FIG. 12B , the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is in the standby state, the second bank B 2 is detected in operation S 630 . In addition, in operation S 640 , the controller 120 controls the MSB page of the second bank B 2 that is detected in operation S 630 to be programmed.
When operation S 1180 is performed after operation S 640 , there are commands (LPG_B 3 , LPG_B 8 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . The number of first banks B 1 , B 2 , B 3 , B 4 , and B 5 that are currently in the operating states is 5. In operation S 1120 , since the number of first banks B 1 , B 2 , B 3 , B 4 , and B 5 is smaller than the first threshold value, the controller 120 performs operation S 1130 . In FIG. 12B , the bank B 6 relating to the command RD_B 6 for reading the data stored in the bank B 6 is in the standby state, and thus, the bank B 6 is detected in operation S 1130 .
›DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS · 8 of 8
However, when it is assumed that the conditions of operation S 1140 are satisfied, the controller 120 may perform operation S 630 instead of performing operation S 1150 . The controller 120 searches for a second bank that is in the standby state for programming the MSB page. In FIG. 12B , the bank B 4 relating to the command MPG_B 4 for programming the MSB page of the bank B 4 is in the operating state, and thus, the controller 120 does not search for the second bank in operation S 630 . Therefore, the controller 120 performs operation S 650 . In operation S 650 , the controller 120 searches for a third bank that is in the standby state for programming the LSB page. In FIG. 12B , the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state and the bank B 8 relating to the command LPG_B 8 for programming the LSB page of the bank B 8 is in the standby state, and thus, the bank B 8 is detected as the third bank in operation S 650 . In addition, in operation S 660 , the controller 120 controls the LSB page of the third bank B 8 that is detected in operation S 650 to be programmed.
When operation S 1180 is performed after operation S 660 , there are commands (LPG_B 3 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . The number of first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 that are currently in the operating states is 6. In operation S 1120 , since the number of first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 is equal to or greater than the first threshold value, the controller 120 performs operation S 1180 . The controller 120 does not execute the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 finishes the operation and changes into the standby state.
Hereinafter, a case where operations S 730 and S 750 illustrated in FIG. 7 are performed instead of operations S 1160 and S 1170 illustrated in FIG. 11 will be described. Hereinafter, it is assumed that the first threshold value is 6.
The performing of a reading operation after searching for the bank B 5 may be similar to the manner described above. In addition, it is assumed that the bank B 6 is detected in operation S 1130 and the conditions of operation S 1140 are satisfied.
In operation S 730 , the controller 120 searches for a second bank that is in the standby state for programming the LSB page. In FIG. 12B , the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state and the bank B 8 relating to the command LPG_B 8 for programming the LSB page of the bank B 8 is in the standby state, and thus, the second bank B 8 is detected in operation S 730 . In addition, in operation S 740 , the controller 120 controls the LSB page of the second bank B 8 that is detected in operation S 730 to be programmed.
When operation S 1180 is performed after operation S 740 , there are commands (LPG_B 3 , MPG_B 2 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . The number of first banks B 1 , B 3 , B 4 , B 5 , and B 8 that are currently in the operating states is 5. In operation S 1120 , since the number of first banks B 1 , B 3 , B 4 , B 5 , and B 8 is smaller than the first threshold value, the controller 120 performs operation S 1130 . In FIG. 12B , the bank B 6 relating to the command RD_B 6 for reading the data stored in the bank B 6 is in the standby state, and thus, the bank B 6 is detected in operation S 1130 .
However, when it is assumed that the conditions of operation S 1140 are satisfied, the controller 120 may perform operation S 730 instead of performing operation S 1150 . The controller 120 searches for a second bank that is in the standby state for programming the LSB page. In FIG. 12B , the bank B 3 relating to the command LPG_B 3 for programming the LSB page of the bank B 3 is in the operating state, and thus, the controller 120 does not search for the second bank in operation S 730 . Therefore, the controller 120 performs operation S 750 . In operation S 750 , the controller 120 searches for a third bank that is in the standby state for programming the MSB page. In FIG. 12B , the bank B 2 relating to the command MPG_B 2 for programming the MSB page of the bank B 2 is in the standby state, and thus, the bank B 2 is detected as the third bank in operation S 750 . In addition, in operation S 760 , the controller 120 controls the MSB page of the third bank B 2 that is detected in operation S 750 to be programmed.
When operation S 1180 is performed after operation S 760 , there are commands (LPG_B 3 , MPG_B 4 , and RD_B 6 ) to be performed, and thus, the controller 120 performs the operations again from operation S 1120 . The number of first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 that are currently in the operating states is 6. In operation S 1120 , since the number of first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 is equal to or greater than the first threshold value, the controller 120 performs the operation S 1180 . The controller 120 does not execute the received commands COM until at least a first bank among the first banks B 1 , B 2 , B 3 , B 4 , B 5 , and B 8 finishes the operation and changes into the standby state.
While exemplary embodiments of the present inventive concept have been described in detail above, it will be understood that various changes in form and details may be made.
Claims as granted
20 claimsLog in to read the claims of this application.
Log in to unlockClassifications
2 codes- G11C8/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock