JP4811212B2 - 共有メモリ装置 - Google Patents

共有メモリ装置 Download PDF

Info

Publication number
JP4811212B2
JP4811212B2 JP2006252389A JP2006252389A JP4811212B2 JP 4811212 B2 JP4811212 B2 JP 4811212B2 JP 2006252389 A JP2006252389 A JP 2006252389A JP 2006252389 A JP2006252389 A JP 2006252389A JP 4811212 B2 JP4811212 B2 JP 4811212B2
Authority
JP
Japan
Prior art keywords
processing
memory
unit
end side
processing device
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
JP2006252389A
Other languages
English (en)
Other versions
JP2008077151A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2006252389A priority Critical patent/JP4811212B2/ja
Publication of JP2008077151A publication Critical patent/JP2008077151A/ja
Application granted granted Critical
Publication of JP4811212B2 publication Critical patent/JP4811212B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

本発明は、プロセッサエレメント(Processing Element:PE)等の処理装置を含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図1に示すような構成となる。
図1の構成においては、PE(プロセッサエレメント)1−1〜1−4とメモリ2−1〜2−4は並列処理を優先するため、1対1で接続される。
図1の構成において、PE1とメモリ2は並列処理を優先するため1対1で接続されるが、PE1は隣接しているPEのデータを参照するためには、上位装置を介したパスを使う必要がある。
そこで、PE回路1から直接、隣接メモリまでの接続を、一般的に、図2に示すように、クロスバー(Xbar)3で行う構成が採用される。
USP5,471,592
前述した複数のPEをもつシステムにおいて、図3に示すように、メモリを介してデータの共有をおこない効率よくスケーラブルに接続拡張した場合にPEとメモリ間の接続がPE数に対してリニアに増加しないという問題があった(要するに急激に増加する。)。
メモリの共有システムとしては、特許文献1(US5,471,592;Multi-Processor with crossbar link of processors and memories)以前は、SIMD,MIMDのどちらかであったが、近年の複雑なアプリケーション実現のためにはその両方の機能を包含したメモリシステムが必要となる。そこで、その基本的方法が提案されている。
この場合、データを転送するのではなく、PEとメモリの接続先を変更することで、効率的なマルチPE処理を実現しており、次の3つの形態の接続を持つ。
メモリ全体をアクセスできるグローバル接続、
特定のPEに接続可能なローカル接続、
PEの実行命令を転送する命令転送経路、
の3つである。
クロスバースイッチのそれぞれの縦方向(ひとつのメモリのつながる方向)(=メモリ毎と等価)にはプライオリティーをつけるための機構があり、ラウンドロビン(round-robin)方式で決定する。
しかしながら、この中では非常にたくさんのPEをクロスバー接続した場合の接続の巨大化に対してはまったく触れていないため、PE数を増加させた場合のクロスバー接続の急激な増大に対してはその対策方法はまったく考えられていない。
また、図4(A),(B)に示すように、PEを増加させる場合のデータ転送路の増大を抑えるために、データ転送路の階層化も提案されているが、その場合には階層構造を構成するために接続ポートの設置など、本来のデータ転送にとっては不要となる機構が必要となり、無駄が多い。
さらに、図5(クロスバーに接続されたアレー構造に対する故障回避)におけるように、クロスバー接続されたアレー構造に対して単純に冗長部分を追加してアレー要素のどれかひとつが故障していた場合に代替アレー要素を利用できるようにするためには、クロスバー接続がアレー要素の数分増加する。
アレー要素が少ない場合はなんとかこの方法でアレー冗長可能であっても、アレー要素が増加してきた場合には冗長化のためのクロスバー接続は急激に増大し、システム実装の足かせとなる。
本発明は、複数の処理装置をメモリを介して効率よくスケーラブルに接続拡張することが可能でしかも簡単な冗長構成を実現可能な共有メモリ装置を提供することにある。
本発明の第1の観点の共有メモリ装置は、並列に処理を実行し、一つの装置に不具合がある場合の代替用冗長装置を含む複数の処理装置と、並列処理の際に前記複数の処理装置アクセスする複数のメモリモジュールと、前記複数の処理装置と前記複数のメモリモジュールとを接続する接続部と、前記複数の処理装置による前記複数のメモリモジュールへのアクセスを調停する調停部と、を有し、前記接続部は、前記複数のメモリモジュールを一列に並べ、かつ、前記代替用冗長装置が列の他端となるように前記複数の処理装置を前記複数のメモリモジュールと平行な一列に並べたとした場合に、前記列の一端側から前記複数のメモリモジュールを互いに重複しないように複数個単位で分割して得られる複数の第1メモリグループの各々と、前記列において前記一端側から2個単位に分割して得られる前記処理装置の第1の組の各々とを接続し、第1の信号経路として機能する複数の第1経路部と、各第1メモリグループについての前記列の他端側の一部のメモリモジュールと当該第1メモリグループの他端側に隣接する別の1つの第1メモリグループの前記一端側の残部のメモリモジュールとからなる複数の第2メモリグループの各々と、前記列の前記一端の1の処理装置を除いた残りの処理装置を前記一端側から2個単位に分割して得られる前記処理装置の第2の組の各々とを接続し、第2の信号経路として機能する複数の第2経路部と、を有し、前記複数の処理装置は、各前記第1の組での前記一端側の処理装置が、前記第1の信号経路により前記第1経路部に接続された複数のメモリモジュールにアクセスし、各前記第1の組での前記他端側の処理装置が、前記第2の信号経路により前記第2経路部に接続された複数のメモリモジュールにアクセスし、前記調停部は、前記列において隣接する2つの処理装置の間で調停を処理し、一の処理装置に不具合が生じた場合には、前記複数の処理装置は、当該不具合の処理装置の処理を他の処理装置に処理させるために、当該不具合の処理装置についての前記他端側に隣接する処理装置およびそれよりも前記他端側の処理装置の各処理を、各々の他端側に隣接する処理装置および前記代替用冗長装置に受け渡して処理する。
好適には、第1の処理装置は、自身がアクセス可能なメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接する第2の処理装置がアクセス可能なメモリモジュールに処理結果を格納し、有効確認情報をセットし、当該隣接する第2の処理装置は、自身の処理が完了した時点で、上記有効確認情報がセットされているか否かを検査し、セットされている場合に、前記第1の処理装置の処理結果が格納されたメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接するの処理装置がアクセス可能で前記第1の処理装置がアクセスできないメモリモジュールに格納する。
好適には、外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、前記接続部は、前記複数のメモリモジュールと前記コントローラとを接続するコントローラ用信号経路部を含み、前記コントローラは、前記コントローラ用信号経路部を介して全てのメモリモジュールにアクセス可能である。
好適には、前記調停部は、同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付けに従いアクセス制御を行う。
好適には、前記コントローラは、外部からのデータを特定のメモリモジュールに転送または特定のメモリモジュールのデータを外部に出力する場合、前記処理装置から転送要求を受けると、指定されたアドレスへの転送要求を前記調停に伝達して、当該調停から転送許可を受けると、外部データバスと特定のメモリモジュールを前記接続部のコントローラ用信号経路部を介して接続させ、目的のアドレスを順に出力しながら外部データバスに対する転送制御を行い、外部データバスとメモリモジュールの間でデータ伝送を実行する。
本発明の第2の観点の共有メモリ装置は、コントローラを含む複数の単位共有メモリ装置を有し、各単位共有メモリ装置のコントローラがバスにより接続され、前記各単位共有メモリ装置は、並列に処理を実行し、一つの装置に不具合がある場合の代替用冗長装置を含む複数の処理装置と、並列処理の際に前記複数の処理装置アクセスする複数のメモリモジュールと、前記複数の処理装置と前記複数のメモリモジュールとを接続する接続部と、前記複数の処理装置による前記複数のメモリモジュールへのアクセスを調停する調停部と、を有し、前記接続部は、前記複数のメモリモジュールを一列に並べ、かつ、前記代替用冗長装置が列の他端となるように前記複数の処理装置を前記複数のメモリモジュールと平行な一列に並べたとした場合に、前記列の一端側から前記複数のメモリモジュールを互いに重複しないように複数個単位で分割して得られる複数の第1メモリグループの各々と、前記列において前記一端側から2個単位に分割して得られる前記処理装置の第1の組の各々とを接続し、第1の信号経路として機能する複数の第1経路部と、各第1メモリグループについての前記列の他端側の一部のメモリモジュールと当該第1メモリグループの他端側に隣接する別の1つの第1メモリグループの前記一端側の残部のメモリモジュールとからなる複数の第2メモリグループの各々と、前記列の前記一端の1の処理装置を除いた残りの処理装置を前記一端側から2個単位に分割して得られる前記処理装置の第2の組の各々とを接続し、第2の信号経路として機能する複数の第2経路部と、を有し、前記複数の処理装置は、各前記第1の組での前記一端側の処理装置が、前記第1の信号経路により前記第1経路部に接続された複数のメモリモジュールにアクセスし、各前記第1の組での前記他端側の処理装置が、前記第2の信号経路により前記第2経路部に接続された複数のメモリモジュールにアクセスし、前記調停部は、前記列において隣接する2つの処理装置の間で調停を処理し、一の処理装置に不具合が生じた場合には、前記複数の処理装置は、当該不具合の処理装置の処理を他の処理装置に処理させるために、当該不具合の処理装置についての前記他端側に隣接する処理装置およびそれよりも前記他端側の処理装置の各処理を、各々の他端側に隣接する処理装置および前記代替用冗長装置に受け渡して処理する。
本発明によれば、たとえば複数の処理装置のいずれかに故障があった場合、この処理装置に対して冗長機能を用いて冗長化処理、たとえばシフト冗長により冗長構成がとられる。
そして、複数の処理装置は、メモリシステムのメモリモジュールに接続部を介してアクセスする。このとき、異なる処理装置によりアクセス可能なメモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している。すなわち、部分共有している。
本発明によれば、複数の処理装置をメモリを介して効率よくスケーラブルに接続拡張することができ、しかも簡単な冗長構成を実現可能である。
以下、本発明の実施形態を図面に関連付けて説明する。
図6は、本発明の実施形態に係る共有メモリ装置のシステム構成図である。
図6の共有メモリ装置10は、ダイレクトメモリアクセスコントローラ(DMAコントローラ)11と、複数(図5では16)のPEコア12−0〜12−16、接続部としての一部重なりマルチポートおよびシフト冗長回路(以下、オーバーラップマルチポートという)13、複数(図5では64個)のメモリモジュールとしてのメモリバンク(たとえばSRAMバンク)14−0〜14−63、並びに調停回路15を有する。
本実施形態の共有メモリ装置10において、PEコア12−16は冗長用PEコアとして設けられており、いずれかのPEコアに故障がある場合に、後で説明するようなシフト冗長を行うことを可能に構成されている。
図6の共有メモリ装置10において、メモリバンク14−0〜14−63は隣接する8バンクにより形成される複数のメモリシステムM0〜M15に区分けされている。
たとえば、メモリシステムM0は8個のメモリバンク14−0〜14−7により形成されている。
メモリシステムM0に隣接するメモリシステムM1は、メモリシステムM0の4個のメモリバンク14−4〜14−7を共有して8個のメモリバンク14−4〜14−11により形成されている。
同様に、メモリシステムM1に隣接するメモリシステムM2は、メモリシステムM1の4個のメモリバンク14−8〜14−11を共有して8個のメモリバンク14−8〜14−15により形成されている。
以下、メモリシステムM3〜M15は、隣接するメモリシステムの4つのメモリバンクを共有する形態で8つのメモリバンクにより形成されている。
ただし、メモリシステムM15のみ4つのメモリバンクにより形成されている。
図5の共有メモリ装置10において、各PEコア12−0〜12−15(16)は、たとえば8バンク(16kByte)ずつアクセス可能となっていて、PEコア12−0〜12−15(16)のアクセス可能バンクは隣同士など複数のPE間で(8kByte)重なり合っている。
完全クロスバー接続ではなく、一部の接続を行わない。重なったSRAMバンクへのアクセス競合は調停により回避する。
一つのPEコアが直接接続領域を超えてのSRAMバンクに同時アクセスしたい場合に効率が低下するが、そのようなケースがレアケースとなるように共有バング数を設定することができるため、ここでの転送効率低下は全体のシステム効率の低下にはあまり関与しないようにできる。
このようなメモリバンクなどの部分共有を行う場合に、端ではないPEコアが故障した場合に、共有されたメモリバンクの状況が変化したのでは、実行プログラムの変更、データ受け渡しの変更などが発生し、効率が悪化するような冗長方式は許されない。そのためPE間の関係がどのPEが故障してもメモリからみたPEコアの関係がかわらないようする。代表的方法としてPEコアに対してシフト冗長を行う。
図7は、シフト冗長構成を採用する場合のシフトスイッチの挿入方法について説明するための図である。
図7において、PEコア12−0〜12−N,12−R(冗長用PEコア)と一般論理回路20との間にシフトスイッチ回路21−0〜21−Nを挿入して、PEコアの冗長化を行う様子を示した。
シフトスイッチ回路21−0〜21−Nは、論理回路20側かの信号を選択するマルチプレクサ(mux1)211と、PEコア側の信号を選択するマルチプレクサ(mux2)212を有している。
それぞれのPEコアが故障した場合に論理的に隣接する他のPEコアにその信号をまわすことで、機能を論理的に隣接したPEコアに受け渡し、さらに機能を受け渡されたPEコアは反対側の隣のPEコアに自分の機能を受け渡してゆき、冗長PEコア12−Rにたどり着くまで同様の受け渡しを行う。
たとえば、PEコア12−1が故障した場合には、PEコア12−1への入力信号はPEコア12−2にも入力されていて、PEコア12−2では本来PEコア12−2に入力(接続)されていた入力信号ではなく、PEコア12−1への入力信号を用いて演算処理などを行う。
さらに、PEコア12−1から一般論理回路20への出力信号は、PEコア12−2からの出力信号を伝達するようにマルチプレクサ222の選択信号を制御する。
不良PEコアへの入力変化を停止することで、消費電力の削減を行う。パワーゲートなどで不良PEコアの電源を遮断する場合は不要である。
スイッチ回路内のクランプはほぼ無視できる程度であることから、スイッチ回路内のゲート数を削減して、全体の規模削減と消費電力削減にあまりつながらない。
図8は、本実施形態に係る共有メモリ装置の信号経路の接続例を示す図である。
なお、図8においては、理解を容易にするために、各メモリシステムは、4つのメモリバンクにより構成している。
メモリシステムM0はメモリバンク14−0〜14−3により形成され、メモリシステムM1はメモリバンク14−2〜14−5により形成され、メモリシステムM2はメモリバンク14−4〜14−7により形成され、メモリシステムM3はメモリバンク14−6〜14−9により形成されている。
図8の共有メモリ装置10Aは、各PEコア12−0〜12−3が4個のメモリバンクにアクセスする経路が存在する。
ただし、各PEコア12−0〜12−3と通常のアクセス経路131との間にシフト冗長処理経路部132と、各PEコア12−0〜12−3と調停回路15との間にシフト冗長処理経路部133とを有する。
シフト冗長処理経路部132,133において、○の部分は配線同士のスイッチ機構である。
PEコア12−0は、冗長経路1321を介して通常の経路131に接続され、メモリモジュール14−0〜14−3に対してアクセス可能である。
PEコア12−1は、冗長経路1321を介して通常の経路131に接続され、メモリモジュール14−0〜14−3に対してアクセス可能である。また、PEコア12−1は、冗長経路1322を通して通常の経路131に接続され、メモリモジュール14−2〜14−5にアクセス可能である。
PEコア12−2は、冗長経路1322を介して通常の経路131に接続され、メモリモジュール14−2〜14−5に対してアクセス可能である。また、PEコア12−2は、冗長経路1323を通して通常の経路131に接続され、メモリモジュール14−4〜14−7にアクセス可能である。
PEコア12−3は、冗長経路1323を介して通常の経路131に接続され、メモリモジュール14−4〜14−7に対してアクセス可能である。また、PEコア12−3は、冗長経路1324を通して通常の経路131に接続され、メモリモジュール14−6〜14−9にアクセス可能である。
PEコア12−4は、冗長経路1324を介して通常の経路131に接続され、メモリモジュール14−6〜14−9に対してアクセス可能である。
また、PEコア12−0は冗長経路1331を通して調停回路15に信号を送出可能である。調停回路15は冗長経路1332を通して信号をPEコア12−0に送出可能である。
PEコア12−1は冗長経路1331または133を通して調停回路15に信号を送出可能である。調停回路15は冗長経路1332または1334を通して信号をPEコア12−1に送出可能である。
PEコア12−2は冗長経路1333または1335を通して調停回路15に信号を送出可能である。調停回路15は冗長経路1334または1336を通して信号をPEコア12−2に送出可能である。
PEコア12−3は冗長経路1335または1337を通して調停回路15に信号を送出可能である。調停回路15は冗長経路1336または1338を通して信号をPEコア12−3に送出可能である。
PEコア12−4は冗長経路1337を通して調停回路15に信号を送出可能である。調停回路15は冗長経路1338を通して信号をPEコア12−4に送出可能である。
本実施形態において、PEコアが最初に処理する外部からのデータ転送は、DMAコントローラ11により実現される。
図6において、DMA11を用いたデータ転送方法を説明する。
外部からのデータを特定のメモリバンクに転送または特定のメモリバンクのデータを外部に出力する場合、DMAコントローラ11にPEコア12−0〜12−3から転送要求が入ると、DMAコントローラ11は指定されたアドレスへの転送要求を調停回路15に伝達して、転送許可を待つ。
転送許可が調停回路15からおりたならば、外部データバスと特定のメモリを接続し、目的のアドレスを順に出力しながら外部データバスに対する転送制御などを行い、外部データバスとメモリの間でデータ伝送を実行する。シフト冗長機構はメモリの部分共有接続と同様に配線同士のスイッチ機構により実現できる。
次に、PE間でのデータ共有と転送の例を説明する。
図8において、PEコア12−0の入力データがメモリバンク14−0に置かれ、PEコア12−0はメモリバンク14−0の内容を読んで処理を行い、メモリバンク14−2とメモリバンク14−3に結果を出力する。
有効なデータをメモリバンク14−2またはメモリバンク14−3に出力すると、PEコア12−0はメモリバンク14−2の特定アドレスA−1の有効確認ビットをオンとする。
PEコア12−1は自分の処理が完了した時点でPEコア12−0がアドレスA−1をオンにしているかどうかを検査して、オンであればメモリバンク14−2またはメモリバンク14−3からのデータ読み出しと演算処理を開始する。
PEコア12−1は、メモリバンク14−2とメモリバンク14−3に置かれたデータを入力として処理してその出力をメモリバンク14−4に行う。PEコア12−2は処理が完了するとDMAコントローラ11に対して外部へのデータ転送要求を行い、DMAコントローラ11はメモリバンク14−4の有効データを外部バスを経由して出力する。
各PEコア12−0〜12−3と各メモリバンクのデータ転送は、各PEコアが調停回路15にデータ転送要求アドレスを伝達して調停回路15が他のPEコア、DMAコントローラとの優先順位をround-robin方式で決定して、PEコアに対して転送許可を発行する。
図9は、データ転送機構の実装例を示す図であって、メモリの部分共有のためのマルチプレクサとシフト冗長のためのマルチプレクサをひとつのマルチプレクサMUXに機能を合体させた実装の例を示した図である。
メモリの部分共有と、シフト冗長をばらばらに実装するのではなく、両方を同時に実現する回路方式を選択することで、冗長のための回路増加を抑えることが可能となる。
点線で図示した配線がシフト冗長のために付加した配線を示している。ここでの例は実稼動するPE数が4で、メモリバンクは全部で10個、各PE間ので部分共有されたメモリバンク数は2バンクの場合を示している。すなわち、図8の構成に対応している。
PEコア12−0への入力はメモリバンク14−0,14−1,14−2,14−3のどれかひとつを選択可能なように4:1マルチプレクサMUX1でデータ入力を選択する。
PEコア12−0の出力はメモリバンク14−0,14−1,14−2,14−3のどれかひとつにデータ転送できるようにそれぞれのメモリバンクの入力のマルチプレクサMUX2のひとつの入力に接続されている。
PEコア12−1ではその入力はシフト動作のためにPEコア14−0の機能を代替する場合に必要なPEコア12−0へのメモリバンクからの入力としてメモリバンク14−0,14−1、通常の動作用としてメモリバンク14−2,14−3,14−4,14−5からの出力を選択的に入力するための6:1マルチプレクサMUX1により入力データの選択を行う。
PEコア12−1の出力は、PEコア12−0の機能を代替するためのシフト冗長のための出力先として、メモリモジュール14−0,14−1、通常の動作のための出力先としてメモリモジュール14−2,14−3,14−4,14−5の入力マルチプレクサMUX2に接続されている。
このような接続を行うことで、PEコア12−0はメモリモジュール14−0,14−1,14−2,14−3へのデータの入出力を行うことができ、PEコア12−1は通常はメモリモジュール14−2,14−3,14−4,14−5へのデータの入出力を行うことができる。
PEコア12−0が故障した場合には、PEコア12−1がその代替PEとして機能するために、PEコア12−1はメモリモジュール14−0,14−1へのデータ入出力が行えるようになっている。
他のPEコア12−2,12−3,12−Rに関しても同様の動作ができるように入力にマルチプレクサを接続して入力データの選択を行うことで、部分共有メモリとシフト冗長を同時に実現できるようになっている。
図10は、PE(n)とPE(n+1)におけるMEM(メモリバンク)(2n)へのアクセス調停のフローチャートである。
以下に、図10においてPE(n)とPE(n+1)におけるMEM(2n)へのアクセス調停処理方法を説明する。なお、ここではPEコアをPEとして記している。
チップのリセット直後スタートからはじまり、まずはPE(n)のMEM(2n)に対するアクセス要求を確認する(ST1)。要求がない場合はPE(n+1)のMEM(2n)へのアクセス要求を確認フェーズに移行する(2)。
PE(n)のMEM(2n)に対するアクセス要求があった場合には、PE(n)にMEM(2n)に対するアクセス許可を与え、PE(n+1)にはMEM(2n)に対するアクセス拒否を行う(ST2)。
一定の時間をカウントするタイマーに初期値を設定する(ST3)。タイマーはカウントダウンを開始する。再びPE(n)のMEM(2n)に対するアクセス要求を確認し、要求がない場合には(2)に移行する。あいかわらずアクセス要求がある場合には、タイマーのカウント値を確認してタイムアウトしていない場合には再びPE(n)のMEM(2n)に対するアクセス要求確認を繰り返す。タイムアウトしていた場合には(2)に移行する(ST4,ST5)。
(2)においても同様な処理を行う。PE(n+1)のMEM(2n)に対するアクセス要求を確認する(ST6)。要求がない場合はPE(n)のMEM(2n)へのアクセス要求を確認フェーズに移行する(スタート)。
PE(n+1)のMEM(2n)に対するアクセス要求があった場合には、PE(n+1)にMEM(2n)に対するアクセス許可を与え、PE(n)にはMEM(2n)に対するアクセス拒否を行う(ST7)。
一定の時間をカウントするタイマーに初期値を設定する(ST8)。タイマーはカウントダウンを開始する。再びPE(n+1)のMEM(2n)に対するアクセス要求を確認し、要求がない場合には(スタート)に移行する。あいかわらずアクセス要求がある場合には、タイマーのカウント値を確認してタイムアウトしていない場合には再びPE(n+1)のMEM(2n)に対するアクセス要求確認を繰り返す。タイムアウトしていた場合には(スタート)に移行する(ST9,ST10)。
図11は、部分共有マルチポート機構PEの階層単位増設方法を説明するための図である。 次に、DMA転送のネックとなった場合の階層単位での増設方法を説明する。
PEコア同士でのデータ転送に関しては、大量のデータ転送がぶつかることでの性能低下は大幅に減らすことが可能であるが、外部とメモリの間でのデータ転送はPEコアが複数の機能を同時に処理している場合には衝突する確率が増大する。
そのような場合には、図11に示すように、PEアレーを階層化することにより対処する。
図6の基本構成と同様に、PEアレーを16個とDMAコントローラ1個をひとつの階層としてAXIバス(Advanced eXtensible Interfaceバス)20を経由して接続するメモリシステム100を構成する。
このようなAXIの階層が少しでもはいらないようにすることは重要であり、本発明では、この階層を極力減らすことに寄与するものである。
以上説明したように、本実施形態によれば、複数のPE(処理装置)12−0〜12−15と、処理装置によりアクセス可能な複数のメモリモジュール14−0〜14−63と、複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部13と、を有し、複数の処理装置は、接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムM0〜M15をアクセス可能で、異なる処理装置によりアクセス可能なメモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有し、さらに、同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付け処理を実行し、その優先順位に従いアクセス制御を行う調停回路15を有しかつ、シフト冗長構成を有することから、次のような効果が実現可能となっている。
各PEが利用する作業用メモリモジュール(Memory Module)を使ってそのままPE間のデータ転送に利用することで、通信のためのメモリモジュールを削減可能である。
メモリへのアクセス(Access)方向を変更するのみであり、通信時間が限りなくゼロになる。
PE数が増加してもPEとメモリ間の接続資源の量はPEの数にリニアに増加するため、必要なだけのPEを簡単にスケーラブル(Scalable)に増設可能である。
全てのPEが全てのメモリモジュールに接続可能とすることは資源を使ったわりには効果は少ないが、本実施形態では、限定的なPE間のアクセス調停になるため、同一メモリへのアクセス競合調停が簡素になる。
また、PE間のメモリ共有の関係を変化させることなく冗長構造が可能となり歩留まりのいちじるしい改善につながる。
複数のPEをスケーラブルに増加させながら冗長効果により製造歩留まりがいちじるしく向上する。
部分共有メモリ化処理並びに冗長処理を別々に行うよりもリソースをシェアできる部分があり同時に行うことで回路規模を減らすことができる。
マルチプロセッサの一般的なアーキテクチャを示す図である。 クロスバーを用いたアーキテクチャを示す図である。 PE増設の課題を説明するための図である。 PEを増加させる場合のデータ転送路の増大を抑えるためにポートを用いた構成例を示す図である。 クロスバーに接続されたアレー構造に対する故障回避の方法を示し図である。 本発明の実施形態に係る共有メモリ装置のシステム構成図である。 シフト冗長構成を採用する場合のシフトスイッチの挿入方法について説明するための図である。 本実施形態に係る共有メモリ装置の信号経路の接続例を示す図である。 データ転送機構の実装例を示す図であって、メモリの部分共有のためのマルチプレクサとシフト冗長のためのマルチプレクサをひとつのマルチプレクサMUXに機能を合体させた実装の例を示した図である。 PE(n)とPE(n+1)におけるMEM(メモリバンク)(2n)へのアクセス調停のフローチャートである。 部分共有マルチポート機構PEの階層単位増設方法を説明するための図である。
符号の説明
10,10A,10B・・・共有メモリ装置、11・・・DMAコントローラ、12−0〜12−15・・・PEコア(処理装置)、13・・・一部重なりマルチポートおよびシフト冗長回路、14−0〜14−63・・・メモリバンク(メモリモジュール)、15・・・調停回路、20・・・AXIバス、M0〜M15・・・・メモリシステム。

Claims (10)

  1. 並列に処理を実行し、一つの装置に不具合がある場合の代替用冗長装置を含む複数の処理装置と、
    並列処理の際に前記複数の処理装置アクセスする複数のメモリモジュールと、
    前記複数の処理装置と前記複数のメモリモジュールとを接続する接続部と、
    前記複数の処理装置による前記複数のメモリモジュールへのアクセスを調停する調停部と、
    を有し
    記接続部は、
    前記複数のメモリモジュールを一列に並べ、かつ、前記代替用冗長装置が列の他端となるように前記複数の処理装置を前記複数のメモリモジュールと平行な一列に並べたとした場合に、
    前記列の一端側から前記複数のメモリモジュールを互いに重複しないように複数個単位で分割して得られる複数の第1メモリグループの各々と、前記列において前記一端側から2個単位に分割して得られる前記処理装置の第1の組の各々とを接続し、第1の信号経路として機能する複数の第1経路部と、
    各第1メモリグループについての前記列の他端側の一部のメモリモジュールと当該第1メモリグループの他端側に隣接する別の1つの第1メモリグループの前記一端側の残部のメモリモジュールとからなる複数の第2メモリグループの各々と、前記列の前記一端の1の処理装置を除いた残りの処理装置を前記一端側から2個単位に分割して得られる前記処理装置の第2の組の各々とを接続し、第2の信号経路として機能する複数の第2経路部と、
    有し、
    前記複数の処理装置は、
    各前記第1の組での前記一端側の処理装置が、前記第1の信号経路により前記第1経路部に接続された複数のメモリモジュールにアクセスし、
    各前記第1の組での前記他端側の処理装置が、前記第2の信号経路により前記第2経路部に接続された複数のメモリモジュールにアクセスし、
    前記調停部は、
    前記列において隣接する2つの処理装置の間で調停を処理し、
    一の処理装置に不具合が生じた場合には、
    前記複数の処理装置は、当該不具合の処理装置の処理を他の処理装置に処理させるために、当該不具合の処理装置についての前記他端側に隣接する処理装置およびそれよりも前記他端側の処理装置の各処理を、各々の他端側に隣接する処理装置および前記代替用冗長装置に受け渡して処理する
    共有メモリ装置。
  2. 第1の処理装置は、
    自身がアクセス可能なメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接する第2の処理装置がアクセス可能なメモリモジュールに処理結果を格納し、有効確認情報をセットし、
    当該隣接する第2の処理装置は、
    自身の処理が完了した時点で、上記有効確認情報がセットされているか否かを検査し、セットされている場合に、前記第1の処理装置の処理結果が格納されたメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接するの処理装置がアクセス可能で前記第1の処理装置がアクセスできないメモリモジュールに格納する
    請求項1記載の共有メモリ装置。
  3. 前記調停部は、
    同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付けに従いアクセス制御を行
    請求項1または2記載の共有メモリ装置。
  4. 外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、
    前記接続部は、
    前記複数のメモリモジュールと前記コントローラとを接続するコントローラ用信号経路部を含み、
    前記コントローラは、
    前記コントローラ用信号経路部を介して全てのメモリモジュールにアクセス可能である
    請求項1から3のいずれか一に記載の共有メモリ装置。
  5. 前記調停部は、
    同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付けに従いアクセス制御を行い、
    前記コントローラは、
    外部からのデータを特定のメモリモジュールに転送または特定のメモリモジュールのデータを外部に出力する場合、
    前記処理装置から転送要求を受けると、指定されたアドレスへの転送要求を前記調停に伝達して、当該調停から転送許可を受けると、外部データバスと特定のメモリモジュールを前記接続部のコントローラ用信号経路部を介して接続させ、目的のアドレスを順に出力しながら外部データバスに対する転送制御を行い、外部データバスとメモリモジュールの間でデータ伝送を実行する
    請求項4記載の共有メモリ装置。
  6. コントローラを含む複数の単位共有メモリ装置を有し、
    各単位共有メモリ装置のコントローラがバスにより接続され、
    前記各単位共有メモリ装置は、
    並列に処理を実行し、一つの装置に不具合がある場合の代替用冗長装置を含む複数の処理装置と、
    並列処理の際に前記複数の処理装置アクセスする複数のメモリモジュールと、
    前記複数の処理装置と前記複数のメモリモジュールとを接続する接続部と、
    前記複数の処理装置による前記複数のメモリモジュールへのアクセスを調停する調停部と、
    を有し
    記接続部は、
    前記複数のメモリモジュールを一列に並べ、かつ、前記代替用冗長装置が列の他端となるように前記複数の処理装置を前記複数のメモリモジュールと平行な一列に並べたとした場合に、
    前記列の一端側から前記複数のメモリモジュールを互いに重複しないように複数個単位で分割して得られる複数の第1メモリグループの各々と、前記列において前記一端側から2個単位に分割して得られる前記処理装置の第1の組の各々とを接続し、第1の信号経路として機能する複数の第1経路部と、
    各第1メモリグループについての前記列の他端側の一部のメモリモジュールと当該第1メモリグループの他端側に隣接する別の1つの第1メモリグループの前記一端側の残部のメモリモジュールとからなる複数の第2メモリグループの各々と、前記列の前記一端の1の処理装置を除いた残りの処理装置を前記一端側から2個単位に分割して得られる前記処理装置の第2の組の各々とを接続し、第2の信号経路として機能する複数の第2経路部と、
    有し、
    前記複数の処理装置は、
    各前記第1の組での前記一端側の処理装置が、前記第1の信号経路により前記第1経路部に接続された複数のメモリモジュールにアクセスし、
    各前記第1の組での前記他端側の処理装置が、前記第2の信号経路により前記第2経路部に接続された複数のメモリモジュールにアクセスし、
    前記調停部は、
    前記列において隣接する2つの処理装置の間で調停を処理し、
    一の処理装置に不具合が生じた場合には、
    前記複数の処理装置は、当該不具合の処理装置の処理を他の処理装置に処理させるために、当該不具合の処理装置についての前記他端側に隣接する処理装置およびそれよりも前記他端側の処理装置の各処理を、各々の他端側に隣接する処理装置および前記代替用冗長装置に受け渡して処理する
    共有メモリ装置。
  7. 第1の処理装置は、
    自身がアクセス可能なメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接する第2の処理装置がアクセス可能なメモリモジュールに処理結果を格納し、有効確認情報をセットし、
    当該隣接する第2の処理装置は、
    自身の処理が完了した時点で、上記有効確認情報がセットされているか否かを検査し、セットされている場合に、前記第1の処理装置の処理結果が格納されたメモリモジュールからデータを読み出して処理を行い、当該処理結果を、隣接するの処理装置がアクセス可能で前記第1の処理装置がアクセスできないメモリモジュールに格納する
    請求項6記載の共有メモリ装置。
  8. 前記調停部は、
    同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付けに従いアクセス制御を行
    請求項6または7記載の共有メモリ装置。
  9. 外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、
    前記接続部は、
    前記複数のメモリモジュールと前記コントローラとを接続するコントローラ用信号経路部を含み、
    前記コントローラは、
    前記コントローラ用信号経路部を介して全てのメモリモジュールにアクセス可能である
    請求項6から8のいずれか一に記載の共有メモリ装置。
  10. 前記調停部は、
    同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付けに従いアクセス制御を行い、
    前記コントローラは、
    外部からのデータを特定のメモリモジュールに転送または特定のメモリモジュールのデータを外部に出力する場合、
    前記処理装置から転送要求を受けると、指定されたアドレスへの転送要求を前記調停に伝達して、当該調停から転送許可を受けると、外部データバスと特定のメモリモジュールを前記接続部のコントローラ用信号経路部を介して接続させ、目的のアドレスを順に出力しながら外部データバスに対する転送制御を行い、外部データバスとメモリモジュールの間でデータ伝送を実行する
    請求項9記載の共有メモリ装置。
JP2006252389A 2006-09-19 2006-09-19 共有メモリ装置 Expired - Fee Related JP4811212B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006252389A JP4811212B2 (ja) 2006-09-19 2006-09-19 共有メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006252389A JP4811212B2 (ja) 2006-09-19 2006-09-19 共有メモリ装置

Publications (2)

Publication Number Publication Date
JP2008077151A JP2008077151A (ja) 2008-04-03
JP4811212B2 true JP4811212B2 (ja) 2011-11-09

Family

ID=39349176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006252389A Expired - Fee Related JP4811212B2 (ja) 2006-09-19 2006-09-19 共有メモリ装置

Country Status (1)

Country Link
JP (1) JP4811212B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010122746A1 (ja) * 2009-04-22 2010-10-28 パナソニック株式会社 情報処理装置
JP5983744B2 (ja) * 2012-06-25 2016-09-06 富士通株式会社 情報処理装置および情報処理装置の故障検出方法
KR102517344B1 (ko) 2017-12-20 2023-04-03 삼성전자주식회사 병렬 처리 시스템 및 그 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6347835A (ja) * 1986-08-18 1988-02-29 Agency Of Ind Science & Technol パイプライン計算機
JPH0793172A (ja) * 1993-09-24 1995-04-07 Nec Corp 冗長ブロック切り替え回路
JPH09288652A (ja) * 1996-04-23 1997-11-04 Nec Corp 並列プロセッサの冗長切り替え装置
JP4660863B2 (ja) * 1998-11-13 2011-03-30 ソニー株式会社 並列プロセッサ
JP2001256203A (ja) * 2000-03-09 2001-09-21 Nec Corp 冗長構成クロスバスイッチシステム

Also Published As

Publication number Publication date
JP2008077151A (ja) 2008-04-03

Similar Documents

Publication Publication Date Title
EP1222559B1 (en) Multiprocessor node controller circuit and method
US8050256B1 (en) Configuring routing in mesh networks
US8045546B1 (en) Configuring routing in mesh networks
US5581734A (en) Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US8151088B1 (en) Configuring routing in mesh networks
US7353316B2 (en) System and method for re-routing signals between memory system components
EP1646925B1 (en) Apparatus and method for direct memory access in a hub-based memory system
US7386649B2 (en) Multiple processor system and method including multiple memory hub modules
JP2008140220A (ja) 半導体装置
JP5076418B2 (ja) 共有メモリ装置
WO2002071239A2 (en) Data processing apparatus and system and method for controlling memory access
US7418559B2 (en) Address snoop method and multi-processor system
JP3523286B2 (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
US6925532B2 (en) Broadcast system in disk array controller
JP4811212B2 (ja) 共有メモリ装置
US11853235B2 (en) Communicating between data processing engines using shared memory
EP2189909B1 (en) Information processing unit and method for controlling the same
US6839820B1 (en) Method and system for controlling data access between at least two memory arrangements
JP4521410B2 (ja) ディスクアレイ制御装置
US20050071576A1 (en) Data processing apparatus and system and method for controlling memory access
JP2006134341A (ja) ディスクアレイ制御装置
JP2011150613A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

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

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

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

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees