JPH0679306B2 - マルチプロセツサの制御方法 - Google Patents
マルチプロセツサの制御方法Info
- Publication number
- JPH0679306B2 JPH0679306B2 JP58095795A JP9579583A JPH0679306B2 JP H0679306 B2 JPH0679306 B2 JP H0679306B2 JP 58095795 A JP58095795 A JP 58095795A JP 9579583 A JP9579583 A JP 9579583A JP H0679306 B2 JPH0679306 B2 JP H0679306B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- processor
- cpu
- byte
- storage 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔発明の技術分野〕 本発明は、2台のプロセッサ共有記憶装置に結合された
マルチプロセッサの制御方法の改良に関する。
マルチプロセッサの制御方法の改良に関する。
複数のプログラマブルコントローラ(以下プロセッサと
呼ぶ)が共有の記憶装置で結合されたマルチプロセツサ
システムの一例を第1図に示す。
呼ぶ)が共有の記憶装置で結合されたマルチプロセツサ
システムの一例を第1図に示す。
第1図は2組のプロセツサPSC−A,PSC−Bを結合したも
ので、中央演算処理装置CPU−A,CPU−Bはそれぞれシス
テムバスBUS−A,BUS−Bを介してそれぞれのプログラム
記憶装置PM−A,PM−B、データ記憶装置DM−A,DM−Bお
よび入出力装置I/O−A,I/O−Bに結合され、さらに共用
記憶装置制御回路CMCCを介して共有記憶装置CMに結合さ
れている。
ので、中央演算処理装置CPU−A,CPU−Bはそれぞれシス
テムバスBUS−A,BUS−Bを介してそれぞれのプログラム
記憶装置PM−A,PM−B、データ記憶装置DM−A,DM−Bお
よび入出力装置I/O−A,I/O−Bに結合され、さらに共用
記憶装置制御回路CMCCを介して共有記憶装置CMに結合さ
れている。
またCPU−A,CPU−Bからそれぞれロツク信号LOCKA,LOCK
Bが上記CMCCに入力されている。
Bが上記CMCCに入力されている。
上記第1図の構成において、CPU−A,CPU−Bと共通記憶
装置CMとの間のデータの読出しおよび書込みの処理は直
列に行なわれる。
装置CMとの間のデータの読出しおよび書込みの処理は直
列に行なわれる。
従つてCPU−Aの一連のアクセスが終了しないうちに、C
PU−Bのアクセスが開始されると、例えば第2図に示す
ように、CPU−Aの演算結果がCMに書込まれる時点t13よ
り前の時点t12でCPU−BがCMのデータを読出し、従つて
CPU−Aの演算結果がCPU−Bの演算において無視される
という不都合を生ずる。
PU−Bのアクセスが開始されると、例えば第2図に示す
ように、CPU−Aの演算結果がCMに書込まれる時点t13よ
り前の時点t12でCPU−BがCMのデータを読出し、従つて
CPU−Aの演算結果がCPU−Bの演算において無視される
という不都合を生ずる。
上記の不都合を防止するために、従来からTS(TEST AND
SET)命令が用いられている。
SET)命令が用いられている。
すなわちCM内に1つのPCUがCMをアクセス中であるとい
うフラグとしてロツクバイトを用意し、ロツクバイトが
1であれば他のCPUからのCMのアクセスを禁止し、ロツ
クバイトが0であればこれを許可するもので、第3図に
示すように(1)ロツク信号をセツトし、(2)ロツク
バイトを読出す、(3)ロツクバイトに1を書込む、
(4)ロツク信号をリセツト、の4つのステツプから構
成されている。
うフラグとしてロツクバイトを用意し、ロツクバイトが
1であれば他のCPUからのCMのアクセスを禁止し、ロツ
クバイトが0であればこれを許可するもので、第3図に
示すように(1)ロツク信号をセツトし、(2)ロツク
バイトを読出す、(3)ロツクバイトに1を書込む、
(4)ロツク信号をリセツト、の4つのステツプから構
成されている。
第1図においてLOCKA,LOCKBがロツク信号であり、TS命
令を用いることによつて第4図に示すようなロツク動作
が行なわれる。
令を用いることによつて第4図に示すようなロツク動作
が行なわれる。
第4図において、CMのロツクバイトが0のとき、時点t
41でCPU−AがTS命令を実行すると、TS命令のステツプ
(2)で読出したロツクバイトは0となり、これによつ
てPCU−AはCMのアクセスを許可され、データを読出し
て演算を行ない、時点t44で演算結果をCMに書込む。
41でCPU−AがTS命令を実行すると、TS命令のステツプ
(2)で読出したロツクバイトは0となり、これによつ
てPCU−AはCMのアクセスを許可され、データを読出し
て演算を行ない、時点t44で演算結果をCMに書込む。
一方、上記TS命令のステツプ(2)の直後にステツプ
(3)としてロツクバイトは強制的に1に書きかえら
れ、従つて時点t41以降はCMのロツクバイトは1になつ
ている。
(3)としてロツクバイトは強制的に1に書きかえら
れ、従つて時点t41以降はCMのロツクバイトは1になつ
ている。
このためCPU−Bが例えば時点t43でTS命令を実行して
も、読出したロツクバイト=1であり、従つてCMのアク
セスは禁止され、CPU−Bはウエイトの状態となる。
も、読出したロツクバイト=1であり、従つてCMのアク
セスは禁止され、CPU−Bはウエイトの状態となる。
CPU−Aは演算結果の書込みが終ると時点t45でロツクバ
イトに0を書込む。
イトに0を書込む。
これによつてCMのロツクバイト=0となるので、この状
態で例えばCPU−Bが時点t46でTS命令を実行とすると読
出されたロツクバイト=0となり、CPU−BはCMのアク
セスが許可されて演算を開始する。
態で例えばCPU−Bが時点t46でTS命令を実行とすると読
出されたロツクバイト=0となり、CPU−BはCMのアク
セスが許可されて演算を開始する。
以上の動作によつて、CPU−Aと、CPU−Bは互に競合し
てCMをアクセスすることがないので、第2図のような不
都合は生じない。
てCMをアクセスすることがないので、第2図のような不
都合は生じない。
しかしながら最近は1チツプマイクロプロセツサなどフ
アームウエアにTS命令をもたないプロセツサをマルチプ
ロセツサに用いることが行なわれており、TS命令を用い
ないロツク動作が要求されて来ている。
アームウエアにTS命令をもたないプロセツサをマルチプ
ロセツサに用いることが行なわれており、TS命令を用い
ないロツク動作が要求されて来ている。
本発明は、TS命令またはこれに相当する命令をもたない
プロセツサに簡単なハードウエアを追加することによつ
てTS命令と同様なロツク機能をもたせるマルチプロセツ
サの制御方法を提供することを目的としている。
プロセツサに簡単なハードウエアを追加することによつ
てTS命令と同様なロツク機能をもたせるマルチプロセツ
サの制御方法を提供することを目的としている。
本発明のマルチプロセッサの制御方法は、2台のプロセ
ッサ(A),(B)が共有記憶装置(CM)に結合された
マルチプロセッサシステムにおいて、前記共有記憶装置
(CM)にそれぞれのプロセッサ(A),(B)に対応す
る2組のロックバイト(A),(B)を設けると共に片
方のプロセッサ(B)にロック信号発生用のフリップフ
ロップ(F/F−B)を設け、一方のプロセッサ(A)は
無条件に当該プロセッサ(A)に対応するロックバイト
(A)に1を書込み、他方のプロセッサ(B)に対する
ロックバイト(B)を読出してその値が0ならば当該プ
ロセッサ(A)による前記共有記憶装置(CM)への書込
みを行った後に当該プロセツサ(A)に対応するロック
バイト(A)に0を書込み、他方のプロセツサ(B)に
対するロックバイト(B)を読出してその値が1ならば
当該プロセッサ(A)による前記共有記憶装置(CM)へ
の書込みは行わず当該プロセッサ(A)に対応するロッ
クバイト(A)に0を書込むようにし、一方他方のプロ
セッサ(B)は前記フリップフロップ(F/F−B)にて
ロック信号をセットし、当該プロセッサ(A)に対する
ロックバイト(A)を読出してその値が0なら他方のプ
ロセッサ(B)に対するロックバイト(B)に1を書込
み、他方のプロセッサ(B)にてロックしたことを表
し、その値が1なら当該プロセッサ(A)にてロック中
のため何もせず前記フリップフロップ(F/F−B)をリ
セットすることによって、両方のプロセッサ(A),
(B)が前記共有記憶装置(CM)を競合してアクセスし
ないように相互にロックするようにしたことを特徴とす
るものである。
ッサ(A),(B)が共有記憶装置(CM)に結合された
マルチプロセッサシステムにおいて、前記共有記憶装置
(CM)にそれぞれのプロセッサ(A),(B)に対応す
る2組のロックバイト(A),(B)を設けると共に片
方のプロセッサ(B)にロック信号発生用のフリップフ
ロップ(F/F−B)を設け、一方のプロセッサ(A)は
無条件に当該プロセッサ(A)に対応するロックバイト
(A)に1を書込み、他方のプロセッサ(B)に対する
ロックバイト(B)を読出してその値が0ならば当該プ
ロセッサ(A)による前記共有記憶装置(CM)への書込
みを行った後に当該プロセツサ(A)に対応するロック
バイト(A)に0を書込み、他方のプロセツサ(B)に
対するロックバイト(B)を読出してその値が1ならば
当該プロセッサ(A)による前記共有記憶装置(CM)へ
の書込みは行わず当該プロセッサ(A)に対応するロッ
クバイト(A)に0を書込むようにし、一方他方のプロ
セッサ(B)は前記フリップフロップ(F/F−B)にて
ロック信号をセットし、当該プロセッサ(A)に対する
ロックバイト(A)を読出してその値が0なら他方のプ
ロセッサ(B)に対するロックバイト(B)に1を書込
み、他方のプロセッサ(B)にてロックしたことを表
し、その値が1なら当該プロセッサ(A)にてロック中
のため何もせず前記フリップフロップ(F/F−B)をリ
セットすることによって、両方のプロセッサ(A),
(B)が前記共有記憶装置(CM)を競合してアクセスし
ないように相互にロックするようにしたことを特徴とす
るものである。
本発明の一実施例を第5図に示す。
第5図において、CPU−A,CPU−BはTS命令を持っておら
ず、片方のプロセッサCPU−Bのみに自由にセット、リ
セットできるロック信号LOCK Bが発生できるフリップフ
ロップF/F−Bが設けられており、他は第1図と同じで
ある。
ず、片方のプロセッサCPU−Bのみに自由にセット、リ
セットできるロック信号LOCK Bが発生できるフリップフ
ロップF/F−Bが設けられており、他は第1図と同じで
ある。
第5図において、CPU−AとCPU−Bの間でロック動作を
行わせるには、CMにロックバイトAとロックバイトBを
別々に設け、CPU−A側は第6図に示すようなロック要
求シーケンスを、CPU−B側は第7図に示すようなF/Fロ
ック判定シーケンスを走らせればよい。
行わせるには、CMにロックバイトAとロックバイトBを
別々に設け、CPU−A側は第6図に示すようなロック要
求シーケンスを、CPU−B側は第7図に示すようなF/Fロ
ック判定シーケンスを走らせればよい。
すなわちCPU−Aは第6図に示すように、(1)無条件
にロツクバイトA(CPU−Bに対するロツクバイト)に
1を書込み、(2)ロツクバイトB(CPU−Aに対する
ロツクバイト)を読出し、(3)ロツクバイトBが0な
らCPU−Aにてロツクしたことを表し、(4)その値が
1ならCPU−Bにてロツク中のためロツクバイトAに0
を書込む。
にロツクバイトA(CPU−Bに対するロツクバイト)に
1を書込み、(2)ロツクバイトB(CPU−Aに対する
ロツクバイト)を読出し、(3)ロツクバイトBが0な
らCPU−Aにてロツクしたことを表し、(4)その値が
1ならCPU−Bにてロツク中のためロツクバイトAに0
を書込む。
一方CPU−Bは第7図に示すように、(1)F/F−Bをセ
ツト(ロツク信号LOCKBをセツト)し、(2)ロツクバ
イトAの読出し、(3)その値が0ならロツクバイトB
に1を書込みCPU−Bにてロツクしたことを表し、
(4)その値が1ならCPU−Aにてロツク中のため何も
せず、(5)その値に関係なくF/F−Bをリセツト(ロ
ツク信号LOCKBをリセツト)する。
ツト(ロツク信号LOCKBをセツト)し、(2)ロツクバ
イトAの読出し、(3)その値が0ならロツクバイトB
に1を書込みCPU−Bにてロツクしたことを表し、
(4)その値が1ならCPU−Aにてロツク中のため何も
せず、(5)その値に関係なくF/F−Bをリセツト(ロ
ツク信号LOCKBをリセツト)する。
なお、この場合は、第3図の場合と異なり、CPU−Aが
ロツクバイトをアクセスしている途中にいつでもCPU−
Bによりロツクバイトをアクセスできるが、この点はソ
フトウエアで補つており、全く問題なく処理することが
できる。
ロツクバイトをアクセスしている途中にいつでもCPU−
Bによりロツクバイトをアクセスできるが、この点はソ
フトウエアで補つており、全く問題なく処理することが
できる。
〔発明の効果〕 以上説明したように、本発明によれば、TS命令またはこ
れに相当する命令を持たない2台のプロセッサを共有の
記憶装置に結合したマルチプロセッサシステムに対し
て、1個のフリップフロップと追加とソフトウエアの変
更とによって共有の記憶装置を同時にアクセスしないよ
うに相互にロックすることができ、しかも構造が簡単で
あるにもかかわらずロック信号発生用のフリップフロッ
プを2個用いた場合と同等の作用を有するので、極めて
実用的で有用なマルチプロセッサの制御方法を提供する
ことができる。
れに相当する命令を持たない2台のプロセッサを共有の
記憶装置に結合したマルチプロセッサシステムに対し
て、1個のフリップフロップと追加とソフトウエアの変
更とによって共有の記憶装置を同時にアクセスしないよ
うに相互にロックすることができ、しかも構造が簡単で
あるにもかかわらずロック信号発生用のフリップフロッ
プを2個用いた場合と同等の作用を有するので、極めて
実用的で有用なマルチプロセッサの制御方法を提供する
ことができる。
第1図は従来のマルチプロセツサシステムの一例を示す
系統図、第2図はロツク動作の必要性を説明するための
時系列フローチヤート、第3図は第1図で用いられるTS
命令のフローチヤート、第4図はTS命令を含むマルチプ
ロセツサの動作を示す時系列フローチヤート、第5図は
本発明の一実施例を示す系統図、第6図は第5図におけ
るCPU−A用のロック要求シーケンスを示すフローチャ
ート、第7図は第5図におけるCPU−BのF/Fロック判定
シーケンスを示すフローチャートである。 PSC−A,PSC−B……プロセツサ CPU−A,CPU−B……中央演算処理装置 PM−A,PM−B……プログラム記憶装置 DM−A,DM−B……データ記憶装置 I/O−A,I/O−B……入出力装置 BUS−A,BUS−B……システムバス CM……共有記憶装置 CMCC……CM制御回路 F/F−B……フリツプフロツプ
系統図、第2図はロツク動作の必要性を説明するための
時系列フローチヤート、第3図は第1図で用いられるTS
命令のフローチヤート、第4図はTS命令を含むマルチプ
ロセツサの動作を示す時系列フローチヤート、第5図は
本発明の一実施例を示す系統図、第6図は第5図におけ
るCPU−A用のロック要求シーケンスを示すフローチャ
ート、第7図は第5図におけるCPU−BのF/Fロック判定
シーケンスを示すフローチャートである。 PSC−A,PSC−B……プロセツサ CPU−A,CPU−B……中央演算処理装置 PM−A,PM−B……プログラム記憶装置 DM−A,DM−B……データ記憶装置 I/O−A,I/O−B……入出力装置 BUS−A,BUS−B……システムバス CM……共有記憶装置 CMCC……CM制御回路 F/F−B……フリツプフロツプ
Claims (1)
- 【請求項1】2台のプロセッサ(A),(B)が共有記
憶装置(CM)に結合されたマルチプロセッサシステムに
おいて、前記共有記憶装置(CM)にそれぞれのプロセッ
サ(A),(B)に対応する2組のロックバイト
(A),(B)を設けると共に片方のプロセッサ(B)
にロック信号発生用のフリップフロップ(F/F−B)を
設け、一方のプロセッサ(A)は無条件に当該プロセッ
サ(A)に対応するロックバイト(A)に1を書込み、
他方のプロセッサ(B)に対するロックバイト(B)を
読出してその値が0ならば当該プロセッサ(A)による
前記共有記憶装置(CM)への書込みを行った後に当該プ
ロセツサ(A)に対応するロックバイト(A)に0を書
込み、他方のプロセツサ(B)に対するロックバイト
(B)を読出してその値が1ならば当該プロセッサ
(A)による前記共有記憶装置(CM)への書込みは行わ
ず当該プロセッサ(A)に対応するロックバイト(A)
に0を書込むようにし、一方、他方のプロセッサ(B)
は前記フリップフロップ(F/F−B)にてロック信号を
セットし、当該プロセッサ(A)に対するロックバイト
(A)を読出してその値が0なら他方のプロセッサ
(B)に対するロックバイト(B)に1を書込み、他方
のプロセッサ(B)にてロックしたことを表し、その値
が1なら当該プロセッサ(A)にてロック中のため何も
せず前記フリップフロップ(F/F−B)をリセットする
ことによって、両方のプロセッサ(A),(B)が前記
共有記憶装置(CM)を競合してアクセスしないように相
互にロックするようにしたことを特徴とするマルチプロ
セッサの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58095795A JPH0679306B2 (ja) | 1983-06-01 | 1983-06-01 | マルチプロセツサの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58095795A JPH0679306B2 (ja) | 1983-06-01 | 1983-06-01 | マルチプロセツサの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59223873A JPS59223873A (ja) | 1984-12-15 |
JPH0679306B2 true JPH0679306B2 (ja) | 1994-10-05 |
Family
ID=14147376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58095795A Expired - Lifetime JPH0679306B2 (ja) | 1983-06-01 | 1983-06-01 | マルチプロセツサの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0679306B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6320653A (ja) * | 1986-07-15 | 1988-01-28 | Sekisui Chem Co Ltd | マルチプロセツサシステムのメモリアクセス方法 |
JPH06314232A (ja) * | 1993-05-06 | 1994-11-08 | Mitsubishi Electric Corp | メモリ切替制御回路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51131232A (en) * | 1975-05-12 | 1976-11-15 | Toshiba Corp | Computer composit system |
-
1983
- 1983-06-01 JP JP58095795A patent/JPH0679306B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS59223873A (ja) | 1984-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4665484A (en) | Shared memory multiprocessing system & method | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
JPS5837587B2 (ja) | メモリ・ロック装置 | |
EP0359233B1 (en) | Computer system and method for changing operation speed of system bus | |
JPH0679306B2 (ja) | マルチプロセツサの制御方法 | |
JP2000003302A (ja) | 共有メモリ排他アクセス制御方法 | |
JPH01169557A (ja) | 記憶制御装置 | |
JP2507071B2 (ja) | バスロック制御方式 | |
JPS58169659A (ja) | 共用ロツク制御方式 | |
JPS6022779B2 (ja) | 多重処理系のプログラム・ロ−デイング方法 | |
JPS6041779B2 (ja) | 入出力プログラム制御装置 | |
JPS58107977A (ja) | 記憶装置へのアクセス方式 | |
JPH0355657A (ja) | マルチタスク・マルチプロセッサシステムにおける共有メモリアクセス方式 | |
JP2503287B2 (ja) | 生存確認機能を持つ複合計算機 | |
JPS5840619A (ja) | シ−ケンスコントロ−ラおよびその制御方法 | |
JPH054710B2 (ja) | ||
JP3219422B2 (ja) | キャッシュメモリ制御方式 | |
JPH01310466A (ja) | マルチプロセッサシステム | |
JPS63298555A (ja) | 共有メモリ制御方式 | |
JPS61234447A (ja) | バス獲得制御装置 | |
JPH0581211A (ja) | プロセツサ間通信方式 | |
JPH0217563A (ja) | 共有メモリの初期化方法 | |
JPH01300365A (ja) | マルチプロセッサシステムの排他制御方式 | |
JPH044455A (ja) | メモリアクセス調停回路 | |
JPH01121965A (ja) | マイクロプロセッサ |