JP2009520295A - 共有メモリバンクを有するマルチプロセッサ回路 - Google Patents
共有メモリバンクを有するマルチプロセッサ回路 Download PDFInfo
- Publication number
- JP2009520295A JP2009520295A JP2008546742A JP2008546742A JP2009520295A JP 2009520295 A JP2009520295 A JP 2009520295A JP 2008546742 A JP2008546742 A JP 2008546742A JP 2008546742 A JP2008546742 A JP 2008546742A JP 2009520295 A JP2009520295 A JP 2009520295A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory bank
- address
- memory
- circuit
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 280
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
マルチプロセッサ回路内の複数のプロセッサ(10)を、独立的にアクセス可能な複数のメモリバンク(12)に対して接続回路(14)を介して接続する。接続回路は、プロセッサ(10)の組み合わせからのアドレスを、このアドレスによって選択されたメモリバンク(12)の入力アドレスに転送するように構成する。接続回路(14)は、少なくとも1個のプロセッサ(10)がメモリバンク(12)のうち関連する1個の関連メモリバンクに対して関連プロセッサとして関連付けする、衝突回避スキームを提供する。接続回路(14)は、関連プロセッサに対して、メモリバンク(12)における関連する1個の関連メモリバンクではない他の1個よりも、関連メモリバンク(12)に対して、より高い最小保証アクセス頻度を保証する。デフラグ用プログラム(16)は、関連プロセッサ(10)上で実行する、メモリバンク(12)のうち他の1個に格納した、タスクに関連するデータを検出し、この検出データを、タスクの実行中に関連メモリバンク(12)に移転する。このデフラグ用プログラムによれば、データ移転後に、関連プロセッサ(10)によるこのデータに対するアドレス指定を、他の1個のメモリバンク(12)から、関連メモリバンクに再マッピングし、好適には、この再マッピングをデータ移転の進行の際に徐々に行う。
Description
本発明はマルチプロセッサ回路に関するものである。
メモリアクセスは、マルチプロセッサ回路に生じる問題を原因として競合(衝突)を生ずる。単純なマルチプロセッサシステムにおいて、各プロセッサには、そのプロセッサのみアクセスできるメモリバンクが個別に提供される。従ってアクセス競合は発生しないが、メモリバンクの容量は、最も要求されるタスクをサポートできなければならず、このことは他のタスクに対して相当なオーバーヘッドを有することを意味する。さらに、単独のプロセッサのみアクセス可能なメモリバンクを介しては、プロセッサ間通信を行うことができない。
代替的解決法として、すべてのプロセッサに対する共有メモリを使用する。しかし、この手法は、アクセス競合が生じた場合、マルチプロセッサシステムは速度が低下する。この問題は、各プロセッサとメインメモリとの間に1つずつキャッシュメモリを設けることにより軽減される。しかしキャッシュメモリは、システムの最悪状況パフォーマンスを極端に低下させる(プロセッサにより処理されるタスクの組み合わせによって反応時間が長くなる可能性がある)。これにより、最小に保証された最低の最悪状況パフォーマンスとなる、複数のリアルタイム処理タスクを稼働させるときは、キャッシュメモリは好ましい解決法とはならない。またキャッシュメモリの使用は、異なるキャッシュメモリ間の調和が保持されなければならないときに、メモリ設計を複雑にする。
本発明の目的は、とくに、メモリの効率的な使用による最悪状況パフォーマンスを改善するマルチプロセッサシステムを得るにある。
本発明の一つの態様は、請求項1に記載のマルチプロセッサ回路を提供する。このマルチプロセッサ回路において、複数のプロセッサが同一メモリバンクに並列アクセスをもつ。差別化競合回避スキームを使用して、他のメモリバンクよりも、少なくとも1個のメモリバンクに対する、より高い最低保証アクセス頻度をプロセッサに付与する。好適には、各プロセッサには、他のメモリバンクよりも、対応するメモリバンクへの、より高い最低保証アクセス頻度を付与する。プロセッサと関連するメモリバンクとは別のメモリバンク内に蓄積された、プロセッサによって実行されるタスクに並列的に動作するデフラグ用プログラムを設け、あるプロセッサ上で稼働するが、そのプロセッサに関連しないメモリバンクに記憶されたタスクに関連するデータを、このデフラグ用プログラムによって検出する。データを移転する際に、実行中のアドレスマッピングを変更する。このようにして最悪状況パフォーマンスが改善され、例えばリアルタイム処理条件を損なうことなく、新しいタスクを追加するための余地が生まれる。
好適には、再マッピング前後に、各マッピングに基づいてマッピングされた複数のアドレスを区別するための閾値アドレスを記憶する記憶素子を設ける。この閾値アドレスは、データを移転する間に段階的に変更し、データブロックの移転中もデータをアドレス指定し続けるタスクを可能とする。
典型的な実施形態において、プロセッサは、関連付けした1個のメモリバンクおよび他のメモリバンクを、単一のアドレス空間の対応部分としてアドレス指定するよう構成し、この単一のアドレス空間は他の1個のプロセッサにおけるアドレス空間と少なくとも部分的にオーバーラップする。このようにして、関連付けしたメモリバンク内および、同タイプの命令およびアドレスを有する他のメモリバンク内(そこからデフラグ用プログラムがデータを移転する)の記憶域を、プロセッサはアドレス指定することができる。これにより、メモリ要求タスクの1個の大きいメモリとしてメモリバンクを使用できるとともに、同一のメモリを使用してただ1個のみメモリバンク内にアドレス指定する必要のある他のタスクのためのパフォーマンスを改善することができる。
好適には、デフラグ用プログラムは、パフォーマンス向上のため、プロセッサと関連付けしたメモリバンクにデータを移転するようにタスクを実行するプロセッサに応じて、データを1個のメモリバンクから他のメモリバンクに、またはその逆に移転する可逆デフラグを行うものとする。従って、改善されたパフォーマンスにより、複数のタスクは並列に実行される。
一般的にデフラグ用プログラムはプロセッサと並列に、メモリバンクに接続するが、デフラグ用プログラムに保証されているメモリバンクへのアクセスは、プロセッサのアクセスよりも低い優先度を有する。
一つの実施形態において、プロセッサからのアドレスが、データを移転した閾値アドレスの一方の側にあるか、もしくは逆側にあるかに基づいて、プロセッサからのアドレスに異なるベースアドレスを加える、単純なアドレスマッピング回路を使用する。デフラグ用プログラムは、ベースアドレスおよび閾値アドレスを更新する。異なるアドレス範囲用の複数のマッピングを定義するメモリマッピング回路を設けることができる。この場合、デフラグ用プログラムはメモリマッピングユニット内のアドレスを更新する。
有利には、プロセッサのアドレス空間(アドレスの連続する範囲内のアドレス)を、メモリバンクにわたり分散してマッピングするマルチプロセッサ回路を設け、これらバンクに対して、異なるプロセッサからのアドレスを互いにオーバーラップさせてマッピングする。好適には、接続回路が、アクセスアドレスに基づくアクセス優先度レベルを割り振り、異なるバンクに対しては優先度が異なるように、一連の相対優先度セットをプロセッサに対し定義する。
本発明によるこれらおよび他の目的ならびに有利な態様は、以下の図を用いた例示的な実施形態の詳述により明らかとなるであろう。
図1に、複数個のプロセッサ10、複数個のメモリバンク12、接続回路14およびデフラグ用プログラム16を含むデータ処理回路を示す。プロセッサ10およびデフラグ用プログラム16は、接続回路14を介してメモリバンク12に接続する。接続回路14は、クロスバースイッチ回路140およびアドレスアービター142を含む。プロセッサ10およびデフラグ用プログラム16におけるアドレス出力およびデータ入出力を、クロスバースイッチ回路140に接続する。メモリバンク12におけるアドレス入力およびデータ入出力を、クロスバースイッチ回路140に接続する。プロセッサ10およびデフラグ用プログラム16におけるアドレス出力を、アドレスアービター142に接続し、このアドレスアービター142は、クロスバースイッチ回路140の切替え制御入力、およびプロセッサ10の容否確認応答入力に接続した複数の出力(図中では1つのみ示す)を有する。好適には、デフラグ用プログラム16は、プロセッサ10のような他のプロセッサとしてメモリバンク12に接続し、優先度は低いが全てのメモリバンクにアクセスできるようにする。アービター142は図中では1つのみ示されているが、アービター142は各メモリバンク12のための分散アービター回路により構成することができることを理解されたい。同様に、デフラグ用プログラム16は、例えば各プロセッサ10のための分散デフラグ用回路を有することができる。接続回路14は、一般的にはアービター142およびクロスバースイッチ140に供給する前に、プロセッサ10からのアドレスを変換するためのアドレス変換回路(図示せず)を有することができる。
動作にあたり、プロセッサ10は、処理タスクを定義する命令プログラムを実行する。一般に、複数のタスクを同時に実行する。例えば読出しおよび書込み(ロード/記憶)命令のような少なくとも若干の命令により、プロセッサ10はメモリバンク12にアクセスする。接続回路14およびメモリバンク12は、順次のアクセスサイクルで動作し、各アクセスサイクルにおいて異なるアドレスの組み合わせが適用される。あるアクセスサイクルでプロセッサ10がメモリバンク12にアクセスするとき、プロセッサ10は接続回路14にアドレスを供給する。接続回路14は、そのアドレスをメモリバンク12のうちどのメモリバンクにマッピングするかを決定し、またそのアドレスの少なくとも一部を、そのアクセスサイクル用にアドレス指定されたメモリバンク12に接続した1個の出力、にルート伝送する。したがって、データは、そのデータサイクル用に、アドレス指定されたメモリバンク12とプロセッサ10との間におけるルートで伝送する(書込み動作の場合は、プロセッサ10からメモリバンク12へ、読出し動作の場合は、メモリバンク12からプロセッサ10へ)。そのアクセスサイクルの対応するデータは、そのアドレスに同時にルート付けされるが、代案として、何らかのパイプライン動作形態を使用し、アドレスがそれに順次のアクセスサイクル用に供給および/もしくはルート付けされるときに、データがルート伝送するようにすることもできる。
少なくとも若干のプロセッサ10は、メモリバンク12における同一の1個のメモリバンク12にアドレス指定することができる。1つの実施形態において、全てのプロセッサ10は全てのメモリバンク12にアドレス指定することができる。他の実施形態において、各プロセッサ10はN個(例えばN=2もしくは3)のメモリバンク12からなるサブセットにアドレス指定することができ、各プロセッサのサブセットは部分的にオーバーラップし、例えばチェーン状になる。クロスバースイッチ回路140は、メモリバンク12にアドレス指定することができるプロセッサ10と、そのメモリバンク12との間における、アドレスおよびデータのルート伝送を行う。
ある実施形態において、各プロセッサ10は隣接アドレスを用いて複数の連続するメモリバンク12にアドレス指定する。すなわち、第1メモリバンク12の外部における第1連続アドレスは、次の連続メモリバンク12の内部における第1アドレスにアドレス指定する。このようにして、各プロセッサ10は、効果的にその複数個のメモリバンクを1つの大きなメモリ空間と「みなし」、異なるプロセッサ10のメモリ空間は少なくとも部分的に相互にオーバーラップする。
ただ1個のプロセッサ10が、あるアクセスサイクル内で特定メモリバンク12にアドレス指定する場合、アービター回路142はその特定メモリバンク12へのアクセスを、そのアクセスサイクル内でそのプロセッサ10に対して許可する。しかし、複数個のプロセッサ10が同一のメモリバンク12にアドレス指定することができるため、複数のプロセッサ10が同一のアクセスサイクル内でメモリバンク12のうちの同一の1つにアドレスを供給しようとする可能性があり、したがってバンクの衝突を生ずる。アドレスアービター142は、各プロセッサ10の各メモリバンク12へのアクセスを許可することで、これらの競合(衝突)を解決する。アドレスアービター142はプロセッサ10とメモリバンク12との間の関係を定義付けする。あるメモリバンク12に関連するプロセッサ10は、メモリバンク12にアドレス指定可能なプロセッサ10のうちの1つである。ある例において、各プロセッサ10は対応のメモリバンク12と関連し、また随意的にどのプロセッサ10とも関連付けしていない1個またはそれ以上のメモリバンク12を持つ。
例えば、各第2サイクルまたは各第3サイクルといった、アクセスサイクルにおける少なくとも所定一部分において、メモリバンク12に関連するプロセッサ10を含む1個より多いプロセッサ10がメモリバンク12にアドレス指定するときには、常に、アービター142はメモリバンク12に関連付けしたプロセッサ10にアクセスを許可する。上記所定の一部分以外のアクセスサイクル部分において、メモリバンク12に関連付けしたプロセッサ10を含む場合も含めて、1個より多い数のプロセッサ10がメモリバンク12をアドレス指定する時に、アービター142はプロセッサ10のうち任意の1個を選択するよう、総当たり選択のようなスタベーション(窮乏)回避選択スキームを使用する。上記アクセスサイクルの所定一部分において、関連付けしたプロセッサ10がメモリバンク12をアドレス指定しない場合に限り、アービター142は他のプロセッサ(関連付けしたプロセッサではない)のメモリバンクへのアクセスを許可する。1個より多い数の非関連付け(関連付けしない)プロセッサ10が同時にメモリバンクをアドレス指定することがありうるとき、他の手法を使用してこの競合(衝突)を解決することができる。例えば、アドレスアービター142はメモリバンク12に対するプロセッサ10のランク付けを割り振り、そのメモリバンクをアドレス指定する最高ランクのプロセッサ10がアクセスを許可される。他の例において、アドレスアービター142は、順繰り総当たり式に非関連付けプロセッサのアクセスを許可する。
アドレスアービター142は、クロスバースイッチ回路140を制御することで、メモリバンク12とアクセスを許可されたプロセッサ10との間でアドレスおよびデータをルート付け伝送し、アクセスが許可されたことを示すために容認応答信号をその許可プロセッサ10に送信し、メモリバンク12へアドレス指定したもののアクセスを許可されなかったプロセッサ10に否認応答信号を送信する。
このスキームによれば、各プロセッサ10は、関連付けしたメモリバンク12に対して、非関連付けメモリバンク12に対するよりも高い、少なくとも所定の最低保証アクセス頻度でメモリバンク12にアクセスできることを保証することは認識できるであろう。例えば、関連付けしたプロセッサ10は、N回(N>1)のアクセスサイクル中、M回(0<M<N)の絶対優先度を有し、なおかつ他のアクセスサイクル中、P個の他のプロセッサと等しい総当たり式優先度を有する場合、関連付けメモリバンク12への最低保証アクセス頻度Faは、Fa=(M+(N−M)/P)/Nで表される一方で、他のメモリバンク12への最低保証アクセス頻度Fnは、Fn=(N−M)/(P*N)で表される。しかし、様々な代替的スキームを使用し、例えばメモリバンク12をアドレス指定するプロセッサ10の総当たり選択に対して、異なる最低保証アクセス頻度を実現することもでき、この場合、メモリバンク12に関連付けしたプロセッサ10は非関連付けプロセッサ10よりも総当たり式シーケンス内でより多くの回数でアクセスできる。例えば、N回(N>2)の総当たりシーケンスを、関連付けしたプロセッサ10に対してQ回(Q>1)、非関連付けプロセッサ10に対してR回(0<R<Q)(例えばR=1)にするときに使用する場合、関連メモリバンク12への最低保証アクセス頻度はFa=Q/Nであるとともに、他のメモリバンク12への最低保証アクセス頻度はFn=R/Nである。非同時タスクを実行する場合、非関連付けメモリバンク12に対して、ゼロより大きい最低保証アクセス頻度を保証していない代替的な優先度スキームを使用することができる。
接続回路14および/またはプロセッサ10は、プロセッサ10からメモリバンク12内へアドレスに対する可変的アドレスマッピングを提供する。好適には、アドレスをマッピングするメモリバンク12、およびアドレスをマッピングするメモリ内の記憶域の双方を調整可能にする。
図2に、プロセッサ10からのアドレスのアドレスマッピングを提供する、接続回路14の一部の実施形態を示す。説明を分かり易くするため、データ接続ラインを省略してある。接続回路は、プロセッサ10からのアドレスAを受信するための入力Aを有する。接続回路は、コンパレータ20、閾値レジスタ21、第1ベースレジスタ22、第1加算器23、第2ベースレジスタ24、第2加算器25およびマルチプレクサ20aを有するアドレスマッピング回路30を備える。
接続回路のこの部分は、プロセッサ10が、メモリバンク12内における物理アドレスに変換される論理アドレスを出力するときに使用する。コンパレータ20は、プロセッサ10からの論理アドレスAを、遷移アドレスを示す閾値と比較する。閾値は閾値レジスタ21から生じる。第1ベースレジスタ22および第1加算器23は、論理アドレスが閾値を下回るときに、プロセッサ10からの論理アドレスにベース値を加算することにより、物理アドレスを計算するのに供する。同様に、第2ベースレジスタ24および第2加算器25は、論理アドレスが閾値に等しいまたはそれ以上である場合、プロセッサ10からの論理アドレスにベース値を加算することによって、第2メモリバンク12b内における物理アドレスを計算するのに供する。コンパレータ20は、論理アドレスが閾値未満であるか否かによって、第1または第2の加算器23,25からの物理アドレスを通過させるために、マルチプレクサ20aを制御する。この後、結果として生じるアドレスを、アービター(図中には示していない)が使用し、クロスバースイッチ(図示せず)を通過してメモリバンク12にアドレス指定する。
同様の回路を各プロセッサ10に対して使用することができる。レジスタ21,22,24の内容は、例えばプロセッサ10が1つのタスクから別のタスクに切り替わる度毎に、またはデフラグ用プログラム16の制御によって、更新することができる。他の実施形態において、メモリマッピングユニットを、レジスタ21,22,24の代わりに複数の記憶域を有するメモリ(図示せず)に使用することができ、論理アドレスおよび/もしくはタスク識別の制御の下に、閾値およびベース値をこのメモリから選択する。このようにして、粒度の細かいメモリマッピングの形態を実現することができる。
プロセッサ10が、より大きなメモリ空間の連続する部分としてメモリバンク12をアドレス指定する実施形態においては、単純な加算器23,25で十分である。代案として、メモリバンク選択信号を、アドレスに基づいて、例えばコンパレータ20によって生成することができる。
図2aに、プロセッサ10からのアドレスのアドレスマッピングを提供する、接続回路14の一部の、代替的実施形態を示す。説明を分かり易くするため、データ接続ラインを省略してある。接続回路は、コンパレータ20、閾値レジスタ21、第1ベースレジスタ22、第1加算器23、第2ベースレジスタ24、第2加算器25、マルチプレクサ26および加算器27を有するアドレスマッピング回路30を備える。
接続回路のこの部分は、プロセッサ10が、第1および第2のメモリバンク(12,12b)内における物理アドレスに変換される論理アドレスを出力するときに使用する。コンパレータ20は、プロセッサ10からの論理アドレスAを、第1メモリバンク内に記憶された最高位論理アドレスを示す閾値に比較する。この閾値は閾値レジスタ21から生じる。第1ベースレジスタ22および第1加算器23は、プロセッサ10からの論理アドレスにベース値を加算することにより、第1メモリバンク内における物理アドレスを計算するのに供する。同様に、第2ベースレジスタ24および第2加算器25は、プロセッサ10からの論理アドレスにベース値を加算することにより、第2メモリバンク12b内における物理アドレスを計算するのに供する。
隣接のプロセッサ10aに対して、同様の回路29aを使用する。アービター27は、コンパレータ20からの出力および隣接のプロセッサ10aにおける同様の出力を受信する。アービター27は、第1加算器23からの入力および隣接のプロセッサ10aにおける第2加算器25からの入力を受信する、マルチプレクサ26を制御する。マルチプレクサ26は第1メモリバンクにアドレスを出力する。コンパレータ20の出力が、プロセッサ10および10aの双方ともこの第1メモリバンクにアドレス指定していることを示すとき、アービター27はプロセッサ10のうち選択した一方のプロセッサにアクセスを許可し、それに対応してマルチプレクサ26を制御する。第1加算器23にアドレスを供給するプロセッサ10は、他のプロセッサにおける対応の最低保証頻度よりも高い、少なくとも所定の最低保証頻度でアクセスできることを保証する優先度スキームを使用する。さらにアービター27は、隣接のプロセッサ10a(アクセスを得ていない)が待機するように、確認応答ライン(図示せず)を介して、プロセッサ10および10aに信号を送信する。アービター27は、マルチプレクサ26を制御することにより、第1加算器23から第1メモリバンク12にアドレスを通過させる。
コンパレータ20の出力が、プロセッサ10および10aのうち一方のみ第1メモリバンク12へアドレス指定していることを示すとき、アービター27はマルチプレクサ26を制御することにより、第1加算器23または隣接プロセッサ10aにおける第2加算機25から、の対応プロセッサ10および10aにおけるアドレスを通過させる。プロセッサ10および10aを待機させるための信号は送信されない。プロセッサ10および10aのどちらも第1メモリバンク12をアドレス指定していないとき、アービター27は第1メモリバンク12の機能を停止することが望ましい。
論理アドレスAが第2メモリバンク12b内の記憶域をアドレス指定していることをコンパレータ20が示すときの状態を、図示したタイプの他の回路29bで示す。このとき、第2加算器25からのアドレスを、他の隣接プロセッサ10bが第2メモリバンク12bをアドレス指定していない時、その第2メモリバンク12bに通過させる。
図2には単独閾値用の回路を示してあるが、例えばタスクそれぞれに対し選択的に固有ベースアドレスを有するように、異なるタスクに関連する複数の閾値を供給するように回路を構成できることを理解されたい。さらに、マルチプレクサ(またはメモリへの接続ライン)が追随する2個の加算器を備えた実施形態を示してあるが、代替的実施形態において、比較の結果に基づいて、あるベースアドレスもしくは他のベースアドレスを供給する単独の加算器のみ使用することもできる、または、他の代替的実施形態において、1個のベースアドレスを常にゼロにセットし、そのベースアドレスに対して加算器が全く必要ないこともあり得ることを理解されたい。
図示のように、プロセッサ10,10a,10bは、優先度付きアクセスを持つローカルメモリバンク12および1個の隣接メモリバンク12bのみにアドレス指定することが望ましい。これにより回路が簡素化できる。しかし、変更した回路では、プロセッサ10から両側に隣接するメモリバンク12a,12bを、またはさらに多い数のメモリバンクをアドレス指定できる。さらに、常に優先権を持つ単独プロセッサを持たないメモリバンクを追加することもできる(例えば異なるプロセッサが総当たり式に基づく優先度を許可される)。
メモリマッピング回路30内におけるベースレジスタ等の内容は、タスクに対してメモリ空間を割り当てた後にタスクの実行を開始するとき、動的に設定するのが望ましい。タスクの実行が完了またはそれ以外で停止したとき、メモリを解放する。デフラグ用プログラム16は、実行中にメモリバンク12間でデータを移転するように動作する。このデフラグ用プログラム16は、例えば、全てのメモリバンク12にアドレス指定が可能な他のプロセッサとして、またはこの目的用の専用回路として、実装する。
図3に、デフラグ用プログラム16と複数のメモリマッピング回路30との間における接続状況の例を示す。プロセッサ10によるタスクの実行に関連するデータが、そのプロセッサ10に非関連付け(関連付けしていない)メモリバンク12(すなわち、そのプロセッサが常に優先権を持っていないメモリバンク)内に記憶されるとき、このことをデフラグ用プログラム16は検出する。このメモリバンクを、旧メモリバンクと称する。プロセッサ用のデータが旧メモリバンク内に記憶されている場合、デフラグ用プログラム16は、プロセッサ10に関連付けしたメモリバンク(すなわち、プロセッサが常に優先権を持つメモリバンク)内に未使用のメモリ12があるか否かを検査する。このメモリバンクを、新メモリバンクと称する。デフラグ用プログラム16は、未使用メモリを見つけた場合、旧メモリバンクから新メモリバンクにデータを移転し、移転したデータに対してアドレスマッピングを更新する。
デフラグ用プログラム16は、アドレスが比較される閾値を徐々に増大していく。デフラグ用プログラム16は、毎回、閾値に基づいてメモリバンク(旧メモリバンク)にマッピングする第1論理アドレスに対するデータを読出し、また、この論理アドレスが新メモリバンク内に新たにマッピングされる物理アドレスにこのデータを記憶し、その結果デフラグ用プログラム16は閾値を増大する。この作業を、すべてのあり得るデータを第1メモリバンク12に移転するまで繰り返す(すなわち、すべてのデータを移転するまで、または論理アドレスが未使用のメモリ端部に達するまで)。このデフラグ化形態は、プロセッサ10が動作し続ける間持続できるという利点を有する。
ある実施形態において、デフラグ用プログラムによる移転および更新は同一サイクル内で行い、プロセッサ10からの読出しおよび書込みが、旧記憶域からのデータ読出しおよび新記憶域へのデータ書込み、および閾値の更新との間における干渉を回避されるようにする。代案として、データを移転される旧メモリへのアドレス書込みをモニターするように、デフラグ用プログラム16を構成する。デフラグ用プログラム16が、旧メモリから新メモリにデータを移転するために読出された旧メモリ内の記憶域への書込みを検出するとき(すなわち、閾値が対応して増大する前に)、デフラグ用プログラム16はこの作用を修正する。ある実施形態において、デフラグ用プログラム16は、新たにデータを読み出すことでこれを行う。他の実施形態において、デフラグ用プログラム16は書込みデータを捕捉し、このデータを新メモリバンクへの書込みに使用する。
図3に示さないが、デフラグ用プログラム16はアービター回路142(またはすべてのメモリバンク10用のアービター回路群32)に接続するのが望ましく、アービター回路または回路群は、デフラグ用プログラム16に対してプロセッサ10よりも低い優先度を割り当てるのが望ましい。代案として、デフラグ用プログラム16に対して、メモリバンク12への個別アクセスポートを設けることができる。
デフラグ用プログラム16は、例えばベースレジスタ等の内容の検査など、メモリマッピング回路30内のベースアドレスを検査することで、検出および探索を行うことが望ましい。代案として、デフラグ用プログラム16での使用のため、マッピング情報のコピーを設けることができる。
図4には、プロセッサ10、メモリマッピング回路30およびアービター32を有する他のアドレス制御部分示す。メモリマッピング回路30は、プロセッサ10からの論理アドレスを、メモリライン毎にマッピングする(例えば、アドレスのラインアドレス部分の異なる値に対する入力項目を有するテーブルを使用し、入力項目として、メモリバンクIDおよびそのバンク内のアドレス用のオフセットを記憶する)。メモリマッピング回路30はアドレスデータを出力し、また論理アドレスのマッピングに基づいて、異なるバンクにリクエストする。アービター32は、異なるプロセッサのためにメモリマッピング回路30からのリクエストを受信し、競合した場合に優先権を許可し、メモリバンク12への優先権を許可されたプロセッサからのアドレスを通過させる。アービター32の数は(図中には1つのみ示した)、対応する所定のプロセッサに対して常に優先権を許可する。複数のアービター32を設け、1個のプロセッサ10に対それぞれ少なくとも1個のアービター32を設け、各アービター32をそれぞれ、同一プロセッサ10に対して常に優先権を許可するプロセッサ10に関連付けすることができる。しかし、代案として、プロセッサ10のうち若干は、このような関連付けしたプロセッサ10を持たないようにすることができる。この場合、これらのプロセッサ10は、リアルタイム性能は低くなる。さらに好適には、このようなアービターは、それぞれプロセッサ10からのアクセス用に同一個数の入力を有するようにすることができるが、このことは必ずしも必要ではない。すなわち、互いに異なる数の入力を備えたアービター32を設けることができる。
図4の実施形態においては、マッピング用に閾値を使用しない(ブロックごと全体的にある1個のメモリバンクまたは他のメモリバンクにマッピングする)。この実施形態が使用するとき、デフラグ用プログラム16の構成は、デフラグ用プログラム16がどこまでデータコピーの処理をしているかを示す内部の閾値(進行カウンタ)を使用するよう構成する。デフラグ用プログラム16が進行カウンタを使用し、デフラグ用プログラム16により移転されたデータを「所有する」プロセッサ10による書込み後に、補正が必要であるか決定する。デフラグ中に、このプロセッサ10は旧メモリバンクにアドレス指定し続けることを許可される。デフラグ用プログラム16は、旧メモリバンクをアドレス指定するこのプロセッサ10による書込み動作を検出する。このような書込みを検出する際に、デフラグ用プログラム16は書込みアドレスを進行カウンタと比較し、書込みアドレスが既にコピーした記憶域をアドレス指定した場合、デフラグ用プログラムはその書込みアドレスに対して、新たに書込まれたデータとともにコピーを繰り返す。ブロック全体を移転したとき、デフラグ用プログラム16は、ブロックのマッピングを新メモリバンク内のコピーされたブロックに切り替える。
この実施形態において、好適には、デフラグ用プログラム16はライン毎に動作して、メモリマッピング回路30のプロセッサに非関連付け(関連付けしない)メモリバンクに(メモリマッピング回路30により)マッピングされたメモリラインを検出し、メモリマッピングユニット30がマッピングしていないメモリラインを探索するようにする。このような組み合わせが見つかったとき、デフラグ用プログラム16は旧メモリバンクからのラインを新メモリバンクにコピーする。好適には、プロセッサ10はこのコピー動作中も動作し続けるようにする。デフラグ用プログラム16がプロセッサ10による書込みを検出するとき、デフラグ用プログラムはラインの書込みアドレスを進行カウンタと比較し、既にコピーされたライン内の記憶域のアドレスにプロセッサが続いて書込む場合、デフラグ用プログラムはその記憶域からのデータを再びコピーする。デフラグ用プログラム16がメモリラインの移転を完了する毎に、メモリマッピング回路30をラインのマッピングを更新する。
書込みアドレスとライン内のアドレスとの比較は多くの方法で行うことができる。ある実施形態において、プロセッサのうち選択可能な1個のプロセッサからデフラグ用プログラム16に書込みアドレスをルート伝送するマルチプレクサを設け、デフラグ用プログラム16がこのマルチプレクサを制御する。この場合、デフラグ用プログラム16がデータを移転するためのプロセッサ10を選択するとき、デフラグ用プログラムはマルチプレクサを制御して、選択したプロセッサから書込みアドレスをルート付けして伝送する。他の実施形態において、各メモリマッピング回路30は、デフラグ用プログラム16からの保護されたメモリラインの表示を受信し、保護ライン内の(書込み)アドレスを検出し、またそのようなアドレス指定をデフラグ用プログラム16に検出信号を発生するよう構成することができる。
プロセッサ10に関連付けしたメモリバンク12(このプロセッサは常に優先権を得る)に対して複数のプロセッサ10がアクセスする実施形態を示したが、単純な代替形態においては、関連付けしたプロセッサ10のみが、その関連メモリバンク12へのアクセス権を有する(このことはプロセッサの全てまたは一部に適用することができる)ようにすることもできることを理解されたい。このように、非関連の共有メモリバンクは、関連付けしたメモリバンク12用のオーバーフローとして働き、デフラグ用プログラム16は可能ならばデータを戻す。
デフラグについてのみ詳細に説明したが、逆の場合も考える必要がある。すなわち、分断してデータ移転することもまた起こりうる。これは例えば、一時中断されたタスクに対するデータ、または同時タスク用のデータが分断されたときに同時(リアルタイム)処理能力を必要としないタスクに対するデータ用に行うことができる。この場合、デフラグ用プログラム16は、まず関連付けしたメモリバンクからデータを移転して、(同時処理タスク用の)他のデータをそのメモリバンク内に移転するための余地を作る。好適には、タスクの少なくとも一部をプログラムして、またはリソース情報データを伴うようにして、どのデータを、いつリアルタイムで入手可能にすべきかを示すようにする。デフラグ用プログラム16は、好適には、このような表示を読み出す、またはこれら表示を受信し、また、デフラグ(関連プロセッサに関連付けしたメモリバンクへの移転)用の表示データを選択するよう構成する。
典型的な例においては、異なる同時(リアルタイム)処理タスクは異なる時間で開始される。そのような一つのタスクを開始される前に、このタスクが、このタスクに特有の所定保証速度で稼働することができるか否かを決定する。このタスクに対する最低保証速度は、すでに稼働しているタスク、このタスクに割り当てることができるメモリ、可能ならばタスクを開始させるプロセッサ用の関連付けしたメモリバンク内のメモリではあるが、入手可能なメモリが関連付けしたメモリバンクで利用可能なメモリが不十分である場合には他のメモリバンク内におけるメモリの観点から決定される。また、新しいタスクの追加により、その最低保証速度を固有保証速度以下に低下させるか否かを、チェックする。
保証速度が満たされる場合、タスク用の自由メモリを使用してタスクを開始する。関連付けしたメモリバンク内に自由メモリがなく、後の時点で他のタスクが停止して関連付けしたメモリバンク内のメモリ空間が解放されるようになった場合には、プロセスを継続しつつ、タスク用のデータを関連付けしたメモリバンクに移転する。これにより、最低保証速度と固有保証速度との間におけるマージンが増大し、他のタスクを開始するための余地をより多く作り出す。
さらに、1つのプロセッサ10により各タスクを実行する単純な例を仮定してきたが、実際上はより複雑なタスクを、いくつかプロセッサがともに実行することもできると理解されたい。その場合、タスク用のデータは、部分的に1個のプロセッサのみで必要なデータであり、また部分的に共にタスクを実行する複数のプロセッサで必要となる共有データである場合がある。この場合、各プロセッサ10は、どのデータがいつリアルタイムで利用可能であるのかを示すよう、プログラムすることが望ましい。デフラグ用プログラム16は、このような表示を読み出す、またはこれら表示を受信する、およびデフラグ(関係プロセッサ10に関連付けしたメモリバンクへの移転)用の表示データを選択するよう構成することが望ましい。
さらに、プロセッサの外部でアドレスマッピングが実行されるスキームを示したが、代案として、アドレスマッピングはプログラムにより制御できることも理解されたい。この場合、そのプログラムはアドレス指定するために、例えばベースレジスタを使用することができる。この場合、いつ何をプロセッサの更新マッピングで使う必要があるのか、プロセッサにデフラグ用プログラムは信号を送信する。
関連付けしたメモリバンク12への最低保証アクセス頻度を比較的高くとるために、最大で1個のプロセッサ10がメモリバンク12に関連付けすることが望ましい。従って、関連付けするメモリバンク12は、このメモリバンク12にアクセスする他のプロセッサ10によって関連付けされたメモリバンクと共有されないため、関連付けしたプロセッサ10のための高い最低保証アクセス頻度が実現される。その最低保証アクセス頻度は、そのプロセッサ10非関連付けした(関連付けされない)他のメモリバンク12への最低保証アクセス頻度よりも高い。しかし、他の実施形態において、関連付けしたプロセッサのそれぞれが、同一の関連付けしたメモリバンク12に対して他のメモリバンク12に対するよりも高い最低保証アクセス頻度を得るように、1個より多いプロセッサ10を同一のメモリバンクに関連付けすることもできると理解されたい。関連付けしたメモリバンク12は共有されるため、一般に関連付けしたプロセッサの最低保証アクセス頻度は、関連付けしたメモリバンクが共有されていない時よりも低いが、しかしなお他のメモリバンク12における1つへのアクセス頻度よりも高い。
Claims (11)
- マルチプロセッサ回路において、
・ それぞれがアドレス出力を有する、複数のプロセッサと、
・ それぞれがアドレス入力を有し、独立にアドレス指定可能な複数のメモリバンクと、
・ アドレス出力とアドレス入力との間を接続し、前記プロセッサの組み合わせからのアドレスを、これらアドレスによって選択されたメモリバンクの入力アドレスへ、伝送するよう構成した接続回路であって、前記プロセッサのうち少なくとも1個のプロセッサをメモリバンクのうち1個の関連するメモリバンクに関連プロセッサとして関連付けする、競合解決スキームを提供し、関連プロセッサに対しては、メモリバンクのうち関連付けした1個のメモリバンクではない他の1個のメモリバンクよりも、前記関連した1個のメモリバンクへのより高い最低保証アクセス頻度を保証するよう構成した、該接続回路と、
・ 関連付けしたプロセッサ上で実行するが、前記メモリバンクにおける前記他の1個のメモリバンクに記憶した、タスクに関連するデータを検出し、この検出に応答してタスク実行中に関連付けした1個のメモリバンクに前記データを移転し、この移転後に関連付けしたプロセッサによるデータのアドレス指定を、前記他の1個のメモリバンクから、前記関連付けした1個のメモリバンクに再マッピングするよう構成した、デフラグ用プログラムと、
を備えたことを特徴とするマルチプロセッサ回路。 - 請求項1に記載のマルチプロセッサ回路において、前記再マッピングの前後に対応のマッピングに基づいてマッピングされるアドレス間を識別するための、閾値アドレスを記憶する記憶素子を備え、前記デフラグ用プログラムは、
・ タスク実行中に連続して、データ項目の順次のアドレスをブロック毎に移転することで、データ項目のブロックを移転し、また
・ 前記記憶素子内の閾値アドレスを、連続するデータ項目の1つを順次に移転する度毎に、更新するよう構成した、マルチプロセッサ回路。 - 請求項1に記載のマルチプロセッサ回路において、関連付けしたプロセッサは、関連付けした1個のメモリバンク、および関連付けした1個のプロセッサではない、他の少なくとも1個のプロセッサのアドレス空間と少なくともオーバーラップする単独のアドレス空間の一部として、前記他の1個のメモリバンクにアドレス指定するよう構成したマルチプロセッサ回路。
- 請求項1に記載のマルチプロセッサ回路において、各プロセッサは、単独のアドレス空間の一部として、すべてのメモリバンクをアドレス指定するよう構成したマルチプロセッサ回路。
- 請求項1に記載のマルチプロセッサ回路において、前記接続回路は、複数のプロセッサのそれぞれに対して、関連付けした1個のメモリバンク、および前記他の1個のメモリバンクへのアクセスに、複数のプロセッサにおける関連付けした1個のプロセッサと、他のプロセッサとの間で保証アクセス頻度の比を生じ、関連付けした1個のメモリバンクに対するアクセス頻度が、前記他の1個のプロセッサよりも高くなるよう構成した、マルチプロセッサ回路。
- 請求項1に記載のマルチプロセッサ回路において、前記接続回路は、他の1個のプロセッサに対して、関連付けした1個のメモリバンクに対するよりも、メモリバンクにおける前記他の1個に対して、より高い最低保証アクセス頻度を保証するように、構成し、デフラグ用プログラムは、前記他のプロセッサで実行する、前記関連付けした1個のメモリバンクに記憶した、他のタスクに関連する他のデータを検出し、この他のタスク実行中に、前記他の1個のモリバンクに前記データを移転し、前記他の1個のプロセッサによるデータのアドレス指定を、他のデータの移転後に、前記関連付けしたメモリバンクから、前記他の1個のメモリバンクに再マッピングするよ構成した、マルチプロセッサ回路。
- 請求項1に記載のマルチプロセッサ回路において、前記デフラグ用プログラムを、接続回路を介して前記プロセッサに並列に、前記メモリバンクに接続し、その接続回路は、前記メモリバンクに対するアクセス優先度が、前記デフラグ用プログラムから前記プロセッサに対するアクセス優先度よりも低くなるよう割り当てる構成とした、マルチプロセッサ回路。
- 請求項1に記載のマルチプロセッサ回路において、前記関連付けしたプロセッサに接続したメモリマッピング回路であって、このメモリマッピング回路内に記憶したマッピング情報に基づいて、それぞれに対応するアドレス範囲をそれぞれに対応する記憶域の範囲にマッピングするよう構成した該メモリマッピング回路を備え、前記移転の後にマッピング情報を更新する前記デフラグ用プログラムを前記メモリマッピング回路に接続した、マルチプロセッサ回路。
- 独立にアドレス指定可能な複数のメモリバンクへ、並列にアクセスを行うよう接続した複数のプロセッサを備える、マルチプロセッサ回路を作動させる方法において、
・ 各プロセッサが、そのプロセッサがアクセスしているメモリバンクへの最低保証アクセス頻度を有するようにプロセッサの前記メモリバンクに対するアクセス競合を回避するステップであって、少なくとも関連付けしたプロセッサが関連付けした1個のメモリバンクに対して、関連付けした1個のメモリバンクではない他の1個のメモリバンクに対するよりも高い最低保証アクセス頻度を得られるようにする、アクセス競合回避ステップと、
・ 前記関連付けしたプロセッサ上で実行し前記、他の1個のメモリバンクに記憶したタスクに関連するデータを検出するデータ検出ステップと、
・ 前記タスク実行中に、関連付けした1個のメモリバンクに前記データを移転するデータ移転ステップと、
・ 前記移転後に、前記関連付けしたプロセッサによるデータのアドレス指定を前記他の1個のメモリバンクから、前記関連付けした1個のメモリバンクに再マッピングする再マッピングステップと、
を有することを特徴とする方法。 - 請求項9に記載の方法において、前記プロセッサ回路は、前記再マッピングの前後に、それぞれに対応するマッピングに基づいてマッピングするアドレス間を区別するための、閾値アドレスを記憶する記憶素子を有するものとし、前記方法は、
・ 前記タスク実行中に、対応するデータ項目のブロックを、順次のアドレスブロックとして順次に移転することで、移転する移転ステップと、
・ 前記データ項目における順次の各1個のブロックが移転される度毎に、前記記憶素子内で閾値アドレスを更新するステップと
を有するものとした方法。 - マルチプロセッサ回路において、
・ それぞれがアドレス出力を有する複数のプロセッサと、
・ それぞれがアドレス入力を有し、独立にアドレス指定可能な複数のメモリバンクと、
・ アドレス出力とアドレス入力との間を接続し、前記プロセッサの組み合わせからのアドレスを、これらアドレスによって選択されたメモリバンクの入力アドレスへ、伝送するよう構成した接続回路であって、それぞれが複数のメモリバンク上に分散するプロセッサのアドレス空間をマッピングし、異なるプロセッサのアドレス空間がメモリバンクのオーバーラップする集合としてマッピングし、接続回路は、各プロセッサからのメモリアクセスに対して、メモリアクセスによってアドレス指定されたアドレス空間の一部に基づいてそれぞれ優先レベルを付与し、これにより、メモリバンクの異なる各個へのメモリアクセスに関してプロセッサの相対優先レベルが異なるよう構成した該接続回路と、
を備えたことを特徴とするマルチプロセッサ回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05112468 | 2005-12-20 | ||
PCT/IB2006/054807 WO2007072324A2 (en) | 2005-12-20 | 2006-12-13 | Multi-processor circuit with shared memory banks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009520295A true JP2009520295A (ja) | 2009-05-21 |
Family
ID=38093565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008546742A Withdrawn JP2009520295A (ja) | 2005-12-20 | 2006-12-13 | 共有メモリバンクを有するマルチプロセッサ回路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8074031B2 (ja) |
EP (1) | EP1966708A2 (ja) |
JP (1) | JP2009520295A (ja) |
CN (1) | CN101341473B (ja) |
WO (1) | WO2007072324A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014191621A (ja) * | 2013-03-27 | 2014-10-06 | Canon Inc | 情報処理装置およびメモリアクセス制御方法 |
JP2016515367A (ja) * | 2013-03-13 | 2016-05-26 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 分配型フローテーブルを有するネットワーク要素 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US8484418B2 (en) * | 2010-10-22 | 2013-07-09 | Intel Corporation | Methods and apparatuses for idle-prioritized memory ranks |
US8799510B2 (en) * | 2011-07-05 | 2014-08-05 | Cisco Technology, Inc. | Managing host routes for local computer networks with a plurality of field area routers |
US9177177B1 (en) * | 2012-10-04 | 2015-11-03 | Symantec Corporation | Systems and methods for securing storage space |
US20140136793A1 (en) * | 2012-11-13 | 2014-05-15 | Nvidia Corporation | System and method for reduced cache mode |
US9436606B2 (en) * | 2014-01-02 | 2016-09-06 | Qualcomm Incorporated | System and method to defragment a memory |
KR102346629B1 (ko) * | 2014-12-05 | 2022-01-03 | 삼성전자주식회사 | 메모리 접근 제어 방법 및 장치 |
US10387315B2 (en) * | 2016-01-25 | 2019-08-20 | Advanced Micro Devices, Inc. | Region migration cache |
CN105897543A (zh) * | 2016-05-31 | 2016-08-24 | 陈专 | 一种网络并联及信息叠加显示系统 |
JP6712052B2 (ja) * | 2016-06-29 | 2020-06-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN113918481A (zh) | 2017-07-30 | 2022-01-11 | 纽罗布拉德有限公司 | 一种存储器芯片 |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
JP6531927B1 (ja) * | 2018-08-17 | 2019-06-19 | 株式会社エルアミーナ | 高位合成マルチプロセッサシステム等 |
US11455370B2 (en) | 2018-11-19 | 2022-09-27 | Groq, Inc. | Flattened input stream generation for convolution with expanded kernel |
CN109710309B (zh) * | 2018-12-24 | 2021-01-26 | 安谋科技(中国)有限公司 | 减少存储体冲突的方法 |
CN111858463B (zh) * | 2020-07-17 | 2024-04-02 | 上海科技大学 | 一种基于dvfs的优化重配置方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6226726B1 (en) * | 1997-11-14 | 2001-05-01 | Lucent Technologies, Inc. | Memory bank organization correlating distance with a memory map |
CN1328660C (zh) * | 2002-04-04 | 2007-07-25 | 印芬龙科技股份有限公司 | 具有共享存储器的改进结构 |
JP2005522773A (ja) * | 2002-04-08 | 2005-07-28 | ユニバーシティー・オブ・テキサス・システム | 非均等型キャッシュ装置、システム及び方法 |
-
2006
- 2006-12-13 US US12/158,316 patent/US8074031B2/en active Active
- 2006-12-13 CN CN2006800478996A patent/CN101341473B/zh not_active Expired - Fee Related
- 2006-12-13 JP JP2008546742A patent/JP2009520295A/ja not_active Withdrawn
- 2006-12-13 WO PCT/IB2006/054807 patent/WO2007072324A2/en active Application Filing
- 2006-12-13 EP EP06842481A patent/EP1966708A2/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016515367A (ja) * | 2013-03-13 | 2016-05-26 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 分配型フローテーブルを有するネットワーク要素 |
JP2014191621A (ja) * | 2013-03-27 | 2014-10-06 | Canon Inc | 情報処理装置およびメモリアクセス制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US8074031B2 (en) | 2011-12-06 |
WO2007072324A2 (en) | 2007-06-28 |
CN101341473B (zh) | 2010-11-17 |
US20080301354A1 (en) | 2008-12-04 |
CN101341473A (zh) | 2009-01-07 |
EP1966708A2 (en) | 2008-09-10 |
WO2007072324A3 (en) | 2007-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009520295A (ja) | 共有メモリバンクを有するマルチプロセッサ回路 | |
US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
JP2000187617A (ja) | ディスクアレイ装置におけるキャッシュメモリ管理方法 | |
JPS6133219B2 (ja) | ||
WO2009107048A2 (en) | Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures | |
JP2002373115A (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
JP4036206B2 (ja) | セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法 | |
JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
US7822952B2 (en) | Context switching device | |
US20100088473A1 (en) | Vector computer system with cache memory and operation method thereof | |
RU2285286C2 (ru) | Использование контекстного идентификатора в кэш-памяти | |
JP2009015509A (ja) | キャッシュメモリ装置 | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
CN102662857B (zh) | 用于对于存储进行虚拟化的设备和方法 | |
KR20180078512A (ko) | 반도체 장치 | |
JPH07129464A (ja) | 情報処理装置 | |
US10579519B2 (en) | Interleaved access of memory | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
JPS5844263B2 (ja) | 記憶制御回路 | |
JP5196249B2 (ja) | キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム | |
WO2015161804A1 (zh) | 一种Cache分区的方法及装置 | |
JPH10254775A (ja) | 共有キャッシュメモリを有するメモリコントローラ | |
JP2018165915A (ja) | コンピュータシステム、及びメモリコピー方法 | |
JP2008102759A (ja) | メモリアクセス制御装置 | |
JP6260456B2 (ja) | 演算処理装置及び演算処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090904 |