(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
前記中央処理装置によってデータを処理するために、前記中央処理装置とデータフローを交換する、揮発性メモリと、不揮発性メモリと、複数のＩ／Ｏサブシステムとを有する周辺装置と、
前記中央処理装置と前記周辺装置との間、および前記周辺装置間にインターフェース・デバイスを備えるコンピュータ・システムであって、
前記インターフェース・デバイスは、
複数のインターフェース・プロセッサと、
命令を前記インターフェース・プロセッサにとってアクセス可能に格納する命令メモリと、
前記ネットワーク・プロセッサを介して、前記揮発性メモリ、前記不揮発性メモリ、前記複数のＩ／Ｏサブシステムとの間でやり取りするデータを、前記インターフェース・プロセッサにとってアクセス可能に格納するデータ・メモリと、
前記ネットワーク・プロセッサを介して渡されるデータを、前記周辺装置と交換する複数の入力／出力ポートと、
前記インターフェース・プロセッサによる、前記命令メモリにロードされた命令の実行に応答して、前記入力／出力ポートと、前記データ・メモリを介して前記揮発性メモリおよび前記不揮発性メモリとの間でやり取りされるデータのフローとの間のデータ交換を指示する際に、前記ネットワーク・プロセッサと共働する、高速パスを維持するために必要とされる管理機能および経路ディスカバリ機能を与える制御点プロセッサと
を有するインターフェース・デバイスであることを特徴とする
コンピュータ・システム。
【請求項２】
前記インターフェース・デバイスは、半導体基板を備え、さらに、前記半導体基板上に、前記インターフェース・プロセッサと、前記命令メモリと、前記データ・メモリと、前記入力／出力ポートとが形成された、請求項１に記載のコンピュータ・システム。
【請求項３】
前記インターフェース・プロセッサの数は、４個を超える、請求項１に記載のコンピュータ・システム。
【請求項４】
前記入力／出力ポートのうちの１つは、前記複数のＩ／Ｏサブシステムのうちの対応する１つとそれぞれ接続される、請求項１に記載のコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システム、および、ネットワーク・スイッチングの内部使用方法に関する。
【０００２】
【従来の技術】
ここで説明する発明の理解を助けるために、興味ある人は、以下の従来の開示文献を参照されたい。これらの開示文献は、この出願の明細書に関係する。
【０００３】
１９９１年４月１６日に発行された米国特許第５，００８，８７８号明細書“Ｈｉｇｈ  Ｓｐｅｅｄ  Ｍｏｄｕｌａｒ  Ｓｗｉｔｃｈｉｎｇ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｃｉｒｃｕｉｔ  ａｎｄ  Ｐａｃｋｅｔ  Ｓｗｉｔｃｈｅｄ  Ｔｒａｆｆｉｃ”。
【０００４】
１９９８年３月３日に発行された米国特許第５，７２４，３４８号明細書“Ｅｆｆｉｃｉｅｎｔ  Ｈａｒｄｗａｒｅ／Ｓｏｆｔｗａｒｅ  Ｉｎｔｅｒｆａｃｅｆｏｒ  ａ  Ｄａｔａ  Ｓｗｉｔｃｈ”。
【０００５】
１９９９年６月１１日に出願された米国特許出願第０９／３３０，９６８号明細書“Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｒａｌｌｅｌ／Ｓｅｒｉａｌ  Ｌｉｎｋ  ｆｏｒ  Ｄａｔａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ”。
【０００６】
１９９９年８月２７日に出願された米国特許出願第０９／３８４，６８９号明細書“ＶＬＳＩ  Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ  ａｎｄ  Ｍｅｔｈｏｄｓ”。
【０００７】
１９９９年８月２７日に出願された米国特許出願第０９／３８４，６９１号明細書“Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｃｏｍｐｌｅｘ  ａｎｄ  Ｍｅｔｈｏｄｓ”。
【０００８】
１９９９年８月２７日に出願された米国特許出願第０９／３８４，６９２号明細書“Ｎｅｔｗｏｒｋ  Ｓｗｉｔｃｈ  Ｃｏｍｐｏｎｅｎｔｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｏｐｅｒａｔｉｏｎ”。
【０００９】
１９９９年８月２７日に出願された米国特許出願第０９／３８４，７４４号明細書“Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ，Ｍｅｍｏｒｙ  Ｏｒｇａｎｉｚａｔｉｏｎ  ａｎｄ  Ｍｅｔｈｏｄｓ”。
【００１０】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、コンピュータ時代の始まりとしてしばしば引用されている。このとき以来、コンピュータ・システムは、極めて複雑な装置に進化し、コンピュータ・システムは、多くの種々の装置の中に見つけることができる。コンピュータ・システムは、典型的には、ハードウェア（例えば、半導体，回路ボードなど）と、ソフトウェア（例えば、コンピュータ・プログラム）との組合せを含む。半導体処理およびコンピュータ・アーキテクチャの進歩が、コンピュータ・ハードウェアの性能をより高度にするにつれて、このハードウェアの高性能を利用するために、より複雑なコンピュータ・ソフトウェアが進化し、今日では、２，３年前に存在したコンピュータ・システムよりもかなりパワフルなコンピュータ・システムが存在している。
【００１１】
さらに、技術における他の変化は、コンピュータをいかにして用いるかということに深く影響を与えた。例えば、コンピュータの広大な急増は、コンピュータを互いに通信させるコンピュータ・ネットワークの開発を促進した。パーソナルコンピュータ（ＰＣ）の導入に伴い、コンピュータを、多くの人が利用できるようになった。パーソナルコンピュータのネットワークが開発されて、個々のユーザが互いに通信できるようになった。このようにして、社内の多くの人が、１つのコンピュータ・システム上で実行されるソフトウェア・アプリケーションによって、ネットワーク上で同時に通信することができるようになった。
【００１２】
以下の説明は、ネットワーク・データ通信と、このような通信ネットワークにおいて用いられるようなスイッチおよびルーターの知識を前提としている。特に、以下の説明は、ネットワーク・オペレーションをレイヤに分割するネットワーク・アーキテクチャのＯＳＩモデルを熟知していることを前提としている。ＯＳＩモデルに基づく典型的なアーキテクチャは、レイヤ１（時には、“Ｌ１”と表記される）から拡張している。レイヤ１は、信号がレイヤ２，３，４などを介してレイヤ７に渡される物理的な経路または媒体である。最後に述べたレイヤ７は、ネットワークにリンクされたコンピュータ・システム上で実行されるアプリケーション・プログラミングのレイヤである。この明細書では、Ｌ１，Ｌ２などについての記述は、ネットワーク・アーキテクチャの対応するレイヤに言及することを意図している。この説明はまた、このようなネットワーク通信におけるパケットおよびフレームとして知られるビット・ストリングを基本的に理解していることを前提としている。
【００１３】
コンピュータ・システムの拡張性能において、求められている方法の１つは、パーソナルコンピュータ・システムのユーザに周知であるように、システムの中央処理装置すなわちＣＰＵとして用いられるマイクロプロセッサの動作速度すなわち基本クロック速度を増大することである。ＣＰＵの動作速度が、急激に増大するにつれて、データフロー速度は、このようなシステムにおける主メモリのアクセス速度能力を超えるようになった。同時に、ＣＰＵによってアクセスされるメモリの量が、急激に増大した。このようなメモリは、典型的には、揮発性および不揮発性の両方の形態で存在し、両タイプの使用可能なメモリ・ストレージが、最近、非常に増大してきた。このことは、コンピュータ・システムにおける主な困難性の１つをさらに強調することになった。すなわち、ＣＰＵ上で実行されるアプリケーション・ソフトウェアによって用いられる“仮想メモリ・アドレス”と、適切なメモリ素子またはコントローラ、および、このようなデバイス（揮発性、不揮発性、両方のいずれか）のアドレス・スペースにおける特定の位置をアクセスするために用いられる“物理メモリ・アクセス”とのマッピングである。上述したメモリ素子およびコントローラは、ＣＰＵの機能を支援する周辺装置である。
【００１４】
現在のコンピュータ・システムの実施は、多数の入力／出力すなわちＩ／Ｏコントローラと共に、単一の連続物理アドレス範囲としてメモリを与えるように構成された１つ以上のメモリ・コントローラを、周辺装置として与える。各コントローラは、システム・メモリ・スペースの外側に固有アドレス（または、狭い範囲のアドレス）を割り当てる。オペレーティング・システム（Ｍｉｃｒｏｓｏｆｔ，ＯＳ／２，Ｌｉｎｕｘなどの種々のＷｉｎｄｏｗｓ製品（これらに限定されないが）を含む多数のオペレーティング・システムがある）は、典型的には、システム上で実行されるアプリケーションの利点のために、かなり大きな連続する仮想メモリ・スペースを与える。システムが最初に始動すると、かなりの仮想メモリ・スペースが、直接、物理メモリにマッピングする。メモリ・スペースに対する要求が増大し、アプリケーション・プログラムがメモリ・アクセスに対する要求を変更させるにつれて、オペレーティング・システムは、ストレージＩ／Ｏサブシステムを介して、通常は、ハードディスク，ドライブ，またはファイルとして知られているダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）上のストレージに、アイドルメモリ・ブロックを“ページアウト（ｐａｇｅ  ｏｕｔ）”する。メモリ・スペースが、作成され、ページインされ、ページアウトされ、最後には解放されるので、物理メモリに対する仮想メモリのマッピングは、使用可能なメモリ内で殆ど完全にランダムになる。アプリケーション・ソフトウェアは、仮想アドレスのみを知っており、発行された各メモリ・アクセスは、所望のメモリ位置の適切な物理アドレスを、メモリ・コントローラにどうしても与えなければならならず、あるいは必要ならば、ディスク上にページを配置し、主メモリにページをアクセスする前に、ページインすることが必要とされる。物理アドレスへの仮想アドレスのマッピング・プロセス（仮想アドレス変換として知られている）は、コンピュータ・システムの全動作に対するオーバーヘッドを奪う有効な性能に寄与する。
【００１５】
【発明が解決しようとする課題】
本発明の目的は、本発明が実施されるコンピュータ・システムの性能を大きく改善するために、メモリ管理の主要な機能を実現するハードウェアを提供することにある。
【００１６】
【課題を解決するための手段】
この目的を追求する際、これらの機能は、アプリケーションのためのメモリアドレス・スペースの作成，解放，管理、仮想アドレスから物理アドレスへの変換、ページインおよびページアウト・オペレーションのためのメモリアドレスのディスク・ストレージへのマッピング、ページング機能の自律実行、キャッシング，パイプライニング，ページングによるメモリ最適化、および他のメモリ・アクセス方法を含むことができる。
【００１７】
用いられるハードウェアは、サーバまたはクライアント・システム（これらの用語は、コンピュータ・ネットワーク・アプリケーションの中で理解される）として機能することができるコンピュータ・システムに、コンピュータ・システムが互いに相互接続されるネットワーク・レベルにおいてこれまでに見られたスイッチングの形態を挿入する。従って、本発明は、このようなシステムの外部的な使用のために最近提供された特定の技術を、コンピュータ・システムの中で内部的に適用する。
【００１８】
【発明の実施の形態】
本発明の好適な実施例を示す図面を参照して、本発明を以下に十分に説明するが、以下の詳細な説明の初めに、当業者ならば、本発明の好ましい結果を依然として実現しながら、本発明を変更できることを理解すべきである。従って、以下の説明は、本発明に限定することなく、当業者に向けられた広い教示の開示として、および本発明を限定するものではないものとして理解されるべきである。
【００１９】
図１を参照すると、本発明によるコンピュータ・システム１００は、中央処理装置（ＣＰＵ）１１０，主メモリ１２０，大容量ストレージ・インターフェース１４０，およびネットワーク・インターフェース１５０を含み、これら全ては、システム・バス１６０によって接続されている。当業者ならば、このシステムが、全てのタイプのコンピュータ・システム、すなわち、パーソナルコンピュータ，中型コンピュータ，メインフレームなどを含むことが分かるであろう。本発明の範囲内では、このコンピュータ・システム１００に、多くの追加，変更，および削除を行わせることができることに注意されたい。その例は、コンピュータ・モニター，入力キーボード，キャッシュ・メモリ，およびプリンターなどの周辺装置である。本発明は、一般に、パーソナルコンピュータまたは中型コンピュータにより実現されるウェブサーバとして動作することができる。
【００２０】
ＣＰＵ１１０は、１つ以上のマイクロプロセッサおよび／または集積回路より構成することができる。ＣＰＵ１１０は、主メモリ１２０内に格納されたプログラム命令を実行する。主メモリ１２０は、コンピュータがアクセスできるプログラムおよびデータを格納する。コンピュータ・システム１００が始動すると、ＣＰＵはまず、オペレーティング・システム１３４のプログラム命令を実行する。オペレーティング・システム１３４は、簡単に前述したように、コンピュータ・システム１００のリソースを管理する複雑なプログラムである。これらリソースの幾つかは、ＣＰＵ１１０，主メモリ１２０，大容量ストレージ・インターフェース１４０，ネットワーク・インターフェース１５０，およびシステム・バス１６０である。
【００２１】
図示したように、主メモリ１２０は、ウェブサーバ・アプリケーション１２２，トランザクション・プロセッサ１２４，１つ以上のマクロファイル１２６，構成ファイル１２８，１つ以上の言語プロセッサ１３０，オペレーティング・システム１３４，１つ以上のアプリケーション・プログラム１３６，およびプログラム・データ１３８を含む。アプリケーション・プログラム１３６は、オペレーティング・システム１３４の制御の下で、ＣＰＵ１１０によって実行される。アプリケーション・プログラム１３６は、プログラム・データ１３８を入力として実行することができる。アプリケーション・プログラム１３６はまた、それらの結果を主メモリ内のプログラム・データ１３８として出力することもできる。コンピュータ・システム１００が、ウェブサーバとして動作すると、ＣＰＵ１１０は、特に、ウェブサーバ・アプリケーション１２２を実行する。トランザクション・プロセッサ１２４は、１つ以上のマクロファイル１２６内に格納されたＨＴＭＬページを処理するプログラムである。トランザクション・プロセッサ１２４が初期化されると、トランザクション・プロセッサは、構成ファイル１２８を読み取って、種々のタイプの照会を種々の言語プロセッサ１３０に相関させる。動的データに対する照会が、ページ内で見つかると、トランザクション・プロセッサ１２４は、構成データ（構成ファイルから読み出される）から、その照会を処理するためにどの言語プロセッサ１３０を呼び出すべきかを決定する。次に、適切な言語プロセッサ１３０が、メモリまたはデータベースのようなデータソースを照会して、動的データを検索する。言語プロセッサ１３０は、動的データを、トランザクション・プロセッサ１２４に渡し、トランザクション・プロセッサ１２４は、動的データを、選択されたページのＨＴＭＬデータの中に挿入する。
【００２２】
大容量ストレージ・インターフェースは、コンピュータ・システム１００に、磁気ディスク（ハードディスク，ディスケット）および光学的ディスク（ＣＤ−ＲＯＭ）のような補助ストレージ・デバイスからデータを検索して格納することを可能にする。これら大容量ストレージ・デバイスは、通常、ダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）として知られ、情報の永久ストアとして働く。１つの適切なタイプのＤＡＳＤは、フロッピーディスケット１８６に対してデータを読み取ったりデータを書き込んだりするフロッピーディスク・ドライブ１８０である。ＤＡＳＤからの情報は、多くの形式にすることができる。通常の形式は、アプリケーション・プログラムおよびプログラム・データである。大容量ストレージ・インターフェース１４０によって検索されたデータは、しばしば、主メモリ１２０内に格納され、この場合、ＣＰＵ１１０が、簡単に前述したページングインおよびページングアウト処理を用いて、データを処理できる。
【００２３】
主メモリ１２０およびＤＡＳＤデバイス１８０は、典型的には、別個のストレージ・デバイスであるが、コンピュータ・システム１００は、周知の仮想アドレッシング・メカニズムを用いるこの仮想アドレッシング・メカニズムは、コンピュータ・システム１００のプログラムを、複数の小さいストレージ・エンティティー（例えば、主メモリ１２０およびＤＡＳＤデバイス１８５）へのアクセスの代わりに、あたかも大きな単一のストレージ・エンティティーへのアクセスのみのように振る舞わせる。従って、特定の素子が、主メモリ１２０内に含まれるように示されるが、当業者ならば、これら素子全てが、同時に主メモリ１２０内に完全に含まれる必要はないことが分かるであろう。用語“メモリ”は、ここでは、総称的に、コンピュータ・システム１００の全仮想メモリ全体を示すことに注意すべきである。用語“アドレッシング”およびその用語の変形は、しばしば、共に前述したように、仮想アドレッシングと物理アドレッシングとの間に区別を設ける。
【００２４】
ネットワーク・インターフェース１５０は、コンピュータ・システム１００が、接続され得るネットワークとの間で、データを送受信することを可能にする。このネットワークは、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・ネットワーク（ＷＡＸ）、または、特にインターネット１７０とすることができる。インターネットに接続する適切な方法は、既知のアナログ技術および／またはデジタル技術と、将来開発されるネットワーキング・メカニズムとを含む。多くの異なるネットワーク・プロトコルを用いて、ネットワークを実現することができる。これらのプロトコルは、コンピュータをネットワーク上で通信させる特殊コンピュータ・プログラムである。インターネット上で通信するのに用いられるＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）は、適切なネットワーク・プロトコルの一例である。本発明を実現するためには、このようなプロトコルのいくつかを、システム１００と内部通信するために用いることができる。
【００２５】
システム・バス１６０は、データが、コンピュータ・システム１００の種々のコンポーネント間を転送されることを可能にする。コンピュータ・システム１００は、単一の主ＣＰＵおよび単一のシステム・バスのみを含むように示されているが、当業者ならば、本発明を、複数のＣＰＵおよび／または複数のバスを有するコンピュータ・システムを用いて実施できることが分かるであろう。
【００２６】
この時点では、本発明を、十分機能的なコンピュータ・システムに関連して説明した（また、説明を続けるであろう）が、当業者ならば、本発明の構成要素が、種々の形態のプログラム製品として配布でき、本発明が、配布を実際に行うために用いられる特定のタイプの信号保持媒体に拘わらず等しく適用できることが分かるということに注意することは重要である。信号保持媒体の例は、フロッピーディスクのような記録可能なタイプの媒体（例えば、図１の１８６）およびＣＤ−ＲＯＭと、デジタルおよびアナログ通信リンクのような伝送タイプの媒体とを含む。
【００２７】
本発明では、コンピュータ・システム１００は、ウェブサーバとして動作することができる。そのためには、ウェブサーバ・アプリケーション１２２が、ＣＰＵ１１０によって実行される。他のアプリケーション・プログラム１３６は、オペレーティング・システム１３４が、マルチタスキング・オペレーティング・システムであると仮定すれば、コンピュータ・システム１００上で同時に実行することができる。ウェブサーバは、一般に、インターネット１７０に接続される。前述したように、インターネットは、世界を広げ、多数のコンピュータによって共有される、周知のコンピュータ・ネットワークである。インターネット上には、多数のウェブサーバが存在する。インターネットにリンクされた各コンピュータは、ネットワーク上で他のコンピュータと通信することを可能にする自身の固有アドレスを有する。多くの種々の形式のデータを、インターネットによって送ることができる。その例として、電子メール，プログラム・データ，デジタル化ボイス・データ，コンピュータ・グラフィック，およびウェブページがある。デバイスに接続されたインターネット・アドレスは、通常、ヘッダとして知られているパケットまたはフレーム内にデータ部分を与えることによって、データと関連付けされる。このようなアドレッシング技術は、本発明の目標を追求する際に、コンピュータ・システム１００内で内部的に用いることができる。
【００２８】
本発明の重要な顕著な特徴によれば、システム・メモリを共に与え、および／または、直接アクセスする、ＣＰＵ１１０とシステム１００のこれらの要素との間に介在されるように、コンピュータ・システム１００内にノンブロッキング・スイッチ構造が与えられる。このスイッチ構造は、好適には、ネットワーク・プロセッサによって与えられ、関連する２次スイッチ構造を有しても有さないでもいずれでも機能する。ネットワーク・プロセッサは、図２の１７１で示すように、コンピュータ・システム１００に統合される。ネットワーク・プロセッサのシステムへの組み込みをこのようにして実現することによって、プロセッサ１７１からサブシステムの各々に、専用の全２重リンクを与えることによって性能に関する利点が得られる。これらサブシステムは、揮発性メモリ素子１７２，不揮発性メモリ素子１７４，ネットワーク・インターフェースのようなインターフェース・デバイス１７５，およびキーボードまたはディスプレイのような他の入力／出力デバイス１７６を含むことができる。プロセッサ１７１によって与えられるハードウェア内で、メモリアドレス変換，データ・パイプライニング，およびキャッシングを行うことによって、ＣＰＵ１１０のサイクルが、より有効な実行アプリケーション・ソフトウェアに解放される。これらメモリ制御機能をハードウェア補助機構によって実現することによって、複数の同時オペレーションを並列に実行することができる。この場合（対照的なものとして）、ソフトウェア・インプリメンテーションは、一度に１つのタスクのみを実行する。アドレススペースが連続的に作成，変更，削除されるメモリ管理の動的性質は、メモリをアクセスするようなプロセッサ間の競合を避けるために、各アドレス変換に、ソフトウェア・インプリメンテーションを実行するプロセッサを同期させることを強要する。
【００２９】
後に開示される装置に用いられるアーキテクチャは、ネットワーク・プロセッサ（ＮＰ）ハードウェア・サブシステム、および、任意には、制御点プロセッサ上で実行されるソフトウェア・ライブラリに基づいている。ネットワーク・プロセッサ・サブシステムは、Ｌ２，Ｌ３，Ｌ４＋データ・ストリングの構文解析および変換のために初期に構成された高性能フレーム転送エンジンである。ネットワーク・プロセッサ・サブシステムは、装置を経る高速パスを与えることができ、他方、ソフトウェア・ライブラリおよび制御点プロセッサは、高速パスを維持するために必要とされる管理機能および経路ディスカバリ機能を与える。制御点プロセッサおよびそこで実行されるソフトウェア・ライブラリは、共に、システムの制御点（ＣＰ）を定める。制御点プロセッサは、ネットワーク・プロセッサ内に組み込まれるか、ネットワーク・プロセッサから物理的に分離されるか、あるいは、無いものとすることができる。
【００３０】
産業コンサルタントは、ネットワーク・プロセッサを、以下の機能のうち１つ以上を実行できるプログラマブル通信集積回路として定義した。
【００３１】
パケット分類：アドレスまたはプロトコルのような既知の特徴に基づいてパケットを識別すること。
【００３２】
パケット変更：ＩＰ，ＡＴＭ，または他のプロトコルに従うようにパケットを変更する機能（例えば、ＩＰのヘッダ内の存続時間（ｔｉｍｅ−ｔｏ−ｌｉｖｅ）フィールドを更新する機能）。
【００３３】
キュー／ポリシー管理：パケット・キューイング，パケット・デキューイング，および特定アプリケーションのためのパケット・スケジューリングに対する設計戦略を反映させる機能。
【００３４】
パケット転送−スイッチ構造を経てデータを送信および受信し、および、パケットを適切なアドレスに転送またはルーティングする機能。
【００３５】
この定義は、初期のＮＰの基本構造の正確な記述であるが、ＮＰの全ての潜在的能力および利点は、まだ実現されていない。ＮＰは、予めソフトウェアで処理されたネットワーキング・タスクを、ハードウェアで実行させることによって、有効システム帯域幅を増大し、広範囲のアプリケーションにおける待ち時間の問題を解決することができる。さらに、ＮＰは、並列分散処理およびパイプライン処理構成のようなアーキテクチャによって、速度改善を与えることができる。これらの能力は、有効なサーチエンジンを使用可能にし、スループットを増大し、複合タスクの高速実行を与えることができる。この定義は、一般に、ワイド・エリア・ネットワーク（ＷＡＮ）に関係する用法と一致する用語“パケット”を用いる。ここで説明した本発明は、一般に、ローカル・エリア・ネットワーク（ＬＡＮ）に関係する用法と一致する用語である“フレーム”に対して同様に機能的である。本発明は、単一コンピュータ・システムの内部ワーキング内でのこの技術の応用を意図している。
【００３６】
ネットワーク・プロセッサは、ＣＰＵがＰＣに対するのと同じように、ネットワークに対する基本的ネットワーク構築ブロックとなることが予測されている。ＮＰによって与えられる典型的な能力は、リアルタイム処理，セキュリティ，格納および転送，スイッチ構造，およびＩＰパケットの処理能力および学習能力である。ここで働かされるように、このような能力が用いられて、基本的には、コンピュータ産業内で基準となっている内部バス構造から離れて、これまでにネットワーク・プロセッサによってこのようなバスに沿って発生するデータ転送を超えるようにする。本発明によって用いられるＮＰは、例えば、周知の内部バス構造において得られる能力を超える、アドレス変換およびプロセッサ間通信（ブロードキャストを含む）に能力を与える。本発明によって、これらの能力が、本発明によるコンピュータ・システム内で働かされることが意図されている。
【００３７】
プロセッサ・モデルＮＰは、複数の汎用プロセッサおよび特殊な論理回路を含む。プロセッサ・モデルＮＰは、低レベルの統合での分散処理を可能にし、高いスループット，フレキシビリティ，および制御を与える。プログラマビリティ（ｐｒｏｇｒａｍｍａｂｉｌｉｔｙ）は、新しいＡＳＩＣ構造を要求することなく、新しいプロトコルおよび方法への容易な移行を可能にする。
【００３８】
後に説明する装置の特定の部分は、その基本的な構築ブロックとして、ネットワーク・プロセッサ（ＮＰ）および制御点（ＣＰ）を用いて、モジュラーユニットとなるように構成されている。任意のスイッチング構造デバイスは、このようなユニットの３つ以上が互いに連結されるときに用いることができる。任意のスイッチング構造デバイスは（使用されるならば）、前述した１９９１年４月１６日に発行された米国特許第５，００８，８７８号明細書“Ｈｉｇｈ  ＳｐｅｅｄＭｏｄｕｌａｒ  Ｓｗｉｔｃｈｉｎｇ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｃｉｒｃｕｉｔ  ａｎｄ  Ｐａｃｋｅｔ  Ｓｗｉｔｃｈｅｄ  Ｔｒａｆｆｉｃ”に開示される。あるいはまた、単一ユニット（後述する）よりなるデータ・アライン・シリアル・リンク（ＤＡＳＬ）ポートを、アップサイドからダウンサイドに直接にリンクすることができ、単一ユニットを、ここで説明した方法の特定のアプリケーションに適切なタイプのスイッチとして働かせることができる。
【００３９】
好適には、また、ここで開示するように、本発明によって意図されるインターフェース・デバイス（また、ここでは、ネットワーク・プロセッサすなわちＮＰとみなされる）は、以下のものを有する単一の大規模集積（ＶＬＳＩ）回路デバイスすなわちチップである。すなわち、半導体基板と、基板上に形成された複数のインターフェース・プロセッサと、基板上に形成され、インターフェース・プロセッサへのアクセス可能な命令を格納する内部命令メモリと、基板上に形成され、デバイスを経てインターフェース・プロセッサに渡されるデータをアクセス可能に格納する内部データ・メモリと、複数の入力／出力ポートとを有する。また、インターフェース・プロセッサは、ここでは、しばしば、ピコプロセッサまたは処理ユニットとみなされる。与えられたポートは、内部データ・メモリを外部データ・メモリに接続する少なくとも１つのポートを有し、このような多数のポートは、インターフェース・デバイスを通るデータを、コンピュータ・システム１００のメモリ素子および周辺装置と交換するために必要とされる。制御点（存在するならば）は、命令メモリに以下のような命令をロードすることによって、インターフェース・デバイスと共働する。すなわち、命令は、データ交換入力／出力ポート間のデータ交換と、データ・メモリを経るデータのフローとを指示する際に、インターフェース・プロセッサによって実行される。ＣＰおよびＮＰは、単一の半導体基板上に集積することができる。
【００４０】
ここに開示するネットワーク・プロセッサは、それが組み込まれるアセンブリは別にして、進歩的であると考える。さらに、ここに開示するネットワーク・プロセッサは、ここに開示される要素の範囲内で、ここでは十分に説明していない他のおよびさらなる発明を有するものと考える。
【００４１】
より完全な理解のために、図３に、基板１０と、基板上に集積された複数のサブアセンブリとを有するネットワーク・プロセッサ・チップのブロック図を示す。サブアセンブリは、アップサイド構成およびダウンサイド構成に配置される。ここで用いられるように、“アップサイド”は、ここに開示するネットワーク・プロセッサへのデータのフローに関係し、一方、“ダウンサイド”は、ネットワーク・プロセッサから、ネットワーク・プロセッサによって指示されるデバイスまたは素子へのデータのフローをいう。このデータフローは、個々の構成に従う。その結果、アップサイド・データフローとダウンサイド・データフローとがある。アップサイドのサブアセンブリは、エンキュー・デキュー・スケジューリングＵＰ［Ｅｎｑｕｅｕｅ−Ｄｅｑｕｅｕｅ−Ｓｃｈｅｄｕｌｉｎｇ  ＵＰ（ＥＤＳ−ＵＰ）］ロジック１６，複合化ＩＯ−ＵＰ［ｍｕｌｔｉｐｌｅｘｅｄ  Ｉ／Ｏ−ＵＰ（ＰＰＭ−ＵＰ）］１４，スイッチ・データ・ムーバ［Ｓｗｉｔｃｈ  Ｄａｔａ  Ｍｏｖｅｒ−ＵＰ（ＳＤＭ−ＵＰ）］１８，システム・インターフェース［Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＩＦ）］２０，データ・アライン・シリアル・リンクＡ［Ｄａｔａ  Ａｌｉｇｎ  Ｓｅｒｉａｌ  Ｌｉｎｋ  Ａ（ＤＡＳＬＡ）］２２，およびデータ・アライン・シリアル・リンクＢ［ＤａｔａＡｌｉｇｎ  Ｓｅｒｉａｌ  Ｌｉｎｋ  Ｂ（ＤＡＳＬＢ）］２４を含む。データ・アライン・シリアル・リンクは、１９９９年６月１１月に出願された米国特許出願第０９／３３０，９６８号明細書“Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｒａｌｌｅｌ／Ｓｅｒｉａｌ  Ｌｉｎｋ  ｆｏｒ  Ｄａｔａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ”の中に十分説明される。ここに開示される本発明の装置の好適な形態は、ＤＡＳＬリンクを用いるが、本発明は、特に、データフローが、ＶＬＳＩ構造内にあるように制限されるところで、他の形態のリンクを用いて、かなり高いデータフロー速度を実現することを意図している。
【００４２】
ダウンサイドのサブアセンブリは、ＤＡＳＬ−Ａ２６，ＤＡＳＬ−Ｂ２８，ＳＩＦ３０，ＳＤＭ−ＤＮ３２，ＥＤＮ−ＤＮ３４，およびＰＰＭ−ＤＮ３６を含む。また、チップは、複数の内部Ｓ−ＲＡＭ，トラフィックＭｇｔスケジューラ（Ｔｒａｆｆｉｃ  Ｍｇｔ  Ｓｃｈｅｄｕｌｅｒ）４０，および組み込みプロセッサ複合体［Ｅｍｂｅｄｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｃｏｍｐｌｅｘ（ＥＰＣ）］１２を含む。インターフェース・デバイス３８は、個々のＤＭＵバスによって、Ｉ／Ｏポート１４および３６に結合される。インターフェース・デバイス３８は、コンピュータ・システム１００との内部通信に適した適切なＬ１回路とすることができる。このタイプのインターフェースは、部分的には、チップが接続されるデバイスおよび素子によって指示される。望ましくは、複数の外部Ｄ−ＲＡＭおよびＳ−ＲＡＭが、チップによる使用に対して利用できることである。
【００４３】
矢印は、ネットワーク・プロセッサ内の一般的なデータのフローを示す。例えば、Ｉ／Ｏポートから受け取られたデータフローは、ＥＤＳ−ＵＰによって内部データ・ストア（Ｄａｔａ  Ｓｔｏｒｅ）バッファ内に格納される。これらのデータフローは、通常のデータ・フレーム（Ｄａｔａ  Ｆｒａｍｅ）またはシステム制御ガイド化フレームのいずれかとしてみなされ、ＥＰＣにエンキューされる（図３を参照）。ＥＰＣは、最大Ｎ個（Ｎ＞１）の並列のフレームに作用できるＮ個のプロトコル・プロセッサを含む。１０個のプロトコル・プロセッサを有する実施例では、１０個のうち２個のプロトコル・プロセッサが特殊化される。すなわち、ガイド化フレーム（Ｇｕｉｄｅｄ  Ｆｒａｍｅ）を処理するプロトコル・プロセッサ（Ｇｅｎｅｒｉｃ  Ｃｅｎｔｒａｌ  ＨａｎｄｌｅｒすなわちＧＴＨ）と、コントロール・メモリ（Ｃｏｎｔｒｏｌ  Ｍｅｍｏｒｙ）内にルックアップ・データ（Ｌｏｏｋｕｐ  Ｄａｔａ）を構築するプロトコル・プロセッサ（Ｇｅｎｅｒｉｃ  Ｔｒｅｅ  ＨａｎｄｌｅｒすなわちＧＴＨ）である。ＥＰＣはまた、以下のものを含む。すなわち、データフローをアイドル・プロセッサにマッチングさせるディスパッチャ，フレーム・シーケンスを保持する完了ユニット，１０個のプロセッサ全てに共有される共通命令メモリ（Ｃｏｍｍｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｅｍｏｒｙ），フレーム種別とフレームの開始命令アドレスを決定する働きをするコプロセッサとを決定するクラシファイア・ハードウェア補助機構（Ｃｌａｓｓｉｆｉｅｒ  Ｈａｒｄｗａｒｅ  Ａｓｓｉｓｔ），フレーム・バッファの読み取りおよび書き込みオペレーションを制御するイングレスおよびエグレス・データ・ストア・インターフェース（Ｉｇｒｅｓｓ  ａｎｄ  Ｅｇｒｅｓｓ  Ｄａｔａ  Ｓｔｏｒｅ  ｉｎｔｅｒｆａｃｅ），１０個のプロセッサが制御メモリを共有することを可能にする制御メモリ・アービタ（Ｃｏｎｔｒｏｌ  Ｍｅｍｏｒｙ  Ａｒｂｉｔｅｒ），内部ＮＰデータ構造へのデバッグ・アクセスを可能にするウェブ制御アービタおよびインターフェース（Ｗｅｂ  Ｃｏｎｔｒｏｌ  Ａｒｂｉｔｅｒ  ａｎｄ  ｉｎｔｅｒｆａｃｅ），および、他のハードウェア構成を含む。
【００４４】
ガイド化フレームは、使用可能になったときに、ディスパッチャによってＧＣＨプロセッサに送信される。ガイド化フレーム内にエンコードされた、レジスタ書き込み，カウンタ読み取り，Ｉ／Ｏポート構成変更などのようなオペレーションが、実行される。追加ポートエントリのようなルックアップ・テーブル変更は、メモリ読み取りおよび書き込みのような制御メモリ・オペレーションのためのルックアップ・データ・プロセッサに渡される。ＭＩＢカウンタ読み取りのような幾つかのコマンドは、応答フレームが作成されて、適切なデバイス上の適切なポートに転送されることを要求する。幾つかのケースでは、ガイド化フレームは、インターフェース・デバイスのエグレス・サイドに対してエンコードされる。これらのフレームは、照会されているインターフェース・デバイスのエグレス・サイドに転送され、その後、エンコードされたオペレーションを実行し、適切な応答フレームを作成する。
【００４５】
データ・フレームは、フレーム・ルックアップを実行するために、次の使用可能なプロトコル・プロセッサにディスパッチされる。フレーム・データは、クラシファイア・ハードウェア補助機構（ＣＨＡ）エンジンからの結果と共に、プロトコル・プロセッサに渡される。この結果は、ツリーサーチ・アルゴリズムおよび開始している共通命令アドレス（ＣＩＡ）を決定する。支援されるツリーサーチ・アルゴリズムは、以下のものを含むことができる。すなわち、固定マッチツリー（レイヤ２のＭＡＣテーブルのような正確なマッチングを要求する固定サイズパターン），最長接頭部マッチツリー（サブネットＩＰ転送のような可変長マッチヲ要求する可変長パターン），および、ソフトウェア管理のツリー（フィルタルールに用いられるような範囲またはビットマスク・セットのいずれかを定める２つのパターン）である。
【００４６】
ルックアップは、各々のプロトコル・プロセッサの一部であるツリーサーチ・エンジン（ＴＳＥ）コプロセッサの補助によって実行される。ＴＳＥコプロセッサは、制御メモリ・アクセスを実行し、実行を継続するために、プロトコル・プロセッサを解放する。制御メモリは、テーブル，カウンタ，およびピココードによって必要とされる他のデータを全て格納する。制御メモリ・オペレーションは、１０個のプロセッサ複合体間のメモリ・アクセスを調停する制御メモリ・アービタによって管理される。
【００４７】
フレーム・データは、データ・ストア・コプロセッサによりアクセスされる。データ・ストア・コプロセッサは、１次データ・バッファ（フレーム・データの１６バイト・セグメントを最大８個まで保持する），スクラッチ・パッド・データ・バッファ（また、フレーム・データの１６バイト・セグメントを最大８個まで保持する），およびデータ・ストア・オペレーションのための所定の制御レジスタを含む。マッチングが見つかると、イングレス・フレーム変更は、ＶＬＡＮヘッダ挿入またはオーバーレイを含むことができる。この変更は、インターフェース・デバイス・プロセッサ複合体によって実行されず、むしろハードウェア・フラグは、引き出され、他のイングレス・スイッチ・インターフェース・ハードウェアが、変更を実行する。他のフレーム変更は、イングレス・データ・ストア内に保持されたフレーム・コンテンツを変えることによって、ピココードおよびデータ・ストア・コプロセッサによって実現される。
【００４８】
エグレス・ツリーサーチは、イングレス・サーチに対して支援された同じアルゴリズムを支援する。ルックアップは、ＴＳＥコプロセッサによって実行され、実行を続けるために、プロトコル・プロセッサを解放する。全ての制御メモリ・オペレーションは、制御メモリ・アービタによって管理され、制御メモリ・アービタは、１０個のプロセッサ複合体間にメモリ・アクセスを割り当てる。
【００４９】
エグレス・フレーム・データは、データ・ストア・コプロセッサによってアクセスされる。データ・ストア・コプロセッサは、１次データ・バッファ（フレーム・データの１６バイト・セグメントを最大８個まで保持する），スクラッチパッド・データ・バッファ（また、フレーム・データの１６バイト・セグメントを最大８個まで保持する），およびデータ・ストア・オペレーションのための幾つかの制御レジスタを含む。成功したルックアップの結果は、転送情報と、所定の場合には、フレーム変更情報を含む。フレーム変更は、ヘッダ削除，ヘッダ・チェックサム再計算，ＣＲＣオーバーレイまたは挿入，およびＤＡ／ＳＡオーバーレイまたは挿入を含むことができる。ヘッダ・チェックサムは、チェックサム・コプロセッサによって準備される。変更は、インターフェース・デバイス・プロセッサ複合体によって実行されず、むしろハードウェア・フラグが作成され、ＰＭＭエグレス・ハードウェアが、変更を実行する。完了すると、エンキュー・コプロセッサを用いて、ＥＤＳエグレス・キュー内にフレームをエンキューし、それらを完了ユニットに送るのに必要なフォーマットを作成するのを助ける。完了ユニットは、１０個のプロトコル・プロセッサから、エグレスＩ／Ｏポートに送るＥＤＳエグレス・キューまでのフレーム・オーダーを保証する。
【００５０】
完成したフレームは、最後に、ＰＭＭエグレス・ハードウェアによってポートに送られる。
【００５１】
一般に、本発明を実施するシステム１００にほぼ類似する従来のコンピュータ・システムにおいては、キャッシュ管理は、通常、メモリ・コントローラ内のハードウェア機能である。このような実施は、一般に、“自身の”種々のメモリ・セグメントを検索できる変更アプリケーション・プログラムを説明することはできない。本発明の実施では、メモリ・スペースの所有権は、メモリ・コンテンツのキャッシングと共に、よりインテリジェントに管理され、従って、フィル・キャッシュのよりインテリジェントな組は、キャッシュせず、アプリケーションが、よりアクティブとなるか、あるいはアクティビティを停止させるときに、また、メモリ・スペースが、ページインおよびページアウトするときに、パージ・キャッシュ決定を行うことができる。ＮＰは、メモリ・スペースとアプリケーションとの間に類似性を維持することができ、このことは、優先度およびセキュリティのような種々の属性へのリンケージを可能にする。その結果、メモリは、仮想メモリ読み取りまたは書き込みオペレーションの各々および全部に基づいて、最適化されるよりはむしろ、実行アプリケーション・プログラムのコンテキスト内でグローバルに管理される。
【００５２】
内部バス（ここでは、ウェブと呼ばれる）は、内部レジスタ，カウンタ，およびメモリへのアクセスを可能にする。ウェブはまた、デバッギングおよび診断のための命令ステップおよび割り込み制御を制御する外部インターフェースを含む。
【００５３】
ツリーサーチ・エンジン・コプロセッサは、無許可のメモリ・アクセス通知をチェックするメモリ範囲を与え、プロトコル・プロセッサ実行と並列に動作するツリーサーチ命令（メモリ読み取り，書き込み，または、読み取り−加算−書き込みのような）を実行する。
【００５４】
ディスパッチャーは、１０個のプロトコル・プロセッサへのフレームの送りを制御し、割り込みおよびタイマーを管理する。
【００５５】
完了ユニットは、プロセッサ複合体からターゲット・ポート・キューまでのフレーム・オーダーを保証する。リッチ命令セットは、条件付き実行，パッキング（入力ハッシュ・キーのための），条件付き分岐，符号付きおよび符号なしのオペレーション，先行ゼロ以上のカウントを含む。
【００５６】
クラシファイア・ハードウェア補助機構エンジンは、各フレームのプロトコル・ヘッダを渡し、この情報にフレームを与える（フレームがプロトコル・プロセッサにディスパッチされるとき）。
【００５７】
制御メモリ・アービタは、内部および外部の両方のメモリへのプロセッサ・アクセスを制御する。
【００５８】
エグレス・フレームは、１つの外部データ・バッファ（例えば、ＤＳ０）、または２つの外部データ・バッファ（ＤＳ０およびＤＳ１）のいずれかに格納することができる。各バッファは、１対の２Ｍ×１６ビット×４バンクのＤＤＲ  ＤＲＡＭ（６４バイトのフレームを最大２５６Ｋまで格納する），または、１対の４Ｍ×１６ビット×４バンクのＤＤＲ  ＤＲＡＭ（６４バイトのフレームを最大５１２Ｋまで格納する）で構成することができる。４．５７Ｍｂｐのレイヤ２およびレイヤ３のスイッチングを支援するためには、２．２８Ｍｂｐｓに対しての単一の外部データ・バッファ（例えばＤＳ０）を選択するか、または、第２のバッファ（例えばＤＳ１）を追加する。第２のバッファの追加は、性能を改善するが、フレーム容量を増大することはない。外部データ・バッファ・インターフェースは、２６６ＭＨｚのデータ・ストローブ、１３３ＭＨｚのクロック速度で実行し、構成可能なＣＡＳの待ち時間およびドライブ強度を支援する。
【００５９】
ポート・ミラーリングは、１つの受信ポートおよび１つの送信ポートが、プロトコル・プロセッサ・リソースを用いることなく、システム指示された監視ポートにコピーされることを可能にする。ミラーリングされたインターフェース・デバイス・ポートは、フレームおよびスイッチ制御データを付加するように構成される。個別データ・パスは、イングレス・スイッチ・インターフェースへのダイレクト・フレーム・エンキューイングを可能にする。
【００６０】
図面および詳細な説明では、本発明の好適な実施例を説明した。また、特定の用語が用いられているが、前述した説明は、限定するためにではなく、総称的および説明の意味で、専門用語を用いている。
【００６１】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）中央処理装置と、
前記中央処理装置に動作的に関連する複数の周辺装置とを備え、前記複数の周辺装置は、前記中央処理装置によってデータを処理するために、前記中央処理装置とデータフローを交換する、揮発性メモリと、不揮発性メモリと、複数のＩ／Ｏサブシステムとを有し、
前記中央処理装置と前記周辺装置との間、および前記周辺装置間に動作的に介在されたネットワーク・プロセッサを備え、
前記ネットワーク・プロセッサは、
複数のインターフェース・プロセッサと、
命令を前記インターフェース・プロセッサにとってアクセス可能に格納する命令メモリと、
前記ネットワーク・プロセッサを介して、前記周辺装置との間でやり取りするデータを、前記インターフェース・プロセッサにとってアクセス可能に格納するデータ・メモリと、
前記ネットワーク・プロセッサを介して渡されるデータを、前記周辺装置と交換する複数の入力／出力ポートとを有し、
前記インターフェース・プロセッサによる、前記命令メモリにロードされた命令の実行に応答して、前記入力／出力ポート間のデータ交換と、前記データ・メモリを介して前記揮発性メモリおよび前記不揮発性メモリとの間でやり取りされるデータのフローとを指示する際に、前記ネットワーク・プロセッサが前記中央処理装置と共働する、コンピュータ・システム。
（２）前記ネットワーク・プロセッサは、半導体基板を備え、さらに、前記半導体基板上に、前記インターフェース・プロセッサと、前記命令メモリと、前記データ・メモリと、前記入力／出力ポートとが形成された、上記（１）に記載のコンピュータ・システム。
（３）前記インターフェース・プロセッサの数は、４個を超える、上記（１）に記載のコンピュータ・システム。
（４）前記入力／出力ポートのうちの１つは、前記複数のＩ／Ｏサブシステムのうちの対応する１つとそれぞれ動作的に接続される、上記（１）に記載のコンピュータ・システム。
（５）コンピュータ・システム内を転送されるデータのビット・ストリームを、ネットワーク・プロセッサを介して、中央処理装置との間でやり取りするステップと、
前記コンピュータ・システム内を転送されるデータのビット・ストリームを、前記ネットワーク・プロセッサを介して、前記中央処理装置と動作的に関連する周辺装置との間でやり取りするステップと、
前記ネットワーク・プロセッサにおいて、前記ビット・ストリームについての、仮想メモリ・アドレスおよび物理メモリ・アドレスを処理して変換するステップとを含む、方法。
（６）前記アドレスを処理するステップは、ビット・ストリームを複数のデバイスに送受信するステップを含む、上記（５）に記載の方法。
【図面の簡単な説明】
【図１】本発明が実施されるコンピュータ・システムを示す図である。
【図２】図１のコンピュータ・システムの一部を示す概略図であり、この環境における本発明の実施を示す図である。
【図３】本発明で用いられるネットワーク・プロセッサの概略図である。
【図４】本発明で用いられるネットワーク・プロセッサの概略図である。
【符号の説明】
１０  基板
１２  ＥＰＣ
１８  ＳＤＭ−ＵＰ
２０，３０  ＳＩＦ
２２  ＤＡＳＬＡ
２４  ＤＡＳＬＢ
３４  ＥＤＳ−ＤＮ
４０  Ｔｒａｆｆｉｃ  Ｍｇｔ  Ｓｃｈｅｄｕｌｅｒ
１００  コンピュータ・システム
１１０  中央処理装置（ＣＰＵ）
１２０  主メモリ
１２２  ウェブサーバ・アプリケーション
１２４  トランザクション・プロセッサ
１２６  マクロファイル
１２８  構成ファイル
１３０  言語プロセッサ
１３４  オペレーティング・システム
１３６  アプリケーション・プログラム
１３８  データ
１４０  大容量ストレージＩ／Ｆ
１５０  ネットワークＩ／Ｆ
１６０  システム・バス
１７０  インターネット
１７１  プロセッサ
１７２  揮発性メモリ素子
１７４  不揮発性メモリ素子
１７５  ネットワーク・インターフェース
１７６  ディスプレイ
１８０  フロッピーディスク・ドライブ
１８６  フロッピーディスク
【図１】
0003935684.tif 000002
【図２】
0003935684.tif 000003
【図３】
0003935684.tif 000004
【図４】
0003935684.tif 000005