JP2885168B2 - Data reply method in multiprocessor system - Google Patents

Data reply method in multiprocessor system

Info

Publication number
JP2885168B2
JP2885168B2 JP8055498A JP5549896A JP2885168B2 JP 2885168 B2 JP2885168 B2 JP 2885168B2 JP 8055498 A JP8055498 A JP 8055498A JP 5549896 A JP5549896 A JP 5549896A JP 2885168 B2 JP2885168 B2 JP 2885168B2
Authority
JP
Japan
Prior art keywords
data
processor
owner signal
timing
owner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP8055498A
Other languages
Japanese (ja)
Other versions
JPH09223119A (en
Inventor
正史 米崎
伸二 上野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8055498A priority Critical patent/JP2885168B2/en
Publication of JPH09223119A publication Critical patent/JPH09223119A/en
Application granted granted Critical
Publication of JP2885168B2 publication Critical patent/JP2885168B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、各々にライトバッ
ク方式のキャッシュメモリが接続された複数のプロセッ
サと、各プロセッサによって共有される共有メモリとを
備えたマルチプロセッサシステムに関し、特に、プロセ
ッサが共有メモリからデータを読み出す際の読み出し時
間を短縮することができるマルチプロセッサシステムに
於けるデータリプライ方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system including a plurality of processors each connected to a cache memory of a write-back system, and a shared memory shared by the processors. The present invention relates to a data reply method in a multiprocessor system that can shorten a read time when reading data from a memory.

【0002】[0002]

【従来の技術】各々にライトバック方式のキャッシュメ
モリが接続された複数のプロセッサと、各プロセッサに
よって共有される共有メモリとを備えたマルチプロセッ
サシステムに於いては、或るプロセッサが共有メモリか
らのデータの読み出しを要求した場合、キャッシュメモ
リ間或いはキャッシュメモリと共有メモリと間の整合性
を保つため、従来は次のようにしている。
2. Description of the Related Art In a multiprocessor system having a plurality of processors each connected to a cache memory of a write-back system and a shared memory shared by each processor, a certain processor receives data from a shared memory. When data reading is requested, the following is conventionally performed in order to maintain consistency between cache memories or between a cache memory and a shared memory.

【0003】或るプロセッサによって共有メモリからの
データの読み出しが要求されると、他のプロセッサは、
自プロセッサのキャッシュメモリに要求元のプロセッサ
が要求するデータを含むブロックであって且つ書き換え
の行われているブロックが格納されているか否かを判定
する。そして、格納されていると判定した場合には、そ
のことを示すオーナ信号を予め定められたタイミングで
出力すると共に、バス獲得要求を行ってバスを獲得した
後、上記ブロックをリプライデータとして要求元のプロ
セッサに返す。また、格納されていないと判定した場合
は、そのことを示すオーナ信号を予め定められたタイミ
ングで出力する。一方、共有メモリは、オーナ信号が十
分に確定したタイミングに於いてオーナ信号を参照して
それが書き換えを行ったプロセッサが存在しないことを
示しているか否かを判定する。そして、オーナ信号が書
き換えを行ったプロセッサが存在しないことを示してい
ると判定した場合は、バスの獲得要求を行ってバスを獲
得した後、要求されたデータを含むブロックをリプライ
データとして要求元のプロセッサに返す。
When one processor requests to read data from the shared memory, another processor
It is determined whether or not a block containing data requested by the requesting processor and a rewritten block is stored in the cache memory of the own processor. If it is determined that the block is stored, an owner signal indicating this is output at a predetermined timing, and a bus acquisition request is made to acquire a bus. To the processor. If it is determined that the data is not stored, an owner signal indicating that is stored is output at a predetermined timing. On the other hand, the shared memory refers to the owner signal at the timing when the owner signal is sufficiently determined, and determines whether or not it indicates that there is no rewritten processor. If it is determined that the owner signal indicates that the rewritten processor does not exist, a bus acquisition request is made and the bus is acquired, and the block containing the requested data is used as reply data as the request source. To the processor.

【0004】[0004]

【発明が解決しようとする課題】上述したように、従来
は、オーナ信号が十分に確定するタイミングとなってか
ら、オーナ信号に基づいてデータの書き換えを行ったプ
ロセッサが存在するか否かを判定し、その判定結果がデ
ータの書き換えを行ったプロセッサが存在することを示
している場合、データリプライ動作を開始するようにし
ているため、共有メモリからのデータ読み出しが遅くな
るという問題があった。特に、データリプライを行うた
めのバス獲得要求を数クロックに1回しか出力すること
ができないというようにバス獲得要求を出力するタイミ
ングが固定されており、且つオーナ信号が十分に確定す
るタイミングを待つと丁度バス獲得要求を出力できるタ
イミングを過ぎてしまうようなマルチプロセッサシステ
ムに於いては、その遅れが顕著となる。
As described above, conventionally, it is determined whether or not there is a processor that has rewritten data based on the owner signal after the timing at which the owner signal is sufficiently determined. However, when the result of the determination indicates that there is a processor that has rewritten the data, the data reply operation is started, so that there is a problem that data reading from the shared memory is delayed. In particular, the timing for outputting a bus acquisition request is fixed such that a bus acquisition request for performing data reply can be output only once every several clocks, and the timing for waiting for the owner signal to be sufficiently determined is waited. In a multiprocessor system in which the timing at which a bus acquisition request can be output just passes, the delay becomes noticeable.

【0005】そこで、本発明の目的は、共有メモリから
データを読み出す際の読み出し時間を短縮することにあ
る。
Therefore, an object of the present invention is to reduce the read time when reading data from a shared memory.

【0006】[0006]

【課題を解決するための手段】本発明は上記目的を達成
するため、各々にライトバック方式のキャッシュメモリ
が接続された複数のプロセッサと、前記各プロセッサに
よって共有される共有メモリとを備えたマルチプロセッ
サシステムに於いて、前記各プロセッサは、他のプロセ
ッサが前記共有メモリからのデータの読み出しを要求し
た際、自プロセッサのキャッシュメモリに、前記要求元
のプロセッサが要求するデータを含むブロックであって
且つ書き換えの行われたブロックが格納されているか否
かを判定してその判定結果を示すオーナ信号を予め定め
られたタイミングで出力し、前記判定結果が書き換えの
行われたブロックが格納されていることを示している場
合には予め定められたタイミングで前記要求元のプロセ
ッサが要求するデータを含むブロックを出力し、前記共
有メモリは、前記オーナ信号が十分に確定するタイミン
グの1クロック前のタイミングに於いて前記オーナ信号
を参照して前記オーナ信号がデータの書き換えを行った
プロセッサが存在しないことを示していると判定した場
合は、直ちにデータリプライ動作を開始し、その後、前
記オーナ信号が十分に確定したタイミングに於いて前記
オーナ信号を参照して前記オーナ信号がデータの書き換
えを行ったプロセッサが存在することを示していると判
定した場合は、データリプライ動作を停止すると共に、
前記要求元のプロセッサに対してプロセッサから出力さ
れるブロックを有効なものとすることを指示し、前記要
求元のプロセッサは、前記共有メモリによってプロセッ
サからのブロックを有効にすることが指示されなかった
場合は、前記共有メモリからのブロックを自プロセッサ
のキャッシュメモリに格納し、指示された場合は他のプ
ロセッサからのブロックを自プロセッサのキャッシュメ
モリに格納する。
According to the present invention, there is provided a multi-processor comprising a plurality of processors each connected to a write-back cache memory, and a shared memory shared by the processors. In the processor system, each of the processors is a block including data requested by the requesting processor in a cache memory of the own processor when another processor requests reading of data from the shared memory. In addition, it is determined whether or not the rewritten block is stored, and an owner signal indicating the determination result is output at a predetermined timing, and the determination result stores the rewritten block. Indicates that the data requested by the requesting processor at a predetermined timing. The shared memory outputs the block including the data, and the processor that has rewritten the data with the owner signal with reference to the owner signal at a timing one clock before the timing when the owner signal is sufficiently determined is output. When it is determined that it does not exist, the data reply operation is started immediately, and thereafter, at a timing when the owner signal is sufficiently determined, the owner signal refers to the owner signal to rewrite data. If it is determined that the execution of the processor is present, stop the data reply operation,
The requesting processor was instructed to validate the block output from the processor, and the requesting processor was not instructed by the shared memory to validate the block from the processor. In this case, the block from the shared memory is stored in the cache memory of the own processor, and when instructed, the block from another processor is stored in the cache memory of the own processor.

【0007】[0007]

【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
Embodiments of the present invention will now be described in detail with reference to the drawings.

【0008】図1は本発明を適用するマルチプロセッサ
システムの構成例を示したブロック図であり。プロセッ
サ1,2と共有メモリ3とはバス4を介して接続されて
おり、プロセッサ1,2にはそれぞれライトバック方式
のキャッシュメモリ5,6が接続されている。
FIG. 1 is a block diagram showing a configuration example of a multiprocessor system to which the present invention is applied. The processors 1 and 2 and the shared memory 3 are connected via a bus 4, and the processors 1 and 2 are connected to cache memories 5 and 6 of a write-back system, respectively.

【0009】バス4は、アドレスバス401と、データ
バス402と、オーナ信号線403と、データキャンセ
ル信号線404とから構成されている。オーナ信号線4
03には、各プロセッサ1,2がワイヤードオア接続さ
れている。
The bus 4 comprises an address bus 401, a data bus 402, an owner signal line 403, and a data cancel signal line 404. Owner signal line 4
03 is connected to each of the processors 1 and 2 by wired OR connection.

【0010】キャッシュメモリ5,6は、それぞれタグ
部51,61を備えている。タグ部51,61には、そ
れぞれキャッシュメモリ5,6に格納されている各ブロ
ックについて書き換えを行ったか否かを示す情報が格納
されている。
The cache memories 5 and 6 have tag sections 51 and 61, respectively. The tag sections 51 and 61 store information indicating whether or not each block stored in the cache memories 5 and 6 has been rewritten.

【0011】図2はプロセッサ1の構成要素の内、プロ
セッサ1が共有メモリ3からのデータの読み出しを要求
するプロセッサとして動作する場合に必要となる構成要
素を示したブロック図であり、制御部101と、バスス
テート判定部102と、アドレスリクエスト部103
と、アドレス出力レジスタ104と、セレクタ105
と、インタフェースフリップフロップ(インタフェース
FF)106と、結合部107と、バスアービタ108
と、データ入力レジスタ109とを備えている。
FIG. 2 is a block diagram showing components required when the processor 1 operates as a processor that requests data reading from the shared memory 3 among the components of the processor 1. , Bus state determination unit 102 and address request unit 103
, Address output register 104, selector 105
, An interface flip-flop (interface FF) 106, a coupling unit 107, and a bus arbiter 108
And a data input register 109.

【0012】図3はプロセッサ2の構成要素の内、プロ
セッサ2が要求元のプロセッサ以外のプロセッサとして
動作する場合に必要となる構成要素を示したブロック図
であり、制御部201と、バスステート判定部202
と、アドレス入力レジスタ203と、インタフェースフ
リップフロップ204と、データリクエスト部205
と、インタフェースフリップフロップ206と、結合部
207と、バスアービタ208と、データ出力レジスタ
209と、結合部210とを備えている。
FIG. 3 is a block diagram showing components required when the processor 2 operates as a processor other than the requesting processor among the components of the processor 2. Part 202
, An address input register 203, an interface flip-flop 204, a data request unit 205
, An interface flip-flop 206, a combining unit 207, a bus arbiter 208, a data output register 209, and a combining unit 210.

【0013】図4は共有メモリ3の構成例を示したブロ
ック図であり、メモリ部301と、制御部302と、フ
リップフロップ303と、キャンセル信号生成部304
と、バスステート判定部305と、データリクエスト部
306と、インタフェースフリップフロップ307と、
結合部308と、インタフェースフリップフロップ30
9と、アドレス入力レジスタ310と、バスアービタ3
11と、データ出力レジスタ312と、結合部313と
を備えている。尚、図2〜図4に於いて、図1と同一符
号は同一部分を表している。
FIG. 4 is a block diagram showing an example of the configuration of the shared memory 3. The memory unit 301, the control unit 302, the flip-flop 303, and the cancel signal generation unit 304
A bus state determination unit 305, a data request unit 306, an interface flip-flop 307,
The coupling unit 308 and the interface flip-flop 30
9, the address input register 310, and the bus arbiter 3
11, a data output register 312, and a coupling unit 313. 2 to 4, the same reference numerals as those in FIG. 1 indicate the same parts.

【0014】図5は本実施例の動作を示すタイミングチ
ャートであり、以下各図を参照して本実施例の動作を説
明する。同図に示すように、本実施例のマルチプロセッ
サシステムは、ステートIからステートIVまでの4クロ
ックを1サイクルとして繰り返しており、アドレスバス
獲得のためのアドレスバス獲得要求ARQ及びデータバ
ス獲得のためのデータバス獲得要求DRQはステートI
のみで出力可能になっている。また、アドレスバス獲得
後のアドレス出力は、ステートIII のみで行うことが可
能になっている。
FIG. 5 is a timing chart showing the operation of this embodiment. The operation of this embodiment will be described below with reference to the drawings. As shown in the figure, in the multiprocessor system of this embodiment, four clocks from state I to state IV are repeated as one cycle, and an address bus acquisition request ARQ for acquiring an address bus and a data bus Data bus acquisition request DRQ of state I
Output is possible only with. The address output after acquiring the address bus can be performed only in state III.

【0015】図2に於いて、今、プロセッサ1の必要と
するデータがキャッシュメモリ5に格納されておらず、
プロセッサ1に於いてミスヒットが発生したとする。ミ
スヒットが発生すると、プロセッサ1内の制御部101
が、アドレス出力レジスタ104に上記データのアドレ
スADRをセットすると共に、アドレスリクエスト部1
03にアドレスバス獲得要求の出力を指示する。この指
示に応答してアドレスリクエスト部103はアドレスバ
ス獲得要求ARQを出力する。
In FIG. 2, data required by the processor 1 is not stored in the cache memory 5,
It is assumed that a mishit occurs in the processor 1. When a mishit occurs, the control unit 101 in the processor 1
Sets the address ADR of the data in the address output register 104 and the address request unit 1
03 is instructed to output an address bus acquisition request. In response to this instruction, the address request unit 103 outputs an address bus acquisition request ARQ.

【0016】その後、制御部101は、バスステート判
定部102によってステートIV(1サイクル目)になっ
たと判定されたタイミングに於いて、セレクタ105を
制御してアドレスリクエスト部103を選択させ、更
に、バスステート判定部102によってステートI(2
サイクル目)になったと判定されたタイミングに於い
て、結合部107を制御してアドレスバス401中のプ
ロセッサ1がアドレスバス獲得要求ARQを出力するた
めに割り当てられているビットと、インタフェースフリ
ップフロップ106の上記ビットと対応するビットとを
結合させる。例えば、アドレスバス401の上位ビット
がプロセッサ1に割り当てられているとすると、アドレ
スバス401の上位ビットとインタフェースフリップフ
ロップ106の上位ビットとを結合させる。これによ
り、1サイクル目のステートIVでセレクタ105から出
力されたアドレスバス獲得要求ARQは、インタフェー
スフリップフロップ106で1クロック遅らされて2サ
イクル目のステートIでアドレスバス401に出力され
る。
Thereafter, the control unit 101 controls the selector 105 to select the address request unit 103 at the timing when the bus state determination unit 102 determines that the state IV (the first cycle) has been reached. The state I (2)
At the timing at which it is determined that the cycle 1) has been reached, the bit assigned to the processor 1 in the address bus 401 to output the address bus acquisition request ARQ by controlling the coupling unit 107 and the interface flip-flop 106 And the corresponding bits are combined. For example, if upper bits of the address bus 401 are allocated to the processor 1, the upper bits of the address bus 401 and the upper bits of the interface flip-flop 106 are combined. Thus, the address bus acquisition request ARQ output from the selector 105 in the state IV in the first cycle is delayed by one clock in the interface flip-flop 106 and output to the address bus 401 in the state I in the second cycle.

【0017】プロセッサ1内のバスアービタ108は、
バスステート判定部102によってステートI(2サイ
クル目)になったと判定されたタイミングに於いて、ア
ドレスバス401の内容を読み込み、プロセッサ1がア
ドレスバス401を獲得できるか否かを判定し、判定結
果を制御部101に通知する。
The bus arbiter 108 in the processor 1
At the timing when the bus state determination unit 102 determines that the state I (second cycle) has been reached, the contents of the address bus 401 are read, and it is determined whether or not the processor 1 can acquire the address bus 401. Is notified to the control unit 101.

【0018】制御部101は、アドレスバス401を獲
得できることが通知されると、ステートII(2サイクル
目)に於いて、セレクタ105を制御してアドレス出力
レジスタ104を選択させ、更に、ステートIII に於い
て結合部107を制御してインタフェースフリップフロ
ップ106とアドレスバス401とを結合させる。これ
により、2サイクル目のステートIIでセレクタ105か
ら出力されたアドレスADRは、インタフェースフリッ
プフロップ106で1クロック遅らされて2サイクル目
のステートIII でアドレスバス401に出力される。
When notified that the address bus 401 can be acquired, the control unit 101 controls the selector 105 to select the address output register 104 in state II (second cycle), and further shifts to state III. In this case, the control unit 107 controls the connection unit 107 to connect the interface flip-flop 106 to the address bus 401. As a result, the address ADR output from the selector 105 in the state II in the second cycle is delayed by one clock in the interface flip-flop 106 and output to the address bus 401 in the state III in the second cycle.

【0019】2サイクル目のステートIII でアドレスバ
ス401に出力されたアドレスADRは、次のステート
IVで図3,図4に示すプロセッサ2,共有メモリ3内の
インタフェースフリップフロップ204,309に取り
込まれ、3サイクル目のステートIでアドレス入力レジ
スタ203,310にセットされる。
The address ADR output to the address bus 401 in state III of the second cycle is the next state.
The data is captured by the interface flip-flops 204 and 309 in the processor 2 and the shared memory 3 shown in FIGS. 3 and 4 in IV, and is set in the address input registers 203 and 310 in state I in the third cycle.

【0020】プロセッサ2内の制御部201は、アドレ
ス入力レジスタ203にアドレスADRがセットされる
と、直ちにキャッシュメモリ6内のタグ部61の内容に
基づいて、上記アドレスADRによって示されるデータ
を含むブロックであって且つ書き換えの行われているブ
ロックがキャッシュメモリ6内に存在するか否かを判定
し、存在しないと判定した場合には論理値“0”のオー
ナ信号をオーナ信号線403に出力し、存在すると判定
した場合は論理値“1”のオーナ信号をオーナ信号線4
03に出力する。
When the address ADR is set in the address input register 203, the control unit 201 in the processor 2 immediately executes a block including the data indicated by the address ADR based on the contents of the tag unit 61 in the cache memory 6. It is determined whether or not the rewritten block exists in the cache memory 6. If it is determined that the block does not exist, an owner signal having a logical value “0” is output to the owner signal line 403. If it is determined that the owner signal exists, the owner signal of the logical value "1" is output to the owner signal line 4.
03 is output.

【0021】更に、キャッシュメモリ6内に上記したブ
ロックが存在すると判断した場合は、制御部201は、
キャッシュメモリ6から上記したブロックを読み込んで
データ出力レジスタ209にセットし、4サイクル目の
ステートIVに於いてデータリクエスト部205に対して
データバス獲得要求の出力を指示し、5サイクル目のス
テートIに於いて結合部207を制御してインタフェー
スフリップフロップ206とアドレスバス401とを結
合させる。これにより、5サイクル目のステートIでア
ドレスバス401にデータバス獲得要求DRQが出力さ
れる。プロセッサ2内のバスアービタ208は、5サイ
クル目のステートIでアドレスバス401の内容を取り
込み、プロセッサ2がデータバス402を獲得できるか
否かを判定し、判定結果を制御部201に通知する。制
御部201は、データバス402を獲得できる旨の通知
を受けると、6サイクル目に於いて結合部210を制御
してデータ出力レジスタ209とデータバス402とを
結合する。これにより、6サイクル目に於いて、プロセ
ッサ2から要求元のプロセッサ1が要求するデータを含
むブロックがデータバス402に出力される。
Further, when it is determined that the above-mentioned block exists in the cache memory 6, the control unit 201
The above-described block is read from the cache memory 6, set in the data output register 209, and in the state IV of the fourth cycle, the data request unit 205 is instructed to output a data bus acquisition request. The interface flip-flop 206 is coupled to the address bus 401 by controlling the coupling unit 207 in the step (a). As a result, the data bus acquisition request DRQ is output to the address bus 401 in the state I of the fifth cycle. The bus arbiter 208 in the processor 2 captures the contents of the address bus 401 in state I of the fifth cycle, determines whether the processor 2 can acquire the data bus 402, and notifies the control unit 201 of the determination result. Upon receiving the notification that the data bus 402 can be acquired, the control unit 201 controls the coupling unit 210 to couple the data output register 209 and the data bus 402 in the sixth cycle. As a result, in the sixth cycle, a block containing data requested by the requesting processor 1 is output from the processor 2 to the data bus 402.

【0022】ここで、プロセッサ2から出力されるオー
ナ信号が十分に確定するタイミングが、3サイクル目の
ステートIV以降であるとしても、殆どの場合、それより
も1クロック前のステートIII で正しい値を表示してい
る。つまり、オーナ信号が十分に確定するタイミングと
は、キャッシュメモリの読み出し時間やその他の回路遅
延時間の最大値を積み上げたタイミングであるので、極
端な高温や電磁界等の悪環境が重ならない限り、1クロ
ック前には正しい値を表示している場合が多い。
Here, even if the timing at which the owner signal output from the processor 2 is sufficiently determined is after the state IV in the third cycle, in most cases, the correct value is obtained in the state III one clock before. Is displayed. In other words, the timing at which the owner signal is sufficiently determined is the timing at which the maximum values of the read time of the cache memory and other circuit delay times are accumulated, so that unless a bad environment such as an extremely high temperature or an electromagnetic field overlaps, In many cases, a correct value is displayed one clock before.

【0023】そこで、図4に示す共有メモリ3では、オ
ーナ信号が十分に確定するタイミングよりも1クロック
前の3サイクル目のステートIII でオーナ信号の論理値
をフリップフロップ303に取り込み、フリップフロッ
プ303に取り込んだオーナ信号の論理値が“0”であ
れば直ちにデータリプライ動作を開始するようにしてい
る。
Therefore, in the shared memory 3 shown in FIG. 4, the logic value of the owner signal is fetched into the flip-flop 303 in state III of the third cycle one clock before the timing at which the owner signal is sufficiently determined, and the flip-flop 303 If the logical value of the owner signal fetched in step (1) is "0", the data reply operation is started immediately.

【0024】今、例えば、オーナ信号が十分に確定する
タイミングよりも1クロック前の3サイクル目のステー
トIII でフリップフロップ303に取り込んだオーナ信
号の論理値も、オーナ信号が十分に確定する3サイクル
目のステートIVに於けるオーナ信号の論理値も共に
“0”であったとすると、次のような動作が行われる。
Now, for example, the logical value of the owner signal fetched into the flip-flop 303 in state III of the third cycle one clock before the timing at which the owner signal is sufficiently determined is also determined by the three cycles at which the owner signal is sufficiently determined. Assuming that the logical value of the owner signal in the eye state IV is also "0", the following operation is performed.

【0025】共有メモリ3内の制御部302は、フリッ
プフロップ303に取り込まれたオーナ信号が“0”で
あれば、3サイクル目のステートIVでデータリクエスト
部306に対してデータバス獲得要求の出力を指示し、
次の4サイクル目のステートIで結合部308を制御し
てアドレスバス401中のプロセッサ2がデータバス獲
得要求DRQを出力するために割り当てられているビッ
トと、インタフェースフリップフロップ307の上記ビ
ットと対応するビットと結合させる。これにより、3サ
イクル目のステートIVでデータリクエスト部306から
出力されたデータバス獲得要求DRQは、インタフェー
スフリップフロップ307で1クロック遅らされて4サ
イクル目のステートIでアドレスバス401に出力され
る。
The control unit 302 in the shared memory 3 outputs the data bus acquisition request to the data request unit 306 in the state IV of the third cycle if the owner signal taken into the flip-flop 303 is “0”. Instruct
In state I of the next fourth cycle, the bits assigned to control the coupling unit 308 to output the data bus acquisition request DRQ by the processor 2 on the address bus 401 correspond to the above bits of the interface flip-flop 307. Combine with the bit to be done. As a result, the data bus acquisition request DRQ output from the data request unit 306 in the third cycle state IV is delayed by one clock in the interface flip-flop 307 and output to the address bus 401 in the fourth cycle state I. .

【0026】キャンセル信号生成部304は、3サイク
ル目のステートIVに於いて、その時のオーナ信号の論理
値とフリップフロップ303に取り込まれている1クロ
ック前のオーナ信号の論理値とを比較し、両者不一致の
場合には、データキャンセル信号を論理“1”にする。
この例の場合は、両者が一致しているので、データキャ
ンセル信号が論理“1”となることはない。
The cancel signal generator 304 compares the logical value of the owner signal at that time with the logical value of the owner signal one clock before, which is taken into the flip-flop 303, in state IV of the third cycle. If they do not match, the data cancel signal is set to logic "1".
In the case of this example, since they match, the data cancel signal does not become logic "1".

【0027】バスアービタ311は、バスステート判定
部305によってステートI(4サイクル目)になった
と判定されたタイミングに於いて、アドレスバス401
の内容を読み込み、共有メモリ3がデータバス402を
獲得できるか否かを判定し、判定結果を制御部302に
通知する。
The bus arbiter 311 outputs the address bus 401 at the timing when the bus state determination unit 305 determines that the state has entered the state I (fourth cycle).
And determines whether or not the shared memory 3 can acquire the data bus 402, and notifies the control unit 302 of the determination result.

【0028】制御部302は、データバス402を獲得
できる旨の通知を受けると、アドレス入力レジスタ31
0に格納されているアドレスによって示されるデータを
含むブロックをメモリ部301から読み出してデータ出
力レジスタ312にセットし、更に、5サイクル目のス
テートIで結合部313を制御してデータ出力レジスタ
312とデータバス402とを結合させる。これによ
り、データバス402に5サイクル目に於いて要求元の
プロセッサ1が読み込みを要求したデータを含むブロッ
クが出力される。
Upon receiving the notification that the data bus 402 can be acquired, the control unit 302
The block including the data indicated by the address stored in the address 0 is read from the memory unit 301 and set in the data output register 312. Further, in the state I of the fifth cycle, the coupling unit 313 is controlled and the data output register 312 The data bus 402 is connected. As a result, a block containing the data requested to be read by the requesting processor 1 is output to the data bus 402 in the fifth cycle.

【0029】要求元のプロセッサ1内の制御部101
は、4サイクル目のステートIに於いてデータバス獲得
要求が出力されると、5サイクル目に於いてデータ入力
レジスタ109を制御し、データバス402上のデータ
(ブロック)をデータ入力レジスタ109に取り込ませ
る。その後、制御部101は、データ入力レジスタ10
9に取り込んだブロックをキャッシュメモリ5に格納す
る。
The control unit 101 in the requesting processor 1
When the data bus acquisition request is output in state I of the fourth cycle, the data input register 109 is controlled in the fifth cycle, and the data (block) on the data bus 402 is transferred to the data input register 109. Let it be captured. Thereafter, the control unit 101 sets the data input register 10
9 is stored in the cache memory 5.

【0030】上記したように、オーナ信号が十分に確定
するタイミングよりも1クロック前の3サイクル目のス
テートIII で共有メモリ3のフリップフロップ303に
取り込んだオーナ信号の論理値も、オーナ信号が十分に
確定する3サイクル目のステートIVに於けるオーナ信号
の論理値も共に“0”である場合に、もし、オーナ信号
が十分に確定するタイミングを待ってデータバス獲得要
求DRQを出力するようにすると、データバス獲得要求
DRQがデータバス402に出力されるタイミングは、
5サイクル目のステートIとなってしまい、上記した場
合に比較して4クロック分、データの読み出しが遅くな
ってしまう。
As described above, the logical value of the owner signal fetched into the flip-flop 303 of the shared memory 3 in the state III of the third cycle one clock before the timing at which the owner signal is sufficiently determined is sufficient for the owner signal. If the logical value of the owner signal in state IV of the third cycle is also "0", the data bus acquisition request DRQ is output after waiting for the timing when the owner signal is sufficiently determined. Then, the timing at which the data bus acquisition request DRQ is output to the data bus 402 is
The state I becomes the fifth cycle, and the data reading is delayed by four clocks as compared with the above case.

【0031】次に、オーナ信号が十分に確定するタイミ
ングよりも1クロック前の3サイクル目のステートIII
でフリップフロップ303に取り込んだオーナ信号の論
理値が“0”で、オーナ信号が十分に確定する3サイク
ル目のステートIVに於いてオーナ信号の論理値が“1”
になった場合の動作を説明する。
Next, state III in the third cycle one clock before the timing when the owner signal is sufficiently determined.
The logical value of the owner signal taken into the flip-flop 303 is "0", and the logical value of the owner signal is "1" in the third cycle of state IV where the owner signal is sufficiently determined.
The operation in the case of "" will be described.

【0032】この場合も前述したと同様にして、4サイ
クル目のステートIでアドレスバス401にデータ獲得
要求DRQが出力される。しかし、この場合は、フリッ
プフロップ303に取り込まれている3サイクル目のス
テートIII に於けるオーナ信号の論理値が“0”であ
り、3サイクル目のステートIVに於けるオーナ信号の論
理値が“1”であるので、キャンセル信号生成部304
がデータキャンセル信号を4サイクル目のステートIIで
“1”にする。
In this case, a data acquisition request DRQ is output to the address bus 401 in the state I of the fourth cycle in the same manner as described above. However, in this case, the logical value of the owner signal in state III in the third cycle taken into the flip-flop 303 is “0”, and the logical value of the owner signal in state IV in the third cycle is “0”. Since it is “1”, the cancel signal generation unit 304
Sets the data cancel signal to "1" in state II of the fourth cycle.

【0033】共有メモリ3内の制御部302は、データ
キャンセル信号が“1”となると、データリプライ動作
を中止する。
When the data cancel signal becomes "1", the control section 302 in the shared memory 3 stops the data reply operation.

【0034】また、要求元のプロセッサ1内の制御部1
01は、データキャンセル信号が“1”となると、デー
タ入力レジスタ109へのデータ取り込み動作を停止す
る。そして、その後、5サイクル目のステートIに於い
てデータバス獲得要求DRQが出力されると、6サイク
ル目に於いてプロセッサ2から出力されるブロックをデ
ータ入力レジスタ109に取り込み、取り込んだブロッ
クをキャッシュメモリ5に格納する。
The control unit 1 in the requesting processor 1
In the case of 01, when the data cancel signal becomes "1", the operation of taking data into the data input register 109 is stopped. Then, when the data bus acquisition request DRQ is output in state I of the fifth cycle, the block output from the processor 2 in the sixth cycle is fetched into the data input register 109, and the fetched block is cached. It is stored in the memory 5.

【0035】次に、オーナ信号が十分に確定するタイミ
ングよりも1クロック前の3サイクル目のステートIII
で共有メモリ3のフリップフロップ303に取り込んだ
オーナ信号の論理値も、オーナ信号が十分に確定する3
サイクル目のステートIVに於けるオーナ信号の論理値も
共に“1”の場合の動作を説明する。
Next, state III in the third cycle one clock before the timing when the owner signal is sufficiently determined.
As for the logical value of the owner signal taken into the flip-flop 303 of the shared memory 3, the owner signal is also sufficiently determined.
The operation in the case where the logical values of the owner signal are both "1" in the state IV in the cycle will be described.

【0036】この場合、共有メモリ3内の制御部302
に於いては、データリプライ動作は行われず、プロセッ
サ2に於いてデータリプライ動作が行われ、要求元のプ
ロセッサ1は、プロセッサ2から送られてきたブロック
をキャッシュメモリ5に格納する。
In this case, the control unit 302 in the shared memory 3
In this case, the data reply operation is not performed, the data reply operation is performed in the processor 2, and the requesting processor 1 stores the block sent from the processor 2 in the cache memory 5.

【0037】次に、オーナ信号が十分に確定するタイミ
ングよりも1クロック前の3サイクル目のステートIII
でフリップフロップ303に取り込んだオーナ信号の論
理値が“1”で、オーナ信号が十分に確定する3サイク
ル目のステートIVに於いてオーナ信号の論理値が“0”
になった場合の動作を説明する。
Next, the third cycle of state III, one clock before the timing at which the owner signal is sufficiently determined.
The logical value of the owner signal taken into the flip-flop 303 is "1", and the logical value of the owner signal is "0" in the third cycle of state IV in which the owner signal is sufficiently determined.
The operation in the case of "" will be described.

【0038】共有メモリ3内のキャンセル信号生成部3
04は、フリップフロップ303に取り込まれている3
サイクル目のステートIII に於けるオーナ信号の論理値
が“1”であり、3サイクル目のステートIVに於けるオ
ーナ信号の論理値が“0”であるので、データキャンセ
ル信号を4サイクル目のステートIIで“1”にする。
The cancel signal generator 3 in the shared memory 3
04 is 3 which is taken in the flip-flop 303
Since the logical value of the owner signal in state III in the third cycle is "1" and the logical value of the owner signal in state IV in the third cycle is "0", the data cancel signal is output in the fourth cycle. Set to "1" in state II.

【0039】制御部302は、4サイクル目のステート
IIでデータキャンセル信号が“1”となると、フリップ
フロップ303にセットされている値が“1”であるこ
とから、4サイクル目のステートIVに於いてデータリク
エスト部306に対してデータバス獲得要求DRQの出
力を指示し、次の5サイクル目のステートIで結合部3
08を制御してアドレスバス401とインタフェースフ
リップフロップ307とを結合させる。これにより、5
サイクル目のステートIでデータバス獲得要求DRQが
データバス402に出力される。その後、制御部302
は、前述したと同様にして要求元のプロセッサ1が要求
するデータを含むブロックをデータバス402に出力す
る。
The control unit 302 controls the state of the fourth cycle.
When the data cancel signal becomes "1" in II, the value set in the flip-flop 303 is "1". DRQ output is instructed, and in state I of the next fifth cycle,
08 to connect the address bus 401 with the interface flip-flop 307. This gives 5
In state I of the cycle, a data bus acquisition request DRQ is output to data bus 402. After that, the control unit 302
Outputs a block containing the data requested by the requesting processor 1 to the data bus 402 in the same manner as described above.

【0040】[0040]

【発明の効果】以上説明したように、本発明は、オーナ
信号が十分に確定するタイミングの1クロック前のタイ
ミングでオーナ信号を参照して書き換えを行ったプロセ
ッサが存在していないことを認識した場合は、直ちにデ
ータリプライ動作を開始するようにしたものであるの
で、共有メモリからデータを読み出す際の読み出し時間
を短縮することができる。
As described above, the present invention recognizes that there is no processor that rewrites data with reference to the owner signal at a timing one clock before the timing at which the owner signal is sufficiently determined. In this case, since the data reply operation is started immediately, the read time for reading data from the shared memory can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明を適用するマルチプロセッサシステムの
構成例を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration example of a multiprocessor system to which the present invention is applied.

【図2】要求元のプロセッサとして動作する場合に必要
となる構成要素を示したブロック図である。
FIG. 2 is a block diagram showing components required when operating as a requesting processor.

【図3】要求元のプロセッサ以外のプロセッサとして動
作する場合に必要となる構成要素を示したブロック図で
ある。
FIG. 3 is a block diagram showing components required when operating as a processor other than the requesting processor.

【図4】共有メモリ3の構成例を示すブロック図であ
る。
FIG. 4 is a block diagram illustrating a configuration example of a shared memory 3;

【図5】実施例の動作を示すタイミングチャートであ
る。
FIG. 5 is a timing chart showing the operation of the embodiment.

【符号の説明】[Explanation of symbols]

1,2…プロセッサ 3…共有メモリ 4…バス 5,6…キャッシュメモリ 1, 2, processor 3, shared memory 4, bus 5, 6, cache memory

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 各々にライトバック方式のキャッシュメ
モリが接続された複数のプロセッサと、前記各プロセッ
サによって共有される共有メモリとを備えたマルチプロ
セッサシステムに於いて、 前記各プロセッサは、他のプロセッサが前記共有メモリ
からのデータの読み出しを要求した際、自プロセッサの
キャッシュメモリに、前記要求元のプロセッサが要求す
るデータを含むブロックであって且つ書き換えの行われ
たブロックが格納されているか否かを判定してその判定
結果を示すオーナ信号を予め定められたタイミングで出
力し、前記判定結果が書き換えの行われたブロックが格
納されていることを示している場合には予め定められた
タイミングで前記要求元のプロセッサが要求するデータ
を含むブロックを出力し、 前記共有メモリは、前記オーナ信号が十分に確定するタ
イミングの1クロック前のタイミングに於いて前記オー
ナ信号を参照して前記オーナ信号がデータの書き換えを
行ったプロセッサが存在しないことを示していると判定
した場合は、直ちにデータリプライ動作を開始し、その
後、前記オーナ信号が十分に確定したタイミングに於い
て前記オーナ信号を参照して前記オーナ信号がデータの
書き換えを行ったプロセッサが存在することを示してい
ると判定した場合は、データリプライ動作を停止すると
共に、前記要求元のプロセッサに対してプロセッサから
出力されるブロックを有効なものとすることを指示し、 前記要求元のプロセッサは、前記共有メモリによってプ
ロセッサからのブロックを有効にすることが指示されな
かった場合は、前記共有メモリからのブロックを自プロ
セッサのキャッシュメモリに格納し、指示された場合は
他のプロセッサからのブロックを自プロセッサのキャッ
シュメモリに格納することを特徴とするマルチプロセッ
サシステムに於けるデータリプライ方法。
1. In a multiprocessor system including a plurality of processors each connected to a write-back cache memory and a shared memory shared by each processor, each of the processors is connected to another processor. Requests the reading of data from the shared memory, determines whether the cache memory of its own processor contains a block containing data requested by the requesting processor and a rewritten block. And outputs an owner signal indicating the determination result at a predetermined timing. If the determination result indicates that the rewritten block is stored, the owner signal is output at a predetermined timing. The shared memory outputs a block including data requested by the requesting processor, If it is determined at a timing one clock before the timing at which the owner signal is sufficiently determined that the owner signal indicates that there is no processor that has rewritten data by referring to the owner signal, Immediately starts a data reply operation, and then determines at a timing when the owner signal is sufficiently determined that the owner signal indicates that there is a processor that has rewritten data by referring to the owner signal. In this case, the data reply operation is stopped, and the requesting processor is instructed to validate the block output from the processor. If not instructed to enable the block of Storing the lock in the cache memory of its own processor, it indicated in the data reply method in a multi-processor system, characterized by storing the blocks from the other processor in the cache memory of its own processor if.
【請求項2】 前記共有メモリは、前記オーナ信号が十
分に確定するタイミングの1クロック前のタイミングに
於いて前記オーナ信号を参照して前記オーナ信号がデー
タの書き換えを行ったプロセッサが存在することを示し
ていると判定し、その後、前記オーナ信号が十分に確定
したタイミングに於いて前記オーナ信号を参照して前記
オーナ信号がデータの書き換えを行ったプロセッサが存
在しないことを示していると判定した場合はデータリプ
ライ動作を行うことを特徴とする請求項1記載のマルチ
プロセッサシステムに於けるデータリプライ方法。
2. The shared memory according to claim 1, wherein a processor in which the owner signal rewrites data with reference to the owner signal at a timing one clock before a timing at which the owner signal is sufficiently determined exists. At the timing when the owner signal is sufficiently determined, and then determines that the owner signal indicates that there is no processor that has rewritten data by referring to the owner signal. 2. The data reply method in a multiprocessor system according to claim 1, wherein a data reply operation is performed when the data reply is performed.
【請求項3】 前記共有メモリは、前記オーナ信号が十
分に確定するタイミングの1クロック前のタイミングに
於いて前記オーナ信号を参照して前記オーナ信号がデー
タの書き換えを行ったプロセッサが存在することを示し
ていると判定し、その後、前記オーナ信号が十分に確定
したタイミングに於いて前記オーナ信号を参照して前記
オーナ信号がデータの書き換えを行ったプロセッサが存
在することを示していると判定した場合はデータリプラ
イ動作を行わないことを特徴とする請求項2記載のマル
チプロセッサシステムに於けるデータリプライ方法。
3. The shared memory includes a processor in which the owner signal rewrites data with reference to the owner signal at a timing one clock before a timing at which the owner signal is sufficiently determined. At the timing when the owner signal is sufficiently determined, and then determines that the owner signal indicates that there is a processor that has rewritten data by referring to the owner signal. 3. The data reply method in a multiprocessor system according to claim 2, wherein the data reply operation is not performed when the data reply is performed.
JP8055498A 1996-02-19 1996-02-19 Data reply method in multiprocessor system Expired - Fee Related JP2885168B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8055498A JP2885168B2 (en) 1996-02-19 1996-02-19 Data reply method in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8055498A JP2885168B2 (en) 1996-02-19 1996-02-19 Data reply method in multiprocessor system

Publications (2)

Publication Number Publication Date
JPH09223119A JPH09223119A (en) 1997-08-26
JP2885168B2 true JP2885168B2 (en) 1999-04-19

Family

ID=13000317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8055498A Expired - Fee Related JP2885168B2 (en) 1996-02-19 1996-02-19 Data reply method in multiprocessor system

Country Status (1)

Country Link
JP (1) JP2885168B2 (en)

Also Published As

Publication number Publication date
JPH09223119A (en) 1997-08-26

Similar Documents

Publication Publication Date Title
US5608881A (en) Microcomputer system for accessing hierarchical buses
JPH0666056B2 (en) Information processing system
US20100005247A1 (en) Method and Apparatus for Global Ordering to Insure Latency Independent Coherence
KR19980041719A (en) Semiconductor devices and computer systems
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
EP0348240A2 (en) Microprocessor equipped with parity control unit on same chip
US5822762A (en) Information processing device with decision circuits and partitioned address areas
JP2885168B2 (en) Data reply method in multiprocessor system
US5012410A (en) Data processor with instruction cache memory
US20080016296A1 (en) Data processing system
JP7468112B2 (en) INTERFACE CIRCUIT AND METHOD FOR CONTROLLING INTERFACE CIRCUIT - Patent application
JP3808525B2 (en) Write and / or read access priority management device
US20040044814A1 (en) Interface between a host and a slave device having a latency greater than the latency of the host
JPH0353657B2 (en)
JP2556268B2 (en) Program download method
JP2534321B2 (en) Data transfer control method and apparatus
US20030041276A1 (en) Semiconductor device allowing control of clock supply to processor on a clock cycle basis
JPH02236748A (en) Store buffer
JPH09185547A (en) Method and device for controlling multiprocessor
JPS6054065A (en) Synchronous controller
JP3219422B2 (en) Cache memory control method
JPH047761A (en) Memory access method
JPH11328013A (en) Memory controller
JP2000047930A (en) Data processor
JPH02188856A (en) Memory access circuit

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees