JPH0784971A - Computer system - Google Patents
Computer systemInfo
- 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
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数のプロセッサおよ
びその各プロセッサに共有されるメモリ等の共有要素を
有する並列処理コンピュータシステムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel processing computer system having a plurality of processors and a shared element such as a memory shared by the processors.
【0002】[0002]
【従来の技術】従来、単一のプロセッサに集中されてい
た処理機能や制御機能等を複数のプロセッサに分割し、
分散・共同処理によって制御処理を行う並列処理システ
ムと称呼されるコンピュータシステムが知られている。
例えば、この従来の並列処理システムとして、複数のプ
ロセッサが共有バスを介して主記憶装置を共有し、複数
のプロセッサがその共有するメモリにアクセスすること
により制御処理を行うように構成されているものがあ
る。2. Description of the Related Art Conventionally, processing functions, control functions, etc., which have been concentrated in a single processor, are divided into a plurality of processors,
A computer system called a parallel processing system that performs control processing by distributed / cooperative processing is known.
For example, this conventional parallel processing system is configured such that a plurality of processors share a main storage device via a shared bus, and a plurality of processors access the shared memory to perform control processing. There is.
【0003】この従来の並列処理システムにおいて、共
有メモリに対して複数のプロセッサのアクセスが競合す
る場合があり、このアクセスの競合をできるだけ低減さ
せることがシステム性能を向上させるためには必要不可
欠である。この課題を解決する手段として、複数のプロ
セッサの各々にキャッシュメモリを備え、各プロセッサ
が一度アクセスした共有メモリの制御データをキャッシ
ュメモリに保持し、各プロセッサが再度同一データをア
クセスする場合に、共有メモリに代えてキャッシュメモ
リからそのデータを読み出すことにより、共有メモリに
対するアクセス回数を低減させる方法が提案されてい
る。In this conventional parallel processing system, access of a plurality of processors to a shared memory may compete with each other, and it is essential to reduce the contention of this access as much as possible in order to improve system performance. . As a means for solving this problem, each of a plurality of processors is provided with a cache memory, each processor holds control data of a shared memory once accessed, and when each processor accesses the same data again, the shared data is shared. A method has been proposed in which the number of accesses to the shared memory is reduced by reading the data from the cache memory instead of the memory.
【0004】さらに、キャッシュメモリのヒット率を向
上させるために、キャッシュミスのときに主記憶装置か
らキャッシュメモリに取り込む制御データのブロックサ
イズをプロセッサが一回の処理に必要なデータサイズよ
り大きく設定する方法も提案されている。この方法によ
れば、キャッシュミスを起こした制御データの次に処理
する制御データが、キャッシュミスを起こした制御デー
タの近傍、即ち、取り込んだブロック内に存在している
場合に、キャッシュミスの連続発生が回避され、プロセ
ッサは共有メモリに対するアクセス回数を低減させるこ
とができ、システムの向上を図ることが可能となる。Further, in order to improve the hit rate of the cache memory, the block size of the control data fetched from the main storage device to the cache memory at the time of a cache miss is set to be larger than the data size required by the processor for one processing. Methods have also been proposed. According to this method, when the control data to be processed next to the control data causing the cache miss is present in the vicinity of the control data causing the cache miss, that is, in the fetched block, consecutive cache misses occur. Occurrence is avoided, the processor can reduce the number of accesses to the shared memory, and the system can be improved.
【0005】[0005]
【発明が解決しようとする課題】しかしながら、上記従
来のコンピュータシステムにおいて、複数のプロセッサ
の各々に単にキャッシュメモリを備えただけの方法で
は、各プロセッサが同一の制御データを複数回アクセス
した場合には共有メモリへのアクセス回数の低減効果を
享受することができるが、一回のみのアクセスによるア
クセス競合には全く効果を奏しないという問題があっ
た。However, in the above conventional computer system, in the method in which each of the plurality of processors is simply provided with the cache memory, when each processor accesses the same control data a plurality of times, Although it is possible to enjoy the effect of reducing the number of times of access to the shared memory, there is a problem in that access competition due to only one access has no effect.
【0006】また、キャッシュメモリに取り込む制御デ
ータのブロックサイズを大きくする方法では、一般に、
一回のキャッシュミスの処理によりキャッシュメモリに
取り込まれる制御データのブロックサイズは、プロセッ
サの1回の処理に必要なデータ量の16倍程度であり、
このブロックの転送が終了した後は、たとえバスの使用
率が低い状態が続いても、次のキャッシュミス処理まで
はデータ転送の要求がなされず、データ転送が行われな
い無駄な時間が生じていた。Further, in the method of increasing the block size of the control data fetched in the cache memory, in general,
The block size of the control data fetched in the cache memory by one cache miss process is about 16 times the data amount required for one process of the processor,
After the transfer of this block is completed, no data transfer is requested until the next cache miss processing even if the bus usage rate remains low, resulting in wasted time during which data transfer is not performed. It was
【0007】さらに、このブロックサイズを大きくする
方法では、例えば、キャッシュミスを起こした制御デー
タの次にプロセッサが処理する制御データが、キャッシ
ュミスにより取得したブロック以外のアドレスに存在す
る制御データであるとき、即ち、プロセッサのアクセス
が離散したアドレスに存在する制御データに対して行わ
れる場合には、かえって通常のキャッシュメモリによる
制御方法の方がブロック転送を行う方法よりシステム性
能が良いときがあるという問題があった。Further, in the method of increasing the block size, for example, the control data processed by the processor next to the control data causing the cache miss is the control data existing at an address other than the block acquired by the cache miss. In other words, when the processor access is to control data existing at discrete addresses, the control method using the normal cache memory may have better system performance than the block transfer method. There was a problem.
【0008】本発明は、上記問題に鑑みてなされたもの
で、各プロセッサにより実行される制御データが共有メ
モリのどのアドレスに存在していてもキャッシュのヒッ
ト率の向上および共有要素の有効利用によるシステムの
向上を図ることが可能なコンピュータシステムを提供す
ることを目的とする。The present invention has been made in view of the above problems, and improves the hit rate of the cache and effectively uses the shared element regardless of the address of the shared memory where the control data executed by each processor exists. An object is to provide a computer system capable of improving the system.
【0009】[0009]
【課題を解決するための手段】上記目的を達成するため
本発明は、複数のプロセッサと、該各プロセッサに付随
して設けられたキャッシュメモリと、各プロセッサによ
り共有され、各プロセッサが実行する複数の制御データ
から成る制御情報を記憶する主記憶装置とを備えた並列
処理システムにおいて、前記制御データに付加情報を付
加する付加情報付加手段と、該付加情報付加手段により
付加情報が付加された制御データを前記主記憶装置に書
き込む書き込み手段と、前記付加情報付加手段により付
加された付加情報を検出する検出手段と、前記主記憶装
置に記憶された全ての付加情報を検索する検索手段と、
該検索手段により検索された全ての付加情報から前記検
出手段により所定の付加情報を検出し、該所定の付加情
報が付加された制御データを当該プロセッサに対応する
キャッシュメモリに書き込むキャッシュメモリ書き込み
手段とを有することを特徴とする。In order to achieve the above object, the present invention provides a plurality of processors, a cache memory provided in association with each processor, and a plurality of processors shared by each processor and executed by each processor. In a parallel processing system including a main storage device for storing control information composed of the control data, and a control in which the additional information is added by the additional information adding means for adding the additional information to the control data. Writing means for writing data to the main memory, detecting means for detecting the additional information added by the additional information adding means, and searching means for searching all the additional information stored in the main memory,
Cache memory writing means for detecting the predetermined additional information by the detecting means from all the additional information searched by the searching means, and writing the control data to which the predetermined additional information is added to the cache memory corresponding to the processor. It is characterized by having.
【0010】具体的には、前記付加情報付加手段は、前
記付加情報としてブロックタグを付加するブロックタグ
付加手段であり、前記各プロセッサは、ブロックタグを
格納するためのブロックタグレジスタと、該ブロックタ
グレジスタに任意の値を書き込む書き込み命令と、前記
制御データに付加されたブロックタグを参照する参照命
令とを有し、前記ブロックタグ付加手段は、前記書き込
み命令であり、前記検索手段は、前記参照命令であるこ
とを特徴とする。Specifically, the additional information adding means is a block tag adding means for adding a block tag as the additional information, and each processor includes a block tag register for storing a block tag and the block. A write command for writing an arbitrary value to the tag register, and a reference command for referring to a block tag added to the control data, wherein the block tag adding means is the write command, and the searching means is the It is a reference instruction.
【0011】[0011]
【作用】本発明は上記構成により、付加情報付加手段に
より制御データに付加情報が付加され、書き込み手段に
より付加情報が付加された制御データが主記憶装置に記
憶され、プロセッサがその記憶された制御データに従っ
て処理を開始すると、検索手段により全ての付加情報が
検索され、検出手段により所定の付加情報が検出され、
キャッシュメモリ書き込み手段によりその所定の付加情
報が付加された制御データがキャッシュメモリの所定の
位置に書き込まれる。According to the present invention, with the above-mentioned configuration, the additional information is added to the control data by the additional information adding means, the control data to which the additional information is added by the writing means is stored in the main storage device, and the processor stores the control. When the processing is started according to the data, the search means searches all the additional information, and the detecting means detects the predetermined additional information.
The control data to which the predetermined additional information is added by the cache memory writing means is written in a predetermined position in the cache memory.
【0012】具体的には、各プロセッサは、書き込み命
令により任意の値をブロックタグレジスタに書き込み、
その結果を制御情報とともに主記憶装置に記憶し、各プ
ロセッサがその記憶された制御情報に従って処理を開始
すると、参照命令により全てのブロックタグから所定の
ブロックタグが検索され、キャッシュメモリ書き込み手
段によりその所定のブロックタグが付加された制御デー
タがキャッシュメモリの所定のアドレスに書き込まれ
る。Specifically, each processor writes an arbitrary value to the block tag register by a write command,
The result is stored in the main memory together with the control information, and when each processor starts processing in accordance with the stored control information, a predetermined block tag is searched from all the block tags by the reference instruction, and the cache memory writing means The control data to which a predetermined block tag is added is written to a predetermined address in the cache memory.
【0013】[0013]
【実施例】以下、本発明の実施例を図面に基づき詳細に
説明する。Embodiments of the present invention will now be described in detail with reference to the drawings.
【0014】図1は、本発明に係るコンピュータシステ
ムの一実施例の概略構成を示すブロック図である。同図
において、本実施例のコンピュータシステムは、CPU
およびキャッシュメモリ等から成るプロセッサエレメン
ト1〜4と、プロセッサエレメント1〜4がシステムバ
ス5を同時にアクセスした場合に、バスの使用を調停す
るバスアービタ6と、詳細は後述するメモリコントロー
ラ7と、本発明の特徴を成すブロックタグを記憶するブ
ロックタグメモリ8と、プロセッサエレメント1〜4の
制御プログラムやデータ等を記憶するメインメモリ9
と、外部ディスク装置10と、外部ディスク装置10と
システムバス5との間のデータ転送を行う入出力コント
ローラ(以下、「I/Oコントローラ」という)11と
により構成されている。FIG. 1 is a block diagram showing the schematic arrangement of an embodiment of a computer system according to the present invention. In the figure, the computer system of the present embodiment is a CPU
And processor elements 1 to 4 including a cache memory and the like, a bus arbiter 6 that arbitrates the use of the bus when the processor elements 1 to 4 simultaneously access the system bus 5, a memory controller 7 described in detail later, and the present invention. Block tag memory 8 for storing the block tags that characterize the above, and main memory 9 for storing the control programs and data of processor elements 1 to 4
And an external disk device 10 and an input / output controller (hereinafter referred to as “I / O controller”) 11 that transfers data between the external disk device 10 and the system bus 5.
【0015】プロセッサエレメント1〜4、バスアービ
タ5、メモリコントローラ7、ブロックタグメモリ8、
メインメモリ9、I/Oコントローラ11は、システム
バス5を介して、相互に接続されている。Processor elements 1 to 4, bus arbiter 5, memory controller 7, block tag memory 8,
The main memory 9 and the I / O controller 11 are connected to each other via the system bus 5.
【0016】ここで、プロセッサエレメント1は、CP
U12と、CPU12に付随するキャッシュメモリ13
と、キャッシュメモリ13を制御するキャッシュメモリ
コントローラ14と、プロセッサエレメント1の内部バ
ス15を制御するバスコントローラ16と、内部バス1
5とシステムバス5とのインターフェースをとるバスイ
ンタフェース17とにより構成されている。ここで、バ
スコントローラ16は、CPU12がアクセスするアド
レスを常にデコードして監視し、その結果システムバス
5へのアクセスが必要な場合には、バスアービタ6に対
してバスの獲得を要求し、バスが獲得されると、システ
ムバス5にデータを出力し、例えば、メインメモリ9等
の外部要素に対するアクセスを開始する。これは、一般
のバスコントローラの機能であり、公知である。Here, the processor element 1 is a CP
U12 and cache memory 13 attached to CPU12
A cache memory controller 14 that controls the cache memory 13, a bus controller 16 that controls the internal bus 15 of the processor element 1, and an internal bus 1
5 and a bus interface 17 for interfacing with the system bus 5. Here, the bus controller 16 constantly decodes and monitors the address accessed by the CPU 12, and if access to the system bus 5 is required as a result, requests the bus arbiter 6 to acquire the bus, and the bus When acquired, the data is output to the system bus 5, and access to external elements such as the main memory 9 is started. This is a function of a general bus controller and is known.
【0017】また、キャッシュメモリ13は、タグアド
レスを格納するタグアドレス部と、ブロックタグを格納
するブロックタグ部と、制御データを格納するデータ部
とから成り、例えば、SRAMにより構成される。The cache memory 13 is composed of a tag address section for storing a tag address, a block tag section for storing a block tag, and a data section for storing control data, and is composed of, for example, SRAM.
【0018】なお、プロセッサエレメント2〜4も、プ
ロセッサエレメント1と同様の構成を有し、本実施例の
コンピュータシステムは、4個のプロセッサエレメント
1〜4から成る4プロセッサ構成のマルチプロセッサシ
ステムを採用した。しかし、本発明は、プロセッサの数
が4個の場合に限定されるものではない。The processor elements 2 to 4 also have the same configuration as that of the processor element 1, and the computer system of this embodiment adopts a multiprocessor system having a four-processor configuration consisting of four processor elements 1 to 4. did. However, the present invention is not limited to the case where the number of processors is four.
【0019】図2は、図1のブロックタグメモリ8およ
びメインメモリ9に記憶されている内容の一例を示すメ
モリマップであり、左から順に、物理アドレス、ブロッ
クタグメモリ8の内容、メインメモリ9の内容を示して
いる。本実施例では、プロセッサエレメント1〜4のC
PUによりアドレスがアクセスされると、指定されたア
ドレスにおけるブロックタグメモリ8およびメインメモ
リ9の内容がともに出力されるような構成になってい
る。即ち、本実施例で扱うデータのデータ構造は、メイ
ンメモリ9に記憶されたデータ(内容)の各々に1個の
ブロックタグデータが付加されたデータ構造を採ってい
る。FIG. 2 is a memory map showing an example of the contents stored in the block tag memory 8 and the main memory 9 of FIG. 1, and the physical address, the contents of the block tag memory 8 and the main memory 9 are arranged in order from the left. Shows the contents of. In this embodiment, C of the processor elements 1 to 4 is used.
When the address is accessed by the PU, the contents of the block tag memory 8 and the main memory 9 at the specified address are both output. That is, the data structure of the data handled in the present embodiment has a data structure in which one block tag data is added to each of the data (contents) stored in the main memory 9.
【0020】さらに、本実施例では、ブロックタグメモ
リ8およびメインメモリ9はともに物理アドレスが0h
番地から000FFFFCh番地まで割り当てられてお
り、物理アドレスが4バイト毎に、ブロックタグメモリ
8は2バイトのデータ(ブロックタグ)を有し、メイン
メモリ9は4バイトのデータ(プログラム、テーブルデ
ータ等)を有している。ここで、hは、16進数である
ことを示している。Further, in this embodiment, the block tag memory 8 and the main memory 9 both have a physical address of 0h.
Addresses from the address to 000FFFFCh are allocated, the physical address is every 4 bytes, the block tag memory 8 has 2 bytes of data (block tag), and the main memory 9 has 4 bytes of data (program, table data, etc.). have. Here, h indicates that it is a hexadecimal number.
【0021】例えば、物理アドレスが0h番地のとき、
ブロックタグメモリ8のメモリ内容は“0000h”で
あり、メインメモリ9のメモリ内容も“0000000
0h”となっている。また、物理アドレスが4h番地の
とき、ブロックタグメモリ8およびメインメモリ9のメ
モリ内容は、それぞれ“0000h”,“00FF0F
00h”であり、物理アドレスが0Ah番地のとき、ブ
ロックタグメモリ8およびメインメモリ9のメモリ内容
は、それぞれ“0001h”,“9ABCDEF0h”
である。即ち、前述したように、メインメモリ9の各4
バイトデータに、2バイトのブロックタグが付加される
構成になっている。For example, when the physical address is address 0h,
The memory content of the block tag memory 8 is "0000h", and the memory content of the main memory 9 is also "0000000".
When the physical address is 4h, the memory contents of the block tag memory 8 and the main memory 9 are "0000h" and "00FF0F, respectively.
When the physical address is 0Ah, the memory contents of the block tag memory 8 and the main memory 9 are "0001h" and "9ABCDEF0h", respectively.
Is. That is, as described above, each 4 of the main memory 9
A 2-byte block tag is added to the byte data.
【0022】以下、ブロックタグメモリ8およびメイン
メモリ9には、図2のメモリマップに示すデータが予め
格納されているものとして説明を継続する。Hereinafter, the description will be continued assuming that the data shown in the memory map of FIG. 2 is stored in advance in the block tag memory 8 and the main memory 9.
【0023】図3は、図1のプロセッサエレメント1の
詳細な構成を示すブロック図である。FIG. 3 is a block diagram showing a detailed configuration of the processor element 1 of FIG.
【0024】前述したように、プロセッサエレメント1
は、CPU12と、キャッシュメモリ13と、キャッシ
ュメモリコントローラ14と、バスコントローラ16
と、バスインタフェース17とにより構成され、各要素
は、内部バス15により相互に接続されている。As mentioned above, the processor element 1
Is a CPU 12, a cache memory 13, a cache memory controller 14, and a bus controller 16
And a bus interface 17, and the respective elements are mutually connected by an internal bus 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とにより構成
される。The internal bus 15 includes a data bus B1 for transmitting control data executed by the CPU 12, a block tag bus B2 for transmitting a block tag, and an address bus B.
3, a control bus B4, and a bus B5 including control signals used for arbitration of other internal buses. Here, the control bus B4 is
The address strobe signal (/ AS) indicating that a valid address is output to the address bus B3, and the CPU
12 read / write signals (R) indicating whether the access is a memory read cycle or a memory write cycle.
// W), a retry signal (/ RETRY) requesting access to the same address as the address accessed immediately before to the CPU 12, a termination signal (/ TERM) indicating that the access is completed, and reading of the cache memory Confirmation signal (/ AC
K) and. The bus B5 has an internal bus use right request signal / BR and an internal bus use right permission signal / B.
G and an internal bus permission confirmation signal / BGACK.
【0026】CPU12とバスインタフェース17と
は、データバスB1,ブロックタグバスB2,アドレス
バスB3,コントロールバスB4を介して相互に接続さ
れ、同様に、バスインタフェース17とシステムバス5
とは、この4種類のバスを介して相互に接続されてい
る。The CPU 12 and the bus interface 17 are mutually connected via a data bus B1, a block tag bus B2, an address bus B3, and a control bus B4. Similarly, the bus interface 17 and the system bus 5 are connected.
And are connected to each other via these four types of buses.
【0027】キャッシュメモリ13は、32Kバイト容
量のダイレクトマッピング方式のライトスルーキャッシ
ュであり、そのアドレス入力には、アドレスバスB3の
A2〜A14のアドレスが供給され、そのアドレスタグ
部のデータ入力には、アドレスバスB3の上位2バイト
(A15〜A31)が供給される。さらに、キャッシュ
メモリ13のブロックタグ部およびデータ部のデータ入
力は、それぞれ、ブロックタグバスB2およびデータバ
スB1に接続される。即ち、キャッシュメモリ13から
は、アドレスバスB3のA2〜A14ビットにより指定
されたアドレスに応じて、アドレスタグ部、ブロックタ
グ部、データ部の内容が読み書きされる。The cache memory 13 is a direct mapping type write-through cache having a capacity of 32 Kbytes, the address of which is supplied with the addresses A2 to A14 of the address bus B3, and the data input of the address tag portion thereof. , The upper 2 bytes (A15 to A31) of the address bus B3 are supplied. Further, the data inputs of the block tag section and the data section of the cache memory 13 are connected to the block tag bus B2 and the data bus B1, respectively. That is, the contents of the address tag portion, the block tag portion, and the data portion are read from and written to the cache memory 13 in accordance with the address designated by the A2 to A14 bits of the address bus B3.
【0028】キャッシュメモリ13のアドレスタグ部の
データ出力は、コンパレータ18の一入力端子に供給さ
れ、コンパレータ18の他の入力端子には、前記アドレ
スバスB3の上位2バイトが供給される。コンパレータ
18は、その出力信号/HITをキャッシュメモリコン
トローラ14に供給し、入力されたアドレスタグ部のデ
ータ出力とアドレスバスB3の上位2バイトとを比較し
て、一致したとき、即ちキャッシュヒットしたときには
信号/HITをロウレベルにし、一致しなかったとき、
即ちキャッシュミスしたときには信号/HITをハイレ
ベルにして、キャッシュメモリコントローラ14にキャ
ッシュヒットがあったか否かを伝達する。The data output of the address tag portion of the cache memory 13 is supplied to one input terminal of the comparator 18, and the other input terminal of the comparator 18 is supplied with the upper 2 bytes of the address bus B3. The comparator 18 supplies the output signal / HIT to the cache memory controller 14, compares the input data output of the address tag unit with the upper 2 bytes of the address bus B3, and when they match, that is, when a cache hit occurs. When signal / HIT is set to low level and they do not match,
That is, when a cache miss occurs, the signal / HIT is set to a high level to notify the cache memory controller 14 of whether or not there is a cache hit.
【0029】キャッシュメモリコントローラ14は、コ
ントロールバスB4を介して、CPU12およびバスイ
ンタフェース17と各種制御情報の送受信を行い、前記
信号/HITおよび各種制御情報に基づいて、キャッシ
ュメモリ13に対してメモリの書き込み要求信号/CR
AMWを出力する。The cache memory controller 14 transmits / receives various control information to / from the CPU 12 and the bus interface 17 via the control bus B4, and based on the signal / HIT and various control information, the cache memory controller 14 stores the memory information. Write request signal / CR
Outputs 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に接続されている。The bus controller 16 uses the address bus B
3 and is connected to the CPU 12 via the bus B5.
It is connected to the. Further, the bus controller 16 outputs the cache write signal / CWR1 for outputting a write request to the cache memory 13 by the memory controller 7 of FIG. 1 and the system bus arbiter 6 of FIG. Three types of signals R, G, BB for requesting / confirming that the system bus 5 is released
Is connected to the system bus 5 via a signal line for transmitting a control signal BCNT for releasing the buses B1 to B4, and a write request to the cache memory 13 is transmitted. It is connected to the cache memory controller 14 via a signal line that transmits a signal to be performed / MEMWR.
【0031】ここで、バスB5は、前記3種類の信号/
BR,/BG,/BGACKから成り、これと同様に、
前記信号R,G,BBは、それぞれシステムバス5に対
するバス使用権要求信号、バス使用権許可信号、バス許
可確認信号を示す。この3種類の信号/BR,/BG,
/BGACKおよび信号R,G,BBを使用して、CP
U12およびバスコントローラ16は周知の3線ハンド
シェイク制御によりデータ伝送を行う。Here, the bus B5 is used for the above-mentioned three types of signals /
BR, / BG, / BGACK consists of
The signals R, G, and BB represent a bus use right request signal, a bus use right permission signal, and a bus permission confirmation signal for the system bus 5, respectively. These three types of signals / BR, / BG,
/ BGACK and signals R, G, BB, and CP
The U12 and the bus controller 16 perform data transmission by the well-known 3-wire handshake control.
【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に対する書き込み要求を行う機能が付
加されている。The bus controller 16 constantly decodes and monitors the access address output by the CPU 12, and as a result, when access to the system bus 5 is required,
A signal R outputs a bus use right request to the system bus arbiter 6. After that, when the acquisition of the system bus 5 is reported by the signal G, the bus controller 16 outputs the signal BB to the system bus 5 and the signal BCNT to the bus interface 17, and the internal buses B1 to B1 of the processor element 1 are output. Connect B4 to the system bus 5. This allows access to external elements. Further, the bus controller 16 requests the CPU 12 to release the internal buses B1 to B4 of the processor element 1 based on the cache write request signal / CWR1 output from the memory controller 7, and when the bus is acquired, the cache memory controller A function for making a write request to the cache memory 13 is added to the cache memory 14.
【0033】図4は、図3のCPU12の詳細な構成を
示すブロック図である。FIG. 4 is a block diagram showing a detailed structure of the CPU 12 of FIG.
【0034】なお、同図は、プロセッサエレメント1の
CPU12の詳細な構成を示しているが、他のプロセッ
サエレメント2〜4のCPUも同一構成を成す。Although FIG. 1 shows the detailed structure of the CPU 12 of the processor element 1, the CPUs of the other processor elements 2 to 4 also have the same structure.
【0035】CPU12は、命令実行部21と、マルチ
プレクサ(MUX)22と、内蔵メモリ管理ユニット
(MMU)23と、ブロックタグの読み書きを行うブロ
ックタグレジスタ24と、前記プロセッサエレメント1
の内部バスB1〜B5とCPU12の内部バスとのイン
ターフェースを取るためのバスインターフェース25と
により主として構成されている。The CPU 12 includes an instruction executing unit 21, a multiplexer (MUX) 22, a built-in memory management unit (MMU) 23, a block tag register 24 for reading and writing a block tag, and the processor element 1.
It is mainly configured by a bus interface 25 for interfacing with the internal buses B1 to B5 of FIG.
【0036】ここで、命令実行部21は、例えば、命令
フェッチ部(IF)、デコード部(DECODE)、オ
ペランドフェッチ部(OF)、実行部(EXEC)、ラ
イトバック部(WB)から成り、一般のCPUが実行す
る制御方法により制御を行う。なお、CPU12を構成
する要素の内、ブロックタグレジスタ24以外の要素
は、一般のCPUに備わっているものであり、各要素は
内部バスにより相互に接続されている。Here, the instruction execution unit 21 is composed of, for example, an instruction fetch unit (IF), a decode unit (DECODE), an operand fetch unit (OF), an execution unit (EXEC), and a writeback unit (WB). The control is performed by the control method executed by the CPU. It should be noted that, of the elements constituting the CPU 12, the elements other than the block tag register 24 are included in a general CPU, and the elements are mutually connected by an internal bus.
【0037】CPU12は、BLKL命令により、ブロ
ックタグレジスタ24に任意のブロックタグを書き込む
ことができ、図1のブロックタグメモリ8にそのブロッ
クタグを書き込む場合には、そのブロックタグをブロッ
クタグバスB2に出力する。また、CPU12は、BL
KR命令により、ブロックタグメモリ8に記憶された任
意のアドレスのブロックタグをCPU12の内部の汎用
レジスタ(図示せず)に読み込むことができる。この読
み込み方法は、まず、所望のアドレスを指定してブロッ
クタグメモリ8の内容を読み出す。このとき、実際に
は、メインメモリ9に対する記憶内容の読み出しが行わ
れ、その記憶内容に付随して、同一アドレスに記憶され
ているブロックタグメモリ8のブロックタグが読み出さ
れる。該ブロックタグは、システムバス5内のブロック
タグバスに出力された後、プロセッサエレメント1内の
ブロックタグバスB2に伝送される。次に、CPU12
は、そのブロックタグバスB2の内容をブロックタグレ
ジスタ24に読み込み、続いて内部のデータ転送により
汎用レジスタに転送する。The CPU 12 can write an arbitrary block tag to the block tag register 24 by the BLKL instruction. When writing the block tag to the block tag memory 8 of FIG. 1, the block tag is transferred to the block tag bus B2. Output to. Also, the CPU 12 sets the BL
By the KR instruction, the block tag of an arbitrary address stored in the block tag memory 8 can be read into a general-purpose register (not shown) inside the CPU 12. In this reading method, first, a desired address is designated and the content of the block tag memory 8 is read. At this time, actually, the stored content is read from the main memory 9, and the block tag of the block tag memory 8 stored at the same address is read along with the stored content. The block tag is output to the block tag bus in the system bus 5 and then transmitted to the block tag bus B2 in the processor element 1. Next, the CPU 12
Reads the contents of the block tag bus B2 into the block tag register 24 and then transfers the contents to the general purpose register by internal data transfer.
【0038】なお、後述するように、本実施例ではブロ
ックタグレジスタ24の機能は使用せず、ブロックタグ
を生成する場合には、外付けのCPU(図示せず)を使
用し、また、ブロックタグを検出または検索する場合に
は、メモリコントローラ7を使用しているが、云うまで
もなく、ブロックタグの生成または検出・検索をCPU
12を使用して行うこともできる。As will be described later, in this embodiment, the function of the block tag register 24 is not used, and when a block tag is generated, an external CPU (not shown) is used, and the block The memory controller 7 is used to detect or search for a tag. Needless to say, the CPU performs the generation or detection / search of a block tag.
12 can also be used.
【0039】図5は、図3のキャッシュメモリコントロ
ーラの詳細な構成を示すブロック図である。FIG. 5 is a block diagram showing a detailed structure of the cache memory controller of FIG.
【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とにより構成される。The cache memory controller 14 has four types of input control signals (/ MEMWR, /
AS, / HIT, R // W), control signal / RET
RY, READHIT (/ STERM), WRITEH
OR gates 31 to 34 for generating IT and MEMWRITE (/ ACK) and output signal of OR gate 31 /
The signal RE is obtained by taking the logical sum of the D flip-prop 35 for outputting RETRY in synchronization with the signal / AS and the D flip-prop 35 and the signal / AS.
OR gate 36 for generating PLACE, the signal REPLACE, the signals WRITEHIT, MEMW
AND gate 37 for generating a signal / CRAMW by taking the logical product of RITE.
【0041】以上のように構成されたプロセッサエレメ
ント1の動作を、図2および図3を参照して説明する。The operation of the processor element 1 configured as described above will be described with reference to FIGS.
【0042】図3において、CPU12が任意のアドレ
ス、例えば、図2の000FFFF4h番地のアドレス
をアクセスすると、そのA2〜A14のビットのアドレ
ス、即ち、“3FFDh”によって指定されるキャッシ
ュメモリ13のアドレスタグ部の内容がコンパレータ1
8に入力され、コンパレータ18のもう一方の入力であ
る上位ビット(A15〜A31)、即ち、“000F
h”と比較される。その結果、一致した場合には信号/
HITがロウレベルとなり、キャッシュメモリ13に記
憶されたブロックタグ部およびデータ部の内容がそれぞ
れバスB2,B3に出力される。In FIG. 3, when the CPU 12 accesses an arbitrary address, for example, the address at address 000FFFF4h in FIG. 2, the address of bits A2 to A14, that is, the address tag of the cache memory 13 designated by "3FFDh". Content of the part is comparator 1
8 and is the other input of the comparator 18, the upper bits (A15 to A31), that is, “000F”.
h ". As a result, if there is a match, the signal /
HIT goes low, and the contents of the block tag portion and the data portion stored in the cache memory 13 are output to the buses B2 and B3, respectively.
【0043】一方、一致しない場合には信号/HITが
ハイレベルとなり、キャッシュメモリコントローラ14
に、CPU12の再アクセスを要求し、続いて、CPU
12は、再度、同一アドレスに対するアクセスを実行す
る。このアクセスによって、信号/CRAMWがロウレ
ベルになり、ブロックタグメモリ8およびメインメモリ
9から読み出された結果がキャッシュメモリ13のブロ
ックタグ部およびデータ部に書き込まれ、そのアドレス
の上位ビットである“000Fh”がキャッシュメモリ
13のアドレスタグ部に書き込まれる。以上の動作は、
キャッシュメモリの一般の動作であり、公知である。On the other hand, if they do not match, the signal / HIT goes high and the cache memory controller 14
Requesting re-access of the CPU 12, and then the CPU
12 again executes access to the same address. By this access, the signal / CRAMW becomes low level, the results read from the block tag memory 8 and the main memory 9 are written in the block tag section and the data section of the cache memory 13, and the high-order bit "000Fh" of the address is written. Is written in the address tag portion of the cache memory 13. The above operation is
This is a general operation of a cache memory and is well known.
【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に書き込み要求の終了を知らせる。Further, a memory write request signal / MEMWR is input from the bus controller 16 to the cache memory controller 14 in the present invention, and as will be described later, a write request (signal to the cache memory 13 of the processor element 1 is sent from the memory controller 7). / CWR1) is performed, the bus controller 16
Processes the request. That is, the bus controller 16 requests the CPU 12 to acquire the internal buses B1 to B4, and when the bus acquisition is completed, the signal BCN is acquired.
The bus interface 17 is opened via T to reflect the data, address, block tag, and control signals in the system bus 5 to the internal bus, and the signal / MEMWR is set to low level. The cache memory controller 14 is
When the signal / MEMWR becomes the low level and the signal / AS becomes the low level, the signal / CRAMW is set to the low level, the block tag and the data on the bus are written in the cache memory 13, and at the same time, the signal / ACK is returned and the write request to the memory controller 7 is completed. Let me know.
【0045】以上の動作により、メモリコントローラ7
から書き込み要求がなされた場合に、システムバス5に
存在するデータが所望のキャッシュメモリに書き込まれ
る。With the above operation, the memory controller 7
When a write request is issued from the device, the data existing on the system bus 5 is written to the desired cache memory.
【0046】図6は、図1のメモリコントローラ7の詳
細な構成を示すブロック図である。FIG. 6 is a block diagram showing a detailed structure of the memory controller 7 of FIG.
【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を強制的にリード状態に
する機能も付加されている。The memory controller 7 monitors the read request made by each CPU of the processor elements 1 to 4 to the main memory 9, and when the read request is made, the address, the block tag, the CPU number of the request, etc. Is controlled by the dynamic allocation controller 42, a dynamic allocation controller 42 which will be described later in detail, a bus controller 43 which acquires the system bus 5 acquisition request by the dynamic allocation controller 42, and a dynamic allocation controller 42. Bus interfaces 44 and 45 for connecting the buses of the block tag memory 8 and the main memory 9 to one or both of the dynamic allocation controller 42 and the system bus 5.
And a DRAM controller 46 for generating and refreshing dynamic RAM (DRAM) addresses. Further, the DRAM controller 46 includes a dynamic allocation controller 4
When the signal / READ is output by 2, the function of forcibly setting the block tag memory 8 and the main memory 9 to the read state is added.
【0048】図7は、図6のスヌーパラッチ回路41の
詳細な構成を示すブロック図である。FIG. 7 is a block diagram showing a detailed structure of the snooper latch circuit 41 shown in FIG.
【0049】スヌーパラッチ回路41は、システムバス
5内のアドレスバスに接続されてアドレス内容をデコー
ドするデコード回路51と、同様にアドレスバスに接続
されてアドレス内容をラッチするアドレスラッチ回路5
2と、システムバス5内のブロックタグデータバスに接
続されてブロックタグをラッチするブロックタグラッチ
回路53と、前記読み出し要求を行ったCPU番号をラ
ッチするCPUIDラッチ回路54とにより主として構
成されている。The snooper latch circuit 41 is connected to the address bus in the system bus 5 to decode the address content, and the address latch circuit 5 which is also connected to the address bus to latch the address content.
2, a block tag latch circuit 53 that is connected to the block tag data bus in the system bus 5 and latches a block tag, and a CPUID latch circuit 54 that latches the CPU number that issued the read request. .
【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が供給される。The decode circuit 51 constantly monitors the address of the address bus and outputs a low level when the address is output to the bus. The output of the decoding circuit 51 is connected to one input terminal of a 4-input OR gate 55, and the signal R // W transmitted by the control bus in the system bus 5 is supplied to the inverter 56 at the other 3 input terminals.
The inverted signal inverted by the signal / AS and R
The output Q of the S flip-flop 57 is supplied with the inverted signal inverted by the inverter 58, the output of the OR gate 55 is supplied to the input R of the RS flip-flop 57, and the input S of the RS flip-flop 57 is 5 output of dynamic allocation controller 42 / R
ESET is supplied.
【0051】RSフリップフロップ57の出力Qは、前
記アドレスラッチ回路52およびCPUIDラッチ回路
54のクロック入力として使用されるとともに、システ
ムバス5内のコントロールバスの前記信号/ACKを検
出するためのアクノリッジ信号検出回路59を介して、
ブロックタグラッチ回路53のクロック入力として使用
され、さらに、後述するダイナミックアロケーションコ
ントローラ42を構成するシーケンサの状態を遷移させ
るための信号/STARTとしてダイナミックアロケー
ションコントローラ42に供給される。The output Q of the RS flip-flop 57 is used as a clock input of the address latch circuit 52 and the CPUID latch circuit 54, and an acknowledge signal for detecting the signal / ACK of the control bus in the system bus 5. Via the detection circuit 59,
It is used as a clock input of the block tag latch circuit 53, and is further supplied to the dynamic allocation controller 42 as a signal / START for changing the state of a sequencer constituting the dynamic allocation controller 42 described later.
【0052】アドレスラッチ回路52はラッチアドレス
をダイナミックアロケーションコントローラ42に出力
し、同様に、ブロックタグラッチ回路53およびCPU
IDラッチ回路54は、それぞれラッチブロックタグお
よびラッチCPUIDをダイナミックアロケーションコ
ントローラ42に出力する。The address latch circuit 52 outputs the latch address to the dynamic allocation controller 42, and similarly, the block tag latch circuit 53 and the CPU.
The ID latch circuit 54 outputs the latch block tag and the latch CPUID to the dynamic allocation controller 42, respectively.
【0053】しかして、前記プロセッサエレメント1〜
4の内、何れかのCPUがメインメモリ9に対して読み
出し要求を行うと、信号R//Wがハイレベルとなるた
め、ORゲート55の出力はロウレベルになり、RSフ
リップフロップ57の出力Qはハイレベルになる。これ
に依って、前記CPUが読み出し要求を行ったアドレス
がアドレスラッチ回路52にラッチされ、そのCPU番
号CPUIDがCPUIDラッチ回路54にラッチされ
る。さらに、読み出し要求によりメインメモリ9の内容
が読み出され、これと同時に、同一アドレスのブロック
タグメモリ8のブロックタグが読み出されると、該ブロ
ックタグがアクノリッジ信号(ACK)検出回路58の
出力に同期してブロックタグラッチ回路53にラッチさ
れる。なお、一度、各ラッチ回路にラッチされたデータ
は、前記信号/RESETが入力されるまで変化せずに
保持される。Thus, the processor elements 1 to
When any one of the four CPUs issues a read request to the main memory 9, the signal R // W goes high, so the output of the OR gate 55 goes low, and the output Q of the RS flip-flop 57. Goes high. As a result, the address requested by the CPU for reading is latched in the address latch circuit 52, and the CPU number CPUID is latched in the CPUID latch circuit 54. Further, when the content of the main memory 9 is read by a read request and the block tag of the block tag memory 8 of the same address is read at the same time, the block tag is synchronized with the output of the acknowledge signal (ACK) detection circuit 58. And is latched by the block tag latch circuit 53. The data once latched by each latch circuit is held unchanged until the signal / RESET is input.
【0054】図8は、図6のダイナミックアロケーショ
ンコントローラ42の詳細な構成を示すブロック図であ
る。FIG. 8 is a block diagram showing a detailed structure of the dynamic allocation controller 42 shown in FIG.
【0055】ダイナミックアロケーションコントローラ
42は、例えばシーケンサ構成用PALにより構成され
たシーケンサ61と、スヌーパラッチ回路41から出力
されるラッチアドレスをロードし、該アドレスのカウン
トアップを行うアドレスカウンタ62と、2個のコンパ
レータ63,64とにより主として構成されている。The dynamic allocation controller 42 includes, for example, a sequencer 61 composed of a sequencer-configuring PAL, an address counter 62 for loading a latch address output from the snooper latch circuit 41, and counting up the address, and two address counters. It is mainly configured by the comparators 63 and 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の一
入力端子に出力する。The signal / START is input to the sequencer 61 from the snooper latch circuit 41, and the bus use right grant signal GRANT is input from the bus controller 43.
Is input and, via the bus interface 44, signals / ACK, / of the control bus in the system bus 5 are input.
AS is input. Further, the sequencer 61 outputs the signal / RESET to the snooper latch circuit 41, and outputs the bus use right request signal REQUEST to the bus controller 43.
Control signal BUSCON that outputs to and controls the connection of the bus
T1 and BUSCONT2 are output to the bus interfaces 44 and 45, respectively, and the signal / READ is output to the DRAM controller 46. Furthermore, the sequencer 61
Is a signal LOA for loading the latch address
The address counter 6 outputs the count clock (COUNT CLOCK) for performing D and the count up.
2 and outputs the signal / WRITE for controlling the write request signals / CWR1 to 4 to one input terminal of the OR gates 65 to 68.
【0057】ORゲート65〜68の他の入力端子に
は、それぞれ前記ラッチされたCPU番号CPUID
(/CPU1〜4)が入力され、ORゲート65〜68
は、入力信号/WRITE,CPUIDに応じて、プロ
セッサエレメント1〜4の何れかのCPUに対して、そ
の付随するキャッシュメモリにブロックタグメモリ8お
よびメインメモリ9から読み出された内容を書き込むた
めの書き込み要求信号(/CWR1〜4)を出力する。The other input terminals of the OR gates 65 to 68 are respectively connected to the latched CPU number CPUID.
(/ CPU1 to 4) are input, and OR gates 65 to 68
Is for writing the contents read from the block tag memory 8 and the main memory 9 to the associated cache memory in any of the CPUs of the processor elements 1 to 4 according to the input signal / WRITE, CPUID. The write request signal (/ CWR1 to 4) is output.
【0058】前記アドレスカウンタ62は、カウントし
たアドレスをバスインタフェース45に出力するととも
に、コンパレータ64の一入力端子に出力し、コンパレ
ータ64は、そのアドレス値と他の入力端子に入力され
たENDアドレス出力回路69の出力値とを比較し、そ
の比較結果を信号/ENDとしてシーケンサ61に出力
する。本実施例では、ENDアドレス回路69は、メイ
ンメモリ9の最終アドレス、即ち、“000FFFFC
h”に設定されている。The address counter 62 outputs the counted address to the bus interface 45 and also to one input terminal of the comparator 64. The comparator 64 outputs the address value and the END address output to the other input terminal. The output value of the circuit 69 is compared, and the comparison result is output to the sequencer 61 as a signal / END. In this embodiment, the END address circuit 69 is the last address of the main memory 9, that is, "000FFFFC.
It is set to h ".
【0059】また、コンパレータ63は、その2つの入
力端子に入力された前記スヌーパラッチ回路41からの
ラッチブロックタグとバスインタフェース44により供
給されたシステムバス5内のブロックタグバスの信号B
LOCKTAGとを比較し、その比較結果を信号/MA
TBLKとしてシーケンサ61に出力する。Further, the comparator 63 receives the latch block tag from the snooper latch circuit 41 inputted to its two input terminals and the signal B of the block tag bus in the system bus 5 supplied by the bus interface 44.
LOCKTAG is compared, and the comparison result is signal / MA
It is output to the sequencer 61 as TBLK.
【0060】次に、以上のように構成されたコンピュー
タシステムの処理動作を説明する。Next, the processing operation of the computer system configured as described above will be described.
【0061】本発明に係るコンピュータシステムは、例
えば、UNIX等のマルチタスク処理可能なオペレーテ
ィングシステムが実装され、各プロセス単位または各モ
ジュール単位で複数のプロセッサに処理を分担する並列
処理システムを想定しているが、もちろん、本発明はこ
のシステム構成に制限されるものではない。The computer system according to the present invention is assumed to be, for example, a parallel processing system in which an operating system capable of multitask processing such as UNIX is mounted, and processing is shared by a plurality of processors in each process unit or each module unit. However, of course, the present invention is not limited to this system configuration.
【0062】まず、本実施例のコンピュータシステム上
で動作するプログラムの作成方法等について説明する。First, a method of creating a program that operates on the computer system of this embodiment will be described.
【0063】プログラマは、同一のプロセッサ(本実施
例では、プロセッサエレメント1〜4)で実行する可能
性の高い一連のプログラムに対して同一のブロックタグ
を設定するようにアセンブラに対する宣言を行う。な
お、高級言語のコンパイラの場合には、このブロックタ
グ番号の宣言は自動的に行うことも可能である。本実施
例において使用するアセンブラは、例えば、図4で説明
したようなCPUにより機械語を生成するもので、その
動作時にブロックタグを付加する宣言を検出すると、前
記BLKL命令により、その宣言されたブロックタグを
前記ブロックタグレジスタに書き込み、該書き込まれた
ブロックタグを実行モジュールである生成された機械語
コードに付加して、不図示のワーキングメモリまたはフ
ァイル等に書き込むような制御を行う。The programmer makes a declaration to the assembler so as to set the same block tag for a series of programs that are likely to be executed by the same processor (processor elements 1 to 4 in this embodiment). In the case of a high-level language compiler, the block tag number can be declared automatically. The assembler used in this embodiment is, for example, a machine language generated by a CPU as described in FIG. 4, and when a declaration for adding a block tag is detected during the operation, the assembler declares the machine language. The block tag is written into the block tag register, the written block tag is added to the generated machine language code which is the execution module, and the block tag is written into a working memory or a file (not shown).
【0064】また、プログラマは、既にメインメモリ9
に記憶された制御データを書き換える場合に、前記BL
KR命令により、該制御データに付加されたブロックタ
グを読み出して、新たに生成される制御データに該ブロ
ックタグを付加するようにプログラムすることも可能で
ある。Also, the programmer is already in the main memory 9
When rewriting the control data stored in the
It is also possible to read the block tag added to the control data by the KR instruction and program it to add the block tag to the newly generated control data.
【0065】以上のようにして、ブロックタグの付加さ
れたプログラムやテーブルデータ等(制御データ)が生
成され、該制御データは、図1のI/Oコントローラ1
1を介して、外部ディスク装置10に格納される。この
とき、I/Oコントローラ11はブロックタグを制御デ
ータ(プログラム、テーブルデータ等)の一部として扱
うことにより外部ディスク装置10に格納し、一方、外
部ディスク装置10からブロックタグの付加された制御
データを読み出すときには、ブロックタグをシステムバ
ス5のブロックタグバスに出力し、制御データをシステ
ムバス5のデータバスに出力する。これにより、ブロッ
クタグおよび制御データは、それぞれブロックタグメモ
リ8およびメインメモリ9に格納される。As described above, the program to which the block tag is added, the table data and the like (control data) are generated, and the control data is the I / O controller 1 of FIG.
1 is stored in the external disk device 10. At this time, the I / O controller 11 stores the block tag in the external disk device 10 by handling the block tag as a part of the control data (program, table data, etc.), while controlling the block tag added from the external disk device 10. When reading data, the block tag is output to the block tag bus of the system bus 5, and the control data is output to the data bus of the system bus 5. As a result, the block tag and control data are stored in the block tag memory 8 and the main memory 9, respectively.
【0066】本実施例では、以上の処理をI/Oコント
ローラ11に独立した不図示のプロセッサを使用して行
っているが、これに限らず、例えば前記CPU12を使
用して行うようにしてもよい。In the present embodiment, the above processing is carried out by using a processor (not shown) independent of the I / O controller 11, but the present invention is not limited to this, and it may be carried out by using the CPU 12, for example. Good.
【0067】次に、実際に、本実施例のコンピュータシ
ステムが、以上のようにして生成されたプログラム(制
御データ)を実行するときの処理動作を図9を参照して
説明する。Next, the processing operation when the computer system of this embodiment actually executes the program (control data) generated as described above will be described with reference to FIG.
【0068】図9は、図8のシーケンサ61の状態の遷
移を示す状態遷移図である。FIG. 9 is a state transition diagram showing state transitions of the sequencer 61 of FIG.
【0069】まず、プロセッサエレメント1〜4内の何
れかのCPUが、I/Oコントローラ11に対して、外
部ディスク装置10に格納されているファイル(プログ
ラム)のロードを要求する。この要求に対して、前述し
たように、I/Oコントローラ11は、外部ディスク装
置10から所望のファイルを検索し、そのファイルから
ブロックタグとデータとを分離して、ブロックタグバス
およびデータバスを介して、それぞれブロックタグメモ
リ8およびメインメモリ9の指定アドレスに書き込みを
行う。ファイルの全てのデータの書き込みが終了するす
ると、I/Oコントローラ11は、プロセッサエレメン
ト1〜4の全てのCPUに対して割り込みを発生させ
る。この書き込み終了の割り込みにより、各CPUは各
プロセッサエレメント1〜4内のキャッシュメモリの内
容を全て初期化する。First, one of the CPUs in the processor elements 1 to 4 requests the I / O controller 11 to load a file (program) stored in the external disk device 10. In response to this request, as described above, the I / O controller 11 searches the external disk device 10 for a desired file, separates the block tag and the data from the file, and establishes the block tag bus and the data bus. Write to designated addresses in the block tag memory 8 and the main memory 9, respectively. When the writing of all the data of the file is completed, the I / O controller 11 causes an interrupt to all the CPUs of the processor elements 1 to 4. By this write completion interrupt, each CPU initializes all the contents of the cache memory in each processor element 1 to 4.
【0070】次に、プロセッサエレメント1〜4の何れ
かのCPUが、メインメモリ9に格納されたプログラム
に従って処理動作を開始する。例えば、プロセッサエレ
メント1のCPU12が、処理動作を開始したものとし
て説明を続ける。Next, one of the CPUs of the processor elements 1 to 4 starts the processing operation according to the program stored in the main memory 9. For example, the description will be continued assuming that the CPU 12 of the processor element 1 has started the processing operation.
【0071】CPU12は、メインメモリ9に格納され
たプログラムのスタートアドレスから命令コードのフェ
ッチを開始する。説明の都合上、スタートアドレスは物
理アドレスの0番地であるとし、最初にCPU12は0
番地の命令コードをフェッチするものとする。The CPU 12 starts fetching the instruction code from the start address of the program stored in the main memory 9. For convenience of explanation, the start address is the address 0 of the physical address, and the CPU 12 first sets 0.
The instruction code at the address is fetched.
【0072】以上説明したようなCPU12が処理を開
始するまでの一連の処理は、一般にオペレーティングシ
ステムにより行われるため、その詳細な説明は省略し、
以下、オペレーティングシステムの処理がある程度進行
して、ユーザープログラムのローディングが行われ、プ
ロセッサエレメント1〜4内の各キャッシュメモリが初
期化された状態から説明を行う。Since a series of processing until the CPU 12 starts the processing as described above is generally performed by the operating system, detailed description thereof will be omitted.
Hereinafter, a description will be given from the state where the processing of the operating system has progressed to some extent, the user program has been loaded, and the cache memories in the processor elements 1 to 4 have been initialized.
【0073】なお、云うまでもなく、本発明は、オペレ
ーティングシステムのシステムプログラムに適用するこ
とも可能である。Needless to say, the present invention can also be applied to a system program of an operating system.
【0074】CPU12はアドレス0番地に対してリー
ド動作を行う。キャッシュメモリ13はすでに初期化さ
れているので、このアクセス(リード動作)に対してコ
ンパレータ18によりヒット信号/HITは出力(ロウ
レベル)されず、図5のキャッシュメモリコントローラ
14によってキャッシュミスと判断され、信号/RET
RYがロウレベルとなりCPU12に対してアクセスの
再実行が要求される。CPU12は信号/RETRYに
よってアクセスがターミネートされると前回のアクセス
と同一のアドレスに対するアクセスを再度行う。即ち、
再度0番地に対するアクセスを行う。The CPU 12 performs a read operation on the address 0. Since the cache memory 13 has already been initialized, the hit signal / HIT is not output (low level) by the comparator 18 for this access (read operation), and the cache memory controller 14 of FIG. Signal / RET
RY goes low and the CPU 12 is requested to re-execute the access. When the access is terminated by the signal / RETRY, the CPU 12 again accesses the same address as the previous access. That is,
The address 0 is accessed again.
【0075】2度目のアクセス時には信号REPLAC
Eがロウレベルとなりキャッシュメモリに対して書き込
みを行うための信号/CRAMWが出力(ロウレベル)
される。このとき、キャッシュメモリコントローラ14
からは信号/RETRY,/STERMのターミネーシ
ョン信号がCPU12に対して出力されないので、アク
セスが継続される。バスコントローラ15はCPU12
より出力されたアドレスをデコードし、外部バス(シス
テムバス5)に対するアクセスが必要な場合はバスアー
ビタ6に対しバス使用要求Rを出力する。At the second access, the signal REPLAC
E becomes low level and signal / CRAMW for writing to cache memory is output (low level)
To be done. At this time, the cache memory controller 14
Since no termination signal of signals / RETRY and / STERM is output from CPU to CPU 12, access is continued. The bus controller 15 is the CPU 12
The output address is decoded and a bus use request R is output to the bus arbiter 6 when access to the external bus (system bus 5) is required.
【0076】前述したようにバスアービタ6ではバスの
使用要求の調停を行う。その結果使用許可が与えられる
と、バスコントローラ6はバス使用信号BBを出力しバ
スの使用を開始する。その結果メインメモリの0番地に
対するリード要求がシステムバス5に出力される。この
時点で図8のダイナミックアロケーションコントローラ
42のシーケンサ61は図9の状態遷移図のステート0
の状態にある。As described above, the bus arbiter 6 arbitrates bus use requests. As a result, when the use permission is given, the bus controller 6 outputs the bus use signal BB to start using the bus. As a result, a read request for address 0 in the main memory is output to the system bus 5. At this point, the sequencer 61 of the dynamic allocation controller 42 of FIG. 8 has the state 0 of the state transition diagram of FIG.
Is in the state of.
【0077】このとき、図6のバスインターフェース4
4は信号BUSCONT1によってメモリアクセス可能
状態となる。また、このとき、バスインターフェース4
5はカットオフとなる。したがって、システムバス5上
の0番地に対するリード要求はDRAMコントローラ4
6を介してメインメモリ9に伝送される。その結果、ブ
ロックタグメモリ8から0番地に格納されているブロッ
クタグ“0000h”がシステムバス5上に出力され、
メインメモリ9よりデータ“00000000h”がシ
ステムバス5上に出力される。At this time, the bus interface 4 of FIG.
4 becomes a memory accessible state by the signal BUSCONT1. At this time, the bus interface 4
5 is the cutoff. Therefore, a read request for address 0 on the system bus 5 is issued by the DRAM controller 4
It is transmitted to the main memory 9 via 6. As a result, the block tag "0000h" stored at address 0 is output from the block tag memory 8 onto the system bus 5,
Data “00000000h” is output from the main memory 9 onto the system bus 5.
【0078】CPU12はこのシステムバス5の内容を
CPU内に取り込み、処理を続けると同時にキャッシュ
メモリ13にもこの内容を格納する。これと同時にスヌ
ーパラッチ回路41によってこのリード処理が検出され
る。この検出は以下のようにして行われる。まず、図7
のデコード回路51でメインメモリ9に対するアクセス
であることを検出し、コントロールバス中の信号R//
Wと信号/ASとによりそれが正当なリード処理である
ことを判断する。その結果ORゲート55の出力がロウ
レベルとなりRSフリップフロップ57の出力はロウレ
ベルとなり、リード動作の検出が終了する。The CPU 12 fetches the contents of the system bus 5 into the CPU and stores the contents in the cache memory 13 at the same time as the processing is continued. At the same time, the read process is detected by the snooper latch circuit 41. This detection is performed as follows. First, FIG.
The decoding circuit 51 detects that the main memory 9 is accessed, and the signal R // in the control bus is detected.
It is judged from W and the signal / AS that it is a legitimate read process. As a result, the output of the OR gate 55 becomes low level, the output of the RS flip-flop 57 becomes low level, and the detection of the read operation ends.
【0079】リード動作が検出されると、アドレスラッ
チ回路52にその時のアドレスが、CPUIDラッチ回
路54にその要求を行ったCPUIDが格納される。今
はそれぞれ0番地とCPU12の番号が格納されてい
る。さらにメインメモリ9よりデータが出力され、ブロ
ックタグメモリ8よりブロックタグが出力されると、ア
クノリッジ信号検出回路59によってアクノリッッジ信
号/ACKが検出され、この時のブロックタグの内容
“0000h”がブロックタグラッチ回路53に格納さ
れる。When the read operation is detected, the address at that time is stored in the address latch circuit 52, and the CPUID making the request is stored in the CPUID latch circuit 54. At present, the address 0 and the number of the CPU 12 are stored respectively. Further, when the data is output from the main memory 9 and the block tag is output from the block tag memory 8, the acknowledge signal detection circuit 59 detects the acknowledge signal / ACK, and the content "0000h" of the block tag at this time is the block tag. It is stored in the latch circuit 53.
【0080】これらのラッチ回路54,52,53の出
力はそれぞれ信号/CPU1〜4、ラッチアドレス、ラ
ッチブロックタグの各信号としてダイナミックアロケー
ションコントローラ42に出力される。さらにRSフリ
ップフロップ57の出力は信号/STARTとしてシー
ケンサ61に出力される。The outputs of these latch circuits 54, 52 and 53 are output to the dynamic allocation controller 42 as signals / CPU1 to CPU4, latch address and latch block tag, respectively. Further, the output of the RS flip-flop 57 is output to the sequencer 61 as a signal / START.
【0081】シーケンサ61はこの信号/STARTに
よりステート1に進む。ステート1ではシーケンサ61
はスヌーパラッチ回路41から入力されたラッチアドレ
スをアドレスカウンター62にロードし、信号/ASを
監視する。The sequencer 61 advances to state 1 by this signal / START. Sequencer 61 in state 1
Loads the latch address input from the snooper latch circuit 41 into the address counter 62 and monitors the signal / AS.
【0082】信号/ASがハイレベルになる(転送が終
了する)と、ステート2に進む。When the signal / AS becomes high level (transfer is completed), the state 2 is entered.
【0083】ステート2では、信号BUSCONT1に
よりバスインタフェース44をカットオフの状態とす
る。そして、ステート3に進む。In the state 2, the bus interface 44 is cut off by the signal BUSCONT1. Then, it proceeds to state 3.
【0084】ステート3では、アドレスカウンタ62を
4つカウントアップしバスインタフェース45を開きア
ドレスカウンタ62の出力をアドレスとして、ブロック
タグメモリ8のブロックタグの内容を読みだす。その後
ステート4に進む。In state 3, the address counter 62 is counted up by 4, the bus interface 45 is opened, and the output of the address counter 62 is used as an address to read the contents of the block tag of the block tag memory 8. Then proceed to state 4.
【0085】ステート4では、前述したように、END
アドレス出力回路69に予め設定されたENDアドレス
の値“000FFFFCh”と現在のアドレスカウンタ
62のカウント値とを比較するコンパレータ64の出力
を参照し最終アドレスに到達していれば、ステート10
へ進み、信号/RESETをロウレベルにする。その結
果スヌーパラッチ回路41のRSフリップフロップ57
がセットされ再びバスのスヌープ状態となる。その後ス
テート0へ戻り処理を終了する。今は最終アドレスには
到達していないのでステート5へ進む。このとき、カウ
ンターの出力は“4h”になっているので、これをアド
レスとして読みだしたブロックタグの内容は“0h”に
なっている。In state 4, as described above, END
If the final address has been reached by referring to the output of the comparator 64 that compares the END address value “000FFFFCh” preset in the address output circuit 69 with the current count value of the address counter 62, state 10
Then, the signal / RESET is set to low level. As a result, the RS flip-flop 57 of the snooper latch circuit 41.
Is set and the bus is in the snoop state again. After that, the process returns to the state 0 and the process is completed. Since it has not reached the final address at this time, it proceeds to state 5. At this time, since the output of the counter is "4h", the content of the block tag read with this as an address is "0h".
【0086】ステート5ではシーケンサ61は、ブロッ
クタグメモリ8より入力されたブロックタグの内容と以
前にブロックタグ回路53によりラッチされたラッチブ
ロックタグの内容とを比較するコンパレータ63の比較
結果を参照し、その結果一致しない場合は信号/MAT
BLKがハイレベルとなっているのでステート3へ戻
る。その後アドレスカウンターを4づつ増加させながら
同様の処理を最終アドレスまで継続する。今はブロック
タグの内容とラッチブロックタグの内容とが共に“0
h”で一致するのでステート6へと処理は進む。In state 5, the sequencer 61 refers to the comparison result of the comparator 63 which compares the content of the block tag input from the block tag memory 8 with the content of the latch block tag previously latched by the block tag circuit 53. , If there is no match as a result, signal / MAT
Since BLK is at high level, it returns to state 3. After that, the same process is continued until the final address while incrementing the address counter by 4. Now, the content of the block tag and the content of the latch block tag are both "0".
Since they match in h ″, the process proceeds to state 6.
【0087】ステート6ではバスアービタ6に対してシ
ステムバス5のバス使用の要求を行う。その後バスアー
ビタ6より使用許可が出るとステート7に進む。In state 6, the bus arbiter 6 is requested to use the system bus 5. After that, when the bus arbiter 6 permits the use, the process proceeds to state 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へ進む。In the state 7, the write operation to the cache memory 13 is performed with respect to the processor element 1 which has issued the read request currently latched. This write operation is processed as follows. Sequencer 61
When the signal / WRITE is output (low level), C
CPUID latched in PUID latch circuit 54
(Signal / CPU1, / CPU2, / CPU3, / CPU
4) OR any of the OR gates 65 to 68
The output of the circuit goes low. In this embodiment, the signal / CWR1 which is the output of the OR gate 65 becomes low level. At the same time, the signal R // W is set to high level to open the bus interfaces 44 and 45. As a result, system bus 5
The output from the address counter 62 is output as an address, and the contents of the block tag memory 8 and the main memory 9 are output as a block tag and data. Then proceed to State 8.
【0089】ステート8では信号/ASをロウレベルに
した後、書き込みを行うキャッシュメモリ13からのア
クノリッジ信号/ACKを待つ。In the state 8, after the signal / AS is set to the low level, the acknowledge signal / ACK from the cache memory 13 for writing is waited.
【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に進む。At this point, the processor element 1 has
The signal / CWR1 is input to the bus controller 15, and as a result, the bus controller 15 requests the CPU 12 to release the internal bus. When the CPU 12 notifies that the internal bus has been released, the bus controller 15
Opens the bus interface 17 and the external system bus 5
The above signal is reflected on the internal bus. Further, the signal / MEMWR is set to low level and output to the cache memory controller 14. As a result, in the cache memory controller 14 of FIG. 5, the signal MEMWRITE goes low and the signal / CRAMW goes low.
Therefore, the high-order bits (A15 to A3) of the block tag, the data, and the address read from the block tag memory 8 and the main memory 9 are stored in the cache memory 13.
1) is written, and at the same time, the signal / ACK is output on the system bus 5. If the signal / ACK is detected, the state goes to 9.
【0091】ステート9では信号/ASをハイレベルに
戻し、ステート2に戻る。In the state 9, the signal / AS is returned to the high level and the state 2 is returned.
【0092】以下、上述した動作と同様の動作を終了ア
ドレスまで行う。Hereinafter, the same operation as described above is performed up to the end address.
【0093】以上のように制御が行われ、メインメモリ
9の同一のブロックタグを持つインストラクションコー
ド及びデータが同一のキャッシュメモリに順次書き込ま
れていく。この制御動作がCPU12以外のCPUから
のアクセスにも同様に行われ、その結果各プロセッサエ
レメント内のキャッシュメモリ4に、その時点でその後
の処理においてキャッシュヒットする確率の高いインス
トラクションコード及びデータが効果的に書き込まれ、
共有バスの効率的利用及びキャッシュのヒット率の向上
が得られる。The control is performed as described above, and the instruction code and the data having the same block tag in the main memory 9 are sequentially written in the same cache memory. This control operation is similarly performed for an access from a CPU other than the CPU 12, and as a result, the instruction code and data having a high probability of a cache hit in the subsequent processing at the cache memory 4 in each processor element are effective. Written in
Efficient use of the shared bus and improved cache hit rate are obtained.
【0094】本実施例ではアドレス“4h”,“8
h”,“000FFFF4h”などの内容がCPU12
に付随するキャッシュメモリに書き込まれる。In this embodiment, the addresses "4h", "8"
The contents such as "h" and "000FFFF4h" are stored in the CPU 12
Is written to the cache memory associated with the.
【0095】次に、本発明に係るコンピュータシステム
の他の実施例について説明する。Next, another embodiment of the computer system according to the present invention will be described.
【0096】本実施例の構成は、ダイナミックアロケー
ションコントローラ以外は、第1実施例と同様であるた
め、第1実施例と同一の要素には同一符号を付し、その
詳細な説明は省略する。The configuration of this embodiment is the same as that of the first embodiment except for the dynamic allocation controller. Therefore, the same elements as those of the first embodiment are designated by the same reference numerals, and the detailed description thereof will be omitted.
【0097】図10は、本実施例のダイナミックアロケ
ーションコントローラの詳細な構成を示すブロック図で
ある。FIG. 10 is a block diagram showing the detailed structure of the dynamic allocation controller of this embodiment.
【0098】本実施例のダイナミックアロケーションコ
ントローラが、第1実施例のダイナミックアロケーショ
ンコントローラに対して異なる点は、第1実施例のダイ
ナミックアロケーションコントローラ42に、キャッシ
ュメモリ13にブロックタグを書き込む際にブロックタ
グを検索する度にカウントアップするカウンタ71と、
予め所定のカウント値を設定でき、その値を出力するカ
ウント値出力回路72とを付加した点である。したがっ
て、第1実施例のダイナミックアロケーションコントロ
ーラ42と同一要素には同一符号を付して、その詳細な
説明は省略する。The dynamic allocation controller of this embodiment is different from the dynamic allocation controller of the first embodiment in that the block tag is written in the cache memory 13 in the dynamic allocation controller 42 of the first embodiment. A counter 71 that counts up each time you search for
The point is that a predetermined count value can be set in advance and a count value output circuit 72 that outputs the value is added. Therefore, the same elements as those of the dynamic allocation controller 42 of the first embodiment are designated by the same reference numerals, and detailed description thereof will be omitted.
【0099】カウンタ71の出力はコンパレータ64の
一入力端子に接続され、コンパレータ64の他の入力端
子には、カウント値出力回路の出力が接続されている。
他の要素の接続関係は第1実施例と同様である。The output of the counter 71 is connected to one input terminal of the comparator 64, and the output of the count value output circuit is connected to the other input terminal of the comparator 64.
The connection relationship of other elements is the same as that of the first embodiment.
【0100】図11は、本実施例のシーケンサの状態の
遷移を示す状態遷移図であり、以下、同図を参照して本
実施例のコンピュータシステムの処理動作を説明する。FIG. 11 is a state transition diagram showing the state transition of the sequencer of this embodiment. The processing operation of the computer system of this embodiment will be described below with reference to this figure.
【0101】CPU12による0番地へのアクセスが始
まるまでの動作は実施例と同一である。メインメモリ9
の0番地に対するリード要求がCPU12よりシステム
バス5に出力されると、図10のダイナミックアロケー
ションコントローラのシーケンサ61は図11のステー
ト0の状態にある。The operation until the access to the address 0 by the CPU 12 starts is the same as that of the embodiment. Main memory 9
When a read request for the address 0 is output from the CPU 12 to the system bus 5, the sequencer 61 of the dynamic allocation controller of FIG. 10 is in the state 0 of FIG.
【0102】第1実施例と同様にシーケンサ61の状態
がステート1に進むと、第1実施例で説明した処理に加
えカウンタ71リセットを行う。その後、ステート3ま
での動作は第7実施例と同様である。When the state of the sequencer 61 advances to state 1 as in the first embodiment, the counter 71 is reset in addition to the processing described in the first embodiment. After that, the operation up to the state 3 is the same as in the seventh embodiment.
【0103】ステート3ではアドレスカウンタ62を4
つカウントアップし、図6のバスインタフェース45を
開きカウンタ62の出力をアドレスとして、ブロックタ
グメモリ8のブロックタグの内容を読み出す。さらにカ
ウンタ71のカウント値を1増加する。その後、ステー
ト4に進む。ステート4ではカウント値出力回路72に
予め設定されたカウント数(例えば、本実施例では10
000回に設定されている)とカウンタ71の値とを比
較するコンパレータ64の出力信号/ENDを参照す
る。その結果、設定されたカウント数に到達していれば
ステート0へ戻り処理を終了する。今は終了カウント数
(設定値)に到達していないのでステート5へ進む。ま
た、今、カウンタ62の出力は“4h”になっているの
で、これをアドレスとして読みだしたブロックタグの内
容は“0h”になっている。In state 3, the address counter 62 is set to 4
Then, the bus interface 45 of FIG. 6 is opened and the output of the counter 62 is used as an address to read the contents of the block tag of the block tag memory 8. Further, the count value of the counter 71 is incremented by 1. Then proceed to state 4. In the state 4, the count number preset in the count value output circuit 72 (for example, 10 in this embodiment).
The output signal / END of the comparator 64 that compares the value of the counter 71 with the value of the counter 71 is referred to. As a result, if the set number of counts has been reached, the process returns to state 0 and ends the processing. Since the end count number (setting value) has not yet been reached, the process proceeds to state 5. Further, since the output of the counter 62 is now "4h", the content of the block tag read using this as an address is "0h".
【0104】ステート5ではブロックタグメモリ8より
入力されたブロックタグの内容と前に図7のブロックタ
グラッチ回路によりラッチされたラッチブロックタグの
内容を比較するコンパレータ63の比較結果を参照す
る。その結果、一致しない場合は信号/MATBLKが
ハイレベルとなるのでステート3へもどり、その後アド
レスカウンタ62を4づつ増加させながら同様の処理を
最終アドレス(設定値)まで継続する。今はブロックタ
グおよび出力ラッチブロックタグが共に“0h”となっ
て一致するのでステート6へと処理は進む。In the state 5, the comparison result of the comparator 63 which compares the contents of the block tag input from the block tag memory 8 with the contents of the latch block tag previously latched by the block tag latch circuit of FIG. 7 is referred to. As a result, when they do not match, the signal / MATBLK becomes high level, and therefore the state returns to state 3, and thereafter the same processing is continued until the final address (set value) while incrementing the address counter 62 by 4. Since both the block tag and the output latch block tag are now "0h" and coincide with each other, the process proceeds to state 6.
【0105】その後の処理は第1実施例と同様であるの
で、その説明は省略する。Since the subsequent processing is the same as that of the first embodiment, its explanation is omitted.
【0106】以上のようにして、本実施例では、大規模
のメモリ容量を有するシステムである場合に、必要以上
にブロック検索を継続することがなくなる。As described above, in this embodiment, in the case of a system having a large memory capacity, the block search will not be continued more than necessary.
【0107】[0107]
【発明の効果】以上説明したように、本発明によれば、
複数のプロセッサと、該各プロセッサに付随して設けら
れたキャッシュメモリと、各プロセッサにより共有さ
れ、各プロセッサが実行する複数の制御データから成る
制御情報を記憶する主記憶装置とを備えた並列処理シス
テムにおいて、前記制御データに付加情報を付加する付
加情報付加手段と、該付加情報付加手段により付加情報
が付加された制御データを前記主記憶装置に書き込む書
き込み手段と、前記付加情報付加手段により付加された
付加情報を検出する検出手段と、前記主記憶装置に記憶
された全ての付加情報を検索する検索手段と、該検索手
段により検索された全ての付加情報から前記検出手段に
より所定の付加情報を検出し、該所定の付加情報が付加
された制御データを当該プロセッサに対応するキャッシ
ュメモリに書き込むキャッシュメモリ書き込み手段とを
有するので、各プロセッサのアクセスアドレスが離散し
ていてもキャッシュのヒット率が向上し、また、一度の
キャッシュミスから次のキャッシュミスまでのバスの未
使用時間を利用してヒット率の高い制御データをキャッ
シュメモリに転送することができ、共有資源の有効利用
を図ることが可能となる効果を奏する。特に、制御デー
タの内、テーブルデータ等のデータに関しては大きなヒ
ット率を得ることができる。As described above, according to the present invention,
Parallel processing including a plurality of processors, a cache memory provided in association with the respective processors, and a main storage device which is shared by the respective processors and stores control information composed of a plurality of control data executed by the respective processors In the system, additional information adding means for adding additional information to the control data, writing means for writing control data to which the additional information has been added by the additional information adding means to the main storage device, and addition by the additional information adding means Detecting means for detecting the additional information retrieved, search means for retrieving all the additional information stored in the main storage device, and predetermined additional information by the detecting means from all the additional information retrieved by the retrieving means. Is detected and the control data to which the predetermined additional information is added is written to the cache memory corresponding to the processor. Since it has a cache memory writing means, the cache hit rate is improved even if the access addresses of each processor are dispersed, and it is hit by using the unused time of the bus from one cache miss to the next cache miss. Control data having a high rate can be transferred to the cache memory, and the effective use of shared resources can be achieved. In particular, a large hit rate can be obtained for data such as table data among the control data.
【0108】また、具体的には、前記付加情報付加手段
は、前記付加情報としてブロックタグを付加するブロッ
クタグ付加手段であり、前記各プロセッサは、ブロック
タグを格納するためのブロックタグレジスタと、該ブロ
ックタグレジスタに任意の値を書き込む書き込み命令
と、前記制御データに付加されたブロックタグを参照す
る参照命令とを有し、前記ブロックタグ付加手段は、前
記書き込み命令であり、前記検索手段は、前記参照命令
であるので、ブロックタグの生成および検索用に本シス
テムとは別のプロセッサを使用することなく、本システ
ムを構成するプロセッサによりブロックタグの生成およ
び検索を行うことができ、コストの低減を図ることがで
きる。More specifically, the additional information adding means is block tag adding means for adding a block tag as the additional information, and each processor has a block tag register for storing the block tag. The block tag register has a write command for writing an arbitrary value and a reference command for referencing a block tag added to the control data, the block tag adding means is the write command, and the searching means is Since it is the above-mentioned reference instruction, the block tag can be generated and searched by the processor configuring this system without using a processor different from this system for the generation and search of the block tag. It can be reduced.
【図1】本発明に係るコンピュータシステムの一実施例
の概略構成を示すブロック図である。FIG. 1 is a block diagram showing a schematic configuration of an embodiment of a computer system according to the present invention.
【図2】図1のブロックタグメモリおよびメインメモリ
に記憶されている内容の一例を示すメモリマップであ
る。FIG. 2 is a memory map showing an example of contents stored in a block tag memory and a main memory of FIG.
【図3】図1の各プロセッサエレメントの詳細な構成を
示すブロック図である。FIG. 3 is a block diagram showing a detailed configuration of each processor element in FIG.
【図4】図3のCPUの詳細な構成を示すブロック図で
ある。FIG. 4 is a block diagram showing a detailed configuration of a CPU shown in FIG.
【図5】図3のキャッシュメモリコントローラの詳細な
構成を示すブロック図である。FIG. 5 is a block diagram showing a detailed configuration of the cache memory controller of FIG.
【図6】図1のメモリコントローラの詳細な構成を示す
ブロック図である。FIG. 6 is a block diagram showing a detailed configuration of the memory controller of FIG.
【図7】図6のスヌーパラッチ回路の詳細な構成を示す
ブロック図である。FIG. 7 is a block diagram showing a detailed configuration of the snooper latch circuit of FIG.
【図8】図6のダイナミックアロケーションコントロー
ラの詳細な構成を示すブロック図である。8 is a block diagram showing a detailed configuration of the dynamic allocation controller of FIG.
【図9】図8のシーケンサの状態の遷移を示す状態遷移
図である。9 is a state transition diagram showing state transitions of the sequencer of FIG.
【図10】その他の実施例に係るコンピュータシステム
を構成するダイナミックアロケーションコントローラの
詳細な構成を示すブロック図である。FIG. 10 is a block diagram showing a detailed configuration of a dynamic allocation controller that constitutes a computer system according to another embodiment.
【図11】図10のシーケンサの状態の遷移を示す状態
遷移図である。11 is a state transition diagram showing state transitions of the sequencer of FIG.
12 CPU(ブロックタグ付加手段) 14 キャッシュメモリコントローラ(キャッシュメモ
リ書き込み手段) 61 シーケンサ(検出手段、検索手段)12 CPU (block tag addition means) 14 Cache memory controller (cache memory writing means) 61 Sequencer (detection means, search means)
Claims (3)
付随して設けられたキャッシュメモリと、各プロセッサ
により共有され、各プロセッサが実行する複数の制御デ
ータから成る制御情報を記憶する主記憶装置とを備えた
並列処理システムにおいて、 前記制御データに付加情報を付加する付加情報付加手段
と、該付加情報付加手段により付加情報が付加された制
御データを前記主記憶装置に書き込む書き込み手段と、
前記付加情報付加手段により付加された付加情報を検出
する検出手段と、前記主記憶装置に記憶された全ての付
加情報を検索する検索手段と、該検索手段により検索さ
れた全ての付加情報から前記検出手段により所定の付加
情報を検出し、該所定の付加情報が付加された制御デー
タを当該プロセッサに対応するキャッシュメモリに書き
込むキャッシュメモリ書き込み手段とを有することを特
徴とするコンピュータシステム。1. A plurality of processors, a cache memory provided in association with each processor, and a main storage device that stores control information that is shared by each processor and that is composed of a plurality of control data executed by each processor. A parallel processing system including: additional information adding means for adding additional information to the control data; writing means for writing the control data to which the additional information is added by the additional information adding means to the main storage device;
The detecting means for detecting the additional information added by the additional information adding means, the searching means for searching all the additional information stored in the main storage device, and the all the additional information searched by the searching means A computer system comprising: a cache memory writing unit that detects predetermined additional information by the detection unit and writes the control data to which the predetermined additional information is added to a cache memory corresponding to the processor.
としてブロックタグを付加するブロックタグ付加手段で
あることを特徴とする請求項1記載のコンピュータシス
テム。2. The computer system according to claim 1, wherein the additional information adding means is block tag adding means for adding a block tag as the additional information.
納するためのブロックタグレジスタと、該ブロックタグ
レジスタに任意の値を書き込む書き込み命令と、前記制
御データに付加されたブロックタグを参照する参照命令
とを有し、 前記ブロックタグ付加手段は、前記書き込み命令であ
り、前記検索手段は、前記参照命令であることを特徴と
する請求項2記載のコンピュータシステム。3. Each of the processors includes a block tag register for storing a block tag, a write command for writing an arbitrary value in the block tag register, and a reference command for referring to the block tag added to the control data. 3. The computer system according to claim 2, wherein the block tag adding unit is the write command, and the search unit is the reference command.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5181945A JPH0784971A (en) | 1993-06-28 | 1993-06-28 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5181945A JPH0784971A (en) | 1993-06-28 | 1993-06-28 | Computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0784971A true JPH0784971A (en) | 1995-03-31 |
Family
ID=16109633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5181945A Pending JPH0784971A (en) | 1993-06-28 | 1993-06-28 | Computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0784971A (en) |
Cited By (3)
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 |
-
1993
- 1993-06-28 JP JP5181945A patent/JPH0784971A/en active Pending
Cited By (9)
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 (en) * | 2003-08-19 | 2008-12-17 | 大金工业株式会社 | Freezer device |
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 |
---|---|---|
US10732865B2 (en) | Distributed shared memory using interconnected atomic transaction engines at respective memory interfaces | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
CN110865968B (en) | Multi-core processing device and data transmission method between cores thereof | |
CA1300280C (en) | Central processor unit for digital data processing system including write buffer management mechanism | |
EP0283628A2 (en) | Bus interface circuit for digital data processor | |
EP0303648B1 (en) | Central processor unit for digital data processing system including cache management mechanism | |
JPH03201130A (en) | Data processing system | |
JP4226085B2 (en) | Microprocessor and multiprocessor system | |
JPH03135641A (en) | Microprocessor | |
JPH08263373A (en) | Apparatus and method for snooping in cache | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
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 | |
US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
JP4179677B2 (en) | Multiprocessor device | |
US5623626A (en) | Logical cache memory for multi-processor system | |
JPH02207352A (en) | Method and apparatus for interfacing system controller of multiprocessor system having central processor | |
US20030105929A1 (en) | Cache status data structure | |
JP2001195242A (en) | Data processing system | |
US20020073259A1 (en) | Exclusive access control to a processing resource | |
EP0192578A2 (en) | A multiple bus system including a microprocessor having separate instruction and data interfaces and caches | |
JPH0784971A (en) | Computer system | |
EP0280821A2 (en) | Interface between processor and special instruction processor in digital data processing system | |
JP2872259B2 (en) | Multiprocessor system | |
JPH0353657B2 (en) |