WO2011058700A1 - アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム - Google Patents
アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム Download PDFInfo
- Publication number
- WO2011058700A1 WO2011058700A1 PCT/JP2010/006192 JP2010006192W WO2011058700A1 WO 2011058700 A1 WO2011058700 A1 WO 2011058700A1 JP 2010006192 W JP2010006192 W JP 2010006192W WO 2011058700 A1 WO2011058700 A1 WO 2011058700A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- file
- block
- information recording
- storage
- Prior art date
Links
Images
Classifications
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0674—Disk device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42661—Internal components of the client ; Characteristics thereof for reading from or writing on a magnetic storage medium, e.g. hard disk drive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
Definitions
- the present invention relates to an access module, an information recording module, a controller, a real-time information recording system, an access method, and a program that store data in a nonvolatile memory and manage it as a file.
- recording media for recording digital data such as music content and video data
- memory cards using semiconductor memories such as FlashROM as recording elements can be miniaturized, and rapidly spread mainly in small portable devices such as digital still cameras and mobile phone terminals. is doing.
- semiconductors such as flash ROMs can be used in place of removable removable media such as conventional memory cards, such as built-in semiconductor memory in devices and used in place of hard disks.
- Memory has come to be used.
- a semiconductor element called a NAND flash memory is mainly used.
- a NAND flash memory is a recording element that can once erase already recorded data and then record another data again.
- a NAND flash memory can be It is possible to configure an information recording device that can be rewritten once.
- FAT file system data stored in a memory card or device built-in storage
- the FAT file system has a feature that the area management is centrally managed by a table called a file allocation table (FAT). Since the structure is relatively simple and easy to implement, a floppy disk, a PC hard disk, and a memory card are used. It is widely used as a file system.
- FIG. 2 shows the configuration of the FAT file system.
- types such as FAT12, FAT16, and FAT32 exist depending on the bit width of the management unit in the file allocation table, but the area management method using the file allocation table is almost the same.
- FAT16 is demonstrated to an example.
- a file system management information area 301 which is an area for storing file system management information such as an area allocation unit and the size of the area managed by the file system, is present at the head of the logical address space. To do.
- management information of a file system called a master boot record / partition table (MBR) 303, a partition boot sector (PBS) 304, FAT (305, 306), and a root directory entry (RDE) 307 is stored. And information necessary for managing the user data area 302 is stored.
- the master boot record / partition table 303 is an area for storing information for managing an area in the logical address space managed by the file system by dividing the area into a plurality of areas called partitions.
- the partition boot sector 304 is an area for storing management information in one partition such as the size of the area management unit in the partition.
- the FAT (305, 306) is an area in which information regarding the storage location of data included in a file is stored.
- the root directory entry 307 is an area in which information (directory entry) of files and directories existing directly under the root directory is stored.
- a user data area 302 for storing file body data and the like exists in an area subsequent to the file system management information area 301.
- the user data area 302 is divided and managed for each management unit called a cluster having a size of about 512 bytes to 32 KB, and each cluster stores data included in a file.
- a file storing a lot of data stores data across a plurality of clusters, and the connection between the clusters is managed by link information stored in the FAT (305, 306).
- information (directory entry) on files and subdirectories existing in a directory immediately under the root directory is stored using a part of the user data area 302.
- FIG. 3 is a diagram showing the structure of the directory entry of FAT16.
- the directory entry 308 is assigned with a 32-byte directory entry 308 for each file and directory, and stores information on the file and directory. That is, every time one file or directory is added, information of a 32-byte directory entry 308 is newly created and recorded in the area of the root directory entry 307 or the user data area 302. In the first 8 bytes of the directory entry 308, the name of the file or directory is stored. The extension is stored in the subsequent 3 bytes. The subsequent 1 byte stores attribute information such as a flag for identifying the type of the file / directory and a flag for identifying whether the file / directory is read-only.
- the directory entry 308 stores information on the last update date / time of the file / directory, the start cluster number indicating the start position of the cluster in which the file / directory data entity is stored, the number of bytes of the file size, and the like. As described above, since the directory entry 308 holds only information on the position of the cluster storing the head data of the file, when the file data is stored across a plurality of clusters, the position information is stored in the FAT (305, 306). Retained. That is, when updating a file, it is necessary to write the file data and also write the information of the directory entry 308 and FAT (305, 306).
- the process is to acquire. Specifically, the FAT entries in the FAT (305, 306) on the RAM are sequentially referred to, a FAT entry whose value is set to 0x0000 is found, and the value of the corresponding cluster number of the FAT entry is obtained.
- the FAT entry search process may be performed, for example, by searching for FAT entries in order from the beginning to the end of the FAT (305, 306). Alternatively, the search process is started from the FAT entry next to the FAT entry to which the previous free area is allocated, and when the end of the FAT (305, 306) is reached, the process returns to the beginning of the FAT (305, 306) and the previous free area is allocated.
- the FAT entry search process may be executed.
- the FAT entry search processing procedure is not particularly limited as long as it can realize a process of searching for a free area over the entire FAT (305, 306) area.
- step S408 the file data is written into the cluster at the write position currently referred to. If it is determined in S404 that free space acquisition is necessary, the currently referenced write position is the free cluster acquired in S405. On the other hand, if it is determined in S404 that it is not necessary to acquire a free area, the currently referred writing position is a cluster that has arrived as a result of following the link in S403. (S409): In step S409, it is determined whether writing of all file data has been completed. If file data still remains, the process returns to S404. When the writing of all file data is completed, the process proceeds to S410.
- FILE1. When 10000 bytes of data are added to TXT, the file (FILE1.TXT) changes to a file having 70000 bytes of data as shown in FIG.
- a cluster with cluster number 6 is acquired as an empty cluster, file data is added to the acquired cluster, and cluster number 6 is connected to a link on FAT (305, 306).
- the TXT link is updated from the state of 4 clusters with cluster numbers 2 to 5 to the state of 5 clusters with cluster numbers 2 to 6.
- file management information is stored in both the FAT (305, 306) and the directory entry 308. Therefore, when updating a file, the information (FAT (305) 306) and directory entry 308) need to be updated together.
- NAND flash memory has a feature that data must be erased once before data is recorded.
- the data recording speed is the fastest.
- a moving image file is a file having a large size of several MB to several GB
- a management file is a file having a small size of about several bytes to several tens of KB. Since the NAND flash memory has the above-mentioned characteristics, the recording speed is reduced in the recording process of the management file having the data amount equal to or smaller than the block size.
- management files include files that are overwritten in addition to files that are added during recording of moving images. In particular, when file overwrite processing is executed, writing to the same logical address on the NAND flash memory is repeatedly performed, so copy processing on the NAND flash memory is performed each time, and the recording speed decreases. To do.
- An object of the present invention is to provide an access module, an information recording module, a controller, a real-time information recording system, an access method, and a program for realizing a data writing process with guaranteed speed.
- a first invention is an access device that accesses an information recording device including a nonvolatile memory for storing data, and includes a storage address determination processing unit and a link movement processing unit.
- the storage address determination processing unit manages a data storage area in the information recording apparatus by dividing the data storage area in units of a predetermined block size, and stores a first storage block for storing data of a first file, and the first storage block A second storage block that stores data of a second file that manages the file is set.
- the storage address determination processing unit determines an address for sequentially recording the first file data in the ascending order from the top address of the first storage block in the first storage block.
- the storage address determination processing unit updates or adds the second file data when updating or adding the second file data corresponding to the first file data recorded in the first storage block.
- the address for recording the cluster data corresponding to is stored in the unused cluster area having the lowest address in the second storage block is determined.
- the link movement processing unit updates the intercluster connection information of the second file data based on the data update or addition in the second storage block.
- the information storage module access unit instructs the information recording device to record the first file data and the second file data according to the storage address processing unit and the link movement processing unit.
- a different block (first storage block and second storage block) is assigned to each of the first file and the second file, and any process of appending (data appending process) or overwriting (data overwriting process) is performed.
- the data of the first file is always written sequentially from the top of the block
- the second file is If it is a write target, the data of the second file is written in order from the unused cluster area having the lowest address in the second storage block (the address closest to the start address in the second storage block).
- the “access device” is a concept including an access module.
- the second invention is the first invention, wherein the storage address determination processing unit is any of a data write process to the first file and a data overwrite process.
- the address next to the final writing position when writing in units of multiple lengths of the predetermined writing size in order from the top in the first storage block is set as the data writing start position of the first file.
- the storage address determination processing unit sequentially starts from the top in the second storage block regardless of whether the data writing process to the information recording device is the data appending process or the data overwriting process to the second file.
- the address next to the final write position when writing is performed in units of multiple lengths of the predetermined write size is set as the data write start position of the second file.
- the storage address determination processing unit starts from the beginning in the storage block in both the data appending process / data overwriting process to the first file and the data appending process / data overwrite process to the second file.
- the address next to the last writing position when writing in units of multiples of the predetermined writing size in order is set as the writing start position. Therefore, in this access device, data writing in units of multiple lengths of a predetermined write size is always guaranteed. For example, when the predetermined write size matches the cluster size, the access device can perform any of the data append process / data overwrite process to the first file and the data append process / data overwrite process to the second file.
- Data write processing is executed from the start address of the cluster (free cluster). Therefore, it is possible to suppress the occurrence of so-called entrainment evacuation processing (aggregation processing), and as a result, the real-time information recording system using the access device and the information recording device can speed up data recording.
- 3rd invention is 1st or 2nd invention, Comprising: An information storage module access part records the recording of the information of the intercluster coupling
- a fourth invention is any one of the first to third inventions, further comprising a file system control unit.
- the file system control unit reads the data included in the same predetermined write size unit when the write smaller than the predetermined write size occurs, combines the new data to be written, and generates data having a multiple of the predetermined write size. Thereafter, control is performed so that the generated data is written in the information recording apparatus.
- data writing processing with data having a multiple of the predetermined writing size is guaranteed.
- the fifth invention is any one of the first to fourth inventions, wherein the first file is a file storing a content body, and the second file is a file storing additional information of the content. is there.
- a sixth invention is any one of the first to fifth inventions, wherein the predetermined write size is a multiple of the physical data recording processing unit size of the nonvolatile memory included in the information recording device.
- a seventh invention is any one of the first to sixth inventions, wherein the predetermined block size is a multiple of the physical data erasure processing unit size of the nonvolatile memory included in the information recording apparatus.
- An eighth invention is an information recording device connected so as to be able to communicate with an access device and writing and / or reading data according to an instruction from the access device. A control unit.
- the nonvolatile memory stores data.
- the recording block management control unit sets a first temporary block area and a second temporary block area in the nonvolatile memory.
- the recording block management control unit stores the position information of the first storage block that stores the data of the first file designated by the access device, and the second information that stores the data of the second file designated by the access device. Control that data is stored in the first temporary block area in the non-volatile memory when it is recognized that data is recorded in the first storage block based on the address management information for storing the location information of the storage block To do. Further, when the recording block management control unit recognizes that data is recorded in the second storage block based on the address management information, the recording block management control unit performs control so that the data is stored in the second temporary block area in the nonvolatile memory. .
- the recording block management control unit when the recording block management control unit recognizes that data is recorded in the first storage block based on the address management information, the data is stored in the first temporary block area in the nonvolatile memory. If it is recognized that data is recorded in the second storage block, the data is controlled to be stored in the second temporary block area in the nonvolatile memory. Therefore, the information recording apparatus is controlled by, for example, the access apparatus according to the first invention, whereby the temporary block for the first file (cache block) and the temporary block for the second file (cache block) Sequential recording using can always be guaranteed. As a result, in the real-time information recording system using this access device and information recording device, it is possible to speed up data recording.
- the “information recording device” is a concept including an information recording module.
- a ninth invention is the eighth invention, wherein the recording block management control unit determines the address based on the location information of the first storage block and / or the second storage block that the access device notifies in advance prior to data recording. Set management information.
- the tenth invention is the eighth or ninth invention, wherein the recording block management control unit is arbitrarily configured based on the notification of the location information of the first storage block and / or the second storage block from the access device. Are acquired, and the acquired empty block is allocated to the first temporary block area and / or the second temporary block area.
- An eleventh aspect of the invention is a controller that controls an information recording apparatus including a nonvolatile memory that stores data, and includes a recording block management control unit.
- the recording block management control unit sets a first temporary block area and a second temporary block area in the nonvolatile memory.
- the recording block management control unit stores the position information of the first storage block that stores the data of the first file designated by the external access device and the data of the second file designated by the access device.
- the data is stored in the first temporary block area in the nonvolatile memory.
- control is performed so that the data is stored in the second temporary block area in the nonvolatile memory.
- a twelfth invention is a real-time information recording system comprising an access device according to any of the first to seventh inventions and an information recording device according to any of the eighth to tenth inventions.
- a thirteenth invention is a memory access method used in an access device that accesses an information recording device including a nonvolatile memory for storing data, and includes a storage address determination processing step and a link movement processing step.
- the data storage area in the information recording apparatus is divided and managed in block units of a predetermined block size, and the first storage block for storing the data of the first file, the first storage block A second storage block that stores data of a second file that manages the file is set.
- an address for recording the first file data in the ascending order from the head address of the first storage block is determined in the first storage block.
- an update or addition part of the second file data is determined.
- a fourteenth invention is a program that causes a computer to execute a memory access method used in an access device that accesses an information recording device including a nonvolatile memory for storing data.
- the access method includes a storage address determination processing step and a link movement processing step.
- the data storage area in the information recording apparatus is divided and managed in block units of a predetermined block size, and the first storage block for storing the data of the first file, the first storage block A second storage block that stores data of a second file that manages the file is set.
- an address for recording the first file data in the ascending order from the head address of the first storage block is determined in the first storage block.
- an update or addition part of the second file data is determined.
- the link movement processing step the information on the intercluster coupling of the second file data is updated based on the data update or addition in the second storage block.
- the information recording apparatus is instructed to record the first file data and the second file data in accordance with the processing results in the storage address processing step and the link movement processing step.
- the recording speed is prevented from being lowered, and real-time recording (a constant writing speed is guaranteed). It is possible to realize an access module, an information recording module, a controller, a real-time information recording system, an access method, and a program capable of data writing processing.
- FIG. 1 is a diagram showing a schematic configuration of a real-time information recording system 1000 according to the first embodiment.
- the real-time information recording system 1000 includes an access module (access device) 1 and an information recording module (information recording device) 2, and the access module 1 and the information recording module 2 are connected via a bus 3. Connected and can communicate in both directions.
- the access module (access device) 1 includes a CPU 11, a RAM 12, an information recording module interface unit 13, and a ROM 14. As shown in FIG. 1, each functional unit of the access module 1 may be connected by an internal bus, or all or a part thereof may be directly connected.
- the ROM 14 stores a program for controlling the access module 1, and this program operates on the CPU 11 using the RAM 12 as a temporary storage area.
- the information recording module interface unit 13 is a connection unit between the information recording module 2 and the access module 1, and transmits / receives control signals and data to / from the information recording module 2 via the bus 3.
- the ROM 14 includes an application control unit 101, a file system control unit 102, and an information recording module access unit 103.
- the function units (the application control unit 101, the file system control unit 102, and the information recording module access unit 103) in the ROM 14 are realized by software in the ROM 14.
- the present invention is not limited to this, and may be realized in whole or in part by hardware.
- the application control unit 101 controls the entire access module 1 such as data generation and power control.
- the file system control unit 102 performs control for managing data as a file by a file system such as a FAT file system.
- the file system control unit 102 includes a storage address determination processing unit 104 and a link movement processing unit 105.
- the storage address determination processing unit 104 is a processing unit that determines a logical address of a file data storage destination when data is recorded in a file, and does not exist in a conventional access module. Further, the link movement processing unit 105 rewrites the links between the clusters on the FAT (305, 306) when the appending process or the overwriting process is performed on the management file, and the logical record in which the recording to the information recording module 2 continues. It is a processing unit that makes sequential recording to addresses. Similarly to the storage address determination processing unit 104, the link movement processing unit 105 does not exist in the conventional access module.
- the information recording module access unit 103 is supplied with data from the file system control unit 102 along with the size of the data and an address for writing (recording) the data, and the data of the designated size is stored in the nonvolatile memory of the information recording module 2. A command or data for recording at a specified position in the memory 22 is generated. Then, the information recording module access unit 103 controls the generated command and data to be transmitted / received to / from the information recording module 2 via the information recording module interface unit 13.
- the controller 21 is a module that performs overall control of the nonvolatile memory 22 and is preferably configured as a system LSI including a CPU and the like.
- the controller 21 includes an access module interface unit 211, a CPU 212, a RAM 213, a ROM 214, and a nonvolatile memory interface unit 215. As shown in FIG. 1, each functional unit of the controller 21 may be connected by an internal bus, or all or a part thereof may be directly connected.
- the access module interface unit 211 is a connection unit (interface) between the information recording module 2 and the access module 1. Similar to the information recording module interface unit 13, the access module interface unit 211 transmits and receives control signals and data to and from the access module 1 via the bus 3.
- the ROM 214 stores a program for controlling the information recording module 2, and this program operates on the CPU 212 using the RAM 213 as a temporary storage area.
- the ROM 214 includes a recording block management control unit 217.
- the function unit (recording block management control unit 217) in the ROM 214 is assumed to be realized by software in the ROM 214.
- the recording block management control unit 217 manages the data storage position in the nonvolatile memory 22 in units of blocks, and to which block the data write command issued from the access module 1 to the information recording module 2 is a write instruction. And a controller that performs a writing process on the corresponding block.
- the recording block management control unit 217 does not exist in the conventional information recording module 2. Details of this control unit will be described later.
- the RAM 213 holds address management information 216 that is used as control information by the recording block management control unit 217.
- the nonvolatile memory interface unit 215 is a connection unit between the controller 21 and the nonvolatile memory 22 and controls transmission / reception of commands and data to / from the nonvolatile memory 22.
- the information recording module 2 in the present embodiment is based on information notified from the access device 1 (1) recording to a moving image file (content-related file) or (2) management file (file associated with the content). Based on the determination result, the moving image file and the management file are stored in separate physical blocks.
- the access module 1 notifies the information recording module 2 of information related to the recording block, and whether the process to be executed is a file data append process or an overwrite process.
- the data is sequentially recorded in a predetermined block while padding the data as necessary, and the link is changed on the FAT (305, 306).
- the real-time information recording system 1000 can always replace file data recording with sequential recording. That is, in the real-time information recording system 1000, by combining the access module 1 and the information recording module 2, even when a plurality of files having different sizes such as a moving image file and a management file are recorded in parallel, the information recording module 2 It is possible to reduce useless copy processing that occurs in the recording medium to prevent a decrease in recording speed, and to record data in the information recording module 2 stably at high speed.
- the nonvolatile memory 22 is composed of a plurality of physical blocks.
- a physical block is a unit for erasing data, and it is necessary to erase data once in this unit before data is written.
- a physical block is composed of a plurality of pages.
- a page is a unit for writing data. The page includes a data part and a redundant part.
- the data portion is an area that can be accessed from the access module 1 as a logical address space, and is an area in which file data and the like are actually stored.
- the redundant part is an area in which management information, ECC, and the like of the nonvolatile memory 22 are stored and cannot be accessed from the access module 1.
- the size of the data part is 4 KB, for example, and the size of the redundant part is, for example, about 128 bytes. Further, the size of the physical block when attention is focused only on the data portion is, for example, about 512 KB. Therefore, as an example of the nonvolatile memory 22, when configured with 2048 physical blocks of this size, the capacity of the nonvolatile memory 22 is 1 GB.
- FIG. 8 is a diagram for explaining the address management information 216.
- the address management information 216 includes moving image file temporary block management information 401, management file temporary block management information 402, and address conversion information 403.
- the moving image file temporary block management information 401 is information relating to the position of the block allocated for recording the data of the moving image file. Information used for managing (block).
- the management file temporary block management information 402 is information relating to the position of the block allocated for data recording of the management file.
- the recording block management control unit 217 of the information recording module 2 uses the management file temporary block (management file cache).
- the address conversion information 403 is information indicating the correspondence between the physical address of each physical block in the nonvolatile memory 22 and the logical address. This information is the same as the information held in the conventional information recording module 2 (information generally called “address conversion table”, “logical / physical address conversion table”, etc.).
- the information recording module 2 in the present embodiment records the moving image file and the management file at successive addresses in individual blocks based on the information notified from the access module 1.
- the access module 1 assigns individual blocks as areas for storing the moving image file and the management file, and records data at consecutive addresses in order from the head of the block (access module). 1 controls the information recording module to record data in this way). Also, in the real-time information recording system 1000, when an overwriting process in the management file occurs, new data (overwriting data) is recorded in the management file storage block described above, and the link is rewritten on the FAT (305, 306). As a result, the overwriting process by recording data to continuous addresses is realized.
- FIG. 9 is a diagram showing the entire parallel writing procedure of the moving image file and the management file in the real-time information recording system 1000, and shows the processing procedure when the moving image file and the management file are written in parallel in an arbitrary order. Yes.
- step S ⁇ b> 901 the storage address determination processing unit 104 of the access module 1 determines a moving image file storage block.
- the access module 1 needs to recognize the optimum write processing unit, block length, and the like for the information recording module 2.
- the information may be acquired in advance by the access module 1 from the information recording module 2 (case 1), or a fixed value held in advance by the access module 1 is used. You may do it (case 2).
- case 2 for example, if the capacity of the information recording module 2 is 2 GB or less, the block size is set to 512 KB, and if the capacity of the information recording module 2 exceeds 2 GB, the block size is set to 4 MB.
- a fixed value may be determined depending on the capacity of the information recording module 2, or a fixed value may be determined using other information.
- the information recording module 2 sets the information notified from the access module 1 as the temporary block management information for moving image file, and manages the block as a moving image file recording area. Details of the storage block information registration process in the information recording module 2 will be described later.
- step S904 In S904, as in S902, the access module 1 notifies the information recording module 2 of the location information of the management file storage block determined in S903.
- the information recording module 2 sets the information notified from the access module 1 as management file temporary block management information, and manages the block as a management file recording area. Details of the storage block information registration process in the information recording module 2 will be described later.
- step S ⁇ b> 905 the storage address determination processing unit 104 of the access module 1 next determines an address for recording moving image file data. In this example, since it is assumed that data of a moving image file is recorded in units of one cluster, the storage address determination processing unit 104 actually acquires a free cluster for one cluster and uses the address as a moving image file. The data recording address is determined. Details of the storage address determination process will be described later.
- step S906 the file system control unit 102 of the access module 1 writes the moving image file data at the address determined in step S905. To write video file data to).
- This writing process is the same process as the conventional access module.
- the processing of S905 and S906 is performed as a set, but is a writing process of a part of moving image file data (in this example, data for one cluster is assumed). For this reason, in the real-time information recording system 1000, the processing of S905 and S907 is repeatedly performed as many times as necessary by combining the processing of S905 and S906.
- the process of S907 is performed.
- the timing for generating the management file writing process is determined by the specifications of the real-time information recording system 1000, the standards applied to the real-time information recording system 1000, and the like.
- S907 In S907, similarly to S905, the storage address determination processing unit 104 of the access module 1 next determines an address for recording the data of the management file.
- the storage address determination processing unit 104 since it is assumed that the management file data is recorded in units of one cluster in the real-time information recording system 1000, the storage address determination processing unit 104 actually acquires a free cluster for one cluster. The address is determined as the data recording address of the management file. Further, in the real-time information recording system 1000, when data writing processing for less than one cluster occurs, the old data is read for one cluster, merged with new data, and one cluster is written back. In addition, the storage address determination processing unit 104 acquires a free cluster for one cluster. Details of the storage address determination process will be described later.
- step S908 the file system control unit 102 of the access module 1 writes the management file data to the address determined in S907.
- This write process is the same process as the conventional access module.
- the data in the case of the overwrite process (the process of overwriting (updating) data), the data is always recorded in a new free cluster, Do not overwrite clusters that contain old data.
- sequential write processing occurs for the information recording module 2 (sequential write processing can be guaranteed), and data can be recorded at high speed. It becomes.
- step S909 the link movement processing unit 105 of the access module 1 performs management file link replacement on the FAT (305, 306).
- the link movement processing unit 105 performs the link replacement so that the overwriting process to the same logical address is not executed. Therefore, the real-time information recording system 1000 can guarantee sequential write processing for the information recording module 2.
- the link movement processing is different between additional recording (data additional processing) and overwriting (data overwriting processing). Details of each processing will be described later. Further, in practice, the update processing of the FAT (305, 306) is also required for the moving image file, but since it is the same as the update processing of the conventional FAT (305, 306), the description is omitted.
- the processing of S907 to S909 is performed as a set, but since it is a writing process of a part of the management file data (in this example, data for one cluster is assumed), the real-time information recording system 1000 has S907.
- the processes of S907 to S909 are repeated as many times as necessary by combining the processes of S909.
- the process of S905 is performed when the moving image file writing process occurs at an arbitrary timing.
- the timing for generating the moving image file writing process is determined by the specifications of the real-time information recording system 1000, the standards applied to the real-time information recording system 1000, and the like.
- each square represents a cluster.
- FIG. 10 shows that one block is composed of a plurality of clusters (FIG. 10 shows three blocks (logical blocks)).
- FIG. 10 shows that one block is composed of a plurality of clusters (FIG. 10 shows three blocks (logical blocks)).
- different empty blocks are allocated for moving image files and management files, and data is written in order from the top. Since a moving image file is newly created, overwriting processing does not occur, and data is sequentially written from the top of the allocated block (the “moving 1” and “moving 2” portions in the figure).
- the management file may be overwritten, but new data is always written sequentially from the beginning of the allocated block ("pipe 1 (new)""pipe2" in FIG. 10). New) "part).
- FIG. 11A is a flowchart of the storage address determination process.
- the storage address determination process corresponds to the procedure shown in S905 and S907 in the process procedure of FIG.
- ⁇ Movie file / management file determination process (S1101): In S1101, the storage address determination processing unit 104 of the access module 1 determines whether the recording target file is a moving image file or a management file. In the case of a moving image file, the process proceeds to S1102. In the case of a management file, the process proceeds to S1107.
- ⁇ Video file processing ⁇ (S1102): In step S1102, the storage address determination processing unit 104 determines whether the writing process for the block currently allocated as the moving image file logical block has been completed up to the end of the logical block. As a result of the determination, if it is completed, the process proceeds to S1103. If it is not completed, the process proceeds to S1106.
- the storage block information registration process corresponds to the process executed on the information recording module 2 side when the access module 1 executes the procedure shown in S902 and S904 in the process procedure of FIG. That is, after the access module 1 determines the data storage block of the moving image file / management file, it notifies the information recording module 2 of the position information.
- the processing executed on the information recording module 2 side is the storage block information registration processing of FIG. ⁇ Movie file / management file determination process ⁇ (S1201):
- the recording block management control unit 217 of the information recording module 2 determines whether the recording target file is a moving image file or a management file. It is assumed that which file is recorded is notified from the access module 1 to the information recording module 2. In the case of a moving image file, the process proceeds to S1202. In the case of a management file, the process proceeds to S1207.
- ⁇ Video file processing ⁇ (S1202): In S1202, the recording block management control unit 217 of the information recording module 2 determines whether the writing process for the block currently allocated as the temporary block for the moving image file has been completed up to the end of the physical block. As a result of the determination, if completed, the process proceeds to S1204, and if not completed, the process proceeds to S1203.
- the data (old data) stored in the physical block number 0x0104) and the data of the moving image file temporary block (physical block number 0x0F03 in FIG. 13) are merged (valid data is merged). . (2) Then, the area of the moving image file temporary block (physical block of physical block number 0x0F03 in FIG. 13) is released.
- the information recording module 2 converts the valid data in the old block (physical block of physical block number 0x0104 in FIG. 13) into a temporary block for moving image file. Copy to the (physical block number 0x0F03 physical block in FIG. 13) area.
- the recording block management control unit 217 updates the address conversion information 403 in the address management information 216, and associates (links) the physical block currently assigned to the temporary block for moving image file with the corresponding logical block number. ).
- S1205 In step S1205, the information recording module 2 acquires a free physical block to be newly allocated to the moving image file temporary block.
- FIG. 13 is a diagram showing the state of the nonvolatile memory 22 and the state of the address management information 216 in the storage block information registration process.
- FIG. 13A shows a state where data is recorded halfway in the temporary block for moving image file (physical block number: 0x0F03) assigned to the logical block number 0x0004 (the temporary block for moving image file having the physical block number 0x0F03). The data is recorded on a total of four pages of physical page numbers 0x0000 to 0x0003).
- the logical block of the logical block 0x0004 is associated with the physical block of the physical block number 0x0104.
- the data is stored (recorded) in the physical block having the physical block number 0x0104.
- the storage block information registration process is executed by the following processes (1) to (4).
- the state of the nonvolatile memory 22 and the state of the address management information 216 are changed to the state of FIG.
- data corresponding to the logical block number allocated to the current temporary block area for the moving image file is organized, and a new free physical block is assigned to a new moving image file.
- the temporary block area is assigned to the logical block number designated by the access module 1.
- FIG. 14 is a diagram illustrating a link movement processing procedure when the additional recording processing is executed.
- FIG. 15 is a diagram showing a link movement processing procedure when the overwriting process is executed.
- FIG. 16 is a diagram showing the state of the FAT (305, 306) when the additional recording process is executed.
- FIG. 17 is a diagram showing a state of the FAT (305, 306) when the small size data is additionally written.
- FIG. 18 is a diagram showing the state of the FAT (305, 306) when the overwriting process is executed.
- ⁇ Link move processing procedure for append process First, with reference to FIG. 14, a description will be given of the link movement processing procedure when the additional recording processing is executed in the real-time information recording system 1000.
- the cluster with the cluster number 33 is the old data recording end cluster
- the data is additionally written and the new data is recorded in the cluster with the cluster number 66.
- the value of the corresponding cluster number 66 on the FAT (305, 306) is set to 0xFFFF (corresponding to the state of FIG. 16C).
- the value of the corresponding cluster number 33 on the FAT (305, 306) is changed to 0x0042 (decimal number “66”) (corresponding to the state of FIG. 16D).
- the link movement process for executing this additional recording process is almost the same as the process for adding data in a normal FAT file system.
- a new data recording cluster is created. The difference is that an empty cluster is always assigned to the information recording module 2 so as to perform sequential recording. That is, new data is recorded in order from the head of the management file logical block set in the information recording module 2 in the management file appending process, and FAT (305, 306) so that the management file is appended in the link migration process.
- the upper link is updated (in the FAT chain (cluster chain), the link on the FAT (305, 306) is updated so that the added cluster of the management file subjected to the additional write process is added).
- FIG. 17 shows a state where the cluster whose cluster number is 33 in the management file logical block (the cluster of “pipe N” in FIG. 17) is the terminal cluster. It is assumed that (16 KB-M bytes) of valid data and M bytes of invalid data (padding data) are recorded in the cluster with the cluster number 33 (the cluster of “tube N” in FIG. 17). .
- the access module 1 writes the created write data for one cluster into the cluster of cluster number 66 (the first cluster of the new management file logical block).
- the link movement processing unit 105 changes the value of the corresponding cluster number 66 on the FAT (305, 306) to 0xFFFF (value representing the terminal cluster) (state in FIG. 17C).
- the link movement processing unit 105 changes the value of the corresponding cluster number 32 on the FAT (305, 306) from 0x0021 (decimal number “33”) to 0x0042 (decimal number “66”). Further, the link movement processing unit 105 changes the value of the corresponding cluster number 33 on the FAT (305, 306) from 0xFFFF to 0x0000 (state shown in FIG. 17D).
- the data of the old data recording cluster (cluster number 3) is overwritten and the new data is recorded in the cluster of cluster number 66.
- the value of the corresponding cluster number 66 on the FAT (305, 306) is set to 0x0004, which is the link destination cluster of the cluster number 3 (corresponding to the state of FIG. 18C).
- the link movement processing unit 105 connects the link source cluster of the old data recording cluster to the new data recording cluster on the FAT (305, 306).
- the value on the FAT (305, 306) corresponding to the cluster number 2 which is the link source cluster of the cluster number 3 is changed to 0x0042 (decimal number “66”) (FIG. 18 ( equivalent to the state of d)).
- the link movement processing unit 105 sets the old data recording cluster as a free cluster on the FAT (305, 306), and ends the process.
- the value on the FAT (305, 306) corresponding to the cluster number 3 is changed to 0x0000 (corresponding to the state of FIG. 18 (e)).
- an empty cluster is allocated so that the new data recording cluster is always sequentially recorded with respect to the information recording module 2. That is, in the management file overwriting process, new data is recorded in order from the beginning of the management file logical block set in the information recording module 2, and the FAT (305, 306) is used so that the management file is overwritten in the link migration process.
- the link on the FAT (305, 306) is updated so that the overwritten cluster of the management file to be overwritten is included in the FAT chain (cluster chain).
- the management file logical block always set in the information recording module 2 regardless of the management file appending process and the overwriting process.
- the new data is recorded in order from the beginning of the file, and the link on the FAT (305, 306) is updated so that the file is overwritten and overwritten by the link movement processing (in the FAT chain (cluster chain), the appending processing and overwriting processing are performed. Update the links on the FAT (305, 306) to reflect the content).
- FIG. 19 is a diagram showing the state of the FAT (305, 306) during the management file overwriting process when the write processing size is 32 KB and the cluster size is 16 KB.
- the real-time information recording system 1000 reads the data of the cluster number 5 included in the same write processing unit as the cluster of the cluster number 4 and writes it in the management file logical block together with the new data. That is, new data is written into the cluster with cluster number 66, and data with cluster number 5 is written into the cluster with cluster number 67. Then, the link is updated on the FAT (305, 306) so that these two clusters are included in the corresponding file (file to be overwritten).
- the real-time information recording system 1000 reads the valid data before and after the overwriting target cluster and writes it in the information recording module 2 together with the overwriting target data.
- the writing process to the information recording module 2 can always be sequential recording, and the management file can be recorded on the information recording module 2 at high speed.
- a plurality of files having different sizes such as a moving image file and a management file are recorded in the information recording module 2 in parallel. In this case, it is possible to reduce useless copy processing that occurs in the information recording module 2, to prevent a speed reduction due to management file recording, and to realize real-time recording.
- the present invention has been described based on the above embodiment, it is needless to say that the present invention is not limited to the above embodiment. Various modifications can be made without departing from the spirit of the present invention.
- the numerical values described in the present embodiment are examples, and other values may be used. For example, values such as the physical block size and page size are all examples, and are not limited to the values described in the present embodiment.
- the configuration of the controller 21 of the information recording module 2 has been described. However, other configurations may be used.
- the CPU 212 and the RAM 213 in the controller 21 may be arranged outside the controller 21, and conversely, other components may be included in the controller 21.
- the FAT 16 is described as an example of the file system, but other file systems may be used.
- the number of non-volatile memories 22 used in the information recording module 2 is not necessarily one, and a plurality of non-volatile memories 22 may be used in combination.
- the writing process can be further speeded up.
- two files, ie, a moving image file and a management file are written in parallel
- three or more files may be written in parallel.
- two moving image file temporary blocks and two management file temporary blocks can be managed, two sets of moving image files and management files can be written in parallel. .
- simultaneous recording of two programs in a device such as a DVD recorder can be realized.
- the access module 1 notifies the information recording module 2 of the positions of the moving image file logical block and the management file logical block, and the moving image file data and the management file data are recorded in each block.
- the link on the FAT (305, 306) is updated by the processing procedure shown in FIGS.
- the information recording module 2 side does not need to individually manage the two types of blocks, the moving image file temporary block and the management file temporary block. Therefore, when sequential recording is performed and the information recording module 2 capable of maintaining a certain recording speed is used in the real-time information recording system 1000, the access module 1 starts to use the moving image file logical block and the management file logic. There is no need to notify block location information. As a result, the conventional information recording module 2 can be used.
- the blocks may be divided and managed for each stream to be recorded.
- FIG. 20A is an example described in the present embodiment.
- FIG. 20B a block used for each stream may be divided.
- the method of mixing moving image file data and management file data in the same block is as described above.
- each block may be individually integrated into one chip by a semiconductor device such as an LSI.
- One chip may be included so as to include a part or the whole.
- LSI LSI
- IC system LSI
- super LSI ultra LSI depending on the degree of integration
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied as a possibility.
- part or all of the processing of each functional block in each of the above embodiments may be realized by a program.
- a part or all of the processing of each functional block in each of the above embodiments is performed by a central processing unit (CPU) in the computer.
- a program for performing each processing is stored in a storage device such as a hard disk or a ROM, and is read out and executed in the ROM or the RAM.
- Each processing of the above embodiment may be realized by hardware, or may be realized by software (including a case where the processing is realized together with an OS (operating system), middleware, or a predetermined library). Further, it may be realized by mixed processing of software and hardware. Moreover, the execution order of the processing method in the said embodiment is not necessarily restrict
- a computer program that causes a computer to execute the above-described method and a computer-readable recording medium that records the program are included in the scope of the present invention.
- examples of the computer-readable recording medium include a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blue-ray Disc), and a semiconductor memory. .
- the computer program is not limited to the one recorded on the recording medium, and may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, or the like.
- the specific configuration of the present invention is not limited to the above-described embodiment, and various changes and modifications can be made without departing from the scope of the invention.
- the access module includes a storage address determination processing unit that determines an address for storing each file data of a moving image file and a management file, and data sequentially to the information recording module regardless of additional writing or overwriting in the writing process of the target file. And a link movement processing unit for updating the link on the FAT.
- the information recording module of the present invention manages a block for storing a moving image file and a block for storing a management file as special areas in accordance with an instruction from the access module, and is written in a multiple of a predetermined write processing size. Includes a recording block management control unit for writing data at high speed.
- Such an access module is most suitable for devices that handle digital contents such as music, still images, and moving images, especially devices that need to record content data in an information recording module in real time, and are used for PC applications, audio recorders, DVD recorders. It can be used as an HDD recorder, a movie, a digital still camera, a mobile phone terminal or the like.
- the information recording module of the present invention can be used as a removable medium such as a memory card for storing the digital content or the like, or a built-in recording device.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、NAND型フラッシュメモリを用いることで、複数回書き換え可能な情報記録装置を構成することが可能である。
従来、最も広く使用されているファイルシステムは、FATファイルシステムと呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フロッピーディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
FATファイルシステムでは、ファイルアロケーションテーブル内の管理単位のビット幅の違いにより、FAT12、FAT16、FAT32などの種類が存在するが、ファイルアロケーションテーブルによる領域管理方法は、ほぼ同じである。以下では、FAT16を例に説明する。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域301が存在する。このファイルシステム管理情報領域301には、マスターブートレコード・パーティションテーブル(MBR)303、パーティションブートセクタ(PBS)304、FAT(305、306)、ルートディレクトリエントリ(RDE)307と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域302を管理するために必要な情報が各々格納されている。マスターブートレコード・パーティションテーブル303は、ファイルシステムが管理する論理アドレス空間上の領域を複数のパーティションと呼ばれる領域に分割して管理するための情報が格納される領域である。パーティションブートセクタ304は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。FAT(305、306)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(305、306)が存在し、一方のFAT(305、306)が破損したとしても他方のFAT(305、306)によりファイルにアクセスできるよう二重化されている。ルートディレクトリエントリ307は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
図3は、FAT16のディレクトリエントリの構成を示した図である。
続いて、図4を用いて、FATファイルシステムにおけるファイルデータ書き込み処理手順について説明する。
(S401):
S401では、対象ファイルのディレクトリエントリ308を読み出す。
(S402):
S402では、読み出したディレクトリエントリ308に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する。
(S403):
S403では、FAT(305、306)をアクセスモジュールのRAM上に読み出し、S402で取得したファイルデータの先頭位置から順にRAM上のFAT(305、306)内でリンクを辿り、書き込み位置のクラスタ番号を取得する。
S404では、ファイルデータ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する。判定の結果、空き領域の割り当てが必要な場合、S405の処理に進む。一方、空き領域の割り当てが不要な場合、S408の処理に進む。
(S405):
S405では、RAM上のFAT(305、306)内で空き領域を検索し、1クラスタの空き領域を取得する。FAT(305、306)では、値が0x0000に設定されているFATエントリが空きクラスタを意味するため、空き領域を取得する処理は、FAT(305、306)上で0x0000の値を持つFATエントリを取得するという処理になる。具体的には、RAM上のFAT(305、306)内のFATエントリを順次参照し、値が0x0000に設定されているFATエントリを見つけ、該FATエントリの対応クラスタ番号の値を求める。FATエントリの検索処理は、例えば、FAT(305、306)の先頭から終端まで順にFATエントリを検索することで実施されるものであっても良い。あるいは、前回空き領域を割り当てたFATエントリの次のFATエントリから検索処理を開始してFAT(305、306)の終端まで到達したらFAT(305、306)の先頭に折り返し、前回空き領域を割り当てたFATエントリまで検索処理を実施することで、FATエントリの検索処理が実行されるものであっても良い。このように、FATエントリの検索処理手順は、FAT(305、306)領域の全面に対して、空き領域を検索する処理を実現できるものであれば良く、特に限定はされない。
S406では、S405で取得した空きクラスタの番号に対応するFATエントリの値を、リンク終端を意味する値に設定する。FAT(305、306)では、値が0xFFFFに設定されているFATエントリがリンク終端を意味するため、S406では、該当FATエントリの値をRAM上で0xFFFFに設定する処理を実施する。
(S407):
S407では、現在のリンク終端のクラスタ番号に対応するFATエントリの値を、0xFFFFからS405で取得した空きクラスタの番号にRAM上で設定する。空き領域を取得する必要がある場合(S404での判定結果が「YES」の場合)、ファイル終端への追記がなされることになる。つまり、この場合、S403でのリンクを辿る処理において、ファイル終端までリンクが辿られており、現在のリンク終端のクラスタ番号に対応するFATエントリの値には、リンク終端を意味する0xFFFFが設定されている。そのため、S407の処理により、S405で新たに取得した空きクラスタへリンクを接続することにより、ファイルのリンクが1クラスタ分長くなり、ファイルデータを追記することが可能となる。
S408では、現在参照している書き込み位置のクラスタ内にファイルデータを書き込む。S404で空き領域取得が必要と判断された場合、現在参照している書き込み位置は、S405で取得した空きクラスタとなる。一方、S404で空き領域取得が不要と判断された場合、現在参照している書き込み位置は、S403でリンクを辿った結果到達したクラスタとなる。
(S409):
S409では、全ファイルデータの書き込みが完了したか判定する。まだファイルデータが残っている場合、S404の処理に戻る。全ファイルデータの書き込みが完了した場合、S410の処理に進む。
ディレクトリエントリ308内に格納されたファイルサイズや最終更新日時等の情報を更新し、情報記録モジュールの不揮発性メモリ内に格納されたディレクトリエントリ308を上書きする。
(S411):
S411では、情報記録モジュールの不揮発性メモリ内に格納されたFAT(305、306)に、アクセスモジュールのRAM上のFAT(305、306)のデータを上書きし、処理を完了する。
上記で説明したファイルデータ書き込み処理により、図5に示した60000バイトのデータを持つFILE1.TXTに10000バイトのデータを追記した場合、当該ファイル(FILE1.TXT)は、図6に示すような70000バイトのデータを持つファイルに変化する。すなわち、空きクラスタとしてクラスタ番号6のクラスタが取得され、その取得されたクラスタにファイルデータが追記され、FAT(305、306)上のリンクにクラスタ番号6が接続される。その結果、ファイルFILE1.TXTのリンクは、クラスタ番号2~5の4クラスタからなる状態から、クラスタ番号2~6の5クラスタからなる状態に更新される。このように、FATファイルシステムでは、ファイルの管理情報がFAT(305、306)とディレクトリエントリ308との両方に格納されていることから、ファイルを更新する場合には、これらの情報(FAT(305、306)の情報およびディレクトリエントリ308の情報)も共に更新する必要がある。
また、アクセスモジュールが情報記録モジュールに格納されたファイルを更新する場合、図4を用いて説明したように、FATファイルシステムでは、データ本体の記録の他、FAT(305、306)やディレクトリエントリ308などのファイルシステム管理情報の更新を行う必要がある。従来、NAND型フラッシュメモリに対する、これらファイルシステム管理情報の更新を高速化する方法が提案されている(例えば、特許文献2参照)。この方法(特許文献2に開示されている方法)では、ユーザデータやファイルシステム管理情報を記録する際に、アクセス装置が記録媒体に対してデータ種別を通知することにより、記録媒体側で各データの特性に応じた格納方法を実施し、ユーザデータのような大容量データとファイルシステム管理情報のような小容量データとの記録が混在しても高速に記録することを可能にする。
格納アドレス決定処理部は、情報記録装置内のデータ格納領域を、所定ブロックサイズのブロック単位で区切って管理するとともに、第1のファイルのデータを格納する第1の格納ブロックと、該第1のファイルを管理する第2のファイルのデータを格納する第2の格納ブロックと、を設定する。また、格納アドレス決定処理部は、第1の格納ブロックには、該第1の格納ブロックの先頭アドレスから昇順に前記第1のファイルデータを順に記録するためのアドレスを決定する。また、格納アドレス決定処理部は、第1の格納ブロックに記録された第1のファイルデータに対応する第2のファイルデータを更新又は追加する際は、該第2のファイルデータの更新又は追加部分に相当するクラスタデータを第2の格納ブロック内の最も低アドレスを持つ未使用クラスタ領域に記録するためのアドレスを決定する。
情報記憶モジュールアクセス部は、格納アドレス処理部、及び、リンク移動処理部にしたがって、情報記録装置に第1のファイルデータ、及び第2のファイルデータの記録を指示する。
このアクセス装置では、第1のファイル、第2のファイルの各々に異なるブロック(第1格納ブロックおよび第2格納ブロック)を割り当て、追記(データ追記処理)、上書き(データ上書き処理)のいずれの処理が実行される場合であっても、(1)第1のファイルが書き込み対象である場合は、常に、ブロック先頭から順にシーケンシャルに第1のファイルのデータを書き込み、(2)第2のファイルが書き込み対象である場合は、第2の格納ブロック内の最も低アドレス(第2の格納ブロック内の先頭アドレスに最も近いアドレス)を持つ未使用クラスタ領域から順に第2のファイルのデータを書き込む。これにより、このアクセス装置を用いることで、情報記録装置へのシーケンシャル記録が常に保証される。その結果、このアクセス装置および情報記録装置を用いたリアルタイム情報記録システムでは、データ記録を高速化することが可能となる。
第2の発明は、第1の発明であって、格納アドレス決定処理部は、情報記録装置に対するデータの書き込み処理が、第1のファイルへのデータ追記処理およびデータ上書き処理のいずれの処理であっても、第1格納ブロック内の先頭から順に所定書き込みサイズの倍数長単位で書き込んだ場合における最終書き込み位置の次のアドレスを第1のファイルのデータ書き込み開始位置とする。また、格納アドレス決定処理部は、情報記録装置に対するデータの書き込み処理が、第2のファイルへのデータ追記処理およびデータ上書き処理のいずれの処理であっても、第2格納ブロック内の先頭から順に所定書き込みサイズの倍数長単位で書き込んだ場合における最終書き込み位置の次のアドレスを第2のファイルのデータ書き込み開始位置とする。
第4の発明は、第1から第3のいずれかの発明であって、ファイルシステム制御部を、さらに備える。
ファイルシステム制御部は、所定書き込みサイズ未満の書き込みが発生する場合、同一所定書き込みサイズ単位内に含まれるデータを読み出して、書き込み対象の新データと結合し、所定書き込みサイズ倍数長のデータを生成した後、生成したデータを情報記録装置に書き込むよう制御する。
これにより、所定書き込みサイズ未満の書き込みが発生する場合であっても、所定書き込みサイズ倍数長のデータによるデータ書き込み処理が保証される。
第6の発明は、第1から第5のいずれかの発明であって、所定書き込みサイズは、情報記録装置に含まれる不揮発性メモリの物理的なデータ記録処理単位サイズの倍数長である。
第7の発明は、第1から第6のいずれかの発明であって、所定ブロックサイズは、情報記録装置に含まれる不揮発性メモリの物理的なデータ消去処理単位サイズの倍数長である。
第8の発明は、アクセス装置と通信することができるように接続されており、アクセス装置の指示に従ってデータの書き込みおよび/または読み出しを行う情報記録装置であって、不揮発性メモリと、記録ブロック管理制御部と、を備える。
記録ブロック管理制御部は、不揮発性メモリ内に第1の一時ブロック領域および第2の一時ブロック領域を設定する。また、記録ブロック管理制御部は、アクセス装置から指定される第1のファイルのデータを格納する第1格納ブロックの位置情報と、アクセス装置から指定される第2のファイルのデータを格納する第2格納ブロックの位置情報とを格納するアドレス管理情報に基づき、第1格納ブロックにデータが記録されると認識した場合、不揮発性メモリ内の第1の一時ブロック領域にデータが格納されるように制御する。また、記録ブロック管理制御部は、アドレス管理情報に基づき第2格納ブロックにデータが記録されると認識した場合、不揮発性メモリ内の第2の一時ブロック領域にデータが格納されるように制御する。
第9の発明は、第8の発明であって、記録ブロック管理制御部は、アクセス装置がデータ記録に先立ち予め通知する第1格納ブロックおよび/または第2格納ブロックの位置情報に基づいて、アドレス管理情報を設定する。
第10の発明は、第8または第9の発明であって、記録ブロック管理制御部は、アクセス装置からの第1の格納ブロックおよび/または第2の格納ブロックの位置情報の通知に基づき、任意の空きブロックを取得し、取得した空きブロックを、第1の一時ブロック領域および/または第2の一時ブロック領域に割り当てる。
第11の発明は、データを格納する不揮発性メモリを備える情報記録装置を制御するコントローラであって、記録ブロック管理制御部を備える。
第12の発明は、第1から第7のいずれかの発明であるアクセス装置と、第8から第10のいずれかの発明である情報記録装置と、を備えるリアルタイム情報記録システムである。
第13の発明は、データを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置で用いられるメモリアクセス方法あって、格納アドレス決定処理ステップと、リンク移動処理ステップと、を備える。
情報記憶モジュールアクセスステップでは、格納アドレス処理ステップ、及び、リンク移動処理ステップでの処理結果にしたがって、情報記録装置に第1のファイルデータ、及び第2のファイルデータの記録を指示する。
これにより、第1の発明と同様の効果を奏するアクセス方法を実現することができる。
第14の発明は、データを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置で用いられるメモリアクセス方法をコンピュータに実行させるプログラムである。アクセス方法は、格納アドレス決定処理ステップと、リンク移動処理ステップと、を備える。
情報記憶モジュールアクセスステップでは、格納アドレス処理ステップ、及び、リンク移動処理ステップでの処理結果にしたがって、情報記録装置に第1のファイルデータ、及び第2のファイルデータの記録を指示する。
これにより、第1の発明と同様の効果を奏するアクセス方法をコンピュータに実行させるプログラムを実現することができる。
[第1実施形態]
<1.1:リアルタイム情報記録システムの構成>
図1は、第1実施形態におけるリアルタイム情報記録システム1000の概略構成を示す図である。図1に示すように、リアルタイム情報記録システム1000は、アクセスモジュール(アクセス装置)1と、情報記録モジュール(情報記録装置)2とを備え、アクセスモジュール1と情報記録モジュール2とは、バス3により接続されて、双方向に通信を行うことができる。
(1.1.1:アクセスモジュール)
図1に示すように、アクセスモジュール(アクセス装置)1は、CPU11と、RAM12と、情報記録モジュールインターフェース部13と、ROM14とを含む。なお、アクセスモジュール1の各機能部は、図1に示すように、内部バスにより接続されるものであってもよく、あるいは、その全部または一部が直接接続されるものであってもよい。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムは、RAM12を一時記憶領域として使用し、CPU11上で動作する。
ROM14は、アプリケーション制御部101と、ファイルシステム制御部102と、情報記録モジュールアクセス部103とを含む。
なお、本実施形態において、ROM14中の機能部(アプリケーション制御部101、ファイルシステム制御部102、および、情報記録モジュールアクセス部103)は、ROM14中において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、ハードウェアにより、その全部または一部が実現されるものであってもよい。
ファイルシステム制御部102は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。そして、ファイルシステム制御部102は、格納アドレス決定処理部104と、リンク移動処理部105とを含む。
格納アドレス決定処理部104は、ファイルにデータを記録する際に、ファイルデータ格納先の論理アドレスを決定する処理部であり、従来のアクセスモジュールには存在しないものである。
また、リンク移動処理部105は、管理ファイルに対する追記処理や、上書き処理を実施した際に、FAT(305、306)上で各クラスタ間のリンクを張り替え、情報記録モジュール2に対する記録が連続した論理アドレスへのシーケンシャル記録になるようにする処理部である。リンク移動処理部105も格納アドレス決定処理部104と同様に従来のアクセスモジュールには存在しないものである。
情報記録モジュールアクセス部103は、ファイルシステム制御部102からデータと共に、そのデータのサイズと、そのデータを書き込む(記録する)アドレスとを渡され、指定されたサイズのデータを情報記録モジュール2の不揮発性メモリ22内の指定された位置に記録等するための、コマンドやデータを生成する。そして、情報記録モジュールアクセス部103は、生成したコマンドやデータが、情報記録モジュールインターフェース部13を介して、情報記録モジュール2と送受信されるように制御する。
(1.1.2:情報記録モジュール)
図1に示すように、情報記録モジュール2は、コントローラ21と、不揮発性メモリ22と、を含む。
アクセスモジュールインターフェース部211は、情報記録モジュール2とアクセスモジュール1との接続部(インタフェース)である。アクセスモジュールインターフェース部211は、情報記録モジュールインターフェース部13同様、バス3を介して、アクセスモジュール1に対して、制御信号及びデータを送受信する。
ROM214は、記録ブロック管理制御部217を含む。
なお、本実施形態において、ROM214中の機能部(記録ブロック管理制御部217)は、ROM214中において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、ハードウェアにより、その全部または一部が実現されるものであってもよい。
記録ブロック管理制御部217は、不揮発性メモリ22内のデータ格納位置をブロック単位で管理し、アクセスモジュール1から情報記録モジュール2に発行されたデータ書き込み命令が、どのブロックへの書き込み指示であるかを判定し、該当するブロックへの書き込み処理を実施する制御部である。記録ブロック管理制御部217は、従来の情報記録モジュール2には存在しないものである。この制御部の詳細については後述する。
不揮発性メモリインターフェース部215は、コントローラ21と不揮発性メモリ22との接続部であり、不揮発性メモリ22に対するコマンドやデータの送受信を制御する。
本実施形態における情報記録モジュール2は、アクセス装置1から通知される情報を元に、(1)動画ファイル(コンテンツに関するファイル)への記録か、(2)管理ファイル(コンテンツに付随するファイル)への記録かを判定し、判定結果に基づいて、動画ファイルおよび管理ファイルを、各々別の物理ブロックにデータを格納する。また、リアルタイム情報記録システム1000において、アクセスモジュール1は、情報記録モジュール2に対して、記録ブロックに関する情報を通知すると共に、実行する処理がファイルデータの追記処理であるか、上書き処理であるかに関わらず、必要に応じてデータをパディングしながら所定のブロック内にシーケンシャルにデータを記録し、FAT(305、306)上でリンクを張り替える。アクセスモジュール1がこのように処理することで、リアルタイム情報記録システム1000では、ファイルデータの記録を、常に、シーケンシャル記録に置き換えて実施することができる。すなわち、リアルタイム情報記録システム1000では、これらアクセスモジュール1、情報記録モジュール2を組み合わせることにより、動画ファイル、管理ファイルなど、サイズの異なる複数のファイルを並行して記録する場合においても、情報記録モジュール2内で生じる無駄なコピー処理を削減して記録速度の低下を防止し、高速に安定して情報記録モジュール2にデータを記録することが可能となる。
続いて、図7を用いて、本実施形態における不揮発性メモリ22の構成について説明する。
不揮発性メモリ22には、例えば、NAND型フラッシュメモリなどが用いられる。不揮発性メモリ22は、複数の物理ブロックから構成される。物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。ページは、データの書き込みを行う単位である。また、ページは、データ部と冗長部とを含む。データ部は、論理アドレス空間としてアクセスモジュール1からアクセスが可能な領域であり、実際にファイルデータ等が格納される領域である。一方、冗長部は、不揮発性メモリ22の管理情報やECC等が格納される領域であり、アクセスモジュール1からアクセスできない領域である。データ部の大きさは、例えば、4KBであり、冗長部の大きさは、例えば、128バイト程度である。また、データ部にのみ着目した場合の物理ブロックの大きさは、例えば、512KB程度となる。よって、不揮発性メモリ22の一例として、この大きさの物理ブロック2048個から構成された場合は、不揮発性メモリ22の容量は、1GBとなる。
以上のように構成されたリアルタイム情報記録システム1000の動作について、以下、説明する。
(1.2.1:アドレス管理情報)
まず、図8を用いて、本実施形態におけるアドレス管理情報216について説明する。図8は、アドレス管理情報216について説明するための図である。
図8に示すように、アドレス管理情報216は、動画ファイル用一時ブロック管理情報401と、管理ファイル用一時ブロック管理情報402と、アドレス変換情報403とを含む。
動画ファイル用一時ブロック管理情報401は、動画ファイルのデータ記録用に割り当てられたブロックの位置に関する情報であり、情報記録モジュール2の記録ブロック管理制御部217が動画ファイル用一時ブロック(動画ファイル用キャッシュブロック)を管理するために使用する情報である。
アドレス変換情報403は、不揮発性メモリ22内の各物理ブロックの物理アドレスと、論理アドレスとの対応関係を示す情報である。この情報は、従来の情報記録モジュール2が持つ情報(一般に“アドレス変換テーブル”や、“論物アドレス変換表”などと呼ばれる情報)と同様のものである。
本実施形態における情報記録モジュール2は、アクセスモジュール1から通知された情報に基づき、動画ファイルと管理ファイルとを個別のブロック内の連続アドレスに記録する。これにより、リアルタイム情報記録システム1000において、動画ファイルおよび管理ファイルが並行して記録される場合であっても、動画ファイルおよび管理ファイルが各々個別のブロックに連続的に記録されることになり、不揮発性メモリ22上の無駄なコピー処理を削減し(いわゆる巻き込み退避処理(集約処理)の発生を抑え)、高速にデータを記録することが可能となる。
次に、本実施形態のリアルタイム情報記録システム1000での詳細なデータ記録手順について説明する。
以降の説明では、物理ブロックサイズを512KB、物理ページサイズを4KB、ファイルシステムのクラスタサイズを16KBと仮定し、動画ファイル、管理ファイルをクラスタ単位で記録する場合の例について説明する。
≪動画ファイル、管理ファイルの書き込み処理手順≫
まず始めに、リアルタイム情報記録システム1000における動画ファイルおよび管理ファイルの書き込み処理手順の概要について、図9を用いて説明する。
図9は、リアルタイム情報記録システム1000における動画ファイルおよび管理ファイルの並行書き込み手順の全体を示した図であり、動画ファイルおよび管理ファイルが任意の順番で並行して書き込まれる場合の処理手順を示している。
S901では、アクセスモジュール1の格納アドレス決定処理部104が、動画ファイルの格納ブロックを決定する。リアルタイム情報記録システム1000において、情報記録モジュール2に対する最適な書き込み処理単位、ブロック長などをアクセスモジュール1が認識しておく必要がある。リアルタイム情報記録システム1000において、これらの情報は、予めアクセスモジュール1が情報記録モジュール2から取得するようにしても良いし(ケース1)、予めアクセスモジュール1が保持している固定的な値を用いるようにしても良い(ケース2)。後者の場合(ケース2の場合)、例えば、情報記録モジュール2の容量が2GB以下であれば、ブロックサイズを512KBとし、情報記録モジュール2の容量が2GBを超える場合は、ブロックサイズを4MBとするなど、情報記録モジュール2の容量に依存して固定的な値を決定しても良いし、その他の情報を用いて固定的な値を決定しても良い。ここでは、リアルタイム情報記録システム1000において、最適な書き込み処理単位が16KB、ブロック長が512KBであると仮定する。即ち、本実施形態では、リアルタイム情報記録システム1000において、アクセスモジュール1が、512KB全てが空きクラスタとなっている領域にクラスタ(=16KB)単位でデータを記録する場合の例について説明する。この際、動画ファイルは、常に、新規作成され、既存ファイルへの上書きが生じないものとし、S901における格納ブロックの決定では、1ブロック全てが空きクラスタから構成されている空きブロックが取得され、動画ファイル格納ブロックとして割り当てられるものとする。
S902では、アクセスモジュール1は、S901で決定した動画ファイル格納ブロックの位置情報を情報記録モジュール2に通知する。情報記録モジュール2は、アクセスモジュール1から通知された情報を、動画ファイル用一時ブロック管理情報に設定し、当該ブロックを動画ファイル記録用の領域として管理する。情報記録モジュール2における格納ブロック情報登録処理の詳細については後述する。
(S903):
S903では、S901と同様にアクセスモジュール1の格納アドレス決定処理部104が、管理ファイルの格納ブロックを決定する。S901同様に、1ブロック全てが空きクラスタから構成されている空きブロックが取得され、管理ファイル格納ブロックとして割り当てられるものとする。
S904では、S902と同様に、アクセスモジュール1は、S903で決定した管理ファイル格納ブロックの位置情報を情報記録モジュール2に通知する。情報記録モジュール2は、アクセスモジュール1から通知された情報を、管理ファイル用一時ブロック管理情報に設定し、当該ブロックを管理ファイル記録用の領域として管理する。情報記録モジュール2における格納ブロック情報登録処理の詳細については後述する。
(S905):
S905では、アクセスモジュール1の格納アドレス決定処理部104が、次に、動画ファイルのデータを記録するアドレスを決定する。この例では、1クラスタ単位で動画ファイルのデータを記録する場合を想定しているため、実際には、格納アドレス決定処理部104は、1クラスタ分の空きクラスタを取得し、そのアドレスを動画ファイルのデータ記録アドレスとして決定する処理を行う。格納アドレス決定処理の詳細は後述する。
S906では、アクセスモジュール1のファイルシステム制御部102は、S905で決定したアドレスに動画ファイルデータを書き込む(アクセスモジュール1のファイルシステム制御部102は、情報記録モジュール2に対して、S905で決定したアドレスに動画ファイルデータを書き込むよう指示する)。この書き込み処理は、従来のアクセスモジュールと同様の処理である。
また、S905、S906の処理は、組として実施されるが、動画ファイルデータの一部(この例では、1クラスタ分のデータを想定)の書き込み処理となる。このため、リアルタイム情報記録システム1000では、S905、S906の処理を組として必要な回数だけ、S905、S907の処理を繰り返し実施する。ここで、任意のタイミングで管理ファイルの書き込み処理が発生した時点で、S907の処理が実施される。なお、リアルタイム情報記録システム1000において、管理ファイルの書き込み処理を発生させるタイミングは、リアルタイム情報記録システム1000の仕様や、リアルタイム情報記録システム1000に適用される規格等によって決定される。
S907では、S905と同様に、アクセスモジュール1の格納アドレス決定処理部104が、次に、管理ファイルのデータを記録するアドレスを決定する。この例では、リアルタイム情報記録システム1000において、1クラスタ単位で管理ファイルのデータを記録する場合を想定しているため、実際には、格納アドレス決定処理部104が、1クラスタ分の空きクラスタを取得し、そのアドレスを管理ファイルのデータ記録アドレスとして決定する処理となる。また、リアルタイム情報記録システム1000において、1クラスタ分未満のデータの書き込み処理が発生する場合、旧データを1クラスタ分読み出して新データとマージし、1クラスタを書き戻す処理となるため、いずれにしても、格納アドレス決定処理部104は、1クラスタ分の空きクラスタを取得する。格納アドレス決定処理の詳細は後述する。
S908では、アクセスモジュール1のファイルシステム制御部102は、S907で決定したアドレスに管理ファイルデータを書き込む。この書き込み処理は、従来のアクセスモジュールと同様の処理であるが、リアルタイム情報記録システム1000では、上書き処理(データを上書き(更新)する処理)の場合、必ず、新しい空きクラスタにデータを記録し、古いデータが格納されたクラスタには上書きしない。これにより、リアルタイム情報記録システム1000では、情報記録モジュール2に対しては、シーケンシャルな書き込み処理が生じることになり(シーケンシャルな書き込み処理を保証することができ)、高速にデータを記録することが可能となる。
(S909):
S909では、アクセスモジュール1のリンク移動処理部105が、FAT(305、306)上で管理ファイルのリンクの張り替えを行う。リアルタイム情報記録システム1000では、上書き処理を実行するときに、リンク移動処理部105が、リンクの張り替えを実施することにより、同一論理アドレスへの上書き処理は実行されない。したがって、リアルタイム情報記録システム1000では、情報記録モジュール2に対しては、シーケンシャルな書き込み処理を保証することができる。リンク移動処理は、追記(データ追記処理)と上書き(データ上書き処理)とで異なる処理となるが、各々の処理の詳細については後述する。また、実際には、動画ファイルについてもFAT(305、306)の更新処理が必要となるが、従来のFAT(305、306)の更新処理と同じであるため、説明を割愛する。
なお、リアルタイム情報記録システム1000において、動画ファイルの書き込み処理を発生させるタイミングは、リアルタイム情報記録システム1000の仕様や、リアルタイム情報記録システム1000に適用される規格等によって決定される。
(1.2.3:動画ファイル、管理ファイルの並行書き込み時の格納先論理アドレス)
続いて、図10を用いて、本実施形態のリアルタイム情報記録システム1000における動画ファイル、管理ファイルの並行書き込み時の格納先論理アドレスの一例について説明する。
動画ファイルは、新規作成されるため、上書き処理は発生せず、割り当てられたブロックの先頭から順にシーケンシャルにデータが書き込まれる(図中の「動1」「動2」の部分)。
一方、管理ファイルは、上書き処理となる場合もあるが、新しいデータは、必ず割り当てられたブロックの先頭から順にシーケンシャルにデータが書き込まれる(図10中の「管1(新)」「管2(新)」の部分)。また、リアルタイム情報記録システム1000では、管理ファイルの上書き処理の場合、FAT(305、306)上のリンクを張り替え、古いデータが新しいデータで上書きされたようにFAT(305、306)を更新する(図中の「管1(旧)」、「管2(旧)」が「管1(新)」、「管2(新)」に上書きされたように張り替える)。
(1.2.4:格納アドレス決定処理(アクセスモジュール1側の処理))
次に、図11(a)を用いて、格納アドレス決定処理の詳細について説明する。図11(a)は、格納アドレス決定処理のフローチャート図である。
格納アドレス決定処理は、図9の処理手順において、S905、S907で示した手順に該当する。
(S1101):
S1101では、アクセスモジュール1の格納アドレス決定処理部104が、記録対象のファイルが動画ファイルか、管理ファイルかを判定する。動画ファイルの場合は、S1102の処理に進む。管理ファイルの場合は、S1107の処理に進む。
≪動画ファイル用処理≫
(S1102):
S1102では、格納アドレス決定処理部104は、現在動画ファイル用論理ブロックとして割り当てているブロックに対する書き込み処理が論理ブロック終端まで完了しているかを判定する。そして、判定の結果、完了している場合はS1103の処理に進み、完了していない場合はS1106の処理に進む。本実施形態における説明では、書き込み処理サイズをクラスタサイズ(=16KB)、ブロックサイズを512KBと仮定している。そのため、動画ファイル用論理ブロックとして、512KB単位の空き領域を割り当てており、S1102での判定処理では、当該512KB内の終端まで動画ファイルのデータ書き込み処理が完了しているか否かが判定されることになる。
S1103では、動画ファイル用論理ブロック終端まで書き込み処理が完了しているため、ファイルシステム制御部102は、新しい空き論理ブロックを取得する。即ち、ファイルシステム制御部102は、512KB全てが空きクラスタから構成されている論理ブロックを取得する。
(S1104):
S1104では、アクセスモジュール1は、S1103で取得した空き論理ブロックの位置情報を動画ファイル用格納ブロックの位置情報として、情報記録モジュール2に通知する。情報記録モジュール2は、動画ファイル用一時ブロック管理情報401に、アクセスモジュール1から通知された情報を設定し、当該ブロックを動画ファイル記録用の領域として管理する。この処理は、図9のS902の処理と同じ処理であり、詳細については後述する。
S1105では、格納アドレス決定処理部104は、S1103で取得した空き論理ブロックの開始アドレスを動画ファイル格納アドレスとして決定し、処理を終了する。
(S1106):
S1106では、格納アドレス決定処理部104は、現在動画ファイル用論理ブロックとして割り当てているブロックの書き込み済み領域の次のアドレスを動画ファイル格納アドレスとして決定し、処理を終了する。例えば、図11(b)に示すように、動画ファイル用論理ブロックAの終端までデータ記録済みの場合、格納アドレス決定処理部104は、動画ファイル用論理ブロックBの最初のクラスタ(図11(b)の「動1(新)」で示したクラスタ)の先頭アドレスを、動画ファイル格納アドレスとして決定する。
(S1107~S1111):
S1107~S1111では、S1102からS1106までの動画ファイル用の処理と同様の処理を、管理ファイル用の処理として実施する。詳細内容については、動画ファイル用の処理とほぼ同じため、説明を割愛する。
このように、リアルタイム情報記録システム1000では、図11に示した処理を行うことで、動画ファイル、管理ファイルの各々について、空き論理ブロックを割り当て、先頭から順にデータを記録するため、該当ブロック内の書き込み済み領域の次のアドレスをファイルデータ格納アドレスとして決定する。
(1.2.5:格納ブロック情報登録処理(情報記録モジュール2側の処理))
次に、図12を用いて、格納ブロック情報登録処理の詳細について説明する。
≪動画ファイル/管理ファイル判定処理≫
(S1201):
情報記録モジュール2の記録ブロック管理制御部217が、記録対象のファイルが動画ファイルであるのか、あるいは、管理ファイルであるのかを判定する。いずれのファイルの記録であるかはアクセスモジュール1から情報記録モジュール2に通知されるものとする。動画ファイルの場合は、S1202の処理に進む。管理ファイルの場合は、S1207の処理に進む。
(S1202):
S1202では、情報記録モジュール2の記録ブロック管理制御部217は、現在動画ファイル用一時ブロックとして割り当てているブロックに対する書き込み処理が物理ブロック終端まで完了しているか判定する。判定の結果、完了している場合はS1204の処理に進み、完了していない場合はS1203の処理に進む。本実施形態における説明では、書き込み処理サイズをクラスタサイズ(=16KB)、ブロックサイズを512KBと仮定している。そのため、動画ファイル用一時ブロックとして512KB単位の空き領域を割り当てている。したがって、本実施形態のリアルタイム情報記録システム1000では、当該512KB内の終端まで動画ファイルのデータ書き込み処理を完了しているか否かを判定することになる。
格納ブロック情報登録処理において、リアルタイム情報記録システム1000では、動画ファイル用一時ブロックを、現在割り当てられている論理ブロック以外の他の論理ブロックに割り当てるため、以下の(1)、(2)の処理を行う必要がある。なお、ここでは、後で説明する図13の対応部分を、説明便宜のため、例示する。
(1)現在、動画ファイル用一時ブロック(図13における物理ブロック番号0x0F03の物理ブロック)を割り当てられている論理ブロック(図13における論理ブロック番号0x0004の論理ブロック)に対応する物理ブロック(図13における物理ブロック番号0x0104の物理ブロック)に格納されているデータ(旧データ)と、動画ファイル用一時ブロック(図13における物理ブロック番号0x0F03の物理ブロック)のデータとをマージする(有効データをマージする)。
(2)そして、動画ファイル用一時ブロック(図13における物理ブロック番号0x0F03の物理ブロック)の領域を解放する。
(S1204):
S1204では、記録ブロック管理制御部217は、アドレス管理情報216内のアドレス変換情報403を更新し、現在動画ファイル用一時ブロックに割り当てられている物理ブロックを、対応する論理ブロック番号に対応付ける(紐付ける)。
(S1205):
S1205では、情報記録モジュール2は、新しく動画ファイル用一時ブロックに割り当てるため、空き物理ブロックを取得する。
S1206では、記録ブロック管理制御部217は、アドレス管理情報216内の動画ファイル用一時ブロック管理情報401を更新し、S1205で取得した空き物理ブロックを動画ファイル用一時ブロックとして登録し、処理を終了する。
≪管理ファイル用処理≫
(S1207~S1211):
S1207~S1211では、S1202からS1206までの動画ファイル用の処理と同様の処理を管理ファイル用の処理として実施する。詳細内容については、動画ファイル用の処理とほぼ同じため、説明を割愛する。
このように、リアルタイム情報記録システム1000では、図12に示した処理を行うことにより、動画ファイル、管理ファイルの各々について必要に応じて、現在の一時ブロックの情報を整理した上で、新しい空き物理ブロックを取得し、新しい一時ブロックとして登録する。
図13(a)は、論理ブロック番号0x0004に割り当てられた動画ファイル用一時ブロック(物理ブロック番号:0x0F03)領域に途中までデータが記録された状態(物理ブロック番号が0x0F03の動画ファイル用一時ブロックの物理ページ番号0x0000~0x0003の合計4ページ分にデータが記録された状態)を示している。そして、図13(a)に示すように、アドレス変換情報403において、論理ブロック0x0004の論理ブロックは、物理ブロック番号0x0104の物理ブロックに対応付けられているので、論理ブロック番号0x0004の論理ブロックの旧データは、物理ブロック番号0x0104の物理ブロックに格納(記録)されている。
(1)物理ブロック番号が0x0104の物理ブロックの「DATA_A1」~「DATA_A31」が有効データである(物理ページ番号0x0000のページに記録されているデータ「DATA_A0」は、動画用一次ブロックの対応する物理ページ(物理ページ番号0x0000)にデータ「DATA_B0」(有効データ)が存在するため、無効データである。)。したがって、物理ブロック番号0x0F03の動画ファイル用一時ブロックに、物理ブロック番号0x0104の有効データ「DATA_A1」~「DATA_A31」がコピーされる(図12のS1023の処理に相当)。
(2)論理ブロック番号0x0004の論理ブロックについてのアドレス変換情報が更新される(図12のS1024の処理に相当)。
(3)空き物理ブロック(図3の場合では、物理ブロック番号0x0F05の物理ブロック)が取得される(図12のS1205の処理に相当)。
(4)動画ファイル用一次ブロック管理情報が更新される(図12のS1206の処理に相当)。
このように、リアルタイム情報記録システム1000における格納ブロック情報登録処理では、現在の動画ファイル用一時ブロック領域に割り当てられている論理ブロック番号に対応するデータを整理し、新たな空き物理ブロックを新しい動画ファイル用一時ブロック領域としてアクセスモジュール1から指定された論理ブロック番号に割り当てる。
(1.2.6:リンク移動処理)
続いて、本実施形態のリアルタイム情報記録システム1000におけるリンク移動処理について、図14から図18を用いて説明する。
リンク移動処理は、図9の処理手順において、S909で示した手順(処理)に該当する。
図15は、上書き処理を実行する場合のリンク移動処理手順を示した図である。
図16は、追記処理を実行する場合のFAT(305、306)の状態を示した図である。
図17は、小サイズデータを追記処理する場合のFAT(305、306)の状態を示した図である。
図18は、上書き処理を実行する場合のFAT(305、306)の状態を示した図である。
≪追記処理の場合のリンク移動処理手順≫
まず、図14を用いて、リアルタイム情報記録システム1000において追記処理を実行する場合のリンク移動処理手順について説明する。
S1401では、アクセスモジュール1のリンク移動処理部105が、FAT(305、306)上で新データ記録クラスタをリンク終端に設定する。
図16の例では、クラスタ番号33のクラスタが旧データ記録終端クラスタであるときに、データを追記し、新データをクラスタ番号66のクラスタに記録する場合を示している。この場合、S1401の処理では、FAT(305、306)上の対応クラスタ番号66の値を0xFFFFに設定することになる(図16(c)の状態に相当)。
(S1402):
S1402では、FAT(305、306)上で旧データ記録終端クラスタを新データ記録クラスタに接続し、処理を終了する。
この追記処理を実行する場合のリンク移動処理は、通常のFATファイルシステムにおいてデータを追記する場合の処理とほぼ同じであるが、本実施形態のリアルタイム情報記録システム1000においては、新データ記録クラスタが、必ず、情報記録モジュール2に対して、シーケンシャルな記録となるように空きクラスタを割り当てる点が異なる。即ち、管理ファイルの追記処理において、情報記録モジュール2に設定した管理ファイル用論理ブロックの先頭から順に新データを記録し、リンク移動処理において、当該管理ファイルが追記されるようFAT(305、306)上のリンクを更新する(FATチェーン(クラスタチェーン)において、追記処理の対象となった管理ファイルの追記したクラスタが追加されるように、FAT(305、306)上のリンクを更新する)。
図17は、管理ファイル用論理ブロックのクラスタ番号が33のクラスタ(図17の「管N」のクラスタ)が終端クラスタである状態を示している。そして、クラスタ番号が33のクラスタ(図17の「管N」のクラスタ)には、(16KB-Mバイト)の有効データと、Mバイトの無効データ(パディングデータ)が記録されているものとする。そして、リアルタイム情報記録システム1000において、Kバイト(K<M)のデータを追記する場合について、以下、説明する。
(S1):
ファイルシステム制御部102は、クラスタ番号が33のクラスタ(図17の「管N」のクラスタ)の(16KB-Mバイト)の有効データをRAM12上に読み出す。
(S2):
そして、ファイルシステム制御部102は、RAM12上で、Kバイトの追記データを(16KB-Mバイト)の有効データに追記し、当該クラスタの残りの領域(M-Kバイト分の領域)に、無効データ(スタッフィングデータ)を追加し、1クラスタ分の書き込みデータを作成する。
(S3):
そして、アクセスモジュール1は、作成した1クラスタ分の書き込みデータを、クラスタ番号66のクラスタ(新たな管理ファイル用論理ブロックの先頭のクラスタ)に書き込む。
(S4):
そして、リンク移動処理部105は、FAT(305、306)上の対応クラスタ番号66の値を0xFFFF(終端クラスタを表す値)に変更する(図17(c)の状態)。
(S5):
さらに、リンク移動処理部105は、FAT(305、306)上の対応クラスタ番号32の値を0x0021(十進数で「33」)から0x0042(十進数で「66」)に変更する。また、リンク移動処理部105は、FAT(305、306)上の対応クラスタ番号33の値を0xFFFFから0x0000に変更する(図17(d)の状態)。
≪上書きする場合のリンク移動処理手順≫
次に、図15を用いて、リアルタイム情報記録システム1000において上書き処理を実行する場合のリンク移動処理手順について説明する。
(S1501):
S1501では、アクセスモジュール1のリンク移動処理部105が、FAT(305、306)上で新データ記録クラスタを旧データ記録クラスタのリンク先クラスタに接続する。
(S1502):
S1502では、リンク移動処理部105が、FAT(305、306)上で旧データ記録クラスタのリンク元クラスタを新データ記録クラスタに接続する。
図18の例では、クラスタ番号3のリンク元クラスタであるクラスタ番号2に対応するFAT(305、306)上の値を0x0042(10進数で「66」)に変更することになる(図18(d)の状態に相当)。
S1503では、リンク移動処理部105が、FAT(305、306)上で旧データ記録クラスタを空きクラスタに設定し、処理を終了する。
図18の例では、クラスタ番号3に対応するFAT(305、306)上の値を0x0000に変更することになる(図18(e)の状態に相当)。
上書き処理を行う場合のリンク移動処理では、新データ記録クラスタが必ず情報記録モジュール2に対してシーケンシャルな記録となるように空きクラスタを割り当てる。即ち、管理ファイルの上書き処理においては、情報記録モジュール2に設定した管理ファイル用論理ブロックの先頭から順に新データを記録し、リンク移動処理において、当該管理ファイルが上書きされるようFAT(305、306)上のリンクを更新する(FATチェーン(クラスタチェーン)において、上書き処理の対象となった管理ファイルの上書きしたクラスタが含まれるように、FAT(305、306)上のリンクを更新する)。
更に、これまでの説明では、書き込み処理サイズおよびクラスタサイズが共に16KBと同じである場合について説明した。
≪書き込み処理サイズが32KB、クラスタサイズが16KBの場合における管理ファイルの上書き処理≫
書き込み処理サイズがクラスタサイズよりも大きい場合のリアルタイム情報記録システム1000における管理ファイルの上書き処理について、以下、説明する。
図19は、書き込み処理サイズが32KB、クラスタサイズが16KBの場合における管理ファイルの上書き処理時のFAT(305、306)の状態を示した図である。クラスタ番号4のクラスタに存在するデータを上書きする場合、図14から図18で示した処理手順であれば、上書き対象の1クラスタの新データのみをクラスタ番号66のクラスタに記録していた。しかしながら、書き込み処理サイズが32KBであるため、上書き対象クラスタのデータのみを書き込むことはできない。そのため、リアルタイム情報記録システム1000では、クラスタ番号4のクラスタと同じ書き込み処理単位に含まれるクラスタ番号5のデータを読み出し、新データと共に管理ファイル用論理ブロックに書き込む。即ち、新データをクラスタ番号66のクラスタに書き込み、クラスタ番号5のデータをクラスタ番号67のクラスタに書き込む。そして、これら2クラスタが該当ファイル(上書き処理の対象としたファイル)に含まれるようFAT(305、306)上でリンクを更新する。
以上のように、本実施形態のアクセスモジュール1と情報記録モジュール2を組み合わせて使用することにより、動画ファイル、管理ファイルなど、サイズの異なる複数のファイルを並行して情報記録モジュール2に記録する場合においても、情報記録モジュール2内で生じる無駄なコピー処理を削減し、管理ファイル記録による速度低下を防ぎ、リアルタイム記録を実現することが可能となる。
また、図1の説明において、情報記録モジュール2のコントローラ21の構成を説明したが、その他の構成としても良い。例えば、コントローラ21内のCPU212やRAM213等をコントローラ21の外部に配置しても良いし、逆に、その他の構成要素をコントローラ21内に含ませても良い。
また、本実施形態ではファイルシステムとしてFAT16を例として説明したが、その他のファイルシステムを用いても良い。
また、本実施形態では、動画ファイル、管理ファイルの2つのファイルを並行して書き込む場合の例について説明したが、3つ以上のファイルを並行して書き込めるようにしても良い。例えば、動画ファイル用一時ブロックを2つ、管理ファイル用一時ブロックを2つ、各々管理できるように拡張することにより、動画ファイル、管理ファイルの組を2つ並行して書き込むことができるようになる。この拡張を適用することにより、例えば、DVDレコーダ等の機器における2番組同時録画などを実現することが可能となる。
また、本実施形態では、書き込み処理をクラスタ単位で実施する場合の例について説明した。実際のファイルデータ書き込み時にクラスタサイズ未満のデータ書き込みが発生する場合には、
(1)上書きであれば、同一クラスタ内の旧データを読み出した後に新データとマージして情報記録モジュール2に書き込むようにし、
(2)追記であれば、同様に旧データとマージすると共に、必要に応じて記録領域終端に0x00、0xFFなどの無効データ(パディングデータ)を付加してクラスタサイズのデータを生成し、情報記録モジュール2に書き込むようにすることで、本発明を適用することが可能である。
[他の実施形態]
なお、上記実施形態で説明したリアルタイム情報記録システム、アクセスモジュール(アクセス装置)および情報記録モジュール(情報記録装置)において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blue-ray Disc)、半導体メモリを挙げることができる。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
1 アクセスモジュール
2 情報記録モジュール
11,212 CPU
12,213 RAM
13 情報記録モジュールインターフェース部
14,214 ROM
21 コントローラ
22 不揮発性メモリ
101 アプリケーション制御部
102 ファイルシステム制御部
103 情報記録モジュールアクセス部
104 格納アドレス決定処理部
105 リンク移動処理部
211 アクセスモジュールインターフェース部
215 不揮発性メモリインターフェース部
216 アドレス管理情報
217 記録ブロック管理制御部
301 ファイルシステム管理情報領域
302 ユーザデータ領域
303 マスターブートレコード・パーティションテーブル
304 パーティションブートセクタ
305,306 FAT
307 ルートディレクトリエントリ
308 ディレクトリエントリ
401 動画ファイル用一時ブロック管理情報
402 管理ファイル用一時ブロック管理情報
403 アドレス変換情報
Claims (14)
- データを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置であって、
前記情報記録装置内のデータ格納領域を、所定ブロックサイズのブロック単位で区切って管理するとともに、第1のファイルのデータを格納する第1の格納ブロックと、該第1のファイルを管理する第2のファイルのデータを格納する第2の格納ブロックと、を設定し、
前記第1の格納ブロックには、該第1の格納ブロックの先頭アドレスから昇順に前記第1のファイルデータを順に記録するためのアドレスを決定し、
前記第1の格納ブロックに記録された前記第1のファイルデータに対応する前記第2のファイルデータを更新又は追加する際は、該第2のファイルデータの更新又は追加部分に相当するクラスタデータを前記第2の格納ブロック内の最も低アドレスを持つ未使用クラスタ領域に記録するためのアドレスを決定する、格納アドレス決定処理部と、
前記第2の格納ブロック内のデータ更新又は追加に基づいて、前記第2のファイルデータのクラスタ間結合の情報を更新する、リンク移動処理部と、
前記格納アドレス処理部、及び、リンク移動処理部にしたがって、前記情報記録装置に前記第1のファイルデータ、及び前記第2のファイルデータの記録を指示する情報記憶モジュールアクセス部と、
を備えるアクセス装置。 - 前記格納アドレス決定処理部は、
前記情報記録装置に対するデータの書き込み処理が、前記第1のファイルへのデータ追記処理およびデータ上書き処理のいずれの処理であっても、
前記第1格納ブロック内の先頭から順に所定書き込みサイズの倍数長単位で書き込んだ場合における最終書き込み位置の次のアドレスを前記第1のファイルのデータ書き込み開始位置とし、
前記情報記録装置に対するデータの書き込み処理が、前記第2のファイルへのデータ追記処理およびデータ上書き処理のいずれの処理であっても、
前記第2格納ブロック内の先頭から順に所定書き込みサイズの倍数長単位で書き込んだ場合における最終書き込み位置の次のアドレスを前記第2のファイルのデータ書き込み開始位置とする、
請求項1に記載のアクセス装置。 - 前記情報記憶モジュールアクセス部は、
前記第1の格納ブロックおよび/または前記第2の格納ブロックのファイルデータのクラスタ間結合の情報の記録を前記情報記録装置に指示する、
請求項1または2に記載のアクセス装置。 - 前記所定書き込みサイズ未満の書き込みが発生する場合、同一所定書き込みサイズ単位内に含まれるデータを読み出して、書き込み対象の新データと結合し、前記所定書き込みサイズ倍数長のデータを生成した後、生成したデータを前記情報記録装置に書き込むよう制御するファイルシステム制御部を、さらに備える、
請求項1から3のいずれかに記載のアクセス装置。 - 前記第1のファイルは、コンテンツ本体を格納したファイルであり、
前記第2のファイルは、コンテンツの付加情報を格納したファイルである、
請求項1から4のいずれかに記載のアクセス装置。 - 前記所定書き込みサイズは、前記情報記録装置に含まれる不揮発性メモリの物理的なデータ記録処理単位サイズの倍数長である、
請求項1から5のいずれかに記載のアクセス装置。 - 前記所定ブロックサイズは、前記情報記録装置に含まれる不揮発性メモリの物理的なデータ消去処理単位サイズの倍数長である、
請求項1から6のいずれかに記載のアクセス装置。 - アクセス装置と通信することができるように接続されており、前記アクセス装置の指示に従ってデータの書き込みおよび/または読み出しを行う情報記録装置であって、
データを格納する不揮発性メモリと、
前記不揮発性メモリ内に第1の一時ブロック領域および第2の一時ブロック領域を設定し、
前記アクセス装置から指定される第1のファイルのデータを格納する第1格納ブロックの位置情報と、前記アクセス装置から指定される第2のファイルのデータを格納する第2格納ブロックの位置情報とを格納するアドレス管理情報に基づき、前記第1格納ブロックにデータが記録されると認識した場合、前記不揮発性メモリ内の第1の一時ブロック領域にデータが格納されるように制御し、
前記アドレス管理情報に基づき前記第2格納ブロックにデータが記録されると認識した場合、前記不揮発性メモリ内の第2の一時ブロック領域にデータが格納されるように制御する記録ブロック管理制御部と、
を備える情報記録装置。 - 前記記録ブロック管理制御部は、
前記アクセス装置がデータ記録に先立ち予め通知する前記第1格納ブロックおよび/または前記第2格納ブロックの位置情報に基づいて、前記アドレス管理情報を設定する、
請求項8に記載の情報記録装置。 - 前記記録ブロック管理制御部は、
前記アクセス装置からの前記第1の格納ブロックおよび/または前記第2の格納ブロックの位置情報の通知に基づき、任意の空きブロックを取得し、取得した空きブロックを、前記第1の一時ブロック領域および/または前記第2の一時ブロック領域に割り当てる、
請求項8または9に記載の情報記録装置。 - データを格納する不揮発性メモリを備える情報記録装置を制御するコントローラであって、
前記不揮発性メモリ内に第1の一時ブロック領域および第2の一時ブロック領域を設定し、
外部のアクセス装置から指定される第1のファイルのデータを格納する第1格納ブロックの位置情報と、前記アクセス装置から指定される第2のファイルのデータを格納する第2格納ブロックの位置情報とを格納するアドレス管理情報を参照し、
前記第1格納ブロックにデータが記録されると認識した場合、前記不揮発性メモリ内の第1の一時ブロック領域にデータが格納されるように制御し、
前記第2格納ブロックにデータが記録されると認識した場合、前記不揮発性メモリ内の第2の一時ブロック領域にデータを格納されるように制御する記録ブロック管理制御部、
を備えるコントローラ。 - 請求項1から7のいずれかに記載のアクセス装置と、
請求項8から10のいずれかに記載の情報記録装置と、
を備えるリアルタイム情報記録システム。 - データを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置で用いられるメモリアクセス方法あって、
前記情報記録装置内のデータ格納領域を、所定ブロックサイズのブロック単位で区切って管理するとともに、第1のファイルのデータを格納する第1の格納ブロックと、該第1のファイルを管理する第2のファイルのデータを格納する第2の格納ブロックと、を設定し、
前記第1の格納ブロックには、該第1の格納ブロックの先頭アドレスから昇順に前記第1のファイルデータを順に記録するためのアドレスを決定し、
前記第1の格納ブロックに記録された前記第1のファイルデータに対応する前記第2のファイルデータを更新又は追加する際は、該第2のファイルデータの更新又は追加部分に相当するクラスタデータを前記第2の格納ブロック内の最も低アドレスを持つ未使用クラスタ領域に記録するためのアドレスを決定する、格納アドレス決定処理ステップと、
前記第2の格納ブロック内のデータ更新又は追加に基づいて、前記第2のファイルデータのクラスタ間結合の情報を更新する、リンク移動処理ステップと、
前記格納アドレス処理ステップ、及び、リンク移動処理ステップでの処理結果にしたがって、前記情報記録装置に前記第1のファイルデータ、及び前記第2のファイルデータの記録を指示する情報記憶モジュールアクセスステップと、
を備えるアクセス方法。 - データを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置で用いられるメモリアクセス方法をコンピュータに実行させるプログラムであって、
前記情報記録装置内のデータ格納領域を、所定ブロックサイズのブロック単位で区切って管理するとともに、第1のファイルのデータを格納する第1の格納ブロックと、該第1のファイルを管理する第2のファイルのデータを格納する第2の格納ブロックと、を設定し、
前記第1の格納ブロックには、該第1の格納ブロックの先頭アドレスから昇順に前記第1のファイルデータを順に記録するためのアドレスを決定し、
前記第1の格納ブロックに記録された前記第1のファイルデータに対応する前記第2のファイルデータを更新又は追加する際は、該第2のファイルデータの更新又は追加部分に相当するクラスタデータを前記第2の格納ブロック内の最も低アドレスを持つ未使用クラスタ領域に記録するためのアドレスを決定する、格納アドレス決定処理ステップと、
前記第2の格納ブロック内のデータ更新又は追加に基づいて、前記第2のファイルデータのクラスタ間結合の情報を更新する、リンク移動処理ステップと、
前記格納アドレス処理ステップ、及び、リンク移動処理ステップでの処理結果にしたがって、前記情報記録装置に前記第1のファイルデータ、及び前記第2のファイルデータの記録を指示する情報記憶モジュールアクセスステップと、
を備えるアクセス方法をコンピュータに実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/254,911 US8977802B2 (en) | 2009-11-11 | 2010-10-19 | Access device, information recording device, controller, real time information recording system, access method, and program |
JP2011540396A JP5481493B2 (ja) | 2009-11-11 | 2010-10-19 | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-257856 | 2009-11-11 | ||
JP2009257856 | 2009-11-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011058700A1 true WO2011058700A1 (ja) | 2011-05-19 |
Family
ID=43991374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/006192 WO2011058700A1 (ja) | 2009-11-11 | 2010-10-19 | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8977802B2 (ja) |
JP (1) | JP5481493B2 (ja) |
WO (1) | WO2011058700A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013037612A (ja) * | 2011-08-10 | 2013-02-21 | Jvc Kenwood Corp | 記録装置及び記録方法 |
JP2014044490A (ja) * | 2012-08-24 | 2014-03-13 | Toshiba Corp | ホスト装置及びメモリデバイス |
WO2014166409A1 (en) * | 2013-04-11 | 2014-10-16 | International Business Machines Corporation | Migrating data across storages with dissimilar allocation sizes |
CN112023377A (zh) * | 2020-09-14 | 2020-12-04 | 成都拟合未来科技有限公司 | 一种健身练习实时互动方法、系统、终端及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209305B2 (en) * | 2006-04-19 | 2012-06-26 | Microsoft Corporation | Incremental update scheme for hyperlink database |
JP5917163B2 (ja) * | 2011-01-27 | 2016-05-11 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム並びに記憶媒体 |
US9213645B2 (en) * | 2011-12-29 | 2015-12-15 | Sandisk Technologies Inc. | Command aware partial page programming |
TWI454912B (zh) * | 2012-01-06 | 2014-10-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
CN103823633A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 小文件管理电路 |
US9848120B2 (en) * | 2015-05-08 | 2017-12-19 | Fast Model Technology Llc | System and method for preserving video clips from a handheld device |
KR101758331B1 (ko) * | 2015-12-22 | 2017-07-31 | 성균관대학교산학협력단 | 비휘발성 메모리 기반의 파일 기록 장치 및 그 방법 |
KR102094786B1 (ko) * | 2017-11-28 | 2020-03-31 | 지인정보기술 주식회사 | 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
WO2009107393A1 (ja) * | 2008-02-29 | 2009-09-03 | パナソニック株式会社 | アクセス装置、情報記録装置、コントローラ、及び情報記録システム |
JP2009205591A (ja) * | 2008-02-29 | 2009-09-10 | Panasonic Corp | アクセスモジュール、情報記録モジュール、及び情報記録システム |
JP2009205590A (ja) * | 2008-02-29 | 2009-09-10 | Panasonic Corp | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム |
WO2009122743A1 (ja) * | 2008-04-04 | 2009-10-08 | パナソニック株式会社 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
JP2009231900A (ja) * | 2008-03-19 | 2009-10-08 | Canon Inc | 撮像装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69223099T2 (de) | 1991-08-09 | 1998-06-10 | Toshiba Ave Kk | Aufzeichnungsgerät für eine Speicherkarte |
JPH0546459A (ja) | 1991-08-09 | 1993-02-26 | Toshiba Corp | メモリカード装置 |
JPH06266587A (ja) | 1993-03-16 | 1994-09-22 | Nec Corp | フラッシュメモリのファイル管理方式 |
JP4135049B2 (ja) | 1999-03-25 | 2008-08-20 | ソニー株式会社 | 不揮発性メモリ |
JP4443705B2 (ja) | 2000-01-21 | 2010-03-31 | パナソニック株式会社 | データファイリングシステム及びデータファイリング方法 |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4009840B2 (ja) | 2002-06-27 | 2007-11-21 | ソニー株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
WO2005043394A1 (ja) | 2003-10-31 | 2005-05-12 | Matsushita Electric Industrial Co., Ltd. | 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 |
WO2005055064A1 (ja) | 2003-12-03 | 2005-06-16 | Matsushita Electric Industrial Co., Ltd. | 情報記録媒体のデータ処理装置及びデータ記録方法 |
WO2005124530A2 (en) | 2004-06-21 | 2005-12-29 | Kabushiki Kaisha Toshiba | Method for controlling memory card and method for controlling nonvolatile semiconductor memory |
JP2006164017A (ja) | 2004-12-09 | 2006-06-22 | Sony Corp | 情報処理装置、情報処理方法、プログラム |
JP2007012124A (ja) | 2005-06-29 | 2007-01-18 | Victor Co Of Japan Ltd | 再生装置 |
JP2008003932A (ja) * | 2006-06-23 | 2008-01-10 | Sony Corp | データ記憶装置、データ記憶方法およびコンピュータプログラム |
JP4991320B2 (ja) | 2007-01-12 | 2012-08-01 | 株式会社東芝 | ホスト装置およびメモリシステム |
US8572307B2 (en) | 2007-07-20 | 2013-10-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
JP2009134513A (ja) | 2007-11-30 | 2009-06-18 | Panasonic Corp | メモリコントローラ、不揮発性記憶モジュール、アクセスモジュール、及び不揮発性記憶システム |
JP4471007B2 (ja) | 2008-02-05 | 2010-06-02 | ソニー株式会社 | 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体 |
-
2010
- 2010-10-19 JP JP2011540396A patent/JP5481493B2/ja active Active
- 2010-10-19 WO PCT/JP2010/006192 patent/WO2011058700A1/ja active Application Filing
- 2010-10-19 US US13/254,911 patent/US8977802B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
WO2009107393A1 (ja) * | 2008-02-29 | 2009-09-03 | パナソニック株式会社 | アクセス装置、情報記録装置、コントローラ、及び情報記録システム |
JP2009205591A (ja) * | 2008-02-29 | 2009-09-10 | Panasonic Corp | アクセスモジュール、情報記録モジュール、及び情報記録システム |
JP2009205590A (ja) * | 2008-02-29 | 2009-09-10 | Panasonic Corp | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム |
JP2009231900A (ja) * | 2008-03-19 | 2009-10-08 | Canon Inc | 撮像装置 |
WO2009122743A1 (ja) * | 2008-04-04 | 2009-10-08 | パナソニック株式会社 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013037612A (ja) * | 2011-08-10 | 2013-02-21 | Jvc Kenwood Corp | 記録装置及び記録方法 |
JP2014044490A (ja) * | 2012-08-24 | 2014-03-13 | Toshiba Corp | ホスト装置及びメモリデバイス |
WO2014166409A1 (en) * | 2013-04-11 | 2014-10-16 | International Business Machines Corporation | Migrating data across storages with dissimilar allocation sizes |
CN105122219A (zh) * | 2013-04-11 | 2015-12-02 | 国际商业机器公司 | 跨具有不同分配尺寸的存储器迁移数据 |
CN112023377A (zh) * | 2020-09-14 | 2020-12-04 | 成都拟合未来科技有限公司 | 一种健身练习实时互动方法、系统、终端及介质 |
CN112023377B (zh) * | 2020-09-14 | 2021-11-09 | 成都拟合未来科技有限公司 | 一种健身练习实时互动方法、系统、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20110320692A1 (en) | 2011-12-29 |
US8977802B2 (en) | 2015-03-10 |
JPWO2011058700A1 (ja) | 2013-03-28 |
JP5481493B2 (ja) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5481493B2 (ja) | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム | |
JP5485163B2 (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JP5577238B2 (ja) | アクセス装置、情報記録装置、コントローラ、及び情報記録システム | |
US11573701B2 (en) | Memory device and host device | |
JP4287433B2 (ja) | ファイル記録装置 | |
KR100951107B1 (ko) | 최적의 성능을 위한 파일 관리 방법 | |
JP5129156B2 (ja) | アクセス装置、および、ライトワンス記録システム | |
JP5400875B2 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
US20140149711A1 (en) | Storage system and storage control method that compress and store data elements | |
JP4691209B2 (ja) | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム | |
JP2006277737A (ja) | アドレス予測機能をもつ不揮発性記憶装置 | |
US9778857B2 (en) | Recording device, access device, recording system, and recording method | |
JP5362594B2 (ja) | アクセス装置、及び残容量算出方法 | |
WO2011121870A1 (ja) | データ記録装置、及びデータ記録方法 | |
JP4608434B2 (ja) | 情報記録媒体のデータ処理装置及びデータ記録方法 | |
WO2010001606A1 (ja) | コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法 | |
US8200936B2 (en) | Systems and methods for recording information to a memory card | |
JP2009205591A (ja) | アクセスモジュール、情報記録モジュール、及び情報記録システム | |
WO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム | |
JP2011133947A (ja) | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム | |
JP2009205590A (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JP2007310533A (ja) | 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 | |
JP2006178632A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2008152414A (ja) | ライトワンス型情報記録装置、コントローラ、アクセス装置、及びライトワンス型情報記録システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10829668 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011540396 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13254911 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10829668 Country of ref document: EP Kind code of ref document: A1 |