(57)【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
処理ユニットと、
前記処理ユニットに結合されたローカルバスと、
周辺バスと、
前記ローカルバスと前記周辺バスとに結合された周辺バスブリッジと、
周辺装置と、
前記周辺バスに結合されかつ前記周辺装置に結合された並列ポート回路とを備え、前記並列ポート回路は、
前記コンピュータシステムの前記周辺バスから書込データを受信するように構成されたデータバッファと、
前記データバッファに結合され、前記処理ユニットによって実行される並列ポート回路への書込サイクルに応答して前記書込データを前記データバッファ内にラッチさせるように構成された、制御ユニットとを含み、前記制御ユニットはさらに、前記書込データが前記データバッファにラッチされたことを示すように前記周辺装置にハンドシェイク信号をアサートするように構成され、さらに、
前記制御ユニットに結合され、前記ハンドシェイク信号がアサートされた後に、予め定められた時間間隔をカウントするように構成された、タイムアウトカウンタと、
前記制御ユニットに結合され、エラービットを含む状態レジスタとを含み、前記制御ユニットは、前記周辺装置が前記予め定められた時間期間の満了前に書込データの受取を示す肯定応答信号をアサートしない場合、前記エラービットをセットするように構成され、さらに、
前記制御ユニットに結合された構成レジスタを含み、前記構成レジスタは、前記タイムアウトカウンタの前記予め定められた時間間隔の前記満了に応答して、マスク不可割込信号または並列ポート割込信号のいずれがアサートされるかを制御する構成値を記憶するように構成され、
前記構成レジスタ内に記憶された前記構成値によって設定される第１の動作モードにおいて、前記周辺装置が前記予め定められた時間間隔内に前記書込データの受取を示す肯定応答信号をアサートしない場合、前記制御ユニットは前記周辺バス上にアボートサイクルを開始しかつ前記マスク不可割込信号をアサートし、さらに、
前記構成レジスタ内の前記構成値によって設定される第２の動作モードにおいて、前記
予め定められた時間期間内に前記書込データの受取を示す前記肯定応答信号を前記周辺装置がアサートしない場合には、前記制御ユニットは、前記処理ユニットを前記書込サイクルから解放しかつ前記並列ポート割込信号をアサートする、コンピュータシステム。
【請求項２】
前記ハンドシェイク信号はデータストローブ信号を含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記データバッファはラッチ回路を含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記タイムアウトカウンタの前記予め定められた時間期間はプログラマブルである、請求項１に記載のコンピュータシステム。
【請求項５】
前記データバッファは、双方向バッファであり、前記周辺装置から読出データを受取可能である、請求項１に記載のコンピュータシステムであって、
前記制御ユニットは、前記処理ユニットによって実行される前記並列ポートへの読出サイクルに応答して前記読出データを前記データバッファ内にラッチさせるように構成され、前記制御ユニットはさらに、前記読出データが前記データバッファに提供される必要があることを示すように前記周辺装置に第２のハンドシェイク信号をアサートするように構成され、
前記制御ユニットに結合された前記タイムアウトカウンタは、前記第２のハンドシェイク信号がアサートされた後に、第２の予め定められた時間期間をカウントするように構成され、
前記制御ユニットは、前記周辺装置が前記第２の予め定められた時間期間の満了前に前記読出データの受取を示す第２の肯定応答信号をアサートしない場合、前記状態レジスタ内に第２のエラービットをセットするように構成され、さらに、
前記構成レジスタは、前記第２の予め定められた時間期間の満了に応答して、マスク不可割込または並列応答割込のいずれがアサートされるかを制御する、構成値を記憶するように構成され、
前記構成値によって設定された第１の動作モードにおいて、前記周辺装置が前記予め定められた時間期間内に前記読出データの受取を示す前記第２の肯定応答信号をアサートしない場合、前記制御ユニットは前記マスク不可割込信号をアサートし、
前記構成値によって設定された第２の動作モードにおいて、前記周辺装置が前記予め定められた時間期間内に前記読出データの受取を示す第２の肯定応答信号をアサートしない場合、前記制御ユニットは前記並列ポート割込信号をアサートする、請求項１に記載のコンピュータシステム。
【請求項６】
前記マスク不可割込信号または前記並列ポート割込信号に応答して、前記データバッファで受取られた前記読出サイクルに関連の読出データが有効または無効と特定され、かつ前記読出サイクルは前記読出データが無効と示されると再実行される、請求項５に記載のコンピュータシステム。
【請求項７】
さらなる書込サイクルに関連の書込データは、前記さらなる書込サイクルが前記予め定められた前記時間期間の後に開始される場合に廃棄される、請求項１に記載のコンピュータシステム。
【請求項８】
前記周辺バスはＰＣＩバスであり、さらに前記周辺バスブリッジはＰＣＩブリッジである、請求項１に記載のコンピュータシステム。
【請求項９】
前記アボートサイクルの開始はＰＣＩ  ＳＴＯＰ  信号のアサートおよびＰＣＩ  ＤＥＶＳＥＬ  信号のデアサートを含む、請求項８に記載のコンピュータシステム。
【請求項１０】
処理ユニットと、ローカルバスと、周辺バスと、周辺バスブリッジと、周辺装置とを含むコンピュータシステムの並列ポートを動作させるための方法であって、
前記コンピュータシステムの前記周辺バス上で書込サイクルを実行するステップと、
前記書込サイクルに応答して前記並列ポートのデータバッファ内にデータをラッチするステップと、
前記周辺装置にデータストローブ信号を与えるステップと、
予め定められた時間期間のカウントダウンを開始するステップと、
前記周辺装置からの肯定応答信号を待つステップと、
前記予め定められた時間期間内に前記周辺装置から前記肯定応答信号が与えられない場合には、第１の動作モードにおいて前記周辺バス上にアボートサイクルを開始するステップと、
前記予め定められた時間期間内に前記周辺装置から前記肯定応答信号が与えられない場合には、状態レジスタ内のエラービットをセットするステップと、
前記予め定められた時間期間内に前記周辺装置から前記肯定応答信号が与えられない場合には、前記処理ユニットへ割込信号をアサートするステップとを含み、前記割込信号は、前記第１の動作モードではマスク不可割込信号として、第２の動作モードでは前記処理ユニットを現在のサイクルから解放する並列ポート割込信号として選択可能である、コンピュータシステムの並列ポートを動作させるための方法。
【請求項１１】
前記周辺バスはＰＣＩバスであり、前記周辺バスブリッジはＰＣＩブリッジである、請求項１０に記載のコンピュータシステムの並列ポートを動作させるための方法。
【請求項１２】
アボートサイクルを開始する前記ステップはＰＣＩ  ＳＴＯＰ  信号のアサートおよびＰＣＩ  ＤＥＶＳＥＬ  信号のデアサートを含む、請求項１１に記載のコンピュータシステムの並列ポートを動作させるための方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明はコンピュータシステムに関する。より特定的にはこの発明はコンピュータシステム内で用いられる並列ポート回路に関する。
【０００２】
【関連技術の説明】
並列ポートは、プリンタのような外部周辺装置へデータを転送する便利でかつ高速な機構を可能にするために、コンピュータシステム内で広く用いられている。並列ポートは通常は、プロセッサによって実行される書込サイクルに応答して予め定められるアドレス位置にデータを書込まれるデータラッチを含む。一旦このデータが並列ポートのラッチ内に記憶されると、並列ポートに関連する制御ユニットはデータを外部周辺装置に転送させる。外部周辺装置はデータの受信を確認する応答をし、制御回路は応答してプロセッサにレディ信号を返してプロセッサを現在の書込サイクルから解放する。
【０００３】
並列ポートは外部周辺装置からデータを受信するのにさらに用いられてもよい。この状況では、周辺装置は通常、それがデータを転送できる状態にあることを示すために、マイクロプロセッサへ並列ポート割込をアサートする。マイクロプロセッサは応答して並列ポートに書込サイクルを実行し、周辺装置は、有効なデータが並列ポートに現在与えられていることを示すために、肯定応答信号をアサートする。
【０００４】
外部装置への通信リンクが切断されるかまたは通信が失敗した場合には、現在実現されている並列ポート機構内には回復不可能な障害が起こるかもしれない。プロセッサが並列ポートに書込または読出サイクルを実行して、周辺装置が、書込データを受取ったことまたは読出データを与えたことを示す肯定応答信号を返さない場合には、コンピュータシステムは「ハング」する。言い換えれば、コンピュータシステムは周辺装置が肯定信号を与えるのを無限に待つことになる。一旦このような状況が生じると、コンピュータシステムは通常はプロセッサを解放するためにリセットまたは再スタートされなければならない。
【０００５】
【発明の概要】
上述の問題は、この発明に従うアボート機構を有する並列ポート回路を含むコンピュータシステムによって大部分解決される。１つの実施例においてコンピュータシステムは、プロセッサと、周辺装置へまたは周辺装置からデータを転送するよう構成される並列ポートとを含んで設けられる。並列ポートは、プロセッサが並列ポートに書込サイクルを実行するときにシステムバスで転送されるデータを受信するためのデータバッファを含む。並列ポートに関連する制御ユニットはシステムバスのアドレス信号をデコードしてデータバッファ内でデータを選択的にラッチし、ハンドシェイク信号（つまり、データストローブ信号およびＲｄ／Ｗｒ制御信号）を発生して書込データが現在データバッファに含まれることを周辺装置に示す。周辺装置はこの結果データを受信して制御ユニットに肯定応答信号を与える。この後制御ユニットはレディ信号を発生してデータが既に周辺装置に書込まれたことをプロセッサに示す。データが並列ポートにおいて利用可能であることを示すハンドシェイク信号を制御ユニットが周辺装置にアサートした後、周辺装置が予め定められるタイムアウト期間内に肯定応答信号を返したかどうかを判断するために、タイムアウトカウンタが制御ユニットに結合される。タイムアウト期間が満了し、周辺装置が肯定応答信号を返さない場合には、システムバスにレディ信号をアサートすることによって制御ユニットはプロセッサを現在のサイクルから解放する。制御ユニットは、障害が起こったことを示すために、状態レジスタ内にエラーフラグをさらにアサートする。エラーフラグのアサーションに応答して、制御ユニットは、プロセッサに障害を効果的に警告する割込信号をアサートする。この後プロセッサは、割込処理ルーチンからのコードを実行し、その中でその障害が並列ポートに関連していたかどうかを判断するために状態レジスタを読むだろう。プログラミングに柔軟性を与えるために、並列ポートは、マスク不可割込または並列ポート割込がエラーフラグのアサーションに応答してアサートされるかどうかを制御する構成レジスタをさらに伴なう。タイムアウトカウンタは並列ポートの読出サイクル中に同様に用いられて、周辺装置が予め定められるタイムアウト期間内にデータの読出を肯定応答したかどうかを判断する。並列ポート動作の完了でのエラーフラグの状態を判断するのにポーリング技術をさらに用いることもできる。
【０００６】
広く言うと、この発明は周辺装置をコンピュータシステムにインタフェースさせるための並列ポート回路を目的とする。並列ポート回路は、コンピュータシステムのバスから書込データを受信することのできるデータバッファと、データバッファに結合され、コンピュータシステムのバス上の書込サイクルに応答して書込データをデータバッファ内にラッチさせることのできる制御ユニットとを備える。制御ユニットは周辺装置にハンドシェイク信号をさらに発生して、書込データがデータバッファに含まれることを示すことができる。並列ポート回路は、制御ユニットに結合され、ハンドシェイク信号のアサーションの後予め定められる時間期間をカウントすることのできる、タイムアウトカウンタをさらに含む。周辺装置が、予め定められる時間期間内に書込データを受信したことを示す肯定応答信号をアサートできない場合には、制御ユニットはコンピュータシステムのバス上で制御信号をアサートしてコンピュータシステムを書込サイクルから解放する。
【０００７】
この発明は、処理ユニットと、周辺装置と、バスを介して処理ユニットに結合され、かつ周辺装置に結合される並列ポート回路とを含むコンピュータシステムをさらに目的とする。並列ポート回路は、コンピュータシステムのバスから書込データを受信することのできるデータバッファと、データバッファに結合され、処理ユニットによって実行される並列ポートへの書込サイクルに応答して書込データをデータバッファ内にラッチさせることのできる、制御ユニットとを含む。制御ユニットは、周辺装置にハンドシェイク信号をさらに発生して、書込データがデータバッファによって含まれることを示すことができる。並列ポート回路は、制御ユニットに結合され、ハンドシェイク信号のアサーションの後予め定められる時間期間をカウントすることのできる、タイムアウトカウンタをさらに含む。周辺装置が予め定められる時間期間内に書込データを受信したことを示す肯定応答信号をアサートできない場合には、制御ユニットはコンピュータシステムのバス上に制御信号をアサートして処理ユニットを書込サイクルから解放する。
【０００８】
最後にこの発明は、処理ユニットと周辺装置とを含むコンピュータシステムの並列ポートを動作させるための方法を目的とする。方法は、コンピュータシステムのバス上で書込サイクルを実行するステップと、書込サイクルに応答して並列ポートのデータバッファ内にデータをラッチするステップと、周辺装置にデータストローブ信号を与えるステップとを含む。方法はさらに、予め定められる時間期間のカウントダウンを開始するステップと、周辺装置からの肯定応答信号を待つステップと、肯定応答信号が予め定められる時間期間内に周辺装置から与えられない場合にはバス上に制御信号をアサートして処理ユニットを書込サイクルから解放するステップとを含む。
【０００９】
この発明の他の目的および利点は、以下の詳細な説明を読み、添付の図面を参照すると明らかとなる。
【００１０】
この発明は様々な修正および代替形式が可能であるが、その特定の実施例を図面における例示の形によって示し、詳細にここに記載するものである。しかしながら、図面およびその詳細な説明はこの発明を開示される特定の形式に限定することを意図するものではなく、逆に、前掲の特許請求の範囲に定義されるようなこの発明の精神および範囲内に入るすべての修正物、均等物、および代替物を包含することを意図するものであることが理解されるはずである。
【００１１】
【実施例の詳細な説明】
ここで図面を参照すると、図１は、システムバス１０６を介してシステムメモリ１０３と並列ポート１０４とに結合されるマイクロプロセッサ（ＣＰＵ）１０２を含むコンピュータシステム１００のブロック図である。並列ポート１０４は周辺装置１０８にさらに結合される。
【００１２】
マイクロプロセッサ１０２は予め定められる命令セットを実現するデータ処理ユニットである。例示の処理ユニットは特に８０３８６型および８０４８６型マイクロプロセッサを含む。システムバス１０６はたとえばＰＣＩ標準構成バスを示すが、他のバス構成が用いられてもよいことは当然である。さらに、並列ポート１０４は１つまたはそれより多いバスインタフェースユニットを介してマイクロプロセッサ１０２に結合されてもよく、マイクロプロセッサ１０２は集積プロセッサであってもよいことは当然である。
【００１３】
並列ポート１０４は双方向バス１２２とタイムアウトカウンタ１２４とに結合される制御ユニット１２０を含む。構成レジスタ１２６と状態レジスタ１２８が制御ユニット１２０にさらに結合される。双方向バッファ１２２はシステムバス１０６と周辺装置１０８との間でデータを選択的にバッファリングするために設けられる。双方向バッファ１２２は単純なラッチ回路でもって実現されてもよい。
【００１４】
制御ユニット１２０は、並列ポート１０４への書込または読出動作がたとえばマイクロプロセッサ１０２によって実行中であるかどうかを判断するために、システムバス１０６をモニタする。並列ポート１０４はコンピュータシステム１００のＩ／Ｏ空間内の予め定められるアドレス位置にマッピングされるが、並列ポート１０４はコンピュータシステム１００のメモリ空間内に代替的にマッピングされてもよいことが理解されるだろう。制御ユニット１２０は特定の転送を実行するように、双方向バッファ１２２内でのデータのラッチングをさらに制御し、周辺装置１０８との適当なハンドシェイク信号を発生する。これについては以下により詳細に説明する。
【００１５】
コンピュータシステム１００の動作中、マイクロプロセッサ１０２が並列ポート１０４にＩ／Ｏ書込サイクルを実行すると、制御ユニット１２０はそのサイクルを検知して、システムバス１０６上の対応するデータを双方向バッファ１２２にラッチさせる。書込データはシステムメモリ１０３を出所としてもよいことに注目されたい。図２は、並列ポート１０４へのそのようなＩ／Ｏ書込サイクル中のデータ転送と選択された制御信号のアサーションとを示す。制御ユニット１２０は双方向バッファ１２２にデータをラッチさせた後、有効データが双方向バッファ１２２において現在利用可能であることを示すために、周辺装置１０８へ書込ストローブ信号をアサートする。現在のサイクルが書込動作であることを示すために、制御ユニット１２０はさらに読出／書込（Ｒｄ／Ｗｒ）制御信号をローにアサートする。通信リンクが正しく動作している場合には、周辺装置１０８は双方向バッファ１２２からデータを受信して、応答して制御ユニット１２０によって受信される肯定応答信号ＡＣＫをアサートする。制御ユニット１２０はこの結果システムバス１０６でレディ信号ＲＤＹをアサートして、周辺装置１０８がデータを受取ったことをマイクロプロセッサ１０２に示す。動作のこの部分は従来からあるものである。
【００１６】
制御ユニット１２０が書込ストローブをアサートすると、タイムアウトカウンタ１２４は予め定められるタイムアウト期間のカウントを開始する。１つの実施例においては、このタイムアウト期間は、１つのバイトの転送につき１０マイクロ秒、１つの語の転送につき２０マイクロ秒、および倍長語転送につき４０マイクロ秒に設定されるが、システムによっては他のタイムアウト長が設定されてもよいことを理解されたい。通信リンクが正しく動作している場合には、周辺装置１０８はこの予め定められるタイムアウト期間内に肯定応答信号ＡＣＫをアサートする。結果として、タイムアウトカウンタ１２４が満了しない限り、タイムアウトカウンタ１２４に応答して、制御ユニット１２０がこれ以上の動作をすることはない。
【００１７】
一方、通信リンクが切断されるか、または通信障害が生じて、周辺装置１０８から制御ユニット１２０によって肯定応答信号ＡＣＫが受信されない場合には、タイムアウトカウンタ１２４のタイムアウト期間は満了する。図３を参照すると、このことによってタイムアウトカウンタ１２４からのタイムアウト信号のアサーションが起こり、そしてそれは制御ユニット１２０によって受取られる。制御ユニット１２０は状態レジスタ１２８内でエラービットを応答してセットし、マイクロプロセッサ１０２を現在のサイクルから解放するようシステムバス１０６上にレディ信号ＲＤＹをアサートする。制御ユニット１２０は、マイクロプロセッサ１０２に与えられるマスク不可割込（ＮＭＩ）または並列ポート割込（ＩＮＴ）のいずれかを付加的にアサートする。マイクロプロセッサ１０２は従って、指定される割込処理ルーチンにジャンプし、その中である命令が状態レジスタ１２８を読むために実行されてそれにより並列ポート通信内で生じたエラーを判断するであろう。システムプログラマまたはユーザに通信障害が発生した理由を判断させてシステムの現在の状態を表示するために、ソフトウェアを介してさらなる診断を実現することもできる。制御ユニット１２０がレディ信号ＲＤＹをアサートするため、システムは「ハング」せず、マイクロプロセッサ１０２によるさらなる処理がシステムをリセットすることなしに可能であることに注目されたい。
【００１８】
通信障害が発生し、および状態レジスタ１２８のエラービットがセットされたときに制御ユニット１２０がマスク不可割込（ＮＭＩ）または並列ポート割込（ＩＮＴ）をアサートするかどうかを制御するために、並列ポート１０４に関連して構成レジスタ１２６が設けられる。構成レジスタ１２６内に記憶される構成値に依って、制御ユニット１２０は状態レジスタ１２８のエラービットのセットに応答してマスク不可割込（ＮＭＩ）または並列ポート割込（ＩＮＴ）のいずれかをアサートする。したがって、システムによっては、指定される処理ルーチン（ＮＭＩまたはＩＮＴ処理ルーチン）はエラーに関するユーザ情報を検知し分析して与えるよう構成されるだろう。並列ポート通信の障害でどの割込（ＮＭＩまたはＩＮＴ）がアサートされるかをシステムプログラマに設定させることによって、柔軟性のあるシステムプログラミングが提供されるであろう。
【００１９】
並列ポート読出操作が起こるときのコンピュータシステム１００の動作は書込動作に関する前述の動作と同様である。周辺装置１０８がマイクロプロセッサ１０２によって読出されるべく利用可能なデータを有する場合、並列ポート割込が周辺装置１０８によってアサートされる。周辺装置１０８からデータを読出すよう、マイクロプロセッサ１０２は応答してシステムバス１０６上で読出サイクルを実行する。読出サイクルに応答して、制御ユニット１２０はデータストローブ信号をアサートし、かつＲｄ／Ｗｒ信号をハイにアサートする。これらのハンドシェイク信号は周辺装置１０８によって受信され、周辺装置１０８は応答して双方向バッファ１２２にデータを与え、かつ同時に肯定応答信号ＡＣＫをアサートする。制御ユニット１２０はそれからデータを双方向バッファ１２２内にラッチさせ、データをシステムバス１０６に送る。制御ユニット１２０はレディ信号を同時にアサートして、有効データがシステムバス１０６上で利用可能であることを示す。通信障害が起こらなかった場合には、レディ信号ＲＤＹがタイムアウトカウンタ１２４によって設定されるタイムアウト期間内に制御ユニット１２０によってアサートされる。タイムアウトカウンタ１２４はデータストローブ信号のアサーションに応答してタイムアウト期間のカウントダウンを再び開始することに注目されたい。
【００２０】
通信リンクが切断されるかまたは通信障害が生じた場合には、肯定応答信号ＡＣＫは周辺装置１０８によって返されないであろう。したがって、タイムアウトカウンタ１２４のタイムアウト期間が満了し、したがって状態レジスタ１２８内のエラービットがセットされる。応答して、制御ユニット１２０は構成レジスタ１２６に基づいてマスク不可割込（ＮＭＩ）または並列ポート割込（ＩＮＴ）のいずれかを再びアサートし、マイクロプロセッサを現在のサイクルから解放するようレディ信号ＲＤＹをアサートする。この後マイクロプロセッサ１０２はマスク不可割込処理ルーチンまたは並列ポート処理ルーチンのいずれかからのコードを実行し、その中でエラーが並列ポート１０４内で生じたことを判断するために状態レジスタ１２８が読出されてもよい。
【００２１】
制御ユニット１２０は、たとえばシステムバス１０６から書込まれる３２ビット語が４つの別個の８ビット転送を介して周辺装置１０８に転送されるよう、双方向バッファ１２２内でデータをパージングしてもよい。このような転送は図４に示され、そこでは、バイト３−バイト０から構成される３２ビット語が双方向バッファ１２２に書込まれ、その後、周辺装置１０８への４つの別個のデータ転送サイクルの間に１バイトずつ周辺装置１０８へ転送される。公知の技術を用いてこのようなデータ転送を行なうのにマルチプレクサ回路（図示せず）が用いられてもよい。簡潔かつ明瞭に示すために図４の図面からはコンピュータシステム１００の一部を省略してある。
【００２２】
通信障害が生じているにもかかわらず制御ユニット１２０によってレディ信号がアサートされたため、並列ポート１０４を介してマイクロプロセッサ１０２によって読出されたデータは無効であるかもしれないということに注目されたい。したがって、割込処理ルーチンは、読出されたデータを無効であると識別し、エラーの原因が修正された後で書込サイクルを再実行するよう構成されるだろう。さらに、マイクロプロセッサ１０２が割込処理ルーチンにジャンプする前にさらなる書込または読出サイクルが実行された場合には、制御ユニット１２０はマイクロプロセッサ１０２をこの後に記載される方法で各サイクルから解放させることに注目されたい。
【００２３】
コンピュータシステム１００に従うと、周辺装置がデータの特定の転送を確認する応答をしたかどうかを検知するためのタイムアウトカウンタを用いる並列ポートが設けられる。周辺装置からの肯定応答が全くない状態でタイムアウトカウンタのタイムアウト期間が満了した場合には、マイクロプロセッサへレディ信号を戻すことによって並列ポートサイクルは効果的にアボートされ、それによってプロセッサを現在のサイクルから解放する。状態レジスタのエラービットがさらにセットされる。この後、マスク不可割込または並列ポート割込のアサーションでエラーモードに入る。この結果、コンピュータシステムは「ハング」せず、リセットされる必要がない。エラーが検知された後、状態レジスタのエラービットはリセットされる。
【００２４】
次に図５を参照すると、コンピュータシステム５００のブロック図がこの発明の別の実施例に従って図示される。図１の回路部分に対応する回路部分は同一の参照番号を付与される。マイクロプロセッサ１０２はＣＰＵローカルバス５０４を介してＰＣＩブリッジ５０２に結合される。ＰＣＩブリッジ５０２はＰＣＩバス５０６を介して並列ポート回路１０４にさらに結合される。
【００２５】
並列ポート１０４は図１を参照して上に記載されるそれと同様に動作する。１つの実施例においては、構成レジスタ１２６内に記憶される構成値に依って、並列ポート１０４は２つの異なるモードのうちの１つで動作するであろう。第１のモードでは、周辺装置１０８からデータを読出す、またはそれにデータを書込む並列ポート動作が実行され、タイムアウトカウンタ１２４のタイムアウトが起こると（つまり、周辺装置１０８がサイクルを確認する応答ができない場合には）、制御ユニット１２０によってＰＣＩバス５０６上でＰＣＩアボートサイクルが実行される。当業者には公知であるように、ＰＣＩアボートサイクルは、ＰＣＩＳＴＯＰ♯信号をアサートし、ＰＣＩ  ＤＥＶＳＥＬ♯信号をデアサートすることによって、制御ユニット１２０によって開始されることができる。ＰＣＩサイクルをアボートすることに加えて、制御ユニット１２０はエラーが生じたことを示すためにマスク不可割込信号をさらにアサートする。
【００２６】
（構成レジスタ１２６内の構成値によって定められるような）並列ポート１０４の第２の動作モードでは、並列ポート動作中にタイムアウトが生じると、制御ユニット１２０は状態レジスタ１２８内のエラービットをセットさせる。制御ユニット１２０はさらに、（肯定応答信号が周辺装置１０８から受信されなかったとしても）通常はＰＣＩ  ＴＲＤＹ♯信号をアサートすることによってＰＣＩバスサイクル５０６を終結させる。ＰＣＩ  ＴＲＤＹ♯信号のアサーションによって、ＰＣＩブリッジ５０２はＣＰＵローカルバス５０４上で、マイクロプロセッサ１０２を現在のサイクルから解放する対応するレディ信号をアサートする。エラーの発生を示すために、制御ユニット１２０は並列ポート割込信号をさらにアサートする。続いてマイクロプロセッサ１０２が、並列ポート障害が起こったことを判断するために状態レジスタ１２８を読出す。
【００２７】
このように図５の実施例では、構成レジスタ１２６内の構成値に依って、制御ユニット１２０はタイムアウトが生じるとＰＣＩサイクルをアボートしてマスク不可割込信号をアサートするか、またはＰＣＩバス５０６上でレディ信号ＴＲＤＹ♯信号をアサートしてマイクロプロセッサ１０２を現在のサイクルから解放し並列ポート割込信号をアサートする。柔軟なプログラミングの可能性および機能性がこれによりサポートされる。
【００２８】
図１および図５の両方の実施例では、タイムアウトが生じた後で並列ポート１０４への次の読出または書込サイクルが開始されると、制御ユニット１２０はＰＣＩサイクルを正常に終結するが、（書込のための）任意の書込データを破棄させるか、または（読出のために）すべてのビットがローに駆動された状態でデータバスを駆動させることに注目されたい。この後、割込処理ルーチンに入ると、並列ポートエラーの発生が検知される。
【００２９】
一旦上述の開示が十分に理解されれば、数多くの変形および修正が当業者にとって明らかとなるであろう。たとえば、タイムアウトカウンタ１２４によって設定されるタイムアウト期間はシステムごとに変更してもよく、タイムアウト期間はプログラマブルであってもよいことに注目されたい。さらに、エラーが生じたかどうかを判断するのに、特定の並列ポート動作の後でマイクロプロセッサ１０２が状態レジスタ１２８を読出すポーリング技術が用いられてもよいことに注目されたい。このようなポーリング技術が用いられれば、タイムアウトに応答するマスク不可割込または並列ポート割込のいずれのアサーションも不必要となるであろう。前掲の特許請求の範囲はすべてのそのような変形および修正を包含すると解釈されることが意図されるものである。
【図面の簡単な説明】
【図１】この発明に従うタイムアウトカウンタを含む並列ポートを用いるコンピュータシステムのブロック図である。
【図２】外部周辺装置への書込サイクルに関連するデータおよび選択される信号の流れを示すブロック図である。
【図３】タイムアウトが生じた際にアサートされる、選択される制御信号を示すブロック図である。
【図４】並列ポートへ書込まれる３２ビット語の、周辺装置に転送される４つの８ビットのバイトのデータへのパージングを示すブロック図である。
【図５】この発明の別の実施例に従うタイムアウトカウンタを含む並列ポート回路を利用するコンピュータシステムのブロック図である。
【符号の説明】
１０４  並列ポート回路
１２０  制御ユニット
１２２  双方向バッファ
１２４  タイムアウトカウンタ
【図１】
0003628372.tif 000002
【図２】
0003628372.tif 000003
【図３】
0003628372.tif 000004
【図４】
0003628372.tif 000005
【図５】
0003628372.tif 000006