JPH05210640A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH05210640A
JPH05210640A JP4015912A JP1591292A JPH05210640A JP H05210640 A JPH05210640 A JP H05210640A JP 4015912 A JP4015912 A JP 4015912A JP 1591292 A JP1591292 A JP 1591292A JP H05210640 A JPH05210640 A JP H05210640A
Authority
JP
Japan
Prior art keywords
access
memory
address
bus
lock
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
JP4015912A
Other languages
English (en)
Inventor
Makoto Hanawa
誠 花輪
Tadahiko Nishimukai
忠彦 西向井
Osamu Nishii
修 西井
Makoto Suzuki
鈴木  誠
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 JP4015912A priority Critical patent/JPH05210640A/ja
Priority to US08/009,077 priority patent/US5740401A/en
Priority to KR1019930000953A priority patent/KR100293594B1/ko
Publication of JPH05210640A publication Critical patent/JPH05210640A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】共有メモリ及び共有バスをパイプライン的にア
クセスするマルチプロセッサシステムにおいて、スルー
プットを低下させずに、共有変数の排他制御を実現す
る。 【構成】ロック制御回路(500)に、ロック中表示フ
ラグレジスタ(501)を設け、ロック中に他のプロセ
ッサからのロックアクセスまたはロック中の共有変数へ
のアクセスを抑止し、ロック解除後に受け付ける。 【効果】共有変数の排他的なアクセスの最中に、共有変
数へのアクセスでないメモリアクセスを実行することに
より、スループットの低下を防止できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサが共
有バスによって接続されたマルチプロセッサシステムに
関し、特に、複数のプロセッサと共有メモリを1つのL
SI上に形成したオンチップマルチプロセッサLSIに
好適な共有バスの排他制御方法に関する。
【0002】
【従来の技術】複数のマイクロプロセッサを共有バスで
結合したマルチプロセッサシステムにおける共有バスの
高性能化手法については、1990年4月20日発行の
電子情報通信学会コンピュータシステム研究会報告(C
PSY90−4、1990年4月20日)の第25頁か
ら第32頁において論じられている。
【0003】これは、プロセッサ等の送信ユニットがオ
ーダ(アドレス/データ)を送信した後、一旦、共有バ
スを解放し、メモリ等の受信ユニットはアンサ(返送デ
ータ)の準備ができた時に共有バスの使用権を得て、送
信ユニットへアンサ(返送データ)を返送すると言うス
プリット方式の共有バス転送方式を提案してる。
【0004】従って、このスプリット方式の共有バス転
送方式では、アドレス送信からデータ返送までの間、1
つのプロセッサが共有バスを占有し続ける従来のインタ
ロック方式に較べて、共有バスを効率的に使用でき、高
性能化が図れるものである。
【0005】
【発明が解決しようとする課題】マルチプロセッサシス
テムにおいて、複数のプロセッサによってアクセスされ
るメモリのデータは共有データと呼ばれている。また、
特に複数のプロセッサが同一のメモリアドレス(共有変
数)に同時にアクセスする可能性がある。この時、デー
タアクセスの競合が発生し、混合されて処理された場合
には、誤動作を招くことになる。そこで、ある時点での
共有変数の如き共有データへのアクセスを1つのプロセ
ッサに限る排他制御が必要になる。この排他制御の実現
手段には、バスのロックが使用できる。バスロックと
は、共有データをアクセスするプロセッサに、そのアク
セス期間中、共有バスの使用権を与え続け、他のプロセ
ッサには共有バスの使用権を一切与えないようにして、
排他的なアクセスを実現するものである。
【0006】一方、上記従来技術のスプリット方式の共
有バス転送方式においては、TEST&SET命令のよ
うにリード/ライトが一連の処理であり、途中に他のユ
ニットの転送が入り込むと処理矛盾を発生する場合、共
有バスを解放せず占有して使用するロック転送機能を設
けている。
【0007】しかし、上記のように共有バスをロックし
てしまっては、スプリット方式にして共有バスの転送ス
ループットを向上させたことが無駄になってしまう。今
後、1つのジョブを細かく分割して、複数のプロセッサ
において並列に処理することによりジョブ処理の高速化
を行うため際に、上記の排他制御が頻繁に発生すると、
バスロックによる性能低下が深刻な問題になることが予
想される。
【0008】上記の従来例では、このようなバスロック
による性能低下について配慮されておらず、1つのジョ
ブを細かく分割して、複数のプロセッサにおいて並列に
処理する場合、大幅に性能が低下するという問題点があ
る。
【0009】そこで本発明の目的とするところは、共有
データへの排他的なアクセスを保証しながらスプリット
バスの利点を活かすとともに、排他的でない他のアクセ
スを並列に処理できるマルチプロセッサシステムを提供
することにある。
【0010】
【課題を解決するための手段】上記目的を達成するため
の本願の基本的技術思想は、一つのプロセッサが共有メ
モリ中の或る共有データをアクセスしている間に、他の
プロセッサからの上記共有データへのメモリアクセス要
求の受付けを拒絶する一方他のプロセッサからの上記共
有データ以外へのメモリアクセス要求を受付けようにし
たものである。
【0011】本願で開示される発明のうち、代表的な発
明の特徴は、下記の如きにある。
【0012】すなわち、バス(170、180)を介し
て相互に接続された複数のプロセッサ(110、12
0)と、上記バス(170、180)に接続されるとと
もに、上記複数のプロセッサ(110、120)によっ
て共有される共有データを格納するメモリ(130、1
40)とを具備してなるマルチプロセッサシステムであ
って、上記複数のプロセッサ(110、120)の一方
のプロセッサ(110)が上記メモリ(130、14
0)の上記共有データをアクセスしている間に、上記複
数のプロセッサの他方のプロセッサ(120)からの上
記共有データへのメモリアクセス要求の受付けを拒絶す
る一方、上記他方のプロセッサ(120)からの上記共
有データのアドレスと異なるアドレスへのメモリアクセ
ス要求を受付けるメモリアクセス制御回路(500、5
10)を更に具備してなることを特徴とする。
【0013】本発明のより好適な実施形態によるマルチ
プロセッサシステムは、上記バス(170、180)お
よび上記メモリ(130、140)に接続され、上記バ
ス(170、180)を介して伝達される複数のアクセ
ス要求アドレスを格納する先入れ先出しメモリで構成さ
れたアクセスキュー(135、145)をさらに具備
し、上記複数のプロセッサの上記一方のプロセッサ(1
10)からの上記メモリの上記共有データへのアクセス
要求が上記アクセスキュー(135、145)に格納さ
れた後、上記アクセスキュー(135、145)による
上記メモリの上記共有データへのアクセスが終了する以
前には、上記メモリアクセス制御回路(500、51
0)は上記複数のプロセッサの上記他方のプロセッサ
(120)からの上記メモリの上記共有データへのアク
セス要求が上記アクセスキュー(135、145)に格
納されることを禁止することを特徴とする。
【0014】尚、共有データへのアクセスであることを
検出する具体的な手段としては、(1)共有バス全体に
対して、共有データへのアクセスを検出する手法、
(2)共有メモリを複数のバンクに分け、各バンクに対
して共有データへのアクセスを検出する手法、(3)共
有メモリを複数の領域に分け、各領域に対して共有デー
タへのアクセスを検出する手法、(4)共有データのア
ドレスを認識して、各アドレス毎に共有データへのアク
セスを検出する手法等が考えられるが、具体的には以下
の手段がある。
【0015】(1)まず第1の実現手法としては、共有
バスにおいて、共有データへのアクセスを一つのプロセ
ッサにだけ許可する手法がある。つまり、プロセッサが
メモリアクセスを要求する時、共有メモリ中の或る共有
データへのアクセスであることを示す手段、及び、どれ
か1つのプロセッサが、共有メモリ中の或る共有データ
をアクセス中であることを示すフラグ、上記フラグがア
サート中は、他のプロセッサからの共有メモリ中の共有
データへのアクセスを抑止する手段を有することによ
り、共有メモリの排他アクセス制御を実現することがで
きる。
【0016】(2)また、第2の実現手法としては、複
数のバンクに分割された共有メモリにおいて、或るバン
ク中の共有データへのアクセスを一つのプロセッサにだ
け許可する手法がある。つまり、プロセッサがメモリア
クセスを要求する時、共有メモリ中の或る共有データへ
のアクセスであることを示す手段を有し、また、どれか
1つのプロセッサが、共有メモリ中の或るバンクの共有
データをアクセス中であることを示すフラグを有し、上
記フラグがアサート中は、他のプロセッサからの該当す
るバンクへのアクセスを抑止する手段を有することによ
り、共有メモリの排他アクセス制御を実現することがで
きる。
【0017】(3)更にまた、第3の実現手法として
は、複数の領域に分割された共有メモリにおいて、或る
領域中の共有データへのアクセスを一つのプロセッサに
だけ許可する手法がある。つまり、プロセッサがメモリ
アクセスを要求する時、共有メモリ中の或る共有データ
へのアクセスであることを示す手段を有し、また、どれ
か1つのプロセッサが、共有メモリ中の或る領域の共有
データをアクセス中であることを示すフラグを有し、上
記フラグがアサート中は、他のプロセッサからの該当す
る領域へのアクセスを抑止する手段を有することによ
り、共有メモリの排他アクセス制御を実現することがで
きる。
【0018】(4)更にまた、第4の実現手法として
は、或るアドレスの共有データへのアクセスを一つのプ
ロセッサにだけ許可する手法がある。つまり、プロセッ
サがメモリアクセスを要求する時、共有メモリ中の或る
共有データへのアクセスであることを示す手段を有し、
どれか1つのプロセッサが、共有メモリ中の或るアドレ
スの共有データをアクセス中であることを示すフラグを
有し、上記フラグがアサート中は、他のプロセッサから
の該当するアドレスへのアクセスを抑止する手段を有す
ることにより、共有メモリの排他アクセス制御を実現す
ることができる。
【0019】
【作用】複数のプロセッサ(110、120)の一方の
プロセッサ(110)がメモリ(130、140)の共
有データをアクセスしている間に、メモリアクセス制御
回路(500、510)は複数のプロセッサの他方のプ
ロセッサ(120)からの共有データへのメモリアクセ
ス要求の受付けを拒絶する一方、他方のプロセッサ(1
20)からの共有データのアドレスと異なるアドレスへ
のメモリアクセス要求を受付けるため、共有データへの
排他的なアクセスを保証しながらスプリットバスの利点
を活かすとともに、排他的でない他のアクセスを並列に
処理できるマルチプロセッサシステムを提供することが
できる。
【0020】すなわち、異なるプロセッサからのメモリ
中の同一アドレスへの2回のアクセスは本来排他的なア
クセスであるが、この間でバス権を他のプロセッサに譲
っても、異なるプロセッサからの排他的なアクセス要求
を受付けないか、又はひとつのプロセッサが現在アクセ
スを行っているバンク/領域/アドレスに対する他のプ
ロセッサからのアクセス要求を受付けないので、アクセ
スは排他的となり他のプロセッサから妨害されることが
なく、複数のプロセッサが同時に共有データをアクセス
することによって起こる誤動作を防止することができ
る。
【0021】また、排他的なアクセスの最中にも、異な
るアドレスに対しては並列にアクセスすることができ、
バスのスループットを高めることができる。
【0022】
【実施例】以下、本発明の一実施例を図を用いて説明す
る。
【0023】システム概要 図1は、本発明の一実施例である1チップマルチプロセ
ッサのシステム構成を示すブロック図である。2つのプ
ロセッサエレメント110及び120と2バンクに分割
されたメモリ130、140が1つのLSIに形成され
ている。プロセッサエレメント110及び120はアク
セスキュー135、145更には、アドレスバス170
及びデータバス180を介してメモリ130、140と
接続されている。また、ロック制御回路500、510
が、それぞれアクセスキュー135、145に対応して
設けられている。
【0024】プロセッサエレメント(PE)の構成 プロセッサエレメント110は、中央処理装置(CPU
1)111及び命令キャッシュ(IC1)112、オペ
ランドキャッシュ(OC1)113、命令用バス11
4、オペランド用バス115から成り、それぞれ図のよ
うに接続されている。プロセッサエレメント120も、
プロセッサエレメント110と同様に構成されており、
詳細な説明は省略する。
【0025】PEの命令キャッシュ プロセッサエレメント110の命令キャッシュIC1
(112)はCPU1(111)の命令フェッチ要求に
従って検索され、対応するデータのコピーが命令キャッ
シュIC1(112)に存在するか否かを判断する。
【0026】要求した命令が命令キャッシュIC1(1
12)に存在する場合(ヒットの場合)には、命令キャ
ッシュIC1(112)はメモリ130及び140をア
クセスすることなく命令キャッシュIC1(112)の
キャッシュメモリよりデータが読み出され、命令用バス
114を介してCPU1(111)へ転送される。CP
U1(111)はこの読み出したデータを命令として解
読し、その指示に従って実行を行う。
【0027】CPU1(111)の命令フェッチ要求に
対して対応するデータのコピーが命令キャッシュIC1
(112)に存在しない場合(ミスの場合)には、命令
キャッシュIC1(112)はメモリ130又は140
をアクセスして、対応するデータが読み出され、命令キ
ャッシュIC1(112)へ格納されると同時に、命令
用バス114を介してCPU1(111)へ転送され
る。
【0028】プロセッサエレメント120の命令キャッ
シュIC2(122)もプロセッサエレメント110の
命令キャッシュIC1(112)と同様に構成されてお
り、詳細な説明は省略する。
【0029】PEのオペランドキャッシュ プロセッサエレメント110のオペランドキャッシュO
C1(113)も命令キャッシュIC1(112)と同
様に、CPU1(111)のオペランドアクセス要求に
従って検索され、対応するデータのコピーが存在するか
否かを判断する。
【0030】要求したオペランドがオペランドキャッシ
ュOC1(113)に存在する場合には、オペランドキ
ャッシュOC1(113)はメモリ130及び140を
アクセスすることなくオペランドキャッシュOC1(1
13)のキャッシュメモリよりデータが読み出され、オ
ペランド用バス115を用いてCPU1(111)へ転
送される。CPU1(111)はこの読み出したデータ
をオペランドとして使用して、命令の実行を行う。
【0031】CPU1(111)のオペランドアクセス
要求に対して対応するデータのコピーがオペランドキャ
ッシュOC1(113)に存在しない場合には、オペラ
ンドキャッシュOC1(113)はメモリ130又は1
40をアクセスして、対応するデータが読み出され、オ
ペランドキャッシュOC1(113)へ格納されると同
時に、オペランド用バス115を用いてCPU1(11
1)へ転送される。
【0032】プロセッサエレメント120も同様に、中
央処理装置(CPU2)121及び命令キャッシュ(I
C2)122、オペランドキャッシュ(OC2)12
3、命令用バス124、オペランド用バス125から成
り、それぞれ図のように接続されている。
【0033】メモリおよびアクセスキュー メモリは2つのバンク130、140に分割されてお
り、アクセスキュー135、145を介して、接続され
ている。
【0034】アクセスキュー135、145は、命令キ
ャッシュ(IC1,IC2)112,122及びオペラ
ンドキャッシュ(OC1,OC2)113,123から
のメモリアクセス要求をラッチしておく先入れ先出し
(FIFO)のバッファである。
【0035】バス アドレスバス170はアドレス信号線230及びID
(識別)番号信号線240、リード/ライト信号線25
0、ロック指示信号線260、リトライ指示信号線27
0から成る。
【0036】ID番号信号線240は命令キャッシュI
C1(112),オペランドキャッシュOC1(11
3),IC2(122),OC2(123),SC0
(130),SC1(140)の6台のデバイスを識別
するため、3本の信号線より成る。
【0037】データバス180はデータ信号線330及
びID番号信号線340から成る。ID番号信号線34
0はアドレスバス170のID番号信号線240と同様
に、3本の信号線より成る。
【0038】ロック制御回路 ロック制御回路(LC0)500はロック中表示フラグ
レジスタ(LV0)501及びロックアドレスレジスタ
(LA0)502、ロックID番号レジスタ(LID
0)503、アドレス比較器504、ID比較器50
5、ANDゲート506から成る。ロック制御回路(L
C1)510もロック制御回路(LC0)500と同様
な構成である。
【0039】ロック中表示フラグレジスタ(LV0)5
01は、アドレス転送時にロック指示信号線260がア
サートされているときセットされる。
【0040】ロックアドレスレジスタ(LA0)502
及びロックID番号レジスタ(LID0)503は、そ
れぞれロック中表示フラグレジスタ(LV0)501が
セットされるときにアドレス信号線230及びID番号
信号線240の内容をセットする。
【0041】アドレス比較器504及びID比較器50
5はアドレス転送中のアドレス信号線230及びID番
号信号線240の値とロックアドレスレジスタ(LA
0)502及びロックID番号レジスタ(LID0)5
03の内容と比較する。アドレス比較器504の両入力
が一致するとその出力には論理”1”がアサートされ、
一方ID比較器505の両入力が不一致となるとその出
力には論理”1”がアサートされる。従って、ロック中
表示フラグレジスタ(LV0)501がセットされてい
る状態で、ID番号の異なるデバイスから同一のアドレ
スに対するアクセスが発生したら、ANDゲート506
によりリトライ指示信号線270がアサートされるの
で、ID番号の異なるデバイスから同一のアドレスに対
するアクセス要求の受け付けを拒絶する。
【0042】通常のパイプライン動作 先ず、バスをロックしないスプリット方式バスによる通
常のパイプライン動作について説明する。命令キャッシ
ュIC1(112)がメモリSC0(130)にあるデ
ータを読み出しを起動する場合を例に、各構成要素の動
作を説明する。
【0043】命令キャッシュIC1(112)はまず、
アドレスバス170を使用する権利であるアドレスバス
権を獲得し、アドレス信号線230、ID番号信号線2
40、リード/ライト信号線250に所定の値の信号を
送出する。ここで、ID番号信号線240には命令キャ
ッシュIC1(112)のID番号が出力される。
【0044】メモリSC0(130)のアクセスキュー
135は、アドレス信号線230の下位1ビットよりメ
モリSC0(130)へのアクセスであることを判断
し、アドレス信号線230、ID番号信号線240、リ
ード/ライト信号線250の内容をラッチする。アクセ
スキュー135にラッチされたアクセス要求は、メモリ
SC0(130)がアクセス可能になった時点で順次処
理される。
【0045】命令キャッシュIC1(112)の要求に
従ってメモリSC0(130)が読み出したデータを命
令キャッシュIC1(112)へ転送する場合を例に、
各構成要素の動作を説明する。メモリSC0(130)
はまず、データバス180を使用する権利であるデータ
バス権を獲得し、データ信号線330、ID番号信号線
340に所定の値を送出する。ここで、ID番号信号線
340には、アクセスキュー135にラッチしておいた
アクセス要求元である命令キャッシュIC1(112)
のID番号が出力される。命令キャッシュIC1(11
2)はアドレスを送出した後、アドレスバス170を開
放し、データバス180のID番号信号線340を監視
して、読み出しデータが転送されるのを待っている。そ
こで、命令キャッシュIC1(112)はメモリSC0
(130)から送出されたID番号を検出して、命令キ
ャッシュIC1(112)への応答サイクルであること
を認識して、データ信号線330上のデータをラッチす
る。
【0046】アクセスキュー(AQ0)135の内部構
成を図1を用いて説明する。他のアクセスキュー(AQ
1)455も同様の構成である。
【0047】アクセスキュー135は、4エントリの先
入れ先出しのバッファ(FIFO)である。各エントリ
は、アドレス部410及びID番号部420、リード/
ライト部430、書き込みデータ部440から成る。ア
ドレス部410はアドレスバス170のアドレス信号線
230の内容をラッチし、ID番号部420は同様にI
D番号信号線240の内容をラッチし、リード/ライト
部430はリード/ライト信号線250の内容をラッチ
し、書き込みデータ部440はメモリへの書き込み時に
データバス180のデータ信号線330の内容(書き込
みデータ)をラッチする。
【0048】このように命令キャッシュIC1(11
2)等のデバイスからメモリSC0(130)へのメモ
リアクセス要求は、一旦、このアクセスキュー135に
ラッチされる。従って、アドレスバス170は、読み出
しデータの転送を待たずして、他のデバイスに開放する
ことができる。
【0049】また、1つのデバイスのメモリアクセス要
求を処理中に、他のデバイスから同一メモリへアクセス
要求が発行されても、アクセスキューは複数のエントリ
を有しているので、バッファリングされる。
【0050】なお、本実施例では、メモリアクセスの要
求は、命令キャッシュIC1(112),オペランドキ
ャッシュOC1(113),命令キャッシュIC2(1
22),オペランドキャッシュOC2(123)の4つ
のデバイスから要求されるが、1つのデバイスからは複
数のアクセス要求が同時に発行されることはないので
(前のアクセスが完了する前に次のアクセスが発行され
ることはないので)、アクセスキューのバッファの段数
としては、4段で充分である。
【0051】なお、1つのデバイスから複数のアクセス
要求が同時に発行される実施例においては、アクセスキ
ューのバッファの段数を更に増加させること、及び、同
時に発行されたアクセス要求を識別する手段を設けるこ
とにより対処可能である。
【0052】上で述べたようにアクセスキュー135に
ラッチされた複数のアクセス要求は、先入れ先出しバッ
ファ(FIFO)によって、先にラッチされたものから
順に処理される。
【0053】アドレスデコーダ450,455は、アド
レスバス170のアドレス信号線230の下位1ビット
で、アクセス要求がメモリSC0(130),SC1
(140)の内、どちらのメモリに対するものなのかを
判断し、対応するメモリのアクセスキューにアクセス要
求をラッチさせるものである。例えば、アドレスデコー
ダ450は、アドレスバス170のアドレス信号線23
0の下位1ビットが「0」のとき、アクセスキュー13
5にアクセス要求をラッチさせる。また、アドレスデコ
ーダ455は、アドレス信号線230の下位1ビットが
「1」のとき、アクセスキュー145にアクセス要求を
ラッチさせる。
【0054】図2は、図1の実施例のマルチプロセッサ
システムにおける通常のパイプライン動作のタイムチャ
ートを示したものである。
【0055】C1のサイクルで、命令キャッシュIC1
(112)にキャッシュメモリに所望のデータがないこ
と(ミス)が判明すると、命令キャッシュIC1(11
2)はアドレスバス170のバス権を要求する。この
時、命令キャッシュIC1(112)以外のデバイスが
アドレスバス170のバス権を要求していない。
【0056】従ってC2のサイクルで、アドレスバスア
ービタ(図示せず)によって命令キャッシュIC1(1
12)へアドレスバス170のバス権が与えられ、命令
キャッシュIC1(112)はアドレス信号線230及
びID番号信号線240にそれぞれ信号を出力する。従
って、メモリSC0(130)は、アドレス信号線23
0の下位1ビットより、自分がアクセスされていること
を知る。
【0057】C3のサイクルで、命令キャッシュIC1
(112)の要求に基づくメモリSC0(130)から
のデータの読み出しが行われる。読み出しには、2サイ
クルかかる。
【0058】メモリSC0(130)は命令キャッシュ
IC1(112)へ読み出しデータを転送するために、
C4のサイクルでデータバス180のバス権を要求す
る。この時、メモリSC0(130)以外のデバイスは
データバス180のバス権を要求していない。
【0059】従ってC5のサイクルで、データバスアー
ビタ(図示せず)によってメモリSC0(130)へデ
ータバス180のバス権が与え、メモリSC0(13
0)はデータ信号線330及びID番号信号線340に
それぞれ信号を出力する。なお、ID番号信号線340
には、命令キャッシュIC1(112)のID番号が出
力されているので、命令キャッシュIC1(112)は
ID番号信号線340から自分がアクセスしたデータが
転送されてきたことを知り、データ信号線330の内容
をラッチする。
【0060】なお、上記の処理に並行して、下記の処理
が実行される。
【0061】C2のサイクルでは二つのオペランドキャ
ッシュOC1(113)、OC2(123)が共にアド
レスバス170のバス権を要求しているが、アドレスバ
スアービタ(図示せず)の働きによりオペランドキャッ
シュOC1(113)のアドレスバス170の使用要求
がC3のサイクルで先に処理され、次のC4のサイクル
でオペランドキャッシュOC2(123)のアドレスバ
ス170の使用要求が処理されている。
【0062】また、C2、C3のサイクルでアドレス信
号230の下位1ビットが0となって、メモリSC0
(130)へのアクセスが連続しているが、アクセスキ
ュー135にこの連続したアクセスがバッファリングさ
れ、順次処理される。
【0063】すなわち、C4のサイクルでメモリSC0
(130)から命令キャッシュIC1(112)への読
み出しデータの転送が終了すると、アクセスキュー13
5はC5、C6のサイクルでオペランドキャッシュOC
1(113)からの要求によるメモリSC0(130)
からのデータの読み出しを行い、またこれと並行してア
クセスキュー145はC5、C6のサイクルでオペラン
ドキャッシュOC2(123)からの要求によるメモリ
SC1(140)からのデータの読み出しを行ってい
る。
【0064】C5、C6のサイクルでのメモリSC0
(130)およびメモリSC1(140)からのデータ
の読み出しが終了すると、C7のサイクルで、メモリS
C0(130)及びSC1(140)が共にデータバス
180のバス権を要求する。しかし、データバスアービ
タ(図示せず)の働きによりメモリSC0(130)の
データバス180の使用要求がC7のサイクルで先に処
理され、次のC8のサイクルでSC1(140)のデー
タバス180の使用要求が処理されている。
【0065】バスロックアクセスでの同一デバイスから
の再アクセス 次に、本発明の特徴であるバスロックアクセスについて
図3を用いて説明する。について説明する。
【0066】図3は、オペランドキャッシュOC1(1
13)がメモリSC0(130)のアドレス1000番
地に対してロックアクセスを行うとき、つまり、1回目
のアクセスでアドレス1000番地からデータを読み出
し、2回目のアクセスでアドレス1000番地へデータ
を書き込むまでの間、アドレス1000番地に対する他
のデバイスからのアクセスを抑止する場合のタイムチャ
ートを示したものである。
【0067】C1のサイクルで、CPU1(111)が
バスロックを伴うデータ読み出しを起動すると、オペラ
ンドキャッシュOC1(113)はキャッシュ内の該当
するデータのコピーをキャンセル(無効化)して、メモ
リSC0(130)に対してアクセスを行う。
【0068】C2のサイクルで、オペランドキャッシュ
OC1(113)はアドレス信号線230及びID番号
信号線240にそれぞれ信号を出力するのと同時に、ロ
ック指示信号線260をアサートする。アドレスデコー
ダ450はアドレス信号線230よりメモリSC0(1
30)に対するアクセスであることを検出し、アクセス
キュー(AQ0)135のアドレス部410及びID番
号部420、リード/ライト部430をセットする。こ
の時、アクセスキュー(AQ0)135のロック制御回
路(LC0)500はロック指示信号線260より、ロ
ックアクセスであることを検出し、ロック中表示フラグ
レジスタ(LV0)501及びロックアドレスレジスタ
(LA0)502、ロックID番号レジスタ(LID
0)503をセットする。
【0069】C3、C4、C5のサイクルでは、通常の
アクセスと同様のパイプラインアクセスを行う。すなわ
ち、C3、C4のサイクルで、アクセスキュー(AQ
0)135はメモリSC0(130)からのデータ読み
出しを行い、C5のサイクルでデータバス180のバス
権を得てメモリSC0(130)からオペランドキャッ
シュOC1(113)へデータが転送され、格納され
る。なお、この間、ロック中表示フラグレジスタ(LV
0)501及びロックアドレスレジスタ(LA0)50
2、ロックID番号レジスタ(LID0)503はセッ
トされたままである。
【0070】C8のサイクルで、以降のロックを解除す
る処理を起動すると、CPU1(111)が上記のロッ
ク中のアドレスへ書き込みを行うために、オペランドキ
ャッシュOC1(113)はメモリSC0(130)に
対してアクセスを開始する。
【0071】すなわちC9のサイクルで、オペランドキ
ャッシュOC1(113)はアドレス信号線230及び
ID番号信号線240にそれぞれ信号を出力するのと同
時に、ロック指示信号線260をネゲートして、メモリ
SC0(130)に対してロックの解除を指示する。ア
ドレスデコーダ450はアドレス信号線230よりメモ
リSC0(130)に対するアクセスであることを検出
し、アクセスキュー(AQ0)135のアドレス部41
0及びID番号部420、リード/ライト部430をセ
ットする。
【0072】この時、アクセスキュー(AQ0)135
のロック制御回路(LC0)500は、アドレス比較器
504及びID比較器505により、アドレスバス上の
アドレス信号線230及びID番号信号線240とロッ
クアドレスレジスタ(LA0)502、ロックID番号
レジスタ(LID0)503とをそれぞれ比較し、ロッ
ク中のアドレスへのアクセスであるが同一ID番号のデ
バイスからのアクセスであることを検出する。またこの
時、ロック指示信号線260がネゲートされているの
で、ロック中表示フラグレジスタ(LV0)501をリ
セットして、ロックアクセスが解除されているので、オ
ペランドキャッシュOC1(113)からの書き込みア
クセスを受け付ける。
【0073】C10以降のサイクルでは、通常のアクセ
スと同様のアクセスキュー(AQ0)135によるメモ
リSC0(130)へのパイプライン書き込みアクセス
が行なわれる。
【0074】上記の説明のように、ロックID番号レジ
スタ(LID0)503及びID比較器505により、
ロック要求元のデバイスを認識して、ロック要求元から
のアクセスを受け付けるので、自分自身のロックによ
り、デッドロックに陥ることはない。
【0075】バスロックアクセスでの他のデバイスから
のアクセス抑止動作 図4及び図5は、図3と同様にOC1(113)がSC
0(130)の1000番地に対してロックアクセスを
行っているとき、他のデバイスが同一のアドレス(10
00番地)に対してアクセスを要求した場合のタイムチ
ャートを示したものである。図4は1サイクル目から1
0サイクル目までを、図5は7サイクル目から16サイ
クル目までを示している。
【0076】C1のサイクルで、CPU1(111)が
バスロックを伴うデータ読み出しを起動すると、OC1
(113)はキャッシュ内の該当するデータのコピーを
キャンセル(無効化)して、メモリSC0(130)に
対してアクセスを行う。
【0077】すなわちC2のサイクルで、OC1(11
3)はアドレス信号線230及びID番号信号線240
にそれぞれ信号を出力するのと同時に、ロック指示信号
線260をアサートする。アドレスデコーダ450はア
ドレス信号線230よりメモリSC0(130)に対す
るアクセスであることを検出し、アクセスキュー(AQ
0)135のアドレス部410及びID番号部420、
リード/ライト部430をセットする。この時、アクセ
スキュー(AQ0)135のロック制御回路(LC0)
500はロック指示信号線260より、ロックアクセス
であることを検出し、ロック中表示フラグレジスタ(L
V0)501及びロックアドレスレジスタ(LA0)5
02、ロックID番号レジスタ(LID0)503をセ
ットする。
【0078】C3、C4、C5のサイクルでは、通常の
アクセスと同様のパイプラインアクセスを行う。すなわ
ち、C3、C4のサイクルで、アクセスキュー(AQ
0)135はメモリSC0(130)からのデータ読み
出しを行い、C5のサイクルでデータバス180のバス
権を得てメモリSC0(130)からオペランドキャッ
シュOC1(113)へデータが転送され、格納され
る。なお、この間、ロック中表示フラグレジスタ(LV
0)501及びロックアドレスレジスタ(LA0)50
2、ロックID番号レジスタ(LID0)503はセッ
トされたままである。
【0079】C8のサイクルで、以降のロックを解除す
る処理を起動すると、CPU1(111)が上記のロッ
ク中のアドレスへ書き込みを行うために、オペランドキ
ャッシュOC1(113)はメモリSC0(130)に
対してアクセスを開始する。
【0080】すなわちC9のサイクルで、オペランドキ
ャッシュOC1(113)はアドレス信号線230及び
ID番号信号線240にそれぞれ信号を出力するのと同
時に、ロック指示信号線260をネゲートして、メモリ
SC0(130)に対してロックの解除を指示する。ア
ドレスデコーダ450はアドレス信号線230よりメモ
リSC0(130)に対するアクセスであることを検出
し、アクセスキュー(AQ0)135のアドレス部41
0及びID番号部420、リード/ライト部430をセ
ットする。
【0081】この時、アクセスキュー(AQ0)135
のロック制御回路(LC0)500は、アドレス比較器
504及びID比較器505により、アドレスバス上の
アドレス信号線230及びID番号信号線240とロッ
クアドレスレジスタ(LA0)502、ロックID番号
レジスタ(LID0)503とをそれぞれ比較し、ロッ
ク中のアドレスへのアクセスであるが同一ID番号のデ
バイスからのアクセスであることを検出する。またこの
時、ロック指示信号線260がネゲートされているの
で、ロック中表示フラグレジスタ(LV0)501をリ
セットして、ロックアクセスが解除されているので、オ
ペランドキャッシュOC1(113)からの書き込みア
クセスを受け付ける。
【0082】一方、C2のサイクルにおいて、IC2
(122)がミスを起し、SCO(130)の1000
番地をアクセスするものとする。
【0083】従って、このIC2(122)のミスに起
因して、C3のサイクルにおいて、IC2(122)は
アドレス信号線230及びID番号信号線240にそれ
ぞれ信号を出力する。またアドレスデコーダ450はア
ドレス信号線230よりメモリSC0(130)に対す
るアクセスであることを検出し、アクセスキュー(AQ
0)135のアドレス部410及びID番号部420、
リード/ライト部430をセットする。この時、アクセ
スキュー(AQ0)135のロック制御回路(LC0)
500はロック中表示フラグレジスタ(LV0)501
が既にセットされているので、アドレス比較器504及
びID比較器505により、アドレスバス上のアドレス
信号線230及びID番号信号線240とロックアドレ
スレジスタ(LA0)502、ロックID番号レジスタ
(LID0)503とをそれぞれ比較し、ロック中のア
ドレスへの異なるID番号のデバイスからのアクセスで
あることを検出し、ANDゲート506により、リトラ
イ指示信号270をアサートし、このアクセスはロック
中につき受け付けられなかったことを応答する。IC2
(122)はこのリトライ指示信号270を受け取り、
ある一定の時間(本実施例では7サイクル)を経過した
後、再度アクセスを要求する。また、アクセスキュー
(AQ0)135のアドレス部410及びID番号部4
20、リード/ライト部430にセットされた内容はリ
トライ指示信号270によってキャンセルされる。
【0084】上で述べたようにC3のサイクルから7サ
イクルを経過したC10のサイクルにおいて、IC2
(122)は再度、アドレス信号線230及びID番号
信号線240にそれぞれ信号を出力する。アドレスデコ
ーダ450はアドレス信号線230よりメモリSC0
(130)に対するアクセスであることを検出し、アク
セスキュー(AQ0)135のアドレス部410及びI
D番号部420、リード/ライト部430をセットす
る。この時、アクセスキュー(AQ0)135のロック
制御回路(LC0)500はロック中表示フラグレジス
タ(LV0)501が既にリセットされているので、通
常のアクセスとして受け付けられる。
【0085】すなわち、アクセスキューSC0(13
0)はC10,C11のサイクルにおいてOC1(11
3)のアクセスを処理中であり、IC2(122)のア
クセスはC12のサイクルから実行される。
【0086】上記の説明のように、ロックアドレスレジ
スタ(LA0)502及びアドレス比較器504により
ロック中のアドレスを認識して、ロック要求元以外のデ
バイスからのアクセスを受け付けないので、排他制御を
実現できる。また、ロック中アドレスへのロック要求元
以外のデバイスからのアクセスに対してはリトライ指示
信号270を応答することにより、アクセス要求元に再
度アクセスを起動するよう指示することにより、ロック
解除後にアクセスを受け付けることができる。
【0087】バスロックアクセスでの異なるアドレスへ
のアクセス 図6は、図3と同様にOC1(113)がSC0(13
0)の1000番地に対してロックアクセスを行ってい
るとき、他のデバイスが異なるアドレス(2000番
地)に対してアクセスを要求した場合のタイムチャート
を示したものである。
【0088】OC1(113)の動作は図3のものと同
一である。
【0089】C1のサイクルで、CPU1(111)が
バスロックを伴うデータ読み出しを起動すると、OC1
(113)はキャッシュ内の該当するデータのコピーを
キャンセル(無効化)して、SC0(130)に対して
アクセスを行う。
【0090】すなわちC2のサイクルで、OC1(11
3)はアドレス信号線230及びID番号信号線240
にそれぞれ信号を出力するのと同時に、ロック指示信号
線260をアサートする。アドレスデコーダ450はア
ドレス信号線230よりメモリSC0(130)に対す
るアクセスであることを検出し、AQ0(135)のア
ドレス部410及びID番号部420、リード/ライト
部430をセットする。この時、AQ0(135)のロ
ック制御回路(LC0)500はロック指示信号線26
0より、ロックアクセスであることを検出し、ロック中
表示フラグレジスタ(LV0)501及びロックアドレ
スレジスタ(LA0)502、ロックID番号レジスタ
(LID0)503をセットする。
【0091】C3、C4、C5のサイクルでは、通常の
アクセスと同様のパイプラインアクセスを行う。すなわ
ち、C3、C4のサイクルで、AQ0(135)はSC
0(130)からのデータ読み出しを行い、C5のサイ
クルでデータバス180のバス権を得てSC0(13
0)からOC1(113)へデータが転送され、格納さ
れる。なお、この間、ロック中表示フラグレジスタ(L
V0)501及びロックアドレスレジスタ(LA0)5
02、ロックID番号レジスタ(LID0)503はセ
ットされたままである。
【0092】C8のサイクルで、以降のロックを解除す
る処理を起動すると、CPU1(111)が上記のロッ
ク中のアドレスへ書き込みを行うために、OC1(11
3)はSC0(130)に対してアクセスを開始する。
【0093】すなわちC9のサイクルで、OC1(11
3)はアドレス信号線230及びID番号信号線240
にそれぞれ信号を出力するのと同時に、ロック指示信号
線260をネゲートして、メモリSC0(130)に対
してロックの解除を指示する。アドレスデコーダ450
はアドレス信号線230よりSC0(130)に対する
アクセスであることを検出し、AQ0(135)のアド
レス部410及びID番号部420、リード/ライト部
430をセットする。
【0094】この時、アクセスキュー(AQ0)135
のロック制御回路(LC0)500は、アドレス比較器
504及びID比較器505により、アドレスバス上の
アドレス信号線230及びID番号信号線240とロッ
クアドレスレジスタ(LA0)502、ロックID番号
レジスタ(LID0)503とをそれぞれ比較し、ロッ
ク中のアドレスへのアクセスであるが同一ID番号のデ
バイスからのアクセスであることを検出する。またこの
時、ロック指示信号線260がネゲートされているの
で、ロック中表示フラグレジスタ(LV0)501をリ
セットして、ロックアクセスが解除されているので、オ
ペランドキャッシュOC1(113)からの書き込みア
クセスを受け付ける。
【0095】一方、C2のサイクルにおいて、IC2
(122)がミスを起し、SCO(130)の2000
番地をアクセスするものとする。
【0096】従って、C3のサイクルにおいて、IC2
(122)はアドレス信号線230及びID番号信号線
240を出力する。アドレスデコーダ450はアドレス
信号線230よりメモリSC0(130)に対するアク
セスであることを検出し、アクセスキュー(AQ0)1
35のアドレス部410及びID番号部420、リード
/ライト部430をセットする。この時、アクセスキュ
ー(AQ0)135のロック制御回路(LC0)500
はロック中表示フラグレジスタ(LV0)501が既に
セットされているが、アドレス比較器504及びID比
較器505により、アドレスバス上のアドレス信号線2
30及びID番号信号線240とロックアドレスレジス
タ(LA0)502、ロックID番号レジスタ(LID
0)503とをそれぞれ比較し、ロック中のアドレスと
異なるアドレスへのアクセスであることを検出し、この
アクセスを受け付ける。
【0097】すなわち、OC1(113)のロックアク
セスは、図3と同様に行われる。アクセスキーSC0
(130)はC3、C4のサイクルにおいてOC1(1
13)からのリードアクセスを処理中であり、アクセス
キーSC0(130)によるIC2(122)のリード
アクセスはC5のサイクルから実行される。
【0098】上記の説明のように、ロックアドレスレジ
スタ(LA0)502及びアドレス比較器504により
ロック中のアドレスを認識して、ロックアドレス以外の
アクセスを受け付けることができるので、排他制御を実
現しながら、メモリアクセスのスループットを向上する
できる。
【0099】以上の本実施例によれば、アドレスバスは
アドレス送出後、アドレスバスの内容をアクセスキュー
にラッチするので、データの応答を待たずに直ちに開放
でき、他のデバイスが新たなバスアクセスを開始でき
る。
【0100】データバスはバスの使用権を決定する専用
のアービタ回路を設けているので、アドレスバスと独立
にバスの使用元を決定でき、読み出しデータの転送では
アドレスバスとは独立にデータバスのみを用いて行うこ
とができる。
【0101】共有バスをアクセスするデバイスにはあら
かじめデバイスのID番号が割り付けられており、アド
レス送出と同時にこのID番号を出力するので、メモリ
側で複数のアクセスがバッファリングされても、混同す
ることがなくなる。
【0102】メモリはバンクごとに複数に分割されてい
るので、異なるバンクに対するメモリアクセスを並列に
処理することができる。2バンクに分割したメモリ及び
アクセスバッファの働きにより、一方のバンクにアクセ
スが集中しても誤動作することはなく、更に、異なるバ
ンクへのアクセスに対しては、他のバンクに待たされて
いるアクセスとは無関係に、アクセスを実行できるので
スループットを向上できる。
【0103】ロックアクセスにおいて、アドレスをロッ
クアドレスレジスタにラッチするので、アドレスバスは
アドレス送出後、アクセスの完了を待たずに直ちに開放
しても、他のデバイスが同一アドレスに対するアクセス
を行うのを抑止できる。
【0104】また、アドレスバスは上記のように開放さ
れるので、ロックアクセスを実行中であっても、異なる
アドレスに対するアクセスを並行して実行でき、アクセ
スのスループットを高めることができる。
【0105】さらにまた、ロック中のアドレスに対する
別のデバイスからのアクセスは、上記のようにロック中
は抑止されるが、リトライ信号によりアクセス要求元に
再度アクセスを起動するように指示をするので、ロック
解除後にアクセスを受け付けることができ、無期限にア
クセスを抑止されることを回避できる。
【0106】図7は本発明の他の実施例である1チップ
マルチプロセッサのシステム構成を示すブロック図であ
る。プロセッサエレメント110、120及びメモリ1
30、アクセスキュー135、アドレスバス170、デ
ータバス180は図1のものと同様である。
【0107】しかし図7では単一のアクセスキュー13
5、単一のメモリ130、単一のロック制御回路(L
C)500が配置されていること、およびロック制御回
路(LC)500はロック中表示フラグレジスタ(L
V)501及びロックID番号レジスタ(LID)50
3、ID比較器505、ANDゲート506から成るこ
とが、図1の実施例との相違である。
【0108】ロック中表示フラグレジスタ(LV)50
1は、アドレス転送時にロック指示信号線260がアサ
ートされているときセットされる。ロックID番号レジ
スタ(LID)503は、ロック中表示フラグレジスタ
(LV)501がセットされるときにID番号信号線2
40の内容をラッチする。ID比較器505はアドレス
転送中のID番号信号線240の値とロックID番号レ
ジスタ(LID)503の内容と比較して、ANDゲー
ト506により、ID番号の異なるデバイスからロック
アクセス(ロック指示信号線260をアサートしたアク
セス)が発生したら、リトライ指示信号線270をアサ
ートし、このアクセスの受け付けを拒絶する。これによ
り、本実施例のマルチプロセッサシステムにおいて、ロ
ックアクセスを唯一のプロセッサにのみ許可することが
でき、排他的なアクセスを実現できる。
【0109】なお、本実施例ではメモリはバンク分けさ
れていないが、複数のバンクに分割されている場合で
も、ロック制御回路(LC)500により、一元管理さ
れているので問題はない。
【0110】図8は本発明の他の実施例である1チップ
マルチプロセッサのシステム構成を示すブロック図であ
る。プロセッサエレメント110、120及びメモリ1
30、アクセスキュー135、アドレスバス170、デ
ータバス180は図1のものと同様である。
【0111】しかし、アドレスバス170のバスリクエ
スト信号210及びバスグラント信号220、ロック指
示信号線260はそれぞれ、リクエスト元であるキャッ
シュメモリ112、113、122、123に対応して
それぞれ4本の信号線からなっている。
【0112】またバスアービタ500はロック中表示フ
ラグレジスタ(LV)501を含んでおり、バスリクエ
スト受け付け時にロック指示信号線260がアサートさ
れていたら、ロック中表示フラグレジスタ(LV)50
1を検査し、LVが既にアサートされているならば、そ
のアクセスリクエストを受け付けない。
【0113】以上の構成によって、本実施例のマルチプ
ロセッサシステムにおいて、ロックアクセスを唯一のプ
ロセッサにのみ許可することができ、排他的なアクセス
を実現できる。
【0114】なお、本実施例でもメモリはバンク分けさ
れていないが、複数のバンクに分割されている場合で
も、バスアービタ(LC)500により、一元管理され
ているので問題はない。
【0115】図9は本発明の他の実施例である1チップ
マルチプロセッサのシステム構成を示すブロック図であ
る。プロセッサエレメント110、120及びメモリ1
30、140、アクセスキュー135、145、アドレ
スバス170、データバス180は図1のものと同様で
ある。
【0116】ロック制御回路(LC0)500はロック
中表示フラグレジスタ(LV0)501及びロックID
番号レジスタ(LID0)503、ID比較器505、
ANDゲート506から成る。ロック中表示フラグレジ
スタ(LV0)501は、メモリ130に対するアドレ
ス転送時にロック指示信号線260がアサートされてい
るときセットされる。ロックID番号レジスタ(LID
0)503は、ロック中表示フラグレジスタ(LV0)
501がセットされるときにID番号信号線240の内
容をラッチする。ID比較器505はアドレス転送中の
ID番号信号線240の値とロックID番号レジスタ
(LID0)503の内容と比較して、ANDゲート5
06により、ID番号の異なるデバイスからロックアク
セス(ロック指示信号線260をアサートしたアクセ
ス)が発生したら、リトライ指示信号線270をアサー
トし、このアクセスの受け付けを拒絶する。これによ
り、本実施例のマルチプロセッサシステムにおいて、一
つのメモリ(130又は140)に対するロックアクセ
スを唯一のプロセッサにのみ許可することができ、排他
的なアクセスを実現できる。
【0117】ロック制御回路(LC1)510もロック
制御回路(LC0)500と同様な構成であり、メモリ
140に対するアクセスについてロックアクセスの制御
を行う。
【0118】なおここで、メモリ130及び140への
アドレスの割り付け方には幾つかの変形が許される。先
ず第1の方法としては、アドレスをインターリーブする
方法がある。例えば、メモリ130には0番地、2番
地、・・・(以下続く)、メモリ140には1番地、3
番地、・・・(以下続く)のように、連続した番地を異
なるメモリへ順に割り付ける方法がある。第2の方法と
してはメモリを領域で分割する方法がある。例えば、メ
モリ130には0番地から499番地、メモリ140に
は500番地から999番地のように、連続した番地を
同一のメモリへ割り付ける方法がある。
【0119】上記の実施例において、メモリ130から
140は単純な記憶素子であったが、他の実施例として
は、メモリ130及び140がキャッシュメモリである
場合が考えられる。
【0120】また、上記の実施例ではメモリが2つのバ
ンクに分割されている場合について説明したが、4バン
ク以上に分割されている場合も本発明の範囲である。
【0121】さらにまた、上記の実施例ではプロセッサ
エレメントが2台の場合について説明したが、3台以上
の場合も本発明の範囲である。
【0122】
【発明の効果】本発明は、以上説明したように構成され
ているので以下に記載されるような効果を奏する。
【0123】ロックアクセスを実行中はフラグレジスタ
をアサートしているので、アドレスバスはアドレス送出
後、アクセスの完了を待たずに直ちに開放しても、他の
デバイスがロックアクセスを行うのを抑止できる。
【0124】また、アドレスバスは上記のように開放さ
れるので、ロックアクセスを実行中であっても、共有変
数でないメモリへのアクセスを並行して実行でき、アク
セスのスループットを高めることができる。
【0125】さらにまた、ロック中の共有変数に対する
別のデバイスからのアクセスは、上記のようにロック中
は抑止されるが、キャンセルされることはないので、ロ
ック解除後にアクセスを受け付けることができ、無期限
にアクセスが抑止されることを回避できる。
【図面の簡単な説明】
【図1】本発明の一実施例である排他制御可能なメモリ
を有するマルチプロセッサのシステムを示す構成図であ
る。
【図2】通常のパイプライン動作を説明するタイムチャ
ートである。
【図3】バスロック時の動作を説明するタイムチャート
である。
【図4】バスロック時の排他動作を説明するタイムチャ
ートである。
【図5】バスロック時の排他動作を説明するタイムチャ
ートである。
【図6】バスロック時の並列動作を説明するタイムチャ
ートである。
【図7】本発明の他の一実施例である排他制御可能なメ
モリを有するマルチプロセッサのシステムを示す構成図
である。
【図8】本発明の他の一実施例である排他制御可能なメ
モリを有するマルチプロセッサのシステムを示す構成図
である。
【図9】本発明の他の一実施例である排他制御可能なメ
モリを有するマルチプロセッサのシステムを示す構成図
である。
【符号の説明】
110、120…プロセッサエレメント、111、12
1…中央処理装置(CPU)、112,122…命令キ
ャッシュ、113、123…オペランドキャッシュ、1
30、140…メモリ、135、145…アクセスキュ
ー、170…アドレスバス、180…データバス、24
0…アドレスバス用ID番号信号線、260…ロック指
示信号線、270…リトライ指示信号線、500、51
0…ロック制御回路、501…ロック中表示フラグレジ
スタ、502…ロックアドレスレジスタ、503…ロッ
クID番号レジスタ、504…アドレス比較器、505
…ID比較器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 誠 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】バスを介して相互に接続された複数のプロ
    セッサと、 上記バスに接続されるとともに、上記複数のプロセッサ
    によって共有される共有データを格納するメモリとを具
    備してなり、 上記複数のプロセッサの一方のプロセッサが上記メモリ
    の上記共有データをアクセスしている間に、上記複数の
    プロセッサの他方のプロセッサからの上記共有データへ
    のメモリアクセス要求の受付けを拒絶する一方、上記他
    方のプロセッサからの上記共有データのアドレスと異な
    るアドレスへのメモリアクセス要求を受付けるメモリア
    クセス制御回路を更に具備してなることを特徴とするマ
    ルチプロセッサシステム。
  2. 【請求項2】上記バスおよび上記メモリに接続され、上
    記バスを介して伝達される複数のアクセス要求のアドレ
    スを格納する先入れ先出しメモリで構成されたアクセス
    キューをさらに具備してなり、 上記複数のプロセッサの上記一方のプロセッサからの上
    記メモリの上記共有データへのアクセス要求が上記アク
    セスキューに格納された後、上記アクセスキューによる
    上記メモリの上記共有データへのアクセスが終了する以
    前には、上記メモリアクセス制御回路は上記複数のプロ
    セッサの上記他方のプロセッサからの上記メモリの上記
    共有データへのアクセス要求が上記アクセスキューに格
    納されることを禁止することを特徴とする請求項1記載
    のマルチプロセッサシステム。
  3. 【請求項3】上記メモリアクセス制御回路は、 上記複数のプロセッサの一方のプロセッサからの上記共
    有データへのアクセス要求に従って上記アクセスキュー
    が上記共有データへアクセスする際にセットされるフラ
    グレジスタと、 上記フラグレジスタがセットされている間に上記他方の
    プロセッサからの上記共有データへのアクセス要求が上
    記アクセスキューに格納されることを禁止する信号を発
    生する出力回路とから構成されてなることを特徴とする
    請求項2記載のマルチプロセッサシステム。
  4. 【請求項4】上記複数のプロセッサは上記バスにアクセ
    ス要求のアドレスを送出する際に、プロセッサ識別番号
    と上記アクセス要求のリード/ライト信号とを上記バス
    に送出する如く構成され、 上記アクセスキューは上記バスに転送された上記アクセ
    ス要求の上記アドレス、上記プロセッサ識別番号、上記
    リード/ライト信号、ライトアクセス要求の書き込みデ
    ータを格納する如く構成され、 上記複数のプロセッサの上記一方のプロセッサからアク
    セス要求に従って上記メモリからデータを上記バスに送
    出する際に、上記アクセスキューは対応するプロセッサ
    識別番号を上記バスに送出する如く構成されてなること
    を特徴とする
  5. 【請求項5】上記メモリは複数に分割され、 上記アクセスキューも上記メモリの分割数に対応して分
    割されてなることを特徴とする請求項1から請求項4の
    いずれかに記載のマルチプロセッサシステム。
  6. 【請求項6】上記バスと上記複数のプロセッサと上記メ
    モリと上記メモリアクセス制御回路と上記アクセスキュ
    ーとはひとつのLSIチップ上に形成されてなることを
    特徴とする請求項2から請求項5のいずれかに記載のマ
    ルチプロセッサシステム。
JP4015912A 1992-01-31 1992-01-31 マルチプロセッサシステム Pending JPH05210640A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP4015912A JPH05210640A (ja) 1992-01-31 1992-01-31 マルチプロセッサシステム
US08/009,077 US5740401A (en) 1992-01-31 1993-01-26 Multiprocessor system having a processor invalidating operand cache when lock-accessing
KR1019930000953A KR100293594B1 (ko) 1992-01-31 1993-01-27 공유메모리로의배타적액세스를실행하는멀티프로세서시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4015912A JPH05210640A (ja) 1992-01-31 1992-01-31 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH05210640A true JPH05210640A (ja) 1993-08-20

Family

ID=11901995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4015912A Pending JPH05210640A (ja) 1992-01-31 1992-01-31 マルチプロセッサシステム

Country Status (3)

Country Link
US (1) US5740401A (ja)
JP (1) JPH05210640A (ja)
KR (1) KR100293594B1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233663B1 (en) 1997-04-02 2001-05-15 Matsushita Electric Industrial Co., Ltd. Memory exclusive control device and method therefor
US6286068B1 (en) 1994-10-03 2001-09-04 International Business Machines Corporation Queued arbitration mechanism for data processing system
US6502168B1 (en) 1997-04-14 2002-12-31 International Business Machines Corporation Cache having virtual cache controller queues
WO2007096980A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited 記録制御装置および記録制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
JPH09293015A (ja) * 1996-04-24 1997-11-11 Mitsubishi Electric Corp メモリシステムおよびそれに用いられる半導体記憶装置
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5873117A (en) * 1996-07-01 1999-02-16 Sun Microsystems, Inc. Method and apparatus for a directory-less memory access protocol in a distributed shared memory computer system
US5946710A (en) * 1996-11-14 1999-08-31 Unisys Corporation Selectable two-way, four-way double cache interleave scheme
US6078981A (en) * 1997-12-29 2000-06-20 Intel Corporation Transaction stall technique to prevent livelock in multiple-processor systems
US6311255B1 (en) * 1999-04-29 2001-10-30 International Business Machines Corporation System and method for selectively restricting access to memory for bus attached unit IDs
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US6973521B1 (en) * 2000-05-16 2005-12-06 Cisco Technology, Inc. Lock controller supporting blocking and non-blocking requests
US6986005B2 (en) * 2001-12-31 2006-01-10 Hewlett-Packard Development Company, L.P. Low latency lock for multiprocessor computer system
US6922745B2 (en) * 2002-05-02 2005-07-26 Intel Corporation Method and apparatus for handling locks
JP2004312072A (ja) * 2003-04-02 2004-11-04 Matsushita Electric Ind Co Ltd 画像処理装置及びカメラ、並びに画像処理方法
JP4576323B2 (ja) * 2004-12-10 2010-11-04 富士通株式会社 データ転送装置およびデータ転送方法
KR20120036208A (ko) * 2010-10-07 2012-04-17 삼성전자주식회사 재구성 기반 컴퓨팅 장치 및 이의 메모리 의존성 보정방법
US9274964B2 (en) 2012-02-02 2016-03-01 Qualcomm Incorporated Multi-bank cache memory
KR20160046331A (ko) 2013-08-19 2016-04-28 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. 범용 유닛을 기반으로 하는 고성능 프로세스 시스템 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPH0760422B2 (ja) * 1983-12-30 1995-06-28 株式会社日立製作所 記憶ロツク方式
US4561051A (en) * 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
US4709326A (en) * 1984-06-29 1987-11-24 International Business Machines Corporation General locking/synchronization facility with canonical states and mapping of processors
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US5291581A (en) * 1987-07-01 1994-03-01 Digital Equipment Corporation Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US4984153A (en) * 1988-04-27 1991-01-08 Unisys Corporation Storage locking control for a plurality of processors which share a common storage unit
US4924466A (en) * 1988-06-30 1990-05-08 International Business Machines Corp. Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
JPH0354660A (ja) * 1989-07-21 1991-03-08 Nec Corp マルチプロセッサシステムにおける共有メモリ管理方式
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5301290A (en) * 1990-03-14 1994-04-05 International Business Machines Corporation Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
AU633724B2 (en) * 1990-06-29 1993-02-04 Digital Equipment Corporation Interlock queueing
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286068B1 (en) 1994-10-03 2001-09-04 International Business Machines Corporation Queued arbitration mechanism for data processing system
US6233663B1 (en) 1997-04-02 2001-05-15 Matsushita Electric Industrial Co., Ltd. Memory exclusive control device and method therefor
KR100290291B1 (ko) * 1997-04-02 2001-05-15 모리시타 요이찌 메모리배타제어장치및이의방법
US6502168B1 (en) 1997-04-14 2002-12-31 International Business Machines Corporation Cache having virtual cache controller queues
US6662216B1 (en) 1997-04-14 2003-12-09 International Business Machines Corporation Fixed bus tags for SMP buses
WO2007096980A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited 記録制御装置および記録制御方法
US8176260B2 (en) 2006-02-24 2012-05-08 Fujitsu Limited Recording controller including snoop unit issuing invalidation request and response unit outputting notification indicating identification information for indentifying recording request and recording control method thereof

Also Published As

Publication number Publication date
US5740401A (en) 1998-04-14
KR930016879A (ko) 1993-08-30
KR100293594B1 (ko) 2001-09-17

Similar Documents

Publication Publication Date Title
JPH05210640A (ja) マルチプロセッサシステム
JP3144794B2 (ja) マルチプロセッサシステム
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
US5754800A (en) Multi processor system having dynamic priority based on row match of previously serviced address, number of times denied service and number of times serviced without interruption
US5369748A (en) Bus arbitration in a dual-bus architecture where one bus has relatively high latency
US6532509B1 (en) Arbitrating command requests in a parallel multi-threaded processing system
JP2001117859A (ja) バス制御装置
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
JPH04306748A (ja) 情報処理装置
US5353416A (en) CPU lock logic for corrected operation with a posted write array
WO1996013774A1 (en) Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
US20030051103A1 (en) Shared memory system including hardware memory protection
EP1190331B1 (en) Minimizing use of bus command code points to request the start and end of a lock
US20030140189A1 (en) Method and apparatus for resource sharing in a multi-processor system
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor
JP3425421B2 (ja) マルチプロセッサシステム
JPH0330175B2 (ja)
JPS6153747B2 (ja)
JPH0222757A (ja) マルチプロセッサのメモリシステム
JP3105819B2 (ja) バッファ制御装置
JPH11203253A (ja) 共有資源排他アクセス制御方式
JP2966038B2 (ja) ディジタルデータ処理ユニット調停装置及び方法
KR19980026521A (ko) 멀티 포트 메모리 비동기 중재 방법
JPH086905A (ja) マルチポートramのアクセス調停回路