WO2007099614A1 - システムコントローラおよびキャッシュ制御方法 - Google Patents

システムコントローラおよびキャッシュ制御方法 Download PDF

Info

Publication number
WO2007099614A1
WO2007099614A1 PCT/JP2006/303789 JP2006303789W WO2007099614A1 WO 2007099614 A1 WO2007099614 A1 WO 2007099614A1 JP 2006303789 W JP2006303789 W JP 2006303789W WO 2007099614 A1 WO2007099614 A1 WO 2007099614A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
cache
state
snoop
system controller
Prior art date
Application number
PCT/JP2006/303789
Other languages
English (en)
French (fr)
Inventor
Gou Sugizaki
Satoshi Nakagawa
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to JP2008502601A priority Critical patent/JP4327238B2/ja
Priority to PCT/JP2006/303789 priority patent/WO2007099614A1/ja
Publication of WO2007099614A1 publication Critical patent/WO2007099614A1/ja
Priority to US12/199,469 priority patent/US7979644B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Definitions

  • the present invention relates to a system controller that controls a cache device that constitutes a multiprocessor system, and a cache control method that controls the cache device, and more particularly to an address conflict between accesses when a snoop process is executed.
  • the present invention relates to a system controller and a cache control method capable of reducing the frequency of retries.
  • a multiprocessor system in response to the demand for high-speed computer systems, a multiprocessor system has been provided with a cache device for each CPU.
  • Data on the cache device provided for each CPU is data consistency between cache devices in order to maintain the correctness of the data between cache devices, that is, data sharing and consistency.
  • M is in a modified state, valid data is held in only one of the plurality of cache devices, and the data has been modified and has the same value as that of the main storage device. It is not guaranteed.
  • E is in an exclusive state, and valid data is held in only one of the cache devices.
  • S is in a shared state, and the same data is held on a plurality of cache devices.
  • I is in an invalid state, and the data on the cache device is invalid.
  • the cache memory retains a part of the data in the main storage device in block units of the cache line and information indicating the data block state held in the cache line
  • the cache controller adds the data block status to the invalid block status I, shared status S, exclusive status E, modified status M, shared modified status O, etc.
  • a technique for controlling a cache memory by expressing it in six states of a writable modified state W (Writable Modified), which is a state for providing sharing, is disclosed.
  • FIG. 1 is a diagram showing a snoop process of a fetch request in a relatively small multiprocessor system (without a crossbar switch! /, Lower model), and Fig. 2 is a diagram showing a relatively large multiprocessor system. It is a figure which shows the snoop process of the fetch request
  • FIGS. 1 and 2 when the processor unit (CPU0) power is also requested to access the memory, the coherency between the cache devices is maintained. Broadcast to all system controllers (SC0, SCI) involved in access. Each system controller (SC0, SCI) simultaneously executes a snoop process to check the status of the cache device of the processor unit that it is responsible for, the contention for the target data, and the resources used for data transfer. The results are communicated between the corresponding system controllers (SC0, SCI).
  • FIG. 3 is a diagram showing a fetch request snoop process (with retry) in the lower model.
  • the present invention has been made in view of the above circumstances, and in a large-scale information processing apparatus composed of multiprocessors, a snoop process performed between a plurality of system controllers is performed by the number of stages of the snoop pipeline. By adjusting, the difference in the communication time of the snoop result for each scale of the multiprocessor system is absorbed, and when there is an address conflict between accesses during the snoop process, the retry interval is determined from the number of stages of the snoop pipeline.
  • An object of the present invention is to provide a system controller and a cache control method capable of preventing frequent occurrences of retries.
  • the present invention employs the following configuration in order to solve the above-described problems.
  • the system controller of the present invention is a system controller that controls a cache device that constitutes a multiprocessor system, and the cache device is provided for each processor module and connected to each other.
  • the cache memory that holds a part of the data in the main storage device in block units of the cache line and holds information indicating the data block state held in the cache line, and the invalid state I ( Invalid), shared state S (Shared), exclusive state E (Exclusive), modified state M (Modified), shared modified state O (Shared Modified), writable state W (Writable Modified)
  • a cache controller for controlling the cache memory, and the system controller power and other system controllers. With Trolla And a snoop control unit in which the number of stages of the snoop pipeline is determined on the basis of the communication time.
  • the system controller of the present invention determines a retry interval in accordance with the snoop control unit power and the determined number of steps.
  • the system controller of the present invention is preferably an LSI for a large-scale system LSI having a plurality of the cache devices! /.
  • the cache control method of the present invention is a cache control method for controlling a cache device that constitutes a multiprocessor system, wherein a part of main memory is stored in a cache memory.
  • a cache control method for controlling a cache device that constitutes a multiprocessor system, wherein a part of main memory is stored in a cache memory.
  • the data block status is set to invalid status I (Invalid) and shared status S (Shared).
  • Exclusive state E Exclusive
  • modified state M Modified
  • shared modified state O Shared Modified
  • writable state W Writable Modified
  • FIG. 1 is a diagram showing a fetch request snoop process (no retry) in a lower model.
  • FIG. 2 is a diagram showing a snoop process for a fetch request in a higher model.
  • FIG. 3 is a diagram showing a snoop process (with retry) of a fetch request in a lower model
  • FIG. 4 is a diagram for explaining an outline of a multiprocessor system.
  • FIG. 5 is a diagram for explaining the outline of a large-scale multiprocessor system.
  • FIG. 6 is a block diagram showing a hardware configuration of a multiprocessor system.
  • FIG. 7 is a block diagram showing functions of the cache device.
  • FIG. 8 is a block diagram showing functions of the system controller.
  • FIG. 9 is a block diagram of the pipeline.
  • FIG. 10 is a diagram for explaining address conflict when snoop processing is executed by one system controller.
  • FIG. 11 is a diagram for explaining address conflict when a snoop process is executed simultaneously by a plurality of system controllers.
  • FIG. 12 is a diagram for explaining a case where the access throw-in interval to the pipeline at the time of retry is controlled to be greater than or equal to the number of stages of the snoop pipeline.
  • FIG. 4 is a diagram for explaining the outline of the multiprocessor system.
  • the multiprocessor system 1 includes a plurality of system boards 2-1, 2-2.
  • Each system board 2-1 and 2-2 has a system controller 13-1 or 13-2, multiple processor modules 10-1, 1, ..., 10-n, multiple input / output (IO) devices 11- 1,..., 11—n, and multiple memories (MEM) 16—1,.
  • the system boards 2-1 and 2—2 are connected to each other so that they can communicate with each other. Instructions from the processor modules 10—1,..., 10—n or the input / output devices 11—1,. Therefore, read / write to memory 16—1,..., 16—n is controlled.
  • FIG. 5 is a diagram for explaining an outline of a large-scale multiprocessor system.
  • the multiprocessor system 3 has more system boards 2-1, 2-2, 2-3, 2-4, 2-larger in scale than the multiprocessor system 1 in FIG. 5, 2-6, 2-7, 2—8, and these system boards 2-1,..., 2-8 are connected to each other via the crossbar switch 4. !
  • system boards 2-1,..., 2-8 are similar to the system board 2-1 provided in the multiprocessor system 1 of FIG. ⁇ , 13-5, ⁇ , multiple processor modules 10— 1,..., 10—n, multiple input / output (IO) devices 11—1,..., 11—n, multiple memories ( MEM) 16— 1, ..., 16— n ing.
  • the present invention can be applied to the multiprocessor system as shown in FIGS.
  • FIG. 6 is a block diagram showing a hardware configuration of the multiprocessor system.
  • the multiprocessor system 1 includes a plurality of processor modules 10-1, 10-2,..., 10-n, and each of the processor modules 10-l to 10-n includes a CPU. (Processor) 12-1 to 12-n and cache device 14-1 to 14-n are provided. The processor modules 10-1 to 10-n are connected to each other when the cache devices 14-1 to 14-n are connected to the system bus 15.
  • the system bus 15 connecting the cache devices 14-l to 14-n includes, for example, a snoop bus.
  • a snoop bus is one of the cache devices 14-1 to 14-n, and when there is a fetch or store processing request from the CPU 12-l to 12-n, it is held in the cache line corresponding to these processing requests. This is a bus that can immediately acquire the status of the data block being processed by the status signal of the snoop control line.
  • FIG. 7 is a block diagram illustrating functions of the cache device.
  • the cache device 14-1 includes a cache controller 18 and a cache memory 20.
  • the cache memory 20 holds data in units of a plurality of cache lines 22, and each cache line 22 includes a tag 24 and a data block 30, and the tag 24 includes a status tag 26 and an address tag 28. .
  • the state tag 26 of the cache memory 20 expresses the data block state in six states: invalid state I, shared state S, exclusive state E, modified state M, shared modified state O, and writable state W. Then, the cache memory 20 is managed.
  • the cache controller 18 is provided with a cache control management unit 32, a state management unit 34, a process signature interface (IF) 36, and a path interface (IF) 38.
  • the state management unit 34 is provided with a fetch protocol processing unit 40 and a store protocol processing unit 42.
  • the cache control management unit 32 When the cache control management unit 32 receives a fetch request from the CPU 12-1, the cache control management unit 32 refers to the tag 24 of the cache memory 20 and searches for the cache line 22 having the address tag 28 whose address value matches the request address. To do. Cache line 22 with matching address does not exist Otherwise, a cache miss occurs, and the data block is acquired from any power of the main storage device or another cache device 14-2 to 14n and provided to the CPU 12-1.
  • the cache control management unit 32 uses the status tag 26 of the cache line 22 to indicate an invalid state I, a shared state S, an exclusive state E, and a changed state. Process according to the status of M, shared change status O or writable status W.
  • the cache control management unit 32 performs a store process to update the data block of the corresponding cache line 22 on the cache memory 20 if a cache hit occurs, and a miss hit occurs. If so, store processing is performed in which a new cache line 22 is secured on the cache memory 20 and data is written. At this time, if there is a data block corresponding to any of the other cache devices 14 2 to 14-n, the latest data block is obtained from any of the other cache devices 14-2 to 14-n. Store processing to write data later.
  • the state management unit 34 responds to processing requests from any of the other cache devices 14-2 to 14-n via the CPU 12-1 and the system bus 15 by the cache control management unit 32 as described above. Then, state transition control of the state tag 26 on the corresponding cache line 22 after executing the processing request is performed.
  • an invalid state I As state transition control for cache coherence by the state management unit 34, an invalid state I, a shared state S, an exclusive state E, a changed state M, a shared changed state O, and a writable state
  • cache devices 14-2 to 14-n also have the same function as the cache device 14-1.
  • Fig. 8 is a block diagram showing the functions of the system controller
  • Fig. 9 is a block diagram of the pipeline.
  • each of the system controllers 13-1 and 13-2 includes a memory access request receiving unit 51, a broadcast transmitting / receiving unit 52, an access port unit 56, a snoop control unit 53, an MS access issuing unit 54, and a CPU.
  • a request issuing unit 55 is provided.
  • the memory access request receiving unit 51 includes the processor modules 10-1,. Receives an access request from the input / output devices 11—1,..., 11n to the memory 16—1,.
  • the broadcast transmission / reception unit 52 is a memory access request received by the memory access request reception unit 51 of the system controller 13-1 or 13-2.
  • the memory provided by the other system controller 13-2 or 13-1 is 16-16. , 16-2, the access request is transmitted / received to / from the broadcast transmission / reception unit 52 included in the other system controller 13-2 or 13-1.
  • the snoop control unit 53 is based on access requests from the processor modules 10-1,..., 10—n or the input / output devices 11—1,. Then, the snoop process for detecting the contents stored in the memory 16-1,..., 16-2 is executed.
  • the snoop control unit 53 includes a stage number adjusting circuit 531 that adjusts the number of pipeline stages. Since information processing devices in recent years require operation with a large-scale configuration, the system controllers 13-1 and 13-2 in particular must be able to absorb the environmental differences (upper model and lower model) due to various configurations. Since the communication time of the snoop result (CST packet) at the time of snoop varies depending on the configuration, this stage number adjustment circuit 531 adjusts the number of stages of the snoop pipeline according to the communication time of the CST packet.
  • the MS access issuing unit 54 based on an instruction from the snoop control unit 53, stores the memory 16-1,.
  • the CPU request issuing unit 55 issues an access instruction to the processor modules 10-1, 1, ..., 10-n based on an instruction from the snoop control unit 53. Issue.
  • an address conflict check is performed to check whether there is an access to the same address in the preceding access on the pipeline. To. If the result of this check indicates contention, the access process is interrupted and the snoop process is retried.
  • the conditions for the address conflict check here are: “(1) As the target range, the preceding access on the pipeline and the snoop result is indeterminate.” “(2) As the conflict condition, Access to the same data block, and no retry factor has been detected. "
  • FIG. 10 is a diagram for explaining the address conflict when the snoop process is executed by one system controller.
  • access B is entered in (b)
  • access B is subject to retry because access B conflicts with the previous access A (X).
  • FIG. 11 is a diagram for explaining address conflict when a snoop process is executed simultaneously by a plurality of system controllers.
  • FIG. 12 is a diagram for explaining a case where the access throw-in interval to the pipeline at the time of retry is controlled to be greater than or equal to the number of stages of the snoop pipeline.
  • the snoop process performed between a plurality of system controllers is adjusted by the number of stages of the snoop pipeline to absorb the difference in the communication time of the snoop result for each scale of the multiprocessor system, and at the time of the snoop process.
  • the number of stages in the snoop pipeline also determines the retry interval, which prevents frequent retries during an address conflict.
  • the embodiments of the present invention have been described with reference to the drawings.
  • the embodiments of the present invention described above may be implemented by hardware, a DSP board, or a CPU board as a function of the system controller. It can be realized by firmware or software.
  • the system controller to which the present invention is applied includes a plurality of devices even if it is a single device that is not limited to the above-described embodiment as long as the function is executed. Needless to say, it can be a system, an integrated device, or a system that performs processing via a network such as a LAN or WAN. /.
  • the present invention can also be realized by a system including a CPU, a ROM or RAM memory connected to a bus, an input device, an output device, an external recording device, a medium drive device, and a network connection device. That is, a ROM or RAM memory, an external recording device, and a portable recording medium that record the software program code for realizing the system of the above-described embodiment is supplied to the system controller, and the computer of the system controller executes the program. Needless to say, it can also be achieved by reading and executing the code.
  • the read-out program code itself realizes the new function of the present invention
  • the portable recording medium on which the program code is recorded constitutes the present invention. Will do.
  • Examples of portable recording media for supplying the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, DVD-ROMs, DVD-RAMs, magnetic tapes, Non-volatile memory card, ROM card, electronic Various recording media recorded via a network connection device (in other words, a communication line) such as mail and personal computer communication can be used.
  • a network connection device in other words, a communication line
  • the computer executes the program code read out on the memory, thereby realizing the functions of the above-described embodiment and operating on the computer based on the instruction of the program code. While the operating system or the like performs part or all of the actual processing, the functions of the above-described embodiment are realized by the processing.
  • the program code (data) read from the portable recording medium power and the program (data) provided by the provider are connected to the computer. After being written to the memory of the function expansion unit, the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instructions of the program code.
  • the function of the above-described embodiment can also be realized by this processing.
  • the present invention is not limited to the embodiments described above, and can take various configurations or shapes without departing from the gist of the present invention.

Landscapes

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

Description

明 細 書
システムコントローラおよびキャッシュ制御方法
技術分野
[0001] 本発明は、マルチプロセッサシステムを構成するキャッシュ装置を制御するシステム コントローラおよび該キャッシュ装置を制御するキャッシュ制御方法に関し、特に、ス ヌープ処理が実行された際のアクセス間のアドレス競合時のリトライの頻度を減少さ せることが可能なシステムコントローラおよびキャッシュ制御方法に関する。
背景技術
[0002] 従来、コンピュータシステムの高速化の要求に伴い、マルチプロセッサシステムに お!ヽては各 CPUにキャッシュ装置を設けて 、る。 CPU毎に設けたキャッシュ装置上 のデータは、キャッシュ装置間に亘つてそのデータの正しさ、即ちデータの共有と一 貫性を保っため、キャッシュコヒーレンスプロトコルと呼ばれるキヤシュメモリ間のデー タの整合性を保つ規則に従って、キャッシュ装置上でブロック毎に管理されている。
[0003] 従来の一般的なキャッシュプロトコルとしては、「M」「E」「S」「I」の 4状態を管理する MESIキャッシュプロトコルが知られている。ここで、 Mは、変更(Modified)状態であり 、複数のキャッシュ装置の 1つにのみ有効データが保持されており、かつ、データは 変更されており、主記憶装置のそれと値が同じであることが保証されない。 Eは、排他 (Exclusive)状態であり、複数のキャッシュ装置の 1つにのみ有効データが保持されて いる。 Sは、共有 (Shared)状態であり、複数のキャッシュ装置上に同じデータが保持さ れている。そして、 Iは、無効(Invalid)状態であり、キャッシュ装置上のデータは無効 である。
[0004] このような MESIキャッシュプロトコルを用いたキュッシュ制御において、ある CPUが キャッシュ装置にストアしたデータブロックを、他系の CPUが参照するフェッチ要求を 行った場合、主記憶装置へのデータブロックの書込み(以下、 MSライトという)を必要 とし、その分、アクセスに時間がかかる。
[0005] そこで、 MESIキャッシュプロトコルに、共有変更 O (Shared Modified)状態を加えた 5状態を示す構成とすることにより、フェッチ処理の際の MSライトを不要にしている。 なお、共有変更の符号 Oは、 Ownerを表わす。
[0006] しかしながら、この 5状態をとるキャッシュプロトコルにあっても、自系フェッチ処理に 続、て他系ストア処理が行われた場合、共有変更 oの状態にある他系に対し無効 I に切替えるための状態変更要求が必要であり、この他系への状態変更要求を行って いる分、ストア処理に時間が力かり、 自系のフェッチ要求で取得したキャッシュ上のデ 一タブロックに自系でストア処理を行う頻度は高いため、装置全体としてりアクセス性 能に大きく影響する問題があった。
[0007] そこで、キャッシュメモリとキャッシュコントローラとを備えるキャッシュ装置において、 キャッシュメモリは、主記憶装置の一部のデータをキャッシュラインのブロック単位に 保持すると共にキャッシュラインに保持したデータブロック状態を示す情報を保持し、 キャッシュコントローラは、データブロックの状態を、例えば無効状態 I、共有状態 S、 排他系状態 E、変更状態 M、共有変更状態 Oに加え、フ ツチ要求があった場合に 段階的に共有性を持たせるための状態である、書込可能状態 W (Writable Modified) の 6状態で表現してキャッシュメモリを制御する技術が開示されている。
[0008] この技術により、キャッシュ装置上で管理するデータブロックの状態を細分ィ匕し、こ れによって他系への状態変更要求を減らし、結果としてキャッシュ装置へのアクセス を速くすることが可能となって 、る。
[0009] 図 1は、比較的小規模のマルチプロセッサシステム(クロスバスイッチを介さな!/、下 位モデル)におけるフェッチ要求のスヌープ処理を示す図であり、図 2は、比較的大 規模のマルチプロセッサシステム(クロスバスイッチが介在する上位モデル)における フェッチ要求のスヌープ処理を示す図である。
[0010] これら図 1及び図 2に示したように、プロセッサユニット(CPU0)力もメモリへアクセス が要求された場合、キャッシュ装置間のコヒーレンシ一を保っため、そのメモリへのァ クセス要求は、そのアクセスに関係する全てのシステムコントローラ(SC0、 SCI)にブ ロードキャストされる。そして、各システムコントローラ(SC0、 SCI)は、 自身が担当す るプロセッサユニットのキャッシュ装置の状態、対象データに対する競合、データ転送 に使用する資源の検査を行うためのスヌープ処理を同時に実行し、その結果を該当 システムコントローラ(SC0、 SCI)間で通信し合う。 [0011] 図 3は、下位モデルにおけるフェッチ要求のスヌープ処理(リトライ有り)を示す図で ある。
次に、得られた全てのスヌープ結果を総合的に判定し、最終的にそのメモリァクセ ス処理の動作を決定する。ここで得られた判定結果は、全てのシステムコントローラ( SCO、 SCI)で同じ結果を同時に得なければならない。スヌープ処理中に何らかの 競合や資源の枯渴などを検出した場合には、そのアクセスの処理は中断し、スヌー プ処理をリトライすることになる。
発明の開示
[0012] し力しながら、上述のようなスヌープ制御においては、複数のシステムコントローラ間 の距離に応じて通信時間が異なってしま 、、マルチプロセッサシステムの規模に応じ たスヌープ処理を実行しなければならな 、と!/、う問題点があった。
[0013] 本発明は、上記事情に鑑みてなされたもので、マルチプロセッサで構成される大規 模な情報処理装置にぉ 、て、複数のシステムコントローラ間で行われるスヌープ処理 をスヌープパイプラインの段数調整によって、マルチプロセッサシステムの規模毎の スヌープ結果の通信時間の差を吸収し、かつ、スヌープ処理の際のアクセス間のアド レス競合時にはスヌープパイプラインの段数からリトライ間隔を決定し、アドレス競合 時のリトライの頻発を防止するのが可能なシステムコントローラおよびキャッシュ制御 方法を提供することを目的とする。
[0014] 本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のシステムコントローラは、マルチプロ セッサシステムを構成するキャッシュ装置を制御するシステムコントローラであって、 前記キャッシュ装置が、プロセッサモジュール毎に設けられ互いに接続され、主記憶 装置の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キヤッシ ユラインに保持したデータブロック状態を示す情報を保持するキャッシュメモリと、前 記データブロックの状態を、無効状態 I (Invalid)、共有状態 S (Shared)、排他状態 E ( Exclusive)、変更状態 M (Modified)、共有変更状態 O (Shared Modified)、書込可能 状態 W (Writable Modified)の 6状態で表現して前記キャッシュメモリを制御するキヤッ シュコントローラとを備え、前記システムコントローラ力 他のシステムコントローラとの 間の通信時間に基づいて、スヌープパイプラインの段数が定められたスヌープ制御 部とを備えることを特徴とする。
[0015] また、本発明のシステムコントローラは、前記スヌープ制御部力 前記定められた段 数に応じてリトライ間隔を決定することが望ましい。
また、本発明のシステムコントローラは、前記キャッシュ装置を複数個備える大規模 システム LSIのための LSIであることが望まし!/、。
[0016] また、本発明の一態様によれば、本発明のキャッシュ制御方法は、マルチプロセッ サシステムを構成するキャッシュ装置を制御するキャッシュ制御方法であって、キヤッ シュメモリに主記憶の一部のデータをキャッシュラインのブロック単位に保持すると共 に前記キャッシュラインに保持したデータブロック状態を示す情報を保持し、前記デ 一タブロックの状態を、無効状態 I (Invalid)、共有状態 S (Shared)、排他状態 E (Exclu sive)、変更状態 M (Modified)、共有変更状態 O (Shared Modified)、書込可能状態 W (Writable Modified)の 6状態で表現して前記キャッシュメモリを制御し、他のシステ ムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段数が定めら れることが望ましい。
[0017] また、本発明のキャッシュ制御方法は、さらに、前記定められた段数に応じてリトライ 間隔を決定することが望ましい。
本発明によれば、マルチプロセッサシステムの規模毎のスヌープ結果の通信時間 の差を吸収するとともに、アドレス競合時のリトライの頻発を防止することができる。 図面の簡単な説明
[0018] [図 1]下位モデルにおけるフェッチ要求のスヌープ処理(リトライ無し)を示す図である
[図 2]上位モデルにおけるフェッチ要求のスヌープ処理を示す図である。
[図 3]下位モデルにおけるフェッチ要求のスヌープ処理(リトライ有り)を示す図である
[図 4]マルチプロセッサシステムの概要を説明するための図である。
[図 5]大規模マルチプロセッサシステムの概要を説明するための図である。
[図 6]マルチプロセッサシステムのハードウェア構成を示すブロック図である。 [図 7]キャッシュ装置の機能を示すブロック図である。
[図 8]システムコントローラの機能を示すブロック図である。
[図 9]パイプラインのブロック図である。
[図 10]1つのシステムコントローラでスヌープ処理を実行した場合のアドレスの競合を 説明するための図である。
[図 11]複数のシステムコントローラで同時にスヌープ処理を実行した場合のアドレス の競合を説明するための図である。
[図 12]リトライ時のパイプラインへのアクセス投入間隔を、スヌープパイプラインの段数 以上に制御した場合を説明するための図である。
発明を実施するための最良の形態
[0019] 以下、図面に基づいて本発明を適用した実施の形態を説明する。
図 4は、マルチプロセッサシステムの概要を説明するための図である。
図 4において、マルチプロセッサシステム 1は、複数のシステムボード 2—1, 2— 2を 備えている。各システムボード 2—1, 2— 2のそれぞれは、システムコントローラ 13— 1または 13— 2、複数のプロセッサモジュール 10—1, ···, 10— n、複数の入出力(I O)デバイス 11— 1, ···, 11— n、複数のメモリ(MEM) 16— 1, ···, 16— nを備え ている。システムボード 2—1, 2— 2は、互いに通信可能に接続され、プロセッサモジ ユール 10— 1, ···, 10— nまたは入出力デバイス 11— 1, ···, 11— nからの命令に 従い、メモリ 16— 1, ···, 16— nへの読み書きをコントロールする。
[0020] 図 5は、大規模マルチプロセッサシステムの概要を説明するための図である。
図 5において、マルチプロセッサシステム 3は、上記図 4のマルチプロセッサシステ ム 1と比較して規模が大きぐより多くのシステムボード 2—1, 2-2, 2-3, 2-4, 2 -5, 2-6, 2-7, 2— 8を備えており、さらに、これらのシステムボード 2—1, ···, 2 — 8は、クロスバスイッチ 4を介して互!ヽに接続されて!、る。
[0021] そして、これらのシステムボード 2—1, · · ·, 2— 8は、上記図 4のマルチプロセッサ システム 1が備えるシステムボード 2—1と同様、 1つのシステムコントローラ 13— 1, ·· ·, 13-5, ···、複数のプロセッサモジュール 10— 1, ···, 10— n、複数の入出力(I O)デバイス 11— 1, ···, 11— n、複数のメモリ(MEM) 16— 1, ···, 16— nを備え ている。
[0022] 本発明はこれら図 4乃至図 5のようなマルチプロセッサシステムに適用することがで きる。
図 6は、マルチプロセッサシステムのハードウェア構成を示すブロック図である。
[0023] 図 6において、マルチプロセッサシステム 1は、複数のプロセッサモジュール 10— 1 , 10- 2, · · · , 10— nを備え、プロセッサモジュール 10— l〜10—nのそれぞれに は、 CPU (プロセッサ) 12— 1〜12— n及びキャッシュ装置 14— 1〜14— nが設けら れている。そして、各プロセッサモジュール 10— 1〜10— nは、キャッシュ装置 14— 1 〜 14— nがシステムバス 15に接続することにより相互に接続されている。
[0024] キャッシュ装置 14— l〜14—nを接続するシステムバス 15としては、例えばスヌー プバスがある。スヌープバスとは、キャッシュ装置 14— 1〜 14— nの何れかで CPU 12 — l〜12—nからフェッチまたはストアの処理要求があった際に、これらの処理要求 に該当するキャッシュラインに保持しているデータブロックの状態をスヌープ制御線の 状態信号により直ちに取得できるバスである。
[0025] 図 7は、キャッシュ装置の機能を示すブロック図である。
図 7において、キャッシュ装置 14— 1は、キャッシュコントローラ 18とキャッシュメモリ 20とを備えている。キャッシュメモリ 20は、複数のキャッシュライン 22単位にデータを 保持しており、各キャッシュライン 22はタグ 24とデータブロック 30とを含み、タグ 24は 状態タグ 26とアドレスタグ 28とを備えて 、る。
[0026] キャッシュメモリ 20の状態タグ 26には、データブロックの状態を無効状態 I、共有状 態 S、排他状態 E、変更状態 M、共有変更状態 Oおよび書込可能状態 Wの 6状態で 表現してキャッシュメモリ 20を管理して 、る。
[0027] キャッシュコントローラ 18にはキャッシュ制御管理部 32、状態管理部 34、プロセッ サインタフエース (IF) 36、パスインタフェース (IF) 38が設けられる。また状態管理部 34にはフェッチプロトコル処理部 40とストアプロトコル処理部 42とが設けられる。
[0028] キャッシュ制御管理部 32は、 CPU12— 1からフェッチ要求を受けると、キャッシュメ モリ 20のタグ 24を参照し、要求アドレスとアドレス値の一致するアドレスタグ 28を持つ たキャッシュライン 22を検索する。アドレスの一致するキャッシュライン 22が存在しな い場合にはキャッシュミスとなり、主記憶装置もしくは他のキャッシュ装置 14— 2〜14 nの何れ力からデータブロックを取得して CPU 12— 1に提供する。
[0029] キャッシュ制御管理部 32は、要求アドレスに一致するアドレスのキャッシュライン 22 が存在した場合には、そのキャッシュライン 22の状態タグ 26による無効状態 I、共有 状態 S、排他状態 E、変更状態 M、共有変更状態 Oまたは書込可能状態 Wの状態に 応じた処理を行う。
[0030] キャッシュ制御管理部 32は、 CPU12— 1からのストア要求に対し、キャッシュヒット であればキャッシュメモリ 20上の該当するキャッシュライン 22のデータブロックを更新 するストア処理を行な 、、ミスヒットであればキャッシュメモリ 20上に新たなキャッシュラ イン 22を確保してデータを書き込むストア処理を行う。このとき他のキャッシュ装置 14 2〜14—nの何れかに該当するデータブロックが存在する場合には、最新のデー タブロックを他のキャッシュ装置 14— 2〜 14— nの何れ力から取得した後にデータを 書き込むストア処理を行う。
[0031] 状態管理部 34は、上述のようなキャッシュ制御管理部 32による CPU12—1及びシ ステムバス 15を経由した他のキャッシュ装置 14— 2〜 14— nの何れ力からの処理要 求に対し、処理要求を実行した後の該当するキャッシュライン 22上の状態タグ 26の 状態遷移制御を行う。
[0032] 状態管理部 34によるキャッシュコヒーレンスのための状態遷移制御として、無効状 態 I、共有状態 S、排他状態 E、変更状態 M、共有変更状態 Oおよび書込可能状態
Wの 6状態のキャッシュプロトコルを適用している。
[0033] なお、他のキャッシュ装置 14— 2〜14—nも上述したキャッシュ装置 14— 1と同様 の機能を有している。
図 8は、システムコントローラの機能を示すブロック図であり、図 9は、パイプラインの ブロック図である。
[0034] 図 8において、システムコントローラ 13— 1, 13— 2のそれぞれは、メモリアクセス要 求受信部 51、ブロードキャスト送受信部 52、アクセスポート部 56、スヌープ制御部 53 、 MSアクセス発行部 54および CPUリクエスト発行部 55備えて ヽる。
[0035] メモリアクセス要求受信部 51は、プロセッサモジュール 10—1, · · · , 10— nまたは 入出力デバイス 11— 1, · · · , 11 n力 らの、メモリ 16— 1, · · · , 16— 2へのアクセス 要求を受信する。ブロードキャスト送受信部 52は、システムコントローラ 13— 1または 13 - 2のメモリアクセス要求受信部 51が受信したアクセス要求力 他のシステムコン トローラ 13— 2または 13— 1が備えるメモリ 16— 1, · · · , 16— 2へのアクセス要求で ある場合に、該他のシステムコントローラ 13— 2または 13— 1が備えるブロードキャス ト送受信部 52との間でアクセス要求を送受信する。
[0036] スヌープ制御部 53は、ブロードキャスト送受信部 52を介したプロセッサモジュール 10- 1, · · · , 10— nまたは入出力デバイス 11— 1, · · · , 11— nからのアクセス要求 に基づいて、メモリ 16— 1, · · · , 16— 2に格納されている内容を検出するためのスヌ ープ処理を実行する。また、スヌープ制御部 53は、パイプラインの段数を調整する段 数調整回路 531を備える。近年の情報処理装置では大規模な構成による動作が要 求されるため、特にシステムコントローラ 13— 1, 13— 2は各種構成による環境の差( 上位モデルと下位モデル)を吸収できなければならない。スヌープ時のスヌープ結果 (CSTパケット)の通信時間は構成毎に異なるため、この段数調整回路 531が CST パケットの通信時間によってスヌープパイプラインの段数を調整する。
[0037] MSアクセス発行部 54は、スヌープ制御部 53からの指示に基づき、メモリ 16— 1, ·
· · , 16— 2へのアクセス命令を発行し、 CPUリクエスト発行部 55は、スヌープ制御部 53からの指示に基づき、プロセッサモジュール 10—1, · · · , 10— nへのアクセス命 令を発行する。
[0038] 次に、上述のような構成のマルチプロセッサシステムにおいて実行されるキャッシュ 制御処理につ!、て説明する。
従来、パイプライン上で同一アドレスに対するアクセスが複数存在した場合、後続 のアクセスは先行する同一アドレスに対するアクセスの処理のスヌープ結果が確定す るまで処理ができな力つた。これは、先行するアクセスがキャッシュメモリ上の対象デ 一タブロックの登録状態を更新したり、各種アドレスの排他制御のためのロック制御の ためである。
[0039] そこで、スヌープ制御部 53によるスヌープ処理中に、パイプライン上で先行するァク セスの中に同一アドレスに対するアクセスが存在するかのアドレス競合検査を行うよう にする。そして、この検査の結果が競合を示す場合、そのアクセスの処理は中断され てスヌープ処理のリトライを行う。なお、ここでのアドレス競合検査の条件は、「(1)対 象範囲として、パイプライン上に先行するアクセスで、スヌープ結果が未確定のもの であること。」「(2)競合条件として、同一データブロックに対するアクセス、かつ既にリ トライとなる要因が検出されていないこと。」である。
[0040] 次に、アドレスが互いに競合する 3つのアクセス (A, B, C)を例にして、スヌープ処 理のリトライの動作を説明する。
図 10は、 1つのシステムコントローラでスヌープ処理を実行した場合のアドレスの競 合を説明するための図である。
[0041] まず(a)にお!/、て、アクセス Aが投入されると、先行するアクセスがな!/、のでアドレス 競合は起こらない(〇)。
次に(b)において、アクセス Bが投入されると、アクセス Bは先行するアクセス Aとアド レス競合する( X )ので、アクセス Bはリトライの対象となる。
[0042] 次に(c)にお!/、て、アクセス Cが投入されると、アクセス Cは先行するアクセス Aとァ ドレス競合する(X )ので、アクセス Cはリトライの対象となる。なお、アクセス Bは上記( b)でリトライの対象となっているので、アクセス Cにとつては検査の対象外となる(〇)。
[0043] 次に (d)において、上記 (b)でリトライの対象となったアクセス Bが再投入 (リトライ)さ れると、この時点では先行するアクセスがないのでアドレス競合は起こらない(〇)。
[0044] 次に (e)において、上記 (c)でリトライの対象となったアクセス Cが再投入 (リトライ)さ れると、アクセス Cは先行するアクセス B (上記(d)で再投入されたアクセス B)とァドレ ス競合する( X )ので、アクセス Cは再度リトライの対象となる。
[0045] そして (f)にお 、て、上記 (d)で 2度目のリトライの対象となったアクセス Cが再投入 (
2度目のリトライ)されると、この時点では先行するアクセスがないのでアドレス競合は 起こらない (〇)。
[0046] 図 11は、複数のシステムコントローラで同時にスヌープ処理を実行した場合のアド レスの競合を説明するための図である。
説明を簡単にするために、複数のシステムコントローラ 13— 1 (SCO)および 13— 2 (SC1)で同時にスヌープ処理を実行した場合のアドレスの競合を説明する。 [0047] まず(a)において、システムコントローラ 13—1 (SCO)に対してアクセス Aが投入さ れると、先行するアクセスがないのでアドレス競合は起こらない(〇)が、システムコント ローラ 13— 2 (SC1)に対してアクセス Aが投入されると、他の要因によりアクセス Aの リトライが確定したとする(X )。
[0048] すると(b)において、システムコントローラ 13— 1 (SCO)に対してアクセス Bが投入さ れると、アクセス Bは先行するアクセス Aとアドレス競合する(X )ので、アクセス Bはリト ライの対象となるが、システムコントローラ 13— 2 (SC1)に対してアクセス Bが投入さ れると、アクセス Aは上記(a)でリトライの対象となっているので、アクセス Bにとつては 検査の対象外となる(〇)。
[0049] 次に(c)において、システムコントローラ 13— 1 (SCO)に対してアクセス Cが投入さ れると、アクセス Cは先行するアクセス Aとアドレス競合する(X )ので、アクセス Cはリト ライの対象となる。なお、アクセス Bは上記 (b)でリトライの対象となっているので、ァク セス Cにとつては検査の対象外となる(〇)。また、システムコントローラ 13— 2 (SC1) に対してアクセス Cが投入されると、アクセス Aは上記 (a)でリトライの対象となってい るので、アクセス Cにとつては検査の対象外となる(〇)。なお、アクセス Cは先行する アクセス Bとアドレス競合する( X )ので、アクセス Cはリトライの対象となる。
[0050] 次に(d)において、システムコントローラ 13— 1 (SCO)に対して上記(a)でリトライの 対象となったアクセス Aが再投入されると、アクセス Bは上記 (b)でリトライの対象とな つているので、再投入されたアクセス Aにとつては検査の対象外となる(〇)。なお、再 投入されたアクセス Aは先行するアクセス Cとアドレス競合する( X )ので、アクセス A は再度リトライの対象となる。また、システムコントローラ 13— 2 (SC1)に対してァクセ ス Aが再投入されると、アクセス Aは先行するアクセス Bとアドレス競合する( X )ので、 アクセス Aは再度リトライの対象となる。なお、アクセス Cは上記 (c)でリトライの対象と なって 、るので、アクセス Aにとつては検査の対象外となる(〇)。
[0051] 次に(e)において、システムコントローラ 13— 1 (SCO)に対して上記(b)でリトライの 対象となったアクセス Bが再投入されると、アクセス Bは先行するアクセス Cとアドレス 競合する(X )ので、アクセス Bは再度リトライの対象となる。なお、アクセス Aは上記 (d )でリトライの対象となっているので、アクセス Bにとつては検査の対象外となる(〇)。 また、システムコントローラ 13— 2 (SCI)に対してアクセス Bが再投入されると、ァクセ ス Cは上記(c)でリトライの対象となっているので、アクセス Bにとつては検査の対象外 となる(〇)。なお、アクセス Bは先行するアクセス Aとアドレス競合する(X )ので、ァク セス Bは再度リトライの対象となる。
[0052] 次に(f)において、システムコントローラ 13—1 (SCO)に対して上記(c)でリトライの 対象となったアクセス Cが再投入されると、アクセス Aは上記 (d)でリトライの対象とな つているので、再投入されたアクセス Cにとつては検査の対象外となる(〇)。なお、再 投入されたアクセス Cは先行するアクセス Bとアドレス競合する( X )ので、アクセス C は再度リトライの対象となる。また、システムコントローラ 13— 2 (SC1)に対してァクセ ス Cが再投入されると、アクセス Cは先行するアクセス Aとアドレス競合する( X )ので、 アクセス Cは再度リトライの対象となる。なお、アクセス Bは上記 (e)でリトライの対象と なって 、るので、アクセス Cにとつては検査の対象外となる(〇)。
[0053] 以降、上記 (d)乃至 (f)が限りなく繰り返されてしまう可能性がある。
図 12は、リトライ時のパイプラインへのアクセス投入間隔を、スヌープノィプラインの 段数以上に制御した場合を説明するための図である。
[0054] まず(a)において、システムコントローラ 13—1 (SCO)に対してアクセス Aが投入さ れると、先行するアクセスがないのでアドレス競合は起こらない(〇)が、システムコント ローラ 13— 2 (SC1)に対してアクセス Aが投入されると、他の要因によりアクセス Aの リトライが確定したとする(X )。
[0055] すると(b)において、システムコントローラ 13— 1 (SCO)に対してアクセス Bが投入さ れると、アクセス Bは先行するアクセス Aとアドレス競合する(X )ので、アクセス Bはリト ライの対象となるが、システムコントローラ 13— 2 (SC1)に対してアクセス Bが投入さ れると、アクセス Aは上記(a)でリトライの対象となっているので、アクセス Bにとつては 検査の対象外となる(〇)。
[0056] 次に(c)において、システムコントローラ 13— 1 (SCO)に対してアクセス Cが投入さ れると、アクセス Cは先行するアクセス Aとアドレス競合する(X )ので、アクセス Cはリト ライの対象となる。なお、アクセス Bは上記 (b)でリトライの対象となっているので、ァク セス Cにとつては検査の対象外となる(〇)。また、システムコントローラ 13— 2 (SC1) に対してアクセス Cが投入されると、アクセス Aは上記 (a)でリトライの対象となってい るので、アクセス Cにとつては検査の対象外となる(〇)。なお、アクセス Cは先行する アクセス Bとアドレス競合する( X )ので、アクセス Cはリトライの対象となる。
[0057] このように、スヌープパイプライン上の先行するアクセスとの競合が発生した場合、 そのアクセスを即時にリトライさせるのではなぐ競合の可能性のある他のアクセスが パイプライン上で先行して 、な 、状態、すなわちリトライ時のパイプラインへのァクセ ス投入間隔を、スヌープパイプラインの段数以上になるように制御する。
[0058] すると(dl)において、システムコントローラ 13— 1 (SCO)に対してアクセス Aが再投 入されると、先行するアクセスがないのでアドレス競合は起こらない(〇)。また、シス テムコントローラ 13— 2 (SC1)に対してアクセス Aが再投入されても、先行するァクセ スがな ヽのでアドレス競合は起こらな!/ヽ(〇)。
[0059] 次に(d2)において、システムコントローラ 13—1 (SCO)に対してのアクセス投入が 禁止されると、上記 (dl)で再投入されたアクセス Aのスヌープ処理が完了する。同様 に、システムコントローラ 13— 2 (SC1)に対してのアクセス投入が禁止されると、上記 (dl)で再投入されたアクセス Aのスヌープ処理が完了する。
[0060] 次に(el)において、システムコントローラ 13— 1 (SCO)に対してアクセス Bが再投 入されると、先行するアクセスがないのでアドレス競合は起こらない(〇)。また、シス テムコントローラ 13— 2 (SC1)に対してアクセス Bが再投入されても、先行するァクセ スがな ヽのでアドレス競合は起こらな!/ヽ(〇)。
[0061] 次に(e2)において、システムコントローラ 13— 1 (SCO)に対してのアクセス投入が 禁止されると、上記 (el)で再投入されたアクセス Bのスヌープ処理が完了する。同様 に、システムコントローラ 13— 2 (SC1)に対してのアクセス投入が禁止されると、上記 (el)で再投入されたアクセス Bのスヌープ処理が完了する。
[0062] 次に(fl)において、システムコントローラ 13— 1 (SCO)に対してアクセス Cが再投 入されると、先行するアクセスがないのでアドレス競合は起こらない(〇)。また、シス テムコントローラ 13— 2 (SC1)に対してアクセス Cが再投入されても、先行するァクセ スがな ヽのでアドレス競合は起こらな!/ヽ(〇)。
[0063] 次に(f2)において、システムコントローラ 13— 1 (SCO)に対してのアクセス投入が 禁止されると、上記 (fl)で再投入されたアクセス Cのスヌープ処理が完了する。同様 に、システムコントローラ 13— 2 (SC1)に対してのアクセス投入が禁止されると、上記 (fl)で再投入されたアクセス Cのスヌープ処理が完了する。
[0064] このように、複数のシステムコントローラ間で行われるスヌープ処理をスヌープパイ プラインの段数調整によって、マルチプロセッサシステムの規模毎のスヌープ結果の 通信時間の差を吸収し、かつ、スヌープ処理の際のアクセス間のアドレス競合時には スヌープパイプラインの段数力もリトライ間隔を決定し、アドレス競合時のリトライの頻 発を防止することができる。
[0065] 以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた 本発明の実施の形態は、システムコントローラの一機能としてハードウェアまたは DS Pボードや CPUボードでのファームウェアもしくはソフトウェアにより実現することがで きる。
[0066] また、本発明が適用されるシステムコントローラは、その機能が実行されるのであれ ば、上述の実施の形態に限定されることなぐ単体の装置であっても、複数の装置か らなるシステムあるいは統合装置であっても、 LAN、 WAN等のネットワークを介して 処理が行なわれるシステムであってもよ 、ことは言うまでもな!/、。
[0067] また、バスに接続された CPU、 ROMや RAMのメモリ、入力装置、出力装置、外部 記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現でき る。すなわち、前述してきた実施の形態のシステムを実現するソフトエアのプログラム コードを記録した ROMや RAMのメモリ、外部記録装置、可搬記録媒体を、システム コントローラに供給し、そのシステムコントローラのコンピュータがプログラムコードを読 み出し実行することによつても、達成されることは言うまでもない。
[0068] この場合、可搬記録媒体等力 読み出されたプログラムコード自体が本発明の新 規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は 本発明を構成することになる。
[0069] プログラムコードを供給するための可搬記録媒体としては、例えば、フレキシブルデ イスク、ハードディスク、光ディスク、光磁気ディスク、 CD-ROM, CD-R, DVD- ROM, DVD-RAM,磁気テープ、不揮発性のメモリーカード、 ROMカード、電子 メールやパソコン通信等のネットワーク接続装置 (言 、換えれば、通信回線)を介して 記録した種々の記録媒体などを用いることができる。
[0070] また、コンピュータ (情報処理装置)がメモリ上に読み出したプログラムコードを実行 することによって、前述した実施の形態の機能が実現される他、そのプログラムコード の指示に基づき、コンピュータ上で稼動している OSなどが実際の処理の一部または 全部を行な ヽ、その処理によっても前述した実施の形態の機能が実現される。
[0071] さらに、可搬型記録媒体力 読み出されたプログラムコードやプログラム (データ)提 供者カゝら提供されたプログラム (データ)が、コンピュータに挿入された機能拡張ボー ドゃコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そ のプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わ る CPUなどが実際の処理の一部または全部を行な 、、その処理によっても前述した 実施の形態の機能が実現され得る。
[0072] すなわち、本発明は、以上に述べた実施の形態に限定されるものではなぐ本発明 の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。

Claims

請求の範囲
[1] マルチプロセッサシステムを構成するキャッシュ装置を制御するシステムコントロー ラにおいて、
前記キャッシュ装置は、プロセッサモジュール毎に設けられ互いに接続され、主記 憶装置の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キヤ ッシユラインに保持したデータブロック状態を示す情報を保持するキャッシュメモリと、 前記データブロックの状態を、無効状態 I (Invalid)、共有状態 S (Shared)、排他状態 E (Exclusive)、変更状態 M (Modified)、共有変更状態 O (Shared Modified)、書込可 能状態 W (Writable Modified)の 6状態で表現して前記キャッシュメモリを制御するキ ャッシュコントローラと、を備え、
前記システムコントローラは、
他のシステムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段 数が定められたスヌープ制御部と、
を備えることを特徴とするシステムコントローラ。
[2] 前記スヌープ制御部は、前記定められた段数に応じてリトライ間隔を決定することを 特徴とする請求項 1に記載のシステムコントローラ。
[3] 前記システムコントローラは、前記キャッシュ装置を複数個備える大規模システム L
SIのための LSIであることを特徴とする請求項 1に記載のシステムコントローラ。
[4] マルチプロセッサシステムを構成するキャッシュ装置を制御するキャッシュ制御方法 において、
キャッシュメモリに主記憶の一部のデータをキャッシュラインのブロック単位に保持 すると共に前記キャッシュラインに保持したデータブロック状態を示す情報を保持し、 前記データブロックの状態を、無効状態 I (Invalid)、共有状態 S (Shared)、排他状 態 E (Exclusive)、変更状態 M (Modified)、共有変更状態 O (Shared Modified)、書込 可能状態 W (Writable Modified)の 6状態で表現して前記キャッシュメモリを制御し、 他のシステムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段 数が定められる、
ことを特徴とするキャッシュ制御方法。 さらに、前記定められた段数に応じてリトライ間隔を決定することを特徴とする請求 4に記載のキャッシュ制御方法。
PCT/JP2006/303789 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法 WO2007099614A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008502601A JP4327238B2 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法
PCT/JP2006/303789 WO2007099614A1 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法
US12/199,469 US7979644B2 (en) 2006-02-28 2008-08-27 System controller and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303789 WO2007099614A1 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/199,469 Continuation US7979644B2 (en) 2006-02-28 2008-08-27 System controller and cache control method

Publications (1)

Publication Number Publication Date
WO2007099614A1 true WO2007099614A1 (ja) 2007-09-07

Family

ID=38458738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/303789 WO2007099614A1 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法

Country Status (3)

Country Link
US (1) US7979644B2 (ja)
JP (1) JP4327238B2 (ja)
WO (1) WO2007099614A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046514B2 (en) * 2000-11-21 2011-10-25 Aspex Technology Limited Broadcasting data across a bus in which data transmission can be delayed if a snooping device is not ready to receive
JP2012138038A (ja) * 2010-12-28 2012-07-19 Nec Computertechno Ltd マルチプロセッサシステム、リクエスト処理方法、及びノード

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617960A (ja) * 1984-06-22 1986-01-14 Fujitsu Ltd バツフア無効化制御方式
JP2001109662A (ja) * 1999-10-08 2001-04-20 Fujitsu Ltd キャッシュ装置及び制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1241768A (en) 1984-06-22 1988-09-06 Miyuki Ishida Tag control circuit for buffer storage
JPS62107351A (ja) * 1985-11-05 1987-05-18 Fujitsu Ltd 主記憶書込順序制御方式
JP3085400B2 (ja) * 1990-11-16 2000-09-04 株式会社日立製作所 計算機システム
CN1205792C (zh) 1994-08-31 2005-06-08 国际商业机器公司 用于设备间通信的系统与方法
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US6272604B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Contingent response apparatus and method for maintaining cache coherency
JP4181452B2 (ja) 2003-06-26 2008-11-12 本田技研工業株式会社 発電システム
JP4695367B2 (ja) * 2004-08-31 2011-06-08 富士通株式会社 情報処理装置,制御装置及び情報処理装置の制御方法
JP4522817B2 (ja) 2004-10-25 2010-08-11 富士通株式会社 システム制御装置、情報処理装置及び情報処理装置の制御方法。
JP4609929B2 (ja) 2004-11-29 2011-01-12 富士通株式会社 情報処理装置、システム制御装置、システム制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617960A (ja) * 1984-06-22 1986-01-14 Fujitsu Ltd バツフア無効化制御方式
JP2001109662A (ja) * 1999-10-08 2001-04-20 Fujitsu Ltd キャッシュ装置及び制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046514B2 (en) * 2000-11-21 2011-10-25 Aspex Technology Limited Broadcasting data across a bus in which data transmission can be delayed if a snooping device is not ready to receive
JP2012138038A (ja) * 2010-12-28 2012-07-19 Nec Computertechno Ltd マルチプロセッサシステム、リクエスト処理方法、及びノード

Also Published As

Publication number Publication date
JPWO2007099614A1 (ja) 2009-07-16
US20080320237A1 (en) 2008-12-25
JP4327238B2 (ja) 2009-09-09
US7979644B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
KR101497002B1 (ko) 스누프 필터링 메커니즘
US7941584B2 (en) Data processing apparatus and method for performing hazard detection
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US7093079B2 (en) Snoop filter bypass
US7536514B2 (en) Early return indication for read exclusive requests in shared memory architecture
US20070083715A1 (en) Early return indication for return data prior to receiving all responses in shared memory architecture
EP1215584A2 (en) Highly pipelined bus architecture
US20070300023A1 (en) Method and system for terminating write commands in a hub-based memory system
US20020053004A1 (en) Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
JP2005535038A (ja) 内部ロウキャッシングを有するメモリハブおよびアクセス方法。
US7711899B2 (en) Information processing device and data control method in information processing device
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US20070073977A1 (en) Early global observation point for a uniprocessor system
JP4373485B2 (ja) 情報処理装置及び該制御方法
US8010682B2 (en) Early coherency indication for return data in shared memory architecture
WO2007099614A1 (ja) システムコントローラおよびキャッシュ制御方法
US7032079B1 (en) System and method for accelerating read requests within a multiprocessor system
US11321233B2 (en) Multi-chip system and cache processing method
US7882311B2 (en) Non-snoop read/write operations in a system supporting snooping
US20090006712A1 (en) Data ordering in a multi-node system
US9672153B2 (en) Memory interface control
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
JP2002024007A (ja) プロセッサシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2008502601

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06714915

Country of ref document: EP

Kind code of ref document: A1