JPH113281A - 回路,ネットワーク、及びメモリ内の無効アドレス変換をチェックする方法 - Google Patents

回路,ネットワーク、及びメモリ内の無効アドレス変換をチェックする方法

Info

Publication number
JPH113281A
JPH113281A JP9186075A JP18607597A JPH113281A JP H113281 A JPH113281 A JP H113281A JP 9186075 A JP9186075 A JP 9186075A JP 18607597 A JP18607597 A JP 18607597A JP H113281 A JPH113281 A JP H113281A
Authority
JP
Japan
Prior art keywords
address
address translation
bus
coupled
cam
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9186075A
Other languages
English (en)
Inventor
John E Watkins
ジョン・イー・ワトキンズ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH113281A publication Critical patent/JPH113281A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 システム・ソフトウェアは、余計なフラッシ
ュ動作に関連したコードを除いたり前もってコード下さ
れなかった必要なフラッシュ動作をサポートするコード
を加えたりするためにシステム及びコード分析を必要と
する。 【解決手段】 フラッシュ制御回路(700)は、アド
レス変換をアドレス変換ユニット内のメモリへロードす
る前に、複数のエントリのうちの1つが前記アドレス変
換で利用された仮想ページ番号を既に含んでいるかどう
かを決定するように構成されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データ転送分
野、特にアドレス変換ユニットに含まれたアドレス変換
を元へ戻すための回路及び方法に関するものである。
【0002】
【従来の技術】ここ10年以上の間、物理アドレスを使
用する直接メモリ・アクセス(DMA)の代わりに、仮
想アドレスを使用する直接仮想メモリ・アクセス(DV
MA)により主メモリにアクセスする入/出力(I/
O)デバイスで多数のシステム・アーキテクチャが開発
された。DVMAに関連した1つの利点はI/Oデバイ
スによるデータ・アクセスの簡単化だった。例えば、D
MAによりメモリにアクセスするI/Oデバイス(DM
A I/Oデバイス)は、多数の潜在的に不連続な物理
ページにデータを“ばらまく”(割当てる)だけでなく
データを“寄せ集める”ように、制御されなければなら
ない。長さ1ページを超えるデータを寄せ集めること
は、一群の不連続物理ページにアクセスすることで通常
は行われる。これとは対照的に、DVMAにより主メモ
リにアクセスするI/Oデバイス(DVMA I/Oデ
バイス)は、データ・アクセスが連続仮想ページによっ
て行われるので、そのような制御を要しない。
【0003】DVMAシステムはこの“ばらまき−寄せ
集め”問題を簡単にしたが、このシステムには、主メモ
リからデータにアクセスされる前に、DVMA I/O
デバイスから出され、物理アドレスに変換される仮想ア
ドレスが必要である。図1に示したように、従来のDV
MAシステム100はI/Oメモリ管理ユニット(I/
O MMU)110(これは時にはI/Oアドレス変換
バッファと称される)を利用して、仮想アドレスを主メ
モリ120の利用する物理アドレスに変換する。図示の
ように、I/O MMU110は、I/Oバス140と
システム・バス150を結合するブリッジ・エレメント
130内で実施される。
【0004】代表的な例では、I/O MMU110
は、制限された数“r”のアドレス変換を含むように構
成して、最少の付加コストでシステム性能を上げるよう
にしている。複数のI/O DVMAデバイス1601
−160i (ただし、iは全部の数であって、i≧2)
は、システム性能を下げることなく多くても“r”仮想
ページを集合的に使用するように制限される。もしリク
エストされたアドレス変換がI/O MMU110内に
ないならI/O MMU“ミス”となり、リクエストさ
れたアドレス変換は全ての潜在的アドレス変換を含む主
メモリ120からフェッチされなければならない。もち
ろん、そのようなフェッチはシステム性能を下げる。
【0005】マルチメディア通信の緊急性により、ネッ
トワークは多くのデータ・タイプをサポートすることが
今では必要とされている。その結果、ネットワーク構築
者は、その努力を非同期転送モード(ATM)・ネット
ワークに集中しようとしている。ATMネットワークで
は、大くの仮想チャネル、多分数百は同時に動作中であ
り得る。従って、もしDVMAシステム100がI/O
ネットワーク・インターフェイス論理装置170に結合
されたATMネットワークをサポートするように配置さ
れるならば、主メモリ120からのアドレス変換の過剰
フェッチによって性能がかなり低下することになる。
【0006】性能の実質的な低下を避けるために、アド
レス変換ユニット(ATU)はネットワーク・インター
フェイス回路(NIC)内で設けられても良い。ATU
は一組の仮想対物理アドレス変換を含み、I/O MM
Uをバイパスする能力を与える。これらアドレス変換は
変更されるので、現在の変換つまり活動中の変換を反映
しないアドレス変換を除去するため、“フラッシュ”動
作を必要とする。これはコヒーレンシイを維持するのに
必要である。
【0007】
【発明が解決しようとする課題】システム・ソフトウェ
アは、フラッシュ動作を発してこれを制御することの責
任を通常持っているが、余計なフラッシュ動作に関連し
たコードを除いたり前もってコード化されなかった必要
なフラッシュ動作をサポートするコードを加えたりする
ために集中的なシステム及びコード分析を必要とする。
そのような集中的なシステム及びコード分析は一般に行
きわたっており、性能の欠陥が製品の成功に実質的な悪
影響を及ぼし得る時に、特に開発中及び市場での初期布
置中良く行われる。
【0008】従って、特定の仮想ページに新しいアドレ
ス変換をロードする前にATU中に前記ページが在るこ
とをチェックすることにより、システム・ソフトウェア
を少なくとも支援するためのハードウェア回路装置を開
発するのは好都合である。この回路装置はミスしたソフ
トウェア・フラッシュ動作を検出する。これはシステム
・ソフトウェアの開発中特に有用である。
【0009】
【課題を解決するための手段】この発明は、アドレス変
換中にアドレス変換ユニットへロードする前に、アドレ
ス変換に関連した仮想ページ番号がアドレス変換ユニッ
トのメモリ中にまだ含まれているかどうかを決定するよ
うに形成されるフラッシュ・チェック回路に関するもの
である。このフラッシュ・チェック回路はシステム・ソ
フトウェアを助けてミスしたソフトウェア・フラッシュ
動作を検出する。そのような動作はシステムの開発中特
に有用である。
【0010】
【発明の実施の形態】この発明の特色や利点は、この発
明の実施形態についての以下の説明から明らかになろ
う。以下の詳しい説明中において、この発明は、望まし
くはネットワーク・インターフェイス・カード(NI
C)に設けられているアドレス変換ユニット(ATU)
に含まれたアドレス変換のコヒーレンシイを維持し、確
保するための回路装置及び方法について述べる。NIC
は、複数の仮想チャネルを支持している非同期転送モー
ド(“ATM”)ネットワークへ電子システムを相互接
続するための電子システムのI/Oバスに採用されてい
る。
【0011】ここで定義される或る種の制御回路や2進
表現を説明するために、たくさんの用語がしばしば用い
られる。“語”は、その長さが4バイト(32ビット)
のものが望ましいが、“2x ”バイト(x≧0)でも良
い。“パケット”とは、連続してストアされ、送られ、
又は受けられた複数の語のことである。“アドレス変
換”とは、仮想アドレスと物理アドレスの間のマッピン
グのことである。“フラッシュ”動作は1つ以上の記憶
場所からアドレス変換を除くことである。用語“アサー
トされた”は予め選択した論理値のアクティベーション
(起動)ないしセッティングとして定義される。その
上、“仮想アドレス”は全仮想アドレス又はその一部
(例えば仮想ページ番号)として構成されて良い。同様
に、“物理アドレス”は全物理アドレス又はその一部
(例えば物理ページ番号)として構成されて良い。
【0012】図2は、例えばアメリカ合衆国カリフォル
ニア州マウンテン・ビュー所在のサン・マイクロシステ
ムズによって製造されたワークステーションのような電
子システム200の一実施形態を示すブロック図であ
る。この発明はDMA型システムと共に機能し得ること
が目論まれるが、電子システム200はDVMAシステ
ムとして作動する。
【0013】図示したように、電子システム200は1
個以上のマルチプロセッサ(CPU)2101 −210
j (“j”は総数であってj≧1)を備えている。これ
らのCPUはシステム・バス(メモリ・バス)230を
介して主メモリ220に結合され、主メモリ220との
間の通信を可能にする。システム・バス230は、I/
O MMU250を含むブリッジ・エレメント240へ
も結合され、システム・バス230に結合された構成部
品(例えば主メモリ220,CPU2101 −210j
等)とI/Oバス270に結合された複数のI/Oデバ
イス2601−260k (“k”は総数であってk≧
2)との間の通信を可能にする。I/Oバス270は、
アメリカ合衆国カリフォルニア州サンタ・クララ所在の
インテル・コーポレイションによって開発された周辺部
品インターコネクト(PCI)バスを含み得るが、これ
に限定されない。例えば、PCIバスは、大体66メガ
ヘルツ(MHz)での64ビットのアドレス/データ伝
搬又はほぼ33MHzでの32ビットのアドレス/デー
タ伝搬をサポートし得る。
【0014】図示しないが、主メモリ220は、受信
(RX)動作をサポートするための複数のフリー・メモ
リ・バッファ、RX記述子リング及びRXコンプリーシ
ョン(completion)・リングを含む。同様に、送信(T
X)動作をサポートするための同様な素子がある。通
常、バッファは、仮想メモリ中で連続的にアドレスされ
る記憶場所であるが、物理メモリ中では必ずしも連続で
はない。バッファは1つ以上の仮想ページを占め、その
サイズは色々である。各記述子リングは複数の記述子を
含み、その1つが図3に示されている。
【0015】図3を参照すれば、ここには、主メモリ2
20とネットワークの間でパケット・データを移すため
にセグメント及びリアセンブリ(SAR)で使用できる
基本的データ構造である記述子のサンプルのフォーマッ
ト289が示されている。一例では、記述子はリング構
造(図示しない)に(各々64バイト離して)配置され
ている。これら記述子は、(送信の場合)ネットワーク
へ送られるべき1組のデータ・パケットを指示し、或は
(受信の場合)到来したパケットを保持するために1組
のフリー・メモリ・バッファを指示する。一例では、各
記述子は、その長さが固定されており且つ複数の語例え
ば3〜16の連続する32ビット語から成る。これら記
述子はリング構造の仮想メモリ中に途切れずに置かれ
る。主メモリ中に置かれるこれら記述子の各々は、やは
り主メモリ中に置かれるデータ・バッファ(送信の場
合)を指示する。
【0016】記述子289のブロック271に示したよ
うに、語0はアプリケーション特定制御ビットを含む。
ブロック273に示された語1は、データ・バッファの
開始を指示する仮想アドレス(VA)・ポインタを含
む。ブロック275の語2はアプリケーション特定情報
を含む。ブロック277及び279は、ブロック273
に含まれてこの記述子289と関連付けられた仮想アド
レスにマッピングする物理アドレス(PA)の物理ペー
ジ場所に関する情報を含む。ブロック277の語Pは第
1物理ページのための変換エントリ1を含む。物理アド
レスの各物理ページはそれ自体のエントリを含む。一例
では、最後の語P+K(ただし、Pは2よりも大きい所
定数であり、そしてKはデータ・バッファのページの数
に等しい。)は、ブロック279で示されたように−1
に及ぶ。もしデータ・バッファが10ページに及ぶと、
記述子289の終わりに10の変換エントリがある。従
って、1ページのサイズよりも大きい対象(objec
ts)の物理アドレスをキャッシュすることは、記述子
内に多数の変換をはめ込むことでサポートされる。
【0017】図3には、サンプルの物理変換フォーマッ
ト281も示されている。一例では、このフォーマット
281が有効ビット283、保護ビット285及び実際
の物理ページ・ビット287を含む。記述子中の有効ビ
ット283は、特定の変換エントリがATUに置かれる
(もし有効ビット283がセットされるなら)か、或は
無視される(もし有効ビット28がクリアされるなら)
かを決定する。保護ビット285は、仮想アドレス用A
TU物理変換を使用してページがアクセス可能かどうか
を決定する際に、図6の制御ライン560を通して転送
される。例えば、リード・オンリ・ぺージは、リード・
オンリ・ページ保護ビットでの書込から保護できる。物
理ページ・ビット287は、仮想アドレス空間中のデー
タ・バッファの対応部分のための仮想対物理アドレス・
マッピングを提供する。データ・バッファ・ポインタ2
73によって提示されたデータ・バッファは、1ページ
以上の仮想ページに及ぶことができ且つ物理メモリ中に
必ずしも連続して置かれるわけではない。
【0018】図4を参照すれば、複数のI/Oデバイス
のうちの1個例えばI/Oデバイス260k はネットワ
ーク・インターフェイス回路(NIC)を含む。このN
IC260k はI/Oバス・インターフェイス論理部3
00及びATMコア310を含み、これらの両者は電子
システムと遠隔に設置された他の電子システムとの間で
通常、全二重メディア320を利用することにより多数
の仮想チャネルを介してデータを転送するために集合的
に作動する。メディア320は、光ファイバ、ツイスト
ペア又は155ミリオン・ビット/秒(Mbps)、6
22Mbpsの転送レートを通常、サポートし或は62
2Mbpsより速い速度でさえサポートする任意の他の
高速通信メディアを含み得る。
【0019】ATMコア310の特徴はセグメンテーシ
ョン及びリアセンブリ(SAR)ユニット311を有す
ることであり、このSARユニット311はデータ・セ
ル(例えばチェックサム・バイトの無い標準のATMセ
ル)のセグメンテーション及びリアセンブリを容易にし
且つ記憶用オフチップ・メモリ330を利用する。AT
Mコア310は、ATM用の周知のユニバーサル・テス
ト及び演算物理インターフェイス(UTOPIA)標準
に整合するATM/PHY(物理)インターフェイス3
40とデータ・セルを交換する。ATM/PHYインタ
ーフェイス340は、流出データ・セルのヘッダにチェ
ックサムを挿入してATMセルを作るか或は到来したA
TMセルのチェックサムが正しいかどうかを計算し、そ
してもし正しければデータ・セルをATMコア310に
転送する前にチェックサムを除く。物理レーヤ(PH
Y)350は適当な電圧ラインの終端のために実施され
る。ATMコアの説明は、Rasoul Oskouy
及びDenton E.Gentryによって発明され
且つ本出願人に譲渡され、1996年7月7日に出願さ
れた出願番号08/499,317の特許出願「ハード
ウェアとソフトウェアの間のデータ転送を整合するため
の方法及び装置」に見い出せる。
【0020】ATMセル伝送のため、ATMコア310
にはTX記述子リングのスタート場所が最初に与えられ
る。ATMコア310は第1のTX記述子をフェッチし
てこの第1の記述子に関連したデータ・バッファの仮想
アドレスを得る。次に、物理メディア320を通して送
信される1つ以上のATMセルへのセグメンテーション
のため、データ・バッファはアクセスされてデータをS
ARユニット311へ伝播させる。ATMセルの送信後
(又はSARユニット311のローカル・バッファにデ
ータの少なくとも記憶)、状態情報をTX完了記述子リ
ングに書き込み且つシステムへの割込みを生じてプロセ
ッサに警戒態勢をとらせることにより、SARユニット
311は完了を知ることができる。
【0021】受信中、到来ATMセルは、対応するRX
記述子中に含まれた仮想アドレス・ポインタが指示した
フリー・メモリ・バッファに後でストアされるデータの
パケットにリアセンブル(再組立)される。
【0022】図5は、I/Oバス270(例えばこの場
合は大体66MHzで作動する64ビットのアドレス/
データ・ラインを有するPCIバス)へ結合されたI/
Oバス・インターフェイス論理部300の一例を示すブ
ロック図である。このI/Oバス・インターフェイス論
理部300は、I/Oバス・ライン415を介してスレ
ーブ・インターフェイス・デバイス410に結合された
I/Oレジスタ及びトランシーバ400(例えばPCI
I/Oレジスタ及びトランシーバ)を含む。スレーブ
・インターフェイス・デバイス410は、ATUの種々
の特徴を制御するのに使用されたATU制御レジスタ
(図示しない)を含むことができる。その上、I/Oバ
ス・インターフェイス論理部300は、これに入力バス
425を介して結合された1個以上の読取りバッファ4
20、1個以上の書込みバッファ430、及びマスタ・
アドレス発生ユニット440を含む。図示しないが、入
力バス425はマスタ・アドレス発生ユニット440即
ち図6に示したようなFIFO記憶素子へ更に結合され
て情報に関連した記述子を受信する。少なくとも1個の
読取りバッファ420はI/Oバス270からの情報を
一時ストアするのに使用されるが、少なくとも1個の書
込みバッファ430はSARユニット311から書込み
データ・パスを通して得られた情報を一時ストアするの
に使用される。
【0023】ATMコア310のSARユニット311
から情報を受信するアドレス変換ユニット(ATU)4
50はマスタ・アドレス発生ユニット440内に組み込
まれる。上記情報は、変換されるべき仮想アドレス、ア
ドレスのサイズ及びアクセスのタイプ(例えば記述子リ
ング又はバッファへのアクセス)を含む。ATU450
の存在が電子システム200に (i)仮想アドレスを物
理アドレスに変換させ且つその後に図2のI/O MM
U250をバイパスさせるか、或は(ii)仮想アドレス
を図2のI/O MMU250に送信させる。
【0024】図6はATU450の一例を示す。ATU
450は、充分に連想的であるように構成されるが、直
接マップ化又はN−ウェイ連想のような他のメモリ・ア
クセス方法を利用して所望の変換ヒット・レートに合致
できることが目論まれる。
【0025】ATU450は連想記憶装置(CAM)素
子500及びランダム・アクセス・メモリ(RAM)素
子502を含み、これらCAM素子500及びRAM素
子502は“n”個のアドレス変換(“n”は全数であ
って、n≧1である。)を一まとめにして含む。もっと
詳しく云うと、CAM素子500は、“n”個のエント
リのうちの1個で仮想アドレス及び制御情報をロードす
ること、並びにエントリのアドレス・ルックアップ・サ
ーチを行うことをサポートする論理部を含む。制御情報
は、セット時、エントリがアドレス変換用に現在使用さ
れている仮想アドレスを含むことを示すCAM有効ビッ
トを含み得る。CAM素子500は更に (i)複数の入力ポート及び(ii)複数の出力ポートを
含む。
【0026】複数の入力ポートは、CAM素子500の
エントリへアドレス及び制御情報をロードするのに使用
される。図示のように、情報をCAM素子500へロー
ドするのに使用される5個の入力ポートがある。第1の
入力ポートは、アドレス・ライン529を通して選択素
子(例えばMUX505)によって与えられた被選択仮
想アドレスをロードするのに使用されるデータ入力(D
in)ポートである。第2の入力ポートは、データ・ラ
イン529での仮想アドレスでロードされるべく選択さ
れたエントリのエントリ数をCAM更新アドレス・ライ
ン530を通して受信するためのアドレス更新(A
update)ポートである。第3の入力ポートは、コマンド
(CAM Cmd)ポートであって、このCAM Cm
dポートからCAM素子500はその動作をコマンド・
ライン524により制御するためのコマンド情報を受信
する。コマンドのタイプは、“変換”又は“更新”を含
むが、これだけに制限されない。その上、第4の入力ポ
ートはエントリ有効(Valid)ポートであって、A
updateポートによってアドレス付けられたエントリのC
AM有効ビットを示す制御ライン528は、エントリが
“有効”(例えば“有効”状態又は現在使用中である)
が“無効”(例えば“無効”状態又はステールである)
かに依存してアサート又はデアサートされる。第5の入
力ポートはアドレス・ルックアップ(Alookup)ポート
であって、このAlookupポートからCAM素子500は
各エントリにストアされた仮想アドレスと比較されるべ
き仮想アドレス(例えばページ番号)をルックアップ・
アドレス・ライン532を通して受信する。もし一致す
るなら、出力(Hit)ポート及びその制御ライン(C
AMHitライン536と呼ばれる)はアサートされる
(即ち活動中の信号が発生される)。その結果、信号出
力(Sout)ポートは仮想アドレスを含むCAMエン
トリのエントリ番号を信号ライン534に伝搬させる。
【0027】RAM素子502は、CAM素子500に
ストアされた仮想アドレスに対応する物理アドレスを含
むように構成される。CAM素子500と同様に、RA
M素子502も複数の入力ポート及び出力ポートを含
む。もっと詳しく説明すると、RAM素子502は、C
AM素子500にロードされた仮想アドレスに相当する
物理アドレスをデータ・ライン548によりロードする
のに使用されるデータ入力(Din)ポートを含む。R
AM素子502は、エントリ・ルックアップ及びエント
リ更新用アドレス(A)ポートを更に含む。書込みエネ
ーブル(Wen)ポートは、エントリ更新(例えばWe
nライン550がアサートされている)とエントリ・ル
ックアップ(例えばWenライン550がデアサートさ
れている)を区別するのに使用される。その上、RAM
素子502は、変換ないしサーチ中の仮想アドレスに対
応する物理アドレスをアドレス・ライン562により出
力するための第1のデータ出力(Dout1)ポートと、選
択されたエントリに含まれた書込み保護情報を制御ライ
ン560により出力するための第2のデータ出力(D
out2)ポートとを含む。更に、RAM素子502は、C
AM素子500とRAM素子502のどちらのエントリ
がアクセスされたかを示す情報をエントリ状態ライン5
72から提供するためのエントリ状態(Estat)ポート
を含む。
【0028】CAM素子500及びRAM素子502に
加えて、ATU450は、アドレス変換のロード化及び
フラッシュ化を制御する第1群の制御論理部と、ATU
450がアドレス・ライン516から仮想アドレスを出
力すべきか物理アドレスを出力すべきかを制御する第2
群の制御論理部とを更に含む。I/O MMUをバイパ
スするのに使用されたインジケータは、セット中又はク
リア中の高次アドレス・ビット,アクセス中のアドレス
空間の特定のサブセット等を含み得るが、これだけに限
定されない。例えば、一例では、図2に示したようなブ
リッジ・エレメント240は、アクセスされた時にアド
レスの下側41ビットを物理アドレスとして処理する6
4ビットのアドレス空間内にアドレス範囲を提供する。
【0029】図示したように、第1群の制御論理部は、
複数の選択素子504−506及び508(例えば多数
の入力マルチプレクサ)並びにファーストイン・ファー
ストアウト(FIFO)記憶素子514を含む。このF
IFO記憶素子514は、記述子のフェッチ中に入力バ
ス425から読み出された仮想/物理アドレス変換を一
時ストアするのに使用される。
【0030】複数の選択素子504−506及び508
は、ATU制御状態マシーン(ATU CSM)580
により制御ライン581−584を通して制御される。
第1の選択素子504は、ルックアップ・アドレス・ラ
イン532を介してCAM素子500のAlookupポート
に結合され、CAM素子500内でサーチされるべき仮
想アドレスを捜し出す。この第1の選択素子504は、
ソフトウェア・フラッシュ・アドレス・ライン(SW
Flushアドレス・ライン)518,ハードウェア・
フラッシュ・アドレス・ライン(HW Flushアド
レス・ライン)520及び通常の変換ロード用アドレス
・ライン522を通して仮想アドレス(又は仮想ページ
番号)を入力として受信する。第2の選択素子505
は、データ・ライン529を介してCAM素子500の
Dinポートに結合され、(i) ライン554を通して
記述子フェッチから得られた仮想アドレスをロードする
か、或は(ii)バッファの仮想アドレスをCAM素子5
00にソフトウェアで手書きすることで特定されたデー
タ・バッファの仮想アドレスをロードする。これは、仮
想アドレスがライン558に置かれることになるスレー
ブ・インターフェイス・デバイス410のアクセスであ
る。第3の選択素子506は、アドレス・ライン546
を介してAポートに結合され、RAM更新アドレス・ラ
イン538からのRAM更新アドレス又はSout ポート
から信号ライン534を通して得られCAM素子502
から出力されるエントリ番号をRAM素子502へ送
る。第4の選択素子508は、アドレス・ライン548
を介してDinポートに結合され、ライン540及び5
44からの物理アドレス及び制御情報を入力させる。
【0031】第2群の制御論理部は、ヒット/ミス論理
回路512及び第5の選択素子510を含む。ヒット/
ミス論理回路512は、第5の選択素子510がアドレ
ス・ライン516に (i)ライン562から受けた被変
換物理アドレスを出力するか或はI/O MMUによっ
て後で変換されるべきライン526用仮想アドレスを出
力するかを制御するように構成された組合わせ論理部で
ある。そのような制御はATU_HIT制御ライン56
4のアサート又はデアサートで行われる。
【0032】もし (i)CAM_HITライン536が
アサートされず、もって“ルックアップ・ミス”を示さ
ないか、(ii)ATU450がシステムのソフトウェア
によりディスエーブルされ、もってATUエネーブル・
ライン566をアサートするか、 (iii)サイクル状態
ライン568がアサートされず、それによってこの特定
の変換が避けられるべきことを示さないか、又は(iv)
リード・オンリ・ページの試行された書込みアクセスを
含むが、これに制限されない理由のために進行中のサイ
クルが禁止されることを保護ビット560が知らさない
ならば、全ての条件下で被変換物理アドレスは第5の選
択素子510から出力される。
【0033】ATU450が或る制限された数の変更可
能なアドレス変換をサポートするメモリで実施されるの
で、 (i)ATU中の特定の仮想ページに新しい変換を
ロードする前にそのページの存在をチェックすることに
よってシステムのソフトウェアをアセートすること、
(ii)それが特定仮想ページに関連した新しいアドレス
変換をロードする前にそのページに関連したエントリを
無効にしたことの自己検証をすること、及び (iii)割
込み又は状態レジスタのポーリングによりミスしたフラ
ッシュ動作又はエントリ無効を報告することを含むが、
これらに制限されない多数の機能をサポートする回路装
置を組み込むと好都合である。
【0034】図7は更新制御回路600の望ましい一例
を示す。この更新制御回路600は、ATUリプレース
メント素子610、CAMアドレス・エンコード回路6
20、選択素子630、増分回路640及びCAMアド
レス・デコード回路650を備える。更新制御回路60
0は、CAM更新アドレス制御ライン530に結合さ
れ、図5及び図6のI/Oバス・ライン415又は入力
バス425からの仮想アドレスでCAM素子のどのエン
トリをロードすべきかを選択する。しかしながら、RA
M更新アドレス・ライン538がCAM更新アドレス・
ライン530に結合され、同一エントリ番号選択を受け
て動作のコヒーレンシイを維持することが目論まれる。
【0035】ATUリプレースメント素子610は複数
の記憶素子(例えば“n”個の記憶素子6111−61
n)から成り、各記憶素子はそれぞれ1つのCAMエ
ントリに対応している。図7に示したように、複数の記
憶素子の各々は、クロック・ライン612を通して所定
の周波数(CKL)でクロック化されている1ビット・
レジスタとして実施される。しかしながら、記憶素子6
111−611nは1ビット・レジスタ以外の他のタイプ
の記憶デバイスを含み得ることが目論まれる。
【0036】複数のクロック・エネーブル制御ライン6
141…又は614nのうちの1本(例えばクロック・エ
ネーブル制御ライン6141) がCAMアドレス・デコ
ード回路650によってアサートされる時に、クロック
・エネーブル制御ラインに関連した記憶素子(例えば記
憶素子6111) はこれにCAM有効ビット値をロード
することによって“セット”される。記憶素子に対応す
るCAMエントリ及びRAMエントリが有効アドレス変
換を含むことを表わすために、CAM有効ビット値(例
えば論理値“1”)はデータ入力ライン613を通して
ロードされる。従って、複数の記憶素子6111−61
nは各CAMエントリの状態の外部コピーを提供す
る。
【0037】CAMアドレス・エンコード回路620
は、ATUリプレースメント素子610に結合されて複
数の記憶素子6111−611nの各々の内容をモニタす
るための組合わせ論理部である。代表的な例では、デー
タ・ライン6151−615nを通して記憶素子6111
−611nの内容を読取り、少なくとも1個の記憶素子
6111…又は611nがセットされていないかどうかを
アサートする(例えば少なくとも1個のCAMエントリ
が現在、変換のために使用されていないかどうかを決定
する)ことにより、上述したモニタ動作が行われる。C
AMアドレス・エンコード回路620は、ATU_Fu
ll選択ライン621及び選択素子630のデータ入力
ライン631(E_Numライン631とも云われる)
の数(例えばlog2(n))を更に含む。
【0038】セットされていない少なくとも1個の記憶
素子(空き記憶素子と称される)を検出する時に、CA
Mアドレス・エンコード回路620は3つの動作を行
う。即ち、CAMアドレス・エンコード回路620は、
(i)空き記憶素子を選択する、(ii)ATUリプレー
スメント素子610中の空き記憶素子の場所を表わすエ
ントリ番号をE_Numライン631から選択素子63
0へ出力する、そして(iii) ATU_Full選択ラ
イン621をデアサートする。従って、エントリ番号は
選択素子630を通してCAM更新アドレス・ライン5
30に転送され、もってエントリ番号に相当するCAM
素子のエントリにアドレス変換の仮想アドレスをロード
する。その上に、アドレス変換の物理アドレスは、エン
トリ番号に相当するRAM素子のエントリにロードされ
るが好ましい。しかしながら、もしどんな空き記憶素子
も無ければ、CAMアドレス・エンコード回路620は
ATU_Full選択ライン621をアサートすること
により、選択素子630を制御して以下に説明するよう
に増分回路640に生じたカウント値を出力する。
【0039】選択素子630は、1つのマルチ入力マル
チプレクサ又は共結された1群のマルチ入力マルチプレ
クサであって、複数のデータ入力のうちの1つのデータ
入力を送る。選択素子630のデータ入力は、E_Nu
mライン631からのエントリ番号、入力ライン632
(即ち“Flush”ライン)からのフラッシュ・エン
トリ番号(図8のフラッシュ制御回路700から供給さ
れた)及び増分回路640から入力ライン633(即ち
“Count”ライン)を通して得られたカウント値を
含む。出力としてこれら入力のうちの1つを選択するこ
とは、CAMアドレス・エンコード回路620によるA
TU_Full選択ライン621のアサート又はデアサ
ートにより、そしてATU制御状態マシーン(図示しな
い)がフラッシュ無効更新制御ライン622のアサート
又はデアサートで表されたフラッシュ動作をサポートし
ているかどうかにより、制御される。
【0040】CAMエントリ用の前部のCAM有効ビッ
ト及びATUリプレースメント素子610の記憶素子6
111−611nが“セット”されることで知らされるよ
うに、もし全部のアドレス変換が積極的に使用されてい
るならば、ATU_Full選択ライン621はアサー
トされる。ATU_Full選択ライン621がアサー
トされると、増分回路640から供給されたカウント値
を記憶素子630からCAM更新アドレス・ライン53
0を通して出力させる。カウント値は、CAM素子及び
RAM素子のどのエントリが新しいアドレス変換でロー
ドされるべきかを表わす。増分回路640は“モジュロ
n”カウンタ641を含む。“モジュロn”カウンタ6
41は、ATU_Full選択ライン621がアセート
され且つCAM更新コマンドが図6のATU制御状態マ
シーン580によって生じられる時に、増分され且つエ
ネーブルされる。
【0041】CAMアドレス・デコード回路650は、
フィードバック・ループ651を介して選択素子630
に結合され、従前のサイクル中のCAMエントリへの変
更に基づいたATUリプレースメント素子610の内容
を更新する組合わせ論理部を含む。このエントリの変更
は、エントリ番号、フラッシュ・エントリ番号又はCA
M更新アドレス・ライン530を通して送信中のカウン
ト値によって表される。CAMアドレス・デコード回路
650は、更にATU制御状態マシーン(図示しない)
に結合され、CAM更新コマンドがCAMコマンド・ラ
イン524によって何時モニタし且つこれに応答して更
新中のCAMエントリに対応する記憶素子6111
…,又は611nに関連したクロック・エネーブル制御
ライン6141,…,又は614nをアサートする。
【0042】図8はフラッシュ制御回路700の一例を
示す。このフラッシュ制御回路700は、ATUのHW
フラッシュ・アドレス・ライン520に結合された第1
の回路710と、アドレス・ライン522及びフラッシ
ュ・ライン632(図6及び図7参照)に結合された第
2の回路740とを備えている。ハードウェアによるフ
ラッシュ動作がシステムの性能を上げる状態(例えばペ
ージ交差,パケットの終端等)を検出する時に、仮想ペ
ージ番号をCAMへ伝搬させるように第1の回路710
は構成される。
【0043】第2の回路740は、2つの動作即ち
(i)エネーブルされる時且つ更新制御回路600によ
る新しい変換をロードする前のフラッシュ・チェック、
及び(ii)CAMエントリに関するフラッシュ動作を行
うように構成される。フラッシュ・チェックは、ATU
制御レジスタ中のフラッシュ・チェック・ビット(FL
SH_CHK)をセットすることでエネーブルされる。
上述したように、ATU制御レジスタは、図5のI/O
バス・インターフェイス論理部400のスレーブ・イン
ターフェイス・デバイス410中で実施されるI/Oレ
ジスタの1つで良い。
【0044】図8に示すように、第2の回路740は、
新しいアドレス変換をロードする前にCAMエントリに
関するチェックを行うように構成されたフラッシュ・チ
ェック回路750を含む。このフラッシュ・チェック回
路750は、ロードされるべきアドレス変換の仮想アド
レス(例えば仮想ページ番号)を一時含むように構成さ
れたフラッシュ管理論理部755を含む。フラッシュ・
チェック動作の間そしてもしFLSH_CHKビットが
セットされ、その状態が信号ライン756−757によ
って示されるなら、フラッシュ管理論理部755は第1
の選択素子504の選択ライン581を活動させること
によりFIFO記憶素子514からの仮想ページ番号を
第1の選択素子504に流入させる。仮想ページ番号は
ATU制御状態マシーン580の制御下でアドレス・ラ
イン599からアドレス・ライン532へ発送される。
【0045】CAMエントリ中で仮想ページ番号が見つ
からなければ、上述したように普通の変換手法で新しい
変換がロードされる。しかしながら、CAMエントリの
内容のサーチ時に、もし仮想ページ番号が見つかれば、
新しいアドレス変換はCAMエントリにロードされな
い。その代わり、割込みライン((図示しない)を通し
てプロセッサへ或はプロセッサによるアクセスが可能な
レジスタへ、ATU制御状態マシーン580によってエ
ラー信号が発生される。仮想ページ番号の存在は、仮想
ページ対物理マップの先行した確立後にソフトウェアに
よってフラッシュ・アウトされたことを示す。もしハー
ドウェアがエントリを無効にすることでエントリをフラ
ッシュすることに責任があれば、仮想ページ番号の存在
はハードウェアが適切に作動しなかったことを示す。こ
れは、無効な変換が取り去られてエラー信号をアサート
させることを示す。同日付で出願された米国特許出願
(整理番号P1701)「アドレス変換リプレースメン
ト用回路及び方法」に述べたように、ハードウェアが1
組の記憶素子765及び更新制御回路600と協働する
フラッシュ管理論理部755を含み得ることが目論まれ
る。
【0046】図9はフラッシュ・チェックの動作の一例
を示すフローチャートである。I/O MMUは新しい
仮想対物理マップであるから、新しいアドレス変換の仮
想アドレスはI/O MMUに含まれるべきでないの
で、フラッシュ・チェックがハードウェア変換ロードに
加入される。もしアドレスが存在するならば、それは仮
想アドレスが以前に“フラッシュされ”なかったことを
示す。フラッシュ・チェックは、デバグ動作として利用
され得る。
【0047】ステップ800に示したように、ATU制
御レジスタ中のFLSH_CHKビットをセットするこ
とにより、フラッシュ・チェック・モードが定められ
る。ステップ805で示したように、ハードウェア変換
ロードがアイドル状態から出たATU制御状態マシーン
をトリガする。ステップ810では、FIFO記憶素子
514からの仮想ページ番号はCAM素子のAlookup
ートに置かれる。ステップ815では、TRANSLA
TEコマンドはCAM素子500に送られる。次のステ
ップ820では、ATUがCAM_HIT信号をモニタ
する。もしCAM_HIT信号がデアサートされて“ル
ックアップ・ミス”を示すなら、更なる作用は不要であ
り且つ変換は正常としてロードされるべきである(ステ
ップ825及び830)。
【0048】しかしながら、もしCAM_HIT信号が
アサートされる(例えば論理値“1”)ならば、“アン
フラッシュされた”変換が見い出された(ステップ83
5)。その結果、ATUは、図2に示される電子システ
ムの1個以上のマイクロプロセッサへの割込みを生じ得
る(ステップ840)。任意には、ステップ845及び
850に示したように、ATUはライン562上の転送
された仮想アドレスを記録できる。その上、ATUは、
ステップ840に示したようにアドレス変換の記録と共
に割込みを生じ得る。他のオプションは変換を“ATU
ミス”(例えばATU_HIT信号をデアサートさせ
る)とすることであり、これにより仮想アドレスがI/
O MMU250へのアドレス・ライン516に出され
るようになる。従って、I/O MMU250はATU
に代わってエラーを処理することを必要とされる(ステ
ップ855)。
【0049】ここに説明したこの発明は多くの異なる方
法で設計でき、又多くの異なる構造を使用できる。この
発明を種々の実施形態について述べたが、この発明の精
神及び範囲から逸脱しない限り当業者には他の実施形態
を思いつくことができよう。従って、この発明は特許請
求の範囲で定義されるべきである。
【図面の簡単な説明】
【図1】 ブリッジ・エレメント内で用いられたI/O
メモリ管理ユニットを含む慣用のDVMAシステムのブ
ロック図である。
【図2】 ブリッジ・エレメント内に用いられたI/O
メモリ管理ユニット(I/O MMU)及びネットワー
ク・インターフェイス回路(NIC)内に用いられたア
ドレス変換ユニット(ATU)を含む電子システムの一
実施形態を示すブロック図である。
【図3】 電子システムの主メモリにストアされた記述
子リングからの記述子のデータ構造の一例を示すブロッ
ク図である。
【図4】 ネットワークの通信メディアと前記ネットワ
ークに結合されたワークステーションのI/Oバスとを
相互接続するNICの一例を示すブロック図である。
【図5】 アドレス変換ユニットを含むI/Oバス・イ
ンターフェイス論理部の一例を示すブロック図である。
【図6】 図5のATUの望ましい一例を示すブロック
図である。
【図7】 更新制御回路の一例を示すブロック図であ
る。
【図8】 フラッシュ制御回路の一例を示すブロック図
である。
【図9】 フラッシュ・チェックの動作例を示すフロー
チャートである。
【符号の説明】
450…ATU、500…CAM素子、502…RAM
素子、514…FIFO記憶素子、700…フラッシュ
制御回路、320…メディア、200…電子システム、
230…システム・バス、270…I/Oバス、210
1−210j…CPU、220…主メモリ、240…ブリ
ッジ・エレメント、2601−260k…ネットワーク・
インターフェイス回路、400…I/Oバス・インター
フェイス。
【手続補正書】
【提出日】平成9年10月15日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図5】
【図4】
【図6】
【図8】
【図7】
【図9】
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数の対応するアドレスを含ませた複数
    のエントリを有するメモリを含むアドレス変換ユニット
    と、 このアドレス変換ユニットに結合され、アドレス変換を
    前記メモリへロードする前に、前記複数のエントリのう
    ちの1つが前記アドレス変換で利用された仮想ページ番
    号を既に含んでいるかどうかを決定するように構成され
    ているフラッシュ制御回路と、 を備えた回路。
  2. 【請求項2】 通信メディアと、 この通信メディアに結合された第1の電子システムと、 前記通信メディアに結合された第2の電子システムと、 を備え、 前記第2の電子システムは、 第1のバス及び第2のバスを含む複数のバスと、 前記第1のバスに結合された少なくとも1個のマイクロ
    プロセッサと、 前記第1のバスに結合された主メモリと、 前記第1及び第2のバスに結合されたブリッジ・エレメ
    ントと、 前記第2のバスに結合されると共に前記通信メディアに
    結合されたネットワーク・インターフェイス回路と、を
    含み、 前記ネットワーク・インターフェイス回路は、 前記第2のバスに結合された入/出力(I/O)バス・
    インターフェイスと、 このI/Oバス・インターフェイスに結合され、複数の
    アドレス変換を含むための対応する複数のエントリを有
    するメモリを含むアドレス変換ユニットと、 このアドレス変換ユニットに結合され、アドレス変換を
    前記メモリにロードする前に、前記複数のエントリの1
    つが前記アドレス変換によって利用された仮想ページ番
    号を既に含むかどうかを決定するように構成されたフラ
    ッシュ制御回路と、を含むことを特徴とするネットワー
    ク。
  3. 【請求項3】 ネットワークを通して情報を送受信する
    コンピュータの性能を上げるために使用されたアドレス
    変換ユニットのメモリ内の無効アドレス変換をチェック
    する方法であって、 フラッシュ・チェック・モードがエネーブルされるかど
    うかを決定するステップと、 システム・ソフトウェアからアドレス変換がロードされ
    るべきことを示すコマンドを受信するステップと、 前記アドレス変換の仮想アドレスを前記アドレス変換ユ
    ニットへロードするステップと、 前記コマンドを受信する時にCAM_Hit信号をモニ
    タするステップと、 を含み、 最後のステップにおいて、もし前記CAM_Hit信号
    がデアサートされるならそれ以上どんな作用も行わない
    が、もし前記CAM_Hit信号がアサートされるなら
    エラー状態を処理する、 メモリ内の無効アドレス変換をチェックする方法。
JP9186075A 1996-07-01 1997-06-27 回路,ネットワーク、及びメモリ内の無効アドレス変換をチェックする方法 Pending JPH113281A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/674,095 US5937436A (en) 1996-07-01 1996-07-01 Network interface circuit including an address translation unit and flush control circuit and method for checking for invalid address translations
US08/674095 1996-07-01

Publications (1)

Publication Number Publication Date
JPH113281A true JPH113281A (ja) 1999-01-06

Family

ID=24705274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9186075A Pending JPH113281A (ja) 1996-07-01 1997-06-27 回路,ネットワーク、及びメモリ内の無効アドレス変換をチェックする方法

Country Status (3)

Country Link
US (1) US5937436A (ja)
EP (1) EP0817082A3 (ja)
JP (1) JPH113281A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397316B2 (en) * 1997-07-24 2002-05-28 Intel Corporation System for reducing bus overhead for communication with a network interface
US6615282B1 (en) * 1999-05-21 2003-09-02 Intel Corporation Adaptive messaging
US7350028B2 (en) * 1999-05-21 2008-03-25 Intel Corporation Use of a translation cacheable flag for physical address translation and memory protection in a host
US6747949B1 (en) * 1999-05-21 2004-06-08 Intel Corporation Register based remote data flow control
US6760783B1 (en) 1999-05-21 2004-07-06 Intel Corporation Virtual interrupt mechanism
KR100296964B1 (ko) 1999-06-28 2001-11-01 박종섭 패킷 명령어 구동형 메모리소자
US6457068B1 (en) 1999-08-30 2002-09-24 Intel Corporation Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation
US6542941B1 (en) * 1999-09-30 2003-04-01 Intel Corporation Efficient command delivery and data transfer
US7624156B1 (en) 2000-05-23 2009-11-24 Intel Corporation Method and system for communication between memory regions
US6678836B2 (en) 2001-01-19 2004-01-13 Honeywell International, Inc. Simple fault tolerance for memory
US20030231657A1 (en) * 2002-06-12 2003-12-18 Kacheong Poon System and method for a multi-data network layer transmit interface
US7219209B2 (en) * 2003-08-29 2007-05-15 Motorola, Inc. Bus filter for memory address translation
DE112020002491T5 (de) 2019-05-23 2022-04-28 Hewlett Packard Enterprise Development Lp System und verfahren zur erleichterung der dynamischen befehlsverwaltung in einer netzwerkschnittstellensteuerung (nic)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
GB8814076D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data processing system
US5675763A (en) * 1992-07-15 1997-10-07 Digital Equipment Corporation Cache memory system and method for selectively removing stale aliased entries
US5568415A (en) * 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
US5606683A (en) * 1994-01-28 1997-02-25 Quantum Effect Design, Inc. Structure and method for virtual-to-physical address translation in a translation lookaside buffer
WO1996012231A1 (en) * 1994-10-14 1996-04-25 Silicon Graphics, Inc. A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation

Also Published As

Publication number Publication date
US5937436A (en) 1999-08-10
EP0817082A2 (en) 1998-01-07
EP0817082A3 (en) 1998-01-14

Similar Documents

Publication Publication Date Title
US6049857A (en) Apparatus and method for translating addresses utilizing an ATU implemented within a network interface card
US5991854A (en) Circuit and method for address translation, using update and flush control circuits
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
US6366984B1 (en) Write combining buffer that supports snoop request
US4843542A (en) Virtual memory cache for use in multi-processing systems
US5875466A (en) Active cache for a microprocessor
KR100252570B1 (ko) 축소된요구블로킹을갖는캐시메모리
US8131951B2 (en) Utilization of a store buffer for error recovery on a store allocation cache miss
US7987322B2 (en) Snoop request management in a data processing system
US20130173863A1 (en) Memory Management Among Levels Of Cache In A Memory Hierarchy
JPH07121493A (ja) 並列計算機の記憶制御方法および並列計算機
JP3552114B2 (ja) キャッシュ・メモリ及び主記憶装置を更新する方法と装置及びコンピュータシステム
JPH10171736A (ja) プリフェッチ装置及びプリフェッチ・アクセスの方法
US6157980A (en) Cache directory addressing scheme for variable cache sizes
KR19990077432A (ko) 연관성을이용한가변캐시크기에대한고성능캐시디렉토리어드레싱스킴
US7467256B2 (en) Processor having content addressable memory for block-based queue structures
JPH113281A (ja) 回路,ネットワーク、及びメモリ内の無効アドレス変換をチェックする方法
US6665788B1 (en) Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
US6279081B1 (en) System and method for performing memory fetches for an ATM card
US6073224A (en) Network interface circuit with replacement circuitry and method for segregating memory in an address translation unit with locked and unlocked regions
US20060143333A1 (en) I/O hub resident cache line monitor and device register update
US7543113B2 (en) Cache memory system and method capable of adaptively accommodating various memory line sizes
US5765190A (en) Cache memory in a data processing system
US4737908A (en) Buffer memory control system