JP2006079218A - メモリ制御装置及び制御方法 - Google Patents

メモリ制御装置及び制御方法 Download PDF

Info

Publication number
JP2006079218A
JP2006079218A JP2004260347A JP2004260347A JP2006079218A JP 2006079218 A JP2006079218 A JP 2006079218A JP 2004260347 A JP2004260347 A JP 2004260347A JP 2004260347 A JP2004260347 A JP 2004260347A JP 2006079218 A JP2006079218 A JP 2006079218A
Authority
JP
Japan
Prior art keywords
memory
data block
cpu
cache
read request
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
Application number
JP2004260347A
Other languages
English (en)
Inventor
Takeshi Sugizaki
剛 杉崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004260347A priority Critical patent/JP2006079218A/ja
Priority to US11/142,358 priority patent/US20060053255A1/en
Priority to EP05015360A priority patent/EP1638003A3/en
Publication of JP2006079218A publication Critical patent/JP2006079218A/ja
Withdrawn legal-status Critical Current

Links

Images

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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

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)

Abstract

【課題】
コンピュータシステムのシステム・コントローラLSI等のメモリ制御層において、複数の記憶装置に分散されたブロックデータへのリードアクセスを効率良く行うこと。
【解決手段】
本発明は、サーバ等のチップセットを構成し、CPU内部の2次キャッシュメモリとの間でデータ共有を行う3次キャッシュメモリを有するシステム・コントローラ等のメモリ制御装置において、CPUからのリード要求に対する応答として、前記3次キャッシュメモリ及びメインメモリ並びに他のCPUに内蔵される2次キャッシュメモリ等の複数の記憶装置からデータブロックを同時に受信して1つのデータエントリにマージすることにより、一度のアクセスで必要なデータをCPUの2次キャッシュメモリに格納する効率的なメモリ制御装置及び制御方法を実現し、合わせてメモリ・レイテンシによる性能劣化及びバス・スループットの圧迫という問題を回避することを目的とする。
【選択図】図16

Description

本発明は、サーバやPC等のチップセットを構成し、CPU内部の2次キャッシュメモリとの間でデータ共有を行う3次キャッシュメモリを有するシステム・コントローラLSI等のメモリ制御装置において、CPUからのリード要求に対する応答として、前記3次キャッシュメモリ及びメインメモリ並びに他のCPUに内蔵される2次キャッシュメモリ等の複数の記憶装置からデータブロックを同時に受信して1つのデータエントリにマージすることにより、一度のアクセスで必要なデータをCPUの2次キャッシュメモリに格納する際におけるメモリ制御装置及び制御方法に関するものである。
従来、コンピュータシステムにおいて、CPU内部のキャッシュメモリ及びメインメモリを含むメモリ階層構造は、CPUに内蔵される1次キャッシュメモリ及びCPU外付けの2次キャッシュメモリ並びにメインメモリの三階層からなる構成が主流であった。
その後、半導体テクノロジの進歩によるLSIの高密度実装が可能になり、LSI上に実装できるトランジスタ数が飛躍的に向上し、CPUに2次キャッシュメモリを内蔵することが可能になるとともに、メモリ制御装置にも3次キャッシュメモリを内蔵することが可能になった。特に企業の基幹業務など特に高い処理能力を要求されるサーバ等のコンピュータシステムにおいては、大規模SMP(Symmetrical Multi-Processor:対称型マルチプロセサ)構成等の高性能コンピュータシステムが実現されることにより、3次キャッシュメモリを複数のプロセサから共有してメモリアクセス時間を短縮することにより、処理能力の向上を図るようになった。
かかる大規模SMP構成等の高性能コンピュータシステムにおいて、CPUやI/O装置からメインメモリに対するリード要求が発生した場合に、現実にリード要求があったデータブロックと、そのデータブロックに隣接するデータブロックとを一括してリード要求を行うことは、メモリアクセスにおけるプログラム及びデータの局所性という特徴により、性能向上に効果的であることは知られている。一般的にプログラムのメモリへの格納イメージは、プログラムの実行順又はデータのアクセス順となっており、すなわちそのままCPUの実行順にもなっていることが多いからである。
従って、コンピュータ・アーキテクチャの進展とともに、キャッシュメモリ内のデータ管理において、1データエントリをデータブロックサイズのn倍の大きさとして、リード要求に対する応答データのサイズをキャッシュメモリの登録状態により決定する方式が高性能コンピュータシステムに採用されるようになった。
図1にデータブロックのサイズが64Byteであり、キャッシュメモリタグ部における登録データとして1データエントリを256Byte、つまりデータブロックの4倍のサイズにより管理を行うCPU内の2次キャッシュメモリにおけるキャッシュメモリタグの構成例を示す。例えば、キャッシュメモリブロック101を例に挙げると、キャッシュメモリブロック101はアドレスフィールド102及びデータブロック−0用TAG VALID(BLOCK−0 VALID)103、データブロック−1用TAG VALID(BLOCK−1 VALID)104、データブロック−2用TAG VALID(BLOCK−2 VALID)105、データブロック−3用TAG VALID(BLOCK−3 VALID)106から構成される。ここで、データブロック−0用TAG VALID(BLOCK−0 VALID)103は、アドレス0x100番地からの64Byteデータブロックに対するTAG VALIDである。同様に、データブロック−1用TAG VALID(BLOCK−1 VALID)104は、アドレス0x140番地からの64Byteデータブロックに対するTAG VALIDであり、また、データブロック−2用TAG VALID(BLOCK−2 VALID)105は、アドレス0x180番地からの64Byteデータブロックに対するTAG VALIDであり、さらに、データブロック−3用TAG VALID(BLOCK−3 VALID)106は、アドレス0x1C0番地からの64Byteデータブロックに対するTAG VALIDである。そして、本構成ではCPU内の2次キャッシュメモリからシステム・コントローラLSIに対するリード要求への応答データの転送サイズは64Byte単位である。
また、任意のCPUが自分自身の2次キャッシュメモリにおいて、ミスヒットしたためにメモリ制御装置であるシステム・コントローラLSIに対して、メインメモリへのリード要求を発行した場合、前記システム・コントローラLSIはコンピュータシステム上の全てのCPU内における2次キャッシュメモリのタグ内容を検査し、メインメモリへのリード要求に対する応答データのサイズとして、256Byte又は64Byteのいずれかを選択する。この場合において、CPUは自分自身の2次キャッシュメモリに、応答データが256Byteサイズの場合には64Byte×4からなる256Byteのブロックサイズで登録を行い、又は応答データが64Byteサイズの場合には64Byteのブロックサイズで登録を行う。以下、各図面を用いて、上述した従来例における各応答データの発生条件及び動作の説明を行う。
(従来例において256Byteデータブロックで応答する場合)
図2に、従来例において256Byteデータブロックにより応答データを行う場合を示す。システムボード−0(SB−0)上に実装されるシステム・コントローラLSI−0(SC−0)205は、データ応答制御部(DATA−REPLY CONTROL BLOCK)251を内蔵し、それぞれ2次キャッシュメモリ(L2−CACHE)211を内蔵するCPU−0 201及び2次キャッシュメモリ(L2−CACHE)221を内蔵するCPU−1 202及びメインメモリ−0(MEM−0)207が接続される。なお、特許請求の範囲における「制御部」は、本実施例におけるデータ応答制御部のことである。
同様に、システムボード−1(SB−1)上に実装されるシステム・コントローラLSI−1(SC−1)206は、データ応答制御部(DATA−REPLY CONTROL BLOCK)261を内蔵し、それぞれ2次キャッシュメモリ(L2−CACHE)231を内蔵するCPU−2 203及び2次キャッシュメモリ(L2−CACHE)241を内蔵するCPL3 204及びメインメモリ−1(MEM−1)208が接続される。また、システム・コントローラLSI−0(SC−0)205とシステム・コントローラLSI−1(SC−1)206との間は、クロスバ・スイッチ(XB)により接続されているが、本図では簡単化のために省略されている。
ここで図2において、リード・アクセス発生前の各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S1)211、221、231、241は全て無効ステータス(Iステータス)を保持しており、CPU−0 201からのリード要求の対象であるアドレス0x100番地からの64Byteデータブロックを含む256Byteデータブロックのうち、どの64Byteデータブロックも全ての2次キャッシュメモリ(L2−CACHE)内に有効に存在しない場合を表す。
この場合には、CPU−0 201に内蔵される2次キャッシュメモリ(L2−CACHE)211からのアドレス0x100番地に対するリード要求291を受信したシステムコントローラ−0(SC−0)205は、メインメモリ−0(MEM−0)207に向けて、それぞれアドレス0x100番地、0x140番地、0x180番地、0x1C0番地に対するリード要求293を生成し、メインメモリ−0(MEM−0)207は前記リード要求アドレスに対して64Byte×4からなる256Byteデータブロックによる応答データ294を送信する。さらに、システム・コントローラLSI(SC−0)205に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)251は、前記64Byte×4からなる256Byteデータブロックを含む応答データ295をCPU−0 201に内蔵されている2次キャッシュメモリ(L2−CACHE)211へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の各2次キャッシュメモリに内蔵されるタグ・ステータス(TAG−S2)213、223、233、243はCPU−0 201に内蔵される2次キャッシュメモリ(L2−CACHE)211のタグ・ステータス(TAG−S2)213のみが全ビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他のCPUに内蔵される2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)223、233、243はいずれもリード・アクセス発生前の状態から変化しない。
(従来例において64Byteデータブロックで応答する場合その1)
図3に、従来例において64Byteデータブロックにより応答データを行う場合その1を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図2と同様である。
ここで図3において、リード・アクセス発生前のCPU−1 302に内蔵される2次キャッシュメモリ(L2−CACHE)321のタグ・ステータス(TAG−S1)322は、アドレス0x140番地からの64Byteデータブロックに対するビットのみが有効ステータス(Vステータス)を保持し、また、タグ・ステータス(TAG−S1)322の他のビット及び他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S1)312、332、342は全て無効ステータス(Iステータス)を保持し、さらに、CPU−0 301からのリード要求の対象であるアドレス0x140番地からの64ByteデータブロックがCPU−1 302に有効に存在する場合を表す。
この場合には、CPU−0 301に内蔵される2次キャッシュメモリ(L2−CACHE)311からのアドレス0x140番地に対するリード要求391を受信したシステムコントローラ−0(SC−0)305は、CPU−1 302に向けて、アドレス0x140番地に対するリード要求392を生成し、CPU−1 302は前記リード要求アドレスに対して64Byteデータブロックによる応答データ393を送信する。さらに、システム・コントローラLSI(SC−0)305に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)351は、前記64Byteデータブロックを含む応答データ394をCPU−0 301に内蔵されている2次キャッシュメモリ(L2−CACHE)311へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の各2次キャッシュメモリに内蔵されるタグ・ステータス(TAG−S2)313、323、333、343はCPU−0 301に内蔵される2次キャッシュメモリ(L2−CACHE)311のタグ・ステータス(TAG−S2)313のみがアドレス0x140番地に対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他のCPUに内蔵される2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)323、333、343はいずれもリード・アクセス発生前の状態から変化しない。
(従来例において64Byteデータブロックで応答する場合その2)
図4に、従来例において64Byteデータブロックにより応答データを行う場合その2を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図2及び図3と同様である。
ここで図4において、リード・アクセス発生前のCPU−0 401に内蔵される2次キャッシュメモリ(L2−CACHE)411のタグ・ステータス(TAG−S1)412は全てのビットが無効ステータス(Iステータス)を保持し、また、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S1)422、432、442は、リード要求の対象であるアドレス0x140番地からの64Byteデータブロックは存在しないが、同一256Byteデータエントリの他のいずれかの64Byteデータブロックが有効に存在する場合を表す。
この場合には、CPU−0 401に内蔵される2次キャッシュメモリ(L2−CACHE)411からのアドレス0x140番地に対するリード要求491を受信したシステムコントローラ−0(SC−0)405は、メインメモリ−0(MEM−0)に向けて、アドレス0x140番地に対するリード要求492を生成し、メインメモリ−0(MEM−0)は前記リード要求アドレスに対して64Byteデータブロックによる応答データ493を送信する。さらに、システム・コントローラLSI−0(SC−0)405に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)451は、前記64Byteデータブロックを含む応答データ494をCPU−0 401に内蔵されている2次キャッシュメモリ(L2−CACHE)411へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S2)413、423、433、443はCPU−0 301に内蔵される2次キャッシュメモリ(L2−CACHE)411のタグ・ステータス(TAG−S2)413のみがアドレス0x140番地に対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他のCPUに内蔵される2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)423、433、443はいずれもリード・アクセス発生前の状態から変化しない。
このように、大規模SMP構成等の高性能コンピュータシステムにおいて、キャッシュメモリ内のデータブロック管理において、1つのデータエントリを複数のデータブロックにより構成し、リード要求に対する応答データのサイズをキャッシュメモリの登録状態により決定を行う従来のシステム・コントローラLSI(SC)においては、システム・コントローラ(SC)内に3次キャッシュメモリを有していなかったため、CPUからのリード要求に対する応答データはメインメモリ(MEM)又は他のCPU内の2次キャッシュメモリ(L2−CACHE)のみに存在するため、システム・コントローラLSI(SC)のキャッシュメモリ制御は比較的容易であった。
しかし、半導体テクノロジの進歩により、メモリ制御装置であるシステム・コントローラ(SC)内に3次キャッシュメモリ(L3−CACHE)を内蔵することが可能になると、CPUからのリード要求に対する応答データがメインメモリ(MEM)及び他のCPU内の2次キャッシュメモリ(L2−CACHE)だけではなく、リード・アクセスを中継するシステム・コントローラ(SC)並びに他のシステムボード(SB)上のシステム・コントローラ(SC)内の3次キャッシュメモリ(L3−CACHE)に存在する可能性が有るため、システム・コントローラ(SC)のキャッシュメモリ制御は複雑化する。特に、キャッシュメモリ内のデータブロック管理において、1データエントリを複数データブロックにより構成するため、1データエントリ内の複数のブロックが全て有効ではなく、部分的に有効である場合は、有効ステータスのブロックを保持しているのにも関わらず、当該データエントリの全ブロックをメインメモリ(MEM)等からリードしていた。つまり、従来のシステム・コントローラ(SC)においては、効率的なキャッシュメモリ制御を行っているとはいえなかった。
特許文献1には、データ処理装置においてCPUやチャネル・プロセッサがメインメモリを共通に使用する場合において、スワップ方式(リードスルー方式及びライトスルー方式を採用するキャッシュメモリの制御方式)を採用するメモリ制御装置内に中間バッファメモリを設け、メインメモリにアクセスするときにこの中間バッファメモリに必要なデータが存在するか否かを管理テーブルで索引してその有無を調査する制御機構を有し、CPUからメインメモリに対するブロック・ストアを実行する際に、中間バッファメモリに対応するアドレスが存在しない場合であって、メインメモリに返送すべきデータが存在しない場合には、メインメモリから当該アドレスに対応するデータが中間バッファメモリに読み出されるのを待たずに、中間バッファメモリ又はメインメモリのいずれかのメモリに新しいデータを書き込むと同時に、メモリのアクセス時間をオペレーションに基づいて制御できるようにしたメモリアクセス制御方式が開示されている。しかし、特許文献1で開示しているのは、スワップ方式を採用するメモリ制御装置におけるブロック・ストアの制御方式であり、スワップ方式等のキャッシュメモリの更新制御方式に限定されないリード・アクセスの制御装置及び制御方法を開示する本発明とは異なる。例えば、本発明は何らの変更も無しに、スワップ方式ではないライトバック方式のメモリ制御装置に適用することも可能である。
特許文献2には、MESIプロトコルに代表されるディレクトリプロトコルを使用するディレクトリベースのメモリおよび第3レベルの非包含的キャッシュメモリを使用するコヒーレンスシステムにおいて、キャッシュメモリのコヒーレンシを維持するためのシステム及び方法が開示されている。しかし、特許文献2で開示しているのは、ディレクトリプロトコル及び非包含的キャッシュメモリを採用するシステムに限定されており、ディレクトリプロトコルの採用に限定されず、また包含的キャッシュメモリを採用するシステムを前提条件とする本発明とは異なる。
特許文献3には、複数階層のキャッシュメモリを有するデータ処理システムにおいて、非包含的キャッシュメモリを実現するためのシステムが開示されている。しかし、特許文献3で開示しているのは、非包含的キャッシュメモリを採用するシステムに限定されており、包含的キャッシュメモリを採用するシステムを前提条件とする本発明とは異なる。
特許文献4には、高速 複数階層のキャッシュメモリを有するデータ処理システムにおいて、非包含的キャッシュメモリを実現するためのシステムが開示されている。しかし、特許文献3及び特許文献4で開示しているのは、非包含的キャッシュメモリを採用するシステムに限定されており、包含的キャッシュメモリを採用するシステムを前提条件とする本発明とは異なる。
従って、特許文献1乃至4に開示されている技術的範囲は、リード要求に対する応答データの制御方法に関しては、効率的なキャッシュメモリ制御方法を何ら開示していないため、従来技術の域を出ていない。
特開昭57−33472号公報 特表2001−522090号公報 特開平06−250926号公報 特開平11−259361号公報
従来の技術では、3次キャッシュメモリ(L3−CACHE)を有し、データのアクセス制御を複数のデータブロックから構成されるデータエントリの単位で行うシステム・コントローラ(SC)等のメモリ制御装置において、CPUからのリード要求に対して応答すべきデータエントリの応答データのうち、データブロックの一部がメインメモリ(MEM)や他のCPUの2次キャッシュメモリ(L2−CACHE)等に分散して保持されている場合において、有効ステータスのデータブロックを一部において保持しているのにも関わらず、データエントリに含まれる全てのデータブロックのリード要求に対する応答データをメインメモリ(MEM)からリードしていたため、メモリ・レイテンシによる性能劣化及びバス・スループットの圧迫という問題が発生していた。そこで、CPUからのリード要求を受信したシステム・コントローラ(SC)は、他システムボード(SB)上のシステム・コントローラ(SC)内蔵の3次キャッシュメモリ(L3−CACH)及び自システムボード(SB)上のCPU内蔵の2次キャッシュメモリ(L2−CACHE)等に対しては必要最小限のリード要求を発行し、自システム・コントローラ(SC)が保持している有効ステータスのデータブロックとマージを行うという方法が考えられる。この方法によれば、自システム・コントローラが保持している有効ステータスのデータブロックを無駄する必要が無いため、メインメモリ(MEM)への無駄なアクセスの発生を抑止することにより、メモリ・レイテンシによる性能劣化及びバス・スループットの圧迫という問題を回避することができるということを意味する。
本発明は、システム・コントローラ(SC)がCPUからのリード要求に対して応答すべきデータエントリの応答データのうち、データブロックの一部が無効ステータスである場合に、無効ステータスのデータブロックについてのみリード要求を発行し、前記リー−ド要求に対する応答データと自システム・コントローラ(SC)が保持する有効ステータスのデータブロックとをマージするメモリ制御装置及び制御方法を提供する。
上記目的を達成するために本発明は、第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され、いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記リード要求対象のデータブロックの格納場所及び前記データブロックが属するエントリに含まれるその他のデータブロックの格納場所に対して、それぞれリード要求を発行する制御部とを有することを特徴とするメモリ制御装置であることを特徴とする。
上記目的を達成するために本発明は、第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置であることを特徴とする。
上記目的を達成するために本発明は、第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記CPUが有する第1のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第1のタグメモリと、
前記第2のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第2のタグメモリとを有し、
前記第1及び第2のタグメモリの内容と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置であることを特徴とする。
上記目的を達成するために本発明における前記制御部は、
前記複数の格納場所からそれぞれ送出される複数のデータブロックを受信し、前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置であることを特徴とする。
上記目的を達成するために本発明における前記メモリ制御装置は、
直接接続されるCPUから発行されるリード要求に対応するデータブロックが属するエントリに含まれるその他のデータブロックのうち、すくなくとも1つのデータブロックが前記第2のキャッシュメモリに格納されているときには,前記データブロックを前記複数の格納場所から送出されたデータブロックとを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置であることを特徴とする。
上記目的を達成するために本発明は、情報処理装置において、
少なくとも1つのCPUと、
前記CPUに設けられ、複数のデータブロックから構成される複数のエントリを有する第1のキャッシュメモリと、
メインメモリと、
前記CPUからのリード要求を処理する少なくとも1つのメモリ制御装置と、
前記メモリ制御装置に設けられ、複数のデータブロックから構成される複数のエントリを有する第2のキャッシュメモリとを有し、
前記メモリ制御装置は、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれる他のデータブロックが、複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とする情報処理装置であることを特徴とする。
上記目的を達成するために本発明における前記情報処理装置は、
複数のメモリ制御装置を有し、
一のメモリ制御装置は、
他のメモリ制御装置に接続されるCPUからのリード要求が発行された場合には、
前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と前記他のメモリ制御装置に接続されるCPUからのリード要求とを比較することにより、当該要求に対応するデータブロックの格納場所の検査を行い、
前記検査の結果、前記データブロック及び前記データブロックが属するエントリに含まれるその他のデータブロックのうち、少なくとも1つのデータブロックが前記メモリ制御装置に接続されたCPUに設けられた第1のキャッシュメモリ又は前記メモリ制御装置に設けられた第2のキャッシュメモリに格納されているときには、前記データブロックを前記他のメモリ制御装置に送出することを特徴とする請求項6記載の情報処理装置であることを特徴とする。
上記目的を達成するために本発明における前記情報処理装置は、
前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを前記メモリ制御装置が受信し、前記受信した複数のデータブロックを、前記メモリ制御装置が1つのエントリにマージして前記CPUに送出することを特徴とする請求項6記載の情報処理装置であることを特徴とする。
上記目的を達成するために本発明は、少なくとも1つのCPUからのリード要求を実行するメモリ制御装置のメモリ制御方法において、
いずれかのCPUから発行されるリード要求を受信し、
前記CPU内のキャッシュメモリに含まれるデータブロックの有効状態及び前記メモリ制御装置内のキャッシュメモリに含まれるデータブロックの有効状態と、前記リード要求とを比較し、
前記比較の結果、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とするメモリ制御方法であることを特徴とする。
上記目的を達成するために本発明における前記メモリ制御方法はさらに、
前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを受信し、
前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを有する特徴とする請求項9記載のメモリ制御方法であることを特徴とする。
(本発明の実施の形態)
図5に本発明の適用製品分野となるクロスバ・スイッチLSI(XB)及びシステム・コントローラLSI(SC)及びI/Oシステム・コントローラLSI(IOSC)を使用したコンピュータシステムの全体ハードウェア構成の一例を示す。
バックプレーン(BP)501は、複数個のクロスバ・スイッチLSI(XB)511〜514を実装しており、コネクタ561〜564を経由して、システムボード(SB)502、503及びI/Oボード(IOB)504、505とのインタフェースを有することにより、システム全体の接続を制御する。システムボード(SB)502、503は、それぞれ複数個のシステム・コントローラLSI(SC)521〜524、531〜534及び複数個のCPU及びメインメモリを制御するメモリ・コントローラLSI(MAC)を実装する(図中ではCPU及びメモリ・コントローラLSI(MAC)等のLSIを省略している)。前記システム・コントローラLSI(SC)は、システムボード(SB)上に実装された他のシステム・コントローラLSI(SC)及び複数のCPU及びメモリ・コントローラLSI(MAC)とのインタフェースを有する(詳細は後述する)。従って、システムボード(SB)502、503は、当該コンピュータシステムにおける処理能力の増設単位となるものである。I/Oボード(IOB)504、505は、それぞれ複数個のI/Oシステム・コントローラLSI(IOSC)541〜544、551〜554及びPCIスロット等を実装する(図中ではPCIスロット等を省略している)。従って、I/Oボード(IOB)504、505は、当該コンピュータシステムにおけるI/Oの増設単位となるものである。
また、図6にシステム・コントローラLSI(SC)を実装するシステムボード(SB)のハードウェア構成の一例を示す。
システムボード(SB)601は、複数個のシステム・コントローラLSI(SC)611〜614、複数個のCPU621〜624、複数個のメモリ・コントローラLSI(MAC)631〜634、複数個のメモリ・モジュール(DIMM)641〜644及び複数個のコネクタ651〜654を実装している。
ここで、システム・コントローラLSI(SC)611を例に説明を行う。システム・コントローラLSI(SC)611は、他のシステム・コントローラLSI(SC)612〜614及び複数のCPU621〜624及び複数のメモリ・コントローラLSI(MAC)631、632と接続される。さらに、システム・コントローラLSI(SC)611は、コネクタ651を通して、バックプレーンに実装されたクロスバ・スイッチLSI(XB)ともインタフェースを有する。従って、システム・コントローラLSI(SC)611は複数のインタフェースを有することにより、システム・コントローラLSI(SC)に接続されたCPU及びメモリ・コントローラ(MAC)との間のデータの送受信を行う。
システム・コントローラLSI(SC)611とCPU621〜624との間は、CPUローカルバス形式のインタフェースにより接続され、メモリ・コントローラLSI631、632との間は、メモリ・バス形式のインタフェースにより接続され、システム・コントローラLSI(SC)611と他のシステム・コントローラLSI(SC)612〜614との間は、インタコネクト形式のインタフェースにより接続される。さらに、システム・コントローラLSI(SC)611とクロスバ・スイッチLSI(XB)との間も、インタコネクト形式のインタフェースにより接続され、一般にはシステム・コントローラLSI(SC)間のインタコネクトと同様のインタフェースにより接続される。
さらに、図7にシステム・コントローラLSI(SC)のハードウェア構成の一例を示す。
システム・コントローラLSI(SC)701は、図6で説明したようにそれぞれ、一つのクロスバ・スイッチLSI(XB)、複数のシステム・コントローラLSI(SC)、複数のCPU、複数のメモリ・コントローラLSI(MAC)とのインタフェースを有し、データ応答制御部702を有する。前記データ応答制御部702は、ローカル・アクセス・パイプライン(LOCAL−PIPELINE)722、自システムボードに実装される各CPUの2次キャッシュ・タグメモリのコピー(L2−TAG2)723、3次キャッシュ・タグメモリ(L3−TAG)724、グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)725から構成される。
まず、当該システム・コントローラLSI(SC)701が実装された自システムボード(SB)上のCPU−0〜3からのリード要求等のアクセスはそれぞれ、リクエスト・ポート−0〜3(RQPT−0〜3)711〜714にキューイングされる。当該アクセスが他のシステムボード(SB)に対するアクセスである場合には、クロスバ・リクエスト・キュー(XBRQ)721及びマルチプレクサ761を通過し、クロスバ・スイッチLSI(XB)を通して他のシステムボード(SB)に対するアクセスが行われる。
次に、自システムボード(SB)上のCPU0〜3又は共有3次キャッシュメモリ(L3−DATA)754に対するアクセスである場合には、ローカル・アクセス・パイプライン(LOCAL−PIPELINE)722によるパイプライン制御が行われ、CPU−0〜3が有する2次キャッシュ・タグのコピー(L2 TAG2)723及び3次キャッシュメモリ・タグ(L3−TAG)724にアクセスを行うことにより、アクセスすべきデータの場所の検索をおこなう。検索の結果、アクセスすべきデータがCPU−0〜3内に存在する場合にはそれぞれ、オーダ・キュー(ODRQ−0〜3)731〜734及びマルチプレクサ762〜765を通じて、CPU−0〜3に対してロード要求を発行する。また、アクセスすべきデータが3次キャッシュメモリ(L3−DATA)754に存在する場合には、ロード・キュー(LOADQ)735及びリード・ポート(RDPT)751及び3次キャッシュメモリ・アクセス・パイプライン(L3DT−PIPE)752によるパイプライン制御が行われ、3次キャッシュメモリ(L3−DATA)754に対するアクセスが行われる。
また、CPU−0〜3からのフェッチ要求に対する応答データである場合にはそれぞれ、メモリ・ストレージ・キュー(MSQ−0〜3)741〜744及びムーブイン・データ・キュー(MIDQ)756並びにマルチプレクサ762〜765を通じて、CPU−0〜3にフェッチ・データがロードされる。
さらに、他システムボード(SB−0〜1)上のクロスバ・スイッチLSI(XB)からのアクセスである場合にはそれぞれ、システムボード・ポート(SBPT−0〜1)716〜717及びマルチプレクサ718を通じて、グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)725によるパイプライン制御が行われる。グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)725以降のアクセス経路は、上述したローカル・アクセス・パイプライン(LOCAL−PIPELINE)722と同様である。
次に、図8にデータ応答制御部のハードウェア構成の一例を示す。ステージング・ラッチ811〜815は、ローカル・アクセス・パイプライン(LOCAL−PIPELINE)を構成し、ステージング・ラッチ851〜856は、グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)を構成する。
まず、ローカル・アクセス・パイプライン(LOCAL−PIPELINE)の動作を説明する。自システムボード(SB)上のCPU0〜3からのリード・アクセスである場合には、ローカル・アクセス・パイプライン(LOCAL−PIPELINE)を構成するステージング・ラッチ811〜815をアクセス・コマンドが流れ、前記コマンドに付随するアドレス情報がマルチプレクサ821及び831を通過し、2次キャッシュ・タグメモリのコピー(L2−TAG2)821及び3次キャッシュ・タグメモリ(L3−TAG)833のそれぞれのリード・ポート822及び832に入力されることにより、それぞれのタグメモリの索引が行われる。それぞれのタグメモリの索引結果はそれぞれの出力レジスタ827及び836に出力され、さらには、前記ローカル・アクセス・パイプライン(LOCAL−PIPELINE)を構成するステージング・ラッチ811〜813を流れてきたアクセス・コマンドに付随するコピーレンシ情報とそれぞれマルチプレクサ826及び927の入力がローカル・アクセス・パイプライン(LOCAL−PIPELINE)側に切り替わることにより、それぞれコンパレータ827及び837において比較が行われる。コンパレータ827及び837の出力はそれぞれ、デコーダ829に入力されることにより、自システムボード(SB)上に実装される各CPUからのリード要求に対して、各CPUに内蔵される2次キャッシュメモリ(L2−CACHE)及びシステム・コントローラ(SC)に内蔵される3次キャッシュメモリ(L3−CACHE)に保持されている各データエントリの有効/無効ステータス及びデータの包含情報等の索引情報がステージング・ラッチ815に出力される。さらに、前記デコーダ829の出力の結果により、CPUリクエスト制御部(CPU REQUEST CONTROL)841から自システムボード(SB)上に実装される各CPUに対するリード要求等が発行され、又は、メモリリクエスト制御部(MEM REQUEST CONTROL)842から自システムボードに実装されるメインメモリに対するリード要求が発行され、若しくは、タグ制御部(TAG CONTROL)843から2次キャッシュ・タグメモリのコピー(L2−TAG2)823及び3次キャッシュ・タグメモリ(L3−TAG)833のタグ・ステータスの反映が行われる。
次に、グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)の動作を説明する。他のシステムボード(SB)上のCPU0〜3からのリード・アクセスである場合には、グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)を構成するステージング・ラッチ851〜856をリード・コマンドが流れ、前記コマンドに付随するアドレス情報がマルチプレクサ821及び831を通過し、2次キャッシュ・タグメモリのコピー(L2−TAG2)821及び3次キャッシュ・タグメモリ(L3−TAG)833のそれぞれのリード・ポート822及び832に入力されることにより、それぞれのタグメモリの索引が行われる。それぞれのタグメモリの索引結果はそれぞれの出力レジスタ827及び836に出力され、さらには、前記グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)を構成するステージング・ラッチ851〜853を流れてきたアクセス・コマンドに付随するコピーレンシ情報とそれぞれマルチプレクサ826及び927の入力がグローバル・アクセス・パイプライン(GLOBAL−PIPELINE)側に切り替わることにより、それぞれコンパレータ827及び837において比較が行われる。コンパレータ827及び837の出力はそれぞれ、デコーダ839に入力されることにより、他のシステムボード(SB)上に実装される各CPUからのリード要求に対して、自システムボード(SB)上の各CPUに内蔵される2次キャッシュメモリ(L2−CACHE)及びシステム・コントローラ(SC)に内蔵される3次キャッシュメモリ(L3−CACHE)に保持されている各データエントリの有効/無効ステータス及びデータの包含情報等の索引情報がリード・アクセスを発行した他のシステムボード(SB)上のCPUにクロスバ・スイッチLSI(XB)を経由して出力される。さらに、前記クロスバ・スイッチLSI(XB)を経由して、他のシステムボード(SB)へ出力された索引情報は、当該システムボード(SB)における索引情報と合わせて処理された情報がステージング/ラッチ856に戻されることにより、CPUリクエスト制御部(CPU REQUEST CONTROL)847から自システムボード条に実装される各CPUに対するリード要求等が発行され、又は、メモリリクエスト制御部(MEM REQUEST CONTROL)848から自システムボードに実装されるメインメモリに対するリード要求が発行され、若しくは、タグ制御部(TAG CONTROL)846から2次キャッシュ・タグメモリのコピー(L2−TAG2)823及び3次キャッシュ・タグメモリ(L3−TAG)833のタグ・ステータスの反映が行われる。
(本発明の実施の形態における256Byteデータブロック応答の通常動作その1)
図9は、本発明の構成において256Byteデータブロックにより応答データを行う場合の通常動作その1を示す。システムボード−0(SB−0)上に実装されるシステム・コントローラLSI−0(SC−0)905は、3次キャッシュメモリ(L3−CACHE)951及びデータ応答制御部(DATA−REPLY CONTROL BLOCK)952を内蔵し、それぞれ2次キャッシュメモリ(L2−CACHE)911を内蔵するCPU−0 901及び2次キャッシュメモリ(L2−CACHE)921を内蔵するCPU−1 911及びメインメモリ−0(MEM−0)907が接続される。同様に、システムボード−1(SB−1)上に実装されるシステム・コントローラLSI−1(SC−1)906は、3次キャッシュメモリ(L3−CACHE)961及びデータ応答制御部(DATA−REPLY CONTROL BLOCK)962を内蔵し、それぞれ2次キャッシュメモリ(L2−CACHE)931を内蔵するCPU−2 903及び2次キャッシュメモリ(L2−CACHE)941を内蔵するCPL3 904及びメインメモリ−1(MEM−1)908が接続される。また、システム・コントローラLSI−0(SC−0)905とシステム・コントローラLSI−1(SC−1)906との間は、クロスバ・スイッチ(XB)により接続されているが、本図では簡単化のために省略されている。
ここで図9において、リード・アクセス発生前の各3次キャッシュメモリ(L3−CACHE)951、961に内蔵されるタグ・ステータス(TAG−S1)953、954、及び、各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S1)911、921、931、941は全て無効ステータス(Iステータス)を保持しており、CPU−0 901からのリード要求の対象であるアドレス0x100番地からの64Byteデータブロックを含む256Byteデータブロックのうち、どの64Byteデータブロックも全ての3次キャッシュメモリ及び2次キャッシュメモリ(L2−CACHE)内に有効に存在しない場合を表す。
この場合には、CPU−0 901に内蔵される2次キャッシュメモリ(L2−CACHE)911からのアドレス0x140番地に対するリード要求991を受信したシステムコントローラ−0(SC−0)905は、メインメモリ−0(MEM−0)907に向けて、アドレス0x100番地に対する256Byteサイズのリード要求993を生成し、メインメモリ−0(MEM−0)は前記リード要求アドレスに対して256Byteデータブロックによる応答データ994を送信する。さらに、システム・コントローラLSI−0(SC−0)905に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)952は、前記64Byteデータブロックを含む応答データ995をCPU−0 901に内蔵されている2次キャッシュメモリ(L2−CACHE)911へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の3次キャッシュメモリ(L3−CACHE)951に内蔵されるタグ・ステータス(TAG−S2)913及び2次キャッシュメモリ(L2−CACHE)911に内蔵されるタグ・ステータス(TAG−S2)954は、アドレス0x100番地から始まる256Byteデータブロックに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他の3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)964、及び、2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)923、933、943はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における256Byteデータブロック応答の通常動作その2)
図10は、本発明の構成において256Byteデータブロックにより応答データを行う場合の通常動作その2を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9と同様である。
ここで図10において、リード・アクセス発生前の3次キャッシュメモリ(L3−CACHE)1051に内蔵されるタグ・ステータス(TAG−S1)1053は全てのビットにおいて有効ステータス(Vステータス)を保持し、さらに、3次キャッシュメモリ(L3−CACHE)1061に内蔵されるタグ・ステータス(TAG−S1)1063、及び、各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S1)1012、1022、1032、1042は全て無効ステータス(Iステータス)を保持しており、CPU−0 1001からのリード要求の対象であるアドレス0x100番地からの64Byteデータブロックを含む256Byteデータブロックが3次キャッシュメモリ(L3−CACHE)1051のみに有効に存在する場合を表す。
この場合には、CPU−0 1001に内蔵される2次キャッシュメモリ(L2−CACHE)1011からのアドレス0x140番地に対するリード要求1091を受信したシステムコントローラ−0(SC−0)1005は、データ応答制御部(DATA−REPLY CONTROL BLOCK)1052に向けて、アドレス0x100番地から始まる256Byteデータブロック1092による応答データを送信する。さらに、システム・コントローラLSI−0(SC−0)1005に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1052は、前記256Byteデータブロックによる応答データ1095をCPU−0 1001に内蔵されている2次キャッシュメモリ(L2−CACHE)1011へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の2次キャッシュメモリ(L2−CACHE)1011に内蔵されるタグ・ステータス(TAG−S2)1013は、アドレス0x100番地からの256Byteに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1054、1064、及び、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1023、1033、1043はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における64Byteデータブロック応答の通常動作その1)
図11は、本発明の構成において64Byteデータブロックにより応答データを行う場合の通常動作その1を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9及び図10と同様である。
ここで図11は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックが他CPUの2次キャッシュメモリ(L2−CACHE)内に有効に存在する場合を表す。
この場合には、CPU−0 1101に内蔵される2次キャッシュメモリ(L2−CACHE)1111からのアドレス0x140番地に対するリード要求1191を受信したシステムコントローラ−0(SC−0)1105は、アドレス0x140から始まる有効な64Byteデータブロックを保持しているCPU−1102が内蔵している2次キャッシュ(L2−CACHE)1121に対するリード要求1192を発行し、前記リード要求1192に対応する64Byteデータブロックによる応答データ1193をデータ応答制御部(DATA−REPLY CONTROL BLOCK)1152が受信する。さらに、前記データ応答制御部(DATA−REPLY CONTROL BLOCK)1152は、前記64Byteデータブロック1194により、CPU−0 1101に内蔵されている2次キャッシュ(L2−CACHE)1111へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の2次キャッシュメモリ(L2−CACHE)1111に内蔵されるタグ・ステータス(TAG−S2)1112は、アドレス0x140番地からの64Byteに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1154、1164、及び、他の2次キャッシュメモリ(L2−CACHE)1061のタグ・ステータス(TAG−S2)1123、1133、1143はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における64Byteデータブロック応答の通常動作その2)
図12は、本発明の構成において64Byteデータブロックにより応答データを行う場合の通常動作その2を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図11と同様である。
ここで図12は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックがどの2次キャッシュメモリ(L2−CACHE)内にも存在しないが、他の64Byteデータブロックのいずれかが2次キャッシュメモリ(L2−CACHE)に存在し、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)内に有効に存在する場合を表す。
この場合には、CPU−0 1201に内蔵される2次キャッシュメモリ(L2−CACHE)1211からのアドレス0x140番地に対するリード要求1291を受信したシステムコントローラ−0(SC−0)1205は、データ応答制御部(DATA−REPLY CONTROL BLOCK)1252に向けて、アドレス0x140番地から始まる64Byteデータブロック1292による応答データを送信する。さらに、システム・コントローラLSI−0(SC−0)1205に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1252は、前記64Byteデータブロックによる応答データ1293をCPU−0 1201に内蔵されている2次キャッシュメモリ(L2−CACHE)1211へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の2次キャッシュメモリ(L2−CACHE)1211に内蔵されるタグ・ステータス(TAG−S2)1212は、アドレス0x140番地からの64Byteに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1254、1264、及び、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1223、1233、1243はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における64Byteデータブロック応答の通常動作その3)
図13は、本発明の構成において64Byteデータブロックにより応答データを行う場合の通常動作その3を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図12と同様である。
ここで図13は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックがどの2次キャッシュメモリ(L2−CACHE)内及び3次キャッシュメモリ(L3−CACHE)内にも存在しないが、他の64Byteデータブロックのいずれかが2次キャッシュメモリ(L2−CACHE)内に有効に存在する場合を表す。
この場合には、CPU−0 1301に内蔵される2次キャッシュメモリ(L2−CACHE)1311からのアドレス0x140番地に対するリード要求1391を受信したシステムコントローラ−0(SC−0)1305は、メインメモリ−0(MEM−0)1307に向けて、アドレス0x140番地に対する64Byteサイズのリード要求1392を生成し、メインメモリ−0(MEM−0)は前記リード要求アドレスに対して64Byteデータブロックによる応答データ1393を送信する。
さらに、システム・コントローラLSI−0(SC−0)1305に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1352は、前記64Byteデータブロックによる応答データ1394をCPU−0 1301に内蔵されている2次キャッシュメモリ(L2−CACHE)1311へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の3次キャッシュメモリ(L3−CACHE)1351に内蔵されるタグ・ステータス(TAG−S2)1313及び2次キャッシュメモリ(L2−CACHE)1311に内蔵されるタグ・ステータス(TAG−S2)1354は、アドレス0x140番地から始まる64Byteデータブロックに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他の3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1364、及び、2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1323、1333、1343はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における64Byteデータブロック応答の通常動作その4)
図14は、本発明の構成において64Byteデータブロックにより応答データを行う場合の通常動作その4を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図13と同様である。
ここで図14は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在しないが、リード要求の対象である64Byteデータブロック及び他のいずれかの64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合を表す。
この場合には、CPU−0 1401に内蔵される2次キャッシュメモリ(L2−CACHE)1411からのアドレス0x140番地に対するリード要求1491を受信したシステムコントローラ−0(SC−0)1405は、データ応答制御部(DATA−REPLY CONTROL BLOCK)1452に向けて、アドレス0x140番地から始まる64Byteデータブロック1492による応答データを送信する。さらに、システム・コントローラLSI−0(SC−0)1405に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1452は、前記64Byteデータブロックによる応答データ1493をCPU−0 1401に内蔵されている2次キャッシュメモリ(L2−CACHE)1411へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の2次キャッシュメモリ(L2−CACHE)1411に内蔵されるタグ・ステータス(TAG−S2)1412は、アドレス0x140番地からの64Byteに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1454、1464、及び、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1423、1433、1443はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における64Byteデータブロック応答の通常動作その5)
図15は、本発明の構成において64Byteデータブロックにより応答データを行う場合の通常動作その3を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図14と同様である。
ここで図15は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックも3次キャッシュメモリ(L3−CACHE)に存在しないが、他の64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合を表す。
この場合には、CPU−0 1501に内蔵される2次キャッシュメモリ(L2−CACHE)1511からのアドレス0x140番地に対するリード要求1591を受信したシステムコントローラ−0(SC−0)1505は、メインメモリ−0(MEM−0)1507に向けて、アドレス0x140番地に対する64Byteサイズのリード要求1592を生成し、メインメモリ−0(MEM−0)は前記リード要求アドレスに対して64Byteデータブロックによる応答データ1593を送信する。
さらに、システム・コントローラLSI−0(SC−0)1505に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1552は、前記64Byteデータブロックによる応答データ1594をCPU−0 1501に内蔵されている2次キャッシュメモリ(L2−CACHE)1511へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の3次キャッシュメモリ(L3−CACHE)1551に内蔵されるタグ・ステータス(TAG−S2)1513及び2次キャッシュメモリ(L2−CACHE)1511に内蔵されるタグ・ステータス(TAG−S2)1554は、アドレス0x140番地から始まる64Byteデータブロックに対応するビットにおいて、無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、他の3次キャッシュメモリ(L3−CACHE)のタグ・ステータス(TAG−S2)1564、及び、2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1523、1533、1543はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における256Byteデータブロック応答のマージ動作その1)
図16は、本発明の構成において256Byteデータブロックにより応答データを行う場合の特殊動作その1を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図15と同様である。
図16は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に存在しないが、他の64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。
ここで図16において、リード・アクセス発生前の3次キャッシュメモリ(L3−CACHE)1651に内蔵されるタグ・ステータス(TAG−S1)1653は、CPU−0 1601からのリード要求の対象であるアドレス0x140番地からの64Byteデータブロックを含む256Byteデータブロックのうち、リード要求の対象であるアドレス0x140番地からの64Byteデータブロックは無効ステータス(Iステータス)を保持するが、いずれかの他の64Byteデータブロックに対するビットが有効ステータス(Vステータス)を保持し、さらに3次キャッシュメモリ(L3−CACHE)1661に内蔵されるタグ・ステータス(TAG−S1)1663、及び、各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S1)1612、1622、1632、1642が全て無効ステータス(Iステータス)を保持しており、CPU−0 1601からのリード要求の対象であるアドレス0x140番地からの64Byteデータブロックがメインメモリ−0(MEM−0)1607のみに有効に存在する場合を表す。
この場合には、CPU−0 1601に内蔵される2次キャッシュメモリ(L2−CACHE)1611からのアドレス0x140番地に対するリード要求1691を受信したシステムコントローラ−0(SC−0)1605に内蔵される2次キャッシュメモリ(L2−CACHE)1651は、データ応答制御部(DATA−REPLY CONTROL BLOCK)1652に向けて、アドレス0x100番地から始まる64Byteデータブロック及びアドレス0x1C0番地から始まる64Byteデータブロックから構成される128Byteデータブロック1692による応答データを発行し、さらに、アドレス0x140から始まる64Byteデータブロック及びアドレス0x180から始まる64Byteデータブロックに対するリード要求1693をメインメモリ−0(MEM−0)1607に対して発行するとともに、対応する128Byteデータブロックから構成される応答データ1694を受信する。
さらに、システム・コントローラLSI−0(SC−0)1605に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1652は、前記L3キャッシュメモリ(L3−CACHE)1651から送出される128Byteデータブロックによる応答データ1692及び前記メインメモリ−0(MEM−0)から送出される128Byteデータブロックによる応答データ1694のマージを行い、256Byteデータブロックから構成される応答データ1695として、CPU−0 1601に内蔵されている2次キャッシュメモリ(L2−CACHE)1611へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の3次キャッシュメモリ(L3−CACHE)1651に内蔵されるタグ・ステータス(TAG−S2)1654は、全てのビットにおいて無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、また、2次キャッシュメモリ(L2−CACHE)1611に内蔵されるタグ・ステータス(TAG−S2)1613は、全てのビットにおいて無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、さらには、3次キャッシュメモリ(L3−CACHE)1661のタグ・ステータス(TAG−S2)1664、及び、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1623、1633、1643はいずれもリード・アクセス発生前の状態から変化しない。
(本発明の実施の形態における256Byteデータブロック応答のマージ動作その2)
図17は、本発明の構成において256Byteデータブロックにより応答データを行う場合の特殊動作その2を示す。システムボード−0(SB−0)及びシステムボード−1(SB−1)上に実装される各LSIの構成は、図9乃至図16と同様である。
図17は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に存在しないが、同一の256Byteデータエントリにおける他の64Byteデータブロックが他のシステム・コントローラ(SC)内の3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。
ここで図17において、リード・アクセス発生前の3次キャッシュメモリ(L3−CACHE)1751に内蔵されるタグ・ステータス(TAG−S1)1753は、CPU−0 1701からのリード要求の対象であるアドレス0x140番地からの64Byteデータブロックを含む256Byteデータブロックのうち、リード要求の対象であるアドレス0x140番地からの64Byteデータブロックは無効ステータス(Iステータス)を保持するが、いずれかの他の64Byteデータブロックに対するビットが有効ステータス(Vステータス)を保持し、さらに3次キャッシュメモリ(L3−CACHE)1761に内蔵されるタグ・ステータス(TAG−S1)1763、及び、各2次キャッシュメモリ(L2−CACHE)に内蔵されるタグ・ステータス(TAG−S1)1712、1722、1732、1742が全て無効ステータス(Iステータス)を保持しており、CPU−0 1701からのリード要求の対象であるアドレス0x140番地からの64Byteデータブロックがメインメモリ−0(MEM−0)1707のみに有効に存在する場合を表す。
この場合には、CPU−0 1701に内蔵される2次キャッシュメモリ(L2−CACHE)1711からのアドレス0x140番地に対するリード要求1791を受信したシステムコントローラ−0(SC−0)1705は、システムコントローラ−1(SC−1)に向けて、アドレス0x100番地から始まる64Byteデータブロック及びアドレス0x1C0番地から始まる64Byteデータブロックから構成される128Byteデータブロック1792に対するリード要求1792を発行し、前記リード要求1792に対応する128Byteデータブロックから構成される応答データを受信し、さらには、アドレス0x140から始まる64Byteデータブロック及びアドレス0x180から始まる64Byteデータブロックに対するリード要求1794をメインメモリ−0(MEM−0)1707に対して発行し、対応する128Byteデータブロックから構成される応答データ1795を受信する。
さらに、システム・コントローラLSI−0(SC−0)1705に内蔵されるデータ応答制御部(DATA−REPLY CONTROL BLOCK)1752は、前記L3キャッシュメモリ(L3−CACHE)1761から送出される128Byteデータブロックによる応答データ1793及び前記メインメモリ−0(MEM−0)から送出される128Byteデータブロックによる応答データ1795のマージを行い、256Byteデータブロックから構成される応答データ1796として、CPU−0 1701に内蔵されている2次キャッシュメモリ(L2−CACHE)1711へ送信することにより、リード・アクセスを完了する。
ここで、リード・アクセス完了後の3次キャッシュメモリ(L3−CACHE)1751に内蔵されるタグ・ステータス(TAG−S2)1754は、アドレス0x140番地からの64Byteデータブロック及びアドレス0x180番地からの64Byteデータブロックに対応するビットにおいて無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、また、2次キャッシュメモリ(L2−CACHE)1711に内蔵されるタグ・ステータス(TAG−S2)1713は、全てのビットにおいて無効ステータス(Iステータス)から有効ステータス(Vステータス)へと変化し、さらに、3次キャッシュメモリ(L3−CACHE)1761のタグ・ステータス(TAG−S2)1764、及び、他の2次キャッシュメモリ(L2−CACHE)のタグ・ステータス(TAG−S2)1723、1733、1743はいずれもリード・アクセス発生前の状態から変化しない。
以上、図16及び図17の動作説明により、3次キャッシュメモリ(L3−CACHE)を内蔵するメモリ制御装置において、CPUから自システムボード(SB)内のシステム・コントローラ(SC)に発行したリード要求に対する応答データがメインメモリ(MEM)及び他のシステムボード(SB)上のシステム・コントローラ(SC)内の3次キャッシュメモリ(L3−CACHE)等に分散して存在している場合に、CPUからのリード要求に対する応答として、3次キャッシュメモリ(L3−CACHE)及びメインメモリ等の複数の記憶装置からデータを同時に受信してマージすることにより、一度のアクセスで必要なデータをCPUの2次キャッシュメモリに格納を行うことができ、無駄なアクセスが発生しないことが明確である。
以上、本発明にかかる実施の形態及びその動作について図面を参照して説明して詳述してきたが、具体的な構成例はこれら実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
以下に本発明を付記する。
(付記1)
第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され、いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記リード要求対象のデータブロックの格納場所及び前記データブロックが属するエントリに含まれるその他のデータブロックの格納場所に対して、それぞれリード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
(付記2)
第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
(付記3)
第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
第2のキャッシュメモリと、
前記CPUが有する第1のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第1のタグメモリと、
前記第2のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第2のタグメモリとを有し、
前記第1及び第2のタグメモリの内容と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
(付記4)
前記制御部は、
前記複数の格納場所からそれぞれ送出される複数のデータブロックを受信し、前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置。
(付記5)
前記メモリ制御装置は、
直接接続されるCPUから発行されるリード要求に対応するデータブロックが属するエントリに含まれるその他のデータブロックのうち、すくなくとも1つのデータブロックが前記第2のキャッシュメモリに格納されているときには,前記データブロックを前記複数の格納場所から送出されたデータブロックとを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置。
(付記6)
情報処理装置において、
少なくとも1つのCPUと、
前記CPUに設けられ、複数のデータブロックから構成される複数のエントリを有する第1のキャッシュメモリと、
メインメモリと、
前記CPUからのリード要求を処理する少なくとも1つのメモリ制御装置と、
前記メモリ制御装置に設けられ、複数のデータブロックから構成される複数のエントリを有する第2のキャッシュメモリとを有し、
前記メモリ制御装置は、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれる他のデータブロックが、複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とする情報処理装置。
(付記7)
前記情報処理装置は、
複数のメモリ制御装置を有し、
一のメモリ制御装置は、
他のメモリ制御装置に接続されるCPUからのリード要求が発行された場合には、
前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と前記他のメモリ制御装置に接続されるCPUからのリード要求とを比較することにより、当該要求に対応するデータブロックの格納場所の検査を行い、
前記検査の結果、前記データブロック及び前記データブロックが属するエントリに含まれるその他のデータブロックのうち、少なくとも1つのデータブロックが前記メモリ制御装置に接続されたCPUに設けられた第1のキャッシュメモリ又は前記メモリ制御装置に設けられた第2のキャッシュメモリに格納されているときには、前記データブロックを前記他のメモリ制御装置に送出することを特徴とする請求項6記載の情報処理装置。
(付記8)
前記情報処理装置は、
前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを前記メモリ制御装置が受信し、前記受信した複数のデータブロックを、前記メモリ制御装置が1つのエントリにマージして前記CPUに送出することを特徴とする請求項6記載の情報処理装置。
(付記9)
少なくとも1つのCPUからのリード要求を実行するメモリ制御装置のメモリ制御方法において、
いずれかのCPUから発行されるリード要求を受信し、
前記CPU内のキャッシュメモリに含まれるデータブロックの有効状態及び前記メモリ制御装置内のキャッシュメモリに含まれるデータブロックの有効状態と、前記リード要求とを比較し、
前記比較の結果、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とするメモリ制御方法。
(付記10)
前記メモリ制御方法はさらに、
前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを受信し、
前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを有する特徴とする請求項9記載のメモリ制御方法。
(付記11)
前記情報処理装置は、
前記メモリ制御装置に直接接続されるCPUから発行されるリード要求に対応する有効データのうち、すくなくとも1つのデータブロックがメモリ制御装置の有するキャッシュメモリに格納されているときには,前記データブロックを前記複数の格納場所から送出されたデータブロックとを、前記メモリ制御装置が1つのエントリにマージして前記CPUに送出することを特徴とする請求項5又は6記載の情報処理装置。
(付記12)
前記情報処理装置は、
前記第1及び第2のタグメモリの内容と前記データ伝送路を介して他のメモリ制御装置に直接接続されるCPUから発行されるリード要求とを比較することにより、前記リード要求に対応する有効データの格納場所の検査を行う第2のパイプラインを前記メモリ制御装置に有し、
前記検査の結果、前記リード要求に対応する有効データのうち、少なくとも1つのデータブロックが自メモリ制御装置の有するキャッシュメモリに格納されているときには、前記メモリ制御装置が前記データブロックを前記他のメモリ制御装置に送出することを特徴とする請求項5乃至7記載の情報処理装置。
(付記13)
少なくとも1つのCPU及びメインメモリに直接接続されるととともにデータ伝送路を介して他のメモリ制御装置に接続され、エントリが複数のデータブロックから構成される第1のキャッシュメモリ及び前記データブロックの有効フラグを保持する第1のタグメモリを有し、前記データブロック又はエントリの単位により前記CPUからのリード要求を実行するメモリ制御装置において、
前記メモリ制御装置は、
前記直接接続される全てのCPUが有するタグメモリの内容をコピーして保持するものである第2のタグメモリと、
前記第1及び第2のタグメモリの内容と前記直接接続されるいずれかのCPUから発行されるリード要求とを比較することにより、前記リード要求に対応する有効データの格納場所の検査を行う第1のパイプラインとを有し、
前記検査の結果、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とするメモリ制御装置。
図1は、1データエントリが複数のデータブロックから構成されるキャッシュメモリのデータ格納例を示す図である。 図2は、3次キャッシュメモリを有しない従来構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも全ての2次キャッシュメモリ(L2−CACHE)内に有効に存在しない場合のリード・アクセス動作を示す図である。 図3は、3次キャッシュメモリを有しない従来構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックが他CPUの2次キャッシュメモリ(L2−CACHE)内に有効に存在する場合のリード・アクセス動作を示す図である。 図4は、3次キャッシュメモリを有しない従来構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックがどの2次キャッシュメモリ(L2−CACHE)にも存在しないが、同一256Byteデータエントリの他の64Byteデータブロックがいずれかの2次キャッシュメモリ(L2−CACHE)内に有効に存在する場合のリード・アクセス動作を示す図である。 図5は、クロスバ・スイッチLSI(XB)及びシステム・コントローラLSI(SC)及びI/Oシステム・コントローラLSI(IOSC)を使用したコンピュータシステムの全体ハードウェア構成例を示す図である。 図6は、システム・コントローラLSI(SC)を実装するシステムボード(SB)のハードウェア構成例を示す図である。 図7は、システム・コントローラLSI(SC)のブロック図を示す図である。 図8は、システム・コントローラLSI(SC)に内蔵されるデータ応答制御部のブロック図を示す図である。 図9は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも全ての3次キャッシュメモリ(L3−CACHE)内及び全ての2次キャッシュメモリ(L2−CACHE)内に有効に存在しない場合のリード・アクセス動作を示す図である。 図10は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも全ての2次キャッシュメモリ(L2−CACHE)内に存在せず、全ての64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)内に有効に存在する場合のリード・アクセス動作を示す図である。 図11は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックが他CPUの2次キャッシュメモリ(L2−CACHE)内に有効に存在する場合のアクセス動作を示す図である。 図12は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックがどの2次キャッシュメモリ(L2−CACHE)内にも存在しないが、他の64Byteデータブロックのいずれかが2次キャッシュメモリ(L2−CACHE)に存在し、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)内に有効に存在する場合のアクセス動作を示す図である。 図13は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、リード要求の対象である64Byteデータブロックがどの2次キャッシュメモリ(L2−CACHE)内及び3次キャッシュメモリ(L3−CACHE)内にも存在しないが、他の64Byteデータブロックのいずれかが2次キャッシュメモリ(L2−CACHE)に有効に存在する場合のアクセス動作を示す図である。 図14は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在しないが、リード要求の対象である64Byteデータブロック及び他のいずれかの64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。 図15は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックも3次キャッシュメモリ(L3−CACHE)に存在しないが、他の64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。 図16は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に存在しないが、他の64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。 図17は、本発明の構成において、CPUからのリード要求の対象である64Byteデータブロックを含む256Byteデータエントリのうち、どの64Byteデータブロックも2次キャッシュメモリ(L2−CACHE)に存在せず、リード要求の対象である64Byteデータブロックが3次キャッシュメモリ(L3−CACHE)に存在しないが、他の64Byteデータブロックが他のシステム・コントローラ(SC)内の3次キャッシュメモリ(L3−CACHE)に有効に存在する場合のアクセス動作を示す図である。
符号の説明
101 キャッシュメモリエントリ
102 アドレスブロック
103 64ByteデータブロックのタグVALID
201 CPU−0
205 システム・コントローラ−0(SC−0)
207 メインメモリ(MEM)
211 2次キャッシュメモリ(L2−CACHE)
212 256ByteデータエントリのタグVALID(リード要求実行前)
213 256ByteデータエントリのタグVALID(リード要求実行後)
251 データ応答制御部
291 CPU発行のリード要求
293 システム・コントローラ(SC)発行のリード要求
294 メインメモリ(MEM)送出の応答データ
295 システム・コントローラ(SC)送出の応答データ
501 バックプレーン(BP)
502 システムボード(SB)
504 I/Oボード(IOB)
511 クロスバ・スイッチLSI(XB)
521 システム・コントローラLSI(SC)
541 I/Oシステム・コントローラLSI(IOSC)
561 コネクタ
621 CPU
631 メモリ・コントローラLSI(MAC)
641 メモリ・モジュール(DIMM)
702 データ応答制御部
711 リクエスト・ポート−0(RQPT−0)
715 マルチプレクサ
716 システムボード・ポート−0(SBPT−0)
721 クロスバ・リクエスト・バッファ(XBRQ)
722 ローカル・アクセス・パイプライン(LOCAL−PIPELINE)
721 2次キャッシュ・タグメモリのコピー(L2−TAG2)
724 3次キャッシュ・タグメモリ(L3−TAG)
725 グローバル・アクセス・パイプライン(GLOBAL−PIPELINE)
731 オーダ・キュー−0(ODRQ−0)
735 ロード・キュー(LOADQ)
741 メモリ・ストレージ・キュー−0(MSQ−0)
751 リード・ポート(RDPT)
752 3次キャッシュメモリ・パイプライン(L3DT−PIPE)
754 3次キャッシュメモリ
756 ムーブ・イン・データ・キュー(MIDQ)
811 ステージング・ラッチ
822 リード・ポート(RD−PORT)
824 ライト・ポート(WR−PORT)
825 出力レジスタ
827 コンパレータ(COMPARE)
829 デコーダ(DECODE)
841 CPUリクエスト制御部(CPU REQUEST CONTROL)
842 メモリリクエスト制御部(MEM REQUEST CONTROL)
843 タグメモリ制御部
951 3次キャッシュメモリ(L3−CACHE)
1092 3次キャッシュメモリ送出の応答データ

Claims (10)

  1. 第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され、いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
    第2のキャッシュメモリと、
    前記リード要求対象のデータブロックの格納場所及び前記データブロックが属するエントリに含まれるその他のデータブロックの格納場所に対して、それぞれリード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
  2. 第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
    第2のキャッシュメモリと、
    前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
  3. 第1のキャッシュメモリを有する少なくとも1つのCPUと、メインメモリとに接続され,いずれかのCPUからのリード要求に対する処理を行うメモリ制御装置であって、
    第2のキャッシュメモリと、
    前記CPUが有する第1のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第1のタグメモリと、
    前記第2のキャッシュメモリ内に含まれる各データブロックの有効状態を記憶する第2のタグメモリとを有し、
    前記第1及び第2のタグメモリの内容と、前記いずれかのCPUからのリード要求とを比較し、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、前記それぞれの格納場所に対して、リード要求を発行する制御部とを有することを特徴とするメモリ制御装置。
  4. 前記制御部は、
    前記複数の格納場所からそれぞれ送出される複数のデータブロックを受信し、前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置。
  5. 前記メモリ制御装置は、
    直接接続されるCPUから発行されるリード要求に対応するデータブロックが属するエントリに含まれるその他のデータブロックのうち、すくなくとも1つのデータブロックが前記第2のキャッシュメモリに格納されているときには,前記データブロックを前記複数の格納場所から送出されたデータブロックとを1つのエントリにマージして前記CPUに送出することを特徴とする請求項1記載のメモリ制御装置。
  6. 情報処理装置において、
    少なくとも1つのCPUと、
    前記CPUに設けられ、複数のデータブロックから構成される複数のエントリを有する第1のキャッシュメモリと、
    メインメモリと、
    前記CPUからのリード要求を処理する少なくとも1つのメモリ制御装置と、
    前記メモリ制御装置に設けられ、複数のデータブロックから構成される複数のエントリを有する第2のキャッシュメモリとを有し、
    前記メモリ制御装置は、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれる他のデータブロックが、複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とする情報処理装置。
  7. 前記情報処理装置は、
    複数のメモリ制御装置を有し、
    一のメモリ制御装置は、
    他のメモリ制御装置に接続されるCPUからのリード要求が発行された場合には、
    前記第1及び第2のキャッシュメモリにおけるデータブロックの有効状態と前記他のメモリ制御装置に接続されるCPUからのリード要求とを比較することにより、当該要求に対応するデータブロックの格納場所の検査を行い、
    前記検査の結果、前記データブロック及び前記データブロックが属するエントリに含まれるその他のデータブロックのうち、少なくとも1つのデータブロックが前記メモリ制御装置に接続されたCPUに設けられた第1のキャッシュメモリ又は前記メモリ制御装置に設けられた第2のキャッシュメモリに格納されているときには、前記データブロックを前記他のメモリ制御装置に送出することを特徴とする請求項6記載の情報処理装置。
  8. 前記情報処理装置は、
    前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを前記メモリ制御装置が受信し、前記受信した複数のデータブロックを、前記メモリ制御装置が1つのエントリにマージして前記CPUに送出することを特徴とする請求項6記載の情報処理装置。
  9. 少なくとも1つのCPUからのリード要求を実行するメモリ制御装置のメモリ制御方法において、
    いずれかのCPUから発行されるリード要求を受信し、
    前記CPU内のキャッシュメモリに含まれるデータブロックの有効状態及び前記メモリ制御装置内のキャッシュメモリに含まれるデータブロックの有効状態と、前記リード要求とを比較し、
    前記比較の結果、前記リード要求に対応するデータブロック及び当該データブロックが属するエントリに含まれるその他のデータブロックが複数の格納場所に分散して格納されているときには、それぞれの格納場所に対してリード要求の発行を行うことを特徴とするメモリ制御方法。
  10. 前記メモリ制御方法はさらに、
    前記複数の格納場所からそれぞれ送出され、前記メモリ制御装置が発行したリード要求に対応するデータブロックを受信し、
    前記受信した複数のデータブロックを1つのエントリにマージして前記CPUに送出することを有する特徴とする請求項9記載のメモリ制御方法。

JP2004260347A 2004-09-08 2004-09-08 メモリ制御装置及び制御方法 Withdrawn JP2006079218A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004260347A JP2006079218A (ja) 2004-09-08 2004-09-08 メモリ制御装置及び制御方法
US11/142,358 US20060053255A1 (en) 2004-09-08 2005-06-02 Apparatus and method for retrieving data from a data storage system
EP05015360A EP1638003A3 (en) 2004-09-08 2005-07-14 Apparatus and method for retrieving data from a data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004260347A JP2006079218A (ja) 2004-09-08 2004-09-08 メモリ制御装置及び制御方法

Publications (1)

Publication Number Publication Date
JP2006079218A true JP2006079218A (ja) 2006-03-23

Family

ID=35519748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004260347A Withdrawn JP2006079218A (ja) 2004-09-08 2004-09-08 メモリ制御装置及び制御方法

Country Status (3)

Country Link
US (1) US20060053255A1 (ja)
EP (1) EP1638003A3 (ja)
JP (1) JP2006079218A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム
WO2011148482A1 (ja) * 2010-05-27 2011-12-01 富士通株式会社 情報処理システム及びシステムコントローラ
JP2017040973A (ja) * 2015-08-17 2017-02-23 富士通株式会社 演算処理装置および演算処理装置の制御方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008543945A (ja) * 2005-06-22 2008-12-04 ミリアド ジェネティクス, インコーポレイテッド 抗ウイルス化合物
WO2008115281A2 (en) * 2006-10-16 2008-09-25 Myriad Genetics, Inc. Compounds for treating viral infections
US8225043B1 (en) * 2010-01-15 2012-07-17 Ambarella, Inc. High performance caching for motion compensated video decoder
US8959291B2 (en) * 2010-06-04 2015-02-17 Lsi Corporation Two-port memory capable of simultaneous read and write
US8831986B2 (en) * 2010-06-30 2014-09-09 Ebay Inc. Fees and foreign currency exchange calculation
CN106657356A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种云存储系统的数据写入方法、装置及云存储系统
US11409684B2 (en) * 2020-07-31 2022-08-09 Alibaba Group Holding Limited Processing accelerator architectures
US11625341B2 (en) 2020-08-11 2023-04-11 Alibaba Group Holding Limited Narrow DRAM channel systems and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US6292705B1 (en) * 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
US7467323B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Data processing system and method for efficient storage of metadata in a system memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム
WO2011148482A1 (ja) * 2010-05-27 2011-12-01 富士通株式会社 情報処理システム及びシステムコントローラ
JP5348320B2 (ja) * 2010-05-27 2013-11-20 富士通株式会社 情報処理システム及びシステムコントローラ
KR101413787B1 (ko) 2010-05-27 2014-06-30 후지쯔 가부시끼가이샤 정보 처리 시스템 및 시스템 컨트롤러
US8856457B2 (en) 2010-05-27 2014-10-07 Fujitsu Limited Information processing system and a system controller
JP2017040973A (ja) * 2015-08-17 2017-02-23 富士通株式会社 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
EP1638003A2 (en) 2006-03-22
US20060053255A1 (en) 2006-03-09
EP1638003A3 (en) 2008-07-30

Similar Documents

Publication Publication Date Title
US11693791B2 (en) Victim cache that supports draining write-miss entries
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US6223258B1 (en) Method and apparatus for implementing non-temporal loads
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
EP1638003A2 (en) Apparatus and method for retrieving data from a data storage system
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6574710B1 (en) Computer cache system with deferred invalidation
US8261019B2 (en) Conveying critical data in a multiprocessor system
JPH07253928A (ja) 2重化キャッシュ・スヌープ機構
JPH10143482A (ja) エフィシェントな書込み動作を実行するマルチプロセッサ・システム
WO1995025306A2 (en) Distributed shared-cache for multi-processors
JPH10143476A (ja) プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム
JP4667092B2 (ja) 情報処理装置、情報処理装置におけるデータ制御方法
US7383397B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
US20190155729A1 (en) Method and apparatus for improving snooping performance in a multi-core multi-processor
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP4882233B2 (ja) メモリ制御装置及び制御方法
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
CN114787784A (zh) 扩展对某些请求的一致性保护的高速缓存窥探模式
Mounes-Toussi et al. Write buffer design for cache-coherent shared-memory multiprocessors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100215