WO2011021367A1 - 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム - Google Patents

不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム Download PDF

Info

Publication number
WO2011021367A1
WO2011021367A1 PCT/JP2010/005017 JP2010005017W WO2011021367A1 WO 2011021367 A1 WO2011021367 A1 WO 2011021367A1 JP 2010005017 W JP2010005017 W JP 2010005017W WO 2011021367 A1 WO2011021367 A1 WO 2011021367A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
data
page cache
page
block
Prior art date
Application number
PCT/JP2010/005017
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 JP2011527572A priority Critical patent/JP5209793B2/ja
Priority to US13/130,360 priority patent/US8656110B2/en
Publication of WO2011021367A1 publication Critical patent/WO2011021367A1/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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure

Definitions

  • the present invention relates to a memory controller that controls a nonvolatile memory, a nonvolatile memory device such as a semiconductor memory card including the nonvolatile memory and the memory controller, an access device that accesses the nonvolatile memory device, and a nonvolatile memory including these It relates to a storage system.
  • the semiconductor memory card includes a flash memory (mainly NAND type) as a nonvolatile main memory, and has a memory controller that controls 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 typified by a digital still camera body or the like.
  • the access device manages the storage area of the semiconductor memory card using a file system such as a FAT file system.
  • a file system such as a FAT file system.
  • the semiconductor memory card stores directory entries and FAT, which are management information of the file system, in addition to the file data main body such as AV contents.
  • directory entries and FAT are management information of the file system, in addition to the file data main body such as AV contents.
  • an access device stores a large-capacity content file such as a high-definition video in real time on a semiconductor memory card, it is desirable to enable the most recent data as much as possible when an unexpected situation such as a power failure occurs.
  • the written file data is recognized as valid data in the file system after the directory entry and the FAT are appropriately updated. Therefore, the access device generally records data on the semiconductor memory card while repeating the procedure of updating the directory entry and the FAT after writing a certain amount of file data to the semiconductor memory card. .
  • the directory entry and the FAT are updated once every several seconds.
  • the recording size of the file data is a relatively large size of about several megabytes (MB).
  • the directory entry and FAT write only the portion where information is updated to the semiconductor memory card, the recording size is This is a relatively small size of about 512 bytes to 32 KB (kilobytes).
  • the flash memory needs to erase the data once before recording the data, and the size of the erase unit is about several hundred KB to several MB at present, but tends to increase year by year.
  • FIG. 16 shows two data to be page cached, “data X_1” (logical block number “X”, logical page number “1” data), and “data Y_3” (logical block number “Y”). ”, Data of logical page number“ 3 ”) is excluded from the page cache target, and the data is moved. Specifically, FIG. 16A shows a case where the page cache target data “data X_1” is moved, and FIG. 16B shows a case where the page cache target data “data Y_3” is moved. ing.
  • the present invention has been made in view of the above problems, and a nonvolatile storage device and an access device capable of efficiently performing a process for changing a target area of a cache provided on a nonvolatile memory And a non-volatile storage system.
  • a first invention is a non-volatile storage device that performs data read processing and / or data write processing in accordance with an instruction from an access device, and includes a non-volatile memory and a memory controller.
  • the nonvolatile memory includes a cache block and a data block, and stores data.
  • the memory controller includes a cache registration unit, a cache writing unit, and a cache release unit, and controls data writing to and data reading from the nonvolatile memory.
  • the cache registration unit When receiving an instruction for registering a cache and a logical address of data to be cached from the outside (for example, an access device), the cache registration unit registers the received logical address as a cache target.
  • the cache writing unit records write data to a logical address registered as a cache target in a cache block of the nonvolatile memory.
  • the cache release unit receives an instruction to release the cache from the outside, and selects the same logical block from the plurality of logical addresses registered as cache targets.
  • a plurality of logical addresses included in the same logical block are released from the cache target.
  • this nonvolatile storage device when there are a plurality of logical addresses registered as cache targets by the cache release unit, when an instruction to release the cache is received from the outside, a plurality of logical addresses registered as cache targets are stored. When there are a plurality of logical addresses included in the same logical block, a plurality of logical addresses included in the same logical block are released from the cache target. In other words, in this nonvolatile storage device, data copying to a free block can be performed at once for a plurality of cache addresses of the same logical block, so each logical address can be individually cached. Compared with the case of releasing, the processing time can be greatly shortened. As a result, this nonvolatile storage device can efficiently perform processing for changing the target area of the cache provided on the nonvolatile memory, and can shorten the preparation time for content recording. .
  • a second invention is a non-volatile storage device that performs data read processing and / or write processing in accordance with an instruction from an access device, and includes a non-volatile memory and a memory controller.
  • the nonvolatile memory includes a cache block and a data block, and stores data.
  • the logical address of the cache target whose data match flag is “ON” among the logical addresses registered as the cache target are preferentially released from the cache target. That is, in this nonvolatile storage device, the same data exists in the data block for the logical address of the cache target whose data match flag in the page cache management table is “ON”. If there is a cache target logical address whose data match flag is “ON”, the cache release process is executed simply by changing the use flag from “ON” to “OFF” at the cache target logical address. Can do.
  • “Preferentially releasing from the cache target” is a concept including the meaning of releasing from the cache target in order from the one satisfying the condition.
  • the third invention is the first or second invention, wherein the cache release unit is a process of releasing a logical address from the cache target at a timing different from a timing when the release of the cache is accepted from the outside. A certain cache release process is executed. Thereby, in this non-volatile storage device, for example, the cache release process can be executed in a free time (a period in which the process is not frequently executed).
  • 4th invention is 3rd invention, Comprising: When the cache release part receives the instruction
  • the fifth invention is the third invention, wherein the cache release unit starts cache release processing in accordance with a cache release instruction received from outside while waiting for an external command.
  • the sixth invention is the first or second invention, further comprising a cache information output unit for outputting information relating to a time required for releasing the cached logical address to the outside.
  • the access device connected to the non-volatile storage device can acquire information on the time required to release the logical address to be cached. It becomes easier to specify the address.
  • 7th invention is 6th invention, Comprising: A cache information output part outputs the information regarding the logical address of the cache object which can be released
  • a ninth invention is an access device that controls data writing and / or data reading to and from a nonvolatile storage device including a cache block and a data block, and includes a cache setting unit and a cache information acquisition unit .
  • the cache setting unit sets a logical address of data to be cached for the nonvolatile storage device.
  • the cache information acquisition unit acquires information related to a time required for the nonvolatile storage device to release the logical address to be cached from the nonvolatile storage device.
  • the cache information acquisition unit can acquire information related to the time required for the non-volatile storage device to release the logical address to be cached. Can be specified.
  • the present invention it is possible to efficiently perform processing for changing the cache target area provided on the nonvolatile memory, and it is possible to shorten the preparation time for content recording.
  • the block diagram which shows the non-volatile storage system in 1st Embodiment The block diagram which shows the structure of the page cache control part 107 in 1st Embodiment.
  • Explanatory drawing which showed an example of the structure of the non-volatile memory in 1st Embodiment
  • the flowchart which shows the initialization process sequence of the non-volatile memory device 1 in 1st Embodiment Explanatory drawing which showed an example of the structure of the page cache management table in 1st Embodiment.
  • the flowchart which shows the data write-in processing procedure of the non-volatile storage device 1 in 1st Embodiment.
  • Nonvolatile memory 12 has an area for storing user data and an area for storing address management information 121.
  • the nonvolatile memory 12 stores the address management information 121 in an area different from the area for storing user data.
  • the address management information 121 is information used for address management of the recording area in the non-volatile memory 12. For example, the information related to the association between the physical address and the logical address described above corresponds to this.
  • user data is stored in a logical address space accessible from the access device 2
  • the address management information 121 is outside the logical address space (access device) so that it cannot be accessed from the access device 2. 2 to an area that cannot be accessed using a logical address.
  • the address management information 121 includes address conversion information 122 for managing the correspondence between physical addresses and logical addresses, free block information 123 for managing free physical blocks, and page cache information 124 for managing page cache.
  • the address conversion information 122 and the free block information 123 are the same as the information included in the conventional nonvolatile storage device 1.
  • the page cache information 124 is information for managing the page cache.
  • the nonvolatile memory device 1 in this embodiment stores page cache information 124 in the nonvolatile memory 12.
  • the page cache information 124 is used by the page cache control unit 107 so that a small-size data write process is executed by the page cache.
  • FIG. 4 is a flowchart showing an initialization process procedure of the nonvolatile memory device 1.
  • the nonvolatile memory device 1 is attached to the nonvolatile memory device interface 24 of the access device 2, and when the power is turned on, initialization processing of hardware (HW) configuring the nonvolatile memory device 1 is performed (S101). . Subsequently, the nonvolatile storage device 1 transfers firmware (FW), which is a program stored in the ROM 103 in the memory controller 11, to the CPU 101, and performs initialization processing by software (S102). At this time, the address translation control unit 106 reads the address translation information 122 and the free block information 123 from the nonvolatile memory 12 via the nonvolatile memory interface 105, and creates an address translation table and a free block table in the RAM 102. The reason why these tables are created on the RAM 102 is that reading from the nonvolatile memory 12 can be omitted when referring to the respective information, and the processing speed is increased.
  • firmware firmware
  • each entry can store information such as a use flag, a logical block number, a logical page number, a data match flag, a release reservation flag, and an update counter.
  • the use flag indicates a state of whether the entry is in use (ON) or free (OFF).
  • the use flag is in use (ON)
  • data after the logical block number of the entry is treated as a valid value.
  • the use flag is empty (OFF)
  • the entry is treated as an invalid value (N / A). That is, if the use flag is empty (OFF), the entry is not used as a page cache.
  • the logical block number and the logical page number represent a logical address registered in the page cache.
  • the logical address is registered in units of pages.
  • the present invention is not limited to this.
  • the logical addresses may be registered in units of sectors (512B units), or in units of multiple pages. It may be registered at.
  • FIG. 7 is a flowchart showing a data write processing procedure of the nonvolatile memory device 1.
  • S301, S302 When the nonvolatile storage device 1 receives a command for instructing data write processing from the access device 2, the page cache control unit 107 refers to the page cache management table, and the logical address of the write destination designated by the access device 2 is the page cache. It is determined whether it is registered in the page cache management table as a target area (S301). When the logical address of the write destination is registered in the page cache management table, the page cache read / write unit 110 writes the write data received from the access device 2 to the cache block of the nonvolatile memory 12 via the nonvolatile memory interface 105. (S302). The physical address of the write destination is determined by referring to the page cache management table (physical block number, next write page).
  • FIG. 9B shows a state after the entrainment evacuation process. The states of the cache block and data block are the same as in FIG. Data (“data X_1" to "data X_ (N-2)”) from page 1 to page (N-2) of logical block number X is copied to the write block (physical block number "0x243A”) Yes.
  • the write block (physical block number: 0x243A) is registered in the address conversion table on the RAM 102 and the address conversion information 122 of the nonvolatile memory 12 as a new data block with the logical block number X.
  • the original data block (physical block number: 0x0023) is registered as a free block in the free block table on the RAM 102 and the free block information 123 of the nonvolatile memory 12 and reused.
  • S308 to S310 In the process of S307, if a roll-in save process has occurred, it is determined whether or not the roll-in save process has been executed using the page cache information (data stored in the cache block) as the copy source data (S308).
  • FIG. 11 is a flowchart showing the page cache registration processing procedure of the nonvolatile storage device 1.
  • the access device 2 issues a command for instructing page cache registration (hereinafter referred to as “page cache registration command”) to the nonvolatile storage device 1, and at least the page cache target is included in this page cache registration command.
  • page cache registration command a command for instructing page cache registration
  • Information on logical addresses to be registered as ranges is included.
  • the data matching flag with “ON” may be preferentially selected. Thereby, the time required for the page cache release process (S503) described later can be shortened. Further, in S502, a release reservation flag with “ON” may be preferentially selected. As a result, the entry for which the access device 2 has explicitly instructed deregistration can be deregistered, so that the risk that registration processing will occur again by deregistering the entry that the access device 2 did not intend can be reduced. (S504, S505): Next, the logical address received from the access device 2 is converted into a logical block number and a logical page number and set in the reserved empty entry. Also, an initial value is set for the reserved empty entry.
  • the write data received together with the page cache registration command is written into the cache block as the page cache target data in the same procedure as the process of S302 (S505).
  • the page cache control unit 107 writes in the nonvolatile memory 12 in order to reflect the updated information in the page cache management table in the page cache information 124 (S506).
  • write data to the logical address specified by the command is transferred together with the command.
  • write data to the logical address specified by the command is transferred separately from the command. It may be. In this case, it is desirable that the data of the logical address specified by the command does not change before and after the page cache registration process by the command.
  • the page cache is initialized by copying the existing data of the logical address existing in the data block to the cache block. Data may be generated. As described with reference to FIG. 10, in the data read process, the data block data is read before the data page cache registration process of the logical address, and the page cache data is read after the page cache registration process. . Therefore, by copying the existing data of the data block to the cache block, it can be guaranteed that the data read before and after the page cache registration process does not change. In this embodiment, the page cache release process is automatically performed when there is no empty entry. However, the present invention is not limited to this.
  • the access device 2 manages the presence or absence of the empty entry. If a free entry does not exist, a command instructing page cache release processing is issued from the access device 2, and the nonvolatile memory device 1 accesses the access device unless page cache release processing (described later) is executed. A response indicating “error” may be returned in FIG.
  • FIG. 12 is a flowchart showing the page cache release processing procedure of the nonvolatile storage device 1.
  • the access device 2 issues a command (hereinafter referred to as “page cache deregistration command”) for instructing the non-volatile storage device 1 to deregister page cache, and at least one page cache is included in the command. It is assumed that the information on the number and information on the mode of the deregistration process (synchronous mode / asynchronous mode) are included.
  • the page cache control unit 107 writes in the nonvolatile memory 12 in order to reflect the updated information in the page cache management table in the page cache information 124 (S604).
  • S605 On the other hand, if the mode specified by the page cache registration release command is the synchronous mode specification, the page cache release unit 109 of the page cache control unit 107 refers to the page cache management table, and the page cache number specified by the access device 2 One of the entries corresponding to is selected, and the data match flag of the selected entry is confirmed (S605).
  • S606 to S609) Only when the data match flag is “OFF”, the page cache release unit 109 further refers to the page cache management table to check whether there is an in-use entry of the same logical block as the selected entry (S606). ).
  • the page cache releasing unit 109 performs “collective eviction processing” for expelling the data of the in-use entry of the same logical block together with the data of the selected entry ( S607).
  • the page cache releasing unit 109 performs “ejecting process” for extracting the data of the selected entry (S608).
  • the data match flag of the entry subjected to the eviction process of S607 or S608 is set to “ON” (S609).
  • the data match flags of a plurality of entries are set to “ON”.
  • FIG. 13 shows an example of the writing state of physical blocks before and after the batch eviction process in S607.
  • FIG. 13A shows a state before the batch eviction process.
  • the cache block (physical block number: 0x0FF1) stores three valid page cache data ("data X_1", “data Y_3", and "data X_3").
  • the page cache (logical block number, logical page number) is (X, 1), (Y, 3), (X, 3), respectively. In any case, it is assumed that the data match flag is set to “OFF” on the page cache management table.
  • All three page caches (page caches whose page cache target data is “data X_1”, “data Y_3”, and “data X_3”) are designated by the access device 2 as targets of page cache deregistration, and the first page from now on Assume that the cache (X, 1) is deregistered.
  • the free block (physical block number: 0x000A) is a physical block acquired by referring to the free block table and is in an erased state.
  • FIG. 13B shows a state after the batch eviction process.
  • the states of the cache block (physical block number: 0x0FF1) and the data block (physical block number: 0x0516) are the same as in FIG.
  • Data (“data X_1" to "data X_N") from page 1 to page N of the logical block number X is copied to the free block (physical block number: 0x000A). Since the data of page 1 and page 3 exists in both the cache block (physical block number: 0x0FF1) and the data block (physical block number: 0x0516), the data of the cache block (physical block number: 0x0FF1) is given priority. The free block (physical block number: 0x000A) is copied. Since other data does not exist in the cache block (physical block number: 0x0FF1), it is copied from the data block (physical block number: 0x0516) free block (physical block number: 0x000A).
  • the free block (physical block number: 0x000A) is registered in the address conversion table on the RAM 102 and the address conversion information 122 of the nonvolatile memory 12 as a new data block with the logical block number X.
  • the original data block (physical block number: 0x0516) is registered as a free block in the free block table on the RAM 102 or the free block information 123 of the nonvolatile memory 12 and reused.
  • the batch eviction process together with the entry designated as the page cache deregistration target, another entry in use in the same logical block as the entry (the logical block with the logical block number “X” in FIG. 13). Copy processing of data (in FIG.
  • the page cache numbers # 0 and # 3 and the page cache numbers # 2 and # 5 are “information about combinations that can be deregistered at once within a predetermined time”. Is output as (6) Information on the target of the page cache data eviction process when deregistering the logical address registered in the page cache: The logical block number registered in the page cache management table that is the target of the eviction process is output. (7) Information regarding the number of times of data update of the logical address registered in the page cache: The value of the update counter registered in the page cache management table is output. (8) Information regarding the registration order between logical addresses registered in the page cache: A registration order history (not shown in FIG. 5) registered in the page cache management table is output. The registration order history is updated at the time of page cache registration processing.
  • FIG. 15 is a flowchart showing a content writing processing procedure focusing on access to the nonvolatile storage device 1 when the access device 2 writes content to the nonvolatile storage device 1 attached to the nonvolatile storage device interface 24. .
  • the access device 2 Prior to the start of the content writing process, the access device 2 has completed initialization processing (for example, start of power supply, issuance of an initialization command) of the nonvolatile storage device 1 in the same procedure as before.
  • “information regarding the time for deregistering the logical address registered in the page cache” is preferentially selected with a short page cache deregistration time.
  • the in-use entry whose data match flag in the page cache management table is “ON” includes the same data in the data block, and therefore the data match flag is “ON” in the page cache management table.
  • the page cache registration can be released simply by changing the use flag from “ON” to “OFF” in the entry. In this case, since the evacuation save process and the copy process do not occur, the page cache registration release can be executed in a short processing time.
  • the page cache deregistration target is selected with reference to information such as “information regarding the latest update order between logical addresses registered in the page cache” (S803). For example, canceling page cache registration from entries that are unlikely to be updated in the future, such as by canceling page cache registration from entries with few updates, or by canceling page cache registration from entries that have been registered in the page cache. can do. As a result, an efficient page cache can be realized in the nonvolatile storage system 1000.
  • each functional block may be individually made into one chip by a semiconductor device such as an LSI.
  • One chip may be included so as to include the whole.

Abstract

ページキャッシュの機能を備えた不揮発性記憶装置に複数のコンテンツデータを連続して記録する場合に、次のコンテンツデータの記録開始のための準備時間を短縮する。不揮発性記憶装置(1)のキャッシュ解放部は、アクセス装置(2)からキャッシュの解放を受付けると、キャッシュ対象となっている複数のアドレスから、同一論理ブロックに含まれるものを同時にキャッシュから解放する。さらに、不揮発性記憶装置(1)はキャッシュ対象のアドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部を備え、アクセス装置(2)は、当該情報を参照して解放対象のアドレスを選択する。

Description

不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
 本発明は、不揮発性メモリを制御するメモリコントローラと、不揮発性メモリ及びメモリコントローラを備えた半導体メモリカード等の不揮発性記憶装置と、不揮発性記憶装置にアクセスするアクセス装置、及びこれらを含む不揮発性記憶システムに関する。
 書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して高価格なものではある。しかし、半導体メモリカードは、小型・軽量・耐震性・取り扱いの簡便さ等のメリットが大きいので、デジタルスチルカメラや携帯電話など、ポータブル機器の記録媒体としてその需要が高まっており、最近では、民生用動画記録機器や放送局向けのプロ用動画記録機器の記録媒体としても利用されるようになってきている。さらに、最近では、ポータブル機器だけではなくデジタルテレビやDVDレコーダ等の据え置き機器にも半導体メモリカード用のスロットが標準搭載されており、半導体メモリカードの需要はさらに高まっている。
 半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ(主にNAND型)を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
 ところで、アクセス装置は、半導体メモリカードの記憶領域の管理をFATファイルシステムなどのファイルシステムによって行う。ファイルシステムを用いることにより、半導体メモリカードには、AVコンテンツなどのファイルデータ本体に加え、ファイルシステムの管理情報であるディレクトリエントリやFATが格納される。
 アクセス装置がハイビジョン動画のような大容量のコンテンツファイルを半導体メモリカードに対してリアルタイムに格納する場合、電源断などの不測の事態が発生したときにはできるだけ直近のデータまでを有効にすることが望まれる。通常、書き込まれたファイルデータは、ディレクトリエントリ及びFATが適切に更新された後に、ファイルシステムにおける有効なデータとして認識される。従って、アクセス装置が、一定量のファイルデータを半導体メモリカードに書き込んだ後、ディレクトリエントリおよびFATを更新するという手順を繰り返しながら、アクセス装置が半導体メモリカードにデータを記録するのが一般的である。
 アクセス装置が、映像のビットレートが高いハイビジョン動画を半導体メモリカードに記録する場合、例えば、数秒に1回の割合でディレクトリエントリとFATを更新する。この場合、ファイルデータの記録サイズは、数MB(メガバイト)程度の比較的大きなサイズとなるが、ディレクトリエントリやFATは、情報が更新される部分のみを半導体メモリカードに書き込むので、その記録サイズは、512バイトから32KB(キロバイト)程度の比較的小さなサイズとなる。
 フラッシュメモリは、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさは、現在のところ数百KBから数MB程度であるが年々増大する傾向にある。フラッシュメモリにおいて、小サイズの書き込みを実施する場合、同一物理ブロック内に存在する有効なデータを他の物理ブロックにコピーする「巻き込み退避処理」が発生する。そのため、フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、ディレクトリエントリやFATなどのファイルシステムの管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
 従来、このような問題を解決する方法として、半導体メモリカードにページキャッシュを搭載する方法が提案されている(例えば、特許文献1参照)。
 この方法(従来技術)では、特定論理アドレスに対する小サイズのデータ(管理情報)の書き込み処理を、データを一時的に保持するための物理ブロック(ページキャッシュ用物理ブロック(キャッシュブロック))に対して行い管理することで、無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化することができる。
特開2004-326165号公報
 しかしながら、従来技術には以下の課題がある。
 アクセス装置が複数のコンテンツデータ(例えば、ハイビジョン動画のデータなど)を半導体メモリカード等の不揮発性記憶装置に記録する場合、各コンテンツデータは、個別のファイルとして記録されるのが一般的である。このように記録するのは、記録されたコンテンツデータの再生や編集などの管理が容易となるためである。さらに、各コンテンツデータに付随する様々な情報(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)も同様の理由により、各コンテンツデータに関連付けられた別の管理情報ファイルとして、不揮発性記憶装置に記録される場合が多い。
 これらのコンテンツデータのディレクトリエントリやFAT、あるいは、管理情報ファイルのディレクトリエントリやFATは、ページキャッシュを利用することで、巻き込み退避処理の発生を抑えることができ、その結果、高速なデータ書き込む処理を実現することができる。
 しかし、例えば、アクセス装置が不揮発性記憶装置に対して、複数のコンテンツデータを連続的にリアルタイムに記録する場合には、記録する各コンテンツデータを切り替えるときにディレクトリエントリやFATの論理アドレスが変化するので、ページキャッシュの対象領域として設定されている論理アドレスを変更する必要がある。
 ページキャッシュとして登録できる論理アドレスには限りがあるので、上記のように複数のコンテンツデータを連続的にリアルタイムに記録する場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させなければならない場合が発生する。ページキャッシュのデータの移動処理について、図16を用いて説明する。図16は、ページキャッシュ対象となっている2つのデータである、「データX_1」(論理ブロック番号「X」、論理ページ番号「1」のデータ)、および「データY_3」(論理ブロック番号「Y」、論理ページ番号「3」のデータ)、をページキャッシュの対象から除外し、データの移動を行う場合について、説明するための図である。具体的には、図16(a)は、ページキャッシュ対象データ「データX_1」を移動する場合を示しており、図16(b)は、ページキャッシュ対象データ「データY_3」を移動する場合を示している。
 図16(a)に示すように、ページキャッシュ対象データ「データX_1」を移動する場合、以下の(1)~(3)の処理を行う必要がある。
(1)フリーブロック(空き物理ブロック。物理アドレス「0x000A」)を取得する。
(2)取得したフリーブロック(物理アドレス「0x000A」)に対してページキャッシュの対象となっている「データX_1」の書き込み処理(図16(a)の「コピー(1)」の処理)を行う。
(3)取得したフリーブロック(物理アドレス「0x000A」)に対して、キャッシュ対象となっていない論理ブロック「X」のデータ(図16(a)の場合、データブロック(物理アドレス「0x0516」)に、「データX_1」~「データX_N」が記憶されているものとする。)である「データX_2」~「データX_N」のコピー処理(いわゆる「巻き込み退避処理」)(図16(a)の「コピー(2)」の処理)を行う。
 このようにして、ページキャッシュ対象データ「データX_1」の移動処理が実行される。
 また、図16(b)に示すように、ページキャッシュ対象データ「データY_3」を移動する場合、以下の(1)~(4)の処理を行う必要がある。
(1)フリーブロック(空き物理ブロック。物理アドレス「0x000B」)を取得する。
(2)取得したフリーブロック(物理アドレス「0x000B」)に対して、キャッシュ対象となっていない論理ブロック「Y」のデータ(図16(b)の場合、データブロック(物理アドレス「0x0520」)に、「データY_1」~「データY_N」が記憶されているものとする。)である「データY_1」および「データY_2」のコピー処理(図16(b)の「コピー(1)」の処理)を行う。
(3)取得したフリーブロック(物理アドレス「0x000B」)に対してページキャッシュの対象となっている「データY_3」の書き込み処理(図16(b)の「コピー(2)」の処理)を行う。
(4)取得したフリーブロック(物理アドレス「0x000B」)に対して、キャッシュ対象となっていない論理ブロック「Y」のデータである「データY_4」~「データY_N」のコピー処理(いわゆる「巻き込み退避処理」)(図16(b)の「コピー(3)」の処理)を行う。
 このようにして、ページキャッシュ対象データ「データY_3」の移動処理が実行される。
 以上のように、ページキャッシュのデータの移動処理には、多くのコピー処理が発生するため、長い処理時間が必要となる。
 使用するフラッシュメモリの品種や半導体メモリカードのアーキテクチャにも依存するが、巻き込み退避処理には、例えば、200ミリ秒~300ミリ秒という比較的長い時間を要する。さらに、複数のページキャッシュの論理アドレスを変更する場合、その処理時間として、各ページキャッシュの処理の累積時間が必要となる。その結果、次のコンテンツデータの記録のための準備期間が長くなり、次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足する可能性が高くなる。次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足すると、アクセス装置が不揮発性記憶装置に対して記録しようとしているコンテンツ(例えば、ハイビジョン動画)の一部のデータが欠落するため望ましくない。このようなデータの欠落を防止するためにアクセス装置に大量のバッファメモリを搭載するとコスト高につながるため、アクセス装置に大量のバッファメモリを搭載することも望ましくない。
 本発明は、上記課題を鑑みてなされたものであり、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能な、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システムを提供することを目的とする。
 第1の発明は、アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、備える。
 不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
 メモリコントローラは、キャッシュ登録部と、キャッシュ書き込み部と、キャッシュ解放部と、を備え、不揮発性メモリへのデータ書き込み及びデータ読み出しを制御する。
 キャッシュ登録部は、外部(例えば、アクセス装置)からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。キャッシュ解放部は、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放する。
 この不揮発性記憶装置では、キャッシュ解放部により、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスがキャッシュ対象から解放される。つまり、この不揮発性記憶装置では、同じ論理ブロックの複数のキャッシュ対象となっている論理アドレスについて、フリーブロックへのデータコピーを一括して行えるため、各々の論理アドレスについて、個別に、キャッシュ対象から解放する場合に比べて、処理時間を大幅に短縮することができる。その結果、この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
 また、この不揮発性記憶装置では、キャッシュ解放部は、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けたのに同期して(連動して)、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放することができるので、素早く、キャッシュ解放処理を実現することができる。
 第2の発明は、アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、を備える。
 不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
 メモリコントローラは、キャッシュ登録部と、キャッシュ書き込み部と、ページキャッシュ制御部と、キャッシュ解放部と、を備え、不揮発性メモリへのデータ書き込み及びデータ読み出しを制御する。
 キャッシュ登録部は、外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。ページキャッシュ制御部は、キャッシュ対象として登録された論理アドレスに関する情報をページキャッシュ管理テーブルとして管理し、ページキャッシュ管理テーブルによりキャッシュ対象として管理されている論理アドレスA1が巻き込み退避処理のコピー元として、巻き込み退避処理により、データ用ブロックにコピーされた場合、論理アドレスA1のデータ一致フラグを「ON」に設定し、ページキャッシュ管理テーブルに反映させる。キャッシュ解放部は、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを、優先的にキャッシュ対象から解放する。
 この不揮発性記憶装置では、キャッシュ解放部により、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスが、優先的にキャッシュ対象から解放される。つまり、この不揮発性記憶装置において、ページキャッシュ管理テーブルのデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスは、データ用ブロックにも同一データが存在しているので、ページキャッシュ管理テーブル中に、データ一致フラグが「ON」であるキャッシュ対象論理アドレスが存在すれば、当該キャッシュ対象論理アドレスおいて、使用フラグを「ON」から「OFF」に変更するだけで、キャッシュ解放処理を実行することができる。したがって、この不揮発性記憶装置では、巻き込み退避処理やコピー処理が発生しないため、短い処理時間で、キャッシュ解放処理を実行することができる。その結果、この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
 「優先的にキャッシュ対象から解放する」とは、条件を満たしたものから順番にキャッシュ対象から解放するという意味を含む概念である。
 第3の発明は、第1または第2の発明であって、キャッシュ解放部は、外部からキャッシュの解放を受付けたタイミングとは非同期の別のタイミングで、論理アドレスをキャッシュ対象から解放する処理であるキャッシュ解放処理を実行する。
 これにより、この不揮発性記憶装置では、例えば、空き時間(処理が頻繁に実行されていない期間)において、キャッシュ解放処理を実行することができる。
 第4の発明は、第3の発明であって、キャッシュ解放部は、外部から受付けたキャッシュの解放の指示を受け付けた場合、キャッシュの解放の指示を受け付けた時点より以降において実行されるメモリコントローラの初期化処理の一部として、キャッシュ解放処理を実行する。
 第5の発明は、第3の発明であって、キャッシュ解放部は、外部から受付けたキャッシュの解放の指示によるキャッシュ解放処理を、外部からのコマンド待ち中に開始する。
 第6の発明は、第1または第2の発明であって、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部をさらに備える。
 これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるため、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
 第7の発明は、第6の発明であって、キャッシュ情報出力部は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を出力する。
 これにより、この不揮発性記憶装置と接続されるアクセス装置は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を取得することができるので、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
 第8の発明は、第6の発明であって、キャッシュ情報出力部は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとを比較し、比較結果を出力する。
 これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとの一致/不一致を知ることができるので、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
 第9の発明は、キャッシュ用ブロックとデータ用ブロックとを含む不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置あって、キャッシュ設定部と、キャッシュ情報取得部と、を備える。
 キャッシュ設定部は、不揮発性記憶装置に対してキャッシュ対象となるデータの論理アドレスを設定する。キャッシュ情報取得部は、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を不揮発性記憶装置から取得する。
 このアクセス装置では、キャッシュ情報取得部により、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるので、的確に、キャッシュ解放処理の対象とする論理アドレスを指定することができる。
 第10の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを解放する際に、キャッシュ情報取得部が取得した情報を参照し、所定時間内に一括して解放が可能な論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
 これにより、このアクセス装置では、所定時間内に一括して解放が可能な論理アドレスを優先的にキャッシュ解放処理の対象とすることができる。
 第11の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを登録する際に、キャッシュ対象の論理アドレスが近接するように予め不揮発性記憶装置のデータの並べ替えを実施しておくことを不揮発性記憶装置に指示する。
 なお、「論理アドレスが近接するように」とは、例えば、論理アドレスが、同一セクタ内、同一ページキャッシュ内、あるいは、同一論理ブロック内となるように、という意味を含む概念である。
 第12の発明は、第9の発明であって、キャッシュ設定部は、不揮発性記憶装置が管理するページキャッシュ管理テーブルにおいて、キャッシュ用ブロックと、データ用ブロックとの両方に、同一データがあることを示すデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
 これにより、このアクセス装置では、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に指定して、キャッシュ解放処理を実行することができる。
 第13の発明は、第1から第8のいずれかの発明である不揮発性記憶装置と、第9から第12のいずれかの発明であるアクセス装置と、を備える不揮発性記憶システムである。
 本発明によれば、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
第1実施形態における不揮発性記憶システムを示すブロック図 第1実施形態におけるページキャッシュ制御部107の構成を示すブロック図 第1実施形態における不揮発性メモリの構成の一例を示した説明図 第1実施形態における不揮発性記憶装置1の初期化処理手順を示すフローチャート 第1実施形態におけるページキャッシュ管理テーブルの構成の一例を示した説明図 第1実施形態における不揮発性記憶装置1のコマンド待ち処理手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のデータ書き込み処理手順を示すフローチャート 第1実施形態におけるキャッシュブロックの書き込み状態の変化の一例を示した説明図 第1実施形態における巻き込み退避処理時のキャッシュブロックのデータの扱い方の一例を示す説明図 第1実施形態における不揮発性記憶装置1のデータ読み出し処理手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のページキャッシュ登録処理手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のページキャッシュ解放処理手順を示すフローチャート 第1実施形態における一括追出し処理時のキャッシュブロックのデータの扱い方の一例を示す説明図 第1実施形態における不揮発性記憶装置1のページキャッシュ情報出力処理手順を示すフローチャート 第1実施形態におけるアクセス装置2のコンテンツ書き込み処理手順を示すフローチャート ページキャッシュのデータの移動処理を説明するための図
 以下、本発明の実施形態について、図面を参照しながら説明する。
 [第1実施形態]
 <1.1:不揮発性記憶システムの構成>
 図1は、第1実施形態における不揮発性記憶システム1000の概略構成を示している。
 図1に示すように、本実施形態の不揮発性記憶システム1000は、不揮発性記憶装置1と、アクセス装置2と、を備え、不揮発性記憶装置1とアクセス装置2とは、バスB1により接続されており、バスB1を介して、双方向に通信することができる。なお、不揮発性記憶装置1は、アクセス装置2に装着される構成であってもよい。
 不揮発性記憶装置1は、例えば、半導体メモリカードであり、アクセス装置2は、例えば、半導体メモリカードに動画コンテンツを記録するビデオカメラである。
 (1.1.1:アクセス装置の構成)
 アクセス装置2は、図1に示すように、CPU21と、RAM22と、ROM23と、不揮発性記憶装置インタフェース(不揮発性記憶装置IF)24と、バスB3と、を含む。そして、アクセス装置2の各機能部は、図1に示すように、バスB3を介して接続されている。なお、アクセス装置2において、アクセス装置2の各機能部の全部または一部は、直接接続される構成であってもよいことは言うまでもない。
 ROM23には、アクセス装置2を制御するプログラムが格納されており、このプログラムは、RAM22を一時記憶領域として使用し、CPU21上で動作する。そして、ROM23は、更に、アプリケーション制御部201と、ファイルシステム制御部202と、不揮発性記憶装置アクセス部203と、を含む。
 なお、本実施形態では、アプリケーション制御部201、ファイルシステム制御部202、不揮発性記憶装置アクセス部203は、ROM23上において、ソフトウェアにより実現されるものを想定しているが、アプリケーション制御部201、ファイルシステム制御部202、不揮発性記憶装置アクセス部203は、その全部または一部が、ハードウェアにより実現されるものであってもよい。
 アプリケーション制御部201は、データの生成や電源の制御などアクセス装置2全体の制御を行う。
 ファイルシステム制御部202は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。ファイルシステム制御部202は、ページキャッシュ情報設定部204と、ページキャッシュ情報取得部205と、を含む。
 ページキャッシュ情報取得部205は、不揮発性記憶装置1からページキャッシュに関する情報を取得し、取得した情報をページキャッシュ情報設定部204に通知する。ページキャッシュ情報取得部205は、本発明の特徴的部分の1つである。
 ページキャッシュ情報設定部204は、ページキャッシュに対するアクセスを制御する制御部である。ページキャッシュ情報設定部204を設置する点については、従来技術と同様であるが、本発明におけるページキャッシュ情報設定部204は、さらにページキャッシュ情報取得部205から通知されたページキャッシュに関する情報を取得することで、より効率的な制御を行う。この点は、本発明における、従来技術とは異なる特徴的部分である。また、ページキャッシュ情報設定部204は、不揮発性メモリ12のページキャッシュ情報124に設定すべき情報を不揮発性記憶装置1に通知する。また、ページキャッシュ情報設定部204は、不揮発性記憶装置1から取得したページキャッシュに関する情報に基づいてページキャッシュ情報124に設定すべき情報を生成し、不揮発性記憶装置1に通知する。
 不揮発性記憶装置アクセス部203は、不揮発性記憶装置インタフェース24およびバスB1を介して、不揮発性記憶装置1に対して所定の処理を実行させるためのコマンド発行処理や、不揮発性記憶装置1とのデータ送受信処理についての制御を行う。例えば、不揮発性記憶装置1に対してデータ書き込み処理を行う場合、不揮発性記憶装置アクセス部203は、ファイルシステム制御部202からデータと共にデータのサイズとデータのアドレスとを渡され(取得し)、指定されたサイズのデータを不揮発性記憶装置1の記憶領域内における指定された位置(指定されたアドレスに対応する位置)に記録する処理(データ書き込み処理)を行うために、不揮発性記憶装置アクセス部203は、不揮発性記憶装置1に対して発行するデータ書き込みコマンドを生成し、生成したデータ書き込みコマンドが不揮発性記憶装置インタフェース24により不揮発性記憶装置1に送信されるように制御する。さらに、不揮発性記憶装置アクセス部203は、不揮発性記憶装置1に書き込むデータが不揮発性記憶装置インタフェース24により不揮発性記憶装置1に送信されるように制御する。
 不揮発性記憶装置インタフェース24は、不揮発性記憶装置1とアクセス装置2との接続部であり、不揮発性記憶装置インタフェース24は、バスB1を介して、不揮発性記憶装置1と制御信号及びデータの送受信を行う。
 (1.1.2:不揮発性記憶装置の構成)
 図1に示すように、不揮発性記憶装置1は、メモリコントローラ11と、不揮発性メモリ12と、を含む。そして、メモリコントローラ11と不揮発性メモリ12とは、バスB5を介して接続されている。
 ≪メモリコントローラ11≫
 まず、メモリコントローラ11の構成について、説明する。
 メモリコントローラ11は、不揮発性メモリ12の制御全般を行うモジュールであり、例えば、CPUなどを含むLSIとして構成される。不揮発性メモリ12は、例えば、1つ以上のNAND型フラッシュメモリで構成される。
 メモリコントローラ11は、図1に示すように、CPU101と、RAM102と、ROM103と、アクセス装置インタフェース(アクセス装置IF)104と、不揮発性メモリインタフェース(不揮発性メモリIF)105と、バスB4と、を含む。そして、メモリコントローラ11の各機能部は、図1に示すように、バスB4を介して接続されている。なお、メモリコントローラ11において、メモリコントローラ11の各機能部の全部または一部は、直接接続される構成であってもよいことは言うまでもない。
 アクセス装置インタフェース104は、不揮発性記憶装置1とアクセス装置2との接続部であり、不揮発性記憶装置インタフェース24同様、制御信号及びデータを、アクセス装置2に対して送受信するインタフェースである。
 不揮発性メモリインタフェース105は、メモリコントローラ11と不揮発性メモリ12との接続部であり、不揮発性メモリ12に対するコマンドやデータの送受信を制御する。
 ROM103には、不揮発性記憶装置1を制御するプログラムが格納されており、このプログラムは、RAM102を一時記憶領域として使用し、CPU101上で動作する。ROM103は、アドレス変換制御部106と、ページキャッシュ制御部107と、を含む。
 なお、本実施形態では、アドレス変換制御部106と、ページキャッシュ制御部107とは、ROM103上において、ソフトウェアにより実現されるものを想定しているが、アドレス変換制御部106と、ページキャッシュ制御部107とは、その全部または一部が、ハードウェアにより実現されるものであってもよい。
 アドレス変換制御部106は、不揮発性メモリ12上の物理アドレスと、アクセス装置2からアクセス可能なアドレス空間として不揮発性記憶装置1が提供する論理アドレス空間における論理アドレスとの対応付けを制御する制御部であり、従来の不揮発性記憶装置に存在するアドレス変換制御部と同様の制御部である。アドレス変換制御部106は、例えば、RAM102上に構築される論理アドレス/物理アドレス変換テーブルにより、論理アドレスと物理アドレスとの変換処理を行う。
 ページキャッシュ制御部107は、ページキャッシュを制御する制御部である。ページキャッシュ制御部107を設置する点については、従来技術と同様であるが、本発明におけるページキャッシュ制御部107は、更に、図2に示すように、ページキャッシュ登録部108と、ページキャッシュ解放部109と、ページキャッシュ読み書き部110と、ページキャッシュ情報出力部111とを含む。この点において、本発明は、従来技術と相違する。また、ページキャッシュ制御部107は、ページキャッシュに関する情報をアクセス装置2に対して出力する。
 ページキャッシュ登録部108は、アクセス装置2のページキャッシュ情報設定部204からの要求により指定された論理アドレスをページキャッシュの対象として登録する処理を行う。ページキャッシュ登録部108で登録可能な論理アドレスの個数は複数とし、その値(登録可能な論理アドレス数)は全ての不揮発性記憶装置1で共通の値としてもよいし、アクセス装置2に接続される不揮発性記憶装置1ごとに、異なる値としてもよい。
 ページキャッシュ解放部109は、ページキャッシュ登録部108によって登録された論理アドレスのうち、アクセス装置2のページキャッシュ情報設定部204の要求により登録解除を指定された論理アドレスをページキャッシュの対象から解除(解放)する処理を行う。
 ページキャッシュ解放部109は、以下の2つの特徴を有している。
(1)ページキャッシュ解放部109は、複数の登録解除対象の論理アドレスを受信し、各々の登録解除処理を一括して行うことができる。
(2)また、ページキャッシュ解放部109は、登録解除処理の開始タイミングに関しては同期モード及び非同期モードの2つを選択可能である。同期モードは、アクセス装置2から要求があった時点で直ちに登録解除処理を開始するモードである。一方、非同期モードは、アクセス装置2から要求があった時点では登録解除処理の受付のみを行い、実際の登録解除処理は別のタイミング(例えば、不揮発性記憶装置1の初期化処理中や、アクセス装置2からのコマンド待ちで一定時間が経過した時や、別コマンドの処理実行中など)で行うモードである。
 ページキャッシュ読み書き部110は、アクセス装置2からの要求により、ページキャッシュの対象の論理アドレスへのデータ書き込み処理や、ページキャッシュの対象の論理アドレスからのデータ読み出し処理を行う。なお、ページキャッシュ読み書き部110は、不揮発性メモリインタフェース105およびバスB5を介して、不揮発性メモリ12にアクセスを行う。
 ページキャッシュ情報出力部111は、ページキャッシュに関する情報をアクセス装置2に対して出力する部分であり、従来の不揮発性記憶装置には存在しないものである。ページキャッシュに関する情報としては、例えば、
(1)ページキャッシュに登録できる論理アドレスの個数、
(2)ページキャッシュに登録された論理アドレスの個数、
(3)ページキャッシュに登録された論理アドレスの情報、
(4)ページキャッシュに登録された論理アドレスをページキャッシュ登録解除するための時間に関する情報、
(5)ページキャッシュに登録された論理アドレスのうち、所定時間内に一括して登録解除が可能な組合せに関する情報、
(6)ページキャッシュに登録された論理アドレスを登録解除するときのページキャッシュのデータの追出し処理の対象に関する情報、
(7)ページキャッシュに登録された論理アドレスのデータ更新回数に関する情報、
(8)ページキャッシュに登録された論理アドレス間の登録順序に関する情報、
(9)ページキャッシュに登録された論理アドレス間の直近の更新順序に関する情報、
(10)ページキャッシュに登録された論理アドレスの識別子情報、
(11)ページキャッシュのサイズ情報、
などがある。
 ≪不揮発性メモリ12≫
 次に、不揮発性メモリ12の構成について、説明する。
 不揮発性メモリ12は、図1に示すように、ユーザデータを格納する領域と、アドレス管理情報121を格納する領域と、を有している。不揮発性メモリ12は、ユーザデータを格納する領域とは別の領域にアドレス管理情報121を格納する。
 アドレス管理情報121は、不揮発性メモリ12内の記録領域のアドレス管理に使用する情報であり、例えば、先に説明した物理アドレスと論理アドレスとの対応付けに関する情報がこれに該当する。不揮発性メモリ12において、ユーザデータは、アクセス装置2からアクセス可能な論理アドレス空間内に格納されるのに対し、アドレス管理情報121は、アクセス装置2からアクセスできないよう論理アドレス空間の外側(アクセス装置2から論理アドレスを用いてアクセスできない領域)に格納される。
 アドレス管理情報121は、物理アドレスと論理アドレスとの対応付けを管理するアドレス変換情報122と、空き物理ブロックを管理するフリーブロック情報123と、ページキャッシュを管理するページキャッシュ情報124とを含む。
 アドレス変換情報122およびフリーブロック情報123は、従来の不揮発性記憶装置1に含まれる情報と同様のものである。
 ページキャッシュ情報124は、ページキャッシュを管理するための情報である。
 本実施形態における不揮発性記憶装置1は、不揮発性メモリ12内にページキャッシュ情報124を格納する。
 ページキャッシュ情報124は、ページキャッシュ制御部107により用いられることで、ページキャッシュによる小サイズのデータの書き込み処理が実行される。具体的には、不揮発性記憶装置1内のページキャッシュ制御部107は、このページキャッシュ情報124を用いて、小サイズのデータ(情報)の書き込み処理を、キャッシュ的に使用される特定の物理ブロック(ページキャッシュ用物理ブロック)上で実現する。すなわち、不揮発性記憶装置1、アクセス装置2を組み合わせることにより、小サイズのデータの書き込み処理をページキャッシュ上で実行し、書き込み速度を高速化することができる。
 また、ページキャッシュ情報124に設定すべき情報は、アクセス装置2のページキャッシュ情報設定部204により、不揮発性記憶装置1から取得したページキャッシュに関する情報に基づいて生成される。そして、生成されたページキャッシュ情報124は、不揮発性記憶装置1に通知される。このように、不揮発性記憶システム1000では、不揮発性記憶装置1、アクセス装置2を組み合わせ、ページキャッシュ情報124を用いることにより、ページキャッシュの対象とする論理アドレスを効率的に切り替えることが可能となる。
 ≪不揮発性メモリ12の物理構成≫
 続いて、図3を用いて、本発明の第1実施形態における不揮発性メモリ12の物理構成について説明する。
 不揮発性メモリ12としては、例えば、NAND型フラッシュメモリが用いられる。不揮発性メモリ12は、複数の物理ブロックから構成される。
 物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
 ページは、データ書き込みを行う単位である。更に、ページは、データ部と冗長部とを含む。
 データ部は、論理アドレス空間としてアクセス装置2からアクセス可能な領域であり、実際にファイルデータ等が格納される領域である。
 冗長部は、不揮発性メモリ12の管理情報や誤り訂正符号であるECC等が格納される領域であり、アクセス装置2からアクセスできない領域である。データ部の大きさは、例えば4KB、冗長部の大きさは128バイト程度となる。
 また、データ部にのみ着目した場合に物理ブロックの大きさは、例えば512KB程度となる。よって、この大きさの物理ブロック2048個から構成される不揮発性メモリ12は、総容量1GB(ギガバイト)となる。
 <1.2:不揮発性記憶システムの動作>
 以上のように構成された不揮発性記憶システム1000の動作について、不揮発性記憶装置の動作とアクセス装置の動作に分けて、以下、説明する。
 (1.2.1:不揮発性記憶装置の動作)
 まず、不揮発性記憶装置1の動作を説明する。
 (1.2.1.1:初期化処理)
 図4は、不揮発性記憶装置1の初期化処理手順を示すフローチャートである。
 不揮発性記憶装置1は、アクセス装置2の不揮発性記憶装置インタフェース24に装着され、電源が投入されると、不揮発性記憶装置1を構成するハードウェア(HW)の初期化処理を行う(S101)。
 続いて、不揮発性記憶装置1は、メモリコントローラ11内のROM103に格納されたプログラムであるファームウェア(FW)をCPU101に転送し、ソフトウェアによる初期化処理を行う(S102)。
 このとき、アドレス変換制御部106は、不揮発性メモリインタフェース105を介して不揮発性メモリ12からアドレス変換情報122やフリーブロック情報123を読み出し、RAM102にアドレス変換テーブルやフリーブロックテーブルを作成する。これらのテーブルをRAM102上に作成するのは、それぞれの情報を参照するときに不揮発性メモリ12からの読み出しが省略でき、処理が高速化されるためである。
 同様に、ページキャッシュ制御部107は、不揮発性メモリインタフェース105を介して不揮発性メモリ12からページキャッシュ情報124を読み出し、RAM102上にページキャッシュ管理テーブルを作成する。
 そして、ページキャッシュ制御部107は、作成したページキャッシュ管理テーブルの解放予約フラグ(後述)を参照して、解放予約があるか否かを判定し(S103)、解放予約がある場合のみ後述するページキャッシュ解放処理を実施して(S104)、処理を終了する。
 ≪ページキャッシュ管理テーブル≫
 図5に、ページキャッシュ管理テーブルの構成の一例を示す。
 図5の例において、ページキャッシュ管理テーブルには、ページキャッシュ番号「0」から「7」までの8つのページキャッシュに関する情報の登録が可能である。各ページキャッシュ番号に対応付けられたページキャッシュに関する情報を「エントリ」と呼ぶものとする。
 図5に示すように、各エントリには、使用フラグ、論理ブロック番号、論理ページ番号、データ一致フラグ、解放予約フラグ、更新カウンタといった情報を格納可能である。
 使用フラグは、当該エントリが使用中(ON)であるのか空き(OFF)であるのかという状態を表す。使用フラグが使用中(ON)である場合、当該エントリの論理ブロック番号以降のデータが有効値として扱われる。一方、使用フラグが空き(OFF)である場合、当該エントリは、無効値(N/A)として扱われる。つまり、使用フラグが空き(OFF)である場合、当該エントリは、ページキャッシュとして使用されていないことになる。
 論理ブロック番号および論理ページ番号は、ページキャッシュに登録された論理アドレスを表す。本実施形態では、論理アドレスは、ページ単位で登録するものとするが、これに限定されるものではなく、例えば、セクタ単位(512B単位)で登録するものであってもよいし、複数ページ単位で登録するものであってもよい。
 本実施形態において、「論理アドレスがページキャッシュとして登録されている」とは、使用フラグがONで、かつ、論理ブロック番号および論理ページ番号が該論理アドレスと一致するエントリがページキャッシュ管理テーブル中に存在することを意味する。そして、「論理アドレスをページキャッシュから登録解除する」とは、使用フラグをOFFにするなどして、ページキャッシュ管理テーブル中に、上述のエントリを存在しないようにすることを意味する。
 データ一致フラグは、ページキャッシュとして格納されたデータと、従来のアドレス管理においてページキャッシュの論理アドレスに相当する場所に格納されたデータとが一致する(ON)か、一致しない(OFF)か、を表す。例えば、従来の論理アドレス/物理アドレス変換により、論理ブロック番号「0x0053」、論理ページ番号「0x00」のデータが、物理ブロック番号「0x0040」、物理ページ番号「0x00」のデータに対応づけられている場合、データ一致フラグが「ON」である図5のページキャッシュ番号が「1」のデータ、つまり、論理ブロック番号「0x0053」、論理ページ番号が「0x00」のデータは、ページキャッシュ用物理ブロック(物理ブロック番号「0x0018」)と、通常の物理ブロック(物理ブロック番号「0x0040」)との両方に存在し、ページキャッシュ用物理ブロックに保持されているデータと、通常の物理ブロック(物理ブロック番号「0x0040」)に保持されているデータ(物理ブロック番号「0x0040」、物理ページ番号「0x00」のデータ)とが一致することになる。
 解放予約フラグは、後述するページキャッシュ解放処理によって、該エントリを解放する予約が入っている(ON)か、入っていない(OFF)か、を表す。
 更新カウンタは、該エントリが登録された後、そのエントリに登録された論理アドレスに対してページキャッシュとしての書き込みが実施された回数を表す。
 さらに、ページキャッシュ管理テーブルには、ページキャッシュに登録された論理アドレスのデータをページキャッシュとして書き込む際の書き込み先の物理アドレスに関する情報(物理ブロック番号(図5の場合「0x0018」)、次書き込みページ番号(図5の場合「0x40」)など)を格納している。ここで示されるページキャッシュ用の書き込み物理ブロックのことを、「キャッシュブロック」と呼ぶものとする。
 (1.2.1.2:コマンド待ち処理)
 図6は、不揮発性記憶装置1のコマンド待ち処理手順を示すフローチャートである。
 不揮発性記憶装置1は、上述した初期化処理を実施した後やアクセス装置2から受信したコマンドに対する処理を実施した後に、アクセス装置2からのコマンドの受信待ち状態となる。
(S201~S206):
 まず、メモリコントローラ11は、内蔵するタイマー(図示せず)の動作を開始させる(S201)。そして、アクセス装置2からのコマンドの受信を監視し(S202)、コマンドを受信した場合には前記タイマーを停止し、タイマーをリセットして(例えば、タイマーカウンタ値をクリアして)(S203)、受信したコマンドの処理を実施する(S204)。
 「受信したコマンドの処理」とは、例えば、データ書き込み処理、データ読み出し処理、ページキャッシュ登録処理、ページキャッシュ解放処理、ページキャッシュ情報出力処理である。
 コマンド受信待ち中は、タイマーによって所定時間Tを経過したかを監視する(S205)。所定時間Tを経過すると、タイマーを停止し、タイマーをリセットする(タイマーカウンタ値をクリアする)(S206)。
(S207~S209):
 その後、RAM102に作成されたページキャッシュ管理テーブルの使用フラグ及び解放予約フラグ(後述)を参照して、解放予約があるか否かを判定する(S207)。
 解放予約がある場合のみ後述するページキャッシュ解放処理を繰り返し実施する(S208)。解放予約がない場合、メモリコントローラ11は、消費電力を抑えるためのスタンバイモードに移行する(S209)。スタンバイモードでは、メモリコントローラ11の一部の電力供給を停止にしたり、不揮発性メモリ12への電力供給を停止にしたりするが、アクセス装置2からのコマンド受信を行う部分の電力供給は停止しない。スタンバイモードに移行した後、コマンドを受信した場合は、S204の処理に移行する。
 なお、S208のページキャッシュ解放処理中にアクセス装置2からのコマンドを受信した場合は、ページキャッシュ解放処理を中断し、コマンド受信処理(S204)を優先的に実施することが望ましい。つまり、後述するようにページキャッシュ解放処理には、不揮発性メモリ12内におけるデータのコピー処理が伴うため、その処理時間には、比較的長い時間を要し、アクセス装置2からのコマンドの応答性が悪くなるので、これを防止するため、上記の場合、ページキャッシュ解放処理を中断し、コマンド受信処理(S204)を優先的に実施することが望ましい。
 さらに、メモリコントローラ11は、S208のページキャッシュ解放処理が中断されたか否かによって、所定時間Tの値を増減させてもよい。これにより、不揮発性記憶システム1000において、アクセス装置2からのコマンドが頻発する期間では、ページキャッシュ解放処理の実行を控えることができ、ページキャッシュ解放処理が連続して中断されるのを防止することができる。
 (1.2.1.3:データ書き込み処理)
 図7は、不揮発性記憶装置1のデータ書き込み処理手順を示すフローチャートである。
(S301、S302):
 不揮発性記憶装置1がアクセス装置2からデータ書き込み処理を指示するコマンドを受信すると、ページキャッシュ制御部107は、ページキャッシュ管理テーブルを参照し、アクセス装置2が指定する書き込み先の論理アドレスがページキャッシュの対象領域としてページキャッシュ管理テーブルに登録されているか否かを判定する(S301)。
 書き込み先の論理アドレスがページキャッシュ管理テーブルに登録されている場合、ページキャッシュ読み書き部110がアクセス装置2から受信した書き込みデータを、不揮発性メモリインタフェース105を介して不揮発性メモリ12のキャッシュブロックに書き込む(S302)。書き込み先の物理アドレスは、ページキャッシュ管理テーブル(物理ブロック番号、次書き込みページ)を参照することで判断する。
 ≪キャッシュブロックへの書き込みの状態例≫
 ここで、キャッシュブロックへの書き込みの状態例を図8に示す。
 キャッシュブロックへの最初の書き込み時には、図8(a)に示すように、キャッシュブロック(物理ブロック番号:0x01F0)は、消去済みの状態である。ページキャッシュ管理テーブルの次書き込みページは、先頭ページを表す数値「1」が格納されている。ここで、ページキャッシュ番号「1」(ページキャッシュ番号「1」を「#1」と表記することがある。)のデータ(#1のデータ)の書き込みが発生した場合、図8(b)に示すように、キャッシュブロック(物理ブロック番号:0x01F0)の先頭ページに該データ(#1のデータ)が格納される。そして、ページキャッシュ管理テーブルの次書き込みページは、先頭ページの次のページを表す数値「2」に更新される。
 図8(b)に示す状態で、ページキャッシュ番号#1のデータの書き込みが発生した場合、図8(c)に示すようにキャッシュブロック(物理ブロック番号:0x01F0)の2ページ目に該データ(#1のデータ)が格納される。そして、ページキャッシュ管理テーブルの次書き込みページは「3」に更新される。
 図8(c)のように、キャッシュブロックに同じページキャッシュ番号(すなわち同じ論理アドレス)のデータが複数格納された場合には、最後に書き込んだものを有効なものとして取り扱い、それ以外は無効なものとして取り扱うものとする。つまり、図8(c)の場合、物理ブロック番号「0x01F0」の1ページ目のデータを無効とし、物理ブロック番号「0x01F0」の2ページ目のデータを有効として取り扱う。
 同様に、図8(c)に示す状態で、ページキャッシュ番号#2のデータの書き込みが発生した場合、図8(d)に示すような状態となり、ページキャッシュ管理テーブルの次書き込みページがインクリメントされる。
 キャッシュブロックへの書き込みを繰り返し行った結果、図8(e)のように全ページが書き込み済みとなったら、ページキャッシュ制御部107は、フリーブロック情報123を参照してフリーブロック(図8の場合、物理ブロック番号:0x3402がフリーブロックであるものとする。)を取得し、消去を行った後、キャッシュブロック(図8(e)の場合、物理ブロック番号「0x01F0」の物理ブロック)の有効なデータを前記フリーブロック(物理ブロック番号「0x3402」の物理ブロック)に先頭から順にコピーする。その後、該フリーブロック(物理ブロック番号「0x3402」の物理ブロック)を新たなキャッシュブロックとして登録し、元のキャッシュブロック(物理ブロック番号:0x01F0)は、フリーブロックとして再利用する。これにより、図8(f)に示すような状態となり、ページキャッシュ管理テーブルの次書き込みページは「3」に更新される。
 データ書き込み処理の説明に戻る。
(S303~S305):
 ページキャッシュ管理テーブルにおいてS302で書き込みを行った論理アドレスのエントリは、データ一致フラグをOFFに設定し(S303)、更新カウンタをインクリメントする(S304)。そして、更新されたページキャッシュ管理テーブルの情報は、ページキャッシュ情報124として不揮発性メモリ12に書き込まれる(S305)。
 なお、キャッシュブロックへの書き込みにおける格納形式として、ページの冗長部にデータ一致フラグや更新カウンタの値を格納してもよい。そして、S302の書き込み時に、ページのデータ部にアクセス装置2からのデータを格納すると同時に、同じページの冗長部にデータ一致フラグ(値は「OFF」)、更新カウンタ(値はインクリメント後のカウンタ値)を格納してもよい。これにより、S302からS305の処理に必要となる不揮発性メモリ12への書き込みの処理量が削減できる。
(S306):
 S305の処理の後、続けて次の論理アドレスへの書き込みを実行する場合にはS301の処理に戻り、そうでなければデータ書き込み処理を終了する(S306)。
(S307):
 S301の判定において、アクセス装置2が指定する書き込み先の論理アドレスがページキャッシュの対象領域として登録されていない場合は、従来の不揮発性記憶装置と同様の書き込み処理を実施する(S307)。
 従来の書き込み処理では、不揮発性メモリ12に格納されたアドレス変換情報122やフリーブロック情報123、及び、これらから作成されたRAM102上のアドレス変換テーブル、フリーブロックテーブルが使用される。
 但し、S307の処理において、本実施形態では、以下の特徴を有する。
 S307の処理中に「巻き込み退避処理」が必要となった場合、メモリコントローラ11は、巻き込み退避処理におけるコピー元のデータのアドレス範囲が、ページキャッシュ管理テーブルの使用中エントリの論理アドレスを含むか否かを判定する。そして、ページキャッシュ管理テーブルの使用中エントリの論理アドレスを含む場合、当該論理アドレスのデータであって、ページキャッシュされているデータ(キャッシュブロックに格納されているデータ)を、コピー元のデータとして巻き込み退避処理を実行する。これにより、ページキャッシュのデータ(キャッシュブロックに格納されているデータ)と巻き込み退避処理における退避先(コピー先)のデータとが一致することになる。
 図9に、S307における巻き込み退避処理の前後の物理ブロックの書き込み状態の一例を示す。
 図9(a)は、巻き込み退避処理前の状態を示している。
 キャッシュブロック(物理ブロック番号:0x0FF0)には、3つの有効なページキャッシュのデータが格納されている。ページキャッシュの(論理ブロック番号、論理ページ番号)は、それぞれ、(X、1)、(Y、3)、(Z、8)である。図9では、(A、B)のデータ(論理ブロック番号「A」で、論理ページ番号「B」のデータ)を、「データA_B」と表記している。
 データブロック(物理ブロック番号:0x0023)は、巻き込み退避処理におけるコピー元のブロックであり、論理ブロック番号=Xの全ページ(1~N)のデータ(「データX_1」~「データX_N」)が格納されている。
 書き込みブロック(物理ブロック番号:0x243A)は、巻き込み退避処理におけるコピー先のブロックであり、論理ブロック番号=Xのページ(N-1)及びページNの2ページ分のデータ(「データX_(N-1)」と「データX_N」)が格納されている。
 図9(b)は、巻き込み退避処理後の状態を示している。
 キャッシュブロック、データブロックの状態は、図9(a)と同じである。
 書き込みブロック(物理ブロック番号「0x243A」)には、論理ブロック番号Xのページ1からページ(N-2)までのデータ(「データX_1」~「データX_(N-2)」)がコピーされている。ページ1のデータ(「データX_1」)は、キャッシュブロック(物理ブロック番号「0x0FF0」)及びデータブロック(物理ブロック番号「0x0023」)の両方に存在するため、キャッシュブロック(物理ブロック番号「0x0FF0」)のデータを優先してコピーしている。それ以外のデータは、キャッシュブロックに存在しないのでデータブロック(物理ブロック番号「0x0023」)からコピーしている。
 巻き込み退避処理後、書き込みブロック(物理ブロック番号:0x243A)は、論理ブロック番号Xの新たなデータブロックとして、RAM102上のアドレス変換テーブルや不揮発性メモリ12のアドレス変換情報122に登録される。元のデータブロック(物理ブロック番号:0x0023)は、フリーブロックとしてRAM102上のフリーブロックテーブルや不揮発性メモリ12のフリーブロック情報123に登録され、再利用される。
 再びデータ書き込み処理の説明に戻る。
(S308~S310):
 S307の処理において、巻き込み退避処理が発生した場合、ページキャッシュの情報(キャッシュブロックに格納されているデータ)をコピー元のデータとして巻き込み退避処理を実行したか否かを判断する(S308)。
 ページキャッシュの情報(キャッシュブロックに格納されているデータ)をコピー元のデータとして巻き込み退避処理を実行した場合、ページキャッシュ管理テーブルにおいて該当するエントリのデータ一致フラグを「ON」に設定し(S309)、不揮発性メモリ12上のページキャッシュ情報124にも反映させる(S310)。つまり、ページキャッシュの情報(キャッシュブロックに格納されているデータ)をコピー元のデータとして巻き込み退避処理を実行した場合、巻き込み退避処理後の状態において、ページキャッシュとして格納されたデータ(キャッシュブロックに格納されているデータ)と、従来のアドレス管理においてページキャッシュの論理アドレスに相当する場所に格納されたデータとが一致するので、該当するエントリのデータ一致フラグを「ON」に設定する。図9(b)の場合、キャッシュブロック(物理ブロック番号「0x0FF0」)の1ページ目のデータ(「データX_1」)と、書き込みブロック(通常の物理ブロック)(物理ブロック番号「0x243A」)の3ページ目のデータ(「データX_1」)とは、一致しているので、データX_1に相当するページキャッシュ管理テーブルのエントリにおいて、データ一致フラグは、「ON」に設定される。
(S306):
 S310の処理の後、続けて次の論理アドレスへの書き込みを実行する場合にはS301の処理に戻り、そうでなければデータ書き込み処理を終了する(S306)。
 (1.2.1.4:データ読み出し処理)
 図10は、不揮発性記憶装置1のデータ読み出し処理手順を示すフローチャートである。
(S401):
 不揮発性記憶装置1がアクセス装置2からデータ読み出しを指示するコマンドを受信すると、ページキャッシュ制御部107は、ページキャッシュ管理テーブルを参照し、アクセス装置2が指定する読み出し先の論理アドレスがページキャッシュの対象領域として登録されているか否かを判定する(S401)。
(S403):
 読み出し先の論理アドレスがページキャッシュの対象領域として登録されている場合、ページキャッシュ読み書き部110が、不揮発性メモリインタフェース105を介して不揮発性メモリ12のキャッシュブロックから読み出しを行い、読み出したデータをアクセス装置2に送信する(S403)。
(S402):
 一方、読み出し先の論理アドレスがページキャッシュの対象領域として登録されていない場合、従来の不揮発性記憶装置と同様の読み出し処理を実施する(S402)。従来の読み出し処理では、不揮発性メモリ12に格納されたアドレス変換情報122及びこれらから作成されたRAM102上のアドレス変換テーブルが使用される。
(S404):
 S402、S403の処理の後、続けて次の論理アドレスへの読み出しを実行する場合にはS401の処理に戻り、そうでなければデータ読み出し処理を終了する(S404)。
 (1.2.1.5:ページキャッシュ登録処理)
 図11は、不揮発性記憶装置1のページキャッシュ登録処理手順を示すフローチャートである。
 アクセス装置2は、不揮発性記憶装置1に対して、ページキャッシュ登録を指示するコマンド(以下、「ページキャッシュ登録コマンド」という。)を発行し、このページキャッシュ登録コマンドには、少なくともページキャッシュの対象範囲として登録する論理アドレスの情報が含まれているものとする。また、本実施形態では、ページキャッシュ登録コマンドと共に、ページキャッシュ登録コマンドで指定する論理アドレスへの書き込みデータが転送されるものとする。
(S501):
 不揮発性記憶装置1がアクセス装置2からページキャッシュ登録を指示するコマンド(ページキャッシュ登録コマンド)を受信すると、ページキャッシュ制御部107のページキャッシュ登録部108は、ページキャッシュ管理テーブルを参照し、ページキャッシュ管理テーブルに、アクセス装置2が指定する論理アドレスを登録するための空きエントリが存在するか否かを確認する(S501)。
(S502、S503):
 ページキャッシュ管理テーブルに空きエントリが存在しない場合、キャッシュ管理テーブルに登録されている使用中のエントリから解放対象を選択し(S502)、後述するページキャッシュ解放処理(S503)を実施して空きエントリを確保する。
 なお、S502において、データ一致フラグが「ON」であるものを優先的に選択してもよい。これにより、後述するページキャッシュ解放処理(S503)に要する時間を短縮することができる。
 また、S502において、解放予約フラグが「ON」であるものを優先的に選択してもよい。これにより、アクセス装置2が明示的に登録解除を指示したエントリを登録解除できるため、アクセス装置2が意図していないエントリを解除することにより再度登録処理が発生するというリスクを軽減できる。
(S504、S505):
 次に、確保した空きエントリにアクセス装置2から受信した論理アドレスを論理ブロック番号及び論理ページ番号に変換して設定する。また、確保した空きエントリに、初期値を設定する。具体的には、初期値として、データ一致フラグには「OFF」を、解放予約フラグには「OFF」を、更新カウンタには「0」を、それぞれ、設定する。そして、使用フラグを「ON」に設定し、空きエントリを使用中エントリに変更する(S504)。
 続けて、ページキャッシュ登録コマンドと共に受信した書き込みデータを、S302の処理と同様の手順で、ページキャッシュ対象データとして、キャッシュブロックに書き込む(S505)。
(S506):
 最後に、ページキャッシュ制御部107は、更新されたページキャッシュ管理テーブルの情報をページキャッシュ情報124に反映させるために、不揮発性メモリ12に書き込みを行う(S506)。
 なお、本実施形態では、コマンドと共に当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものとしたが、コマンドとは別に、当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものであってもよい。その場合、コマンドによるページキャッシュ登録処理の前後で、当該コマンドで指定する論理アドレスのデータが変化しないことが望ましい。
 ページキャッシュ登録を指示するコマンドにおいてアクセス装置から論理アドレスのみが転送され、書き込みデータは転送されない場合には、データブロックに存在する該論理アドレスの既存データをキャッシュブロックにコピーすることでページキャッシュの初期データを生成してもよい。図10で説明したようにデータ読み出し処理では、該論理アドレスのデータページキャッシュ登録処理の前ではデータブロックのデータが読み出され、ページキャッシュ登録処理の後ではページキャッシュのデータが読み出されることになる。従って、データブロックの既存データをキャッシュブロックにコピーすることにより、ページキャッシュ登録処理の前後で読み出されるデータが変化しないことを保証できる。
 また、本実施形態では、空きエントリが存在しない場合に、自動的にページキャッシュ解放処理を行うものとしたが、これに限定されることはなく、例えば、アクセス装置2が空きエントリの有無を管理する場合であって、空きエントリが存在しないときは、アクセス装置2からページキャッシュ解放処理を指示するコマンドを発行し、ページキャッシュ解放処理(後述)が実行されない限り、不揮発性記憶装置1からアクセス装置2に「エラー」を示すレスポンスを返すようにしてもよい。
 (1.2.1.6:ページキャッシュ解放処理)
 図12は、不揮発性記憶装置1のページキャッシュ解放処理手順を示すフローチャートである。
 アクセス装置2は、不揮発性記憶装置1に対して、ページキャッシュ登録解除を指示するコマンド(以下、「ページキャッシュ登録解除コマンド」という。)を発行し、そのコマンドには少なくとも1つ以上のページキャッシュ番号の情報と、登録解除処理のモード(同期モード/非同期モード)に関する情報とが含まれているものとする。
(S601、S602):
 不揮発性記憶装置1は、アクセス装置2からページキャッシュ登録解除を指示するコマンド(ページキャッシュ登録解除コマンド)を受信する(S601)と、当該ページキャッシュ登録解除コマンドに付随するモード(同期モード/非同期モード)に関する情報を参照する(S602)。
(S603、S604):
 ページキャッシュ登録解除コマンドにより指定されるモードが非同期モードであれば、ページキャッシュ制御部107のページキャッシュ解放部109は、ページキャッシュ管理テーブルを参照し、アクセス装置2が指定するページキャッシュ番号のエントリの解放予約フラグを「ON」に設定する(S603)。その後、ページキャッシュ制御部107は、更新されたページキャッシュ管理テーブルの情報をページキャッシュ情報124に反映させるために、不揮発性メモリ12に書き込みを行う(S604)。
(S605):
 一方、ページキャッシュ登録解除コマンドにより指定されるモードが同期モード指定であれば、ページキャッシュ制御部107のページキャッシュ解放部109は、ページキャッシュ管理テーブルを参照し、アクセス装置2が指定するページキャッシュ番号に対応するエントリのうち1つを選択し、選択したエントリのデータ一致フラグを確認する(S605)。
(S606~S609):
 データ一致フラグが「OFF」である場合のみ、ページキャッシュ解放部109は、さらにページキャッシュ管理テーブルを参照し、選択したエントリと同じ論理ブロックの使用中エントリが存在するか否かを確認する(S606)。
 選択したエントリと同じ論理ブロックの使用中エントリが存在する場合、ページキャッシュ解放部109は、選択したエントリのデータと共に同じ論理ブロックの使用中エントリのデータを追出す「一括追出し処理」を実施する(S607)。
 一方、選択したエントリと同じ論理ブロックの使用中エントリが存在しない場合、ページキャッシュ解放部109は、選択したエントリのデータを追出す「追出し処理」を実施する(S608)。
 そして、S607またはS608の追出し処理を実施したエントリのデータ一致フラグを「ON」に設定する(S609)。このとき、一括追出し処理を行った場合は、複数のエントリのデータ一致フラグが「ON」に設定されることになる。
(S610):
 アクセス装置2が指定するページキャッシュ番号に対応するエントリのうち未処理のものが残っている場合は、S605の処理に戻る(S610)。
(S611):
 一方、未処理のものが残っていない場合、ページキャッシュ解放部109は、アクセス装置2が指定するページキャッシュ番号に対応するエントリの使用フラグを「OFF」に設定して、アクセス装置2が指定するページキャッシュ番号に対応するエントリを空きエントリとする(S611)。
(S612):
 最後に、ページキャッシュ制御部107は、更新されたページキャッシュ管理テーブルの情報をページキャッシュ情報124に反映させるために、不揮発性メモリ12に書き込みを行う(S612)。
 ≪一括追出し処理≫
 図13に、S607における一括追出し処理の前後の物理ブロックの書き込み状態の一例を示す。
 図13(a)は、一括追出し処理前の状態を示している。
 キャッシュブロック(物理ブロック番号:0x0FF1)には、3つの有効なページキャッシュのデータ(「データX_1」、「データY_3」および「データX_3」)が格納されている。ページキャッシュの(論理ブロック番号、論理ページ番号)は、それぞれ、(X、1)、(Y、3)、(X、3)である。いずれもページキャッシュ管理テーブル上では、データ一致フラグが「OFF」に設定されているものとする。
 全3つのページキャッシュ(ページキャッシュ対象データが「データX_1」、「データY_3」および「データX_3」であるページキャッシュ)が、ページキャッシュ登録解除の対象としてアクセス装置2から指定され、これから最初のページキャッシュ(X、1)を登録解除するものとする。
 データブロック(物理ブロック番号:0x0516)は、一括追出し処理におけるコピー元のブロックであり、論理ブロック番号=Xの全ページ(1~N)のデータ(「データX_1」~「データX_N」)が格納されている。
 フリーブロック(物理ブロック番号:0x000A)は、フリーブロックテーブルを参照して取得した物理ブロックであり、消去した状態とする。
 図13(b)は、一括追出し処理後の状態を示している。
 キャッシュブロック(物理ブロック番号:0x0FF1)およびデータブロック(物理ブロック番号:0x0516)の状態は、図13(a)と同じである。
 フリーブロック(物理ブロック番号:0x000A)には、論理ブロック番号Xのページ1からページNまでのデータ(「データX_1」~「データX_N」)がコピーされている。ページ1およびページ3のデータは、キャッシュブロック(物理ブロック番号:0x0FF1)及びデータブロック(物理ブロック番号:0x0516)の両方に存在するため、キャッシュブロック(物理ブロック番号:0x0FF1)のデータを優先して、フリーブロック(物理ブロック番号:0x000A)にコピーしている。それ以外のデータは、キャッシュブロック(物理ブロック番号:0x0FF1)に存在しないので、データブロック(物理ブロック番号:0x0516)フリーブロック(物理ブロック番号:0x000A)にからコピーしている。
 一括追出し処理後、フリーブロック(物理ブロック番号:0x000A)は、論理ブロック番号Xの新たなデータブロックとして、RAM102上のアドレス変換テーブルや不揮発性メモリ12のアドレス変換情報122に登録される。元のデータブロック(物理ブロック番号:0x0516)は、フリーブロックとして、RAM102上のフリーブロックテーブルや不揮発性メモリ12のフリーブロック情報123に登録され、再利用される。
 以上のように、一括追出し処理では、ページキャッシュ登録解除対象に指定されたエントリと共に、該エントリと同じ論理ブロック(図13では、論理ブロック番号「X」の論理ブロック)の別の使用中のエントリ(使用フラグが「ON」のエントリ)のデータ(図13では、「データX_3」)のコピー処理を行う。そして、同じ論理ブロックの複数の使用中エントリ(図13では、「データX_1」のエントリと「データX_3」のエントリ)のデータ一致フラグを一括して「ON」に設定する。そのため、同じ論理ブロックの複数の使用中エントリを、ページキャッシュ登録解除する場合に必要な書き込みは、物理ブロック1つ分(全ページ分)でよい。このように、不揮発性記憶システム1000では、同じ論理ブロックの複数の使用中エントリに対応するデータ(ページキャッシュ対象データ)について、フリーブロックへのデータコピーを一括して行えるため、各々のエントリに対応するデータ(ページキャッシュ対象データ)を個別に追出し処理するよりも処理時間を大幅に短縮することができる。
 なお、図13(a)の場合において、2つ目のページキャッシュ(Y、3)を登録解除する場合がS608における追出し処理となる。つまり、キャッシュブロック(物理ブロック番号:0x0FF1)には、論理ブロック番号が「Y」であるデータは、「データY_3」の1つのみ格納されているので、ページキャッシュ(Y、3)を登録解除する場合、不揮発性記憶システム1000では、S608における追出し処理が実行されることになる。図示はしないが、追出し処理では、フリーブロックに対して書き込むデータのうち1ページ分だけが登録解除対象のページキャッシュのデータ(図13では、「データY_3」)となり、それ以外は、全てデータブロックのデータとなる。従って、1つのページキャッシュの登録解除に、物理ブロック1つ分(全ページ分)の書き込みが必要となる。
 (1.2.1.7:ページキャッシュ情報出力処理)
 図14は、不揮発性記憶装置1のページキャッシュ情報出力処理手順を示すフローチャートである。
 アクセス装置2は、不揮発性記憶装置1に対してページキャッシュ情報出力を指示するコマンド(以下、「ページキャッシュ情報出力コマンド」という。)を発行する。
(S701、S702):
 不揮発性記憶装置1がアクセス装置2からページキャッシュ情報出力コマンドを受信すると、ページキャッシュ制御部107のページキャッシュ情報出力部111は、ページキャッシュ管理テーブルを参照して現在の各ページキャッシュに関する情報を取得し(S701)、出力形式に変換して、ページキャッシュに関する情報としてアクセス装置2に出力する(S702)。
 ≪ページキャッシュに関する情報の生成例≫
 以下は、前述したページキャッシュに関する情報の生成例である。
(1)ページキャッシュに登録できる論理アドレスの個数:
 ページキャッシュ管理テーブルに登録可能なページキャッシュ番号の個数を出力する。図5の例では「8」となる。
(2)ページキャッシュに登録された論理アドレスの個数:
 ページキャッシュ管理テーブルに登録された使用フラグが「ON」である使用中エントリの数を出力する。図5の例では「6」となる。使用フラグが「OFF」である空きエントリの数を出力し、間接的に使用中エントリがわかるようにしてもよい。
(3)ページキャッシュに登録された論理アドレスの情報:
 ページキャッシュ管理テーブルに登録された論理ブロック番号と論理ページ番号とを出力する。もしくは、これらから算出される論理アドレス(例えば、セクタアドレス)を出力する。
(4)ページキャッシュに登録された論理アドレスをページキャッシュ登録解除するための時間に関する情報:
 ページキャッシュ管理テーブルに登録されたデータ一致フラグの情報を出力する。もしくは、データ一致フラグの情報から時間情報を取得し、取得した時間情報を出力する。データ一致フラグの情報から時間情報を取得する方法として、例えば、データ一致フラグが「ON」なら、時間情報として「最大50ミリ秒」を取得し、データ一致フラグが「OFF」なら、時間情報として「最大250ミリ秒」を取得する。なお、データ一致フラグが「ON」である場合、ページキャッシュ登録解除処理を実行するのに、使用フラグを「OFF」に変更するだけでよく、巻き込み退避処理やコピー処理が発生しないため、ページキャッシュ登録解放処理に要する時間は短くなる。また、上記時間情報は、不揮発性記憶装置1の不揮発性メモリ12の特性を考慮して予め決定されるものであってもよい。
(5)ページキャッシュに登録された論理アドレスのうち、所定時間内に一括して登録解除が可能な組合せに関する情報:
 ページキャッシュ管理テーブルに登録された使用中エントリ(使用フラグが「ON」のエントリ)のうち、論理ブロックアドレスが同じ組を出力する。図5の例では、ページキャッシュ番号#0と#3(ともに論理ブロック番号が「0x031A」)、及びページキャッシュ番号#2と#5(ともに論理ブロック番号が「0x21FE」)が、それぞれ、論理ブロックアドレスが同じであるので、図5の場合、ページキャッシュ番号#0と#3、および、ページキャッシュ番号#2と#5が、「所定時間内に一括して登録解除が可能な組合せに関する情報」として出力される。
(6)ページキャッシュに登録された論理アドレスを登録解除するときのページキャッシュのデータの追出し処理の対象に関する情報:
 追出し処理の対象となる、ページキャッシュ管理テーブルに登録された論理ブロック番号を出力する。
(7)ページキャッシュに登録された論理アドレスのデータ更新回数に関する情報:
 ページキャッシュ管理テーブルに登録された更新カウンタの値を出力する。
(8)ページキャッシュに登録された論理アドレス間の登録順序に関する情報:
 ページキャッシュ管理テーブルに登録された登録順序履歴(図5では、図示せず。)を出力する。当該登録順序履歴は、ページキャッシュ登録処理時に更新するものとする。なお、この場合、ページキャッシュ管理テーブルに、登録順序履歴に関する情報を保持させるようにする。「登録順序履歴に関する情報」としては、例えば、ページキャッシュ登録したときの時刻情報(タイムスタンプ)や、登録順序を示す数値等が挙げられる。
(9)ページキャッシュに登録された論理アドレス間の直近の更新順序に関する情報:
 ページキャッシュ管理テーブルに登録されたページキャッシュ更新履歴(図5で図示せず。)を出力する。当該ページキャッシュ更新履歴は、データ書き込み処理時にキャッシュブロックへの書き込みを行った際に更新するものとする。なお、この場合、ページキャッシュ管理テーブルに、ページキャッシュ更新履歴に関する情報を保持させるようにする。「ページキャッシュ更新履歴に関する情報」としては、例えば、データ書き込み処理時にキャッシュブロックへの書き込みを行ったときの時刻情報(タイムスタンプ)や、ページキャッシュ更新履歴の状態を示す数値等が挙げられる。
(10)ページキャッシュに登録された論理アドレスの識別子情報:
 ページキャッシュ管理テーブルにおけるページキャッシュ番号の値を出力する。
(11)ページキャッシュのサイズ情報:
 物理ページのサイズを出力する。
 (1.2.2:アクセス装置の動作)
 次に、アクセス装置2の動作を説明する。
 (1.2.2.1:コンテンツ書き込み処理)
 図15は、アクセス装置2が不揮発性記憶装置インタフェース24に装着された不揮発性記憶装置1にコンテンツを書き込むときの、不揮発性記憶装置1へのアクセスに着目したコンテンツ書き込み処理手順を示すフローチャートである。
 コンテンツ書き込み処理の開始前に、アクセス装置2は、従来と同じ手順で不揮発性記憶装置1の初期化処理(例えば、電力供給の開始、初期化コマンドの発行などの処理)を完了しているものとする。
(S801):
 アクセス装置2のページキャッシュ情報取得部205は、コンテンツファイル等のデータ書き込みに先立ち、不揮発性記憶装置1に対して、ページキャッシュ情報出力を指示するコマンド(ページキャッシュ情報出力コマンド)を発行し、ページキャッシュに関する情報を取得する(S801)。
(S802):
 ページキャッシュ情報設定部204は、S801で取得した情報と、これからコンテンツを記録する際に必要となるページキャッシュの数及びページキャッシュに登録が必要な論理アドレスの情報を考慮して、既にページキャッシュとして登録されている論理アドレスの登録解除が必要であるか否かを判断する(S802)。既にページキャッシュとして登録されている論理アドレスの登録解除が必要である場合、次に、S803の処理が実行される。一方、既にページキャッシュとして登録されている論理アドレスの登録解除が必要でない場合、次に、S805の処理が実行される。
(S803、S804):
 既にページキャッシュとして登録されている論理アドレスの登録解除が必要であると判断した場合、S801で取得した情報をもとに、ページキャッシュ登録解除する論理アドレスのページキャッシュ番号を選択する。
 このとき、まずは「ページキャッシュに登録されている論理アドレスをページキャッシュ登録解除するための時間に関する情報」を参照し、ページキャッシュ登録解除の時間が短いものを優先的に選択する。例えば、ページキャッシュ管理テーブルのデータ一致フラグが「ON」である使用中エントリは、データブロックにも同一データが存在しているので、ページキャッシュ管理テーブル中に、データ一致フラグが「ON」であるエントリが存在すれば、当該エントリおいて、使用フラグを「ON」から「OFF」に変更するだけで、ページキャッシュ登録解放をすることができる。この場合、巻き込み退避処理やコピー処理が発生しないため、短い処理時間で、ページキャッシュ登録解放を実行することができる。
 さらに、ページキャッシュ登録解除の対象を選択する必要がある場合は、「ページキャッシュに登録された論理アドレスのうち、所定時間内に一括して登録解除が可能な組合せに関する情報」を参照し、できるだけ多くの論理アドレスを一括して登録解除できるものを選択する。例えば、図13の場合、論理ブロック番号「X」の論理アドレスのデータである「X_1」および「X_3」の2つの論理アドレスを一括して登録解除(一括追出し処理による登録解除)することできるため、物理ブロック1個分を対象とした書き込み処理で済むので、短い処理時間で、ページキャッシュ登録解放を実行することができる。
 さらに、登録解除の対象を選択する必要がある場合は、「ページキャッシュに登録された論理アドレスのデータ更新回数に関する情報」や「ページキャッシュに登録された論理アドレス間の登録順序に関する情報」や「ページキャッシュに登録された論理アドレス間の直近の更新順序に関する情報」などの情報を参照して、ページキャッシュ登録解除の対象を選択する(S803)。例えば、更新回数の少ないエントリからページキャッシュ登録解除する、あるいは、ページキャッシュ登録されたのが古いエントリからページキャッシュ登録解除する等により、今後あまり更新されそうにないエントリから効率的にページキャッシュ登録解除することができる。その結果、不揮発性記憶システム1000において、効率の良いページキャッシュを実現することができる。
 ページキャッシュ情報設定部204は、S803で選択した全てのページキャッシュ番号と共にページキャッシュ登録解除を指示するコマンド(ページキャッシュ登録解除コマンド)を、不揮発性記憶装置1に対して発行し、ページキャッシュの登録解除を行う(S804)。本実施形態では、S803では直ちにページキャッシュ登録解除が必要なものを選択したものとし、アクセス装置2は、同期モードでコマンドを発行するものとする。つまり、本実施形態では、アクセス装置2から同期モードを指定し、発行されたページキャッシュ登録解除コマンドにより、ページキャッシュ解放部109は、アクセス装置2から要求があった時点で直ちに登録解除処理を開始する。同期モード/非同期モードの指定に関する情報は、ページキャッシュ登録解除コマンドに含めてもよいし、別のコマンドで、アクセス装置2から不揮発性記憶装置1に送信するようにしてもよい。
 なお、S803で直ちに登録解除が必要なもの以外を含んでいる場合には、アクセス装置2は、不揮発性記憶装置1に対して、別途、非同期モードでページキャッシュ登録解除のコマンドを発行してもよい。
(S805):
 次に、アクセス装置2は、コンテンツファイルや当該コンテンツファイルに関連するファイルを書き込む際に使用するページキャッシュの登録処理を行う。なお、「コンテンツファイルに関連するファイル」としては、例えば、コンテンツに付随するデータ(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)のファイルや、コンテンツのサーチ用データのファイルや、コンテンツの動画サーチ用の特定フレーム画像のファイル等である。
 ページキャッシュ情報設定部204は、不揮発性記憶装置1に対して、ページキャッシュ登録を指示するコマンド(ページキャッシュ登録コマンド)を発行する(S805)。ページキャッシュ登録する論理アドレスは、例えば、コンテンツファイルのFATやディレクトリエントリの論理アドレス、関連するファイルのFATやディレクトリエントリの論理アドレス、関連するファイルのうち上書きが頻発するような特定のデータに該当する論理アドレス、などである。これらの論理アドレスは、できる限り、近接するように選択される。例えば、同一セクタ内、同一ページキャッシュ内、同一論理ブロック内となるように選択される。これは、不揮発性記憶システム1000において、該コンテンツの記録が終了したときに、使用したページキャッシュの登録解除を一括追出し処理で効率よく行うことができるようにするためである。
 ページキャッシュ登録が完了したら、コンテンツの書き込み処理を開始する。
(S806):
 アクセス装置2は、不揮発性記憶装置1に対して、RAM22に蓄積されたコンテンツデータを不揮発性記憶装置1に書き込むためにデータ書き込みを指示するコマンドを発行し、書き込みデータを転送する(S806)。このとき、不揮発性記憶装置1では、S307からS310の処理が実行される。
(S807):
 アクセス装置2は、一定量のコンテンツデータを書き込んだら、コンテンツファイルのFATやディレクトリエントリを更新するために、データ書き込みを指示するコマンドを、不揮発性記憶装置1に対して発行し、書き込みデータを転送する(S807)。これらのデータ(コンテンツファイルのFATやディレクトリエントリのデータ)の書き込みアドレスは、ページキャッシュの対象として登録されているので、不揮発性記憶装置1では、S302からS305の処理が実行される。
(S808~S811):
 同様に関連するファイルのデータやFAT、ディレクトリエントリデータ書き込みを指示するコマンドを発行し、書き込みデータを転送する(S808、S809)。これらのデータの書き込みアドレスもページキャッシュの対象として登録されているので、不揮発性記憶装置1では、S302からS305の処理が実行される。
 記録中のコンテンツが終了するまでS806からS809の処理を繰り返し行う(S810)。そして、記録中のコンテンツが終了し、引き続き次のコンテンツの記録が必要であれば、S801の処理に戻る。引き続き次のコンテンツの記録が必要なければ、処理を終了する(S811)。
 以上のように、不揮発性記憶システム1000では、アクセス装置2が不揮発性記憶装置1に対してページキャッシュの登録解除及び登録を行う場合、予めページキャッシュに関する情報を不揮発性記憶装置1から取得し、取得したページキャッシュに関する情報から、アクセス装置2が、ページキャッシュ登録解除の処理に要する時間を最小限に抑えるエントリの選択を効果的に行うことができる。これにより、不揮発性記憶システム1000では、ページキャッシュ登録解除の処理に要する時間を短くすることができる。その結果、不揮発性記憶システム1000では、コンテンツ記録のための準備時間の短縮が可能となる。
 なお、本発明を上記の実施形態に基づいて説明してきたが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。本実施形態で記載された数値は一例であり、他の値を使用してもよい。例えば、物理ブロックサイズやページサイズなどの値はすべて一例であり、本実施形態に記載した値に限定されるものではない。
 [他の実施形態]
 また、以下のような場合も本発明に含まれる。
(1)前述の実施形態における、アクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムにおいて、各機能ブロックはLSIなどの半導体装置により個別に1チップ化されてもよいし、一部または全部を含むように1チップ化されてもよい。
 なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(2)前述の実施形態における各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。なお、上記実施形態に係るアクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
(3)前述の実施形態におけるページキャッシュは、各々が1つのページで構成される(1つのページに対応する)ものとして説明したが、ページキャッシュのサイズは、これに限定されるものではない。例えば、複数のページを組として仮想的なページを構成し、この仮想的なページ単位でページキャッシュを構成してもよい。また、ページに対して複数回の部分的な書き込みが許容されるフラッシュメモリなどの場合には、ページキャッシュのサイズをページよりも小さな単位(例えば、セクタ単位)とすることも可能である。
 よって、「ページキャッシュ」という呼称は、単に、「キャッシュ」としてもよい。
 1つのページのサイズは、フラッシュメモリの製造プロセスやメーカー等によって異なっているため、ページキャッシュの構成を切り替えることで、ページキャッシュのサイズを不揮発性記憶装置として統一することも可能である。この場合、アクセス装置は、同じサイズのページキャッシュを期待することができるため、設計が容易となる。
(4)前述の実施形態におけるアクセス装置は、コンテンツ書き込み処理において、ページキャッシュに登録すべき論理アドレスをできるだけ近接するように選択する。しかし、例えば、不揮発性記憶システムにおいて、コンテンツの書き込みと削除の繰り返しによって、ファイルシステムの管理情報の断片化が進行し、近接する論理アドレスを選択することが難しい状態になっている場合が考えられる。そこで、不揮発性記憶システムにおいて、ページキャッシュに登録すべき論理アドレスの選択に先立ち、断片化の解消処理(デフラグ)を行い、論理アドレスが近接するように選択できるようにしてもよい。また、デフラグの時間を短縮するために、不揮発性記憶システムにおいて、デフラグの対象範囲をコンテンツの記録に関する部分(例えば、コンテンツファイルのFAT、ディレクトリエントリが格納された論理アドレスや、コンテンツの関連ファイルのFAT、ディレクトリエントリが格納された論理アドレスや、コンテンツの関連ファイルに含まれる特定のデータ(例えば、頻繁に更新されるデータ)などが格納された論理アドレス)に限定してもよい。
(5)前述の実施形態における不揮発性記憶装置は、半導体メモリカードのような着脱可能な記憶装置として説明したが、アクセス装置の基板に組み込みできる形式の情報記憶モジュールとして実現してもよい。また、不揮発性記憶装置と、アクセス装置とは、必ずしも別々の装置である必要はなく、不揮発性記憶装置と、アクセス装置とが一体となって(1つの装置として)、不揮発性記憶システムを構成するものであってもよい。
(6)前述の実施形態では、ページキャッシュ登録解除を指示するコマンドにページキャッシュ番号の情報を含めるものとしたが、登録解除の対象となるエントリが明確になるのであれば、必ずしもページキャッシュ番号である必要はない。例えば、複数のキャッシュ対象の論理アドレスを指定してもよい。
 さらに、ページキャッシュ管理テーブルのどのエントリを登録解除するかを不揮発性記憶装置1に委ねる手段を、不揮発性記憶装置1に設けていてもよい。この場合、アクセス装置2は、登録解除が必要なエントリの数を通知してもよい。
 本発明にかかる不揮発性記憶システムは、不揮発性メモリ上に設けられたキャッシュの対象領域を変更する処理を効率的に行うことができるため、コンテンツデータ記録のための準備時間を短縮するものである。これは、半導体メモリカードはいうまでもなく、半導体メモリカード等の不揮発性記憶装置を使用した動画や音楽、静止画などのデジタルコンテンツを取り扱うアクセス装置であるPCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等のアクセス装置に最適である。
 1000 不揮発性記憶システム
 1   不揮発性記憶装置
 2   アクセス装置
 11  メモリコントローラ
 12   不揮発性メモリ
 21、101 CPU
 22、102 RAM
 23、103 ROM
 24  不揮発性記憶装置インタフェース
 105 不揮発性メモリインタフェース
 106 アドレス変換制御部
 107 ページキャッシュ制御部
 108 ページキャッシュ登録部
 109 ページキャッシュ解放部
 110 ページキャッシュ読み書き部
 111 ページキャッシュ情報出力部
 121 アドレス管理情報
 122 アドレス変換情報
 123 フリーブロック情報
 124 ページキャッシュ情報
 201 アプリケーション制御部
 202 ファイルシステム制御部
 203 不揮発性記憶装置アクセス部
 204 ページキャッシュ情報設定部
 205 ページキャッシュ情報取得部

Claims (13)

  1.  アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、
     キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する不揮発性メモリと、
     前記不揮発性メモリへのデータ書き込み及びデータ読み出しを制御するメモリコントローラと、
    を備え、
     前記メモリコントローラは、
     外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した前記論理アドレスをキャッシュ対象として登録するキャッシュ登録部と、
     キャッシュ対象として登録された前記論理アドレスへの書き込みデータを前記不揮発性メモリの前記キャッシュ用ブロックへ記録するキャッシュ書き込み部と、
     キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、前記同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放するキャッシュ解放部と、
    を備える、
     不揮発性記憶装置。
  2.  アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、
     キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する不揮発性メモリと、
     前記不揮発性メモリへのデータ書き込み及びデータ読み出しを制御するメモリコントローラと、
    を備え、
     前記メモリコントローラは、
     外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した前記論理アドレスをキャッシュ対象として登録するキャッシュ登録部と、
     キャッシュ対象として登録された前記論理アドレスへの書き込みデータを前記不揮発性メモリの前記キャッシュ用ブロックへ記録するキャッシュ書き込み部と、
     キャッシュ対象として登録された前記論理アドレスに関する情報をページキャッシュ管理テーブルとして管理し、前記ページキャッシュ管理テーブルによりキャッシュ対象として管理されている論理アドレスA1が巻き込み退避処理のコピー元として、巻き込み退避処理により、前記データ用ブロックにコピーされた場合、前記論理アドレスA1のデータ一致フラグを「ON」に設定し、前記ページキャッシュ管理テーブルに反映させるページキャッシュ制御部と、
     外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、前記データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを、優先的にキャッシュ対象から解放するキャッシュ解放部と、
    を備える、
     不揮発性記憶装置。
  3.  前記キャッシュ解放部は、外部からキャッシュの解放を受付けたタイミングとは非同期の別のタイミングで、前記論理アドレスをキャッシュ対象から解放する処理であるキャッシュ解放処理を実行する、
     請求項1または2に記載の不揮発性記憶装置。
  4.  前記キャッシュ解放部は、外部から受付けたキャッシュの解放の指示を受け付けた場合、前記キャッシュの解放の指示を受け付けた時点より以降において実行される前記メモリコントローラの初期化処理の一部として、前記キャッシュ解放処理を実行する、
     請求項3に記載の不揮発性記憶装置。
  5.  前記キャッシュ解放部は、外部から受付けたキャッシュの解放の指示による前記キャッシュ解放処理を、外部からのコマンド待ち中に開始する、
     請求項3に記載の不揮発性記憶装置。
  6.  キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部をさらに備える、
     請求項1または2に記載の不揮発性記憶装置。
  7.  前記キャッシュ情報出力部は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を出力する、
     請求項6に記載の不揮発性記憶装置。
  8.  前記キャッシュ情報出力部は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、前記論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとを比較し、比較結果を出力する、
     請求項6に記載の不揮発性記憶装置。
  9.  キャッシュ用ブロックとデータ用ブロックとを含む不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置あって、
     不揮発性記憶装置に対してキャッシュ対象となるデータの論理アドレスを設定するキャッシュ設定部と、
     不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を前記不揮発性記憶装置から取得するキャッシュ情報取得部と、
    を備えるアクセス装置。
  10.  前記キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを解放する際に、前記キャッシュ情報取得部が取得した情報を参照し、所定時間内に一括して解放が可能な論理アドレスを優先的に解放することを前記不揮発性記憶装置に指示する、
     請求項9に記載のアクセス装置。
  11.  前記キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを登録する際に、キャッシュ対象の論理アドレスが近接するように予め前記不揮発性記憶装置のデータの並べ替えを実施しておくことを前記不揮発性記憶装置に指示する、
     請求項9に記載のアクセス装置。
  12.  前記キャッシュ設定部は、不揮発性記憶装置が管理するページキャッシュ管理テーブルにおいて、前記キャッシュ用ブロックと、前記データ用ブロックとの両方に、同一データがあることを示すデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に解放することを前記不揮発性記憶装置に指示する、
     請求項9に記載のアクセス装置。
  13.  請求項1から8のいずれかに記載の不揮発性記憶装置と、
     請求項9から12のいずれかに記載のアクセス装置と、
    を備える不揮発性記憶システム。
PCT/JP2010/005017 2009-08-21 2010-08-10 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム WO2011021367A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011527572A JP5209793B2 (ja) 2009-08-21 2010-08-10 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
US13/130,360 US8656110B2 (en) 2009-08-21 2010-08-10 Non-volatile storage device, access device, and non-volatile storage system for releasing a cache object in accordance with a data matching flag

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009191994 2009-08-21
JP2009-191994 2009-08-21

Publications (1)

Publication Number Publication Date
WO2011021367A1 true WO2011021367A1 (ja) 2011-02-24

Family

ID=43606827

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/005017 WO2011021367A1 (ja) 2009-08-21 2010-08-10 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Country Status (3)

Country Link
US (1) US8656110B2 (ja)
JP (1) JP5209793B2 (ja)
WO (1) WO2011021367A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170065732A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR20170065731A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
JP2022031959A (ja) * 2017-06-22 2022-02-22 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム
US11614866B2 (en) 2015-12-01 2023-03-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089238B2 (en) * 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
CN111124255B (zh) * 2018-10-31 2023-09-08 伊姆西Ip控股有限责任公司 数据存储方法、电子设备和计算机程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268776A (ja) * 2005-03-25 2006-10-05 Toshiba Corp メモリカード
JP2007241576A (ja) * 2006-03-07 2007-09-20 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびそのデータ書込み方法
US20070283081A1 (en) * 2006-06-06 2007-12-06 Msystem Ltd. Cache control in a non-volatile memory device
WO2009084724A1 (en) * 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
WO2009107393A1 (ja) * 2008-02-29 2009-09-03 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、及び情報記録システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
US6691205B2 (en) * 2001-03-05 2004-02-10 M-Systems Flash Disk Pioneers Ltd. Method for using RAM buffers with simultaneous accesses in flash based storage systems
JP3766396B2 (ja) 2003-04-21 2006-04-12 株式会社東芝 メモリ制御装置およびメモリ制御方法
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268776A (ja) * 2005-03-25 2006-10-05 Toshiba Corp メモリカード
JP2007241576A (ja) * 2006-03-07 2007-09-20 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびそのデータ書込み方法
US20070283081A1 (en) * 2006-06-06 2007-12-06 Msystem Ltd. Cache control in a non-volatile memory device
WO2009084724A1 (en) * 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
WO2009107393A1 (ja) * 2008-02-29 2009-09-03 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、及び情報記録システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614866B2 (en) 2015-12-01 2023-03-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20170065732A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR20170065731A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR102513903B1 (ko) 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR102513913B1 (ko) 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
JP2022031959A (ja) * 2017-06-22 2022-02-22 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム

Also Published As

Publication number Publication date
US20110225370A1 (en) 2011-09-15
JP5209793B2 (ja) 2013-06-12
JPWO2011021367A1 (ja) 2013-01-17
US8656110B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
JP5400875B2 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
JP5209793B2 (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
US8489850B2 (en) Memory apparatus and memory control method
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
JP5362010B2 (ja) メモリ装置、ホスト装置およびメモリシステム
US20080046660A1 (en) Information recording apparatus and control method thereof
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP2008027383A (ja) 情報記録装置及びその制御方法
US9778857B2 (en) Recording device, access device, recording system, and recording method
JP4874844B2 (ja) 情報記録装置及びその制御方法
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP2009098822A (ja) データ処理装置及び共有メモリのアクセス方法
JP2008250718A (ja) 不揮発性キャッシュメモリを用いた記憶装置とその制御方法
JP2011209915A (ja) データ記録装置、及びデータ記録方法
JP4130808B2 (ja) フォーマット方法
JP5523128B2 (ja) 記録装置及びその制御方法
JP2005243000A (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP2007279873A (ja) データ記録装置
JP2011133947A (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP5455689B2 (ja) 記録装置及び方法
JP2009020776A (ja) スワップアウト制御装置
JP2008021290A (ja) ストレージ装置、ストレージコントローラ、及び情報処理装置
JP2005085081A (ja) 不揮発性半導体メモリを記録媒体とするデータ記録装置

Legal Events

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

Ref document number: 10809714

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011527572

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13130360

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

Country of ref document: EP

Kind code of ref document: A1