(57)【要約】【課題】別途のデバイスを追加することなく、ＤＲＡＭバッファにエラー訂正コードを適用することのできるＤＲＡＭバッファ管理装置および方法を提供すること。【解決手段】ＤＲＡＭバッファ管理装置およびＤＲＡＭバッファ管理方法が開示される。当該ＤＲＡＭバッファ管理装置およびＤＲＡＭバッファ管理方法においては、ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成し、前記データおよび前記ＥＣＣを前記ＤＲＡＭバッファに記録する。
2012521033.tif 000002
【特許請求の範囲】
【請求項１】
ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成するＥＣＣ生成部と、
前記データおよび前記ＥＣＣを前記ＤＲＡＭバッファに記録する記録部と、
を備えることを特徴とするＤＲＡＭバッファ管理装置。
【請求項２】
前記ＤＲＡＭバッファから前記データおよび前記ＥＣＣを読み出す読出し部と、
前記読み出されたＥＣＣに基づいて前記読み出されたデータに対するエラー発生の可否を判断する判断部と、
前記読み出されたデータにエラーが発生した場合、前記エラーを訂正するエラー訂正部と、
をさらに備えることを特徴とする請求項１に記載のＤＲＡＭバッファ管理装置。
【請求項３】
前記ＤＲＡＭバッファを構成する少なくとも１つのページのうち互いに連続するページを互いに異なるバンクにマッピングしたアドレスマッピングテーブルが格納されたテーブル格納部さらに備えることを特徴とする請求項１に記載のＤＲＡＭバッファ管理装置。
【請求項４】
前記記録部は、前記データの大きさおよび前記ＥＣＣの大きさの和が前記データおよび前記ＥＣＣが記録される第１ページの大きさを超過する場合、前記アドレスマッピングテーブルを参照して前記第１ページに連続する次ページである第２ページをローオープンし、前記データおよび前記ＥＣＣのうち前記第１ページの大きさを超過するデータを前記第２ページに記録することを特徴とする請求項３に記載のＤＲＡＭバッファ管理装置。
【請求項５】
前記ＥＣＣ生成部は、前記ＤＲＡＭバッファに前記データがバースト単位に送信される場合、前記バースト単位ごとに前記ＥＣＣをリアルタイムで生成し、
前記記録部は、前記バースト単位ごとに前記データに続いて前記ＥＣＣを前記ＤＲＡＭバッファに送信することを特徴とする請求項１に記載のＤＲＡＭバッファ管理装置。
【請求項６】
ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成するステップと、
前記データおよび前記ＥＣＣを前記ＤＲＡＭバッファに記録するステップと、
を含むことを特徴とするＤＲＡＭバッファ管理方法。
【請求項７】
前記ＤＲＡＭバッファから前記データおよび前記ＥＣＣを読み出すステップと、
前記読み出されたＥＣＣに基づいて前記読み出されたデータに対するエラー発生の可否を判断するステップと、
前記読み出されたデータにエラーが発生した場合、前記エラーを訂正するステップと、
をさらに含むことを特徴とする請求項６に記載のＤＲＡＭバッファ管理方法。
【請求項８】
前記記録するステップは、
前記データの大きさおよび前記ＥＣＣの大きさの和が前記データおよび前記ＥＣＣが記録される第１ページの大きさを超過するか否かを判断するステップと、
前記データの大きさおよび前記ＥＣＣの大きさの和が前記第１ページの大きさを超過する場合、アドレスマッピングテーブルを参照して前記第１ページに連続する次ページである第２ページをローオープンし、前記データおよび前記ＥＣＣのうち前記第１ページの大きさを超過するデータを前記第２ページに記録するステップと、
を含み、
前記アドレスマッピングテーブルは、前記ＤＲＡＭバッファを構成する少なくとも１つのページのうち互いに連続するページを互いに異なるバンクにマッピングしたテーブルであることを特徴とする請求項６に記載のＤＲＡＭバッファ管理方法。
【請求項９】
請求項６〜請求項８のいずれか１項の方法の各ステップをコンピュータに実行させるプログラムを記録したコンピュータで読み出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ＤＲＡＭバッファ管理装置および方法が開示される。特に、別途のデバイスを追加することなくＤＲＡＭバッファにエラー訂正コード（Error Correction Code：ＥＣＣ）を適用することのできるＤＲＡＭバッファ管理装置および方法が開示される。
【背景技術】
【０００２】
データを格納するストレージ装置として磁気ディスクおよび半導体メモリなどがある。ストレージ装置は、種類ごとに互いに異なる物理的な特性を有するため物理的な特性に対応する管理方法が求められる。
【０００３】
従来におけるストレージ装置として、磁気ディスクが広く使用された。磁気ディスクは平均的にキロバイト当たり数ミリ秒の読み出しおよび書き込み時間を特性として有する。また、磁気ディスクはデータが格納された物理的な位置に応じてアーム（arm）が達する時間が異なるため、読み出しおよび書き込み時間が変わる特性を有する。
【０００４】
最近では磁気ディスクに比べて読み出しおよび書き込み時間が短く、小さい電力を消耗し、かつ小さい体積を占める不揮発性メモリが急速に磁気ディスクを代替している。これは不揮発性メモリの大容量化が可能になった結果を表すものである。
【０００５】
不揮発性メモリは、電気的に読み出し（read）、書き込み（write）、および消去（erase）が可能であり、供給電源のない状態でも格納されたデータを維持することのできる半導体記憶装置である。不揮発性メモリ装置に対するデータの格納過程は、書き込みの他にもプログラミングと呼んでもよい。
【０００６】
不揮発性メモリの代表的なものとしてフラッシュメモリが挙げられ、フラッシュメモリは従来におけるハードディスクドライブ（Hard Disk Drive：ＨＤＤ）に比較すると、その大きさが小さくて電力消費量が小さい。さらに、読み出し速度を高めることができる利点を有する。最近では大容量のフラッシュメモリを用いてＨＤＤを代替するためのＳＳＤ（Solid State Disk）が提案されたりもする。
【０００７】
フラッシュメモリの種類として代表的なものは、ＮＡＮＤ方式のフラッシュメモリおよびＮＯＲフラッシュメモリなどが挙げられる。ＮＡＮＤ方式およびＮＯＲ方式はセルアレイの構成および動作方式によって区別され得る。
【０００８】
フラッシュメモリは複数のメモリセルの配列からなり、１つのメモリセルは１つ以上のデータビットを格納してもよい。１つのメモリセルは、コントロールゲートおよびフローティングゲートを含み、コントロールゲートとフローティングゲートとの間には絶縁体が挿入され、フローティングゲートと基板との間にも絶縁体が挿入される。
【０００９】
このような不揮発性メモリは、所定のコントローラによって管理される。そして、このようなコントローラの性能に応じて不揮発性メモリ全体の性能が決定されてもよい。
【００１０】
したがって、メモリを効率よく管理および制御できる方案に関する研究が求められる。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、別途のデバイスを追加することなく、ＤＲＡＭバッファにエラー訂正コードを適用することのできるＤＲＡＭバッファ管理装置および方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施形態に係るＤＲＡＭバッファ管理装置は、ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成するＥＣＣ生成部と、前記データおよび前記ＥＣＣを前記ＤＲＡＭバッファに記録する記録部とを備える。
【００１３】
本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成するステップと、前記データおよび前記ＥＣＣを前記ＤＲＡＭバッファに記録するステップとを含む。
【発明の効果】
【００１４】
本発明によると、ＤＲＡＭバッファに記録されるデータに対するエラー訂正コードを生成し、前記データおよび前記エラー訂正コードを前記ＤＲＡＭバッファと共に記録するＤＲＡＭバッファ管理装置および方法を提供することによって、別途のデバイスを追加することなく、ＤＲＡＭバッファにエラー訂正コードを適用することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るＤＲＡＭバッファ管理装置の構造を示す図である。
【図２】本発明の一実施形態に係るＤＲＡＭバッファ管理方法を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、添付する図面を参照しながら本発明に係る実施形態を詳説する。しかし、本発明が実施形態によって制限されたり限定されたりすることはない。また、各図面に提示された同一の参照符号は同一の部材を示す。
【００１７】
一般的に、不揮発性メモリに対するプログラミングはページ単位で行われてもよく、消去はブロック単位で行われてもよい。このとき、ブロックは複数のページを含んでもよい。
【００１８】
また、不揮発性メモリを管理するメモリコントローラは、外部のホストまたはプロセッサに論理アドレスを提供し、不揮発性メモリに対して物理アドレスを提供してもよい。
【００１９】
このとき、メモリコントローラは物理アドレスを用いて不揮発性メモリを管理し、物理アドレスを論理アドレスに変換してもよい。
【００２０】
ここで、物理アドレスおよび論理アドレスの変換が行われる階層をフラッシュ変換階層（Flash Translation Layer：ＦＴＬ）と呼んでもよい。
【００２１】
最近、エンタープライズ（enterprise）サーバの市場では増加する帯域幅の要求および消費電力の問題によってデータ格納装置としてＨＤＤよりもソリッドステートディスク（Solid State Disk：ＳＳＤ）を活用する方案が積極的に導入されている。
【００２２】
初期のＳＳＤコントローラは内部のメモリをデータバッファの用途で活用したが、最近のＳＳＤコントローラは高速化の要求に応じてデータバッファの用途にＤＲＡＭを用いる場合が増加しつつある。
【００２３】
大部分のエンタープライズサーバは、データの安定性のためにシステムバスのメインメモリとして高価のエラー訂正コード（Error Correction Code：ＥＣＣ）の機能が適用されたＤＲＡＭモジュールを用いている。
【００２４】
したがって、サーバで用いられるＳＳＤでデータバッファ用途としてＤＲＡＭを用いると、データの安定性を図るためにＥＣＣ機能の適用されたＤＲＡＭモジュールを用いることが有利である。
【００２５】
このとき、ＥＣＣ  ＤＲＡＭモジュールは、ＳＯＤＩＭＭ内に別途のＥＣＣを格納するＥＣＣ専用ＤＲＡＭチップを追加的に有していることが多い。
【００２６】
しかし、ＳＳＤは実際に用いられるバッファの大きさが相対的に小さく、費用的な側面でもＤＲＡＭチップを１以上使用し難い特徴がある。
【００２７】
また、別途のＥＣＣ専用ＤＲＡＭチップによる電力消耗の側面としても、１つのＳＳＤディスク内に別途のＤＲＡＭチップを用いることは困難である。
【００２８】
これに関連して、本発明の一実施形態に係るＤＲＡＭバッファ管理装置は、ＳＳＤなどでデータバッファまたはキャッシュ（cache）の用途でＤＲＡＭを用いる場合、ＤＲＡＭバッファに記録されるデータに対するＥＣＣを生成し、前記データおよび前記ＥＣＣをＤＲＡＭバッファに共に記録することによって、付加的にデバイスを使用することなくＤＲＡＭデータにＥＣＣソリューションを適用できるようにする。
【００２９】
したがって、以下は、図１を参照して本発明の一実施形態に係るＤＲＡＭバッファ管理装置について詳説する。
【００３０】
図１は、本発明の一実施形態に係るＤＲＡＭバッファ管理装置の構造を示す図である。
【００３１】
図１を参照すると、ＤＲＡＭバッファ管理装置１１０およびＤＲＡＭバッファ１２０が図示されている。
【００３２】
本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＥＣＣ生成部１１１および記録部１１２を備える。
【００３３】
ＥＣＣ生成部１１１は、ＤＲＡＭバッファ１２０に記録されるデータに対するＥＣＣを生成する。
【００３４】
記録部１１２はデータおよびＥＣＣをＤＲＡＭバッファ１２０に記録する。
【００３５】
このとき、記録部１１２がデータおよびＥＣＣをＤＲＡＭバッファ１２０に記録する場合、データの大きさおよびＥＣＣの大きさの和がデータおよびＥＣＣの記録されるＤＲＡＭバッファ１２０上の第１ページの大きさを超過する場合が生じ得る。
【００３６】
これに関連して、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＤＲＡＭバッファ１２０を構成する少なくとも１つのページのうち互いに連続されるページを互いに異なるバンクにマッピングしたアドレスマッピングテーブル（address mapping table）が格納されたテーブル格納部（図示せず）をさらに含んでもよい。
【００３７】
このとき、本発明の一実施形態によると、記録部１１２は、データの大きさおよびＥＣＣの大きさの和がデータおよびＥＣＣが記録される第１ページの大きさを超過する場合、アドレスマッピングテーブルを参照して第１ページに連続する次ページの第２ページをロー（raw）オープンし、データおよびＥＣＣのうち第１ページの大きさを超過するデータを第２ページに記録してもよい。
【００３８】
これによって、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＥＣＣがデータと共にＤＲＡＭバッファ１２０に送信されることによって、発生可能な送信帯域幅の損失を防止することができる。
【００３９】
また、本発明の一実施形態によると、ＤＲＡＭバッファ管理装置１１０は、読出し部１１３、判断部１１４、およびエラー訂正部１１５をさらに備えてもよい。
【００４０】
読出し部１１３は、ＤＲＡＭバッファ１２０からデータおよびＥＣＣを読み出す。
【００４１】
判断部１１４は、読み出されたＥＣＣに基づいて読み出されたデータに対するエラー発生の可否を判断する。
【００４２】
例えば、判断部１１４は、ＥＣＣ生成部１１１がＥＣＣを生成するために用いるＥＣＣ生成アルゴリズムに基づいて読み出されたデータに対するＥＣＣを生成してもよい。
【００４３】
その後、判断部１１４は、読み出されたＥＣＣと読み出されたデータに対するＥＣＣとを比較して読み出されたデータに対するエラー発生の可否を判断してもよい。
【００４４】
エラー訂正部１１５は、読み出されたデータにエラーが発生した場合にエラーを訂正する。
【００４５】
以下は、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０について例を挙げて詳説する。
【００４６】
これに関連して、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０がＳＳＤに適用された例を用いることにする。
【００４７】
本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＳＳＤコントローラに含まれる装置であってもよい。
【００４８】
一般的にＳＳＤコントローラおよびＤＲＡＭバッファ１２０は、バーストオペレーション（burst operation）を用いてデータを送受信してもよい。
【００４９】
すなわち、ＳＳＤコントローラはＤＲＡＭバッファ１２０へデータをバースト単位で送信してもよい。
【００５０】
これに関連して、ＳＳＤコントローラがＤＲＡＭバッファ１２０へＮバースト単位でデータを送信すると仮定する。
【００５１】
まず、ＳＳＤコントローラがＤＲＡＭバッファ１２０にデータを記録する場合、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０の動作について説明する。
【００５２】
生成部１１１は、ＤＲＡＭバッファ１２０に送信されるＮバーストのデータに対するＥＣＣをリアルタイムに生成する。
【００５３】
その後、記録部１１２は、Ｎバーストのデータに続いてＥＣＣをＤＲＡＭバッファ１２０に送信してＮバーストのデータおよびＥＣＣをＤＲＡＭバッファ１２０に記録する。
【００５４】
すなわち、ＥＣＣがＭバーストのデータである場合、記録部１１２は、ＮバーストのデータおよびＥＣＣを同一のバースト動作内でＤＲＡＭバッファ１２０に記録されるように送信することによって、Ｎバーストのデータ送信構造をＮ＋Ｍバーストのデータ送信構造に変更することができる。
【００５５】
結局、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＤＲＡＭバッファ管理装置１１０でＤＲＡＭバッファ１２０に送信されるデータの基本バースト単位をＥＣＣの大きさだけ増加させて、１回のバーストアクセスにデータおよびＥＣＣを１つのＤＲＡＭチップに格納してもよい。
【００５６】
このとき、ＤＲＡＭバッファ管理装置１１０がデータにＥＣＣを追加してＤＲＡＭバッファ１２０に送信することで、１つのバースト送信がＤＲＡＭバッファ１２０上の１つ以上のページを用いる場合が発生し得る。
【００５７】
言い換えれば、データの大きさおよびＥＣＣの大きさの和がデータおよびＥＣＣの記録される第１ページの大きさを超過する場合が発生し得る。
【００５８】
これに関連して、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、ＤＲＡＭバッファ１２０を構成する少なくとも１つのページのうち互いに連続するページを互いに異なるバンクにマッピングしたアドレスマッピングテーブルが格納されたテーブル格納部（図示せず）をさらに備えてもよい。
【００５９】
このとき、記録部１１２は、データの大きさおよびＥＣＣの大きさの和が第１ページの大きさを超過する場合、アドレスマッピングテーブルを参照し、第１ページに連続して第１ページと異なるバンクにマッピングされている第２ページをローオープンした後、データおよびＥＣＣのうち第１ページを超過するデータを第２ページに記録することによって、ＤＲＡＭバッファ管理装置１１０からＤＲＡＭバッファ１２０にバーストが切れることなく送信することができる。
【００６０】
結局、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０は、アドレスマッピングテーブルを用いてバンクインターリビングできるようにすることによって、ＤＲＡＭバッファ管理装置１１０とＤＲＡＭバッファ１２０との間の送信帯域幅の損失を防止することができる。
【００６１】
次に、ＳＳＤコントローラが前述した方法で記録されたデータをＤＲＡＭバッファ１２０から読み出す場合、本発明の一実施形態に係るＤＲＡＭバッファ管理装置１１０の動作を説明する。
【００６２】
読出し部１１３は、ＤＲＡＭバッファ１２０からデータおよびＥＣＣをＮ＋Ｍバーストに読み出してもよい。
【００６３】
判断部１１４は、読み出されたＥＣＣをリアルタイムでチェックし、読み出されたＥＣＣに基づいて読み出されたデータに対するエラー発生の有無およびエラービットの位置などを判断する。
【００６４】
エラー訂正部１１５は、読み出されたデータにエラーが発生した場合、判断部１１４からエラービットの位置情報やエラー内容情報などを受信してエラーを訂正してもよい。
【００６５】
本発明の一実施形態によると、ＤＲＡＭバッファ管理装置１１０は、複数のマスタ（master）から送信されるデータの要請命令に対して要請命令の順序をバンクインターリビングできるように再配置する命令制御部（図示せず）をさらに備えてもよい。
【００６６】
命令制御部は、現在の命令と次の命令との間をバンクインターリビングすることができ、次の命令に対するローオープンを現在の命令のデータ送信中に予め行うことができるため、ＤＲＡＭバッファ１２０の全体的な送信帯域幅を高めることができる。
【００６７】
図２は、本発明の一実施形態に係るＤＲＡＭバッファ管理方法を示すフローチャートである。
【００６８】
ステップＳ２１０において、ＤＲＡＭバッファに記録されるデータに対するＥＣＣを生成する。
【００６９】
ステップＳ２２０において、データおよびＥＣＣをＤＲＡＭバッファに記録する。
【００７０】
このとき、本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、ＤＲＡＭバッファからデータが読み出される場合、ステップＳ２２０の後にＤＲＡＭバッファからデータおよびＥＣＣを読み出すステップをさらに含んでもよい。
【００７１】
その後、本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、読み出されたＥＣＣに基づいて読み出されたデータに対するエラー発生の可否を判断するステップをさらに含んでもよい。
【００７２】
その後、本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、読み出されたデータにエラーが発生した場合、エラーを訂正するステップをさらに含んでもよい。
【００７３】
また、本発明の一実施形態によると、ステップＳ２２０では、データの大きさおよびＥＣＣの大きさの和がデータおよびＥＣＣが記録される第１ページの大きさを超過するか否かを判断するステップを含んでもよい。
【００７４】
その後、ステップＳ２２０では、データの大きさおよびＥＣＣの大きさの和が第１ページの大きさを超過する場合、アドレスマッピングテーブルを参照して第１ページに連続する次ページの第２ページをローオープンし、データおよびＥＣＣのうち第１ページの大きさを超過するデータを第２ページに記録するステップを含んでもよい。
【００７５】
このとき、アドレスマッピングテーブルは、ＤＲＡＭバッファを構成する少なくとも１つのページのうち互いに連続するページを互いに異なるバンクにマッピングしたテーブルである。
【００７６】
以上、図２を参照して本発明の一実施形態に係るＤＲＡＭバッファ管理方法について説明した。ここで、本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、図１を用いて説明したＤＲＡＭバッファ管理装置の構成と対応できるため、これに対する詳説は省略する。
【００７７】
本発明の一実施形態に係るＤＲＡＭバッファ管理方法は、多様なコンピュータ手段を介して実行するプログラム命令形態に具現され、コンピュータ読取可能な記録媒体に記録される。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスクおよび磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。上述のハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェア階層で作動するように構成され、その逆も同様である。
【００７８】
以上、限定された、網羅的でない実施形態と図面によって本発明を説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような基材から多様な修正および変形が可能である。
【００７９】
したがって、本発明の範囲は説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められなければならない。
【図１】
2012521033.tif 000003
【図２】
2012521033.tif 000004
【国際調査報告】
2012521033.tif 000005
2012521033.tif 000006
2012521033.tif 000007
2012521033.tif 000008