(57)【特許請求の範囲】
【請求項１】
システム内でコンポーネントの構成またはブートをする命令を含むシステム起動情報を記憶するメモリ・デバイスを備え、
時分割多重化されたアドレス、データ、制御情報を搬送する複数の汎用信号線を有し且つ、前記メモリ・デバイスに対する低電力モードを示す制御信号を搬送するための独立した制御信号線を有するバスを備え、
前記バスに結合されたホストにして、そのホストと前記メモリ・デバイスとの間での前記システム起動情報の一部の通信を行うメモリ・トランザクションを示す制御情報を、前記バスを介して前記メモリ・デバイスに書き込むホストを備える
ことを特徴とするシステム。
【請求項２】
ホストとメモリ・デバイスとの間でのメモリ・トランザクションを、時分割多重化されたアドレス、データ、制御情報を搬送する複数の汎用信号線を有し且つ別個の制御線を有するバスを介して行う方法であって、前記メモリ・デバイスには、システム内でコンポーネントの構成またはブートをする命令を含むシステム起動情報が記憶されており、
前記メモリ・デバイスへの制御信号にして、メモリ・トランザクションの開始を示す制御信号を、前記ホストが前記制御線上にアサートするステップと、
当該メモリ・トランザクションが前記ホストから前記メモリ・デバイスへのデータ・ユニットの書き込みであることを示す書き込みトランザクション制御情報にして、前記メモリ・デバイスに対する書き込みトランザクション制御情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
前記メモリ・デバイスへのアドレス情報にして、前記データ・ユニットを書き込むべき前記メモリ・デバイス内のアドレスを示すアドレス情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
前記メモリ・デバイスへのサイズ情報にして、転送すべき前記データ・ユニットのバイト数を示すサイズ情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
前記汎用信号線を介して前記データ・ユニットを、前記ホストが前記メモリ・デバイスに書き込むステップと、
前記バスの制御権を前記ホストから前記メモリ・デバイスに移すステップと、
前記メモリ・トランザクションにおけるエラーを示す制御情報を、前記メモリ・デバイスが前記複数の汎用制御信号線にドライブするステップと
を含む、ことを特徴とするメモリ・トランザクションを行う方法。
【請求項３】
ホストとメモリ・デバイスとの間でのメモリ・トランザクションを、時分割多重化されたアドレス、データ、制御情報を搬送する複数の汎用信号線を有し且つ別個の制御線を有するバスを介して行う方法であって、前記メモリ・デバイスには、システム内でコンポーネントの構成またはブートをする命令を含むシステム起動情報が記憶されており、
(a) 前記メモリ・デバイスへの制御信号にして、メモリ・トランザクションの開始を示す制御信号を、前記ホストが前記制御線上にアサートするステップと、
(b) 当該メモリ・トランザクションが前記ホストによる前記メモリ・デバイスからのデータ・ユニットの読み取りであることを示す読み取りトランザクション制御情報にして、前記メモリ・デバイスに対する読み取りトランザクション制御情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
(c) 前記メモリ・デバイスへのアドレス情報にして、前記データ・ユニットを読み取るべき前記メモリ・デバイス内のアドレスを示すアドレス情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
(d) 前記メモリ・デバイスへのサイズ情報にして、転送すべき前記データ・ユニットのバイト数を示すサイズ情報を、前記ホストが前記複数の汎用信号線にドライブするステップと、
(e) バスの制御権を前記ホストから前記メモリ・デバイスに移すステップと、
(f) 前記メモリ・デバイスが、前記メモリ・トランザクションにおけるエラーを示す制御情報を前記複数の汎用信号線上に供給するステップと
を含む、ことを特徴とするメモリ・トランザクションを行う方法。
【発明の詳細な説明】
【０００１】
（関連出願のクロスリファレンス）
本出願は、 日出願の「Ｉ／Ｏ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  Ａ  ＬＯＷ  ＰＩＮ  ＣＯＵＮＴ  ＢＵＳ」という名称の米国特許出願第＿ 号、＿ 日出願の「ＤＩＲＥＣＴ  ＭＥＭＯＲＹ  ＡＣＣＥＳＳ（ＤＭＡ）ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  Ａ  ＬＯＷ  ＰＩＮ  ＣＯＵＮＴ  ＢＵＳ」という名称の米国特許出願第＿ 号、および 日出願の「ＢＵＳ  ＭＡＳＴＥＲ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  Ａ  ＬＯＷ  ＰＩＮ  ＣＯＵＮＴ  ＢＵＳ」という名称の米国特許出願題＿ 号の関連出願である。上記に識別された各出願は、本出願と同一の譲受人に譲渡される。
【０００２】
（発明の分野）
本発明はコンピュータ・システムに関する。より詳細には、本発明は、コンピュータ・システムのロー・ピン・カウントのバス上における異なるタイプのデバイス間の通信に関する。
【０００３】
（発明の背景）
従来のレガシー・ベースのコンピュータ・システムは、ＩＳＡ（Industry Standard Architecture）バスまたは拡張バス（Ｘバス）を介してシステムのチップセットまたはプロセッサと通信する様々な周辺デバイスおよび記憶デバイスを含む。システムのチップセットまたはプロセッサは、パラレル・ポート・コントローラ、シリアル・ポート・コントローラ、スーパーＩ／Ｏコントローラ、フロッピー・ディスク・コントローラ、キーボード・コントローラなどの入出力（Ｉ／Ｏ）デバイスまたは入出力コントローラ・デバイスと、例えばＢＩＯＳ（basic input-outoput services）情報などを記憶する不揮発性メモリ・デバイスのようなメモリ・デバイスとを含むレガシー・ベースの周辺デバイスにチップセットまたはプロセッサをインタフェースするのに使用されるＩＳＡバス信号またはＸバス信号をサポートするために、多数のピン（例えばおよそ５０ないし７０本のピン）および関連する回路を有さなければならない。
【０００４】
ＩＳＡバスおよびＸバス基準をサポートするのに必要な多数のピンは、一般に、システム・コスト全体を増加させる。例えば、チップセットまたはプロセッサには大きなパッケージが必要となる。ピンカウントの大きいパッケージであるほど、ピンカウントの小さいパッケージよりも一般にコストがかかり、概して、パッケージ組立およびシステム統合過程の間に、製造の品質および信頼性の問題を抱えやすい。さらに、ピンカウントの大きいパッケージであるほど、コンピュータ・システムが実装されるプリント回路板（ＰＣＢ）上に多大な表面域を必要とする。したがって、コンピュータ・システムのＩＳＡバスまたはＸバスを、同じタイプの周辺デバイスをサポートし、なおかつ、相対的に少数のピンまたは信号線を利用するバスで置き換えるのが望ましいであろう。
【０００５】
ＩＳＡバスおよびＸバス規格はまた、メモリ・アドレス空間または入出力アドレス空間の大きさを、２４ビットすなわちおよそ１６メガバイトのメモリ・アドレス空間または入出力アドレス空間に制限する。いくつかのプロセッサおよびチップセットは３２ビットまたは６４ビットのアドレス空間をサポートすることができるため、今まではプロセッサのアドレス空間をＩＳＡアドレス空間に変換するのにエイリアシングが必要とされてきた。エイリアシングは、コンピュータ・システムの性能がマイナスの影響を受けるような重大なオーバヘッドを生み出す可能性がある。したがって、ＩＳＡバスおよびＸバス規格を、プロセッサまたはチップセットのアドレス空間との互換性を有し、かつ潜在的に無制限であるアドレス空間をサポートできるバスで置き換えることが望ましいであろう。
【０００６】
ＩＳＡバスおよびＸバス規格にはさらに、非同期であるという欠点もある。そのため、ＩＳＡバスおよびＸバスの信号を生成し、かつそれに応答する必要のあるコンポーネントのデザインが一般により複雑になる。したがって、ＩＳＡバスおよびＸバス規格を、コンポーネント間の同期通信をサポートできるバスで置き換え、それによってバス・インタフェース回路の複雑性を全般に緩和することが望ましいであろう。
【０００７】
（発明の概要）
ホストとメモリ・デバイスに結合されたバスを有するシステムを記述する。バスは、時分割多重化されたアドレス、データ、制御情報を運ぶ、複数の汎用信号線を有する。メモリ・デバイスはシステム起動情報を記憶し、バスを介してこの情報をホストと通信することができる。
【０００８】
本発明の他の特徴および利点は、添付の図面および以下の詳細な記述から明らかとなろう。
【０００９】
本発明の特徴および利点は、類似の言及が同様の構成要素を示す添付の図面の図中に、限定されないが例によって示される。
【００１０】
（詳細な説明）
ロー・ピン・カウント（ＬＰＣ）のバスを使用するコンピュータ・システムが開示される。ＬＰＣバスは、コンピュータ・システム内のＩＳＡバスまたはＸバスの代わりとなることができ、プロセッサやチップセットなどのホストと、出入力デバイスや出入力コントローラ・デバイス、およびメモリ・デバイスなどの周辺デバイスとの間の通信機構を提供する。一実施形態では、ＬＰＣバスは、ホストと周辺デバイスの間のメモリ・トランザクション、入出力トランザクション、ダイレクト・メモリ・アクセス（ＤＭＡ）・トランザクション、バス・マスタ・トランザクションを実施するための、ほぼ全ての時分割多重化されたアドレス、データ、制御情報を搬送する汎用信号線を含むであろう。
【００１１】
ＬＰＣバスの意図される利点は、以前はＩＳＡバスおよびＸバス規格のおよそ５０〜７０本の信号線によって実行された全機能を実行するのに、それよりもずっと少ない信号線（例えばおよそ６〜８信号線）しか必要とせずに済むことである。ＬＰＣバスに対する信号線の本数がＩＳＡバスおよびＸバス規格よりもずっと削減できるため、ＬＰＣバスをサポートするのにコンピュータ・システムのチップセット上またはプロセッサ上に必要とされるピンの数は大幅に削減できる。同様に、各周辺デバイス内に備わるＬＰＣインタフェースは、ＬＰＣバスを介してチップセットまたはプロセッサにインタフェースするのに、同様に少数のピンを使用することができる。これによって、コンポーネント製造業者にとってより低いパッケージング・コスト、および、コンピュータ・システムの製造業者にとってより低いシステム・コストが実現できる。さらにこれによって、より高い品質、および、より信頼性のあるパッケージングならびにシステム統合も実現できる。ＬＰＣバスはまた、バスに結合されるパッケージのピン・カウントを減らすために、他のシステムのバスの代わりとして使用することもできる。
【００１２】
ＬＰＣバスの別の意図される利点は、メモリ・アドレス空間および／または入出力アドレス空間が通信バス内の特定数のアドレス・ラインに限定されるのではなく、ＬＰＣバスが、いずれかのアドレス空間にアドレスする必要のある全てのアドレス信号をシリアルに搬送できることである。したがって、メモリ・アドレス空間および／または入出力アドレス空間の従来のエイリアシングが回避できる。
【００１３】
ＬＰＣバスの別の意図される利点は、チップセットまたはプロセッサを周辺デバイスにインタフェースできるＬＰＣインタフェース論理および／またはソフトウェアが、ＩＳＡバスまたはＸバス規格を採用する既存のコンピュータ・システムとのソフトウェア互換性を持てることである。すなわち、ＩＳＡバスまたはＸバス規格に対して、オペレーティング・システム・ソフトウェアまたはアプリケーション・プログラムがＬＰＣバス・システム上で動作するのに特別なドライバや設定は全く必要とされない。
【００１４】
ＬＰＣバスの別の意図される利点は、それを、ホストおよび周辺デバイス内のＬＰＣインタフェース回路が非同期バス・インタフェース構造よりも概して複雑でない回路となる、同期バスとすることができることである。
【００１５】
ＬＰＣバスおよび関連のサポート回路はまた、プリンタ、デジタル・カメラ、通信システム（例えばモデム、セルラー式電話システム、ページャ、デジタル応答システム）を含めた他のシステム内にも組み込むことができる。
【００１６】
図１は、ＬＰＣバス１２４を介して、入出力デバイスや入出力コントローラ・デバイス１０４、１０６と、メモリ・デバイス１０８とを含む周辺デバイスに結合されたホスト１０２を有するコンピュータ・システム１００の一実施形態である。ホスト１０２は、チップセット、プロセッサ、または、ＬＰＣバス１２４にインタフェースするためのインテリジェンスを含む他のいずれかの制御論理とすることができる。ホスト１０２はまた、オプションのＩＳＡバス１２６、およびオプションのＰＣＩバスまたはホスト・バス１２８にインタフェースするのに必要な論理を含むことも可能である。ホスト１０２は、ローカル・バスでも他のメモリ・バスでもよいバス１３０を介して、アドレス、データ、制御情報をメモリ１１０と通信する。メモリ１１０は、例えばオペレーティング・システム・ソフトウェア、アプリケーション・コード、プログラム・データを記憶する、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、または他のいずれかのタイプの揮発性メモリまたは不揮発性メモリなどの、システム１００に対するメイン・メモリまたはプライマリ・メモリとすることができる。
【００１７】
入出力デバイス１０４および１０６は、入出力アドレス空間内でアドレス可能であり、かつ、フロッピー・ディスク・ドライブ、キーボードなどの周辺コンポーネントへのアクセスを制御する入出力コントローラ・デバイスとすることができる。入出力デバイス１０４および１０６はそれぞれ、例えばフロッピー・ディスク・コントローラ、シリアル・ポート・コントローラ、パラレル・ポート・コントローラ、赤外線（ＩＲ）コントローラ、キーボード・コントローラ、オーディオ・コントローラ・デバイス、またはビデオ・コントローラ・デバイスとすることもできる。入出力デバイス１０４は、それぞれが例えばフロッピー・ディスク・コントローラ、シリアル・ポート・コントローラ、パラレル・ポート・コントローラ、赤外線（ＩＲ）コントローラ、キーボード・コントローラ、オーディオ・コントローラ・デバイス、ビデオ・コントローラ・デバイスである場合のあるＩ／Ｏコントローラ１２０および１２２を含むスーパーＩ／Ｏデバイスとすることができる。
【００１８】
メモリ・デバイス１０８は、メモリ空間にアドレス可能な周辺デバイスである。例えば、メモリ・デバイス１０８は、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、ＥＰＲＯＭ（電気的プログラム可能ＲＯＭ）、ＥＥＰＲＯＭ（電気的消去可能なＰＲＯＭ）、磁気記憶媒体、光学記憶媒体などの、どんなタイプの揮発性メモリまたは不揮発性メモリも含むことができる。メモリ・デバイス１０８は、システム起動コード、制御コード、オペレーティング・システム・データ、アプリケーション・コード、プログラム・データを記憶することができ、あるいは、ホスト１０２または入出力デバイス１０４および１０６のためのスクラッチ・パッドとして機能することができる。システム起動コードは、システム１００内でコンポーネントを構成またはブートするのに必要なソフトウェアを含むことができ、ＢＩＯＳ情報を含むことができる。
【００１９】
ホスト１０２および周辺デバイス１０４、１０６、１０８のそれぞれは、ＬＰＣバス１２４上のＬＰＣ信号を生成し、ＬＰＣ信号に応答するための、ＬＰＣインタフェース１１８、１１２、１１４、１１６を含む。これらのＬＰＣインタフェースによって、システム１００がＬＰＣバス１２４を介してメモリ・トランザクション、入出力トランザクション、ＤＭＡトランザクション、およびバス・マスタ・トランザクションを実施できる。各ＬＰＣインタフェースは、ＬＡＤ［３：０］、ＬＣＬＫ、ＬＦＲＡＭＥ＃の信号を受信または送信するための入力ピンと出力ピンのいずれかを有する。信号名に付くシャープ記号「＃」はその信号がアクティブ・ローの信号であることを示すことに留意されたい。代替の実施形態では、アクティブ・ローの信号はアクティブ・ハイの信号に変更することができる。
【００２０】
ＬＡＤ［３：０］信号線は、ＬＰＣバス１２４を介してホスト１０２と周辺デバイス１０４，１０６、１０８との間で時分割多重化されたアドレス、データ、および制御情報を搬送する汎用信号線である。ＬＡＤ［３：０］がアドレス、データ、または制御情報をいずれかの所与の時間に搬送しているかどうかは、以下により詳細に記述するシステム１００のオペレーティング・コンテキストによって決定される。ＬＡＤ［３：０］は４ビットのバスとして例示されるが、時分割多重化されたアドレス、データ、および制御情報を搬送するように意図された目的を達成するどんな数の信号線とすることもできる。４ビットのニブル・サイズのバスは、各ＬＰＣインタフェース１１２〜１１８上に必要なピンの数を減らし、ホスト１０２および周辺デバイス１０４、１０６、１０８のピンの数およびパッケージ・サイズを減らすのに都合が良いことがある。
【００２１】
ＬＣＬＫは、ＬＰＣインタフェース１１８によって、またはホスト１０２（図示せず）内の他の回路によって生成することのできるクロック信号である。あるいは、ＬＣＬＫは、水晶クロックまたは他のタイミング回路を含むシステム・クロック（図示せず）によって生成できる。一実施形態の場合、ＬＣＬＫはＰＣＩバス１２８からのＰＣＩクロックとすることができる。
【００２２】
ＬＦＲＡＭＥ＃は、ＬＰＣトランザクションまたはサイクルの開始および／または終了を示すためにホスト１０２のＬＰＣインタフェース１１８によって生成される。各ＬＰＣインタフェース１１２、１１４、１１６は、ＬＦＲＡＭＥ＃を監視またはサンプリングし、それによってＬＰＣトランザクションがいつ開始または終了できるかを決定することができる。例えば、ＬＦＲＡＭＥ＃がホスト１０２によって（例えばロー・レベルに）アサートされると、周辺デバイス１０４、１０６、１０８のＬＰＣインタフェース１１２、１１４、１１６はそれぞれＬＡＤ［３：０］を監視し、それによって、そのトランザクションまたはサイクルが自分に向けられたものかどうかを判定する。トランザクションが特定の周辺デバイスに向けられたものでない時、その周辺デバイスがより低い電力モードに入り、その状態機械をバスから分断し、そして／またはそのクロックをゲート制御できることが有利となる。ＬＦＲＡＭＥ＃が複数のＬＣＬＫサイクルにアサートされる場合、ＬＰＣインタフェース１１２、１１４、１１６は、最後のＬＣＬＫサイクルの間に、ＬＦＲＡＭＥ＃がアクティブであるというＬＡＤ［３：０］の開始制御情報に反応するだけである。表１は、ＬＦＲＡＭＥ＃がアサートされる時のＬＡＤ［３：０］の開始制御情報の例示的な定義を要約したものである。
【００２３】
表１
0004279451.tif 000002
【００２４】
ＬＦＲＡＭＥ＃は、ＬＰＣトランザクションを打ち切る、または終了するのに使用される。例えば、周辺デバイス１０４、１０６、１０８の各ＬＰＣインタフェース１１２、１１４、１１６は、ＬＰＣトランザクションの間、ＬＦＲＡＭＥ＃を監視し続ける。ＬＰＣトランザクションの間にＬＦＲＡＭＥ＃がアサートされる場合、周辺デバイス１０４、１０６、１０８はＬＡＤ［３：０］のドライブを中止し、それらのＬＰＣトランザクションを打ち切る。一実施形態では、ホスト１０２は、打切りの指示が全ての周辺デバイスに認識されるのを保証するために、いくつかのＬＣＬＫサイクル（例えば４クロック・サイクル）に対するＬＦＲＡＭＥ＃をアサートする。この１つまたは複数のＬＣＬＫサイクルの間、ホスト１０２はまた、周辺デバイス１０４〜１０８がＬＡＤ［３：０］のドライブを中止した後でＬＡＤ［３：０］の所定のデータをドライブする。一実施形態の場合、ホスト１０２がＬＡＤ［３：０］の１１１１をドライブし、ＬＦＲＡＭＥ＃が打切りシーケンスを指示するようにアサートされる。打切りシーケンスの終了時、ＬＦＲＡＭＥ＃は、新しいＬＰＣトランザクションが始まる前にアサート解除されることが可能である。
【００２５】
代替の実施形態では、ＬＦＲＡＭＥ＃は、いずれかのシステム内のいずれか２つのデバイス（例えばホストと周辺デバイス）間のメモリ・トランザクション、入出力トランザクション、バス・マスタ・トランザクション、ＤＭＡトランザクションなどのトランザクションの開始または打切りを通信する、（バスから離れた）独立した信号線の独立した制御信号として使用することもできる。
【００２６】
ＬＰＣバス１２４はまた、各ＬＰＣインタフェース１１２、１１４、１１６、１１８に入力され、ＬＰＣインタフェースを既知の状態（例えばアイドル状態）にリセットするリセット信号ＬＲＥＳＥＴ＃を含むことができる。一実施形態の場合では、ＬＲＥＳＥＴ＃を、ＰＣＩバス１２８上のＰＣＩリセット信号と同じリセット信号とすることができる。
【００２７】
入出力デバイス１０４および１０６もまた、ホスト１０２のＬＰＣインタフェース１１８への別々の制御線上に与えられるＤＭＡ要求信号ＬＤＲＱ０＃およびＬＤＲＱ１＃をそれぞれ有することができる。ＬＤＲＱ０＃およびＬＤＲＱ１＃は、ＤＭＡまたはバス・マスタ・トランザクションを実行する前にホスト１０２にコード化したＤＭＡチャネル要求を伝送するのに使用できる。各入出力デバイスは、周辺デバイスの入出力コントローラ１２０および１２２がＬＤＲＱ０＃上の１つのＤＭＡチャネル要求を共有するような、独自のＬＤＲＱ＃信号を有することができる。
【００２８】
ＬＰＣバス１２４はまた、別々の制御線上でホスト１０２から各周辺デバイス１０４〜１０８に出力されることのある低電力または待機中の信号ＬＰＣＰＤ＃を含むことができる。図１１に示すように、ホスト１０２は、時間ｔ０にＬＰＣＰＤ＃を非同期で（例えばローに）アサートし、それによって、周辺デバイス１０４〜１０８を低電力モードに入らせることができる。ホスト１０２によってアサートされたＬＰＣＰＤ＃を認識する際、周辺デバイス１０４〜１０８は、いずれかのＬＰＣトランザクションを停止し、ＬＤＲＱ＃信号を非活動状態にトライステートまたはドライブすることになる。周辺デバイス１０４〜１０８および／またはホスト１０２はまた、ＬＡＤ［３：０］を既知の状態にトライステートまたはドライブできる。ホスト１０２はまた、ＬＰＣＰＤ＃をアサートした後でＬＦＲＡＭＥ＃を既知の状態（ハイまたはロー）にドライブできる。低電力モードでは、ＬＣＬＫを時間ｔ１で切断でき、周辺デバイス１０４〜１０８がそれらの状態機械および／または他の論理を切断することができる。一実施形態の場合では、ｔ０とｔ１の間の時間差は少なくとも３０マイクロ秒ある。低電力モードの場合、ＬＣＬＫは時間ｔ２で非同期で再開でき、ＬＰＣＰＤ＃が時間ｔ３でアサート解除されるまでのしばらくの間動作することができる。一実施形態の場合では、ｔ２とｔ３の間の時間差は少なくとも１００マイクロ秒である。次いで、時間ｔ３から時間ｔ４まで周辺デバイス１０４〜１０８をリセットするのに、ＬＲＥＳＥＴ＃を使用できる。一実施形態の場合では、時間ｔ３と時間ｔ４の間の時間差は少なくとも６０マイクロ秒である。
【００２９】
ホスト１０２と周辺デバイス１０４〜１０８はまた、割込み信号（例えばＳＥＲＩＲＱおよびＳＭＩ＃）、追加クロック信号（例えばＣＬＫＲＵＮ＃）、および以下により詳細に記述する電力制御信号を含めた、ＩＳＡバスまたはＰＣＩバスで使用される追加の側波帯の入力および／または出力信号も有することができる。
【００３０】
一実施形態では、ＬＰＣバス１２４は、およそ６〜９本の信号線を使用することで、従来のＩＳＡバスまたはＸバスのパーツまたはシステムに対する実質的な信号およびピン・カウントの節約を実現する。例えば、プラグアンドプレイのデバイスに通常使用される次のＩＳＡバスまたはＸバスの信号はもはや必要とされない。Ｄ［７：０］、ＳＡ［１５：０］、ＤＲＥＱ［３：０］、ＤＡＣＫ＃［３：０］、ＴＣ、ＩＯＲ＃、ＩＯＷ＃、ＩＯＣＨＲＤＹ、ＩＯＣＳ１６＃、およびＭＥＭＣＳ１６＃がそれである。このことによって、バス、ホスト、および／または周辺デバイス上のおよそ３０〜４０個の信号が節約できる。一実施形態の場合、ＩＳＡバスまたはＸバス互換の状況下で１６０本ものピンを有するパッケージが必要なこともあった全機能的なスーパーＩ／Ｏ周辺コントローラ・デバイスは、図１に示すようなＬＰＣインタフェースの使用によって８８本（またはそれ未満）のピンを有するパッケージを必要とするだけで済む。
【００３１】
ＬＰＣバスは、メモリ読取り、メモリ書込み、入出力読取り、入出力書込み、ＤＭＡ読取り、ＤＭＡ書取り、バス・マスタ・メモリ読取り、バス・マスタ・メモリ書込み、バス・マスタ入出力読取り、バス・マスタ入出力書込みを含めた、メモリ、入出力、ＤＭＡ、バス・マスタのトランザクションまたはサイクルを実行するために、ＬＰＣインタフェース１１２〜１１８によって使用されることが可能である。トランザクションのタイプは、ホスト１０２または周辺デバイス１０４、１０６、１０８によってＬＡＤ［３：０］でドライブされるサイクル・タイプおよび方向制御情報のフィールドに示されることが可能である。ＬＡＤ［３：１］でコード化されるサイクル・タイプおよび制御情報の一実施形態を表２に示す。同じまたは異なる信号上の他のコード化も使用できる。
【００３２】
表２
0004279451.tif 000003
【００３３】
図２には、ホスト１０２のＬＰＣインタフェース１１８の一実施形態であるＬＰＣインタフェース２００を示す。ＬＰＣインタフェース２００は、表２のトランザクションを実行するために、ＬＰＣバス１２４上のアドレス、データ、制御情報を生成し、変換する。ＬＰＣインタフェース２００は、ホスト１０２と周辺デバイス１０４〜１０８のうちの１つとの間のメモリ読取り、メモリ書込み、入出力読取り、および入出力書込みのＬＰＣトランザクションを制御できる、メモリおよび入出力のＬＰＣ制御論理２０２を含む。メモリおよび入出力のＬＰＣ制御論理２０２は、特定のＬＰＣトランザクションに必要な状態間の順番付けを行うため、かつ、ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、および／またはＬＣＬＫ上にアドレス、データ、または制御情報を生成するための、状態機械またはシーケンサを含むことができる。ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、および／またはＬＣＬＫ上に提供される情報は、論理２０８からＬＰＣバス１２４に出力されるためにバス２１４に提供されることが可能である。
【００３４】
一実施形態の場合、メモリおよび入出力のＬＰＣ制御論理２０２は、ＬＰＣメモリ・トランザクションまたは入出力トランザクションが１つまたは複数の信号２１６を介してＬＰＣ復号論理２１０と通信することによって実行される必要があることを決定する。ＬＰＣ復号論理２１０は、メモリまたは入出力の読取りまたは書込み要求、および関連するアドレスを、ホスト１０２、ＩＳＡバス１２６、ＰＣＩバスまたはホスト・バス１２８から受信することができる。ＬＰＣ復号論理はアドレスおよび信号メモリを復号化し、入出力ＬＰＣ制御論理２０２はメモリまたは入出力ＬＰＣのトランザクションを開始する。あるいは、ＬＰＣ復号論理２１０は、ＬＰＣインタフェース２００の外、ただしホスト１０２の内部に位置付けることも可能である。オペレーティング・システム・ソフトウェアおよびアプリケーション・ソフトウェアに対するソフトウェア透過性をＬＰＣトランザクションに持たせるのを補助するために、周辺デバイス１０４〜１０８に対して復号化されるアドレスの範囲は、以前のＩＳＡバスおよびＸバスを使用するレガシー・ベースの周辺デバイスとの互換性を有するように定義できる。代替の実施形態の場合、メモリおよび入出力のＬＰＣトランザクションの制御は、異なる制御回路内に分離することもできる。
【００３５】
ＬＰＣインタフェース２００はまた、ホスト１０２と入出力デバイス１０４および１０６のうちの１つとの間のＤＭＡ読取りおよび書込みのＬＰＣトランザクションを制御するＤＭＡ  ＬＰＣ制御論理２０４も含む。ＤＭＡ  ＬＰＣ制御論理２０４は、ＤＭＡ  ＬＰＣトランザクションに必要な状態間の順番付けを行うため、かつ、ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、および／またはＬＣＬＫ上にアドレス、データ、または制御情報を生成するため、かつ、ＤＭＡ要求信号ＬＤＲＱ０＃およびＬＤＲＱ１＃を受信するための、状態機械またはシーケンサを含むことができる。ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、ＬＤＲＱ０＃、ＬＤＲＱ１＃、および／またはＬＣＬＫに提供される情報は、論理２０８およびバス２１４を介してＬＰＣバス１２４間で提供されることができる。
【００３６】
ＤＭＡ  ＬＰＣ制御論理２０４は、ホスト１０２中に常駐できるＤＭＡコントローラ２１２を介してホスト１０２およびメモリ１１０にインタフェースすることができる。ＤＭＡ  ＬＰＣ制御論理２０４は、１つまたは複数の信号２１８を介してＤＭＡ制御論理２１２と通信することができる。一実施形態の場合、ＤＭＡ制御論理２１２は、１つまたは複数の８２３７または８２３７互換のＤＭＡコントローラを含むことができる。ＤＭＡコントローラ２１２は、入出力デバイスがそれを使用してホスト１０２を介してメイン・メモリ１１０と通信できるようなＤＭＡチャネルの代わりに、ホスト１０２内の仲裁を実行することができる。
【００３７】
ＬＰＣインタフェース２００はまた、ホスト１０２と周辺デバイス１０４〜１０８の間の、バス・マスタ・メモリ読取りおよび書込みのＬＰＣトランザクションと、バス・マスタ入出力読取りおよび書込みのＬＰＣトランザクションとを制御するバス・マスタＬＰＣ制御論理２０６も含む。バス・マスタＬＰＣ制御論理２０６は、バス・マスタＬＰＣトランザクションに必要な状態間の順番付けを行うため、かつ、ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、および／またはＬＣＬＫ上のアドレス、データ、または制御情報を生成するため、かつ、ＤＭＡ要求信号ＬＤＲＱ０＃およびＬＤＲＱ１＃を受信するための、状態機械またはシーケンサを含むことができる。ＬＡＤ［３：０］、ＬＦＲＡＭＥ＃、ＬＤＲＱ０＃、ＬＤＲＱ１＃、および／またはＬＣＬＫに提供される情報は、論理２０８およびバス２１４を介してＬＰＣバス１２４へ送り又はＬＰＣバス１２４から受け取ることができる。
【００３８】
論理２０８は、ＬＰＣバス１２４をＬＰＣバス２１４にインタフェースするための１つまたは複数のバッファまたはトランシーバを含むことができる。あるいは、ＬＰＣインタフェース２００はバス２１４を含まなくてもよく、論理２０８は、メモリおよび入出力のＬＰＣ制御論理２０２、ＤＭＡ  ＬＰＣ制御論理２０４、およびバス・マスタＬＰＣ制御理論２０６の入力信号および出力信号に直接かつ個別に接続できる。この代替の実施形態の場合、論理２０８は、ホスト１０２の制御下で、ＬＰＣバス１２４と制御論理２０２、２０４、２０６との間で適したＬＰＣ信号を出力または入力する、セレクタ回路またはマルチプレクサ回路とすることができる。
【００３９】
図３は、ホスト１０２と周辺デバイス１０４〜１０８の間で、メモリおよび／または入出力の書込みＬＰＣトランザクションまたは読取りＬＰＣトランザクションを実行するための１つまたは複数のＬＰＣインタフェース１１２〜１１８が実施される状態図である。例えば、図３の状態図は、図２で示したメモリおよび入出力のＬＰＣ制御論理２０２の状態機械またはシーケンサによって使用されることが可能である。この状態図は、メモリ読取り、メモリ書込み、入出力読取り、入出力書込みのＬＰＣトランザクションを実施する。他の実施形態の場合では、別々の状態機械がメモリ・トランザクションおよび入出力トランザクションを実施する。メモリ読取りおよび書込みのＬＰＣトランザクションは、図４および図５の例示的なタイミング図を利用しながら述べる。
【００４０】
最初に、ホスト１０２による、メモリ・デバイス１０８内のメモリ位置からの例示的なメモリ読取りＬＰＣトランザクションを図３および図４を参照しながら述べる。このメモリ読取りＬＰＣトランザクションは、例えば、ホスト１０２がメモリ・デバイス１０８からシステム起動情報を読み取ることによって実施できる。状態３０２では、ＬＰＣインタフェース１１８は、ＬＦＲＡＭＥ＃が（例えばハイに）アサート解除されていて、ＬＰＣトランザクションを実行しないアイドル状態である。ホスト１０２が、ＬＰＣバス１２４上のＬＦＲＡＭＥ＃を（例えばローに）アサートすることによってＬＰＣトランザクションを開始すると（例えば、制御論理２０２が、メモリ読取りＬＰＣトランザクションが発生することを示す復号化された信号をＬＰＣ復号論理２１０およびホスト１０２から受信すると）、プロセスは状態３０４に移行する。ホスト１０２は、サイクルＴ０中にＬＡＤ［３：０］のＬＰＣトランザクションの開始を示す開始制御情報をドライブすることができる。例えば、開始制御情報は表１に示すようにＬＡＤ［３：０］を００００とすることができる。
【００４１】
次いでプロセスは状態３０６に移行し、ホスト１０２は、サイクルＴ１中にＬＡＤ［３：０］のサイクル・タイプおよび方向制御情報をドライブする。サイクル・タイプおよび方向制御情報は、ＬＰＣトランザクションがメモリ読取りトランザクションであることを周辺デバイス１０４〜１０８に示す。例えば、サイクル・タイプおよび方向制御情報は、表２に示すようにＬＡＤ［３：１］を０１０とする。
【００４２】
次いでプロセスは状態３０８に移行し、ホスト１０２は、ｎクロック・サイクルＴ２中にＬＡＤ［３：０］の選択されたメモリ・デバイス１０８内のメモリ位置のアドレスをドライブする。アドレスは、図１のシステム１００などのシステムによってサポートされるどんなビット長でもよく、いくつかのｎクロック・サイクルＴ２にわたって送信される。一実施形態の場合、メモリ・アドレス空間は４ギガバイトで、３２ビットのメモリ・アドレスを必要とすることがある。この実施形態では、８ニブル（３２ビット）のアドレス情報をホスト１０２からメモリ・デバイス１０８に転送するために、８クロック・サイクルのアドレス情報が制御論理からＬＰＣバス１２４に与えられる。アドレス情報は、最上位のニブルが先に提供されても、最下位のニブルが先に提供されてもよく、あるいはメモリ・デバイス１０８によって予想される他のどんな順番でもよい。
【００４３】
代替の実施形態の場合、ホスト１０２は、後続のサイクル中にＬＡＤ［３：０］にサイズ制御情報を任意選択でドライブすることができる。一実施形態の場合、サイズ制御情報は、状態３０８で与えられるアドレスで開始され、メモリ・デバイス１０８から読み取られるべきメモリ・データのバイト数を示す。表３は、その後でＬＡＤ［３：０］を介して転送されるべきＬＡＤ［１：０］のバイト数をコード化する一実施形態を提供する。同じまたは異なるＬＡＤ信号線上の他のコード化も使用できる。
【００４４】
表３
0004279451.tif 000004
【００４５】
別の実施形態の場合、サイズ制御情報は、メモリ・データの２sizeバイト数がメモリ・デバイス１０８から、状態３０６で提供されるアドレスで開始され読み取られるべきであることを示すことがある。
【００４６】
次いでプロセスは、転換（ＴＡＲ）状態３１２に移行し、ｎクロック・サイクルＴ４中にＬＰＣバス１２４の制御権をホスト１０２からメモリ・デバイス１０８に移す。一実施形態の場合、状態３１２は２クロックの幅を有する。最初のクロック・サイクルで、ホスト１０２は所定の制御情報（例えば１１１１）を使用してＬＡＤ［３：０］の信号線をドライブできる。第２のクロック・サイクルで、ホスト１０２はＬＡＤ［３：０］の信号線をトライステートにする。これらの信号線は、論理的に高い状態を維持できるようにこれらの信号線に付けられた弱いプルアップを有する。他の実施形態の場合、ＬＡＤ［３：０］を転換するために、ｎは１クロック・サイクル、または２クロック・サイクルよりも大きいクロック・サイクルとすることができる。
【００４７】
次いでプロセスは状態３１４に移行し、メモリ・デバイス１０８がＬＡＤ［３：０］の帯域内同期化制御情報をドライブする間、ホスト１０２はｎクロック・サイクルＴ５で待機する。同期化制御情報は、メモリ・データがメモリ・デバイス１０８によって出力できるようになるまで待ち状態を追加するのに使用できる。このようにして、異なる速度またはアクセス時間のメモリ・デバイスが同じＬＰＣバスに結合できる。従来は、いつデータの準備が整うかを示すために専用制御線上の専用制御信号が使用された（例えばＩＳＡバスまたはＸバスのＩＯＣＨＲＤＹ）。これとは対照的に、メモリ・デバイス１０８は、ＬＡＤ［３：０］の帯域内信号を使用して、追加の専用ピンまたは専用線を使用することなく待ち状態を挿入することができる。
【００４８】
一実施形態の場合、同期化制御情報フィールドは２つの位相を有する。第１の位相は、要求されたデータにアクセスしながら、ＬＡＤ［３：０］の第１の制御情報をドライブする（例えば０１０１または０１１０）。第２の位相は、そのデータがＬＰＣバス１２４に出力される準備ができていることを示すＬＡＤ［３：０］の第２の制御情報をドライブする（例えばＬＡＤ［３：０］の００００）。ホスト１０２は同期化制御情報を監視し、いつ第２の情報が送信されるかを決定することができる。次いでホスト１０２は、後続のクロック・サイクルＴ６でメモリ・デバイス１０８によって出力されるデータがホスト１０２によって要求されたデータとなることを認識できる。一実施形態の場合、第１の制御情報は、メモリ・デバイス１０８がＬＡＤ［３：０］に相対的に多数の待ち状態（例えばおよそ２０＋待ち状態）をドライブすることを示すコード（例えばＬＡＤ［３：０］の０１１０）を有する。第１の制御情報はまた、メモリ・デバイス１０８がＬＡＤ［３：０］に相対的に少数の待ち状態（例えば１〜２０待ち状態）を有することを示すコードを（例えばＬＡＤ［３：０］の０１０１）を有することもできる。一例では（以下の表４参照）、メモリ・デバイス１０８は、およそ１〜２０クロック・サイクルでＬＡＤ［３：０］の０１０１の同期化データをそれぞれドライブし、次いで、要求されたデータの準備が整い、続くクロック・サイクルで出力されることを示すために、ＬＡＤ［３：０］の００００の１サイクルをそれぞれドライブすることがある。
【００４９】
待ち状態の数が多い場合、ホスト１２０は、状態３２０に入ることによってトランザクションの打切りを決定することができる。前述のように、ホスト１０２は、１つまたは複数のクロック・サイクルに対してＬＦＲＡＭＥ＃をアサートし、ＬＡＤ［３：０］の所定の打切り制御情報（例えば表１の１１１１）をドライブすることによってトランザクションを打ち切ることができる。
【００５０】
制御情報の同期化フィールドはまた、ＬＡＤ［３：０］の帯域内エラー・メッセージをホスト１０２のＬＰＣインタフェース１１８に送るためにメモリ・デバイス１０８によって使用されることもある。エラー・メッセージは、同期化シーケンス中のいつでも送信できる。例えば、第１および第２の同期化制御情報を有する実施形態で第２の制御情報として送信することができる。エラー・メッセージは、例えば、要求されたデータが何らかの形で破損していたり、周辺デバイスが要求を理解しなかったり、無効な要求が出されたり、あるいは、周辺デバイスがパワー・ダウン・モードの間にまたはデータを出力する準備ができていないか出力できない他のモードの間に要求が出されたりしたことを示すことがある。一実施形態では、エラー・メッセージがメモリ読取りトランザクション中に送信された場合、そのデータは読出し後破棄される。
【００５１】
表４は、上述の同期化制御情報に対するＬＡＤ［３：０］のコード化の一実施形態を提供する。他のコード化を使用することもできる。
【００５２】
表４
0004279451.tif 000005
【００５３】
代替の実施形態の場合、帯域内同期化制御情報は、待ち状態、エラー、あるいはすでに表４に記載されたまたは要約された他のいずれかの情報を通信するいずれかのシステム内の、汎用時分割多元バスを介するいずれか２つのデバイス（例えばホストと周辺デバイス）の間で使用できる。
【００５４】
メモリ・デバイス１０８がそのデータをＬＰＣバス１２４に出力する準備ができた時、プロセスは、ＬＡＤ［３：０］で適切な同期化制御情報（例えば００００）を提供した後で、ｎクロック・サイクルＴ６にわたって状態３１６に移行する。状態３１６では、ホスト１０２はメモリ・デバイス１０８からＬＡＤ［３：０］に提供されたデータを読み取る。メモリ・デバイス１０８は、２クロック・サイクルにわたるバイト単位でＬＡＤ［３：０］にデータをドライブできる。２バイト転送の一実施形態の場合、第１のバイトは最初の２クロック・サイクルで出力され、第２のバイトは後続の２クロック・サイクルで出力されるであろう。データはメモリ・デバイス１０８によって各バイトに、低いニブルを先にしても、高いニブルを先にしても、または他のどんな形式によっても出力できる。同様に、メモリ・デバイス１０８によって出力されるバイトの各グループも、低いバイトを先にしても、高いバイトを先にしても、または他のどんな形式によっても出力できる。
【００５５】
一実施形態の場合、同期化フィールド制御情報がバイト間に挿入されるように状態３１６と３１４の間でサイクリングすることによって、複数バイト読取りを実施することができる。代替の実施形態の場合、プロセスが状態３１６にある間に複数バイトのバースト読取りを読み取ることができる。この代替の実施形態では、メモリ・デバイス１０８は、状態３１４でＬＡＤ［３：０］の１１００をドライブして、同期化制御情報がそれ以上データ・バイト間で伝達されないことを指示することができる。他の実施形態の場合、複数のまたはバーストのデータ読取りを指示するのに特定の同期化制御情報が必要でない場合がある。
【００５６】
ホスト１０２で全データが読み取られた後、プロセスは転換（ＴＡＲ）状態３１８に移行することができ、そこでＬＡＤ［３：０］の制御はクロック・サイクルＴ７中にホスト１０２に戻される。状態３１２と同様に、状態３１８も２クロック幅とすることができる。最初のクロック・サイクルで、メモリ・デバイス１０８は、所定の制御情報（例えば１１１１）によってＬＡＤ［３：０］をドライブする。第２のクロック・サイクルで、メモリ・デバイス１０８はＬＡＤ［３：０］の信号線をトライステートにできる。他の実施形態の場合、ＬＡＤ［３：０］を転回させるためにｎは１クロック・サイクル、または２クロック・サイクルより大きいサイクルとすることができる。
【００５７】
図３および図５を参照しながら、ホスト１０２によるメモリ・デバイス１０８内のメモリ位置へのメモリ書込みＬＰＣトランザクションの例を示す。このメモリ書込みＬＰＣトランザクションは、例えばシステム起動情報をメモリ・デバイス１０８に書き込むためにホスト１０２によって実施される。状態３０２では、ホスト１０２はＬＰＣトランザクションを実行しないアイドル状態である。ホスト１０２がＬＰＣバス１２４上でＬＦＲＡＭＥ＃をアサートすると（例えば制御論理２０２がＬＰＣ復号論理２１０およびホスト１０２から、メモリ読取りＬＰＣトランザクションが行われることを示す復号化された信号を受領すると）、プロセスはＬＰＣトランザクションを開始する。次いでプロセスは開始状態３０４に移行し、ホスト１０２はＬＡＤ［３：０］のＬＰＣトランザクションの開始を示す開始制御情報をドライブする。例えば、開始制御情報は表１に示すように００００とすることができる。次いでプロセスは状態３０４に移行し、そのＬＰＣトランザクションがメモリ書込みトランザクションであることを周辺デバイス１０４〜１０８に示すＬＡＤ［３：１］のサイクル・タイプおよび方向制御情報をＴ１サイクル中にドライブする。例えば、サイクル・タイプおよび方向制御情報は、表２に示すようにＬＡＤ［３：１］の０１１とすることができる。
【００５８】
次いでプロセスは状態３０８に移行し、ホスト１０２は、ＬＡＤ［３：０］の選択されたメモリ・デバイス１０８内のメモリ位置のアドレスをＴ２サイクル中にドライブする。前述のように、アドレスは図１のシステム１００などのシステムによってサポートされるどんなビット長でもよく、ｎ個のクロック・サイクルＴ２にわたって送ることができる。アドレス情報は、最上位のニブルを先にしても、最下位のニブルを先にしても、あるいはメモリ・デバイス１０８に予想できる他のどんな形式によっても提供することができる。
【００５９】
代替の実施形態の場合、次いでホスト１０２は、ＬＡＤ［３：０］にサイズ制御情報をサイクルＴ３中にドライブする。サイズ制御情報は、状態３０８で提供されるアドレスで開始されメモリ・デバイス１０８に書き込まれるメモリ・データのバイト数を示すことができる。
【００６０】
次いでプロセスは状態３１０に移行し、ホスト１０２は、ｎクロック・サイクルＴ４で、ＬＡＤ［３：０］を介してメモリ・デバイス１０８に適切なバイトのデータを書き込む。ホスト１０２は、２クロック・サイクルにわたるバイト単位でＬＡＤ［３：０］にデータをドライブできる。例えば、転送が１６ビットすなわち２バイト転送である場合は、第１のバイトは最初の２クロック・サイクルで出力され、第２のバイトは次の２クロック・サイクルで出力される。データはホスト１０２によって各バイトに、低いニブルを先にしても、高いニブルを先にしても、または他のどんな形式によっても出力できる。同様に、ホスト１０２によって出力されるバイトの各グループも、低いバイトを先にしても、高いバイトを先にしても、または他のどんな形式によっても出力できる。ホスト１０２は１つまたは複数の（バースト）データ・バイトを状態３１０で書き込むことができる。
【００６１】
次いでプロセスは転換（ＴＡＲ）状態３１２に移行し、ｎクロック・サイクルＴ５中にＬＰＣバス１２４の制御権をメモリ・デバイス１０８に移す。次いでプロセスは状態３１４に移行し、メモリ・デバイス１０８がＬＡＤ［３：０］帯域内同期化制御情報をクロック・サイクルＴ６でドライブする間、ホスト１０２はｎクロック・サイクルで待機する。一実施形態の場合、同期化制御情報は１つまたは複数のクロック・サイクルとすることができ、メモリ・デバイス１０８中に書き込まれるデータの受領を通知するのに使用することができる（例えばＬＡＤ［３：０］の００００）。同期化制御情報はまた、データがメモリ・デバイス１０８中に書き込まれ記憶されるまで待ち状態を追加するのにも使用できる。この待ち状態の間に、メモリ・デバイス１０８は、表４に示すようなＬＡＤ［３：０］の短時間待ち状態の同期化制御情報または長時間待ち状態の同期化制御情報をドライブすることができる。メモリ・デバイス１０８がアドレスされたメモリ位置にデータを書き込み終えた時、メモリ・デバイス１０８はＬＡＤ［３：０］のレディ状態（例えば００００）をドライブすることができる。
【００６２】
メモリ読取りＬＰＣトランザクションの場合と同様に、メモリ・デバイス１０８はまた、制御情報の同期化フィールドを使用して、ＬＡＤ［３：０］を介して帯域内エラー・メッセージ（例えば１０１０）をホスト１０２に送る。エラー・メッセージは例えば、書込みトランザクションが正しく行われなかったり、他の何らかのエラーが起こったことを示すことがある。
【００６３】
次いでホスト１０２は転換（ＴＡＲ）状態３１８に移行することができ、そこでＬＡＤ［３：０］の制御はｎクロック・サイクルＴ７中にホスト１０２へ戻されることが可能である。
【００６４】
図６は、ホスト１０２と周辺デバイス１０４〜１０８の間で、メモリおよび／または入出力の書込みＬＰＣトランザクションおよび読み取りＬＰＣトランザクションを実行するための１つまたは複数のＬＰＣインタフェース１１２〜１１８の状態図の別の実施形態である。例えば図６の状態図は、図２に示すメモリおよび入出力のＬＰＣ制御論理２０２の状態機械またはシーケンサによって使用されることが可能である。この状態図は、メモリ読取りおよびメモリ書込みのＬＰＣトランザクションを実行する。図７および図８の例示的なタイミング図を利用しながら、メモリ読取りおよびメモリ書込みのＬＰＣトランザクションを述べる。
【００６５】
最初に、ホスト１０２による、メモリ・デバイス１０８中のメモリ位置からの例示的なメモリ読取りＬＰＣトランザクションを、図６および図７を参照しながら記述する。メモリ読取りＬＰＣトランザクションは、例えば、ホスト１０２がメモリ・デバイス１０８からシステム起動情報を読み取ることによって実行できる。状態６０２では、ＬＰＣインタフェース１１８は、ＬＦＲＡＭＥ＃が（例えばハイに）アサート解除されており、ＬＰＣトランザクションを実行しないアイドル状態である。ホスト１０２がＬＦＲＡＭＥ＃を（例えばローに）ＬＰＣバス１２４上でアサートすることによってＬＰＣトランザクションを開始すると（例えば制御論理２０２がＬＰＣ復号論理２１０およびホスト１０２から、メモリ読取りＬＰＣトランザクションが行われることを示す復号化された信号を受領すると）、プロセスは状態６０４に移行する。ホスト１０２は、サイクルＴ０中にＬＡＤ［３：０］のＬＰＣメモリ読取りトランザクションの開始を示す開始制御情報をドライブすることができる。例えば、開始制御情報は表１に示すようにＬＡＤ［３：０］の１１０１とすることができる。
【００６６】
次いでプロセスはデバイス選択（ＩＤＳＥＬ）状態６０６に移行し、ホスト１０２は、ＬＡＤ［３：０］のデバイス選択制御情報をドライブして、メモリ読取りトランザクション用の特定のメモリ・デバイスを選択する。一実施形態の場合、ＬＰＣバス１２４に結合されるメモリ・デバイスは、外部結線接続による、または内部抵抗器ベースの識別を有することがある。図９に、結線接続のメモリ・デバイスの識別の一実施形態を示す。メモリ・デバイス９００は、入力線１０、１１、１２、１３上にそれぞれ００００の識別を有する。メモリ・デバイス９０１は、入力線１０、１１、１２、１３上にそれぞれ０００１の識別を有する。メモリ・デバイス９１５は、入力線１０、１１、１２、１３上にそれぞれ１１１１の識別を有する。結線接続の入力線をいくつでも使用して、バイナリ形式または他の何らかの形式によってメモリ・デバイスをいくつでも識別または選択することができる。ＬＰＣバス１２４に結合される各メモリ・デバイスは、デバイス選択制御情報をその結線接続の識別と比較し、そのＬＰＣメモリ読取り（または書込み）トランザクションが自身に向けられたものかどうかを決定する。メモリ・トランザクションが自身に向けられたものでない場合、メモリ・デバイスはパワー・ダウン状態（例えばアイドル状態６０２）に入ることがある。
【００６７】
次いでプロセスは状態６０８に移行し、ホスト１０２は、ＬＡＤ［３：０］の、選択されたメモリ・デバイス１０８中のメモリ位置のアドレスをｎクロック・サイクルＴ２中にドライブする。アドレスは、図１のシステム１００のようなシステムにサポートされるどんなビット長でもよく、ｎ個のクロック・サイクルＴ２にわたって送られる。一実施形態の場合、メモリ・アドレス空間は２５６キロバイトで、２８ビットのメモリ・アドレスを必要とすることがある。この実施形態では、ホスト１０２からメモリ・デバイス１０８に７ニブル（２８ビット）のアドレス情報を転送するために、７クロック・サイクルのアドレス情報が制御論理からＬＰＣバス１２４に提供される。アドレス情報は、最上位のニブルが先でも、最下位のニブルが先でも、またはメモリ・デバイス１０８に予想される他のどんな順番でも提供することができる。
【００６８】
次いでプロセスは状態６１０に移行し、ホスト１０２は、クロック・サイクルＴ３中にＬＡＤ［３：０］にサイズ制御情報をドライブする。一実施形態の場合、サイズ制御情報は、状態６０６で提供されるアドレスで開始され、メモリ・デバイス１０８から読み取られるべきメモリ・データのバイト数を示す。表６は、バイト数をコード化する一実施形態を提供する。別の実施形態の場合、サイズ制御情報は、メモリ・データの２sizeバイト数がメモリ・デバイス１０８から、状態６０８で提供されるアドレスで開始され読み取られるべきであることを示すことがある。
【００６９】
一実施形態の場合、データ転送はホスト１０２によって２sizeの境界に配列されることがある。例えば、サイズ・フィールドがＬＡＤ［３：０］の０１００と等しい場合、その動作は１６バイトの境界に配列され、メモリ・デバイス１０８は、１６バイトに配列されたアドレスで始まる１６バイトのデータを受領または送出しなければならない。別の実施形態では、データ転送は、表３のようなサイズ境界に配列されることがある。例えば、サイズがＬＡＤ［３：０］の００１０と等しい場合、その動作は１６ビット境界または語境界に整列され、メモリ・デバイス１０８は、１６ビットまたは語に配列されたアドレスで始まる１６ビットのデータを受領または送出しなければならない。
【００７０】
次いでプロセスは転換（ＴＡＲ）状態６１４に移行して、ｎクロック・サイクルＴ４中にＬＰＣバス１２４の制御権をホスト１０２からメモリ・デバイス１０８に移す。次いでプロセスは状態６１６に移行し、そこでメモリ・デバイス１０８がＬＡＤ［３：０］の帯域内同期化制御情報をドライブする間、ホスト１０２はｎクロック・サイクルＴ５で待機する。図３の状態３１４に関連して上記に述べたように、同期化制御情報はメモリ・トランザクションに待ち状態を追加するのに使用することができる。待ち状態の数が多い場合、ホスト１０２は、状態６２２に入ることによってトランザクションを打ち切る決定をすることができる。前述のように、ホスト１０２は、１つまたは複数のクロック・サイクルにＬＦＲＡＭＥ＃をアサートし、ＬＡＤ［３：０］の所定の打切り制御情報（例えば表１の１１１１）をドライブすることによってトランザクションを打ち切ることができる。
【００７１】
図３の状態３１４に関連して上記に述べたように、制御情報の同期化フィールドもまた、ホスト１０２のＬＰＣインタフェース１１８にＬＡＤ［３：０］の帯域内エラー・メッセージを送るために、メモリ・デバイス１０８によって使用されることが可能である。上記の表４は、上述の同期化制御情報に対するＬＡＤ［３：０］のコード化の一実施形態を提供する。他のコード化を使用することも可能である。
【００７２】
代替の実施形態の場合、帯域内同期化制御情報は、待ち状態、エラー、あるいはすでに表４に記載されたまたは要約された他のいずれかの情報を通信するいずれかのシステム内の、汎用時分割多元バスを介するいずれか２つのデバイス（例えばホストと周辺デバイス）の間で使用できる。
【００７３】
メモリ・デバイス１０８がそのデータをＬＰＣバス１２４に出力する準備ができた時、ＬＡＤ［３：０］で適切な同期化制御情報（例えば００００）を提供した後で、プロセスはｎクロック・サイクルＴ６にわたって状態６１８に移行する。状態６１８では、ホスト１０２はメモリ・デバイス１０８からＬＡＤ［３：０］に提供されたデータを読み取る。メモリ・デバイス１０８は、２クロック・サイクルにわたるバイト単位でＬＡＤ［３：０］にデータをドライブできる。データはメモリ・デバイス１０８によって各バイトに、低いニブルを先にしても、高いニブルを先にしても、または他のどんな形式によっても出力できる。同様に、メモリ・デバイス１０８によって出力されるバイトの各グループも、低いバイトを先にしても、高いバイトを先にしても、またはホスト１０２に予想できる他のどんな形式によっても出力できる。
【００７４】
一実施形態の場合、同期化フィールド制御情報がバイト間に挿入されるように状態６１８と６１６の間でサイクリングすることによって、複数バイト読取りを実施することができる。代替の実施形態の場合、ホスト１０２が状態６１８にある間に複数バイトのバースト読取りを読み取ることができる。この代替の実施形態では、メモリ・デバイス１０８は、状態６１６でＬＡＤ［３：０］の１１００をドライブして、同期化制御情報がそれ以上データ・バイト間で伝達されないことを指示することができる。他の実施形態の場合、複数のまたはバーストのデータ読取りを指示するのに特定の同期化制御情報が必要でない場合がある。
【００７５】
ホスト１０２で全データが読み取られた後、プロセスは転換（ＴＡＲ）状態６２０に移行することができ、そこでＬＡＤ［３：０］の制御はｎクロック・サイクルＴ７中にホスト１０２に戻されることが可能である。状態６１４と同様に、状態６２０も２クロック幅とすることができる。最初のクロック・サイクルで、メモリ・デバイス１０８は、所定の制御情報（例えば１１１１）によってＬＡＤ［３：０］の線をドライブする。第２のクロック・サイクルで、メモリ・デバイス１０８はＬＡＤ［３：０］の線をトライステートにできる。他の実施形態の場合、ＬＡＤ［３：０］を転回させるためにｎは１クロック・サイクル、または２クロック・サイクルより大きいサイクルとすることができる。
【００７６】
図６および図８を参照しながら、ホスト１０２によるメモリ・デバイス１０８内のメモリ位置へのメモリ書込みＬＰＣトランザクションの例を示す。このメモリ書込みＬＰＣトランザクションは、例えばシステム起動情報をメモリ・デバイス１０８に書き込むためにホスト１０２によって実施される。状態６０２では、ホスト１０２はＬＰＣトランザクションを実行しないアイドル状態である。ホスト１０２がＬＰＣバス１２４上でＬＦＲＡＭＥ＃をアサートすると（例えば制御論理２０２がＬＰＣ復号論理２１０およびホスト１０２から、メモリ読取りＬＰＣトランザクションが行われることを示す復号化された信号を受領すると）、プロセスはＬＰＣトランザクションを開始する。次いでプロセスは開始状態６０４に移行し、ホスト１０２はＬＡＤ［３：０］の開始制御情報をクロック・サイクルＴ０中にドライブする。開始制御情報は、メモリ書込みＬＰＣトランザクションの開始を示す。例えば、ホスト１０２は、表１に示すようなＬＡＤ［３：０］に開始制御情報１１１０をドライブすることができる。次いでプロセスはデバイス選択（ＩＤＳＥＬ）状態６０６に移行し、そのメモリ書込みトランザクションに対する特定のメモリ・デバイスを識別または選択する。
【００７７】
次いでプロセスは状態６０８に移行し、ホスト１０２は、ＬＡＤ［３：０］の選択されたメモリ・デバイス１０８内のメモリ位置のアドレスをｎクロック・サイクルＴ２中にドライブする。前述のように、アドレスは図１のシステム１００などのシステムによってサポートされるどんなビット長でもよく、ｎクロック・サイクルＴ２にわたって送ることができる。アドレス情報は、最上位のニブルを先にしても、最下位のニブルを先にしても、あるいはメモリ・デバイス１０８に予想できる他のどんな形式によっても提供することができる。
【００７８】
次いでプロセスは状態６１０に移行し、ホスト１０２はクロック・サイクルＴ３中にＬＡＤ［３：０］にサイズ制御情報をドライブする。次いでプロセスは状態６１２に移行し、ホスト１０２は、ｎクロック・サイクルＴ４中にＬＡＤ［３：０］を介してメモリ・デバイス１０８に適切なバイトのデータを書き込む。ホスト１０２は、２クロック・サイクルにわたるバイト単位でＬＡＤ［３：０］にデータをドライブできる。例えば、転送が１６ビットすなわち２バイト転送である場合は、第１のバイトは最初の２クロック・サイクルで出力され、第２のバイトは次の２クロック・サイクルで出力される。各バイトに対して、データはホスト１０２によって、低いニブルを先にしても、高いニブルを先にしても、または他のどんな形式によっても出力できる。同様に、ホスト１０２によって出力されるバイトの各グループも、低いバイトを先にしても、高いバイトを先にしても、または他のどんな形式によっても出力できる。ホスト１０２は１つまたは複数の（バースト）データ・バイトを状態６１２で書き込むことができる。
【００７９】
次いでプロセスは転換（ＴＡＲ）状態６１４に移行し、ｎクロック・サイクルＴ５中にＬＰＣバス１２４の制御権をメモリ・デバイス１０８に移す。次いでプロセスは状態６１６に移行し、メモリ・デバイス１０８がＬＡＤ［３：０］に帯域内同期化制御情報をクロック・サイクルＴ６中にドライブする間、ホスト１０２はｎクロック・サイクルで待機する。一実施形態の場合、同期化制御情報は１つまたは複数のクロック・サイクルとすることができ、メモリ・デバイス１０８中に書き込まれるデータの受領を通知するのに使用することができる（例えばＬＡＤ［３：０］の００００）。同期化制御情報はまた、データがメモリ・デバイス１０８中に書き込まれ記憶されるまで待ち状態を追加するのにも使用できる。メモリ読取りＬＰＣトランザクションに伴って、メモリ・デバイス１０８は、制御情報の同期化フィールドを使用して、ＬＡＤ［３：０］を介して（例えば１０１０）ホスト１０２に帯域内エラー・メッセージを送ることもできる。エラー・メッセージは例えば、書込みトランザクションが正しく行われなかったり、他の何らかのエラーが起こったことを示すことがある。同期化制御情報のコード化の一実施形態を表４に示す。
【００８０】
次いで、ホスト１０２は転換（ＴＡＲ）状態６１８に移行することができ、そこでｎクロック・サイクルＴ７中にＬＡＤ［３：０］の制御がホスト１０２に戻されることが可能である。
【００８１】
図１０に、メモリ・デバイス１０８の一実施形態であるメモリ・デバイス１０００を示す。メモリ・デバイス１０００は、ＳＲＡＭ、ＤＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＲＯＭなどの揮発性および不揮発性メモリ・デバイスを含む、どんなタイプのメモリ・デバイスとすることもできるメモリ１０１０を含む。メモリ１０００は、いずれかの揮発性または不揮発性メモリ・デバイスを実装するのに必要な、制御回路およびメモリ・エレメントを含む。一実施形態の場合、メモリ１０００は、それに結合された制御エンジンを有し、フラッシュ・メモリ・セルのアレイのプログラミング、読取り、消去を制御する不揮発性（例えばフラッシュ）メモリ・デバイスである。
【００８２】
メモリ・デバイス１０００はまた、入出力ラッチ１００２、制御論理１００４、状態機械１００６、およびメモリ制御論理１００８を有するＬＰＣインタフェース１１６の一実施形態も含む。制御論理１００４は、ＬＰＣ入力信号ＬＦＲＡＭＥ＃、ＬＣＬＫ、および／またはＬＲＥＳＥＴ＃を受け取り、これらの信号の指示を信号線１０１２上の制御信号を介して状態機械またはシーケンサ１００６に与える。一実施形態の場合、入出力ラッチ１００２は、アドレス、制御、データの情報をＬＡＤ［３：０］から受領し、かつＬＡＤ［３：０］へ出力する。入出力ラッチ１００２は、バス１０１４を介して、ＬＡＤ［３：０］から受け取ったアドレス、データ、制御情報を状態機械１００６およびメモリ制御論理１００８に渡す。入出力ラッチ１００２はＬＡＤ［３：０］から受領した様々なニブルのデータを集約することができる。
【００８３】
バス１０１４および線１０１２から受け取ったアドレス、データ、制御情報によって、状態機械１００６は、メモリ・デバイス１０００がＬＰＣバス１２４を介してホスト１０２と通信できるように、またはバス・マスタＬＰＣトランザクション中に入出力デバイス１０４およびメモリ１０１０と通信できるように、メモリ・デバイス１０００のＬＰＣインタフェースを制御する。状態機械１００６の一実施形態は図３に示したものである。状態機械１００６の別の実施形態は図６に示したものである。
【００８４】
状態機械１００６はメモリ制御論理１００８と共に動作して、必要な制御、アドレス、データの情報をメモリ１０１０に提供する。メモリ制御論理１００８は、メモリ１０１０が書込みまたは読取りトランザクションを実行するのに必要な制御信号を線１０１８上に、アドレス信号を線１０２０上に、データ信号を線１０２２上に生成する。線１０１８上の制御信号には、アドレス・ストローブ信号（例えばＲＡＳおよび／またはＣＡＳ）、チップ・イネーブルまたはチップ選択信号（例えばＣＥおよび／またはＣＳ）、書込みおよび読取りイネーブル信号、リセット信号、パワー・ダウン信号などが含まれることがある。
【００８５】
メモリ書込みトランザクションが行われることを状態機械１００６が決定すると、状態機械１００６は、メモリ制御論理が線１０２０を介して線１０１８上の適切な制御信号と共にメモリ１０１０に提供できるように、いつアドレス情報がバス１０１４上に存在するかを線１０１６を介して示すことができる。その後、状態機械１００６は、メモリ制御論理が線１０２２を介して線１０１８上の適切な制御信号と共にメモリ１０１０に提供できるように、いつデータ情報がバス１０１４上に存在するかを線１０１６を介して示すことができる。同様に、メモリ読取りトランザクションが行われることを状態機械１００６が決定すると、状態機械１００６は、メモリ制御論理が線１０２０を介して線１０１８上の適切な制御信号と共にメモリ１０１０に提供できるように、いつアドレス情報がバス１０１４上に存在するかを線１０１６を介して示すことができる。その後、状態機械１００６は、いつ要求されたデータがメモリ１０１０から線１０２６を介して入出力ラッチ１００２およびＬＡＤ［３：０］に出力されるべきかを、線１０１６を介して示すことができる。メモリ制御論理１００８は、１つまたは複数の入出力制御信号を線１０２４上に発信して、入出力ラッチ１００２の双方向状態を制御することができる。例えば、データがメモリ１０１０から読み取られる時、メモリ制御論理１００８は線１０２４を介して出力イネーブル信号を発信することができる。
【００８６】
前述の明細書で、本発明はその具体的な実施形態が述べられた。しかし、添付の特許請求の範囲で述べる本発明のより広い趣旨および目的から逸脱することなく、様々な修正および変更がそれになされうることは明白であろう。したがって、本明細書および図面は、限定的なものではなく例示的なものである。
【図面の簡単な説明】
【図１】  ロー・ピン・カウント（ＬＰＣ）のバスを有するコンピュータ・システムの一実施形態を示す図である。
【図２】  ＬＰＣインタフェースの一実施形態を示す図である。
【図３】  メモリ・トランザクションおよび入出力トランザクションを実施するための状態機械図の一実施形態を示す図である。
【図４】  ＬＰＣメモリ読取りトランザクションの一実施形態を示す図である。
【図５】  ＬＰＣメモリ書込みトランザクションの一実施形態を示す図である。
【図６】  メモリ・トランザクションおよび入出力トランザクションを実施するための状態機械図の別の実施形態を示す図である。
【図７】  ＬＰＣメモリ読取りトランザクションの別の実施形態を示す図である。
【図８】  ＬＰＣメモリ書込みトランザクションの別の実施形態を示す図である。
【図９】  メモリ・デバイスの選択方式の一実施形態を示す図である。
【図１０】  メモリ・デバイスに対するＬＰＣインタフェースの一実施形態を示す図である。
【図１１】  低電力モードの動作に対するタイミング図の一実施形態を示す図である。
【図１】
0004279451.tif 000006
【図２】
0004279451.tif 000007
【図３】
0004279451.tif 000008
【図４】
0004279451.tif 000009
【図５】
0004279451.tif 000010
【図６】
0004279451.tif 000011
【図７】
0004279451.tif 000012
【図８】
0004279451.tif 000013
【図９】
0004279451.tif 000014
【図１０】
0004279451.tif 000015
【図１１】
0004279451.tif 000016