JPH10187539A - 非同期モード(atm)セグメント化再アセンブリ装置仮想アドレス変換装置アーキテクチャ - Google Patents

非同期モード(atm)セグメント化再アセンブリ装置仮想アドレス変換装置アーキテクチャ

Info

Publication number
JPH10187539A
JPH10187539A JP9188924A JP18892497A JPH10187539A JP H10187539 A JPH10187539 A JP H10187539A JP 9188924 A JP9188924 A JP 9188924A JP 18892497 A JP18892497 A JP 18892497A JP H10187539 A JPH10187539 A JP H10187539A
Authority
JP
Japan
Prior art keywords
address
bus
atu
virtual address
coupled
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
JP9188924A
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 JPH10187539A publication Critical patent/JPH10187539A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5616Terminal equipment, e.g. codecs, synch.
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 ネットワーク・インタフェース・カード内で
実施されるアドレス変換装置を使用して仮想アドレスを
物理アドレスに変換する新規な装置および方法を提供す
る。 【解決手段】 ネットワーク・インタフェース・カード
内で実施されるアドレス変換装置を使用して仮想アドレ
スを物理アドレスに変換する装置および方法について説
明する。本発明のアドレス変換装置は、コンピュータ・
システム内で使用される。このコンピュータ・システム
は、第1のバスと、第1のバスに結合された埋め込みキ
ャッシュとメモリとを含むプロセッサと、第2のバス
と、アドレス変換装置を含む、第2のバスに結合された
ネットワーク・ロジックと、第1のバスおよび第2のバ
スに結合されたバス・ブリッジとを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送の分野
に関する。詳細には、本発明は、ネットワーク・ロジッ
ク内で実施されるアドレス変換装置のアーキテクチャと
このアドレス変換装置を使用する方法に関する。
【0002】
【従来の技術】10年前から、物理アドレスを使用する
直接メモリ・アクセス(「DMA」)ではなく、仮想ア
ドレスを使用する直接仮想メモリ・アクセス(「DVM
A」)を通じてメイン・メモリにアクセスする入出力装
置を含む、いくつかのシステム・アーキテクチャが開発
されている。DVMAシステムに伴う1つの利点は、入
出力装置によるデータ・アクセスが簡略化されることで
ある。たとえば、DMAを通じてメモリにアクセスする
入出力装置(「DMA入出力装置」)は、場合によって
は不連続ないくつかの物理ページにデータを「散在」さ
せる(すなわち、割り振る)と共にデータを「収集」す
るように制御しなければならない。長さが1ページを超
えるデータを収集することは通常、場合によっては不連
続な一群の物理ページにアクセスすることによって行わ
れる。これに対して、DVMAを通じてメイン・メモリ
にアクセスする入出力装置(「DVMA入出力装置」)
は、データ・アクセスが連続仮想ページを通じて行われ
るのでそのような制御を必要としない。
【0003】DVMAシステムによってこの「散在−収
集」問題が簡略化されたが、このようなシステムでは、
DVMA入出力装置によって発行された仮想アドレスを
物理アドレスに変換しないかぎり、メイン・メモリから
データにアクセスすることはできなかった。図1に示し
たように、従来型のDVMAシステム100は、場合に
よっては入出力アドレス変換バッファ110と呼ばれる
入出力メモリ管理装置(「入出力MMU」)を使用し
て、仮想アドレスを、メイン・メモリ120によって使
用される物理アドレスに変換する。図のように、入出力
MMU110は、入出力バス140およびシステム・バ
ス150に結合されるブリッジ要素130内で実施され
る。通常、入出力MMU110は多くの場合、最小限の
追加コストでシステム性能を高めるために限られた数
「r」のアドレス・マッピング(たとえば、16個のフ
リー(fully)・アソシエーティブ・エントリ)を含む。し
たがって、複数の入出力DVMA装置1601ないし1
60i(「i」は整数であり、i≧2である)は、シス
テム性能を低下させずに全体として最大で「r」個の仮
想ページを使用する。要求されたアドレス・マッピング
が入出力MMU110内に含まれておらず、入出力MM
U「ミス」が発生した場合、入出力MMU110は、テ
ーブル・ウォークを行い、すべての可能なアドレス・マ
ッピングを含むメイン・メモリ120から、要求された
アドレス・マッピングを得なければ(取り込まなけれ
ば)ならない。テーブル・ウォーキングは、メモリ内の
順次索引付きテーブルを使用して特定の変換を見つける
ことと定義されている。したがって、「ヒット」ではな
く入出力MMU「ミス」が発生したときには、入出力M
MU110がトランザクションを実行するのにより長い
時間がかかる。したがって、入出力MMUミスの頻度が
高いときにはシステム100全体の性能が低下する。
【0004】マルチメディア通信が行われるようになっ
たため、ネットワークは現在、複数のデータ・タイプを
サポートする必要がある。その結果、ネットワーク製造
業者は、その努力を非同期転送モード(「ATM」)ネ
ットワークに集中する傾向がある。ATMネットワーク
では、多数、おそらく数10個または数100個の仮想
チャネルが同時に動作することができる。したがって、
DVMAシステム100は、入出力ネットワーク・イン
タフェース・ロジック170に結合されたATMネット
ワークをサポートするように構成されている場合、メイ
ン・メモリからのアドレス・マッピングの過度の取り込
みによって生じる著しい性能低下を経験する。たとえ
ば、単一方向で毎秒622メガビット(「Mbs」)を
維持するためのATMリンクは、ネットワーク・インタ
フェース・ロジックが過度の入出力MMU「ミス」とそ
の結果行われるテーブル・ウォークのためにその速度で
メモリとの間でデータを転送することができないので、
622Mbsよりもかなり低い速度に低下する恐れがあ
る。
【0005】したがって、入出力MMU110がテーブ
ル・ウォーキングを行う必要が低減するように、入出力
バス140に結合されたネットワーク・インタフェース
・カード(「NIC」)内で実施され、そのカードと協
働して動作するアドレス変換装置(「ATU」)を開発
すると有利である。NICは、ATMネットワーク環境
とDVMAシステムを相互接続するために使用される。
【0006】
【発明が解決しようとする課題】本発明は、ネットワー
ク・インタフェース・カード内で実施されるアドレス変
換装置を使用して仮想アドレスを物理アドレスに変換す
る新規な装置および方法を提供する。
【0007】
【課題を解決するための手段】好ましい実施態様によれ
ば、このアドレス変換装置(ATU)は、コンピュータ
・システム内で使用される。このコンピュータ・システ
ムは、第1のバスと、第1のバスに結合された内蔵(埋
め込まれた)キャッシュとメモリを含むプロセッサと、
第2のバスと、第2のバスに結合されたネットワーク・
ロジックとを備え、このネットワーク・ロジックは、ア
ドレス変換装置と、第1のバスおよび第2のバスに結合
されたバス・ブリッジとを含む。
【0008】バス・ブリッジは、仮想アドレスを物理ア
ドレスに変換することもできる入出力MMU(入出力メ
モリ管理装置)を含む。アドレス変換装置は、仮想アド
レスをバス・ブリッジへ伝送することができ、次いでバ
ス・ブリッジがこの仮想アドレスを、対応する物理アド
レスに変換する。他のケースでは、アドレス変換装置
は、変換済み物理アドレスを発行し、バス・ブリッジ内
の入出力MMUをバイパスすることができる。これによ
ってシステム性能が高まる。
【0009】他の実施態様では、ネットワーク・インタ
フェース・カードの一部であるアドレス変換装置は、変
換すべき仮想アドレスを受信するように構成された第1
のメモリ要素と、仮想アドレスに関連付けられた物理ア
ドレスを受信するように構成された第2のメモリ要素と
を備える。ATU内で、第2のメモリ要素が第1のメモ
リ要素に結合される。
【0010】さらに、アドレス変換装置は、状態マシン
によって制御することができ、入出力バスを介してコン
ピュータ・システムに結合される。好ましい実施態様に
よれば、アドレス変換装置は、CAM(内容アドレス可
能メモリ)要素とRAM要素とを備える。アドレス変換
装置を使用する一方法は、状態マシンに第1の状態を終
了させ第2の状態を開始させる条件を与えるステップ
と、アドレス変換装置がサイクルを実行するように状態
マシンに1組の命令をアドレス変換装置に発行させるス
テップとを含む。アドレス変換装置は、変換、ハードウ
ェア変換ロード、ソフトウェア変換ロード、ソフトウェ
ア・フラッシュ、フラッシュ検査、様々な診断アドレス
・モードのサイクルを実行することができる。
【0011】本発明は、下記に与えた詳細な説明と本発
明の様々な実施形態の添付の図面からより完全に理解さ
れよう。しかし、これらの図面は、本発明を特定の実施
形態に制限するものではなく、説明および理解のみのた
めのものである。
【0012】
【発明の実施の形態】DVMAシステムに結合された非
同期転送モード(「ATM」)ネットワーク・インタフ
ェース・カード(「NIC」)内で実施されるアドレス
変換装置(「ATU」)について説明する。下記の説明
では、マルチプレクサの使用法やPCIバスの使用法な
ど、本発明を完全に理解していただくための多数の具体
的詳細を示す。しかし、当業者には、これらの特定の詳
細なしで本発明を実施できることが明らかになろう。本
発明を曖昧にすることを回避するために、いくつかの周
知の回路構成またはシステム構成については詳しく開示
しない。
【0013】本明細書ではいくつかの語を頻繁に使用し
て、本明細書で定義するある種の制御回路およびバイナ
リ表現について説明する。「語」は、長さが4バイト
(32ビット)であることが好ましいが、任意の
「2x」バイトでよい(x≧0)。「パケット」とは、
連続して記憶または送信または受信される複数の語であ
る。「アドレス変換」とは、仮想アドレスと物理アドレ
スとの間のマッピングである。「フラッシュ」動作と
は、1つまたは複数の記憶位置からのアドレス変換の削
除である。「アサートされる」の語は、予定された論理
値に活性化することすなわち設定することとして定義さ
れる。さらに、「仮想アドレス」は、仮想アドレス全体
またはその一部(たとえば、仮想ページ番号)と解釈す
ることができる。同様に、「物理アドレス」は、物理ア
ドレス全体またはその一部(たとえば、物理ページ番
号)と解釈することができる。
【0014】図2を参照すると、たとえばカリフォルニ
ア州マウンテンビューのSun Microsyste
msによって製造されているワークステーションなどの
電子システム200の実施形態が示されている。電子シ
ステム200はDVMAシステムとして動作する。ただ
し、本発明がDMAタイプのシステムと共に機能するこ
とが企図される。
【0015】図のように、電子システム200は、電子
システム自体とメイン・メモリ220との間の通信をイ
ネーブルするためにシステム・バス230を通じてメイ
ン・メモリ220に結合された1つまたは複数のマルチ
プロセッサ2101ないし210j(「j」は整数であ
り、j≧1である)。メモリ・バス230はさらに、シ
ステム・バス230に結合された構成要素(メイン・メ
モリ220、マイクロプロセッサ2101ないし210j
など)と、入出力バス270に結合された複数の入出力
装置2601ないし260k(「k」は整数であり、k≧
2である)との間の通信をイネーブルするために、入出
力MMU250を含むブリッジ要素240に結合され
る。入出力バス270は、カリフォルニア州サンタクラ
ラのIntel Corporationによって開発
された周辺構成要素相互接続(「PCI」)バスを含む
ことができるが、これに限らない。たとえば、PCIバ
スは、約66メガバイト(「MHz」)での64ビット
・アドレス/データ伝搬または約33MHzでの32ビ
ット・アドレス/データ伝搬をサポートできる。
【0016】図示していないが、メイン・メモリ220
は、RX動作をサポートするために複数の空きメモリ・
バッファと、受信(「RX」)記述子リングと、RX完
了リングとを含む(図示せず)。同様に、送信(「T
X」)動作をサポートする同様な要素がある。通常、バ
ッファは、仮想メモリでは連続的にアドレスされる記憶
位置であるが、物理メモリでは必ずしも連続するとは限
らない。バッファは、様々なサイズのものでよく、1つ
または複数の仮想ページを占有する。各記述子リング
は、複数の記述子を含む。これらの記述子のうちの1つ
を図3に示す。
【0017】次に、図3を参照すると、サンプル記述子
フォーマット289、すなわち、メイン・メモリ220
とネットワークとの間でパケット・データを転送するた
めにセグメント再アセンブリ(「SAR」)装置によっ
て使用できる基本データ構造が示されている。一実施形
態では、記述子はリング構造(図示せず)として構成さ
れる(各記述子間は64バイトだけ離れる)。これらの
記述子は、(送信の場合は)ネットワークへ送信される
1組のデータパケットを指し示し、あるいは(受信の場
合は)着信パケットを保持するために1組の空きメモリ
・バッファを指し示す。一実施形態では、各記述子は長
さが一定であり、3〜16個の連続する32ビット・ワ
ードの範囲の複数の語から成る。記述子は、リング構造
として仮想メモリ内に連続的に配置される。メイン・メ
モリに配置されたこれら記述子の各々は、データ・バッ
ファ(送信(「TX」)の場合)を指し、これもメイン
・メモリに配置される。
【0018】記述子289のブロック271に示したよ
うに、語0はアプリケーション特有の制御ビットを含
む。ブロック273は、語1が、データ・バッファの始
めを指し示す仮想アドレス(「VA」)ポインタを含む
ことを示す。ブロック275は、記述子289の語2
が、アプリケーション特有の情報を含むことを示す。記
述子277および279の終わりは、ブロック273に
含まれこの記述子289に関連付けられた仮想アドレス
にマップされる物理アドレス(「PA」)の物理ページ
位置に関する情報を含む。ブロック277は、語「P」
が第1の物理ページに関する変換エントリ1を含むこと
を示す。物理アドレスの各物理ページは、それ自体のエ
ントリを含む。一実施形態では、最後の語「P+K」に
おいて、「P」は2よりも大きな所定の数であり、
「K」は、ブロック279で示したように、データ・バ
ッファがカバーするページ数から1を減じた値である。
データ・バッファが10ページをカバーする場合、記述
子289の終わりには10個の変換エントリが存在す
る。したがって、1ページ・サイズよりも大きなオブジ
ェクトのPAをキャッシュすることは、記述子内に複数
の変換を埋め込むことによってサポートされる。
【0019】図3にはサンプル物理変換フォーマット2
81も示す。一実施形態では、このフォーマット281
は、有効ビット283と、保護ビット285と、実物理
ページ・ビット287とを含む。記述子内の有効ビット
は、特定の変換エントリがATU内に配置される(有効
ビット283がセットされた場合)か、それとも無視さ
れる(有効ビット283がクリアされた場合)を決定す
る。保護ビット285は、仮想アドレスにATUの物理
的変換を使用してページにアクセスできるかどうかを判
定する際に図6の制御線560を通じて転送される。た
とえば、読取り専用ページ保護ビットを用いて読取り専
用ページを書込みから保護することができる。物理ペー
ジ・ビット287は、仮想アドレス空間内のデータ・バ
ッファの対応する部分の仮想・物理アドレス・マッピン
グを行う。データ・バッファ・ポインタ273の指し示
すデータ・バッファは、1つまたは複数のページをカバ
ーすることができ、必ずしも物理メモリ内に連続して配
置されるわけではない。
【0020】図4を参照すると分かるように、複数の入
出力装置のうちの1つ、たとえば入出力装置260k
ネットワーク・インタフェース回路(「NIC」)を含
む。NIC260kは、入出力バス・インタフェース・
ロジック300とATMコア310とを含み、これらは
共に、協働し、通常は全二重媒体320を使用して複数
の仮想チャネルを通じて、電子システムとリモートに位
置する他の電子システムとの間でデータを転送する。媒
体320は、光ファイバ、あるいは対より線、あるい
は、通常は毎秒1億5500万ビット(「Mbp
s」)、または622Mbps、または場合によっては
622Mbpsよりも高い転送速度をサポートする高速
通信媒体を含むことができる。
【0021】ATMコア310は、データ・セル(たと
えば、チェックサム・バイトのない標準ATMセル)の
セグメント化および再アセンブリを容易にするセグメン
ト化再アセンブリ(SAR, segmantation and reassem
bly )装置311を備え、記憶のためにオフチップ・メ
モリ330を使用する。ATMコア310は、周知のU
niversal Test and Operati
ons Physical Interface fo
r ATM(「UTOPIA」)規格に準拠したATM
/物理インタフェース340とデータ・セルを交換す
る。ATM/物理インタフェース340は、発信データ
・セルのヘッダにチェックサムを挿入し、あるいは着信
ATMセルのチェックサムが正しいかどうかを計算し、
そうである場合、データ・セルをATMコア310へ転
送する前にチェックサムを削除するように配置される。
物理層350は、適切な電気電圧線終端が可能なように
実施される。ATMコアの説明は、「Method a
nd Apparatusfor Coordinat
ing Data Transfer Between
Hardware and Software」と題
するRasoulOskouyおよびDenton
E.Gentryの関連米国特許出願(出願第08/4
99317号、1996年7月7日出願)に記載されて
いる。
【0022】ATMセル伝送では、最初にATMコア3
10にTX記述子リングの開始位置が与えられる。AT
Mコア310は、第1のTX記述子を取り込み、第1の
記述子に関連付けられたデータ・バッファの仮想アドレ
スを得る。次に、データ・バッファがアクセスされ、デ
ータがSAR装置311に伝搬し、物理媒体320を通
じて送信される1つまたは複数のATMセルとしてセグ
メント化される。ATMセルの送信後(あるいは少なく
ともデータがSAR装置311のローカル・バッファに
記憶された後)、SAR装置311は、TX完了記述子
リングに状況情報を書き込み、システムに対する割り込
みを生成しそれに応じてプロセッサに通知することによ
って完了を確認することができる。
【0023】受信時には、着信ATMセルがデータ・パ
ケットとして再アセンブルされ、その後、対応するRX
記述子に含まれる仮想アドレス・ポインタで指し示され
る空きメモリ・バッファに記憶される。
【0024】次に、図5を参照すると、入出力バス27
0(たとえば、この実施形態では約66MHzで動作す
る64ビット・アドレス/データ線を含むPCIバス)
に結合された入出力バス・インタフェース・ロジック3
00の実施形態が示されている。入出力バス・インタフ
ェース・ロジック300は、入出力バス線415を介し
て少なくともスレーブ・インタフェース装置410に結
合され、入力バス425を介して1つまたは複数の読取
りバッファ420に結合され、1つまたは複数の書込み
バッファ430に接続され、マスタ・アドレス生成装置
440に接続された入出力レジスタ・トランシーバ40
0(たとえば、PCI入出力レジスタ・トランシーバ)
を含む。図示していないが、入力バス425はさらに、
記述子に関係する情報を受信するために、マスタ・アド
レス生成装置440、すなわち図6に示したFIFO記
憶要素に結合される。読取りバッファ420は、入出力
バス270からの情報を一時的に記憶するために使用さ
れ、それに対して書込みバッファ430は、書込みデー
タ経路を介してSAR装置からの情報を一時的に記憶す
るために使用される。
【0025】マスタ・アドレス生成装置440内で、A
TMコアのSAR装置311からの情報を受信するアド
レス変換装置(「ATU」)450が実施される。この
情報には、変換すべき仮想アドレス、アドレスのサイ
ズ、アクセスのタイプ(たとえば、記述子リングまたは
バッファへのアクセス)が含まれる。ATU450が存
在することによって、電子システムは(i)仮想アドレ
スを物理アドレスに変換し、その後、図2の入出力MM
U250をバイパスし、あるいは(ii)仮想アドレス
を図2の入出力MMU250へ送信することができる。
【0026】次に、図6を参照すると、ATU450の
実施形態が示されている。ATU450は、フリー(ful
ly)・アソシエーティブに構成することができる。しか
し、直接マップ方式やNウェイ・アソシエーティブ方式
など他のメモリ・アクセス方式を使用して、所望の変換
ヒット率を満たすことが企図される。
【0027】ATU450は、内容アドレス可能メモリ
(CAM, content addressable memory)要素500と
ランダム・アクセス・メモリ(「RAM」)要素502
とを含み、これらの要素は全体として「n」個のアドレ
ス変換を含む(「n」は整数であり、n≧1である)。
具体的には、CAM要素500は、仮想アドレスおよび
制御情報を「n」個のエントリのうちの1つにロードす
ることと、エントリのアドレス参照探索(ルックアップ
・サーチ)を行うことをサポートするロジックを含む。
制御情報は、セットされると、そのエントリが、現在ア
ドレス変換に使用されている仮想アドレスを含むことを
示すCAM Validビットを含むことができる。C
AM500はさらに、(i)複数の入力ポートと(i
i)複数の出力ポートとを含む。
【0028】複数の入力ポートを使用してアドレスおよ
び制御情報がCAM要素500のエントリにロードされ
る。図のように、CAM要素に情報をロードするために
使用される5つの入力ポートがある。第1の入力ポート
は、アドレス線529から選択要素(たとえば、MUX
505)を介して与えられる選択された仮想アドレスを
ロードするために使用されるデータ入力(「Din」)ポ
ートである。第2の入力ポートは、データ線529上で
仮想アドレスをロードすべきエントリとして選択された
エントリのエントリ番号をCAM Updateアドレ
ス線530を介して受信するアドレス更新
(「Aupdate」)である。第3の入力ポートは、コマン
ド(「CAMコマンド」)ポートであり、このポートか
ら、CAM要素500がコマンド情報を受信し、コマン
ド線524を介してCAM要素自体の動作が制御され
る。コマンドのタイプには、「Translate」や
「Update」が含まれるが、これらに限らない。ま
た、第4のポートはエントリ有効(「Valid」)ポ
ートであり、このポートを通じて、Aupdateポートから
アドレスされるエントリのCAM Validビットを
表す制御線528が、エントリが「有効」(あるいは現
在使用されている)であるか、それとも「無効」(例え
ば、古い)であるかに応じてアサートまたはアサート解
除(デアサート)される。第5の入力ポートは、アドレ
ス参照(「Alookup」)ポートであり、このポートか
ら、CAM要素500が、各エントリに記憶されている
仮想アドレスと比較すべき仮想アドレス(たとえば、ペ
ージ番号)を参照アドレス線532を介して受信する。
一致した場合、出力(「Hit」)ポート、したがって
(「CAM_Hit」536と呼ばれる)その制御線が
アサートされる(すなわち、アクティブ信号が生成され
る)。その結果、信号出力(「Sout」)ポートは、仮
想アドレスを含むCAMエントリのエントリ番号を信号
線534を通じて伝搬させる。
【0029】依然として図6を参照すると分かるよう
に、RAM要素502は、CAM要素500に記憶され
ている仮想アドレスの対応する物理アドレスを含むよう
構成される。CAM要素500と同様に、RAM要素5
02は、複数の入力ポートおよび出力ポートを含む。具
体的にはRAM要素502は、CAM要素500にロー
ドされる仮想アドレスに対応する物理アドレスをデータ
線548を介してロードするために使用されるデータ入
力(「Din」)ポートを含む。RAM要素502はさら
に、エントリ参照およびエントリ更新用のアドレス
(「A」)ポートを含む。書込みイネーブル
(「Wen」)ポートは、更新(すなわち、Wen線550
がアサートされる)とエントリ参照(すなわち、Wen
550がアサート解除される)とを区別するために使用
される。また、RAM要素502は、変換または探索中
の仮想アドレスに対応する物理アドレスをアドレス線5
62を介して出力する第1のデータ出力(「Dout1」)
ポートと、選択されたエントリに含まれる書込み保護情
報を制御線560を介して出力する第2のデータ出力
(「Dout2」)ポートとを含む。さらに、RAM要素5
02は、CAM要素およびRAM要素のどのエントリが
エントリ状況線572を介してアクセスされたかを示す
情報を与えるエントリ状況(「Estat」)ポートを含
む。
【0030】ATU450は、CAM要素500および
RAM要素502だけでなく、さらにアドレス変換のロ
ードおよびフラッシュを制御する第1の制御ロジック群
と、ATU450がアドレス線516を介して仮想アド
レスを出力すべきか、それとも物理アドレスを出力すべ
きかを制御する第2の制御ロジック群とを含む。入出力
MMUをバイパスするために使用されるインジケータに
は、セットまたはクリア中の上位アドレス・ビット、ア
クセス中のアドレス空間の特定のサブセットなどを含め
ることができるが、これらに限らない。たとえば一実施
形態では、図2に示したようなブリッジ要素240は、
アクセス時にアドレスの下位41ビットを物理アドレス
とみなすアドレス範囲を64ビットアドレス空間内に備
える。
【0031】図のように、第1の制御ロジック群は、複
数の選択要素504ないし506および508(たとえ
ば、複数の入力マルチプレクサ)と、先入れ先出し
(「FIFO」)記憶要素514とを含む。FIFO記
憶要素514は、仮想/物理アドレス変換が記述子取り
込み時に入力バス425から読み取られたときにその変
換を一時的に記憶するために使用される。
【0032】複数の選択要素504ないし506および
508は、制御線581〜584それぞれを介してAT
U制御状態マシン580によって制御される。第1の選
択要素504は、CAM要素500内の探索すべき仮想
アドレスをルーティングするために参照アドレス線53
2を介してCAM要素500のAlookupポートに
結合される。この選択要素504は、通常の変換ローデ
ィングのために、ソフトウェア・フラッシュ・アドレス
線(「SWフラッシュ・アドレス線」)518、ハード
ウェア・フラッシュ線(「HWフラッシュ・アドレス
線」)520、アドレス線522を通じて仮想アドレス
(または仮想ページ番号)を入力として受信する。第2
の選択要素505は、(i)線554を介して記述子取
り込みから得られる仮想アドレスと、(ii)ソフトウ
ェアがCAM要素500にデータ・バッファの仮想アド
レスを書き込むことによってマニュアルで指定されるデ
ータ・バッファの仮想アドレスと、のどちらかをロード
するためにデータ線529を介してCAM要素500の
inポートに結合される。これは、スレーブ・インタフ
ェース装置410のアクセスであり、この結果、その仮
想アドレスは線558上に置かれる。第3の選択要素5
06は、RAM更新アドレス線538を介してRAM更
新アドレスを要素506自体へ送信し、あるいはSout
ポートを通じ信号線534を介してCAM要素500か
ら出力されるエントリ番号を要素506自体へ送信する
ためにアドレス線546を介してアドレス・ポートに結
合される。第4の選択要素508は、物理アドレスおよ
び制御情報を線540および544から入力するために
アドレス線548を介してDinポートに結合される。
【0033】第2の制御ロジック群は、ヒット/ミス論
理回路512と第5の選択要素510とを含む。ヒット
/ミス論理回路512は、組み合わせロジックであり、
第5の選択要素510が、(i)線562から受信され
た変換済み物理アドレスをアドレス線516上に出力す
るか、それとも(ii)後で入出力MMUによって変換
される線526の仮想アドレスをアドレス線516上に
出力するか、を制御するように構成される。そのような
制御は、ATU_Hit制御線564をアサートまたは
アサート解除することによって行われる。
【0034】変換済み物理アドレスは、(i)CAM_
Hit線536がアサートされ、それによって「参照ミ
ス」が示されること、あるいは(ii)ATU450が
システム・ソフトウェアによってディスエーブルされ、
ATUイネーブル線566がアサートされないこと、あ
るいは(iii)サイクル状況線568がアサートされ
されないでこの特定の変換を回避すべきであることが示
されること、あるいは(iv)進行中のサイクルが、読
取り専用ページの書込みアクセスが試みられたことを含
むがこれに限らない理由で禁止されることを、保護ビッ
ト560が示すこと、の何れかがないかぎり、すべての
条件の下で第5の選択要素510から出力される。
【0035】図6のATU制御状態マシン580の機能
を図7に示す。ATU制御状態マシンは、スレーブ・イ
ンタフェース410またはATM CORE310から
受信する入力に応じてATU450のいくつかの機能を
制御する。ATU制御状態マシン600は、変換サイク
ル600Aを開始するよう状態マシン600に命令する
トリガを受信することができ、変換サイクル600Aが
完了すると、アイドル状態600に戻る。状態マシン6
00は、ハードウェア変換ロード600Bを実行するト
リガ、またはソフトウェア変換ロード600Cを実行す
る他の信号を受信することもできる。また、状態マシン
600は、そのアイドル状態にソフトウェア・フラッシ
ュ600Dまたはフラッシュ検査600Eを実行させる
こともできる。さらに、状態マシンは、診断アクセス・
モード600Fを開始して保守作業を実行することも、
あるいは診断のために、CAM500またはRAM50
2との間でマニュアル読取りまたは書込みを行うこと
も、あるいはすべてのCAM有効ビット528を「O」
に初期設定することもできる。
【0036】変換サイクル600Aを図8のフローチャ
ートに示す。ステップ601で、図6に示したように、
仮想アドレス522がMUX504など第1の選択要素
へ送信され、次いで、MUX504が仮想アドレス53
2をCAM500へ送信する。次のステップ603で、
TRANSLATEコマンドが線524を介してCAM
500へ送信される。決定ダイヤモンド605で、CA
Mは、ATUヒットがあるかどうかを判定する。言い換
えれば、線532上に置かれた仮想アドレスが、CAM
500内に一致するエントリを有するかどうかが判定さ
れる。そうでない場合、ステップ607で、ATUミス
信号が生成され、ステップ609で、仮想アドレス52
6がアドレス出力バス516上で送出される。次いで、
その点で変換サイクルが終了する。
【0037】しかし、決定ダイヤモンド605でCAM
500によってATU−ヒットが判定された場合、次の
ステップは610になる。RAM502の位置に対応す
る読取りが実行される。この読取りはVAに関連する物
理アドレス変換に対応する。次いで決定ダイヤモンド6
11で、RAM502は、保護違反があるかどうかを判
定しなければならない。保護違反がない場合、ステップ
619で、物理アドレス(PA)がアドレス出力バス5
16上に置かれ、変換サイクルが終了する。
【0038】決定ダイヤモンド611の答えが「ye
s」であった場合は保護違反が行われている。ステップ
613で、ATUヒット信号564が「false」に
セットされる。ステップ615で、仮想アドレスがアド
レス出力バス516上に置かれる。保護違反の例とし
て、読取り専用ページ上で書込みを試みることが挙げら
れる。他のオプションは、ATUに、CPUに対する割
り込みを生成することによってこの保護違反を通知させ
ることである。
【0039】図9を参照すると、下記のフローチャート
にハードウェア変換ロードが示されている。ステップ6
20で、ATU状態マシン600は、トリガによってア
イドル状態を終了する。このトリガは記述子アクセスで
あり、空きバッファ記述子が読み取られ、次いで、この
記述子がATU状態マシンに記述子FIFO514にア
クセスするよう命令する。次のステップ612で、AT
U状態マシンは記述子FIFO514から変換準備完了
トリガ信号を受信する。次いで、ステップ622に示し
たようにUPDATEコマンドが線524を介してCA
M500へ送信される。次にステップ623で、MUX
505は、(図5に示した)入力バス425から仮想ア
ドレス(VA)を受信している記述子FIFO514か
ら仮想アドレス(VA)を受信する。MUX505は次
いで、VAを線529を介してCAM500へ送信す
る。ステップ624で、MUX508は記述子FIFO
514からPAビットおよびPA制御ビットを受信す
る。MUX508は次いで、物理アドレスに関するPA
ビットおよび制御ビットをRAM502へ送信する。R
AM502へのデータ入力548は、PA、エントリ状
態、保護ビットに分解される。ステップ625で、CA
M有効ビット528がセットされる(すなわち、有効に
なるようにセットされる)。ATU制御状態マシン58
0は次いで、更新アドレス530およびRAM更新アド
レス538をCAM500に与える。この場合、仮想ア
ドレスと物理アドレスとの間の関連付けを維持するため
にVAのエントリ番号とPAのエントリ番号は1対1に
対応するので、CAM更新アドレス530とRAM更新
アドレス538は同じ値である。
【0040】好ましい実施形態では、ATU制御状態マ
シンは具体的には、(本発明の出願人によって所有され
ている「A Circuit and Method
for Replacement of Addres
s Translations」と題する関連出願で論
じた)ATU置換アルゴリズムによって制御される。A
TU制御状態マシンは、それぞれ、「A Circui
t and Method for Segregat
ing Memory in an Address
Translation Unit」および「A Ci
rcuit and Method for Flus
h Checking Memoryof an Ad
dress Translation Unit」と題
する他の2つの出願で詳しく論じた、ATUロック機構
とATUフラッシュ・マネージメントも有する。この2
つの出願も、本発明の出願人によって所有されている。
最後のステップ627で、RAM書込みイネーブル(W
E)が、ATU制御状態マシン580から入力を受信す
る線550を介して活動化される。ハードウェア変換ロ
ードはこの点で完了する。
【0041】ソフトウェア変換ロードのフローチャート
を図10に示す。ステップ630で、ATU状態マシン
600が、スレーブ・インタフェース410を介したス
レーブ・インタフェース・レジスタ・アクセスの復号に
よってトリガまたは活動化される。スレーブ・インタフ
ェース410は、バスまたは線558を通じてATU4
50に接続される。次のステップ632で、UPDAT
Eコマンドが線524を介してCAM500へ送信され
る。ステップ634に示したように、CAM有効ビット
528が、ソフトウェアの選択に応じてセットされ、C
AM更新アドレス530が、前にステップ630でアク
セスされたスレーブ・インタフェース・レジスタから得
られる。次のステップ636で、MUX505が線55
8から(ソフトウェアによってマニュアルで書き込まれ
た)VA入力を受信し、この入力が次いで、線529を
介してCAM500へ送信される。入力529は、変換
する必要のある仮想アドレスである。ステップ637
で、MUX508は、線558に接続された線544か
ら入力を受信する。入力544は、CAM500へ送信
された仮想アドレスに対応する(ソフトウェアによって
マニュアルで書き込まれた)物理アドレスである。ステ
ップ638で、RAM WE550も活動化される。次
に、ソフトウェア変換ロード・サイクルが完了し、AT
U状態マシンがアイドル状態600に戻る。
【0042】ソフトウェア・フラッシュ・サイクルのフ
ローチャートを図11に示す。ブリッジ要素240内の
入出力MMU250とATU450との間にコヒーレン
シを維持するにはソフトウェア・フラッシュのみで十分
である。しかし、一実施形態におけるハードウェアの置
換アルゴリズムも、やはりフラッシュを実行することに
よってシステム入出力MMUとATU450との間に一
貫性を維持するのを助ける。ハードウェア・フラッシュ
は、「A Circuit and Method f
or Flush Checking Memory
of an Address Translation
Unit」と題する関連出願に記載したようにソフト
ウェア・フラッシュよりも高いシステム性能を与える。
【0043】図11を参照すると分かるように、ATU
状態マシンは、ソフトウェア・フラッシュ・レジスタへ
の「書込み」を受信する。言い換えれば、ステップ64
0に示したように、ソフトウェアは、ソフトウェア・フ
ラッシュ・レジスタにフラッシュする必要があるVAペ
ージを書き込む。次いでステップ642で、TRANS
LATEコマンドが線524を介してCAM500へ送
信される。状態マシンはステップ644で、CAMヒッ
ト信号536を監視する。「ヒットがない」(すなわ
ち、「ATUに」仮想アドレス・エントリが「存在しな
い」)場合、ステップ644Aに示したように、フラッ
シュすべきエントリはない。ATU制御状態マシン58
0は、ステップ644Bでは何も行わず、次いでソフト
ウェア・フラッシュ・サイクルが終了する。
【0044】決定ダイヤモンド644に対する答えが
「yes」である場合、異なる経路が取られる。ステッ
プ655で、CAMのヒット信号536がCAMヒット
を示す。これは、このエントリ(フラッシュすべきVA
ページ)がATU318に存在し、フラッシュする必要
があることを意味する。ステップ656で、そのVAペ
ージに関連するエントリ番号が、RAM502に保持さ
れているエントリ状況フィールドから取り込まれる。C
AM有効ビット528がクリアされる(すなわち、無効
になるようにセットされる)。ステップ658に示した
ように、CAM更新アドレス530は、前に656で取
り込まれたエントリ状態番号に等しい。次にステップ6
59で、UPDATEコマンドが、ATU制御状態マシ
ン580によって制御される線524を介してCAM5
00へ送信される。ソフトウェア・フラッシュが完了し
た後、サイクルは終了する。
【0045】フラッシュ検査がイネーブルされたハード
ウェア変換ロード・サイクルのフローチャートを図12
に示す。フラッシュ検査は、ハードウェア変換ロードに
関連付けられる。このアドレスは、新しい仮想−物理マ
ッピングなのでATUに存在すべきではない。アドレス
が存在する場合、それは、そのアドレスがまだフラッシ
ュされていないことを意味する。フラッシュ検査(これ
は基本的にデバッグ動作である)が開始する前に、フラ
ッシュ検査モードが確立される。ステップ651に示し
たハードウェア変換ロード・トリガによって、ATU制
御状態マシン580はアイドル状態を終了する。次のス
テップ653で、TRANSLATEコマンドが線52
4を介してCAM500へ送信される。次のステップ6
55で、ATU450はCAMヒット信号536を監視
し、CAMヒットがあるかどうかを判定する。CAMヒ
ットがある場合、ステップ655aで、すべてが良好で
あることが示される。言い換えれば、ソフトウェアは前
の変換をフラッシュしており、したがってCAMヒット
信号は、CAMヒットがないことを示し、フラッシュ検
査が終了する。
【0046】決定ダイヤモンド655の答えが「ye
s」であり、すなわちCAMヒットがある場合、ステッ
プ655bに示したように(未フラッシュ)変換が見つ
けられる。ステップ656で、バス516上で入出力M
MU250へ仮想アドレスが発行されるように、この変
換が「ATUミス」にされる。次いで、システム入出力
MMU250が、ATU450の代わりにこのエラーを
処理する。決定ダイヤモンド657に示したように任意
選択で、ATU450は、ステップ658に示したよう
に、線522から得たVAを記録し、バス562上で発
行されたPAを記録することができる。次いで、オプシ
ョンが実行されない場合、あるいはオプションが実行さ
れた後にステップ659で、ATU450がCPU(中
央演算処理装置)に対する割り込みを生成する。
【0047】上記説明は、DVMAシステム内のネット
ワーク・インタフェース・カード内で実施されるATU
の例を示したものである。ただし、ATUはDMAシス
テム内でも動作する。本発明を実施する際には、特許請
求の範囲で定義される本発明の趣旨および範囲から逸脱
せずに多数の修正を加えられることが認識されよう。
【図面の簡単な説明】
【図1】従来技術のシステムのブロック図である。
【図2】本発明を使用するコンピュータ・システムを示
す図である。
【図3】サンプル記述子を示す図である。
【図4】図2のコンピュータ・システムの一実施形態で
使用されるネットワーク・インタフェース・カードのブ
ロック図である。
【図5】図4の入出力バス・インタフェース・ロジック
のブロック図である。
【図6】アドレス変換装置の概略図である。
【図7】ATU状態マシンの概略図である。
【図8】アドレス変換装置の変換サイクルを示すフロー
チャートである。
【図9】アドレス変換装置のハードウェア変換ロード・
シーケンスを示すフローチャートである。
【図10】アドレス変換装置のソフトウェア変換ロード
・サイクルを示すフローチャートである。
【図11】アドレス変換装置のソフトウェア・フラッシ
ュ・サイクルを示すフローチャートである。
【図12】アドレス変換装置のフラッシュ検査サイクル
を示すフローチャートである。
【符号の説明】
200 電子システム 210 マルチプロセッサ 220 メモリ 230 メモリ・バス 240 ブリッジ要素 250 入出力MMU 260 入出力装置 270 入出力バス 277、279 記述子 283 有効ビット 285 保護ビット 287 実物理ページ・ビット 289 サンプル記述子フォーマット 300 入出力バス・インタフェース・ロジック 310 ATMコア 311 SAR装置 320 全二重媒体 330 オフチップ・メモリ 340 ATM/物理インタフェース 350 物理層 400 入出力レジスタ・トランシーバ 410 スレーブ・インタフェース装置 415 入出力バス線 420 読取りバッファ 425 入力バス 430 書込みバッファ 440 マスタ・アドレス生成装置 450 アドレス変換装置(「ATU」) 500 CAM要素 502 RAM要素 504、505、506、508 選択要素 512 ヒット・ミス論理回路 518 ハードウェア・フラッシュ線 520 ソフトウェア・フラッシュ線 524 コマンド線 528、560、581ないし584 制御線 516、522、529、546、562 アドレス線 532 参照アドレス線 534 信号線 536 CAM_Hit線 538 RAM更新アドレス線 548 データ線 550 Wen線 572 エントリ状況線 580 ATU状態制御マシン
【手続補正書】
【提出日】平成9年10月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図3】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムであって、 a)第1のバスと、 b)前記第1のバスに結合されたメモリと、 c)第2のバスと、 d)前記第2のバスに結合され、仮想アドレス(VA)
    を物理アドレス(PA)に変換するように構成されたア
    ドレス変換装置(ATU)を含むネットワーク・ロジッ
    クと、 e)前記第1のバスおよび前記第2のバスに結合された
    バス・ブリッジとを備えることを特徴とするコンピュー
    タ・システム
  2. 【請求項2】 a)メイン・メモリと、 b)少なくとも1つのCPU(中央演算処理装置)と、 c)前記メイン・メモリおよび前記CPUに結合されシ
    ステム・バスと、 d)前記システム・バスに結合された、入出力MMU
    (入出力メモリ管理装置)を含むブリッジと、 e)少なくとも1つの入出力装置と、 f)前記ブリッジおよび前記入出力装置に結合された入
    出力バスと、 g)VA(仮想アドレス)をPA(物理アドレス)に変
    換するように構成されたATU(アドレス変換装置)を
    含む、前記入出力バスに結合されたネットワーク・ロジ
    ックとを備えることを特徴とするコンピュータ・システ
    ム。
  3. 【請求項3】 さらに、前記状態マシンへの入力に基づ
    いて前記アドレス変換装置を制御する状態マシンを含む
    ことを特徴とする請求項2に記載のコンピュータ・シス
    テム。
  4. 【請求項4】 さらに、 前記入出力バス上で前記アドレス変換装置からVAが発
    行されているかどうか、あるいは変換なしに前記IOM
    MUをバイパスすべきであるPAが前記入出力バス上で
    前記アドレス変換装置から発行されているかどうかを前
    記ブリッジに示す手段を含むことを特徴とする請求項2
    に記載のコンピュータ・システム。
  5. 【請求項5】 ネットワーク・インタフェース・カード
    の一部であり、 変換すべき仮想アドレスを受信するように構成された第
    1のメモリ要素と、 前記第1のメモリ要素に結合され、前記仮想アドレスに
    関連する物理アドレスを受信するように構成された第2
    のメモリ要素とを備えることを特徴とするアドレス変換
    装置。
  6. 【請求項6】 さらに、 前記アドレス変換装置が、前記仮想アドレスを送信する
    か、それとも前記仮想アドレスに関連する前記変換済み
    物理アドレスを送信するかを決定する制御ロジックとを
    含むことを特徴とする請求項5に記載のアドレス変換装
    置。
  7. 【請求項7】 第1のバスと、前記第1のバスに結合さ
    れたメイン・メモリと、第2のバスと、アドレス変換装
    置(「ATU」)を含む、前記第2のバスに結合された
    ネットワーク・ロジックと、前記第1のバスおよび前記
    第2のバスに結合されたバス・ブリッジとを含むコンピ
    ュータ・システムにおいて、仮想アドレスを物理アドレ
    スに変換する方法であって、 a)変換すべき仮想アドレスを前記アドレス変換装置に
    与えるステップと、 b)前記ATUからの出力を、(i)前記仮想アドレス
    に関連する変換済み物理アドレスとするか、それとも
    (ii)未変換の仮想アドレスとするかを決定するステッ
    プとを含むことを特徴とする方法。
  8. 【請求項8】 さらに、 前記第2のバス上で前記出力を発行するステップを含む
    ことを特徴とする請求項7に記載の方法。
  9. 【請求項9】 さらに、 前記仮想アドレスを前記物理アドレスに変換することが
    できるIOMMU(入出力メモリ管理装置)を含む、前
    記ブリッジに前記出力を与えるステップを含むことを特
    徴とする請求項7に記載の方法。
  10. 【請求項10】 状態マシンによって制御され、入出力
    バスを介してコンピュータ・システムに結合されたネッ
    トワーク・インタフェース・カード内で実施される、メ
    モリ要素とRAM要素とを含むアドレス変換装置(AT
    U)を使用する方法であって、 a)前記状態マシンに第1の状態を終了させ、第2の状
    態を開始させる条件を与えるステップと、 b)前記ATUがサイクルを実行するように前記状態マ
    シンに1組の命令を前記ATUに発行させるステップと
    を含むことを特徴とする方法。
JP9188924A 1996-07-01 1997-07-01 非同期モード(atm)セグメント化再アセンブリ装置仮想アドレス変換装置アーキテクチャ Pending JPH10187539A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/672982 1996-07-01
US08/672,982 US5983332A (en) 1996-07-01 1996-07-01 Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture

Publications (1)

Publication Number Publication Date
JPH10187539A true JPH10187539A (ja) 1998-07-21

Family

ID=24700830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9188924A Pending JPH10187539A (ja) 1996-07-01 1997-07-01 非同期モード(atm)セグメント化再アセンブリ装置仮想アドレス変換装置アーキテクチャ

Country Status (3)

Country Link
US (2) US5983332A (ja)
EP (1) EP0817083A1 (ja)
JP (1) JPH10187539A (ja)

Families Citing this family (78)

* 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
JP2965020B2 (ja) * 1998-01-09 1999-10-18 日本電気株式会社 専用処理インタフェースを持つsar
US6308147B1 (en) * 1998-05-21 2001-10-23 Hewlett-Packard Company Data structure synthesis in hardware using memory transaction translation techniques
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6735773B1 (en) 1998-06-27 2004-05-11 Intel Corporation Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US6657959B1 (en) 1998-06-27 2003-12-02 Intel Corporation Systems and methods for implementing ABR with guaranteed MCR
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US6603768B1 (en) 1998-06-27 2003-08-05 Intel Corporation Multi-protocol conversion assistance method and system for a network accelerator
US6728249B2 (en) 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
US6282589B1 (en) * 1998-07-30 2001-08-28 Micron Technology, Inc. System for sharing data buffers from a buffer pool
US6321276B1 (en) 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6304951B1 (en) * 1998-10-01 2001-10-16 International Business Machines Corporation Data processing system and method for generating virtual memory descriptors including pretranslated physical addresses
US6862635B1 (en) * 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
US6874065B1 (en) * 1999-02-26 2005-03-29 Hewlett-Packard Development Company, L.P. Cache-flushing engine for distributed shared memory multi-processor computer systems
US6788700B1 (en) * 1999-07-28 2004-09-07 Cisco Technology, Inc. Interfacing between a network interface and a bus
AU7060300A (en) 1999-08-16 2001-03-13 Iready Corporation Internet jack
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
US6643843B1 (en) * 1999-11-23 2003-11-04 Ellenby Technologies Inc. Methods and apparatus for optical communication update of program memory in embedded systems
US6948011B1 (en) * 1999-12-07 2005-09-20 Advanced Micro Devices Alternate Register Mapping
US20020031133A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick Embedded communication protocol using a UTOPIA-LVDS bridge
US20020031132A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick UTOPIA-LVDS bridge
US20020031141A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick Method of detecting back pressure in a communication system using an utopia-LVDS bridge
JP3593954B2 (ja) * 2000-05-31 2004-11-24 株式会社島津製作所 電子天びん
US7092390B2 (en) * 2000-09-07 2006-08-15 Sbc Technology Resources, Inc. Internal substitution bi-level addressing for compatible public networks
US7570646B2 (en) * 2000-10-02 2009-08-04 Texas Instruments Incorporated Apparatus and method for an interface unit for data transfer between a host processing unit and a multi-target digital signal processing unit in an asynchronous transfer mode
US6792502B1 (en) * 2000-10-12 2004-09-14 Freescale Semiconductor, Inc. Microprocessor having a content addressable memory (CAM) device as a functional unit therein and method of operation
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US7454456B2 (en) * 2002-02-14 2008-11-18 International Business Machines Corporation Apparatus and method of improving network performance using virtual interfaces
US7096287B1 (en) 2002-03-22 2006-08-22 Ametek, Inc. Automatic address selection method
US6807611B2 (en) 2002-04-05 2004-10-19 International Business Machine Corporation High speed selective mirroring of cached data
US7272145B2 (en) * 2002-07-31 2007-09-18 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network through proxy signaling
US7298750B2 (en) * 2002-07-31 2007-11-20 At&T Knowledge Ventures, L.P. Enhancement of resource reservation protocol enabling short-cut internet protocol connections over a switched network
US7301951B2 (en) * 2002-07-31 2007-11-27 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network
US7065092B2 (en) * 2002-07-31 2006-06-20 Sbc Properties, L.P. Resource reservation protocol based guaranteed quality of service internet protocol (IP) connections over a switched network using newly assigned IP addresses
GB0301448D0 (en) * 2003-01-22 2003-02-19 Falanx Microsystems As Microprocessor systems
US7444637B2 (en) * 2003-02-18 2008-10-28 Microsoft Corporation Systems and methods for scheduling coprocessor resources in a computing system
KR100988395B1 (ko) 2003-02-18 2010-10-18 마이크로소프트 코포레이션 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체
US7421694B2 (en) 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US6947051B2 (en) * 2003-02-18 2005-09-20 Microsoft Corporation Video memory management
WO2004092968A2 (en) 2003-04-11 2004-10-28 Sun Microsystems, Inc. Multi-node system with global access states
US7447203B2 (en) 2003-07-29 2008-11-04 At&T Intellectual Property I, L.P. Broadband access for virtual private networks
US7739394B2 (en) * 2003-07-29 2010-06-15 At&T Intellectual Property I, L.P. Bi-level addressing for internet protocol broadband access
US7822105B2 (en) * 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
WO2005047923A2 (en) 2003-09-02 2005-05-26 Sirf Technology, Inc. Signal processing system for satellite positioning signals
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US7260631B1 (en) 2003-12-19 2007-08-21 Nvidia Corporation System and method for receiving iSCSI protocol data units
US7624198B1 (en) 2003-12-19 2009-11-24 Nvidia Corporation Sequence tagging system and method for transport offload engine data lists
US7899913B2 (en) * 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
US7636800B2 (en) * 2006-06-27 2009-12-22 International Business Machines Corporation Method and system for memory address translation and pinning
US20080052463A1 (en) * 2006-08-25 2008-02-28 Nagabhushan Chitlur Method and apparatus to implement cache-coherent network interfaces
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US8068415B2 (en) * 2007-04-18 2011-11-29 Owl Computing Technologies, Inc. Secure one-way data transfer using communication interface circuitry
US8139581B1 (en) 2007-04-19 2012-03-20 Owl Computing Technologies, Inc. Concurrent data transfer involving two or more transport layer protocols over a single one-way data link
US8352450B1 (en) 2007-04-19 2013-01-08 Owl Computing Technologies, Inc. Database update through a one-way data link
US7941526B1 (en) 2007-04-19 2011-05-10 Owl Computing Technologies, Inc. Transmission of syslog messages over a one-way data link
US7992209B1 (en) 2007-07-19 2011-08-02 Owl Computing Technologies, Inc. Bilateral communication using multiple one-way data links
US9305189B2 (en) 2009-04-14 2016-04-05 Owl Computing Technologies, Inc. Ruggedized, compact and integrated one-way controlled interface to enforce confidentiality of a secure enclave
US8650337B2 (en) * 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
GB2495018B (en) 2010-07-19 2017-02-22 Owl Computing Tech Inc Secure acknowledgment device for one-way data transfer system
US20130179642A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9619382B2 (en) 2013-08-19 2017-04-11 Intel Corporation Systems and methods for read request bypassing a last level cache that interfaces with an external fabric
US9632947B2 (en) 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9361227B2 (en) 2013-08-30 2016-06-07 Soft Machines, Inc. Systems and methods for faster read after write forwarding using a virtual address
US9575987B2 (en) 2014-06-23 2017-02-21 Owl Computing Technologies, Inc. System and method for providing assured database updates via a one-way data link
WO2020236283A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for dynamic allocation of reduction engines
CN116166577A (zh) * 2021-11-25 2023-05-26 华为技术有限公司 处理器、地址转换的方法、装置、存储介质及程序产品

Family Cites Families (12)

* 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
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
GB8814076D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data processing system
US5155825A (en) * 1989-12-27 1992-10-13 Motorola, Inc. Page address translation cache replacement algorithm with improved testability
US5283876A (en) * 1990-10-05 1994-02-01 Bull Hn Information Systems Inc. Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry
GB9401092D0 (en) * 1994-01-21 1994-03-16 Newbridge Networks Corp A network management system
DE69429503T2 (de) * 1994-03-24 2002-05-16 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Übersetzungsmechanismus für Ein-/Ausgabeadressen
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
JP4008049B2 (ja) * 1995-03-20 2007-11-14 富士通株式会社 アドレス送信装置、アドレス送信方法およびアドレス送信システム
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5751951A (en) * 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface

Also Published As

Publication number Publication date
EP0817083A1 (en) 1998-01-07
US5983332A (en) 1999-11-09
US6049857A (en) 2000-04-11

Similar Documents

Publication Publication Date Title
JPH10187539A (ja) 非同期モード(atm)セグメント化再アセンブリ装置仮想アドレス変換装置アーキテクチャ
US6105110A (en) Circuit and method for replacement of address translations
US6813653B2 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
JP3594082B2 (ja) 仮想アドレス間データ転送方式
US6574708B2 (en) Source controlled cache allocation
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
US5854911A (en) Data buffer prefetch apparatus and method
US6622193B1 (en) Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system
US5915104A (en) High bandwidth PCI to packet switched router bridge having minimized memory latency
US6343345B1 (en) Cache blocking of specific data to secondary cache with a first and a second OR circuit
JPH07168780A (ja) ネットワークインタフェイス装置
US8161197B2 (en) Method and system for efficient buffer management for layer 2 (L2) through layer 5 (L5) network interface controller applications
US6487628B1 (en) Peripheral component interface with multiple data channels and reduced latency over a system area network
WO2002041157A2 (en) Method and apparatus for converting address information between pci bus protocol and a message passing queue-oriented bus protocol
US7194583B2 (en) Controlling the replacement of prefetched descriptors in a cache
US5937436A (en) Network interface circuit including an address translation unit and flush control circuit and method for checking for invalid address translations
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
JP2002084311A (ja) パケット転送処理装置
US6961837B2 (en) Method and apparatus for address translation pre-fetch
US7284075B2 (en) Inbound packet placement in host memory
JPH02302853A (ja) 改良型キャッシュアクセス方法及び装置
US20080005512A1 (en) Network performance in virtualized environments