以下、添付される図面を参照しながら実施の形態について説明する。以下の実施の形態では、技術の説明のために詳細な特徴なども示されるが、それらは例示であり、実施の形態が実施可能となるためにそれらすべてが必ずしも必須の特徴ではない。
なお、図面は概略的に示されるものであり、説明の便宜のため、適宜、構成の省略、または、構成の簡略化が図面においてなされるものである。また、異なる図面にそれぞれ示される構成などの大きさおよび位置の相互関係は、必ずしも正確に記載されるものではなく、適宜変更され得るものである。また、断面図ではない平面図などの図面においても、実施の形態の内容を理解することを容易にするために、ハッチングが付される場合がある。
また、以下に示される説明では、同様の構成要素には同じ符号を付して図示し、それらの名称と機能とについても同様のものとする。したがって、それらについての詳細な説明を、重複を避けるために省略する場合がある。
また、以下に記載される説明において、ある構成要素を「備える」、「含む」または「有する」などと記載される場合、特に断らない限りは、他の構成要素の存在を除外する排他的な表現ではない。
また、以下に記載される説明において、「第1の」または「第2の」などの序数が用いられる場合があっても、これらの用語は、実施の形態の内容を理解することを容易にするために便宜上用いられるものであり、これらの序数によって生じ得る順序などに限定されるものではない。
<第1の実施の形態>
以下、本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、記録装置は、記録再生装置の記録動作を行う部分に相当するとも言える。
<記録再生装置の構成について>
まず、NAND型フラッシュメモリなどのような不揮発性半導体メモリについて説明する。
NAND型フラッシュメモリなどのような不揮発性半導体メモリに記録されているデータの消去単位、書き込み単位または読み出し単位は、コンピュータシステムの一時記録装置としてのバッファメモリに用いられるSRAMの容量またはdynamic random access memory(DRAM)の容量に比べて大きい場合がある。
たとえば、NAND型フラッシュメモリの最小の書き込み単位は4224バイトである。なお、この単位をページとも呼ぶ。
NAND型フラッシュメモリでは、コントローラによって、4224バイトのデータがNAND型フラッシュメモリの半導体素子に内蔵されるレジスタに書き込まれる。そして、コントローラから書き込みコマンドが送信されると、半導体素子に内蔵される不揮発トランジセルにレジスタからデータが転送される。
通常、上記のデータ転送の間、コントローラは当該NAND型フラッシュメモリに新たにデータを書き込むことはできない。また、コントローラは、上記の転送の間、当該NAND型フラッシュメモリからデータを読み出すこともできないし、当該NAND型フラッシュメモリにおけるデータを消去することもできない。
また、当該NAND型フラッシュメモリは、最小の読み出し単位も4224バイト(ページ)に制限されている。さらに、当該NAND型フラッシュメモリの最小の消去単位は、64ページを1つの単位(以下、この単位をブロックとも呼ぶ)とする。
すなわち、コントローラが消去コマンドを送信すると、64ページ分が一気に消去される。つまり、ブロックの中の特定のページだけを消去することはできない。
また、NAND型フラッシュメモリはDRAMまたはSRAMとは異なり、データを上書きすることはできない。よって、データが記録されているブロックのデータを消去しなければ、当該ブロックに新たなデータを書き込むことはできない。
図1は、本実施の形態に関する記録再生装置の構成の例を概略的に示す図である。図1に例が示されるように、記録再生装置30は、インターフェイス部31と、バッファメモリ32と、ホスト33と、コントローラ34と、NAND型フラッシュメモリ群35と、内部バス36とを備える。記録再生装置30は、たとえば、人工衛星に搭載されるものである。
上記のうち、インターフェイス部31、ホスト33およびコントローラ34は、たとえば、中央演算処理装置(central processing unit、すなわちCPU)、マイクロプロセッサ、マイクロコンピュータ、デジタルシグナルプロセッサ(digital signal processor、すなわちDSP)であってもよい。または、たとえば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、集積回路(application specific integrated circuit、すなわちASIC)、field−programmable gate array(FPGA)またはこれらを組み合わせた回路であってもよい。
インターフェイス部31は、外部のセンサーA151、外部のセンサーB152および外部のセンサーC153からセンサー取得データを取得する。なお、外部のセンサーの種類および数は図1に例が示された場合に限られるものではないが、ここでは、3種類の外部のセンサーを備えるものとする。
バッファメモリ32では、SRAMの内部メモリ(内部RAM)、磁気抵抗メモリ(magnetoresistive random access memory、すなわち、MRAM)の内部メモリ(内部RAM)、または、field−programmable gate array(FPGA)の内部メモリ(内部RAM)などを用いて、センサーA用領域40、センサーB用領域41、センサーC用領域42がアドレスによってそれぞれ区分けされている。
そして、バッファメモリ32は、インターフェイス部31に接続され、かつ、インターフェイス部31がそれぞれのセンサーから取得したセンサー取得データを、センサーの種類に応じて分けられた一時記録領域であるセンサーA用領域40、センサーB用領域41またはセンサーC用領域42に一時的に蓄積する。
ここで、図1におけるNAND型フラッシュメモリ群35とコントローラ34とが、メモリバス37を通じて接続される方法について説明する。
図2は、NAND型フラッシュメモリ群35とコントローラ34とが、メモリバス37を通じて接続される方法の例を示す図である。
NAND型フラッシュメモリ群35は、16個のNAND型フラッシュメモリを備える。そして、これらのNAND型フラッシュメモリが、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52、および、NAND型フラッシュメモリグループ(3)53の4つのグループに分けられている。そして、それぞれのグループには、NAND型フラッシュメモリが4個ずつ割り当てられている。
NAND型フラッシュメモリグループ(0)50は、NAND型フラッシュメモリ100、NAND型フラッシュメモリ101、NAND型フラッシュメモリ102およびNAND型フラッシュメモリ103を備える。
NAND型フラッシュメモリグループ(1)51は、NAND型フラッシュメモリ104、NAND型フラッシュメモリ105、NAND型フラッシュメモリ106およびNAND型フラッシュメモリ107を備える。
NAND型フラッシュメモリグループ(2)52は、NAND型フラッシュメモリ108、NAND型フラッシュメモリ109、NAND型フラッシュメモリ110およびNAND型フラッシュメモリ111を備える。
NAND型フラッシュメモリグループ(3)53は、NAND型フラッシュメモリ112、NAND型フラッシュメモリ113、NAND型フラッシュメモリ114およびNAND型フラッシュメモリ115を備える。
また、それぞれのNAND型フラッシュメモリグループにおけるNAND型フラッシュメモリ1つずつが接続されたメモリバスが、それぞれコントローラ34と接続されている。
具体的には、NAND型フラッシュメモリ100、NAND型フラッシュメモリ104、NAND型フラッシュメモリ108およびNAND型フラッシュメモリ112に接続されたメモリバスa60が、他のメモリバスとは独立して、コントローラ34と接続されている。
また、NAND型フラッシュメモリ101、NAND型フラッシュメモリ105、NAND型フラッシュメモリ109およびNAND型フラッシュメモリ113に接続されたメモリバスb61が、他のメモリバスとは独立して、コントローラ34と接続されている。
また、NAND型フラッシュメモリ102、NAND型フラッシュメモリ106、NAND型フラッシュメモリ110およびNAND型フラッシュメモリ114に接続されたメモリバスc62が、他のメモリバスとは独立して、コントローラ34と接続されている。
また、NAND型フラッシュメモリ103、NAND型フラッシュメモリ107、NAND型フラッシュメモリ111およびNAND型フラッシュメモリ115に接続されたメモリバスd63が、他のメモリバスとは独立して、コントローラ34と接続されている。
図1のコントローラ34は、フラッシュ制御部70と、記録先選択部71と、再生順リスト生成部73と、再生設定部74と、消去設定部75とを備える。
また、コントローラ34は、再生されたセンサー取得データを通信装置80へ転送する。なお、通信装置80は、ユーザーへセンサー取得データを送信する。
コントローラ34におけるフラッシュ制御部70は、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63を介して、それぞれがNAND型フラッシュメモリを4個ずつ備えるNAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53を、グループごとに排他的に制御可能である。すなわち、フラッシュ制御部70は、4つのNAND型フラッシュメモリグループのうちの1つのグループのみを選択して、制御することができる。
図3は、データの書き込みを行う場合の制御方法の例を示すシーケンス図である。
フラッシュ制御部70は、1つのNAND型フラッシュメモリグループ(図3では、NAND型フラッシュメモリグループ(0)50)を選択した後、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63のそれぞれに、同じ値の書き込み開始用コマンドと同じ値のアドレスとを送信する。
上記のアドレスは、ブロック番号(何番目のブロックかを表す)とページ番号(ブロック内における何番目のページかを表す)とを組み合わせた値となる。すなわち、同じNAND型フラッシュメモリグループに属する4個のNAND型フラッシュメモリ(たとえば、NAND型フラッシュメモリグループ(0)50に属する、NAND型フラッシュメモリ100、NAND型フラッシュメモリ101、NAND型フラッシュメモリ102およびNAND型フラッシュメモリ103)は、それぞれ同じアドレス(すなわち、同じブロック番号および同じページ番号)にアクセスすることになる。
次に、フラッシュ制御部70は、バッファメモリ32から転送された書き込み用のデータをいずれかのフラッシュメモリグループにおける4個のNAND型フラッシュメモリに分散させて、それぞれのNAND型フラッシュメモリの同じアドレスにおいて、当該データをそれぞれ1ページ分書き込む。
4個のNAND型フラッシュメモリの1ページ分はそれぞれ4224バイトであるから、上記の場合、4224×4バイトのデータをバッファメモリ32から転送して書き込むことができるが、同時にアクセスするNAND型フラッシュメモリが1つである場合は、バッファメモリ32から1ページ分ずつ転送して書き込むこととなる。
そして、フラッシュ制御部70は、データの書き込みを完了する。なお、この一連の書き込み動作を1ページの書き込みと定義する。
この後、NAND型フラッシュメモリグループ(0)50は、それぞれのNAND型フラッシュメモリ100、NAND型フラッシュメモリ101、NAND型フラッシュメモリ102およびNAND型フラッシュメモリ103内で不揮発トランジセルにビットを書き込むために、ビジー状態となる。
この間、それぞれのNAND型フラッシュメモリ100、NAND型フラッシュメモリ101、NAND型フラッシュメモリ102およびNAND型フラッシュメモリ103は他の動作ができない。
本実施の形態における記録再生装置30のNAND型フラッシュメモリ群35は、高速化のために、他のNAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53を備えている。
NAND型フラッシュメモリ群35におけるこれらのNAND型フラッシュメモリグループがアイドル状態ならば、フラッシュ制御部70は、さらにバッファメモリ32から書き込み用のデータを転送して、これらのNAND型フラッシュメモリグループに当該データを書き込むことができる。
一方で、NAND型フラッシュメモリ群35がNAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53を備えていない場合、次のデータの書き込みを行うためには、NAND型フラッシュメモリグループ(0)50のビジー状態が解除されるまで書き込み動作を待つ必要があり、処理を高速化することができない。
図3には、NAND型フラッシュメモリグループ(0)50の書き込み動作の時点で、NAND型フラッシュメモリグループ(1)51およびNAND型フラッシュメモリグループ(3)53がアイドル状態であり、かつ、NAND型フラッシュメモリグループ(2)52が消去中である場合が示されている。
この場合、フラッシュ制御部70は、NAND型フラッシュメモリグループ(0)50に書き込み用のデータを書き込んだ後、たとえば、NAND型フラッシュメモリグループ(1)51を選択する。そして、フラッシュ制御部70は、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63のそれぞれに、同じ値の書き込み開始用コマンドと同じ値のアドレスとを送信する。
そして、フラッシュ制御部70は、NAND型フラッシュメモリグループ(1)51に属する、NAND型フラッシュメモリ104、NAND型フラッシュメモリ105、NAND型フラッシュメモリ106およびNAND型フラッシュメモリ107に、バッファメモリ32から転送された書き込み用のデータを分散させて、それぞれのNAND型フラッシュメモリの同じアドレスにおいて、当該データをそれぞれ1ページ分書き込む。
この後、NAND型フラッシュメモリグループ(1)51は、それぞれのNAND型フラッシュメモリ104、NAND型フラッシュメモリ105、NAND型フラッシュメモリ106およびNAND型フラッシュメモリ107内で不揮発トランジセルにビットを書き込むために、ビジー状態となる。
この間、それぞれのNAND型フラッシュメモリ104、NAND型フラッシュメモリ105、NAND型フラッシュメモリ106およびNAND型フラッシュメモリ107は他の動作ができない。
また、NAND型フラッシュメモリグループ(2)52は消去中であるため、データの書き込みはできない。
よって、フラッシュ制御部70は、NAND型フラッシュメモリグループ(1)51にデータを書き込んだ後、NAND型フラッシュメモリグループ(3)53を選択する。そして、フラッシュ制御部70は、上記の同様の動作によって、NAND型フラッシュメモリグループ(3)53に属する、NAND型フラッシュメモリ112、NAND型フラッシュメモリ113、NAND型フラッシュメモリ114およびNAND型フラッシュメモリ115に、バッファメモリ32から転送された書き込むデータを分散させて、それぞれのNAND型フラッシュメモリの同じアドレスにおいて、当該データをそれぞれ1ページ分書き込む。
したがって、NAND型フラッシュメモリへの書き込み動作は、それぞれのNAND型フラッシュメモリグループの状態(消去中または読み出し状態など)によって、順序がランダムとなる。本実施の形態では、後述するように、NAND型フラッシュメモリグループ間のアクセス順序を再生順リストとして生成する。
次に、データの読み出しを行う場合の制御方法について説明する。NAND型フラッシュメモリからのデータの読み出しを行う場合、フラッシュ制御部70は、まず1つのNAND型フラッシュメモリグループを選択する。その後、フラッシュ制御部70は、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63のそれぞれに、同じ値の読み出し開始用コマンドと同じ値のアドレスとを送信する。当該アドレスは、ブロック番号とページ番号とを組み合わせた値となる。
一定時間後、4個のNAND型フラッシュメモリから読み出しデータが出力される。
1個のNAND型フラッシュメモリの1ページは4224バイトであるため、4個のNAND型フラッシュメモリに対応する4224×4バイトのデータを読み出して、読み出し完了となる。なお、この一連の読み出し動作を1ページの読み出しと定義する。
次に、データの消去を行う場合の制御方法について説明する。データの消去を行う場合、フラッシュ制御部70は、まず1つのNAND型フラッシュメモリグループを選択する。その後、フラッシュ制御部70は、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63のそれぞれに、同じ値の消去開始用コマンドと同じ値のアドレスとを送信する。当該アドレスは、ブロック番号のみからなる値となる。
一定時間後、4個のNAND型フラッシュメモリそれぞれにおける同一のブロック番号の記録データが消去される。
以上のように、コントローラ34のフラッシュ制御部70は、同じNAND型フラッシュメモリグループに属する4個のNAND型フラッシュメモリの同一アドレスに、常に並列的にアクセスを行う。
1個のNAND型フラッシュメモリのページ単位が4224バイトであるとき、並列でアクセスする場合はその並列度(すなわち、並列アクセス数)を乗じた値がページ単位となる。以下では、並列度を乗じたページ単位を単にページとも呼ぶ。同様に、並列度を乗じたブロック単位を単にブロックとも呼ぶ。
図4は、1つのNAND型フラッシュメモリにおけるアドレス構成の例を示す図である。また、図5は、それぞれのNAND型フラッシュメモリグループにおける区画の例を示す図である。
図4に例が示されるように、1個のNAND型フラッシュメモリには複数のブロック201が定義され、それぞれのブロック201において、複数のページ200が定義される。図4に例が示されるように、1つのページ200は32バイトに対応する。
また、図5に例が示されるように、本実施の形態では、アドレス構成として、4つのNAND型フラッシュメモリグループそれぞれにおける同じブロック番号のブロック4つで1つの記憶領域としての区画300を定義する。
図4に例が示されるように、1個のNAND型フラッシュメモリに含まれるブロック201の数が4096である場合、1個のNAND型フラッシュメモリにおいて1024の区画300を定義することができる。
1個のNAND型フラッシュメモリにおける1024の区画300は、センサーA151、センサーB152およびセンサーC153に応じて分けられる。
図6は、それぞれの区画のセンサーに対する割り当てを示す図である。図6に示される例では、区画(0)から区画(499)をセンサーA151の記録領域とし、区画(500)から区画(999)をセンサーB152の記録領域とし、区画(1000)から区画(1023)をセンサーC153の記録領域とする。
そして、センサーごとにこれらの区画をまとめた記録領域をパーティションと呼ぶ。図6の例では、センサーA151の記録領域である区画群をパーティション400とし、センサーB152の記録領域である区画群をパーティション401とし、センサーC153の記録領域である区画群をパーティション402と定義する。
図1のホスト33は、ファイル処理部38と、再生順リスト受信部39とを備える。また、ホスト33は、ソフトウェアによって動作を行う。また、ホスト33は、ユーザー操作インターフェイス90と接続され、ユーザー操作インターフェイス90からファイル操作の指示を受信する。ここで、ユーザー操作インターフェイス90は、たとえば、マウス、キーボード、タッチパネル、または、各種スイッチなどの、情報を入力することができる入力装置である。
ファイル操作とは、ファイルの生成、ファイルへの記録、ファイルの再生、ファイルの消去およびファイルの分割を含むものである。なお、ファイルの再生に関しては、ファイルの先頭からの再生だけでなく、ファイルの終端まで再生したファイルに関して、一定データ量だけ巻き戻した位置からファイルを再生する操作も含まれる。
ファイルはセンサーの種類ごとに作成される。ただし、同じセンサーであっても、複数のファイルを定義することができる。
センサーA151用のファイルは、センサーA151に対応するパーティション400における複数の区画300を選択し、さらにそれらをつなげたものである。
同様に、センサーB152用のファイルは、センサーB152に対応するパーティション401における複数の区画300を選択し、さらにそれらをつなげたものである。
同様に、センサーC153用のファイルは、センサーC153に対応するパーティション402における複数の区画300を選択し、さらにそれらをつなげたものである。
本実施の形態では、まず、ユーザー操作インターフェイス90が、ユーザーからファイル生成のコマンドを受信する。
上記のコマンドには、ファイルサイズを指定するパラメータが付加されており、ファイルの作成のためにいくつの区画300を必要とするかが示されている。
ホスト33のファイル処理部38は、ユーザー操作インターフェイス90から上記のコマンドを受信した後、利用可能な区画300から上記のコマンドによって指定された必要とされる区画300の数だけ指定して、それらをファイルとする。
そして、ホスト33のファイル処理部38は、データの記録を当該ファイルの先頭から実行するため、当該ファイルの先頭の区画300に含まれるNAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53それぞれのブロック番号を、コントローラ34における記録先選択部71に設定する。
このようにして、ホスト33のファイル処理部38は、センサーA151用のファイル、センサーB152用のファイルおよびセンサーC153用のファイルについて、それぞれの先頭の区画300のブロック番号を記録先選択部71に設定する。
本実施の形態では、センサーA151からのデータ、センサーB152からのデータおよびセンサーC153からのデータをそれぞれ記録するので、ホスト33のファイル処理部38は、センサーA151に対応するパーティション400から選ばれた少なくとも1つの区画300で構成されるセンサーA151用のファイルと、センサーB152に対応するパーティション401から選ばれた少なくとも1つの区画300で構成されるセンサーB152用のファイルと、センサーC153に対応するパーティション402から選ばれた少なくとも1つの区画300で構成されるセンサーC153用のファイルとをそれぞれ作成する。
また、本実施の形態では、センサーA151、センサーB152およびセンサーC153からストリーム状のデータ、すなわち、途切れずに次々と作成されるデータが、記録再生装置30に入力される。
具体的には、センサーA151、センサーB152およびセンサーC153からのストリーム状のデータがインターフェイス部31に入力される。そして、それらのデータは、それぞれのセンサーに対応するバッファメモリ32内の領域、具体的には、センサーA用領域40、センサーB用領域41およびセンサーC用領域42にそれぞれ蓄積される。
インターフェイス部31は、センサーA151、センサーB152およびセンサーC153から入力されたそれぞれのデータに関して、蓄積量がページを上回っているか否かを検出することができる。
たとえば、センサーA151から入力されたデータの蓄積量がページ(すなわち、本実施の形態では32Kバイト)を上回っていれば、内部バス36を通じて、センサーA151のデータ1ページ分に相当する32Kバイトのデータをコントローラ34に転送する。
すなわち、本実施の形態によれば、バッファメモリ32に必要とされるメモリ容量は、32Kバイト×入力センサー数となり、本実施の形態の場合、96Kバイトという比較的少ない容量で済むという効果が得られる。
したがって、バッファメモリ32として、たとえば、SRAMの内部RAM、または、FPGAの内部RAMなどを用いることができる。すなわち、バッファメモリ32は、32Kバイトを単位としてセンサーごとに動作するFIFOメモリとなっている。
ここで、インターフェイス部31は、内部バス36を通じてのデータ転送時に、センサーA151、センサーB152およびセンサーC153のうちのいずれのデータであるかを区別するための区別情報を付加する。
センサーA151、センサーB152およびセンサーC153は、インターフェイス部31に対して同時にデータを入力することができる。そのため、これらのセンサーが同時に32Kバイトを上回る場合があるが、この場合は、インターフェイス部31は、ラウンドロビンアルゴリズムなどの調停アルゴリズムを用いて、どのセンサーのデータを先にコントローラ34に転送するかを選択する。
なお、コントローラ34の処理方式に応じて、コントローラ34側からリクエストがなされてから、インターフェイス部31が内部バス36を介してコントローラ34にデータを転送するようなフロー制御がなされてもよい。
また、内部バス36を介して転送されたデータがNAND型フラッシュメモリに書き込まれる際に、対応するNAND型フラッシュメモリが再生中または消去中などである場合、すなわち、対応するNAND型フラッシュメモリグループにおけるNAND型フラッシュメモリが動作中である場合には、内部バス36を介して転送されたデータを書き込むことができない。そのため、そのような状態であるNAND型フラッシュメモリグループに対応するデータは、転送順序が優先されない。
コントローラ34の記録先選択部71は、内部バス36を通じてインターフェイス部31からデータを受信すると、当該データに付加されている区別情報から、どのセンサーからのデータであるかをデコードする。
そして、当該データがセンサーA151からのデータであった場合、コントローラ34は、センサーA151用のファイルとして記録先選択部71に設定されている、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53それぞれの先頭の区画300のブロック番号をデータの書き込み先として選択する。
なお、転送先としては、上記のうちの、アイドル状態であるNAND型フラッシュメモリグループを選択する。
転送順序として、どのNAND型フラッシュメモリグループを先に選択するかの選択アルゴリズムは、ランダムに選択するアルゴリズムまたはラウンドロビンアルゴリズムなどを採用することができる。
ただし、後述の区画300の記録完了の条件を考慮する場合、できるだけNAND型フラッシュメモリグループ間で均等に記録されるアルゴリズムが採用されることが望ましい。
次に、コントローラ34は、選択したブロック番号のページに、転送されたデータを記録する。
そして、コントローラ34は、再生順リスト生成部73において、センサーA151の再生順リストとして、上記のデータが記録された、NAND型フラッシュメモリグループ、区画、ブロック番号およびページ番号を書き込む。
次に内部バス36を介して転送されるデータ(同一のセンサーからのデータ)に関しても同じブロック番号が選択された場合、先にデータを書き込んだページの続きのページから、データを記録していく。
一方、内部バス36を介して転送されるデータがセンサーB152からのデータであった場合、コントローラ34は、センサーB152用のファイルとして記録先選択部71に設定されている、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53それぞれの先頭の区画300のブロック番号を選択する。
同様に、内部バス36を介して転送されるデータがセンサーC153からのデータであった場合、コントローラ34は、センサーC153用のファイルとして記録先選択部71に設定されている、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53それぞれの先頭の区画300のブロック番号を選択する。
また、再生順リストは、センサーA151の再生順リストと同様に、センサーB152およびセンサーC153に関しても、上記のデータが記録された、NAND型フラッシュメモリグループ、区画、ブロック番号およびページ番号を書き込む。
このようにそれぞれのセンサーからのデータをNAND型フラッシュメモリに記録していくと、あるセンサーに関しては、記録先選択部71に設定された区画A内のいずれかのNAND型フラッシュメモリグループの4個目のブロックが最終ページまでデータが書き込まれた状態に達する。
このような状態に達した場合、コントローラ34における再生順リスト生成部73は、区画Aに関しては記録完了として、再生順リストをホスト33の再生順リスト受信部39へ転送する。
ここで、上記では、いずれかのNAND型フラッシュメモリグループにおける最終ページまでデータが書き込まれた段階で、対応する区画の記録完了とされたが、記録完了とする基準は、いずれかのNAND型フラッシュメモリグループにおけるデータの記録量があらかじめ定められた割合を超えた場合であってもよいし、データの記録量があらかじめ定められた割合を超えたNAND型フラッシュメモリグループがあらかじめ定められた数以上となった場合であってもよい。
ホスト33の再生順リスト受信部39は、再生順リスト生成部73から再生順リストを受信すると、対応するパーティションにおける次の区画300のブロック番号を記録先選択部71に設定して、次の記録に備える。
上記の動作を継続して実行していくと、センサーA151、センサーB152およびセンサーC153それぞれについて、対応するパーティションにおける区画ごとに記録完了となった再生順リストが、ホスト33に蓄積されることになる。
図7は、再生順リストの例を示す図である。また、図8は、図7に示された再生順リストにしたがって書き込みを行い、区画(0)の書き込みが完了した状態の例を示す図である。
図8に例が示されるように、データが書き込まれた区画(0)内のすべてのページが順になって、次の区画(1)の再生順序へ続くように記録されていく。
すなわち、たとえば、区画(0)の再生順序が続いた後、別の区画(1)の再生順序に移り、再度区画(0)へ再生順序が戻ってくることはない。これを効果1とも呼ぶ。
図9は、以上の記録動作を示すフローチャートである。図9に例が示されるように、まず、ホスト33は、ファイルに含まれる複数の区画のうちの1つの区画のすべてのブロック番号を記録先選択部71に設定する(図9のステップST101)。そして、ホスト33は、記録先選択部71におけるページカウンタを0にする(クリアする)。
そして、ホスト33は、インターフェイス部31からのデータが入力されるまで待機する(図9のステップST102)。
次に、それぞれのセンサーから入力されたデータが蓄積され、さらに、内部バス36を介して記録先選択部71へ転送されると、コントローラ34の記録先選択部71は、転送されてきたデータに付加されている区別情報に基づいて、転送されてきたデータがセンサーA151、センサーB152およびセンサーC153のうちのいずれのデータであるかを区別する(図9のステップST103)。
次に、コントローラ34の記録先選択部71は、アイドル状態であるNAND型フラッシュメモリグループを選択する(図9のステップST104)。
そして、コントローラ34の記録先選択部71は、アイドル状態で、かつ、転送されてきたデータのセンサーに対応するNAND型フラッシュメモリグループの、ブロック番号およびページカウンタを取得する(図9のステップST105)。
次に、コントローラ34のフラッシュ制御部70は、記録先選択部71において取得されたブロック番号およびページカウンタに基づいて、アイドル状態で、かつ、転送されてきたデータのセンサーに対応するNAND型フラッシュメモリグループにおいてデータの書き込みを行う(図9のステップST106)。
次に、コントローラ34の再生順リスト生成部73において、転送されてきたデータに対応するセンサーの再生順リストとして、上記のデータが記録された、NAND型フラッシュメモリグループ、区画、ブロック番号およびページ番号を書き込む(図9のステップST107)。
そして、記録先選択部71におけるページカウンタを1つ増やす(図9のステップST108)。
次に、ホスト33は、記録先選択部71におけるページカウンタが64か否かを判断する(図9のステップST109)。
ページカウンタが64である場合、すなわち、図9に例が示されるステップST109から分岐する「YES」に対応する場合には、図9に例が示されるステップST110へ進む。
一方で、ページカウンタが64でない場合(ページカウンタが64に達していない場合)、すなわち、図9に例が示されるステップST109から分岐する「NO」に対応する場合には、図9に例が示されるステップST111へ進む。
ステップST110では、データの書き込みを行っている区画300における上記のNAND型フラッシュメモリグループの、ブロック4つがすべてデータ記録済みとなっているか否かが判断される。
ブロック4つがすべてデータ記録済みとなっている場合、すなわち、図9に例が示されるステップST110から分岐する「YES」に対応する場合には、図9に例が示されるステップST112へ進む。
一方で、ブロック4つがすべてデータ記録済みとはなっていない場合(ブロック4つのうちの1つでも、データが記録されていない状態である場合)、すなわち、図9に例が示されるステップST110から分岐する「NO」に対応する場合には、図9に例が示されるステップST111へ進む。
ステップST111では、上記のNAND型フラッシュメモリグループにおける次のブロック番号を取得して、ステップST102に戻る。
ステップST112では、再生順リスト生成部73において生成された、転送されてきたデータに対応するセンサーの再生順リストを、ホスト33に送信する。そして、ステップST113へ進む。
ステップST113では、記録が終了したか否かが判断される。そして、記録が終了している場合には、動作を終了する。一方で、記録が終了していない場合には、ステップST101に戻る。
次に、再生動作について説明を行う。再生動作では、データが記録されたファイルを再生する。
まず、ユーザー操作インターフェイス90が、ユーザーからファイル再生のコマンドを受信する。
ホスト33のファイル処理部38は、ユーザー操作インターフェイス90から上記のコマンドを受信した場合、上記のファイルに含まれる区画の再生順リストをコントローラ34の再生設定部74に設定する。
再生順リストは、区画300における複数のNAND型フラッシュメモリグループのデータ記録の順序を示すリストであるため、当該再生順リストに基づいて再生を行うことによって、ファイルに対応する区画300における複数のNAND型フラッシュメモリグループ間に跨るデータを、受信した順にしたがって再生することができる。
コントローラ34は、再生設定部74に再生順リストが設定されると、当該再生順リストの順にしたがって、NAND型フラッシュメモリグループ、区画、ブロック番号およびページ番号を選択する。そして、コントローラ34は、選択されたNAND型フラッシュメモリから記録されているデータを読み出す。
そして、コントローラ34は、読み出されたデータを通信装置80へ出力する。そうすることによって、ホスト33のファイル処理部38は、上記のファイルを再生させる。
当該区画の再生が完了したら、コントローラ34はホスト33に完了した旨を通知する。そして、ホスト33のファイル処理部38は、次の区画の再生順リストをコントローラ34の再生設定部74に設定する。
ホスト33のファイル処理部38による再生設定部74への区画の設定は、センサーA151、センサーB152およびセンサーC153それぞれについて独立に行われるが、同時に行われてもよい。
この際、どのセンサーのデータから先に再生するかは、ラウンドロビンアルゴリズムなどの任意の優先度アルゴリズムを用いることができる。
次に、ファイル再生のうち、ファイル終端から一定データ量だけ巻き戻した位置からファイルを再生する操作について説明する。
まず、ホスト33のファイル処理部38が、ユーザー操作インターフェイス90から、センサーA151用のファイル(時系列データのファイル)を、ファイル終端から32Kバイトのページ×Nのデータ量だけ巻き戻した位置からファイル終端まで再生するコマンドを受信したものとする。
そうすると、ホスト33のファイル処理部38は、再生順リストの最後のページから32Kバイトのページ×Nのデータ量だけ遡った位置を、再生の開始位置とする。そして、ホスト33のファイル処理部38は、その位置からの再生順リストをコントローラ34の再生設定部74に設定する。
そうすることで、ホスト33のファイル処理部38は、コントローラ34に、ファイルの終端から32Kバイトのページ×Nのデータ量だけ巻き戻した途中の時間位置からの再生を実行させることができる。
上記のような巻き戻し再生は、データが記録されている全ブロック分に対して記録順のソート処理をせずとも、再生順リストが示すデータの記録順序を用いることによって、データの時系列を保ちつつ、ユーザーから要求された任意の開始位置から再生することができるという効果が得られる。
次に、ファイルの分割について説明を行う。まず、ユーザー操作インターフェイス90が、ユーザーからファイル分割のコマンド(具体的には、ファイルをファイル1とファイル2とに2分割するコマンド)を受信する。当該コマンドには、ファイル1のデータ量がパラメータとして付加されている。
ファイルのデータ単位は区画300が最小単位であるので、ファイル1およびファイル2のデータ量のパラメータも区画単位となっている。
よって、ユーザー操作インターフェイス90から上記の分割コマンドを受信したファイル処理部38が、ファイル1を、分割前の元ファイルにおけるデータが記録されている区画300のうちの先頭区画からN番目までの区画とし、ファイル2を、データが記録されている区画のうちの残りの区画とする。
そして、ファイル1のみを再生する場合は、再生順リストの先頭区画からN番目の区画までを再生設定部74へ設定することで、ファイル1のみの再生が実行される。
また、ファイル2のみ再生する場合は、再生順リストの先頭区画からN+1番目の区画から最後の区画までを再生設定部74へ設定することで、ファイル2のみの再生が実行される。
ファイル1とファイル2とでは先にセンサーから入力されたデータはファイル1であり、後にセンサーから入力されたデータはファイル2であるが、上記の方法によれば、ファイル1とファイル2とがお互いに交じり合わない、整合がとれた再生を行うことができる。
ここで、もし区画300の定義がされていないと、NAND型フラッシュメモリグループによって書き込み済みのブロック量が異なることとなってしまう。そのため、センサーから入力された順序情報がファイル1とファイル2とで保たれない。
たとえば、NAND型フラッシュメモリグループ(0)のすべてのブロックにデータが書き込まれた後に、NAND型フラッシュメモリグループ(1)へ移り、さらにNAND型フラッシュメモリグループ(1)のすべてのブロックにデータが書き込まれた後に、NAND型フラッシュメモリグループ(2)さらにはNAND型フラッシュメモリグループ(3)へ移る書き込み方法である場合、それぞれのNAND型フラッシュメモリグループにおけるブロック0からブロックNまでをファイル1とし、それぞれのNAND型フラッシュメモリグループにおけるブロックN+1から最後のブロックまでをファイル2とする分割を考えると、センサーから入力されたデータは、ファイル1とファイル2とに跨ったものとなる。
NAND型フラッシュメモリグループ(0)およびNAND型フラッシュメモリグループ(1)をファイル1とし、NAND型フラッシュメモリグループ(2)およびNAND型フラッシュメモリグループ(3)をファイル2とすればよいが、実際には、それぞれのNAND型フラッシュメモリグループにデータが書き込まれる順序はアルゴリズムによってばらつきが生じるため、グループ間の順序を保ったまま分割することはできない。
一方で、本実施の形態によれば、区画300の定義を用いることによって、ファイルの分割が容易になることを示している。
次に、ファイル消去について説明する。ユーザーは消去したいファイルをファイル番号で指定して、ユーザー操作インターフェイス90からホスト33へコマンドを送信する。
ホスト33は、上記のコマンドを受信すると、ファイル番号で指定されたファイルを構成する区画300のすべてを、コントローラ34の消去設定部75へ設定する。コントローラ34は、消去設定部75に設定された区画のNAND型フラッシュメモリグループおよびブロックをすべて消去する。
ここで、効果1によって、同一区画内において異なるファイルのデータが混じり合わない、または、同一区画内において異なるセンサーのデータが混じり合わないように管理されているため、ファイルを消去する際に、区画内で消去することができない(消去してはいけない)データの有無をチェックする必要がなくなるという効果が得られる。
また、同一区画内において異なるファイルのデータが混じり合わない、同一区画内において異なるセンサーのデータが混じり合わない、または、分割後のファイルが同一区画内で混じり合わないことから、区画内のすべてのブロックを消去することができ、消去することができないデータが残存することによって消去が実行できず、無駄な領域が発生するということもない。
なお、ファイル消去では、分割されたファイルも消去することができる。ユーザーがユーザー操作インターフェイス90から、分割されたファイルのファイル番号を指定し、ホスト33が分割されたファイルに含まれる区画を消去設定部75へ設定することで、コントローラ34は対応する消去を実行することができる。
2つに分割される元ファイルにおける時系列が、分割された2つのファイルに跨ると、片方のファイル(たとえば、ファイル1)を消去すると、残存するファイル(たとえば、ファイル2)は、時系列の中でデータ抜けが生じたファイルとなってしまう。そうすると、時系列が重要となるファイルにおいては価値が損なわれてしまう。
一方で、本実施の形態によれば、区画を定義することによって、分割されたファイルが時系列を保つことができる。また、消去においては、分割された片方のファイルにおいて消去することができないデータが残存するか否かを検索またはチェックせずに、消去することができる効果が得られる。
<第2の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第1の実施の形態ではセンサーが3種類示されていたが、センサーの種類をM種として、インターフェイス部31に接続する形態であってもよい。
その場合、バッファメモリ32は、センサーの種類の数(すなわち、M個)の記録領域を確保する。
なお、複数種のセンサーに関して同一ファイルに記録したい場合は、それらのセンサーからのデータをバッファメモリ32の同じ領域に保存することで、同一のセンサーとして扱うことができるようにしてもよい。
<第3の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第2の実施の形態に加え、記録再生装置30は、複数のコントローラ34を備えることもできる。
そして、複数のコントローラ34それぞれは、インターフェイス部31との間に内部バス36を備える。すなわち、複数の内部バス36がそれぞれ、複数のコントローラ34とインターフェイス部31との間に接続される。
このようにすることで、インターフェイス部31は、M種のセンサーから受信したデータをセンサーごとに複数のコントローラ34に振り分けて転送することができる。
なお、センサーに対応して固定的にコントローラを割り当ててもよいし、適当なアルゴリズムを用いて振り分けてもよい。
<第4の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第3の実施の形態に加え、記録再生装置30は、複数のインターフェイス部31を備えていてもよい。複数のインターフェイス部31はそれぞれ、センサーからのデータを受信する。
図10は、本実施の形態に関する記録再生装置の構成の他の例を概略的に示す図である。図10に例が示されるように、記録再生装置30Aは、インターフェイス部31A、インターフェイス部31B・・・と、バッファメモリ32A、バッファメモリ32B・・・と、ホスト33Aと、コントローラ34A、コントローラ34B・・・と、NAND型フラッシュメモリ群35A、NAND型フラッシュメモリ群35B・・・と、内部バス36AA、内部バス36AB・・・、内部バス36BA、内部バス36BB・・・とを備える。記録再生装置30Aは、たとえば、人工衛星に搭載されるものである。
インターフェイス部31Aは、外部のセンサー51A、外部のセンサー52A、外部のセンサー53A・・・外部のセンサー5MAからセンサー取得データを取得する。
インターフェイス部31Bは、外部のセンサー51B、外部のセンサー52B、外部のセンサー53B・・・外部のセンサー5NBからセンサー取得データを取得する。
バッファメモリ32Aでは、SRAMの内部メモリ(内部RAM)、磁気抵抗メモリ(MRAM)の内部メモリ(内部RAM)、または、FPGAの内部メモリ(内部RAM)などを用いて、外部のセンサー51A、外部のセンサー52A、外部のセンサー53A・・・外部のセンサー5MAそれぞれに対応する領域がアドレスによって区分けされている。
バッファメモリ32Bでは、SRAMの内部メモリ(内部RAM)、磁気抵抗メモリ(MRAM)の内部メモリ(内部RAM)、または、FPGAの内部メモリ(内部RAM)などを用いて、外部のセンサー51B、外部のセンサー52B、外部のセンサー53B・・・外部のセンサー5NBそれぞれに対応する領域がアドレスによって区分けされている。
コントローラ34Aは、フラッシュ制御部70Aと、記録先選択部71Aと、再生順リスト生成部73Aと、再生設定部74Aと、消去設定部75Aとを備える。
コントローラ34Bは、フラッシュ制御部70Bと、記録先選択部71Bと、再生順リスト生成部73Bと、再生設定部74Bと、消去設定部75Bとを備える。
NAND型フラッシュメモリ群35Aとコントローラ34Aとが、メモリバス37Aを通じて接続される。
また、NAND型フラッシュメモリ群35Bとコントローラ34Bとが、メモリバス37Bを通じて接続される。
ホスト33Aは、ファイル処理部38Aと、再生順リスト受信部39Aとを備える。また、ホスト33Aは、ユーザー操作インターフェイス90と接続され、ユーザー操作インターフェイス90からファイル操作の指示を受信する。
複数のインターフェイス部31A、インターフェイス部31B・・・のうちのいずれかからデータが転送されるコントローラを予備系としておき、いずれかのコントローラが故障した際に、故障したコントローラに接続されていたインターフェイス部のデータの転送先を他のコントローラに切り替えることで、故障対策の冗長構成とすることができる。
<第5の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第1の実施の形態では、コントローラに接続されるNAND型フラッシュメモリグループの数は4つとされたが、接続されるNAND型フラッシュメモリグループの数は、任意に変更されてもよい。
また、区画300に含まれるそれぞれのNAND型フラッシュメモリにおけるブロック数は4ブロックとされたが、任意のブロック数に変更されてもよい。
<第6の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第1の実施の形態では、コントローラ34とNAND型フラッシュメモリ群35との間の接続には、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63が用いられていたが、NAND型フラッシュメモリグループをさらに追加する場合、カスケード接続によってNAND型フラッシュメモリグループを増やす方法の他に、メモリバスa160、メモリバスb161、メモリバスc162およびメモリバスd163を用いて、メモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63とは独立したバス接続によって、NAND型フラッシュメモリグループを追加してもよい。
図11は、NAND型フラッシュメモリ群とコントローラとが、メモリバスを通じて接続される方法の他の例を示す図である。
図11に例が示されるように、NAND型フラッシュメモリグループ(0)、NAND型フラッシュメモリグループ(1)、NAND型フラッシュメモリグループ(2)およびNAND型フラッシュメモリグループ(3)におけるNAND型フラッシュメモリ1つずつが接続されたメモリバスa60、メモリバスb61、メモリバスc62およびメモリバスd63が、それぞれコントローラ34と接続されている。
また、他方で、NAND型フラッシュメモリグループ(4)、NAND型フラッシュメモリグループ(5)、NAND型フラッシュメモリグループ(6)およびNAND型フラッシュメモリグループ(7)におけるNAND型フラッシュメモリ1つずつが接続されたメモリバスa160、メモリバスb161、メモリバスc162およびメモリバスd163が、それぞれコントローラ34と接続されている。
<第7の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
コントローラ34における記録先選択部71、消去設定部75および再生設定部74に、ホスト33から区画300を設定する場合、FIFO構造などの、複数の区画300を設定可能なメモリ構造をそれぞれが有してもよい。
そして、設定された区画に対して、それぞれ記録、再生または消去などが完了した場合、それぞれからホスト33にその旨を通知することで、ホスト33は、新たな処理のための区画の設定をそれぞれに対して行う。
<第8の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
実施の形態1に示された構成において、ホスト33は、ファイルの記録、消去または再生の処理の進捗を示すため、それぞれのファイルに記録ポインタ、消去ポインタまたは再生ポインタを保持してもよい。
記録ポインタは、コントローラ34が次にデータを書き込む区画300を示す番号である。
消去ポインタは、コントローラ34が次にデータを消去する区画300を示す番号である。
再生ポインタは、コントローラ34が次にデータを再生する区画300を示す番号である。
記録、再生または消去の区画300に対する処理がホスト33に通知されたら、処理に応じて、当該ファイルの記録ポインタ、消去ポインタまたは再生ポインタを進める。
<第9の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第1の実施の形態に示された構成において、センサーごとにそのセンサーから出力されるデータ量に応じて、区画300の大きさを変えてもよい。
すなわち、高速でデータを出力するセンサーに対しては大きな区画300を設定し、すなわち、設定される区画300に多数のブロックが含まれるようにし、他方で、低速でデータを出力するセンサーに対して小さな区画300を設定する、すなわち、設定される区画300に含まれるブロックを少なくする。
<第10の実施の形態>
本実施の形態に関する記録装置さらには記録再生装置について説明する。なお、以下の説明においては、以上に記載された実施の形態で説明された構成要素と同様の構成要素については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
<記録再生装置の構成について>
第1の実施の形態では、ブロックの順番に区画300を区切っていったが、任意のブロック番号を集めて1つの区画300としてもよい。
これによって、NAND型フラッシュメモリに不良ブロックが発生した場合にも、当該不良ブロックのブロック番号を除去して、有効なブロック番号のみを集めて区画300を定義することができる。
<以上に記載された実施の形態によって生じる効果について>
次に、以上に記載された実施の形態によって生じる効果の例を示す。なお、以下の説明においては、以上に記載された実施の形態に例が示された具体的な構成に基づいて当該効果が記載されるが、同様の効果が生じる範囲で、本願明細書に例が示される他の具体的な構成と置き換えられてもよい。
また、当該置き換えは、複数の実施の形態に跨ってなされてもよい。すなわち、異なる実施の形態において例が示されたそれぞれの構成が組み合わされて、同様の効果が生じる場合であってもよい。
以上に記載された実施の形態によれば、記録装置は、インターフェイス部31と、バッファメモリ32と、コントローラ34とを備える。インターフェイス部31には、複数のセンサー(たとえば、センサーA151、センサーB152およびセンサーC153)から出力されるデータがそれぞれ入力される。バッファメモリ32は、インターフェイス部31に接続される。また、バッファメモリ32は、複数のセンサーごとに分けられたデータの一時記録領域を有する。ここで、一時記録領域は、たとえば、センサーA用領域40、センサーB用領域41およびセンサーC用領域42に対応するものである。コントローラ34は、バッファメモリ32から転送されるデータを複数のNAND型フラッシュメモリ部のうちのいずれかに記録する。ここで、NAND型フラッシュメモリ部は、たとえば、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53のうちのいずれか1つに対応するものである。ここで、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53における消去単位をブロック201とする。また、NAND型フラッシュメモリグループ(0)50、NAND型フラッシュメモリグループ(1)51、NAND型フラッシュメモリグループ(2)52およびNAND型フラッシュメモリグループ(3)53に跨って、それぞれのNAND型フラッシュメモリグループにおける少なくとも1つのブロック201ずつを合わせた記録領域を区画300とする。また、区画300は、複数のセンサーのうちのいずれかに対応づけられる。そして、コントローラ34は、データを出力したセンサーに対応する区画300におけるブロック201に、データを記録する。
このような構成によれば、それぞれのセンサーからのデータがページ単位で転送されるSRAMなどの小容量のバッファメモリを用いる場合であっても、それぞれのセンサーからのデータを当該センサーに対応づけられた区画300において記録するため、異なるセンサーからのデータ同士が混在することを抑制しつつ、データの適切な記録を行うことができる。また、区画300内では異なるセンサーからのデータが混在しないので、それぞれのNAND型フラッシュメモリグループにおける消去単位(すなわち、ブロック201)ごとにデータの消去を行う場合に、ブロック201内に異なるセンサーからのデータが混在することに起因してブロック201全体が消去不可となる事態を避けることができる。したがって、不要なデータがNAND型フラッシュメモリ蓄積することが抑制される。また、区画300の単位でセンサーごとのデータが記録されるため、あるセンサーからのデータを読み出したい場合に、区画300ごとの検索で足りる。よって、検索時間の短縮が可能となる。
なお、本願明細書に例が示される他の構成のうちの少なくとも1つを、以上に記載された構成に適宜追加した場合、すなわち、以上に記載された構成としては言及されなかった本願明細書に例が示される他の構成が適宜追加された場合であっても、同様の効果を生じさせることができる。
また、以上に記載された実施の形態によれば、バッファメモリ32は、それぞれのセンサーごとに、書き込み単位であるページずつデータを転送する。このような構成によれば、バッファメモリ32の容量が小さい場合であっても、それぞれのセンサーからのデータを当該センサーに対応づけられた区画300において記録するため、異なるセンサーからのデータ同士が混在することを抑制しつつ、データの適切な記録を行うことができる。
また、以上に記載された実施の形態によれば、バッファメモリ32は、SRAM、MRAMまたはFPGAである。このような構成によれば、バッファメモリ32の容量が小さい場合であっても、異なるセンサーからのデータ同士が混在することを抑制しつつ、データの適切な記録を行うことができる。
また、以上に記載された実施の形態によれば、NAND型フラッシュメモリグループは、並列アクセスされる複数のNAND型フラッシュメモリ、たとえば、NAND型フラッシュメモリ100、NAND型フラッシュメモリ101、NAND型フラッシュメモリ102およびNAND型フラッシュメモリ103を備える。このような構成によれば、それぞれのNAND型フラッシュメモリグループにおいて並列アクセスされる複数のNAND型フラッシュメモリが備えられることによって、NAND型フラッシュメモリの総容量が増加し、また、高速記録が可能となる。
また、以上に記載された実施の形態によれば、それぞれのNAND型フラッシュメモリグループにおいてブロック201に付された番号をブロック番号とする。また、区画300は、複数のNAND型フラッシュメモリグループに跨って、共通のブロック番号であるブロック201を合わせた記録領域である。このような構成によれば、区画300間の管理が容易となる。
また、以上に記載された実施の形態によれば、センサーごとに複数の区画300が対応づけられる。そして、区画300における少なくとも1つのNAND型フラッシュメモリグループにおけるデータの記録量がしきい値を超えた場合(たとえば、最終ページに達する、または、あらかじめ定められた割合を超えるなど)、コントローラ34は、同一のセンサーに対応づけられている他の区画300におけるブロック201に、データを記録する。このような構成によれば、同一のセンサーからのデータを、時系列を維持しつつ別の区画300に記録することができる。また、センサーごとに対応づけられた区画300がコントローラ34に設定されればよいため、あらかじめ全区画300がコントローラ34に設定される必要はない。よって、コントローラ34に必要とされるメモリが少なくて済む。
また、以上に記載された実施の形態によれば、区画300におけるいずれかのNAND型フラッシュメモリグループにおけるデータの記録量がしきい値を超えた場合、コントローラ34は、区画300内におけるデータの記録順序を示す順序リストを作成する。ここで、順序リストは、たとえば、再生順リストに対応するものである。このような構成によれば、区画300内のデータを読み出す場合、さらには、当該データから作成されたファイルを再生する場合に、再生順リストにしたがって読み出しまたは再生を行うことによって、複数のNAND型フラッシュメモリグループに跨るランダムな書き込みが行われた場合であっても、書き込み時の時系列を維持しつつ、読み出しまたは再生を行うことができる。
また、以上に記載された実施の形態によれば、インターフェイス部31が、バッファメモリ32から転送されるデータに、対応するセンサーを示す情報である区別情報を付加する。そして、コントローラ34は、区別情報に基づいて、対応する区画300におけるブロック201に、データを記録する。このような構成によれば、コントローラ34は、いずれのセンサーからのデータであるかを確認しつつ、対応する区画300におけるブロック201に、当該データを記録することができる。
また、以上に記載された実施の形態によれば、コントローラ34は、区画300における、アイドル状態であるNAND型フラッシュメモリグループのブロック201に、データを記録する。このような構成によれば、書き込み中または読み出し中などでビジー状態であるNAND型フラッシュメモリグループを避けて、データを記録することができる。
また、以上に記載された実施の形態によれば、記録装置は、ファイル処理部38を備える。ファイル処理部38は、同一のセンサーに対応する少なくとも1つの区画300に記録されたデータから、ファイルを作成する。このような構成によれば、同一のセンサーに対応する複数の区画300に跨るデータを有するファイルを作成することができる。
また、以上に記載された実施の形態によれば、ファイル処理部38は、順序リスト(すなわち、再生順リスト)が示すデータの記録順序に基づいて、区画300内に記録されたデータを読み出す。このような構成によれば、短い転送周期に起因してNAND型フラッシュメモリグループ間でランダムに記録された、複数の区画300に跨るデータであっても、再生順リストにしたがってデータを読み出すことによって、書き込み時の時系列を維持しつつ読み出しを行うことができる。
また、以上に記載された実施の形態によれば、ファイルには、時系列データが記録される。そして、ファイル処理部38は、順序リスト(すなわち、再生順リスト)が示すデータの記録順序に基づいて、ファイルにおける時系列データを、途中の時間位置から再生する。このような構成によれば、再生順リストを用いてファイルにおける特定のデータの記録順序を参照することができるため、ファイル内の全データを検索してから指示された再生位置を算出する必要がない。
また、以上に記載された実施の形態によれば、ファイル処理部38は、ファイルを区画300の単位で分割する。このような構成によれば、区画300の単位でデータの時系列が維持されているため、分割後のそれぞれのファイルにおいても、時系列が維持される(2つのファイルに跨って、データの時系列が前後することがない)。また、分割位置のアドレスをファイル内の全ページから算出する必要がなくなるため、分割位置の算出を高速化することができる。また、区画300の単位で分割されるため、同じブロック201内に複数のファイルに帰属するデータが混在しているために消去することができないという事態が生じない。
以上に記載された実施の形態によれば、記録再生装置は、複数のセンサーから出力されるデータがそれぞれ入力されるインターフェイス部31と、インターフェイス部31に接続され、かつ、複数のセンサーごとに分けられたデータの一時記録領域を有するバッファメモリ32と、バッファメモリ32から転送されるデータを複数のNAND型フラッシュメモリ部のうちのいずれかに記録するためのコントローラ34と、同一のセンサーに対応する少なくとも1つの区画300に記録されたデータから、ファイルを作成しまたは作成された前記ファイルを再生するファイル処理部38とを備える。そして、それぞれのNAND型フラッシュメモリ部における消去単位をブロック201とし、複数のNAND型フラッシュメモリ部に跨って、それぞれのNAND型フラッシュメモリ部における少なくとも1つのブロック201ずつを合わせた記録領域を区画300とし、区画300は、複数のセンサーのうちのいずれかに対応づけられる場合に、コントローラ34は、データを出力したセンサーに対応する区画300におけるブロック201に、データを記録する。そして、ファイル処理部38は、順序リストが示すデータの記録順序に基づいて、区画300内に記録されたデータを読み出す。
このような構成によれば、それぞれのセンサーからのデータがページ単位で転送されるSRAMなどの小容量のバッファメモリを用いる場合であっても、それぞれのセンサーからのデータを当該センサーに対応づけられた区画300において記録するため、異なるセンサーからのデータ同士が混在することを抑制しつつ、データの適切な記録を行うことができる。そして、区画300内のデータを読み出す場合、さらには、当該データから作成されたファイルを再生する場合に、再生順リストにしたがって読み出しまたは再生を行うことによって、複数のNAND型フラッシュメモリグループに跨るランダムな書き込みが行われた場合であっても、書き込み時の時系列を維持しつつ、読み出しまたは再生を行うことができる。
なお、本願明細書に例が示される他の構成のうちの少なくとも1つを、以上に記載された構成に適宜追加した場合、すなわち、以上に記載された構成としては言及されなかった本願明細書に例が示される他の構成が適宜追加された場合であっても、同様の効果を生じさせることができる。
<以上に記載された実施の形態における変形例について>
以上に記載された実施の形態では、それぞれの構成要素の寸法、形状、相対的配置関係または実施の条件などについても記載する場合があるが、これらはすべての局面においてひとつの例であって、本願明細書に記載されたものに限られることはないものとする。
したがって、例が示されていない無数の変形例、および、均等物が、本願明細書に開示される技術の範囲内において想定される。たとえば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの実施の形態における少なくとも1つの構成要素を抽出し、他の実施の形態における構成要素と組み合わせる場合が含まれるものとする。
また、矛盾が生じない限り、以上に記載された実施の形態において「1つ」備えられるものとして記載された構成要素は、「1つ以上」備えられていてもよいものとする。
また、本願明細書における説明は、本技術に関連するすべての目的のために参照され、いずれも、従来技術であると認めるものではない。
また、以上に記載された実施の形態で記載されたそれぞれの構成要素は、ソフトウェアまたはファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、それぞれの構成要素は「部」または「処理回路」(circuitry)などと称される。
本願明細書に開示される技術の第1の態様は、複数のセンサーから出力されるデータがそれぞれ入力されるインターフェイス部と、前記インターフェイス部に接続され、かつ、複数の前記センサーごとに分けられた前記データの一時記録領域を有するバッファメモリと、前記バッファメモリから転送される前記データを複数のNAND型フラッシュメモリ部のうちのいずれかに記録するためのコントローラとを備え、それぞれの前記NAND型フラッシュメモリ部における消去単位をブロックとし、複数の前記NAND型フラッシュメモリ部に跨って、それぞれの前記NAND型フラッシュメモリ部における少なくとも1つの前記ブロックずつを合わせた記録領域を区画とし、前記区画は、複数の前記センサーのうちのいずれかに対応づけられ、前記コントローラは、前記データを出力した前記センサーに対応する前記区画における前記ブロックに、前記データを記録し、前記NAND型フラッシュメモリ部は、並列アクセスされる複数のNAND型フラッシュメモリを備え、前記コントローラは、複数の前記NAND型フラッシュメモリ部のそれぞれに対し、排他的に制御可能である。