JPH0962563A - 共有メモリシステム、並列型処理装置並びにメモリlsi - Google Patents

共有メモリシステム、並列型処理装置並びにメモリlsi

Info

Publication number
JPH0962563A
JPH0962563A JP7218446A JP21844695A JPH0962563A JP H0962563 A JPH0962563 A JP H0962563A JP 7218446 A JP7218446 A JP 7218446A JP 21844695 A JP21844695 A JP 21844695A JP H0962563 A JPH0962563 A JP H0962563A
Authority
JP
Japan
Prior art keywords
data
memory
address
write
shared memory
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.)
Granted
Application number
JP7218446A
Other languages
English (en)
Other versions
JP3661235B2 (ja
Inventor
Masatsugu Kametani
雅嗣 亀谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP21844695A priority Critical patent/JP3661235B2/ja
Priority to US08/701,789 priority patent/US5960458A/en
Publication of JPH0962563A publication Critical patent/JPH0962563A/ja
Priority to US09/165,200 priority patent/US6161168A/en
Application granted granted Critical
Publication of JP3661235B2 publication Critical patent/JP3661235B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】ロ−カル共有メモリに対する処理装置側からの
読み出しサイクルと共有バスシステム側からの書き込み
サイクルとのロ−カル共有メモリ上でのアクセス競合を
低減した並列型処理装置、またはこのような装置で使用
され得るメモリLSIを提供する。 【構成】プロセッサと共有バスとの間にローカル共有メ
モリ2006を備え、ローカル共有メモリ2006のメ
モリセルにデータを書き込むときのアドレス及びデータ
の入力手段(WA及びDI)と読み出すときのアドレス
入力手段(RA)及びデータの出力手段(DO)とをそ
れぞれ独立に設け、プロセッサ側からの読み出し処理と
共有バス側からの書き込み処理とを並列化する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の処理装置間で情報
をやりとりするための並列型処理装置と、このような装
置で使用され得るメモリLSIに関する。
【0002】
【従来の技術】従来の並列型処理装置の共有メモリシス
テムとしては、共有バスシステムの上に一つの共有メモ
リを有し、それを複数のプロセッサで共通に利用する方
式を採っているものがある。前記共有バスシステムは共
有バスやこの共有バスに接続された機器から出される共
有バスへのアクセス要求を調停してアクセスする許可を
与えるアービタ回路や前記共有メモリへのデータの入出
力を行う機器等を適宜含んで構成されている。
【0003】さらに高度な共有メモリシステムとして
は、特開平5−290000号公報に示されるシステム
のように、共有バスシステムでのアクセスの競合を減ら
すため、各プロセッサに分散して共有メモリ(メモリユ
ニット)を設けたものがある。このような共有メモリは
ローカル共有メモリ又は分散共有メモリ等の名称で呼ば
れることがある。
【0004】このローカル共有メモリを備えた並列型処
理装置の共有メモリシステムとしては、一つのプロセッ
サのローカル共有メモリの内容が変更された場合、その
内容をブロ−ドキャストすることにより他のプロセッサ
のローカル共有メモリの内容も変更する方式のブロ−ド
キャスト型並列型処理装置が知られている。上記特開平
5−290000号公報に示されたシステムもこのブロ
−ドキャスト型に属するものである。
【0005】
【発明が解決しようとする課題】共有バスシステムに一
つの共有メモリを有するタイプの並列型処理装置では、
複数のプロセッサからの大量の読み出しサイクルや書き
込みサイクルが共有バスシステム上で複雑に競合する可
能性がある。このアクセス競合を調停するために共有バ
スシステム側では無駄時間が発生し、それに伴ってスル
−プットが低下する。また、これに連動してプロセッサ
側の待機時間が長くなり、処理系全体のオ−バ−ヘッド
が増加する等の問題も生じる。
【0006】特開平5−290000号公報に示された
システムのようにブロ−ドキャスト型の共有メモリシス
テムを用いれば、共有バスシステム上にはロ−カル共有
メモリに対するデータの書き込みサイクルのみが生成さ
れることになる。そして、共有メモリからのデータの読
み出しサイクルは各プロセッサに分散して配置されたロ
−カル共有メモリに対して、各プロセッサ単位に独立か
つ並行して行われる。従って、各プロセッサの共有メモ
リに対する読み出しサイクル同志の間ではアクセス競合
が発生せず、スル−プットは向上する。
【0007】しかし、ブロ−ドキャスト型の共有メモリ
システムを用いても、ロ−カル共有メモリに対するプロ
セッサ側からの読み出しサイクルと共有バスシステム側
からの書き込みサイクルとは、このロ−カル共有メモリ
上で競合(リ−ドサイクルとライトサイクルとのアクセ
ス競合)することになる。このため、ブロ−ドキャスト
型の共有メモリシステムを有する並列型処理装置におい
ても、オ−バ−ヘッドや無駄時間等の除去効果は十分に
は得られていない。尚、この競合はブロ−ドキャスト型
以外の共有メモリシステムにおいても生じるものであ
る。
【0008】尚、共有メモリシステムを有する並列型処
理装置においては、協調して処理を進める複数のプロセ
ッサが互いのタスク処理において、タスク処理結果を確
実に後続のタスク処理に受け渡す必要が生じる場合があ
る。このとき、プロセッサ等の処理装置間のデ−タ転送
時間の遅れ(通信遅れ)を考慮する必要がある。ブロ−
ドキャスト方式を用いた共有メモリシステムの場合にお
いても、ロ−カル共有メモリ上での上記のアクセス競合
を低減した並列型処理装置に適した同期化手段を設ける
ことが望ましい。
【0009】そこで、本発明の目的は、ロ−カル共有メ
モリに対するプロセッサ等の処理装置側からの読み出し
サイクルと共有バスシステム側からの書き込みサイクル
とのロ−カル共有メモリ上でのアクセス競合を低減した
共有メモリシステム、並列型処理装置、またはこのよう
な装置で使用され得るメモリLSIを提供することにあ
る。
【0010】また、本発明のもう一つの目的は、ロ−カ
ル共有メモリ上でのアクセス競合を低減した上で、タス
ク間で確実にデータを受け渡すことを保障する同期化手
段を提供することにある。
【0011】
【課題を解決するための手段】上記の目的は、共有メモ
リシステムが、前記メモリユニットへのデータの書き込
み動作と、前記メモリユニットからのデータの読み出し
動作とを並行して行うことができる機能を備えることに
より達成される。
【0012】このために、本発明の共有メモリシステム
は、複数の処理装置と共有バスシステムとの間に前記複
数の処理装置に対応して設けられ、対応する処理装置の
処理結果を記憶するとともに、前記共有バスシステムを
介して得られる他の処理装置の処理結果を記憶するメモ
リユニットを備え、処理装置が他の処理装置の処理結果
をこの対応するメモリユニットから得られるようにした
共有メモリシステムにおいて、対応する処理装置と共有
バスシステムとから送られてくるデータのいずれかを選
択し、アドレスを指定して、メモリユニット内のメモリ
セルに書き込むデータ入力手段と、前記手段によるデー
タの書き込み動作中に、メモリセルをアドレスで指定し
て、データを読み出すデータ出力手段と、処理装置が対
応するメモリユニット内のメモリセルに書き込むデータ
を前記共有バスシステムに出力するライト情報出力手段
とを備える。
【0013】上記の共有メモリシステムは、複数の処理
装置と共有バスシステムとの間に前記複数の処理装置に
対応して設けられ、対応する処理装置の処理結果を記憶
するとともに、前記共有バスシステムを介して得られる
他の処理装置の処理結果を記憶するメモリユニットを備
え、処理装置が他の処理装置の処理結果をこの対応する
メモリユニットから得られるようにした共有メモリシス
テムにおいて、対応する処理装置と共有バスシステムと
から送られてくるデータ及びアドレスのうちいずれか一
方のデータ及びアドレスを選択する選択手段と、処理装
置から対応するメモリユニットに送られてその中のメモ
リセルに書き込まれるデータを、前記共有バスシステム
に出力するライト情報出力手段と、メモリユニットに、
アドレスによって指定できる複数のメモリセルと、デー
タを書き込むアドレスを指定するライトアドレス指定手
段及び指定されたアドレスのメモリセルにデータを書き
込む書き込み手段と、前記各手段によるデータの書き込
み動作中に、アドレスでメモリセルを指定してデータを
読み出すことができるリードアドレス指定手段及びデー
タの読み出し手段とを備えるようにしても良い。
【0014】また、上述の共有メモリシステムを複数の
処理装置にそれぞれ設け、各処理装置が対応する共有メ
モリシステムを介して情報のやり取りを行えうようにす
れば、上記の目的を達成する並列型処理装置を構成する
ことができる。
【0015】また、上記の目的を達成するために、本発
明のメモリLSIは、複数個のメモリセルを備えたメモ
リLSIにおいて、複数個のメモリセルをリードアドレ
スとライトアドレスとに対応させ、データを読み出すメ
モリセルをリードアドレスで指定するリードアドレス指
定手段と、このリードアドレス指定部によって指定され
たメモリセルからデータを読み出す読み出し手段と、前
記リードアドレス指定手段と独立して設けられ、データ
を書き込むメモリセルをライトアドレスを指定するライ
トアドレス指定手段と、前記読み出し手段と独立して設
けられ、前記ライトアドレス指定手段によって指定され
たメモリセルにデータを書き込む書き込み手段とを備
え、データの読み出し処理とデータの書き込み処理とを
並行して行うことを可能にしたものである。
【0016】このとき、前記ライトアドレス指定手段
は、ライトアドレスを入力するライトアドレスピンと、
このライトアドレスで指定されたメモリセルを選択する
手段と、このメモリセルにデ−タの書き込みを指令する
書き込みイネ−ブル信号入力ピンと、この書き込みイネ
−ブル信号に対応してライト信号を生成する手段とを備
え、前記書き込み手段は、デ−タを入力するデ−タ入力
ピンと、ライトアドレスで指定されたメモリセルの入力
にデ−タ入力ピンから入力されたデ−タを設定し、前記
ライト信号によってそのメモリセルにラッチする手段と
を備え、前記リードアドレス指定手段は、リードアドレ
スを入力するリードアドレスピンと、このリードアドレ
スで指定されたメモリセルを選択する手段とを備え、前
記読み出し手段は、デ−タを出力するデ−タ出力ピン
と、前記リードアドレスで指定されたメモリセルに記憶
されたデ−タを読み出し前記デ−タ出力ピンに出力する
手段とを備えるようにしても良い。
【0017】また、上記もう一つの目的を達成するため
に、上述の共有メモリシステムにおいて、処理の終了に
よって非アクティブからアクティブに転じる同期要求信
号を出力する手段を各処理装置に設けると共に、協調し
て処理を行う各処理装置からの同期要求信号が全てアク
ティブに転じたことを受けて同期処理完了信号をアクテ
ィブに転じ、同期要求信号を出力した処理装置によるメ
モリユニットからのデータの読み出しを可能にする同期
化手段を設ける。
【0018】このとき、同期処理完了信号がアクティブ
に転じた時点でメモリユニットへの書き込み動作が発生
している場合、その書き込み動作が連続して発生してい
る期間、前記メモリユニットからの読み出し処理を禁止
する手段(局所同期用インターロック回路)を備えても
良い。
【0019】また、上述の共有メモリシステム又は並列
型処理装置では、処理装置が対応するメモリユニットか
らデータを読み出すタイミングと共有バスシステムから
送られてくるデータをメモリユニットに書き込むタイミ
ングとを一つの基準クロックに同期させる同期制御手段
を備えてもよい。
【0020】さらに、上述の共有メモリシステム又は並
列型処理装置において、読み出し手段に出力されるデ−
タをラッチするリードデ−タラッチを備えてもよい。こ
のリードデ−タラッチはメモリユニット又はメモリLS
I内に設けられても良いし、メモリユニットからのデー
タ出力を受けるように、外付けで設けても良い。
【0021】
【作用】データ入力手段は、処理装置又は共有バスシス
テムから送られてくるデータ及びアドレスのうちのいず
れか一方のデータ及びアドレスを選択して、対応するメ
モリユニット内のメモリセルに書き込む。また、ライト
情報出力手段は、処理装置からメモリユニットに送られ
るデータを共有バスシステムに出力する。このデータは
他の処理装置のメモリユニットへの書き込みを行うよう
にする。一方、データ出力手段は、データ入力手段の書
き込み動作中に、メモリセルをアドレスで指定してデー
タを読み出す。
【0022】このように構成したことにより、メモリユ
ニット内のメモリセルへのデータの書き込み処理と読み
出し処理とを並行して行うことができる。従って、メモ
リユニット(ロ−カル共有メモリ)に対する処理装置側
からの読み出しサイクルと共有バスシステム側からの書
き込みサイクルとが、このメモリユニット(ロ−カル共
有メモリ)上で起こすアクセス競合を低減することがで
きる。
【0023】このとき、データを書き込むために指定す
るメモリセルと、データを読み出すために指定するメモ
リセルとは、同じであっても構わない。つまり、書き込
み処理中のメモリセルからデータを読み出すことができ
る。
【0024】また、上述のメモリLSIにおいては、デ
ータを読み出すメモリセルを指定するリードアドレス指
定手段及び指定したメモリセルからデータを読み出す読
み出し手段と、データを書き込むメモリセルを指定する
ライトアドレス及び指定したメモリセルにデータを書き
込む書き込み手段とが独立して設けられたことにより、
データの読み出し処理とデータの書き込み処理とを並行
して行うことができる。これによって、メモリLSI上
における読み出しサイクルと書き込みサイクルとのアク
セス競合を低減させることができる。
【0025】また、同期化手段は協調して処理を行う各
処理装置からの同期要求信号を監視する。この同期要求
信号は前記処理装置が処理を終了したときに同期化手段
に対して出力し、同期化手段は全ての同期要求信号が揃
った後(アクティブに転じた後)、この同期要求信号を
出力した処理装置が対応するメモリユニットからデータ
の読み出しを行うことを可能にする。これによって、協
同して処理を進めている他の処理装置からの必要な情報
が各処理装置に対応するメモリユニット(ローカル共有
メモリ)に書き込まれていない状態で、各処理装置がロ
ーカル共有メモリにアクセスしてしまい、誤ったデータ
を得て誤った処理結果を生成することを防ぐことができ
る。
【0026】このとき、上記局所同期用インターロック
回路を備えることにより、同期処理完了信号が発生され
てローカル共有メモリのデータが実際に書き替わるまで
の期間、処理装置によるデータの読み出し処理を待たせ
ることにより、処理装置が古いデータを得て誤処理を行
わないようにすることができる。
【0027】上記同期制御手段は、共有メモリシステム
全体を一つのクロックに同期させるので、非同期で動作
する各手段または処理を同期させるためのオーバーヘッ
ドを除去することができ、通信レイテンシ(遅れ)を改
善することができる。
【0028】処理装置がメモリユニット又はメモリセル
から読み出すデータをリードデ−タラッチによってラッ
チすることにより、読み出し処理に関係なく書き込み処
理を実行することができる。
【0029】また、本発明のメモリLSIは、データの
書き込みのみに使用されるポートと、データの読み出し
のみに使用されるポートと、データを書き込むアドレス
を指定するライトアドレス指定ポートと、データを読み
出すアドレスを指定するリードアドレス指定ポートとを
備えることにより、データの読み出し処理とデータの書
き込み処理とを並行して行うことを可能にする。
【0030】また、上述したメモリLSIは、従来、最
低でも二つの処理サイクルを要して実行していた書き込
み処理と読み出し処理とを一つの処理サイクルで実行す
ることを可能にする。この処理サイクルは最も短いもの
でもCMOSプロセスを用いたICまたはLSIでは1
0ns程度であり、バイポーラCMOSプロセスを用い
たICまたはLSIでは5ns程度である。従って、書
き込み処理と読み出し処理とを実行するために、従来は
CMOSプロセスを用いたICまたはLSIでは20n
s程度、バイポーラCMOSプロセスを用いたものでも
10ns程度を要していた。これに対し、本発明のメモ
リLSIは、書き込み処理と読み出し処理とを並列に実
行可能にすることにより、これらの処理を一つの処理サ
イクルで実行し、書き込み処理と読み出し処理とを5n
s以下の時間で実行することを可能にした。
【0031】上述した本発明のメモリLSIを共有メモ
リシステムのメモリユニット(ローカル共有メモリ)と
して用いることにより、このメモリユニット(ローカル
共有メモリ)からのデータの読み出し処理とローカル共
有メモリへのデータの書き込み処理とを並行して行うこ
とが可能な並列型処理装置を構成することができる。
【0032】さらに、上述のような共有メモリシステム
又はメモリLSIを用いた共有メモリシステムを各処理
装置に分散せず、複数の処理装置に対して設けても、上
記の書き込みサイクルと読み出しサイクルとのアクセス
競合を低減することが可能であろう。
【0033】尚、以下の説明においては、共有メモリシ
ステムを単に共有メモリと呼ぶ場合もある。
【0034】
【実施例】複数のプロセッサからなるマルチプロセッサ
システムにおいて、プロセッサ間の共有システム(共有
メモリ、共有I/Oなどプロセッサ間から自由にアクセ
ス可能な共有リソ−ス)とプロセッサ間の待ち合わせ処
理すなわち、プロセッサ間同期処理を実行する同期処理
回路とを組み合わせて、コントロ−ルフロ−的な並列処
理制御とデ−タフロ−的な並列処理制御とのコンビネ−
ションで並列処理効率を向上させる手法は、特開平5−
2568号公報に示されるように従来システムですでに
用いられている例がある。
【0035】この特開平5−2568号公報は、全体の
ア−キテクチャと手法について述べている。本発明にお
いては、本明細書で開示した共有メモリへの高効率なア
クセス手法及び構成において最適な同期処理方法を開示
している。
【0036】まず、図1の構成と並列処理時のプロセッ
サ間同期処理手法について簡単に述べる。
【0037】図1に示したシステムは、複数のプロセッ
サ0〜nとそれらのいずれからも自由にアクセス可能な
リソ−スである共有システムとから構成されるマルチプ
ロセッサシステムにおいて、共有システムの1つである
共有メモリシステム1010、1011〜101nを各
プロセッサからみたときそれぞれのプロセッサのロ−カ
ルメモリと同等とみなせるよう、共有システムコントロ
−ラと共有メモリとを一体化した形で各プロセッサに対
応してそれぞれ配置して、あるプロセッサが自身の共有
メモリシステム内の共有メモリの内容を変更すると他の
プロセッサの共有システム内の共有メモリもそれに対応
して変更されるブロ−ドキャスト方式の制御を行うもの
としている。
【0038】さらに、各プロセッサ間の同期処理を行
い、各プロセッサ間で実行される各タスクの並列処理を
制御するため同期処理回路1000を設けて、特開平3
−234535号公報に示されたような、コントロ−ル
フロ−とデ−タフロ−とを組み合わせた並列処理制御を
行う。
【0039】すなわち、あるプロセッサがあるタスクを
終了した時点で、タスクの終了を知らせる同期リクエス
ト(SREQ)を同期処理回路1000に対し発行し、
待ち合わせ処理(同期処理)を行わないといけないタス
クを実行している他のプロセッサのタスク処理が終了し
てそのプロセッサが同期リクエスト(SREQ)を同期
処理回路1000に対し発行するまで同期完了情報(S
YNCOK)を非アクティブに保つように同期処理回路
1000は動作する。そして実際に、プロセッサを待ち
合わせさせる処理は、そのプロセッサが共有メモリにア
クセスしたとき実行され、その時、SYNCOKがアク
ティブでなければアクティブになるまでプロセッサの共
有メモリへのアクセスをペンディングし、SYNCOK
がアクティブであれば無条件で共有メモリへのアクセス
を許可するように動作する。
【0040】なお、本例のSYNCOK信号は、特開平
5−2568号公報におけるTEST信号とほぼ等価の
機能を有すると考えて良い。
【0041】図1において、プロセッサ0〜nはそれぞ
れ対応する共有メモリシステム1010〜101nにデ
−タバス(D)、アドレスバス(A)、コントロ−ルバ
ス(C)によって接続されている。本例では、プロセッ
サによる対応する共有メモリシステムへのアクセスが発
生するとそれを示す共有システムイネ−ブル(CSE
N)がアクティブになり、共有メモリシステムへのアク
セスサイクルの開始を伝える。
【0042】CSENに相当する信号は、各共有メモリ
システム1010〜101nの中でアドレス信号A等を
デコ−ドすることによって内部的に生成することも可能
であるが、プロセッサ0〜n側で先行してデコ−ドして
生成した方が遅れ時間をより少なくできる可能性が高い
ため、本例ではD,A,C,の各信号群とは独立した信
号として直接プロセッサ側からCSENを与えるように
している。
【0043】さらに図1において、各共有メモリシステ
ム1010〜101nは共有バスシステム(信号線RE
Q,Data,Address,Control,AC
Ksignalから成る)1900に接続される。
【0044】前述したように、この共有バスシステム1
900は、共有メモリに対してあるプロセッサがデ−タ
の変更を行う(書き込みアクセスを行う)際に、他のプ
ロセッサの共有メモリ上の対応するアドレスに存在する
デ−タも一緒に変更するための情報を共有メモリにライ
トアクセスしたプロセッサの共有メモリシステムが他の
すべての共有メモリシステムに対してブロ−ドキャスト
するために設けられている。
【0045】すなわち、共有メモリシステムに対するラ
イトサイクルがどこかのプロセッサで発生すれば、その
情報が共有バスシステム1900を介して他のプロセッ
サの共有メモリシステムに伝送され、各プロセッサに付
随する各共有メモリ上の対応するアドレス上の必要なデ
−タ内容の変更が行われる。
【0046】共有バスシステム1900において、RE
Q信号群は共有メモリへのライトアクセス時に各共有メ
モリシステム1010〜101n内の共有メモリコント
ロ−ラからそれぞれ生成されるバスリクエスト信号(R
EQ)の集合であり、これらはバスア−ビタ回路102
0に入力される。ア−ビタ回路1020は、その中から
1つを選択してREQm(mはプロセッサmに対応する
リクエスト信号)に対応する許可信号ACKmをアクテ
ィブにしてACK信号群を介し対応する共有メモリシス
テムのACK入力に伝える。
【0047】ACK入力がアクティブに転じた時、共有
メモリコントロ−ラはライトサイクルの対象となったデ
−タ(Data)とアドレス(Address)を共有
バスシステム1900上に生成すると共に、ア−ビタ回
路1020からは、それら共有バス上の情報がアクティ
ブであることまたはバスが使用されていることを示す制
御信号(BUSY)をアクティブにする。
【0048】BUSY信号の情報は共有バスシステム1
900内の制御信号(Control)を介して、各共
有メモリシステム1010〜101nのビジ−信号(B
USY)入力に伝えられ、各共有メモリコントロ−ラは
その情報を調べることで共有バス上に共有メモリへ書き
込むべきデ−タが存在するか否かを判断する。もし、共
有メモリへ書き込むべきデ−タが存在すれば(ビジ−信
号がアクティブであれば)各自の共有メモリの指定され
た番地にその有効なデ−タを一斉に書き込んで変更し、
各プロセッサに対応する共有メモリの内容を常に同一に
保つ様に動作する。
【0049】なお、システムによっては、ア−ビタ回路
からの許可信号(ACK)を受け取った共有メモリコン
トロ−ラがそれぞれビジ−信号を出力して、他の共有メ
モリコントロ−ラに伝える方式も考えられるが、本例と
比べるとビジ−信号の出力により長い時間を必要とする
(信号の遅延が大きい)ため、高速動作を必要とするシ
ステムでは本例の方式の方が有効であろう。
【0050】その他、システムによっては制御信号(C
ontrol)として、バスコマンド、ステ−タス情
報、バスクロック、デ−タ転送プロトコル制御信号、バ
スステ−トやバスサイクル制御信号、リソ−スからの種
々の応答信号、割込みベクタやメッセ−ジ情報信号等が
割り付けられる場合もある。
【0051】図2は、本発明における各共有メモリシス
テム1010〜101n内の構造を示している。最大の
特徴は、共有メモリ2006が、読み出し時のアドレス
(RA)及びそれに対応する出力デ−タ(DO)と、書
き込み時のアドレス(WA)及びそれに対応する入力デ
−タ(DI)とを別々のポ−トとして具備した2ポ−ト
メモリの構造を採っていることである。
【0052】共有メモリシステム内は、前記2ポ−ト共
有メモリ2006、共有メモリコントロ−ルユニット2
010、プロセッサインタ−フェ−ス2003及びマシ
ンステ−トコントロ−ラMSC2002、各種入出力バ
ッファユニット(2001、2012〜2018)、ラ
ッチユニット及びバッファメモリユニット(2004、
2008、2009、2011)、マルチプレクサユニ
ット(2005、2007)、クロック生成回路201
3等から構成されている。
【0053】各共有メモリシステムはプロセッサクロッ
ク(PCLK)、システムクロック(SCLK)等の基
本クロックに同期して動作する。PCLKは、プロセッ
サのバスサイクルに同期したクロックであり、プロセッ
サ側のバスサイクルはこのクロックを基準に動作してい
ると考えて良い。SCLKはシステム全体の基本となる
クロックであり、システムはこのクロックに同期してい
ると考えて良い。最も理想的な条件として、SCLKを
基準としてPCLKが生成されていれば、プロセッサを
含めたシステム全体を結果的に1つの基本クロック(こ
の場合SCLK)に同期させて動作させることになるた
め、最も効率の良いタイミング制御が可能となると考え
られる。
【0054】本発明の共有メモリシステムにおける特徴
と基本的な動作は以下のa)〜f)に示したとおりであ
る。
【0055】a)共有メモリシステムアクセスイネ−ブ
ル信号(CSEN)がアクティブになると、共有メモリ
システムコントロ−ラ2010及びPIF2003,M
SC2002は信号入力回路2001を介してその情報
を得て共有メモリシステムへのプロセッサからのアクセ
スが発生したことを知る。
【0056】そして、プロセッサインタ−フェ−スPI
F2003及びマシンシテ−トコントロ−ラ(MSC)
2002は、プロセッサのバスサイクル及びバスプロト
コルに合致した適切なタイミングでプロセッサによるア
クセスの対象となるアドレス情報及びデ−タ情報をプロ
セッサとやりとりする。
【0057】本例では、プロセッサ側で共有メモリの物
理アドレスエリアをデコ−ドしておき、プロセッサがそ
のエリアをアクセスしたときCSEN信号がアクティブ
になる様にしている。
【0058】また、MSC2002は、特開平2−16
8340号公報に基づいた使用方法を採用することによ
って、共有メモリシステムを含む各プロセッサシステム
を単一の基準クロックで動作させシステム全体を同期型
の大規模デジタル回路システムとして構築できる効果
や、共有メモリシステムへプロセッサがアクセスする際
のアクセスタイム(特に読み出しサイクル時)をより長
く確保できる効果等が得られる。
【0059】b)プロセッサの共有メモリに対するアク
セスバスサイクルがリ−ドサイクルの場合、特別な場合
を除き、共有メモリ2006の読み出しポ−ト(DON
及びRA)を利用して直接デ−タを共有メモリ2006
から読み出す。この場合、各種アドレス情報をマルチプ
レクスして共有メモリ2006に与えるアドレスマルチ
プレクサMX2007は、プロセッサからのアドレス情
報をPIF2003を介して入力Cに得て出力O1から
共有メモリ2006のリ−ドアドレスRAに与え、その
RAの値に対応したデ−タを共有メモリのDOから読み
出す。
【0060】読み出されたデ−タ値は、PIF2003
を介してプロセッサへ送られる。
【0061】なお、AMX2007において、入力側の
A,B,Cのうちいずれを選択してO1に出力するかを
決める選択入力信号S1を制御する操作は、共有メモリ
コントロ−ルユニット2010からのRDSEL信号に
よって行う。その際、プロセッサインタ−フェ−ス20
03内に読み出し用ラッチ回路を設けて、一度共有メモ
リ2006からのデ−タをそこにラッチし、少なくとも
プロセッサがそのデ−タを読み出すタイミングの前後の
期間、十分なセットアップタイムとホ−ルドタイムを確
保した形でプロセッサに対して有効なデ−タを保持して
おく様にしても良い。
【0062】又、後述するように、プロセッサ側のバス
サイクルを規定するクロック(バスクロック等)と共有
メモリ側へデ−タを書き込むタイミングを規定するクロ
ックとが同期している場合等、共有メモリ2006から
読み出されるデ−タが有効な期間がもともと前記セット
アップタイム及びホ−ルドタイムを満足しているなら
ば、直接そのデ−タをプロセッサに与えても良い。
【0063】c)プロセッサの共有メモリに対するアク
セスバスサイクルがライトサイクルの場合、本例では、
プロセッサからPIF2003を介して送られてきたラ
イトアドレス値はまず一度共有メモリコントロ−ルユニ
ット2010のAWBUFCTL信号に応答して適切な
タイミングでアドレスライトバッファAWBUF200
8に書き込まれる。
【0064】AWBUF2008は、複数のライトアド
レス情報を時系列的に蓄えておき、最も過去に得たライ
トアドレス情報をOに出力してAMX2007のA入力
に与えるように構成しても良い。AMX2007は、ア
ドレス入力A,B,CからO2に、選択されたライトア
ドレス値を出力し、共有メモリ2006のライトアドレ
スWA入力に与える。その選択操作を行うための選択信
号入力S2は、共有メモリコントロ−ルユニット201
0のライトデ−タ信号WDSELによって行う。
【0065】また、対象とするライトアドレスWAに書
き込むべきデ−タもプロセッサからPIF2003を介
して一度デ−タライトバッファDWBUF2004を介
した後デ−タマルチプレクサDMX2005により選択
操作(Aに入力されOに出力される)されて共有メモリ
2006のデ−タ入力DIに与えられる。
【0066】DMX2005の機能は、AMXのO2出
力側の機能とほぼ同様である。但し、入力A,B,Cに
入力されているそれぞれのライトアドレス情報から1つ
を選択しOに出力するための選択信号入力Sは、共有メ
モリコントロ−ルユニット2010のWDSEL信号に
よって制御される。
【0067】また、DWBUF2004の機能も、AW
BUF2008とほぼ同様であるが、DWBUF200
4にプロセッサからのデ−タをラッチし蓄えていくため
の制御信号としては共有メモリコントロ−ルユニット2
010のDWTBUFCTL信号が使用される。DWB
UF2004及びDMX2005の制御タイミングがA
WBUF2008及びAMX2007と同一であれば
(例えばプロセッサからのアドレス値とデ−タ値との出
力タイミングがほぼ同一であれば)、同一の制御信号を
用いて選択信号やラッチ信号を制御しても良い。
【0068】なお、共有メモリ2006にデ−タを書き
込む操作を行うのは、共有メモリコントロ−ルユニット
2010からのライトイネ−ブルWE信号による。本例
ではWE信号をアクティブにすると共有メモリ2006
のDIに入力されているデ−タがRAに入力されている
アドレス値に対応するメモリセルの内容に反映され、W
E信号を非アクティブに戻すタイミングでそのデ−タが
メモリセルにラッチされる。もし、共有メモリ2006
のRAとWAの内容が同一のアドレス値を示していると
すると、WE信号がアクティブの時DOにはDIに入力
されているデ−タの内容と同一のものが出力される。
【0069】従って、本例の場合共有メモリの情報を変
更するタイミングはWE信号をアクティブにするタイミ
ングで決まると言える。
【0070】ライトサイクル時は、自身の共有メモリだ
けの内容変更ではなく他のプロセッサに対応する共有メ
モリ各々にも同等のデ−タとアドレス情報をブロ−ドキ
ャストして共有メモリ上の内容を変更する必要がある。
従って、DWBUF2004のOから出力されているラ
イトデ−タとAWBUF2008のOから出力されてい
るライトアドレスとをそれぞれデ−タバッファ2015
とアドレスバッファ2016を介して共有バスシステム
に出力する機能を有している。
【0071】デ−タバッファ2015とアドレスバッフ
ァ2016との共有バスシステムに対するON−OFF
操作はそれぞれDEN信号とAEN信号とで行ってい
る。
【0072】d)他のプロセッサが共有メモリの内容を
変更した場合、共有バスシステムを介して送られて来る
アドレス情報をアドレスバッファ2016よりデ−タ情
報をデ−タバッファ2015よりそれぞれ得て、そのア
ドレス情報に対応したデ−タ情報を共有メモリ2006
に書き込む。
【0073】本例では、デ−タバッファ2015を介し
て得た情報をデ−タラッチ2009、アドレスバッファ
2016を介して得た情報をアドレスラッチ2011に
一度保持した後、デ−タ情報はDMX2005のB入力
に、アドレス情報はAMX2007のB入力にそれぞれ
入力され、さらにDMX2005のO出力から共有メモ
リ2006のDI入力に書き込むべきデ−タが、DMX
2007のO2出力から共有メモリ2006のWA入力
にその対象となるアドレスが入力される。
【0074】デ−タラッチDL2009、アドレスラッ
チAL2011へのラッチタイミングは、共有メモリコ
ントロ−ルユニット2010のCSADL信号によって
行う。CSADL信号は、共有バスシステム上にデ−タ
及びアドレス情報が確定し、それらがDL2009及び
AL2011に対して十分なセットアップタイム及びホ
−ルドタイムを確保したタイミングでラッチ処理が行わ
れるように操作されている。
【0075】本例では、CSADL信号がアクティブに
なるとDL2009及びAL2011のD側の情報がO
側に出力されてラッチ回路がセットアップされ、CSA
DLが非アクティブに転じたタイミングDL,ALにそ
れらの情報がラッチされる。本例では、各プロセッサの
各共有メモリシステムが同じ位相を有する基本クロック
(PCLK及びSCLK)に応答して完全に同期して動
作するため、ライト動作時にデ−タバッファ2015や
アドレスバッファ2016を操作して共有バスシステム
に必要な情報を入出力するタイミングと、そのタイミン
グに同期して生成されるDL2009,AL2011に
必要な情報をラッチすべきタイミングとは各共有メモリ
システム内の共有メモリコントロ−ルユニット2010
の内部で明確化されていると考えて良い。
【0076】この同期化によって、共有メモリコントロ
−ルユニット2010はこれらのタイミングを規定する
CSADL,DEN,AEN,AWTBUFCTL,D
WTBUFCTL等の制御信号の生成に関してオ−バ−
ヘッドや遅れ時間の少ない効率の良いタイミング制御が
可能となっている。また、DMX2005やAMX20
07を制御するWDSELや共有メモリ2006にデ−
タを書き込むWE信号の生成も、DL2009やAL2
011にデ−タを確定するCSADL信号の制御タイミ
ングに応答して共有メモリコントロ−ルユニット201
0内で行えば良い。
【0077】e)共有メモリへのライト動作時におい
て、各プロセッサの共有メモリシステム間で、共有バス
システムの使用権を確実に1つのプロセッサに割り付け
る競合制御(ア−ビトレ−ションコントロ−ル)が必要
となる。
【0078】共有メモリコントロ−ルユニット2010
は、プロセッサからのコントロ−ル信号Cと共有メモリ
システムアクセスイネ−ブルCSENとから、プロセッ
サによる共有メモリシステムへの書き込みサイクル(ラ
イトサイクル)が発生したとみなすとCSREQ信号を
アクティブにしてア−ビタ回路1020への要求信号R
EQを出力バッファ2012を介して生成する。
【0079】そして対応するア−ビタ回路1020から
の許可信号ACKがアクティブになり入力バッファ20
14を介して共有メモリコントロ−ルユニット2010
のCSACK入力に得られた場合、自身のプロセッサが
共有バスシステムの使用権を得たとして、共有メモリコ
ントロ−ルユニット2010はc)に示した手順で共有
メモリ及び共有バスシステムへのライトサイクルを生成
する。
【0080】この時、デ−タバッファDWBUF200
4及びアドレスバッファAWBUF2008が一杯にな
っている場合はプロセッサのバスサイクルの終了をペン
ディングして待たせることになる。プロセッサ側のバス
サイクルの終了をペンディングして待たせるかバスサイ
クルを予定通り終了してプロセッサを次の処理に進める
かを決める信号として、共有メモリコントロ−ラ201
0はRDY信号を生成する。
【0081】プロセッサが、共有メモリシステムへのア
クセスのためのバスサイクルを生成している時、共有メ
モリコントロ−ルユニット2010からのRDY信号が
アクティブになればそのバスサイクルを待ち状態にせず
に予定通りバスサイクルを終了してプロセッサを次の処
理に進め、非アクティブに保てばそのバスサイクルを終
了せずにバスサイクルを引き延ばして結果的にプロセッ
サを待たせる操作を実行したことになる。
【0082】基本的にバッファ2004,2008が一
杯になっておらず空きがあれば、プロセッサはDWBU
F2004,AWBUF2008に必要なデ−タ及びア
ドレス情報をラッチしておいて待されずに次の処理に進
む。すなわち、プロセッサが共有メモリへのライト動作
を実行していった時、前述したア−ビタ回路1020か
らの共有バスシステム使用権の許可が得られない状態が
続けば、バッファ2004,2008内にペンディング
されたライトサイクル分のデ−タ及びアドレス情報が時
系列的に蓄えられていき、バッファが一杯になった状態
で発行されたライトサイクルはバッファに空きが生ずる
まで引き延ばされ、結果的にプロセッサ側を待たすこと
になる。
【0083】自身の共有メモリへの書き込み処理のレイ
テンシを短縮するために、共有メモリへのライト動作時
にバッファ2004,2008が完全に空きの状態でか
つそのライト動作に応答してア−ビタ回路1020から
の許可信号(CSACK)が直ちにアクティブになり共
有バスシステムの使用が許可された場合、マルチプレク
サ2005,2007のC入力を介して直接PIF20
03からのライトアドレス(WA)及びライトデ−タ
(DI)を共有メモリ2006に与え、書き込み処理を
実行しても良い。
【0084】その制御は共有メモリコントロ−ル201
0がWDSELとWE信号を用いて行なう。なお、これ
らのバッファ2004,2008に有効な情報が存在す
る間は、共有メモリコントロ−ルユニット2010内で
CSENをアクティブに保ち続けるようになっている。
【0085】一方、REQ信号をアクティブにしている
にもかかわらず対応するACK信号が非アクティブの状
態であり、ア−ビタ回路1020から入力バッファ20
17を介して得たBUSY信号が(共有メモリコントロ
−ルユニット2010のCSBUSY入力に接続されて
いる)アクティブとなっている場合は、他のプロセッサ
による共有メモリ及び共有バスシステムへのライトサイ
クルが許可され実行されているとみなし、共有メモリコ
ントロ−ルユニット2010は、d)に示した方法によ
り他のプロセッサから共有バスシステムを介してブロ−
ドキャストされて来る情報に基づいた共有メモリ200
6へのライトサイクルを生成する。
【0086】f)同期処理回路1000と共有メモリシ
ステム1010〜101nとが連動して動作する場合、
プロセッサは、必要なタスク処理が終了したら同期要求
信号SREQをアクティブにして同期処理回路1000
に同期処理を要求しておき、それより後のタイミングで
共有メモリ上のデ−タ(他のプロセッサからのデ−タ等
が存在している)が必要となって共有メモリシステムを
アクセスした時(特にリ−ドアクセス時)、共有メモリ
システム内でプロセッサとの間の局所同期処理を行っ
て、他のプロセッサとの間のデ−タのやりとりに矛盾が
発生しないようにする。
【0087】同期処理回路1000は、各プロセッサ1
110〜111nからの同期要求信号SREQのうち予
め定められた同期すべきプロセッサ群、すなわち、協調
して処理を進めている群のグル−プに属するプロセッサ
からのSREQに非アクティブ状態のものが1つでも存
在すれば、応答すべきプロセッサに対して前記SREQ
が全てアクティブに転じるまで同期処理完了信号SYN
COKを非アクティブに保つことによって必要な同期処
理が終了していないことを伝える。
【0088】そのプロセッサに対する共有メモリシステ
ムは、そのSYNCOK信号を信号入力回路2018で
受けて同期処理回路1000からの同期情報をモニタし
ており、少なくともSYNCOKが非アクティブの状態
で自身のプロセッサが共有メモリシステムへのアクセス
サイクル(特にリ−ドサイクル)を生成したときには、
共有メモリコントロ−ルユニット2010がRDY信号
を非アクティブに保つことでプロセッサのバスサイクル
の終了をペンディングして待たせることにより、プロセ
ッサと共有メモリシステムとの間で局所的な同期処理操
作を実行する。
【0089】これにより、共有メモリ2006上に協同
して処理を進めている他のプロセッサからの必要な情報
が書き込まれていない状態で共有メモリにアクセスして
しまい、その結果誤った情報を得て誤った処理結果を生
成することが無いように管理している。
【0090】本例において特徴的なのは、バッファシス
テムDWBUF2004及びAWBUF2008を有し
ており、プロセッサの動作が共有メモリシステムのアク
セスサイクル処理より先行したとしても、これらのバッ
ファシステムにアクセス情報を時系列的にストアしてお
いて共有メモリシステム内でプロセッサの動作と独立か
つ並行して後処理することが出来るようになっている点
である。
【0091】その結果、プロセッサの処理を必要以上に
待たせずに先に進めさせることが可能となっている。こ
の際、SYNCOKがアクティブになっていたとして
も、各プロセッサの共有メモリシステム内のバッファシ
ステム2004,2008に有効なデ−タが存在してい
る状態、すなわち、本来同期処理が完了していれば共有
メモリ上に存在している必要のあるデ−タがまだ共有メ
モリ上に存在していない状態が発生する可能性がある。
【0092】この状態で、b)に示したような共有メモ
リへの書き込みサイクルと並行して実行可能な読み出し
ポ−ト(共有メモリ2006のRA,DI)からの自由
な読み出し動作を実行すると、必要なデ−タが得られず
誤処理につながる可能性がある。
【0093】従って、いずれかのプロセッサに対応する
共有メモリシステムのバッファシステム2004,20
08内に有効なデ−タが存在する間は、共有バスシステ
ム上でライトサイクルが連続して発生しア−ビタ回路1
020からのBUSY信号がアクティブ状態に保たれ続
けることを利用して、SYNCOK信号がアクティブに
転じてもBUSY信号がアクティブ状態であれば、BU
SY信号が非アクティブに転じるまでプロセッサの共有
メモリへのリ−ドサイクルを禁止する機能を共有メモリ
コントロ−ルユニット2010内に具備している。
【0094】つまり、この状態でプロセッサからのリ−
ドサイクルが発生した場合、共有メモリコントロ−ルユ
ニット2010は、BUSY信号が非アクティブになる
までRDY信号を非アクティブに保ってそのバスサイク
ルの終了を遅らせ、プロセッサ側を待たせる。
【0095】a)〜f)に示した本発明の共有メモリシ
ステムの基本機能において、従来システムと顕著に異な
るのは、以下の2点である。
【0096】1)共有メモリシステム内の共有メモリ2
006に独立並行に操作可能な2ポ−ト(読み出しポ−
トと書き込みポ−トから成る)のメモリユニットを用い
ている。これにより、共有メモリへのリ−ドサイクルと
ライトサイクルを並行に実行でき、共有メモリ間のデ−
タ一致処理やプロセッサ間のデ−タ転送処理にかかるレ
イテンシを短縮できると共に、プロセッサ間のアクセス
競合によるロスを大幅に減らすことが出来るため共有メ
モリシステムに対するト−タルのスル−プットも向上さ
せることが出来る。
【0097】2)プロセッサ間の同期処理回路1000
と、共有メモリシステムとを連動して動作させる場合、
同期処理によって管理されるタスク間で目的とするタス
クによって生成された情報を共有メモリを介して確実に
やりとりできることを保証するために、同期処理回路か
ら同期の完了が通知されてから実際に共有メモリ上の情
報が目的に対して有効な状態に書き替わるまでの期間、
プロセッサのリ−ドサイクルを待たせる局所同期用イン
タ−ロック回路を具備している。これにより、プロセッ
サ間の同期処理をタスク間のデ−タの受け渡しの妥当性
も保証した形で確実に矛盾なく行うことができ、プロセ
ッサが古い情報を得て誤処理を行わないように自動的に
管理できるようになっている。
【0098】次に図3に示したより簡略化した実施例を
用いて、各プロセッサの共有メモリシステム1010,
1011,...,101nの中の2ポ−ト共有メモリ
2006とその制御に関わる周辺回路の機能についてよ
り詳細に説明する。特に、ここでは2ポ−ト化したこと
による機能と効果について述べていく。
【0099】図3に示した3004,3005,300
6,3007,3008はそれぞれ、図2における20
04,2005,2006,2007,2008の機能
に対応する。リ−ドデ−タラッチ3110が存在する場
合もあるが、すでに述べたように、図2ではこの機能が
PIF2003内に存在するとしている。図3ではメモ
リユニット3006の内部を詳しく開示しているが、そ
の周辺機能は説明を簡単にするため簡略化して表現して
いる。
【0100】まずプロセッサからの読み出し処理時に
は、プロセッサ側からのリ−ドアドレス13001は、
直接メモリユニット3006のリ−ドアドレスデコ−ダ
3103に入力され、そこからの出力に応答してマルチ
プレクサ3102の選択入力Sを切り換えることにより
メモリセル群3101の中から指定されたアドレスに対
応する出力をマルチプレクサ3102で選択し、RDA
TA13003としてプロセッサ側に出力する。マルチ
プレクサ3102は、図4にも示したとおりトライステ
−トバッファを組み合わせて構成しても良い。
【0101】プロセッサから共有メモリへの書き込み処
理時には、ライトアドレス13002は、共有バスシス
テムのアドレス情報として生成するためバッファ300
8を介して共有バス側へ出力されるとともに、直接マル
チプレクサ3007を介してそのプロセッサのメモリユ
ニット3006のWADDRデコ−ダ3104に入力さ
れる。バッファ3008は、時系列的にアドレスデ−タ
を蓄えるキュ−システムとして構成し、図2の2008
と同様の機能を待たせても良い。
【0102】直接メモリユニット3006に入力された
ライトアドレスは、WADDRデコ−ダ3104でデコ
−ドして、メモリセル群3101の中のどのメモリセル
にデ−タを書き込むかを決定し、書き込み信号WEに応
答して、選択されたメモリセルに書き込むべきデ−タW
DATAの内容をラッチする。WE信号は、コントロ−
ルユニット3010で、プロセッサからのリ−ド/ライ
ト制御信号W/R13005,共有システムセレクトC
SEN13006等の信号に応答して生成される。プロ
セッサからのライトデ−タ13004がマルチプレクサ
3005を介した後WDATAとしてメモリユニット3
006内に入力される。
【0103】ライトアドレス13002と同様、ライト
デ−タ13004もバッファ3008と同等の機能のバ
ッファ3004を介して共有バス側に出力されている。
共有バス側に出力されたライトアドレスとライトデ−タ
は、共有バスを介して他のプロセッサの共有メモリシス
テムにブロ−ドキャストされて対応するメモリユニット
のメモリセルにライトデ−タがラッチされる。
【0104】本例では、プロセッサが自身のメモリユニ
ット3006へデ−タを書き込む際のデ−タ及びアドレ
ス情報のパスをバッファ3004,3008の手前から
直接マルチプレクサ3005,3007へ入力(マルチ
プレクサのA入力)した後メモリユニット3006へ結
線するようにしており、メモリユニット3006への書
き込みパスとしてそのパスのみを用いる場合は、図2で
説明した様なバッファ3004,3008を介した後の
信号を用いたパスとは多少制御方式や条件が異なる。
【0105】ただし、図2においても、DMX200
5,AMX2007のC入力を選択すれば図3と同様の
パスとなる様に設計していることはすでに述べた。
【0106】この直接入力方式の良いところは、プロセ
ッサが共有メモリの内容を書き替える際、自身のメモリ
ユニット(共有メモリ)のデ−タ変更を他のプロセッサ
のメモリユニットの変更よりも早いタイミングで行なえ
る可能性があり、自身が変更した共有メモリの内容を変
更直後に再度読み出すような場合(フラグ管理やセマフ
ォ管理、自身でも使用する共有デ−タの保持等)、共有
メモリの変更に伴うレイテンシ(遅れ時間)が原因で過
去のデ−タが読めてしまうのを防ぐことが容易になる点
である。
【0107】ただし、この直接パスのみを用いて書き込
み制御し易いのはバッファ3004,3008が一段程
度で、他のプロセッサの共有メモリへの書き込み処理に
要するオ−バ−ヘッドをリカバリし、先にプロセッサの
バスサイクルを進めるための一時記憶に用いている様な
場合である。このような機能のバッファを設けた場合
は、コントロ−ルユニット3010がア−ビタ回路から
の許可信号を確認してから直ちにメモリユニット300
6にデ−タを書き込むように制御する必要がある。
【0108】また、図2のPIF2003の中に、自身
のメモリユニット3006へデ−タを書き込むまでライ
トアドレス13002とライトデ−タ13004を保持
しておくラッチ機能を設けておくと良い。そのようなバ
ッファ機能は、図2のPIF2003の機能の一部と考
えてPIFの中に設けておいた方が機能分担が明確にな
るかも知れない。なぜなら、共有バスシステムのアクノ
リッヂCSACKのみでバッファのラッチ機能のオン−
オフを制御可能であり、わざわざコントロ−ルユニット
3010で制御しなくても、CSACK信号をPIF2
003に入力しておけば済むからである。
【0109】本格的なバッファを設ける場合は、マルチ
プレクサ3005,3007に、図2と同様バッファを
介したパス(C入力)を設け切り換えて制御する方が合
理的であろう。
【0110】各プロセッサが、自身が変更したデ−タの
内容を自身の処理プログラム上で再度読み出して使用す
る場合に、一貫性を保って矛盾なく処理できるようにハ
−ドウェアで自動的にその一貫性を保証することは大切
なことである。なぜなら、大半のプロセッサは単体では
シ−ケンシャルに記述され実行されることを前提とした
プログラムを処理しており、リソ−スに対するデ−タ書
き替え及びデ−タ読み出し動作の前後関係に意味を持っ
ている場合が多いからである。
【0111】一方、あるプロセッサが他のプロセッサが
変更したデ−タを読み出す際、他のプロセッサがデ−タ
を変更した時刻とプロセッサがそのデ−タを実際に読み
出す時刻との差(情報の遅れ時間)が問題とならない情
報又はその扱い方、例えば連続性を持った時刻tに依存
した状態量(位置、速度、加速度等)をサンプリングタ
イムを最小時間単位として管理するとして、前記の情報
遅れ時間がサンプリングタイムに対して相対的に十分小
さいとみなして前記状態量を扱うことができれば、或い
は、サンプリングタイム側を前記の情報遅れ時間に対し
て十分大きく設定できれば、各プロセッサから見た共有
メモリ上の情報の変更時刻が多少ばらついたり、遅れた
りしても問題になることはないと考えて良い。
【0112】ただし、情報の遅れ時間(レイテンシ)が
無視できないほどサンプリングタイムを小さく設定した
りすれば処理パラメ−タの誤差が大きく問題となる。従
ってこの様に実時間性能が要求されるサンプリングタイ
ムの小さなアプリケ−ションを実行する場合は、情報の
遅れ(レイテンシ)を改善するハ−ドウェアア−キテク
チャが必要となる訳である。
【0113】十分なリアルタイム性能(実時間処理能
力)を有したプロセッサシステムとは、システム内の様
々なところで発生するレイテンシ(プロセッサ間及び外
部システムとプロセッサとの間の通信遅れや演算処理時
間に伴う遅れ等)が目標とするサンプリングタイムに対
して原理的に十分小さく抑え込まれているシステムを差
し、制御用のプロセッサシステムはこの性能特性が最も
重要視される。
【0114】この様な特性を有するリアルタイムプロセ
ッサシステムでは、大半の状態量情報は、ハンドシェ−
ク処理等によって、デ−タ通信に伴うプロセッサ間での
同期を取る必要がなく、同期について特に管理しない情
報伝達で十分な処理結果の精度を確保できる。もし、プ
ロセッサ間で確実なデ−タの受渡しが必要な場合は、前
述したような同期処理回路1000と組み合わせた共有
メモリシステム上での情報管理を行なえば良い。
【0115】前述した、プロセッサが自身のプログラム
処理の流れに矛盾なく、自身のメモリユニット3006
の内容が読み書きできるように保証する回路として、本
例では、アドレス比較回路3020を設け、プロセッサ
からライトアドレス13002及びバッファ3008に
蓄えられているライトアドレスとをそれぞれW0,W1
入力に取り込み、プロセッサからのリ−ドアドレス13
001をR入力に取り込んで、プロセッサからメモリユ
ニット3006へのリ−ドサイクル時にライトアドレス
W0及びW1とリ−ドアドレスRとの内容を比較して一
致するものが一つでもあれば、それらのライトアドレス
に対する共有メモリへのライトサイクルが全て終了する
までコントロ−ルユニット3010は13007に出力
しているRDY−N信号を非アクティブに保ってプロセ
ッサ側のリ−ドサイクルをペンディングして待たせる動
作を行なう。
【0116】図3において、他のプロセッサからの共有
メモリへのライトサイクル時の動作は、図2の場合と同
様であり、マルチプレクサ3005及び3007をそれ
ぞれB入力側が選択されるように、選択信号入力Sをコ
ントロ−ルユニット3010がそれぞれWDSEL信号
出力、WASEL信号出力を用いて制御する。また、バ
ッファ3004,3008の制御はコントロ−ルユニッ
ト3010がそれぞれCSDTL信号出力、CSADL
出力を用いて行なっている。
【0117】バッファ3004,3008の空き状態の
管理は、コントロ−ルユニット3010内にバッファが
何デ−タ分空いているかをその増減をカウントすること
により保持する回路を設けて行なっている。もちろんバ
ッファ側にこの機能を持たせ、そこからの情報をコント
ロ−ルユニット3010側に取り込んでも良い。コント
ロ−ルユニット3010の他の入出力信号の機能は、図
2の共有メモリコントロ−ルユニット2010の対応す
る入出力信号と等価と考えて良い。
【0118】次に、図3のメモリユニット3006中の
デコ−ダ3103,3104とメモリセル3101に関
する実施例を図4に示す。ここでは、メモリユニット3
006中のメモリセル群の1つを示している。
【0119】メモリユニットを構成するには、このメモ
リセル3101をデ−タビット数分用意してさらにその
組を複数用意してアドレス値(WA,RA)で指定でき
るようにする。マルチプレクサ部3102はトライステ
−トバッファを前記複数のメモリセル1つ1つに対応し
て必要なデ−タビット数分用意し、その組をアドレス値
で表現できる数の分だけ複数設ければ良い。なお、各組
の同じデ−タビットに対応する出力(Z−N)同志は結
線しておく。リ−ドアドレス値RAの指定によって前記
複数のデ−タの組のどれか1つを選択できる。
【0120】リ−ドデコ−ダ3103は、リ−ドアドレ
スRAと必要ならリ−ドイネ−ブルREを得て、イネ−
ブル信号(EN0,EN1−−−)のうちそのリ−ドア
ドレス値に対応するものを1つアクティブにする。
【0121】各トライステ−トバッファ部3102のリ
−ドデ−タ入力(RD)は、前記イネ−ブル信号(1レ
ベルでアクティブ)を受けて、もしそれがアクティブで
あればメモリセル3101の内容をZ−N(OUTPU
T)に出力し、非アクティブであればZをフロ−ト状態
に保つ。トライステ−トタイプのマルチプレクサ部31
02はRD入力が1のときメモリセルの内容(D入力の
値をWRをトリガ信号として記憶したもの)が反転され
てZに出力され、RD入力が0のとき前述した様にZ−
Nはフロ−ト状態となる。
【0122】リ−ドイネ−ブルRE(1レベルでアクテ
ィブ)は通常リ−ドアドレスが確定しデコ−ドそのもの
が完了した直後にイネ−ブル出力がアクティブとなるよ
うにして、イネ−ブル信号にハザ−ドが乗らない様にす
る役割がある。ハザ−ドが大きいと配線上のスキュ−等
と絡んでトライステ−ト出力Zのうち結線されているも
の同志の間で一時的にショ−トした状態が発生すること
もあるが、ハザ−ドが小さければRE信号を無くしても
特に支障は無い。
【0123】図2、図3に示した実施例では特にリ−ド
イネ−ブルREを設けてはいない。なお、図3に示した
ように、マルチプレクサ3102の部分が、完全なマル
チプレクサ構造を採っていれば、その選択入力Sにリ−
ドアドレスRAの値そのものか、それと等価の信号を直
接用いることも可能である。
【0124】ライトデコ−ダ3104は、リ−ドデコ−
ダ3103と同様、ライトアドレスWAによって示され
る1つのイネ−ブル信号ENに対応するメモリセルの組
のアクティブなライト信号WR(1レベルでアクティ
ブ)を生成する。イネ−ブル信号はEN0,EN1,−
−−から成り、各イネ−ブル信号は各メモリセルの組に
対応して、それら各組のライト信号WR入力に接続され
ている。
【0125】ライトデコ−ダ3104は、ライトイネ−
ブルWE信号を用いて、指定されているライトアドレス
WAが確定してデコ−ドが完了した時点で出力されるイ
ネ−ブル信号(1レベルでアクティブ)にハザ−ドが発
生しないようにWE(1レベルでアクティブ)がアクテ
ィブである期間以外はイネ−ブル信号をマスクすること
により、WR信号をメモリセルにデ−タを書き込むのに
適正なパルス幅だけ確実に目的とするメモリセルの組に
与える。
【0126】図4に示したメモリセル3101の構造
は、CMOSプロセスを用いた場合のものであり、トラ
ンスファ−ゲ−ト(トランスペアレントゲ−トとも言
う)タイプの2入力1出力のマルチプレクサを用いて、
その正転出力OUTをトランスファ−ゲ−トの一方の入
力IAにフィ−ドバックし、他方の入力IBにデ−タ
(D)を与え、選択信号(トランジスタのベ−ス入力信
号)SとしてWR信号を与えることによりゲ−トラッチ
を構成している。
【0127】すなわち、WRが1レベルのときD入力の
値が透過され、WRの立ち下がりでその値がラッチされ
る。WRをトリガ信号として記憶したD入力の値が、リ
−ド時にトライステ−トバッファ3102のZ−N出力
へ反転して出力される。
【0128】図5は本発明の共有メモリアクセスのタイ
ミングを示している。プロセッサ側のバスプロトコルの
基準となるプロセッサクロック(PCLK)と共有バス
側のバスプロトコルの基準となる共有バスクロック(B
CLK)とは同一周波数、同一位相を有しているとし、
いずれもシステムの基準となるシステムクロック(SC
LK)に同期して生成されている。なお、SCLKの周
波数は、PCLK,BCLKの2倍周期の周波数となっ
ている。前述したように、ブロ−ドキャスト方式の共有
メモリシステムが前提となっており、各プロセッサに対
応する各共有メモリシステム内の共有メモリ部には、本
発明の特徴であるリ−ドポ−トとライトポ−トを独立し
て有する2ポ−トメモリユニットを用いているとしてい
る。
【0129】図5では、共有バス側からのアクセス(い
ずれかのプロセッサが共有メモリシステムへライトサイ
クルを生成して、その情報が共有バスシステムを介して
ブロ−ドキャストされてきたもの)と、プロセッサ側か
らの共有メモリへのリ−ドサイクルとの競合状況を示し
ている。共有メモリ上でのライトポ−ト側のバス信号の
状況は、メモリライトデ−タ(MWD)、メモリライト
アドレス(MWA)、メモリライトイネ−ブル(MW
E)に示しており、リ−ドポ−ト側のバス信号の状況
は、メモリリ−ドデ−タ(MRD)、メモリリ−ドアド
レス(MRA)、リ−ドイネ−ブル(MRE)に示して
いる。
【0130】プロセッサ側のバスサイクルは2プロセッ
サクロック(2×PCLK)であり、共有メモリ上で必
要となるアクセスサイクルも実質的に2×PCLK周期
分必要であるとしている。ただし、実際の共有メモリへ
のアクセスタイムは、1.5×PCLK周期分程度で、
残りの0.5×PCLK周期分の時間はデ−タのホ−ル
ドタイムやタイミングの調整時間、プロセッサに対する
セットアップタイム等に必要な時間であると仮定してい
る。
【0131】図5では、プロセッサがステ−トS1の先
頭でPCLKに同期して共有メモリへの読み出しサイク
ル(リ−ドサイクル)を開始してプロセッサアドレス
(PA)を生成し、ステ−トS2で対象となるデ−タの
読み出し処理を指令するプロセッサリ−ドコマンド信号
(PRD−N)を生成している。一方、共有バス側は、
ステ−トS0の先頭でBCLKに同期して、共有バスア
ドレス(BA)と共有バス側からの書き込みサイクルが
アクティブになったことを示すビジ−信号(CSBUS
Y−N)又は共有バスライト信号(BWT−N)、及
び、共有メモリに書き込むべき共有バスデ−タBDとを
生成する。
【0132】本発明では、BD及びBAは他のプロセッ
サの共有メモリシステム101nから共有バスシステム
にほぼ同じタイミングで出力され、CSBUSY−Nは
(0レベルでアクティブ)ア−ビタ回路1020からの
BUSY信号より生成され、BD,BAよりは少し先行
したタイミングで出力される。なお、CSBUSY−N
は共有バスが使用されていることを示す信号で、図2で
説明したように、共有バスシステムのコントロ−ル信号
の情報の1つである。
【0133】2ポ−ト共有メモリを備えたことによりプ
ロセッサ側の共有メモリへのリ−ドサイクルは待たされ
ずにステ−トS2の最後で終了しており、この時共有バ
ス側からのBAと同じ共有メモリ上のアドレスをプロセ
ッサがPAによって指定していれば、BDの値がそのま
まプロセッサに読み出されるべきデ−タPDとして、R
DY−N信号のタイミングに応答してS2の最後のポイ
ントでプロセッサ側に読み出される(共有メモリからの
読み出し期間はREがアクティブな間)。
【0134】共有バスシステム側からのライトサイクル
は、共有メモリ上でもプロセッサ側のリ−ドサイクルよ
り1PCLK周期分先行して、すなわちステ−トS0内
で待たされずに開始され、ステ−トS1で共有メモリ上
のライトコマンド(WE)が生成されておりS1の中で
すでに共有メモリ上にBAに対応するBDが確定してい
る。なお、本例ではWEが1レベルのとき共有メモリ上
のBAに対応するアドレスにBDの値が透過し、WEの
立ち下がりでそのアドレスにBDの値がラッチされる。
【0135】従って、S1以後でBAに対応するアドレ
スのデ−タをプロセッサが読み出すと、前述したように
BDが読める訳である。仮に図5中に点線で示したよう
に、プロセッサがステ−トS0の先頭でアクセスを開始
した場合は、完全に共有バス側からのライトサイクルと
プロセッサ側からのリ−ドサイクルとが同一タイミング
で重なる、すなわち、REとWEが同一タイミングで出
力されるが、どちら側のサイクルも待たされずに並列に
処理され、最短時間で終了している。
【0136】この様に、本発明を用いると、共有メモリ
上における共有バス側のバスサイクルとプロセッサ側の
バスサイクルとを完全に並列処理でき、非常にレイテン
シの短いプロセッサ間デ−タ通信を共有メモリ上で実現
することができる。
【0137】以上からわかるように、2ポ−ト共有メモ
リを用いた本発明により、特にプロセッサ側のアクセス
スル−プット向上効果と共有メモリを介したプロセッサ
間のデ−タ通信レイテンシの大幅短縮効果とが得られる
ことがわかる。なお、プロセッサ間のデ−タ受け渡しに
関するいくつかの矛盾を回避するためには、図2、図3
ですでに解説したようなプロセッサ側のバスサイクルと
共有バス側のバスサイクルのインタ−ロックや局所的な
同期処理、及び、図1に示したようなプロセッサ間同期
処理回路と連動したプロセッサ間の並列処理管理を行な
えば良い。
【0138】次に、PCLK,BCLKは共にSCLK
に同期しており図5に示した実施例と同様であるが、本
発明の様に2ポ−ト共有メモリを用いない場合の実施例
のタイミングチャ−トを図6に示す。プロセッサ側及び
共有バス側のアクセス条件は図5と全く同様である。特
開平5−2568号公報に開示されたブロ−ドキャスト
方式の共有メモリシステムは本例のタイプである。
【0139】図6から明確にわかるように、共有メモリ
のアドレス(MA)とデ−タ(MD)が1組しか存在し
ないため、まず、ステ−トS0の中央付近で共有バス側
のアドレスBA,デ−タBDが共有メモリに対してアク
ティブとなり、ステ−トS2の中央付近まで共有メモリ
を専有している。ライトイネ−ブルWEは図5と同様の
タイミングで出力されており、ステ−トS2の先頭で共
有メモリ上にBDの値がラッチされる。
【0140】基本的に本実施例では共有バス側からのラ
イト動作をプロセッサ側のリ−ド動作より優先する競合
制御が行なわれる。そのため、共有バス側のライトバス
サイクルとプロセッサ側のリ−ドバスサイクルとが競合
する場合、プロセッサ側のバスサイクルの方が共有バス
側のバスサイクルが終了するまで待たされる。図6の例
でも、ステ−トS1で共有メモリへリ−ドアクセスに来
たプロセッサ側のバスサイクルが1ステ−ト分(PCL
Kの周期分)だけ待たされ、ステ−トS3の最後で共有
メモリ上のデ−タPDを得た後バスサイクルを終了して
いる。
【0141】共有メモリ上で見ると、ステ−トS0の中
央付近からステ−トS2の中央付近までの2サイクル分
共有バス側のライトサイクル(BA,BD,MWEアク
ティブ)が実行され、その直後プロセッサ側のリ−ドサ
イクル(PA,PD,MREアクティブ)が実行されて
いる。
【0142】共有メモリコントロ−ルユニットは、CS
BUSY−Nがアクティブの期間はこれに応答して共有
バス側のバスサイクルを共有メモリに割り付け、CSB
USY−Nが非アクティブ(Hiレベル)に転じるタイ
ミングに応答してプロセッサ側のバスサイクルに切り換
える。なお、点線で示したように、プロセッサ側のバス
サイクルがステ−トS0で開始された場合、プロセッサ
側のバスサイクルの待ち時間は2ステ−ト分(2×PC
LKの周期分)に増え、プロセッサ側のアクセスオ−バ
−ヘッドが増大する。
【0143】以上から、図5の例と比較すると、プロセ
ッサ側のアクセスオ−バ−ヘッドと共有バス側からプロ
セッサ側への共有メモリを介したレイテンシとが1〜2
PCLK周期分増大していることがわかる。
【0144】図7は、ブロ−ドキャスト方式の共有メモ
リシステムで従来一般的に用いられているPCLK,B
CLKが非同期状態のシステムである。各プロセッサに
対応するそれぞれのPCLKの位相もお互いに同期して
いないのが一般的であり、プロセッサの種類が異なる場
合はそれらの周期も異なる場合が多い。その他の条件は
図5、図6と同様である。
【0145】この様な、プロセッサ間及びプロセッサと
共有バスシステム間とで非同期な基準クロックを用いて
制御されるシステムでは、各所で非同期の同期化処理を
行ない、様々なレベルでのメタ状態の発生を回避する必
要が生ずる。本例では、共有バス側のバスサイクルをP
CLKで同期化して共有メモリに対するデ−タの書き込
みタイミングがプロセッサ側のアクセスタイミングに対
して正しい関係を保てるよう制御している。すなわち、
これにより、プロセッサ側のバスサイクルに対して本来
非同期な共有バス側のバスサイクルを同期化する処理が
行なわれたことになる。
【0146】実際には、CSBUSY−NやBWT−N
信号をPCLKをトリガクロックとした2段以上のフリ
ップフロップを通過させることにより、PCLKに対し
て同期化しており、1〜2PCLK同期分のオ−バ−ヘ
ッドを伴う。このオ−バ−ヘッドにより、共有メモリ上
で共有バス側からのライトサイクルが開始されるのはス
テ−トS2の先頭からであり、それが終了するのは2ス
テ−ト後のステ−トS3の最後である。なお、同期化が
完了したらその情報を何らかの形で共有バス側に知ら
せ、共有バスサイクルを発行している元の共有メモリシ
ステムはその情報を利用して共有バスサイクルの終了処
理を行なう。本例では共有バスサイクルの同期化情報と
してBSYNC−N信号を共有バスシステム側に返送す
る。
【0147】共有バスサイクルを生成しているプロセッ
サの共有メモリシステムは、BSYNC−Nがアクティ
ブ(0レベルがアクティブレベルで信号の変化タイミン
グはPCLKに同期しているとしている)になるタイミ
ングに応答して共有バスシステムに出力中のバスサイク
ルを終了する。ここでは、BSYNC−Nから内部的に
同期信号を生成し、それをBCLKを使って非同期の同
期化処理を行ないBCLKに同期化した後、その変化タ
イミングに応答してバスサイクル、すなわち、BD/B
Aの出力をフロ−トにすると共にBWT−N又はCSB
USY−Nを非アクティブに戻す。
【0148】これによって、共有バスシステム側も1〜
2BCLK同期分のオ−バ−ヘッドを生じていることが
わかる。
【0149】結果的に図7の例では、プロセッサ側のリ
−ドサイクルが終了するのは、BD,BA,MWE信号
により共有バス側のバスサイクルが共有メモリ上で終了
するステ−トS3の最後からさらに2ステ−ト後のS5
の最後のポイントである(そのリ−ドサイクルに対応す
るMRE信号はS5の先頭でアクティブになりS6の先
頭で非アクティブになっている)。すなわちプロセッサ
側で3ステ−ト(3×PCLKの周期分)の待ち時間が
生じていることになる。
【0150】図5に示した本発明のアクセスタイミング
と比較すると、プロセッサ側、共有バス側双方のオ−バ
−ヘッドについても、またプロセッサ間の共有メモリを
介した通信レイテンシの点でも、本発明の方が従来シス
テムよりはるかに優れていることがわかる。
【0151】次に、図8に本発明の大きな特徴である同
期信号(SYNCOK)と連動したレディ信号生成回路
の実施例を示す。本回路は、図2で説明したように、プ
ロセッサ間同期処理回路1000と連動して動作する
際、共有メモリ上のデ−タを、関連する処理を実行する
プロセッサ間で矛盾なくやり取りするための局所同期機
能を実現する。
【0152】すでに詳細機能については述べたように、
プロセッサによるタスク処理の終了を受けてプロセッサ
間同期処理回路1000での同期処理が完了しSYNC
OK信号がアクティブになったとしても、通信遅れのた
めに共有メモリ上に次のタスク処理で必要な情報が存在
していない状態が発生する可能性がある。本回路は、そ
の状況を回避し、必要とする情報が確実に共有メモリか
ら得られるように、共有メモリコントロ−ルユニット2
010と同期処理回路1000との間でさらに局所的な
同期処理(インタ−ロック処理)を実行して、共有メモ
リ上でのデ−タ授受の前後関係に矛盾が生じないように
管理する。
【0153】基本的には、前述したように、SYNCO
Kがアクティブになった時点でCSBUSYがアクティ
ブならばCSBUSYが一度非アクティブに戻るまで、
プロセッサが共有メモリの内容を読み出すことを禁止す
る。具体的には、上記の条件が成立したときプロセッサ
側の共有メモリへのリ−ドサイクルをRDY−N信号を
非アクティブに保つことによって引き延ばしてプロセッ
サ側を待たせ、インタ−ロック処理を行なう。
【0154】関連する処理を実行する各プロセッサは、
同期処理が完了しSYNCOK(1レベルでアクティ
ブ)がアクティブに転じた時点で、プロセッサは、少な
くともすでに処理したタスクでの必要な処理結果を共有
メモリへストアするプロセッサ側のライトサイクルの発
行を全て終了しているはずである。
【0155】ゆえに、各プロセッサの共有メモリシステ
ム内(ライトバッファ2004,2008等の中)に保
持されているすでに発行済みの前記プロセッサ側のライ
トサイクルに対応する共有メモリへの実際のライトサイ
クルが全て完了するまでは、すなわち、全てのプロセッ
サの共有メモリ2006上に一致した内容の情報が現わ
れその情報を各プロセッサが得られるようになるまで
は、各共有メモリの内容を一致させるための情報を共有
バスシステムを介して各プロセッサに対応する全共有メ
モリシステムへブロ−ドキャストするためのライトサイ
クルが共有バスシステム上に生成され続ける。
【0156】それを受けて共有バスシステムがアクティ
ブであることを示すCSBUSY−Nもアクティブに保
持され続けるため、前述したロジックによりインタ−ロ
ックが可能となる訳である。図8の実施例を用いてこの
インタ−ロック機能のロジックを以下に詳しく説明す
る。
【0157】CSBUSY−Nは0レベルでアクティブ
な信号であり、共有バス上のコントロ−ル信号の1つで
あるア−ビタ回路1020からのBUSY信号に応答し
て生成されることはすでに述べた。これをインバ−タ8
001を介してR−Sフリップフロップ8000の一方
の入力R−Nに接続しており、CSBUSY信号が非ア
クティブ(初期状態は非アクティブである)のときは無
条件でZ−Nに1が出力され、相対的にZに0が出力さ
れる。以上の状態が初期状態である。
【0158】なお、他方の入力S−NにはNANDゲ−
ト8006の出力が接続されており、NANDゲ−ト8
006はCSBUSY信号がアクティブ状態のとき、S
YNCOK信号がアクティブに転じたその立ち上がりの
エッヂを回路8005の信号とSYNCOK信号の状態
とから検出して、R−Sフリップフロップ8000のS
−N入力にパルス(Loパルス)を生成する。
【0159】そのパルスが生成されると、R−Sフリッ
プフロップ8000はセットされ、Z出力に1がラッチ
される。ただし、初期状態でSYNCOK信号を0レベ
ルにしておけば、NANDゲ−ト8006は1レベルを
出力した状態となり、かつCSBUSY信号は0レベル
が初期値であるため、R−Sフリップフロップ8000
のZ出力は0にリセットされた状態となって、前記の初
期状態と矛盾しない。
【0160】NANDゲ−ト8002は、共有メモリが
アクセスされたことを示すCSEN信号がアクティブ
で、R−Sフリップフロップ8000がNANDゲ−ト
8006からのパルスによってセットされてZに1レベ
ルが出力され、かつ、CSBUSY信号がアクティブの
とき0レベルを出力する。これが、後段のNANDゲ−
ト8003を無条件で1レベル、すなわち、RDY−N
を非アクティブにすることにより、インタ−ロックの条
件が揃ったときプロセッサ側からの共有メモリへのアク
セスを一時的に禁止するように動作する。
【0161】本例では、プロセッサが共有メモリにアク
セスするとリ−ドサイクル、ライトサイクルいずれの場
合にも、前記インタ−ロック機能が働くように設計して
いるが、リ−ドサイクル時のみにその動作をアクティブ
にしたければ、プロセッサからのリ−ドイネ−ブル信号
がアクティブな条件をNANDゲ−ト8003でデコ−
ドする様にしておけば良い(アクティブレベルが1のリ
−ドイネ−ブル信号REをNANDゲ−ト8002の入
力に加える)。
【0162】なおNANDゲ−ト8003はCSEN信
号がアクティブになったときにのみ、すなわち、共有メ
モリシステムにプロセッサがアクセスしたときにのみ、
そのプロセッサに対してアクティブなRDY−N信号を
返送するようになっている。
【0163】また、NANDゲ−ト8009は、共有メ
モリシステムがアクセスされてCSENがアクティブレ
ベル(1レベル)になっていて、かつ、SYNCOKが
非アクティブレベル(0レベル)になっていれば(SY
NCOK信号をインバ−トした信号をNANDゲ−ト8
009の入力に接続している)0レベルを出力し、それ
がNANDゲ−ト8003の入力を駆動してその出力を
無条件でRDY−N信号を非アクティブレベル(1レベ
ル)に設定する。
【0164】すなわち、プロセッサが共有メモリシステ
ムをアクセスしたとき同期処理回路1000でまだその
プロセッサに対する同期処理が完了していないならばプ
ロセッサ側の共有メモリへのアクセス動作を待たせるよ
うに働く。これは特開平5−2568に開示された局所
同期機能と等価である。もちろん、NANDゲ−ト80
09でリ−ドイネ−ブル信号(RE)のアクティブ状態
を検出するようにして、共有メモリへの読み出し動作が
生じたときにのみこの機能が働くように設計しても良
い。
【0165】この様に、本発明のインタ−ロック機能
は、特開平5−2568で開示されている従来の局所同
期機能にリンクされた形で、本発明の共有メモリシステ
ムと連動したプロセッサ間同期処理をサポ−トしている
ことがわかる。
【0166】インタ−ロックが解除され、本発明の局所
同期処理が完了する条件は、CSBUSY信号が非アク
ティブに転ずることである。CSBUSY信号が非アク
ティブ(0レベル)になると無条件でNANDゲ−ト8
002の出力は1になり、R−Sフリップフロップ80
00のZ出力も0レベルにリセットされて初期状態に戻
され、インタ−ロックが解除される。なお、NANDゲ
−ト8002に入力されているSYNCSEL(1レベ
ルでアクティブ)は、このインタ−ロック回路による局
所同期処理機能を有効(アクティブ)にするか否かを決
める選択信号である。
【0167】CSBUSY信号は、図8に点線で示した
ように、PCLKをトリガクロックとしてフリップフロ
ップを何段か通してから用いても良い。図8では、フリ
ップフロップ8004を一段通して使用する例を開示し
ている。これにより、CSBUSY信号にハザ−ドが乗
っている場合はそれを除去することが可能である。また
この方法で、CSBUSY信号を適切な時間遅らせるこ
とにより、インタ−ロックがかかっている時間が、共有
メモリへの必要なすべてのデ−タの書き込みが有効とな
るまで、すなわち、リ−ドポ−ト側からそれらが確実に
読み出せるようになるまでの時間を十分カバ−できる様
に設定することが可能である。
【0168】本例では、1PCLK周期分CSBUSY
信号を遅らせることにより、インタ−ロック期間を本来
のCSBUSY信号が非アクティブになる時刻より1P
CLK周期後にずらしている。そして、インタ−ロック
が解除された直後には共有メモリ上で全ての必要なデ−
タの読み出しが有効となるようにコントロ−ルユニット
を設計している。つまり、本実施例の場合、インタ−ロ
ックが解除されてRDY−N信号がアクティブとなりプ
ロセッサのバスサイクルが終了する時点より前のタイミ
ングで、必要な共有メモリ上での最後のライトサイクル
が生成されて、ライトイネ−ブル(WE)とライトアド
レス、ライトデ−タ(WD)等の信号がアクティブにな
っていれば良い。
【0169】これは、本来のCSBUSY信号が非アク
ティブになるタイミングから考えると、本実施例では、
そのタイミングの直後に続く2つのステ−ト(1ステ−
ト=1PCLK期間分)のうちいずれかのステ−トで共
有メモリ上での最後のライトサイクルが生成されていれ
ば良いということになる。
【0170】図に示したように、ORゲ−ト8007を
用いてフリップフロップ8004の出力とCSBUSY
信号とのOR論理をとりその出力をフリップフロップ8
004の出力の代わりに用いれば、インタ−ロックの解
除時刻はフリップフロップ8004を用いた場合とほぼ
同じに保ったまま、インタ−ロックの開始条件をフリッ
プフロップ8004を用いない場合とほぼ同じに設定で
きる。これによって、SYNCOKがアクティブに転じ
たときにペンディングされている共有メモリへのライト
サイクルが存在するにもかかわらず、ゲ−ト8006の
入力やR−Sフリップフロップ8000のR−N入力に
対する信号8008(CSBUSY信号に応答して得ら
れた信号)の状態が、信号の遅延によってその時点でま
だアクティブ(1レベル)になっていないことが無いよ
うに設計することが容易となる。
【0171】本発明の共有メモリへのアクセスタイミン
グに関する別の実施例を図9に示す。図5の例では、プ
ロセッサ側と共有バス側との間の共有メモリ上でのアク
セス状態を示したが、バスサイクルの条件として1バス
サイクル当たり最小2プロセッササイクル(2×PCL
K周期分)の時間が必要であると仮定していた。図9の
例では、最小1プロセッササイクル(1PCLK周期
分)でプロセッサ側、共有バス上、共有メモリ上の各バ
スサイクルを構成すると仮定している。
【0172】ただし、アドレスを先行して出力し、後続
のステ−トでデ−タの入出力を実行するパイプラインバ
スサイクル(アドレスバスとデ−タバスがそれぞれ1プ
ロセッササイクルでそれぞれ独立に駆動され、かつ互い
に1プロセッササイクル分ずれている)によってアドレ
スアクセス時間を比較的長い時間確保できるように工夫
している。
【0173】本実施例のパイプラインバスサイクルの特
徴は、次に出力すべきバスサイクルに対するアドレス
(ADDR)を最低1ステ−ト(1PCLK周期)分出
力した後、1つ前のバスサイクルに対するRDY−N信
号が返送されてそのバスサイクルが終了していれば、さ
らにその次のアドレス値(既にプロセッサ側で準備でき
ているなら)を出力していく。
【0174】ある1つのアドレスに対応するデ−タのや
りとりに関しては、そのアドレスが出力されたステ−ト
の次のステ−トの最後でプロセッサとの間での入出力が
実行される。すなわち、アドレスバスの動作に対してデ
−タバスの動作は1ステ−ト分遅れており、デ−タがプ
ロセッサとの間でやりとりされるステ−トの最後のポイ
ントがそのデ−タの前記アドレスに対するバスサイクル
の終了時点となっている。
【0175】プロセッサが次のアドレスを出力できる状
態にあれば、前記デ−タの出力されるステ−トですでに
次のアドレスのアドレスバスへの出力が可能となってお
り、デ−タの入出力と並行して次から次へとパイプライ
ン的にアドレスを先行出力していくことができるので、
パイプラインアドレッシング又はパイプラインバスサイ
クルと呼ぶ訳である。
【0176】例えば、図9のプロセッサ(A)におい
て、アドレス(ADDR)A1は、ステ−トS0で2つ
以上前のバスサイクルが既に終了しているため、プロセ
ッサがアドレス値A1を準備できたステ−トS0で直ち
に出力され、それはライトサイクルなので続いてステ−
トS1でプロセッサから外部へ書き込むべきデ−タD1
を出力している。
【0177】ステ−トS1では1つ前のバスサイクルも
既に終了しているため、プロセッサはA1を1ステ−ト
分出力した後直ちにA1に対応するデ−タの出力D1と
並列に次のアドレスA3(読みだしサイクル)を出力し
ている。デ−タD1に対するRDY−N信号はステ−ト
S1の最後のポイントでプロセッサ(A)に取り込ま
れ、それを受けてステ−トS2ではさらに次のアドレス
情報A5(書き込みサイクル)がA3に対するデ−タの
入力動作not D3と並列に実行されている。
【0178】以上のように、リ−ドサイクルとライトサ
イクルが混在しても1プロセッササイクル単位ごとにア
ドレスバスとデ−タバスとが並列かつパイプライン的に
駆動され、実質1ステ−ト/バスサイクルを実現するこ
とが可能となっている。
【0179】図9の実施例では、プロセッサ間同期処理
回路と連動してタスク単位のデ−タの授受を矛盾なく確
実に行なうというのではなく、同期について管理せずプ
ロセッサ間で情報を自由にやりとりする場合の共有メモ
リシステム上のアクセス状況を、2台のプロセッサの場
合(プロセッサAとB)を例にとり示している。少ない
スペ−スで共有メモリへのアクセスを詳しく表現するた
めに、全てのサイクルが共有メモリへのリ−ド又はライ
トサイクルであり、他の一般のリソ−スやプロセッサ間
同期処理回路1000などへのアクセスはこれと並列に
実行されていると仮定している。
【0180】この様なプロセッサシステムは、メインプ
ロセッサと別に専用のプロセッサを付加したり、共有メ
モリシステムへのアクセスのためのバスシステムと他の
一般のリソ−スへのアクセスのためのバスシステムとを
別々に有する高度な処理系を構成すれば実現可能であ
る。
【0181】デ−タD1,D2,D5はプロセッサ
(A)側から共有メモリへ書き込まれる情報で、デ−タ
D3,D4はプロセッサ(B)側から共有メモリ書き込
まれる情報であるとしており、読み出すのもそれらのデ
−タのいずれかであるとしている。まだ必要なデ−タが
共有メモリに書き込まれておらず、1つ前のデ−タ(以
前に書き込まれたデ−タ)が読める場合は、not D
nといったように前に”not”を付けた表現としてい
る。
【0182】リ−ドサイクルかライトサイクルかはアド
レス(ADDR)とほぼ同じタイミングで出力されるR
D/WT信号(Hi−RD,Lo−WT)で示してい
る。ライトサイクルが生成されると共有バスを介して共
有メモリを書き替えるための情報(アドレス、デ−タ、
BUSY信号など)が全ての共有メモリシステムにブロ
−ドキャストされて各プロセッサの共有メモリ上でライ
トサイクルが生成され、その内容が変更される。
【0183】図中のプロセッサのバスサイクルのところ
には、共有メモリへのライトサイクルには(W),リ−
ドサイクルには(R)と付している。共有バス上のバス
サイクルは必然的にライトサイクルのみとなっており、
バスサイクルが生成されている期間はCSBUSY−N
信号(Loアクティブ)がアクティブ状態となってい
る。
【0184】共有バス上では、アドレス情報とデ−タ情
報とがプロセッサ側のアドレス及びデ−タ出力タイミン
グよりおよそ1/2ステ−トずれて出力され、CSBU
SY−N信号は共有バス上でのアドレスとほぼ同じタイ
ミングで出力されている。共有バス上のバスプロトコル
の状態は、完全にプロセッサクロック(PCLK)に同
期して管理されており、例えば具体的には、プロセッサ
(A)側のステ−トS0で出力されているアドレスA1
は共有バス上ではステ−トS1の先頭付近から1ステ−
ト分出力され、プロセッサ(A)側のステ−トS1の先
頭から出力されているデ−タD1は共有バス上ではステ
−トS1の中央付近から1ステ−ト分出力される。
【0185】共有メモリ上のバスプロトコル状態もプロ
セッサクロック(PCLK)に同期して管理されてお
り、図9の中では、主としてプロセッサ(A)及び
(B)それぞれに対応するライトデ−タ/リ−ドデ−タ
の状態と、ライトアドレス及びライトイネ−ブル(W
E)が生成されるタイミングとを示している。
【0186】次に共有メモリ上でのバスサイクルについ
て詳しく述べる。共有バス上のCSBUSY−N信号が
アクティブに転ずると、そのステ−トの中央付近で、共
有バス上のアドレス情報が共有メモリに対して有効とな
る様にゲ−トされて共有メモリのライトポ−トにライト
アドレス(WA)として約1ステ−ト期間分与えられて
いる。このタイミングを得るには、PCLKの反転(P
CLK−N)クロックとして用いてゲ−トラッチにより
共有バス上のADDRの内容をステ−トの中央でゲ−ト
し、情報を透過しておいてステ−トの終わりでラッチ
し、さらに約1/2ステ−ト期間保ってから共有メモリ
にライトアドレス(WA)として与えれば良い。
【0187】一方、共有バス側からのライトデ−タ情報
は、PCLKをクロックとして用いてゲ−トラッチによ
り共有バス上のDATAの内容をステ−トの先頭でゲ−
トし情報を透過しておいてステ−トの中央でラッチし、
さらに約1/2ステ−ト期間保ってから共有メモリにラ
イトデ−タ(WD)として与えれば良い。
【0188】ライトイネ−ブル信号は、ライトデ−タ
(WD)を共有メモリに与えるタイミングすなわちステ
−トの先頭から約1/2ステ−ト分アクティブになる様
に、CSBUSY−N信号に応答して生成する。WEが
アクティブの期間、WAの値が共有メモリに対して有効
となっているようにタイミングの調整を行なっている。
【0189】本発明では、共有メモリへのライトサイク
ルは、全てのプロセッサの共有メモリシステムに対して
共通にかつほぼ同じに生成されるものとしている。
【0190】共有メモリ上でのリ−ドサイクルは、すで
に述べたようにリ−ドポ−トを用いてライトサイクルと
並列に実行され、かつ各共有メモリ上で対応するプロセ
ッサのバスサイクルに応じた全く別々の内容のサイクル
が生成される。
【0191】図9において、WT(A1)/RD(A
3),WT(A1)/RD(A1),WT(A5)/R
D(A4),WT(A3)/RD(A3),WT(A
4)/RD(A4),WT(A4)/RD(A1)の記
号を付したサイクルでリ−ドサイクルとライトサイクル
が並列に生じている。また、リ−ドサイクルのみが生じ
ている場合には(R),ライトサイクルのみが生じてい
る場合には(W)と付してある。
【0192】より詳しい情報として、各サイクルの上段
又は下段に、リ−ドサイクルの場合RD(Ax),ライ
トサイクルの場合WT(Ax),ライトサイクルとリ−
ドサイクルとが並列に生じている場合WT(Ax)/R
D(Ay)と表示しておいた。Ax,Ayはプロセッサ
から送られてきた書き込むべきデ−タ情報Dx,Dyに
対応するアドレス情報である。
【0193】リ−ドサイクルにおける共有メモリ上での
アドレス(RA)やデ−タ(RD)の生成タイミングは
ライトサイクルと比較すると、デ−タの入出力方向が逆
になる(リ−ドはプロセッサへ、ライトはプロセッサか
らそれぞれデ−タを授受する)ことを除けばライトサイ
クルの場合とほぼ同じと考えて良いが、リ−ドイネ−ブ
ル(RE)が存在する場合、それがアクティブに転ずる
タイミングは、リ−ドデ−タRDがアクティブになるス
テ−トの先頭又は中央付近からそのステ−トの最後のポ
イントまでである。
【0194】ここで、プロセッサからのライトサイクル
に対応して共有メモリ上のデ−タ内容が変更され、実際
に他のプロセッサからそのデ−タが読み出せるようにな
るまでのタイミングについてみてみる。本例では、プロ
セッサ(A)側がアドレスA3に対応するデ−タD3を
読み出す操作を2回(それぞれS1,S4でアドレスの
出力を開始している)、A4に対応するデ−タD4を読
み出す操作を2回(それぞれS3,S5でアドレスの出
力を開始している)行っている。
【0195】しかし、プロセッサ(B)が共有メモリ上
のアドレスA3の内容を変更するためのバスサイクルを
生成するのはステ−トS3の時点であり、デ−タD3は
ステ−トS4の先頭でプロセッサ(B)から出力され、
実際に共有メモリ上でD3が有効になって、プロセッサ
(A)側からの読み出しが可能となるのはステ−トS5
の先頭でライトイネ−ブル(WE)がアクティブになっ
た時点からである。
【0196】同様に、プロセッサ(B)が共有メモリ上
のアドレスA4の内容を変更するためのバスサイクルを
生成するのはステ−トS4の時点であり、デ−タD4は
ステ−トS4の先頭でプロセッサ(B)から出力され、
実際に共有メモリ上でD4が有効となり、プロセッサ
(A)側からの読み出しが可能となるのはS6の先頭で
ライトイネ−ブル(WE)がアクティブとなってからで
ある。
【0197】プロセッサ(A)はS2,S5の各ステ−
トでアドレスA3に対応するデ−タD3を、S4,S6
の各ステ−トでA4に対応するデ−タD4を読み出して
いるが、ステ−トS2ではプロセッサ(B)が書き換え
ようとしているD3の値は読めず、以前に設定されてい
る共有メモリ上のアドレスA3の内容が読み出せること
になる。D4の値に関しても、プロセッサ(A)はS
4,S6の各ステ−トで共有メモリから読み出している
が、S4ではプロセッサ(B)が書き換えようとしてい
るD4の値は読めず、以前に設定されている共有メモリ
上のアドレスA4の内容が読み出せる。
【0198】そして、プロセッサ(B)からのD3が共
有メモリ上に反映されるステ−トS5では、実際のD3
の値がプロセッサ(A)によって読み出せており、同様
に、プロセッサ(B)が設定した実際のD4の値はステ
−トS6でプロセッサ(A)によって読み出せている。
【0199】本例から、プロセッサ(B)がデ−タを出
力してからプロセッサ(A)が共有メモリを介してその
デ−タを内部に取り込むまでのレイテンシは2ステ−ト
であることがわかる。このうち共有メモリシステム側で
のレイテンシは1ステ−ト分(1PCLK周期分)であ
り、共有メモリを用いた非常に効率の良いデ−タの共有
メカニズムが実現できていることがわかる。
【0200】図9からわかる様に、共有メモリ上のリ−
ドサイクル及びライトサイクルが完全にアクセス競合が
発生しない状態で動作していることがわかる。また、ブ
ロ−ドキャスト方式によって共有バス上でやりとりされ
る情報もライトサイクルのみとなっており、かつ、共有
メモリ上でのバスサイクルにアクセス競合等によるアク
セス時間の損失やオ−バ−ヘッドが生じていないため、
共有バス側もプロセッサ側も1ステ−トでバスサイクル
を終了することが可能となっている。
【0201】このことは、理論的に最高効率の共有メモ
リシステムを提供できていることを示している。例え
ば、本例のバス効率を有するプロセッサシステムが、す
べてのデ−タの入出力を共有メモリシステムを介して行
なうような共有メモリシステムに対して最もシビアな状
態をもたらすアプリケ−ションをそのプロセッサシステ
ムの上で実行した場合でも、3台のプロセッサまでなら
ば、全くオ−バ−ヘッド無く処理できるレベルの能力を
本発明の共有メモリシステムは有していると考えられ
る。
【0202】これは、全バスサイクルにおいてライトサ
イクルの占める割合の平均はおよそ30%程度であるこ
とが知られており、3台のプロセッサ分のライトサイク
ル数ならば、たとえそれらがすべて共有メモリへのアク
セスであったとしても、本発明の共有バスシステムは十
分吸収できる(共有バスシステムはライトサイクルのみ
をサポ−トするので、システム上でのライトサイクルの
発生の頻度がその性能を決定する)レベルにあるからで
ある。
【0203】次に、本共有メモリシステムを用いた場
合、現実のマルチプロセッサシステムでは何台までのプ
ロセッサを有効に接続可能かを検討しておく。
【0204】本共有メモリシステムを用いることによ
り、3台まではシステムの性能にほとんど影響無くプロ
セッサを接続可能な事は前述した検討にて示した。しか
し、この検討では、システム内の各プロセッサが共有メ
モリシステムに対して最悪に近い条件でのアクセスをラ
ンダムに行なった場合を想定しており、しかも、プロセ
ッサはすべてのプロセッササイクルで共有メモリを常に
アクセスしていると仮定しているため、現実的とは言え
ない。
【0205】実際には、プロセッサの内部命令処理(例
えばレジスタ間演算)が平均1プロセッサクロックで処
理され、メモリ等、外部へのアクセスを伴う処理が最良
2プロセッサクロック(内1プロセッサクロック分が外
部デ−タアクセス時間)で処理されるとすると、50%
の命令が外部アクセスを伴うとして、1命令当たり平均
1.5プロセッサクロックの処理時間となる。
【0206】すなわち、1命令当たり、外部デ−タのア
クセスに要する平均のプロセッサクロック数は0.5ク
ロックであり、全バスバンド(1デ−タ当たり1プロセ
ッサクロックでアクセスできるとしている)に占める割
合は33%(0.5/1.5×100%)である。そし
て、外部アクセスを伴う命令のうち、密結合のマルチプ
ロセッサシステムにおいて、一般的なアプリケ−ション
では10%〜30%が共有メモリシステムへのアクセス
となる。
【0207】疎結合のシステムでは、一般的に、共有メ
モリシステムへのアクセスは僅か1%以下であることが
多いが、従来のシステムではそれでも通信オ−バ−ヘッ
ドやアクセス競合によるシステムの性能損失が無視でき
ないレベルにあるのが現状である。従来の密結合マルチ
プロセッサシステムでは、共有メモリシステムへのアク
セス頻度が10%程度のものでも3〜4台のプロセッサ
を接続すると著しくシステム性能が低下してしまう。
【0208】上記のプロセッサ性能を前提とするという
条件下で本共有メモリシステムを用いた場合、プロセッ
サ側からみた共有メモリシステムへのランダムアクセス
頻度が前外部アクセスの10%程度とし、その30%が
ライトサイクルであると仮定すれば、本共有メモリシス
テムの特性上、実質的な共有メモリへのアクセス頻度
(共有バスシステムの専有率に等しい)は、1プロセッ
サ当たり僅か1%(0.5×0.1×0.3/1.5×
100%)程度となる。共有メモリシステムへのランダ
ムアクセス頻度が全外部アクセスの30%程度と仮定し
ても、実質的な共有メモリへのアクセス頻度は3%
(0.5×0.3×0.3/1.5×100%)程度で
ある。
【0209】これは、本共有メモリシステムを1組備え
れば、30〜100台程度のプロセッサから成る密結合
マルチプロセッサシステムを有効に動作させることが可
能となることを示している。従来技術と本技術とを比較
すると、3〜4台から100台程度のプロセッサ数を備
えたシステムにおいて、本システムの優位性が顕著に現
われると考えられる。
【0210】上記の検討は、本共有メモリシステムを1
組だけ備えた場合の性能を評価したものであるが、本共
有メモリシステムを複数組み備え、各共有メモリシステ
ムへ共有デ−タをうまく分散して配置すれば、さらに共
有メモリシステムの組数倍のプロセッサ台数をサポ−ト
することが可能となる。
【0211】ランダム性の高い共有デ−タを前記複数組
の共有メモリシステムに平均的に分散するのであれば、
アドレス値を前記共有メモリシステムの組数で除した時
の余りで共有メモリシステムの各組みをナンバリングし
て、同一の余りの値を有するアドレス群をその余りの値
に対応するナンバを有する共有メモリシステムに割り付
ける等の方法によって、共有メモリを前記複数の組に対
応してインタ−リ−ブする方式が有効である。
【0212】共有デ−タの機能や用途、使用方法等が分
類できるのであれば、その分類の単位で最適化して別々
の共有メモリシステムを設けて共有デ−タを機能分散
し、全体のアクセスが各共有メモリシステムに対して平
均的に分散されるように設計することも可能である。
【0213】次に図10を用いて、プロセッサ間同期処
理回路1000と連動して、図8に示したインタ−ロッ
ク回路によって同期処理完了時刻と共有メモリ上で適正
にデ−タが有効になる時刻との正合性を取る局所的な同
期処理機能を有効にした場合の共有メモリアクセスタイ
ミング例を示す。条件は、前記局所同期機能が働いてい
ること以外は、図9と全く同様である。
【0214】プロセッサ(A)側のバスステ−トはステ
−トS3の最後まで、プロセッサ(B)側のバスステ−
トは最後まで、図9と同じタイミングで動作している。
異なるのは、同期処理回路1000からの同期完了情報
であるSYNCOK信号がアクティブに転ずるステ−ト
S3以後のプロセッサ(A)側の動作と、それに伴って
変化するステ−トS6以後の共有バスシステム上のライ
トサイクルとステ−トS4以後の共有メモリ上のリ−ド
及びライトサイクルである。
【0215】プロセッサ(A)は、ステ−トS2でのア
ドレスA5に対するライトサイクルを生成した後そのバ
スサイクルと並行に、同期処理回路1000へもプロセ
ッサ(B)との同期を取るための同期要求(SREQ)
を、ステ−トS3の先頭で生成している。この時点が、
プロセッサ(A)のタスクの完了時点とみなすことがで
き、ステ−トS3以前に生成された共有メモリへのライ
トサイクル(アドレスA1とA5に対するライトサイク
ル)が、前記タスクで処理され他のプロセッサでも利用
する可能性のある結果デ−タであると考えられる。
【0216】その同期要求(SREQ)を同期処理回路
が受けると、一度プロセッサ(A)に対するSYNCO
K信号を非アクティブレベル(0レベル)に設定し、こ
の時点でプロセッサ(B)がまだ所定のタスク処理を終
了していないので図10に示したとおりそのまま非アク
ティブ状態を保つ。
【0217】プロセッサ(B)は、ステ−トS4で開始
されている共有メモリのアドレスA4へのライトサイク
ルが、プロセッサ(A)と同期すべきプロセッサ(B)
側のタスクにおける共有メモリに対する最後のバスサイ
クルであり、プロセッサ(B)は、ステ−トS5の先頭
でこのバスサイクルと並行に同期処理回路1000に同
期要求を生成する。
【0218】これを受けて、同期処理回路1000は、
プロセッサ(A)とプロセッサ(B)との間の同期処理
が完了した(同期がとれた)とみなし、直ちにプロセッ
サ(A)に対する前記SYNCOK信号をアクティブレ
ベル(1レベル)に戻す。このタイミングで、同期処理
回路1000は、プロセッサ(B)からの同期要求(S
REQ)を受けてプロセッサ(B)に対するSYNCO
K信号を一度非アクティブレベルに設定しようとする
が、すでにプロセッサ(A)側のタスクは終了してお
り、それに伴う同期要求(SREQ)も生成されている
ため、直ちに同期処理が完了してしまい、SYNCOK
信号はすぐにアクティブレベルに戻されてしまう。
【0219】このため、プロセッサ(B)のSYNCO
K信号は実質上アクティブ状態を保ちつづけるため、プ
ロセッサ(B)はSYNCOK信号の変化に伴う影響を
受けていない。すなわち、プロセッサ(B)の動作効率
は図9の例と実質的に同レベルであり、同期処理の影響
を受けずに(プロセッサが同期待ちになる等、同期のた
めのオ−バ−ヘッド等が生じない状態で)最大効率で動
作している。
【0220】このように本発明の実施例では、互いに同
期を取り合うべきプロセッサの中で最後に同期要求を出
力するプロセッサは処理効率が低下すること無く動作す
ることができる。なお、この様な条件下でも、SYNC
OK信号が一度確実に非アクティブレベル(0レベル)
に転ずることを保証し、非アクティブレベルのパルスが
確実に生成されるようにするためには、同期要求(SR
EQ)を出力するタイミングを、プロセッサが終了しよ
うとしているタスクの中で共有メモリへの最後のライト
サイクルに対応するアドレスを出力するタイミングとほ
ぼ同じにするなど、1/2ステ−ト程度前倒しにすれば
良い。
【0221】図10の例では、プロセッサ(B)が、ス
テ−トS4でアドレスA4を出力するタイミングに合わ
せて同期要求(SREQ)を出力する様に設計すれば良
い。この様にして、SYNCOK信号のアクティブレベ
ルに転ずるエッヂを保証することは、図8に開示したイ
ンタ−ロック回路例において、インタ−ロックを開始す
る時刻を決めるために重要な条件である。
【0222】プロセッサ(A)は本来、同期要求(SR
EQ)をステ−トS3の先頭で生成した後のステ−トS
4以後で、実際に同期処理が完了していなくても、共有
メモリへのアクセスを伴わない他の処理や次のタスク処
理等を先行して実行しておくことができる。これは本シ
ステムが、特開平3−234535号公報で開示してい
る局所同期機能と基本的に同様の機能をサポ−トしてい
るからである。
【0223】しかし、図10の例ではスペ−スの関係
で、同期要求(SREQ)を出力した後直ちにステ−ト
S3で共有メモリのアドレスA4にアクセスしており、
その時点でSYNCOK信号は非アクティブ(0レベ
ル)なので、これを受けてプロセッサ(A)側のバスサ
イクルはステ−トS5以後待ち状態に入って、局所同期
が完了するまでD4の値を共有メモリから読み出さない
様にしていることがわかる。
【0224】今回、その局所同期機能に図8に示したよ
うなインタ−ロック機能を追加し、本発明の共有メモリ
システムを用いてプロセッサ間同期処理機能と連動させ
たときのプロセッサ間のデ−タ授受の前後関係につい
て、矛盾が発生しないようにしたところに本発明の特徴
があることはすでに述べた。
【0225】この局所同期の処理方式について、従来の
システムである特開平3−234535号公報の実施例
では、図10と同様の共有メモリへのアクセス状況を想
定した場合、SYNCOK信号がアクティブレベルに戻
るステ−トS5で同期処理が完了したとしてアクティブ
なRDY−N信号をプロセッサ(A)に返送し、ステ−
トS6以後はプロセッサ(A)を次の処理に進めてい
た。
【0226】したがって、従来の方法ではステ−トS5
の期間1PCLK周期分だけがプロセッサ(A)側の待
ち状態となっていたが、本発明の共有メモリシステムを
用いることによって共有メモリへのリ−ドサイクルとラ
イトサイクルが並列に実行できるようになり、従来と同
様の方式をとると、ライトサイクルのタイミングと無関
係に非常に早いタイミングで(ステ−トS5で)プロセ
ッサ(A)側のリ−ドサイクルが実行されてしまい、ス
テ−トS5の時点では実際に受け取るべきプロセッサ
(B)からのアドレスA4に対するD4の値が共有メモ
リ上でまだ有効な状態になっておらず、プロセッサ
(A)が目的とするデ−タを得られなくなってしまう。
【0227】実際にプロセッサ(B)からのアドレスA
4に対応するD4の値が、共有メモリ上で有効となるの
はステ−トS6の時点であり、最低限その時刻までプロ
セッサ(A)側を待たせる必要が生ずる。本発明では、
そういったデ−タ授受に関する前後関係の矛盾を、図8
に示したようなインタ−ロック回路によって正常化して
いるのである。
【0228】次に、図10のタイミング図におけるイン
タ−ロック回路の動作状態を説明する。ステ−トS3で
プロセッサ(A)側の共有メモリ上のアドレスA4に対
するリ−ドサイクルが生成されるとすでにS3でSYN
COK信号が非アクティブ状態なので、それを受けて図
8のRDY−N信号がステ−トS4で非アクティブ状態
に固定される。したがって、プロセッサ(A)側のバス
サイクルはステ−トS5以後RDY−N信号がアクティ
ブに転じるまで待ち状態(WAIT CYCLE)に入
り、アドレスA4に対するバスサイクルが引き延ばされ
る(アクティブなRDY−Nが返送されるまでバスサイ
クルを終了しない)。
【0229】しかし、プロセッサ(A)は、パイプライ
ンバスサイクルを実行しているため、ステ−トS4では
すでに次のアドレス値(A3)を出力している。このメ
カニズムについてはすでに述べたとおりである。
【0230】次に、ステ−トS5では、プロセッサ
(B)側の同期要求(SREQ)が同期処理回路100
0に対して生成され、それを受けて同期処理回路100
0は両者の間で同期がとれ同期処理が完了したものとし
て、プロセッサ(A)及び(B)に対するSYNCOK
信号をアクティブに戻す。この時点でCSBUSY−N
信号がアクティブレベル(0レベル)になっているの
で、そのSYNCOK信号の立ち上がりの変化に応答し
て、本発明のインタ−ロック回路の機能が働くことにな
る。
【0231】インタ−ロック回路はCSBUSY−N信
号が一度非アクティブレベル(1レベル)に戻るまでプ
ロセッサ(A)側へのRDY−N信号を非アクティブレ
ベル(1レベル)に保ち続ける。本例では、図8の80
04に示したようなフリップフロップを用いてCSBU
SY−N信号をPCLKによって1PCLK周期分シフ
トしてから用いているので、内部的に有効なCSBUS
Y−N信号は一点鎖線で示した変化のタイミングを有す
るものと等価と考えて良い。
【0232】したがって、CSBUSY−N信号が内部
的に非アクティブレベルに戻るのはステ−トS7の先頭
であり(元となるCSBUSY−N信号はステ−トS6
で非アクティブに戻る)、それに応答してS7の広範で
プロセッサ(A)に対するRDY−N信号がアクティブ
になって、プロセッサ(A)は、アドレスA4に対する
バスサイクルをステ−トS7の最後のポイントで終了す
る。
【0233】本例では、共有メモリへのリ−ドサイクル
が生成された時にのみ局所同期機能が働くように、図8
のNANDゲ−ト8002と8006にリ−ドイネ−ブ
ル信号RE(アクティブレベル1)を入力しているとし
て仮定しているため、本発明の局所同期機能によってR
DY−Nが非アクティブ状態で固定されるステ−トはS
4,S5,S6の3ステ−ト分である。そのうち、ステ
−トS4におけるRDY−N信号の制御は、前述した様
に、従来の局所同期機能(特開平5−2568)によっ
てもサポ−トされていたものであり、S5,S6におけ
るRDY−N信号の制御が今回の発明で新たに加わった
インタ−ロック回路によって追加された局所同期機能で
ある。
【0234】これによって、ステ−トS3で生成された
共有メモリアドレスA4に対応するD4の値は、ステ−
トS7の最後でプロセッサ(A)に取り込まれ、プロセ
ッサ(A)はステ−トS8以後通常の動作(次の処理又
は次のタスク)に戻る。なお、ステ−トS4でプロセッ
サ(A)により生成され待たされていたアドレスA3に
対するバスサイクルは、局所同期処理が完了した後のス
テ−トS8で、プロセッサ(A)が対応するデ−タD3
(プロセッサ(B)により書き換えられたデ−タ)を得
て終了している。
【0235】図10に示した実施例では、CSBUSY
−N信号を内部的にシフトして用いるのではなく、その
ままのタイミング(実線で示したもの)で用いても正し
く局所同期処理を実行することができる。すなわち、本
来のCSBUSY−N信号の変化タイミングを用いる
と、ステ−トS6でCSBUSY−N信号が非アクティ
ブに転ずるタイミングに応答してインタ−ロックが解除
され、プロセッサ(A)側のデ−タバス(DATA)及
びRDY−N信号に点線で示したタイミングで目的とす
るデ−タD4とアクティブなRDY−N信号とが生成さ
れる。
【0236】これに応答してプロセッサ(A)は、ステ
−トS6の最後のポイントでアドレスA4に対応するバ
スサイクルを終了し、次の処理に進むことになる。
【0237】本実施例では、デ−タを送信する側のプロ
セッサから目的のデ−タが共有メモリシステムに対して
出力されてから、それが共有メモリ上で有効となり読み
出せるようになるまでに僅か1ステ−ト分のレイテンシ
しか必要としないことはすでに述べた。したがって、共
有メモリ上のアドレスA4に対応するデ−タD4をプロ
セッサ(B)が出力するステ−トS5の次のステ−トS
6ではすでに、共有メモリ上でデ−タD4が有効な状態
となっているため、プロセッサ(A)側はステ−トS6
の最後のポイントでそれを読み出し、ステ−トS7以後
は次のサイクルに移行したとしても問題無く動作する訳
である。
【0238】また、CSBUSY−N信号を、内部的に
図8に示したORゲ−ト8007を介して使用するよう
に設計すれば、プロセッサ(B)側がステ−トS3で同
期要求(SREQ)を出力して、そのステ−トで直ちに
同期が完了したと同期処理回路側で判断し、すぐにSY
NCOK信号がアクティブレベルに設定されたとして
も、すでにその時点でCSBUSY−N信号はアクティ
ブレベルになっているので、インタ−ロック回路でイン
タ−ロックするためのタイミングを取り誤ることはな
い。
【0239】すなわち、図10で、一点鎖線と実線とを
重ね合わせたCSBUSY−N信号(いずれかが0レベ
ルなら0レベルを生成する論理としたCSBUSY−N
信号)を内部的に用いるように設計すれば良い。なお、
インタ−ロックの終了条件は、単純にCSBUSY−N
信号をシフトして用いた場合(一点鎖線の場合)と同等
である。
【0240】前述したように、本来のCSBUSY−N
信号を直接用いた場合も、インタ−ロックの開始条件は
ORゲ−ト8007を用いる場合とほぼ同等である。す
べての条件を加味すると、CSBUSY−N信号を図8
の信号8008として直接用いる方式が、本実施例の効
率を最も高められると判断できる。
【0241】なお、前述したように、特開平5−256
8号公報の実施例では、図6に示した1ポ−トの共有メ
モリユニットを用いており、共有メモリへのリ−ドサイ
クルとライトサイクルとが競合した場合にはリ−ドサイ
クルを待たせライトサイクルを優先することによって、
プロセッサ間同期処理機構と連動したときでも結果的に
プロセッサ間でのデ−タ授受に矛盾が生じないようにな
っている。
【0242】なぜなら、同期処理回路が同期完了情報
(SYNCOK)を生成した時にはすでに,対象となる
プロセッサは共有メモリシステムに対する必要なライト
サイクルを全て生成し終わっているはずであり、リ−ド
サイクルよりライトサイクルが優先されていれば、それ
らのライトサイクルによって各プロセッサの全ての共有
メモリの内容が変更されるまでプロセッサ側が無条件で
待たされることになるためである。
【0243】すなわち、ここで説明したインタ−ロック
機能は、2ポ−ト共有メモリユニットを用いてアクセス
効率を改善したことによってプロセッサ間のデ−タ授受
が高速化されたことに伴う副作用を抑え込むためのもの
であるといえる。
【0244】最後に、共有メモリシステムの各論理回路
部をLSI(集積回路)化する場合について、その機能
の分割方法として採り得る方策を以下に述べる。
【0245】i)メモリユニット2006や3006を
1チップ又は複数チップのLSI(集積回路)にまとめ
る。すなわち、メモリセル(例えば図4に開示したよう
なセル)を複数個備え、少なくとも読み出しデ−タ(D
O)出力ピンとそれに対応する読み出しアドレス(R
A)入力ピンと、書き込みデ−タ(DI)入力ピンとそ
れに対応する書き込みアドレス(WA)入力ピンと、指
定された前記書き込みアドレス(WA)対応するメモリ
セルに前記デ−タDIの書き込みを指令する書き込みイ
ネ−ブル(WE)信号入力ピンとを具備し、前記メモリ
セルを前記書き込みアドレスWA及び読み出しアドレス
RAに対応させて配置し、前記WAの指定に対応した少
なくとも1つのメモリセルの入力(D)側に前記書き込
みデ−タ入力ピンから得た書き込みデ−タDIの少なく
とも1bitを設定し、前記WEに対応して生成された
ライト信号(WR)によってその書き込み対象となった
メモリセルにラッチする手段と、前記RAの指定に対応
した少なくとも1つのメモリセルの出力(Z)を選択
し、前記読み出しデ−タDOの少なくとも1bitとし
て前記デ−タ出力ピンに出力する手段とを有するメモリ
LSIを製作する。
【0246】また、前記メモリLSIには、書き込みイ
ネ−ブル(WE)信号入力ピンがアクティブレベルのと
き、書き込みアドレス(WA)入力ピンと読み出しアド
レス(RA)入力ピンに与えられたアドレス値が同一の
場合、書き込みデ−タ(DI)入力ピンに指定された値
を読み出しデ−タ(DO)出力ピン側に透過して出力す
る機能を設けておく。
【0247】ii)各プロセッサに対応して設ける共有メ
モリシステム1010〜101nの各々をそれぞれ1つ
のLSIにまとめる。共有メモリシステム内の2ポ−ト
共有メモリ2006は、i)に示したものと同一機能の
ものをこの共有メモリシステムLSIに集積するか、又
は、共有メモリシステムLSI内に集積するのでは無
く、i)に示した1チップメモリLSI又は複数チップ
のメモリLSIで別システムとして構成し、共有メモリ
システムLSIとDI,DO,RA,WA,WEピンを
介して接続して使用する。この場合、前記メモリLSI
との接続信号DI,DO,RA,WA,WEを共有メモ
リシステムLSI入出力ピンとして設けておく必要があ
る。
【0248】さらに、共有バスシステムへのアクセスス
イッチを行なう入出力バッファシステム2015〜20
17等を別の1チップLSI又は複数チップLSIとし
て構成しても良い。
【0249】iii)共有メモリコントロ−ルユニット2
010を1チップLSIとして構成し、共有メモリシス
テム1010〜101n中の共有メモリコントロ−ルユ
ニット2010を除いた部分を、2ポ−ト共有メモリ2
006や共有バスシステムへの入出力バッファシステム
2015〜2017等も含めて、さらに別の1チップL
SIとして構成する。そして共有メモリや共有バスシス
テムへのアクセス制御信号のレベルで前記2つのLSI
を接続して使用する。
【0250】以上に述べてきた実施例によれば、以下の
効果が得られる。
【0251】(1)共有メモリシステム内の共有メモリ
に独立並行に操作可能な2ポ−ト(読み出しポ−トと書
き込みポ−トから成る)のメモリユニットを用いてい
る。これにより、共有メモリへのリ−ドサイクルとライ
トサイクルを並行に実行でき、共有メモリ間のデ−タ一
致処理やプロセッサ間のデ−タ転送処理にかかるレイテ
ンシを短縮できると共に、プロセッサ間のアクセス競合
によるロスを大幅に減らすことが出来るため共有メモリ
システムに対するト−タルのスル−プットも向上させる
効果がある。
【0252】(2)共有システム全体を1つのクロック
に同期させることによって、非同期回路を同期化させる
ためのオ−バ−ヘッドを除去でき、通信レイテンシを改
善できる効果がある。
【0253】(3)プロセッサ間の同期処理回路と、共
有メモリシステムとを連動して動作させる場合、同期処
理によって管理されるタスク間で目的とするタスクによ
って生成された情報を共有メモリを介して確実にやりと
りできることを保証するために、同期処理回路から同期
の完了が通知されてから実際に共有メモリ上の情報が目
的に対して有効な状態に書き替わるまでの期間、プロセ
ッサのリ−ドサイクルを待たせる局所同期用インタ−ロ
ック回路を具備している。これにより、プロセッサ間の
同期処理をタスク間のデ−タの受け渡しの妥当性も保証
した形で確実に矛盾なく行うことができ、プロセッサが
古い情報を得て誤処理を行わないように自動的に管理で
きる効果がある。
【0254】
【発明の効果】本発明によれば、メモリユニット又はメ
モリLSIのメモリセルに対するデータの書き込み処理
と読み出し処理とを並行して行う手段を備えたことによ
り、メモリユニット又はメモリLSI上でのデータの読
み出しサイクルと書き込みサイクルとのアクセス競合を
低減することができる。
【0255】これによって、アクセス競合を低減した並
列型処理装置を提供することができる。またはこのよう
な装置で使用され得るメモリLSIを提供することがで
きる。 また、協調して処理を行う各処理装置を監視
し、これらの処理装置での処理が全て終了したことを受
けて前記処理装置によるメモリユニットからデータの読
み出しを行う手段を備えたことにより、各処理装置が誤
ったデータを得て誤った処理結果を生成することを防ぐ
ことができる。
【図面の簡単な説明】
【図1】本発明の共有システムア−キテクチャを示す図
である。
【図2】各プロセッサに対応する共有メモリシステム内
ア−キテクチャを示す図である。
【図3】本発明のメモリユニットとコントロ−ルユニッ
トを示す図である。
【図4】本発明のメモリユニット内のメモリセルとデコ
−ダの詳細を示す図である。
【図5】本発明のPCLKとBCLKを同期化し、2ポ
−ト共有メモリを用いた場合の共有メモリアクセス制御
を示す図である。
【図6】本発明のPCLKとBCLKを同期化した場合
の共有メモリアクセス制御を示す図である。
【図7】従来の方式による共有メモリアクセス制御を示
す図である。
【図8】本発明の同期信号と連動したレディ信号生成回
路を示す図である。
【図9】本発明の共有メモリシステムのアクセスタイミ
ングを示す図である。
【図10】本発明の共有メモリシステムをプロセッサ間
同期機構と連動させた時のアクセスタイミングを示す図
である。
【符号の説明】
1110〜111n…プロセッサ、1010〜101n
…各プロセッサに対応する各共有メモリ、1020…ア
−ビタ回路、1000…同期処理回路、2006…2ポ
−ト共有メモリ、2010…共有メモリコントロ−ルユ
ニット、3006…メモリユニット、3101…メモリ
セル、3010…コントロ−ルユニット。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数の処理装置と共有バスシステムとの間
    に前記複数の処理装置に対応して設けられ、対応する処
    理装置の処理結果を記憶するとともに、前記共有バスシ
    ステムを介して得られる他の処理装置の処理結果を記憶
    するメモリユニットを備え、処理装置が他の処理装置の
    処理結果をこの対応するメモリユニットから得られるよ
    うにした共有メモリシステムにおいて、 前記メモリユニットへのデータの書き込み動作と、前記
    メモリユニットからのデータの読み出し動作を並行して
    行うことができる機能を備えたことを特徴とする共有メ
    モリシステム。
  2. 【請求項2】複数の処理装置と共有バスシステムとの間
    に前記複数の処理装置に対応して設けられ、対応する処
    理装置の処理結果を記憶するとともに、前記共有バスシ
    ステムを介して得られる他の処理装置の処理結果を記憶
    するメモリユニットを備え、処理装置が他の処理装置の
    処理結果をこの対応するメモリユニットから得られるよ
    うにした共有メモリシステムにおいて、 対応する処理装置と共有バスシステムとから送られてく
    るデータのいずれかを選択し、アドレスを指定して、メ
    モリユニット内のメモリセルに書き込むデータ入力手段
    と、 前記手段によるデータの書き込み動作中に、メモリセル
    をアドレスで指定して、データを読み出すデータ出力手
    段と、 処理装置が対応するメモリユニット内のメモリセルに書
    き込むデータを前記共有バスシステムに出力するライト
    情報出力手段と、 を備えたことを特徴とする共有メモリシステム。
  3. 【請求項3】複数の処理装置と共有バスシステムとの間
    に前記複数の処理装置に対応して設けられ、対応する処
    理装置の処理結果を記憶するとともに、前記共有バスシ
    ステムを介して得られる他の処理装置の処理結果を記憶
    するメモリユニットを備え、処理装置が他の処理装置の
    処理結果をこの対応するメモリユニットから得られるよ
    うにした共有メモリシステムにおいて、 対応する処理装置と共有バスシステムとから送られてく
    るデータ及びアドレスのうちいずれか一方のデータ及び
    アドレスを選択する選択手段と、 処理装置から対応するメモリユニットに送られてその中
    のメモリセルに書き込まれるデータを、前記共有バスシ
    ステムに出力するライト情報出力手段と、 メモリユニットに、アドレスによって指定できる複数の
    メモリセルと、データを書き込むアドレスを指定するラ
    イトアドレス指定手段及び指定されたアドレスのメモリ
    セルにデータを書き込む書き込み手段と、前記各手段に
    よるデータの書き込み動作中に、アドレスでメモリセル
    を指定してデータを読み出すことができるリードアドレ
    ス指定手段及びデータの読み出し手段と、 を備えたことを特徴とする共有メモリシステム。
  4. 【請求項4】請求項2に記載の共有メモリシステムにお
    いて、 処理装置が対応するメモリユニットからデータを読み出
    すタイミングと共有バスシステムからのデータをメモリ
    ユニットに書き込むタイミングとを一つの基準クロック
    に同期させる同期制御手段を設けたことを特徴とする共
    有メモリシステム。
  5. 【請求項5】請求項2に記載の共有メモリシステムにお
    いて、 処理の終了によって非アクティブからアクティブに転じ
    る同期要求信号を出力する手段を各処理装置に設けると
    共に、協調して処理を行う各処理装置からの同期要求信
    号が全てアクティブに転じたことを受けて同期処理完了
    信号をアクティブに転じ、同期要求信号を出力した処理
    装置によるメモリユニットからのデータの読み出しを可
    能にする同期化手段を設けたことを特徴とする共有メモ
    リシステム。
  6. 【請求項6】請求項5に記載の共有メモリシステムにお
    いて、 同期処理完了信号がアクティブに転じた時点でメモリユ
    ニットへの書き込み動作が発生している場合、その書き
    込み動作が連続して発生している期間、前記メモリユニ
    ットからの読み出し処理を禁止する手段を備えたことを
    特徴とする共有メモリシステム。
  7. 【請求項7】請求項3に記載の共有メモリシステムにお
    いて、 前記メモリユニットのデータの読み出し手段に、読み出
    されるデ−タをラッチするリードデ−タラッチを備えた
    ことを特徴とする共有メモリシステム。
  8. 【請求項8】複数個のメモリセルを備えたメモリLSI
    において、 複数個のメモリセルをリードアドレスとライトアドレス
    とに対応させ、 データを読み出すメモリセルをリードアドレスで指定す
    るリードアドレス指定手段と、 このリードアドレス指定部によって指定されたメモリセ
    ルからデータを読み出す読み出し手段と、 前記リードアドレス指定手段と独立して設けられ、デー
    タを書き込むメモリセルをライトアドレスを指定するラ
    イトアドレス指定手段と、 前記読み出し手段と独立して設けられ、前記ライトアド
    レス指定手段によって指定されたメモリセルにデータを
    書き込む書き込み手段と、 を備え、データの読み出し処理とデータの書き込み処理
    とを並行して行うことを可能にしたことを特徴とするメ
    モリLSI。
  9. 【請求項9】複数個のメモリセルを備えたメモリLSI
    において、 複数個のメモリセルをリードアドレスとライトアドレス
    とに対応させ、 データを読み出すメモリセルをリードアドレスで指定す
    るリードアドレス指定手段と、 このリードアドレス指定手段によって指定されたメモリ
    セルからデータを読み出す読み出し手段と、 前記リードアドレス指定手段と独立して設けられ、デー
    タを書き込むメモリセルをライトアドレスを指定するラ
    イトアドレス指定手段と、 前記読み出し手段と独立して設けられ、前記ライトアド
    レス指定手段によって指定されたメモリセルにデータを
    書き込む書き込み手段と、 を備え、 前記ライトアドレス指定手段は、ライトアドレスを入力
    するライトアドレスピンと、このライトアドレスで指定
    されたメモリセルを選択する手段と、このメモリセルに
    デ−タの書き込みを指令する書き込みイネ−ブル信号入
    力ピンと、この書き込みイネ−ブル信号に対応してライ
    ト信号を生成する手段と、を備え、 前記書き込み手段は、デ−タを入力するデ−タ入力ピン
    と、ライトアドレスで指定されたメモリセルの入力にデ
    −タ入力ピンから入力されたデ−タを設定し、前記ライ
    ト信号によってそのメモリセルにラッチする手段と、を
    備え、 前記リードアドレス指定手段は、リードアドレスを入力
    するリードアドレスピンと、このリードアドレスで指定
    されたメモリセルを選択する手段と、を備え、 前記読み出し手段は、デ−タを出力するデ−タ出力ピン
    と、前記リードアドレスで指定されたメモリセルに記憶
    されたデ−タを読み出し前記デ−タ出力ピンに出力する
    手段と、を備え、 データの読み出し処理とデータの書き込み処理とを並行
    して行うことを可能にしたことを特徴とするメモリLS
    I。
  10. 【請求項10】請求項9に記載のメモリLSIにおい
    て、 前記読み出し手段に、メモリセルから読み出したデ−タ
    をラッチするリードデ−タラッチを備えたことを特徴と
    するメモリLSI。
  11. 【請求項11】複数個のメモリセルを備えたメモリLS
    Iにおいて、 データの書き込みのみに使用されるポートと、データの
    読み出しのみに使用されるポートと、データを書き込む
    アドレスを指定するライトアドレス指定ポートと、デー
    タを読み出すアドレスを指定するリードアドレス指定ポ
    ートとを備えたことを特徴とするメモリLSI。
  12. 【請求項12】複数個のメモリセルを備えたメモリLS
    Iにおいて、 メモリセルへのデータの書き込み処理とメモリセルから
    のデータの読み出し処理とを5ns以下で終了すること
    を特徴とするメモリLSI。
  13. 【請求項13】請求項1乃至7のいずれかに記載の共有
    メモリシステムを備えたことを特徴とする並列型処理装
    置。
JP21844695A 1995-08-28 1995-08-28 共有メモリシステム、並列型処理装置並びにメモリlsi Expired - Lifetime JP3661235B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP21844695A JP3661235B2 (ja) 1995-08-28 1995-08-28 共有メモリシステム、並列型処理装置並びにメモリlsi
US08/701,789 US5960458A (en) 1995-08-28 1996-08-26 Shared memory system
US09/165,200 US6161168A (en) 1995-08-28 1998-10-02 Shared memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21844695A JP3661235B2 (ja) 1995-08-28 1995-08-28 共有メモリシステム、並列型処理装置並びにメモリlsi

Publications (2)

Publication Number Publication Date
JPH0962563A true JPH0962563A (ja) 1997-03-07
JP3661235B2 JP3661235B2 (ja) 2005-06-15

Family

ID=16720046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21844695A Expired - Lifetime JP3661235B2 (ja) 1995-08-28 1995-08-28 共有メモリシステム、並列型処理装置並びにメモリlsi

Country Status (2)

Country Link
US (2) US5960458A (ja)
JP (1) JP3661235B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215734A (ja) * 2010-03-31 2011-10-27 Mitsubishi Electric Corp サイクリック通信同期方式
CN108257078A (zh) * 2016-12-28 2018-07-06 英特尔公司 存储器知晓重排序源

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6320785B1 (en) * 1996-07-10 2001-11-20 Hitachi, Ltd. Nonvolatile semiconductor memory device and data writing method therefor
DE19740694A1 (de) * 1997-09-16 1999-03-18 Siemens Ag Schaltungsanordnung zur Behandlung von Zugriffskonflikten
US6163831A (en) * 1997-11-14 2000-12-19 Lucent Technologies, Inc. Minimum refractory period in a multiple agent resource sharing environment
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
JP2000047994A (ja) * 1998-07-27 2000-02-18 Fujitsu Ltd 情報処理装置
US6647468B1 (en) * 1999-02-26 2003-11-11 Hewlett-Packard Development Company, L.P. Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6507862B1 (en) * 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6557084B2 (en) * 1999-07-13 2003-04-29 International Business Machines Corporation Apparatus and method to improve performance of reads from and writes to shared memory locations
GB2364867B (en) * 2000-07-17 2003-12-10 Advanced Risc Mach Ltd A data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
US6735712B1 (en) * 2000-09-08 2004-05-11 Intel Corporation Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains
US7120155B2 (en) * 2000-10-03 2006-10-10 Broadcom Corporation Switch having virtual shared memory
US6862640B2 (en) * 2001-04-10 2005-03-01 Texas Instruments Incorporated Arbitration in local system for access to memory in a distant subsystem
JP4027133B2 (ja) * 2002-03-22 2007-12-26 キヤノン株式会社 画像処理装置
JP2005078481A (ja) * 2003-09-02 2005-03-24 Toshiba Corp 半導体システム
US20050080999A1 (en) * 2003-10-08 2005-04-14 Fredrik Angsmark Memory interface for systems with multiple processors and one memory system
US7073031B1 (en) * 2003-12-18 2006-07-04 Emc Corporation Multi-processor system having data coherency
JP2005250683A (ja) * 2004-03-02 2005-09-15 Renesas Technology Corp マイクロコンピュータ
US7225278B1 (en) 2004-04-15 2007-05-29 Xilinx, Inc. Method and apparatus for controlling direct access to memory circuitry
US7260688B1 (en) * 2004-04-15 2007-08-21 Xilinx, Inc. Method and apparatus for controlling access to memory circuitry
US7424553B1 (en) 2004-04-15 2008-09-09 Xilinx, Inc. Method and apparatus for communicating data between a network transceiver and memory circuitry
JP4827399B2 (ja) * 2004-05-26 2011-11-30 ルネサスエレクトロニクス株式会社 半導体記憶装置
US8291495B1 (en) 2007-08-08 2012-10-16 Juniper Networks, Inc. Identifying applications for intrusion detection systems
US8112800B1 (en) 2007-11-08 2012-02-07 Juniper Networks, Inc. Multi-layered application classification and decoding
KR20100020220A (ko) * 2008-08-12 2010-02-22 한국전자통신연구원 메모리 공유 제어장치 및 메모리 공유 제어방법, 그리고 공유 메모리 접근방법
US9398043B1 (en) 2009-03-24 2016-07-19 Juniper Networks, Inc. Applying fine-grain policy action to encapsulated network attacks
KR101744150B1 (ko) * 2010-12-08 2017-06-21 삼성전자 주식회사 멀티프로세서 시스템의 지연관리 장치 및 방법
JP5908991B2 (ja) * 2011-12-21 2016-04-26 インテル・コーポレーション 安全なダイレクトメモリアクセス
US9828970B2 (en) * 2012-03-30 2017-11-28 Vestas Wind Systems A/S Wind turbine with a reflective memory system
US9001593B2 (en) 2012-12-21 2015-04-07 Apple Inc. Apparatus to suppress concurrent read and write word line access of the same memory element in a memory array
JP6297232B2 (ja) * 2015-12-10 2018-03-20 三菱電機株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
US10075416B2 (en) 2015-12-30 2018-09-11 Juniper Networks, Inc. Network session data sharing
KR102568387B1 (ko) * 2016-02-02 2023-08-21 삼성전자 주식회사 전자 장치 및 그의 데이터 처리 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
JPS5995660A (ja) * 1982-11-22 1984-06-01 Nec Corp デ−タ処理装置
US5146607A (en) * 1986-06-30 1992-09-08 Encore Computer Corporation Method and apparatus for sharing information between a plurality of processing units
US4833649A (en) * 1987-09-08 1989-05-23 Tektronix, Inc. Multiple port random access memory
JPH01320564A (ja) * 1988-06-23 1989-12-26 Hitachi Ltd 並列処理装置
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
EP0475282B1 (en) * 1990-09-14 1998-12-16 Hitachi, Ltd. Synchronous method and apparatus for processors
JP3008223B2 (ja) * 1990-09-14 2000-02-14 株式会社日立製作所 プロセッサ間の同期処理装置
JP2906819B2 (ja) * 1992-04-13 1999-06-21 三菱電機株式会社 並列計算機及びデータ交換制御装置
FR2692698A1 (fr) * 1992-06-19 1993-12-24 Sgs Thomson Microelectronics Procédé pour partager une mémoire à accès direct entre deux processeurs asynchrones et circuit électronique pour la mise en Óoeuvre de ce procédé.
JPH0784863A (ja) * 1993-09-20 1995-03-31 Hitachi Ltd 情報処理装置およびそれに適した半導体記憶装置
US5940860A (en) * 1996-07-01 1999-08-17 Sun Microsystems, Inc. Methods and apparatus for substantially memory-less coherence transformer for connecting computer node coherence domains
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5933857A (en) * 1997-04-25 1999-08-03 Hewlett-Packard Co. Accessing multiple independent microkernels existing in a globally shared memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215734A (ja) * 2010-03-31 2011-10-27 Mitsubishi Electric Corp サイクリック通信同期方式
CN108257078A (zh) * 2016-12-28 2018-07-06 英特尔公司 存储器知晓重排序源
CN108257078B (zh) * 2016-12-28 2023-12-05 英特尔公司 存储器知晓重排序源

Also Published As

Publication number Publication date
US6161168A (en) 2000-12-12
US5960458A (en) 1999-09-28
JP3661235B2 (ja) 2005-06-15

Similar Documents

Publication Publication Date Title
JP3661235B2 (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
CA2050129C (en) Dynamic bus arbitration with grant sharing each cycle
US5586299A (en) Systems and methods for accessing multi-port memories
US20090300324A1 (en) Array type processor and data processing system
US8046505B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US8095744B2 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
GB2366883A (en) Data processing apparatus with a bus system
JPH01147647A (ja) データ処理装置
CN103543954A (zh) 一种数据存储管理方法和装置
JP2000348002A (ja) ハブおよびポートを持つ転送コントローラ・アーキテクチャ
CN1570907B (zh) 多处理器系统
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
CN107810492B (zh) 可配置的邮箱数据缓冲器装置
JPH07105146A (ja) 共有メモリ装置
Mirosanlou et al. Duetto: Latency guarantees at minimal performance cost
US7006521B2 (en) External bus arbitration technique for multicore DSP device
WO2021075076A1 (ja) 情報処理装置、及び情報処理方法
US6954869B2 (en) Methods and apparatus for clock domain conversion in digital processing systems
US8799699B2 (en) Data processing system
US6493775B2 (en) Control for timed access of devices to a system bus
JP3227575B2 (ja) 共有資源アクセス制御装置
JP3240863B2 (ja) 調停回路
JPH064401A (ja) メモリアクセス回路
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2870812B2 (ja) 並列処理プロセッサ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050314

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

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100401

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120401

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120401

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130401

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140401

Year of fee payment: 9

EXPY Cancellation because of completion of term