WO2004084074A1 - データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム - Google Patents

データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
WO2004084074A1
WO2004084074A1 PCT/JP2004/002924 JP2004002924W WO2004084074A1 WO 2004084074 A1 WO2004084074 A1 WO 2004084074A1 JP 2004002924 W JP2004002924 W JP 2004002924W WO 2004084074 A1 WO2004084074 A1 WO 2004084074A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
management information
data
information
update
Prior art date
Application number
PCT/JP2004/002924
Other languages
English (en)
French (fr)
Inventor
Kenichi Nakanishi
Junko Sasaki
Nobuhiro Kaneko
Osamu Nagata
Hideaki Okubo
Original Assignee
Sony 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 Sony Corporation filed Critical Sony Corporation
Priority to US10/514,985 priority Critical patent/US7444460B2/en
Priority to EP04717886A priority patent/EP1507209A4/en
Publication of WO2004084074A1 publication Critical patent/WO2004084074A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable

Definitions

  • the present invention relates to a data storage device, a method for updating management information in a data storage device, and a computer program. More specifically, the present invention relates to an apparatus and a method for executing a process of writing management information stored in a flash memory, for example, file management information such as a logical-physical address conversion table or a FAT (File Allocation Table). In particular, the present invention relates to a data storage device capable of increasing the resistance to an information loss error of management information, a management information updating method in the data storage device, and a computer program. 2.
  • Flash memory has been widely used as a data storage device in various electronic devices such as a personal computer (PC), a data recording / reproducing device, a PDA, and a video camera.
  • Flash memory which allows easy writing and erasing of data, has characteristics such as small size, light weight, high speed, and low power consumption, and is used as a storage medium for, for example, image data, audio data, text files, and programs.
  • memory cards that have a flash memory that can be attached to and detached from electronic devices are widely used.For example, a memory card that stores image data acquired by a video camera is mounted on a PC and played back.
  • the brush memory defines a block 110 as a data erasure processing unit and a page 120 as a data read / write unit.
  • the flash memory has a plurality of blocks, and one block is composed of a plurality of pages.
  • One page is composed of, for example, a data storage area 121 of 512 bytes and an extended area (extra area) 122 of 16 bytes for writing parity data and the like.
  • the data size of the data storage area and the extension area varies depending on the flash memory.
  • an address designation in the flash memory a process of converting a logical address as address designation information from an electronic device using the brush memory into a physical address as physical position information in the flash memory is performed.
  • the flash memory stores a logical-to-physical address conversion table, which is a table storing conversion information for converting a logical address to a physical address, in a management information area set for a specific block in the brush memory. .
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2000-47932
  • a flash memory for example, when an electronic device such as a PC reads data written on a certain page and updates the data, the updated data is read. The data is written to a position different from the page position that has been found. This is because there is an upper limit to the number of repetitions of writing and erasing of the storage element, and the life of the flash memory as a whole is increased by using the flash memory uniformly.
  • the logical address remains unchanged even when the physical data write position is changed by performing the above-described data update, for example, by performing the address conversion processing using the logical-physical address conversion table.
  • FAT Fe Allocation Table
  • FAT has been conventionally used as management information of file storage location information on hard disks, floppy disks, and the like. It is a table that manages the storage location of one data file by chaining clusters as a unit of data storage area, and FAT records cluster chaining information.
  • This FAT is also applied as the flash memory file management information described above.
  • One cluster as a data storage area unit in FAT applied to flash memory corresponds to, for example, one block in flash memory. That is, one data file is written over multiple blocks (corresponding to clusters) in flash memory.
  • the logical-to-physical address conversion template and the FAT are written in a predetermined block of the flash memory, and when a host device using the flash memory, that is, an electronic device such as a PC, uses the flash memory, the RAM in the host device is used. (Random Access Memory).
  • the logical-physical address conversion table and FAT read into the RAM of the host It is also updated under the control of the host device CPU according to the update of music data and image data stored in the menu memory.
  • the updated management information is written again to the management information area of the flash memory.
  • the outline of the data write or data read processing sequence for a memory card in a host device such as a PC equipped with a memory card having flash memory is as follows.
  • the file storage location management by FAT is referred to, the logical address as block chain information based on the cluster chain information based on FAT is obtained, and the logical address is converted to a logical-physical address conversion table. Based on the logical-to-physical address conversion, the access position is determined according to the physical address, and the actual access is performed.
  • the FAT and the logical-to-physical address conversion table are applied to processes such as data writing, reading, and erasing with respect to the flash memory.
  • the management information such as the FAT and the logical-to-physical address conversion table is written to the flash memory block. As described above, the management information needs to be updated as the data stored in the flash memory is updated.
  • step S21 the CPU as data writing, Z reading, and erasing processing control means searches for a predetermined block in the flash memory and determines whether or not there is an empty page in the block. If there is no empty page in the block, the process proceeds to step S23. If there is an empty page in the block, the process proceeds to step S22. In step S22, the CPU secures an empty page in the same block as the page in which the management information immediately before the update is written, as a new page for writing the updated management information.
  • step S23 since the page on which the management information is written is the last page of the block, the CPU secures an empty block in the flash and writes a new management information for updating the first page. Secure as a page.
  • steps S24 and S25 the CPU writes the updated management information to the new page secured in step S22 or step S23.
  • step S26 when step S25 is completed, all the management information in which the management information before update has been written is erased, that is, an erasing process is executed in block units to make an empty block. Thus, the updating process ends.
  • the management information is updated as described using the flowchart of FIG. 2, the management information of the flash memory block is updated as shown in FIG.
  • the management information is written from page number 0 of block 151, and up to page number n. Then, the process proceeds to block 152, and management information is written from page number 0 of block 152. In this way, the management information is updated sequentially for each block in the flash memory block. If the update process of the flash memory management information fails, or if an error occurs during the update process and new management information cannot be written in a normal state, the CPU immediately Will be treated as the latest value.
  • the flash memory has a characteristic that, when an error occurs in a process of writing data to a page, a skewing error occurs in which the entire data in the block to which the page belongs is an error.
  • a skewing error occurs when an error occurs in a certain bit of a page in a block, and the same bit in all other pages in the block also causes an error, causing damage to all data in the block. That is.
  • the update processing is performed. If the operation fails and an error occurs, an error occurs in all management information in the block having the page where the error occurred.
  • one memory cell of a flash memory could store only 1-bit information.However, in order to reduce the cost and increase the capacity of the flash memory, one memory cell requires two bits, and even four bits. When multi-valued storage of information is performed, the above-described skewing error covers a wide range of bits, and there is a problem that it cannot be dealt with only by an error correction code.
  • the present invention has been made in view of the above-described problems in the related art, and has a data storage device and a data storage device capable of protecting management information from a writing error accompanying update of management information.
  • An object of the present invention is to provide a management information updating method in a device and a computer program.
  • the present invention is particularly applicable to a data storage device and a data storage device in which file management information such as FAT is applied to a plurality of blocks, and update data is written by sequentially switching the blocks, thereby improving the resistance to errors.
  • the purpose of the present invention is to provide a management information updating method and a computer program. According to a first aspect of the present invention,
  • a data storage device having a data storage unit and a control unit that executes data input / output control for the data storage unit
  • the data storage section is divided into blocks in which a plurality of pages capable of storing data of a predetermined capacity are set, and includes a data area as a storage area for user data and address information for accessing the data area.
  • Management information area a data area as a storage area for user data and address information for accessing the data area.
  • the management information area stores file management information having address chain information of a data file stored in the data area
  • the control unit includes:
  • the update information of the file management information is stored in the configuration page of one block that forms a block set including two different blocks as a pair, and the file management information before update is left on the configuration page of the other block that forms the block set.
  • the data storage device has a configuration for executing a process of writing the updated file management information to the configuration page.
  • the file management information is a FAT (File Allocation Table), and the control unit executes the two different blocks in a process of writing FAT update information. It is characterized in that it applies a pair of block groups and writes the updated FAT information by alternately applying two blocks to the two block configuration pages that make up the block group. I do.
  • two physical addresses are set as address information of the block set corresponding to one logical address set for the file management information
  • the control unit obtains the two physical address information according to the logical address specifying the file management information to be updated, and updates the two blocks specified based on the two physical addresses.
  • the information write block is identified as a block set constituting the information write block.
  • the control unit is configured to update the update information of the file management information for each processing unit of a user data writing process to a data area as a storage area for user data. It is characterized in that it is configured to execute a writing process.
  • the management information area of the data storage unit further includes: a logical address set corresponding to data stored in the data area; It is characterized in that a logical-physical address conversion template in which a physical address set in correspondence with a physical position of stored data is stored.
  • the control unit may further include updating information of the logical-physical address conversion table to one of blocks forming a pair of two different blocks. A configuration for executing a process of leaving the pre-update logical / physical address conversion table configuration information on the block configuration page and writing the updated logical / physical address conversion table configuration information on the other block configuration page constituting the block group. It is characterized by.
  • the data storage device has a configuration detachable from the information processing device, and has interface means capable of inputting and outputting data to and from the information processing device
  • the control unit includes the interface A logical address from the information processing device is input through the interface means, two physical addresses are acquired according to the input logical address, and the two blocks specified based on the two physical addresses are updated in the update file. It is characterized in that it is configured to be identified as a set of management information write blocks.
  • the control unit executes the updating process of the file management information in page units, and sequentially alternates the configuration pages of the two blocks constituting the block group.
  • the update management information write process is executed by using the block, and if there is no free page in the two blocks constituting the block set, the block differs from the block in which the file management information immediately before the update is stored.
  • the present invention is characterized in that the block data is erased, and the writing process of the updated file management information is executed on the first page of the erase block. Further, a second aspect of the present invention is:
  • a management information updating method in a data storage device having a data storage unit and a control unit that executes data input / output control for the data storage unit
  • a logical address input step for inputting a logical address corresponding to the update management information
  • Block set identification that acquires two pieces of physical address information in accordance with the logical address and identifies two blocks specified based on the two physical addresses as a block set constituting a write block for updating file management information.
  • a method for updating management information in a data storage device characterized by having: Further, in one embodiment of the management information updating method in the data storage device of the present invention, the file management information is a FAT (File Allocation on Table), and the update information writing step configures the block set. A process of alternately applying two blocks to a two-block configuration page and executing a process of writing updated FAT information is performed. Further, in one embodiment of the management information updating method in the data storage device of the present invention, the file management information is updated for each processing unit of a user data writing process to a data area as a storage area for user data. The information writing step is performed.
  • FAT Fe Allocation on Table
  • the management information updating method in the data storage device further comprises two logical addresses according to the logical address input in the logical address input step.
  • the logical-physical address conversion template before update is left on the configuration page of one block constituting the block group, and the logical-physical address after update is stored on the configuration page of the other block constituting the block group.
  • Update information writing step of executing a process of writing address conversion table configuration information, and And wherein the Rukoto.
  • the update information writing step executes the file management information update process in page units, and the two blocks constituting the block set are updated.
  • the update management information is written using the block configuration pages alternately and sequentially. If there are no free pages in the block configuration pages that make up the block set, the file management information immediately before the update is Erases data of a block different from the stored block and writes updated file management information to the first page of the erased block. Processing is performed.
  • a third aspect of the present invention provides
  • a logical address input step for inputting a logical address corresponding to the update management information
  • Update information writing for executing a process of leaving the pre-update file management information on the configuration page of one block constituting the block group and writing the post-update file management information on the configuration page of the other block constituting the block group Steps and
  • the computer is characterized by having a program.
  • the file management information such as FAT, which is the address management information of the flash memory
  • FAT which is the address management information of the flash memory
  • a block set including two blocks is set as the storage block of the FAT configuration data.
  • update FAT information is written by alternately applying each page of the two blocks that constitute the block set, and the updated information is stored in one block that constitutes the block set while retaining the FAT information immediately before the update.
  • the block is configured to write to the block, so even when an update management information write error occurs, the FAT information immediately before the update is stored and stored, and processing using the FAT information immediately before the update, for example, data using the FAT information immediately before the update Access and re-update processing of FAT information management information using the FAT information immediately before updating can be performed.
  • two different physical addresses are set corresponding to one logical address corresponding to the FAT, and a two-block set is configured to write update data based on the logical address. Blocks can be extracted immediately, and blocks and pages to which update data is written are determined based on blocks and pages in which data before the previous update has been written. This makes it possible to execute the determination at high speed.
  • the erased block acquired as the conventional data re-storage sequence is acquired, and the erased block is erased from the block in which the pre-update data is stored. Since there is no need to execute processing such as copying page data to the block, the processing time for updating management information is reduced. Therefore, even if the user removes the memory card from the host after updating the data, the management information updating process including the FAT and logical / physical address conversion table is executed in a short time. The likelihood of an error occurring due to incomplete writing of the data is reduced.
  • the computer program of the present invention is, for example, a storage medium or a communication medium provided in a computer-readable format to a general-purpose computer system capable of executing various program code, for example, a storage medium such as a CDFD and an MO. It is a computer program that can be provided via a medium or a communication medium such as a network. By providing such a program in a computer-readable format, processing according to the program is realized on a computer system. Further objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described below and the accompanying drawings. BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 is a diagram illustrating a block and a page configuration in a flash memory.
  • FIG. 2 is a flowchart illustrating data write processing in the flash memory.
  • FIG. 3 is a diagram illustrating a memory configuration of a flash memory.
  • FIG. 4 is a diagram for explaining occurrence of an error in the flash memory.
  • FIG. 5 is a block diagram illustrating the configuration of the memory card of the present invention.
  • FIG. 6 is a diagram illustrating a data storage configuration of the flash memory of the present invention.
  • FIG. 7 is a diagram illustrating a page configuration of the flash memory of the present invention.
  • FIG. 8 is a diagram for explaining information stored in the management information area of the brush memory according to the present invention.
  • FIG. 9 is a diagram for explaining logical block management information as attribute information of storage information in the management information area of the brush memory according to the present invention.
  • FIG. 10 is a diagram for explaining physical block management information as attribute information of storage information in a management information area of a flash memory according to the present invention.
  • FIG. 11 is a diagram illustrating a process of updating the logical-physical address conversion table in the flash memory.
  • FIG. 12 is a diagram illustrating a process of updating the logical-physical address conversion table in the flash memory.
  • FIG. 13 is a diagram for explaining a process of updating the FAT in the flash memory.
  • FIG. 14 is a diagram for explaining the storage configuration of the logical-physical address conversion table and the FAT in the flash memory of the present invention.
  • FIG. 15 is a diagram for explaining a storage block configuration of a logical-physical address conversion table or FAT in the flash memory of the present invention.
  • FIG. 16 is a diagram illustrating an initial setting process management table in a host device equipped with a flash memory according to the present invention.
  • FIG. 17 is a flowchart illustrating data reading and writing processing in the flash memory of the present invention.
  • FIG. 18 is a flowchart for explaining management information update processing such as logical-physical address conversion table and FAT in the flash memory of the present invention.
  • FIG. 19 is a flowchart illustrating the timing of processing for updating management information such as logical-physical address conversion table and FAT in the flash memory of the present invention.
  • FIG. 20 is a diagram for explaining a management information update processing procedure such as a logical-physical address conversion table and a FAT in the brush memory of the present invention.
  • FIG. 21 is a block diagram showing an example of a hardware configuration of a PC as an information processing apparatus which mounts a flash memory and executes reading and writing of data.
  • BEST MODE FOR CARRYING OUT THE INVENTION The details of a data storage device, a method for updating management information in a data storage device, and a computer program according to the present invention will be described below with reference to the drawings.
  • the data storage device 200 includes a flash memory (FMEM) 230 and a control IC (Control IC) 210, and various host devices such as a PC, a data recording / reproducing device, and a video camera. (HO ST) Used by attaching to 300.
  • FMEM flash memory
  • Control IC Control IC
  • various host devices such as a PC, a data recording / reproducing device, and a video camera.
  • HO ST Used by attaching to 300.
  • a configuration that can be fixedly attached to one host device and used is also available.It is a configuration that can be attached to and detached from the host device, and can be used by attaching it to various host devices as necessary.
  • the data storage device 200 has a power supply terminal VC C and a ground VSS terminal.
  • the detection terminal (INS) is used by the host device 300 to detect the attachment / detachment state of the data storage device 200. Inside the data storage device 200, this detection terminal (INS) is grounded and connected to the power supply by the host device 300 via a pull-up resistor. Therefore, the detection terminal (INS) is at the “L” level when the data storage device 200 is mounted, and is at the “H” level when the data storage device 200 is not mounted.
  • the flash memory (FMEM) 230 is composed of a block as a data erase processing unit and a page as a data read / write unit. A page is composed of, for example, a data area of 512 bytes and a parity.
  • the data capacity of the data area and the extension area can be set in various ways.
  • a data storage device having a configuration of a 2048 byte data area and a 64 byte extension area (extra area).
  • the IZF 216 in the Control IC (Control IC) 210 performs data transfer control with the host device 300 equipped with the data storage device 200, and mainly performs serial / parallel conversion processing. Execute When writing data to the flash memory 230, the serial data sent from the host device 300 is synchronized with the transfer clock (SC LK) via the bidirectional data signal (SDIO 0 to 3) path. Then, it is converted to parallel data of multiple bits (for example, 8 bits, 16 bits).
  • SC LK transfer clock
  • SDIO 0 to 3 bidirectional data signal
  • both control commands and data are converted from serial data to parallel data.
  • Serial data is 1-bit data when only SDIO 0 is used, and 4-bit data when SDIO 0 to 3 are used.
  • the process of reading data from the flash memory 230 is performed as follows. First, the data stored in the flash memory 230 inside the data storage device 200 is read as parallel data of a plurality of bits, converted into serial data by the I / F 216, and converted into bidirectional data. It is output to the host device 300 via the signal (SDIO 0-3) path.
  • the register 211 comprises a status register, parameter register, etc., and data is input and output via a bidirectional data signal (SDIO 0 to 3) path.
  • the bidirectional data signal (SDIO 0-3) path is used for writing and reading control data and actual data itself.
  • the access control of the memory inside the data storage device 200 is performed by the control data input / output through the bidirectional data signal (SDIO 0 to 3) paths.
  • the page buffer 2 12 is a temporary data storage area for transfer data between the I / F 2 16 and the flash memory 230.
  • the attribute ROM 211 stores physical information of the control IC 210.
  • the OSC controller (OSCC ont) 215 generates a clock for the control IC 210 and controls the operation timing of the control IC 210.
  • the control unit 214 that executes data transfer control with the flash memory 230 includes a sequencer 221 as a control unit composed of a CPU and the like.
  • the data storage device 200 has a power supply (VC C) terminal, data input / output (SDIO 0 to 3) terminals for connection with the host device 300, and a bus state (BS) terminal. Input terminal, serial clock (SC LK) input terminal, installation detection (INS) detection terminal, and ground (VSS) terminal. Data is input / output via the bidirectional data line by the data input / output (SDIO 0 to 3) pins.
  • the bus state (BS) is supplied to the input terminal of the bus state (BS).
  • the bus state (BS) indicates the data status on the bidirectional data signal line via the data input / output (SDIO 0 to 3) terminals.
  • SDIO 0 to 3 terminals For example, the processing of the data storage device 200 is executed by changing the state according to control data or data itself before performing data access.
  • a data transfer port is supplied to the input terminal of the serial lock (SC LK).
  • the data transfer clock is a clock applied to control data and actual data transfer control.
  • the transfer clock is controlled by the bus state (BS) signal.
  • a flash memory is defined as a block as a data erasing processing unit and a page as a data reading and writing unit.
  • the flash memory has a plurality of blocks, and one block is composed of a plurality of pages.
  • One page is composed of, for example, a data storage area 121 of 512 bytes and an extended area (extra area) 122 of 16 bytes for writing parity data and the like.
  • the data size of the data storage area and the extension area varies depending on the flash memory, and data such as a configuration having a data storage area of 204 Bytes and an extension area (Extra area) of 64 Bytes is used. Data size can be set.
  • FIG. 6A shows the data structure of the flash memory.
  • the loader (L oader) area is the area that stores the load data at startup.
  • the control IC 210 reads information required for startup from the loader area immediately after power-on.
  • the management information area is an area composed of a block for storing a logical-physical address conversion table, file management information such as FAT, and a block unused as a substitute block.
  • the data area is an area composed of blocks storing user data such as images, sounds, texts, and programs.
  • the data area also includes a block in which these actual data and directory information including leading address information as index information are stored. The processing to which the management information is applied will be described later.
  • each segment (b_1) is divided into fixed-length data units called blocks.
  • the effective block number n is smaller than 5 1 1.
  • One block is divided by pages 0 to m as shown in Fig. 6 (b-3).
  • one page includes, for example, a data section of 512 bytes and an extension section of 16 bytes.
  • the configuration of the extension unit will be described later.
  • the page structure in the block is common to the loader area, management information area, and data area, and consists of a data section and an extension section as shown in Fig. 6 (b-4).
  • data read and write processing are performed in page units, and data erase processing is performed in block units. Further, data writing is performed only on erased pages. Therefore, the actual rewriting or writing of data is performed in units of blocks in principle.
  • data writing processing for storage information in the management information area for example, file management information such as a logical-physical address conversion table and FAT is executed according to a special writing processing method. These processes will be described later.
  • the configuration of the page will be described with reference to FIG. 7, and the data section stores data corresponding to each of the loader area, the management information area, and the data area. For example, if it is a page belonging to the configuration block of the loader area, information necessary for starting the control IC is stored, and if it is a page belonging to the configuration block of the management information area, a logical-physical address conversion table, FAT, etc.
  • Each piece of information such as file management information is stored.
  • various data files and directory information such as images, sounds, texts, and programs as user data are stored.
  • ECC error correction code
  • attribute information are stored in the extension area of the page.
  • the attribute information is composed of logical block management information and physical block management information as shown in the figure.
  • Fig. 8 shows the detailed configuration of the management information area.
  • the management information area has a table as a table applied to the conversion process from the logical address specified by the host to the physical address.
  • a logical-physical address conversion table block that stores the logical-physical address conversion table, a file management information block that stores, for example, FAT, which is file management information as chain information of data stored in the flash memory, and a late failure block occurred
  • a substitute block is stored as a substitute block or a free block for acquiring a new block during update processing.
  • the configuration of the present invention has a configuration in which updated information is sequentially written in the logical-physical address conversion table and the file management information (FAT) using a plurality of blocks. Specifically, for the logical-physical address conversion table or FAT data for one page, two different blocks are assigned as a block group, and the update data is written alternately to the pages of the two blocks that make up the block group. Execute.
  • the logical-physical address conversion table or FAT immediately before the update is maintained without being erased, and even if the logical-physical address conversion table or the FAT after the update is lost, the information immediately before the update is maintained. It becomes possible to use it and perform data access using the management information immediately before the update, and re-communication processing of the management information using the management information immediately before the update.
  • the file management information will be described below with reference to an example of a FAT conventionally applied as file management information of a hard disk.However, the file management information applied in the present invention is not limited to the FAT.
  • the present invention can be applied to a configuration using other file management information such as NTFS and HFS. Next, the configuration and storage information of the logical block management information (see FIG.
  • the management information area of the flash memory stores a logical-physical address conversion table, file management information such as FAT, and alternative blocks.
  • Figure FIG. 9 is a diagram for explaining the configuration and storage information of the logical block management information in the attribute information set for the pages constituting these blocks.
  • the data structure of the logical block management information is different for each block type, and the block type is held as the logical block management information. For example, if the block type is expressed as 2 bits, the logical-physical address conversion table is set to [0 0], file management information such as FAT is set to [01], and the alternative block is set to [11]. Is done.
  • the logical / physical address conversion table block information for converting a logical address into a physical address is stored in the data section, and the logical / physical address conversion table stored in the data section is stored in the logical block management information in which segment. Stores the block number indicating whether or not to support.
  • the logical address is the value assigned to the physical block.
  • the logical / physical address conversion table is set for each segment. Further, an update flag indicating whether or not the logical-physical address conversion table stored in the data section is being updated is updated.
  • Revision data as version information to be added with +1 is stored in the logical block management information.
  • the file management information defines 5 12 X bytes consisting of n sectors called clusters, with the basic unit of 512 bytes called sectors, and manages data allocation information in cluster units. .
  • the logical address indicates the sector address, and when converting the address, the lower bits of the sector address are used as a value indicating a page in the physical block. For example, if the number of pages per block is 32, the lower 5 bits are the page address.
  • File management information block that stores FAT as file management information The FAT is stored in the data section as file management information.
  • the logical block management information includes a block number corresponding to the logical address of the FAT stored in the data section, and the FAT update information.
  • the revision data is stored as the version information to be added with +1.
  • the replacement block is a replacement block when a late failure block occurs, and is an erased physical block to which no logical address is assigned.
  • a normal [1] flag and a bad [0] flag indicating whether the block is a normal readable / writable block are set in the bad block flag.
  • the erase flag a flag indicating whether the block has not been erased [1] or erased [0] is set. Blocks that have been assigned a logical address and are in use will be normal [1] and not erased [1], and will be normal [1] and erased [1] in the alternate block.
  • flash memory reads and writes data. Data is erased in units of pages, and data is erased in units of blocks. In addition, data is written only to erased pages. Therefore, when updating the data read from the flash memory and writing the updated data to the flash memory, the updated data does not overwrite the area where the data before the update has been written, but the erased write. A possible page is extracted and written to the extracted erased page. Therefore, the physical address as the data write position is frequently changed with data update.
  • Fig. 11 (a) schematically shows four blocks extracted from a certain segment. Physical blocks are fixedly assigned to the three blocks, and the other block is an alternative block. This physical address is determined according to the physical arrangement order of the blocks in the memory, and the relationship between a certain block and the physical address assigned to the block remains unchanged. For the four blocks shown in Fig.
  • the address values of physical addresses are [0 x 1 1], [0 x 1 2], [0 x 1 3], and [0 x 1]. 4] has been granted.
  • 0 X means hexadecimal data.
  • the two numbers after 0X represent the actual address.
  • the correspondence between the logical address before updating the data and the physical address is as follows: the logical address (0x02) is the physical address [0x11] and the logical address is the logical address. It is assumed that the physical address [0x12] is for (0x03) and the physical address is [0x14] for the logical address (0x04).
  • Physical address [0 X 1 3] is not assigned a logical address because it is an alternative block.
  • file 0 written by the host is stored in block 0 and block 1 of physical addresses [0x11] and [0x12].
  • the host device reads data using the logical address (0x02)
  • the logical-physical address conversion table converts the logical address (0x02) to the physical address [0X11]. And outputs block 0 data to the host.
  • the host updates the data in block 0 and stores it in flash memory, it extracts the erased writable pages instead of overwriting the pages where the data before the update was written, as described above. Then, the updated data is written to the extracted deleted page.
  • block 0 retains the value before the update and has not been erased, so the updated data is written to an alternative block, which is an erased block, here block 2.
  • the logical-physical address conversion table is updated in order to keep the logical address of the updated data the same as the logical address (0x02) for the data before updating.
  • the logical address (0x02) is associated with the physical address [0x13] of the block 2 where the updated data has been written, and the physical address [0 X 1 1] is erased before or after the execution of the write process to block 2 and becomes a new alternative block. This processing enables the host to access data using the same logical address before and after updating.
  • the logical address is an address assigned so as to accompany the data written to the block.
  • This logical address is an address managed by a FAT file system described later.
  • physical addresses are This address is fixedly assigned to the network.
  • FIG. 12 shows an example of updating the logical-physical address conversion table in accordance with the data update.
  • the logical-physical address conversion table is stored in the management information area of the flash memory as described above, and is updated when the data is updated as described above.
  • FIG. 12 shows an example of updating the logical-physical address conversion table corresponding to the data update of FIG.
  • the logical / physical address conversion table before the update is shown in FIG. 12 (a), and the logical / physical address conversion table after the update is shown in FIG. 12 (b).
  • the logical-physical address conversion table is configured as a sequence of physical addresses corresponding to sequential logical addresses. Update fir is the correspondence between (logical address) and [physical address]
  • these rewritten logical-physical conversion tables are configured to alternately write update data to pages of each block by using two blocks. That is, a process of allocating two different blocks to the logical-physical conversion table configuration data for one page and writing the update data alternately is executed.
  • the logical-physical conversion table immediately before the update is retained without being erased in the page in one block of the pack group, and in the unlikely event that the updated logical-physical conversion table is lost. Also, the logical-physical conversion table immediately before updating can be used.
  • the file management information refers to the logical / physical address conversion table to specify the physical address corresponding to the logical address specified by the FAT, and access the block indicated by the specified physical address. It becomes possible.
  • file management information such as FAT will be described with reference to FIG.
  • Data files stored in flash memory are managed in units called clusters.
  • Physical sectors on the data area of the flash memory are In this case, this corresponds to a page as a write / read unit, but a cluster as a file management information (FAT) management unit consists of multiple sectors.
  • Files are configured in clusters, but data files stored in flash memory are often stored across multiple clusters.
  • the FAT is a table having cluster chain information on such data files distributed and stored in a plurality of clusters.
  • the FAT entry stores chain information of logical addresses that correspond one-to-one with a cluster of flash memory, for example, a block.
  • the first cluster of the file is recorded in the directory together with the file name.
  • FIG. 13 shows (a) the directory of the data file stored in the data area of the flash memory, and (b) FAT as the file management information stored in the management information area.
  • FAT is a tape that stores the chain information of clusters as a unit of data storage area. If a data file is recorded across multiple clusters, the data file is constructed by acquiring the chain information according to FAT. The cluster position of all data to be acquired can be obtained, and access to all data that composes the data file becomes possible.
  • a cluster corresponds to, for example, one block in flash memory. In other words, when one data file is written over multiple blocks (corresponding to clusters) of the brush memory, the chain information of multiple blocks is stored in the FAT.
  • the cluster identifier as chain information set in the FAT corresponds to the logical address applied in the logical-physical address conversion table. In the directory stored in the data area of the flash memory, for example, as shown in Fig.
  • a file name, an extension, and a leading cluster identifier are stored.
  • the host can refer to the FAT according to the leading cluster identifier stored in the directory and know the chain of custors storing one file data, and sequentially obtain the cluster identifier according to the chain information. I do.
  • cluster The identifier corresponds to a logical address. These logical addresses are applied to the above-mentioned logical-physical address conversion table to obtain physical addresses and to obtain data from data storage positions.
  • the file (AB C. txt) in the directory (a) shown in Fig. 13 has the first cluster identifier (0x08) and the next cluster identifier at 0x08 in the FAT.
  • the cluster identifier corresponds to a logical address
  • the value obtained by removing the page address from the cluster address obtained from the FAT is converted to a physical address according to the above-described logical-physical address conversion table. After conversion, the actual physical data storage position in the flash memory is obtained, and data access is performed.
  • the FAT is changed as needed by adding new data or rewriting.
  • the size of one cluster is, for example, 32 KB, or 16 KB yte. Therefore, for example, when a certain data file is updated and the data amount increases, it is necessary to acquire a new cluster, and the rewriting of the FAT, that is, the updating process is required.
  • the updated FAT is stored in the management information area of the flash memory.
  • the updated FAT is stored in one page of FAT data in the form of two different blocks as in the case of the above-mentioned logical-physical address conversion table. A block group is allocated, and a process of writing update data alternately to blocks is executed using the configuration page of each block constituting the block group.
  • FIG. 14 is a diagram showing a conceptual diagram of a storage configuration of a logical-physical address conversion table and FAT management information stored in the flash memory. As shown in FIG. 14, the logical-physical address conversion table and FAT management information are stored in (a) the management information area of the flash memory. (b) As shown in the FAT storage table, each of the FAT configuration data includes
  • FAT1-even number, FAT1-odd number is one block set
  • FAT Two different blocks are set as a FAT storage block pair for configuration data.
  • adjacent blocks are shown as a block group, but blocks that are separated may be set as a block group.
  • logical-physical address conversion table two different blocks are allocated as a pack group for each of the configuration data of the logical-physical address conversion table.
  • logical-physical address conversion table 1-even number, logical-physical address conversion table 1 1 odd number is one block set, and hereafter, logical-physical address conversion table 2-even, logical-physical address conversion table 2—Odd number to logical / physical address conversion table n-even number, logical / physical address conversion table n—up to odd number, for logical / physical address conversion table configuration data
  • Two different blocks are set as logical-physical address conversion table storage blocks. The odd and even numbers that make up each set are used for convenience to distinguish the blocks.If two different sets of blocks are used, the block No may be either odd or even. Absent.
  • FIG. 15 is a diagram illustrating a procedure for updating file management information such as a logical-physical address conversion table and FAT stored in the management information area (see FIG. 6) of the flash memory.
  • a block set is prepared, which is a set of two blocks for writing update information.
  • the serial number (version number) is set from 0 to the pages in the even and odd blocks.
  • the updated FAT information is recorded on each page of each block in the order of this serial number. For example, as shown in Fig. 15, even block 501 is given a page serial number of 0, 2, 4, 6 ... and odd block 502 is given a page number of 1, 3, 5, 7, ... A serial number is given.
  • the updated FAT report will be written in the page in the order of serial numbers 0, 1, 2, 3, 4, 5, 6, 7, ....
  • Each page of the even block 501 and the odd block 502 is assigned a page number independent of the block, and the page numbers of the serial number 0 and the serial number 1 are 0, Page number of 2 and serial number 3 has a relationship like 1.
  • the serial numbers given to each page of the even block 501 and the odd block 502 are provided for convenience of explanation. Therefore, when the host device writes the updated FAT information, it does not directly specify the serial number, but writes the desired management information on the Nth page counted from the predetermined reference page in the block.
  • the update data is written based on the specified information.
  • management information before update that is, file management information such as FAT before update or a logical-physical conversion table is left on the configuration page of one block that constitutes a group of two different blocks. And performs a process of writing the updated management information to the configuration page of the other block constituting the block.
  • the process of writing the update management information is executed by using the configuration pages of the two blocks constituting the block group alternately and sequentially. If there are no free pages in the block pages that make up the block set, a new block is secured from the alternative blocks, the update management information is written to the first page, and the management information immediately before the update is stored. Erase the data of the block different from the block.
  • two physical addresses of two blocks forming a block set for one logical address set for management information that is, file management information such as FAT or a logical-physical conversion table, are included.
  • the control unit of the data storage device obtains two pieces of physical address information according to the logical address that specifies the file management information to be updated, and specifies the physical address information based on the two physical addresses. Identify the two blocks as a block set that constitutes a write block for update file management information, and execute update information write processing by alternately applying the constituent pages of the two blocks that constitute the block set.
  • step S101 the host reads information from a loader (L oader) area (see FIG. 6) of the flash memory.
  • Initial information for operating the control IC is stored in the loader area of the flash memory.
  • steps S102 and S103 attribute information of each block in the management information area of the flash memory is read, and an entry based on the read information in the ROM is registered in the management table.
  • the management table generated based on the attribute information of each block in the management information area of the flash memory has a block type, block number / entry number, physical address block 1, physical address block 2 as shown on the right of the flow. Each item.
  • the management information area of the flash memory stores a logical-physical address conversion table, file management information such as FAT, and each block of an alternative block.
  • the management table shown in Fig. 16 is generated based on the data read from the attribute information (see Figs.
  • a block type ID indicating FAT is stored as the block type.
  • the item [block number entry number] stores the logical address calculated from the sector address in the logical format. This indicates the logical address where the FAT data is stored.
  • the items [Physical Address Block 1] and [Physical Address Block 2] store the physical addresses of the two blocks of the above even and odd blocks.
  • step S201 the directory of the read data file is searched. As described with reference to FIG.
  • the directory has an identifier such as a name of each data file and a cluster identifier as a leading logical address.
  • the first cluster address of the data file is obtained from the directory, and based on this cluster address, the logical address is converted into a physical address according to a logical-physical address conversion table, and the physical address is converted.
  • the data is acquired from the flash memory data storage location specified based on the address.
  • the storage location of the logical-physical address conversion table can be specified according to the physical address of the logical-physical address conversion table acquired based on the management table described above.
  • step SS203 a continuous cluster identifier constituting the file data, that is, the next logical address is obtained based on the cluster chain information based on the FAT described above.
  • the FAT storage location is accessed by the FAT storage physical address obtained based on the management table described above.
  • the logical address based on the chained cluster information obtained based on the FAT is further converted to a physical address according to a logical-physical address conversion table, and data is obtained from a data storage position of the flash memory specified based on the physical address. .
  • Steps S202 and S203 are repeatedly executed until it is confirmed in step S204 that the final data of the data file is stored, so that the data is stored in a plurality of clusters (blocks).
  • data write processing to the flash memory will be described with reference to the processing flow of FIG. 17 (b).
  • step S301 a FAT and a directory search for determining a logical address to be written are performed.
  • step S302 data writing is sequentially performed on the acquired configuration pages of the block.
  • step S303 the correspondence between the physical address and the logical address corresponding to the block in which the data was written is written. Is set. That is, the process of updating the logical / physical address conversion table is executed. As described above with reference to FIG. 15, the updating of the logical and physical address is performed in such a manner that the configuration pages of two different blocks are alternately used. The specific processing procedure will be described later with reference to FIG.
  • step S304 it is determined whether or not the write data has been completed. If not, in step S305, the logical address is further determined based on the FAT, and determined in step S302. The data is sequentially written to the configuration page of the logical address.
  • step S303 the management information is updated, that is, the logical-physical address conversion table is updated, and the FAT as address chain information (cluster chain information) is updated.
  • Steps S302-S305 are repeatedly executed. Based on the determination that the write data has ended in step S304, the processing ends.
  • Update processing of the logical / physical address conversion table executed in step S303 The update processing of the FAT having the cluster chain information indicating the address chain information and the chain chain information is executed by using the page alternately for different sets of blocks as described above with reference to FIG. This specific processing procedure will be described with reference to the processing flow of FIG. In the processing flow of FIG. 18, as described with reference to FIG.
  • an even block and an odd block are a set of blocks in which file management information such as a logical-physical address conversion table or FAT is written alternately.
  • the control unit searches the flash memory for a page in which the management information immediately before the update is written. This is obtained based on the information in the management table described above.
  • the management information in this flow is meant to include both logical and physical address conversion tables and file management information such as FAT.
  • the process proceeds to step S503, and if it is not an odd block page, the process proceeds to step S506.
  • the update management information is a page provided with a serial number next to the page in which the management information immediately before the update is written, that is, the management information write block before the update. It will be written to a different block page. If the management information immediately before the update has been written to the page of the odd block, the update management information is written to the even block, and in step S503, the control unit writes the management information immediately before the update.
  • step S504 The page number of the even block corresponding to the page number obtained by incrementing the page number of the existing odd block by 1 is calculated as the write page number of the update management information.
  • step S504 the even block was calculated in step S503. It is determined whether there is a blank page corresponding to the page number. If there is a blank page, the process proceeds to step S509, and if there is no blank page, the process proceeds to step S505.
  • the determination processing in step S504 corresponds to a step of determining whether the page of the odd block in which the management information immediately before the update is written is the last page of the odd block.
  • step S504 it is determined whether there is a blank page in which update management information is to be written in the even page. If there is no page in which updated management information is to be written, in step S505, an alternative block is set as an even block. A new block is acquired from the list, all old management information written in the old even block is erased, and the first page, that is, the page with page number 0 (serial number 0), is updated.
  • the management information updated to the secured and secured first page that is, the update processing of the logical-physical address conversion table or the update data of the file management information such as FAT is written. If it is determined in step S504 that there is a blank page corresponding to the page number calculated in step S503 in the even block, the blank page is updated in step S509. Then, write processing of the management information, that is, file management information such as logical-physical address conversion table or FAT is executed.
  • step S502 If it is determined in step S502 that the page to which the pre-update data is to be written is not an odd block page, the process proceeds to step S506, where the page number of the page in which the management information immediately before the update is written It is determined whether or not is the first page of the even block, that is, page number 0 (serial number 0). If the management information immediately before the update is written to the first page of the even block, that is, page number 0 (serial number 0), the process proceeds to step S507, and all the information written to the odd block is deleted. Erase and secure the first page of the odd block, that is, page number 0 (serial number 1) as a write area for update management information.
  • step S506 If it is determined in step S506 that the management information immediately before the update is written to a page other than the first page of the even block, the process proceeds to step S508, and the management information immediately before the update is written.
  • the same page number as the page number of the even block is secured as a page area for writing update management information in the odd block.
  • step S509 the control unit performs a process of writing the management information updated to the page secured in the odd block, that is, the update data of the logical-physical address conversion table or the update data of the file management information such as the FAT. Execute.
  • the update of the logical-physical address conversion table or the update processing of the file management information such as FAT is performed by setting two blocks as a set of blocks and using the pages alternately in the blocks. Since the update management information is written, the update is performed, for example, when the memory card is removed from the host device during the update processing of the management information, or when the power is turned off. Even if a management information write error occurs, the data immediately before the update is stored and retained without being lost, and at least processing using the management information before the update becomes possible. Therefore, it is possible to perform data access using the management information before the update and re-update the management information using the management information immediately before the update, thereby realizing a management information storage configuration that is highly resistant to errors.
  • the logical-physical address conversion table is updated or the file management information such as FAT is updated each time data is written to the user data stored in the data area of the flash memory.
  • Figure 19 shows the sequence for executing the process of writing the management information update data to the management information area of the flash memory every time data is written to the data area of the flash memory, and the multiple times of writing data to the data area of the flash memory.
  • the sequence of executing the processing of writing the update data of the management information collectively to the management information area of the flash memory after the end is shown as flows (a) and (b), respectively.
  • step S712 With respect to the data writing in step S711, in step S712, the management information, that is, the update data of the logical-physical address conversion table or the update data of the file management information such as FAT is Is written, data is written in step S713, update data of management information is written in step S714, and data writing and management information writing are repeatedly performed in the same manner.
  • step S713 The power supply to the memory card stopped, such as when the memory card was removed from the host before the writing of the update management information corresponding to these data (S714) was completed. In this case, the address information of only the write data in step S713 is not written to the FAT / logical / physical address conversion table in the management information area.
  • step S728 shows a sequence in which the management information updating process is executed at a rate of once every four data writing processes.
  • the management information that is, the update data of the logical / physical address translation table or the file management information such as FAT Write the updated data of
  • the writing of the update management information corresponding to the four write data in steps S724 to S727 is completed.
  • the address of only the four write data in steps S724 to S727 will be stored in the management information area. Since it is not written to the FAT and logical / physical address conversion table, access becomes impossible. As described above, it is preferable to update the management information every time user data is written, as shown in FIG. 19 (a), since the amount of data that cannot be accessed based on the update management information is reduced. . Furthermore, the management information updating process of the present invention described above with reference to FIG. 20, that is, file management information such as logical-physical address conversion table and FAT is updated using pairs of two different blocks alternately using pages. The sequence of the processing to be performed will be described. FIG.
  • step S701 a logical address corresponding to management information to be updated is input. This logical address is obtained based on the management table described above (see Fig. 16).
  • step S702 a block in which update management information is to be written is acquired based on the management table.
  • the management information stored in the information area that is, the file management information data such as the logical-physical address conversion table and the FAT, is used to update the update data by alternately using the constituent pages of two blocks (even block and odd block). Execute the writing process. Therefore, two physical blocks are associated with one logical address.
  • the update management information that is, the write block and page of the file management information such as the updated logical / physical address conversion table or FAT are determined. This determination process is performed according to the procedure described above with reference to FIG.
  • step S704 a process of writing the updated logical / physical address conversion table or FAT or other file management information as update information from the host is executed, and the management information is updated. finish.
  • the management information immediately before the update remains in block B, and the updated management information is recorded in block C.
  • the management information before the update that is, the file management information such as the logical-physical address conversion table and the FAT is maintained without being erased, and the error in the above-described update process is maintained.
  • the update process does not require the extraction of new erased blocks and the copy of pages that do not need to be updated in the pre-update data storage block.
  • the processing time in the management information update processing can be reduced.
  • rewriting of data in the flash memory is usually performed on the erased block, processing for securing the erased block, and copying of the data block before writing the new data to the new write block. Processing and the like were required for each update.
  • the management information Two blocks are pre-assigned as write blocks for the management information, and management information can be updated simply by executing the process of writing only the updated pages sequentially to different blocks in page units, greatly reducing the processing time. It becomes possible.
  • the process of securing erased blocks only occurs when all allocated pages are used, so there is little effect on processing speed. Therefore, even if the user removes the memory card from the host after updating the data, the management information updating process including the FAT and logical / physical address conversion table is executed in a short time, so the management The possibility of errors occurring due to incomplete writing of information is reduced. For example,
  • the conventional processing method that is, copying the data of the old block, in which the data before the update was stored in the erase block, and writing the updated page, the processing time becomes
  • Tr X (P n — 1) indicates the page read time of the I-day block necessary for the copy processing of the update-unnecessary pages (the number of pages: P n -1), and T w XP n indicates the new The update time for the block + the write time of the copy page (number of pages: P n), and Te indicates the erase time of the block.
  • the configuration of the present invention that is, the time required for the update information writing process using the block
  • the time required for the configuration of the present invention that is, the time required for writing the update information using the block group is significantly reduced as compared with the conventional processing time. Therefore, even if the user removes the memory card from the host after updating the data, the management information update process is executed in a short time, and there is a possibility that an error may occur due to incomplete writing of the management information. Decrease. [Configuration of host device]
  • a CPU (Central Processing Unit) 701 executes various processes according to a program stored in a ROM (Read Only Memory) 702, an HDD 704, or the like.
  • the RAM 703 stores program data executed by the CPU 701 as appropriate.
  • the CPU 701, the ROM 702, the RAM 703, and the HDD 704 are interconnected via a bus 705.
  • An input / output interface 706 is connected to the bus 705, and an input / output interface 706 includes, for example, an input constituted by a keyboard, switch, button, mouse, or the like operated by a user.
  • a unit 707 is connected to an output unit 708 including an LCD, a CRT, a speaker, and the like for presenting various kinds of information to a user.
  • a communication unit 709 functioning as a data transmission / reception means, and a memory card 711 having a flash memory as described above can be mounted, and an interface for reading or writing data from the memory card 711 is provided.
  • Flash memory I / F 710 is connected.
  • the configuration shown in Fig. 21 is an example of an information processing device using flash memory.
  • PCs personal computers
  • information processing devices that use flash memory are not limited to PCs, but include mobile communication terminals such as video cameras, mobile phones, PDAs, and other devices such as playback devices and displays.
  • the present invention has been described in detail with reference to the specific embodiments.
  • the program can be stored on removable recording media such as flexi-puno disk, CD-ROM (Compact Disk Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disk), magnetic disk, and semiconductor memory. It can be stored (recorded) temporarily or permanently.
  • a removable recording medium can be provided as so-called package software.
  • the program is installed on the computer from the removable storage medium as described above, and is wirelessly transferred from the download site to the computer. Or via a network such as a LAN (Local Area Network) or the Internet, and transfer it to a computer via a wire.
  • the computer receives the transferred program and installs it on a recording medium such as a built-in hard disk be able to.
  • file management information such as FAT, which is address management information of flash memory
  • FAT which is address management information of flash memory
  • a block group consisting of two blocks is set as a data storage block, and the pages of the two blocks that compose the block group are alternately applied and updated.FAT information is written, and one block that composes the block group is written.
  • the update information is written to the other block while retaining the FAT information immediately before the update, the FAT information immediately before the update is stored and held even when an update management information write error occurs, and the FAT information immediately before the update is stored.
  • two different physical addresses are set corresponding to one logical address corresponding to the FAT, and a two-block set is configured to write update data based on the logical address. Blocks can be immediately extracted, and blocks and pages to which update data is written are determined based on blocks and pages in which data before the previous update has been written.
  • the erased block acquired as the conventional data re-storage sequence is obtained, and the erased block is erased from the block in which the data before update is stored. Since there is no need to execute processing such as copying page data to the block, the processing time for updating management information is reduced. Therefore, even if the user removes the memory card from the host after updating the data, the management information updating process including the FAT and the logical-physical address conversion table is executed in a short time. The possibility of occurrence of an error based on incomplete writing is reduced.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

管理情報の更新に伴う書き込みエラーに対する耐性の高いデータ記憶装置および管理情報更新方法を提供する。フラッシュメモリのアドレス管理情報であるFAT等のファイル管理情報をメモリの管理情報領域に格納するとともに、FAT構成データの格納ブロックとして2つのブロックからなるブロック組を設定し、ブロック組を構成する2つのブロックの各ページを交互に適用して更新FAT情報を書き込む。ブロック組を構成する1つのブロックに更新直前のFAT情報を保持したまま、更新情報をもう一方のブロックに書き込む構成としたので、更新管理情報の書き込みエラー発生時にも更新直前のFAT情報を利用した処理が可能となる。

Description

明 細 書 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びに コンピュータ . プログラム 技術分野 本発明は、データ記憶装置、およびデータ記憶装置における管理情報更新方 法、 並びにコンピュータ 'プログラムに関する。 さらに、 詳細には、 ブラッシ ュメモリに格納する管理情報、例えば論理物理ア ドレス変換テーブル、 あるい は F A T (Fi le Allocation Table) 等のファイル管理情報の書き込み処理を 実行する装置および方法に関する。特に、管理情報の情報消失エラーに対する 耐性高めることを可能としたデータ記憶装置、およびデータ記憶装置における 管理情報更新方法、 並びにコンピュータ · プログラムに関する。 背景技術 昨今、 P C (パーソナルコンピュータ)、 データ記録または再生装置、 P D A、 ビデオカメラ等、各種の電子機器におけるデータ記憶装置としてブラッシ ュメモリが多く利用されている。データの書き込みおよび消去が容易なフラッ シュメモリは、 小型、 軽量、 高速性、 低消費電力といった特性を有し、 例えば 画像データ、 音声データ、 テキストフアイノレ、 プログラム等の記憶媒体として 利用される。 特に、フラッシュメモリを電子機器に対して着脱自在な構成としたメモリ力 一ドが盛んに利用されており、例えばビデオカメラで取得した画像データを蓄 積したメモリカードを P Cに装着して再生したり、あるいは P Cにおいてイン ターネットを介して、 あるいは C D、 D V D、 M D等の記憶媒体から取得した 音楽データをメモリカードに格納し、携帯プレーヤにメモリカードを装着して 再生するなどの利用がなされる。 図 1に示すように、 ブラッシュメモリには、データの消去処理単位としての ブロック 1 1 0、 および、 データの読み出し、 書き込み単位としてのページ 1 2 0が規定されている。 フラッシュメモリは、 複数のブロックを有し、 1プロ ックは複数ページによって構成される。 1ページは、例えば 5 1 2 B y t eの データ格納領域 1 2 1とノ リティーデータなどを書き込む 1 6 B y t eの拡 張領域 (E X t r a領域) 1 2 2とから構成される。 なお、 データ格納領域、 拡張領域のデータサイズはフラッシュメモリに応じて様々である。例えば、 2 0 4 8 B y t eのデータ格納領域 1 2 1と、 6 4 B y t eの拡張領域(E x t r a領域) 1 2 2との組み合わせ等もある。 フラッシュメモリに対するデータの書き込み、データの読み出し、 あるいは 消去処理は、フラッシュメモリの特定のデータ領域をァドレスにより指定する ことが必要となる。 フラッシュメモリにおけるァドレス指定では、 ブラッシュ メモリ を利用する電子機器からのァ ドレス指定情報としての論理ァドレスか ら、フラッシュメモリにおける物理的位置情報としての物理ァドレスに変換す る処理が行われる。 フラッシュメモリは、論理ァ ドレスを物理ァドレスに変換するための変換情 報を格納したテーブルである論理一物理ァドレス変換テーブルをブラッシュ メモリ内の特定のプロックに設定された管理情報領域に記憶している。 フラッシュメモリにおける論理一物理ァドレス変換テーブルの適用構成に ついては、 例えば特許文献 1 (特開 2 0 0 0— 4 7 9 3 2号公報) に記載され ている。 フラッシュメモリにおいては、例えばあるページに書き込まれたデータを P C等の電子機器が読み出してデータ更新を行った場合、その更新データは、読 み出したページ位置とは異なる位置に書き込まれる。 これは、記憶素子の書き 込み 消去の繰り返し回数に上限があり、フラッシュメモリの均一な利用を行 つてフラッシュメモリ全体としての寿命を高めるためである。 論理—物理ァ ドレス変換テーブルを適用したァ ドレス変換処理により、例え ば上述のようなデータ更新が実行されて物理的なデータ書き込み位置を変更 した場合であつても論理ア ドレスを不変とすることが可能となり、電子機器側 では、更新前後において同一の論理ァドレスを適用したデータ読み出しまたは 書き込みが可能となる。 また、 P C等において適用されるファイル管理システムとして、例えば F A T (Fi le Allocation Table)がある。 F A Tは、 ハードディスク、 フロッピー ディスク等におけるファイル格納位置情報の管理情報として従来から利用さ れている。 1つのデータファイルの格納位置をデータ格納領域の単位としての クラスタの連鎖によって管理するテープルであり、 F A Tはクラスタ連鎖情報 を記録している。 この F A Tは、上述したフラッシュメモリのファイル管理情 報としても適用されている。 フラッシュメモリにおいて適用する F A Tにおけるデータ格納領域単位と しての 1クラスタは、フラッシュメモリ において例えば 1プロックに相当する すなわち、 1つのデータファイルがフラッシュメモリの複数プロック (クラス タに相当) にわたつて書き込まれている場合、複数プロックの連鎖情報が F A Tに格納される。 論理一物理ァドレス変換テ一プルおよび F A Tは、フラッシュメモリの所定 プロックに書き込まれ、 フラッシュメモリを利用するホス ト機器、すなわち P C等の電子機器が、 フラッシュメモリを使用する際にホスト機器内の R A M (Random Access Memory) に読み込んで利用する。 ホスト機器の R A Mに読み 込まれた論理—物理ア ドレス変換テーブルおよび F A Tは、例えば、 ブラッシ ュメモリに格納する音楽データや画像データの更新等に応じてホスト機器の C P Uの制御の下に併せて更新される。更新された管理情報は、再びフラッシ ュメモリの管理情報領域に書き込まれる。 P C等、フラッシュメモリを持つメモリカードを装着したホスト機器におい て、メモリカードに対するデータ書き込みまたはデータ読み出し処理シーケン スの概要はいかの通りである。アプリケーション処理プログラムの要求に伴つ て F A Tによるファイル記憶位置管理が参照され、 F A Tに基づくクラスタ連 鎖情報に基づくプロック連鎖情報としての論理ァドレスを取得し、 さらに、論 理—物理ァ ドレス変換テーブルに基づいて論理—物理ァ ドレス変換が行われ て、物理ァドレスに従ってアクセス位置が決定され実際のアクセスが行われる ことになる。 上述したように、 フラッシュメモリに対するデータ書き込み、 読み出し、 あ るいは消去等の処理には、 F A Tおよび論理一物理ァドレス変換テーブルが適 用される。これら F A Tおよび論理一物理ァドレス変換テーブル等の管理情報 は、 フラッシュメモリのブロックに書き込まれる。 上述したように、フラッシュメモリに格納するデータ更新に伴い管理情報の 更新も必要となる。 図 2に示すフローチヤ一トを用いて、 フラッシュメモリの 管理情報の更新処理手順について説明をする。 ここでは、 ある管理情報がフラ ッシュメモリ内の所定のプロックに書き込まれているとする。 まず、 ステップ S 2 1において、データ書き込み Z読み出し 消去処理制御 手段としての C P Uが、 フラッシュメモリ内の所定のプロックを検索し、 プロ ック内に空ページがあるかどうかを判断する。プロック内に空ページがない場 合はステップ S 2 3に進み、プロック内に空ページがある場合はステップ S 2 2に進む。 ステップ S 2 2において、 C P Uは、更新直前の管理情報が書き込まれてい るページと同一のプロックにある空ページを、更新した管理情報を書き込むた めの新しいページとして確保する。 ステップ S 2 3において、 C P Uは、管理情報が書き込まれているページが 当該プロックの最後のページであるため、フラッシュ内の空きプロックを確保 し、その先頭ページを更新した管理情報を書き込むための新しいページとして 確保する。 ステップ S 2 4 , S 2 5において、 C P Uは、 ステップ S 2 2またはステツ プ S 2 3で確保した新しいページに更新した管理情報を書き込む。ステップ S 2 6では、ステップ S 2 5が終了すると更新前の管理情報の書き込まれた管理 情報を全て消去、つまりブロック単位の消去処理を実行して、空きプロックに する。 以上で更新処理は終了する。 図 2のフローチヤ一トを用いて説明したように管理情報の更新が行われる と、フラッシュメモリのプロックは図 3に示すように管理情報が更新されてい <。 管理情報が書き込まれるプロックをプロック 1 5 1、プロック 1 5 2とする と、 まず、 ブロック 1 5 1のページ番号 0から管理情報は書き込まれ、 ページ 番号 nまで書き込まれる。 続いて、 ブロック 1 5 2へと移り、 ブロック 1 5 2 のページ番号 0から管理情報が書き込まれる。 このようにして、 フラッシュメ モリのプロックへは、 プロック毎に順番に管理情報が更新されていく。 また、フラッシュメモリの管理情報の更新処理で、更新処理に失敗した場合、 あるいは更新処理中に異常が発生し、新しい管理情報を正常な状態で書き込む ことが出来なかった場合、 C P Uは、更新直前の管理情報を最新の値として扱 うことになる。 ところで、 フラッシュメモリは、ページにデータを書き込む処理においてェ ラーが発生した場合、そのページが属するプロック内のデータ全体にエラーが 及ぶ串刺しエラーという現象を生じてしまう特性がある。 串刺しエラーとは、図 4に示すように、 プロック内のページのあるビットに エラーが生じると、プロック内の他の全てのページの同一ビットもエラーが生 じプロック内全てのデータがダメージを被るというものである。 図 2のフローチヤ一トを参照して説明したフラッシュメモリ内の管理情報 の更新では、ブロック内の更新前の管理情報が書き込まれているページの次の 空きページに管理情報を書き込むので、更新処理に失敗しエラーが生じた場合、 エラーが生じたページを有するプロック内の全ての管理情報にエラーが生じ てしまう。 したがって、更新処理に失敗した場合に必要となる更新直前の管理 情報にもエラーが生じてしまい、管理情報を失い、更新処理はもちろん読み出 し処理も行えなくなるといった問題がある。 さらに、従来フラッシュメモリの一つのメモリセルには 1 b i tの情報しか 記憶できなかったが、 フラッシュメモリの低コスト化、大容量化のために一つ のメモリセルに 2 b i t、さらには 4 b i t といった情報を記憶する多値化が 行われた場合、上述の串刺しエラーは広範囲のビットに及ぶことになり、誤り 訂正コードだけでは対処できないといった問題がある。 発明の開示 本発明は上述した従来技術における問題点に鑑みてなされたものであり、管 理情報の更新に伴う書き込みエラーから、管理情報を保護することを可能とし たデータ記憶装置、およびデータ記憶装置における管理情報更新方法、並びに コンピュータ ·プログラムを提供することを目的とする。 本発明は、 特に F A T等のファイル管理情報を複数のプロックを適用して、 更新データを、順次プロックを切り替えて書き込むことにより、エラーに対す る耐性を高めたデータ記憶装置、およびデータ記憶装置における管理情報更新 方法、 並びにコンピュータ ·プログラムを提供することを目的とする。 本発明の第 1の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御 部とを有するデータ記憶装置において、
前記データ記憶部は、所定容量のデータを記憶可能なページが複数設定され たプロックに分割され、 ユーザデータの格納領域としてのデータ領域と、該デ ータ領域に対するアクセスのためのァドレス情報を含む管理情報領域とを有 し、
前記管理情報領域は、前記データ領域に格納されたデータファイルのァドレ ス連鎖情報を持つファイル管理情報を格納し、
前記制御部は、
前記ファイル管理情報の更新情報を、 2つの異なるプロックを一対としたブ 口ック組を構成する一方のプロックの構成ページに更新前ファイル管理情報 を残し、前記プロック組を構成する他方のプロックの構成ページに更新後ファ ィル管理情報を書き込む処理を実行する構成であることを特徴とするデータ 記憶装置にある。 さらに、本発明のデータ記憶装置の一実施態様において、前記ファイル管理 情報は、 F A T (Fi le Allocation Tabl e)であり、 前記制御部は、 F A T更新 情報の書き込み処理において、前記 2つの異なるプロックを一対としたブロッ ク組を適用し、 ブロック組を構成する 2プロックの構成ページに対して、 2プ ロックを交互に適用して更新 F A T情報を書き込む処理を実行する構成であ ることを特徴とする。 さらに、本発明のデータ記憶装置の一実施態様において、前記ファイル管理 情報に対して設定される 1つの論理ァドレスに対応して前記プロック組のァ ドレス情報としての 2つの物理ァ ドレスが設定され、前記制御部は、更新すベ きファイル管理情報を指定した論理ァ ドレスに応じて前記 2つの物理ァドレ ス情報を取得して、該 2つの物理ァドレスに基づいて特定される 2プロックを 更新ファイル管理情報の書き込みプロックを構成するプロック組として識別 する構成であることを特徴とする。 さらに、 本発明のデータ記憶装置の一実施態様において、 前記制御部は、 ュ 一ザデータの格納領域としてのデータ領域に対するユーザデータ書き込み処 理のー処理単位毎に、前記ファイル管理情報の更新情報の書き込み処理を実行 する構成であることを特徴とする。 さらに、本発明のデータ記憶装置の一実施態様において、前記データ記憶部 の管理情報領域には、 さらに、前記データ領域に格納されたデータに対応して 設定される論理ァドレスと、前記データ領域に格納されたデータの物理的位置 に対応して設定される物理ァドレスとを対応付けた論理物理ァドレス変換テ 一プルとを格納した構成であることを特徴とする。 さらに、 本発明のデータ記憶装置の一実施態様において、 前記制御部は、 さ らに、前記論理物理ァドレス変換テーブルの更新情報を、 2つの異なるプロッ クを一対としたプロック組を構成する一方のプロックの構成ページに更新前 論理物理ァドレス変換テーブル構成情報を残し、前記プロック組を構成する他 方のプロックの構成ページに更新後論理物理ァドレス変換テーブル構成情報 を書き込む処理を実行する構成を有することを特徴とする。 さらに、本発明のデータ記憶装置の一実施態様において、前記データ記憶装 置は、情報処理装置に着脱可能な構成を有するとともに、前記情報処理装置と のデータ入出力可能なィンタフエース手段を有し、前記制御部は、前記ィンタ フェース手段を介して情報処理装置からの論理ァドレスを入力し、該入力論理 ア ドレスに従って 2つの物理ァ ドレスを取得して、該 2つの物理ァ ドレスに基 づいて特定される 2プロックを更新ファイル管理情報の書き込みプロックの 組として識別する構成であることを特徴とする。 さらに、 本発明のデータ記憶装置の一実施態様において、 前記制御部は、 前 記ファイル管理情報の更新処理をページ単位で実行し、前記プロック組を構成 する 2つのプロックの構成ページを交互にシーケンシャルに使用して更新管 理情報の書き込み処理を実行し、該ブロック組を構成する 2ブロックの構成べ ージに空きページがない場合に、更新直前のファイル管理情報が格納されたプ ロックと異なるプロックのデータを消去し、該消去プロックの先頭ページに更 新ファイル管理情報の書き込み処理を実行する構成であることを特徴とする。 さらに、 本発明の第 2の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御 部とを有するデータ記憶装置における管理情報更新方法であり、
更新管理情報に対応する論理ァ ドレスを入力する論理ァ ドレス入カステツ プと、 '
前記論理ァドレスに応じて 2つの物理ァドレス情報を取得して、該 2つの物 理ァドレスに基づいて特定される 2プロックを更新ファイル管理情報の書き 込みプロックを構成するプロック組として識別するプロック組識別ステップ と、
前記プロック組を構成する一方のプロックの構成ページに更新前ファイル 管理情報を残し、前記ブロック組を構成する他方のプロックの構成ページに更 新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップ と、
を有することを特徴とするデータ記憶装置における管理情報更新方法にあ る。 さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様に おいて、 前記ファイル管理情報は、 F A T (Fi le Allocati on Table)であり、 前記更新情報書き込みステップは、前記プロック組を構成する 2プロックの構 成ページに対して、 2プロックを交互に適用して更新 F A T情報を書き込む処 理を実行することを特徴とする。 さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様に おいて、ユーザデータの格納領域としてのデータ領域に対するユーザデータ書 き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報書き込みステ ップを実行することを特徴とする。 さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様に おいて、 前記データ記憶装置における管理情報更新方法は、 さらに、 前記論理 ァ ドレス入力ステップにおいて入力する論理ァドレスに応じて 2つの物理ァ ドレス情報を取得して、該 2つの物理ァドレスに基づいて特定される 2プロッ クを更新すべき論理物理ァドレス変換テーブル構成情報を書き込むプロック を構成するブロック組として識別するブロック組識別ステップと、前記ブ口ッ ク組を構成する一方のプロックの構成ページに更新前論理物理ァドレス変換 テ一プル構成情報を残し、前記プロック組を構成する他方のプロックの構成ぺ ージに更新後論理物理ァドレス変換テーブル構成情報を書き込む処理を実行 する更新情報書き込みステップと、 を実行することを特徴とする。 さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様に おいて、前記更新情報書き込みステップは、前記ファイル管理情報の更新処理 をページ単位で実行し、前記プロック組を構成する 2つのプロックの構成べ一 ジを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行し、 該ブロック組を構成する 2プロックの構成ページに空きページがない場合に、 更新直前のファイル管理情報が格納されたプロックと異なるプロックのデー タを消去し、該消去プロックの先頭ページに更新ファイル管理情報の書き込み 処理を実行することを特徴とする。 さらに、 本発明の第 3の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御 部とを有するデータ記憶装置における管理情報更新処理を実行するコンビュ ータ ·プログラムであり、
更新管理情報に対応する論理ァ ドレスを入力する論理ア ドレス入カステツ プと、
前記論理ァ ドレスに応じて 2つの物理ァ ドレス情報を取得して、該 2つの物 理ァドレスに基づいて特定される 2プロックを更新ファイル管理情報の書き 込みブロックを構成するプロック組として識別するブロック組識別ステップ と、
前記プロック組を構成する一方のプロックの構成ページに更新前ファイル 管理情報を残し、前記プロック組を構成する他方のブロックの構成ぺージに更 新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップ と、
を有することを特徴とするコンピュータ ' プログラムにある。 本発明の構成によれば、フラッシュメモリのァドレス管理情報である F A T 等のファイル管理情報をメモリの管理情報領域に格納するとともに、 F A T構 成データの格納プロックとして 2つのプロックからなるプロック組を設定し、 プロック組を構成する 2つのプロックの各ページを交互に適用して更新 F A T情報を書き込み、プロック組を構成する 1つのプロックに更新直前の F A T 情報を保持したまま、更新情報をもう一方のプロックに書き込む構成としたの で、更新管理情報の書き込みエラー発生時にも更新直前の F A T情報が記憶保 持され、更新直前の F A T情報を利用した処理、たとえば更新直前の F A T情 報を利用したデータアクセス、および更新直前の F A T情報を利用した F A T 情報の管理情報の再更新処理等が可能となる。 さらに、本発明の構成によれば、 F A Tに対応する 1つの論理ァドレスに対 応して 2つの異なる物理ァドレスを設定して論理ァドレスに基づいて更新デ ータを書き込むプロック組を構成する 2つのプロックを即座に抽出可能とす るとともに、直前の更新前データが書き込まれたプロックおよびページに基づ いて更新データを書き込むプロックおよびページを決定する構成としたので、 更新管理情報の書き込みプロックおよびページの決定を高速に実行すること が可能となる。 また、本発明の構成によれば、 F A T等のファイル管理情報の更新処理にお いて、従来のデータ再格納シーケンスとして実行する消去済みプロックの取得、 更新前データの格納されていたプロックから消去済みプロックに対するぺー ジデータのコピー等の処理を実行する必要がなくなるので、管理情報の更新処 理時間が短縮される。従って、 データ更新後にユーザによるホストからのメモ リカードの抜き取り等が行われた場合であっても、 F A T、論理物理ァ ドレス 変換テーブルを含む管理情報更新処理が短時間で実行されるため、管理情報の 書き込み未了に基づくエラー発生の可能性が減少する。 なお、 本発明のコンピュータ 'プログラムは、 例えば、 様々なプログラム' コードを実行可能な汎用コンピュータ 'システムに対して、 コンピュータ可読 な形式で提供する記憶媒体、 通信媒体、 例えば、 C D F D、 M Oなどの記憶 媒体、 あるいは、ネットワークなどの通信媒体によって提供可能なコンビユー タ .プログラムである。 このようなプログラムをコンピュータ可読な形式で提 供することにより、 コンピュータ 'システム上でプログラムに応じた処理が実 現される。 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付す る図面に基づく、 より詳細な説明によって明らかになるであろう。 図面の簡単な説明 図 1は、 フラッシュメモリにおけるプロック、ページ構成を説明する図であ る。
図 2は、フラッシュメモリにおけるデータ書き込み処理を説明するフロー図 である。
図 3は、 フラッシュメモリのメモリ構成を説明する図である。
図 4は、フラッシュメモリにおけるエラーの発生について説明するための図 である。
図 5は、 本発明のメモリカードの構成を説明するブロック図である。
図 6は、 本発明のフラッシュメモリのデータ格納構成を説明する図である。 図 7は、 本発明のフラッシュメモリのページ構成を説明する図である。 図 8は、本発明のブラッシュメモリの管理情報領域の格納情報について説明 する図である。
図 9は、本発明のブラッシュメモリの管理情報領域の格納情報の属性情報と しての論理プロック管理情報について説明する図である。
図 1 0は、本発明のフラッシュメモリの管理情報領域の格納情報の属性情報 としての物理プロック管理情報について説明する図である。
図 1 1は、フラッシュメモリにおける論理物理ァドレス変換テーブルの更新 処理について説明する図である。
図 1 2は、フラッシュメモリにおける論理物理ァドレス変換テーブルの更新 処理について説明する図である。
図 1 3は、フラッシュメモリにおける F A Tの更新処理について説明する図 である。
図 1 4は、本発明のフラッシュメモリにおける論理物理ァドレス変換テープ ルおよび F A Tの格納構成について説明する図である。
図 1 5は、本発明のフラッシュメモリにおける論理物理ァドレス変換テープ ルまたは F A Tの格納プロック構成について説明する図である。
図 1 6は、本発明のフラッシュメモリを装着したホス ト機器における初期設 定処理おょぴ管理テーブルについて説明する図である。 図 1 7は、本発明のフラッシュメモリにおけるデータ読み取りおよび書き込 み処理について説明するフロー図である。
図 1 8は、本発明のフラッシュメモリにおける論理物理ァドレス変換テープ ルおよび F AT等の管理情報更新処理について説明するフロー図である。 図 1 9は、本発明のフラッシュメモリにおける論理物理ァドレス変換テープ ルおよび F AT等の管理情報更新処理タイミングについて説明するフロー図 である。
図 20は、本発明のブラッシュメモリにおける論理物理ァドレス変換テープ ルおよび FAT等の管理情報更新処理手順について説明する図である。
図 2 1は、 フラッシュメモリを装着し、データの読み取り書き込みを実行す る情報処理装置としての P Cのハ一ドウエア構成例を示すプロック図である。 発明を実施するための最良の形態 以下、 図面を参照しながら、 本発明のデータ記憶装置、 およびデータ記憶装 置における管理情報更新方法、並びにコンピュータ♦プログラムの詳細につい て説明する。
[データ記憶装置 (メモリカード) の構成]
まず、図 5を参照してフラッシュメモリとコントロール I Cとを備えたデー タ記憶装置としてのメモリカードの構成について説明をする。 データ記憶装置 2 0 0は、 フラッシュメモリ (FMEM) 2 3 0と、 コント ロール I C (C o n t r o l I C) 2 1 0とを備え、 P C、 データ記録再生 機、 ビデオカメラ等の様々なホス ト機器 (HO S T) 3 0 0に装着して利用さ れる。 1つのホスト機器に対して固定的に装着して利用する構成も可能である 力 ホスト機器に対して着脱可能な構成であり、必要に応じて様々なホスト機 器に装着して利用可能である。 データ記憶装置 2 00は、電源端子となる VC Cとグランドとなる V S S端 子を有し、データ記憶装置 2 0 0を装着するホスト機器 3 0 0からこれらの端 子を介して電源が供給される。 検出端子 ( I N S) は、 ホス ト機器 3 0 0がデ ータ記憶装置 2 0 0の着脱状態を検出するために使用される。データ記憶装置 2 0 0内部では、 この検出端子 ( I NS) は接地されており、 ホスト機器 3 0 0によりプルアップ抵抗を介して電源に接続される。したがって、検出端子( I N S) は、 データ記憶装置 2 0 0の装着状態では 「L」 レベルになり、 非装着 時には 「H」 レべノレになる。 フラッシュメモリ (FMEM) 2 3 0はデータの消去処理単位としてのプロ ック、 および、 データの読み出し、 書き込み単位としてのページによって構成 され、 ページは例えば、 5 1 2 B y t eのデータ領域と、 パリティ一データを 書き込む 1 6 B y t eの拡張領域 (E x t r a領域) とを備えている。 フラッ シュメモリの詳細構成については図 6以下を参照して後段で説明する。 なお、 データ領域と拡張領域のデータ容量は様々な設定が可能であり、例えば 2 04 8 B y t eのデータ領域と、 6 4 B y t eの拡張領域 (E x t r a領域) との 構成をもつデータ記憶装置 2 0 0などがある。 コントロール I C (C o n t r o l I C) 2 1 0内の I ZF 2 1 6は、 デ ータ記憶装置 2 0 0を装着したホスト機器 3 0 0とのデータ転送制御を実行 し、 主にシリアル パラレル変換処理を実行する。 フラッシュメモリ 2 3 0へ のデータ書き込み時には、 双方向データ信号 (S D I O 0〜3) 路を通じ、 転 送クロック (S C LK) に同期して、 ホスト機器 3 0 0から送られてきたシリ アルデータを、 複数ビッ ト (例えば 8 ビッ ト, 1 6 ビット) のパラレルデータ に変換する。制御用コマンドもデータも、 ここでシリアルデータからパラレル データに変換される。
シリアルデータは S D I O 0のみを使用した場合は 1ビットデータであり、 S D I O 0〜 3までを使用した場合は 4ビッ トデータである。 一方、フラッシュメモリ 2 3 0からのデータ読み出し処理は以下のように行 われる。 まず、データ記憶装置 2 0 0内部のフラッシュメモリ 2 3 0に記憶さ れているデータが複数ビッ トのパラレルデータとして読み出され、 I /F 2 1 6においてシリアルデータに変換され、 双方向データ信号 (S D I O 0〜 3 ) 路を通じて、 ホス ト機器 3 00に出力される。 レジスタ 2 1 1は、 ステータスレジスタ、 パラメータレジスタ等からなり、 双方向データ信号 (S D I O 0〜 3) 路を介してデータが入 Z出力される。 双 方向データ信号 (S D I O 0〜 3 ) 路は、 制御データや実データそのものを書 き込み、 読み出し用として適用される。 双方向データ信号 (S D I O 0〜 3 ) 路を介して入出力される制御データによりデータ記憶装置 2 0 0内部のメモ リのアクセス制御が行なわれる。 ページパッファ 2 1 2は、 I /F 2 1 6 とフラッシュメモリ 2 3 0間の転送 データの一時的なデータ記憶領域である。 ァトリビュート ROM 2 1 3は、 コ ントロール I C 2 1 0の物理的情報を記憶する。 O S Cコントローラ (O S C C o n t ) 2 1 5は、 コ ン トローノレ I C 2 1 0のクロックを発生しコントロー ノレ I C 2 1 0の動作タイミングを制御する。 フラッシュメモリ 2 3 0 とのデータ転送制御を実行する制御部 2 1 4は、 C PU等によって構成される制御部としてのシーケンサ 2 2 1と、転送データに 対して付加したり、転送データの誤り検出処理を行なうエラー訂正コード発生 部 (E C C) 2 2 2と、 フラッシュメモリ 2 3 0に対するィンタフェースと し てのフラッシュィンタフェース (F l a s h l F) 2 2 3 とを有する。 エラ 一訂正コード発生部(E C C) 2 2 2において、エラー訂正を行うことにより、 フラッシュメモリ 2 3 0格納データの信頼性が確保される。 データ記憶装置 20 0には、 電源 (VC C) 端子と、 ホスト機器 3 0 0との 接続のためのデータ入 出力 (S D I O 0~ 3 )端子と、バスステート (B S) の入力端子と、 シリアルクロック (S C LK) の入力端子と、 装着検出 ( I N S) 用の検出端子と、 接地 (V S S) 端子とが構成される。 データ入 出力 (S D I O 0〜3) 端子により、 双方向データ線を介して、 データが入 出力される。 バスステート (B S) の入力端子には、 バスステー ト (B S) が供給される。 バスステート (B S) は、 データ入/出力 (S D I O 0〜3 )端子を介した双方向データ信号線上のデータステータスを示す。例 えば、データアクセスを行う前の制御データやデータそのものにより、 そのス テートを変化させることにより、 データ記憶装置 2 0 0の処理が実行される。 シリアルタロック (S C LK) の入力端子には、 データ転送用ク口ックが供 給される。 データ転送用クロックは、制御データや実データ転送制御に適用す るクロックである。 転送用クロックは、 バスステート (B S) 信号により制御 される。 次に、 図 6を参照して、図 5に示すデータ記憶装置 2 0 0内のフラッシュメ モリ (FMEM) 2 3 0の詳細構成について説明する。 前述したように、 フラッシュメモリには、データの消去処理単位としてのプ ロック、 および、 データの読み出し、 書き込み単位としてのページが規定され ている。 フラッシュメモリは、 複数のプロックを有し、 1プロックは複数ぺー ジによって構成される。 1ページは、例えば 5 1 2 B y t eのデータ格納領域 1 2 1 と、パリティ一データな.どを書き込む 1 6 B y t eの拡張領域(E x t r a領域) 1 2 2とから構成される。 なお、 データ格納領域、 拡張領域のデー タサイズはフラッシュメモリに応じて様々であり、 2 04 8 B y t eのデータ 格納領域と、 6 4 B y t eの拡張領域 (E x t r a領域) を持つ構成などのデ ータサイズの設定が可能である。 図 6 ( a) は、 フラッシュメモリのデータ構造を示している。 フラッシュメ モリ と しての記憶領域は、セグメントと呼ばれる固定長のデータ単位が大区分 として設定される。 このセグメントは、 例えば 1セグメントあたり 4MB (メ ガパイ ト) あるいは 8MB、 1 6 MB等に規定されるサイズであり、 1つのフ ラッシュメモリ内におけるセグメント数は、そのフラッシュメモリの容量に依 存して異なってくる。図では、 0〜 7の 8セグメントを持つブラッシュメモリ の構成例を示してある。 ローダ (L o a d e r ) 領域は、 起動時のロードデータを格納した領域であ る。 コントロール I C 2 1 0は電源オン直後にローダ領域から、起動に必要な 情報を読み込む。 管理情報領域は、 論理物理ア ドレス変換テーブル、 FAT等 のファイル管理情報、を格納するプロックと代替プロックとして未使用なプロ ックからなる領域である。 データ領域は、 画像、 音声、 テキスト、 プログラム 等のユーザデータの格納されたプロックからなる領域とされる。データ領域に は、 これらの実データおよび、索引情報としての先頭ァドレス情報を含むディ レク トリ情報が格納されたプロックも含まれる。管理情報を適用した処理につ いては、 後述する。 図 6 (b) に示すように、 各セグメント (b _ 1 ) は、 プロックと呼ばれる 固定長のデータ単位に区切られる。 1セグメントを 5 1 2ブロックとした場合、 図 6 (b— 2) に示すブロック数 nは、 n = 5 1 1 とされる。 但し、 フラッシ ュメモリでは、書き込み不可なプロックが存在することや、書き込み中にエラ 一を発生する後発不良プロックが存在するため、データ書き込みが有効とされ る実質的なプロック数を対象とすれば、有効プロック数 nは 5 1 1よりも少な くなる。
1プロックは、 図 6 ( b— 3 ) に示すように、 ページ 0〜: mにより分割され る。 1ページは、 図 6 (b— 4) に示すように、 例えば 5 1 2バイ トのデータ 部と 1 6バイ トの拡張部からなる。 拡張部の構成については後述する。 プロック内のページ構造は、 ローダ領域、 管理情報領域、 データ領域すベて において共通であり、 図 6 ( b— 4 ) に示すように、 データ部と拡張部とから なる。 フラッシュメモリでは、 データの読み出し、 および書き込み処理はぺー ジ単位で行われ、 データの消去処理はプロック単位で行われる。 さらに、 デー タの書き込みは、 消去済みのぺ ジに対してしか行われない。 従って、 実際の データの書き換えや書き込みは、原則としてプロック単位を対象として行われ ることになる。 ただし、 本発明の構成においては、 管理情報領域の格納情報、 たとえば論理 物理ァドレス変換テーブルおよび F A T等のファイル管理情報についてのデ ータ書き込み処理は、特殊な書き込み処理方式に従って実行する。 これらの処 理については後述する。 ページの構成について、 図 7を参照して説明する。 ページは、 図 7に示すよ うにデータ部と拡張部からなり、 データ部には、 ローダ領域、 管理情報領域、 データ領域の各領域毎、各領域に対応したデータが格納される。例えばローダ 領域の構成プロックに属するページであれば、 コントロール ICが起動するた めに必要な情報等が格納され、管理情報領域の構成プロックに属するページで あれば、論理物理ァドレス変換テーブル、 F A T等のファイル管理情報等の各 情報が格納される。データ領域の構成ブロックに属するページであれば、ユー ザデータとしての画像、 音声、 テキスト、 プログラム等様々なデータファイル およびディレク トリ情報が格納される。 ページの拡張領域には、 例えばエラー訂正コード (E C C ) および属性情報 が格納される。 属性情報は、 図に示すように論理プロック管理情報と、 物理プ ロック管理情報によって構成される。 図 8に管理情報領域の詳細構成を示す。管理情報鎮域には、 ホストの指定す る論理ァドレスから物理ァドレスへの変換処理に適用するテーブルとしての 論理物理ァドレス変換テーブルを格納した論理物理ァドレス変換テーブルブ ロック、フラッシュメモリに格納するデータの連鎖情報としてのファイル管理 情報である例えば F A Tを格納するフアイル管理情報プロック、後発不良プロ ックが発生した場合の代替用プロックあるいは更新処理時新しいプロックを 取得するための空きプロックとしての代替プロックが格納される。 本発明の構成においては、論理物理ァドレス変換テーブルおよびフアイル管 理情報 (F A T ) について複数プロックを利用して順次、 更新された情報を書 き込む構成を有する。具体的には、 1ページ分の論理物理ァドレス変換テープ ルまたは F A Tデータについて、それぞれ 2つの異なるプロックをプロック組 として割り当て、ブロック組を構成する 2つのブロックのページに交互に更新 データを書き込む処理を実行する。 この更新処理により、更新直前の論理物理 ァドレス変換テープルまたは F A Tも消去されることなく維持され、 万が一、 更新後の論理物理ア ドレス変換テーブルまたは F A Tが消失した場合であつ ても更新直前の情報の利用が可能となり、更新直前の管理情報を利用したデー タアクセス、および更新直前の管理情報を利用した管理情報の再交信処理等が 可能となる。 なお、ファイル管理情報としては従来からハ一ドディスクのファイル管理情 報として適用される F A Tを例として以下、説明するが、本発明において適用 するファイル管理情報は F A Tに限定されるものではなく、その他のファイル 管理情報、例えば N T F S、H F S等を用いた構成においても適用可能である。 次に、図 9を参照してブラッシュメモリの管理情報領域に格納される各情報 プロックにおける属性情報を構成する論理ブロック管理情報(図 7参照) の構 成および格納情報について説明する。 前述したように、 フラッシュメモリの管理情報領域には、論理物理ァドレス 変換テーブル、 F A T等のファイル管理情報、 代替プロックが格納される。 図 9は、これらの各プロックを構成するページに設定される属性情報中の論理ブ 口ック管理情報の構成および格納情報について説明する図である。 論理プロック管理情報のデータ構成は、プロックタイプ毎に異なる構成とな り、 プロックタイプは、 論理プロック管理情報として保持している。 例として は、 プロックタイプを 2 B i tで表現するとすれば、論理物理ァドレス変換テ 一ブルは [ 0 0 ]、 F A T等のファイル管理情報は [ 0 1 ]、代替プロックは [ 1 1 ] が設定される。 論理物理ァドレス変換テーブルプロックは、データ部には、論理ァドレスを 物理ァドレスに変換するための情報が格納され、 論理プロック管理情報には、 データ部に格納された論理物理ァドレス変換テーブルがどのセグメントに対 応するかを示すブロックナンバーが格納される。論理ァドレスは物理プロック に対して割り当てられる値である。 なお、論理物理ァドレス変換テーブルは各 セグメント毎に設定される。 さらに、データ部に格納された論理物理ァ ドレス 変換テーブルが更新処理中であるか否かを示すアップデートフラグ、更新時に
+ 1 の加算処理がなされる版情報としてのリ ビジョンデータが論理プロック 管理情報に格納される。 ファイル管理情報は、セクタと呼ぶ 5 1 2バイ トを基 本単位として、さらにクラスタと呼ぶ n個のセクタからなる 5 1 2 X nバイ ト を定義し、 クラスタ単位でデータの配置情報を管理する。 論理ァドレスはセクタァドレスをさしており、ァドレス変換する際にはセク タァドレスの下位ビットは物理プロック内のページを指す値として使用する。 例えば、 プロックあたりのページ数が 3 2ページの場合は、下位 5ビットがぺ ージァドレスとなる。ここではページァドレスは物理的なプロック内のページ と一意である場合について説明する力 論理ァドレスの単位をページにするこ とも可能である。 ファイル管理情報としての F A Tを格納するファイル管理情報プロックは、 データ部にファイル管理情報としての FATが格納される。すべての FATを 格納するためには、複数のファイル管理情報プロックが必要になるため、論理 プロック管理情報にはデータ部に格納された FATの論理ァドレスに対応し たプロックナンバーと、 FATの更新時に + 1の加算処理がなされる版情報と してのリビジョンデータが格納される。 代替プロックは、後発不良プロックが発生した場合の代替用ブロックであり、 論理ァドレスの割り当てられていない、 消去済みの物理プロックである。 次に、図 1 0を参照してフラッシュメモリの管理情報領域に格納される各情 報プロックにおける属性情報を構成する物理ブロック管理情報(図 7参照) の 構成および格納情報について説明する。 物理プロック管理情報は、フラッシュメモリの管理情報領域に格納される論 理物理ア ドレス変換テーブル、 FAT等のファイル管理情報、代替ブロックに おいて共通の構成であり、 図に示すように、 不良プロックフラグ、 消去フラグ を有し、不良プロックフラグには、プロックが正常の読み書き可能なプロック であるかを示す正常 [ 1 ]、 不良 [0] のフラグが設定される。 消去フラグに は、 ブロックの未消去 [ 1 ]、 消去 [0] の別を示すフラグが設定される。 論 理ァドレスが割り当てられ使用中であるプロックは、 正常 [ 1 ]、 未消去 〔1〕 となり、 代替プロックで正常 〔1〕、 消去 [ 1 ] となる。
[管理情報の更新処理]
次に、例えばフラッシュメモリに格納されたファイルデータの更新によって 実行することが要請される管理情報の更新処理、具体的には論理物理ァドレス 変換テーブルおよびファイル管理情報(FAT等) の更新処理について説明す る。 前述したように、 フラッシュメモリでは、 データの読み出し、 および書き込 みはページ単位で行われ、 データの消去はプロック単位で行われる。 さらに、 データの書き込みは、 消去済みのページに対してしか行われない。 従って、 フ ラッシュメモリから読み出したデータを更新してフラッシュメモリに更新デ ータを書き込む場合、更新データは、更新前のデータの書き込まれていたべ一 ジに上書きするのではなく、消去済みの書き込み可能なページを抽出してその 抽出した消去済みページに書き込むことになる。従って、データ書き込み位置 としての物理ァドレスがデータ更新に伴い頻繁に変更される。 このようにデータ更新がなされ、データ記録位置が変更されて物理ァドレス が変更された場合でも、ホスト機器側で利用する論理ア ドレスを一定とすれば、 ホス ト側では物理ァドレスの変更と無関係に更新されたデータに対して同じ 論理ァドレスを適用することが可能となる。 この処理のため、論理物理ァドレ ス変換テーブルの更新がデータ更新に応じて実行されることになる。 データ更新処理に伴う論理物理ァドレス変換テーブルの更新処理について 以下説明する。 図 1 1 ( a ) には、 あるセグメ ント内から 4つのブロックを抜 き出して、 これを模式的に示している。 3つのブロックに対しては固定的に物 理ァドレスが付与されるおり、 もう 1つのプロックは代替プロックである。 こ の物理ァドレスはメモリにおけるプロックの物理的な配列順に従って決まり、 あるブロックとこれに設定された物理ァドレスとの関係は不変となる。図 1 1 (a ) に示す 4プロックに対して、 上から順に物理ァドレスの値として、 ァド レス [0 x 1 1 ]、 [0 x 1 2]、 [0 x 1 3] [0 x 1 4] が付与されていると する。 なお、 0 Xは 1 6進データを意味する。 0 Xの後の 2つの数値が実際の ァドレスを表現している。 データ更新前の論理ア ドレスと物理ア ドレスとの対応は、 (a ) に示すよう に、 論理ァ ドレス (0 x 0 2) に対して物理ァ ドレス [0 x 1 1 ]、 論理ァ ド レス (0 x 0 3 ) に対して物理ァ ドレス [0 x 1 2]、 論理ァ ドレス (0 x 0 4) に対して物理ァドレス [0 x 1 4] であったとする。 物理ァドレス [0 X 1 3]は代替プロックのため論理ァドレスは割り当てられていない。 物理ァ ドレス [0 x 1 1 ] と [0 x 1 2] のブロック 0, プロック 1にはホ ストによって書き込まれたファイルデータが格納されているとする。 ここで、 ホスト機器が、 論理ァドレス (0 x 0 2) によってデータ読み出し を実行すると、 論理物理ア ドレス変換テーブルは、 論理ア ドレス (0 x 0 2) を物理ァドレス [0 X 1 1 ] に変換し、 プロック 0のデータをホストに出力す る。 ホストにおいて、 プロック 0のデータを更新し、 フラッシュメモリに格納す る場合、前述したように、更新前のデータの書き込まれていたページに上書き するのではなく、消去済みの書き込み可能なページを抽出してその抽出した消 去済みページに更新データを書き込むことになる。 この場合、 ブロック 0は、 更新前の値を保持しており、消去されていないので、消去済みのプロックであ る代替プロック、 ここではプロック 2に更新データを書き込む。 この場合、更新データの論理ァドレスを、更新前のデータに対する論理ァド レス (0 x 0 2) と同一に保持するため、 論理物理ァドレス変換テーブルの更 新が実行される。 図 1 1 (b) に示すように、 論理ァドレス (0 x 0 2) を更 新データの書き込まれたプロック 2の物理ア ドレス [0 x 1 3] に対応付け、 ブロック 0の物理ァドレス [0 X 1 1 ] はプロック 2への書き込み処理の実行 前あるいは終了後に消去し、 新たな代替プロックとする。 この処理により、 ホ スト側では、更新前後とも同じ論理ァドレスを用いてデータアクセスを行うこ とが可能となる。 論理ァドレスは、プロックに対して書き込まれたデータに付随するようにし て割り振られるア ドレスであり、 この論理ァドレスが、後述する FATフアイ ルシステムが管理するァドレスである。 これに対して、物理ァドレスはプロッ クに対して固定的に付与されるァドレスである。 このようにプロックのスヮップ処理を行うことで、同一の記憶領域(プロッ ク) に対して繰り返し集中的にアクセスされることが無くなり、書き換え回数 の上限があるブラッシュメモリの寿命を延ばすことが可能となる。 データ更新に伴い、論理ァドレスと物理ァドレスの変換テーブルを更新する ことで、 同一の論理ア ドレスを使用した処理が可能となる。 なお、 論理物理ァ ドレス変換テーブルはセグメント単位で保持され、データ更新が行われた場合 であっても他のセグメントに更新データが書き込まれることはない。 図 1 2にデータ更新に伴う、論理物理ァドレス変換テーブルの更新例を示す。 論理物理ァドレス変換テーブルは、前述したようにフラッシュメモリ の管理情 報領域に格納され、上記のようなデータ更新が行われた場合などに併せて更新 される。 図 1 1のデータ更新に対応する論理物理ァドレス変換テーブルの更新例を 示したのが図 1 2である。 更新前の論理物理ァドレス変換テーブルを図 1 2 ( a ) に示し、 更新後の論理物理ア ドレス変換テーブルを図 1 2 (b ) に示し ている。論理物理ア ドレス変換テープルは、 シーケンシャルな論理ア ドレスに 対応する物理ァドレスの列として構成される。 更新 firは、 (論理ア ドレス) と [物理ア ドレス] の対応が、
(0 0 2) [0 x 1 1 ]
(0 x 0 3) [0 x 1 2]
(0 0 4) [0 x 1 4]
(0 x 0 5) [0 x 1 5]
となっているが、
更新前は、 (論理ア ドレス) と [物理ア ドレス] の対応が、 (0 x 0 2 ) [0 x 1 3]
(0 0 3) [0 x 1 2 ]
(0 0 4) [0 x 1 4]
(0 x 0 5) [0 1 5]
となるように変更される。
このとき、物理ァドレス [O x 1 1 ]のプロックは消去され、該当する物理ブ 口ック管理情報が更新され'る。 本発明の構成においては、これらの書き換えられた論理物理変換テーブルを 2つのプロック組を使用して、各ブロックのページに対して交互に更新データ を書き込む構成としている。すなわち、 1ページ分の論理物理変換テーブル構 成データに 2つの異なるブロックを割り当てて交互に更新データを書き込む 処理を実行する。 この更新処理により、更新直前の論理物理変換テーブルもプ 口ック組の一方のプロック内のページに消去されることなく保持され、万が一、 更新後の論理物理変換テーブルが消失した場合であっても更新直前の論理物 理変換テーブルの利用が可能となる。 これらの処理については後述する。 上述したように、プロックのスヮップ処理が行われることで、物理ァドレス と論理ァドレスの対応は変化する。従って、 フラッシュメモリに対するデータ の書き込み及び読み出しのためのアクセスを実現するには、物理ァドレスと論 理ァドレスとの対応が示される論理物理ァドレス変換テーブルが必要となる。 つまり、 論理物理ア ドレス変換テーブルをファイル管理情報 (FAT) が参照 することで、 FATが指定した論理ァドレスに対応する物理ァドレスが特定さ れ、この特定された物理ァドレスにより示されるプロックにアクセスすること が可能になる。次に、 F AT等のファイル管理情報の利用について図 1 3を参 照して説明する。 フラッシュメモリに格納するデータフアイルは、クラスタという単位で管理 される。 フラッシュメモリのデータ領域上の物理セクタは、 フラッシュメモリ の場合の書き込み読み取り単位としてのページに相当するが、ファイル管理情 報 (FAT) の管理単位としてのクラスタは複数のセクタからなる。 ファイル はクラスタを単位として構成されるが、フラッシュメモリに格納するデータフ アイルは、 複数のクラスタに渡って格納される場合が多い。 FATは、 このよ うな複数のクラスタに分散格納されたデータファイルについてのクラスタ連 鎖情報を持つテーブルである。 FATのェントリは、 フラッシュメモリのクラ スタ、例えばプロックと 1対 1に対応する論理ァドレスの連鎖情報を格納する。 ファイルの先頭クラスタはファイル名とともにディレク トリに記録される。 図 1 3には、フラッシュメモリのデータ領域に格納されたデータファイルの ( a ) ディレク トリ、 管理情報領域に格納されるファイル管理情報と しての ( b ) F ATを示している。
FATは、データ格納領域単位としてのクラスタの連鎖情報を格納したテー プルであり、 データファイルが複数のクラスタに渡って記録されている場合、 FATに従って連鎖情報を取得することで、データファイルを構成する全デー タのクラスタ位置を取得可能となりデータファイルを構成する全データに対 するアクセスが可能となる。 クラスタは、 フラッシュメモリにおいて例えば 1 プロックに相当する。すなわち、 1つのデータファイルがブラッシュメモリの 複数ブロック (クラスタに相当) にわたつて書き込まれている場合、 複数プロ ックの連鎖情報が FATに格納される。 FATに設定される連鎖情報としての クラスタ識別子は、論理物理ァドレス変換テーブルで適用する論理ァドレスに 相当する。 フラッシュメモリのデータ領域に格納されるディレク トリには、図 1 3 ( a ) に示すように、 例えばファイル名、 拡張子、 さらに、 先頭のクラスタ識別子が 格納される。 ホス トは、ディレク トリに格納された先頭クラスタ識別子に従つ て、 FATを参照し、 1つのファイルデータの格納されたクセスタの連鎖を知 ることができ、 連鎖情報に従って、 クラスタ識別子を順次取得する。 クラスタ 識別子は論理ァドレスに相当する。これらの論理ァドレスを前述の論理物理ァ ドレス変換テーブルを適用して物理ァドレスを取得してデータ格納位置から データを取得する。 図 1 3に示す ( a) ディレク トリ中のファイル [AB C. t x t ] は、 先頭 クラスタ識別子が (0 x 0 8) であり、 FATの 0 x 0 8の位置には次のクラ スタ識別子としての 0 X 1 0が記録され、 0 x 1 0の位置には 0 x 1 8、 O x 1 8の位置には終了を示す 0 X F Fが記録されている。 従って、 ファイル [A B C. t X t ] は、 (0 x 0 8 ), (0 x 1 0), (0 x 1 8) の順に記録されて いることが認識される。 また、 ファイル [E F G. j p g] は、 先頭クラスタ 識別子が (0 x 1 9) であり、 FATの 0 x 1 9の位置には次のクラスタ識別 子としての 0 X 2 5が記録され、順次 FATに記録されたクラスタ識別子をた どることで、 ファイル [E FG. j p g] の格納位置を知ることができる。 クラスタ識別子 (クラスタァドレス) は、 前述したように、 論理ァドレスに 相当するものであり、 F ATから取得したクラスタァドレスからページァドレ スを除いた値を前述の論理物理ァ ドレス変換テーブルに従って物理ァ ドレス に変換してフラッシュメモリにおける実際の物理的データ格納位置を取得し、 データアクセスを行う。
FATは、 新たなデータの追加、 書き換え処理等により、 随時変更される。 1クラスタのサイズは、 例えば 3 2セクタの塲合、 1 6 KB y t eになる。 従 つて、例えばあるデータファイルが更新されデータ量が増加すると新たなクラ スタを取得することが必要となり、 FATの書き換え、すなわち更新処理が必 要となる。 更新された FATは、 フラッシュメモリの管理情報領域に格納される。本発 明の構成においては、更新した FATを、前述の論理物理ァドレス変換テープ ルと同様、 1ページ分の FATデータに 2つの異なるプロックからなるプロッ ク組を割り当てて、プロック組を構成する各プロックの構成ページを利用して プロック交互に更新データを書き込む処理を実行する。 この更新処理により、 更新直前の FATも消去されることなく維持され、 万が一、更新後の FATが 消失した場合であっても更新直前の FATの利用が可能となる。 以下、 これら の処理について詳述する。 フラッシュメモリの管理情報領域(図 6参照) に格納される論理物理ァドレ ス変換テーブル、 FAT等のファイル管理情報の更新処理について説明する。 図 1 4は、 フラッシュメモリに格納する論理物理ァドレス変換テーブル、 F ATの各管理情報の格納構成の概念図を示した図である。図 1 4に示すように、 論理物理ア ドレス変換テーブル、 FATの各管理情報は、 (a ) フラッシュメ モリの管理情報領域に格納される。 ( b ) F AT格納テーブルに示すように、 FATの構成データの各々には、
2つの異なるプロックをプロック組として割り当てられる。 図に示すように、 F AT 1 -偶数、 F AT 1—奇数が 1つのプロック組であり、 以下、 F AT 2 - 偶数、 FAT 2—奇数〜 FAT n-偶数、 FAT n—奇数まで、 FAT構成デ ータ用に 2つの異なるプロックが FAT格納プロック組として設定される。な お、図では隣接ブロックをプロック組として示してあるが、離間したプロック をプロック組として設定してもよい。 同様に、 (c ) 論理物理ア ドレス変換テーブルに示すように、 論理物理アド レス変換テーブルの構成データの各々についても、 2つの異なるブロックがプ 口ック組として割り当てられる。 図に示すように、論理物理ァドレス変換テー ブル 1 -偶数、 論理物理ァドレス変換テープル 1一奇数が 1つのブロック組で あり、 以下、 論理物理ア ドレス変換テーブル 2-偶数、 論理物理ア ドレス変換 テーブル 2—奇数〜論理物理ァドレス変換テーブル n-偶数、 論理物理ァドレ ス変換テーブル n—奇数まで、論理物理ァドレス変換テーブル構成データ用に 2つの異なるプロックが論理物理ァドレス変換テープル格納プロックとして 設定される。 なお、 各組を構成する奇数、 偶数は、 プロックを区別するために便宜的に使 用しているもので、 2つの異なるブロックの組であれば、 プロック N oが奇数 同士でも偶数同士でもかまわない。
FATおよび論理物理ァドレス変換テーブルの更新においては、交互に更新 データを書き込む処理を実行する。例えば、 FAT 1—奇数の 1つのページに 書き込まれた FAT構成データが更新されると、更新データは、 F AT— 1偶 数のページに書き込まれる。したがって更新前のデータも F AT 1—奇数のぺ ージに保持される。 FAT— 1偶数のページに書き込まれた FAT構成データ が更新されると、 更新データは、 FAT— 1奇数のページに書き込まれる。 論 理物理ァドレス変換テーブルの更新においても、偶数、奇数の各プロックに交 互に更新データの書き込みが実行される。 図 1 5は、 フラッシュメモリ の管理情報領域 (図 6参照) に格納される論理 物理ァドレス変換テーブル、 FAT等のファイル管理情報の更新処理手順を説 明する図である。本発明の構成おいては、上述したように 1ページ分の論理物 理ァドレス変換テープル構成データに 2つの異なるプロックをプロック組と して割り当てて、プロック組を構成するページに対してプロック交互に更新デ ータを書き込む処理を実行する。 FAT等のファイル管理情報についても同様 に、 FATデータ構成データに 2つの異なるプロックをプロック組として割り 当てて、プロック組を構成するページに対してプロック交互に更新データを書 き込む処理を実行する。論理物理ァドレス変換テーブル、 FATの更新処理シ 一ケンスは基本的には同様であるので、 FATの更新処理を例として図 1 5を 参照して説明する。 図 1 4を参照して説明したように、フラッシュメモリ の管理情報領域の F A T格納ブロックは、更新情報を書き込むプロックを 2つ 1組としたプロック組 が用意される。 図に示すように (a) FAT格納プロック P (偶数プロック) 5 0 1 と (b) FAT格納プロック Q (奇数プロック) 5 0 2である。 さらに偶数プロック、奇数プロック内のページには、 図 1 5に示すように通 し番号 (版番号) が 0から設定される。 更新された FAT情報は、 この通し番 号の順に各プロックの各ページに記録される。 例えば、 図 1 5に示すように、 偶数プロック 5 0 1には 0, 2, 4, 6…とページ通し番号が与えられ、 奇数 プロック 5 0 2には、 1 , 3, 5 , 7…とページ通し番号が与えられる。 更新 された FAT報は、 通し番号 0, 1 , 2 , 3 , 4, 5, 6, 7…の順番にぺー ジ内に書き込まれていくことになる。 なお、偶数プロック 5 0 1、奇数プロック 5 0 2の各ページにはそれぞれ各 プロック独立のページ番号が与えられていて、上述の通し番号と対応させると 通し番号 0と通し番号 1のページ番号は 0、通し番号 2と通し番号 3のページ 番号は 1というような関係になる。 なお、偶数プロック 5 0 1、奇数プロック 5 0 2の各ページに与える通し番 号は、 説明のために便宜的に与えるものである。 したがって、 ホスト機器が更 新された FAT情報を書き込む際には、 直接通し番号を指定するのではなく、 プロック内の所定の基準となるページから数えて N番目のページに所望の管 理情報を書き込むというよう指定情報に基づいて更新データの書き込みを実 行する。 本発明の構成においては、 2つの異なるプロックを一対としたプロック組を 構成する一方のプロックの構成ページに更新前の管理情報、すなわち更新前の FAT等のファイル管理情報あるいは論理物理変換テーブルを残し、プロック 祖を構成する他方のプロックの構成ページに更新後の管理情報を書き込む処 理を実行する。 このように、本発明の構成においては、 プロック組を構成する 2つのプロッ クの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み 処理を実行する。プロック組を構成する 2プロックの構成ページに空きページ がない場合には、代替プロックの中から新たなプロックを確保し、先頭ページ に更新管理情報を書き込み後、更新直前の管理情報が格納されたプロックと異 なるプロックのデータを消去する。 本発明の構成においては、管理情報、すなわち F A T等のファイル管理情報 あるいは論理物理変換テーブルに対して設定される 1つの論理ァドレスに対 してブロック組を構成する 2つのプロックの 2つの物理ァドレスが対応付け られ、データ記憶装置の制御部は、更新すべきファイル管理情報を指定した論 理ァドレスに応じて、 2つの物理ァドレス情報を取得して、該 2つの物理ァド レスに基づいて特定される 2プロックを更新ファイル管理情報の書き込みブ ロックを構成するブロック組として識別して、ブロック組を構成する 2つのプ 口ックの構成ページを交互に適用した更新情報書き込み処理を実行する。 次に、図 1 6以下の各図を参照してホスト機器によるフラッシュメモリに対 するデータ書き込み、 データ読み取り処理のシーケンスについて説明する。 まず、 図 1 6を参照して、上述したブラッシュメモリを搭載したメモリカー ドを装着したホス ト (P Cなど) の起動時の処理、 すなわちホストがメモリ力 一ドの使用を可能とするための初期設定処理について説明する。 ホス トは、 まずステップ S 1 0 1において、 フラッシュメモリのローダ (L o a d e r ) 領域 (図 6参照) の情報を読み込む。 フラッシュメモリのローダ ( L o a d e r )領域にはコントロール I Cが動作するための初期情報が格納 されている。 ステップ S 1 0 2、 ステップ S 1 0 3において、 フラッシュメモリの管理情 報領域の各プロックの属性情報を読み出し、 R O M上に読み出した情報に基づ くエントリを管理テーブルに登録し、その後ステップ S 1 0 4で管理情報領域 の全プロックの属性情報の管理テーブルに対する登録が終了したことを確認 してホストからのコマンド、例えばデータ読み取り、書き込み等の処理コマン ドを待機する。 フラッシュメモリの管理情報領域の各ブロックの属性情報に基づいて生成 する管理テープルは、 フローの右に示すように、 プロックタイプ、 ブロックナ ンバー/ェントリナンバー、物理ァドレスプロック 1、物理ァ ドレスプロック 2の各項目を有する。 図 8他を参照して説明したように、 フラッシュメモリの管理情報領域には、 論理物理ァドレス変換テーブル、 F A T等のファイル管理情報、代替プロック の各プロックが格納されている。 これらの各ブロックの属性情報 (図 7、 図 9 参照)から読み出したデータに基づいて図 1 6に示す管理テーブルが生成され る。 ここでは、本発明に関連する論理物理変換テーブルおよび F A T等のフアイ ル管理情報について説明する。 図に示すように、 F A Tについては、 プロック タイプとしては、 F A Tであることを示すプロックタイプ I Dが格納される。 項目 [プロックナンバー ェントリナンパ一] には、 図 9を参照して説明した ように、論理フォーマッ ト上でのセクターアドレスから算出した論理ァドレス が格納される。 これは、 F A Tデータの格納された論理ア ドレスを示す。 項目 [物理ア ドレスプロック 1 ]、 [物理ア ドレスプロック 2 ] には、上述した偶数 ブロックと奇数ブロックの 2つのプロックそれぞれの物理ァドレスが格納さ れる。 項目 [プロックナンバーノエントリナンバー] に格納された論理ァドレスに 対応する F A Tデータの更新の際には、項目 [物理ァドレスプロック 1 ]、 [物 理ァドレスプロック 2 ] のブロックを用いて、上述した偶数プロックと奇数ブ ロックの各ページを交互に利用した F A T更新処理が実行される。 フラッシュメモリの管理情報領域のプロックに対応する属性情報が全て読 み出されて R AM上に管理テーブルが生成されると、フラッシュメモリに対す るデータ書き込みあるいは読み出しが可能となる。 データの読み出しおよび書き込み処理について、図 1 7を参照して説明する。 図 1 7 ( a ) のデータ読み出し処理の手順についてまず説明する。 まず、 ステ ップ S 2 0 1において、 読み出しデータファイルのディレク トリを検索する。 ディレク トリは、 図 1 3を参照して説明したように、各データファイルの名称 等の識別子と、 先頭の論理ァドレスとしてのクラスタ識別子を持つ。 次に、 ステップ S 2 0 2において、ディレク トリからデータファイルの先頭 のクラスタァ ドレスを取得し、このクラスタァ ドレスに基づいて論理ァ ドレス を論理物理ァドレス変換テーブルに従って、物理ァドレスに変換し、物理ァド レスに基づいて特定されるフラッシュメモリのデータ格納位置からデータを 取得する。論理物理ァドレス変換テーブルの格納位置は、前述の管理テーブル に基づいて取得される論理物理ァドレス変換テーブルの物理ァドレスに従つ て特定可能となる。 さらに、 ステップ S S 2 0 3において、前述した F A Tに基づくクラスタ連 鎖情報に基づいてファイルデータを構成する連続するクラスタ識別子、すなわ ち次の論理ア ドレスを取得する。 F A Tの格納位置は、前述の管理テーブルに 基づいて取得される F A T格納物理ァドレスによってアクセスされる。 F A T に基づいて取得した連鎖クラスタ情報に基づく論理ァドレスは、さらに論理物 理ァドレス変換テーブルに従って、物理ァドレスに変換し、物理ァドレスに基 づいて特定されるフラッシュメモリのデータ格納位置からデータを取得する。 ステップ S 2 0 2およびステップ S 2 0 3の処理をデータファイルの最終 データであることがステップ S 2 0 4で確認されるまで繰り返し実行するこ とで、 複数のクラスタ (プロック) に格納されたデータファイルの読み出しが 兀 Jする 次に、フラッシュメモリに対するデータ書き込み処理について、図 1 7 (b ) の処理フローを参照して説明する。 まず、 ステップ S 3 0 1において、 書き込 む論理ァドレスを決定するための F A T、 ディレク ト リ検索を行う。
ステップ S 3 0 2において、取得されたプロックの構成ページに順次、デー タ書き込みが実行され、 ステップ S 3 0 3において、データ書き込みを行った プロックに対応する物理ァ ドレスと論理ァ ドレスの対応関係が設定される。す なわち論理物理ァドレス変換テーブルの更新処理が実行される。この論理物理 了ドレスの更新は先に図 1 5を参照して説明したように、 2つの異なるプロッ クの構成ページを交互に利用する態様で実行される。具体的な処理手順につい ては、 図 1 8を参照して後段で説明する。 ステップ S 3 04において、書き込みデータが終了したか否かを判定し、終 了していなければ、ステップ S 3 0 5において、 さらに論理ァドレスを FAT に基づいて決定し、ステップ S 3 0 2において決定した論理ァドレスの構成ぺ ージにデータを順次書き込む。 ステップ S 3 0 3では、 管理情報の更新、 すなわち、 論理物理ァドレス変換 テーブルの更新処理、 およびァドレス連鎖情報 (クラスタ連鎖情報) としての FATの更新処理を実行する。ステップ S 3 0 2-S 3 0 5を繰り返し実行し. ステップ S 3 0 4において書き込みデータが終了したとの判定に基づいて処 理が終了する。 ステップ S 3 0 3で実行する論理物理ァドレス変換テーブルの更新処理、お よびァドレス連鎖情報を示すクラスタ連鎖情報を持つ F A Tの更新処理は、先 に図 1 5を参照して説明したように、異なるプロックの組に対して交互にぺー ジを利用して実行する。この具体的な処理手順について図 1 8の処理フローを 参照して説明する。 図 1 8の処理フローでは、図 1 5を参照して説明したと同 様、偶数プロックと奇数プロックを、論理物理ァドレス変換テーブルあるいは F A T等のファイル管理情報を交互に書き込むプロックの組とする。 管理情報の更新処理の開始に際し、 制御部は、 ステップ S 5 0 1において、 フラッシュメモリで更新直前の管理情報が書き込まれているページを検索す る。 これは前述の管理テーブルの情報に基づいて取得する。 なお、 本フローに おける管理情報は、論理物理ァドレス変換テープルあるいは F A T等のフアイ ル管理情報の両者を含む意味である。 ステップ S 5 0 2において、更新前データの書き込みページが、プロック組 を構成するプロック中の奇数プロックのページであるか否かを判定する。更新 前データの書き込みページが、奇数ブロックのページである場合は、 ステップ S 5 0 3に進み、奇数プロックのページでない場合は、 ステップ S 5 0 6に進 む。 更新管理情報は、 先に図 1 5を参照して説明したように、 更新直前の管理 情報が書き込まれているページの次の通し番号が与えられたページ、すなわち 更新前の管理情報書き込みプロックとは異なるプロックのページに書き込ま れることになる。 奇数プロックのページに更新直前の管理情報が書き込まれていた場合は、更 新管理情報を書き込むのは偶数プロックとなり、 ステップ S 5 0 3において、 制御部は、更新直前の管理情報が書き込まれている奇数プロックのページ番号 を 1だけィンクリメントしたページ番号に対応する偶数プロックのページ番 号を、 更新管理情報の書き込みページ番号として算出する。 ステップ S 5 0 4において、偶数プロックに、 ステップ S 5 0 3で算出した ページ番号に相当する空ページがあるかどうかの判断をし、該当する空ページ がある場合はステップ S 5 0 9に進み、空ページがない場合は工程をステップ S 5 0 5に進む。 ステップ S 5 0 4の判定処理は、更新直前の管理情報が書き込まれている奇 数プロックのページが奇数プロックの最後のページであるかどうかを判断す る工程に相当する。つまり奇数プロックの最後のページである場合は上述のス テツプ S 5 0 4において、偶数プロックのページ番号を 1インク リメントして も該当するページは存在しない。 このステップ S 5 0 4で偶数ページに更新管理情報を書き込む空ページが 存在するかどうかを判断し、更新した管理情報を書き込むページがない場合に、 ステップ S 5 0 5において、偶数プロックとして代替プロックの中から新たな プロックを取得し、旧偶数ブロックに書き込まれている古い管理情報を全て消 去し、 先頭ページ、 つまりページ番号 0 (通し番号 0 ) のページを更新した管 理情報を書き込むページとして確保し確保した先頭ページに更新した管理情 報、すなわち、論理物理ァドレス変換テーブルの更新データあるいは F A T等 のファイル管理情報の更新データの書き込み処理を実行する。 ステップ S 5 0 4において、偶数プロックに、 ステップ S 5 0 3で算出した ページ番号に相当する空ページがあると判定した場合は、ステップ S 5 0 9に おいて、 その空ページに対して更新した管理情報、 すなわち、 論理物理アドレ ス変換テープルあるいは F A T等のファイル管理情報の書き込み処理を実行 する。 ステップ S 5 0 2において、更新前データの書き込みページが、奇数プロッ クのページでないと判定した場合は、 ステップ S 5 0 6に進み、更新直前の管 理情報が書き込まれているページのページ番号が偶数プロックの先頭のぺー ジ、 つまりページ番号 0 (通し番号 0 ) であるかどうかを判断する。 偶数プロックの先頭ページ、 つまりページ番号 0 (通し番号 0 ) に更新直前 の管理情報が書き込まれている場合には、 ステップ S 5 0 7に進み、奇数プロ ックに書き込まれている全ての情報を消去して、 奇数プロックの先頭ページ、 つまりページ番号 0 (通し番号 1 ) を更新管理情報の書き込み領域として確保 する。 ステップ S 5 0 6において、偶数プロックの先頭ページ以外のページに更新 直前の管理情報が書き込まれていると判定した場合には、ステップ S 5 0 8に 進み、更新直前の管理情報が書き込まれている偶数プロックのページ番号と同 じページ番号を、奇数ブロックにおける更新管理情報の書き込みページ領域と して確保する。 ステップ S 5 0 9において、制御部は、奇数プロックに確保したページに更 新した管理情報、すなわち、論理物理ァドレス変換テーブルの更新データある いは F A T等のファイル管理情報の更新データの書き込み処理を実行する。 上述したように、本発明の構成においては、論理物理ァドレス変換テーブル の更新あるいは F A T等のファイル管理情報の更新処理を、 2つのプロックを プロック組として設定し、プロック交互に各ページを利用して更新管理情報を 書き込む構成としたので、例えば管理情報の更新処理の最中にホスト機器から のメモリカードの取りはずしを行ってしまったような場合、あるいは電源が O F Fになってしまった場合等、更新管理情報の書き込みエラーが発生した場合 であっても、更新直前のデータは消失することなく記憶保持されることになり、 少なく とも更新前の管理情報を利用した処理が可能となる。 従って、更新前の管理情報を利用したデータアクセス、 さらに更新直前管理 情報を用いた管理情報の再更新処理を行うことが可能となり、エラーに対する 耐性の高い管理情報記憶構成が実現される。 論理物理ァドレス変換テーブルの更新あるいは FAT等のファイル管理情 報の更新処理は、フラッシュメモリのデータ領域に格納するユーザデータのデ ータ書き込みが実行される毎に行う処理態様と、ユーザデータのデータ書き込 みが複数回、 行われた後にまとめて実行する形態とがある。 図 1 9に、フラッシュメモリ のデータ領域に対するデータ書き込み毎に管理 情報の更新データをフラッシュメモリの管理情報領域に書き込む処理を実行 するシーケンスと、フラッシュメモリのデータ領域に対する複数回のデータ書 き込みが終了後に管理情報の更新データをまとめてフラッシュメモリの管理 情報領域に書き込む処理を実行するシーケンスとをそれぞれ(a )、 (b ) のフ ローとして示した。
(a ) のように、 ステップ S 7 1 1のデータ書き込みに対して、 ステップ S 7 1 2で、管理情報、すなわち論理物理ァドレス変換テーブルの更新データあ るいは FAT等のファイル管理情報の更新データを書き込み、ステップ S 7 1 3でデータ書き込み、 ステップ S 7 1 4で管理情報の更新データ書き込み、以 下同様にデータ書き込みと管理情報書き込みを繰り返して実行した場合、例え ばステップ S 7 1 3でのデータ書き込みの後、これらの書き込みデータに対応 する更新管理情報の書き込み(S 7 1 4) が完了する以前にメモリカードがホ ストから抜かれるなど、メモリカードに対する電源供給が停止してしまった場 合には、ステップ S 7 1 3での書き込みデータのみのァドレス情報が管理情報 領域の FAT、論理物理ァドレス変換テーブルに書き込まれないため、 ァクセ スが不能となる。 一方、 (b ) には、 データ書き込み処理 4回に 1回の比率で管理情報の更新 処理を実行するシーケンスを示している。ステップ S 7 24〜 S 7 2 7の 4回 のデータ書き込みに対して、 ステップ S 7 2 8で、 管理情報、 すなわち論理物 理アドレス変換テーブルの更新データあるいは F AT等のファイル管理情報 の更新データを書き込む。 この場合、例えばステップ S 7 2 7でのデータ書き 込みの後、ステップ S 7 24〜 S 7 2 7の 4回の書き込みデータに対応する更 新管理情報の書き込み(S 7 2 8 ) が完了する以前にメモリカードがホストか ら抜かれるなど、メモリカードに対する電源供給が停止してしまった場合には、 ステップ S 7 24〜 S 7 2 7の 4回の書き込みデータのみのァドレスが管理 情報領域の FAT、論理物理ァドレス変換テーブルに書き込まれないため、了 クセスが不能となる。 このように、 管理情報の更新は、 図 1 9 ( a ) に示すようにユーザデータの 書き込み毎に実行するほうが更新管理情報に基づくアクセスが不能となるデ ータ量が減少することになり好ましい。 さらに、 図 20を参照して上述した本発明の管理情報更新処理、 すなわち、 論理物理ァドレス変換テープルおよび FAT等のファイル管理情報を 2つの 異なるプロックを一対にしてプロック交互にページを利用して更新する処理 のシーケンスについて説明する。 図 2 0は、管理情報の更新処理シーケンスを示すものであり、例えばホスト がブラッシュメモリ のデータ領域からをユーザデータを読み出してデータ更 新をして、フラッシュメモリに再書き込みを実行した場合に行われる論理物理 ァドレス変換テーブルあるいは F AT等のファイル管理情報の更新処理シー ケンスを示している。 . 図 2 0を参照して管理情報更新シーケンスを説明する。 まず、 ステップ S 7 0 1において、更新すべき管理情報に対応する論理ァドレスが入力される。 こ の論理ア ドレスは前述の管理テーブル (図 1 6参照) に基づいて取得される。 ステップ S 70 2において、管理テーブルに基づいて更新管理情報を書き込 むべきプロックを取得する。 本発明の構成においては、 前述したように、 管理 情報領域に格納された管理情報、すなわち論理物理ァドレス変換テーブルおよ び F A T等のファイル管理情報データは、 2つのプロック (偶数プロック、 奇 数プロック)の構成ページを交互に利用して更新データの書き込み処理を実行 する。従って、 1つの論理ァドレスに対して 2つの物理プロックが対応付けさ れている。 ステップ S 7 0 3において、更新管理情報、すなわち更新された論理物理ァ ドレス変換テーブルまたは F A T等のファイル管理情報の書き込みブロック およびページを決定する。 この決定処理は、先に図 1 8を参照して説明した手 順に従って実行される。 書き込みプロックおよびページが決定すると、 ステップ S 7 0 4において、 ホストからの更新情報としての更新された論理物理ァドレス変換テーブルま たは F A T等のファイル管理情報の書き込み処理が実行され、管理情報更新が 終了する。 図に示す例では、 プロック Bに更新直前の管理情報がそのまま残り、 プロッ ク Cに更新された管理情報が記録されることになる。 このように、本発明の構 成においては、更新前の管理情報、すなわち、論理物理ァドレス変換テーブル、 F A T等のファイル管理情報を消去することなく、維持することになり、前述 した更新処理におけるエラー発生時に更新前のデータが保護されるという効 果があるばかりでなく、更新処理において、新たな消去済みプロックの抽出処 理ゃ、更新前データ格納プロックの更新不要ページのコピー処理等が不要とな り、 管理情報更新処理における処理時間の短縮が図られる。 前述したように、 フラッシュメモリにおけるデータの再書き込みは、 通常、 消去済みプロックに対して実行されることになり、消去済みプロックの確保処 理、更新前データの書き込みプロックの新規書き込みプロックに対するデータ コピー処理等が毎更新ごとに必要となっていた。本発明においては、管理情報 の書き込みプロックとして予め 2つのブロックが割り当てられており、更新さ れたページのみをページ単位で順次異なるブロックに書き込む処理を実行す るのみで管理情報更新が可能となり、大幅な処理時間の短縮が可能となる。消 去済みのプロックの確保処理は、割り当てられたページを全て使用した場合に のみ発生するため、 処理速度への影響は小さい。 したがって、 データ更新後に ユーザによるホス トからのメモリカードの抜き取り等が行われた場合であつ ても、 F A T、論理物理ァドレス変換テーブルを含む管理情報更新処理が短時 間で実行されるため、管理情報の書き込み未了に基づくエラー発生の可能性が 減少する。 例えば、
1ページのデータ読込み時間 : T r
1ページのデータ書き込み時間 : T w
1プロック消去時間: τ e
1プロックのページ数: P n
としたとき、
従来の処理方法、すなわち、消去プロックに更新前のデータが格納されてい た旧プロックのデータをコピーして、 さらに更新ページの書き込みを行うと、 処理時間は、
T r X ( P n— 1 ) + T w X P n + T e
となる。
上記式において、 T r X ( P n— 1 ) は、 更新不要ページ (ページ数: P n 一 1 ) のコピー処理に必要な I日ブロックのページ読み取り時間を示し、 T w X P nは、 新規プロックに対する更新ページ +コピーページ (ページ数: P n ) の書き込み時間、 T eはプロックの消去時間を示す。 一方、本発明の構成、すなわちプロック組を利用した更新情報の書き込み処 理の所要時間は、
最小で、 1ページの書き込み時間のみ、 すなわち、 T wであり、
最大、 すなわちプロック組の空ページがなくなった場合でも、
T w + T eに過ぎない。
このように、本発明の構成、すなわちプロック組を利用した更新情報の書き 込み処理の所要時間は、従来の処理時間に比較して大幅に短縮される。従って、 データ更新後にユーザによるホストからのメモリカードの抜き取り等が行わ れた場合であっても、管理情報更新処理が短時間で実行され、管理情報の書き 込み未了に基づくエラー発生の可能性が減少する。 [ホス ト機器の構成]
最後にフラッシュメモリを利用するホスト機器、すなわち情報処理装置の構 成例として P Cのハード構成例について図 2 1を参照して説明する。
C PU (Central Processing Unit) 7 0 1は、 ROM (Read Only Memory) 7 0 2、 または HDD 7 0 4等に記憶されているプログラムに従って、各種の処 理を実行する。 R AM 7 0 3には、 C PU 7 0 1が実行するプログラムゃデー タが適宜記憶される。 C PU 7 0 1、 ROM 7 0 2、 および RAM 7 0 3、 H DD 7 04は、 バス 7 0 5を介して相互に接続されている。 バス 70 5には、入出力インタフェース 7 0 6が接続されており、入出力ィ ンタフエース 7 0 6には、 例えば、 ユーザにより操作されるキーボード、 スィ ツチ、 ボタン、 あるいはマウス等により構成される入力部 7 0 7、 ユーザに各 種の情報を提示する L CD、 C R T、 スピーカ等により構成される出力部 7 0 8が接続される。 さらに、 データ送受信手段として機能する通信部 7 0 9、 さ らに、上述したフラッシュメモリを持つメモリカード 7 1 1を装着可能で、 メ モリカード 7 1 1からのデータ読み出しあるいは書き込み用ィンタフェース としてのフラッシュメモリ I /F 7 1 0が接続される。 図 2 1に示す構成は、フラッシュメモリを利用する情報処理装置の一例とし てのパーソナルコンピュータ (P C ) の例であるが、 フラッシュメモリを利用 する情報処理装置としては、 P Cに限らず、 ビデオカメラ、 携帯電話、 P D A 等の携帯通信端末、 その他、 再生装置、 ディスプレイ等の様々な電子機器があ る。従って、それぞれの機器固有のハードウエア構成を持つことが可能であり、 そのハードウェアに従った処理を実行する。 以上、 特定の実施例を参照しながら、 本発明について詳解してきた。 しかし ながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成 し得ることは自明である。すなわち、例示という形態で本発明を開示してきた のであり、限定的に解釈されるべきではない。本発明の要旨を判断するために は、 冒頭に記載した特許請求の範囲の欄を参酌すべきである。 なお、明細書中において説明した一連の処理はハードウエア、 またはソフト ウェア、 あるいは両者の複合構成によって実行することが可能である。 ソフ ト ウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、 専用のハードウエアに組み込まれたコンピュータ内のメモリにインス トール して実行させるか、 あるいは、各種処理が実行可能な汎用コンピュータにプロ グラムをインストールして実行させることが可能である。 例えば、プログラムは記録媒体としてのハードディスクや R O M (Read Only Memory)に予め記録しておくことができる。 あるいは、 プログラムはフレキシ プノレディスク、 C D - R O M (Compact Di sc Read Only Memory) , M O (Magneto opt ical)ディスク, D V D (Di gital Versat i le Di sc)、 磁気ディスク、 半導体 メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録) しておくことができる。 このようなリムーバブル記録媒体は、いわゆるパッケ ージソフトウェアとして提供することができる。 なお、 プログラムは、上述したようなリムーバプル記録媒体からコンビユー タにィンストールする他、 ダウンロードサイ トから、 コンピュータに無線転送 したり、 L A N (Local Area Network)、 インターネットといったネットワーク を介して、 コンピュータに有線で転送し、 コンピュータでは、 そのようにして 転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体に インストールすることができる。 なお、明細書に記載された各種の処理は、記載に従って時系列に実行される のみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあ るいは個別に実行されてもよい。 産業上の利用可能性 以上、 説明したように、 本発明の構成によれば、 フラッシュメモリのァドレ ス管理情報である F A T等のファイル管理情報をメモリの管理情報領域に格 納するとともに、 F A T構成データの格納プロックとして 2つのプロックから なるプロック組を設定し、プロック組を構成する 2つのプロックの各ページを 交互に適用して更新 F A T情報を書き込み、プロック組を構成する 1つのプロ ックに更新直前の F A T情報を保持したまま、更新情報をもう一方のプロック に書き込む構成としたので、更新管理情報の書き込みエラー発生時にも更新直 前の F A T情報が記憶保持され、更新直前の F A T情報を利用した処理、たと えば更新直前の F A T情報を利用したデータアクセス、および更新直前の F A T情報を利用した F A T情報の管理情報の再更新処理等が可能となる。 さらに、本発明の構成によれば、 F A Tに対応する 1つの論理ァドレスに対 応して 2つの異なる物理ァドレスを設定して論理ァドレスに基づいて更新デ ータを書き込むプロック組を構成する 2つのブロックを即座に抽出可能とす るとともに、直前の更新前データが書き込まれたプロックおよびページに基づ いて更新データを書き込むプロックおよびページを決定する構成としたので、 更新管理情報の書き込みプロックおよびページの決定を高速に実行すること が可能となる。 また、本発明の構成によれば、 F A T等のファイル管理情報の更新処理にお いて、従来のデータ再格納シーケンスとして実行する消去済みプロックの取得、 更新前データの格納されていたプロックから消去済みプロックに対するぺー ジデータのコピー等の処理を実行する必要がなくなるので、管理情報の更新処 理時間が短縮される。従って、データ更新後にユーザによるホストからのメモ リカードの抜き取り等が行われた場合であっても、 F A T ,論理物理ァドレス 変換テーブルを含む管理情報更新処理が短時間で実行されるため、管理情報の 書き込み未了に基づくエラー発生の可能性が減少する。

Claims

請求の範囲
1 . データ記憶部と、該データ記憶部に対するデータ入出力制御を実行す る制御部とを有するデータ記憶装置において、
前記データ記憶部は、所定容量のデータを記憶可能なページが複数設定され たプロックに分割され、 ユーザデータの格納領域としてのデータ領域と、該デ ータ領域に対するアクセスのためのァドレス情報を含む管理情報領域とを有 し、
前記管理情報領域は、前記データ領域に格納されたデータファイルのァ ドレ ス連鎖情報を持つファイル管理情報を格納し、
前記制御部は、
前記ファイル管理情報の更新情報を、 2つの異なるプロックを一対としたプ 口ック組を構成する一方のプロックの構成ページに更新前ファイル管理情報 を残し、前記プロック組を構成する他方のプロックの構成ページに更新後ファ ィル管理情報を書き込む処理を実行する構成であることを特徴とするデータ 記憶装置。
2 . 前記ファイル管理情報は、 F A T (Fi le Allocation Table)であり、 前記制御部は、 F A T更新情報の書き込み処理において、前記 2つの異なるプ ロックを一対としたプロック組を適用し、プロック組を構成する 2プロックの 構成ページに対して、 2プロックを交互に適用して更新 F A T情報を書き込む 処理を実行する構成であることを特徴とする請求項 1に記載のデータ記憶装 置。
3 . 前記ファイル管理情報に対して設定される 1つの論理ァドレスに対応 して前記プロック組のァ ドレス情報としての 2つの物理ァ ドレスが設定され、 前記制御部は、更新すべきファイル管理情報を指定した論理ァドレスに応じ て前記 2つの物理ァドレス情報を取得して、該 2つの物理ァドレスに基づいて 特定される 2プロックを更新ファイル管理情報の書き込みプロックを構成す るプロック組として識別する構成であることを特徴とする請求項 1に記載の データ記憶装置。
4 . 前記制御部は、
ユーザデータの格納領域としてのデータ領域に対するユーザデータ書き込 み処理の一処理単位毎に、前記ファイル管理情報の更新情報の書き込み処理を 実行する構成であることを特徴とする請求項 1に記載のデータ記憶装置。
5 . 前記データ記憶部の管理情報領域には、 さらに、 前記データ領域に格 納されたデータに対応して設定される論理ァドレスと、前記データ領域に格納 されたデータの物理的位置に対応して設定される物理ア ドレスとを対応付け た論理物理ァ ドレス変換テーブルとを格納した構成であることを特徴とする 請求項 1に記載のデータ記憶装置。
6 . 前記制御部は、 さらに、
前記論理物理ァドレス変換テーブルの更新情報を、 2つの異なるプロックを 一対としたプロック組を構成する一方のプロックの構成ページに更新前論理 物理ァドレス変換テーブル構成情報を残し、前記プロック組を構成する他方の プロックの構成ページに更新後論理物理ァドレス変換テーブル構成情報を書 き込む処理を実行する構成を有することを特徴とする請求項 5に記載のデー タ記憶装置。
7 . 前記データ記憶装置は、情報処理装置に着脱可能な構成を有するとと もに、 前記情報処理装置とのデータ入出力可能なインタフェース手段を有し、 前記制御部は、
前記ィンタフエース手段を介して情報処理装置からの論理ァ ドレスを入力 し、該入力論理ァ ドレスに従って 2つの物理ァ ドレスを取得して、該 2つの物 理ァドレスに基づいて特定される 2プロックを更新ファイル管理情報の書き 込みプロックの組として識別する構成であることを特徴とする請求項 1に記 載のデータ記憶装置。
8 . 前記制御部は、
前記ファイル管理情報の更新処理をページ単位で実行し、前記プロック組を 構成する 2つのプロックの構成ページを交互にシーケンシャルに使用して更 新管理情報の書き込み処理を実行し、該プロック組を構成する 2プロックの構 成ページに空きページがない場合に、更新直前のファイル管理情報が格納され たプロックと異なるブロックのデータを消去し、該消去プロックの先頭ページ に更新ファイル管理情報の書き込み処理を実行する構成であることを特徴と する請求項 1に記載のデータ記憶装置。
9 . データ記憶部と、該データ記憶部に対するデータ入出力制御を実行す る制御部とを有するデータ記憶装置における管理情報更新方法であり、 更新管理情報に対応する論理ァ ドレスを入力する論理ァ ドレス入カステツ プと、
前記論理ァドレスに応じて 2つの物理ァドレス情報を取得して、該 2つの物 理ァドレスに基づいて特定される 2プロックを更新ファイル管理情報の書き 込みプロックを構成するプロック組として識別するプロック組識別ステップ と、
前記プロック組を構成する一方のプロックの構成ページに更新前ファイル 管理情報を残し、前記ブロック組を構成する他方のブロックの構成ぺージに更 新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップ と、
を有することを特徴とするデータ記憶装置における管理情報更新方法。
1 0 . 前記ファイル管理情報は、 F A T (Fi le Allocation Table)であり、 前記更新情報書き込みステップは、
前記プロック組を構成する 2プロックの構成ページに対して、 2プロックを 交互に適用して更新 F A T情報を書き込む処理を実行することを特徴とする 請求項 9に記載のデータ記憶装置における管理情報更新方法。
1 1 . ユーザデータの格納領域としてのデータ領域に対するユーザデータ 書き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報書き込みス テツプを実行することを特徴とする請求項 9に記載のデータ記憶装置におけ る管理情報更新方法。
1 2 . 前記データ記憶装置における管理情報更新方法は、 さらに、 前記論理ァ ドレス入力ステップにおいて入力する論理ァ ドレスに応じて 2 つの物理ァドレス情報を取得して、該 2つの物理ァドレスに基づいて特定され る 2プロックを更新すべき論理物理ァドレス変換テーブル構成情報を書き込 むプロックを構成するプロック組として識別するプロック組識別ステップと、 前記プロック組を構成する一方のプロックの構成ページに更新前論理物理 ァドレス変換テーブル構成情報を残し、前記プロック組を構成する他方のプロ ックの構成ページに更新後論理物理ァドレス変換テーブル構成情報を書き込 む処理を実行する更新情報書き込みステップと、
を実行することを特徴とする請求項 9に記載のデータ記憶装置における管 理情報更新方法。
1 3 . 前記更新情報書き込みステップは、
前記ファイル管理情報の更新処理をページ単位で実行し、前記プロック組を 構成する 2つのプロックの構成ページを交互にシーケンシャルに使用して更 新管理情報の書き込み処理を実行し、該プロック組を構成する 2プロックの構 成ページに空きページがない場合に、更新直前のファイル管理情報が格納され たプロックと異なるプロックのデータを消去し、該消去プロックの先頭ページ に更新ファイル管理情報の書き込み処理を実行することを特徴とする請求項 9に記載のデータ記憶装置における管理情報更新方法。
1 4 . データ記憶部と、該データ記憶部に対するデータ入出力制御を実行 する制御部とを有するデータ記憶装置における管理情報更新処理を実行する コンピュータ .プログラムであり、
更新管理情報に対応する論理ァドレスを入力する論理ァドレス入カステツ プと、
前記論理ァ ドレスに応じて 2つの物理ァ ドレス情報を取得して、該 2つの物 理ァドレスに基づいて特定される 2プロックを更新ファイル管理情報の書き 込みプロックを構成するプロック組として識別するプロック組識別ステップ と、
前記プロック組を構成する一方のプロックの構成ページに更新前ファイル 管理情報を残し、前記プロック組を構成する他方のプロックの構成ページに更 新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップ と、
を有することを特徴とするコンピュータ · プログラム。
PCT/JP2004/002924 2003-03-19 2004-03-05 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム WO2004084074A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/514,985 US7444460B2 (en) 2003-03-19 2004-03-05 Data storage device, method for updating management information in data storage device, and computer program
EP04717886A EP1507209A4 (en) 2003-03-19 2004-03-05 DATA STORAGE DEVICE, METHOD FOR UPDATING ADMINISTRATIVE INFORMATION IN A DATA STORAGE DEVICE AND COMPUTER PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-074931 2003-03-19
JP2003074931A JP2004280752A (ja) 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2004084074A1 true WO2004084074A1 (ja) 2004-09-30

Family

ID=33027853

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/002924 WO2004084074A1 (ja) 2003-03-19 2004-03-05 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Country Status (7)

Country Link
US (1) US7444460B2 (ja)
EP (1) EP1507209A4 (ja)
JP (1) JP2004280752A (ja)
KR (1) KR20050107557A (ja)
CN (1) CN1698035A (ja)
TW (1) TWI247988B (ja)
WO (1) WO2004084074A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050152251A1 (en) * 2004-01-08 2005-07-14 Victor Company Of Japan, Ltd. Method and apparatus for recording check data of file system on recording medium
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
WO2007034706A1 (ja) * 2005-09-22 2007-03-29 Matsushita Electric Industrial Co., Ltd. 情報記録媒体アクセス装置、及びデータ記録方法
US7836105B2 (en) * 2005-11-14 2010-11-16 Apple Inc. Converting file-systems that organize and store data for computing systems
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
JP4895264B2 (ja) * 2005-12-27 2012-03-14 株式会社メガチップス 記憶装置および情報処理装置
KR100737919B1 (ko) * 2006-02-28 2007-07-10 삼성전자주식회사 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
DE102006013765A1 (de) 2006-03-24 2007-09-27 Robert Bosch Gmbh Verfahren zur Belegung eines Speichers
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム
KR100845137B1 (ko) * 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
JP4402103B2 (ja) * 2006-12-11 2010-01-20 富士通株式会社 データ記憶装置、そのデータ再配置方法、プログラム
KR101442145B1 (ko) * 2007-01-11 2014-09-23 삼성전자 주식회사 데이터 관리 장치 및 방법
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US8103936B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND
US7675776B2 (en) * 2007-12-21 2010-03-09 Spansion, Llc Bit map control of erase block defect list in a memory
US8239611B2 (en) * 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
WO2009090692A1 (ja) * 2008-01-16 2009-07-23 Panasonic Corporation 半導体記録装置及び半導体記録システム
US8296506B2 (en) * 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
TWI498731B (zh) * 2010-03-17 2015-09-01 Phison Electronics Corp 非揮發性記憶體儲存系統
TWI425355B (zh) * 2010-03-17 2014-02-01 Phison Electronics Corp 資料存取方法、記憶體控制器與儲存系統
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
JP2013003701A (ja) * 2011-06-14 2013-01-07 Sony Corp 情報処理装置及び方法、並びにプログラム
CN102591807B (zh) * 2011-12-30 2015-03-11 记忆科技(深圳)有限公司 一种固态硬盘掉电和写异常处理方法及系统
TWI451248B (zh) * 2012-01-13 2014-09-01 Phison Electronics Corp 資料保護方法、記憶體控制器與記憶體儲存裝置
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US8625386B2 (en) 2012-03-22 2014-01-07 Seiko Epson Corporation Non-volatile memory device, circuit board, printing material container and printer
JP6072428B2 (ja) * 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド 制御装置、記憶装置、記憶制御方法
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US11579774B2 (en) 2015-01-20 2023-02-14 Ultrata, Llc Object memory data flow triggers
CA2974394C (en) 2015-01-20 2023-09-05 Ultrata, Llc Distributed index for fault tolerant object memory fabric
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
KR102316198B1 (ko) * 2015-06-12 2021-10-25 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
US9904607B2 (en) 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
US10235063B2 (en) 2015-12-08 2019-03-19 Ultrata, Llc Memory fabric operations and coherency using fault tolerant objects
WO2017100288A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc. Memory fabric operations and coherency using fault tolerant objects
CN108885604B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 存储器结构软件实现方案
KR102299880B1 (ko) * 2017-04-04 2021-09-09 에스케이하이닉스 주식회사 데이터 변환 장치 및 방법
WO2018207489A1 (ja) * 2017-05-10 2018-11-15 オリンパス株式会社 動画生成装置、動画生成方法、及び動画生成プログラム
CN107357528A (zh) * 2017-06-29 2017-11-17 长沙伟确科技发展有限公司 一种基于flash的文件系统
JP6935694B2 (ja) * 2017-07-12 2021-09-15 株式会社デンソー 電子制御装置
JP2019179455A (ja) 2018-03-30 2019-10-17 東芝メモリ株式会社 記憶装置及びコンピュータシステム
KR102089164B1 (ko) 2018-07-18 2020-03-13 고진호 격투기용 신체보호대
CN114116366A (zh) * 2020-08-26 2022-03-01 宸展光电(厦门)股份有限公司 一种检测存储器安装状态的方法、装置及系统
US11429287B2 (en) * 2020-10-30 2022-08-30 EMC IP Holding Company LLC Method, electronic device, and computer program product for managing storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207788A (ja) * 1997-01-28 1998-08-07 Casio Comput Co Ltd 情報記録装置及びそのデータ管理方法並びに記録媒体
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
WO2002054247A1 (fr) * 2000-12-28 2002-07-11 Sony Corporation Enregistreur de donnees et procede d'enregistrement de donnees dans une memoire flash

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330028B1 (en) * 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4281185B2 (ja) * 1999-03-25 2009-06-17 ソニー株式会社 編集装置および方法
JP4779183B2 (ja) * 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
CN1143218C (zh) * 1999-03-03 2004-03-24 索尼公司 记录设备、记录方法、再现设备和再现方法
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207788A (ja) * 1997-01-28 1998-08-07 Casio Comput Co Ltd 情報記録装置及びそのデータ管理方法並びに記録媒体
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
WO2002054247A1 (fr) * 2000-12-28 2002-07-11 Sony Corporation Enregistreur de donnees et procede d'enregistrement de donnees dans une memoire flash

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1507209A4 *

Also Published As

Publication number Publication date
TW200506609A (en) 2005-02-16
EP1507209A1 (en) 2005-02-16
TWI247988B (en) 2006-01-21
KR20050107557A (ko) 2005-11-14
EP1507209A4 (en) 2008-08-27
US7444460B2 (en) 2008-10-28
US20050182892A1 (en) 2005-08-18
JP2004280752A (ja) 2004-10-07
CN1698035A (zh) 2005-11-16

Similar Documents

Publication Publication Date Title
WO2004084074A1 (ja) データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US8291155B2 (en) Data access method, memory controller and memory storage system
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
CN100347684C (zh) 记录系统、数据记录设备、存储设备和数据记录方法
JP5183686B2 (ja) 記憶装置および記憶システムならびにコンピュータシステム
US20110099324A1 (en) Flash memory storage system and flash memory controller and data processing method thereof
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN1227591C (zh) 记录系统、数据记录设备、存储设备和数据记录方法
CN101354715A (zh) 用于操作数据处理系统的系统、方法和计算机程序产品
WO2002054247A1 (fr) Enregistreur de donnees et procede d&#39;enregistrement de donnees dans une memoire flash
JP2012503234A (ja) メモリ装置のための組み込みマッピング情報
KR101378031B1 (ko) 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
JP2007280108A (ja) 記憶媒体制御装置、記憶媒体制御方法、プログラム
US20100115187A1 (en) Non-volatile data storage system and method thereof
JP2005196609A (ja) 情報記録フォーマットおよび情報記録媒体
JP5002944B2 (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
WO2020241545A1 (ja) 情報処理装置
KR20110016320A (ko) 플래시 메모리를 블록 그룹으로 구분하여 관리하는 방법
JP2007026453A (ja) 記憶装置および記憶システム
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2006302315A (ja) 記憶装置および記憶システム
TWI592813B (zh) 用來存取儲存在電子裝置中之儲存媒體的資料的方法
TWI669610B (zh) 資料儲存裝置以及非揮發式記憶體控制方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2004717886

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020047018663

Country of ref document: KR

Ref document number: 10514985

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20048002463

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2004717886

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020047018663

Country of ref document: KR