JP5241384B2 - 分散共有メモリ型マルチプロセッサ及びデータ処理方法 - Google Patents

分散共有メモリ型マルチプロセッサ及びデータ処理方法 Download PDF

Info

Publication number
JP5241384B2
JP5241384B2 JP2008220730A JP2008220730A JP5241384B2 JP 5241384 B2 JP5241384 B2 JP 5241384B2 JP 2008220730 A JP2008220730 A JP 2008220730A JP 2008220730 A JP2008220730 A JP 2008220730A JP 5241384 B2 JP5241384 B2 JP 5241384B2
Authority
JP
Japan
Prior art keywords
address
memory
access request
write access
processing element
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
Application number
JP2008220730A
Other languages
English (en)
Other versions
JP2010055440A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008220730A priority Critical patent/JP5241384B2/ja
Priority to US12/461,812 priority patent/US8458411B2/en
Publication of JP2010055440A publication Critical patent/JP2010055440A/ja
Application granted granted Critical
Publication of JP5241384B2 publication Critical patent/JP5241384B2/ja
Expired - Fee Related 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Description

本発明は、分散共有メモリ型マルチプロセッサ及びそのデータ処理方法に関する。
近年、単一のプロセッサでの処理速度には限界が見え始め、複数のプロセッサが並列処理を行うマルチプロセッサが脚光を浴び、すでに実用化されている。マルチプロセッサは、通常、複数のプロセッサが互いにアクセス可能な共有メモリを備えている。このようなマルチプロセッサは共有メモリ型マルチプロセッサと呼ばれる。また、共有メモリ型マルチプロセッサは、複数のプロセッサが1つの共有メモリに接続された集中共有メモリ型と、複数のプロセッサがそれぞれ局所メモリを備える分散共有メモリ型とに大別される。
図6は本発明の課題を説明するための図であって、分散共有メモリ型マルチプロセッサの模式図である。CPUを備えるプロセッサエレメントPE1及びPE2は各々局所メモリLM1及びLM2を備えている。また、プロセッサエレメントPE1とプロセッサエレメントPE2とは、バスを介して接続されている。そのため、プロセッサエレメントPE1は局所メモリLM2にもアクセスすることができ、プロセッサエレメントPE2は局所メモリLM1にもアクセスすることができる。
従って、局所メモリLM1及びLM2は、2つのプロセッサエレメントPE1及びPE2に共有され、1つの論理アドレス空間に配置されている。このような分散共有メモリ型マルチプロセッサでは、自己の局所メモリに対しては、高速にアクセスすることができる。一方、他のプロセッサエレメントの局所メモリに対しては、多段のブリッジを経由するため、アクセスに時間が掛かる。ここで、書き込みはポステッド・ライトによりある程度高速化されているため、読み取りに要する時間が特に問題となる。
これに対し、特許文献1には、論理アドレス空間にブロードキャスト領域を定義した分散共有メモリ型マルチプロセッサが開示されている。ブロードキャスト領域は、各プロセッサエレメントからは同一のアドレス領域として認識される領域である。他方、実体は、各局所メモリにおいて同一のデータが格納された領域である。ブロードキャスト領域に対する書き込み要求があった場合、各局所メモリに同一のデータが書き込まれる。また、ブロードキャスト領域に対する読み取り要求があった場合、自己の局所メモリからデータが読み取られる。そのため、高速読み取りが可能となる。
特開平5−290000号公報
しかしながら、特許文献1に開示された分散共有メモリ型マルチプロセッサでは、自己の局所メモリへの書き込み完了と、他のプロセッサの局所メモリへの書き込み完了のタイミングがずれる。そのため、同一であるべき各局所メモリのデータに不整合が生じる恐れがあった。
例えば、ブロードキャスト領域の同一アドレスに対し、プロセッサエレメントPE1からの書き込み要求と、プロセッサエレメントPE2からの書き込み要求とがほぼ同時にあった場合を考える。その場合、プロセッサエレメントPE1の要求は、まず局所メモリLM1に到達し、次に局所メモリLM2に到達する。また、プロセッサエレメントPE2の要求は、まず局所メモリLM2に到達し、次に局所メモリLM1に到達する。
そのため、局所メモリLM1へは、まずプロセッサエレメントPE1により書き込まれ、次にプロセッサエレメントPE2により書き変えられる。一方、局所メモリLM2へは、まずプロセッサエレメントPE2により書き込まれ、次にプロセッサエレメントPE1により書き変えられる。従って、局所メモリLM1とLM2とに書き込まれたデータに不整合が生じることになる。
なお、上記の場合、メモリインターフェースMIF1及びMIF2では、各プロセッサエレメントからの書き込み要求は競合していない。そのため、上記のデータ不整合は、メモリインターフェースMIF1及びMIF2が備えるアービタ(不図示)により防止することはできない。
本発明の一態様は、
第1のプロセッシングエレメントと、
前記第1のプロセッシングエレメントの局所メモリである第1のメモリと、
前記第1のプロセッシングエレメントとバスを介して接続された第2のプロセッシングエレメントと、
前記第2のプロセッシングエレメントの局所メモリである第2のメモリと、
前記第1及び第2のメモリを含む共有メモリの論理アドレス空間において、1つの論理アドレスに対し、前記第1及び第2のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、
前記第1のプロセッシングエレメントから前記仮想的な共有メモリ領域に対して書き込みアクセス要求があった場合、前記第2のプロセッシングエレメントからの前記仮想的な共有メモリ領域に対する書き込みアクセス要求の状況に応じて、前記第1のプロセッシングエレメントのアクセスを保留にするアービタと、を備える分散共有メモリ型マルチプロセッサである。
本発明によれば、高速読み取りが可能であって、かつ、局所メモリ間のデータの不整合を防止した分散共有メモリ型マルチプロセッサを提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
実施の形態1
以下、図面を参照して本発明の実施形態について説明する。図1は、実施の形態1に係る分散共有メモリ型マルチプロセッサのブロック図である。図1に示すように、実施の形態1に係るマルチプロセッサは、プロセッサエレメントPE1、プロセッサエレメントPE2、局所メモリLM1、局所メモリLM2、同期ウィンドウアービタ100を備えている。なお、当該実施の形態は、複数のマルチプロセッサと、各マルチプロセッサの局所メモリを備えた分散共有メモリ型マルチプロセッサを代表する例であって、マルチプロセッサ及び局所メモリの数が2つに限定されないことは言うまでもない。
プロセッサエレメントPE1は、CPU1、RAMインターフェースMIF11、PE間RAMインターフェースMIF12を備えている。CPU1は、バスを介して、RAMインターフェースMIF11及びPE間RAMインターフェースMIF12に接続されている。RAMインターフェースMIF11は、バスを介して、プロセッサエレメントPE1のローカルRAMである局所メモリLM1に接続されている。そのため、CPU1は局所メモリLM1にアクセスすることができる。
プロセッサエレメントPE2は、CPU2、RAMインターフェースMIF21、PE間RAMインターフェースMIF22を備えている。CPU2は、バスを介して、RAMインターフェースMIF21及びPE間RAMインターフェースMIF22に接続されている。RAMインターフェースMIF21は、バスを介して、プロセッサエレメントPE2のローカルRAMである局所メモリLM2に接続されている。そのため、CPU2は局所メモリLM2にアクセスすることができる。
また、プロセッサエレメントPE1のPE間RAMインターフェースMIF12とプロセッサエレメントPE2のRAMインターフェースMIF21とは、バスを介して接続されている。そのため、CPU1は局所メモリLM2にもアクセスすることができる。一方、プロセッサエレメントPE2のPE間RAMインターフェースMIF22とプロセッサエレメントPE1のRAMインターフェースMIF11も、バスを介して接続されている。そのため、CPU2は局所メモリLM1にもアクセスすることができる。
このように、局所メモリLM1及びLM2は、2つのプロセッサエレメントPE1及びPE2に共有され、1つの論理アドレス空間に配置されている。また、実施の形態1に係る分散共有メモリ型マルチプロセッサは、論理アドレス空間に各プロセッサエレメントPE1、PE2から同一のアドレス領域として認識される仮想的な共有メモリ領域を備えている。本明細書では、当該領域を同期ウィンドウ領域と呼ぶ。なお、当該領域は特許文献1では、ブロードキャスト領域と呼ばれていたものである。
同期ウィンドウ領域の実体は、各局所メモリにおいて同一のデータが格納される領域である。同期ウィンドウ領域に対する書き込み要求があった場合、各局所メモリに同一のデータが書き込まれる。また、同期ウィンドウ領域に対する読み取り要求があった場合、自己の局所メモリからデータが読み取られる。そのため、高速読み取りが可能となる。
ここで、図2を用いて、同期ウィンドウ領域についてさらに詳細に説明する。図2(a)は実施の形態1に係る分散共有メモリ型マルチプロセッサにおける共有メモリのメモリマップイメージである。図2(a)に示すように、メモリマップには、プロセッサエレメントPE1のローカルRAMである局所メモリLM1のメモリ領域(図中、PE1−RAM)と、プロセッサエレメントPE2のローカルRAMである局所メモリLM2のメモリ領域(図中、PE2−RAM)に加え、同期ウィンドウ領域が定義されている。
図2(a)では、これら3つの領域の容量は、いずれも2MBである。また、同期ウィンドウ領域は、論理アドレスFEE00000〜FEFFFFFFにより指定されている。局所メモリ領域PE1−RAMは、論理アドレスFEC00000〜FEDFFFFFにより指定されている。局所メモリ領域PE2−RAMは、論理アドレスFEA00000〜FEBFFFFFにより指定されている。
図2(b)は、プロセッサエレメントPE1からライト要求があった場合のイメージ図である。例えば、プロセッサエレメントPE1から同期ウィンドウ領域の論理アドレスFEE00100へのライト要求があった場合、局所メモリ領域PE1−RAM及び局所メモリ領域PE2−RAMの物理アドレス00100へ、同一データが書き込まれる。なお、プロセッサエレメントPE2からのライト要求の場合も同様である。
図2(c)は、プロセッサエレメントPE1からリード要求があった場合のイメージ図である。例えば、プロセッサエレメントPE1から同期ウィンドウ領域の論理アドレスFEE00100へのリード要求があった場合、自己の局所メモリ領域PE1−RAMの物理アドレス00100から読み取る。なお、プロセッサエレメントPE2からのリード要求の場合も同様に、自己の局所メモリ領域PE2−RAMから読み取る。
同期ウィンドウアービタ100は、プロセッサエレメントPE1からの書き込みアクセスと、プロセッサエレメントPE2からの書き込みアクセスとを、調停する役割を担っている。なお、読み取りアクセスの場合、各プロセッサエレメントは自己の局所メモリにアクセスするのみであるから調停は不要である。同期ウィンドウアービタ100は、PE1制御部110、PE2制御部120を備える。また、PE1制御部110、PE2制御部120は各々PE1アドレスバッファ111、PE2アドレスバッファ121を備える。
図1を用いてプロセッサエレメントPE1から書き込みアクセス要求があった場合の動作について説明する。書き込みアクセスの場合、アクセス要求が、RAMインターフェースMIF11から同期ウィンドウアービタ100のPE1制御部110へ入力される。また、対象アドレス、ロック要求、アクセス種別(リード/ライト)などのアクセス情報も、RAMインターフェースMIF11から同期ウィンドウアービタ100のPE1制御部へ入力される。ここで、対象アドレスはPE1アドレスバッファ111に登録される。なお、読み取りアクセスのみの場合、RAMインターフェースMIF11からアクセス要求は出力されないが、リードモディファイライトのような、読み取りと書込みが混在したアトミックアクセスの場合は、アクセス要求を出力する。
同期ウィンドウアービタ100は、アクセス要求アドレスと同じアドレスがPE2アドレスバッファ121に登録されていなければ、直ちに、プロセッサエレメントPE1に対してアクセス許可を出力する。一方、アクセス要求アドレスと同じアドレスがPE2アドレスバッファ121に登録されていれば、PE2アドレスバッファ121が開放されてから、プロセッサエレメントPE1に対してアクセス許可を出力する。すなわち、先のアクセス要求が優先される。このアクセス許可は、RAMインターフェースMIF11及びPE間RAMインターフェースMIF12に入力される。
そして、プロセッサエレメントPE1のPE間RAMインターフェースMIF12からアクセス完了通知が入力されると、PE1アドレスバッファ111を開放する。プロセッサエレメントPE2からのアクセス要求があった場合についても同様である。なお、プロセッサエレメントPE1及びPE2から同時にアクセス要求があった場合、所定の取り決めによりアクセス順序を決定すればよい。本実施の形態では、前回許可されたプロセッサエレメントが待たされる。
以上のように、各プロセッサエレメントからの書き込みアクセスは、同期ウィンドウアービタ100に許可を得てから行われる。そのため、同一であるべきデータに不整合が生じることがない。
図3は、同期ウィンドウアービタ100の詳細なブロック図である。同期ウィンドウアービタ100は、PE1制御部110、PE2制御部120、PE間制御部130を備えている。また、PE1制御部110は、アドレスバッファ111、アクセス許可制御部112、保留判定部113、アドレスバッファ制御部114、比較器115を備えている。
アクセス許可制御部112は、保留判定部113及びアドレスバッファ制御部114と接続されている。アドレスバッファ制御部114はアドレスバッファ111に接続されている。図3では、アドレスバッファ111は3つ設けられている。また、比較器115も3つ設けられている。そして、各アドレスバッファ111が1つの比較器115に接続されている。アドレスバッファの段数は、PE間RAMインターフェースMIF12、22の有するバッファ段数と同数にするのが好ましい。また、3つに限定されるものではないが、複数のアドレスを登録可能とするために、複数段であることが好ましい。なお、PE2制御部120の詳細は、PE1制御部110と同様であるため、省略されている。
図3を用いて、同期ウィンドウアービタ100の動作の詳細について説明する。最初に、プロセッサエレメントPE1からのアクセス要求とプロセッサエレメントPE2からのアクセス要求が同時でない場合について説明する。ロック(lock)を伴うアクセスについては後述する。プロセッサエレメントPE1からのアクセス要求とプロセッサエレメントPE2からのアクセス要求が同時でないため、PE間制御部130は関与しない。
まず、プロセッサエレメントPE1からのアクセス要求信号とともに、リード/ライト信号、アドレス(address)信号が、PE1制御部110に入力される。アクセス要求はアクセス許可制御部112に入力される。リード/ライト信号は、アクセス許可制御部112及びアドレスバッファ制御部に入力される。アドレス信号は、アドレスバッファ111に入力される。また、このアドレス信号(PE1アドレス信号)はプロセッサエレメントPE2にも入力される。
アクセス要求がアクセス許可制御部112に入力されると、アクセス許可制御部112は、アドレスバッファ制御部114及び保留判定部113に対し、バッファセット信号を出力する。バッファセット信号に基づき、アドレスバッファ制御部114はバッファ登録信号(PE1バッファ登録信号)をアドレスバッファ111に対して出力する。これにより、要求アドレスがアドレスバッファ111に登録される。また、アドレスバッファ制御部114から出力されたPE1バッファ登録信号は、プロセッサエレメントPE2の保留判定部113にも入力され、プロセッサエレメントPE2における保留判定に用いられる。
他方、バッファセット信号がトリガーとなって、保留判定部113は、プロセッサエレメントPE2から入力されるPE2アドレス一致信号、PE2バッファ登録信号、PE2バッファ開放信号に基づいて、「許可」又は「保留」の保留判定信号を生成する。具体的には、プロセッサエレメントPE2のアドレスバッファ121に登録されたアドレスとPE1からのアクセス要求アドレスが一致している場合、「保留」となり、それ以外の場合は「許可」となる。この信号がアクセス許可制御部112に入力される。アクセスが許可されると、アクセス許可制御部112はアクセス許可信号をプロセッサエレメントPE1に対して出力する。また、アクセス許可制御部112は許可状態通知をPE間制御部130に対して出力する。
両方の局所メモリへのアクセスが完了すると、PE1からアクセス完了通知がアドレスバッファ制御部114へ入力される。アクセス完了通知に基づき、アドレスバッファ制御部114はバッファ開放信号(PE1バッファ開放信号)をアドレスバッファに対して出力する。これにより、アドレスが登録さていたアドレスバッファ111が開放される。また、アドレスバッファ制御部114から出力されたPE1バッファ開放信号は、プロセッサエレメントPE2の保留判定部113にも入力され、プロセッサエレメントPE2における保留判定に用いられる。
アドレスバッファ111に登録されたアドレスは、比較器115に入力される。比較器115は、プロセッサエレメントPE2のアクセス要求があった場合、そのアドレス(PE2アドレス信号)とアドレスバッファ111に登録されたアドレスとを比較して、PE1アドレス一致信号を生成する。この信号はプロセッサエレメントPE2の保留判定部113に入力され、プロセッサエレメントPE2における保留判定に用いられる。
次に、プロセッサエレメントPE1からのアクセス要求とプロセッサエレメントPE2からのアクセス要求が同時である場合について説明する。ロック(lock)を伴うアクセスについては後述する。プロセッサエレメントPE1からのアクセス要求とプロセッサエレメントPE2からのアクセス要求が同時であるため、PE間制御部130が関与する。
PE間制御部130には、PE1アドレス信号及びPE2アドレス信号が入力されている。また、各プロセッサエレメントPE1、PE2からバッファセット信号及び許可状態通知が入力されている。PE間制御部130は各プロセッサエレメントPE1、PE2からバッファセット信号に基づき、同時のアクセスか否か判断できる。また、PE1アドレス信号及びPE2アドレス信号からアクセス要求アドレスが一致しているか否か判断できる。
PE間制御部130は、同時かつアドレスが一致したアクセスの場合、プロセッサエレメントPE1及びPE2に対し、アドレス一致信号及びプライオリティ(priority)通知を出力する。プライオリティ通知は、いずれのプロセッサエレメントを優先して許可するかについての信号であって、許可状態通知に基づき生成される。本実施の形態の場合、前回許可されていたプロセッサエレメントが待たされ、他方が許可される。アドレス一致信号及びプライオリティ通知は各プロセッサエレメントの保留判定部113に入力される。これらの情報に基づき、保留判定部113が保留判定信号を生成する。その他の動作については、上述した同時でないアクセスの場合と同様である。
次に、ロック(lock)を伴うアクセスについて説明する。プロセッサエレメントPE1からのロックを伴うアクセス要求があった場合、アクセス要求信号、リード/ライト信号、アドレス(address)信号に加え、ロック信号がPE1制御部110に入力される。具体的には、ロック信号はアドレスバッファ制御部114へ入力される。これに基づき、アドレスバッファ制御部114はロック要求(PE1ロック要求)を出力する。ロック要求はアドレスバッファ111に入力される。この場合、比較器115からはアドレスの一致を示すアドレス一致信号が出力される。PE1ロック要求は、PE2制御部の比較器115にも入力される。
他方、プロセッサエレメントPE2からのロックを伴うアクセス要求があった場合、PE2からのロック要求(PE2ロック要求)が、プロセッサエレメントPE1の比較器115に入力される。この場合も、比較器115からはアドレスの一致を示すアドレス一致信号が出力される。
また、PE1ロック要求及びPE2ロック要求はPE間制御部130にも入力される。そのため、同時にアクセス要求があって、かつ、少なくともいずれかのアクセス要求がロックを伴う場合には、PE間制御部130はアドレスが一致したものとみなし、アドレス一致信号を出力する。
以上のように、ロックを伴う書き込みアクセス要求では、他方のプロセッサからのアクセス要求アドレスとアドレスが一致していなくても、アドレスが一致したものとして処理される。ロックを伴うアトミックなアクセスにおいて、関連するアクセスアドレスに対して競合判定を行なおうとすると、アドレス判定に要するハードウエアの構成が複雑となってしまうが、本実施の形態によれば、ハードウエア上、簡易な構成とすることができる。ロックを伴うアトミックなアクセスは元来、ロックにより他のプロセッサエレメントからのアクセスを保留させるため、上記のような処理による処理速度上のデメリットも少ない。
次に、図4及び5のタイミングチャート及び図1を用いて、動作について説明する。図5は、同期ウィンドウ領域の同一アドレスに対して、プロセッサエレメントPE1がライト要求をし、プロセッサエレメントPE2がリード要求をした場合である。リードの場合、自己の局所メモリのみへのアクセスであるため、アクセス許可を取得する必要がない。そのため、プロセッサエレメントPE2のCPU2は待つことなく、RAMインターフェースMIF21を介して、自己の局所メモリLM2からデータを読み取り、動作が完了する。
一方、プロセッサエレメントPE1のCPU1は、データバスを介して、同期ウィンドウアービタ100にアクセス要求を行う。そして、プロセッサエレメントPE1用のアドレスバッファ111にアクセス要求アドレスが登録される。図4の例では、プロセッサエレメントPE2の要求がリードであるため、競合は起こらない。そのため、すぐに同期ウィンドウアービタ100からアクセス許可が出力される。このアクセス許可に基づいて、CPU1はRAMインターフェースMIF11を介して自己の局所メモリLM1に書き込む。また、PE間RAMインターフェースMIF12にポステッド・ライト方式によりライト要求を行う。これにより、CPU1の動作は完了する。
その後、PE間RAMインターフェースMIF12に保持されたデータは、プロセッサエレメントPE2のRAMインターフェースMIF21を介して局所メモリLM2に書き込まれる。これにより、PE間RAMインターフェースMIF12の動作が完了する。そして、プロセッサエレメントPE1用のアドレスバッファ111が開放される。
図5は、同期ウィンドウ領域の同一アドレスに対して、プロセッサエレメントPE1及びPE2がいずれもライト要求をした場合のタイミングチャートである。また、図5は、同時にアクセス要求があった場合であって、かつ、プロセッサエレメントPE1が優先された場合である。なお、プロセッサエレメントPE1からのアクセスが早い場合も同様の処理となる。
プロセッサエレメントPE1のCPU1は、データバスを介して、同期ウィンドウアービタ100にアクセス要求を行う。そして、プロセッサエレメントPE1用のアドレスバッファ111にアクセス要求アドレスが登録される。一方、プロセッサエレメントPE2のCPU2は、データバスを介して、同期ウィンドウアービタ100にアクセス要求を行う。そして、プロセッサエレメントPE2用のアドレスバッファ121にアクセス要求アドレスが登録される。
図5の例では、両プロセッサエレメントの要求がいずれもライトであるため、競合が起こる。まず、プロセッサエレメントPE1に対し、同期ウィンドウアービタ100からアクセス許可が出力される。このアクセス許可に基づいて、CPU1はRAMインターフェースMIF11を介して自己の局所メモリLM1に書き込む。また、PE間RAMインターフェースMIF12にポステッド・ライト方式によりライト要求を行う。これにより、CPU1の動作は完了する。
その後、PE間RAMインターフェースMIF12に保持されたデータは、プロセッサエレメントPE2のRAMインターフェースMIF21を介して局所メモリLM2に書き込まれる。これにより、PE間RAMインターフェースMIF12の動作が完了する。そして、プロセッサエレメントPE1用のアドレスバッファ111が開放される。
上記アドレスバッファ111が開放されると、それまで保留されていたプロセッサエレメントPE2に対するアクセス許可が、同期ウィンドウアービタ100から出力される。このアクセス許可に基づいて、CPU2はRAMインターフェースMIF21を介して自己の局所メモリLM2に書き込む。また、PE間RAMインターフェースMIF22にポステッド・ライト方式によりライト要求を行う。これにより、CPU2の動作は完了する。
その後、PE間RAMインターフェースMIF22に保持されたデータは、プロセッサエレメントPE1のRAMインターフェースMIF11を介して局所メモリLM1に書き込まれる。これにより、PE間RAMインターフェースMIF22の動作が完了する。そして、プロセッサエレメントPE2用のアドレスバッファ121が開放される。
以上のように、本発明に係る分散共有メモリ型マルチプロセッサは、同期ウィンドウを有しているため、高速読み取りが可能である。また、同期ウィンドウアービタ100を備えているため、各局所メモリに格納された同一であるべきデータに不整合が生じることもない。また、アクセス要求アドレスが一致した書き込み要求同士の場合にのみ、競合と判断するため、保留の機会を最小限に留め、高速処理が可能となる。さらに、ロックを伴うアクセス要求はアドレスが一致したとみなすことにより、関連するアクセスのアドレス判定に必要なハードウエアを省略でき、簡易な構成とすることができる。
実施の形態1に係る分散共有メモリ型マルチプロセッサのブロック図である。 共有メモリのメモリマップイメージである。 同期ウィンドウアービタ100の詳細なブロック図である。 実施の形態1に係る分散共有メモリ型マルチプロセッサの動作タイミングを示すタイミングチャートである。 実施の形態1に係る分散共有メモリ型マルチプロセッサの動作タイミングを示すタイミングチャートである。 本発明の課題を説明するための図である。
符号の説明
PE1、PE2 プロセッサエレメント
LM1、LM2 局所メモリ
CPU1、CPU2 CPU
MIF11、MIF21 RAMインターフェース、
MIF12、MIF22 PE間RAMインターフェース
100 同期ウィンドウアービタ
110 PE1制御部
111 PE1アドレスバッファ
112 アクセス許可制御部
113 保留判定部
114 アドレスバッファ制御部
115 比較器
120 PE2制御部
121 PE2アドレスバッファ
130 PE間制御部

Claims (8)

  1. 第1のプロセッシングエレメントと、
    前記第1のプロセッシングエレメントの局所メモリである第1のメモリと、
    前記第1のプロセッシングエレメントとバスを介して接続された第2のプロセッシングエレメントと、
    前記第2のプロセッシングエレメントの局所メモリである第2のメモリと、
    前記第1のメモリ及び前記第2のメモリを含む共有メモリの論理アドレス空間において、1つの論理アドレスに対し、前記第1のメモリ及び前記第2のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、
    前記第1のプロセッシングエレメントから前記仮想的な共有メモリ領域への第1の書き込みアクセス要求に係る第1のアドレスを登録する第1のアドレスバッファと、前記第2のプロセッシングエレメントから前記仮想的な共有メモリ領域への第2の書き込みアクセス要求に係る第2のアドレスを登録する第2のアドレスバッファと、を有するアービタと、を備え
    前記アービタは、
    前記第1のアドレスバッファに登録された前記第1のアドレスと、前記第2のアドレスバッファに登録された前記第2のアドレスとが一致した場合、前記第1のプロセッシングエレメントからの前記第1の書き込みアクセス要求を許可にするとともに、前記第2のプロセッシングエレメントからの前記第2の書き込みアクセス要求を保留にし、
    前記第2の書き込みアクセス要求が保留されている間、前記第2のアドレスバッファに登録された前記第2のアドレスを保持する、分散共有メモリ型マルチプロセッサ。
  2. 前記第1のプロセッシングエレメントは、
    第1のメモリインターフェイスと、
    第1のプロセッシングエレメント間メモリインターフェイスと、を有し、
    前記第1のメモリインターフェイスは、前記第1の書き込みアクセス要求に対する前記第1のメモリへの書き込みを実行し、
    前記第1のプロセッシングエレメント間メモリインターフェイスは、前記第1の書き込みアクセス要求に対する前記第2のメモリへの書き込みを実行する、
    請求項1に記載の分散共有メモリ型マルチプロセッサ。
  3. 前記アービタは、
    前記第1の書き込みアクセス要求に対する前記第1のメモリ及び前記第2のメモリへの書き込みの完了に応じて、前記第1のアドレスバッファに登録された前記第1のアドレスを開放し、
    前記第1のアドレスを開放した後、前記第2の書き込みアクセス要求を許可し、
    前記第2の書き込みアクセス要求に対する前記第1のメモリ及び前記第2のメモリへの書き込みの完了に応じて、前記第2のアドレスバッファに登録された前記第2のアドレスを開放する、
    請求項1又は2に記載の分散共有メモリ型マルチプロセッサ。
  4. 前記第1のアドレスバッファ及び前記第2のアドレスバッファは、それぞれ複数のアドレスバッファからなる
    請求項3に記載の分散共有メモリ型マルチプロセッサ。
  5. 前記第1の書き込みアクセス要求及び前記第2の書き込みアクセス要求のうち少なくとも一方が、ロックを伴う場合、前記第1のアドレスと前記第2のアドレスとが一致したものみなす
    請求項2〜4のいずれか一項に記載の分散共有メモリ型マルチプロセッサ。
  6. 第1のプロセッシングエレメントと、
    前記第1のプロセッシングエレメントの局所メモリである第1のメモリと、
    前記第1のプロセッシングエレメントとバスを介して接続された第2のプロセッシングエレメントと、
    前記第2のプロセッシングエレメントの局所メモリである第2のメモリと、
    前記第1のメモリ及び前記第2のメモリを含む共有メモリの論理アドレス空間において、1つの論理アドレスに対し、前記第1のメモリ及び前記第2のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、
    前記第1のプロセッシングエレメントから前記仮想的な共有メモリ領域への第1の書き込みアクセス要求に係る第1のアドレスを登録する第1のアドレスバッファと、前記第2のプロセッシングエレメントから前記仮想的な共有メモリ領域への第2の書き込みアクセス要求に係る第2のアドレスを登録する第2のアドレスバッファと、を有するアービタと、を備える分散共有メモリ型マルチプロセッサのデータ処理方法であって、
    前記第1のアドレスバッファに登録された前記第1のアドレスと、前記第2のアドレスバッファに登録された前記第2のアドレスとが一致した場合、前記第1のプロセッシングエレメントからの前記第1の書き込みアクセス要求を許可にするとともに、前記第2のプロセッシングエレメントからの前記第2の書き込みアクセス要求を保留にし、
    前記第2の書き込みアクセス要求が保留されている間、前記第2のアドレスバッファに登録された前記第2のアドレスを保持する、データ処理方法。
  7. 前記第1の書き込みアクセス要求に対する前記第1のメモリ及び前記第2のメモリへの書き込みの完了に応じて、前記第1のアドレスバッファに登録された前記第1のアドレスを開放し、
    前記第1のアドレスを開放した後、前記第2の書き込みアクセス要求を許可し、
    前記第2の書き込みアクセス要求に対する前記第1のメモリ及び前記第2のメモリへの書き込みの完了に応じて、前記第2のアドレスバッファに登録された前記第2のアドレスを開放する、
    請求項6に記載のデータ処理方法。
  8. 前記第1の書き込みアクセス要求及び前記第2の書き込みアクセス要求のうち少なくとも一方が、ロックを伴う場合、前記第1のアドレスと前記第2のアドレスとが一致したものとみなす
    請求項6又は7に記載のデータ処理方法。
JP2008220730A 2008-08-29 2008-08-29 分散共有メモリ型マルチプロセッサ及びデータ処理方法 Expired - Fee Related JP5241384B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008220730A JP5241384B2 (ja) 2008-08-29 2008-08-29 分散共有メモリ型マルチプロセッサ及びデータ処理方法
US12/461,812 US8458411B2 (en) 2008-08-29 2009-08-25 Distributed shared memory multiprocessor and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008220730A JP5241384B2 (ja) 2008-08-29 2008-08-29 分散共有メモリ型マルチプロセッサ及びデータ処理方法

Publications (2)

Publication Number Publication Date
JP2010055440A JP2010055440A (ja) 2010-03-11
JP5241384B2 true JP5241384B2 (ja) 2013-07-17

Family

ID=41727003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008220730A Expired - Fee Related JP5241384B2 (ja) 2008-08-29 2008-08-29 分散共有メモリ型マルチプロセッサ及びデータ処理方法

Country Status (2)

Country Link
US (1) US8458411B2 (ja)
JP (1) JP5241384B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110072B (zh) * 2009-12-29 2013-06-05 中兴通讯股份有限公司 一种多处理器完全互访的方法及系统
CN103620568B (zh) * 2011-04-20 2016-10-05 马维尔国际贸易有限公司 用于可变长度仲裁的方法、装置和系统
KR101949417B1 (ko) * 2011-12-02 2019-02-20 삼성전자주식회사 프로세서, 명령어 생성 장치 및 방법
US9431077B2 (en) * 2013-03-13 2016-08-30 Qualcomm Incorporated Dual host embedded shared device controller
US9338918B2 (en) 2013-07-10 2016-05-10 Samsung Electronics Co., Ltd. Socket interposer and computer system using the socket interposer
US9477628B2 (en) * 2013-09-28 2016-10-25 Intel Corporation Collective communications apparatus and method for parallel systems
US10402937B2 (en) 2017-12-28 2019-09-03 Nvidia Corporation Multi-GPU frame rendering

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2813182B2 (ja) * 1988-09-19 1998-10-22 株式会社日立製作所 マルチプロセッサコンピュータ複合装置
JPH04333962A (ja) * 1991-05-10 1992-11-20 Nec Corp メモリ制御方式
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
JP2906819B2 (ja) * 1992-04-13 1999-06-21 三菱電機株式会社 並列計算機及びデータ交換制御装置
JPH07160655A (ja) * 1993-12-10 1995-06-23 Hitachi Ltd メモリアクセス方式
US7062615B2 (en) * 2003-08-29 2006-06-13 Emulex Design & Manufacturing Corporation Multi-channel memory access arbitration method and system

Also Published As

Publication number Publication date
US20100058001A1 (en) 2010-03-04
JP2010055440A (ja) 2010-03-11
US8458411B2 (en) 2013-06-04

Similar Documents

Publication Publication Date Title
JP5241384B2 (ja) 分散共有メモリ型マルチプロセッサ及びデータ処理方法
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
JP5137171B2 (ja) データ処理装置
US5611058A (en) System and method for transferring information between multiple buses
JP2008130056A (ja) 半導体回路
JP2012038293A5 (ja)
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JP2004506265A (ja) 分散処理システムにおけるロックの実行
JPH0793274A (ja) データ転送方式及びデータ転送装置
JP2000003302A (ja) 共有メモリ排他アクセス制御方法
JP2008511890A (ja) アトミック・オペレーションを用いて情報単位を変更する方法及び装置
JPH0348962A (ja) バスロック制御方式
JP2751660B2 (ja) マルチプロセッサ・システム
JP2009187327A (ja) 情報通信システムの処理要求調停方法及びそのシステム並びにそのための制御プログラム
JP3314948B2 (ja) マルチcpu構成のプログラマブルコントローラにおけるデータ交換方式
JPH11203253A (ja) 共有資源排他アクセス制御方式
JP6519343B2 (ja) データ処理装置
JP2517859B2 (ja) 並列プロセス管理方法
JP6037029B2 (ja) データ転送装置、情報処理装置及びio制御方法
JPH01169564A (ja) プロセッサ間同期方式
JPS62219058A (ja) 共有メモリの排他制御方式
JP2001014176A (ja) 排他制御値装置及び方法
JPH03271859A (ja) 情報処理装置
JP2000259471A (ja) キャッシュ管理方法ならびにそのためのキャッシュ管理システムおよびコンピュ−タ読み取り可能なプログラム記録媒体
JPS63298555A (ja) 共有メモリ制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130402

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

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5241384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees