JPH0365751A - 多重プロセッサシステム - Google Patents

多重プロセッサシステム

Info

Publication number
JPH0365751A
JPH0365751A JP20157989A JP20157989A JPH0365751A JP H0365751 A JPH0365751 A JP H0365751A JP 20157989 A JP20157989 A JP 20157989A JP 20157989 A JP20157989 A JP 20157989A JP H0365751 A JPH0365751 A JP H0365751A
Authority
JP
Japan
Prior art keywords
processor
instruction
flop
flip
clock
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
JP20157989A
Other languages
English (en)
Inventor
Yuji Yamaguchi
裕司 山口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP20157989A priority Critical patent/JPH0365751A/ja
Publication of JPH0365751A publication Critical patent/JPH0365751A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 産業上の利用分野 本発明は複数のプログラムを同時に並列処理する複数の
プロセッサと共通メモリを有する多重プロセッサシステ
ムに関する。
従来の技術 複数のプロセッサが共通に使用することのできるメモリ
を介して接続されている多重プロセッサシステムにおい
て、複数個の遂次型プログラムが同時に並列処理をおこ
ない、全体としてひとつの非同期処理を行なおうとする
場合、共通メモリ上にある共有データに対するアクセス
に際しては相互排除の実現が必要となる。
従来から、上記相互排除を実現するための手法としてい
くつかの同期基本命令系が提案されている。これらの同
期基本命令を実現する際、同期基本命令の実行の内のあ
る範囲の動作については、他の同期基本命令の実行によ
って妨害されてはならない部分(非可分操作〉が必ず存
在する。
例として、同期基本命令のうちのP−■オペレーション
について非可分操作を説明する。第5図に、Pオペレー
ションのフローチャートを、第6図に■オペレーション
のフローチャートを示す。ここで、第5図におけるブロ
ック101の動作および第6図におけるブロック201
の動作は、保護変数S (Semaphore)を更新
するもので、それぞれS−8−1およびS’−S+1で
示されているが、この動作を更に分解すると、第7図に
示す動作となる。第7図においてブロック301の動作
とブロック303の動作との間に、もし、他のプロセッ
サ上で動作するプログラムで実行されたPまたはVオペ
レーションによってブロック303の動作が実行された
とすると、いま、問題にしているプログラムにとって、
ブロック301で読んだSの値は本当の値ではなかった
ことになり、正しいP−Vオペレーションは成立しない
よって、第5図、第6図のブロック101.201の動
作は非可分操作である。
非可分操作を多重プロセッサシステムにおいて実行する
ためには、何らかのハードウェアレベルの機能が必要で
ある。従来から提案されている方式には次の2つがある
(1)  テストアンドセット(testandset
 )命令を用いる。
(2)共通メモリのロック(Lock)命令、アンロッ
ク(Unlock )命令を用いる。
testandset命令は、ハードウェア命令の一種
で、変数を読み出し、その値をあらかじめ決められた領
域へ格納し、上記変数を1にセットするものである。例
として、testandset (a 、 b )命令
の操作を第8図に示す。第8図から明らかな様に、te
standset命令そのものも非可分操作である。す
なわち、testandset命令とは、同期基本命令
の実現のために必要な各種の非可分操作を単一の非可分
操作に集約したものと言える。
testandset命令の実現方法としては、特殊な
ハードウェアのフラグを持ち、非可分操作をハードウェ
ア的に実現しているものもあるが、もしフラグを共通メ
モリ上に持つなら結局(2)の共通メモリのLock、
 Unlock機能を用いることになる。第9図にte
standset命令を使用したPオペレーションの動
作を示す。
C)の共通メモリのLock、 Unlock命令を用
いる方法は非可分動作の間、他のプログラムが共通メモ
リ上のSをアクセスすることができない様に共通メモリ
全体を他プログラムからアクセス禁止にする方法である
。第10図にLock、 Unlock命令を使用した
Pオペレーションの動作を示す。尚、Lock命令自体
はアービタ機能を持ったハードウェアで実現されるのが
普通である。
発明が解決しようとする課題 以上説明した従来の方法では次に示す欠点があった。(
2)の方式は共通メモリ全体を他プログラムから使用禁
止にしてしまうため、同期基本命令以外の目的で共通メ
モリを使用しようとするプログラムに待動作をさせる事
になり性能上の問題がある。(1)の方式はもし共通メ
モリ上にフラグを持つなら結局(2)の共通メモリのL
ock、 Unlock機能を用いることになり、(2
)と同じ問題がある。また、フラグをハードウェアで持
つ場合には、フラグの数が固定になってしまい、プログ
ラムに応じた必要なフラグを用意できないという問題が
ある。
課題を解決するための手段 本発明の目的は、プロセッサが相互排除を必要とする命
令を実行する際、各プロセッサに対して互いに重複しな
い排他的クロックを与えるタイミング装置と、プロセッ
サからセット・リセット可能なフリップフロップにより
、ただ一つのプロセッサのみがクリティカルセクション
に入ることができ、非可分操作のみを互いに排他的に実
行し、一つのプロセッサで非可分操作が実行されても他
のプロセッサで動作するプログラムの非可分操作でない
部分の共通メモリの使用を可能とし、また、testa
ndset命令用のフラグの数にプログラムが影響され
ることのない、柔軟でかつ性能良く同期基本命令を実現
できる多重プロセッサシステムを提供することにある。
作用 本発明によれば、プロセッサが相互排除を必要とする命
令を実行する際、タイミング装置により与えられるクロ
ックがこのプロセッサを選択している期間であり、かつ
フリップフロップがリセット状態であれば、前記命令を
実行するが、クロックがこのプロセッサを選択していな
いか、または、前記フリップフロップがセット状態であ
れば、このプロセッサ自身のシステムクロックを停止し
、前記命令の実行を停止することを特徴とする多重プロ
セッサシステムが得られる。
実施例 次に本発明の実施例について図面を参照して説明する。
第1図に本発明の一実施例を示す。プロセッサ1は各々
専用バス2に接続された専用メモリ3を持ち、他のプロ
セッサlとは独立に処理が可能となっている。複数のプ
ログラムによる並列処理をおこなう為には、プロセッサ
1それぞれのプログラムが、相互にデータの授受をおこ
なったり、同期基本命令の実行によってプログラム間の
同期をとる必要がある。このため、全ての専用バス2は
、バスカプラ4を通して、共有バス5を介し、1つの共
有メモリ6に接続されている。共通メモリ6を複数のプ
ロセッサ1から利用するためには、共通バス5の競合の
問題を解決する必要があるが、それは本実施例の主旨で
はないので、図から省いである。各プロセッサ1からは
、FFS7゜FFR8が出力され、それぞれORゲート
13゜14を介して、フリップフロップ9のS入力、R
入力に接続される。プリップ70ツブ9のQ出力10 
(ACTIVE>は、全プロセッサに接続される。タイ
ミング装置11からは、各プロセッサ1に対する選択信
号12が、プロセッサ1へ接続され、各選択信号12は
、互いに重複しない排他的クロックである。
第2図に第1図の中で示したプロセッサ1についてその
内部構成の一部を示す。本図で示した範囲は主要部分の
みで、演算部といった部分については省いである。
同期基本命令の命令語が、専用メモリ3又は、共通メモ
リ6から読み出され、第2図のインストラクションレジ
スタ802へ信号線801を介して入力される。インス
トラクションレジスタに格納された同期基本命令の命令
語は、信号線803を介してマツピングROM804に
入力され、命令語の命令コードから、その命令を実行す
るための一連のマイクロプログラムの開始番地805を
発生する。マイクロプログラムの開始番地805は、プ
ロセッサ1のシステムクロックの一つであるCKA82
3をANDゲート825でゲートした出力CLK826
の立ち上がりで、スタートアドレスレジスタ806に取
り込まれる。スタートアドレスレジスタ806の内容は
、信号線807を介してマルチプレクサ821に接続さ
れる。マルチプレクサ821は、パイプラインレジスタ
811から出力されるマイクロインストラクションのネ
タストアドレス選択フィールド822の値に応じて、上
記スタートアドレスレジスタ806の出力807.マイ
クロプログラムカウンタレジスタ819の出力820.
パイプラインレジスタ811から出力されるマイクロイ
ンストラクションのアドレスフィールド812の中から
一つを選択する。マルチプレクサ821の出力808に
よりマイクロプログラムROM809からマイクロイン
ストラクションが選択され、CLK826の立ち上がり
で、信号線810を介してパイプラインレジスタ811
に取り込まれる。インクリメンタ817は、マルチプレ
クサの出力808を1だけ増分し、その出力818がC
LK826の立ち上がりでマイクロプログラムカウンタ
レジスタ819に取り込まれる。CLK826は、AN
Dゲート825の出力であり、エツジトリガDタイププ
リップフロップ815のQ出力が論理1であればCKA
823がANDゲート825を通して出力されるが、上
記Q出力が論理Oであれば、CLK826は論理φに固
定され、従ってプロセッサ1は停止する。エツジトリガ
Dタイプフリップ70ツブ815のD入力には、パイプ
ラインレジスタ811から出力されるマイクロインスト
ラクションの排他実行要求ビット827が接続され、C
KB824の立ち上がりエツジで取り込まれる。また、
上記フリップフロップ815のすセット入力には、第1
図の中で示したフリップフロップのQ出力10と、プロ
セッサ選択信号12と、CKB824をANDゲート8
13により論理積をとった信号814が接続される。
今、スタートアドレスレジスタに格納されている、同期
基本命令を実行するためのマイクロプログラムの開始番
地を、ネクストアドレス選択フィールド822により選
択すると、次のCLK826の立ち上がりで、一連のマ
イクロプログラムの第1マイクロインストラクシヨンが
、パイプラインレジスタ811に取り込まれる。上記第
1マイクロインストラクシヨンのネクストアドレス選択
フィールド822は、ネタストアドレスソースとしてマ
イクロプログラムカウンタ819を選択、また、排他実
行要求ビット827を論理1とする。上記排他実行要求
ビット827の値は、CKB824の立ち上がりエツジ
でDタイプフリッププロップ815に取り込まれ、回出
力816を論理Oにする。ここで、フリップフロップ9
のQ出力10とプロセッサ選択信号12の両方共論理1
であれば、CKB824が論理1の期間、上記Dタイプ
フリップフロップ815がリセットされ、Q出力816
は論理1にもどる。従って、CLK826は通常通り出
力され、プロセッサ1は第2マイクロインストラクシヨ
ンを実行することができる。一方、フリッププロップ9
のQ出力10とプロセッサ選択信号のどちらか一方でも
論理0であれば、上記Dタイプフリップフロップ815
はリセットされず、Q出力は論理Oのままなので、次の
マシンサイクル以降CLK826が出力されず、プロセ
ッサ1は命令の実行を停止する。その後、フリップフロ
ップ9の百出力10とプロセッサ選択信号の両方共論理
1になると、Dタイプフリップフロップ815がリセッ
トされ、プロセッサ1は、第2マイクロインストラクシ
ヨンから実現を再開できる。第2マイクロインストラク
シヨンでは、排他実行制御ビット827を論理Oにもど
すと共に、FFS7を論理1としフリップフロップ9を
セットする。以降のマイクロインストラクションで、相
互排除を要する命令の実行を行い、実行終了時点でFF
R8を論理1とすることによりフリップフロップ9をリ
セットする。
第3図に、前述した一連の動作のタイミング図を示す。
図では、プロセッサ選択信号12が論理Oであった為、
第2マイクロインストラクシヨンに進まない様子を示し
ている。今、CKA823の同期すなわちマシンサイク
ルをMCYとすると、プロセッサ選択信号12とブリッ
プフロップ9のQ出力10の両方が論理1となるという
条件がそろったサイクルから、フリップフロップ9がセ
ットされ終わるサイクルまで、それぞれのサイクルを含
めて3マシンサイクルを要する。従って、プロセッサ(
n)のマシンサイクルをMCY(n)とすると、プロセ
ッサ(n)が、フリップフロップ9をセットしようとし
ている間に、フリップ70ツブ<n+1)が選択されて
フリップフロップ9を同時にセットし始めることを避け
るため、第4図に示すように、プロセッサ(n)に対す
る選択信号PHnと、プロセッサ(n+1)に対する選
択信号PHn+1の間には、3MCY以上の間隔をあけ
ている。
発明の効果 本発明は、以上説明したように、プロセッサが相互排除
を要する命令を実行する際、タイミング装置により与え
られるクロックがこのプロセッサを選択している期間で
あり、かつ、フリップフロップがリセット状態であれば
、前記命令を実行するが、クロックがこのプロセッサを
選択していないか、または、前記フリップフロップがセ
ット状態であれば、このプロセッサ自身のシステムクロ
ックを停止し、前記命令を実行せず待ち状態に入ること
により、1つのプロセッサのみが、非可分操作のみを排
他的に実行し、1つのプロセッサが共通メモリを非可分
操作により専有することなく効率良く、また、test
andset命令のフラグの数に影響されることなく柔
軟に命令を実行できる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
第1図に示すプロセッサ1を説明するブロック図、第3
図はプロセッサ1の動作を説明するタイミングチャート
、第4図はタイミング装置から出力される各プロセッサ
選択信号の関係を示すタイミングチャート、第5図、第
6図はそれぞれPオペレーションのフローチャートとV
オペレーションのフローチャート、第7図は第5図、第
6図に示すブロック101,201の詳細を説明するフ
ローチャート、第8図はtestandset命令のフ
ローチャート、第9図はtestandset命令を用
いたPオペレーションのフローチャート、第10図はL
ock、 Unlock命令を用いたPオペレーション
のフローチャートである。 1・・・・・・プロセッサ、3・・・・・・専用メモリ
、4・・・・・・バスカブラ、6・・・・・・共通メモ
リ、9・・・・・・フリップフロップ、11・・・・・
・タイミング装置、802・・・・・・インストラクシ
ョンレジスタ、804・・・・・・マツピングROM、
806・・・・・・スタートアドレスレジスタ、809
・・・・・・マイクロプログラムROM、811・・・
・・・パイプラインレジスタ、815・・・・・・エツ
ジトリガDタイプフリップフロップ、817・・・・・
・インクリメンタ、819・・・・・・マイクロプログ
ラムカウンタレジスタ、821・・・・・・マルチプレ
クサ。

Claims (1)

    【特許請求の範囲】
  1. 少なくとも2つのプロセッサと、前記各プロセッサに対
    して互いに重複しない排他的クロックを与えるタイミン
    グ装置と、前記プロセッサからセット・リセット可能な
    フリップフロップとから構成される多重プロセッサシス
    テムであって、前記プロセッサは、相互排除を必要とす
    る命令を実行する際、前記タイミング装置により与えら
    れるクロックがこのプロセッサを選択している期間であ
    り、かつ前記フリップフロップがリセット状態であると
    きに、前記命令を実行し、一方、前記クロックがこのプ
    ロセッサを選択していないか、または、前記フリップフ
    ロップがセット状態であるときには、このプロセッサ自
    身のシステムクロックを停止し、前記命令の実行を停止
    する機能を備えたことを特徴とする多重プロセッサシス
    テム。
JP20157989A 1989-08-03 1989-08-03 多重プロセッサシステム Pending JPH0365751A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20157989A JPH0365751A (ja) 1989-08-03 1989-08-03 多重プロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20157989A JPH0365751A (ja) 1989-08-03 1989-08-03 多重プロセッサシステム

Publications (1)

Publication Number Publication Date
JPH0365751A true JPH0365751A (ja) 1991-03-20

Family

ID=16443398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20157989A Pending JPH0365751A (ja) 1989-08-03 1989-08-03 多重プロセッサシステム

Country Status (1)

Country Link
JP (1) JPH0365751A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100488207B1 (ko) * 1998-06-15 2005-07-07 볼보 컨스트럭션 이키프먼트 홀딩 스웨덴 에이비 중장비의 붐과 아암의 연결구조
US7721634B2 (en) 2004-06-25 2010-05-25 Amada Company, Limited Punch tool

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100488207B1 (ko) * 1998-06-15 2005-07-07 볼보 컨스트럭션 이키프먼트 홀딩 스웨덴 에이비 중장비의 붐과 아암의 연결구조
US7721634B2 (en) 2004-06-25 2010-05-25 Amada Company, Limited Punch tool

Similar Documents

Publication Publication Date Title
US6216174B1 (en) System and method for fast barrier synchronization
US3528062A (en) Program interlock arrangement,including task suspension and new task assignment
US4354227A (en) Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles
US4112490A (en) Data transfer control apparatus and method
US5524247A (en) System for scheduling programming units to a resource based on status variables indicating a lock or lock-wait state thereof
US7506339B2 (en) High performance synchronization of accesses by threads to shared resources
US3528061A (en) Interlock arrangement
US4310880A (en) High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit
JPH11224205A (ja) プロセス制御システム
US4443848A (en) Two-level priority circuit
US20040187118A1 (en) Software barrier synchronization
US3706077A (en) Multiprocessor type information processing system with control table usage indicator
JPH0365751A (ja) 多重プロセッサシステム
KR940011041B1 (ko) 마이크로컴퓨터
Chen et al. A three-slot asynchronous reader/writer mechanism for multiprocessor real-time systems
JPS6326907B2 (ja)
JPH0365753A (ja) 多重プロセッサシステム
Alur et al. Contention—free complexity of shared memory algorithms
JPH01500065A (ja) 複数制御ストアを有するミクロプログラム情報処理システムの装置と方法
JP2870812B2 (ja) 並列処理プロセッサ
JPS5916054A (ja) マイクロ・プロセツサ
JP2770420B2 (ja) マイクロプログラム制御方式
JPS6149268A (ja) 共用メモリアクセス方式
JPH0542027B2 (ja)
JPS59100966A (ja) マルチプロセツサシステムの共有バス制御方式