The present invention relates to a nonvolatile memory device such as a semiconductor memory card having a nonvolatile memory, a controller for controlling the nonvolatile memory, and a nonvolatile memory system configured by adding an access device as a component to the nonvolatile memory device.
A nonvolatile memory device having a rewritable nonvolatile memory is increasingly demanded mainly for a semiconductor memory card. The semiconductor memory card is high-price compared to an optical disk, a tape medium, and the like, however, the semiconductor memory card is increasingly demanded as a memory medium for a portable apparatus such as a digital still camera and a mobile phone because of merits such as small-size, lightweight, vibration resistance, and easy handling. In these years, the semiconductor memory card is used as a memory medium of a consumer-use moving image recording apparatus and a professional-use moving image recording apparatus. In addition, not only the portable apparatus but also a digital television, a DVD recorder, and like include a slot for the semiconductor memory as standard equipment, and thus still images shot with the digital still camera can be browsed on the digital television and a moving image shot by the consumer-use moving image recording apparatus can be dubbed to a DVD recorder.
The nonvolatile memory device such as the semiconductor memory card includes a flash memory as a nonvolatile main memory, and has a memory controller for controlling it. The memory controller controls data reading and data writing to the flash memory in accordance with reading and writing commands from an access device such as a digital still camera.
Meanwhile, the nonvolatile memory device can be divided broadly into 2 types, a low-cost device with a low writing speed (hereinafter referred to as a type S) and a high-cost device with a high writing speed (hereinafter referred to as a type M). The type S is mainly used for a system such as a personal computer allowing relatively-low speed access, and the type M is mainly used for a system such as a moving image recording and reproducing device requiring high speed access.
The type S nonvolatile memory device mounts a flash memory of one chip, and further mounts a single bus controller of one chip (hereinafter referred to as a controller 1) for accessing the flash memory via a memory bus as a memory controller for an access control of this flash memory. On the other hand, the type M nonvolatile memory device mounts flash memories of two chips or more, further mounts a multi bus controller (hereinafter referred to as a controller 2), and independently connects the flash memories to each bus of the controller 2.
However, when different memory controllers exclusively for the type S and the type M are developed, respectively, there is a problem that requires a large development cost of the memory controller.
Regarding this problem, Patent document 1 proposes a device using a universal memory controller regardless of the types. This device includes three types of circuit parts: a universal controller called a block controller; an interface with an access device such as a camera; and a master controller for controlling whole of the block controller, and mounts one block controller when realizing the type S or mounts a plurality of block controllers when realizing the type M.
Patent document 1: Japanese Unexamined Patent Publication No. H04-268284
However, even when realizing a simultaneous access to a plurality of flash memories, the above-mentioned conventional nonvolatile memory device has a problem that constricts a speeding-up because an aggregation process has to be carried out to each flash memory.
In view of the above-mentioned problem, the present invention intends to provide a memory controller, a nonvolatile memory device, and a nonvolatile memory system which are able to carry out a high-speed writing process.
To solve the problem, a memory controller of the present invention which writes data to a nonvolatile memory having a plurality of physical blocks as a recording area and reads data from said nonvolatile memory, comprises: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when all free regions of a temporary physical block to which transferred data is temporarily written have run out or when a synchronization signal is inputted from the outside device, and for outputting a synchronization signal when all free regions of said temporary physical block have run out; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
The memory controller may further comprise: a mode detection part for determining based on an identification signal inputted from the outside device whether the memory controller is activated in a single mode or in a dual mode.
The memory controller may further comprise: a master-slave detection part for determining based on an identification signal inputted from the outside device whether the memory controller is used as a master memory controller or a slave memory controller.
The memory controller may further comprise: a mode detection part for determining based on an identification signal inputted from the outside device whether the memory controller is activated in a single mode or in a dual mode; and a master-slave detection part for determining based on the identification signal inputted from the outside device whether the memory controller is used as a master memory controller or a slave memory controller.
To solve the problem, a memory controller of the present invention comprises: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when a free capacity of a temporary physical block have fallen below a predetermined threshold value or when a synchronization signal is inputted from the outside device, and for outputting a synchronization signal when a free capacity of said temporary physical block have fallen below the predetermined threshold value; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
To solve the problem, a nonvolatile memory device of the present invention has a plurality of memory modules, wherein said each memory module includes: a nonvolatile memory having a plurality of physical blocks as a recording area; and a memory controller for writing data to said nonvolatile memory and reading data from said nonvolatile memory, and said memory controller includes: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when all free regions of a temporary physical block to which transferred data is temporarily written have run out or when a synchronization signal is inputted from a memory controller of another memory module, and for outputting a synchronization signal when all free regions of said temporary physical block have run out; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
Said each memory controller may further include: a mode detection part for determining based on an identification signal inputted from the outside device whether the memory controller is activated in a single mode or in a dual mode.
Said each memory controller may further include: a master-slave detection part for determining based on an identification signal inputted from the outside device whether the each memory controller is used as a master memory controller or a slave memory controller.
Based on a signal from a master-slave detection part of one memory module, said master-slave detection part may use other memory controller as the master memory controller or the slave memory controller.
Said each memory controller may further include: a mode detection part for determining based on an identification signal inputted from the outside device whether the each memory controller is activated in a single mode or in a dual mode; and a master-slave detection part for determining based on the identification signal inputted from the outside device whether the each memory controller is used as a master memory controller or a slave memory controller.
Based on a signal from a master-slave detection part of one memory module, said master-slave detection part may use other memory controller as the master memory controller or the slave memory controller.
To solve the problem, a nonvolatile memory device of the present invention has a plurality of memory modules, wherein said each memory module includes: a nonvolatile memory having a plurality of physical blocks as a recording area; and a memory controller for writing data to said nonvolatile memory and reading data from said nonvolatile memory, and said memory controller includes: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when a free capacity of a temporary physical block have fallen below a predetermined threshold value or when a synchronization signal is inputted from a memory controller of another memory module, and for outputting a synchronization signal when a free capacity of said temporary physical block have fallen below the predetermined threshold value; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
To solve the problem, a nonvolatile memory system of the present invention comprises: a nonvolatile memory device having a plurality of memory modules; and an access device for accessing said nonvolatile memory device, wherein each memory module is said nonvolatile memory device includes: a nonvolatile memory having a plurality of physical blocks as a recording area; and a memory controller for writing data to said nonvolatile memory and reading data from said nonvolatile memory, and said memory controller includes: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when all free regions of a temporary physical block to which transferred data is temporarily written have run out or when a synchronization signal is inputted from a memory controller of another memory module, and for outputting a synchronization signal when all free regions of said temporary physical block have run out; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
Said each memory controller may further include: a mode detection part for determining based on an identification signal inputted from the outside device whether the memory controller is activated in a single mode or in a dual mode.
Said each memory controller may further include: a master-slave detection part for determining based on an identification signal inputted from the outside device whether the each memory controller is used as a master memory controller or a slave memory controller.
Based on a signal from a master-slave detection part of one memory module, said master-slave detection part may use other memory controller as the master memory controller or the slave memory controller.
Said each memory controller may further include: a mode detection part for determining based on an identification signal inputted from the outside device whether the each memory controller is activated in a single mode or in a dual mode; and a master-slave detection part for determining based on the identification signal inputted from the outside device whether the each memory controller is used as a master memory controller or a slave memory controller.
Based on a signal from a master-slave detection part of one memory module, said master-slave detection part may use other memory controller as the master memory controller or the slave memory controller.
To solve the problem, a nonvolatile memory system of the present invention comprises: a nonvolatile memory device having a plurality of memory modules; and an access device for accessing said nonvolatile memory device, wherein each memory module is said nonvolatile memory device includes: a nonvolatile memory having a plurality of physical blocks as a recording area; and a memory controller for writing data to said nonvolatile memory and reading data from said nonvolatile memory, and said memory controller includes: a reading-writing control part for carrying out data writing and data reading processes to said nonvolatile memory in accordance with a signal from an outside device; an aggregation synchronization part for ordering starting an aggregation process when a free capacity of a temporary physical block have fallen below a predetermined threshold value or when a synchronization signal is inputted from a memory controller of another memory module, and for outputting a synchronization signal when a free capacity of said temporary physical block have fallen below the predetermined threshold value; and an aggregation processing part for aggregating valid data of said temporary physical block to another physical block on the basis of a signal from said aggregation synchronization part.
Said identification signal may be a voltage level that changes on the basis of a power supply voltage supplied to said each memory controller.
In the present invention, a memory controller is able to synchronously carry out an aggregation process to a nonvolatile memory. Accordingly, in a case of realizing a nonvolatile memory device able to access a plurality of nonvolatile memories, processing times required for the aggregation processes of the memory controllers can be covered up each other, and accordingly an overall writing speed of the nonvolatile memory system can be increased.
In addition, according to the present invention, by comprising a plurality of memory modules including a nonvolatile memory and memory controller, and further including a detection part in each memory module, the respective memory controllers can be activated as a master controller or a slave controller. Moreover, the present invention can realize a low-cost nonvolatile memory system because the memory controller is shared.
Referring to drawings, a nonvolatile memory system according to an embodiment of the present invention will be concretely explained below, including a comparative example.
The memory module 103 includes a memory controller 110 and a nonvolatile memory 130. Similarly, the memory module 104 includes a memory controller 140 and a nonvolatile memory 160.
The nonvolatile memories 130 and 160 are main memories, and are composed of a flash memory, respectively. The nonvolatile memories 130 and 160 are composed of many physical blocks, respectively. The nonvolatile memories 130 and 160 have a user memory area of 512M bytes, respectively. In both of the nonvolatile memories 130 and 160, at least one physical block is used as a temporary block used to store data transferred from a buffer memory.
As shown in
As shown in
The memory controllers 110 and 140 are driven in a single mode or a dual mode. In the single mode, only one of the memory controllers operates separately, and in the dual mode, the memory controller 110 and the memory controller 140 operate in parallel.
Next, since the memory controller 110 and the memory controller 140 have the same configuration, the memory controller 110 will be explained below in detail. The A1 port 116 and the A2 port 117 are used to receive a power supply voltage on a substrate as an identification signal. The B port 118 transfers a part of data temporarily retained in the buffer memory 121 to the memory module 104. Meanwhile, the power supply on the substrate is supplied from the access device 100.
The mode detection part 114 is a circuit block for determining the mode of operation, the single mode or the dual mode, on the basis of the identification signal inputted via the A1 port 116.
The MS determination part 115 is a circuit block for determining on the basis of the identification signal inputted via the A2 port 117 whether the memory controller 110 is used as a master controller or used as a slave controller.
Here, an operation mode corresponding to both values of a mode flag and a MS flag will be explained. When the mode flag represents the value 0, the single mode is employed regardless the value of the MS flag. For example, when the memory controller 110 is set to the single mode, only the memory module 103 operates as a memory device. Specifically, the nonvolatile memory device 101 serves as a memory device of 512 MB in the present embodiment. Meanwhile, In the case of the single mode, only one memory module is implemented to the nonvolatile memory device 101. On the other hand, in a case where the memory controllers 110 and 140 are set to be the dual mode, either one of the memories is set to be a master controller (MS flag=1), and the other memory is set to be the slave controller (MS=0). In this case, nonvolatile memories are implemented to both of the memory modules 103 and 104, which serve as a memory device of 1 G bytes in total.
As shown in
The core control part 112 includes a CPU 122 for controlling whole of the memory controller 110, a RAM 123 which is a work region of the CPU 122, and a ROM 124 storing programs executed by the CPU 122.
The back-end part 113 includes an address management part 125, a reading-writing control part 126, an aggregation processing part 127, and an aggregation synchronization part 128. The address management part 125 designates an address of the nonvolatile memory 130. The reading-writing control part 126 controls a data writing to the nonvolatile memory 130 and a data reading from the nonvolatile memory 130. The address management part 125 internally includes: a logical-physical conversion table for converting a logical address transferred by the access device 100 into a physical address at the nonvolatile memory 130; and a physical region management table for storing statuses of the respective physical blocks constituting the nonvolatile memory 130. These are already in practical use and are realized by the circuit configuration same as the conventional circuit configuration, and accordingly an explanation thereof will be omitted.
The aggregation processing part 127 is a block for carrying out an aggregation process. The aggregation process is for rearranging data stored in physical blocks to be in a logical order when the access device 100 wrote data to logical addresses randomly. The aggregation synchronization part 128 orders the aggregation processing part 127 to carry out the aggregation when all free regions of temporary block in the nonvolatile memory 130 have run out, and outputs a synchronization signal to the other memory controller 140. Further, the aggregation synchronization part 128 orders the aggregation processing part 127 to carry out the aggregation also when a synchronization signal is given from an outside device, and makes the memory controllers 110 and 140 synchronously carry out the aggregation process.
As shown in
The core control part 142 includes a CPU 152 for controlling whole of the memory controller 140, a RAM 153 which is a work region of the CPU 152, and a ROM 154 for storing programs executed by the CPU 152.
The back-end part 143 includes an address management part 155, a reading-writing control part 156, an aggregation processing part 157, and an aggregation synchronization part 158. These components are the same as those of the memory module 103, and accordingly explanations thereof will be omitted. An explanation of operation described below will explain the differences in detail.
Next, an initialization process of the nonvolatile memory device 101 and an operation of a case where a writing command is issued from the access device 100 will be explained.
Meanwhile,
The memory controller 110 carries out the initialization process in accordance with the flowchart shown in
Next, the MS detection part 115 detects a voltage of the A2 port 117 (S104). Since the Vcc is applied to the A2 port 117 in
After that, the process finishes after various types of initialization processes which are commonly carried out in a conventional nonvolatile memory system (creation of the logical-physical conversion table and the like). Meanwhile, explanations of the various types of initialization processes will be omitted.
As shown in
After the above-mentioned initialization process, the flow proceeds to a normal operation.
Meanwhile,
In
In the single mode, when the access device 100 issues a writing command for 16 k bytes corresponding to LA0 to LA31 for example, writing data is written to the physical block 131 serving as the temporary block via the buffer memory 121 in the order from the first page as shown in
In the dual mode, namely, when the initialization setting has been carried out in the state shown in
Then, it is assumed that the data writing is continued and data are randomly written to LA0 to LA3, LA504 to LA507, LA0 to LA3, LA8 to LA11, and so on in an ascending order from page PN0 to the last page PN127 of the physical block 131 as shown in
A plurality of physical blocks may be used as the temporary blocks for each memory module, however, only the physical block 131 is used as the temporary block in the memory module 103. In the similar manner, only the physical block 161 is used as the temporary block in the memory module 104. Upon running out of all erased pages of the physical block 131, valid data in the physical block 131 are re-stored to another erased physical block in a logical address order. This process is called an aggregation process, which is a common technique applied to a conventional nonvolatile memory system.
In a state where data have been written up to page PN127 of the physical block 131, data corresponding to LA24 to LA27, LA28 to LA31, and LA508 to LA511 is further transferred from the access device 100 to the buffer memory 121 as shown in
The aggregation synchronization part 128 recognizes that data have been written up to page PN127 of the physical block 131, and orders the aggregation processing part 127 the aggregation process. Then, the aggregation synchronization part 128 transfers a synchronization signal to the port C 149 via the port C 119. The address management part 125 obtains erased physical blocks 132 and 133. The aggregation processing part 127 carries out the aggregation process via the reading-writing control part 126 so as to transfer data of the physical block 131 to the erased physical block 132 as shown in
Meanwhile, in the memory controller 140, the aggregation synchronization part 158 orders the aggregation processing part 157 the aggregation process. Though data is written up to page PN126 and an erased page PN127 remains in the physical block 161, the aggregation process is carried out even in this case and the aggregation processing part 157 aggregates only valid data of the physical block 161 to another physical block 162. Then, the memory controller 140 writes data corresponding to LA28 to LA31 and LA508 to LA511 transferred from the master memory controller 110 to a new physical block 163.
As described above, since the present embodiment has two memory modules each including a nonvolatile memory and memory controller, and when one memory controller carries out the aggregation process, the other memory controller simultaneously carries out the aggregation process, the present embodiment is able to shorten the process time T_sync related to the aggregation process as shown in
In addition, according to the present embodiment, since the mode detection part 114 and the MS detection part 115 are able to recognize in the initialization process at power-on whether the controller is a master controller or a slave controller on the basis of a voltage such as the Vcc or the GND, and further the memory controller recognized as the master controller, namely, the front-end part 111 of the memory controller 110 exclusively communicates with the access device 100 and a nonvolatile memory of writing destination is allocated in accordance with a logical address, data can be easily written to different nonvolatile memories in parallel by using a common memory controller.
Next, referring to
Next, referring to
In this state, the access device 100 further sends data corresponding to LA24 to LA27 and LA28 to LA31 to the buffer memory 121. The memory controller 210 writes data corresponding to LA24 to LA27 and transfers data corresponding to LA28 to LA31 to the memory controller 240.
The address management part 225 recognizes that data have been written up to page PN127 of the physical block 131, and orders the aggregation processing part 127 the aggregation process and obtains erased physical blocks 132 and 133. The aggregation processing part 127 carries out a process for aggregating data of the physical block 131 to the erased physical block 132 via the reading-writing control part 126 as shown in a broken line. After that, the address management part 225 registers the physical block 132 as a physical block corresponding to logical blocks LA0 to LA511 to the logical physical conversion table. Moreover, the address management part 225 writes data corresponding to LA24 to LA27 to page PN0 of the physical block 133 via the reading-writing control part 126, and erases the physical block 131.
Meanwhile, the memory controller 240 writes data corresponding to LA28 to LA31 to the nonvolatile memory 160, however, since the physical block 161 that is a temporary block only stores data up to page PN126, namely, page PN 127 is an erased page, the address management part 255 writes data corresponding to LA28 to LA31 to page PN127 of the physical block 161 via the reading-writing control part 156.
Next, when the access device 100 sends data corresponding to LA508 to LA511 to the nonvolatile memory device as shown in
The address management part 255 recognizes that data have been written up to page PN127 of the physical block 161, and orders the aggregation processing part 157 the aggregation process and obtains erased physical blocks 162 and 163. The aggregation processing part 157 carries out a process for aggregating data of the physical block 161 to the erased physical block 162 via the reading-writing control part 156. After that, the address management part 255 registers the physical block 162 as a physical block corresponding to LA0 to LA511 to the logical physical conversion table. Moreover, the address management part 255 writes data corresponding to LA508 to LA511 to page PN0 of the erased physical block 163 via the reading-writing control part 156, and erases the physical block 161.
In this comparative example, the aggregation process is carried out in each memory controller after all data were written to the respective temporary blocks. A total time required for the aggregation process accordingly becomes longer than that of the present embodiment. On the other hand, in the present embodiment, since being simultaneously carried out, the aggregation processes are covered up each other. Specifically, T_sync becomes shorter than T_async, resulting in increase of an overall writing speed of the nonvolatile memory system.
Meanwhile, when running out of all free regions of a temporary block in the nonvolatile memories 130 or 160 for storing data transferred from the buffer memory 121 or a synchronization signal has been given from an outside device, both of the aggregation synchronization parts 128 and 158 order the aggregation processing parts 127 and 157 the aggregation, however, the aggregation synchronization parts 128 and 158 may order the aggregation processing parts 127 and 157 the aggregation when a free capacity of the temporary block falls below a predetermined threshold value.
In addition, in the above-mentioned embodiment of the present invention, the case of using two memory modules has been explained, however, the present invention is not limited to this case and can be configured by employing three or more memory modules. In that case, one of the controllers is used as a master controller and the other memory controllers are used as slave controllers.
In a device employing a nonvolatile memory such as a flash memory, a memory controller, a nonvolatile memory device, and a nonvolatile memory system according to the present invention are able to shorten time for an aggregation process, improve a writing speed, and be widely used as a memory medium of: a potable AV apparatus such as still image recording and reproducing device and a moving image recording-reproducing device; and a portable communication apparatus such as a mobile phone.
Number | Date | Country | Kind |
---|---|---|---|
2007-043495 | Feb 2007 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2008/051256 | 1/29/2008 | WO | 00 | 8/6/2009 |