JPH04280346A - Block read control system - Google Patents
Block read control systemInfo
- Publication number
- JPH04280346A JPH04280346A JP3043279A JP4327991A JPH04280346A JP H04280346 A JPH04280346 A JP H04280346A JP 3043279 A JP3043279 A JP 3043279A JP 4327991 A JP4327991 A JP 4327991A JP H04280346 A JPH04280346 A JP H04280346A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- read
- processors
- block
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Bus Control (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 block read control method for an information processing apparatus having a plurality of processors each having a cache and a channel device. In many information processing devices, cache is employed as a means of increasing speed.
【0002】ところでキャッシュのリードミスヒット時
メモリに対して通常複数ワードをブロックリードしてキ
ャッシュに取り込む。一方、チャネル装置もI/Oから
のデータをメモリに転送するために共通バスを使用する
。したがって、共通バスを効率よく、しかも、論理矛盾
を起こさないように使用することが要望されている。By the way, when there is a read mishit in the cache, a plurality of words are usually read in blocks from the memory and taken into the cache. On the other hand, channel devices also use a common bus to transfer data from I/O to memory. Therefore, it is desired to use the common bus efficiently and without causing logical contradictions.
【0003】0003
【従来の技術および発明が解決しようとする課題】複数
のプロセッサ間の排他制御の方法の1つにTest
and Setがある。これは共有領域のセマフォ領
域に対するリードとセマフォビットのセットを1回のア
クセスで行うものである。メモリの共有領域の占有権を
得る際、プロセッサ1はTest and Set
を行って、リードしたデータのセマフォビットが“0”
ならば、その共有領域のアクセスを始められる。(この
時すでにセマフォ領域のセマフォビットは“1”になっ
ている)この後プロセッサ2がTest and
Setを行ってもリードしたデータは“1”になってい
るため占有権を得られずアクセスができない。[Prior Art and Problems to be Solved by the Invention] One of the methods of exclusive control between multiple processors is Test.
and Set. This reads the semaphore area of the shared area and sets the semaphore bit in one access. When acquiring exclusive rights to the shared area of memory, processor 1 performs Test and Set
and the semaphore bit of the read data is “0”
If so, you can start accessing that shared area. (At this time, the semaphore bit in the semaphore area has already become “1”) After that, processor 2 performs Test and
Even if Set is performed, the read data is "1", so exclusive rights cannot be obtained and access cannot be made.
【0004】プロセッサ1のアクセスが終了してセマフ
ォビットに“0”をライトした後プロセッサ2のTes
t and Setが行われると、プロセッサ2が
リードしたセマフォビットは“0”のため、プロセッサ
2はアクセスを始められる。このようにTest a
nd Setを用いた排他制御では、プロセッサ1が
占有権を保持している間、プロセッサ2はTest
and Setを繰り返しながら持っていなければな
らなかった。After processor 1 completes its access and writes "0" to the semaphore bit, processor 2's Tes
When t and Set is performed, the semaphore bit read by processor 2 is "0", so processor 2 can start accessing. In this way, Test a
In exclusive control using nd Set, while processor 1 holds the exclusive right, processor 2
I had to hold it while repeating and Set.
【0005】しかも、そのTest and Se
tの際のメモリリードは、キャッシュを用いることはで
きず、メモリに対して直接リードしなければならなかっ
た。この場合、最初のTest and Setで
セマフォビット“1”の場合、2回目以降はメモリバス
を占有するTest and Setを行うかわり
に、通常のリードを行ってセマフォ領域をキャッシュに
取り込み、キャッシュ上のデータリードを繰り返してセ
マフォビットが“0”になるのを持つ方法が考えられる
。[0005] Moreover, the Test and Se
For memory read at time t, a cache cannot be used and the memory must be read directly. In this case, if the semaphore bit is "1" in the first Test and Set, from the second time onward, instead of performing a Test and Set that occupies the memory bus, a normal read is performed to take the semaphore area into the cache, and the data on the cache is One possible method is to repeatedly read data so that the semaphore bit becomes "0".
【0006】すなわち、キャッシュリードを繰り返して
いるうちに、プロセッサ1がセマフォビットに“0”を
書くと、キャッシュがインバリデーションされるため、
プロセッサ2はメモリ上のデータを読み込む制御に移り
、“0”になったセマフォビットを読み出せる。この後
Test and Setを行って、占有権を得れ
ばよい。この方法は共通バスをTest and
Setの繰り返しでむだ使いをしなくてすむ。That is, if processor 1 writes "0" to the semaphore bit while repeatedly reading the cache, the cache is invalidated.
The processor 2 shifts control to read data on the memory, and can read the semaphore bit that has become "0". After this, Test and Set is performed to obtain exclusive rights. This method tests the common bus
There is no need to waste money by repeating Set.
【0007】ところが、この方法は次の場合矛盾が生じ
る。すなわち、プロセッサ2がTest and
Setを行ってセマフォビットがすでに“1”のため、
通常のメモリリードを行ってミスヒットリードとしてブ
ロックデータを読み込む際、セマフォビットが存在する
1ワードめを読み込んだ直後セマフォビットがプロセッ
サ1によりクリアされ、メモリ上ではセマフォビットが
“0”になっているにもかかわらず、プロセッサ2はそ
れに気付かず、2ワードめ、3ワードめ、4ワードめの
リードを行ってタグライトを行う。However, this method causes a contradiction in the following case. That is, the processor 2 performs Test and
Because the semaphore bit is already “1” after performing Set,
When performing a normal memory read and reading block data as a miss-read, the semaphore bit is cleared by processor 1 immediately after reading the first word in which the semaphore bit exists, and the semaphore bit becomes "0" in the memory. However, the processor 2 does not notice this and reads the second, third, and fourth words and writes the tag.
【0008】するとメモリ上のセマフォビットは“0”
であるのにもかかわらずキャッシュ上のデータセマフォ
ビットは“1”のままである。この矛盾はキャッシュに
データを取り込んでいる間は、インバリデーションを行
っていないことから生じる。従って従来は、排他制御の
際Test andSetは常にメモリからセマフォ
ビットをリードする方法しかとれなかった。Then, the semaphore bit on the memory becomes “0”
Despite this, the data semaphore bit on the cache remains "1". This inconsistency arises because invalidation is not performed while data is being fetched into the cache. Therefore, conventionally, during exclusive control, Test and Set could only always read the semaphore bits from memory.
【0009】一方、そのような場合、ブロックリードを
行っているプロセッサのメモリアクセス要求の優先順位
を最も高くして、ブロックリード中、他のプロセッサま
たはチャネル装置が割り込んでメモリアクセスすること
を禁止する方法も考えられるが、チャネル装置に接続さ
れているI/Oのオーバラン許容時間が短いと、ブロッ
クリードしているプロセッサにより共通バスを占有され
てメモリがアクセスできずにオーバーランを引起こして
しまう。On the other hand, in such a case, the memory access request of the processor performing the block read is given the highest priority, and other processors or channel devices are prohibited from interrupting and accessing the memory while the block is being read. There are other methods that can be considered, but if the overrun tolerance time of the I/O connected to the channel device is short, the common bus will be occupied by the processor reading the block and the memory cannot be accessed, causing an overrun. .
【0010】従って、この方法を用いるシステムにはオ
ーバーランの許容時間が短いI/Oは接続できないとう
問題が生じる。本発明は、このような従来の問題点に鑑
みてなされたものであって、論理矛盾を起こさず共通バ
スを効率よく使用することができ、かつ、オーバーラン
許容時間が短いI/Oも接続することができるブロック
リード制御方式を提供することを目的としている。[0010] Therefore, a problem arises in a system using this method in that I/Os with a short allowable overrun time cannot be connected. The present invention has been made in view of these conventional problems, and is capable of efficiently using a common bus without causing logical contradictions, and also connects I/O with a short allowable overrun time. The purpose of this paper is to provide a block read control method that can perform the following tasks.
【0011】[0011]
【課題を解決するための手段】図1は本発明の原理説明
図である。図1において、1,2はキャッシュ3,4を
有する複数のプロセッサ、5はチャネル装置、8は共通
バス7を経由してアクセスされるメモリ、17Aは前記
プロセッサ1,2のメモリリードがミスヒットのときで
メモリ8からのブロックリードの間、他プロセッサ1,
2のアクセスを抑止する抑止手段、17Bはブロックリ
ードの途中に前記チャネル装置5からのメモリアクセス
要求があったときその要求を優先させる優先手段、11
Aはその時のチャネル装置5からのメモリライトアドレ
スがプロセッサ1,2のキャッシュ3,4にヒットした
ときはアドレスセットされたデータを無効にする無効手
段である。[Means for Solving the Problems] FIG. 1 is a diagram illustrating the principle of the present invention. In FIG. 1, 1 and 2 are a plurality of processors having caches 3 and 4, 5 is a channel device, 8 is a memory accessed via a common bus 7, and 17A is a memory read miss of the processors 1 and 2. During block read from memory 8, other processors 1,
17B is a priority means for prioritizing a memory access request from the channel device 5 during a block read;
A is an invalidation means that invalidates the data set in the address when the memory write address from the channel device 5 hits the caches 3 and 4 of the processors 1 and 2 at that time.
【0012】0012
【作用】本発明においては、プロセッサ1のメモリリー
ドにおけるミスヒットの際、メモリ8からのブロックリ
ードの間、他プロセッサ2のアクセスを抑止する。これ
により、プロセッサ1のブロックリード中、プロセッサ
2のメモリライトによるセマフォビットのクリアは起き
ない。In the present invention, when there is a mishit in memory read by processor 1, access by other processors 2 is inhibited during block read from memory 8. As a result, while processor 1 is reading a block, the semaphore bit is not cleared by processor 2's memory write.
【0013】したがって、プロセッサ1はセマフォ領域
をブロックリードにもキャッシュ3の内容とメモリ8の
内容の一致性は保証される。ブロックリードの途中にチ
ャネル装置5からのメモリアクセス要求があった場合、
その要求を優先させ、その時のチャネル装置5からのメ
モリライトアドレスがプロセッサ1のキャッシュ3にヒ
ットした場合、アドレスヒットされたデータを無効にす
る。Therefore, even when the processor 1 performs a block read of the semaphore area, the consistency between the contents of the cache 3 and the contents of the memory 8 is guaranteed. If there is a memory access request from the channel device 5 during block read,
Priority is given to that request, and if the memory write address from the channel device 5 at that time hits the cache 3 of the processor 1, the data for which the address was hit is invalidated.
【0014】したがって、プロセッサ1は、同じ領域へ
の次のアクセス時、キャッシュ3はミスヒットするため
、再びメモリ8のデータをリードすることができる。
このように、論理矛盾を起こさずに共通バス7を効率よ
く使用することができ、かつ、オーバーラン許容時間の
少ないI/Oも接続することができる。[0014] Therefore, the processor 1 can read the data in the memory 8 again since the cache 3 will have a miss on the next access to the same area. In this way, the common bus 7 can be used efficiently without causing logical contradictions, and I/Os with a short allowable overrun time can also be connected.
【0015】[0015]
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図2〜図4は本発明の第1実施例を示す図である
。図2において、1,2はプロセッサであり、プロセッ
サ1,2はキャッシュ3,4をそれぞれ内蔵している。
5はチャネル装置であり、チャネル装置5には入出力装
置(I/O)6が接続されている。Embodiments Hereinafter, embodiments of the present invention will be explained based on the drawings. 2 to 4 are diagrams showing a first embodiment of the present invention. In FIG. 2, 1 and 2 are processors, and the processors 1 and 2 have built-in caches 3 and 4, respectively. 5 is a channel device, and an input/output device (I/O) 6 is connected to the channel device 5.
【0016】プロセッサ1,2およびチャネル装置5は
共通バス7を経由してメモリ8にアクセスを行う。ここ
で、図2中、REQ1はプロセッサ1のメモリアクセス
要求信号、REQ2はプロセッサ2のメモリアクセス要
求信号、REQCはチャネル装置5のメモリアクセス要
求信号、LOCKは他プロセッサ1,2のメモリアクセ
ス要求を抑止する信号である。Processors 1, 2 and channel device 5 access memory 8 via common bus 7. Here, in FIG. 2, REQ1 is a memory access request signal of processor 1, REQ2 is a memory access request signal of processor 2, REQC is a memory access request signal of channel device 5, and LOCK is a memory access request signal of other processors 1 and 2. This is a signal to be suppressed.
【0017】プロセッサ1のブロックリード時、REQ
1を連続して出力して、メモリアクセスを行うと同時に
、LOCK信号をプロセッサ2に対して出力する。プロ
セッサ2はプロセッサ1のブロックリード中メモリアク
セス要求REQ2を出力しても、プロセッサ1からのL
OCK信号が入力されているため、メモリアクセスが抑
止される。When processor 1 reads a block, REQ
1 is output continuously to perform memory access, and at the same time, a LOCK signal is output to the processor 2. Even if processor 2 outputs memory access request REQ2 during block read from processor 1,
Since the OCK signal is input, memory access is inhibited.
【0018】このため、プロセッサ1のブロックリード
中、プロセッサ2のメモリライトによるセマフォビット
のクリアは起きない。従ってプロセッサ1はセマフォ領
域をブロックリードしてもキャッシュの内容とメモリの
内容の一致性は保証される。一方、LOCK信号はチャ
ネル装置5には入力されていないため、チャネル装置5
からのREQCが出力されると、プロセッサ1がブロッ
クリード中でも、途中でチャネル装置5のメモリアクセ
スが行われる。Therefore, while processor 1 is reading a block, the semaphore bit is not cleared by memory write by processor 2. Therefore, even if the processor 1 performs a block read of the semaphore area, the consistency between the contents of the cache and the contents of the memory is guaranteed. On the other hand, since the LOCK signal is not input to the channel device 5, the channel device 5
When REQC is output from the processor 1, the memory access of the channel device 5 is performed in the middle even when the processor 1 is reading a block.
【0019】このように常にチャネル装置のメモリアク
セス要求が優先されるため、オーバーラン許容時間の短
いI/O6も接続できる。また、チャネル装置5とプロ
セッサ1,2の排他制御は、セマフォ領域を用いないた
めプロセッサ1,2間の排他制御のような問題は生じな
い。すなわち、チャネル装置5がI/O6からメモリ8
にデータ転送するメモリ領域は、常にプロセッサ1,2
の制御プログラム(オペレーティングシステム)が指定
した領域に限られるため、セマフォ領域にライトするこ
とはありえない。[0019] Since the memory access request of the channel device is always prioritized in this way, even I/Os 6 with short allowable overrun times can be connected. In addition, exclusive control between the channel device 5 and the processors 1 and 2 does not use a semaphore area, so the problem unlike the exclusive control between the processors 1 and 2 does not occur. That is, the channel device 5 connects the I/O 6 to the memory 8.
The memory area for data transfer to processors 1 and 2 is always
It is impossible to write to the semaphore area because it is limited to the area specified by the control program (operating system).
【0020】但し、チャネル装置5がライトした領域が
、各プロセッサ1,2のキャッシュ3,4にヒットした
場合は、当然キャッシュ3,4の無効化を行わなければ
ならない。この時の無効化の領域は、当然ブロックリー
ド中の領域は別領域となる。次に、前記プロセッサ1,
2の内部構成を図3に示す。図3おいて、11はメイン
メモリインタフェースコントローラ、12は自己のキャ
ッシュ3,4のディレクトリに登録されているメインメ
モリ領域への他プロセッサ1,2またはDMAによるラ
イトを監視する監視ディレクトリ(WatchingD
irectory)である。However, if the area written by the channel device 5 hits the caches 3 and 4 of each of the processors 1 and 2, the caches 3 and 4 must of course be invalidated. Naturally, the invalidation area at this time is a different area from the area where the block is being read. Next, the processor 1,
The internal configuration of 2 is shown in FIG. In FIG. 3, 11 is a main memory interface controller, and 12 is a monitoring directory (WatchingD) that monitors writes by other processors 1, 2 or DMA to main memory areas registered in the directories of its own caches 3, 4.
irectory).
【0021】13はメインメモリインタフェースにおけ
るアドレスバス、14はメインメモリインタフェースに
おけるデータバス、15は自己のキャッシュ3,4のデ
ィレクトリメモリ(タグメモリ)、16はキャッシュ3
,4のバッファメモリ、17はMPU、18はアドレス
レジスタ、19はデータレジスタ、20はアドレスバス
、21はデータバス、22はヒット信号、23はヒット
番号保持用レジスタであり、第1ステージの内容が第2
ステージで保持されるもの、24はバッファメモリアド
レス保持用レジスタであり、第1ステージの内容が第2
ステージで保持されるものである。13 is an address bus in the main memory interface, 14 is a data bus in the main memory interface, 15 is the directory memory (tag memory) of the own caches 3 and 4, and 16 is the cache 3
, 4 are buffer memories, 17 is an MPU, 18 is an address register, 19 is a data register, 20 is an address bus, 21 is a data bus, 22 is a hit signal, 23 is a hit number holding register, and the contents of the first stage are is the second
What is held in the stage, 24 is a register for holding the buffer memory address, and the contents of the first stage are stored in the second stage.
It is something that is held on stage.
【0022】アドレスレジスタ18のアドレスは、バッ
ファメモリアドレス保持用レジスタ24、タグメモリ1
5およびメインメモリインタフェースコントローラ11
に与えられ、リードヒットした場合には、キャッシュ3
,4のバッファメモリ16からデータがデータレジスタ
19内に格納される。また、ミスヒットした場合には、
タグメモリ15よりミスヒット信号がメインメモリイン
タフェースコントローラ11に与えられ、その後データ
バス14を介してメモリ8からデータがデータレジスタ
19内に格納される。The address of the address register 18 is stored in the buffer memory address holding register 24 and the tag memory 1.
5 and main memory interface controller 11
and if there is a read hit, cache 3
, 4 is stored in the data register 19. Also, in case of a mis-hit,
A miss signal is applied from the tag memory 15 to the main memory interface controller 11, and then data is stored in the data register 19 from the memory 8 via the data bus 14.
【0023】また、チャネル装置5からのメモリライト
アドレスがプロセッサ1,2のキャッシュ3,4にヒッ
トした場合には、メインメモリインタフェースコントロ
ーラ1の監視ディレクトリ12よりタグメモリ15に無
効信号(INVL)が出力され、アドレスセットされた
データが無効にされる。MPU17は、プロセッサ1,
2のメモリリードがミスヒットのときでメモリ8からの
ブロックリードの間、他プロセッサ1,2のアクセスを
抑止する抑止手段17Aおよびブロックリードの途中に
前記チャネル装置5からのメモリアクセス要求があった
ときその要求を優先させる優先手段17Bとしての機能
を有する。Furthermore, when the memory write address from the channel device 5 hits the caches 3 and 4 of the processors 1 and 2, an invalidation signal (INVL) is sent to the tag memory 15 from the monitoring directory 12 of the main memory interface controller 1. The output and address-set data are invalidated. The MPU 17 is a processor 1,
2 is a miss, and during the block read from the memory 8, there is a memory access request from the channel device 5 during the inhibiting means 17A for suppressing access by other processors 1 and 2, and during the block read. It has a function as a priority means 17B that prioritizes the request.
【0024】また、メインメモリインタフェースコント
ローラ11は、チャネル装置5からのメモリライトアド
レスがプロセッサ1,2のキャッシュ3,4にヒットし
たときアドレスセットされたデータを無効にする無効手
段11Aとしての機能を有する。次に動作を説明する。The main memory interface controller 11 also functions as an invalidating means 11A for invalidating the data set in the address when the memory write address from the channel device 5 hits the caches 3 and 4 of the processors 1 and 2. have Next, the operation will be explained.
【0025】図4は動作を説明するためのタイムチャー
トである。図4において、CLKはシステム全体を同期
させる同期クロック、REQ1,2、REQC,LOC
K、INVLは前述した各信号、TAGWはキャッシュ
3,4のタグライトのタイミング信号、MAB、MDB
は前述した各バス、A1−1はプロセッサ1のブロック
リード時の1番めのリードのアドレス、A1−2はプロ
セッサ1のブロックリード時の2番めのリードのアドレ
ス、A1−3はプロセッサ1のブロックリード時の3番
めのリードのアドレス、A1−4はプロセッサ1のブロ
ックリード時の4番めのリードのアドレス、A2はプロ
セッサ2のライトアドレス、ACはチャネル装置5のラ
イトアドレスである。FIG. 4 is a time chart for explaining the operation. In FIG. 4, CLK is a synchronization clock that synchronizes the entire system, REQ1, 2, REQC, LOC.
K and INVL are the aforementioned signals, TAGW is the tag write timing signal for caches 3 and 4, MAB, MDB
are each of the aforementioned buses, A1-1 is the address of the first read when processor 1 reads a block, A1-2 is the address of the second read when processor 1 reads block, and A1-3 is the address of processor 1 when reading the block. A1-4 is the address of the fourth read when processor 1 reads a block, A2 is the write address of processor 2, and AC is the write address of channel device 5. .
【0026】D1−1はプロセッサ1によるブロックリ
ードの最初のリードデータ、D1−2はプロセッサ1に
よるブロックリードの2番めのリードデータ、D1−3
はプロセッサ1によるブロックリードの3番めのリード
データ、D1−4はプロセッサ1によるブロックリード
の4番めのリードデータ、DCはチャネル装置5のライ
トデータ、D2−1はプロセッサ2のライトデータであ
る。D1-1 is the first read data of the block read by the processor 1, D1-2 is the second read data of the block read by the processor 1, D1-3
is the third read data of the block read by processor 1, D1-4 is the fourth read data of the block read by processor 1, DC is the write data of channel device 5, and D2-1 is the write data of processor 2. be.
【0027】ここで、プロセッサ1はLOCK信号をτ
2〜τ5の期間プロセッサ2に送出することにより、プ
ロセッサ2が割込んでメモリアクセスすることを抑止し
ている。但し、τ4でチャネル装置5のメモリアクセス
を許すことによりI/O6のオーバーランを防いでいる
。また、τ4ではINVL信号がタグメモリ15に送出
され、アドレスセットされたデータが無効にされる。
したがって、次の同一領域のキャッシュリードではミス
ヒットし、プロセッサ1は再びメモリ8のデータをリー
ドすることができる。Here, the processor 1 transmits the LOCK signal to τ
By sending the data to the processor 2 for a period of 2 to τ5, the processor 2 is prevented from interrupting and accessing the memory. However, overrun of the I/O 6 is prevented by allowing the channel device 5 to access the memory at τ4. Further, at τ4, an INVL signal is sent to the tag memory 15, and the data for which the address has been set is invalidated. Therefore, the next cache read of the same area will result in a miss, and the processor 1 can read the data in the memory 8 again.
【0028】このように、論理矛盾を起こさずに共通バ
ス7を効率よく使用することができ、かつ、オーバーラ
ン許容時間の少ないI/O6も接続することができる。
次に、図5および図6は本発明の第2実施例を示す図で
ある。図5において、MPU17は、キャッシュ3,4
のタグライトのタイミングをブロックリードの最初のワ
ードのリード時に設定する設定手段17Cおよび前記プ
ロセッサ1,2のメモリリードがミスヒットのときでメ
モリ8からのブロックリードの間、他プロセッサ1,2
または前記チャネル装置5からのメモリアクセス要求が
あったときその要求を優先させる優先手段17Dとして
の機能を有する。In this way, the common bus 7 can be used efficiently without causing logical contradictions, and I/Os 6 with a short allowable overrun time can also be connected. Next, FIGS. 5 and 6 are diagrams showing a second embodiment of the present invention. In FIG. 5, the MPU 17 has caches 3 and 4.
setting means 17C for setting the tag write timing when reading the first word of a block read;
Alternatively, when there is a memory access request from the channel device 5, it functions as a priority means 17D that gives priority to the request.
【0029】また、メインメモリインタフェースコント
ローラ11は、他プロセッサ1,2またはチャネル装置
5からのメモリライトアドレスがブロックリード中のキ
ャッシュ3,4にヒットしたときはアドレスセットされ
たデータを無効にする無効手段11Bとしての機能を有
している。なお、本実施例においてはプロセッサ1,2
内のLOCK信号は使用されない。Furthermore, when a memory write address from another processor 1, 2 or channel device 5 hits the cache 3, 4 during a block read, the main memory interface controller 11 invalidates the data set in the address. It has a function as means 11B. Note that in this embodiment, processors 1 and 2
The LOCK signal within is not used.
【0030】次に、図6に示すタイムチャートにより動
作を説明する。図6中の符号は、前記実施例と同様で意
味をもつ。TAGW信号は、ブロックリードの最初のワ
ーのワードのリード時にオンとなるようにMPU17に
より設定される。ブロックリード時のタグライトのタイ
ミングを一番めのリードのアドレス送出時に行うことに
より、たとえ次のサイクルでプロセッサ2のメモリライ
トによって、ブロックリードしたメモリ領域にライトが
行われても即座に、インバリデーションを行うことによ
り、以降のブロックのリードのデータを無効化にするこ
とができ、次の同一領域のキャッシュリードではミスヒ
ットし、メモリ8の最初のデータすなわちプロセッサ2
がライトしたデータをリードすることができる。Next, the operation will be explained using the time chart shown in FIG. The symbols in FIG. 6 have the same meanings as in the previous embodiment. The TAGW signal is set by the MPU 17 to be turned on when reading the first word of a block read. By timing the tag write when reading a block at the same time as sending the address of the first read, even if the memory area from which the block was read is written in the next cycle by processor 2's memory write, the write will be performed immediately. By performing validation, the data read from subsequent blocks can be invalidated, and the next cache read from the same area will result in a miss, and the first data in memory 8, that is, the processor 2
The data written by can be read.
【0031】このようにして、キャッシュ3とメモリ8
のデータ不一致を防ぐことができる。すなわち、τ2に
よりタグライトを行うことにより、τ3でプロセッサ2
のメモリライトにより、プロセッサ1のブロックリード
領域がヒットしても、即座にインバリデーション(IN
VL=1)を行うことにより、ブロックリードのキャッ
シュ3を無効化にするので、プロセッサ1は、同じ領域
への次のアクセス時、キャッシュ3はミスヒットするた
め、再びメモリ8のデータをリードすることにより(τ
9〜τ12)、論理矛盾を起こさない。In this way, cache 3 and memory 8
Data inconsistency can be prevented. In other words, by performing tag write using τ2, processor 2 writes using τ3.
Even if the block read area of processor 1 is hit by a memory write of , an invalidation (IN
VL=1) invalidates the block read cache 3, so the next time the processor 1 accesses the same area, there will be a miss in the cache 3, so it will read the data in the memory 8 again. By (τ
9 to τ12), does not cause logical contradiction.
【0032】本実施例においても、前記実施例と同様な
効果を得ることができる。次に、図7および図8は本発
明の第3実施例を示す図である。図7において、MPU
17は、前記第2実施例に加えて、アドレスセットされ
たデータを無効にしたときブロックリードの残りのワー
ドのリードを中止する中止手段17Eとしての機能を有
する。[0032] In this embodiment as well, the same effects as in the previous embodiment can be obtained. Next, FIGS. 7 and 8 are diagrams showing a third embodiment of the present invention. In FIG. 7, MPU
In addition to the second embodiment, reference numeral 17 has a function as a stop means 17E for stopping reading of the remaining words of the block read when the data for which the address has been set is invalidated.
【0033】次に、図8は本実施例のタイムチャートを
示す。図8中の符号は、前記実施例と同様な意味をもつ
。プロセッサ1のブロックリード中、プロセッサ2のラ
イトしたアドレスが、プロセッサ1のブロックリード中
のブロックにヒットした場合、そのブロックに対するイ
ンバリデーションを行うと共に、それ以降のプロセッサ
1のブロックリードの残りのワードを中止し、次の動作
に移る。Next, FIG. 8 shows a time chart of this embodiment. The symbols in FIG. 8 have the same meanings as in the previous embodiment. During a block read by processor 1, if the address written by processor 2 hits the block being read by processor 1, that block is invalidated and the remaining words of the subsequent block read by processor 1 are invalidated. Abort and move on to the next operation.
【0034】ブロックリード領域がセマフォ領域である
場合は最初のリードでセマフォビットが“1”であるた
め、再び同じ領域をリードする動作を行うが、そのため
のアドレス送出を前のブロックリードの中止後、すみや
かにτ5以降で行う。すなわち、τ3でインバリデーシ
ョンが行われたため、τ5以降のブロックリードは中止
され、τ6から再び新たにブロックリードを開始してい
る。If the block read area is a semaphore area, the semaphore bit is "1" at the first read, so the same area is read again, but the address transmission for this is not performed after the previous block read is stopped. , immediately after τ5. That is, since invalidation was performed at τ3, block reading after τ5 is stopped, and a new block read is started again from τ6.
【0035】本実施例においても、前記実施例と同様な
効果が得られる。[0035] In this embodiment as well, the same effects as in the previous embodiment can be obtained.
【0036】[0036]
【発明の効果】以上説明してきたように、本発明によれ
ば、論理矛盾を起こさずに共通バスを効率よく使用する
ことができ、システム性能を向上させることができる。
また、オーバーラン許容時間が少ないI/Oも接続する
ことができ、システム適用性を向上させることができる
。As described above, according to the present invention, a common bus can be used efficiently without causing logical contradictions, and system performance can be improved. Furthermore, I/Os with a short allowable overrun time can also be connected, and system applicability can be improved.
【図1】本発明の原理説明図[Fig. 1] Diagram explaining the principle of the present invention
【図2】本発明の第1実施例に係る情報処理装置を示す
図FIG. 2 is a diagram showing an information processing device according to the first embodiment of the present invention.
【図3】プロセッサの内部構成図[Figure 3] Internal configuration diagram of processor
【図4】動作を説明するためのタイムチャート[Figure 4] Time chart for explaining operation
【図5】
本発明の第2実施例に係るプロセッサを示す図[Figure 5]
A diagram showing a processor according to a second embodiment of the present invention
【図6】
動作を説明するためのタイムチャート[Figure 6]
Time chart to explain operation
【図7】本発明の
第3実施例に係るプロセッサを示す図FIG. 7 is a diagram showing a processor according to a third embodiment of the present invention.
【図8】動作を説
明するためのタイムチャート[Figure 8] Time chart for explaining operation
1,2:プロセッサ
3,4:キャッシュ
5:チャネル装置
6:入出力装置(I/O)
7:共通バス
8:メモリ
11:メインメモリインタフェースコントローラ11A
,11B:無効手段
12:監視ディレクトリ
13:アドレスバス
14:データバス
15:ディレクトリメモリ(タグメモリ)16:バッフ
ァメモリ
17:MPU
17A:抑止手段
17B,17D:優先手段
17C:設定手段
17E:中止手段
18:アドレスレジスタ
19:データレジスタ
20:アドレスバス
21:データバス
22:ヒット信号
23:ヒット番号保持用レジスタ1, 2: Processor 3, 4: Cache 5: Channel device 6: Input/output device (I/O) 7: Common bus 8: Memory 11: Main memory interface controller 11A
, 11B: Invalidation means 12: Monitoring directory 13: Address bus 14: Data bus 15: Directory memory (tag memory) 16: Buffer memory 17: MPU 17A: Suppression means 17B, 17D: Priority means 17C: Setting means 17E: Cancellation means 18: Address register 19: Data register 20: Address bus 21: Data bus 22: Hit signal 23: Register for holding hit number
Claims (3)
プロセッサ(1),(2)およびチャネル装置(5)が
共通バス(7)を経由してメモリ(8)にアクセスする
情報処理装置において、前記プロセッサ(1),(2)
のメモリリードがミスヒットのときでメモリ(8)から
のブロックリードの間、他プロセッサ(1),(2)の
アクセスを抑止する抑止手段(17A)と、ブロックリ
ードの途中に前記チャネル装置(5)からのメモリアク
セス要求があったときその要求を優先させる優先手段(
17B)と、その時のチャネル装置(5)からのメモリ
ライトアドレスがプロセッサ(1),(2)のキャッシ
ュ(3),(4)にヒットしたときはアドレスセットさ
れたデータを無効にする無効手段(11A)を設け、ブ
ロックリードを行うことを特徴とするブロックリード制
御方式。Claim 1: Information processing in which a plurality of processors (1), (2) having caches (3), (4) and a channel device (5) access a memory (8) via a common bus (7). In the apparatus, the processors (1), (2)
A suppressing means (17A) for suppressing access by other processors (1) and (2) during a block read from the memory (8) when the memory read of the block is a mishit, 5) Priority means for giving priority to memory access requests from
17B) and invalidation means for invalidating the data set in the address when the memory write address from the channel device (5) at that time hits the caches (3) and (4) of the processors (1) and (2). A block read control method characterized by providing (11A) and performing block read.
プロセッサ(1),(2)およびチャネル装置(5)が
共通バス(7)を経由してメモリ(8)にアクセスする
情報処理装置において、前記キャッシュ(3),(4)
のタグライトのタイミングをブロックリードの最初のワ
ードのリード時に設定する設定手段(17C)と、前記
プロセッサ(1),(2)のメモリリードがミスヒット
のときでメモリ(8)からのブロックリードの間、他プ
ロセッサ(1),(2)または前記チャネル装置(5)
からのメモリアクセス要求があったときその要求を優先
させる優先手段(17D)と、その時の他プロセッサ(
1),(2)またはチャネル装置(5)からのメモリラ
イトアドレスがブロックリード中のキャッシュ(3),
(4)にヒットしたときはアドレスセットされたデータ
を無効にする無効手段(11B)を設け、ブロックリー
ドを行うことを特徴とするブロックリード制御方式。Claim 2: Information processing in which a plurality of processors (1), (2) having caches (3), (4) and a channel device (5) access a memory (8) via a common bus (7). In the device, the caches (3) and (4)
a setting means (17C) for setting the tag write timing when reading the first word of a block read; and a setting means (17C) for setting the timing of the tag write from the memory (8) when the memory read of the processors (1) and (2) is a miss. while the other processors (1), (2) or the channel device (5)
A priority means (17D) for prioritizing a memory access request when there is a memory access request from the other processor (17D);
1), (2) or the cache (3) where the memory write address from the channel device (5) is being read from the block.
(4) A block read control method characterized in that when a hit occurs, an invalidation means (11B) is provided to invalidate the data set in the address, and the block read is performed.
したときブロックリードの残りのワードのリードを中止
する中止手段(17E)を設け、ブロックリードの中止
後再び同じ領域のブロックリードを行うことを特徴とす
る請求項2のブロックリード制御方式。3. A stop means (17E) is provided for stopping the reading of the remaining words of the block read when the data set in the address is invalidated, so that the block read of the same area is performed again after the block read is stopped. The block read control method according to claim 2, characterized in that:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3043279A JP2825983B2 (en) | 1991-03-08 | 1991-03-08 | Information processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3043279A JP2825983B2 (en) | 1991-03-08 | 1991-03-08 | Information processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04280346A true JPH04280346A (en) | 1992-10-06 |
| JP2825983B2 JP2825983B2 (en) | 1998-11-18 |
Family
ID=12659370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3043279A Expired - Fee Related JP2825983B2 (en) | 1991-03-08 | 1991-03-08 | Information processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2825983B2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006285872A (en) * | 2005-04-04 | 2006-10-19 | Canon Inc | Multi CPU system |
| JP2016038829A (en) * | 2014-08-11 | 2016-03-22 | 大日本印刷株式会社 | Electronic information recording medium, processor module operation control method, and processor module operation control program |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58212694A (en) * | 1982-03-25 | 1983-12-10 | ウエスタ−ン・エレクトリツク・カムパニ−・インコ−ポレ−テツド | Memory system |
| JPS62266634A (en) * | 1986-05-14 | 1987-11-19 | Yokogawa Electric Corp | Access control circuit for cache memory |
| JPS647144A (en) * | 1987-06-30 | 1989-01-11 | Toshiba Corp | Cache memory control system |
-
1991
- 1991-03-08 JP JP3043279A patent/JP2825983B2/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58212694A (en) * | 1982-03-25 | 1983-12-10 | ウエスタ−ン・エレクトリツク・カムパニ−・インコ−ポレ−テツド | Memory system |
| JPS62266634A (en) * | 1986-05-14 | 1987-11-19 | Yokogawa Electric Corp | Access control circuit for cache memory |
| JPS647144A (en) * | 1987-06-30 | 1989-01-11 | Toshiba Corp | Cache memory control system |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006285872A (en) * | 2005-04-04 | 2006-10-19 | Canon Inc | Multi CPU system |
| JP2016038829A (en) * | 2014-08-11 | 2016-03-22 | 大日本印刷株式会社 | Electronic information recording medium, processor module operation control method, and processor module operation control program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2825983B2 (en) | 1998-11-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6070231A (en) | Method and apparatus for processing memory requests that require coherency transactions | |
| US5893153A (en) | Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control | |
| US4449183A (en) | Arbitration scheme for a multiported shared functional device for use in multiprocessing systems | |
| US5717873A (en) | Deadlock avoidance mechanism and method for multiple bus topology | |
| JPH04500570A (en) | Address-based priority locking storage for shared memory | |
| WO1997034228A1 (en) | Information processor with snoop suppressing function, memory controller, and direct memory access processing method | |
| US6862646B2 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
| JP2825983B2 (en) | Information processing device | |
| JPS63292348A (en) | Data processor | |
| US5809534A (en) | Performing a write cycle to memory in a multi-processor system | |
| US5696938A (en) | Computer system permitting mulitple write buffer read-arounds and method therefor | |
| JPS593774A (en) | Access processing system | |
| JP3381079B2 (en) | Exclusive control system using cache memory | |
| JP4592944B2 (en) | CPU interface circuit | |
| JPH04130551A (en) | Cache control method | |
| JPH02110646A (en) | Memory advance reading device | |
| JP4220258B2 (en) | High-speed memory access method in non-cache area | |
| JP3145765B2 (en) | Information processing device | |
| JP3298504B2 (en) | Memory controller | |
| KR940022284A (en) | Access Control Method of Shared Memory | |
| JP2001229074A (en) | Memory controller and information processor and memory control chip | |
| JPH02307123A (en) | Computer | |
| JP2677706B2 (en) | Memory access control circuit | |
| KR100286344B1 (en) | Snooping cycle remove apparatus for cache | |
| JPS638849A (en) | Chche memory control system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970701 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19980818 |
|
| LAPS | Cancellation because of no payment of annual fees |