特許第6231194号(P6231194)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル・コーポレーションの特許一覧

特許6231194電子デバイス、メモリコントローラ、装置
<>
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000002
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000003
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000004
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000005
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000006
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000007
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000008
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000009
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000010
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000011
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000012
  • 特許6231194-電子デバイス、メモリコントローラ、装置 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6231194
(24)【登録日】2017年10月27日
(45)【発行日】2017年11月15日
(54)【発明の名称】電子デバイス、メモリコントローラ、装置
(51)【国際特許分類】
   G06F 11/10 20060101AFI20171106BHJP
【FI】
   G06F11/10 648
   G06F11/10 664
【請求項の数】24
【全頁数】19
(21)【出願番号】特願2016-517087(P2016-517087)
(86)(22)【出願日】2014年6月24日
(65)【公表番号】特表2016-520937(P2016-520937A)
(43)【公表日】2016年7月14日
(86)【国際出願番号】US2014043766
(87)【国際公開番号】WO2014209936
(87)【国際公開日】20141231
【審査請求日】2015年11月26日
(31)【優先権主張番号】13/930,600
(32)【優先日】2013年6月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】フォクト、ピート ディー.
【審査官】 原 忠
(56)【参考文献】
【文献】 米国特許出願公開第2007/0061684(US,A1)
【文献】 特開2010−262537(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/10
G06F 12/16
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
メモリ制御ロジックと、
を備える
電子デバイスであって、
前記メモリ制御ロジックは、
メモリデバイスにデータを書き込む書き込み要求を受信し、前記データは、複数のキャッシュラインを含むメモリページにマッピングされ、かつ複数のパーシャルアレイへとパーティション化され、
前記データと共にエラー訂正コード情報を組み込むべく前記メモリページにおける前記複数のキャッシュラインの少なくとも一部を移動し、
エラー訂正コード情報を組み込むべく移動された前記複数のキャッシュラインの前記一部を、前記書き込み要求が渡されたパーシャルアレイのトップの行へリマッピングし、
前記メモリページに前記データ及び前記エラー訂正コード情報を書き込み、これにより前記複数のパーシャルアレイにおける各パーシャルアレイは、前記データを保護するためのデータおよび全ての必要なエラー訂正コード情報を有する、
電子デバイス。
【請求項2】
データバスをさらに備え、
前記データ及び前記エラー訂正コード情報は前記データバス上に送信される、
請求項1に記載の電子デバイス。
【請求項3】
前記複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングするロジック、
をさらに備える
請求項1または2に記載の電子デバイス。
【請求項4】
前記メモリページへ渡される、列アドレスを有するメモリアクセス要求を受信し、前記列アドレスの複数の最上位ビットが全て値1である場合に、第1のマッピングポリシーを適用するロジック、
をさらに備える
請求項1から3の何れか一項に記載の電子デバイス。
【請求項5】
前記列アドレスの複数の最上位ビットが全て値1ではない場合に、第2のマッピングポリシーを適用するロジック、
をさらに備える
請求項4に記載の電子デバイス。
【請求項6】
前記書き込み要求が渡された前記パーシャルアレイへの電力をカットするロジック、
をさらに備える
請求項1から5の何れか一項に記載の電子デバイス。
【請求項7】
前記データ及び前記エラー訂正コード情報は、同一のメモリページに格納される、
請求項1から6の何れか一項に記載の電子デバイス。
【請求項8】
前記メモリ制御ロジックは、前記メモリデバイスにおけるデータにアクセスする読み取り要求をさらに受信し、
前記データ及び前記エラー訂正コード情報は、同一のメモリページから取得される、
請求項1から7の何れか一項に記載の電子デバイス。
【請求項9】
ロジックを有するメモリコントローラであって、
前記ロジックは、
メモリデバイスにデータを書き込む書き込み要求を受信し、前記データは、複数のキャッシュラインを含むメモリページにマッピングされ、かつ、複数のパーシャルアレイへとパーティション化され、
前記データと共にエラー訂正コード情報を組み込むべく前記メモリページにおける前記複数のキャッシュラインの少なくとも一部を移動し、
エラー訂正コード情報を組み込むべく移動された前記複数のキャッシュラインの前記一部を、前記書き込み要求が渡されたパーシャルアレイのトップの行へリマッピングし、
前記メモリページに前記データ及び前記エラー訂正コード情報を書き込み、これにより前記複数のパーシャルアレイにおける各パーシャルアレイは、前記データを保護するためのデータおよび全ての必要なエラー訂正コード情報を有する、
メモリコントローラ。
【請求項10】
データバスをさら有し、
前記データ及び前記エラー訂正コード情報は、前記データバス上に送信される、
請求項9に記載のメモリコントローラ。
【請求項11】
前記複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングするロジック、
をさらに有する
請求項9または10に記載のメモリコントローラ。
【請求項12】
前記メモリページへ渡される、列アドレスを有するメモリアクセス要求を受信し、前記列アドレスの複数の最上位ビットが全て値1である場合に、第1のマッピングポリシーを適用するロジック、
をさらに備える
請求項9から11の何れか一項に記載のメモリコントローラ。
【請求項13】
前記列アドレスの複数の最上位ビットが全て値1ではない場合に、第2のマッピングポリシーを適用するロジック、
をさらに備える、
請求項12に記載のメモリコントローラ。
【請求項14】
前記書き込み要求が渡された前記パーシャルアレイへの電力をカットするロジック、
をさらに有する
請求項9から13の何れか一項に記載のメモリコントローラ。
【請求項15】
前記データ及び前記エラー訂正コード情報は、同一のメモリページ上に格納される、
請求項9から14の何れか一項に記載のメモリコントローラ。
【請求項16】
前記ロジックは、前記メモリデバイス上のデータにアクセスする読み取り要求をさらに受信し、
前記データ及び前記エラー訂正コード情報は、同一のメモリページから取得される、
請求項9から15の何れか一項に記載のメモリコントローラ。
【請求項17】
1つまたは複数のメモリセルを有するメモリデバイスと、
メモリ制御ロジックと、
を備える
装置であって、
前記メモリ制御ロジックは、
メモリデバイスにデータを書き込む書き込み要求を受信し、前記データは、複数のキャッシュラインを含むメモリページにマッピングされ、かつ複数のパーシャルアレイへとパーティション化され、
前記データと共にエラー訂正コード情報を組み込むべく前記メモリページにおける前記複数のキャッシュラインの少なくとも一部を移動し、
エラー訂正コード情報を組み込むべく移動された前記複数のキャッシュラインの前記一部を、前記書き込み要求が渡されたパーシャルアレイのトップの行へリマッピングし、
前記メモリページに前記データ及び前記エラー訂正コード情報を書き込み、これにより前記複数のパーシャルアレイにおける各パーシャルアレイは、前記データを保護するためのデータおよび全ての必要なエラー訂正コード情報を有する、
装置。
【請求項18】
データバス、
をさら備え、
前記データ及び前記エラー訂正コード情報は、前記データバス上に送信される、
請求項17に記載の装置。
【請求項19】
前記複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングするロジック、
をさらに備える
請求項17または18に記載の装置。
【請求項20】
前記メモリページへ渡される、列アドレスを有するメモリアクセス要求を受信し、前記列アドレスの複数の最上位ビットが全て値1である場合に、第1のマッピングポリシーを適用するロジック、
をさらに備える
請求項17から19の何れか一項に記載の装置。
【請求項21】
前記列アドレスの複数の最上位ビットが全て値1ではない場合に、第2のマッピングポリシーを適用するロジック、
をさらに備える
請求項20に記載の装置。
【請求項22】
前記書き込み要求が渡された前記パーシャルアレイへの電力をカットするロジック、
をさらに備える
請求項17から21の何れか一項に記載の装置。
【請求項23】
前記データ及び前記エラー訂正コード情報は、同一のメモリページ上に格納される、
請求項17から22の何れか一項に記載の装置。
【請求項24】
前記メモリ制御ロジックは、前記メモリデバイス上のデータにアクセスする読み取り要求をさらに受信し、
前記データ及び前記エラー訂正コード情報は、同一のメモリページから取得される、
請求項17から23の何れか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してエレクトロニクス分野に関する。より具体的には、本発明のいくつかの実施形態は概して、組み込みエラー訂正コード(ECC)アドレスマッピングに関する。
【背景技術】
【0002】
様々な電子デバイスは、メモリ技術を取り込み得る。例えば、複数のスマートフォン及び複数のタブレットのような、いくつかの電子デバイスには大容量なメモリの使用が駆り立てられている。しかし、これらは、メモリに対して複数のエラー訂正コード(ECC)ビットを追加するオーバヘッドが容認されないコストに敏感な複数の用途である。複数の大容量デバイスは、複数の電子デバイスの複数の他のマーケットに、例えば、サーバプロダクトスペースには有用であり得る。しかし、このような複数のマーケットは、複数のメモリデバイスからの一貫して高信頼性を要求し、これは複数のメモリデバイスにおける複数のECC機能を必要とする。
【0003】
従って、複数の大容量メモリデバイスにECCを実装する複数の技術の有用性は期待され得る。
【図面の簡単な説明】
【0004】
詳細な説明は添付の複数の図を参照して提供される。複数の図において、参照番号の最左端の数字は、その参照番号が最初に現れる図を特定する。複数の異なる図において複数の同一の参照番号が用いられる場合は、複数の同様のまたは同一のアイテムを示す。
図1】本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピングを実装する装置の複数のコンポーネントの概略ブロック図である。
図2A】本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピングを実装するのに適合され得る典型的なメモリの概略ブロック図である。
図2B】本明細書において説明される様々な実施形態に係るメモリページの模式図である。
図2C】本明細書において説明される様々な実施形態に係るメモリマッピングスキームの模式図である。
図3】本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピングを実装する方法における複数の動作を示すフローチャートである。
図4】本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピングを実装する方法における複数の動作を示すフローチャートである。
図5】本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピング用のメモリマッピングスキームの模式図である。
図6】本明細書において説明される様々な実施形態に係る組み込みECCメモリ管理を実装するのに適合され得る複数の電子デバイスの概略ブロック図である。
図7】本明細書において説明される様々な実施形態に係る組み込みECCメモリ管理を実装するのに適合され得る複数の電子デバイスの概略ブロック図である。
図8】本明細書において説明される様々な実施形態に係る組み込みECCメモリ管理を実装するのに適合され得る複数の電子デバイスの概略ブロック図である。
図9】本明細書において説明される様々な実施形態に係る組み込みECCメモリ管理を実装するのに適合され得る複数の電子デバイスの概略ブロック図である。
図10】本明細書において説明される様々な実施形態に係る組み込みECCメモリ管理を実装するのに適合され得る複数の電子デバイスの概略ブロック図である。
【発明を実施するための形態】
【0005】
以下の説明において、様々な実施形態の完全な理解を提供すべく、多数の具体的な詳細が記載される。しかし、本発明の様々な実施形態は、複数の具体的な詳細がなくても実施され得る。複数の他の例において、複数の周知の方法、複数の手順、複数のコンポーネント及び複数の回路は、本発明の複数の特定の実施形態を曖昧にしないように、詳細に説明されてはいない。さらに、本発明の複数の実施形態の様々な態様は、複数の集積半導体回路(「ハードウェア」)、1つまたは複数のプログラムにまとめられる複数のコンピュータ可読命令(「ソフトウェア」)、またはハードウェア及びソフトウェアのいくつかの組み合わせのような、様々な手段を用いて実行され得る。本開示の複数の目的のため、「ロジック」という記載は、ハードウェア、ソフトウェア、またはそれらのいくつかの組み合わせの何れかを意味するものとする。
【0006】
本明細書において、複数のECCビットを、専用ECC容量を含まないメモリデバイス(例えば、ダイナミックランダムアクセスメモリ(DRAM)デバイス)の一部内にマッピングする複数の技術が説明される。様々な実施形態において、任意の提示されたキャッシュライン用の複数のECCビットは、当該キャッシュラインと同一のDRAMページ(または行)に配置されてよい。これは、キャッシュラインデータ及びECCデータの両方のアクセスに用いられる共通DRAMアクティブ化コマンドを可能にし、これにより、電力を節約し、レイテンシを減少する。ページにおけるECCデータの構成は、最初のキャッシュライン用に読み取られる複数のECCデータビットの同一のブロックを共有し得る複数のページヒットレートを増加させるように構成されてよい。さらに、複数のECCデータビット用空間を生成するように移動される複数のキャッシュラインは、移動されたキャッシュラインを保護するのに必要な複数のECCデータビットと一緒に代替的DRAMページに再配置される。
【0007】
いくつかの実施形態において、複数のキャッシュラインの複数のブロックは、メモリコントローラと共に用いられる場合、待機電力の低減を可能にするように、DRAM物理スペース内にマッピングされ得る。複数の低電力モードをサポートするのに必要なデータがDRAMのほんの一部内に割り当てられることが可能であれば、そうして、残りのDRAMを、複数のパーシャルアレイセルフリフレッシュ(PASR)技術を用いて電源遮断のような状態に置くことが可能である。
【0008】
本明細書において説明される複数の技術は、デュアルインラインメモリモジュール(DIMM)に一般的に組み込まれる複数のDRAMチップを含むメモリシステムを有してよい様々な電子デバイス(例えば、複数のサーバ、複数のデスクトップ、複数のノートブック、複数のスマートフォン、複数のタブレット、複数のポータブルゲームコンソールなど)に提供され得る。いくつかの実施形態において、ロジックは、電子デバイスに集積されるメモリコントローラに実装され得る。代替的に、ロジックは、DIMMにおける複数のDRAMに対する複数の動作を制御するDIMMレベルで実装されてよい。
【0009】
図1は、本明細書において説明される様々な実施形態に係る組み込みECCアドレスマッピングを実装するのに適合され得る電子デバイスの複数のコンポーネントの概略ブロック図である。図1を参照すれば、いくつかの実施形態において、中央処理装置(CPU)パッケージ100は、制御ハブ120に連結される1つまたは複数のCPU110を備えてよい。制御ハブ120は、メモリコントローラ122及びメモリインタフェース124を有してよい。メモリコントローラ122は、バス120を通じてローカルメモリ130に連結される。
【0010】
メモリインタフェース124は、通信バス160によって1つまたは複数の遠隔メモリデバイス140に連結される。メモリデバイス140は、コントローラ142及び1つまたは複数のメモリバンク150を有してよい。様々な実施形態において、複数のメモリバンク150は、コントローラ142に通信リンクを提供するメモリチャネル144に連結される1つまたは複数のデュアルインラインメモリモジュール(DIMM)を用いて実装され得る。メモリデバイス140におけるメモリバンク150の具体的構成は、重要ではない。
【0011】
様々な実施形態において、メモリデバイス140は、メモリシステムとして、1つまたは複数のDRAMメモリモジュールを用いて実装され得る。図2Aは、本明細書において説明される様々な実施形態に係るECCメモリ管理を実装するのに適合され得る典型的なメモリデバイス140の概略ブロック図である。図2Aを参照すれば、いくつかの実施形態において、メモリデバイス140は、メモリコントローラ142に通信リンクを提供するメモリチャネル270に連結される1つまたは複数のデュアルインラインメモリモジュールDIMM250を有してよい。図2Aに示される実施形態において、各DIMMは、第1ランク255及び第2ランク260を含み、それらの各々は、複数のDRAMモジュール265を含む。当業者は、メモリデバイス140はより多くの、またはより少ないDIMM250を含んでよく、DIMMごとにより多くの、またはより少ないランクを含んでよいことを認識するであろう。さらに、いくつかの電子デバイス(例えば、複数のスマートフォン、複数のタブレットコンピュータなど)は、1つまたは複数のDRAMを含む複数のより簡易なメモリシステムを備えてよい。
【0012】
図2Bは、DRAM265に格納されてよいメモリのページの模式図である。いくつかの実施形態において、メモリの2048Bの各ページは30のキャッシュラインのデータを保持し、それらの各々はキャッシュラインごとに64バイト及び4BのECCデータである。つまり、2048Bのうちの1920Bはデータ用に用いられ、残りはECCデータ及びメタデータに割り当てられる。いくつかの実施形態において、図2Bに示されるように、ECCデータはページの最後に格納される。
【0013】
いくつかの実施形態において、64Bのキャッシュライン及び32BのECCデータは、同一のデータチャネルを渡って伝送され得る。BL8のバースト長さは、キャッシュラインを読み取るのに用いられてよく、一方で、BL4は、ECCデータを読み取るのに用いられてよい。
【0014】
上述に説明されたように、いくつかの実施形態において、メモリコントローラ122またはメモリデバイス140におけるコントローラ142のうちの少なくとも1つは、複数の組み込みECCアドレスマッピング動作を実装するロジックを有する。メモリコントローラ122及び/またはコントローラ142に実装される複数のECCアドレスマッピング動作は、図3から5を参照して説明される。図3は、メモリコントローラ122またはメモリデバイス140におけるコントローラ142のうちの少なくとも1つによって実装され得る、組み込みECCアドレスマッピングを実装する複数のキャッシュライン書き込み動作を示している。キャッシュライン読み取り、ECC書き込み及びECC読み取りのような複数の他の動作は、同様の複数のフローを含む。図3を参照すれば、動作310では、メモリコントローラ122またはコントローラ142は、キャッシュラインデータをローカルメモリ130またはメモリデバイス140のページに書き込む要求を受信する。
【0015】
動作320では、複数の移動されたキャッシュラインは、代替的メモリ位置にリマッピングされる。図2Cを参照すれば、いくつかの実施形態において、メモリデバイスは、複数のパーシャルアレイ280内にパーティション化され、複数の移動されたキャッシュラインは、書き込み動作が渡されたパーシャルアレイのトップにリマッピングされる。動作325では、キャッシュラインデータは、メモリのページに格納される。
【0016】
図2Cに示されるように、得られるメモリは、各パーシャルアレイが当該パーシャルアレイのデータを保護するのに必要なデータ及び全てのECC情報の両方を含むように構造化される。つまり、各パーシャルアレイは、パーシャルアレイセルフリフレッシュ(PASR)ロジックを用いて独立して低電力状態に置かれてよく、これにより、メモリデバイス140による電力消費を減少する。
【0017】
複数のメモリマッピング動作の複数のさらなる態様は、図4から5を参照して説明される。図4から5を参照すれば、メモリアクセス要求が到着する場合、ホストシステムは、選択されたページ及びインタリーブポリシーに基づいたDRAM線形バンクアドレスマップにマッピングされる。
【0018】
動作415では、列アドレスの最上位ビットが全て1ではない場合、そうして、標準アドレスマッピングは適用され、制御は動作420に渡される。動作420では、要求がキャッシュラインアクセス用の場合、そうして、制御は動作425に渡され、標準キャッシュラインマッピングは適用される。これに対し、動作420では、メモリ要求がECCアクセス用の場合、そうして、制御は動作430に渡され、標準ECCアドレッシングは生成される。
【0019】
戻して動作415を参照すれば、線形バンクアドレスの最上位ビットが全て1である場合、そうして、代替的マッピングは適用され、制御は動作440に渡される。動作440では、メモリ要求がキャッシュラインアクセス用の場合、そうして、制御は動作445に渡され、代替的キャッシュラインマッピングは適用される。これに対し、動作440で、メモリ要求がECCアクセス用の場合、制御は動作450に渡され、代替的ECCアドレッシングは生成される。
【0020】
図5は、2048Bのページサイズ及び8つのパーティションを有するメモリデバイスに関する具体的実施形態を示す。この例において、上位4列アドレスビットは、キャッシュラインまたはECCアクセスが標準または代替的マッピングを用いるか否かを決定するように用いられる。この図示はまた、複数のキャッシュラインアクセス及び複数のECCアクセス用の標準及び代替的マッピングを示している。この図示は、ECCに関連付けられたキャッシュラインの8つのブロックのうちの1つを8つのDRAMパーティションのうちの1つに配置するように標準及び代替的にマッピングされた複数のアドレスが如何に操作されるか、をさらに示している。この例において、行アドレスの上位3ビットは、パーティションを選択するようにDRAMによって用いられる。
【0021】
上述に説明されたように、いくつかの実施形態において、電子デバイスは、コンピュータシステムとして、具現化されてよい。図6は、本発明の実施形態に係るコンピューティングシステム600のブロック図を示す。コンピューティングシステム600は、1つまたは複数の中央処理装置(CPU)602または相互接続ネットワーク(またはバス)604を介して通信を行う複数のプロセッサを含んでよい。複数のプロセッサ602は、汎用プロセッサ、(コンピュータネットワーク603と通信を行われたデータを処理する)ネットワークプロセッサ、または(縮小命令セットコンピュータ(RISC)プロセッサもしくは複合命令セットコンピュータ(CISC)プロセッサを含む)複数の他の種類のプロセッサを含んでよい。さらに、複数のプロセッサ602は、単一または複数コア設計を有してよい。複数コア設計を有する複数のプロセッサ602は、複数の異なる種類のプロセッサコアを同一の集積回路(IC)ダイ上に集積し得る。また、複数コア設計を有する複数のプロセッサ602は、複数の対称または非対称マルチプロセッサとして、実装されてよい。実施形態において、1つまたは複数のプロセッサ602は、図1の複数のプロセッサ102と同一または同様のものであってよい。例えば、1つまたは複数のプロセッサ602は、図1から3を参照して説明された制御ユニット120を含んでよい。また、図3から5を参照して説明された複数の動作は、システム600の1つまたは複数のコンポーネントによって実行されてよい。
【0022】
チップセット606はまた、相互接続ネットワーク604と通信を行い得る。チップセット606は、メモリ制御ハブ(MCH)608を含んでよい。MCH608は、(図1のメモリ130と同一または同様のものであってよい)メモリ612と通信を行うメモリコントローラ610を含んでよい。メモリ412は、複数の命令の複数のシーケンスを含むデータを格納してもよく、これは、CPU602またはコンピューティングシステム600に含まれる任意の他のデバイスによって実行され得る。本発明の一実施形態において、メモリ612は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、または複数の他の種類のストレージデバイスのような、1つまたは複数の揮発性ストレージ(またはメモリ)デバイスを含んでよい。不揮発性メモリはまた、ハードディスクのように利用可能である。複数の追加のデバイスは、複数のCPU及び/または複数のシステムメモリのように、相互接続ネットワーク604を介して通信を行ってよい。
【0023】
MCH608はまた、ディスプレイデバイス616と通信を行うグラフィックスインタフェース614を含んでよい。本発明の一実施形態において、グラフィックスインタフェース614は、アクセラレーテッドグラフィクスポート(AGP)を介して、ディスプレイデバイス616と通信を行ってもよい。本発明の実施形態において、(フラットパネルディスプレイのような)ディスプレイ616は、例えば、ビデオメモリまたはシステムメモリのようなストレージデバイスに格納された画像のデジタル表現を、ディスプレイ616によって解読及び表示される複数の表示信号に変換する信号コンバータを通じて、グラフィックスインタフェース614と通信を行ってよい。ディスプレイデバイスによって生成される複数の表示信号は、ディスプレイ616によって解読され、次にその上に表示される前に、様々な制御デバイスを通して渡されてよい。
【0024】
ハブインタフェース618は、MCH608と入力/出力制御ハブ(ICH)620とが通信を行うことを可能にし得る。ICH620は、コンピューティングシステム600と通信を行うI/Oデバイスにインタフェースを提供し得る。ICH620は、周辺機器相互接続(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、または複数の他の種類の周辺ブリッジもしくは複数のコントローラのような、周辺ブリッジ(またはコントローラ)624を通じて、バス622と通信を行ってよい。ブリッジ624は、CPU602と複数の周辺デバイスとの間にデータパスを提供してよい。複数の他の種類のトポロジは利用可能である。また、複数のバスは、例えば、複数のブリッジまたは複数のコントローラを通じて、ICH620と通信を行ってよい。さらに、本発明の様々な実施形態において、ICH620と通信を行う複数の他の周辺機器は、統合ドライブエレクトロニクス(IDE)またはスモールコンピュータシステムインタフェース(SCSI)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインタフェース(DVI))、または複数の他のデバイスを含んでよい。
【0025】
バス622は、オーディオデバイス626、1つまたは複数のディスクドライブ628、及び(コンピュータネットワーク603と通信を行う)ネットワークインタフェースデバイス630と通信を行ってよい。複数の他のデバイスは、バス622を介して通信を行ってよい。また、(ネットワークインタフェースデバイス630のような)様々なコンポーネントは、本発明のいくつかの実施形態においてMCH608と通信を行い得る。さらに、プロセッサ602及び本明細書において説明されている1つまたは複数の他のコンポーネントは、単一のチップを形成する(例えば、システムオンチップ(SoC)を提供する)ように組み合わせられてよい。さらに、グラフィックスアクセラレータ616は、本発明の複数の他の実施形態において、MCH608内に含まれてよい。
【0026】
さらに、コンピューティングシステム600は、揮発性及び/または不揮発性メモリ(またはストレージ)を含んでよい。例えば、不揮発性メモリは、以下のリードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、628)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク、または電子データ(例えば、複数の命令を含む)を格納可能な複数の他の種類の不揮発性機械可読メディアのうちの1つまたは複数を含んでよい。
【0027】
図7は、本発明の実施形態に係るコンピューティングシステム700のブロック図を示す。システム700は、1つまたは複数のプロセッサ702―1から702―N(本明細書において概して「複数のプロセッサ702」または「プロセッサ702」と称される)を含んでよい。複数のプロセッサ702は、相互接続ネットワークまたはバス704を介し通信を行ってよい。各プロセッサは、様々なコンポーネントを含んでよく、それらのいくつかは、明確にすべく、プロセッサ702―1のみを参照して説明される。従って、残りのプロセッサ702―2から702―Nの各々は、プロセッサ702−1を参照して説明される同一または同様の複数のコンポーネントを含んでもよい。
【0028】
実施形態において、プロセッサ702―1は、プロセッサコア706―1から706―M(本明細書において「複数のコア706」またはより概して「コア706」と称される)のうちの1つまたは複数、共有キャッシュ708、ルータ710、及び/またはプロセッサ制御ロジックもしくはユニット720を含んでよい。プロセッサコア706は、単一の集積回路(IC)チップ上に実装されてよい。さらに、チップは、1つまたは複数の共有及び/または専用のキャッシュ(例えばキャッシュ708)、複数のバスまたは複数の相互接続(例えばバスまたは相互接続ネットワーク712)、複数のメモリコントローラ、もしくは複数の他のコンポーネントを含んでよい。
【0029】
一実施形態において、ルータ710は、プロセッサ702―1の様々なコンポーネント及び/またはシステム700の間で通信を行うように用いられてよい。さらに、プロセッサ702―1は、1つより多くのルータ710を含んでよい。さらに、多数のルータ710は、プロセッサ702―1の内部または外部の様々なコンポーネントの間におけるデータルーティングを可能にするように通信を行ってよい。
【0030】
共有キャッシュ708は、複数のコア706のような、プロセッサ702―1の1つまたは複数のコンポーネントによって利用可能なデータ(例えば、複数の命令を含む)を格納してよい。例えば、共有キャッシュ708は、プロセッサ702の複数のコンポーネントによるアクセスをより高速にすべく、メモリ714に格納されたデータをローカルにキャッシュし得る。実施形態において、キャッシュ708は、中レベルキャッシュ(例えば、レベル2(L2)、レベル3(L3)、レベル4(L4)または他の複数のレベルのキャッシュ)、ラストレベルキャッシュ(LLC)、及び/またはそれらの複数の組み合わせを含んでよい。さらに、プロセッサ702―1の様々なコンポーネントは、バス(例えば、バス712)及び/またはメモリコントローラもしくはハブを通じて、直接に共有キャッシュ708と通信を行ってよい。図7に示されるように、いくつかの実施形態において、1つまたは複数のコア706は、レベル1(L1)キャッシュ716―1(本明細書において概して「L1キャッシュ716」と称される)を含んでよい。一実施形態において、制御ユニット720は、図1のメモリコントローラ122を参照して上述に説明された複数の動作を実装するロジックを含んでよい。
【0031】
図8は、本発明の実施形態に係るプロセッサコア706の複数の一部及びコンピューティングシステムの複数の他のコンポーネントのブロック図を示す。一実施形態において、図8に示される複数の矢印は、コア706を通じた複数の命令のフローの方向を示す。1つまたは複数のプロセッサコア(例えばプロセッサコア706)は、図7を参照して説明されたもののような単一の集積回路チップ(またはダイ)上に実装されてよい。さらに、チップは、1つまたは複数の共有及び/または専用キャッシュ(例えば、図7のキャッシュ708)、複数の相互接続(例えば、図7の相互接続704及び/または712)、複数の制御ユニット、複数のメモリコントローラ、または複数の他のコンポーネントを含んでよい。
【0032】
図8に示されるように、プロセッサコア706は、コア706による実行をすべく、(複数の条件付き分岐を有する複数の命令を含む)複数の命令をフェッチするフェッチユニット802を含んでよい。複数の命令は、メモリ714のような複数の任意のストレージデバイスからフェッチされてよい。コア706もまた、フェッチされた命令をデコードするデコードユニット804を含んでよい。例えば、デコードユニット804は、フェッチされた命令を複数のuop(複数のマイクロオーぺレーション)内にデコードしてよい。
【0033】
さらに、コア706は、スケジューリングユニット806を含んでよい。スケジューリングユニット806は、複数の命令がディスパッチ可能となるまで、例えば、デコードされた命令の全てのソース値が適用可能となるまで、複数のデコードされた命令(例えば、デコードユニット804から受信されたもの)の格納に関連付けられた様々な動作を実行してもよい。一実施形態において、スケジューリングユニット806は、複数のデコードされた命令をスケジューリングし、及び/またはこれらを実行すべく、実行ユニット808に発し(またはディスパッチし)てよい。実行ユニット808は、複数のディスパッチされた命令が(例えば、デコードユニット804によって)デコードされ、(例えば、スケジューリングユニット806によって)ディスパッチされた後に、これらを実行してよい。実施形態において、実行ユニット808は、1つより多くの実行ユニットを含んでよい。実行ユニット808はまた、加算、減算、乗算、及び/または除算のような様々な算術演算を実行してよく、1つまたは複数の算術論理演算装置(ALU)を含んでよい。実施形態において、コプロセッサ(図示せず)は、実行ユニット808と共に様々な算術演算を実行してよい。
【0034】
さらに、実行ユニット808は、アウトオブオーダで複数の命令を実行してよい。よって、プロセッサコア706は、一実施形態において、アウトオブオーダプロセッサコアであってよい。コア706はまた、リタイアメントユニット810を含んでよい。リタイアメントユニット810は、複数の実行された命令がコミットされた後にこれらをリタイアしてよい。実施形態において、複数の実行された命令のリタイアは、プロセッサの状態が複数の命令の実行からコミットされること、複数の命令によって用いられる複数の物理レジスタが解放されることなどをもたらしてよい。
【0035】
コア706はまた、1つまたは複数のバス(例えば、バス804及び/または812)を介して、プロセッサコア706の複数のコンポーネントと(図8を参照して説明された複数のコンポーネントのような)複数の他のコンポーネントとの間の通信を可能にするバスユニット714を含んでよい。コア706はまた、コア706の様々なコンポーネントによってアクセスされるデータ(例えば複数の電力消費状態セッティングに関連する複数の値)を格納する1つまたは複数のレジスタ816を含んでよい。
【0036】
さらに、図7は、制御ユニット720が相互接続812を介してコア706に連結されるものとして示すが、様々な実施形態においては、制御ユニット720は、バス704などを介してコアに連結されるコア706の内部のような他の箇所に配置され得る。
【0037】
いくつかの実施形態において、本明細書において説明されている1つまたは複数のコンポーネントは、システムオンチップ(SoC)デバイスとして具現化されてよい。図9は、実施形態に係るSoCパッケージのブロック図を示す。図9に示されるように、SoCパッケージ902は、1つまたは複数の中央処理装置(CPU)コア920、1つまたは複数のグラフィックスプロセッサユニット(GPU)コア930、入力/出力(I/O)インタフェース940、及びメモリコントローラ942を含む。SoCパッケージ902の様々なコンポーネントは、本明細書において複数の他の図を参照して説明されるような相互接続またはバスに連結されてよい。また、SoCパッケージ902は、本明細書において複数の他の図を参照して説明されるもののような、より多くのまたはより少ないコンポーネントを含んでよい。さらに、SoCパッケージ902の各コンポーネントは、例えば、本明細書において複数の他の図を参照して説明されるもののような1つまたは複数の他のコンポーネントを含んでよい。一実施形態において、SoCパッケージ902(及びその複数のコンポーネント)は、例えば、単一の半導体デバイス内にパッケージ化される1つまたは複数の集積回路(IC)ダイ上に提供される。
【0038】
図9に示されるように、SoCパッケージ902は、メモリコントローラ942を介して、(本明細書において複数の他の図を参照して説明されているメモリと同様のまたは同一のものであってよい)メモリ960に連結される。実施形態において、メモリ960(またはその一部)は、SoCパッケージ902上に集積されてよい。
【0039】
I/Oインタフェース940は、例えば、本明細書において複数の他の図を参照して説明されるような相互接続及び/またはバスを介して、1つまたは複数のI/Oデバイス970に連結される。I/Oデバイス970は、キーボード、マウス、タッチパッド、ディスプレイ、画像/ビデオキャプチャデバイス(例えば、カメラまたはカムコーダ/ビデオレコーダ)、タッチスクリーン、スピーカなどのうちの1つまたは複数を含んでよい。
【0040】
図10は、本発明の実施形態に係るポイントツーポイント(PtP)構成に構成されるコンピューティングシステム1000を示す。特に、図10は、複数のプロセッサ、メモリ及び複数の入力/出力デバイスが、多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。図2Aから2Cを参照して説明された複数の動作は、システム1000の1つまたは複数のコンポーネントによって実行されてよい。
【0041】
図10に示されるように、システム1000は、いくつかのプロセッサを含んでよく、明確にすべく、これらのうちのプロセッサ1002及び1004の2つのみが示される。プロセッサ1002及び1004は、それぞれ、メモリ1010及び1012との通信を可能にするローカルメモリコントローラハブ(MCH)1006及び1008を含んでよい。MCH1006及び1008は、いくつかの実施形態において図1のメモリコントローラ120及び/またはロジック125を含んでよい。
【0042】
実施形態において、プロセッサ1002及び1004は、図7を参照して説明された複数のプロセッサ702のうちの1つであってよい。プロセッサ1002及び1004は、それぞれ、PtPインタフェース回路1016及び1018を用いて、ポイントツーポイント(PtP)インタフェース1014を介して、データを交換してよい。また、プロセッサ1002及び1004は、それぞれ、ポイントツーポイントインタフェース回路1026、1028、1030及び1032を用いて、個々のPtPインタフェース1022及び1024を介して、チップセット1020とデータを交換してよい。チップセット1020は、例えば、PtPインタフェース回路1037を用いて、高性能グラフィックスインタフェース1036を介して、高性能グラフィックス回路1034とさらにデータを交換してよい。
【0043】
図10に示されるように、図1の1つまたは複数のコア106及び/またはキャッシュ108は、プロセッサ902及び904内に配置されてよい。しかし、本発明の複数の他の実施形態は、図9のシステム900内の複数の他の回路、複数の論理ユニット、または複数のデバイスに存在してもよい。さらに、本発明の複数の他の実施形態は、図9に示されているいくつかの回路、論理ユニット、またはデバイス全体に分散されてよい。
【0044】
チップセット920は、PtPインタフェース回路941を用いてバス940と通信を行ってよい。バス940は、バスブリッジ942及び複数のI/Oデバイス943のような、当該バスと通信を行う1つまたは複数のデバイスを有してよい。バス944を介して、バスブリッジ943は、キーボード/マウス945、複数の通信デバイス946(例えば複数のモデム、複数のネットワークインタフェースデバイス、またはコンピュータネットワーク803と通信を行う複数の他の通信デバイス)、オーディオI/Oデバイス、及び/またはデータストレージデバイス948のような、複数の他のデバイスと通信を行ってよい。データストレージデバイス948(ハードディスクドライブまたはNANDフラッシュベースのソリッドステートドライブであってよい)は、プロセッサ902及び/または904によって実行可能なコード949を格納してもよい。
【0045】
以下の複数の例は、複数のさらなる実施形態に関する。
【0046】
例1は、プロセッサと、メモリ制御ロジックと、を備える電子デバイスである。メモリ制御ロジックは、メモリデバイスにおける複数のキャッシュラインを含むメモリページにマッピングされるデータにアクセスする要求を受信し、データと一緒にエラー訂正コード情報を組み込むように複数のキャッシュラインの少なくとも一部を移動し、複数のキャッシュラインのその一部を別のメモリ位置にリマッピングし、メモリページにおけるデータ及びエラー訂正コード情報にアクセスする。
【0047】
例2において、例1の主題は、データバスを任意選択に含むことができ、データ及びエラー訂正コード情報が当該データバスに送信される。
【0048】
例3において、例1から2の何れか1つの主題は、ロジックを任意選択に含んでよく、当該ロジックは、複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングする。
【0049】
例4において、例1から3の何れか1つの主題は、メモリデバイスは複数のパーシャルアレイ内にパーティション化され、書き込み要求は選択されたパーシャルアレイに渡されるように構成されてよく、複数のキャッシュラインの一部を選択されたパーシャルアレイにおける所定の位置にリマッピングするロジックをさらに備えてよい。
【0050】
例5において、例1から4の何れか1つの主題は、所定の位置が選択されたパーシャルアレイのトップセクションに対応するように構成されてよい。
【0051】
例6において、例1から3の何れか1つの主題は、選択されたパーシャルアレイへの電力をカットするロジックを任意選択に含んでよい。
【0052】
例7において、例1から6の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は書き込み要求であり、データ及びエラー訂正コード情報は同一のメモリページに格納されるように構成されてよい。
【0053】
例8において、例1から6の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は読み取り要求であり、データ及びエラー訂正コード情報は同一のメモリページから取得されるように構成されてよい。
【0054】
例9は、ロジックを有するメモリコントローラである。当該ロジックは、メモリデバイスにおける、複数のキャッシュラインを含むメモリページにマッピングされるデータにアクセスする要求を受信し、データと共にエラー訂正コード情報を組み込むように複数のキャッシュラインの少なくとも一部を移動し、複数のキャッシュラインの当該一部を別のメモリ位置にリマッピングし、メモリページにおけるデータ及びエラー訂正コード情報にアクセスする。
【0055】
例10において、例9の主題は、データバスを任意選択に含んでよく、データ及びエラー訂正コード情報は当該データバス上に送信される。
【0056】
例11において、例9から10の何れか1つの主題は、複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングするロジックを任意選択に含んでよい。
【0057】
例12において、例9から11の何れか1つの主題は、メモリデバイスは複数のパーシャルアレイ内にパーティション化され、書き込み要求は選択されたパーシャルアレイに渡されるように構成されてよく、複数のキャッシュラインのその一部を選択されたパーシャルアレイの所定の位置にリマッピングするロジックをさらに備えてよい。
【0058】
例13において、例9から12の何れか1つの主題は、所定の位置は選択されたパーシャルアレイのトップセクションに対応するように構成されてよい。
【0059】
例14において、例9から13の何れか1つの主題は、選択されたパーシャルアレイへの電力をカットするロジックを任意選択に含んでよい。
【0060】
例15において、例9から14の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は書き込み要求であり、データ及びエラー訂正コード情報は同一のメモリページに格納されるように構成されてよい。
【0061】
例16において、例9から15の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は読み取り要求であり、データ及びエラー訂正コード情報は同一のメモリページから取得されるように構成されてよい。
【0062】
例17は、メモリデバイスとメモリ制御ロジックとを備える装置である。メモリデバイスは、1つまたは複数のメモリセルを有し、メモリ制御ロジックは、メモリデバイスにおける複数のキャッシュラインを含むメモリページにマッピングされるデータにアクセスする要求を受信し、データと共にエラー訂正コード情報を組み込むように複数のキャッシュラインの少なくとも一部を移動し、複数のキャッシュラインの当該一部を別のメモリ位置にリマッピングし、メモリページにおけるデータ及びエラー訂正コード情報にアクセスする。
【0063】
例18において、例17の主題は、データバスを任意選択に含んでよく、データ及びエラー訂正コード情報は当該データバスに送信される。
【0064】
例19において、例17から18の何れか1つの主題は、複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングするロジックを任意選択に含んでよい。
【0065】
例20において、例17から19の何れか1つの主題は、メモリデバイスは複数のパーシャルアレイ内にパーティション化され、書き込み要求は選択されたパーシャルアレイに渡されるように構成されてよく、複数のキャッシュラインの当該一部を選択されたパーシャルアレイの所定の位置にリマッピングするロジックをさらに含んでよい。
【0066】
例21において、例17から20の何れか1つの主題は、所定の位置は選択されたパーシャルアレイのトップセクションに対応するように構成されてよい。
【0067】
例22において、例17から21の何れか1つの主題は、選択されたパーシャルアレイへの電力をカットするロジックを任意選択に含んでよい。
【0068】
例23において、例17から22の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は書き込み要求であり、データ及びエラー訂正コード情報は同一のメモリページ上に格納されるように構成されてよい。
【0069】
例24において、例17から23の何れか1つの主題は、メモリデバイスにおけるデータにアクセスする要求は読み取り要求であり、データ及びエラー訂正コード情報は同一のメモリページから取得されるように構成されてよい。
【0070】
例25は、メモリデバイスにデータをマッピングする段階を含むプロセッサベース方法であって、当該方法は、処理デバイスにおいて、メモリデバイスにおける複数のキャッシュラインを含むメモリページにマッピングされるデータにアクセスする要求を受信する段階と、データと共にエラー訂正コード情報を組み込むように複数のキャッシュラインの少なくとも一部を移動する段階と、複数のキャッシュラインの当該一部を別のメモリ位置にリマッピングする段階と、メモリページにおけるデータ及びエラー訂正コード情報にアクセスする段階とを含む。
【0071】
例26において、例25のデータ及びエラー訂正コード情報は共に単一のデータバスに送信される。
【0072】
例27において、例25から26の何れか1つの主題は、複数のキャッシュラインに関連付けられるエラー訂正コード情報を別のメモリ位置にリマッピングする段階を任意選択に含むことができる。
【0073】
例28において、例25から27の何れか1つの主題は、メモリデバイスは複数のパーシャルアレイ内にパーティション化され、書き込み要求は選択されたパーシャルアレイに渡されるような構成を任意選択に含んでよく、複数のキャッシュラインの当該一部を選択されたパーシャルアレイにおける所定の位置にリマッピングする段階をさらに含む。
【0074】
例29において、例25から28の何れか1つの主題は、所定の位置は選択されたパーシャルアレイのトップセクションに対応する構成を任意選択に含むことができる。
【0075】
例30において、例25から27の何れか1つの主題は、選択されたパーシャルアレイへの電力をカットする段階を任意選択に含むことができる。
【0076】
本発明の様々な実施形態において、本明細書において説明されている複数の動作は、例えば、図1から9を参照して、ハードウェア(例えば、回路)、ソフトウェア、ファームウェア、マイクロコード、またはそれらの複数の組み合わせとして実装されてよく、これらは、例えば、有形の(例えば、非一時的な)機械可読またはコンピュータ可読で、本明細書において説明されている処理を実行するコンピュータのプログラムに用いられるそこに格納される複数の命令(または複数のソフトウェア手順)を有するメディアを含むようなコンピュータプログラム製品として提供されてよい。また、用語「ロジック」は、例として、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアの複数の組み合わせを含んでよい。機械可読メディアは、本明細書で説明されるもののようなストレージデバイスを含んでよい。
【0077】
本明細書における「一実施形態」または「実施形態」という記載は、実施形態に関連して説明された特定の特徴、構造または特性が、少なくとも実装に含まれてもよいことを意味する。本明細書の様々な箇所における「一実施形態において」という表現の出現は、全て同一の実施形態を参照してもよく、しなくてもよい。
【0078】
また、説明及び特許請求の範囲で、「連結」及び「接続」という用語は、これらの複数の派生形と一緒に用いられてよい。本発明のいくつかの実施形態において、「接続」は、2つまたはそれより多くのエレメントが互いに直接物理的にまたは電気的に接触することを示すために用いられてもよい。「連結」は、2つまたはそれより多くのエレメントが直接物理的にまたは電気的に接触していることを意味し得る。しかし、「連結」はまた、2つまたはそれより多くのエレメントが互いに直接接触しなくてよく、互いに連携または相互作用をさらにしてよいことを意味してよい。
【0079】
つまり、本発明の複数の実施形態は、複数の構造的な特徴及び/または複数の方法論的な動きに固有の記載で説明されているが、特許請求の範囲に係る主題は、説明された複数の具体的な特徴又は複数の動きに限定されないことを理解されたい。むしろ、複数の具体的な特徴及び複数の動きは、特許請求の範囲に係る主題を実施すべく、例示的な複数の形式として開示される。
図1
図2A
図2B
図2C
図3
図4
図5
図6
図7
図8
図9
図10