JP2007213304A - Cache memory system and multiprocessor system - Google Patents
Cache memory system and multiprocessor system Download PDFInfo
- Publication number
- JP2007213304A JP2007213304A JP2006032310A JP2006032310A JP2007213304A JP 2007213304 A JP2007213304 A JP 2007213304A JP 2006032310 A JP2006032310 A JP 2006032310A JP 2006032310 A JP2006032310 A JP 2006032310A JP 2007213304 A JP2007213304 A JP 2007213304A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- memory
- controller
- cache controller
- 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.)
- Withdrawn
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、各プロセッサがキャッシュメモリを備えるマルチプロセッサシステムにおけるデータ読み出しの技術に関する。 The present invention relates to a technique for reading data in a multiprocessor system in which each processor includes a cache memory.
近年、複数のプロセッサを備えるマルチプロセッサシステムが種々提案されている。そして、このマルチプロセッサシステムとして、データを高速に読み出すために、各プロセッサがキャッシュメモリを備える構成のマルチプロセッサシステムが提案されている(下記特許文献1参照)。
In recent years, various multiprocessor systems including a plurality of processors have been proposed. As a multiprocessor system, there has been proposed a multiprocessor system in which each processor includes a cache memory in order to read data at high speed (see
前述のように、各プロセッサがキャッシュメモリを備える構成のマルチプロセッサシステムでは、或るプロセッサ(仮に「プロセッサA」と呼ぶ。)が或るデータ(仮に「データX」と呼ぶ。)を読み出そうとする場合に、自己が備えるキャッシュメモリにデータXが格納されていない場合には、メインメモリからデータXを読み出すこととなる。メインメモリはキャッシュメモリに比べて動作速度が遅いので、プロセッサAはデータXの読み出しに比較的長時間を要することとなる。 As described above, in a multiprocessor system in which each processor includes a cache memory, a certain processor (tentatively referred to as “processor A”) will read certain data (temporarily referred to as “data X”). In the case where the data X is not stored in the cache memory provided therein, the data X is read from the main memory. Since the operation speed of the main memory is slower than that of the cache memory, the processor A takes a relatively long time to read the data X.
また、プロセッサAがデータXを読み出した後に、プロセッサAとは異なるプロセッサ(仮に「プロセッサB」と呼ぶ。)が、同じデータXを読み出そうとした場合に、プロセッサBが備えるキャッシュメモリにデータXが格納されていないと、プロセッサBは、プロセッサAと同様にメインメモリからデータXを読み出すこととなる。このとき、メインメモリにおける処理について考えてみると、同じデータXについての読み出し要求を二度も処理しなくてはならない。その結果、他のデータの読み出し要求やデータの書き込み要求などの処理が待たされることとなり、マルチプロセッサシステム全体でのメモリアクセスのレイテンシ(遅延)が増加することとなる。 Further, after the processor A reads the data X, when a processor different from the processor A (referred to as “processor B”) tries to read the same data X, the data is stored in the cache memory included in the processor B. If X is not stored, the processor B reads the data X from the main memory in the same manner as the processor A. At this time, considering the processing in the main memory, the read request for the same data X must be processed twice. As a result, processing such as another data read request or data write request is awaited, and the memory access latency (delay) in the entire multiprocessor system increases.
本発明は、各プロセッサがキャッシュメモリを備えるマルチプロセッサシステムにおいて、メインメモリからのデータの読み出しが長時間化することを抑制すると共に、マルチプロセッサシステム全体でのメモリアクセスのレイテンシ増加を抑制することができる技術を提供することを目的とする。 According to the present invention, in a multiprocessor system in which each processor includes a cache memory, it is possible to suppress an increase in the latency of memory access in the entire multiprocessor system as well as to suppress the reading of data from the main memory for a long time. The purpose is to provide technology that can be used.
前述の課題の少なくとも一部を解決するために、本発明のキャッシュメモリシステムは、2以上のキャッシュメモリを備えたキャッシュメモリシステムであって、第1のキャッシュメモリと、第2のキャッシュメモリと、第1のプロセッサに接続され、前記第1のキャッシュメモリを制御するための第1のキャッシュコントローラと、第2のプロセッサに接続され、前記第2のキャッシュメモリを制御するための第2のキャッシュコントローラと、を備え、前記第1のキャッシュコントローラ及び前記第2のキャッシュコントローラは、互いに接続されていると共に、それぞれメインメモリに接続されており、前記第1のキャッシュコントローラは、前記第1のプロセッサからデータの読み出し要求を受信すると、前記第1のキャッシュメモリに前記データが記憶されているか否かを判定し、前記第1のキャッシュメモリに前記データが記憶されていないと判定した場合に、前記第2のキャッシュコントローラに対して、前記データの読み出し要求を送信することを要旨とする。 In order to solve at least a part of the problems described above, a cache memory system of the present invention is a cache memory system including two or more cache memories, and includes a first cache memory, a second cache memory, A first cache controller connected to a first processor for controlling the first cache memory; and a second cache controller connected to a second processor for controlling the second cache memory. The first cache controller and the second cache controller are connected to each other and each connected to a main memory, and the first cache controller is connected to the first processor. Upon receiving a data read request, the first cache memo And when the data is stored in the first cache memory, a request to read the data is sent to the second cache controller. The gist is to send.
このように、本発明のキャッシュメモリシステムでは、第1のキャッシュコントローラは、第1のキャッシュメモリにデータが記憶されていないと判定した場合に、第2のキャッシュコントローラに対して、データの読み出し要求を送信するので、例えば、かかる要求を受信した第2のキャッシュメモリがデータを返信すると、そのデータを受信することでデータを取得することができる。従って、第1のキャッシュコントローラは、メインメモリにアクセスすることなく、データを取得することができるので、データの読み出しが長時間化することを抑制すると共に、マルチプロセッサシステム全体でのメモリアクセスのレイテンシ増加を抑制することができる。 As described above, in the cache memory system of the present invention, when the first cache controller determines that no data is stored in the first cache memory, a data read request is sent to the second cache controller. Therefore, for example, when the second cache memory receiving the request returns data, the data can be acquired by receiving the data. Therefore, since the first cache controller can acquire data without accessing the main memory, the reading of data is prevented from taking a long time, and the latency of memory access in the entire multiprocessor system is suppressed. Increase can be suppressed.
上記キャッシュメモリシステムにおいて、前記第2のキャッシュコントローラは、前記第1のキャッシュコントローラから、前記データの読み出し要求を受信した場合に、前記第2のキャッシュメモリに前記データが記憶されているか否かを判定し、前記第2のキャッシュコントローラは、前記第2のキャッシュメモリに前記データが記憶されていると判定した場合に、前記データを前記第2のキャッシュメモリから読み出して前記第1のキャッシュコントローラに送信し、前記第2のキャッシュメモリに前記データが記憶されていないと判定した場合に、前記第2のキャッシュメモリに前記データが記憶されていない旨を前記第1のキャッシュコントローラに送信することが好ましい。 In the cache memory system, when the second cache controller receives the data read request from the first cache controller, the second cache controller determines whether the data is stored in the second cache memory. And when the second cache controller determines that the data is stored in the second cache memory, the second cache controller reads the data from the second cache memory and sends the data to the first cache controller. And when it is determined that the data is not stored in the second cache memory, the fact that the data is not stored in the second cache memory is transmitted to the first cache controller. preferable.
このようにすることで、第2のキャッシュメモリにデータが記憶されている場合には、第1のキャッシュコントローラはデータを第2のキャッシュコントローラから受信することができ、また、第2のキャッシュメモリにデータが記憶されていない場合には、第1のキャッシュコントローラは第2のキャッシュメモリにデータが記憶されていないことを知ることができる。 Thus, when data is stored in the second cache memory, the first cache controller can receive the data from the second cache controller, and the second cache memory When no data is stored in the first cache controller, the first cache controller can know that no data is stored in the second cache memory.
上記キャッシュメモリシステムにおいて、前記第1のキャッシュコントローラは、前記第2のキャッシュコントローラから、前記データを受信した場合に、前記受信したデータを前記第1のプロセッサに送信し、前記第1のキャッシュコントローラは、前記第2のキャッシュコントローラから、前記第2のキャッシュメモリに前記データが記憶されていない旨を受信した場合に、前記メインメモリから前記データを読み出すと共に、前記読み出したデータを前記第1のプロセッサに送信することが好ましい。 In the cache memory system, when the first cache controller receives the data from the second cache controller, the first cache controller transmits the received data to the first processor, and the first cache controller Receives from the second cache controller that the data is not stored in the second cache memory, reads the data from the main memory, and reads the read data into the first cache memory. Preferably it is sent to the processor.
このようにすることで、第1のキャッシュコントローラは、第1のキャッシュメモリ及び第2のキャッシュメモリのいずれのキャッシュメモリにもデータが記憶されていない場合にのみ、メインメモリからデータを読み出すこととなる。従って、第1のキャッシュメモリにデータが記憶されておらず、第2のキャッシュメモリにデータが記憶されている場合には、第1のキャッシュコントローラは、メインメモリにアクセスせずにデータを取得することができる。その結果、データの読み出しが長時間化することを抑制すると共に、マルチプロセッサシステム全体でのメモリアクセスのレイテンシ増加を抑制することができる。 In this way, the first cache controller reads data from the main memory only when no data is stored in either the first cache memory or the second cache memory. Become. Therefore, when data is not stored in the first cache memory and data is stored in the second cache memory, the first cache controller acquires the data without accessing the main memory. be able to. As a result, it is possible to suppress the reading of data for a long time and to suppress an increase in the latency of memory access in the entire multiprocessor system.
なお、本発明は、種々の形態で実現することが可能であり、例えば、上記キャッシュメモリシステムと、上記メインメモリと、上記第1のプロセッサと、上記第2のプロセッサと、を備えるマルチプロセッサシステム、データ読み出し方法、それらの方法又は装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。 The present invention can be realized in various forms, for example, a multiprocessor system including the cache memory system, the main memory, the first processor, and the second processor. , A data reading method, a computer program for realizing the functions of the method or apparatus, a recording medium storing the computer program, a data signal including the computer program and embodied in a carrier wave, and the like be able to.
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
A.第1の実施例:
B.第2の実施例:
C.変形例:
Hereinafter, the best mode for carrying out the present invention will be described in the following order based on examples.
A. First embodiment:
B. Second embodiment:
C. Variation:
A.第1の実施例:
A1.マルチプロセッサシステムの概要構成:
図1は、本発明の一実施例としてのキャッシュメモリシステムを適用したマルチプロセッサシステムの概要構成を示す説明図である。マルチプロセッサシステム100は、第1プロセッサ10と、第2プロセッサ20と、キャッシュメモリシステム40と、メインメモリ50と、メインメモリ50を制御するメモリコントローラ51と、を備える。第1プロセッサ10及び第2プロセッサ20は、それぞれ、図示せざるプロセッサコア及び1次キャッシュメモリを備える。キャッシュメモリシステム40は、内部バス60を介してメモリコントローラ51に接続されている。
A. First embodiment:
A1. General configuration of multiprocessor system:
FIG. 1 is an explanatory diagram showing a schematic configuration of a multiprocessor system to which a cache memory system as an embodiment of the present invention is applied. The
キャッシュメモリシステム40は、第1キャッシュメモリ15と、第1キャッシュメモリ15を制御する第1キャッシュコントローラ15aと、第2キャッシュメモリ25と、第2キャッシュメモリ25を制御する第2キャッシュコントローラ25aと、を備える。第1キャッシュコントローラ15aは、第1プロセッサ10及びメモリコントローラ51に接続されており、第1プロセッサ10からの要求に応じて、メモリコントローラ51を介してメインメモリ50に記憶されているデータを読み出すことができる。同様にして、第2キャッシュコントローラ25aは、第2プロセッサ20及びメモリコントローラ51に接続されており、第2プロセッサ20からの要求に応じて、メモリコントローラ51を介してメインメモリ50に記憶されているデータを読み出すことができる。これら第1キャッシュコントローラ15a及び第2キャッシュコントローラ25aは、互いに接続されており、所定のコマンドや、その応答メッセージを送受信することができる。
The
第1キャッシュメモリ15及び第2キャッシュメモリ25は、いずれも記憶領域として、タグ領域及びデータ領域を備えている。そして、第1キャッシュメモリ15は、これらタグ領域及びデータ領域を用いて、第1プロセッサ10の2次キャッシュメモリとして機能する。同様にして、第2キャッシュメモリ25は、第2プロセッサ20の2次キャッシュメモリとして機能する。
Each of the
例えば、第1キャッシュコントローラ15aは、第1プロセッサ10からの要求に応じて、メモリコントローラ51を介してメインメモリ50からデータx(先頭アドレス値「0009」)を読み出した場合に、読み出したデータxを第1プロセッサ10に送信すると共に第1キャッシュメモリ15のデータ領域に格納し、また、アドレス値「0009」をタグ領域に格納する。このようにすることで、次に第1プロセッサ10が同じデータxを読み出そうとする場合に、第1キャッシュコントローラ15aは、動作速度の比較的速い第1キャッシュメモリ15からデータxを読み出すことができるので、動作速度の比較的遅いメインメモリ50から読み出す場合に比べて、より高速にデータxを読み出すことができる。
For example, when the
従来のシステムでは、第1キャッシュコントローラ15aは第2キャッシュメモリ25からデータを取得することはできず、また第2キャッシュコントローラ25aは第1キャッシュメモリ15からデータを取得することは不可能であった。これに対して、本実施例のマルチプロセッサシステム100では、以下に説明するように、第1キャッシュコントローラ15aは、第2キャッシュメモリ25からデータを取得することができ、また、第2キャッシュコントローラ25aは、第1キャッシュメモリ15からデータを取得することができるように構成されている。
In the conventional system, the
A2.データ読み出し処理:
図1の例では、第2キャッシュメモリ25のデータ領域には、データA,m,p,nが格納されている。一方、第1キャッシュメモリ15のデータ領域には、データx,s,r,tが格納されている。この状態において、第1プロセッサ10がデータA(アドレス値「0003」)の読み出し要求を第1キャッシュコントローラ15aに送信すると(図1のステップ[1])、第1キャッシュコントローラ15aにおいてデータ読み出し処理が開始される。
A2. Data read processing:
In the example of FIG. 1, data A, m, p, and n are stored in the data area of the
図2は、第1キャッシュコントローラ15aにおいて実行されるデータ読み出し処理の手順を示すフローチャートである。図2において、各破線の矢印に付与された数字([2]〜[10])は、マルチプロセッサシステム100におけるデータのやりとりを特定するための数字であり、図1に示す数字と対応している。
FIG. 2 is a flowchart showing a procedure of data read processing executed in the
図2に示すデータ読み出し処理が開始されると、図1に示す第1キャッシュコントローラ15aは、第1キャッシュメモリ15のタグ領域に格納されているアドレス値と、第1プロセッサ10から指定されたアドレス値「0003」と、を比較して、第1プロセッサ10から要求されたデータが第1キャッシュメモリ15に格納されているか否かを判定する(ステップS202)。
When the data reading process shown in FIG. 2 is started, the
アドレス値「0003」のデータAが第1キャッシュメモリ15に格納されていないときには、第1キャッシュコントローラ15aは、そのデータの読み出し要求コマンドを第2キャッシュコントローラ25aに送信し(ステップS206)、第2キャッシュコントローラ25aから返信メッセージを受信したか否かを判定する(ステップS208)。
When the data A having the address value “0003” is not stored in the
ここで、第2キャッシュコントローラ25aは、第1キャッシュコントローラ15aから前述の読み出し要求コマンドを受信すると(ステップ[4])、指定されたアドレス値「0003」のデータが第2キャッシュメモリ25に格納されているか否かを判定する。そして、アドレス値「0003」のデータAが第2キャッシュメモリ25に格納されている場合には、第2キャッシュコントローラ25aは、データAを第2キャッシュメモリ25から読み出して、返信メッセージとして、ACKメッセージにデータAを付加して第1キャッシュコントローラ15aに送信する(ステップ[6])。なお、指定されたアドレス値「0003」のデータが第2キャッシュメモリ25に格納されていない場合、第2キャッシュコントローラ25aは、その旨(指定されたアドレス値のデータが第2キャッシュメモリ25に格納されていない旨)を示すNACKメッセージを、返信メッセージとして第1キャッシュコントローラ15aに送信する。
Here, when the
第1キャッシュコントローラ15aは、返信メッセージを受信すると、受信した返信メッセージがACKメッセージであるか否かを判定する(ステップS210)。返信メッセージがACKメッセージである場合には、第1キャッシュコントローラ15aは、付加されたデータAを第1プロセッサ10に送信する(ステップS212)。このようにして、第1プロセッサ10は、アドレス値「0003」のデータAを受け取ることができる。
When receiving the reply message, the
なお、仮に、第2キャッシュメモリ25にデータAが格納されていない場合には、第1キャッシュコントローラ15aは、NACKメッセージを受信することとなるので、ステップS210の処理において、受信した返信メッセージがACKメッセージでないと判定する(ステップS210:NO)。この場合、第1キャッシュコントローラ15aは、メモリコントローラ51に対して、アドレス「0003」を指定してデータの読み出し要求を送信し(ステップS214)、メモリコントローラ51から返信メッセージを受信したか否かを判定する(ステップS216)。
If the data A is not stored in the
ここで、メモリコントローラ51は、第1キャッシュコントローラ15aから前述のデータの読み出し要求を受信すると、指定されたアドレス値「0003」のデータAをメインメモリ50から読み出して第1キャッシュコントローラ15aに送信する。そして、第1キャッシュコントローラ15aは、メモリコントローラ51から受信したデータAを第1プロセッサ10に送信する(ステップS218)。
When the
なお、ステップS202の処理において、第1プロセッサ10からデータの読み出し要求を受信したときに、第1キャッシュメモリ15にデータAが格納されていた場合には、第1キャッシュコントローラ15aは、第1キャッシュメモリ15からデータAを読み出して第1プロセッサ10に送信する(ステップS204)。
In the process of step S202, when data A is stored in the
図2に示す処理は、第2キャッシュコントローラ25aが第2プロセッサ20からデータ読み出し要求を受信したときも、第2キャッシュコントローラ25aによって同様に実行される。
The processing shown in FIG. 2 is similarly executed by the
以上説明したように、本実施例におけるデータ読み出し処理では、第1キャッシュコントローラ15aは、要求されたデータAが第1キャッシュメモリ15に格納されていない場合に、第2キャッシュコントローラ25aに対し、そのデータの読み出し要求コマンドを送信するようにしている。そして、第2キャッシュコントローラ25aは、第2キャッシュメモリ25にデータAが格納されている場合に、データAを第1キャッシュコントローラ15aに送信するようにしている。従って、第1キャッシュコントローラ15aは、動作速度の比較的遅いメインメモリ50にアクセスせずにデータAを取得して第1プロセッサ10に送信するので、第1プロセッサ10は、比較的短時間のうちにデータを読み出すことができる。
As described above, in the data read process according to the present embodiment, the
また、メインメモリ50における処理について考えると、第2キャッシュコントローラ25aからの要求に応じてデータAを読み出した後において、第2キャッシュメモリ25にデータAが格納されている場合には、第1キャッシュコントローラ15aからデータAの読み出し要求を受信することはない。従って、メインメモリ50(メモリコントローラ51)では、同じデータの読み出し処理を行わずに済むので、他のデータの読み出しやデータの書き込み処理を行うことができる。その結果、マルチプロセッサシステム100全体でのメモリアクセスのレイテンシの増加を抑制することができる。
Considering the processing in the
B.第2の実施例:
図3は、第2の実施例におけるマルチプロセッサシステムの概要構成を示す説明図である。上述した第1の実施例におけるマルチプロセッサシステム100は、プロセッサ,2次キャッシュメモリ,キャッシュコントローラのセットが2セット存在する構成であったが、本実施例のマルチプロセッサシステムは、かかるセットが3セット存在する構成である。なお、図3において、プロセッサ,2次キャッシュメモリ,キャッシュコントローラ以外の構成については、図1に示すマルチプロセッサシステム100の構成と同じであるので図示を省略する。
B. Second embodiment:
FIG. 3 is an explanatory diagram showing a schematic configuration of the multiprocessor system in the second embodiment. The
図3に示すように、第2の実施例におけるマルチプロセッサシステムは、図1に示す第1プロセッサ10,第2プロセッサ20,第1キャッシュメモリ15,第2キャッシュメモリ25,第1キャッシュコントローラ15a,第2キャッシュコントローラ25aの他に、第3プロセッサ30と、第3プロセッサ30の2次キャッシュメモリとして機能する第3キャッシュメモリ35と、第3キャッシュメモリ35を制御する第3キャッシュコントローラ35aと、を備える。そして、3つのキャッシュコントローラ15a,25a,35aは、それぞれ、他の2つのキャッシュコントローラと接続されている。
As shown in FIG. 3, the multiprocessor system in the second embodiment includes the
かかる構成のマルチプロセッサシステムにおいて、第1プロセッサ10から第1キャッシュコントローラ15aに対して、データの読み出し要求が送信された場合の処理について説明する。
In the multiprocessor system having such a configuration, a process when a data read request is transmitted from the
第1キャッシュコントローラ15aは、第1プロセッサ10からのデータ読み出し要求を受信すると(ステップ[1])、上述したステップS202の処理と同様に、要求されたデータが第1キャッシュメモリ15に格納されているか否かを判定する。そして、格納されていないと判定した場合、第1キャッシュコントローラ15aは、第1の実施例と異なり、第2キャッシュコントローラ25aと第3キャッシュコントローラ35aとに対して、データの読み出し要求コマンドを並列に送信する(ステップ[4],[4’])。
When the
このとき、第2キャッシュコントローラ25a及び第3キャッシュコントローラ35aが実行する処理は、第1の実施例において第2キャッシュコントローラ25aが実行した処理と同じである。すなわち、自己に接続されたキャッシュメモリに、データ読み出し要求コマンドで要求されたデータが格納されているか否かを判定し、格納されている場合には、かかるデータを読み出して(ステップ[5],[5’])、ACKメッセージに付加して返信し、格納されていない場合にはNACKメッセージを返信する(ステップ[6],[6’])。
At this time, the processing executed by the
そして、第1キャッシュコントローラ15aは、2つのキャッシュコントローラ25a,35aの少なくとも一方からACKメッセージを受信した場合には、付加されたデータを第1プロセッサ10に送信する。一方、2つのキャッシュコントローラ25a,35aのいずれからもNACKメッセージを受信した場合には、メモリコントローラ51を介してメインメモリ50からデータを読み出して第1プロセッサ10に送信する。なお、両キャッシュコントローラ25a,35aの両方からACKメッセージを受信した場合には、第1キャッシュコントローラ15aは、例えば、より早く受信したACKメッセージに付加されたデータを第1プロセッサ10に送信するようにしてもよい。
When the
以上説明したように、本実施例におけるデータ読み出し処理では、第1キャッシュコントローラ15aは、第1キャッシュメモリ15に指定されたアドレス値のデータが格納されていない場合に、第2キャッシュコントローラ25aと第3キャッシュコントローラ35aとに対して、データの読み出し要求コマンドを並列に送信するようにしている。従って、2次キャッシュメモリにおいてデータがヒットする確率を、他の1つのキャッシュコントローラに対して要求コマンドを送信する場合に比べてより高くすることができる。
As described above, in the data read process according to this embodiment, the
C.変形例:
なお、本発明は、前述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
C. Variation:
The present invention is not limited to the above-described examples and embodiments, and can be implemented in various modes without departing from the gist thereof. For example, the following modifications are possible. .
C1.変形例1:
上述した第1の実施例及び第2の実施例では、第1キャッシュメモリ15,第2キャッシュメモリ25,第3キャッシュメモリ35は、いずれも2次キャッシュメモリとして機能するキャッシュメモリであるものとしたが、2次キャッシュメモリに代えて、1次キャッシュメモリや、3次キャッシュメモリなど、他のキャッシュメモリとして機能するものであっても構わない。このような構成であっても、各キャッシュコントローラにおいて上述したデータ読み出し処理が実行されることで、各プロセッサは、比較的短時間のうちにデータの読み出しを行うことができる。
C1. Modification 1:
In the first and second embodiments described above, the
C2.変形例2: C2. Modification 2:
上述した第2の実施例では、第1キャッシュコントローラ15aは、第1キャッシュメモリ15に指定されたアドレスのデータが格納されていない場合に、第2キャッシュコントローラ25aと共に第3キャッシュコントローラ35aにデータ読み出し要求コマンドを送信するようにしていたが、これに代えて、予め定められた一方のキャッシュコントローラに対してのみデータ読み出し要求コマンドを送信しても構わない。
In the second embodiment described above, the
具体的には、例えば、予めデータ読み出し要求コマンドの送信先として、第1キャッシュコントローラ15aは第2キャッシュコントローラ25aを、第2キャッシュコントローラ25aは第3キャッシュコントローラ35aを、第3キャッシュコントローラ35aは第1キャッシュコントローラ15aを、それぞれ定めておくようにしてもよい。このようにしても、データ読み出し要求コマンドの送信先のキャッシュコントローラにおいて、接続されたキャッシュメモリに要求されたデータが格納されていれば、各キャッシュコントローラは、メインメモリ50にアクセスするよりも高速にデータを取得することができる。
Specifically, for example, the
C3.変形例3:
上述した第2の実施例では、マルチプロセッサシステムにおいて、プロセッサ,2次キャッシュメモリ,キャッシュコントローラのセットが、3セット存在する構成であったが、4セット以上が存在する構成であっても構わない。この場合、各キャッシュコントローラをメッシュに接続するようにすることで、他のキャッシュコントローラに対してデータ読み出し要求コマンドを送信することができる。また、変形例3のように予めデータ読み出し要求コマンドの送信先を定めておく場合には、定められた送信先に対してのみ接続するようにしてもよい。
C3. Modification 3:
In the second embodiment described above, in the multiprocessor system, there are three sets of processors, secondary cache memories, and cache controllers, but there may be a configuration in which there are four or more sets. . In this case, by connecting each cache controller to the mesh, a data read request command can be transmitted to another cache controller. Further, when the transmission destination of the data read request command is determined in advance as in the third modification, the connection may be made only to the determined transmission destination.
C4.変形例4:
上述した第2の実施例では、第1キャッシュコントローラ15a,第2キャッシュコントローラ25a,第3キャッシュコントローラ35aは、それぞれ他の2つのキャッシュコントローラと接続する構成(メッシュ接続の構成)であったが、これに代えて、デイジーチェーン接続(数珠つなぎする接続)の構成であっても構わない。
C4. Modification 4:
In the second embodiment described above, the
例えば、第1キャッシュコントローラ15a,第2キャッシュコントローラ25a,第3キャッシュコントローラ35aの順番でデイジーチェーン接続するようにしてもよい。そして、かかるデイジーチェーン接続の構成において、第1キャッシュコントローラ15aが第2キャッシュコントローラ25aにデータ読み出し要求コマンドを送信し、第2キャッシュメモリ25に要求されたデータがない場合に、第2キャッシュコントローラ25aは、さらに、第3キャッシュコントローラ35aにデータ読み出し要求コマンドを送信する構成としてもよい。このようにすることで、データ読み出し要求コマンドを受信したキャッシュコントローラが、自己に接続されたキャッシュメモリに要求されたデータがない場合にNACKメッセージを返信する構成に比べて、2次キャッシュメモリにおいてデータがヒットする確率を、より高くすることができる。
For example, the
なお、このようなデイジーチェーン接続の構成において、データ読み出し要求コマンドの送信元のキャッシュコントローラは、かかる要求コマンドを他のキャッシュコントローラに送信してからの経過時間を測定し、所定の時間が経過した時点で返信メッセージを受信していない場合に、メモリコントローラ51に対してデータの読み出し要求を送信するようにしてもよい。多数のキャッシュコントローラがデイジーチェーン接続されている場合には、返信メッセージが要求コマンドの送信元のキャッシュコントローラに到着するまでに比較的長時間を要する場合が起こり得る。そして、この返信メッセージがNACKメッセージであると、キャッシュコントローラは、このNACKメッセージを受信してから、改めてメモリコントローラ51にデータ読み出し要求を送信するので、データの読み出しに比較的長時間を要することとなる。そこで、前述のように、所定の時間が経過した時点で、キャッシュコントローラがメモリコントローラ51に対してデータの読み出し要求を送信することにより、データの読み出しの長時間化を抑制することができる。
In such a daisy chain connection configuration, the cache controller that transmitted the data read request command measures the elapsed time since the request command was transmitted to another cache controller, and a predetermined time has elapsed. A data read request may be transmitted to the
C5.変形例5:
上述した第1の実施例及び第2の実施例では、各キャッシュコントローラ15a,25a,35aには、それぞれ1つのプロセッサ10,20,30が接続される構成であったが、この構成に代えて、少なくともいずれか1つのキャッシュコントローラに、複数のプロセッサが接続される構成であっても構わない。
C5. Modification 5:
In the first and second embodiments described above, each
10…第1プロセッサ
15…第1キャッシュメモリ
15a…第1キャッシュコントローラ
20…第2プロセッサ
25…第2キャッシュメモリ
25a…第2キャッシュコントローラ
30…第3プロセッサ
35…第3キャッシュメモリ
35a…第3キャッシュコントローラ
40…キャッシュメモリシステム
50…メインメモリ
51…メモリコントローラ
60…内部バス
100…マルチプロセッサシステム
DESCRIPTION OF
Claims (5)
第1のキャッシュメモリと、
第2のキャッシュメモリと、
第1のプロセッサに接続され、前記第1のキャッシュメモリを制御するための第1のキャッシュコントローラと、
第2のプロセッサに接続され、前記第2のキャッシュメモリを制御するための第2のキャッシュコントローラと、
を備え、
前記第1のキャッシュコントローラ及び前記第2のキャッシュコントローラは、互いに接続されていると共に、それぞれメインメモリに接続されており、
前記第1のキャッシュコントローラは、前記第1のプロセッサからデータの読み出し要求を受信すると、前記第1のキャッシュメモリに前記データが記憶されているか否かを判定し、前記第1のキャッシュメモリに前記データが記憶されていないと判定した場合に、前記第2のキャッシュコントローラに対して、前記データの読み出し要求を送信することを特徴とするキャッシュメモリシステム。 A cache memory system comprising two or more cache memories,
A first cache memory;
A second cache memory;
A first cache controller connected to a first processor for controlling the first cache memory;
A second cache controller connected to a second processor for controlling the second cache memory;
With
The first cache controller and the second cache controller are connected to each other and each connected to a main memory,
When the first cache controller receives a data read request from the first processor, the first cache controller determines whether or not the data is stored in the first cache memory, and the first cache memory stores the data in the first cache memory. A cache memory system, wherein when it is determined that no data is stored, the data read request is transmitted to the second cache controller.
前記第2のキャッシュコントローラは、前記第1のキャッシュコントローラから、前記データの読み出し要求を受信した場合に、前記第2のキャッシュメモリに前記データが記憶されているか否かを判定し、
前記第2のキャッシュコントローラは、前記第2のキャッシュメモリに前記データが記憶されていると判定した場合に、前記データを前記第2のキャッシュメモリから読み出して前記第1のキャッシュコントローラに送信し、前記第2のキャッシュメモリに前記データが記憶されていないと判定した場合に、前記第2のキャッシュメモリに前記データが記憶されていない旨を前記第1のキャッシュコントローラに送信する、
キャッシュメモリシステム。 The cache memory system according to claim 1,
The second cache controller determines whether the data is stored in the second cache memory when receiving the data read request from the first cache controller;
When the second cache controller determines that the data is stored in the second cache memory, the second cache controller reads the data from the second cache memory and transmits the data to the first cache controller; If it is determined that the data is not stored in the second cache memory, the fact that the data is not stored in the second cache memory is transmitted to the first cache controller;
Cache memory system.
前記第1のキャッシュコントローラは、前記第2のキャッシュコントローラから、前記データを受信した場合に、前記受信したデータを前記第1のプロセッサに送信し、
前記第1のキャッシュコントローラは、前記第2のキャッシュコントローラから、前記第2のキャッシュメモリに前記データが記憶されていない旨を受信した場合に、前記メインメモリから前記データを読み出すと共に、前記読み出したデータを前記第1のプロセッサに送信する、
キャッシュメモリシステム。 The cache memory system according to claim 2,
When the first cache controller receives the data from the second cache controller, the first cache controller transmits the received data to the first processor;
When the first cache controller receives from the second cache controller that the data is not stored in the second cache memory, the first cache controller reads the data from the main memory and reads the data. Sending data to the first processor;
Cache memory system.
前記メインメモリと、
前記第1のプロセッサと、
前記第2のプロセッサと、
を備えるマルチプロセッサシステム。 A cache memory system according to any one of claims 1 to 3,
The main memory;
The first processor;
The second processor;
A multiprocessor system comprising:
前記第1のキャッシュコントローラ及び前記第2のキャッシュコントローラは、互いに接続されていると共に、それぞれ前記メインメモリに接続されており、
前記方法は、
(a)前記第1のキャッシュコントローラにおいて、前記第1のプロセッサから前記データの読み出し要求を受信すると、前記第1のキャッシュメモリに前記データが記憶されているか否かを判定する工程と、
(b)前記第1のキャッシュコントローラにおいて、前記判定工程の結果、前記第1のキャッシュメモリに前記データが記憶されていないと判定された場合に、前記第2のキャッシュコントローラに対して、前記データの読み出し要求を送信する工程と、
を備えるデータ読み出し方法。 A cache comprising: a first cache memory; a second cache memory; a first cache controller that controls the first cache memory; and a second cache controller that controls the second cache memory. A data read method for reading data stored in a main memory in response to a request from a first processor connected to the first cache controller in a memory system,
The first cache controller and the second cache controller are connected to each other and each connected to the main memory,
The method
(A) in the first cache controller, when receiving the data read request from the first processor, determining whether or not the data is stored in the first cache memory;
(B) In the first cache controller, when it is determined that the data is not stored in the first cache memory as a result of the determination step, the data is transmitted to the second cache controller. Sending a read request for
A data reading method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006032310A JP2007213304A (en) | 2006-02-09 | 2006-02-09 | Cache memory system and multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006032310A JP2007213304A (en) | 2006-02-09 | 2006-02-09 | Cache memory system and multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007213304A true JP2007213304A (en) | 2007-08-23 |
Family
ID=38491681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006032310A Withdrawn JP2007213304A (en) | 2006-02-09 | 2006-02-09 | Cache memory system and multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007213304A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010165210A (en) * | 2009-01-16 | 2010-07-29 | Toyota Motor Corp | Control device |
JP2014532923A (en) * | 2011-10-26 | 2014-12-08 | クゥアルコム・テクノロジーズ・インコーポレイテッド | Integrated circuit with cache coherency |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161930A (en) * | 1996-11-29 | 1998-06-19 | Hitachi Ltd | Multiprocessor system, and cache coherency control method |
JP2001109662A (en) * | 1999-10-08 | 2001-04-20 | Fujitsu Ltd | Cache device and control method |
-
2006
- 2006-02-09 JP JP2006032310A patent/JP2007213304A/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161930A (en) * | 1996-11-29 | 1998-06-19 | Hitachi Ltd | Multiprocessor system, and cache coherency control method |
JP2001109662A (en) * | 1999-10-08 | 2001-04-20 | Fujitsu Ltd | Cache device and control method |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010165210A (en) * | 2009-01-16 | 2010-07-29 | Toyota Motor Corp | Control device |
JP2014532923A (en) * | 2011-10-26 | 2014-12-08 | クゥアルコム・テクノロジーズ・インコーポレイテッド | Integrated circuit with cache coherency |
JP2016157462A (en) * | 2011-10-26 | 2016-09-01 | クゥアルコム・テクノロジーズ・インコーポレイテッド | Integrated circuits with cache coherency |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7613197B2 (en) | Multi-processor system and message transferring method in the same | |
US20110078365A1 (en) | Data access method of a memory device | |
TWI703501B (en) | Multi-processor system having distributed mailbox architecture and communication method thereof | |
KR100644596B1 (en) | Bus system and bus arbitration method thereof | |
JP2008086027A (en) | Method and device for processing remote request | |
US20060248218A1 (en) | Multi-processor system and message transferring method in the same | |
JP2011170848A (en) | Trace data priority selection | |
US20060236001A1 (en) | Direct memory access controller | |
EP1701267A2 (en) | Address snoop method and multi-processor system | |
JP2007213304A (en) | Cache memory system and multiprocessor system | |
US20180074983A1 (en) | Data transfer method, parallel processing device, and recording medium | |
JP4104939B2 (en) | Multiprocessor system | |
US20040230717A1 (en) | Processing device | |
US8806082B2 (en) | Direct memory access device for multi-core system and operating method of the same | |
JP2008009702A (en) | Arithmetic processing system | |
CN101464839B (en) | Access buffering mechanism and method | |
JP2011070259A (en) | Data transfer device and data transfer method | |
US20120310621A1 (en) | Processor, data processing method thereof, and memory system including the processor | |
US8239652B2 (en) | Data processing system | |
JP6502879B2 (en) | Storage device | |
US7805576B2 (en) | Information processing system, information processing board, and method of updating cache tag and snoop tag | |
US20060036815A1 (en) | System and method for concurrently decoding and transmitting a memory request | |
JP5334173B2 (en) | Data transfer system and retry control method | |
KR100728870B1 (en) | Dual port ram and method of losslessly transmitting data using the dual port ram | |
JP2008118211A (en) | Device and method for transferring data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110920 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111116 |