(57)【要約】  媒体アクセス制御プロセッサは、受信機コプロセッサおよび送信機コプロセッサを含む。各々のコプロセッサは、独自のマイクロコントローラを含む。実現される所望の通信プロトコルに応じて、プログラマブル論理装置はマイクロコントローラのメモリへのマイクロ命令の適切なセットのローディングを制御する。
2007503794.tif 000002
【特許請求の範囲】
【請求項１】
物理レイヤソースからの受取られるデータパケットおよび受取られる制御語に基づいて、条件を生成するように構成される受信機を含む媒体アクセス制御（ＭＡＣ）プロセッサであって、前記受信機は、
マイクロ命令を記憶するメモリを有するマイクロコントローラを含み、前記マイクロコントローラは前記条件および以前に実行されたマイクロ命令の両方に従って、前記メモリからのマイクロ命令を実行するように構成され、前記受信機は、実行される前記マイクロ命令に応答して、前記受取られるデータパケットおよび前記受取られる制御語に基づいて、ネットワークレイヤのための出力を生成するように構成される、媒体アクセス制御（ＭＡＣ）プロセッサ。
【請求項２】
前記受信機はプログラマブル論理装置に統合され、前記プログラマブル論理装置は前記記憶されるマイクロ命令を前記マイクロコントローラのメモリへロードするように構成される、請求項１に記載のＭＡＣプロセッサ。
【請求項３】
各々のマイクロ命令は制御フィールドおよび命令フィールドを含み、前記マイクロコントローラは前記以前に実行されたマイクロ命令における前記命令フィールドに従って前記マイクロ命令を実行するように構成され、前記受信機は、実行される前記マイクロ命令における前記制御フィールドに応答して、前記受取られるデータパケットおよび前記受取られる制御語に基づいて、前記ネットワークレイヤのための前記出力を生成するように構成される、請求項１に記載のＭＡＣプロセッサ。
【請求項４】
前記受信機はプログラマブル論理装置に統合され、前記物理レイヤソースからの前記受取られるデータパケットおよび制御語は可能な通信プロトコルの群から選択されるプロトコルに従って編成され、前記プログラマブル論理装置は、どの通信プロトコルが選択されるかに応じて、前記記憶されるマイクロ命令を前記マイクロコントローラのメモリへロードするように構成される、請求項３に記載のＭＡＣプロセッサ。
【請求項５】
前記制御フィールドは、どの通信プロトコルが選択されるかを示すモード選択フィールドを含む、請求項４に記載のＭＡＣプロセッサ。
【請求項６】
可能な通信プロトコルの前記群は１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項４に記載のＭＡＣプロセッサ。
【請求項７】
前記受信機は、さらに、
前記受取られるデータパケットに基づいて、ＣＲＣ語を生成するように動作可能なＣＲＣコプロセッサを含む、請求項１に記載のＭＡＣプロセッサ。
【請求項８】
検索されるマイクロ命令における前記制御フィールドは前記ＣＲＣコプロセッサのためのイネーブル信号を含む、請求項７に記載のＭＡＣプロセッサ。
【請求項９】
前記受信機は、さらに、
前記受取られるデータパケットに基づいて、パケットの始まりおよびパケットの終わり信号を決定するように動作可能なパケットデリニエータを含み、前記受信機によって生成される前記条件は前記パケットの始まりおよびパケットの終わり信号を含む、請求項１に記載のＭＡＣプロセッサ。
【請求項１０】
前記マイクロコントローラはクロック信号を受取り、クロックの所与のサイクルにおい
て、前記マイクロコントローラが前記条件および以前のクロックサイクルにおいて実行された前記マイクロ命令に従ってマイクロ命令を実行するように、前記クロック信号のサイクルに応答して、マイクロ命令を周期的に実行するように構成される、請求項１に記載のＭＡＣプロセッサ。
【請求項１１】
ネットワークレイヤソースからの受取られるデータパケットに基づいて、条件を生成するように構成される送信機を含む媒体アクセス制御（ＭＡＣ）サブレイヤプロセッサであって、前記送信機は、
マイクロ命令を記憶するメモリを有するマイクロコントローラを含み、前記マイクロコントローラは前記条件および以前に実行されたマイクロ命令の両方に応答して、前記メモリからのマイクロ命令を実行するように構成され、前記送信機は、実行される前記マイクロ命令に応答して、前記受取られるデータパケットに基づいて、物理レイヤサブコーディングプロセッサのためのフレーム付きデータパケットおよび関連付けられる制御語を生成するように構成される、媒体アクセス制御（ＭＡＣ）サブレイヤプロセッサ。
【請求項１２】
前記送信機はプログラマブル論理装置に統合され、前記プログラマブル論理装置は前記記憶されるマイクロ命令を前記マイクロコントローラのメモリへロードするように構成される、請求項１１に記載のＭＡＣプロセッサ。
【請求項１２】
前記送信機はプログラマブル論理装置に統合され、前記ネットワークレイヤソースからの前記受取られるデータパケットは可能な通信プロトコルの群から選択されるプロトコルに従って編成され、前記プログラマブル論理装置は、どの通信プロトコルが選択されるかに応じて、前記記憶されるマイクロ命令を前記マイクロコントローラのメモリへロードするように構成される、請求項１０に記載のＭＡＣプロセッサ。
【請求項１３】
各々のマイクロ命令は制御フィールドおよび命令フィールドを含み、前記マイクロコントローラは前記以前に実行されたマイクロ命令における前記命令フィールドに従って前記マイクロ命令を実行するように構成され、前記送信機は、実行される前記マイクロ命令における前記制御フィールドに応答して、前記受取られるデータパケットに基づいて、前記物理レイヤサブコーディングプロセッサのための前記フレーム付きデータパケットおよび前記関連付けられる制御語を生成するように構成される、請求項１１に記載のＭＡＣプロセッサ。
【請求項１４】
前記制御フィールドは、どの通信プロトコルが選択されるかを示すモード選択フィールドを含む、請求項１３に記載のＭＡＣプロセッサ。
【請求項１５】
可能な通信プロトコルの前記群は１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項１３に記載のＭＡＣプロセッサ。
【請求項１６】
前記送信機は、さらに、
前記受取られるデータパケットに基づいて、ＣＲＣ語を生成するように動作可能なＣＲＣコプロセッサを含む、請求項１１に記載のＭＡＣプロセッサ。
【請求項１７】
前記マイクロコントローラはクロック信号を受取り、クロックの所与のサイクルにおいて、前記マイクロコントローラが前記条件および以前のクロックサイクルにおいて実行された前記マイクロ命令に従ってマイクロ命令を実行するように、前記クロック信号のサイクルに応答して、マイクロ命令を周期的に実行するように構成される、請求項１１に記載のＭＡＣプロセッサ。
【請求項１８】
マイクロプログラムメモリから検索される実行されるマイクロ命令に従って、ネットワークレイヤのデータパケットのＭＡＣサブレイヤ処理を制御するように構成されるマイクロコントローラを与えることと、
前記ネットワークレイヤのデータパケットのための可能な通信プロトコルのセットから通信プロトコルを選択することと、
マイクロ命令のセットをマイクロプログラムメモリへロードすることとを含むＭＡＣサブレイヤ処理の方法であって、マイクロ命令の前記セットは前記選択される通信プロトコルに従って選択され、前記方法は、さらに、
前記ネットワークレイヤのデータパケットを前記選択される通信プロトコルに従ってＭＡＣサブレイヤ処理するために、前記ロードされるマイクロ命令を実行することを含む、方法。
【請求項１９】
可能な通信プロトコルの前記セットは１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項１８に記載の方法。
【請求項２０】
マイクロプログラムメモリから検索される実行されるマイクロ命令に従って、物理レイヤサブコーディング（ＰＣＳ）データパケットのＭＡＣサブレイヤ処理を制御するように構成されるマイクロコントローラを与えることと、
前記ＰＣＳデータパケットのための可能な通信プロトコルのセットから通信プロトコルを選択することと、
マイクロ命令のセットをマイクロプログラムメモリへロードすることとを含むＭＡＣサブレイヤ処理の方法であって、マイクロ命令の前記セットは前記選択される通信プロトコルに従って選択され、前記方法は、さらに、
前記ＰＣＳデータパケットを前記選択される通信プロトコルに従ってＭＡＣサブレイヤ処理するために、前記ロードされるマイクロ命令を実行することを含む、方法。
【請求項２１】
可能な通信プロトコルの前記セットは１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項２０に記載の方法。
【請求項２２】
プログラマブル論理装置（ＰＬＤ）であって、
プログラマブルコアファブリックと、
並直列変換器／直並列変換器（ＳＥＲＤＥＳ）回路と、
前記ＰＬＤ内の、前記コアファブリックとＳＥＲＤＥＳ回路との間に統合される媒体アクセス制御（ＭＡＣ）プロセッサとを含み、前記ＭＡＣプロセッサはメモリに記憶される命令によって表わされる通信プロトコルのＭＡＣサブレイヤを表わす命令を記憶する前記メモリを含み、それによって前記ＭＡＣプロセッサは、前記通信プロトコルに従って、前記ＳＥＲＤＥＳ回路と前記コアファブリックとの間のデータの受け渡しを処理するように動作可能である、プログラマブル論理装置（ＰＬＤ）。
【請求項２３】
前記ＭＡＣプロセッサはクロック信号を受取り、クロックの所与のサイクルにおいて、マイクロコントローラが以前のクロックサイクルにおいて実行された命令に従って命令を実行するように、前記クロック信号のサイクルに応答して、命令を周期的に実行するように構成される、請求項２２に記載のＰＬＤ。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
この発明は一般にネットワーク処理に関し、より特定的には、さまざまなＩ／Ｏ標準に従って媒体アクセス制御処理を実行するために柔軟性を与える受信機および送信機の構造に関する。
【背景技術】
【０００２】
背景
通信プロトコルの階層化は、現代の通信の複雑性をより小さく、より便利な単位に細分化する。たとえば、解放型システム間相互接続（ＯＳＩ）参照モデルは、最下位レベルにおいて、物理レイヤおよびデータリンクレイヤを含む。物理レイヤは最も下位のレベルであり、ビットがネットワーク上のユーザ間で転送されるように、ビットレベルコーディングおよび同期スキームを指定する。すべての残余のレイヤと同様に、物理レイヤの仕様は単純にプロトコルまたは規則のセットであり、ユーザが望むであろう具体的な実現例について言及しない。したがって、通信プロトコルの階層化によって、ユーザは、残余のレイヤに影響を与えることなく、１つのレイヤにおいて実現例を変更することができる。
【０００３】
物理レイヤの上に、通信媒体にユーザがどのようにアクセスするか、ならびに関連するフレーム指示、エラー修正、およびアドレス指定といった事項をとりわけ指定するデータリンクレイヤがある。媒体へのアクセスに関連付けられる、データリンクレイヤ内の規則の特定のセットは、媒体アクセス制御（ＭＡＣ）サブレイヤとして示される。このようなレイヤがなければ、ユーザはたとえばアイドル伝送とデータを含む伝送とを区別することができないであろう。概して、データリンクレイヤは使用される実際の伝送媒体に強く影響されることになる。したがって、ＭＡＣサブレイヤは、伝送媒体およびサポートされる通信プロトコルに応じて、変更されなければならない。
【０００４】
ＭＡＣサブレイヤを実現するために、２つのアプローチが従来から使用されている。専用のアプローチでは、サポートされる各々の通信プロトコルは独自のＭＡＣサブレイヤハードウェアを必要とする。たとえば、１ギガビットイーサネット（登録商標）ネットワークにおける各々のステーションは、適切なＭＡＣサブレイヤの実行専用の特定用途向け集積回路（ＡＳＩＣ）を有してもよい。ネットワークが、さらに、１０ギガビットイーサネット（登録商標）プロトコルをサポートする場合、各々のステーションは対応するＭＡＣサブレイヤをサポートするために別のＡＳＩＣを必要とするであろう。代替的には、ソフトウェアで実現されるアプローチが使用されてもよい。このような技術では、適切なソフトウェアがロードされるプロセッサがＭＡＣレイヤを実現する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のアプローチの各々は、特定の不利な点を有する。専用のハードウェアのアプローチは比較的速い処理速度を提供するが、サポートされる各々の通信プロトコルは、そのほとんどが独自のＭＡＣサブレイヤのＡＳＩＣを有するので、より大きなダイ領域を要求する。ソフトウェアで実現されるアプローチはサポートされる各々のプロトコルのために追加のダイ領域を必要としないが、比較するとより遅い処理速度を有する。したがって、複数の通信プロトコルをサポートするシステムを望むユーザは、板ばさみに直面する。その板ばさみとは、よりよい処理速度を得るために各々のプロトコルのための専用のＭＡＣサブレイヤハードウェアを選択するが、ダイスペースの要求の増大を被るか、それとも、プロセッサを使用して必要なＭＡＣサブレイヤを実現するが、より遅い処理速度を被るか、
というものである。
【０００６】
したがって、複数の通信プロトコルをサポートする通信システムにおいてＭＡＣサブレイヤを実現するために、改良された技術が当該技術分野において必要である。
【課題を解決するための手段】
【０００７】
概要
この発明の１つの局面は、物理レイヤソースから受取られるデータおよび制御語に基づいて条件を生成するように構成される受信機を有する媒体アクセス制御（ＭＡＣ）プロセッサに関する。マイクロコントローラはその条件に基づいて受信機を制御し、マイクロコントローラはマイクロ命令を記憶するメモリを含み、マイクロコントローラは条件および以前に実行されたマイクロ命令に応答してメモリからのマイクロ命令を実行するように構成され、受信機は、実行されるマイクロ命令に応答して、受取られるデータおよび制御語に基づいて、ネットワークレイヤのための出力を生成するように構成される。
【０００８】
この発明の別の局面は、ネットワークレイヤソースからの受取られるデータパケットに基づいて、条件を生成するように構成される送信機を有する、媒体アクセス制御（ＭＡＣ）プロセッサに関する。送信機はマイクロ命令を記憶するメモリを有するマイクロコントローラを含み、マイクロコントローラは条件と以前に実行されたマイクロ命令との両方に応答して、メモリからのマイクロ命令を実行するように構成され、送信機は、実行されるマイクロ命令に応答して、受取られるデータパケットに基づいて、物理レイヤサブコーディングプロセッサのためのフレーム付きデータパケットおよび関連付けられる制御語を生成するように構成される。
【０００９】
この発明の別の局面は、ＭＡＣサブレイヤ処理の方法に関する。この方法の第１の動作では、マイクロプログラムメモリから検索される実行されるマイクロ命令に従って、ネットワークレイヤのデータパケットのＭＡＣサブレイヤ処理を制御するように構成されるマイクロコントローラが与えられる。この方法は、さらに、ネットワークレイヤのデータパケットのための可能な通信プロトコルのセットからある通信プロトコルを選択する動作と、マイクロ命令のセットをマイクロプログラムメモリへロードする動作とを含み、マイクロ命令のセットは選択された通信プロトコルに従って選択され、前記方法は、さらに、ネットワークレイヤのデータパケットを選択された通信プロトコルに従ってＭＡＣサブレイヤ処理するために、ロードされたマイクロ命令を実行する動作を含む。
【００１０】
異なる図面における同一の参照記号の使用は、同様または同一の項目を示す。
【発明を実施するための最良の形態】
【００１１】
詳細な説明
この発明は、各々のプロトコルのためにＡＳＩＣを必要とすることなく、かつソフトウェアで実現されるアプローチにおいて生じる処理速度の減少を被ることなく、複数の通信プロトコルのためのＭＡＣサブレイヤをサポートする柔軟性をもたらす、ＭＡＣサブレイヤの機能性に焦点を当てた構造を提供する。
【００１２】
ここで図１を参照して、ＭＡＣプロセッサ１０は、シリアルソース１５と、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）３０などのプログラマブル論理装置のプログラマブルコアファブリック２０との間で実現されるように示される。シリアルソース１５からのシリアルデータは、ＳＥＲＤＥＳ２５において非直列化され、物理レイヤサブコーディング（ＰＣＳ）を与える物理レイヤプロセッサ３５を介して処理されて、ＭＡＣプロセッサ１０にパラレルデータパケットを与える。ＭＡＣプロセッサ１０は、受信機コプロセッサ４０および送信機コプロセッサ５０を含む。受信機コプロセッサ４０は物理レイヤプ
ロセッサ３５からパラレルデータパケットを受取り、データリンクレイヤの受信およびデコーディング規則との整合性を検査する。パケットが適したものであれば、受信機コプロセッサ４０はコアファブリック２０において実現されるネットワークレイヤへそのパケットを伝送する。同様に、コアファブリック２０において実現されるネットワークレイヤは、送信機コプロセッサ５０にネットワークレベルのパケットを与えてもよい。その場合、送信機コプロセッサ５０は、そのネットワークレベルのパケットを必要なフォーマットにカプセル化し、フォーマットされたパケットを物理レイヤプロセッサ３５へ送る。
【００１３】
さらにここに説明されるように、各々のコプロセッサ４０および５０は、専用マイクロコントローラおよび周期的冗長コード（ＣＲＣ）コプロセッサを含む。モジュラ構造をもたらすために、各々のコプロセッサ４０および５０のための専用マイクロコントローラは同一の構造を有してもよい。各々の専用マイクロコントローラは、さまざまなコプロセッサの動作を管理し、実行の順序を決定する。各々のマイクロコントローラのメモリは、通常の動作中のそれぞれの受信機コプロセッサ４０および送信機コプロセッサ５０の動作を命令するマイクロ命令のセットで初期化される。マイクロ命令は、所望のＭＡＣサブレイヤの有限状態機械の処理を実現するように選択される。たとえば、ＰＣＩエキスプレスのＭＡＣサブレイヤのための有限状態機械が実現されてもよい。代替的には、マイクロ命令のセットを変更することによって、１ギガビットイーサネット（登録商標）（１ＧＥ）のＭＡＣサブレイヤのための有限状態機械が実現されてもよい。
【００１４】
どの特定のＭＡＣサブレイヤが実現されているかに拘らず、マイクロ命令の順序付けは現在の有限状態機械の状態および外部条件によって決定される。所望のＭＡＣサブレイヤはマイクロ命令によって駆動されるマイクロコントローラを使用して実現されるので、さらなる標準的なプロトコルをサポートする機能の追加はデータリンクレイヤ全体の再設計を暗に意味するものではない。その代わりに、さらなるプロトコルは、必要であればハードウェアコプロセッサへの少しの拡張とともに、さらなるマイクロ命令を単にコンパイルすることによって、サポートされてもよい。
【００１５】
ここで、マイクロ命令のフォーマットの例が図２を参照して記載される。各々のマイクロ命令２００は、後続の命令タイプが何になるかを示すタイプ指定子２０５を含む。関連付けられる制御語２１０は伝送制御語２１０ａおよび受信機制御語２１０ｂに区別され、受信機コプロセッサ４０および送信機コプロセッサ５０のさらなる説明とともに、ここにさらに説明される。タイプ指定子２０５は以下のフィールドを有してもよい。
【００１６】
４方向分岐イネーブル（ＦＢＥ）。ＦＢＥは、イネーブルであるときに４方向の分岐が可能であることを示す単一のビットであってもよい。
【００１７】
飛越しまたは分岐セレクタ（ＪＢＳ）。ＪＢＳは、サブルーチンへの飛越し（ＪＳＲ）マイクロ命令２００と分岐（ＢＲＮ）マイクロ命令２００とを区別するビットである。
【００１８】
ネクストアドレスセレクタ（ＮＡＳ）。ＮＡＳは、次のマイクロ命令２００を選択する。たとえば、サブルーチンへの飛越し（ＪＳＲ）、分岐（ＢＲＮ）、サブルーチンへの戻り（ＲＴＳ）、およびインクリメント（ＩＮＣ）という４つのタイプのマイクロ命令２００が利用されてもよい。ＪＳＲおよびＢＲＮは１つの引数、つまり目的アドレスの宛先をとるが、ＲＴＳは引数をとらない。ＩＮＣはネクストアドレス／メモリ位置を指す。
【００１９】
条件イネーブル（ＣＮＥ）。ＣＮＥは、条件付き分岐がイネーブルされるかどうかを示すために使用されるビットフィールドである。ＣＮＥによって制御されて条件付き分岐がイネーブルされ、かつ関連付けられる外部条件が満たされる場合、ＢＡフィールドによって指定されるアドレスへの分岐が生じることになる。
【００２０】
極性ビット（ＰＢ）。ＰＢは、条件付き分岐の評価において評価される外部条件が飛越しをイネーブルにするために真であるべきか、偽であるべきかを示すために使用されるビットフィールドである。
【００２１】
分岐条件選択（ＢＣＳ）。ＢＣＳは、条件付き分岐の評価のために評価される外部条件を識別するビットフィールドである。
【００２２】
分岐アドレス（ＢＡ）。ＢＡは分岐宛先アドレスである。
【００２３】
高位層分岐アドレス（ＨＢＡ）。ＨＢＡは、条件付き分岐に優先機構を与えるように使用されてもよい。言い換えれば、さまざまな分岐アドレスに異なる優先レベルを与えることも可能である。
【００２４】
上記の命令のセットは単に例示的なものであり、他のタイプの命令のセットが実現されてもよいということが認識される。たとえば、この命令のセットは、各々のマイクロ命令２００が完全にコード化されておらず、かつ各々の制御信号がマイクロ命令のフォーマットで異なるビットフィールドに割当てられる、水平マイクロプログラミングの例である。この態様で、マイクロプログラミングの分岐の決定は、明示的なネクストアドレスフィールドを使用して、同じクロックサイクルでなされてもよい。しかしながら、垂直マイクロプログラミングの技術もこの発明において使用することができたであろうということが認識される。
【００２５】
ここで図３を参照して、所望の通信プロトコルに必要な、ＭＡＣサブレイヤのための必要な送信機および受信機の有限状態機械のうちのいずれかを実現するように構成され得るマイクロコントローラ３００が示される。たとえば、マイクロコントローラ３００は、１ギガビットイーサネット（登録商標）（１ＧＥ）、１０ギガビットイーサネット（登録商標）（１０ＧＥ）、またはＰＣＩエキスプレス（ＰＣＩＥ）プロトコルのいずれかに従う動作のためにプログラムされてもよい。マイクロコントローラ３００は、マイクロ命令２００を記憶するためのマイクロプログラムメモリ３０５を含む。たとえば、マイクロプログラムメモリは３２個のマイクロ命令２００を記憶してもよく、各々のマイクロ命令２００は３２ビットの長さである。しかしながら、マイクロ命令の数およびその長さは任意であり、実現される特定のＭＡＣサブレイヤによって決まるということが認識される。分岐も飛越しもイネーブルでない場合、マイクロ命令２００の順序付けはプログラムカウンタ３１０によって引起される。当該技術分野で公知であるように、プログラムカウンタ３１０はクロック３６０の各々のサイクルにおいて、マイクロプログラムメモリ３０５におけるアドレス位置を順次、指し示す。次いで、示されたアドレスにおけるマイクロ命令２００が実行される。
【００２６】
マイクロコントローラ３００は、条件選択マルチプレクサ３１５を介して外部条件を受取る。これらの条件は、ここにさらに説明されるように、処理されるデータによって決定される。各々の実行されるマイクロ命令２００におけるＢＣＳフィールドは、条件選択マルチプレクサ３１５による選択を制御する。条件選択マルチプレクサ３１５からの選択された条件（ＢＣＳによって制御される）が真であるべきか、偽であるべきかということは、実行されるマイクロ命令２００からの極性ビット（ＰＢ）によって駆動されるＸＯＲゲート３２０を介して制御される。ネクストアドレス論理ブロックまたは命令デコーダ３３０は必要な論理を実行して、ＸＯＲゲート３２０の出力、ならびにＪＢＳ、ＮＡＳ、およびＣＮＥフィールドの状態に基づいて、ネクストアドレスマルチプレクサ３３５を制御する。分岐も飛越しもイネーブルでない場合、ネクストアドレス論理ブロック３３０はネクストアドレスマルチプレクサ３３５を制御して、プログラムカウンタ３１０からのインク
リメント信号（ＩＮＣ）を選択する。プログラムカウンタ３１０は、ＩＮＣ信号を介して、クロック３６０の各々のサイクルにおいてマイクロプログラムメモリ３０５におけるアドレス位置を順次、指し示す。ネクストアドレスマルチプレクサ３３５は、さらに、マルチプレクサ３６５からのＭＵＸ信号、ＬＩＦＯ（後入れ先出し）レジスタ３４５からのサブルーチンへの戻り（ＲＴＳ）信号、および現在実行されているマイクロ命令２００からのＢＡフィールドを受取る。分岐アドレス（ＢＡ）フィールドがこのように明示的に与えられるので、分岐は次のクロックサイクル上で生じ得る。プログラムカウンタ３１０は、サブルーチンがＪＳＲマイクロ命令２００を介して呼出される（これはＮＡＳによって決定される）場合に、戻りアドレスが記憶され得るように、ＩＮＣ信号をＬＩＦＯレジスタ３４５に与える。サブルーチンが呼出される場合、ネクストアドレス論理ブロック３３０は、イネーブル信号３７０および「プッシュ」信号３７５を介して現在のＩＮＣ信号を記憶するように、ＬＩＦＯレジスタ３４５を制御してもよい。ＬＩＦＯレジスタ３４５は、戻りアドレスをＲＴＳ信号としてネクストアドレスマルチプレクサ３３５に与える。初期化信号３８０がアサートされるときに、コード実行開始アドレスレジスタ（図示せず）はマイクロプログラムメモリ３０５のための初期実行開始アドレス３９０を記憶する。初期化信号３８０は、次いで、初期実行開始アドレス３９０を選択するように、マルチプレクサ３８０に命令を与えるであろう。次に、初期化信号３８０は、さらに、ＭＵＸ信号を選択するようにネクストアドレスマルチプレクサ３３５に命令を与えるように、ネクストアドレス論理ブロック３３０を制御するであろう。なお、初期化信号３８０がアサートされない場合、マルチプレクサ３６５は実行されるマイクロ命令２００からＨＢＡフィールドを選択することになる。
【００２７】
マイクロプログラムメモリ３０５はネクストアドレスマルチプレクサ３３５のアドレス出力３９０を受取り、このアドレスに記憶されるマイクロ命令を検索する。このように、マイクロプログラムメモリ３０５に関して、アドレス出力３９０はマイクロシーケンサの出力として機能する。現在実行されているマイクロ命令２００は制御語２１０を含むが、そのフォーマットは、マイクロコントローラ３００が受信機コプロセッサ４０を制御するように構成されるか（制御語２１０ｂ）、それとも送信機コプロセッサ５０を制御するように構成されるか（制御語２１０ｂ）に応じて異なる。
【００２８】
ここで図４を参照して、送信機コプロセッサ５０のためのブロック図が示される。送信機コプロセッサ５０は、ＦＰＧＡ３０のコアファブリック２０（図１）におけるネットワークレイヤから、実行中のデータ、パケットの始まり、伝送データ、およびパケットの終わりの指示を受取る入力セレクタ４０５を含む。入力セレクタ４０５はこれらの入力を処理し、マイクロコントローラ３００の条件選択マルチプレクサ３１５（図３）のために適切な条件を生成する。伝送フレーマ４１０は、データ選択マルチプレクサ４１５および、制御バスデコーダ４４０によって制御される制御語デマルチプレクサ４２０を含む。伝送のためのデータ経路語を与えるために、データ選択マルチプレクサ４１５は伝送データ、パディング語、ＣＲＣ語、フレーム間ギャップ語、およびプリアンブル語から選択する。伝送データならびに現在実行されている伝送制御語２１０ａ（以下にさらに記載）からのＣＲＣＥＮフィールドおよびＤＦＭフィールドに応答して、ＣＲＣコプロセッサ４３０はＣＲＣ語（フレームチェックシーケンス）をデータ選択マルチプレクサ４１５に与える。
【００２９】
マイクロコントローラ３００は、現在実行されているマイクロ命令２００の伝送制御語２１０ａのフィールドを介して、送信機コプロセッサ５０を制御する。伝送制御語２１０ａは以下のフィールドを有してもよい。
【００３０】
フレーマ制御信号（ＦＣＴＲＬ）は、データ選択マルチプレクサ４１５による選択および制御バスデコーダ４４０を制御する。
【００３１】
ＣＲＣイネーブル（ＣＲＣＥＮ）は、伝送データの中のどの語がフレームチェックシーケンス（ＦＣＳ）フィールドを計算するために使用されるべきであるかを印付ける。
【００３２】
ＩＳＴＲＢは、送信機コプロセッサ５０がアイドル状態にあるときにアサートされる。
【００３３】
廃棄フレーム（ＤＦＭ）は、「容赦のない」（cut throat）動作において廃棄されるべきパケットを示すためにアサートされる。
【００３４】
統計イネーブル（ＳＴＥＮ）は、統計ベクトルが有効であるときにアクティブである。
【００３５】
ギガビットイーサネット（登録商標）インターパケットギャップ（ＧＥＩＰＧ）状態マーカは、微視的状態がインターパケットギャップの挿入に対応する、ギガビットイーサネット（登録商標）のパケット伝送の間、アクティブである。
【００３６】
ギガビットイーサネット（登録商標）ＣＲＣ（ＧＥＣＲＣ）状態マーカは、微視的状態がＣＲＣの挿入に対応する、ギガビットイーサネット（登録商標）のパケット伝送の間、アクティブである。
【００３７】
ギガビットイーサネット（登録商標）プリアンブル（ＧＥＰＲＭＢＬ）状態マーカは、微視的状態がパケットの挿入に対応する、ギガビットイーサネット（登録商標）のパケット伝送の間、アクティブである。
【００３８】
モード選択フィールド（ＭＤＳＬ）は、１ＧＥ、１０ＧＥ、またはＰＣＩＥの動作がイネーブルであるかどうかを示す。
【００３９】
入力セレクタ４０５は、マイクロコントローラ３００のための適切な入力条件の決定を助けるために、ＧＥＩＰＧ、ＧＥＣＲＣ、ＩＳＴＲＢ、ＭＤＳＥＬ、ＧＥＰＲＭＢＬ、およびＤＦＭフィールドを受取る。ＩＳＴＲＢおよびＳＴＥＮフィールドは、当該技術分野で公知であるように、外部装置に向けられる。
【００４０】
ここで図５を参照して、受信機コプロセッサ４０のためのブロック図が示される。パケットデリニエータ５０５は、ＰＣＳレイヤ３５（図１）からパケットデータおよび関連付けられる制御語を受取り、パケットの始まりおよび終わりを探る。パケットの始まりおよび終わりを見付けた後、パケットデリニエータはこれを条件としてマイクロコントローラ３００へ信号で伝える。応答して、マイクロコントローラ３００はスリープ状態から目覚めることになる。パケットパーサ５１０は、マイクロコントローラ３００による制御に応答して、受取ったパケットの内容を分析し、その結果を、適切なマイクロ命令２００が実行されるように、検出された宛先一致およびタグの条件として、マイクロコントローラ３００に報告する。ＣＲＣがイネーブルである場合、ＣＲＣコプロセッサ５２０はＰＣＳサブレイヤ３５からデータパケットを受取り、ＣＲＣ語／フィールドチェックシーケンスを生成する。パケットフィルタ５１５は生成されたＣＲＣを、受取られたＦＣＳフィールドと比較する。さらに、パケットフィルタ５１５は、受取られたパケットに挿入されているパディングを廃棄する。パケットフィルタは、フィルタ処理された出力データバス、パケットイネーブル信号、パケット有効信号、および不良パケット信号をＦＰＧＡのコア２０（図１）におけるネットワークレイヤに与える。
【００４１】
受信機マイクロコントローラ３００は、実行されるマイクロ命令２００の受信機制御語２１０ｂのフィールドを介して、受信機コプロセッサ４０を制御する。受信機制御語２１０ｂにおける好適なフィールドは以下を含む。
【００４２】
ＣＲＣイネーブル（ＣＲＣＥＮ）は、ＣＲＣコプロセッサ５２０によるＣＲＣ計算を可能にする。
【００４３】
データ有効性（ＤＴＶ）は、当該技術分野で公知であるように、データが有効であることを外部装置にストローブするために使用される。
【００４４】
ＤＴＳＴは、イーサネット（登録商標）パケットにおける宛先フィールドの最後のバイトが想定されることをパケットパーサ５１０に信号で伝える。
【００４５】
バイトカウントイネーブル（ＢＣＥ）は、各々のパケットにおいてバイトのカウントを可能にし、パケットフィルタ５１５によって、パディングビットを除去するのに使用される。
【００４６】
廃棄フレーム（ＤＦ）は、パケットがパケットフィルタ５１５によって廃棄されてもよいように、異常なパケットの受信が生じるたびに受信マイクロコントローラ３００によって設定される。ＤＦがアサートされるとき、受信マイクロコントローラ３００におけるすべての状態はリセットされる。
【００４７】
長さフィールド１（ＬＦ１）は、イーサネット（登録商標）パケットのための長さフィールドの第１のバイトが想定されることをパケットパーサ５１０に示す。
【００４８】
長さフィールド２（ＬＦ２）は、イーサネット（登録商標）パケットのための長さフィールドの第２のバイトが想定されることをパケットパーサ５１０に示す。
【００４９】
モード選択フィールド（ＭＤＳＬ）は、１ＧＥ、１０ＧＥ、またはＰＣＩＥの動作がイネーブルであるかどうかを示す。
【００５０】
受信機同期リセット（ＲＸＲＳＴ）は、パケットの受信が成功した後に、アクティブになる。
【００５１】
マイクロコントローラを使用して、ＭＡＣレイヤ処理のための受信機および送信機の有限状態機械を実現する利点を考慮されたい。サポートされる通信プロトコルをユーザが変更したい場合、新しいマイクロプログラムが各々のメモリ３０５にロードされる。たとえば、１０ギガビットイーサネット（登録商標）の動作のために、送信機マイクロコントローラ３００のためのマイクロプログラムをロードする以下のプログラムを考慮されたい。
【００５２】
【数１】
2007503794.tif 000003
【００５３】
各々のマイクロ命令はフレーマの状態に対応する。たとえば、関数「ｘｇｅ＿ｐｌｄ」はＸＧＥのペイロードの状態のためにマイクロ命令を戻す。その構造は以下のようなものである。
【００５４】
【数２】
2007503794.tif 000004
【００５５】
このｘｇｅ＿ｐｌｄ関数では、「ｔｘ＿ｃｔｒｌ＿ｗｏｒｄ」は伝送制御語２１０ａを
指定して、送信機コプロセッサ５０の動作を制御する一方で、タイプ指定子は次のマイクロ命令２００を決定する。
【００５６】
エラールーチンもまた、マイクロプログラムされてもよく、それらはメモリ３０５における、通常の動作中に実行されるメインプログラムを記憶する記憶位置とは異なる記憶位置に書込まれてもよい。
【００５７】
この発明の上記の実施例は、単に例示的なものとして意図され、限定的なものとして意図されるものではない。したがって、より広い局面において、この発明から逸脱することなくさまざまな変更および修正がなされ得るということが当業者に明らかとなる。たとえば、ここに開示される電圧追跡技術は、印刷回路基板上で電力バスの電圧追跡を制御するように適用されてもよい。したがって、特許請求の範囲は、この発明の真の精神および範囲内に含まれるすべての変更および修正を包含する。
【図面の簡単な説明】
【００５８】
【図１】この発明の１つの実施例に従う、ＦＰＧＡに埋込まれるＭＡＣプロセッサのブロック図である。
【図２】この発明の１つの実施例に従う、マイクロ命令と、そのマイクロ命令の、次のマイクロ命令がどのようなものになるかを指定する可能なタイプ識別子と、可能な制御語とのグラフ図である。
【図３】図１のＭＡＣプロセッサにおける受信機コプロセッサまたは送信機コプロセッサのいずれかを制御するためのマイクロコントローラのブロック図である。
【図４】図１のＭＡＣプロセッサにおける送信機コプロセッサのブロック図である。
【図５】図１のＭＡＣプロセッサにおける受信機コプロセッサのブロック図である。
【図１】
2007503794.tif 000005
【図２】
2007503794.tif 000006
【図３】
2007503794.tif 000007
【図４】
2007503794.tif 000008
【図５】
2007503794.tif 000009
【手続補正書】
【提出日】平成17年12月20日(2005.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理レイヤソースからの受取られるデータパケットおよび受取られる制御語に基づいて、条件を生成するように構成される受信機を含む媒体アクセス制御（ＭＡＣ）プロセッサであって、前記受信機は、
マイクロ命令を記憶するメモリを有するマイクロコントローラを含み、前記マイクロコントローラは前記条件および以前に実行されたマイクロ命令の両方に従って、前記メモリからのマイクロ命令を実行するように構成され、前記受信機は、実行される前記マイクロ命令に応答して、前記受取られるデータパケットおよび前記受取られる制御語に基づいて、ネットワークレイヤのための出力を生成するように構成される、媒体アクセス制御（ＭＡＣ）プロセッサ。
【請求項２】
前記受信機はプログラマブル論理装置に統合され、前記プログラマブル論理装置は前記記憶されるマイクロ命令を前記マイクロコントローラのメモリへロードするように構成される、請求項１に記載のＭＡＣプロセッサ。
【請求項３】
前記受信機は、さらに、
前記受取られるデータパケットに基づいて、ＣＲＣ語を生成するように動作可能なＣＲＣコプロセッサを含む、請求項１に記載のＭＡＣプロセッサ。
【請求項４】
前記受信機は、さらに、
前記受取られるデータパケットに基づいて、パケットの始まりおよびパケットの終わり信号を決定するように動作可能なパケットデリニエータを含み、前記受信機によって生成される前記条件は前記パケットの始まりおよびパケットの終わり信号を含む、請求項１に記載のＭＡＣプロセッサ。
【請求項５】
ネットワークレイヤソースからの受取られるデータパケットに基づいて、条件を生成するように構成される送信機を含む媒体アクセス制御（ＭＡＣ）サブレイヤプロセッサであって、前記送信機は、
マイクロ命令を記憶するメモリを有するマイクロコントローラを含み、前記マイクロコ
ントローラは前記条件および以前に実行されたマイクロ命令の両方に応答して、前記メモリからのマイクロ命令を実行するように構成され、前記送信機は、実行される前記マイクロ命令に応答して、前記受取られるデータパケットに基づいて、物理レイヤサブコーディングプロセッサのためのフレーム付きデータパケットおよび関連付けられる制御語を生成するように構成される、媒体アクセス制御（ＭＡＣ）サブレイヤプロセッサ。
【請求項６】
マイクロプログラムメモリから検索される実行されるマイクロ命令に従って、ネットワークレイヤのデータパケットのＭＡＣサブレイヤ処理を制御するように構成されるマイクロコントローラを与えることと、
前記ネットワークレイヤのデータパケットのための可能な通信プロトコルのセットから通信プロトコルを選択することと、
マイクロ命令のセットをマイクロプログラムメモリへロードすることとを含むＭＡＣサブレイヤ処理の方法であって、マイクロ命令の前記セットは前記選択される通信プロトコルに従って選択され、前記方法は、さらに、
前記ネットワークレイヤのデータパケットを前記選択される通信プロトコルに従ってＭＡＣサブレイヤ処理するために、前記ロードされるマイクロ命令を実行することを含む、方法。
【請求項７】
可能な通信プロトコルの前記セットは１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項６に記載の方法。
【請求項８】
マイクロプログラムメモリから検索される実行されるマイクロ命令に従って、物理レイヤサブコーディング（ＰＣＳ）データパケットのＭＡＣサブレイヤ処理を制御するように構成されるマイクロコントローラを与えることと、
前記ＰＣＳデータパケットのための可能な通信プロトコルのセットから通信プロトコルを選択することと、
マイクロ命令のセットをマイクロプログラムメモリへロードすることとを含むＭＡＣサブレイヤ処理の方法であって、マイクロ命令の前記セットは前記選択される通信プロトコルに従って選択され、前記方法は、さらに、
前記ＰＣＳデータパケットを前記選択される通信プロトコルに従ってＭＡＣサブレイヤ処理するために、前記ロードされるマイクロ命令を実行することを含む、方法。
【請求項９】
可能な通信プロトコルの前記セットは１ギガビットイーサネット（登録商標）、１０ギガビットイーサネット（登録商標）、およびＰＣＩエキスプレスを含む、請求項８に記載の方法。
【請求項１０】
プログラマブル論理装置（ＰＬＤ）であって、
プログラマブルコアファブリックと、
並直列変換器／直並列変換器（ＳＥＲＤＥＳ）回路と、
前記ＰＬＤ内の、前記コアファブリックとＳＥＲＤＥＳ回路との間に統合される媒体アクセス制御（ＭＡＣ）プロセッサとを含み、前記ＭＡＣプロセッサはメモリに記憶される命令によって表わされる通信プロトコルのＭＡＣサブレイヤを表わす命令を記憶する前記メモリを含み、それによって前記ＭＡＣプロセッサは、前記通信プロトコルに従って、前記ＳＥＲＤＥＳ回路と前記コアファブリックとの間のデータの受け渡しを処理するように動作可能である、プログラマブル論理装置（ＰＬＤ）。
【国際調査報告】
2007503794.tif 000010