JP5209793B2 - 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム - Google Patents
不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム Download PDFInfo
- Publication number
- JP5209793B2 JP5209793B2 JP2011527572A JP2011527572A JP5209793B2 JP 5209793 B2 JP5209793 B2 JP 5209793B2 JP 2011527572 A JP2011527572 A JP 2011527572A JP 2011527572 A JP2011527572 A JP 2011527572A JP 5209793 B2 JP5209793 B2 JP 5209793B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- page cache
- page
- block
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 claims description 176
- 230000008569 process Effects 0.000 claims description 155
- 230000015654 memory Effects 0.000 claims description 127
- 238000012545 processing Methods 0.000 claims description 83
- 238000002360 preparation method Methods 0.000 abstract description 7
- 239000004065 semiconductor Substances 0.000 description 24
- 238000006243 chemical reaction Methods 0.000 description 17
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000004804 winding Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、不揮発性メモリを制御するメモリコントローラと、不揮発性メモリ及びメモリコントローラを備えた半導体メモリカード等の不揮発性記憶装置と、不揮発性記憶装置にアクセスするアクセス装置、及びこれらを含む不揮発性記憶システムに関する。
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して高価格なものではある。しかし、半導体メモリカードは、小型・軽量・耐震性・取り扱いの簡便さ等のメリットが大きいので、デジタルスチルカメラや携帯電話など、ポータブル機器の記録媒体としてその需要が高まっており、最近では、民生用動画記録機器や放送局向けのプロ用動画記録機器の記録媒体としても利用されるようになってきている。さらに、最近では、ポータブル機器だけではなくデジタルテレビやDVDレコーダ等の据え置き機器にも半導体メモリカード用のスロットが標準搭載されており、半導体メモリカードの需要はさらに高まっている。
半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ(主にNAND型)を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ(主にNAND型)を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
ところで、アクセス装置は、半導体メモリカードの記憶領域の管理をFATファイルシステムなどのファイルシステムによって行う。ファイルシステムを用いることにより、半導体メモリカードには、AVコンテンツなどのファイルデータ本体に加え、ファイルシステムの管理情報であるディレクトリエントリやFATが格納される。
アクセス装置がハイビジョン動画のような大容量のコンテンツファイルを半導体メモリカードに対してリアルタイムに格納する場合、電源断などの不測の事態が発生したときにはできるだけ直近のデータまでを有効にすることが望まれる。通常、書き込まれたファイルデータは、ディレクトリエントリ及びFATが適切に更新された後に、ファイルシステムにおける有効なデータとして認識される。従って、アクセス装置が、一定量のファイルデータを半導体メモリカードに書き込んだ後、ディレクトリエントリおよびFATを更新するという手順を繰り返しながら、アクセス装置が半導体メモリカードにデータを記録するのが一般的である。
アクセス装置がハイビジョン動画のような大容量のコンテンツファイルを半導体メモリカードに対してリアルタイムに格納する場合、電源断などの不測の事態が発生したときにはできるだけ直近のデータまでを有効にすることが望まれる。通常、書き込まれたファイルデータは、ディレクトリエントリ及びFATが適切に更新された後に、ファイルシステムにおける有効なデータとして認識される。従って、アクセス装置が、一定量のファイルデータを半導体メモリカードに書き込んだ後、ディレクトリエントリおよびFATを更新するという手順を繰り返しながら、アクセス装置が半導体メモリカードにデータを記録するのが一般的である。
アクセス装置が、映像のビットレートが高いハイビジョン動画を半導体メモリカードに記録する場合、例えば、数秒に1回の割合でディレクトリエントリとFATを更新する。この場合、ファイルデータの記録サイズは、数MB(メガバイト)程度の比較的大きなサイズとなるが、ディレクトリエントリやFATは、情報が更新される部分のみを半導体メモリカードに書き込むので、その記録サイズは、512バイトから32KB(キロバイト)程度の比較的小さなサイズとなる。
フラッシュメモリは、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさは、現在のところ数百KBから数MB程度であるが年々増大する傾向にある。フラッシュメモリにおいて、小サイズの書き込みを実施する場合、同一物理ブロック内に存在する有効なデータを他の物理ブロックにコピーする「巻き込み退避処理」が発生する。そのため、フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、ディレクトリエントリやFATなどのファイルシステムの管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
フラッシュメモリは、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさは、現在のところ数百KBから数MB程度であるが年々増大する傾向にある。フラッシュメモリにおいて、小サイズの書き込みを実施する場合、同一物理ブロック内に存在する有効なデータを他の物理ブロックにコピーする「巻き込み退避処理」が発生する。そのため、フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、ディレクトリエントリやFATなどのファイルシステムの管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
従来、このような問題を解決する方法として、半導体メモリカードにページキャッシュを搭載する方法が提案されている(例えば、特許文献1参照)。
この方法(従来技術)では、特定論理アドレスに対する小サイズのデータ(管理情報)の書き込み処理を、データを一時的に保持するための物理ブロック(ページキャッシュ用物理ブロック(キャッシュブロック))に対して行い管理することで、無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化することができる。
この方法(従来技術)では、特定論理アドレスに対する小サイズのデータ(管理情報)の書き込み処理を、データを一時的に保持するための物理ブロック(ページキャッシュ用物理ブロック(キャッシュブロック))に対して行い管理することで、無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化することができる。
しかしながら、従来技術には以下の課題がある。
アクセス装置が複数のコンテンツデータ(例えば、ハイビジョン動画のデータなど)を半導体メモリカード等の不揮発性記憶装置に記録する場合、各コンテンツデータは、個別のファイルとして記録されるのが一般的である。このように記録するのは、記録されたコンテンツデータの再生や編集などの管理が容易となるためである。さらに、各コンテンツデータに付随する様々な情報(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)も同様の理由により、各コンテンツデータに関連付けられた別の管理情報ファイルとして、不揮発性記憶装置に記録される場合が多い。
これらのコンテンツデータのディレクトリエントリやFAT、あるいは、管理情報ファイルのディレクトリエントリやFATは、ページキャッシュを利用することで、巻き込み退避処理の発生を抑えることができ、その結果、高速なデータ書き込む処理を実現することができる。
アクセス装置が複数のコンテンツデータ(例えば、ハイビジョン動画のデータなど)を半導体メモリカード等の不揮発性記憶装置に記録する場合、各コンテンツデータは、個別のファイルとして記録されるのが一般的である。このように記録するのは、記録されたコンテンツデータの再生や編集などの管理が容易となるためである。さらに、各コンテンツデータに付随する様々な情報(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)も同様の理由により、各コンテンツデータに関連付けられた別の管理情報ファイルとして、不揮発性記憶装置に記録される場合が多い。
これらのコンテンツデータのディレクトリエントリやFAT、あるいは、管理情報ファイルのディレクトリエントリやFATは、ページキャッシュを利用することで、巻き込み退避処理の発生を抑えることができ、その結果、高速なデータ書き込む処理を実現することができる。
しかし、例えば、アクセス装置が不揮発性記憶装置に対して、複数のコンテンツデータを連続的にリアルタイムに記録する場合には、記録する各コンテンツデータを切り替えるときにディレクトリエントリやFATの論理アドレスが変化するので、ページキャッシュの対象領域として設定されている論理アドレスを変更する必要がある。
ページキャッシュとして登録できる論理アドレスには限りがあるので、上記のように複数のコンテンツデータを連続的にリアルタイムに記録する場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させなければならない場合が発生する。ページキャッシュのデータの移動処理について、図16を用いて説明する。図16は、ページキャッシュ対象となっている2つのデータである、「データX_1」(論理ブロック番号「X」、論理ページ番号「1」のデータ)、および「データY_3」(論理ブロック番号「Y」、論理ページ番号「3」のデータ)、をページキャッシュの対象から除外し、データの移動を行う場合について、説明するための図である。具体的には、図16(a)は、ページキャッシュ対象データ「データX_1」を移動する場合を示しており、図16(b)は、ページキャッシュ対象データ「データY_3」を移動する場合を示している。
ページキャッシュとして登録できる論理アドレスには限りがあるので、上記のように複数のコンテンツデータを連続的にリアルタイムに記録する場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させなければならない場合が発生する。ページキャッシュのデータの移動処理について、図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)」の処理)を行う。
(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)」の処理)を行う。
また、図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ミリ秒という比較的長い時間を要する。さらに、複数のページキャッシュの論理アドレスを変更する場合、その処理時間として、各ページキャッシュの処理の累積時間が必要となる。その結果、次のコンテンツデータの記録のための準備期間が長くなり、次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足する可能性が高くなる。次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足すると、アクセス装置が不揮発性記憶装置に対して記録しようとしているコンテンツ(例えば、ハイビジョン動画)の一部のデータが欠落するため望ましくない。このようなデータの欠落を防止するためにアクセス装置に大量のバッファメモリを搭載するとコスト高につながるため、アクセス装置に大量のバッファメモリを搭載することも望ましくない。
以上のように、ページキャッシュのデータの移動処理には、多くのコピー処理が発生するため、長い処理時間が必要となる。
使用するフラッシュメモリの品種や半導体メモリカードのアーキテクチャにも依存するが、巻き込み退避処理には、例えば、200ミリ秒〜300ミリ秒という比較的長い時間を要する。さらに、複数のページキャッシュの論理アドレスを変更する場合、その処理時間として、各ページキャッシュの処理の累積時間が必要となる。その結果、次のコンテンツデータの記録のための準備期間が長くなり、次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足する可能性が高くなる。次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足すると、アクセス装置が不揮発性記憶装置に対して記録しようとしているコンテンツ(例えば、ハイビジョン動画)の一部のデータが欠落するため望ましくない。このようなデータの欠落を防止するためにアクセス装置に大量のバッファメモリを搭載するとコスト高につながるため、アクセス装置に大量のバッファメモリを搭載することも望ましくない。
本発明は、上記課題を鑑みてなされたものであり、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能な、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システムを提供することを目的とする。
第1の発明は、アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、備える。
不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
メモリコントローラは、キャッシュ登録部と、キャッシュ書き込み部と、キャッシュ解放部と、を備え、不揮発性メモリへのデータ書き込み及びデータ読み出しを制御する。
キャッシュ登録部は、外部(例えば、アクセス装置)からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。キャッシュ解放部は、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放する。
不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
メモリコントローラは、キャッシュ登録部と、キャッシュ書き込み部と、キャッシュ解放部と、を備え、不揮発性メモリへのデータ書き込み及びデータ読み出しを制御する。
キャッシュ登録部は、外部(例えば、アクセス装置)からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。キャッシュ解放部は、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放する。
この不揮発性記憶装置では、キャッシュ解放部により、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスがキャッシュ対象から解放される。つまり、この不揮発性記憶装置では、同じ論理ブロックの複数のキャッシュ対象となっている論理アドレスについて、フリーブロックへのデータコピーを一括して行えるため、各々の論理アドレスについて、個別に、キャッシュ対象から解放する場合に比べて、処理時間を大幅に短縮することができる。その結果、この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
また、この不揮発性記憶装置では、キャッシュ解放部は、キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けたのに同期して(連動して)、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放することができるので、素早く、キャッシュ解放処理を実現することができる。
第2の発明は、アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、を備える。
不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
第2の発明は、アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、を備える。
不揮発性メモリは、キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する。
メモリコントローラは、キャッシュ登録部と、キャッシュ書き込み部と、ページキャッシュ制御部と、キャッシュ解放部と、を備え、不揮発性メモリへのデータ書き込み及びデータ読み出しを制御する。
キャッシュ登録部は、外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。ページキャッシュ制御部は、キャッシュ対象として登録された論理アドレスに関する情報をページキャッシュ管理テーブルとして管理し、ページキャッシュ管理テーブルによりキャッシュ対象として管理されている論理アドレスA1が巻き込み退避処理のコピー元として、巻き込み退避処理により、データ用ブロックにコピーされた場合、論理アドレスA1のデータ一致フラグを「ON」に設定し、ページキャッシュ管理テーブルに反映させる。キャッシュ解放部は、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを、優先的にキャッシュ対象から解放する。
キャッシュ登録部は、外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した論理アドレスをキャッシュ対象として登録する。キャッシュ書き込み部は、キャッシュ対象として登録された論理アドレスへの書き込みデータを不揮発性メモリのキャッシュ用ブロックへ記録する。ページキャッシュ制御部は、キャッシュ対象として登録された論理アドレスに関する情報をページキャッシュ管理テーブルとして管理し、ページキャッシュ管理テーブルによりキャッシュ対象として管理されている論理アドレスA1が巻き込み退避処理のコピー元として、巻き込み退避処理により、データ用ブロックにコピーされた場合、論理アドレスA1のデータ一致フラグを「ON」に設定し、ページキャッシュ管理テーブルに反映させる。キャッシュ解放部は、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを、優先的にキャッシュ対象から解放する。
この不揮発性記憶装置では、キャッシュ解放部により、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスが、優先的にキャッシュ対象から解放される。つまり、この不揮発性記憶装置において、ページキャッシュ管理テーブルのデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスは、データ用ブロックにも同一データが存在しているので、ページキャッシュ管理テーブル中に、データ一致フラグが「ON」であるキャッシュ対象論理アドレスが存在すれば、当該キャッシュ対象論理アドレスおいて、使用フラグを「ON」から「OFF」に変更するだけで、キャッシュ解放処理を実行することができる。したがって、この不揮発性記憶装置では、巻き込み退避処理やコピー処理が発生しないため、短い処理時間で、キャッシュ解放処理を実行することができる。その結果、この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
「優先的にキャッシュ対象から解放する」とは、条件を満たしたものから順番にキャッシュ対象から解放するという意味を含む概念である。
第3の発明は、第1または第2の発明であって、キャッシュ解放部は、外部からキャッシュの解放を受付けたタイミングとは非同期の別のタイミングで、論理アドレスをキャッシュ対象から解放する処理であるキャッシュ解放処理を実行する。
これにより、この不揮発性記憶装置では、例えば、空き時間(処理が頻繁に実行されていない期間)において、キャッシュ解放処理を実行することができる。
第4の発明は、第3の発明であって、キャッシュ解放部は、外部から受付けたキャッシュの解放の指示を受け付けた場合、キャッシュの解放の指示を受け付けた時点より以降において実行されるメモリコントローラの初期化処理の一部として、キャッシュ解放処理を実行する。
第3の発明は、第1または第2の発明であって、キャッシュ解放部は、外部からキャッシュの解放を受付けたタイミングとは非同期の別のタイミングで、論理アドレスをキャッシュ対象から解放する処理であるキャッシュ解放処理を実行する。
これにより、この不揮発性記憶装置では、例えば、空き時間(処理が頻繁に実行されていない期間)において、キャッシュ解放処理を実行することができる。
第4の発明は、第3の発明であって、キャッシュ解放部は、外部から受付けたキャッシュの解放の指示を受け付けた場合、キャッシュの解放の指示を受け付けた時点より以降において実行されるメモリコントローラの初期化処理の一部として、キャッシュ解放処理を実行する。
第5の発明は、第3の発明であって、キャッシュ解放部は、外部から受付けたキャッシュの解放の指示によるキャッシュ解放処理を、外部からのコマンド待ち中に開始する。
第6の発明は、第1または第2の発明であって、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部をさらに備える。
これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるため、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
第7の発明は、第6の発明であって、キャッシュ情報出力部は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を出力する。
第6の発明は、第1または第2の発明であって、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部をさらに備える。
これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるため、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
第7の発明は、第6の発明であって、キャッシュ情報出力部は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を出力する。
これにより、この不揮発性記憶装置と接続されるアクセス装置は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を取得することができるので、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
第8の発明は、第6の発明であって、キャッシュ情報出力部は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとを比較し、比較結果を出力する。
これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとの一致/不一致を知ることができるので、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
第8の発明は、第6の発明であって、キャッシュ情報出力部は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとを比較し、比較結果を出力する。
これにより、この不揮発性記憶装置と接続されるアクセス装置は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとの一致/不一致を知ることができるので、アクセス装置は、キャッシュ解放処理の対象とする論理アドレスを指定しやすくなる。
第9の発明は、キャッシュ用ブロックとデータ用ブロックとを含む不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置あって、キャッシュ設定部と、キャッシュ情報取得部と、を備える。
キャッシュ設定部は、不揮発性記憶装置に対してキャッシュ対象となるデータの論理アドレスを設定する。キャッシュ情報取得部は、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を不揮発性記憶装置から取得する。
このアクセス装置では、キャッシュ情報取得部により、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるので、的確に、キャッシュ解放処理の対象とする論理アドレスを指定することができる。
第10の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを解放する際に、キャッシュ情報取得部が取得した情報を参照し、所定時間内に一括して解放が可能な論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
キャッシュ設定部は、不揮発性記憶装置に対してキャッシュ対象となるデータの論理アドレスを設定する。キャッシュ情報取得部は、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を不揮発性記憶装置から取得する。
このアクセス装置では、キャッシュ情報取得部により、不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を取得することができるので、的確に、キャッシュ解放処理の対象とする論理アドレスを指定することができる。
第10の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを解放する際に、キャッシュ情報取得部が取得した情報を参照し、所定時間内に一括して解放が可能な論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
これにより、このアクセス装置では、所定時間内に一括して解放が可能な論理アドレスを優先的にキャッシュ解放処理の対象とすることができる。
第11の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを登録する際に、キャッシュ対象の論理アドレスが近接するように予め不揮発性記憶装置のデータの並べ替えを実施しておくことを不揮発性記憶装置に指示する。
なお、「論理アドレスが近接するように」とは、例えば、論理アドレスが、同一セクタ内、同一ページキャッシュ内、あるいは、同一論理ブロック内となるように、という意味を含む概念である。
第12の発明は、第9の発明であって、キャッシュ設定部は、不揮発性記憶装置が管理するページキャッシュ管理テーブルにおいて、キャッシュ用ブロックと、データ用ブロックとの両方に、同一データがあることを示すデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
第11の発明は、第9の発明であって、キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを登録する際に、キャッシュ対象の論理アドレスが近接するように予め不揮発性記憶装置のデータの並べ替えを実施しておくことを不揮発性記憶装置に指示する。
なお、「論理アドレスが近接するように」とは、例えば、論理アドレスが、同一セクタ内、同一ページキャッシュ内、あるいは、同一論理ブロック内となるように、という意味を含む概念である。
第12の発明は、第9の発明であって、キャッシュ設定部は、不揮発性記憶装置が管理するページキャッシュ管理テーブルにおいて、キャッシュ用ブロックと、データ用ブロックとの両方に、同一データがあることを示すデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に解放することを不揮発性記憶装置に指示する。
これにより、このアクセス装置では、データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に指定して、キャッシュ解放処理を実行することができる。
第13の発明は、第1から第8のいずれかの発明である不揮発性記憶装置と、第9から第12のいずれかの発明であるアクセス装置と、を備える不揮発性記憶システムである。
第13の発明は、第1から第8のいずれかの発明である不揮発性記憶装置と、第9から第12のいずれかの発明であるアクセス装置と、を備える不揮発性記憶システムである。
本発明によれば、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことができ、コンテンツ記録のための準備時間の短縮が可能となる。
以下、本発明の実施形態について、図面を参照しながら説明する。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1は、第1実施形態における不揮発性記憶システム1000の概略構成を示している。
図1に示すように、本実施形態の不揮発性記憶システム1000は、不揮発性記憶装置1と、アクセス装置2と、を備え、不揮発性記憶装置1とアクセス装置2とは、バスB1により接続されており、バスB1を介して、双方向に通信することができる。なお、不揮発性記憶装置1は、アクセス装置2に装着される構成であってもよい。
不揮発性記憶装置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と、を含む。
アクセス装置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と、を含む。
アプリケーション制御部201は、データの生成や電源の制御などアクセス装置2全体の制御を行う。
ファイルシステム制御部202は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。ファイルシステム制御部202は、ページキャッシュ情報設定部204と、ページキャッシュ情報取得部205と、を含む。
ページキャッシュ情報取得部205は、不揮発性記憶装置1からページキャッシュに関する情報を取得し、取得した情報をページキャッシュ情報設定部204に通知する。ページキャッシュ情報取得部205は、本発明の特徴的部分の1つである。
ページキャッシュ情報設定部204は、ページキャッシュに対するアクセスを制御する制御部である。ページキャッシュ情報設定部204を設置する点については、従来技術と同様であるが、本発明におけるページキャッシュ情報設定部204は、さらにページキャッシュ情報取得部205から通知されたページキャッシュに関する情報を取得することで、より効率的な制御を行う。この点は、本発明における、従来技術とは異なる特徴的部分である。また、ページキャッシュ情報設定部204は、不揮発性メモリ12のページキャッシュ情報124に設定すべき情報を不揮発性記憶装置1に通知する。また、ページキャッシュ情報設定部204は、不揮発性記憶装置1から取得したページキャッシュに関する情報に基づいてページキャッシュ情報124に設定すべき情報を生成し、不揮発性記憶装置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型フラッシュメモリで構成される。
(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に対するコマンドやデータの送受信を制御する。
アクセス装置インタフェース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上に構築される論理アドレス/物理アドレス変換テーブルにより、論理アドレスと物理アドレスとの変換処理を行う。
なお、本実施形態では、アドレス変換制御部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ごとに、異なる値としてもよい。
ページキャッシュ登録部108は、アクセス装置2のページキャッシュ情報設定部204からの要求により指定された論理アドレスをページキャッシュの対象として登録する処理を行う。ページキャッシュ登録部108で登録可能な論理アドレスの個数は複数とし、その値(登録可能な論理アドレス数)は全ての不揮発性記憶装置1で共通の値としてもよいし、アクセス装置2に接続される不揮発性記憶装置1ごとに、異なる値としてもよい。
ページキャッシュ解放部109は、ページキャッシュ登録部108によって登録された論理アドレスのうち、アクセス装置2のページキャッシュ情報設定部204の要求により登録解除を指定された論理アドレスをページキャッシュの対象から解除(解放)する処理を行う。
ページキャッシュ解放部109は、以下の2つの特徴を有している。
(1)ページキャッシュ解放部109は、複数の登録解除対象の論理アドレスを受信し、各々の登録解除処理を一括して行うことができる。
(2)また、ページキャッシュ解放部109は、登録解除処理の開始タイミングに関しては同期モード及び非同期モードの2つを選択可能である。同期モードは、アクセス装置2から要求があった時点で直ちに登録解除処理を開始するモードである。一方、非同期モードは、アクセス装置2から要求があった時点では登録解除処理の受付のみを行い、実際の登録解除処理は別のタイミング(例えば、不揮発性記憶装置1の初期化処理中や、アクセス装置2からのコマンド待ちで一定時間が経過した時や、別コマンドの処理実行中など)で行うモードである。
ページキャッシュ解放部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)ページキャッシュのサイズ情報、
などがある。
ページキャッシュ情報出力部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から論理アドレスを用いてアクセスできない領域)に格納される。
次に、不揮発性メモリ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を組み合わせることにより、小サイズのデータの書き込み処理をページキャッシュ上で実行し、書き込み速度を高速化することができる。
アドレス変換情報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の物理構成≫
続いて、図3を用いて、本発明の第1実施形態における不揮発性メモリ12の物理構成について説明する。
不揮発性メモリ12としては、例えば、NAND型フラッシュメモリが用いられる。不揮発性メモリ12は、複数の物理ブロックから構成される。
物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データ書き込みを行う単位である。更に、ページは、データ部と冗長部とを含む。
データ部は、論理アドレス空間としてアクセス装置2からアクセス可能な領域であり、実際にファイルデータ等が格納される領域である。
冗長部は、不揮発性メモリ12の管理情報や誤り訂正符号であるECC等が格納される領域であり、アクセス装置2からアクセスできない領域である。データ部の大きさは、例えば4KB、冗長部の大きさは128バイト程度となる。
物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データ書き込みを行う単位である。更に、ページは、データ部と冗長部とを含む。
データ部は、論理アドレス空間としてアクセス装置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:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システム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からの読み出しが省略でき、処理が高速化されるためである。
続いて、不揮発性記憶装置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つのページキャッシュに関する情報の登録が可能である。各ページキャッシュ番号に対応付けられたページキャッシュに関する情報を「エントリ」と呼ぶものとする。
そして、ページキャッシュ制御部107は、作成したページキャッシュ管理テーブルの解放予約フラグ(後述)を参照して、解放予約があるか否かを判定し(S103)、解放予約がある場合のみ後述するページキャッシュ解放処理を実施して(S104)、処理を終了する。
≪ページキャッシュ管理テーブル≫
図5に、ページキャッシュ管理テーブルの構成の一例を示す。
図5の例において、ページキャッシュ管理テーブルには、ページキャッシュ番号「0」から「7」までの8つのページキャッシュに関する情報の登録が可能である。各ページキャッシュ番号に対応付けられたページキャッシュに関する情報を「エントリ」と呼ぶものとする。
図5に示すように、各エントリには、使用フラグ、論理ブロック番号、論理ページ番号、データ一致フラグ、解放予約フラグ、更新カウンタといった情報を格納可能である。
使用フラグは、当該エントリが使用中(ON)であるのか空き(OFF)であるのかという状態を表す。使用フラグが使用中(ON)である場合、当該エントリの論理ブロック番号以降のデータが有効値として扱われる。一方、使用フラグが空き(OFF)である場合、当該エントリは、無効値(N/A)として扱われる。つまり、使用フラグが空き(OFF)である場合、当該エントリは、ページキャッシュとして使用されていないことになる。
論理ブロック番号および論理ページ番号は、ページキャッシュに登録された論理アドレスを表す。本実施形態では、論理アドレスは、ページ単位で登録するものとするが、これに限定されるものではなく、例えば、セクタ単位(512B単位)で登録するものであってもよいし、複数ページ単位で登録するものであってもよい。
使用フラグは、当該エントリが使用中(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)か、を表す。例えば、従来の論理アドレス/物理アドレス変換により、論理ブロック番号「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のコマンド待ち処理手順を示すフローチャートである。
更新カウンタは、該エントリが登録された後、そのエントリに登録された論理アドレスに対してページキャッシュとしての書き込みが実施された回数を表す。
さらに、ページキャッシュ管理テーブルには、ページキャッシュに登録された論理アドレスのデータをページキャッシュとして書き込む際の書き込み先の物理アドレスに関する情報(物理ブロック番号(図5の場合「0x0018」)、次書き込みページ番号(図5の場合「0x40」)など)を格納している。ここで示されるページキャッシュ用の書き込み物理ブロックのことを、「キャッシュブロック」と呼ぶものとする。
(1.2.1.2:コマンド待ち処理)
図6は、不揮発性記憶装置1のコマンド待ち処理手順を示すフローチャートである。
不揮発性記憶装置1は、上述した初期化処理を実施した後やアクセス装置2から受信したコマンドに対する処理を実施した後に、アクセス装置2からのコマンドの受信待ち状態となる。
(S201〜S206):
まず、メモリコントローラ11は、内蔵するタイマー(図示せず)の動作を開始させる(S201)。そして、アクセス装置2からのコマンドの受信を監視し(S202)、コマンドを受信した場合には前記タイマーを停止し、タイマーをリセットして(例えば、タイマーカウンタ値をクリアして)(S203)、受信したコマンドの処理を実施する(S204)。
「受信したコマンドの処理」とは、例えば、データ書き込み処理、データ読み出し処理、ページキャッシュ登録処理、ページキャッシュ解放処理、ページキャッシュ情報出力処理である。
(S201〜S206):
まず、メモリコントローラ11は、内蔵するタイマー(図示せず)の動作を開始させる(S201)。そして、アクセス装置2からのコマンドの受信を監視し(S202)、コマンドを受信した場合には前記タイマーを停止し、タイマーをリセットして(例えば、タイマーカウンタ値をクリアして)(S203)、受信したコマンドの処理を実施する(S204)。
「受信したコマンドの処理」とは、例えば、データ書き込み処理、データ読み出し処理、ページキャッシュ登録処理、ページキャッシュ解放処理、ページキャッシュ情報出力処理である。
コマンド受信待ち中は、タイマーによって所定時間Tを経過したかを監視する(S205)。所定時間Tを経過すると、タイマーを停止し、タイマーをリセットする(タイマーカウンタ値をクリアする)(S206)。
(S207〜S209):
その後、RAM102に作成されたページキャッシュ管理テーブルの使用フラグ及び解放予約フラグ(後述)を参照して、解放予約があるか否かを判定する(S207)。
解放予約がある場合のみ後述するページキャッシュ解放処理を繰り返し実施する(S208)。解放予約がない場合、メモリコントローラ11は、消費電力を抑えるためのスタンバイモードに移行する(S209)。スタンバイモードでは、メモリコントローラ11の一部の電力供給を停止にしたり、不揮発性メモリ12への電力供給を停止にしたりするが、アクセス装置2からのコマンド受信を行う部分の電力供給は停止しない。スタンバイモードに移行した後、コマンドを受信した場合は、S204の処理に移行する。
(S207〜S209):
その後、RAM102に作成されたページキャッシュ管理テーブルの使用フラグ及び解放予約フラグ(後述)を参照して、解放予約があるか否かを判定する(S207)。
解放予約がある場合のみ後述するページキャッシュ解放処理を繰り返し実施する(S208)。解放予約がない場合、メモリコントローラ11は、消費電力を抑えるためのスタンバイモードに移行する(S209)。スタンバイモードでは、メモリコントローラ11の一部の電力供給を停止にしたり、不揮発性メモリ12への電力供給を停止にしたりするが、アクセス装置2からのコマンド受信を行う部分の電力供給は停止しない。スタンバイモードに移行した後、コマンドを受信した場合は、S204の処理に移行する。
なお、S208のページキャッシュ解放処理中にアクセス装置2からのコマンドを受信した場合は、ページキャッシュ解放処理を中断し、コマンド受信処理(S204)を優先的に実施することが望ましい。つまり、後述するようにページキャッシュ解放処理には、不揮発性メモリ12内におけるデータのコピー処理が伴うため、その処理時間には、比較的長い時間を要し、アクセス装置2からのコマンドの応答性が悪くなるので、これを防止するため、上記の場合、ページキャッシュ解放処理を中断し、コマンド受信処理(S204)を優先的に実施することが望ましい。
さらに、メモリコントローラ11は、S208のページキャッシュ解放処理が中断されたか否かによって、所定時間Tの値を増減させてもよい。これにより、不揮発性記憶システム1000において、アクセス装置2からのコマンドが頻発する期間では、ページキャッシュ解放処理の実行を控えることができ、ページキャッシュ解放処理が連続して中断されるのを防止することができる。
さらに、メモリコントローラ11は、S208のページキャッシュ解放処理が中断されたか否かによって、所定時間Tの値を増減させてもよい。これにより、不揮発性記憶システム1000において、アクセス装置2からのコマンドが頻発する期間では、ページキャッシュ解放処理の実行を控えることができ、ページキャッシュ解放処理が連続して中断されるのを防止することができる。
(1.2.1.3:データ書き込み処理)
図7は、不揮発性記憶装置1のデータ書き込み処理手順を示すフローチャートである。
(S301、S302):
不揮発性記憶装置1がアクセス装置2からデータ書き込み処理を指示するコマンドを受信すると、ページキャッシュ制御部107は、ページキャッシュ管理テーブルを参照し、アクセス装置2が指定する書き込み先の論理アドレスがページキャッシュの対象領域としてページキャッシュ管理テーブルに登録されているか否かを判定する(S301)。
書き込み先の論理アドレスがページキャッシュ管理テーブルに登録されている場合、ページキャッシュ読み書き部110がアクセス装置2から受信した書き込みデータを、不揮発性メモリインタフェース105を介して不揮発性メモリ12のキャッシュブロックに書き込む(S302)。書き込み先の物理アドレスは、ページキャッシュ管理テーブル(物理ブロック番号、次書き込みページ)を参照することで判断する。
図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に示す。
キャッシュブロックへの最初の書き込み時には、図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(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)。
(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は、巻き込み退避処理におけるコピー元のデータのアドレス範囲が、ページキャッシュ管理テーブルの使用中エントリの論理アドレスを含むか否かを判定する。そして、ページキャッシュ管理テーブルの使用中エントリの論理アドレスを含む場合、当該論理アドレスのデータであって、ページキャッシュされているデータ(キャッシュブロックに格納されているデータ)を、コピー元のデータとして巻き込み退避処理を実行する。これにより、ページキャッシュのデータ(キャッシュブロックに格納されているデータ)と巻き込み退避処理における退避先(コピー先)のデータとが一致することになる。
但し、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」)が格納されている。
図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」)からコピーしている。
図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)。
再びデータ書き込み処理の説明に戻る。
(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)。
(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)。
図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)を実施して空きエントリを確保する。
図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)。
また、S502において、解放予約フラグが「ON」であるものを優先的に選択してもよい。これにより、アクセス装置2が明示的に登録解除を指示したエントリを登録解除できるため、アクセス装置2が意図していないエントリを解除することにより再度登録処理が発生するというリスクを軽減できる。
(S504、S505):
次に、確保した空きエントリにアクセス装置2から受信した論理アドレスを論理ブロック番号及び論理ページ番号に変換して設定する。また、確保した空きエントリに、初期値を設定する。具体的には、初期値として、データ一致フラグには「OFF」を、解放予約フラグには「OFF」を、更新カウンタには「0」を、それぞれ、設定する。そして、使用フラグを「ON」に設定し、空きエントリを使用中エントリに変更する(S504)。
続けて、ページキャッシュ登録コマンドと共に受信した書き込みデータを、S302の処理と同様の手順で、ページキャッシュ対象データとして、キャッシュブロックに書き込む(S505)。
(S506):
最後に、ページキャッシュ制御部107は、更新されたページキャッシュ管理テーブルの情報をページキャッシュ情報124に反映させるために、不揮発性メモリ12に書き込みを行う(S506)。
なお、本実施形態では、コマンドと共に当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものとしたが、コマンドとは別に、当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものであってもよい。その場合、コマンドによるページキャッシュ登録処理の前後で、当該コマンドで指定する論理アドレスのデータが変化しないことが望ましい。
(S506):
最後に、ページキャッシュ制御部107は、更新されたページキャッシュ管理テーブルの情報をページキャッシュ情報124に反映させるために、不揮発性メモリ12に書き込みを行う(S506)。
なお、本実施形態では、コマンドと共に当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものとしたが、コマンドとは別に、当該コマンドで指定する論理アドレスへの書き込みデータが転送されるものであってもよい。その場合、コマンドによるページキャッシュ登録処理の前後で、当該コマンドで指定する論理アドレスのデータが変化しないことが望ましい。
ページキャッシュ登録を指示するコマンドにおいてアクセス装置から論理アドレスのみが転送され、書き込みデータは転送されない場合には、データブロックに存在する該論理アドレスの既存データをキャッシュブロックにコピーすることでページキャッシュの初期データを生成してもよい。図10で説明したようにデータ読み出し処理では、該論理アドレスのデータページキャッシュ登録処理の前ではデータブロックのデータが読み出され、ページキャッシュ登録処理の後ではページキャッシュのデータが読み出されることになる。従って、データブロックの既存データをキャッシュブロックにコピーすることにより、ページキャッシュ登録処理の前後で読み出されるデータが変化しないことを保証できる。
また、本実施形態では、空きエントリが存在しない場合に、自動的にページキャッシュ解放処理を行うものとしたが、これに限定されることはなく、例えば、アクセス装置2が空きエントリの有無を管理する場合であって、空きエントリが存在しないときは、アクセス装置2からページキャッシュ解放処理を指示するコマンドを発行し、ページキャッシュ解放処理(後述)が実行されない限り、不揮発性記憶装置1からアクセス装置2に「エラー」を示すレスポンスを返すようにしてもよい。
また、本実施形態では、空きエントリが存在しない場合に、自動的にページキャッシュ解放処理を行うものとしたが、これに限定されることはなく、例えば、アクセス装置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)。
図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)。
一方、選択したエントリと同じ論理ブロックの使用中エントリが存在しない場合、ページキャッシュ解放部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)を登録解除するものとする。
図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)は、フリーブロックテーブルを参照して取得した物理ブロックであり、消去した状態とする。
図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では、論理ブロック番号「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のページキャッシュ情報出力処理手順を示すフローチャートである。
(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)ページキャッシュのサイズ情報:
物理ページのサイズを出力する。
(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で取得した情報をもとに、ページキャッシュ登録解除する論理アドレスのページキャッシュ番号を選択する。
次に、アクセス装置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個分を対象とした書き込み処理で済むので、短い処理時間で、ページキャッシュ登録解放を実行することができる。
さらに、ページキャッシュ登録解除の対象を選択する必要がある場合は、「ページキャッシュに登録された論理アドレスのうち、所定時間内に一括して登録解除が可能な組合せに関する情報」を参照し、できるだけ多くの論理アドレスを一括して登録解除できるものを選択する。例えば、図13の場合、論理ブロック番号「X」の論理アドレスのデータである「X_1」および「X_3」の2つの論理アドレスを一括して登録解除(一括追出し処理による登録解除)することできるため、物理ブロック1個分を対象とした書き込み処理で済むので、短い処理時間で、ページキャッシュ登録解放を実行することができる。
さらに、登録解除の対象を選択する必要がある場合は、「ページキャッシュに登録された論理アドレスのデータ更新回数に関する情報」や「ページキャッシュに登録された論理アドレス間の登録順序に関する情報」や「ページキャッシュに登録された論理アドレス間の直近の更新順序に関する情報」などの情報を参照して、ページキャッシュ登録解除の対象を選択する(S803)。例えば、更新回数の少ないエントリからページキャッシュ登録解除する、あるいは、ページキャッシュ登録されたのが古いエントリからページキャッシュ登録解除する等により、今後あまり更新されそうにないエントリから効率的にページキャッシュ登録解除することができる。その結果、不揮発性記憶システム1000において、効率の良いページキャッシュを実現することができる。
ページキャッシュ情報設定部204は、S803で選択した全てのページキャッシュ番号と共にページキャッシュ登録解除を指示するコマンド(ページキャッシュ登録解除コマンド)を、不揮発性記憶装置1に対して発行し、ページキャッシュの登録解除を行う(S804)。本実施形態では、S803では直ちにページキャッシュ登録解除が必要なものを選択したものとし、アクセス装置2は、同期モードでコマンドを発行するものとする。つまり、本実施形態では、アクセス装置2から同期モードを指定し、発行されたページキャッシュ登録解除コマンドにより、ページキャッシュ解放部109は、アクセス装置2から要求があった時点で直ちに登録解除処理を開始する。同期モード/非同期モードの指定に関する情報は、ページキャッシュ登録解除コマンドに含めてもよいし、別のコマンドで、アクセス装置2から不揮発性記憶装置1に送信するようにしてもよい。
ページキャッシュ情報設定部204は、S803で選択した全てのページキャッシュ番号と共にページキャッシュ登録解除を指示するコマンド(ページキャッシュ登録解除コマンド)を、不揮発性記憶装置1に対して発行し、ページキャッシュの登録解除を行う(S804)。本実施形態では、S803では直ちにページキャッシュ登録解除が必要なものを選択したものとし、アクセス装置2は、同期モードでコマンドを発行するものとする。つまり、本実施形態では、アクセス装置2から同期モードを指定し、発行されたページキャッシュ登録解除コマンドにより、ページキャッシュ解放部109は、アクセス装置2から要求があった時点で直ちに登録解除処理を開始する。同期モード/非同期モードの指定に関する情報は、ページキャッシュ登録解除コマンドに含めてもよいし、別のコマンドで、アクセス装置2から不揮発性記憶装置1に送信するようにしてもよい。
なお、S803で直ちに登録解除が必要なもの以外を含んでいる場合には、アクセス装置2は、不揮発性記憶装置1に対して、別途、非同期モードでページキャッシュ登録解除のコマンドを発行してもよい。
(S805):
次に、アクセス装置2は、コンテンツファイルや当該コンテンツファイルに関連するファイルを書き込む際に使用するページキャッシュの登録処理を行う。なお、「コンテンツファイルに関連するファイル」としては、例えば、コンテンツに付随するデータ(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)のファイルや、コンテンツのサーチ用データのファイルや、コンテンツの動画サーチ用の特定フレーム画像のファイル等である。
(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):
アクセス装置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では、コンテンツ記録のための準備時間の短縮が可能となる。
以上のように、不揮発性記憶システム1000では、アクセス装置2が不揮発性記憶装置1に対してページキャッシュの登録解除及び登録を行う場合、予めページキャッシュに関する情報を不揮発性記憶装置1から取得し、取得したページキャッシュに関する情報から、アクセス装置2が、ページキャッシュ登録解除の処理に要する時間を最小限に抑えるエントリの選択を効果的に行うことができる。これにより、不揮発性記憶システム1000では、ページキャッシュ登録解除の処理に要する時間を短くすることができる。その結果、不揮発性記憶システム1000では、コンテンツ記録のための準備時間の短縮が可能となる。
なお、本発明を上記の実施形態に基づいて説明してきたが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。本実施形態で記載された数値は一例であり、他の値を使用してもよい。例えば、物理ブロックサイズやページサイズなどの値はすべて一例であり、本実施形態に記載した値に限定されるものではない。
[他の実施形態]
また、以下のような場合も本発明に含まれる。
(1)前述の実施形態における、アクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムにおいて、各機能ブロックはLSIなどの半導体装置により個別に1チップ化されてもよいし、一部または全部を含むように1チップ化されてもよい。
[他の実施形態]
また、以下のような場合も本発明に含まれる。
(1)前述の実施形態における、アクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムにおいて、各機能ブロックはLSIなどの半導体装置により個別に1チップ化されてもよいし、一部または全部を含むように1チップ化されてもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(2)前述の実施形態における各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。なお、上記実施形態に係るアクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
(3)前述の実施形態におけるページキャッシュは、各々が1つのページで構成される(1つのページに対応する)ものとして説明したが、ページキャッシュのサイズは、これに限定されるものではない。例えば、複数のページを組として仮想的なページを構成し、この仮想的なページ単位でページキャッシュを構成してもよい。また、ページに対して複数回の部分的な書き込みが許容されるフラッシュメモリなどの場合には、ページキャッシュのサイズをページよりも小さな単位(例えば、セクタ単位)とすることも可能である。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(2)前述の実施形態における各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。なお、上記実施形態に係るアクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
(3)前述の実施形態におけるページキャッシュは、各々が1つのページで構成される(1つのページに対応する)ものとして説明したが、ページキャッシュのサイズは、これに限定されるものではない。例えば、複数のページを組として仮想的なページを構成し、この仮想的なページ単位でページキャッシュを構成してもよい。また、ページに対して複数回の部分的な書き込みが許容されるフラッシュメモリなどの場合には、ページキャッシュのサイズをページよりも小さな単位(例えば、セクタ単位)とすることも可能である。
よって、「ページキャッシュ」という呼称は、単に、「キャッシュ」としてもよい。
1つのページのサイズは、フラッシュメモリの製造プロセスやメーカー等によって異なっているため、ページキャッシュの構成を切り替えることで、ページキャッシュのサイズを不揮発性記憶装置として統一することも可能である。この場合、アクセス装置は、同じサイズのページキャッシュを期待することができるため、設計が容易となる。
(4)前述の実施形態におけるアクセス装置は、コンテンツ書き込み処理において、ページキャッシュに登録すべき論理アドレスをできるだけ近接するように選択する。しかし、例えば、不揮発性記憶システムにおいて、コンテンツの書き込みと削除の繰り返しによって、ファイルシステムの管理情報の断片化が進行し、近接する論理アドレスを選択することが難しい状態になっている場合が考えられる。そこで、不揮発性記憶システムにおいて、ページキャッシュに登録すべき論理アドレスの選択に先立ち、断片化の解消処理(デフラグ)を行い、論理アドレスが近接するように選択できるようにしてもよい。また、デフラグの時間を短縮するために、不揮発性記憶システムにおいて、デフラグの対象範囲をコンテンツの記録に関する部分(例えば、コンテンツファイルのFAT、ディレクトリエントリが格納された論理アドレスや、コンテンツの関連ファイルのFAT、ディレクトリエントリが格納された論理アドレスや、コンテンツの関連ファイルに含まれる特定のデータ(例えば、頻繁に更新されるデータ)などが格納された論理アドレス)に限定してもよい。
(5)前述の実施形態における不揮発性記憶装置は、半導体メモリカードのような着脱可能な記憶装置として説明したが、アクセス装置の基板に組み込みできる形式の情報記憶モジュールとして実現してもよい。また、不揮発性記憶装置と、アクセス装置とは、必ずしも別々の装置である必要はなく、不揮発性記憶装置と、アクセス装置とが一体となって(1つの装置として)、不揮発性記憶システムを構成するものであってもよい。
(6)前述の実施形態では、ページキャッシュ登録解除を指示するコマンドにページキャッシュ番号の情報を含めるものとしたが、登録解除の対象となるエントリが明確になるのであれば、必ずしもページキャッシュ番号である必要はない。例えば、複数のキャッシュ対象の論理アドレスを指定してもよい。
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 ページキャッシュ情報取得部
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 (14)
- アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、
キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する不揮発性メモリと、
前記不揮発性メモリへのデータ書き込み及びデータ読み出しを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した前記論理アドレスをキャッシュ対象として登録するキャッシュ登録部を備える、
不揮発性記憶装置。 - 前記メモリコントローラは、さらに、
キャッシュ対象として登録された前記論理アドレスへの書き込みデータを前記不揮発性メモリの前記キャッシュ用ブロックへ記録するキャッシュ書き込み部と、
キャッシュ対象として登録されている論理アドレスが複数存在する場合、外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている複数の論理アドレスの中から、同一論理ブロックに含まれる論理アドレスが複数存在する場合、前記同一論理ブロックに含まれる複数の論理アドレスをキャッシュ対象から解放するキャッシュ解放部と、
を備える、
請求項1に記載の不揮発性記憶装置。 - アクセス装置からの指示によりデータの読み出し処理および/または書き込み処理を行う不揮発性記憶装置であって、
キャッシュ用ブロックと、データ用ブロックとを含み、データを記憶する不揮発性メモリと、
前記不揮発性メモリへのデータ書き込み及びデータ読み出しを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
外部からキャッシュの登録の指示と、キャッシュ対象となるデータの論理アドレスとを受信した場合、受信した前記論理アドレスをキャッシュ対象として登録するキャッシュ登録部と、
キャッシュ対象として登録された前記論理アドレスへの書き込みデータを前記不揮発性メモリの前記キャッシュ用ブロックへ記録するキャッシュ書き込み部と、
キャッシュ対象として登録された前記論理アドレスに関する情報をページキャッシュ管理テーブルとして管理し、前記ページキャッシュ管理テーブルによりキャッシュ対象として管理されている論理アドレスA1が巻き込み退避処理のコピー元として、巻き込み退避処理により、前記データ用ブロックにコピーされた場合、前記論理アドレスA1のデータ一致フラグを「ON」に設定し、前記ページキャッシュ管理テーブルに反映させるページキャッシュ制御部と、
外部からキャッシュの解放の指示を受付けると、キャッシュ対象として登録されている論理アドレスの中から、前記データ一致フラグが「ON」であるキャッシュ対象の論理アドレスを、優先的にキャッシュ対象から解放するキャッシュ解放部と、
を備える、
不揮発性記憶装置。 - 前記キャッシュ解放部は、外部からキャッシュの解放を受付けたタイミングとは非同期の別のタイミングで、前記論理アドレスをキャッシュ対象から解放する処理であるキャッシュ解放処理を実行する、
請求項2または3に記載の不揮発性記憶装置。 - 前記キャッシュ解放部は、外部から受付けたキャッシュの解放の指示を受け付けた場合、前記キャッシュの解放の指示を受け付けた時点より以降において実行される前記メモリコントローラの初期化処理の一部として、前記キャッシュ解放処理を実行する、
請求項4に記載の不揮発性記憶装置。 - 前記キャッシュ解放部は、外部から受付けたキャッシュの解放の指示による前記キャッシュ解放処理を、外部からのコマンド待ち中に開始する、
請求項4に記載の不揮発性記憶装置。 - キャッシュ対象の論理アドレスを解放するために要する時間に関する情報を外部に出力するキャッシュ情報出力部をさらに備える、
請求項2または3に記載の不揮発性記憶装置。 - 前記キャッシュ情報出力部は、所定時間内に一括して解放が可能なキャッシュ対象の論理アドレスに関する情報を出力する、
請求項7に記載の不揮発性記憶装置。 - 前記キャッシュ情報出力部は、キャッシュ対象の論理アドレスA2に対応するキャッシュ用ブロックのデータと、前記論理アドレスA2に対応する物理アドレスP2に相当するデータ用ブロック上のデータとを比較し、比較結果を出力する、
請求項7に記載の不揮発性記憶装置。 - キャッシュ用ブロックとデータ用ブロックとを含む不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置あって、
不揮発性記憶装置に対してキャッシュ対象となるデータの論理アドレスを設定するキャッシュ設定部と、
不揮発性記憶装置がキャッシュ対象の論理アドレスを解放するために要する時間に関する情報を前記不揮発性記憶装置から取得するキャッシュ情報取得部と、
を備えるアクセス装置。 - 前記キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを解放する際に、前記キャッシュ情報取得部が取得した情報を参照し、所定時間内に一括して解放が可能な論理アドレスを優先的に解放することを前記不揮発性記憶装置に指示する、
請求項10に記載のアクセス装置。 - 前記キャッシュ設定部は、複数のキャッシュ対象の論理アドレスを登録する際に、キャッシュ対象の論理アドレスが近接するように予め前記不揮発性記憶装置のデータの並べ替えを実施しておくことを前記不揮発性記憶装置に指示する、
請求項10に記載のアクセス装置。 - 前記キャッシュ設定部は、不揮発性記憶装置が管理するページキャッシュ管理テーブルにおいて、前記キャッシュ用ブロックと、前記データ用ブロックとの両方に、同一データがあることを示すデータ一致フラグが「ON」であるキャッシュ対象の論理アドレスを優先的に解放することを前記不揮発性記憶装置に指示する、
請求項10に記載のアクセス装置。 - 請求項1から9のいずれかに記載の不揮発性記憶装置と、
請求項10から13のいずれかに記載のアクセス装置と、
を備える不揮発性記憶システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011527572A JP5209793B2 (ja) | 2009-08-21 | 2010-08-10 | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009191994 | 2009-08-21 | ||
JP2009191994 | 2009-08-21 | ||
JP2011527572A JP5209793B2 (ja) | 2009-08-21 | 2010-08-10 | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
PCT/JP2010/005017 WO2011021367A1 (ja) | 2009-08-21 | 2010-08-10 | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011021367A1 JPWO2011021367A1 (ja) | 2013-01-17 |
JP5209793B2 true JP5209793B2 (ja) | 2013-06-12 |
Family
ID=43606827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011527572A Active JP5209793B2 (ja) | 2009-08-21 | 2010-08-10 | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8656110B2 (ja) |
JP (1) | JP5209793B2 (ja) |
WO (1) | WO2011021367A1 (ja) |
Families Citing this family (6)
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 |
KR102513903B1 (ko) * | 2015-12-03 | 2023-03-28 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 메모리 시스템 |
KR102513913B1 (ko) * | 2015-12-03 | 2023-03-28 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 메모리 시스템 |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US10845866B2 (en) * | 2017-06-22 | 2020-11-24 | Micron Technology, Inc. | Non-volatile memory system or sub-system |
CN111124255B (zh) * | 2018-10-31 | 2023-09-08 | 伊姆西Ip控股有限责任公司 | 数据存储方法、电子设备和计算机程序产品 |
Citations (4)
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 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080195798A1 (en) * | 2000-01-06 | 2008-08-14 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems and Methods Thereof |
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 |
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 | 株式会社東芝 | メモリ制御装置およびメモリ制御方法 |
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 |
US7315916B2 (en) | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
WO2009107393A1 (ja) | 2008-02-29 | 2009-09-03 | パナソニック株式会社 | アクセス装置、情報記録装置、コントローラ、及び情報記録システム |
-
2010
- 2010-08-10 JP JP2011527572A patent/JP5209793B2/ja active Active
- 2010-08-10 US US13/130,360 patent/US8656110B2/en active Active
- 2010-08-10 WO PCT/JP2010/005017 patent/WO2011021367A1/ja active Application Filing
Patent Citations (4)
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 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011021367A1 (ja) | 2013-01-17 |
WO2011021367A1 (ja) | 2011-02-24 |
US8656110B2 (en) | 2014-02-18 |
US20110225370A1 (en) | 2011-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5400875B2 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
JP5209793B2 (ja) | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム | |
JP4768504B2 (ja) | 不揮発性フラッシュメモリを用いる記憶装置 | |
US8117374B2 (en) | Flash memory control devices that support multiple memory mapping schemes and methods of operating same | |
JP5577238B2 (ja) | アクセス装置、情報記録装置、コントローラ、及び情報記録システム | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
US20080046660A1 (en) | Information recording apparatus and control method thereof | |
JP2008033788A (ja) | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 | |
JP2008027383A (ja) | 情報記録装置及びその制御方法 | |
JP2007193883A (ja) | データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法 | |
JP4874844B2 (ja) | 情報記録装置及びその制御方法 | |
JP3568110B2 (ja) | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 | |
US20150149690A1 (en) | Recording device, access device, recording system, and recording method | |
US20110016264A1 (en) | Method and apparatus for cache control in a data storage device | |
JP2008250718A (ja) | 不揮発性キャッシュメモリを用いた記憶装置とその制御方法 | |
JP4130808B2 (ja) | フォーマット方法 | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP5523128B2 (ja) | 記録装置及びその制御方法 | |
JP2009020776A (ja) | スワップアウト制御装置 | |
JP2011133947A (ja) | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム | |
JP2007279873A (ja) | データ記録装置 | |
JP2009230205A (ja) | メモリシステム | |
JP4710274B2 (ja) | メモリ装置、メモリ装置の制御方法およびデータ処理システム | |
JP2007249662A (ja) | メモリカード及びメモリカードの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |