JP2018136922A - メモリープールを有するコンピューティングシステムのためのメモリー分割 - Google Patents

メモリープールを有するコンピューティングシステムのためのメモリー分割 Download PDF

Info

Publication number
JP2018136922A
JP2018136922A JP2017224258A JP2017224258A JP2018136922A JP 2018136922 A JP2018136922 A JP 2018136922A JP 2017224258 A JP2017224258 A JP 2017224258A JP 2017224258 A JP2017224258 A JP 2017224258A JP 2018136922 A JP2018136922 A JP 2018136922A
Authority
JP
Japan
Prior art keywords
memory
rank
cache
address bits
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017224258A
Other languages
English (en)
Other versions
JP7242170B2 (ja
Inventor
パヴェル・ザイコフ
Zaykov Pavel
ルーシー・マツソヴァ
Matusova Lucie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2018136922A publication Critical patent/JP2018136922A/ja
Application granted granted Critical
Publication of JP7242170B2 publication Critical patent/JP7242170B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】COTSマルチコアプロセッサーにおけるメモリー階層の、性能効率の良い分割を提供する。【解決手段】コンピューティングシステムは、少なくとも1つの処理ユニット110と、メモリーコントローラー120と、メモリーコントローラーを介して処理ユニットと通信するメインメモリー130とを備える。メモリー階層は、複数のメモリープールに分けられる。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる、一組のメモリーモジュールを含む。各ランクは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含む、一組のメモリーデバイスを有する。複数のスレッドは処理ユニット上で実行され、バンク分割、ランク分割、又はメモリーコントローラー分割を含む、1つ又は複数のメモリー分割技術に基づいてメモリープールに割り当てる。【選択図】図1

Description

[0001]アビオニクスシステムにおいて最も重要な要件の中の1つは、実行プロセスの時間及び空間の分割を確実にすることである。時間分割は、プロセス内のスレッドがプロセッサー時間の予め定められた部分を得ることを保証する技術である。プロセッサー時間の予め定められた部分がスレッド実行を完了するのに十分なことを確実にするために、通常、安全マージンが、測定された最悪ケース実行時間(WCET)の上に追加される。空間分割とは、プロセスが互いのデータを損なうのを防止する、メモリーアクセスに対するハードウェア強制の制限を指す。時間分割及び空間分割はリアルタイムオペレーティングシステム(RTOS)によって保証され、これは通常、商用オフザシェルフ(COTS)シングルコアプロセッサーで実行される。
[0002]アビオニクスシステムの複雑さ及び計算能力は常に増加しつつあり、その一方で、COTSシングルコアプロセッサーは旧式になっている。従って、新規なコンピューターアーキテクチャーを選択して、アビオニクスシステムのニーズを満たすことが必要である。利用できるCOTSマルチコアプロセッサーはその最善の候補のいくつかとなる傾向があるがは、これは、低いサイズ、重量及び電力(SWaP)特性と一緒になった高い性能上の能力のためである。利点とは別に、COTSマルチコアプロセッサーは、予測不可能な競合の時間的影響を受けるという課題がある。予測不可能な競合の結果、時間分割が危うくなる場合もあり得る。
[0003]予測不可能な競合は、複数のコアからの同じ共用ハードウェア資源へのアクセスによって引き起こされる。共用ハードウェア資源の例は、キャッシュ、メインメモリー、及び入出力(I/O)インターフェイスである。予測不可能な競合の結果として、控え目なタスクタイミングとなり、それに伴い、プロセッサー性能上不利になる。従って、COTSマルチコアプロセッサーの共用ハードウェア資源の時間的影響に取り組む、性能効率の良い技術を有する必要がある。
[0004]COTSマルチコアプロセッサーにおいて、キャッシュはハードウェア資源であり、その可用性はアプリケーションの性能に大幅に影響を与える。キャッシュがプロセッサーコア間で共有される場合、異なるコアにマッピングされるタスクは互いのキャッシュラインを無効にする場合もある。コアにまたがるキャッシュ無効化の結果、プロセッサー性能上不利になることもある。
[0005]コアにまたがるキャッシュ無効化を減らして、それぞれプロセッサー性能を増加させるために、各種のアプローチが開発されている。1つのアプローチでは、キャッシュ分割は、DDC−IからのDeos RTOSの「メモリープール」と呼ばれる機構を介して提供され、これはどのメモリーページが各メモリープールに含まれるかについての精緻化されたコントロールを可能とする。
米国特許第8,069,308号 米国公開第2015/0205724号
Int’l Conf. on Parallel Architectures and Compilation Techniques(PACT),2012の会議録、367〜376頁のLiu他の、A software memory partition approach for eliminating bank−level intereference in multicore systems(マルチコアシステムにおけるバンクレベル干渉を除去するためのソフトウェアメモリー分割アプローチ)
[0006]メモリープールの概念がキャッシュを分割するためにうまく適用されているにもかかわらず、メインメモリーにおける著しい干渉によって生じるCOTSマルチコアプロセッサーの大きな予測不可能な競合がまだあり、メインメモリーはダイナミックランダムアクセスメモリー(DRAM)であり得る。メインメモリーは、1つ又は複数のメモリーコントローラーの助けを借りてプロセッサーによってアクセスされる。
[0007]別のアプローチでは、メモリー管理ユニット(MMU)を制御するために、Linux(登録商標)のカーネル拡張を使用してDRAMバンク及びキャッシュカラーリングが行われている。このアプローチは、キャッシュ及びメインメモリーの分割が相当な性能改善をもたらすことができることを示唆する。
[0008]従って、COTSマルチコアプロセッサーにおけるメモリー階層の、性能効率の良い分割を提供するという課題に対処する必要がある。
[0009]コンピューティングシステムは、少なくとも1つの処理ユニットと、少なくとも1つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも1つのメモリーコントローラーと、少なくとも1つのメモリーコントローラーを介して少なくとも1つの処理ユニットと動作上通信するメインメモリーとを含む。コンピューティングシステムのメモリー階層は少なくとも1つのキャッシュ、少なくとも1つのメモリーコントローラー、及びメインメモリーを含み、メモリー階層は複数のメモリープールに分けられる。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、各メモリーデバイスは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含む。複数のスレッドは、少なくとも1つの処理ユニット上で実行され、バンクアドレスビットを使用してメモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、ランクアドレスビットを使用して1つ又は複数のランクにアクセスするランク分割、又は、メモリーコントローラーインターリーブを使用するメモリーコントローラー分割を含む、1つ又は複数のメモリー分割技術に基づいて、メモリープールに割り当てられる。
[0010]本発明の特徴は、図面を参照した以下の記述から当業者に明らかになる。図面が典型的な実施形態だけを表しており、従って、範囲を制限するものとみなすべきではないことを理解した上で、本発明は、添付図面を用いることにより付加的な具体性及び詳細に関して記載されている。
[0011]メモリー分割によって実施することができる一実施形態による、マルチコアプロセッサーアーキテクチャーのブロック図である。 [0012]図1のマルチコアプロセッサーアーキテクチャーにおいて実装されるメモリー階層のブロック図である。 [0013]図1のマルチコアプロセッサーアーキテクチャーにおいて実装することができる一実施形態による、デュアルインラインメモリーモジュールの複数のダイナミックランダムアクセスメモリー(DRAM)デバイスの典型的配置のブロック図である。 [0014]図2Bのデュアルインラインメモリーモジュールにおいて実装することができる、DRAMデバイスのアーキテクチャーのブロック図である。 [0015]図1のマルチコアプロセッサーアーキテクチャーにおいて実装することができる、DRAMメモリーコントローラーの論理構造のブロック図である。 [0016]1つの実施形態による、コンピューティングシステムのメモリー分割のための方法のフローチャートである。 [0017]COTSマルチコアプロセッサーにおけるワーカー及びトラッシャープロセス繰返しのためのスレッドマッピング及び実行タイムラインのグラフ表現である。 [0018]非分割のDRAM及びDRAMバンク分割の両方に対するワーカープロセスの実行時間を示すグラフである。
[0019]以下の詳述において、実施形態は充分詳細に記載されており、当業者は本発明を実施することができる。他の実施形態を、本発明の範囲を逸脱せずに利用することができることを理解すべきである。従って、以下の詳述は、限定的な意味で解釈すべきものではない。
[0020]メモリープールとともに実装される、コンピューティングシステムのためのメモリー分割が、本明細書において開示される。特に、本明細書のアプローチは、商用オフザシェルフ(COTS)マルチコアプロセッサーシステムのメモリー階層の性能効率の良い分割を提供する。本明細書のアプローチにおいて、メモリープール概念は、特にダイナミックランダムアクセスメモリー(DRAM)デバイスでの用途に利用される。
[0021]本明細書のアプローチを適用することができるメモリー階層は、1つ又は複数のキャッシュ、1つ又は複数のメモリーコントローラー、及び1つ又は複数のメインメモリーを含む。本明細書において使用する場合、「メモリー分割」は、1つ又は複数のキャッシュ、1つ又は複数のメモリーコントローラー、又は1つ又は複数のメインメモリーの分割を指す。
[0022]本明細書のアプローチは、バンク分割、ランク分割、及び複数のDRAMコントローラーインターリーブを管理することを含むメモリー分割によってキャッシュ分割を強化するために用いることができる。メモリープールは、メモリーバンクを選択するアドレスビット、アクティブなメモリーランク、ランクビットの数及びインターリーブのタイプ、アクティブなメモリーコントローラーの数、インターリーブの粒状度及びタイプ、そして、任意に、キャッシュインデックスアドレスビットを含む各種の要因を考慮に入れることによって、メモリー分割のために実装される。
[0023]バンク分割、ランク分割及びメモリーコントローラー分割を含む、1つ又は複数のメモリー分割技術は従来のキャッシュ分割技術によって使用されて処理コアごとに実行時間サイクルを著しく減らすことができ、それによって、処理性能が大幅に増加する。
[0024]DRAMバンクを選択するアドレスビットはアドレス空間において十分に高いので、既存のメモリープール実装において追加的な修正は必要とされない。その結果、本明細書のアプローチは、単にメモリープールの適当な構成(オフセット及びサイズ)を使用するだけで、メモリー階層の分割を適用することが可能である。
[0025]本明細書のメモリー分割技術は、アビオニクスコンピューターシステムを使用して複数の同時プロセスを実行する航空機に搭載されるアビオニクスプラットフォームなどの、アビオニクスアプリケーションで特に有利で有益である。加えて、本明細書のメモリー分割技術は、シングルコアプロセッサー及びマルチコアプロセッサーの両方に適用することができる。
[0026]本明細書のアプローチの更なる詳細は、図面を参照して後述する。
[0027]図1は、一実施例による、メモリー分割を実装することができるマルチコアプロセッサーアーキテクチャー100を例示する。マルチコアプロセッサーアーキテクチャー100は、COTSマルチコアプロセッサーユニット110、並びに1つ又は複数のキャッシュ114、116、118、1つ又は複数のメモリーコントローラー120及びDRAMなどの主記憶装置130を含むメモリー階層を一般に含む。
[0028]COTSマルチコアプロセッサーユニット110は、1つ又は複数のプロセッサークラスター112を含み、各プロセッサークラスター112は、1つ又は複数の中央処理装置(CPU)コア(CPU0、CPU1、…CPUk)を含む。コアはそれぞれ、キャッシュ114などの専用のレベル1(L1)キャッシュ、及びキャッシュ116などの共用のレベル2(L2)キャッシュを有する。プロセッサークラスター112は、相互接続117を介してメモリー階層に動作上接続されている。相互接続117は、他の入出力インターフェイス119とプロセッサークラスター112との間の入出力接続を提供することもできる。
[0029]いくつかの実装において、キャッシュ118などの少なくとも1つのレベル3(L3)キャッシュが存在し、それは相互接続117とメモリー階層との間に位置する。L3キャッシュ118は、プラットフォームキャッシュとしてよく知られており、コアによるメモリーアクセスをバッファーする。L3キャッシュ118は、1つ又は複数のメモリーコントローラー120に動作上接続されており、メモリーコントローラー120がメインメモリー130へのアクセスの命令を出す。
[0030]主記憶装置130は、1つ又は複数のメモリーコントローラー120を介して1つ又は複数のプロセッサークラスター112に動作上接続されている。主記憶装置130は、デュアルインラインメモリーモジュール(DIMM)などの少なくとも1つのメモリーモジュール132を含む。主記憶装置130は、実行時にデータが格納されて、アクセスされる物理メモリーである。
[0031]DRAMメモリーアーキテクチャーにおいて、各メモリーセル(単一のビット)は、小型コンデンサーによって実装される。時間が過ぎるにつれて、コンデンサーのチャージは弱るので、明示的にリフレッシュされないと記憶データは最終的に失われる。データロスを防止するために、追加ハードウェアが周期的に各メモリーセルの読込み及び書戻しを行い(すなわち、リフレッシュを実行し)、そして、コンデンサーチャージを元のレベルに戻す。DRAMリフレッシュは自動的に行われ、ユーザーには見えない。
[0032]DRAMメモリーアーキテクチャーは、メモリーコントローラー、ランク、及びバンクを含む3つのレベルの並列性を提供する。更に、ランクの数はバンクの数を定める。DRAMメモリーアーキテクチャーのこれらのレベルについて、以下に述べる。
[0033]図2Aは、図1のマルチコアプロセッサーアーキテクチャー100に実装されるメモリー階層のブロック図である。メモリー階層は、1つ又は複数のキャッシュ114、116、118、1つ又は複数のメモリーコントローラー120、及びメインメモリー130(DRAM)を含み、それは1つ又は複数のDIMMなどの1つ又は複数のメモリーモジュール132を含むことができる。DIMMはランクインターリーブを可能にし、それについては後述する。
[0034]図2Bは、一実施例による、DIMM240の典型的配置を示す。DIMM240は、典型的には2つのランク(例えば、ランク0、ランク1)で構成され、それらは回路基板242に接続されている。ランクは、チップセレクト信号によって明示的に選択される。各ランクは、一組のランクアドレスビットによって定められるランクアドレスを有する。ランクは、一組のDRAMデバイス200から成る。ランク内の全てのDRAMデバイスは、アドレス、データ、及びコマンドバスを共有する。
[0035]図2Cは、一実施例による、DIMM240において実装することができる単一のDRAMデバイス200のアーキテクチャーを表す。DRAMデバイス200は、一組のメモリーバンク210(例えば、バンク1からバンク8まで)を含み、各バンクは、付随する論理を備える行及び列のDRAMアレイ212を含む。各バンク210は、一組のバンクアドレスビットによって定められるバンクアドレスを有する。バンク210の各行は単一のメモリーページを含み、それはDRAMデバイス200で最も小さいアドレス可能データ単位であり、典型的には4kBに等しい。各ページは、開いているか又は閉じているかのいずれかであり得る。行バッファー214は、最も直近に開いたページを保持する。各バンク210はまた、行デコーダー216及び列デコーダー218を含む。
[0036]DRAMデバイス200は、3つの基本インターフェイスであるコマンド(cmd)インターフェイス220、アドレス(addr)インターフェイス222、及びデータインターフェイス224を有する。コマンドインターフェイス220は、命令デコーダー226と動作上通信して、読込み、書込み、又は、リフレッシュというメモリー操作のタイプを指示する。アドレスインターフェイス222は、行デコーダー216及び列デコーダー218と動作上通信する。データインターフェイスは、列デコーダー218と動作上通信する。リフレッシュカウンター228は、命令デコーダー226と行デコーダー216との間に動作上接続される。
[0037]図3は、DRAMメモリーコントローラー300の論理構造のブロック図であり、DRAMメモリーコントローラー300はプロセッサーユニットに実装することができる。DRAMメモリーコントローラー300は、L3キャッシュを介するなどして、CPUコアからメモリー要求を受信する(ブロック310)。メモリー要求はリクエストバッファー320に格納され、リクエストバッファー320は、メモリーバンク(例えば、バンク0、バンク1…バンク8)のそれぞれに対する各自の優先待ち行列322を含む。一旦複数のメモリー要求が優先待ち行列322に存在すると、メモリースケジューラー330が呼び出されて、それぞれの優先待ち行列322と通信するそれぞれのバンクスケジューラー332を使用してメモリー要求の1つを選択する。次いで、選択されたメモリー要求はチャネルスケジューラー340に送信される。チャネルスケジューラー340は、DRAMアドレス及びコマンドバスと通信する。
[0038]DRAMメモリーコントローラーによって、ユーザーは、リフレッシュレートなどのDRAMパラメーターを指定することができる。リフレッシュが進行する間、DRAMデバイスは読出し書込み動作に一時的に利用できなくなる。DRAMデバイスのページが同時に多数アクセスされる場合、ページ追出しが行バッファーに発生することがあり、メモリーアクセス時間が増加する結果となる。行バッファー追出しの緩和は、単一のバンクを各処理コアに割り当てることである。
[0039]多重CPUコアがメモリー要求を同時に送信している場合、チャネルスケジューラーの再順序付けが生じる可能性もある。複数のメモリーコントローラーの使用は、チャネルスケジューラーの再順序付けによって生じる干渉遅延を緩和することができる。
[0040]本明細書のアプローチは、キャッシュインデックスアドレスビット、DRAMバンクを選択するためのアドレスビット、アクティブなメモリーランク、ランクビットの数及びインターリーブのタイプ、並びに、アクティブなメモリーコントローラーの数、インターリーブの粒状度及びタイプを考慮に入れることによって、メモリー分割のためのメモリープール概念を実装する。アプリケーションニーズに応じて、本明細書のアプローチは、メモリーアクセス分離の各種レベルを実現することが可能である。例えば、単一のメモリープールを1台のメモリーコントローラーに割り当てることができ、又は、単一のメモリープールを特定のランクの特定のバンクに分離することができる。一般に、メモリーアクセスのより厳しい分離の結果として、利用できるメモリープールの数が少なくなる。
[0041]図4は、本明細書のアプローチによるメモリー分割を実装する方法400のフローチャートである。方法400は、コンピューティングシステムのメインメモリーを複数のメモリープールに分けること(410)を含む。メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有する1つ又は複数のランクに配置される、DRAMデバイスなどの一組のメモリーデバイスを含むことができる。各メモリーデバイスは、各々、一組のバンクアドレスビットによって定められるバンクアドレスを有する1つ又は複数のバンクを含む。1つ又は複数のCPUコアで実行される複数のスレッドは、1つ又は複数のメモリー分割技術に基づいてメモリープールに割り当てられ(ブロック420)、その分割技術は、バンク分割(ブロック422)、ランク分割(424)、又はメモリーコントローラー分割(426)を含む。加えて、これらのメモリー分割技術の1つ又は複数を、任意で、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定める従来のキャッシュ分割技術と連動して用いることができる(ブロック430)。
[0042]いくつかの実装において、スレッドの少なくともいくつかは同じメモリープールに割り当てられ、又は、スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てることができる。加えて、スレッドの少なくともいくつかは同じCPUコアにマッピングすることができ、又は、スレッドの少なくともいくつかは異なるCPUコアにそれぞれマッピングすることができる。更に、メモリープールの少なくともいくつかは、メモリーコントローラー、1つ又は複数のランクあるいは1つ又は複数のバンクに、1対1(1:1)の対応で、それぞれマッピングすることができる。あるいは、メモリープールの少なくともいくつかは、複数のメモリーコントローラー、1つ又は複数のランク、及び1つ又は複数のバンクに、1対多(1:N)の対応で、それぞれマッピングすることができる。
[0043]バンク分割技術はバンクアドレスビットを使用して、メインメモリーのメモリープールのサイズ及びパターンを定める。メモリープールは、バンクアドレスビット及びランクアドレスビットに関してメインメモリーにマッピングされる。この技術において、DRAMバンク分割を使用して、行バッファー追出しに結果としてなるコア間でのバンク共有によって生じる遅延を回避し、最高約30%の予想される性能の増加を提供することができる。
[0044]ランク分割技術は、ランクアドレスビットを使用してランクにアクセスし、そのため、ランクの数が多いほど利用できるバンクの数が多くなるという結果になる。
[0045]DRAMデバイスのための典型的メモリーアドレスレイアウトは、表1に示される。
Figure 2018136922
表1のアドレスレイアウトが示唆するように、メモリーバンク用の専用アドレスビットがある。
[0046]プロセッサーのドキュメンテーションが制限されており、アドレスレイアウトに関する情報が失われている場合、アドレスレイアウトを決定するために発見アルゴリズムが適用可能であり、例えば、Int’l Conf. on Parallel Architectures and Compilation Techniques(PACT),2012の会議録、367〜376頁のLiu他の、A software memory partition approach for eliminating bank−level intereference in multicore systems(マルチコアシステムにおけるバンクレベル干渉を除去するためのソフトウェアメモリー分割アプローチ)により提案されたアルゴリズムがあり、その開示内容は、本明細書の一部を構成するものとして援用する。
[0047]メモリーコントローラー分割技術は32ビットシステム上で実装することができ、メモリーコントローラーインターリーブを使用し、そして、それはインターリーブの粒状度及びタイプを考慮する。メモリーコントローラーインターリーブは、公平又は均等にメモリー要求を複数のメモリーコントローラーに分散するために用いることができ、あるいは、特定のメモリーコントローラーに完全にメモリー要求を分離するために用いることができる。64ビットシステムにおいて、メモリーコントローラー分割は、全てのメモリーコントローラーをアクセスできるようにする一方でメモリーコントローラーインターリーブを無効にすることによって実施することができる。
[0048]キャッシュ分割技術が使用される場合、メモリープールはキャッシュインデックスアドレスビットに関してメインメモリーにマッピングされる。キャッシュ分割技術に関連した更なる詳細は、CACHE POOLING FOR COMPUTING SYSTEMS(コンピューティングシステムのためのキャッシュプーリング)と題する米国特許第8,069,308号において、そして、SYSTEM AND METHOD OF CACHE PARTITIONING FOR PROCESSORS WITH LIMITED CACHED MEMORY POOLS(メモリープールのキャッシュに制限のあるプロセッサーのためのキャッシュ分割のシステム及び方法)と題する、米国公開第2015/0205724号に記載されており、その開示の両方の内容は、本明細書の一部を構成するものとして援用する。
[0049]メモリーアドレスレイアウトに応じて、メモリープールの1:1(1対1)又は1:N(1対多)のマッピングは、キャッシュ、メモリーコントローラー、ランク、及びバンクの間で行うことができる。
[0050]実験的研究がDRAMバンク分割に関して行われて、その利点を示した。これらの研究は、DDC−IからのDeosリアルタイムオペレーティングシステム(RTOS)を使用して、COTSマルチコアプロセッサーで行われた。COTSマルチコアプロセッサーは、12個の物理CPUを有し、各物理CPUは2つのハードウェアスレッドを有し、その結果として合計24個の仮想CPUになる。各仮想CPUは、それ自身の、32KBのサイズの小さい命令及びデータL1キャッシュを有する。仮想CPUは、3つのクラスターにグループ化され、各クラスターが8つの仮想CPUを有する。各クラスターはそれ自身の2MBのL2キャッシュを有する。全てのクラスターは、オンチップ相互接続に接続されている。DRAMメモリーは3台のメモリーコントローラーにマッピングされ、各メモリーコントローラーは512KBの専用のL3キャッシュ容量を有する。
[0051]DRAMバンク分割の利点は、同時に同じ及び異なるDRAMバンクに誘発される一組のキャッシュを用いないメモリーアクセスによって示された。キャッシュを用いないメモリーアクセスが使用されるため、キャッシュの有無が測定された実行時間に影響を及ぼさないという仮定がなされる。それにもかかわらず、続く実験で、L3キャッシュ(プラットフォームキャッシュ)は無効にされる。行われる実験は、ワーカープロセス及びトラッシャープロセスの2つのプロセスに関するものであり、両方のプロセスが繰り返し呼び出される。
[0052]ワーカープロセスは、ライタースレッドとリーダースレッドとを含む2つのスレッドを有している。ライタースレッドは、予め定められたページ数を自身のメモリープールより大きなメモリーアレイへ書き込む。ライタースレッドが終了すると、リーダースレッドはページを読み込んで、メモリーアレイのチェックサムを計算する。ワーカープロセスの両方のスレッドは、同じメモリープールを共有する。単一スレッドの繰返し終了の時点で、ワーカースレッドからの全てのメモリー要求がキャッシュに登録されないことを保証するために、キャッシュは無効化される。
[0053]トラッシャープロセスは、複数のトラッシャースレッドを有する。トラッシャースレッドは、メモリーアレイに多くのページ数を連続的に書き込み、そのため、アクセスされるメモリーは、割当メモリープールと同じ大きさであるか、又はそれより大きい。従って、トラッシャープロセスは、メモリー階層においてキャッシュを用いない書込み及びストレスを連続的に実行することができる。トラッシャープロセスは、緩やかな使用を有効にして、ワーカープロセスと並列に動作する。トラッシャースレッドは、ワーカープロセススレッドが動作しているCPUとは異なる形でCPUにマッピングされる。
[0054]図5は、ワーカー及びトラッシャープロセス繰返しに対するスレッドマッピング及び実行タイムラインのグラフ表現である。ライター及びリーダーを含むワーカープロセススレッドは、CPU0にマッピングされ、その一方で、トラッシャースレッドは同じクラスターの残りの7つのCPU(CPU1からCPUN)上で動作した。実行時間測定は、ライター及び/又はリーダータイミングに対して示される。
[0055]図6は、非分割DRAM及びDRAMバンク分割の両方に対するワーカープロセスの実行時間を示すグラフである。列挙された性能結果は、100回のスレッドの繰返しにわたる、測定された最高、測定された最低、及び平均の実行時間に対するものである。メモリープールを有するDRAMバンク分割の利点を概説するために、非分割DRAMを、DRAMバンク分割と比較する。非分割DRAMは、ワーカー及びリーダースレッドと同じメモリープールにトラッシャースレッドを配置することによって実装される。DRAMバンク分割は、別々のメモリープールにトラッシャースレッドを配置することによって実装される。ワーカー及びトラッシャーメモリープールは、DRAMバンクのために使用するアドレスビットを考慮することによって定められる。実験データが示すように、DRAMバンク分割は処理コアごとに、非分割DRAMに比べて約20%実行時間サイクルを減らし、それによって、CPU性能が更に20%追加された。
[0056]追加の実験結果は、アプリケーションの操作上のデータセットが完全にキャッシュ常駐であることができるときに、キャッシュ分割が非分割キャッシュと比べて最高約60%の性能改善を得られること(そして、キャッシュはコアにまたがる追出し/汚染から保護され得ること)を示唆している。キャッシュサイズは、大半のアプリケーションに対して100%のキャッシュ常駐域をサポートするには少なすぎる場合が多いので、キャッシュ分割及びDRAMバンク分割の組合せによって、各アプリケーションに対する最悪ケースのメモリートランザクション回数の減少及び最悪ケースの実行の減少(キャッシュ分割による)、並びに、発生するそれらのメモリー処理に対する可能な最小限のDRAMアクセス時間(DRAMバンク分割による)がもたらされる。
[0057]本明細書のシステム及び方法で使用するコンピューター又はプロセッサーは、当業者に知られているような、ソフトウェア、ファームウェア、ハードウェア又はそれらのいかなる適切な組合せも使用して実装することができる。例えば、限定するものではないが、ハードウェアコンポーネントは、1つ又は複数のマイクロプロセッサー、記憶素子、デジタル信号処理(DSP)素子、インターフェイスカード、及び当技術分野で知られる他の標準部品を含むことができる。これらは、特別に設計された特定用途向け集積回路(ASIC)又はフィールドプログラム可能ゲートアレイ(FPGA)によって補うことができるか、又はそれに取り入れることができる。コンピューター又はプロセッサーは、本明細書の方法及びシステムで使用する各種のプロセスタスク、計算及び制御機能を実行するためのソフトウェアプログラム、ファームウェア又は他のコンピューター可読命令を有する機能を含むこともできる。
[0058]本方法は、プログラムモジュール又はコンポーネントなどのコンピューター実行可能命令によって行うことができ、それらは少なくとも1つのプロセッサーによって実行される。一般に、プログラムモジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造、アルゴリズムなどを含み、それらが特定のタスクを実行するか、又は特定のデータタイプを実装する。
[0059]本明細書において記載されている方法の動作において使用する各種のプロセスタスク、計算及び他のデータの生成を行うための命令は、ソフトウェア、ファームウェア、又は他のコンピューター可読であるかもしくはプロセッサー読取り可能な命令として実装することができる。これらの命令は、典型的には、コンピューター可読命令又はデータ構造の記憶のために用いるコンピューター可読媒体を含む任意の適切なコンピュータープログラム製品に記憶される。このようなコンピューター可読媒体は、汎用もしくは専用コンピューター又はプロセッサーによってアクセスすることができるいかなる利用可能な媒体、あるいはいかなるプログラム可能論理デバイスでもあり得る。
[0060]好適なコンピューター可読媒体には、磁気又は光学媒体などの記憶又はメモリー媒体が含まれ得る。例えば、記憶又はメモリー媒体は、従来型ハードディスク、コンパクトディスク読取り専用メモリー(CD−ROM)、DVD、ランダムアクセスメモリー(RAM)(限定するものではないが、シンクロナスダイナミックランダムアクセスメモリー(SDRAM)、ダブルデータレート(DDR)RAM、RAMBUSダイナミックRAM(RDRAM)、スタティックRAM(SRAM)、などを含む)などの揮発性又は不揮発性の媒体、読取り専用メモリー(ROM)、電気的消去可能なプログラム可能ROM(EEPROM)、フラッシュメモリー、ブルーレイディスクなどを含むことができる。上記の組合せもまた、コンピューター可読媒体の範囲内に含まれる。
例示実施形態
[0061]実施例1は、少なくとも1つの処理ユニットと、前記少なくとも1つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも1つのメモリーコントローラーと、前記少なくとも1つのメモリーコントローラーを介して前記少なくとも1つの処理ユニットと動作上通信するメインメモリーとを含むコンピューティングシステムを包含する。前記コンピューティングシステムのメモリー階層は少なくとも1つのキャッシュ、前記少なくとも1つのメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられる。前記メインメモリーは各々、一組のランクアドレスビットによって定められるランクアドレスを各々有するランクに分割される一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、各前記メモリーデバイスが各々、一組のバンクアドレスビットによって定められるバンクアドレスを有する1つ又は複数のバンクを含む。複数のスレッドは、前記少なくとも1つの処理ユニット上で実行され、前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、あるいはメモリーコントローラーインターリーブを使用するメモリーコントローラー分割を含む1つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる。
[0062]実施例2は、実施例1のコンピューティングシステムを包含し、前記メインメモリーはダイナミックランダムアクセスメモリー(DRAM)を含む。
[0063]実施例3は、実施例1から2のいずれかのコンピューティングシステムを包含し、前記スレッドはまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定める、キャッシュ分割技術に基づいて前記メモリープールに割り当てられる。
[0064]実施例4は、実施例1から3のいずれかのコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは同じメモリープールに割り当てられる。
[0065]実施例5は、実施例1から3のいずれかのコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てられる。
[0066]実施例6は、実施例1から5のいずれかのコンピューティングシステムを包含し、前記少なくとも1つの処理ユニットは1つ又は複数の中央処理装置(CPU)コアを含む。
[0067]実施例7は、実施例6のコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは同じCPUコアにマッピングされる。
[0068]実施例8は、実施例6のコンピューティングシステムを包含し、前記スレッドの少なくともいくつかは異なるCPUコアにそれぞれマッピングされる。
[0069]実施例9は、実施例1から8のいずれかのコンピューティングシステムを包含し、前記メモリープールの少なくともいくつかは、前記少なくとも1つのメモリーコントローラー、前記1つ又は複数のランク、あるいは前記1つ又は複数のバンクに、1対1(1:1)の対応でそれぞれマッピングされる。
[0070]実施例10は、実施例1から8のいずれかのコンピューティングシステムを包含し、前記メモリープールの少なくともいくつかは、前記少なくとも1つのメモリーコントローラー、前記1つ又は複数のランク、及び前記1つ又は複数のバンクの複数に、1対多(1:N)の対応でそれぞれマッピングされる。
[0071]実施例11は、マルチコアプロセッサーユニットであって、1つ又は複数のプロセッサークラスターであって、それぞれが複数の中央処理装置(CPU)コアを含み、前記コアのそれぞれが専用レベルのファーストキャッシュ(first cache)及び共用レベルのセカンドキャッシュ(second cache)を有する、1つ又は複数のプロセッサークラスターと、前記1つ又は複数のプロセッサークラスターに動作上連結された相互接続と、前記相互接続を介して前記1つ又は複数のプロセッサークラスターと動作上通信する1つ又は複数のメモリーコントローラーとを含むマルチコアプロセッサーユニットを含む、アビオニクスコンピューターシステムを包含する。メインメモリーは、前記1つ又は複数のメモリーコントローラーを介して前記1つ又は複数のプロセッサークラスターと動作上通信する。前記アビオニクスコンピューターシステムのメモリー階層は前記ファースト又はセカンドキャッシュの少なくとも1つ、前記1つ又は複数のメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられる。前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のデュアルインラインメモリーモジュール(DIMM)を含み、各ランクは一組のダイナミックランダムアクセスメモリー(DRAM)デバイスを有し、前記DRAMデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含む。複数のスレッドは、前記CPUコア上で実行される。前記スレッドは、前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、又は前記メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割を含む1つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる。前記アビオニクスコンピューターシステムは、航空機に搭載されるアビオニクスプラットフォームの一部として実装される。
[0072]実施例12は、実施例11のアビオニクスコンピューターシステムを包含し、前記スレッドの1つ又は複数はまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定めるキャッシュ分割技術に基づいて、前記メモリープールの1つ又は複数に割り当てられる。
[0073]実施例13は、実施例11から12のいずれかのアビオニクスコンピューターシステムを含み、少なくとも、前記スレッドのいくつかは前記同じメモリープールに割り当てられる。
[0074]実施例14は、実施例11から12のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは異なるメモリープールにそれぞれ割り当てられる。
[0075]実施例15は、実施例11から14のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは同じCPUコアにマッピングされる。
[0076]実施例16は、実施例11から14のいずれかのアビオニクスコンピューターシステムを包含し、前記スレッドの少なくともいくつかは異なるCPUコアにそれぞれマッピングされる。
[0077]実施例17は、実施例11から16のいずれかのアビオニクスコンピューターシステムを包含し、前記メモリープールの少なくともいくつかは、前記1つ又は複数のメモリーコントローラー、前記1つ又は複数のランク、又は前記1つ又は複数のバンクに、1対1(1:1)の対応でそれぞれマッピングされる。
[0078]実施例18は、実施例11から16のいずれかのアビオニクスコンピューターシステムを包含し、前記メモリープールの少なくともいくつかは、前記1つ又は複数のメモリーコントローラーのうちの複数、前記1つ又は複数のランク、及び前記1つ又は複数のバンクに、1対多(1:N)対応でそれぞれマッピングされる。
[0079]実施例19は、コンピューティングシステムを操作する方法を包含し、前記方法は、前記コンピューティングシステムのメモリー階層を複数のメモリープールに分けるステップであって、前記メモリー階層は、少なくとも1つのキャッシュ、少なくとも1つのメモリーコントローラー、及びメインメモリーを含み、前記メインメモリーは、それぞれが一組のランクアドレスビットによって定められるランクアドレスを有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含む、ステップと、前記コンピューティングシステムの少なくとも1つの処理ユニット上で実行される、複数のスレッドのそれぞれを、前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、又はメモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割を含む1つ又は複数のメモリー分割技術に基づいて、前記メモリープールの1つ又は複数に割り当てるステップとを含む。
[0080]実施例20は、実施例19の方法を包含し、前記スレッドの1つ又は複数はまた、キャッシュインデックスアドレスビットを使用してキャッシュ分割のサイズ及び数を定めるキャッシュ分割技術に基づいて、前記メモリープールの1つ又は複数に割り当てられる。
[0081]本発明は、その本質的特徴を逸脱しない範囲で、他の特定の形で実施することができる。記載された実施形態は、全ての点において例示的なものであり限定的ではない、と考えるべきである。従って、本発明の範囲は、前述の説明よりもむしろ添付の特許請求の範囲によって示される。本請求項の等価の意味及び範囲の中で生じる全ての変更は、本請求項の範囲の中に包含されるべきである。
110 COTSマルチコアプロセッサー
114 キャッシュ
116 キャッシュ
117 相互接続
118 キャッシュ
119 入出力インターフェイス
120 メモリーコントローラー
130 メインメモリー
132 DIMM
200 DRAMデバイス
214 行バッファー
216 行デコーダー
218 列デコーダー
220 コマンド
222 アドレス
224 データ
226 コマンドデコーダー
228 リフレッシュカウンター
320 要求バッファー
330 メモリースケジューラー
340 チャネルスケジューラー

Claims (3)

  1. コンピューティングシステムであって、
    少なくとも1つの処理ユニットと、
    前記少なくとも1つの処理ユニットと動作上通信する、キャッシュ有り又は無しの、少なくとも1つのメモリーコントローラーと、
    前記少なくとも1つのメモリーコントローラーを介して前記少なくとも1つの処理ユニットと動作上通信するメインメモリーと
    を備え、
    前記コンピューティングシステムのメモリー階層は、少なくとも1つのキャッシュ、前記少なくとも1つのメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられ、
    前記メインメモリーは、それぞれが一組のランクアドレスビットによって定められるランクアドレスを有するランクに分割される一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含み、
    複数のスレッドは、前記少なくとも1つの処理ユニットで実行され、
    前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、
    前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、あるいは
    メモリーコントローラーインターリーブを使用するメモリーコントローラー分割
    を含む1つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられる、
    コンピューティングシステム。
  2. アビオニクスコンピューターシステムであって、
    マルチコアプロセッサーユニットであって、
    1つ又は複数のプロセッサークラスターであって、それぞれが複数の中央処理装置(CPU)コアを含み、前記コアのそれぞれが専用レベルのファーストキャッシュ及び共用レベルのセカンドキャッシュを有する、1つ又は複数のプロセッサークラスターと、
    前記1つ又は複数のプロセッサークラスターに動作上連結された相互接続と、
    前記相互接続を介して前記1つ又は複数のプロセッサークラスターと動作上通信する1つ又は複数のメモリーコントローラーと
    を含むマルチコアプロセッサーユニットと、
    前記1つ又は複数のメモリーコントローラーを介して前記1つ又は複数のプロセッサークラスターと動作上通信するメインメモリーと
    を備え、
    前記アビオニクスコンピューターシステムのメモリー階層は、前記ファースト又はセカンドキャッシュの少なくとも1つ、前記1つ又は複数のメモリーコントローラー、及び前記メインメモリーを含み、前記メモリー階層は複数のメモリープールに分けられ、
    前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のデュアルインラインメモリーモジュール(DIMM)を含み、各ランクは一組のダイナミックランダムアクセスメモリー(DRAM)デバイスを有し、前記DRAMデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含み、
    複数のスレッドは前記CPUコア上で実行され、前記スレッドは、
    前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、
    前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、あるいは
    メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割
    を含む1つ又は複数のメモリー分割技術に基づいて、前記メモリープールに割り当てられ、
    前記アビオニクスコンピューターシステムは、航空機に搭載されるアビオニクスプラットフォームの一部として実装される、
    アビオニクスコンピューターシステム。
  3. コンピューティングシステムを操作する方法であって、
    前記コンピューティングシステムのメモリー階層を複数のメモリープールに分けるステップであって、前記メモリー階層は、少なくとも1つのキャッシュ、少なくとも1つのメモリーコントローラー、及びメインメモリーを含み、
    前記メインメモリーは、一組のランクアドレスビットによって定められるランクアドレスをそれぞれ有するランクに分けられる一組のメモリーモジュールを含み、各ランクは一組のメモリーデバイスを有し、前記メモリーデバイスのそれぞれは、一組のバンクアドレスビットによって定められるバンクアドレスをそれぞれ有する1つ又は複数のバンクを含む、
    ステップと、
    前記コンピューティングシステムの少なくとも1つの処理ユニット上で実行される、複数のスレッドのそれぞれを、
    前記バンクアドレスビットを使用して前記メモリープールのうち1つ又は複数のサイズ及びパターンを定めるバンク分割、
    前記ランクアドレスビットを使用して前記1つ又は複数のランクにアクセスするランク分割、あるいは
    メモリーコントローラーインターリーブを使用して、前記メモリー要求を複数のメモリーコントローラーに公平に分散するか、又は前記メモリー要求を特定のメモリーコントローラーに完全に分離するメモリーコントローラー分割
    を含む、1つ又は複数のメモリー分割技術に基づいて、前記メモリープールの1つ又は複数に割り当てるステップと
    を含む方法。
JP2017224258A 2017-02-23 2017-11-22 メモリープールを有するコンピューティングシステムのためのメモリー分割 Active JP7242170B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/440,242 US10515017B2 (en) 2017-02-23 2017-02-23 Memory partitioning for a computing system with memory pools
US15/440,242 2017-02-23

Publications (2)

Publication Number Publication Date
JP2018136922A true JP2018136922A (ja) 2018-08-30
JP7242170B2 JP7242170B2 (ja) 2023-03-20

Family

ID=61249528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017224258A Active JP7242170B2 (ja) 2017-02-23 2017-11-22 メモリープールを有するコンピューティングシステムのためのメモリー分割

Country Status (3)

Country Link
US (1) US10515017B2 (ja)
EP (1) EP3367246B1 (ja)
JP (1) JP7242170B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515017B2 (en) * 2017-02-23 2019-12-24 Honeywell International Inc. Memory partitioning for a computing system with memory pools
US10366007B2 (en) 2017-12-11 2019-07-30 Honeywell International Inc. Apparatuses and methods for determining efficient memory partitioning
US11847074B2 (en) * 2020-11-02 2023-12-19 Honeywell International Inc. Input/output device operational modes for a system with memory pools
US20220206839A1 (en) * 2020-12-28 2022-06-30 Advanced Micro Devices, Inc. Address mapping-aware tasking mechanism

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005613A (ja) * 2002-05-15 2004-01-08 M-Systems Flash Disk Pioneers Ltd 専用フラッシュコントローラを使用してフラッシュベースストレージシステムの性能を改善するための方法
US20110040947A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Memory Management and Efficient Data Processing
JP2014038461A (ja) * 2012-08-15 2014-02-27 Fujitsu Ltd メモリ制御装置、情報処理装置およびメモリ制御装置の制御方法
US20150169445A1 (en) * 2013-12-12 2015-06-18 International Business Machines Corporation Virtual grouping of memory
US20150205724A1 (en) * 2014-01-20 2015-07-23 Honeywell International Inc. System and method of cache partitioning for processors with limited cached memory pools

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4265850B2 (ja) 2000-01-17 2009-05-20 富士通株式会社 移動体交換機、ホームメモリ・ノード装置および関門交換機
US20020069317A1 (en) * 2000-12-01 2002-06-06 Chow Yan Chiew E-RAID system and method of operating the same
US7783852B2 (en) 2003-11-26 2010-08-24 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
US8013197B2 (en) * 2005-02-18 2011-09-06 Synfuels International, Inc. Absorption and conversion of acetylenic compounds
US8438328B2 (en) * 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8825965B2 (en) * 2008-01-08 2014-09-02 Cisco Technology, Inc. System and methods for memory expansion
US8069308B2 (en) * 2008-02-13 2011-11-29 Honeywell International Inc. Cache pooling for computing systems
US8423717B2 (en) 2009-12-02 2013-04-16 Honeywell International Inc. Multi-core processing cache image management
US8904154B2 (en) * 2010-04-16 2014-12-02 Massachusetts Institute Of Technology Execution migration
US9563597B2 (en) * 2012-03-19 2017-02-07 Rambus Inc. High capacity memory systems with inter-rank skew tolerance
US8943287B1 (en) 2012-07-17 2015-01-27 Rockwell Collins, Inc. Multi-core processor system configured to constrain access rate from memory
CN103678155B (zh) 2012-09-19 2016-12-21 华为技术有限公司 内存地址映射处理方法及多核处理器
US9612868B2 (en) 2012-10-31 2017-04-04 Honeywell International Inc. Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors
US9256380B1 (en) * 2013-03-12 2016-02-09 Xpliant, Inc. Apparatus and method for packet memory datapath processing in high bandwidth packet processing devices
US9251081B2 (en) * 2013-08-01 2016-02-02 Advanced Micro Devices, Inc. Management of caches
FR3010201B1 (fr) 2013-09-03 2016-12-23 Thales Sa Calculateur comprenant un processeur multicoeur et procede de controle d'un tel calculateur
CN104572493A (zh) 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
CN105068940B (zh) 2015-07-28 2018-07-31 北京工业大学 一种基于Bank划分的自适应页策略确定方法
US20170109090A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
US10366005B2 (en) * 2016-05-20 2019-07-30 Nxp Usa, Inc. Memory interleave system and method therefor
US20180188976A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Increasing read pending queue capacity to increase memory bandwidth
US10515017B2 (en) * 2017-02-23 2019-12-24 Honeywell International Inc. Memory partitioning for a computing system with memory pools

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005613A (ja) * 2002-05-15 2004-01-08 M-Systems Flash Disk Pioneers Ltd 専用フラッシュコントローラを使用してフラッシュベースストレージシステムの性能を改善するための方法
US20110040947A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Memory Management and Efficient Data Processing
JP2013502016A (ja) * 2009-08-13 2013-01-17 クゥアルコム・インコーポレイテッド メモリ管理および効率的なデータ処理のための装置および方法
JP2014038461A (ja) * 2012-08-15 2014-02-27 Fujitsu Ltd メモリ制御装置、情報処理装置およびメモリ制御装置の制御方法
US20150169445A1 (en) * 2013-12-12 2015-06-18 International Business Machines Corporation Virtual grouping of memory
US20160357459A1 (en) * 2013-12-12 2016-12-08 International Business Machines Corporation Virtual grouping of memory
US20150205724A1 (en) * 2014-01-20 2015-07-23 Honeywell International Inc. System and method of cache partitioning for processors with limited cached memory pools

Also Published As

Publication number Publication date
US20180239709A1 (en) 2018-08-23
EP3367246B1 (en) 2021-08-25
EP3367246A1 (en) 2018-08-29
US10515017B2 (en) 2019-12-24
JP7242170B2 (ja) 2023-03-20

Similar Documents

Publication Publication Date Title
Lee et al. Decoupled direct memory access: Isolating CPU and IO traffic by leveraging a dual-data-port DRAM
US11625321B2 (en) Apparatuses and methods for memory address translation during block migration using depth mapping table based on mapping state
Dong et al. Simple but effective heterogeneous main memory with on-chip memory controller support
JP6928123B2 (ja) メモリシステム内のページマイグレーションのオーバヘッドを低減するメカニズム
US8176282B2 (en) Multi-domain management of a cache in a processor system
Markthub et al. DRAGON: breaking GPU memory capacity limits with direct NVM access
US9892058B2 (en) Centrally managed unified shared virtual address space
JP7242170B2 (ja) メモリープールを有するコンピューティングシステムのためのメモリー分割
Li et al. A performance & power comparison of modern high-speed dram architectures
US20240201909A1 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
Cho et al. Near data acceleration with concurrent host access
Pan et al. Tintmalloc: Reducing memory access divergence via controller-aware coloring
EP4060505A1 (en) Techniques for near data acceleration for a multi-core architecture
Mao et al. Temp: Thread batch enabled memory partitioning for gpu
EP3506112A1 (en) Multi-level system memory configurations to operate higher priority users out of a faster memory level
TW201719381A (zh) 記憶體裝置及方法
US10366007B2 (en) Apparatuses and methods for determining efficient memory partitioning
JP2023527770A (ja) メモリにおける推論
KR101155127B1 (ko) 멀티코어 시스템의 메모리 관리 장치 및 방법
US11756606B2 (en) Method and apparatus for recovering regular access performance in fine-grained DRAM
Li et al. Thread batching for high-performance energy-efficient GPU memory design
Wen et al. Reducing CPU-GPU Interferences to Improve CPU Performance in Heterogeneous Architectures
Shao Reducing main memory access latency through SDRAM address mapping techniques and access reordering mechanisms
Aamodt et al. Memory System
Pan Providing DRAM Predictability for Real-Time Systems and Beyond.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230308

R150 Certificate of patent or registration of utility model

Ref document number: 7242170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150