WO2010146767A1 - 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ - Google Patents

不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ Download PDF

Info

Publication number
WO2010146767A1
WO2010146767A1 PCT/JP2010/003268 JP2010003268W WO2010146767A1 WO 2010146767 A1 WO2010146767 A1 WO 2010146767A1 JP 2010003268 W JP2010003268 W JP 2010003268W WO 2010146767 A1 WO2010146767 A1 WO 2010146767A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
writing
command
write
block
Prior art date
Application number
PCT/JP2010/003268
Other languages
English (en)
French (fr)
Inventor
宗広和
外山昌之
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2010540750A priority Critical patent/JP4758518B2/ja
Priority to US13/061,731 priority patent/US8554987B2/en
Publication of WO2010146767A1 publication Critical patent/WO2010146767A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Definitions

  • the present invention includes a nonvolatile memory device such as a semiconductor memory card including a nonvolatile memory and a memory controller that controls the nonvolatile memory, an access device that accesses the nonvolatile memory device, and a nonvolatile memory device and an access device.
  • a nonvolatile memory device such as a semiconductor memory card including a nonvolatile memory and a memory controller that controls the nonvolatile memory, an access device that accesses the nonvolatile memory device, and a nonvolatile memory device and an access device.
  • the present invention relates to a nonvolatile storage system and a memory controller.
  • nonvolatile memory devices including a rewritable nonvolatile memory
  • Semiconductor memory cards are more expensive than optical disks and tape media.
  • semiconductor memory cards have great merits such as small size, light weight, earthquake resistance, and easy handling, so the demand for them is growing as a recording medium for portable devices such as digital still cameras and mobile phones. It has also come to be used as a recording medium for professional video recording equipment for recording equipment and broadcast stations.
  • portable devices not only portable devices but also stationary devices such as digital televisions and DVD recorders are equipped with a slot for a semiconductor memory card as standard.
  • This semiconductor memory card includes a flash memory as a nonvolatile main memory, and has a memory controller for controlling the flash memory. The memory controller performs data read / write control on the flash memory in response to a data read / write instruction from an access device such as a digital still camera body.
  • the access device manages the storage area of the semiconductor memory card by the file system.
  • the management unit (cluster) by the file system is generally smaller than the block size. It is. For this reason, if the entire block is rewritten by rewriting one cluster, the data writing speed is remarkably deteriorated. Therefore, there is known a memory controller that prevents frequent rewriting of the entire block and prevents a decrease in data writing speed (see, for example, Patent Document 1).
  • a plurality of blocks which are data erasure units are divided into a primary block group, a secondary block group and a spare block group, and in response to a data write request to a primary block belonging to the primary block group,
  • the secondary block belonging to the secondary block group is used as an extension block of the primary block. That is, only the data of the updated part of the primary block data is added to the secondary block.
  • the secondary block is completely written and cannot be additionally written, only the primary block and the secondary block valid data are arranged and written in the spare block belonging to the spare block group, and the copy source 1
  • the contents of the next block and the secondary block are erased to form blocks of the spare block group and the secondary block group, respectively. This reduces the frequency of rewriting of the entire block and prevents the data writing speed from being lowered.
  • the present invention has been made to solve the above-described problems, and the object of the present invention is to temporarily remarkably reduce the writing speed when the access device writes all data of a block in a unit smaller in size than the block.
  • a non-volatile memory device an access device, a non-volatile memory system, and a memory controller.
  • a first invention is a nonvolatile memory device comprising a nonvolatile memory and a memory controller that controls writing and reading of data to and from the nonvolatile memory.
  • the memory controller includes an interface unit, an address management unit, And a read / write control unit.
  • the interface unit identifies a first write range for writing data and a second write range that is a part of the first write range, and stores data in the second write range. And a second command for instructing writing.
  • the address management unit selects a new block for writing data to the first write range based on the first command before writing data to the nonvolatile memory.
  • the read / write control unit records data in a new block in response to the second command.
  • the first write range for writing data is, for example, a range obtained by dividing a logical space for data reading / writing provided to the access device by the nonvolatile storage device in units of blocks.
  • the second write range is a range corresponding to a data write unit by the access device, for example.
  • a block is, for example, a physical block in a nonvolatile memory.
  • a second invention is a nonvolatile memory device comprising a nonvolatile memory and a memory controller that controls writing and reading of data to and from the nonvolatile memory.
  • the memory controller includes an interface unit, an address management unit, And a read / write control unit.
  • the interface unit receives a first command for notifying writing of data and a second command for instructing writing of the data.
  • the address management unit selects a new block for writing data based on the second command received after the first command by the interface unit before writing the data to the nonvolatile memory.
  • the read / write control unit records data in a new block in accordance with the second command received by the interface unit.
  • the second command received after the first command by the interface unit includes information for identifying the first write range for writing data, and a second write range that is a part of the first write range. And instructing the writing of data to the second writing range. In this case, since a new block is selected based on the second command that is actually instructed to write data, even if the large data writing process by the first command is stopped, the second block is selected. Until the command is received, the data can be held without being discarded.
  • the third invention is the first or second invention, wherein the address management unit determines whether there is one or more blocks selected for the first write range before selecting a new block. When it is determined that there is one or more blocks, one or more blocks are discarded.
  • discarding a block includes, for example, setting a block already allocated to the first write range to an unallocated state and managing it as a logically empty block. In this case, data left in an unallocated block may be erased or left as it is until new data is written. That is, the data may have any content, and the data state may be normal or abnormal.
  • the fourth invention is the first or second invention, wherein the address management unit determines whether there is one or more blocks selected for the first write range before selecting a new block. If it is determined that there is one or more blocks, one or more blocks are erased.
  • erasing a block means, for example, putting the block into a state in which dummy data such as all bits 0 or all bits 1 are read.
  • the fifth invention is the first or second invention, wherein the first write range is an integral multiple of the second write range.
  • 6th invention is 1st invention, Comprising: 1st command contains the 1st identification information which identifies the 1st write-in range.
  • the identification information is, for example, address information that specifies the first writing range.
  • 7th invention is 1st or 2nd invention, Comprising:
  • the 1st command contains the 2nd identification information which identifies stream data.
  • 8th invention is 7th invention, Comprising: An address management part selects a new block for every 2nd identification information.
  • the ninth invention is the eighth invention, wherein the address management unit holds a plurality of second identification information, and the read / write control unit has a plurality of new blocks corresponding to the plurality of second identification information.
  • data is recorded.
  • writing control of a plurality of large-capacity data transmitted in parallel can be performed at high speed and efficiently.
  • a tenth aspect of the invention is an access device that controls writing and reading of data to and from a nonvolatile storage device.
  • the access device transmits a first command including information for identifying a first write range for writing data to the nonvolatile memory device, and after transmitting the first command, a part of the first write range
  • the second command for instructing the writing of data to the second writing range including the information for identifying the second writing range is transmitted to the nonvolatile memory device a plurality of times.
  • a plurality of second commands including information for identifying the second write range that is a part of the first write range are provided. Times to the non-volatile storage device. As a result, even when large-sized data such as stream data is continuously written, the frequency of block rewrite processing occurring during data writing on the nonvolatile storage device side can be reduced, and the data writing speed can be temporarily reduced. Can be prevented from significantly decreasing.
  • An eleventh invention is an access device for controlling writing and reading of data to and from a nonvolatile storage device.
  • the access device transmits a first command for notifying data writing to the non-volatile storage device, and after transmitting the first command, each of the access commands sends a second command for instructing data writing to the non-volatile memory a plurality of times.
  • the second command transmitted after the first command identifies information for identifying the first write range for writing data and the second write range that is a part of the first write range. And writing data to the second write range.
  • a twelfth invention includes any one of the nonvolatile memory devices according to the first to ninth inventions and the access device according to the tenth or eleventh invention.
  • a thirteenth invention is a memory controller that controls writing and reading of data to and from a nonvolatile memory, and includes an interface unit, an address management unit, and a read / write control unit.
  • the interface unit identifies a first write range for writing data and a second write range that is a part of the first write range, and stores data in the second write range. And a second command for instructing writing.
  • the address management unit selects a new block for writing data to the first write range based on the first command before writing data to the nonvolatile memory.
  • the read / write control unit records data in a new block in response to the second command.
  • a fourteenth aspect of the invention is a memory controller that controls writing and reading of data to and from a nonvolatile memory, and includes an interface unit, an address management unit, and a read / write control unit.
  • the interface unit receives a first command for notifying data writing and a second command for instructing data writing.
  • the address management unit selects a new block for writing data based on the second command received after the first command by the interface unit before writing the data to the nonvolatile memory.
  • the read / write control unit records data in a new block in accordance with the second command received by the interface unit.
  • the second command received after the first command by the interface unit includes information for identifying the first write range for writing data, and a second write range that is a part of the first write range. And instructing the writing of data to the second writing range.
  • the access device when the access device writes all the data of a block in a unit smaller in size than the block, it is possible to avoid that the writing speed temporarily decreases significantly. Accordingly, it is possible to provide a non-volatile storage device, an access device, a non-volatile storage system, and a memory controller capable of recording large-capacity content data such as stream data while maintaining a certain writing speed.
  • FIG. 1 is a block diagram showing a nonvolatile memory system according to a first embodiment of the present invention.
  • Diagram showing the relationship between flash memory and blocks Diagram showing the relationship between blocks and pages Diagram showing page structure
  • Diagram showing how to manage logical space by file system Diagram showing the relationship between AU, RU and cluster
  • the flowchart which shows the process at the time of the initialization command reception by the non-volatile memory device of 1st Embodiment The flowchart which shows the process at the time of the stream write preparation command reception by the non-volatile storage device of 1st Embodiment 7 is a flowchart showing processing when a write command and accompanying write data are received by the nonvolatile memory device according to the first embodiment.
  • the flowchart which shows the process at the time of the read command reception by the non-volatile memory device of 1st Embodiment The flowchart which shows the initialization process by the access device of 1st Embodiment
  • the flowchart which shows the stream write processing by the access device of 1st Embodiment The figure which shows the transfer sequence of the command response data at the time of the stream data write in the non-volatile storage system of 1st Embodiment
  • the flowchart which shows the normal data write-in process by the access device of 1st Embodiment The figure which shows the transfer sequence of the command response data at the time of normal data writing in the non-volatile storage system of 1st Embodiment
  • the flowchart which shows the data read-out process by the access device of 1st Embodiment The figure which shows the stream management table in 2nd Embodiment of this invention.
  • FIG. 1 shows a configuration of a nonvolatile storage system 1 according to the first embodiment of the present invention.
  • the nonvolatile storage system 1 of the present embodiment includes a nonvolatile storage device 100 and an access device 200 to which the nonvolatile storage device 100 is attached.
  • the access device 200 includes an input control unit 201, an input unit 202, a buffer 203, a card interface (card IF) 204, a display unit 205, a display control unit 206, an encoding unit 207, and a system control unit 208.
  • the access device 100 is, for example, a moving image recording device such as a video camera.
  • the input unit 202 is a part to which stream data such as a moving image is input, and is controlled by the input control unit 201.
  • the buffer 203 is a part that temporarily stores the stream data input from the input unit 202, and is configured by a RAM or the like.
  • the card IF 204 is a part that accesses the nonvolatile storage device 100 and reads / writes data.
  • the display unit 205 is a part that displays information related to the nonvolatile storage system 1 and is controlled by the display control unit 206.
  • the encoding unit 207 is a part that encodes the stream data stored in the buffer 203.
  • the system control unit 208 includes a program ROM and a working RAM therein, and controls the access device 200 as a whole.
  • the stream data input from the input unit 202 is temporarily stored in the buffer 203, encoded by the encoding unit 207, and then written to the nonvolatile storage device 100 via the card IF 204.
  • the non-volatile storage device 100 includes a memory controller 110 and a non-volatile memory 120 that is a flash memory group. ⁇ 1.2.1.
  • the memory controller 110 includes a host interface (host IF) 101 that performs communication with the access device 200, a buffer 102, a read / write control unit 103, a CPU 104, a register unit 105, and an address management unit 106.
  • host IF host interface
  • the buffer 102 is composed of a RAM or the like, and temporarily holds data transferred from the access device 200 or data read from the nonvolatile memory 120.
  • the buffer 102 is used to absorb differences in data transfer units between the access device 200 and the memory controller 110 and data transfer units and timings between the memory controller 110 and the nonvolatile memory 120.
  • the read / write control unit 103 writes the data temporarily stored in the buffer 102 to the nonvolatile memory 120 based on the physical address designated by the address management unit 106. Further, the read / write control unit 103 reads data from the nonvolatile memory 120 and temporarily holds the data in the buffer 102.
  • the CPU 104 includes a program ROM, work RAM, and the like, and controls the entire memory controller 110.
  • the register unit 105 is a part that holds various parameter information regarding the nonvolatile memory device 100.
  • the address management unit 106 is a part that converts a logical address transferred with access of the access device 200 into a physical address in the nonvolatile memory 120 and manages a recording state in the nonvolatile memory 120.
  • the address management unit 106 in this embodiment stores the first logical physical conversion table 131 (FIG. 5), the second logical physical conversion table 132 (FIG. 6), and the free block management table 140 (FIG. 7) in the RAM. Build on and use. Details will be described later. ⁇ 1.2.2.
  • Nonvolatile Memory 120> As shown in FIG. 2, the flash memory that is the nonvolatile memory 120 includes a plurality of blocks 121. Block 121 is a data erasing unit in the flash memory.
  • each block 121 includes a plurality of pages 122.
  • a page 122 is a writing unit in the flash memory. Writing to the block 121 is always performed physically in order from the first page.
  • each page 122 includes a data storage area 123 for storing data transferred from the access device 200 and a management information storage area 124 for storing management information used by the memory controller 110. Including.
  • the management information storage area 124 stores information such as logical address information for each page of data stored in the data storage area 123 and error correction codes.
  • Table of Address Management Unit 106 includes a first logical physical conversion table 131 and a second logical physical conversion table 132 that manage the correspondence between logical addresses and physical addresses in units of blocks.
  • FIG. 5 shows a configuration example of the first logical physical conversion table 131.
  • the first logical-physical conversion table 131 includes a logical block (a logical space for data reading / writing provided by the nonvolatile storage device 100 to the access device 200 divided in blocks) and a physical block (in the nonvolatile memory 120). (Physical block) is managed on a one-to-one basis.
  • the physical block registered in the first logical-physical conversion table 131 is referred to as a first block.
  • the first logical / physical conversion table 131 includes an additional write flag.
  • the additional write flag sets information regarding whether or not additional writing to the first block is possible with a binary value of ON / OFF.
  • the case where the additional write flag is OFF is a case where writing of the first block is completed, a case where the first block is not yet allocated, or the like.
  • the case where the additional write flag is ON is a case where an unwritten page exists in the first block.
  • FIG. 6 shows a configuration example of the second logical physical conversion table 132.
  • a physical block different from the first block is assigned to a specific logical block.
  • the physical block registered in the second logical-physical conversion table 132 is referred to as a second block.
  • the second block is a block for writing update data when only a part of one block of data written in the first block is updated.
  • the minimum unit of update is a page that is a unit of writing to the block.
  • the second block can be registered in the second logical / physical conversion table 132 only when the additional write flag of the first block in the first logical / physical conversion table 131 is OFF (that is, no additional writing is possible).
  • the second block can be allocated to a maximum of four logical blocks.
  • the number of logical blocks that can be assigned to the second block may be set to an arbitrary value depending on the design of the nonvolatile memory device 100. Increasing the number of second blocks has the advantage that, when writing to a random logical address occurs, the probability of additional writing to the second block increases, and a reduction in writing speed can be prevented more effectively. .
  • the second logical-physical conversion table 132 may include information for managing the writing state of the second block. For example, as shown in FIG.
  • the writing speed can be increased.
  • the address management unit 106 includes a free block management table 140 for managing the usage status of each physical block.
  • FIG. 7 shows a configuration example of the free block management table 140.
  • the free block management table 140 holds information indicating whether all physical blocks in the nonvolatile memory 120 are in use or are free. “Free” means a physical block in which valid data is not registered and can be used for storing new data. On the other hand, “in use” is a physical block other than that, and the first block registered in the first logical physical conversion table 131 and the second block registered in the second logical physical conversion table 132. 2 block, a block storing system information used internally by the memory controller 110 (hereinafter referred to as a system information block), a defective block to which data cannot be written, and the like.
  • system information block a block storing system information used internally by the memory controller 110
  • the access device 200 manages the logical space using a FAT file system.
  • the FAT file system has various variations such as FAT12, FAT16, FAT32, exFAT, etc., as shown in FIG. 8, all of them include a file system management information storage area for storing file system management information, and stream data And a user data area for storing user data.
  • the user data area is divided into a plurality of units called clusters and managed. Data exceeding the size of the cluster is divided and stored in a plurality of clusters, and link information representing the connection between the clusters is managed as a FAT table in the file system management information area.
  • the basic unit of data writing by the access device 200 is a cluster.
  • a basic unit is an RU (Recording Unit) unit (FIG. 9) composed of a plurality of clusters having consecutive logical addresses.
  • the stream data write address designated by the access device 200 is incremented in order from the top in an AU (Allocation Unit) unit (FIG. 9) that is an integral multiple of the RU.
  • the memory controller 110 of the nonvolatile storage device 100 efficiently stores the stream data in the nonvolatile memory 120. Can write.
  • AU is described as having a size that is one time the logical block (that is, the same size).
  • FIG. 9 shows the relationship between AU, RU, and clusters.
  • the nonvolatile storage device 100 processes at least four commands transferred from the access device 200.
  • the “write command” (second command) is a command for writing data to the nonvolatile memory 120.
  • the “read command” is a command for reading the data stored in the nonvolatile memory 120 and transferring it to the access device 200.
  • the “initialization command” is a command for performing an initialization process for starting reading and writing to the nonvolatile storage device 100.
  • the “stream write control command” is a command for performing control when writing stream data.
  • FIG. 10 shows a format example of these commands.
  • the command 300 includes a start bit 301 (1 bit) indicating the start of the command, a command flag 302 (1 bit) indicating the command, a command index 303 (6 bits) indicating the command type, It includes an argument 304 (32 bits) for setting parameters according to the command type, a CRC 305 (7 bits) for detecting an error during command transfer, and an end bit 306 (1 bit) indicating the end of the command. It consists of bits (ie 6 bytes).
  • the write start logical address is stored in the argument 304 in units of sectors (in units of 512 bytes).
  • the read start logical address is stored in the argument 304 in units of sectors (512 bytes).
  • the stream write control command can extend the control method by providing a subcode 307 (4 bits) in the argument 304, and at least a sub for designating an AU for writing stream data. It is assumed that a “write AU designation” code is defined.
  • the stream write control command in which “write AU designation” is stored in the subcode is referred to as “stream write preparation command” (first command).
  • FIG. 11 shows a detailed format example of the stream write preparation command.
  • the stream write preparation command argument 304 includes a subcode 307 (4 bits) indicating “write AU designation”, a reserved bit 308 (1 bit) for future expansion, and an AU address 309 (AU address 309 (address of the AU to which the stream is written). 27 bits).
  • FIG. 12 is a flowchart showing processing when the memory controller 110 receives an initialization command.
  • Steps S101 to S103 After powering on the nonvolatile storage device 100, the memory controller 110 initializes hardware and becomes ready to receive commands. Thereafter, when receiving the “initialization command” from the access device 200, the memory controller 110 performs hardware initialization processing necessary to start accessing the nonvolatile memory 120.
  • FIG. 13 is a flowchart showing processing when the memory controller 110 receives a stream write preparation command.
  • Steps S201 to S206 When the memory controller 110 receives the “stream write preparation command” from the access device 200, the memory controller 110 uses the value of the AU address 309 and the size information of the AU set in the register unit 105 to specify a logical block corresponding to the designated AU (hereinafter, designated (Referred to as a logical block) is identified (S201).
  • the designated logical block is recognized as a logical block from which the access device 200 will perform stream writing.
  • the second logical-physical conversion table 132 of the address management unit 106 is referred to and it is determined whether or not the second block is allocated by searching whether or not the designated logical block is registered (S202). If registered, the second logical-physical conversion table 132 is updated to an unregistered state, thereby erasing the second block (S203).
  • erasing a block means that the block is in a state where dummy data such as all bits 0 or all bits 1 are read, that is, a state where data in the block is logically erased.
  • the second block becomes a free block and is reused in the free block management table 140, but the data written in the second block is logically erased as described above. Further, it is determined whether or not there is a registration of the physical block address of the first block corresponding to the designated logical block with reference to the first logical / physical conversion table 131 of the address management unit 106 (S204).
  • the first logical-physical conversion table 131 is updated to make the first block unallocated (unallocated), thereby erasing the first block (S205).
  • the erased first block becomes a free block in the free block management table 140 and is reused, but the written data is logically erased as described above.
  • FIG. 14 is a flowchart showing a process when the memory controller 110 receives a write command and accompanying write data.
  • Steps S301 to S312 When the memory controller 110 receives the “write command” from the access device 200, the memory controller 110 acquires a write start logical address (in units of sectors) from the argument 304 (S 301), and converts it into a logical block address. Thereafter, the first logical-physical conversion table 131 of the address management unit 106 is referred to, and an additional write flag of a logical block (hereinafter referred to as a designated logical block) is referred to (S302). If the append flag is OFF, it is further determined by referring to the second logical / physical conversion table 132 whether the second block is allocated (S303).
  • the second logical-physical conversion table 132 is referred to and the write state transferred from the access device 200 is referred to by referring to the write state of the second block. It is determined whether or not additional writing can be performed on an unwritten page of block 2 (S304).
  • step S305 the second block for writing the write data transferred from the access device 200 is selected. Processing for preparation is performed (S305). At this time, the system information block of the nonvolatile memory 120 is updated as necessary.
  • step S305 first, an empty entry of the second logical physical conversion table 132 is prepared. If there is no empty entry, the empty entry is prepared by canceling the registration of the logical block X already registered in the second logical physical conversion table 132. The process of deregistering the logical block X will be described with reference to FIG. First, an empty block is acquired from the empty block management table 140, and data is logically erased in the same manner as described above.
  • valid data for one logical block is copied from the data written in the first block and the second block constituting the logical block X to the empty block from which data has been erased.
  • the search for valid data includes information on the write state of the second logical-physical conversion table 132 and logical addresses in units of pages stored in the management information storage area 122 of the written page of the first block or the second block. This is done with reference to information.
  • the copy destination block is registered in the first logical-physical conversion table 131 as a new first block of the logical block X, and the additional writing flag is turned OFF.
  • the first block of the copy source becomes unallocated in the first logical-physical conversion table 131, and is registered as a free block in the free block management table 140 and reused.
  • the second block of the copy source is not registered in the second logical-physical conversion table 132, is further registered as a free block in the free block management table 140, and is reused.
  • step S303 determines whether the second block is allocated, and if it is determined in step S304 that the second block can be additionally written.
  • step S306 write data transferred by the access device 200 is transferred. Is written in the second block (S306). If the writing is completed, the process is terminated. If there is subsequent write data, the process from step S302 is performed on the next logical block (S307).
  • step S302 referring to the first logical-physical conversion table 131 of the address management unit 106, if the additional write flag of the designated logical block is ON, the first block registered in the first logical-physical conversion table 131 Referring to the logical address information in units of pages stored in the management information storage area 122 of the already written page, it is determined whether or not the write data transferred by the access device 200 can be additionally written to the first block ( S308). If additional writing is possible, write data to be transferred by the access device 200 is written to an unwritten page of the first block (S309).
  • step S308 when the access device 200 writes stream data to the first block with the additional write flag ON, the logical address is always controlled to be continuous, so that the determination in step S308 can always be performed. If it is determined that additional writing is impossible due to some abnormality, abnormal system processing (S312) is performed and the processing is terminated.
  • FIG. 16 is a flowchart showing processing when the memory controller 110 receives a read command.
  • Steps S401 to S407 When the memory controller 110 receives the “read command” from the access device 200, the memory controller 110 obtains a read start logical address (in sectors) from the argument 304 (S 401), and converts it into a logical block address. Thereafter, the first logical-physical conversion table 131 of the address management unit 106 is referred to refer to the additional write flag of the logical block (S402). If the append flag is OFF, it is further determined by referring to the second logical / physical conversion table 132 whether the second block is allocated (S403). When the second block is allocated, valid data is retrieved from the first block registered in the first logical-physical conversion table 131 and the second block, and read as read data to the access device 200. Transfer (S404).
  • This search for valid data is performed by information on the state of writing in the second logical-physical conversion table 132, or on a page-by-page basis stored in the management information storage area 122 of the written page of the first block or the second block. This is done with reference to address information and the like.
  • the second block is not assigned in step S403, the data read from the first block is transferred to the access device 200 as read data (S405).
  • dummy data such as all 0 bits or all 1 bits is transferred as read data. That is, in this embodiment, the unallocated block is managed as a state in which data is logically erased in this way.
  • FIG. 17 is a flowchart showing an initialization process related to the nonvolatile storage device 100 by the access device 200.
  • Steps S501 to S503 The access device 200 initializes hardware such as the card IF 204 (S501). When mounting of the nonvolatile memory device 100 is detected, the nonvolatile memory device 100 is powered on and the above-described “initialization command” is issued (S502). When the initialization of the nonvolatile storage device 100 is completed, the access device 200 acquires the AU size information stored in the register unit 105 of the nonvolatile storage device 100 via the card IF 204 (S503). Subsequently, the management information and the like of the file system stored in the non-volatile storage device 100 is read out and preparations for reading and writing by the file system are performed. ⁇ 1.5.2. Stream writing process> FIG.
  • FIG. 18 is a flowchart showing stream write processing by the access device 200.
  • Stream data input from the input unit 202 of the access device 200 is temporarily stored in the buffer 203, encoded by the encoding unit 207, and then written to the nonvolatile storage device 100 via the card IF 204.
  • Steps S601 to S609 the access device 200 refers to the management information of the file system and determines an AU to write stream data (S601).
  • the access device 200 writes stream data in units of RUs in order from the first RU in the AU. Therefore, the write RU is automatically determined with the determination of the write AU.
  • the access device 200 issues the “stream write preparation command” to the nonvolatile storage device 100 (S602).
  • the AU address 309 (FIG. 11) of the argument 304 the AU address determined in step S601 is designated.
  • the non-volatile storage device 100 performs the stream write preparation process of FIG. 13, and the first block, which is the erased physical block, is assigned to the AU with the additional write flag ON.
  • stream data for the size of the RU is prepared in the buffer 203 (S603). If it is prepared, the above-mentioned “write command” is issued to the nonvolatile storage device 100, and the stream data for the size of the RU stored in the buffer 203 is transferred (S604). At this time, the write start logical address (sector unit) designated by the argument 304 is designated in order from the first logical address of the AU designated by the “stream write preparation command”. As a result, the nonvolatile storage device 100 performs the writing process of FIG. 14 and additionally writes the transferred RU size data in order from the top of the first block of the additional writing flag ON. After the process of step S604, the access device 200 updates the file system information held in the internal RAM of the system control unit 208 to the state after the RU writing (S605).
  • step S606 It is determined whether the stream data has been written to the end of the AU (S606). If the stream data has not been written to the end of the AU, the first RU among the unwritten RUs in the AU is determined as the next write destination (S607), and the process returns to step S603. If data has been written to the end of the AU, the process returns to step S601 to search for the next write destination AU. On the other hand, if it is before the data is prepared in the buffer 203 in the process of step S603, when the stream data is completed (S609), the access device 200 holds it in the RAM or the like inside the system control unit 208.
  • FIG. 19 shows an example of a command / response / data transfer sequence in the above-described stream writing process.
  • At least the following five signal lines are provided between the card IF 204 of the access device 200 and the host IF 101 of the nonvolatile storage device 100.
  • One is a signal line (C / R) that transfers a command from the access device 200 to the nonvolatile storage device 100 and a response to the command from the nonvolatile storage device 100 to the access device 200.
  • the remaining four are signal lines (D0, D1, D2, D3) for transferring write and read data in parallel between the access device 200 and the nonvolatile memory device 100.
  • the horizontal direction is represented as a time axis, and represents the flow of time from left to right.
  • a stream writing preparation command and its response are transmitted and received, and the AU for writing stream data is shared. Thereafter, by repeating transmission / reception of a set of a write command, a response, and an accompanying write data transfer for each RU, the stream data is written to the AU. When writing to another AU, it is repeated from transmission / reception of a stream write preparation command.
  • FIG. 20 is a flowchart showing normal data write processing by the access device 200.
  • the normal data in this embodiment is a relatively large size such as data other than stream data, that is, file system management information, metadata associated with stream data, and data (eg, playlists) related to a plurality of stream data. Of small data. These data are managed on the RAM or the like of the system control unit 208 of the access device 200 and written into the nonvolatile storage device 100 via the card IF 204.
  • Steps S701 to S705 the access device 200 refers to the file system management information to determine a cluster to which normal data is written (S701).
  • the access device 200 issues the above-mentioned “write command” to the nonvolatile storage device 100, and transfers data for the cluster size stored in the RAM or the like of the system control unit 208 (S702).
  • the nonvolatile memory device 100 performs the writing process of FIG. 14 and writes the transferred cluster size data to the second block.
  • the preparation processing of the second block in step S305 (FIG. 14) is required. In this case, for example, a waiting time of 200 milliseconds to 300 milliseconds may occur, but previously written data is held for data other than the cluster data to be written this time.
  • the access device 200 updates the file system information held in the RAM or the like inside the system control unit 208 to the state after cluster writing (S703). If there is write data to the next cluster (S704), the process returns to step S701 to continue writing. When there is no data to be written to the next cluster, the file system information held in the RAM or the like in the system control unit 208 by the access device 200 is written in the nonvolatile storage device 100 (S705), and normal data write processing is performed.
  • FIG. 21 shows an example of a command / response / data transfer sequence in a normal write process.
  • the configuration of signal lines between the access device 200 and the nonvolatile memory device 100 is the same as that in FIG.
  • a set of a write command, a response, and an accompanying write data transfer is repeatedly transmitted and received in cluster units.
  • illustration is omitted, when write data transfer in units of clusters is completed, a stop command is transmitted from the access device 200 side, and a response to the stop command is transmitted from the nonvolatile storage device 100.
  • FIG. 22 is a flowchart showing data read processing by the access device 200. Data reading is performed on a cluster basis for both stream data and data other than stream data.
  • Steps S801 to S803 >> First, the access device 200 determines a cluster from which data is read with reference to the file system management information (S801). Next, the access device 200 issues the “read command” described above to the nonvolatile storage device 100, and stores the data received from the nonvolatile storage device 100 in the RAM or the buffer 203 of the system control unit 208 (S802). .
  • the access device 200 returns to the process of step S801 and continues to read, and if not, ends the process.
  • step S803 the access device 200 returns to the process of step S801 and continues to read, and if not, ends the process.
  • step S803 the access device 200 returns to the process of step S801 and continues to read, and if not, ends the process.
  • step S803 the access device 200 returns to the process of step S801 and continues to read, and if not, ends the process.
  • a stream write preparation command in advance
  • information regarding the address of the block is stored in a non-volatile manner.
  • the nonvolatile storage device 100 can write the stream data from the beginning of the erased block at a constant speed without performing unnecessary data copying.
  • the stream writing preparation process (FIG. 13) it is determined whether or not there is a first or second block to which the acquired AU address is assigned. If it is assigned, the block is erased and a new block is deleted. Therefore, a new block can
  • a memory controller, a nonvolatile storage device, an access device, and a nonvolatile storage system capable of recording large-capacity content data such as stream data while maintaining a certain writing speed. Can be provided. (Second Embodiment) ⁇ 2. Configuration of Nonvolatile Storage System 1>
  • the non-volatile storage system 1 according to the second embodiment of the present invention does not have the additional write flag provided for each logical block in the first logical-physical conversion table 131, and instead uses the stream management table 150 in the address management unit 106. I have.
  • the other configuration is the same as that of the first embodiment.
  • the structure similar to 1st Embodiment it refers with the same code
  • FIG. 23 shows a configuration example of the stream management table 150.
  • the stream management table 150 is used for managing the address of the logical block to which the access device 200 writes stream data and the write state of the first block corresponding to the logical block.
  • the fact that the logical block address is registered in the stream management table 150 is treated as equivalent to setting the append flag in the first embodiment to ON.
  • the address information of the logical block that is the stream data write destination and the information (for example, the number of pages that have been written) regarding the write status to the corresponding first block are registered for a maximum of four stream data. it can.
  • an additional flag is prepared for all logical blocks in the first logical-physical conversion table 131.
  • logical block addresses corresponding to the number of stream data to be written in parallel are stream managed.
  • the information is stored in the table 150. Therefore, when the number of stream data to be written in parallel is small, the memory used by the address management unit 106 can be reduced.
  • the determination as to whether or not additional writing to the first block is possible is performed.
  • the memory 120 can be accessed without access, and the speed can be increased.
  • the format of the “stream write preparation command” includes the stream number 310 so that the access device 200 can specify the stream number 310.
  • Other formats are the same as those in the first embodiment shown in FIG. ⁇ 2.3.
  • Operation of Nonvolatile Storage Device 100> The operation of the nonvolatile memory device 100 according to this embodiment is different from that of the first embodiment in the following points.
  • Stream write preparation processing> In the processing (FIG. 13) when the memory controller 110 receives a stream write preparation command, the present embodiment differs from the first embodiment in the following points.
  • step S206 the logical block address is registered in the stream management table 150 instead of turning on the additional write flag.
  • the registration destination stream number is the number specified by the stream number 310 of the argument 304. ⁇ 2.3.2.
  • write processing> Further, in the processing (FIG. 14) when the memory controller 110 receives a write command and accompanying write data, the present embodiment differs from the first embodiment in the following points.
  • step S302 it is determined whether or not the logical block address is registered in the stream management table 150 instead of determining whether or not the additional write flag is ON.
  • step S311 the registration of the logical block address is deleted from the stream management table 150 instead of turning off the additional write flag.
  • step S402 it is determined whether or not the logical block address is registered in the stream management table 150 instead of determining whether or not the additional write flag is ON.
  • the operation of the nonvolatile memory device 100 other than the above is substantially the same as that of the first embodiment.
  • ⁇ 2.4. Operation of Access Device 200> The access device 200 designates a different stream number for each stream data as the stream number 310 in issuing the stream write preparation command in step S602 of FIG. Other operations are almost the same as those in the first embodiment.
  • the memory controller, the non-volatile storage device, and the non-volatile storage system according to the present embodiment are effective in a semiconductor recording medium using a flash memory whose block size is increased with an increase in capacity.
  • the present embodiment has the following effects.
  • logical block addresses corresponding to the number of stream data written in parallel are stored in the stream management table 150. Therefore, when the number of stream data to be written in parallel is small, the memory used by the address management unit 106 can be reduced.
  • by holding the writing state of the first block in the stream management table 150 it is possible to determine whether or not additional writing to the first block is possible without accessing the nonvolatile memory 120, and speeding up can be achieved.
  • (1) In the above embodiment or the following embodiment, when the first and second blocks are vacant blocks, the blocks are erased. However, the blocks may be discarded. Discarding a block logically includes managing the block as an empty block.
  • managing the first or second block as an unallocated state For example, managing the first or second block as an unallocated state.
  • data remaining in an unallocated block may be erased or left as it is until new data is written, or any other data (for example, part or all of it)
  • the data may be different from the original data.
  • the data may have any content, and the data state may be normal or abnormal.
  • discarding arbitrary data is read at the time of reading.
  • the stream write preparation command includes the AU address 309 for identifying the AU-unit write range (first write range). It is not limited to.
  • the AU address may not be specified in the stream write preparation command, and the next received write command (second command) may include the AU address. That is, the stream write preparation command may only notify the writing of stream data, and the write command received next may include the AU address and the RU address (second write range identification information). In this case, processing as shown in FIGS. 25 and 26 is performed.
  • Steps S1201 to S1202 >> First, as shown in FIG. 25, when the memory controller 110 receives a “stream write preparation command” from the access device 200 (S1201), the memory controller 110 turns on a reception flag indicating that the command has been received (S1202).
  • Steps S1301 to S1303 >> Next, as shown in FIG. 26, when the memory controller 110 receives a “write command” from the access device 200, the memory controller 110 acquires a write start logical address (in sectors) from the argument 304 (S1301) and converts it into a logical block address. To do. Next, the memory controller 110 determines whether or not the reception flag of the “stream write preparation command” is ON (S1302). If the result of this determination is that the reception flag is ON, stream write preparation processing (the processing of S201 to 206 in FIG. 13) is performed (S1303). That is, when the reception flag is ON, the received “write command” is a command received next to the “stream write preparation command” in FIG. 25 and includes an AU address.
  • the memory controller 110 specifies the logical block corresponding to the designated AU from the value of the AU address and the AU size information set in the register unit 105, and the access device 200 will specify the designated logical block from now on. This is recognized as a logical block for stream writing. Then, the reception flag is turned off (S1304).
  • the processing of steps S302 to 312 in FIG. 14 is performed (S1305). That is, when the reception flag is OFF, since the logical block to which stream writing is performed has already been specified, normal RU unit writing processing is performed. According to the above configuration and processing, the memory controller 110 can erase a logical block when a stream write preparation command is received, and can erase a logical block when a write command occurs. As a result, when the stream writing process is stopped after the stream writing preparation command is issued, the AU data designated by the stream writing preparation command can be held.
  • the stream write preparation command includes a stream number, and processing may be performed in the same manner as in the second embodiment.
  • the command format in the above embodiment is an example. Depending on the nonvolatile storage system to be applied, the command format can be changed, one command can be divided into multiple commands, or multiple commands can be combined into one. The same effect can be expected without depending on it.
  • the AU is the same as the logical block size, but one AU may be composed of a plurality of blocks. For example, a super block that is a set of blocks that can be written in parallel may be set as AU, and a logical address management table or the like may be managed in units of super blocks. Thereby, a higher-speed nonvolatile memory device or the like can be provided.
  • step S203 or step S205 which is the process at the time of receiving the stream write preparation command shown in FIG. 13, but in the process of step S203 or step S205, the data is deleted. Only the reservation process for erasing may be performed, and data erasing may be performed when a write command to AU occurs. As a result, when the stream writing process is stopped after the stream writing preparation command is issued, the AU data designated by the stream writing preparation command can be held.
  • a response indicating an error is issued as the abnormal processing in step S312 of FIG. 14 and the processing is terminated.
  • the following modified example is also conceivable as processing for continuing writing.
  • Modification 1 After writing dummy data such as all bits 0 or all bits 1 to the unwritten page of the first block to complete writing to the first block, the append flag is turned OFF, and then the process of step S302 is performed. Return. As a result, although the writing speed is temporarily reduced, the written data can be held.
  • Modification 2 The first block is erased, another empty block is erased and assigned to the first block, and writing is performed. As a result, the written data is erased, but it is possible to avoid a significant decrease in the writing speed temporarily.
  • the upper limit of the number of stream data that can be managed by the stream management table 150 is four, but the present invention is not limited to this, and an arbitrary number of designs is possible.
  • the present invention is useful not only for a semiconductor memory card but also for a still image recording / reproducing device, a moving image recording / reproducing device, or a mobile phone using a non-volatile storage device such as a semiconductor memory card.
  • Nonvolatile memory system 100
  • Host interface (interface part) 102 buffer 103 read / write control unit 104
  • register unit 106 address management unit 110
  • memory controller 120 nonvolatile memory 121 block 122 page 123 data storage area 124 management information storage area 131 first logical physical conversion table 132 second logical physical conversion table 140 free block management table 150
  • Access device 201
  • Input control unit 202
  • Input unit 203
  • Buffer 204 Card interface
  • Display unit 206 Display control unit 207
  • Encoding unit 208 System control unit

Landscapes

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

Abstract

アクセス装置がブロックの全データをブロックよりもサイズの小さい単位で書き込む場合に、ブロックへの書き込み途中で書き込み速度が一時的に著しく低下することを回避する。不揮発性記憶装置(100)のメモリコントローラ(110)において、インターフェース部(101)は、データを書き込むための第1の書き込み範囲を識別する第1のコマンドと、第1の書き込み範囲の一部である第2の書き込み範囲を識別し第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドと、を受信する。アドレス管理部(106)は、不揮発性メモリへのデータの書き込み前に、第1のコマンドに基づいて、第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定する。読み書き制御部(103)は、第2のコマンドに応じて、新たなブロックにデータを記録する。

Description

不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
 本発明は、不揮発性メモリと不揮発性メモリを制御するメモリコントローラとを備えた半導体メモリカード等の不揮発性記憶装置、不揮発性記憶装置にアクセスするアクセス装置、不揮発性記憶装置とアクセス装置とを含む不揮発性記憶システム、及びメモリコントローラに関する。
 書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディア等と比較して高価格なものではある。しかし半導体メモリカードは、小型・軽量・耐震性・取り扱いの簡便さ等のメリットが大きいので、デジタルスチルカメラや携帯電話等、ポータブル機器の記録媒体としてその需要が広まっており、最近では民生用動画記録機器や放送局向けのプロ用動画記録機器の記録媒体としても利用されるようになってきた。加えて、ポータブル機器だけではなくデジタルテレビやDVDレコーダ等の据え置き機器にも半導体メモリカード用のスロットが標準搭載されている。
 この半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等、アクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
 近年、半導体メモリカードに格納する静止画や動画等のAVコンテンツの高品質化、すなわち1コンテンツあたりのデータサイズの大容量化に対応するために、半導体メモリカードに使用するフラッシュメモリの大容量化のニーズが高まっている。それに伴い、フラッシュメモリを構成するブロック(データ消去単位)のサイズが増大している。
 一方、アクセス装置は半導体メモリカードの記憶領域の管理をファイルシステムによって行うが、記録領域をできるだけ無駄なく使用するためにファイルシステムによる管理単位(クラスタ)は前記ブロックのサイズよりも小さいのが一般的である。そのため、1つのクラスタの書き換えで1つのブロック全体の書き換えを行うとデータ書き込み速度が著しく悪化する。そこで、メモリコントローラで、ブロック全体の書き換えが頻繁に発生するのを防ぎ、データ書き込み速度の低下を防止するものが知られている(例えば、特許文献1参照)。
 この従来技術では、データ消去単位である複数のブロックを1次ブロック群と2次ブロック群と予備ブロック群とに分け、前記1次ブロック群に属する1次ブロックへのデータ書き込み要求に対して、1次ブロックが完全に書き込み済みで追記できない場合に、前記2次ブロック群に属する2次ブロックを前記1次ブロックの拡張ブロックとして使用する。すなわち、前記2次ブロックに1次ブロックのデータの更新部分のデータのみを追記していく。そして、2次ブロックが完全に書き込み済みで追記できなくなった時点で、前記予備ブロック群に属する予備ブロックに1次ブロックと2次ブロックの有効データのみを整理して書き込み、コピー元である前記1次ブロックと前記2次ブロックの内容を消去して、それぞれ予備ブロック群及び2次ブロック群のブロックとする。これにより、ブロック全体の書き換え頻度を低減し、データ書き込み速度の低下を防止する。
特開2001-154909号公報
 しかしながら、前記1次ブロックと前記2次ブロックの有効データを整理して予備ブロックに書き込む時点ではデータ書き込み速度が一時的に著しく低下することを避けられない。更に、このデータ書き込み速度が一時的に著しく低下するタイミングは、フラッシュメモリを制御するメモリコントローラは把握することができるが、半導体メモリカードのアクセス装置では把握できない。このことは、ある一定の書き込み速度が継続的に必要である動画記録装置等のアクセス装置にとって、設計が困難となるという点で課題である。
 また、アクセス装置が動画等の大容量のコンテンツデータ(以降、ストリームデータと呼ぶ)の書き込みを行う場合、ブロックのサイズを超えるデータ更新が発生する。ブロックの全てのデータを更新する場合であっても、アクセス装置からのデータ書き込みはクラスタ単位で行われるため、メモリコントローラはブロックの全データが更新される予定であることを事前に知ることができない。よって、上記従来のメモリコントローラでは、2次ブロックの途中までデータが書き込まれた状態から、該ブロックの全データを更新するような書き込みが発生すると、メモリコントローラは1次ブロック及び2次ブロックに書き込み済みのデータを(最終的には全てが書き換えられるとは知らずに)保持したまま、2次ブロックの途中から追記を行う。その結果、1ブロック分のデータ書き込みの途中で前記整理の処理が発生し、書き込み速度が一時的に著しく低下することになる。
 本発明は、上記課題を解決すべくなされたものであり、その目的は、アクセス装置がブロックの全データをブロックよりもサイズの小さい単位で書き込む場合に、書き込み速度が一時的に著しく低下することのない、不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラを提供することにある。
 第1の発明は、不揮発性メモリと、不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラと、を備える不揮発性記憶装置であって、メモリコントローラは、インターフェース部と、アドレス管理部と、読み書き制御部と、を有する。
 インターフェース部は、データを書き込むための第1の書き込み範囲を識別する第1のコマンドと、第1の書き込み範囲の一部である第2の書き込み範囲を識別し第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドと、を受信する。
 アドレス管理部は、不揮発性メモリへのデータの書き込み前に、第1のコマンドに基づいて、第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定する。
 読み書き制御部は、第2のコマンドに応じて、新たなブロックにデータを記録する。
 ここで、データを書き込むための第1の書き込み範囲とは、例えば、不揮発性記憶装置がアクセス装置に提供するデータ読み書きのための論理空間をブロック単位で分割した範囲である。また、第2の書き込み範囲とは、例えば、アクセス装置によるデータ書き込み単位に相当する範囲である。ブロックとは、例えば、不揮発性メモリ内の物理的なブロックである。
 ここでは、不揮発性メモリへのデータの書き込み前に、第1のコマンドに基づいて、第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定し、第2のコマンドに応じてデータを書き込む。これにより、ストリームデータ等の大きなサイズのデータを連続的に書き込む場合であっても、データの書き込み途中にブロックの書き換え処理が発生する頻度を低減でき、データ書き込み速度が一時的に著しく低下することを防ぐことができる。
 第2の発明は、不揮発性メモリと、不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラと、を備える不揮発性記憶装置であって、メモリコントローラは、インターフェース部と、アドレス管理部と、読み書き制御部と、を有する。
 インターフェース部は、データの書き込みを通知する第1のコマンドと、同データの書き込みを指示する第2のコマンドと、を受信する。
 アドレス管理部は、不揮発性メモリへのデータの書き込み前に、インターフェース部により第1のコマンドの次に受信される第2のコマンドに基づいて、データを書き込むための新たなブロックを選定する。
 読み書き制御部は、インターフェース部により受信される第2のコマンドに応じて、新たなブロックにデータを記録する。
 インターフェース部により第1のコマンドの次に受信される第2のコマンドは、データを書き込むための第1の書き込み範囲を識別する情報と、第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、第2の書き込み範囲へのデータの書き込みを指示する。
 ここでは、実際にデータの書き込みが指示される第2のコマンドに基づいて、新たなブロックを選定されるため、第1コマンドによる大きなデータの書き込み処理が中止された場合であっても、第2コマンドが受信されるまではデータは破棄等されずに保持することができる。
 第3の発明は、第1又は第2の発明であって、アドレス管理部は、新たなブロックを選定する前に、第1の書き込み範囲に対し選定されている一以上のブロックがあるかどうかを判断し、一以上のブロックがあると判断した場合は、一以上のブロックを破棄する。
 ここで、ブロックを破棄するとは、例えば、第1の書き込み範囲に既に割り当てられたブロックを未割り当ての状態にし、論理上空のブロックとして管理することを含む。この場合、未割り当ての状態であるブロックに残されたデータは消去されてもよいし、新たなデータが書き込まれるまでそのまま残されていてもよい。つまり、どのような内容のデータであってもよく、データの状態も正常、異常を問わない。
 第4の発明は、第1又は第2の発明であって、アドレス管理部は、新たなブロックを選定する前に、第1の書き込み範囲に対し選定されている一以上のブロックがあるかどうかを判断し、一以上のブロックがあると判断した場合は、一以上のブロックを消去する。
 ここで、ブロックを消去するとは、例えば、当該ブロックを、全ビット0または全ビット1等のダミーデータが読み出されるような状態にすることをいう。
 ここでは、新たなブロックが選定される前に、すでに選定されているブロックがあるかどうかを判断し、その判断結果に応じてブロックを破棄又は消去するため、新たなブロックの選定をより確実に行うことができる。
 第5の発明は、第1又は第2の発明であって第1の書き込み範囲は、第2の書き込み範囲の整数倍である。
 第6の発明は、第1の発明であって、第1のコマンドは、第1の書き込み範囲を識別する第1の識別情報を含む。
 ここで、識別情報とは、例えば、第1の書き込み範囲を特定するアドレス情報である。
 第7の発明は、第1又は第2の発明であって、第1のコマンドは、ストリームデータを識別する第2の識別情報を含む。
 第8の発明は、第7の発明であって、アドレス管理部は、第2の識別情報毎に、新たなブロックを選定する。
 ここでは、より大きな書き込み範囲を基準にして新たなブロックの選定を行うため、管理するアドレスの情報量等を削減することができ、メモリ資源を節約できる。
 第9の発明は、第8の発明であって、アドレス管理部は、複数の第2の識別情報を保持し、読み書き制御部は、複数の第2の識別情報に対応する複数の新たなブロックに、並行してデータを記録する。
 ここでは、並行して送信される複数の大容量のデータの書き込み制御を高速且つ効率的に行うことができる。
 第10の発明は、不揮発性記憶装置へのデータの書き込み及び読み出しを制御するアクセス装置ある。このアクセス装置は、データを書き込むための第1の書き込み範囲を識別する情報を含む第1のコマンドを不揮発性記憶装置に送信し、第1のコマンドの送信後、第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報を含み第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドを、複数回、不揮発性記憶装置に送信する。
 ここでは、第1の書き込み範囲を識別する情報を含む第1のコマンドの送信後、第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報を含む第2のコマンドを、複数回、不揮発性記憶装置に送信する。
 これにより、ストリームデータ等の大きなサイズのデータを連続的に書き込む場合であっても、不揮発性記憶装置側においてデータの書き込み途中にブロックの書き換え処理が発生する頻度を低減でき、データ書き込み速度が一時的に著しく低下することを防ぐことができる。
 第11の発明は、不揮発性記憶装置へのデータの書き込み及び読み出しを制御するアクセス装置ある。このアクセス装置は、データの書き込みを通知する第1のコマンドを不揮発性記憶装置に送信し、第1のコマンドの送信後、それぞれがデータの書き込みを指示する第2のコマンドを、複数回、不揮発性記憶装置に送信する。第1のコマンドの次に送信される第2のコマンドは、データを書き込むための第1の書き込み範囲を識別する情報と、第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、第2の書き込み範囲へのデータの書き込みを指示する。
 第12の発明は、第1の発明~第9の発明のいずれか1つの不揮発性記憶装置と、第10又は第11発明のアクセス装置と、を備える。
 第13の発明は、不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラであって、インターフェース部と、アドレス管理部と、読み書き制御部と、備える。
 インターフェース部は、データを書き込むための第1の書き込み範囲を識別する第1のコマンドと、第1の書き込み範囲の一部である第2の書き込み範囲を識別し第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドと、を受信する。
 アドレス管理部は、不揮発性メモリへのデータの書き込み前に、第1のコマンドに基づいて、第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定する。
 読み書き制御部は、第2のコマンドに応じて、新たなブロックにデータを記録する。
 第14の発明は、不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラであって、インターフェース部と、アドレス管理部と、読み書き制御部と、備える。
 インターフェース部は、データの書き込みを通知する第1のコマンドと、データの書き込みを指示する第2のコマンドと、を受信する。
 アドレス管理部は、不揮発性メモリへのデータの書き込み前に、インターフェース部により第1のコマンドの次に受信される第2のコマンドに基づいて、データを書き込むための新たなブロックを選定する。
 読み書き制御部は、インターフェース部により受信される第2のコマンドに応じて、新たなブロックにデータを記録する。
 インターフェース部により第1のコマンドの次に受信される第2のコマンドは、データを書き込むための第1の書き込み範囲を識別する情報と、第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、第2の書き込み範囲へのデータの書き込みを指示する。
 本発明によれば、アクセス装置がブロックの全データをブロックよりもサイズの小さい単位で書き込んだ場合に、書き込み速度が一時的に著しく低下することを回避することが可能となる。
 従って、ある一定の書き込み速度を保ちつつ、ストリームデータ等の大容量のコンテンツデータを記録可能な不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラを提供することができる。
本発明の第1実施形態における不揮発性記憶システムを示すブロック図 フラッシュメモリとブロックの関係を示す図 ブロックとページの関係を示す図 ページの構成を示す図 第1実施形態における第1の論理物理変換テーブルを示す図 第1実施形態における第2の論理物理変換テーブルを示す図 第1実施形態における空きブロック管理テーブルを示す図 ファイルシステムによる論理空間の管理方法を示す図 AUとRUとクラスタの関係を示す図 第1実施形態におけるコマンドフォーマットを示す図 第1実施形態におけるストリーム書き込み準備コマンドのフォーマットを示す図 第1実施形態の不揮発性記憶装置による初期化コマンド受信時の処理を示すフローチャート 第1実施形態の不揮発性記憶装置によるストリーム書き込み準備コマンド受信時の処理を示すフローチャート 第1実施形態の不揮発性記憶装置による書き込みコマンド及び付随する書き込みデータ受信時の処理を示すフローチャート 第1実施形態における第2のブロックの準備処理の前後の状態例を示す図 第1実施形態の不揮発性記憶装置による読み出しコマンド受信時の処理を示すフローチャート 第1実施形態のアクセス装置による初期化処理を示すフローチャート 第1実施形態のアクセス装置によるストリーム書き込み処理を示すフローチャート 第1実施形態の不揮発性記憶システムにおけるストリームデータ書き込み時のコマンド・レスポンス・データの転送シーケンスを示す図 第1実施形態のアクセス装置による通常のデータ書き込み処理を示すフローチャート 第1実施形態の不揮発性記憶システムにおける通常のデータ書き込み時のコマンド・レスポンス・データの転送シーケンスを示す図 第1実施形態のアクセス装置によるデータ読み出し処理を示すフローチャート 本発明の第2実施形態におけるストリーム管理テーブルを示す図 第2実施形態におけるストリーム書き込み準備コマンドのフォーマットを示す図 他の実施形態の不揮発性記憶装置によるストリーム書き込み準備コマンド受信時の処理を示すフローチャート 他の実施形態の不揮発性記憶装置による書き込みコマンド及び付随する書き込みデータ受信時の処理を示すフローチャート
 以下、本発明の実施形態について添付の図面を参照しながら説明する。
 (第1実施形態)
 <1.不揮発性記憶システム1の構成>
 図1は、本発明の第1実施形態における不揮発性記憶システム1の構成を示している。
 本実施形態の不揮発性記憶システム1は、不揮発性記憶装置100と、不揮発性記憶装置100が装着されるアクセス装置200とを有する。
 <1.1.アクセス装置200の構成>
 アクセス装置200は、入力制御部201と、入力部202と、バッファ203と、カードインターフェース(カードIF)204と、表示部205と、表示制御部206と、符号化部207と、システム制御部208とを含む。アクセス装置100は、例えば、ビデオカメラ等の動画記録装置である。
 入力部202は、動画等のストリームデータが入力される部分であり、入力制御部201によって制御される。
 バッファ203は、入力部202から入力されたストリームデータを一時的に格納する部分であり、RAM等で構成される。
 カードIF204は、不揮発性記憶装置100にアクセスし、データの読み書きを行う部分である。
 表示部205は、不揮発性記憶システム1に関する情報を表示する部分であり、表示制御部206によって制御される。
 符号化部207は、バッファ203に格納されたストリームデータを符号化する部分である。
 システム制御部208は、内部にプログラム用のROMや作業用のRAMを含み、アクセス装置200全体を制御するものである。
 入力部202から入力されたストリームデータは一時的にバッファ203に格納され、符号化部207によって符号化された後、カードIF204を介して不揮発性記憶装置100に書き込まれる。
 <1.2.不揮発性記憶装置100の構成>
 不揮発性記憶装置100は、メモリコントローラ110と、フラッシュメモリ群である不揮発性メモリ120とを含む。
 <1.2.1.メモリコントローラ110>
 メモリコントローラ110は、アクセス装置200との通信を行うホストインターフェース(ホストIF)101と、バッファ102と、読み書き制御部103と、CPU104と、レジスタ部105と、アドレス管理部106とを含む。
 バッファ102は、RAM等で構成され、アクセス装置200から転送されたデータ、あるいは不揮発性メモリ120から読み出されたデータを一時的に保持するものである。バッファ102は、アクセス装置200とメモリコントローラ110間のデータ転送と、メモリコントローラ110と不揮発性メモリ120間のデータ転送の単位やタイミングの違いを吸収するのに利用される。
 読み書き制御部103は、アドレス管理部106が指定した物理アドレスに基づいてバッファ102に一時的に保持されたデータを不揮発性メモリ120に書き込む。更に、読み書き制御部103は、不揮発性メモリ120からデータを読み出し、該データを一時的にバッファ102に保持する。
 CPU104は、内部にプログラム用ROMや作業用のRAM等を含み、メモリコントローラ110全体を制御するものである。
 レジスタ部105は、不揮発性記憶装置100に関する各種のパラメータ情報を保持する部分である。
 アドレス管理部106は、アクセス装置200のアクセスに伴って転送された論理アドレスを不揮発性メモリ120内の物理アドレスに変換し、不揮発性メモリ120内の記録状態等を管理する部分である。
 本実施形態におけるアドレス管理部106は、第1の論理物理変換テーブル131(図5)と、第2の論理物理変換テーブル132(図6)と、空きブロック管理テーブル140(図7)とをRAM上に構築し、使用する。詳細は後述する。
 <1.2.2.不揮発性メモリ120>
 図2に示すように、不揮発性メモリ120であるフラッシュメモリは複数のブロック121から構成される。ブロック121はフラッシュメモリにおけるデータ消去単位である。
 更に、図3に示すように、各ブロック121は複数のページ122から構成される。ページ122はフラッシュメモリにおける書き込み単位である。ブロック121に対する書き込みは常に物理的に先頭のページから順に行われる。
 また、図4に示すように、各ページ122は、アクセス装置200から転送されたデータ等を格納するデータ格納領域123と、メモリコントローラ110が使用する管理情報を格納する管理情報格納領域124とを含む。管理情報格納領域124には、データ格納領域123に格納されたデータのページ単位の論理アドレス情報や、誤り訂正符号等の情報が格納される。
 <1.2.3.アドレス管理部106のテーブル>
 アドレス管理部106は、ブロック単位で論理アドレスと物理アドレスの対応を管理する第1の論理物理変換テーブル131と、第2の論理物理変換テーブル132とを含む。
 ≪第1の論理物理変換テーブル131≫
 図5は、第1の論理物理変換テーブル131の構成例を示す。第1の論理物理変換テーブル131には、論理ブロック(不揮発性記憶装置100がアクセス装置200に提供するデータ読み書きのための論理空間をブロック単位で分割したもの)と物理ブロック(不揮発性メモリ120内の物理的なブロック)の対応を1対1で管理する。以下、第1の論理物理変換テーブル131に登録された物理ブロックを第1のブロックと呼ぶ。
 本実施形態の特徴として、前記第1の論理物理変換テーブル131は、追記フラグを含む。追記フラグは、第1のブロックへの追記の可否に関する情報をON/OFFの2値で設定する。追記フラグがOFFの場合とは、第1のブロックの書き込みが完結している場合や、第1のブロックが未だ割り当てられていない場合等である。追記フラグがONの場合とは、第1のブロックに未書き込みのページが存在する場合である。
 ≪第2の論理物理変換テーブル132≫
 図6は、第2の論理物理変換テーブル132の構成例を示す。第2の論理物理変換テーブル132では、特定の論理ブロックに対して、前記第1のブロックとは別の物理ブロックを割り当てる。以下、第2の論理物理変換テーブル132に登録された物理ブロックを第2のブロックと呼ぶ。
 前記第2のブロックは、前記第1のブロックに書き込まれた1ブロック分のデータのうち、一部分のみを更新する場合に、更新データを書き込むためのブロックである。更新の最小単位は、ブロックへの書き込み単位であるページとなる。本実施形態では、第1の論理物理変換テーブル131において第1のブロックの追記フラグがOFF(すなわち追記不可)の場合にのみ、第2の論理物理変換テーブル132において第2のブロックを登録できるものとする。
 図6の例では最大4つの論理ブロックに対して、第2のブロックの割り当てを可能としている。この第2のブロックが割り当て可能な論理ブロックの数は、不揮発性記憶装置100の設計によって任意の値に設定してよい。第2のブロックの数を増加すると、ランダムな論理アドレスへの書き込みが発生した場合に、第2のブロックに追記できる確率が増加し、より効果的に書き込み速度の低下を防止できるというメリットがある。しかし、第1のブロックとは別のブロックの割り当てが必要となるので、不揮発性記憶装置100がアクセス装置200に提供できる論理空間を一定に保つためには、無制限に増加することはできない。
 また、第2の論理物理変換テーブル132は、第2のブロックの書き込み状態を管理するための情報を含んでいてもよい。例えば、図6に示すように、第2のブロックにおける書き込み済みのページ数や、書き込んだデータの論理アドレスが連続なのかランダムなのかといった情報を含んでいてもよい。これらの情報は、第2のブロックの書き込み済みのページの管理情報格納領域122を読み出すことによっても取得もしくは作成することができるが、RAM上に構成される第2の論理物理変換テーブル132の一部として保持することで、書き込み速度の高速化が期待できる。
 更に、アドレス管理部106は、各物理ブロックの使用状況を管理するための空きブロック管理テーブル140を備えている。
 図7は、空きブロック管理テーブル140の構成例を示す。空きブロック管理テーブル140は、不揮発性メモリ120内の全物理ブロックがそれぞれ使用中なのか空きなのかという情報を保持する。「空き」とは、有効なデータが登録されておらず、新しいデータの格納用として使用することができる物理ブロックであることを意味する。一方、「使用中」とは、それ以外の物理ブロックであり、前記第1の論理物理変換テーブル131に登録された第1のブロックや、前記第2の論理物理変換テーブル132に登録された第2のブロックや、メモリコントローラ110が内部的に使用するシステム情報を格納したブロック(以降、システム情報ブロックと呼ぶ)や、データ書き込みができない不良ブロック等が相当する。
 <1.3.アクセス装置200による論理空間の管理>
 <1.3.1.論理空間の管理の概要>
 次に、不揮発性記憶装置100が提供する論理空間をアクセス装置200が管理する方法について述べる。
 本実施形態におけるアクセス装置200は、前記論理空間をFATファイルシステムによって管理する。FATファイルシステムには、FAT12、FAT16、FAT32、exFAT等の様々なバリエーションが存在するが、いずれも図8に示すように、ファイルシステムの管理情報を格納するファイルシステム管理情報格納領域と、ストリームデータ等のユーザーデータを格納するユーザーデータ領域とから構成される。ユーザーデータ領域は、複数のクラスタと呼ばれる単位に分割されて管理される。クラスタのサイズを超えるデータは複数のクラスタに分割して格納され、クラスタ間のつながりを表すリンク情報は前記ファイルシステム管理情報領域内のFATテーブルとして管理される。
 従って、アクセス装置200によるデータ書き込みの基本単位はクラスタとなる。但し、ストリームデータの書き込みにおいては、論理アドレスが連続する複数のクラスタから構成されるRU(Recording Unit)単位(図9)を基本単位とする。これにより、サイズの大きいストリームデータの書き込みにおいて、不揮発性記憶装置100への書き込みコマンドを繰り返し発行することに伴うオーバーヘッドを削減することができる。
 更に、アクセス装置200が指定するストリームデータの書き込みアドレスは、前記RUの整数倍のAU(Allocation Unit)単位(図9)内で、先頭から順にインクリメントさせる。AUを論理ブロックの整数倍のサイズとすることにより、ストリームデータが論理ブロックの先頭から連続的に書き込まれるため、不揮発性記憶装置100のメモリコントローラ110はストリームデータを不揮発性メモリ120に効率的に書き込むことができる。なお、本実施形態ではAUを論理ブロックの1倍のサイズ(すなわち同じサイズ)として説明する。
 図9にAUとRUとクラスタの関係を示す。
 <1.3.2.コマンドフォーマット>
 不揮発性記憶装置100は、アクセス装置200から転送される少なくとも4つのコマンドを処理する。
 「書き込みコマンド」(第2のコマンド)は、データを不揮発性メモリ120に書き込むためのコマンドである。「読み出しコマンド」は、不揮発性メモリ120に格納されたデータを読み出してアクセス装置200に転送するためのコマンドである。「初期化コマンド」は、不揮発性記憶装置100への読み書きを開始するための初期化処理をするためのコマンドである。「ストリーム書き込み制御コマンド」は、ストリームデータを書き込むときの制御を行うためのコマンドである。
 図10にこれらのコマンドのフォーマット例を示す。図10の例において、コマンド300は、コマンドの開始を示すスタートビット301(1ビット)、コマンドであることを示すコマンドフラグ302(1ビット)、コマンドの種別を示すコマンドインデックス303(6ビット)、コマンドの種別に応じたパラメータを設定するアーギュメント304(32ビット)、コマンド転送時のエラーを検出するためのCRC305(7ビット)、コマンドの終端を示すエンドビット306(1ビット)を含み、計48ビット(すなわち、6バイト)で構成される。
 前記書き込みコマンドの場合には、アーギュメント304に書き込み開始論理アドレスがセクタ単位(512バイト単位)で格納される。
 前記読み出しコマンドの場合には、アーギュメント304に読み出し開始論理アドレスがセクタ単位(512バイト単位)で格納される。
 前記ストリーム書き込み制御コマンドは、図11に示すように、アーギュメント304内にサブコード307(4ビット)を設けることで制御の方法を拡張できるものとし、少なくともストリームデータを書き込むAUを指定するためのサブコードである「書き込みAU指定」が定義されているものとする。
 以下、サブコードに「書き込みAU指定」が格納されたストリーム書き込み制御コマンドを「ストリーム書き込み準備コマンド」(第1のコマンド)と呼称する。
 図11にストリーム書き込み準備コマンドのフォーマット詳細例を示す。ストリーム書き込み準備コマンドのアーギュメント304は、「書き込みAU指定」を示すサブコード307(4ビット)と、将来拡張用の予約ビット308(1ビット)と、ストリームを書き込むAUのアドレスであるAUアドレス309(27ビット)とから構成される。
 書き込みコマンドや読み出しコマンドでは、論理アドレスをセクタ単位で32ビットで表現できるので最大2TB(テラバイト)の論理空間を管理できる。一方、AUアドレスは27ビットの表現となるが、1つのAUのサイズが16KB以上であれば2TB以上の論理空間を管理できることになる。
 <1.4.不揮発性記憶装置100の動作>
 まず、不揮発性記憶装置100の動作を説明する。
 <1.4.1.初期化処理>
 図12は、メモリコントローラ110による初期化コマンド受信時の処理を示すフローチャートである。
 ≪ステップS101~S103≫
 不揮発性記憶装置100への電源投入後、メモリコントローラ110はハードウェアの初期化を行い、コマンドを受信可能な状態となる。その後、アクセス装置200から前記「初期化コマンド」を受信すると、メモリコントローラ110が不揮発性メモリ120にアクセスを開始するために必要なハードウェアの初期化処理を行う。
 その後、メモリコントローラ110は読み書き制御部103を介して不揮発性メモリ120にアクセスし、不揮発性メモリ120に格納されている、アドレス管理のためのシステム情報が格納されたシステム情報ブロックを読み出し、アドレス管理部106に第1の論理物理変換テーブル131、第2の論理物理変換テーブル132、空きブロック管理テーブル140等を作成する(S102)。
 更に、前記システム情報ブロックやCPU104のROMに格納された情報を参照して、レジスタ部105に各種のパラメータ情報を設定する(S103)。パラメータ情報として、少なくともAUのサイズ情報を含むものとする。
 <1.4.2.ストリーム書き込み準備処理>
 図13は、メモリコントローラ110によるストリーム書き込み準備コマンド受信時の処理を示すフローチャートである。
 ≪ステップS201~S206≫
 メモリコントローラ110は、アクセス装置200から「ストリーム書き込み準備コマンド」を受信すると、AUアドレス309の値とレジスタ部105に設定したAUのサイズ情報から、指定されたAUに対応する論理ブロック(以下、指定論理ブロックと呼ぶ。)を特定する(S201)。指定論理ブロックはアクセス装置200がこれからストリーム書き込みを行う論理ブロックとして認知される。
 その後、アドレス管理部106の第2の論理物理変換テーブル132を参照し、指定論理ブロックの登録があるかどうかを検索することで、第2のブロックが割り当てられているかを判断する(S202)。
 登録があった場合には、第2の論理物理変換テーブル132を更新して未登録状態とすることで、第2のブロックを消去する(S203)。
 本実施形態において、ブロックを消去するとは、当該ブロックを、全ビット0または全ビット1等のダミーデータが読み出されるような状態にする、つまり当該ブロックにおけるデータを論理上消去した状態にすることをいう。
 同第2のブロックは空きブロック管理テーブル140において空きブロックとなり再利用されるが、同第2のブロックに書き込まれていたデータは上述のように論理上消去される。
 更に、アドレス管理部106の第1の論理物理変換テーブル131を参照して指定論理ブロックに対応する第1のブロックの物理ブロックアドレスの登録があるかどうかを判断する(S204)。
 登録があった場合には、第1の論理物理変換テーブル131を更新して第1のブロックを未割り当て(未アロケート)の状態とすることで、第1のブロックを消去する(S205)。消去された第1のブロックは空きブロック管理テーブル140において空きブロックとなり再利用されるが、書き込まれていたデータは上記と同様に論理上消去される。
 空きブロック管理テーブル140を参照して空きブロックを取得してデータを論理上消去した後、第1の論理物理変換テーブル131の指定論理ブロックに対する第1のブロックとして消去済みの物理ブロックを登録し、その追記フラグをONに設定する(S206)。
 以上の処理によって、ストリーム書き込み準備処理コマンドによって指定されたAUに対応する物理ブロックの書き込み済みデータは論理上消去されるとともに、前記AUには消去済みの物理ブロックが割り当てられ、先頭ページからの書き込みが可能な状態となる。
 <1.4.3.書き込み処理>
 図14は、メモリコントローラ110による書き込みコマンド及び付随する書き込みデータ受信時の処理を示すフローチャートである。
 ≪ステップS301~S312≫
 メモリコントローラ110は、アクセス装置200から上記「書き込みコマンド」を受信すると、アーギュメント304から書き込み開始論理アドレス(セクタ単位)を取得し(S301)、論理ブロックアドレスに変換する。
 その後、アドレス管理部106の第1の論理物理変換テーブル131を参照して、論理ブロック(以下、指定論理ブロックと呼ぶ。)の追記フラグを参照する(S302)。
 追記フラグがOFFの場合は、更に第2の論理物理変換テーブル132を参照して第2のブロックが割り当てられているかを判断する(S303)。
 第2のブロックが割り当てられている場合は、第2の論理物理変換テーブル132を参照し、該第2のブロックの書き込み状態を参照することで、アクセス装置200から転送される書き込みデータを該第2のブロックの未書き込みページに追記できるか否かを判断する(S304)。
 ステップS303で第2のブロックが割り当てられていない場合や、ステップS304で第2のブロックに追記できないと判断した場合には、アクセス装置200から転送される書き込みデータを書き込むための第2のブロックを準備するための処理を行う(S305)。このとき、必要に応じて不揮発性メモリ120のシステム情報ブロックの更新を行う。
 ステップS305の処理では、まず第2の論理物理変換テーブル132の空きエントリを準備する。空きエントリがない場合は、既に第2の論理物理変換テーブル132に登録済みの論理ブロックXの登録を解消することで空きエントリを準備する。
 この論理ブロックXの登録解消の処理を図15を用いて説明する。まず、空きブロック管理テーブル140から空きブロックを取得し、上記と同様にデータを論理上消去する。その後、論理ブロックXを構成する第1のブロックと第2のブロックに書き込み済みのデータから、1論理ブロック分の有効なデータを前記データ消去済みの空きブロックにコピーする。有効なデータの検索は、第2の論理物理変換テーブル132の書き込み状態の情報や、第1のブロックや第2のブロックの書き込み済みページの管理情報格納領域122に格納されたページ単位の論理アドレス情報等を参照して行われる。そして、コピー先のブロックを論理ブロックXの新たな第1のブロックとして第1の論理物理変換テーブル131に登録し、追記フラグはOFFとする。これに伴い、コピー元の第1のブロックは第1の論理物理変換テーブル131において未割り当てとなるので、空きブロック管理テーブル140にて空きブロックとして登録され、再利用される。また、コピー元の第2のブロックは第2の論理物理変換テーブル132において未登録とされ、更に空きブロック管理テーブル140にて空きブロックとして登録され、再利用する。
 以上により、論理ブロックXの有効データを保持しつつ、第2の論理物理変換テーブル132に空きエントリを準備することができる。但し、1論理ブロック分の有効なデータのコピーには比較的長い時間が必要であり、フラッシュメモリの品種にもよるが、例えば200ミリ秒~300ミリ秒を要する。
 一方、ステップS303で第2のブロックが割り当てられていると判断し、更にステップS304で第2のブロックを追記できると判断した場合は、ステップS306の処理に進み、アクセス装置200が転送する書き込みデータを第2のブロックに書き込む(S306)。
 書き込みが完了すれば処理を終了し、続きの書き込みデータがある場合には次の論理ブロックに対してステップS302からの処理を実施する(S307)。
 ステップS302において、アドレス管理部106の第1の論理物理変換テーブル131を参照して、指定論理ブロックの追記フラグがONの場合は、第1の論理物理変換テーブル131に登録された第1のブロックの書き込み済みページの管理情報格納領域122に格納されたページ単位の論理アドレス情報等を参照して、アクセス装置200が転送する書き込みデータを該第1のブロックに追記可能か否かを判断する(S308)。
 追記可能であれば該第1のブロックの未書き込みページにアクセス装置200が転送する書き込みデータを書き込んでいく(S309)。
 なお、後述するが、アクセス装置200が追記フラグONの第1のブロックにストリームデータを書き込む場合は、常に論理アドレスが連続になるように制御するため、ステップS308の判断は常に追記可能となる。なんらかの異常によって、追記不可と判断された場合には異常系処理(S312)を行って処理を終了する。
 ステップS309の処理後、該第1のブロックの未書き込みページが全て書き込み済みになったかどうかを判断する(S310)。全て書き込み済みになる前に書き込みが完了すれば処理を終了する。
 全て書き込み済みになった場合には、第1の論理物理変換テーブル131の追記フラグをONからOFFに変更し、必要に応じて不揮発性メモリ120のシステム情報ブロックを更新する(S311)。
 そして、書き込みが完了すれば処理を終了するが、続きの書き込みデータがある場合には次の論理ブロックに対してステップS302からの処理を実施する(S307)。
 <1.4.4.読み出し処理>
 図16は、メモリコントローラ110による読み出しコマンド受信時の処理を示すフローチャートである。
 ≪ステップS401~S407≫
 メモリコントローラ110は、アクセス装置200から前記「読み出しコマンド」を受信すると、アーギュメント304から読み出し開始論理アドレス(セクタ単位)を取得し(S401)、論理ブロックアドレスに変換する。
 その後、アドレス管理部106の第1の論理物理変換テーブル131を参照して、論理ブロックの追記フラグを参照する(S402)。
 追記フラグがOFFの場合は、更に第2の論理物理変換テーブル132を参照して第2のブロックが割り当てられているかを判断する(S403)。
 第2のブロックが割り当てられている場合は、第1の論理物理変換テーブル131に登録された第1のブロックと前記第2のブロックから有効なデータを検索して、読み出しデータとしてアクセス装置200に転送する(S404)。
 この有効なデータの検索は、第2の論理物理変換テーブル132の書き込み状態の情報や、第1のブロックや第2のブロックの書き込み済みページの管理情報格納領域122に格納されたページ単位の論理アドレス情報等を参照して行われる。
 一方、ステップS403で第2のブロックが割り当てられていない場合には、第1のブロックから読み出したデータを読み出しデータとしてアクセス装置200に転送する(S405)。
 ステップS404及びS405の処理において、第1のブロックが未割り当てであり、読み出し対象のデータが存在しない場合には、全ビット0または全ビット1等のダミーデータを読み出しデータとして転送する。すなわち、本実施形態では、未割り当ての状態のブロックは、このようにデータが論理上消去された状態として管理されている。
 ステップS402において追記フラグがONの場合は、第1の論理物理変換テーブル131に登録された第1のブロックから読み出したデータを読み出しデータとしてアクセス装置200に転送する(S406)。読み出し対象が未書き込みページに相当する場合には、全ビット0または全ビット1等のダミーデータを読み出しデータとして転送してもよい。
 その後、読み出しが完了すれば処理を終了するが、次の論理ブロックに対して読み出しが必要な場合にはステップS402からの処理を実施する(S407)。
 <1.5.アクセス装置200の動作>
 次に、アクセス装置200の動作を説明する。
 <1.5.1.初期化処理>
 図17は、アクセス装置200による不揮発性記憶装置100に関する初期化処理を示すフローチャートである。
 ≪ステップS501~S503≫
 アクセス装置200は、カードIF204等のハードウェアを初期化する(S501)。
 不揮発性記憶装置100の装着を検出すると、不揮発性記憶装置100に電源を投入し、上述した「初期化コマンド」を発行する(S502)。
 不揮発性記憶装置100の初期化が完了すると、アクセス装置200はカードIF204を介して不揮発性記憶装置100のレジスタ部105に格納されたAUのサイズ情報等を取得する(S503)。続けて、不揮発性記憶装置100に格納されたファイルシステムの管理情報等を読み出してファイルシステムによる読み書きの準備を行う。
 <1.5.2.ストリーム書き込み処理>
 図18は、アクセス装置200によるストリーム書き込み処理を示すフローチャートである。アクセス装置200の入力部202から入力されたストリームデータはバッファ203に一時的に格納され、符号化部207で符号化された後、カードIF204を介して不揮発性記憶装置100に書き込まれる。
 ≪ステップS601~S609≫
 まず、アクセス装置200はファイルシステムの管理情報を参照して、ストリームデータを書き込むAUを決定する(S601)。本実施形態においてアクセス装置200は、ストリームデータをAU内の先頭RUから順番にRU単位で書き込んでいく。従って、書き込みAUの決定に伴い、書き込みRUも自動的に決定される。
 次に、アクセス装置200は、不揮発性記憶装置100に対し上記「ストリーム書き込み準備コマンド」を発行する(S602)。アーギュメント304のAUアドレス309(図11)にはステップS601で決定したAUのアドレスを指定する。これにより、不揮発性記憶装置100では図13のストリーム書き込み準備処理を行い、該AUには消去済みの物理ブロックである第1のブロックが追記フラグONの状態で割り当てられる。
 バッファ203にRUのサイズ分のストリームデータが準備されているかどうかを判断する(S603)。
 準備されている場合は、不揮発性記憶装置100に上述の「書き込みコマンド」を発行し、バッファ203に格納されたRUのサイズ分のストリームデータを転送する(S604)。このとき、アーギュメント304で指定する書き込み開始論理アドレス(セクタ単位)は、上記「ストリーム書き込み準備コマンド」で指定したAUの先頭論理アドレスから順に指定する。これにより、不揮発性記憶装置100では図14の書き込み処理を行い、転送されたRUサイズのデータを追記フラグONの第1のブロックの先頭から順に追記していく。
 ステップS604の処理の後、アクセス装置200はシステム制御部208の内部のRAM等に保持しているファイルシステム情報を、RU書き込み後の状態に更新する(S605)。
 ストリームデータをAUの最後まで書き込まれたかどうかを判断する(S606)。
 ストリームデータをAUの最後まで書き込まれていない場合は、AU内の未書き込みRUのうち先頭のRUを次の書き込み先に決定し(S607)、ステップS603の処理に戻る。AUの最後までデータを書き込んだ場合には、次の書き込み先AUを探すためにステップS601の処理に戻る。
 一方、ステップS603の処理で、バッファ203にデータが準備される前である場合には、ストリームデータが終了した場合(S609)には、アクセス装置200がシステム制御部208の内部のRAM等に保持しているファイルシステム情報を不揮発性記憶装置100に書き込んで(S609)、ストリーム書き込み処理を終了する。
 ≪ストリーム書き込み処理の転送シーケンス≫
 図19は、上述したストリーム書き込み処理におけるコマンド・レスポンス・データの転送シーケンス例を示す。
 図19では、アクセス装置200のカードIF204と不揮発性記憶装置100のホストIF101の間で、少なくとも次の5本の信号線を備えている。1つはアクセス装置200から不揮発性記憶装置100へのコマンドや、不揮発性記憶装置100からアクセス装置200へのコマンドに対するレスポンスを転送する信号線(C/R)である。残りの4つは、書き込みや読み出しのデータをアクセス装置200及び不揮発性記憶装置100間で並列に転送するための信号線(D0、D1、D2、D3)である。
 図19において、水平方向は時間軸と表しており、左から右に時間の流れを表している。ストリーム書き込み処理は、最初にストリーム書き込み準備コマンドとそのレスポンスが送受信されて、ストリームデータを書き込むAUが共有される。その後、RU単位で、書き込みコマンド、レスポンス、及び付随する書き込みデータ転送の組が送受信されるのを繰り返すことで、前記AUに対するストリームデータ書き込みが行われる。別のAUに書き込む場合には、ストリーム書き込み準備コマンドの送受信からの繰り返しとなる。
 なお、図示は省略しているが、RU単位の書き込みデータ転送が終了したときは、アクセス装置200側からストップコマンドが送信され、不揮発性記憶装置100からストップコマンドに対するレスポンスが送信される。
 <1.5.3.通常のデータの書き込み処理>
 図20は、アクセス装置200による通常のデータの書き込み処理を示すフローチャートである。本実施形態における通常のデータとはストリームデータ以外のデータ、すなわちファイルシステムの管理情報やストリームデータに付随するメタデータや複数のストリームデータに関連するデータ(例えば、プレイリスト)等の、比較的サイズの小さいデータを指す。これらのデータはアクセス装置200のシステム制御部208のRAM上等で管理され、カードIF204を介して不揮発性記憶装置100に書き込まれる。
 ≪ステップS701~S705≫
 まず、アクセス装置200は、ファイルシステムの管理情報を参照して、通常のデータを書き込むクラスタを決定する(S701)。
 次に、アクセス装置200は、不揮発性記憶装置100に上述した「書き込みコマンド」を発行し、システム制御部208のRAM等に格納されたクラスタサイズ分のデータを転送する(S702)。これにより、不揮発性記憶装置100では図14の書き込み処理を行い、転送されたクラスタサイズのデータを第2のブロックに書き込む。第2の論理物理変換テーブル132(図6)の状態によっては、ステップS305(図14)の第2のブロックの準備処理が必要となる。この場合、例えば200ミリ秒~300ミリ秒の待ち時間が発生する場合があるが、今回書き込むクラスタデータ以外のデータについては以前に書き込んだデータが保持される。
 ステップS702の処理の後、アクセス装置200はシステム制御部208の内部のRAM等に保持しているファイルシステム情報を、クラスタ書き込み後の状態に更新する(S703)。
 次のクラスタへの書き込みデータがある場合には(S704)、ステップS701の処理に戻って書き込みを継続する。
 次のクラスタへの書き込みデータがない場合、アクセス装置200がシステム制御部208の内部のRAM等に保持しているファイルシステム情報を不揮発性記憶装置100に書き込んで(S705)、通常のデータ書き込み処理を終了する。
 ≪通常の書き込み処理の転送シーケンス≫
 図21に通常の書き込み処理におけるコマンド・レスポンス・データの転送シーケンス例を示す。図21において、アクセス装置200と不揮発性記憶装置100間の信号線の構成は図19の場合と同様である。通常のデータ書き込み処理は、クラスタ単位で、書き込みコマンド、レスポンス、及び付随する書き込みデータ転送の組が送受信されるのを繰り返す。なお、図示は省略しているが、クラスタ単位の書き込みデータ転送が終了したときは、アクセス装置200側からストップコマンドが送信され、不揮発性記憶装置100からストップコマンドに対するレスポンスが送信される。
 <1.5.4.データ読み出し処理>
 図22は、アクセス装置200によるデータ読み出し処理を示すフローチャートである。データの読み出しはストリームデータもストリームデータ以外のデータも同様にクラスタ単位で行われる。
 ≪ステップS801~S803≫
 まず、アクセス装置200は、ファイルシステムの管理情報を参照して、データを読み出すクラスタを決定する(S801)。
 次に、アクセス装置200は、不揮発性記憶装置100に上述した「読み出しコマンド」を発行し、システム制御部208のRAMまたはバッファ203等に不揮発性記憶装置100から受信したデータを格納する(S802)。
 アクセス装置200は、次のクラスタの読み出し要求がある場合には(S803)、ステップS801の処理に戻って読み出しを継続し、なければ処理を終了する。
 <1.6.第1実施形態の効果>
 本実施形態によれば、アクセス装置200がブロックの全データをブロックよりもサイズの小さい単位で書き込む場合には、予め、ストリーム書き込み準備コマンドを発行することで、該ブロックのアドレスに関する情報を不揮発性記憶装置100に通知する。これにより、不揮発性記憶装置100は無用な整理のためのデータコピーを行うことなく、消去済みのブロックの先頭からストリームデータを一定の速度で書き込むことが可能となる。
 また、ストリーム書き込み準備処理(図13)においては、取得したAUアドレスが割り当てられた第1又は第2のブロックがあるかどうかを判断し、割り当てられている場合はブロックを消去し、新たなブロックを割り当てるため、より確実に新たなブロックの割り当てが可能となる。
 以上のように、本実施形態によれば、ある一定の書き込み速度を保ちつつ、ストリームデータ等の大容量のコンテンツデータを記録可能なメモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システムを提供することができる。
 (第2実施形態)
 <2.不揮発性記憶システム1の構成>
 本発明の第2実施形態における不揮発性記憶システム1は、第1の論理物理変換テーブル131において論理ブロック毎に設けていた追記フラグを有さず、代わりにアドレス管理部106にストリーム管理テーブル150を備えている。それ以外の構成は第1実施形態のものと同様である。なお、第1実施形態と同様である構成については、同一の符号をもって参照し、詳細な説明は省略する。
 <2.1.ストリーム管理テーブル150>
 図23にストリーム管理テーブル150の構成例を示す。
 ストリーム管理テーブル150は、アクセス装置200がストリームデータを書き込む論理ブロックのアドレスと、その論理ブロックに対応する第1のブロックの書き込み状態を管理するために用いる。ストリーム管理テーブル150に論理ブロックアドレスが登録されていることは、第1実施形態における追記フラグがONに設定されることと等価な扱いとする。
 図23の例では、最大4個のストリームデータに対して、ストリームデータ書き込み先の論理ブロックのアドレス情報と、対応する第1のブロックへの書き込み状態に関する情報(例えば書き込み済みのページ数)を登録できる。
 第1実施形態では、第1の論理物理変換テーブル131の全論理ブロックに対して追加フラグを用意していたが、第2実施形態では並列に書き込むストリームデータの数だけの論理ブロックアドレスをストリーム管理テーブル150に記憶するようにしている。従って、並列に書き込むストリームデータの数が少ない場合には、アドレス管理部106が使用するメモリを削減することができる。
 更に、ストリーム管理テーブル150に第1のブロックの書き込み状態を保持することにより、不揮発性記憶装置100による書き込み処理において、図14のステップS308では、第1のブロックへの追記の可否の判定を不揮発性メモリ120へのアクセスなし行うことができ、高速化が図れる。
 <2.2.アクセス装置200による論理空間の管理>
 不揮発性記憶装置100が提供する論理空間をアクセス装置200が管理する方法は第1実施形態と同様である。
 <2.2.1.コマンドフォーマット>
 「ストリーム書き込み準備コマンド」のフォーマットは、図24に示すように、ストリーム番号310を含むことにより、アクセス装置200がストリーム番号310を指定できるようにする。それ以外のフォーマットは図11に示す第1実施形態と同様である。
 <2.3.不揮発性記憶装置100の動作>
 本実施形態に係る不揮発性記憶装置100の動作は、以下の点において第1実施形態と異なる。
 <2.3.1.ストリーム書き込み準備処理>
 メモリコントローラ110がストリーム書き込み準備コマンドを受信した場合の処理(図13)においては、本実施形態は第1実施形態と次の点において異なる。
 ステップS206において、追記フラグをONにする代わりに、ストリーム管理テーブル150に論理ブロックアドレスを登録する。登録先のストリーム番号は、アーギュメント304のストリーム番号310で指定された番号とする。
 <2.3.2.書き込み処理>
 また、メモリコントローラ110が書き込みコマンド及び付随する書き込みデータを受信した場合の処理(図14)においては、本実施形態は第1実施形態と次の点において異なる。
 ステップS302では、追記フラグがONか否かを判断する代わりに、ストリーム管理テーブル150に該論理ブロックアドレスの登録があるか否かを判断する。
 ステップS311では、追記フラグをOFFにする代わりに、ストリーム管理テーブル150から論理ブロックアドレスの登録を削除する。
 <2.3.3.読み出し処理>
 また、メモリコントローラ110が読み出しコマンドを受信した場合の処理(図16)においては、本実施形態は第1実施形態と次の点において異なる。
 ステップS402では、追記フラグがONか否かを判断する代わりに、ストリーム管理テーブル150に該論理ブロックアドレスの登録があるか否かを判断する。
 上記以外の不揮発性記憶装置100の動作については、第1実施形態とほぼ同様である。
 <2.4.アクセス装置200の動作>
 アクセス装置200は、図18のステップS602のストリーム書き込み準備コマンドの発行において、ストリームデータ毎に異なるストリーム番号をストリーム番号310として指定する。その他の動作については第1実施形態とほぼ同様である。
 <2.5.第2実施形態の効果>
 以上のように、本実施形態においては、第1実施形態と同様に、アクセス装置200がブロックの全データをブロックよりもサイズの小さい単位で書き込む場合には、予め、ストリーム書き込み準備コマンドを発行することで該ブロックのアドレスに関する情報を不揮発性記憶装置100に通知する。これにより、不揮発性記憶装置100は無用な整理のためのデータコピーを行うことなく、消去ブロックの先頭からストリームデータを書き込むことが可能となる。従って、ある一定の書き込み速度を保ちつつ、ストリームデータ等の大容量のコンテンツデータを記録可能なメモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システムを提供する貴社ますますご清祥のこととお喜び申し上げます。平素は格別のご高配を賜り、厚くお礼申し上げます。ことができる。特に、本実施形態に係るメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムは、大容量化に伴い大ブロック化が進むフラッシュメモリを用いた半導体記録媒体において有効である。
 また、本実施形態においては、第1実施形態の効果に加えて、次の効果を有する。本実施形態によれば、並行して書き込むストリームデータの数だけの論理ブロックアドレスをストリーム管理テーブル150に記憶するようにしている。従って、並列に書き込むストリームデータの数が少ない場合には、アドレス管理部106が使用するメモリを削減することができる。また、ストリーム管理テーブル150に第1のブロックの書き込み状態を保持することにより、第1のブロックへの追記の可否の判定を不揮発性メモリ120へのアクセスなし行うことができ、高速化が図れる。
 (その他実施形態)
 (1)
 上記実施形態又は下記の実施形態においては、第1及び第2ブロックを空きブロックにする場合、ブロックを消去するとしているが、ブロックを破棄してもよい。ブロックを破棄するとは、論理上、当該ブロックを空のブロックとして管理することを含む。例えば、第1又は第2のブロックを未割り当ての状態として管理することである。この場合、未割り当ての状態であるブロックに残されたデータは消去されていても、新たなデータが書き込まれるまでそのまま残されていても、それ以外の任意のデータ(例えば、一部または全部が元のデータと異なっているデータ)であっても、よい。つまりどのような内容のデータであってもよく、データの状態も正常、異常を問わない。破棄することにより読出し時には任意のデータが読み出されることになる。
 (2)
 上記第1及び第2実施形態においては、ストリーム書き込み準備コマンド(第1のコマンド)はAU単位の書き込み範囲(第1の書き込み範囲)を識別するAUアドレス309を含んでいたが、本発明はこれに限定されない。ストリーム書き込み準備コマンドではAUアドレスを指定せず、次に受信される書き込みコマンド(第2のコマンド)がAUアドレスを含んでいてもよい。つまり、ストリーム書き込み準備コマンドはストリームデータの書き込みを通知するだけとし、その次に受信される書き込みコマンドは、AUアドレスとRUアドレス(第2の書き込み範囲の識別情報)とを含むようにしてもよい。
 この場合、図25及び図26に示すような処理が行われる。
 ≪ステップS1201~S1202≫
 まず、図25に示すように、メモリコントローラ110は、アクセス装置200から「ストリーム書き込み準備コマンド」を受信すると(S1201)、同コマンドを受信したことを示す受信フラグをONにする(S1202)。
 ≪ステップS1301~S1303≫
 次に、図26に示すように、メモリコントローラ110は、アクセス装置200から「書き込みコマンド」を受信すると、アーギュメント304から書き込み開始論理アドレス(セクタ単位)を取得し(S1301)、論理ブロックアドレスに変換する。
 次いで、メモリコントローラ110は、「ストリーム書き込み準備コマンド」の受信フラグがONかどうかを判定する(S1302)。この判定の結果、受信フラグがONである場合は、ストリーム書き込み準備処理(図13のS201~206の処理)を行う(S1303)。つまり、受信フラグがONである場合は、受信された「書き込みコマンド」は、図25の「ストリーム書き込み準備コマンド」の次に受信されたコマンドであり、AUアドレスを含む。したがって、ここでは、メモリコントローラ110は、そのAUアドレスの値とレジスタ部105に設定したAUのサイズ情報から、指定されたAUに対応する論理ブロックを特定し、指定論理ブロックはアクセス装置200がこれからストリーム書き込みを行う論理ブロックとして認知される。そして、受信フラグをOFFにする(S1304)。
 一方、受信フラグがOFFである場合、図14のステップS302~312の処理を行う(S1305)。つまり、受信フラグがOFFである場合、ストリーム書き込みを行う論理ブロックはすでに特定されているため、通常のRU単位の書き込み処理が行われる。
 以上の構成及び処理によれば、メモリコントローラ110は、ストリーム書き込み準備コマンドの受信時には論理ブロックの消去を行わす、書き込みコマンドが発生した時点で論理ブロックの消去を行うようにできる。これにより、ストリーム書き込み準備コマンド発行後にストリーム書き込み処理が中止された場合に、ストリーム書き込み準備コマンドで指定したAUのデータを保持することができる。
 なお、上記実施形態において、ストリーム書き込み準備コマンドはストリーム番号を含み、第2実施形態と同様に処理を行ってもよい。
 (3)
 上記実施形態におけるコマンドフォーマットは一例である。適用する不揮発性記憶システムに応じて、コマンドフォーマットを変更したり、1つのコマンドを複数のコマンドに分割したり、複数のコマンドを1つに結合したりすること等が考えられるが、コマンドフォーマットに依存せず、同様の効果が期待できる。
 (4)
 上記実施形態において、AUを論理ブロックサイズと同じとしたが、1つのAUを複数ブロックで構成してもよい。例えば、並列書込みが可能なブロックを組としたスーパーブロックをAUとし、論理アドレス管理テーブル等もスーパーブロック単位で管理してもよい。これにより、より高速な不揮発性記憶装置等を提供できる。
 (5)
 上記実施形態においては、図13に示すストリーム書き込み準備コマンド受信時の処理であるステップS203やステップS205で、書き込み済みのデータを消去するものとして説明したが、ステップS203やステップS205の処理ではデータを消去する予約処理だけを行い、AUへの書き込みコマンドが発生した時点でデータ消去を行ってもよい。これにより、ストリーム書き込み準備コマンド発行後にストリーム書き込み処理が中止された場合に、ストリーム書き込み準備コマンドで指定したAUのデータを保持することができる。
 (6)
 上記実施形態において、図14のステップS312の異常系処理としてエラーを示すレスポンスを発行して処理を終了しているが、書き込みを継続するための処理として、次のような変形例も考えられる。
 (変形例1)
 該第1のブロックの未書込みページに全ビット0または全ビット1等のダミーデータを書き込んで該第1のブロックへの書込みを完結させてから追記フラグをOFFとした後、ステップS302の処理に戻る。これにより、一時的に書き込み速度は低下するものの、書き込み済みのデータは保持することができる。
 (変形例2)
 該第1のブロックを消去し、別の空きブロックを消去して第1のブロックに割り当てて、書き込みを行う。これにより、書き込み済みのデータは消去されるが、一時的に書き込み速度が著しく低下することを回避できる。
 (7)
 上記第2実施形態において、ストリーム管理テーブル150が管理できるストリームデータの数の上限を4個としたが、これに限定されるものではなく、任意の個数での設計が可能である。
 なお、本発明は上記の実施形態に限定されるべきでなく、本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、フローチャートで示した各処理はその順序は上述したものに限定されるべきでなく、本発明の趣旨を逸脱しない範囲で変更することができる。
 本発明は、半導体メモリカードはいうまでもなく、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話においても有用である。
 1   不揮発性記憶システム
 100 不揮発性記憶装置
 101 ホストインターフェース(インターフェース部)
 102 バッファ
 103 読み書き制御部
 104 CPU
 105 レジスタ部
 106 アドレス管理部
 110 メモリコントローラ
 120 不揮発性メモリ
 121 ブロック
 122 ページ
 123 データ格納領域
 124 管理情報格納領域
 131 第1の論理物理変換テーブル
 132 第2の論理物理変換テーブル
 140 空きブロック管理テーブル
 150 ストリーム管理テーブル
 200 アクセス装置
 201 入力制御部
 202 入力部
 203 バッファ
 204 カードインターフェース
 205 表示部
 206 表示制御部
 207 符号化部
 208 システム制御部

Claims (14)

  1.  不揮発性メモリと、
     前記不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラと、
    を備える、不揮発性記憶装置であって、
     前記メモリコントローラは、
     データを書き込むための第1の書き込み範囲を識別する第1のコマンドと、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別し前記第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドと、を受信するインターフェース部と、
     前記不揮発性メモリへのデータの書き込み前に、前記第1のコマンドに基づいて、前記第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定するアドレス管理部と、
     前記第2のコマンドに応じて、前記新たなブロックにデータを記録する読み書き制御部と、
    有する、
    不揮発性記憶装置。
  2.  不揮発性メモリと、
     前記不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラと、
    を備える、不揮発性記憶装置であって、
     前記メモリコントローラは、
     データの書き込みを通知する第1のコマンドと、前記データの書き込みを指示する第2のコマンドと、を受信するインターフェース部と、
     前記不揮発性メモリへの前記データの書き込み前に、前記インターフェース部により第1のコマンドの次に受信される第2のコマンドに基づいて、前記データを書き込むための新たなブロックを選定するアドレス管理部と、
     前記インターフェース部により受信される第2のコマンドに応じて、前記新たなブロックに前記データを記録する読み書き制御部と、
    有し、
     前記インターフェース部により第1のコマンドの次に受信される前記第2のコマンドは、前記データを書き込むための第1の書き込み範囲を識別する情報と、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、前記第2の書き込み範囲へのデータの書き込みを指示する、
    不揮発性記憶装置。
  3.  前記アドレス管理部は、前記新たなブロックを選定する前に、
     前記第1の書き込み範囲に対し選定されている一以上のブロックがあるかどうかを判断し、
     前記一以上のブロックがあると判断した場合は、前記一以上のブロックを破棄する、
    請求項1又は2に記載の不揮発性記憶装置。
  4.  前記アドレス管理部は、前記新たなブロックを選定する前に、
     前記第1の書き込み範囲に対し選定されている一以上のブロックがあるかどうかを判断し、
     前記一以上のブロックがあると判断した場合は、前記一以上のブロックを消去する、
    請求項1又は2に記載の不揮発性記憶装置。
  5.  前記第1の書き込み範囲は、前記第2の書き込み範囲の整数倍である、
    請求項1又は2に記載の不揮発性記憶装置。
  6.  前記第1のコマンドは、前記第1の書き込み範囲を識別する第1の識別情報を含む、
    請求項1に記載の不揮発性記憶装置。
  7.  前記第1のコマンドは、ストリームデータを識別する第2の識別情報を含む、
    請求項1又は2に記載の不揮発性記憶装置。
  8.  前記アドレス管理部は、前記第2の識別情報毎に、前記新たなブロックを選定する、
    請求項7に記載の不揮発性記憶装置。
  9.  前記アドレス管理部は、複数の前記第2の識別情報を保持し、
     前記読み書き制御部は、前記複数の第2の識別情報に対応する複数の前記新たなブロックに、並行してデータを記録する、
    請求項8に記載の不揮発性記憶装置。
  10.  不揮発性記憶装置へのデータの書き込み及び読み出しを制御するアクセス装置あって、
     データを書き込むための第1の書き込み範囲を識別する情報を含む第1のコマンドを前記不揮発性記憶装置に送信し、
     前記第1のコマンドの送信後、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報を含み前記第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドを、複数回、前記不揮発性記憶装置に送信する、
    アクセス装置。
  11.  不揮発性記憶装置へのデータの書き込み及び読み出しを制御するアクセス装置あって、
     データの書き込みを通知する第1のコマンドを前記不揮発性記憶装置に送信し、
     前記第1のコマンドの送信後、それぞれが前記データの書き込みを指示する第2のコマンドを、複数回、前記不揮発性記憶装置に送信し、
     前記第1のコマンドの次に送信される第2のコマンドは、前記データを書き込むための第1の書き込み範囲を識別する情報と、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、前記第2の書き込み範囲へのデータの書き込みを指示する、
    アクセス装置。
  12.  請求項1~9のいずれか1項に記載の不揮発性記憶装置と、
     請求項10又は11に記載のアクセス装置と、
    を備える、
    不揮発性記憶システム。
  13.  不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラであって、
     データを書き込むための第1の書き込み範囲を識別する第1のコマンドと、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別し前記第2の書き込み範囲へのデータの書き込みを指示する第2のコマンドと、を受信するインターフェース部と、
     前記不揮発性メモリへのデータの書き込み前に、前記第1のコマンドに基づいて、前記第1の書き込み範囲に対してデータを書き込むための新たなブロックを選定するアドレス管理部と、
     前記第2のコマンドに応じて、前記新たなブロックにデータを記録する読み書き制御部と、
    備える、
    メモリコントローラ。
  14.  不揮発性メモリへのデータの書き込み及び読み出しを制御するメモリコントローラであって、
     データの書き込みを通知する第1のコマンドと、前記データの書き込みを指示する第2のコマンドと、を受信するインターフェース部と、
     前記不揮発性メモリへのデータの書き込み前に、前記インターフェース部により第1のコマンドの次に受信される第2のコマンドに基づいて、前記データを書き込むための新たなブロックを選定するアドレス管理部と、
     前記インターフェース部により受信される第2のコマンドに応じて、前記新たなブロックにデータを記録する読み書き制御部と、
    有し、
     前記インターフェース部により第1のコマンドの次に受信される前記第2のコマンドは、前記データを書き込むための第1の書き込み範囲を識別する情報と、前記第1の書き込み範囲の一部である第2の書き込み範囲を識別する情報とを含み、第2の書き込み範囲へのデータの書き込みを指示する、
    メモリコントローラ。
PCT/JP2010/003268 2009-06-18 2010-05-14 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ WO2010146767A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010540750A JP4758518B2 (ja) 2009-06-18 2010-05-14 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
US13/061,731 US8554987B2 (en) 2009-06-18 2010-05-14 Nonvolatile memory system for improving stream data writing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-145613 2009-06-18
JP2009145613 2009-06-18

Publications (1)

Publication Number Publication Date
WO2010146767A1 true WO2010146767A1 (ja) 2010-12-23

Family

ID=43356102

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/003268 WO2010146767A1 (ja) 2009-06-18 2010-05-14 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ

Country Status (3)

Country Link
US (1) US8554987B2 (ja)
JP (1) JP4758518B2 (ja)
WO (1) WO2010146767A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175615A (ja) * 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
JP2012234495A (ja) * 2011-05-09 2012-11-29 Sony Corp フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
WO2013161398A1 (ja) * 2012-04-25 2013-10-31 ソニー株式会社 シーケンシャル書き込みを行う不揮発性メモリ装置
JP2018502343A (ja) * 2015-12-03 2018-01-25 華為技術有限公司Huawei Technologies Co.,Ltd. データを書き込むようにソリッドステートディスクを制御するためのアレイコントローラ、ソリッドステートディスクおよび方法
JP2019161506A (ja) * 2018-03-14 2019-09-19 キヤノン株式会社 記録装置及びその制御方法
JP2021006960A (ja) * 2019-06-28 2021-01-21 株式会社アクセル メモリコントローラ、及び、不揮発性記憶装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5815212B2 (ja) * 2010-04-19 2015-11-17 スパンション エルエルシー データ書き込み方法およびシステム
JP5581256B2 (ja) * 2011-03-28 2014-08-27 株式会社東芝 メモリシステム、コントローラ、およびメモリシステムの制御方法
JP6004923B2 (ja) * 2012-11-29 2016-10-12 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
JP2016042296A (ja) * 2014-08-18 2016-03-31 キヤノン株式会社 画像処理装置、情報処理方法及びプログラム
US9996302B2 (en) 2015-04-03 2018-06-12 Toshiba Memory Corporation Storage device writing data on the basis of stream
KR102367982B1 (ko) * 2015-06-22 2022-02-25 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
KR102621467B1 (ko) * 2016-09-05 2024-01-05 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 온도 조절 방법
KR102518884B1 (ko) * 2017-12-20 2023-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
JP7252821B2 (ja) 2019-04-17 2023-04-05 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
KR20210039075A (ko) * 2019-10-01 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 초기화 제어 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템
KR20230082377A (ko) 2021-12-01 2023-06-08 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773098A (ja) * 1993-09-01 1995-03-17 Toshiba Emi Ltd データ書き込み方法
JP2001154909A (ja) * 1999-11-25 2001-06-08 Casio Comput Co Ltd フラッシュメモリ管理装置及び記録媒体
JP2006172458A (ja) * 2004-12-15 2006-06-29 Samsung Electronics Co Ltd 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
JP2010140268A (ja) * 2008-12-11 2010-06-24 Toshiba Corp メモリデバイス

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324207B1 (en) * 2001-12-11 2007-02-14 Matsushita Electric Industrial Co., Ltd. Ic card and data processing method therefor
WO2005103903A1 (ja) 2004-04-20 2005-11-03 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶システム
KR100858756B1 (ko) 2004-07-12 2008-09-16 가부시끼가이샤 도시바 저장 디바이스 및 호스트 장치
WO2006067923A1 (ja) * 2004-12-22 2006-06-29 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP2006285669A (ja) 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
WO2006126445A1 (ja) * 2005-05-23 2006-11-30 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
US8341375B2 (en) * 2007-03-19 2012-12-25 Sandisk Technologies Inc. Methods for conversion of update blocks based on association with host file management data structures
US7944729B2 (en) * 2009-01-28 2011-05-17 Seagate Technology Llc Simultaneously writing multiple addressable blocks of user data to a resistive sense memory cell array
JP5400875B2 (ja) * 2009-05-21 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773098A (ja) * 1993-09-01 1995-03-17 Toshiba Emi Ltd データ書き込み方法
JP2001154909A (ja) * 1999-11-25 2001-06-08 Casio Comput Co Ltd フラッシュメモリ管理装置及び記録媒体
JP2006172458A (ja) * 2004-12-15 2006-06-29 Samsung Electronics Co Ltd 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
JP2010140268A (ja) * 2008-12-11 2010-06-24 Toshiba Corp メモリデバイス

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175615A (ja) * 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
JP2012234495A (ja) * 2011-05-09 2012-11-29 Sony Corp フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
WO2013161398A1 (ja) * 2012-04-25 2013-10-31 ソニー株式会社 シーケンシャル書き込みを行う不揮発性メモリ装置
JPWO2013161398A1 (ja) * 2012-04-25 2015-12-24 ソニー株式会社 シーケンシャル書き込みを行う不揮発性メモリ装置
US10372367B2 (en) 2012-04-25 2019-08-06 Sony Corporation Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method
US11455112B2 (en) 2012-04-25 2022-09-27 Sony Group Corporation Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method
JP2018502343A (ja) * 2015-12-03 2018-01-25 華為技術有限公司Huawei Technologies Co.,Ltd. データを書き込むようにソリッドステートディスクを制御するためのアレイコントローラ、ソリッドステートディスクおよび方法
US10761731B2 (en) 2015-12-03 2020-09-01 Huawei Technologies Co., Ltd. Array controller, solid state disk, and method for controlling solid state disk to write data
JP2019161506A (ja) * 2018-03-14 2019-09-19 キヤノン株式会社 記録装置及びその制御方法
JP7129796B2 (ja) 2018-03-14 2022-09-02 キヤノン株式会社 記録装置及びその制御方法
JP2021006960A (ja) * 2019-06-28 2021-01-21 株式会社アクセル メモリコントローラ、及び、不揮発性記憶装置

Also Published As

Publication number Publication date
JP4758518B2 (ja) 2011-08-31
US8554987B2 (en) 2013-10-08
US20110167208A1 (en) 2011-07-07
JPWO2010146767A1 (ja) 2012-11-29

Similar Documents

Publication Publication Date Title
JP4758518B2 (ja) 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
EP2631916B1 (en) Data deletion method and apparatus
US8380919B2 (en) Flash storage device, data storage system, and data writing method
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
US9529709B2 (en) Apparatuses for managing and accessing flash memory module
US7702846B2 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
US8185705B2 (en) Information recording medium, information recording medium accessing apparatus and accessing method
WO2005109169A1 (ja) データアクセス方法、およびその方法が実施される装置と記録媒体
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
WO2008072590A1 (ja) ライトワンス記録装置
JPWO2011058700A1 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US20150149690A1 (en) Recording device, access device, recording system, and recording method
JP5378197B2 (ja) メモリコントローラ、メモリカード、不揮発性メモリシステム
JP2010515162A (ja) 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
US20050169058A1 (en) Data management apparatus and method used for flash memory
US8271721B2 (en) Data writing method and data storage device
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2008305061A (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2010237907A (ja) ストレージ装置および記録方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
EP3958179A1 (en) Recording device, recording method, program, and memory card
JP2005135544A (ja) 半導体記録媒体及び半導体記録媒体のデータ消去方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2010540750

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 10789152

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13061731

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: 10789152

Country of ref document: EP

Kind code of ref document: A1