JP2000082049A - マルチプロセッサ装置 - Google Patents

マルチプロセッサ装置

Info

Publication number
JP2000082049A
JP2000082049A JP10251652A JP25165298A JP2000082049A JP 2000082049 A JP2000082049 A JP 2000082049A JP 10251652 A JP10251652 A JP 10251652A JP 25165298 A JP25165298 A JP 25165298A JP 2000082049 A JP2000082049 A JP 2000082049A
Authority
JP
Japan
Prior art keywords
shared
bus
cpu
terminal
global
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.)
Granted
Application number
JP10251652A
Other languages
English (en)
Other versions
JP4179677B2 (ja
Inventor
Yukio Nakamoto
幸夫 中本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP25165298A priority Critical patent/JP4179677B2/ja
Priority to US09/247,519 priority patent/US6253290B1/en
Publication of JP2000082049A publication Critical patent/JP2000082049A/ja
Application granted granted Critical
Publication of JP4179677B2 publication Critical patent/JP4179677B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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

Landscapes

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

Abstract

(57)【要約】 【課題】 監視処理のために処理時間が必要、ライトバ
ックキャッシュにできないことにより処理速度の低下、
安価なキャシュメモリを使用できないためコストアップ
になる等の課題があった。 【解決手段】 CPU11の共有バス端子11aをグロ
ーバル共有バス15bに接続し、ローカルキャッシュメ
モリ12のバス端子をグローバル非共有バス15aに接
続し、前記グローバル共有バスを前記CPUが用いる共
有情報を記憶した外部の共有メモリ19bに接続し、前
記グローバル非共有バス15aを前記CPUが用いる非
共有情報を記憶した外部の非共有メモリ19aに接続し
たものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は複数のプロセッサ
ユニットをグローバルバスに接続したマルチプロセッサ
装置に関するものである。
【0002】
【従来の技術】図21は従来のマルチプロセッサ装置を
示すブロック図である。図において、1,1Aはプロセ
ッサユニットであり、各プロセッサはCPU5とライト
スルー機能で、かつ書き込み監視機能を有するキャッシ
ュメモリ6を有している。各プロセッサ1,1Aのキャ
ッシュメモリ6は、共通のグローバルバス2に接続さ
れ、このグローバルバス2はインタフェース3を介して
外部メモリ4に接続されている。なお、ここで問題とし
ているのはデータキャッシュであり、命令キャッシュは
問題としないので図示を省略する。
【0003】次の動作について説明する。CPU5は処
理に必要なデータをグローバルバス2、インタフェース
3を介して外部メモリ4との間でやり取りを行うが、そ
のグローバルバス2、インタフェース3は処理動作速度
が遅いため、この速度がボトルネックとなり、CPU5
は本来の処理速度が出なかった。
【0004】そこで、CPU5がよく使う外部メモリ4
の内容を該CPUの近くで保持することにより速度向上
を計る手法が考えられた。ローカルキャッシュメモリ6
は、CPU5の近くに設けられ該CPUがよく使う外部
メモリ4の内容を記録したメモリである。
【0005】以下、このローカルキャッシュメモリ6の
動作について記述する。 1.ローカルキャッシュメモリによる読み出し。いま、
CPU5が外部メモリ4の0013番地を読みにいった
場合、ローカルキャッシュメモリ6は自身が0013番
地の内容をもっているかを確認する。もしあれば、CP
U5に対して0013番地の内容を返す。その結果、C
PU5は動作の遅いグローバルバス2、インタフェース
3を使用しないで高速に動作できる。
【0006】もし、0013番地の内容がローカルキャ
ッシュメモリ6の中にない場合、ローカルキャッシュメ
モリ6は自分自身がもっているCPU5が今後当分の間
使用しないであろうメモリの内容を選び出し(選出法は
この発明の本質ではないので説明を省略する)、これを
消去(後述するがメモリに書き込み後キャッシュから消
去)して、空いたところに0013番地とその内容を転
送する。こうすることにより、CPU5が2回目以降、
0013番地を読みにいった場合、ローカルキャッシュ
メモリ6が0013番地の内容を持っているので、高速
に読み出すことができる。この機構をパージという。
【0007】2.ローカルキャッシュメモリによる書き
込み。CPU5が外部メモリ4に対して書き込みを実施
する場合、二つの方法がある。一つはライトバック法
(Write Back)と呼ばれる方法で、もう一つ
はライトスルー法(Write Through)と呼
ばれる方法である。
【0008】まず、ライトスルー法について説明する。
CPU5が外部メモリ4の0013番地に対して書き込
みをしたとき、読み込みの時と同様にローカルキャッシ
ュメモリ6が0013番地の内容を持っているかどうか
を確認する。ローカルキャッシュメモリ6が0013番
地の内容をもっていれば該ローカルキャッシュメモリ内
の0013番地の内容を書き換えると共に、外部メモリ
4に対しても書き換えを実施する。ローカルキャッシュ
メモリ6が0013番地の内容を持っていない場合は、
ローカルキャッシュメモリ6はCPU5が使用しないと
判断した他の内容を消去し、空いた場所に0013番地
の内容を書くと共に外部メモリ4にも書き込む。この結
果、書き込みの度に動作の遅いグローバルバス2、イン
タフェース3を使用することになる。
【0009】次にライトバック法について説明する。こ
のライトバック法はライトスルー法とは書き込みのタイ
ミングが異なる。すなわち、書き込み時、ローカルキャ
ッシュメモリ6には書き込みを実施するが、外部メモリ
4に書き込みはせず、ローカルキャッシュメモリ6がこ
の内容をパージするときに書き込む。この結果、パージ
するときのみ、動作の遅いグローバルバス2、インタフ
ェース3を使用することになり、ライトスルー法より処
理動作が速くなる。
【0010】3.マルチプロセッサ装置でのローカルキ
ャッシュメモリの応用について上記ローカルキャッシュ
メモリをマルチプロセッサで応用する場合、ライトスル
ー法で処理し、かつ他のCPUの書き込み内容を監視す
る「監視機能」を持たなければならない。
【0011】まず、ライトスルー法を使用しなければな
らない理由(つまり、ライトバック法ではいけない理
由)は、ライトバック法で0013番地を書き込んだ場
合、その内容がパージされるまで外部メモリ4に書き込
まれない。その結果、他のCPUが0013番地を読み
にいってもパージされるまで他のCPUは古い内容しか
読めないからである。
【0012】一方、ライトスルー法にしたとしても、他
のCPUが0013番地の内容を持っていた場合、その
内容は変化されない。従って、ローカルキャッシュメモ
リ6は他のローカルキャッシュメモリの書き込みを監視
し、書き込みがあった場合、自分がもっているローカル
キャッシュメモリのアドレス情報と比較して同じ内容が
あった場合にこの内容を無効化しなければならなくな
る。
【0013】マルチプロセッサ装置でのキャッシュメモ
リ構成では、このローカルキャッシュメモリごと、また
はローカルキャッシュメモリと共有メモリとの間の同一
性を保つため、これまでいろいろな方法が考えられた。
例えば、特公平2−22757号公報及び特公平4−1
75946号公報は、データの共有/非共有によってア
クセスするメモリを分け、共有データを上記方法で書き
込みを監視し、これによって、ローカルキャッシュメモ
リを無効化する技術を採用している。
【0014】米国特許明細書第4939641号公報
は、キャッシュメモリの中に共有/非共有情報を置き、
非共有ならライトバック法で、共有ならライトスルー法
でキャッシュを読み書きする方法が紹介されている。こ
れらをまとめて「書き込み監視付き」マルチプロセッサ
および、キャッシュメモリという構成は、数限りないほ
どあり、中には「監視機能つき」を前提条件としたもの
がある。
【0015】
【発明が解決しようとする課題】従来のマルチプロセッ
サ装置は以上のように構成されているので、次のような
課題があった。
【0016】一つ目は監視処理のための時間。監視処理
が書き込みの度に実施されると、その処理の間、CPU
はローカルキャッシュメモリを使用できなくなり、CP
Uの動作速度が落ちる結果になる。例えば、ある処理の
読み込み数が1,000,000回、1読み込みあたり
1クロック(Clock)、書き込み数が10,000
回、1書き込みあたり(ライトスルーであるため、すべ
ての書き込みをバスを通して実施するとして)4クロッ
ク、書き込みに対する監視処理に2クロックかかったと
する。この処理を5つのCPUが同時に行った場合、全
CPUの書き込みが5[CPU]×10,000[回]
=50,000回になるため、監視処理が100,00
0クロック必要となる。監視処理を除いた時間が1, 0
00, 000+10,000×4=1,040,000
クロックであるため、監視処理のために処理時間が10
%近く長くなることになる。
【0017】同じ例で、書き込み回数が200回であっ
た場合の監視処理を除いた処理時間は1,080,00
0クロックとなり、監視処理の時間は200,000ク
ロックとなり20%程度長くなる。更に書き込み回数2
00回かつ10のCPUであった場合、その監視処理の
時間は400,000クロックとなり、40%近く長く
なる。上記の例のように一般に、監視処理時間はCPU
およびキャッシュメモリの数と、その書き込み回数に比
例する。
【0018】二つ目はライトバックキャッシュにできな
いことによる処理速度の低下。上記と同じ処理を実施し
て、書き込み処理のうち50%がキャッシュメモリにヒ
ットしたとし、そのときの書き込み処理の時間が1クロ
ックであったとすると、その処理時間(監視時間を除い
た)は1,000,000×1クロック+10,000
×5×4クロック=1,025,000クロックとな
り、2%程度短くなる。書き込み回数が倍になった場
合、同様に1,050,000クロックとなり、同様に
3%程度短くなる。ヒット率が高くなれば、ライトバッ
クキャッシュの時間は更に短くなる。しかし、マルチプ
ロセッサでは、前途のごとく、ライトバックキャッシュ
では他のCPUは古い内容しか読めないため、速度の遅
くなるライトスルーキャッシュしか使用できなかった。
【0019】三つ目はコストの問題。もし仮に、書き込
み監視機能つきマルチプロセッサシステムを1チップに
ついて実現した場合、この監視処理は、キャッシュメモ
リの機能を増やすことになる。監視機能の追加はこれま
でライブラリ化されている通常のキャッシュメモリが使
えないまたは改定を要することを意味する。仮に改定を
要する場合はその分だけ設計時間の増大となる。また、
機能付加によってチップレイアウト面積は増加する。設
計時間の増大、レイアウト面積の増大の結果、チップ開
発コスト、作成コストともに上昇する。
【0020】この監視処理をチップ外部部品で調達する
にも問題がある。もし、単なるライトキャッシュまたは
ライトスルーのみのキャッシュであれば、安価で手に入
る。これは、現在シングルプロセッサの需要が多く、し
かもシングルプロセッサの書き込み監視を必要としない
からである。
【0021】しかし、上記のような何らかの「書き込み
監視」機能付きのキャッシュメモリはなかなか安価には
入手できない。これは、現在マルチプロセッサが特殊分
野でしか活用されず、その市場が小さく、その結果、部
品は少量生産となり、高くなるからである。
【0022】この発明は上記従来の課題を解消するため
になされたもので、キャッシュメモリの書き込み監視処
理を必要とせず、バスの負荷軽減、データキャッシュの
負荷軽減を図り、データキャッシュの高速化処理を実現
したマルチプロセッサ装置を得ることを目的とする。
【0023】
【課題を解決するための手段】この発明に係るマルチプ
ロセッサ装置は、共有バス端子と非共有バス端子とを有
するCPUと、前記非共有バス端子に接続され自己のC
PUのみに用いる非共有情報を記憶したローカルキャッ
シュメモリとを備えたプロセッサユニットと、複数の前
記プロセッサユニットのそれぞれのCPUの共有バス端
子をグローバル共有バスに接続するローカル共有バス
と、複数の前記プロセッサユニットのそれぞれのローカ
ルキャッシュメモリのバス端子をグローバル非共有バス
に接続するローカル非共有バスと、前記グローバル共有
バスを前記全てのプロセッサユニットのCPUが用いる
共有情報を記憶した外部の共有メモリに接続する共有イ
ンタフェースと、前記グローバル非共有バスを前記全て
のプロセッサユニットのCPUが用いる非共有情報を記
憶した外部の非共有メモリに接続する非共有インタフェ
ースとを備えたものである。
【0024】この発明に係るマルチプロセッサ装置は、
共有インタフェースの内部側におけるグローバル共有バ
スの途中にグローバル共有キャッシュメモリを設けたも
のである。
【0025】この発明に係るマルチプロセッサ装置は、
グローバル共有バスとグローバル非共有バスを、共有情
報記憶領域と非共有情報記憶領域とを有する外部のメモ
リに接続する共用インタフェースを備えたものである。
【0026】この発明に係るマルチプロセッサ装置のロ
ーカルキャッシュメモリは、ライトスルー機能を有する
ものである。
【0027】この発明に係るマルチプロセッサ装置のロ
ーカルキャッシュメモリは、ライトバック機能を有する
ものである。
【0028】この発明に係るマルチプロセッサ装置は、
共有バス端子と非共有バス端子とを有するCPUと、前
記非共有バス端子に接続され自己のCPUのみに用いる
非共有情報を記憶したローカルキャッシュメモリとを備
えたプロセッサユニットと、その複数のプロセッサユニ
ットのそれぞれの共有バス端子を接続した総合共有バス
端子および非共有バス端子を接続した総合非共有バス端
子を有する複数の再帰プロセッサユニットと、複数の前
記再帰プロセッサユニットのそれぞれの総合共有バス端
子をグローバル共有バスに接続するローカル共有バス
と、前記複数の前記再帰プロセッサユニットのそれぞれ
の総合非共有バス端子をグローバル非共有バスに接続す
るローカル非共有バスと、前記グローバル共有バスを前
記全てのプロセッサユニットのCPUが用いる共有情報
を記憶した外部の共有メモリに接続する共有インタフェ
ースと、前記グローバル非共有バスを前記全てのプロセ
ッサユニットのCPUが用いる非共有情報を記憶した外
部の非共有メモリに接続する非共有インタフェースとを
備えたものである。
【0029】この発明に係るマルチプロセッサ装置は、
共有バス端子と2つ以上の非共有バス端子とを有するC
PUと、前記各非共有バス端子に接続され自己のCPU
のみに用いる非共有情報を記憶したローカルキャッシュ
メモリとを備えたプロセッサユニットと、複数の前記プ
ロセッサユニットのそれぞれのCPUの共有バス端子を
グローバル共有バスに接続するローカル共有バスと、前
記複数の前記プロセッサユニットのそれぞれの2つ以上
のローカルキャッシュメモリの非共有バス端子を別個独
立したグローバル非共有バスに接続するローカル非共有
バスと、前記グローバル共有バスを前記全てのプロセッ
サユニットのCPUが用いる共有情報を記憶した外部の
共有メモリに接続する共有インタフェースと、前記グロ
ーバル非共有バスを前記全てのプロセッサユニットのC
PUが用いる非共有情報を記憶した外部の別個独立した
非共有メモリに接続する非共有インタフェースとを備え
たものである。
【0030】この発明に係るマルチプロセッサ装置は、
共有バス端子と非共有バス端子および外部装置バス端子
とを有するCPUと、前記各非共有バス端子に接続され
自己のCPUのみに用いる非共有情報を記憶したローカ
ルキャッシュメモリとを備えたプロセッサユニットと、
前記プロセッサユニットのCPUの共有バス端子をグロ
ーバル共有バスに接続するローカル共有バスと、前記ロ
ーカルキャッシュメモリの非共有バス端子をグローバル
非共有バスに接続するローカル非共有バスと、前記外部
装置バス端子をグローバル外部装置バスに接続するロー
カル外部装置バスと、前記グローバル共有バスを前記全
てのプロセッサユニットのCPUが用いる共有情報を記
憶した外部の共有メモリに接続する共有インタフェース
と、前記グローバル非共有バスを前記全てのプロセッサ
ユニットのCPUが用いる非共有情報を記憶した外部の
非共有メモリに接続する非共有インタフェースと、前記
グローバル外部装置バスを前記全てのプロセッサユニッ
トのCPUが用いる共有情報を記憶した外部の共有メモ
リに接続する外部装置インタフェースとを備えたもので
ある。
【0031】この発明に係るマルチプロセッサ装置は、
ローカルキャッシュメモリの入力側または出力側に接続
したローカルメモリを備えたものである。
【0032】この発明に係るマルチプロセッサ装置は、
アドレス端子、データ端子、コントロール端子を有する
CPU本体と、前記アドレス端子からのアドレス情報を
入力とし、共有/非共有かを判断する共有/非共有判定
回路と、この共有/非共有判定回路からの出力を入力と
し、共有の場合には前記CPU本体の各バス端子を共有
バス端子に接続し、非共有の場合には前記CPU本体の
各バス端子を非共有バス端子に接続する共有/非共有バ
ス選択装置と、前記非共有バス端子に接続され自己のC
PUのみに用いる非共有情報を記憶したローカルキャッ
シュメモリとを備えたCPUを用いるものである。
【0033】この発明に係るマルチプロセッサ装置の共
有/非共有判定回路は、入力がアドレスの上位、出力が
そのアドレスブロックの共有/非共有判定であるRAM
である。
【0034】この発明に係るマルチプロセッサ装置の共
有/非共有判定回路は、CPUの近傍のポインタテーブ
ルの中に備えられた共有/非共有ビットを直接または間
接的に送られることにより、セグメントごとに共有/非
共有を判定するものである。
【0035】この発明に係るマルチプロセッサ装置のC
PUは、メモリアクセス時のセグメント情報からデータ
の共有/非共有を判断してアクセスするバスを決定する
ものである。
【0036】この発明に係るマルチプロセッサ装置のC
PUは、ユーザーの情報から共有/非共有データを別々
の命令でアクセスさせることよってバスを選択するもの
である。
【0037】この発明に係るマルチプロセッサ装置は、
異なるCPUの各バス端子を、グローバル非共有バスと
グローバル共有バスおよびグローバル外部装置バスに接
続したものである。
【0038】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1によるマ
ルチプロセッサ装置の構成を示すブロック図であり、ラ
イトバックキャッシュ使用、共有キャッシュなしの場合
である。
【0039】ここで、まず、「共有」とは、各CPUが
使用・転送・格納する資源でなく、単に「共有データ」
を転送・格納する資源である。また、「非共有」とは単
一CPUのみが使用・転送・格納する資源でなく、単に
「非共有データ」を転送・格納する資源である。単一C
PUのみが使用する資源を「専用」資源とし、複数のC
PUが使用する資源を「共用」資源とする。
【0040】図1において、11は命令又はアクセスし
ようとするアドレスによって読み書きするデータが共有
データか、非共有データかを判断し、その結果によって
バスを選択することが可能な装置を備えた第iCPUで
ある。この判断方法については実施の形態10以降で説
明する。この第iCPU11は第(i,1)共有バス端
子と第(i,1)非共有バス端子をもち、これらは命令
またはアクセスしようとするCPUが共有データか非共
有データかを判断することによりバスが選択されるよう
になっている。
【0041】12は、他のCPUからの書き込み監視機
能をもたない第(i,1)ローカルキャッシュメモリで
ある。ここで、第(i,1)ローカルキャッシュメモリ
12はデータの受け渡しのみを実施する。これは、前述
のごとく、プログラムは原則書きかえる必要がないため
で、この図には命令キャッシュ(Instructio
n Cache)は省略されている。この第(i,1)
ローカルキャッシュメモリ12は、第(i,1)CPU
側バス端子12aと第(i,1)CPU外部側バス端子
12bをもつ。第(i,1)CPU側バス端子12aは
第(i,1)非共有バス端子11bに接続されている。
この第(i,1)ローカルキャッシュメモリ12は第i
CPU11の専用資源である。
【0042】13aは、第(i,1)ローカルキャッシ
ュメモリ12の第(i,1)外部側バス端子12bに接
続された第(i,1)ローカル非共有バス、13bは第
iCPU11の第(i,1)共有バス端子11aに接続
された第(i,1)ローカル共有バスである。
【0043】14は第iCPU11、第(i,1)ロー
カルキャッシュメモリ12、第(i,1)ローカル非共
有バス13a、第(i,1)ローカル共有バス13bを
含む第iプロセッサユニットである。
【0044】第iプロセッサユニット14は第(i,
1)ユニット非共有バス端子14aと第(i,1)ユニ
ット共有バス端子14bをもち、それぞれの端子は第
(i,1)ローカル非共有バス13aと第(i,1)ロ
ーカル共有バス13bに接続されている。ここでプロセ
ッサユニットの総数をI個とする。14Aは第iプロセ
ッサユニット14の隣にある第i+1プロセッサユニッ
トであり、第iプロセッサユニット14と同一構成であ
る。
【0045】15aは第1グローバル非共有バスであ
り、第iプロセッサユニット14の第(i,1)ユニッ
ト非共有バス端子14aに接続されている。この第1グ
ローバル非共有バス15aは、各CPUから外部の非共
有メモリ19aへ非共有データを転送するためのバスで
ある。各ローカル非共有バス端子14aからのアクセス
要求に対して調停を実施する図示せぬバスアービタ装置
を備えている。この資源は各CPU(プロセッサユニッ
ト)共用である。
【0046】15bは第1グローバル共有バスであり、
第iプロセッサユニット14の第(i,1)ユニット共
有バス端子14bに接続されている。この第1グローバ
ル共有バスは、各CPUから外部の共有メモリ19bへ
の共有データの転送をするためのバスである。この第1
グローバル共有バス15bは、各ローカル共有バス端子
14bからのアクセス要求に対して調停を実施する図示
せぬバスアービタ装置を備えている。この資源は各CP
U(プロセッサユニット)共用である。
【0047】17aは第1非共有インタフェースであ
り、ここから外部の非共有メモリ19aなどとアクセス
する。この資源は各CPU(プロセッサユニット)共用
である。
【0048】17bは第1共有インタフェースであり、
ここから外部の共有メモリ19bなどとアクセスする。
この資源は各CPU(プロセッサユニット)共用であ
る。
【0049】上記非共有メモリ19aは非共有データを
格納するメモリである。この非共有メモリ19aは各プ
ロセッサユニット専用でなく、各プロセッサユニットで
共用であってかまわない。この(共用の)非共有メモリ
19aへの各CPUからの書き込み領域は、たとえばア
ドレスで分割されているものとする。具体的には、たと
えば非共有メモリ19aがアドレス0000〜7FFF
までに割り当てられていたとすると、第1CPUはその
使用する領域を0000〜0FFF、第2CPUはその
使用する領域を1000〜1FFFといった具合に割り
当てられているものとする。従って、この例で非共有メ
モリ19aの領域を0000〜0FFFは第1CPU
「専用」になる。
【0050】19bは共有メモリである。この共有メモ
リは共有データを格納するためのメモリである。この共
有メモリと非共有メモリのアドレスマップ上の領域は重
ならないようにする。
【0051】(上記の構成におけるインタフェースから
外の世界の制約)ここで、第1非共有インタフェース1
7aと第1共有インタフェース17bから先のバス構成
についてはこの発明の本質ではない。従って、あるメモ
リブロックは第1非共有インタフェース17a経由しか
読めないようにしても良いし、また、別のメモリブロッ
クはどちらからも読めるようにしても良い。ただし、共
有データがおかれるメモリブロックは第1共有インタフ
ェース経由でアクセスできるようにしておき、非共有デ
ータは同じように第1非共有インタフェース経由でアク
セスしなければならない。
【0052】以下、説明のため便宜上共有メモリ19b
と非共有メモリ19aが図のように置かれた場合につい
て説明する。
【0053】(非共有データ・ワークエリアの説明)本
発明は、該当処理しか使わない内容(ワークエリアの内
容)をローカルキャッシュで閉じさせ、さらに複数の処
理で使用する内容は一つのメモリにのみ書いて各ローカ
ルキャッシュにはいれないようして、書き込み監視処理
をなくすことにより高速化及び低コスト化を図るように
したもので、ここでは、5つのCPUが5科目の平均点
を求めるプログラムを例にとって説明する。
【0054】マルチプロセッサにおけるメモリの内容に
は書き込み共有すべき内容と書き込み共有する必要のな
い内容がある。例えば、ある得点データベースがあり、
5つのCPUが「英語」「数学」「国語」「理科」「社
会」の平均点を求めるものとする。
【0055】このとき、「英語」の総得点を格納するメ
モリと、サンプル数を格納するメモリが必要になるが、
これらは他の「数学」等の平均点を求めるのには必要が
ない。これら他の処理に必要でない格納領域を一般にワ
ークエリアという。このワークエリアの内容は、他のC
PUが知る必要がないので第(i,1)ローカルキャッ
シュメモリ12に格納するようにする。
【0056】この動作を説明する。CPUはワークエリ
アにアクセスしにいくとき、CPUはこのアクセスを
「非共有データ」と判断し、第(i,1)CPU非共有
バス端子を選択しアクセスを実施する。第(i,1)ロ
ーカルキャッシュメモリ12は、CPUからのアクセス
情報に従い、該当アドレスの内容があるかを検索し、あ
ればその内容をCPUに返す。該当アクセスの内容がな
い場合、キャッシュメモリは第(i,1)ローカル非共
有バス13a,第1グローバル非共有バス15a,第1
非共有インタフェース17aを経由して、非共有メモリ
19aにアクセスを要求する。
【0057】調停によって、第1グローバル非共有バス
15aがあき、第(i,1)ローカルキャッシュメモリ
12が非共有メモリ19aの該当アドレスを取り出した
とき、第(i,1)ローカルキャッシュメモリ12はそ
の内容のコピーを取り込む。この時、非共有メモリ19
aの非共有領域は、各CPUで「専用に」なっているた
め、他のCPUからの書き込みもなく、各CPUへの影
響もない。
【0058】2回目以降、第(i,1)ローカルキャッ
シュメモリ12が取り込んだアドレスの内容を持ってい
る間は、第iCPU11は第(i,1)ローカルキャッ
シュメモリ12にのみアクセスする。また、この第
(i,1)ローカルキャッシュメモリ12の内容は他の
CPUが知る必要がないので、たとえ第(i,1)ロー
カルキャッシュメモリ12の内容が書き変わったとして
も他のCPUは第(i,1)ローカルキャッシュメモリ
12を書き込み監視する必要がない。
【0059】(共有データの説明とその動作)一方、こ
のあと各科目の総平均点から、各科目の難易度を知るた
め、偏差値を取ったとする。このとき、求められた各科
目の平均点は偏差値を求めるために必要なので共有すべ
きである。これら後の他のCPU(他の処理)が必要と
する内容は第(i,1)ローカル共有バス13bから第
1グローバル共有バス15b、第1共有インタフェース
17bを通して共有メモリ19bとアクセスし、ローカ
ルキャッシュメモリ12に格納しない。
【0060】この動作を説明する。第iCPU11は共
有データと判断し、これによって第(i,1)CPU共
有バス端子11aを選択する。これに接続されている第
(i,1)ローカル共有バス13bから、第iCPU1
1は第1グローバル共有バス15b,第1共有インタフ
ェース17bを経由して共有メモリ19bにアクセスを
要求する。調停によって、第1グローバル共有バス15
bがあき、第iCPU11が共有メモリ19bの該当ア
ドレスを取り出す。
【0061】この動作が書き込みであった場合、書き込
み監視装置が要らないことについて説明する。第iCP
U11からの書き込みが完了した段階で、共有メモリ1
9bはもっとも最新の書き込み情報が格納されているこ
とになる。一方、その直後に他のCPUが同じアドレス
のデータを共有メモリ19bに読みにいくとき、共有メ
モリ19bは確実に最新の内容をもっており、他のCP
Uは最新の内容を得ることができる。また、共有データ
を取り込むローカルなキャッシュメモリがどこにもない
ので、これまで並列処理では暗黙の了解となっていた書
き込み監視を実施する必要がない。
【0062】(共有と非共有をわけ、共有をキャッシュ
メモリに取り込まないことの効果1)ワークエリアの内
容は書き換えの度に他のCPUが書き換えられたことを
知る必要がないので、第(i,1)ローカルキャッシュ
メモリ12はライトスルーキャッシュである必要がな
く、ライトバックキャッシュであってよい。つまり、ワ
ークエリアの内容は第(i,1)ローカルキャッシュメ
モリ12の中で閉じることとなる。通常、ワークエリア
のアクセス回数は非常に多い。
【0063】なお、この第(i,1)ローカルキャッシ
ュメモリ12に書き込む内容は、処理のはじめから終わ
りまで書き込みを必要としない内容(定数等)も第
(i,1)ローカルキャッシュメモリ12経由でアクセ
スしても良い。これは、内容を変更しないため、他の処
理に影響しないからである。
【0064】(共有と非共有をわけ、共有をキャッシュ
メモリに取り込まないことの効果2)共有すべき内容と
非共有の内容によってアクセスする内容を分けることに
より、第(i,1)ローカルキャッシュメモリ12は監
視機能のいらないライトバックキャッシュで良いことが
判った。そこで、読み込み1,000,000回、この
うち5,000回が共有バス経由、書き込み10,00
0回、このうち5,000回が共有バス経由とし、ロー
カルキャッシュ経由の読み書きはライトバックキャッシ
ュを使用したとして、1クロック、共有バス経由の読み
書きは4クロックかかるものとすると、この処理にかか
る時間は(995,000+5,000)×1+(5,
000+5,000)×4=1,004,000クロッ
クとなり、従来の監視機能を必要とする場合の時間1,
140,000に比べ約10%程度速くなることが判
る。
【0065】また、従来ではライトスルーキャッシュで
しか対応できなかったが、この実施の形態1ではローカ
ルキャッシュはライトバックキャッシュとライトスルー
キャッシュのいずれもが使える(性能的にはライトバッ
クキャッシュの方がよいが何らかの設計的理由でライト
スルーキャッシュにしてもよい)。
【0066】(共有と非共有をわけ、共有をキャッシュ
メモリに取り込まないことの効果3)先に示したように
第(i,1)ローカルキャッシュメモリ12は、マルチ
プロセッサに関する特殊な書き込み監視を必要としな
い。これは、高価なマルチマイクロプロセッサ専用のキ
ャッシュメモリを使用せず、汎用のキャッシュメモリを
使えることを意味する。この機能を持たないキャッシュ
メモリを使用することにより、コストを削減できる。
【0067】実施の形態2. ライトバックキャッシュ使用、共有キャッシュありの場
合 図2は発明の実施の形態2に係るマルチプロセッサ装置
を示すブロック図であり、前記図1に示した実施の形態
1と同一の部分については同一符号を付して重複説明を
省略する。この実施の形態2では第1共有インタフェー
ス17bより内部において第1グローバル共有バス15
bの途中に第1グローバル共有キャッシュメモリ16を
設けたものである。
【0068】この構成では、第iCPU11が第1グロ
ーバル共有キャッシュメモリ16に書き込みを実施した
直後に第(i+1)CPU(不図示)が同じアドレスの
内容を読みにいっても、第1グローバル共有キャッシュ
メモリ16の直前に更新された内容を取り込むことにな
るので、新しい内容が読み込める。また、第1グローバ
ル共有キャッシュメモリ16を搭載することで処理を更
に高速化できる。
【0069】そこで、共有データの読み書きは、第1グ
ローバル共有キャッシュメモリ16があることにより、
2クロックで実施するものとして、実施の形態1と同じ
処理で時間を比較すると、処理時間は(995,000
+5,000)×1+(5,000+5,000)×2
=1,002,000クロックとなり、実施の形態1に
比べ若干ではあるが速くなる。しかし、これはあくまで
も共有データの読み書きが少ない場合で、一般に、共有
データの読み書きが多い場合、実施の形態2の方が速く
なる。
【0070】実施の形態3. ライトバックキャッシュ使用、インタフェース1個の場
合 図3は発明の実施の形態3に係るマルチプロセッサ装置
を示すブロック図であり、前記図1に示した実施の形態
1と同一の部分については同一符号を付して重複説明を
省略する。この実施の形態3では第1グローバル非共有
バス15aと第1グローバル共有バス15bを共有イン
タフェース37を介して共有/非共有メモリ39に接続
したもので、この共有/非共有メモリ39は共有/非共
有領域が重ならないようになっている。
【0071】次に動作について説明する。第iCPU1
1が非共有データにアクセスする場合、まず第(i,
1)CPU非共有バス端子から、第(i,1)キャッシ
ュメモリ12にアクセス要求をする。第(i,1)キャ
ッシュメモリ12は自分自身にアクセスし、内容が存在
しない場合は第1グローバル非共有バス15a、共有イ
ンタフェース37を経由して共有/非共有メモリ39の
第iCPU11の専用の非共有領域にアクセスしにい
く。この第iCPU11の「専用の」非共有領域は他の
CPUからの書き込みをしないし、第iCPU11自身
も他のCPUの領域に書き込みにいかない。また、この
第iCPU11専用の非共有領域は、共有領域としての
書き込みをしないので、第iCPU11に対して書き込
みデータは100%保証される。したがって、当然書き
込み監視は要らない。
【0072】一方、共有データアクセスの場合は、第i
CPU11はCPU共有バス端子からアクセスを開始
し、第1グローバル共有バス15b、共有インタフェー
ス37を経由して共有/非共有メモリ39の割り当てら
れた共有領域へアクセスする。共有データが書き込まれ
た場合、内容は即座に他のCPUの読み込みに反映され
るので、書き込み監視は要らない。
【0073】この方法では共有インタフェース37に共
有データと非共有データの両方が通ることになる。しか
し特に第(i,1)ローカルキャッシュメモリ12への
ヒット率が高く、また、共有データの読み書きが少ない
場合、バスの使用率が低くなり、この方法は有効とな
る。
【0074】マルチマイクロプロセッサ系を一つのチッ
プに収納したい場合、面積を少しでも小さく設計しなけ
ればならない。要求された面積を満足しなければなら
ず、バスを2本も走らすことができない場合、図4に示
すように、第1グローバル非共有バス15aと第1グロ
ーバル共有バス15bを1つにして第1グローバルバス
35とすることができる。この実施の形態3は実施の形
態2と同様の効果を示すが、実施の形態3の方がバス使
用率が高くなるので、処理がやや遅くなる。
【0075】実施の形態4.ライトバックキャッシュ使
用、インタフェース1個、共有キャッシュ付きの場合 図5は発明の実施の形態4に係るマルチプロセッサ装置
を示すブロック図であり、前記図3に示した実施の形態
3と同一の部分については同一符号を付して重複説明を
省略する。この実施の形態4では共有インタフェース3
7より内部において第1グローバル共有バス15bの途
中に第1グローバル共有キャッシュメモリ16を設けた
ものである。
【0076】このような形態が有効なのはローカルキャ
ッシュメモリ12のヒット率が高く(バス使用率が低
く)、また共有データの読み書きが多い場合である。こ
のときに面積縮小を図るためにこのような構成を取って
もよい。この実施の形態4は実施の形態2と同様の効果
を示すが、実施の形態4の方がバス利用率が高くなるの
でやや遅くなる。
【0077】また、図6に示すように、第1グローバル
非共有バス15aと第1グローバル共有バス15bを1
つにして第1グローバルバス35としてもよい。この場
合、第1グローバルバス35の途中に設けた第1グロー
バルキャッシュメモリ16は非共有データも取り込むこ
ととなるため、なるべく大容量の方がよい。なお、この
実施の形態4も原理的には実施の形態3と同じなので、
書き込み監視は一切必要としない。
【0078】実施の形態5. 再帰的構成の場合 図7は発明の実施の形態5に係るマルチプロセッサ装置
を示すブロック図であり、この実施の形態5では実施の
形態1に示すプロセッサユニット14,14A・・の複
数により再帰プロセッサユニット54,54Aを構成し
たものである。54aは第1(再帰)ユニット非共有バ
ス端子であり、これは第(i,1)ユニット非共有バス
端子14aと同等、54bは第1(再帰)ユニット共有
バス端子であり、これは第(i,1)ユニット共有バス
端子14bと同等である。
【0079】55aは第1(再帰)グローバル非共有バ
スであり、これは第1グローバルバス15aと同等、5
5bは第1(再帰)グローバル共有バスであり、これは
第1グローバル共有バス15bと同等である。
【0080】57aは第1(再帰)非共有インタフェー
スであり、これは第1非共有インタフェース17aと同
等、57bは第1(再帰)共有インタフェースであり、
これは第1共有インタフェース17bと同等である。
【0081】図から明らかなように、実施の形態1のプ
ロセッサユニット14と、再帰プロセッサユニット54
の構造は再帰的に同じであることが判る。この結果、更
にこの再帰プロセッサユニット54を1つのプロセッサ
ユニットとして、二重、三重の再帰が可能となる。ま
た、再帰プロセッサユニット54を実施の形態1の場合
で示したが、実施の形態2をベースにした構成にしても
よい。このように、再帰を行うことにより目的に合わせ
て多様な構成が組める。
【0082】実施の形態6. 非共有バスの多バス化 図8は発明の実施の形態6に係るマルチプロセッサ装置
を示すブロック図であり、前記図1に示した実施の形態
1と同一の部分については同一符号を付して重複説明を
省略する。また、この実施の形態6では実施の形態1に
ついて述べるが実施の形態2〜4でも同じことができる
ので、これら形態の説明は省略する。
【0083】第iCPU11は2つのCPU非共有バス
端子11b,11cを持っている。従来分を第(i,
1)CPU非共有バス端子11b、増設分を第(i,
2)CPU非共有バス端子11cとする。62は第
(i,2)CPU非共有バス端子11cに接続した第
(i,2)ローカルキャッシュメモリであり、その機能
は第(i,1)ローカルキャッシュメモリ12と変わら
ない。この第(i,2)ローカルキャッシュメモリ62
は第(i,2)CPU側バス端子62aと第(i,2)
バス側バス端子62bをもつ。第(i,2)CPU側バ
ス端子62aは第iCPU11の増設された第(i,
2)CPU非共有バス端子11cに接続されている。6
3aは第(i,2)ローカル非共有バスであり、増設さ
れた第(i,2)ローカルキャッシュメモリ62の第
(i,2)バス側バス端子62bに接続されている。
【0084】第iプロセッサユニット14は増設された
第(i,2)ユニット非共有バス端子14cを持ち、第
(i,2)ローカル非共有バス63aが接続されてい
る。65aは増設された第2グローバル非共有バス、6
7aは増設された第2非共有インタフェース、69aは
第2非共有インタフェース67aに接続された第2非共
有メモリである。
【0085】なお、図示しないが第1非共有メモリ19
aおよび第2非共有メモリ69aは、共有データ格納用
メモリとして第1非共有インタフェース17aまたは第
2非共有インタフェース67aからアクセスできるよう
にしてもよい。また、それぞれのグローバルインタフェ
ースに他の装置がつながっていてもかまわない。
【0086】次に動作について説明する。例えば、キャ
ッシュメモリが2つ分のアドレス情報を格納することが
できるときに3つ以上のアドレスを読み出す場合、パー
ジが起こりやすくなる。パージが発生すると、第1グロ
ーバル非共有バス15aの使用率が高くなり混雑する。
ここで、混雑するというのは第iCPU11が第1グロ
ーバル非共有バス15aを使用したいのに他のCPUが
第1グローバル非共有バス15aを使用しているため、
使用できず、自分が使用できるまで待たなければいけな
い状態をいう(この状態ではCPUが待たされるため処
理能力が落ちる)。
【0087】このような、非共有データのためのアドレ
スを多く使用し、かつ第(i,1)ローカルキャッシュ
メモリ12の容量が小さい結果、パージが発生し、バス
が混雑する場合、この実施の形態6のように第2グロー
バル非共有バス65aを増設することによりバス負荷を
軽減できる。
【0088】第iCPU11は、非共有データをアクセ
スするときに、従来分、増設分のどちらのバスを使用す
るかを選択する。この選択の最も簡単な方法はアドレス
が偶数/奇数によって振り分ける方法がある。仮に第
(i,2)非共有バス端子を選択したとして、第iCP
U11は第(i,2)ローカルキャッシュメモリ62を
通して第2非共有インタフェース67aを通って第2非
共有メモリ69aにアクセスする。
【0089】一方、このとき第(i+1)CPU(不図
示)等の他のCPUが第1グローバル非共有バス15a
から第1非共有インタフェース17aを通って第1非共
有データ格納用メモリ19aへ行くパスはあいている。
その結果、他のCPUがこのパスを使用することができ
る。
【0090】この実施の形態6では、バス使用のタイミ
ングもあるが、2つのCPUが非共有データ用メモリに
アクセスできる。その結果、待ち時間が減り、バスの混
雑度が減り、処理速度が向上する。ここでは、グローバ
ル非共有バスを1本増設した場合について述べたが、同
じ様にバスの数を増やせばより混雑度が減る。このよう
な構成は多チップで構成するよりも系全体で1チップ構
成した方がよい。理由として、1つのチップの出入口
(ピン)は現在の技術では高々300本程度であり、無
限にバスを増やすことができないからである。
【0091】ここで、一般にプロセッサユニットの数
(CPUの数)以上のバスを増設しても意味はない。例
えば10CPUのために100本バスを用意しても一度
に使用するバスの数が高々CPUの数(10本)なので
残り90本は未使用の状態になる。一般に、最適なバス
の数は以下のように表せられる。 グローバルバス数=CPU×(単位時間内の平均非共有
データアクセス数×アクセス時間/単位時間)
【0092】実施の形態7. 共有バスの多バス化 図示しないが、実施の形態6を応用し、グローバル共有
バスの多バス化をしてもよい。この場合も実施の形態6
と同じ効果が期待できる。
【0093】実施の形態8. 遅い周辺機器のための外部I/Oバス 図9はこの発明の実施の形態8に係るマルチプロセッサ
装置を示すブロック図であり、前記図1に示した実施の
形態1と同一の部分については同一符号を付して重複説
明を省略する。
【0094】11は第iCPUである。この第iCPU
11は第(i,1)CPU外部装置バス端子11dをも
つ。73cは第(i,1)ローカル外部装置バスで、第
(i,1)CPU外部装置バス端子11dに接続されて
いる。14は第iプロセッサユニットであり、新たに第
(i,1)ユニット外部装置バス端子14dが増設さ
れ、内部で第(i,1)ローカル外部装置バス73cに
接続されている。75cは第1グローバル外部装置バス
である。この第1グローバル外部装置バス75cは、そ
れぞれの第iプロセッサユニット14の第(i,1)ユ
ニット外部装置バス端子14dに接続されている。77
cは第1外部装置インタフェース、79Cは外部装置で
ある。この外部装置79Cはアクセス時間が非常にかか
るものとする。
【0095】バスの停止の説明 この実施の形態8では、遅い外部装置79Cにアクセス
したことによるバスの停止を回避することができる。こ
こでバスの停止について説明する。実施の形態1のよう
な回路で、共有インタフェース17bの外に遅い外部装
置19bがあり、そのアクセス時間が10,000クロ
ックであったとする。第1CPUが第1グローバル共有
バス15bを通して、この遅い外部装置19bにアクセ
スしたとき、他のCPUは、第1CPUのアクセスが終
了するまで第1グローバル共有バス15bを使用できな
い。
【0096】その結果、他のCPUが第1グローバル共
有バスをアクセス使用とすると、第1CPUのアクセス
完了まで最悪10,000クロック待たされることにな
る。アクセス完了までの間は誰も何もすることができな
くなるためバスが停止した状態になる。最悪例としてC
PUが10個あったとして、各CPUは1,000,0
00クロックの間に1回外部装置のアクセスを実施した
とする。外部装置アクセスのための時間は10,000
クロック×1[回]×10[CPU]=100,000
クロックとなり、約10%の時間がバスの停止時間とな
ってしまう。この結果、全てのCPUは最大10%程度
の速度下が起こる。この実施の形態8では、このような
バスの停止を回避するため、外部装置用のバスを増設し
たものである。
【0097】次に動作について説明する。第iCPU1
1はアクセスする番地情報から(または命令から)、こ
の番地が外部装置79cに割り当てられた番地かを判断
する。外部装置79cに割り当てられた番地であると判
断した場合、第iCPU11は第(i,1)CPU外部
装置バス端子11dからアクセスを開始して、これが第
iプロセッサユニット14の増設された第(i,1)ユ
ニット外部装置バス端子14dを通り、第1グローバル
外部装置バス75c、第1外部装置インタフェース77
cを通って外部装置79cにアクセスすることになり、
このときは第1グローバル共有バス15bと第1グロー
バル非共有バス15aは一切使用しない。
【0098】この結果、他のCPUが共有/非共有デー
タをアクセスしにいっても全くバスの停止に巻き込まれ
ることなく、速度を落とさずに処理を実行し続けること
ができる。また、この実施の形態8では実施の形態1に
ついて述べたが、別に実施の形態1に限ったことでな
く、実施の形態2〜4でも同じことが言える。また、実
施の形態5のように再帰的構成も可能で、実施の形態6
又は実施の形態7のようにバスを多重化することもでき
る。
【0099】実施の形態9.非共有データをローカルメ
モリに入れる。図10はこの発明の実施の形態9に係る
マルチプロセッサ装置を示すブロック図であり、前記図
1に示した実施の形態1と同一の部分については同一符
号を付して重複説明を省略する。
【0100】ここで、非共有データ、その中でもワーク
エリアはある一定の番地にのみアロケートさせるように
しておく。CPUがワークエリアにアクセスするとき、
番地情報から第(i,1)ローカルメモリ86にアクセ
スするようにする。この第(i,1)ローカルメモリ8
6は第iCPU11の専用となる。ワークエリア自体は
該当処理(CPU)で閉じているので、別に外に出す必
要がない。外に出す必要がなければ第1グローバルバス
35を使用しなくても良い。その結果、バス使用率が極
端に減ることになる。
【0101】また、ワークエリアのためのローカルメモ
リ86が小さい場合、第1グローバルバスにぶらさがっ
たメモリをワークエリアとして使用してもよい。また、
図11のようにローカルメモリ86が遅い場合は第
(i,1)ローカルキャッシュメモリ12を通してアク
セスさせるようにしても良い。いずれにせよこの実施の
形態9では、バス使用率が下がるので、より高速化が期
待できる。バス使用率が下がると、実施の形態3又は4
を実施するのに有利となる。この実施の形態3又は4を
実施することは面積縮小につながる。図10、図11は
この観点から実施の形態3をベースにしている。実施の
形態3をベースにした場合、非常に簡単な構成になる。
【0102】実施の形態10. 共有/非共有の判定方法1 〜アドレスによる判定 その
1〜 これまでは、CPUが共有/非共有を判定できることを
前提にして実施の形態を記述してきたが、この実施の形
態からは、これまでの実施の形態を構成するに当たり、
どのようなCPUが適当であるか、または一般のCPU
であってもどのような周辺回路をつければよいかについ
て説明する。
【0103】図12はこの発明の実施の形態10に係る
マルチプロセッサ装置を示すブロック図であり、11は
実施の形態1の(あるいはこれをベースとした実施の形
態の)CPUである。101は第iCPU本体部であ
る。この第iCPU本体部101自体は共有/非共有の
判定をする機能を必要とはしない。第iCPU本体部1
01はアクセスしようとする番地を示す第iCPU本体
アドレスバス端子101a、番地から読み出した情報を
搬送し、又は書き込む情報を伝達する第iCPU本体デ
ータバス端子101b、読む、又は書く等の第iCPU
本体制御情報を出力する第iCPU本体制御バス端子1
01cを有する。
【0104】102は第iアドレス共有/非共有バス選
択装置で、CPU本体部101の第iCPU本体アドレ
スバス端子101aに接続された第iCPUアドレス選
択装置CPU側端子102a、第iアドレス選択装置共
有側端子102b、第iアドレス選択装置非共有側端子
102c、第iアドレス選択装置判定入力端子102d
を有する。この第iアドレス共有/非共有バス選択装置
102は第iアドレス選択装置判定入力端子102dに
「共有」という情報が入れば、第iCPUアドレス選択
装置CPU側端子102aと第iアドレス選択装置共有
側端子102bを接続し、第iアドレス選択装置判定入
力端子102dに「非共有」という情報が入れば、第i
CPUアドレス選択装置CPU側端子102aと第iア
ドレス選択装置非共有側端子102cを接続する。
【0105】103は第iデータ共有/非共有バス選択
装置で、CPU本体部101の第iCPU本体データバ
ス端子101bに接続された第iCPUデータ選択装置
CPU側端子103a、第iデータ選択装置共有側端子
103b、第iデータ選択装置非共有側端子103c、
第iデータ選択装置判定入力端子103dを有する。こ
の第iデータ共有/非共有バス選択装置103は第iデ
ータ選択装置判定入力端子103dに「共有」という情
報が入れば、第iCPUデータ選択装置CPU側端子1
03aと第iデータ選択装置共有側端子103bを接続
し、第iデータ選択装置判定入力端子103dに「非共
有」という情報が入れば、第iCPUデータ選択装置C
PU側端子103aと第iデータ選択装置非共有側端子
103cを接続する。
【0106】104は第i制御共有/非共有バス選択装
置で、CPU本体部101の第iCPU本体制御バス端
子101cに接続された第iCPU制御選択装置CPU
側端子104a、第i制御選択装置共有側端子104
b、第i制御選択装置非共有側端子104c、第i制御
選択装置判定入力端子104dを有する。この第i制御
共有/非共有バス選択装置104は第i制御選択装置判
定入力端子104dに「共有」という情報が入れば、第
iCPU制御選択装置CPU側端子104aと第i制御
選択装置共有側端子104bを接続し、第i制御選択装
置判定入力端子104dに「非共有」という情報が入れ
ば、第iCPU制御選択装置CPU側端子104aと第
i制御選択装置非共有側端子104cを接続する。
【0107】第iCPU11は第(i,1)CPU側共
有バス端子11aと第(i,1)CPU側非共有バス端
子11bを有する。この第iCPU11の第(i,1)
CPU側共有バス端子11bからの配線は、第iCPU
11の内部でアドレス、データ、制御の3つに分けら
れ、それぞれ第iアドレス共有/非共有バス選択装置1
02の第iアドレス選択装置共有側端子102b、第i
データ共有/非共有バス選択装置103の第iデータ選
択装置共有側端子103b、第i制御共有/非共有バス
選択装置104の第i制御選択装置共有側端子104b
に接続されている。
【0108】また、第iCPU11の第(i,1)CP
U側非共有バス端子11aからの配線は、第iCPU1
1の内部でアドレス、データ、制御の3つに分けられ、
それぞれ第iアドレス共有/非共有バス選択装置102
の第iアドレス選択装置非共有側端子102c、第iデ
ータ共有/非共有バス選択装置103の第iデータ選択
装置非共有側端子103c、第i制御共有/非共有バス
選択装置104の第i制御選択装置非共有側端子104
cに接続されている。
【0109】105は第i共有/非共有判定装置であ
り、第iCPU本体アドレスバス端子101aに接続さ
れたアドレスバス入力端子105aを有するとともに、
第iアドレス共有/非共有バス選択装置102、第iデ
ータ共有/非共有バス選択装置103、及び第i制御共
有/非共有バス選択装置104のそれぞれの第iアドレ
ス選択装置判定入力端子102d、第iデータ選択装置
判定入力端子103d、第i制御選択装置判定入力端子
104dに接続された第i選択判定出力端子105bを
有する。この第i共有/非共有判定装置105は固定さ
れた回路でよい。アクセスする番地情報で共有/非共有
を分ける
【0110】この実施の形態10は、共有又は非共有を
アクセスするアドレス(番地)から知るという非常にシ
ンプルな方法である。ユーザーはあらかじめ共有データ
を置くアドレス(例えば0000番地〜7FFF番
地)、非共有データを置くアドレス(例えば8000番
地〜FFFF番地)と分けておく。ユーザーは、この分
けた番地情報に従ってプログラムを作成する。第iCP
U本体部101はプログラム解読中にデータアクセス命
令を受け取ると、制御バス入出力から「リード」又は
「ライト」という情報を出力し、かつリードの場合はア
ドレスバス入出力からアクセスするアドレスを出力し、
ライトの場合はアドレスバス入出力からアクセスするア
ドレスを出力すると共に、データバス入出力から書き込
むデータを出力する。
【0111】次に、第i共有/非共有判定装置105は
第iCPU本体部101が出力したデータ情報を受け取
り、これが共有されたデータの割り当てられたアドレス
か非共有データの割り当てられたアドレスかを判定す
る。その結果を第i選択判定出力端子105bを通して
第iアドレス共有/非共有バス選択装置102、第iデ
ータ共有/非共有バス選択装置103、及び第i制御共
有/非共有バス選択装置104のそれぞれの第iアドレ
ス選択装置判定入力端子102d、第iデータ選択装置
判定入力端子103d、第i制御選択装置判定入力端子
104dに「共有データにアクセスした」「非共有デー
タにアクセスした」という情報を伝達する。第iアドレ
ス共有/非共有バス選択装置102、第iデータ共有/
非共有バス選択装置103、及び第i制御共有/非共有
バス選択装置104は、この結果に応答してバスを接続
する。
【0112】上記のように共有/非共有を、その割り付
ける番地によって分けることは、第i共有/非共有判定
装置105の論理回路の単純化に非常に有効である。0
000〜7FFFと8000〜FFFFで共有/非共有
を分けた場合、第i共有/非共有判定装置105はアド
レスの最上位線にせいぜいインバータを一つ加えれば実
現できる。このように、共有/非共有を分ける機能的負
荷はそんなに多くない。その結果、従来例に比べ、機能
的負荷の削減ができることになる。
【0113】また、第iCPU本体部を一般の共有・
非共有の判定をもたないCPUにおきかえ、各共有/非
共有判定装置および判定装置を周辺回路としてもよい。
通常の(共有/非共有の判定をもたない)CPUに置き
換えることができるため安価な部品で作成できる。各共
有/非共有判定装置105は、単なるセレクタであるの
で、部品としては増えるが安価なもので作成できる。た
だしこの方法はCPU作成時に作り込むことになるた
め、ユーザーは共有と非共有のメモリ割り当てを変更で
きない。
【0114】実施の形態11. 共有/非共有の判定方法2〜アドレスによる判定 その
2〜 図13はこの発明の実施の形態11を示すもので、この
実施の形態11では、共有/非共有判定装置として、入
力をアドレス、出力をそのアドレス(ブロック)に対す
る共有/非共有を格納した第i共有/非共有判定RAM
115を使用している。
【0115】この実施の形態11では、アクセスしよう
とする番地の上位(例えば8bit)を高速な第i共有
/非共有判定RAM115に入力する。第i共有/非共
有判定RAM115には該当番地が共有であるか非共有
であるかの情報が納められ、その結果をそのまま共有/
非共有決定線に伝達する。図示しないが、この第i共有
/非共有判定RAM115の情報を書き換えるのは簡単
で、例えば上位8bitが“00”であれば第i共有/
非共有判定RAM115にアクセスできるようにしてお
く。
【0116】このようにすることにより、ユーザーがあ
る程度の共有/非共有領域を指定できる。ただし、いく
らでも第i共有/非共有判定RAM115が大きければ
問題はないが、第i共有/非共有判定RAM115は有
限である。その結果、1バイト単位に共有/非共有判定
を設定することはまず不可能である。また、この方法で
あれば、アドレスの上位しか見ていないため、固定され
たブロック境界、固定された長さしか指定できない。
【0117】実施の形態12. 共有/非共有の判定方法3〜アドレスによる判定 その
3〜 図14はこの発明の実施の形態12を示すもので、第i
CPU本体部101はアクセスしようとする番地を示す
第iCPU本体アドレスバス端子101a、番地から読
み出した情報を搬送し、又は書き込む情報を伝達する第
iCPU本体データバス端子101b、読む、又は書く
等の第iCPU本体制御情報を出力する第iCPU本体
制御バス端子101cを有する。
【0118】127は第iアドレスデコーダである。こ
の第iアドレスデコーダ127は、番地によってアクセ
スする装置を決定するもので、「JdgReg」「PT
bl」「Other」という信号線を持つ。この実施の
形態では、0000−00FF番地が指定されれば「J
dgReg」に“許可”という信号を送り、0100−
03FFであれば「PTbl」信号に“許可”という信
号を送り、それ以外の場合には「Other」に“許
可”を送る。これら出力は各装置の動作を制御すること
になるので、図中では制御信号線のひとつとして扱う。
【0119】第iアドレス共有/非共有バス選択装置1
22、第iデータ共有/非共有バス選択装置123、及
び第i制御共有/非共有バス選択装置124は、それぞ
れ動作許可端子Enをもち、この動作許可端子Enに
“許可”という入力が入れば、実施の形態10で説明し
た動作をし、入力信号が“許可”でなければ、第iCP
U本体部101の第iCPU本体アドレスバス端子10
1a、第iCPU本体データバス端子101b、第iC
PU本体制御バス端子101cを各第iアドレス・デー
タ・制御選択装置共有側端子、第iアドレス・データ・
制御選択装置非共有側端子のどちらにも接続しない。
【0120】この装置の動作許可端子Enは第iアドレ
スデコーダ127の「Other」端子と接続され、第
iCPU本体部101が0400−FFFFにアクセス
する場合に接続動作し、0000−03FFの場合はす
べてのバスを切り離す。
【0121】第i共有/非共有判定装置125は、アド
レス入力端子125aとデータ入力端子125bと制御
入力端子125cを持ち、これは第iCPU本体部10
1の第iCPU本体アドレスバス端子101a、第iC
PU本体データバス端子101b、第iCPU本体制御
バス端子101cに接続されている。この装置はCPU
本体制御バスの「JdgReg」という信号線に接続さ
れている。この装置は、ラッチを一つ持ち、CPUが0
000−00FFをアクセスするときに第iアドレスデ
コーダによって「JdgReg」端子から“許可”信号
が出力されることにより動作し、この時にアクセス可能
となる。
【0122】126は第iポインタテーブル格納メモリ
である。この装置はアドレス入力端子126aとデータ
入力端子126bと制御入力端子126cを有し、これ
は第iCPU本体部101の第iCPU本体アドレスバ
ス端子101a、第iCPU本体データバス端子101
b、第iCPU本体制御バス端子101cに接続されて
いる。この装置はCPU本体制御バスの「PTbl」と
いう信号線に接続されている。この装置は、ラッチを一
つ持ち、CPUが0100−03FFをアクセスすると
きに第iアドレスデコーダ127によって「PTbl」
端子から“許可”信号が出力されることにより動作し、
この時にアクセス可能となる。
【0123】より説明をわかりやすくするために、第i
CPU本体部101から見たときのこの実施の形態12
のメモリマップを第15図に示す。
【0124】この実施の形態12はメモリ管理を「ハン
ドル」と呼ばれる方法でソフトウェア的に実施している
コンピュータ構成(この内容についてはApple C
omputer編集、「Inside Macinto
sh Vol I,II」(バークレイ出版)に詳しく
記述されている)に適用している。
【0125】まず、メモリの一部分をブロックとして使
用する場合(例えば、0400〜04FF番地)、ポイ
ンタテーブルにそのメモリブロックの先頭番地(040
0番地)とその長さ(256Byte=0100(He
x)Byte)を組にしてポインタテーブルのとある番
地(ここで0010番地に「0400」、0014番地
に「0100」)を記述する。このメモリブロックにア
クセスするときは、ソフトウエア的にメモリブロックの
先頭番地の内容の置かれたポインタテーブル上の番地
(0010番地)でアクセスするものである。ポインタ
テーブル上の番地を「ハンドル」という。故に、ユーザ
ーの作成したプログラムがこのメモリブロックのある場
所(先頭から8番目)にアクセスするときはハンドル
(0010番地)の内容(0010番地の内容は040
0)を読み込み、更にこの内容(0010番地の内容で
ある0400番地)からの加算値(8−1)を足した番
地(0407番地)にアクセスしにいく。この実施の形
態で使用されるコンピュータ構成はこれらを全てソフト
ウェアで実施する。
【0126】この実施の形態は、このポインタテーブル
の情報に「共有/非共有」bitを加えたもので、この
共有/非共有bitを加えた場合の動作を図16におい
て説明する。ユーザーの作成したプログラムがこのメモ
リブロックのある場所(先頭から8番目)にアクセスす
るときはハンドル(0010番地)の内容(0010番
地の内容は0400)を読み込む(ステップST12
1)。
【0127】このとき、第iアドレスデコーダ127は
第iポインタテーブルにのみアクセスを“許可”し、第
iCPU本体部101はポインタテーブルから番地01
00の内容を読み込むことができる。 一方、 第iアドレ
ス共有/非共有バス選択装置122、第iデータ共有/
非共有バス選択装置123、及び第i制御共有/非共有
バス選択装置124は、動作許可されていないのでバス
を切り離す。次に、同様に共有bitを読み込む(ステ
ップST122)。
【0128】この次に、読み込んだ共有情報を(000
0−00FFの任意の番地にアクセスすることにより)
第i共有/非共有判定装置125にアクセスする(ステ
ップST123)。このとき、各共有/非共有バス選択
装置122,123,124は依然バスを切り離したま
まである。
【0129】最後のステップST124で、第iCPU
本体部101がハンドルの内容(0010番地の内容で
ある0400番地)からの加算値(8−1)を足した番
地(0407番地)にアクセスしにいくとき、アドレス
デコーダによって各共有/非共有バス選択装置122,
123,124は動作を開始し、共有または非共有を判
定することにより所望のバスへ接続する。
【0130】(更に境界自由度を持たせられる)この実
施の形態12と実施の形態11とを見比べた場合、実施
の形態11では、固定された境界及び長さでの共有/非
共有のみが設定できたが、この実施の形態12では任意
の境界(先頭番地)及び任意の長さで共有、非共有の設
定をすることができる。なお、この実施の形態12の注
意点として、他のCPUの非共有領域にアクセスしない
ようにしなければならない。また、共有/非共有の判定
はCPUがソフトウェア的に担当する(ハード的に担当
することはむづかしい)ことになるため、メモリアクセ
スがやや遅くなる。
【0131】図示しないが、内部のとあるレジスタの書
き込み内容をそのまま即座に外部へ出力できる第iCP
U本体部101(というCPU部品)であれば、第i共
有/非共有判定装置125をこのレジスタでかねること
ができ(たとえばレジスタBとする)、その結果、ステ
ップST123が省略できるため高速となる。同様のこ
とをチップとして構成する場合、第iCPU本体部10
1からアルミ配線をたった一本引き出して各共有、非共
有選択端子に接続してやれば可能である。
【0132】なお、この例でメモリブロックの確保・削
除・変更が発生した場合について簡単に述べる。ポイン
タテーブルは本来各CPUの共有情報であるが、このシ
ステム系でポインタテーブル情報はよく参照される場合
が多く、メモリブロックの確保・削除・変更(以下変更
のみで説明)に伴う書き込みされることはまれである。
メモリブロックの変更があった場合、その変更を発生し
たCPUがあらかじめ共有領域のどこかに変更したハン
ドルとその内容を書いておき、その後で全CPUに一斉
に割り込みをかけさせ、全CPUがその内容をよむこと
により第iポインタテーブル格納メモリ126の内容を
改定すればよい。
【0133】実施の形態13. 共有/非共有の判定方法4〜アドレスによる判定 その
4〜 実施の形態10〜12では、単体使用CPU(CPU本
体部)をそのまま使用して実施の形態1〜9に示すマル
チプロセッサ装置に適用する方法を記述した。実施の形
態13では単体使用CPU自体に必要な機能を載せて改
良することにより、マルチプロセッサ装置に適用する場
合を述べる。この実施の形態13では、単体使用CPU
(CPU本体部)はセグメントにてメモリ管理を実施す
るCPUについて、共有/非共有判定を実施するための
改良適用法について述べる。セグメント自体は実施の形
態12のメモリブロックとかわらない。セグメントはセ
グメントディスクリプタ(図15に示す実施の形態12
のポインタテーブルに相当する)によって記述され、セ
グメントディスクリプタは先頭番地(例えば0400番
地)、長さ(例えば0100バイト)、ステータス情報
bit等をもつ。セグメントディスクリプタはセグメン
トディスクリプタテーブル(実施の形態12のポインタ
テーブルに相当)に配置され、それぞれにセグメント番
号(0,1,2,...で与えられ、実施の形態12の
ハンドルに相当)が打たれている。CPUがメモリにア
クセスする場合は、1命令で、このセグメント番号(例
えば7)の格納アドレスから先頭番地(セグメント7の
先頭番地、0400番地)とステータスビットを読み込
み、更にその番地(0400番地)からの相対番地(8
−1)を加算して(0407番地)メモリにアクセスし
にいく。そしてこの方法の特徴的なことはソフトウェア
的には1命令でハード的にこの処理を実施することであ
る。
【0134】(単体CPU(CPU本体部)の改定方
針)しかし、一般的にこのようなセグメント管理によっ
てメモリアクセスを実施するCPUは、外部に対して
「セグメントを読む」か「セグメントデイスクリプタを
読む」かを出力しない。また、いま「どのセグメントを
よんでいるか」を出カしない。このため、外部でセグメ
ントによる共有/非共有判定ができない。安易な方法と
して、実施の形態10をべースにして共有するセグメン
トを共有領城に、非共有セグメントを非共有領域に配置
する方法が簡単であるが、融通が効かない。
【0135】実施の形態12のようにメモリアクセス時
にソフトウェア的に共有/非共有装置に書きこむように
すると、今度は過去の豊富なソフトウェア互換性がなく
なる。そこで、この実施の形態ではブラックボックスと
なっているCPUから、機能上もっていて中で閉じてい
る配線を外部に引き出すという簡単な改訂を実施するこ
とにより、この単体のCPUにも共有/非共有判定がで
きるようにしたものである。
【0136】図17は実施の形態13によるマルチプロ
セッサ装置を示すブロック図であり、図において、38
6はセグメントによってメモリにアクセスするCPU本
体部である。このCPU本体部386は、セグメントデ
ィスクリプタテーブルを読みにいくか、これ以外を読み
にいくかを決定する“Sgr”端子131dを持っ。こ
のSgr端子131dはセグメントディスクリプタテー
ブルを読みにいくときは“ReadSGT”という情報
を電気的に出力し、一方でセグメントを読みにいくとき
は“AccMem”という情報を出力する。CPU本体
部386は、Sgr端子131dがAccMemの情報
を出力するとき、アクセスするセグメント番号を出力す
るためのセグメント番号出力“SN0”端子131eを
もつ。
【0137】このSN0端子131eはCPUが実際に
メモリをアクセスする(Sgr:AccMem)ときに
セグメント番号を出力する。機能上、これらの端子に相
当する信号はCPU本体部内に存在するはずであり、こ
れらをアルミ配線で引き出すことはそんなに労力はかか
らない。
【0138】136はセグメントディスクリプタテーブ
ルで、RAMである。このセグメントディスクリプタテ
ーブルは“許可(EN)”信号をもち、CPU本体部3
86のSgr端子131dに接続されている。セグメン
トディスクリプタテーブル136は“許可(EN)”入
力が“ReadSDT”となったとき(Sgr:Rea
dSDTになったときで、CPUがセグメントディスク
リブタテーブルを読みにいったとき)に動作し、CPU
の要求に対してセグメントディスクリプタを出力する。
許可ENがReadSDT以外のときは何もせず何も出
力しない。
【0139】135は共有/非共有判定装置でRAMで
あり、セグメント番号を入力端子135aと共有/非共
有判定出力端子135bをもつ。この共有/非共有判定
装置自体は実施の形態11と変わらず、差分は入力がア
ドレスの上位8ビットではなく、CPU本体部386の
SN0端子から出力される(アクセスする)セグメント
番号である。実施の形態11と同じように、共有/非共
有判定装置135は、入力されたセグメント(実施の形
態11でいうアドレス上位8ビット)に対応する共有/
非共有情報をもっており、与えられたセグメント番号の
共有/非共有情報を共有/非共有判定出力に出力する機
能をもつ。
【0140】122,123,124の各共有/非共有
バス選択装置は、動作許可端子を持つが、この動作許可
端子はCPU本体部386のSgr端子に接続され、動
作許可端子が“AccMem”であれば共有/非共有判
定入力の情報にしたがってバス接続を実施し、動作許可
信号がこれ以外の場合には動作せず、すべてのバスを切
り離す。
【0141】次に動作について説明する。CPU本体部
386は1つのソフトウェア的メモリアクセス命令でセ
グメントディスクリプタテーブルを読むという動作とセ
グメント自体にアクセスする動作を実施する。まず、C
PU本体部386がセグメントディスクリプタテーブル
136にアクセスする揚合、CPU本体部386は所定
のアクセス手順にしたがってメモリアクセス要求を出力
するとともに、Sgr端子131dから“ReadSD
T”という信号を出カする。各共有/非共有バス選択装
置122,123,124は、Sgr端子131dに接
続された動作許可信号に入力される信号が“ReadS
DT”であるため、動作せず、すべてのバスを切り離
す。共有/非共有判定装置135は動作するかもしれな
いが、各共有/非共有バス選択装置122,123,1
24が動作しないため、出力は無効となる。一方、セグ
メントディスクリプタテーブル136は、EN信号が
“ReadSDT”となるため動作を開始し、CPU本
体部386に対してセグメントディスクリプタを送信す
る。
【0142】次に、CPU本体部386がセグメントに
アクセスする場合、CPU本体部386のSgr端子1
31dから“ReadMem”が出力されるとともにS
N0端子131eからアクセスするセグメントの番号が
出力される。このときセグメントディスクリプタテーブ
ル136はEN信号が“ReadMem”であるため動
作せず、何も出力しない。一方、共有/非共有判定装置
135はCPU本体部386のSN0端子131eから
出力されたセグメント番号を入力し、RAMとして中に
蓄えられている情報から、該当セグメントの共有/非共
有判定を出力する。各共有/非共有バス選択装置12
2,123,124は動作許可端子に“AccMem”
が入力されているため、それぞれの共有/非共有判定入
力からの結果に従い、各バスの接続を行う。このとき、
ソフトウェア的には何も変更の必要がない。
【0143】この実施の形態13によれば、単体使用の
CPU(CPU本体部)に最小限の、しかもなるべく労
力の少ない改訂を実施することにより、共有/非共有の
判定を可能にした。この実施の形態13の場合、ここで
いう労力とは“Sgr”端子131dに相当する端子を
出すことと、“SN0”端子131eに相当する端子を
出すことで、アルミ配線を外に出す以外の労カはない。
しかも、これら端子は機能上、上記セグメント管埋を実
施する単体使用のCPUには存在するはずで、さらに単
体のCPUの機能を搭載する必要がない。その結果、比
較的安く改訂できる。
【0144】また、上記の方法であれば、内部および外
部のハード的な付加はあってもソフトウェア的には何も
付加するものはない。これはこれまでの過去のソフトウ
ェア資産を承継できることを意味する。また、実施の形
態10にセグメント管理を実施する単体のCPUを載せ
た場合は共有するセグメントは共有領域に、非共有のセ
グメントは非共有領域に置くという制約がついていた
が、この実施の形態13ではそのような制約がなくな
り、融通が利くという利点がある。
【0145】なお、ここでも実施の形態12と同じく、
セグメントの生成、変更、消去という処理およびこれに
伴う共有/非共有判定装置135内の整合性を保った情
報の変更がありうるが、これについては処理中まれに起
こることと、特許の本質ではないため説明を省略する。
【0146】実施の形態13ではCPU本体部386
は、単体のチップであることを前提としたが、図18に
示すように、別に共有/非共有判定装置135を含んだ
ものでもよい。この結果、CPU本体部386は“Sg
r”端子と“共有/非共有判定”端子131fをもつこ
ととなる。
【0147】実施の形態13ではCPU本体部386
は、単体のチップであることを前提としたが、図19に
示すように、別に共有/非共有判定装置135およびセ
グメントディスクリブタテーブル136を含んだもので
もよい。この結果、CPU本体部386は“共有/非共
有判定”端子131fのみをもつこととなる。
【0148】図18、図19に示した共有/非共有端子
131fは共有/非共有判定装置135というRAMに
よって決定されるものでなくてもよい。たとえば固定さ
れた回路であってもよい。また、実施の形態13以降で
内部に組み入れられた共有/非共有判定装置135はセ
グメントで判断するように適用したが、これ以外の判断
材料であってもよい。
【0149】以上、実施の形態13では共有/非共有の
判定をセグメント番号によって判定するCPUを用い
て、この発明のCPUおよびキャッシュ構成に適用し
た。図18、図19では共有/非共有判定装置135は
CPUの中に設けてもよいことを示した。また、共有/
非共有判定装置135は固定されたものであってもよい
としたが、命令によって共有/非共有を分けるようにし
てもよい。
【0150】実施の形態14. (複合システム)第20図は実施の形態14によるマル
チプロセッサ装置を示すブロック図である。この実施の
形態14は実施の形態4、実施の形態8をべースにした
もので、図において、171は実施の形態12のCPU
である。172は実施の形態13のCPUである。
【0151】この実施の形態14は、9個以上の異なる
コンピュータシステムを一つのシステムとして融合させ
る方法である。この実施の形態14を便用すれば、図で
明らかなように2個以上のコンピュータシステムを一つ
のシステムとして融合することが可能である。この効果
として、2個のシステムで一つのデータを共有すること
ができる。このCPUは、別に実施の形態12、実施の
形態13に限ったものでなくてもよい。最低でも、共有
データと非共有データをはっきりと分けて、これに応じ
てバスを選択することのできるCPUであれば、この発
明によるCPUおよびキャッシュ構成を組める。
【0152】
【発明の効果】以上のように、この発明によれば、CP
Uで共有データ又は非共有データを分け、これに応じて
バスを分けるように構成したので、キャッシュメモリか
ら書き込み監視機能を取り除くことが出来るため、キャ
ッシュメモリの負荷削減及び高速化が可能となり、かつ
キャッシュメモリもライトバック機能を持ったものに変
更できるという効果がある。
【0153】この発明によれば、共有データバスにキャ
ッシュメモリを備えるように構成したので、より高速化
を図ることができる効果がある。
【0154】この発明によれば、共有バスとグローバル
バスを一つにするように構成したので、チップ面積を縮
小することができる効果がある。
【0155】この発明によれば、キャッシュメモリを備
えた共有バスとグローバルバスをつなぐように構成した
ので、チップの面積を縮小することができる効果があ
る。
【0156】この発明によれば、CPUで共有データ又
は非共有データを分け、これに応じてバスを分けるよう
に構成したプロセッサユニットの複数で一つの再帰プロ
セッサユニットを構成したので、再帰的に構成すること
ができる効果がある。
【0157】この発明によれば、グローバルバスを多バ
ス化するように構成したので、グローバルバスの混雑度
を削減し、より高速化を図ることができる効果がある。
【0158】この発明によれば、共有バスを多バス化す
るように構成したので、共有バスの混雑度を削減し、よ
り高速化を図ることができる効果がある。
【0159】この発明によれば、I/Oバスを設置する
ように構成したので、遅い周辺回路にアクセスした場合
のアクセス完了までのバスの停止を回避し、その結果、
高速化できるできる効果がある。
【0160】この発明によれば、CPUの周辺に非共有
データを設けるように構成したので、より高速化を図る
ことができる効果がある。
【0161】この発明によれば、ユーザーが共有/非共
有をアドレスによって回路的に振り分けるように構成し
たので、CPUが共有/非共有情報を知ることができる
効果がある。
【0162】この発明によれば、ブロックごとに共有/
非共有情報を振り分けるように構成したので、ユーザー
は自由な共有/非共有の割り振りができる効果がある。
【0163】この発明によれば、CPUは、メモリアク
セス時のセグメント情報からデータの共有/非共有を判
断してアクセスするバスを決定するように構成したの
で、ハンドルを用いたコンピュータ構成にも適用できる
効果がある。
【0164】この発明によれば、CPUは、ユーザーの
情報から共有/非共有データを別々の命令でアクセスさ
せることよってバスを選択するように構成したので、セ
グメントを用いたコンピュータ構成にも適用できる効果
がある。
【0165】この発明によれば、異なるCPUの各バス
端子を、グローバル非共有バスとグローバル共有バスお
よびグローバル外部装置バスに接続して構成したので、
異なるCPUを一つのマルチプロセッサ系に載せること
ができる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるマルチプロセ
ッサ装置のブロック図である。
【図2】 この発明の実施の形態2によるマルチプロセ
ッサ装置のブロック図である。
【図3】 この発明の実施の形態3によるマルチプロセ
ッサ装置のブロック図である。
【図4】 この発明の実施の形態3による他のマルチプ
ロセッサ装置のブロック図である。
【図5】 この発明の実施の形態4によるマルチプロセ
ッサ装置のブロック図である。
【図6】 この発明の実施の形態4による他のマルチプ
ロセッサ装置のブロック図である。
【図7】 この発明の実施の形態5によるマルチプロセ
ッサ装置のブロック図である。
【図8】 この発明の実施の形態6によるマルチプロセ
ッサ装置のブロック図である。
【図9】 この発明の実施の形態8によるマルチプロセ
ッサ装置のブロック図である。
【図10】 この発明の実施の形態9のマルチプロセッ
サ装置のブロック図である。
【図11】 この発明の実施の形態9による他のマルチ
プロセッサ装置のブロック図である。
【図12】 この発明の実施の形態10によるマルチプ
ロセッサ装置のブロック図である。
【図13】 この発明の実施の形態11によるマルチプ
ロセッサ装置のブロック図である。
【図14】 この発明の実施の形態12によるマルチプ
ロセッサ装置のブロック図である。
【図15】 実施の形態12のメモリマップである。
【図16】 実施の形態12のメモリアクセスソフトウ
ェアである。
【図17】 この発明の実施の形態13によるマルチプ
ロセッサ装置のブロック図である。
【図18】 この発明の実施の形態13による他のマル
チプロセッサ装置のブロック図である。
【図19】 この発明の実施の形態13による更に他の
マルチプロセッサ装置のブロック図である。
【図20】 この発明の実施の形態14によるマルチプ
ロセッサ装置のブロック図である。
【図21】 従来のマルチプロセッサ装置のブロック図
である。
【符号の説明】
11 CPU、11a 共有バス端子、11b,11c
非共有バス端子、12,62 ローカルキャッシュメ
モリ、13a,63a ローカル非共有バス、13b
ローカル共有バス、14プロセッサユニット、15a,
55a,65aグローバル非共有バス、15b,55b
グローバル共有バス,16 共有キャッシュメモリ、
17a,57a,67a 非共有インタフェース、17
b,37,57b 共有インタフェース、19a,69
a 非共有メモリ、39 外部メモリ、54 再帰プロ
セッサユニット。

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 共有バス端子と非共有バス端子とを有す
    るCPUと、前記非共有バス端子に接続され自己のCP
    Uのみに用いる非共有情報を記憶したローカルキャッシ
    ュメモリとを備えたプロセッサユニットと、複数の前記
    プロセッサユニットのそれぞれのCPUの共有バス端子
    をグローバル共有バスに接続するローカル共有バスと、
    複数の前記プロセッサユニットのそれぞれのローカルキ
    ャッシュメモリのバス端子をグローバル非共有バスに接
    続するローカル非共有バスと、前記グローバル共有バス
    を前記全てのプロセッサユニットのCPUが用いる共有
    情報を記憶した外部の共有メモリに接続する共有インタ
    フェースと、前記グローバル非共有バスを前記全てのプ
    ロセッサユニットのCPUが用いる非共有情報を記憶し
    た外部の非共有メモリに接続する非共有インタフェース
    とを備えたマルチプロセッサ装置。
  2. 【請求項2】 共有インタフェースより内部側における
    グローバル共有バスの途中にグローバル共有キャッシュ
    メモリを設けたことを特徴とする請求項1記載のマルチ
    プロセッサ装置。
  3. 【請求項3】 グローバル共有バスとグローバル非共有
    バスを、共有情報記憶領域と非共有情報記憶領域とを有
    する外部のメモリに接続する共有インタフェースを備え
    たことを特徴とする請求項1または請求項2記載のマル
    チプロセッサ装置。
  4. 【請求項4】 ローカルキャッシュメモリはライトスル
    ー機能を有することを特徴とする請求項1から請求項3
    のうちのいずれか1項記載のマルチプロセッサ装置。
  5. 【請求項5】 ローカルキャッシュメモリはライトバッ
    ク機能を有することを特徴とする請求項1から請求項3
    のうちのいずれか1項記載のマルチプロセッサ装置。
  6. 【請求項6】 共有バス端子と非共有バス端子とを有す
    るCPUと、前記非共有バス端子に接続され自己のCP
    Uのみに用いる非共有情報を記憶したローカルキャッシ
    ュメモリとを備えたプロセッサユニットと、その複数の
    プロセッサユニットのそれぞれの共有バス端子を接続し
    た総合共有バス端子および非共有バス端子を接続した総
    合非共有共有バス端子を有する再帰プロセッサユニット
    と、複数の前記再帰プロセッサユニットのそれぞれの総
    合共有バス端子をグローバル共有バスに接続するローカ
    ル共有バスと、前記複数の前記再帰プロセッサユニット
    のそれぞれの総合非共有バス端子をグローバル非共有バ
    スに接続するローカル非共有バスと、前記グローバル共
    有バスを前記全てのプロセッサユニットのCPUが用い
    る共有情報を記憶した外部の共有メモリに接続する共有
    インタフェースと、前記グローバル非共有バスを前記全
    てのプロセッサユニットのCPUが用いる非共有情報を
    記憶した外部の非共有メモリに接続する非共有インタフ
    ェースとを備えたマルチプロセッサ装置。
  7. 【請求項7】 共有バス端子と2つ以上の非共有バス端
    子とを有するCPUと、前記各非共有バス端子に接続さ
    れ自己のCPUのみに用いる非共有情報を記憶したロー
    カルキャッシュメモリとを備えたプロセッサユニット
    と、複数の前記プロセッサユニットのそれぞれのCPU
    の共有バス端子をグローバル共有バスに接続するローカ
    ル共有バスと、複数の前記プロセッサユニットのそれぞ
    れの2つ以上のローカルキャッシュメモリの非共有バス
    端子を別個独立したグローバル非共有バスに接続するロ
    ーカル非共有バスと、前記グローバル共有バスを前記全
    てのプロセッサユニットのCPUが用いる共有情報を記
    憶した外部の共有メモリに接続する共有インタフェース
    と、前記グローバル非共有バスのそれぞれを該バスに接
    続された前記全てのプロセッサユニットのCPUが用い
    る非共有情報を記憶した外部の別個独立した非共有メモ
    リに接続する2つ以上の非共有インタフェースとを備え
    たマルチプロセッサ装置。
  8. 【請求項8】 共有バス端子と非共有バス端子および外
    部装置バス端子とを有するCPUと、前記各非共有バス
    端子に接続され自己のCPUのみに用いる非共有情報を
    記憶したローカルキャッシュメモリとを備えたプロセッ
    サユニットと、複数の前記プロセッサユニットのそれぞ
    れのCPUの共有バス端子をグローバル共有バスに接続
    するローカル共有バスと、複数の前記プロセッサユニッ
    トのそれぞれのローカルキャッシュメモリの非共有バス
    端子をグローバル非共有バスに接続するローカル非共有
    バスと、複数の前記プロセッサユニットのそれぞれの外
    部装置バス端子をグローバル外部装置バスに接続するロ
    ーカル外部装置バスと、前記グローバル共有バスを前記
    全てのプロセッサユニットのCPUが用いる共有情報を
    記憶した外部の共有メモリに接続する共有インタフェー
    スと、前記グローバル非共有バスを前記全てのプロセッ
    サユニットのCPUが用いる非共有情報を記憶した外部
    の非共有メモリに接続する非共有インタフェースと、前
    記グローバル外部装置バスを前記全てのプロセッサユニ
    ットのCPUが用いる共有情報を記憶した外部の共有メ
    モリに接続する外部装置インタフェースとを備えたマル
    チプロセッサ装置。
  9. 【請求項9】 ローカルキャッシュメモリの入力側また
    は出力側に接続したローカルメモリを備えたことを特徴
    とする請求項1から請求項8記載のうちのいずれか1項
    記載のマルチプロセッサ装置。
  10. 【請求項10】 アドレス端子、データ端子、コントロ
    ール端子を有するCPU本体と、前記アドレス端子から
    のアドレス情報を入力とし、共有/非共有かを判断する
    共有/非共有判定回路と、この共有/非共有判定回路か
    らの出力を入力とし、共有の場合には前記CPU本体の
    各バス端子を共有バス端子に接続し、非共有の場合には
    前記CPU本体の各バス端子を非共有バス端子に接続す
    る共有/非共有バス選択装置と、前記非共有バス端子に
    接続され自己のCPUのみに用いる非共有情報を記憶し
    たローカルキャッシュメモリとを備えたプロセッサユニ
    ットを用いることを特徴とする請求項1から請求項9記
    載のうちのいずれか1項記載のマルチプロセッサ装置。
  11. 【請求項11】 共有/非共有判定回路は、入力がアド
    レスの上位、出力がそのアドレスブロックの共有/非共
    有判定であるRAMであることを特徴とする請求項10
    記載のマルチプロセッサ装置。
  12. 【請求項12】 共有/非共有判定回路は、CPUの近
    傍のポインタテーブルの中に備えられた共有/非共有ビ
    ットを直接または間接的に送られることにより、セグメ
    ントごとに共有/非共有を判定することを特徴とする請
    求項10記載のマルチプロセッサ装置。
  13. 【請求項13】 CPUは、メモリアクセス時のセグメ
    ント情報からデータの共有/非共有を判断してアクセス
    するバスを決定することを特徴とする請求項1から請求
    項9記載のうちのいずれか1項記載のマルチプロセッサ
    装置。
  14. 【請求項14】 CPUは、ユーザーの情報から共有/
    非共有データを別々の命令でアクセスさせることよって
    バスを選択することを特徴とする請求項1から請求項9
    記載のうちのいずれか1項記載のマルチプロセッサ装
    置。
  15. 【請求項15】 異なるCPUの各バス端子を、グロー
    バル非共有バスとグローバル共有バスおよびグローバル
    外部装置バスに接続したことを特徴とする請求項1から
    請求項9記載のうちのいずれか1項記載のマルチプロセ
    ッサ装置。
JP25165298A 1998-09-04 1998-09-04 マルチプロセッサ装置 Expired - Fee Related JP4179677B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP25165298A JP4179677B2 (ja) 1998-09-04 1998-09-04 マルチプロセッサ装置
US09/247,519 US6253290B1 (en) 1998-09-04 1999-02-10 Multiprocessor system capable of circumventing write monitoring of cache memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25165298A JP4179677B2 (ja) 1998-09-04 1998-09-04 マルチプロセッサ装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008141295A Division JP2008204488A (ja) 2008-05-29 2008-05-29 マルチプロセッサ装置

Publications (2)

Publication Number Publication Date
JP2000082049A true JP2000082049A (ja) 2000-03-21
JP4179677B2 JP4179677B2 (ja) 2008-11-12

Family

ID=17226014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25165298A Expired - Fee Related JP4179677B2 (ja) 1998-09-04 1998-09-04 マルチプロセッサ装置

Country Status (2)

Country Link
US (1) US6253290B1 (ja)
JP (1) JP4179677B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011161829A1 (ja) * 2010-06-25 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434672B1 (en) * 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
US6851024B1 (en) * 2000-08-17 2005-02-01 Hewlett-Packard Development Company, L.P. Exclusive caching in computer systems
JP4394298B2 (ja) * 2001-02-20 2010-01-06 日本電気株式会社 マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
GB2386441B (en) * 2002-03-12 2006-09-27 Advanced Risc Mach Ltd Bus interface selection by page table attributes
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
US7039765B1 (en) 2002-12-19 2006-05-02 Hewlett-Packard Development Company, L.P. Techniques for cache memory management using read and write operations
JP4100256B2 (ja) * 2003-05-29 2008-06-11 株式会社日立製作所 通信方法および情報処理装置
WO2005026964A2 (en) 2003-09-04 2005-03-24 Koninklijke Philips Electronics N.V. Data processing system
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
US20130159630A1 (en) * 2011-12-20 2013-06-20 Ati Technologies Ulc Selective cache for inter-operations in a processor-based environment
US10884924B2 (en) * 2015-03-04 2021-01-05 Hitachi, Ltd. Storage system and data writing control method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939641A (en) 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
JPH0222757A (ja) 1988-07-12 1990-01-25 Hitachi Ltd マルチプロセッサのメモリシステム
JPH04175946A (ja) 1990-11-09 1992-06-23 Hitachi Ltd マルチプロセッサ・データ処理システムおよびそれに用いられるキャッシュ装置
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
GB2318657B (en) * 1997-07-15 1998-09-02 Ncipher Corp Limited Microprocessor cache consistency

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011161829A1 (ja) * 2010-06-25 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US9098414B2 (en) 2010-06-25 2015-08-04 Fujitsu Limited Multi-core processor system, computer product, and control method

Also Published As

Publication number Publication date
JP4179677B2 (ja) 2008-11-12
US6253290B1 (en) 2001-06-26

Similar Documents

Publication Publication Date Title
US4928225A (en) Coherent cache structures and methods
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
JP3765586B2 (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
US5029070A (en) Coherent cache structures and methods
US6493773B1 (en) Data validity measure for efficient implementation of first-in-first-out memories for multi-processor systems
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US6895482B1 (en) Reordering and flushing commands in a computer memory subsystem
EP0260862A2 (en) Move-out queue buffer
US20040268044A1 (en) Multiprocessor system with dynamic cache coherency regions
EP0497600B1 (en) Memory access method and apparatus
EP0431467A1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
KR100344132B1 (ko) 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법
JP4179677B2 (ja) マルチプロセッサ装置
JPH0786870B2 (ja) コプロセツサのデータ転送制御方法およびその回路
US6101589A (en) High performance shared cache
US5615167A (en) Method for increasing system bandwidth through an on-chip address lock register
US6615296B2 (en) Efficient implementation of first-in-first-out memories for multi-processor systems
EP0436305A2 (en) System and method for efficiently supporting access to I/O devices through large direct-mapped data caches
US5594880A (en) System for executing a plurality of tasks within an instruction in different orders depending upon a conditional value
US20030105929A1 (en) Cache status data structure
US6098113A (en) Apparatus and method for address translation and allocation for a plurality of input/output (I/O) buses to a system bus
JPH08161227A (ja) 情報処理装置
JPH07248967A (ja) メモリ制御方式
JPH1173365A (ja) データ移動操作を最適化する方法
JP2008204488A (ja) マルチプロセッサ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070625

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080826

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

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: 20120905

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees