(57)【要約】      （修正有）【課題】ＣＯＴＳマルチコアプロセッサーにおけるメモリー階層の、性能効率の良い分割を提供する。【解決手段】コンピューティングシステムは、少なくとも１つの処理ユニット１１０と、メモリーコントローラー１２０と、メモリーコントローラーを介して処理ユニットと通信するメインメモリー１３０とを備える。メモリー階層は、複数のメモリープールに分けられる。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる、一組のメモリーモジュールを含む。各ランクは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含む、一組のメモリーデバイスを有する。複数のスレッドは処理ユニット上で実行され、バンク分割、ランク分割、又はメモリーコントローラー分割を含む、１つ又は複数のメモリー分割技術に基づいてメモリープールに割り当てる。【選択図】図１
2018136922.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
少なくとも１つの処理ユニットと、
前記少なくとも１つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも１つのメモリーコントローラーと、
前記少なくとも１つのメモリーコントローラーを介して前記少なくとも１つの処理ユニットと動作上通信するメインメモリーと
を備え、
前記コンピューティングシステムのメモリー階層は、少なくとも１つのキャッシュ、前記少なくとも１つのメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられ、
前記メインメモリーは、それぞれが一組のランクアドレスビットによって定められるランクアドレスを有するランクに分割される一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含み、
複数のスレッドは、前記少なくとも１つの処理ユニットで実行され、
前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、
前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、あるいは
メモリーコントローラーインターリーブを使用するメモリーコントローラー分割
を含む１つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる、
コンピューティングシステム。
【請求項２】
アビオニクスコンピューターシステムであって、
マルチコアプロセッサーユニットであって、
１つ又は複数のプロセッサークラスターであって、それぞれが複数の中央処理装置（ＣＰＵ）コアを含み、前記コアのそれぞれが専用レベルのファーストキャッシュ及び共用レベルのセカンドキャッシュを有する、１つ又は複数のプロセッサークラスターと、
前記１つ又は複数のプロセッサークラスターに動作上連結された相互接続と、
前記相互接続を介して前記１つ又は複数のプロセッサークラスターと動作上通信する１つ又は複数のメモリーコントローラーと
を含むマルチコアプロセッサーユニットと、
前記１つ又は複数のメモリーコントローラーを介して前記１つ又は複数のプロセッサークラスターと動作上通信するメインメモリーと
を備え、
前記アビオニクスコンピューターシステムのメモリー階層は、前記ファースト又はセカンドキャッシュの少なくとも１つ、前記１つ又は複数のメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられ、
前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のデュアルインラインメモリーモジュール（ＤＩＭＭ）を含み、各ランクは一組のダイナミックランダムアクセスメモリー（ＤＲＡＭ）デバイスを有し、前記ＤＲＡＭデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含み、
複数のスレッドは前記ＣＰＵコア上で実行され、前記スレッドは、
前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、
前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、あるいは
メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割
を含む１つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられ、
前記アビオニクスコンピューターシステムは、航空機に搭載されるアビオニクスプラットフォームの一部として実装される、
アビオニクスコンピューターシステム。
【請求項３】
コンピューティングシステムを操作する方法であって、
前記コンピューティングシステムのメモリー階層を複数のメモリープールに分けるステップであって、前記メモリー階層は、少なくとも１つのキャッシュ、少なくとも１つのメモリーコントローラー、及びメインメモリーを含み、
前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含む、
ステップと、
前記コンピューティングシステムの少なくとも１つの処理ユニット上で実行される、複数のスレッドのそれぞれを、
前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、
前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、あるいは
メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割
を含む、１つ又は複数のメモリー分割技術に基づいて、前記メモリープールの１つ又は複数に割り当てるステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]アビオニクスシステムにおいて最も重要な要件の中の１つは、実行プロセスの時間及び空間の分割を確実にすることである。時間分割は、プロセス内のスレッドがプロセッサー時間の予め定められた部分を得ることを保証する技術である。プロセッサー時間の予め定められた部分がスレッド実行を完了するのに十分なことを確実にするために、通常、安全マージンが、測定された最悪ケース実行時間（ＷＣＥＴ）の上に追加される。空間分割とは、プロセスが互いのデータを損なうのを防止する、メモリーアクセスに対するハードウェア強制の制限を指す。時間分割及び空間分割はリアルタイムオペレーティングシステム（ＲＴＯＳ）によって保証され、これは通常、商用オフザシェルフ（ＣＯＴＳ）シングルコアプロセッサーで実行される。
【背景技術】
【０００２】
[0002]アビオニクスシステムの複雑さ及び計算能力は常に増加しつつあり、その一方で、ＣＯＴＳシングルコアプロセッサーは旧式になっている。従って、新規なコンピューターアーキテクチャーを選択して、アビオニクスシステムのニーズを満たすことが必要である。利用できるＣＯＴＳマルチコアプロセッサーはその最善の候補のいくつかとなる傾向があるがは、これは、低いサイズ、重量及び電力（ＳＷａＰ）特性と一緒になった高い性能上の能力のためである。利点とは別に、ＣＯＴＳマルチコアプロセッサーは、予測不可能な競合の時間的影響を受けるという課題がある。予測不可能な競合の結果、時間分割が危うくなる場合もあり得る。
【０００３】
[0003]予測不可能な競合は、複数のコアからの同じ共用ハードウェア資源へのアクセスによって引き起こされる。共用ハードウェア資源の例は、キャッシュ、メインメモリー、及び入出力（Ｉ／Ｏ）インターフェイスである。予測不可能な競合の結果として、控え目なタスクタイミングとなり、それに伴い、プロセッサー性能上不利になる。従って、ＣＯＴＳマルチコアプロセッサーの共用ハードウェア資源の時間的影響に取り組む、性能効率の良い技術を有する必要がある。
【０００４】
[0004]ＣＯＴＳマルチコアプロセッサーにおいて、キャッシュはハードウェア資源であり、その可用性はアプリケーションの性能に大幅に影響を与える。キャッシュがプロセッサーコア間で共有される場合、異なるコアにマッピングされるタスクは互いのキャッシュラインを無効にする場合もある。コアにまたがるキャッシュ無効化の結果、プロセッサー性能上不利になることもある。
【０００５】
[0005]コアにまたがるキャッシュ無効化を減らして、それぞれプロセッサー性能を増加させるために、各種のアプローチが開発されている。１つのアプローチでは、キャッシュ分割は、ＤＤＣ−ＩからのＤｅｏｓ  ＲＴＯＳの「メモリープール」と呼ばれる機構を介して提供され、これはどのメモリーページが各メモリープールに含まれるかについての精緻化されたコントロールを可能とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第８，０６９，３０８号
【特許文献２】米国公開第２０１５／０２０５７２４号
【非特許文献】
【０００７】
【非特許文献１】Ｉｎｔ’ｌ  Ｃｏｎｆ．  ｏｎ  Ｐａｒａｌｌｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｃｏｍｐｉｌａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ（ＰＡＣＴ），２０１２の会議録、３６７〜３７６頁のＬｉｕ他の、Ａ  ｓｏｆｔｗａｒｅ  ｍｅｍｏｒｙ  ｐａｒｔｉｔｉｏｎ  ａｐｐｒｏａｃｈ  ｆｏｒ  ｅｌｉｍｉｎａｔｉｎｇ  ｂａｎｋ−ｌｅｖｅｌ  ｉｎｔｅｒｅｆｅｒｅｎｃｅ  ｉｎ  ｍｕｌｔｉｃｏｒｅ  ｓｙｓｔｅｍｓ（マルチコアシステムにおけるバンクレベル干渉を除去するためのソフトウェアメモリー分割アプローチ）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
[0006]メモリープールの概念がキャッシュを分割するためにうまく適用されているにもかかわらず、メインメモリーにおける著しい干渉によって生じるＣＯＴＳマルチコアプロセッサーの大きな予測不可能な競合がまだあり、メインメモリーはダイナミックランダムアクセスメモリー（ＤＲＡＭ）であり得る。メインメモリーは、１つ又は複数のメモリーコントローラーの助けを借りてプロセッサーによってアクセスされる。
【０００９】
[0007]別のアプローチでは、メモリー管理ユニット（ＭＭＵ）を制御するために、Ｌｉｎｕｘ（登録商標）のカーネル拡張を使用してＤＲＡＭバンク及びキャッシュカラーリングが行われている。このアプローチは、キャッシュ及びメインメモリーの分割が相当な性能改善をもたらすことができることを示唆する。
【００１０】
[0008]従って、ＣＯＴＳマルチコアプロセッサーにおけるメモリー階層の、性能効率の良い分割を提供するという課題に対処する必要がある。
【課題を解決するための手段】
【００１１】
[0009]コンピューティングシステムは、少なくとも１つの処理ユニットと、少なくとも１つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも１つのメモリーコントローラーと、少なくとも１つのメモリーコントローラーを介して少なくとも１つの処理ユニットと動作上通信するメインメモリーとを含む。コンピューティングシステムのメモリー階層は少なくとも１つのキャッシュ、少なくとも１つのメモリーコントローラー、及びメインメモリーを含み、メモリー階層は複数のメモリープールに分けられる。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、各メモリーデバイスは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含む。複数のスレッドは、少なくとも１つの処理ユニット上で実行され、バンクアドレスビットを使用してメモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、ランクアドレスビットを使用して１つ又は複数のランクにアクセスするランク分割、又は、メモリーコントローラーインターリーブを使用するメモリーコントローラー分割を含む、１つ又は複数のメモリー分割技術に基づいて、メモリープールに割り当てられる。
【００１２】
[0010]本発明の特徴は、図面を参照した以下の記述から当業者に明らかになる。図面が典型的な実施形態だけを表しており、従って、範囲を制限するものとみなすべきではないことを理解した上で、本発明は、添付図面を用いることにより付加的な具体性及び詳細に関して記載されている。
【図面の簡単な説明】
【００１３】
【図１】[0011]メモリー分割によって実施することができる一実施形態による、マルチコアプロセッサーアーキテクチャーのブロック図である。
【図２Ａ】[0012]図１のマルチコアプロセッサーアーキテクチャーにおいて実装されるメモリー階層のブロック図である。
【図２Ｂ】[0013]図１のマルチコアプロセッサーアーキテクチャーにおいて実装することができる一実施形態による、デュアルインラインメモリーモジュールの複数のダイナミックランダムアクセスメモリー（ＤＲＡＭ）デバイスの典型的配置のブロック図である。
【図２Ｃ】[0014]図２Ｂのデュアルインラインメモリーモジュールにおいて実装することができる、ＤＲＡＭデバイスのアーキテクチャーのブロック図である。
【図３】[0015]図１のマルチコアプロセッサーアーキテクチャーにおいて実装することができる、ＤＲＡＭメモリーコントローラーの論理構造のブロック図である。
【図４】[0016]１つの実施形態による、コンピューティングシステムのメモリー分割のための方法のフローチャートである。
【図５】[0017]ＣＯＴＳマルチコアプロセッサーにおけるワーカー及びトラッシャープロセス繰返しのためのスレッドマッピング及び実行タイムラインのグラフ表現である。
【図６】[0018]非分割のＤＲＡＭ及びＤＲＡＭバンク分割の両方に対するワーカープロセスの実行時間を示すグラフである。
【発明を実施するための形態】
【００１４】
[0019]以下の詳述において、実施形態は充分詳細に記載されており、当業者は本発明を実施することができる。他の実施形態を、本発明の範囲を逸脱せずに利用することができることを理解すべきである。従って、以下の詳述は、限定的な意味で解釈すべきものではない。
【００１５】
[0020]メモリープールとともに実装される、コンピューティングシステムのためのメモリー分割が、本明細書において開示される。特に、本明細書のアプローチは、商用オフザシェルフ（ＣＯＴＳ）マルチコアプロセッサーシステムのメモリー階層の性能効率の良い分割を提供する。本明細書のアプローチにおいて、メモリープール概念は、特にダイナミックランダムアクセスメモリー（ＤＲＡＭ）デバイスでの用途に利用される。
【００１６】
[0021]本明細書のアプローチを適用することができるメモリー階層は、１つ又は複数のキャッシュ、１つ又は複数のメモリーコントローラー、及び１つ又は複数のメインメモリーを含む。本明細書において使用する場合、「メモリー分割」は、１つ又は複数のキャッシュ、１つ又は複数のメモリーコントローラー、又は１つ又は複数のメインメモリーの分割を指す。
【００１７】
[0022]本明細書のアプローチは、バンク分割、ランク分割、及び複数のＤＲＡＭコントローラーインターリーブを管理することを含むメモリー分割によってキャッシュ分割を強化するために用いることができる。メモリープールは、メモリーバンクを選択するアドレスビット、アクティブなメモリーランク、ランクビットの数及びインターリーブのタイプ、アクティブなメモリーコントローラーの数、インターリーブの粒状度及びタイプ、そして、任意に、キャッシュインデックスアドレスビットを含む各種の要因を考慮に入れることによって、メモリー分割のために実装される。
【００１８】
[0023]バンク分割、ランク分割及びメモリーコントローラー分割を含む、１つ又は複数のメモリー分割技術は従来のキャッシュ分割技術によって使用されて処理コアごとに実行時間サイクルを著しく減らすことができ、それによって、処理性能が大幅に増加する。
【００１９】
[0024]ＤＲＡＭバンクを選択するアドレスビットはアドレス空間において十分に高いので、既存のメモリープール実装において追加的な修正は必要とされない。その結果、本明細書のアプローチは、単にメモリープールの適当な構成（オフセット及びサイズ）を使用するだけで、メモリー階層の分割を適用することが可能である。
【００２０】
[0025]本明細書のメモリー分割技術は、アビオニクスコンピューターシステムを使用して複数の同時プロセスを実行する航空機に搭載されるアビオニクスプラットフォームなどの、アビオニクスアプリケーションで特に有利で有益である。加えて、本明細書のメモリー分割技術は、シングルコアプロセッサー及びマルチコアプロセッサーの両方に適用することができる。
【００２１】
[0026]本明細書のアプローチの更なる詳細は、図面を参照して後述する。
[0027]図１は、一実施例による、メモリー分割を実装することができるマルチコアプロセッサーアーキテクチャー１００を例示する。マルチコアプロセッサーアーキテクチャー１００は、ＣＯＴＳマルチコアプロセッサーユニット１１０、並びに１つ又は複数のキャッシュ１１４、１１６、１１８、１つ又は複数のメモリーコントローラー１２０及びＤＲＡＭなどの主記憶装置１３０を含むメモリー階層を一般に含む。
【００２２】
[0028]ＣＯＴＳマルチコアプロセッサーユニット１１０は、１つ又は複数のプロセッサークラスター１１２を含み、各プロセッサークラスター１１２は、１つ又は複数の中央処理装置（ＣＰＵ）コア（ＣＰＵ０、ＣＰＵ１、…ＣＰＵｋ）を含む。コアはそれぞれ、キャッシュ１１４などの専用のレベル１（Ｌ１）キャッシュ、及びキャッシュ１１６などの共用のレベル２（Ｌ２）キャッシュを有する。プロセッサークラスター１１２は、相互接続１１７を介してメモリー階層に動作上接続されている。相互接続１１７は、他の入出力インターフェイス１１９とプロセッサークラスター１１２との間の入出力接続を提供することもできる。
【００２３】
[0029]いくつかの実装において、キャッシュ１１８などの少なくとも１つのレベル３（Ｌ３）キャッシュが存在し、それは相互接続１１７とメモリー階層との間に位置する。Ｌ３キャッシュ１１８は、プラットフォームキャッシュとしてよく知られており、コアによるメモリーアクセスをバッファーする。Ｌ３キャッシュ１１８は、１つ又は複数のメモリーコントローラー１２０に動作上接続されており、メモリーコントローラー１２０がメインメモリー１３０へのアクセスの命令を出す。
【００２４】
[0030]主記憶装置１３０は、１つ又は複数のメモリーコントローラー１２０を介して１つ又は複数のプロセッサークラスター１１２に動作上接続されている。主記憶装置１３０は、デュアルインラインメモリーモジュール（ＤＩＭＭ）などの少なくとも１つのメモリーモジュール１３２を含む。主記憶装置１３０は、実行時にデータが格納されて、アクセスされる物理メモリーである。
【００２５】
[0031]ＤＲＡＭメモリーアーキテクチャーにおいて、各メモリーセル（単一のビット）は、小型コンデンサーによって実装される。時間が過ぎるにつれて、コンデンサーのチャージは弱るので、明示的にリフレッシュされないと記憶データは最終的に失われる。データロスを防止するために、追加ハードウェアが周期的に各メモリーセルの読込み及び書戻しを行い（すなわち、リフレッシュを実行し）、そして、コンデンサーチャージを元のレベルに戻す。ＤＲＡＭリフレッシュは自動的に行われ、ユーザーには見えない。
【００２６】
[0032]ＤＲＡＭメモリーアーキテクチャーは、メモリーコントローラー、ランク、及びバンクを含む３つのレベルの並列性を提供する。更に、ランクの数はバンクの数を定める。ＤＲＡＭメモリーアーキテクチャーのこれらのレベルについて、以下に述べる。
【００２７】
[0033]図２Ａは、図１のマルチコアプロセッサーアーキテクチャー１００に実装されるメモリー階層のブロック図である。メモリー階層は、１つ又は複数のキャッシュ１１４、１１６、１１８、１つ又は複数のメモリーコントローラー１２０、及びメインメモリー１３０（ＤＲＡＭ）を含み、それは１つ又は複数のＤＩＭＭなどの１つ又は複数のメモリーモジュール１３２を含むことができる。ＤＩＭＭはランクインターリーブを可能にし、それについては後述する。
【００２８】
[0034]図２Ｂは、一実施例による、ＤＩＭＭ２４０の典型的配置を示す。ＤＩＭＭ２４０は、典型的には２つのランク（例えば、ランク０、ランク１）で構成され、それらは回路基板２４２に接続されている。ランクは、チップセレクト信号によって明示的に選択される。各ランクは、一組のランクアドレスビットによって定められるランクアドレスを有する。ランクは、一組のＤＲＡＭデバイス２００から成る。ランク内の全てのＤＲＡＭデバイスは、アドレス、データ、及びコマンドバスを共有する。
【００２９】
[0035]図２Ｃは、一実施例による、ＤＩＭＭ２４０において実装することができる単一のＤＲＡＭデバイス２００のアーキテクチャーを表す。ＤＲＡＭデバイス２００は、一組のメモリーバンク２１０（例えば、バンク１からバンク８まで）を含み、各バンクは、付随する論理を備える行及び列のＤＲＡＭアレイ２１２を含む。各バンク２１０は、一組のバンクアドレスビットによって定められるバンクアドレスを有する。バンク２１０の各行は単一のメモリーページを含み、それはＤＲＡＭデバイス２００で最も小さいアドレス可能データ単位であり、典型的には４ｋＢに等しい。各ページは、開いているか又は閉じているかのいずれかであり得る。行バッファー２１４は、最も直近に開いたページを保持する。各バンク２１０はまた、行デコーダー２１６及び列デコーダー２１８を含む。
【００３０】
[0036]ＤＲＡＭデバイス２００は、３つの基本インターフェイスであるコマンド（ｃｍｄ）インターフェイス２２０、アドレス（ａｄｄｒ）インターフェイス２２２、及びデータインターフェイス２２４を有する。コマンドインターフェイス２２０は、命令デコーダー２２６と動作上通信して、読込み、書込み、又は、リフレッシュというメモリー操作のタイプを指示する。アドレスインターフェイス２２２は、行デコーダー２１６及び列デコーダー２１８と動作上通信する。データインターフェイスは、列デコーダー２１８と動作上通信する。リフレッシュカウンター２２８は、命令デコーダー２２６と行デコーダー２１６との間に動作上接続される。
【００３１】
[0037]図３は、ＤＲＡＭメモリーコントローラー３００の論理構造のブロック図であり、ＤＲＡＭメモリーコントローラー３００はプロセッサーユニットに実装することができる。ＤＲＡＭメモリーコントローラー３００は、Ｌ３キャッシュを介するなどして、ＣＰＵコアからメモリー要求を受信する（ブロック３１０）。メモリー要求はリクエストバッファー３２０に格納され、リクエストバッファー３２０は、メモリーバンク（例えば、バンク０、バンク１…バンク８）のそれぞれに対する各自の優先待ち行列３２２を含む。一旦複数のメモリー要求が優先待ち行列３２２に存在すると、メモリースケジューラー３３０が呼び出されて、それぞれの優先待ち行列３２２と通信するそれぞれのバンクスケジューラー３３２を使用してメモリー要求の１つを選択する。次いで、選択されたメモリー要求はチャネルスケジューラー３４０に送信される。チャネルスケジューラー３４０は、ＤＲＡＭアドレス及びコマンドバスと通信する。
【００３２】
[0038]ＤＲＡＭメモリーコントローラーによって、ユーザーは、リフレッシュレートなどのＤＲＡＭパラメーターを指定することができる。リフレッシュが進行する間、ＤＲＡＭデバイスは読出し書込み動作に一時的に利用できなくなる。ＤＲＡＭデバイスのページが同時に多数アクセスされる場合、ページ追出しが行バッファーに発生することがあり、メモリーアクセス時間が増加する結果となる。行バッファー追出しの緩和は、単一のバンクを各処理コアに割り当てることである。
【００３３】
[0039]多重ＣＰＵコアがメモリー要求を同時に送信している場合、チャネルスケジューラーの再順序付けが生じる可能性もある。複数のメモリーコントローラーの使用は、チャネルスケジューラーの再順序付けによって生じる干渉遅延を緩和することができる。
【００３４】
[0040]本明細書のアプローチは、キャッシュインデックスアドレスビット、ＤＲＡＭバンクを選択するためのアドレスビット、アクティブなメモリーランク、ランクビットの数及びインターリーブのタイプ、並びに、アクティブなメモリーコントローラーの数、インターリーブの粒状度及びタイプを考慮に入れることによって、メモリー分割のためのメモリープール概念を実装する。アプリケーションニーズに応じて、本明細書のアプローチは、メモリーアクセス分離の各種レベルを実現することが可能である。例えば、単一のメモリープールを１台のメモリーコントローラーに割り当てることができ、又は、単一のメモリープールを特定のランクの特定のバンクに分離することができる。一般に、メモリーアクセスのより厳しい分離の結果として、利用できるメモリープールの数が少なくなる。
【００３５】
[0041]図４は、本明細書のアプローチによるメモリー分割を実装する方法４００のフローチャートである。方法４００は、コンピューティングシステムのメインメモリーを複数のメモリープールに分けること（４１０）を含む。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有する１つ又は複数のランクに配置される、ＤＲＡＭデバイスなどの一組のメモリーデバイスを含むことができる。各メモリーデバイスは、各々、一組のバンクアドレスビットによって定められるバンクアドレスを有する１つ又は複数のバンクを含む。１つ又は複数のＣＰＵコアで実行される複数のスレッドは、１つ又は複数のメモリー分割技術に基づいてメモリープールに割り当てられ（ブロック４２０）、その分割技術は、バンク分割（ブロック４２２）、ランク分割（４２４）、又はメモリーコントローラー分割（４２６）を含む。加えて、これらのメモリー分割技術の１つ又は複数を、任意で、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定める従来のキャッシュ分割技術と連動して用いることができる（ブロック４３０）。
【００３６】
[0042]いくつかの実装において、スレッドの少なくともいくつかは同じメモリープールに割り当てられ、又は、スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てることができる。加えて、スレッドの少なくともいくつかは同じＣＰＵコアにマッピングすることができ、又は、スレッドの少なくともいくつかは異なるＣＰＵコアにそれぞれマッピングすることができる。更に、メモリープールの少なくともいくつかは、メモリーコントローラー、１つ又は複数のランクあるいは１つ又は複数のバンクに、１対１（１：１）の対応で、それぞれマッピングすることができる。あるいは、メモリープールの少なくともいくつかは、複数のメモリーコントローラー、１つ又は複数のランク、及び１つ又は複数のバンクに、１対多（１：Ｎ）の対応で、それぞれマッピングすることができる。
【００３７】
[0043]バンク分割技術はバンクアドレスビットを使用して、メインメモリーのメモリープールのサイズ及びパターンを定める。メモリープールは、バンクアドレスビット及びランクアドレスビットに関してメインメモリーにマッピングされる。この技術において、ＤＲＡＭバンク分割を使用して、行バッファー追出しに結果としてなるコア間でのバンク共有によって生じる遅延を回避し、最高約３０％の予想される性能の増加を提供することができる。
【００３８】
[0044]ランク分割技術は、ランクアドレスビットを使用してランクにアクセスし、そのため、ランクの数が多いほど利用できるバンクの数が多くなるという結果になる。
[0045]ＤＲＡＭデバイスのための典型的メモリーアドレスレイアウトは、表１に示される。
【００３９】
【表１】
2018136922.tif 000003
【００４０】
表１のアドレスレイアウトが示唆するように、メモリーバンク用の専用アドレスビットがある。
[0046]プロセッサーのドキュメンテーションが制限されており、アドレスレイアウトに関する情報が失われている場合、アドレスレイアウトを決定するために発見アルゴリズムが適用可能であり、例えば、Ｉｎｔ’ｌ  Ｃｏｎｆ．  ｏｎ  Ｐａｒａｌｌｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｃｏｍｐｉｌａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ（ＰＡＣＴ），２０１２の会議録、３６７〜３７６頁のＬｉｕ他の、Ａ  ｓｏｆｔｗａｒｅ  ｍｅｍｏｒｙ  ｐａｒｔｉｔｉｏｎ  ａｐｐｒｏａｃｈ  ｆｏｒ  ｅｌｉｍｉｎａｔｉｎｇ  ｂａｎｋ−ｌｅｖｅｌ  ｉｎｔｅｒｅｆｅｒｅｎｃｅ  ｉｎ  ｍｕｌｔｉｃｏｒｅ  ｓｙｓｔｅｍｓ（マルチコアシステムにおけるバンクレベル干渉を除去するためのソフトウェアメモリー分割アプローチ）により提案されたアルゴリズムがあり、その開示内容は、本明細書の一部を構成するものとして援用する。
【００４１】
[0047]メモリーコントローラー分割技術は３２ビットシステム上で実装することができ、メモリーコントローラーインターリーブを使用し、そして、それはインターリーブの粒状度及びタイプを考慮する。メモリーコントローラーインターリーブは、公平又は均等にメモリー要求を複数のメモリーコントローラーに分散するために用いることができ、あるいは、特定のメモリーコントローラーに完全にメモリー要求を分離するために用いることができる。６４ビットシステムにおいて、メモリーコントローラー分割は、全てのメモリーコントローラーをアクセスできるようにする一方でメモリーコントローラーインターリーブを無効にすることによって実施することができる。
【００４２】
[0048]キャッシュ分割技術が使用される場合、メモリープールはキャッシュインデックスアドレスビットに関してメインメモリーにマッピングされる。キャッシュ分割技術に関連した更なる詳細は、ＣＡＣＨＥ  ＰＯＯＬＩＮＧ  ＦＯＲ  ＣＯＭＰＵＴＩＮＧ  ＳＹＳＴＥＭＳ（コンピューティングシステムのためのキャッシュプーリング）と題する米国特許第８，０６９，３０８号において、そして、ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＯＦ  ＣＡＣＨＥ  ＰＡＲＴＩＴＩＯＮＩＮＧ  ＦＯＲ  ＰＲＯＣＥＳＳＯＲＳ  ＷＩＴＨ  ＬＩＭＩＴＥＤ  ＣＡＣＨＥＤ  ＭＥＭＯＲＹ  ＰＯＯＬＳ（メモリープールのキャッシュに制限のあるプロセッサーのためのキャッシュ分割のシステム及び方法）と題する、米国公開第２０１５／０２０５７２４号に記載されており、その開示の両方の内容は、本明細書の一部を構成するものとして援用する。
【００４３】
[0049]メモリーアドレスレイアウトに応じて、メモリープールの１：１（１対１）又は１：Ｎ（１対多）のマッピングは、キャッシュ、メモリーコントローラー、ランク、及びバンクの間で行うことができる。
【００４４】
[0050]実験的研究がＤＲＡＭバンク分割に関して行われて、その利点を示した。これらの研究は、ＤＤＣ−ＩからのＤｅｏｓリアルタイムオペレーティングシステム（ＲＴＯＳ）を使用して、ＣＯＴＳマルチコアプロセッサーで行われた。ＣＯＴＳマルチコアプロセッサーは、１２個の物理ＣＰＵを有し、各物理ＣＰＵは２つのハードウェアスレッドを有し、その結果として合計２４個の仮想ＣＰＵになる。各仮想ＣＰＵは、それ自身の、３２ＫＢのサイズの小さい命令及びデータＬ１キャッシュを有する。仮想ＣＰＵは、３つのクラスターにグループ化され、各クラスターが８つの仮想ＣＰＵを有する。各クラスターはそれ自身の２ＭＢのＬ２キャッシュを有する。全てのクラスターは、オンチップ相互接続に接続されている。ＤＲＡＭメモリーは３台のメモリーコントローラーにマッピングされ、各メモリーコントローラーは５１２ＫＢの専用のＬ３キャッシュ容量を有する。
【００４５】
[0051]ＤＲＡＭバンク分割の利点は、同時に同じ及び異なるＤＲＡＭバンクに誘発される一組のキャッシュを用いないメモリーアクセスによって示された。キャッシュを用いないメモリーアクセスが使用されるため、キャッシュの有無が測定された実行時間に影響を及ぼさないという仮定がなされる。それにもかかわらず、続く実験で、Ｌ３キャッシュ（プラットフォームキャッシュ）は無効にされる。行われる実験は、ワーカープロセス及びトラッシャープロセスの２つのプロセスに関するものであり、両方のプロセスが繰り返し呼び出される。
【００４６】
[0052]ワーカープロセスは、ライタースレッドとリーダースレッドとを含む２つのスレッドを有している。ライタースレッドは、予め定められたページ数を自身のメモリープールより大きなメモリーアレイへ書き込む。ライタースレッドが終了すると、リーダースレッドはページを読み込んで、メモリーアレイのチェックサムを計算する。ワーカープロセスの両方のスレッドは、同じメモリープールを共有する。単一スレッドの繰返し終了の時点で、ワーカースレッドからの全てのメモリー要求がキャッシュに登録されないことを保証するために、キャッシュは無効化される。
【００４７】
[0053]トラッシャープロセスは、複数のトラッシャースレッドを有する。トラッシャースレッドは、メモリーアレイに多くのページ数を連続的に書き込み、そのため、アクセスされるメモリーは、割当メモリープールと同じ大きさであるか、又はそれより大きい。従って、トラッシャープロセスは、メモリー階層においてキャッシュを用いない書込み及びストレスを連続的に実行することができる。トラッシャープロセスは、緩やかな使用を有効にして、ワーカープロセスと並列に動作する。トラッシャースレッドは、ワーカープロセススレッドが動作しているＣＰＵとは異なる形でＣＰＵにマッピングされる。
【００４８】
[0054]図５は、ワーカー及びトラッシャープロセス繰返しに対するスレッドマッピング及び実行タイムラインのグラフ表現である。ライター及びリーダーを含むワーカープロセススレッドは、ＣＰＵ０にマッピングされ、その一方で、トラッシャースレッドは同じクラスターの残りの７つのＣＰＵ（ＣＰＵ１からＣＰＵＮ）上で動作した。実行時間測定は、ライター及び／又はリーダータイミングに対して示される。
【００４９】
[0055]図６は、非分割ＤＲＡＭ及びＤＲＡＭバンク分割の両方に対するワーカープロセスの実行時間を示すグラフである。列挙された性能結果は、１００回のスレッドの繰返しにわたる、測定された最高、測定された最低、及び平均の実行時間に対するものである。メモリープールを有するＤＲＡＭバンク分割の利点を概説するために、非分割ＤＲＡＭを、ＤＲＡＭバンク分割と比較する。非分割ＤＲＡＭは、ワーカー及びリーダースレッドと同じメモリープールにトラッシャースレッドを配置することによって実装される。ＤＲＡＭバンク分割は、別々のメモリープールにトラッシャースレッドを配置することによって実装される。ワーカー及びトラッシャーメモリープールは、ＤＲＡＭバンクのために使用するアドレスビットを考慮することによって定められる。実験データが示すように、ＤＲＡＭバンク分割は処理コアごとに、非分割ＤＲＡＭに比べて約２０％実行時間サイクルを減らし、それによって、ＣＰＵ性能が更に２０％追加された。
【００５０】
[0056]追加の実験結果は、アプリケーションの操作上のデータセットが完全にキャッシュ常駐であることができるときに、キャッシュ分割が非分割キャッシュと比べて最高約６０％の性能改善を得られること（そして、キャッシュはコアにまたがる追出し／汚染から保護され得ること）を示唆している。キャッシュサイズは、大半のアプリケーションに対して１００％のキャッシュ常駐域をサポートするには少なすぎる場合が多いので、キャッシュ分割及びＤＲＡＭバンク分割の組合せによって、各アプリケーションに対する最悪ケースのメモリートランザクション回数の減少及び最悪ケースの実行の減少（キャッシュ分割による）、並びに、発生するそれらのメモリー処理に対する可能な最小限のＤＲＡＭアクセス時間（ＤＲＡＭバンク分割による）がもたらされる。
【００５１】
[0057]本明細書のシステム及び方法で使用するコンピューター又はプロセッサーは、当業者に知られているような、ソフトウェア、ファームウェア、ハードウェア又はそれらのいかなる適切な組合せも使用して実装することができる。例えば、限定するものではないが、ハードウェアコンポーネントは、１つ又は複数のマイクロプロセッサー、記憶素子、デジタル信号処理（ＤＳＰ）素子、インターフェイスカード、及び当技術分野で知られる他の標準部品を含むことができる。これらは、特別に設計された特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラム可能ゲートアレイ（ＦＰＧＡ）によって補うことができるか、又はそれに取り入れることができる。コンピューター又はプロセッサーは、本明細書の方法及びシステムで使用する各種のプロセスタスク、計算及び制御機能を実行するためのソフトウェアプログラム、ファームウェア又は他のコンピューター可読命令を有する機能を含むこともできる。
【００５２】
[0058]本方法は、プログラムモジュール又はコンポーネントなどのコンピューター実行可能命令によって行うことができ、それらは少なくとも１つのプロセッサーによって実行される。一般に、プログラムモジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造、アルゴリズムなどを含み、それらが特定のタスクを実行するか、又は特定のデータタイプを実装する。
【００５３】
[0059]本明細書において記載されている方法の動作において使用する各種のプロセスタスク、計算及び他のデータの生成を行うための命令は、ソフトウェア、ファームウェア、又は他のコンピューター可読であるかもしくはプロセッサー読取り可能な命令として実装することができる。これらの命令は、典型的には、コンピューター可読命令又はデータ構造の記憶のために用いるコンピューター可読媒体を含む任意の適切なコンピュータープログラム製品に記憶される。このようなコンピューター可読媒体は、汎用もしくは専用コンピューター又はプロセッサーによってアクセスすることができるいかなる利用可能な媒体、あるいはいかなるプログラム可能論理デバイスでもあり得る。
【００５４】
[0060]好適なコンピューター可読媒体には、磁気又は光学媒体などの記憶又はメモリー媒体が含まれ得る。例えば、記憶又はメモリー媒体は、従来型ハードディスク、コンパクトディスク読取り専用メモリー（ＣＤ−ＲＯＭ）、ＤＶＤ、ランダムアクセスメモリー（ＲＡＭ）（限定するものではないが、シンクロナスダイナミックランダムアクセスメモリー（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ）ＲＡＭ、ＲＡＭＢＵＳダイナミックＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、などを含む）などの揮発性又は不揮発性の媒体、読取り専用メモリー（ＲＯＭ）、電気的消去可能なプログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリー、ブルーレイディスクなどを含むことができる。上記の組合せもまた、コンピューター可読媒体の範囲内に含まれる。
例示実施形態
[0061]実施例１は、少なくとも１つの処理ユニットと、前記少なくとも１つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも１つのメモリーコントローラーと、前記少なくとも１つのメモリーコントローラーを介して前記少なくとも１つの処理ユニットと動作上通信するメインメモリーとを含むコンピューティングシステムを包含する。前記コンピューティングシステムのメモリー階層は少なくとも１つのキャッシュ、前記少なくとも１つのメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられる。前記メインメモリーは各々、一組のランクアドレスビットによって定められるランクアドレスを各々有するランクに分割される一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、各前記メモリーデバイスが各々、一組のバンクアドレスビットによって定められるバンクアドレスを有する１つ又は複数のバンクを含む。複数のスレッドは、前記少なくとも１つの処理ユニット上で実行され、前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、あるいはメモリーコントローラーインターリーブを使用するメモリーコントローラー分割を含む１つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる。
【００５５】
[0062]実施例２は、実施例１のコンピューティングシステムを包含し、前記メインメモリーはダイナミックランダムアクセスメモリー（ＤＲＡＭ）を含む。
[0063]実施例３は、実施例１から２のいずれかのコンピューティングシステムを包含し、前記スレッドはまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定める、キャッシュ分割技術に基づいて前記メモリープールに割り当てられる。
【００５６】
[0064]実施例４は、実施例１から３のいずれかのコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは同じメモリープールに割り当てられる。
[0065]実施例５は、実施例１から３のいずれかのコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てられる。
【００５７】
[0066]実施例６は、実施例１から５のいずれかのコンピューティングシステムを包含し、前記少なくとも１つの処理ユニットは１つ又は複数の中央処理装置（ＣＰＵ）コアを含む。
【００５８】
[0067]実施例７は、実施例６のコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは同じＣＰＵコアにマッピングされる。
[0068]実施例８は、実施例６のコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは異なるＣＰＵコアにそれぞれマッピングされる。
【００５９】
[0069]実施例９は、実施例１から８のいずれかのコンピューティングシステムを包含し、前記メモリープールの少なくともいくつかは、前記少なくとも１つのメモリーコントローラー、前記１つ又は複数のランク、あるいは前記１つ又は複数のバンクに、１対１（１：１）の対応でそれぞれマッピングされる。
【００６０】
[0070]実施例１０は、実施例１から８のいずれかのコンピューティングシステムを包含し、前記メモリープールの少なくともいくつかは、前記少なくとも１つのメモリーコントローラー、前記１つ又は複数のランク、及び前記１つ又は複数のバンクの複数に、１対多（１：Ｎ）の対応でそれぞれマッピングされる。
【００６１】
[0071]実施例１１は、マルチコアプロセッサーユニットであって、１つ又は複数のプロセッサークラスターであって、それぞれが複数の中央処理装置（ＣＰＵ）コアを含み、前記コアのそれぞれが専用レベルのファーストキャッシュ（ｆｉｒｓｔ  ｃａｃｈｅ）及び共用レベルのセカンドキャッシュ（ｓｅｃｏｎｄ  ｃａｃｈｅ）を有する、１つ又は複数のプロセッサークラスターと、前記１つ又は複数のプロセッサークラスターに動作上連結された相互接続と、前記相互接続を介して前記１つ又は複数のプロセッサークラスターと動作上通信する１つ又は複数のメモリーコントローラーとを含むマルチコアプロセッサーユニットを含む、アビオニクスコンピューターシステムを包含する。メインメモリーは、前記１つ又は複数のメモリーコントローラーを介して前記１つ又は複数のプロセッサークラスターと動作上通信する。前記アビオニクスコンピューターシステムのメモリー階層は前記ファースト又はセカンドキャッシュの少なくとも１つ、前記１つ又は複数のメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられる。前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のデュアルインラインメモリーモジュール（ＤＩＭＭ）を含み、各ランクは一組のダイナミックランダムアクセスメモリー（ＤＲＡＭ）デバイスを有し、前記ＤＲＡＭデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含む。複数のスレッドは、前記ＣＰＵコア上で実行される。前記スレッドは、前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、又は前記メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割を含む１つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる。前記アビオニクスコンピューターシステムは、航空機に搭載されるアビオニクスプラットフォームの一部として実装される。
【００６２】
[0072]実施例１２は、実施例１１のアビオニクスコンピューターシステムを包含し、前記スレッドの１つ又は複数はまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定めるキャッシュ分割技術に基づいて、前記メモリープールの１つ又は複数に割り当てられる。
【００６３】
[0073]実施例１３は、実施例１１から１２のいずれかのアビオニクスコンピューターシステムを含み、少なくとも、前記スレッドのいくつかは前記同じメモリープールに割り当てられる。
【００６４】
[0074]実施例１４は、実施例１１から１２のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てられる。
【００６５】
[0075]実施例１５は、実施例１１から１４のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは同じＣＰＵコアにマッピングされる。
【００６６】
[0076]実施例１６は、実施例１１から１４のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは異なるＣＰＵコアにそれぞれマッピングされる。
【００６７】
[0077]実施例１７は、実施例１１から１６のいずれかのアビオニクスコンピューターシステムを包含し、前記メモリープールの少なくともいくつかは、前記１つ又は複数のメモリーコントローラー、前記１つ又は複数のランク、又は前記１つ又は複数のバンクに、１対１（１：１）の対応でそれぞれマッピングされる。
【００６８】
[0078]実施例１８は、実施例１１から１６のいずれかのアビオニクスコンピューターシステムを包含し、前記メモリープールの少なくともいくつかは、前記１つ又は複数のメモリーコントローラーのうちの複数、前記１つ又は複数のランク、及び前記１つ又は複数のバンクに、１対多（１：Ｎ）対応でそれぞれマッピングされる。
【００６９】
[0079]実施例１９は、コンピューティングシステムを操作する方法を包含し、前記方法は、前記コンピューティングシステムのメモリー階層を複数のメモリープールに分けるステップであって、前記メモリー階層は、少なくとも１つのキャッシュ、少なくとも１つのメモリーコントローラー、及びメインメモリーを含み、前記メインメモリーは、それぞれが一組のランクアドレスビットによって定められるランクアドレスを有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する１つ又は複数のバンクを含む、ステップと、前記コンピューティングシステムの少なくとも１つの処理ユニット上で実行される、複数のスレッドのそれぞれを、前記バンクアドレスビットを使用して前記メモリープールのうち１つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記１つ又は複数のランクにアクセスするランク分割、又はメモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割を含む１つ又は複数のメモリー分割技術に基づいて、前記メモリープールの１つ又は複数に割り当てるステップとを含む。
【００７０】
[0080]実施例２０は、実施例１９の方法を包含し、前記スレッドの１つ又は複数はまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定めるキャッシュ分割技術に基づいて、前記メモリープールの１つ又は複数に割り当てられる。
【００７１】
[0081]本発明は、その本質的特徴を逸脱しない範囲で、他の特定の形で実施することができる。記載された実施形態は、全ての点において例示的なものであり限定的ではない、と考えるべきである。従って、本発明の範囲は、前述の説明よりもむしろ添付の特許請求の範囲によって示される。本請求項の等価の意味及び範囲の中で生じる全ての変更は、本請求項の範囲の中に包含されるべきである。
【符号の説明】
【００７２】
１１０  ＣＯＴＳマルチコアプロセッサー
１１４  キャッシュ
１１６  キャッシュ
１１７  相互接続
１１８  キャッシュ
１１９  入出力インターフェイス
１２０  メモリーコントローラー
１３０  メインメモリー
１３２  ＤＩＭＭ
２００  ＤＲＡＭデバイス
２１４  行バッファー
２１６  行デコーダー
２１８  列デコーダー
２２０  コマンド
２２２  アドレス
２２４  データ
２２６  コマンドデコーダー
２２８  リフレッシュカウンター
３２０  要求バッファー
３３０  メモリースケジューラー
３４０  チャネルスケジューラー
【図１】
2018136922.tif 000004
【図２Ａ】
2018136922.tif 000005
【図２Ｂ】
2018136922.tif 000006
【図２Ｃ】
2018136922.tif 000007
【図３】
2018136922.tif 000008
【図４】
2018136922.tif 000009
【図５】
2018136922.tif 000010
【図６】
2018136922.tif 000011
【外国語明細書】
2018136922000001.pdf