説明

データ転送装置、メモリ制御装置、およびメモリシステム

【課題】誤り訂正が発生したとしてもデータ伝送が待たされる時間を少なくし、データ転送に要する時間を短縮することが可能なデータ転送装置、メモリ制御装置、およびメモリシステムを提供する。
【解決手段】データ転送元の第1メモリ装置200の第1メモリアドレスと、データ転送先の第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して第2メモリ装置106に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域109と、第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、第2メモリ装置の第2メモリ有効アドレスからデータを読出し、読出したデータと共に、第2メモリ有効アドレスに対応する第1メモリ装置のアドレスを転送する制御部108とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリ等にアクセスし誤り訂正機能を有するデータ転送装置、メモリ制御装置、およびメモリシステムに関するものである。
【背景技術】
【0002】
メモリに書き込まれたデータの信頼性を上げるために、図16に示すように、誤り訂正符号が用いられている。
特に、不揮発性メモリではデータの書き込み後、繰り返しのデータ読出しや、保持期間が長くなるほど、保持しているデータが劣化し、ビット化けによって、正しいデータが読み出せなくなってしまう場合がある。
【0003】
そのため、不揮発性メモリを制御するメモリコントローラは書き込みデータに誤り訂正符号を付加してデータを書き込み、読出し時にエラー検出と訂正を行うことによって、データの信頼性を改善している。
【0004】
一方、その読出しデータに誤りが発生すると、その訂正処理には一定の時間を要し、訂正が完了するまでメモリコントローラから外部へデータを出力することができず、データの出力が遅延する。
この場合、後続のデータがある場合には、データの出力は待たされ、その結果、データの読出し性能が低下することになる。
【0005】
また、不揮発性メモリの一つであるNANDフラッシュメモリは年々、製造プロセスの微細化が進み、データの信頼性が低下しており、それに伴って、メモリコントローラには、より高い訂正能力を持った誤り訂正回路が求められてきている。
【0006】
しかし、図17に示すように、高い誤り訂正能力やECCをかけるデータの単位が大きくなることで、誤り訂正処理に要する時間も長くなり、読出しデータに訂正が発生した場合には、データの読出し性能がさらに低下することになる。
【0007】
特許文献1には、複数のバッファRAMを持ち、誤り訂正を行っている間に空いているバッファに次のデータを読み出すことで、読出しデータのパフォーマンスを改善する技術が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2000−57063号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記技術では、メモリから読出したデータの順に誤り訂正をして、ホストシステム装置に伝送しているため、誤り訂正が発生すると、必ずホストシステムへのデータ伝送が待たされることになる。
【0010】
本発明は、誤り訂正が発生したとしてもデータ伝送が待たされる時間を少なくし、データ転送に要する時間を短縮することが可能なデータ転送装置、メモリ制御装置、およびメモリシステムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1の観点のデータ転送装置は、誤り訂正符号が付加されたデータを記憶する第1メモリ装置から転送されるデータを保持する第2メモリ装置と、訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する制御部とを有する。
【0012】
本発明の第2の観点のメモリ制御装置は、第1メモリ装置間のデータ転送を行う少なくとも一つのデータ転送装置と、少なくともホスト機器との間の転送制御を行うメモリコントローラと、を有し、上記データ転送装置は、誤り訂正符号が付加されたデータを記憶する上記第1メモリ装置から転送されるデータを保持する第2メモリ装置と、訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する第1制御部と、を含み、記メモリコントローラは、上記ホスト機器からの読出しコマンドを受信し、読出し論理アドレスを第1メモリ物理アドレスに変換し、物理アドレスを論理アドレスに変換するアドレス制御部と、上記ホスト機器にデータを出力するときに、合わせて論理アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む。
【0013】
本発明の第3の観点のメモリシステムは、ホスト機器と、誤り訂正符号が付加されたデータを記憶する第1メモリ装置と、上記ホスト機器および上記第1メモリ装置とのデータ転送制御を行うメモリ制御装置と、を有し、上記メモリ制御装置は、第1メモリ装置間のデータ転送を行う少なくとも一つのデータ転送装置と、少なくともホスト機器との間の転送制御を行うメモリコントローラと、を有し、上記データ転送装置は、誤り訂正符号が付加されたデータを記憶する上記第1メモリ装置から転送されるデータを保持する第2メモリ装置と、訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する第1制御部と、を含み、上記メモリコントローラは、上記ホスト機器からの読出しコマンドを受信し、読出し論理アドレスを第1メモリ物理アドレスに変換し、物理アドレスを論理アドレスに変換するアドレス制御部と、上記ホスト機器にデータを出力するときに、合わせて論理アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む。
【発明の効果】
【0014】
本発明によれば、誤り訂正が発生したとしてもデータ伝送が待たされる時間を少なくし、データ転送に要する時間を短縮することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図2】本第1の実施形態において、第1メモリ装置読出しおよび読出しデータ情報記憶領域の制御処理を説明するためのフローチャートである。
【図3】本第1の実施形態において、第2メモリ部から外部へデータを読出す処理を説明するためのフローチャートである。
【図4】本第1の実施形態において第1メモリ装置から読出し時における読出しデータ情報記憶領域の状態を具体的に説明するための図である。
【図5】本発明の第2の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図6】NANDフラッシュメモリの基本的な特徴を説明するための図である。
【図7】コマンドフォーマット例を示す図である。
【図8】本発明の第3の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図9】本発明の第4の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図10】本発明の第5の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図11】PCI Expressで用いられるパケットのフォーマットを示す図である。
【図12】第5の実施形態におけるホスト機器とメモリコントローラ間のデータ転送、並びにメモリコントローラと不揮発性メモリ間のデータ転送を示す図である。
【図13】本発明の第6の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【図14】本実施形態において、エラー無しのデータから先出しする効果を示す図である。
【図15】本実施形態において、複数の不揮発メモリI/Fがある場合のエラー無しのデータから先出しする効果を示す図である。
【図16】メモリに書き込まれたデータの信頼性を上げるために、誤り訂正符号が用いられていることを示す図である。
【図17】ECCをかけるデータの単位が大きくなることを示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態
2.第2の実施形態
3.第3の実施形態
4.第4の実施形態
5.第5の実施形態
6.第6の実施形態
【0017】
<1.第1の実施形態>
図1は、本発明の第1の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0018】
本メモリシステム10は、データ転送装置100、および第1メモリ装置200を含んで構成される。
【0019】
本実施形態に係るデータ転送装置100は、第1メモリ装置200からデータを読出し、データを外部に転送する。
データ転送装置100は、第1メモリ装置インターフェイス(I/F)制御部101、訂正符号生成部102、誤り訂正部103、誤り検出部104、第2メモリ部書込み制御部105、および第2メモリ装置としての第2メモリ部106を有する。
データ転送装置100は、第2メモリ部読出し制御部107、読出しデータ情報記録領域制御部108、および読出しデータ情報記憶領域109を有する。
【0020】
読出しデータ情報記憶領域109には第1メモリ装置200から読出したデータが格納された第2メモリ部106のアドレス(第2メモリアドレス112)、その第1メモリ装置200のメモリアドレス(第1メモリアドレス113)が記憶されている。
読出しデータ情報記憶領域109には、第1メモリ装置200から読出したデータに誤りが検出されたことを示す誤りフラグ110、誤り訂正が完了して第2メモリ部106に格納されているデータが有効であることを示す有効フラグ111が記憶されている。
【0021】
第1メモリ装置200にデータを書きこむときには、データ転送装置100は外部から書込みアドレスとデータを受信し、書込みデータに対する誤り訂正符号を誤り訂正符号生成部102にて生成する。
そして、データ転送装置100は、第1メモリ装置I/F制御部101はメモリインターフェイスを制御して、書込みデータと誤り訂正符号を第1メモリ装置200に書き込む。
【0022】
ここで、第1メモリ装置200から第2メモリ部106にデータを読み出すまでの処理について、図2に関連付けて説明する。
図2は、本第1の実施形態において、第1メモリ装置読出しおよび読出しデータ情報記憶領域の制御処理を説明するためのフローチャートである。
【0023】
第1メモリ装置200からデータを読み出す時には、データ転送装置100は外部から読出しアドレスRADRとデータサイズDSZを受け取る(step000)。
読出しデータ情報記憶領域109において、有効フラグ111が“無効”で、誤りフラグ110が“なし”の領域が存在する場合、第2メモリ部106に空きがある場合である。第2メモリ部106に空きがある場合(step001)には、第1メモリ装置I/F制御部101はメモリインターフェイスを制御して、第1メモリ装置200の読出しアドレスからデータを受信する。
読出しデータは読出しデータ情報記録領域制御部108によって指定された第2メモリ部106のアドレスに書き込まれ(step002、step003)、並行して誤り検出部104によって、読出しデータの誤りがチェックされる。
【0024】
読出しデータに誤りが検出されない場合(step004がNo)には、第1メモリ装置読出しアドレス、誤り検出処理完了、誤り未検出が読出しデータ情報記録領域制御部108に通知される。
【0025】
読出しデータ情報記録領域制御部108は、第1メモリ装置読出しアドレスM1RADR、誤り検出処理完了EDE、誤り未検出信号を受信すると、次に処理を行う。
第2メモリ部106の書込みアドレスに指定されているアドレスに対応する有効フラグ111を“有効”に、誤りフラグ110を“なし”に、第1メモリアドレス113に読出した第1メモリ装置200のアドレス、第2メモリアドレス112に読み出したデータを書込んだ第2メモリ装置106のアドレスを設定する(step005)。
ここで第1メモリアドレス113に記録されるアドレスと第2メモリ部106の書込みアドレスはECCをかけるデータの単位にアラインされる。
たとえば、ECCをかける単位が512バイト(Byte)であれば、書込みアドレスは0x200の倍数であり、アドレスの下位9ビット(bit)は“0”となる。
【0026】
一方、読出しデータに誤りが検出された場合(step004がYes)には、第1メモリ装置読出しアドレスM1ARADR、誤り検出処理完了EDE、誤り検出信号SEDが読出しデータ情報記録領域制御部108に通知される。
読出しデータ情報記録領域制御部108は、第1メモリ装置読出しアドレス、誤り検出処理完了、誤り検出を受信すると、次の処理を行う。
第2メモリ部106の書込みアドレスに指定されているアドレスに対応する有効フラグ111を“無効”に、誤りフラグ110を“あり”に、第1メモリアドレス113に読出した第1メモリ装置200のアドレス、第2メモリアドレス112に読み出したデータを書込んだ第2メモリ装置106のアドレスを設定する(step006)。
【0027】
次に、データ転送装置100における誤り訂正時の処理について説明する。
誤り訂正部103は誤り検出を受信すると、誤り情報とその第1メモリ装置読出しアドレスM1RADRを保持し、誤り訂正を行い、データの訂正が必要な第1メモリ装置読出しアドレスを読出しデータ情報記録領域制御部108に出力する。
ここで誤り情報とはシンドローム値などである。
また、誤り訂正部103は、複数の誤り情報とその第1メモリ装置読出しアドレスMARADRを保持するための領域を持つ。
読出しデータ情報記録領域制御部108は、データの訂正が必要な第1メモリ装置読出しアドレス(データ訂正第1メモリアドレス)を受信すると、次の処理を行う。
読出しデータ情報記録領域制御部108は、読出しデータ情報記憶領域109の第1メモリアドレス113からそのデータ訂正第1メモリアドレスに対応する第2メモリアドレス112を計算する。
そして、読出しデータ情報記録領域制御部108は、データの訂正をする第2メモリアドレスと訂正することを明示する信号(訂正指示信号)を第2メモリ部書込み制御部105に出力する。
第2メモリ部書込み制御部105は、訂正するデータの第2メモリアドレスと訂正指示信号を受信すると、訂正する第2メモリアドレスからデータを読出す。そして、第2メモリ部書込み制御部105は、そのデータと“0”と“1”を反転させたデータを第2メモリ部106に書きこみ、読出しデータ情報記録領域制御部108に書込み完了を通知する。
読出しデータ情報記録領域制御部108は、読出しデータ情報記憶領域109中の訂正が完了した第2メモリアドレス112に対応する誤りフラグ110を“なし”に、有効フラグ111を“有効”に設定する。
【0028】
次に、第2メモリ部106から外部へデータを読出す処理について図3に関連付けて説明する。
図3は、本第1の実施形態において、第2メモリ部から外部へデータを読出す処理を説明するためのフローチャートである。
【0029】
読出しデータ情報記録領域制御部108は、読出しデータ情報記憶領域109の有効フラグ111が“有効”にセットされている第2メモリアドレス112が存在する場合(step100)には、次に処理を行う。
読出しデータ情報記録領域制御部108は、第2メモリ部読出し制御部107に第2メモリ部106の読出しアドレスと読出し要求を出力する(step101)。
第2メモリ部読出し制御部107は、読出し要求を受けて、指定された第2メモリ部106からデータを読出してデータ出力し、合せて読出しデータ情報記録領域制御部108から読出しアドレスを出力する(step102)。
【0030】
第2メモリ部読出し制御部107は、データの読出しを完了すると、読出しデータ情報記録領域制御部108に読出し完了を通知する(step103)。
そして、読出しデータ情報記録領域制御部108は読出し完了の通知を受けて、第2メモリ部106の読出しアドレスに対応する有効フラグ111を”無効”に設定する(step104)。
【0031】
なお、第1メモリ装置200からの読出しデータに誤りがある場合の誤り訂正処理と、第1メモリ装置200からの次のデータの読出しは並行して行われる。
【0032】
上述した第2メモリ部106の空き(図2 step001)は、読出しデータ情報記録領域制御部108により読出しデータ情報記憶領域109の誤りフラグ110が“なし”、有効フラグ111が“無効”に設定された第2メモリアドレス112があるか否かで判断される。
空きがある場合には、その第2メモリアドレス112が第2メモリ部書込み制御部105に通知され、第1メモリ装置200から読み出されたデータが第2メモリ部106に書き込まれる。
【0033】
図4(A)〜(E)は、本第1の実施形態において第1メモリ装置200から読出し時における読出しデータ情報記憶領域109の状態を具体的に説明するための図である。
【0034】
具体例を示すと、図4(A)に示すように、第1メモリ装置200に格納されるデータには、512バイト(以下セクタ)毎に誤り訂正符号が付加されている。
第1メモリ装置200のアドレス0x10000から2KBのデータにおいて、セクタSCT1(アドレス0x10200)には誤りがあり、セクタSCT0(0x10000)、セクタSCT2(0x10400)、セクタSCT3(0x10600)に誤りが存在しない場合、次のように処理される。
第1メモリ装置200のアドレス0x10000から4セクタ分のデータ読出す場合には、第1メモリ装置200から読出したデータを書き込む第2メモリ部106のアドレス(0x0000)が決められる。
そして、第1メモリ装置200からセクタSCT0が読み出される。この場合、誤りがないので、読出しデータ情報記憶領域109の誤りフラグ110は“無し”、有効フラグ111は“有効”、第2メモリアドレス112は”0x0000”、第1メモリアドレス113は”0x10000”に設定される(図4(B))。
【0035】
読出しデータ情報記録領域制御部108は、有効フラグ111が有効になっている読出しデータ情報を検出すると、第2メモリ部読出し制御部107にその第2メモリアドレス112“0x0000”を出力する。
第2メモリ部読出し制御部107は、第2メモリアドレス112”0x0000”から1セクタ分のデータを読出し、合せて読出しデータ情報記録領域制御部108は、第1メモリアドレス112”0x10000”を出力する。
第2メモリ部読出し制御部107は、1セクタ分のデータの読出しを完了すると、読出しデータ情報記録領域制御部108に読出し完了を通知する。そして、読出しデータ情報記録領域制御部108は第2メモリアドレス112“0x0000”の有効フラグ111を“無効”に設定する。
第2メモリ部106からのデータの読出しと並行して、セクタSCT1のデータが第1メモリ装置200から読み出される。
第1メモリ装置200から読出したセクタSCT1のデータを書き込む第2メモリ部106のアドレス(0x0200)が決められ、第1メモリ装置200のアドレス”0x10200”からセクタSCT1のデータが読み出される。
このデータには誤りが含まれているため、誤り検出部104で誤りが検出され、図4(C)に示すように、読出しデータ情報記憶領域109の誤りフラグ110は“あり”、有効フラグ111は“無効”に設定される。そして、第2メモリアドレス112は“0x0200”、第1メモリアドレス113は“0x10200”に設定される。
【0036】
この状態では有効フラグ111が“有効”に設定されているデータがないため、第2メモリ部106からのデータの読出しは発生しない。
誤り訂正部103は、誤り検出部104からの誤り訂正情報(シンドローム)を受信し、誤り訂正が実行される。誤り訂正と並行して、セクタSCT2のデータが第1メモリ装置200から読み出される。
第1メモリ装置200から読出したセクタSCT2のデータを書き込む第2メモリ部106のアドレス(0x0400)が決められ、第1メモリ装置200のアドレス”0x10400”からセクタSCT2のデータが読み出される。
このデータには誤りがないので、図4(D)に示すように、読出しデータ情報記憶領域109の誤りフラグ110は“なし”、有効フラグ111は“有効”、第2メモリアドレス112は”0x0400”、第1メモリアドレス113は”0x10400”に設定される。
【0037】
図4(D)の状態では、第2メモリアドレス112“0x0200”のデータの訂正が完了していないため、第2メモリアドレス112“0x0400”のデータが先に読み出される。
これと並行して、誤り訂正部103で誤り訂正が実行され、セクタSCT3のデータが第1メモリ装置200から読み出される。
第2メモリアドレス112“0x0200”のデータの誤り訂正が完了すると、訂正した第1メモリ装置200のアドレスが読出しデータ情報記録領域制御部108に通知される。
読出しデータ情報記録領域制御部108は、訂正する第1メモリアドレスが含まれる第1メモリアドレス113を検索し、第1メモリアドレス113“0x10200”から、それに対応する第2メモリアドレス112“0x0200”を検出する。訂正する第1メモリアドレスから第1メモリアドレス113“0x10200”を減算した値を第2メモリアドレス112“0x0200”に加算した値を訂正アドレスとして、訂正指示信号と共に第2メモリ部書込み制御部105へ出力する。
第2メモリ部書込み制御部105は、読出しデータ情報記録領域制御部108から受信した訂正アドレスのデータを第2メモリ部から読出し、データを反転させて、再度同一アドレスにデータを書込むことで、データの訂正を行う。複数ビットにわたって誤りが存在する場合には、全ビットの訂正が完了するまで上記処理を行う。
第2メモリ部書込み制御部105は、訂正データの書込みが終了すると、書込み完了を読出しデータ情報記録領域制御部108に通知し、読出しデータ情報記録領域制御部108はそのアドレスに対応する誤りフラグ110を“無し”に設定する。
【0038】
第2メモリアドレス112“0x0400”のデータの読出し完了までに、第2メモリアドレス112“0x0200”のデータの誤り訂正および第1メモリ装置200からのセクタSCT3のデータの読出しが完了すると、次のようになる。
すなわち、読出しデータ情報記憶領域109は図4(E)の状態となり、第2メモリアドレス112“0x0200”、“0x0600”の2セクタ分のデータが順次読み出され、読出しが完了した第2メモリアドレス112に対応する有効フラグ111は“無効”に設定される。
【0039】
<2.第2の実施形態>
図5は、本発明の第2の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0040】
第2の実施形態は、第1メモリ装置200が不揮発性メモリであり、ホスト機器300と接続されることを特徴とするメモリシステム10Aとしての実施形態である。
不揮発性メモリ200の一つであるNANDフラッシュメモリはホスト機器300からアドレス(以下、論理アドレス)をメモリのアドレス(以下、物理アドレス)に変換(以下、論物変換)して、NANDフラッシュメモリにアクセスする手法がよく用いられる。
本第2の実施形態は論物変換を用いるシステムに本発明を適用した場合である。
【0041】
図6は、NANDフラッシュメモリの基本的な特徴を説明するための図である。
NANDフラッシュメモリ200は、図6に示すように、ページPG単位で読出し、書込みが可能なデバイスであり、ページサイズは2KB、4KB、8KBとデバイスにより様々である。
また、上書きが不可能であるため、一度消去してからでないと、再度書き込むことができず、消去はブロック単位でしか行えず、1ブロックBLKは複数のページから構成されている。
【0042】
第2の実施形態に係るメモリシステム10Aは、データ転送装置100がメモリコントローラに含むように構成され、第1の実施形態の構成に以下の構成要素を追加した構成を有する。
基本的に、データ転送装置100とメモリコントローラによりメモリ制御装置が構成される。
メモリシステム10Aは、論理アドレス・物理アドレス制御部120、アクセスサイズ保持部121、ホスト(Host)I/Fデータ転送サイズ保持部122、および読出しデータカウンタ123が追加されている。
さらに、メモリシステム10Aは、読出しデータ転送完了通知部124、Host I/F制御部125、コマンド処理部127、転送先アドレス初期値保持部128、転送先アドレス生成部129が追加されて、メモリコントローラ126が構成されている。
メモリシステム10Aは、メモリコントローラ126はホスト機器300と接続されるシステムである。
【0043】
図7は、コマンドフォーマット例を示す図である。
コマンドフォーマットCMDFは、オペレーションコードOP、論理アドレスLADR、および転送データサイズTDSを含んで構成される。
【0044】
データ読出し時には、ホスト機器300は、読出しデータが転送される転送先アドレスの開始アドレスを転送先アドレス初期値保持部128に設定する。
ホスト機器300が読み出すデータの論理アドレスとそのサイズが読出しコマンド(図7)として、メモリコントローラ126に通知される。
たとえば、コマンドはホスト機器300からのレジスタアクセスによって、コマンド処理部127の内部レジスタにセットされる。
コマンド処理部127は、読出しコマンドを受信し、読出しサイズをアクセスサイズ保持部121に保持し、アクセスする論理アドレスを論理アドレス・物理アドレス制御部120と転送先アドレス生成部129に出力する。そして、コマンド処理部127は、論理アドレス・物理アドレス制御部120から物理アドレスを受信し、不揮発性メモリ200にアクセスする。
【0045】
読出しデータが複数のページにまたがる場合には、複数回、物理アドレスが生成され、不揮発性メモリ200にアクセスする。Host I/Fデータ転送サイズ保持部122は、1回のデータ転送でホスト機器300にデータを転送するサイズ(Host I/Fデータ転送サイズ)を定めている。
読出しデータカウンタ123は、読出したデータをカウントする。
メモリコントローラ126からホスト機器300への読出しデータの転送の際には、メモリコントローラ126がバスマスターとなり、データ転送を行う。
不揮発性メモリ(第1メモリ装置)200からデータを読出し、第2メモリ部106に書き込まれ、第2メモリ部読出し制御部107によって読出しデータが読み出されるまでの処理は第1の実施形態と同じである。
【0046】
ここで、読出しデータに付加されるアドレスの生成について説明する。
まず、読出しデータに対応する物理アドレス(第1メモリアドレス)が論理アドレス・物理アドレス制御部120によって、論理アドレスに変換され転送先アドレス生成部129に出力される。
転送先アドレス生成部129では、読出しデータに付加するホスト機器300の転送先アドレスを生成する。
読出しデータに付加するホスト機器300の転送先の生成は、次の情報によって行われる。転送先アドレス初期値保持部128に保持される転送先アドレス、コマンドで受信した論理アドレス、読出しデータに対応する論理アドレスによって生成される。さらに、読出しデータカウンタ123からの読出しデータのカウント数、Host I/Fデータ転送サイズ保持部122からのHost I/Fデータ転送サイズによって生成される。
具体的には、転送先アドレス生成部129は、読出しデータに対応する論理アドレスの値からコマンドで受信した論理アドレスを減算し、その値に転送先アドレス初期値保持部128に保持されるアドレスの値を加算しホストアドレスとして出力する。
転送先アドレス生成部129は、読出しデータのカウント数がHost I/F転送サイズに達した場合に、論理アドレス・物理アドレス制御部120からの論理アドレスが以前のままの場合には、現在のホストアドレスに、Host I/F転送サイズを加算する。そして、転送先アドレス生成部129は、新たなホストアドレスとしてHost I/F制御部125に出力する。
転送先アドレス生成部129は、論理アドレス・物理アドレス制御部120からの論理アドレスが変化している場合には、読出しデータに対応する論理アドレスの値からコマンドで受信した論理アドレスを減算する。転送先アドレス生成部129は、その減算値に転送先アドレス初期値保持部128に保持されるアドレスの値を加算しホストアドレスとして出力する。
読出しデータ転送完了通知部124は、アクセスサイズ保持部121のアクセスサイズと、読出しデータカウンタ123のカウンタ値からホストからの読出しサイズ分のデータ転送完了を検知すると、Host I/F制御部125に通知する。
Host I/F制御部125は、読出しデータとそのアドレスを受信し、ホストI/Fのプロトコルに変換してデータとアドレスをホスト機器300に転送し、読出し要求のサイズ分のデータ転送を終えると、ホストに対して割り込み信号を発生させる。
【0047】
<3.第3の実施形態>
図8は、本発明の第3の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0048】
本第3の実施形態に係るメモリシステム10Bが第2の実施形態に係るメモリシステム10Aと異なる点は、次の通りである。
すなわち、第3の実施形態に係るメモリシステム10Bでは、読出しデータ情報記録領域制御部108の機能と、転送モード選択部131が加わっている点である。
【0049】
読出しデータ情報記録領域制御部108は、有効フラグ111が“有効”に設定されているアドレスを優先して、読出しアドレスとして選択するモード(以下、優先モード)、およびそのほかに逐次モードを有する。
逐次モードは、第2メモリ部106に第1メモリ装置(不揮発性メモリ)200からのデータを書きこむ際には、第2メモリ部106のアドレス順に書込み、読出しの際には第2メモリ部106のアドレス順に読出しアドレスを選択するモードである。
転送モード選択部130は、前記、優先モードと逐次モードのいずれかでデータ転送するかを設定する機能であり、ホスト機器300から設定可能である。
【0050】
<4.第4の実施形態>
図9は、本発明の第4の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0051】
本第4の実施形態に係るメモリシステム10Cが第2の実施形態に係るメモリシステム10Aと異なる点は、次の通りである。
すなわち、第4の実施形態に係るメモリシステム10Cでは、データ転送装置100に相当するデータ転送部100C、不揮発性メモリ200を複数持ち、メモリコントローラ126はデータ転送部選択部131が追加されている。そして、どのデータ転送部100Cからの出力をHost I/F制御部125に出力するかを選択する機能を持つ。
データ転送部100Cの読出しデータ情報記録領域制御部108は第1の実施形態で説明した機能に加えて、次の機能を有する。
読出しデータ情報記録領域制御部108は、第2メモリ部読出し制御部107に読出し要求をする前に、データ転送部選択部131に出力要求を出力し、データ転送部選択部131から出力許可を受信してから、第2メモリ部読出し制御部107に読出し要求をする。
データ転送部選択部131は、現在選択されているデータ転送部100Cを論理アドレス・物理アドレス制御部120に通知し、論理アドレス・物理アドレス制御部120は現在選択されているデータ転送部100Cと物理アドレスから論理アドレスを生成する。
【0052】
<5.第5の実施形態>
図10は、本発明の第5の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0053】
本第5の実施形態に係るメモリシステム10Dは、第4の実施形態に係るメモリシステム10Cを下位概念化したものであり、ホスト機器300とのインターフェイスがシリアル転送I/Fの一例であるPCI Express I/Fになっている。
PCI Expressは2.5Gbps(Gen1)の高速シリアル伝送、プロトコルを使ったデータ通信などの特徴を有しており、パーソナルコンピュータ(PC)や組み込み機器の内部バス、Express Cardのバスとして広く使われている。
【0054】
図11は、PCI Expressで用いられるパケットのフォーマットを示す図である。
PCI Expressにおいて、データにはTLPヘッダ401が付加されている。本発明の実施形態においては、メモリコントローラ126からホスト機器300に読出しデータを転送する際に、TLPヘッダ401のアドレスに転送先アドレスを設定し、データ・ペイロード402に読出しデータをセットする。
【0055】
図4に関連付けて説明し例示した第1メモリ装置200のデータ読出しの例を第5の実施形態で行った場合のデータ転送フローを図12に示す。
図12は、ホスト機器300とメモリコントローラ126間のデータ転送、並びにメモリコントローラ126と不揮発性メモリ200間のデータ転送を示している。
ホスト機器300からメモリコントローラ126に対して、PCI Express I/Fを通して読出しデータの転送先アドレス(Ox00000)が転送(設定)され、読出しコマンド、論理アドレス0x10000、データサイズ2KBの各情報が転送される。
メモリコントローラ126では、受信した論理アドレス0X00000を物理アドレスとしてブロックBLK10、ページPG0を得、不揮発性メモリ200に対して、リードコマンド、物理アドレスBLK10,PG0が転送される。
これに応答して、不揮発性メモリ200がメモリコントローラ126に対して読出しデータが転送される。
メモリコントローラ126では、第2メモリ部106に512バイトで記録され、エラーのないデータは先出しされ、訂正処理が必要なデータには訂正処理が施されて、ホスト機器300に転送される。
具体的な処理については、第1の実施形態で詳細に説明したことからここではその説明は省略する。
【0056】
<6.第6の実施形態>
図13は、本発明の第6の実施形態に係るデータ転送装置を適用したメモリシステムの構成を示す図である。
【0057】
本第6の実施形態においては、メモリコントローラと不揮発性メモリをExpress Cardに実装したメモリーカード400として構成する例が示されている。
【0058】
図14は、本実施形態において、エラー無しのデータから先出しする効果を示す図である。
図15は、本実施形態において、複数の不揮発メモリI/Fがある場合のエラー無しのデータから先出しする効果を示す図である。
以上説明した実施形態によれば、以下の効果を得ることができる。
図14および図15に示すように、誤り訂正に時間がかかっても、後続の誤りのないデータを先に出力することで、従来と比較して、データ転送に要する時間を短くできる。
本実施形態では、誤り訂正が完了したデータからホスト機器にデータを転送するモード(優先モード)と、メモリから読出したデータの順番どおりにホストにデータを転送するモード(逐次モード)をホストが切り替えられる。
これにより、データの読出し順序がシーケンシャルとならない優先モードでのデータ転送ができないホスト機器は逐次モードを選択することで、様々なホスト機器に対応することができる。
【0059】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【0060】
10,10A〜10D・・・メモリシステム、100・・・データ転送装置、101・・・第1メモリ装置インターフェイス(I/F)制御部、102・・・訂正符号生成部、103・・・誤り訂正部、104・・・誤り検出部、105・・・第2メモリ部書込み制御部、106・・・第2メモリ部、107・・・第2メモリ部読出し制御部、108・・・読出しデータ情報記録領域制御部、109・・・読出しデータ情報記憶領域、110・・・誤りフラグ、111・・・有効フラグ、112・・・第2メモリアドレス、113・・・第1メモリアドレス、120・・・論理アドレス・物理アドレス制御部、121・・・アクセスサイズ保持部、122・・・ホスト(Host)I/Fデータ転送サイズ保持部、123・・・読出しデータカウンタ、124・・・読出しデータ転送完了通知部、125・・・Host I/F制御部、126・・・メモリコントローラ、127・・・コマンド処理部、128・・・転送先アドレス初期値保持部、129・・・転送先アドレス生成部、130・・・転送モード選択部、131・・・データ転送部選択部、200・・・第1メモリ装置(不揮発性メモリ)、300・・・ホスト機器。

【特許請求の範囲】
【請求項1】
誤り訂正符号が付加されたデータを記憶する第1メモリ装置から転送されるデータを保持する第2メモリ装置と、
訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、
誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、
データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、
上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する制御部と
を有するデータ転送装置。
【請求項2】
上記制御部は、
データの読出し要求を受けると、上記データ情報記憶領域の上記有効信号が無効を示し、誤り信号が誤りを非検出であり、上記第2メモリ装置に空きがあることを示している場合に、上記第2メモリ装置の書込みアドレスを設定して読出しデータを上記第2メモリ装置へ書込み、
読出しデータの誤りチェックで誤り未検出の場合、第2メモリ装置の書込みアドレスに指定されているアドレスに対応する有効信号を“有効”に、誤り信号を“なし”に、第1メモリアドレスに読出した第1メモリ装置のアドレス、第2メモリ装置の書込みアドレスを設定し、
読出しデータの誤りチェックで誤りが検出された場合、上記第2メモリ装置の書込みアドレスに指定されているアドレスに対応する有効信号を“無効”に、誤り信号を“あり”に、第1メモリアドレスに読出した上記第1メモリ装置のアドレス、第2メモリ装置の書込みアドレスを設定する
請求項1記載のデータ転送装置。
【請求項3】
上記制御部は、
上記第2メモリ装置からデータを読出す際には、
上記データ情報記憶領域の上記有効信号が有効を示す第2メモリアドレスが存在する場合、上記第2メモリ装置の読出しアドレスと読出し要求を出力して、アドレス指定された上記第2メモリ装置からデータを読出してデータおよび読み出した第2メモリアドレスに対応する第1メモリアドレスを出力し、
データの読出しを完了すると、上記データ情報記憶領域の、上記第2メモリ装置の読出しアドレスに対応する有効信号を“無効”に設定する
請求項1または2記載のデータ転送装置。
【請求項4】
第1メモリ装置間のデータ転送を行う少なくとも一つのデータ転送装置と、
少なくともホスト機器との間の転送制御を行うメモリコントローラと、を有し、
上記データ転送装置は、
誤り訂正符号が付加されたデータを記憶する上記第1メモリ装置から転送されるデータを保持する第2メモリ装置と、
訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、
誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、
データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、
上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する第1制御部と、を含み、
上記メモリコントローラは、
上記ホスト機器からの読出しコマンドを受信し、読出し論理アドレスを第1メモリ物理アドレスに変換し、物理アドレスを論理アドレスに変換するアドレス制御部と、
上記ホスト機器にデータを出力するときに、合わせて論理アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む
メモリ制御装置。
【請求項5】
上記第1制御部は、
データの読出し要求を受けると、上記データ情報記憶領域の上記有効信号が無効を示し、誤り信号が誤りを非検出であり、上記第2メモリ装置に空きがあることを示している場合に、上記第2メモリ装置の書込みアドレスを設定して読出しデータを上記第2メモリ装置へ書込み、
読出しデータの誤りチェックで誤り未検出の場合、第2メモリ装置の書込みアドレスに指定されているアドレスに対応する有効信号を“有効”に、誤り信号を“なし”に、第1メモリアドレスに読出した第1メモリ装置のアドレスを設定し、
読出しデータの誤りチェックで誤りが検出された場合、上記第2メモリ装置の書込みアドレスに指定されているアドレスに対応する有効信号を“無効”に、誤り信号を“あり”に、第1メモリアドレスに読出した上記第1メモリ装置のアドレスを設定する
請求項4記載のメモリ制御装置。
【請求項6】
上記第1制御部は、
上記第2メモリ装置からデータを読出す際には、
上記データ情報記憶領域の上記有効信号が有効を示す第2メモリアドレスが存在する場合、上記第2メモリ装置の読出しアドレスと読出し要求を出力して、アドレス指定された上記第2メモリ装置からデータを読出してデータおよび読出し論理アドレスを出力し、
データの読出しを完了すると、上記データ情報記憶領域の、上記第2メモリ装置の読出しアドレスに対応する有効信号を“無効”に設定する
請求項4または5記載のメモリ制御装置。
【請求項7】
上記メモリコントローラは、
ホスト機器へ読出しデータを返す際に指定する転送先アドレスの初期値を保持する転送先アドレス保持部と、
読出しアドレスと読出しサイズにより形成される上記ホスト機器からの読出しコマンドを受信し、コマンドを解析して読み出す第1メモリ装置のアドレスを出力するコマンド処理部と、
読出し論理アドレスを第1メモリア物理ドレスに変換し、物理アドレスを論理アドレスに変換するアドレス制御部と、
上記コマンド処理部から通知される物理アドレスに基づき、上記第1メモリ装置のインターフェイスを制御し、データを読み出すインターフェイス制御部と、
上記ホスト機器へ読出しデータを返す際に指定するアドレスの初期値、読出しデータに対応する論理アドレスと、読出しコマンドで指定された読出しアドレスから読出したデータを返す上記ホスト機器の転送先アドレスを生成する転送先アドレス生成部と、
上記ホスト機器に読出しデータを出力するときに、合わせて転送先アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む
請求項4から6のいずれか一に記載のメモリ制御装置。
【請求項8】
上記メモリコントローラは、
上記データ転送装置と上記第1メモリ装置とのインターフェイスを複数有し、
上記データ転送装置からの出力要求を受けて、データ転送を行うデータ転送装置を選択する機能を含む
請求項4から7のいずれか一に記載のメモリ制御装置。
【請求項9】
上記データ転送装置は、
上記第2メモリ装置にデータを格納した順に、データを転送する逐次モードと、
上記データ情報記憶領域の有効信号が“有効”に設定されているアドレスを優先シテ、読出しアドレスとして選択する優先モードと、を有し、
上記逐次モードと上記優先モードのいずれでデータ転送するかを設定可能である
請求項4から8のいずれか一に記載のメモリ制御装置。
【請求項10】
ホスト機器と、
誤り訂正符号が付加されたデータを記憶する第1メモリ装置と、
上記ホスト機器および上記第1メモリ装置とのデータ転送制御を行うメモリ制御装置と、を有し、
上記メモリ制御装置は、
第1メモリ装置間のデータ転送を行う少なくとも一つのデータ転送装置と、
少なくともホスト機器との間の転送制御を行うメモリコントローラと、を有し、
上記データ転送装置は、
誤り訂正符号が付加されたデータを記憶する上記第1メモリ装置から転送されるデータを保持する第2メモリ装置と、
訂正前のデータと誤り訂正符号から誤りを検出する誤り検出部と、
誤り検出部からの誤り検出信号、誤り情報から誤り位置を求め、誤りを含むデータを書き込んだ上記第2メモリ装置のアドレスと誤り位置情報から誤りデータを訂正する誤り訂正部と、
データ転送元の上記第1メモリ装置の第1メモリアドレスと、データ転送先の上記第2メモリ装置の第2メモリアドレスと、転送データに誤りが検出されたか否かを示す誤り信号と、誤り訂正が完了して上記第2メモリ装置に格納しているデータが有効であるか否かを示す有効信号を記憶する領域を複数含むデータ情報記憶領域と、
上記第2メモリ装置に格納しているデータのうち、データが有効であるメモリのアドレスである第2メモリ有効アドレスを出力し、上記第2メモリ装置の第2メモリ有効アドレスからデータを読出し、当該読出したデータと共に、第2メモリ有効アドレスに対応する上記第1メモリ装置のアドレスを転送する第1制御部と、を含み、
上記メモリコントローラは、
上記ホスト機器からの読出しコマンドを受信し、読出し論理アドレスを第1メモリ物理アドレスに変換し、物理アドレスを論理アドレスに変換するアドレス制御部と、
上記ホスト機器にデータを出力するときに、合わせて論理アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む
メモリシステム。
【請求項11】
上記メモリコントローラは、
ホスト機器へ読出しデータを返す際に指定する転送先アドレスの初期値を保持する転送先アドレス保持部と、
読出しアドレスと読出しサイズにより形成される上記ホスト機器からの読出しコマンドを受信し、コマンドを解析して読み出す第1メモリ装置のアドレスを出力するコマンド処理部と、
読出し論理アドレスを第1メモリ物理アドレスに変換し、第1メモリ物理アドレスを論理アドレスに変換するアドレス制御部と、
上記コマンド処理部から通知される物理アドレスに基づき、上記第1メモリ装置のインターフェイスを制御し、データを読み出すインターフェイス制御部と、
上記ホスト機器へ読出しデータを返す際に指定するアドレスの初期値、読出しデータに対応する論理アドレスと、読出しコマンドで指定された読出しアドレスから読出したデータを返す上記ホスト機器の転送先アドレスを生成する転送先アドレス生成部と、
上記ホスト機器に読出しデータを出力するときに、合わせて転送先アドレスも転送し、読出しコマンドで要求されたサイズのデータ転送が完了したときに、データ転送が完了したことを示す割り込み信号をホストに通知する転送制御系と、を含む
請求項10記載のメモリシステム。
【請求項12】
上記データ転送装置は、
上記第2メモリ装置にデータを格納した順に、データを転送する逐次モードと、
上記データ情報記憶領域の有効信号が“有効”に設定されているアドレスを優先シテ、読出しアドレスとして選択する優先モードと、を有し、
上記ホスト機器は、
上記逐次モードと上記優先モードのいずれでデータ転送するかを設定可能である
請求項10または11記載のメモリシステム。
【請求項13】
上記ホスト機器とメモリコントローラとの間は、シリアル転送インターフェイスにより接続されている
請求項10から12のいずれか一に記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−128778(P2012−128778A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−281566(P2010−281566)
【出願日】平成22年12月17日(2010.12.17)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】