An embodiment relates to a memory system and memory controller.
An embedded multimedia card (eMMC) is proposed as a data storage device, and promotion of the efficiency of a method of analyzing a fault thereof is desired.
In general, according to one embodiment, a memory system includes a nonvolatile memory including a first storage area; and a memory controller which receives first data from a host device to access the nonvolatile memory, and causes the first storage area to store therein log data based on the first data.
An embodiment will be described below with reference to the drawings. In the drawings, identical parts are denoted by identical reference symbols.
Hereinafter, a memory system according to the embodiment will be described below by using
The configuration of the memory system according to the embodiment will be described below by using
In
As shown in
As shown in
The cell array 111 includes blocks BLK. Each block BLK includes string units (groups) SU (SU0, SU1, . . . ). Each string unit SU includes (NAND) strings STR. Each string STR includes memory cells. In the cell array 111, word lines WL, bit lines BL, source lines SL, and selection gate lines are provided.
The input/output circuit 120 is connected to a NAND interface 240 of the memory controller 200 through a controller bus. The input/output circuit 120 controls input of signals of a command, address, and data, and a control signal from the memory controller 200 (NAND interface 240) or output of those signals to the memory controller 200. The signals are transferred on the controller bus. The address signal specifies, for example, an address in the cell array 111, and includes a column address, and row address. The column address, and the row address respectively specify a row, and column of the cell array 111. The row address includes a plane address, block address, string (string unit) address, and page address. The plane address, the block address, the string address, and the page address respectively specify a plane 110, block BLK, string STR (string unit SU), and word line WL.
The address/command register 130 receives a command/address signal through the input/output circuit 120, and retains the received signal. The sequencer 140 receives a command from the address/command register 130, and controls the voltage generation circuit 150, and the core driver 160 according to a sequence based on the command. The voltage generation circuit 150 generates various voltages (potentials) in accordance with an instruction from the sequencer 140.
The core driver 160 operates in accordance with an instruction from the sequencer 140, and receives the various voltages from the voltage generation circuit 150. The core driver 160 controls the data circuit/page buffer 113 in order to control the bit lines BL. The core driver 160 generates a voltage to be applied to the word line WL, and selected gate line by using a voltage from the voltage generation circuit 150. More specifically, the core driver 160 generates a voltage to be applied to a word line WL or other word lines WL specified by the page address. Besides, the core driver 160 generates a voltage to be applied to a selected gate line of the string unit SU specified by the string address.
The row decoder 112 receives an address signal from the address/command register 130, and receives a voltage to be applied to the word line WL and the selected gate line from the core driver 160. The row decoder 112 of a plane 110 specified by the address signal transfers the voltage from the core driver 160 to a block BLK specified by a block address signal.
The data circuit/page buffer 113 temporarily retains data read from the cell array 111, receives write data from the outside of the NAND flash memory 100, and writes the received data to a selected memory cell. The column decoder 114 receives a column address signal from the address/command register 130. The column decoder 114 controls input/output of data of the data circuit/page buffer 113 on the basis of the column address signal.
As shown in
One string STR includes n+1 series-connected cell transistors MT0 to MTn, a source-side selection gate transistor SST, and drain-side selection gate transistor SDT. Here, n is a natural number, for example, 47, and the following description is based on an example in which n is 47 (n=47). The cell transistor MT functions as a memory cell. In each string STR, a drain of a transistor SST is connected to a source of a cell transistor MT0. A source of a transistor SDT is connected to a drain of a cell transistor MT47. A source of the transistor SST is connected to the source line SL. A drain of the transistor SDT is connected to a corresponding bit line BL.
Strings STR arranged along the word line WL constitute a string unit SU. For example, all the strings STR arranged along the word line WL, and respectively connected to all the bit lines BL constitute one string unit SU. In each string unit SU, a gate of each of cell transistors MTy (y is 0 or a natural number) of each of the strings STR is connected to the word line WLy as common connection.
In each string unit SU, a gate of each of transistors SDT of each of the strings STR is connected to the drain-side selection gate line SGDL as common connection. Selection gate lines SGDL0 to SGDLi are respectively provided for the string units SU0 to SUi.
In each string unit SU, a gate of each of transistors SST of each of the strings STR is connected to the source-side selection gate line SGSL as common connection. Source-side selection gate lines SGSL0 to SGSLi are respectively provided for the string units SU0 to SUi.
Cell transistors MT connected to one word line WL in one string unit SU constitute a cell set CS. Write and read are collectively carried out in each cell set CS. This data unit is called a “page”. In the NAND flash memory 100, data more than or equal to two bits can be retained in one memory cell. When a memory cell retains data of two bits, one cell set CS stores therein data of two pages. In this case, page addresses are assigned to one cell set CS. It is also possible for one memory cell to retain data more than or equal to three bits. The following description is based on an example in which data of two bits is stored in one memory cell. A word line WL to be selected is identified by an address of a page to which access is instructed to be gained.
In each block BLK, word lines WLy of the same number (address) in different strings STR are connected to each other.
In order to access a cell transistor MT, one block BLK is selected, and one string unit SU is selected. For selection of the block BLK, a signal used to select a block BLK is supplied only to a block BLK specified by the block address signal. In the selection block BLK, a word line WL, and selection gate lines SGSL, and SGDL are connected to a driver in the core driver 160 by this block selection signal.
Furthermore, for selection of one string unit SU, the selection gate transistors SST, and SDT receive a voltage for selection only in the selection string unit SU. In the non-selection string unit SU, the selection gate transistors SST, and SDT receive a voltage for non-selection. The voltage for selection depends on operations of read, write, and the like. Likewise, the voltage for non-selection depends on operations of read, write, and the like.
As shown in
The user data area 111A stores therein user data input from the memory controller 200 (NAND interface 240).
The access log area 111B stores therein log data from the memory controller 200 (NAND interface 240). The access log area 111B has, for example, the storage capacity greater than or equal to 512 MB. In order to carry out read of the access log area 111B, a dedicated read command from outside (for example, the host) is required, and the user is inhibited from carrying out read of the access log area 111B.
The file system table 111C stores therein address information about the access log area 111B in accordance with the control of the memory controller 200.
As shown in
For example, a program retained in the ROM 220 is executed by the processor 210, whereby the memory controller 200 carries out various operations. The RAM 230 retains temporary data, and also functions as a work area of the processor 210.
More specifically, the processor 210 carries out an operation (write, read, erase operation, and the like) of access to the NAND flash memory 100 on the basis of host data from the host device 300. The host data (first data) includes a command, address, and user data transferred from the host device 300. At this time, the processor 210 carries out an operation of access to the user data area 111A.
Besides, the processor 210 packetizes, together with the access operation described above, second data based on the host data to create log data. The second data includes a command, address, data size (size of the user data), and the like, and is data necessary to reproduce host data input afterward. It should be noted that the second data is not limited to a command, address, and data size, and may include user data, and a time stamp. The log data is data obtained by packetizing the second data to, for example, about 8 bytes, and indicates a log of access from the host device 300. The RAM 230 retains created log data in sequence. When a predetermined amount (first amount) of log data has accumulated in the RAM 230, the processor 210 issues a dedicated command to the NAND flash memory 100. The processor 210 further causes an access log area 111B in the NAND flash memory 100 to store therein the log data. When the amount of the log data of the access log area 111B exceeds the storage capacity thereof, the processor 210 deletes the data in the access log area 111B in sequence from the older log data. Further, the processor 210 stores new log data in the emptied part of the access log area 111B.
Furthermore, the processor 210 stores address information about the access log area 111B including the log data in a file system table 223.
The NAND interface 240 is connected to the NAND flash memory 100 through a bus, for example, a NAND bus or the like, and administers the communication between the memory controller 200 and NAND flash memory 100. Part of the functions of the NAND interface 240 can be realized by a program to be executed by the processor 210. The host interface 250 is connected to the host device 300 through a bus, for example, a controller bus or the like, and administers the communication between the memory controller 200 and host device 300. Part of the functions of the host interface 250 can be realized by a program to be executed by the processor 210.
As shown in
An access operation of the memory system according to the embodiment will be described below by using
As shown in
Next, in step S12, on the basis of the host data, the memory controller 200 carries out normal internal processing, i.e., an operation (write, read, erase operation, and the like) of access to the NAND flash memory 100. At this time, the memory controller 200 carries out the access operation to the user data area 111A.
Besides, the memory controller 200 packetizes, together with the access operation described above, second data based on the host data to create log data. The memory controller 200 issues a dedicated command to cause the access log area 111B in the NAND flash memory 100 to store therein the log data.
Thereafter, in step S13, the memory controller 200 responds to the host device 300 about a result of the access operation.
In this manner, the access operation of the memory system according to the embodiment terminates.
As shown in
In the comparative example, and in the embodiment, a state where access to the NAND flash memory 100 is inhibited (a state where data reception is inhibited) is held, i.e., the busy state is held in the period from the time t1 to the time t2. Thereafter, in the comparative example, a state where access to the NAND flash memory 100 is enabled, i.e., a ready state is held at and after the time t2. On the other hand, in the embodiment, a ready state is held in the period from the time t2 to the time t3, and thereafter a busy state is held again in the period from the time t3 to the time t4. Then, at and after the time t2, a ready state is held.
It should be noted that in
A fault analysis operation of the memory system according to the embodiment will be described below by using
As shown in
Next, in step S22, the log data is deciphered by the computer. Then, the fault is analyzed on the basis of the deciphered log data.
In this manner, the fault analysis operation of the memory system according to the embodiment is carried out.
As shown in
Thereafter, in step S34, an analyzer is connected to the lead wire.
On the other hand, when there is no input/output port of the memory system, machining is carried out in step S32. That is, a substrate on which the memory system is mounted is physically machined, and the memory system is thereby dismounted from the substrate. Next, re-balling is carried out in step S33, whereby solder balls removed by the machining are attached to the memory system again.
Thereafter, in step S34, the analyzer is connected to the dismounted memory system.
Next, in step S35, an interview with the user is carried out by using the analyzer to confirm the reproducibility of the fault occurrence and, in step S36, log data is acquired. Thereafter, analysis of the log data is carried out in step S37 by using a computer or the like. Then, the fault is analyzed on the basis of the deciphered log data.
As described above, by the fault analysis operation of the memory system in the comparative example, it takes a long time (about seven days) to acquire the log data. When the reproducibility of the fault is poor, log data must be acquired even many times until it becomes possible to reproduce the fault, thereby further requiring a longer time.
Conversely, by the embodiment described above, the NAND flash memory 100 is provided with an access log area 111B. The memory controller 200 creates log data on the basis of access (host data) from the host device 300, and stores the log data in the access log area 111B. Thereby, it is possible to acquire log data only by reading the stored log data without confirming the reproducibility of the fault occurrence after data has been returned on account of fault or the like. Accordingly, it is possible to carry out fault analysis easily and in a shortening manner. According to the embodiment, it is possible to carry out a fault analysis operation within a short time of, for example, about two days.
It should be noted that in the embodiment, log data of a sudden/unexpected operation (for example, sudden power shutdown or the like) is not stored in the NAND flash memory 100 in some cases. In such a case, log data cannot be obtained by reading the log data in the fault analysis operation, and hence the same operation as the comparative example is carried out.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
This application is based upon and claims the benefit of priority from U.S. Provisional Application No. 62/130,790, filed Mar. 10, 2015, the entire contents of all of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62130790 | Mar 2015 | US |