IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスケーハイニックス株式会社の特許一覧

特許7449063メモリシステム及びメモリシステムの動作方法
<>
  • 特許-メモリシステム及びメモリシステムの動作方法 図1
  • 特許-メモリシステム及びメモリシステムの動作方法 図2
  • 特許-メモリシステム及びメモリシステムの動作方法 図3
  • 特許-メモリシステム及びメモリシステムの動作方法 図4
  • 特許-メモリシステム及びメモリシステムの動作方法 図5
  • 特許-メモリシステム及びメモリシステムの動作方法 図6
  • 特許-メモリシステム及びメモリシステムの動作方法 図7
  • 特許-メモリシステム及びメモリシステムの動作方法 図8
  • 特許-メモリシステム及びメモリシステムの動作方法 図9
  • 特許-メモリシステム及びメモリシステムの動作方法 図10
  • 特許-メモリシステム及びメモリシステムの動作方法 図11
  • 特許-メモリシステム及びメモリシステムの動作方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-05
(45)【発行日】2024-03-13
(54)【発明の名称】メモリシステム及びメモリシステムの動作方法
(51)【国際特許分類】
   G06F 12/02 20060101AFI20240306BHJP
【FI】
G06F12/02 510A
G06F12/02 570A
【請求項の数】 17
(21)【出願番号】P 2019185774
(22)【出願日】2019-10-09
(65)【公開番号】P2020102197
(43)【公開日】2020-07-02
【審査請求日】2022-07-08
(31)【優先権主張番号】10-2018-0167585
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】郭昌敏
【審査官】北村 学
(56)【参考文献】
【文献】特開2008-021314(JP,A)
【文献】特開2009-048613(JP,A)
【文献】特開2011-186558(JP,A)
【文献】特開2014-059820(JP,A)
【文献】特開2018-036711(JP,A)
【文献】特開2018-142236(JP,A)
【文献】米国特許出願公開第2015/0039837(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/128
(57)【特許請求の範囲】
【請求項1】
複数のメモリユニットを備えるメモリプールと、
前記複数のメモリユニットを制御するコントローラと、
を備え、
前記コントローラは、
ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換する変換部と、
前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数に基づいて、閾値を動的に変更する閾値決定部と、
前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するデータ属性決定部と、
前記データの属性が前記データ属性決定部により変更されることと決定されるならば、前記データを前記変換されたローカルアドレスとは異なる新しいローカルアドレスに対応するメモリ領域に格納するように、前記複数のメモリユニットのうち、前記新しいローカルアドレスと連関したメモリユニットを制御するデータ入出力部と、
前記システムアドレスを前記新しいローカルアドレスにマッピングするマップ管理部と、
前記ローカルアドレスのアクセス回数をカウントし、所定周期で前記ローカルアドレスのアクセス回数を初期化し、前記ローカルアドレスのアクセス回数のカウントを再開するアクセスカウンタと、
を備え、
前記マップ管理部は、前記アクセスカウンタが前記新しいローカルアドレスのアクセス回数値を前記変換されたローカルアドレスのアクセス回数値に変更し、前記変換されたローカルアドレスのアクセス回数値を初期化するように前記アクセスカウンタを制御するメモリシステム。
【請求項2】
前記複数のメモリユニットの各々は、
第1または第2のメモリユニットのうち、いずれか1つであり、
前記データ入出力部は、
前記変換されたローカルアドレスのアクセス回数が前記閾値以上であるか否かによって前記データを第1のメモリユニットまたは第2のメモリユニットのうち、いずれか1つに格納することで、前記データを区分して格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項1に記載のメモリシステム。
【請求項3】
前記ローカルアドレスのアクセス回数を初期化する動作は、前記データの属性をアップデートする動作と同じ周期で行われる請求項2に記載のメモリシステム。
【請求項4】
前記閾値決定部は、
所定周期で、前記閾値を前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数の最大値及び最小値の平均値に変更する請求項2に記載のメモリシステム。
【請求項5】
前記閾値決定部は、
所定周期で、前記閾値を前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数の最大値及び最小値の平均値及び前記閾値の上限のうち、小さい値に変更する請求項2に記載のメモリシステム。
【請求項6】
前記データ入出力部は、
前記アクセスコマンドが読み出しコマンドである場合、前記データの属性が前記データ属性決定部により変更されることと決定されるならば、前記変換されたローカルアドレスに対応するメモリ領域から読み出されたデータを前記新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項2に記載のメモリシステム。
【請求項7】
前記データ入出力部は、
前記アクセスコマンドが書き込みコマンドである場合、前記データの属性が前記データ属性決定部により変更されることと決定されるならば、前記ホストから受信した書き込みデータを前記新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項2に記載のメモリシステム。
【請求項8】
前記データ属性決定部は、
周期的に前記メモリプール内部の全てのデータの属性をローカルアドレス別に決定し、
前記データ入出力部は、
前記メモリプール内部の全てのデータのうち、属性が変更されたデータをローカルアドレスに対応するメモリ領域から取得し、前記取得されたデータを各々新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御する請求項2に記載のメモリシステム。
【請求項9】
前記第1のメモリユニットは、DRAMユニットであり、
前記第2のメモリユニットは、NANDフラッシュメモリユニットである請求項2に記載のメモリシステム。
【請求項10】
複数のメモリユニットを備えるメモリプールを含むメモリシステムの動作方法において、
ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換するステップと、
前記ローカルアドレスのアクセス回数をカウントし、所定周期で前記ローカルアドレスのアクセス回数を初期化し、前記ローカルアドレスのアクセス回数のカウントを再開するステップと、
前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数に基づいて閾値を動的に変更するステップと、
前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するステップと、
前記決定された属性が変更されることと決定されるならば前記データを前記複数のメモリユニットのうち、前記変換されたローカルアドレスとは異なる新しいローカルアドレスに対応するメモリ領域に格納するステップと、
前記システムアドレスを前記新しいローカルアドレスにマッピングするステップと、
を含み、
前記システムアドレスを前記新しいローカルアドレスにマッピングするステップは、前記新しいローカルアドレスのアクセス回数値を前記変換されたローカルアドレスのアクセス回数値に変更し、前記変換されたローカルアドレスのアクセス回数値を初期化するステップを含む動作方法。
【請求項11】
前記メモリプールは、1つ以上の第1及び第2のメモリユニットを備え、
前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記変換されたローカルアドレスのアクセス回数が前記閾値以上であるか否かによって前記データを第1のメモリユニットまたは第2のメモリユニットのうち、いずれか1つに格納するステップを含む請求項10に記載の動作方法。
【請求項12】
前記ローカルアドレスのアクセス回数を初期化する動作は、前記データの属性をアップデートする動作と同じ周期で行われる請求項10に記載の動作方法。
【請求項13】
前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数に基づいて閾値を動的に変更するステップは、
所定周期で、前記閾値を前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数の最大値及び最小値の平均値に変更する請求項10に記載の動作方法。
【請求項14】
前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数に基づいて閾値を動的に変更するステップは、
所定周期で、前記閾値を前記メモリプール内部のデータに対応するローカルアドレスのアクセス回数の最大値及び最小値の平均値及び前記閾値の上限のうち、小さい値に変更する請求項10に記載の動作方法。
【請求項15】
記決定された属性が変更されることと決定されるならば前記データを前記複数のメモリユニットのうち、前記変換されたローカルアドレスとは異なる新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記アクセスコマンドが読み出しコマンドである場合、前記データの属性が変更されることと決定されるならば、前記変換されたローカルアドレスに対応するメモリ領域から読み出されたデータを前記新しいローカルアドレスに対応するメモリ領域に格納するステップを含む請求項10に記載の動作方法。
【請求項16】
前記決定された属性が変更されることと決定されるならば、前記データを前記複数のメモリユニットのうち前記変換されたローカルアドレスとは異なる新しいローカルアドレスに対応するメモリ領域に格納するステップは、
前記アクセスコマンドが書き込みコマンドである場合、前記データの属性が変更されることと決定されるならば、前記ホストから受信した書き込みデータを前記新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御するステップを含む請求項10に記載の動作方法。
【請求項17】
周期的に前記メモリプール内部の全てのデータの属性をローカルアドレス別に決定するステップと、
前記メモリプール内部の全てのデータのうち、属性が変更されたデータをローカルアドレスに対応するメモリ領域から取得するステップと、
前記取得されたデータを各々新しいローカルアドレスに対応するメモリ領域に格納するステップと、
をさらに含む請求項10に記載の動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリシステムに関し、メモリプールを含むメモリシステム及びその動作方法に関する。
【背景技術】
【0002】
データは、第4次産業革命時代において企業等のビジネスに最も重要な資産となっており、これにより、大規模データを早く送信及び分析するように支援する最新技術に対する需要が次第に増加している。例えば、人工知能、自律走行、ロボット、ヘルスケア、仮想現実(virtual reality、VR)/拡張現実(augmented reality、AR)、スマートホームなどが拡大されるにつれて、サーバやデータセンタに対する需要が増加するであろう。
【0003】
レガシ(legacy)データセンタは、資源等(例えば、コンピューティング、ネットワーク、ストレージ)を1つの装備内に含める構造であった。しかしながら、未来の大容量データセンタは、資源を各々別に構成し、論理的に資源を再構成する構造を有することができる。例えば、大容量データセンタは、資源を各々ラック(rack)水準でモジュール化し、用途に応じて資源を再構成して供給できる構造を有することができる。したがって、未来の大容量データセンタに使用するのに適した統合型ストレージまたはメモリデバイスが求められている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ローカルアドレス別アクセス回数を反映してデータ属性、例えば、ホットデータまたはコールドデータを決定し、互いに異なる属性のデータをメモリプールに区分して格納するメモリシステム及びその動作方法を提供しようとする。
【課題を解決するための手段】
【0005】
本発明の一実施形態に係るメモリシステムは、複数のメモリユニットを備えるメモリプールと、前記複数のメモリユニットを制御するコントローラとを備え、前記コントローラは、ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換する変換部と、前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて、閾値を動的に変更する閾値決定部と、前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するデータ属性決定部と、前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するように、前記新しいローカルアドレスと連関したメモリユニットを制御するデータ入出力部とを備える。
【0006】
本発明の一実施形態によれば、メモリプールを含むメモリシステムの動作方法は、ホストからアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール内部のローカルアドレスに変換するステップと、前記メモリプール内部データのローカルアドレス別アクセス回数に基づいて閾値を動的に変更するステップと、前記閾値及び前記変換されたローカルアドレスのアクセス回数に基づいて、前記変換されたローカルアドレスと連関したデータの属性を決定するステップと、前記データを前記決定された属性に基づいて、前記複数のメモリユニットのうち、新しいローカルアドレスに対応するメモリ領域に格納するステップとを含む。
【0007】
本発明の一実施形態に係るメモリシステムは、互いに異なる格納領域を含む第1及び第2の装置と、コントローラとを備え、前記コントローラは、それぞれの格納領域内の位置を表すローカルアドレス(前記ローカルアドレスは、システムアドレスとローカルアドレスとの間の関係を表すマップ情報に基づいてアクセス要請されたシステムアドレスから変更される)に対するアクセス毎に前記ローカルアドレスのアクセス回数をカウントし、所定周期で、前記マップ情報内のローカルアドレスのアクセス回数に基づいて閾値をアップデートし、ホットデータを前記第2の装置の格納領域から前記第1の装置の格納領域へ移動させ、コールドデータを前記第1の装置の格納領域から前記第2の装置の格納領域へ移動させ、前記マップ情報内のローカルアドレスを前記ホットデータ及びコールドデータの移動によって変更し、前記ホットデータのローカルアドレスのアクセス回数は、閾値と同じであるか、大きく、前記コールドデータのローカルアドレスのアクセス回数は、閾値より小さい。
【0008】
本発明の一実施形態に係るメモリシステムは、互いに異なる格納領域を含む第1及び第2の装置と、コントローラとを備え、前記コントローラは、それぞれの格納領域内の位置を表すローカルアドレス(前記ローカルアドレスは、システムアドレスとローカルアドレスとの間の関係を表すマップ情報に基づいてアクセス要請されたシステムアドレスから変更される)に対するアクセス毎に前記ローカルアドレスのアクセス回数をカウントし、所定周期で、前記マップ情報内のローカルアドレスのアクセス回数に基づいて閾値をアップデートし、前記アクセス要請されたシステムアドレスと連関した書き込み要請に応じてホットデータは第1の装置の格納領域に格納し、コールドデータは第2の装置の格納領域に格納し、前記マップ情報内のローカルアドレスを前記ホットデータ及びコールドデータの移動によって変更し、前記ホットデータのローカルアドレスのアクセス回数は、閾値と同じであるか、大きく、前記コールドデータのローカルアドレスのアクセス回数は閾値より小さい。
【発明の効果】
【0009】
ローカルアドレス別アクセス回数を反映してデータ属性を決定し、互いに異なる属性のデータをメモリプールに区分して格納するメモリシステム及びその動作方法を提供できる。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
図2】データ属性によって第1及び第2のメモリユニットにデータを区分して格納するためのアドレスマッピングを説明するための図である。
図3】本発明の一実施形態に係るデータコントロールユニットの構造を概略的に示した図である。
図4】システムアドレスを新しいローカルアドレスにマッピングする動作を説明するための図である。
図5】本発明の一実施形態に係るメモリシステムの書き込み動作を示したフローチャートである。
図6】本発明の一実施形態に係るメモリシステムの書き込み動作を示したフローチャートである。
図7】本発明の一実施形態に係るメモリシステムの読み出し動作を示したフローチャートである。
図8】本発明の一実施形態に係るメモリシステムのデータ属性アップデート動作を示したフローチャートである。
図9】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
図10】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
図11】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
図12】本発明の一実施形態に係るメモリシステムを含むデータ処理システムの構造を示した図である。
【発明を実施するための形態】
【0011】
以下、本発明に係る好ましい実施形態を添付した図面を参照して詳細に説明する。下記の説明では、本発明に係る動作を理解するのに必要な部分のみが説明され、それ以外の部分の説明は、本発明の要旨を濁さないように省略されるであろうということに留意すべきである。
【0012】
「第1」、「第2」、「第3」などの用語が本明細書において様々な構成要素を説明するために使用されることができるが、これらの構成要素は、これらの用語により制限されないことと理解されるであろう。この用語らは、ある構成要素を他の構成要素と区別するために使用される。したがって、後述する第1構成要素は、本発明の思想及び範囲を逸脱しないながら、第2または第3構成要素と理解されることができる。
【0013】
構成要素が他の構成要素に「連結された」ことと言及されるとき、他の構成要素に直接連結されるか、1つ以上の構成要素が介入され得る。また、構成要素が2つの構成要素の「間に」あることと言及されるとき、これは、2つの構成要素間の唯一の構成要素でありうるし、1つ以上の構成要素がさらに介入され得る。直接または間接的に連結された2つの要素間の通信は、直接言及されたり、文脈上異なるように表さない限り、有線または無線でありうる。
【0014】
本明細書において使用されたように、単数の表現は、文脈上、明らかに異なるように表さない限り、複数の表現を含むことができる。
【0015】
本明細書において使用される用語「含む」は、言及された構成要素の存在を明示し、1つ以上の他の構成要素の存在または付加を排除しないことと理解されるであろう。本明細書において使用された用語「及び/又は」は、関連した列挙項目のうち1つ以上の任意の及びあらゆる組み合わせを含む。
【0016】
「一実施形態」、「他の実施形態」などを言及するとして、必ずしも1つの実施形態だけを意味するものではなく、そのような文句に対する他の参照が必ずしも同じ実施形態に対するものではない。
【0017】
以下、図面を参照して本発明の実施形態等についてより具体的に説明する。
【0018】
図1は、本発明の実施形態に係るメモリシステム110を含むデータ処理システム100の構造を示した図である。
【0019】
図1に示すように、データ処理システム100は、メモリシステム110及びホスト102を含むことができる。
【0020】
未来のデータセンタのようなサーバシステムまたはデータ処理システムは、演算ボード、メモリボードなどのような複数のボードが単位ラック内で区別されて装着される構造を有することができる。メモリシステム110は、前記メモリボードと対応することができる。ホスト102は、前記演算ボードと対応することができる。
【0021】
図1に示すように、メモリシステム110は、メモリプール150、及びコントローラ130を備えることができる。
【0022】
メモリプール150は、複数のメモリユニットを備えることができる。前記メモリユニットは、コントローラ130の制御によってデータを格納(または、書き込み)し、格納されたデータを出力(または、読み出し)することができる。
【0023】
メモリプール150は、様々なユーザワークロード(user workload)を充足させるために、互いに異なる特性を有する複数のメモリユニットを備えることができる。すなわち、1つのメモリプール150は、DRAM、PCRAM、MRAM、STT-RAM、フラッシュメモリのような複数のメモリが統合された形態を有する統合メモリデバイス(integrated memory device)でありうる。このような統合メモリデバイスは、各メモリが互いに異なる特性を有するので、様々な使用モデル(usage model)に活用されることができる。
【0024】
メモリプール150は、第1のメモリグループ(1st memory group)及び第2のメモリグループ(2nd memory group)を含むことができる。第1のメモリグループ及び第2のメモリグループは、各々1つ以上のメモリユニットを備えることができる。メモリユニットは、外部のコマンドに応じて内部にデータを格納することができる。図1に示されたメモリグループとメモリユニットの数は、例示に過ぎず、実現によって変更されることができる。
【0025】
一実施形態において、第1のメモリグループに備えられた第1のメモリユニット(1st memory unit)及び第2のメモリグループに備えられた第2のメモリユニット(2nd memory unit)は、互いに異なる特性を有することができる。一例として、第1のメモリユニットは、第2のメモリユニットに比べてアクセス速度が速いメモリ装置を含むことができる。一例として、第1のメモリユニットは、揮発性メモリユニットであり、第2のメモリユニットは、不揮発性メモリユニットでありうる。揮発性メモリユニットの例に、DIMMのようなDRAMユニットがある。不揮発性メモリユニットの例に、UFS(Universal Flash Stroage)、eMMCのようなNANDフラッシュメモリユニットがある。
【0026】
第1のメモリユニットと第2のメモリユニットとは、互いに異なる長所を有することができる。第1のメモリユニットがDRAMユニットであり、第2のメモリユニットがNANDフラッシュメモリユニットである場合を例に挙げて前記第1及び第2のメモリユニットの互いに異なる長所を説明する。第1のメモリユニットは、第2のメモリユニットに比べてアクセス速度が速く、第2のメモリユニットより寿命が長いことができる。第2のメモリユニットは、不揮発性メモリであって、内部に格納されたデータを維持するために、リフレッシュ動作を行う必要がないので、低電力で動作することができる。
【0027】
一方、前記第2のメモリユニットが第1のメモリユニットに比べてアクセス速度が遅いことがある。一実施形態において、第2のメモリグループは、遅いアクセス速度を改善するために、キャッシュメモリユニット(図示せず)をさらに備えることができる。前記キャッシュメモリユニットは、DRAMユニットでありうる。実施形態によって、前記キャッシュメモリユニットは、書き込みスルー(Write through)方式で動作するか、書き込みバック(Write back)方式で動作することができる。
【0028】
コントローラ130は、ホスト102とメモリプール150内部のメモリユニットとの間でデータ送受信を制御できる。
【0029】
コントローラ130は、ホストインターフェース132、データコントロールユニット134、及びメモリインターフェース136を備えることができる。
【0030】
データコントロールユニット134は、メモリシステム110の全般的な動作を制御できる。例えば、データコントロールユニット134は、書き込み要請に応じてホスト102から受信した書き込みデータをメモリユニットに格納する書き込み動作を制御できる。他の例に、データコントロールユニット134は、読み出し要請に応じてメモリユニットに格納されたデータを読み出し、読み出しデータをホスト102に出力する読み出し動作を制御できる。
【0031】
ホストインターフェース132は、ホスト102とデータコントロールユニット134との間でのインターフェーシングを支援する。一実施形態において、ホストインターフェース132は、データコントロールユニット134とホスト102との間での、相互接続ボードを介してのインターフェーシングを支援できる。前記相互接続ボードは、図11において具体的に説明される。
【0032】
ホストインターフェース132は、1つ以上の有線または無線通信技術と関連したプロトコルを使用して、データコントロールユニット134から受信されるデータをホスト102に提供し、ホスト102から受信されるデータをデータコントロールユニット134に提供することができる。例えば、ホストインターフェース132は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet)(登録商標)などのようなプロトコルによってホスト102とデータコントロールユニット134との間の通信を支援できる。その上、ホストインターフェース132は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN-Zのようなインターフェース規格によってホスト102とデータコントロールユニット134との間の通信を支援できる。
【0033】
メモリインターフェース136は、データコントロールユニット134とメモリプール150のメモリユニットとの間のインターフェーシングを支援する。メモリインターフェース136は、トラフィック仲裁器(Traffic Arbitrator)並びに第1のメモリコントロールユニット(1st MCU)及び第2のメモリコントロールユニット(2nd MCU)を備えることができる。
【0034】
第1のメモリコントロールユニットは、第1のメモリグループに備えられた第1のメモリユニットを制御できる。すなわち、前記第1のメモリコントロールユニットは、コントローラ130と第1のメモリユニットとの間でデータ送受信を支援できる。
【0035】
第2のメモリコントロールユニットは、第2のメモリグループに備えられた第2のメモリユニットを制御できる。すなわち、前記第2のメモリコントロールユニットは、コントローラ130と第2のメモリユニットとの間でデータ送受信を支援できる。
【0036】
トラフィック仲裁器は、データコントロールユニット134と前記第1及び第2のメモリコントロールユニットとの間の信号送受信を仲裁できる。具体的に、前記トラフィック仲裁器は、データコントロールユニット134から受信した読み出しまたは書き込みコマンドをメモリプール150のローカルアドレスと連関したメモリコントロールユニットに提供することができる。
【0037】
一方、コントローラ130は、前記第1のメモリユニットと第2のメモリユニットとの互いに異なる長所を全て取るために、前記第1のメモリユニットと第2のメモリユニットとが互いに異なる属性のデータを格納するように制御することができる。例えば、コントローラ130は、頻りにアクセスされるホットデータはアクセス速度が速い第1のメモリユニットに格納され、まれにアクセスされるコールドデータは低電力で動作できる第2のメモリユニットに格納されるように制御することができる。
【0038】
図2は、データ属性によって第1及び第2のメモリユニットにデータを区分して格納するためのアドレスマッピングを説明するための図である。
【0039】
図2は、ホスト102のシステムアドレス、メモリプール150のローカルアドレス、及び前記システムアドレスとローカルアドレスとのマッピング関係を例示する。
【0040】
前記システムアドレスは、ホスト102からメモリシステム110にアクセスするためのアドレスである。前記システムアドレスの一例は、LBA(Logical Block Address)である。
【0041】
前記ローカルアドレスは、前記システムアドレスを受信したコントローラ130がメモリプール150内部のメモリユニットにアクセスするためのアドレスである。前記ローカルアドレスの各々は、所定のメモリユニットに連関する。メモリユニットの種類によって、前記ローカルアドレスは、物理アドレスでありうるし、論理アドレスでありうる。例えば、メモリユニットがNANDフラッシュメモリユニットである場合、前記ローカルアドレスは、論理アドレスであって、連関したメモリユニット内部で物理アドレスに変換されることができる。
【0042】
一実施形態によれば、前記ローカルアドレスの各々がどのメモリユニットと連関するかによって前記ローカルアドレスを第1のローカルアドレスグループ(1st local address group)及び第2のローカルアドレスグループ(2nd local address group)に分けることができる。第1のローカルアドレスグループに属するローカルアドレスは、第1のメモリユニットと連関し、第2のローカルアドレスグループに属するローカルアドレスは、第2のメモリユニットと連関することができる。すなわち、第1のローカルアドレスグループに属するローカルアドレスは、ホットデータと連関し、第2のローカルアドレスグループに属するローカルアドレスは、コールドデータと連関することができる。
【0043】
図2は、システムアドレス「1」がローカルアドレス「A」にマッピングされたことを例示している。ローカルアドレス「A」は、第1のローカルアドレスグループに属するので、ローカルアドレス「A」に連関したデータはホットデータでありうる。同様に、システムアドレス「2」は、ローカルアドレス「a」にマッピングされる場合、ローカルアドレス「a」に連関したデータはコールドデータでありうる。
【0044】
本発明の一実施形態によれば、コントローラ130は、ホスト102からアクセスコマンドとともに受信されるシステムアドレスを前記メモリプール150のローカルアドレスに変換することができる。そして、コントローラ130は、メモリプール150のローカルアドレス別アクセス回数をカウントできる。前記アクセスコマンドは、読み出しコマンド及び書き込みコマンドを含むことができる。
【0045】
コントローラ130は、前記ローカルアドレス別アクセス回数に基づいて閾値を動的に変更することができる。前記ローカルアドレス別アクセス回数は、時間によって変更されることができる。前記閾値は、前記変換されたローカルアドレスと連関したデータの属性を決定するためのアクセス回数の基準値である。
【0046】
本発明の一実施形態によれば、メモリプール150に外部的に提供されるか、既に格納されたデータは、ホットデータとコールドデータのうち、いずれか1つに決定されることができる。閾値は、メモリプール150のローカルアドレッシングされた、時間的に可変するアクセス回数によって動的に決定されることができる。ホットデータに決定されたデータは、第1のメモリユニットに格納されるか、第2のメモリユニットから第1のメモリユニットへ移動されることができる。コールドデータに決定されたデータは、第2のメモリユニットに格納されるか、第1のメモリユニットから第2のメモリユニットへ移動されることができる。ホットデータとコールドデータの格納または移動によって、システムアドレスとローカルアドレスとの間のマッピング関係がアップデートされ得る。
【0047】
コントローラ130は、前記閾値及び前記ローカルアドレス別アクセス回数に基づいてローカルアドレスと連関したデータの属性を決定し、前記決定された属性によって前記データをメモリプール150に区分して格納することができる。また、コントローラ130は、ローカルアドレスのアクセス回数及び前記閾値が動的に変更されることで、前記ローカルアドレスと連関したデータの属性が変更されれば、前記変更された属性によって前記データをメモリプール150内から移して格納することができる。
【0048】
本発明の一実施形態によれば、コントローラ130は、前記ローカルアドレス別アクセス回数及び閾値によってメモリプール150にホットデータとコールドデータとを区分して格納することができる。したがって、メモリシステム110内部の第1のメモリユニットと第2のメモリユニットとの長所が最も発揮されることができる。
【0049】
図3は、本発明の一実施形態に係るデータコントロールユニット134の構造を概略的に示した図である。
【0050】
データコントロールユニット134は、マップテーブル302、変換部304、アクセスカウンタ306、閾値決定部308、データ属性決定部310、マップ管理部312、及びデータ入出力部314を備えることができる。前記変換部304、閾値決定部308、データ属性決定部310、マップ管理部312、及びデータ入出力部314は、それぞれの動作及び機能に必要な全ての回路、システム、ソフトウェア、ファームウエア、及び装置を含む。
【0051】
マップテーブル302は、システムアドレス及びローカルアドレス間のマッピング関係を格納できる。
【0052】
変換部304は、マップテーブル302を参照して、ホスト102から読み出しコマンドまたは書き込みコマンドとともに受信されるシステムアドレスをローカルアドレスに変換することができる。前記受信されたシステムアドレスがまだローカルアドレスにマッピングされていない場合、変換部304は、前記受信されたシステムアドレスを新しいローカルアドレスにマッピングすることができる。
【0053】
アクセスカウンタ306は、ローカルアドレス別アクセス回数をカウントできる。具体的に、アクセスカウンタ306は、コントローラ130内部のメモリ(図示せず)に格納されたローカルアドレス別アクセス回数値のうち、前記読み出しまたは書き込みコマンドに応じて変換されたローカルアドレスのアクセス回数を変更できる。一実施形態において、アクセスカウンタ306は、最近のアクセス傾向を反映するために、予め決定され得る周期で全てのローカルアドレス別アクセス回数値を初期化し、前記アクセス回数カウントを再開できる。
【0054】
閾値決定部308は、ローカルアドレス別アクセス回数値に基づいて閾値を動的に変更することができる。閾値決定部308が閾値を動的に変更する動作の例は、図6を参照して説明される。
【0055】
データ属性決定部310は、前記動的に決定された閾値に基づいて各ローカルアドレスに連関したデータの属性を決定できる。ローカルアドレスと連関したデータの属性が変更されれば、データ属性決定部310は、マップ管理部312に以前ローカルアドレスを提供して新しいローカルアドレスに変更することができる。一方、ローカルアドレスと連関したデータの属性が変更されなければ、データ属性決定部310は、対応するメモリ領域にアクセスするために、既存ローカルアドレスをデータ入出力部314に提供することができる。
【0056】
一実施形態において、データ属性決定部310は、ローカルアドレスがアクセスされる度に、当該ローカルアドレスに連関したデータの属性を決定できる。一実施形態において、データ属性決定部310は、所定周期でメモリプール150に格納された全てのデータの属性をローカルアドレス別に決定することができる。データ属性決定部310が所定周期で前記全てのデータの属性をローカルアドレス別に決定する動作の例は、図8を参照して説明される。
【0057】
マップ管理部312は、所定条件によってシステムアドレスとローカルアドレスとの間のマッピング関係を変更できる。一実施形態において、前記所定条件は、前記データ属性が変更されることと決定されたか否かを含むことができる。マップ管理部312は、データ属性決定部310により決定されたデータの属性に基づいて、当該データの属性が変更されたか否かを決定できる。当該データの属性が変更された場合、マップ管理部312は、当該データのシステムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【0058】
マップ管理部312は、当該データがメモリプール150の他のメモリユニットに格納されるように、当該データに連関したシステムアドレスを新しいローカルアドレスにマッピングすることにより、前記システムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【0059】
図4は、システムアドレスを新しいローカルアドレスにマッピングする動作を説明するための図である。
【0060】
図4は、図2と同様に、システムアドレス、ローカルアドレス、及び前記システムアドレスとローカルアドレスとのマッピング関係を例示している。
【0061】
再度図2を参照すれば、システムアドレス「2」がローカルアドレス「a」にマッピングされる場合、システムアドレス「2」に連関したデータは、コールドデータでありうる。ホスト102から前記システムアドレス「2」に対する読み出しまたは書き込みコマンドを受信してローカルアドレス「a」のアクセスカウントが増加すれば、前記データの属性がホットデータに決定されることができる。マップ管理部312は、第2のローカルアドレスグループに備えられたローカルアドレス「a」に連関したデータがホットデータに決定されたので、前記データの属性が変更されたことと決定することができる。
【0062】
図4に示すように、マップ管理部312は、前記データが第1のメモリユニットに格納されるように、前記システムアドレス「2」を第1のローカルアドレスグループに属する新しいローカルアドレス「D」にマッピングすることができる。マップ管理部312は、前記システムアドレスと新しいローカルアドレスとの間のアドレスマッピング情報をマップテーブル302に反映することができる。
【0063】
一実施形態において、前記所定条件は、前記データ属性が変更されることと決定されたか否かだけでなく、アクセスカウンタ306が前記アクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。アクセスカウンタ306が前記アクセス回数カウントを開始した初期には、各ローカルアドレス別アクセス回数値がメモリプール150に格納されたデータの属性を決定するのに十分に収集されていない場合があるためである。
【0064】
再度図3を参照すれば、データ入出力部314は、前記システムアドレスと前記新しいローカルアドレスとの間のアドレスマッピングによってメモリインターフェース136にコマンドを提供することで、前記新しいローカルアドレスと連関したメモリユニットのデータ入出力を制御できる。一実施形態において、データ入出力部314は、前記システムアドレスとローカルアドレスとの間のマッピング関係が変更される前の以前ローカルアドレス(Old Local Address)の対応メモリ領域に格納されたデータを読み出して新しいローカルアドレス(New Local Address)の対応メモリ領域に前記読み出されたデータを書き込むことができる。
【0065】
以下、図5図8を参照して、本発明の実施形態に係るメモリシステム110の書き込み動作、読み出し動作、及びデータ属性アップデート動作を説明する。
【0066】
図5図6は、本発明の一実施形態に係るメモリシステム110の書き込み動作を示したフローチャートである。
【0067】
図5に示すように、ステップS502においてホストインターフェース132は、ホスト102から書き込みコマンド、書き込みデータ、及び書き込み動作を行う第1のシステムアドレスを受信できる。ホストインターフェース132は、前記第1のシステムアドレスを変換部304に提供することができる。ホストインターフェース132は、前記書き込みコマンドをデータコントロールユニット134内部のコマンドキュー(図示せず)にキューイングし、書き込みデータ及び第1のシステムアドレスをデータコントロールユニット134内部のバッファ(図示せず)にバッファリングすることができる。
【0068】
ステップS504において、変換部304は、マップテーブル302を参照してホストインターフェース132から受信した前記第1のシステムアドレスを第1のローカルアドレスに変換することができる。
【0069】
一方、メモリプール150が前記第1のシステムアドレスと連関したデータを初めて格納する場合、前記第1のシステムアドレスのマッピング情報がマップテーブル302に格納されていないことがある。一実施形態において、変換部304は、前記第1のシステムアドレスのマッピング情報がマップテーブル302に格納されていない場合、前記第1のシステムアドレスを新しいローカルアドレスにマッピングし、後述するステップS506において前記新しいローカルアドレスのアクセスカウントを始めることができる。一方、初めて格納されるデータのアクセスカウントは「0」であるから、変換部304は、前記データをコールドデータとみなし、前記第1のシステムアドレスを第2のローカルアドレスグループに備えられた新しいローカルアドレスにマッピングすることができる。メモリプール150が前記第1のシステムアドレスと連関したデータを初めて格納する場合、前記第1のローカルアドレスは、前記新しいローカルアドレスに該当することができる。
【0070】
変換部304は、アクセスカウンタ306に前記第1のローカルアドレスを提供できる。
【0071】
ステップS506において、アクセスカウンタ306は、前記第1のローカルアドレスのアクセス回数を変更できる。
【0072】
アクセスカウンタ306は、メモリプール150に格納された全てのデータのローカルアドレス別アクセス回数値を閾値決定部308に提供することができる。そして、アクセスカウンタ306は、前記第1のローカルアドレス及びそのアクセス回数値をデータ属性決定部310に提供することができる。
【0073】
ステップS508において、閾値決定部308は、時間的に可変するローカルアドレス別アクセス回数値に基づいて閾値を動的に決定することができる。
【0074】
図6は、ステップS508の動作を具体的に示したフローチャートである。
【0075】
一実施形態において、ステップS508は、ステップS602ないしステップS606を含むことができる。
【0076】
ステップS602において、閾値決定部308は、アクセスカウンタ306から受信した最近の所定時間のローカルアドレス別アクセス回数値の最大値と最小値とを抽出できる。
【0077】
ステップS604において、閾値決定部308は、前記最大値と最小値の平均値を算出できる。
【0078】
ステップS606において、閾値決定部308は、前記算出された平均値を前記閾値に決定することができる。
【0079】
一方、ステップS604において閾値決定部308が必ず平均値を算出すべきものではない。一実施形態において、閾値決定部308は、所定基準によって最大値と最小値との間にある他の値を算出して、ステップS606において前記算出された値を前記閾値に決定することができる。また、ステップS602において閾値決定部308が必ず最大値及び最小値のみを抽出すべきものではない。閾値決定部308は、所定基準によってローカルアドレス別アクセス回数値のうち、これらを代表できる複数の値を抽出できる。
【0080】
一実施形態において、前記閾値の上限が予め決定され得る。メモリユニット内部のメモリ装置は、アクセス回数によって寿命が制限され得る。例えば、マルチレベルセルNANDフラッシュメモリ装置のEWサイクルは、約1万回程度に制限されている。
【0081】
第2のメモリユニットが寿命が制限されたメモリユニットである場合、前記第2のメモリユニット内部のメモリ装置は、前記内部のメモリ装置に格納されたデータのアクセス回数が予め決定されたアクセス回数以上である場合に早く老朽化される可能性がある。したがって、前記閾値の上限が予め決定されることができ、寿命が制限されたメモリユニットに格納されたデータのアクセス回数が臨界アクセス回数以下に制限されることができる。一実施形態において、前記閾値の上限は、前記EWサイクルに基づいて決定されることができる。閾値決定部308は、ステップS604においてローカルアドレス別アクセス回数値に基づいて算出された値と前記閾値の上限のうち、小さい値を閾値に決定することができる。
【0082】
再度図5を参照すれば、ステップS510においてデータ属性決定部310は、前記閾値に基づいて書き込みデータの属性を決定できる。
【0083】
具体的に、データ属性決定部310は、前記第1のローカルアドレス及びそのアクセス回数値をアクセスカウンタ306から受信し、前記閾値を閾値決定部308から受信することができる。
【0084】
データ属性決定部310は、比較器(図示せず)を備えることができる。前記比較器は、前記第1のローカルアドレスのアクセス回数値が前記閾値以上であるか否かによって前記第1のローカルアドレスと連関した前記書き込みデータの属性を決定できる。例えば、前記第1のローカルアドレスのアクセス回数値が前記閾値以上であれば、前記書き込みデータは、ホットデータに決定されることができる。それに対し、前記第1のローカルアドレスのアクセス回数値が前記閾値未満であれば、前記書き込みデータは、コールドデータに決定されることができる。
【0085】
ステップS512において、データ属性決定部310は、アドレスマッピングを変更するための所定条件が満たされるか決定することができる。図3を参照して説明されたように、前記所定条件は、前記決定された書き込みデータの属性が変更されたか否かを含み、アクセスカウンタ306がアクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。
【0086】
前記所定条件が満たされる場合(ステップS512において、「はい」)、データ属性決定部310は、前記第1のローカルアドレス及びこれと連関したデータの属性をマップ管理部312に提供することができる。データコントロールユニット134は、後述するステップS514ないしステップS516の動作を行うことができる。
【0087】
前記所定条件が満たされなかった場合(ステップS512において、「いいえ」)、データ属性決定部310は、前記第1のローカルアドレスをデータ入出力部314に提供することができる。データコントロールユニット134は、後述するステップS518の動作を行うことができる。
【0088】
ステップS514において、マップ管理部312は、第1のシステムアドレスを新しい第1のローカルアドレスにマッピングすることができる。
【0089】
マップ管理部312は、前記新しい第1のローカルアドレスをデータ入出力部314に提供することができる。マップ管理部312は、前記第1のシステムアドレスと前記新しい第1のローカルアドレスとのアドレスマッピング情報をマップテーブル302にアップデートすることができる。そして、マップ管理部312は、アクセスカウンタ306が新しい第1のローカルアドレスのアクセス回数値を以前第1のローカルアドレスのアクセス回数値に変更し、前記以前第1のローカルアドレスのアクセス回数値を初期化するようにアクセスカウンタ306を制御できる。
【0090】
ステップS516において、データ入出力部314は、メモリインターフェース136に前記新しい第1のローカルアドレス、書き込みコマンド、及び書き込みデータを提供できる。ここで、前記書き込みコマンドは、ステップS502においてコマンドキュー(図示せず)にキューイングされた書き込みコマンドであり、前記書き込みデータは、ステップS502においてバッファ(図示せず)にバッファリングされた書き込みデータでありうる。メモリインターフェース136は、データ入出力部314から受信した書き込みコマンドに応じて、前記新しい第1のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【0091】
一方、前記第1のシステムアドレスと前記以前第1のローカルアドレスとのマッピングが解除されるので、ホスト102からアクセスコマンドとともに前記第1のシステムアドレスが再度受信されれば、前記以前第1のローカルアドレスにはアクセスされないであろう。前記以前第1のローカルアドレスは、今後、変換部304またはマップ管理部312により他のシステムアドレスにマッピングされることができる。
【0092】
ステップS518において、データ入出力部314は、ステップS504において前記第1のシステムアドレスから変換された既存第1のローカルアドレスにホスト102から受信した書き込みデータを書き込むようにメモリインターフェース136に書き込みコマンドを提供できる。ここで、前記書き込みコマンドは、ステップS502においてコマンドキュー(図示せず)にキューイングされた書き込みコマンドであり、前記書き込みデータは、ステップS502においてバッファ(図示せず)にバッファリングされた書き込みデータでありうる。メモリインターフェース136は、データ入出力部314から受信した書き込みコマンドに応じて、前記既存第1のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【0093】
図5図6において説明されたメモリシステム110の書き込み動作によれば、時間的に可変するローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定された書き込みデータの属性によって前記書き込みデータをメモリプールに区分して格納することができる。
【0094】
図7は、一実施形態に係るメモリシステム110の読み出し動作を示したフローチャートである。
【0095】
ステップS702において、ホストインターフェース132は、ホスト102から読み出しコマンド及び読み出し動作を行う第1のシステムアドレスを受信できる。ホストインターフェース132は、前記読み出しコマンドをデータコントロールユニット134内部のコマンドキュー(図示せず)にキューイングし、第1のシステムアドレスをデータコントロールユニット134内部のバッファ(図示せず)にバッファリングすることができる。
【0096】
ステップS704において、変換部304は、マップテーブル302を参照してホストインターフェース132から受信した第1のシステムアドレスを第1のローカルアドレスに変換することができる。変換部304は、アクセスカウンタ306に前記第1のローカルアドレスを提供できる。
【0097】
ステップS706において、アクセスカウンタ306は、前記第1のローカルアドレスのアクセス回数をカウントできる。ステップS706の具体的な動作は、ステップS506において説明されたことと同様である。
【0098】
ステップS708において、閾値決定部308は、時間的に可変するローカルアドレス別アクセス回数に基づいて閾値を変更できる。ステップS708の具体的な動作は、ステップS508において説明されたことと同様である。
【0099】
ステップS710において、データ属性決定部310は、前記閾値に基づいて読み出しデータの属性を決定できる。ステップS710の具体的な動作は、ステップS510において説明されたことと同様である。
【0100】
ステップS712において、データ入出力部314は、前記第1のローカルアドレスと連関したメモリユニットが読み出し動作を行うようにメモリインターフェース136に読み出しコマンドを提供できる。ここで、前記読み出しコマンドは、ステップS702においてコマンドキュー(図示せず)にキューイングされた読み出しコマンドでありうる。メモリインターフェース136は、前記メモリユニットから読み出された読み出しデータを前記バッファ(図示せず)にバッファリングすることができる。データ入出力部314は、前記バッファリングされた読み出しデータをホストインターフェース132を介してホスト102に提供することができる。
【0101】
一方、本発明の実施形態によれば、ローカルアドレス別アクセス回数及び閾値は、時間によって可変する。したがって、メモリプール150内部に格納されたデータの属性は、時間によって変更されることができる。例えば、あるデータがコールドデータに決定されて、第2のメモリユニットに格納されたが、当該データを読み出すときは、当該データがホットデータに決定されることができる。後述するステップS714ないしS718において、マップ管理部312は、読み出しデータのデータ属性が変更された場合、当該データが他のメモリユニットに格納されるようにローカルアドレスとシステムアドレスとの間のマッピング関係を変更できる。
【0102】
ステップS714において、データ属性決定部310は、アドレスマッピングを変更するための所定条件が満たされたか決定することができる。図3を参照して説明されたように、前記所定条件は、前記決定された読み出しデータの属性が変更されたか否かを含み、アクセスカウンタ306がアクセス回数カウントを開始して所定時間が経ったか否かをさらに含むことができる。
【0103】
前記所定条件が満たされる場合(ステップS714において、「はい」)、データ属性決定部310は、前記第1のローカルアドレス及びこれと連関したデータの属性をマップ管理部312に提供することができる。データコントロールユニット134は、後述するステップS716ないしステップS718の動作を行うことができる。
【0104】
前記所定条件が満たされなかった場合(ステップS714において、「いいえ」)、データコントロールユニット134は、動作を終了できる。
【0105】
ステップS716において、マップ管理部312は、第1のシステムアドレスを新しい第1のローカルアドレスにマッピングすることができる。ステップS716の具体的な動作は、ステップS514において説明されたことと同様である。
【0106】
ステップS718において、データ入出力部314は、メモリインターフェース136に新しい第1のローカルアドレス、書き込みコマンド、及び読み出しデータを提供できる。ここで、前記書き込みコマンドは、前記第1のシステムアドレスに連関したデータを前記新しい第1のローカルアドレスに移して格納するためのコマンドである。前記読み出しデータは、ステップS712において読み出されてバッファ(図示せず)にバッファリングされたデータである。メモリインターフェース136は、データ入出力部314から受信した書き込みコマンドに応じて、前記新しい第1のローカルアドレスと連関したメモリユニットが書き込み動作を行うように前記メモリユニットを制御できる。
【0107】
図7を参照して説明されたメモリシステム110の読み出し動作によれば、時間的に可変するローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定された読み出しデータの属性によって前記読み出しデータをメモリプールに区分して格納することができる。
【0108】
一方、前述したように、メモリプール150内部に格納されたデータの属性は、時間によって変更されることができる。一実施形態によれば、データコントロールユニット134は、周期的にメモリプール150に格納された全てのデータ属性をローカルアドレス別に更新し、前記更新された属性によって前記データを区分して格納するようにメモリプール150内部のメモリユニットを制御する、データ属性アップデート動作を行うことができる。
【0109】
図8は、本発明の一実施形態に係るメモリシステム110のデータ属性アップデート動作を示したフローチャートである。
【0110】
後述するステップS802ないしステップS808のデータ属性アップデート動作は、所定周期で行われることができる。
【0111】
図3を参照して説明されたところによれば、アクセスカウンタ306は、所定周期で全てのローカルアドレス別アクセス回数値を初期化し、前記アクセス回数カウントを再開できる。一実施形態において、前記データ属性アップデート動作は、前記ローカルアドレス別アクセス回数値を初期化する動作と同じ周期で行われることができる。例えば、前記データ属性アップデート動作は、前記ローカルアドレス別アクセス回数値を初期化する直前に行われることができる。
【0112】
ステップS802において、データ属性決定部310は、閾値に基づいてメモリシステム150に格納された全てのデータの属性をローカルアドレス別に決定することができる。具体的に、データ属性決定部310内部の比較器(図示せず)は、動的に変更される閾値とメモリプール150に格納された全てのデータのローカルアドレス別アクセス回数値とを比較して、前記全てのデータの属性をローカルアドレス別に決定することができる。データ属性決定部310は、前記決定結果に基づいてメモリプール150に格納されたデータの属性が変更されるか否かをローカルアドレス別に決定することができる。データ属性決定部310は、属性が変更されたデータと連関したローカルアドレスをマップ管理部312に提供することができる。
【0113】
ステップS804において、マップ管理部312は、前記属性が変更されたデータがメモリプール150の他のメモリユニットに移して格納されるように、システムアドレスとローカルアドレスとの間のマッピング関係を変更できる。
【0114】
具体的に、マップ管理部312は、データ属性決定部310から受信したローカルアドレス及びマップテーブル302を参照して、前記属性が変更されたデータと連関したシステムアドレスを新しいローカルアドレスにマッピングすることができる。マップ管理部312は、前記システムアドレスと新しいローカルアドレスとのアドレスマッピング情報をマップテーブル302に反映することができる。そして、マップ管理部312は、アクセスカウンタ306が新しいローカルアドレスのアクセス回数値を以前ローカルアドレスのアクセス回数値に各々変更するようにアクセスカウンタ306を制御できる。
【0115】
マップ管理部312は、データ属性決定部310から受信したローカルアドレス、すなわち、以前ローカルアドレスと前記新しいローカルアドレスとをデータ入出力部314に提供することができる。
【0116】
ステップS806において、データ入出力部314は、メモリインターフェース136に前記以前ローカルアドレスを提供できる。メモリインターフェース136は、前記読み出しコマンドに応じて、前記以前ローカルアドレスと連関したメモリユニットの読み出し動作を各々制御し、前記読み出し動作により読み出された読み出しデータをメモリコントロールユニット134内部のバッファ(図示せず)にバッファリングすることができる。
【0117】
ステップS808において、データ入出力部314は、メモリインターフェース136に書き込みコマンド、前記新しいローカルアドレス、及び前記バッファリングされた読み出しデータを提供できる。メモリインターフェース136は、前記書き込みコマンドに応じて、前記新しいローカルアドレスと連関したメモリユニットのそれぞれの書き込み動作を制御できる。
【0118】
図8において説明されたメモリシステム110のデータ属性アップデート動作によれば、ローカルアドレス別アクセスカウント及び動的に変更される閾値に基づいて決定されたメモリプール150内部に格納されたデータの属性によってメモリプール150内部に格納されたデータを区分して格納することができる。特に、メモリコントローラ134は、過去にホットデータに決定されて第1のメモリユニットに格納されており、長い間アクセスされなかったまま、第1のメモリユニットに格納されているデータを第2のメモリユニットに移して格納することができる。
【0119】
図1図8において説明されたメモリシステム110は、メモリボード形態でラック(rack)内に装着されて、データセンタのようなサーバシステムまたはデータ処理システムを構成できる。一実施形態に係るメモリシステム110を含むデータ処理システムが図9図12において説明される。
【0120】
図9は、データ処理システム10を示す図である。
【0121】
図9に示すように、データ処理システム10は、複数のコンピューティングラック(computing racks、20)と管理インターフェース(management interface、30)、そして、これらの間の通信が可能なようにするネットワーク(network、40)を備えることができる。このようなラックスケール構造(rack-scale architecture)を有するデータ処理システム10は、大容量データ処理のためのデータセンタなどに使用されることができる。
【0122】
複数のコンピューティングラック20の各々は、他のコンピューティングラック20との組み合わせで1つのコンピューティングシステムを実現できる。このようなコンピューティングラック20の具体的な構成及び動作についての説明は後述する。
【0123】
管理インターフェース30は、ユーザがデータ処理システム10を調整、運営、または管理できるようにするインタラクティブインターフェース(interactive interface)を提供できる。管理インターフェース30は、コンピュータ、マルチプロセッサシステム、サーバ、ラックマウント(rack-mount)サーバ、ボード(board)サーバ、ラップトップ(lap-top)コンピュータ、ノートブックコンピュータ、タブレットコンピュータ、ウェアラブルコンピューティングシステム、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、プロセッサ基盤システム、及び/又は消費者電子機器を含む、任意類型の演算デバイスとして実現されることができる。
【0124】
一部実施形態において、管理インターフェース30は、コンピューティングラック20により行われることができる演算機能や、管理インターフェース30により行われることができるユーザインターフェース機能を有する分散システムにより実現されることができる。他の一部実施形態において、管理インターフェース30は、ネットワーク40を介して分散された多重コンピューティングシステムにより構成され、クラウド(cloud)として動作する仮想サーバ(virtual server)により実現されることができる。管理インターフェース30は、プロセッサ、入力/出力サブシステム、メモリ、データストレージデバイス、及び通信回路を含むことができる。
【0125】
ネットワーク40は、コンピューティングラックと管理インターフェース30との間及び/又はコンピューティングラック間でのデータを送受信できる。ネットワーク40は、適切な数の様々な有線及び/又は有線ネットワークにより実現されることができる。例えば、ネットワーク40は、有線または無線LAN(local area network)、WAN(wide area network)セルラーネットワーク、及び/又はインターネットのように公開的にアクセス可能なグローバルネットワーク(publicly-accessible、global network)により実現されるか、これを含むことができる。追加的に、ネットワーク40は、補助的なコンピュータ、ルータ(router)、及びスイッチなどのような適切な数の補助的なネットワークデバイスを含むことができる。また、ネットワーク40は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN-Zのようなインターフェース規格によって連結されることができる。
【0126】
図10は、本発明の実施形態に係るコンピューティングラック構造を概略的に示す図である。
【0127】
図10に示すように、コンピューティングラック20は、構成要素等の構造、形態、及び呼称などに制限されるものではないが、様々な形態の構成要素を含むことができる。例えば、コンピューティングラック20は、複数のドロワ(drawer)21~29を備えることができる。複数のドロワ21~29の各々は、複数のボード(board)を含むことができる。
【0128】
様々な実施形態において、コンピューティングラック20は、適切な数の演算ボード(compute board)、メモリボード(memory board)、及び/又は相互接続ボード(interconnect board)の組み合わせにより実現されることができる。ここでは、コンピューティングラック20が複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワ、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。このようなコンピューティングラック20の構成要素等は、実現の都合上、機能別に分類及び区別される構造を有することができる。制限されるものではないが、コンピューティングラック20は、上端から相互接続ボード、演算ボード、メモリボードの順序に分類された構造を有することができる。このようなコンピューティングラック20及びこれにより実現されるコンピューティングシステムは、「ラック-スケールシステム(rack-scale system)」または「分類システム(disaggregated system)」と命名されることができる。
【0129】
様々な実施形態において、コンピューティングシステムは、1つのコンピューティングラック20により実現されることができる。これに代えて、コンピューティングシステムは、2個以上のコンピューティングラックに含まれる全ての構成要素により実現されるか、2個以上のコンピューティングラックに含まれる一部構成要素の組み合わせにより実現されるか、1つのコンピューティングラック20に含まれる一部構成要素により実現されることができる。
【0130】
様々な実施形態において、コンピューティングシステムは、コンピューティングラック20に含まれる適切な数の演算ボード、メモリボード、及び相互接続ボード(interconnect board)の組み合わせにより実現されることができる。例えば、コンピューティングシステム20Aは、2個の演算ボード、3個のメモリボード、及び1個の相互接続ボードにより実現されることができる。他の例に、コンピューティングシステム20Bは、3個の演算ボード、2個のメモリボード、及び1個の相互接続ボードにより実現されることができる。さらに他の例に、コンピューティングシステム20Cは、1個の演算ボード、4個のメモリボード、及び1個の相互接続ボードにより実現されることができる。
【0131】
例えば、図10では、コンピューティングラック20が適切な数の演算ボード、メモリボード、及び/又は相互接続ボードの組み合わせにより実現される場合を図示しているが、コンピューティングラック20は、通常のサーバなどで確認され得るような、パワーシステム、冷却システム、入力/出力デバイス等のような追加的な構成要素を含むことができる。
【0132】
図11は、本発明の実施形態に係るコンピューティングラック20のブロック構成を示す図である。
【0133】
図11に示すように、コンピューティングラック20は、複数の演算ボード(compute boards、200)、複数のメモリボード(memory boards、400)、及び相互接続ボード(interconnect board、300)を備えることができる。複数の演算ボード200は、プールド演算ボード(pooled compute boards)、プールド演算システムなどと呼ばれることができる。同様に、複数のメモリボードは、プールドメモリボード(pooled memory board)、プールドメモリシステムなどと呼ばれることができる。ここでは、コンピューティングシステムが複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワ、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。
【0134】
複数の演算ボード200の各々は、1つまたはそれ以上のプロセッサ、プロセシング/コントロール回路、または、中央処理処置(central processing unit、CPU)のようなプロセシング要素を含むことができる。図1において説明されたホスト102は、演算ボード200に対応することができる。
【0135】
複数のメモリボード400の各々は、複数の揮発性メモリ(volatile memory)及び/又は不揮発性メモリ(nonvolatile memory)などのような様々な形態のメモリを備えることができる。例えば、複数のメモリボード400の各々は、複数のDRAM(Dynamic Random Access Memory)、フラッシュメモリ(flash memory)、メモリカード、ハードディスクドライブ(hard disk drive、HDD)、ソリッドステートドライブ(solid state drive、SSD)、及び/又はこれらの組み合わせを含むことができる。
【0136】
図1図8において説明されたメモリシステム110は、それぞれのメモリボード400に対応することができる。それぞれのメモリボード400は、時間的に可変するローカルアドレス別コマンド受信回数に基づいて閾値を動的に変更し、前記閾値に基づいて決定されたデータの属性によって前記データが区分して格納されるように、システムアドレスとローカルアドレスとの間のマッピング関係を変更するコントローラを備えることができる。
【0137】
複数のメモリボード400の各々は、演算ボード200の各々に含まれる1つ以上のプロセシング要素により分割されるか、割り当てられるか、または指定されて使用されることができる。また、複数のメモリボード400の各々は、演算ボード200により初期化及び/又は実行され得る1つ以上のオペレーティングシステム(operating system、OS)を格納することができる。
【0138】
相互接続ボード300は、演算ボード200の各々に含まれる1つ以上のプロセシング要素により分割、割当、または指定されて使用されることができる、任意の通信回路、デバイス、またはこれらの組み合わせにより実現されることができる。例えば、相互接続ボード300は、任意個数のネットワークインターフェースポート、カード、またはスイッチとして実現されることができる。相互接続ボード300は、通信を実行させるための、1つ以上の有線または有線通信技術等と関連したプロトコルを使用できる。例えば、相互接続ボード300は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet)などのようなプロトコルによって演算ボード200とメモリボード400との間の通信を支援できる。その上、相互接続ボード300は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN-Zのようなインターフェース規格によって演算ボード200と連結されることができる。
【0139】
図12は、本発明の実施形態に係る演算ボード200の構成を示す図である。
【0140】
図12に示すように、演算ボード200は、1つ以上の中央処理処置(central processing unit、CPU、210)、1つ以上のローカルメモリ(local memory、220)、及び入出力(input/output、I/O)インターフェース(interface、230)を備えることができる。
【0141】
CPU(210)は、図10に示された複数のメモリボード400のうち、使用するための少なくとも1つのメモリボードを分割、割当、または指定できる。また、CPU(210)は、分割、割当、または指定された少なくとも1つのメモリボードを初期化し、これらを介してデータの読み出し動作、書き込み(または、プログラム)動作などを行うことができる。
【0142】
ローカルメモリ220は、CPU(210)の動作実行中に必要なデータを格納できる。様々な実施形態において、1つのローカルメモリ220は、1つのCPU(210)に1対1対応する構造を有することができる。
【0143】
I/Oインターフェース230は、図11の相互接続ボード300を介してのCPU(210)とメモリボード400との間でのインターフェーシングを支援できる。I/Oインターフェース230は、1つ以上の有線または有線通信技術等と関連したプロトコルを使用して、CPU(210)から相互接続ボード300への送信データを出力し、相互接続ボード300からCPU(210)への受信データを入力できる。例えば、I/Oインターフェース230は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet)などのようなプロトコルによってCPU(210)と相互接続ボード300との間の通信を支援できる。その上、I/Oインターフェース230は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN-Zのようなインターフェース規格によってCPU(210)と相互接続ボード300との間の通信を支援できる。
【0144】
様々な実施形態によれば、ローカルアドレス別アクセス回数によってデータ属性を決定し、他の属性を有するデータをメモリプールに区分して格納するメモリシステムを提供できる。
【0145】
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。
【符号の説明】
【0146】
110 メモリシステム
130 コントローラ
150 メモリプール
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12