WO2006126445A1 - メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 - Google Patents

メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 Download PDF

Info

Publication number
WO2006126445A1
WO2006126445A1 PCT/JP2006/309933 JP2006309933W WO2006126445A1 WO 2006126445 A1 WO2006126445 A1 WO 2006126445A1 JP 2006309933 W JP2006309933 W JP 2006309933W WO 2006126445 A1 WO2006126445 A1 WO 2006126445A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
memory
management table
address range
write
Prior art date
Application number
PCT/JP2006/309933
Other languages
English (en)
French (fr)
Inventor
Daisuke Kunimune
Masahiro Nakanishi
Manabu Inoue
Tomoaki Izumi
Tetsushi Kasahara
Kazuaki Tamura
Kiminori Matsuno
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US11/914,989 priority Critical patent/US8051270B2/en
Priority to JP2007517793A priority patent/JP4884382B2/ja
Publication of WO2006126445A1 publication Critical patent/WO2006126445A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Definitions

  • the present invention relates to a nonvolatile memory device such as a semiconductor memory card having a flash memory as a main memory, a memory controller built therein, a nonvolatile memory system including a nonvolatile memory device and an access device, and
  • the present invention relates to a memory control method.
  • Nonvolatile memory devices including a rewritable nonvolatile memory are in increasing demand, particularly for semiconductor memory cards.
  • demand for non-volatile storage systems using semiconductor memory cards is growing, especially in digital still cameras and personal computers.
  • a semiconductor memory card that is put into practical use normally includes a flash memory that is a nonvolatile memory and a controller LSI that is a control circuit for the flash memory.
  • non-volatile memory chips themselves have been increasing in capacity due to multi-level memory.
  • the number of non-volatile memory chips mounted on semiconductor memory cards is also increasing. For example, a memory space of a semiconductor memory card exceeding 1G Neut has been put into practical use.
  • a distributed management method As an address management method in a semiconductor memory card, a distributed management method has been conventionally used.
  • the logical address and the status flag of the page are stored in the management area of the page that is the unit of writing, and the address management table is generated based on the status flag of the logical address page at initialization. This is the method of storing in the RAM in the controller LSI.
  • the logical address and the status flag of the page are collectively referred to as “distributed management information”.
  • Patent Document 1 As a method for avoiding such a problem, a "centralized management method" has been proposed, and its contents are disclosed in Patent Document 1.
  • the nonvolatile memory device of Patent Document 1 divides the address space of the nonvolatile memory mounted on the semiconductor memory card into a plurality of address ranges, and stores a plurality of address management tables corresponding to each address range in the nonvolatile memory.
  • the corresponding address management table is read into the RAM in response to a write or erase command to a predetermined logical address from the host.
  • Patent Document 2 discloses a method that uses both a distributed management method and a centralized management method that collectively stores an address management table itself in a nonvolatile memory.
  • the address management table is not written back to the non-volatile memory for each write command of the access device power such as the host.
  • the address management table is written back to the non-volatile memory, and the validity of the address management table is judged at initialization. If it is valid, the address management table is used. If it is not valid, it is based on the distributed management information.
  • the address management table is generated.
  • Patent Document 1 Japanese Patent Laid-Open No. 2001-142774
  • Patent Document 2 Japanese Patent Laid-Open No. 11-73379
  • Patent Document 1 since it is only necessary to read the address management table from the nonvolatile memory at the time of initialization, the initialization process is completed in a short time. However, in order to deal with failures such as power shutdown, the address management table on the RAM is usually updated for each write or erase command to a predetermined logical address from the host, and the updated address management table is updated. It was necessary to write back to the non-volatile memory after writing or erasing the data. Compared with the distributed management method described above, this method writes back the address management table. However, if the access speed drops for the amount of processing time, I have a problem!
  • Patent Document 2 since there is no access and the address management table is written back to the nonvolatile memory at a predetermined timing, the access speed at the time of data writing does not decrease. However, if the address management table is not correctly written back to the non-volatile memory due to power shutdown or the like, it will be necessary to generate the address management table based on the distributed management information of all areas of the non-volatile memory at the time of initialization. Therefore, the problem that the initialization time becomes long when a failure such as power shutdown occurs cannot be solved.
  • the present invention has been made in view of such a conventional problem, and avoids a decrease in access speed due to an address management table write-back process during normal operation, while shutting down the power supply, etc.
  • the purpose is to shorten the creation time of the address management table at the time of initialization even in the event of a failure.
  • the present invention is a memory controller for writing or reading data in a nonvolatile memory having a plurality of address ranges composed of one or more physical blocks, wherein the memory controller is a state of the physical block
  • a read / write memory for temporarily storing an address management table for managing data, and at the time of data writing, data and distributed management information for generating the address management table are written to the physical block, and the read / write memory
  • the address management table is updated, and when the data write destination is switched from one address range to another address range, the address management table temporarily stored in the read / write memory is written to the nonvolatile memory.
  • the controller and the above-mentioned alarm that was accessed before initialization And from within the address range reading said distributed management information, reads and generates the address management table on the write memory based on the distributed management information has an address management table generating unit.
  • the time for creating the address management table at the time of initialization can be shortened. Can do. Furthermore, since it is not necessary to write back the address management table to the nonvolatile memory for each write instruction for access device power, it is possible to avoid a decrease in access speed due to the write-back processing of the address management table during normal operation.
  • the address range is an area obtained by dividing the storage area of the nonvolatile memory into predetermined sizes, and includes a plurality of physical blocks corresponding to a plurality of logical units specified by an access device, and the address management
  • the table may be a table that collectively manages a plurality of logical units included in the address range!
  • the address range may be an area provided for each logical unit specified by the access device power, and the address management table may be a table that collectively manages a plurality of the address ranges.
  • the memory control unit stores address range specifying information for specifying the switching destination address range in the nonvolatile memory. You may write.
  • the memory control unit may write the address range specifying information in the nonvolatile memory in a form incorporated in the address management table.
  • the memory control unit may specify the address range by accessing before initialization based on the address range specifying information.
  • Another memory controller of the present invention is a memory controller that writes or reads data to or from a non-volatile memory having a plurality of address ranges configured by one or more physical blocks. Temporarily storing an address management table that includes a first table that manages the write status of physical blocks in the address range and a second table that manages the status of physical blocks in the address range.
  • Write data and distributed management information for generating the address management table to the nonvolatile memory update the address management table of the read / write memory, and write data when writing data
  • a memory controller that writes the address management table to the nonvolatile memory reads the second table from the nonvolatile memory, and stores it in the read / write memory at the time of initialization;
  • the distribution management information is read from within the address range accessed before initialization, the first table is generated based on the read distribution management information, and stored in the read / write memory.
  • Address management table raw And a composition part.
  • the nonvolatile memory device of the present invention controls the nonvolatile memory having a plurality of address ranges configured by one or more physical blocks, and controls writing or reading of data to or from the nonvolatile memory. And a memory controller.
  • a non-volatile storage system of the present invention includes the above non-volatile storage device including a non-volatile memory having a plurality of address ranges configured by one or more physical blocks, and the address range specified above. And an access device that controls writing or reading of data with respect to the nonvolatile memory.
  • the memory control method of the present invention temporarily stores a non-volatile memory having a plurality of address ranges composed of one or more physical blocks and an address management table for managing the state of the physical blocks.
  • a memory control method for controlling a non-volatile storage device having a read / write memory wherein the memory control method includes data and distributed management information for generating the address management table when data is written.
  • the address management table of the read / write memory is updated by writing to a physical block and the data write destination is switched from one address range to another address range, the address management is temporarily stored in the read / write memory.
  • FIG. 1 is a block diagram showing a configuration of a nonvolatile memory system according to a first embodiment of the present invention.
  • FIG. 2 is a diagram showing an internal configuration of the nonvolatile memory in the first embodiment
  • FIG. 3 is a diagram showing a configuration of physical blocks in the first embodiment.
  • FIG. 4 is a diagram showing a format of a logical address in the first embodiment.
  • FIG. 5 is a diagram showing an address conversion table in the first embodiment.
  • FIG. 6 is a diagram showing a physical area management table in the first embodiment.
  • FIG. 7 is a circuit diagram showing a configuration of an address range switching unit in the first embodiment.
  • FIG. 8 is a diagram showing address range specifying information in the first embodiment.
  • FIG. 9 A diagram showing a write sequence when the address range in the first embodiment is not switched.
  • FIG. 10 is a diagram showing a write sequence when the address range is switched in the first embodiment.
  • FIG. 11 is a block diagram showing a configuration of a nonvolatile memory system according to the second embodiment of the present invention.
  • FIG. 12 is a diagram showing an internal configuration of a nonvolatile memory according to a second embodiment
  • FIG. 13 is a diagram showing physical blocks in the second embodiment.
  • FIG. 14 is a diagram showing a format of a logical address in the second embodiment.
  • FIG. 15 is a view showing an address conversion table in the second embodiment.
  • FIG. 16 is a diagram showing a physical area management table in the second embodiment.
  • FIG. 17 shows a write management table in the second embodiment.
  • FIG. 18 is a diagram showing address range specifying information in the second embodiment.
  • FIG. 19 is a diagram showing a write sequence when the address range is not switched in the second embodiment.
  • FIG. 20 is a diagram showing a write sequence when the address range is switched in the second embodiment.
  • FIG. 21 is a diagram showing another write sequence when the address range is switched in the second embodiment.
  • FIG. 1 shows the configuration of the nonvolatile memory system in the present embodiment.
  • the nonvolatile storage system of this embodiment includes an access device 100 and a nonvolatile storage device that operates based on a read / write command of user data (hereinafter simply referred to as “data”) transmitted from the access device 100. And 123.
  • the non-volatile storage device 123 stores the non-volatile memory 115 based on the nonvolatile memory 115 that stores the data transferred from the access device 100 and the read / write command and the logical address transmitted from the access device 100. And a memory controller 114 for controlling.
  • the storage area of the nonvolatile memory 115 is divided into a plurality of address ranges.
  • the memory controller 114 includes a host interface unit (hereinafter referred to as “host I / F unit”) 101, a work RAM 103, a ROM 104 storing a program, and a program stored in the work RAM 103 and the ROM 104. It has a CPU 102 that controls the entire inside 114.
  • host I / F unit a host interface unit
  • work RAM 103 a work RAM 103
  • ROM 104 storing a program
  • program stored in the work RAM 103 and the ROM 104 It has a CPU 102 that controls the entire inside 114.
  • the memory controller 114 further includes a memory control unit 122 that controls the nonvolatile memory 115, an address management table generation unit 107 that generates the address management table 112, and a read / write memory that temporarily stores the address management table 112. 113.
  • the memory control unit 122 includes an address range control unit 124 that determines switching of the address range of the nonvolatile memory 115, a nonvolatile memory access unit 109 that controls reading and writing of data with respect to the nonvolatile memory 115, and
  • the address management table control unit 108 writes the address management table 112 temporarily stored in the read / write memory 113 into the nonvolatile memory 115 via the nonvolatile memory access unit 109.
  • FIG. 2 specifically shows the configuration of the storage area of the nonvolatile memory 115 of the present embodiment.
  • the nonvolatile memory 115 is 1 GB, and 8 chips of 1 Gbit flash memory are mounted.
  • the nonvolatile memory 115 includes a plurality of physical blocks 211.
  • the physical block 211 is an erase block of the smallest unit that can be selectively erased. In this embodiment, it has a size of about 4 kB.
  • the non-volatile memory 115 is divided into eight address ranges of address ranges 0 to 7 in the vertical direction of FIG. 2, and is divided into four banks of banks 0 to 3 in the horizontal direction.
  • Each address range is composed of 4k physical blocks 211.
  • Each address range has a user data area 116 for storing data and an address management table area 117 for storing the address management table 112.
  • the address management table area 117 provided for each address range stores an address management table 112 corresponding to each address range.
  • the address management table area 117 stores address management tables 112 in order from the lower side (upper side in FIG. 2). Thereafter, the old address management table 112 that has become unnecessary is sequentially deleted so that the new address management table 112 can be stored.
  • the address management table area 117 is used cyclically. For example, when a write command is issued from the access device 100 and valid data is written in the nonvolatile memory 115, the latest address management table in the address range 1 is written in 2047—a0 to 2047—dO. If it is inserted, the address management tables stored in 2046—a1 to 2046—dl and 2 046—a0 to 2046—dO on the lower side (the upper side in FIG. 2) are erased, Invalid block. And the area made into the invalid block is used later.
  • the non-volatile memory 115 further includes a current address range number storage area 118 for storing address range specifying information 801 (details will be described later) shown in FIG.
  • the current address range number storage area 118 is provided on the upper side of the address range 7.
  • the sum of the sizes of the user data area 116 of the address range 7 and the address management table area 117 is smaller than the sizes of the other address ranges.
  • the current address range number storage area 118 stores address range specifying information 801 in order from the lower side (upper side in FIG. 2). Thereafter, the old and old address range specifying information 801 are deleted in order so that new V and address range specifying information 801 can be stored.
  • the current address range number storage area 118 is used cyclically.
  • nonvolatile memory 115 information related to security, manufacturer code, and the like are written. Description of the so-called system area will be omitted.
  • FIG. 3 shows a specific example of the physical block 211 in the present embodiment.
  • the physical block 211 has two pages, page 0 and page 1.
  • a page is a unit of writing.
  • the maximum number of simultaneous writes is one page in each of four banks, that is, a maximum of four pages.
  • Each page has a data area 212 of 2048 noise and a management area 213 of 64 noise.
  • One sector is 512 bytes, and the data area 212 is composed of four sectors.
  • the data area 212 is an area where data transferred from the access device 100 is written.
  • distributed management information 214 is stored.
  • the distributed management information 214 includes a logical block number designated by the access device 100 and a block status indicating the status of the physical block 211.
  • the distributed management information 214 is written to the management area 213 of page 0 when the data transferred also by the access device 100 is written to the data area 212 of page 0.
  • FIG. 4 shows a format of the logical address 400 transmitted from the access device 100 to the nonvolatile storage device 123 in the present embodiment.
  • bit 0 to bit 1 (bO to bl) force sector number 401 bit 2 to bit 3 (b2 to b3) are bank number 402, bit 4 (b4) Is page number 403.
  • the 12 bits including the number 404 and the bank number 402 of bit 5 to bit 14 (b5 to bl4) are the logical block nanno 411, bit 15 to bit 17 (bl5 to bl7), and the address range nanno 405.
  • the address range 0 to 7 of the non-volatile memory 115 is designated by the 3-bit address range number 405.
  • 12 bits corresponding to logical block number 411 are subject to address conversion to physical block number 412.
  • the address management table 112 includes an address conversion table 110 and a physical area management table 111.
  • FIG. 5 shows the address conversion table 110 in the present embodiment.
  • the address conversion table 110 is a tape that converts the logical block number 411 included in the logical address 400 specified by the access device 100 into the physical block number 412 in the nonvolatile memory 115. It is le.
  • the address conversion table 110 indicates the corresponding physical block number 412 for each logical block number 411.
  • the address conversion table 110 is generated for each address range, and therefore includes physical block numbers 412 specified by 4096 logical block numbers 411.
  • FIG. 6 shows the physical area management table 111 in the present embodiment.
  • the physical area management table 111 is a table that stores the block status such as the state of the physical block 211 that is an erasing unit in the nonvolatile memory 115, that is, whether valid data is stored in the physical block 211! It is.
  • the physical area management table 111 indicates the state of each physical block for each physical block number 412 of the nonvolatile memory 115.
  • the block status indicating the state of the physical block includes valid, invalid, and defective. A binary number of “00” indicates that the valid block has already been written with valid data, and a binary number of “11” indicates that the data that has been erased or written is unnecessary. Indicates a block.
  • the binary number “10” indicates a bad block that cannot be used due to a solid error on the memory cell.
  • the block status includes at least three states.
  • block statuses for 4096 physical block numbers 412 are stored.
  • the address management table generation unit 107 shown in FIG. 1 generates the address management table 112 based on the distributed management information 214 stored in the user data area 116 at the time of initialization such as power-on. It is stored on the read / write memory 113. In the present embodiment, only the distribution management information 214 stored in the user data area 116 in the address range read from the current address range number storage area 118 is read out. That is, at the time of initialization, an address management table 112 is generated for any one address range in the address ranges 0 to 7.
  • the read / write memory 113 is a volatile memory such as SRAM or a nonvolatile memory such as a ferroelectric memory, and temporarily stores the address management table 112. Data writing or the like according to an instruction from the access device 100 is performed while referring to the address management table 112 stored in the read / write memory 113 and updating.
  • the memory control unit 122 writes the data and the distribution management information 214 in the user data area 116 in response to a write instruction from the access device 100.
  • the address management table control unit 108 in the memory control unit 122 updates the address management table 112 temporarily stored in the read / write memory 113.
  • the address management table control unit 108 stores the address management table 112 temporarily stored in the read / write memory 113 when the write destination address instructed by the access device 100 is switched to another address range. To the address management table area 117 of the current address range via the volatile memory access unit 109.
  • the address range specifying information 801 is information for specifying the address range of the switching destination.
  • FIG. 8 shows address range specifying information 801 in the present embodiment.
  • the address range specifying information 801 includes time information 711 for identifying temporal relations and an address range number 712 after switching at the time of address range switching.
  • the lower 27 bits indicate the time information 711, and the upper 3 bits indicate the address range number 712.
  • the address range control unit 124 shown in FIG. 1 has an address range switching unit 105 and an address range specifying unit 106.
  • the address range specifying unit 106 stores the address range that is currently being accessed in the nonvolatile memory 115, that is, in initialization at power-up, before power-up or reset. In order to be able to identify the address range that has been accessed, immediately after the address range is switched, when starting to write to the address range after switching, the address range is entered via the nonvolatile memory access unit 109.
  • the specific information 801 is stored in the current address range number storage area 118 of the nonvolatile memory 115.
  • the address range specifying unit 106 reads the address range specifying information 801 having the latest time information 711 from the current address range number storage area 118 of the nonvolatile memory 115 at the time of initialization after the power is turned on. Specify the range number 712. As a result, for example, even when the system is restarted due to a failure such as a power shutdown, the address range specifying unit 106 can specify the address range number 712 that was accessed before the startup.
  • FIG. 7 shows a configuration of the address range switching unit 105 in the present embodiment.
  • Address range The switching unit 105 includes a counter 701, a register 702, a comparator 703, and a register 704.
  • the register 702 temporarily stores the address range number 405 included in the logical address 400 transferred by the access device 100 according to the system clock SCK.
  • the comparator 703 compares the address range number 405 transferred by the access device 100 with the address range number 405 stored in the register 702, and activates the address range switching signal if they are different. Output.
  • the register 704 temporarily stores the address range number 405 transferred by the access device 100 when the address range switching signal becomes active.
  • the output of the register 704 is the address range number 712 after switching when the address range is switched.
  • the counter 701 is preset with the time information 711 of the latest address range specifying information 801 stored in the current address range number storage area 118 at the time of activation. Note that the physical block 211 of the non-volatile memory 115 immediately after shipment from the factory is completely erased, so the data of the lowest page of the current address range number storage area 118 is read, and the time information of initial value 0 is stored. Preset to counter 701. Counter 701 increments the value by one when the address range switching signal becomes active.
  • the number of bits of the counter 701 of the present embodiment will be described. If the average write data capacity for one write command from the access device 100 is 16 kB for 4 physical blocks (that is, 1 cluster in FAT16), all of the user data area 116 in one address range The number of commands to write the physical block is approximately lk times (2 to the 10th power) according to equation (1).
  • the rewrite life of the non-volatile memory 115 that is, the number of rewrites less than the guaranteed good block rate is 100,000 times (2 to the 17th power).
  • the number of bits may be increased in consideration of the difference in the rewrite life of the nonvolatile memory 115 and the design margin.
  • the address range switching unit 105 configured as described above is transferred by the access device 100. Based on the logical address 400, it is detected whether or not the address range number 405 has been switched. The time information 711 representing the temporal relationship is output so that the command at what time can be understood.
  • the address range specifying unit 106 searches the current address range number storage area 118 of the nonvolatile memory 115 via the nonvolatile memory access unit 109 and stores the current address range number storage area 118 in the current address range number storage area 118.
  • the address range specifying information 801 the one with the largest value of the time information 711 is read as the latest address range specifying information 801. This identifies the address range number 712 that was accessed before the power was turned on.
  • the time information 711 included in the address range specifying information 801 is preset in the counter 701. However, if the value of all bits of the time information 711 is 1, it is determined that it is immediately after shipment from the factory, and a value of 0 is preset in the counter 701.
  • the address management table generation unit 107 reads the distributed management information 214 stored in the user data area 116 within the specified address range, and generates the address conversion table 110 and the physical area management table 111. And stored in the read / write memory 113.
  • the nonvolatile storage device 123 enters a command reception state such as reading / writing from the access device 100.
  • the address range switching unit 105 Determine whether the address range number 405 transferred by is the same as the address range number 712 specified during the initialization process. To do. If they are the same, the logical block number 411 included in the logical address 400 is converted into the physical block number 412 based on the address management table 112, and data is written to the physical block 211 specified by the physical block number 412.
  • FIG. 9 shows a normal write sequence when address range switching does not occur in the present embodiment.
  • FIG. 9 shows a data write period TA 0 for writing data to page 0 of the physical block 211 and a data write period TA 1 for writing data to page 1 of the physical block 211.
  • data is written to the nonvolatile memory 115 by multi-bank write that simultaneously writes page 0 or page 1 of four pages in banks 0 to 3.
  • the data write periods TA0 and TA1 include a ride command and address Z data transfer period Tal, an erase busy period Ta2, and a program busy period Ta3.
  • the memory controller 114 first transfers the write command, the physical block number 412 in the user data area 116, and the data for four pages of banks 0 to 3 to the nonvolatile memory 115 ( Ride command and address Z data transfer period Tal). At this time, the distributed management information 214 is also transferred to the nonvolatile memory 115 at the same time. Next, the physical block 211 specified by the physical block number 412 is erased (erasure busy period Ta2). Finally, data and distributed management information 214 are written to page 0 of physical block 211 in banks 0 to 3, and address management table 112 on read / write memory 113 is updated (program busy period Ta3).
  • data is written to the physical block 211 of logical addresses 0—a 0 to 0—dO and 0—al to 0—dl.
  • data is transferred from the logical address 0—a0 to 0—dO to the physical block 211 of 1021—al to 1021—dl.
  • one cluster is normally 16 kB, and in many products, the access device 100 issues a write instruction in units of 16 kB in a nonvolatile storage device. Forward to device 123.
  • the address management table 112 temporarily stored in the read / write memory 113 is written back to the nonvolatile memory 115, and the temporal overhead increases the processing speed. It was a factor to lower.
  • the nonvolatile storage device 123 of the present embodiment does not perform a process of writing back the address management table 112 temporarily stored in the read / write memory 113 to the nonvolatile memory 115, and at the time of data writing In addition, distributed management information 214 is written to streamline the overhead.
  • FIG. 10 shows the write sequence when address range switching occurs.
  • the address range switching unit 105 detects that the address range is switched by the comparator 703
  • the memory control unit 123 reads the address management table write period (hereinafter referred to as “AT write period”) TB, the address management table. Processing is performed in the order of the read period (hereinafter referred to as “AT read period”) TC and the address range specifying information write period TD.
  • AT write period the address management table write period
  • TD address range specifying information write period
  • memory controller 114 receives logical address 400 designating address range 1 from access device 100.
  • the address range switching unit 105 detects that the address range is switched from 0 to 1 by the comparator 703. Then, the memory controller 114 first performs processing in the AT write period TB as post-processing of the old address range.
  • the memory controller 114 temporarily stores the address management table 112 in the address range 0 stored in the read / write memory 113 in the address management table area 117 in the address range 0 of the nonvolatile memory 115. Write back as the latest address management table.
  • the memory controller 114 transfers the write command, the physical block number 412 in the address management table area 117 in the address range 0, and the address management table 112 stored in the read / write memory 113 to the nonvolatile memory 115. (Write command and address ZAT transfer period Tbl).
  • Tbl write command and address ZAT transfer period
  • the address management table 112 is written into the erased physical block 211 (program busy period Tb3
  • the writing process for the address range 0 is completed, and the actual address range switching time TS is between the end time of the AT write period TB and the start time of the AT read period TC.
  • processing is performed in the AT read period TC and the address range specification information write period TD.
  • the CPU 102 issues an instruction to read the address management table 1 12 in the address range 1 to the nonvolatile memory access unit 109.
  • the nonvolatile memory access unit 109 The management table 112 is read from the address management table area 117 in the address range 1, and the address management table control unit 108 stores the read address management table 112 in the read / write memory 113 (read command and address ZAT transfer period Tel) .
  • the address management table 112 read here is the latest address management table in the address management table area 117 in the address range 1. Whether or not the address management table 112 is the latest is determined as follows.
  • the top address of the page of the physical block in the address management table area 117 specifically, 4 pages (all 8kB) of logical addresses 2047—al to 2047—dl in FIG. 2 are erased as a set. Judge whether it is power or not. If not erased, it is determined that the set of logical addresses 2047-al to 2047-dl is the latest address management table. If it has been erased, the search is performed in the upper direction of FIG. 2, that is, the lower side of the nonvolatile memory 115, and four pages that are not erased, that is, some value is written, are used as the latest address management table. select.
  • the memory controller 114 stores the address range specifying information 801 including the address range number 712 after switching shown in FIG. 8 in the current address range number storage area of the nonvolatile memory 115.
  • the counter 701 in the address range specifying unit 106 is incremented, and the address range number 712 after switching is stored in the register 704.
  • the address range specifying unit 106 generates address range specifying information 801 including the time information 711 of the counter 701 and the address range number 712 stored in the register 704.
  • the nonvolatile memory access unit 109 transfers the write command, the physical block number 412 and the address range specifying information 801 in the current address range number storage area 118 of the nonvolatile storage device 115 to the nonvolatile memory 115 (write command and address). Z address range specific information transfer period Tdl).
  • the physical block 211 specified by the physical block number 412 is erased (erase busy period Td2).
  • address range specifying information 801 is written into the erased physical block 211 (program busy period Td3).
  • the address range specifying unit 106 can determine which address range the failure such as the power shutdown occurred during the processing.
  • the address management table generation unit 107 performs nonvolatile memory access.
  • the distributed management information 214 read via the unit 109 is limited to one address range. For example, if the non-volatile memory 115 has a multi-bank page read function and the time required for each multi-bank page read is 100 ⁇ s, the reading of the distributed management information 214 is completed in about 100 milliseconds according to equation (3). .
  • the conventional semiconductor memory device as shown in Patent Document 2 reads the dispersion management information of the entire area, and therefore the read time is about 6400 ms according to the equation (5).
  • the value is 8 times. This value is a long waiting time when the user starts up.
  • the value of the equation (5) becomes larger as the capacity of the nonvolatile memory becomes larger.
  • the time required for the initialization process of this embodiment is 1Z8 of Patent Document 2, and the process can be performed in a short time.
  • the data write period TAO and TA1 shown in Fig. 9 and the AT write period TB and data write period TAO shown in Fig. 10 are 1.5 ms each.
  • the address range does not change, for example, a logical address
  • the writing time of the present embodiment is shorter than the writing time shown in Patent Document 1.
  • the present embodiment uses an AT write period TB for post-processing the old address range, an AT read period TC and an address for pre-processing the new address range.
  • the range identification information write period TD is required, and processing time is longer than that of Patent Document 1.
  • Patent Document 1 is compared based on the rate value at which one entire logical range is rewritten in units of 16 kB.
  • the capacity of one address range is about 16MB (for the sake of simplicity, the address management table area is considered an error).
  • access Device 100 will command lk writes.
  • the conventional semiconductor memory device shown in Patent Document 1 has an average rewrite rate of 3.6 MBZ seconds as shown in Equation (9).
  • the average rewrite rate is 5.5 MBZ seconds as shown in the equation (10), which is faster than the nonvolatile memory device 123 of the present embodiment.
  • One address range can be rewritten.
  • the instantaneous speed degradation at the time of switching the address range is on the order of several milliseconds, so that it can be sufficiently absorbed by using a notor that is normally provided on the access device 100 side. This does not cause the processing to fail.
  • the initialization time at startup can be minimized and the address management table 112 can be updated.
  • the rewrite rate can be improved. That is, according to the present invention, the address management table 1 during normal operation 1 While avoiding a decrease in access speed due to the 12 write-back processing, it is possible to shorten the time for creating the address management table 112 at initialization after a failure such as a power shutdown.
  • the management area 213 in FIG. 3 may store time information 711 in addition to the distributed management information 214.
  • the time information 711 is written to the management area 213.
  • the address management table area 117 After the address range is specified during initialization processing, only the physical block 211 in which the time information 711 corresponding to the time information 711 of the address range specification information 801 is written is read and stored in the address management table area 117.
  • the latest address management table 112 may be revised.
  • the address management table 112 in the address management table area 117 can be updated in a short time, which is useful in initialization processing after the processing is interrupted due to power shutdown or the like.
  • the read / write memory 113 may use a read / write memory other than RAM as long as it can be accessed at a relatively high speed.
  • the nonvolatile memory 115 may incorporate a plurality of nonvolatile memory chips.
  • the nonvolatile memory 115 may be a non-volatile memory other than a flash memory.
  • nonvolatile memory 115 may be configured by using one flash memory chip, or may be configured by using a plurality of flash memory chips.
  • the address management table area 117 is provided in each address range.
  • the address management table areas 117 in the address ranges 0 to 7 are grouped into one range, for example, the nonvolatile memory 115. May be provided in the last area.
  • the storage position of the address management table 112 may not be physically fixed as in the address management table area 117 of the present embodiment.
  • the address management table 112 is stored in the physical block 211 of the user data area 116 without providing the address management table area 117.
  • pointer information indicating the physical address of the storage destination of the address management table 112 is stored in the nonvolatile memory 115, and the storage position can be searched according to the pointer information.
  • the position of the current address range number storage area 118 is not limited to the upper side of the address range 7.
  • the address range specifying information 801 is non-volatile.
  • a non-volatile memory other than the force non-volatile memory 115 stored in the current address range number storage area 118 of the generating memory 115 may be provided separately and stored therein.
  • the address range specifying information 801 may be written back to the nonvolatile memory 115 in a form incorporated in the address management table 112 corresponding to the address range before switching when the address range is switched. Absent. In that case, in the initialization after the power is turned on, the latest address management table 112 stored in all address ranges 0 to 7 is examined and stored in the address management table 112 including the latest time information 711. It is determined that the address range number 712 is the same as the address range number at the time when the power is shut off.
  • FIG. 11 shows a nonvolatile memory system according to the second embodiment of the present invention.
  • the nonvolatile storage system of the second embodiment is different from the first embodiment in the size of the address range of the nonvolatile memory 1115 and the generation method at the time of initialization of the address management table 1112.
  • the nonvolatile storage system of this embodiment includes an access device 100 and a nonvolatile storage device 123 that operates based on a read / write command for data transmitted from the access device 100.
  • the nonvolatile storage device 123 is a nonvolatile memory 1115 that stores data transferred from the access device 100, and a nonvolatile read / write instruction and a logical address of data transmitted from the access device 100.
  • the storage area of the nonvolatile memory 1115 has a plurality of address ranges.
  • the memory controller 114 includes a host I / F unit 101, a work RAM 103, a ROM 104 that stores a program, and a CPU 102 that controls the entire memory controller 114 using the program stored in the work RAM 103 and the ROM 104.
  • the memory controller 114 further includes a memory control unit 122 that controls the nonvolatile memory 1115, an address management table generation unit 107 that generates the address management table 1112, and a read / write memory that temporarily stores the address management table 1112 113.
  • the memory control unit 122 determines whether the address range of the nonvolatile memory 1115 is switched, the address range control unit 124, the nonvolatile memory access unit 109 that controls reading and writing of data to the nonvolatile memory 1115, and the reading and writing An address management table control unit 108 for writing the address management table 1112 temporarily stored in the memory 113 to the nonvolatile memory 1115 via the nonvolatile memory access unit 109 is provided.
  • the storage area of the nonvolatile memory 1115 includes a user data area 1116 for storing data, an address management table area 1117 for storing the address management table 1112, and the address range specifying information 1801 shown in FIG. Current address range number storage area 118 for storing.
  • FIG. 12 specifically shows the configuration of the storage area of the nonvolatile memory 1115 of the present embodiment.
  • the non-volatile memory 1115 is 1 GB, and 8 chips of 1 Gbit flash memory are mounted.
  • the nonvolatile memory 1115 includes a plurality of physical blocks 211.
  • the physical block 211 is an erase block of the smallest unit that can be selectively erased, and has a size of about 4 kB in this embodiment.
  • the nonvolatile memory 1115 is divided into four banks 0 to 3 in the horizontal direction.
  • the address range 1201 includes a total of four physical blocks 211 selected one by one from each bank in the user data area 1116.
  • four physical blocks with logical block number “0” including logical addresses 0—aO, 0—al to 0—dO, and 0—dl form one address range 1201.
  • the logical block number is an address range number that specifies the address range 1201.
  • logical block number “0” address range number “0”.
  • the user data area 1116 has an address range of 0 to 8188.
  • the address management table area 1117 is provided in the upper area of the nonvolatile memory 1115 rather than being provided in the address range 1201.
  • the address management table area 1117 stores the address management tape 1112 in order from the lower side (upper side in FIG. 12). Thereafter, the old address management table 1112 that has become unnecessary is sequentially deleted so that the new address management table 1112 can be stored. In this way, The less management table area 1117 is used cyclically. For example, assume that a write command is issued from the access device 100, valid data is written in the nonvolatile memory 1115, and stored in the latest address management tape memory 1112 physical addresses 8190_aO to 8190_dO. The address management tables 1112 stored in 8189-al to 8189-dl and 8189-a0 to 8189-d0 lower than that (upper side in FIG. 12) are erased as invalid blocks. This area is made available for later use.
  • the storage area of the nonvolatile memory 1115 has a current address range number storage area 118 on the upper side of the address management table area 1117.
  • the current address range number storage area 118 is an area for storing information for specifying an address range number, and stores address range specifying information 1801 shown in FIG.
  • the current address range number storage area 118 is used cyclically while erasing the physical block 211 storing the old address range specifying information 1801 that is no longer needed.
  • nonvolatile memory 1115 the description of the so-called system area in which security-related information, manufacturer code, and the like are written is omitted here.
  • FIG. 13 shows a specific example of the physical block 211 in the present embodiment.
  • the physical block 211 has two pages, page 0 and page 1.
  • a page is a unit of writing.
  • the maximum number of simultaneous writes is one page in each of four banks, that is, a maximum of four pages.
  • Each page has a data area 212 of 2048 knots and a management area 213 of 64 knots.
  • One sector is 512 bytes, and the data area 212 is composed of four sectors.
  • the data area 212 is an area where data transferred from the access device 100 is written.
  • distributed management information 214 is stored in the management area 213 of page 0, distributed management information 214 is stored.
  • the distributed management information 214 includes a logical block number designated by the access device 100 and a block status indicating the status of the physical block 211. When the data transferred from the access device 100 is written to the data area 212 of page 0, the distributed management information 214 is written to the management area 213 of page 0.
  • FIG. 14 shows a format of a logical address 1400 transmitted from the access device 100 to the nonvolatile storage device 123 in the present embodiment.
  • the logical address 1400 has a sector number 401, a bank number 402, a page number 403, and an address range number 1405 from the lower bit to the river page.
  • the address range number 1405 is the logical block number 1411.
  • the 13 bits corresponding to logical block number 1411 are subject to address translation to physical block number 1412.
  • the address management table 1112 of this embodiment includes an address conversion table 1110, a physical area management table 1111, and a write management table 1121.
  • FIG. 15 shows an address conversion table 1110 in the present embodiment.
  • the address conversion table 1110 is a table for converting the logical block number 1411 included in the logical address 1400 designated by the access device 100 into the physical block number 1412 in the nonvolatile memory 1115.
  • the address conversion table 1110 indicates a physical block number 1412 corresponding to each logical block number 1411.
  • the address conversion table 1110 includes physical block numbers 1412 for all logical block numbers 1411 in the nonvolatile memory 1115. Further, the address conversion table 1110 stores a physical block number newly reserved in response to a write instruction from the access device 100 at the end.
  • FIG. 16 shows a physical area management table 1111 in the present embodiment.
  • the physical area management table 1111 is a table indicating the state of the physical block 2 11 which is an erasure unit in the nonvolatile memory 1115.
  • the physical area management table 1111 is a block indicating whether or not valid data is stored. Remember the status.
  • the physical area management table 1111 stores block statuses for all physical block numbers 1412 included in the address conversion table 11 10, and the capacity of the physical area management table 1111 of this embodiment is the first capacity. This is different from the capacity of the physical area management table 111 of the embodiment. Except for the capacity, the physical area management table 1111 of this embodiment is the same as the physical area management table 111 of the first embodiment.
  • FIG. 17 shows the write management table 1121 in the present embodiment.
  • the write management table 1121 is a table that stores the write state of the physical block corresponding to the logical block that is one unit managed by the address conversion table 1110.
  • the write management table 1121 indicates, for each bank of page 0 and page 1, whether or not the data has been written by 1 bit, and stores “1” if not written and “0” if written. For example, when four physical blocks are newly reserved in response to a write instruction from the access device 100, all bits of the write management table 1121 are set to binary “1”. The next time data is written, the binary “0” is set in the bit corresponding to the page where the data was written.
  • the write management table 1121 determines whether it is necessary to reallocate a new physical block when data is written to a page where “0” is already set.
  • the address management table control unit 108 shown in FIG. 11 reads the address conversion table 1110 and the physical area management table 1111 from the address management table area 1117 of the nonvolatile memory 1115 at the time of initialization.
  • the address management table generation unit 107 generates the write management table 1121 based on the distributed management information 214 stored in the physical block 211 in the address range accessed before power-on.
  • the read / write memory 113 is a volatile memory such as SRAM or a nonvolatile memory such as a ferroelectric memory, and temporarily stores the address management table 1112. Data writing or the like according to an instruction from the access device 100 is performed while referring to the address management table 1112 stored in the read / write memory 113 and updating.
  • the memory control unit 122 writes the data and the distribution management information 214 in the user data area 1116 in response to a write instruction from the access device 100.
  • the address management table control unit 108 in the memory control unit 122 updates the address management table 1112 temporarily stored in the read / write memory 113.
  • the address management table control unit 108 stores the address management table 111 temporarily stored in the read / write memory 113 when the write destination address designated by the access device 100 is switched to another address range. 2 is written in the address management table area 1117 of the nonvolatile memory 1115.
  • the address range specifying information 1801 is information for specifying the switching destination address range.
  • FIG. 18 shows address range specifying information 1801 in the present embodiment.
  • the address range specifying information 1801 includes time information 711 and an address range number 1712 for specifying the address range after switching.
  • the number of bits of the address range number 1712 is different from the number of bits of the address range number 712 of the first embodiment.
  • the address range control unit 124 shown in FIG. 11 has an address range switching unit 105 and an address range specifying unit 106.
  • the internal configuration of the address range switching unit 105 is the same as that in FIG. 7 of the first embodiment.
  • the address range switching unit 105 detects whether or not the address range number 1712 has been switched based on the logical address transferred by the access device 100. When switching is detected, the address range number 1712 after switching is output, and the time sequence of each instruction is changed so that the instruction transferred by the access device 100 can be identified. The time information 711 to be output is output.
  • the address range specifying unit 106 when starting to write to the address range after switching, sends the address range specifying information 1801 via the nonvolatile memory access unit 109 to the nonvolatile memory. Stored in the current address range number storage area 118 of 1115.
  • the address range specifying unit 106 based on the address range specifying information 1801 stored in the current address range number storage area 118, at the time of initialization after the power supply startup, addresses accessed before the power supply startup. Specify range 1 201. As a result, for example, even when the system is restarted due to a failure such as power shutdown, the address range specifying unit 106 can specify the address range number 1712 that was accessed before the startup.
  • the initialization process is performed not only when the power is turned on but also when the nonvolatile storage device 123 is reset.
  • the nonvolatile memory access unit 109 reads the address management table area 1117 of the nonvolatile memory 1115, the address conversion table 1110, and the physical area management table 1111.
  • the address management table control unit 108 writes the address conversion table 1110 and the physical area management table 1111 to the read / write memory 113.
  • the address translation table 1110 and the physical area management table 1111 read during the initialization process are stored in the physical block 211 in the address management table area 1117, and the latest address translation table 1110 and the physical area management table. 1111.
  • the highest address of the page of the physical block 211 corresponding to the address management table area 1117 specifically, the logical address 8190—al to 8190—dl in FIG.
  • the criteria for determining whether or not all four pages (8kB in total) are erased as a set are as follows. Then, the search is performed in the upper direction in FIG. 12, and four pages that are not erased, that is, some values are written are selected as the latest address conversion table 1110 and physical area management table 1111.
  • the CPU 102 issues an instruction to read the address range specifying information 1801 to the nonvolatile memory access unit 109.
  • the address range specifying unit 106 searches the address range specifying information 1801 having the largest time information 711 from the current address range number storage area 118 of the non-volatile memory 1115 via the non-volatile memory access unit 109.
  • the address range number 1712 included in the address range specifying information 1801 is transferred to the address management table generating unit 107.
  • the address management table generation unit 107 generates a write management table 1121 based on the distribution management information 214 of the physical block 211 in the address range accessed before power-on, and stores it in the read / write memory 113. However, it is determined that the address range specifying information 1801 has not been written for the time information 711 having all bit values of 1.
  • the memory controller 101 After writing the address conversion table 1110, the physical area management table 1111, and the write management table 1121 to the read / write memory 113, the memory controller 101 accepts commands such as read / write from the access device 100. Enter the state.
  • Figure 19 shows the writing process when there is no address range switching.
  • the access to the nonvolatile memory 115 is in units of 16 kB.
  • the access is in units of 2 kB.
  • FIG. 19 in the data write period TA0, 2 kB of data is written to page 0 of the physical block 211 indicated by the logical address 0—aO in the address range 0, and in the next data write period TBI, Data of 2 kB is written to page 0 of physical block 211 indicated by logical address 0—bO in 0.
  • the write command and address Z data transfer period Tal, erase busy period Ta2, and program busy period Ta3 are the same as in FIG. 9 of the first embodiment.
  • Figure 20 shows the write process when the address range is switched.
  • FIG. 20 shows an example in which the address range 1201 is switched from “3” to “4”.
  • the address range switching unit 105 receives the logical address 1400 designating the address range 4 from the access device 100. It detects that the address range has been switched from “3” to “4”. As a result, the processing for the address range 3 is completed, and the address range switching point TS is reached between the data write period TA3 and the data write period TAO.
  • the address conversion table 1110, the physical area management table 1111, and the write management table 1121 temporarily stored in the read / write memory 113 in the AT write period TB are stored in the address management table area 1117 of the nonvolatile memory 1115. Stored.
  • address range specifying information 1801 including the address range “4” is written into the current address range number storage area 118 of the nonvolatile memory 1115.
  • the address conversion table 1110 for all logical block numbers 1411 and the physical area management table 1111 for all physical block numbers 1412 included in the address conversion table 1110 are read and written. Since it is stored in the memory 113, the AT read period TC of FIG. 10 need not be provided.
  • the nonvolatile memory device 123 stores the data every time data is written.
  • the dress management table 1112 is not written back to the nonvolatile memory 1115.
  • the address management table 1112 on the nonvolatile memory 1115 when a failure such as power interruption occurs may not be the latest address management information. Therefore, when the address range specifying unit 106 starts up immediately after a failure such as a power shutdown, the address range when a failure such as a power shutdown occurs is specified, and the distributed management information 214 stored in the address range. Based on the above, the address management table generation unit 107 generates the write management table 1121 on the read / write memory 113.
  • the amount of data read by the address management table generation unit 107 via the nonvolatile memory access unit 109 is limited to the distributed management information 214 within the address range, it can be read in a relatively short time. For example, if the non-volatile memory 1115 has a multi-bank page read function and the required multi-bank page read time for each page is 100 seconds, the read operation is completed in about 0.8 milliseconds according to equation (11).
  • the read time of the dispersion management information in all areas is about 6400 ms according to the equation (13).
  • this value is a long time as a waiting time when the user starts up. Such a problem becomes fatal as the capacity of the semiconductor memory device increases.
  • the initialization process can be performed in a short time.
  • the data write periods TA0, TA1 shown in FIG. 19 and the data write periods TA3, TA0, AT write period TB, and address range specific information write period TD shown in FIG. 20 are 1.5 ms each.
  • this embodiment and Patent Document 1 are compared based on the rate value at which one address range is rewritten in units of 2 kB.
  • the capacity of one address range is 16 kB.
  • the rewrite rate of the conventional semiconductor memory device as shown in Patent Document 1 is an average of 444 kBZ seconds as shown in Equation (17).
  • the rewrite rate of the nonvolatile memory device 123 of the present embodiment is an average of 593 kBZ seconds as shown in the equation (18).
  • the nonvolatile memory device 123 in the present embodiment can be rewritten at a higher speed than the conventional semiconductor memory device.
  • the initialization time at startup is minimized.
  • the overhead of updating the address management table 1112 can be rationalized, and as a result, the rewrite rate can be improved.
  • the address range is switched using the write sequence shown in FIG. 21 instead of FIG. You may perform the process when it changes.
  • the AT write period TB is provided after the data write period TA3, and the interval between the AT write period TB and the data write period TAO is used as the address range switching time point TS.
  • the management area 213 in FIG. 13 may store time information 711 in addition to the distributed management information 214 and the like.
  • the latest address management table stored in the address management table area is based on the information of only the physical block that matches the time information 711 of the address range specifying information 1801 stored in the current address range number storage area 118 of FIG.
  • Bulletin 1112 By revising Bulletin 1112, a truly up-to-date address management table 1112 can be generated.
  • the read / write memory 113 may use a read / write memory other than RAM as long as it can be accessed at a relatively high speed.
  • nonvolatile memory 1115 may be configured using one flash memory chip.
  • Non-volatile memory 1115 A plurality of flash memory chips may be used.
  • Non-volatile memory 1115 A plurality of flash memory chips may be used.
  • Non-volatile memory 1115 A plurality of flash memory chips may be used.
  • a non-volatile memory other than the flash memory may be used.
  • the storage location of the address management table 1112 is not physically fixed, but pointer information indicating the physical address of the area for address management information is used. Separately, mix the address management table 1112 in the same area as the user data area 1116, and move the storage location according to the pointer information.
  • the address range specifying information 1801 for specifying the address range such as the time information 711 is stored in the current address range number storage area 118 of the nonvolatile memory 1115.
  • a non-volatile memory may be provided separately and stored there.
  • the address range specifying information 1801 may be written back to the nonvolatile memory 1115 in a form incorporated in the address management table 1112 corresponding to the switched address range. Absent. However, in that case, in the initialization after the power is turned on, the latest address management table 1112 corresponding to all the address ranges 0 to 8188 in the address management table area 1117 is checked, and the latest time information 711 is obtained. The address range number 1712 stored in the included address management table 1112 is determined as the address range number 1712 at the time when the power is shut off. The address range number 1712 at the time of switching written there can be identified as the address range number 1712 to which a write instruction or the like from the access device 100 has been transferred when a failure such as a power shutdown occurs.
  • the non-volatile storage device of the present invention has a V effect if both high-speed writing and shortening of the initialization time can be achieved using a storage medium such as a memory card using a non-volatile memory such as a flash memory. It is useful as a recording medium for portable AV devices such as still image recording / playback devices and moving image recording / playback devices, or portable communication devices such as mobile phones.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 通常動作時のアドレス管理テーブルの書き戻し処理に起因するアクセス速度の低下を回避しつつ、メモリカードの初期化時のアドレス管理テーブルの作成時間を短縮するメモリコントローラを提供する。  メモリコントローラ114は、アドレス管理テーブル112を一時記憶する読み書きメモリ113と、データの書き込み先の物理ブロックがあるアドレス範囲から他のアドレス範囲へ切り替わる時に、読み書きメモリに一時記憶されたアドレス管理テーブルと、切り替わり先のアドレス範囲を特定するためのアドレス範囲特定情報と、を不揮発性メモリ115に書き込むメモリ制御部122と、初期化時に、アドレス範囲特定情報に基づいて特定されるアドレス範囲内に含まれる、物理ブロックの状態を管理するための分散管理情報を読み出して、読み出した分散管理情報に基づいてアドレス管理テーブル112を生成するアドレス管理テーブル生成部107と、を有する。

Description

明 細 書
メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ
技術分野
[0001] 本発明は、フラッシュメモリを主記憶メモリとして具備する半導体メモリカード等の不 揮発性記憶装置、それに内蔵されるメモリコントローラ、不揮発性記憶装置とアクセス 装置を備えた不揮発性記憶システム、及びメモリ制御方法に関する。
背景技術
[0002] 書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカード を中心にその需要が広まっている。また半導体メモリカードを使用した不揮発性記憶 システムは、デジタルスチルカメラやパーソナルコンピュータ等を中心にその需要が 広まっている。
[0003] 実用に供されている半導体メモリカードは、通常、内部に不揮発性メモリであるフラ ッシュメモリと、その制御回路であるコントローラ LSIを内蔵している。近年、半導体メ モリカードの大容量ィ匕のニーズに伴い、不揮発性メモリチップ自体も多値ィ匕による大 容量が進んでいる。また実装技術の進歩により、半導体メモリカードに実装される不 揮発性メモリのチップ数も増加しつつある。例えば半導体メモリカードのメモリ空間と して 1Gノイトを超えるものが実用化されて 、る。
[0004] 半導体メモリカードにおけるアドレス管理方法として、分散型管理方法が従来から 利用されている。「分散型管理方法」とは、書き込み単位であるページの管理領域に 論理アドレスやそのページの状態フラグを記憶し、初期化時に、論理アドレスゃぺー ジの状態フラグに基づいてアドレス管理テーブルを生成し、コントローラ LSI内の RA Mに格納する方法である。以下、上記の論理アドレスやそのページの状態フラグを総 称して「分散管理情報」と呼ぶ。
[0005] しかし、大容量メモリ空間を有する半導体メモリカードにおいて、初期化時に全メモ リ空間の分散管理情報を読み出すには多大な時間を要してしまう。これでは半導体 メモリカードの規格上の初期化時間上限値を超えてしまう等の規格違反が生じる。ま た特に規格が無い半導体メモリカードにおいては、規格違反ではないものの、ァクセ ス可能になるまでの待ち時間の面でユーザにデメリットを強いていた。更にはアドレス 管理テーブル等を一時記憶する RAMの容量が膨大となり、コスト面でも問題を有し ていた。
[0006] このような問題を回避する方法として「集中型管理方法」が提案されており、特許文 献 1にその内容が開示されている。特許文献 1の不揮発性記憶装置は、半導体メモリ カードに搭載されている不揮発性メモリのアドレス空間を複数のアドレス範囲に区分 し、各アドレス範囲に対応した複数のアドレス管理テーブルを不揮発性メモリに記憶 し、ホストからの所定の論理アドレスへの書き込みや消去命令に応じて、対応するァ ドレス管理テーブルを RAMに読み出している。
[0007] また、特許文献 2には、分散型管理方法とアドレス管理テーブル自体を不揮発性メ モリに一括して記憶する集中型管理方法との両方を併用する方法が開示されている 。特許文献 2に開示されている方法及び装置は、ホストなどのアクセス装置力 の書 き込みコマンド毎にアドレス管理テーブルを不揮発性メモリに書き戻すのではなぐ 電源 OFF等のアクセスの無 、所定タイミングにお 、てアドレス管理テーブルを不揮 発性メモリに書き戻し、初期化時にアドレス管理テーブルの有効性を判断し、有効な らばアドレス管理テーブルを使用し、有効でなければ分散型管理情報に基づいてァ ドレス管理テーブルを生成する。
特許文献 1:特開 2001— 142774号公報
特許文献 2:特開平 11― 73379号公報
発明の開示
発明が解決しょうとする課題
[0008] 特許文献 1は、初期化時、アドレス管理テーブルを不揮発性メモリから読み出すだ けで良いため、短時間で初期化処理が完了する。しかし、電源遮断等の障害対応の ために、通常、ホストからの所定の論理アドレスへの書き込みや消去命令毎に、 RA M上のアドレス管理テーブルを更新し、さらに更新されたアドレス管理テーブルをュ 一ザデータの書き込みや消去の後に不揮発性メモリに書き戻す処理が必要であった 。この方法は上述した分散型管理方法と比較すると、アドレス管理テーブルの書き戻 し処理の時間分、アクセス速度が低下すると 、つた問題を有して!/ヽた。
[0009] 特許文献 2は、アクセスの無 、所定のタイミングにお 、てアドレス管理テーブルを不 揮発性メモリに書き戻して 、るため、データの書き込み時のアクセス速度が低下する ことはない。しかし、電源遮断等により、アドレス管理テーブルが正しく不揮発性メモリ に書き戻されない場合、初期化時に不揮発性メモリの全領域の分散管理情報に基 づいてアドレス管理テーブルを生成する必要が生じる。よって、電源遮断等の障害が 起きた場合に初期化時間が長くなるという問題を解決することはできない。
[0010] 本発明はこのような従来の問題点に鑑みてなされたものであって、通常動作時にお けるアドレス管理テーブルの書き戻し処理に起因するアクセス速度の低下を回避し つつ、電源遮断等の障害が起きた場合であっても初期化時におけるアドレス管理テ 一ブルの作成時間を短縮することを目的とする。
課題を解決するための手段
[0011] 本発明は、 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮 発性メモリに、データを書き込む又は読み出すメモリコントローラであって、前記メモリ コントローラは、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記 憶する読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テープ ルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書 きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範 囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されて 、 る前記アドレス管理テーブルを前記不揮発性メモリに書き込む、メモリ制御部と、初期 化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を 読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記 アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、を有する。
[0012] 本発明によれば、初期化時にぉ 、て不揮発性メモリの全領域の分散管理情報を調 ベる必要がな 、ため、初期化時におけるアドレス管理テーブルの作成時間を短縮す ることができる。さらに、アクセス装置力 の書き込み指示毎にアドレス管理テーブル を不揮発性メモリに書き戻す必要がないため、通常動作時におけるアドレス管理テー ブルの書き戻し処理に起因するアクセス速度低下を回避することができる。 [0013] 前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした 領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブ ロックを含み、前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の 論理単位をまとめて管理するテーブルであっても良!、。
[0014] 前記アドレス範囲は、アクセス装置力 指定される論理単位毎に設けられた領域で あり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテー ブルであっても良い。
[0015] 前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲力 他 のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアド レス範囲特定情報を前記不揮発性メモリに書き込んでも良い。
[0016] 前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組 み込んだ形で前記不揮発性メモリに書き込んでも良 、。
[0017] 前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化 前にアクセスして 、た前記アドレス範囲を特定しても良!、。
[0018] 本発明の他のメモリコントローラは、 1以上の物理ブロックにより構成されるアドレス 範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコント ローラであって、前記メモリコントローラは、 1つの前記アドレス範囲内の物理ブロック の書き込み状態を管理する第 1のテーブルと複数の前記アドレス範囲内の物理プロ ックの状態を管理する第 2のテーブルとを含むアドレス管理テーブルを一時記憶する 読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テーブルを生 成するための分散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメ モリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲 力 他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されて!、る 前記アドレス管理テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第 2 のテーブルを前記不揮発性メモリから読み出して、前記読み書きメモリに格納する、 メモリ制御部と、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から 前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記第 1のテーブルを生成して、前記読み書きメモリに格納する、アドレス管理テーブル生 成部と、を有する。
[0019] 本発明の不揮発性記憶装置は、 1以上の物理ブロックにより構成されるアドレス範 囲を複数個有する不揮発性メモリと、前記不揮発性メモリへのデータの書き込み又は 読み出しを制御する、上記のメモリコントローラと、を有する。
[0020] 本発明の不揮発性記憶システムは、 1以上の物理ブロックにより構成されるアドレス 範囲を複数個有する不揮発性メモリを含む、上記の不揮発性記憶装置と、前記アド レス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読み出しを 制御するアクセス装置と、を有する。
[0021] 本発明のメモリ制御方法は、 1以上の物理ブロックにより構成されるアドレス範囲を 複数個有する不揮発性メモリと、前記物理ブロックの状態を管理するアドレス管理テ 一ブルを一時記憶するための読み書きメモリと、を有する不揮発性記憶装置を制御 するメモリ制御方法であって、前記メモリ制御方法は、データの書き込み時に、デー タと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロッ クに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データ の書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み 書きメモリに一時記憶されて 、る前記アドレス管理テーブルを前記不揮発性メモリに 書き込むステップと、初期化時に、初期化前にアクセスしていた前記アドレス範囲内 から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前 記読み書きメモリ上に前記アドレス管理テーブルを生成するステップと、を有する。 発明の効果
[0022] 本発明によれば、通常動作時におけるアドレス管理テーブルの書き戻し処理に起 因するアクセス速度低下を回避しつつ、初期化時におけるアドレス管理テーブルの 作成時間の短縮を実現できる。
図面の簡単な説明
[0023] [図 1]本発明の第 1の実施形態における不揮発性記憶システムの構成を示すブロック 図
[図 2]第 1の実施形態における不揮発性メモリの内部構成を示す図
[図 3]第 1の実施形態における物理ブロックの構成を示す図 [図 4]第 1の実施形態における論理アドレスのフォーマットを示す図
[図 5]第 1の実施形態におけるアドレス変換テーブルを示す図
[図 6]第 1の実施形態における物理領域管理テーブルを示す図
[図 7]第 1の実施形態におけるアドレス範囲切替部の構成を示す回路図
[図 8]第 1の実施形態におけるアドレス範囲特定情報を示す図
[図 9]第 1の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケン スを示す図
[図 10]第 1の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを 示す図
[図 11]本発明の第 2の実施形態における不揮発性記憶システムの構成を示すブロッ ク図
[図 12]第 2の実施形態における不揮発性メモリの内部構成を示す図
[図 13]第 2の実施形態における物理ブロックを示す図
[図 14]第 2の実施形態における論理アドレスのフォーマットを示す図
[図 15]第 2の実施形態におけるアドレス変換テーブルを示す図
[図 16]第 2の実施形態における物理領域管理テーブルを示す図
[図 17]第 2の実施形態における書き込み管理テーブルを示す図
[図 18]第 2の実施形態におけるアドレス範囲特定情報を示す図
[図 19]第 2の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケン スを示す図
[図 20]第 2の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを 示す図
[図 21]第 2の実施形態におけるアドレス範囲が切り替わる場合の別の書込みシーケ ンスを示す図
符号の説明
100 アクセス装置
101 ホスト IZF部
102 CPU 103 RAM
104 ROM
105 アドレス範囲切替部
106 アドレス範囲特定部
107 アドレス管理テーブル生成部
108 アドレス管理テーブル制御部
109 不揮発性メモリアクセス部
110 アドレス変換テーブル
111 物理領域管理テーブル
112 アドレス管理テーブル
113 読み書きメモリ
114 メモリコントローラ
115 不揮発性メモリ
116 ユーザデータ領域
117 アドレス管理テーブル領域
118 カレントアドレス範囲ナンバー記憶領域
122 メモリ制御部
123 不揮発性記憶装置
124 アドレス範囲制御部
1110 アドレス変換テーブル
1111 物理領域管理テーブル
1112 アドレス管理テーブル
1115 不揮発性メモリ
1116 ユーザデータ領域
1117 アドレス管理テーブル領域
1121 書き込み管理テーブル
発明を実施するための最良の形態
以下本発明の実施をするための最良の形態を具体的に示した実施形態について 、図面を参照して説明する。
[0026] (第 1の実施形態)
図 1に、本実施形態における不揮発性記憶システムの構成を示す。本実施形態の 不揮発性記憶システムは、アクセス装置 100と、アクセス装置 100から送信されたュ 一ザデータ(以下、単に「データ」と 、う)の読み書き命令に基づ 、て動作する不揮発 性記憶装置 123とを有する。
[0027] 不揮発性記憶装置 123は、アクセス装置 100から転送されたデータを格納する不 揮発性メモリ 115と、アクセス装置 100から送信された読み書き命令と論理アドレスと に基づいて、不揮発性メモリ 115を制御するメモリコントローラ 114とを有する。不揮 発性メモリ 115の記憶領域は、複数のアドレス範囲に分割されて 、る。
[0028] [メモリコントローラの内部構成]
メモリコントローラ 114は、ホストインターフェース部(以下、「ホスト I/F部」と呼ぶ) 1 01、ワーク用 RAM103、プログラムを格納した ROM104、及びワーク用 RAM103 と ROM104に格納されたプログラムを用いてメモリコントローラ 114内全体を制御す る CPU102、を有する。
[0029] メモリコントローラ 114は、さらに、不揮発性メモリ 115を制御するメモリ制御部 122、 アドレス管理テーブル 112を生成するアドレス管理テーブル生成部 107、及びアドレ ス管理テーブル 112を一時的に格納する読み書きメモリ 113を有する。
[0030] メモリ制御部 122は、不揮発性メモリ 115のアドレス範囲の切り替わりを判断するァ ドレス範囲制御部 124、不揮発性メモリ 115に対してデータの読み書き等を制御する 不揮発性メモリアクセス部 109、及び読み書きメモリ 113に一時記憶されたアドレス管 理テーブル 112を不揮発性メモリアクセス部 109を介して不揮発性メモリ 115に書き 込むアドレス管理テーブル制御部 108を有する。
[0031] [不揮発性メモリの記憶領域の構成]
図 2に、本実施形態の不揮発性メモリ 115の記憶領域の構成を具体的に示す。図 2 において、不揮発性メモリ 115は 1GBであり、 1Gビットのフラッシュメモリを 8チップ実 装している。不揮発性メモリ 115は、複数の物理ブロック 211により構成されている。 ここで、物理ブロック 211とは、選択的に消去できる最小単位のィレーズブロックのこ とであり、本実施形態では約 4kBの大きさを持つ。
[0032] 不揮発性メモリ 115は、図 2の縦方向にアドレス範囲 0〜7の 8つのアドレス範囲に 分割されており、横方向にバンク 0〜3の 4バンクに分割されている。各アドレス範囲 は、 4kブロック個の物理ブロック 211により構成される。各アドレス範囲は、データを 格納するためのユーザデータ領域 116と、アドレス管理テーブル 112を格納するた めのアドレス管理テーブル領域 117とを有する。本実施形態において、各アドレス範 囲に設けられたアドレス管理テーブル領域 117は、各アドレス範囲に応じたアドレス 管理テーブル 112を記憶する。
[0033] アドレス管理テーブル領域 117は、下位側(図 2の上側)カゝら順に、アドレス管理テ 一ブル 112を格納していく。その後、新しいアドレス管理テーブル 112を記憶できるよ うに、不要となった古いアドレス管理テーブル 112は順に消去される。このように、アド レス管理テーブル領域 117は巡回的に使用される。例えば、アクセス装置 100からの 書き込み命令がなされ、不揮発性メモリ 115に有効データが書かれて 、る状態にお いて、アドレス範囲 1の最新のアドレス管理テーブルが 2047— a0〜2047— dOに書 き込まれて 、るとすると、それより下位側(図 2の上側)の 2046— a 1〜 2046— dlと 2 046— a0〜2046— dOに格納されているアドレス管理テーブルは、消去して、無効 ブロックにしておく。そして、無効ブロックにした領域は後に使用する。
[0034] 不揮発性メモリ 115は、さらに、図 8に示すアドレス範囲特定情報 801 (詳細は後述 。)を格納するためのカレントアドレス範囲ナンバー記憶領域 118を有する。本実施 形態において、カレントアドレス範囲ナンバー記憶領域 118は、アドレス範囲 7の上 位側に設けられて 、る。アドレス範囲 7のユーザデータ領域 116とアドレス管理テー ブル領域 117のサイズの和は、他のアドレス範囲のサイズより小さくなつている。不揮 発性メモリ 115が未使用の時、カレントアドレス範囲ナンバー記憶領域 118は、下位 側(図 2の上側)から順に、アドレス範囲特定情報 801を格納していく。その後、新し V、アドレス範囲特定情報 801を記憶できるように、不要となった古 、アドレス範囲特 定情報 801は順に消去される。このように、カレントアドレス範囲ナンバー記憶領域 1 18は巡回的に使用される。
[0035] 不揮発性メモリ 115において、セキュリティ関係の情報やメーカコード等が書き込ま れた所謂システム領域にっ 、ては、説明を省略する。
[0036] 図 3に、本実施形態における物理ブロック 211の具体例を示す。物理ブロック 211 はページ 0とページ 1の 2ページを有する。ページは書き込み単位であり、図 2におい て、最大同時書き込み数は 4バンクの各 1ページ、即ち最大 4ページ分である。各ぺ ージは、 2048ノイトのデータ領域 212と 64ノイトの管理領域 213を有する。 1セクタ は 512バイトであり、データ領域 212は 4セクタにより構成される。データ領域 212は、 アクセス装置 100から転送されるデータが書き込まれる領域である。ページ 0の管理 領域 213には、分散管理情報 214が格納される。分散管理情報 214は、アクセス装 置 100が指定する論理ブロックナンバーと、物理ブロック 211のステータスを示すブロ ックステータスとを含む。アクセス装置 100力も転送されたデータがページ 0のデータ 領域 212に書き込まれるときに、分散管理情報 214はページ 0の管理領域 213に書 き込まれる。
[0037] [論理アドレスのフォーマット]
図 4に、本実施形態におけるアクセス装置 100が不揮発性記憶装置 123に送信す る論理アドレス 400のフォーマットを示す。図 4の論理アドレス 400のフォーマットにお \ /、て、ビット 0〜ビット 1 (bO〜bl)力セクタナンノ ー 401、ビット 2〜ビット 3 (b2〜b3) がバンクナンバー 402、ビット 4 (b4)がページナンバー 403である。ビット 5〜ビット 14 (b5〜bl4)のナンバー 404とバンクナンバー 402を併せた 12ビット分が論理ブロック ナンノ ー 411、ビット 15〜ビット 17 (bl5〜bl7)力 ^アドレス範囲ナンノ ー 405である。 3ビットのアドレス範囲ナンバー 405により、不揮発性メモリ 115のアドレス範囲 0〜7 が指定される。また、論理ブロックナンバー 411に対応する 12ビット分が物理ブロック ナンバー 412へのアドレス変換の対象となる。
[0038] [アドレス管理テーブルの構成]
図 1に戻り、アドレス管理テーブル 112は、アドレス変換テーブル 110と物理領域管 理テーブル 111とを含む。
[0039] 図 5に、本実施形態におけるアドレス変換テーブル 110を示す。アドレス変換テー ブル 110はアクセス装置 100が指定した論理アドレス 400に含まれる論理ブロックナ ンバー 411を不揮発性メモリ 115内の物理ブロックナンバー 412に変換するテープ ルである。アドレス変換テーブル 110は、論理ブロックナンバー 411毎に、対応する 物理ブロックナンバー 412を示す。本実施形態において、アドレス変換テーブル 110 は、アドレス範囲毎に生成されるため、 4096個分の論理ブロックナンバー 411で指 定される物理ブロックナンバー 412を含む。
[0040] 図 6に、本実施形態における物理領域管理テーブル 111を示す。物理領域管理テ 一ブル 111は不揮発性メモリ 115内の消去単位である物理ブロック 211の状態、即 ち有効なデータが物理ブロック 211に記憶されて!、るかどうか等のブロックステータス を記憶するテーブルである。物理領域管理テーブル 111は、不揮発性メモリ 115の 物理ブロックナンバー 412毎に、各物理ブロックの状態を示す。物理ブロックの状態 を示すブロックステータスは、有効、無効、不良等を含む。 2進数の「00」は、既に有 効なデータが書き込まれている有効ブロックであること示し、 2進数の「11」は消去済 み又は書き込まれて 、るデータが不要であることを示す無効ブロックを示す。 2進数 の「10」は、メモリセル上のソリッドエラー等により使用できなくなった不良ブロックを示 す。このように、ブロックステータスは、少なくとも 3つの状態を含む。本実施形態にお いて、物理領域管理テーブル 111は、アドレス範囲毎に生成されるため、 4096個分 の物理ブロックナンバー 412に対するブロックステータスが格納される。
[0041] [アドレス管理テーブルの生成]
図 1に示すアドレス管理テーブル生成部 107は、電源 ON等による初期化時に、ュ 一ザデータ領域 116に格納されて 、る分散管理情報 214に基づ 、てアドレス管理テ 一ブル 112を生成し、読み書きメモリ 113上に記憶させる。本実施形態においては、 カレントアドレス範囲ナンバー記憶領域 118から読み出したアドレス範囲のユーザデ ータ領域 116に記憶された分散管理情報 214だけを読み出す。すなわち、初期化時 に、アドレス範囲 0〜7の中のいずれ力 1つのアドレス範囲についてのアドレス管理テ 一ブル 112が生成される。
[0042] 読み書きメモリ 113は、 SRAMなどの揮発性メモリあるいは強誘電体メモリなどの不 揮発性メモリであり、アドレス管理テーブル 112を一時的に記憶する。アクセス装置 1 00の指示によるデータの書き込み等は、読み書きメモリ 113に格納されたアドレス管 理テーブル 112を参照し、更新しながら行われる。 [0043] メモリ制御部 122は、アクセス装置 100からの書き込み指示に応じてユーザデータ 領域 116にデータと分散管理情報 214を書き込む。このとき、メモリ制御部 122内の アドレス管理テーブル制御部 108は、読み書きメモリ 113に一時記憶されたアドレス 管理テーブル 112を更新する。アドレス管理テーブル制御部 108は、アクセス装置 1 00が指示した書き込み先アドレスが現在のアドレス範囲力 他のアドレス範囲に切り 替わる際に、読み書きメモリ 113上に一時記憶されたアドレス管理テーブル 112を、 不揮発性メモリアクセス部 109を介して、現在のアドレス範囲のアドレス管理テーブル 領域 117に書き込む。
[0044] [アドレス範囲特定情報の書き込み]
アドレス範囲特定情報 801とは、切り替わり先のアドレス範囲を特定するための情 報である。図 8に、本実施形態におけるアドレス範囲特定情報 801を示す。アドレス 範囲特定情報 801は、時間的な前後関係を識別する時刻情報 711とアドレス範囲切 り替え時における切り替え後のアドレス範囲ナンバー 712を含む。下位側の 27ビット 分が時刻情報 711を示し、上位 3ビット分がアドレス範囲ナンバー 712を示す。
[0045] 図 1に示すアドレス範囲制御部 124は、アドレス範囲切替部 105とアドレス範囲特 定部 106を有する。アドレス範囲特定部 106は、現在アクセス中のアドレス範囲がど のアドレス範囲であるかを不揮発性メモリ 115に記憶するために、すなわち電源立ち 上げ時の初期化において、電源立ち上げ前又はリセット前にアクセスされていたアド レス範囲を特定できるようにするために、アドレス範囲が切り替わった直後、切り替わ り後のアドレス範囲への書き込みを始める際に、不揮発性メモリアクセス部 109を介し て、アドレス範囲特定情報 801を不揮発性メモリ 115のカレントアドレス範囲ナンバー 記憶領域 118に格納する。さらに、アドレス範囲特定部 106は、電源立ち上げ後の 初期化時において、不揮発性メモリ 115のカレントアドレス範囲ナンバー記憶領域 1 18から最新の時刻情報 711を持つアドレス範囲特定情報 801を読み出して、ァドレ ス範囲ナンバー 712を特定する。これにより、例えば、電源遮断等の障害によって再 起動された場合であっても、アドレス範囲特定部 106は起動前にアクセスされていた アドレス範囲ナンバー 712を特定できる。
[0046] 図 7に、本実施形態におけるアドレス範囲切替部 105の構成を示す。アドレス範囲 切替部 105は、カウンタ 701、レジスタ 702、比較器 703、及びレジスタ 704を有する 。レジスタ 702は、アクセス装置 100が転送した論理アドレス 400に含まれるアドレス 範囲ナンバー 405をシステムクロック SCKに応じて一時記憶する。比較器 703は、ァ クセス装置 100が転送したアドレス範囲ナンバー 405と、レジスタ 702がー時記憶し たアドレス範囲ナンバー 405とを比較して、両者が異なる場合に、アドレス範囲切替 信号をアクティブにして出力する。レジスタ 704は、アドレス範囲切替信号がァクティ ブになったときに、アクセス装置 100が転送したアドレス範囲ナンバー 405を一時記 憶する。レジスタ 704の出力は、アドレス範囲切り替え時における、切り替え後のアド レス範囲ナンバー 712となる。
[0047] カウンタ 701には、起動時に、カレントアドレス範囲ナンバー記憶領域 118に格納さ れて 、る最新のアドレス範囲特定情報 801の時刻情報 711がプリセットされる。なお 、工場出荷直後の不揮発性メモリ 115の物理ブロック 211は全て消去されて 、るので 、カレントアドレス範囲ナンバー記憶領域 118の最下位の 1ページのデータが読み込 まれ、初期値 0の時刻情報がカウンタ 701にプリセットされる。カウンタ 701は、ァドレ ス範囲切替信号がアクティブになった時に値を 1つインクリメントする。
[0048] 本実施形態のカウンタ 701のビット数について説明する。アクセス装置 100からの 1 回の書き込みコマンドにおける平均的な書き込みデータ容量を 4物理ブロック分 (即 ち、 FAT16における 1クラスタ分)の 16kBとした場合、 1つのアドレス範囲のユーザ データ領域 116において、全ての物理ブロックを書き込むコマンド数は式(1)により、 約 lk回(2の 10乗)となる。
Figure imgf000015_0001
[0049] 不揮発性メモリ 115の書換寿命、即ち保証良ブロック率を下回る書換回数を 10万 回( 2の 17乗)として、式(2)により、本実施形態のカウンタ 701のビット数は 27ビッ トとする。
17+ 10 = 27 (2)
[0050] なお、不揮発性メモリ 115の書換寿命の違いや、設計余裕を鑑みてビット数を増や しても構わない。
[0051] 上記のように構成されるアドレス範囲切替部 105は、アクセス装置 100が転送した 論理アドレス 400に基づいてアドレス範囲ナンバー 405が切り替わつたか否かを検出 し、切り替わつたことを検出すれば、切り替わり先のアドレス範囲ナンバー 712を出力 すると共に、アクセス装置 100が転送した命令が何時の時点での命令かがわ力るよう に、時間的前後関係を表す時刻情報 711を出力する。
[0052] [初期化処理]
以上のように構成された不揮発性記憶システムにおける、不揮発性記憶装置 123 の初期化処理について説明する。アクセス装置 100により不揮発性記憶装置 123の 電源が ONされると、 CPU102は ROM104に記憶されたプログラムに基づいて初期 化処理を行う。初期化処理は、電源 ON時の他に、不揮発性記憶装置 123のリセット 時も行われる。
[0053] 初期化処理において、アドレス範囲特定部 106は、不揮発性メモリアクセス部 109 を介して不揮発性メモリ 115のカレントアドレス範囲ナンバー記憶領域 118をサーチ し、カレントアドレス範囲ナンバー記憶領域 118に格納されているアドレス範囲特定 情報 801のうち、時刻情報 711の値が最も大きいものを、最新のアドレス範囲特定情 報 801として読み出す。これにより、電源立ち上げ前にアクセスされていたアドレス範 囲ナンバー 712を特定する。また、アドレス範囲特定情報 801に含まれる時刻情報 7 11をカウンタ 701にプリセットする。但し、時刻情報 711の全てのビットの値が 1の場 合は、工場出荷直後であると判断し、 0の値をカウンタ 701にプリセットする。
[0054] アドレス管理テーブル生成部 107は、特定されたアドレス範囲内のユーザデータ領 域 116に格納されて 、る分散管理情報 214を読み出して、アドレス変換テーブル 11 0と物理領域管理テーブル 111を生成し、読み書きメモリ 113に格納する。初期化処 理が終了すると、不揮発性記憶装置 123は、アクセス装置 100からの読み書き等の コマンドの受付状態に入る。
[0055] [アドレス範囲内のデータの書き込み処理]
メモリコントローラ 114は、アクセス装置 100から任意のアドレス範囲内への書き込 み指示、例えば「0」のアドレス範囲ナンバー 405を指定する論理アドレス 400を受信 すると、アドレス範囲切替部 105は、アクセス装置 100が転送したアドレス範囲ナンパ 一 405が、初期化処理時に特定したアドレス範囲ナンバー 712と同一かどうかを判断 する。同一であれば、アドレス管理テーブル 112に基づいて、論理アドレス 400に含 まれる論理ブロックナンバー 411を物理ブロックナンバー 412に変換し、物理ブロック ナンバー 412で指定される物理ブロック 211にデータを書き込む。
[0056] 図 9に、本実施形態におけるアドレス範囲の切り替えが発生しない場合の通常の書 き込みシーケンスを示す。図 9は、物理ブロック 211のページ 0にデータを書き込むデ 一タライト期間 TA0と、物理ブロック 211のページ 1にデータを書き込むデータライト 期間 TA1とを示す。本実施形態においては、バンク 0〜3の 4ページ分のページ 0又 はページ 1を同時に書き込むマルチバンクライトにより、不揮発性メモリ 115にデータ を書き込む。データライト期間 TA0及び TA1は、ライドコマンド及びアドレス Zデータ 転送期間 Tal、ィレーズビジー期間 Ta2、プログラムビジー期間 Ta3を含む。
[0057] データライト期間 TAOにおいて、メモリコントローラ 114は、まず、ライトコマンド、ュ 一ザデータ領域 116内の物理ブロックナンバー 412及びバンク 0〜3の 4ページ分の データを不揮発性メモリ 115に転送する(ライドコマンド及びアドレス Zデータ転送期 間 Tal)。このとき、分散管理情報 214も同時に不揮発性メモリ 115に転送する。次に 、物理ブロックナンバー 412で指定される物理ブロック 211を消去する(ィレーズビジ 一期間 Ta2)。最後に、バンク 0〜3の物理ブロック 211のページ 0にデータと分散管 理情報 214を書き込み、読み書きメモリ 113上のアドレス管理テーブル 112を更新す る(プログラムビジー期間 Ta3)。
[0058] 次に、データライト期間 TA1において、データライト期間 TAOと同様の処理がなさ れ、バンク 0〜3の 4ページ分の物理ブロック 211のページ 1にデータが書き込まれる 。但し、分散管理情報 214は、ページ 1に書き込まれない。
[0059] 図 9に示す 1回のデータライト期間 TAO及び TA1により、例えば論理アドレス 0— a 0〜0— dOと 0— al〜0— dlの物理ブロック 211にデータが書き込まれる。また、アド レス範囲 0内において、データライト期間 TA0及び TA1による動作が繰り返されるこ とにより、例えば論理アドレス 0— a0〜0— dOから 1021— al〜1021— dlの物理ブ ロック 211にデータが書き込まれる。
[0060] FAT16を使用するアクセス装置 100において、通常 1クラスタは 16kBであり、多く の製品において、アクセス装置 100は 16kB単位で書き込み指示を不揮発性記憶装 置 123に転送する。特許文献 1に示す従来の半導体メモリ装置は、 16kB分を書き込 んだ後に読み書きメモリ 113に一時記憶されたアドレス管理テーブル 112を不揮発 性メモリ 115に書き戻しており、時間的オーバヘッドが処理速度を下げる要因となつ ていた。しかし、本実施形態の不揮発性記憶装置 123は、アドレス範囲が切り替わら な 、場合、読み書きメモリ 113に一時記憶されたアドレス管理テーブル 112を不揮発 性メモリ 115に書き戻す処理を行わず、データの書き込み時に併せて分散管理情報 214を書き込んでおり、オーバヘッドの合理化を行っている。
[0061] [アドレス範囲が切り替わる場合のデータの書き込み処理]
次に、アクセス装置 100が転送したアドレス範囲ナンバーが切り替わった時の不揮 発性記憶装置 123の動作について説明する。図 10に、アドレス範囲の切り替えが発 生した場合の書き込みシーケンスを示す。アドレス範囲切替部 105が、比較器 703に より、アドレス範囲が切り替わることを検知すると、メモリ制御部 123は、アドレス管理 テーブルライト期間(以下、「ATライト期間」と呼ぶ。)TB、アドレス管理テーブルリー ド期間(以下、「ATリード期間」と呼ぶ。)TC、及びアドレス範囲特定情報ライト期間 T Dの順に処理を行う。アクセス装置 100の指定するアドレス範囲が 0から 1に切り替わ つた場合を例として以下に説明する。
[0062] アドレス範囲 0の論理アドレス 1021— al〜1021— dlの物理ブロック 211にデータ が書き込まれた後、メモリコントローラ 114はアクセス装置 100からアドレス範囲 1を指 定する論理アドレス 400を受け取ると、アドレス範囲切替部 105は、比較器 703により 、アドレス範囲が 0から 1に切り替わることを検知する。すると、メモリコントローラ 114は 、まず旧アドレス範囲の後処理として、 ATライト期間 TBにおける処理を行う。
[0063] ATライト期間 TBにおいて、メモリコントローラ 114は、読み書きメモリ 113に一時的 に格納されて 、るアドレス範囲 0のアドレス管理テーブル 112を不揮発性メモリ 115 のアドレス範囲 0のアドレス管理テーブル領域 117に最新のアドレス管理テーブルと して書き戻す。まず、メモリコントローラ 114は、ライトコマンド、アドレス範囲 0内のアド レス管理テーブル領域 117内の物理ブロックナンバー 412、及び読み書きメモリ 113 に格納されて ヽるアドレス管理テーブル 112を不揮発性メモリ 115に転送する(ライト コマンド及びアドレス ZAT転送期間 Tbl)。次に、物理ブロックナンバー 412で指定 される物理ブロック 211を消去する (ィレーズビジー期間 Tb2)。最後に、消去した物 理ブロック 211に、アドレス管理テーブル 112を書き込む(プログラムビジー期間 Tb3
) o
[0064] こうして、アドレス範囲 0に対する書き込み処理は終了し、 ATライト期間 TBの終了 時点と ATリード期間 TCの開始時点との間が実際のアドレス範囲切替時点 TSとなる 。次に、新アドレス範囲の前処理として、 ATリード期間 TCとアドレス範囲特定情報ラ イト期間 TDにおける処理を行う。
[0065] ATリード期間 TCにおいて、 CPU102は、アドレス範囲 1のアドレス管理テーブル 1 12の読み込み指示を不揮発性メモリアクセス部 109に対して発行し、不揮発性メモリ アクセス部 109は、アドレス範囲 1のアドレス管理テーブル 112をアドレス範囲 1のアド レス管理テーブル領域 117から読み出して、アドレス管理テーブル制御部 108は読 み出したアドレス管理テーブル 112を読み書きメモリ 113に記憶させる(リードコマンド 及びアドレス ZAT転送期間 Tel)。ここで読み込まれるアドレス管理テーブル 112は 、アドレス範囲 1内のアドレス管理テーブル領域 117内における最新のアドレス管理 テーブルである。アドレス管理テーブル 112が最新かどうかは、次のように判断する。 まず、アドレス管理テーブル領域 117内の物理ブロックのページの最上位アドレス、 具体的には図 2における論理アドレス 2047— al〜2047— dlの 4ページ分(全 8kB )をセットとして、消去されている力否かを判断する。消去されていなければ、論理アド レス 2047— al〜2047—dlのセットが最新のアドレス管理テーブルであると判断す る。また、消去されていれば、図 2の上位方向、すなわち不揮発性メモリ 115の下位 側にサーチしていき、消去されていない、即ち何らかの値が書き込まれた 4ページ分 を最新のアドレス管理テーブルとして選択する。
[0066] なお、不揮発性記憶装置 123が出荷された直後は、不揮発性メモリ 115の物理ブ ロックは全て消去された状態となっている。実際は、システム領域に所定の値が書き 込まれているが、本実施形態ではこの状態を省略して説明する。その場合、最下位( 図 2において、上側)の 4ページ、即ち 2046— a0〜2046— dOをアドレス管理テープ ル 112として読み書きメモリ 113に読み込むことになる。このとき、図 6に示す物理領 域管理テーブル 111は全て無効ブロックの「11」を示し、有効なデータはアドレス範 囲 1に記憶されて 、な 、状態と 、うことになる。
[0067] アドレス範囲特定情報ライト期間 TDにおいて、メモリコントローラ 114は、図 8に示 す切り替え後のアドレス範囲ナンバー 712を含むアドレス範囲特定情報 801を不揮 発性メモリ 115のカレントアドレス範囲ナンバー記憶領域 118に格納する。まず、アド レス範囲特定部 106内のカウンタ 701はインクリメントすると共に、切り替え後のアドレ ス範囲ナンバー 712がレジスタ 704に格納される。アドレス範囲特定部 106は、カウ ンタ 701の時刻情報 711とレジスタ 704に格納されたアドレス範囲ナンバー 712とを 含むアドレス範囲特定情報 801を生成する。不揮発性メモリアクセス部 109は、ライト コマンド、不揮発性記憶装置 115のカレントアドレス範囲ナンバー記憶領域 118内の 物理ブロックナンバー 412及びアドレス範囲特定情報 801を不揮発性メモリ 115に転 送する(ライトコマンド及びアドレス Zアドレス範囲特定情報転送期間 Tdl)。次に、物 理ブロックナンバー 412で指定される物理ブロック 211が消去される(ィレーズビジー 期間 Td2)。最後に、消去された物理ブロック 211にアドレス範囲特定情報 801が書 き込まれる(プログラムビジー期間 Td3)。
[0068] アドレス範囲特定情報ライト期間 TDの後のデータライト期間 TAOにおいて、ァドレ ス範囲 1の論理アドレス 1024— a0〜1024— dOにデータが書き込まれる。
[0069] アドレス範囲特定情報ライト期間 TDに、アドレス範囲特定情報 801を不揮発性メモ リ 115のカレントアドレス範囲ナンバー記憶領域 118に記憶することにより、次回起動 時に、起動前にアクセスされていたアドレス範囲ナンバー 712を特定できる。よって、 電源遮断などの障害が発生した後の起動時であっても、アドレス範囲特定部 106は どのアドレス範囲の処理中に電源遮断などの障害が起きたかを判別することができる 。また、処理が途中中断されたアドレス範囲のアドレス管理テーブル領域 117にアド レス管理テーブル 112が書き戻しされていなくても、アドレス範囲特定情報 801に記 憶されたアドレス範囲についてのアドレス変換テーブル 112は、初期化処理時に、分 散管理情報 214を用いて生成されるため、誤って古 、アドレス変換テーブル 112を 使用することはない。
[0070] [初期化処理に要する時間]
本実施形態において、アドレス管理テーブル生成部 107が不揮発性メモリアクセス 部 109を介して読み込む分散管理情報 214は、 1つのアドレス範囲内に限られる。例 えば、不揮発性メモリ 115がマルチバンクページリード機能を備え、各マルチバンク ページリードの所要時間が 100 μ秒とすると、式(3)により、約 100m秒で分散管理 情報 214の読み出しが完了する。
100 μ秒 X lk= 100m秒 (3)
[0071] 1GBの容量をもつ半導体メモリ装置 (フラッシュメモリチップが 8枚分)の場合は、式
(4)により約 800m禾少となる。
100m秒 X 8枚 = 800m秒 (4)
[0072] これに対して、特許文献 2に示すような従来の半導体メモリ装置は、全領域の分散 管理情報を読み出すため、読み出し時間は、式(5)により、約 6400m秒となる。
800m秒 X 8 = 6400m秒 (5)
[0073] 特許文献 2の不揮発性メモリ 115は 8区分に分割されていないため、式(5)の値は
、式 (4)に比べて、 8倍の値になる。この値は、ユーザの起動時の待ち時間としては 長時間になる。また、この式(5)の値は、不揮発性メモリの容量が大きくなればなる程
、大きくなり、致命的な問題となる。
[0074] 本実施形態の初期化処理に要する時間は、特許文献 2の 1Z8となり、短時間で処 理が行える。
[0075] [データの書き換えレート]
次に、本実施形態による書き込み速度の向上に関して、定量的に説明する。図 9に 示したデータライト期間 TAO及び TA1と図 10に示した ATライト期間 TB及びデータ ライト期間 TAOを各々 1. 5m秒とする。
[0076] 特許文献 1に示す従来の半導体メモリ装置が、例えば論理アドレス 0— aO〜0— dO と、 0— al〜0— dlの物理ブロック 4個分にデータを書き込む場合、図 9のデータライ ト期間 TA1の後に ATライト期間 TBが必要であったため、式 (6)により、 4. 5m秒を 要していた。
1. 5m秒 X 3=4. 5m秒 (6)
[0077] 一方、本実施形態にぉ 、て、アドレス範囲が変化しな 、場合、例えば論理アドレス
0 a0〜0 dOと、論理アドレス 0 al〜0 dlの物理ブロック 4個分にデータを書き 込む場合、式(7)により、 3m秒要する。
1. 5m秒 X 2 = 3m秒 (7)
[0078] このように、アドレス範囲が変化しな 、場合、本実施形態の書き込み時間は特許文 献 1に示す書き込み時間より短 、。
[0079] アドレス範囲が変化する場合、本実施形態は、図 10に示すように、旧アドレス範囲 の後処理を行う ATライト期間 TBと、新アドレス範囲の前処理を行う ATリード期間 TC 及びアドレス範囲特定情報ライト期間 TDが必要となり、特許文献 1より余分に処理時 間を要する。
[0080] これを踏まえて、 1つの論理範囲全体を 16kB単位で全て書き換えるレート値を基 準にして、本実施形態と特許文献 1とを比較する。まず、 1つのアドレス範囲の容量は 約 16MB (簡単のため、アドレス管理テーブル領域分は誤差とする)であり、式 (8)に より 16kB単位の書き込みで 1つのアドレス範囲を書き換えるのに、アクセス装置 100 は lk回の書き込みを指示することになる。
16MB÷ 16kB= lk回 (8)
[0081] この場合、特許文献 1に示す従来の半導体メモリ装置では、式(9)に示すように平 均 3. 6MBZ秒の書き換えレートとなる。
16MB÷ (lk回 X 4. 5m秒) 3. 6MBZ秒 (9)
[0082] 一方、本実施形態の不揮発性記憶装置 123では、式(10)に示すように平均 5. 5 MBZ秒の書き換えレートとなり、本実施形態における不揮発性記憶装置 123の方 力 り高速に 1つのアドレス範囲を書き換えることができる。
16MB÷ { (lk回X 3m秒) + (2回X l. 5m ) } = 5. 5MBZ秒 (10)
[0083] なお、アドレス範囲切り替え時の瞬間的な速度劣化は、数 m秒オーダであるので、 アクセス装置 100側が通常備えているノ ッファを使用することにより、十分吸収するこ とができる。これにより処理が破綻することはない。
[0084] 以上のように、本実施形態によれば、不揮発性メモリ 115のメモリ容量が大きくなつ ても、起動時の初期化時間を極小化することができると共に、アドレス管理テーブル 1 12の更新における時間的なオーバヘッドを合理ィ匕し、結果として書き換えレートを向 上できる。すなわち、本発明によれば、通常動作時におけるアドレス管理テーブル 1 12の書き戻し処理に起因するアクセス速度の低下を回避しつつ、電源遮断等の障 害が起きた後の初期化時におけるアドレス管理テーブル 112の作成時間を短縮する ことができる。
[0085] なお、図 3における管理領域 213は、分散管理情報 214に加え、時刻情報 711を 格納しても良い。例えば、データをユーザデータ領域 116のデータ領域 212に書き 込むときに、時刻情報 711を管理領域 213に書き込む。初期化処理時に、アドレス範 囲を特定した後、アドレス範囲特定情報 801の時刻情報 711と一致する時刻情報 71 1が書き込まれた物理ブロック 211のみを読み出すことにより、アドレス管理テーブル 領域 117に記憶された最新のアドレス管理テーブル 112を改訂しても良 、。これによ り、短時間で、アドレス管理テーブル領域 117のアドレス管理テーブル 112を更新で き、電源遮断等により処理が中断した後の初期化処理において有用である。
[0086] また、読み書きメモリ 113は、比較的高速にアクセスできれば RAM以外の読み書き メモリを使用しても構わない。また、不揮発性メモリ 115は、複数の不揮発性メモリチ ップを内蔵しても構わない。また不揮発性メモリ 115は、フラッシュメモリ以外の不揮 発性メモリを用いても良い。
[0087] なお、不揮発性メモリ 115は 1つのフラッシュメモリチップを用いて構成してもよいし 、また複数のフラッシュメモリチップを用いて構成してもよ 、。
[0088] 本実施形態において、アドレス管理テーブル領域 117は各アドレス範囲内に設け ているが、アドレス範囲 0〜7のアドレス管理テーブル領域 117をまとめて、一つの範 囲、例えば不揮発性メモリ 115の最後尾の領域に設けても良 、。
[0089] また、アドレス管理テーブル 112の記憶位置を、本実施形態のアドレス管理テープ ル領域 117内のように、物理的に固定させなくても良い。例えば、アドレス管理テー ブル領域 117を設けずに、アドレス管理テーブル 112をユーザデータ領域 116の物 理ブロック 211に格納する。その際、アドレス管理テーブル 112の格納先の物理アド レスを指し示すポインタ情報を不揮発性メモリ 115内に記憶しておき、そのポインタ情 報に応じて記憶位置をサーチできるようにすれば良!、。
[0090] なお、カレントアドレス範囲ナンバー記憶領域 118の位置は、アドレス範囲 7の上位 側に限定されない。また、本実施形態において、アドレス範囲特定情報 801は不揮 発性メモリ 115のカレントアドレス範囲ナンバー記憶領域 118に記憶された力 不揮 発性メモリ 115以外の不揮発性メモリを別に設け、そこに記憶するようにしても構わな い。
[0091] また、アドレス範囲特定情報 801は、アドレス範囲が切り替わった際に、切り替え前 のアドレス範囲に対応するアドレス管理テーブル 112に組み込んだ形で、不揮発性 メモリ 115に書き戻すようにしても構わない。その場合、電源立ち上げ後の初期化に おいて、全てのアドレス範囲 0〜7に記憶された最新のアドレス管理テーブル 112を 調べて、最も直近の時刻情報 711を含むアドレス管理テーブル 112内に記憶された アドレス範囲ナンバー 712が、電源遮断がなされた時刻におけるアドレス範囲ナンパ 一と判断する。
[0092] (第 2の実施形態)
図 11に、本発明の第 2の実施形態における不揮発性記憶システムを示す。第 2の 実施形態の不揮発性記憶システムは、不揮発性メモリ 1115のアドレス範囲の大きさ と、アドレス管理テーブル 1112の初期化時の生成方法が第 1の実施形態と異なる。
[0093] 本実施形態の不揮発性記憶システムは、アクセス装置 100と、アクセス装置 100か ら送信されたデータの読み書き命令に基づいて動作する不揮発性記憶装置 123とを 有する。
[0094] 不揮発性記憶装置 123は、アクセス装置 100から転送されたデータを格納する不 揮発性メモリ 1115と、アクセス装置 100から送信されたデータの読み書き命令と論理 アドレスとに基づ 、て、不揮発性メモリ 1115を制御するメモリコントローラ 114とを有 する。不揮発性メモリ 1115の記憶領域は、複数のアドレス範囲を有する。
[0095] [メモリコントローラの内部構成]
メモリコントローラ 114は、ホスト I/F部 101、ワーク用 RAM103、プログラムを格納 した ROM104、及びワーク用 RAM103と ROM104に格納されたプログラムを用い てメモリコントローラ 114内全体の制御を行う CPU102を有する。
[0096] メモリコントローラ 114は、さらに、不揮発性メモリ 1115を制御するメモリ制御部 122 、アドレス管理テーブル 1112を生成するアドレス管理テーブル生成部 107、及びァ ドレス管理テーブル 1112を一時的に格納する読み書きメモリ 113を有する。 [0097] メモリ制御部 122は、不揮発性メモリ 1115のアドレス範囲の切り替わりを判断する アドレス範囲制御部 124、不揮発性メモリ 1115に対してデータの読み書き等を制御 する不揮発性メモリアクセス部 109、及び読み書きメモリ 113に一時記憶されたァドレ ス管理テーブル 1112を不揮発性メモリアクセス部 109を介して不揮発性メモリ 1115 に書き込むアドレス管理テーブル制御部 108を有する。
[0098] [不揮発性メモリの内部構成]
本実施形態において、不揮発性メモリ 1115の記憶領域は、データを記憶するため のユーザデータ領域 1116、アドレス管理テーブル 1112を記憶するためのアドレス 管理テーブル領域 1117、及び図 18に示すアドレス範囲特定情報 1801を格納する ためのカレントアドレス範囲ナンバー記憶領域 118を有する。
[0099] 図 12に、本実施形態の不揮発性メモリ 1115の記憶領域の構成を具体的に示す。
図 12において、不揮発性メモリ 1115は 1GBであり、 1Gビットのフラッシュメモリを 8チ ップ実装している。不揮発性メモリ 1115は、複数の物理ブロック 211により構成され ている。ここで、物理ブロック 211とは、選択的に消去できる最小単位のィレーズブロ ックのことであり、本実施形態では約 4kBの大きさを持つ。
[0100] 不揮発性メモリ 1115は、横方向にバンク 0〜3の 4バンクに分割されている。本実施 形態において、アドレス範囲 1201は、ユーザデータ領域 1116内の各バンクから 1つ ずつ選択された、合計 4つの物理ブロック 211により構成される。例えば、論理アドレ ス 0— aOと 0— al〜0— dOと 0— dlを含む論理ブロックナンバー「0」の 4つの物理ブ ロックが 1つのアドレス範囲 1201となる。すなわち、本実施形態において、論理ブロッ クナンバーは、アドレス範囲 1201を指定するアドレス範囲ナンバーとなり、例えば論 理ブロックナンバー「0」=アドレス範囲ナンバー「0」となる。図 12において、ユーザ データ領域 1116は、アドレス範囲 0〜8188を有する。
[0101] 本実施形態において、アドレス管理テーブル領域 1117は、アドレス範囲 1201内 に設けられるのではなぐ不揮発性メモリ 1115の上位側の領域に設けられる。ァドレ ス管理テーブル領域 1117は、下位側(図 12の上側)から順に、アドレス管理テープ ル 1112を格納していく。その後、新しいアドレス管理テーブル 1112を記憶できるよう に、不要となった古いアドレス管理テーブル 1112は順に消去される。このように、アド レス管理テーブル領域 1117は巡回的に使用される。例えば、アクセス装置 100から の書き込み命令がなされ、不揮発性メモリ 1115に有効データが書かれて 、る状態に ぉ ヽて、最新のアドレス管理テープノレ 1112力 理アドレス 8190_aO~8190_dO に格納されているとすると、それより下位(図 12の上側)の 8189— al〜8189— dlと 8189— a0〜8189—d0に格納されているアドレス管理テーブル 1112は無効ブロッ クとして消去しておく。そしてこの領域は後々使用できるようにしておく。
[0102] 不揮発性メモリ 1115の記憶領域は、アドレス管理テーブル領域 1117の上位側に カレントアドレス範囲ナンバー記憶領域 118を有する。カレントアドレス範囲ナンバー 記憶領域 118は、アドレス範囲ナンバーを特定する情報を格納するための領域であ り、図 18に示すアドレス範囲特定情報 1801を格納する。カレントアドレス範囲ナンパ 一記憶領域 118を設けることにより、電源遮断等の障害によって再起動された際に、 起動前にアクセスされて 、たアドレス範囲ナンバーを特定することができるようになる 。カレントアドレス範囲ナンバー記憶領域 118は、不要となった古いアドレス範囲特定 情報 1801が格納された物理ブロック 211を消去しながら巡回的に使用される。
[0103] なお、不揮発性メモリ 1115において、セキュリティ関係の情報やメーカコード等が 書き込まれた所謂システム領域にっ 、ては、ここでは説明を省略する。
[0104] 図 13に、本実施形態における物理ブロック 211の具体例を示す。物理ブロック 211 はページ 0とページ 1の 2ページを有する。ページは書き込み単位であり、図 12にお いて、最大同時書き込み数は 4バンクの各 1ページ、即ち最大 4ページ分である。各 ページは、 2048ノイトのデータ領域 212と 64ノイトの管理領域 213を有する。 1セク タは 512バイトであり、データ領域 212は 4セクタにより構成される。データ領域 212 は、アクセス装置 100から転送されるデータが書き込まれる領域である。ページ 0の 管理領域 213には、分散管理情報 214が格納される。分散管理情報 214は、ァクセ ス装置 100が指定する論理ブロックナンバーと、物理ブロック 211のステータスを示 すブロックステータスとを含む。アクセス装置 100から転送されたデータがページ 0の データ領域 212に書き込まれるときに、分散管理情報 214はページ 0の管理領域 21 3に書き込まれる。
[0105] [論理アドレスのフォーマット] 図 14に、本実施形態におけるアクセス装置 100が不揮発性記憶装置 123に送信 する論理アドレス 1400のフォーマットを示す。論理アドレス 1400は、下位ビットから 川頁に、セクタナンバー 401、バンクナンバー 402、ページナンバー 403、及びアドレス 範囲ナンバー 1405を有する。本実施形態において、アドレス範囲ナンバー 1405は 、論理ブロックナンバー 1411である。論理ブロックナンバー 1411に対応する 13ビッ ト分が物理ブロックナンバー 1412へのアドレス変換の対象となる。
[0106] [アドレス管理テーブルの構成]
図 11に示すように、本実施形態のアドレス管理テーブル 1112は、アドレス変換テ 一ブル 1110と物理領域管理テーブル 1111と書き込み管理テーブル 1121とを含む
[0107] 図 15に本実施形態におけるアドレス変換テーブル 1110を示す。アドレス変換テー ブル 1110は、アクセス装置 100が指定した論理アドレス 1400に含まれる論理ブロッ クナンバー 1411を不揮発性メモリ 1115内の物理ブロックナンバー 1412に変換する ためのテーブルである。アドレス変換テーブル 1110は、論理ブロックナンバー 1411 毎に対応する物理ブロックナンバー 1412を示す。本実施形態において、アドレス変 換テーブル 1110は、不揮発性メモリ 1115内の全ての論理ブロックナンバー 1411に 対する物理ブロックナンバー 1412を含んでいる。さらに、アドレス変換テーブル 111 0は、アクセス装置 100からの書き込み指示に応じて新規に確保した物理ブロックナ ンバーを最後尾に記憶する。
[0108] 図 16に、本実施形態における物理領域管理テーブル 1111を示す。物理領域管 理テーブル 1111は、不揮発性メモリ 1115内にお!/、て消去単位である物理ブロック 2 11の状態を示すテーブルであり、有効なデータが記憶されて 、るかどうか等のブロッ クステータスを記憶する。物理領域管理テーブル 1111は、アドレス変換テーブル 11 10に含まれる全ての物理ブロックナンバー 1412に対してのブロックステータスを格 納しており、本実施形態の物理領域管理テーブル 1111の容量は、第 1の実施形態 の物理領域管理テーブル 111の容量と異なる。容量以外については、本実施形態 の物理領域管理テーブル 1111は、第 1の実施形態の物理領域管理テーブル 111と 同じである。 [0109] 図 17に、本実施形態における書き込み管理テーブル 1121を示す。書き込み管理 テーブル 1121は、アドレス変換テーブル 1110が管理する 1単位である論理ブロック に対応する物理ブロックの書き込み状態を記憶するテーブルである。書き込み管理 テーブル 1121は、ページ 0とページ 1のバンク毎に、書き込み済みか否かの状態を 1 ビットで表し、書き込み未であれば「1」、書き込み済であれば「0」を記憶する。例えば 、アクセス装置 100からの書き込み指示に応じて、新規に 4つの物理ブロックが確保 された場合、書き込み管理テーブル 1121の全てのビットは 2進数の「1」にセットされ る。次にデータが書き込まれると、書き込みが行われたページに対応するビットに 2進 数の「0」がセットされる。書き込み管理テーブル 1121は、既に「0」がセットされている ページにデータを書き込む場合に、再度新規に物理ブロックを確保する必要がある 力どうかを判断するものである。
[0110] [アドレス管理テーブルの生成]
図 11に示すアドレス管理テーブル制御部 108は、初期化時に、アドレス変換テー ブル 1110と物理領域管理テーブル 1111とを、不揮発性メモリ 1115のアドレス管理 テーブル領域 1117から読み込む。
[0111] アドレス管理テーブル生成部 107は、電源立ち上げ前にアクセスしていたアドレス 範囲の物理ブロック 211に記憶された分散管理情報 214に基づいて書き込み管理 テーブル 1121を生成する。
[0112] 読み書きメモリ 113は、 SRAMなどの揮発性メモリあるいは強誘電体メモリなどの不 揮発性メモリであり、アドレス管理テーブル 1112を一時的に記憶する。アクセス装置 100の指示によるデータの書き込み等は、読み書きメモリ 113に格納されたアドレス 管理テーブル 1112を参照し、更新しながら行われる。
[0113] メモリ制御部 122は、アクセス装置 100からの書き込み指示に応じてユーザデータ 領域 1116にデータと分散管理情報 214を書き込む。このとき、メモリ制御部 122内 のアドレス管理テーブル制御部 108は、読み書きメモリ 113に一時記憶されたァドレ ス管理テーブル 1112を更新する。アドレス管理テーブル制御部 108は、アクセス装 置 100が指示した書き込み先アドレスが現在のアドレス範囲力も他のアドレス範囲に 切り替わる際に、読み書きメモリ 113上に一時記憶されたアドレス管理テーブル 111 2を不揮発性メモリ 1115のアドレス管理テーブル領域 1117に書き込む。
[0114] [アドレス範囲特定情報の書き込み]
アドレス範囲特定情報 1801とは、切り替わり先のアドレス範囲を特定するための情 報である。図 18に、本実施形態におけるアドレス範囲特定情報 1801を示す。ァドレ ス範囲特定情報 1801は、時刻情報 711と、切り替わり後のアドレス範囲を特定する ためのアドレス範囲ナンバー 1712を有する。アドレス範囲ナンバー 1712のビット数 は、第 1の実施形態のアドレス範囲ナンバー 712のビット数と異なる。
[0115] 図 11に示すアドレス範囲制御部 124は、アドレス範囲切替部 105とアドレス範囲特 定部 106を有する。
[0116] アドレス範囲切替部 105の内部構成は、第 1の実施形態の図 7と同様である。ァドレ ス範囲切替部 105は、アクセス装置 100が転送した論理アドレスに基づき、アドレス 範囲ナンバー 1712が切り替わった力否かを検出する。切り替わつたことを検出すると 、切り替わり後のアドレス範囲ナンバー 1712を出力すると共に、アクセス装置 100が 転送した命令が何時の時点での命令かがわ力るように、各命令の時間的前後関係を 表す時刻情報 711とを出力する。
[0117] アドレス範囲特定部 106は、アドレス範囲が切り替わった直後、切り替わり後のアド レス範囲への書き込みを始める際に、アドレス範囲特定情報 1801を不揮発性メモリ アクセス部 109を介して、不揮発性メモリ 1115のカレントアドレス範囲ナンバー記憶 領域 118に記憶する。さらに、アドレス範囲特定部 106は、電源立ち上げ後の初期 化時において、カレントアドレス範囲ナンバー記憶領域 118に記憶されたアドレス範 囲特定情報 1801に基づいて、電源立ち上げ前にアクセスされていたアドレス範囲 1 201を特定する。これにより、例えば、電源遮断等の障害によって再起動された場合 であっても、アドレス範囲特定部 106は起動前にアクセスされていたアドレス範囲ナ ンバー 1712を特定できる。
[0118] [初期化処理]
以上のように構成された本実施形態の不揮発性記憶システムの初期化処理にっ ヽ て説明する。電源 ON後、 CPU102は ROM104に記憶されたプログラムに基づいて 、不揮発性メモリアクセス部 109にアドレス管理テーブル領域 1117内のアドレス変換 テーブル 1110と物理領域管理テーブル 1111の読み込み指示を発行する。初期化 処理は、電源 ON時の他に、不揮発性記憶装置 123のリセット時も行われる。不揮発 性メモリアクセス部 109は、不揮発性メモリ 1115のアドレス管理テーブル領域 1117 力 アドレス変換テーブル 1110と物理領域管理テーブル 1111を読み出す。ァドレ ス管理テーブル制御部 108は、アドレス変換テーブル 1110と物理領域管理テープ ル 1111を読み書きメモリ 113に書き込む。
[0119] 初期化処理時に読み込まれるアドレス変換テーブル 1110と物理領域管理テープ ル 1111は、アドレス管理テーブル領域 1117内における物理ブロック 211に格納さ れて 、る最新のアドレス変換テーブル 1110と物理領域管理テーブル 1111である。 どれが最新であるかの判断にっ 、ては、アドレス管理テーブル領域 1117に対応す る物理ブロック 211のページの最上位アドレス、具体的には図 12における論理アドレ ス 8190— al〜8190— dlの 4ページ分(全 8kB)をセットとして消去されているか否 かを判断基準とする。そして、図 12の上位方向にサーチしていき、消去されていない 、即ち何らかの値が書き込まれた 4ページ分を最新のアドレス変換テーブル 1110と 物理領域管理テーブル 1111として選択する。
[0120] さらに、 CPU102は不揮発性メモリアクセス部 109にアドレス範囲特定情報 1801 の読み込み指示を発行する。アドレス範囲特定部 106は、不揮発性メモリアクセス部 109を介して、不揮発性メモリ 1115のカレントアドレス範囲ナンバー記憶領域 118か ら、最も大きい時刻情報 711を持つアドレス範囲特定情報 1801を検索し、検索した アドレス範囲特定情報 1801に含まれるアドレス範囲ナンバー 1712をアドレス管理テ 一ブル生成部 107に転送する。アドレス管理テーブル生成部 107は、電源立ち上げ 前にアクセスしていたアドレス範囲の物理ブロック 211の分散管理情報 214に基づい て、書き込み管理テーブル 1121を生成し、読み書きメモリ 113上に格納する。但し、 全てのビット値が 1の時刻情報 711については、アドレス範囲特定情報 1801が書き 込み未であると判断する。
[0121] なお、不揮発性記憶システムの記憶媒体である不揮発性記憶装置 123が出荷され た後、最初に使用される際は、不揮発性メモリ 1115の物理ブロック 211は全て消去 された状態となっている。実際は、システム領域に所定の値が書き込まれているが、 ここではこの状態を省略して説明する。工場出荷直後は、最下位(図 12の上側)の 8 189— a0〜8189— dOの 4ページを、アドレス管理テーブル 1112として読み書きメ モリ 113に読み込む。このとき、有効なデータは不揮発性メモリ 1115に記憶されてい な 、ため、図 16に示す物理領域管理テーブル 1111は全て無効ブロックの「11」を 記憶している。また、図 17に示す書き込み管理テーブル 1121は、全て書き込み未 の状態を示す「1」を記憶している。
[0122] 上記のように、アドレス変換テーブル 1110、物理領域管理テーブル 1111及び書き 込み管理テーブル 1121を読み書きメモリ 113に書き込んだあと、メモリコントローラ 1 01は、アクセス装置 100からの読み書き等のコマンドの受付状態に入る。
[0123] [アドレス範囲内のデータの書き込み処理]
図 19に、アドレス範囲の切り替えが無い場合の書き込み処理を示す。なお、第 1の 実施形態においては不揮発性メモリ 115へのアクセスは 16kB単位であった力 第 2 の実施形態においては 2kB単位である。図 19においては、データライト期間 TA0に おいて、アドレス範囲 0内の論理アドレス 0—aOで示される物理ブロック 211のページ 0に 2kBのデータが書き込まれ、次のデータライト期間 TBIにおいて、アドレス範囲 0 内の論理アドレス 0—bOで示される物理ブロック 211のページ 0に 2kB分のデータが 書き込まれる。ライトコマンド及びアドレス Zデータ転送期間 Tal、ィレーズビジー期 間 Ta2、及びプログラムビジー期間 Ta3については、第 1の実施形態の図 9と同じで ある。
[0124] 特許文献 1に示すような従来の半導体メモリ装置は、 2kB分のデータを書き込んだ 後に、読み書きメモリ 113に一時記憶されたアドレス管理テーブル 1112を不揮発性 メモリ 1115に書き戻す処理がなされており、その時間的オーバヘッドが処理速度を 下げる要因となっていた。一方、本発明の第 2の実施形態においては、アドレス範囲 が切り替わらない場合は、読み書きメモリ 113に一時記憶されたアドレス管理テープ ル 1112を不揮発性メモリ 1115に書き戻す処理は行わず、データの書き込みの時に 併せて分散管理情報 214をユーザデータ領域 1116に書き込むことにより、上述した オーバヘッドの合理化を行って 、る。
[0125] [アドレス範囲が切り替わる場合のデータの書き込み処理] 図 20に、アドレス範囲の切り替えがある場合の書き込み処理を示す。図 20は、アド レス範囲 1201が「3」から「4」に切り替わる場合を例としている。データライト期間 TA 3とデータライト期間 TAOとの間力 アドレス範囲切替時点 TSである。
[0126] データライト期間 TA3において、 3— dlの物理ブロック 211のページ 1にデータが 書き込まれた後、アドレス範囲切替部 105は、アクセス装置 100からアドレス範囲 4を 指定する論理アドレス 1400を受け取ると、アドレス範囲が「3」から「4」に切り替わった ことを検知する。これにより、アドレス範囲 3に対する処理は終了し、データライト期間 TA3とデータライト期間 TAOとの間力 アドレス範囲切替時点 TSとなる。
[0127] 次のデータライト期間 TAOにおいて、 4— aOの物理ブロック 211のページ 0にデー タが書き込まれる。このとき、アドレス管理テーブル制御部 108は、アドレス範囲 4へ 書き込みを行うために確保した物理ブロックナンバー 1412をアドレス変換テーブル 1 110の新規確保ブロックに書き込む。
[0128] その後、 ATライト期間 TBにおいて、読み書きメモリ 113に一時的に記憶されたアド レス変換テーブル 1110、物理領域管理テーブル 1111及び書き込み管理テーブル 1121が、不揮発性メモリ 1115のアドレス管理テーブル領域 1117に格納される。
[0129] 次に、アドレス範囲特定情報ライト期間 TDにおいて、アドレス範囲「4」を含むアドレ ス範囲特定情報 1801が、不揮発性メモリ 1115のカレントアドレス範囲ナンバー記憶 領域 118に書き込まれる。この処理を行うことにより、電源遮断などの障害が発生した とき、その直後の起動時に、どのアドレス範囲の処理中に電源遮断などの障害が起 きたかを判別できる。
[0130] ライトコマンド及びアドレス Zデータ転送期間 Tal、 Tbl、 Tdl、ィレーズビジー期 f¾†Ta2、 Tb2、 Td2、及びプログラムヒ、、ジ一期 f¾†Ta3、 Tb3、 Td3、【こつ 、ての詳糸田 は、第 1の実施形態の図 10と同じである。
[0131] 本実施形態は、初期化処理時に、全ての論理ブロックナンバー 1411に対するアド レス変換テーブル 1110と、アドレス変換テーブル 1110に含まれる全ての物理ブロッ クナンバー 1412に対する物理領域管理テーブル 1111とが読み書きメモリ 113に格 納されているため、図 10の ATリード期間 TCを設けなくて良い。
[0132] 上記のように、本実施形態の不揮発性記憶装置 123は、データの書き込み毎にァ ドレス管理テーブル 1112を不揮発性メモリ 1115に書き戻さない。そのため、電源遮 断等の障害が起きた場合の不揮発性メモリ 1115上のアドレス管理テーブル 1112は 、最新のアドレス管理情報でない場合がある。そこで、アドレス範囲特定部 106が電 源遮断等の障害が起きた直後の起動時に、電源遮断等の障害が起きた時のアドレス 範囲を特定し、そのアドレス範囲に記憶されている分散管理情報 214に基づき、アド レス管理テーブル生成部 107が読み書きメモリ 113上に書き込み管理テーブル 112 1を生成している。
[0133] [初期化処理に要する時間]
アドレス管理テーブル生成部 107が不揮発性メモリアクセス部 109を介して読み込 むデータ量は、アドレス範囲内の分散管理情報 214に限るので、比較的少ない時間 で読み込むことができる。例えば不揮発性メモリ 1115がマルチバンクページリード機 能を備え、各ページ毎のマルチバンクページリードの所要時間が 100 秒とすると、 式(11)により、約 0. 8m秒で読み出しが完了する。
100 /z秒 X 8 = 0. 8m秒 (11)
[0134] 1GBの容量をもつ半導体メモリ装置 (フラッシュメモリチップが 8枚分)の場合は、式
(12)により、約 6. 4π^少となる。
0. 8m秒 X 8枚 =6. 4m秒 (12)
[0135] 一方、特許文献 2に示すような従来の半導体メモリ装置は、全領域の分散管理情報 の読み出し時間は式(13)により、約 6400m秒となる。
100 /z秒 X 8kX 8 = 6400m秒 (13)
[0136] この値はユーザの起動時の待ち時間としては長時間であるといえる。このような問 題は、半導体メモリ装置の容量が大きくなればなる程、致命的な問題となる。しかし、 本実施形態によれば、短時間で初期化処理を行うことができる。
[0137] [データの書き換えレート]
次に、書き込み速度の向上に関して、以下定量的に説明する。図 19に示したデー タライト期間 TA0、 TA1及び図 20に示したデータライト期間 TA3、 TA0、 ATライト期 間 TB、アドレス範囲特定情報ライト期間 TDを各々 1. 5m秒とする。
[0138] 特許文献 1に示すような従来の半導体メモリ装置では、図 19のデータライト期間 TA 0、 TA1の後に ATライト期間 TBが必要であったため、 2ページ分のデータの書き込 みは、式(14)により、 4. 5m秒を要していた。
1. 5m秒 X 3=4. 5m秒 (14)
[0139] 一方、本実施形態におけるアドレス範囲が切り替わらない場合の 2ページ分のデー タの書き込みは、式(15)により 3m秒である。
1. 5m秒 X 2 = 3m秒 (15)
[0140] 但し、本実施形態においては、図 20に示すようにアドレス範囲が切り替わる場合、 アドレス範囲特定情報ライト期間 TDの分、従来例より余分に処理時間を要する。
[0141] これを踏まえて、 1つのアドレス範囲を 2kB単位で全て書き換えるレート値を基準に して、本実施形態と特許文献 1とを比較する。本実施形態において、 1つのアドレス 範囲の容量は 16kBである。 2kB単位の書き込みで 1つのアドレス範囲を書き換える 場合、式(16)により、アクセス装置 100は 8回の書き込みを指示することになる。
16kB÷ 2kB=8回 (16)
[0142] 特許文献 1に示すような従来の半導体メモリ装置の書き換えレートは、式(17)に示 すように、平均 444kBZ秒である。
16kB÷ (8回 X 4. 5m秒) 444kBZ秒 (17)
[0143] 一方、本実施形態の不揮発性記憶装置 123の書き換えレートは、式(18)に示すよ うに、平均 593kBZ秒である。本実施形態における不揮発性記憶装置 123の方が、 従来の半導体メモリ装置より高速に書き換えることができる。
161^÷ { (8回 3111秒)+ (2回 1. 5m秒) } 593kBZ秒 (18) [0144] なお、論理アドレス範囲切り替え時の瞬間的な速度劣化は、数 m秒オーダであるの で、アクセス装置 100側が通常備えているノ ッファを使用することにより、十分吸収す ることができる。これ〖こより処理が破淀することはな!/、。
[0145] 以上のように、本実施形態によれば、半導体装置のメモリ容量が大きくなつても、ま た電源遮断等の障害が発生した後においても起動時の初期化時間を極小化するこ とができると共に、アドレス管理テーブル 1112の更新における時間的なオーバヘッド を合理ィ匕し、結果として書き換えレートを向上できる。
[0146] なお、図 20に代えて、図 21に示す書き込みシーケンスを用いて、アドレス範囲が切 り替わったときの処理を行っても良い。図 21においては、 ATライト期間 TBはデータ ライト期間 TA3の後に設けており、 ATライト期間 TBとデータライト期間 TAOとの間を アドレス範囲切替時点 TSとして 、る。
[0147] なお、図 13における管理領域 213は、分散管理情報 214等に加え、時刻情報 711 を記憶しても良い。これにより、図 12のカレントアドレス範囲ナンバー記憶領域 118に 記憶されたアドレス範囲特定情報 1801の時刻情報 711と一致する物理ブロックのみ の情報に基づき、アドレス管理テーブル領域に記憶された最新のアドレス管理テー ブル 1112を改訂することによって、真の最新のアドレス管理テーブル 1112を生成 することができる。
[0148] また、読み書きメモリ 113は、比較的高速にアクセスできれば RAM以外の読み書き メモリを使用しても構わな 、。
[0149] また、不揮発性メモリ 1115は 1つのフラッシュメモリチップを用いて構成してもよいし
、複数のフラッシュメモリチップを用いて構成してもよい。また不揮発性メモリ 1115は
、フラッシュメモリ以外の不揮発性メモリを用いても良い。
[0150] また、本実施形態のアドレス管理テーブル領域 1117のように、アドレス管理テープ ル 1112の記憶位置を物理的に固定させるのではなく、アドレス管理情報用の領域 の物理アドレスを指し示すポインタ情報を別に設けて、ユーザデータ領域 1116と同 じ領域にアドレス管理テーブル 1112を混在させ、ポインタ情報に応じて記憶位置を 移動させるようにしてちょい。
[0151] また、時刻情報 711等のアドレス範囲を特定する為のアドレス範囲特定情報 1801 を、不揮発性メモリ 1115のカレントアドレス範囲ナンバー記憶領域 118に記憶するよ うにしたが、不揮発性メモリ 1115以外の不揮発性メモリを別に設け、そこに記憶する ようにしても構わない。
[0152] また、アドレス範囲特定情報 1801は、アドレス範囲が切り替わった際に、切り替え 後のアドレス範囲に対応するアドレス管理テーブル 1112に組み込んだ形で、不揮発 性メモリ 1115に書き戻すようにしても構わない。但し、その場合は電源立ち上げ後の 初期化において、アドレス管理テーブル領域 1117内の全てのアドレス範囲 0〜818 8に対応する最新のアドレス管理テーブル 1112を調べ、最も直近の時刻情報 711を 含むアドレス管理テーブル 1112内に記憶されたアドレス範囲ナンバー 1712を電源 遮断がなされた時刻におけるアドレス範囲ナンバー 1712と判断する。そこに書かれ ている切替時のアドレス範囲ナンバー 1712を、電源遮断などの障害が起きた時点で アクセス装置 100からの書き込み指示等が転送されていたアドレス範囲ナンバー 17 12と特定することができる。
産業上の利用可能性
本発明の不揮発性記憶装置は、フラッシュメモリなどの不揮発性メモリを使用したメ モリカード等の記憶媒体を用いて、高速書き込みと初期化時間短縮とを両立できると V、う効果を有し、静止画記録再生装置や動画記録再生装置等のポータブル AV機 器、あるいは携帯電話等のポータブル通信機器の記録媒体として有益である。

Claims

請求の範囲
[1] 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリ に、データを書き込む又は読み出すメモリコントローラであって、
前記メモリコントローラは、
前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶する読み書 さメモリと、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分 散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス 管理テーブルを更新し、データの書き込み先があるアドレス範囲力 他のアドレス範 囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テ 一ブルを前記不揮発性メモリに書き込む、メモリ制御部と、
初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理 情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上 に前記アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、
を有することを特徴とするメモリコントローラ。
[2] 前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした 領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブ ロックを含み、
前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の論理単位をま とめて管理するテーブルである、ことを特徴とする請求項 1に記載のメモリコントローラ
[3] 前記アドレス範囲は、アクセス装置力 指定される論理単位毎に設けられた領域で あり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテー ブルである、ことを特徴とする請求項 1に記載のメモリコントローラ。
[4] 前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲力も他 のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアド レス範囲特定情報を前記不揮発性メモリに書き込む、ことを特徴とする請求項 1に記 載のメモリコントローラ。
[5] 前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組 み込んだ形で前記不揮発性メモリに書き込むことを特徴とする請求項 4に記載のメモ リコントローラ。
[6] 前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化 前にアクセスして 、た前記アドレス範囲を特定する、ことを特徴とする請求項 4に記載 のメモリコントローラ。
[7] 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリ に、データを書き込む又は読み出すメモリコントローラであって、
前記メモリコントローラは、
1つの前記アドレス範囲内の物理ブロックの書き込み状態を管理する第 1のテープ ルと複数の前記アドレス範囲内の物理ブロックの状態を管理する第 2のテーブルとを 含むアドレス管理テーブルを一時記憶する読み書きメモリと、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分 散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメモリの前記アドレ ス管理テーブルを更新し、データの書き込み先があるアドレス範囲力 他のアドレス 範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理 テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第 2のテーブルを前 記不揮発性メモリから読み出して、前記読み書きメモリに格納する、メモリ制御部と、 初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理 情報を読み出して、読み出した前記分散管理情報に基づいて前記第 1のテーブルを 生成して、前記読み書きメモリに格納する、アドレス管理テーブル生成部と、 を有することを特徴とするメモリコントローラ。
[8] 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリ と、
前記不揮発性メモリへのデータの書き込み又は読み出しを制御する、請求項 1に 記載のメモリコントローラと、
を有することを特徴とする不揮発性記憶装置。
[9] 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリ を含む、請求項 8に記載の不揮発性記憶装置と、
前記アドレス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読 み出しを制御するアクセス装置と、
を有することを特徴とする不揮発性記憶システム。
1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリ と、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶するための 読み書きメモリと、を有する不揮発性記憶装置を制御するメモリ制御方法であって、 前記メモリ制御方法は、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分 散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス 管理テーブルを更新し、データの書き込み先があるアドレス範囲力 他のアドレス範 囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テ 一ブルを前記不揮発性メモリに書き込むステップと、
初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理 情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上 に前記アドレス管理テーブルを生成するステップと、
を有することを特徴とするメモリ制御方法。
PCT/JP2006/309933 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 WO2006126445A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/914,989 US8051270B2 (en) 2005-05-23 2006-05-18 Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
JP2007517793A JP4884382B2 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005149047 2005-05-23
JP2005-149047 2005-05-23

Publications (1)

Publication Number Publication Date
WO2006126445A1 true WO2006126445A1 (ja) 2006-11-30

Family

ID=37451870

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/309933 WO2006126445A1 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Country Status (4)

Country Link
US (1) US8051270B2 (ja)
JP (1) JP4884382B2 (ja)
CN (1) CN100590608C (ja)
WO (1) WO2006126445A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152517A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法
JP2012531655A (ja) * 2009-11-04 2012-12-10 株式会社日立製作所 フラッシュメモリモジュール
CN109032958A (zh) * 2017-06-12 2018-12-18 西部数据技术公司 用于在控制同步操作期间读取数据的方法和设备
JP2020123023A (ja) * 2019-01-29 2020-08-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007083449A1 (ja) * 2006-01-20 2007-07-26 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置、不揮発性記憶システム、及び不揮発性記憶装置の不良管理方法
US20090210612A1 (en) * 2006-03-16 2009-08-20 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile memory device, and nonvolatile memory system
US20100005225A1 (en) * 2006-07-26 2010-01-07 Panasonic Corporation Nonvolatile memory device, nonvolatile memory system, and host device
US20100017557A1 (en) * 2006-07-26 2010-01-21 Panasonic Corporation Memory controller, nonvolatile memory device,access device, and nonvolatile memory system
US8169848B2 (en) * 2006-07-26 2012-05-01 Panasonic Corporation Nonvolatile memory device, nonvolatile memory system, and access device
JP4551940B2 (ja) 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
JP4758518B2 (ja) * 2009-06-18 2011-08-31 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
JP5592293B2 (ja) * 2010-03-12 2014-09-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置及び不揮発性記憶システム
JP5391153B2 (ja) * 2010-06-01 2014-01-15 株式会社バッファロー ファイル管理装置およびファイル管理方法
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US20130254463A1 (en) * 2012-03-23 2013-09-26 Kabushiki Kaisha Toshiba Memory system
US9411983B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Apparatus and method to protect digital content
US9772781B2 (en) 2013-11-27 2017-09-26 Ngd Systems, Inc. System and method for supporting atomic writes in a flash translation layer
US8838936B1 (en) 2013-11-27 2014-09-16 NXGN Data, Inc. System and method for efficient flash translation layer
JP6347055B2 (ja) * 2014-03-28 2018-06-27 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
CN105094689B (zh) * 2014-05-16 2018-06-15 华为技术有限公司 非易失性存储器nvm页框初始化方法、装置和系统
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
KR102504763B1 (ko) * 2016-02-05 2023-03-02 에스케이하이닉스 주식회사 데이터 저장 장치
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
KR20180042488A (ko) * 2016-10-17 2018-04-26 에스케이하이닉스 주식회사 메모리 장치
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
JP6890238B2 (ja) * 2017-04-07 2021-06-18 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ
US11294579B2 (en) * 2020-06-18 2022-04-05 Western Digital Technologies, Inc. Mode handling in multi-protocol devices
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173379A (ja) * 1997-06-20 1999-03-16 Sony Corp データ管理装置及びデータ管理方法並びに記憶媒体
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP2003296188A (ja) * 2002-03-18 2003-10-17 Samsung Electro Mech Co Ltd 高容量フラッシュメモリカードシステムにおけるデータ運営方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
JP3912355B2 (ja) * 2003-10-14 2007-05-09 ソニー株式会社 データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173379A (ja) * 1997-06-20 1999-03-16 Sony Corp データ管理装置及びデータ管理方法並びに記憶媒体
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP2003296188A (ja) * 2002-03-18 2003-10-17 Samsung Electro Mech Co Ltd 高容量フラッシュメモリカードシステムにおけるデータ運営方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152517A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法
JP2012531655A (ja) * 2009-11-04 2012-12-10 株式会社日立製作所 フラッシュメモリモジュール
CN109032958A (zh) * 2017-06-12 2018-12-18 西部数据技术公司 用于在控制同步操作期间读取数据的方法和设备
JP2020123023A (ja) * 2019-01-29 2020-08-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Also Published As

Publication number Publication date
CN100590608C (zh) 2010-02-17
CN101185067A (zh) 2008-05-21
US8051270B2 (en) 2011-11-01
JPWO2006126445A1 (ja) 2008-12-25
US20080168252A1 (en) 2008-07-10
JP4884382B2 (ja) 2012-02-29

Similar Documents

Publication Publication Date Title
WO2006126445A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
KR100572328B1 (ko) 배드 블록 관리부를 포함하는 플래시 메모리 시스템
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
US5987563A (en) Flash memory accessed using only the logical address
JP3692313B2 (ja) 不揮発性メモリの制御方法
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
JPH1185609A (ja) 半導体記憶装置及びそのデータ管理方法
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
CN101131861A (zh) 半导体存储装置
JP2007004234A (ja) ストレージ装置
KR20020079917A (ko) 데이터 기록 장치 및 플래시 메모리에 대한 데이터 기입방법
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
US10884652B2 (en) Trim command recording method, memory control circuit unit and memory storage device
US20150058531A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP2004295865A (ja) 自動ブーティングシステム及び自動ブーティング方法
CN107943710B (zh) 存储器管理方法及使用所述方法的存储控制器
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
CN101661432B (zh) 闪存区块管理方法、闪存储存系统及控制器
KR20200101884A (ko) 데이터 저장 시스템 및 그것의 동작 방법
CN107229413B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680017750.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007517793

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWE Wipo information: entry into national phase

Ref document number: 11914989

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 06746608

Country of ref document: EP

Kind code of ref document: A1