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

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

▶ 三星電子株式会社の特許一覧

特開2024-178098CXLメモリ装置及びこれを利用した方法
<>
  • 特開-CXLメモリ装置及びこれを利用した方法 図1
  • 特開-CXLメモリ装置及びこれを利用した方法 図2
  • 特開-CXLメモリ装置及びこれを利用した方法 図3
  • 特開-CXLメモリ装置及びこれを利用した方法 図4
  • 特開-CXLメモリ装置及びこれを利用した方法 図5A
  • 特開-CXLメモリ装置及びこれを利用した方法 図5B
  • 特開-CXLメモリ装置及びこれを利用した方法 図6A
  • 特開-CXLメモリ装置及びこれを利用した方法 図6B
  • 特開-CXLメモリ装置及びこれを利用した方法 図6C
  • 特開-CXLメモリ装置及びこれを利用した方法 図7A
  • 特開-CXLメモリ装置及びこれを利用した方法 図7B
  • 特開-CXLメモリ装置及びこれを利用した方法 図8
  • 特開-CXLメモリ装置及びこれを利用した方法 図9
  • 特開-CXLメモリ装置及びこれを利用した方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178098
(43)【公開日】2024-12-24
(54)【発明の名称】CXLメモリ装置及びこれを利用した方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20241217BHJP
   G06F 11/30 20060101ALI20241217BHJP
   G06F 13/16 20060101ALI20241217BHJP
   G06F 12/06 20060101ALI20241217BHJP
【FI】
G06F12/00 550Z
G06F11/30 140N
G06F11/30 158
G06F13/16 510C
G06F12/06 515H
【審査請求】未請求
【請求項の数】28
【出願形態】OL
(21)【出願番号】P 2024046606
(22)【出願日】2024-03-22
(31)【優先権主張番号】10-2023-0075088
(32)【優先日】2023-06-12
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】安 將▲ひょく▼
(72)【発明者】
【氏名】李 庸仁
【テーマコード(参考)】
5B042
5B160
【Fターム(参考)】
5B042MA05
5B042MA08
5B160AA14
5B160AB26
5B160MB01
5B160MM03
5B160NA03
(57)【要約】
【課題】CXLメモリ装置及びこれを利用した方法を提供する。
【解決手段】その方法は、CXLメモリ装置のメモリデバイスの劣化因子を収集し、CXLを用いてメモリ装置に接続されたホスト装置からメモリ割り当て要求を受信し、ホスト装置に対するメモリデバイスのメモリ割り当てを行うステップを含み、メモリ割り当て要求及びメモリ割り当ての少なくとも一部は、メモリデバイスの劣化因子によるメモリデバイスの劣化状態に基づいて行われる。
【選択図】図1
【特許請求の範囲】
【請求項1】
CXL(Compute Express Link)メモリデバイスであって、
データを格納するメモリセルグループと、
前記メモリセルグループの劣化因子を測定する1つ以上のセンサと、
CXLを用いて前記メモリデバイスに接続されたホスト装置からメモリ割り当て要求を受信し、前記メモリセルグループの前記劣化因子による前記メモリセルグループの劣化状態に基づいて前記ホスト装置に対する前記メモリセルグループのメモリ割り当てを行う制御要素と、
を含む、CXLメモリデバイス。
【請求項2】
前記制御要素は、前記メモリ割り当てを行うために、前記メモリセルグループの前記劣化因子に基づいて前記メモリセルグループの前記劣化状態を推定し、前記メモリセルグループの前記劣化状態に基づいて、前記メモリセルグループのウェアレベリングのためのメモリ使用スケジュールを決定する、請求項1に記載のCXLメモリデバイス。
【請求項3】
前記制御要素は、前記メモリ使用スケジュールを決定するために、前記メモリセルグループの前記劣化状態を示す劣化パラメータ値の分布が均一になるように前記メモリ使用スケジュールを決定する、請求項2に記載のCXLメモリデバイス。
【請求項4】
前記制御要素は、前記メモリセルグループのBTI(bias temperature instability)、HCI(hot carrier injection)、又はその組み合わせに基づいて前記劣化パラメータ値を決定する、請求項3に記載のCXLメモリデバイス。
【請求項5】
前記メモリセルグループの動作は、飽和状態の静的動作と非飽和状態の変移動作を含み、
前記制御要素は、前記メモリセルグループが飽和状態にあるとき前記BTIを用いて前記劣化パラメータ値を決定し、前記メモリセルグループが非飽和状態にあるとき前記HCIを用いて前記劣化パラメータ値を決定する、請求項4に記載のCXLメモリデバイス。
【請求項6】
前記制御要素は、前記メモリ割り当てを行うために、
前記メモリ使用スケジュールに基づいて前記メモリセルグループのメモリアドレスから物理メモリアドレスを選択し、前記物理メモリアドレスを前記ホスト装置の前記メモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定する、請求項2に記載のCXLメモリデバイス。
【請求項7】
前記制御要素は、前記メモリ使用スケジュールに基づいて前記メモリセルグループの高い劣化状態のメモリ空間に格納されたデータを、前記メモリセルグループの低い劣化状態のメモリ空間にマイグレーションする、請求項2に記載のCXLメモリデバイス。
【請求項8】
前記劣化因子は、前記メモリセルグループの動作電圧、動作温度、動作時間、動作カウント、又はその組み合わせを含む、請求項1に記載のCXLメモリデバイス。
【請求項9】
前記メモリセルグループの第1メモリセルグループは、前記メモリセルグループの第2メモリセルグループとは異なる特性を有し、
前記特性は性能、期待寿命、又はその組み合わせを含む、請求項1に記載のCXLメモリデバイス。
【請求項10】
前記メモリセルグループは、ページ単位、バンク単位、及びランク単位のいずれか1つの劣化管理単位により管理グループに分割され、
前記管理グループの各管理グループごとに前記劣化因子の収集及び前記劣化状態の推定が行われる、請求項1に記載のCXLメモリデバイス。
【請求項11】
請求項1に記載のCXLメモリデバイス及び前記ホスト装置を含む、CXLメモリシステム。
【請求項12】
ホスト装置であって、
CXL(Compute Express Link)を用いて前記ホスト装置に接続されたCXLメモリ装置から前記CXLメモリ装置のメモリ要素の劣化因子を受信し、
前記メモリ要素の前記劣化因子に基づいて前記メモリ要素の劣化状態を推定し、
前記メモリ要素の前記劣化状態に基づいて、前記メモリ要素のウェアレベリングのためのメモリ使用スケジュールを決定し、
前記メモリ使用スケジュールに基づいて前記CXLメモリ装置に対するメモリ割り当て要求を行う、1つ以上のプロセッサ、
を含む、ホスト装置。
【請求項13】
前記1つ以上のプロセッサは、前記メモリ割り当てを行うために、前記メモリ要素の前記劣化状態を示す劣化パラメータ値の分布が均一になるように前記メモリ使用スケジュールを決定する、請求項12に記載のホスト装置。
【請求項14】
前記劣化パラメータ値は、
前記メモリ要素のBTI(bias temperature instability)、HCI(hot carrier injection)、又はその組み合わせに基づいて決定され、
前記メモリ要素の動作は、飽和状態の静的動作と非飽和状態の変移動作を含み、
前記1つ以上のプロセッサは、前記メモリ要素が飽和状態にあるとき前記BTIを用いて前記劣化パラメータ値を決定し、前記メモリ要素が非飽和状態にあるとき前記HCIを用いて前記劣化パラメータ値を決定する、請求項13に記載のホスト装置。
【請求項15】
CXL(Compute Express Link)メモリボックスであって、
データを格納するメモリセルグループ及び前記メモリセルグループを制御するサブ制御要素をそれぞれ含むCXLメモリデバイスと、
前記CXLメモリデバイスの劣化因子を測定する1つ以上のセンサと、
CXLを用いて前記CXLメモリボックスに接続されたホスト装置からメモリ割り当て要求を受信し、前記CXLメモリデバイスの前記劣化因子による前記CXLメモリデバイスの劣化状態に基づいて前記ホスト装置に対する前記CXLメモリデバイスのメモリ割り当てを行う制御要素と、
を含む、CXLメモリボックス。
【請求項16】
前記制御要素は、前記メモリ割り当てを行うために、前記CXLメモリデバイスの前記劣化因子に基づいて前記CXLメモリデバイスの前記劣化状態を推定し、前記CXLメモリデバイスの前記劣化状態に基づいて、前記CXLメモリデバイスのウェアレベリングのためのメモリ使用スケジュールを決定する、請求項15に記載のCXLメモリボックス。
【請求項17】
前記制御要素は、前記メモリ使用スケジュールを決定するために、前記CXLメモリデバイスの前記劣化状態を示す劣化パラメータ値の分布が均一になるように前記メモリ使用スケジュールを決定する、請求項16に記載のCXLメモリボックス。
【請求項18】
前記制御要素は、前記メモリ割り当てを行うために、前記メモリ使用スケジュールに基づいて前記CXLメモリデバイスのメモリアドレスから物理メモリアドレスを選択し、前記物理メモリアドレスを前記ホスト装置の前記メモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定する、請求項16に記載のCXLメモリボックス。
【請求項19】
前記メモリデバイス及び前記ホスト装置を含む、請求項15に記載のCXLメモリボックス。
【請求項20】
CXL(Compute Express Link)メモリシステムであって、
メモリ割り当て要求を発生させるホスト装置と、
データを格納するCXLメモリデバイス及び前記CXLメモリデバイスを制御するサブ制御要素をそれぞれ含むCXLメモリボックスと、
前記CXLメモリボックスの劣化因子による前記CXLメモリボックスの劣化状態に基づいて前記ホスト装置に対する前記CXLメモリボックスのメモリ割り当てを行う制御要素と、
を含む、CXLメモリシステム。
【請求項21】
前記CXLメモリデバイスは、データを格納するメモリセルグループ及び前記メモリセルグループを制御するサブ制御要素をそれぞれ含む、請求項20に記載のCXLメモリシステム。
【請求項22】
前記制御要素は、前記メモリ割り当てを行うために、前記CXLメモリボックスの前記劣化因子に基づいて前記CXLメモリボックスの前記劣化状態を推定し、前記CXLメモリボックスの前記劣化状態に基づいて、前記CXLメモリボックスのウェアレベリングのためのメモリ使用スケジュールを決定する、請求項20に記載のCXLメモリシステム。
【請求項23】
前記制御要素は、前記メモリ使用スケジュールを決定するために、前記CXLメモリボックスの前記劣化状態を示す劣化パラメータ値の分布が均一になるように前記メモリ使用スケジュールを決定する、請求項22に記載のCXLメモリシステム。
【請求項24】
前記制御要素は、前記メモリ割り当てを行うために、前記メモリ使用スケジュールに基づいて前記CXLメモリボックスのメモリアドレスから物理メモリアドレスを選択し、前記物理メモリアドレスを前記ホスト装置の前記メモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定する、請求項22に記載のCXLメモリシステム。
【請求項25】
CXL(Compute Express Link)メモリ装置のメモリ管理方法であって、
前記CXLメモリ装置のメモリ要素の劣化因子を収集するステップと、
CXLを用いて前記メモリ装置に接続されたホスト装置からメモリ割り当て要求を受信するステップと、
前記ホスト装置に対する前記メモリ要素のメモリ割り当てを行うステップと、
を含み、
前記メモリ割り当て要求及び前記メモリ割り当ての少なくとも一部は、前記メモリ要素の前記劣化因子による前記メモリ要素の劣化状態に基づいて行われる、メモリ管理方法。
【請求項26】
前記メモリ割り当てを行うステップは、
前記メモリ要素の前記劣化因子に基づいて前記メモリ要素の前記劣化状態を推定するステップと、
前記メモリ要素の前記劣化状態に基づいて、前記メモリ要素のウェアレベリングのためのメモリ使用スケジュールを決定するステップをさらに含み、
前記メモリ割り当ては前記メモリ使用スケジュールに基づいて行われる、請求項25に記載のメモリ管理方法。
【請求項27】
前記メモリ使用スケジュールを決定するステップは、前記メモリ要素の前記劣化状態を示す劣化パラメータ値の分布が均一になるように前記メモリ使用スケジュールを決定するステップを含む、請求項26に記載のメモリ管理方法。
【請求項28】
前記メモリ割り当てを行うステップは、
前記メモリ使用スケジュールに基づいて前記メモリ要素のメモリアドレスから物理メモリアドレスを選択するステップと、
前記物理メモリアドレスを前記ホスト装置の前記メモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定するステップと、
を含む、請求項26に記載のメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、CXLメモリ装置及びこれを利用した方法に関する。
【背景技術】
【0002】
CXL(Compute Express Link)は高速通信のための開放型標準インターフェースであって、CPU(Central Processing Unit)、メモリ、アクセラレータ(accelerator)、その他の周辺機器のような複数の構成要素を連結する包括的なインターフェース環境を提供することができる。CXLの拡張性を介して様々なシステムの構成要素のプールが構成されることができる。例えば、CXLメモリプーリング(memory pooling)を介していずれかのホストのために様々なシステムを経て形成されたメモリプールが提供されることができる。また、CXLメモリ共有を介して様々なホストがいずれかのシステムの同じメモリアドレスにアクセスしてもよい。このようなCXLを介して人工知能(Artificial Intelligence、AI)のような高いコンピューティング資源を要求する技術に適切なコンピューティング環境が安定的かつ容易に構成されることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
以下の実施形態の目的は、CXLメモリ装置及びこれを利用した方法を提供することにある。
【課題を解決するための手段】
【0004】
一実施形態によれば、CXL(Compute Express Link)メモリデバイスは、データを格納するメモリセルグループと、前記メモリセルグループの劣化因子を測定する1つ以上のセンサと、CXLを用いて前記メモリデバイスに接続されたホスト装置からメモリ割り当て要求を受信し、前記メモリセルグループの前記劣化因子による前記メモリセルグループの劣化状態に基づいて前記ホスト装置に対する前記メモリセルグループのメモリ割り当てを行う制御要素とを含む。
【0005】
一実施形態によると、ホスト装置は、CXL(Compute Express Link)を用いて前記ホスト装置に接続されたCXLメモリ装置から前記CXLメモリ装置のメモリ要素の劣化因子を受信し、前記メモリ要素の前記劣化因子に基づいて前記メモリ要素の劣化状態を推定し、前記メモリ要素の前記劣化状態に基づいて、前記メモリ要素のウェアレベリングのためのメモリ使用スケジュールを決定し、前記メモリ使用スケジュールに基づいて前記CXLメモリ装置に対するメモリ割り当て要求を行う、1つ以上のプロセッサを含む。
【0006】
一実施形態によると、CXL(Compute Express Link)メモリボックスは、データを格納するメモリセルグループ及び前記メモリセルグループを制御するサブ制御要素をそれぞれ含むCXLメモリデバイスと、前記CXLメモリデバイスの劣化因子を測定する1つ以上のセンサと、CXLを用いて前記CXLメモリボックスに接続されたホスト装置からメモリ割り当て要求を受信し、前記CXLメモリデバイスの前記劣化因子による前記CXLメモリデバイスの劣化状態に基づいて前記ホスト装置に対する前記CXLメモリデバイスのメモリ割り当てを行う制御要素とを含む。
【0007】
一実施形態によると、CXL(Compute Express Link)メモリシステムは、メモリ割り当て要求を発生させるホスト装置と、データを格納するCXLメモリデバイス及び前記CXLメモリデバイスを制御するサブ制御要素をそれぞれ含むCXLメモリボックスと、前記CXLメモリボックスの劣化因子による前記CXLメモリボックスの劣化状態に基づいて前記ホスト装置に対する前記CXLメモリボックスのメモリ割り当てを行う制御要素とを含む。
【0008】
一実施形態によると、CXL(Compute Express Link)メモリ装置のメモリ管理方法は、前記CXLメモリ装置のメモリ要素の劣化因子を収集するステップと、CXLを用いて前記メモリ装置に接続されたホスト装置からメモリ割り当て要求を受信するステップと、前記ホスト装置に対する前記メモリ要素のメモリ割り当てを行うステップと、を含み、前記メモリ割り当て要求及び前記メモリ割り当ての少なくとも一部は、前記メモリ要素の前記劣化因子による前記メモリ要素の劣化状態に基づいて行われる。
【発明の効果】
【0009】
下実施形態によれば、3CXLメモリ装置及びこれを利用した方法を提供することができる。
【図面の簡単な説明】
【0010】
図1】一実施形態に係るホスト装置及びCXLメモリ装置の概略的な構成を示す図である。
図2】一実施形態に係る劣化因子を考慮したウェアレベリング過程を例示的に示す図である。
図3】一実施形態に係るアドレス管理動作及び劣化管理動作を例示的に示す図である。
図4】一実施形態に係るメモリ要素の静的区間と変移区間を例示的に示す図である。
図5A】一実施形態に係るCXLメモリデバイスに関する構成の例示図である。
図5B】一実施形態に係るCXLメモリデバイスに関する構成の例示図である。
図6A】一実施形態に係るCXLメモリボックスに関する構成の例示図である。
図6B】一実施形態に係るCXLメモリボックスに関する構成の例示図である。
図6C】一実施形態に係るCXLメモリボックスに関する構成の例示図である。
図7A】一実施形態に係るCXLメモリシステムに関する構成の例示図である。
図7B】一実施形態に係るホスト装置のウェアレベリングに関する構成の例示図である。
図8】一実施形態に係る作業処理及び劣化管理に使用される管理単位の例示図である。
図9】一実施形態に係るCXLメモリ装置による劣化因子基盤のメモリ管理方法を例示的に示すフローチャートである。
図10】一実施形態に係るホスト装置による劣化因子基盤のメモリ管理方法を例示的に示すフローチャートである。
【発明を実施するための形態】
【0011】
実施形態に対する特定な構造的又は機能的な説明は、単なる例示のための目的として開示されたものであって、様々な形態に変更されることができる。したがって、実施形態は特定な開示形態に限定されることなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0012】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素にも命名することができる。
【0013】
いずれかの構成要素が他の構成要素に「連結」されていると言及されたときには、その他の構成要素に直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0014】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0015】
本明細書において、「A又はBのうち少なくとも1つ」、及び「A、B、又はCのうち少なくとも1つ」のような文句は、その文句のうち該当する文句と共に羅列された項目のうちいずれか1つ、又はそのすべての可能な組み合わせを含むことができる。
【0016】
異なるように定義さがれない限り、技術的又は科学的な用語を含み、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0017】
以下、添付する図面を参照しながら実施形態を詳細に説明する。図面を参照して説明する際に、図面符号に拘わらず同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。
【0018】
図1は、一実施形態に係るホスト装置及びCXLメモリ装置の概略的な構成を示す図である。CXL(Compute Express Link)は、プロセッサ、メモリ拡張、及びアクセラレータのためのキャッシュ一貫性を支援するコネクティング技術である。プロセッサと追加構成要素がCXLを用いて接続されれば、CXL技術によってプロセッサのメモリ空間と追加構成要素のメモリ空間との間にメモリ一貫性が保持され、リソース共有を介して性能が高まり、ソフトウェアスタックの複雑性が減少し、全体システムのコストが節減され得る。ユーザは、アクセラレータのメモリ管理の代わりにワークロードのみに集中することができる。人工知能及びマシーンラーニングのような新しいアプリケーションを支援するために、プロセッサを補完するアクセラレータの役割が増大することにより、高速通信のための開放型標準インターフェースとしてCXLが提供され得る。CXLは、CPU(Central Processing Unit)、メモリ、アクセラレータ(accelerator)、その他の周辺機器のような複数の構成要素を接続する包括的なインターフェース環境を提供することができる。例えば、CXLの拡張性に基づいたCXLメモリプーリング(memory pooling)を介して、いずれかのホストのために様々なシステムを経て形成されたメモリプールが提供されてもよい。また、CXLメモリ共有(memory sharing)を介して様々なホストがいずれかのシステムの同じメモリアドレスにアクセスできる。
【0019】
図1を参照すると、ホスト装置110は、CXLインターフェースを用いてCXLメモリ装置120のメモリ要素122にアクセスし、メモリ要素122を用いることができる。CXLメモリ装置120は、制御要素121及びメモリ要素122を含む。制御要素121は、ホスト装置110とCXLメモリ装置120との間の接続性を提供し、メモリ要素122のメモリ使用を管理できる。メモリ要素122は、データを格納してもよい。ホスト装置110とCXLメモリ装置120との間の接続及び/又は制御要素121とメモリ要素122との間の接続にCXL技術が用いられる。
【0020】
メモリ要素122は、様々なレベルのメモリ形態を称する。例えば、メモリ要素122は、メモリセルグループ(memory cell groups)又はメモリデバイスに該当する。メモリセルグループは、複数のメモリセルを含むグループ(例えば、メモリチップ)を意味する。メモリデバイスは、1つ以上のメモリモジュールを含むデバイスを意味する。各メモリモジュールは複数のメモリグループを含んでもよい。メモリデバイスは、メモリセルグループに比べて大きい容量を有する装置である。メモリ要素122がメモリセルグループに該当する場合、CXLメモリ装置120はメモリデバイスに該当する。メモリ要素122がメモリデバイスに該当する場合、CXLメモリ装置120はメモリボックスに該当する。メモリボックスは、メモリデバイスに比べて大きい容量を有する大容量メモリストレージに該当する。但し、メモリセルグループ、メモリモジュール、メモリデバイス、メモリボックスに対する説明は1つの例示に過ぎず、CXLメモリ装置120及びメモリ要素122は、これに例示されていない他のレベルのメモリであってもよい。
【0021】
メモリセルグループ及びメモリデバイスは、DRAM(Dynamic Random Access Memories)、SRAM(Static Random Access Memories)、MRAM(Magnetic Random Access Memories)、PRAM、OTS(Ovonic Threshold Switching)物質を利用した磁気-選択メモリ(self-selecting memory)などで構成されてもよい。但し、メモリセルグループ及びメモリデバイスの構成がこれに限定されることはない。
【0022】
制御要素121は、コントローラ、CXLスイッチ(図示せず)のような様々な制御手段を含む。ここで、CXLスイッチ(図示せず)とCXLスイッチ130は別個の装置を意味する。制御要素121は、メモリ要素122のレベルに適する制御手段を含む。例えば、メモリ要素122がメモリセルグループに該当する場合、制御要素121はメモリコントローラを含む。メモリ要素122がメモリデバイスに該当する場合、制御要素121は、サーバコントローラ(例えば、BMC(Baseboard Management Controller))及びCXLスイッチ(図示せず)のうち少なくとも1つを含む。
【0023】
ホスト装置110とCXLメモリ装置120は、物理的に互いに分離した装置に該当する。CXLメモリ装置120は、ホスト装置110に格納空間を提供するホスト装置110と独立した装置に該当する。例えば、以下で詳細に説明するが、CXLメモリ装置120は、劣化データ管理及び/又は劣化スケジューリングを含む劣化管理機能及びアドレス変換及びアドレス割り当てを含むアドレス管理機能のうち少なくとも一部を行ってもよい。図1には、ホスト装置110とCXLメモリ装置120が一対一に連結されている例示を示すが、複数のホスト装置と複数のCXLメモリ装置が連結されてもよい。複数のホスト装置と複数のCXLメモリ装置が連結されている場合、CXLメモリ装置120は、メモリプーリング及び/又はメモリ共有を介してホスト装置110だけでなく、ホスト装置110以外のホスト装置に格納空間を提供することができる。また、ホスト装置110は、メモリプーリング及び/又はメモリ共有を介してCXLメモリ装置120だけでなく、他のCXLメモリ装置の格納空間を使用することができる。
【0024】
メモリ要素122のいずれかメモリ要素は、他のメモリ要素とは異なる特性を有してもよい。特性は、性能、期待寿命、又はその組み合わせを含む。例えば、メモリ要素122は、第1メモリ要素及び第2メモリ要素を含む。第1メモリ要素と第2メモリ要素は、性能及び/又は期待寿命の側面で互いに異なる特性を有してもよい。このような差は、第1メモリ要素と第2メモリ要素の設計スペックの差により生じるものであるか、第1メモリ要素と第2メモリ要素の運用上の差によって生じるものであってもよい。例えば、第1メモリ要素が第2メモリ要素よりも高い性能を発揮するように設計されたモデルであるため、第1メモリ要素の性能が第2メモリ要素の性能よりも高いか、あるいは第2メモリ要素の使用期間が第1メモリ要素の使用期間よりも長くて第1メモリ要素の期待寿命が第2メモリ要素の期待寿命よりも長くてもよい。
【0025】
メモリ要素122の劣化が互いに異なる態様に進む場合、メモリ要素122の性能及び期待寿命が悪化する。ウェアレベリング(wear-leveling)は、メモリ要素122の劣化レベルを互いに類似するレベルに保持し、メモリ要素122の全般的な性能及び期待寿命を向上させることができる。CXLメモリ装置120は、劣化因子(degradation factors)(劣化因子124)に基づいたメモリ要素122のウェアレベリングを行ってメモリ要素122の性能及び期待寿命を最適化することができる。
【0026】
制御要素121は、メモリ要素122の劣化因子124を収集し、劣化因子124を用いてメモリ要素122のウェアレベリングを行う。劣化因子124の収集にセンサ123を用いてもよい。センサ123は、一定の分布を有するようにメモリ要素122に配置されてもよい。劣化因子124は、メモリ要素122の動作電圧、動作温度、動作時間、動作カウント、又はその組み合わせを含んでもよい。センサ123は、動作電圧、動作温度、動作時間、動作カウント、又はその組み合わせを測定できる検出デバイスを含んでもよい。
【0027】
劣化因子124は、メモリ要素122の性能を低下させて期待寿命を短縮させる原因を提供する。例えば、劣化因子124は、メモリ要素122の動作電圧、動作温度、動作時間、動作カウント、又はその組み合わせを含んでもよい。動作カウントは、動作クロック及び/又は動作回数を意味する。動作電圧及び/又は動作温度が高まり、動作時間が長くなって動作カウントが多くなるほど、メモリ要素122の劣化が加速化し得る。
【0028】
ホスト装置110は、CXLメモリ装置120にメモリ割り当てを要求する。CXLメモリ装置120は、ホスト装置110に対するメモリ割り当てを行ってもよい。一実施形態によれば、制御要素121は、ホスト装置110とCXLメモリ装置120との間のCXL環境(例えば、CXLインターフェース)を提供するCXLスイッチ(図示せず)を含む。必要な場合、ホスト装置110とCXLメモリ装置120にCXLスイッチ130が配置されてもよい。CXLスイッチ130は、制御要素121のCXLスイッチ(図示せず)と区分される。CXLスイッチ130及び/又は制御要素121のCXLスイッチ(図示せず)を介してメモリ割り当て要求及びメモリ割り当てが行われることができる。
【0029】
ホスト装置110のメモリ割り当て要求及びCXLメモリ装置120のメモリ割り当てのうち少なくとも一部は劣化因子124によるメモリ要素122の劣化状態に基づいて行われてもよい。劣化状態は、劣化が進んだ程度を示す。劣化因子124に基づいて劣化パラメータ値が決定され、劣化パラメータ値に基づいて劣化状態が推定され得る。ウェアレベリングの一環として、メモリ要素122の劣化パラメータ値の分布が均一になるよう、メモリ使用スケジュールが決定される。劣化パラメータ値の導き出し過程は、図4などを参照して説明する。
【0030】
一実施形態によれば、CXLメモリ装置120(例えば、制御要素121)は、劣化因子124に基づいてメモリ要素122の劣化状態を推定し、劣化状態に基づいてメモリ要素122のウェアレベリングのためのメモリ使用スケジュールを決定することができる。メモリ使用スケジュールに基づいて、メモリ使用(例えば、メモリ割り当て、データマイグレーション(migration))が行われてもよい。例えば、メモリ使用スケジュールに基づいてホスト装置110のメモリ割り当て要求によるメモリ割り当てが行われる。メモリ使用スケジュールは、ホスト装置110の作業実行のようにメモリ使用が必要な場合、メモリ要素122のどのメモリ空間を優先的に使用するかに関する使用順序を含んでもよい。例えば、メモリ使用スケジュールによりメモリ要素122の第1メモリ空間、第2メモリ空間、及び第3メモリ空間の順のスケジューリングが行われた場合、ホスト装置110の作業により第1メモリ空間、第2メモリ空間、及び第3メモリ空間が順次使用されてもよい。
【0031】
一実施形態によれば、CXLメモリ装置120(例えば、制御要素121)は、ホスト装置110に劣化因子124を提供する。ホスト装置110は、劣化因子124に基づいてメモリ要素122の劣化状態を推定し、劣化状態に基づいてメモリ要素122のウェアレベリングのためのメモリ使用スケジュールを決定してもよい。メモリ使用スケジュールに基づいてメモリ使用(例えば、メモリ割り当て、データマイグレーション)が行われる。例えば、メモリ使用スケジュールに基づいてメモリ要素122に対するメモリ割り当て要求が行われてもよい。
【0032】
メモリ要素122は、ページ(page)単位、バンク(bank)単位、又は、ランク(rank)単位の劣化管理の単位に応じて管理グループに分割されてもよい。制御要素121は、各管理グループごとに劣化因子124を収集する。劣化管理単位は、作業処理単位よりも大きくてもよい。劣化管理単位は、作業処理単位の倍数(例えば、4倍、8倍、16倍など)に該当する。例えば、ホスト装置110のカーネル(kernel)又はオペレーティングシステム(operating system)の作業処理過程(例えば、データロード、データ処理、データ格納など)に64ビットの作業処理の単位を用いてもよく、劣化管理過程(例えば、劣化因子124の収集、劣化因子124の格納、劣化因子124に基づいた劣化状態の推定、劣化状態に基づいたメモリ割り当て、劣化状態に基づいたデータマイグレーションなど)にページ単位(例えば、512Kb(kilobyte)、1Mb(megabyte)、2Mb)を用いてもよい。
【0033】
図2は、一実施形態に係る劣化因子を考慮したウェアレベリング過程を例示的に示す図である。図2を参照すると、ステップ210において、各管理グループの劣化状態がチェックされる。メモリ要素は、劣化管理単位(例えば、ページ単位など)により管理グループに分割されてもよい。例えば、図2には、第1管理グループG1及び第2管理グループG2が図示されている。例えば、図2に示すように、劣化状態チェックにより第1管理グループG1の劣化程度が第2管理グループG2よりも高いことが確認され得る。
【0034】
ステップ220において、劣化状態に基づいてメモリ割り当てが行われる。劣化因子に基づいて劣化パラメータ値が決定され、劣化パラメータ値に基づいて劣化状態が推定される。劣化パラメータ値の分布が均一になるようにメモリ割り当てが行われる。図2には、メモリ割り当て例示について図示されているが、メモリ割り当ての代わりに、データマイグレーションが行われる。ウェアレベリングのために、第1管理グループG1よりも相対的に低い劣化状態の第2管理グループG2に基づいてメモリ割り当てが実行されてもよく、データD1は、メモリ割り当てによる第2管理グループG2のメモリ空間に格納されてもよい。
【0035】
ウェアレベリングにより第1管理グループG1と第2管理グループG2との間の劣化均衡が保持される。図2は、管理グループG1、G2に関する説明は、CXLメモリ装置のメモリ要素の全体管理グループに適用され得る。全体管理グループのウェアレベリングにより全体管理グループの劣化均衡が保持され、メモリ要素の性能及び期待寿命が最適化されることができる。
【0036】
図3は、一実施形態に係るアドレス管理動作及び劣化管理動作を例示的に示す図である。図3を参照すると、アドレス管理(address management)301は、アドレス変換(address translation)302及びアドレス割り当て(address allocation)303を含み、劣化管理(degradation management)305は、劣化データ管理306及び劣化スケジューリング307を含む。
【0037】
劣化データ管理306は劣化因子に関するデータを収集し、劣化因子から劣化状態を推定し、劣化因子及び/又は劣化状態に関するデータを格納/管理する動作を含む。劣化スケジューリング307は、ウェアレベリングを可能にするメモリ使用スケジュールを決定する動作を含む。例えば、劣化スケジューリング307は、劣化因子に基づいて劣化パラメータ値を決定し、劣化パラメータ値の分布が均一になるようにメモリ使用スケジュールを決定する動作を含む。
【0038】
アドレス変換302は、ホスト装置によって用いられる仮想メモリアドレスとメモリ要素の物理メモリアドレスとの間の変換動作を含む。アドレス変換302により仮想メモリアドレスが物理メモリアドレスに変換されたり、仮想メモリアドレスが物理メモリアドレスに変換されてもよい。アドレス割り当て303は、ホスト装置のメモリ割り当て要求に応じて、メモリ空間のアドレスを割り当てる動作を含む。ウェアレベリングのためのメモリ使用スケジュールに基づいてアドレス割り当て303が行われる。
【0039】
図1を参照して説明されたように、CXLメモリ装置120は、制御要素121及びメモリ要素122を含み、制御要素121は、コントローラ(例えば、メモリコントローラ、サーバコントローラ)、CXLスイッチ(図示せず)のような様々な制御手段を含む。また、ホスト装置110とCXLメモリ装置120との間にCXLスイッチ130が配置されてもよい。図3に示すアドレス管理301及び劣化管理305は、制御要素121及び/又はCXLスイッチ130によって実行され得る。
【0040】
例えば、制御要素121及びCXLスイッチ130のいずれか1つによってアドレス管理301及び劣化管理305の両者が行われる。これとは異なり、制御要素121によってアドレス管理301及び劣化管理305のいずれかの一部分が行われ、CXLスイッチ130によって残りの一部分が行われる。制御要素121がマルチ制御要素(例えば、第1制御要素及び第2制御要素)を含み、制御要素121によってアドレス管理301及び劣化管理305の少なくとも一部分が行われる場合、マルチ制御要素のうち一部(例えば、第1制御要素)により該当少なくとも一部分の一部が行われ、残りの一部(例えば、第2制御要素)によって該当少なくとも一部分の残りの一部が行われる。
【0041】
図4は、一実施形態に係るメモリ要素の静的区間と変移区間を例示的に示す図である。先に言及したように、メモリ要素(例えば、メモリ要素の管理グループ)の劣化因子に基づいて劣化パラメータ値が決定され、劣化パラメータ値に基づいてメモリ要素(例えば、メモリ要素の管理グループ)の劣化状態が推定される。ウェアレベリングの一環として、メモリ要素(例えば、メモリ要素の管理グループ)の劣化パラメータ値の分布が均一になるようにメモリ使用スケジュールが決定されることができる。
【0042】
一実施形態によれば、劣化パラメータ値は、メモリ要素(例えば、管理グループのメモリ素子)のBTI(Bias Temperature Instability)、HCI(Hot Carrier Injection)、又はその組み合わせに基づいて決定されてもよい。BTI及びHCIは、半導体素子のストレスを示す。
【0043】
BTIは、電気的なストレス及び高温環境による半導体素子の劣化現像を示す。電気的なストレス及び高温環境は、半導体素子内部の電荷移動経路に変化を起こし、半導体素子の電気的特性を変化させ得る。BTIは、NBTI(Negative Bias Temperature Instability)及びPBTI(Positive Bias Temperature Instability)を含む。NBTIは、半導体素子のゲートに負バイアス(negative bias)を印加したとき、半導体素子がオン状態になるpMOSFET(positive Metal-Oxide-Semiconductor Field-Effect Transistor)の劣化現像を示し、PBTIは、ゲートに正バイアス(positive bias)を印加したとき、半導体素子がオン状態になるnMOSFET(negative MOSFET)の劣化現像を示す。NBTIの場合、PMOSチャネルに形成された正孔(hole)がゲート酸化膜にトラップ(trap)され、閾値電圧の増加を起こし、PBTIの場合、NMOSチャネルに形成された電子がゲート酸化膜にトラップされながら閾値電圧の増加を引き起こす。BTIは、半導体素子の寿命を短縮させることで、その性能に影響を及ぼし得る。
【0044】
HCIは、電気的なストレス及び高温環境によってキャリアが高エネルギー状態に移動して発生する現像を示す。HCIは半導体素子の寸法(dimension)が小さくなるにつれ、強くなった電界により加速化したキャリアにより示される。HCIは、電荷移動経路で高エネルギー状態のキャリアが衝突して半導体素子内の欠陥が生じ、半導体素子の電気的特性を変化させ得る。半導体素子のドレインとソースとの間に強い電界によって加速されたホットキャリア(hot carrier)が衝突して生成されたEHP(electron-hole pair)がゲート酸化膜にトラップされたり、ホットキャリアが直接ゲート酸化膜にトラップされて閾値電圧を増加させることができる。HCIは、半導体素子の寿命を短縮させ、性能に影響を及ぼし得る。
【0045】
メモリ要素(例えば、メモリ要素のメモリ素子)の動作は、飽和状態の静的動作(static operation)と非飽和状態(unsaturation status)の変移動作(transition operation)を含む。図4に示すグラフは、メモリ要素の入力電圧Vin及び出力電圧Voutを示す。図4において、静的区間401は、メモリ要素の静的動作に対応し、変移区間402はメモリ要素の変移動作に対応する。
【0046】
一実施形態によれば、メモリ要素が飽和状態にある静的区間401でBTIを用いて劣化パラメータ値が決定され、メモリ要素が非飽和状態にある変移区間402でHCIを用いて前記劣化パラメータ値が決定される。下記の数式(1)は、BTIを利用した劣化パラメータを示し、下記の数式(2)は、HCIを利用した劣化パラメータを示す。
【0047】
【数1】
【0048】
数式(1)において、~ΔVthはBTIによるメモリ要素の閾値電圧の変化、Vはメモリ要素の動作電圧、Tはメモリ要素の動作温度、tはメモリ要素の動作時間及び/又は動作カウントを示す。V、T、tは劣化因子に該当する。劣化因子に基づいてBTIによる閾値電圧の変化が推定され、閾値電圧の変化が劣化パラメータ値として用いられてもよい。例えば、静的区間401において、メモリ要素の閾値電圧値の変化に対応する劣化パラメータ値が均一になるようにメモリ使用スケジュールが決定されてもよい。例えば、閾値電圧の変化が大きく示されるメモリ空間のメモリ使用は減少し、閾値電圧の変化が小さく示されるメモリ空間のメモリ使用は増加するように、メモリ使用スケジュールが決定されることができる。
【数2】
【0049】
数式(2)において、~ΔIonは、HCIによるメモリ要素のターンオン状態の電流変化、Vはメモリ要素の動作電圧、Tはメモリ要素の動作温度、tはメモリ要素の動作時間及び/又は動作カウントを示す。V、T、tは劣化因子に該当する。劣化因子に基づいてHCIによるターンオン状態の電流の変化が推定され、電流の変化が劣化パラメータ値として用いられてもよい。例えば、変移区間402において、メモリ要素の電流変化値の変化に対応する劣化パラメータ値が均一になるようにメモリ使用スケジュールが決定される。例えば、電流の変化が大きく示されるメモリ空間のメモリ使用は減少し、電流の変化が小さく示されるメモリ空間のメモリ使用は増加するように、メモリ使用スケジュールが決定されることができる。
【0050】
図5A及び図5Bは、一実施形態に係るCXLメモリデバイスに関する構成の例示図である。図5Aを参照すると、CXLメモリデバイス520は、データを格納するメモリセルグループ522、メモリセルグループの劣化因子を測定するセンサ523、及びCXLを用いてメモリデバイスに接続されたホスト装置からメモリ割り当て要求を受信し、メモリセルグループの劣化因子によるメモリセルグループの劣化状態に基づいて、ホスト装置に対するメモリセルグループのメモリ割り当てを行う制御要素521を含む。一実施形態によれば、制御要素521はメモリコントローラに該当する。
【0051】
制御要素521はアドレス管理及び劣化管理を行う。アドレス管理及び劣化管理によりメモリセルグループ522のウェアレベリングを達成することができる。ホスト装置510とCXLメモリデバイス520との間の接続、及び制御要素521とメモリセルグループ522との間の接続にCXLを用いてもよい。
【0052】
制御要素521は、劣化管理のために劣化データ管理及び劣化スケジューリングを行う。制御要素521は、メモリセルグループ522の劣化因子を収集する。一実施形態によれば、制御要素521は、ファブリックマネジャ(fabric manager)を用いて劣化管理を行ってもよい。ファブリックマネジャは、システム構成とリソース割り当てを担当するアプリケーションロジックである。ファブリックマネジャは、CXLを用いて接続された構成要素のトポロジーを理解し、管理する役割を行うことができる。制御要素521は、センサ523を用いて劣化因子を収集する。センサ523は、メモリセルグループ522に関するセンサデータを生成する。センサデータに基づいて劣化因子が決定される。図5Aは、センサ523がメモリセルグループ522に一対一に配置された例示を示すが、メモリセルグループ522とセンサ523の個数はそれぞれ異なってもよい。例えば、複数のメモリセルグループのために1つのセンサが配置されたり、1つのメモリセルグループのために複数のセンサが配置されてもよい。メモリセルグループ522の劣化状態に対する劣化因子の推定の正確度を高めるために、センサデータの加工が行われることができる。
【0053】
CXLメモリデバイス520は、劣化因子を格納する管理メモリ(図示せず)をさらに含んでもよい。制御要素521は、管理メモリ(図示せず)を用いて劣化因子の履歴を管理する。管理メモリ(図示せず)は、不揮発性メモリ(non-volatile memory)に該当する。この場合、CXLメモリデバイス520の電源保持に関係なく、劣化因子の履歴が安定的に管理される。但し、管理メモリ(図示せず)のメモリタイプがこれに限定されることはない。劣化因子の履歴は、劣化状態の推定正確度を高めることに寄与する。長い期間の間に蓄積された劣化因子の履歴を用いて推定された劣化状態は、1つの時点(time point)の劣化因子を用いて推定された劣化状態に比べて、メモリセルグループ522の実際の劣化状態をさらに正確に反映することができる。劣化状態に対する推定正確度が高まるほど、ウェアレベリングの効果が向上する。
【0054】
制御要素521は劣化因子に基づいて劣化状態を推定し、劣化状態に基づいてメモリ使用スケジュールを決定することができる。メモリ使用スケジュールは割り当てスケジュール及びマイグレーションスケジュールを含む。制御要素521は、メモリセルグループ522(例えば、メモリセルグループ522の管理グループ)の劣化状態が均等になるようにメモリ使用スケジュールを決定することができる。
【0055】
制御要素521は、ホスト装置510からメモリ割り当て要求を受信し、ホスト装置510に対するメモリデバイス513のメモリ割り当てを行う。制御要素521は、アドレス管理のためにアドレス変換及びアドレス割り当てを行ってもよい。
【0056】
CXLメモリデバイス520とホスト装置510は、他のアドレス体系を用いてもよい。メモリセルグループ522のメモリ空間には物理メモリアドレスが付与されてもよい。物理メモリアドレスは実際のアドレスに該当する。CXLメモリデバイス520は、物理メモリアドレスを用いてもよい。ホスト装置510は仮想メモリアドレスを用いてもよい。ホスト装置510のメモリ割り当て要求は、仮想メモリアドレスを含む。ホスト装置510のメモリ割り当て要求があるとき、アドレスコンバータ5111は、メモリ割り当て要求の仮想メモリアドレスに適した物理メモリアドレスをマッピングすることができる。
【0057】
制御要素521は、ウェアレベリングのためのメモリ使用スケジュールに基づいて仮想メモリアドレスに物理メモリアドレスをマッピングする。アドレスコンバータ5111は、ホスト装置510のメモリ割り当て要求に対してメモリ使用スケジュールによる物理メモリアドレスを順にマッピングしてもよい。アドレスコンバータ5111は、メモリ使用スケジュールに基づいてメモリセルグループ522のメモリアドレスから物理メモリアドレスを選択し、選択された物理メモリアドレスをホスト装置510のメモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定することができる。仮想メモリアドレスと物理メモリアドレスのとの間のアドレス変換情報は、アドレス変換テーブルで管理されてもよい。
【0058】
制御要素521は、アドレス変換情報を参照してメモリ割り当て(memory allocation)を行い、割り当てられた物理メモリアドレスに対する割り当て解除(deallocation)を行うことができる。制御要素521は、メモリ使用スケジュールを参照して仮想メモリアドレスに物理メモリアドレスをマッピングし、該当物理メモリアドレスによるメモリ割り当てを行ってもよい。同じデータが同じメモリ空間に留まって該当メモリ空間の劣化を誘発する場合、メモリセルグループ522の高い劣化状態のメモリ空間に格納された該当データは、メモリ使用スケジュールに基づいてメモリセルグループ522の低い劣化状態のメモリ空間にマイグレーションされてもよい。データマイグレーションの実行有無は、制御要素521によって決定されてもよい。データマイグレーションが必要なメモリ空間の物理メモリアドレスが特定されれば、メモリ使用スケジュールを参照して該当物理メモリアドレスのデータのための新しい物理メモリアドレスが選択される。以前の物理メモリアドレスのデータは、新しい物理メモリアドレスのメモリ空間にマイグレーションされうる。
【0059】
図5Bを参照すると、CXLメモリデバイス540は、制御要素541、メモリセルグループ542、及びセンサ543を含む。図5Bには、図5Aとは異なりホスト装置510とCXLメモリデバイス540との間にCXLスイッチ530が配置されてもよい。この場合、制御要素541及びCXLスイッチ530のいずれか1つによってアドレス管理及び劣化管理の両者が行われる。これとは異なり、制御要素541によってアドレス管理及び劣化管理のいずれか一部が行われ、CXLスイッチ530によって残りの一部分が行われる。例えば、制御要素541により劣化管理が行われ、CXLスイッチ530によりアドレス管理が行われる。異なる例として、制御要素541によって劣化管理のうちの一部である劣化データ管理が行われ、CXLスイッチ530によりアドレス管理と共に劣化管理のうちの残りの一部である劣化スケジューリングが行われる。その他に、CXLメモリデバイス520に対する説明がCXLメモリデバイス540に適用されてもよい。
【0060】
図6A図6B、及び図6Cは、一実施形態に係るCXLメモリボックスに関する構成の例示図である。図6Aを参照すると、CXLメモリボックス630は、データを格納するメモリセルグループ及びメモリセルグループを制御するサブ制御要素(例えば、図5Aの制御要素521、図5Bの制御要素541)をそれぞれ含むCXLメモリデバイス632、CXLメモリデバイス632の劣化因子を測定するセンサ633、及びCXLを用いてCXLメモリボックス630に接続されたホスト装置610からメモリ割り当て要求を受信し、CXLメモリデバイス632の劣化因子によるCXLメモリデバイス632の劣化状態に基づいてホスト装置610に対するCXLメモリデバイス632のメモリ割り当てを行う制御要素631を含む。一実施形態によれば、制御要素631は、サーバコントローラ(例えば、BMC)又はCXLスイッチに該当する。CXLメモリデバイス632の各CXLメモリデバイスは、図5AのCXLメモリデバイス520及び図5BのCXLメモリデバイス540に対応する。
【0061】
制御要素631は、アドレス管理及び劣化管理を行う。アドレス管理及び劣化管理によりCXLメモリデバイス632のウェアレベリングが達成される。ホスト装置610とCXLメモリボックス630との間の接続、及び制御要素631とCXLメモリデバイス632との間の接続にCXLが用いられる。
【0062】
制御要素631は、CXLメモリデバイス632の劣化因子を収集する。一実施形態によれば、制御要素631は、ファブリックマネジャを用いて劣化管理を行ってもよい。制御要素631は、センサ633を用いて劣化因子を収集してもよい。CXLメモリボックス630は、劣化因子を格納する管理メモリ(図示せず)をさらに含んでもよい。制御要素631は、管理メモリ(図示せず)を用いて劣化因子の履歴を管理してもよい。管理メモリ(図示せず)は、不揮発性メモリに該当する。
【0063】
制御要素631は、CXLメモリデバイス632の劣化因子に基づいてCXLメモリデバイス632の劣化状態を推定し、CXLメモリデバイス632の劣化状態に基づいて、CXLメモリデバイス632のウェアレベリングのためのメモリ使用スケジュールを決定する。制御要素631は、CXLメモリデバイス632の劣化状態を示す劣化パラメータ値の分布が均一になるようにメモリ使用スケジュールを決定することができる。制御要素631は、メモリ使用スケジュールに基づいてCXLメモリデバイス632のメモリアドレスから物理メモリアドレスを選択し、物理メモリアドレスをホスト装置610のメモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定することができる。
【0064】
図6Bを参照すると、CXLメモリボックス640は、第1制御要素641、第2制御要素642、CXLメモリデバイス643、及びセンサ644を含む。図6BのCXLメモリボックス640は、図6AのCXLメモリボックス630とは異なり、第1制御要素641及び第2制御要素642のマルチ制御要素を含む。一実施形態によれば、第1制御要素641はCXLスイッチに該当し、第2制御要素642はサーバコントローラ(例えば、BMC)に該当する。
【0065】
第1制御要素641及び第2制御要素642のいずれか1つによってアドレス管理及び劣化管理の両者が行われる。これとは異なり、第1制御要素641によってアドレス管理及び劣化管理のいずれか一部が行われ、第2制御要素642によって残りの一部分が行われる。例えば、第2制御要素642によって劣化管理が行われ、第1制御要素641によってアドレス管理が行われる。異なる例として、第2制御要素642によって劣化管理中の一部である劣化データ管理が行われ、第1制御要素641によってアドレス管理と共に劣化管理中の残りの一部である劣化スケジューリングが行われる。その他に、図6Aに示すCXLメモリボックス630に対する説明がCXLメモリボックス640に適用され得る。
【0066】
図6Cを参照すると、CXLメモリボックス650は、第1制御要素651、CXLメモリデバイス652、及びセンサ653を含む。図6Cには、図6A及び図6Bとは異なり、ホスト装置610とCXLメモリボックス650との間にCXLスイッチ660が配置されてもよい。この場合、制御要素651及びCXLスイッチ660のいずれか1つによってアドレス管理及び劣化管理の両者が行われる。これとは異なり、制御要素651によってアドレス管理及び劣化管理のある一部分が行われ、CXLスイッチ660によって残りの一部分が行われる。例えば、制御要素651によって劣化管理が行われ、CXLスイッチ660によってアドレス管理が行われる。異なる例として、制御要素651によって劣化管理中の一部である劣化データ管理が行われ、CXLスイッチ660によってアドレス管理と共に劣化管理中の残りの一部である劣化スケジューリングが行われる。その他に、CXLメモリボックス630に対する説明がCXLメモリボックス650に適用され得る。
【0067】
図7Aを参照すると、CXLメモリシステム700は、メモリ割り当て要求を発生させるホスト装置710、データを格納するCXLメモリデバイス、及びCXLメモリデバイスを制御するサブ制御要素(例えば、図6Aの制御要素631、図6Bの第1制御要素641、第2制御要素642、図6Cの制御要素651)をそれぞれ含むCXLメモリボックス730、及びCXLメモリボックス730の劣化因子によるCXLメモリボックス730の劣化状態に基づいてホスト装置710に対するCXLメモリボックス730のメモリ割り当てを行う制御要素720を含む。CXLメモリデバイスは、データを格納するメモリセルグループ及びメモリセルグループを制御するサブ制御要素(例えば、図5Aの制御要素521、図5Bの制御要素541)をそれぞれ含む。一実施形態によれば、制御要素720は、サーバコントローラ(例えば、BMC)又はCXLスイッチに該当する。CXLメモリボックス730の各メモリボックスは、図6AのCXLメモリボックス630、図6BのCXLメモリボックス640、及び図6CのCXLメモリボックス650に対応する。
【0068】
制御要素720は、アドレス管理及び劣化管理を行う。アドレス管理及び劣化管理によりCXLメモリボックス730のウェアレベリングが達成される。ホスト装置710と制御要素720と間の接続、及び制御要素720とCXLメモリボックス730との間の接続にCXLを用いてもよい。制御要素720は、CXLメモリボックス730の劣化因子を収集する。一実施形態によれば、制御要素720は、ファブリックマネジャを用いて劣化管理を行ってもよい。制御要素720は、CXLメモリボックス730のセンサを用いて劣化因子を収集することができる。制御要素720は、劣化因子を格納する管理メモリ(図示せず)を含んでもよい。制御要素720は、管理メモリ(図示せず)を用いて劣化因子の履歴を管理する。管理メモリ(図示せず)は不揮発性メモリに該当する。
【0069】
制御要素720は、CXLメモリボックス730の劣化因子に基づいてCXLメモリボックス730の劣化状態を推定し、CXLメモリボックス730の劣化状態に基づいて、CXLメモリボックス730のウェアレベリングのためのメモリ使用スケジュールを決定する。制御要素720は、CXLメモリボックス730の劣化状態を示す劣化パラメータ値の分布が均一になるようにメモリ使用スケジュールを決定してもよい。制御要素720は、メモリ使用スケジュールに基づいてCXLメモリボックス730のメモリアドレスから物理メモリアドレスを選択し、物理メモリアドレスをホスト装置のメモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定することができる。
【0070】
図7Bを参照すると、ホスト装置750は、CXLインターフェースを用いてCXLメモリ装置770のメモリ要素772にアクセスし、メモリ要素772を使用できる。CXLメモリ装置770は、制御要素771及びメモリ要素772を含む。制御要素771は、ホスト装置750とCXLメモリ装置770と間の接続性を提供し、メモリ要素772のメモリ使用を管理することができる。メモリ要素772はデータを格納する。ホスト装置750とCXLメモリ装置770との間の接続及び/又は制御要素771とメモリ要素772との間の接続にCXL技術が用いられてもよい。
【0071】
ホスト装置750は、1つ以上のプロセッサ751を含む。ホスト装置750は、1つ以上のプロセッサ751を用いてカーネル又はオペレーティングシステムを実行できる。1つ以上のプロセッサ751は、カーネル又はオペレーティングシステムの実行に伴うメモリ使用のために、アドレス管理及び劣化管理の少なくとも一部を行ってもよい。1つ以上のプロセッサ751は、CXLを用いてホスト装置750に接続されているCXLメモリ装置770からCXLメモリ装置770のメモリ要素772の劣化因子を受信し、メモリ要素772の劣化因子に基づいてメモリ要素772の劣化状態を推定し、メモリ要素772の劣化状態に基づいてメモリ要素772のウェアレベリングのためのメモリ使用スケジュールを決定し、メモリ使用スケジュールに基づいてCXLメモリ装置770に対するメモリ割り当て要求を行うことができる。
【0072】
制御要素771は、ホスト装置750(例えば、1つ以上のプロセッサ751、カーネル、オペレーティングシステム)に劣化因子を提供する。ホスト装置750は、劣化因子に基づいてメモリ要素772の劣化状態を推定し、劣化状態に基づいてメモリ要素772のウェアレベリングのためのメモリ使用スケジュールを決定してもよい。メモリ使用スケジュールに基づいて、メモリ使用(例えば、メモリ割り当て、データマイグレーション)が行われる。
【0073】
必要に応じて、ホスト装置750とCXLメモリ装置770との間にCXLスイッチ760が配置されてもよい。1つ以上のプロセッサ751、CXLスイッチ760、及び制御要素771によってアドレス管理及び劣化管理が行われる。アドレス管理及び劣化管理によりメモリ要素772のウェアレベリングを達成することができる。
【0074】
一実施形態によれば、制御要素771は、劣化管理のうち劣化データ管理を行うことができる。制御要素771は、メモリ要素772の劣化因子を収集してもよい。制御要素771は、センサ773を用いて劣化因子を収集してもよい。劣化因子は、センサ773のセンサデータに基づいて決定されてもよい。CXLメモリ装置770は、管理メモリ(図示せず)をさらに含んでもよく、制御要素771は、管理メモリ(図示せず)を用いて劣化因子のデータを管理してもよい。制御要素771は、ホスト装置750に劣化情報に該当する劣化因子を提供することができる。
【0075】
1つ以上のプロセッサ751は、劣化因子に基づいて劣化スケジューリングを行うことができる。1つ以上のプロセッサ751は、劣化因子に基づいてメモリ要素772の劣化状態を推定し、劣化状態に基づいてメモリ要素772のウェアレベリングのためのメモリ使用スケジュールを決定する。メモリ使用スケジュールは、割り当てスケジュール及びマイグレーションスケジュールを含む。1つ以上のプロセッサ751は、メモリ要素772(例えば、メモリ要素772の管理グループ)の劣化状態が均等になるようにメモリ使用スケジュールを決定することができる。1つ以上のプロセッサ751は、メモリ使用スケジュールに基づいてメモリ割り当て要求及び/又はデータマイグレーション要求を生成し、スイッチ760又は制御要素771を介してメモリ割り当て及び/又はデータマイグレーションが行われる。
【0076】
一実施形態によれば、ホスト装置750に劣化クエリAPI(degradation query Application Program Interface)が提供されることができる。1つ以上のプロセッサ751は、劣化クエリAPIを用いて制御要素771に劣化情報を要求してもよい。制御要素771は、劣化クエリAPIを用いてホスト装置750に劣化情報を提供することができる。
【0077】
図8は、一実施形態に係る作業処理及び劣化管理に使用される管理単位の例示図である。先に説明されたように、メモリデバイスは、ページ単位、バンク単位、及びランク単位のいずれか1つのような劣化管理単位に応じて管理グループに分割され、各管理グループごとに劣化因子に基づいたメモリ管理が行われることができる。図8を参照すれば、管理グループ811は、様々なメモリ領域(例えば、メモリセルグループ)にかけて分布している。例えば、各メモリ領域は、K1-ビットの帯域幅を利用することができ、各メモリモジュール810は、K2-ビットの帯域幅を使用することができる。図8の例示において、K2=K1×8が成立する。例えば、K1=8、K2=64であってもよい。64-ビットは、作業処理単位に該当する。例えば、管理グループ811が512Kbのページ単位の劣化管理単位が使用される場合、8個のメモリモジュールにかけて管理グループ811が形成される。但し、ここで言及された数値は1つの例示に該当し、異なる様々な数値を用いてもよい。
【0078】
このように複数のメモリモジュールにかけて形成された管理グループに基づいて劣化管理及びウェアレベリングが行われる。図8を参照すると、CXLメモリ装置の制御要素820は、複数の管理グループそれぞれの劣化因子を収集することができる。CXLメモリ装置の制御要素820又はホスト装置830は、劣化因子に基づいて複数の管理グループそれぞれの劣化状態を推定する。制御要素820又はホスト装置830は、複数の管理グループそれぞれの劣化状態に基づいてウェアレベリングのためのメモリ使用スケジュールを生成し得る。
【0079】
図9は、一実施形態に係るCXLメモリ装置による劣化因子基盤のメモリ管理方法を例示的に示すフローチャートである。図9を参照すれば、CXLメモリ装置は、ステップ910において、CXLメモリ装置のメモリデバイスの劣化因子を収集し、ステップ920において、CXLを用いてメモリ装置に接続されたホスト装置からメモリ割り当て要求を受信し、ステップ930において、ホスト装置に対するメモリデバイスのメモリ割り当てを行う。メモリ割り当て要求及びメモリ割り当ての少なくとも一部は、メモリデバイスの劣化因子によるメモリデバイスの劣化状態に基づいて行われる。
【0080】
CXLメモリ装置は、メモリデバイスの劣化因子に基づいてメモリデバイスの劣化状態を推定し、メモリデバイスの劣化状態に基づいて、メモリデバイスのウェアレベリングのためのメモリ使用スケジュールを決定する。メモリ割り当ては、メモリ使用スケジュールに基づいて行われる。
【0081】
CXLメモリ装置は、メモリ使用スケジュールを決定するとき、メモリデバイスの劣化状態を示す劣化パラメータ値の分布が均一になるように、メモリ使用スケジュールを決定することができる。劣化パラメータ値は、メモリデバイスのBTI、HCI、又はその組み合わせに基づいて決定されてもよい。メモリデバイスの動作は、飽和状態の静的動作と非飽和状態の変移動作を含む。メモリデバイスが飽和状態にあるときBTIを用いて劣化パラメータ値が決定され、メモリデバイスが非飽和状態にあるときHCIを用いて劣化パラメータ値が決定される。
【0082】
CXLメモリ装置は、ステップ930においてメモリ割り当てを行うとき、メモリ使用スケジュールに基づいてメモリデバイスのメモリアドレスからデバイスメモリアドレスを選択し、デバイスメモリアドレスをホスト装置のメモリ割り当て要求による仮想メモリアドレスにマッピングしてアドレス変換情報を決定することができる。
【0083】
CXLメモリ装置は、メモリ使用スケジュールに基づいてメモリデバイスの高い劣化状態のメモリ空間に格納されているデータをメモリデバイスの低い劣化状態のメモリ空間にマイグレーションする。
【0084】
CXLメモリ装置は、ホスト装置にメモリデバイスの劣化因子を提供してもよい。メモリ割り当て要求は、メモリデバイスの劣化因子によりホスト装置によって推定されたメモリデバイスの劣化状態に基づいて行われることができる。
【0085】
劣化因子は、メモリデバイスの動作電圧、動作温度、動作時間、動作カウント、又はその組み合わせを含む。
【0086】
メモリデバイスの第1メモリデバイスは、メモリデバイスの第2メモリデバイスとは異なる特性を有してもよい。特性は、性能、期待寿命、又はその組み合わせを含んでもよい。
【0087】
メモリデバイスは、ページ単位、バンク単位、及びランク単位のいずれか1つの劣化管理単位により管理グループに分割されてもよい。管理グループの各管理グループごとに劣化因子の収集及び劣化状態の推定が行われることができる。
【0088】
その他に、図9のメモリ管理方法には、図1図8、及び図10の説明が適用されてもよい。
【0089】
図10は、一実施形態に係るホスト装置による劣化因子基盤のメモリ管理方法を例示的に示すフローチャートである。図10を参照すれば、ホスト装置はステップ1010において、CXLを介してホスト装置に接続されたCXLメモリ装置からCXLメモリ装置のメモリデバイスの劣化因子を受信し、ステップ1020において、メモリデバイスの劣化因子に基づいてメモリデバイスの劣化状態を推定し、メモリデバイスの劣化状態に基づいて、ステップ1030において、メモリデバイスのウェア-レベリングのためのメモリ使用スケジュールを決定し、ステップ1040において、メモリ使用スケジュールに基づいてCXLメモリ装置に対するメモリ割り当て要求を行う。
【0090】
ホスト装置は、ステップ1030において、メモリ使用スケジュールを決定するとき、メモリデバイスの劣化状態を示す劣化パラメータ値の分布が均一になるようにメモリ使用スケジュールを決定する。
【0091】
劣化パラメータ値は、メモリデバイスのBTI、HCI、又はその組み合わせに基づいて決定されてもよい。メモリデバイスの動作は、飽和状態の静的動作と非飽和状態の変移動作を含む。メモリデバイスが飽和状態にあるときBTIを用いて劣化パラメータ値が決定され、メモリデバイスが非飽和状態にあるときHCIを用いて劣化パラメータ値が決定されてもよい。
【0092】
その他に、図10のメモリ管理方法には、図1図9の説明が適用されてもよい。
【0093】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0094】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0095】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含むことができ、記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0096】
上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0097】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順に実行され、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法とは異なる形態に結合又は組み合わせられてもよく、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0098】
したがって、他の具現、他の実施形態及び特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。

図1
図2
図3
図4
図5A
図5B
図6A
図6B
図6C
図7A
図7B
図8
図9
図10