(57)【要約】      （修正有）【課題】フラッシュ基盤メモリモジュール及びその作動方法を提供する。【解決手段】インモジュールのプリフェッチャ２００、インモジュールのプリフェッチバッファ１６０、メモリ１５０ａ〜１５０ｚ及びメモリコントローラ１４０を含むメモリモジュール１００にデータを格納する方法は、インモジュールのプリフェッチャからのアドレス情報をメモリコントローラ及びプリフェッチバッファに伝送する段階、メモリコントローラに伝送されたアドレス情報とプリフェッチバッファに伝送されたアドレス情報との比較によってプリフェッチの精度を判断する段階、プリフェッチ精度に基づいてプリフェッチモードを決定する段階及びプリフェッチモードにしたがってメモリにデータを格納する段階を含む。【選択図】図１
2018055683.tif 000002
【特許請求の範囲】
【請求項１】
インモジュール（ｉｎ−ｍｏｄｕｌｅ）のプリフェッチャ（ｐｒｅｆｅｔｃｈｅｒ）、インモジュールのプリフェッチバッファ、メモリ、及びメモリコントローラを含むメモリモジュールにデータを格納する方法であって、
前記インモジュールのプリフェッチャからのアドレス情報を前記メモリコントローラ及び前記プリフェッチバッファに伝送する段階と、
前記メモリコントローラに伝送されたアドレス情報と前記プリフェッチバッファに伝送されたアドレス情報との比較によってプリフェッチ精度を判断する段階と、
前記プリフェッチ精度に基づいてプリフェッチモードを決定する段階と、
前記プリフェッチモードにしたがって前記メモリに前記データを格納する段階と、を含むことを特徴とするデータ格納方法。
【請求項２】
前記インモジュールのプリフェッチャのアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階と、
前記アドレスヒストリーテーブルによってアクセスパターンを検出する段階と、をさらに含むことを特徴とする請求項１に記載のデータ格納方法。
【請求項３】
前記プリフェッチモードを決定する段階は、前記インモジュールのプリフェッチャのプリフェッチモードレジスターを使用してストライド（ｓｔｒｉｄｅ）、方向、グラニュラリティ（ｇｒａｎｕｌａｒｉｔｙ）、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定する段階を含むことを特徴とする請求項２に記載のデータ格納方法。
【請求項４】
前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定する段階は、アドレスヒストリーテーブルに格納されたアドレスヒストリー及び判断されたプリフェッチ精度に基づくことを特徴とする請求項３に記載のデータ格納方法。
【請求項５】
前記ストライド、方向、及びグラニュラリティに基づいてプリフェッチアドレスを生成する段階をさらに含むことを特徴とする請求項３に記載のデータ格納方法。
【請求項６】
前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の決定された少なくとも１つによってインモジュールのプリフェッチャのプリフェッチングスケジューラーを使用してプリフェッチ動作をトリガーするためにメモリコントローラに要請信号を伝送する段階をさらに含むことを特徴とする請求項３に記載のデータ格納方法。
【請求項７】
メモリモジュールのインモジュールの書込みバッファ及び書込み制御モジュールによりアドレス情報を受信する段階と、
アドレス情報によってライトバックモード及びライトバックタイムの中の１つを決定する段階と、をさらに含むことを特徴とする請求項１に記載のデータ格納方法。
【請求項８】
前記ライトバックモードは、可能な限り速やかにメモリに情報を書込みための即時書込みモード（ｉｍｍｅｄｉａｔｅ  ｗｒｉｔｅ  ｍｏｄｅ）又は１回書込みにより書込みバッファからの複数ブロックの情報を前記メモリに結合する融合書込みモード（ｃｏａｌｅｓｃｅｄ  ｗｒｉｔｅ  ｍｏｄｅ）を含むことを特徴とする請求項７に記載のデータ格納方法。
【請求項９】
前記インモジュールの書込みバッファ及び書込みコントローラモジュールにより前記アドレス情報を受信する段階は、書込みアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階をさらに含み、
前記ライトバックモード及び前記ライトバックタイムの中の少なくとも１つを決定することは、前記書込みアドレスヒストリーテーブルにさらに基づくことを特徴とする請求項７に記載のデータ格納方法。
【請求項１０】
前記決定されたライトバックモード又は前記決定されたライトバックタイムを前記書込みバッファのスケジューラー及び書込みコントローラモジュールに伝送する段階と、
前記決定されたライトバックモード又は前記決定されたライトバックタイムに基づいて前記書込みバッファから前記メモリまでの書込みをスケジュールするためのスケジューラーを使用する段階と、を含むことを特徴とする請求項７に記載のデータ格納方法。
【請求項１１】
メモリコントローラと、
前記メモリコントローラにプリフェッチ動作をトリガーするための要請を伝送するインモジュールのプリフェッチャと、
前記インモジュールのプリフェッチャに結合されて前記インモジュールのプリフェッチャからデータを受信するためのインモジュールのプリフェッチバッファと、
メモリに書き込まれる情報を格納するためのインモジュールの書込みバッファと、
前記インモジュールの書込みバッファから前記メモリへの書込みをスケジューリングするためのインモジュールの書込みコントローラと、を含むことを特徴とするメモリモジュール。
【請求項１２】
前記インモジュールのプリフェッチャは、前記メモリモジュールのプリフェッチモードを決定する複数のプリフェッチモードレジスターを含み、前記プリフェッチモードレジスターは、
ストライドレジスターと、
方向レジスターと、
グラニュラリティレジスターと、
プリフェッチタイムレジスターと、
休止時間レジスターの中の少なくとも１つと、を含むことを特徴とする請求項１１に記載のメモリモジュール。
【請求項１３】
前記ストライドレジスターは、前記インモジュールのプリフェッチャが順次的にプリフェッチアドレスをアクセスするようにする順次プリフェッチングモード、前記インモジュールのプリフェッチャがオフセット方式にプリフェッチアドレスをアクセスするようにするストライドプリフェッチングモード、又は前記インモジュールのプリフェッチャがアドレスヒストリー及びプリフェッチ精度に基づいてプリフェッチアドレスをアクセスするようにする自動プリフェッチングモードの中の１つを決定するように構成され、
前記方向レジスターは、前記インモジュールのプリフェッチャが昇順にプリフェッチアドレスをアクセスするようにする昇順モード、前記インモジュールのプリフェッチャが降順にプリフェッチアドレスをアクセスするようにする降順モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及びプリフェッチ精度に基づいて降順又は昇順にプリフェッチアドレスをアクセスするようにする自動モードの中の１つを決定するように構成され、
前記グラニュラリティレジスターは、グラニュラリティが与えられたサイズの固定されたグラニュラリティであるか、又は前記アドレスヒストリー及び前記プリフェッチ精度に基づいたグラニュラリティであるかを決定するように構成され、
前記プリフェッチタイムレジスターは、前記インモジュールのプリフェッチャが継続的にプリフェッチングを遂行するようにする連続プリフェッチモード、前記インモジュールのプリフェッチャに要請がある時、プリフェッチングを遂行するようにする受信要請モード、前記インモジュールのプリフェッチャが単なるキャッシュミス又はプリフェッチミスである場合、プリフェッチングを遂行するようにするキャッシュ／プリフェッチミス（ｍｉｓｓ）モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度にしたがってプリフェッチングを遂行するようにする自動モードの中の１つを決定するように構成され、
前記休止時間レジスターは、前記インモジュールのプリフェッチャが活性化されない常時休止モード（ａｌｗａｙｓ  ｐａｕｓｅｄ  ｍｏｄｅ）、前記インモジュールのプリフェッチャが常に活性化される非休止モード（ｎｅｖｅｒ  ｐａｕｓｅｄ  ｍｏｄｅ）、前記インモジュールのプリフェッチャが前記プリフェッチバッファが一杯に満たされる時、休止されるようにするバッファ容量モード、及び前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度に基づいて休止されるようにする自動モードの中の１つを決定するように構成されることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１４】
前記インモジュールのプリフェッチャは、前記プリフェッチモードレジスターから受信された情報によって前記メモリコントローラに要請を伝送するためのプリフェッチングスケジューラーを含むことを特徴とする請求項１２に記載のメモリモジュール。
【請求項１５】
前記インモジュールの書込みコントローラは、複数の書込みバッファを含み、前記複数の書込みバッファは、
ライトバックモードレジスターと、
ライトバックタイムレジスターと、を含むことを特徴とする請求項１１に記載のメモリモジュール。
【請求項１６】
前記ライトバックモードレジスターは、
インモジュールの書込みバッファ及び書込みコントローラモジュールが可能な限り速やかにメモリモジュールのメモリに情報を書き込むようにする即時書込みモードと、
インモジュールの書込みバッファ及び書込みコントローラモジュールが分離されたブロックの情報をメモリに１回書込みにより結合する融合書込みモードと、
メモリモジュールが即時書込みモード又は融合書込みモードの中のいずれを使用するかを決定するために書込みアドレスヒストリーテーブルを使用するようにする自動モードと、を含むことを特徴とする請求項１５に記載のメモリモジュール。
【請求項１７】
前記ライトバックモードレジスターが融合書込みモードを決定すれば、前記ライトバックタイムレジスターは、時間、前記インモジュールの書込みバッファの容量、又はデータの持続性にしたがう優先順位に基づいて前記メモリにデータを書き込むタイムを決定することを特徴とする請求項１６に記載のメモリモジュール。
【請求項１８】
ホストと直接通信することができ、前記メモリモジュールのメモリキャッシュとして動作するＤＲＡＭをさらに含み、
前記インモジュールのプリフェッチバッファ及び前記インモジュールの書込みバッファは、前記ＤＲＡＭの構成要素であることを特徴とする請求項１１に記載のメモリモジュール。
【請求項１９】
メモリと、
インモジュールのプリフェッチバッファと、
ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定し、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つによってプリフェッチアドレスを生成するインモジュールのプリフェッチャと、
その都度、即時にメモリに書き込むか、又は別々のブロックのデータを結合して単一書込みによりメモリに書き込むかを決定し、メモリに書込みスケジューリングをするためのインモジュールの書込みバッファ及び書込みコントローラモジュールを含むことを特徴とするＮＶＤＩＭＭ型モジュール。
【請求項２０】
前記メモリ、前記インモジュールのプリフェッチバッファ、及び前記インモジュールのプリフェッチャに結合されたメモリコントローラをさらに含み、
前記メモリコントローラは、前記インモジュールの書込みバッファ及び書込みコントローラモジュールを含むことを特徴とする請求項１９に記載のＮＶＤＩＭＭ型モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は改善されたフラッシュ基盤メモリモジュール、ＮＶＤＩＭＭ型モジュール、及びそのデータ格納方法に係り、より詳しくは、バイトアドレス可能なフラッシュ基盤メモリモジュール、ＮＶＤＩＭＭ型モジュール、及びそのデータ格納方法に関する。
【背景技術】
【０００２】
メモリ格納装置の分野において、大容量メモリを格納するデータセンターは高容量、高性能、低電力及び低費用を達成しようとする。フラッシュメモリはデータセンターとして実現性のある候補であり、動的ランダムアクセスメモリ（ＤＲＡＭ）と比較する時、フラッシュメモリは少ない費用で高容量及び効率的電力使用を提供する。例えば、フラッシュメモリはモジュール当たりテラバイト（ｔｅｒａｂｙｔｅ）の格納容量を提供し、これはＤＲＡＭより１０倍程度大きい容量である。また、フラッシュメモリは低待機電力である。
【０００３】
しかし、フラッシュメモリはＤＲＡＭと比較して耐久性（ｅｎｄｕｒａｎｃｅ）は制限され性能が劣る。例えば、特定タイプのフラッシュメモリ（例えば、ＬＬＮＡＮＤ又はＺ−ＮＡＮＤ）は、ＤＲＡＭに比べて読出し及び書込み動作に対する待機時間が顕著に長い。さらに、バイトアドレス可能な（ｂｙｔｅ−ａｄｄｒｅｓｓａｂｌｅ）ＬＬＮＡＮＤメモリを作るためにはアクセスグラニュラリティ（ｇｒａｎｕｌａｒｉｔｙ）がＤＲＡＭの６４Ｂに対して２ＫＢ又は４ＫＢである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は改善されたフラッシュ基盤メモリモジュール、ＮＶＤＩＭＭ型モジュール、及びそのデータ格納方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の実施形態によれば、インモジュール（ｉｎ−ｍｏｄｕｌｅ）のプリフェッチャ（ｐｒｅｆｅｔｃｈｅｒ）、インモジュールのプリフェッチバッファ、メモリ、及びメモリコントローラを含むメモリモジュールにデータを格納する方法を提供し、前記方法はインモジュールのプリフェッチャからのアドレス情報を前記メモリコントローラ及び前記プリフェッチバッファに提供する段階、前記メモリコントローラに送られたアドレス情報と前記プリフェッチバッファに送られたアドレス情報の比較によってプリフェッチの精度を判断する段階、前記プリフェッチの精度に基づいてプリフェッチモードを決定する段階、及び前記プリフェッチモードにしたがってメモリにデータを格納する段階を含む。
【０００６】
前記方法は前記インモジュールのプリフェッチャのアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階、及び前記アドレスヒストリーテーブルによってアクセスパターンを検出する段階をさらに含む。
【０００７】
前記プリフェッチモードを決定する段階は前記インモジュールのプリフェッチャのプリフェッチモードレジスターを利用してストライド（ｓｔｒｉｄｅ）、方向、グラニュラリティ（ｇｒａｎｕｌａｒｉｔｙ）、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定する段階を含む。
【０００８】
前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定する段階は、アドレスヒストリーテーブルに格納されたアドレスヒストリー及び決定されたプリフェッチ精度に基づく。
【０００９】
前記方法は前記ストライド、方向、及びグラニュラリティに基づいてプリフェッチアドレスを生成する段階をさらに含む。
【００１０】
前記方法は前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の決定された少なくとも１つによってインモジュールのプリフェッチャのプリフェッチングスケジューラーを使用してプリフェッチ動作をトリガーするために前記メモリコントローラに要請信号を伝送する段階をさらに含む。
【００１１】
前記方法はメモリモジュールのインモジュールの書込みバッファ及び書込み制御モジュールによりアドレス情報を受信する段階と、アドレス情報によってライトバック（ｗｒｉｔｅ  ｂａｃｋ）モード及びライトバックタイムの中の１つを決定する段階と、を含む。
【００１２】
前記ライトバックモードは可能な限り速やかにメモリに情報を書き込むための即時書込みモード（ｉｍｍｅｄｉａｔｅ  ｗｒｉｔｅ  ｍｏｄｅ）又は１回書込みにより書込みバッファからの多数ブロックの情報を前記メモリに結合する融合書込みモード（ｃｏａｌｅｓｃｅｄ  ｗｒｉｔｅ  ｍｏｄｅ）を含む。
【００１３】
前記インモジュールの書込みバッファ及び書込みコントローラモジュールにより前記アドレス情報を受信する段階は、書込みアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階を含み、前記ライトバックモード及び前記ライトバックタイムの中の少なくとも１つを決定することは前記書込みアドレスヒストリーテーブルにさらに基づく。
【００１４】
前記方法は前記決定されたライトバックモード又は前記決定されたライトバックタイムを前記書込みバッファのスケジューラー及び書込みコントローラモジュールに伝送する段階、及び前記決定されたライトバックモード又は前記決定されたライトバックタイムに基づいて書込みバッファから前記メモリまでの書込みをスケジュールするためのスケジューラーを使用する段階を含む。
【００１５】
本発明の他の実施形態によれば、メモリコントローラ、前記メモリコントローラにプリフェッチ動作をトリガーするための要請を伝送するインモジュールのプリフェッチャ、前記インモジュールのプリフェッチャに結合されて前記インモジュールのプリフェッチャからデータを受信するためのインモジュールのプリフェッチバッファ、メモリに書き込まれる情報を格納するためのインモジュールの書込みバッファ、及び前記インモジュールの書込みバッファから前記メモリまでの書込みをスケジューリングするためのインモジュールの書込みコントローラを含むメモリモジュールを提供する。
【００１６】
前記インモジュールのプリフェッチャは前記メモリモジュールのプリフェッチモードを決定する多数のプリフェッチモードレジスターを含み、前記プリフェッチモードレジスターはストライドレジスター、方向レジスター、グラニュラリティレジスター、プリフェッチタイムレジスター、及び休止時間レジスターの中の少なくとも１つを含む。
【００１７】
前記ストライドレジスターは前記インモジュールのプリフェッチャが順次的にプリフェッチアドレスをアクセスするようにする順次プリフェッチングモード、前記インモジュールのプリフェッチャがオフセット方式にプリフェッチアドレスをアクセスするようにするストライドプリフェッチングモード、又は前記インモジュールのプリフェッチャがアドレスヒストリー及びプリフェッチ精度に基づいてプリフェッチアドレスをアクセスするようにする自動プリフェッチングモードの中の１つを決定する。また、前記方向レジスターは前記インモジュールのプリフェッチャが昇順にプリフェッチアドレスをアクセスするようにする昇順モード、前記インモジュールのプリフェッチャが降順にプリフェッチアドレスをアクセスするようにする降順モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及びプリフェッチ精度に基づいて降順又は昇順にプリフェッチアドレスをアクセスするようにする自動モードの中の１つを決定する。また、前記グラニュラリティレジスターはグラニュラリティが与えられたサイズの固定されたグラニュラリティであるか、又は前記アドレスヒストリー及び前記プリフェッチ精度に基づいたグラニュラリティであるかを決定する。また、プリフェッチタイムレジスターは前記インモジュールのプリフェッチャが継続的にプリフェッチングを遂行するようにする連続プリフェッチモード、前記インモジュールのプリフェッチャが要請がある時、プリフェッチングを遂行するようにする受信要請モード、前記インモジュールのプリフェッチャが単なるキャッシュ又はプリフェッチミスである場合、プリフェッチングを遂行するようにするキャッシュ／プリフェッチミス（ｍｉｓｓ）モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度にしたがってプリフェッチングを遂行するようにする自動モードの中の１つを決定する。また、休止時間レジスターは前記インモジュールのプリフェッチャが活性化されない常に休止モード（ａｌｗａｙｓ  ｐａｕｓｅｄ  ｍｏｄｅ）、前記インモジュールのプリフェッチャが常に活性化される非休止モード（ｎｅｖｅｒ  ｐａｕｓｅｄ  ｍｏｄｅ）、前記インモジュールのプリフェッチャが前記プリフェッチバッファがいっぱいに満たされる時、休止されるようにするバッファ容量モード、及び前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度に基づいて休止されるようにする自動モードの中の１つを決定する。
【００１８】
前記インモジュールのプリフェッチャは前記プリフェッチモードレジスターから受信された情報によって前記メモリコントローラに要請を伝送するためのプリフェッチングスケジューラーを含む。
【００１９】
前記インモジュールの書込みコントローラは、多数の書込みバッファを含み、前記多数の書込みバッファは、ライトバックモードレジスターと、  ライトバックタイムレジスターと、を含む。
【００２０】
前記ライトバックモードレジスターはインモジュールの書込みバッファ及び書込みコントローラモジュールが可能な限り速やかにメモリモジュールのメモリに情報を書き込むようにする即時書込みモード、インモジュールの書込みバッファ及び書込みコントローラモジュールがメモリに１回書込みにより分離されたブロックの情報を結合する融合書込みモード、又はメモリモジュールが即時書込みモード又は融合書込みモードの中のどれを使用するかを決定するために書込みアドレスヒストリーテーブルを使用するようにする自動モードを含む。
【００２１】
前記ライトバックモードレジスターが融合書込みモードを決定すれば、前記ライトバックタイムレジスターは時間、前記インモジュールの書込みバッファの容量又はデータの持続性にしたがう優先順位に基づいて前記メモリにデータを書き込むタイムを決定する。
【００２２】
前記メモリモジュールは前記ホストと直接通信することができ、前記メモリモジュールのメモリキャッシュとして動作するＤＲＡＭをさらに含み、前記インモジュールのプリフェッチバッファ及び前記インモジュールの書込みバッファは前記ＤＲＡＭの構成要素である。
【００２３】
本発明の他の実施形態によれば、メモリ、インモジュールのプリフェッチバッファ、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つを決定し、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも１つによってプリフェッチアドレスを生成するインモジュールのプリフェッチャ、及び可能な限り速やかにメモリに書き込むか、又は区別されたブロックのデータを結合して単一書込みでメモリに書き込むかを決定し、メモリに書込みスケジューリングをするためのインモジュールの書込みバッファ及び書込みコントローラモジュールを含むＮＶＤＩＭＭ型モジュールを提供する。
【００２４】
前記ＮＶＤＩＭＭ型モジュールは前記メモリ、前記インモジュールのプリフェッチバッファ、及び前記インモジュールのプリフェッチャに結合されたメモリコントローラをさらに含み、前記メモリコントローラは前記インモジュールの書込みバッファ及び書込みコントローラモジュールを含む。
【発明の効果】
【００２５】
本発明によれば、待機時間を減少しながら、大量のメモリを十分に格納でき、耐久性を改善できるフラッシュ基盤メモリモジュール、ＮＶＤＩＭＭ型モジュール、及びそのデータ格納方法を提供できる。
【図面の簡単な説明】
【００２６】
本発明に係る実施形態のこれらの側面及び他の側面は明細書、請求の範囲及び添付図面を参照して理解されるべきである。
【図１】本発明の一実施形態に係るフラッシュ基盤メモリモジュールの構成要素を示したブロック図である。
【図２】本発明の一実施形態に係る図１に図示したフラッシュ基盤メモリモジュールのプリフェッチャの構成要素を示したブロック図である。
【図３】本発明の一実施形態に係る図１に図示したフラッシュ基盤メモリモジュールのインモジュールの書込みバッファ及び書込みコントローラモジュールを示したブロック図である。
【発明を実施するための形態】
【００２７】
本発明に係る実施形態は改善されたフラッシュ基盤メモリモジュール、ＮＶＤＩＭＭ型モジュール、及びそのデータ格納方法に係る。
【００２８】
本発明の特徴及びこれを達成する方法は次の実施形態及び添付図面の詳細な説明を参照すればより容易に理解される。以下、添付した図面を参照して本発明の望ましい実施形態に対して詳細に説明し、ここで同一の図面符号は明細書の全体に同一の構成要素を指称する。しかし、本発明は多様な形態にて具体化でき、ここに図示した実施形態に限定されると解釈されてはならない。むしろ、実施形態は本発明が完璧に、完全に、当業者に本発明の多様な側面及び特徴が十分に伝達されるように例示的に提供する。したがって、本発明の様相及び特徴の完全な理解のために当業者に不必要なプロセス、要素、及び技術は説明しないことがある。また他の言及が無い限り、同一の図面符号は添付した図面及び詳細な説明の全般にわたって同一の構成要素を示し、それに対する説明は反複しない。図面において、要素、層、及び領域の相対的なサイズは明確性のために誇張される。
【００２９】
‘‘第１’’、  ‘‘第２’’、‘‘第３’’等の用語は本明細書における多様な構成要素、成分、領域、層、及び／又はセクションを説明するために使用するが、これらの構成要素、部品、領域、層、及び／又はセクションはこれらの用語によって制限されない。これらの用語は１つの要素、成分、領域、層、又はセクションを他の要素、成分、領域、層、又はセクションと区別するために使用する。したがって、以下に説明する第１要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱せずに、第２要素、成分、領域、層、又はセクションとして説明できる。
【００３０】
‘‘下に’’、‘‘より下に’’、‘‘下部に’’、‘‘上に’’、‘‘上部に’’等の空間的に相対的な用語は図面に図示するように１つの構成要素又は他の要素又は特徴との特徴関係を説明するために、説明を簡易にするために使用する。また、空間的に相対的な用語は図面に図示した方向に追加して、使用又は作動の時、装置の異なる方向を含むと理解される。例えば、図面の装置が反転されれば、他の要素又は特徴の‘‘下’’又は‘‘低’’又は‘‘下部’’と記述された要素は他の要素又は特徴の‘‘上’’に位置する。したがって、‘‘下’’及び‘‘下端’’の例示的な用語は上及び下の方向の全てを含む。前記装置は他の方向に配置され（例えば、９０°又は他の方位に回転される）、本明細書において使用する空間的に相対的な技術用語は状況に合うように解釈されなければならない。
【００３１】
構成要素、層、領域、又は成分が他の構成要素、層、領域又は成分の‘‘上に’’、‘‘結合された’’、‘‘連結された’’と言及する時、それは他の要素、層、領域、又は成分に直接的に上にあるか、連結されたか、或いは結合され、１つ以上の介在された構成要素、層、領域、又は成分が存在できる。また、１つの構成要素又は層が２つの構成要素又は層の‘‘間に’’あると言及する時、２つの構成要素又は層間に１つの構成要素又は層が存在するか、又はその間に１つ以上の構成要素又は層が存在する。
【００３２】
本明細書において使用した用語は実施形態を説明するためであり、本発明を制限しようとすることではない。ここで使用した単数形態は文脈の上に特に指示しない限り、複数形態を含む。本明細書において使用する‘‘含む’’、  ‘‘具備する’’、という用語は明示された特徴、整数、段階、動作、構成要素及び／又は成分の存在を特定するが、１つ以上の他の特徴、整数、段階、動作、構成要素、成分及び／又はこれらのグループの存在又は追加を排除しない。本明細書に使用したように、‘‘及び／又は’’という用語は１つ以上の列挙された関連項目の任意及びすべての組合せを含む。‘‘少なくとも１つ’’のような表現が複数の要素の前にある時、複数の要素の全体にかかり、その個別要素にかからない。
【００３３】
本明細書において使用する用語‘‘実質的に’’、‘‘約’’、及びこれと類似な用語は近似語として使用され、程度用語として使用されなく、当業者によって認識される測定された又は計算された数値の固有の偏差を説明するためである。また、本発明の概念の実施形態を記述する時、‘‘することができる’’を使用することは‘‘本発明の１つ以上の実施形態’’を意味する。本明細書に使用した用語‘‘使用する’’、‘‘使用’’、及び‘‘使用された’’は用語‘‘活用する’’、‘‘活用’’、及び‘‘活用された’’のそれぞれ同義語として考慮される。また‘‘例示的な’’という用語は例又は説明を意味する。
【００３４】
特定実施形態が実施される場合、特定処理順序が説明した順序と異なって遂行できる。例えば、２つが連続的に記述されたプロセスは実質的に同時に遂行されるか、或いは説明した順序と反対の順序にて遂行できる。
【００３５】
本明細書において記述する実施形態に係る電子又は電気装置及び／又は任意の他の関連装置又は構成要素は任意の適合なハードウェア、ファームウェア（例えば、注文形集積回路）、ソフトウェア、又はこれらの組合せを利用して実施される。例えば、このような装置の多様な構成要素は１つの集積回路（ＩＣ）チップ上に又は別のＩＣチップ上に形成される。また、これら装置の多様な構成要素は可撓性印刷回路フィルム、テープキャリヤーパッケージ（ＴＣＰ）、印刷回路基板（ＰＣＢ）上に具現されるか、或いは１つの基板上に形成される。また、これら装置の多様な構成要素は１つ以上のプロセッサ、１つ以上のコンピューティング装置により実行され、コンピュータプログラム命令を遂行し、ここに説明した多様な機能を遂行するために他のシステム構成要素と相互作用するプロセス又はスレッド（ｔｈｒｅａｄ）である。前記コンピュータプログラム命令は、例えばランダムアクセスメモリ（ＲＡＭ）のような標準メモリ装置を利用するコンピューティング装置により具現されるメモリに格納される。また、前記コンピュータプログラム命令は、例えばＣＤ−ＲＯＭ、フラッシュドライブ等のような非一時的なコンピュータ読出し可能媒体に格納される。また、当業者は多様なコンピューティング装置の機能が単一コンピューティング装置に結合されるか、或いは統合され、又は特定コンピューティング装置の機能が本発明の思想と範囲を逸脱しない範囲内において１つ以上の他のコンピューティング装置にわたって分散される。
【００３６】
特に定義しない限り、本明細書に使用したすべての用語（技術的及び科学的用語を含む）は本発明が属する技術分野における当業者によって一般的に理解される同一の意味を有する。また、一般的に使用される辞典に定義された用語のような用語は関連技術及び／又は本明細書と関連してその意味と一致する意味を有すると解釈され、理想的であるか、或いはあまりにも形式的な意味として解釈されない。
【００３７】
前述したように、フラッシュ基盤メモリは動的ランダムアクセスメモリ（ＤＲＡＭ）と比較する時、所定の長所及び短所を有する。フラッシュ基盤メモリを使用する場合、プリフェッチング（例えば、後に使用するが、さらに速やかにアクセスするためにメインメモリからデータを臨時格納装置に伝送する）は特定応用プログラム（例えば、該当アクセスパターンを予測できる場合）として利用できる。例えば、制限されたボルツマンマシン（Ｒｅｓｔｒｉｃｔｅｄ  Ｂｏｌｔｚｍａｎ  Ｍａｃｈｉｎｅ：ＲＢＭ）と関連されて又は機械学習（即ち、畳み込みニューラルネットワーク（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）の完全連結されたレイヤー）と関連されて使用されるプリフェッチングはメモリにおいて共通物理的行（ｒｏｗ）に位置している様々なデータワードに速くアクセスできることによって、待機時間（ｌａｔｅｎｃｙ）を減少させる。例えば、プリフェッチが常に望むデータを得るのに成功すれば、プリフェッチングを使用することによって読出し待機時間がナノ秒単位に減少する。ここで読出し待機時間はプリフェッチバッファ待機時間、コントローラ待機時間、及びプロトコルオーバーヘッドを全て合わせたものである。
【００３８】
したがって、本発明の実施形態は長いアクセス待機時間を緩和し、耐久性を向上させながら、高速のバイトアドレスが可能な（ｂｙｔｅ−ａｄｄｒｅｓｓａｂｌｅ）フラッシュ基盤（例えば、ＬＬＮＡＮＤ基盤）メモリモジュールのアーキテクチャを提供する。また、フラッシュ基盤メモリモジュールは新規であり、向上したメモリインターフェイスプロトコルと共に使用される。付加的に、ここに説明したアーキテクチャは不揮発性デュアルインラインメモリモジュール（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）（例えば、ＮＡＮＤ及びＤＲＡＭをメモリアドレス空間にマッピングするＮＶＤＩＭＭ−Ｐ  ＬＬＮＡＮＤモジュール）又は任意の他のトランザクション（ｔｒａｎｓａｃｔｉｏｎ）基盤ＬＬＮＡＮＤモジュール（例えば、非同期式メモリプロトコルを使用する潛在的に未来標準トランザクション基盤モジュールであるＧｅｎ−Ｚ  ＬＬＮＡＮＤモジュール）と共に使用される。
【００３９】
図１は本発明の一実施形態に係るフラッシュ基盤メモリモジュールの構成要素を示したブロック図である。
【００４０】
図１にフラッシュ基盤メモリモジュール（例えば、ＮＶＤＩＭＭ−Ｐモジュール）１００を示す。ＮＶＤＩＭＭ型モジュールを図示したが、本発明の他の実施形態はＤＩＭＭの他のタイプ又はフラッシュ基盤メモリモジュールの他のタイプを含む。待機時間の減少を達成するインモジュール（モジュール１００内に位置する）のプリフェッチャ２００及びインモジュールのプリフェッチバッファ１６０に注意するべきである。また、モジュール１００の耐久性を向上させるためにモジュール内の書込み統合を可能にする書込みコントローラ１４４及び書込みバッファ１４２（例えば、図３に図示するインモジュールの書込みバッファ及び書込みコントローラモジュール３００）に注意するべきである。このような構成要素及び特徴は図２及び図３を参照してさらに詳細に説明する。追加的に、本発明の実施形態においては書込みバッファ１４２及びプリフェッチバッファ１６０を別のモジュールとして示しているが、書込みバッファ１４２及びプリフェッチバッファ１６０は１つのモジュールの一部をなすか、又は別のチップに具備できる。他の実施形態において、書込みバッファ１４２とプリフェッチバッファ１６０とはＤＲＡＭ１１０のＤＲＡＭバッファの別の論理的な細分区域（ｓｅｐａｒａｔｅ  ｌｏｇｉｃａｌ  ｓｕｂｄｉｖｉｓｉｏｎｓ）である。
【００４１】
アドレスバス（例えば、カラムアドレスバス）１７０及びＤＱバス１８０（例えば、データバス）はモジュール１００とホストとの間の通信を許容するメモリインターフェイスを提供する。追加的に、フロントエンドのＤＲＡＭ１１０は前記ホストと直接通信するためにモジュール１００に含まれてメモリキャッシュとしての役割を遂行する。ＤＲＡＭ１１０に連結されたデータバッファ１２０は一時的ストレージとして前記ホストと通信する。また、ＤＲＡＭ１１０に連結されたレジスターリングクロックドライバー（Ｒｅｇｉｓｔｅｒｉｎｇ  ｃｌｏｃｋ  ｄｒｉｖｅｒ：ＲＣＤ）バッファ１３０は前記ホストから受信されたアドレス情報（例えば、カラムアドレス情報）１９０に対応する情報をバッファーリングするために使用される。
【００４２】
メモリコントローラ（例えば、ＬＬＮＡＮＤコントローラ１４０）はメモリ／データストレージ（例えば、バックエンド（ｂａｃｋ−ｅｎｄ）ＬＬＮＡＮＤデータストレージ１５０）にインターフェイスとして提供されてデータを格納するのに充分な高容量メモリを提供する。したがって、前記ホストが複数のバックエンドＬＬＮＡＮＤモジュール１５０ａ乃至１５０ｚを含むバックエンドＬＬＮＡＮＤデータストレージ１５０に格納されたデータにアクセスすることを望むと、前記ホストはＬＬＮＡＮＤコントローラ１４０と先ず通信をしなければならない。ここではＬＬＮＡＮＤコントローラ１４０に対応するＬＬＮＡＮＤデータストレージ１５０を説明したが、他のタイプのメモリコントローラ及びフラッシュ基盤メモリのデータストレージは本発明の他の実施形態に関連されて使用される。
【００４３】
書込みバッファ１４２はＬＬＮＡＮＤコントローラ１４０内に具備されて、バックエンドＬＬＮＡＮＤデータストレージ１５０に伝送される書込みデータを一時的に格納し、ＬＬＮＡＮＤコントローラ１４０内にまた具備される書込みコントローラ１４４は何時どのようにしてバックエンドＬＬＮＡＮＤデータストレージ１５０にデータを書き込むかをスケジュールする。これについては図３を参照してさらに具体的に後述する。また、ＬＬＮＡＮＤコントローラ１４０にはキャッシュコントローラ１４６が具備される。前記ホストは場合によっては、前記ホスト内に含まれたモジュール１００をコントロールするためのマスターの代わりにＤＲＡＭ１１０に直接アクセスするが、ＬＬＮＡＮＤコントローラ１４０が前記マスターとして機能する場合、ＬＬＮＡＮＤコントローラ１４０はＤＲＡＭ１１０にアクセスするためにキャッシュコントローラ１４６を使用する。
【００４４】
また、モジュール１００にはプリフェッチャ２００及びプリフェッチバッファ１６０が含まれ、これは図２を参照して説明する。
【００４５】
図２は本発明の一実施形態に係る図１に図示したフラッシュ基盤メモリモジュールのプリフェッチャの構成要素を示したブロック図である。
【００４６】
図２を参照すれば、本実施形態に係る前記インモジュールのプリフェッチャ２００はモジュール１００がどんな形態のプリフェッチモードを使用するかを前記ホスト／マスターが決定できるようにする多数のプリフェッチモードレジスター２１０を含む。
【００４７】
第１プリフェッチモードレジスターはストライド（ｓｔｒｉｄｅ）レジスター２１０ａである。ストライドレジスター２１０ａはプリフェッチャ２００がストライドプリフェッチング（例えば、以前アドレスから若干距離（Ｓ）が外れたアドレスをプリフェッチングする）するか、順次プリフェッチング（例えば、順次的にプリフェッチするか、又は順次プリフェッチングモードにおいて以前アドレスから前記若干距離（Ｓ）を外れたアドレスにプリフェッチする）するか、又は自動プリフェッチングモードを遂行するかを決定する。自動プリフェッチングモードはアドレスヒストリー２２０及びプリフェッチ精度２３０に基づいてモジュール１００によって決定され、アドレスヒストリー２２０はプリフェッチャ２００のアドレスヒストリーテーブル２２５に格納され、プリフェッチ精度２３０はプリフェッチャ２００内において計算される。したがって、前記ホストは順次プリフェッチング又はストライドプリフェッチングを使用するか否かを指示し、したがって、モジュール１００はホストがストライドレジスター２１０ａによって表示されたプリフェッチングタイプを変化させる時まで対応するプリフェッチパターンを続けて使用する。代案的に、ホストは自動プリフェッチングモードに対応するようにストライドレジスター２１０ａをプログラミングすることによって、モジュール１００がどのプリフェッチングパターンを使用するかを決定する。
【００４８】
第２プリフェッチモードレジスターは方向レジスター２１０ｂである。方向レジスター２１０ｂはプリフェッチアドレスが昇順（例えば、プリフェッチアドレスが前記ストライド距離のポジティブ‘‘Ｓ’’に対応する昇順モード）にアクセスされるか、或いは前記プリフェッチアドレスが降順（例えば、プリフェッチアドレスが前記ストライド距離のネガティブ‘‘Ｓ’’に対応する降順モード）にアクセスされるように指示する。したがって、方向レジスター２１０ｂが降順を示せば、前記ホストは前記プリフェッチアドレスが降順にフェッチされるように指示し、方向レジスター２１０ｂが昇順を示せば、前記ホストは前記プリフェッチアドレスが昇順にフェッチされるように指示する。追加的に、方向レジスター２１０ｂは自動モードを示して、プリフェッチアドレスがアクセスされる方向はモジュール１００によって（例えば、前記アドレスヒストリー２２０及び前記計算されたプリフェッチ精度２３０に基づいて）決定される。
【００４９】
第３プリフェッチモードレジスターはグラニュラリティ（ｇｒａｎｕｌａｒｉｔｙ）レジスター２１０ｃである。グラニュラリティレジスター２１０ｃは多数の４ＫＢに固定された固定グラニュラリティ、‘‘Ｎ’’（ここで、‘‘Ｎ’’は任意のサイズ（例えば、２ＫＢ）である）に固定されたグラニュラリティの使用を指示するか、又は自動モードの使用を指示し、自動モードにおいてグラニュラリティはモジュール１００によって（例えば、アドレスヒストリー２２０及び計算されたプリフェッチ精度２３０に基づく）決定される。
【００５０】
第４プリフェッチモードレジスターはプリフェッチタイムレジスター２１０ｄである。プリフェッチタイムレジスター２１０ｄはモジュール１００が何時プリフェッチングをするかを決定する。第１オプションとして、プリフェッチタイムレジスター２１０ｄは連続プリフェッチモードにおいて続けてプリフェッチングする。ここで、プリフェッチングは計算されたプリフェッチ精度２３０に関わらず、続けて維持される。第２オプションとして、プリフェッチタイムレジスター２１０ｄは前記ホストから受信要請がある時のみ、モジュール１００がプリフェッチングを遂行するように指示する。第３オプションとして、プリフェッチタイムレジスター２１０ｄはただプリフェッチミス（ｐｒｅｆｅｔｃｈ  ｍｉｓｓ）、又はキャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）（即ち、モジュール１００のＤＲＡＭ１１０に対応するＤＲＡＭキャッシュミス（ｍｉｓｓ））である時のみにモジュール１００がプリフェッチをすることを決定する。第４オプションとして、プリフェッチタイムレジスター２１０ｄは自動モード（例えば、モジュール１００がアドレスヒストリー２２０及び計算されたプリフェッチ精度２３０に基づいてプリフェッチ時期を決定できる）を活性化させる。
【００５１】
第５プリフェッチモードレジスターはプリフェッチの休止時間を定義するように具現された休止時間レジスター２１０ｅである。即ち、休止時間レジスター２１０ｅはモジュール１００が何時プリフェッチングを停止すべきかを示す。例えば、第１オプションとして、前記ホスト／マスターはプリフェッチが活性化されず、したがって絶対遂行されないように（即ち、プリフェッチャ２００が常に休止される）休止時間レジスター２１０ｅを設定する。第２オプションとして、前記ホストは前記プリフェッチが環境に関わらず発生するように（即ち、プリフェッチャ２００が絶対休止されないように）休止時間レジスター２１０ｅを設定する。第３として、休止時間レジスター２１０ｅは２ポートランダムアクセスメモリ（ＲＡＭ）からなされたプリフェッチバッファ１６０が満たされれば、プリフェッチ動作を休止し、プリフェッチバッファ１６０が使用可能な充分な量を有すれば、休止させないようにプリフェッチ動作を設定する。第４として、休止時間レジスター２１０ｅはモジュール１００が休止時間を決定するように（例えば、アドレスヒストリー２２０及び計算されたプリフェッチ精度２３０に基づいて）自動モードに前記休止時間を設定する。
【００５２】
したがって、上述したレジスター２１０を利用して、プリフェッチオプションはホストによって決定されるか、或いは代わりにモジュール１００によって決定される。
【００５３】
プリフェッチャ２００はモジュール１００のＲＣＤバッファ１３０からアドレス情報１９０に対応する情報を受信する。プリフェッチャ２００はＲＣＤバッファ１３０から受信された情報をデコーディングし、デコードされたアドレス情報をＬＬＮＡＮＤコントローラ１４０及びプリフェッチバッファ１６０（例えば、プリフェッチバッファスケジューラ２８０を通じて）に分離して伝送するデコーダー２４０を含む。個別デコードされたアドレス情報（即ち、ＬＬＮＡＮＤコントローラ１４０に伝送される前記デコードされたアドレス情報、プリフェッチバッファ１６０に伝送される前記デコードされたアドレス情報）はプリフェッチ精度２３０を計算するために互いに比較される。したがって、計算完了したプリフェッチ精度２３０に基づいてプリフェッチ政策／プリフェッチモードを改善及び調整するためにプリフェッチバッファ１６０を活性化できるようにプリフェッチ精度２３０はプリフェッチバッファ１６０に伝送されるフィードバック情報としての役割を効果的に遂行する。
【００５４】
したがって、プリフェッチャ２００はプリフェッチ精度２３０及びアドレスヒストリーテーブル２２５から獲得したアドレスヒストリー２２０を使用してアクセスパターンを感知する。また、プリフェッチャ２００はストライドレジスター２１０ａ、方向レジスター２１０ｂ、及びグラニュラリティレジスター２１０ｃの設定を使用してストライド２５０、方向２５２、及びグラニュラリティ２５４を各々計算し、したがってプリフェッチアドレスとグラニュラリティ２６０を生成してプリフェッチングスケジューラー２７０に伝送する。
【００５５】
プリフェッチャ２００はプリフェッチタイム２５６及びプリフェッチ休止時間２５８を計算するために、プリフェッチタイムレジスター２１０ｄ及び休止時間レジスター２１０ｅの設定と共に、アドレスヒストリー２２０とプリフェッチ精度２３０とを使用する。プリフェッチタイム２５６及びプリフェッチ休止時間２５８は、またプリフェッチングスケジューラ２７０に伝送される。ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間に対応する情報に基づいて、プリフェッチスケジューラ２７０はプリフェッチをトリガーするためにＬＬＮＡＮＤコントローラ１４０に要請の形態により情報を伝送し、ＬＬＮＡＮＤデータストレージ１５０から何を読み出すかを決定するようにＬＬＮＡＮＤコントローラ１４０を活性化させる。
【００５６】
追加的に、プリフェッチヒット（ｈｉｔ）が感知されれば、これは望むデータがプリフェッチバッファ１６０において発見されたことを意味し、プリフェッチバッファスケジューラ２８０はプリフェッチバッファ１６０に簡単に直接的にアクセスできるので、望むデータのためにＬＬＮＡＮＤデータストレージ１５０に接近する必要はない。
【００５７】
前記プリフェッチアドレスは、またプリフェッチバッファ１６０から何時そして何を読み出すかを決定するように構成されたプリフェッチバッファスケジューラ２８０に伝送される。プリフェッチバッファ１６０は６４Ｂグラニュラリティにアクセスされ、特別な機能レジスターによって構成される。プリフェッチバッファ１６０はＬＬＮＡＮＤデータストレージ１５０と独立的であり、分離される物理的プリフェッチモードレジスター２１０の一部分である。
【００５８】
図３は本発明の一実施形態に係る図１のフラッシュ基盤メモリモジュールのインモジュールの書込みバッファ及び書込みコントローラモジュールを示したブロック図である。
【００５９】
図３を参照すれば、本発明のインモジュールの書込みバッファ及び書込みコントローラモジュール３００は２つの対応する書込みバッファレジスター３１０を有する。第１書込みバッファレジスターはライトバック（ｂａｃｋ）モードを定義するライトバックモードレジスター３１０ａであり、第２書込みバッファレジスターはライトバックタイムを定義するライトバックタイムレジスター３１０ｂである。
【００６０】
ライトバックモードレジスター３１０ａについて説明すると、前記ライトバックモードの第１オプションは即時書込みの許容であり、これは情報が書込みバッファ１４２に含まれる時ごとに、ＬＬＮＡＮＤコントローラ１４０はできる限り速やかにＬＬＮＡＮＤデータストレージ１５０に情報を再び書き込むことを意味する。例えば、ＬＬＮＡＮＤコントローラ１４０はＬＬＮＡＮＤデータストレージ１５０に効果的に直ちに書込みバッファ１４２からの６４Ｂ情報を書き込む。たとえこのような即時書込みモードが書込みバッファ１４２の有効性を増加させても、書込み情報が単に６４Ｂである場合にも２ＫＢ書込みバンド幅（帯域幅）が必要であるのでＬＬＮＡＮＤ書込みバンド幅が浪費され、したがってＬＬＮＡＮＤデータストレージ１５０の耐久性に否定的な影響を及ぼす。
【００６１】
ライトバックモードレジスター３１０ａは、また融合（ｃｏａｌｅｓｃｅｄ）書込みを許容する第２オプションを選択できる。たとえ、ＬＬＮＡＮＤデータストレージ１５０に対するグラニュラリティが２ＫＢ範囲であっても、フロントエンド（ｆｒｏｎｔ  ｅｎｄ）アクセス（即ち、ＤＲＡＭ１１０にアクセスすること）に対するグラニュラリティは単なる６４Ｂである。したがって、融合書込みを許容することによって、書込みバッファ１４２からの多数のブロックの情報を結合して、６４Ｂにより構成された情報のブロックの各々は単一ＬＬＮＡＮＤ書込み（即ち、大略２ＫＢ）を生成し、ＬＬＮＡＮＤデータストレージ１５０への書込みの全体数を減少させ、したがってＬＬＮＡＮＤデータストレージ１５０の耐久性及び寿命を延長させる。したがって、融合書込みオプションの使用によって、ＬＬＮＡＮＤ書込みバンド幅が浪費される量を減少させる。しかし、書込みバッファ１４２の有効性が減少する。即ち、書込みが遂行される前に、複数の６４Ｂの書込みが、キューイングされ、マージされるので、６４Ｂブロックの情報はＬＬＮＡＮＤデータストレージ１５０に再び書き込まれる充分な数の他のブロックの情報と融合される前に延長された期間の間に書込みバッファ１４２に残る可能性がある。
【００６２】
ライトバックモードレジスター３１０ａによる第３オプションはモジュール１００がどのライトバックモードを使用するか（即ち、前記即時書込みモード又は融合書込みモード）を決定する自動モードである。例えば、モジュール１００は最適なライトバックモード３２０が前記即時書込みモードであるか、又は融合書込みモードであるかを決定するために、前記インモジュールの書込みバッファ及び前記書込みコントローラモジュール内の書込みアドレスヒストリーテーブル３５０を使用する。
【００６３】
前記第２書込みバッファレジスターはライトバックタイムを構成するために使用されるライトバックタイムレジスター３１０ｂである。ライトバックタイムレジスター３１０ｂは前記融合書込みモードと共に使用される。ライトバックモードレジスター３１０ａが前記融合書込みオプションの使用を選択した場合、理論的に書込みバッファ１４２からの情報がＬＬＮＡＮＤデータストレージ１５０に再び書き込まれず、続けて待機することになる。したがって、データがＬＬＮＡＮＤデータストレージ１５０に決して再び書き込まれないシナリオを避けるためにライトバックタイムレジスター３１０ｂの使用によって、前記融合書込みオプションが適用される時までの最大待機時間に対する閾値時間又はイベントが使用される。
【００６４】
決定されたライトバックタイム３３０は時間、書込みバッファ１４２の容量に満たされる程度、又は持続性（ｐｅｒｓｉｓｔｅｎｃｙ）に基づいた優先順位によって決定される。ＮＡＮＤ技術は持続的なデータを保存する長所を有するので、ライトバックタイムレジスター３１０ｂはＬＬＮＡＮＤデータストレージ１５０に再び書き込まれるために持続的であるとされた情報が優先順位を得るか、又は書込みバッファ１４２を通過するかの決定において持続性を強要するかもしれない。したがって、例えば、ＬＬＮＡＮＤデータストレージ１５０に再び書き込むことは次の３つの場合の中の第１番目の発生にしたがってスケジュールされる。３つの場合とは６４Ｂブロックの情報が前記閾値時間以上に書込みバッファ１４２に留まる場合、書込みバッファ１４２が与えられたバッファ容量に到達する場合（即ち、バッファ容量モードにおける書込みバッファ１４２の満たされた比率に基づく）、又は前記ライトバックの優先順位が持続性に基づいて割当される場合である。
【００６５】
追加的に、プリフェッチバッファ１６０及び書込みバッファ１４２の中の１つ或いは全ては他の実施形態においてモジュール１００のＤＲＡＭ１１０の構成要素としてインスタンス化（ｉｎｓｔａｎｔｉａｔｅｄ）される。さらに、書込みバッファ１４２は他の実施形態において書込みコントローラ１４４と分離される。本実施形態において、前記インモジュールの書込みバッファ及び書込みコントローラモジュール３００は書込みアドレスヒストリーテーブル３５０を含む。したがって、書込みバッファ１４２はライトバックモード３２０及びライトバックタイム３３０の決定に基づいて書込みアドレスヒストリーテーブル３５０を利用する。ライトバックモード３２０及びライトバックタイム３３０を決定すれば、これに対応する情報はインモジュールの書込みバッファ及び書込みコントローラモジュール３００のスケジューラ３４０に供給される。スケジューラ３４０はこの情報を使用して何時書込みバッファ１４２がＬＬＮＡＮＤデータストレージ１５０に再び書き込むか、どの情報をＬＬＮＡＮＤデータストレージ１５０に書き込むか、どの順序に情報をＬＬＮＡＮＤデータストレージ１５０に書き込むかを決定する。
【００６６】
したがって、上述した実施形態はアドレスヒストリー及びプリフェッチ精度から決定されたアクセスパターンに基づいてプリフェッチ政策を調整することによって減少した待機時間を達成しながら、大量のメモリを十分に格納するフラッシュ基盤メモリモジュールを提供すると同時に、また書込みアドレス履歴に基づいてメモリに対する書込みの選択的なスケジューリングによって改善された耐久性を達成する。
【００６７】
前述した内容は例示的な実施形態を説明するためであり、本発明を限定すると解釈されてはならない。所定の例示的な実施形態を説明したが、当業者は例示的な実施形態の新規な教示及び長所から実質的に逸脱せずに例示的な実施形態の多くの変形が可能であることを容易に理解できる。したがって、そのようなすべての修正は請求項に定義された例示的な実施形態の範囲内に含まれる。請求の範囲において、手段と機能の部分は構造的等価物のみならず、等価構造を列挙するとして説明した構造を含む。したがって、上述の説明は例示的な実施形態を説明するためであり、開示した特定実施形態に限定されると解釈されてはならず、開示した例示的な実施形態及び他の例示的な実施形態に対する修正が含まれると理解されなければならない。添付した請求範囲の範疇内において、本発明の概念は請求の範囲によって定義され、請求項に含まれる等価物を含む。
【符号の説明】
【００６８】
１００  ＮＶＤＩＭＭ−Ｐモジュール
１１０  ＤＲＡＭ
１２０  データバッファ
１３０  レジスターリングクロックドライバー（ＲＣＤ）バッファ
１４０  ＬＬＮＡＮＤコントローラ
１４２  書込みバッファ
１４４  書込みコントローラ
１４６  キャッシュコントローラ
１５０  ＬＬＮＡＮＤデータストレージ
１６０  プリフェッチバッファ
１７０  アドレスバス
１８０  ＤＱバス
１９０  アドレス情報
２００  プリフェッチャ
２１０  プリフェッチモードレジスター
２１０ａ  ストライドレジスター
２１０ｂ  方向レジスター
２１０ｃ  グラニュラリティレジスター
２１０ｄ  プリフェッチタイムレジスター
２１０ｅ  休止時間レジスター
２２０  アドレスヒストリー
２２５  アドレスヒストリーテーブル
２３０  プリフェッチ精度
２４０  デコーダー
２５０  ストライド
２５２  方向
２５４  グラニュラリティ
２５６  プリフェッチタイム
２５８  プリフェッチ休止時間
２６０  プリフェッチアドレスとグラニュラリティ生成
２７０  プリフェッチングスケジューラー
２８０  プリフェッチバッファスケジューラ
３００  書込みバッファ及び書込みコントローラモジュール
３１０  書込みバッファレジスター
３１０ａ  ライトバックモードレジスター
３１０ｂ  ライトバックタイムレジスター
３２０  ライトバックモード
３３０  ライトバックタイム
３４０  スケジューラ
３５０  書込みアドレスヒストリーテーブル
ＲＢＭ  ボルツマンマシン
【図１】
2018055683.tif 000003
【図２】
2018055683.tif 000004
【図３】
2018055683.tif 000005