JPH10301851A - Method and system for speculatively supplying cache memory data inside data processing system - Google Patents

Method and system for speculatively supplying cache memory data inside data processing system

Info

Publication number
JPH10301851A
JPH10301851A JP10096007A JP9600798A JPH10301851A JP H10301851 A JPH10301851 A JP H10301851A JP 10096007 A JP10096007 A JP 10096007A JP 9600798 A JP9600798 A JP 9600798A JP H10301851 A JPH10301851 A JP H10301851A
Authority
JP
Japan
Prior art keywords
data
processing
cache
response
processing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10096007A
Other languages
Japanese (ja)
Inventor
Kumar Arimiri Ravi
ラヴィ・カマー・アライミリ
Stephen Doddson John
ジョン・スティーブン・ドッドソン
Don Lewis Jerry
ジェリー・ドン・リュイス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10301851A publication Critical patent/JPH10301851A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide improved method and system for sharing cache memory data by reading requested data from a cache memory inside a processor before composite responses are returned from all the processors inside a data processing system to the processor. SOLUTION: The data processing system is provided with at least one CPU 11a-11n and provided with at least one each of primary cache 12a 12n and secondary cache 13a-13n and one high performance I/O device 16a-16n. In response to the request of the data by the high performance I/O device 16a-16n inside the data processing system, an intervention response is issued from the CPU 11a-11n provided with the requested data inside the data processing system. Then, the requested data are read from the secondary cache 13a-13n inside the CPU 11a-11n before the composite response is returned from all the CPUs 11a-11n inside the data processing system to the CPU 11a-11n.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、一般的にはキャッ
シュ・メモリ・データを共用する方法及びシステムに関
し、特にデータ処理システム内の処理装置とI/O装置
との間でキャッシュ・メモリ・データを共用する方法及
びシステム、なかでもデータ処理システム内の処理装置
から高機能(インテリジェント)I/O装置にキャッシ
ュ・メモリ・データを投機的に供給する方法及びシステ
ムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to a method and system for sharing cache memory data, and more particularly to a method and system for sharing cache memory data between a processing unit and an I / O device in a data processing system. And, more particularly, to a method and system for speculatively supplying cache memory data from a processing device in a data processing system to an intelligent (intelligent) I / O device.

【0002】[0002]

【従来の技術】データ処理システムは少なくとも1つの
処理装置、システム・メモリ及び様々なI/O装置を含
む。処理装置はプログラム命令を実行するための複数の
レジスタ及び実行装置を含み得る。また処理装置は、一
般に、高速メモリを利用して実現される命令キャッシュ
やデータ・キャッシュ等、1次キャッシュ(レベル1キ
ャッシュまたはL1キャッシュともいう)を有する。更
に処理装置は、先に述べたような1次キャッシュをサポ
ートするため、2次キャッシュ(レベル2キャッシュま
たはL2キャッシュともいう)を含み得る。
2. Description of the Related Art A data processing system includes at least one processing unit, system memory, and various I / O devices. The processing unit may include a plurality of registers for executing program instructions and an execution unit. The processing device generally has a primary cache (also referred to as a level 1 cache or an L1 cache) such as an instruction cache or a data cache realized by using a high-speed memory. Further, the processing unit may include a secondary cache (also called a level 2 cache or L2 cache) to support the primary cache as described above.

【0003】通常、ある処理装置からシステム・バス上
の他の処理装置またはI/O装置へ、システム・メモリ
を経由せずにデータを転送することは介入と呼ばれる。
介入プロトコルは、システム内の処理装置またはI/O
装置により読取りリクエストまたは変更予定読取り(R
WITM)リクエストを満足するためにシステム・メモ
リをアクセスしなければならない回数を減らすことによ
ってシステム性能を改良する。
[0003] Normally, transferring data from one processing unit to another processing unit or I / O device on a system bus without going through system memory is called intervention.
The intervention protocol is based on the processing unit or I / O in the system.
Read request or scheduled change read (R
WITM) Improves system performance by reducing the number of times system memory must be accessed to satisfy a request.

【0004】概して、I/O装置による未決の読取り/
RWITMリクエストがあるときは、システム・バスに
接続され、要求されたデータをそのキャッシュ内に保有
する他の処理装置はデータを要求側I/O装置に供給で
きる。従来の介入プロトコルでは、データがそのキャッ
シュにある処理装置は、そのキャッシュからデータを供
給するためデータ・バス・リクエストを発行する前に、
システム内の全ての処理装置からの"複合"応答を待つ。
[0004] Generally, pending read /
When there is an RWITM request, another processing unit connected to the system bus and holding the requested data in its cache can supply the data to the requesting I / O device. In a conventional intervention protocol, a processing unit whose data is in its cache, before issuing a data bus request to supply data from that cache,
Wait for a "composite" response from all processors in the system.

【0005】同時に、従来の介入プロトコルは"再試行"
メカニズムに対応可能であり、介入により満たされるい
かなる読取り/RWITMリクエストも、システム・バ
ス上の任意の処理装置からの"再試行"によって割込むこ
とができる。ある処理装置が介入で応答し、他の処理装
置が"再試行"で応答した場合、再試行応答は介入応答を
自動的に無効にする。その結果、システム・バス上の処
理装置による再試行リクエストが未決の場合、データを
含む処理装置はデータ・バス・リクエストを発行しな
い。
At the same time, the traditional intervention protocol is "retry"
Any read / RWITM request that is compatible with the mechanism and is satisfied by the intervention can be interrupted by a "retry" from any processing unit on the system bus. If one processor responds with an intervention and the other responds with a "retry", the retry response automatically overrides the intervention response. As a result, if a retry request by a processor on the system bus is pending, the processor containing the data will not issue a data bus request.

【0006】データ処理システム内の処理装置からの"
再試行"による影響が少ない形で、介入データが要求側
I/O装置に供給される、改良された供給機構を提供す
ることが望ましい。
[0006] From the processing unit in the data processing system,
It would be desirable to provide an improved provisioning mechanism where intervention data is provided to the requesting I / O device in a manner that is less affected by "retry".

【0007】[0007]

【発明が解決しようとする課題】本発明の目的は、キャ
ッシュ・メモリ・データを共用する改良された方法及び
システムを提供することである。
It is an object of the present invention to provide an improved method and system for sharing cache memory data.

【0008】本発明の他の目的は、データ処理システム
内の処理装置とI/O装置との間でキャッシュ・メモリ
・データを共用する改良された方法及びシステムを提供
することである。
It is another object of the present invention to provide an improved method and system for sharing cache memory data between a processing unit and an I / O device in a data processing system.

【0009】本発明の他の目的は、データ処理システム
内の処理装置から高機能I/O装置へキャッシュ・メモ
リ・データを投機的に供給する改良された方法及びシス
テムを提供することである。
It is another object of the present invention to provide an improved method and system for speculatively providing cache memory data from a processing unit in a data processing system to a sophisticated I / O device.

【0010】[0010]

【課題を解決するための手段】本発明の方法及びシステ
ムに従って、データ処理システムは少なくとも1つの処
理装置を含み、処理装置はそれぞれ少なくとも1つのキ
ャッシュ・メモリと少なくとも1つの高機能I/O装置
を持つ。データ処理システム内の高機能I/O装置によ
るデータのリクエストに応答して、データ処理システム
内の要求されたデータを持つ処理装置から介入応答が発
行される。次に、データ処理システム内の全ての処理装
置からの複合応答が処理装置に戻る前に、要求されたデ
ータが処理装置内のキャッシュ・メモリから読取られ
る。
In accordance with the method and system of the present invention, a data processing system includes at least one processing unit, each processing unit having at least one cache memory and at least one sophisticated I / O unit. Have. In response to a request for data by a sophisticated I / O device in the data processing system, an intervention response is issued from the processing device having the requested data in the data processing system. The requested data is then read from the cache memory in the processing device before the composite response from all the processing devices in the data processing system returns to the processing device.

【0011】[0011]

【発明の実施の形態】本発明は少なくとも1つのキャッ
シュ・メモリを持つデータ処理システムで実現すること
ができる。また本発明は、それぞれのプロセッサが1次
キャッシュ及び2次キャッシュを持つ様々なマルチプロ
セッサ・データ処理システムに適用できることは理解さ
れよう。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention can be realized in a data processing system having at least one cache memory. It will also be appreciated that the present invention is applicable to various multiprocessor data processing systems where each processor has a primary cache and a secondary cache.

【0012】各図、特に図1を参照する。本発明を適用
できるデータ処理システム10のブロック図が示してあ
る。データ処理システム10は複数の中央処理装置(C
PU)11a乃至11nを含み、CPU11a乃至11
nはそれぞれ1次(L1)キャッシュを含む。図に示す
通り、CPU11aは1次キャッシュ12aをCPU1
1nは1次キャッシュ12nを含む。1次キャッシュ1
2a乃至12nはそれぞれセクタ化されたキャッシュで
もよい。
Reference is made to the figures, in particular to FIG. FIG. 1 shows a block diagram of a data processing system 10 to which the present invention can be applied. The data processing system 10 includes a plurality of central processing units (C
PU) 11a to 11n;
n each include a primary (L1) cache. As shown in the figure, the CPU 11a stores the primary cache 12a in the CPU 1
1n includes the primary cache 12n. Primary cache 1
Each of 2a to 12n may be a sectorized cache.

【0013】CPU11a乃至11nはそれぞれ2次
(L2)キャッシュ13a乃至13nに接続される。2
次キャッシュ13a乃至13nはそれぞれセクタ化され
たキャッシュでもよい。CPU11a乃至11n、1次
キャッシュ12a乃至12n及び2次キャッシュ13a
乃至13nは相互接続部15を介して互いに及びシステ
ム・メモリ14に接続される。相互接続部15はバスま
たはスイッチ等である。相互接続部15にはまた高機能
I/O装置16a乃至16nが接続される。これら高機
能I/O装置16a乃至16nには、システム・メモリ
14との間でデータ転送を開始する機能がある。高機能
I/O装置16a乃至16nには、イントラネットまた
はインターネット等のネットワークを介して他のデータ
処理システムとの通信に用いられる様々なアダプタを追
加できる。
The CPUs 11a to 11n are connected to secondary (L2) caches 13a to 13n, respectively. 2
Each of the next caches 13a to 13n may be a sectorized cache. CPUs 11a to 11n, primary caches 12a to 12n, and secondary cache 13a
13n are connected to each other and to the system memory 14 via an interconnect 15. The interconnect 15 is a bus or a switch. The high-performance I / O devices 16a to 16n are also connected to the interconnection unit 15. These advanced I / O devices 16a to 16n have a function of starting data transfer with the system memory 14. Various adapters used for communication with other data processing systems via a network such as an intranet or the Internet can be added to the high-performance I / O devices 16a to 16n.

【0014】本発明の好適な実施例として、CPU、1
次キャッシュ及び2次キャッシュ、例えば図1に示した
CPU11a、1次キャッシュ12a、そして2次キャ
ッシュ13aは処理装置と総称することができる。デー
タ処理システムの好適な実施例は図1に示しているが、
本発明は様々なシステム構成の中で実施できることは理
解されよう。例えばCPU11a乃至11nには3レベ
ル以上のキャッシュ・メモリがあってもよい。
As a preferred embodiment of the present invention, a CPU,
The secondary cache and the secondary cache, for example, the CPU 11a, the primary cache 12a, and the secondary cache 13a shown in FIG. 1 can be collectively referred to as a processing device. A preferred embodiment of the data processing system is shown in FIG.
It is understood that the present invention can be implemented in various system configurations. For example, the CPUs 11a to 11n may have three or more levels of cache memories.

【0015】表1を参照する。従来技術の介入プロトコ
ルによる処理装置からの設定済みコヒーレンシ応答が示
してある。マルチプロセッサ・データ処理システム内の
I/O装置がシステム・バス上に読取りリクエストまた
は変更予定読取り(RWITM)リクエストを出した
後、システム内の処理装置はスヌープの後、表1に従っ
て応答の1つを発行することができる。
Please refer to Table 1. A set coherency response from a processing unit according to a prior art intervention protocol is shown. After an I / O device in a multiprocessor data processing system issues a read request or a read-to-change (RWITM) request on the system bus, the processing unit in the system, after a snoop, responds to one of the responses according to Table 1. Can be issued.

【表1】 [Table 1]

【0016】表1に示す通り、コヒーレンシ応答は3ビ
ット・スヌープ応答信号の形を取り、各コヒーレンシ応
答はここで述べているように定義される。これらの信号
はエンコードされ、アドレス保持時間の後にスヌープ結
果が示される。また各応答に優先度値が関連付けられ、
これによりシステム・ロジックは、システム・バスの全
ての処理装置及び全てのI/O装置に返す1つのスヌー
プ応答信号を定式化するとき、どのコヒーレンシ応答を
優先するか決定できる。例えば、ある処理装置が共用介
入応答(優先度3)で応答し、他の処理装置が再試行応
答(優先度1)で応答した場合、システム・ロジックが
再試行コヒーレンシ応答を要求側処理装置及びシステム
・バスに接続された他の全ての処理装置に返すように、
再試行応答の処理装置に優先権が与えられる。このシス
テム・ロジックは、システム制御装置またはメモリ・コ
ントローラ等、システム内の様々なコンポーネントに置
くことができる。
As shown in Table 1, the coherency response takes the form of a 3-bit snoop response signal, where each coherency response is defined as described herein. These signals are encoded and the snoop result is shown after the address holding time. Each response also has a priority value associated with it,
This allows system logic to determine which coherency response has priority when formulating one snoop response signal to return to all processing units and all I / O devices on the system bus. For example, if one processor responds with a shared intervention response (priority 3) and another responds with a retry response (priority 1), the system logic may send a retry coherency response to the requesting processor and To return to all other processing units connected to the system bus,
The processing unit of the retry response is given priority. This system logic can reside in various components in the system, such as a system controller or memory controller.

【0017】要求されているデータの"所有者"はどの
(処理装置の)キャッシュか、従ってデータを供給する
資格があるかを確認するため周知のメカニズムをいくつ
か採用できる。従来のMESIプロトコルでは、要求さ
れたデータをキャッシュが"変更"または"排他"の状態で
保持している場合、これは、このキャッシュがシステム
内でデータの有効なコピーを含む唯一のキャッシュであ
り、、明らかに所有者であることを意味する。しかし要
求されたデータをキャッシュが"共用"状態で保持してい
る場合、これは、データがシステム内の他の少なくとも
1つのキャッシュにも保持されているはずであることを
意味する。従って潜在的には、それら2つ以上のキャッ
シュのいずれもがデータを供給できる。このような場合
には、どのキャッシュが供給源となるか決定するためい
くつかの選択肢が利用できる。
[0017] Several well-known mechanisms may be employed to ascertain which cache (of the processing unit) the requested data "owner" is and thus is eligible to supply the data. In the conventional MESI protocol, if the cache holds the requested data in a "modified" or "exclusive" state, this is the only cache in the system that contains a valid copy of the data. ,, obviously means the owner. However, if the cache holds the requested data in a "shared" state, this means that the data should also be held in at least one other cache in the system. Thus, potentially, any of the two or more caches can supply data. In such cases, several options are available to determine which cache is the source.

【0018】図2を参照する。従来技術による供給機構
を説明するため代表的なデータ処理システムのブロック
図が示してある。例えば高機能I/O装置24がシステ
ム・バス23上に読取りリクエストまたはRWITMリ
クエストを出し、処理装置21のL2キャッシュに、I
/O装置24から要求されたデータがあるものとする。
更に処理装置20内のL2キャッシュは"無効"状態にあ
り、処理装置21内のL2キャッシュは"変更"状態にあ
り、処理装置22内のL2キャッシュには要求されたデ
ータがないものとする。後に続く処理のシーケンスは従
来技術で述べられているように、ソース介入を実行する
ため各処理装置のL2キャッシュ・コントローラによっ
て担当される。
Referring to FIG. A block diagram of a typical data processing system is shown to illustrate a prior art supply mechanism. For example, the advanced I / O device 24 issues a read request or an RWITM request on the system bus 23, and stores the I / O request in the L2 cache of the processing device 21.
It is assumed that there is data requested by the / O device 24.
Further, it is assumed that the L2 cache in the processing device 20 is in the "invalid" state, the L2 cache in the processing device 21 is in the "changed" state, and the L2 cache in the processing device 22 does not have the requested data. The subsequent sequence of processing is handled by the L2 cache controller of each processing unit to perform source intervention as described in the prior art.

【0019】I/O装置24が出した読取り/RWIT
Mリクエストはシステム・バス23から、処理装置2
1、処理装置22、及び処理装置23によって"スヌー
プ"される。処理装置21乃至23のそれぞれでL2キ
ャッシュ・ディレクトリのルックアップが実行され、要
求されたデータがそのL2キャッシュに存在するかどう
か確認される。処理装置21には要求されたデータがあ
るので、処理装置21によって介入応答が発行され、処
理装置21内の有限状態機械がディスパッチされて後に
続く処理が制御される。処理装置21のL2キャッシュ
内のデータが"変更"状態にある場合、処理装置21によ
って変更介入コヒーレンシ応答が発行される。処理装置
21のL2キャッシュ内のデータが"共用"または"排他"
の状態にある場合は、処理装置21によって共用介入コ
ヒーレンシ応答が発行される。処理装置20内のL2キ
ャッシュは"無効"状態で、処理装置22内のL2キャッ
シュには要求されたデータがないので、処理装置20及
び22はそれぞれヌル・コヒーレンシ応答を送る。
Read / RWIT issued by I / O device 24
The M request is sent from the system bus 23 to the processing device 2
1, "Snoop" by the processing unit 22 and the processing unit 23. A lookup of the L2 cache directory is performed on each of the processing units 21 to 23 to determine whether the requested data exists in the L2 cache. Since the requested data exists in the processing unit 21, an intervention response is issued by the processing unit 21, and the finite state machine in the processing unit 21 is dispatched to control the subsequent processing. When the data in the L2 cache of the processing device 21 is in the “changed” state, the processing device 21 issues a change intervention coherency response. Data in the L2 cache of the processing device 21 is “shared” or “exclusive”
, The processing unit 21 issues a shared intervention coherency response. Processors 20 and 22 each send a null coherency response because the L2 cache in processor 20 is in an "invalid" state and there is no requested data in the L2 cache in processor 22.

【0020】介入応答の発行後、処理装置21は複合応
答に備える。複合応答は、基本的には、この例では自身
からのコヒーレンシ応答並びに処理装置20、22及び
I/O装置24からのコヒーレンシ応答を含む。戻った
複合応答が変更介入コヒーレンシ応答である場合、処理
装置21は要求されたデータの供給をそのL2キャッシ
ュから開始できる。処理装置20または処理装置22
が、どのような理由であれ再試行を要求した場合は、確
立された介入プロトコル下では、再試行リクエストが優
先される(つまり供給シーケンスは先に進まない)。例
えば処理装置22がスヌープ・キュー・ビジー状態にあ
って、再試行リクエストを出しているかも知れない。
After issuing the intervention response, the processor 21 prepares for the composite response. The composite response basically includes, in this example, a coherency response from itself and a coherency response from the processing units 20, 22 and the I / O device 24. If the returned composite response is a change intervention coherency response, the processing unit 21 can start supplying the requested data from its L2 cache. Processing device 20 or processing device 22
If, for any reason, a retry is requested, under the established intervention protocol, the retry request takes precedence (ie, the provisioning sequence does not proceed). For example, processor 22 may be in a snoop queue busy state and issue a retry request.

【0021】スヌープ操作が開始されてから、処理装置
21のL2キャッシュのデータが変更されていないか、
またはL1キャッシュに存在しない(つまりL1包含性
ではない)場合は、処理装置21はシステム・バス・ア
ービタに対するシステム・バス・リクエストを開始でき
る(通常、要求されたデータはシステム・バス・リクエ
ストが開始される前にL2キャッシュ・コントローラに
よってバッファに読込まれなければならない)。でなけ
れば処理装置21のL1キャッシュは、システム・バス
・リクエストが出される前にフラッシュされ無効化され
る(つまりL1キャッシュの変更されたデータをL2キ
ャッシュに書き戻し、L1キャッシュのコピーを無効化
する)。しかし処理装置21のL1キャッシュが"共用"
状態にある場合は、データ・バス・リクエストを出す前
に必要になるのはL1キャッシュの無効化だけである。
Whether the data in the L2 cache of the processing unit 21 has been changed since the start of the snoop operation,
Or, if not present in the L1 cache (ie, not L1 inclusive), the processing unit 21 can initiate a system bus request to the system bus arbiter (usually, the requested data is initiated by the system bus request). Must be read into the buffer by the L2 cache controller before it can be executed). Otherwise, the L1 cache of the processing unit 21 is flushed and invalidated before the system bus request is issued (that is, the changed data of the L1 cache is written back to the L2 cache, and the copy of the L1 cache is invalidated). Do). However, the L1 cache of the processing unit 21 is "shared"
If so, all that is required before invalidating the data bus request is to invalidate the L1 cache.

【0022】次に処理装置21はシステム・バスの使用
権が戻るのを待つ。I/O装置24への実際のデータ供
給は、データ・バスの使用が許可された後に開始され
る。供給が完了すると、処理装置21のL2キャッシュ
は"変更"状態から、読取りリクエストでは"共用"状態
に、RWITMリクエストでは"無効"状態に代わる。処
理装置20及び22のL2キャッシュの状態は変わらな
い。
Next, the processor 21 waits for the right to use the system bus to return. The actual supply of data to the I / O device 24 begins after the use of the data bus has been granted. When the supply is completed, the L2 cache of the processing unit 21 changes from the "changed" state to the "shared" state for a read request and the "invalid" state for an RWITM request. The state of the L2 cache of the processing devices 20 and 22 does not change.

【0023】図3を参照する。本発明の好適な実施例に
従って、データ処理システム内の処理装置からI/O装
置へキャッシュ・メモリ・データを投機的に供給するハ
イレベル・ロジックのフローチャートが示してある。ブ
ロック30から始まり、システム内の全ての処理装置に
より、システム・バスから読取り/RWITMリクエス
トがスヌープされる(ブロック31)。L2キャッシュ
・ディレクトリのルックアップが実行され、要求された
データがL2キャッシュに存在するかどうか各処理装置
によって確認がなされる(ブロック32)。ヌル・コヒ
ーレンシ応答が、要求されたデータを保持していない全
ての処理装置(図2の処理装置20及び22等)によっ
て発行され(ブロック33)、プロセスはブロック99
で終了する。他方、要求されたデータを保持している処
理装置(図2の処理装置21等)からは介入コヒーレン
シ応答が発行される(ブロック34)。
Referring to FIG. A flowchart of high-level logic for speculatively providing cache memory data from a processing unit in a data processing system to an I / O device in accordance with a preferred embodiment of the present invention is shown. Beginning at block 30, a read / RWITM request is snooped from the system bus by all processing units in the system (block 31). A lookup of the L2 cache directory is performed and a check is made by each processing unit whether the requested data is present in the L2 cache (block 32). A null coherency response is issued by all processors (such as processors 20 and 22 of FIG. 2) that do not hold the requested data (block 33) and the process proceeds to block 99.
Ends with On the other hand, a processing device (such as the processing device 21 in FIG. 2) holding the requested data issues an intervention coherency response (block 34).

【0024】介入コヒーレンシ応答の発行後、介入側処
理装置は、特定のキャッシュ管理タスクを実行しなけれ
ばならない(ブロック35)。これらのタスクは、L1
キャッシュのデータ・コピーが変更されている場合は介
入側処理装置のL1キャッシュのデータ・コピーをフラ
ッシュし無効化する操作、またはL1キャッシュのデー
タ・コピーが変更されていない場合は単に介入側処理装
置のL1キャッシュのデータ・コピーを無効化する操作
を含む。
After issuing the intervention coherency response, the intervening processing unit must perform certain cache management tasks (block 35). These tasks are L1
The operation of flushing and invalidating the data copy of the L1 cache of the intervening processing unit if the data copy of the cache has been changed, or simply the intervening processing unit if the data copy of the L1 cache has not been changed. Invalidating the L1 cache data copy.

【0025】その後、要求されたデータが介入側処理装
置のL2キャッシュから、好適にはバッファに読込ま
れ、システム・バス・アービタにシステム・データ・バ
スのリクエストが出される(ブロック36)。システム
・データ・バスの使用が許可されているかどうか確認が
なされる(ブロック37)。許可されていない場合は、
複合コヒーレンシ応答が戻っているかどうか確認がなさ
れる(ブロック38)。組み合わせコヒーレンシ応答が
戻っていない場合はプロセスはブロック37に戻る。
Thereafter, the requested data is read from the L2 cache of the intervening processing unit, preferably into a buffer, and a request for a system data bus is issued to the system bus arbiter (block 36). A check is made as to whether use of the system data bus is authorized (block 37). If not,
A check is made to see if a composite coherency response has returned (block 38). If no combination coherency response has been returned, the process returns to block 37.

【0026】しかしシステム・データ・バスの使用が許
可されている場合は、要求されたデータをシステム・デ
ータ・バスに駆動することによって、要求されたデータ
の供給を介入側処理装置から開始できる(ブロック3
9)。また、この時点ですでに複合コヒーレンシ応答が
戻っているかどうか確認がなされる(ブロック40)。
複合コヒーレンシ応答がまだ戻っていない場合は、プロ
セスは複合コヒーレンシ応答が戻るのを待ち続け、その
間、要求されたデータのシステム・バスへの供給が続け
られる。
However, if the use of the system data bus is permitted, the supply of the requested data can be initiated from the intervening processing unit by driving the requested data to the system data bus ( Block 3
9). It is also checked at this point if a composite coherency response has already been returned (block 40).
If the composite coherency response has not yet returned, the process continues to wait for the composite coherency response to return while the requested data continues to be supplied to the system bus.

【0027】複合コヒーレンシ応答が戻った後、それ
が"再試行"かどうかの確認がなされる(ブロック4
1)。複合コヒーレンシ応答が再試行なら、システム・
データ・バスの使用がまだ許可されていない場合はシス
テム・データ・バス・リクエストが取り消されるか、ま
たは要求されたデータ供給がすぐに打ち切られる(ブロ
ック42)。供給がこの時点ですでに完了している場合
も、再試行コヒーレンシ応答のために結果は廃棄され
る。複合コヒーレンシ応答が再試行でない場合は、もし
要求されたデータの供給が完了していなければ、それが
完了するまで続く。最後に介入側処理装置のL2キャッ
シュのステータスが更新され(ブロック43)、プロセ
スはブロック99で終了する。
After returning the composite coherency response, a check is made as to whether it is a "retry" (block 4).
1). If the composite coherency response is a retry, the system
If the use of the data bus has not yet been granted, the system data bus request is canceled or the requested data supply is immediately aborted (block 42). If the feed has already been completed at this point, the result will be discarded due to the retry coherency response. If the composite coherency response is not a retry, if the supply of the requested data has not been completed, it continues until it is completed. Finally, the status of the intervening processing unit's L2 cache is updated (block 43) and the process ends at block 99.

【0028】先に述べたように、本発明は、データ処理
システム内の処理装置から高機能I/O装置へキャッシ
ュ・メモリ・データを投機的に供給する方法を提供す
る。具体的には、本発明の開示では、複合コヒーレンシ
応答が戻る前に要求されたデータが介入側処理装置のL
2キャッシュから読取られる新規な介入例に述べてい
る。
As noted above, the present invention provides a method for speculatively providing cache memory data from a processing unit in a data processing system to a sophisticated I / O device. Specifically, in the disclosure of the present invention, the data requested before the composite coherency response returns is transmitted to the L
2 describes an example of a new intervention read from the cache.

【0029】本発明には、性能面で従来技術にはない明
らかな利点がある。システム・バス上の読取り/RWI
TMリクエストと複合応答のサンプリングとの間の遅延
がシステム・バスの数クロック・サイクルになるからで
ある。よって、要求されたデータを複合コヒーレンシ応
答が受信される前に介入側処理装置のL2キャッシュか
ら読取られるようにすることで、介入待ち時間が大幅に
短縮され、システム全体の性能も大きく改良される。
The present invention has distinct advantages in performance over the prior art. Read / RWI on system bus
This is because the delay between the TM request and the sampling of the composite response is several clock cycles of the system bus. Thus, by requiring the requested data to be read from the L2 cache of the intervening processor before the composite coherency response is received, the intervention latency is significantly reduced and the overall system performance is greatly improved. .

【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
In summary, the following matters are disclosed regarding the configuration of the present invention.

【0031】(1)データ処理システム内の、少なくと
も1つのキャッシュ・メモリを含む処理装置からI/O
装置へキャッシュ・メモリ・データを投機的に供給する
方法であって、前記I/O装置によるデータに対するリ
クエストに応答して、要求されたデータを持つ処理装置
によって介入応答を発行するステップと、前記データ処
理システム内の全ての処理装置からの複合応答が前記処
理装置に戻る前に、前記要求されたデータを前記処理装
置内のキャッシュ・メモリから読取るステップと、を含
む、方法。 (2)前記読取るステップは、前記要求されたデータを
前記処理装置内のキャッシュ・メモリからバッファへ読
込むステップを含む、前記(1)記載の方法。 (3)前記リクエストは、読取りリクエストまたは変更
予定読取りリクエストを含む、前記(1)記載の方法。 (4)戻った複合応答が再試行である場合に前記読取る
ステップを止めるステップを含む、前記(1)記載の方
法。 (5)前記要求されたデータを前記複合応答が戻る前に
前記処理装置によって供給することをシステム・バスに
要求するステップを含む、前記(1)記載の方法。 (6)前記要求されたデータを前記複合応答が戻る前に
前記処理装置によって供給するステップを含む、前記
(5)記載の方法。 (7)データ処理システム内のI/O装置へデータを投
機的に供給できるキャッシュ・メモリを持つ処理装置で
あって、前記I/O装置によるデータに対するリクエス
トに応答して、前記データ処理システム内の要求された
データを持つ処理装置から介入応答を発行する手段と、
全ての処理装置から複合応答が前記処理装置に戻る前
に、前記要求されたデータを前記処理装置内のキャッシ
ュ・メモリから読取る手段と、を含む、処理装置。 (8)前記読取る手段は、前記処理装置内のキャッシュ
・メモリからバッファに前記要求されたデータを読込む
手段を含む、前記(7)記載の処理装置。 (9)前記リクエストは読取りリクエストまたは変更予
定読取りリクエストを含む、前記(7)記載の処理装
置。 (10)前記処理装置は、戻った複合応答が再試行であ
る場合に前記読取る手段による読取りを止める手段を含
む、前記(7)記載の処理装置。 (11)前記処理装置は、前記複合応答が戻る前に前記
要求されたデータを前記処理装置によって供給すること
をシステム・バスに要求する手段を含む、前記(7)記
載の処理装置。 (12)前記処理装置は、前記複合応答が戻る前に前記
要求されたデータを前記処理装置によって供給する手段
を含む、前記(11)記載の処理装置。
(1) I / O from a processing unit in a data processing system including at least one cache memory
A method of speculatively providing cache memory data to a device, the method comprising: in response to a request for data by the I / O device, issuing an intervention response by a processing device having the requested data; Reading the requested data from a cache memory in the processing device before the composite response from all the processing devices in the data processing system returns to the processing device. (2) The method according to (1), wherein the reading step includes reading the requested data from a cache memory in the processing device into a buffer. (3) The method according to (1), wherein the request includes a read request or a read request to be changed. (4) The method according to (1), further comprising the step of stopping the reading step if the returned composite response is a retry. 5. The method of claim 1, further comprising requesting a system bus to provide the requested data by the processing device before the composite response returns. (6) The method of (5), comprising providing the requested data by the processing device before the composite response returns. (7) A processing device having a cache memory capable of speculatively supplying data to an I / O device in the data processing system, wherein the processing device has a cache memory in response to a request for data by the I / O device. Means for issuing an intervention response from a processing unit having the requested data of
Means for reading the requested data from a cache memory in the processing device before the composite response from all processing devices returns to the processing device. (8) The processing device according to (7), wherein the reading unit includes a unit that reads the requested data from a cache memory in the processing device to a buffer. (9) The processing device according to (7), wherein the request includes a read request or a read request to be changed. (10) The processing device according to (7), wherein the processing device includes means for stopping reading by the reading means when the returned composite response is a retry. (11) The processing device according to (7), wherein the processing device includes means for requesting a system bus to supply the requested data by the processing device before returning the composite response. (12) The processing device according to (11), wherein the processing device includes means for supplying the requested data by the processing device before the composite response returns.

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

【図1】本発明を適用できるデータ処理システムのブロ
ック図である。
FIG. 1 is a block diagram of a data processing system to which the present invention can be applied.

【図2】従来技術による供給機構を示す代表的なデータ
処理システムのブロック図である。
FIG. 2 is a block diagram of an exemplary data processing system showing a supply mechanism according to the prior art.

【図3】本発明の好適な実施例に従って、データ処理シ
ステム内の処理装置からI/O装置にキャッシュ・メモ
リ・データを投機的に供給する方法を示したハイレベル
・ロジックのフローチャートを示す図である。
FIG. 3 is a high level logic flowchart illustrating a method for speculatively providing cache memory data from a processing unit in a data processing system to an I / O device in accordance with a preferred embodiment of the present invention. It is.

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

10 データ処理システム 11a、11b、11c、11d、11e、11f、1
1g、11h、11i、11j、11k、11l、11
m、11n 中央処理装置(CPU) 12a、12b、12c、12d、12e、12f、1
2g、12h、12i、12j、12k、12l、12
m、12n 1次キャッシュ 13a、13b、13c、13d、13e、13f、1
3g、13h、13i、13j、13k、13l、13
m、13n 2次キャッシュ 14 システム・メモリ 15 相互接続部 16a、16b、16c、16d、16e、16f、1
6g、16h、16i、16j、16k、16l、16
m、16n、24 高機能I/O装置 20、21、22 処理装置 23 システム・バス
10 Data processing system 11a, 11b, 11c, 11d, 11e, 11f, 1
1g, 11h, 11i, 11j, 11k, 11l, 11
m, 11n Central processing unit (CPU) 12a, 12b, 12c, 12d, 12e, 12f, 1
2g, 12h, 12i, 12j, 12k, 121, 12
m, 12n Primary cache 13a, 13b, 13c, 13d, 13e, 13f, 1
3g, 13h, 13i, 13j, 13k, 131, 13
m, 13n Secondary cache 14 System memory 15 Interconnections 16a, 16b, 16c, 16d, 16e, 16f, 1
6g, 16h, 16i, 16j, 16k, 16l, 16
m, 16n, 24 Advanced I / O device 20, 21, 22 Processing device 23 System bus

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スティーブン・ドッドソン アメリカ合衆国78660、テキサス州フェラ ガービル、ベル・ロック・サークル 1205 (72)発明者 ジェリー・ドン・リュイス アメリカ合衆国78681、テキサス州ラウン ド・ロック、アローヘッド・サークル 3409 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor John Stephen Dodson 78660 USA, Bell Rock Circle, Ferragerville, Texas 1205 (72) Inventor Jerry Don Luis United States 78681, Round Rock, Texas , Arrowhead Circle 3409

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】データ処理システム内の、少なくとも1つ
のキャッシュ・メモリを含む処理装置からI/O装置へ
キャッシュ・メモリ・データを投機的に供給する方法で
あって、 前記I/O装置によるデータに対するリクエストに応答
して、要求されたデータを持つ処理装置によって介入応
答を発行するステップと、 前記データ処理システム内の全ての処理装置からの複合
応答が前記処理装置に戻る前に、前記要求されたデータ
を前記処理装置内のキャッシュ・メモリから読取るステ
ップと、 を含む、方法。
1. A method for speculatively supplying cache memory data to an I / O device from a processing device including at least one cache memory in a data processing system, the method comprising: Issuing an intervention response by the processing device having the requested data in response to the request for the data processing system, and before the combined response from all the processing devices in the data processing system returns to the processing device, Reading the read data from a cache memory in the processing unit.
【請求項2】前記読取るステップは、前記要求されたデ
ータを前記処理装置内のキャッシュ・メモリからバッフ
ァへ読込むステップを含む、請求項1記載の方法。
2. The method of claim 1, wherein said reading step comprises reading said requested data from a cache memory in said processing unit to a buffer.
【請求項3】前記リクエストは、読取りリクエストまた
は変更予定読取りリクエストを含む、請求項1記載の方
法。
3. The method of claim 1, wherein the request comprises a read request or a read to change request.
【請求項4】戻った複合応答が再試行である場合に前記
読取るステップを止めるステップを含む、請求項1記載
の方法。
4. The method of claim 1, further comprising the step of stopping said reading step if the returned composite response is a retry.
【請求項5】前記要求されたデータを前記複合応答が戻
る前に前記処理装置によって供給することをシステム・
バスに要求するステップを含む、請求項1記載の方法。
5. The system of claim 1 wherein said requested data is provided by said processing unit before said composite response returns.
The method of claim 1, comprising requesting a bus.
【請求項6】前記要求されたデータを前記複合応答が戻
る前に前記処理装置によって供給するステップを含む、
請求項5記載の方法。
6. Providing the requested data by the processing device before the composite response returns.
The method of claim 5.
【請求項7】データ処理システム内のI/O装置へデー
タを投機的に供給できるキャッシュ・メモリを持つ処理
装置であって、 前記I/O装置によるデータに対するリクエストに応答
して、前記データ処理システム内の要求されたデータを
持つ処理装置から介入応答を発行する手段と、 全ての処理装置から複合応答が前記処理装置に戻る前
に、前記要求されたデータを前記処理装置内のキャッシ
ュ・メモリから読取る手段と、 を含む、処理装置。
7. A processing device having a cache memory capable of speculatively supplying data to an I / O device in a data processing system, wherein the data processing device responds to a request for data by the I / O device. Means for issuing an intervention response from the processing device having the requested data in the system; and a cache memory in the processing device before the combined response from all the processing devices returns to the processing device. Means for reading from a processing device.
【請求項8】前記読取る手段は、前記処理装置内のキャ
ッシュ・メモリからバッファに前記要求されたデータを
読込む手段を含む、請求項7記載の処理装置。
8. The processing apparatus according to claim 7, wherein said reading means includes means for reading said requested data from a cache memory in said processing apparatus into a buffer.
【請求項9】前記リクエストは読取りリクエストまたは
変更予定読取りリクエストを含む、請求項7記載の処理
装置。
9. The processing device according to claim 7, wherein said request includes a read request or a read request to be changed.
【請求項10】前記処理装置は、戻った複合応答が再試
行である場合に前記読取る手段による読取りを止める手
段を含む、請求項7記載の処理装置。
10. The processing apparatus according to claim 7, wherein said processing apparatus includes means for stopping reading by said reading means when the returned composite response is a retry.
【請求項11】前記処理装置は、前記複合応答が戻る前
に前記要求されたデータを前記処理装置によって供給す
ることをシステム・バスに要求する手段を含む、請求項
7記載の処理装置。
11. The processing unit of claim 7, wherein said processing unit includes means for requesting a system bus to provide said requested data by said processing unit before said composite response returns.
【請求項12】前記処理装置は、前記複合応答が戻る前
に前記要求されたデータを前記処理装置によって供給す
る手段を含む、請求項11記載の処理装置。
12. The processing device according to claim 11, wherein said processing device includes means for supplying said requested data by said processing device before said composite response returns.
JP10096007A 1997-04-14 1998-04-08 Method and system for speculatively supplying cache memory data inside data processing system Pending JPH10301851A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83411797A 1997-04-14 1997-04-14
US08/834117 1997-04-14

Publications (1)

Publication Number Publication Date
JPH10301851A true JPH10301851A (en) 1998-11-13

Family

ID=25266163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10096007A Pending JPH10301851A (en) 1997-04-14 1998-04-08 Method and system for speculatively supplying cache memory data inside data processing system

Country Status (6)

Country Link
JP (1) JPH10301851A (en)
KR (1) KR100277446B1 (en)
CN (1) CN1110755C (en)
CA (1) CA2231361A1 (en)
SG (1) SG68034A1 (en)
TW (1) TW386192B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197716A (en) * 2007-02-08 2008-08-28 Nec Corp Data consistency control system and data consistency control method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW480404B (en) * 1999-08-31 2002-03-21 Ibm Memory card with signal processing element

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68924306T2 (en) * 1988-06-27 1996-05-09 Digital Equipment Corp Multi-processor computer arrays with shared memory and private caches.
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197716A (en) * 2007-02-08 2008-08-28 Nec Corp Data consistency control system and data consistency control method

Also Published As

Publication number Publication date
KR19980079625A (en) 1998-11-25
CA2231361A1 (en) 1998-10-14
CN1197956A (en) 1998-11-04
CN1110755C (en) 2003-06-04
TW386192B (en) 2000-04-01
KR100277446B1 (en) 2001-01-15
SG68034A1 (en) 1999-10-19

Similar Documents

Publication Publication Date Title
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US6785776B2 (en) DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
CN101523361B (en) Handling of write access requests to shared memory in a data processing device
EP0514024B1 (en) Method and apparatus for an improved memory architecture
CN101088076B (en) Method, device and multi-processor system for predictive early write-back of owned cache blocks in a shared memory computer system
US5751995A (en) Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
JPH08115260A (en) Coherency of i/o channel controller of data-processing system as well as apparatus and method for synchronization
US5895484A (en) Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller
JPH09138779A (en) Snoop processing method
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
JPH1031625A (en) Write-back buffer for improved copy-back performance in multi-processor systems
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
JP7681005B2 (en) Active direct cache transfer from producer to consumer
US6507880B1 (en) Bus protocol, bus master and bus snooper for execution of global operations utilizing multiple tokens
US5924118A (en) Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system
US6973541B1 (en) System and method for initializing memory within a data processing system
JP4409619B2 (en) Information processing apparatus, control apparatus, and control method
US6480915B1 (en) Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release
JP3550092B2 (en) Cache device and control method
US6460101B1 (en) Token manager for execution of global operations utilizing multiple tokens
US6055608A (en) Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system
US6460100B1 (en) Bus snooper for SMP execution of global operations utilizing a single token with implied release
US6782456B2 (en) Microprocessor system bus protocol providing a fully pipelined input/output DMA write mechanism
US20070073977A1 (en) Early global observation point for a uniprocessor system

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051011

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051014