(57)【要約】【課題】ローカルアドレス別アクセス回数を反映してデータ属性を決定し、互いに異なる属性のデータをメモリプールに区分して格納する。【解決手段】メモリシステム（１１０）は、メモリプール（１５０）とコントローラ（１３０）とを備え、コントローラは、ホストからアクセスコマンドとともに受信されるシステムアドレスをメモリプール内部のローカルアドレスに変換する変換部と、メモリプール内部データのローカルアドレス別アクセス回数に基づいて、閾値を動的に変更する閾値決定部と、閾値及び変換されたローカルアドレスのアクセス回数に基づいて、変換されたローカルアドレスと連関したデータの属性を決定するデータ属性決定部と、データを決定された属性に基づいて、複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するように、新しいローカルアドレスと連関したメモリユニットを制御するデータ入出力部とを備える。【選択図】図１
2020102197.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリユニットを備えるメモリプールと、
前記複数のメモリユニットを制御するコントローラと、
を備え、
前記コントローラは、
ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換する変換部と、
前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて、閾値を動的に変更する閾値決定部と、
前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するデータ属性決定部と、
前記データの属性に基づいて、前記データを新しいローカルアドレスに対応するメモリ領域に格納するように、前記複数のメモリユニットのうち、前記新しいローカルアドレスと連関したメモリユニットを制御するデータ入出力部と、
を備えるメモリシステム。
【請求項２】
前記複数のメモリユニットの各々は、
第１または第２のメモリユニットのうち、いずれか１つであり、
前記データ入出力部は、
前記変換されたローカルアドレスのアクセス回数が前記閾値以上であるか否かによって前記データを第１のメモリユニットまたは第２のメモリユニットのうち、いずれか１つに格納することで、前記データを区分して格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、
前記システムアドレスを前記新しいローカルアドレスにマッピングするアドレスマッピング部をさらに備える請求項２に記載のメモリシステム。
【請求項４】
前記閾値決定部は、
所定周期で、前記閾値を前記メモリプール内部データのローカルアドレス別アクセス回数の最大値及び最小値の平均値に変更する請求項２に記載のメモリシステム。
【請求項５】
前記閾値決定部は、
所定周期で、前記閾値を前記メモリプール内部データのローカルアドレス別アクセス回数の最大値及び最小値の平均値及び前記閾値の上限のうち、小さい値に変更する請求項２に記載のメモリシステム。
【請求項６】
前記データ入出力部は、
前記アクセスコマンドが読み出しコマンドである場合、前記データ属性が前記データ属性決定部により変更されることと決定されるならば、前記変換されたローカルアドレスに対応するメモリ領域から読み出されたデータを前記新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項２に記載のメモリシステム。
【請求項７】
前記データ入出力部は、
前記アクセスコマンドが書き込みコマンドである場合、前記データ属性が前記データ属性決定部により変更されることと決定されるならば、、前記ホストから受信した書き込みデータを前記新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項２に記載のメモリシステム。
【請求項８】
前記データ属性決定部は、
周期的に前記メモリプール内部の全てのデータの属性をローカルアドレス別に決定し、
前記データ入出力部は、
前記メモリプール内部の全てのデータのうち、データ属性が変更されたデータをローカルアドレスに対応するメモリ領域から取得し、前記取得されたデータを各々新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項２に記載のメモリシステム。
【請求項９】
前記第１のメモリユニットは、ＤＲＡＭユニットであり、
前記第２のメモリユニットは、ＮＡＮＤフラッシュメモリユニットである請求項２に記載のメモリシステム。
【請求項１０】
メモリプールを含むメモリシステムの動作方法において、
ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換するステップと、
前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて閾値を動的に変更するステップと、
前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するステップと、
前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップと、
を含む動作方法。
【請求項１１】
前記メモリプールは、１つ以上の第１及び第２のメモリユニットを備え、
前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記変換されたローカルアドレスのアクセス回数が前記閾値以上であるか否かによって前記データを第１のメモリユニットまたは第２のメモリユニットのうち、いずれか１つに格納するステップを含む請求項１０に記載の動作方法。
【請求項１２】
前記システムアドレスを前記新しいローカルアドレスにマッピングするステップをさらに含む請求項１０に記載の動作方法。
【請求項１３】
前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて閾値を動的に変更するステップは、
所定周期で、前記閾値を前記メモリプール内部データのローカルアドレス別アクセス回数の最大値及び最小値の平均値に変更する請求項１０に記載の動作方法。
【請求項１４】
前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて閾値を動的に変更するステップは、
所定周期で、前記閾値を前記メモリプール内部データのローカルアドレス別アクセス回数の最大値及び最小値の平均値及び前記閾値の上限のうち、小さい値に変更する請求項１０に記載の動作方法。
【請求項１５】
前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記アクセスコマンドが読み出しコマンドである場合、前記データ属性が変更されることと決定されるならば、前記変換されたローカルアドレスに対応するメモリ領域から読み出されたデータを前記新しいローカルアドレスに対応するメモリ領域に格納するステップを含む請求項１０に記載の動作方法。
【請求項１６】
前記決定された属性に基づいて、前記データを区分して格納するために、前記データを新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記アクセスコマンドが書き込みコマンドである場合、前記データ属性が変更されることと決定されるならば、前記変換されたローカルアドレスに対応するメモリ領域から読み出された読み出しデータを前記新しいローカルアドレスに対応するメモリ領域に格納するステップを含む請求項１０に記載の動作方法。
【請求項１７】
周期的に前記メモリプール内部の全てのデータの属性をローカルアドレス別に決定するステップと、
前記メモリプール内部の全てのデータのうち、データ属性が変更されることと決定されたデータをローカルアドレスに対応するメモリ領域から取得するステップと、
前記取得されたデータを各々新しいローカルアドレスに対応するメモリ領域に格納するステップと、
をさらに含む請求項１０に記載の動作方法。
【請求項１８】
メモリシステムにおいて、
互いに異なる格納領域を含む第１及び第２の装置と、
コントローラと、
を備え、
前記コントローラは、
それぞれの格納領域内の位置を表すローカルアドレス（前記ローカルアドレスは、システムアドレスとローカルアドレスとの間の関係を表すマップ情報に基づいてアクセス要請されたシステムアドレスから変更される）に対するアクセス毎に前記ローカルアドレスのアクセス回数をカウントし、
所定周期で、前記マップ情報内のローカルアドレスのアクセス回数に基づいて閾値をアップデートし、
ホットデータを前記第２の装置の格納領域から前記第１の装置の格納領域へ移動させ、コールドデータを前記第１の装置の格納領域から前記第２の装置の格納領域へ移動させ、
前記マップ情報内のローカルアドレスを前記ホットデータ及びコールドデータの移動によって変更し、
前記ホットデータのローカルアドレスのアクセス回数は、閾値と同じであるか、大きく、前記コールドデータのローカルアドレスのアクセス回数は、閾値より小さいメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関し、メモリプールを含むメモリシステム及びその動作方法に関する。
【背景技術】
【０００２】
データは、第４次産業革命時代において企業等のビジネスに最も重要な資産となっており、これにより、大規模データを早く送信及び分析するように支援する最新技術に対する需要が次第に増加している。例えば、人工知能、自律走行、ロボット、ヘルスケア、仮想現実（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ、ＶＲ）／拡張現実（ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ、ＡＲ）、スマートホームなどが拡大されるにつれて、サーバやデータセンタに対する需要が増加するであろう。
【０００３】
レガシ（ｌｅｇａｃｙ）データセンタは、資源等（例えば、コンピューティング、ネットワーク、ストレージ）を１つの装備内に含める構造であった。しかしながら、未来の大容量データセンタは、資源を各々別に構成し、論理的に資源を再構成する構造を有することができる。例えば、大容量データセンタは、資源を各々ラック（ｒａｃｋ）水準でモジュール化し、用途に応じて資源を再構成して供給できる構造を有することができる。したがって、未来の大容量データセンタに使用するのに適した統合型ストレージまたはメモリデバイスが求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ローカルアドレス別アクセス回数を反映してデータ属性、例えば、ホットデータまたはコールドデータを決定し、互いに異なる属性のデータをメモリプールに区分して格納するメモリシステム及びその動作方法を提供しようとする。
【課題を解決するための手段】
【０００５】
本発明の一実施形態に係るメモリシステムは、複数のメモリユニットを備えるメモリプールと、前記複数のメモリユニットを制御するコントローラとを備え、前記コントローラは、ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換する変換部と、前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて、閾値を動的に変更する閾値決定部と、前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するデータ属性決定部と、前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御するデータ入出力部とを備える。
【０００６】
本発明の一実施形態によれば、メモリプールを含むメモリシステムの動作方法は、ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換するステップと、前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて閾値を動的に変更するステップと、前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するステップと、前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップとを含む。
【０００７】
本発明の一実施形態に係るメモリシステムは、互いに異なる格納領域を含む第１及び第２の装置と、コントローラとを備え、前記コントローラは、それぞれの格納領域内の位置を表すローカルアドレス（前記ローカルアドレスは、システムアドレスとローカルアドレスとの間の関係を表すマップ情報に基づいてアクセス要請されたシステムアドレスから変更される）に対するアクセス毎に前記ローカルアドレスのアクセス回数をカウントし、所定周期で、前記マップ情報内のローカルアドレスのアクセス回数に基づいて閾値をアップデートし、ホットデータを前記第２の装置の格納領域から前記第１の装置の格納領域へ移動させ、コールドデータを前記第１の装置の格納領域から前記第２の装置の格納領域へ移動させ、前記マップ情報内のローカルアドレスを前記ホットデータ及びコールドデータの移動によって変更し、前記ホットデータのローカルアドレスのアクセス回数は、閾値と同じであるか、大きく、前記コールドデータのローカルアドレスのアクセス回数は、閾値より小さい。
【０００８】
本発明の一実施形態に係るメモリシステムは、互いに異なる格納領域を含む第１及び第２の装置と、コントローラとを備え、前記コントローラは、それぞれの格納領域内の位置を表すローカルアドレス（前記ローカルアドレスは、システムアドレスとローカルアドレスとの間の関係を表すマップ情報に基づいてアクセス要請されたシステムアドレスから変更される）に対するアクセス毎に前記ローカルアドレスのアクセス回数をカウントし、所定周期で、前記マップ情報内のローカルアドレスのアクセス回数に基づいて閾値をアップデートし、前記アクセス要請されたシステムアドレスと連関した書き込み要請に応じてホットデータは第１の装置の格納領域に格納し、コールドデータは第２の装置の格納領域に格納し、前記マップ情報内のローカルアドレスを前記ホットデータ及びコールドデータの移動によって変更し、前記ホットデータのローカルアドレスのアクセス回数は、閾値と同じであるか、大きく、前記コールドデータのローカルアドレスのアクセス回数は閾値より小さい。
【発明の効果】
【０００９】
ローカルアドレス別アクセス回数を反映してデータ属性を決定し、互いに異なる属性のデータをメモリプールに区分して格納するメモリシステム及びその動作方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【図２】データ属性によって第１及び第２のメモリユニットにデータを区分して格納するためのアドレスマッピングを説明するための図である。
【図３】本発明の一実施形態に係るデータコントロールユニットの構造を概略的に示した図である。
【図４】システムアドレスを新しいローカルアドレスにマッピングする動作を説明するための図である。
【図５】本発明の一実施形態に係るメモリシステムの書き込み動作を示したフローチャートである。
【図６】本発明の一実施形態に係るメモリシステムの書き込み動作を示したフローチャートである。
【図７】本発明の一実施形態に係るメモリシステムの読み出し動作を示したフローチャートである。
【図８】本発明の一実施形態に係るメモリシステムのデータ属性アップデート動作を示したフローチャートである。
【図９】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【図１０】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【図１１】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【図１２】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係る好ましい実施形態を添付した図面を参照して詳細に説明する。下記の説明では、本発明に係る動作を理解するのに必要な部分のみが説明され、それ以外の部分の説明は、本発明の要旨を濁さないように省略されるであろうということに留意すべきである。
【００１２】
「第１」、「第２」、「第３」などの用語が本明細書において様々な構成要素を説明するために使用されることができるが、これらの構成要素は、これらの用語により制限されないことと理解されるであろう。この用語らは、ある構成要素を他の構成要素と区別するために使用される。したがって、後述する第１構成要素は、本発明の思想及び範囲を逸脱しないながら、第２または第３構成要素と理解されることができる。
【００１３】
構成要素が他の構成要素に「連結された」ことと言及されるとき、他の構成要素に直接連結されるか、１つ以上の構成要素が介入され得る。また、構成要素が２つの構成要素の「間に」あることと言及されるとき、これは、２つの構成要素間の唯一の構成要素でありうるし、１つ以上の構成要素がさらに介入され得る。直接または間接的に連結された２つの要素間の通信は、直接言及されたり、文脈上異なるように表さない限り、有線または無線でありうる。
【００１４】
本明細書において使用されたように、単数の表現は、文脈上、明らかに異なるように表さない限り、複数の表現を含むことができる。
【００１５】
本明細書において使用される用語「含む」は、言及された構成要素の存在を明示し、１つ以上の他の構成要素の存在または付加を排除しないことと理解されるであろう。本明細書において使用された用語「及び／又は」は、関連した列挙項目のうち１つ以上の任意の及びあらゆる組み合わせを含む。
【００１６】
「一実施形態」、「他の実施形態」などを言及するとして、必ずしも１つの実施形態だけを意味するものではなく、そのような文句に対する他の参照が必ずしも同じ実施形態に対するものではない。
【００１７】
以下、図面を参照して本発明の実施形態等についてより具体的に説明する。
【００１８】
図１は、本発明の実施形態に係るメモリシステム１１０を含むデータ処理システム１００の構造を示した図である。
【００１９】
図１に示すように、データ処理システム１００は、メモリシステム１１０及びホスト１０２を含むことができる。
【００２０】
未来のデータセンタのようなサーバシステムまたはデータ処理システムは、演算ボード、メモリボードなどのような複数のボードが単位ラック内で区別されて装着される構造を有することができる。メモリシステム１１０は、前記メモリボードと対応することができる。ホスト１０２は、前記演算ボードと対応することができる。
【００２１】
図１に示すように、メモリシステム１１０は、メモリプール１５０、及びコントローラ１３０を備えることができる。
【００２２】
メモリプール１５０は、複数のメモリユニットを備えることができる。前記メモリユニットは、コントローラ１３０の制御によってデータを格納（または、書き込み）し、格納されたデータを出力（または、読み出し）することができる。
【００２３】
メモリプール１５０は、様々なユーザワークロード（ｕｓｅｒ  ｗｏｒｋｌｏａｄ）を充足させるために、互いに異なる特性を有する複数のメモリユニットを備えることができる。すなわち、１つのメモリプール１５０は、ＤＲＡＭ、ＰＣＲＡＭ、ＭＲＡＭ、ＳＴＴ−ＲＡＭ、フラッシュメモリのような複数のメモリが統合された形態を有する統合メモリデバイス（ｉｎｔｅｇｒａｔｅｄ  ｍｅｍｏｒｙ  ｄｅｖｉｃｅ）でありうる。このような統合メモリデバイスは、各メモリが互いに異なる特性を有するので、様々な使用モデル（ｕｓａｇｅ  ｍｏｄｅｌ）に活用されることができる。
【００２４】
メモリプール１５０は、第１のメモリグループ（１ｓｔ  ｍｅｍｏｒｙ  ｇｒｏｕｐ）及び第２のメモリグループ（２ｎｄ  ｍｅｍｏｒｙ  ｇｒｏｕｐ）を含むことができる。第１のメモリグループ及び第２のメモリグループは、各々１つ以上のメモリユニットを備えることができる。メモリユニットは、外部のコマンドに応じて内部にデータを格納することができる。図１に示されたメモリグループとメモリユニットの数は、例示に過ぎず、実現によって変更されることができる。
【００２５】
一実施形態において、第１のメモリグループに備えられた第１のメモリユニット（１ｓｔ  ｍｅｍｏｒｙ  ｕｎｉｔ）及び第２のメモリグループに備えられた第２のメモリユニット（２ｎｄ  ｍｅｍｏｒｙ  ｕｎｉｔ）は、互いに異なる特性を有することができる。一例として、第１のメモリユニットは、第２のメモリユニットに比べてアクセス速度が速いメモリ装置を含むことができる。一例として、第１のメモリユニットは、揮発性メモリユニットであり、第２のメモリユニットは、不揮発性メモリユニットでありうる。揮発性メモリユニットの例に、ＤＩＭＭのようなＤＲＡＭユニットがある。不揮発性メモリユニットの例に、ＵＦＳ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｒｏａｇｅ）、ｅＭＭＣのようなＮＡＮＤフラッシュメモリユニットがある。
【００２６】
第１のメモリユニットと第２のメモリユニットとは、互いに異なる長所を有することができる。第１のメモリユニットがＤＲＡＭユニットであり、第２のメモリユニットがＮＡＮＤフラッシュメモリユニットである場合を例に挙げて前記第１及び第２のメモリユニットの互いに異なる長所を説明する。第１のメモリユニットは、第２のメモリユニットに比べてアクセス速度が速く、第２のメモリユニットより寿命が長いことができる。第２のメモリユニットは、不揮発性メモリであって、内部に格納されたデータを維持するために、リフレッシュ動作を行う必要がないので、低電力で動作することができる。
【００２７】
一方、前記第２のメモリユニットが第１のメモリユニットに比べてアクセス速度が遅いことがある。一実施形態において、第２のメモリグループは、遅いアクセス速度を改善するために、キャッシュメモリユニット（図示せず）をさらに備えることができる。前記キャッシュメモリユニットは、ＤＲＡＭユニットでありうる。実施形態によって、前記キャッシュメモリユニットは、書き込みスルー（Ｗｒｉｔｅ  ｔｈｒｏｕｇｈ）方式で動作するか、書き込みバック（Ｗｒｉｔｅ  ｂａｃｋ）方式で動作することができる。
【００２８】
コントローラ１３０は、ホスト１０２とメモリプール１５０内部のメモリユニットとの間でデータ送受信を制御できる。
【００２９】
コントローラ１３０は、ホストインターフェース１３２、データコントロールユニット１３４、及びメモリインターフェース１３６を備えることができる。
【００３０】
データコントロールユニット１３４は、メモリシステム１１０の全般的な動作を制御できる。例えば、データコントロールユニット１３４は、書き込み要請に応じてホスト１０２から受信した書き込みデータをメモリユニットに格納する書き込み動作を制御できる。他の例に、データコントロールユニット１３４は、読み出し要請に応じてメモリユニットに格納されたデータを読み出し、読み出しデータをホスト１０２に出力する読み出し動作を制御できる。
【００３１】
ホストインターフェース１３２は、ホスト１０２とデータコントロールユニット１３４との間でのインターフェーシングを支援する。一実施形態において、ホストインターフェース１３２は、データコントロールユニット１３４とホスト１０２との間での、相互接続ボードを介してのインターフェーシングを支援できる。前記相互接続ボードは、図１１において具体的に説明される。
【００３２】
ホストインターフェース１３２は、１つ以上の有線または無線通信技術と関連したプロトコルを使用して、データコントロールユニット１３４から受信されるデータをホスト１０２に提供し、ホスト１０２から受信されるデータをデータコントロールユニット１３４に提供することができる。例えば、ホストインターフェース１３２は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）などのようなプロトコルによってホスト１０２とデータコントロールユニット１３４との間の通信を支援できる。その上、ホストインターフェース１３２は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格によってホスト１０２とデータコントロールユニット１３４との間の通信を支援できる。
【００３３】
メモリインターフェース１３６は、データコントロールユニット１３４とメモリプール１５０のメモリユニットとの間のインターフェーシングを支援する。メモリインターフェース１３６は、トラフィック仲裁器（Ｔｒａｆｆｉｃ  Ａｒｂｉｔｒａｔｏｒ）並びに第１のメモリコントロールユニット（１ｓｔ  ＭＣＵ）及び第２のメモリコントロールユニット（２ｎｄ  ＭＣＵ）を備えることができる。
【００３４】
第１のメモリコントロールユニットは、第１のメモリグループに備えられた第１のメモリユニットを制御できる。すなわち、前記第１のメモリコントロールユニットは、コントローラ１３０と第１のメモリユニットとの間でデータ送受信を支援できる。
【００３５】
第２のメモリコントロールユニットは、第２のメモリグループに備えられた第２のメモリユニットを制御できる。すなわち、前記第２のメモリコントロールユニットは、コントローラ１３０と第２のメモリユニットとの間でデータ送受信を支援できる。
【００３６】
トラフィック仲裁器は、データコントロールユニット１３４と前記第１及び第２のメモリコントロールユニットとの間の信号送受信を仲裁できる。具体的に、前記トラフィック仲裁器は、データコントロールユニット１３４から受信した読み出しまたは書き込みコマンドをメモリプール１５０のローカルアドレスと連関したメモリコントロールユニットに提供することができる。
【００３７】
一方、コントローラ１３０は、前記第１のメモリユニットと第２のメモリユニットとの互いに異なる長所を全て取るために、前記第１のメモリユニットと第２のメモリユニットとが互いに異なる属性のデータを格納するように制御することができる。例えば、コントローラ１３０は、頻りにアクセスされるホットデータはアクセス速度が速い第１のメモリユニットに格納され、まれにアクセスされるコールドデータは低電力で動作できる第２のメモリユニットに格納されるように制御することができる。
【００３８】
図２は、データ属性によって第１及び第２のメモリユニットにデータを区分して格納するためのアドレスマッピングを説明するための図である。
【００３９】
図２は、ホスト１０２のシステムアドレス、メモリプール１５０のローカルアドレス、及び前記システムアドレスとローカルアドレスとのマッピング関係を例示する。
【００４０】
前記システムアドレスは、ホスト１０２からメモリシステム１１０にアクセスするためのアドレスである。前記システムアドレスの一例は、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）である。
【００４１】
前記ローカルアドレスは、前記システムアドレスを受信したコントローラ１３０がメモリプール１５０内部のメモリユニットにアクセスするためのアドレスである。前記ローカルアドレスの各々は、所定のメモリユニットに連関する。メモリユニットの種類によって、前記ローカルアドレスは、物理アドレスでありうるし、論理アドレスでありうる。例えば、メモリユニットがＮＡＮＤフラッシュメモリユニットである場合、前記ローカルアドレスは、論理アドレスであって、連関したメモリユニット内部で物理アドレスに変換されることができる。
【００４２】
一実施形態によれば、前記ローカルアドレスの各々がどのメモリユニットと連関するかによって前記ローカルアドレスを第１のローカルアドレスグループ（１ｓｔ  ｌｏｃａｌ  ａｄｄｒｅｓｓ  ｇｒｏｕｐ）及び第２のローカルアドレスグループ（２ｎｄ  ｌｏｃａｌ  ａｄｄｒｅｓｓ  ｇｒｏｕｐ）に分けることができる。第１のローカルアドレスグループに属するローカルアドレスは、第１のメモリユニットと連関し、第２のローカルアドレスグループに属するローカルアドレスは、第２のメモリユニットと連関することができる。すなわち、第１のローカルアドレスグループに属するローカルアドレスは、ホットデータと連関し、第２のローカルアドレスグループに属するローカルアドレスは、コールドデータと連関することができる。
【００４３】
図２は、システムアドレス「１」がローカルアドレス「Ａ」にマッピングされたことを例示している。ローカルアドレス「Ａ」は、第１のローカルアドレスグループに属するので、ローカルアドレス「Ａ」に連関したデータはホットデータでありうる。同様に、システムアドレス「２」は、ローカルアドレス「ａ」にマッピングされる場合、ローカルアドレス「ａ」に連関したデータはコールドデータでありうる。
【００４４】
本発明の一実施形態によれば、コントローラ１３０は、ホスト１０２からアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール１５０のローカルアドレスに変換することができる。そして、コントローラ１３０は、メモリプール１５０のローカルアドレス別アクセス回数をカウントできる。前記アクセスコマンドは、読み出しコマンド及び書き込みコマンドを含むことができる。
【００４５】
コントローラ１３０は、前記ローカルアドレス別アクセス回数に基づいて閾値を動的に変更することができる。前記ローカルアドレス別アクセス回数は、時間によって変更されることができる。前記閾値は、前記変換されたローカルアドレスと連関したデータの属性を決定するためのアクセス回数の基準値である。
【００４６】
本発明の一実施形態によれば、メモリプール１５０に外部的に提供されるか、既に格納されたデータは、ホットデータとコールドデータのうち、いずれか１つに決定されることができる。閾値は、メモリプール１５０のローカルアドレッシングされた、時間的に可変するアクセス回数によって動的に決定されることができる。ホットデータに決定されたデータは、第１のメモリユニットに格納されるか、第２のメモリユニットから第１のメモリユニットへ移動されることができる。コールドデータに決定されたデータは、第２のメモリユニットに格納されるか、第１のメモリユニットから第２のメモリユニットへ移動されることができる。ホットデータとコールドデータの格納または移動によって、システムアドレスとローカルアドレスとの間のマッピング関係がアップデートされ得る。
【００４７】
コントローラ１３０は、前記閾値及び前記ローカルアドレス別アクセス回数に基づいてローカルアドレスと連関したデータの属性を決定し、前記決定された属性によって前記データをメモリプール１５０に区分して格納することができる。また、コントローラ１３０は、ローカルアドレスのアクセス回数及び前記閾値が動的に変更されることで、前記ローカルアドレスと連関したデータの属性が変更されれば、前記変更された属性によって前記データをメモリプール１５０内から移して格納することができる。
【００４８】
本発明の一実施形態によれば、コントローラ１３０は、前記ローカルアドレス別アクセス回数及び閾値によってメモリプール１５０にホットデータとコールドデータとを区分して格納することができる。したがって、メモリシステム１１０内部の第１のメモリユニットと第２のメモリユニットとの長所が最も発揮されることができる。
【００４９】
図３は、本発明の一実施形態に係るデータコントロールユニット１３４の構造を概略的に示した図である。
【００５０】
データコントロールユニット１３４は、マップテーブル３０２、変換部３０４、アクセスカウンタ３０６、閾値決定部３０８、データ属性決定部３１０、マップ管理部３１２、及びデータ入出力部３１４を備えることができる。前記変換部３０４、閾値決定部３０８、データ属性決定部３１０、マップ管理部３１２、及びデータ入出力部３１４は、それぞれの動作及び機能に必要な全ての回路、システム、ソフトウェア、ファームウエア、及び装置を含む。
【００５１】
マップテーブル３０２は、システムアドレス及びローカルアドレス間のマッピング関係を格納できる。
【００５２】
変換部３０４は、マップテーブル３０２を参照して、ホスト１０２から読み出しコマンドまたは書き込みコマンドとともに受信されるシステムアドレスをローカルアドレスに変換することができる。前記受信されたシステムアドレスがまだローカルアドレスにマッピングされていない場合、変換部３０４は、前記受信されたシステムアドレスを新しいローカルアドレスにマッピングすることができる。
【００５３】
アクセスカウンタ３０６は、ローカルアドレス別アクセス回数をカウントできる。具体的に、アクセスカウンタ３０６は、コントローラ１３０内部のメモリ（図示せず）に格納されたローカルアドレス別アクセス回数値のうち、前記読み出しまたは書き込みコマンドに応じて変換されたローカルアドレスのアクセス回数を変更できる。一実施形態において、アクセスカウンタ３０６は、最近のアクセス傾向を反映するために、予め決定され得る周期で全てのローカルアドレス別アクセス回数値を初期化し、前記アクセス回数カウントを再開できる。
【００５４】
閾値決定部３０８は、ローカルアドレス別アクセス回数値に基づいて閾値を動的に変更することができる。閾値決定部３０８が閾値を動的に変更する動作の例は、図６を参照して説明される。
【００５５】
データ属性決定部３１０は、前記動的に決定された閾値に基づいて各ローカルアドレスに連関したデータの属性を決定できる。ローカルアドレスと連関したデータの属性が変更されれば、データ属性決定部３１０は、マップ管理部３１２に以前ローカルアドレスを提供して新しいローカルアドレスに変更することができる。一方、ローカルアドレスと連関したデータの属性が変更されなければ、データ属性決定部３１０は、対応するメモリ領域にアクセスするために、既存ローカルアドレスをデータ入出力部３１４に提供することができる。
【００５６】
一実施形態において、データ属性決定部３１０は、ローカルアドレスがアクセスされる度に、当該ローカルアドレスに連関したデータの属性を決定できる。一実施形態において、データ属性決定部３１０は、所定周期でメモリプール１５０に格納された全てのデータの属性をローカルアドレス別に決定することができる。データ属性決定部３１０が所定周期で前記全てのデータの属性をローカルアドレス別に決定する動作の例は、図８を参照して説明される。
【００５７】
マップ管理部３１２は、所定条件によってシステムアドレスとローカルアドレスとの間のマッピング関係を変更できる。一実施形態において、前記所定条件は、前記データ属性が変更されることと決定されたか否かを含むことができる。マップ管理部３１２は、データ属性決定部３１０により決定されたデータの属性に基づいて、当該データの属性が変更されたか否かを決定できる。当該データの属性が変更された場合、マップ管理部３１２は、当該データのシステムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【００５８】
マップ管理部３１２は、当該データがメモリプール１５０の他のメモリユニットに格納されるように、当該データに連関したシステムアドレスを新しいローカルアドレスにマッピングすることにより、前記システムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【００５９】
図４は、システムアドレスを新しいローカルアドレスにマッピングする動作を説明するための図である。
【００６０】
図４は、図２と同様に、システムアドレス、ローカルアドレス、及び前記システムアドレスとローカルアドレスとのマッピング関係を例示している。
【００６１】
再度図２を参照すれば、システムアドレス「２」がローカルアドレス「ａ」にマッピングされる場合、システムアドレス「２」に連関したデータは、コールドデータでありうる。ホスト１０２から前記システムアドレス「２」に対する読み出しまたは書き込みコマンドを受信してローカルアドレス「ａ」のアクセスカウントが増加すれば、前記データの属性がホットデータに決定されることができる。マップ管理部３１２は、第２のローカルアドレスグループに備えられたローカルアドレス「ａ」に連関したデータがホットデータに決定されたので、前記データの属性が変更されたことと決定することができる。
【００６２】
図４に示すように、マップ管理部３１２は、前記データが第１のメモリユニットに格納されるように、前記システムアドレス「２」を第１のローカルアドレスグループに属する新しいローカルアドレス「Ｄ」にマッピングすることができる。マップ管理部３１２は、前記システムアドレスと新しいローカルアドレスとの間のアドレスマッピング情報をマップテーブル３０２に反映することができる。
【００６３】
一実施形態において、前記所定条件は、前記データ属性が変更されることと決定されたか否かだけでなく、アクセスカウンタ３０６が前記アクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。アクセスカウンタ３０６が前記アクセス回数カウントを開始した初期には、各ローカルアドレス別アクセス回数値がメモリプール１５０に格納されたデータの属性を決定するのに十分に収集されていない場合があるためである。
【００６４】
再度図３を参照すれば、データ入出力部３１４は、前記システムアドレスと前記新しいローカルアドレスとの間のアドレスマッピングによってメモリインターフェース１３６にコマンドを提供することで、前記新しいローカルアドレスと連関したメモリユニットのデータ入出力を制御できる。一実施形態において、データ入出力部３１４は、前記システムアドレスとローカルアドレスとの間のマッピング関係が変更される前の以前ローカルアドレス（Ｏｌｄ  Ｌｏｃａｌ  Ａｄｄｒｅｓｓ）の対応メモリ領域に格納されたデータを読み出して新しいローカルアドレス（Ｎｅｗ  Ｌｏｃａｌ  Ａｄｄｒｅｓｓ）の対応メモリ領域に前記読み出されたデータを書き込むことができる。
【００６５】
以下、図５〜図８を参照して、本発明の実施形態に係るメモリシステム１１０の書き込み動作、読み出し動作、及びデータ属性アップデート動作を説明する。
【００６６】
図５〜図６は、本発明の一実施形態に係るメモリシステム１１０の書き込み動作を示したフローチャートである。
【００６７】
図５に示すように、ステップＳ５０２においてホストインターフェース１３２は、ホスト１０２から書き込みコマンド、書き込みデータ、及び書き込み動作を行う第１のシステムアドレスを受信できる。ホストインターフェース１３２は、前記第１のシステムアドレスを変換部３０４に提供することができる。ホストインターフェース１３２は、前記書き込みコマンドをデータコントロールユニット１３４内部のコマンドキュー（図示せず）にキューイングし、書き込みデータ及び第１のシステムアドレスをデータコントロールユニット１３４内部のバッファ（図示せず）にバッファリングすることができる。
【００６８】
ステップＳ５０４において、変換部３０４は、マップテーブル３０２を参照してホストインターフェース１３２から受信した前記第１のシステムアドレスを第１のローカルアドレスに変換することができる。
【００６９】
一方、メモリプール１５０が前記第１のシステムアドレスと連関したデータを初めて格納する場合、前記第１のシステムアドレスのマッピング情報がマップテーブル３０２に格納されていないことがある。一実施形態において、変換部３０４は、前記第１のシステムアドレスのマッピング情報がマップテーブル３０２に格納されていない場合、前記第１のシステムアドレスを新しいローカルアドレスにマッピングし、後述するステップＳ５０６において前記新しいローカルアドレスのアクセスカウントを始めることができる。一方、初めて格納されるデータのアクセスカウントは「０」であるから、変換部３０４は、前記データをコールドデータとみなし、前記第１のシステムアドレスを第２のローカルアドレスグループに備えられた新しいローカルアドレスにマッピングすることができる。メモリプール１５０が前記第１のシステムアドレスと連関したデータを初めて格納する場合、前記第１のローカルアドレスは、前記新しいローカルアドレスに該当することができる。
【００７０】
変換部３０４は、アクセスカウンタ３０６に前記第１のローカルアドレスを提供できる。
【００７１】
ステップＳ５０６において、アクセスカウンタ３０６は、前記第１のローカルアドレスのアクセス回数を変更できる。
【００７２】
アクセスカウンタ３０６は、メモリプール１５０に格納された全てのデータのローカルアドレス別アクセス回数値を閾値決定部３０８に提供することができる。そして、アクセスカウンタ３０６は、前記第１のローカルアドレス及びそのアクセス回数値をデータ属性決定部３１０に提供することができる。
【００７３】
ステップＳ５０８において、閾値決定部３０８は、時間的に可変するローカルアドレス別アクセス回数値に基づいて閾値を動的に決定することができる。
【００７４】
図６は、ステップＳ５０８の動作を具体的に示したフローチャートである。
【００７５】
一実施形態において、ステップＳ５０８は、ステップＳ６０２ないしステップＳ６０６を含むことができる。
【００７６】
ステップＳ６０２において、閾値決定部３０８は、アクセスカウンタ３０６から受信した最近の所定時間のローカルアドレス別アクセス回数値の最大値と最小値とを抽出できる。
【００７７】
ステップＳ６０４において、閾値決定部３０８は、前記最大値と最小値の平均値を算出できる。
【００７８】
ステップＳ６０６において、閾値決定部３０８は、前記算出された平均値を前記閾値に決定することができる。
【００７９】
一方、ステップＳ６０４において閾値決定部３０８が必ず平均値を算出すべきものではない。一実施形態において、閾値決定部３０８は、所定基準によって最大値と最小値との間にある他の値を算出して、ステップＳ６０６において前記算出された値を前記閾値に決定することができる。また、ステップＳ６０２において閾値決定部３０８が必ず最大値及び最小値のみを抽出すべきものではない。閾値決定部３０８は、所定基準によってローカルアドレス別アクセス回数値のうち、これらを代表できる複数の値を抽出できる。
【００８０】
一実施形態において、前記閾値の上限が予め決定され得る。メモリユニット内部のメモリ装置は、アクセス回数によって寿命が制限され得る。例えば、マルチレベルセルＮＡＮＤフラッシュメモリ装置のＥＷサイクルは、約１万回程度に制限されている。
【００８１】
第２のメモリユニットが寿命が制限されたメモリユニットである場合、前記第２のメモリユニット内部のメモリ装置は、前記内部のメモリ装置に格納されたデータのアクセス回数が予め決定されたアクセス回数以上である場合に早く老朽化される可能性がある。したがって、前記閾値の上限が予め決定されることができ、寿命が制限されたメモリユニットに格納されたデータのアクセス回数が臨界アクセス回数以下に制限されることができる。一実施形態において、前記閾値の上限は、前記ＥＷサイクルに基づいて決定されることができる。閾値決定部３０８は、ステップＳ６０４においてローカルアドレス別アクセス回数値に基づいて算出された値と前記閾値の上限のうち、小さい値を閾値に決定することができる。
【００８２】
再度図５を参照すれば、ステップＳ５１０においてデータ属性決定部３１０は、前記閾値に基づいて書き込みデータの属性を決定できる。
【００８３】
具体的に、データ属性決定部３１０は、前記第１のローカルアドレス及びそのアクセス回数値をアクセスカウンタ３０６から受信し、前記閾値を閾値決定部３０８から受信することができる。
【００８４】
データ属性決定部３１０は、比較器（図示せず）を備えることができる。前記比較器は、前記第１のローカルアドレスのアクセス回数値が前記閾値以上であるか否かによって前記第１のローカルアドレスと連関した前記書き込みデータの属性を決定できる。例えば、前記第１のローカルアドレスのアクセス回数値が前記閾値以上であれば、前記書き込みデータは、ホットデータに決定されることができる。それに対し、前記第１のローカルアドレスのアクセス回数値が前記閾値未満であれば、前記書き込みデータは、コールドデータに決定されることができる。
【００８５】
ステップＳ５１２において、データ属性決定部３１０は、アドレスマッピングを変更するための所定条件が満たされるか決定することができる。図３を参照して説明されたように、前記所定条件は、前記決定された書き込みデータの属性が変更されたか否かを含み、アクセスカウンタ３０６がアクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。
【００８６】
前記所定条件が満たされる場合（ステップＳ５１２において、「はい」）、データ属性決定部３１０は、前記第１のローカルアドレス及びこれと連関したデータの属性をマップ管理部３１２に提供することができる。データコントロールユニット１３４は、後述するステップＳ５１４ないしステップＳ５１６の動作を行うことができる。
【００８７】
前記所定条件が満たされなかった場合（ステップＳ５１２において、「いいえ」）、データ属性決定部３１０は、前記第１のローカルアドレスをデータ入出力部３１４に提供することができる。データコントロールユニット１３４は、後述するステップＳ５１８の動作を行うことができる。
【００８８】
ステップＳ５１４において、マップ管理部３１２は、第１のシステムアドレスを新しい第１のローカルアドレスにマッピングすることができる。
【００８９】
マップ管理部３１２は、前記新しい第１のローカルアドレスをデータ入出力部３１４に提供することができる。マップ管理部３１２は、前記第１のシステムアドレスと前記新しい第１のローカルアドレスとのアドレスマッピング情報をマップテーブル３０２にアップデートすることができる。そして、マップ管理部３１２は、アクセスカウンタ３０６が新しい第１のローカルアドレスのアクセス回数値を以前第１のローカルアドレスのアクセス回数値に変更し、前記以前第１のローカルアドレスのアクセス回数値を初期化するようにアクセスカウンタ３０６を制御できる。
【００９０】
ステップＳ５１６において、データ入出力部３１４は、メモリインターフェース１３６に前記新しい第１のローカルアドレス、書き込みコマンド、及び書き込みデータを提供できる。ここで、前記書き込みコマンドは、ステップＳ５０２においてコマンドキュー（図示せず）にキューイングされた書き込みコマンドであり、前記書き込みデータは、ステップＳ５０２においてバッファ（図示せず）にバッファリングされた書き込みデータでありうる。メモリインターフェース１３６は、データ入出力部３１４から受信した書き込みコマンドに応じて、前記新しい第１のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【００９１】
一方、前記第１のシステムアドレスと前記以前第１のローカルアドレスとのマッピングが解除されるので、ホスト１０２からアクセスコマンドとともに前記第１のシステムアドレスが再度受信されれば、前記以前第１のローカルアドレスにはアクセスされないであろう。前記以前第１のローカルアドレスは、今後、変換部３０４またはマップ管理部３１２により他のシステムアドレスにマッピングされることができる。
【００９２】
ステップＳ５１８において、データ入出力部３１４は、ステップＳ５０４において前記第１のシステムアドレスから変換された既存第１のローカルアドレスにホスト１０２から受信した書き込みデータを書き込むようにメモリインターフェース１３６に書き込みコマンドを提供できる。ここで、前記書き込みコマンドは、ステップＳ５０２においてコマンドキュー（図示せず）にキューイングされた書き込みコマンドであり、前記書き込みデータは、ステップＳ５０２においてバッファ（図示せず）にバッファリングされた書き込みデータでありうる。メモリインターフェース１３６は、データ入出力部３１４から受信した書き込みコマンドに応じて、前記既存第１のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【００９３】
図５〜図６において説明されたメモリシステム１１０の書き込み動作によれば、時間的に可変するローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定された書き込みデータの属性によって前記書き込みデータをメモリプールに区分して格納することができる。
【００９４】
図７は、一実施形態に係るメモリシステム１１０の読み出し動作を示したフローチャートである。
【００９５】
ステップＳ７０２において、ホストインターフェース１３２は、ホスト１０２から読み出しコマンド及び読み出し動作を行う第１のシステムアドレスを受信できる。ホストインターフェース１３２は、前記読み出しコマンドをデータコントロールユニット１３４内部のコマンドキュー（図示せず）にキューイングし、第１のシステムアドレスをデータコントロールユニット１３４内部のバッファ（図示せず）にバッファリングすることができる。
【００９６】
ステップＳ７０４において、変換部３０４は、マップテーブル３０２を参照してホストインターフェース１３２から受信した第１のシステムアドレスを第１のローカルアドレスに変換することができる。変換部３０４は、アクセスカウンタ３０６に前記第１のローカルアドレスを提供できる。
【００９７】
ステップＳ７０６において、アクセスカウンタ３０６は、前記第１のローカルアドレスのアクセス回数をカウントできる。ステップＳ７０６の具体的な動作は、ステップＳ５０６において説明されたことと同様である。
【００９８】
ステップＳ７０８において、閾値決定部３０８は、時間的に可変するローカルアドレス別アクセス回数に基づいて閾値を変更できる。ステップＳ７０８の具体的な動作は、ステップＳ５０８において説明されたことと同様である。
【００９９】
ステップＳ７１０において、データ属性決定部３１０は、前記閾値に基づいて読み出しデータの属性を決定できる。ステップＳ７１０の具体的な動作は、ステップＳ５１０において説明されたことと同様である。
【０１００】
ステップＳ７１２において、データ入出力部３１４は、前記第１のローカルアドレスと連関したメモリユニットが読み出し動作を行うようにメモリインターフェース１３６に読み出しコマンドを提供できる。ここで、前記読み出しコマンドは、ステップＳ７０２においてコマンドキュー（図示せず）にキューイングされた読み出しコマンドでありうる。メモリインターフェース１３６は、前記メモリユニットから読み出された読み出しデータを前記バッファ（図示せず）にバッファリングすることができる。データ入出力部３１４は、前記バッファリングされた読み出しデータをホストインターフェース１３２を介してホスト１０２に提供することができる。
【０１０１】
一方、本発明の実施形態によれば、ローカルアドレス別アクセス回数及び閾値は、時間によって可変する。したがって、メモリプール１５０内部に格納されたデータの属性は、時間によって変更されることができる。例えば、あるデータがコールドデータに決定されて、第２のメモリユニットに格納されたが、当該データを読み出すときは、当該データがホットデータに決定されることができる。後述するステップＳ７１４ないしＳ７１８において、マップ管理部３１２は、読み出しデータのデータ属性が変更された場合、当該データが他のメモリユニットに格納されるようにローカルアドレスとシステムアドレスとの間のマッピング関係を変更できる。
【０１０２】
ステップＳ７１４において、データ属性決定部３１０は、アドレスマッピングを変更するための所定条件が満たされたか決定することができる。図３を参照して説明されたように、前記所定条件は、前記決定された読み出しデータの属性が変更されたか否かを含み、アクセスカウンタ３０６がアクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。
【０１０３】
前記所定条件が満たされる場合（ステップＳ７１４において、「はい」）、データ属性決定部３１０は、前記第１のローカルアドレス及びこれと連関したデータの属性をマップ管理部３１２に提供することができる。データコントロールユニット１３４は、後述するステップＳ７１６ないしステップＳ７１８の動作を行うことができる。
【０１０４】
前記所定条件が満たされなかった場合（ステップＳ７１４において、「いいえ」）、データコントロールユニット１３４は、動作を終了できる。
【０１０５】
ステップＳ７１６において、マップ管理部３１２は、第１のシステムアドレスを新しい第１のローカルアドレスにマッピングすることができる。ステップＳ７１６の具体的な動作は、ステップＳ５１４において説明されたことと同様である。
【０１０６】
ステップＳ７１８において、データ入出力部３１４は、メモリインターフェース１３６に新しい第１のローカルアドレス、書き込みコマンド、及び読み出しデータを提供できる。ここで、前記書き込みコマンドは、前記第１のシステムアドレスに連関したデータを前記新しい第１のローカルアドレスに移して格納するためのコマンドである。前記読み出しデータは、ステップＳ７１２において読み出されてバッファ（図示せず）にバッファリングされたデータである。メモリインターフェース１３６は、データ入出力部３１４から受信した書き込みコマンドに応じて、前記新しい第１のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【０１０７】
図７を参照して説明されたメモリシステム１１０の読み出し動作によれば、時間的に可変するローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定された読み出しデータの属性によって前記読み出しデータをメモリプールに区分して格納することができる。
【０１０８】
一方、前述したように、メモリプール１５０内部に格納されたデータの属性は、時間によって変更されることができる。一実施形態によれば、データコントロールユニット１３４は、周期的にメモリプール１５０に格納された全てのデータ属性をローカルアドレス別に更新し、前記更新された属性によって前記データを区分して格納するようにメモリプール１５０内部のメモリユニットを制御する、データ属性アップデート動作を行うことができる。
【０１０９】
図８は、本発明の一実施形態に係るメモリシステム１１０のデータ属性アップデート動作を示したフローチャートである。
【０１１０】
後述するステップＳ８０２ないしステップＳ８０８のデータ属性アップデート動作は、所定周期で行われることができる。
【０１１１】
図３を参照して説明されたところによれば、アクセスカウンタ３０６は、所定周期で全てのローカルアドレス別アクセス回数値を初期化し、前記アクセス回数カウントを再開できる。一実施形態において、前記データ属性アップデート動作は、前記ローカルアドレス別アクセス回数値を初期化する動作と同じ周期で行われることができる。例えば、前記データ属性アップデート動作は、前記ローカルアドレス別アクセス回数値を初期化する直前に行われることができる。
【０１１２】
ステップＳ８０２において、データ属性決定部３１０は、閾値に基づいてメモリシステム１５０に格納された全てのデータの属性をローカルアドレス別に決定することができる。具体的に、データ属性決定部３１０内部の比較器（図示せず）は、動的に変更される閾値とメモリプール１５０に格納された全てのデータのローカルアドレス別アクセス回数値とを比較して、前記全てのデータの属性をローカルアドレス別に決定することができる。データ属性決定部３１０は、前記決定結果に基づいてメモリプール１５０に格納されたデータの属性が変更されるか否かをローカルアドレス別に決定することができる。データ属性決定部３１０は、属性が変更されたデータと連関したローカルアドレスをマップ管理部３１２に提供することができる。
【０１１３】
ステップＳ８０４において、マップ管理部３１２は、前記属性が変更されたデータがメモリプール１５０の他のメモリユニットに移して格納されるように、システムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【０１１４】
具体的に、マップ管理部３１２は、データ属性決定部３１０から受信したローカルアドレス及びマップテーブル３０２を参照して、前記属性が変更されたデータと連関したシステムアドレスを新しいローカルアドレスにマッピングすることができる。マップ管理部３１２は、前記システムアドレスと新しいローカルアドレスとのアドレスマッピング情報をマップテーブル３０２に反映することができる。そして、マップ管理部３１２は、アクセスカウンタ３０６が新しいローカルアドレスのアクセス回数値を以前ローカルアドレスのアクセス回数値に各々変更するようにアクセスカウンタ３０６を制御できる。
【０１１５】
マップ管理部３１２は、データ属性決定部３１０から受信したローカルアドレス、すなわち、以前ローカルアドレスと前記新しいローカルアドレスとをデータ入出力部３１４に提供することができる。
【０１１６】
ステップＳ８０６において、データ入出力部３１４は、メモリインターフェース１３６に前記以前ローカルアドレスを提供できる。メモリインターフェース１３６は、前記読み出しコマンドに応じて、前記以前ローカルアドレスと連関したメモリユニットの読み出し動作を各々制御し、前記読み出し動作により読み出された読み出しデータをメモリコントロールユニット１３４内部のバッファ（図示せず）にバッファリングすることができる。
【０１１７】
ステップＳ８０８において、データ入出力部３１４は、メモリインターフェース１３６に書き込みコマンド、前記新しいローカルアドレス、及び前記バッファリングされた読み出しデータを提供できる。メモリインターフェース１３６は、前記書き込みコマンドに応じて、前記新しいローカルアドレスと連関したメモリユニットのそれぞれの書き込み動作を制御できる。
【０１１８】
図８において説明されたメモリシステム１１０のデータ属性アップデート動作によれば、ローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定されたメモリプール１５０内部に格納されたデータの属性によってメモリプール１５０内部に格納されたデータを区分して格納することができる。特に、メモリコントローラ１３４は、過去にホットデータに決定されて第１のメモリユニットに格納されており、長い間アクセスされなかったまま、第１のメモリユニットに格納されているデータを第２のメモリユニットに移して格納することができる。
【０１１９】
図１〜図８において説明されたメモリシステム１１０は、メモリボード形態でラック（ｒａｃｋ）内に装着されて、データセンタのようなサーバシステムまたはデータ処理システムを構成できる。一実施形態に係るメモリシステム１１０を含むデータ処理システムが図９〜図１２において説明される。
【０１２０】
図９は、データ処理システム１０を示す図である。
【０１２１】
図９に示すように、データ処理システム１０は、複数のコンピューティングラック（ｃｏｍｐｕｔｉｎｇ  ｒａｃｋｓ、２０）と管理インターフェース（ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｆａｃｅ、３０）、そして、これらの間の通信が可能なようにするネットワーク（ｎｅｔｗｏｒｋ、４０）を備えることができる。このようなラックスケール構造（ｒａｃｋ−ｓｃａｌｅ  ａｒｃｈｉｔｅｃｔｕｒｅ）を有するデータ処理システム１０は、大容量データ処理のためのデータセンタなどに使用されることができる。
【０１２２】
複数のコンピューティングラック２０の各々は、他のコンピューティングラック２０との組み合わせで１つのコンピューティングシステムを実現できる。このようなコンピューティングラック２０の具体的な構成及び動作についての説明は後述する。
【０１２３】
管理インターフェース３０は、ユーザがデータ処理システム１０を調整、運営、または管理できるようにするインタラクティブインターフェース（ｉｎｔｅｒａｃｔｉｖｅ  ｉｎｔｅｒｆａｃｅ）を提供できる。管理インターフェース３０は、コンピュータ、マルチプロセッサシステム、サーバ、ラックマウント（ｒａｃｋ−ｍｏｕｎｔ）サーバ、ボード（ｂｏａｒｄ）サーバ、ラップトップ（ｌａｐ−ｔｏｐ）コンピュータ、ノートブックコンピュータ、タブレットコンピュータ、ウェアラブルコンピューティングシステム、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、プロセッサ基盤システム、及び／又は消費者電子機器を含む、任意類型の演算デバイスとして実現されることができる。
【０１２４】
一部実施形態において、管理インターフェース３０は、コンピューティングラック２０により行われることができる演算機能や、管理インターフェース３０により行われることができるユーザインターフェース機能を有する分散システムにより実現されることができる。他の一部実施形態において、管理インターフェース３０は、ネットワーク４０を介して分散された多重コンピューティングシステムにより構成され、クラウド（ｃｌｏｕｄ）として動作する仮想サーバ（ｖｉｒｔｕａｌ  ｓｅｒｖｅｒ）により実現されることができる。管理インターフェース３０は、プロセッサ、入力／出力サブシステム、メモリ、データストレージデバイス、及び通信回路を含むことができる。
【０１２５】
ネットワーク４０は、コンピューティングラックと管理インターフェース３０との間及び／又はコンピューティングラック間でのデータを送受信できる。ネットワーク４０は、適切な数の様々な有線及び／又は有線ネットワークにより実現されることができる。例えば、ネットワーク４０は、有線または無線ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）セルラーネットワーク、及び／又はインターネットのように公開的にアクセス可能なグローバルネットワーク（ｐｕｂｌｉｃｌｙ−ａｃｃｅｓｓｉｂｌｅ、ｇｌｏｂａｌ  ｎｅｔｗｏｒｋ）により実現されるか、これを含むことができる。追加的に、ネットワーク４０は、補助的なコンピュータ、ルータ（ｒｏｕｔｅｒ）、及びスイッチなどのような適切な数の補助的なネットワークデバイスを含むことができる。また、ネットワーク４０は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格によって連結されることができる。
【０１２６】
図１０は、本発明の実施形態に係るコンピューティングラック構造を概略的に示す図である。
【０１２７】
図１０に示すように、コンピューティングラック２０は、構成要素等の構造、形態、及び呼称などに制限されるものではないが、様々な形態の構成要素を含むことができる。例えば、コンピューティングラック２０は、複数のドロワ（ｄｒａｗｅｒ）２１〜２９を備えることができる。複数のドロワ２１〜２９の各々は、複数のボード（ｂｏａｒｄ）を含むことができる。
【０１２８】
様々な実施形態において、コンピューティングラック２０は、適切な数の演算ボード（ｃｏｍｐｕｔｅ  ｂｏａｒｄ）、メモリボード（ｍｅｍｏｒｙ  ｂｏａｒｄ）、及び／又は相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ）の組み合わせにより実現されることができる。ここでは、コンピューティングラック２０が複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワ、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。このようなコンピューティングラック２０の構成要素等は、実現の都合上、機能別に分類及び区別される構造を有することができる。制限されるものではないが、コンピューティングラック２０は、上端から相互接続ボード、演算ボード、メモリボードの順序に分類された構造を有することができる。このようなコンピューティングラック２０及びこれにより実現されるコンピューティングシステムは、「ラック−スケールシステム（ｒａｃｋ−ｓｃａｌｅ  ｓｙｓｔｅｍ）」または「分類システム（ｄｉｓａｇｇｒｅｇａｔｅｄ  ｓｙｓｔｅｍ）」と命名されることができる。
【０１２９】
様々な実施形態において、コンピューティングシステムは、１つのコンピューティングラック２０により実現されることができる。これに代えて、コンピューティングシステムは、２個以上のコンピューティングラックに含まれる全ての構成要素により実現されるか、２個以上のコンピューティングラックに含まれる一部構成要素の組み合わせにより実現されるか、１つのコンピューティングラック２０に含まれる一部構成要素により実現されることができる。
【０１３０】
様々な実施形態において、コンピューティングシステムは、コンピューティングラック２０に含まれる適切な数の演算ボード、メモリボード、及び相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ）の組み合わせにより実現されることができる。例えば、コンピューティングシステム２０Ａは、２個の演算ボード、３個のメモリボード、及び１個の相互接続ボードにより実現されることができる。他の例に、コンピューティングシステム２０Ｂは、３個の演算ボード、２個のメモリボード、及び１個の相互接続ボードにより実現されることができる。さらに他の例に、コンピューティングシステム２０Ｃは、１個の演算ボード、４個のメモリボード、及び１個の相互接続ボードにより実現されることができる。
【０１３１】
例えば、図１０では、コンピューティングラック２０が適切な数の演算ボード、メモリボード、及び／又は相互接続ボードの組み合わせにより実現される場合を図示しているが、コンピューティングラック２０は、通常のサーバなどで確認され得るような、パワーシステム、冷却システム、入力／出力デバイス等のような追加的な構成要素を含むことができる。
【０１３２】
図１１は、本発明の実施形態に係るコンピューティングラック２０のブロック構成を示す図である。
【０１３３】
図１１に示すように、コンピューティングラック２０は、複数の演算ボード（ｃｏｍｐｕｔｅ  ｂｏａｒｄｓ、２００）、複数のメモリボード（ｍｅｍｏｒｙ  ｂｏａｒｄｓ、４００）、及び相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ、３００）を備えることができる。複数の演算ボード２００は、プールド演算ボード（ｐｏｏｌｅｄ  ｃｏｍｐｕｔｅ  ｂｏａｒｄｓ）、プールド演算システムなどと呼ばれることができる。同様に、複数のメモリボードは、プールドメモリボード（ｐｏｏｌｅｄ  ｍｅｍｏｒｙ  ｂｏａｒｄ）、プールドメモリシステムなどと呼ばれることができる。ここでは、コンピューティングシステムが複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワ、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。
【０１３４】
複数の演算ボード２００の各々は、１つまたはそれ以上のプロセッサ、プロセシング／コントロール回路、または、中央処理処置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）のようなプロセシング要素を含むことができる。図１において説明されたホスト１０２は、演算ボード２００に対応することができる。
【０１３５】
複数のメモリボード４００の各々は、複数の揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）及び／又は不揮発性メモリ（ｎｏｎｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）などのような様々な形態のメモリを備えることができる。例えば、複数のメモリボード４００の各々は、複数のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、メモリカード、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、ＨＤＤ）、ソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ、ＳＳＤ）、及び／又はこれらの組み合わせを含むことができる。
【０１３６】
図１〜図８において説明されたメモリシステム１１０は、それぞれのメモリボード４００に対応することができる。それぞれのメモリボード４００は、時間的に可変するローカルアドレス別コマンド受信回数に基づいて閾値を動的に変更し、前記閾値に基づいて決定されたデータの属性によって前記データが区分して格納されるように、システムアドレスとローカルアドレスとの間のマッピング関係を変更するコントローラを備えることができる。
【０１３７】
複数のメモリボード４００の各々は、演算ボード２００の各々に含まれる１つ以上のプロセシング要素により分割されるか、割り当てられるか、または指定されて使用されることができる。また、複数のメモリボード４００の各々は、演算ボード２００により初期化及び／又は実行され得る１つ以上のオペレーティングシステム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ、ＯＳ）を格納することができる。
【０１３８】
相互接続ボード３００は、演算ボード２００の各々に含まれる１つ以上のプロセシング要素により分割、割当、または指定されて使用されることができる、任意の通信回路、デバイス、またはこれらの組み合わせにより実現されることができる。例えば、相互接続ボード３００は、任意個数のネットワークインターフェースポート、カード、またはスイッチとして実現されることができる。相互接続ボード３００は、通信を実行させるための、１つ以上の有線または有線通信技術等と関連したプロトコルを使用できる。例えば、相互接続ボード３００は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）などのようなプロトコルによって演算ボード２００とメモリボード４００との間の通信を支援できる。その上、相互接続ボード３００は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格によって演算ボード２００と連結されることができる。
【０１３９】
図１２は、本発明の実施形態に係る演算ボード２００の構成を示す図である。
【０１４０】
図１２に示すように、演算ボード２００は、１つ以上の中央処理処置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ、２１０）、１つ以上のローカルメモリ（ｌｏｃａｌ  ｍｅｍｏｒｙ、２２０）、及び入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ、Ｉ／Ｏ）インターフェース（ｉｎｔｅｒｆａｃｅ、２３０）を備えることができる。
【０１４１】
ＣＰＵ（２１０）は、図１０に示された複数のメモリボード４００のうち、使用するための少なくとも１つのメモリボードを分割、割当、または指定できる。また、ＣＰＵ（２１０）は、分割、割当、または指定された少なくとも１つのメモリボードを初期化し、これらを介してデータの読み出し動作、書き込み（または、プログラム）動作などを行うことができる。
【０１４２】
ローカルメモリ２２０は、ＣＰＵ（２１０）の動作実行中に必要なデータを格納できる。様々な実施形態において、１つのローカルメモリ２２０は、１つのＣＰＵ（２１０）に１対１対応する構造を有することができる。
【０１４３】
Ｉ／Ｏインターフェース２３０は、図１１の相互接続ボード３００を介してのＣＰＵ（２１０）とメモリボード４００との間でのインターフェーシングを支援できる。Ｉ／Ｏインターフェース２３０は、１つ以上の有線または有線通信技術等と関連したプロトコルを使用して、ＣＰＵ（２１０）から相互接続ボード３００への送信データを出力し、相互接続ボード３００からＣＰＵ（２１０）への受信データを入力できる。例えば、Ｉ／Ｏインターフェース２３０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）などのようなプロトコルによってＣＰＵ（２１０）と相互接続ボード３００との間の通信を支援できる。その上、Ｉ／Ｏインターフェース２３０は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格によってＣＰＵ（２１０）と相互接続ボード３００との間の通信を支援できる。
【０１４４】
様々な実施形態によれば、ローカルアドレス別アクセス回数によってデータ属性を決定し、他の属性を有するデータをメモリプールに区分して格納するメモリシステムを提供できる。
【０１４５】
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。
【符号の説明】
【０１４６】
１１０  メモリシステム
１３０  コントローラ
１５０  メモリプール
【図１】
2020102197.tif 000003
【図２】
2020102197.tif 000004
【図３】
2020102197.tif 000005
【図４】
2020102197.tif 000006
【図５】
2020102197.tif 000007
【図６】
2020102197.tif 000008
【図７】
2020102197.tif 000009
【図８】
2020102197.tif 000010
【図９】
2020102197.tif 000011
【図１０】
2020102197.tif 000012
【図１１】
2020102197.tif 000013
【図１２】
2020102197.tif 000014