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

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

Info

Publication number
JP3144794B2
JP3144794B2 JP30240890A JP30240890A JP3144794B2 JP 3144794 B2 JP3144794 B2 JP 3144794B2 JP 30240890 A JP30240890 A JP 30240890A JP 30240890 A JP30240890 A JP 30240890A JP 3144794 B2 JP3144794 B2 JP 3144794B2
Authority
JP
Japan
Prior art keywords
bus
access
data
data bus
address
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
Application number
JP30240890A
Other languages
English (en)
Other versions
JPH04175943A (ja
Inventor
誠 花輪
忠彦 西向井
修 西井
鈴木  誠
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 JP30240890A priority Critical patent/JP3144794B2/ja
Priority to US07/784,546 priority patent/US5375215A/en
Priority to KR1019910019486A priority patent/KR100243964B1/ko
Publication of JPH04175943A publication Critical patent/JPH04175943A/ja
Priority to US08/862,322 priority patent/US6078983A/en
Application granted granted Critical
Publication of JP3144794B2 publication Critical patent/JP3144794B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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
    • 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

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 Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、アドレスバスとデータバスとを介して複数
のプロセッサと共有メモリとが接続されたマルチプロセ
ッサシステムに関する。
〔従来の技術〕
バンクが1つのみの共有メモリをアクセスするマルチ
プロセッサは、例えば1990年4月20日に電子情報通信学
会より発行された「コンピュータシステム研究会報告」
CPSY90−4の第25頁乃至第32頁(以下、文献1と言う)
等により、従来より公知のものである。
この文献1には、プロセッサ等の送信ユニットがオー
ダ(アドレス/データ)を送信した後に、一旦システム
バスを開放し、受信ユニットはアンサの準備できた時に
システムバスの使用権を得て、送信ユニットへアンサを
返送すると言うスプリット方式を提案している。
さらに、この文献1は、プロセッサ,メモリ装置、入
出力装置等の複数のユニットからオーダが送られること
を想定して、オーダやアンサを複数個、蓄積するシステ
ムバスインターフェイス制御回路(通信バッファ)を設
けることが提案され、具体的には、プロセッサユニット
のバス入出力部にこのシステムバスインターフェイス制
御回路が設けられている。
こうすれば、ユニットAからユニットBへのアドレス
転送とユニットBからユニットAへのデータ転送との間
に例えばユニットCからユニットBへのアドレス転送の
ような別なデータ転送を実行することができる。
この結果、共有のシステムバスを一つのユニットが長
時間独占しなくなるので、マルチプロセッサシステムで
高転送能力が期待できる。
一方、昭和63年8月30日オーム社より発行された「コ
ンピュータアーキテクチャ」第179頁乃至第184頁(以下
文献2と言う)には、メモリアクセスが先行するメモリ
アクセスの完了を待つ必要の無いメモリアクセス・パイ
プライン処理が開示され、この場合にメモリは複数個の
バンクに分割され、次々に入力されるアクセス要求と次
々に出力される読み出し結果をバッファするために、ア
クセスキューとデータキューとをメモリに付加すること
が開示されている。
こうすると、隣接するアクセス要求がメモリの異なる
バンクをアクセスするならば、あとの要求は先の要求の
完了を待つ必要が無いので、メモリアクセスの高速化を
達成することができる。
文献2には、さらに複数個のバンクに分割されたメモ
リのパイプラインアクセスを可能とするハードウェアも
開示されている。このハードウェアとして、複数のバン
クに対応して、複数のメモリアドレスレジスタと複数の
データラッチとを配置したパイプラインアクセスが提案
されている。
〔発明が解決しようとする課題〕
しかしながら、上記の文献1に記載の従来技術におい
ては、共有メモリのバンクが1つのみであり、またシス
テムバスにアドレスとデータがタイムシェアーで多重転
送される方式であるため、この場合は複数のプロセッサ
から共有メモリへのアクセスのスループットが低いこと
が本発明者等の検討により明らかとされた。
また、上記の文献2に記載の従来技術においては、メ
モリの1つのバンクには1つのメモリアドレスレジスタ
のみしか配置されていないので、プロセッサからの隣接
するアクセス要求がメモリの同一のバンクを連続してア
クセスするならば、後のアクセス要求は先のアクセス要
求の完了を待つ必要があり、この場合はアクセスのスル
ープットが低下することが本発明者等の検討により明ら
かとされた。
従って、本発明の目的とするところは、複数のプロセ
ッサから共有メモリへのアクセスのスループットが向上
されるとともに、プロセッサからの隣接するアクセス要
求が共有メモリの同一のバンクを連続してアクセスする
場合でも、後のアクセス要求が先のアクセス要求の完了
を待つ必要の無いマルチプロセッサシステムを提供する
ことにある。
〔課題を解決するための手段〕
本願で開示される発明のうち、代表的な発明の特徴
は、下記の如きにある。
すなわち、 (1)アドレスバス(170)と、 (2)データバス(180)と、 (3)上記アドレスバス(170)と上記データバス(18
0)とに接続され、上記アドレスバス(170)にアクセス
要求アドレスを送出する複数のプロセッサ(110,120)
と、 (4)上記アドレスバス(170)と上記データバス(18
0)に接続された複数のアクセスキュー(135,145,155,1
65)と、 (5)上記複数のアクセスキュー(135,145,155,165)
に対応して複数のバンクに分割された共有メモリ(130,
140,150,160)とを具備してなり、 上記複数のアクセスキュー(135,145,155,165)は上
記アドレスバス(170)を介して伝達される複数のアク
セス要求アドレス(410)をバッファリングする先入れ
先出し(FIFO)メモリで構成されてなることを特徴とす
る。
本発明の好適な実施形態によれば、上記複数のプロセ
ッサは上記アドレスバスにアクセス要求アドレスを送出
する際に、プロセッサの識別番号およびアクセス要求の
リード/ライト信号を上記アドレスバスに送出し、 上記複数のアクセスキューを構成する上記FIFOメモリ
は、複数のアクセス要求のリード/ライト信号、アクセ
ス要求したプロセッサ識別番号、ライトアクセス要求の
書き込みデータをさらにバッファリングし、 上記共有メモリのひとつのバンクが上記データバスに
データを送出する際に、対応したひとつのFIFOメモリは
バッファリングしたプロセッサ識別番号を上記データバ
スに送出することを特徴とする。
本発明のより好適な実施形態によれば、上記複数のプ
ロセッサは、上記アドレスバスへ送出したプロセッサ識
別番号を保持する第1の回路と、上記データバスに上記
ひとつのFIFOメモリから送出されたプロセッサ識別番号
と上記第1の回路に格納された上記プロセッサ識別番号
とを比較し、両プロセッサ識別番号が一致した際に上記
データバスのデータのプロセッサ内部へのラッチを指示
する第2の回路とを具備してなることを特徴とする。
本発明のより具体的な実施形態によれば、上記アドレ
スバス上の要求に応答して上記アドレスバスのバス使用
権を決定する第1のアビータが上記アドレスバスに接続
され、上記データバス上の要求に応答して上記データバ
スのバス使用権を決定する第2のアビータが上記データ
バスに接続されてなることを特徴とする。
〔作用〕
本発明の上記代表的な実施例によれば、共有メモリは
複数のバンクに分割されているため、さらに、アドレス
バスとデータバスとが物理的に分離した分離バス方式を
採用しているため、複数のプロセッサから複数のバンク
に分割された共有メモリへのアクセスのスループットが
著しく向上されることができる。
さらに、FIFOメモリにバッファリングされた共有メモ
リへの複数のアクセス要求アドレスに関して、先入れ先
出しでデータバスのバス使用権の獲得の後、共有メモリ
のバンクとプロセッサとの間のデータ転送が次々に実行
されるため、隣接するアクセス要求が共有メモリの同一
のバンクを連続してアクセスするとしても、後のアクセ
ス要求が先のアクセス要求のデータ転送の完了を待つ必
要が無く、スループットが著しく向上されることができ
る。
本発明の上記より好適な実施形態によれば、共有バス
をアクセスする複数のプロセッサにはあらかじめプロセ
ッサID(識別)番号が割り付けられており、アドレス送
出と同時にこのID番号を出力し、データ受信もこのID番
号によって制御されるので、共有メモリ側で複数のアク
セスがバッファリングされても、各プロセッサでデータ
を混同することがなくなる。
本発明の上記具体的な実施形態によれば、データバス
とアドレスバスとはそれぞれバスの使用権を決定する専
用のアービタ回路を設けているので、アドレスバスと独
立にデータバスの使用元を決定でき、読み出しデータの
転送ではアドレスバスとは独立にデータバスのみを用い
て行うことができる。
本発明のその他の目的と特徴は、以下の実施例から明
らかとなろう。
〔実施例〕
以下に、本発明の一実施例を図を用いて詳細に説明す
る。
第1図は、本発明の一実施例であるマルチプロセッサ
システムのシステム構成を示すブロック図である。
システム概要 第1図に示した本発明の一実施例であるマルチプロセ
ッサシステムは、 アドレスバス170と、 データバス180と、 アドレスバス170とデータバス180とに接続され、アド
レスバス170にアクセス要求アドレスを送出する第1と
第2のプロセッサ110,120と、 アドレスバス170とデータバス180に接続された四つの
アクセスキュー135,145,155,165と、 四つのアクセスキュー(135,145,155,165)に対応し
て四つのバンクに分割された共有メモリ130,140,150,16
0とを具備してなり、 四つのアクセスキュー135,145,155,165はアドレスバ
ス170を介して伝達される複数のアクセス要求アドレス4
10をバッファリングする先入れ先出し(FIFO)メモリで
構成されてなることを特徴とする。
従って、2台のプロセッサエレメント110及び120が、
4バンクに分割されたメモリ130,140,150,160と、アド
レスバス170及びデータバス180さらにはFIFOメモリで構
成された四つのアクセスキュー135,145,155,165を介し
て接続されている。
このように、共有メモリ130,140,150,160は複数のバ
ンクに分割されているため、さらに、アドレスバス170
とデータバス180とが物理的に分離した分離バス方式を
採用しているため、複数のプロセッサ110,120から複数
のバンクに分割された共有メモリ130,140,150,160への
アクセスのスループットが著しく向上されることができ
る。
さらに、FIFOメモリで構成された四つのアクセスキュ
ー135,145,155,165にバッファリングされた共有メモリ1
30,140,150,160への複数のアクセス要求アドレスに関し
て、先入れ先出しでデータバスのバス使用権の獲得の
後、共有メモリ130,140,150,160のバンクとプロセッサ1
10,120との間のデータ転送が次々に実行されるため、隣
接するアクセス要求が共有メモリの同一のバンクを連続
してアクセスするとしても、後のアクセス要求が先のア
クセス要求のデータ転送の完了を待つ必要が無く、スル
ープットが著しく向上されることができる。
以下、第1図のプロセッサシステムを構成する各構成
要素について、詳細に説明する。
プロセッサエレメント(PE)の構成 プロセッサーエレメント110は、中央処理装置(CPU
1)111及び命令キャッシュ(IC1)112,オペランドキャ
ッシュ(OC1)113,命令用バス114,オペランド用バス115
から成り、それぞれ第1図のように接続されている。
PEの命令キャッシュ 命令キャッシュIC1(112)はCPU1(111)の命令フェ
ッチ要求のアドレスによって検索されて、対応する命令
データのコピーが命令キャッシュIC1(112)に存在する
か否かを判断する。
要求された命令が命令キャッシュ中に存在する(ヒッ
トした)場合には、PE外部の共有メモリ130,140,150,16
0はアクセスされることなく、命令キャッシュIC1(11
2)から命令データが読み出され、命令用バス114を用い
てCPU1へ転送される。
中央処理装置CPU1(111)からの命令フェッチ要求に
対して対応する命令データのコピーが命令キャッシュIC
1(112)に存在しない(ミスした)場合には、命令キャ
ッシュIC1(112)は外部のメモリ130,140,150,160をア
クセスして、対応するデータを読み出し、命令キャッシ
ュIC1(112)へ読み出したデータを格納すると同時に、
命令用バス114を用いて中央処理装置CPU1へ転送する。
中央処理装置CPU1(111)は命令キャッシュIC1(11
2)もしくは外部のメモリ130,140,150,160から読み出し
た命令データを命令として解読して、その指示に従って
命令の実行を行う。
PEのオペランドキャッシュ 命令キャッシュIC1(112)と同様に、オペランドキャ
ッシュOC1(113)も中央処理装置CPU1(111)のオペラ
ンドアクセス要求のアドレスによって検索されて、対応
するオペランドデータのコピーがオペランドキャッシュ
OC1(113)に存在するか否かを判断する。
要求されたオペランドデータがオペランドキャッシュ
に存在する場合には、PE外部の共有メモリ130,140,150,
160はアクセスされることなく、オペランドキャッシュO
C1(113)からオペランドデータか読み出され、オペラ
ンド用バス115を用いてCPU1へ転送される。
中央処理装置CPU1(111)からのオペランドアクセス
要求に対して対応するデータのコピーがオペランドキャ
ッシュOC1(113)に存在しない(ミスした)場合には、
オペランドキャッシュOC1(113)は外部のメモリ130,14
0,150,160をアクセスして、対応するデータを読み出
し、オペランドキャッシュOC1(113)へ格納すると同時
に、オペランド用バス115を用いて中央処理装置CPU1へ
転送する。
中央処理装置CPU1(111)はオペランドキャッシュOC1
(113)もしくは外部のメモリ130,140,150,160から読み
出したデータをオペランドとして使用して、命令の実行
を行う。
プロセッサエレメント110と同様に、プロセッサエレ
メント120も、中央処理装置(CPU2)121及び命令キャッ
シュ(IC2)122、オペランドキャッシュ(OC2)123、命
令用バス124、オペランド用バス125から成り、それぞれ
第1図のように接続され、その動作もプロセッサエレメ
ント110と同様になっている。
共有メモリおよびアクセスキュー 共有メモリは4つのバンク130,140,150,160に分割さ
れており、アクセスキュー135,145,155,165、アドレス
バス170、データバス180を介して、プロセッサエレメン
ト110,120に接続されている。
アクセスキュー135,145,155,165は、プロセッサエレ
メント110,120の命令キャッシュ(IC1、IC2)112,122,
及びオペランドキャッシュ(OC1、OC2)113,123からの
メモリアクセス要求をラッチしておく先入れ先出し(Fi
rst In First OUT:FIFO)のバッファである。
バスアービタ アービタ190,195はそれぞれ、アドレスバス170及びデ
ータバス180のバス使用権を決定するアービトレーショ
ン回路である。
アドレスバスの構成 第2図は、第1図に示したアドレスバス170の構成を
詳細に説明する図である。
アドレスバス170はリクエスト信号線210及びグラント
信号線220,アドレス信号線230,リード/ライト信号線24
0,ID番号信号線250から成る。
第2図には命令キャッシュ1(IC1)112及び0バンク
目のメモリ(SC0)130しか記載されていないが、第1図
から明らかなように、他の命令キャッシュ(122)やオ
ペランドキャッシュ(113,123)及び他のバンクのメモ
リ(140,150,160)も同様に接続されている。
8本のリクエスト信号線210及び8本のグラント信号
線220は、命令キャッシュIC1(112),IC2(122)、オペ
ランドキャッシュOC1(113),OC2(123)、メモリ・バ
ンクSC0(130),SC1(140),SC2(150),SC3(160)の
デバイスに対応したものである。すなわち、各信号線21
0,220は、上記のそれぞれのデバイスに1対1に対応し
ているものである。
ID番号信号線250は、上記8個のデバイスを識別する
ため、3本の信号線より成る。
命令キャッシュIC1(112)がメモリ・バンクSC0(13
0)にあるデータの読み出しを起動する場合を例に取っ
て、各構成要素の動作を下記に説明する。
命令キャッシュIC1(112)はまず、アドレスバス170
を使用する権利であるバス権を獲得するため、8本のリ
クエスト信号線210の内命令キャッシュIC1(112)に対
応した1本の信号をアサートする。
命令キャッシュIC1(112)はリクエスト信号線210の
対応する1本の信号線をアサートした後は、グラント信
号線220の内自分に対応する信号線を監視し、アドレス
バスアービタ190によってバス権が与えられるのを待っ
ている。
アドレスバス用のアービタ190は、リクエスト信号線2
10の全信号線(8本)をチェックして、バス権を要求し
ているデバイスに、優先順位に応じて、バス権を与え
る。今、命令キャッシュIC1(112)にバス権が与えるこ
とが可能になったものと仮定する。アドレスバス用のア
ービタ190は、8本のグラント信号線220の内命令キャッ
シュIC1(112)に対応する1本の信号線をアサートして
バス権を与える。
命令キャッシュIC1(112)はグラント信号線220の内
の自分に対応する信号線がアサートされるとバス権を獲
得して、アドレス信号線230,リード/ライト信号線240,
ID番号信号線250に所定の値を送出する。ここで、ID番
号信号線250には、命令キャッシュIC1(112)のID番号
が出力される。
メモリ・バンクSC0(130)のためのアクセスキュー13
5は、アドレス信号線230の下位2ビットよりメモリ・バ
ンクSC0(130)へのアクセスであることを判断し、アド
レス信号線230,リード/ライト信号線240,ID番号信号線
250の内容をラッチする。アクセスキュー135にラッチさ
れたアクセス要求は、メモリ・バンクSC0(130)がアク
セス可能になった時点で順次処理される。
データバスの構成 第3図は、第1図に示したデータバス180の構成を詳
細に説明する詳細図である。
データバス180はリクエスト信号線310及びグラント信
号線320,データ信号線330,ID番号信号線350から成る。
第3図には命令キャッシュ1(IC1)112及び0バンク
目のメモリ(SC0)130しか記載されていないが、第1図
から明らかなように、他の命令キャッシュ(122)やオ
ペランドキャッシュ(113,123)及び他のバンクのメモ
リ(140,150,160)も同様に接続されている。
8本のリクエスト信号線310及び8本のグラント信号
線320は、命令キャッシュIC1(112),IC2(122)、オペ
ランドキャッシュOC1(113),OC2(123)、メモリ・バ
ンクSC0(130),SC1(140),SC2(150),SC3(160)の
デバイスに対応したものである。すなわち、各信号線31
0,320は、上記のそれぞれのデバイスに1対1に対応し
ているものである。
アドレスバス170のID番号信号線250と同様に、データ
バス180のID番号信号線350は3本の信号線より成る。
命令キャッシュIC1(112)の要求に従ってメモリ・バ
ンクSC0(130)から読み出されたデータを命令キャッシ
ュIC1(112)へ転送する場合を例に取って、各構成要素
の動作を下記に説明する。
メモリ・バンクSC0(130)はまず、データバス180を
使用する権利であるバス権を獲得するため、8本のリク
エスト信号線310の内メモリ・バンクSC0(130)に対応
した1本の信号線をアサートする。
メモリ・バンクSC0(130)はリクエスト信号線310の
対応する1本の信号線をアサートした後は、グラント信
号線320の内自分に対応する信号線を監視し、データバ
スアービタ195によってバス権が与えられるのを待って
いる。
データバス用のアービタ195は、リクエスト信号線310
の全信号線(8本)をチェックして、バス権を要求して
いるデバイスに、優先順位に応じて、バス権を与える。
今、メモリ・バンクSC0(130)にバス権が与えることが
可能となったものと仮定する。アドレスバス用のアービ
タ195は、8本のグラント信号線320の内メモリ・バンク
SC0(130)に対応する1本の信号線をアサートしてバス
権を与える。
メモリ・バンクSC0(130)はグラント信号線320の内
の自分に対応する信号線がアサートされるとバス権を獲
得して、データ信号線330,ID番号信号線350に所定の値
を送出する。ここで、ID番号信号線350には、アクセス
キュー135にラッチしておいたアクセス要求元である命
令キャッシュIC1(112)のID番号が出力される。
一方、命令キャッシュIC1(112)はアドレスを送出し
た後、アドレスバス170を開放し、データバス180のID番
号信号線350を監視して、メモリ・バンクSC0(130)か
ら読み出しデータが転送されるのを待っている。そこ
で、命令キャッシュIC1(112)はメモリ・バンクSC0(1
30)から送出されたID番号を検出して、命令キャッシュ
IC1(112)への応答サイクルであることを認識して、デ
ータ信号線330上のデータをラッチする。
アクセスキューの構成 第4図は、第1図に示したアクセスキューの構成を説
明する詳細図であり、アクセスキューの1つである(AQ
0)135を詳細に説明する。他のアクセスキュー(AQ1)1
45,(AQ2)145,(AQ3)165もアクセスキュー(AQ0)135
と同様の構成である。
アクセスキュー135は、4エントリの先入れ先出し(F
IFO)のバッファである。各エントリは、アドレス部410
及びリード/ライト部420,ID番号部430,書き込みデータ
部440から成る。アドレス部410はアドレスバス170のア
ドレス信号線230の内容をラッチし、リード/ライト部4
20は同様にリード/ライト信号線240の内容をラッチ
し、ID番号部430はID番号信号線250の内容をラッチし、
書き込みデータ部440はメモリへの書き込み時にデータ
バス180のデータ信号線330の内容(書き込みデータ)を
ラッチする。
命令キャッシュIC1(112)等のデバイスからメモリ・
バンクSC0(130)へのメモリアクセス要求は、一旦、こ
のアクセスキュー135にラッチされる。従って、アドレ
スバス170は、メモリ・バンクSC0(130)からの読み出
しデータの転送を待たずして、他のデバイスに開放する
ことができる。
また、1つのデバイスのメモリアクセス要求を処理中
に、他のデバイスから同一メモリへアクセス要求が発行
されても、アクセスキューは複数のエントリを有してい
るので、他のデバイスから同一メモリへのアクセス要求
がアクセスキューにバッファリングされることができ
る。
なお、本実施例では、メモリアクセス要求は、プロセ
ッサエレメント110の命令キャッシュIC1(112)及びオ
ペランドキャッシュOC1(113),プロセッサエレメント
120の命令キャッシュIC2(122)及びオペランドキャッ
シュOC2(123)の4つのデバイスから要求されるが、1
つのデバイスからは複数のアクセス要求が同時に発効さ
れる(前のアクセスが完了する前に次のアクセスが発行
される)ことはないので、アクセスキューのバッファの
段数としては、4段で充分である。
なお、1つのデバイスから複数のアクセス要求が同時
に発行される実施例においては、アクセスキューのバッ
ファの段数を更に増加させること、及び、同時に発行さ
れたアクセス要求を識別する手段を設けることにより対
処可能である。
アクセスキュー135にラッチされた複数のアクセス要
求は、先入れ先出し(FIFO)バッファの特性によって、
先にラッチされたものから順に処理される。
アドレスデコーダ450は、アドレスバス170のアドレス
信号線230の下位2ビットをデコードし、アクセス要求
がメモリ・バンクSC0(130),SC1(140),SC2(150),S
C3(160)の内のどのメモリに体するものなのかを判断
し、対応するメモリのアクセスキューにアクセス要求を
ラッチさせるものである。例えば、アドレスデコーダ45
0は、アドレスバス170のアドレス信号線230の下位2ビ
ットが「00」のとき、アクセスキュー135にアクセス要
求をラッチさせる。
デバイスのデータ取り込み 第5図はメモリのリード要求を発行したデバイスが読
み出しデータを取り込むところを示した説明するもので
ある。
第5図では、命令キャッシュIC1(112)がリード要求
を発行して、読み出しデータを取り込むところである。
命令キャッシュIC1(112)には、デバイスID番号レジ
スタ510及びID番号比較器520,データラッチ530を有す
る。デバイスID番号レジスタ510には、各デバイスに固
有な番号があらかじめ設定されており、それを保持して
いる。
命令キャッシュIC1(112)はアドレスバスを獲得して
アクセスアドレスを送出するとき、デバイスID番号レジ
スタ510の内容をアドレスバス170のID番号信号線250へ
出力する。その後、命令キャッシュIC1(112)はアドレ
スバスを他のデバイスへ開放し、データバス180のID番
号信号線350の監視をを行う。つまり、データバス180の
ID番号信号線350の内容と自分のID番号(ID番号レジス
タ510の内容)を比較器520で比較する。比較の結果、一
致したら、データバス180のデータ信号線330の内容をデ
ータラッチ530へラッチする。命令キャッシュIC1(11
2)はデータラッチ530の内容をCPU1(111)へ転送する
のと共に、キャッシュメモリの中に格納する。
バスアービタの構成 第6図は、第1図に示したアービタ190,195の構成を
詳細に説明する図である。
データバスアービタ195は、データバスのバス使用権
を決定するアービトレーション回路であり、各デバイス
に対応した8つの回路ブロック610から617及びORゲート
630から成る。
各ブロック610から617は、データバス180のリクエス
ト要求信号310及びグラント信号線320のそれぞれの信号
線が1本ずつ対応している。つまり、回路ブロック610,
611にはそれぞれオペランドキャッシュOC1(113),OC2
(123)が対応し、回路ブロック612,613にはそれぞれ命
令キャッシュIC1(112),IC2(122)が対応し、回路ブ
ロック614から617にはそれぞれメモリ・バンクSC0(13
0)からSC3(160)が対応している。
回路ブロック610から617の内部構成は共通であるの
で、回路ブロック610を用いてその内部構成を説明す
る。回路ブロック610はインバータ640及びANDゲート64
1,642、ORゲート643,644、フリップフロップ645から成
り、図のように接続されている。なお、フリップフロッ
プ645はどれか1つの回路ブロックのものが「1」にセ
ットされていてその他の回路ブロックのものは「0」に
セットされているものとする。
データバスアービタ195の動作について、以下に説明
する。直前のサイクルにおいてメモリ・バンクSC0(13
0)がバス権を所有しており、今、メモリ・バンクSC2
(150)とメモリ・バンクSC3(160)がリクエスト信号
線310により、バス権を要求しているものとする。デー
タバスアービタ195は回路ブロック610から617の動作に
より、メモリ・バンクSC2(150)にバス権を与えること
に決定し、グラント信号線320を出力する。
データバスアービタ195によれば、バス権の決定方式
は、回路ブロック610から617の閉ループにおいて、直前
のサイクルにバス権を確保しているデバイスから順にリ
クエスト信号線を検査して、1番初めに発見した要求デ
バイスに対してバス権を与える方式である。
本決定方式によれば、1つのデバイスがバスを占有し
て使用することがなくなるので、均一な確率で各デバイ
スへバス権を与えることのできるバスアービタを提供で
きる。
なお、オペランドキャッシュOC1(113)及びOC2(12
3)からのデータバスのリクエスト信号線はオペランド
データのストア時にアサートされる。
また、ORゲート630はオペランドキャッシュOC1(11
3)またはOC2(123)からのオペランドデータのストア
時に、アドレスバス170のアービトレーションをデータ
バス180のアービトレーションに同期させるための信号6
31を生成するためのものである。
アドレスバスアービタ190は、アドレスバスのバス使
用権を決定するアービトレーション回路であり、各デバ
イスに対応した8つの回路ブロック620から627及びイン
バータ632から成っている。
各回路ブロック620から627は、アドレスバス170のリ
クエスト要求信号210及びグラント信号線220のそれぞれ
の信号線が1本ずつ対応している。つまり、回路ブロッ
ク620,621にはそれぞれオペランドキャッシュOC1(11
3),OC2(123)が対応し、回路ブロック622,623にはそ
れぞれ命令キャッシュIC1(112),IC2(122)が対応
し、回路ブロック624から627にはそれぞれメモリ・バン
クSC0(130)からSC3(160)が対応している。
回路ブロック620から627の内部構成は共通であるの
で、回路ブロック620を用いてその内部構成を説明す
る。回路ブロック620はインバータ650及びANDゲート65
1,652,656,657、ORゲート653,654,658、フリップフロッ
プ655から成り、図のように接続されている。なお、フ
リップフロップ655はどれか1つの回路ブロックのもの
が「1」にセットされていてその他の回路ブロックのも
のは「0」にセットされているものとする。
アドレスバスアービタ190の動作は、信号631が「0」
の場合(つまり、オペランドキャッシュOC1(113)また
はOC2(123)からのオペランドデータのストアでない場
合)は、データバスアービタ195と同様である。つま
り、回路ブロック620から627の閉ループにおいて、直前
のサイクルにバス権を確保しているデバイスから順にリ
クエスト信号線を検査して、1番初めに発見した要求デ
バイスに対してバス権を与えるというバス権の決定方式
を実現している。
本決定方式によれば、1つのデバイスがバスを占有し
て使用することがなくなるので、均一な確率で各デバイ
スへバス権を与えることのできるバスアービタを提供で
きる。
一方、信号631が「1」の場合(つまり、オペランド
キャッシュOC1(113)またはOC2(123)からのオペラン
ドデータのストアの場合)は、インバータ632及び各回
路ブロック620乃至627内のANDゲート656,657及びORゲー
ト658の働きによって、データバス180のデータバスアー
ビタ195の出力(データバス180のグラント信号線の内
容)が、回路ブロック620から627内のフリップフロップ
655にセットされ、その内容がアドレスバス170のグラン
ト信号線220として出力される。
つまり、アドレスバス170のアービトレーションを、
データバス180のアービトレーションに同期させてい
る。
マルチプロセッサシステムの動作 第7図は、第1図から第6図に説明した本実施例のマ
ルチプロセッサシステムの動作タイムチャートを示した
ものである。
サイクルC1において、命令キャッシュIC1(112)に所
望のデータがないこと(ミス)が判明すると、命令キャ
ッシュIC1(112)はリクエスト信号線210をアサートし
てアドレスバス170のバス権を要求する。
サイクルC2において、アドレスバスアービタ190はこ
の時点で命令キャッシュIC1(112)以外のデバイスがア
ドレスバス170のバス権を要求していないので、グラン
ト信号線220をアサートして命令キャッシュIC1(112)
へバス権を与える。命令キャッシュIC1(112)はグラン
ト信号線220を受けて、アドレス信号線230及びID番号信
号線250を出力する。
サイクルC3において、メモリ・バンクSC0(130)は、
アドレス信号線230の下位2ビットより、自分がアクセ
スされていることを知り、メモリ・バンクSC0(130)か
らデータを読み出す。この読み出しには2サイクルかか
る。
サイクルC4において、データ・バンクSC0(130)は読
み出しデータを転送するため、リクエスト信号線310を
アサートしてデータバス180のバス権を要求する。
サイクルC5において、データバスアービタ195はこの
時点でメモリ・バンクSC0(130)以外のデバイスがデー
タバス180のバス権を要求していないので、グラント信
号線320をアサートしてメモリ・バンクSC0(130)へバ
ス権を与える。メモリ・バンクSC0(130)はグラント信
号線320を受けて、データ信号線330及びID番号信号線35
0にそれぞれの信号を出力する。なお、ID番号信号線350
には、命令キャッシュIC1(112)のID番号が出力されて
いる。
サイクルC6において、命令キャッシュIC1(112)は、
ID番号信号線350より、自分がアクセスしたデータが転
送されてきたことを知り、データ信号線330の内容をラ
ッチする。
なお、上述したサイクルC1からサイクルC6までの一連
の処理に並行して、サイクルC2ではオペランドキャッシ
ュOC1(113)及びOC2(123)が共にアドレスバス170を
要求しているが、アドレスバスアービタ190の働きによ
りオペランドキャッシュOC1(113)の要求がサイクルC3
で先に処理され、次のサイクルC4においてオペランドキ
ャッシュOC2(123)の要求が処理されている。
また、サイクルC5、C6において、メモリ・バンクSC2
(150)へのアクセスが連続していたとしても、アクセ
スキュー155の働きにより、バッファリングされ、順次
処理される。
更にまた、サイクルC8において、メモリ・バンクSC1
(140)及びSC2(150)が共にデータバス180を要求した
としても、データバスアービタ195の働きによりメモリ
・バンクSC1(140)要求がサイクルC8で先に処理され、
次のサイクルC9においてメモリ・バンクSC2(150)の要
求が処理されることになる。
以上の本実施例によれば、4バンクに分割したメモリ
及びアクセスバッファの働きにより、1つのバンクにア
クセスが集中しても誤動作することはなく、更に、他の
バンクへのアクセスに対しては、1つのバンクに集中し
て待たされているアクセスとは無関係に、他のバンクの
アクセスを実行できる効果がある。つまり、本実施例の
共有バス制御方式によれば、4つに分割したメモリバン
クを有効に活用することができる。
本発明は上記実施例に限定されるものではなく、その
技術思想に従って種々の変形が可能なことは言うまでも
ない。
例えば、上記の実施例において、共有メモリ130から1
60は単純な記憶素子(例えば、メインメモリ)であった
が、他の実施例としては、共有メモリ130から160がキャ
ッシュメモリである場合が考えられる。第8図は、その
場合のマルチプロセッサシステムのブロック図を示すも
のである。
メモリ・バンクSC0(130),SC1(140),SC2(150),S
C3(160)はキャッシュメモリであり、メインメモリ810
のコピーを保持するものである。また、メインメモリ81
0とキャッシュメモリ・バンクSC0(130),SC1(140),S
C2(150),SC3(160)の間は、第2の共有バス820によ
って接続されている。
また、以上の説明ではプロセッサシステムの実装形態
については説明しなかったが、第1図のシステムまたは
第8図のシステムの内、メインメモリ810を除いた回路
部分が最近のULSI技術を使用することによって1枚の半
導体基盤の上に実現されることができる。
尚、上述した本発明の実施例は、下記の如き利点を有
する。
データバスはバスの使用権を決定する専用のアービタ
回路を設けているので、アドレスバスと独立にバスの使
用元を決定でき、読み出しデータの転送ではアドレスバ
スとは独立にデータバスのみを用いて行うことができ
る。
共有バスをアクセスするデバイスにはあらかじめデバ
イスのID番号が割り付けられており、アドレス送出と同
時にこのID番号を出力するので、メモリ側で複数のアク
セスがバッファリングされても、混同することがなくな
る。
メモリはバンクごとに複数に分割さているので、異な
るバンクに対するメモリアクセスを並列に処理すること
ができる。
アドレスバスはアドレス送出後、アドレスバスの内容
をアクセスキューにラッチするので、データの応答を待
たずに直ちに開放でき、他のデバイスが新たなバスアク
セスを開始できる。
〔発明の効果〕
本発明は、以下に示す如き効果を奏する。
本発明によれば、共有メモリは複数のバンクに分割さ
れているため、さらに、アドレスバスとデータバスとが
物理的に分離した分離バス方式を採用しているため、複
数のプロセッサから複数のバンクに分割された共有メモ
リへのアクセスのスループットが著しく向上されること
ができる。
さらに、FIFOメモリにバッファリングされた共有メモ
リへの複数のアクセス要求アドレスに関して、先入れ先
出しでデータバスのバス使用権の獲得の後、共有メモリ
のバンクとプロセッサとの間のデータ転送が次々に実行
されるため、隣接するアクセス要求が共有メモリの同一
のバンクを連続してアクセスするとしても、後のアクセ
ス要求が先のアクセス要求のデータ転送の完了を待つ必
要が無く、スループットが著しく向上されることができ
る。
【図面の簡単な説明】
第1図は本発明の一実施例であるマルチプロセッサのシ
ステム構成を示すブロック図、第2図は第1図のアドレ
スバス170の構成を詳細に示す図、第3図は第1図のデ
ータバス180の構成を詳細に示す図、第4図は第1図の
アクセスキュー135の構成を詳細に示す図、第5図は第
1図の命令キャッシュIC1(112)の構成の一部を詳細に
示す図、第6図は第1図のバスアービタ190,195の構成
を詳細に示す図、第7図は第1図乃至第6図に実施例に
よるマルチプロセッサシステムの動作を示すタイムチャ
ート図、第8図は他の実施例であるマルチプロセッサの
システム構成を示すブロック図である。 110、120……プロセッサエレメント、111,121……中央
処理装置(CPU)、112,122……命令キャッシュ、113,12
3……オペランドキャッシュ、130,140,150,160……メモ
リ、135,145,155,165……アクセスキュー、170……アド
レスバス、180……データバス、190……アドレスバス用
アービタ、195……データバス用アービタ、250……アド
レスバス用ID番号信号線、350……データバス用ID番号
信号線。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 誠 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 平2−238552(JP,A) 特開 平2−220168(JP,A) 特開 昭60−247748(JP,A) 特開 昭56−164429(JP,A) 特開 平2−230455(JP,A) 特開 平2−116950(JP,A) 特開 昭61−296456(JP,A) 特開 平2−48765(JP,A) 特開 平2−89142(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/06 550 G06F 15/167 EPAT(QUESTEL) WPI(DIALOG)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】(1)アドレスバスと、 (2)データバスと、 (3)上記アドレスバスと上記データバスとに接続さ
    れ、上記アドレスバスにアクセス要求アドレスを送出す
    る複数のプロセッサと、 (4)上記アドレスバスと上記データバスに接続された
    複数のアクセスキューと、 (5)上記複数のアクセスキューに対応して複数のバン
    クに分割された共有メモリとを具備してなり、 上記共有メモリは上記複数のアクセスキューを介して上
    記アドレスバスと上記データバスに接続され、 上記複数のアクセスキューは上記アドレスバスを介して
    伝達される複数のアクセス要求アドレスをバッファリン
    グする先入れ先出しメモリで構成されてなることを特徴
    とするマルチプロセッサシステム。
  2. 【請求項2】対応するメモリへのアクセスであることを
    判定し、判定結果に基づいて当該アクセスキューにアク
    セス要求を格納するための手段を有することを特徴とす
    る請求項1に記載のマルチプロセッサシステム。
  3. 【請求項3】上記複数のプロセッサは上記アドレスバス
    にアクセス要求アドレスを送出する際に、プロセッサ識
    別番号及びアクセス要求のリード又はライト信号を上記
    アドレスバスに送出し、 上記複数のアクセスキューを構成する上記先入れ先出し
    メモリは、複数のアクセス要求のリード又はライト信
    号、アクセス要求したプロセッサ識別番号、ライトアク
    セス要求の書き込みデータをさらにバッファリングし、 上記共有メモリの一つのバンクが上記データバスにデー
    タを送出する際に、対応した一つの先入れ先出しメモリ
    はバッファリングしたプロセッサ識別番号を上記データ
    バスに送出することを特徴とする請求項1又は請求項2
    に記載のマルチプロセッサシステム。
  4. 【請求項4】上記複数のプロセッサは、上記アドレスバ
    スへ送出したプロセッサ識別番号を保持する第1の回路
    と、上記データバスに上記一つの先入れ先出しメモリか
    ら送出されたプロセッサ識別番号と上記第1の回路に格
    納された上記プロセッサ識別番号とを比較し、両プロセ
    ッサ識別番号が一致した際に上記データバスのデータの
    プロセッサ内部へのラッチを指示する第2の回路とを有
    することを特徴とする請求項3に記載のマルチプロセッ
    サシステム。
  5. 【請求項5】アドレスバスと、 データバスと、 上記アドレスバスと上記データバスとに接続され、上記
    アドレスバスにアクセス要求アドレスを送出する複数の
    プロセッサと、 上記複数のプロセッサの各プロセッサ内に設けられた、
    上記複数のプロセッサ間を識別するプロセッサ識別番号
    を保持する手段及び上記アドレスバスに上記アセス要求
    を送出する際に上記プロセッサ識別番号とアクセス要求
    のリード又はライト信号とを上記アドレスバスに送出す
    る第1の送出手段と、 上記アドレスバスと上記データバスに接続された複数の
    アクセスキューと、 上記複数のアクセスキューの各アクセスキュー内に具備
    され、複数の上記アクセス要求アドレスと、複数の上記
    アクセス要求のリード又はライト信号と、上記複数のプ
    ロセッサから上記アドレスバスに送出された複数の上記
    プロセッサ識別番号と、複数のプロセッサから上記デー
    タバスに送出されたライトアクセス要求の書き込みデー
    タとをバッファリングするバッファリング手段を具備す
    る先入れ先出しメモリと、 上記複数のアクセスキューに対応して複数のバンクに分
    割された共有メモリと、 それぞれ上記先入れ先出しメモリ内に具備され、複数の
    上記アクセス要求アドレスと上記ライトアクセス要求の
    上記書き込みデータとを上記バッファリング手段から上
    記複数のバンクのうち対応する一つのバンクに送出する
    複数の第2の送出手段と、 それぞれ上記アクセスキュー内に具備され、上記複数の
    バンクのうち上記対応する一つのバンクが、上記複数の
    アクセス要求アドレスの一つのアクセス要求アドレスに
    対応して、要求されたデータを上記データバスに送出す
    る際に、バッファリングされた上記プロセッサ識別番号
    を上記データバスに送出する複数の第3の送出手段と、 それぞれ上記複数のプロセッサの各プロセッサに具備さ
    れ、上記第3の送出手段により上記データバスに送出さ
    れた上記バッファリングされた上記プロセッサ識別番号
    と上記プロセッサ識別番号を保持する手段に保持された
    上記プロセッサ識別番号とを比較し、その比較の結果、
    上記第3の送出手段により上記データバスに送出された
    上記バッファリングされた上記プロセッサ識別番号と上
    記プロセッサ識別番号を保持する手段に保持された上記
    プロセッサ識別番号との一致を検出した際に、上記デー
    タバス上に送出された上記要求されたデータを対応する
    プロセッサにフェッチするフェッチ指示を発効する複数
    の比較手段とを有することを特徴とするマルチプロセッ
    サシステム。
  6. 【請求項6】上記アドレスバス上の要求に応答して上記
    アドレスバスのバス使用権を決定する第1のアービタが
    上記アドレスバスに接続され、上記データバス上の要求
    に応答して上記データバスのバス使用権を決定する第2
    のアービタが上記データバスに接続されていることを特
    徴とする請求項1又は請求項5の何れかに記載のマルチ
    プロセッサシステム。
  7. 【請求項7】上記複数のバンクに分割された共有メモリ
    はキャッシュメモリであることを特徴とする請求項1又
    は請求項5の何れかに記載のマルチプロセッサシステ
    ム。
  8. 【請求項8】上記アドレスバス、上記データバス、上記
    複数のアクセスキュー、上記キャッシュメモリは一つの
    半導体基板の上に形成されていることを特徴とする請求
    項7に記載のマルチプロセッサシステム。
JP30240890A 1990-11-09 1990-11-09 マルチプロセッサシステム Expired - Lifetime JP3144794B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP30240890A JP3144794B2 (ja) 1990-11-09 1990-11-09 マルチプロセッサシステム
US07/784,546 US5375215A (en) 1990-11-09 1991-10-29 Multiprocessor system having shared memory divided into a plurality of banks with access queues corresponding to each bank
KR1019910019486A KR100243964B1 (ko) 1990-11-09 1991-11-04 여러개의 뱅크로 분할된공유메모리를 갖는 멀티프로세서시스템
US08/862,322 US6078983A (en) 1990-11-09 1997-05-23 Multiprocessor system having distinct data bus and address bus arbiters

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30240890A JP3144794B2 (ja) 1990-11-09 1990-11-09 マルチプロセッサシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000314432A Division JP3425421B2 (ja) 2000-10-10 2000-10-10 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPH04175943A JPH04175943A (ja) 1992-06-23
JP3144794B2 true JP3144794B2 (ja) 2001-03-12

Family

ID=17908562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30240890A Expired - Lifetime JP3144794B2 (ja) 1990-11-09 1990-11-09 マルチプロセッサシステム

Country Status (3)

Country Link
US (2) US5375215A (ja)
JP (1) JP3144794B2 (ja)
KR (1) KR100243964B1 (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
EP0575651A1 (en) * 1992-06-24 1993-12-29 International Business Machines Corporation Multiprocessor system
US5655102A (en) * 1993-09-29 1997-08-05 Silicon Graphics, Inc. System and method for piggybacking of read responses on a shared memory multiprocessor bus
US5848276A (en) * 1993-12-06 1998-12-08 Cpu Technology, Inc. High speed, direct register access operation for parallel processing units
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US6247064B1 (en) * 1994-12-22 2001-06-12 Unisys Corporation Enqueue instruction in a system architecture for improved message passing and process synchronization
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5812815A (en) * 1995-04-28 1998-09-22 Apple Computer, Inc. Address tenure control for cache management wherein bus master addresses are internally latched in a cache controller
US5708783A (en) * 1995-04-28 1998-01-13 Apple Computer, Inc. Data bus arbiter for pipelined transactions on a split bus
US6256710B1 (en) 1995-04-28 2001-07-03 Apple Computer, Inc. Cache management during cache inhibited transactions for increasing cache efficiency
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5996036A (en) * 1997-01-07 1999-11-30 Apple Computers, Inc. Bus transaction reordering in a computer system having unordered slaves
US5592631A (en) * 1995-05-02 1997-01-07 Apple Computer, Inc. Bus transaction reordering using side-band information signals
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US5911149A (en) * 1996-11-01 1999-06-08 Nec Electronics Inc. Apparatus and method for implementing a programmable shared memory with dual bus architecture
US6145065A (en) * 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6553467B1 (en) * 1997-08-12 2003-04-22 Intel Corporation Bank information pre-decode apparatus
JPH11203192A (ja) * 1998-01-16 1999-07-30 Sony Corp 並列プロセッサおよび演算処理方法
JPH11316744A (ja) * 1998-05-01 1999-11-16 Sony Corp 並列プロセッサおよび演算処理方法
JP2000047994A (ja) * 1998-07-27 2000-02-18 Fujitsu Ltd 情報処理装置
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
ATE557342T1 (de) 1998-08-24 2012-05-15 Microunity Systems Eng Prozessor und verfahren zur matrixmultiplikation mit einem breiten operand
EP1112539A2 (en) * 1998-09-18 2001-07-04 Clearspeed Technology Limited Computer system comprising latency tolerant and intolerant modules
DE19854178A1 (de) * 1998-11-24 2000-05-31 Siemens Ag Bus für hochskalierbares Multiprozessorsystem, dazugehöriges redundantes Bussystem, sowie Verfahren zum Übertragen von Information in einem derartigen Bussystem
US6253269B1 (en) * 1998-12-22 2001-06-26 3Com Corporation Bus arbiter system and method for managing communication buses
US6457078B1 (en) * 1999-06-17 2002-09-24 Advanced Micro Devices, Inc. Multi-purpose bi-directional control bus for carrying tokens between initiator devices and target devices
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
US6801971B1 (en) * 1999-09-10 2004-10-05 Agere Systems Inc. Method and system for shared bus access
KR100426945B1 (ko) * 1999-12-16 2004-04-13 엘지전자 주식회사 교환기에서 메모리 억세스 시스템
US6617900B1 (en) * 2000-01-31 2003-09-09 Hewlett-Packard Development Company, L.P. Arbitrator with no metastable voltage levels on output
JP2001325147A (ja) * 2000-05-17 2001-11-22 Hitachi Ltd パーシャルストア処理方法、メモリシステム及び大規模集積回路
US6415369B1 (en) * 2000-08-29 2002-07-02 Agere Systems Guardian Corp. Shared devices and memory using split bus and time slot interface bus arbitration
AU2001293027A1 (en) * 2000-10-19 2002-04-29 Sun Microsystems, Inc. Dynamic queuing structure for a memory controller
KR100400386B1 (ko) * 2001-05-18 2003-10-08 아라리온 (주) 이종버스를 연결하는 고기밀 호스트 어댑터
US6785779B2 (en) * 2002-01-09 2004-08-31 International Business Machines Company Multi-level classification method for transaction address conflicts for ensuring efficient ordering in a two-level snoopy cache architecture
US6832300B2 (en) * 2002-03-20 2004-12-14 Hewlett-Packard Development Company, L.P. Methods and apparatus for control of asynchronous cache
US7206904B2 (en) * 2002-03-20 2007-04-17 Hewlett-Packard Development Company, L.P. Method and system for buffering multiple requests from multiple devices to a memory
US6717834B2 (en) * 2002-03-26 2004-04-06 Intel Corporation Dual bus memory controller
EP1376373B1 (en) * 2002-06-20 2006-05-31 Infineon Technologies AG Arrangement having a first device and a second device connected via a cross bar switch
US7120327B2 (en) * 2002-11-27 2006-10-10 International Business Machines Corporation Backplane assembly with board to board optical interconnections
JP4182801B2 (ja) * 2003-04-24 2008-11-19 日本電気株式会社 マルチプロセサシステム
US7257665B2 (en) * 2003-09-29 2007-08-14 Intel Corporation Branch-aware FIFO for interprocessor data sharing
JP2006099731A (ja) * 2004-08-30 2006-04-13 Matsushita Electric Ind Co Ltd リソース管理装置
US20060155887A1 (en) * 2005-01-12 2006-07-13 Low Yun S Enhanced multi-access data port
FR2884629B1 (fr) * 2005-04-15 2007-06-22 Atmel Corp Dispositif d'amelioration de la bande passante pour des circuits munis de controleurs memoires multiples
US8560795B2 (en) * 2005-06-30 2013-10-15 Imec Memory arrangement for multi-processor systems including a memory queue
US20080148280A1 (en) * 2006-12-13 2008-06-19 Stillwell Joseph W Apparatus, system, and method for autonomically managing multiple queues
US7512723B2 (en) * 2006-12-29 2009-03-31 Freescale Semiconductor, Inc. Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system
GB2447690B (en) * 2007-03-22 2011-06-08 Advanced Risc Mach Ltd A Data processing apparatus and method for performing multi-cycle arbitration
US7779189B2 (en) * 2008-02-21 2010-08-17 International Business Machines Corporation Method, system, and computer program product for pipeline arbitration
US9026993B2 (en) * 2008-06-27 2015-05-05 Microsoft Technology Licensing, Llc Immutable types in imperitive language
US9569282B2 (en) 2009-04-24 2017-02-14 Microsoft Technology Licensing, Llc Concurrent mutation of isolated object graphs
US8566544B2 (en) * 2009-12-29 2013-10-22 Microsoft Corporation Compiler-enforced agent access restriction
US8695003B2 (en) 2009-12-29 2014-04-08 Microsoft Corporation Method for managing data accessibility by scheduling three types of executable agents associated with pre-defined access rights within a domain
US8316369B2 (en) 2009-12-29 2012-11-20 Microsoft Corporation Dataflow component scheduling using reader/writer semantics
KR101366967B1 (ko) 2012-06-12 2014-02-25 엘에스산전 주식회사 메모리 공유 회로
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
CN104200556B (zh) * 2014-08-18 2017-02-15 中国建设银行股份有限公司 一种排队处理方法、装置及系统
US10437748B1 (en) * 2015-12-29 2019-10-08 Amazon Technologies, Inc. Core-to-core communication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム

Also Published As

Publication number Publication date
KR100243964B1 (ko) 2000-02-01
US6078983A (en) 2000-06-20
JPH04175943A (ja) 1992-06-23
US5375215A (en) 1994-12-20
KR920010442A (ko) 1992-06-26

Similar Documents

Publication Publication Date Title
JP3144794B2 (ja) マルチプロセッサシステム
EP3353673B1 (en) On-chip atomic transaction engine
US6292705B1 (en) Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
JP2881309B2 (ja) 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法
US4843542A (en) Virtual memory cache for use in multi-processing systems
US6275885B1 (en) System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache
US6076139A (en) Multimedia computer architecture with multi-channel concurrent memory access
US5148536A (en) Pipeline having an integral cache which processes cache misses and loads data in parallel
US6532509B1 (en) Arbitrating command requests in a parallel multi-threaded processing system
US6330630B1 (en) Computer system having improved data transfer across a bus bridge
KR960015253A (ko) 컴퓨터 시스템, 버스 액세스 중재 방법 및 데이타 전송 방법
JPH05210640A (ja) マルチプロセッサシステム
US6272601B1 (en) Critical word forwarding in a multiprocessor system
US5353416A (en) CPU lock logic for corrected operation with a posted write array
US6460133B1 (en) Queue resource tracking in a multiprocessor system
US6430658B1 (en) Local cache-to-cache transfers in a multiprocessor system
JP4131789B2 (ja) キャッシュ制御装置および方法
US6738837B1 (en) Digital system with split transaction memory access
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
US7006521B2 (en) External bus arbitration technique for multicore DSP device
US6209052B1 (en) System and method for suppressing processor cycles to memory until after a peripheral device write cycle is acknowledged by the memory arbiter
JP3018038B2 (ja) キャッシュを有するデータ処理装置
US6836823B2 (en) Bandwidth enhancement for uncached devices
US6389516B1 (en) Intervention ordering in a multiprocessor system
JP3425421B2 (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100105

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 10

EXPY Cancellation because of completion of term