(57)【要約】【課題】１つまたは複数の周辺デバイスとの通信を制御するための周辺コントローラを提供する。【解決手段】周辺コントローラは、１つまたは複数の周辺デバイスを制御するためのコントローラ、および１つまたは複数の周辺デバイスの少なくとも１つに関する構成情報、およびブートＲＯＭコードなどの追加のコードを格納する共有メモリ・デバイスに対する単一のインタフェースを含む。共有メモリ・デバイスは、例えば、ＥＥＰＲＯＭまたはシリアル・フラッシュ・メモリ・デバイスであることが可能である。コントローラおよび共有メモリ・デバイスは、オプションとして、ピンの総数をさらに減らすようにシリアル・バスを使用して通信することもできる。メモリ・コントローラが、ユーザ・アドレスを共有メモリ・デバイス内部の重なり合わない物理アドレスにマップする。【選択図】図３
2005158074.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の周辺デバイスを制御するためのコントローラと、
前記１つまたは複数の周辺デバイスに関する構成情報、および追加のコードを格納する共有メモリ・デバイスに対する単一のインタフェースとを含む周辺コントローラ。
【請求項２】
前記コントローラが、少なくとも１つ周辺デバイス、バス・インタフェース、および１つまたは複数のネットワークへのインタフェースを提供する物理レイヤを制御するための少なくとも１つメディア・アクセス・コントローラを含む請求項１に記載の周辺コントローラ。
【請求項３】
前記追加のコードが、ブートＲＯＭコードである請求項１に記載の周辺コントローラ。
【請求項４】
前記共有メモリ・デバイスが、ＥＥＰＲＯＭまたはシリアル・フラッシュ・メモリ・デバイスである請求項１に記載の周辺コントローラ。
【請求項５】
前記構成情報および前記追加のコードの１つまたは複数が、前記共有メモリ・デバイス内部のオフセット・メモリ位置に格納される請求項１に記載の周辺コントローラ。
【請求項６】
前記共有メモリ・デバイス内部の重なり合わない物理アドレスにユーザ・アドレスをマップするメモリ・コントローラをさらに含む請求項１に記載の周辺コントローラ。
【請求項７】
前記周辺コントローラが、集積回路上、またはシステム・オン・チップ上に実装される請求項１に記載の周辺コントローラ。
【請求項８】
１つまたは複数の周辺デバイスを制御するためのコントローラと、
前記１つまたは複数の周辺デバイスに関する構成情報、および追加のコードを格納する共有メモリ・デバイスに対する単一のインタフェースとを含む集積回路。
【請求項９】
前記構成情報および前記追加のコードの１つまたは複数が、前記共有メモリ・デバイス内部のオフセット・メモリ位置に格納される請求項８に記載の集積回路。
【請求項１０】
１つまたは複数の周辺デバイスと通信するために集積回路によって実行される方法であって、
１つまたは複数の周辺デバイスとの通信を処理するステップと、
共有メモリ・デバイスにおいて前記１つまたは複数の周辺デバイスの少なくとも１つに関する構成情報、および追加のコードにアクセスするステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピューティング・デバイスに関し、より詳細には、周辺デバイスを制御するための方法および装置に関する。
【背景技術】
【０００２】
本出願は、参照により本明細書に組み込まれている２００３年１１月２５日に出願した米国特許仮出願第６０／５２５２３０号の優先権を主張する。
【０００３】
コンピューティング・システムは、コンピューティング・デバイスの諸機能を実行するために互いに適合する形で通信し、動作しなければならないいくつかの内部および外部のコンポーネント群およびデバイス群を含む。通常のコンピューティング環境は、様々な製造業者によって製造されたコンポーネント群およびデバイス群を含む。コンピューティング・システムは、ますます、いくつかの異なる周辺デバイスとの通信を制御する１つまたは複数のコントローラを提供するようになっている。
【０００４】
通常、周辺コントローラは、２つの異なるメモリからデータまたはソフトウェア・コードを獲得する。１つの一般的なインプリメンテーションでは、第１の電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）が、各周辺装置に関するペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）構成情報を格納し、第２のＥＥＰＲＯＭが、オペレーティング・システムが引き継ぐまでプログラム実行を制御するブートＲＯＭコードを格納する。さらに、周辺コントローラは、通常、シリアル・バスを使用して第１のＥＥＰＲＯＭと通信し、通常、パラレル・バスを使用して第２のＥＥＰＲＯＭと通信する。第２のＥＥＰＲＯＭ用のパラレル・バスにより、要求されるピンの数が増え、そのため、周辺コントローラの実装面積のサイズの実現可能な縮小が制限される。
【０００５】
そのような構成により、周辺コントローラが、いくつかの異なる周辺デバイスとの通信を効果的に制御することが可能になるが、この構成は、より小さい表面積、およびより少ないピン総数にますます向かっている流れに反する。したがって、より小さい表面積、およびより少ないピンの総数を可能にするコントローラ・アーキテクチャの必要性が存在する。
【特許文献１】米国特許仮出願第６０／５２５２３０号
【発明の開示】
【課題を解決するための手段】
【０００６】
全体的に、１つまたは複数の周辺デバイスとの通信を制御するための周辺コントローラが提供される。周辺コントローラは、１つまたは複数の周辺デバイスを制御するためのコントローラ、および１つまたは複数の周辺デバイスの少なくとも１つに関する構成情報、およびブートＲＯＭコードなどの追加のコードを格納する共有メモリ・デバイスに対する単一のインタフェースを含む。共有メモリ・デバイスは、例えば、ＥＥＰＲＯＭまたはシリアル・フラッシュ・メモリ・デバイスであることが可能である。コントローラおよび共有メモリ・デバイスは、オプションとして、ピンの総数をさらに減らすようにシリアル・バスを使用して通信することもできる。メモリ・コントローラが、ユーザ・アドレスを共有メモリ・デバイス内部の重なり合わない物理アドレスにマップする。
【０００７】
本発明のより完全な理解、ならびに本発明のさらなる特徴および利点が、以下の詳細な説明および図面を参照することで得られよう。
【発明を実施するための最良の形態】
【０００８】
図１は、従来の周辺コントローラ１００の概略ブロック図である。図１に示し、前述したとおり、周辺コントローラ１００は、通常、図２に関連して以下にさらに説明するシングルチップ・コントローラ２００、ならびに２つのＥＥＰＲＯＭ１２０−１および１２０−２を含む。シングルチップ・コントローラ２００は、例えば、ギガビット・イーサネット（登録商標）・デバイスまたはＵＳＢコントローラ・デバイスとして実現することができる。第１のＥＥＰＲＯＭ１２０−１は、各周辺装置に関するペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）構成情報を格納し、第２のＥＥＰＲＯＭ１２０−２は、オペレーティング・システムが引き継ぐまでプログラム実行を制御するブートＲＯＭコードを格納する。さらに、コントローラ２００は、通常、シリアル・バスを使用して第１のＥＥＰＲＯＭ１２０−１と通信し、通常、パラレル・バス１１０を使用して第２のＥＥＰＲＯＭ１２０−２と通信する。第２のＥＥＰＲＯＭ１２０−２用のパラレル・バス１１０により、要求されるピンの数が増え、そのため、周辺コントローラ１００の実装面積のサイズの実現可能な縮小が制限される。
【０００９】
図２は、図１の典型的なシングルチップ・コントローラ２００をさらに詳細に示す概略ブロック図である。図２に示すとおり、シングルチップ・コントローラ２００は、典型的な実施形態におけるＰＣＩエクスプレス・インタフェースのようなバス・インタフェース２１０を含む。バス・インタフェース２１０により、パーソナル・コンピュータのメイン・メモリに対する読み取りおよび書き込みが可能になる。さらに、シングルチップ・コントローラ２００は、それぞれのサポートされる周辺接続に関して、適切なメディア・アクセス・コントローラ（ＭＡＣ）およびＰＨＹモジュール２３０、２４０、および周辺コネクタ２５０−ｎを含む。メディア・アクセス・コントローラ２３０は、ネットワークへのパケット、およびネットワークからのパケットの格納および転送を周知の形で行う。メディア・アクセス・コントローラ２３０は、各周辺デバイスと通信するのにベンダ固有の情報を要する。ベンダ固有の情報は、例えば、シリアルＥＥＰＲＯＭコントローラ＃１  ２６０を使用して、第１のＥＥＰＲＯＭ１２０−１から獲得することができる。第２のパラレルＥＥＰＲＯＭコントローラ＃２  ２７０が、第２のＥＥＰＲＯＭ１２０−２との通信を制御する。
【００１０】
ＰＨＹモジュール２４０は、ネットワーク（または、ＵＳＢ接続またはファイアワイア接続などの別の接続）への電気的インタフェースを提供する。コネクタ２５０に接続される周辺デバイス群は、通常、独自のＭＡＣモジュール群およびＰＨＹモジュール群を適宜、周知の形で含むことに留意されたい。
【００１１】
図３は、本発明の機能を組み込んだ周辺コントローラ３００の概略ブロック図である。本発明の一態様によれば、周辺コントローラ３００は、周辺コントローラ３００が必要とするすべての不揮発性データを格納する単一のＥＥＰＲＯＭ３２０と通信する。図４に関連して以下にさらに説明するとおり、ＥＥＰＲＯＭ３２０は、第２のメモリ・オフセットで特定される第１のセクションの中にペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）構成情報を格納し、第１のメモリ・オフセットで特定される第２のセクションの中にブートＲＯＭコードを格納する。１つの好ましい実施形態では、コントローラ２００は、高速シリアル・インタフェースなどのシリアル・バスを使用してＥＥＰＲＯＭ３２０と通信し、そのため、要求されるピンの数をさらに減少させる。
【００１２】
図４Ａおよび図４Ｂは、図１の従来の構成、および図３の本発明の構成におけるＥＥＰＲＯＭ内部の物理アドレスへの情報のマッピングを示している。図４Ａに示すとおり、図１の従来の構成の各ＥＥＰＲＯＭ１２０−１および１２０−２は、００００というメモリ・オフセットから始まる別々にアドレス指定される別個のメモリ空間を有する。図４Ｂに示すとおり、共有ＥＥＰＲＯＭ３２０は、第１のセクション４５０の中にペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）構成情報を格納し、第２のセクション４６０の中にブートＲＯＭコードを格納する。第１のセクション４５０は、００００という第１のメモリ・オフセットで特定され、第２のセクション４６０は、第２のメモリ・オフセット、ｏｆｆｓｅｔ１で特定される。このため、第２のセクション４６０の中に格納されたブートＲＯＭコードは、オフセット、ｏｆｆｓｅｔ１を使用することによってアクセスされる。以下に説明するとおり、周辺コントローラは、ブートＲＯＭコードにアクセスするのに必要とされるメモリ・オフセットを提供することができる。
【００１３】
図５は、共有ＥＥＰＲＯＭ３２０の物理アドレスにマップするＥＥＰＲＯＭコントローラ回路５００を示す概略ブロック図である。図５に示すとおり、ホスト・インタフェース５１０が、共有ＥＥＰＲＯＭ３２０の中に格納されている情報にアクセスする要求をＥＥＰＲＯＭコントローラ５２０に対して行う。ＥＥＰＲＯＭコントローラ５２０は、ホスト・インタフェース５１０からのユーザ・アドレスを共有ＥＥＰＲＯＭ３２０内部の重なり合わない物理アドレスにマップする。例えば、ホスト・インタフェース５１０が、ａｄｄｒ＃１を使用して、第１のメモリ・セクション４５０の中に格納されている構成情報を求める要求をＥＥＰＲＯＭコントローラ５２０に与えることが可能であり、ＥＥＰＲＯＭコントローラ５２０は、データ線、ｄａｔａ＃１上で要求された情報をホスト・インタフェース５１０に提供する。同様に、ホスト・インタフェース５１０は、ａｄｄｒ＃２を使用して、第２のメモリ・セクション４６０の中に格納されたブートＲＯＭ情報を求める要求をＥＥＰＲＯＭコントローラ５２０に与えることが可能であり、ＥＥＰＲＯＭコントローラ５２０は、データ線、ｄａｔａ＃２上で要求された情報をホスト・インタフェース５１０に提供する。第２のメモリ・セクション４６０の中に格納されている情報の場合、ＥＥＰＲＯＭコントローラ５２０は、ＥＥＰＲＯＭ３２０に対する物理アドレス要求をｏｆｆｓｅｔ１に等しい量だけ並進させる。
【００１４】
本発明のさらなる構成では、２つの異なるメモリをやはり使用することができるが、それらのメモリは、同一のバス線を共有する。マスタ・デバイスが、当業者には明白なように、スレーブ・デバイスとして構成された２つのメモリの間の選択を制御する。
【００１５】
本発明に関連する周辺コントローラ３００およびＥＥＰＲＯＭを組み込んだ集積回路を製造する際、複数の同一のチップが、通常、ウェーハの表面上の繰り返されるパターンで形成される。各チップは、本明細書で説明するシングルチップ・コントローラ・デバイス３００を含み、その他の構造群または回路群を含むことも可能である。個々のチップが、ウェーハから切り出され、つまりダイシングされた後、集積回路としてパッケージ化される。どのようにウェーハをダイシングし、チップをパッケージ化して集積回路を製造するかは、当業者には周知である。そのように製造された集積回路が、本発明の一部と考えられる。
【００１６】
本明細書に説明するメモリは、本明細書で開示する方法、工程、および機能を実施するように関連するプロセッサ群を構成する。メモリは、電気メモリ、磁気メモリ、または光メモリ、あるいは以上のタイプまたは他のタイプの記憶デバイスの任意の組み合わせとして実装することができる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス指定可能な空間内のアドレスに対して読み取りまたは書き込みを行うことができるあらゆる情報を包含するように十分に広く解釈されなければならない。この定義では、ネットワークの情報でもメモリの範囲に入る。というのは、関連するプロセッサが、ネットワークからその情報を取り出すことができるからである。
【００１７】
本明細書で図示し、説明した実施形態および変形形態は、単に本発明の原理を例示しているだけであり、本発明の趣旨および範囲を逸脱することなく、様々な改変形態が当業者によって実施されることが可能であることを理解されたい。
【図面の簡単な説明】
【００１８】
【図１】従来の周辺コントローラを示す概略ブロック図である。
【図２】図１の典型的なシングルチップ・コントローラをさらに詳細に示す概略ブロック図である。
【図３】本発明の特徴を組み込んだ周辺コントローラを示す概略ブロック図である。
【図４Ａ】図１の従来の構成におけるＥＥＰＲＯＭ内部の物理アドレスへの情報のマッピングを示す図である。
【図４Ｂ】図３の本発明の構成におけるＥＥＰＲＯＭ内部の物理アドレスへの情報のマッピングを示す図である。
【図５】図３の共有ＥＥＰＲＯＭの物理アドレスにマップするＥＥＰＲＯＭコントローラ回路を示す概略ブロック図である。
【図１】
2005158074.tif 000003
【図２】
2005158074.tif 000004
【図３】
2005158074.tif 000005
【図４Ａ】
2005158074.tif 000006
【図４Ｂ】
2005158074.tif 000007
【図５】
2005158074.tif 000008