JPH0784971A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH0784971A
JPH0784971A JP5181945A JP18194593A JPH0784971A JP H0784971 A JPH0784971 A JP H0784971A JP 5181945 A JP5181945 A JP 5181945A JP 18194593 A JP18194593 A JP 18194593A JP H0784971 A JPH0784971 A JP H0784971A
Authority
JP
Japan
Prior art keywords
bus
block tag
memory
address
signal
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
JP5181945A
Other languages
English (en)
Inventor
Atsushi Date
厚 伊達
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP5181945A priority Critical patent/JPH0784971A/ja
Publication of JPH0784971A publication Critical patent/JPH0784971A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 各プロセッサにより実行される制御データが
共有メモリのどのアドレスに存在していてもキャッシュ
のヒット率の向上および共有要素の有効利用によるシス
テムの向上を図ることが可能なコンピュータシステムを
提供する。 【構成】 CPU12がアクセスを開始し、キャッシュ
ミスが起きると、キャッシュコントローラ14は、メモ
リコントローラ7に対して、ブロックタグメモリ8およ
びメインメモリ9に記憶されているブロックタグの付加
された制御データを全て検索する要求を出力する。メモ
リコントローラ7は、その検索要求に対して検索を行う
と共に、順にブロックタグの内容を検出し、その内容が
CPU12が処理する可能性の高い制御データである場
合には、キャッシュコントローラ14に対して、その制
御データをキャッシュメモリ13に書き込む書き込み要
求を出力し、その要求に応じて、その制御データが書き
込まれる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサおよ
びその各プロセッサに共有されるメモリ等の共有要素を
有する並列処理コンピュータシステムに関する。
【0002】
【従来の技術】従来、単一のプロセッサに集中されてい
た処理機能や制御機能等を複数のプロセッサに分割し、
分散・共同処理によって制御処理を行う並列処理システ
ムと称呼されるコンピュータシステムが知られている。
例えば、この従来の並列処理システムとして、複数のプ
ロセッサが共有バスを介して主記憶装置を共有し、複数
のプロセッサがその共有するメモリにアクセスすること
により制御処理を行うように構成されているものがあ
る。
【0003】この従来の並列処理システムにおいて、共
有メモリに対して複数のプロセッサのアクセスが競合す
る場合があり、このアクセスの競合をできるだけ低減さ
せることがシステム性能を向上させるためには必要不可
欠である。この課題を解決する手段として、複数のプロ
セッサの各々にキャッシュメモリを備え、各プロセッサ
が一度アクセスした共有メモリの制御データをキャッシ
ュメモリに保持し、各プロセッサが再度同一データをア
クセスする場合に、共有メモリに代えてキャッシュメモ
リからそのデータを読み出すことにより、共有メモリに
対するアクセス回数を低減させる方法が提案されてい
る。
【0004】さらに、キャッシュメモリのヒット率を向
上させるために、キャッシュミスのときに主記憶装置か
らキャッシュメモリに取り込む制御データのブロックサ
イズをプロセッサが一回の処理に必要なデータサイズよ
り大きく設定する方法も提案されている。この方法によ
れば、キャッシュミスを起こした制御データの次に処理
する制御データが、キャッシュミスを起こした制御デー
タの近傍、即ち、取り込んだブロック内に存在している
場合に、キャッシュミスの連続発生が回避され、プロセ
ッサは共有メモリに対するアクセス回数を低減させるこ
とができ、システムの向上を図ることが可能となる。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のコンピュータシステムにおいて、複数のプロセッサ
の各々に単にキャッシュメモリを備えただけの方法で
は、各プロセッサが同一の制御データを複数回アクセス
した場合には共有メモリへのアクセス回数の低減効果を
享受することができるが、一回のみのアクセスによるア
クセス競合には全く効果を奏しないという問題があっ
た。
【0006】また、キャッシュメモリに取り込む制御デ
ータのブロックサイズを大きくする方法では、一般に、
一回のキャッシュミスの処理によりキャッシュメモリに
取り込まれる制御データのブロックサイズは、プロセッ
サの1回の処理に必要なデータ量の16倍程度であり、
このブロックの転送が終了した後は、たとえバスの使用
率が低い状態が続いても、次のキャッシュミス処理まで
はデータ転送の要求がなされず、データ転送が行われな
い無駄な時間が生じていた。
【0007】さらに、このブロックサイズを大きくする
方法では、例えば、キャッシュミスを起こした制御デー
タの次にプロセッサが処理する制御データが、キャッシ
ュミスにより取得したブロック以外のアドレスに存在す
る制御データであるとき、即ち、プロセッサのアクセス
が離散したアドレスに存在する制御データに対して行わ
れる場合には、かえって通常のキャッシュメモリによる
制御方法の方がブロック転送を行う方法よりシステム性
能が良いときがあるという問題があった。
【0008】本発明は、上記問題に鑑みてなされたもの
で、各プロセッサにより実行される制御データが共有メ
モリのどのアドレスに存在していてもキャッシュのヒッ
ト率の向上および共有要素の有効利用によるシステムの
向上を図ることが可能なコンピュータシステムを提供す
ることを目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するため
本発明は、複数のプロセッサと、該各プロセッサに付随
して設けられたキャッシュメモリと、各プロセッサによ
り共有され、各プロセッサが実行する複数の制御データ
から成る制御情報を記憶する主記憶装置とを備えた並列
処理システムにおいて、前記制御データに付加情報を付
加する付加情報付加手段と、該付加情報付加手段により
付加情報が付加された制御データを前記主記憶装置に書
き込む書き込み手段と、前記付加情報付加手段により付
加された付加情報を検出する検出手段と、前記主記憶装
置に記憶された全ての付加情報を検索する検索手段と、
該検索手段により検索された全ての付加情報から前記検
出手段により所定の付加情報を検出し、該所定の付加情
報が付加された制御データを当該プロセッサに対応する
キャッシュメモリに書き込むキャッシュメモリ書き込み
手段とを有することを特徴とする。
【0010】具体的には、前記付加情報付加手段は、前
記付加情報としてブロックタグを付加するブロックタグ
付加手段であり、前記各プロセッサは、ブロックタグを
格納するためのブロックタグレジスタと、該ブロックタ
グレジスタに任意の値を書き込む書き込み命令と、前記
制御データに付加されたブロックタグを参照する参照命
令とを有し、前記ブロックタグ付加手段は、前記書き込
み命令であり、前記検索手段は、前記参照命令であるこ
とを特徴とする。
【0011】
【作用】本発明は上記構成により、付加情報付加手段に
より制御データに付加情報が付加され、書き込み手段に
より付加情報が付加された制御データが主記憶装置に記
憶され、プロセッサがその記憶された制御データに従っ
て処理を開始すると、検索手段により全ての付加情報が
検索され、検出手段により所定の付加情報が検出され、
キャッシュメモリ書き込み手段によりその所定の付加情
報が付加された制御データがキャッシュメモリの所定の
位置に書き込まれる。
【0012】具体的には、各プロセッサは、書き込み命
令により任意の値をブロックタグレジスタに書き込み、
その結果を制御情報とともに主記憶装置に記憶し、各プ
ロセッサがその記憶された制御情報に従って処理を開始
すると、参照命令により全てのブロックタグから所定の
ブロックタグが検索され、キャッシュメモリ書き込み手
段によりその所定のブロックタグが付加された制御デー
タがキャッシュメモリの所定のアドレスに書き込まれ
る。
【0013】
【実施例】以下、本発明の実施例を図面に基づき詳細に
説明する。
【0014】図1は、本発明に係るコンピュータシステ
ムの一実施例の概略構成を示すブロック図である。同図
において、本実施例のコンピュータシステムは、CPU
およびキャッシュメモリ等から成るプロセッサエレメン
ト1〜4と、プロセッサエレメント1〜4がシステムバ
ス5を同時にアクセスした場合に、バスの使用を調停す
るバスアービタ6と、詳細は後述するメモリコントロー
ラ7と、本発明の特徴を成すブロックタグを記憶するブ
ロックタグメモリ8と、プロセッサエレメント1〜4の
制御プログラムやデータ等を記憶するメインメモリ9
と、外部ディスク装置10と、外部ディスク装置10と
システムバス5との間のデータ転送を行う入出力コント
ローラ(以下、「I/Oコントローラ」という)11と
により構成されている。
【0015】プロセッサエレメント1〜4、バスアービ
タ5、メモリコントローラ7、ブロックタグメモリ8、
メインメモリ9、I/Oコントローラ11は、システム
バス5を介して、相互に接続されている。
【0016】ここで、プロセッサエレメント1は、CP
U12と、CPU12に付随するキャッシュメモリ13
と、キャッシュメモリ13を制御するキャッシュメモリ
コントローラ14と、プロセッサエレメント1の内部バ
ス15を制御するバスコントローラ16と、内部バス1
5とシステムバス5とのインターフェースをとるバスイ
ンタフェース17とにより構成されている。ここで、バ
スコントローラ16は、CPU12がアクセスするアド
レスを常にデコードして監視し、その結果システムバス
5へのアクセスが必要な場合には、バスアービタ6に対
してバスの獲得を要求し、バスが獲得されると、システ
ムバス5にデータを出力し、例えば、メインメモリ9等
の外部要素に対するアクセスを開始する。これは、一般
のバスコントローラの機能であり、公知である。
【0017】また、キャッシュメモリ13は、タグアド
レスを格納するタグアドレス部と、ブロックタグを格納
するブロックタグ部と、制御データを格納するデータ部
とから成り、例えば、SRAMにより構成される。
【0018】なお、プロセッサエレメント2〜4も、プ
ロセッサエレメント1と同様の構成を有し、本実施例の
コンピュータシステムは、4個のプロセッサエレメント
1〜4から成る4プロセッサ構成のマルチプロセッサシ
ステムを採用した。しかし、本発明は、プロセッサの数
が4個の場合に限定されるものではない。
【0019】図2は、図1のブロックタグメモリ8およ
びメインメモリ9に記憶されている内容の一例を示すメ
モリマップであり、左から順に、物理アドレス、ブロッ
クタグメモリ8の内容、メインメモリ9の内容を示して
いる。本実施例では、プロセッサエレメント1〜4のC
PUによりアドレスがアクセスされると、指定されたア
ドレスにおけるブロックタグメモリ8およびメインメモ
リ9の内容がともに出力されるような構成になってい
る。即ち、本実施例で扱うデータのデータ構造は、メイ
ンメモリ9に記憶されたデータ(内容)の各々に1個の
ブロックタグデータが付加されたデータ構造を採ってい
る。
【0020】さらに、本実施例では、ブロックタグメモ
リ8およびメインメモリ9はともに物理アドレスが0h
番地から000FFFFCh番地まで割り当てられてお
り、物理アドレスが4バイト毎に、ブロックタグメモリ
8は2バイトのデータ(ブロックタグ)を有し、メイン
メモリ9は4バイトのデータ(プログラム、テーブルデ
ータ等)を有している。ここで、hは、16進数である
ことを示している。
【0021】例えば、物理アドレスが0h番地のとき、
ブロックタグメモリ8のメモリ内容は“0000h”で
あり、メインメモリ9のメモリ内容も“0000000
0h”となっている。また、物理アドレスが4h番地の
とき、ブロックタグメモリ8およびメインメモリ9のメ
モリ内容は、それぞれ“0000h”,“00FF0F
00h”であり、物理アドレスが0Ah番地のとき、ブ
ロックタグメモリ8およびメインメモリ9のメモリ内容
は、それぞれ“0001h”,“9ABCDEF0h”
である。即ち、前述したように、メインメモリ9の各4
バイトデータに、2バイトのブロックタグが付加される
構成になっている。
【0022】以下、ブロックタグメモリ8およびメイン
メモリ9には、図2のメモリマップに示すデータが予め
格納されているものとして説明を継続する。
【0023】図3は、図1のプロセッサエレメント1の
詳細な構成を示すブロック図である。
【0024】前述したように、プロセッサエレメント1
は、CPU12と、キャッシュメモリ13と、キャッシ
ュメモリコントローラ14と、バスコントローラ16
と、バスインタフェース17とにより構成され、各要素
は、内部バス15により相互に接続されている。
【0025】内部バス15は、CPU12が実行する制
御データ等を伝送するデータバスB1と、ブロックタグ
の伝送を行うブロックタグバスB2と、アドレスバスB
3と、コントロールバスB4と、その他内部バスの調停
に使用されるコントロール信号から成るバスB5とによ
り構成されている。ここで、コントロールバスB4は、
アドレスバスB3に有効なアドレスが出力されているこ
とを示すアドレスストローブ信号(/AS)と、CPU
12のアクセスがメモリの読み出しサイクルであるか書
き込みサイクルであるかを示すリード/ライト信号(R
//W)と、CPU12に直前にアクセスしたアドレス
と同一のアドレスのアクセスを要求するリトライ信号
(/RETRY)と、アクセスが終了したことを示すタ
ーミネーション信号(/STERM)と、キャッシュメ
モリの読み込みが終了したことを示す確認信号(/AC
K)とにより構成される。また、バスB5は、内部バス
使用権要求信号/BRと、内部バス使用権許可信号/B
Gと、内部バス許可確認信号/BGACKとにより構成
される。
【0026】CPU12とバスインタフェース17と
は、データバスB1,ブロックタグバスB2,アドレス
バスB3,コントロールバスB4を介して相互に接続さ
れ、同様に、バスインタフェース17とシステムバス5
とは、この4種類のバスを介して相互に接続されてい
る。
【0027】キャッシュメモリ13は、32Kバイト容
量のダイレクトマッピング方式のライトスルーキャッシ
ュであり、そのアドレス入力には、アドレスバスB3の
A2〜A14のアドレスが供給され、そのアドレスタグ
部のデータ入力には、アドレスバスB3の上位2バイト
(A15〜A31)が供給される。さらに、キャッシュ
メモリ13のブロックタグ部およびデータ部のデータ入
力は、それぞれ、ブロックタグバスB2およびデータバ
スB1に接続される。即ち、キャッシュメモリ13から
は、アドレスバスB3のA2〜A14ビットにより指定
されたアドレスに応じて、アドレスタグ部、ブロックタ
グ部、データ部の内容が読み書きされる。
【0028】キャッシュメモリ13のアドレスタグ部の
データ出力は、コンパレータ18の一入力端子に供給さ
れ、コンパレータ18の他の入力端子には、前記アドレ
スバスB3の上位2バイトが供給される。コンパレータ
18は、その出力信号/HITをキャッシュメモリコン
トローラ14に供給し、入力されたアドレスタグ部のデ
ータ出力とアドレスバスB3の上位2バイトとを比較し
て、一致したとき、即ちキャッシュヒットしたときには
信号/HITをロウレベルにし、一致しなかったとき、
即ちキャッシュミスしたときには信号/HITをハイレ
ベルにして、キャッシュメモリコントローラ14にキャ
ッシュヒットがあったか否かを伝達する。
【0029】キャッシュメモリコントローラ14は、コ
ントロールバスB4を介して、CPU12およびバスイ
ンタフェース17と各種制御情報の送受信を行い、前記
信号/HITおよび各種制御情報に基づいて、キャッシ
ュメモリ13に対してメモリの書き込み要求信号/CR
AMWを出力する。
【0030】バスコントローラ16は、アドレスバスB
3に接続され、また、前記バスB5を介してCPU12
に接続されている。また、バスコントローラ16は、図
1のメモリコントローラ7により出力され、キャッシュ
メモリ13に対して書き込み要求を行うためのキャッシ
ュライト信号/CWR1を伝送する信号線および図1の
システムバスアービタ6に対してシステムバス5を開放
する要求・確認を行うための3種類の信号R,G,BB
を伝送する信号線を介して、システムバス5に接続さ
れ、バスB1〜B4の開放を行う制御信号BCNTを伝
送する信号線を介して、バスインタフェース17に接続
され、キャッシュメモリ13に対する書き込み要求を行
う信号/MEMWRを伝送する信号線を介して、キャッ
シュメモリコントローラ14に接続されている。
【0031】ここで、バスB5は、前記3種類の信号/
BR,/BG,/BGACKから成り、これと同様に、
前記信号R,G,BBは、それぞれシステムバス5に対
するバス使用権要求信号、バス使用権許可信号、バス許
可確認信号を示す。この3種類の信号/BR,/BG,
/BGACKおよび信号R,G,BBを使用して、CP
U12およびバスコントローラ16は周知の3線ハンド
シェイク制御によりデータ伝送を行う。
【0032】バスコントローラ16は、CPU12が出
力するアクセスアドレスを常時デコードして監視し、そ
の結果システムバス5へのアクセスが必要な場合には、
信号Rによりシステムバスアービタ6に対してバス使用
権要求を出力する。その後、信号Gによりシステムバス
5の獲得が報告されると、バスコントローラ16は、シ
ステムバス5に信号BBを出力するとともに、バスイン
タフェース17に信号BCNTを出力し、プロセッサエ
レメント1の内部バスB1〜B4のシステムバス5への
接続を行う。これにより、外部の要素へのアクセスが可
能になる。さらに、バスコントローラ16は、メモリコ
ントローラ7により出力されるキャッシュライト要求信
号/CWR1に基づいて、CPU12にプロセッサエレ
メント1の内部バスB1〜B4の開放を要求し、バスが
獲得されるとキャッシュメモリコントローラ14にキャ
ッシュメモリ13に対する書き込み要求を行う機能が付
加されている。
【0033】図4は、図3のCPU12の詳細な構成を
示すブロック図である。
【0034】なお、同図は、プロセッサエレメント1の
CPU12の詳細な構成を示しているが、他のプロセッ
サエレメント2〜4のCPUも同一構成を成す。
【0035】CPU12は、命令実行部21と、マルチ
プレクサ(MUX)22と、内蔵メモリ管理ユニット
(MMU)23と、ブロックタグの読み書きを行うブロ
ックタグレジスタ24と、前記プロセッサエレメント1
の内部バスB1〜B5とCPU12の内部バスとのイン
ターフェースを取るためのバスインターフェース25と
により主として構成されている。
【0036】ここで、命令実行部21は、例えば、命令
フェッチ部(IF)、デコード部(DECODE)、オ
ペランドフェッチ部(OF)、実行部(EXEC)、ラ
イトバック部(WB)から成り、一般のCPUが実行す
る制御方法により制御を行う。なお、CPU12を構成
する要素の内、ブロックタグレジスタ24以外の要素
は、一般のCPUに備わっているものであり、各要素は
内部バスにより相互に接続されている。
【0037】CPU12は、BLKL命令により、ブロ
ックタグレジスタ24に任意のブロックタグを書き込む
ことができ、図1のブロックタグメモリ8にそのブロッ
クタグを書き込む場合には、そのブロックタグをブロッ
クタグバスB2に出力する。また、CPU12は、BL
KR命令により、ブロックタグメモリ8に記憶された任
意のアドレスのブロックタグをCPU12の内部の汎用
レジスタ(図示せず)に読み込むことができる。この読
み込み方法は、まず、所望のアドレスを指定してブロッ
クタグメモリ8の内容を読み出す。このとき、実際に
は、メインメモリ9に対する記憶内容の読み出しが行わ
れ、その記憶内容に付随して、同一アドレスに記憶され
ているブロックタグメモリ8のブロックタグが読み出さ
れる。該ブロックタグは、システムバス5内のブロック
タグバスに出力された後、プロセッサエレメント1内の
ブロックタグバスB2に伝送される。次に、CPU12
は、そのブロックタグバスB2の内容をブロックタグレ
ジスタ24に読み込み、続いて内部のデータ転送により
汎用レジスタに転送する。
【0038】なお、後述するように、本実施例ではブロ
ックタグレジスタ24の機能は使用せず、ブロックタグ
を生成する場合には、外付けのCPU(図示せず)を使
用し、また、ブロックタグを検出または検索する場合に
は、メモリコントローラ7を使用しているが、云うまで
もなく、ブロックタグの生成または検出・検索をCPU
12を使用して行うこともできる。
【0039】図5は、図3のキャッシュメモリコントロ
ーラの詳細な構成を示すブロック図である。
【0040】キャッシュメモリコントローラ14は、図
3で説明した4種類の入力制御信号(/MEMWR,/
AS,/HIT,R//W)により、制御信号/RET
RY,READHIT(/STERM),WRITEH
IT,MEMWRITE(/ACK)を生成するための
ORゲート31〜34と、ORゲート31の出力信号/
RETRYを信号/ASにより同期を取って出力するた
めのDフリッププロップ35と、該Dフリッププロップ
35と信号/ASとの論理和を採ることにより信号RE
PLACEを生成するためのORゲート36と、該信号
REPLACE,前記信号WRITEHIT,MEMW
RITEの論理積を採ることにより信号/CRAMWを
生成するためのANDゲート37とにより構成される。
【0041】以上のように構成されたプロセッサエレメ
ント1の動作を、図2および図3を参照して説明する。
【0042】図3において、CPU12が任意のアドレ
ス、例えば、図2の000FFFF4h番地のアドレス
をアクセスすると、そのA2〜A14のビットのアドレ
ス、即ち、“3FFDh”によって指定されるキャッシ
ュメモリ13のアドレスタグ部の内容がコンパレータ1
8に入力され、コンパレータ18のもう一方の入力であ
る上位ビット(A15〜A31)、即ち、“000F
h”と比較される。その結果、一致した場合には信号/
HITがロウレベルとなり、キャッシュメモリ13に記
憶されたブロックタグ部およびデータ部の内容がそれぞ
れバスB2,B3に出力される。
【0043】一方、一致しない場合には信号/HITが
ハイレベルとなり、キャッシュメモリコントローラ14
に、CPU12の再アクセスを要求し、続いて、CPU
12は、再度、同一アドレスに対するアクセスを実行す
る。このアクセスによって、信号/CRAMWがロウレ
ベルになり、ブロックタグメモリ8およびメインメモリ
9から読み出された結果がキャッシュメモリ13のブロ
ックタグ部およびデータ部に書き込まれ、そのアドレス
の上位ビットである“000Fh”がキャッシュメモリ
13のアドレスタグ部に書き込まれる。以上の動作は、
キャッシュメモリの一般の動作であり、公知である。
【0044】更に、本発明におけるキャッシュメモリコ
ントローラ14には、バスコントローラ16からメモリ
書き込み要求信号/MEMWRが入力され、後述するよ
うに、メモリコントローラ7からプロセッサエレメント
1のキャッシュメモリ13に対する書き込み要求(信号
/CWR1)がなされた場合に、バスコントローラ16
によりその要求が処理される。即ち、バスコントローラ
16は、CPU12に対して内部バスB1〜B4の獲得
要求を行い、バスの獲得が終了すると、前記信号BCN
Tを介してバスインタフェース17を開きシステムバス
5内のデータ、アドレス、ブロックタグ、コントロール
の各信号を内部バスに反映し、信号/MEMWRをロウ
レベルにする。キャッシュメモリコントローラ14は、
信号/MEMWRがロウレベル且つ信号/ASがロウレ
ベルになると、信号/CRAMWをロウレベルにしてキ
ャッシュメモリ13にバス上のブロックタグおよびデー
タを書き込み、同時に信号/ACKを返し、メモリコン
トローラ7に書き込み要求の終了を知らせる。
【0045】以上の動作により、メモリコントローラ7
から書き込み要求がなされた場合に、システムバス5に
存在するデータが所望のキャッシュメモリに書き込まれ
る。
【0046】図6は、図1のメモリコントローラ7の詳
細な構成を示すブロック図である。
【0047】メモリコントローラ7は、プロセッサエレ
メント1〜4の各CPUがメインメモリ9に対して行う
読み出し要求を監視し、読み出し要求がなされると、そ
のアドレス、ブロックタグ、要求を行ったCPU番号等
を保持するスヌーパラッチ回路41と、詳細は後述する
ダイナミックアロケーションコントローラ42と、該ダ
イナミックアロケーションコントローラ42によるシス
テムバス5の獲得要求に対してその獲得を行うバスコン
トローラ43と、ダイナミックアロケーションコントロ
ーラ42によって制御され、ブロックタグメモリ8およ
びメインメモリ9のバスをダイナミックアロケーション
コントローラ42またはシステムバス5の何れか一方若
しくは両方に接続するバスインタフェース44,45
と、ダイナミックラム(DRAM)のアドレスの生成お
よびリフレッシュ等を行うDRAMコントローラ46と
により構成されている。さらに、DRAMコントローラ
46には、ダイナミックアロケーションコントローラ4
2により信号/READが出力されると、ブロックタグ
メモリ8およびメインメモリ9を強制的にリード状態に
する機能も付加されている。
【0048】図7は、図6のスヌーパラッチ回路41の
詳細な構成を示すブロック図である。
【0049】スヌーパラッチ回路41は、システムバス
5内のアドレスバスに接続されてアドレス内容をデコー
ドするデコード回路51と、同様にアドレスバスに接続
されてアドレス内容をラッチするアドレスラッチ回路5
2と、システムバス5内のブロックタグデータバスに接
続されてブロックタグをラッチするブロックタグラッチ
回路53と、前記読み出し要求を行ったCPU番号をラ
ッチするCPUIDラッチ回路54とにより主として構
成されている。
【0050】デコード回路51は、アドレスバスのアド
レスを常に監視し、アドレスがバスに出力されていると
きに、ロウレベルを出力する。デコード回路51の出力
は、4入力ORゲート55の一入力端子に接続され、他
の3入力端子には、システムバス5内のコントロールバ
スにより伝送される前記信号R//Wがインバータ56
によって反転された反転信号と、前記信号/ASと、R
Sフリップフロップ57の出力Qがインバータ58によ
り反転された反転信号とが供給され、ORゲート55の
出力は、RSフリップフロップ57の入力Rに供給さ
れ、RSフリップフロップ57の入力Sには、図5のダ
イナミックアロケーションコントローラ42の出力/R
ESETが供給される。
【0051】RSフリップフロップ57の出力Qは、前
記アドレスラッチ回路52およびCPUIDラッチ回路
54のクロック入力として使用されるとともに、システ
ムバス5内のコントロールバスの前記信号/ACKを検
出するためのアクノリッジ信号検出回路59を介して、
ブロックタグラッチ回路53のクロック入力として使用
され、さらに、後述するダイナミックアロケーションコ
ントローラ42を構成するシーケンサの状態を遷移させ
るための信号/STARTとしてダイナミックアロケー
ションコントローラ42に供給される。
【0052】アドレスラッチ回路52はラッチアドレス
をダイナミックアロケーションコントローラ42に出力
し、同様に、ブロックタグラッチ回路53およびCPU
IDラッチ回路54は、それぞれラッチブロックタグお
よびラッチCPUIDをダイナミックアロケーションコ
ントローラ42に出力する。
【0053】しかして、前記プロセッサエレメント1〜
4の内、何れかのCPUがメインメモリ9に対して読み
出し要求を行うと、信号R//Wがハイレベルとなるた
め、ORゲート55の出力はロウレベルになり、RSフ
リップフロップ57の出力Qはハイレベルになる。これ
に依って、前記CPUが読み出し要求を行ったアドレス
がアドレスラッチ回路52にラッチされ、そのCPU番
号CPUIDがCPUIDラッチ回路54にラッチされ
る。さらに、読み出し要求によりメインメモリ9の内容
が読み出され、これと同時に、同一アドレスのブロック
タグメモリ8のブロックタグが読み出されると、該ブロ
ックタグがアクノリッジ信号(ACK)検出回路58の
出力に同期してブロックタグラッチ回路53にラッチさ
れる。なお、一度、各ラッチ回路にラッチされたデータ
は、前記信号/RESETが入力されるまで変化せずに
保持される。
【0054】図8は、図6のダイナミックアロケーショ
ンコントローラ42の詳細な構成を示すブロック図であ
る。
【0055】ダイナミックアロケーションコントローラ
42は、例えばシーケンサ構成用PALにより構成され
たシーケンサ61と、スヌーパラッチ回路41から出力
されるラッチアドレスをロードし、該アドレスのカウン
トアップを行うアドレスカウンタ62と、2個のコンパ
レータ63,64とにより主として構成されている。
【0056】シーケンサ61には、前記スヌーパラッチ
回路41から前記信号/STARTが入力され、前記バ
スコントローラ43からバス使用権許可信号GRANT
が入力され、前記バスインタフェース44を介して、シ
ステムバス5内のコントロールバスの信号/ACK,/
ASが入力される。また、シーケンサ61は、前記信号
/RESETをスヌーパラッチ回路41に出力し、バス
使用権要求信号REQUESTをバスコントローラ43
に出力し、バスの接続制御を行う制御信号BUSCON
T1,BUSCONT2をそれぞれバスインタフェース
44,45に出力し、前記信号/READをDRAMコ
ントローラ46に出力する。さらに、シーケンサ61
は、前記ラッチアドレスをロードするための信号LOA
Dおよび前記カウントアップを行うためのカウントクロ
ック(COUNT CLOCK)をアドレスカウンタ6
2に出力し、書き込み要求信号/CWR1〜4を制御す
るための信号/WRITEをORゲート65〜68の一
入力端子に出力する。
【0057】ORゲート65〜68の他の入力端子に
は、それぞれ前記ラッチされたCPU番号CPUID
(/CPU1〜4)が入力され、ORゲート65〜68
は、入力信号/WRITE,CPUIDに応じて、プロ
セッサエレメント1〜4の何れかのCPUに対して、そ
の付随するキャッシュメモリにブロックタグメモリ8お
よびメインメモリ9から読み出された内容を書き込むた
めの書き込み要求信号(/CWR1〜4)を出力する。
【0058】前記アドレスカウンタ62は、カウントし
たアドレスをバスインタフェース45に出力するととも
に、コンパレータ64の一入力端子に出力し、コンパレ
ータ64は、そのアドレス値と他の入力端子に入力され
たENDアドレス出力回路69の出力値とを比較し、そ
の比較結果を信号/ENDとしてシーケンサ61に出力
する。本実施例では、ENDアドレス回路69は、メイ
ンメモリ9の最終アドレス、即ち、“000FFFFC
h”に設定されている。
【0059】また、コンパレータ63は、その2つの入
力端子に入力された前記スヌーパラッチ回路41からの
ラッチブロックタグとバスインタフェース44により供
給されたシステムバス5内のブロックタグバスの信号B
LOCKTAGとを比較し、その比較結果を信号/MA
TBLKとしてシーケンサ61に出力する。
【0060】次に、以上のように構成されたコンピュー
タシステムの処理動作を説明する。
【0061】本発明に係るコンピュータシステムは、例
えば、UNIX等のマルチタスク処理可能なオペレーテ
ィングシステムが実装され、各プロセス単位または各モ
ジュール単位で複数のプロセッサに処理を分担する並列
処理システムを想定しているが、もちろん、本発明はこ
のシステム構成に制限されるものではない。
【0062】まず、本実施例のコンピュータシステム上
で動作するプログラムの作成方法等について説明する。
【0063】プログラマは、同一のプロセッサ(本実施
例では、プロセッサエレメント1〜4)で実行する可能
性の高い一連のプログラムに対して同一のブロックタグ
を設定するようにアセンブラに対する宣言を行う。な
お、高級言語のコンパイラの場合には、このブロックタ
グ番号の宣言は自動的に行うことも可能である。本実施
例において使用するアセンブラは、例えば、図4で説明
したようなCPUにより機械語を生成するもので、その
動作時にブロックタグを付加する宣言を検出すると、前
記BLKL命令により、その宣言されたブロックタグを
前記ブロックタグレジスタに書き込み、該書き込まれた
ブロックタグを実行モジュールである生成された機械語
コードに付加して、不図示のワーキングメモリまたはフ
ァイル等に書き込むような制御を行う。
【0064】また、プログラマは、既にメインメモリ9
に記憶された制御データを書き換える場合に、前記BL
KR命令により、該制御データに付加されたブロックタ
グを読み出して、新たに生成される制御データに該ブロ
ックタグを付加するようにプログラムすることも可能で
ある。
【0065】以上のようにして、ブロックタグの付加さ
れたプログラムやテーブルデータ等(制御データ)が生
成され、該制御データは、図1のI/Oコントローラ1
1を介して、外部ディスク装置10に格納される。この
とき、I/Oコントローラ11はブロックタグを制御デ
ータ(プログラム、テーブルデータ等)の一部として扱
うことにより外部ディスク装置10に格納し、一方、外
部ディスク装置10からブロックタグの付加された制御
データを読み出すときには、ブロックタグをシステムバ
ス5のブロックタグバスに出力し、制御データをシステ
ムバス5のデータバスに出力する。これにより、ブロッ
クタグおよび制御データは、それぞれブロックタグメモ
リ8およびメインメモリ9に格納される。
【0066】本実施例では、以上の処理をI/Oコント
ローラ11に独立した不図示のプロセッサを使用して行
っているが、これに限らず、例えば前記CPU12を使
用して行うようにしてもよい。
【0067】次に、実際に、本実施例のコンピュータシ
ステムが、以上のようにして生成されたプログラム(制
御データ)を実行するときの処理動作を図9を参照して
説明する。
【0068】図9は、図8のシーケンサ61の状態の遷
移を示す状態遷移図である。
【0069】まず、プロセッサエレメント1〜4内の何
れかのCPUが、I/Oコントローラ11に対して、外
部ディスク装置10に格納されているファイル(プログ
ラム)のロードを要求する。この要求に対して、前述し
たように、I/Oコントローラ11は、外部ディスク装
置10から所望のファイルを検索し、そのファイルから
ブロックタグとデータとを分離して、ブロックタグバス
およびデータバスを介して、それぞれブロックタグメモ
リ8およびメインメモリ9の指定アドレスに書き込みを
行う。ファイルの全てのデータの書き込みが終了するす
ると、I/Oコントローラ11は、プロセッサエレメン
ト1〜4の全てのCPUに対して割り込みを発生させ
る。この書き込み終了の割り込みにより、各CPUは各
プロセッサエレメント1〜4内のキャッシュメモリの内
容を全て初期化する。
【0070】次に、プロセッサエレメント1〜4の何れ
かのCPUが、メインメモリ9に格納されたプログラム
に従って処理動作を開始する。例えば、プロセッサエレ
メント1のCPU12が、処理動作を開始したものとし
て説明を続ける。
【0071】CPU12は、メインメモリ9に格納され
たプログラムのスタートアドレスから命令コードのフェ
ッチを開始する。説明の都合上、スタートアドレスは物
理アドレスの0番地であるとし、最初にCPU12は0
番地の命令コードをフェッチするものとする。
【0072】以上説明したようなCPU12が処理を開
始するまでの一連の処理は、一般にオペレーティングシ
ステムにより行われるため、その詳細な説明は省略し、
以下、オペレーティングシステムの処理がある程度進行
して、ユーザープログラムのローディングが行われ、プ
ロセッサエレメント1〜4内の各キャッシュメモリが初
期化された状態から説明を行う。
【0073】なお、云うまでもなく、本発明は、オペレ
ーティングシステムのシステムプログラムに適用するこ
とも可能である。
【0074】CPU12はアドレス0番地に対してリー
ド動作を行う。キャッシュメモリ13はすでに初期化さ
れているので、このアクセス(リード動作)に対してコ
ンパレータ18によりヒット信号/HITは出力(ロウ
レベル)されず、図5のキャッシュメモリコントローラ
14によってキャッシュミスと判断され、信号/RET
RYがロウレベルとなりCPU12に対してアクセスの
再実行が要求される。CPU12は信号/RETRYに
よってアクセスがターミネートされると前回のアクセス
と同一のアドレスに対するアクセスを再度行う。即ち、
再度0番地に対するアクセスを行う。
【0075】2度目のアクセス時には信号REPLAC
Eがロウレベルとなりキャッシュメモリに対して書き込
みを行うための信号/CRAMWが出力(ロウレベル)
される。このとき、キャッシュメモリコントローラ14
からは信号/RETRY,/STERMのターミネーシ
ョン信号がCPU12に対して出力されないので、アク
セスが継続される。バスコントローラ15はCPU12
より出力されたアドレスをデコードし、外部バス(シス
テムバス5)に対するアクセスが必要な場合はバスアー
ビタ6に対しバス使用要求Rを出力する。
【0076】前述したようにバスアービタ6ではバスの
使用要求の調停を行う。その結果使用許可が与えられる
と、バスコントローラ6はバス使用信号BBを出力しバ
スの使用を開始する。その結果メインメモリの0番地に
対するリード要求がシステムバス5に出力される。この
時点で図8のダイナミックアロケーションコントローラ
42のシーケンサ61は図9の状態遷移図のステート0
の状態にある。
【0077】このとき、図6のバスインターフェース4
4は信号BUSCONT1によってメモリアクセス可能
状態となる。また、このとき、バスインターフェース4
5はカットオフとなる。したがって、システムバス5上
の0番地に対するリード要求はDRAMコントローラ4
6を介してメインメモリ9に伝送される。その結果、ブ
ロックタグメモリ8から0番地に格納されているブロッ
クタグ“0000h”がシステムバス5上に出力され、
メインメモリ9よりデータ“00000000h”がシ
ステムバス5上に出力される。
【0078】CPU12はこのシステムバス5の内容を
CPU内に取り込み、処理を続けると同時にキャッシュ
メモリ13にもこの内容を格納する。これと同時にスヌ
ーパラッチ回路41によってこのリード処理が検出され
る。この検出は以下のようにして行われる。まず、図7
のデコード回路51でメインメモリ9に対するアクセス
であることを検出し、コントロールバス中の信号R//
Wと信号/ASとによりそれが正当なリード処理である
ことを判断する。その結果ORゲート55の出力がロウ
レベルとなりRSフリップフロップ57の出力はロウレ
ベルとなり、リード動作の検出が終了する。
【0079】リード動作が検出されると、アドレスラッ
チ回路52にその時のアドレスが、CPUIDラッチ回
路54にその要求を行ったCPUIDが格納される。今
はそれぞれ0番地とCPU12の番号が格納されてい
る。さらにメインメモリ9よりデータが出力され、ブロ
ックタグメモリ8よりブロックタグが出力されると、ア
クノリッジ信号検出回路59によってアクノリッッジ信
号/ACKが検出され、この時のブロックタグの内容
“0000h”がブロックタグラッチ回路53に格納さ
れる。
【0080】これらのラッチ回路54,52,53の出
力はそれぞれ信号/CPU1〜4、ラッチアドレス、ラ
ッチブロックタグの各信号としてダイナミックアロケー
ションコントローラ42に出力される。さらにRSフリ
ップフロップ57の出力は信号/STARTとしてシー
ケンサ61に出力される。
【0081】シーケンサ61はこの信号/STARTに
よりステート1に進む。ステート1ではシーケンサ61
はスヌーパラッチ回路41から入力されたラッチアドレ
スをアドレスカウンター62にロードし、信号/ASを
監視する。
【0082】信号/ASがハイレベルになる(転送が終
了する)と、ステート2に進む。
【0083】ステート2では、信号BUSCONT1に
よりバスインタフェース44をカットオフの状態とす
る。そして、ステート3に進む。
【0084】ステート3では、アドレスカウンタ62を
4つカウントアップしバスインタフェース45を開きア
ドレスカウンタ62の出力をアドレスとして、ブロック
タグメモリ8のブロックタグの内容を読みだす。その後
ステート4に進む。
【0085】ステート4では、前述したように、END
アドレス出力回路69に予め設定されたENDアドレス
の値“000FFFFCh”と現在のアドレスカウンタ
62のカウント値とを比較するコンパレータ64の出力
を参照し最終アドレスに到達していれば、ステート10
へ進み、信号/RESETをロウレベルにする。その結
果スヌーパラッチ回路41のRSフリップフロップ57
がセットされ再びバスのスヌープ状態となる。その後ス
テート0へ戻り処理を終了する。今は最終アドレスには
到達していないのでステート5へ進む。このとき、カウ
ンターの出力は“4h”になっているので、これをアド
レスとして読みだしたブロックタグの内容は“0h”に
なっている。
【0086】ステート5ではシーケンサ61は、ブロッ
クタグメモリ8より入力されたブロックタグの内容と以
前にブロックタグ回路53によりラッチされたラッチブ
ロックタグの内容とを比較するコンパレータ63の比較
結果を参照し、その結果一致しない場合は信号/MAT
BLKがハイレベルとなっているのでステート3へ戻
る。その後アドレスカウンターを4づつ増加させながら
同様の処理を最終アドレスまで継続する。今はブロック
タグの内容とラッチブロックタグの内容とが共に“0
h”で一致するのでステート6へと処理は進む。
【0087】ステート6ではバスアービタ6に対してシ
ステムバス5のバス使用の要求を行う。その後バスアー
ビタ6より使用許可が出るとステート7に進む。
【0088】ステート7では現在ラッチされているリー
ド要求を発行したプロセッサエレメント1に対してキャ
ッシュメモリ13への書き込み動作を行う。この書き込
み動作は以下のようにして処理を行う。シーケンサ61
より信号/WRITEを出力(ロウレベル)すると、C
PUIDラッチ回路54にラッチされているCPUID
(信号/CPU1,/CPU2,/CPU3,/CPU
4)に基づいてORゲート65〜68のいずれかのOR
回路の出力がロウレベルとなる。本実施例ではORゲー
ト65の出力である信号/CWR1がロウレベルとな
る。同時に信号R//Wをハイレベルにし、バスインタ
ーフェース44,45を開く。その結果システムバス5
上にアドレスカウンター62からの出力がアドレスとし
て出力され、ブロックタグメモリ8およびメインメモリ
9の内容がブロックタグおよびデータとして出力され
る。その後ステート8へ進む。
【0089】ステート8では信号/ASをロウレベルに
した後、書き込みを行うキャッシュメモリ13からのア
クノリッジ信号/ACKを待つ。
【0090】この時点でプロセッサエレメント1には、
バスコントローラ15に信号/CWR1が入力され、そ
の結果バスコントローラ15はCPU12に対して内部
バスの開放を要求する。CPU12より内部バスの開放
が行われたことが通知されると、バスコントローラ15
はバスインタフェース17を開き、外部システムバス5
上の信号を内部バスに反映させる。さらに、キャッシュ
メモリコントローラ14に対して信号/MEMWRをロ
ウレベルとし出力する。これにより図5のキャッシュメ
モリコントローラ14では信号MEMWRITEがロウ
レベルとなって信号/CRAMWがロウレベルとなる。
したがって、キャッシュメモリ13にブロックタグメモ
リ8およびメインメモリ9から読み出されたブロックタ
グ、データ、アドレスの上位ビット(A15からA3
1)が書き込まれ、同時に信号/ACKがシステムバス
5上に出力される。信号/ACKが検出されるとステー
トは9に進む。
【0091】ステート9では信号/ASをハイレベルに
戻し、ステート2に戻る。
【0092】以下、上述した動作と同様の動作を終了ア
ドレスまで行う。
【0093】以上のように制御が行われ、メインメモリ
9の同一のブロックタグを持つインストラクションコー
ド及びデータが同一のキャッシュメモリに順次書き込ま
れていく。この制御動作がCPU12以外のCPUから
のアクセスにも同様に行われ、その結果各プロセッサエ
レメント内のキャッシュメモリ4に、その時点でその後
の処理においてキャッシュヒットする確率の高いインス
トラクションコード及びデータが効果的に書き込まれ、
共有バスの効率的利用及びキャッシュのヒット率の向上
が得られる。
【0094】本実施例ではアドレス“4h”,“8
h”,“000FFFF4h”などの内容がCPU12
に付随するキャッシュメモリに書き込まれる。
【0095】次に、本発明に係るコンピュータシステム
の他の実施例について説明する。
【0096】本実施例の構成は、ダイナミックアロケー
ションコントローラ以外は、第1実施例と同様であるた
め、第1実施例と同一の要素には同一符号を付し、その
詳細な説明は省略する。
【0097】図10は、本実施例のダイナミックアロケ
ーションコントローラの詳細な構成を示すブロック図で
ある。
【0098】本実施例のダイナミックアロケーションコ
ントローラが、第1実施例のダイナミックアロケーショ
ンコントローラに対して異なる点は、第1実施例のダイ
ナミックアロケーションコントローラ42に、キャッシ
ュメモリ13にブロックタグを書き込む際にブロックタ
グを検索する度にカウントアップするカウンタ71と、
予め所定のカウント値を設定でき、その値を出力するカ
ウント値出力回路72とを付加した点である。したがっ
て、第1実施例のダイナミックアロケーションコントロ
ーラ42と同一要素には同一符号を付して、その詳細な
説明は省略する。
【0099】カウンタ71の出力はコンパレータ64の
一入力端子に接続され、コンパレータ64の他の入力端
子には、カウント値出力回路の出力が接続されている。
他の要素の接続関係は第1実施例と同様である。
【0100】図11は、本実施例のシーケンサの状態の
遷移を示す状態遷移図であり、以下、同図を参照して本
実施例のコンピュータシステムの処理動作を説明する。
【0101】CPU12による0番地へのアクセスが始
まるまでの動作は実施例と同一である。メインメモリ9
の0番地に対するリード要求がCPU12よりシステム
バス5に出力されると、図10のダイナミックアロケー
ションコントローラのシーケンサ61は図11のステー
ト0の状態にある。
【0102】第1実施例と同様にシーケンサ61の状態
がステート1に進むと、第1実施例で説明した処理に加
えカウンタ71リセットを行う。その後、ステート3ま
での動作は第7実施例と同様である。
【0103】ステート3ではアドレスカウンタ62を4
つカウントアップし、図6のバスインタフェース45を
開きカウンタ62の出力をアドレスとして、ブロックタ
グメモリ8のブロックタグの内容を読み出す。さらにカ
ウンタ71のカウント値を1増加する。その後、ステー
ト4に進む。ステート4ではカウント値出力回路72に
予め設定されたカウント数(例えば、本実施例では10
000回に設定されている)とカウンタ71の値とを比
較するコンパレータ64の出力信号/ENDを参照す
る。その結果、設定されたカウント数に到達していれば
ステート0へ戻り処理を終了する。今は終了カウント数
(設定値)に到達していないのでステート5へ進む。ま
た、今、カウンタ62の出力は“4h”になっているの
で、これをアドレスとして読みだしたブロックタグの内
容は“0h”になっている。
【0104】ステート5ではブロックタグメモリ8より
入力されたブロックタグの内容と前に図7のブロックタ
グラッチ回路によりラッチされたラッチブロックタグの
内容を比較するコンパレータ63の比較結果を参照す
る。その結果、一致しない場合は信号/MATBLKが
ハイレベルとなるのでステート3へもどり、その後アド
レスカウンタ62を4づつ増加させながら同様の処理を
最終アドレス(設定値)まで継続する。今はブロックタ
グおよび出力ラッチブロックタグが共に“0h”となっ
て一致するのでステート6へと処理は進む。
【0105】その後の処理は第1実施例と同様であるの
で、その説明は省略する。
【0106】以上のようにして、本実施例では、大規模
のメモリ容量を有するシステムである場合に、必要以上
にブロック検索を継続することがなくなる。
【0107】
【発明の効果】以上説明したように、本発明によれば、
複数のプロセッサと、該各プロセッサに付随して設けら
れたキャッシュメモリと、各プロセッサにより共有さ
れ、各プロセッサが実行する複数の制御データから成る
制御情報を記憶する主記憶装置とを備えた並列処理シス
テムにおいて、前記制御データに付加情報を付加する付
加情報付加手段と、該付加情報付加手段により付加情報
が付加された制御データを前記主記憶装置に書き込む書
き込み手段と、前記付加情報付加手段により付加された
付加情報を検出する検出手段と、前記主記憶装置に記憶
された全ての付加情報を検索する検索手段と、該検索手
段により検索された全ての付加情報から前記検出手段に
より所定の付加情報を検出し、該所定の付加情報が付加
された制御データを当該プロセッサに対応するキャッシ
ュメモリに書き込むキャッシュメモリ書き込み手段とを
有するので、各プロセッサのアクセスアドレスが離散し
ていてもキャッシュのヒット率が向上し、また、一度の
キャッシュミスから次のキャッシュミスまでのバスの未
使用時間を利用してヒット率の高い制御データをキャッ
シュメモリに転送することができ、共有資源の有効利用
を図ることが可能となる効果を奏する。特に、制御デー
タの内、テーブルデータ等のデータに関しては大きなヒ
ット率を得ることができる。
【0108】また、具体的には、前記付加情報付加手段
は、前記付加情報としてブロックタグを付加するブロッ
クタグ付加手段であり、前記各プロセッサは、ブロック
タグを格納するためのブロックタグレジスタと、該ブロ
ックタグレジスタに任意の値を書き込む書き込み命令
と、前記制御データに付加されたブロックタグを参照す
る参照命令とを有し、前記ブロックタグ付加手段は、前
記書き込み命令であり、前記検索手段は、前記参照命令
であるので、ブロックタグの生成および検索用に本シス
テムとは別のプロセッサを使用することなく、本システ
ムを構成するプロセッサによりブロックタグの生成およ
び検索を行うことができ、コストの低減を図ることがで
きる。
【図面の簡単な説明】
【図1】本発明に係るコンピュータシステムの一実施例
の概略構成を示すブロック図である。
【図2】図1のブロックタグメモリおよびメインメモリ
に記憶されている内容の一例を示すメモリマップであ
る。
【図3】図1の各プロセッサエレメントの詳細な構成を
示すブロック図である。
【図4】図3のCPUの詳細な構成を示すブロック図で
ある。
【図5】図3のキャッシュメモリコントローラの詳細な
構成を示すブロック図である。
【図6】図1のメモリコントローラの詳細な構成を示す
ブロック図である。
【図7】図6のスヌーパラッチ回路の詳細な構成を示す
ブロック図である。
【図8】図6のダイナミックアロケーションコントロー
ラの詳細な構成を示すブロック図である。
【図9】図8のシーケンサの状態の遷移を示す状態遷移
図である。
【図10】その他の実施例に係るコンピュータシステム
を構成するダイナミックアロケーションコントローラの
詳細な構成を示すブロック図である。
【図11】図10のシーケンサの状態の遷移を示す状態
遷移図である。
【符号の説明】
12 CPU(ブロックタグ付加手段) 14 キャッシュメモリコントローラ(キャッシュメモ
リ書き込み手段) 61 シーケンサ(検出手段、検索手段)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと、該各プロセッサに
    付随して設けられたキャッシュメモリと、各プロセッサ
    により共有され、各プロセッサが実行する複数の制御デ
    ータから成る制御情報を記憶する主記憶装置とを備えた
    並列処理システムにおいて、 前記制御データに付加情報を付加する付加情報付加手段
    と、該付加情報付加手段により付加情報が付加された制
    御データを前記主記憶装置に書き込む書き込み手段と、
    前記付加情報付加手段により付加された付加情報を検出
    する検出手段と、前記主記憶装置に記憶された全ての付
    加情報を検索する検索手段と、該検索手段により検索さ
    れた全ての付加情報から前記検出手段により所定の付加
    情報を検出し、該所定の付加情報が付加された制御デー
    タを当該プロセッサに対応するキャッシュメモリに書き
    込むキャッシュメモリ書き込み手段とを有することを特
    徴とするコンピュータシステム。
  2. 【請求項2】 前記付加情報付加手段は、前記付加情報
    としてブロックタグを付加するブロックタグ付加手段で
    あることを特徴とする請求項1記載のコンピュータシス
    テム。
  3. 【請求項3】 前記各プロセッサは、ブロックタグを格
    納するためのブロックタグレジスタと、該ブロックタグ
    レジスタに任意の値を書き込む書き込み命令と、前記制
    御データに付加されたブロックタグを参照する参照命令
    とを有し、 前記ブロックタグ付加手段は、前記書き込み命令であ
    り、前記検索手段は、前記参照命令であることを特徴と
    する請求項2記載のコンピュータシステム。
JP5181945A 1993-06-28 1993-06-28 コンピュータシステム Pending JPH0784971A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5181945A JPH0784971A (ja) 1993-06-28 1993-06-28 コンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5181945A JPH0784971A (ja) 1993-06-28 1993-06-28 コンピュータシステム

Publications (1)

Publication Number Publication Date
JPH0784971A true JPH0784971A (ja) 1995-03-31

Family

ID=16109633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5181945A Pending JPH0784971A (ja) 1993-06-28 1993-06-28 コンピュータシステム

Country Status (1)

Country Link
JP (1) JPH0784971A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334173B1 (en) 1997-11-17 2001-12-25 Hyundai Electronics Industries Co. Ltd. Combined cache with main memory and a control method thereof
AU2004264485B8 (en) * 2003-08-19 2005-02-24 Daikin Industries, Ltd. Refrigeration system
WO2008053789A1 (en) * 2006-10-31 2008-05-08 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334173B1 (en) 1997-11-17 2001-12-25 Hyundai Electronics Industries Co. Ltd. Combined cache with main memory and a control method thereof
AU2004264485B8 (en) * 2003-08-19 2005-02-24 Daikin Industries, Ltd. Refrigeration system
AU2004264485B2 (en) * 2003-08-19 2007-11-22 Daikin Industries, Ltd. Refrigeration system
CN100443833C (zh) * 2003-08-19 2008-12-17 大金工业株式会社 冷冻装置
WO2008053789A1 (en) * 2006-10-31 2008-05-08 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US7840188B2 (en) 2006-10-31 2010-11-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US8041309B2 (en) 2006-10-31 2011-10-18 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US8396425B2 (en) 2006-10-31 2013-03-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US9362984B2 (en) 2006-10-31 2016-06-07 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device

Similar Documents

Publication Publication Date Title
US20250147681A1 (en) On-Chip Atomic Transaction Engine
CN110865968B (zh) 多核处理装置及其内核之间数据传输方法
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US5787486A (en) Bus protocol for locked cycle cache hit
US6430657B1 (en) Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock
US5802585A (en) Batched checking of shared memory accesses
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
EP0514024B1 (en) Method and apparatus for an improved memory architecture
EP0283628A2 (en) Bus interface circuit for digital data processor
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
CA1300279C (en) Central processor unit for digital data processing system including cache management mechanism
JPH08263373A (ja) キャッシュにおけるスヌーピング装置および方法
US5553268A (en) Memory operations priority scheme for microprocessors
EP1994469A2 (en) Method, system, apparatus and article of manufacture for performing cacheline polling utilizing a store and reserve instruction
JP4179677B2 (ja) マルチプロセッサ装置
US5623626A (en) Logical cache memory for multi-processor system
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
US20030105929A1 (en) Cache status data structure
JP2001195242A (ja) データ処理システム
US20020073259A1 (en) Exclusive access control to a processing resource
JPH0784971A (ja) コンピュータシステム
EP0192578A2 (en) A multiple bus system including a microprocessor having separate instruction and data interfaces and caches
EP0280821A2 (en) Interface between processor and special instruction processor in digital data processing system
JP2872259B2 (ja) マルチプロセッサシステム
EP0318702A2 (en) Data processor with direct data transfer between coprocessor and memory