WO2005050453A1 - ファイル記録装置 - Google Patents
ファイル記録装置 Download PDFInfo
- Publication number
- WO2005050453A1 WO2005050453A1 PCT/JP2004/015182 JP2004015182W WO2005050453A1 WO 2005050453 A1 WO2005050453 A1 WO 2005050453A1 JP 2004015182 W JP2004015182 W JP 2004015182W WO 2005050453 A1 WO2005050453 A1 WO 2005050453A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- file
- block
- buffer
- write
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 134
- 238000000034 method Methods 0.000 claims description 24
- 238000013500 data storage Methods 0.000 claims description 17
- 238000009825 accumulation Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 4
- 239000004065 semiconductor Substances 0.000 abstract description 8
- 230000015654 memory Effects 0.000 description 85
- 238000007726 management method Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the present invention relates to a file recording device that records a file in a semiconductor memory.
- non-volatile semiconductor memory which does not lose the recorded data even when the power is turned off, needs to be erased before recording, but since there is no mechanical drive mechanism and no rotation, vibration resistance and quietness are maintained.
- excellent sex also by Tsu coupled with a larger capacity by improving the recording density, CD (Compact Disk), DVD (Di g ital Versatile Disk) , etc. and parallel Pi, has spurred the spread as an information recording medium .
- EEPROM Electrically Erasable Programmable Read Only Memory
- This flash memory can be erased collectively in units called blocks, making it a product such as SD memory cards. It is used for recording digital cameras.
- a file system that manages data of various recording media including the flash memory includes FAT (File Allocation Table, Standard ECMA—107: Volume and File Structure of Disk Cartridges for Information Interchange) and NTFS (New Technology). File System) and UDF (Universal Disk Format).
- FAT File Allocation Table, Standard ECMA—107: Volume and File Structure of Disk Cartridges for Information Interchange
- NTFS New Technology
- File System New Technology
- UDF Universal Disk Format
- the larger the cluster size the lower the memory capacity efficiency.
- the larger the block size the better the memory integration efficiency.
- the block size is usually larger than the cluster size.
- a cluster spans two blocks, it is recorded in that cluster. In some cases, two blocks need to be erased. In order to avoid this, a technique for preventing a cluster from straddling between blocks is disclosed in Japanese Patent Application Publication No. JP-A-2001-188071. If all clusters belonging to the block of flash memory are free, the file system only needs to erase and write the block.
- the block is read into the temporary memory in main memory (Read) before erasing the block, and the block is erased ( Delete), modify the changes in the temporary memory (Modify), and write the contents of the temporary memory (Write), a series of operations (called read-modify-write). Take it.
- the present invention has been made in view of the above problems, and has as its first object to provide a file recording apparatus that efficiently records data on a storage medium that requires batch erasure without waste. It is a second object of the present invention to provide a program for efficiently and efficiently recording data on the storage medium.
- the above object is to provide a file recording apparatus that records data on a recording medium that needs to be erased in units of blocks composed of a predetermined number of continuous clusters, using clusters as recording allocation units for data included in a file.
- Receiving means for receiving a request to write the data of each file to the recording medium; a plurality of file buffers; and a data storage means for individually storing the requested data in the file buffer.
- Determining means for determining whether or not the size of the data stored by the data storage means is greater than or equal to the book size; and, if the determination is positive, among the data stored by the data storage means, Block Writing means for extracting data of the same size and writing the data in an empty block of the recording medium.
- data can be written in units of blocks occupied by data of one file.
- the determining means determines that the accumulated data is equal to or greater than the block size
- the data of the predetermined number of clusters can be taken out from each of the file buffers in cluster size units and written to the free block.
- the above-mentioned object is to provide a storage medium having a plurality of file buffers, a cluster as a recording allocation unit for data included in a file, and a storage medium which needs to be erased in units of blocks composed of a predetermined number of continuous clusters.
- a method for controlling a file recording apparatus for recording a file comprising: writing data of each file to the recording medium.
- the above object is to provide a storage medium having a plurality of file buffers, a cluster as a recording allocation unit for data included in a file, and a recording medium which needs to be erased in units of blocks composed of a predetermined number of continuous clusters.
- the above purpose is to provide a driver data buffer,
- a file recording device that records data on a recording medium that needs to be erased in units of blocks composed of a predetermined number of continuous clusters as a recording allocation unit for included data, including a write destination address on the recording medium
- a receiving step of receiving a write request ; and a first determining step of determining whether the write data and the data in the driver data buffer are continuous in an address of the recording medium when the driver data buffer is not empty.
- a data accumulation step for accumulating write data in the driver data buffer; and determining whether a write destination of the data accumulated in the driver data buffer coincides with a block boundary. Is determined to be affirmative in the second determination step for determining
- a program for executing a write step of writing data from the head of the driver data buffer to the boundary of the block on the recording medium can be achieved.
- the program may be a filter driver for the recording medium.
- FIG. 1 is a diagram showing a configuration of a file recording apparatus according to a first embodiment of the present invention.
- FIG. 2 is a diagram showing a configuration of the memory card of the above embodiment.
- FIG. 3 shows an example of the format of the flash memory in the above embodiment.
- FIG. 4 is a diagram illustrating a state of accumulation of data in a file buffer and an example of writing to a flash memory in the above embodiment.
- FIG. 5 is a flowchart showing the overall processing procedure of file recording according to the above embodiment.
- FIG. 6 is a flowchart showing a processing procedure for opening a file record and the like in the above embodiment.
- FIG. 7 is a flowchart showing a processing procedure of a file recording write request according to the above embodiment.
- FIG. 8 is a diagram showing a state of accumulation of data in a file buffer and an example of writing to a flash memory in the second embodiment of the file recording apparatus according to the present invention.
- FIG. 9 is a flowchart illustrating a processing procedure of a write request according to the above embodiment.
- FIG. 10 is a diagram showing a hierarchical structure of software in the third embodiment of the file recording device according to the present invention.
- FIG. 11 is a flowchart showing a processing procedure of the filter driver according to the above embodiment.
- FIG. 12 is a diagram showing a relationship between data in the data buffer and blocks in the flash memory according to the above embodiment.
- FIG. 1 is a diagram showing a configuration of the present embodiment.
- the file recording device consists of a memory card 110, a file puffer 120, an input / output request receiving unit 130, a data storage unit 140, a block management unit 150, and a file. It comprises a writing section 160 and a file management section 190.
- the file recording device further includes a CPU and a memory (not shown).
- a CPU central processing unit
- a memory not shown.
- Each of the above components is a program or a memory area. If the component is a program, it is loaded into the memory and executed by the CPU.
- the file recording device receives an input / output request for a single file or a plurality of files.
- the input / output request source is, for example, an application that operates on a file recording device, a device that issues a request through a network, and the like.
- the I / O request source can request the file recording device to record to multiple files simultaneously.
- the input / output request source may be of multiple types, for example, an application and other devices on the network, but may be of multiple types within one type, for example, applications A, B, C, etc. It does not matter.
- the input / output request source is treated here as a singular.
- the memory card 110 records the file requested by the I / O request source.
- the memory card 110 includes a command execution unit 201, a data buffer 202, and a flash memory 205.
- the command execution unit 201 receives a command that can be executed by the memory card 110 from the file writing unit 160 and executes the command. Commands that can be executed by the command execution unit 201 include writing, reading, and block erasing of the flash memory 205.
- the write command includes the sector number as the start address of the write destination in the flash memory 205 and the number of sectors as the data size.
- the command execution unit 201 writes data for the number of sectors set in the data buffer 202 from the above-mentioned sector number of the flash memory 205.
- the maximum number of sectors as the data size is a number corresponding to one block size, that is, 128.
- the data buffer 202 is a block-size buffer that holds data to be written by a write command.
- the data buffer 202 holds the write data transferred by the file writing section 160, and the command execution section 201, which has received the write command, stores the write data in the file writing section 160. Data is written to the flash memory 110.
- the data buffer 202 also holds data read from the flash memory 205 by a read command.
- the read command includes the sector number and the number of sectors as the start address of the read destination in the flash memory 205 and the data size.
- the maximum number of sectors is 128 as in the case of writing.
- the flash memory 205 is a memory that needs to be erased in units of blocks before recording, that is, a memory that needs to erase a block that is composed of a sector to be written (described later) or a cluster (described later).
- the data of the file written by 1 is stored.
- the erase command includes the number of the block to be erased.
- the command execution unit 201 erases the block of the flash memory 205 with the specified block number.
- FIG. 3 is a diagram showing an example of the format of the flash memory 205.
- the flash memory 205 is managed in units of a hierarchical division of blocks 311, clusters 312, and sectors 313.
- Block 311 is a unit of erasure required before recording. When writing data to a file, unused free blocks are allocated to the data in the file.
- the block number 4001—4192 is not shown in FIG. 3 as a spare.
- the cluster 312 is the minimum unit of allocation to file data, and is referred to in the file management table FAT 205 described later.
- the sector 3 13 is the minimum unit of data input / output, and is assigned an integer sector number in order from 1 and the sector number indicates an address on the flash memory.
- the size of the data when writing to the flash memory 205 is The number of sectors is used instead of the number of sectors. In sector 3 13 in FIG. 3, only the first sector number of each block and each cluster is described.
- the area 314 of the flash memory 205 is roughly divided into a system area 321 and a user area 331.
- the system area 321 further includes a reserved area 322, a FAT area 323, and a root directory entry 324.
- the reserved area 322 stores boot information, parameter information relating to the flash memory 205 as a recording medium, and the like.
- the sector size is 5 12 B (bytes)
- 1 cluster is 16 KB
- 1 cluster is 32 sectors
- 1 block is 4 clusters.
- one cluster has a size of 16 KB
- one block has a size of 64 KB.
- the flash memory 205 has a storage capacity of 256 MB.
- the cluster size and the block size are not limited to these values.
- one block may be 128 KB or 256 KB, and the cluster size may be 8 KB or 32 KB.
- FAT area 3 2 3 Put FAT 3 3 5
- FAT 335 is a table showing the locations of the clusters where the files are located.
- the root directory entry 324 is an area composed of a directory storing file management information. Each directory contains the file name, the date and time the file was recorded (not shown), the number of the first cluster occupied by this file, and the number of the first cluster occupied (or the first FAT entry number).
- directory A of file A has a leading cluster of 1, and entry 2 of FAT 335 corresponding to cluster 1 records “2”, so file A is in cluster 1 Occupies the cluster 2 following. Similarly, entry 2 records “3”, so it occupies cluster 3, and entry 3 records “4”, so it occupies cluster 4. Since the FAT entry 4 records "FF" indicating the end of the file, the occupied cluster is a contiguous cluster of 1, 2, 3, and 4. It turns out that this corresponds to block 4. In the FAT area 3 23, the FAT 335 is doubled for safety (not shown).
- the user area 331 is an area in which file data or directory information is recorded. In the present embodiment, allocation to file data is basically performed in block units. The format of the system area 321 is fixed, and the cluster number is used only in the user area.
- the file buffer 120 is a two-block size buffer (memory area) for temporarily storing data requested by the recording request source, and is used for file input / output requests.
- the file management unit 190 secures the file exclusively for that file, and when the file is closed, it is opened (returned) by the file management unit 190.
- the size of the file buffer 120 is set to two block sizes, it may be a size obtained by adding one block size to the maximum size of write data of an input / output request described later.
- the write buffer 125 is a block-size memory area for temporarily storing data of a file to be written to the flash memory 205, and is used by the file writing unit 160.
- the input / output request receiving unit 130 receives an input / output request for a file in the flash memory 205 of the memory card 110 from the input / output request source.
- File input / output requests include opening and closing files, writing file data (Write), and reading file data (Read).
- the I / O request receiving unit 130 enters the file name that is the information of the file to be opened, and when the I / O request is closed, the file descriptor (the file information that is the information of the file to be closed). (Described later) from the I / O request source.
- the input / output request receiving unit 130 When the input / output request is for writing file data, the input / output request receiving unit 130 also receives the file data to be written (hereinafter referred to as “write data”) from the input / output request source.
- Write data can be received directly following the write instruction, or the memory containing the data set in advance by the write request source.
- the upper address and data size (in bytes) are received following the write instruction.
- the maximum value of the write data size for each write request received by the input / output request receiving unit 130 is the block size (64 KB). Note that this maximum value is not fixed but may be another size, for example, 256 KB.
- the input / output request receiving unit 130 transfers the write data to a data area (not shown) on the memory.
- the input / output request receiving unit 130 receives information on the data of the file to be read from the input / output request source, but the detailed description is omitted because it is not used in the file recording. .
- the input / output request receiving unit 130 receives the type of input / output request (open, write, etc.) and information on the file to be processed (for example, a file descriptor for writing and closing, and a file for opening.
- the address and size of the write data are notified to the file management unit 150 as input / output request information.
- information about the processing result of the notified input / output request information is received from the file management unit 150, and is notified to the input / output request source. Notification of the processing result to the input / output request source is performed by notifying the processing result information directly or by transferring the processing result information to the memory area and notifying the memory address.
- the data storage unit 140 stores the write data in the file buffer 120 corresponding to the file indicated by the file description based on an instruction from the file management unit 190.
- the reception of the write data is performed by receiving the address and size of the memory where the data exists from the file management unit 190.
- FIG. 4 is a diagram showing an example in which data is accumulated in each of the file buffers 120A, 120B, and 120C, and is written to the flash memory 205.
- the write data accumulation process is performed on the file buffer to which the write data belongs among the file buffers secured for each file being recorded, for example, file buffers 120A, 120B, and 120C.
- the write data is file C data
- the file buffer corresponding to file C Accumulate write data in 120C.
- the accumulation means that if there is no data in the file buffer 120C, the write data is written from the beginning of the file buffer 120C, and if there is data, it is added immediately after the data.
- the size of the data stored in the file buffer 120 is not always an integral multiple of the cluster size, but is shown as an integral multiple for convenience of explanation.
- Each of the file buffers 120A, 120B, and 120C has a 2-block size (8 clusters), but is shown as a block size for convenience of explanation.
- the data storage section 140 After storing the write data in the file buffer 120, the data storage section 140 notifies the file management section 190 of the end of the storage processing.
- the file writer 160 retrieves one block size of data from the beginning of one designated file buffer 120 based on an instruction from the file manager 190, and retrieves the retrieved data. The data is transferred to the write buffer 125 and the data remaining in the file buffer 120 is left-justified. Then, a write instruction is issued to the memory card 110 so that the data of the write buffer 125 is written to the designated block (one block size from the beginning of the block) of the flash memory 205.
- the write instruction is to transfer the data of the write buffer 125 to the data buffer 202 of the memory card 110, and to write a command to the command execution unit 201 and a write destination block. Address and the size of write data.
- the file management unit 190 controls the writing of file data to the flash memory 205 of the memory card 110, more specifically, the writing of file data to the memory card 110 in units of blocks. I do.
- the file management unit 190 receives the input / output request information from the input / output request receiving unit 130. If the type of I / O request included in the received I / O request information is write, the data storage unit 140 is notified of the memory address and size of the write data included in the I / O request information, and An instruction is given to accumulate the write data in the file buffer 120 corresponding to the file indicated by the file descriptor included in the input / output request information.
- the file management unit 190 checks the size of the data stored in the file buffer 120 and determines whether or not the size is equal to or larger than the block size. If the determination is affirmative, the file management unit 190 searches the FAT 335 for a free block, allocates a free block if there is one, and deletes the free block.
- the empty block is erased by the file management unit 190 issuing an erase command designating the block number of the empty block to the command execution unit 201 of the memory card 110.
- an empty block is a block in which all of the component clusters are empty (unused). In this embodiment, empty blocks are erased at the time of allocating empty blocks.
- erasing of empty blocks should be performed at the time of occurrence of empty blocks or at any timing between the time of occurrence and the time of writing. You may.
- whether or not erasing is performed may be managed by an erasing flag provided for each block, and erasing may be performed using the free time of the memory card 110.
- the file management unit 190 specifies the specific file buffer 120 to the file writing unit 160, and the one-block size from the beginning of the file buffer 120 is specified. Instructs to write data to flash memory 205. Then, upon receiving the end notification from the file writing section 160, the file management section 190 updates the FAT 335 for the written file. For example, in FIG. 4, the file writing unit 160 stores one block of data of the file C in the writing buffer 125 into the new file C 425 (block number 6 composed of clusters 9 to 12). ) Is written into the flash memory 205, the file management unit 190 records the first cluster number 9 in the directory 42 of the file C, and the cluster 9 in the FAT 4 21 Record the next entry number in each entry as a chain of up to two classes.
- the file management unit 190 When there is no free block, the file management unit 190 outputs log information indicating that writing is not possible due to insufficient free block to a log file (not shown) as an error processing, or displays it on a display unit (not shown). indicate.
- writing is disabled when there are no free blocks.
- the search for the block size is performed and the You may make it contact.
- a “read-modify-write” for the block to which the cluster belongs is required.
- the file management unit 190 receives an input / output request of a type other than a write request from the input / output request reception unit 130, it performs the following process. If the file with the file name included in the I / O request information is not in the flash memory 205 when the I / O request is a file open, a new file is created (created).
- the file is specified, and file identification information called a file descriptor indicating the file is returned to the I / O request source as a processing result for the open I / O request.
- the I / O request source will specify the file in the future using this file descriptor.
- Creating a new file includes allocating memory for the file buffer 120 for the file and creating a directory.
- the file management unit 190 completes the recording of the file indicated by the file descriptor included in the input / output request information. In this completion process, if there is data remaining in the file buffer 120 for the file, it is written to the flash memory 205 and the memory of the file buffer is released (returned).
- the file management unit 190 reads data from the file indicated by the file descriptor included in the input / output request information and passes it to the input / output request source.
- the file management unit 190 is started when the operation of the file recording device starts, and the system area 3 2 1 of the blocks 1 to 3 of the flash memory 205 is stored in the memory card 110 (FIG. 3). Is read into the memory. By this reading, information about blocks, clusters, and sectors is obtained. Updating of FAT or directory is first performed on the memory to improve processing efficiency. Then, a write command is issued to the memory card 110 as appropriate, and block 2 or block 3 of the flash memory 205 in FIG. 3 is written and updated as the latest information. In the system area, of course, blocks are erased before writing.
- FIG. 5 to FIG. 7 are flowcharts showing the processing procedure of file recording. The operation of file recording will be described with reference to these figures.
- an input / output request receiving unit 130 receives a file input / output request from an input / output request source.
- the input / output request receiving unit 130 When the input / output request is for opening a new file (S 5 14), the input / output request receiving unit 130 also receives the name of the file to be opened from the input / output request source, and compares the open request with the file name. It is transmitted to the file management unit 190 as input / output request information.
- the file management section 190 performs the open processing of the file having the specified file name (S516). Details of the file open processing will be described later.
- the input / output request receiving unit 130 When the input / output request is to close a new file (S 518), the input / output request receiving unit 130 also receives the file description of the file to be closed from the input / output request source, and sends the close request and the file. The file is transmitted to the file management unit 190 as input / output request information. The file management unit 190 closes the file indicated by the file description (S520). The details of the file closing process will be described later.
- the input / output request receiving unit 130 receives the write data directly following the write instruction, or the input / output request source sets in advance.
- the address and data size (in bytes) on the memory where the written data exists are received following the write instruction.
- the I / O request receiving unit 130 transfers the data to a data area (not shown) on the memory, and creates I / O request information indicating a data write request of the address and size. Notify the file management unit 190.
- the write request process corresponding to the write request will be described later.
- the request includes a request to read data of a file in the flash memory 205, but a detailed description thereof will be omitted.
- FIG. 6 is a flowchart showing the process of opening and closing a file.
- the file management unit 190 receives the file open input / output request information from the input / output request reception unit 130 and includes it in the input / output request information.
- a directory of a file having a file name to be created for example, a directory 422 of "file C" in FIG. 4 is created in a root directory entry 324 of FIG. 3 (S610). If the directory of the file with the file name already exists, the file is an existing file and it is not necessary to create a directory.
- the file management unit 190 secures a file buffer 120 C corresponding to the opened file, for example, a file buffer 120 C when the opened file is “file C” in FIG. 1 2). Then, a file descriptor, which is the pointer information indicating the file, is created, and the file descriptor is notified to the input / output request receiving unit 130 as a processing result.
- the input / output request receiving unit 130 returns the file description as a processing result of the open request to the input / output request source via the input / output request receiving unit 130.
- the file management unit 190 receives input / output request information for file close from the input / output request receiving unit 130, and outputs a file corresponding to the file indicated by the file descriptor included in the input / output request information.
- Release buffer 120C (S612).
- the recording date and time (not shown) are recorded in the directory of the file, for example, the directory 422, and the processing result of the close request is transmitted to the input / output request receiving unit 130 to notify the input / output request that the processing has been completed normally.
- FIG. 7 is a flowchart showing processing of a file data write request. In FIG.
- the file management unit 190 sends a specific file corresponding to the file indicated by the file descriptor included in the input / output request information to the data storage unit 140.
- the buffer 120 and the address and size of the data area where the write data is present are notified, and an instruction is given to accumulate the data from the data area in the file buffer 120 (S710).
- the data storage unit 140 performs a process of storing the write data of the designated data area in the aisle buffer 120 based on the instruction from the file management unit 190.
- the file management unit 190 Upon receiving the notification of the completion of the storage from the data storage unit 140, the file management unit 190 checks the size of the data stored in the specific file buffer 120 to be stored in the notification of the completion.
- the file management unit 190 searches the FAT 335 for an empty block (S 716), and if there is an empty block (S 718), allocates the empty block. Then, let the memory card 110 erase the empty block.
- the file management unit 190 instructs the file writing unit 160 to write the data stored in the file buffer 120 into the empty block. Based on the instruction, the file writing unit 160 extracts data of the block size from the head of the specified file buffer 120 and transfers the data to the writing buffer 125 (S 714). ), Left-justify the remaining data in the file buffer 120.
- the data of the write buffer 125 is transferred to the data buffer 202 of the memory card 110, and the write command is sent to the command execution unit 201, and the start address of the allocated free block is sent to the command execution unit 201.
- the data is written to the specified block on the flash memory 205 in the memory card 110 (S 724).
- the file writing section 160 Upon receiving the write completion notification from the memory card 110, the file writing section 160 also sends a write end notification to the file management section 190.
- the file management section 19 Upon receiving the write end notification from the file writing section 160, the file management section 19 updates the FAT for the written file (S720). Then, the flow branches to S712 to perform the same processing on the remaining data in the file buffer 120.
- an exception of write data accumulation may be implemented.
- a write request may have an option to immediately write.
- the data is immediately written to the flash memory 205 without storing the data.
- a timer is set in the file buffer after storing the data, and if the state of the file buffer does not change even after a certain period of time, the data in the file buffer is written. You may do it.
- all data in the file buffer corresponding to the requested file should be written before processing the request. You can. (Second embodiment)
- the configuration of the file recording apparatus according to the present embodiment is different from the configuration of the first embodiment shown in FIG. 1 only in the specific configuration.
- only the functions of the two components of the file management unit 190 and the file writing unit 160 are different, and the following mainly describes the differences.
- FIG. 8 is a diagram showing an example in which data is accumulated in each of the file buffers 120A, 120B, and 120C and written to the flash memory in the present embodiment.
- the data size of the specific file buffer 120 that has been recently accumulated has reached the block size
- the data is written to the flash memory 2 ⁇ 5.
- the data size of the specific file buffer 20 stored by the data storage unit 140 does not reach the block size
- the data of each of the plurality of file buffers 120 is converted in cluster size units.
- the file management unit 190 extracts the plurality of file buffers 120 from each of the plurality of file buffers 120 until a cluster size is reached. Then, transfer the data to the write buffer 1 25 and write it to a free block in the flash memory.
- the flash memory 205 before writing is in the state of the example 3 16 in FIG. 3, and one cluster from file buffer A, one cluster from file buffer B, and file buffer C It can be seen that two clusters are taken out from, and written to an empty block (block number 6) consisting of clusters 9-12 as shown in flash memory example 8 11. Even in this case, file A 825 is written to cluster 9, file B 826 is written to cluster 10, and file C 827 is written to classes 1 and 12, so that files in the same cluster There is no mixing of data from different files.
- Updates FAT 82 1 and directory 82 2 for the written file data Converting the data of each file buffer 120 in cluster size means that the maximum number of clusters among the number of clusters not exceeding the data size of the file buffer in each file buffer 120 is obtained. That is.
- the data is written as a whole faster than writing the data of a single file by waiting until the data to be written becomes the block size unit for each file. Even when recording data of files with different data volume ratios such as simultaneous file recording of video data and audio data of the same subject, data of each file is recorded in each block in proportion to the data volume. Is done.
- FIG. 9 is a flowchart showing details of the write request process.
- FIG. 9 shows a flowchart of a write request process according to the first embodiment.
- the same processes are denoted by the same step numbers.
- the file management unit 190 when the data of a specific file buffer stored in the data storage unit 140 is not equal to or larger than the block size (S712), the file management unit 190 further stores a plurality of file buffers 1
- the data of 20 is converted in units of cluster size, and it is determined whether or not the total number of clusters is equal to or more than the number of clusters constituting the block, that is, 4 or more (S926). If the judgment result is affirmative, the writing destination block is searched (S716)
- the file management unit 190 takes out the plurality of file buffers 120 from the plurality of file buffers 120 until they reach the block size in cluster size units, and transfers them to the write buffer 125 (S 928). Update of FAT after writing to empty block is performed for multiple written files.
- a filter driver operating under the file recording device efficiently records a file.
- FIG. 10 shows a hierarchical configuration of software that operates in the file recording device of the present embodiment.
- the application program 11010 is a file recording request source in the file recording device, and is, for example, a video content recording program.
- the application program 1100 issues a file I / O request to the file system 1200 to record the file.
- the file system 102 is an existing general-purpose file system, for example, a FAT file system of a Windows operating system (a product of Microsoft Corporation), and records and manages files.
- the file system 1020 manages existing files and performs processing for file input / output requests from the application program 1010, including recording of new files.
- the file system 102 itself allocates and manages cluster units as in the past, and does not perform block-aware management and processing.
- the file system 1020 performs processing when a file input / output request is received from the application program 1010.
- File I / O requests include opening and closing files, reading and writing file data, and so on.
- the file system 1002 0 Upon receiving a file input / output request, the file system 1002 0 receives a file input / output request, and the memory card device driver 104 (FIG. 1) is a device driver of the memory card 110 (FIG. 1). 0) is issued at the device level.
- a device-level I / O request means that, for example, when a file I / O request is a write request, the file system 1020 searches and allocates a free cluster by referring to the FAT as necessary, allocates it, and A write request is issued to the device driver 104 with the address specified by the sector number of the first sector of the cluster and the data size specified by the number of sectors instead of the number of bytes.
- data input / output of the flash memory 205 is performed by specifying the sector.
- Memory card filter driver 1 0 3 0 hereinafter simply referred to as “filter driver 1
- driver data buffer which is an internal memory area, without writing the data to the device driver, and when certain conditions are met, the device driver 1040 is instructed to collectively store the stored data. Write to memory card 110. The details of the filter dryer 130 will be described later.
- the device driver 1400 receives the decompile level input / output request from the filter driver 1300, and
- the input / output processing for the memory card 110 is performed.
- the memory card 110 is almost the same as that of the first embodiment, but the format of the flash memory is based on the block information in the reserved area 3222 of FIG. 3 in the first embodiment. The only difference is that the information of “block / cluster: 4” indicating the number of clusters constituting a certain block is not recorded in the present embodiment.
- FIG. 11 is a flowchart showing a processing procedure of the filter dryino 1030. The processing of the input / output request of the filter driver 1030 will be described with reference to FIG.
- the filter driver 1030 When loaded, the filter driver 1030 secures a fixed size, for example, two block sizes, of a dry data buffer which is a memory area used internally. Also, information on blocks such as information on the number of clusters constituting a block, for example, “block / cluster: 4” and information on correspondence between blocks, clusters and sectors is held as internal information.
- driver level input / output requirements Is an I / O request in which reading and writing are specified in sectors.
- the maximum size of the write data specified by the number of sectors is one block.
- Driver-level I / O requests include writing, reading, and erasing a specified block.
- FIG. 12 is a diagram in which the relationship between the data in the driver data buffer 1201 managed by the filter driver 130 and the block in the flash memory 205 of the memory card 110 is associated with an address. .
- FIG. 12 it is assumed that data A 1, A 2, and A 3 are present in the driver data buffer 1 201 and they are continuous in the address, and the total of data A 1, A 2, and A 3 is one block. Minutes.
- writing is performed after accumulating data up to one block in the file buffer.
- writing after reaching the size of one block is not necessarily performed, but one writing is performed for part or all of one block. It does not straddle two blocks.
- the data is accumulated in the driver data buffer 121 so that the same data can be written once. It only needs to be done twice.
- the filter driver 1030 determines whether or not the dryno data buffer 1201 is empty (SI113). If empty, branch to S 1 1 2 0. If the driver data buffer 1 201 is not empty, it is determined whether or not the data of the write request (hereinafter referred to as “write data”) and the data of the driver data buffer 1 201 are continuous. 1 1 1 4).
- data A1 is stored in the driver data buffer 1201
- the write destination address (starting sector address) of A1 is sector s1
- the number of write sectors is d1
- the write is performed.
- the write destination address of the request data A2 is s2 and the number of write sectors is d2
- s2 is (s1 + d). If they match, it is determined that they are continuous.
- the write data and the data in the driver data buffer 1 201 are not continuous (SI 1 16)
- the data stored in the driver data buffer 1 201 is written to the flash memory 205 in the device. Dryno 1 0 4 0 is performed (SI 1 1 8).
- the write data requested to be written is stored in the driver data buffer 1201 as follows (S112).
- the filter driver 1300 saves the requested write data to the driver. Data is newly stored in the data buffer 1201.
- the data of the write request is additionally stored in the data of the data buffer 1221, and the write data size is updated.
- the write data size in which the number of sectors is d1 is set to (sl + s2) by adding the data size d2 of the write request.
- the write destination address (sector number) and data size (sector number) of the driver data buffer 1210 are assumed to be about 100 million as management information (not shown) attached to the data buffer 1021.
- the start address (sector number) of the data in the driver data buffer 1 201 is in the middle of block 1, the data in the driver data buffer 1 201 has one block, and ⁇ 2 and A 3 It is shown that the address straddles the block boundary.
- the address straddles the block boundary.
- the filter driver 1 0 3 0 It is determined whether there is a block boundary in the data of 1 (S112).
- a block boundary in data means that any of the sectors to which data is written matches the end of the block, that is, the last sector of the block.
- the data (A 1 + A 2) from the beginning of the data buffer 1 201 to the end of the block at the write destination address is written to the write destination block of the flash memory 205 (block 1 in the example of Figure 12). ) Is written.
- the data write destination coincides with the block boundary, and the write to the write destination block (block 1 in the example of FIG.
- writing is performed in block units by the filter driver 1030, but the present invention is not limited to this.
- the function of the filter driver described above may be incorporated in the device driver and executed. Alternatively, the function of the filter driver described above may be incorporated in a file system and executed.
- the method of the present invention may be a combination program for realizing the method using a computer system, or may be a digital signal representing the program.
- the present invention may be a computer-readable recording medium on which the program or the digital signal is recorded, such as a semiconductor memory. Further, the present invention may be the computer program or the digital signal transmitted via an electric communication line, a wireless or wired communication line, or a network represented by the Internet, or the like.
- the file recording apparatus can efficiently record a large amount of data such as video and audio such as video, and is used in an industry that records and distributes such a large amount of data, such as the music industry and the information industry.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/578,270 US7610434B2 (en) | 2003-11-18 | 2004-10-07 | File recording apparatus |
KR1020067010215A KR101087906B1 (ko) | 2003-11-18 | 2004-10-07 | 파일기록장치 |
JP2005515557A JP4287433B2 (ja) | 2003-11-18 | 2004-10-07 | ファイル記録装置 |
EP04792410A EP1686482B1 (en) | 2003-11-18 | 2004-10-07 | File recording device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003-387886 | 2003-11-18 | ||
JP2003387886 | 2003-11-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005050453A1 true WO2005050453A1 (ja) | 2005-06-02 |
Family
ID=34616171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2004/015182 WO2005050453A1 (ja) | 2003-11-18 | 2004-10-07 | ファイル記録装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7610434B2 (ja) |
EP (1) | EP1686482B1 (ja) |
JP (1) | JP4287433B2 (ja) |
KR (1) | KR101087906B1 (ja) |
CN (1) | CN100543702C (ja) |
WO (1) | WO2005050453A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100884429B1 (ko) | 2006-06-30 | 2009-02-19 | 가부시끼가이샤 도시바 | 불휘발성 반도체 메모리를 구비하는 메모리 시스템 |
JP2010518491A (ja) * | 2007-01-31 | 2010-05-27 | マイクロソフト コーポレーション | フラッシュドライブの寿命の延長 |
US7821882B2 (en) * | 2005-11-01 | 2010-10-26 | Kabushiki Kaisha Toshiba | Recording and reproducing apparatus and recording method |
JP2010271977A (ja) * | 2009-05-22 | 2010-12-02 | Fujitsu Ten Ltd | データ書込装置、データ書込方法及びプログラム |
JP2011209973A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Ltd | ディスクアレイ構成プログラム、計算機、計算機システム |
US9535625B2 (en) | 2007-03-06 | 2017-01-03 | Bohdan Raciborski | Selectively utilizing a plurality of disparate solid state storage locations |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734086B2 (en) | 2006-12-06 | 2017-08-15 | Sandisk Technologies Llc | Apparatus, system, and method for a device shared between multiple independent hosts |
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 |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
KR100904758B1 (ko) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
US20090094358A1 (en) * | 2007-10-05 | 2009-04-09 | Davis Gregg A | Data Bridge Maintenance Utilizing Data Traffic Log Change |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US20090271563A1 (en) * | 2008-04-28 | 2009-10-29 | Microsoft Corporation | Flash memory transactioning |
JP2010009206A (ja) * | 2008-06-25 | 2010-01-14 | Nikon Corp | 記録制御装置 |
US20090322905A1 (en) * | 2008-06-25 | 2009-12-31 | Nikon Corporation | Storage control device |
TWI363272B (en) * | 2008-07-11 | 2012-05-01 | Silicon Motion Inc | Data programming method and device |
KR101506578B1 (ko) * | 2008-07-17 | 2015-03-30 | 삼성전자주식회사 | 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치 |
US8612668B2 (en) * | 2008-11-24 | 2013-12-17 | Juniper Networks, Inc. | Storage optimization system based on object size |
EP2476055B1 (en) | 2009-09-08 | 2020-01-22 | SanDisk Technologies LLC | Apparatus, system, and method for caching data on a solid-state storage device |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8429436B2 (en) | 2009-09-09 | 2013-04-23 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
CN102598019B (zh) * | 2009-09-09 | 2015-08-19 | 才智知识产权控股公司(2) | 用于分配存储的设备、***和方法 |
JP4714291B2 (ja) * | 2009-09-30 | 2011-06-29 | 株式会社東芝 | 情報記録装置、情報記録方法及び情報記録用プログラム |
WO2011143628A2 (en) | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US10013354B2 (en) | 2010-07-28 | 2018-07-03 | Sandisk Technologies Llc | Apparatus, system, and method for atomic storage operations |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US20140310493A1 (en) * | 2013-04-11 | 2014-10-16 | International Business Machines Corporation | Migrating data across storages with dissimilar allocation sizes |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9262316B2 (en) | 2013-12-09 | 2016-02-16 | International Business Machines Corporation | Recording dwell time in a non-volatile memory system |
US9390003B2 (en) | 2013-12-09 | 2016-07-12 | International Business Machines Corporation | Retirement of physical memory based on dwell time |
JP2015138272A (ja) * | 2014-01-20 | 2015-07-30 | ソニー株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US9979970B2 (en) * | 2014-08-08 | 2018-05-22 | Qualcomm Incorporated | System and method for determining buffer fullness for display stream compression |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
KR20170015708A (ko) * | 2015-07-30 | 2017-02-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
US10802712B2 (en) * | 2015-10-13 | 2020-10-13 | Axell Corporation | Information processing apparatus and method of processing information |
JP6424330B2 (ja) * | 2015-10-13 | 2018-11-21 | 株式会社アクセル | 情報処理装置、及び情報処理方法 |
RU2661280C2 (ru) * | 2015-12-03 | 2018-07-13 | Хуавэй Текнолоджиз Ко., Лтд. | Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных |
CN110119418B (zh) * | 2018-01-16 | 2024-07-16 | 北京京东尚科信息技术有限公司 | 数据导出方法和装置 |
US10936199B2 (en) * | 2018-07-17 | 2021-03-02 | Silicon Motion, Inc. | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08147202A (ja) * | 1994-11-24 | 1996-06-07 | Nec Corp | 書換え可能なromファイル装置 |
US5745418A (en) | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
JP2000122811A (ja) * | 1998-10-13 | 2000-04-28 | Hitachi Ltd | 記憶装置管理方法および記憶装置管理システム |
JP2000305862A (ja) * | 1999-02-19 | 2000-11-02 | Mitsubishi Electric Corp | データ記憶方法および情報処理装置 |
US20020166022A1 (en) | 1998-08-03 | 2002-11-07 | Shigeo Suzuki | Access control method, access control apparatus, and computer-readable memory storing access control program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251323B (en) | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
JPH1069420A (ja) * | 1996-08-29 | 1998-03-10 | Sony Corp | 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法 |
JP3640802B2 (ja) * | 1998-06-08 | 2005-04-20 | 富士通株式会社 | データバックアップ方式 |
US6571312B1 (en) | 1999-02-19 | 2003-05-27 | Mitsubishi Denki Kabushiki Kaisha | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
US6141249A (en) * | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
CN1203395C (zh) | 1999-10-21 | 2005-05-25 | 松下电器产业株式会社 | 半导体存储卡的访问装置、计算机可读记录介质、初始化方法和半导体存储卡 |
US6691205B2 (en) * | 2001-03-05 | 2004-02-10 | M-Systems Flash Disk Pioneers Ltd. | Method for using RAM buffers with simultaneous accesses in flash based storage systems |
JP4238514B2 (ja) | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
-
2004
- 2004-10-07 KR KR1020067010215A patent/KR101087906B1/ko active IP Right Grant
- 2004-10-07 WO PCT/JP2004/015182 patent/WO2005050453A1/ja active Application Filing
- 2004-10-07 CN CNB2004800406240A patent/CN100543702C/zh active Active
- 2004-10-07 JP JP2005515557A patent/JP4287433B2/ja active Active
- 2004-10-07 EP EP04792410A patent/EP1686482B1/en active Active
- 2004-10-07 US US10/578,270 patent/US7610434B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08147202A (ja) * | 1994-11-24 | 1996-06-07 | Nec Corp | 書換え可能なromファイル装置 |
US5745418A (en) | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
US20020166022A1 (en) | 1998-08-03 | 2002-11-07 | Shigeo Suzuki | Access control method, access control apparatus, and computer-readable memory storing access control program |
JP2000122811A (ja) * | 1998-10-13 | 2000-04-28 | Hitachi Ltd | 記憶装置管理方法および記憶装置管理システム |
JP2000305862A (ja) * | 1999-02-19 | 2000-11-02 | Mitsubishi Electric Corp | データ記憶方法および情報処理装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP1686482A4 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7821882B2 (en) * | 2005-11-01 | 2010-10-26 | Kabushiki Kaisha Toshiba | Recording and reproducing apparatus and recording method |
KR100884429B1 (ko) | 2006-06-30 | 2009-02-19 | 가부시끼가이샤 도시바 | 불휘발성 반도체 메모리를 구비하는 메모리 시스템 |
JP2010518491A (ja) * | 2007-01-31 | 2010-05-27 | マイクロソフト コーポレーション | フラッシュドライブの寿命の延長 |
US8560760B2 (en) | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
US9535625B2 (en) | 2007-03-06 | 2017-01-03 | Bohdan Raciborski | Selectively utilizing a plurality of disparate solid state storage locations |
JP2010271977A (ja) * | 2009-05-22 | 2010-12-02 | Fujitsu Ten Ltd | データ書込装置、データ書込方法及びプログラム |
JP2011209973A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Ltd | ディスクアレイ構成プログラム、計算機、計算機システム |
Also Published As
Publication number | Publication date |
---|---|
US7610434B2 (en) | 2009-10-27 |
EP1686482B1 (en) | 2013-03-06 |
JPWO2005050453A1 (ja) | 2007-06-07 |
EP1686482A4 (en) | 2009-03-25 |
EP1686482A1 (en) | 2006-08-02 |
JP4287433B2 (ja) | 2009-07-01 |
KR20060114698A (ko) | 2006-11-07 |
CN100543702C (zh) | 2009-09-23 |
CN1906596A (zh) | 2007-01-31 |
US20070088666A1 (en) | 2007-04-19 |
KR101087906B1 (ko) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2005050453A1 (ja) | ファイル記録装置 | |
US6823417B2 (en) | Memory controller for memory card manages file allocation table | |
US7634613B2 (en) | Memory device and recording and/or reproducing apparatus employing this memory device | |
KR100952135B1 (ko) | 순차적 기록만을 사용하는 플래시 관리 시스템 | |
US7039754B2 (en) | Detachably mounted removable data storage device | |
US20050080985A1 (en) | Data storage device | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
JP2009525511A (ja) | 多段階誤り訂正方法及び装置 | |
KR20070024573A (ko) | 최적의 성능을 위한 파일 관리 방법 | |
US20070033364A1 (en) | Information recording medium, information recording medium accessing apparatus and accessing method | |
JP4130808B2 (ja) | フォーマット方法 | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
KR101102754B1 (ko) | 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법 | |
JP2011076441A (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
JP2008134777A (ja) | ファイル割当テーブルのキャッシュ方法 | |
JPH07160439A (ja) | データ記憶装置及び主制御装置 | |
JP5161989B2 (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
JP4881469B1 (ja) | 情報処理装置、及び情報処理方法 | |
KR100592859B1 (ko) | 기록매체제어장치및방법 | |
KR19980071621A (ko) | 정보 기록 방법 및 장치, 및 정보 재생 방법 및 장치 | |
JP2005149620A (ja) | 記憶装置およびファイルシステム |
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 JP 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 NA 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 |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2005515557 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007088666 Country of ref document: US Ref document number: 10578270 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2004792410 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020067010215 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200480040624.0 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2004792410 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020067010215 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 10578270 Country of ref document: US |