JPH05324577A - 共有メモリのアクセス調停装置 - Google Patents

共有メモリのアクセス調停装置

Info

Publication number
JPH05324577A
JPH05324577A JP13340692A JP13340692A JPH05324577A JP H05324577 A JPH05324577 A JP H05324577A JP 13340692 A JP13340692 A JP 13340692A JP 13340692 A JP13340692 A JP 13340692A JP H05324577 A JPH05324577 A JP H05324577A
Authority
JP
Japan
Prior art keywords
cpu
shared memory
bar
bus
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP13340692A
Other languages
English (en)
Inventor
Koji Nakai
康二 仲井
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP13340692A priority Critical patent/JPH05324577A/ja
Publication of JPH05324577A publication Critical patent/JPH05324577A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明は、共有メモリを介してワードデータ
の授受を行うマルチCPUシステムにおける共有メモリ
のアクセス調停装置に関し、低コストでかつ簡単な回路
構成で上記アクセス調停装置を実現することを目的とす
る。 【構成】 CPU−L140が1ワードデータをバイト
単位で格納している1個の共有メモリ120に対して1
ワードデータのアクセスを1バイト単位で行っていると
きに、CPU─R150が共有メモリ120に対してア
クセスを行うと、制御回路160はCPU−R150を
ウェイト状態にして待機させる。そしてCPU−L14
0が共有メモリ120に対する1ワードデータのアクセ
スが終了すると、制御回路160は、CPU−L140
のウェイト状態を解除させ、CPUL−140に対し、
共有メモリ120に対する所望の1ワードのアクセスを
開始させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のCPUが共有メ
モリ(コモンメモリ)を介してワード単位で意味のある
データの授受を行う装置またはシステムに係わり、特に
複数のCPUが共有メモリを同時にアクセスする際の調
停を行う共有メモリのアクセス調停装置に関する。
【0002】
【従来の技術】最近、コンピュータ等のデータ処理装置
においては、処理の効率化を高めて処理を高速化するた
めに、複数のCPU(マルチプロセッサ)を搭載し、そ
れらの複数のCPUに処理機能、処理負荷、データ管理
機能等を分散させる、いわゆるマルチCPUシステム
(マルチプロセッサシステム)による分散処理方式の採
用が増えつつある。
【0003】このようなマルチCPUシステムは、例え
ば、メモリの共有により実現される。そしてこの共有メ
モリを用いたマルチCPUシステムにおいては、CPU
間のデータの授受は、共有メモリを介して行われる。
【0004】この共有メモリとしては、入出力ポートを
2つ持ち、それらの各入出力ポートが独立に動作可能な
デュアル・ポートメモリが、アクセス効率の点で優れて
いることから採用されることが多い。
【0005】このデュアル・ポートメモリは2つの入出
力ポートを有し、一方の入出力ポートからデータを書き
込みながら、他方の入出力のポートからデータを読み出
す処理を、同時に並行して実行することが可能であり、
また、両入出力ポートから同時にデータを読み出すこと
をも可能である。
【0006】図6は、共有メモリ20を2つのデュアル
・ポートRAMA 20a、デュアル・ポートRAMB
0bにより構成した従来のマルチCPUシステムの全体
構成図である。
【0007】同図において、CPU−L40は、一方の
デュアル・ポートRAMA 20a と、アドレスバスA−
BUSL (A1L〜A8L)、データバスD−BUSL (D
0 L〜D7 L)、及びコントロールバスC−BUS
L (バーCSL ,バーRDL ,バーWRL )により接続
されており、他方のデュアル・ポートRAMB 20bと
はアドレスバスA−BUSL (A1L〜A8L)、データバ
スD−BUSL (D8L〜D 9L)、及びコントロールバス
C−BUSL (バーCSL ,バーRDL ,バーWR L
により接続されている。
【0008】またCPU−R50は、一方のデュアル・
ポートRAMB 20bとアドレスバスA−BUSR (A
1R〜A8R)、データバスD−BUSR (D0 R〜D
7 R)、及びコントロールバスC−BUSR (バーCS
R ,バーRDR ,バーWRR )により接続されており、
他方のデュアル・ポートRAMA 20a とは、アドレス
バスA−BUSR (A1R〜A8R)、データバスD−BU
R (D8R〜D15R )、及びコントロールバスC−BU
R (バーCSR ,バーRDR ,バーWRR )により接
続されている。
【0009】このように、データバスD−BUSR 、D
−BUSL は共に16ビット構成(D0 〜D15)と成っ
ている。CPU−L40とCPU−R50は、デュアル
・ポートRAMA 20aとデュアル・ポートRAMB
0bとから成る共有メモリ20に対して、それぞれ、デ
ータバスD−BUSL 、データバスD−BUSR を介し
て1ワード(16ビット構成)単位でデータのリード/
ライトを行う。
【0010】また、CPU−L40とCPU−R50と
が同時に共有メモリ20をアクセスした場合の調停を行
う制御回路60が設けられている。ところで、図7
(a),(b)に示すようにデュアル・ポートRAMA
20aは、各ワードデータの下位バイトDn −LOB
(D0 〜D7 )を格納し、他方のデュアル・ポートRA
B 20bは、上記各ワードデータの上位バイトDn
HOB(D8 〜D15)を格納するようになっている。
【0011】次に、図8は共有メモリ20の詳細な外部
インタフェースの構成及びその制御回路60の構成を示
す図である。前記コントロールバスC−BUSL は、同
図に示すチップセレクト信号バーCSL 、リード信号バ
ーRDL 、及びライト信号バーWRL から成る。また、
前記コントロールバスC−BUSR は、同図に示すチッ
プセレクト信号バーCSR 、リード信号バーRDR 、及
びライト信号バーWRL から成る。
【0012】上記各信号は、下記のような機能を有す
る。 バーCSL (バーCSR )・・・デュアル・ポートRA
A 20a(デュアル・ポートRAMB 20b)が選択
されたことを示す信号(アクィブ・ロー) バーRDL (バーRDR )・・・アクセスがリードであ
ることを示す信号(アクティブ・ロー) バーWRL (バーWRR )・・・アクセスがライトであ
ることを示す信号(アクティブ・ロー) 制御回路60は、デュアル・ポートRAMB 20bから
出力されるビジィ信号バーBUSYL とCPU−L40
から出力されるチップセレクト信号バーCS R (バーC
L )が入力される負論理のANDゲート61、そのA
NDゲート61の出力とチップセレクト信号バーCSR
が入力される負論理のORゲート62、デュアル・ポー
トRAMA 20a及びデュアル・ポートRAMB 20b
から、それぞれ出力されるビジィ信号バーBUSYR
バーBUSYL が入力される負倫理のANDゲート6
3、及びそのANDゲート63の出力と上記チップセレ
クト信号バーCSR (バーCSL )が入力される負論理
のORゲート64とから成っている。
【0013】また、上記ORゲート62の出力(レディ
信号RDYR )はCPU−R50のバーWAIT端子に
入力され、また上記ORゲート64の出力は(レディ信
号RDYL )はCPU−L40LのバーWAIT端子に
入力されるようになっている。
【0014】尚、上記ビジィ信号バーBUSYL (バー
BUSYR )は、下記の機能を有する。 バーBUSYL (バーBUSYR )・・・デュアル・ポ
ートRAMA 20a (デュアル・ポートRAMB
b )がアクセスされているときにアクティブ
(“L”)となる信号 このように、共有メモリ20を2つの8ビット幅のデー
タ入出力端子(D0 〜D7 またはD8 〜D15)を有する
デュアル・ポートRAM20a 、20b により構成して
いるのは、各CPU−L40、CPU−R50がワード
(16ビット)単位でデータ処理を行うためである。す
なわち、このような構成とすることにより、各CPU−
L40、CPU−R50は、2つのデュアル・ポートR
AM20a、20bを同時にアクセスして、16ビット
幅のデータバスD−BUSL 、D−BUSR を介して所
望する1ワードのデータのリード/ライトを、1回のア
クセスで行うことができる。
【0015】このような構成において、例えばCPU−
L40が共有メモリ20をアクセスした場合、チップセ
レクト信号バーCSL がアクティブ(“L”)となり、
また、このことによりデュアル・ポートRAMA 20
a、RAMB 20bが共にビジィ信号バーBUSYL
バーBUSYR をアクティブ(“L”)にする。したが
って制御回路60内のANDゲート61の出力は、
“L”となってORゲート62の一方の入力端子に加わ
る。
【0016】このとき、続いて、CPU−R50が共有
メモリ20をアクセスするために、チップセレクト信号
バーCSR をアクティブ(“L”)にすると、ORゲー
ト62の出力であるレディ信号RDYR がインアクティ
ブ(“L”)となって、CPU−R50のウェイト信号
入力端子バーWAITに加わる。このことにより、CP
U−R50は、ウェイト状態となる。したがって、CP
U−L40とCPU−R50が共に共有メモリ20の同
一アドレスをアクセスする事象、いわゆるデータの衝突
が発生することを回避することができる。
【0017】これは、CPU−L40が、先に共有メモ
リ20をアクセスした場合にも同様であり、この場合に
はCPU−R50の方がウェイト状態になる。
【0018】
【発明が解決しようとする課題】しかしながら、上記の
ような従来の共有メモリ20の構成には、下記に示すよ
うな欠点があった。
【0019】 デュアル・ポートRAMが2つ必要で
あるため、共有メモリ20のコストが高くなってしま
う。 片方または両方のCPUのデータバスの構成が8ビ
ット幅であった場合、共有メモリ20へのワード書き込
みに際しては、8ビット幅のデータバスを有するCPU
は、そのデータバスに対して2回に分けて上位及び下位
のバイトデータを出力しなければならないため、それら
の上位及び下位のバイトデータを、2つのデュアル・ポ
ートRAMに切り替えて出力させるための回路が必要と
なる。また、共有メモリ20からのワードデータの読み
出しに際しては、2つのデュアル・ポートRAM20
a、20bから同時に読み出される1ワードのデータを
8ビット幅のデータバスに2回に分けて出力させるため
の回路が必要となる。このため、回路構成が複雑になっ
てしまうという欠点があった。
【0020】本発明は、上記,のような問題点を解
消するために、共有メモリを1個のデュアル・ポートR
AMで構成するようにして共有メモリのコストを低減す
ると共に、データバスがバイト幅しかないCPUを用い
るマルチCPUシステムにおいても、共有メモリの制御
回路が簡単な構成になるような共有メモリのアクセス調
停装置を実現することを目的にする。
【0021】
【課題を解決するための手段】図1は、本発明の原理ブ
ロック図である。本発明は、2つのCPUが、バイト単
位でデータを格納する共有メモリを介しワードデータの
授受を行うマルチCPUシステムにおいて、前記各CP
Uの前記共有メモリに対するアクセスの調停を行う共有
メモリの調停装置を前提とする。
【0022】そして、この調停装置は、共有メモリ1
が、バイト単位でデータのリード/ライトが行われる2
つの入出力ポートを有する1個のデュアル・ポートメモ
リを有するマルチCPUシステムを制御対象とする。こ
の共有メモリ1は、例えば、1個のデュアル・ポートR
AM等から成る。
【0023】そして、本発明は、以下の手段2、3を有
する。ウェイト制御手段2は、前記一方のCPUが前記
共有メモリ1をアクセスしており、前記共有メモリ1か
ら所望するワードデータの全バイトのアクセスを終了し
ていない期間に、他方のCPUが前記共有メモリ1に対
してアクセスを行ったとき、その他方のCPUをウェイ
ト状態にするための制御信号を、例えば、その他方のC
PUのウェイト信号入力端子に出力する。
【0024】アクセス許可手段3は、前記一方のCPU
が前記共有メモリ1からワードデータの読み出しを終了
したとき、前記他方のCPUのウェイト状態を解除し、
前記他方のCPUに共有メモリのアクセスを許可する。
【0025】これらウェイト制御手段2及びアクセス許
可手段3は、例えば共に、ハードウエア論理回路により
構成することができ、その場合、1チップのICで実現
することも可能である。そして、この場合、ゲート・ア
レイやスタンダード・セル等のASIC(Application
Specific IC )により容易に製造可能である。
【0026】尚、上記バイトのビット長は、8ビットに
限定されるものではなく、任意のビット長であってよ
い。
【0027】
【作用】本発明によれば、2つのCPU(以後、それぞ
れ、CPUA 、CPUB と表現する)は、共有メモリか
ら所望のワードデータを読み出したり、書き込む場合、
共有メモリ1に対してそのワードデータを構成するバイ
ト単位でアクセスする。すなわち、1ワードデータが2
バイト構成の場合、上位バイト、下位バイトまたは下位
バイト、上位バイトの順でアクセスする。
【0028】そして、もし、一方のCPUであるCPU
A が共有メモリ1を先にアクセスし、アクセスする1ワ
ードデータの一方のバイト(例えば、前記下位バイトま
たは前記上位バイト)のアクセスを行っているときに、
他方のCPUであるCPUBが共有メモリ1に対してア
クセスを行うと、ウエィト制御手段2がCPUB のウェ
イト信号入力端子バーWAITB にアクティブ(この場
合、“L”)の制御信号を加え、CPUB をウェイト状
態のまま待機させる。
【0029】続いて、CPUA が上記一方のバイトのア
クセスを終了し、次に残りの他方のバイトのアクセスを
共有メモリ1に対して行うと、アクセス許可手段3はウ
ェイト状態にあるCPUB の上記ウェイト信号入力端子
バーWAITB に加える制御信号をアクティブ
(“L”)からインアクティブ(“H”)に変化させ、
CPU B に対し、共有メモリ1に対するアクセスを開始
させる。
【0030】一方、CPUB の方が、先に共有メモリ1
をアクセスした場合には、上述した動作とは逆に、CP
A が共有メモリ1をアクセスすると、CPUB が1ワ
ードデータのアクセスを終了するまでウェイト状態で待
機させられる。
【0031】このように、一方のCPUが共有メモリ1
に対する1ワードデータのアクセスを行った場合、その
アクセスが終了するまで、他方のCPUは共有メモリ1
に対するアクセスを禁止されるので、2つのCPU(C
PUA とCPUB )は、バイト単位でデータを格納する
1個のデュアル・ポートを有する共有メモリ1を介し
て、ワードデータを確実に授受することができる。
【0032】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。図2は、本発明の一実施例である2つのCP
U(CPU−L140とCPU−L150)が共有メモ
リ120を介してワードデータの授受を行うマルチCP
Uシステムの全体構成図である。
【0033】同図において、共有メモリ120はデュア
ル・ポートRAMであり、一方のCPU−L140と
は、8ビット幅のアクセスバスA−BUSL (A0 L〜
7 L)、8ビット幅のデータバスD−BUSL 、及び
チップセレクト信号バーCSL、リード信号バーR
L 、ライト信号バーWRL 、ビジィ信号バーBUSY
L 用の信号線を含むコントロールバスC−BUSL によ
り接続されている。
【0034】また、共有メモリ120は、他方のCPU
−R150に対しても、8ビット幅のアドレスバスA−
BUSR (A0 R〜A7 R)、8ビット幅のデータバス
D−BUSR 、及びチップセレクト信号バーCSR 、リ
ード信号バーRDR 、ライト信号バーWRR 、ビジィ信
号バーBUSYR 用の信号線を含むコントロールバスC
−BUSR により接続されている。また、さらに、上記
2つのCPU−L140とCPU−R150が共有メモ
リ120をアクセスする際の調停制御を行う制御回路1
60が設けられている。
【0035】この制御回路160は、CPUL−140
に接続されたアクセスバスA−BUSL から最下位ビッ
ト(LSB)のアドレス信号A0 Lを入力すると共に、
同じくCPU−140に接続されたコントロールバスC
−BUSL からチップセレクト信号バーCSL 、リード
信号バーRDL 、ライト信号バーWRL を入力する。
【0036】さらに、この制御回路160は、CPU−
R150に接続されたアドレスバスA−BUSR から最
下位ビット(LSB)のアドレス信号A0 Rを入力する
と共に、同じくCPU−R140に接続されたコントロ
ールバスC−BUSR からチップセレクト信号バーCS
R 、リード信号バーRDR 、ライト信号バーWRR を入
力する。
【0037】さらに、この制御回路160は、CPU−
R150が共有メモリ120をアクセスしているとき
に、レディ信号RDYR をインアクティブ(“L”)に
してCPU−L140のウェイト信号入力端子バーWA
ITR に加える。また、制御回路160は、CPU−L
140が共有メモリ120をアクセスしている場合に
は、レディ信号RDYL をインアクディブ(“L”)に
してCPU−R150のウェイト信号入力端子バーWA
ITL に加える。
【0038】次に、共有メモリ120のメモリマップを
図3に示す。この共有メモリ120は、8ビット(1バ
イト)単位でデータを格納する構成になっており、ある
1ワードのデータDn (n=0,1,2,・・・)につ
いて、その下位バイトDn −LOBを偶数アドレス2n
(n=0,1,2,・・・)にその上位バイトDn −H
OBを奇数アドレス2n+1(x=0,1,2,・・
・)に格納する。したがって、1ワードのデータD
n (n=0,1,2,・・・)は連続する偶数アドレス
2n,奇数アドレス2n+1(n=0,1,2,・・
・)に格納される。
【0039】続いて、共有メモリ120及び制御回路1
60の詳細な回路構成を図4に示す。同図に示すよう
に、制御回路160は、2個のインバータ161L,1
61R,2個のDフリップフロップ162L,162
R,4個の負論理のANDゲート163L,164L,
163R,164R,及び4個の負倫理のORゲート1
65L,166L,165R,166Lから成ってい
る。
【0040】インバータ161Lは、アドレスバスA−
BUSL の最下位ビット(LSB)のアドレス信号A0
Lを反転して、Dフリップフロップ162Lのデータ入
力端子Dに加える。
【0041】Dフリップフロップ162Lは、そのクロ
ック入力端子CKにORゲート165Lの出力を入力
し、そのクロック入力端子CKに入力される信号の立ち
下がりエッジで、データ入力端子Dに加わっているイン
バータ161Lの出力信号を取り込み、その取り込んだ
信号の反転信号を出力端子バーQからANDゲート16
3Lの一方の入力端子に加える。
【0042】ANDゲート163Lは、上記Dフリップ
フロップ162LのバーQ出力を一方の入力端子に入力
すると共に、共有メモリ120のビジィ信号バーBUS
Rを他方の入力端子に入力し、Dフリップフロップ1
62LのバーQ出力が“L”であるときに、共有メモリ
120から出力されるビジィ信号BUSYR を通過させ
ORゲート166Lの一方の入力端子に加える。
【0043】また、ANDゲート164Lは、CPU−
L140がコントロールバスC−BUSL に出力するリ
ード信号バーRDL とライト信号バーWRL を入力し、
それらの入力信号RDL ,WRL の内いずれか一方が
“L”(Lレベル)であるときに、“L”をORゲート
165Lに加える。
【0044】ORゲート165Lは、上記ANDゲート
164Lの出力と上記CPU−L140が上記コントロ
ールバスC−BUSL 上に出力したチップセレクト信号
バーCSL を入力し、上記ORゲート165Lの出力と
上記チップセレクト信号バーCSL が共に“L”になっ
たときに、出力を“H”(Hレベル)から“L”に変化
させる(立ち下がりエッジの発生)。
【0045】ORゲート166Lは、上記CPU−R1
50が上記コントロールバスC−BUSR 上に出力した
チップセレクト信号バーCSR 及びANDゲート163
Lの出力を入力し、それらの入力信号が共に“L”であ
るときにレディ信号RDYLを“L”(インアクティ
ブ)にしてCPU−L140のウェイト信号入力端子バ
ーWAITL に出力する。
【0046】これらインバータ161L、Dフリップフ
ロップ162L,ANDゲート163L,ANDゲート
164L,ORゲート165L,及びORゲート166
Lは、CPU−L140が共有メモリ120に対してア
ドレスを行う際の調停制御を行う。
【0047】次に、CPU−R150が共有メモリ12
0をアクセスする際の調停制御を行う回路を構成する各
素子について説明する。インバータ161Rは、アクセ
スバスA−BUSR の最下位ビット(LSB)のアドレ
ス信号A0 Rを反転して、Dフリップフロップ162R
にデータ入力端子Dに加える。
【0048】Dフリップフロップ162Rは、そのクロ
ック入力端子CKにORゲート165Rの出力を入力
し、そのクロック入力端子CKに入力される信号の立ち
上がりエッジで、データ入力端子Dに加わっている信号
を取り込み、その取り込んだ信号の反転信号を出力端子
バーQからANDゲート163Rの一方の入力端子に加
える。
【0049】ANDゲート163Rは上記Dフリップフ
ロップ162RのバーQ出力を一方の入力端子に入力す
ると共に、共有メモリ120のビジィ信号バーBUSY
L を他方の入力端子に入力し、Dフリップフロップ16
2RのバーQ出力が“L”であるときに、共有メモリ1
20から出力されるビジィ信号BUSYL を通過させ、
ORゲート165Lの一方の入力端子に加える。
【0050】また、ANDゲート164Rは、CPU−
R150がコントロールバスC−BUSR 上に出力する
リード信号バーRDR とライト信号バーWRR を入力
し、それらの入力信号RDR ,WRR の内いずれか一方
が“L”であるときに、“L”をORゲート165Rに
加える。
【0051】ORゲート165Rは、上記ANDゲート
164Rの出力とCPU−R150が上記コントロール
バスC−BUSR 上に出力したチップセレクト信号バー
CS R を入力し、上記ORゲート165R の出力と上記
チップセレクト信号バーCS R が共に“L”になったと
きに、出力を“H”から“L”に変化させる(立ち下が
りエッジの発生)。
【0052】ORゲート166Rは、上記CPU−L1
40がコントロールバスC−BUS L 上に出力したチッ
プセレクト信号バーCSL 及びANDゲート163Rの
出力を入力し、それらの入力信号が共に“L”であると
きにレディ信号RDYR を“L”(インアクティブ)に
してCPU−R150のウェイト信号入力端子バーWA
ITR に出力する。
【0053】次に、上記構成の実施例の動作を、図5の
タイミングチャートを参照しながら説明する。まず、C
PU−L140の方が先に共有メモリ120をアクセス
した場合、下記のような動作が行われる。
【0054】 CPU−L140は、まず所望の16
ビットデータ(ワードデータ)Dn(n=0,1,2,
・・・)の下位8ビット(下位バイト)Dn −LOB
(n=0,1,2,・・・)のアドレス2n+1を示す
アドレス信号A0 L〜A7 LをアドレスバスA−BUS
L に出力し、次にチップセレクト信号バーCSL をアク
ティブ(“L”)にする(図5(a)参照)。
【0055】このことにより、共有メモリ120はCP
U−R150に対するビジィ信号バーBUSYR をイン
アクティブ(“H”)からアクティブ(“L”)に変化
させる(同図(f)参照)。
【0056】このように、ビジィ信号のバーBUSYR
がアクティブ(“L”)になると、ANDゲート163
Lの出力が“L”となり、ORゲート166Lの一方の
入力端子に加わる。したがって、この状態のとき、CP
U−R150が共有メモリ120をアクセスするため
に、チップセレクト信号バーCSR をアクティブ
(“L”)にすると(同図(g)参照)、ORゲート1
66Lの出力するレディ信号RDYR はインアクティブ
(“L”)となってCPU−R150のウェイト信号入
力端子バーWAITR に加わるため、CPU−R150
は、ウェイト状態となって待機する。
【0057】 また、CPU−L140が16ビット
データDn (n=0,1,2,・・・)の下位バイト、
n −LOB(n=0,1,2,・・・)をアクセスし
たことにより、そのアクセスしたアドレス2nの最下位
ビット(LSB)A0 Lは“L”となり、インバータ1
61Lは、Dフリップフロップ162Lのデータ入力端
子Dに加える出力を“L”から“H”に変化させる。
【0058】そして、CPU−L140が、上記16ビ
ットデータDn (n=0,1,2,・・・)の下位バイ
トDn −LOB(n=0,1,2,・・・)の読み出し
または書き込みを行うべくリード信号バーRDまたはラ
イト信号バーWRをアクティブ(“L”)にすると(同
図(h)参照)、ANDゲート164Lの出力は、
“H”から“L”に変化する。
【0059】このANDゲート164Lの出力の変化に
より、ORゲート165LはDフリップフロップ162
Lのクロック端子CKに加える出力を“H”から“L”
に変化させて立ち下がりエッジを発生させる。Dフリッ
プフロップ162Lは、自己のクロック端子CKに加わ
る上記立ち下がりエッジに同期して、インバータ161
Lの出力“H”を取り込み、その出力バーQL を“H”
から“L”に変化させて、ANDゲート163Lの一方
の入力端子に出力する(Dフリップフロップ162Lの
セット、同図(e)参照)。
【0060】このことにより、ANDゲート163Lの
出力は“L”のままオアゲート165Rの一方の入力端
子に加わる。このためCPU−R150が、共有メモリ
120をアクセスするためにチップセレクト信号バーC
R をアクティブ(“L”)にすると、ORゲート16
5Rの他方の入力端子も“L”になるので、ORゲート
166Lの出力するレディ信号RDYR がインアクティ
ブ(“L”)となってCPU−R150のウェイト信号
入力端子バーWAITR に加わり、CPU−R150は
ウェイト状態で待機させられる。
【0061】 続いて、CPU−L140は、上記デ
ータDn の下位バイトDn −LOBに対するアクセスが
終了すると、リード信号バーRD(データ読み出しの場
合)またはライト信号バーWR(データ書き込みの場
合)をいったんインアクティブ(“H”)に戻し(同図
(b)参照し)、さらに続いてチップセレクト信号バー
CSR もインアクティブ(“H”)に戻す(同図(a)
参照)。共有メモリ120は、CPU−L140のから
加わるチップセレクト信号CSR がアクティブ
(“L”)からインアクティブ(“H”)に変化するこ
とにより、CPU−R150に出力するビジィ信号バー
BUSYR をアクティブ(“L”)からインアクティブ
(“H”)に戻す(同図(a),(f)参照)。
【0062】しかし、このように共有メモリ120に加
わるビジィ信号バーBUSYR がインアクティブ
(“H”)になっても、Dフリップフロップ162Lの
バーQ出力は“L”に維持されるため(同図(e)参
照)、CPU−R150が共有メモリ120をアクセス
すべくチップセレクト信号バーCSR のアクティブ
(“L”)にしたままにしていても、ORゲート166
LがCPU−R150のウェイト信号入力端子バーWA
ITR に出力するレディ信号RDYR はインアクティブ
(“L”)のまま変化せず(同図(g),(j)参
照)、CPU−R150はウェイト状態のまま待機させ
られる。
【0063】 次に、CPU−140Rは、今度は上
記16ビットデータDn (n=0,1,2,・・・)の
上位バイトDn −HOB(n=0,1,2,・・・)に
対してアクセスを行うが、このアクセスも上述した16
ビットデータDn (n=0,1,2,・・・)下位バイ
トDn −LOB(n=0,1,2,・・・)に対するア
クセスと同様にして行う。すなわち、CPUL−140
は、その上位バイトD n −HOB(n=0,1,2,・
・・)のアドレス(=2n+2;n=0,1,2,・・
・)を指定するアドレス信号A0 L〜A7 Lをアドレス
バスA−BUS L 上に出力した後、チップセレクト信号
バーCSL を再びアクティブ(“L”)にする(同図
(a)参照)。
【0064】共有メモリ120は、このようにチップセ
レクト信号バーCSL がアクティブ(“L”)になって
も、チップセレクト信号バーCSR の方が先にアクティ
ブ(“L”)となっているため、CPU−R150に対
するビジィ信号バーBUSY R をアクティブ(“L”)
にはしない(同図(f),(g)参照)。
【0065】また、CPU−140Rが、上述のように
して16ビットデータDn の上位バイトDn −HOB
(n=0,1,2,・・・)のアドレス2n+1をアド
レスバスA−BUSR 上に出力すると、そのアドレス2
n+1の最下位ビット(LSB)のアドレス信号A0
(LSB)が“H”となり、インバータ161の出力は
“H”から“L”に変化してDフリップフロップ162
Lのデータ入力端子Dに加わる。
【0066】 続いて、CPU−140Rが、16ビ
ットデータの上位バイトDn −HOB(n=0,1,
2,・・・)をアクセスするために、リード信号バーR
Dまたはライト信号バーWRをアクティブ(“L”)に
すると、上述したようにして、Dフリップフロップ16
2Lのクロック端子CKに加わるORゲート165Lの
出力が“H”から“L”に変化する(立ち下がりエッジ
の発生)。Dフリップフロップ162Lは、そのクロッ
ク端子CK入力の立ち下がりエッジに同期して、インバ
ータ161Lの出力(“L”)を取り込み、そのバーQ
出力を“L”から“H”に変化させる(Dフリップフロ
ップ162Lのリセット、同図(b),(e)参照)。
【0067】このことにより、ANDゲート163Lの
出力は“H”となってORゲート166Rの一方の入力
端子に加わる。そして、このことによりORゲート16
6LがCPU−R150のウェイト信号入力端子バーW
AITR に出力するレディ信号RDYR がアクティブ
(“H”)となり、CPU−R150は、待機状態から
解放されて、共有メモリ120に対するアクセスが可能
になる。(同図(e),(j)参照)。
【0068】また、逆に、CPU−R150がCPU−
L140よりも先に共有メモリ120に対するアクセス
を行った場合には、上記説明においてCPU−R150
とCPU−L140の立場が互いに入れ換わった条件の
下で上記説明と同様な動作が行われる。
【0069】ところで、CPU−L140が16ビット
データDn の下位バイトDn −LOB(n=0,1,
2,・・・)のアクセスが終了した後、いったんチップ
セレクト信号バーCSR をインアクティブ(“H”)に
すると、共有メモリ120は、CPU−L140に対す
るビジィ信号バーBUSYL をアクティブ(“L”)に
するが、このときCPU−L140のウェイト信号入力
端子バーWAITL にレディ信号RDYL を出力するO
Rゲート166Rの一方の入力端子にはCPUL−15
0が出力するチップセレクト信号バーCSL が“H”と
なって加わっているので、上記レディ信号RDYL はア
クティブ(“H”)状態を継続する。
【0070】したがって、CPU−R150が、チップ
セレクト信号バーCSR 及びリード信号バーRDもしく
はライト信号バーWRのいずれか一方をアクティブ
(“L”)にして待機状態となっていても、CPU−L
140が、次に16ビットデータDn の上位バイトDn
−HOB(n=0,1,2,・・・)をアクセスするた
めに、いったんチップセレクト信号バーCSL をインア
クティブ(“H”)にしても、CPU−L140はウェ
イト状態にされることはない。
【0071】尚、上記実施例では、共有メモリ120の
偶数アドレスに16ビットデータ(ワードデータ)Dn
(n=0,1,2,・・・)の下位バイトDn −LOB
を、奇数アドレスに上記16ビットデータ(ワードデー
タ)Dn (n=0,1,2,・・・)の上位バイトDn
−HOBを格納するようにしているが、これとは逆に下
位バイトを奇数アドレスに上位バイトを偶数アドレスに
格納するようにしても良い。この場合、図4に示す制御
回路160において、アドレス信号A0 L〜A 7 L(A
0 R〜A7 R)の最下位ビット(LSB)であるA0
(A0 R)を、インバータ161L(161R)を介す
ることなく、直接、Dフリップフロップ162L(16
2R)のデータ入力端子Dに入力するだけで、共有メモ
リ120の制御回路を実現できる。
【0072】また、共有メモリに格納されるワードデー
タのバイトのビット長は、8ビットに限定されるもので
はなく、任意ビット長であってよい。
【0073】
【発明の効果】本発明によれば、一方のCPUが共有メ
モリから1ワードのデータをバイト単位でアクセスする
処理が終了するまで、他方のCPUは共有メモリに対す
るアクセスが待たされるので、バイト単位でデータを格
納する一個のデュアル・ポートの共有メモリを介して、
2つのCPUがデータの授受を確実に行うことができ
る。また、共有メモリの制御回路も簡単な構成となりか
つ、共有メモリも一個のデュアル・ポートメモリを用い
るだけでよいので、2つのCPU間で共有メモリを介し
てワードデータの授受を行うマルチCPUシステムを、
低コストでかつ簡単な回路で実現できる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の一実施例の全体構成図である。
【図3】上記一実施例における共有メモリのデータ格納
形式を説明する図である。
【図4】上記一実施例の共有メモリ及びその制御回路の
詳細な回路構成図である。
【図5】上記一実施例の動作を説明するためのタイミン
グチャートである。
【図6】従来の共有メモリを有するマルチCPUシステ
ムの全体構成図である。
【図7】従来のマルチCPUシステムで共有メモリとし
て用いられるデュアル・ポートRAMA 及びデュアル・
ポートRAMB のデータ格納形式を示す図である。
【図8】上記従来のマルチCPUシステムの詳細な回路
構成図である。
【符号の説明】
1 共有メモリ 2 ウェイト制御手段 3 アクセス許可手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 2つのCPUが、データを格納する共有
    メモリを介してバイト単位でワードデータの授受を行う
    マルチCPUシステムにおいて、前記各CPUの前記共
    有メモリに対するアクセスの調停を行う共有メモリの調
    停装置であって一方のCPUが、バイト単位でデータの
    リード/ライトが行われる2つの入出力ポートを有する
    1個の共有メモリ(1)をアクセスしており、前記共有
    メモリ(1)から所望するワードデータの全バイトのア
    クセスをまだ終了していない期間に、他方のCPUが前
    記共有メモリ(1)に対してアクセスを行ったとき、そ
    の他方のCPUをウェイト状態にするための制御信号を
    出力するウェイト制御手段(2)と、 前記一方のCPUが前記共有メモリ(1)からワードデ
    ータの読み出しを終了したとき、前記他方のCPUのウ
    ェイト状態を解除し、前記他方のCPUに対し前記共有
    メモリ(1)のアクセスを許可するアクセス許可手段
    (3)と、 を備えたことを特徴とする共有メモリのアクセス調停装
    置。
JP13340692A 1992-05-26 1992-05-26 共有メモリのアクセス調停装置 Pending JPH05324577A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13340692A JPH05324577A (ja) 1992-05-26 1992-05-26 共有メモリのアクセス調停装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13340692A JPH05324577A (ja) 1992-05-26 1992-05-26 共有メモリのアクセス調停装置

Publications (1)

Publication Number Publication Date
JPH05324577A true JPH05324577A (ja) 1993-12-07

Family

ID=15104016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13340692A Pending JPH05324577A (ja) 1992-05-26 1992-05-26 共有メモリのアクセス調停装置

Country Status (1)

Country Link
JP (1) JPH05324577A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1953643A2 (en) 2007-02-01 2008-08-06 Denso Corporation Calculation apparatus provided with a plurality of calculating units which access a single memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1953643A2 (en) 2007-02-01 2008-08-06 Denso Corporation Calculation apparatus provided with a plurality of calculating units which access a single memory

Similar Documents

Publication Publication Date Title
US5398211A (en) Structure and method for providing prioritized arbitration in a dual port memory
US4149242A (en) Data interface apparatus for multiple sequential processors
US6463529B1 (en) Processor based system with system wide reset and partial system reset capabilities
EP0646873A2 (en) Single-chip microcomputer
US4872138A (en) Transparent cache memory
US5870602A (en) Multi-processor system with system wide reset and partial system reset capabilities
JP5137171B2 (ja) データ処理装置
JPS59216269A (ja) 通信用共有ランダム・アクセス・メモリ
JP3039557B2 (ja) 記憶装置
US6763448B1 (en) Microcomputer and microcomputer system
JPH07105146A (ja) 共有メモリ装置
JP3693013B2 (ja) データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
US20090240896A1 (en) Microprocessor coupled to multi-port memory
US5317750A (en) Microcontroller peripheral expansion bus for access to internal special function registers
JPS5832427B2 (ja) 多重情報処理システム
JPH05324577A (ja) 共有メモリのアクセス調停装置
WO2001025941A1 (en) Multiprocessor computer systems with command fifo buffer at each target device
JP2004078396A (ja) メモリ装置
JPH0330175B2 (ja)
JPH07271654A (ja) コントローラ
KR950000125B1 (ko) 듀얼 포트램을 이용한 at-버스와 입출력 콘트롤러 프로세서의 인터페이스 회로
JP2647092B2 (ja) マルチプロセツサシステム
JPS6383844A (ja) マイクロプロセツサシステム
JP3204157B2 (ja) 計算機のデータ供給方式
JPH0351943A (ja) 高速バスと低速バスのバスライン共用化方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20001031