(57)【特許請求の範囲】
【請求項１】
複数のネットワーク・プロセッサのためのデータ転送システムであって、
（ａ）各々がタイム・クロックの立ち上がり縁部分上及び立ち下がり縁部分上の両方でデータを移すことができる並列した一対のダブル・データ・レート（ＤＤＲ）ＤＲＡＭチップと、
（ｂ）前記タイム・クロックの所定の複数サイクルを一単位とするセルの間で、「読み出し」ウィンドウと「書き込み」ウィンドウとを定義し、前記「読み出し」ウィンドウおよび「書き込み」ウィンドウの各々の間で前記ＤＤＲＤＲＡＭチップ内の４つのメモリ・バンクに対応する複数のタイムスロットを設け、前記複数のタイムスロットの各々に前記複数のネットワーク・プロセッサの何れかを時分割で割り当てることによって、前記４つのメモリ・バンクの各々から各ネットワーク・プロセッサにデータを読み出し、その後に各ネットワーク・プロセッサから前記４つのメモリ・バンクの各々にデータを書き込むことを可能とするマルチプレクサと、
を有すること特徴とするデータ転送システム。
【請求項２】
さらに、２つのＤＤＲ  ＤＲＡＭと対応のネットワーク・プロセッサとの間で「読み出し」データ及び「書き込み」データを転送するためのパイプラインを有することを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
さらに、所定のサイズからなる複数のデータ格納バッファを有することを特徴とする請求項１に記載のデータ転送システム。
【請求項４】
前記データ格納バッファの各々は、６４バイトのバッファであり、また各メモリ・バンクはデータ格納バッファの１／４を構成することを特徴とする請求項３に記載のシステム。
【請求項５】
各々がタイム・クロックの立ち上がり縁部分上及び立ち下がり縁部分上の両方でデータを移すことができる並行して動作しかつクロックが同調した第１及び第２のダブル・データ・レート（ＤＤＲ）ＤＲＡＭチップと、
前記タイム・クロックの所定の複数サイクルを一単位とするセルの間で、「読み出し」ウィンドウと「書き込み」ウィンドウとを定義し、前記「読み出し」ウィンドウおよび「書き込み」ウィンドウの各々の間で前記ＤＤＲ  ＤＲＡＭチップ内の４つのメモリ・バンクに対応する複数のタイムスロットを設け、前記複数のタイムスロットの各々に複数のネットワーク・プロセッサの何れかを時分割で割り当てることによって、前記４つのメモリ・バンクの各々から各ネットワーク・プロセッサにデータを読み出し、その後に各ネットワーク・プロセッサから前記４つのメモリ・バンクの各々にデータを書き込むことを可能とするマルチプレクサと、を有する前記複数のネットワーク・プロセッサのためのデータ転送システムでのデータの格納及び移動を行う方法であって、
（ａ）前記第１及び第２のＤＤＲ  ＤＲＡＭチップにデータを格納するステップと、
（ｂ）ＤＤＲ  ＤＲＡＭクロックの各繰り返しセルで所定のサイクル数を含むデータ移動パターンを確立するステップと、
（ｃ）前記「読み出し」ウィンドウ内の全ての前記タイムスロットで「読み出し」を行うために該パターンに含まれる連続したサイクルの集まりを確保するステップと、
（ｄ）前記「書き込み」ウィンドウ内の全ての前記タイムスロットで「書き込み」を行うために該パターンに含まれる第２の連続したサイクルの集まりを確保するステップと、
を含むことを特徴とする方法。
【請求項６】
さらに、各「読み出し」ウィンドウ又は各「書き込み」ウィンドウからのデータをバッファに格納するステップを有することを特徴とする請求項５に記載の方法。
【請求項７】
各バッファの記憶容量は６４バイトであり、かつ、複数のバッファを有し、各ウィンドウからの６４バイトのデータが前記各バッファにバースト転送される請求項６に記載の方法。
【請求項８】
さらに、「読み出し」ウィンドウの間のデータの読み出しを前記４つのメモリ・バンクからの連続した読み出しとし、それに続いて「書き込み」ウィンドウの間のデータの書き込みを前記４つのメモリ・バンクへの連続した書き込みとすることを可能とするためのパイプライン処理を行うステップを有することを特徴とする請求項５に記載の方法。
【請求項９】
データは、６４バイトのバーストで読み出し又は書き込みされることを特徴とする請求項８に記載の方法。
【請求項１０】
フレーム・サイズにかかわらずネットワーク・プロセッサによって処理されている多重フレームのためのデータの高帯域幅移動を提供するネットワーク・プロセスのアービトレーション方法であって、
（ａ）ＤＲＡＭチップ内のバンクａ，ｂ，ｃ，及びｄの各々を読み出すためのタイム・スロットとバンクａ，ｂ，ｃ，及びｄの各々を書き込みための別のタイム・スロットとを確立するステップと、
（ｂ）所定のフレームにとって、どのバンクが読み出しを必要とし、またどのバンクが書き込みを必要とするかを判断するステップと、
（ｃ）前記所定のフレームに必要とされる前記バンクのみをアクセスするステップと、
（ｄ）各タイム・スロット中に「読み出し」アクセスを必要としているフレームをレビューするステップと、
（ｅ）「ａ」バンクに対して「読み出し」アクセスを必要とする全てのフレーム間のすべての「ａ」バンクについてアービトレートするステップと、
（ｆ）順に、「ｂ」、「ｃ」、及び「ｄ」バンクへのアクセスを必要とするフレームについて「ｂ」、「ｃ」、及び「ｄ」バンク全てに対してアービトレートするステップと、
を有することを特徴とする方法。
【請求項１１】
さらに、前記（ｄ）、（ｅ）、及び（ｆ）のステップを繰り返すステップを有することを特徴とする請求項１０に記載の方法。
【請求項１２】
ＤＲＡＭチップの複数のバンクａ，ｂ，ｃ，．．．に対し読み出しまたは書き込みアクセスためのタイム・スロットを確立し、前記複数のバンクａ，ｂ，ｃ，．．．に対するランダムな「読み出し」及び「書き込み」アクセスをネットワーク・プロセッサに提供する方法であって、
（ａ）「読み出し」ウィンドウ中、実行される必要がある任意の「読み出し」命令についてバンク「ａ」に優先順位を与えるためにアービトレーションするステップと、
（ｂ）もし「読み出し」アクセスがバンク「ａ」から利用可能でなければ、バンク「ａ」アクセスを「書き込み」命令に与えるステップと、
（ｂ１）前記「書き込み」アクセスを次のバンク「ｂ」に与えるステップと、
（ｃ）もしバンク「ｂ」アクセスがバンク「ａ」のアクセスと異なるものならば、バンク「ｂ」へのアクセスをスキップしてバンク「ｃ」にアクセスを与えるステップと、
（ｄ）バンク「ｃ」が「読み出し」又は「書き込み」のいずれかにかかわらず優先順位をバンク「ｃ」に当てるようにアービトレーションを変更するステップと、
を有することを特徴とする方法。
【請求項１３】
もし前記ステップ（ａ）で「読み出し」アクセスがバンク「ａ」から利用可能であるならば、前記バンク「ａ」を読み出した後にバンク「ｂ」に「読み出し」アクセスを与えることを特徴とする請求項１２に記載の方法。
【請求項１４】
「書き込み」ウィンドウ中、前記ステップ（ａ）から前記ステップ（ｄ）までを繰り返すことを特徴とする請求項１２に記載の方法。
【請求項１５】
さらに、情報を制御するためにランダム・アクセスを用いるステップを有することを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダブル・データ・レートＤＲＡＭ（ＤＤＲ  ＤＲＡＭ）に基づいた電子計算機記憶装置に関するもので、特にＤＲＡＭにおけるデータ転送速度のアップグレードに関する。
【０００２】
【従来の技術】
コンピュータのメイン・メモリは、所定のタスクに関する命令を実行するための中央演算処理装置（ＣＰＵ）によって要求されるデータ及びプログラムを格納する。このメイン・メモリに格納されたデータへのアクセスに要する時間は、命令を実行するのに利用可能な時間を減じるもので、コンピュータの全体的な動作速度を遅くする。メモリ・アクセスの時間を減少させるものならば何でもコンピュータの動作速度を増加させるのに役立つ。メイン・メモリはランダム・アクセス・メモリ（ＲＡＭ）装置と呼ばれる半導体記憶装置に格納される。ＲＡＭの最も一般的なタイプは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）とスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）である。これらの装置の各々は、それ自体の利点及び欠点を有する。
【０００３】
ネットワーク・プロセッサは、所定の長さのシーケンスからなるフレームをフォワーディング、ルーティング、及びフィルタリングする上で、コンピュータの世界でより一層重要になっている。より大きなネットワークが構築されるにつれて、ネットワーク・プロセッサは益々多くのトラフィック及び帯域幅に対する要求を満たす必要性が増加していく。いくつかのギガビット・ポートを処理することができるネットワーク・プロセッサを構築するために、単位時間あたりに大量のデータを転送するために、広帯域要求に追随される従来の設計はデータ記憶装置としてＳＲＡＭに頼っていた。しかし、ＳＲＡＭはそのような解決策のコストを上げるので、より安い解決策が探し求められた。ＤＲＡＭは、ネットワーク・プロセッサで必要とされるより大きいデータ記憶装置の手助けとなるより大きいアレイ・サイズと低コストという利点を持つ。ＤＲＡＭチップの使用に関連したいくつかの不利な点がある。一つは、「読み出し」又は「書き込み」アクセスの間に生ずるＤＲＡＭチップの高レイテンシである（ＤＲＡＭにアドレスするための数サイクルの遅延）。もう一つは、メモリの読み出し及び書き込みに関する複雑な規則である。ＲＡＳ及びＣＡＳ規則は、ＳＲＡＭによって可能なアクセスとは異なったメモリへのランダム・アクセスを制限する。また、２ミリ秒毎に、又は固有のコンデンサ・リークのせいで、メモリを周期的にリフレッシュする必要がある。
【０００４】
より新しいダブル・データ・レートＤＲＡＭ（ＤＤＲ  ＤＲＡＭ）は、クロックパルスの立ち上がり時及び立ち下がり時の両方でデータを移すことで、通常のＤＲＡＭよりも２倍速いデータ転送を可能とする。このアプローチを用いることで、データがクロック・パルスの縁部分立ち上がり時及び縁部分立ち下がり時の両方で転送され、効果的に帯域幅が２倍になる。このようなＤＤＲ  ＤＲＡＭは、手を加えていない帯域幅を最大４．２ギガビットまで可能とする１３３ＭＨｚ（さらにそれ以上）まで速度が上昇する。
【０００５】
サイズが固定されているバッファを使用することは、固定されたパケット・サイズを持つＡＴＭ等のネットワーク・システムで十分に働く。しかし、様々なフレーム・サイズがあるイーサーネットのようなネットワークでは、６４バイト・バッファの使用は、データ記憶装置に対して著しいパフォーマンス・ヒットが生ずる。例えば、６４バイト・フレームがデータ記憶装置に格納されていると仮定する。このことは、データを格納するための２つのバッファ、データをＤＲＡＭに「書き込む」ための２つの「書き込み」ウィンドウ、及びＤＲＡＭからデータを読み出すための２つの「読み出し」ウィンドウを必要とするであろう。本発明を説明する目的で、「ウィンドウ」はＤＲＡＭからのデータの読み出し動作又はＤＲＡＭへのデータの書き込み動作の間のタイム・スロットとして定義する。システム帯域幅は、この６８バイト・フレーム上で動作するためにほぼ半分にカットされる。ＤＲＡＭがＲＡＳ及びＣＡＳに関する複雑な規則を有し、かつ全くランダムなアクセスをサポートしていないことから、もし何かがこの状況を補償するために実行されなければ６４バイト・フレームにアクセスした時にＤＲＡＭ帯域幅が失われるであろう。
【０００６】
【発明が解決しようとする課題】
本発明の第１の目的は、ＤＲＡＭシステムを用いてネットワーク・プロセッサのための記憶容量及びデータ転送率を増加させることである。
【０００７】
本発明の第２の目的は、ネットワーク・プロセッサで使用するために、より幅広い帯域幅によるデータの転送を達成することである。
【０００８】
本発明の第３の目的は、ＤＲＡＭへのデータ転送及びＤＲＡＭからのデータ転送に使用されるクロック周波数を最大にするためにネットワーク・プロセッサによって必要とされるデータの移動を制御することである。
【０００９】
本発明の第４の目的は、ネットワーク・プロセッサによる多重フレームのサービスをアービトレーションする能力を持つことである。
【００１０】
本発明の第５の目的は、ＤＲＡＭの「読み出し」及び「書き込み」をランダム化可能とすることである。
【００１１】
これらの目的、及びこの記述を読んで理解することで当業者によって自明になるであろう他の目的は、以下のようにして達成される。
【００１２】
ネットワーク・プロセッサのための改善されたデータ転送システムは、以下の機能を一つ以上含むランダム・アクセス・メモリ（ＤＲＡＭ）チップを使用する。すなわち、その機能とは、（ａ）各々がタイム・クロックの立ち上がり縁部分上及び立ち下がり縁部分上の両方でデータを移すことができる並列した一対のダブル・データ・レートＤＲＡＭとしての機能、（ｂ）各タイム・セルの間で、ネットワーク・プロセッサによって読み出されるデータからなる４つのバンクとそれに続く書き込まれる４つのバンクを可能とする時分割マルチプレクサとしての機能、及び（ｃ）フレームの長さに依存したＤＲＡＭの全体的な帯域幅を増加させるためにデータ・フレームのサイズを変更することで有用な有効バンク・ベクトルとしての機能である。
【００１３】
特に、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）記憶装置を用いる複数のネットワーク・プロセッサのための改良されたデータ転送システムに関する。このシステムは、各々がタイム・クロックの立ち上がり縁部分上及び立ち下がり縁部分上の両方でデータを移すことができる並列の一対のダブル・データ・レートＤＲＡＭチップを有する。また、そのシステムは、タイム・クロックの２０サイクル・セル１回の間でネットワーク・プロセッサによって読み出されるデータからなる４つのメモリ・バンクとそれに続く書き込まれる４つのメモリ・バンクを可能とすマルチプレクサを有する。さらに、システムはＤＤＲ  ＤＲＡＭと各々のネットワーク・プロセッサとの間で「読み出し」データ及び「書き込み」データの転送のためのシリアル・バス及びパイプラインを有する。好ましくは、システムは固定されたサイズのデータ記憶装置バッファを利用するもので、各バッファの容量は６４バイトである。各メモリ・バンクは、データ記憶装置の１／４を構成する。システムは、ＤＤＲ  ＤＲＡＭに対する「読み出し」及び「書き込み」のためのランダム・アクセスを可能とする優先プログラムも含むことができる。
【００１４】
本発明の別の局面では、ネットワーク・プロセッサで使用するデータを格納し、かつ移動させるための方法を説明する。この方法は、（ａ）並行して作動し、かつクロックが同調した第１及び第２のＤＤＲ  ＤＲＡＭチップにデータを格納するステップと、（ｂ）ＤＤＲ  ＤＲＡＭクロックの各繰り返しセルで所定のサイクル数を含むデータ移動パターンを確立するステップと、（ｃ）「読み出し」ウィンドウの過程で完全「読み出し」を行うために該パターンに含まれる連続したサイクルの集まりを確保するステップと、（ｄ）「書き込み」ウィンドウの過程で完全「書き込み」を行うために該パターンに含まれる第２の連続したサイクルの集まりを確保するステップとを含む。
【００１５】
方法は、各読み出しウィンドウ又は各書き込みウィンドウからのデータを複数のバッファのうちの一つへ格納する工程をさらに有するものであってもよい。各ウィンドウは、好ましくは６４バイトのデータからなるバーストを有し、また各バッファは６４バイトの記憶容量を有する。データがパイプライン処理されて「読み出し」ウィンドウの間に読み出される４バンクと、それに続いて「書き込み」ウィンドウの間に書き込みされる４バンクとを可能とする。各バンクは好ましくはデータ記憶装置の１／４を有する。データは６４バイトのバースト中で読み出し又は書き込みされる。
【００１６】
本発明はさらにネットワーク・プロセッサのためのアービトレーション・システムと、該ネットワーク・プロセッサによってサービスされている多重フレームのための高帯域データ移動を提供する方法とを有する。このシステムは、ＤＲＡＭチップ内の４つのバンク（ａ，ｂ，ｃ，及びｄ）の各々を読み出すためのタイム・スロット又はウィンドウと４つのバンクの各々を書き込むためのタイム・スロットとを確立することが含まれる。次に、システムは所定のフレームについてどのバンクが読み出す必要があり、またどのバンクが書き込む必要があるかを判断する。システムは、その所定のフレームによって必要とされる適当な読み出し又は書き込みタイプ・スロットの間にバンクにアクセスする。続いて、所定の時間間隔の間に「読み出し」アクセスを必要とする全てのフレームをレビューし、「ａ」バンクに対して「読み出し」アクセスを必要とする全てのフレーム間のすべての「ａ」バンクについてアービトレートする。同様にして、システムは他のバンクへのアクセスを要求するフレームの「ｂ」、「ｃ」、及び「ｄ」バンク全てに対してアービトレートする。次に、フレームをレビューするステップと「書き込み」アクセスを必要とする他のフレームをアービトレートするステップとを繰り返す。
【００１７】
最後に、本発明はＤＲＡＭに対するランダムな「読み出し」及び「書き込み」アクセスをネットワーク・プロセッサに提供する方法を含む。この方法は、ＤＲＡＭチップの複数のバンクａ，ｂ，ｃ，．．に対する「読み出し」及び「書き込み」アクセスを順序付けするステップを有する。「読み出し」ステップの過程で、実行されることが必要な任意の読み出し命令についてバンク「ａ］に優先順位を与えるためにアービトレーションが使用される。もしバンク「ａ」で使用可能な「読み出し」アクセスがないならば、該バンクは「書き込み」命令に対するアクセスが与えられ、そしてバンク「ｂ」は同様に「書き込み」命令が与えられる。もしバンク「ｂ」へのアクセスがバンク「ａ」へのアクセスよりも困難であるならば、バンク「ｂ」はバンク「ｃ」を優先してバイパスされる。なぜなら、「読み出し」と「書き込み」との間をスイッチするために隣接する２つのバンク間で十分な時間遅延がないためである。システムがバンク「ｃ」をスキップする場合、読み出し又は書き込みにかかわらずバンク「ｃ」に対して優先順位を与えるためにアービトレーションを変更する。したがって、十分な時間が経過することによって、システムによる「読み出し」から「書き込み」へのスイッチングが可能となる。このようにして、システムは「読み出し」又は「書き込み」であるか否かにかかわらず、このバンクを介してデータ交換を収容することができる。これらのステップは、「書き込み」ウィンドウの間に繰り返される。このようなランダム・アクセスの技術は、制御情報を処理する上で特に有用である。
【００１８】
【発明の実施の形態】
ネットワーク・プロセッサが『完全「読み出し」』又は『完全「書き込み」』ウィンドウでＤＲＡＭを用いている場合、ＤＲＡＭに対する要求の全てが時分割多重（ＴＤＭ）スキームに置かれる。ＴＤＭは、サンプリングを伴うプロセス及びパルス変調の採用から論理的に続く多重伝送の形式である。パルス間に時間的なギャップがあり、そのようなギャップは他のパルスがインタリーブされることを許す信号を生成する。レシーバ側での所望の信号抽出は、トランスミッタに同期して動作しているシステムを必要とする。ネットワーク・プロセッサとＤＲＡＭとの間のインタフェースは、それによって両デバイスが多重及び抽出する２方向性であることを理解すべきである。本発明のフレームワーク内で、ＴＤＭは「書き込み」されている４バンクが後に続くネットワーク・プロセッサによって「読み出し」される４バンクを可能とする。「読み出し」がパイプライン処理されることで、２０サイクル・セルで４バンクの読み出しを可能とする。「書き込み」もパイプライン処理されることで、２０サイクル毎に４バンクの書き込みを可能とする。このＴＤＭスキームによって、ネットワーク・プロセッサは１．７ギガビットの「読み出し」帯域幅と１．７ギガビットの「書き出し」帯域幅とを可能とする。２０サイクルのうちの４サイクルのみがデータ移動に使用されない。このＴＤＭとともにＤＲＡＭを使用することで大部分の帯域幅が可能となるが、一方でネットワーク・プロセッサが適時に「読み出し」及び「書き込み」の両方をスケジュールすることを可能とする（２０サイクル繰り返しウィンドウ）。このＴＤＭスキームは、ネットワーク・プロセッサで必要とされるデータ移動に対して十分に働く。ネットワーク・プロセッサは、データ記憶装置に１．７ギガビット／秒のデータ信号速度でデータを格納することができ、また該データ記憶装置から１．７ギガビット／秒のデータ信号速度でデータを取り出すことができる。大部分のネットワーク・プロセッサは、フレームがデータ記憶装置に格納され、ヘッドが読み出しされ、フレームが処理／変調され、さらに結果として生ずるフレームが宛先ポートに送られたことを要求する。ヘッダを読み出してフレームを処理／変調することの抽出オーバーヘッドは、「読み出し」及び「書き込み」帯域幅合計の一部を使い尽くす。ギガビット・イーサーネット・ポートをサポートすることは、約１．５ギガビットの「読み出し」帯域幅と１．５ギガビットの「書き込み」帯域幅とを要求とするであろう。より多くのポートをサポートするために、より多くのメモリが付加されなければならないであろう。各メモリがネットワーク・プロセッサ上のＩ／Ｏをある一定の数だけ使い尽くし、その結果コストが増加する。さらなる節減はシステム・コストに恩恵をもたらすであろう。
【００１９】
ＤＲＡＭ規則の条件を満たすために、また依然として高帯域幅ネットワーク・データ移動をサポートするために、本発明は２つのＤＤＲ  ＤＲＡＭを使用するもので、各々のバーストサイズは４データ事像である。各データ要素はバスの幅を有するもので、該バス幅は１６ビット（１６ビットｘ４ｘ２＝１２８ビット）、またメモリの各バンクは、データ記録装置バッファの１／４を構成する。したがって、データ記憶装置は６４バイト・バッファからなり、ＤＤＲは６４バイトのバーストに「読み出し」されるか（ａａａａ，ｂｂｂｂ，ｃｃｃｃ，ｄｄｄｄ以上を「読み出し」）、または６４バイトのバーストに書き込みされる（ａａａａ，ｂｂｂｂ，ｃｃｃｃ，ｄｄｄｄ以上を「書き込み」）。各々の文字は、同一文字で標識されたバンクからの一つのデータ要素を表す。これに加えて、２組のＤＲＡＭが互いに逆の読み出し／書き込みタイム・スロットとともに使われる。したがって、本発明は各ウィンドウで１つのバッファが書き込みされ、また各ウィンドウで１つのバッファが読み出しされることを可能とする。このことは、６．８メガビット／秒、全二重に一致するもので、数ギガビット・ポートをサポートするのに十分である。
【００２０】
４つのバンクに常に順次アクセスしなければならないという制限を克服するために、本発明は、有効バンク・ベクトル（ＶＢＶ）と呼ばれるものを使用する。ＶＢＶは、ネットワーク・プロセッサによっていくつかのフレームがサービスされている限り使用することができる。ネットワーク・プロセッサは、どのバンクがフレームによって必要とされるかについて追随して行き、また所定のフレーム対して要求されたバンクにのみアクセスする。ネットワーク・プロセッサは、所定のタイム・フレーム内での読み出しを必要とする全てのフレームを探索し、「ａ」アクセスを必要とする任意のフレーム間の全ての「ａ」バンクについてアービトレートする。また、全ての「ｂ」、「ｃ」、及び「ｄ」バンクについてもアービトレートするので、任意の与えられたフレームの必要なバンクだけフェッチするのみであり、いかなるＤＲＡＭ帯域幅も決して無駄にはしない。所定のバッファのためのバンクの全てが処理されると直ちに、ネットワーク・プロセッサはフレームの次のバッファ（又は次のフレーム、もし現在のフレームの末端にあるならば）へ移動する。ＶＢＶスキームは、読み出し及び書き込みの両方に使用することができ、したがってＤＲＡＭに対するあらゆる無駄なバンク・アクセスを減少させる。ＶＢＶスキームを用いることで、ＤＲＡＭの使用可能な帯域幅全体を小フレームでは７５％（平均的なフレームが１．５バッファを使用すると仮定）、また長フレームでは１％まで効果的に増加する。これら２つの極限の中間のフレーム・サイズは、実際のフレーム・サイズに応じて７５％乃至１％の間のどこかで役立つであろう。
【００２１】
ここで図１を参照しながら説明する。この図では、完全読み出し及び完全書き込みプログラムをサポートするＤＲＡＭチップ・タイミング・ダイアグラム１０が示されている。このダイアグラムは、１３３ＭＨｚクロックの２０サイクル１４ａ〜１４ｔからなる１セル１２を示す。連続的なサイクル１６は、「読み出し」ウィンドウを表し、次の１０個のウィンドウは「書き込み」ウィンドウ１８を形成する。ここで指摘しておかなければならないことは、ランダム・アクセスに関して、「読み出し」ウィンドウのいくつかが「書き込み」ウィンドウに変わり、またその逆も生ずる可能性があるということである。行アドレス・ストローブ（ＲＡＳ）２０及び列アドレス・ストローブ（ＣＡＳ）２２が示されている。ＲＡＳ及びＣＡＳのラインは、データの行又は列を読み出すのにかかった時間の長さを示している。この時間は、ＲＡＳ／ＣＡＳ遅延と呼ばれる。より短い遅延時間は、より大きいデータ転送速度をもたらす。ＲＡＳがローを通知するたびに、ＢＡライン２４に示されるデータのバンクの一つが起動する。ストローブの詳細及び動作については当業者によく知られているのでこれ以上の説明は省略する。
【００２２】
図１の下部にはデータ・ライン３０が図示されている。このデータ・ライン３０は、「読み出し」モード３２にある４つのバンク「ａａａａ」、「ｂｂｂｂ」、「ｃｃｃｃ」、及び「ｄｄｄｄ」と、「書き込み」モード３４にある４つの「ａａａａ」、「ｂｂｂｂ」、「ｃｃｃｃ」、及び「ｄｄｄｄ」とを示している。書き込みイネーブル信号（ＷＥ信号）４０は、１サイクルで「書き込み」データの各バンクの書き込みを進める。
【００２３】
本発明で扱う別のスキームは、ＤＲＡＭに対して「ランダム読み出し」及び「ランダム書き込み」を可能とするものである。「ランダム」アクセスが全体的な帯域幅を減少させることから、このスキームは好ましくはデータ移動には使わないほうがいいと思われるが、その代わりいくつかの種類の制御情報で利用されるであろう。ネットワーク・プロセッサがよりランダムなやり方でＤＲＡＭにアクセスするために、ネットワーク・プロセッサは以下のようにしてＤＲＡＭへの必要なアクセスを順に行わなければならない。すなわち、既に示した基本的な「読み出し」及び「書き込み」ウィンドウを使用。「読み出し」ウィンドウのあいだ、実行に必要な任意の「読み出し」のためにＶＢＶアービトレーションに対して所定の優先順位を付与。「書き込み」ウィンドウのあいだ、、実行に必要な任意の「書き込み」のためにＶＢＶアービトレーションに対して所定の優先順位を付与。異なるタイプのアクセスに対して優先順位を与えることで、ＤＲＡＭサイクルへの妨害は最小となろう。もしネットワーク・プロセッサが所定のバンク・アクセス中に実行する正しいタイプのアクセスを持たなければ、バンク・アクセスは別のネットワーク・プロセッサに与えられる。次のバンクに対して、アービトレーションが変更される必要があろう。もし次のバンク・アクセスが最後のものと同様ならば（「読み出し」が後に続く「読み出し」又は「書き込み」が後に続く「書き込み」）、システムは同様のアクセスを有するネットワーク・プロセッサのアービトレーション基準に優先順位を与える。もし同様のアクセスが利用可能でなければ、システムはＤＲＡＭタイミング規則を実行するために次のバンクをスキップする。このスキームによって、ネットワーク・プロセッサはＤＲＡＭ規則を実行する一方で「ランダム様」アクセスを持つ。
【００２４】
このランダム様アクセスは、イーサネットでデータ転送を扱う時に特に有利である。イーサーネットでは、最小フレーム・サイズは６４バイトのユーザ・データである。この総量に加えるものは、アドレス及び命令のために１２バイト追加のオーバヘッドである。一般に、各フレームは、別のアドレスで再アセンブルされる６４バイトのパケットに分割される。本発明のランダム・アクセス型の構成によれば、ネットワーク・プロセッサはデータの所定のバンクに対するアクセス（「読み出し」又は「書き込み」）の正しいタイプを持たないので、システムはバンクのアクセスと一致するアクセスを持つものを別のネットワーク・プロセッサから見出すであろう。もしネットワーク・プロセッサが複数あるならば、優先順位は「読み出し」又は「書き込み」機会がバイパスされず、かつ失われないようにアービトレーション・スキームに基づいて複数のプロセッサのうちの一つに対して与えられるであろう。選択されたプロセッサは、バンクの読み出しを行うか、或いはバンクに対して書き込みを行い、その後に次のバンクがアクセスされる。もし次のバンクがアクセスされたばかりのものと同様の「読み出し」及び「書き込み」モードにあるならば、優先順位はそのバンクに与えられる。しかし、もし同一モードでなければ、このデータのバンクがスキップされ、そのモードにかかわらず次のバンクへアクセスがなされる。
【００２５】
以上、一対のＤＤＲ  ＤＲＡＭを用いて改善されたデータ転送の面で本発明を説明してきたが、理解すべきことはより幅広いバス及びより大きいデータ転送のために３つ以上のＤＲＡＭチップを用いることができるということである。しかし、実施上の問題として、もしＤＲＡＭの数があまりにも大きくなるならば、転送されている大量のデータがタイムリーのかたちで使用される可能性がなくなり、帯域幅が浪費される。また、本発明は２０サイクルＤＲＡＭタイム・クロックに関連して特徴付けられている。しかし、本発明は同様に他のタイミング・シーケンスに適用可能である。
【００２６】
本発明を実施形態例とともに説明してきたが、発明の詳細な説明に記載された内容から当業者は種々の別の実施形態例、改良例、及び変形例が可能であることをは当業者ならば容易に理解することができよう。したがって、本発明は特許請求の範囲に記載された各請求項の意図及び目的範囲内で、そのような別の実施形態例、改良例、及び変形例の全てを包含するものである。
【００２７】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）ネットワーク・プロセッサのための改善されたデータ転送システムであって、
（ａ）各々がタイム・クロックの立ち上がり縁部分上及び立ち下がり縁部分上の両方でデータを移すことができる並列した一対のダブル・データ・レートＤＲＡＭチップと、
（ｂ）前記タイム・クロックの一つの２０サイクル・セルの間で各ネットワーク・プロセッサによって「読み出し」される４つのバンクとその後に各ネットワーク・プロセッサによって「書き込み」される４つのメモリ・バンクとを可能とするマルチプレクサと、
を有すること特徴とするデータ転送システム。
（２）さらに、２つのＤＤＲ  ＤＲＡＭと対応のネットワーク・プロセッサとの間で「読み出し」データ及び「書き込み」データを転送するためのシリアル・バス及びパイプラインを有することを特徴とする上記（２）に記載のデータ転送システム。
（３）さらに、所定のサイズからなる複数のデータ格納バッファを有することを特徴とする上記（１）に記載のデータ転送システム。
（４）  前記データ格納バッファの各々は、６４バイトのバッファであり、また各メモリ・バンクは１／４のデータ格納ＤＲＡＭを有することを特徴とする上記（３）に記載のシステム。
（５）ネットワーク・プロセッサによって使用するためにデータの格納及び移動を行う方法であって、
（ａ）並行して作動し、かつクロックが同調した第１及び第２のＤＤＲ  ＤＲＡＭチップにデータを格納するステップと、
（ｂ）ＤＤＲ  ＤＲＡＭクロックの各繰り返しセルで所定のサイクル数を含むデータ移動パターンを確立するステップと、
（ｃ）「読み出し」ウィンドウの過程で完全「読み出し」を行うために該パターンに含まれる連続したサイクルの集まりを確保するステップと、
（ｄ）「書き込み」ウィンドウの過程で完全「書き込み」を行うために該パターンに含まれる第２の連続したサイクルの集まりを確保するステップと、
を含むことを特徴とする方法。
（６）さらに、各「読み出し」ウィンドウ又は各「書き込み」ウィンドウからのデータをバッファ内のデータ記憶装置に格納するステップを有することを特徴とする上記５に記載の方法。
（７）各ウィンドウが６４バイトのデータからなるバーストから構成される複数のバッファを有し、各バッファは６４バイトの記憶容量を持つことを特徴とする上記（６）に記載の方法。
（８）さらに、「読み出し」ウィンドウの間に読み出されるデータの４つのバンクを可能とし、それに続いて「書き込み」ウィンドウの間に書き込みされる４バンクとを可能とするためのパイプライン処理を行うステップを有することを特徴とする上記（５）に記載の方法。
（９）データは、６４バイトのバーストで読み出し又は書き込みされることを特徴とする上記（８）に記載の方法。
（１０）フレーム・サイズにかかわらずネットワーク・プロセッサによって処理されている多重フレームのためのデータの高帯域幅移動を提供するネットワーク・プロセスのアービトレーション方法であって、
（ａ）ＤＲＡＭチップ内のバンクａ，ｂ，ｃ，及びｄの各々を読み出すためのタイム・スロットとバンクａ，ｂ，ｃ，及びｄの各々を書き込みための別のタイム・スロットとを確立するステップと、
（ｂ）所定のフレームにとって、どのバンクが読み出しを必要とし、またどのバンクが書き込みを必要とするかを判断するステップと、
（ｃ）前記所定のフレームに必要とされる前記バンクのみをアクセスするステップと、
（ｄ）各タイプ・スロット中に「読み出し」アクセスを必要としているフレームをレビューするステップと、
（ｅ）「ａ」バンクに対して「読み出し」アクセスを必要とする全てのフレーム間のすべての「ａ」バンクについてアービトレートするステップと、
（ｆ）順に、「ｂ」、「ｃ」、及び「ｄ」バンクへのアクセスを必要とするフレームについて「ｂ」、「ｃ」、及び「ｄ」バンク全てに対してアービトレートするステップと、
を有することを特徴とする方法。
（１１）さらに、前記（ｄ）、（ｅ）、及び（ｆ）のステップを繰り返すステップを有することを特徴とする方法。
（１２）ＤＲＡＭチップの複数のバンクａ，ｂ，ｃ，．．．に対するランダムな「読み出し」及び「書き込み」アクセスをネットワーク・プロセッサに提供する方法であって、
（ａ）「読み出し」ウィンドウ中、実行される必要がある任意の「読み出し」命令についてバンク「ａ」に優先順位を与えるためにアービトレーションするステップと、
（ｂ）もし「読み出し」アクセスがバンク「ａ」から利用可能でなければ、バンク「ａ」アクセスを「書き込み」命令に与えるステップと、
（ｂ１）前記「書き込みアクセスを次のバンク「ｂ」に与えるステップと、
（ｃ）もしバンク「ｂ」アクセスがバンク「ａ」のアクセスと異なるものならば、バンク「ｂ」をバイパスしてバンク「ｃ」にアクセスを与えるステップと、（ｄ）バンク「ｃ」が「読み出し」又は「書き込み」のいずれかにかかわらず優先順位をバンク「ｃ」に当てるようにアービトレーションを変更するステップと、
を有することを特徴とする方法。
（１３）もし前記ステップ（ａ）で「読み出し」アクセスがバンク「ａ」から利用可能であるならば、前記バンク「ａ」を読み出した後にバンク「ｂ」に「読み出し」アクセスを与えることを特徴とする上記（１１）に記載の方法。
（１４）「書き込み」ウィンドウ中、前記ステップ（ａ）から前記ステップ（ｄ）までを繰り返すことを特徴とする上記（１１）に記載の方法。
（１５）さらに、情報を制御するためにランダム・アクセスを用いるステップを有することを特徴とする上記（１１）に記載の方法。
【図面の簡単な説明】
【図１】  本発明に適用されるＤＲＡＭチップの典型的なタイミング・ダイアグラムを示す図である。
【符号の説明】
１０    ＤＲＡＭチップ・タイミング・ダイアグラム
１２    セル
１４ａー１４ｔ    クロック・サイクル
１６    読み出しウィンドウ
２０    ＲＡＳ
２２    ＣＡＳ
２４    ＢＡライン
３０    データ・ライン
３２    読み出しモード
３４    書き出しモード
４０    ＷＥ信号
【図１】
0003678412.tif 000002