JP2007156582A - メモリコントローラ及びフラッシュメモリシステム - Google Patents

メモリコントローラ及びフラッシュメモリシステム Download PDF

Info

Publication number
JP2007156582A
JP2007156582A JP2005347358A JP2005347358A JP2007156582A JP 2007156582 A JP2007156582 A JP 2007156582A JP 2005347358 A JP2005347358 A JP 2005347358A JP 2005347358 A JP2005347358 A JP 2005347358A JP 2007156582 A JP2007156582 A JP 2007156582A
Authority
JP
Japan
Prior art keywords
flash memory
access
lba
sectors
host system
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.)
Granted
Application number
JP2005347358A
Other languages
English (en)
Other versions
JP4661566B2 (ja
Inventor
Yukio Terasaki
幸夫 寺崎
Takeshi Kamono
武志 鴨野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2005347358A priority Critical patent/JP4661566B2/ja
Publication of JP2007156582A publication Critical patent/JP2007156582A/ja
Application granted granted Critical
Publication of JP4661566B2 publication Critical patent/JP4661566B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】データの書き込みが特定のフラッシュメモリに集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
【解決手段】ホストシステムから指定可能なアクセス対象領域の全域を2セクタ(mは0以上の整数)の振り分け単位に分割し、この振り分け単位が2 個のフラッシュメモリコントローラに順次割り当てられるように対応関係を管理し、この対応関係に従ってホストシステムから与えられるアクセス指示を2 個のフラッシュメモリコントローラに振り分ける。振り分け先の判別に、アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを使用する。
【選択図】図4

Description

本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。
このような機器が扱うデータが大容量化したことに伴い、複数のフラッシュメモリの記憶容量も大容量化が進んでいる。このように大容量化したフラッシュメモリの記憶領域を円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている(例えば特許文献1を参照)。
さらに、近年では、複数のフラッシュメモリを並列して使用することが行われている。
複数のフラッシュメモリを使用する場合には、ホストシステム側の論理アドレス空間を複数のフラッシュメモリで均等に分割して割り当てている。
例えば、フラッシュメモリが2個配置されている場合には、ホストシステムから与えられるLBA(Logical Block Address)の上位nビットを用いて、フラッシュメモリの1つを特定し、その上位nビットを除いたLBAの下位ビットで、フラッシュメモリ内の物理アドレス空間におけるアドレスを特定している。
特開2005−18490号公報
各フラッシュメモリにこのようにして論理アドレス空間を割り当てた場合、LBAが特定の範囲にあるセクタ(例えば、ファイルアロケーションテーブルが格納されるセクタ等)にデータの書き込みや書き換えが集中すれば、そのLBAが割り当てられたフラッシュメモリに書き込みが集中して、そのフラッシュメモリの劣化(不良ブロック化)だけが極端に早まる、という問題が生じることがある。
本発明は上記の実情に鑑みてなされたもので、データの書き込みが特定のフラッシュメモリに集中することを回避できる複数のフラッシュメモリをアクセスするためのメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
上記目的を達成するため、本発明のメモリコントローラは、1又は複数セクタのアクセス対象領域を指定した第1のアクセス指示に応答してフラッシュメモリにアクセスする2 個(nは1以上の整数)のフラッシュメモリアクセスコントローラと、
ホストシステムから与えられる1又は複数セクタのアクセス対象領域を指定した第2のアクセス指示に基づいて2 個の前記フラッシュメモリコントローラに前記第1のアクセス指示を与えるアクセスコントローラとを備え、
前記アクセスコントローラは、前記ホストシステムから指定可能なアクセス対象領域の全域を2セクタ(mは0以上の整数)の振り分け単位に分割し、該振り分け単位が2 個の前記フラッシュメモリコントローラに順次割り当てられるように対応関係を管理し、該対応関係に従って前記第2のアクセス指示に基づくアクセス対象領域を第1のアクセス指示に基づくアクセス対象領域に振り分けることを特徴とする。
又、アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを、振り分け先の前記フラッシュメモリコントローラを判別するために使用してもよい。
又、アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスから、該アドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを除いたアドレスを、振り分け先の前記フラッシュメモリコントローラに与えてもよい。
また、1セクタ(m=0の場合)の振り分け単位で2 個の前記フラッシュメモリコントローラに順次割り当てられるようにした場合には、前記ホストシステムから与えられるアドレスの下位nビットで振り分け先の前記フラッシュメモリコントローラを判別することができるので、振り分け先の前記フラッシュメモリコントローラの判別や振り分け先の前記フラッシュメモリコントローラに与えるアドレスの生成をより簡易に行うことができる。
フラッシュメモリシステムを上述のメモリコントローラと、複数のフラッシュメモリと、から構成してもよい。
上記目的を達成するため、本発明のアクセスコントローラは、1又は複数セクタのアクセス対象領域を指定した第1のアクセス指示に応答してフラッシュメモリにアクセスする2 個(nは1以上の整数)のフラッシュメモリアクセスコントローラに対して、前記第1のアクセス指示を与えるアクセスコントローラであって、
ホストシステムから与えられる1又は複数セクタのアクセス対象領域を指定した第2のアクセス指示に基づいて2 個の前記フラッシュメモリコントローラに前記第1のアクセス指示を与えるアクセス処理割振り手段を備え、
前記アクセス処理割振り手段は、前記ホストシステムから指定可能なアクセス対象領域の全域を2セクタ(mは0以上の整数)の振り分け単位に分割し、該振り分け単位が2 個の前記フラッシュメモリコントローラに順次割り当てられるように対応関係を管理し、該対応関係に従って前記第2のアクセス指示に基づくアクセス対象領域を第1のアクセス指示に基づくアクセス対象領域に振り分けることを特徴とする。
又、アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを、振り分け先の前記フラッシュメモリコントローラを判別するために使用してもよい。
又、アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスから、該アドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを除いたアドレスを、振り分け先の前記フラッシュメモリコントローラに与えてもよい。
本発明によれば、データの書き込みが特定のフラッシュメモリに集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムが実現される。つまり、LBAで特定される論理アドレス空間を任意のセクタ数単位で複数のフラッシュメモリに順次割り当てるようにしたので、LBAの特定の範囲にアクセスアクセスが集中した場合でも、複数のフラッシュメモリにアクセスが分散され、特定のフラッシュメモリにアクセスが集中することを回避することができる。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、2台(図1では4=2台)のフラッシュメモリ装置2(2A〜2D)と、それを制御するアクセスコントローラ3で構成されている。
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ装置2A〜2Dは、互いに同一の構成を有する記憶装置であり、アクセスコントローラ3を上位装置として、フラッシュメモリ(チップ)へのアクセスを行う。
アクセスコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリ装置インターフェースブロック10と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるアクセスコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、アクセスコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリ装置インターフェースブロック10に供給し、フラッシュメモリ装置インターフェースブロック10に処理を実行させる。
ホストインターフェースブロック7は、図3(a)に示すようにコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えており、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
ワークエリア8は、フラッシュメモリ装置2A〜2Dの制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ9は、フラッシュメモリ装置2A〜2Dからそれぞれ読み出されたデータ及びフラッシュメモリ装置2A〜2Dに書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ装置2A〜2Dから読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ領域9に保持され、フラッシュメモリ装置2A〜2Dに書き込むべきデータは、フラッシュメモリ装置2A〜2Dが書き込み可能な状態となるまでバッファ領域9に保持される。
フラッシュメモリ装置インターフェースブロック10は、内部バス14を介して、フラッシュメモリ装置2A〜2Dとデータ、アドレス情報、ステータス情報、外部コマンド等の授受を行う。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。
次に、フラッシュメモリ装置2A〜2Dについて説明する。
フラッシュメモリ装置2A〜2Dは、互いに同一の構成を有している。図2に、例として、フラッシュメモリ装置2Aの構成を示す。
各フラッシュメモリ装置2Aは、図2に示すように、フラッシュメモリ202と、それを制御するフラッシュメモリアクセスコントローラ203で構成されている。
フラッシュメモリアクセスコントローラ203は、図2に示すように、マイクロプロセッサ206と、アクセスコントローラインターフェースブロック207と、ワークエリア208と、バッファ209と、フラッシュメモリインターフェースブロック210と、ECC(エラー・コレクション・コード)ブロック211と、ROM(Read Only Memory)212と、から構成され、内部バス14を介してアクセスコントローラ3と接続される。これら機能ブロックによって構成されるフラッシュメモリコントローラ203は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ206は、ROM212に記憶されているプログラムに従って、フラッシュメモリアクセスコントローラ203の全体の動作を制御する。例えば、マイクロプロセッサ206は、各種処理等を定義したコマンドセットをROM212から読み出してフラッシュメモリインターフェースブロック210に供給し、フラッシュメモリインターフェースブロック210に処理を実行させる。
アクセスコントローラインターフェースブロック207は、図3(b)に示すようにコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23を備えており、アクセスコントローラ3との間で、データ、アドレス情報、ステータス情報、コマンド等の授受を行なう。アクセスコントローラ3よりフラッシュメモリ装置2Aに供給されるデータ等は、アクセスコントローラインターフェースブロック207を入口としてフラッシュメモリ装置2Aの内部(例えば、バッファ209)に取り込まれる。また、フラッシュメモリ装置2Aからアクセスコントローラ3に供給されるデータ等は、アクセスコントローラインターフェースブロック207を出口としてアクセスコントローラ3に供給される。
ワークエリア208は、フラッシュメモリ202の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ209は、フラッシュメモリ202からそれぞれ読み出されたデータ及びフラッシュメモリ202に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ202から読み出されたデータは、アクセスコントローラ3が受け取り可能な状態となるまでバッファ209に保持され、フラッシュメモリ202に書き込むべきデータは、フラッシュメモリ202が書き込み可能な状態となるまでバッファ209に保持される。
フラッシュメモリインターフェースブロック210は、内部バス214を介して、フラッシュメモリ202とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
ECCブロック211は、フラッシュメモリ202に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM212は、マイクロプロセッサ206による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM212は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
このように構成されるフラッシュメモリシステム1において、ホストシステム4がフラッシュメモリ202(フラッシュメモリ装置2A〜2D内のフラッシュメモリ202)に格納されているデータを読み出す場合、ホストシステム4は、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2に、読み出すデータのセクタ数を設定し、LBAレジスタR3に、読み出すデータのLBA(Logical Block Address)の先頭値を設定し、その後、コマンドレジスタR1に、読み出し処理を指示する外部コマンドを設定する。ここで、ホストシステム4から与えられるLBAは、ホストシステム4側で管理されている論理アドレス空間におけるセクタ(512バイト)単位のアドレスである。
アクセスコントローラ3は、読み出し処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、各フラッシュメモリ装置2A〜2Dに対する読み出し処理の割振りを開始する。
この読み出し処理の割振りにおいて、アクセスコントローラ3は、各フラッシュメモリ装置2A〜2Dに割り振られるアクセス対象データの、各フラッシュメモリ装置2A〜2D内での先頭セクタのLBAとセクタ数(データ量)とを求める。続いて、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に、各フラッシュメモリ装置2A〜2Dから読み出すデータのセクタ数を設定し、各フラッシュメモリ装置2A〜2DのLBAレジスタR23に、各フラッシュメモリ装置2A〜2Dから読み出すデータのLBAの先頭値を設定し、その後、各フラッシュメモリ装置2A〜2DのコマンドレジスタR21に、読み出し処理を指示する外部コマンドを設定する。
各フラッシュメモリ装置2A〜2Dは、読み出し処理を指示する外部コマンドが、コマンドレジスタR21に設定されると、読み出し処理を開始する。
同様に、ホストシステム4がフラッシュメモリ202(フラッシュメモリ装置2A〜2D)にデータを書き込む場合、ホストシステム4は、ホストインターフェースブロック7のセクタ数レジスタR2に、書き込むデータのセクタ数を設定し、LBAレジスタR3に、書き込むデータのLBAの先頭値を設定し、その後、コマンドレジスタR1に、書き込みを指示する外部コマンドを設定する。その後、書き込み対象のデータを順次送信する。
アクセスコントローラ3は、書き込み処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、各フラッシュメモリ装置2A〜2Dに対する書き込み処理の割振りを開始する。
この書き込み処理の割振りにおいて、アクセスコントローラ3は、各フラッシュメモリ装置2A〜2Dに割り振られる書き込み対象データの、各フラッシュメモリ装置2A〜2D内での先頭セクタのLBAとセクタ数(データ量)とを求める。続いて、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に、各フラッシュメモリ装置2A〜2Dに書込むデータのセクタ数を設定し、各フラッシュメモリ装置2A〜2DのLBAレジスタR23に、各フラッシュメモリ装置2A〜2Dに書き込むデータのLBAの先頭値を設定し、その後、各フラッシュメモリ装置2A〜2DのコマンドレジスタR21に、書き込み処理を指示する外部コマンドを設定する。
さらに、アクセスコントローラ3は、ホストシステム4から供給されるデータ(書き込み対象データ)を対応するフラッシュメモリ装置2A〜2Dに割り振って供給する。
各フラッシュメモリ装置2A〜2Dは、書き込み処理を指示する外部コマンドが、コマンドレジスタR21に設定されると、書き込み処理を開始する。
図2に示すフラッシュメモリ202は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ202は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
フラッシュメモリ202のメモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
このようなフラッシュメモリ202のアドレス空間を図4に示す。フラッシュメモリ202のアドレス空間は、“ページ”及び“ブロック(物理ブロック)”で構成されている。
ページは、フラッシュメモリ202にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ202にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。図示したフラッシュメモリでは、1つのページは、1セクタ(512バイト)のユーザ領域25と、16バイトの冗長領域26で構成され、1つの物理ブロックは32個のページで構成されている。なお、1つのページが4セクタのユーザ領域と64バイトの冗長領域で構成され、1つの物理ブロックが64個のページで構成されているフラッシュメモリもある。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。
次に、上記構成のフラッシュメモリシステム1のアクセスコントローラ3によって行われるアクセス対象の割振りについて説明する。
本実施の形態においては、アクセスコントローラ3が、LBAによって指定される各セクタを、設定されている対応関係に従って、4つのフラッシュメモリ装置2A〜2Dに順番に割り振っている。この様にすることにより、特定のフラッシュメモリ装置2A〜2D、つまり、特定のフラッシュメモリ202にアクセスが集中することを防止している。
例えば、図5(a)に示すように、ホストシステム4から与えられるLBAを16ビットとして、この割振りを説明する。又、以下の説明では、フラッシュメモリ202の物理ブロックが32ページで構成され、1ページが1セクタ(512バイト)に対応するものとして説明する。
割振りを行わなかった場合、つまり、フラッシュメモリシステムが1個のフラッシュメモリ装置で構成されていた場合、LBAの上位11ビットが、論理ブロックに付けられた通番である論理ブロック番号LBNを示し、下位5ビットが、論理ブロック内のセクタに付けられた通番であるセクタ番号SNを示していると判別する。
又、複数の論理ブロックで論理ゾーンを形成して、論理ゾーン単位でアドレス変換を行う場合には、論理ブロック番号LBNを、論理ゾーンに含まれる論理ブロックの数で割った商が論理ゾーン番号(論理ゾーンに付けられた通番)LZNとなり、余りが論理ゾーン内ブロック番号(論理ゾーン内での論理ブロックの通番)LZIBNになる。尚、物理ブロックの各ページには、セクタ番号の順番でデータが格納されるので、1ページが1セクタのフラッシュメモリの場合、セクタ番号SNとページ番号(物理ブロック内のページに付けられた通番)PNとは一致する。
又、この割振りを行わないで、ホストシステム側の論理ブロック空間を複数のフラッシュメモリ装置に割り当てる場合には、論理アドレス空間を各フラッシュメモリ装置に割り当てられるセクタ数に応じて分割し、分割した論理アドレス空間が各フラッシュメモリ装置に割り当てられる。例えば、各フラッシュメモリ装置に128000セクタ(4000個の論理ブロック)を割り当てる場合、LBA#0〜#127999のセクタが最初のフラッシュメモリ装置に割り当てられ、LBA#128000〜#255999のセクタが次のフラッシュメモリ装置に割り当てられる。
これに対して、本実施の形態では、図5(a)に示すように、16ビットのLBAの下位から1ビット目と2ビット目の2ビットをフラッシュメモリ装置2A〜2Dを判別するための装置番号AN#0〜#3とし、この2ビットを除いた14ビットのLBA’を各フラッシュメモリ装置2A〜2Dに与えるセクタ単位のアドレスとしている。各フラッシュメモリ装置2A〜2Dは、LBA’の上位9ビットが論理ブロック番号LBNを示すと判別し、下位5ビットがセクタ番号SN(0〜31)を示すと判別してフラッシュメモリ202にアクセス処理を行う。尚、図5(a)では、LBAを16ビットで示したが、それより多いビット数の場合も、LBAの下位2ビットを除いたLBA’が各フラッシュメモリ装置2A〜2Dに与えられ、LBA’の下位5ビットを除いた上位ビットが論理ブロック番号LBNを示すと判別される。
このような判別をおこなうことにより、図5(b)に示すように、LBAが連続する複数のセクタが、1セクタ単位で、フラッシュメモリ装置2A〜2Dに順次割り振られる。ここで、装置番号AN#0がフラッシュメモリ装置2Aに対応し、装置番号AN#1がフラッシュメモリ装置2Bに対応し、装置番号AN#2がフラッシュメモリ装置2Cに対応し、装置番号AN#3がフラッシュメモリ装置2Dに対応するものとする。
この様に割り振ることにより、各フラッシュメモリ装置2A〜2Dでアクセスされるデータのセクタ数は、ホストシステム4から指示された総セクタ数の1/4になる。ただし、総セクタ数が4の倍数以外の値の場合には、総セクタ数を4で割った余りが、1セクタずつフラッシュメモリ装置2A〜2Dに、ホストシステム4から指示された先頭セクタのLBAに対応するフラッシュメモリ装置から順番に割り振られる。
つまり、先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、余りが1の場合は、フラッシュメモリ装置2Aでアクセスされるデータのセクタ数だけが1セクタ加算され、余りが2の場合は、フラッシュメモリ装置2A、2Bでアクセスされるデータのセクタ数が1セクタ加算され、余りが3の場合は、フラッシュメモリ装置2A〜2Cでアクセスされるデータのセクタ数が1セクタ加算される。又、先頭セクタのLBAにフラッシュメモリ装置2Bが対応し、余りが1の場合は、フラッシュメモリ装置2Bでアクセスされるデータのセクタ数だけが1セクタ加算され、余りが2の場合は、フラッシュメモリ装置2B、2Cでアクセスされるデータのセクタ数が1セクタ加算され、余りが3の場合は、フラッシュメモリ装置2B〜2Dでアクセスされるデータのセクタ数が1セクタ加算される。
例えば、ホストシステム4から指示された先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、ホストシステム4から指示されたアクセス対象の総セクタ数が5であれば、5÷4の商が1、余りが1なので、フラッシュメモリ装置2Aでアクセスされるデータのセクタ数は2セクタとなり、フラッシュメモリ装置2B〜2Dでアクセスされるデータのセクタ数は1セクタとなる。同様に、ホストシステム4から指示された先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、ホストシステム4から指示されたアクセス対象の総セクタ数が14であれば、14÷4の商が3、余りが2なので、フラッシュメモリ装置2A、2Bでアクセスされるデータのセクタ数は4セクタとなり、フラッシュメモリ装置2C、2Dでアクセスされるデータのセクタ数は3セクタとなる。
このセクタ数が、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に設定される。
また、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のLBAレジスタR23には、アクセスコントローラ3のホストインターフェースブロック7のLBAレジスタR3に設定されるLBAのうち、装置番号ANに対応する下位2ビットを除去した上位14ビットのLBA’が設定される。
但し、ホストシステム4から指示された先頭セクタのLBAが、フラッシュメモリ装置2Aに対応しない場合、例えば、フラッシュメモリ装置2Cに対応する場合は、1セクタ目の割振りでフラッシュメモリ装置2Dに対応する装置番号#3からフラッシュメモリ装置2Aに対応する装置番号#0に移るときにLBAの3ビット目に繰り上がりが生じるので、フラッシュメモリ装置2C、2DのLBA’を#iとした場合、フラッシュメモリ装置2A、2BのLBA’は#i+1となる。尚、図5(a)では、LBAを16ビットで示したが、それより多いビット数の場合も、LBAの下位2ビットを除いたLBA’が各フラッシュメモリ装置2A〜2DのLBAレジスタR23に設定される。
例えば、ホストシステム4からの読み出し処理で、アクセス対象の先頭セクタのLBAが「1000 0000 1010 1000」(2進数)であり、アクセス対象の総セクタ数が「63」である場合について、これらの設定を具体的に説明する。
この場合、図6(a)に示すように、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2には、「63」が設定され、LBAレジスタR3には、「1000 0000 1010 1000」(2進数)が設定され、コマンドレジスタR1に「外部読み出しコマンド」が設定される。ここで、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1000」の下位2ビットは「00」(装置番号ANが#0)なので、この先頭セクタのLBAはフラッシュメモリ装置2Aに対応する。
又、63÷4の商が15、余りが3なので、フラッシュメモリ装置2A〜2Cのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のセクタ数レジスタR22には、図6(b)に示すように、「16」が設定され、フラッシュメモリ装置2Dのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のセクタ数レジスタR22には、図6(c)に示すように、「15」が設定される。
又、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1000」の下位2ビットを除いたLBA’「1000 0000 1010 10」が、図6(b)、(c)に示すように、フラッシュメモリ装置2A〜2Dのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のLBAレジスタR23に設定される。
次に、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、各フラッシュメモリ装置2A〜2Dで実行されるアクセス処理について説明する。
尚、各フラッシュメモリ装置2A〜2Dでは同様の処理が実行されるので、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に図6(b)に示したような情報が設定されたときに、フラッシュメモリ装置2Aで実行される処理を例として説明する。
フラッシュメモリ装置2Aは、セクタ数レジスタR22に設定されたセクタ数「16」及びLBAレジスタR23に設定されたLBA’「1000 0000 1010 10」に基づいて、フラッシュメモリ202内のアクセス対象領域(アクセス対象の物理ブロック及びその物理ブロック内のアクセス対象ページ)を特定する。
アクセス対象領域を特定する場合には、LBA’「1000 0000 1010 10」が論理ブロック番号LBNを示す部分とセクタ番号SNを示す部分とに分離され、論理ブロック番号LBNが物理ブロックアドレスPBAに変換(以下、論理ブロック番号LBNから物理ブロックアドレスPBAへの変換をアドレス変換と言う。)される。このアドレス変換処理は、論理ブロックと物理ブロックの対応関係を示したアドレス変換テーブルを参照して行われる。
尚、このアドレス変換テーブルは、各物理ブロックの先頭ページの冗長領域に書込まれている論理アドレス情報(通常は論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)に基づいて作成される。又、アドレス変換テーブルは、複数の論理ブロックを集めた論理ゾーンと複数の物理ブロックを集めた物理ゾーンを構成し、対応する論理ゾーンと物理ゾーンを1単位として作成するようにしてもよい。
例えば、500個の論理ブロックを含む論理ゾーンを512個の物理ブロックを含む物理ゾーンに割り当てたり、1000個の論理ブロックを含む論理ゾーンを1024個の物理ブロックを含む物理ゾーンに割り当てたりする。
論理ブロックはアドレス変換をする単位であり、1個の論理ブロックを1個の物理ブロックに対応させる場合は、1個の論理ブロックと1個の物理ブロックのデータ容量を一致させ、1個の論理ブロックを2個の物理ブロックに対応させる場合(例えば、2個の物理ブロックを仮想的に1個の物理ブロックと見做して取り扱う場合)は、1個の論理ブロックと2個の物理ブロックのデータ容量を一致させる。従って、1個の論理ブロックを1個の物理ブロックに対応させる構成で、1個の物理ブロックが32個のページで構成され、1ページが1セクタに対応する場合、1個の論理ブロックは32セクタに対応する。
ここでは、1個の論理ブロックを32セクタとしているので、下位5ビット「010 10」がセクタ番号SNとなり、これを除いた上位9ビット「1000 0000 1」が論理ブロック番号LBNとなる。尚、図6(b)に示した設定では、アクセス対象のLBA’からLBA’+15までの16セクタが同一の論理ブロックに属しているので、アドレス変換は1回行えばよいが、このアクセス対象が異なる2個以上の論理ブロックに属している場合は、論理ブロック毎にアドレス変換が行われる。例えば、LBA’からLBA’+10までの11セクタがLBN#nの論理ブロックに属し、LBA’+11からLBA’+15までの5セクタがLBN#n+1の論理ブロックに属する場合は、LBN#nのアドレス変換とLBN#n+1のアドレス変換を行わなければならない。
アドレス変換で求められた物理ブロックアドレスPBA(LBA’の論理ブロック番号LBNと対応する物理ブロックアドレスPBA)、LBA’の下位5ビットのセクタ番号SN、アクセス対象のセクタ数「16」が、フラッシュメモリインターフェースブロック210内のレジスタ(以下、物理ブロックアドレスPBAが設定されるレジスタをPBAレジスタと言い、セクタ番号SNが設定されるレジスタをページ番号レジスタと言い、アクセス対象のセクタ数が設定されるレジスタをカウントレジスタと言う。)に設定され、これらの設定値に基づいてフラッシュメモリ202に対するアクセス処理が行われる。尚、アクセスコントローラインターフェースブロック207のコマンドレジスタR21に読み出し処理コマンドが設定されている場合は、その読み出し処理コマンドに対応するコマンドセットがROM211から読み出され、読み出したコマンドセットに基づいて処理が実行される。
このフラッシュメモリインターフェースブロック210内のレジスタに設定された設定値に基づく読み出し処理では、フラッシュメモリ202に対して読み出しを指示する内部読み出しコマンドと読み出すデータのアドレスを指示するアドレス情報が供給される。このアドレス情報は、PBAレジスタに設定されている物理ブロックアドレスPBAの下位側にページ番号レジスタに設定されている設定値(初期値はセクタ番号SN)を付加することにより生成される。この内部読み出しコマンドとアドレス情報の供給に応答してフラッシュメモリ202から出力される読み出しデータは、ECCブロックで誤りの検出と訂正が行われ、バッファ209に保持される。
この様にして、1ページ分のデータが読み出される毎に、カウントレジスタに設定されている設定値をデクリメント(1ずつ減算)し、デクリメント後の設定値が「0」でない場合は、ページ番号レジスタに設定されている設定値をインクリメント(1ずつ加算)した後に新たな内部読み出しコマンドとアドレス情報を供給する。この処理をカウントレジスタに設定されている設定値が「0」になるまで続けることにより、PBAレジスタに設定されている物理ブロックアドレスPBAによって特定される物理ブロック内の「010 10」(10ページ目)から「110 01」(25ページ目)までの16ページ分のデータが読み出される。
各フラッシュメモリ装置2A〜2Dのバッファ209に保持された読み出しデータは、内部バス14を介して、LBAが若い方から順番にアクセスコントローラ3のバッファ9に転送される。バッファ9に保持された読み出しデータは、外部バス13を介して、LBAが若い方から順番にホストシステム4に供給される。
ここで、LBA’の下位側に装置番号ANを付加したものがLBAなので、図6(a)にしたようにアクセス対象の先頭セクタのLBAがフラッシュメモリ装置2Aに対応している場合には、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2Dの順番で読み出しデータを各フラッシュメモリ装置2A〜2Dのバッファ209からアクセスコントローラ3のバッファ9にセクタ単位で転送する。つまり、フラッシュメモリ装置2AでLBA’が先頭のデータ、フラッシュメモリ装置2BでLBA’が先頭のデータ、フラッシュメモリ装置2CでLBA’が先頭のデータ、フラッシュメモリ装置2DでLBA’が先頭のデータ、フラッシュメモリ装置2AでLBA’が2番目のデータ、フラッシュメモリ装置2BでLBA’が2番目のデータ、フラッシュメモリ装置2CでLBA’が2番目のデータ、フラッシュメモリ装置2DでLBA’が2番目のデータ・・・という順番で転送される。
次に、ホストシステム4からの書き込み処理について説明する。この場合、コマンドレジスタR1に「外部書き込み処理コマンド」が設定されるが、セクタ数レジスタR2とLBAレジスタR3には、読み出し処理の場合と同様に、アクセス対象の総セクタ数とアクセス対象の先頭セクタのLBAが設定される。
書き込み処理の場合も、各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りは、読み出し処理の場合と同様に行われる。つまり、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22及びLBAレジスタR23には、読み出し処理の場合と同様に各フラッシュメモリ装置2A〜2Dにおけるアクセス対象のセクタ数とLBA’が設定される。又、この各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りに従って、書き込みデータもアクセスコントローラ3のバッファ9から各フラッシュメモリ装置2A〜2Dのバッファ209に転送される。
各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、バッファ209に保持されている書き込みデータをフラッシュメモリ202に書き込む。尚、追加書き込みができずに空きブロックにバッファ209に保持されている書き込みデータを書き込む場合は、その空きブロックの冗長領域に、各フラッシュメモリ装置2A〜2Dに与えられたLBA’に基づいた論理アドレス情報(論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)が書き込まれる。
以上で説明したように、本実施の形態のフラッシュメモリシステム1では、ホストシステム4から与えられるLBAの最下位2ビットを4つのフラッシュメモリシステム2A〜2Dのいずれかを指定するための装置番号ANとして使用する。従って、図5(b)に示したように、論理アドレス空間上でLBAが連続するデータが1セクタ単位で異なるフラッシュメモリ装置2A〜2D、即ち、異なるフラッシュメモリ202に順次割り当てられる。
従って、データの書き込みが特定のフラッシュメモリに集中することが避けられ、フラッシュメモリ202の寿命が長くなる。
なお、図5の例では、1セクタを割振りの単位セクタ数として、4つのフラッシュメモリ装置に振り分けたが、振り分けるデータの単位やフラッシュメモリ装置の数は任意である。
例えば、フラッシュメモリ装置の数が2個で、振り分けるデータの単位が2セクタの場合には、LBAの下位側からから数えて第m+1ビット目からm+nビット目を、フラッシュメモリ装置を判別するための装置番号ANとして使用する。
例えば、図7(b)に示すように、4台のフラッシュメモリ装置に、4セクタ単位でデータを割り振る場合には、図7(a)に示すように、LBAの下位から3ビット目と4ビット目の2ビットがフラッシュメモリ装置を判別するための装置番号ANとして使用され、LBAからこの2ビット除いたLBA’がフラッシュメモリ装置2A〜2Dでアクセス対象を特定する情報として使用される。
この場合に、フラッシュメモリシステム1のアクセスコントローラ3によって行われるアクセス対象の割振りについて説明する。
例えば、ホストシステム4からの読み出し処理で、アクセス対象の先頭セクタのLBAが「1000 0000 1010 1010」(2進数)であり、アクセス対象の総セクタ数が「65」であったとする。
この場合、図8(a)に示すように、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2には、「65」が設定され、LBAレジスタR3には、「1000 0000 1010 1010」(2進数)が設定され、コマンドレジスタR1に「外部読み出し処理コマンド」が設定される。ここで、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1010」の下位から3ビット目と4ビット目の2ビットは「10」(装置番号ANが#2)なので、この先頭セクタのLBAはフラッシュメモリ装置2Cに対応する。
又、先頭セクタのLBA「1000 0000 1010 1010」の下位2ビットは「10」なので、この先頭セクタのLBAに対応するフラッシュメモリ装置2Cに、アクセス対象の最初の2セクタ(下位2ビットが「10」、「11」に対応するセクタ)が割り振られ、その後、フラッシュメモリ装置2D、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2D・・・・という順番で4セクタ(下位2ビットが「00」、「01」、「10」、「11」に対応するセクタ)ずつ割り振られる。
ここで、アクセス対象の全セクタ数が65セクタで、先頭セクタのLBAに対応するフラッシュメモリ装置2Cには、アクセス対象の最初の2セクタが割り振られるので、(65−2)÷4の余りに対応する3セクタが、アクセス対象の最後のLBAに対応するフラッシュメモリ装置に割り振られる。
つまり、(65−2)÷4の商は15なので、フラッシュメモリ装置2D、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2D・・・・という順番で4セクタずつ割り振られ、16番目となるフラッシュメモリ装置2Cに、アクセス対象の最後の3セクタが割り振られる。
又、(65−2)÷4の商である15を4で割った商は3で余りは3なので、アクセス対象の最初と最後の端数の割振り(4セクタ未満の割振り)を除いた4セクタずつの割振りは、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bへは4回(4セクタ×4回)となり、フラッシュメモリ装置2Cへは3回(4セクタ×3回)になる。従って、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bにおけるアクセス対象のセクタ数は16セクタになり、フラッシュメモリ装置2Cにおけるアクセス対象のセクタ数は最初と最後の端数の5セクタを加えて17セクタになる。
これらのアクセス対象のセクタ数が、図8(a)、(b)、(c)に示したように、アクセスコントローラインターフェースブロック207のセクタ数レジスタR22に設定される。
次に、フラッシュメモリ装置2A〜2Dにおけるアクセス対象の先頭セクタのLBA’について説明する。LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1010」の下位から3ビット目と4ビット目の2ビットは「10」(装置番号ANが#2)なので、フラッシュメモリ装置2Cからアクセス対象の割振りが開始される。
従って、フラッシュメモリ装置2Cにおけるアクセス対象の先頭セクタのLBA’は、LBAレジスタR3に設定された先頭セクタのLBAから装置番号ANに対応する2ビットを除いた14ビットが対応する。一方、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bについては、LBAレジスタR3に設定された先頭セクタのLBAの下位2ビットを「00」とし、更に、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bについては、フラッシュメモリ装置2Dからフラッシュメモリ装置2Aに割振りが移るときに、LBAの下位側から数えて5ビット目に繰り上がりが生じるので、先頭セクタのLBAに「1 0000」(2進数)を加算した後に装置番号ANに対応する2ビットを除いてアクセス対象の先頭セクタのLBA’を生成する。
つまり、フラッシュメモリ装置2Cでのアクセス対象の先頭セクタのLBA’は「1000 0000 1010 10」となり、フラッシュメモリ装置2Dでのアクセス対象の先頭セクタのLBA’は「1000 0000 1010 00」となり、フラッシュメモリ装置2A、2Bでのアクセス対象の先頭セクタのLBA’は「1000 0000 1011 00」とる。これらのLBA’が、図8(a)、(b)、(c)、(d)に示したように、アクセスコントローラインターフェースブロック207のLBAレジスタR23に設定される。
各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、読み出し処理を実行する。
フラッシュメモリ装置2A〜2Dは、セクタ数レジスタR22に設定されたセクタ数及びLBAレジスタR23に設定されたLBA’に基づいて、フラッシュメモリ202内のアクセス対象領域(アクセス対象の物理ブロック及びその物理ブロック内のアクセス対象ページ)を特定する。このアクセス対象領域の特定では、LBA’が論理ブロック番号LBNを示す部分とセクタ番号SNを示す部分とに分離され、論理ブロック番号LBNは物理ブロックアドレスPBAに変換される。尚、アクセス対象が異なる2個以上の論理ブロックに属している場合は、論理ブロック毎にアドレス変換が行われる。
アドレス変換で求められた物理ブロックアドレスPBA(LBA’の論理ブロック番号LBNと対応する物理ブロックアドレスPBA)、LBA’の下位5ビットのセクタ番号SN、アクセス対象のセクタ数が、フラッシュメモリインターフェースブロック210内のレジスタに設定され、これらの設定値に基づいてフラッシュメモリ202からデータが読み出されバッファ209に保持される。
各フラッシュメモリ装置2A〜2Dのバッファ209に保持された読み出しデータは、内部バス14を介して、LBAが若い方から順番にアクセスコントローラ3のバッファ9に転送される。バッファ9に保持された読み出しデータは、外部バス13を介して、LBAが若い方から順番にホストシステム4に供給される。
次に、ホストシステム4からの書き込み処理について説明する。この場合、コマンドレジスタR1に「外部書き込み処理コマンド」が設定されるが、セクタ数レジスタR2とLBAレジスタR3には、読み出し処理の場合と同様に、アクセス対象の総セクタ数とアクセス対象の先頭セクタのLBAが設定される。
書き込み処理の場合も、各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りは、読み出し処理の場合と同様に行われ、このアクセス対象の割振りに従って、書き込みデータもアクセスコントローラ3のバッファ9から各フラッシュメモリ装置2A〜2Dのバッファ209に転送される。
各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、バッファ209に保持されている書き込みデータをフラッシュメモリ202に書き込む。尚、追加書き込みができずに空きブロックにバッファ209に保持されている書き込みデータを書き込む場合は、その空きブロックの冗長領域に、各フラッシュメモリ装置2A〜2Dに与えられたLBA’に基づいた論理アドレス情報(論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)が書き込まれる。
以上で説明したように、本実施の形態のフラッシュメモリシステム1では、ホストシステム4から与えられるLBAの下位から3ビット目と4ビット目の2ビットを4つのフラッシュメモリシステム2A〜2Dのいずれかを指定するための装置番号ANとして使用する。従って、図7(b)に示したように、論理アドレス空間上でLBAが連続するデータがセクタ単位で異なるフラッシュメモリ装置2A〜2D、即ち、異なるフラッシュメモリ202に順次割り当てられる。
従って、データの書き込みが特定のフラッシュメモリに集中することが避けられ、フラッシュメモリ202の寿命が長くなる。
尚、上述の実施の形態では、ホスト側で管理されている論理アドレス空間を1セクタ単位又は4セクタ単位で4台のフラッシュメモリ装置に割り振ったが、割振りの単位セクタ数と割振り先のフラッシュメモリ装置の数は適宜設定することができる。又、割振りの単位セクタ数と割振り先のフラッシュメモリ装置の数を2のべき乗で与えられる数にすれば、LABの特定のビットで割振り先のフラッシュメモリ装置を判別することができる。つまり、割振りの単位セクタ数2セクタ、割振り先のフラッシュメモリ装置の数を2個とすれば、LBAの下位側から数えて第m+1ビット目からm+nビット目が、フラッシュメモリ装置を判別するための装置番号ANになる。
例えば、フラッシュメモリ装置が4台で、8セクタ単位でデータを割り振る場合には、図9(a)に示すように、LBAの下位から4ビット目と5ビット目の2ビットを4台のフラッシュメモリ装置のいずれかを指定するための装置番号ANとして使用し、この2ビットを除いたLBA’が各フラッシュメモリ装置内でのアクセス対象の特定に使用される。これにより、図9(b)に示すように、LABで管理されているホストシステム側の論理アドレス空間が8セクタ単位で、4台のフラッシュメモリ装置に順次割り当てられる。
さらに、フラッシュメモリ装置が8台で、8セクタ単位でデータを割り振る場合には、図10(a)に示すように、LBAの下位側から数えて4ビット目から6ビット目までの3ビットを8台のフラッシュメモリ装置のいずれかを指定するための装置番号ANとして使用し、この3ビットを除いたLBA’が各フラッシュメモリ装置内でのアクセス対象の特定に使用される。これにより、図10(b)に示すように、LABで管理されているホストシステム側の論理アドレス空間が8セクタ単位で、8台のフラッシュメモリ装置に順次割り当てられる。
又、LBAのビット数については、フラッシュメモリ装置の台数と各フラッシュメモリ装置に割り当てられるデータ容量に応じて変化する。
本発明の実施の形態に係るフラッシュメモリシステムの構成を示すブロック図である。 図1に示すフラッシュメモリ装置の構造を示すブロック図である。 (a)は、アクセスコントローラのホストインターフェースブロックの構成を示すブロック図であり、(b)は、フラッシュメモリコントローラのアクセスコントローラインターフェースブロックの構成を示すブロック図である。 フラッシュメモリの論理構成を示す図である。 (a)は、LBAと、LBAの最下位2ビットの装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。 LBAとLBA’が図5に示す構成を有する場合に、ホストインターフェースブロックとアクセスコントローラインターフェースブロックに設定されるデータの例を示す図である。 (a)は、LBAと、LBAの下位側から3ビット目と4ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。 LBAとLBA’が図7に示す構成を有する場合に、ホストインターフェースブロックとアクセスコントローラインターフェースブロックに設定されるデータの例を示す図である。 (a)は、LBAと、LBAの下位側から4ビット目と5ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。 (a)は、論理アドレス情報LBAと、LBAの下位側から数えて4ビット目から6ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。
符号の説明
1 フラッシュメモリシステム
2A〜2D フラッシュメモリ装置
3 アクセスコントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
203 フラッシュメモリアクセスコントローラ
206 マイクロプロセッサ
207 アクセスコントローラインターフェースブロック
208 ワークエリア
209 バッファ
210 フラッシュメモリインターフェースブロック
211 ECCブロック
212 ROM
213 外部バス
214 内部バス
25 ユーザ領域
26 冗長領域

Claims (7)

  1. 1又は複数セクタのアクセス対象領域を指定した第1のアクセス指示に応答してフラッシュメモリにアクセスする2 個(nは1以上の整数)のフラッシュメモリアクセスコントローラと、
    ホストシステムから与えられる1又は複数セクタのアクセス対象領域を指定した第2のアクセス指示に基づいて2 個の前記フラッシュメモリコントローラに前記第1のアクセス指示を与えるアクセスコントローラとを備え、
    前記アクセスコントローラは、前記ホストシステムから指定可能なアクセス対象領域の全域を2セクタ(mは0以上の整数)の振り分け単位に分割し、該振り分け単位が2 個の前記フラッシュメモリコントローラに順次割り当てられるように対応関係を管理し、該対応関係に従って前記第2のアクセス指示に基づくアクセス対象領域を第1のアクセス指示に基づくアクセス対象領域に振り分ける
    ことを特徴とするメモリコントローラ。
  2. アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを、振り分け先の前記フラッシュメモリコントローラを判別するために使用する
    ことを特徴とする請求項1に記載のメモリコントローラ。
  3. アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスから、該アドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを除いたアドレスを、振り分け先の前記フラッシュメモリコントローラに与える
    ことを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 請求項1、2又は3に記載のメモリコントローラと、複数のフラッシュメモリと、から構成される
    ことを特徴とするフラッシュメモリシステム。
  5. 1又は複数セクタのアクセス対象領域を指定した第1のアクセス指示に応答してフラッシュメモリにアクセスする2 個(nは1以上の整数)のフラッシュメモリアクセスコントローラに対して、前記第1のアクセス指示を与えるアクセスコントローラであって、
    ホストシステムから与えられる1又は複数セクタのアクセス対象領域を指定した第2のアクセス指示に基づいて2 個の前記フラッシュメモリコントローラに前記第1のアクセス指示を与えるアクセス処理割振り手段を備え、
    前記アクセス処理割振り手段は、前記ホストシステムから指定可能なアクセス対象領域の全域を2セクタ(mは0以上の整数)の振り分け単位に分割し、該振り分け単位が2 個の前記フラッシュメモリコントローラに順次割り当てられるように対応関係を管理し、該対応関係に従って前記第2のアクセス指示に基づくアクセス対象領域を第1のアクセス指示に基づくアクセス対象領域に振り分ける
    ことを特徴とするアクセスコントローラ。
  6. アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを、振り分け先の前記フラッシュメモリコントローラを判別するために使用する
    ことを特徴とする請求項5に記載のアクセスコントローラ。
  7. アクセス対象領域を指定するために前記ホストシステムから与えられるアドレスから、該アドレスの下位側から数えてm+1ビット目からnビット目までのn−mビットを除いたアドレスを、振り分け先の前記フラッシュメモリコントローラに与える
    ことを特徴とする請求項5又は6に記載のアクセスコントローラ。
JP2005347358A 2005-11-30 2005-11-30 アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法 Expired - Fee Related JP4661566B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005347358A JP4661566B2 (ja) 2005-11-30 2005-11-30 アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005347358A JP4661566B2 (ja) 2005-11-30 2005-11-30 アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2007156582A true JP2007156582A (ja) 2007-06-21
JP4661566B2 JP4661566B2 (ja) 2011-03-30

Family

ID=38240901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005347358A Expired - Fee Related JP4661566B2 (ja) 2005-11-30 2005-11-30 アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法

Country Status (1)

Country Link
JP (1) JP4661566B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (ja) * 2006-11-13 2008-05-29 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2013502001A (ja) * 2009-08-11 2013-01-17 マーベル ワールド トレード リミテッド 不揮発性メモリからのデータ読み出し用コントローラ
JP2014137758A (ja) * 2013-01-17 2014-07-28 Toshiba Corp 記憶装置および記憶方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001008014A1 (en) * 1999-07-28 2001-02-01 Sony Corporation Recording system, data recording device, memory device, and data recording method
JP2004343682A (ja) * 2003-03-12 2004-12-02 Matsushita Electric Ind Co Ltd カメラレコーダおよびデータ記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001008014A1 (en) * 1999-07-28 2001-02-01 Sony Corporation Recording system, data recording device, memory device, and data recording method
JP2004343682A (ja) * 2003-03-12 2004-12-02 Matsushita Electric Ind Co Ltd カメラレコーダおよびデータ記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (ja) * 2006-11-13 2008-05-29 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636005B2 (ja) * 2006-11-13 2011-02-23 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2013502001A (ja) * 2009-08-11 2013-01-17 マーベル ワールド トレード リミテッド 不揮発性メモリからのデータ読み出し用コントローラ
US8892940B2 (en) 2009-08-11 2014-11-18 Marvell World Trade Ltd. Controller for reading data from non-volatile memory
JP2014137758A (ja) * 2013-01-17 2014-07-28 Toshiba Corp 記憶装置および記憶方法
US10691542B2 (en) 2013-01-17 2020-06-23 Toshiba Memory Corporation Storage device and storage method

Also Published As

Publication number Publication date
JP4661566B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4710753B2 (ja) メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4213166B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP2007323138A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2010250534A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4227989B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2006099594A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2008046727A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100806

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101220

R150 Certificate of patent or registration of utility model

Ref document number: 4661566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees