WO1999031592A1 - Systeme de memoire flash - Google Patents

Systeme de memoire flash Download PDF

Info

Publication number
WO1999031592A1
WO1999031592A1 PCT/JP1998/005545 JP9805545W WO9931592A1 WO 1999031592 A1 WO1999031592 A1 WO 1999031592A1 JP 9805545 W JP9805545 W JP 9805545W WO 9931592 A1 WO9931592 A1 WO 9931592A1
Authority
WO
WIPO (PCT)
Prior art keywords
flash memory
data
block
address
memory system
Prior art date
Application number
PCT/JP1998/005545
Other languages
English (en)
French (fr)
Inventor
Yuji Kakinuma
Hiroya Kitagawa
Teruo Shimada
Original Assignee
Tdk Corporation
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 Tdk Corporation filed Critical Tdk Corporation
Publication of WO1999031592A1 publication Critical patent/WO1999031592A1/ja
Priority to US09/374,267 priority Critical patent/US6581132B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • 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

Definitions

  • the present invention relates to a flash memory that is a nonvolatile memory, and more particularly, to a flash memory system provided with a management system for appropriately managing the flash memory.
  • a magnetic recording medium such as a hard disk or a flip-flop disk
  • a hard disk or a flip-flop disk has been conventionally used.
  • hard disks with large capacity and high-speed operation are capable of storing a large amount of data, and are regarded as the main storage media of the system.
  • Flash memory As a storage medium other than a hard disk, a flash memory, which is a nonvolatile storage element, is known. Flash memory does not require a power supply to maintain memory, but due to its structure, it has a finite physical life of about 101 mm in access times. For this reason, in order to use flash memory relatively safely and stably for a long period of time, it is necessary to detect expired storage elements and locations where failures have occurred, and save them by avoiding them. is there. In addition, in the case of flash memory, it is not possible to overwrite new data on a location where data is already stored. Therefore, when trying to memorize a new date, the contents once memorized are deleted. n
  • erasable units are individual memory elements
  • Japanese Patent Application Laid-Open No. 2-292798 discloses a flash EEPROM system for the purpose of improving the speed of writing / reading to / from a flash memory and managing defective cells.
  • the flash E EPRM system described here seeks to improve access time by using cache memory.
  • there is a natural limit to shortening the access time depending on the cache memory and the operating speed of the entire flash memory system must be increased in order to further improve the writing / reading speed to the flash memory. Need to be done.
  • information such as ECC is provided in a redundant portion for the management of a defective cell and the like, and the defective cell and the like are managed only by the information of the redundant portion.
  • a flash memory system that can be implemented in any one of the above.
  • the memory manager has an address conversion table for converting a logical address given from the host computer to the flash memory and a physical address which is an actual address of the flash memory. Flash memory system specified corresponding to the minimum erasure unit.
  • the flash memory according to (1), wherein the memory manager includes data relay means for relaying data transmitted from the host computer to the flash memory and data transmitted from the flash memory to the host computer. System.
  • a logical block address obtained by dividing a logical address used when the host computer specifies the minimum storage unit on the storage medium in correspondence with the minimum erasure unit, and a physical block address in which the physical address is divided in correspondence with the minimum erasure unit The flash memory system according to the above (1) or (2), which corresponds to a block address.
  • the flash memory system according to any one of the above (1) to (3), which is performed before writing / reading data to / from the flash memory is started.
  • the size of the physical address area of the flash memory is The flash memory system according to any one of the above (1) to (4), which is larger than the size of the logical address area.
  • the data relay unit further includes a block status table, and the block status table is data indicating a state of each of the physical blocks on the flash memory,
  • the flash memory system according to any one of the above (1) to (6), which has at least data indicating whether or not there is a bad sector, whether or not there is a bad sector, and whether or not it is used.
  • the memory manager sets the size of a logical address area accessible to the flash memory from the host computer to be smaller than the size of a physical address area that is an actual address of the flash memory;
  • a flash memory system having a waiting queue for use in a surplus area of the physical address area that does not correspond to the logical address area.
  • the memory manager comprises: the physical address area, the logical address (10) The flash memory system according to (10), wherein the memory area and the queue are handled for each block divided according to the minimum erase unit of the flash memory.
  • the memory manager When writing data to the flash memory, the memory manager writes new data to a predetermined block in the queue,
  • the flash memory system according to any one of the above (10) to (13), in which this is set as the logical block address of the write destination and the block of the write destination is set as a queue.
  • the memory manager associates a physical address area and a logical address area with a logical block address and a physical block address that are divided according to a minimum erase unit
  • the memory manager transfers data of an arbitrary block in the physical address area corresponding to the logical address area to a queue processor.
  • the block address of the queue in which the data is written is the logical block address of any block in the physical address area
  • the queue is controlled by a pointer.
  • the redundant portion of the minimum storage unit includes at least data indicating whether the block to which the minimum storage unit belongs is good or bad, whether or not there is a bad sector, and whether or not the block is used. Flash memory system according to any of (21) to (21).
  • FIG. 1 is a block diagram showing a basic configuration of a flash memory system of the present invention.
  • FIG. 2 is a conceptual diagram showing a configuration example of an address conversion table.
  • FIG. 3 is a conceptual diagram showing a block configuration in a flash memory.
  • FIG. 4 is a block diagram showing a configuration example of data relay means preferably provided in the memory manager.
  • FIG. 5 is a conceptual diagram showing a configuration example of a block status table.
  • FIG. 6 is a block diagram showing a basic configuration of a flash memory system according to the present invention, in which a surplus area is provided in a flash memory.
  • FIG. 7 is a conceptual diagram in which a logical address is allocated to a physical address area in the flash memory, and shows a physical address area corresponding to the logical address area.
  • FIG. 8 is a conceptual diagram showing a state where surplus areas are dispersedly arranged in a physical address area.
  • FIG. 9 is a diagram conceptually showing a state of a queue.
  • FIG. 10 is a conceptual diagram showing a state of a real data storage unit and a redundant data storage unit in a flash memory.
  • FIG. 11 is a conceptual diagram showing an operation at the time of resetting and showing a state of forming a block status table.
  • FIG. 12 is a conceptual diagram showing the operation at the time of reset, and showing a state where temporary numbering has been performed on the flash memory.
  • FIG. 13 is a block diagram showing an example in which the flash memory system is applied to a memory card.
  • the flash memory system of the present invention includes a bus-in interface 2 connectable to a host computer 1 and a flash memory interface 4 for writing / reading to / from a flash memory 5.
  • a memory manager 3 having data relay means for relaying data sent from the host computer to the flash memory and data sent from the flash memory to the host computer.
  • the manager 3 has an address conversion table for converting a logical address given from the host computer 1 to the flash memory 5 and a physical address which is a real address of the flash memory 5. Specified corresponding to the minimum erase unit of flash memory 5 ing.
  • the memory manager 3 manages the transfer of data between the host computer 1 and the flash memory 5. That is, the transfer rate of data sent from the host computer 1 or the data sent from the flash memory 5 is adjusted, and the logical address data for reading / writing specified by the host computer 1 is physically transferred. Or to address data.
  • the address conversion table 31 associates a logical address specified on the host computer 1 side with a physical address existing on the flash memory 5 side.
  • Ad n
  • the two can be associated with each other while avoiding a defective portion or the like generated in the flash memory. Moreover, without having to read data such as a bad sector or a bad bit from the flash memory, an appropriate association is made in advance, and the necessary physical address is calculated immediately by referring to this when accessing the memory. Flash memory can be accessed at high speed.
  • the address conversion table 31 is provided in the memory manager 3. Also, it is usually formed on a storage medium that can be referred to from the control unit of the memory manager 3 and the like. Then, the memory manager 3 converts the logical address given from the host computer 1 to the flash memory 5 into a physical address which is a real address of the flash memory 5 by using the address conversion table 31 or vice versa. Conversion.
  • the host computer 1 includes a microprocessor and peripheral elements of the microprocessor, a keyboard, a communication port, an expansion bus, an input / output unit such as a display, and can be connected to a storage medium such as a hard disk. As long as it can perform the required operation (regardless of general use or specific use), its form and form are not limited.
  • the bus interface 2 includes a bus for connecting to the host computer 1, for example, a bus for external connection such as SCSI and IDE, and a PC card interface such as PCMCIA conforming to these buses.
  • a bus for external connection such as SCSI and IDE
  • a PC card interface such as PCMCIA conforming to these buses.
  • the bus-in interface 2 can be appropriately connected to the host computer in accordance with these standards and specifications.
  • this bus-in interface 2 can treat the flash memory 5 as equivalent to a hard disk when viewed from the host computer 1 side. 1 Q
  • the flash memory 5 is a non-volatile memory, and can be regarded as a type of EEPROM. That is, data can be read at any time, but data can be written only once after erasing data, and data cannot be overwritten. Therefore, an operation for erasing stored data always occurs before a data write operation is performed (except for an initial state). When erasing data, in a flash memory, a predetermined storage area is erased collectively due to its structure.
  • the erasable minimum area is usually equal to 8 or 16 of the minimum storage unit (one sector and ten redundant portions), that is, 4 k Bytes or 8 kbytes (excluding redundant parts).
  • the flash memory 5 usually constitutes a memory array in which a plurality of flash memories IC are collected in order to secure a predetermined storage capacity.
  • it is connected to a flash memory 5 and a flash memory interface 4 for performing a read / write operation to the flash memory 5, such as a flash memory sequencer or the like, for automatically controlling the read / write operation of the flash memory and optimizing the read / write operation. Control element, etc., is connected.
  • FIG. 2 is a conceptual diagram showing a configuration example of the address conversion table 31.
  • the address conversion table 31 is formed corresponding to the minimum erase unit (minimum erase block) 5a in the flash memory 5 as shown in FIG.
  • FIG. 3 conceptually shows the block configuration of the flash memory 5, and the numerical value with # in the upper part of the figure indicates the physical block address specified for each minimum erase unit. .
  • the minimum erasing unit is a storage area that is erased at a time in the flash memory 5.
  • the flash memory 5 is different from the minimum storage unit and the minimum erasure unit, and erases data for each storage area of a predetermined size. This is erased at once
  • the area is called the minimum erasure unit, and the erasing operation of the flash memory must be performed for each minimum erasure unit, which is a block composed of multiple minimum storage areas.
  • the portion surrounded by a solid line in the minimum erasure unit 5a is the minimum storage unit, and the smaller one of the portions partitioned by the broken line represents the redundant portion.
  • the address conversion table 31 is formed corresponding to the minimum storage unit.
  • the address translation table 31 places the logical block address in the upper part of one block and the physical block address (the number is prefixed with # in the figure) in the lower part.
  • a specific logical block address can be associated with an arbitrary physical block address, usually in a one-to-one relationship. That is, the corresponding logical block address and physical block are arranged in a predetermined block. Then, the maximum logical block address Nh in the accessible memory area opened to the host computer 1 side and the physical block address of the corresponding size are defined.
  • the logical block address is an address number designated when the host computer 1 accesses a storage unit in a specific memory, and this is assigned to each block having a size corresponding to the minimum erase unit 5a. Means the top address divided.
  • the physical block address is the actual address number on the flash memory, and is the start address of the minimum erase unit 5a.
  • the meaning of associating both the logical block address and the physical block address with the address translation table is as follows. Since the logical block address and the physical block address usually correspond one-to-one, it may be possible to use the logical block address as it is as the physical block address. However, logic professionals i
  • a gap may occur between the block address and the physical block address. This is done to prevent the two management systems from being different, or from a bad block that can no longer be used due to a failure, or to prevent access from being concentrated on a specific memory area. This is the case for processing.
  • FIG. 2 shows a state where the logical blocks are allocated in this manner.
  • # 0 0 0 3 and the physical block address of # 0 0 2 0 are eliminated as bad blocks, and as a result, # 0 0 4 becomes 0 0 3 and # 0 0 2 1 becomes 0 0
  • the maximum value of the logical block address Nh requires two blocks, that is, # Nh + 2, which requires an extra physical block address.
  • the physical block addresses are sequentially assigned to the logical block addresses, but may be assigned to any logical block addresses.
  • the storage area that can be specified by the logical block address that is, the logical address area
  • the physical address area that is the actual memory area and the maximum area of the physical address may have a discrepancy. Is set so that the physical address area is larger than the logical address area. That is, the logical address area is set to a smaller fraction that can compensate for a fault that has occurred in the physical address area with a storage area in the physical address area. In other words, there is a surplus area in the physical address area that is not included in the logical address area.
  • the host computer 1 has transmitted address data for reading (hereinafter referred to as a logical address).
  • the logical address is LB As
  • k is the number of sectors existing in one block, and is usually 8 or 16.
  • M is the remainder when divided by k. That is, this is an offset value indicating one sector position in the logical block address.
  • the logical block address LBA obtained by the above equation is converted to a physical block address PBA by referring to the corresponding portion of the address conversion table.
  • a physical address PA which is an actual address on the flash memory is obtained.
  • control unit of the memory manager 3 specifies the physical address PA obtained as described above and performs a predetermined read operation, thereafter, the data reading and transfer mechanism in the data relay unit 3 is automatically performed. Reads and transfers data. After making the above settings, the control unit can calculate the next address to be read during data transfer. Thus, apparently little time is required for address translation. Thus, high-speed operation is possible by performing address conversion before starting the write / read operation.
  • the memory manager 3 sends data sent from the host computer 1 via the bus interface 2 to the flash memory 5 via the flash memory interface 4 and vice versa. It also has a function of transmitting data transmitted from the internal computer via the internal bus to the host computer 1 via the bus interface 2.
  • Means 3 Have a That is, two buffers 3637 are provided which can store data of a predetermined size, and when one buffer A (B) is used as the data writing side (solid line side), the other buffer B (A) is used. Data read side (broken line side). Then, the buffer control unit 35 fills one buffer A (B) on the data write side with data of a predetermined length, and already reads data from the other buffer B (A) on the data read side. When it is detected that the data has been read, the two are exchanged, and one buffer A (B) filled with data is used as a data read side, and the other buffer B (A) from which data has already been read is used as data. Write side.
  • the data transfer speed between the host computer and the flash memory differs. Even if you do, you can hand over the data at different speeds and timings. In this case, the side with the higher data transmission / reception speed always enters the standby state, so the overall data transmission / reception speed is governed by the lower data transmission / reception speed. Note that the data in the buffer is emptied after being read out, as in the FIFO memory, but may be overwritten if the state filled with new data can be detected.
  • the length of data that can be written to and read from the two buffers is not particularly limited, but is preferably 5 12 bytes, which is data for one sector, or a length obtained by adding redundant data to this. is there.
  • the buffer control unit 35 be constituted by a hardware as a combination of gate circuits. The operating speed is dramatically improved by using only hardware.
  • the flash memory system is a flash memory system which shows the status of each physical block on the flash memory, and at least a block status table having data indicating the quality of the physical block, the presence or absence of a bad sector, and the use or non-use. It may have 32.
  • the block status table 32 By having the block status table 32, the state of each physical block can be quickly grasped on the table, and a queue to be described later can be formed quickly. Appropriate memory management can be performed before or independently of writing.
  • the block status table 32 is configured, for example, as shown in FIG.
  • the physical block address (indicated by prefixing the number in the figure with #) is placed at the top of one block, and the status value is placed at the bottom of one block.
  • a status value corresponding to the maximum physical block address #Nmax in the accessible memory area in the flash memory 5 is defined.
  • the status value is a value indicating the state of the physical block address. For example, FF is written (or erased) as an initial state, and thereafter, the value changes according to the state of the block address.
  • the data that can be represented by the status value are at least the quality of the block, the presence or absence of the bad sector, and the use of the block. In addition to this, it is also possible to show the data on the degree of pass / fail of the block and the security.
  • the data display form is not particularly limited, and may be expressed as a specific data length, for example, a one-byte code, or expressed by giving weight to each bit of the specific data length. You may do it. 1 C
  • the block status table 32 By having the block status table 32, the state of each logical block can be quickly grasped. Therefore, when constructing the address translation table 31, the block status table is referred to, and a logical block address is assigned to a physical book address by excluding a Queue element and the like, which will be described later. Blocks that are defective or bad can be detected quickly, and an address translation table excluding these blocks can be constructed. Unused blocks can also be easily grasped from the block status table 32, and work such as replacement with a defective block can be performed very easily and quickly. In other words, the status of each sector or block can be ascertained without accessing the flash memory, and the processing speed is significantly improved.
  • the memory manager 3 further sets the size of the logical address area Ln accessible from the host computer 1 to the flash memory 5 to the physical address area P which is the actual address of the flash memory.
  • the surplus area 5a which is set smaller than the size of n and does not correspond to the logical address area Ln of the physical address area Pn, has a waiting queue in use.
  • the size of the physical address area which is the actual address of the flash memory, is larger than the size of the logical address area when accessing the flash memory from the host computer, and the extra area that does not correspond to the logical address area of the physical address area.
  • a queue in the area for example, when a defective part occurs in the physical address area corresponding to the logical address area, it can be replaced with the queue part.
  • new write data is written to the queue once, and if necessary, conventional data is replenished from the portion to be written, and this is exchanged with the portion to be written. Can be performed very efficiently.
  • surplus area is not simply used arbitrarily but is managed as a queue. By doing so, appropriate memory management can be performed without concentrating access to a specific memory area or performing complicated control.
  • the memory manager 3 sets the size Ln of the logical address area accessible to the flash memory from the host computer 1 to be smaller than the size Pn of the physical address area which is the actual address of the flash memory. In addition, a surplus area that does not correspond to the logical address area of the physical address area has a queue in a use standby state.
  • the physical address area that is the entire storage area in the flash memory 5 is set larger than the logical address area accessible from the host computer 1 side.
  • the logical address area opened to the host computer is smaller than the physical address area which is the entire storage area of the flash memory 5 by a predetermined area including the queue.
  • a queue is usually formed sequentially from the youngest address in the surplus area (except for a defective part).
  • the queue, the physical address, and the logical address are preferably handled for each minimum erasing unit (block) of the flash memory 5.
  • This minimum erasing unit is the minimum unit erased on the flash memory 5 at one time.
  • the flash memory is erased not for each minimum storage unit but for each storage area where these are aggregated to a certain size. Therefore, an efficient memory control system can be obtained by handling the queue, physical address, and logical address for each minimum storage unit, which is the minimum unit of the erase area.
  • Physical addresses generally correspond to logical addresses on a one-to-one basis, and these correspondences are preferably defined for each block. That is, both are handled for each block, and the start address is defined as a physical block address and a logical block address. Then, a physical address and a logical address, which are individual storage units, are defined as offset values from now on. Each block is converted from a logical block address to a physical block address or from a physical block address to a logical block address using an address conversion table or the like.
  • the queue exists in an area other than the physical address area corresponding to the logical address area in the entire physical address area, but all of this area must be a queue. There is no. In the surplus area, there may be blocks that are discarded forever as bad blocks and are not used as a queue. Also, this surplus area is preferably 1 to 5%, more preferably about 2 to 3% of the entire physical address area.
  • FIG. 7 is a block diagram conceptually showing a memory space in the flash memory 5.
  • the numbers and symbols described in each block in the figure represent the physical block address.
  • the physical block area opened to the host computer 1 side corresponds to the logical block address, and has a range up to the maximum value Nh.
  • a surplus area 5a (indicated by oblique lines in the figure), there is a range from the address Nh + 1 obtained by adding 1 to the physical block address corresponding to the maximum value Nh of the logical block address to the maximum value Nmax of the physical block address. . It has a Queue in this area.
  • This Queue is usually used as a surplus area as described above during initialization. It is selected from the defined area. Therefore, each element of the queue is in the erased state (initial state), and when this is used, writing can be performed as it is. When a new queue is added, it is added after it is deleted or after it is confirmed that it is in the deleted state.
  • the surplus area 5a does not need to be continuously located at the end of the physical address area as shown in FIG. 7, for example, as shown in FIG. It may be scattered like an island (the shaded area in the figure). As a result of dispersing the surplus area, in the illustrated example, the maximum value Nh of the logical address area and the maximum value Nmax of the physical address area are at the same position.
  • the state in which the surplus area (queue) is dispersed is usually formed by repeating a replacement operation with a bad block described later and a queue during a write operation.
  • the numbers described in the blocks in FIG. 8 represent the logical block addresses, unlike the case of FIG. As described above, since the surplus area 5a having the queue does not correspond to the logical block address, it is not recognized from the host computer 1 side.
  • Queue 50 is preferably controlled by a pointer.
  • the pointer is controlled so that the number of blocks (hereinafter referred to as elements) constituting a queue 50 is within a predetermined range as shown in FIG. 9, for example.
  • the order of the element blocks is attached to the upper part of the block, but the take-out point OP (2 in the illustrated example) and the take-in point IP (n-2) are placed at predetermined positions in this order. Exists. Then, the pointer moves each time the Queue 50 is taken out and taken up. That is,
  • the flash memory system according to the present invention preferably has a logical block address and a physical block address. 2 Q
  • the logical address area accessible from the host computer is set to be smaller than the physical address area which is the actual memory area and the maximum physical address area. . That is, the queue is set small so that the queue can be set.
  • a physical block address that does not correspond to a logical block address can be an element of a queue.
  • the logical block address and the physical block address are related by the address conversion table 31, the correspondence between the two does not necessarily have to be in the order of the smallest address number, and even if any addresses correspond to each other. good. In other words, it is only necessary that the two block addresses forming the predetermined area have a one-to-one relationship. Therefore, it is also possible to use a function or the like without using an address conversion table.
  • the logical block address When associating a logical block address with a physical block address again due to a reset operation of the flash memory system or the like, the logical block address is normally sequentially associated with a smaller address number. In this case, it is preferable to change the start position by arbitrarily selecting the physical block address number at which the association is to be started with respect to the smallest logical block address. By doing so, the physical block address number corresponding to a specific logical block address number fluctuates without being fixed.For example, access concentrates on a small address number, or access frequently occurs in a certain application software. Even if there is an area to be accessed, the actual address of the corresponding flash memory changes, so that the locations actually accessed can be dispersed.
  • the method for specifying an arbitrary start position is not particularly limited, but may be determined by using a random number obtained by a well-known random number generation method, a function, or another mathematical method. ⁇
  • an arbitrary block address among the physical block addresses corresponding to the logical block address may be replaced with the block in the queue by a reset operation of the flash memory system or the like.
  • the frequency of memory block replacement may be performed each time a reset or the like is performed. If the frequency of resets or the like is large, the memory block may be counted a predetermined number of times, or may be performed every predetermined number of times (frequency) using a random number or the like. I just need.
  • the flash memory system of the present invention is used together with a flash memory, it is also possible that the flash memory system exists independently of the flash memory as an apparatus having the above-described configuration.
  • an IC (integrated circuit) chip in which the bus manager 2, the flash memory interface 4, the address conversion table, and the memory manager 3 having the data relay means are integrated may be used.
  • an IC chip By using an IC chip, a small memory system can be easily obtained when combined with a flash memory.
  • a nonvolatile memory card that does not require a power supply can be easily manufactured. can get.
  • control unit of the memory manager 3 evaluates each sector in the flash memory 5 (writing / reading can be performed normally, ⁇
  • the physical block address # 00003 of a flash memory having a real data storage unit 51 of a predetermined size and a redundant storage unit 52 is abnormal.
  • the control unit evaluates in the physical block address order, and when there is no abnormality at a predetermined position of the status table forming area on the S-RAM, an initial value (in the illustrated example, "FF")) (write), and if an abnormality is detected, a status value ("0F" in the example shown) indicating such content is written. In this way, the status table 32 is created.
  • the control unit performs temporary numbering corresponding to the logical block address to the flash memory 5, for example, as shown in FIG.
  • the bad block is excluded from the numbering targets.
  • the numbered numerical value (lower row in the illustrated example) and the status value (upper row in the illustrated example) are written to the redundant section 52 of the flash memory.
  • control unit grasps the size (number of chips) of the flash memory and calculates the total number of blocks Nmax, which is the minimum erase unit.
  • the control unit reads the redundant portion of each block (physical block) in the flash memory 5.
  • there is a redundant portion in each minimum storage unit (1 byte + redundant portion) in the block but the same data is written in all the redundant portions in the same block. Therefore, it is sufficient to read the redundant portion in one minimum storage unit per block. Note that multiple redundant parts By reading and collating (usually the same content), the minimum storage unit and the reliability of the block can also be evaluated.
  • the read data is as follows.
  • the address conversion table 31 and the block status table 32 are formed in the address conversion table formation area and the status table formation area on the S-RAM (when the power is turned on). At reset, the data on the S-RAM is lost or unreliable). As a result, the address conversion table on the S-RAM only needs to be accessed until the reset is performed again thereafter, and there is no need to read the redundant portion of the flash memory. In this case, the actual address conversion table 31 and the block status table 32 use, for example, the start address of a specific area on the S-RAM as a reference point (considered as "0000").
  • a block whose logical block address is "FFFF”, that is, an erase pattern is found, it is regarded as an element of a queue, and this is regarded as an element of a queue.
  • Queue table 50 It also checks whether all data in this queue element is "FFFF", that is, whether it is an erase pattern.
  • the actual queue table 50, the address translation table 31 and the block status table 32 use, for example, the starting address of a specific area on the S-RAM as a reference point (assuming "0000" etc.) From this reference point, the data required for each corresponding queue number, logical block address value, or physical block address value (physical block address value, physical block address value, Status value).
  • FIG. 13 is a block diagram showing one embodiment of a flash memory system.
  • the flash memory system in the illustrated example has a PC card bus 2a connected to the host computer 1, and a buffer A36 and a buffer B37 in a buffer control unit 35 connected to the PC card bus 2a (this In the example, they are displayed as one, but each may be present separately.)
  • a PCMCIA block 38 and an ATA block 39 are connected to the PC card bus 2a.
  • the buffer A36 and the buffer B37 in the buffer control unit 35 are connected to a flash sequencer 41 as a flash memory interface 4 and an ECC control unit 42 (in this example, they are integrally displayed. However, each may exist separately.)
  • a memory array of the flash memory 5 is connected to the flash sequencer 41 and the like.
  • a control unit 34 is connected to the buffer control unit 35, PCMC IA block 38, ATA block 39, and flash sequencer 41, and controls them comprehensively. This control 34 can now be accessed directly . "
  • ROM and RAM are connected to store control algorithms and data required for calculation.
  • An address translation table 31 and a block station table 32 are usually formed on the RAM.
  • the PC card bus 2a is a bus system for connecting a card-like expansion system called a PC card (for example, a SCSI interface unit, a MODEM unit, a memory card, etc.).
  • a PC card for example, a SCSI interface unit, a MODEM unit, a memory card, etc.
  • the PCMCIA standard is used.
  • the predetermined force of the PC card can be connected via the throttle.
  • Such a PC card is particularly preferably used for portable devices such as laptop computers and systems for transmitting and receiving information from these devices.
  • the buffer control unit 35, the buffer A 36, and the buffer B 37 have the same configuration as that of the above-mentioned overnight connection unit 3a, and the description is omitted.
  • the PCMCIA block 38 functions as a PC input bus interface for properly connecting to the PC card bus 2a.
  • the control system (not shown) of the PC input bus 2a stores data necessary for recognizing that the PC card is connected, procedures necessary for recognizing the PC card, and the like. Necessary operations can be performed.
  • the AT A block 39 task register contains the CHS address, which is the data of the cylinder, head, and sector, provided by the host computer, conversely gives this to the host computer, and the host logic. It has data for conversion to address.
  • the flash memory 5 constitutes a memory array in which a plurality of memory elements are gathered, so that a necessary storage capacity can be secured.
  • the other configuration is the same as the above configuration example, and the same components are denoted by the same reference numerals and description thereof will be omitted.
  • the flash memory system in the illustrated example is stored in a PC card, and can be handled in the same manner as a hard disk of the SCS I specification.
  • the control unit 34 receives an address data from the host computer 1 via the buffer A36 (or B37) or the like. At this time, if the address data sent from the host computer is in the LBA format, conversion to a logical block address and an offset value is performed by the same operation using the equation (I) as described above.
  • the logical block address LB A is
  • the remainder m is an offset value indicating the position of the sector 1 in the block.
  • Such a conversion function may be independently provided as a block having a dedicated function for converting CHS data into LBA data, such as an AT block.
  • C cylinder number
  • H head number
  • S sector number
  • HpC head cylinder number
  • SpH sector 1 / head.
  • the obtained logical block address is stored in the physical block by the data conversion table 31. ⁇
  • the address is converted to a physical address, and an offset value is added to the physical address to obtain a physical address.
  • the read operation normally, the read from the flash memory 5 and the transfer to the host computer 1 are automatically performed. That is, the flash memory interface 4, for example, the flash sequencer 41, automatically sets the address of the memory area to be read by the control section 34, and automatically reads the data in the memory area.
  • the buffer controller 35 sends out the transferred data one after another according to the transfer speeds of the flash memory 5 and the host computer 1.
  • the ATA block 39 releases the busy state when instructed to transfer data from the control unit 34, and notifies the host computer 1 of the start of data transfer. In this way, after performing the address conversion work, the control unit 34 is released from the operation for the data transfer by performing a predetermined setting operation, and performs the next address conversion work in advance. It can be carried out. In addition, since the data conversion operation can be performed at a high speed as described above, it is usually completed during data transfer. This significantly improves the data transfer speed.
  • the operation up to address conversion is the same as the operation at the time of reading.
  • address conversion is performed, and a write operation to a predetermined address on the flash memory 5 is performed.
  • the flash memory 5 cannot be overwritten as described above. Therefore, the write operation is accompanied by the erase operation in block units. In this case, the data in the block to be written can be read once, erased, and new data can be added. However, this method involves a read operation before writing, so that the access speed is reduced.
  • a surplus area not included in the logical address area in the physical address area is It is good to utilize. That is, a new data is once written in an arbitrary block in the surplus area. Then, the block address having the original write address is set as the erase address. Further, the block address having the address to be written on the block status table 32 is rewritten to the address of the block in the surplus area where the new data has been written. As a result, the block in the surplus area becomes a new block address having the data after writing.
  • a queue in the surplus area it is preferable to utilize a queue in the surplus area. That is, an element is taken out from the head of the queue, a new data is temporarily written to a predetermined position (specified by an offset) in this block, and the block to be replaced is set. Then, the logical block address of the block to which the data is to be originally written is set as the scheduled erase address.
  • the block address @ status value of the block to be erased is written in the redundant part of the block to be replaced.
  • the logical block of the address translation table may be rewritten.
  • the block taken out of the queue becomes a new logical block address having the data after writing.
  • the remaining data (data not to be rewritten) of the block to be erased is transferred into the block to be replaced, and the block to be erased is erased.
  • the read and erase operations associated with the write operation are performed after all data transfers have been performed, and the host computer apparently completes the reception of the write / read operation early. By doing so, the operation speed during writing is improved.
  • the operation until all data is rewritten is stored in the history storage table and the like, and the write operation using the queue is performed smoothly.
  • a queue corresponding to the minimum erasing unit, the address translation table 31 and the block status table 32 are provided, and by controlling the flash memory 5, the read Z write operation is performed. Can be performed extremely efficiently, and the overall processing speed is significantly improved. Defective parts and ECC of the flash memory 5 are appropriately managed by the block status table 32, and bad blocks can be replaced by a queue, so that stable data can be maintained for a long time. It is possible. Industrial applicability
  • the flash memory system of the present invention is not limited to the above configuration example, and various applications are possible.
  • the scope of use is applicable to fields handling various data such as multimedia systems such as portable communication devices and digital cameras, in addition to computer systems such as laptop computers.
  • the invention's effect is not limited to the above configuration example, and various applications are possible.
  • the scope of use is applicable to fields handling various data such as multimedia systems such as portable communication devices and digital cameras, in addition to computer systems such as laptop computers.
  • the delay of the write Z read time is small, the write operation can be performed relatively easily, the operation can be performed at high speed, and the number of bad sectors can be reduced. It is possible to realize a flash memory system that can appropriately manage the flash memory.

Description

,
明 細 書 フラッシュメモリシステム 技術分野
本発明は不揮発性メモリであるフラッシュメモリに関し、 より詳しくはフラッ シュメモリを適切に管理するための管理システムを備えたフラッシュメモリシス テムに関する。 背景技術
コンピュータシステムに用いられている記憶媒体として、 ハードディスク、 フ 口ッピ一ディスク等の磁気記録媒体が従来より使用されている。 なかでも大容量 でしかも高速動作が可能なハードディスクは、 大量のデータを蓄積することがで きることからシステムの中心的な記憶媒体として位置づけられている。
しかし、 ハードディスクは製造工程が複雑で、 小型 ·軽量化や低コスト化を図 ることが困難であり、 構造物を動かすために比較的大きな消費電力を必要とし、 特に携帯機器等へ応用する場合に問題となる。
ハードディスク以外の記憶媒体として、 不揮発性の記憶素子であるフラッシュ メモリが知られている。 フラッシュメモリは記憶を維持するための電源が不要で あるが、 その構造上、 アクセス回数にして 1 0 1 ΰ程度の有限の物理的寿命を有す も。 このため、 フラッシュメモリを長期にわたって比較的安全に、 安定して使用 するためには、 寿命が尽きた記憶要素や不良が生じた箇所を検出し、 これらを回 避してデータを保存する必要がある。 さらに、 フラッシュメモリの場合、 すでに デ一夕が記憶されている箇所に新たなデータを上書きすることができない。 従つ て、 新たなデ一夕を記憶しょうとする場合、 一旦記憶されている内容を消去した n
後にデ一夕を書き込むこととなる。 ところが、 消去可能な単位は個々の記憶要素
(=ビット) 単位ではなく、 例えば、 4 kバイトや 8 kバイトといったブロック 単位で行われる。 このため、 通常、 書き換えられるデータ以外の部分を消去プロ ックから一旦待避させた後、 これを消去し、 再度新たなデ一夕を加えて書き込む といつた操作が必要となり、 書き込み処理動作が非常に複雑なものとなってしま ラ。
特開平 2— 2 9 2 7 9 8号公報には、 フラッシュメモリへの書き込み/読み出 し速度の向上や、 不良セル等の管理を目的としたフラッシュ E E P R O Mシステ ムが記載されている。 ここに記載されているフラッシュ E E P R〇 Mシステムは、 キャッシュメモリの採用によりアクセスタイムの向上を図ろうとしている。 しか しながら、 キャッシュメモリに依存したアクセスタイムの短縮には自ずと限界が あり、 フラッシュメモリへの書き込み/読み出し速度のより一層の向上を図るた めには、 フラッシュメモリシステム全体での動作速度を向上させる必要がある。 また、 前記公報では不良セル等の管理のため、 冗長部分に E C C等の情報を持 たせ、 この冗長部分の情報のみで不良セル等の管理を行っている。 しかし、 冗長 部分のみで不良セル等の管理を行っているため、 この冗長部分の記憶容量を大き くしなければならず、 実データを記憶する領域を圧迫してしまう。 さらに、 この システムでは冗長部分のみで不良セルなどの管理を行っているため、 実データの 読み出しに先立って、 前記冗長デ一夕を読み出し、 メモリ内に記憶されているデ —夕の適否やその修復等を行ったりするために、 アクセス時間を大幅に遅らせる 要因となっていた。 発明の開示
本発明の目的は、 書き込み 読み出し時間の遅れが少なく、 書き込み動作を比 較的簡単に行うことができ、 高速で動作が可能で、 不良セクタ一等の管理を適正 。
に行うことの可能なフラッシュメモリシステムを実現することである。
上記目的は、 以下の構成により達成される。
( 1 ) ホス卜コンピュータとフラッシュメモリとのデータの授受を管理する メモリマネージャを有し、
前記メモリマネージャは、 ホストコンピュータからフラッシュメモリに与えら れる論理ァドレスと、 フラッシュメモリの実ァドレスである物理ァドレスとを変 換するためのァドレス変換テーブルを有し、 かっこのアドレス変換テーブルはフ ラッシュメモリの最小消去単位に対応して規定されているフラッシュメモリシス テム。
( 2 ) 前記メモリマネージャと、 ホストコンピュータと接続可能なバスイン タ一フェースと、 フラッシュメモリに書き込み/読み出しを行うためのフラッシ ュメモリインタ一フェースとを有し、
前記メモリマネージャは、 ホストコンピュ一タ側からフラッシュメモリ側に送 出されるデータとフラッシュメモリ側からホストコンピュータ側へ送出されるデ —夕とを中継するデータ中継手段を有する上記 (1 ) のフラッシュメモリシステ ム。
( 3 ) 前記ァドレス変換テーブルは、
ホストコンピュー夕が記憶媒体上の最小記憶単位を指定するときに用いる論理 ァドレスを前記最小消去単位に対応させて分割した論理プロックアドレスと、 前記物理アドレスを前記最小消去単位に対応させて分割した物理ブロックアド レスとを対応させている上記 (1 ) または (2 ) のフラッシュメモリシステム。
( 4 ) 前記論理ァドレスと物理ァドレスとの変換は、
フラッシュメモリへのデータの書き込みノ読み出しを開始する以前に行われる 上記 (1 ) 〜 (3 ) のいずれかのフラッシュメモリシステム。
( 5 ) 前記フラッシュメモリの物理ァドレス領域の大きさは、 論理アドレス領域の大きさよりも大きい上記 (1) 〜 (4) のいずれかのフラ ッシュメモリシステム。
(6) 前記論理アドレス領域と対応する任意の最小消去単位に障害が生じた 場合、 物理ァドレス領域のうち論理ァドレス領域と対応しない部分の最小消去単 位のいずれかと交換する上記 (1) 〜 (5) のいずれかのフラッシュメモリシス テム。
(7) 前記データ中継手段は、 さらにブロックステータステーブルを有し、 このブロックステータステーブルは、 フラッシュメモリ上の前記各物理ブロッ クの状態を示すデー夕であって、
少なくとも、 その良否、 バッドセクタ一の有無および使用の有無を表している デ一夕を有する上記 (1) 〜 (6) のいずれかのフラッシュメモリシステム。
(8) 前記アドレス変換テーブルは、 リセット後にフラッシュメモリの冗長 部分から読み出されたデータにより RAM上に形成される上記 (1) 〜 (7) の いずれかのフラッシュメモリシステム。
(9) 前記ブロックステータステーブルは、 リセット後にフラッシュメモリ の冗長部分から読み出されたデ一夕により RAM上に形成される上記 (7) また は (8) のフラッシュメモリシステム。
(10) ホストコンピュータとフラッシュメモリとのデータの授受を管理す るメモリマネージャを有し、
前記メモリマネージャは、 前記ホストコンピュータからフラッシュメモリをァ クセス可能な論理ァドレス領域の大きさを、 フラッシュメモリの実ァドレスであ る物理ァドレス領域の大きさより小さく設定し、
かつ物理ァドレス領域の論理ァドレス領域と対応しない余剰領域には、 使用待 機状態の待ち行列を有するフラッシュメモリシステム。
(1 1) 前記メモリマネージャは、 前記物理アドレス領域、 前記論理アドレ ス領域および前記待ち行列をフラッシュメモリの最小消去単位に対応して分割さ れたブロック毎に取り扱う上記 (10) のフラッシュメモリシステム。
(12) 前記待ち行列に対応するフラッシュメモリの領域は、 消去後の状態 となっている上記 (10) または (1 1) のフラッシュメモリシステム。
(13) 前記メモリマネージャは、 物理アドレス領域内の任意のブロックに 障害が生じた場合、 前記待ち行列内の任意のブロックと交換する上記 (10) 〜 (12) のいずれかのフラッシュメモリシステム。
(14) 前記メモリマネージャは、 フラッシュメモリへデータを書き込む際 に、 待ち行列内の所定のプロックに新しいデータを書き込み、
これを書き込み予定先の論理ブロックアドレスとし、 書き込み予定先のブロッ クを待ち行列とする上記 (10) 〜 (13) のいずれかのフラッシュメモリシス テム
(15) 前記メモリマネージャは、 書き込み予定先のブロックが更新される データ以外のデータを有する場合、
ホストコンピュータからの所定量のデ一夕の転送が終了した後、
書き込み予定先のブロックから、 新しいデータが書き込まれた待ち行列内の所 定のブロックに従来のデータを転送する上記 (14) のフラッシュメモリシステ ム。
(16) 前記メモリマネージャは、 物理アドレス領域と論理アドレス領域と を最小消去単位に対応して分割された論理プロックアドレスと物理プロックアド レスとで対応させ、
かっこの対応関係の開始位置は所定回数のリセット毎に決められる任意の位置 とする上記 (10) 〜 (15) のいずれかのフラッシュメモリシステム。
(17) 前記メモリマネージャは、 所定回数のリセット毎に、 論理アドレス 領域と対応する物理ァドレス領域内の任意のブロックのデータを待ち行列のプロ ックに書き込み、
かつデータが書き込まれた待ち行列のブロックアドレスを物理ァドレス領域内 の任意のブロックの論理ブロックアドレスとし、
前記物理アドレス領域内の任意のブロックを待ち行列とする上記 (10) 〜 ( 16) のいずれかのフラッシュメモリシステム。
(18) 前記メモリマネージャに加えて、 さらにホストコンピュータと接続 するためのバスィン夕一フェースと、 フラッシュメモリへの読み出し Z書き込み 動作を行うフラッシュメモリインターフェースとを有する上記 (1 0) 〜 (1
7) のいずれかのフラッシュメモリシステム。
(1 9) 前記待ち行列は、 ポインタにより制御される上記 (10) 〜 (1
8) のいずれかのフラッシュメモリシステム。
(20) 前記最小消去単位は、 最小記憶単位の 8または 16個分に相当する 上記 (1) 〜 (19) のいずれかのフラッシュメモリシステム。
(21) 前記最小記憶単位は、 1セクタ一分のデータ長に冗長分のデータ長 を加えた大きさである上記 (1) 〜 (20) のいずれかのフラッシュメモリシス テム。
(22) 前記最小記憶単位の冗長部分には、 少なくとも、 その最小記憶単位 の属するブロックの良否、 バッドセクタ一の有無およびそのブロックの使用の有 無を表しているデ一夕を有する上記 (1) 〜 (21) のいずれかのフラッシュメ モリシステム。
(23) 前記冗長部分は、 1つのブロック中では同じデ一夕が記憶されてい る上記 (1) 〜 (22) のいずれかのフラッシュメモリシステム。
(24) 前記データ中継手段は、
さらに所定長のデータを一時記憶する 2つのバッファを有し、 ホストコンピュ —夕側あるいはフラッシュメモリ側から送出されたデ一夕をこの 2つのバッファ „
に交互に蓄えると共に、 データが満たされたバッファからデータをフラッシュメ モリ側またはホストコンピュータ側に交互に送出する上記 (1 ) 〜 (2 3 ) のい ずれかのフラッシュメモリシステム。
( 2 5 ) I Cチップである上記 (1 ) 〜 (2 4 ) のいずれかのフラッシュメ モリシステム。
( 2 6 ) カード形状の外部記憶システムである上記 (1 ) 〜 (2 5 ) のいず れかのフラッシュメモリシステム。 図面の簡単な説明
第 1図は、 本発明のフラッシュメモリシステムの基本構成を示したブロック図で ある。
第 2図は、 アドレス変換テーブルの一構成例を示す概念図である。
第 3図は、 フラッシュメモリ内のプロック構成を示す概念図である。
第 4図は、 メモリマネージャ内に好ましく有するデータ中継手段の構成例を示し たブロック図である。
第 5図は、 ブロックステータステーブルの構成例を示す概念図である。
第 6図は、 本発明のフラッシュメモリシステムの基本構成を示したブロック図で、 フラッシュメモリ内に余剰領域を設けた様子を示した図である。
第 7図は、 フラッシュメモリ内の物理ァドレス領域に対して論理ァドレスを配し た概念図であり、 論理ァドレス領域に対応する物理ァドレス領域を示している。 第 8図は、 余剰領域が物理アドレス領域中に分散して配置されている状態を示し た概念図である。
第 9図は、 待ち行列 (Queue) の様子を概念的に示した図である。
第 1 0図は、 フラッシュメモリ内の実データ記憶部と冗長データ記憶部の様子を 示した概念図である。 第 1 1図は、 リセット時における動作であって、 ブロックステータステーブルを 形成していく様子を示した概念図である。
第 1 2図は、 リセット時における動作であって、 フラッシュメモリに仮のナンパ —リングを行った状態を示した概念図である。
第 1 3図は、 フラッシュメモリシステムをメモリカードに応用した例を示すプロ ック構成図である。 発明を実施するための最良の形態
本発明のフラッシュメモリシステムは、 例えば図 1に示すように、 ホストコン ピュー夕 1と接続可能なバスイン夕一フェース 2と、 フラッシュメモリ 5に書き 込み/読み出しを行うためのフラッシュメモリインタ一フェース 4と、 前記ホス トコンピュー夕側からフラッシュメモリ側に送出されるデータとフラッシュメモ リ側からホストコンピュータ側へ送出されるデ一夕とを中継するデータ中継手段 とを有するメモリマネージャ 3を有し、 前記メモリマネージャ 3は、 ホストコン ピュ一夕 1からフラッシュメモリ 5に与えられる論理アドレスと、 フラッシュメ モリ 5の実アドレスである物理ァドレスとを変換するためのァドレス変換テープ ルを有し、 かっこのアドレス変換テーブルはフラッシュメモリ 5の最小消去単位 に対応して規定されている。
メモリマネージャ 3は、 ホストコンピュータ 1とフラッシュメモリ 5とのデ一 夕の授受を管理する。 すなわち、 ホストコンピュータ 1から送出されてくるデー 夕や、 フラッシュメモリ 5から送出されてくるデータの転送速度を調整したり、 ホストコンピュータ 1から指定される読み出し/書き込みのための論理アドレス デー夕を物理アドレスデータに変換したりする。
ァドレス変換テーブル 3 1はホストコンピュータ 1側で指定される論理ァドレ スと、 フラッシュメモリ 5側で存在している物理アドレスとを関係付ける。 アド n
レス変換テ一ブル 3 1を介して、 論理アドレスと物理アドレスとを関係付けるこ とにより、 フラッシュメモリ内に生じた不良個所等を避けて両者を関係付けるこ とができる。 しかも、 わざわざフラッシュメモリから不良セクタ一や不良ビット 等のデータを読み出すことなく、 事前に適正な関係付を行い、 これをメモリにァ クセスする際に参照して即座に必要な物理アドレスを計算し、 フラッシュメモリ を高速にアクセスすることができる。
アドレス変換テーブル 3 1は、 メモリマネージャ 3内に設けられる。 また、 通 常、 このメモリマネージャ 3の制御部等から参照可能な記憶媒体上に形成されて いる。 そして、 メモリマネージャ 3は、 このアドレス変換テーブル 3 1を用いて、 ホストコンピュータ 1からフラッシュメモリ 5に与えられる論理アドレスを、 フ ラッシュメモリ 5の実アドレスである物理アドレスに変換したり、 その逆の変換 を行ったりする。
ホストコンピュータ 1は、 マイクロプロセッサおよびこのマイクロプロセッサ の周辺素子やキーボード、 通信ポート、 拡張バス、 ディスプレイ等の入出力手段 を備え、 ハードディスク等の記憶媒体と接続可能であって、 コンピュータ (パソ コン) として必要な動作 (一般用途、 特定用途を問わない) をなし得るものであ ればその態様、 形態は問わない。
バスインターフエ一ス 2は、 ホストコンピュータ 1と接続するためのバス、 例 えば S C S I、 I D E等の外部接続用バスや、 これらのバスに準拠した P C M C I A等の P Cカードインターフェース等が挙げられる。 なかでも、 好ましい態様 として、 本発明のフラッシュメモリシステムを P Cカードに応用する場合、 P C 力一ドインターフェースを用いることとなる。 従って、 バスイン夕一フェース 2 は、 これらの規格、 仕様に準拠して適切にホストコンピュータと接続しうるもの である。 また、 このバスイン夕一フェース 2は、 ホストコンピュータ 1側から見 た場合、 フラッシュメモリ 5をハードディスクと同等に扱うことができるもので 1 Q
あれば、 既存の〇s、 アプリケーションソフト等をそのまま用いることができる。 フラッシュメモリ 5は不揮発性メモリであって、 E E P R OMの一種と見るこ とができる。 すなわち、 データの読み出しは随時行うことができるが、 データの 書き込みは、 通常デ一夕消去後に 1回のみ行うことができ、 データの上書きはで きない。 従って、 データの書き込み動作を行う前には必ず記憶されているデータ を消去するための動作が伴う (初期状態を除く) 。 データを消去する場合、 フラ ッシュメモリでは、 その構造上所定の記憶領域を一括して消去することとなる。 本発明で好ましく用いられる N AN D型フラッシュメモリにおいては、 通常、 消 去可能な最小領域は、 前記最小記憶単位 (1セクタ一十冗長部分) の 8個または 1 6個分、 つまり、 4 kバイトまたは 8 kバイトである (冗長部分を除く) 。 フラッシュメモリ 5は、 所定の記憶容量を確保するため、 通常、 複数のフラッ シュメモリ I Cが集合したメモリアレイを構成している。 また、 フラッシュメモ リ 5と接続され、 これに書き込み 読み出し動作を行うためのフラッシュメモリ インターフェース 4、 例えば、 フラッシュメモリシーケンサ一等、 フラッシュメ モリの書き込みノ読み出しを自動的に制御し、 適性化するための制御素子等が接 続されている。
次に、 アドレス変換テーブル 3 1の具体的な構成例を説明する。 図 2はァドレ ス変換テーブル 3 1の構成例を示す概念図である。 アドレス変換テーブル 3 1は、 図 3に示すようなフラッシュメモリ 5内の最小消去単位 (最小消去プロック) 5 aと対応して形成されている。 なお、 図 3はフラッシュメモリ 5のブロック構成 を概念的に表したものであって、 図中上段に付してある #の付いた数値は、 最小 消去単位毎に規定される物理プロックアドレスを表す。
最小消去単位は、 フラッシュメモリ 5内で一度に消去される記憶領域である。 フラッシュメモリ 5は、 前述のように最小記憶単位と最小消去単位とが異なり、 所定の大きさの記憶領域毎に消去するようになっている。 この一度に消去される 領域を最小消去単位といい、 フラッシュメモリの消去動作は複数の最小記憶領域 の集合したブロックである最小消去単位毎に行わなければならない。 なお、 最小 消去単位 5 a中の実線で囲まれた部分は最小記憶単位であり、 その中で、 破線で 仕切られている部分のうちの小さい方の領域が冗長部分を表している。
このように、 最小消去単位 5 a毎の消去が必要なフラッシュメモリ 5を、 最小 消去単位 5 a毎に取り扱い、 管理することにより、 書き込み動作 (読み出し動 作) を効率良く行うことができる。 従って、 アドレス変換テーブル 3 1は、 最小 記憶単位と対応して形成されている。
アドレス変換テーブル 3 1は、 図 2に示す例では、 1つのブロック内の上段に 論理ブロックアドレスを、 下段に物理ブロックアドレス (図中番号の頭に #を付 して表示している) を配置し、 ある特定の論理ブロックアドレスに対して、 任意 の物理ブロックアドレスを、 通常、 1対 1で関係付けることができるようになつ ている。 すなわち、 対応する論理ブロックアドレスと物理ブロックとが、 所定の ブロック内に配置される。 そして、 ホストコンピュータ 1側に開放されているァ クセス可能なメモリ領域での最大の論理ブロックアドレス N hと、 これに対応す る大きさの物理ブロックアドレスまで規定される。
ここで論理ブロックァドレスとは、 ホストコンピュータ 1から特定のメモリ内 の記憶単位をアクセスする際に指定されるアドレス番号であって、 これを上記最 小消去単位 5 aに対応した大きさのブロック毎に分割した先頭アドレスをいう。 物理ブロックアドレスとは、 フラッシュメモリ上の実際のアドレス番号であって、 最小消去単位 5 aの先頭アドレスをいう。
論理ブロックアドレスと、 物理ブロックアドレスの両者を、 アドレス変換テ一 ブルで対応させる意味は次の通りである。 論理ブロックアドレスと物理ブロック アドレスとは、 通常 1対 1で対応するため、 論理ブロックアドレスをそのまま物 理ブロックアドレスとして用いることが可能な場合もある。 ところが、 論理プロ i
ックアドレスと物理ブロックアドレス間にズレ (またはオフセット) を生じるこ とがある。 これは、 両者の管理システムが異なることに起因する場合や、 障害が 生じたために使用できなくなった不良プロックに起因するものや、 特定のメモリ 領域にアクセスが集中することを防止するためになされる処理である場合等であ る。
なかでも、 不良ブロックが生じた場合、 その論理ブロックアドレスを除外して 論理ブロックアドレスを割り振る必要がある。 図 2は、 そのようにして論理プロ ックを割り付けた状態を示している。 この例では、 # 0 0 0 3と、 # 0 0 2 0の 物理ブロックアドレスとが不良ブロックとして排除された結果、 # 0 0 0 4が 0 0 0 3となり、 # 0 0 2 1が 0 0 1 9となって、 論理ブロックアドレスの最大値 N hでは、 2ブロック、 つまり # N h + 2だけ余分に物理ブロックアドレスを要 している。 なお、 この例では論理ブロックアドレスに対して物理ブロックァドレ スを順次割り付けているが、 任意の論理ブロックアドレスに割り付けても良い。 このように、 論理ブロックアドレスで指定可能な記憶領域、 つまり論理アドレ ス領域と、 実際のメモリ領域であって物理アドレスの最大領域である物理アドレ ス領域とにはズレを有する場合があり、 好ましくは物理ァドレス領域の方が論理 アドレス領域よりも大きくなるように設定される。 すなわち、 論理アドレス領域 は、 物理アドレス領域中に生じた障害を、 その物理アドレス領域中にある記憶領 域で補填可能な分少な目に設定される。 換言すれば、 物理アドレス領域中には論 理ァドレス領域に含まれない余剰領域が存在する。
次に、 ァドレス変換テーブルを使用してァドレス変換を行う方法について説明 する。
いま、 ホストコンピュータ 1から読み出しのためのアドレスデータ (以下論理 アドレスという) が送出されたとする。 ここで、 論理アドレスを L B As とする と、 論理ブロックアドレス L B Aは、 L B As / k = L B A · · · m ( I )
と表すことができる。 ここで kは 1ブロック内に存在するセクタ一数であり、 通 常、 8または 1 6となる。 また、 mは kで除算したときの余りである。 すなわち、 これは論理ブロックアドレス内のセクタ一位置を表すォフセット値となる。
上記式で求められた論理ブロックアドレス L B Aは、 アドレス変換テ一ブルの 該当個所を参照することで、 物理ブロックアドレス P B Aに変換される。 変換さ れた物理ブロックアドレス P B Aに、 前記オフセット値 mを加えてフラッシュメ モリ上の実際のァドレスである物理ァドレス P Aが得られる。
メモリマネージャ 3の制御部は、 上記のようにして得られた物理ァドレス P A を指定して、 所定の読み出し操作を行うように設定すると、 その後はデータ中継 手段 3内部のデータ読み出し、 転送機構が自動的にデータの読み出し、 転送を行 う。 制御部は上記設定を行った後、 データ転送中に次に読み出すアドレスを計算 することができる。 従って、 アドレス変換のための見かけ上の時間は殆ど要しな いことになる。 このように、 書き込み /読み出し動作を開始する以前にアドレス 変換が行われることで、 高速動作が可能となっている。
次に、 メモリマネージャ 3中にあるデ一夕中継手段として好ましい態様につい て説明する。
メモリマネージャ 3は、 ホストコンピュータ 1側からバスインタ一フェース 2 を介して送出されてくるデータを、 フラッシュメモリインタ一フェース 4を介し てフラッシュメモリ 5側に送出したり、 その逆に、 フラッシュメモリ 5側から内 部バスを介して送出されたデータをバスインタ一フェース 2を介してホストコン ピュータ 1側に送出したりする機能をも有する。
このとき、 ホストコンピュータ 1側のデータ授受速度やタイミングと、 フラッ シュメモリ 5側のデ一夕授受速度やタイミングはそれぞれ異なっている場合が多 レ^ このため、 好ましくは図 4に示すようなデータ中継手段 3 aを有すると良い すなわち、 所定の大きさのデータを蓄えられる 2つのバッファ 3 6 3 7を備 え、 一方のバッファ A ( B ) をデータ書き込み側 (実線側) としたときには、 他 方のバッファ B (A) をデータ読み出し側 (破線側) とする。 そして、 バッファ 制御部 3 5はデータ書き込み側である一方のバッファ A ( B ) が所定長のデータ で満たされ、 かつデータ読み出し側である他方のバッファ B (A) のデータがす でに読み出されたことを検出すると、 両者を交換し、 デ一夕で満たされた一方の バッファ A ( B ) をデ一夕読み出し側とし、 データがすでに読み出された他方の バッファ B (A) をデータ書き込み側とする。
このように、 2つのバッファに交互にデータを書き込むと共に、 データが満た されたバッファから交互にデ一夕を読み出すことで、 ホストコンピュータ側と、 フラッシュメモリ側とでのデータの授受速度が異なつていても、 それぞれの速度 やタイミングに合わせてデ一夕を受け渡すことができる。 この場合、 データの授 受速度が速い側が必ず待機状態となるため、 全体としてのデ一夕の授受速度はデ —夕の授受速度の遅い側に支配されることになる。 なお、 バッファ内のデータは、 読み出された後、 F I F Oメモリのように空になるが、 新しいデ一夕で満たされ た状態が検出可能であれば、 上書きしてもよい。
2つのバッファに書き込み 読み出し可能なデータ長としては、 特に限定され るものではないが、 好ましくは 1セクタ一分のデータである 5 1 2バイト、 また はこれに冗長データ分を加えた長さである。
このように、 2つのバッファ 3 6 , 3 7を交互に交換してデ一夕の受け渡しを 行わせることにより、 一方のバッファにデータを書き込むと共に、 他方のバッフ ァからデータを読み出すことができ、 デ一夕を中継するために要する時間を大幅 に短縮できる。 この場合、 バッファ 3 6 , 3 7の交換はバッファ制御部 3 5によ り瞬時に行われるため、 上記のようにデ一夕の転送時間は、 ホストコンピュータ 側あるいはフラッシュメモリ側のいずれか遅い方の速度と同等と見なすことがで , r
1 b
きる。 また、 バッファ制御部 3 5はゲート回路の組み合わせとして、 ハードゥエ ァで構成することが好ましい。 ハードウェアのみの構成とすることにより動作速 度が飛躍的に向上する。
本発明のフラッシュメモリシステムは、 フラッシュメモリ上の各物理ブロック の状態を示すデ一夕であって、 少なくとも、 その良否、 バッドセクタ一の有無お よび使用の有無を表しているデータを有するブロックステータステーブル 3 2を 有していても良い。 ブロックステータステーブル 3 2を有することにより、 各物 理ブロックの状態をテーブル上で速やかに把握することができ、 後述する待ち行 列 (Queue) の形成を速やかに行うことができ、 メモリの読み出しや書き込みに 先立って、 あるいはこれと関係なく適切なメモリ管理を行うことができる。
ブロックステータステ一ブル 3 2は、 例えば図 5に示すように構成されている。 図示例では、 1つのブロック内の上段に物理ブロックアドレス (図中番号の頭に #を付して表示している) を、 下段にステータス値を配置し、 それぞれの物理ブ ロックアドレスに対応したステータス値を持たせている。 そして、 フラッシュメ モリ 5内のアクセス可能なメモリ領域での最大の物理ブロックアドレス # Nmax まで対応するステータス値が規定されている。
ステータス値は、 物理ブロックアドレスの状態を示す値であって、 例えば、 初 期状態として F Fが書き込まれ (または消去状態) 、 その後、 ブロックアドレス の状態に応じて値が変化する。 ステータス値で表現可能なデ一夕としては、 少な くともブロックの良否、 バッドセクタ一の有無およびそのブロックの使用の有無 である。 また、 これに加えて、 ブロックの良否の程度やセキュリティ一に関する データ等を表すことも可能である。 データの表示形態としては、 特に限定される ものではなく、 特定のデ一夕長、 例えば 1バイトのコードとして表しても良いし、 特定のデータ長の各ビットに重みを持たせることにより表現するようにしても良 い。 1 C
1 0
プロックステータステ一ブル 3 2を有することにより、 各論理プロックの状態 を速やかに把握することができる。 従って、 アドレス変換テーブル 3 1を構築す る際、 ブロックステータステーブルを参照し、 後述する待ち行列 (Queue) 要素 等を排除して論理プロックアドレスを物理ブックアドレスに割り付けたり、 バッ トセクタ一を有していたり、 不良ブロック等となっているブロックを速やかに検 出し、 これを排除したアドレス変換テーブルを構築することができる。 また、 未 使用のブロックもブロックステータステーブル 3 2から容易に把握することがで き、 不良プロックとの交換等の作業も極めて容易かつ迅速に行うことができる。 つまり、 各セクタ一やブロックの状態を、 フラッシュメモリ一をアクセスするこ となく把握することができ、 処理速度が格段に向上する。
前記メモリマネージャ 3は、 例えば図 6に示すように、 さらに前記ホストコン ピュー夕 1からフラッシュメモリ 5をアクセス可能な論理アドレス領域 L nの大 きさを、 フラッシュメモリの実ァドレスである物理ァドレス領域 P nの大きさよ り小さく設定し、 かつ物理ァドレス領域 P nの論理ァドレス領域 L nと対応しな い余剰領域 5 aには使用待機状態の待ち行列を有する。
フラッシュメモリの実ァドレスである物理ァドレス領域の大きさを、 ホストコ ンピュー夕からフラッシュメモリをアクセスする際の論理アドレス領域の大きさ よりも大きくし、 かつ物理ァドレス領域の論理ァドレス領域と対応しない余剰領 域に待ち行列 (Queue) を有することにより、 例えば、 論理アドレス領域と対応 する物理アドレス領域内に不良個所が生じた場合に待ち行列 (Queue) の部分と 交換することができる。 また、 フラッシュメモリへの書き込み時には、 新たな書 き込みデータを一旦待ち行列の部分に書き込み、 必要により書き込み予定部分か ら従来のデータを補充し、 これを書き込み予定部分と交換することで、 書き込み の際の動作を極めて効率良く行うことができる。
また、 前記余剰領域を単に任意に使用するのではなく、 待ち行列として管理す ることで、 特定のメモリ領域にアクセスが集中したり、 複雑な制御を行うことな く、 適切なメモリ管理を行うことができる。
図 6において、 メモリマネージャ 3は、 前記ホストコンピュータ 1からフラッ シュメモリをアクセス可能な論理ァドレス領域の大きさ L nを、 フラッシュメモ リの実アドレスである物理アドレス領域の大きさ P nより小さく設定し、 かつ物 理ァドレス領域の論理ァドレス領域と対応しない余剰領域には、 使用待機状態の 待ち行列を有している。
すなわち、 フラッシュメモリ 5内の全記憶領域である物理アドレス領域は、 ホ ストコンピュータ 1側からアクセス可能な論理ァドレス領域よりも大きく設定さ れている。 換言すれば、 ホストコンピュータ側に開放されている論理アドレス領 域は、 フラッシュメモリ 5の全記憶領域である物理アドレス領域よりも、 待ち行 列分を含有する所定領域分だけ小さくなつている。
待ち行列 (Queue) は、 通常初期状態では、 前記余剰領域中の若いアドレスか ら順次形成される (但し不良個所などを除く) 。 また、 この待ち行列 (Queue) 、 物理アドレスおよび論理アドレスは、 好ましくはフラッシュメモリ 5の最小消去 単位 (ブロック) 毎に取り扱われる。 この最小消去単位は、 フラッシュメモリ 5 上で一度に消去される最小単位である。 前述のように、 フラッシュメモリは最小 記憶単位毎ではなく、 これらが集合してある大きさとなった記憶領域毎に消去さ れる。 このため、 この消去領域の最小単位である最小記憶単位毎に、 前記待ち行 列 (Queue) 、 物理アドレスおよび論理アドレスを取り扱うことで、 効率の良い メモリコントロールシステムを得ることができる。
論理ァドレス領域に対応する物理ァドレス領域内に不良個所が生じた場合、 待 ち行列 (Queue) と置換されることになるが、 これらの操作もブロック毎に行う ことで効率良く、 適切に管理することができる。 フラッシュメモリ 5の書き込み 動作はブロック毎の消去動作が必要であるが、 フラッシュメモリ 5をブロック毎 に管理することにより効率良く行うことができる。
物理アドレスは、 論理アドレスと、 通常 1対 1で対応するわけであるが、 これ らの対応関係も好ましくはブロック毎に規定される。 すなわち、 両者はそれぞれ ブロック毎に扱われ、 その先頭アドレスについて、 物理ブロックアドレスと、 論 理ブロックアドレスとして規定される。 そして、 これからのオフセット値として 個々の記憶単位である物理ァドレスおよび論理ァドレスが規定される。 また、 個々のブロックはァドレス変換テ一ブル等を用いて、 論理ブロックアドレスから 物理ブロックアドレス、 あるいは物理ブロックアドレスから論理ブロックァドレ スへと変換される。
待ち行列 (Queue) は、 前述のように全物理アドレス領域のうち、 論理アドレ ス領域に対応する物理ァドレス領域以外の領域内に存在するが、 この領域の全て が待ち行列 (Queue) である必要はない。 余剰領域中には不良ブロックとして永 久に破棄され、 待ち行列 (Queue) としても使用されないブロック等が存在する ことがある。 また、 この余剰領域は全物理アドレス領域の 1〜5 %、 より好まし くは 2〜 3 %程度が好ましい。
次に、 待ち行列 (Queue) のより具体的な構成について説明する。 図 7はフラ ッシュメモリ 5内のメモリ空間を概念的に示したブロック図である。 図中各プロ ック内に記載されている数字、 記号は物理ブロックアドレスを表す。
図示例のフラッシュメモリ 5において、 ホストコンピュータ 1側に開放されて いる物理ブロック領域は論理ブロックアドレスと対応していて、 その最大値 Nh までの範囲となっている。 また、 余剰領域 5 a (図中斜線で表示) として、 論理 ブロックアドレスの最大値 Nh と対応する物理ブロックアドレスに 1を加えたァ ドレス Nh + 1から、 物理ブロックアドレスの最大値 Nmax まで存在する。 そし てこの領域内に待ち行列 (Queue) を有する。
この待ち行列 (Queue) は、 通常、 初期設定時に上記のように余剰領域として 定義された領域の中から選ばれる。 従って、 待ち行列 (Queue) の各要素は、 消 去状態 (初期状態) となっており、 これを使用する際にはそのまま書き込みを行 うことができるようになつている。 また、 新たな待ち行列 (Queue) を加える際 には、 消去した後、 あるいは消去状態であることが確認された後に加えられる。 なお、 余剰領域 5 a (待ち行列) は図 7に示したように、 物理アドレス領域の 最後部に連続して存在している必要はなく、 例えば、 図 8に示すように物理アド レス領域内に島状に散在していても良い (図中、 斜線で示す部分) 。 余剰領域を 分散した結果、 図示例では論理アドレス領域の最大値 Nh と、 物理アドレス領域 の最大値 Nmax とは同じ位置になっている。 余剰領域 (待ち行列) が分散された 状態は、 通常、 後述する不良ブロックや書き込み動作時の待ち行列 (Queue) と の置換操作を繰り返すことにより形成される。 なお、 図 8においてブロック中に 記載されている数字は、 図 7の場合と異なり論理ブロックアドレスを表す。 この ように、 待ち行列 (Queue) を有する余剰領域 5 aは論理ブロックアドレスと対 応しないため、 ホストコンピュータ 1側からは認識されないこととなる。
待ち行列 (Queue) 5 0は、 好ましくはポインタにより制御される。 ポインタ は、 例えば図 9に示すように、 待ち行列 (Queue) 5 0を構成する各ブロック (以下要素という) の数が所定の範囲となるように制御される。 つまり、 図示例 では要素となるブロックの順序をプロック上部に付してあるが、 この順序におけ る所定の位置に取りだしポイント O P (図示例では 2 ) と取り込みポイント I P ( n— 2 ) とが存在する。 そして、 待ち行列 (Queue) 5 0の取り出し、 取り込 みが行われる度にポインタが移動して行く。 すなわち、
(取り込みポイント I Pの位置) 一 (取りだしポイント O Pの位置) =要素数 となる。 また、 待ち行列 (Queue) 自体は管理テーブル等に登録して管理するよ うにすればよい。
本発明のフラッシュメモリシステムは、 好ましくは論理ブロックアドレスと物 2 Q
理ブロックアドレスとを相互に変換するためのァドレス変換テーブルを有する。 図 2に示したアドレス変換テーブル 3 1では、 実際のメモリ領域であって物理 アドレスの最大領域である物理ァドレス領域に対し、 ホストコンピュータからァ クセス可能な論理アドレス領域が小さくなるように設定される。 すなわち、 前記 待ち行列 (Queue) を設定可能なように小さく設定されている。 このアドレス変 換テ一ブルにおいて、 論理ブロックアドレスと対応していない物理ブロックアド レスが待ち行列 (Queue) の要素となりうる。
ァドレス変換テーブル 3 1により論理ブロックアドレスと物理ブロックァドレ スとが関係付けられるわけであるが、 両者の対応関係は必ずしも小さいァドレス 番号順になつている必要はなく、 任意のアドレス同士が対応していても良い。 つ まり、 所定の領域を形成する両者のブロックアドレス同士が、 1対 1で関係付け られるものであればよい。 従って、 アドレス変換テーブルを用いることなく関数 等を用いることも可能である。
フラッシュメモリシステムのリセット動作等により、 論理ブロックアドレスを 物理プロックアドレスに再び関係付ける場合、 通常は小さぃァドレス番号から順 次関係付けられる。 この場合、 論理ブロックアドレスの最も小さいアドレス番号 に対して、 関係付けを開始する物理ブロックアドレス番号を任意に選択して開始 位置を変更するようにすると良い。 このようにすることで、 特定の論理ブロック ァドレス番号と対応する物理プロックアドレス番号が固定されることなく変動し、 例えば、 小さいアドレス番号にアクセスが集中したり、 あるアプリケーションソ フ卜において頻繁にアクセスされる領域が存在しても、 対応するフラッシュメモ リの実アドレスが変化するため実際にアクセスされる箇所を分散することができ る。
任意の開始位置を指定する方法としては特に限定されるものではないが、 周知 の乱数発生方法により得られる乱数や、 関数その他の数学的手法などを用いて任 ^
意のブロックアドレスを選択すればよい。
また、 フラッシュメモリシステムのリセット動作等により、 論理ブロックアド レスと対応する物理ブロックアドレスのうち、 任意のブロックアドレスを前記待 ち行列 (Queue) のブロックと交換しても良い。 このような交換を行うことによ り、 上記と同様に特定のメモリ領域へのアクセスの集中を防止でき、 フラッシュ メモリ全体のアクセス回数を平均化できる。
メモリブロック交換の頻度はリセット等の度に行っても良いし、 リセット等の 頻度が多い場合には所定回数カウントしたり、 乱数等を用いて所定の回数 (頻 度) 毎に行うようにすればよい。
本発明のフラッシュメモリシステムは、 フラッシュメモリと共に使用されるが、 上記構成を一体とした装置として、 フラッシュメモリと独立に存在することも可 能である。 例えば、 バスインターフェース 2と、 フラッシュメモリインターフエ —ス 4と、 アドレス変換テーブルと、 デ一夕中継手段とを有するメモリマネージ ャ 3とが一体となった I C (集積回路) チップとしても良い。 I Cチップとする ことにより、 フラッシュメモリと組み合わせたときに小型のメモリシステムを容 易に得られることになる。 また、 本発明のフラッシュメモリシステムをフラッシ ュメモリと組み合わせ、 これを所定の規格のカード形状の筐体内に配置し、 バス インターフェースを P Cカードバスとすることにより、 電源不要の不揮発性メモ リカードが容易に得られる。 実施例
次に実施例を示し、 本発明をより具体的に説明する。
[製造時の初期設定]
製造後の初期状態において、 メモリマネージャ 3の制御部はフラッシュメモリ 5内の各セクタ一について評価 (書き込み/読み出しが正常にでき、 書き込んだ ^
デ一夕内容に異常が無い等) し、 これをブロック単位の評価内容としてステ一夕 ステ一ブル 3 2を作製する。
例えば、 図 1 0に示すように、 所定の大きさの実デ一夕記憶部 5 1と、 冗長デ —夕記憶部 5 2とを有するフラッシュメモリーの、 物理ブロックアドレス # 0 0 0 3に異常があるとする。 制御部は、 例えば図 1 1に示すように、 物理ブロック ァドレス順に評価して行き、 S— R AM上のステータステーブル形成領域の所定 の位置に、 異常が無い場合には初期値 (図示例では" F F " ) とし (書き込み) 、 異常が検出された場合にはそのような内容を表すステータス値 (図示例では" 0 F " ) を書き込む。 このようにして、 ステータステーブル 3 2が作製される。 次いで、 制御部は、 例えば図 1 2に示すようにフラッシュメモリ 5に対して論 理ブロックアドレスに相当する仮のナンバーリングを行う。 このとき、 ステ一夕 ステーブル 3 2の情報に基づいて、 ナンバーリングの対象から不良ブロックを除 外する。 このナンバーリングされた数値 (図示例では下段) と、 ステータス値 (図示例では上段) は、 フラッシュメモリの冗長部 5 2に書き込まれる。
この状態のフラッシュメモリシステムにおいては論理プロックアドレスと物理 ブロックアドレスの関係付けは行われておらず、 待ち行列 (Queue) も存在しな レ^ ただし、 上記不良ブロックは余剰領域の一部となる。
[リセット時の初期設定]
電源投入時、 リセット時において、 制御部はフラッシュメモリの大きさ (チッ プ数) を把握し、 最小消去単位であるブロックの全数 Nmax を求める。
次いで制御部は、 フラッシュメモリ 5内の各ブロック (物理ブロック) の冗長 部分を読み出して行く。 この場合、 ブロック内の各最小記憶単位 (1バイト +冗 長部分) に冗長部分が存在するが、 同一ブロック内の冗長部分は全て同一のデ一 夕が書き込まれることになつている。 従って、 1つのブロックにっき一個の最小 記憶単位中の冗長部分を読み出せばよいことになる。 なお、 複数箇所の冗長部分 を読み出して照合することにより (通常同一内容となる) 、 その最小記憶単位や プロックの信頼性を評価することもできる。
読み出されたデータとしては、 上記例では次のようになる。
物理ブロッ ステータス値 論理ブロックアドレス値
# 0 0 0 0 F F 0 0 0 0
# 0 0 0 1 F F 0 0 0 1
# 0 0 0 2 F F 0 0 0 2
# 0 0 0 3 0 F
# 0 0 0 4 F F 0 0 0 3
## 00 00 00 55 F F 0 0 0 4
以下省略。 得られたデ一夕からアドレス変換テ一ブル 3 1およびブロックステータステ一 ブル 3 2を、 S— R AM上のアドレス変換テーブル形成領域、 ステータステ一ブ ル形成領域に形成する (電源投入時、 リセット時には S— R AM上のデータは消 滅しているか信頼性を失っているからである) 。 これにより、 以後再度のリセッ トが行われるまでは、 この S— R AM上のァドレス変換テーブルをアクセスすれ ば良く、 フラッシュメモリの冗長部分を読み出す必要がなくなる。 この場合、 実 際のアドレス変換テーブル 3 1およびブロックステータステーブル 3 2は、 例え ば S—R AM上の特定の領域の先頭アドレスを基準点 (" 0 0 0 0 " 等と見な す) とし、 この基準点から、 アドレス変換テーブルであれば、 対応する論理プロ ックアドレス値となる位置に必要なデータ (物理ブロックアドレス値) を書き込 み、 ブロックステ一夕ステ一ブルであれば、 対応する物理ブロックアドレス値と なる位置に必要なデ一夕 (ステータス値) を書き込めばよい。
また、 このとき、 論理ブロックアドレスが" F F F F " 、 つまり消去パターン となっているブロックを発見すると待ち行列 (Queue) の要素と見なし、 これを 待ち行列 (Queue) テーブル 50に登録したりする。 また、 この待ち行列の要素 内のデータが全て" FFFF" 、 つまり消去パターンとなっているか否かも検査 する。
この場合、 実際の待ち行列 (Queue) テーブル 50, アドレス変換テーブル 3 1およびブロックステータステーブル 32は、 例えば S— RAM上の特定の領域 の先頭アドレスを基準点 (" 0000" 等と見なす) とし、 この基準点から、 そ れぞれの対応する待ち行列 (Queue) 数、 論理ブロックアドレス値、 または物理 ブロックアドレス値となる位置に必要なデ一夕 (それぞれ物理ブロックアドレス 値、 物理ブロックアドレス値、 ステータス値) を書き込めばよい。
[読み出し時の動作]
読み出し時の動作として、 図 13に示す装置における動作を例に説明する。 図 13はフラッシュメモリシステムの一実施例を示すブロック図である。 図示例の フラッシュメモリシステムは、 ホストコンピュータ 1と接続される PCカードバ ス 2 aと、 この PCカードバス 2 aと接続されているバッファ制御部 35内のバ ッファ A36とバッファ B 37を有する (この例では一体として表示しているが それぞれが別個に存在していても良い。 ) 。 また、 上記 PCカードバス 2 aには、 PCMC I Aブロック 38と ATAブロック 39とが接続されている。 前記バッ ファ制御部 35内のバッファ A36とバッファ B 37には、 フラッシュメモリイ ン夕一フェース 4としてのフラッシュシーケンサ 41と EC C制御部 42とが接 続されており (この例では一体として表示しているがそれぞれが別個に存在して いても良い。 ) 、 このフラッシュシーケンサ 41等にフラッシュメモリ 5のメモ リアレイが接続されている。
また、 前記バッファ制御部 35、 PCMC I Aブロック 38、 AT Aブロック 39, フラッシュシーケンサ 41には制御部 34が接続されていてこれらを総合 的に制御している。 この制御部 34には、 これから直接アクセスすることのでき 。「
る ROM, RAMが接続されていて、 制御アルゴリズムや演算に必要なデ一夕等 を記憶するようになっている。 また、 アドレス変換テーブル 31とブロックステ 一夕ステーブル 32は、 通常、 前記 RAM上に形成される。
PCカードバス 2 aは、 PCカードと称するカード状の拡張システム (例えば、 S C S Iインタ一フェースユニット、 MODEMユニット、 メモリカード等) を 接続するためのバスシステムであって、 この例では P CMC I A規格の所定の力 —ドスロットルを介して PCカードを接続しうるものである。 このような PC力 ードは、 ラップトップコンピュータ等の携帯機器や、 これらから情報を授受する システムなどに特に好ましく用いられる。
バッファ制御部 35およびバッファ A 36, バッファ B 37は前記のデ一夕中 継手段 3 aと同様な構成であり、 説明を省略する。
PCMC I Aブロック 38は、 前記 PCカードバス 2 aと適切に接続するため の PC力一ドバスイン夕一フェースとして機能する。 すなわち、 PC力一ドバス 2 aの制御システム (図示しない) が、 PCカードが接続されたことを認識する ために必要なデータや、 認識するために必要な手順等が記憶されていて、 自動的 に必要な操作を行うことができるようになつている。
AT Aブロック 39のタスクレジスタは、 ホストコンピュータから与えられる シリンダ一、 ヘッド、 セクタ一のデ一夕である CHSアドレスを収容したり、 逆 にこれをホストコンピュー夕側に与えたり、 ホスト側の論理ァドレスに変換する ためのデータ等を備える。 これにより、 ホストコンピュータ 1がフラッシュメモ リシステムをあたかもハードディスクとして取り扱うことができるようになる。 フラッシュメモリ 5は、 この例では複数のメモリ素子が集合したメモリアレイ を構成していて、 必要な記憶容量を確保できるようになつている。 その他の構成 は上記の構成例と同一であり、 同一構成要素には同一符号を付して説明を省略す る。 このように、 図示例のフラッシュメモリシステムは P Cカード内に収納され、 SCS I仕様のハードディスクと同等に扱うことができるようになつている。 P Cカードとして着脱自在にホストコンピュー夕と接続することにより、 比較的大 容量のデータを小型、 軽量なカードで自由に移動させたり、 保存したりできる。 しかも、 従来のソフトが認識可能なハードディスクと同様に扱えるので、 既存の ソフトが活用でき、 取り扱いも容易である。
読み出し時の動作としては、 先ず、 制御部 34が前記バッファ A36 (または B 37) 等を介してホストコンピュータ 1からのアドレスデ一夕を受信する。 こ のとき、 ホストコンピュータから送られてくるアドレスデータが、 LBA方式で あれば、 式 (I) を用いた上記と同様の作業により、 論理ブロックアドレスおよ びオフセット値への変換を行う。
すなわち、 ホストコンピュータから送付されてくる論理アドレスを LB As と すると、 論理ブロックアドレス LB Aは、
LBA=LBAs /k
k==最小消去単位内のセクタ一数 (8または 16)
で求められ、 その余り mがブロック内のセクタ一の位置を表すオフセット値とな る。
また、 ホストコンピュータから送られてくるデータが、 CHS方式である場合、 以下の計算式 (Π) により LBA方式のデ一夕に変換する。 なお、 このような変 換機能は、 ATブロック等のように、 CHS方式のデータを LBA方式のデ一夕 に変換するための専用機能を有するブロックとして独立に設けてもよい。
LBA- (CXHpC+H) XSpH+S— 1 (II)
ここで、 C :シリンダー番号、 H:へッド番号、 S :セクタ一番号、 HpC:へ ッドノシリンダ一、 SpH:セクタ一/へッドである。
得られた論理ブロックアドレスは、 データ変換テーブル 31により物理ブロッ ^
クアドレスに変換され、 これにオフセット値が加えられて物理アドレスデ一夕と なる。
読み出し動作においては、 通常、 フラッシュメモリ 5からの読み出しと、 ホス トコンピュータ 1への転送は自動的に行われる。 すなわち、 フラッシュメモリイ ン夕ーフェース 4、 例えばフラッシュシーケンサ 4 1は、 制御部 3 4が読み出し たいメモリ領域のアドレスを設定すると、 自動的にそのメモリ領域のデ一夕を読 み出す。 バッファ制御部 3 5は、 転送されてきたデータをフラッシュメモリ 5側 とホストコンピュータ 1側の転送速度に合わせて次々に送出する。
A T Aブロック 3 9は、 制御部 3 4からのデ一夕転送の指示があるとビジ一状 態を解除して、 ホストコンピュータ 1にデータ転送開始を知らせる。 このように して、 制御部 3 4は、 アドレス変換作業を行った後、 所定の設定操作を行うこと により、 デ一夕転送のための操作から解放され、 次のアドレス変換作業を先行し て行うことができる。 また、 データ変換作業は前述のように高速に処理すること ができるので、 通常、 データ転送中に終了する。 これにより、 データ転送速度が 格段に向上する。
[書き込み時の動作]
書き込み時の動作としては、 ァドレス変換までの動作は上記読み出し時の動作 と同様である。 次に、 アドレス変換が行われ、 フラッシュメモリ 5上の所定のァ ドレスへの書き込み動作を行うことになる。
フラッシュメモリ 5は前述のように上書きすることができない。 従って、 書き 込み動作にはブロック単位の消去動作が伴うことになる。 この場合、 書き込み予 定のブロック内のデータを、 一旦読み出した後これを消去し、 新たなデータを書 き加えることも可能である。 しかしながら、 この方法では書き込み前に読み出し 動作が伴うため、 アクセス速度が遅くなつてしまう。
そこで、 前記物理アドレス領域中の論理アドレス領域に含まれない余剰領域を 活用すると良い。 すなわち、 一旦新たなデ一夕を余剰領域中の任意のブロック内 に書き込む。 そして、 本来の書き込み予定アドレスを有するブロックアドレスを 消去予定アドレスとする。 また、 ブロックステータステ一ブル 3 2上の書き込み 予定ァドレスを有するプロックアドレスを、 新たなデ一夕を書き込んだ余剰領域 中のブロックのアドレスに書き換える。 これにより、 前記余剰領域中のブロック が、 書き込み後のデータを有する新たなブロックアドレスとなる。
この場合、 好ましくは余剰領域中の待ち行列 (Q ueue) を活用する。 すなわち、 待ち行列 (Queue) の先頭から要素を取り出し、 一旦新たなデ一夕をこのブロッ ク内の所定の位置 (オフセットで指定される) に書き込み、 交換予定ブロックと する。 そして、 本来の書き込み先であるブロックの論理ブロックアドレスを消去 予定アドレスとする。
また、 交換予定ブロックの冗長部分には、 消去予定ブロックのブロックァドレ スゃステータス値を書き込む。 このとき、 アドレス変換テーブルの論理ブロック についても書き換えを行っても良い。 これにより、 前記待ち行列 (Queue) から 取り出したブロックが、 書き込み後のデータを有する新たな論理ブロックァドレ スとなる。
そして、 好ましくは全ての、 または所定量のデータ転送が終了した時点で、 前 記消去予定ブロックの残余のデータ (書き換えが行われないデータ) を交換予定 ブロック内に転送し、 消去予定ブロックを消去する。 これにより、 書き込みに伴 う読み出し動作および消去動作は、 全てのデータ転送が行われた後に行われるこ ととなり、 見かけ上、 ホスト側コンピュータに対して、 書き込みデ一夕の受け取 りを早期に完了させることで、 書き込み時における動作速度が向上する。 なお、 全てのデータの書き換えが行われるまでの操作は履歴保持テーブル等に保持され、 待ち行列 (Queue) を使用した書き込み操作がスムースに行われるようになって いる。 9 Q
なお、 上記例では書き込みの際に、 フラッシュメモリ上の余剰領域や、 デ一夕 中継手段内の記憶媒体、 例えば R AM上に展開されている待ち行列 (Queue) を 活用した。 ところで、 R AM等は供給電源の瞬断等によりデ一夕が失われる恐れ がある。 また、 待ち行列 (Queue) は書き込みデ一夕が多く、 複数の操作が重複 し、 消去予定ブロック、 交換予定ブロックが複数存在する状態も生じることから、 ブロック毎の書き換えが終了した時点で、 フラッシュメモリの冗長領域上のプロ ックステータス値およびアドレス交換用データも同時に書き換えておくことが好 ましい。
このように、 最小消去単位に対応した待ち行列 (Queue) 、 アドレス変換テー ブル 3 1、 ブロックステータステ一ブル 3 2を有し、 これによりフラッシュメモ リ 5を管理することにより、 読み出し Z書き込み動作を極めて効率的に行うこと ができ、 全体としての処理速度が格段に向上する。 そして、 フラッシュメモリ 5 の不良個所や E C Cはプロックステータステーブル 3 2により適切に管理され、 不良ブロックなどは待ち行列 (Queue) により置換することができるので、 長期 にわたり安定してデ一夕を保持することが可能である。 産業上の利用可能性
本発明のフラッシュメモリシステムは、 上記構成例に限定されるものではなく、 種々の応用が可能である。 また、 その使用範囲もラップトップコンピュータ等の コンピュータシステムの他、 携帯通信機器、 デジタルカメラ等のマルチメディア システム等種々のデータを取り扱う分野への応用が可能である。 発明の効果
以上のように本発明によれば、 書き込み Z読み出し時間の遅れが少なく、 書き 込み動作を比較的簡単に行うことができ、 高速で動作が可能で、 不良セクタ一等 の管理を適正に行うことの可能なフラッシュメモリシステムを実現することがで きる。

Claims

請 求 の 範 囲
1 . ホストコンピュータとフラッシュメモリとのデ一夕の授受を管理するメモ リマネージャを有し、
前記メモリマネージャは、 ホストコンピュータからフラッシュメモリに与えら れる論理ァドレスと、 フラッシュメモリの実ァドレスである物理ァドレスとを変 換するためのァドレス変換テーブルを有し、 かっこのァドレス変換テーブルはフ ラッシュメモリの最小消去単位に対応して規定されているフラッシュメモリシス テム。
2 . 前記メモリマネージャと、 ホストコンピュータと接続可能なバスインタ一 フェースと、 フラッシュメモリに書き込み 読み出しを行うためのフラッシュメ モリインタ一フェースとを有し、
前記メモリマネージャは、 ホストコンピュー夕側からフラッシュメモリ側に送 出されるデータとフラッシュメモリ側からホストコンピュータ側へ送出されるデ 一夕とを中継するデ一夕中継手段を有する請求の範囲第 1項のフラッシュメモリ システム。
3 . 前記ァドレス変換テーブルは、
ホストコンピュ一夕が記憶媒体上の最小記憶単位を指定するときに用いる論理 ァドレスを前記最小消去単位に対応させて分割した論理プロックアドレスと、 前記物理ァドレスを前記最小消去単位に対応させて分割した物理プロックアド レスとを対応させている請求の範囲第 1項または第 2項のフラッシュメモリシス テム。
4 . 前記論理アドレスと物理アドレスとの変換は、
フラッシュメモリへのデータの書き込みノ読み出しを開始する以前に行われる 請求の範囲第 1項〜第 3項のいずれかのフラッシュメモリシステム。
5 . 前記フラッシュメモリの物理ァドレス領域の大きさは、
論理ァドレス領域の大きさよりも大きい請求の範囲第 1項〜第 4項のいずれか のフラッシュメモリシステム。
6 . 前記論理ァドレス領域と対応する任意の最小消去単位に障害が生じた場合、 物理ァドレス領域のうち論理ァドレス領域と対応しない部分の最小消去単位のい ずれかと交換する請求の範囲第 1項〜第 5項のいずれかのフラッシュメモリシス テム。
7 . 前記データ中継手段は、 さらにブロックステータステ一ブルを有し、 このブロックステータステーブルは、 フラッシュメモリ上の前記各物理ブ口ッ クの状態を示すデータであって、
少なくとも、 その良否、 バッドセクタ一の有無および使用の有無を表している デ一夕を有する請求の範囲第 1項〜第 6項のいずれかのフラッシュメモリシステ ム。
8 . 前記アドレス変換テーブルは、 リセット後にフラッシュメモリの冗長部分 から読み出されたデータにより R AM上に形成される請求の範囲第 1項〜第 7項 のいずれかのフラッシュメモリシステム。
9 . 前記ブロックステータステーブルは、 リセット後にフラッシュメモリの冗 長部分から読み出されたデータにより R AM上に形成される請求の範囲第 7項ま たは第 8項のフラッシュメモリシステム。
1 0 . ホストコンビュ一夕とフラッシュメモリとのデータの授受を管理するメ モリマネージャを有し、
前記メモリマネージャは、 前記ホストコンピュータからフラッシュメモリをァ クセス可能な論理ァドレス領域の大きさを、 フラッシュメモリの実ァドレスであ る物理ァドレス領域の大きさより小さく設定し、
かつ物理アドレス領域の論理アドレス領域と対応しない余剰領域には、 使用待 機状態の待ち行列を有するフラッシュメモリ
1 1 . 前記メモリマネージャは、 前記物理アドレス領域、 前記論理アドレス領 域および前記待ち行列をフラッシュメモリの最小消去単位に対応して分割された ブロック毎に取り扱う請求の範囲第 1 0項のフラッシュメモリシステム。
1 2 . 前記待ち行列に対応するフラッシュメモリの領域は、 消去後の状態とな つている請求の範囲第 1 0項または第 1 1項のフラッシュメモリシステム。
1 3 . 前記メモリマネージャは、 物理アドレス領域内の任意のブロックに障害 が生じた場合、 前記待ち行列内の任意のブロックと交換する請求の範囲第 1 0項 〜第 1 2項のいずれかのフラッシュメモリシステム。
1 4 . 前記メモリマネージャは、 フラッシュメモリへデータを書き込む際に、 待ち行列内の所定のプロックに新しいデータを書き込み、
これを書き込み予定先の論理プロックアドレスとし、 書き込み予定先のプロッ クを待ち行列とする請求の範囲第 1 0項〜第 1 3項のいずれかのフラッシュメモ リシステム。
1 5 . 前記メモリマネージャは、 書き込み予定先のブロックが更新されるデー 夕以外のデータを有する場合、
ホストコンピュータからの所定量のデ一夕の転送が終了した後、
書き込み予定先のブロックから、 新しいデータが書き込まれた待ち行列内の所 定のブロックに従来のデ一夕を転送する請求の範囲第 1 4項のフラッシュメモリ システム。
1 6 . 前記メモリマネージャは、 物理アドレス領域と論理アドレス領域とを最 小消去単位に対応して分割された論理プロックアドレスと物理プロックアドレス とで対応させ、
かつこの対応関係の開始位置は所定回数のリセット毎に決められる任意の位置 とする請求の範囲第 1 0項〜第 1 5項のいずれかのフラッシュメモリシステム。
1 7 . 前記メモリマネージャは、 所定回数のリセット毎に、 論理アドレス領域 と対応する物理ァドレス領域内の任意のプロックのデータを待ち行列のプロック に書き込み、
かつデータが書き込まれた待ち行列のブロックアドレスを物理アドレス領域内 の任意のブロックの論理ブロックアドレスとし、
前記物理ァドレス領域内の任意のプロックを待ち行列とする請求の範囲第 1 0 項〜第 1 6項のいずれかのフラッシュメモリシステム。
1 8 . 前記メモリマネージャに加えて、 さらにホストコンピュータと接続する ためのバスィン夕ーフェースと、 フラッシュメモリへの読み出し Z書き込み動作 を行うフラッシュメモリインターフェースとを有する請求の範囲第 1 0項〜第 1 7項のいずれかのフラッシュメモリシステム。
1 9 . 前記待ち行列は、 ポインタにより制御される請求の範囲第 1 0項〜第 1 8項のいずれかのフラッシュメモリシステム。
2 0 . 前記最小消去単位は、 最小記憶単位の 8または 1 6個分に相当する請求 の範囲第 1項〜第 1 9項のいずれかのフラッシュメモリシステム。
2 1 . 前記最小記憶単位は、 1セクタ一分のデータ長に冗長分のデ一夕長を加 えた大きさである請求の範囲第 1項〜第 2 0項のいずれかのフラッシュメモリシ ステム。
2 2 . 前記最小記憶単位の冗長部分には、 少なくとも、 その最小記憶単位の属 するブロックの良否、 バッドセクタ一の有無およびそのブロックの使用の有無を 表しているデ一夕を有する請求の範囲第 1項〜第 2 1項のいずれかのフラッシュ メモリシステム。
2 3 . 前記冗長部分は、 1つのブロック中では同じデータが記憶されている請 求の範囲第 1項〜第 2 2項のいずれかのフラッシュメモリシステム。
2 4 . 前記データ中継手段は、 ob
さらに所定長のデ一夕を一時記憶する 2つのバッファを有し、 ホストコンピュ 一夕側あるいはフラッシュメモリ側から送出されたデ一夕をこの 2つのバッファ に交互に蓄えると共に、 デ—夕が満たされたバッファからデータをフラッシュメ モリ側またはホストコンピュータ側に交互に送出する請求の範囲第 1項〜第 2 3 項のいずれかのフラッシュメモリシステム。
2 5 . I Cチップである請求の範囲第 1項〜第 2 4項のいずれかのフラッシュ メモリシステム。
2 6 . カード形状の外部記憶システムである請求項第 1項〜第 2 5項のいずれ 力、のフラッシュメモリシステム。
PCT/JP1998/005545 1997-12-16 1998-12-08 Systeme de memoire flash WO1999031592A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/374,267 US6581132B1 (en) 1997-12-16 1999-08-16 Flash memory system including a memory manager for managing data

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP9/363504 1997-12-16
JP36350497 1997-12-16
JP9/365704 1997-12-22
JP36570497 1997-12-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/374,267 Continuation US6581132B1 (en) 1997-12-16 1999-08-16 Flash memory system including a memory manager for managing data

Publications (1)

Publication Number Publication Date
WO1999031592A1 true WO1999031592A1 (fr) 1999-06-24

Family

ID=26581486

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/005545 WO1999031592A1 (fr) 1997-12-16 1998-12-08 Systeme de memoire flash

Country Status (3)

Country Link
US (1) US6581132B1 (ja)
CN (1) CN1249585C (ja)
WO (1) WO1999031592A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058419A (ja) * 2001-08-07 2003-02-28 ▲金▼創科技股▲ふん▼有限公司 ウィンドウベース・フラッシュメモリー記憶システムとその管理方法ならびにアクセス方法
GB2391350A (en) * 2002-07-24 2004-02-04 C One Technology Corp Non-volatile memory which can be directly overwritten
JP2005524170A (ja) * 2002-04-30 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法
CN100424655C (zh) * 2001-11-16 2008-10-08 三星电子株式会社 快闪存储器管理方法
JP2019082813A (ja) * 2017-10-30 2019-05-30 東芝メモリ株式会社 メモリシステムおよび制御方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7114053B2 (en) * 2003-08-21 2006-09-26 Texas Instruments Incorporated Virtual-to-physical address conversion in a secure system
TWI226643B (en) * 2003-10-31 2005-01-11 C One Technology Corp Simulated SmartMedia/xD-Picture memory card using any nonvolatile memory
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
WO2005106673A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
TW200608370A (en) * 2004-08-20 2006-03-01 Benq Corp Optical read/write apparatus, writing frequency management method and computer-readable storage medium thereof
US7826470B1 (en) * 2004-10-19 2010-11-02 Broadcom Corp. Network interface device with flow-oriented bus interface
US7457909B2 (en) * 2005-01-14 2008-11-25 Angelo Di Sena Controlling operation of flash memories
CN100353337C (zh) * 2005-06-01 2007-12-05 旺玖科技股份有限公司 闪存储存系统
CN101364207B (zh) * 2005-06-01 2010-05-26 旺玖科技股份有限公司 闪存储存系统
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
KR100780963B1 (ko) * 2006-11-03 2007-12-03 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 방법
TW200828014A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Flash memory management method with low RAM utilization
US7925795B2 (en) * 2007-04-30 2011-04-12 Broadcom Corporation Method and system for configuring a plurality of network interfaces that share a physical interface
CN101441596B (zh) * 2007-11-21 2013-05-01 深圳市朗科科技股份有限公司 提高闪存介质读写速度的方法
US8762661B2 (en) * 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
JP5404483B2 (ja) * 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
JP5535128B2 (ja) * 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
US9007836B2 (en) 2011-01-13 2015-04-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US9003162B2 (en) * 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
JP2018041204A (ja) 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
FR3072476A1 (fr) * 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
KR102098240B1 (ko) * 2018-05-16 2020-04-08 주식회사 디에이아이오 비휘발성 메모리 시스템
CN109086006B (zh) * 2018-07-24 2021-10-15 浪潮电子信息产业股份有限公司 一种数据读取的方法以及相关装置
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426220A (en) * 1987-07-22 1989-01-27 Omron Tateisi Electronics Co Writing system for memory card
JPS6481028A (en) * 1987-09-22 1989-03-27 Fanuc Ltd Data memory system
JPH0573433A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 記憶装置
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JPH0850564A (ja) * 1994-08-03 1996-02-20 Hitachi Ltd 制御テーブル管理方式
JPH08203292A (ja) * 1995-01-31 1996-08-09 Fuji Film Micro Device Kk 不揮発性メモリ
JPH09161491A (ja) * 1995-12-04 1997-06-20 Fujitsu Ltd フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット
JPH09319666A (ja) * 1996-05-31 1997-12-12 Hitachi Ltd 半導体ファイル記憶装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP3178909B2 (ja) 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
JPH06250799A (ja) 1993-02-26 1994-09-09 Toshiba Corp 半導体ディスク装置およびその半導体ディスク装置を使用したコンピュータシステム
JPH0736759A (ja) 1993-07-15 1995-02-07 Hitachi Ltd 半導体ファイルシステム
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5943692A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426220A (en) * 1987-07-22 1989-01-27 Omron Tateisi Electronics Co Writing system for memory card
JPS6481028A (en) * 1987-09-22 1989-03-27 Fanuc Ltd Data memory system
JPH0573433A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 記憶装置
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JPH0850564A (ja) * 1994-08-03 1996-02-20 Hitachi Ltd 制御テーブル管理方式
JPH08203292A (ja) * 1995-01-31 1996-08-09 Fuji Film Micro Device Kk 不揮発性メモリ
JPH09161491A (ja) * 1995-12-04 1997-06-20 Fujitsu Ltd フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット
JPH09319666A (ja) * 1996-05-31 1997-12-12 Hitachi Ltd 半導体ファイル記憶装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058419A (ja) * 2001-08-07 2003-02-28 ▲金▼創科技股▲ふん▼有限公司 ウィンドウベース・フラッシュメモリー記憶システムとその管理方法ならびにアクセス方法
CN100424655C (zh) * 2001-11-16 2008-10-08 三星电子株式会社 快闪存储器管理方法
JP2005524170A (ja) * 2002-04-30 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法
GB2391350A (en) * 2002-07-24 2004-02-04 C One Technology Corp Non-volatile memory which can be directly overwritten
JP2019082813A (ja) * 2017-10-30 2019-05-30 東芝メモリ株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
CN1249585C (zh) 2006-04-05
CN1248334A (zh) 2000-03-22
US6581132B1 (en) 2003-06-17

Similar Documents

Publication Publication Date Title
WO1999031592A1 (fr) Systeme de memoire flash
USRE47638E1 (en) Storage device including flash memory and capable of predicting storage device performance based on performance parameters
US7184320B2 (en) Storage device employing a flash memory
US6591329B1 (en) Flash memory system for restoring an internal memory after a reset event
US6130837A (en) Storage device employing a flash memory
CN104423888B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
JP2000067574A (ja) 半導体記憶装置
TWI423022B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
JPH08137634A (ja) フラッシュディスクカード
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JPH11175311A (ja) フラッシュメモリシステム
CN102650971B (zh) 存储器管理方法、存储器控制器与存储器储存装置
JPH08263229A (ja) 半導体記憶装置
CN106326142A (zh) 缓冲存储器存取方法、存储器控制器与存储器存储装置
JP2003122630A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4251379B2 (ja) フラッシュメモリシステム

Legal Events

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

Ref document number: 98802593.0

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

WWE Wipo information: entry into national phase

Ref document number: 09374267

Country of ref document: US