WO2007135967A1 - データ記憶装置およびデータ記憶方法 - Google Patents

データ記憶装置およびデータ記憶方法 Download PDF

Info

Publication number
WO2007135967A1
WO2007135967A1 PCT/JP2007/060179 JP2007060179W WO2007135967A1 WO 2007135967 A1 WO2007135967 A1 WO 2007135967A1 JP 2007060179 W JP2007060179 W JP 2007060179W WO 2007135967 A1 WO2007135967 A1 WO 2007135967A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
management information
storage device
area
data storage
Prior art date
Application number
PCT/JP2007/060179
Other languages
English (en)
French (fr)
Inventor
Tadashi Arakawa
Original Assignee
Buffalo Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Buffalo Inc. filed Critical Buffalo Inc.
Priority to CN200780018136.3A priority Critical patent/CN101449248B/zh
Priority to EP07743614A priority patent/EP2031514A4/en
Priority to US12/300,789 priority patent/US8364730B2/en
Publication of WO2007135967A1 publication Critical patent/WO2007135967A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Definitions

  • the present invention relates to a technique for recording data transferred from a host device in a data storage device.
  • a file system called FAT is generally used as a file system applied to these data storage devices.
  • FAT file system a management area called a file allocation table is secured in the data storage device in order to manage the location of recorded data.
  • management information called a cluster chain indicating the structure and recording position of each file to be managed is recorded. Since the file allocation table is very important information, two file allocation tables with the same contents are generally reserved in the data storage device. Therefore, even if one of the file allocation tables is damaged, it becomes possible to read and write data normally by using the other file allocation table (Japanese Patent Laid-Open No.
  • the problem to be solved by the present invention is to improve data writing efficiency in a data storage device that records a plurality of pieces of management information having the same contents. Based on the above problems, a data storage device which is one embodiment of the present invention is provided.
  • a data storage device for storing data transferred from a host device, having a data area in which the data is recorded, first management information for managing the data, and contents similar to the management information
  • a storage device having a management area in which second management information is recorded;
  • the data storage device having the above configuration when one management information of the first management information and the second management information having the same contents is received from the host device, the reception of the other management information is not waited for.
  • the management information is recorded in the management area of the storage device as first management information and second management information.
  • the management information recording unit when the management information recording unit receives the other management information, the management information recording unit does not record the management information in the management area, and indicates that the recording is completed. Means for notifying the host device may be provided. According to such a configuration, it is possible to immediately respond to the host device that the second management information has been written. As a result, the host device is immediately released from the management information writing process, and can immediately start another process (for example, data writing).
  • the management information recording unit may record the first management information and the second management information at consecutive positions in the management area. With such a configuration, it is possible to easily write two pieces of management information together in a storage device by one writing process. As a result, write efficiency can be improved.
  • the data storage device includes a plurality of the storage devices, and the management information recording unit records the first management information in a single storage device, and the second storage device The management information may be recorded in another storage device.
  • the management information recording unit records the first management information in a single storage device, and the second storage device The management information may be recorded in another storage device.
  • the data recording unit may record the data in a distributed manner in each storage device. According to such a configuration, data received from the host device can be distributed to a plurality of storage devices and simultaneously recorded in parallel. Therefore, the write efficiency can be further improved. In the data storage device having the above configuration, the data recording unit may record the data in one storage device and record correction data for correcting the data in another storage device. W
  • the data recording unit may record ECC data obtained by Hamming encoding the data as the correction data. According to such a configuration, error checking and error correction can be performed using ECC data when reading data. In the data storage device configured as described above, the data recording unit may record data having the same content as the data as the correction data. According to such a configuration, it is possible to easily check errors only by comparing the data to be read with the correction data. Even if an error occurs in one of the data, normal data can be read by using the data on the side where no error has occurred.
  • the management information may be data recorded in a file allocation table in a FAT file system.
  • file writing efficiency is improved in a FAT file system that uses two file allocation tables as standard.
  • the storage device may be a non-volatile semiconductor memory. According to such a configuration, a small data storage device excellent in portability can be provided.
  • the nonvolatile semiconductor memory for example, NAND type or NOR type flash memory, EEPROM, or DRAM backed up can be used.
  • a hard disk drive can be adopted as the storage device.
  • the host device and the data storage device may be connected by a USB interface.
  • the data storage device of the present invention can be easily used by simply connecting the data storage device of the present invention to a USB port prepared in a host device such as a computer. Therefore, user convenience can be improved.
  • the PCMC IA interface is connected via a serial ATA interface, IEEE 1394 interface, various memory interfaces used in SD memory cards and CompactFlash (registered trademark), etc. It is good also as what is done.
  • the present invention can also be configured as a data storage method in which the data storage device stores data transferred from the host device.
  • FIG. 1 is an explanatory diagram showing a schematic configuration of a data storage device as a first embodiment.
  • FIG. 2 is an explanatory diagram showing the data structure of the data storage device.
  • FIG. 3 is an explanatory diagram showing the correspondence between the FAT 1 and 2 areas and the FAT 3 area and the outline of the read / write operation for the FAT 3 area.
  • FIG. 4 is an explanatory diagram showing an outline of the operation of the data storage device together with the operation of the host device.
  • FIG. 5 is a flowchart of the main process.
  • FIG. 6 is a flowchart of the pointer setting process.
  • FIG. 7 is a flowchart of the rice processing.
  • FIG. 8 is a flowchart of the read process.
  • FIG. 9 is an explanatory diagram showing a schematic configuration of a data storage device according to the second embodiment.
  • FIG. 10 is an explanatory diagram showing a data structure in the second embodiment.
  • FIG. 11 is an explanatory diagram showing a data structure in the third embodiment.
  • FIG. 1 is an explanatory diagram showing a schematic configuration of a data storage device 10 as the first embodiment.
  • the data storage device 10 of the present embodiment is configured by a USB connector 110, a USB control circuit 120, a flash controller 130, and a flash memory FL.
  • the USB connector 110 is exposed from the housing of the data storage device 10 (broken line portion in the figure), and is connected to the USB interface provided in a host device such as a personal computer or a printer.
  • the USB control circuit 120 is connected to the US B connector 110 and the flash controller 130.
  • the USB control circuit 120 is a circuit that operates the data storage device 10 as a USB mass storage class device, and is a circuit that controls communication with the host device based on the USB protocol.
  • the USB control circuit 120 further has a function of converting a US B command received from the host device into an ATA command, and converting data and status received from the flash controller 130 into US B data.
  • the ATA command is a command standardized by AN SI (American National Standard Institute).
  • various data storage such as a hard disk and a PC card type memory is possible.
  • the flash controller 130 is an integrated circuit that interprets the ATA command transferred from the USB control circuit 120 and controls reading / writing of data from / to the flash memory FL.
  • the flash controller 130 includes a CPU, ROM, RAM, and the like in order to perform such control.
  • ROM a program for controlling the operation of the data storage device 10 is recorded.
  • the CPU controls the overall operation of the data storage device 10 by executing this program while using RAM as a work area.
  • the flash controller 130 includes a register 1 35, and various address pointers are stored in the register 1 35.
  • the flash controller 130 has a function of performing an address conversion of the FAT area, which will be described later, by referring to the address pointer, and efficiently reading and writing the FAT area. Details of this function will be described later. FIG.
  • FIG. 2 is an explanatory diagram showing the data structure of the data storage device 10.
  • each area as shown on the left side of the figure is generated by the format process based on the FAT file system from the host device.
  • the master boot record area hereinafter referred to as the “MBR area”
  • the bioparameter block area hereinafter referred to as the ⁇ area
  • FAT 1 area FAT 2 An area
  • FAT 2 An area FAT 1 area
  • FAT 2 An area a root directory area
  • a user data area are created.
  • the MBR area is the area that is read first when the host device is connected.
  • the Information such as bootstrap code and partition table (hereinafter referred to as “MBR information”) is recorded in this area.
  • the partition table records information such as the number of partitions created, the start and end sectors of each partition, the offset, and the total number of sectors. In this example, it is assumed that only one partition is created.
  • the BPB area is recorded in the first sector of each partition, and information such as the partition format, the number of sectors, and the number of FATs (hereinafter referred to as “BPB information”) is recorded.
  • management information representing the location of each file recorded in the user data area and the connection state of clusters constituting the file is recorded. Such management information is usually called cluster information.
  • cluster information is usually called cluster information.
  • the same management information is recorded in the FAT 1 area and FAT 2 area in order to improve data reliability.
  • the file name, extension, and attributes of the file recorded in the user data area and the first cluster number constituting the file are recorded.
  • the data storage device 10 performs address conversion on the FAT 1 area and the FAT 2 area among the areas described above by the action of the flash controller 1 30, and these areas are combined into the FAT 3 area as shown on the right side of the figure. Manage as an area.
  • the host device recognizes each area as described above by the address map as shown on the left side of FIG. 2, and actually the address as shown on the side of the figure.
  • Each area is secured in the reflash memory FL by the Les Map.
  • the FAT 1 area, FAT 2 area, and FAT 3 area may be collectively referred to as “FAT area”.
  • the flash controller 130 uses the address pointers AP1 to AP3 shown in FIG. 2 when performing address conversion of the FAT area. These address pointers are stored in register 1 35 in flash controller 1 30.
  • the address pointer AP 1 indicates the start address Ac of the FAT 1 area
  • the address pointer AP 2 indicates the start address Ad of the FAT 2 area.
  • the address pointer AP3 indicates the head address Ae of the root directory area.
  • the flash controller 1 30 refers to these address pointers, and when the access destination from the host device is the FAT 1 area or the FAT 2 area, performs address conversion, and converts the FAT 3 in the flash memory FL. Read and write to the area.
  • FIG. 3 is an explanatory diagram showing the correspondence between the FAT 1 and 2 areas and the FAT 3 area and the outline of the read / write operation for the FAT 3 area.
  • the left side of the figure shows the FAT 1 area and the FAT 2 area as seen from the host device, and the right side of the figure shows the FAT 3 area as seen from the flash controller 130.
  • one piece of management information which is a unit of FAT area recording, is represented as “# 1 j, ⁇ # 2”, and management information written to the FAT 1 area is represented as “FAT 1 # 1 J”.
  • management information about the FAT 1 area is recorded in order from address A c to address A d-1 from the host device. And accessed. Also, the management information about the FAT 2 area is accessed as being recorded in order from the address A d to the address A e 11.
  • the flash controller 130 alternately arranges management information about the FAT 1 area and management information about the FAT 2 area with respect to the FAT 3 area as shown on the right side of FIG. In other words, the flash controller 1 30 performs address conversion according to the following formula (1) when the FAT 1 area is accessed, and when the FAT 2 area is accessed, the following formula (2) Perform address translation according to. However, in the following formula, the address accessed from the host device is represented as AD1, and the converted address is represented as AD2.
  • AD 2 AP 1 +2 * (AD 1—AP 1) (1)
  • the flash controller 1 30 is, for example, “FAT 1 # from the host device to the FAT 1 area shown on the left side of When the management information writing instruction “1” is received, this management information is written to the address converted by the above formula (1) in the FAT 3 area shown on the right side of FIG. Further, management information having the same contents as this management information is written as FAT 2 area management information (FAT 2 # 1) to the next address adjacent to the address. As described above, in the FAT file system, the same management information is normally written in the FAT 1 area and the FAT 2 area.
  • management information about FAT 1 and management information about FAT 2 are written in a continuous address, so that management information can be written at high speed.
  • FIG. 4 is an explanatory diagram showing an outline of the operation of the data storage device 10 together with the operation of the host device.
  • the host device In order for the host device to write a file to the data storage device 10, roughly, (a) write management information to the FAT 1 area, (b) write management information to the FAT 2 area, (c ) The procedure of writing a file entity to the user data area is executed.
  • Figure 4 shows this sequence.
  • the host device first instructs the data storage device 10 to write management information of the file to be written to the FA area 1 (step S 100). Management information is transmitted from the host device to the data storage device 10 at the same time as this instruction.
  • the flash controller 1 30 of the data storage device 10 Upon receiving the above instruction and management information, the flash controller 1 30 of the data storage device 10 writes the management information to the address in the FAT3 area corresponding to the address in the designated FAT 1 area, and then continuously. Information that copies the management information is written to the address (step S 1 1 0).
  • step S 110 A specific example of the process in step S 110 will be described with reference to FIG. Assuming that the host device is instructed to write the information shown as “FAT 1 # 1 J” as the management information to the address Ac in the FAT 1 area, the data storage device 10 will have the FAT 3 corresponding to that address. Write “FAT 1 # 1” to address A c in the area. Further, information having the same contents as the information is written as “F AT 2 # 1” in the next address A c + 1.
  • F AT 2 # 1 is information that is originally written at the start address Ad of the FAT 2 area. Therefore, the management information written to the FAT 1 area and FAT 2 area is put together in the FAT 3 area at the same time. Will be written. In other words, the FAT file system uses the fact that the same data is recorded in the FAT 1 area and the FAT 2 area. When the management information is written, the management information for the FAT 2 area is written together without waiting for an instruction from the host device.
  • the flash controller 1 30 When writing to the FAT 3 area is completed (step S 1 1 5), the flash controller 1 30 returns a write completion notification indicating that writing to the FAT 1 area is completed to the host device (step S 1). 1 20).
  • the host device receives the write completion notification from the flash controller 130, it subsequently sends a management information write instruction to the FAT 2 area (step S1 30). However, as described above, at this time, the management information has already been written to the FAT 2 area in step S 110. Therefore, when the flash controller 130 receives this write instruction, it immediately returns a write completion notification to the host device (step S 140).
  • the host device instructs the flash controller 130 to write the file entity (step S 150).
  • the flash controller 130 writes such a file in the user data area in the flash memory FL (step S 1 60).
  • the flash controller 1 30 sends a write completion notification indicating that the file writing is completed to the host device (step S 1 70).
  • the data storage device 10 of this embodiment performs writing to the FAT 2 area simultaneously with writing to the FAT 1 area. Therefore, even if the host device issues a FAT 2 area write instruction, a notification that writing has been completed can be sent back immediately. As a result, the host device is quickly released from the writing process to the FAT 2 area, and can immediately start writing the next data.
  • the user data area is written after the FAT 1 area and the FAT 2 area are written, but these may be performed in the reverse order.
  • FIG. 5 is a flowchart of main processing executed by the data storage device 10. This process is a process in which the flash controller 130 starts executing at the same time when the data storage device 10 is connected to the host device and power is supplied. When this process is started, the flash controller 130 first performs a pointer setting process for setting the values of the address pointers AP1 to AP3 (step S200). Details of this pointer setting processing will be described later. Subsequently, the flash controller 130 determines whether any command is received from the host device via the USB control circuit 120 (step S 21 0).
  • step S210: No If a command has not been received (step S210: No), this process is looped until the command is received. On the other hand, when a command is received (step S210: Yes), the type of the command is determined (step S220). If it is determined in step S220 that the received command is a write command for writing data (step S220: “write”), the flash controller 130 can perform write processing described later. (Step S 230). On the other hand, if it is determined that the received command is a read command for reading data (Step S 220: “Read”), a read process described later is performed (Step S 220).
  • step S 240 the process returns to step S 210.
  • the process according to the command received from the host device is performed until the power supply is stopped.
  • FIG. 6 is a flowchart of the pointer setting process executed in step S200 of the main process described above.
  • This process is a process for setting the values of address pointers AP 1 to AP 3 shown in FIG. 2 and FIG. 3 when the data storage device 10 is turned on and when the format is completed.
  • the flash controller 130 reads the MBR area and the BPB area of the flash memory FL (step S300). Then, it is determined whether MBR information and BP B information have already been written in these areas (step S 3 1 0). If it is determined in step S 3 10 above that the MBR information and BPB information have not been written (step S 3 10: No), the data storage device 10 has not yet been formatted. It will be.
  • the flash controller 1 30 sets the values of the address pointers AP 1 to AP 3 as follows.
  • the value of the address pointer AP 1 is set as the final address A z of the flash memory FL, and the address pointers AP 2 and AP 3 are not set (step S 320).
  • the host device can normally use the data storage device 10 even by a file system other than the FAT file system.
  • step S320 when the value of the address pointer AP1 is set, the flash controller 130 records the value in the register 135 (step S330) and ends the pointer setting process.
  • step S 3 10 If it is determined in step S 3 10 above that the MBR information and the BP B information have already been written (step S 31 0: Yes), the data storage device 10 is It has already been formatted. Therefore, the flash controller 130 obtains the first address Ac of the FAT 1 area based on information such as the partition table and the number of sectors recorded in the MBR area and the BPB area, and uses this as the value of the address pointer AP 1. (Step S 34 0). Similarly, the flash controller 130 obtains the start address Ad of the FAT 2 area and sets this value as the address pointer AP 2 (step S 350). Further, the flash controller 130 obtains the head address A e of the root directory area, and sets this as the value of the address pointer AP 3 (step S 360). Finally, the flash controller 130 records the values of the address pointers AP1 to AP3 set in this way in the register 135 (step S330), and ends the process.
  • FIG. 7 is a flowchart of the write process executed in step S 230 of the main process described above.
  • This write process is a process for writing data received from the host device (hereinafter referred to as “write data”) to the flash memory FL.
  • the flash controller 130 When this process is executed, the flash controller 130 first analyzes the write command received from the host device via the USB control circuit 120 and analyzes the write destination address (hereinafter “write”). Address WA) (step S 400). Subsequently, the flash controller 1 30 refers to register 1 35 and It is determined whether the toad WA is an address lower than the address indicated by the address pointer AP 1 (step S 41 0). As a result of this determination, if the write address WA is an address lower than the address indicated by the address pointer AP 1 (Step S 4100: Yes), the command received from the host device is accompanied by the format process.
  • write write destination address
  • the flash controller 130 writes the write data as it is to the write address WA of the flash memory FL without performing any address conversion or the like (step S 420).
  • MBR information and BPB information are usually written only once during formatting. Therefore, when data is written to an address lower than the address pointer AP1, the flash controller 130 determines that there is a possibility that a format process has been performed by the host device. The pointer setting process is executed (step S430). By doing so, the address pointers AP 1 to AP 3 can be appropriately set after the formatting is completed. When the pointer setting process is completed, the flash controller 130 sends a write completion notification to the host device (step S440).
  • step S 410 If it is determined in step S 410 above that the write address WA is higher than the address indicated by the address pointer AP 1 (step S 410: No), the flash controller 1 30 Then, referring to the register 1 35, it is determined whether or not the write address WA is higher than the address indicated by the address pointer AP3 (step S450). As a result of this determination, the write address WA is higher than the address indicated by the address pointer AP3. If it is determined that there is a step (step S 45 0: Y es), it can be determined that the write is to the root directory area or user data area (see FIG. 2). Therefore, the flash controller 1 30 writes the write data as it is to the write address WA of the flash memory FL without performing any address conversion or the like (step S 4 60).
  • the flash controller 13 30 sends a writing completion notification to the host device (step S 44 0). If it is determined in step S 4 50 above that the write address WA is lower than the address indicated by the address pointer AP 3 (step S 4 5 0: No), the write address WA is It will indicate either 1 area or FAT 2 area. Therefore, the flash controller 1 3 0 next refers to the register 1 3 5 to determine whether the write address WA is an address lower than the address indicated by the address pointer AP 2 (step S 4 7 0). As a result of this determination, if it is determined that the write address WA is an address lower than the address pointer AP 2 (step S 47 0: Y es), the write address WA indicates that it is in the FAT 1 area.
  • the flash controller 1 3 0 performs address conversion according to the above equation (1) (step S 4 8 0).
  • the flash controller 1 30 writes the received write data as management information to the converted address. Further, the flash controller 1 3 0 writes the same data to the next address following the address (step S 4 90). In this way, management information to be written in the FAT 1 area and FAT 2 area can be written together in the FAT 3 area.
  • the rush controller 130 sends a write completion notification to the host device (step S440).
  • step S 470 If it is determined in step S 470 that the write address WA is higher than the address pointer AP 2 (step S 470: No), the write address WA is an address in the FAT 2 area. Will be shown.
  • the information to be written in the FAT 2 area has already been written in step S490 above. Therefore, in this case, the flash controller 130 does not write anything to the flash memory FL, and sends a write completion notification to the host device as it is (step S440).
  • the line processing described above in areas other than the FAT area, the data transmitted from the host device is written as it is without performing address conversion or the like.
  • data is written to the FAT 3 area by performing a predetermined address conversion only when there is an instruction to write to the FAT 1 area. At this time, since the flash controller 130 collectively writes information to be written to the FAT 2 area into the FAT 3 area, the management information can be efficiently written to the flash memory FL.
  • FIG. 8 is a flowchart of the read process executed in step S240 of the main process described above.
  • This read process is a process for reading data from the flash memory FL in response to a request from the host device.
  • the flash controller 1 30 is connected to the host device. Analyzes the read command received from the device via the USB control circuit 120 and obtains the read destination address (hereinafter referred to as “read address RAJ”) (Step S 500). Referring to register 1 35, it is determined whether read address RA is higher than the address indicated by address pointer AP 1 and lower than the address indicated by address pointer AP 3 (step S 51 0).
  • Step S 51 0: No If the result of this determination is that the read address RA is lower than the address pointer AP 1 or higher than the address pointer AP 3 (step S 51 0: No), the read address RA is FAT Therefore, the flash controller 1 30 reads the data from the read address RA as it is. (Step S520) and transfer the read data to the host device (Step S530) In Step S510 above, the read address RA is higher than the address indicated by the address pointer AP1, and the address pointer AP3 If the address is lower than the address indicated by (step S 51 0: Yes), the read address RA indicates the address in the FAT 1 area or FAT 2 area (see Figure 2).
  • the flash controller 130 determines whether or not the read address RA is higher than the address indicated by the address pointer AP 2 (step S540) As a result of the determination, the read address RA becomes the address pointer AP. If it is determined that the address is lower than 2 (step S 540: No), the read address RA is the address in the FAT 1 area. Become. Therefore, the flash controller 1 30 performs Adoresu converted by the above formula (1) (step S 550), reads data from the converted address (step S 520) . By doing so, the flash controller 130 can appropriately read management information about the FAT 1 area from the FAT 3 area. When the flash controller 1 30 reads data from the FAT3 area, it transfers it to the host device (step S530).
  • step S540 determines whether the read address 8 is higher than the address indicated by the address pointer AP2 (step S540: Yes). If it is determined in step S540 that the read address 8 is higher than the address indicated by the address pointer AP2 (step S540: Yes), the read address RA is in the FAT 2 area. Address. Therefore, the flash controller 130 performs address conversion according to the above equation (2) (step S560), and reads data from the converted address (step S520). By doing so, the flash controller 130 can appropriately read management information about the FAT 2 area from the FAT 3 area. When the flash controller 130 reads data from the FAT 3 area, it transfers it to the host device (step S530). According to the read processing described above, the flash controller 130 can read data from an area other than the FAT area as it is and transfer it to the host. Also, when reading from the FAT 1 area or FAT 2 area, the flash controller 130 reads the management information from the FAT 3 area appropriately by performing address conversion, and Can be transferred to.
  • the data storage device 10 also performs data writing to the FAT 2 area when the host device instructs to write data to the FAT 1 area. Therefore, data on the FAT 2 area from the host device Even if there is an instruction to write, a notification that writing has been completed can be sent back immediately.
  • management information about the FAT 1 area and the FAT 2 area is collectively written in the adjacent addresses in the FAT 3 area in the flash memory FL. Therefore, data can be written efficiently, and the processing speed can be improved.
  • the data storage device 10 of the present embodiment employs a flash memory having a relatively large data write unit as a storage device, so that it is easy to write two adjacent data together in one write operation. Become. As a result, the processing speed can be greatly improved.
  • FIG. 9 is an explanatory diagram showing a schematic configuration of the data storage device 10 b as the second embodiment.
  • the data storage device 1 Ob of this embodiment includes a USB connector 110, a USB control circuit 120, and a flash controller 130, as in the first embodiment.
  • Two flash memories FLa and FLb are provided.
  • FIG. 10 is an explanatory diagram showing the data structure of the data storage device 10 b. The left side of FIG. 10 shows an address map of the data storage device 10 0 b as viewed from the host device.
  • the address maps of two flash memories F and a and FL b are shown together.
  • the addresses forming the address space are (1) flash memory FL a, (2) Assume that flash memory FL b is allocated alternately in this order.
  • the first address of the MBR area exists in the flash memory FL a and the second address exists in the flash memory FL b.
  • the third address is present in the flash memory FLa, and the fourth address is present in the flash memory FLb.
  • the data storage device 10 b can write data to two flash memories in parallel (simultaneously).
  • the data storage device 1 Ob includes two flash memories FL a 'FLI? Since the bus width is substantially doubled, the data can be read and written at high speed if data is written in parallel (simultaneously) as described above.
  • a FAT 1 area is secured on the flash memory FL a side
  • a FAT 2 area is secured on the flash memory FL b side. Therefore, in this embodiment, when there is an instruction to write data to the FAT 1 area from the host device, the flash controller 130 writes the data to the FAT 1 area of the flash memory FL a and the same.
  • the flash memory FLa or the flash memory FLb is appropriately read / written.
  • the same management information is written in two consecutive addresses in the FAT 3 area in step S490 of the write process shown in FIG.
  • the same management information is written in parallel to the FAT 1 area of the memory FL a and the FAT 2 area of the flash memory FL b.
  • the address conversion in step S 550 of the read processing in FIG. 8 the address conversion to the FAT 1 area of the flash memory FL a is performed, and in the address conversion in step S 560, the address to the FAT 2 area of the flash memory FLb is performed. Perform each conversion.
  • FIG. “I 1 is an explanatory diagram showing a data structure of a data storage device I 0 b in the third embodiment.
  • the left side of Fig. 11 shows the address map of the data storage device 1 Ob as seen from the host device.
  • the right side of Figure 1 1 shows two flash memories F An address map of L a and FL b is shown.
  • the same data is written in the flash memory FL a and the flash memory FL b.
  • the FAT area the FAT 1 area is secured in the flash memory FL a and the FAT 2 area is secured in the flash memory FL b as in the second embodiment.
  • the writing efficiency for the FAT area can be improved.
  • the address map viewed from the host side and the address system viewed from the flash controller 130 are the same. Therefore, data can be read and written in areas other than FAT 2 without performing address conversion. As a result, the processing efficiency can be improved.
  • the area shown as "NU LL" is an area where the FAT 2 area should be reserved, and is not an area directly recognized by the host device. Become.
  • this NU LL area can be used as a user data area by performing a predetermined address conversion that links this NU LL area to the user data area.
  • the same data is written to the flash memory FL a and the flash memory FL b.
  • the ECC generated from the data written to the flash memory FL a is stored in the flash memory FL b.
  • Data may be written. With such a configuration, it is possible to easily perform error checking and error correction written to the flash memory FL a based on the ECC data written to the flash memory FL b, so the stored data It becomes possible to improve the reliability of the.
  • the data storage device 10 is provided with a flash memory as a storage device.
  • a flash memory as a storage device.
  • another storage device such as a hard disk drive may be provided.
  • the data storage device 10 is formatted in the FAT format.
  • the format of the format is not limited to this, and may be formatted by another format in which multiple pieces of management information with the same contents are written.
  • the host device and the data storage device 10 are connected by the USB interface, but the interface type is not limited to this.
  • it may be connected by a PCMCIA interface, or may be connected by a serial ATA interface or an IEEE 1394 interface.
  • the data storage location of the flash memory has been described using the term “address”.
  • this term is applied to the type of file system, operating system, and storage device that is applied.
  • “sector”, ⁇ cluster ”,“ block ”, etc. can be read as appropriate.
  • the present invention should not be construed as being limited in any way by the above-described embodiments, modifications, or other embodiments, and the scope of protection of the present invention is of course interpreted in accordance with the claims and the spirit of the present invention. It is.

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 データ記憶装置は、ホスト装置からFAT1領域に対する書き込み指示を受けると、FAT1領域についての管理情報とともに、その管理情報と同一の情報をFAT2領域についての管理情報として連続したアドレスにまとめて記録する。データ記憶装置は、FAT1領域に対する書き込み指示の後に、ホスト装置からFAT2領域に対する書き込み指示を受けると、データの書き込みを行うことなく書き込みが完了した旨をホスト装置に通知する。こうすることで、同一内容の管理情報を複数記録するデータ記憶装置において、データの書き込み効率を向上させることができる。

Description

明細書 データ記憶装置およびデータ記憶方法 技術分野
本発明は、 ホスト装置から転送されたデータをデータ記憶装置に記録する技術 に関する。 背景技術
コンピュータ等のホス卜装置が用いるデータを記憶するためのデータ記憶装置 として、 ハードディスク ドライブやメモリカード、 U S Bフラッシュメモリ等の 種々の記憶装置がある。 これらのデータ記憶装置に適用されるファイルシステム としては、 F A Tと呼ばれるファイルシステムが一般的である。 この F A Tファ ィルシステムでは、 記録したデータの位置を管理するため、 ファイルァロケ一シ ヨンテーブルと呼ばれる管理領域がデータ記憶装置内に確保される。 このフアイ ルアロケーションテーブルには、 管理対象のファイル毎に、 そのファイルの構造 や記録位置を示すクラスタチェーンと呼ばれる管理情報が記録される。 ファイルアロケーションテーブルは非常に重要な情報であるため、 データ記憶 装置には、 一般的に、 同一内容の 2つのファイルアロケーションテーブルが確保 される。 そのため、 一方のファイルアロケーションテーブルが損傷したとしても 、 もう一方のファイルアロケーションテーブルを用いることにより、 正常にデー タの読み書きを行うことが可能になる (特開平 1 1一 2 4 9 9 6 8号参照)。 このようなファイルシステムを採用するデータ記憶装置では、 小さなファイル を多く書き込む場合などには、 その書き込み回数だけファィルァロケーションテ 一ブルを書き換える必要がある。 そのため、 このような場合には、 書き込み効率 が低下することになる。 これに加え、 上述のように複数のファイルァロケーショ ンテーブルが確保されている場合には、 同一内容の情報を複数回書き込む必要が あるため、 更に、 書き込み効率は低下してしまう。 このような問題は、 F A Tフ アイルシステムに限らず、 同一内容の 2以上の管理情報を記録する必要のある他 のファイルシステムを採用するデータ記憶装置にも生じ得る問題である。 発明の開示
このような問題を考慮し、 本発明が解決しょうとする課題は、 同一内容の管理 情報を複数記録するデータ記憶装置において、 データの書き込み効率を向上させ ることにある。 上記課題を踏まえ、 本発明の一態様であるデータ記憶装置は、
ホス卜装置から転送されたデータを記憶するデータ記憶装置であって、 前記データが記録されるデータ領域と、 該データを管理するための第 1の管理 情報と該管理情報と同様の内容を有する第 2の管理情報とが記録される管理領域 とを有する記憶デバイスと、
前記ホスト装置から所定の順序で転送される前記データと前記第 1の管理情報 と前記第 2の管理情報とを個別に受信する受信手段と、
前記受信したデータを前記データ領域に記録するデータ記録手段と、 前記第 1の管理情報および前記第 2の管理情報のうち、 一方の管理情報を前記 ホスト装置から受信した場合に、 他方の管理情報の受信を待つことなく、 前記受 信した管理情報を、 前記第 1の管理情報および前記第 2の管理情報として前記管 理領域に記録する管理情報記録手段とを備える。 上記構成のデータ記憶装置では、 同様の内容を有する第 1の管理情報と第 2の 管理情報とのうち、 一方の管理情報をホスト装置から受信すると、 他方の管理情 報の受信を待つことなく、 その管理情報を第 1の管理情報および第 2の管理情報 として記憶デバイスの管理領域に記録する。 この結果、 データを管理するための 管理情報の記録効率が向上することになリ、 ホス卜装置によるデータの書き込み 効率が全体として向上することになる。 上記構成のデータ記憶装置において、 前記管理情報記録手段は、 前記他方の管 理情報を受信した場合に、 前記管理領域に対して該管理情報の記録を行うことな く、 記録が完了した旨を前記ホス卜装置に通知する手段を備えるものとしてもよ い。 このような構成によれば、 ホスト装置に対して、 即座に 2つ目の管理情報を書 き込んだ旨を応答することができる。 この結果、 ホスト装置は、 管理情報の書込 処理からすぐに解放され、 迅速に他の処理 (例えば、 データの書き込み) を開始 することが可能になる。 上記構成のデータ記憶装置において、 前記管理情報記録手段は、 前記第 1の管 理情報および前記第 2の管理情報を、 前記管理領域内の連続した位置に記録する ものとしてもよい。 このような構成であれば、 2つの管理情報を 1回の書込処理によって記憶デバ イスにまとめて書き込むことが容易に実現可能となる。 この結果、 書き込み効率 を向上させることができる。 上記構成のデータ記憶装置において、 該データ記憶装置は、 前記記憶デバイス を複数備えており、 前記管理情報記録手段は、 前記第 1の管理情報を一の記憶デ バイスに記録し、 前記第 2の管理情報を他の記憶デバイスに記録するものとして もよい。 このような構成であれば、 複数の記憶デバイスに対して、 同一内容の管理情報 を同時に書き込むことが可能になる。 この結果、 書き込み効率を向上させること ができる。 なお、 1つの I Cパッケージの中にフラッシュメモリ等の記憶デバィ スが複数実装されている場合や、 1つだけ実装された記憶デバイスを複数の記憶 デバイスとして認識させられるモードを持つ場合には、 データ記憶装置はその I Cパッケージを 1つだけ備えている場合であっても複数の記憶デバイスを備えて いるといえる。 上記構成のデータ記憶装置において、 前記データ記録手段は、 前記データを前 記各記憶デバィスに分散させて記録するものとしてもよい。 このような構成によれば、 ホスト装置から受信したデータを、 複数の記憶デバ イスに分散させて同時並列的に記録することができる。 そのため、 更に、 書き込 み効率を向上させることができる。 上記構成のデータ記憶装置において、 前記データ記録手段は、 前記データを一 の記憶デバイスに記録し、 該データを補正するための補正データを他の記憶デバ イスに記録するものとしてもよい。 W
5
このような構成によれば、 読み出したデータに対して補正データを用いた補正 を行うことができる。 この結果、 データ読み出し時の信頼性を向上させることが できる。 上記構成のデータ記憶装置において、 前記データ記録手段は、 前記補正データ として、 前記データをハミング符号化して得られた E C Cデータを記録するもの としてもよい。 このような構成によれば、 データの読み込み時に E C Cデータを用いてエラー のチェックや誤り訂正を行うことができる。 上記構成のデータ記憶装置において、 前記データ記録手段は、 前記補正データ として、 前記データと同一内容のデータを記録するものとしてもよい。 このような構成によれば、 読み込み対象のデータと補正データとを比較するだ けで容易にエラーのチェックを行うことができる。 また、 一方のデータにエラー が発生したとしても、 エラーの発生していない側のデータを用いることで、 正常 なデータの読み出しを行うことが可能になる。 上記構成のデータ記憶装置において、 前記管理情報とは、 F A Tファイルシス テムにおけるファイルアロケーションテーブルに記録するデータとすることがで さる。 このような構成であれば、 2つのファイルアロケーションテーブルを標準的に 用いる F A Tファイルシステムにおいて、 ファイルの書き込み効率を向上させる ことができる 上記構成のデータ記憶装置において、 前記記憶デバイスは、 不揮発性の半導体 メモリとすることができる。 このような構成によれば、 携帯性に優れた小型のデータ記憶装置を提供するこ とができる。 不揮発性の半導体メモリとしては、 例えば、 NAN D型や NOR型 の各種フラッシュメモリ、 EEP ROM、 ノくッテリバックアップされた DRAM 等を利用することができる。 なお、 記憶デバイスとしては、 半導体メモリ以外に も、 例えば、 ハードディスク ドライブなどを採用することができる。 上記構成のデータ記憶装置において、 前記ホス卜装置と当該データ記憶装置と は US Bインタフェースによって接続されるものとしてもよい。 このような構成であれば、 コンピュータ等のホスト装置に用意された USBポ 一卜に本発明のデータ記憶装置を接続するだけで、 容易に本発明のデータ記憶装 置を利用することができる。 そのため、 ユーザの利便性を向上させることができ る。 なお、 U S Bインタフェース以外にも、 例えば、 PCMC I Aインタフエ一 スゃシリアル AT Aインタフェース、 I E E E 1 394インタフェース、 S Dメ モリカードやコンパク トフラッシュ (登録商標) 等で使用される各種メモリイン タフエースなどによって接続されるものとしてもよい。 なお、 本発明は、 上述した種々のデータ記憶装置としての構成のほか、 データ 記憶装置がホスト装置から転送されたデータを記憶するデータ記憶方法としても 構成することができる。 図面の簡単な説明
図 1は、 第 1実施例としてのデータ記憶装置の概略構成を示す説明図である。 図 2は、 データ記憶装置のデータ構造を示す説明図である。
図 3は、 FAT 1 , 2領域と FAT 3領域との対応関係および FAT 3領域に 対する読み書き動作の概要を示す説明図である。
図 4は、 データ記憶装置の動作の概要をホスト装置の動作とともに示す説明図 である。
図 5は、 メイン処理のフローチャートである。
図 6は、 ポインタ設定処理のフローチャートである。
図 7は、 ライ卜処理のフローチャートである。
図 8は、 リード処理のフローチャートである。
図 9は、 第 2実施例としてのデータ記憶装置の概略構成を示す説明図である。 図 1 0は、 第 2実施例におけるデータ構造を示す説明図である。
図 1 1は、 第 3実施例におけるデータ構造を示す説明図である。 発明を実施するための最良の形態
以下、 上述した本発明の作用■効果を明らかにするため、 本発明の実施の形態 を実施例に基づき次の順序で説明する。
A. 第 1実施例:
(A 1 ) データ記憶装置の概略構成:
(A2) データ記憶装置の動作概要:
(A3) 各種処理 (メイン処理、 ポインタ設定処理、 ライト Zリード処理) (A4) 効果 B. 第 2実施例:
C. 第 3実施例:
D. 変形例: A. 第 1実施例:
(A 1 ) データ記憶装置の概略構成:
図 1は、 第 1実施例としてのデータ記憶装置 1 0の概略構成を示す説明図であ る。 図示するように、 本実施例のデータ記憶装置 1 0は、 USBコネクタ 1 1 0 と U S B制御回路 1 20とフラッシュコン卜ローラ 1 30とフラッシュメモリ F Lとによって構成されている。
U S Bコネクタ 1 1 0は、 データ記憶装置 1 0の筐体 (図中の破線部分) から 露出して設けられており、 パーソナルコンピュータやプリンタ等のホスト装置に 備えられた U S Bインタフェースに接続される。
U S B制御回路 1 20は、 US Bコネクタ 1 1 0とフラッシュコントローラ 1 30とに接続されている。 U SB制御回路 1 20は、 当該データ記憶装置 1 0を US Bマスストレージクラスのデバイスとして動作させる回路であり、 US Bプ 口卜コルに基づきホスト装置との通信を制御する回路である。 この USB制御回 路 1 20は、 更に、 ホスト装置から受信した US Bコマンドを AT Aコマンドに 変換したり、 フラッシュコントローラ 1 30から受信したデータやステータスを US Bデータに変換する機能を備える。 AT Aコマンドとは、 AN S I (American National Standard Institute) によつて標準化されたコマンドであり、 本実施例 のデータ記憶装置 1 0の他、 ハードディスクや PCカード型メモリ等の種々のデ ータ記憶装置に対してデータの読み書きを制御するための汎用的なコマンドであ る。 フラッシュコントローラ 1 30は、 U SB制御回路 1 20から転送された AT Aコマンドを解釈し、 フラッシュメモリ F Lに対するデータの読み書きを制御す る集積回路である。 フラッシュコントローラ 1 30は、 かかる制御を行うために 、 内部に CPUや ROM、 RAM等を備えている。 この ROMには、 データ記憶 装置 1 0の動作を制御するためのプログラムが記録されている。 CPUは、 RA Mをワークエリアとして用いつつ、 このプログラムを実行することで、 データ記 憶装置 1 0の全般的な動作を制御する。 フラッシュコントローラ 1 30は、 レジスタ 1 35を備えており、 このレジス タ 1 35には、 種々のアドレスポインタが記憶される。 フラッシュコントローラ 1 30は、 このアドレスポインタを参照することで、 後述する FAT領域のアド レス変換を行い、 FAT領域について効率的な読み書きを行う機能を備えている 。 かかる機能の詳細については後述する。 図 2は、 データ記憶装置 1 0のデータ構造を示す説明図である。 データ記憶装 置 1 0は、 ホスト装置からの FATファイルシステムに基づくフォーマツト処理 により、 図の左側に示すような各領域が生成される。 具体的には、 フラッシュメ モリ F Lの先頭アドレスから順に、マスタブートレコード領域(以下、 「MBR領 域」 という)、 バイオスパラメ一タブロック領域 (以下、 ΓΒΡΒ領域」 という) 、 FAT 1領域、 FAT 2領域、 ルートディレク トリ領域、 ユーザデータ領域、 が生成される。 MBR領域は、 ホスト装置が接続された場合に、 最初に読み込まれる領域であ る。 この領域には、 ブートストラップコードやパーティションテーブルなどの情 報 (以下、 「MBR情報」 という) が記録されている。 パーティションテ一ブルに は、 生成されているパーティションの数や、 各パーティションの開始セクタおよ び終了セクタ、 オフセット、 総セクタ数などの情報が記録されている。 本実施例 では、 パーティションは 1つだけ生成されているものとする。
BPB領域は、 各パーティションの先頭セクタに記録されており、 そのパーテ イシヨンのフォーマット形式やセクタ数、 FATの数などの情報(以下、 「BPB 情報」 という) が記録されている。
FAT 1領域および FAT 2領域には、 ユーザデータ領域に記録された各ファ ィルの所在およびそのファイルを構成するクラスタの連結状態を表す管理情報が 記録されている。 このような管理情報は、 通常、 クラスタチ; Lーン情報と呼ばれ る。 FAT 1領域と FAT 2領域とには、 データの信頼性を向上させるため同一 の管理情報が記録される。 ルートディレク トリ領域には、 ユーザデータ領域に記録されたファイルのファ ィル名や拡張子、 属性、 そのファイルを構成する最初のクラスタ番号等が記録さ れている。 データ記憶装置 1 0は、 フラッシュコントローラ 1 30の働きにより上述した 各領域のうち FAT 1領域と FAT 2領域とについてァドレス変換を行い、 図の 右側に示すように、 これらの領域をまとめて FAT 3領域として管理する。 つま リ、 ホスト装置からは、 図 2の左側に示すようなアドレスマップにより上述した 各領域が記録されているように認識され、 実際には、 図のお側に示すようなアド レスマップによリフラッシュメモリ F L内に各領域が確保されていることになる 。 なお、 以下では、 FAT 1領域、 FAT 2領域、 FAT 3領域のことをまとめ て、 「FAT領域」 と記載する場合がある。 フラッシュコントローラ 1 30は、 FAT領域のアドレス変換を行うにあたり 、 図 2に示すアドレスポインタ AP 1〜AP 3を使用する。 これらのアドレスポ インタは、 フラッシュコントローラ 1 30内のレジスタ 1 35に記憶されている 。 図示するように、 アドレスポインタ A P 1は、 F AT 1領域の先頭アドレス A cを示し、 アドレスポインタ A P 2は、 FAT 2領域の先頭アドレス A dを示し ている。 また、 アドレスポインタ A P 3は、 ルートディレクトリ領域の先頭アド レス A eを示している。 フラッシュコントロ一ラ 1 30は、 これらのァドレスポ インタを参照し、 ホスト装置からのアクセス先が FAT 1領域または FAT 2領 域である場合には、 アドレス変換を行って、 フラッシュメモリ F L内の FAT 3 領域に対して読み書きを行う。 図 3は、 FAT 1 , 2領域と FAT 3領域との対応関係および FAT 3領域に 対する読み書き動作の概要を示す説明図である。 図の左側には、 ホスト装置から 見た FAT 1領域および FAT 2領域を示しており、 図の右側には、 フラッシュ コントローラ 1 30から見た FAT 3領域を示している。 ここでは、 FAT領域 の記録単位である一つの管理情報を 「#1 j、 Γ#2」 のように表しており、 F A T 1領域に対して書き込まれる管理情報を 「FAT 1 #1 J のように表している
図 3の左側に示すようにホスト装置からは、 FAT 1領域についての管理情報 は、 ァドレス A cからァドレス A d - 1までの間に順番に記録されているものと してアクセスされる。 また、 FAT 2領域についての管理情報は、 アドレス A d からァドレス A e一 1までの間に順番に記録されているものとしてアクセスされ る。 これに対して、 フラッシュコントローラ 1 30は、 FAT 1領域についての管 理情報と FAT 2領域についての管理情報とを、 図 3の右側に示すように F A T 3領域に対して交互に配置する。 つまり、 フラッシュコントローラ 1 30は、 F AT 1領域に対してアクセスがあった場合には、 下記式 (1 ) によってアドレス 変換を行い、 FAT 2領域に対してアクセスがあった場合には、 下記式 (2) に よってアドレス変換を行う。 ただし、 下記式では、 ホスト装置からアクセスのあ つたァドレスを A D 1、 変換後のァドレスを A D 2として表している。
AD 2=AP 1 +2 * (AD 1—AP 1 ) ( 1 )
AD 2 = AP 1 +2 * (A D 1 - A P 2) + 1 … (2) フラッシュコントローラ 1 30は、 例えば、 ホスト装置から、 図 3の左側に示 す FAT 1領域に対して 「FAT 1 #1」 と示した管理情報の書き込み指示を受 けると、 この管理情報を、 図 3の右側に示す FAT 3領域において、 上記式 (1 ) によってアドレス変換したアドレスに書き込む。 そして、 さらに、 この管理情 報と同一内容の管理情報を、 そのアドレスに隣接した次のアドレスに、 FAT 2 領域の管理情報 (FAT 2#1 ) として書き込む。 上述したように、 FATファ ィルシステムでは、 通常、 FAT 1領域と FAT 2領域とには同一の管理情報が 書き込まれる。 従って、 本実施例では、 FAT 1領域に対する管理情報の書き込 み指示があると、 ホス卜装置から FAT 2領域に対する書き込み指示がなされる 前に、 同一内容の管理情報を FAT 2領域に対して書き込む。 こうすることで、 FAT 2領域に対する書き込み指示を受信するまでもなく、 FAT 1領域および FAT 2領域に対する書き込みが完了する。 そのため、 効率的に FA.T情報の書 き込みを行うことが可能になる。 また、 上述したように、 本実施例では、 FAT 1についての管理情報と FAT 2についての管理情報とを連続したァドレスに書 き込むので、 高速に管理情報の書き込みを行うことが可能になる。 なお、 FAT 3領域に記録された管理情報を読み込む際には、 上記式 (1 ) または (2) に応 じて、 FAT 1または FAT 2の管理情報を読み込む。
(A2) データ記憶装置の動作概要:
図 4は、 データ記憶装置 1 0の動作の概要をホスト装置の動作とともに示す説 明図である。 ホス卜装置がデータ記憶装置 1 0に対してファイルの書き込みを行 うには、 大まかに、 (a) FAT 1領域に対する管理情報の書き込み、 (b) FA T 2領域に対する管理情報の書き込み、 ( c )ユーザデータ領域に対するフアイル 実体の書き込み、 という手順が実行される。 図 4には、 この一連の流れを示して いる。 ホスト装置は、 ファイルの書き込みを行おうとすると、 まず、 書き込みを行う ファイルの管理情報を F A Τ 1領域に書き込むようデータ記憶装置 1 0に指示す る (ステップ S 1 00)。ホスト装置からデータ記憶装置 1 0へは、 この指示と同 時に管理情報が送信される。 データ記憶装置 1 0のフラッシュコントローラ 1 30は、 上記指示および管理 情報を受信すると、 指定された FAT 1領域内のァドレスに対応する FAT3領 域内のアドレスに、 その管理情報を書き込み、 更に、 連続したアドレスに、 その 管理情報をコピーした情報を書き込む (ステップ S 1 1 0)。 上記ステップ S 1 1 0における処理の具体例を、 図 3を参照して説明する。 ホ スト装置から FAT 1領域のアドレス A cに管理情報として、 「FAT 1 #1 Jと 示した情報を書き込むよう指示がなされたとすると、 データ記憶装置 1 0は、 そ のアドレスに対応する FAT 3領域のアドレス A cに、 「FAT 1 #1」を書き込 む。そして、更に、 その情報と同一内容の情報を、次のアドレス A c+ 1に、 「F AT 2# 1」 として書き込む。 「F AT 2# 1」 とは、本来、 FAT 2領域の先頭 アドレス Adに書き込まれる情報であるから、 FAT 3領域には、 FAT 1領域 と F A T 2領域とに書き込む管理情報が、 同時にまとめて書き込まれることとな る。 つまり、 FATファイルシステムでは FAT 1領域と FAT 2領域とに同一 内容のデータが記録されることを利用し、 本実施例のデータ記憶装置 1 0は、 F AT 3領域に対して FAT 1領域についての管理情報を書き込むと、 ホスト装置 からの指示を待つことなく、 FAT 2領域についての管理情報もまとめて書き込 むのである。
FAT 3領域に対する書き込みが完了すると(ステップ S 1 1 5)、フラッシュ コントローラ 1 30は、 ホスト装置に対して、 F A T 1領域への書き込みが終了 した旨を表す書込完了通知を返信する (ステップ S 1 20)。 ホスト装置は、 フラッシュコントローラ 1 30から書込完了通知を受信すると 、 続いて、 FAT 2領域への管理情報の書き込み指示を送信する (ステップ S 1 30)。 ところが、上述したように、既にこのときには、上記ステップ S 1 1 0に おいて FAT 2領域に対する管理情報の書き込みが完了した状態になっている。 そのため、 フラッシュコントローラ 1 30は、 この書き込み指示を受信すると、 即座に、 ホスト装置に書込完了通知を返信する (ステップ S 1 40)。 フラッシュコントローラ 1 30から、 FAT 2領域への書き込みが完了した旨 の通知を受信すると、 ホスト装置は、 フラッシュコントローラ 1 30に対して、 ファイルの実体の書き込みを指示する (ステップ S 1 50)。すると、 フラッシュ コントローラ 1 30は、 フラッシュメモリ F L内のユーザデータ領域に対して、 かかるファイルを書き込む(ステップ S 1 60)。フラッシュメモリ F Lへのファ ィルの書き込みが完了すると (ステップ S 1 65)、フラッシュコントローラ 1 3 0は、 ファイルの書き込みが終了した旨を示す書込完了通知をホス卜装置に送信 する (ステップ S 1 70)。 以上で説明したように、 本実施例のデータ記憶装置 1 0は、 FAT 1領域への 書き込みと同時に FAT 2領域への書き込みを行う。 そのため、 ホスト装置から FAT 2領域の書き込み指示があっても、 即座に書き込みが完了した旨の通知を 返信することができる。 この結果、 ホスト装置は、 FAT 2領域への書込処理か ら迅速に解放され、 すぐさま次のデータの書き込みを開始することができる。 なお、 本実施例では、 F AT 1領域および FAT 2領域に対する書き込みを行 つた後に、 ユーザデータ領域に対する書き込みを行うものとしたが、 これらは逆 の順序で行うものとしてもよい。
(A3) 各種処理:
以下、 データ記憶装置 1 0が、 図 4に示した動作等を実現するための種々の処 理について詳細に説明する。 (A3- 1 ) メイン処理: 図 5は、 データ記憶装置 1 0が実行するメイン処理のフローチャートである。 この処理は、 データ記憶装置 1 0がホスト装置に接続されて電源が供給されたと 同時にフラッシュコントローラ 1 30が実行を開始する処理である。 この処理が開始されると、 まず、 フラッシュコントローラ 1 30は、 アドレス ポインタ A P 1〜AP 3の値を設定するためのポインタ設定処理を行う (ステツ プ S 200)。 このポインタ設定処理の詳細については後述する。 続いて、 フラッシュコントローラ 1 30は、 U S B制御回路 1 20を介して、 ホスト装置から何らかのコマンドを受信したか否かを判断する (ステップ S 21 0)。 コマンドを受信していない場合には (ステップ S 21 0 : N o)、 この処理 をループすることでコマンドを受信するまで待機する。 一方、 コマンドを受信し た場合には (ステップ S 21 0 : Y e s)、 そのコマンドの種類を判別する (ステ ップ S 220)。 上記ステップ S 220において、 受信したコマンドが、 データの書き込みを行 うライ トコマンドであると判断されれば(ステップ S 220 :「ライ卜」)、 フラッ シュコントローラ 1 30は、後述するライ ト処理を行う (ステップ S 230)。一 方、 受信したコマンドが、 データの読み込みを行うリードコマンドであると判断 されれば(ステップ S 220 :「リード」)、 後述するリード処理を行う (ステップ
S 240)。 そして、 これらの処理が完了すれば、処理を上記ステップ S 21 0に 戻す。 以上で説明したメイン処理によれば、 電源供給がストップされるまで、 ホ ス卜装置から受信したコマンドに応じた処理がなされることになる。
(A3— 2) ポインタ設定処理 図 6は、 上述したメイン処理のステップ S 200で実行されるポインタ設定処 理のフローチャートである。 この処理は、 データ記憶装置 1 0の電源投入時ゃフ ォ一マツ卜完了時に、 図 2や図 3に示したァドレスポィンタ A P 1〜A P 3の値 を設定するための処理である。 この処理が実行されると、 まず、 フラッシュコントローラ 1 30は、 フラッシ ュメモリ F Lの MB R領域と B P B領域とを読み込む(ステップ S 300)。そし て、 これらの領域に既に MB R情報と BP B情報とが書き込まれているかを判断 する (ステップ S 3 1 0)。 上記ステップ S 3 1 0において、 MB R情報と B P B情報とが書き込まれてい ないと判断された場合には (ステップ S 3 1 0 : N o)、 データ記憶装置 1 0は、 未だフォーマットされていないことになる。 そのため、 フラッシュコントローラ 1 30は、 アドレスポインタ A P 1 ~A P 3の値を次のように設定する。 すなわ ち、 アドレスポインタ AP 1の値をフラッシュメモリ F Lの最終アドレス A zと し、 アドレスポインタ A P 2、 A P 3については設定を行わない (ステップ S 3 20)。 こうすることで、後述するライ ト処理やリード処理において、 FAT領域 の変換などが特に行われなくなる。 そのため、 ホスト装置は、 FATファイルシ ステ厶以外のファイルシステムによっても、 データ記憶装置 1 0を正常に利用す ることが可能になる。 上記ステップ S 320において、 ァドレスポインタ A P 1の値を設定すると、 フラッシュコントローラ 1 30は、 かかる値をレジスタ 1 35に記録し (ステツ プ S 330)、 当該ポインタ設定処理を終了する。 上記ステップ S 3 1 0において、 MB R情報と BP B情報とが既に書き込まれ ていると判断された場合には (ステップ S 31 0: Y e s), データ記憶装置 1 0 は、 FATファイルシステムによって既にフォーマツ卜されていることになる。 そのため、 フラッシュコントローラ 1 30は、 MB R領域や B P B領域に記録さ れたパーティションテーブルやセクタ数等の情報に基づき FAT 1領域の先頭ァ ドレス Acを求め、 これをアドレスポインタ A P 1の値とする (ステップ S 34 0)。 同様に、 フラッシュコントローラ 1 30は、 FAT 2領域の先頭ァドレス A dを求め、 これをアドレスポインタ AP 2の値する (ステップ S 350)。 更に、 フラッシュコントローラ 1 30は、 ルー卜ディレク トリ領域の先頭ァドレス A e を求め、 これをァドレスポィンタ A P 3の値とする (ステップ S 360)。最後に 、 フラッシュコントローラ 1 30は、 こうして設定したアドレスポインタ AP 1 〜A P 3の値をレジスタ 1 35に記録し (ステップ S 330)、 処理を終了する。
(A3— 3) ライ ト処理:
図 7は、 上述したメイン処理のステップ S 230で実行されるライ ト処理のフ ローチャートである。 このライ ト処理は、 ホスト装置から受信したデータ (以下 、 「ライ トデータ」 という) をフラッシュメモリ F Lに書き込むための処理である
この処理が実行されると、 まず、 フラッシュコントローラ 1 30は、 ホスト装 置から US B制御回路 1 20を介して受信したライ トコマンドを解析して書き込 み先のアドレス (以下、 「ライ トアドレス WA」 という) を求める (ステップ S 4 00)。 続いて、 フラッシュコントローラ 1 30は、 レジスタ 1 35を参照して、 ライ トァドレス WAが、 ァドレスポィンタ A P 1が示すァドレスよリも低いァドレス であるかを判断する (ステップ S 41 0)。 この判断の結果、 ライ トアドレス WA が、 アドレスポインタ AP 1が示すアドレスよりも低いアドレスであれば (ステ ップ S 41 0: Y e s)、ホスト装置から受信したコマンドは、 フォーマツ卜処理 に伴って MBR情報や BPB情報を書き込むためのコマンドか、 あるいは、 FA Tファイルシステム以外のファイルシステムによる書き込みコマンドであると判 断できる (図 2参照)。 そのため、 フラッシュコントローラ 1 30は、 ァドレス変 換等を特に行うことなく、 フラッシュメモリ F Lのライ トアドレス WAに、 その ままライ 卜データを書き込む (ステップ S 420)。
MBR情報や BPB情報は、 通常、 フォーマット時に 1回のみ書き込みが行わ れる。 そのため、 アドレスポインタ AP 1よりも低いアドレスにデータの書き込 みが行われると、 フラッシュコントローラ 1 30は、 ホスト装置によってフォー マツ卜処理が行われた可能性があると判断し、 図 6に示したポインタ設定処理を 実行する (ステップ S 430)。 こうすることで、 フォーマツト終了後においてァ ドレスポインタ AP 1 ~AP 3を適切に設定することができる。 ポインタ設定処 理が完了すると、 フラッシュコントローラ 1 30は、 書込完了通知をホス卜装置 に送信する (ステップ S 440)。 上記ステップ S 41 0において、 ライ トアドレス WAが、 アドレスポインタ A P 1が示すァドレスよりも高いァドレスであると判断された場合には (ステップ S 41 0 : N o)、 フラッシュコントローラ 1 30は、 次に、 レジスタ 1 35を参 照して、 ライ トアドレス WAが、 アドレスポインタ A P 3が示すアドレスよりも 高いアドレスであるかを判断する (ステップ S 450)。 この判断の結果、 ライ ト アドレス WAが、 アドレスポインタ A P 3が示すアドレスよりも高いアドレスで あると判断されれば(ステップ S 4 5 0 : Y e s )、ルートディレク トリ領域また はユーザデータ領域に対する書き込みであると判断できる (図 2参照)。そのため 、 フラッシュコントローラ 1 3 0は、 アドレス変換等を特に行うことなく、 フラ ッシュメモリ F Lのライ トァドレス WAにそのままライ トデータを書き込む (ス テツプ S 4 6 0 )。書き込みが終了すると、 フラッシュコントローラ 1 3 0は、 ホ スト装置に対して、 書込完了通知を送信する (ステップ S 4 4 0 )。 上記ステップ S 4 5 0において、 ライ トアドレス WAが、 ァドレスポィンタ A P 3が示すァドレスよりも低いァドレスであると判断された場合には (ステップ S 4 5 0 : N o )、 ライ トァドレス WAは、 F A T 1領域か F A T 2領域のいずれ かを示すことになる。 そのため、 フラッシュコントローラ 1 3 0は、 次に、 レジ スタ 1 3 5を参照して、 ライ 卜アドレス WAが、 ァドレスポィンタ A P 2が示す ァドレスよリも低いァドレスであるかを判断する (ステップ S 4 7 0 )。 この判断 の結果、 ライ トアドレス WAが、 アドレスポインタ A P 2よりも低いアドレスで あると判断されれば (ステップ S 4 7 0 : Y e s )、 ライ トァドレス WAは、 F A T 1領域内を示すことになる。 そこで、 フラッシュコントローラ 1 3 0は、 図 3 を用いて説明したように、 上記式 (1 ) によるアドレス変換を行う (ステップ S 4 8 0 )。 アドレス変換を行うと、 フラッシュコントローラ 1 3 0は、 変換されたァドレ スに対して、 受信したライ トデータを管理情報として書き込む。 そして、 更に、 フラッシュコントローラ 1 3 0は、 そのアドレスに連続した次のアドレスに、 同 一内容のデータを書き込む(ステップ S 4 9 0 )。 こうすることで、 F A T 3領域 に対して、 F A T 1領域と F A T 2領域とに書き込むべき管理情報をまとめて書 き込むことができる。 こうして F A T 3領域に対する書き込みが終了すると、 フ ラッシュコントローラ 1 30は、 ホスト装置に書込完了通知を送信する (ステツ プ S 440)。 上記ステップ S 470において、 ライ トアドレス WAが、 アドレスポインタ A P 2よりも高いアドレスであると判断された場合には (ステップ S 470 : N o )、 ライ トアドレス WAは、 FAT 2領域内のアドレスを示していることになる。 FAT 2領域について書き込むべき情報は、 上記ステップ S 490によって既に 書き込みが完了している状態となっている。 そのため、 この場合、 フラッシュコ ントローラ 1 30は、 フラッシュメモリ F Lに対して何も書き込むことなく、 そ のまま書込完了通知をホスト装置に送信する (ステップ S 440)。 以上で説明したライ 卜処理によれば、 FAT領域以外の領域については、 ホス 卜装置から送信されたデータを、 ァドレス変換等を行うことなくそのまま書き込 む。 これに対して、 FAT領域については、 FAT 1領域への書き込み指示があ つたときにのみ所定のァドレス変換を行って FAT 3領域にデータを書き込む。 このとき、 フラッシュコントローラ 1 30は、 FAT 2領域へ書き込むべき情報 も FAT 3領域にまとめて書き込むので、 フラッシュメモリ F Lに対して効率的 に管理情報を書き込むことが可能になる。 (A 3 -4) リード処理:
図 8は、 上述したメイン処理のステップ S 240で実行されるリード処理のフ ローチャートである。 このリード処理は、 ホスト装置からの要求に応じてフラッ シュメモリ F Lからデータを読み出すための処理である。 この処理が実行されると、 まず、 フラッシュコントローラ 1 30は、 ホスト装 置から USB制御回路 1 20を介して受信したリードコマンドを解析して、 読み 込み先のアドレス (以下、 「リードアドレス R A J という) を求める (ステップ S 500)。 続いて、 フラッシュコントローラ 1 30は、 レジスタ 1 35を参照して、 リー ドアドレス R Aが、 アドレスポインタ AP 1が示すアドレスよりも高く、 かつ、 ァドレスポインタ A P 3が示すァドレスよりも低いァドレスであるかを判断する (ステップ S 51 0)。 この判断の結果、 リードアドレス R Aが、 アドレスポイン タ A P 1よりも低い値か、 または、 ァドレスポィンタ A P 3よりも高い値であれ ば (ステップ S 51 0 : N o)、 リードアドレス R Aは、 FAT領域以外の領域の アドレスを示すことになる。 そのため、 フラッシュコントローラ 1 30は、 その ままリードアドレス R Aからデータを読み込み(ステップ S 520)、読み込んだ データをホスト装置に転送する (ステップ S 530)。 上記ステップ S 51 0において、 リードアドレス RAが、 アドレスポインタ A P 1が示すアドレスよりも高く、 かつ、 ァドレスポインタ A P 3が示すァドレス よリも低いァドレスであれば(ステップ S 51 0 : Y e s)、 リードアドレス R A は、 FAT 1領域もしくは FAT 2領域内のアドレスを示すこととなる (図 2参 照)。 そこで、 フラッシュコントローラ 1 30は、 更に、 そのリードアドレス RA が、 アドレスポインタ A P 2が示すアドレスよりも高いアドレスであるかを判断 する (ステップ S 540)。 この判断の結果、 リードアドレス RAがアドレスポィ ンタ A P 2よりも低いァドレスであると判断された場合には (ステップ S 540 : N o)、 リードアドレス R Aは、 F A T 1領域内のアドレスとなる。 そのため、 フラッシュコントローラ 1 30は、 上記式 (1 ) によってァドレス変換を行い ( ステップ S 550)、 変換後のアドレスからデータ読み込む (ステップ S 520) 。 こうすることで、 フラッシュコントローラ 1 30は、 FAT 3領域から適切に F AT 1領域についての管理情報を読み込むことができる。 フラッシュコント口 ーラ 1 30は、 FAT3領域からデータを読み込むと、 これをホスト装置に転送 する (ステップ S 530)。
—方、 上記ステップ S 540において、 リードアドレス 八が、 アドレスポィ ンタ A P 2が示すァドレスよりも高いァドレスであると判断されれば (ステップ S 540 : Y e s)、 リードアドレス R Aは、 F A T 2領域内のアドレスとなる。 そのため、 フラッシュコントロ一ラ 1 30は、 上記式 (2) によってァドレス変 換を行い (ステップ S 560)、変換後のアドレスからデータ読み込む (ステップ S 520)。 こうすることで、 フラッシュコン卜ローラ 1 30は、 FAT 3領域か ら適切に FAT 2領域についての管理情報を読み込むことができる。 フラッシュ コントローラ 1 30は、 FAT 3領域からデータを読み込むと、 これをホスト装 置に転送する (ステップ S 530)。 以上で説明したリード処理によれば、 フラッシュコントローラ 1 30は、 FA T領域以外の領域からはそのままデータを読み込んでホス卜に転送することがで きる。 また、 FAT 1領域または FAT 2領域からの読み込みの際には、 フラッ シュコントローラ 1 30は、 アドレス変換を行うことで、 FAT 3領域からそれ ぞれの管理情報を適切に読み込んで、 ホス卜装置に転送することができる。
(A4) 効果:
以上で説明した第 1実施例のデータ記憶装置 1 0は、 ホスト装置から FAT 1 領域に対するデータの書き込み指示があると、 FAT 2領域に対するデータの書 き込みも併せて行う。 そのため、 ホスト装置から FAT 2領域についてのデータ の書き込み指示があっても、 即座に、 書き込みが終了した旨の通知を返信するこ とができる。 また、 本実施例では、 フラッシュメモリ F L内の F A T 3領域に、 F A T 1領域と F A T 2領域についての管理情報を隣接したァドレスにまとめて 書き込む。 そのため、 効率的にデータの書き込みを行うことができ、 処理速度を 向上させることができる。 特に、 本実施例のデータ記憶装置 1 0は、 記憶デバィ スとしてデータの書き込み単位が比較的大きいフラッシュメモリを採用したため 、 隣接した 2つのデータを 1回の書き込み動作でまとめて書き込むことが容易と なる。 この結果、 処理スピードを大幅に向上させることが可能になる。 B . 第 2実施例:
上述した第 1実施例では、 図 1に示したように、 データ記憶装置 1 0は、 フラ ッシュメモリ F Lを 1つ備えているものとした。 これに対して第 2実施例では、 フラッシュメモリ Fしを 2つ備えているものとする。 図 9は、 第 2実施例としてのデータ記憶装置 1 0 bの概略構成を示す説明図で ある。 図示するように、 本実施例のデータ記憶装置 1 O bは、 第 1実施例と同様 に、 U S Bコネクタ 1 1 0と U S B制御回路 1 2 0とフラッシュコントローラ 1 3 0とを備えており、 更に、 2つのフラッシュメモリ F L a, F L bを備えてい る。 図 1 0は、 データ記憶装置 1 0 bのデータ構造を示す説明図である。 図 1 0の 左側には、 ホスト装置からみたデータ記憶装置 1 0 bのアドレスマップを示して いる。 かかるアドレスマップは、 第 1実施例と同様であるため、 説明は省略する 図 1 0の右側には、 2つのフラッシュメモリ Fし a, F L bのアドレスマップ を併記して示している。 本実施例では、 FAT領域以外の領域、 すなわち、 MB R領域、 BP B領域、 ルー卜ディレク トリ領域、 ユーザデータ領域については、 そのアドレス空間を形成する各アドレスが (1 ) フラッシュメモリ F L a、 (2) フラッシュメモリ F L bの順に交互に割り振られているものとする。 つまり、 例 えば、 MB R領域の最初のアドレスは、 フラッシュメモリ F L aに存在し、 2番 目のアドレスはフラッシュメモリ F L bに存在する。 また、 3番目のアドレスは 、 フラッシュメモリ F L aに存在し、 4番目のアドレスは、 フラッシュメモリ F L bに存在することになる。 このようなアドレス空間であれば、 データ記憶装置 1 0 bは、 データを 2つのフラッシュメモリに並列 (同時) に書き込むことがで きる。 本実施例では、 データ記憶装置 1 O bは、 2つのフラッシュメモリ F L a ' F L I?を備えることにより、 そのバス幅が実質的に 2倍になるので、 上述のよ うにデータを並列 (同時) に書き込めば、 高速にデータの読み書きを行うことが 可能になる。 本実施例では、 FAT領域については、 フラッシュメモリ F L a側に FAT 1 領域を確保し、 フラッシュメモリ F L b側に FAT 2領域を確保している。 その ため、 本実施例においてホス卜装置から FAT 1領域に対してデータの書き込み 指示があると、 フラッシュコントローラ 1 30は、 フラッシュメモリ F L aの F AT 1領域に対してデータを書き込むとともに、 同一の内容のデータをフラッシ ュメモリ F L bの FAT 2領域に書き込む。 2つのフラッシュメモリに対する書 き込みは、 同時並列的に行うことができるため、 他方の書込完了を待たずに 2つ の FAT情報を書き込むことができる。 この結果、 第 1実施例と同様に、 FAT 領域に対する書き込み効率を向上させることができる。 第 2実施例におけるメイン処理、 ポインタ設定処理、 ライト処理、 リード処理 については、 第 1実施例とほぼ同様の処理内容であるため詳細な説明は省略する 。 ただし、 本実施例では、 図フゃ図 8に示したライ卜処理やリード処理において 、 FAT領域以外の領域に対してデータを読み書きする際には、 図 1 0に示した アドレスマップに従って所定のアドレス変換を行った上で、 フラッシュメモリ F L aまたはフラッシュメモリ F L bに対して適宜読み書きを行う。 また、 第 1実 施例では、 図フに示したライト処理のステップ S 490において、 FAT 3領域 の連続したァドレスに同一の管理情報を 2つ書き込むものとしたが、 第 2実施例 では、 フラッシュメモリ F L aの FAT 1領域およびフラッシュメモリ F L bの FAT 2領域に対して、 それぞれ、 同一の管理情報を並列的に書き込む。 また、 図 8のリード処理のステップ S 550におけるァドレス変換では、 フラッシュメ モリ F L aの FAT 1領域へのァドレス変換を行い、 ステップ S 560における ァドレス変換では、 フラッシュメモリ F Lbの FAT 2領域へのァドレス変換を それぞれ行う。
C 第 3実施例:
上述した第 2実施例では、 FAT領域以外の領域についてはデータを 2つのフ ラッシュメモリに分散して記録するものとした。 これに対して、 第 3実施例では 、 F A丁領域以外の領域については、 2つのフラッシュメモリに、 同一内容のデ ータが書き込まれるものとする。 データ記憶装置 1 0 bの装置構成については、 図 9に示した構成と同一である。 図" I 1は、 第 3実施例におけるデータ記憶装置" I 0 bのデータ構造を示す説明 図である。 図 1 1の左側には、 ホスト装置からみたデータ記憶装置 1 O bのアド レスマップを示している。 一方、 図 1 1の右側には、 2つのフラッシュメモリ F L a, F L bのアドレスマップを示している。 本実施例では、 FAT領域以外の 領域、 すなわち、 MBR領域、 BPB領域、 ルートディレク トリ領域、 ユーザデ ータ領域については、 フラッシュメモリ F L aとフラッシュメモリ F L bとで同 一内容のデータが書き込まれるものとする。 このような構成であれば、 データの 冗長度を高めてフラッシュメモリに記憶させることができるので、 一方のフラッ シュメモリのデータが損傷したとしても、 もう一方のフラッシュメモリに記憶さ れたデータを用いて、 適切にデータを読み込むことが可能になる。 これに対して、 FAT領域については、 第 2実施例と同様に、 FAT 1領域が フラッシュメモリ F L aに確保され、 FAT 2領域がフラッシュメモリ F L bに 確保されるものとした。 こうすることにより、 2つのフラッシュメモリに対する 書き込みを、 同時並列的に行うことができるため、 他方の書込完了を待たずに 2 つの管理情報を書き込むことができる。 この結果、 第 1実施例や第 2実施例と同 様に、 FAT領域に対する書き込み効率を向上させることができる。 本実施例では、 図 1 1に示すように、 FAT 2領域以外の領域については、 ホ スト側から見たアドレスマップと、 フラッシュコントローラ 1 30から見たアド レス体系は一致している。 従って、 FAT 2領域以外の領域については、 ァドレ ス変換を行うことなくデータの読み書きを行うことができる。 この結果、 処理効 率を向上させることができる。 なお、 図 1 1の右側に示したアドレスマップにお いて、 「NU L L」 と示した領域は、本来、 FAT 2領域が確保されるべき領域で あるため、 ホスト装置からは直接認識されない領域となる。 しかし、 この NU L L領域をユーザデータ領域に連結させる所定のァドレス変換を行うことで、 かか る NU L L領域も、 ユーザデータ領域として利用することが可能である。 ところで、 本実施例では、 フラッシュメモリ F L aとフラッシュメモリ F L b とに同一内容のデータが書き込まれるものとしたが、 フラッシュメモリ F L bに は、 フラッシュメモリ F L aに書き込まれたデータから生成した ECCデータを 書き込むものとしてもよい。 このような構成であれば、 フラッシュメモリ F L b に書き込まれた ECCデータに基づきフラッシュメモリ F L aに書き込まれたデ 一夕のエラーチェックやエラー訂正を容易に行うことができるので、 記憶された データの信頼性を高めることが可能になる。
D. 変形例:
以上、 本発明の種々の実施例について説明したが、 本発明はこれらの実施例に 限定されず、 その趣旨を逸脱しない範囲で種々の構成を採ることができることは いうまでもない。 例えば、 以下のような変形が可能である。
(D 1 ) 変形例 1 :
上記実施例では、 データ記憶装置 1 0は、 記憶デバイスとしてフラッシュメモ リを備えるものとした。 これに対して、 例えば、 ハードディスク ドライブなどの 他の記憶デバイスを備えるものとしてもよい。
( D 2 ) 変形例 2 :
上記実施例では、 データ記憶装置 1 0は FAT形式によってフォーマツ卜され るものとした。 しかし、 フォーマットの形式はこれに限られず、 同一内容の管理 情報が複数書き込まれる他の形式によってフォーマツ卜されるものとしてもよい
(D3) 変形例 3 上記実施例では、 ホスト装置とデータ記憶装置 1 0とは、 U S Bインタフエ一 スによって接続されるものとしたが、 インタフェースの種別はこれに限られない 。 例えば、 P C M C I Aインタフェースによって接続されるものとしてもよいし 、 シリアル A T Aインタフェースや I E E E 1 3 9 4インタフェース等によって 接続されるものとしてもよい。 なお、上記実施例では、 フラッシュメモリのデータの記憶場所のことを、 「アド レス」 という用語を用いて説明したが、 かかる用語は、 適用されるファイルシス テムやオペレーティングシステム、記憶デバイスの種類に応じて、 「セクタ」や Γ クラスタ」、 「ブロック」 などと適宜読み替えることができる。 本発明は、 上記の実施例、 変形例、 他の態様によって何ら制限的に解釈される べきものではなく、 本発明の保護範囲は、 クレームと本発明の精神に則って解釈 されることは勿論である。

Claims

請求の範囲
1 . ホスト装置から転送されたデータを記憶するデータ記憶装置であって、 前記データが記録されるデータ領域と、 該データを管理するための第 1の管理 情報と該管理情報と同様の内容を有する第 2の管理情報とが記録される管理領域 とを有する記憶デバイスと、
前記ホスト装置から所定の順序で転送される前記データと前記第 1の管理情報 と前記第 2の管理情報とを個別に受信する受信手段と、
前記受信したデータを前記データ領域に記録するデータ記録手段と、 前記第 1の管理情報および前記第 2の管理情報のうち、 一方の管理情報を前記 ホスト装置から受信した場合に、 他方の管理情報の受信を待つことなく、 前記受 信した管理情報を、 前記第 1の管理情報および前記第 2の管理情報として前記管 理領域に記録する管理情報記録手段と
を備えるデータ記憶装置。
2 . 請求項 1に記載のデータ記憶装置であって、
前記管理情報記録手段は、 前記.他方の管理情報を受信した場合に、 前記管理領 域に対して該管理情報の記録を行うことなく、 記録が完了した旨を前記ホスト装 置に通知する手段を備える
データ記憶装置。
3 . 請求項 1または請求項 2に記載のデータ記憶装置であって、
前記管理情報記録手段は、 前記第 1の管理情報および前記第 2の管理情報を、 前記管理領域内の連続した位置に記録する
データ記憶装置。
4 . 請求項 1または請求項 2に記載のデータ記憶装置であって、 該データ記憶装置は、 前記記憶デバイスを複数備えており、 .
前記管理情報記録手段は、 前記第 1の管理情報を一の記憶デバイスに記録し、 前記第 2の管理情報を他の記憶デバィスに記録する
データ記憶装置。
5 . 請求項 4に記載のデータ記憶装置であって、
前記データ記録手段は、 前記データを前記各記憶デバイスに分散させて記録す る
データ記憶装置。
6 . 請求項 4に記載のデータ記憶装置であって、
前記データ記録手段は、 前記データを一の記憶デバイスに記録し、 該データを 補正するための補正データを他の記憶デバイスに記録する
データ記憶装置。
7 . 請求項 6に記載のデータ記憶装置であって、
前記データ記録手段は、 前記補正データとして、 前記データをハミング符号化 して得られた E C Cデータを記録する
データ記憶装置。
8 . 請求項 6に記載のデータ記憶装置であって、
前記データ記録手段は、 前記補正データとして、 前記データと同一内容のデー タを記録する データ記憶装置
9 . 請求項 1ないし請求項 8のいずれかに記載のデータ記憶装置であって、 前記管理情報とは、 F A Tファイルシステムにおけるファイルアロケーション テーブルに記録するデータである
データ記憶装置。
1 0 . 請求項 1ないし請求項 9のいずれかに記載のデータ記憶装置であって、 前記記憶デバイスは、 不揮発性の半導体メモリである
データ記憶装置。
1 1 . 請求項 1 0に記載のデータ記憶装置であって、
前記不揮発性の半導体メモリとは、 フラッシュメモリである
データ記憶装置。
1 2 . 請求項 1 1に記載のデータ記憶装置であって、
前記ホスト装置と当該データ記憶装置とは U S Bインタフヱースによって接続 される
データ記憶装置。
1 3 . データ記憶装置が、 ホスト装置から転送されたデータを記憶するデータ 記憶方法であって、
前記データ記憶装置は、 前記データが記録されるデータ領域と、 該データを管 理するための第 1の管理情報と該管理情報と同様の内容を有する第 2の管理情報 とが記録される管理領域とを有する記憶デバイスを備えており、 前記ホスト装置から所定の順序で転送される前記データと前記第 1の管理情報 と前記第 2の管理情報とを個別に受信し、
前記第 1の管理情報および前記第 2の管理情報のうち、 一方の管理情報を前記 ホス卜装置から受信した場合に、 他方の管理領域の受信を待つことなく、 前記受 信した管理情報を、 前記第 1の管理情報および前記第 2の管理情報として前記管 理領域に記録し、
前記受信したデータを前記データ記憶領域に記録する
データ記憶方法。
PCT/JP2007/060179 2006-05-18 2007-05-11 データ記憶装置およびデータ記憶方法 WO2007135967A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200780018136.3A CN101449248B (zh) 2006-05-18 2007-05-11 数据存储装置以及数据存储方法
EP07743614A EP2031514A4 (en) 2006-05-18 2007-05-11 DATA MEMORY DEVICE AND DATA STORING METHOD
US12/300,789 US8364730B2 (en) 2006-05-18 2007-05-11 Data storage apparatus and data storage method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006138781A JP4676378B2 (ja) 2006-05-18 2006-05-18 データ記憶装置およびデータ記憶方法
JP2006-138781 2006-05-18

Publications (1)

Publication Number Publication Date
WO2007135967A1 true WO2007135967A1 (ja) 2007-11-29

Family

ID=38723278

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/060179 WO2007135967A1 (ja) 2006-05-18 2007-05-11 データ記憶装置およびデータ記憶方法

Country Status (6)

Country Link
US (1) US8364730B2 (ja)
EP (1) EP2031514A4 (ja)
JP (1) JP4676378B2 (ja)
CN (1) CN101449248B (ja)
TW (1) TW200809494A (ja)
WO (1) WO2007135967A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
CN101187830B (zh) * 2007-12-27 2012-05-23 成都市华为赛门铁克科技有限公司 掉电保护方法、装置、逻辑器件及存储系统
CN101661438B (zh) * 2008-08-29 2013-08-28 鸿富锦精密工业(深圳)有限公司 电子装置及中央处理器寻址空间扩展方法
US20100161952A1 (en) * 2008-12-18 2010-06-24 Texas Instruments Incorporated Performance optimizations by dynamic reduction of file allocation tables
CN101576966A (zh) * 2009-06-02 2009-11-11 中兴通讯股份有限公司 一种读写存储卡的方法及装置
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
CN103176753B (zh) * 2013-03-07 2016-06-01 深圳市江波龙电子有限公司 存储设备及其数据管理方法
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
JP6150669B2 (ja) * 2013-08-22 2017-06-21 キヤノン株式会社 情報処理装置、画像形成装置、及びその制御方法
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
JP2017021561A (ja) * 2015-07-10 2017-01-26 ファナック株式会社 制御装置のファイルシステム
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10229052B2 (en) * 2017-05-31 2019-03-12 Seagate Technology Llc Reverse map logging in physical media
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US11520696B2 (en) * 2018-06-28 2022-12-06 Seagate Technology Llc Segregating map data among different die sets in a non-volatile memory
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
CN109658867A (zh) * 2018-12-10 2019-04-19 北京欧徕德微电子技术有限公司 数据读写方法及其装置
CN112800007B (zh) * 2021-01-28 2022-06-14 上海华元创信软件有限公司 适用于fat32文件系统的目录项扩展方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04106643A (ja) * 1990-08-27 1992-04-08 Nec Ibaraki Ltd フロッピィディスクのファイル領域管理方式
JP2005216119A (ja) * 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 記録媒体
EP1585135A2 (en) 2001-06-04 2005-10-12 Pioneer Corporation Data recording apparatus and data erasing apparatus

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
JP2888958B2 (ja) * 1990-10-20 1999-05-10 富士通株式会社 部分書き換え可能な記憶媒体におけるファイル管理方式
US5422762A (en) * 1992-09-30 1995-06-06 Hewlett-Packard Company Method and apparatus for optimizing disk performance by locating a file directory on a middle track and distributing the file allocation tables close to clusters referenced in the tables
JP2883791B2 (ja) * 1993-08-26 1999-04-19 富士通株式会社 記憶媒体とその制御方法
JP3358795B2 (ja) * 1997-03-27 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスクドライブ装置及びその制御方法
JPH11249968A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd ファイル記録方法及びファイルシステム
JP3182129B2 (ja) * 1998-10-19 2001-07-03 富士通株式会社 記憶媒体とその制御方法
JP2002538551A (ja) * 1999-03-04 2002-11-12 デカ・プロダクツ・リミテッド・パートナーシップ データのブロック転送方法及び装置
JP4106643B2 (ja) 2000-03-27 2008-06-25 トーソー株式会社 折れ戸の接触防止装置
US6675180B2 (en) * 2000-06-06 2004-01-06 Matsushita Electric Industrial Co., Ltd. Data updating apparatus that performs quick restoration processing
US20020103907A1 (en) * 2000-06-20 2002-08-01 Erik Petersen System and method of storing data to a recording medium
US6823417B2 (en) * 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP3797191B2 (ja) * 2001-10-25 2006-07-12 株式会社日立製作所 情報記録装置
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
JP2003217237A (ja) * 2002-01-21 2003-07-31 Toshiba Corp 磁気ディスク装置
NO315959B1 (no) * 2002-04-16 2003-11-17 Thin Film Electronics Asa Fremgangsmåter til lagring av data i et ikke-flyktig minne
JP4495899B2 (ja) * 2002-05-29 2010-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 接続切替装置およびその接続切替装置を用いたファイルシステム
US7363540B2 (en) * 2002-10-22 2008-04-22 Microsoft Corporation Transaction-safe FAT file system improvements
US7174420B2 (en) 2002-10-22 2007-02-06 Microsoft Corporation Transaction-safe FAT file system
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US20040128269A1 (en) * 2002-12-27 2004-07-01 Milligan Charles A. System and method for managing data through families of inter-related metadata tables
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP4468666B2 (ja) * 2003-08-22 2010-05-26 富士通株式会社 二重書込機能を有する装置およびストレージ制御装置
JP4722704B2 (ja) * 2003-10-31 2011-07-13 パナソニック株式会社 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US20050149493A1 (en) * 2004-01-07 2005-07-07 Kazuhiko Yamashita Data recording apparatus and data recording method
JP4515132B2 (ja) * 2004-03-31 2010-07-28 株式会社日立製作所 ストレージシステム、ストレージ装置及びリモートコピー方法
WO2005106673A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
RU2348992C2 (ru) * 2004-07-12 2009-03-10 Кабусики Кайся Тосиба Запоминающее устройство и ведущее устройство
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
US7644092B2 (en) * 2005-05-03 2010-01-05 Kabushiki Kaisha Toshiba System for managing data on memory device using file system
US20060277333A1 (en) * 2005-06-01 2006-12-07 Creative Technology Ltd. Portable data storage device
US7693882B2 (en) * 2005-10-04 2010-04-06 Oracle International Corporation Replicating data across the nodes in a cluster environment
US20070100893A1 (en) * 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
US7689807B2 (en) * 2006-02-09 2010-03-30 Sigmatel, Inc. Mass storage device, mass storage controller and methods for use therewith
US7650458B2 (en) * 2006-06-23 2010-01-19 Microsoft Corporation Flash memory driver
US7752412B2 (en) * 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information
US7577643B2 (en) * 2006-09-29 2009-08-18 Microsoft Corporation Key phrase extraction from query logs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04106643A (ja) * 1990-08-27 1992-04-08 Nec Ibaraki Ltd フロッピィディスクのファイル領域管理方式
EP1585135A2 (en) 2001-06-04 2005-10-12 Pioneer Corporation Data recording apparatus and data erasing apparatus
JP2005216119A (ja) * 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 記録媒体

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US8364730B2 (en) 2013-01-29
CN101449248B (zh) 2013-07-24
TW200809494A (en) 2008-02-16
EP2031514A4 (en) 2010-11-03
TWI379196B (ja) 2012-12-11
JP4676378B2 (ja) 2011-04-27
CN101449248A (zh) 2009-06-03
US20090132620A1 (en) 2009-05-21
EP2031514A1 (en) 2009-03-04
JP2007310637A (ja) 2007-11-29

Similar Documents

Publication Publication Date Title
WO2007135967A1 (ja) データ記憶装置およびデータ記憶方法
US8136015B2 (en) Data storage apparatus and data storage method
US8966231B2 (en) Modifying commands
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US8180931B2 (en) USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch
US6754765B1 (en) Flash memory controller with updateable microcode
US7472251B2 (en) Data storage apparatus detachably mounted to a host apparatus
KR100610647B1 (ko) 직접실행제어 기능과 스토리지 기능이 복합된 대용량저장장치
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US20030028733A1 (en) Memory apparatus
US20050120146A1 (en) Single-Chip USB Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage
JP2008523528A (ja) セクタバッファを持つメモリシステム
JP2000067574A (ja) 半導体記憶装置
JP2003242470A (ja) 外部接続機器及びホスト機器
JP2005107838A (ja) ディスクアレイコントローラ及びログ情報記録方法
US8489802B2 (en) Recordable memory device which writes data to reformatted user area of nonvolatile semiconductor memory
US20090164538A1 (en) Data storage apparatus and initialization method thereof
JP2008065725A (ja) Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
JP2003050725A (ja) ストレージデバイス制御装置
JP2003030045A (ja) 記憶装置
WO2006051583A1 (ja) インタフェースカード

Legal Events

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

Ref document number: 200780018136.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07743614

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12300789

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007743614

Country of ref document: EP