JP3884990B2 - マルチプロセッサ装置 - Google Patents
マルチプロセッサ装置 Download PDFInfo
- Publication number
- JP3884990B2 JP3884990B2 JP2002126212A JP2002126212A JP3884990B2 JP 3884990 B2 JP3884990 B2 JP 3884990B2 JP 2002126212 A JP2002126212 A JP 2002126212A JP 2002126212 A JP2002126212 A JP 2002126212A JP 3884990 B2 JP3884990 B2 JP 3884990B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- processor
- bus
- unit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、例えばリアルタイム系のマルチプロセッサ処理において用いて好適の、マルチプロセッサ装置に関するものである。
【0002】
【従来の技術】
マルチプロセッサ装置は、複数のプロセッサをそなえるとともにメモリ資源等については共有バスを介することにより各プロセッサ間で共有する構成を有したもので、仕事を複数のプロセッサで分担して処理することにより処理性能を向上させることができるほか、システムを複数台用意するのに比べると、プロセッサ以外の部分が共用できるため装置製造コストを低減させることができるものである。
【0003】
図13はマルチプロセッサ装置を示すブロック図であるが、この図13に示すマルチプロセッサ装置700は、3つのプロセッサユニット100,200,300とともに、バス調停回路500および共通メモリ600が、共通メモリバス400を通じて相互にバス接続されて構成されている。
また、プロセッサユニット100は、プロセッサ110,キャッシュメモリ120およびスヌープ回路130をそなえて構成され、プロセッサユニット200は、プロセッサ210,キャッシュメモリ220およびスヌープ回路230をそなえて構成され、プロセッサユニット300は、プロセッサ310,キャッシュメモリ320およびスヌープ回路330をそなえて構成されている。
【0004】
また、各プロセッサユニット100,200,300のキャッシュメモリ120,220,320は、共通メモリ600上の一部のデータのコピーを格納するものである。更に、スヌープ回路130,230,330は、共通メモリバス400上のトランザクションを監視してキャッシュメモリ120,220,320上のデータが更新された場合には同データを無効化する制御を行なうものである。
【0005】
さらに、バス調停回路500は、各プロセッサ110,210,310が要求する共通メモリバスの使用権を調停するものであり、共通メモリ600は、各プロセッサユニット100,200,300における処理を行なう際に共通して用いられるメモリである。
このような構成のマルチプロセッサ装置700においては、各プロセッサ110,210,310と共通メモリバス400との間に、共通メモリ600に格納されているデータの一部のコピーを持つ高速なキャッシュメモリ120,220,320を配置しているので、共通メモリ600へのアクセスの大部分をキャッシュメモリへのアクセスで代替し、アクセス速度が非常に遅い共通メモリ600に対する直接アクセスの頻度を削減している。これにより、キャッシュメモリ120,220,320をそなえない場合に比して、プロセッサ処理速度の低下を抑えることができるようになっている。
【0006】
また、スヌープ回路130,230,330は、共通メモリ600上のデータとキャッシュメモリ120,220,320上のデータの整合性を確保するために、キャッシュメモリ120,220,320の無効化処理を行なうものである。
具体的には、各プロセッサユニット100,200,300のスヌープ回路130,230,330は、共通メモリバス400を常時監視し、他のプロセッサユニットのプロセッサによって共通メモリ600のデータが書き換えられた場合に、自身のプロセッサユニットにおけるキャッシュメモリ上に書き換え前のデータが存在しているか否かをチェックし、存在している場合には該当データを無効化する。ついで、当該データが必要な場合にはキャッシュメモリ上にデータは存在しないと判断するとともに共通メモリ600から直接書き換え後データをアクセスすることにより、共通メモリ600上のデータとキャッシュメモリ120,220,320上のデータの整合性を保つようにしている。
【0007】
なお、特開平8-30510号公報においては、スヌープを外部回路にて纏めて行ない、該当するデータを格納しているキャッシュメモリに対してのみ無効化処理を行なわせることで、無効化処理を必要としなかったプロセッサには通常どおりキャッシュメモリへのアクセスを可能にすることで、プロセッサ処理停止期間を削減する技術が開示されている。
【0008】
ところで、上述の図13に示すマルチプロセッサ装置700のキャッシュメモリ120,220,320は、共通メモリ600の一部のコピーであるため、全てのアクセスをキャッシュメモリ120,220,320へのアクセスで代替することはできず、プロセッサ110,210,310が要求したデータが対応するキャッシュメモリ120,220,320上に無かった場合、該当するデータを共通メモリバス400経由にて共通メモリ600から読み出すことになる。これは、上述したアクセス速度の遅い共通メモリ600に対する直接アクセスの頻度を増大させる要因となる。
【0009】
その為、プロセッサ処理を予測して連続した数バイトのデータを事前にキャッシュメモリ120,220,320にコピーしておくこと等の方法によって、共通メモリ上のデータアクセスをキャッシュメモリ上のアクセスに代替する率(以後、キャッシュヒット率と呼ぶ)を向上させることで、プロセッサ処理速度低下を抑える方法が考えられている。
【0010】
たとえば、特開昭60-183652号公報には、通常のキャッシュメモリ(ダイナミックキャッシュ)の他に、高頻度のアクセスが予想されるデータを特別な命令を使用して、キャッシュメモリ上に固定的に割りつける固定キャッシュメモリ(スタティックキャッシュ)を準備し、データの使用頻度に応じたキャッシュメモリ管理を行なうことにより、キャッシュヒット率を確保して、プロセッサ処理速度の低下を防止するという技術が記載されている。
【0011】
【発明が解決しようとする課題】
しかしながら、このような図13に示すマルチプロセッサ装置において、特にリアルタイム系のプロセッサ処理を行なう場合、小さなタスクを多数同時かつ並列に動作させる必要があり、発生する事象に応じた処理を行なう必要があるため、次に起動されるタスクが予測できない。このような場合、プロセッサ110,210,310では、多種かつ不連続なデータに対してアクセスすることが多くなり、キャッシュメモリ120,220,320上にデータが存在する可能性が低くなる。これにより、共通メモリ600にアクセスする可能性が高くなる。
【0012】
各プロセッサ110が共通メモリ600に対してアクセスする回数が増加すると、前述したように、共通メモリバス400におけるバス競合が多発し、競合によるオーバヘッド時間により共通メモリ600へのアクセス待ち合わせ時間が増大し、プロセッサ処理速度を低下させる際の支障となるという課題がある。
また、特開昭60-183652号公報に記載された技術においては、キャッシュメモリ上に固定的に割りつけたデータが、他プロセッサにて頻繁にデータ更新されるような場合には、該当データに対する無効化処理が多発するため、キャッシュヒット率が低下し、更新後のデータを読み込むために共通メモリバスのトランザクションを増加させてしまう。この共通メモリバスのトランザクション増加は、共通メモリへのアクセス待ち合わせ時間増大を助長させることになる。
【0013】
さらに、特開平8-30510号公報に記載された技術においては、スヌープを必要としなかったプロセッサは通常どおりキャッシュメモリをアクセスすることができるものの、キャッシュヒット率の低下には対応ができず、データ読み込みのための共通メモリバスのトランザクションを増加させてしまう。
本発明は、このような課題に鑑み創案されたもので、共通メモリバスでの競合制御時間を短縮し、必要とするデータへのアクセスの待ち合わせ時間を減少させて、処理速度を高速化させることができるようにした、マルチプロセッサ装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
このため、本発明のマルチプロセッサ装置は、アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、上記の各プロセッサユニットが、上記アプリケーション処理のための命令実行処理を行なうプロセッサと、上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するとともに、該コピー回路が、該複数のプロセッサユニットをなすいずれかのプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴としている。
【0015】
上述のマルチプロセッサ装置においては、好ましくは、上記の各プロセッサユニットのローカルメモリ部を、該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第2バッファと、該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第2バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成することができる。
【0016】
さらに、該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、該第1バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成することとしてもよい。
【0017】
また、該プロセッサからの読み出し命令または更新命令の対象となるデータについて、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高低を分類する分類部とをそなえ、該共通メモリが、該分類部にて上記頻度が高いと分類されたデータを記憶する第1共通メモリと、該分類部にて上記頻度が低いと分類されたデータを記憶する第2共通メモリとをそなえるとともに、該バスが、上記の複数のプロセッサユニットと第1共通メモリとを相互に接続する第1バスと、上記の複数のプロセッサユニットと第2共通メモリとを相互に接続する第2バスとをそなえ、上記のプロセッサユニットによる第1バスの使用を調停する第1バス調停回路と、上記のプロセッサユニットによる第2バスの使用を調停する第2バス調停回路とをそなえ、上記の各プロセッサユニットのローカルメモリ部が、該第1共通メモリの全内容データのコピーを記憶するための第1ローカルメモリ部と、該第2共通メモリの全内容データのコピーを記憶するための第2ローカルメモリ部とをそなえ、かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第1共通メモリの内容が更新された場合に該第1ローカルメモリ部の更新処理を制御すべく構成されるとともに、上記の第1ローカルメモリ部において、該第1共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第1ローカルメモリ部にコピーされた対応データを読み出して出力するように構成することとしてもよい。
【0019】
【発明の実施の形態】
以下、図面を参照することにより、本発明の実施の形態を説明する。
[A]第1実施形態の説明
図1は本発明の第1実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図1に示すマルチプロセッサ装置10は、特にリアルタイム処理(実時間処理)をアプリケーションとして実行する場合においても、共通メモリ600上のデータへのアクセスの待ち合わせ時間を減少させるものであって、例えば3つのプロセッサユニット101,201,301と、バス調停回路500と、共通メモリ600とが共通メモリバス400を介して相互にバス接続されて構成されている。
【0020】
ここで、この図1に示すマルチプロセッサ装置10において、共通メモリ600は、前述の図13の場合と同様に、各プロセッサユニット101,201,301におけるアプリケーション処理に共通して用いられるデータを記憶しておくものである。
さらに、共通メモリバス400は、3つのプロセッサユニット101,201,301,バス調停回路500および共通メモリ600の間において必要な情報のやり取りを行なうもので、後述する図3に示すように、アドレス授受のためのアドレスバス401,データ授受のためのデータバス402および制御情報の授受のための制御バス403をそなえて構成されている。
【0021】
また、バス調停回路500は、共通メモリバス400に接続されてプロセッサユニット101,201,301によるバスの使用を調停するものである。即ち、バス調停回路500は、共通メモリ600に対するアクセスが競合した場合の調停を行なうものである。
さらに、プロセッサユニット101,201,301は、各々別個のアプリケーション処理を独立して行なうものであって、プロセッサユニット101は、プロセッサ110とともに、本願発明の特徴的な構成要素であるローカルメモリ部140およびコピー回路150をそなえて構成されている。同様に、プロセッサユニット201は、プロセッサ210,ローカルメモリ部240およびコピー回路250をそなえて構成され、プロセッサユニット301は、プロセッサ310,ローカルメモリ部340およびコピー回路350をそなえて構成されている。
【0022】
ここで、上記の各プロセッサユニット101,201,301におけるプロセッサ110,210,310は、各々のアプリケーション処理のための命令実行処理を行なうものであって、このアプリケーション処理としては例えばリアルタイム処理が要求されるものとすることができる。
また、ローカルメモリ部140,240,340は、プロセッサ110,210,310と共通メモリバス400との間に設けられ、共通メモリ600の全内容データのコピーを記憶するためのものであって、詳細には後述する図2に示すような構成を有している。
【0023】
さらに、コピー回路150,250,350は、複数のプロセッサユニット101,201,301のいずれかのプロセッサ110,210,310により共通メモリ600の内容が更新された場合に、自身のプロセッサユニット101,201,301におけるローカルメモリ部140,240,340の更新処理を制御するものである。
【0024】
これにより、いずれかのプロセッサ110,210,310において共通メモリ600の書き込みがあったとしても、コピー回路150,250,350においてこれに追従してローカルメモリ部140,240,340の内容を更新することができる。即ち、ローカルメモリ部140,240,340においては、プロセッサ110,210,310から、共通メモリ600に記憶されたデータの読み出し命令を受けると、当該ローカルメモリ部140,240,340にコピーされた対応データを読み出して出力することができるようになっている。
【0025】
また、ローカルメモリ部140は、詳細には図2に示すように、第1バッファ141,第2バッファ142,メモリアクセスアビトレーション回路143およびコピーメモリ144をそなえて構成されている。尚、他のローカルメモリ240,340についても、ローカルメモリ部140と同様の構成を有しているため、以下においてはローカルメモリ部140の構成に着目して詳述していくこととする。
【0026】
ここで、コピーメモリ144は、共通メモリ600の全内容データのコピーを記憶するための領域をそなえたものである。第1バッファ141は、プロセッサ110とバスにより双方向接続されて、プロセッサ110からの上記読み出し命令のためのアドレス情報および読み出されたデータ(リードデータ)と、後述する第2バッファ142に出力されるプロセッサ110から共通メモリ600に対する更新要求の対象となるアドレスおよびデータ(ライトデータ)について、一旦保持するものである。
【0027】
また、第2バッファ142は、第1バッファ141からのプロセッサ110からの共通メモリ600への更新要求の対象となるアドレスおよびデータ(ライトデータ)とともに、プロセッサユニット201,301のうちのいずれかのプロセッサ210,310により更新された共通メモリ600の内容(ライトデータおよびアドレス)を共通メモリバス400を介して入力されて一旦保持しうるものである。尚、この第2バッファ142に格納されたアドレスおよびデータは、後述するようにコピー回路150の制御に基づいてコピーメモリ144に書き込まれるようになっている。
【0028】
換言すれば、第2バッファ142は、第1バッファ141と、第1バッファ141から第2バッファ142に向かう方向でアドレスおよびデータが渡されるように1方向でバス接続されて、第1バッファ141を介してプロセッサ110からの書き込み対象となるアドレスおよびデータを入力されて一旦保持するようになっている。又、第2バッファ142は、共通メモリバス400に接続されて、この共通メモリバス400を通じてプロセッサ210またはプロセッサ310により更新された共通メモリ600の内容を入力されて一旦保持するようになっている。
【0029】
また、この第2バッファ142は、プロセッサ110から共通メモリ600に対する更新要求の対象となるアドレスおよびデータを保持した場合に、バス調停回路500に対する共通メモリバス400の使用要求を、制御バス403(図3参照)を通じて出力する機能を有している。
また、メモリアクセスアビトレーション回路(メモリアクセス調停回路)143は、プロセッサ110からの読み出し命令に基づいたコピーメモリ144に対する読み出しアクセスと、第2バッファ142にて保持されている内容に従ってコピーメモリ144を更新するための更新アクセスとを、コピー回路150からの制御に基づいて調停するものである。換言すれば、第1バッファ141側のリードアクセスと第2バッファ142側のライトアクセスとが、コピーメモリ144に対して正常に行なわれるようバス調停を行なうものである。
【0030】
すなわち、メモリアクセスアビトレーション回路143は、コピーメモリ144と双方向にバス接続される一方、第1バッファ141との間では第1バッファ141に向けて読み出し対象のアドレスおよびデータが出力されるようにバス接続されるとともに、第2バッファ142との間では第2バッファ142からの更新対象のアドレスおよびデータが入力されるようにバス接続されて、これら第1バッファ141および第2バッファ142とコピーメモリ144との間のデータのやりとりを調停するようになっている。
【0031】
また、コピー回路150は、詳細には図3に示すように、トランザクション監視部151およびコピー処理制御部152をそなえて構成されている。尚、他のコピー回路250,350についても、コピー回路150と同様の構成を有しているため、以下においてはコピー回路150の構成に着目して詳述していくこととする。
【0032】
ここで、トランザクション監視部151は、共通メモリバス400のトランザクションを監視するものである。具体的には、いずれかのプロセッサ101,201,301から共通メモリ600へのデータの更新命令に対する共通メモリ600からの更新完了応答があったか否かを監視するものである。
すなわち、トランザクション監視部151においては、上述の共通メモリ600から制御バス403を通じて更新完了応答があったときに、この更新アドレスおよびデータを取り込むための取込タイミングを第2バッファ142に供給するようになっている。
【0033】
換言すれば、第2バッファ142においては、トランザクション監視部151からの取り込みタイミングに基づいて、アクセス中アドレスバス401およびデータバス402上で参照可能な更新アドレスおよび更新データを取り込むようになっている。
また、更新制御部としてのコピー処理制御部152は、トランザクション監視部151からの監視結果に基づいて、ローカルメモリ部140における更新処理を制御するものである。
【0034】
具体的には、コピー処理制御部152は、トランザクション監視部151における共通メモリバス400のトランザクションの監視の結果、プロセッサ110,210,310から共通メモリ600へのデータの更新命令に対する共通メモリ600からの更新完了応答を受けると、当該共通メモリ600への更新内容に従ってローカルメモリ部140の更新処理を制御するようになっている。
【0035】
上述のコピー処理制御部152においては、ローカルメモリ140の更新処理の制御として、メモリアクセスアビトレーション回路143に対して、第2バッファ142に取り込まれたデータの書き込みによる更新アクセスの要求を出力するとともに、このメモリアクセスアビトレーション回路143からのアクセス許可の応答を受けると、コピーメモリ144に対して更新指示を出力する。
【0036】
これにより、コピー回路150,250,350が、いずれかのプロセッサ110,210,310から共通メモリ600へのデータの更新命令に対する共通メモリ600からの更新完了応答を受けると、当該共通メモリ600への更新内容に従ってローカルメモリ部140,240,340の更新処理を制御するようになっている。
【0037】
上述の構成により、本発明の第1実施形態にかかるマルチプロセッサ装置10のプロセッサユニット101,201,301におけるアプリケーション処理を実行するにあたっては、運用開始時において、ローカルメモリ部140,240,340内のコピーメモリおよび共通メモリ600の全てのデータを一致させるために、初期化処理としてコピーメモリの全領域について共通メモリ600の内容の書き込みを行なう(全領域ライト処理)。
【0038】
上述の初期化処理が行なわれると、各々のプロセッサユニット101,201,301のプロセッサ110,210,310においては、それぞれ、以下に詳述するように、ローカルメモリ部140,240,340からデータを読み出すとともに、共通メモリ600に記憶されたデータを更新する。尚、以下においては、プロセッサユニット101の動作に着目して説明するが、他のプロセッサ210,310の動作についても、プロセッサ110からの要求と基本的に同様である。
【0039】
まず、自身のプロセッサ110から共通メモリ600に対して書き込み要求(ライトアクセス要求または更新要求)を発行した場合の動作について詳述する。すなわち、プロセッサ110が共通メモリ600に対して書き込み要求としてのライトアクセスを行なうと、プロセッサ110が出力したアドレスおよびデータは第1バッファ141を経由して第2バッファ142に一時的に格納される(図4(a)のA1,A2参照)。
【0040】
第2バッファ142では、共通メモリバス400を介してバス調停回路500にバス使用権を要求する。バス調停回路500では、他のプロセッサユニット201,301における共通メモリバス400の使用状況に基づいて、共通メモリバス400の使用を許可する旨の応答を、制御バス403(図3参照)を通じて出力する。
【0041】
さらに、第2バッファ142では、バス調停回路500からの応答を受けてバス使用権を確保すると、共通メモリバス400のアドレスバス401におよびデータバス402に対して、一時的に格納していたアドレスおよびデータをそれぞれ送出する(図4(a)のA3参照)。
共通メモリ600では、第2バッファ142からのアドレスの該当データを、第2バッファ142からのデータに書き換えられ、この書き換え処理が完了すると、制御バス403を通じて共通メモリ更新応答としての正常応答信号を出力する。
【0042】
図3に示すように、コピー回路150のトランザクション監視部151では、共通メモリバス400のトランザクションの監視を行なって、上述の共通メモリ600からの正常応答信号を検出すると(図4(a)のA4参照)、その旨をコピー処理制御部152に出力する。
コピー処理制御部152では、第2バッファ142に格納されたアドレスおよびデータを、コピーメモリ144にコピーする為に、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御する(図4(a)のA5参照)。その後、第2バッファ142の内容がコピーメモリ144に書き込まれて(図4(a)のA6参照)、共通メモリ600上のデータとコピーメモリ144の状態とを一致させることができる。
【0043】
ついで、プロセッサ110以外の他のプロセッサ210,310から共通メモリ600に対して書き込みアクセスを行なった場合の、ローカルメモリ部140の更新動作について詳述する。
すなわち、第2バッファ142では、他プロセッサ210,310が共通メモリ600に対してライトアクセスを行なった場合に、コピー回路150から取り込みタイミングを受けて、共通メモリバス400上のアドレスおよびデータを一時的に格納する。
【0044】
具体的には、第2バッファ142のトランザクション監視部151では、共通メモリバス400のトランザクションの監視を行なって、上述の共通メモリ600からの正常応答信号を検出すると(図4(b)のB1参照)、第2バッファ142に対して共通メモリバス400上(即ち、共通メモリ600上)の更新されたアドレスおよびデータを取り込むためのタイミングを与えるとともに(図4(b)のB2参照)、更新が行なわれた旨をコピー処理制御部152に出力する。
【0045】
上記の取り込みタイミングを受け取った第2バッファ142においては、共通メモリ600上において更新のあったアドレスおよびデータを共通メモリバス400を介して取り込む(図4(b)のB3参照)。
その後、更新が行なわれた旨を受け取ったコピー処理制御部152では、共通メモリバス400上から第2バッファ142に取り込まれたアドレスおよびデータを、コピーメモリ144にコピーする為に、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御する(図4(b)のB4参照)。その後、第2バッファ142の内容がコピーメモリ144に書き込まれて(図4(b)のB5参照)、共通メモリ600上のデータとコピーメモリ144の状態とを一致させることができる。
【0046】
上述したように、共通メモリ600の内容が更新されると、コピー回路150,250,350の制御により、ローカルメモリ部140,240,340のコピーメモリの内容を共通メモリ600の内容に符合するように更新しているので、プロセッサ110,210,310からのリードアクセス時においては、共通メモリ600にアクセスすることなく、各々のローカルメモリ部140,240,340の内容からデータを読み出すことができる。
【0047】
例えば、自身のプロセッサ110が読み出し要求(リードアクセス要求)を発行した場合においては、プロセッサ110が共通メモリ600に対してリードアクセスを行なうと、第1バッファ141では、プロセッサ110が出力したアドレスを一時的に格納される(図4(c)のC1参照)。
第1バッファ141は、コピーメモリ144上にある共通メモリ600のコピーをリードする為に、メモリアクセスアビトレーション回路143にコピーメモリ144へのリードアクセスを要求する(図4(c)のC2参照)。リード可能な状態であれば、メモリアクセスアビトレーション回路143では、第1バッファ141が一時格納しているアドレスに対応するデータをコピーメモリ144から読み出し、第1バッファ141を経由してプロセッサ110に返送する。
【0048】
これにより、ローカルメモリ部140,240,340において、共通メモリ600に記憶されたデータの読み出し命令をプロセッサ110,210,310から受けると、当該ローカルメモリ部140,240,340にコピーされた対応データを読み出して出力する。
このように、第1実施形態にかかるマルチプロセッサ装置10によれば、プロセッサユニット101,201,301が、プロセッサ110,210,310とローカルメモリ部140、240,340とコピー回路150、250,350とをそなえたことにより、共通メモリ600の全データのコピーを、それぞれのプロセッサ110,210,310配下のコピーメモリ内に持つ事で、共通メモリバス400上でリードアクセスによるトランザクションが発生しないため、共通メモリバス400(競合制御)での競合を最小限に抑えることができる。これにより、バス競合によるアクセスの待ち合わせを短くすることが可能となる。特に、リアルタイム処理を行なう場合でも、キャッシュメモリ方式のごときキャッシュメモリ上のデータの無効化処理や再読み込み処理等が増加することもなく、必要とする共通メモリ600上のデータへのアクセスを最小の待ち合わせで行なうことができる。
【0049】
[B]第2実施形態の説明
図5は本発明の第2実施形態にかかるマルチプロセッサ装置の要部を示すブロック図であるが、この図5に示すマルチプロセッサ装置20は、前述の第1実施形態におけるもの(符号10参照)に比して、機能が付加されたローカルメモリ部をそなえてなるプロセッサユニット100A,200A,300Aをそなえている点が異なり、それ以外の構成については基本的に同様である。
【0050】
なお、図5中においては、プロセッサユニット100Aに着目して図示しているが、プロセッサユニット200A,300Aについても、プロセッサユニット100Aと同様の構成を有している。
ここで、ローカルメモリ部140Aは、第1バッファ141に替えてステータス判定機能を有する第1バッファ146をそなえる点とともに、ステータスメモリ145が追加されている点が、前述の第1実施形態におけるローカルメモリ部140に比して異なっている。尚、第2バッファ142メモリアクセスアビトレーション回路143およびコピーメモリ144は、前述の第1実施形態の場合と同様である。
【0051】
ここで、ステータスメモリ145は、コピーメモリ144上におけるアドレス領域に対応して、更新されたデータが格納されているか否かを記録するものであって、詳細には図6に示すような構成を有している。
すなわち、このステータスメモリ145は、コピーメモリ144の最小アクセス単位(例えばアドレス‘A’〜‘Z’)に対応したステータスビット(‘a′’〜‘z′’)をそなえて構成されている。尚、図6は、コピーメモリ144およびステータスメモリ145が、メモリアクセスアビトレーション回路143からのアドレス情報,データ情報およびリード信号と、コピー回路150からのライト信号とが並列的に授受しうることを示している。
【0052】
また、ステータスメモリ145における最小アクセス単位に対応したステータスビットは、コピー回路150による制御に基づいて、それぞれのプロセッサユニット100A,200A,300Aが起動した当初は、「データ無し」を示すビット値が記憶され、各アドレス(‘A’〜‘Z’)に対して最初の共通メモリ600へのアクセスが行なわれたときに、「データ有り」を示すビット値を記憶するようになっている。
【0053】
すなわち、コピー回路150のコピー処理回路152においては、前述の第1実施形態の場合と同様に、トランザクション監視部151から共通メモリ600の更新完了応答を受信した旨を受けると、第2バッファ142に取り込み格納されたアドレスおよびデータを、コピーメモリ144にコピーする為に、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御するが、同時にステータスメモリ145における更新アドレスに対応するステータスビットに対して「データ有り」を示すビット値を記憶する。
【0054】
また、上述のステータスメモリ145に対して「データ有り」を書き込むにあたり、例えばトランザクション監視部151において正常応答信号を検出できなかった場合等、第2バッファ142にて保持されている内容をコピーメモリ144に更新するための更新アクセスを正常に完了できなかった場合には、ステータスメモリ145の対応アドレス領域には、「データ無し」状態を記録するようになっており、これにより、コピーメモリ144内のデータの信頼度を向上させている。
【0055】
また、第1バッファ146は、前述の第1実施形態の場合と同様に、プロセッサ110とバスにより双方向接続されて、リードデータとライトデータとについて、一旦保持するものであるが、ステータス判定部146−1および読み出し処理部146−2をそなえている。
第1バッファ146のステータス判定部146−1は、プロセッサ110からの読み出し命令のアドレスに対応したデータをコピーメモリ144から読み出す際に、ステータスメモリ145の記録を判定するものである。即ち、ステータス判定部146−1においては、読み出し命令のアドレスに対応したステータスビットをステータスメモリ145から読み出して、読み出したステータスビットの内容が、「データ有り」かまたは「データ無し」のいずれのビットかを判定するようになっている。
【0056】
また、読み出し処理部146−2は、ステータス判定部146−1における判定結果に基づいて、読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には保持されたデータをプロセッサ110に出力する一方、更新データが保持されていると判定されなかった場合には、共通メモリ600に対する読み出しのための処理を行なうものである。
【0057】
具体的には、ステータス判定部146−1の判定の結果、ステータスメモリ145のステータスビットの情報が「データ有り」ならば、最新のデータが格納さているコピーメモリ144から、「データ無し」ならば、第2バッファ142経由で共通メモリ600から、それぞれ記憶されているデータをリードするための処理を行なうものである。
【0058】
なお、第2バッファ142では、共通メモリ600に対して書き込みアクセスを行なう場合と同様に、バス調停回路500にバス使用要求を出力して、バス使用権を取得した後に、共通メモリ600上の読み出しの対象となるアドレスおよびデータを共通メモリバス400を介して取り込む。
なお、前述の第1実施形態においては、ローカルメモリ部140における第1,第2バッファ間のデータバスおよびアドレスバスは第1バッファから第2バッファに向けた転送方向のみであったが、第2実施形態においては、第1,第2バッファ間は双方向の転送方向でアドレスおよびデータを転送できるようなバスにより構成する。
【0059】
上述の構成により、本発明の第2実施形態にかかるマルチプロセッサ装置20では、各プロセッサユニット100A,200A,300Aでは、ステータスメモリ(プロセッサユニット100Aでは符号145)をそなえるとともに、第1バッファ(146)において、コピーメモリ(144)に記憶されたデータが更新済の最新のデータか否かに応じてリードアクセスを行なっているので、前述した第1実施形態の場合のごとき、運用開始時におけるコピーメモリ(144)の全領域ライト処理を行なう必要がない。
【0060】
ここで、プロセッサユニット100Aに着目し、プロセッサ110から共通メモリ600に対して書き込み要求が発行された場合の処理について詳述する。
すなわち、プロセッサ110が共通メモリ600に対してライトアクセスを行なうと、プロセッサ110が出力したライトアクセスの対象となるアドレスおよびデータは第1バッファ146を経由して第2バッファ142に一時的に格納される。
【0061】
第2バッファ142では、共通メモリバス400のバス調停回路500にバス使用権を要求して、バス使用権を確保すると、共通メモリバス400に対して一時的に格納していたアドレスおよびデータを送出する。
さらに、コピー回路150のトランザクション監視部151において共通メモリ600からの正常応答信号を検出すると、コピー処理制御部152では、第2バッファ142に格納されたアドレスおよびデータを、コピーメモリ144にコピーする為に、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御し、共通メモリ600上のデータとコピーメモリの状態を一致させる。この時、ステータスメモリ145の該当アドレスのステータスビットに「データ有り」を書き込む。
【0062】
ついで、プロセッサ110が読み出し要求を発行した場合には、以下に示すように動作する。
まず、プロセッサ110からの読み出し要求は第1バッファ146に一時的に格納される。この第1バッファ146では、読み出し要求の対象アドレスに該当した、コピーメモリ144上にある共通メモリ600のコピーデータ、およびステータスメモリ145上にあるステータスビットをリードする為に、メモリアクセスアビトレーション回路143にコピーメモリ144からのリードアクセスを要求する。
【0063】
リード可能な状態であれば、メモリアクセスアビトレーション回路143では、第1バッファ146が一時格納しているアドレスに対応するコピーデータをコピーメモリ144から、ステータスビットをステータスメモリ145からそれぞれ読み出し、第1バッファ146に返送する。
第1バッファ146のステータス判定部146−1では、ステータスメモリ145から読み出したステータスビットが、「データ有り」および「データ無し」のいずれかとなっているかを判定するが、このステータスビットが「データ有り」の場合には、読み出し処理部146−2において、コピーメモリ144から読み出したデータをプロセッサ110に返送する。
【0064】
また、ステータス判定部146−1において、「データなし」のステータスビットを読み出した場合には、読み出し処理部146−2においては、第2バッファ142を経由して共通メモリ600から該当するアドレスのデータを読み出して、プロセッサ110に返送する。
さらに、コピー回路150では、共通メモリ600からの正常応答信号(読み出しが正常に終了した旨の応答)を検出すると、第2バッファ142に格納されたアドレスおよびデータを、コピーメモリ144にコピーする為に、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御し、共通メモリ600上のデータとコピーメモリ144の状態を一致させる。この時、ステータスメモリ145の該当アドレスのステータスビットに「データ有り」を書き込む。
【0065】
ついで、プロセッサ110以外の他のプロセッサ210,310から共通メモリ600に対して書き込みアクセスを行なった場合の、ローカルメモリ部140の更新動作について詳述する。
すなわち、第2バッファ142では、前述の第1実施形態の場合と同様に、他プロセッサユニット200A,300Aのプロセッサが共通メモリ600に対してライトアクセスを行なった場合に、コピー回路150から取り込みタイミングを受けて、共通メモリバス400上のアドレスおよびデータを一時的に格納する。
【0066】
また、コピー回路150のコピー処理制御部152では、共通メモリ600からの正常応答信号を受信した旨をトランザクション監視部151から受けた後、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御することにより、第2バッファ142に格納されたアドレスおよびデータを、コピーメモリ144にコピーさせる。この時、ステータスメモリ145の該当アドレスのステータスビットに「データ有り」を書き込む。
【0067】
ところで、第2実施形態におけるマルチプロセッサ装置においては、後から起動したプロセッサユニットがあった場合においては、当該プロセッサユニットのコピーメモリ内に共通メモリ600のデータをコピーされていない場合でも、共通メモリ600から直接読み出しデータを読み出すことができる為、第1実施形態の場合に比して、後から起動するプロセッサユニットの初期化処理(コピーメモリの全領域ライト処理)を行なう必要が無くなり、迅速に運用を開始することができる。
【0068】
この時、プロセッサ起動当初は共通メモリ600へのリードアクセスが発生するため共通メモリバス400での競合が一時的に増加するが、共通メモリ600の全アドレスへの1回以上のアクセスが行なわれた時点から、全てのリードアクセスはコピーメモリに対して行なわれることになるため、その後は、共通メモリバス400(競合制御)での競合を最小限に抑えることができ、バス競合によるアクセスの待ち合わせを短くすることが可能となる。
【0069】
このように、本発明の第2実施形態にかかるマルチプロセッサ装置20によれば、各プロセッサユニット100A,200A,300Aのローカルメモリ部(プロセッサユニット100Aの場合は符号140A)が、ステータスメモリ(プロセッサユニット100Aの場合は符号145)および第1バッファ(プロセッサユニット100Aの場合は符号146)をそなえたことにより、共通メモリ600のデータがコピーメモリ(プロセッサユニット100Aの場合は符号144)にコピーされているか否かに応じて、それぞれのプロセッサ110,210,310に対して矛盾の無い読み出しデータを出力することができるので、前述の第1実施形態の場合と同様、共通メモリバス400(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、3つのコピーメモリの全てのデータを一致させるための初期化処理を省略することができる。
【0070】
また、上述のステータスメモリ(プロセッサユニット100Aの場合は符号145)に対して「データ有り」を書き込むにあたり、例えばトランザクション監視部(プロセッサユニット100Aの場合は符号151,図3参照)において正常応答信号を検出できなかった場合等、第2バッファ(プロセッサユニット100Aの場合は符号142)にて保持されている内容をコピーメモリ(プロセッサユニット100Aの場合は符号144)に更新するための更新アクセスを正常に完了できなかった場合には、ステータスメモリ(プロセッサユニット100Aの場合は符号145)の対応アドレス領域には、「データ無し」状態を記録することもでき、このようにすれば、コピーメモリ(プロセッサユニット100Aの場合は符号144)内のデータの信頼度をより向上させることができる利点もある。
【0071】
[C]第3実施形態の説明
図7は本発明の第3実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図7に示すマルチプロセッサ装置30は、前述の第1実施形態におけるもの(符号10参照)に比して、共通メモリバスとして競合用共通メモリバス410と個別用共通メモリバス420とに機能を分離して構成するとともに、共通メモリ600として競合用共通メモリ610と個別用共通メモリ620とに機能を分離して構成している点が主として異なっている。
【0072】
すなわち、競合用共通メモリバス410はプロセッサユニット100B,200B,300B,競合用共通メモリ610およびバス調停回路500に接続され、個別用共通メモリバス420については、プロセッサユニット100B,200B,300B,個別用共通メモリ620およびポーリング制御回路510に接続されている。尚、これらのバス410,420はそれぞれ、前述の第1,第2実施形態の場合と同様に、図示しないアドレスバス,データバスおよび制御バスをそなえて構成することができる。
【0073】
また、プロセッサユニット100B,200B,300Bは、前述の第1実施形態の場合に比して、2ウェイのローカルメモリ部160,260,360をそなえている点が異なり、このローカルメモリ部160,260,360以外のプロセッサおよびコピー回路の構成については、基本的に同様である。尚、図7中、図1と同一の符号は、ほぼ同様の部分を示す。
【0074】
また、各プロセッサユニット100B,200B,300Bにおいて動作するソフトウェアは、リアルタイムで共通使用する頻度の高いデータと、リアルタイムで共通使用する頻度の低いデータとを識別して動作する。後段のローカルメモリ部160,260,360等のハードウェアへの識別の通知は、例えばアドレス領域を分離することや、種別認識のための特定ビットの付加ビットを立てることにより行なう。
【0075】
ここで、競合用共通メモリ(第1共通メモリ)610は、プロセッサユニット100B,200B,300Bにおけるアプリケーション処理にあたって、リアルタイムにアクセス(使用)する頻度が高いデータを記憶するものである。又、個別用共通メモリ(第2共通メモリ)620は、例えば障害発生時プロセッサ110,210,310間で処理の引継ぎを行なうデータのように、データ授受のリアルタイム性の低い、即ち、リアルタイムに使用する頻度の低いデータを記憶するものである。
【0076】
また、ローカルメモリ部160は、図8に示すように、共通/個別判定部170,第1ローカルメモリ部180および第2ローカルメモリ部190をそなえて構成されている。同様に、ローカルメモリ部260は、図示が省略された共通/個別判定部,第1ローカルメモリ部および第2ローカルメモリ部をそなえて構成され、ローカルメモリ部360についても図示が省略された共通/個別判定部,第1ローカルメモリ部および第2ローカルメモリ部をそなえて構成されている。
【0077】
なお、ローカルメモリ部260,360は、ローカルメモリ部160に準じたほぼ同様の構成を有しているので、以下においては、ローカルメモリ部160の構成に着目して説明していくこととする。
ここで、ローカルメモリ部160の共通/個別判定部170は、プロセッサ110からの読み出し命令または更新命令の対象となるデータについて、前述のアドレス領域や特定ビットが付加されているか否か等に基づいて、プロセッサユニット100B〜300B間でリアルタイムに共通使用する頻度の高低を分類するものであり、分類部として機能する。
【0078】
換言すれば、共通/個別判定部170は、プロセッサ110からの読み出し命令または更新命令の対象となるデータについて、競合用共通メモリ610上に記憶すべきリアルタイムに共通使用する頻度の高いデータか、又は、個別用共通メモリ620上に記憶すべき、障害発生時にプロセッサユニット100B〜300B間で処理の引継ぎを行なうためのデータのようにデータ授受のリアルタイム性が低いデータかを判定するものである。
【0079】
さらに、共通/個別判定部170は、上述の判定の結果、リアルタイムで共通使用する頻度の高いデータである場合には上述の読み出しまたは更新の命令を第1ローカルメモリ部180に、リアルタイムで共通使用する頻度の低いデータである場合には上述の読み出しまたは更新の命令を第2ローカルメモリ部190に、それぞれ振り分けて出力するようになっている。
【0080】
さらに、第1ローカルメモリ部180は、競合用共通メモリ610の全内容データのコピーを記憶するためのものであって、図8に示すように、前述の第1実施形態におけるローカルメモリ部140と同様(図2参照)、第1バッファ141,第2バッファ142,メモリアクセスアビトレーション回路143およびコピーメモリ144をそなえて構成されている。
【0081】
すなわち、コピーメモリ144において、競合用共通メモリ610の全内容データのコピーを記憶するようになっている。尚、図8中、図2と同一の符号は、ほぼ同様の部分を示している。
さらに、第2ローカルメモリ部190は、個別用共通メモリ620の全内容データのコピーを記憶するためのものであり、第3バッファ147および個別用コピーメモリ148をそなえて構成されている。
【0082】
ここで、個別用コピーメモリ148は、共通/個別判定部170と第3バッファ147との間に介装されて、個別用共通メモリ620内の全内容データのコピーを格納するものである。又、第3バッファ147は、個別用コピーメモリ148および個別用共通メモリバス420の間に介装されて、個別用コピーメモリ148内で、後述するポーリング制御回路510の制御に基づくポーリング間隔内で変更されたアドレスおよびデータを格納しておくものである。
【0083】
また、コピー回路150は、プロセッサユニット100B,200B,300Bのいずれかのプロセッサにより競合用共通メモリ610の内容が更新された場合に第1ローカルメモリ部180におけるコピーメモリ144の更新処理を制御するようになっている。
これにより、コピーメモリ144においては、競合用共通メモリ610の内容がいずれのプロセッサユニット100B,200B,300Bで更新された場合においても、コピーメモリ144の内容も当該競合用共通メモリ610に符合するように追従して更新しているので、第1ローカルメモリ部180において、競合用共通メモリ610に記憶されたデータの読み出し命令をプロセッサ110から受けた場合においても、当該第1ローカルメモリ部180にコピーされた対応データを読み出して出力することができる。
【0084】
さらに、バス調停回路500は、競合用共通メモリバス410に接続されて、プロセッサユニット100B,200B,300Bによる競合用共通メモリ610に対するアクセスが競合した場合のバスの使用を調停するものである。
また、ポーリング制御回路510は、プロセッサユニット100B,200B,300Bによる個別用共通メモリバス420の使用を管理する第2バス使用管理回路として機能するもので、第3バッファ147と個別用共通メモリ620との間の個別用共通メモリバス420をポーリング方式でデータアクセスの制御を行なうようになっている。
【0085】
ここで、ポーリング制御回路510は、例えば図9に示すように、バス使用中応答監視部511およびバス使用許可通知部512をそなえて構成されている。
また、バス使用中応答監視部511は、各プロセッサユニット100B,200B,300Bから個別用共通メモリバス420を介して入力されるバス使用中信号応答を監視し、使用中応答信号が無効となったとき、またはプロセッサユニット100B,200B,300Bからバス使用中応答が一定時間無かったときに、バス使用許可通知部512に対してバス未使用通知を行なうものである。
【0086】
さらに、バス使用許可通知部512は、バス使用中応答監視部511からのバス未使用通知を受けて、次に個別用共通メモリバス420の使用権を与えるプロセッサユニットに対して、バス使用許可を通知するものである。
例えば、バス使用許可通知部512において、プロセッサユニット100B向けにバス使用許可を通知した後〔図10(a)の時点t1〕、バス使用中応答監視部511では、プロセッサユニット100Bからのバス使用中応答信号を受ける〔図10(b)の時点t2〕。これにより、プロセッサユニット100Bでは、個別用共通メモリバス420を使用することができる〔図10(g)の時点t2〜t3〕。
【0087】
ついで、バス使用中応答監視部511において、プロセッサユニット100Bからのバス使用中応答信号が無効となると〔図10(b)の時点t3〕、バス使用許可通知部512に対してバス未使用通知を行なう。このバス未使用通知を受けたバス使用許可通知部512においては、次に個別用共通メモリバス420の使用権を与えるプロセッサユニット200Bに対して、バス使用許可を通知する〔図10(c)の時点t4〕。
【0088】
なお、この場合においては、プロセッサユニット200Bからバス使用中応答が一定時間無い〔図10(d)の時点t4〜t5〕。このため、バス使用中応答監視部511ではバス使用許可通知部512に対してバス未使用通知を行ない、バス使用許可通知部512では、次に個別用共通メモリバス420の使用権を与えるプロセッサユニット300Bに対して、バス使用許可を通知する〔図10(e)の時点t5〕。
【0089】
これにより、プロセッサユニット300Bでは、バス使用中応答信号を出力して〔図10(f)の時点t6〜t7〕。個別用共通メモリバス420を使用することができる〔図10(g)の時点t6〜t7〕。
上述の構成により、本発明の第3実施形態にかかるマルチプロセッサ装置30においては、例えばプロセッサユニット100Bのプロセッサ110では、アクセス対象のデータに関してリアルタイムに共通使用する頻度の高いデータか又は頻度の低いデータかを識別して、ハードウェアで識別できる情報形式で、データの読み出し又は書き込みのアクセス要求を行なう。尚、以下においては、プロセッサユニット100Bに着目して詳述するが、他のプロセッサユニット200B,300Bにおいても基本的に同様である。
【0090】
プロセッサ110からのアクセス要求を受けたローカルメモリ部160の共通/個別判定部170では、例えばアドレス領域やフラグの付加状態等に基づいて、プロセッサユニット100B,200B,300B間でのデータ授受のリアルタイム性の高低を判定する。
共通/個別判定部170においては、リアルタイムで共通使用する頻度が低いデータが、書き込みアクセス対象であると判定された場合は、個別用コピーメモリ148に書き込みを行なうとともに、第3バッファ147および個別用共通メモリバス420を介して個別用共通メモリ620にアクセスする。
【0091】
なお、個別用共通メモリ620に記憶されたデータの読み出し要求については、個別用コピーメモリ148に書き込まれたデータを読み出して出力することにより、個別用共通メモリ620にアクセスする必要がなくなる。
これにより、リアルタイムで共通使用する頻度が低いデータに対するアクセスを、リアルタイムに共通使用する頻度の高いデータのアクセスに対して切り離すことができるため、共通メモリへの遅いアクセス時間によってプロセッサ処理時間が増加することはない。
【0092】
また、共通/個別判定部170においては、リアルタイムで共通使用する頻度が高いデータが、書き込みアクセス対象であると判定された場合は、前述の第1実施形態の場合と同様に、競合用共通メモリバス410を介して競合用共通メモリ620に書き込みが行なわれる一方、コピー回路150の制御により、コピーメモリ144の内容を更新することができる。従って、リアルタイムで共通使用する頻度が高いデータが、読み出しアクセス対象である場合においては、コピーメモリ144へのアクセスのみで済み、競合用共通メモリバス410にアクセスする必要がなくなる。
【0093】
このように、本発明の第3実施形態にかかるマルチプロセッサ装置30によれば、前述の第1実施形態の場合と同様、競合用共通メモリ610の全データのコピーを、それぞれのプロセッサ110,210,310配下のコピーメモリ内に持つ事で、競合用共通メモリバス410上でリードアクセスによるトランザクションが発生しないため、共通メモリバス400(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、共通メモリバスとして、競合用共通メモリバス410および個別用共通メモリバス420をそなえ、共通メモリとして、競合用共通メモリ610および個別用共通メモリ620をそなえて構成しているので、リアルタイムに共通使用する頻度の低いデータに対するアクセスを別のバス経由でアクセスすることができ、特に、リアルタイム処理を行なう場合、バス競合によるアクセスの待ち合わせをより短くすることができる。
【0094】
なお、上述の第3実施形態においては、個別用共通メモリバス420をポーリング制御回路510によるポーリング制御によりバス転送制御を行なっているが、本発明によればこれに限定されず、他の公知の手法を用いてバス転送制御を行なうことも可能である。
また、前述の第2実施形態におけるステータスメモリおよび第1バッファと同等の機能を、本実施形態にかかるマルチプロセッサ装置に適用して構成することも可能である。
【0095】
[D]第4実施形態の説明
図11は本発明の第4実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図11に示すマルチプロセッサ装置40は、前述の第1実施形態のマルチプロセッサ装置10に比して、プロセッサユニット100C,200C,300Cにおけるコピー回路150A,250A,350Aの構成が異なるとともに、共通メモリ600をそなえないで構成されている点が異なっている。
【0096】
すなわち、この図11に示すマルチプロセッサ装置40においても、アプリケーション処理を独立して行なうための3つのプロセッサユニット100C,200C,300Cと、プロセッサユニット100C,200C,300Cとともに、バス調停回路500を相互に接続する共通メモリバス400とをそなえて構成されている。
【0097】
また、各プロセッサユニット100C,200C,300Cは、前述の第1実施形態の場合と同様、データの読み出しおよび書き込みを行なって、上記アプリケーション処理のための命令実行処理を行なうプロセッサ110,210,310と、各プロセッサにおけるアプリケーション処理のためのデータを記憶するためのローカルメモリ部140,240,340とをそなえるとともに、前述の第1実施形態の場合と構成の異なるコピー回路150A,250A,350Aをそなえて構成されている。
【0098】
なお、ローカルメモリ部140,240,340については、前述の第1実施形態の場合と基本的に同様の、第1バッファ,メモリアクセスアビトレーション回路およびコピーメモリとともに、第2バッファをそなえて構成されている(図2の符号141〜144参照)。
ここで、図12に示すローカルメモリ部140の第2バッファ142に着目すると、第1実施形態の場合と同様に、プロセッサ110からコピーメモリ144への更新要求の対象となるアドレスおよびデータ(ライトデータ)とともに、他のプロセッサユニット200C,300Cのローカルメモリ部240,340で更新されたコピーメモリの内容(ライトデータおよびアドレス)を共通メモリバス400を介して入力されて一旦保持しうるものである。尚、この第2バッファ142に格納されたアドレスおよびデータについても、後述するコピー回路150Aの制御に基づいてコピーメモリ144に書き込まれるようになっている。
【0099】
また、この第2バッファ142は、プロセッサ110からコピーメモリ144に対する更新要求の対象となるアドレスおよびデータを保持した場合に、バス調停回路500に対する共通メモリバス400の使用要求を、制御バス403を通じて出力する機能を有している。
さらに、バス調停回路500は、共通メモリバス400の使用を調停するものである。例えば、上述したような、各ローカルメモリ部の第2バッファからの共通メモリバス400の使用要求を受けて、当該プロセッサユニットに対してバス使用許可を制御バス403を通じて通知する一方、後述するコピー回路150A,250A,350Aからのトランザクション終了通知を受けると、次のバス使用要求に対して共通メモリバス400へのトランザクション開始指示を行なうものである。
【0100】
ここで、コピー回路150A,250A,350Aは、3つのプロセッサユニット100C,200C,300Cのいずれかのローカルメモリ部140,240,340の内容が更新された場合に、自身のローカルメモリ部の更新処理を制御するものであって、トランザクション監視部,更新制御部としてのコピー処理制御部およびトランザクション応答部をそなえている。
【0101】
なお、プロセッサユニット200C,300Cは、プロセッサユニット100Cに準じて基本的に同様の構成を有しているため、以下においては、プロセッサユニット100Cの構成に着目して説明していくこととする。
ここで、コピー回路150Aは、図12に示すように、トランザクション監視部151,コピー処理制御部152およびトランザクション応答部153をそなえて構成されている。
【0102】
トランザクション監視部151は、共通メモリバス400のトランザクションを監視するものであるが、具体的には、後述するいずれかのローカルメモリ部140,240,340の第2バッファからのトランザクション開始通知を検出するようになっている。
さらに、トランザクション監視部151においては、上述のトランザクション開始通知を受けてから、自身の第2バッファ142が共通メモリバス400上のアドレスおよびデータを取り込むことができるタイミングになったら、第2バッファ142に対して共通メモリバス取り込みタイミングを通知するとともに、コピー処理制御部152に対してコピー処理開始タイミングを通知するようになっている。
【0103】
これにより、自身の第2バッファ142においては、共通メモリバス400上の更新対象となるアドレスおよびデータを取り込むことができるようになっている。
また、コピー処理制御部152は、トランザクション監視部151からの監視結果に基づいて、ローカルメモリ部140における更新アクセスを制御するものである。具体的には、トランザクション監視部151からのコピー処理開始タイミングを受けると、メモリアクセスアビトレーション回路143にメモリアクセスを要求する。このメモリアクセスアビトレーション回路143からアクセス可能応答を受けると、コピーメモリ144に対して、第2バッファ142に保持されたアドレスおよびデータによってメモリ更新を行なうように指示する。
【0104】
なお、コピー処理制御部152においては、上述のコピーメモリ144におけるコピー処理が完了すると、正常コピー応答をトランザクション応答部153に出力するようになっている。
トランザクション応答部(トランザクション終了通知部)153は、コピー処理制御部152による書き込みアクセス、即ち第2バッファ142のデータのコピー処理が終了した場合に、トランザクション終了を、共通メモリバス400を通じてバス調停回路500へ通知するものである。
【0105】
上述の構成により、本発明の第4実施形態にかかるマルチプロセッサ装置40では、それぞれ、以下に示すコピー回路150A,250A,350Aの制御により、ローカルメモリ部140,240,340のコピーメモリを更新して、データの同期化を図っているので、第1実施形態における共通メモリ600をそなえなくとも動作させることができる。換言すれば、各ローカルメモリ部140,240,340のコピーメモリが、仮想の共通メモリとして動作させることができるのである。
【0106】
まず、装置運用開始時においては、各ローカルメモリ部140,240,340のコピーメモリに記憶しているデータを同期化させるために、バス調停回路500によるバス調停のもとで仮想共通メモリとしての各コピーメモリの全領域ライト動作を行なう。
ついで、例えばプロセッサユニット100Cのプロセッサ110がローカルメモリ部140へライトアクセスした場合は、以下に示すように動作する。
【0107】
すなわち、プロセッサ110がローカルメモリ部140に対してライトアクセスを行なうと、ローカルメモリ部140の第2バッファ142においてはプロセッサ110が出力したアドレスおよびデータを一時的に格納した状態で、バス調停回路500にバス使用権を要求する。バス調停回路500がプロセッサユニット100Cにバス使用権を与えると、第2バッファ142は共通メモリバス400に対してライトアクセスの対象となったアドレスおよびデータを送出する。
【0108】
プロセッサユニット100Cのコピー回路150Aでは、トランザクション監視部151において、上述の第2バッファ142が共通メモリバス400に対してアドレスおよびデータを送出した旨の通知(第2バッファ142からのトランザクション開始通知)があったか否かを監視する。トランザクション監視部151では、このトランザクション開始通知に基づいて、コピーメモリ144で正常に取り込めるタイミングを検出し、コピータイミングとしてコピー処理制御部152に通知する。
【0109】
コピー処理制御部152においては、前述の第1実施形態の場合と同様に、このコピータイミングに基づいて、メモリアクセスアビトレーション回路143およびコピーメモリ144を制御することにより、上述のごとく第2バッファ142に格納されたアドレスおよびデータをコピーメモリ144に書き込み制御する。
【0110】
また、コピー処理制御部152では、共通メモリバス400上で指定されたアドレスへのデータの書き込みが完了すると、正常コピー応答としてトランザクション応答部153に通知する。正常トランザクション応答部153では、正常コピー応答を受けると、トランザクション終了応答として、制御バス403を通じてバス調停回路500に通知する。
【0111】
なお、トランザクション終了応答を受けたバス調停回路500においては、次のバス使用要求に対してバス使用権を与えることができる。
ついで、例えばプロセッサユニット100C以外の、例えばプロセッサユニット200Cのプロセッサ210が、ローカルメモリ部240へライトアクセスした場合において、プロセッサユニット100Cにおけるローカルメモリ部140の同期化は、以下に示すように行なわれる。
【0112】
すなわち、プロセッサ210がローカルメモリ部240に対してライトアクセスを行なうと、ローカルメモリ部240の第2バッファにおいてはプロセッサ210が出力したアドレスおよびデータを一時的に格納した状態で、バス調停回路500にバス使用権を要求する。バス調停回路500がプロセッサユニット200Cにバス使用権を与えると、ローカルメモリ部240の第2バッファでは、共通メモリバス400に対してライトアクセスの対象となるアドレスおよびデータを送出する。
【0113】
プロセッサユニット100Cのコピー回路150Aでは、トランザクション監視部151において、ローカルメモリ部240の第2バッファが共通メモリバス400に対してアドレスおよびデータを送出した旨の通知(第2バッファからのトランザクション開始通知)があったか否かを監視する。
トランザクション監視部151では、このトランザクション開始通知に基づいて、共通メモリバス400を通じ第2バッファ142で正常に取り込めるタイミングを検出して、共通メモリバス取り込みタイミングとしてコピー処理制御部152に通知する。これにより、第2バッファ142においては、他のプロセッサユニット200Cで更新されたアドレスおよびデータを自身の第2バッファ142に取り込むことができる。
【0114】
また、トランザクション監視部151においては、上述の共通メモリバス取り込みタイミングとともに、第2バッファ142で取り込むことができたアドレスおよびデータをコピーメモリ144にコピーするためのタイミングを検出し、コピータイミングとしてコピー処理制御部152に通知する。
コピー処理制御部152においては、前述の第1実施形態の場合と同様に、このコピータイミングに基づきメモリアクセスアビトレーション回路143およびコピーメモリ144を制御することにより、上述のごとく第2バッファ142に格納されたアドレスおよびデータをコピーメモリ144に書き込み制御する。
【0115】
また、コピー処理制御部152では、共通メモリバス400上で指定されたアドレスへのデータの書き込みが完了すると、正常コピー応答としてトランザクション応答部153に通知する。正常トランザクション応答部153では、正常コピー応答を受けると、トランザクション終了応答として、制御バス403を通じてバス調停回路500に通知する。
【0116】
なお、トランザクション終了応答を受けたバス調停回路500においては、次のバス使用要求に対してバス使用権を与えることができる。
換言すれば、ローカルメモリ部140,240,340が、いずれかのプロセッサ110,210,310からのデータ更新要求を受けると、バス調停回路500に対してバス使用要求を出力するように構成される。更に、それぞれのコピー回路150A,250A,350Aにおいては、トランザクション監視部における共通メモリバス400のトランザクションの監視の結果バス調停回路500からのバス使用許可を受けると、コピー処理制御部において上記データ更新要求の内容に従ってローカルメモリ部140,240,340の更新処理を制御する。
【0117】
これにより、ローカルメモリ部140,240,340では、それぞれのプロセッサ110,210,310からのデータ更新要求を受けると、バス調停回路500に対してバス使用要求を出力し、且つ、コピー回路150A,250A,350Aが、バス調停回路500からのバス使用許可を受けると、上記データ更新要求の内容に従ってローカルメモリ部140,240,340の更新処理をそれぞれ制御する。
【0118】
さらに、例えばプロセッサ110から仮想共通メモリとしてのローカルメモリ部140に対してリードアクセスした場合について詳述する。
すなわち、プロセッサ110が仮想共通メモリとしてのローカルメモリ部140に対してリードアクセスを行なうと、ローカルメモリ部140では、該当するアドレスのデータをプロセッサ110に応答する。
【0119】
このように、本発明の第4実施形態にかかるマルチプロセッサ装置40によれば、前述の第1実施形態の場合と同様に、共通メモリとして記憶すべきデータを、それぞれのプロセッサ110,210,310配下のローカルメモリ部内に持つ事ができるので、共通メモリバス400上でリードアクセスによるトランザクションが発生しないため、共通メモリバス400(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点がある。
【0120】
さらに、コピー回路150A,250A,350Aをそなえたことにより、各ローカルメモリ部140,240,340を仮想共通メモリとして動作させて、第1実施形態における共通メモリ600をそなえなくともマルチプロセッサ装置として動作させることができる利点もある。
なお、上述の第4実施形態において、前述の第2実施形態におけるステータスメモリおよび第1バッファと同等の機能や、第3実施形態の特徴的な構成である競合用および個別用に分離された共通メモリバスおよび2ウェイのローカルメモリ部の構成を適宜組み合わせて適用して実施することも、もちろん可能である。
【0121】
[E]その他
上述の各実施形態におけるマルチプロセッサ装置においては、3つのプロセッサユニットを共通メモリバスを介して接続して構成されているが、本発明によればこれに限定されず、少なくとも複数であればよい。
また、各実施形態におけるマルチプロセッサ装置においては、バス調停回路500をそなえているが、本発明によれば、これを省略して構成することとしてもよい。
【0122】
[F]付記
(付記1) アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、
該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、マルチプロセッサ装置。
【0123】
(付記2) 該コピー回路が、上記のプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記1記載のマルチプロセッサ装置。
(付記3) 上記の各プロセッサユニットのローカルメモリ部が、
該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、
該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第2バッファと、
該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第2バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、付記1記載のマルチプロセッサ装置。
【0124】
(付記4) 該コピー回路が、該バスのトランザクションを監視するトランザクション監視部と、該トランザクション監視部からの監視結果に基づいて、該ローカルメモリ部における更新処理を制御する更新制御部とをそなえて構成されたことを特徴とする、付記1記載のマルチプロセッサ装置。
(付記5) 該トランザクション監視部における該バスのトランザクションの監視の結果、上記のプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、該更新制御部が、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記4記載のマルチプロセッサ装置。
【0125】
(付記6) 該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、
該第1バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成されたことを特徴とする、付記3記載のマルチプロセッサ装置。
【0126】
(付記7) 該第2バッファにて保持されている内容を該メモリに更新するための更新アクセスを正常に完了できなかった場合には、該ステータスメモリの対応アドレス領域にはデータ無し状態が記録されるように構成されたことを特徴とする、付記6記載のマルチプロセッサ装置。
(付記8) 該共通メモリが、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高いデータを記憶する第1共通メモリと、上記頻度が低いデータを記憶する第2共通メモリとをそなえるとともに、
該バスが、上記の複数のプロセッサユニットと第1共通メモリとを相互に接続する第1バスと、上記の複数のプロセッサユニットと第2共通メモリとを相互に接続する第2バスとをそなえ、
上記のプロセッサユニットによる第1バスの使用を調停する第1バス調停回路と、上記のプロセッサユニットによる第2バスの使用を管理する第2バス使用管理回路とをそなえ、
上記の各プロセッサユニットのローカルメモリ部が、
該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第1共通メモリの全内容データのコピーを記憶するための第1ローカルメモリ部と、
該第2共通メモリの全内容データのコピーを記憶するための第2ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第1共通メモリの内容が更新された場合に該第1ローカルメモリ部の更新処理を制御すべく構成されるとともに、
上記の第1ローカルメモリ部において、該第1共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第1ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、付記1記載のマルチプロセッサ装置。
【0127】
(付記9) アプリケーション処理を独立して行なうための複数のプロセッサユニットと、上記の複数のプロセッサユニットを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
データの読み出しおよび書き込みを行なって、上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
該プロセッサにおける上記アプリケーション処理のためのデータを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのローカルメモリ部の内容が更新された場合に、自身のローカルメモリ部の更新処理を制御するコピー回路とをそなえて構成されたことを
特徴とする、マルチプロセッサ装置。
【0128】
(付記10) 上記のプロセッサユニットによるバスの使用を調停するバス調停回路をそなえ、
該ローカルメモリ部が、該プロセッサからのデータ更新要求を受けると、該バス調停回路に対してバス使用要求を出力するように構成され、且つ、該コピー回路が、該バス調停回路からのバス使用許可を受けると、上記データ更新要求の内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記9記載のマルチプロセッサ装置。
【0129】
(付記11) 上記の各プロセッサユニットのローカルメモリ部が、
上記アプリケーション処理のためのデータを記憶するメモリと、
該プロセッサからの上記データの読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの上記データの書き込み要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットにおけるのいずれかのローカルメモリ部のメモリにおいて更新された内容を、一旦保持する第2バッファと、
該プロセッサからの上記読み出し命令に基づいた該メモリに対する読み出しアクセスと、該第2バッファにて保持されている内容を該メモリに書き込むための書き込みアクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、付記9記載のマルチプロセッサ装置。
【0130】
(付記12) 上記のプロセッサユニットによるバスの使用を調停するバス調停回路をそなえ、
該コピー回路が、該バスのトランザクションを監視するトランザクション監視部と、該トランザクション監視部からの監視結果に基づいて該ローカルメモリ部における更新アクセスを制御する更新制御部と、該更新制御部による上記書き込みアクセスが終了した場合に、トランザクション終了を該バスを通じて該バス調停回路へ通知するトランザクション終了通知部とをそなえて構成されたことを特徴とする、付記9記載のマルチプロセッサ装置。
【0131】
(付記13) 該ローカルメモリ部が、該プロセッサからのデータ更新要求を受けると、該バス調停回路に対してバス使用要求を出力するように構成され、且つ、上記のコピー回路のトランザクション監視部における該バスのトランザクションの監視の結果、該バス調停回路からのバス使用許可を受けると、該更新制御部においては、上記データ更新要求の内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記12記載のマルチプロセッサ装置。
【0132】
(付記14) 該ローカルメモリ部が、上記のメモリ上において更新制御部による更新制御がなされたアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、
該第1バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをメモリから読み出して一旦保持するとともに、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、他のプロセッサユニットにおけるローカルメモリ部に対するデータ読み出しのための処理を行なう読み出し命令出力部とをそなえて構成されたことを特徴とする、付記11記載のマルチプロセッサ装置。
【0133】
(付記15) 該第2バッファにて保持されている内容を該メモリに書き込むための書き込みアクセスを正常に完了できなかった場合には、該ステータスメモリの該当アドレス領域にはデータ無し状態が記録されるように構成されたことを特徴とする、付記14記載のマルチプロセッサ装置。
(付記16) 該バスが、上記アプリケーション処理によりリアルタイムに共通使用する頻度の高いデータを授受するための第1バスと、上記頻度が低いデータを授受するための第2バスとをそなえるとともに、
該バス調停回路が、上記のプロセッサユニットによる第1バスの使用を調停する第1バス調停回路と、上記のプロセッサユニットによる第2バスの使用を調停する第2バス使用管理回路とをそなえ、
上記の各プロセッサユニットにおけるローカルメモリ部が、該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第1共通メモリの全内容データのコピーを記憶するための第1ローカルメモリ部と、
該第2共通メモリの全内容データのコピーを記憶するための第2ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第1共通メモリの内容が更新された場合に該第1ローカルメモリ部の更新処理を制御すべく構成されたことを
特徴とする、付記9記載のマルチプロセッサ装置。
【0134】
【発明の効果】
以上詳述したように、本発明のマルチプロセッサ装置によれば、各プロセッサユニットが、プロセッサとローカルメモリ部とコピー回路とをそなえたことにより、共通メモリの全データのコピーを、それぞれのプロセッサ配下のコピーメモリ内に持つ事で、バス上でリードアクセスによるトランザクションが発生しないため、バスでの競合を最小限に抑えることができる。これにより、バス競合によるアクセスの待ち合わせを短くすることが可能となる。特に、リアルタイム処理を行なう場合でも、キャッシュメモリ方式のごときキャッシュメモリ上のデータの無効化処理や再読み込み処理等が増加することもなく、必要とする共通メモリ上のデータへのアクセスを最小の待ち合わせで行なうことができる。
【0135】
また、本発明によれば、各プロセッサユニットのローカルメモリ部におけるステータスメモリおよび第1バッファにより、共通メモリのデータがコピーメモリにコピーされているか否かに応じて、それぞれのプロセッサに対して矛盾の無い読み出しデータを出力することができるので、前述の第1実施形態の場合と同様、共通メモリバスでの競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、複数のコピーメモリにおける全てのデータを一致させるための初期化処理を省略することができる。
【0137】
さらに、本発明によれば、該共通メモリが第1共通メモリと第2共通メモリとをそなえる、該バスが第1バスと第2バスとをそなえるとともに、各プロセッサユニットにおけるローカルメモリ部の分類部をそなえたことにより、リアルタイムに共通使用する頻度の低いデータに対するアクセスを別のバス経由でアクセスすることができ、特に、リアルタイム処理を行なう場合、バス競合によるアクセスの待ち合わせをより短くすることができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図2】第1実施形態におけるローカルメモリ部の構成に着目したブロック図である。
【図3】第1実施形態におけるコピー回路の構成に着目したブロック図である。
【図4】(a)は自身のプロセッサユニットからの書き込み要求時の信号経路を示す図、(b)は他のプロセッサユニットからの書き込み要求時の信号経路を示す図、(c)は自身のプロセッサユニットからの読み出し要求時の信号経路を示す図である。
【図5】本発明の第2実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図6】本発明の第2実施形態におけるステータスメモリの構成を示す図である。
【図7】本発明の第3実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図8】本発明の第3実施形態にかかるマルチプロセッサ装置を詳細に示すブロック図である。
【図9】第3実施形態におけるポーリング制御回路の構成に着目したブロック図である。
【図10】第3実施形態におけるポーリング制御動作を説明するためのタイムチャートである。
【図11】本発明の第4実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図12】第4実施形態におけるコピー回路の構成に着目したブロック図である。
【図13】マルチプルセッサ装置を示すブロック図である。
【符号の説明】
10〜40 マルチプロセッサ装置
100,101,100A〜100C プロセッサユニット
110,210,310 プロセッサ
120,220,320 キャッシュメモリ
130,230,330 スヌープ回路
140,160,240,260,340,360 ローカルメモリ部
141,146 第1バッファ
142 第2バッファ
143 メモリアクセスアビトレーション回路(メモリアクセス調停回路)
144 コピーメモリ
145 ステータスメモリ
146−1 ステータス判定部
146−2 読み出し処理部
150,250,350,150A,250A,350A コピー回路
151 トランザクション監視部
152 コピー処理制御部(更新制御部)
153 トランザクション応答部
200,201,200A〜200C プロセッサユニット
300,301,300A〜300C プロセッサユニット
400 共通メモリバス
410 競合用共通メモリバス
420 個別用共通メモリバス
401 アドレスバス
402 データバス
403 制御バス
500 バス調停回路
510 ポーリング制御回路
511 バス使用中応答監視部
512 バス使用許可通知部
600 共通メモリ
610 競合用共通メモリ
620 個別用共通メモリ
700 マルチプロセッサ装置
Claims (4)
- アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、
該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するとともに、
該コピー回路が、該複数のプロセッサユニットをなすいずれかのプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、マルチプロセッサ装置。 - 上記の各プロセッサユニットのローカルメモリ部が、
該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、
該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第2バッファと、
該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第2バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、請求項1記載のマルチプロセッサ装置。 - 該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリを
そなえるとともに、
該第1バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成されたことを特徴とする、請求項2記載のマルチプロセッサ装置。 - 該共通メモリが、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高いデータを記憶する第1共通メモリと、上記頻度が低いデータを記憶する第2共通メモリとをそなえるとともに、
該バスが、上記の複数のプロセッサユニットと第1共通メモリとを相互に接続する第1バスと、上記の複数のプロセッサユニットと第2共通メモリとを相互に接続する第2バスとをそなえ、
上記のプロセッサユニットによる第1バスの使用を調停する第1バス調停回路と、上記のプロセッサユニットによる第2バスの使用を管理する第2バス使用管理回路とをそなえ、
上記の各プロセッサユニットのローカルメモリ部が、
該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第1共通メモリの全内容データのコピーを記憶するための第1ローカルメモリ部と、
該第2共通メモリの全内容データのコピーを記憶するための第2ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第1共通メモリの内容が更新された場合に該第1ローカルメモリ部の更新処理を制御すべく構成されるとともに、
上記の第1ローカルメモリ部において、該第1共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第1ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、請求項1記載のマルチプロセッサ装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002126212A JP3884990B2 (ja) | 2002-04-26 | 2002-04-26 | マルチプロセッサ装置 |
US10/278,123 US7080215B2 (en) | 2002-04-26 | 2002-10-22 | Multiprocessor system with local memory which mirrors a shaped memory |
KR10-2002-0066465A KR100496116B1 (ko) | 2002-04-26 | 2002-10-30 | 멀티프로세서 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002126212A JP3884990B2 (ja) | 2002-04-26 | 2002-04-26 | マルチプロセッサ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003316753A JP2003316753A (ja) | 2003-11-07 |
JP3884990B2 true JP3884990B2 (ja) | 2007-02-21 |
Family
ID=29243795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002126212A Expired - Fee Related JP3884990B2 (ja) | 2002-04-26 | 2002-04-26 | マルチプロセッサ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7080215B2 (ja) |
JP (1) | JP3884990B2 (ja) |
KR (1) | KR100496116B1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050120185A1 (en) * | 2003-12-01 | 2005-06-02 | Sony Computer Entertainment Inc. | Methods and apparatus for efficient multi-tasking |
US7565653B2 (en) * | 2004-02-20 | 2009-07-21 | Sony Computer Entertainment Inc. | Methods and apparatus for processor task migration in a multi-processor system |
US8028292B2 (en) * | 2004-02-20 | 2011-09-27 | Sony Computer Entertainment Inc. | Processor task migration over a network in a multi-processor system |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
US7054966B2 (en) * | 2004-06-14 | 2006-05-30 | General Electric Company | Data processing system |
US8640194B2 (en) * | 2004-08-25 | 2014-01-28 | Nec Corporation | Information communication device and program execution environment control method |
KR100725100B1 (ko) * | 2005-12-22 | 2007-06-04 | 삼성전자주식회사 | 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치 |
JP4546943B2 (ja) * | 2006-09-01 | 2010-09-22 | 株式会社日立製作所 | 転写メモリシステムに用いられるノードおよびメモリ領域管理方法 |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
KR101375836B1 (ko) | 2007-06-26 | 2014-04-01 | 삼성전자주식회사 | 멀티코어 프로세서 상에서 연관된 작업들을 수행하는 방법및 장치 |
JP5270924B2 (ja) * | 2008-01-30 | 2013-08-21 | 株式会社東芝 | 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 |
US9176891B2 (en) | 2008-03-19 | 2015-11-03 | Panasonic Intellectual Property Management Co., Ltd. | Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing |
US8667254B1 (en) * | 2008-05-15 | 2014-03-04 | Xilinx, Inc. | Method and apparatus for processing data in an embedded system |
JP5094822B2 (ja) * | 2008-12-04 | 2012-12-12 | 韓國電子通信研究院 | 多重プロセッサを含むメモリアクセス装置 |
WO2010095166A1 (en) * | 2009-02-17 | 2010-08-26 | Hitachi, Ltd. | Storage controller and method of controlling storage controller |
US8566524B2 (en) * | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
KR101664108B1 (ko) | 2010-04-13 | 2016-10-11 | 삼성전자주식회사 | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 |
US8683251B2 (en) | 2010-10-15 | 2014-03-25 | International Business Machines Corporation | Determining redundancy of power feeds connecting a server to a power supply |
JP5558632B2 (ja) * | 2011-04-28 | 2014-07-23 | 三菱電機株式会社 | システムコントローラ、設備システム及びプログラム |
US9454482B2 (en) * | 2013-06-27 | 2016-09-27 | Apple Inc. | Duplicate tag structure employing single-port tag RAM and dual-port state RAM |
CN103559079A (zh) * | 2013-11-15 | 2014-02-05 | 深圳市道通科技有限公司 | 一种基于共享内存的数据存取方法及装置 |
DE102013224702A1 (de) * | 2013-12-03 | 2015-06-03 | Robert Bosch Gmbh | Steuergerät für ein Kraftfahrzeug |
JP6515579B2 (ja) * | 2015-02-23 | 2019-05-22 | コニカミノルタ株式会社 | 画像処理装置、画像処理方法、画像処理装置の制御プログラム、および画像形成システム |
KR102407917B1 (ko) | 2015-11-12 | 2022-06-10 | 삼성전자주식회사 | 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법 |
CN106933512B (zh) * | 2017-02-27 | 2020-03-27 | 深圳怡化电脑股份有限公司 | 一种数据读写的方法及其设备 |
CN114217744A (zh) * | 2021-12-14 | 2022-03-22 | 山东产研鲲云人工智能研究院有限公司 | 使用影子寄存器的efuse储存内容分发方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60183652A (ja) | 1984-03-02 | 1985-09-19 | Hitachi Ltd | キヤツシユメモリ制御方法 |
JP2656543B2 (ja) | 1988-05-26 | 1997-09-24 | 東京電力株式会社 | ブロードキャストメモリ方式分散コンピュータシステム |
JPH0340046A (ja) * | 1989-07-06 | 1991-02-20 | Hitachi Ltd | キャッシュメモリ制御方式および情報処理装置 |
JPH06208547A (ja) | 1993-01-08 | 1994-07-26 | Sony Corp | 通信制御装置 |
JPH0830510A (ja) | 1994-07-12 | 1996-02-02 | Nec Eng Ltd | キャッシュ制御システム |
US5615334A (en) * | 1994-10-07 | 1997-03-25 | Industrial Technology Research Institute | Memory reflection system and method for reducing bus utilization and device idle time in the event of faults |
JPH0944399A (ja) | 1995-08-01 | 1997-02-14 | Matsushita Electric Ind Co Ltd | 演算装置 |
-
2002
- 2002-04-26 JP JP2002126212A patent/JP3884990B2/ja not_active Expired - Fee Related
- 2002-10-22 US US10/278,123 patent/US7080215B2/en not_active Expired - Fee Related
- 2002-10-30 KR KR10-2002-0066465A patent/KR100496116B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20030084553A (ko) | 2003-11-01 |
US20030204682A1 (en) | 2003-10-30 |
JP2003316753A (ja) | 2003-11-07 |
US7080215B2 (en) | 2006-07-18 |
KR100496116B1 (ko) | 2005-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3884990B2 (ja) | マルチプロセッサ装置 | |
CN108885583B (zh) | 高速缓存存储器访问 | |
US5682516A (en) | Computer system that maintains system wide cache coherency during deferred communication transactions | |
US7143246B2 (en) | Method for supporting improved burst transfers on a coherent bus | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US5265235A (en) | Consistency protocols for shared memory multiprocessors | |
US5765196A (en) | System and method for servicing copyback requests in a multiprocessor system with a shared memory | |
US20010039604A1 (en) | Consistency control device merging updated memory blocks | |
US7536514B2 (en) | Early return indication for read exclusive requests in shared memory architecture | |
EP1035476A1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US6260117B1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
EP1200897B1 (en) | Mechanism for reordering transactions in computer systems with snoop-based cache consistency protocols | |
US6502168B1 (en) | Cache having virtual cache controller queues | |
JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
US20190155729A1 (en) | Method and apparatus for improving snooping performance in a multi-core multi-processor | |
EP0489556B1 (en) | Consistency protocols for shared memory multiprocessors | |
US20100058001A1 (en) | Distributed shared memory multiprocessor and data processing method | |
CN112955876A (zh) | 具有对写入操作的改进处理的用于数据处理网络的i/o相干请求节点 | |
US7797495B1 (en) | Distributed directory cache | |
JP2746530B2 (ja) | 共有メモリマルチプロセッサ | |
US8010682B2 (en) | Early coherency indication for return data in shared memory architecture | |
US6862646B2 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
US6973548B1 (en) | Data acceleration mechanism for a multiprocessor shared memory system | |
US6173370B1 (en) | Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction | |
JP2000267935A (ja) | キヤッシュメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041012 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061012 |
|
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: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131124 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |