JP4583327B2 - 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置 - Google Patents

分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置 Download PDF

Info

Publication number
JP4583327B2
JP4583327B2 JP2006102826A JP2006102826A JP4583327B2 JP 4583327 B2 JP4583327 B2 JP 4583327B2 JP 2006102826 A JP2006102826 A JP 2006102826A JP 2006102826 A JP2006102826 A JP 2006102826A JP 4583327 B2 JP4583327 B2 JP 4583327B2
Authority
JP
Japan
Prior art keywords
processor system
address
processor
concentrator
data
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.)
Active
Application number
JP2006102826A
Other languages
English (en)
Other versions
JP2006286002A (ja
Inventor
剛 山崎
ジェフリー・ダグラス・ブラウン
スコット・ダグラス・クラーク
チャールズ・レイ・ジョンズ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006286002A publication Critical patent/JP2006286002A/ja
Application granted granted Critical
Publication of JP4583327B2 publication Critical patent/JP4583327B2/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/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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory

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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、マルチプロセッサ内において、プロセッサシステム内部のデータ転送を実行する方法および装置に関する。
最先端のコンピュータアプリケーションがリアルタイムのマルチメディア機能を有するようになり、プロセッサシステム(処理システム)に対する需要は絶えず増大しているため、近年、より速いコンピュータによる処理データスループットについて強い要望がある。そうした中、特にグラフィックスアプリケーションは、望ましい視覚結果を実現するために、比較的短い時間内で膨大な数のデータアクセス、データ計算、およびデータ操作を必要とし、プロセッサシステムに対する要求は最も高い。このようなアプリケーションは毎秒何千メガビットものデータ処理という非常に高速な処理を必要とする。いくつかのプロセッサシステムは一つのプロセッサを用いて高速な処理速度を実現する一方、他のプロセッサシステムはマルチプロセッサアーキテクチャを用いて実装される。マルチプロセッサシステムにおいて、複数のサブプロセッサは並列に(少なくとも協調して)動作し、所望の処理結果を達成できる。
例えば、マルチプロセッサシステムは、複数のプロセッサを含み、それらプロセッサは共通のシステムメモリを共有する。それぞれのプロセッサは、命令を実行するためのローカルメモリを有する。マルチプロセッサシステムはまた、例えば、他のプロセッサシステムおよび/または外部のデバイスに接続するための外部のインタフェースを含み、これによりデータおよびリソースを共有する。このことは、機能面や処理パワーなどの面において重要なメリットを享受できるが、データの共有に際して、いくつかの状況下において、データの一貫性(data coherency;データコヒーレンシ)の管理が要求されうる。
本発明に係る一以上の態様は、方法および装置に関する。その方法および装置は、複数のデバイスのうちの一のデバイスからのデータコマンドを、複数のプロセッサシステムのうちの一のプロセッサシステム内の第2アドレス集結部に送信するステップと、他のプロセッサシステムであって、前記データコマンドによりアドレス指定されたデータを自身内に保存せしめる一つのプロセッサシステムを選択するステップと、前記選択されたプロセッサシステムの第1アドレス集結部に、前記データコマンドを送信するステップと、前記選択されたプロセッサシステムの前記第1アドレス集結部から前記複数のプロセッサシステムのそれぞれに含まれる第2アドレス集結部に、前記データコマンドをブロードキャストするステップと、を提供する。
その方法および装置はまた、各プロセッサシステムにおいて、前記第2アドレス集結部から当該プロセッサシステム内の複数のデバイスのそれぞれに前記データコマンドをブロードキャストするステップを含んでもよい。その方法は、各プロセッサシステムにおいて、前記デバイスからの前記ブロードキャストされたデータコマンドに対する一貫性に関する応答を前記第2アドレス集結部において取得するステップをさらに含むのが好ましい。さらに、各プロセッサシステムの前記第2アドレス集結部から前記選択されたプロセッサシステムの前記第1アドレス集結部に、前記一貫性に関する応答を送信するステップを含んでもよい。
前記選択されたプロセッサシステム内の前記第1アドレス集結部において取得された、前記一貫性に関する応答は統合されるのが好ましく、さらに、その一貫性に関する応答は、前記選択されたプロセッサシステム内の前記第1アドレス集結部から、前記複数のプロセッサシステムのそれぞれに含まれるそれぞれの第2アドレス集結部に、ブロードキャストされるのが好ましい。さらに、その方法および装置はまた、各プロセッサシステムにおいて、前記第2アドレス集結部から当該プロセッサシステム内の複数のデバイスのそれぞれに、前記統合された一貫性に関する応答をブロードキャストするステップをさらに含むんでもよい。
本発明に係る一以上の別の態様は、プロセッサシステムに関する。そのプロセッサシステムは、共有メモリに動作可能に接続されうる複数のプロセッサであって、その複数のプロセッサのうちの少なくとも一つが、データの要求を行うデータコマンドを出力する複数のプロセッサと、前記データコマンドを取得する機能を有する第1アドレス集結部と、(i)前記データコマンドを取得する機能、(ii)当該プロセッサシステム以外の他の複数のプロセッサシステムであって、前記データコマンドによりアドレス指定されたデータを自身内に保存せしめる一つのプロセッサシステムを選択する機能、および(iii)前記選択されたプロセッサシステム内の第1アドレス集結部に前記データコマンドを送信する機能を有する第2アドレス集結部と、を含む。
本発明に係る一以上の別の態様は、装置に関する。その装置は、第1のプロセッサシステムを含む装置であって、前記第1のプロセッサシステムは、共有メモリに動作可能に接続されうる複数のプロセッサであって、その複数のプロセッサのうちの少なくとも一つが、データを要求するデータコマンドを出力する複数のプロセッサと、前記データコマンドを取得する機能を有する第1アドレス集結部と、前記データコマンドを取得する機能を有する第2アドレス集結部と、を有する。その装置はまた、他の複数のプロセッサシステムを含む装置であって、前記他の複数のプロセッサシステムのそれぞれは、それぞれの共有メモリに動作可能に接続される複数のプロセッサと、前記データコマンドを取得する機能を有する第1アドレス集結部と、前記データコマンドを取得する機能を有する第2アドレス集結部と、を有してもよい。前記第1のプロセッサシステムの前記第2アドレス集結部は、(i)前記他の複数のプロセッサシステムであって、前記データコマンドによりアドレス指定されたデータを自身内に保存せしめる一つのプロセッサシステムを選択する機能、および(ii)前記選択されたプロセッサシステムの第1アドレス集結部に前記データコマンドを送信する機能を備える。
本発明の上記以外の態様、特徴、および利点などは、添付図面とともに以下の詳細な説明により当業者には明確に理解される。
現在のところ好適である図面を例示として添付するが、本発明は図面と同一の構成および手段に限定するものではない。
図において同一の符号は同一の要素を示すものとする。図1は、実施の形態に係る一以上の態様の実施に適したプロセッサシステム100を示す。簡潔および明確にするために、図1の構成図を参照し装置100を用いて説明するが、同一の主旨を有する様々な態様の方法にその説明を簡単に適用できるのは言うまでもない。
プロセッサシステム100は、複数のプロセッサであるプロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108を備えるが、本発明の主旨および範囲を逸脱しない限り、いかなる数のプロセッサを用いてもよい。そのプロセッサシステム100はまた、メモリインタフェース回路110と、共有メモリ112と、第1アドレス集結部AC0および第2アドレス集結部AC1のそれぞれと、を含む。プロセッサ102、プロセッサ104、プロセッサ106、プロセッサ108、およびメモリインタフェース回路110は少なくとも、適切なプロトコルによりそれぞれの構成要素との間でのデータ転送を可能にするバスシステム114を介してお互いに接続されるのが好ましい。
プロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108のそれぞれの構成は同一であってもよいし、異なってもよい。プロセッサ群は、共有(またはシステム)メモリ112からのデータの要求を可能にし、そのデータを操作することで所望の結果への達成を可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108はソフトウエアおよび/またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、プロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108の少なくとも一つ以上は、ピクセルデータなどのデータを要求し操作できるグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
システム100のプロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108の一つ以上は、メイン(管理)プロセッサとして機能する。そのメインプロセッサは、他のプロセッサによるデータの処理のスケジューリングと調整を行うことができる。
メモリインタフェース回路110は、プロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108のプロセッサ群がアプリケーションプログラムやそれと同様のものを実行できるよう、そのプロセッサ群と共有メモリ112との間でデータ転送を実行するのが好ましい。一例として、メモリインタフェース回路110は、一以上の広帯域チャンネルを共有メモリ内に提供でき、さらに、バスシステム114に対するスレーブとして機能するよう構成されうる。任意の既知のメモリインタフェース技術がメモリインタフェース回路110の実装のために用いられうる。
システムメモリ112は、メモリインタフェース回路110を通じてプロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108に接続されるダイナミックランダムアクセスメモリ(DRAM)であるのが好ましい。そのシステムメモリ112は、好適にはダイナミックランダムアクセスメモリだが、スタティックランダムアクセスメモリ(SRAM)、磁気ランダムアクセスメモリ(MRAM)、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
プロセッサ群について再度いえば、プロセッサ102、プロセッサ104、プロセッサ106およびプロセッサ108のそれぞれは、プログラムを実行するためのプロセッサコアとローカルメモリとを含むのが好ましい。これら要素は、共通の半導体基板上に一体的に設けられてもよく、あるいは、設計者の意図により別々に設けられてもよい。プロセッサコアは、好適にはパイプライン処理を用いて実装される。なお、パイプライン処理においては、パイプライン型の方法で論理命令が処理される。そのパイプラインは、命令が処理される任意の数のステージに分割されるが、一般的には、一つ以上の命令をフェッチするステージ、その命令をデコードするステージ、命令間の依存性をチェックするステージ、その命令を出力するステージ、その命令を実行するステージを有する。この点に関連して、そのプロセッサコアには、命令バッファ、命令デコード回路、依存性チェック回路、命令出力回路、および実行段階が含まれる。
ローカルメモリはバスを介してプロセッサコアに接続され、プロセッサコアと同一チップ(同一の半導体基板)上に設けられるのが好ましい。ローカルメモリは、従来のハードウェアキャッシュメモリではないことが好ましい。なお、そのローカルメモリには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどは存在しない。チップ上の実装面積はしばしば限られているので、ローカルメモリのサイズは、共有メモリ112のサイズより遥かに小さい。
プロセッサは、プログラムの実行とデータの操作のために、バスシステム114を介してシステムメモリ112からそれぞれのローカルメモリにデータ(プログラムデータを含みうる)をコピーするためのデータアクセスを要求することが好ましい。データアクセスを容易にするメカニズムは、例えば、ダイレクトメモリアクセス(DMA)技術などの任意の既知の技術を用いて実装されてもよい。
第1アドレス集結部AC0および第2アドレス集結部AC1は、プロセッサシステム100と、他のプロセッサシステムなどの任意の他の外部のデバイスとの間で、データの一貫性を実現できる。その第1アドレス集結部AC0および第2アドレス集結部AC1の機能および動作についての詳細は後述する。
図2は、複数のプロセッサシステム、例えば、プロセッサシステム100A、プロセッサシステム100B、およびプロセッサシステム100Cが、適切なネットワークプロトコルによりお互いに接続されうる様子を示す。それぞれのプロセッサシステムは、図1の構成を有してもよく、および/または図1と同様の構成を有してもよい。システム間においてこの相互接続を実現するために、それぞれのプロセッサシステム100は、例えば、システム100Aと、一以上の他のシステム100Bやシステム100Cとの間において、通信チャンネルを介したデータ転送を実施できるよう構成される、拡張バスなどの外部のインタフェース回路(図示しない)を含んでもよい。好適には、その外部のインタフェース回路は、外部のデバイスとの間で非一貫性トラフィックを交換するよう構成され、および/または、バスシステム114を他のプロセッサシステムにまで拡張することにより一貫性のある動作を行うよう構成される。なお、外部のインタフェース回路110を実装するために、任意の既知の外部のインタフェース技術が用いられうる。その回路は、コマンドとデータとをパケット化されたエンベロープ内に格納し、外部のデバイスとの間におけるそのエンベロープの正常な伝送を保証するのが好ましい。
それぞれのプロセッサ(プロセッサ102およびプロセッサ104のみを図示する)は、自身のプロセッサシステム100の共有メモリや他のプロセッサシステム100の共有メモリなどの任意の共有メモリ112の中に保存されたデータを取得できるのが好ましい。例えば、プロセッサシステム100Bのプロセッサ102Bは、プロセッサシステム100Aの共有メモリ112Aからデータを取得でき、さらに、その共有メモリ112A内にデータを保存できるのが好ましい。この点に関連して、それぞれのプロセッサにより認識されるメモリスペースを、すべての共有メモリ112またはいくつかの共有メモリ112にまで広げることができる。このような状況下において、任意のあるプロセッサにより取得されうるデータに関し、データの一貫性を維持することが好ましい。好適には、データ一貫性のスキームは、少なくとも部分的には、一以上のプロセッサシステム100の第1アドレス集結部AC0および第2アドレス集結部AC1により実行される。
ここで、第1アドレス集結部AC0および第2アドレス集結部AC1の機能および動作を図2および図3に示す。なお、図2および図3は、実施の形態のいくつかの態様に従ってデータの一貫性を実現しうる方法のうちほんの一例を示すものである。この点に関連し、本例の場合、三つのプロセッサシステム100A、プロセッサシステム100B、およびプロセッサシステム100C間におけるデータ一貫性が望ましいものとする。プロセッサ群のうち少なくとも一つが、プロセッサシステム100群のうちの一つのプロセッサシステム100内に保存されたデータを要求するデータコマンドを出力するときに、本例が開始される。例えば、プロセッサシステム100Bのプロセッサ102Bは、まずプロセッサシステム100Bの第2アドレス集結部AC1B宛てに送信されるデータコマンドを出力できる(動作300)。
次に、プロセッサシステム100Bの第2アドレス集結部AC1Bは、他のプロセッサシステム100Aまたはプロセッサシステム100Cであって、データコマンドによりアドレス指定されたデータが保存される一つのプロセッサシステムを選択する(図3の動作304)。本例の場合、データコマンドによりアドレス指定されたデータは、プロセッサシステム100Aの共有メモリ112A内に保存されているものとする。そのため、プロセッサシステム100Bの第2アドレス集結部AC1Bは、プロセッサシステム100Aの第1アドレス集結部AC0Aにそのデータコマンドを送信するのが好ましい(動作304)。
他に、動作302(図示しない)において、第1アドレス集結部AC0Bは、そのコマンドによりアドレス指定されたデータが、第2プロセッサシステム100Bのメモリスペース内に存在するか否か(例えば、共有メモリ112A内ではなく第2プロセッサシステム100Bの共有メモリ112内に存在するか)を判断できる。もし、そのデータがプロセッサシステム100Bのメモリスペース内に存在すれば、動作304を省略でき、処理は(以下の)動作306に進む。
次に、プロセッサシステム100A(選択されたプロセッサシステム)の第1アドレス集結部AC0Aは、プロセッサシステム100A、プロセッサシステム100Bおよびプロセッサシステム100Cのそれぞれに含まれる第2アドレス集結部AC1に、そのデータコマンドをブロードキャストできるのが好ましい(動作306)。第2アドレス集結部AC1A、第2アドレス集結部AC1Bおよび第2アドレス集結部AC1Cのそれぞれは、自身のプロセッサシステム100内の複数のプロセッサ(および/またはMIC110などの他のデバイス)のそれぞれにそのデータコマンドを送信するのが好ましい(動作308)。ここで、一以上の第1アドレス集結部AC0が、それぞれ、第2アドレス集結部AC1にデータコマンドを送信する場合には、それぞれの第2アドレス集結部AC1は、ブロードキャストされた複数のデータコマンドを一つに統合する(marge;統合する、連結する、まとめる、マージする)ことができる。なお、本例の場合、第1アドレス集結部AC0Aのみが、プロセッサ102Bにより出力されたデータコマンドを、第2アドレス集結部AC1A、第2アドレス集結部AC1B、および第2アドレス集結部AC1Cにブロードキャストするものとする。
各プロセッサシステム100内においてそのブロードキャストされたデータコマンドを取得したことを受けて、それぞれの第2アドレス集結部AC1は、自身のプロセッサシステム内のプロセッサ(および/または他のデバイス)から一貫性に関する応答を受信するのが好ましい(動作310)。したがって、例えば、第2アドレス集結部AC1Cは、プロセッサ102C、プロセッサ104CおよびMIC110Cのそれぞれから一貫性に関する応答を取得できる。次に、その一貫性に関する応答は、その第2アドレス集結部AC1のそれぞれにより、選択されたプロセッサシステム100Aの第1アドレス集結部AC0Aに送信されるのが好ましい。
動作312においては、第1アドレス集結部AC0Aは、その一貫性に関する応答を連結し、さらに、プロセッサシステム100A、プロセッサシステム100Bおよびプロセッサシステム100Cのそれぞれの第2アドレス集結部AC1に、その連結された一貫性に関する応答をブロードキャストできるのが好ましい。それぞれの第2アドレス集結部AC1は、その連結された一貫性に関する応答を受け取ったことを受けて、その応答を、自身のプロセッサシステム内のプロセッサ(および/または他のデバイス)のそれぞれに、ブロードキャストできるのが好ましい。ここで、一貫性処理を管理している第1アドレス集結部AC0の数が一以上であれば、それぞれの第2アドレス集結部AC1は、その連結された一貫性に関する応答をプロセッサ群(および/または他のデバイス)にブロードキャストする前に、その応答を連結することもできる。なお、本例では、このような一貫性の管理を行っているのは、プロセッサシステム100Aの第1アドレス集結部AC0Aのみである。
本実施の形態によれば、一貫性に関する応答を取得した、プロセッサ群やアクセス対象のメモリデバイス(上述の例ではプロセッサシステム100Aの共有メモリ112A)などのそれぞれのデバイスが、その応答の内容に応じた以下の処理を行うことにより、キャッシュコヒーレンシを維持できる。例えば、読み出しデータコマンドに対する応答が参照され、アクセス対象のメモリ内に含まれるデータをキャッシュするデバイスが存在しないと判断された場合であれば、そのメモリデバイス内のデータが、データコマンドを出力したデバイス(上述の例ではプロセッサ102B)に転送される。
他に、それらデバイス群が、読み出しデータコマンドに対する応答を参照し、アクセス対象のメモリ内に含まれるデータが一のデバイスによりキャッシングされ、さらにそのデータが更新されていると判断した場合であれば、そのデータをメモリデバイス内に書き戻す。次に、データコマンドを出力したデバイス(上述の例ではプロセッサ102B)により新たなデータコマンドが再出力される。なお、以上は処理の一例であり、キャッシュコヒーレンシの維持手段には様々なバリエーションが存在する。
ここで、図4は、他の実施の形態に係る態様を示す構成図である。場合によっては、データ一貫性の対象の範囲を制限するのが好ましい。例えば、データ一貫性の対象をプロセッサシステム100Aおよびプロセッサシステム100Bの二つのみの間に制限する。このシナリオによれば、データ一貫性の目的を実現するために必要なトラフィック制御を極端に低減できる。前述の実施の形態と同様に、図4に示す他のアプローチの動作を一例を用いて説明する。特に、プロセッサシステム100Bのプロセッサ102Bは、まずプロセッサシステム100Bの第2アドレス集結部AC1B宛てに送信されるデータコマンドを出力できる(動作400)。
次に、プロセッサシステム100Bの第2アドレス集結部AC1Bは、他のプロセッサシステム100Aまたはプロセッサシステム100Cであって、そのデータコマンドによりアドレス指定されたデータが保存される一つのプロセッサシステムを選択する(動作404)。本例の場合、データコマンドによりアドレス指定されたデータは、プロセッサシステム100Aの共有メモリ112A内に保存されるものとする。そのため、プロセッサシステム100Bの第2アドレス集結部AC1Bは、プロセッサシステム100Aの第1アドレス集結部AC0Aにそのデータコマンドを送信するのが好ましい。
他に、動作402において、第1アドレス集結部AC0Bは、そのコマンドによりアドレス指定されたデータが、第2プロセッサシステム100Bのメモリスペース内に存在するか否か(例えば、共有メモリ112A内ではなく第2プロセッサシステム100Bの共有メモリ112内に存在するか)を判断できる。もし、そのデータがプロセッサシステム100Bのメモリスペース内に存在すれば、動作404を省略でき、処理は(以下の)動作406に進む。
次に、プロセッサシステム100A(選択されたプロセッサシステム)の第1アドレス集結部AC0Aは、プロセッサシステム100Aの第2アドレス集結部AC1Aに、そのデータコマンドを送信できるのが好ましい。このことは、第1アドレス集結部AC0Aが、第2アドレス集結部AC1のすべてにデータコマンドをブロードキャストした図2に示す処理と異なるものである。次に、第2アドレス集結部AC1Aは、自身のプロセッサシステム100A内の複数のプロセッサ(および/またはMIC110などの他のデバイス)のそれぞれにデータコマンドを送信するのが好ましい(動作408)。ここで、第1アドレス集結部AC0Aが一以上のデータコマンドを送信する場合には、第2アドレス集結部AC1Aは、ブロードキャストされた複数のデータコマンドを一つに統合することができる。
動作410において、プロセッサシステム100A内においてブロードキャストされたデータコマンドを取得したことを受けて、第2アドレス集結部AC1Aは、プロセッサ(および/または他のデバイス)から一貫性に関する応答を受信するのが好ましい。次に、第2アドレス集結部AC1Aは、第1アドレス集結部AC0Aに、その一貫性に関する応答を送信するのが好ましい。動作412(図示しない)において、第1アドレス集結部AC0Aは、その一貫性に関する応答を連結し、さらに、プロセッサシステム100Aおよびプロセッサシステム100Bのそれぞれの第2アドレス集結部AC1に、その連結された一貫性に関する応答をブロードキャストできるのが好ましい。それぞれの第2アドレス集結部AC1は、その連結された一貫性に関する応答を受け取ったことを受けて、その応答を、自身のプロセッサシステム内のプロセッサ(および/または他のデバイス)のそれぞれに、ブロードキャストできるのが好ましい。ここで、一貫性処理を管理している第1アドレス集結部AC0の数が一以上であれば、それぞれの第2アドレス集結部AC1は、その連結された一貫性に関する応答をプロセッサ群(および/または他のデバイス)にブロードキャストする前に、その応答を連結することもできる。なお、本例では、このような一貫性の管理を行っているのは、プロセッサシステム100Aの第1アドレス集結部AC0Aのみである。
本実施の形態によれば、上述の実施の形態と同様に、一貫性に関する応答を取得した、プロセッサ群、およびアクセス対象のメモリデバイス(上述の例ではプロセッサシステム100Aの共有メモリ112A)などのそれぞれのデバイスが、その応答の内容に応じた上述の処理を行うことにより、キャッシュコヒーレンシを維持できる。
他の実施の形態では、システム100はメインプロセッサ、例えば、プロセッサ102を含み、そのプロセッサは、他のプロセッサであるプロセッサ104、プロセッサ106、およびプロセッサ108に動作可能に接続されるとともに、バスシステム114を介して共有メモリ112に接続されうる。そのメインプロセッサ102は、他のプロセッサであるプロセッサ104、プロセッサ106、およびプロセッサ108によるデータの処理のスケジューリングと調整を行うことができる。なお、メインプロセッサは、他のプロセッサであるプロセッサ104、プロセッサ106、およびプロセッサ108と異なり、ハードウエアキャッシュメモリに接続されうる。このハードウエアキャッシュメモリは、共有メモリ112と、プロセッサ102、プロセッサ104、プロセッサ106、およびプロセッサ108のローカルメモリの一つ以上とのうち少なくとも一つから取得されたデータをキャッシュできる。メインプロセッサ102は、プログラムの実行とデータの操作のために、ダイレクト・メモリ・アクセス(DMA)技術などの任意の既知の技術を用いて、バスシステム114を介してシステムメモリ112からキャッシュメモリ内にデータ(プログラムデータを含みうる)をコピーするためのデータアクセスを要求することが好ましい。
ここで、上述した一つ以上の特徴の実現に適した、好適なマルチプロセッサシステムのコンピュータアーキテクチャについて説明する。一つ以上の実施形態によれば、マルチプロセッサシステムは、ゲームシステムや、ホームターミナルや、PCシステムや、サーバシステムや、ワークステーションなどの豊富なメディアを有するアプリケーションのスタンドアロン型処理および/または分散型処理のためのシングルチップソリューションとして実装できる。一部のアプリケーション、例えば、アプリーケーションがゲームシステムおよびホームターミナルである場合、リアルタイムの演算が必要である。例えば、リアルタイムの分散型ゲームアプリケーションにおいて、ネットワークを経由した画像復元、3Dコンピューターグラフィック、音声生成、ネットワーク通信、物理シミュレーション、人工知能計算のうち一つ以上は、ユーザにリアルタイムの感覚を体験させるために十分の速さで実行されなければならない。したがって、マルチプロセッサシステムにおける各プロセッサは、短く、かつ予測可能な時間内でタスクを終了させなければならない。
この目的を達成するために、このコンピュータアーキテクチャによれば、マルチプロセッサのコンピュータシステムのすべてのプロセッサは、共通のコンピュータモジュール(またはセル)から構成される。この共通のコンピュータモジュールは、共通の構成を有し、同一の命令セットアーキテクチャを用いるのが好ましい。マルチプロセッサのコンピュータシステムは、コンピュータプロセッサを用いて、1以上のクライアント、サーバ、PC、携帯端末、ゲーム機、PDA、セットトップボックス、アプリケーション、デジタルテレビおよび他のデバイスから構成されうる。
必要に応じて、複数のコンピュータシステムをそれぞれネットワークのメンバとしてもよい。一貫性のあるモジュール構造により、マルチプロセッサコンピュータシステムによってアプリケーションおよびデータの効率的な高速処理が可能となり、かつネットワークを利用すれば、ネットワークを介してアプリケーションおよびデータの迅速な伝送ができる。またこの構造により、様々なサイズおよび処理能力をもつネットワークメンバの形成、ならびにこれらメンバによって処理されるアプリケーションの準備を簡略化できる。
図5は、基本的な処理モジュールであるプロセッサ要素(PE)500を示す。PE500は、I/Oインタフェース502と、処理ユニット(PU)504と、複数のサブ処理ユニット508、すなわち、サブ処理ユニット508Aと、サブ処理ユニット508Bと、サブ処理ユニット508Cと、サブ処理ユニット508Dとを含む。ローカル(すなわち内部)PEバス512は、PU504、SPU群508、およびメモリインタフェース511間のデータおよびアプリケーションの伝送を行う。ローカルPEバス512は、例えば従来構成でもよいし、またはパケットスイッチネットワークとして実装することもできる。パケットスイッチネットワークとして実装するとより多くのハードウェアが必要になるが、利用可能な帯域が広がる。
PE500はディジタルロジック回路を実装する各種方法を利用して構成できる。ただし好適には、PE500はシリコン基板上の相補的金属酸化膜半導体(CMOS)を用いる一つの集積回路として構成される。基板の他の材料には、ガリウム砒素、ガリウムアルミニウム砒素、および広範な種類の不純物を用いた他のいわゆるIII−B族化合物が含まれる。PE500はまた、超伝導材料を用いて高速単一磁束量子(RSFQ)ロジック回路等として実装することもできる。
PE500は、広帯域メモリ接続516を介して共有(メイン)メモリ514に密接に関連付けられる。メモリ514は好適にはダイナミックランダムアクセスメモリ(DRAM)だが、スタティックランダムアクセスメモリ(SRAM)、磁気ランダムアクセスメモリ(MRAM)、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
PU504およびサブ処理ユニット508は、それぞれ、ダイレクトメモリアクセス(DMA)機能を有するメモリフローコントローラ(MFC)と接続されることが望ましい。MFCは、メモリインタフェース511と協働して、DRAM514、PE500におけるサブ処理ユニット508、PU504間のデータの転送を円滑にするものである。ここで、DMACおよび/またはメモリインタフェース511は、サブ処理ユニット508とPU504とから独立して設置されるようにしてもよいし、一体化されるようにしてもよい。実際に、DAMCの機能および/またはメモリインタフェース511の機能は、サブ処理ユニット508およびPU504の一つ以上(好ましくはすべて)に一体化できる。ここで、DRAM514もまた、PE500から独立して設置されるようにしてもよいし、一体化されるようにしてもよい。例えば、DRAM514は図に示すようにチップ外部に設けられるようにしてもよく、集積方式でチップ内蔵されるようにしてもよい。
PU504は、例えばスタンドアロン式のデータおよびアプリケーション処理が可能な標準的なプロセッサでもよい。動作時には、PU504はサブ処理ユニット群によるデータおよびアプリケーションの処理のスケジューリングおよび調整を行う。サブ処理ユニット群は、好適には、一命令複数データ(SIMD)プロセッサである。PU504の制御下で、サブ処理ユニット群はデータおよびアプリケーションの処理を並列に、かつ独立して行う。PU504としては、RISC(reduced instruction−set computing)技術を用いるマイクロプロセッサアーキテクチャとなるPowerPC(登録商標)コアを用いることが好ましい。RISCは単純な命令の組み合わせによって比較的複雑な命令を実行するものである。したがって、プロセッサのタイミングは、比較的簡単かつ速いオペレーションに基づきうる。これは、決められたクロック速度においてより多くの命令を実行することを可能とする。
ここで、PU504は、サブ処理ユニット508のうちの一つとして実装されてもよい。この場合、このサブ処理ユニット508は、メイン処理ユニットによる処理、すなわち各々のサブ処理ユニット508によるデータとアプリケーションの処理のスケジューリングと統合処理を行うものとすればよい。さらに、PE500内において、複数のPUを実装してもよい。
このモジュール構造では、あるコンピュータシステムで使用されるPE500の数は、そのシステムが必要とする処理能力に基づく。例えば、サーバは4つのPE群500、ワークステーションは二つのPE群500、PDAは一つのPE500を使用しうる。あるソフトウェアセルの処理に割り当てられるPE500のサブ処理ユニットの数は、セル内のプログラムおよびデータの複雑さおよび規模によって異なる。
図6は、サブ処理ユニット(SPU)508の好適な構造と機能を示す図である。サブ処理ユニット508のアーキテクチャは、汎用プロセッサ(多数のアプリケーションにおいて高い平均性能を実現するように設計されているもの)と特殊用途のプロセッサ(一つのアプリケーションにおいて高い性能を実現するように設計されている)との間に位置するものであることが望ましい。サブ処理ユニット508は、ゲームアプリケーション、メディアアプリケーション、ブロードバンドシステムなどにおいて高い性能を実現すると共に、リアルタイムアプリケーションのプログラマに高度な制御自由度を提供するように設計されている。サブ処理ユニット508の一部の機能として、グラフィック構造パイプライン、サーフェス分割、高速フーリエ変換、画像処理キーワード、ストリーム処理、MPEGエンコード/デコード、暗号化、復号化、デバイスドライバー拡張、モデリング、ゲームフィジクス、コンテンツ制作、音声合成および音声処理などを挙げることができる。
サブ処理ユニット508は、すなわちSPUコア510Aとメモリフローコントローラ(MFC)510Bという二つの基本機能ユニットを有する。SPUコア510Aは、プログラムの実行、データの操作などを担うものであり、一方、MFC510Bは、SPUコア510Aと、システムのDRAM514との間のデータ転送に関連する機能を担うものである。
SPUコア510Aはローカルメモリ550と、命令(インストラクション)ユニット(IU)552と、レジスタ554と、一つ以上の浮動小数点処理ステージ556と、一つ以上の固定小数点処理ステージ558とを有する。ローカルメモリ550は、SRAMのようなシングルポートのRAMを用いて実装されることが望ましい。メモリへのアクセスのレイテンシを軽減するために、従来のほとんどのプロセッサはキャッシュを用いるが、SPUコア510Aは、キャッシュよりも、比較的小さいローカルメモリ550を用いる。実際には、リアルタイムのアプリケーション(およびここで言及したほかのアプリケーション)のプログラマに、予測可能で、かつ一致したメモリアクセスのレイテンシを提供するために、サブ処理ユニット508A内においてキャッシュメモリアーキテクチャを用いることは好ましくない。キャッシュメモリのキャッシュヒット/ミス値は、数サイクルから数百サイクルの範囲内で変化する、予測困難な、メモリアクセス回数を生じさせる。このようなメモリアクセスの回数の予測困難性は、例えばリアルタイムアプリケーションのプログラミングに望まれるアクセスタイミングの予測可能性を下げる。データ演算を伴うDMA転送をオーバーラップすることで、ローカルメモリSRAM550内のレイテンシを補うことができる。これはリアルタイムアプリケーションのプログラミングに高い制御自由度を提供する。DMA転送と関連するレイテンシおよび命令のオーバーヘッドが、キャッシュミスにより生じたレイテンシより長いため、SRAMローカルメモリアプローチは、DMA転送サイズが十分大きいかつ十分予測可能なとき(例えばデータが要求される前にDMAコマンドを発行することができるとき)において優位性を提供する。
サブ処理ユニット508のうちのいずれか一つの上で実行されるプログラムは、ローカルアドレスを用いて、関連するローカルメモリ550を参照する。なお、ローカルメモリ550の各場所にはシステムの全体のメモリマップ上におけるリアルアドレス(RA)が付与されている。これは、特権レベルのソフトウェアがローカルメモリ550を一つの処理における実効アドレス(EA)にマッピングすることを可能とし、それによって二つのローカルメモリ550間のDMA転送が容易になる。PU504は、実効アドレスを用いてローカルメモリ550に直接アクセスすることもできる。ローカルメモリ550は、556キロバイトの容量を有し、レジスタ554の容量は128×128ビットであることが望ましい。
SPUコア510Aは、演算パイプラインを用いて実装されることが望ましく、その中において論理命令がパイプライン方式で処理される。パイプラインは、命令を処理する任意の数のステージに分けることができるが、通常、パイプラインは、一つ以上の命令のフェッチ、命令のデコード、命令間の従属関係のチェック、命令の発行、および命令の実行から構成される。これに関連して、命令ユニット552は、命令バッファと、命令デコード回路と、従属関係チェック回路と、命令発行回路とを含む。
命令バッファは、ローカルメモリ550と接続されており、命令がフェッチされたときにこれらの命令を一時的に格納することができる複数のレジスタを有することが好ましい。命令バッファは、すべての命令が一つのグループとして(すなわち実質的に大量に)レジスタから出力されるように動作することが好ましい。命令バッファはいかなるサイズであってもよいが、レジスタの数がおよそ2または3以下となるようにするサイズであることが好ましい。
通常、デコード回路は命令を細分化すると共に、対応する命令の機能を果たす論理・マイクロオペレーションを発生させる。例えば、論理・マイクロペレーションは、計算オペレーションと論理オペレーションの指定、ローカルメモリ550へのロードオペレーションとストアオペレーションの指定、レジスタソースオペランドおよび/または即値データオペランドの指定などを行うことができる。デコード回路は、ターゲットのレジスタのアドレスや、構造リソースや、機能ユニットおよび/またはバスなどのような、命令が用いるリソースを指定してもよい。デコード回路は、リソースが必要とされる命令パイプラインのステージを示す情報を提供してもよい。命令デコード回路は、同時に大量に、命令バッファのレジスタの数と同じ数の命令をデコードするように動作可能であることが好ましい。
従属関係チェック回路は、チェック対象となる命令のオペランドがパイプラン内の他の命令のオペランドに従属するか否かを判定するためのチェックを行うデジタルロジックを含む。従属するならば、チェック対象となる命令は、これらの他のオペランドが(例えば、これらの他の命令の実行の完了を許可することによって)更新されるまで、実行されるべきではない。従属関係チェック回路は、デコード回路から同時に送信されてきた複数の命令の従属関係を判定することが好ましい。
命令発行回路は、浮動小数点処理ステージ556および/または固定小数点処理ステージ558に命令を発行することができる。
レジスタ554は、128―エントリレジスタファイルのような、比較的大きな統合レジスタファイルとして実装されることが好ましい。これは、レジスタ不足を回避するためのレジスタのリネームを必要とせずに、深くパイプライン化された高周波数の実行を可能とする。ハードウェアのリネームは、一般的にプロセッサシステムにおける実装面積と電力の高い割合を消費する。したがって、ソフトウェアによるループアンローリングまたは他のインターリーブ技術によってレイテンシがカバーされるような場合において、優位性のあるオペレーションを実現できる。
SPUコア510Aは、クロックサイクル毎に複数の命令を発行するようなスーパースカラアーキテクチャで実装されることが好ましい。SPUコア510Aは、命令バッファから同時に送信される命令の数、例えば2と3の間(クロックサイクル毎に二つまたは3つの命令が発行されることを意味する)に対応する程度のスーパースカラとして動作可能であることが好ましい。必要とされる処理能力に応じた多少なりの数の浮動小数点処理ステージ556と固定小数点処理ステージ558を用いることができる。好適な実施の形態では、浮動小数点処理ステージ556と固定小数点処理ステージ558の望ましいスピードは、それぞれ、毎秒32ギガ浮動小数点オペレーション(32 GFLOPS)と毎秒32ギガオペレーション(32 GOPS)である。
MFC510Bは、バスインターフェースユニット(BIU)564と、メモリマネジメントユニット(MMU)562と、ダイレクトメモリアクセスコントローラ(DMAC)560とを有することが望ましい。低電力消費の設計目的を達成するために、MFC510Bは、DMAC560を除いて、SPUコア510Aおよびバス512の半分の周波数(半分のスピード)で動作することが好ましい。MFC510Bは、バス512からサブ処理ユニット508に入るデータと命令を操作することができ、DMACのためのアドレス変換と、データ一貫性のためのスヌープオペレーションとを提供する。BIU564は、バス512とMMU562とDMAC560との間のインターフェースを提供する。したがって、サブ処理ユニット508(SPUコア510AとMFC510Bを含む)とDMAC560は、物理的および/または論理的にバス512と接続されている。
MMU562は、メモリアクセスのために実効アドレス(DMAコマンドから取得される)をリアルアドレスへ変換することができるようにすることが望ましい。例えば、MMU562は、実効アドレスの比較的高いオーダのビットをリアルアドレスのビットに変換できる。なお、比較的低いオーダアドレスビットについては、変換不可であると共に、物理的におよび論理的にリアルアドレスの形成およびメモリへのアクセスのリクエストに用いられるようにすることが好ましい。具体的には、MMU562は、64ビットのメモリマネジメントモジュールをベースにして実装でき、4Kバイト、64Kバイト、1メガバイト、16メガバイトのページサイズと256MBのセグメントサイズを有する264のバイトの実効アドレス空間を提供することができる。MMU562は、DMAコマンドのために、265までの仮想メモリと、242バイト(4テラバイト)の物理メモリをサポート可能であることが好ましい。MMU562のハードウェアは、8−エントリの完全連想SLB、256−エントリの4ウェイセット連想TLB、TLBのための4×4代替マネジメントテーブル(RMT)を含むものとすることができる。なお、RMTはハードウェアTLBミスのハンドリングに用いられるものである。
DMAC560は、SPUコア510AからのDMAコマンドと、一つ以上の、PU504および/または他のSPUのような他のデバイスからのDMAコマンドとを管理することができることが望ましい。DMAコマンドは下記の3つのカテゴリがある。すなわち、ローカルメモリ550から共有メモリ514へデータを移動させるPutコマンド、共有メモリ514からローカルメモリ550へデータを移動させるGetコマンド、SLIコマンドと同期コマンドとを含むストレージコントロールコマンドである。同期コマンドは、アトミックコマンド、送信コマンド、専用のバリアコマンドを含むものとすることができる。DMAコマンドに応じて、MMU562は実効アドレスをリアルアドレスに変換し、このリアルアドレスはBIU564に転送される。
SPUコア510Aはチャンネルインターフェースとデータインターフェースとを用いて、DMAC560内のインターフェースと通信(DMAコマンド、ステータスなどの送信)することが好ましい。SPUコア510Aは、チャンネルインターフェースを介してDMAコマンドをDMAC560内のDMAキューに送信する。いったん、DMAキューに格納されたDMAコマンドは、DMAC560内の発行ロジックと完了ロジックにより操作される。一つのDMAコマンドのためのすべてのバス・トランザクションが完了すると、チャンネルインターフェースを介して、一つの完了信号がSPUコア510Aに返送される。
図7は、PU504の好ましい構造と機能を示す図である。PU504は、PUコア504Aとメモリフローコントローラ、すなわちMFC504Bとの二つの基本機能ユニットを有する。PUコア504Aは、プログラムの実行、データの操作、マルチプロセッサ管理機能などを担うものであり、一方、MFC504Bは、PUコア504Aと、システム100のメモリスペースとの間のデータ転送に関連する機能を担うものである。
PUコア504Aは、L1キャッシュ570と、命令ユニット572と、レジスタ574と、少なくとも一つの浮動小数点処理ステージ576と、少なくとも一つの固定小数点処理ステージ578とを有する。L1キャッシュ570は、共有メモリ、プロセッサ102、あるいはMFC504Bにおけるほかの部分のメモリスペースから受信したデータのキャッシング機能を提供する。PUコア504Aはスーパーパイプラインとして実装されることが好ましいため、命令ユニット572は、フェッチ、デコード、従属関係のチェック、発行などを含む多数のステージを有する命令パイプラインとして実装されることが好ましい。PUコア504Aは、スーパースカラ構造を有することが好ましく、それによって、クロックサイクル毎に命令ユニット572から2以上の命令が発行される。高い演算パワーを実現するために、浮動小数点処理ステージ576と固定小数点処理ステージ578は、パイプライン方式の多数のステージを有する。必要とされる処理能力に応じた多少なりの浮動小数点処理ステージ576と固定小数点処理ステージ578とを用いることができる。
MFC504Bは、バスインターフェースユニット(BIU)580と、L2キャッシュ582と、キャッシュ不可ユニット(NCU)584と、コアインターフェースユニット(CIU)586と、メモリマネジメントユニット(MMU)588とを有する。低電力消費の設計目的を達成するために、MFC504Bのほとんどは、PUコア504Aとバスの半分の周波数(半分のスピード)で動作することが好ましい。
BIU580は、バスと、L2キャッシュ582と、NCU584のロジックブロックとの間のインターフェースを提供する。BIU580は、完全一致のメモリオペレーションを実行するために、マスターデバイスとして動作してもよく、バス上のスレーブデバイスとして動作してもよい。マスターデバイスとして動作する場合、BIU580は、L2キャッシュ582とNCU584の代わりに、バスへのロードリクエストとストアリクエストを発信する。BIU580は、バスへ送ることができるコマンドの総数を限定するコマンドのフローコントロールメカニズムを実装してもよい。バス上のデータオペレーションは、8ビートになるように設計されることができ、そして、BIU580は、キャッシュラインが128バイト前後であり、一貫性と同期の精度が128KBであるように設計されることが好ましい。
L2キャッシュ582(およびそれをサポートするハードウェアロジック)は、512KBデータをキャッシュするように設計されることが好ましい。例えば、L2キャッシュ582は、キャッシュ可能なロードとストア、データのプリフェッチ、命令フェッチ、命令のプリフェッチ、キャッシュオペレーション、バリアオペレーションを操作できる。L2キャッシュ582は、8ウエイセットアソシエイティブシステムであることが好ましい。L2キャッシュ582は、6つのキャストアウトキュー(例えば6つのRCマシン)に合わせた6つのリロードキューと、8つの(64バイトの幅の)ストアキューとを有することができる。L2キャッシュ582は、L1キャッシュ570の中の一部または全てのデータのバックアップコピーを提供するように動作してもよい。これは特に、処理ノードがホットスワップ(動作中に変更)されたときの、復元状況において有用である。この構成は、L1キャッシュ570が、ほぼポート無しにさらに速く動作することを可能にするとともに、キャッシュ間の転送を速くすることができる(リクエストがL2キャッシュ582で止まることができるから)。この構成は、L2キャッシュ582にキャッシュ一貫性のマネジメントを及ばしめるメカニズムも提供する。
NCU584はインターフェースによってCIU586と、L2キャッシュ582と、BIU580と接続されており、通常、PUコア504Aとメモリシステム間のキャッシュ不可なオペレーションのキューまたはバッファ回路として機能する。NCU584は、PUコア504Aとの通信のうちの、L2キャッシュ582によって扱わない全ての通信を操作することが好ましい。ここで、L2キャッシュ582によって扱わないものとしては、キャッシュ不可なロードとストアや、バリアオペレーションや、キャッシュ一貫性オペレーションなどを挙げることができる。低電力消費の設計目的を達成するために、NCU584は、半分のスピードで動作することが好ましい。
CIU586は、MFC504BとPUコア504Aとの境界線上に配置され、浮動小数点処理ステージ576、固定小数点処理ステージ578、命令ユニット572、MMU588から、L2キャッシュ582とNCU584へ送られるリクエストのためのルーティング、アービトレイション、フローコントロールポイントとして動作する。PUコア504AとMMU588はフルスピードで動作し、L2キャッシュ582とNCU584は2:1のスピード比で動作可能であることが好ましい。こうすることによって、CIU586に周波数境界線が存在することになり、この境界線は、その一つの機能により、二つの周波数領域間にリクエストの転送およびデータのリロードをする際に、周波数の交錯を適切に操作する。
CIU586は、ロードユニット、ストアユニット、リロードユニットの3つの機能ブロックから構成される。さらに、データをプリフェッチする機能がCIU586により実行される。この機能は、ロードユニットの一部の機能であることが好ましい。CIU586は、下記の動作を実行可能であることが好ましい:(i)PUコア504AとMMU588からのロードリクエストとストアリクエストを受信する、(ii)これらのリクエストをフルスピードクロック周波数から半分のスピードに変換する(2:1クロック周波数変換)、(iii)キャッシュ可能なリクエストとキャッシュ不可なリクエストとをそれぞれL2キャッシュ582とNCU584へルーティングする、(iv)L2キャッシュ582とNCU584へのリクエストが均等になるように調整する、(v)リクエストが目標時間内に受信されると共に、オーバーフローが発生しないための、L2キャッシュ582とNCU584へ送信するリクエストのフローコントロールを提供する、(vi)ロードリターンデータを受信すると共に、これらのデータを浮動小数点処理ステージ576、固定小数点処理ステージ578、命令ユニット572、またはMMU588へルーティングする、(vii)スヌープリクエストを浮動小数点処理ステージ576、固定小数点処理ステージ578、命令ユニット572、またはMMU588へ転送する、(viii)ロードリターンデータとスヌープトラフィックを半分のスピードからフルスピードへ変換する。
MMU588は、第2レベルアドレス変換手段のごとく、PUコア504Aのためにアドレス変換を提供することが好ましい。変換の第1レベルは、PUコア504A内において、セパレート命令と、MMU588より遥かに小さくてかつ速いデータERAT(実効アドレスからリアルアドレスへの変換)アレイとにより提供されることが好ましい。
PU504は64ビットで実装され、4〜6GHz、10F04(Fan−out−of−four)で動作することが好ましい。レジスタは64ビットの長さを有することが好ましく(特定用途のための一つまたはより多くのレジスタが64ビットより小さいかもしれないが)、実効アドレスは64ビットの長さを有することが好ましい。命令ユニット572、レジスタ574、浮動小数点処理ステージ576と固定小数点処理ステージ578はRISCコンピューティング技術を達成するためにPowerPC技術により実装されることが好ましい。
このコンピュータシステムのモジュラー構造のさらなる詳細については、米国特許第6526491号公報に記載されている。このモジュール構造によれば、そのネットワークのメンバにより使用されるPEの数は、そのメンバが必要とする処理能力に基づく。例えば、サーバは4つのPE、ワークステーションは二つのPE、PDAは一つのPEを使用しうる。あるソフトウェアセルの処理に割り当てられるPEのAPUの数は、セル内のプログラムおよびデータの複雑さおよび規模によって異なる。
本発明に係る少なくとも一つの別の態様によれば、上述した方法および装置は、例えば、図に示す適切なハードウエアを用いて実現できる。そのようなハードウエアは任意の既知の技術を用いて実装できる。なお、その既知の技術として、例えば、標準のデジタル回路、ソフトウエアおよび/またはファームウエアプログラムを実行できる任意の既知のプロセッサ、プログラム可能な読み出し専用メモリ群(PROM群)、プログラム可能なアレイ論理デバイス群(PAL群)などの一以上のプログラム可能なデジタルデバイスまたはシステムが挙げられる。さらに図内の装置は、ある機能ブロックに分割されて示されているが、そのようなブロックは別々の回路で実装でき、および/または、一以上の機能ユニットに結合させることができる。さらに、本発明に係る様々な態様は、適切な記憶メディアや(フロッピー(登録商標)ディスク、メモリチップなどの)持ち運び可能な、および/または配布のためのメディア上に保存可能なソフトウエアおよび/またはファームウエアプログラムにより実装される。
ここでは本発明の具体例について説明したが、これらの実施例は単に本発明の趣旨と応用を示すものである。したがって、請求項により定義された本発明の主旨および範囲から逸脱しないかぎり、上述した実施形態に対して様々な変更を加えることができる。
実施の形態の一つ以上の態様に係る2以上のサブプロセッサを有するマルチプロセッサシステムの構成を示す図である。 実施の形態の一つ以上の態様に係る、相互に連結した2以上のプロセッサシステムを有する分散型システムの構成を示す図である。 図2のシステムにより実施されうる処理ステップを示すフローチャートである。 図2のシステムの他の機能の構成を示す図である。 実施の形態の一つ以上の別の態様を実施するために用いられうる好適なプロセッサ要素(PE)の構成を示す図である。 実施の形態の一つ以上の別の態様に従って構成されうる図5のシステムのサブ処理ユニット(SPU)の構成の一例を示す図である。 実施の形態の一つ以上の別の態様に従って構成されうる図5のシステムの処理ユニット(PU)の構成の一例を示す図である。
符号の説明
100,100A,100B,100C プロセッサシステム,マルチプロセッサシステム,装置、 102,104,106,108,504,508 プロセッサ、 112,112A,514 共有メモリ,メインメモリ、 114 バスシステム、 550 ローカルメモリ、 AC0 第1アドレス集結部、 AC1 第2アドレス集結部。

Claims (36)

  1. 複数のプロセッサシステムのうちの一である第1のプロセッサシステム内における複数のデバイスのうちの一のデバイスが、前記複数のプロセッサシステムのうちいずれかのプロセッサシステム内に保存されているデータを要求するための、当該データを保持するプロセッサシステムを指定するアドレスを含むデータコマンドを、前記第1のプロセッサシステム内の第2アドレス集結部に送信するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記データコマンドにより指定されたアドレスに基づいて、前記データを保存している前記第1のプロセッサシステムとは異なる第2のプロセッサシステムを選択するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記選択された第2のプロセッサシステムの第1アドレス集結部に、前記データコマンドを送信するステップと、
    前記選択された第2のプロセッサシステムの前記第1アドレス集結部が、前記複数のプロセッサシステムのそれぞれに含まれる第2アドレス集結部に、前記データコマンドをブロードキャストするステップと、
    を含むことを特徴とする方法。
  2. 各プロセッサシステムにおいて、前記第2アドレス集結部が当該プロセッサシステム内の複数のデバイスのそれぞれに前記データコマンドをブロードキャストするステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 各プロセッサシステムにおいて、前記デバイスからの前記ブロードキャストされたデータコマンドに対する一貫性に関する応答を前記第2アドレス集結部が取得するステップをさらに含むことを特徴とする請求項2に記載の方法。
  4. 各プロセッサシステムの前記第2アドレス集結部が前記選択された第2のプロセッサシステムの前記第1アドレス集結部に、前記一貫性に関する応答を送信するステップをさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記選択された第2のプロセッサシステム内の前記第1アドレス集結部が、受信した前記一貫性に関する応答を統合するステップと、
    前記選択された第2のプロセッサシステム内の前記第1アドレス集結部が、前記複数のプロセッサシステムのそれぞれに含まれる前記第2アドレス集結部に、前記統合された一貫性に関する応答をブロードキャストするステップと、
    をさらに含むことを特徴とする請求項4に記載の方法。
  6. 各プロセッサシステムにおいて、前記第2アドレス集結部が当該プロセッサシステム内の複数のデバイスのそれぞれに、前記統合された一貫性に関する応答をブロードキャストするステップをさらに含むことを特徴とする請求項5に記載の方法。
  7. 複数のプロセッサシステムのうちの一である第1のプロセッサシステム内における複数のデバイスのうちの一のデバイスが、前記複数のプロセッサシステムのうちいずれかのプロセッサシステム内に保存されているデータを要求するための、当該データを保持するプロセッサシステムを指定するアドレスを含むデータコマンドを、前記第1のプロセッサシステム内の第2アドレス集結部に送信するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記データコマンドにより指定されたアドレスに基づいて、前記データを保存している前記第1のプロセッサシステムとは異なる第2のプロセッサシステムを選択するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記選択された第2のプロセッサシステムの第1アドレス集結部に、前記データコマンドを送信するステップと、
    前記選択された第2のプロセッサシステムの前記第1アドレス集結部が、前記選択された第2のプロセッサシステム内の第2アドレス集結部に、前記データコマンドを送信するステップと、
    を含むことを特徴とする方法。
  8. 前記選択された第2のプロセッサシステムに含まれる前記第2アドレス集結部が、前記選択された第2のプロセッサシステム内の複数のデバイスのそれぞれに、前記データコマンドをブロードキャストするステップと、
    をさらに含むことを特徴とする請求項7に記載の方法。
  9. 前記選択された第2のプロセッサシステム内の複数のデバイスからの、前記ブロードキャストされたデータコマンドに対する一貫性に関する応答を、前記選択された第2のプロセッサシステム内の前記第2アドレス集結部が取得するステップをさらに含むことを特徴とする請求項8に記載の方法。
  10. 前記選択された第2のプロセッサシステム内の前記第2アドレス集結部が、前記選択された第2のプロセッサシステム内の前記第1アドレス集結部に、前記一貫性に関する応答を送信するステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記選択された第2のプロセッサシステム内の前記第1アドレス集結部が、前記一貫性に関する応答を統合するステップと、
    前記選択された第2のプロセッサシステム内の前記第1アドレス集結部が、前記第1のプロセッサシステムに含まれる前記第2アドレス集結部に、前記統合された一貫性に関する応答を送信するステップと、
    をさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記第1のプロセッサシステム内の前記第2アドレス集結部が、前記第1のプロセッサシステム内の複数のデバイスのそれぞれに、前記統合された一貫性に関する応答をブロードキャストするステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. 共有メモリに動作可能に接続されうる複数のプロセッサであって、その複数のプロセッサのうちの少なくとも一つが、当該プロセッサシステム以外の他のプロセッサシステム内に保存されているデータの要求を行うための、当該データを保持するプロセッサシステムを指定するアドレスを含むデータコマンドを出力する複数のプロセッサと、
    第1アドレス集結部と第2アドレス集結部とを含み、
    前記第2アドレス集結部は、(i)当該プロセッサシステム内における複数のプロセッサのうちのいずれかのプロセッサから前記データコマンドを取得する機能、(ii)当該プロセッサシステム以外の他の複数のプロセッサシステムであって、前記データコマンドにより指定されたアドレスに基づいて、前記データを自身内に保存せしめる一つのプロセッサシステムを選択する機能、および(iii)前記選択されたプロセッサシステム内の第1アドレス集結部に前記データコマンドを送信する機能を有し、
    前記第1アドレス集結部は、当該プロセッサシステム以外の他のプロセッサシステムに含まれる第2アドレス集結部から当該プロセッサシステム内に保存されているデータの要求を行うためのデータコマンドを取得し、取得した前記データコマンドを、当該プロセッサシステム以外の他の複数のプロセッサシステムのそれぞれに含まれる第2アドレス集結部にブロードキャストする機能を有することを特徴とするプロセッサシステム。
  14. 当該プロセッサシステムは、前記他の複数のプロセッサシステムのうちの一つのプロセッサシステムの第アドレス集結部によって選択された場合、前記選択されたプロセッサシステムになりうることを特徴とする請求項13に記載のプロセッサシステム。
  15. 前記選択されたプロセッサシステムの前記第2アドレス集結部は、前記複数のプロセッサのそれぞれに前記データコマンドをブロードキャストする機能を有することを特徴とする請求項14に記載のプロセッサシステム。
  16. 前記選択されたプロセッサシステムの前記第2アドレス集結部は、前記ブロードキャストされたデータコマンドに対する一貫性に関する応答を前記複数のプロセッサから取得する機能を有することを特徴とする請求項15に記載のプロセッサシステム。
  17. 前記選択されたプロセッサシステムの前記第2アドレス集結部は、前記選択されたプロセッサシステムの前記第1アドレス集結部に、前記一貫性に関する応答を送信する機能を有することを特徴とする請求項16に記載のプロセッサシステム。
  18. 前記選択されたプロセッサシステムの前記第1アドレス集結部は、前記一貫性に関する応答を統合し、複数のプロセッサシステムのそれぞれに含まれる前記第2アドレス集結部に、前記統合された一貫性に関する応答をブロードキャストする機能を有することを特徴とする請求項17に記載のプロセッサシステム。
  19. 前記選択されたプロセッサシステムの前記第2アドレス集結部は、当該プロセッサシステム内に含まれるそれぞれのデバイスに、前記統合された一貫性に関する応答をブロードキャストする機能を有することを特徴とする請求項18に記載のプロセッサシステム。
  20. 前記それぞれのプロセッサは、自身に接続されるローカルメモリをさらに有し、さらに前記ローカルメモリ内においてデータを操作できるよう前記共有メモリと前記ローカルメモリとの間でデータ転送を開始する機能を有することを特徴とする請求項13から19のいずれかに記載のプロセッサシステム。
  21. 前記プロセッサと前記ローカルメモリは、一つの共通の集積回路として一体化されることを特徴とする請求項20に記載のプロセッサシステム。
  22. 前記プロセッサ、そのプロセッサに関連付けられた前記ローカルメモリ、および前記共有メモリは、一つの共通の集積回路として一体化されることを特徴とする請求項20または21に記載のプロセッサシステム。
  23. 数のプロセッサシステムを含む装置であって、
    記プロセッサシステムそれぞれは、
    共有メモリに動作可能に接続されうる複数のプロセッサと、第1アドレス集結部と、第2アドレス集結部とを含み、
    前記第2アドレス集結部は、(i)当該プロセッサシステム内のいずれかのプロセッサから、前記複数のプロセッサシステム内のいずれかのプロセッサ内に保存されているデータを要求するデータコマンドを取得する機能、(ii)前記複数のプロセッサシステムであって、前記データコマンドにより指定されたアドレスに基づいて、前記データを自身内に保存せしめる一つのプロセッサシステムを選択する機能、および(iii)前記選択されたプロセッサシステムの第1アドレス集結部に前記データコマンドを送信する機能を有し、
    前記第1アドレス集結部は、前記複数のプロセッサシステムのいずれかのプロセッサシステムの第2アドレス集結部から、当該プロセッサシステム内に保存されているデータを要求するデータコマンドを取得し当該プロセッサシステム以外の他の複数のプロセッサシステムのそれぞれに含まれる前記第2アドレス集結部に、取得した前記データコマンドをブロードキャストする機能を備えることを特徴とする装置。
  24. 各プロセッサシステム内の前記第2アドレス集結部は、当該プロセッサシステム内の複数のプロセッサのそれぞれに、前記データコマンドをブロードキャストする機能を備えることを特徴とする請求項23に記載のプロセッサシステム。
  25. 各プロセッサシステム内の前記第2アドレス集結部は、当該プロセッサシステム内に含まれる複数のプロセッサから、前記ブロードキャストされたデータコマンドに対する一貫性に関する応答を取得する機能を備えることを特徴とする請求項24に記載のプロセッサシステム。
  26. 各プロセッサシステム内の前記第2アドレス集結部は、前記選択されたプロセッサシステムの前記第1アドレス集結部に、前記一貫性に関する応答を送信する機能を備えることを特徴とする請求項25に記載のプロセッサシステム。
  27. 前記選択されたプロセッサシステムの前記第1アドレス集結部は、前記一貫性に関する応答を統合するとともに、前記複数のプロセッサシステムのそれぞれに含まれる前記第2アドレス集結部に、前記統合された一貫性に関する応答をブロードキャストする機能を備えることを特徴とする請求項26に記載のプロセッサシステム。
  28. 各プロセッサシステムの第2アドレス集結部は、当該プロセッサシステム内に含まれるそれぞれのデバイスに、前記統合された一貫性に関する応答をブロードキャストする機能を備えることを特徴とする請求項27に記載のプロセッサシステム。
  29. プロセッサシステムによる動作の実行を可能にするプログラムであって、
    当該動作は、
    複数のプロセッサシステムのうちの一である第1のプロセッサシステム内における複数のデバイスのうちの一のデバイスが、前記複数のプロセッサシステムのうちいずれかのプロセッサシステム内に保存されているデータを要求するための、当該データを保持するプロセッサシステムを指定するアドレスを含むデータコマンドを、前記第1のプロセッサシステム内の第2アドレス集結部に送信するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記データコマンドにより指定されたアドレスに基づいて、前記データを保存している前記第1のプロセッサシステムとは異なる第2のプロセッサシステムを選択するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記選択された第2のプロセッサシステムの第1アドレス集結部に、前記データコマンドを送信するステップと、
    を含み、
    前記データコマンドは、前記選択された第2のプロセッサシステムの前記第1アドレス集結部から、前記複数のプロセッサシステムのそれぞれに含まれる第2アドレス集結部にブロードキャストされることを特徴とするプログラム。
  30. 各プロセッサシステムにおいて、前記データコマンドは、前記第2アドレス集結部から当該プロセッサシステム内の複数のデバイスのそれぞれにブロードキャストされることを特徴とする請求項29に記載のプログラム。
  31. 各プロセッサシステムにおいて、前記複数のデバイスからの前記ブロードキャストされたデータコマンドに対する一貫性に関する応答は前記第2アドレス集結部において取得されることを特徴とする請求項30に記載のプログラム。
  32. 前記一貫性に関する応答は、各プロセッサシステムの前記第2アドレス集結部から前記選択された第2のプロセッサシステムの前記第1アドレス集結部に送信されることを特徴とする請求項31に記載のプログラム。
  33. 前記一貫性に関する応答が前記選択された第2のプロセッサシステムの前記第1アドレス集結部において統合され、さらに、その統合された一貫性に関する応答が、前記選択された第2のプロセッサシステムの前記第1アドレス集結部から、前記複数のプロセッサシステムのそれぞれに含まれる前記第2アドレス集結部にブロードキャストされることを特徴とする請求項32に記載のプログラム。
  34. 前記統合された一貫性に関する応答は、各プロセッサシステム内の前記第2アドレス集結部から、当該プロセッサシステムに含まれるデバイスのそれぞれにブロードキャストされることを特徴とする請求項33に記載のプログラム。
  35. プロセッサシステムによる動作の実行を可能にするプログラムであって、
    当該動作は、
    複数のプロセッサシステムのうちの一である第1のプロセッサシステム内における複数のデバイスのうちの一のデバイスが、前記複数のプロセッサシステムのうちいずれかのプロセッサシステム内に保存されているデータを要求するための、当該データを保持するプロセッサシステムを指定するアドレスを含むデータコマンドを、前記第1のプロセッサシステム内の第2アドレス集結部に送信するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記データコマンドにより指定されたアドレスに基づいて、前記データを保存している前記第1のプロセッサシステムとは異なる第2のプロセッサシステムを選択するステップと、
    前記第1のプロセッサシステム内の第2アドレス集結部が、前記選択された第2のプロセッサシステムの第1アドレス集結部に、前記データコマンドを送信するステップとを有し、
    前記データコマンドは、前記選択された第2のプロセッサシステムの前記第1アドレス集結部が、前記選択された第2のプロセッサシステムに含まれる第2アドレス集結部に送信されることを特徴とするプログラム。
  36. 請求項29から請求項35のいずれかのプログラムを格納する記録媒体。
JP2006102826A 2005-04-04 2006-04-04 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置 Active JP4583327B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/098,621 US7818507B2 (en) 2005-04-04 2005-04-04 Methods and apparatus for facilitating coherency management in distributed multi-processor system

Publications (2)

Publication Number Publication Date
JP2006286002A JP2006286002A (ja) 2006-10-19
JP4583327B2 true JP4583327B2 (ja) 2010-11-17

Family

ID=37393959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006102826A Active JP4583327B2 (ja) 2005-04-04 2006-04-04 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置

Country Status (2)

Country Link
US (1) US7818507B2 (ja)
JP (1) JP4583327B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008118184A (ja) * 2006-10-31 2008-05-22 Fujitsu Ltd 処理装置及び処理モジュール
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8723877B2 (en) 2010-05-20 2014-05-13 Apple Inc. Subbuffer objects
WO2020078470A1 (zh) * 2018-10-18 2020-04-23 上海寒武纪信息科技有限公司 片上网络数据处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000348000A (ja) * 1999-06-03 2000-12-15 Hitachi Ltd 主記憶共有型マルチプロセッサシステム
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754480A (en) * 1985-04-03 1988-06-28 Siemens Aktiengesellschaft Circuit arrangement for telecommunication switching systems connected to line concentrator sub-exchanges by connecting channels
JPH0469763A (ja) * 1990-07-10 1992-03-04 Fujitsu Ltd 階層型バス接続の並列計算機
US5349583A (en) * 1991-08-16 1994-09-20 International Business Machines Corporation Multi-channel token ring
US5546560A (en) * 1993-06-22 1996-08-13 Advance Micro Devices, Inc. Device and method for reducing bus activity in a computer system having multiple bus-masters
JPH07200505A (ja) 1993-12-30 1995-08-04 Hitachi Ltd 一斉同報通信方法およびその装置
JPH09319693A (ja) 1996-05-28 1997-12-12 Hitachi Ltd データ転送装置および並列コンピュータシステム
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JP3959914B2 (ja) * 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6742145B2 (en) * 2001-03-01 2004-05-25 International Business Machines Corporation Method of de-allocating multiple processor cores for an L2 correctable error
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6678799B2 (en) * 2001-10-18 2004-01-13 Hewlett-Packard Development Company, Lp. Aggregation of cache-updates in a multi-processor, shared-memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000348000A (ja) * 1999-06-03 2000-12-15 Hitachi Ltd 主記憶共有型マルチプロセッサシステム
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機

Also Published As

Publication number Publication date
US7818507B2 (en) 2010-10-19
JP2006286002A (ja) 2006-10-19
US20060251070A1 (en) 2006-11-09

Similar Documents

Publication Publication Date Title
JP4346612B2 (ja) 情報処理方法および装置
JP4322259B2 (ja) マルチプロセッサシステムにおけるローカルメモリへのデータアクセスを同期化する方法および装置
EP1861790B1 (en) Methods and apparatus for virtualizing an address space
JP4386373B2 (ja) ロジカルパーティショニングされた処理環境におけるリソース管理のための方法および装置
JP4219369B2 (ja) プロセッサシステム内においてスタックを分離して管理する方法および装置
JP4421561B2 (ja) ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム
KR100881810B1 (ko) 외부 장치로부터 프로세서의 메모리로의 주소 번역을 위한방법 및 기구
JP4243318B2 (ja) ソフトウェアとハードウエアで同時にキャッシュフィルする方法と装置
US7689784B2 (en) Methods and apparatus for dynamic linking program overlay
JP4645973B2 (ja) 命令セットのエミュレーションのための方法、装置及びシステム
JP2006172468A (ja) システム内部のデータ転送を処理する装置および方法
US20080091886A1 (en) Dynamic Path Determination To An Address Concentrator
JP4583327B2 (ja) 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置
JP2006260556A (ja) ラッチポイントを制御することにより、演算処理能力を改善する方法、装置ならびにシステム
JP4024271B2 (ja) マルチプロセッサシステムにおいて命令を処理するための方法と装置
JP2006260555A (ja) 命令の従属関係検査の深度を利用して処理能力の改善するための方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

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: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100831

R150 Certificate of patent or registration of utility model

Ref document number: 4583327

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250