JP3360700B2 - 多重プロセッサ・システム - Google Patents

多重プロセッサ・システム

Info

Publication number
JP3360700B2
JP3360700B2 JP14043494A JP14043494A JP3360700B2 JP 3360700 B2 JP3360700 B2 JP 3360700B2 JP 14043494 A JP14043494 A JP 14043494A JP 14043494 A JP14043494 A JP 14043494A JP 3360700 B2 JP3360700 B2 JP 3360700B2
Authority
JP
Japan
Prior art keywords
data
cache
processor
processors
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.)
Expired - Fee Related
Application number
JP14043494A
Other languages
English (en)
Other versions
JPH0756813A (ja
Inventor
マイケル・トーマス・ダィブリノ
ドワイン・アラン・ヒックス
ジョージ・マックネイル・ラティモア
キミング・ケー・ソー
ハナア・ユーセフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0756813A publication Critical patent/JPH0756813A/ja
Application granted granted Critical
Publication of JP3360700B2 publication Critical patent/JP3360700B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多重プロセッサ・シス
テム内で使用するための複数のプロセッサによって共有
されたキャッシュに係り、更に詳細に説明すれば、各マ
シン・サイクル(キャッシュ・サイクル=CPUサイク
ル)当たり1つのロード又はストア要求を処理すること
ができる共有キャッシュに係る。このような改良を実現
するため、インタリービング、パイプライン化、バース
ト・モード論理、並びに複数のデータ/アドレス/要求
ポートといった、性能を強化するための諸技術が組み合
わせて利用されている。
【0002】
【従来の技術】通常の多重プロセッサ・システムでは、
単一プロセッサ・システム内で使用されるものよりも大
容量を有するキャッシュを設計するのが普通である。こ
のことは、多重プロセッサ・システム上で実行される殆
どのアプリケーションが、単一プロセッサ・システム上
で実行されるアプリケーションよりも大量のデータ処理
を必要とするという事実に起因している。大容量のキャ
ッシュに伴う問題は、比較的長い信号伝播(遅延)時間
が存在し、データ・アドレスをデコードするのに比較的
多い論理レベルが必要となるため、キャッシュのアクセ
ス時間が増加することにある。かくて、キャッシュの設
計者は、十分に大きなキャッシュ容量を提供するのと同
時に、システム性能を最適化することによって、多重プ
ロセッサ・システム上で実行されるアプリケーションの
要求を満足させなければならない。
【0003】IBM Technical Disclosure Bulletin, Vo
l. 34, No. 1, June 1991 には、各プロセッサごとにそ
れぞれ設けられた専用のL1キャッシュと、複数のプロ
セッサによって共有されたL2キャッシュとを備えた、
多重プロセッサ・システム用のメモリ階層が開示されて
いる。一のラインがL2キャッシュからL1キャッシュ
にロードされる場合、L1キャッシュ内のその位置が記
録されるようになっている。これは、L2ディレクトリ
を探索することなく、この記録された位置を使用して、
後続のストア動作のためにL2キャッシュをアクセスで
きるようにするためである。
【0004】米国特許第4371929号は、主メモリ
に対する制御可能なキャッシュ・インタフェースを備え
た多重プロセッサ・システムにおいて、この主メモリを
複数のパーティションに分割し且つこれらのパーティシ
ョンを共通バス上で時分割多重化(インタリーブ)され
た態様でアクセスすることを開示している。これらのパ
ーティションは、各プロセッサに対応する各ホスト・ア
ダプタと一意的に関連している。かかるインタリーブさ
れたアクセス動作は、単一のホスト・プロセッサ−I/
Oチャネル転送期間中に、複数のホスト・プロセッサへ
のサービスを与えることを可能にする。しかし、キャッ
シュから主メモリへの完全なデータ・ブロック転送が開
始される場合は、この完全なデータ・ブロック転送と他
のデータ転送とをインタリーブさせることはできない。
かくて、幾つかのデータ転送は、完全なデータ・ブロッ
ク転送が終了するまで待機しなければならない。
【0005】米国特許第4056845号は、インタリ
ーブ動作又は非インタリーブ動作のために使用できるキ
ャッシュを開示している。米国特許第4445174号
は、それぞれ専用のL1キャッシュを備えた各プロセッ
サが、他のプロセッサとL2キャッシュ及び主メモリを
共有するようにした多重プロセッサ・システムを開示し
ている。米国特許第4905141号は、キャッシュを
複数のパーティションに分割するとともに、それぞれの
パーティションを互いに並列に且つ独立に動作させるよ
うにしたキャッシュ・システムが開示されている。この
キャッシュは、単一のマシン・サイクルの間に、互いに
独立した複数のキャッシュ動作を行うことができるよう
に、複数のポートを含んでいる。
【0006】前述のように、大容量のキャッシュに伴う
問題は、比較的長い信号伝播時間が存在し、データ・ア
ドレスをデコードするのに比較的多い論理レベルが必要
となるために、キャッシュのアクセス時間が増加するこ
とにある。この結果、増加したキャッシュ容量と引き替
えに、キャッシュのアクセス時間、即ち応答時間が増加
することになる。多重プロセッサ・システムを設計する
場合には、コンピュータ・アクセスの応答時間を減少さ
せることに加えて、キャッシュのサイクル時間(要求イ
ンターバル)の問題も考慮しなければならない。一のロ
ード又はストア要求を、キャッシュが各マシン・サイク
ルごとにサービス(処理)するのが望ましい。もし、こ
の性能が達成されたならば、このようなキャッシュは、
マシン・サイクルで測定されるような性能のレベルを維
持することができる。
【0007】多重プロセッサ・システムの性能を改良す
るのに利用された通常のキャッシュ設計技術は、キャッ
シュのインタリービングと複数のポートとの組み合わせ
のように、システムの性能を推進させることに向けられ
ている。インタリービングを利用すると、キャッシュの
異なったインタリーブ・セクション(キャッシュ・アレ
イ)内にあるデータを同時にアクセスすることが可能に
なる。更に、インタリービングを利用すると、データが
小さな複数のインタリーブ・セクション内に分散配置さ
れているために、同等の容量を有する非インタリーブ式
のキャッシュよりもアクセス時間が短くなるので、1ア
クセス当たりのキャッシュ応答時間が減少することにな
る。この場合、複数のインタリーブ・セクションからの
データが同時にアクセスされるから、要求元のプロセッ
サに至る並列のデータ通路が必要となり、かくてインタ
リーブ式キャッシュをサポートするために、キャッシュ
内の複数のポートが使用される。
【0008】本発明では、インタリービングと複数のポ
ートとの組み合わせが効果的に利用されている。しか
し、従来のシステムでは、各プロセッサは、各マシン・
サイクル中にキャッシュを同時にアクセスすることがで
きない。従って、本発明は、キャッシュが各プロセッサ
からの1つの要求を1マシン・サイクルでサービスでき
るように、他の性能改善技術を利用することによって、
システム全体の性能を顕著に向上させている。
【0009】
【発明が解決しようとする課題】本発明が従来の技術と
異なっているのは、多重プロセッサ・システム内の各プ
ロセッサからの要求を、L2キャッシュが1マシン・サ
イクルでサービスできるように、L2キャッシュのイン
タリービングと、複数のポートと、パイプライン化アー
キテクチャと、バースト・モード・アクセスの全てが効
果的に利用されている点である。
【0010】簡述すれば、本発明は、L2キャッシュを
アクセスする際に、最大の並列度で多重プロセッサ・シ
ステムをサポートするように、高性能のL2キャッシュ
を提供するものである。即ち、本発明の目的は、各マシ
ン・サイクル当たり1つのプロセッサ要求にサービスを
与えることによって、システムの応答時間を短縮し且つ
システムのスループットを向上させることにある。
【0011】
【課題を解決するための手段】従来のシステムは、その
性能を最適化するために前述の技術の全てを利用してい
ない。本発明は、L2キャッシュを最大限に共有すべ
く、インタリービング及び複数ポートの組み合わせに加
えて、追加の性能強化技術を利用する。本発明によれ
ば、従来の技術に比較して、システムの性能を、約1桁
ほど改善することができる。この性能上の最適化は、パ
イプライン化とバースト・モード・アクセスというシス
テム・アーキテクチャ技術を利用することによって達成
される。ビルトイン・パイプライン処理段階を含ませる
ことによって、L2キャッシュは、1マシン・サイクル
ごとに任意の1つのプロセッサからの要求にサービスを
与えることが可能となる。このように、L2キャッシュ
が、各マシン・サイクルごとに一のロード又はストア要
求を受信するのを可能にすると、システム・スループッ
トを顕著に改善することができるだけでなく、L2キャ
ッシュの利用率を100%近くまで保証することができ
る。第2に、本発明は、バースト・モード論理として知
られている後述の論理を使用することによって、総合的
なスループットを向上させることができる。
【0012】バースト・モードのデータ・アクセスにつ
いて説明すると、1回のキャッシュ・アクセス動作の間
に、最も幅の広いデータ(データ・ワード)をL2キャ
ッシュと授受することができる。このデータの1部分が
L2キャッシュの論理内に保持されている間、(システ
ム・バスの幅と等しい幅を有する)このデータの他の部
分が、1マシン・サイクルの間に要求元(プロセッサ又
はメモリ)に転送されるようになっている。次に、保持
されたデータの部分を、次のマシン・サイクルの間に転
送することができる。L2キャッシュと外部装置(例え
ば、プロセッサ及びメモリ)との間でデータを転送する
のに2マシン・サイクル以上を要することもあるが、L
2キャッシュとの実際のデータ転送は、単一のマシン・
サイクルの間に行うことができる。
【0013】複数のプロセッサによって共有されたL2
キャッシュの設計に、パイプライン化とバースト・モー
ドの技術を加えることによって、本発明は、マシン・サ
イクルを約44%ほど節約することを可能にする。この
数値は、次の仮定に基づいている。即ち、(1)プロセ
ッサからの一の要求を受信するのに、1マシン・サイク
ルを要し、(2)1つのインタリーブ・セクションに対
するキャッシュの待ち時間が、1マシン・サイクルであ
り、(3)このインタリーブ・セクションからアクセス
されたデータを供給し且つ要求元ポート用のデータ・ド
ライバを付勢するのに、1マシン・サイクルを要し、
(4)このデータを要求元プロセッサに転送するのに、
1マシン・サイクルを要する、ということである。これ
らの仮定が成立する場合、バースト・モード論理もパイ
プライン化も利用していない通常のキャッシュでは、4
L(但し、Lはシステム・バスの幅)に等しいビット幅
のデータをアクセスするのに16マシン・サイクルを要
するのに対し、バースト・モード論理とパイプライン化
を利用した本発明のキャッシュでは、同じデータをアク
セスするのに、7マシン・サイクルしか必要としない。
従って、7マシン・サイクルと16マシン・サイクルの
比率から明らかなように、システム性能が44%向上す
ることになる。
【0014】
【実施例】図1には、本発明に従った多重プロセッサ・
システムが示されている。図1において、プロセッサ3
〜3Xの各々は、IBM社によって製造・販売されてい
るRISCシステム/6000プロセッサのような中央
処理ユニット(CPU)を表している。これらのプロセ
ッサは、頻繁に用いられるデータをストアするために、
当該プロセッサ自体に設けられたL1キャッシュを含ん
でいる。本発明の実施例では、4個のプロセッサ3が用
いられているが、性能/コストのトレード・オフを条件
として、任意の数のプロセッサを本発明のL2キャッシ
ュ100に関連して用いることができる。
【0015】本発明のL2キャッシュ100は、N個の
インタリーブ・セクションを含んでいる。但し、Nは、
プロセッサの数Xと等しいか、又はそれよりも大きな正
の整数である。図1には、メモリ制御装置(MCU)1
0も示されている。データ用のアドレス/要求の形式を
有する制御信号は、プロセッサ3〜3Xから、制御線6
〜6Xを介して直接的に受信される。入力論理110
(図2及び図3)内の仲裁論理は、これらのプロセッサ
の要求を、目標のインタリーブ・セクション(例えば、
図2の101〜104)へ転送するのに用いられる。一
旦、このインタリーブ・セクションがアクセスされる
と、そこから検索されたデータは、出力論理150(図
2及び図3)を介して要求元プロセッサに送信される。
2つ以上のプロセッサ要求が競合(衝突)する場合、即
ち両方の要求が同一のサイクルの間に同一のインタリー
ブ・セクションを目標とする場合、唯1つの要求しかサ
ービスされない。どちらの要求がサービスされるかは、
最も長い間サービスされていなかった(least recently
serviced )特定のプロセッサからの要求を選択する処
の、仲裁論理内の状態マシンに基づいて決定される。こ
の場合、サービスされなかった要求は、MCU10内の
バッファ、ラッチなどで待ち行列化され、後の時点で、
制御線15を介してサービスされる。MCU10は、最
も長い間サービスされていなかった特定のプロセッサか
らの要求を決定することができるように、諸データ要求
(ロード及びストア要求)のディレクトリを保持してい
る。仲裁論理による選択は、最も長い間サービスされて
いなかった特定のプロセッサだけに基づいて行われる。
MCUのディレクトリ(要求の待ち行列)内で待ち行列
化された要求、例えば以前の仲裁の選択に敗れた要求に
は、諸プロセッサから直接的に受信される要求を上まわ
る優先順位が与えられる。本発明は、このように以前の
要求に優先順位を与えることによって、MCUのディレ
クトリが以前の要求によって充満されるにも拘わらず、
これらの要求が諸プロセッサらの新しい要求に敗れて
サービスされないままに留まる、という問題を解決して
いる。
【0016】また、本発明は、データがL2キャッシュ
100をバイパスしてプロセッサ3〜3Xの相互間で転
送できるようにするためのデータ通路(図2のデータ線
160)を設けることによって、キャッシュのインタリ
ーブ・セクションをアクセスすることに伴う遅延時間を
節約するとともに、このインタリーブ・セクションを異
なった要求元からの他のアクセスのために速やかに自由
にできるようにしている。このデータ通路は、MCU1
0内の論理によって制御され、制御線15を介してL2
キャッシュ100に与えられる。データ線7は、L2キ
ャッシュ100と主メモリ(図示せず)との間のデータ
通路である。一のプロセッサがL2キャッシュ100内
に存在しないデータを要求する場合、キャッシュ・ミス
が発生し、MCU10内の制御論理がこの要求を制御線
9を介して主メモリへ転送する。この要求について主メ
モリがアクセスされた後、主メモリからのデータは、入
力論理110及び出力論理150を使用して、L2キャ
ッシュ100を介して要求元プロセッサへ流れるように
なっている。即ち、このデータは、MCU10から制御
線15を介して与えられる制御信号の制御下で、L2キ
ャッシュ100の適当なインタリーブ・セクション内に
同時にストアされる。一のキャッシュ・ミスに関連する
主メモリからのデータ流は、前述のプロセッサ間のデー
タ流と類似している。主メモリの制御信号及びデータ流
は、L2キャッシュ100内の一のI/Oポートを通し
て、I/O装置に印加することができる。主メモリから
のデータの検索に係る前述の説明は、データ線7及び制
御線9の代わりにデータ線8及び制御線11が用いられ
ることを除けば、I/Oデータの転送にも当てはまる。
これらのI/O装置は、固定ディスク記憶装置や、SC
SIドライブ、通信ポートなどを含むことがある。
【0017】プロセッサ3及び3Xは、制御線6及び6
X、並びにデータ線5及び5Xによって、L2キャッシ
ュ100を通して種々のインタリーブ・セクションに相
互接続されている。かくて、データは、データ線5及び
5X、並びにL2キャッシュ100を通して、一方のプ
ロセッサから他方のプロセッサへ流れることができるか
ら、そのデータが存在する特定のインタリーブ・セクシ
ョンをアクセスすることに伴う遅延時間を節約すること
ができる。即ち、各プロセッサがデータを検索し且つこ
のデータを他のプロセッサに転送するための独立したロ
ード動作及びストア動作を実行せずとも、L2キャッシ
ュ100とこれらのプロセッサとの間でデータが流れ
る、ということである。制御線6及び6Xは、プロセッ
サ3とL2キャッシュ100との間のストア動作及びロ
ード動作を援助するように、タイミング信号などを与え
るために使用される。
【0018】データ線7は、L2キャッシュ100に相
互接続された主メモリとデータを授受するためのデータ
通路である。主メモリに接続された制御線9は、主メモ
リとL2キャッシュ100との間でデータを転送するの
に必要な制御信号を与える。更に、L2キャッシュ10
0とこれに相互接続された任意のI/O装置(図示せ
ず)との間で、データを転送することができる。これら
のI/O装置は、固定ディスク記憶装置や、SCSIド
ライブ、通信ポート、又はプロセッサ3とデータを授受
するような任意のI/O装置を含むことがある。制御線
11は、MCU10とこれに相互接続された種々のI/
O装置との間でデータを転送するのに必要な制御信号を
与える。
【0019】図2には、L2キャッシュ100の主要な
構成要素と、それらの構成要素の間のデータの論理的流
れが示されている。前述のように、L2キャッシュ10
0は、多重プロセッサ・システム内にあるX個のプロセ
ッサに対応して、X個のデータ入力ポートを有してい
る。更に、L2キャッシュ100は、N個のインタリー
ブ・セクションを含んでいる。但し、Nは、Xよりも大
きいか、又はXに等しい正の整数である(図2の例で
は、N及びXは、両者ともに4に等しい)。かくて、所
与の時間には、X個のプロセッサのうち任意の1つが、
N個のインタリーブ・セクションのうち任意の1つを独
立してアクセスすることができる。もし、NがXよりも
大きければ、各プロセッサは、各マシン・サイクルの間
に、一のインタリーブ・セクションを常にアクセスする
ことができる。他方、NがXよりも小さければ、少なく
とも1つプロセッサが、各マシン・サイクルの間に待機
しなければならない。
【0020】図7には、X個(図示の例では4個)のプ
ロセッサ3〜3Xと、N個(図示の例では5個)のイン
タリーブ・セクション101〜104とを有する多重プ
ロセッサ・システムが示されている。図7を参照する
と、4個のプロセッサ0〜3が、5個のインタリーブ・
セクション101〜Nとの間でデータをどのようにして
転送するか、そして各プロセッサが、各マシン・サイク
ルの間に、一のインタリーブ・セクションをどのように
してアクセスするかを理解することができる。もし、イ
ンタリーブ・セクションの数Nがプロセッサの数Xより
も小さければ、他のプロセッサがこれらのインタリーブ
・セクションをアクセスしている間、少なくとも1個の
プロセッサが待機状態に置かれることは明らかである。
かくて、よりも小さな場合には、L2キャッシュ
100は、各プロセッサからのデータ転送要求を各マシ
ン・サイクルごとにサービスすることはできない。従っ
て、本発明に従ったL2キャッシュ100の要件は、イ
ンタリーブ・セクションの数Nが、プロセッサの数Xよ
りも大きいか、又はこれに等しいことである。
【0021】図2を再び参照すると、本発明に従ったL
2キャッシュ100には、プロセッサP0〜Pxが接続
されている。入力論理110は、プロセッサ3によって
処理されたデータをL2キャッシュ100内にストアす
るのに必要な諸構成要素を含んでいる。これらの構成要
素は、レシーバや、データ・バッファ、データ選択用の
マルチプレクサ等である。入力論理110については、
図3を参照して詳述する。インタリーブ・セクション1
01〜104は、L2キャッシュ100内で明確な位置
を有している。本明細書で説明する多重プロセッサ・シ
ステムは、4個のプロセッサを備えているが、これは単
なる例示であって、他の数のプロセッサを有する多重プ
ロセッサ・システムも、本発明の範囲内にあることは明
らかである。例えば、4個のプロセッサを備えた多重プ
ロセッサ・システムにおいて、4メガバイトの総記憶容
量を有するL2キャッシュ100を用いると、優れた性
能を発揮することが分かった。この性能を達成するた
め、本発明の実施例では、L2キャッシュ100内の各
チップにそれぞれ4メガビットの記憶容量を与えるとと
もに、8個のチップを用いて所望の総記憶容量を得るよ
うにしている。8個のチップの各々が有する4メガビッ
トの記憶容量を、4個のインタリーブ・セクション10
1〜104にわたってそれぞれ分散配置することによっ
て、各インタリーブ・セクションが各チップごとに1メ
ガビットの記憶容量を有するようにすることができる。
実施例では、4個のプロセッサを備えた多重プロセッサ
・システムにおいて、8個のSRAMチップが使用され
た。L2キャッシュ100の記憶容量を前述のものより
も大きくするためには、次の2つのアプローチを採用す
ることができる。
【0022】 (1)L2キャッシュ100を構成する各チップごと
に、図2又は図3に示されているようなインタリーブ・
セクションを追加する。 (2)L2キャッシュ100を構成するチップ内部のイ
ンタリーブの数を変更することなく、チップ自体を追加
する。前記(1)のアプローチは、プロセッサから追加
のインタリーブ・セクションへのデータ・バスを設け且
つL2キャッシュ100を構成する各チップを内部的に
変更することを必要とするが、それぞれのプロセッサへ
のデータ・バス(図7を参照)には影響しない。他方、
前記(2)のアプローチは、追加されたチップをサポー
トするためにプロセッサからのデータ・バスを拡張する
ことを必要とするが、チップを内部的に変更する必要は
ない。
【0023】出力論理150は、L2キャッシュ100
内の複数のインタリーブ・セクション101〜104か
ら検索されたデータを受信するとともに、これを要求元
プロセッサに出力する。この出力論理150は、N組の
ハードウェア構成要素であって、バースト・モード論理
や、データ選択スイッチ、ラッチ、ロード・スイッチ、
レジスタ、ドライバ等を含んでいる。L2キャッシュ1
00内にあるN個のインタリーブ・セクションに対応し
て、出力論理150のN組のハードウェア構成要素が設
けられている。
【0024】図2から明らかなように、プロセッサ3〜
3Xが、L2キャッシュ100内にストアすべきデータ
を入力論理110に転送する場合、この入力論理110
は、当該データを処理するとともに、プロセッサ3〜3
Xのうち任意の1つ又はMCU10によって与えられた
アドレスに基づいて、当該データをデータ線105〜1
08を介して適当なインタリーブ・セクションに送信す
る。MCU10は、以前の仲裁の間に敗れたプロセッサ
要求、主メモリ要求、又はI/O要求のためのアドレス
だけを与える。一旦、当該データがL2キャッシュ10
0内にストアされた後に、当該データが検索され
は、一の要求元プロセッサが一のロード命令(もし、こ
のロード命令が仲裁の結果であれば、MCU10からの
ロード命令)をL2キャッシュ100に送信し、このロ
ード命令が入力論理110を通して転送される場合であ
る。かくて、目標のインタリーブ・セクション101〜
104がアクセスされると、そこにストアされていたデ
ータが、データ線111〜114を介して出力論理15
0に転送されることになる。次に、MCU10からの制
御信号の制御下で、このデータは、出力論理150から
データ線120〜120Xを通して要求元プロセッサ3
〜3Xに転送される。従って、図2を参照すると、イン
タリーブ・セクション101〜104は、複数のプロセ
ッサからのストア動作及びロード動作が並行的に生ずる
こと、即ち本発明に従ったパイプライン化によって、前
述の2つの動作をオーバラップさせ得ることが分かる。
【0025】次に、L2キャッシュ100内のデータ流
を示す図3を参照して、入力論理110及び出力論理1
50の個別的な構成要素を説明する。このデータ流は、
ストア用の待ち行列バッファ127へ入り、そこからス
トア・スイッチ128として構成されている複数のデー
タ選択スイッチ129に出力され、そこから更にインタ
リーブ・セクション101〜104に加えられる入力デ
ータを示している。一のロード動作の間、このデータ
は、選択されたインタリーブ・セクションからバースト
・モード論理200〜200nに供給され、そこからロ
ード・スイッチ205として構成されている複数のデー
タ選択スイッチ207に出力され、次に要求元プロセッ
サ3のデータ入力ポートに供給されるようになってい
る。待ち行列バッファ127、ストア・スイッチ12
8、インタリーブ・セクション101〜104を対象と
するロード動作及びストア動作、バースト・モード論理
208、ロード・スイッチ205及びドライバを付勢す
るための全ての制御信号は、MCU10から与えられる
ようになっている。
【0026】更に詳細に説明すると、プロセッサ3〜3
Xは、ビット幅Lの1データ・ワードをデータ線121
上に置くことによって、データをストアする。実施例に
おいて、1データ・ワードは40ビットの幅を有し、そ
のうちの32ビットはデータであり、8ビットはエラー
検査及び訂正(ECC)コードである。レシーバ123
は、データを受信し、これをラッチ124内にストアす
る。次のマシン・サイクルの間、このデータは、データ
線125を通して待ち行列バッファ127に転送され
る。このデータをストア・スイッチ128内にアンロー
ドし且つ次に目標のインタリーブ・セクション101〜
104内にアンロードするための制御信号がMCU10
から送信されるまで、このデータは、待ち行列バッファ
127内に保持される。
【0027】ここで留意すべきは、このストア・アドレ
スが、MCU10から制御線15を通してL2キャッシ
ュ100に与えられる、ということである。このよう
に、MCU10は、通常の状況下(一のプロセッサによ
るキャッシュ・アクセスの間)でアドレスを供給するば
かりでなく、仲裁や、主メモリのデータ転送や、I/O
データ転送が生ずる場合にもアドレスを供給し、更に、
待ち行列バッファ127内のデータをデータ選択スイッ
チ128に転送すべき時点を指令する制御信号も供給す
る。待ち行列バッファ127は、(1つのデータ・ポー
ト当たり1つの待ち行列バッファ、即ち全体としてX個
の待ち行列バッファが存在するように)L2キャッシュ
100内に設けられており、データがL1キャッシュ及
びL2キャッシュ100の両方に直接的にストアされる
ような、ストアスルー動作中に生じ得るストリーミング
・データを、L2キャッシュ100に吸収させる機能を
有している。待ち行列バッファ127は、Lビット幅の
データを受信し、このデータを蓄積するとともに、これ
を先入れ先出し(FIFO)アクセス・モードにおい
て、2Lビット幅(例えば、64ビットのデータと、1
6ビットのECCコードから成る80ビット)に拡張し
た上で、待ち行列バッファ127からアンロードする。
即ち、Lビット幅である第1のデータ部分が、バス12
5を介して1サイクル後に到着するLビット幅の第2の
データ部分と連結される、ということである。かくて、
MCU10から一の「アンロード・バッファ(アンロー
ド待ち行列バッファ)」コマンドが受信される場合、2
Lビット幅のデータ・ワードが、待ち行列バッファ12
7からアンロードされて、ストア・スイッチ128に入
力されることになる。
【0028】ここで理解すべきは、ストア動作の間に、
プロセッサ3〜3Xのうち任意の1つから受信されたデ
ータは、L2キャッシュ100のインタリーブ・セクシ
ョン101〜104のうち任意の1つにストアできる、
ということである。データは待ち行列バッファ127を
通してバッファされた後、例えば2Lビット幅に相当す
る比較的大きな細分性を以てインタリーブ・セクション
101〜104内にストアされる。その理由は、バース
ト・モード論理200が設けられているからである。プ
ロセッサ3〜3Xの各々は、対応するレシーバ123
と、待ち行列バッファ127と、当該プロセッサがL2
キャッシュ100内にストアすべきデータを受信するた
めの関連するデータ線を有している。図3を簡潔にする
ため、図3にはプロセッサ3(P0)に対応するこれら
の構成要素だけが示されているに過ぎないが、これらの
構成要素は各プロセッサごとに対応して設けられている
ことに留意すべきである。更に、以下の説明は、プロセ
ッサ3(P0)に関連する構成要素だけを対象とするに
過ぎないが、多重プロセッサ・システム内の各プロセッ
サが同じように動作することは容易に理解できる筈であ
る。
【0029】ストア・スイッチ128は、各待ち行列バ
ッファ127から40ビットのデータを先入れ先出し順
に受信した後、これをストアすべき実際のインタリーブ
・セクションへ経路指定することを含む、幾つかのスイ
ッチ機能を実行する。即ち、プロセッサ3から転送され
且つ待ち行列バッファ127内にストアされているデー
タを、インタリーブ・セクション104等にストアする
必要があるということである。ストア・スイッチ128
を構成するデータ選択スイッチ129〜129nは、こ
のスイッチ機能を与える。MCU10は、制御線15を
介してストア・スイッチ128へ一の制御信号を与える
ことにより、入力プロセッサからのデータを所望のイン
タリーブ・セクションへ送信する処の、データ選択スイ
ッチ129の1つを制御する。かくて、プロセッサ3〜
3Xからのデータは、データ・バス122〜122nを
通して、データ選択スイッチ129の任意の1つに入力
することができる。これらのデータ・バス122〜12
2nは、(プロセッサ3〜3Xに対応する)待ち行列バ
ッファ127〜127nの任意の1つからのデータをイ
ンタリーブ・セクション101〜104の任意の1つに
書き込むことができるように、プロセッサ3〜3Xの各
々とデータ選択スイッチ129〜129nの各々とをそ
れぞれ相互接続することができる。複数のデータ・バス
(データ・ポート)は、L2キャッシュ100内のI/
Oピンを節約するために、双方向ポートとして構成され
ている。各データ・ポートは、それに関連する一のアド
レス/要求ポートをそれぞれ有している。主メモリ及び
I/Oデータ転送用のアドレス/要求は、MCU10の
アドレス/要求ポート(図1の制御線15)を介して送
信される。
【0030】各インタリーブ・セクションごとに、1つ
のデータ選択スイッチ129がそれぞれ設けられてい
る。これらのデータ選択スイッチ129は、実際にはマ
ルチプレクサであって、(X個のプロセッサからの)X
個の入力信号のうち対応する1つの入力信号を、対応す
るインタリーブ・セクションへ通過させる。
【0031】本発明の実施例では、それぞれのインタリ
ーブ・セクションに与えられるデータは、80ビット幅
のデータ・ワードの形式を有している。これらの80ビ
ット・ワードは、2つの40ビット・ワードから成り、
各40ビット・ワードは、32ビットのデータと8ビッ
トのECCコード及びタグとを有している。前述のよう
に、Lビット幅のデータ・ワードは40ビットであると
考えることができるから、2Lは80ビット幅のデータ
・ワードを表している。4個のプロセッサを備えた多重
プロセッサ・システムには、(これらのプロセッサに対
応する)4個の待ち行列レジスタ127が存在する。従
って、図3のインタリーブ・セクション101〜104
の各々は、80ビット・ワード、即ち2Lビット幅のワ
ードを処理することができる。
【0032】ストア・スイッチ128内のデータ選択ス
イッチ129は、待ち行列バッファ127の各々から8
0ビット幅=2Lビット幅のデータ・ワードを1つず
つ、全体として4組の80ビット幅のデータ・ワードを
受信する。これらのデータ・ワードのうちどのデータ・
ワードがどのインタリーブ・セクションに書き込まれる
かに基づいて、MCU10は、制御線15を介して、ス
トア・スイッチ128に適当な制御信号を送信する。こ
の制御信号は、例えばプロセッサ3(P0)からのデー
タを、インタリーブ・セクション0(参照番号101)
内にストアさせるようなものである。2Lビット幅を有
するこれらのデータ・ワードは、データ線131〜13
1nを通して、インタリーブ・セクション101〜10
4内のそれぞれのポートに与えられる。かくて、本発明
のL2キャッシュ100は、異なったプロセッサ3〜3
Xからの80ビット幅のデータ・ワードを同時にストア
するための、複数のポートを含んでいることが分かる。
【0033】プロセッサ3〜3Xのうちの2個以上のプ
ロセッサが、インタリーブ・セクション101〜104
のうち同一のものを対象としてデータを同時にストアす
ることを試みる場合には、競合が生ずるのが普通であ
る。MCU10内の制御論理は、これらの競合が生ずる
のを防止する。なぜなら、ストア・スイッチ128内の
各データ選択スイッチ129が、別個の直交選択信号を
有していて、各インタリーブ・セクションごとに一時に
1つのストアしか許容しないからである。ここで留意す
べきは、如何なるデータも異なった2つのインタリーブ
・セクションに対し重複してストアされない、即ち各イ
ンタリーブ・セクションはL2キャッシュ100の全体
を通して一意的なデータを保持する、ということであ
る。
【0034】図4に示されている仲裁論理300は、
(競合の対象となっている)特定のインタリーブ・セク
ションを最も長い期間にわたってアクセスしていなかっ
たプロセッサだけにアクセス権を与えるために使用され
る。仲裁論理300については、図4を参照して以下で
詳述する。
【0035】前述の説明は、少なくとも1個のプロセッ
サが後に使用すべきデータをL2キャッシュ100内に
配置するような一のストア動作に関係している。これに
対し、ロード動作は、処理動作において用いるために、
本発明のL2キャッシュ100から以前にストアされた
データを検索することを含んでいる。各インタリーブ・
セクションへの入力データと同様に、各インタリーブ・
セクションからの出力データも2Lビット幅(80ビッ
ト・ワード)である。このようにすると、単一のキャッ
シュ・サイクルの間に、同じデータ量をL2キャッシュ
100にストアさせ且つL2キャッシュ100からロー
ドさせることができる。例えば、プロセッサ3にロード
すべきデータは、データ線133〜133nを通してイ
ンタリーブ・セクション101〜104から検索された
後、バースト・モード論理200〜200nに与えられ
る。
【0036】バースト・モード論理200〜200n
は、インタリーブ・セクション101〜104の各々か
らの80ビット・ワードを2つの40ビット・ワードに
分割することにより、40ビット幅のシステム・バスが
これを処理できるようにする。
【0037】プロセッサ3〜3Xのうち1つによってデ
ータが要求された場合、その目標のインタリーブ・セク
ションは、1つの80ビット・ワードをバースト・モー
ド論理200に出力する。この80ビット・ワードのう
ち第1の40ビット(下部データ)は、要求元プロセッ
サへの第1のデータとして、線206及びバースト・モ
ード論理200内のデータ選択スイッチ201を通して
転送され、他方、第2の40ビット(上部データ)は、
保持ラッチ203に与えられた後、次のサイクルの間に
出力される。バースト・モード論理200〜200nの
各々を構成するデータ選択スイッチ(マルチプレクサ)
201は、元の80ビット・ワードの40ビット部分の
1つ、例えばデータ線206〜206nからの第1の4
0ビットを選択するとともに、このデータが受信される
サイクルと同じサイクルの間に、当該バースト・モード
論理200を通してそのデータを送信する。バースト・
モード論理200の他の構成要素は、元の80ビット・
ワードのうち第2の40ビット部分をラッチするための
保持ラッチ203〜203nである。実施例では、デー
タ選択スイッチ201によって最初に選択されなかった
第2の40ビット部分は、データ線208〜208nを
介して保持ラッチ203内に保持されるようになってい
る。この第2の40ビット部分は、第1の40ビット部
分がロード・スイッチ205に通されるサイクルの後
の、次のマシン・サイクルの間に出力される。かくて、
各インタリーブ・セクションからの80ビット・ワード
は、連続的な2つの40ビット部分に直列化されること
になる。直列化されたこれらのデータ・ワードは、MC
U10からの制御信号によって制御される境界選択レジ
スタ207〜207nを通過される。境界選択レジスタ
207〜207nからのデータ・ワードは、ドライバ2
09〜209nを付勢することによって、キャッシュ・
チップから、データ・バス120〜120nを通してプ
ロセッサ・チップに転送される。境界選択レジスタ20
7からのデータ出力信号は、データ・バス120内に存
在する損失を補償するために、ドライバ209によって
増幅されなければならない。また、ドライバ209を付
勢するための制御信号は、データ・バス120の使用可
性をディレクトリ内に記録しているMCU10によっ
て与えられる。
【0038】前述のように、本発明のL2キャッシュ1
00は、インタリーブされた複数のポート及びパイプラ
イン化に加えて、バースト・モード論理を用いているの
で、各マシン・サイクルごとに1つのプロセッサ要求
(ロード又はストア要求)に対してサービスを与えるこ
とができる。
【0039】図4には、仲裁論理300を構成する状態
マシン301及びアドレス/要求の選択通路が示されて
いる。有効な要求信号310〜310nは、各要求元
(例えば、プロセッサ3〜3X又はMCU10)から受
信される1ビット信号である。要求開始の結果として、
1つ以上の有効な要求信号がアクティブになると、状態
マシン301は、選択信号線311〜311x上にアク
ティブな値(ハイ又はロー)を生成する。これらの選択
信号線311〜311xは、アドレス/要求信号線31
3〜313xの唯1つだけを選択するために用いられ
る。前述のように、この選択は、MCU10からの要求
が最高の優先順位を有する場合において、複数のプロセ
ッサ・ポートのうちで最も長い間サービスされていなか
った要求元のポートを基礎として行われる。マルチプレ
クサ303は、競合に勝ったアドレス/要求信号を線3
05を通して出力することにより、これをアクセスが所
望されている特定のインタリーブ・セクションに送信す
る。
【0040】仲裁論理300は、L2キャッシュ100
の入力論理110内に設けられており、MCU10内に
も重複化されている。かくて、プロセッサ3〜3xがデ
ータ・アクセスを必要とする場合、これらのプロセッサ
は、該当するアドレス/要求情報をL2キャッシュ10
0及びMCU10の両方に送信する。要求信号線310
〜310xは、どの要求元(プロセッサ)が有効なデー
タ転送要求を送信しているかを指示する情報を転送す
る。仲裁論理300内の状態マシン301は、特定のイ
ンタリーブ・セクションについて、要求信号線310〜
310xを介してプロセッサ3〜3xから受信した要求
信号の有効性を検査するとともに、これらの要求信号間
の競合を仲裁する。最も長い間サービスされていなかっ
た特定のプロセッサが、この仲裁に勝つようになってい
る。例えば、(有効な要求信号を転送している)要求信
号線310及び310xが両者ともにアクティブであっ
て、しかも要求信号線310xに対応するプロセッサ3
x(Px)が当該インタリーブ・セクションをアクセス
した最後のプロセッサであれば、要求信号線310に対
応するプロセッサ3(P0)がこの仲裁に勝ち、かくて
状態マシン301は選択信号線311上をアクティブに
する。状態マシン301が生成するこの選択信号は、複
数のプロセッサ3〜3xのうち1つが当該仲裁に勝った
ことを指示するとともに、このプロセッサからのアドレ
ス/要求信号を線305に出力させる。詳述すると、プ
ロセッサ3〜3Xからの実際のアドレス/要求信号は、
線313〜313x上に入力される。状態マシン301
からの選択信号がアクティブになると、これに対応する
アドレス/要求信号が選択され、マルチプレクサ303
を通して線305上に出力されることになる。かくて、
アクティブな選択信号は、マルチプレクサ303に対
し、アドレス/要求信号のうち特定の1つを通過させる
ように指示することによって、これに対応するプロセッ
サが所望のインタリーブ・セクションをアクセスできる
ようにする。次に、線313〜313xのうち1つから
のアドレス/要求信号が、線305を介して所望のイン
タリーブ・セクションに出力される。前述の例では、線
311がアクティブな選択信号を保持していたから、プ
ロセッサ3(P0)に対応する線313上のアドレス/
要求信号がマルチプレクサ303によって選択され、線
305を介してL2キャッシュ100内の所望のインタ
リーブに通過される。かくて、マルチプレクサ303か
らの選択されたアドレス/要求信号は、目標のインタリ
ーブ・セクションに対し、所望のアクセスを開始させ
る。他方、この仲裁に敗れたプロセッサに対応するアド
レス/要求信号(この例の場合は、線313x上のアド
レス/要求信号)は、MCU10内に設けられ且つ当該
プロセッサの要求用に指定された一の待ち行列バッファ
内にストアされる。このようにすると、後の時点で、M
CU10のアドレス/要求ポート(制御線15)を介し
て当該プロセッサ要求を与えることにより、所望のイン
タリーブ・セクションへのアクセスを再試行することが
できるからである。仲裁論理300は、MCU10から
の待ち行列化された要求が、次の選択ラウンドにおける
仲裁に勝つことを保証する。
【0041】図5には、2つのL2キャッシュの両方と
もバースト・モード論理を利用しておらず、一方のL2
キャッシュがパイプライン化され、他方のL2キャッシ
ュがパイプライン化されていない場合において、これら
のL2キャッシュの間に顕著なタイミング差が存在する
ことが示されている。パイプライン化とは、L2キャッ
シュ100の種々の段階において、データをバッファな
どにラッチする能力を意味する。パイプライン化を利用
すると、全体のプロセスが完了するのを待機することな
く、L2キャッシュ内にデータを入力することができ
る。即ち、L2キャッシュに入力されたデータは、その
内部にある種々の論理的な構成要素間で移動する際に、
ラッチ(保存)されるようになっており、従って既存の
データがL2キャッシュを通して移動するのと並行し
て、追加のデータを入力することができるのである。パ
イプライン化は、複数の論理ステップの実行をオーバラ
ップさせることによってスループットを改善するための
実現上の技術である。
【0042】図5において、論理的なパイプラインは、
次の4つの段階から成っている。 (1)アドレス/要求信号の到着及び仲裁 (2)インタリーブ・セクション(キャッシュ・アレ
イ)のアクセス (3)出力論理(バースト・モード論理) (4)要求元プロセッサへのデータ転送 タイミング図(A)は、バースト・モード論理もパイプ
ライン化も利用していないが、インタリービングを利用
したL2キャッシュに関するものである。図5の内容を
簡潔にするため、各段階は、1マシン・サイクルを要す
るものと仮定する。タイミング図(A)を参照すると、
パイプライン化アクセスを利用していないL2キャッシ
ュでは、第1のデータ要求が完全に終了するまで、第2
のデータ要求を開始することができないから、2つのデ
ータ転送要求をサービスするのに2倍のサイクル数、タ
イミング図(A)の例では、8サイクルを要することが
分かる。他方、タイミング図(B)は、バースト・モー
ド論理を利用していないが、パイプライン化及びインタ
リービングを利用したL2キャッシュに関するものであ
って、2つのデータ転送要求をオーバラップさせること
によって、これらの転送要求を5マシン・サイクルの間
に完了できることを示している。詳述すると、タイミン
グ図(A)において、サイクル1には、プロセッサから
キャッシュへアドレス/要求信号が送信され、サイクル
2には、インタリーブ・セクションがアクセスされ、サ
イクル3には、データが出力され、そしてサイクル4に
は、データがプロセッサに与えられる。サイクル5〜8
は、前述と同じプロセッサ又は多重プロセッサ・システ
ム内の他のプロセッサについての同じステップを示して
いる。このように、各々がLビット幅の2つのデータ・
ワードをプロセッサに与えるために、8マシン・サイク
ルが必要となる。
【0043】タイミング図(B)は、パイプライン化及
びインタリービングを利用したL2キャッシュについて
は、システムの性能が顕著に改善されることを示してい
る。パイプライン化の利点は、図5の2つのタイミング
図(A)及び(B)を比較すると、明らかである。即
ち、タイミング図(A)では、他のプロセッサが他のデ
ータ要求/アドレス動作を開始する前に、現データ要求
の全てのプロセスを完了しなければならない。これに対
し、タイミング図(B)では、パイプライン化を反映し
て、データが各段階の間で保存(ラッチ)されるように
なっているので、2つのアドレス/要求動作を並行し
て、即ちオーバラップされた態様で実行することができ
る。詳述すると、タイミング図(B)において、サイク
ル1には、第1のプロセッサが一のアドレスを要求し、
サイクル2には、インタリーブ・セクションをアクセス
する。これと同じサイクル2には、第2のプロセッサ
が、L2キャッシュ内の特定のインタリーブ・セクショ
ンに対する一のアドレスを要求する。サイクル3には、
第1のプロセッサにより要求されたデータがバースト・
モード論理内に置かれ、そして第2のプロセッサが特定
のインタリーブ・セクションをアクセスする。サイクル
4には、第1のプロセッサが要求済みのデータを受信
し、第2のプロセッサ用のデータがバースト・モード論
理内に置かれる。最後のサイクル5には、要求されたデ
ータが第2のプロセッサに与えられる。このように、パ
イプライン化を利用すると、オーバラップ動作が可能に
なるから、システムの性能を顕著に向上させることがで
きる。
【0044】図6には、バースト・モード論理を利用し
た場合の効果に焦点を合わせた、タイミング図(C)及
び(D)が示されている。タイミング図(C)には、バ
ースト・モード論理を利用しているが、パイプライン化
を利用していないL2キャッシュの動作が示されてお
り、この場合には、L2キャッシュが一のデータ転送要
求にサービスを与えるのに、5サイクルを要することが
分かる。しかし、この要求は、図5に示されている40
ビット・ワード(Lビット幅)とは異なり、その2倍の
80ビット・ワード(2Lビット幅)を対象とするもの
である。かくて、タイミング図(A)及び(C)を比較
すると、バースト・モード論理を利用しない場合には、
2Lビット幅のデータをアクセスするのに8マシン・サ
イクルを要するのに対し、バースト・モード論理を利用
する場合には、同じ量のデータ(2Lビット幅)をアク
セスするのに5サイクルしか要しないことが分かる。図
6のタイミング図(D)には、パイプライン化及びバー
スト・モード論理を両者ともに利用した場合の効果が示
されている。タイミング図(C)に示されているよう
に、パイプライン化を利用しないで、バースト・モード
論理だけを利用した場合には、4Lビット幅のデータ・
ワード(160ビット)に対する2つのデータ転送要求
にサービスを与えるのに、10マシン・サイクルを要す
る。しかし、L2キャッシュにおいて、パイプライン化
及びバースト・モード論理の両者を利用すると、2つの
4Lビット幅のデータ・ワードを転送するのに7マシン
・サイクルを要するに過ぎない。タイミング図(D)の
斜線部分は、データ・バスが、一の時点でLビット幅の
データしか転送できないことを示している。
【0045】前述の事項を一層詳細に説明すると、タイ
ミング図(C)では、バースト・モード論理が利用され
ているが、パイプライン化は利用されていない。サイク
ル1には、一のプロセッサがL2キャッシュに対して一
のアドレス/要求信号を送信する。サイクル2には、イ
ンタリーブ・セクションがアクセスされ、そしてサイク
ル3には、2Lビット幅のデータがバースト・モード論
理内に置かれる。サイクル4及び5には、このデータが
前記プロセッサに与えられる。この場合において、与え
られたデータ・ワードの各々は、L2キャッシュ内にス
トアされている2Lビット幅のデータ・ワードと等価の
データを与えるために、それぞれLビット幅を有してい
る。サイクル6〜10は、同じプロセッサ又は多重プロ
セッサ内の他のプロセッサに対し2Lビット幅のデータ
を与えるために、前述のものと同じステップを用いる。
他方、タイミング図(D)は、L2キャッシュ内のデー
タをアクセスするのに必要なサイクル数を更に減少させ
るために、パイプライン化とバースト・モード論理の組
み合わせを利用している。サイクル1には、一のプロセ
ッサが一のアドレス/要求信号を特定のインタリーブ・
セクションに送信する。サイクル2には、このインタリ
ーブ・セクションがアクセスされ、そして同じプロセッ
サ又は他のプロセッサからL2キャッシュに対し他のア
ドレス/要求信号が送信される。サイクル3には、第1
の要求データがバースト・モード論理内に置かれ、第2
の要求データがアクセスされる。サイクル4には、(第
1の要求データのうち)Lビット幅の第1のデータ・ワ
ードが第1の要求プロセッサに与えられ、それと同時
に、第2の要求データがバースト・モード論理内に置か
れる。サイクル5には、(第1の要求データのうち)L
ビット幅の第2のデータ・ワードが第1の要求プロセッ
サに与えられる。サイクル6には、(第2の要求データ
のうち)Lビット幅の第1のデータ・ワードが要求プロ
セッサに与えられ、サイクル7には、Lビット幅の第2
のデータ・ワードが要求プロセッサに与えられる。この
ように、タイミング図(D)を参照すると、一のプロセ
ッサからL2キャッシュに一のアドレス/要求信号が送
信されてから、L2キャッシュからのデータが与えられ
るまでに、4サイクルを要するに過ぎないことが分か
る。
【0046】要約すると、図5のタイミング図(A)で
は、合計4Lビット幅のデータ・ワードに対するデータ
要求を完了するのに、16サイクルを必要とする。しか
し、パイプライン化及びバースト・モード論理を両者と
もに利用すると、図6のタイミング図(D)に示されて
いるように、同じビット数のデータ(4Lビット)を7
マシン・サイクルでアクセスすることができる。
【0047】かくて、4個のプロセッサを備えた多重プ
ロセッサ・システムにおいて、本発明のパイプライン化
及びバースト・モード処理技術を利用すると、サイクル
4から始まる各マシン・サイクルごとに一のプロセッサ
要求にサービスを与えることができる。図6では、4L
ビット幅のデータが各プロセッサに与えられるのに対
し、図5では、2Lビット幅のデータが各プロセッサに
与えられることに留意されたい。図6から明らかなよう
に、パイプライン化とバースト・モード論理を利用する
と、各プロセッサは、2倍の量のデータを少ないサイク
ル数でキャッシュからアクセスすることができる。
【0048】
【発明の効果】以上のように、本発明によれば、多重プ
ロセッサ・システム内の各プロセッサによるアクセス動
作に最大の並列性を与え、各マシン・サイクルごとに1
つのプロセッサ要求を処理し、システムの応答時間を減
少し、システムのスループットを増加するような高性能
のL2キャッシュを提供することができる。
【図面の簡単な説明】
【図1】本発明のL2キャッシュ及びメモリ制御装置を
含む多重プロセッサ・システムを示すブロック図であ
る。
【図2】複数のデータ・ポート及びインタリーブ・セク
ションのような主要な構成要素から成る本発明のL2キ
ャッシュの構成を示すブロック図である。
【図3】L2キャッシュの諸構成要素と、L2キャッシ
ュのデータ流とを示すブロック図である。
【図4】複数の要求が同一のインタリーブ・セクション
に同時に向けられている場合において、一の要求を選択
し且つその目標とするインタリーブ・セクションのアク
セスを開始させるための仲裁論理を示すブロック図であ
る。
【図5】パイプライン化を利用していないキャッシュ
と、パイプライン化を利用しているキャッシュとの間
の、タイミングの著しい相異を示すための論理的なタイ
ミング図である。
【図6】バースト・モード論理を利用しているがパイプ
ライン化を利用していないキャッシュと、バースト・モ
ード論理及びパイプライン化との両方を利用しているキ
ャッシュとの間の、タイミングの相異を示す論理的なタ
イミング図である。
【図7】多重プロセッサ・システム内の各プロセッサが
本発明のL2キャッシュ内の個々のインタリーブ・セク
ションをアクセスする態様を示す高レベルのブロック図
である。
【符号の説明】
3〜3X プロセッサ 10 メモリ制御装置(MCU) 100 nウェイのインタリーブされた共有
(L2)キャッシュ 101〜104 インタリーブ・セクション 110 入力論理 127 待ち行列バッファ 128 ストア・スイッチ 129〜129n データ選択スイッチ 150 出力論理 200〜200n バースト・モード論理 201〜201n データ選択スイッチ 203〜203n 保持ラッチ 205 ロード・スイッチ 207〜207n 境界選択レジスタ 300 仲裁論理 301 状態マシン 303 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・トーマス・ダィブリノ アメリカ合衆国 テキサス州、オースチ ン、ウィスパリング・バレー・ドライブ 4901 (72)発明者 ドワイン・アラン・ヒックス アメリカ合衆国 テキサス州、セダー・ パーク、デイフラワー・トレイス 1810 (72)発明者 ジョージ・マックネイル・ラティモア アメリカ合衆国 テキサス州、オースチ ン、ウェスターカーク・ドライブ 9108 (72)発明者 キミング・ケー・ソー アメリカ合衆国 テキサス州、オースチ ン、ロックレブン・ループ 9021 (72)発明者 ハナア・ユーセフ アメリカ合衆国 テキサス州、オースチ ン、グレート・ヒルズ・トレイル、ナン バー・フォーハンドレッドトゥエンティ ーセブン 90009 (56)参考文献 特開 昭54−66727(JP,A) 特開 平2−178754(JP,A) 特開 昭63−214849(JP,A) 特開 平2−207351(JP,A) 特開 昭58−109952(JP,A) 特開 平1−315849(JP,A) 国際公開92/22031(WO,A1)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、前記複数のプロセッ
    サによって用いられるデータをストアするためのパイプ
    ライン制御されたキャッシュと、前記複数のプロセッサ
    と前記キャッシュとの間でデータを転送するための1デ
    ータ・ワードに等しい幅を有するシステム・バスとを備
    えた多重プロセッサ・システムであって、 前記キャッシュは、前記複数のプロセッサが前記キャッ
    シュを同時にアクセスできるように、各々が入力ポート
    及び出力ポートをそれぞれ有し且つ複数のデータ・ワー
    ドに等しいデータ幅をそれぞれ有する複数のインタリー
    ブ・セクションから構成されており、 更に、前記複数のプロセッサから前記システム・バスを
    介して前記キャッシュへ転送される入力データを各プロ
    セッサ別にデータ・ワード単位で順次にストアするため
    の保持手段、前記各インタリーブ・セクションのデータ
    幅に等しくなるように前記順次にストアされた複数の隣
    接データ・ワードを組み合わせるための手段、及び前記
    組み合わされたデータ・ワードを前記複数のインタリー
    ブ・セクションのうち目標とする一のインタリーブ・セ
    クションに供給するための手段を含んでいる入力論理
    段と、 前記キャッシュから読み取られた前記組み合わされたデ
    ータ・ワードを個々のデータ・ワードに分離するための
    分離手段、及び前記分離されたデータ・ワードの各々を
    前記システム・バスを介して要求元のプロセッサに順次
    に送出するための送出手段を含んでいる出力論理手段
    と、 前記複数のプロセッサのうち2個以上のプロセッサの要
    が前記複数のインタリーブ・セクションのうち1つの
    インタリーブ・セクションに対して同時にアクセスを要
    求する場合、当該1つのインタリーブ・セクションを最
    も長い間アクセスしていなかったプロセッサの要求に対
    し、前記1つのインタリーブ・セクションをアクセスす
    るための優先順位を与えるための仲裁手段とを備え、 前記仲裁手段は、現選択ラウンドにおける仲裁に敗れた
    プロセッサの要求を次の選択ラウンドに参加させるため
    に一旦待ち行列バッファ内にストアし、次の選択ラウン
    ドにおいて他のプロセッサから直接的に受け取られる要
    求に与えられる 優先順位を上まわる優先順位を前記待ち
    行列バッファからの前記仲裁に敗れたプロセッサの要求
    に与えて次の選択ラウンドの仲裁を行うように構成され
    ている ことを特徴とする、多重プロセッサ・システム。
JP14043494A 1993-08-02 1994-06-22 多重プロセッサ・システム Expired - Fee Related JP3360700B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US101144 1993-08-02
US08/101,144 US5581734A (en) 1993-08-02 1993-08-02 Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity

Publications (2)

Publication Number Publication Date
JPH0756813A JPH0756813A (ja) 1995-03-03
JP3360700B2 true JP3360700B2 (ja) 2002-12-24

Family

ID=22283231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14043494A Expired - Fee Related JP3360700B2 (ja) 1993-08-02 1994-06-22 多重プロセッサ・システム

Country Status (3)

Country Link
US (1) US5581734A (ja)
EP (1) EP0637799A3 (ja)
JP (1) JP3360700B2 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983327A (en) * 1995-12-01 1999-11-09 Nortel Networks Corporation Data path architecture and arbitration scheme for providing access to a shared system resource
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5838631A (en) 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5960453A (en) * 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM
US5860107A (en) * 1996-10-07 1999-01-12 International Business Machines Corporation Processor and method for store gathering through merged store operations
JPH10214225A (ja) * 1996-10-31 1998-08-11 Texas Instr Inc <Ti> キャッシュ読み出し時間を短縮したマイクロプロセッサ回路、システムおよび方法
KR100240572B1 (ko) * 1996-12-05 2000-01-15 윤종용 프로그램 메모리를 공유하는 멀티 프로세서 시스템
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US5966547A (en) * 1997-01-10 1999-10-12 Lsi Logic Corporation System for fast posting to shared queues in multi-processor environments utilizing interrupt state checking
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6341301B1 (en) 1997-01-10 2002-01-22 Lsi Logic Corporation Exclusive multiple queue handling using a common processing algorithm
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6115320A (en) 1998-02-23 2000-09-05 Integrated Device Technology, Inc. Separate byte control on fully synchronous pipelined SRAM
DE19809640A1 (de) * 1998-03-06 1999-09-09 Pact Inf Tech Gmbh Geschwindigkeitsoptimiertes Cachesystem
US6154769A (en) * 1998-03-27 2000-11-28 Hewlett-Packard Company Scheduling server requests to decrease response time and increase server throughput
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US6233655B1 (en) * 1998-04-30 2001-05-15 International Business Machines Corporation Method for Quad-word Storing into 2-way interleaved L1 cache
US6249851B1 (en) * 1998-08-25 2001-06-19 Stmicroelectronics, Inc. Computer system having non-blocking cache and pipelined bus interface unit
US6173367B1 (en) * 1999-05-19 2001-01-09 Ati Technologies, Inc. Method and apparatus for accessing graphics cache memory
US8230411B1 (en) * 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US7069406B2 (en) 1999-07-02 2006-06-27 Integrated Device Technology, Inc. Double data rate synchronous SRAM with 100% bus utilization
US6886063B1 (en) * 1999-11-10 2005-04-26 Digi International, Inc. Systems, devices, structures, and methods to share resources among entities
US6810432B1 (en) * 2000-04-03 2004-10-26 Hewlett-Packard Development Company, L.P. Method for guaranteeing a device minimun bandwidth on a usb bus
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6892266B2 (en) * 2000-11-15 2005-05-10 Texas Instruments Incorporated Multicore DSP device having coupled subsystem memory buses for global DMA access
US6988167B2 (en) * 2001-02-08 2006-01-17 Analog Devices, Inc. Cache system with DMA capabilities and method for operating same
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6687791B2 (en) * 2002-01-07 2004-02-03 Sun Microsystems, Inc. Shared cache for data integrity operations
US6931576B2 (en) * 2002-01-07 2005-08-16 Sun Microsystems, Inc. Data integrity device providing heightened error protection in a data processing system
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
EP2043000B1 (de) 2002-02-18 2011-12-21 Richter, Thomas Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7328314B2 (en) * 2002-06-19 2008-02-05 Alcatel-Lucent Canada Inc. Multiprocessor computing device having shared program memory
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7240168B2 (en) * 2004-03-10 2007-07-03 Intel Corporation Method and system to order memory operations
DE102004055013A1 (de) * 2004-11-15 2006-05-24 Infineon Technologies Ag Computereinrichtung
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US8219761B2 (en) * 2005-11-17 2012-07-10 Freescale Semiconductor, Inc. Multi-port high-level cache unit and a method for retrieving information from a multi-port high-level cache unit
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
WO2009062496A1 (de) * 2007-11-17 2009-05-22 Pact Xpp Technologies Ag Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit
US8332590B1 (en) 2008-06-25 2012-12-11 Marvell Israel (M.I.S.L.) Ltd. Multi-stage command processing pipeline and method for shared cache access
JP5482145B2 (ja) * 2009-11-25 2014-04-23 富士通株式会社 演算処理装置および演算処理装置の制御方法
US20110197031A1 (en) * 2010-02-05 2011-08-11 Nokia Corporation Update Handler For Multi-Channel Cache
US9720834B2 (en) 2015-12-11 2017-08-01 Oracle International Corporation Power saving for reverse directory
US9971691B2 (en) * 2016-09-12 2018-05-15 Intel Corporation Selevtive application of interleave based on type of data to be stored in memory
US10805421B2 (en) 2018-04-03 2020-10-13 Citrix Systems, Inc. Data caching for cloud services
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
JPS5454536A (en) * 1977-10-08 1979-04-28 Fujitsu Ltd Data processor
JPS5466727A (en) * 1977-11-07 1979-05-29 Fujitsu Ltd Access control system for buffer memory
US4195342A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Multi-configurable cache store system
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
JPS58109952A (ja) * 1981-12-23 1983-06-30 Fujitsu Ltd 記憶アクセス処理装置
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4527238A (en) * 1983-02-28 1985-07-02 Honeywell Information Systems Inc. Cache with independent addressable data and directory arrays
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
US4941088A (en) * 1985-02-05 1990-07-10 Digital Equipment Corporation Split bus multiprocessing system with data transfer between main memory and caches using interleaving of sub-operations on sub-busses
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
JP2561261B2 (ja) * 1987-02-18 1996-12-04 株式会社日立製作所 バッファ記憶アクセス方法
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
JPH01315849A (ja) * 1988-06-16 1989-12-20 Nec Corp 情報処理装置
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5386537A (en) * 1991-03-28 1995-01-31 Minolta Camera Kabushiki Kaisha System with reduced instruction set processor accessing plural memories at different speeds using bank interleaving
AU3330793A (en) * 1991-12-23 1993-07-28 Intel Corporation Interleaved cache for multiple accesses per clock in a microprocessor
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems

Also Published As

Publication number Publication date
US5581734A (en) 1996-12-03
EP0637799A3 (en) 1997-04-02
EP0637799A2 (en) 1995-02-08
JPH0756813A (ja) 1995-03-03

Similar Documents

Publication Publication Date Title
JP3360700B2 (ja) 多重プロセッサ・システム
US6178466B1 (en) System for maximizing bandpass on an interface directly coupling two units where the interface has independently operative data and address interconnections, and computer sysem employing same.
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
KR100278035B1 (ko) 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법
US6226722B1 (en) Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US5870625A (en) Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
JPH0756815A (ja) キャッシュ動作方法及びキャッシュ
JPH0642225B2 (ja) Dma機能を有する計算機システム
US6654834B1 (en) Method and apparatus for data transfer employing closed loop of memory nodes
US20110087836A1 (en) Storage unit and memory system
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US6101589A (en) High performance shared cache
US20050246481A1 (en) Memory controller with command queue look-ahead
US6427189B1 (en) Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline
US5636364A (en) Method for enabling concurrent misses in a cache memory
JP2716350B2 (ja) 電子データ記憶システム
US6904474B1 (en) Using write request queue to prevent bottlenecking on slow ports in transfer controller with hub and ports architecture
US7136972B2 (en) Apparatus, system, and method for distributed management in a storage system
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
JPH04280347A (ja) 高速バス装置
US7031337B2 (en) Data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート

Legal Events

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