JPH07271711A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH07271711A
JPH07271711A JP6057414A JP5741494A JPH07271711A JP H07271711 A JPH07271711 A JP H07271711A JP 6057414 A JP6057414 A JP 6057414A JP 5741494 A JP5741494 A JP 5741494A JP H07271711 A JPH07271711 A JP H07271711A
Authority
JP
Japan
Prior art keywords
address
address space
built
expansion
environment setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6057414A
Other languages
English (en)
Inventor
Ryoji Ninomiya
良次 二宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP6057414A priority Critical patent/JPH07271711A/ja
Publication of JPH07271711A publication Critical patent/JPH07271711A/ja
Priority to US08/720,273 priority patent/US5809330A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】オプションカードのI/Oアドレス空間の設定
値によらず、そのオプションカードを含むシステム全体
の動作を保証できるようにする。 【構成】システムボード上のデバイスの内で、システム
タイマ19やリアルタイムクロック20といったシステ
ム動作に不可欠なデバイスを除く他の全てのデバイス、
つまりI/Oデバイス24,25、については環境設定
/変更可能に構成されている。それらI/Oデバイス2
4,25に割り当てるI/Oアドレス空間、割り込みレ
ベルなどのハードウェア資源とオプションカード32,
33が要求するハードウェア資源との重複が発生した
時、I/Oデバイス24,25に割り当てられるハード
ウェア資源は自動的に変更される。従って、オプション
カード32,33のI/Oアドレス空間などの設定値に
よらずに、常に内蔵デバイスとオプションボードを正常
に動作させることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はコンピュータシステム
に関し、特にオプションカードなどの拡張デバイスが接
続可能な拡張コネクタを持つコンピュータシステムに関
する。
【0002】
【従来の技術】近年、携行が容易でバッテリにより動作
可能なラップトップタイプまたはノートブックタイプの
ポータブルコンピュータが種々開発されている。この種
のポータブルコンピュータに於いては、オプションカー
ドなどの拡張デバイスを必要に応じて接続するための拡
張コネクタが設けられている。オプションカードとして
は、ISA仕様のいわゆるISAカードなどが業界標準
カードとして良く知られている。
【0003】この種のオプションカードにおいては、そ
のカード毎にそれを使用するのに必要なハードウェア資
源(I/Oアドレス空間、割り込みレベルなど)が規定
されている。また、オプションカードのほとんどは、ユ
ーザによって操作可能なジャンパまたはディップスイッ
チを有しており、それらジャンパまたはディップスイッ
チの設定に応じてI/Oアドレス空間および割り込みレ
ベルが変更できるように構成されている。これらジャン
パまたはディップスイッチの操作によってオプションカ
ードのI/Oアドレス空間および割り込みレベルの値
を、他のI/Oデバイスによって使用されてないI/O
アドレス空間および割り込みレベルに設定すれば、その
オプションカードを正常に使用することができる。
【0004】しかしながら、ジャンパまたはディプスイ
ッチの設定操作を正しく行うためには、ポータブルコン
ピュータ内蔵の各種周辺LSIコントローラなどの全て
のI/Oデバイス、および拡張コネクタに既に接続され
ている他のオプションカードがどのI/Oアドレス空間
を使用しているかなどを調べなければならず、その作業
はユーザにとっては非常に困難である。
【0005】もし、ジャンパまたはディプスイッチの設
定誤りによってオプションカードのI/Oアドレス空間
がポータブルコンピュータ内蔵のI/Oデバイスや他の
オプションカードによって既に使用されているI/Oア
ドレス空間と重複してしまうと、ポータブルコンピュー
タの誤動作が引き起こされる。
【0006】すなわち、オプションカードと他のI/O
デバイスとのI/Oアドレス空間が重複している状態で
I/Oアクセスを実行すると、I/Oアドレス空間が重
複しているそれら2つのデバイスからのリードデータが
データバス上で衝突するというデータバスコンテンショ
ンが発生する。これにより、リードデータの内容が破壊
されて正常なI/Oアクセスが実行できなくなる。この
場合、そのオプションカードを正常に動作させることが
できないばかりか、場合によっては、ユーザがシステム
の電源をオンしてもコンピュータシステムがハングアッ
プしてしまい、オペレーティングシステムを正常に起動
できないという事態が引き起こされる。
【0007】また、オプションカードと他のI/Oデバ
イスとの割り込みレベルが重なっている場合にも、CP
Uがそれらデバイスのどちらから割り込み要求が発生さ
れたか区別できなくにり、オプションカードを正常に動
作させることができなくなる。
【0008】
【発明が解決しようとする課題】従来のコンピュータシ
ステムでは、ユーザがジャンパまたはディプスイッチを
用いてオプションカードなどの拡張デバイスのI/Oア
ドレス空間などを正しく設定する必要があり、もしその
設定誤りによってオプションカードとポータブルコンピ
ュータ内蔵のI/OデバイスのI/Oアドレス空間が重
なると、コンピュータシステムの動作に支障が来され、
場合によってはコンピュータシステムがハングアップし
てしまいオペレーティングシステムを正常に起動できな
いという事態が生じる欠点があった。
【0009】この発明はこのような点に鑑みてなされた
ものであり、ユーザによるジャンパなどの設定誤りによ
ってオプションカードのI/Oアドレス空間がポータブ
ルコンピュータ内蔵のI/OデバイスのI/Oアドレス
空間と重複する値に設定された場合でもそのオプション
カードを含むシステム全体の動作を保証できるように
し、オプションカードのI/Oアドレス空間の設定値に
よらずに常に正常に動作することが可能なコンピュータ
システムを提供することを目的とする。
【0010】
【課題を解決するための手段および作用】この発明によ
るコンピュータシステムは、CPUと、このCPUに電
気的に接続されたシステムバスと、このシステムバスに
接続され、割り当てられるI/Oアドレス空間が変更可
能に構成された内蔵I/Oデバイスと、前記システムバ
スに電気的に接続された拡張コネクタと、この拡張コネ
クタに着脱自在に接続される拡張デバイスであって、前
記拡張コネクタを介して前記システムバス上のI/Oア
ドレスを受信およびデコードし、そのI/Oアドレスが
前記拡張デバイスが要求する所定のI/Oアドレス空間
に属す時に動作する拡張デバイスと、システムの電源投
入に応答して、前記内蔵I/Oデバイスの動作環境を設
定する環境設定手段とを具備し、この環境設定手段に
は、前記内蔵I/Oデバイスに予め割り当てられた第1
のI/Oアドレス空間に属すI/Oアドレスを前記シス
テムバス上に出力し、前記システムバスを介して前記内
蔵I/Oデバイスのアクセスを実行する手段と、前記内
蔵I/Oデバイスのアクセスが正常に実行されたか否か
に従って、前記内蔵I/Oデバイスに割り当てられる前
記第1のI/Oアドレス空間と前記拡張デバイスの要求
するI/Oアドレス空間とが重複しているか否かを決定
する手段と、前記I/Oアドレス空間が重複しているこ
とが決定された時、前記内蔵I/OデバイスのI/Oア
ドレス空間を前記第1のI/Oアドレス空間からそれと
は異なる第2のI/Oアドレス空間に変更する手段とを
具備することを特徴とする。
【0011】このコンピュータシステムにおいては、シ
ステムの電源投入時に内蔵I/Oデバイスの環境設定処
理が行われる。この環境設定処理においては、まず、内
蔵I/Oデバイスには第1のI/Oアドレス空間が割り
当てられる。この第1のI/Oアドレス空間の値は、例
えば、内蔵I/OデバイスのデフォルトのI/Oアドレ
ス空間として予め予約されたものである。そして、その
第1のI/Oアドレス空間に属すI/Oアドレスを用い
て、内蔵I/Oデバイスのアクセスが実行される。
【0012】もし、拡張コネクタに接続されたオプショ
ンカードなどの拡張デバイスが要求するI/Oアドレス
空間が第1のI/Oアドレス空間と一致しているなら
ば、内蔵I/Oデバイスに対するアクセス要求は拡張デ
バイスでも受け付けられる。このため、内蔵I/Oデバ
イスのアクセスと拡張デバイスのアクセスとが競合して
しまい、内蔵I/Oデバイスに対するアクセスは正常に
実行できない。一方、拡張デバイスが要求するI/Oア
ドレス空間が第1のI/Oアドレス空間と異なれば、内
蔵I/Oデバイスに対するアクセスは正常に実行され
る。従って、内蔵I/Oデバイスに対するアクセスが正
常に実行されたか否かに従って、内蔵I/Oデバイスと
拡張デバイスのI/Oアドレス空間が重複しているか否
かを決定することができる。
【0013】I/Oアドレス空間が重複していることが
決定された時、内蔵I/Oデバイスにマッピングされる
アドレス空間は、第1のI/Oアドレス空間からそれと
は異なる第2のI/Oアドレス空間に自動的に変更され
る。これにより、拡張デバイスの要求するI/Oアドレ
ス空間がどのような値に設定されていても、その拡張デ
バイスのI/Oアドレス空間が内蔵I/Oデバイスと重
なることを防止できる。
【0014】内蔵I/Oデバイスに対するアクセスが正
常に実行されたか否かの判定処理においては、内蔵I/
Oデバイスのステータスレジスタからステータスデータ
をリ−ドするためのリードアクセスを行うことが好まし
い。内蔵I/Oデバイスと拡張デバイスのI/Oアドレ
ス空間が重複していれば、リ−ドアクセスにおいてデー
タバスコンテンションが発生する。一方、それらのI/
Oアドレス空間が重複していなければ、所望の値のステ
ータスデータを内蔵I/Oデバイスから読み取ることが
できる。また、ライトデータとそのライトデータの格納
位置から読み出されたリードデータの比較を行ういわゆ
るライト・リード・コンペアによって行うことによって
も、内蔵I/Oデバイスに対するアクセスが正常に実行
されたか否かの判定を行うことができる。このようにす
れば、ライトアクセスとリードアクセスの双方をチェッ
クできるので、I/Oアドレス空間が重複するか否かを
さらに確実に判定することができる。
【0015】また、この発明のコンピュータシステムで
は、内蔵I/Oデバイスに対するアクセス実行時にシス
テムがハングアップした場合に対処するために、システ
ム電源がユーザによって再投入された時にI/Oアドレ
スの重複によるハングアップ後の電源再投入であるか否
かが調べられ、そのハングアップ後の電源再投入であれ
ば、内蔵I/OデバイスのI/Oアドレス空間が第1の
I/Oアドレス空間から第2のI/Oアドレス空間に自
動的に変更される。したがって、I/Oアドレスの重複
によってハングアップが発生した場合でも、システム電
源を再投入してシステムをリスタ−トしさえすれば、以
降は正常な動作が保証される。
【0016】さらに、この発明のコンピュータシステム
においては、内蔵I/OデバイスがマッピングされるI
/Oアドレス空間の変更が、プログラマブルな第1レジ
スタと、アドレスデコーダを含むハードウェアによって
実現されている。
【0017】第1レジスタには、第1のI/Oデバイス
をマッピングするI/Oアドレス空間を示す値がセット
される。アドレスデコーダは、CPUからのI/Oアド
レスをデコードし、そのI/Oアドレスが第1レジスタ
にセットされた値によって指定されるアドレス空間に属
す時に内蔵I/Oデバイスをイネーブルにする。このた
め、第1レジスタにセットされた値を変更することだけ
で、内蔵I/Oデバイスを容易に任意のI/Oアドレス
空間にマッピングできる。
【0018】またさらに、この発明のコンピュータシス
テムは、I/Oアドレス空間の重複が決定された時、内
蔵I/OデバイスのI/Oアドレス空間だけでなく、割
り込みレベルを変更することを特徴とする。この割り込
みレベルの変更は、割り込みコントローラと、プログラ
マブルな第2レジスタと、内蔵I/Oデバイスからの割
り込み要求信号を受信した時、第2のレジスタにセット
された割り込みレベルに対応する割り込みコントローラ
の割り込み入力端子に割り込み要求信号を供給する手段
によって実現できる。
【0019】また、この発明のコンピュータシステム
は、CPUと、このCPUに電気的に接続されたシステ
ムバスと、このシステムバスに接続され、マッピングさ
れるアドレス空間がそれぞれ変更可能に構成された複数
の内蔵I/Oデバイスと、前記システムバスに電気的に
接続された拡張コネクタと、この拡張コネクタに着脱自
在に接続される拡張デバイスであって、前記拡張コネク
タを介して前記システムバス上のI/Oアドレスを受信
およびデコードし、そのI/Oアドレスが前記拡張デバ
イスが要求する所定のI/Oアドレス空間に属す時に動
作する拡張デバイストと、前記複数の内蔵I/Oデバイ
スに互いに異なるI/Oアドレス空間がマッピングされ
るようにそれら内蔵I/Oデバイス毎に予め規定された
アドレス空間を示すアドレス情報を格納するアドレス管
理テーブルと、前記複数の内蔵I/OデバイスのI/O
アドレス空間それぞれが前記拡張デバイスの要求するI
/Oアドレス空間と重複しているか否かを内蔵I/Oデ
バイス毎に検出し、その検出結果に応じて前記複数の内
蔵I/Oデバイスの動作環境を設定する環境設定手段で
あって、前記複数の内蔵I/Oデバイスの環境設定処理
の実行中を示すフラグを不揮発性記憶装置にセットする
手段と、前記複数の内蔵I/Oデバイスを順番に環境設
定対象として選択し、その環境設定対象の内蔵I/Oデ
バイスを示すデバイスIDを前記不揮発性記憶装置にセ
ットする手段と、前記アドレス情報によって指定される
前記環境設定対象の内蔵I/OデバイスのI/Oアドレ
ス空間に属すI/Oアドレスを前記システムバス上に出
力し、前記システムバスを介して前記環境設定対象の内
蔵I/Oデバイスのアクセスを実行する手段と、前記環
境設定対象の内蔵I/Oデバイスのアクセスが正常に実
行されたか否かに従って、前記内蔵I/Oデバイスにマ
ッピングされている前記I/Oアドレス空間と前記拡張
デバイスの要求するI/Oアドレス空間とが重複してい
るか否かを決定する手段と、前記I/Oアドレス空間が
重複していることが決定された時、前記アドレス情報を
更新して前記環境設定対象の内蔵I/Oデバイスに対応
するI/Oアドレス空間を変更する手段と、前記複数の
内蔵I/Oデバイス全てのI/Oアドレス空間の重複の
有無の検出処理の完了に応答して、前記フラグをリセッ
トする手段とを含む、環境設定手段と、システムの電源
投入に応答して、前記不揮発性記憶装置を参照して前記
フラグがセットされているか否かを決定する手段と、前
記フラグがセットされていることの決定に応答して、前
記不揮発性記憶装置に格納されているデバイスIDによ
って指定される内蔵I/Oデバイスに対応する前記アド
レス情報を更新し、前記デバイスIDによって指定され
る内蔵I/OデバイスにマッピングされるI/Oアドレ
ス空間を変更する手段と、前記フラグがリセットされて
いることの決定に応答して、前記環境設定手段に環境設
定処理を実行させる手段とを具備することを特徴とす
る。
【0020】このコンピュータシステムにおいては、I
/Oアドレス空間が変更可能な内蔵I/Oデバイスが複
数個システム内に存在しており、システムの電源投入に
応答して、それら内蔵I/Oデバイスの環境設定処理が
順番に実行される。この場合、例えば環境設定処理の開
始に先立って、環境設定処理の実行中を示すフラグがバ
ックアップされたメモリのような不揮発性記憶装置にセ
ットされる。環境設定処理では、環境設定対象の内蔵I
/Oデバイスと拡張デバイスとのI/Oアドレス空間の
重複の有無をチェックするために、環境設定対象の内蔵
I/Oデバイスに対するアクセスが実行される。このア
クセスが正常に実行されれば、環境設定対象の内蔵I/
OデバイスのI/Oアドレス空間は変更されずデフォル
ト値のまま維持される。一方、アクセスが正常に実行さ
れなかった場合には、環境設定対象の内蔵I/Oデバイ
スのI/Oアドレス空間が変更される。そして、全ての
内蔵I/Oデバイスに対する環境設定が完了すると、前
述のフラグがリセットされる。
【0021】したがって、拡張デバイスのI/Oアドレ
ス空間がどの内蔵I/OデバイスのI/Oアドレス空間
と重複している場合でも、拡張デバイスおよび全ての内
蔵I/Oデバイスを互いに異なるI/Oアドレス空間に
マッピングできる。さらに、I/Oアドレスの重複によ
りハングアップした場合には、システムリスタート後に
デバイスIDが参照され、どの内蔵I/Oデバイスが原
因でハングアップが発生したかが自動的に決定される。
そして、その原因となった内蔵I/Oデバイスがマッピ
ングされるI/Oアドレス空間が変更される。このた
め、I/Oアドレス空間の重複によるハングアップが発
生した場合でも、システムリスタ−トさえすれば、以降
は正常な動作が保証される。
【0022】また、この発明のコンピュータシステム
は、I/Oアドレス空間の重複が決定された時、内蔵I
/Oデバイスを動作禁止、つまりディスエーブルにした
状態でオペレーティングシステムを起動する手段を含む
ことを特徴とする。このコンピュータシステムでは、内
蔵I/Oデバイスがディスエーブルの状態でシステム質
上げが実行されるので、内蔵I/Oデバイスと拡張デバ
イスのI/Oアドレス空間が重なっていても、オペレー
ティングシステムを正常に起動することができる。この
場合、内蔵I/Oデバイスの環境設定は、オペレーティ
ングシステムの環境設定機能、アプリケーションプログ
ラムの提供する環境設定機能、またはBIOSの環境設
定機能などを利用して行うことができる。
【0023】さらに、この発明のコンピュータシステム
は、拡張デバイスが拡張コネクタに接続されたことを検
出するデバイス検出装置を有し、システムの電源投入時
にデバイス検出装置からの検出信号が拡張デバイスの接
続を示す時、内蔵I/Oデバイスを動作禁止にしたまま
オペレーティングシステムを起動することを特徴とす
る。この場合、オペレーティングシステムが起動された
後に、そのオペレーティングシステムに設けられた環境
設定機能などを利用して内蔵I/Oデバイスの環境設定
処理が行われる。
【0024】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。図1には、この発明の一実施例に係わるコンピ
ュータシステムの構成が示されている。このコンピュー
タシステムは、ラップトップタイプまたはノートブック
タイプのポータブルコンピュータ本体1と、そのポータ
ブルコンピュータ本体1に取り外し可能に接続される拡
張ユニット2から構成される。
【0025】ポータブルコンピュータ本体1のシステム
ボード上には、CPU11、システムコントローラ1
2、メインメモリ13が設けられている。CPU11お
よびメインメモリ13は、32ビット幅のデータバスを
含むCPUローカルバス14に接続されている。このC
PUローカルバス14は、システムコントローラ12を
介して16ビット幅のデータバスを含むISA仕様のシ
ステムバス15に接続されている。
【0026】また、このシステムボード上には、BIO
S ROM16と、システム構成に不可欠な各種周辺L
SI、すなわち、割込みコントローラ(PIC)17、
DMAコントローラ(DMAC)18、システムタイマ
(PIT)19、リアルタイムクロック(RTC)2
0、キーボードコントローラ(KBC)21、ハードデ
ィスクコントローラ(HDC)22、およびフロッピー
ディスクコントローラ(FDC)23が設けられてい
る。これら周辺LSIは、予め決められたI/Oアドレ
ス空間に固定的にマッピングされている。また、それら
周辺LSIそれぞれの割り込みレベルも固定的に規定さ
れている。
【0027】さらに、システムボード上には、第1およ
び第2の2つのI/Oデバイス24,25が設けられて
いる。これらI/Oデバイス24,25は、システムバ
ス15に接続されている。I/Oデバイス24,25も
CPU11の周辺LSIの1つであるが、前述のシステ
ムタイマ19やリアルタイムクロック20などのシステ
ム構成に不可欠なデバイスではなく、例えば、BIOS
ROM16に格納されているシステムBIOSのセッ
トアップ機能などを利用して、ユーザが必要に応じて使
用することができるデバイスである。
【0028】セットアップ機能によって設定されたシス
テム構成は、BIOSセットアップ情報としてリアルタ
イムクロック20のCMOSメモリ20aに格納され
る。このCMOSメモリ20aは、バッテリバックアッ
プされたCMOS構成のSRAMである。CMOSメモ
リ20aには、BIOSセットアップ情報が他、そのセ
ットアップ情報に従ってセットアップルーチンの実行中
を示す環境設定フラグ(F)などがの各種フラグもセッ
トされる。BIOSセットアップ情報の一例を図2に示
す。
【0029】ここでは、システムBIOSによって環境
設定可能なデバイスとして、2つのシリアルポート(シ
リアルポート1,シリアルポート2)、プリンタポート
1、外部フロッピーディスクインターフェースが例示さ
れている。BIOSセットアップ情報は、これらハード
ウェアデバイス毎に、デフォルトのI/Oアドレス、割
り込みレベル(IRQ番号)、そのデバイスを使用する
か否か(イネーブルEN/ディスエーブルDIS)を示
す情報を保持する。これら情報は、ユーザが所定のキー
入力操作によってセットアップルーチンを読み出し、そ
のセットアップルーチンのメニュー画面上で設定するこ
とができる。
【0030】このように、I/Oデバイス24,25
は、シリアルポートやプリンタポートに接続される外部
周辺装置を制御するコントローラ等として利用されるも
のである。
【0031】ここで、シリアルポートは、ポータブルコ
ンピュータ本体1に各種RS232C機器、モデム、シ
リアルマウスなどの外部周辺装置を接続するために利用
され、またプリンタポートはパラレルポートであり、ポ
ータブルコンピュータ本体1にプリンタや外部フロッピ
ーディスクなどの周辺装置を接続するために利用され
る。また、シリアルポートやパラレルポートだけでな
く、システム構成に不可欠なデバイス以外の他の各種周
辺装置、例えば、音源カードなどのゲートポートを制御
するためのコントローラ、拡張ディスプレイコントロー
ラ、SCSIインターフェースコントローラなど、の各
種周辺装置制御のためのコントローラなどを、I/Oデ
バイス24,25としてポータブルコンピュータ1に内
蔵することも可能である。また、I/Oデバイス24,
25は、例えば内蔵モデム装置のような周辺装置そのも
のであっても良い。
【0032】I/Oデバイス24,25の各々はデフォ
ルトのI/Oアドレス空間にマッピングされているが、
そのI/Oアドレス空間の値はソフトウェア的に変更可
能に構成されている。I/Oアドレス空間の変更は、後
述するオプションカードが使用するI/Oアドレス空間
とそれらI/Oデバイス24,25が使用するI/Oア
ドレス空間の重複が検出されたときに自動的に実行され
る。さらに、I/Oデバイス24,25の割り込みレベ
ルも、デフォルト値からそれとは異なる別の値にソフト
ゥエア的に変更可能である。これらI/Oデバイス2
4,25のI/Oアドレス空間および割り込みレベルの
自動変更は、BIOS ROM16のシステムBIOS
が、システムコントローラ12に設けられたハードウェ
アロジックを利用することによって実行される。
【0033】さらに、ポータブルコンピュータ本体1に
は、拡張コネクタ26が設けられている。この拡張コネ
クタ26は、システムバス15に接続されている。拡張
コネクタ26には、ポータブルコンピュータ本体1の機
能拡張のために利用される拡張ユニット2が取り外し可
能に接続される。
【0034】拡張ユニット2には、コネクタ27、拡張
コネクタ28,29を含む拡張スロット、およびカード
検出用のフォトセンサ30,31が設けられている。コ
ネクタ27は、ポータブルコンピュータ本体1の拡張コ
ネクタ26と接続可能な形状およびピン配置を持つ。拡
張ユニット2の拡張コネクタ28,29の各々には、各
種の拡張デバイスが取り外し可能に接続される。拡張デ
バイスとしては、モデムカード、音源カード、グラフィ
クスアダプタカード、SCSIインターフェースカー
ド、マルチI/OカードなどのISA仕様の各種オプシ
ョンカードや、PCMCIA仕様のICカードなどが含
まれる。以下、拡張デバイスとして、ISA仕様のオプ
ションカードを使用する場合を例にとって説明する。
【0035】ISA仕様のオプションカードは、そのカ
ード毎にそれを使用するのに必要なハードウェア資源
(I/Oアドレス空間、割り込みレベルなど)が規定さ
れている。また、そのISA仕様のオプションカードの
ほとんどは、ユーザによって操作可能なジャンパまたは
ディップスイッチを有しており、それらジャンパまたは
ディップスイッチの設定に応じてI/Oアドレス空間お
よび割り込みレベルが変更できるように構成されてい
る。
【0036】拡張ユニット2がコンピュータ本体1に接
続された状態では、拡張コネクタ28,29内のコネク
タは、内部バス32、コネクタ27,26を介して、コ
ンピュータ本体のシステムバス15に接続される。
【0037】フォトセンサ30は、オプションカード3
2が拡張コネクタ28に接続されているか否かを検出す
るカード検出装置であり、拡張スロットのカード挿入経
路内に設けられている。このフォトセンサ30は、図示
のように、2つの突出部を有し、それら突出部の対向面
には発光素子および受光素子が設けられている。オプシ
ョンカード32が拡張コネクタ28に接続されると、2
つの突出部間つまり発光素子と受光素子との間にオプシ
ョンカード32が挿入されることによって光の透過が遮
断される。この時、フォトセンサ30は、オプションカ
ード32が拡張スロットに装着されたことを示すカード
検出信号DTE1を発生する。このカード検出信号DT
E1は、コネクタ27,26を介してシステムコントロ
ーラ12に送られ、これによってシステムコントローラ
12内の所定のステータスレジスタにカード装着を示す
フラグがセットされる。
【0038】フォトセンサ31もフォトセンサ30と同
様のものであり、2つの突出部間の間にオプションカー
ド33が挿入されることによって光の透過が遮断された
時、オプションカード33が装着されたことを示すカー
ド検出信号DTE2を発生する。なお、フォトセンサ3
0,31としては、前述のような透過型のものでなく、
反射型のものを使用することもできる。
【0039】カード検出装置としてはこの実施例のよう
にフォトセンサ(透過型または反射型)を用いるのが検
出精度などの信頼性、耐久性、スペース効率などの点で
最も好ましいが、例えば、カードの装着をマイクロスイ
ッチによって機械的に検出したり、拡張コネクタの特定
ピンの電圧変化を検出することによってカードの装着を
検出することもできる。
【0040】オプションカード32,33は、システム
からのI/Oアドレスを受信およびデコードして、その
I/Oアドレスの値が自身の要求するI/Oアドレスで
あるか否かを決定するアドレスデコーダを含んでおり、
自身の要求するI/Oアドレスである時に動作する。
【0041】次に、I/Oデバイス24,25のI/O
アドレス空間および割り込みレベルを変更するためのハ
ードウェア構成を説明する。このハードウェアは、シス
テムコントローラ12に設けられている。
【0042】すなわち、システムコントローラ12は、
CPU11からの指示に応じてメモリやI/Oを制御す
るためのものであり、ここには、バス変換回路121、
I/Oアドレス変更回路122、およびデバイス割り込
みレベル変更回路123が設けられている。バス変換回
路121は、CPUローカルバス14とシステムバス1
5との間におけるデータおよびアドレスのインターフェ
ースであり、データバスやアドレスバス幅の変換などを
行う。
【0043】I/Oアドレス変更回路122は、前述の
I/Oデバイス24,25のI/Oアドレス空間を可変
設定するためのアドレスデコーダである。このI/Oア
ドレス変更回路122の具体的なハードウェア構成の一
例を図3に示す。
【0044】図3に示されているように、I/Oアドレ
ス変更回路122は、アドレスデコーダ201、チップ
セレクト信号発生回路202,203を備えている。チ
ップセレクト信号発生回路202は、チップセレクト信
号CS−Aを発生する。チップセレクト信号CS−A
は、I/Oデバイス24にイネーブル信号として供給さ
れる。同様にチップセレクト信号発生回路203は、チ
ップセレクト信号CS−Bを発生する。チップセレクト
信号CS−Bは、I/Oデバイス25にイネーブル信号
として供給される。
【0045】チップセレクト信号発生回路202は、レ
ジスタ204と、プログラマブルアドレスデコーダ20
5から構成されている。レジスタ204はソフトウェア
的に書き換え可能なI/Oレジスタであり、システムバ
ス15のデータバスに接続されている。このレジスタ2
04には、I/Oデバイス24がマッピングされるべき
I/Oアドレス範囲を示す値がCPU11によってセッ
トされる。このレジスタ204にセットされた値は、プ
ログラマブルアドレスデコーダ205に送られる。プロ
グラマブルアドレスデコーダ205はレジスタ204に
セットされた値によってデコード条件が変更可能なデコ
ーダであり、CPU11からのI/Oアドレスがレジス
タ204の値によって指定されるI/Oアドレス範囲に
属す時にチップセレクト信号CS−Aを発生する。さら
に、レジスタ204には、チップセレクト信号CS−A
の発生を許可/禁止するためのイネーブル/ディスエー
ブルビットもCPU11によってセットされる。ディス
エーブルビットがセットされた時はプログラマブルアド
レスデコーダ205の動作が動作禁止(ディスエーブ
ル)され、これによってチップセレクト信号CS−Aの
発生が禁止される。
【0046】チップセレクト信号発生回路203もチッ
プセレクト信号発生回路202と同様に構成されてお
り、レジスタ206と、プログラマブルアドレスデコー
ダ207から構成されている。レジスタ206はソフト
ウェア的に書き換え可能なI/Oレジスタであり、シス
テムバス15のデータバスに接続されている。このレジ
スタ206には、I/Oデバイス25がマッピングされ
るべきI/Oアドレス範囲を示す値がセットされる。こ
のレジスタ206にセットされた値は、プログラマブル
アドレスデコーダ207に送られる。プログラマブルア
ドレスデコーダ207はレジスタ206にセットされた
値によってデコード条件が変更可能なデコーダであり、
CPU11からのI/Oアドレスがレジスタ206の値
によって指定されるI/Oアドレス範囲に属す時にチッ
プセレクト信号CS−Bを発生する。さらに、レジスタ
206には、チップセレクト信号CS−Bの発生を許可
/禁止するためのイネーブル/ディスエーブルビットも
CPU11によってセットされる。ディスエーブルビッ
トがセットされた時はプログラマブルアドレスデコーダ
207の動作がディスエーブルされ、これによってチッ
プセレクト信号CS−Bの発生が禁止される。
【0047】アドレスデコーダ201は、システムバス
15を介してCPU11からIOリード/ライト信号
(IO R/W)が供給された時、システムバス15上
のアドレス(I/Oアドレス)をデコードする。I/O
アドレスがレジスタ204を指定する時、アドレスデコ
ーダ201はレジスタ204をリード/ライト対象のI
/Oポートとして選択する。同様に、I/Oアドレスが
レジスタ206を指定する時には、レジスタ206がリ
ード/ライト対象のI/Oポートとして選択される。
【0048】このように構成されたI/Oアドレス変更
回路122においては、レジスタ204にセットする値
を変更することにより、チップセレクト信号CS−Aの
発生に必要なI/Oアドレス範囲を任意に変更できる。
同様に、レジスタ206にセットする値を変更すること
により、チップセレクト信号CS−Bの発生に必要なI
/Oアドレス範囲も任意に変更できる。プログラマブル
デコーダ205,207は、それぞれI/Oアドレスの
上位ビット部とレジスタ204,206の値を比較し、
一致した時にのみチップセレクト信号CS−A,CS−
Bを発生するように構成された一致/不一致検出回路に
よって実現することができる。
【0049】図4には、プログラマブルデコーダ205
の具体的構成の一例が示されている。プログラマブルデ
コーダ205は、図示のように、EXORゲートなどを
含む一致/不一致検出回路301〜308と、AND回
路309から構成されている。1デバイス当たりのI/
Oアドレス空間が8バイトの場合、I/Oアドレスの下
位3ビットA2−0はデコードされず、A10−3のデ
コードだけが行われる。I/Oデバイス24のI/Oア
ドレス空間が2F8H〜2FFHの場合、レジスタ20
4にはアドレス2F8Hを示す8ビットデータ“010
11111”がセットされる。この場合、レジスタ20
4のイネーブル/ディスエーブルフラグがイネーブルス
テートであり、且つシステムバス上のI/Oアドレスの
A10−3が“01011111”であるならば、AN
D回路309からチップセレクト信号CS−Aが発生さ
れる。
【0050】また、プログラマブルデコーダ206も同
様の回路構成によって実現することができる。図5に
は、図1のシステムにおけるI/Oアドレスマップの一
例が示されている。
【0051】このI/Oアドレスマップから分かるよう
に、I/Oアドレス000Hから1FFFHのアドレス
空間は割り込みコントローラ17やシステムタイマ19
のようにシステム構成に不可欠なデバイスのために予約
されており、このアドレス空間は、I/Oデバイス2
4,25やオプションカードは使用することはできな
い。したがって、I/Oデバイス24,25やオプショ
ンボードが使用できるのは、アドレス200H以降のア
ドレス空間である。
【0052】例えば、第1のI/Oデバイス24がシリ
アルポート2に接続されるモデムなどの周辺装置を制御
するためのコントローラである場合を想定すると、I/
Oデバイス24にはアドレス2F8H〜2FFHのI/
Oアドレス空間がデフォルト値として割り当てられてい
る。これは、図2で説明したように、シリアルポート2
のデフォルトのI/Oアドレス空間は2F8H〜2FF
Hだからである。この場合、レジスタ204には、図4
で示したように、I/Oデバイス24のI/Oアドレス
空間のベースアドレスである2F8Hを示す値がセット
される。
【0053】もし、拡張コネクタ28に装着されたカー
ド32のI/Oアドレス空間がそのジャンパ設定などに
よって2F8H〜2FFHに設定される場合には、CM
OSメモリ20aのセットアップ情報およびレジスタ2
04の値が書き替えられ、I/Oデバイス24のI/O
アドレス空間が別のI/Oアドレス空間に変更される。
例えば、シリアルポート1用のアドレス空間3F8H〜
3FFHに変更する場合には、レジスタ204には、そ
の変更先I/Oアドレス空間のベースアドレスである3
F8Hを示す値がセットされる。シリアルポート1が使
用中であれば、I/Oデバイス24のI/Oアドレス空
間はさらに他のI/Oアドレス空間に変更される。I/
Oアドレス空間の変更先は、他のデバイスによるI/O
アドレス空間の使用状況などに応じて動的に決定するこ
ともできる。I/Oアドレス空間の使用状況は、図2の
BIOSセットアップ情報のEN/DISデータを参照
することによって認識できる。また、オプションカード
を含む全てのデバイスの使用状況やそれらに割り当てら
れたハードウェア資源(I/Oアトレス空間、割り込み
レベルなど)をCMOSメモリ20a等に保存・管理
し、その情報を利用してI/Oアドレス空間の変更先を
決定することもできる。
【0054】次に、図6を参照して、デバイス割り込み
レベル変更回路123を利用して行われる割り込みレベ
ル変更の原理を説明する。まず、割り込みコントローラ
17について説明する。割り込みコントローラ17は、
カスケ−ド接続されたマスタおよびスレーブの2つの割
り込みコントローラチップ17a,17bから構成され
ており、互いに異なる割り込みレベルを持つハードウェ
ア割り込み要求信号IRQ0〜15を受信するための1
6個の割り込み入力端子(IR0〜IR7,IR0〜I
R7)を持つ。これら割り込み入力(IRQ2の入力端
子を除く)は、システムバス15に接続されている。
【0055】割り込みコントローラ17は、ハードウェ
ア割り込み要求信号IRQ0〜15の発生を監視し、い
ずれかが発生された時にCPU11に割り込み信号IN
TRを供給する。割り込み信号INTRは、CPU11
の実行中の処理を中断させ、CPU11に割り込み要因
に対応する割り込みサービスルーチンを実行させる。複
数のハードウェア割り込み要求信号が同時発生した場合
には、最も優先度の高いハードウェア割り込み要求信号
に対する割り込みサービスルーチンが実行される。ハー
ドウェア割り込み要求信号の優先順位つまり割り込みレ
ベルは、IRQ0が最も高く、IRQ1,IRQ8〜I
RQ15,IRQ3〜IRQ7の順に低くなる。IRQ
0,IRQ1,IRQ2,IRQ6,IRQ8,IRQ
14はシステムタイマ19などによって既に使用されて
おり、これら割り込みレベルをI/Oデバイス24,2
5やオプションボードが使用することはできない。
【0056】割り込みレベル変更回路123は、図示の
ように、レジスタ402,404、ゲート回路403,
405を備えている。レジスタ402およびゲート回路
403は、I/Oデバイス24の割り込みレベルを変更
するために利用される。レジスタ402は、ソフトウェ
ア的に書き換え可能なI/Oレジスタであり、システム
バス15のデータバスに接続されている。このレジスタ
402には、I/Oデバイス24の割り込みレベルを指
定する値がセットされる。このレジスタ402にセット
された値は、出力ゲート回路403に送られる。
【0057】出力ゲート回路403は、図示のように接
続された10個の2入力ANDゲートを有しており、I
/Oデバイス24からのハードウェア割り込み要求信号
IRQ−Aに応答して、IRQ3,IRQ4,IRQ
5,IRQ7,IRQ9,IRQ10,IRQ11,I
RQ12,IRQ13,IRQ15の1つを発生する。
この場合、どの割り込みレベルを発生するかは、レジス
タ402にセットされた値によって決定される。例え
ば、図示のようにレジスタ402に“10000000
00”がセットされている場合には、出力ゲート回路4
03の1番目のANDゲートがオープンされ、IRQ−
Aに応答して発生される割り込み要求信号は、割り込み
コントローラ17のIRQ3に対応する割り込み入力端
子に供給される。この場合、I/Oデバイス24の割り
込みレベルはIRQ3となる。
【0058】レジスタ404およびゲート回路405
は、I/Oデバイス25の割り込みレベルを変更するた
めに利用される。レジスタ404は、ソフトウェア的に
書き換え可能なI/Oレジスタであり、システムバス1
5のデータバスに接続されている。このレジスタ404
には、I/Oデバイス25の割り込みレベルを指定する
値がセットされる。このレジスタ404にセットされた
値は、出力ゲート回路405に送られる。
【0059】出力ゲート回路405は、図示のように接
続された10個の2入力ANDゲートを有しており、I
/Oデバイス25からのハードウェア割り込み要求信号
IRQ−Bに応答して、IRQ3,IRQ4,IRQ
5,IRQ7,IRQ9,IRQ10,IRQ11,I
RQ12,IRQ13,IRQ15の1つを発生する。
この場合、どの割り込みレベルを発生するかは、レジス
タ404にセットされた値によって決定される。例え
ば、図示のようにレジスタ404に“00010000
00”がセットされている場合には、出力ゲート回路4
05の4番目のANDゲートがオープンされ、IRQ−
Bに応答して発生される割り込み要求信号は、割り込み
コントローラ17のIRQ7に対応する割り込み入力端
子に供給される。この場合、I/Oデバイス25の割り
込みレベルはIRQ7となる。
【0060】このように構成された割り込みレベル変更
回路123においては、レジスタ402,404にセッ
トする値を変更することにより、I/Oデバイス24,
25の割り込みレベルを任意に変更できる。
【0061】図7には、図1のシステムにおける各デバ
イスのデフォルトの割り込みレベルが示されている。図
7から分かるように、IRQ0,IRQ1,IRQ2,
IRQ6,IRQ8,IRQ14は、システムタイマ1
9などのシステムに不可欠なデバイスによって使用され
ている。第1のI/Oデバイス24がシリアルポート2
に接続されるモデムなどの周辺装置を制御するためのコ
ントローラである場合を想定すると、I/Oデバイス2
4には割り込みレベルIRQ3がデフォルト値として割
り当てられている。これは、図2で説明したように、シ
リアルポート2のデフォルトの割り込みレベルはIRQ
3だからである。この場合、レジスタ402には、図6
で示したように、“1000000000”がセットさ
れる。
【0062】もし、拡張コネクタ28に装着されたカー
ド32のI/Oアドレス空間がそのジャンパ設定などに
よってシリアルポート2と同じ2F8H〜2FFHに設
定される場合には、I/Oデバイス24のI/Oアドレ
ス空間だけでなく、その割り込みレベルも、他のレベル
に変更される。例えば、I/Oデバイス24のI/Oア
ドレス空間がシリアルポート1用のアドレス空間3F8
H〜3FFHに変更される場合には、この変更に伴っ
て、I/Oデバイス24の割り込みレベルも、シリアル
ポート1用の割り込みレベルであるIRQ4に変更され
る。この割り込みレベルの変更は、レジスタ402に
“0100000000”をセットすることによって実
現される。
【0063】次に、I/Oデバイス24,25それぞれ
のI/Oアドレス空間および割り込みレベルを決定する
ための環境設定処理について説明する。この環境設定処
理は、システムがパワーオンされた時またはシステムリ
セット時に、BIOS ROM16のシステムBIOS
によって実行される。
【0064】まず、環境設定のための第1の方法を説明
する。第1の方法の概要は、次の通りである。前述した
ように、ポータブルコンピュータ本体1に内蔵されてい
る全てのデバイスの内、システムタイマ19やリアルタ
イムクロックといったシステムに不可欠なデバイスを除
く、他の全ての内蔵デバイス(図1では、I/Oデバイ
ス24,25がそれらデバイスの代表して示されてい
る)については、I/Oアドレス空間および割り込みレ
ベルなどのハードウェア資源の割り当てを含む動作環境
の変更が可能である。これらI/Oデバイス24,25
はディスエーブル状態がデフォルトとして規定されてお
り、BIOSセットアップ情報の内容にかかわらず、シ
ステムがパワーオンされた時またはシステムリセットさ
れた時からI/Oデバイス24,25それぞれの環境設
定が実行されるまでの間は、ディスエーブル状態に設定
されている。
【0065】システムBIOSは、I/Oデバイス24
およびI/Oデバイス25を順番に環境設定するが、そ
の環境設定の開始に先立って、環境設定の実行中を示す
“1”の環境設定フラグをCMOSメモリ20aに保存
する。また、環境設定対象のデバイスを示すデバイスI
Dも、CMOSメモリ20aに保存される。環境設定フ
ラグは、I/Oデバイス24,25の双方の環境設定が
完了した時に“0”にリセットされる。
【0066】環境設定対象のデバイス、例えば、I/O
デバイス24の環境設定処理では、そのI/Oデバイス
24のデフォルトのI/Oアドレス空間がオプションカ
ード32または33の要求するI/Oアドレス空間と重
なるか否かが調べられる。このI/Oアドレス空間の重
なりの有無は、I/Oデバイス24をイネーブルにして
I/Oデバイス24をアクセスし、そのアクセスが正常
に実行されるか否かによって判別される。
【0067】もしI/Oアドレス空間が重なっていれ
ば、アクセスは失敗する。この時、I/Oデバイス24
のI/Oアドレス空間は、デフォルトのI/Oアドレス
空間とは異なるI/Oアドレス空間に変更される。ま
た、I/Oデバイス24をアクセスした時にシステムが
ハングアップした場合には、ユーザがシステムを一旦パ
ワーオフしてから再度システムをパワーオンし直すこと
を期待する。この場合、システムBIOSは、CMOS
メモリのデバイスIDからI/Oアドレス空間の重複の
原因となったデバイスを認識し、そのデバイスのI/O
アドレス空間の変更を行う。これにより、I/Oデバイ
ス24,25とオプションカード32,33相互のハー
ドウェア資源の重なりを防止でき、オペレーイングシス
テムを正常に起動することができる。
【0068】以下、図8および図9のフローチャートを
参照して、第1の方法による環境設定処理の詳細を説明
する。システムパワーオンまたはシステムリセットに応
答して、システムBIOSがCPU11によって実行さ
れる。システムBIOSは、メモリの初期化および信頼
性チェックなどを行った後、周辺LSIの初期化および
信頼性チェックを行う。周辺LSIの初期化および信頼
性チェックでは、I/Oデバイス24,25に適切なハ
ードウェア資源を割り当てるための環境設定処理も行わ
れる。
【0069】この環境設定処理において、システムBI
OSは、まず、CMOSメモリ20aに“1”の環境設
定フラグが格納されているか否かを調べ、これによって
I/Oアドレスの衝突に起因するハングアップ後のシス
テムリスタート(システムパワーオンまたはシステムリ
セット)であるか否かを判別する(ステップS11)。
【0070】“1”の環境設定フラグが格納されてない
場合、つまり、通常のシステムスタート時は、システム
BIOSは、ステップS12〜S30のルーチンに進
む。一方、“1”の環境設定フラグが格納されている場
合、つまり、I/Oアドレスの衝突に起因するハングア
ップ後のシステムスタート時は、システムBIOSは、
ステップS33〜S49のルーチンに進む。
【0071】通常のシステムスタート時においては、シ
ステムBIOSは、まず、CMOSメモリ20aに
“1”の環境設定フラグを書き込む(ステップS1
2)。システムBIOSは、第1のI/Oデバイス24
を最初の環境設定対象のデバイスとして選択し、第1の
I/Oデバイス24を示すデバイスID(ID=
“1”)をCMOSメモリ20aに格納する(ステップ
S13)。次いで、システムBIOSは、第1のI/O
デバイス24のデフォルトのI/Oアドレス空間の先頭
アドレスおよびデフォルトの割り込みレベル(IRQ番
号)をCMOSメモリ20aに格納し(ステップS1
4)、その後、I/Oデバイス24をイネーブルにする
(ステップS15)。このI/Oデバイス24のイネー
ブル処理では、システムBIOSは、イネーブルフラグ
とデフォルトのI/Oアドレス空間の先頭アドレスをレ
ジスタ204に格納する。
【0072】次いで、システムBIOSは、I/Oアド
レス空間の重なりの有無を検出するために、デフォルト
のI/Oアドレス空間に属す所定のI/Oアドレスをシ
ステムバス15上に出力してそのI/Oアドレスによっ
て指定されるI/Oデバイス24内のI/Oポートに対
するアクセスを試行し、そのアクセスが正常に実行でき
るか否かをチェックする(ステップS16)。
【0073】I/Oアクセスのチェック処理では、I/
Oデバイス24内のステ−タスレジスタからステータス
データをリードし、所望のステータスが読み出せるか否
かをチェックすることが望ましい。I/Oアドレス空間
が重なっていなければ所望のステータスを読み出すこと
ができるが、I/Oアドレス空間が重なっていれば、デ
ータバスコンテンションによってデータ化けなどの障害
が発生する。また、さらに好ましくは、チェック処理を
いわゆるライト・リード・コンペアによって行うことが
ことである。この場合、I/Oデバイス24内のデータ
レジスタに所定のライトデータを書き込むためのライト
アクセスと、そのデータレジスタからデータを読み出す
ためのリードアクセスが順次行なわれ、データレジスタ
から読み出されたデータとライトデータが比較される。
一致すればI/Oアドレス空間の重なりがないと判断さ
れ、一致ならばI/Oアドレス空間が重なっていると判
断される。このライト・リード・コンペアによるチェッ
ク処理を利用すれば、ライトアクセスとリードアクセス
の双方をチェックできるので、I/Oアドレス空間が重
複するか否かをさらに確実に判定することができる。
【0074】チェック処理が成功した場合には、I/O
デバイス24のデフォルトのI/Oアドレス空間および
デフォルトの割り込みレベルは正当な値として確定さ
れ、それらデフォルトのI/Oアドレス空間および割り
込みレベルがI/Oデバイス24にハードウェア資源と
して割り当てられる。そして、システムBIOSは、ス
テップS22以降のI/Oデバイス25に対する環境設
定処理に移行する。
【0075】一方、チェック処理が失敗した場合には、
システムBIOSは、I/Oデバイス24に割り付ける
ことが可能な第2候補のI/Oアドレス空間について同
様のチェック処理を行う(ステップS18〜S20)。
どのI/Oアドレス空間を第2候補とするかは予め規定
されている。また、図2のBIOSセットアップ情報を
参照して他のデバイスの使用状況を調べ、使用されてな
いデバイスに割り当てられているI/Oアドレス空間な
どの未使用のI/Oアドレス空間を第2候補として選択
することも可能である。
【0076】システムBIOSは、CMOSメモリ20
aに第2候補のI/Oアドレス空間を示す値を書き込み
(ステップS18)、その後、レジスタ204に第2候
補のI/Oアドレス空間を示す値をセットし、第2候補
のI/Oアドレス空間ついてライト・リード・コンペア
によるチェック処理を行う(ステップS19,S2
0)。
【0077】チェック処理が成功した場合、つまり、第
2候補のI/Oアドレス空間が重複してない時は、シス
テムBIOSは、第2候補のI/Oアドレス空間および
デフォルトの割り込みレベルをI/Oデバイス24のハ
ードウェア資源として決定する。そして、システムBI
OSは、ステップS22以降のI/Oデバイス25に対
する環境設定処理に移行する。
【0078】一方、チェック処理が失敗した場合、つま
り、第2候補のI/Oアドレス空間がオプションカード
32または33のI/Oアドレス空間と重複している時
は、システムBIOSは、オペレーティングシステムの
ブートストラップにエラーが発生するのを防止するため
に、I/Oデバイス24をディスエーブルする(ステッ
プS21)。このディスエーブル処理では、BIOSセ
ットアップ情報におけるI/Oデバイス24に関するE
N/DISフラグがディスエーブル(DIS)ステート
に変更され、またレジスタ204にディスエーブルフラ
グがセットされる。これにより、I/Oデバイス24に
対するアクセスは禁止され、オプションカード32また
は33に対する正常なアクセスが保証される。この後、
システムBIOSは、ステップS22以降のI/Oデバ
イス25に対する環境設定処理に移行する。
【0079】第2のI/Oデバイス25に対する環境設
定処理も、第1のI/Oデバイス24に対する前述の環
境設定処理と同様な手順で行われる。すなわち、システ
ムBIOSは、第2のI/Oデバイス25を示すデバイ
スID(ID=“2”)をCMOSメモリ20aに格納
する(ステップS22)。次いで、システムBIOS
は、第2のI/Oデバイス25のデフォルトのI/Oア
ドレス空間の先頭アドレスおよびデフォルトの割り込み
レベル(IRQ番号)をCMOSメモリ20aに格納し
(ステップS23)、その後、I/Oデバイス25をイ
ネーブルにする(ステップS24)。このI/Oデバイ
ス25のイネーブル処理では、システムBIOSは、イ
ネーブルフラグとデフォルトのI/Oアドレス空間の先
頭アドレスをレジスタ206に格納する。
【0080】次いで、システムBIOSは、I/Oアド
レス空間の重なりの有無を検出するために、レジスタ2
06にデフォルトのI/Oアドレス空間を示す値をセッ
トし、そのデフォルトのI/Oアドレス空間ついてライ
ト・リード・コンペアによるチェック処理を行う(ステ
ップS25,S26)。
【0081】チェック処理が成功した場合には、I/O
デバイス25のデフォルトのI/Oアドレス空間および
デフォルトの割り込みレベルは正当な値として確定さ
れ、それらデフォルトのI/Oアドレス空間および割り
込みレベルがI/Oデバイス25にハードウェア資源と
して割り当てられる。そして、システムBIOSは、C
MOSメモリ20aの環境設定フラグを環境正処理の完
了を示す値“0”に書き替え(ステップS31)、その
後、オペレーティングシステムをメインメモリ13にロ
ードして実行するためのブートストラップ処理を実行す
る(ステップS32)。
【0082】一方、チェック処理が失敗した場合には、
システムBIOSは、I/Oデバイス25に割り付ける
ことが可能な第2候補のI/Oアドレス空間について同
様のチェック処理を行う(ステップS27〜S29)。
【0083】すなわち、システムBIOSは、CMOS
メモリ20aに第2候補のI/Oアドレス空間を示す値
を書き込み(ステップS27)、その後、レジスタ20
6に第2候補のI/Oアドレス空間を示す値をセット
し、第2候補のI/Oアドレス空間ついてライト・リー
ド・コンペアによるチェック処理を行う(ステップS2
8,S29)。
【0084】チェック処理が成功した場合、つまり、第
2候補のI/Oアドレス空間が重複してない時は、シス
テムBIOSは、第2候補のI/Oアドレス空間および
デフォルトの割り込みレベルをI/Oデバイス25のハ
ードウェア資源として決定する。そして、システムBI
OSは、CMOSメモリ20aの環境設定フラグを環境
正処理の完了を示す値“0”に書き替え(ステップS3
1)、その後、オペレーティングシステムをメインメモ
リ13にロードして実行するためのブートストラップ処
理を実行する(ステップS32)。
【0085】一方、チェック処理が失敗した場合、つま
り、第2候補のI/Oアドレス空間がオプションカード
32または33のI/Oアドレス空間と重複している時
は、システムBIOSは、オペレーティングシステムの
ブートストラップにエラーが発生するのを防止するため
に、I/Oデバイス25をディスエーブルする(ステッ
プS30)。このディスエーブル処理では、BIOSセ
ットアップ情報におけるI/Oデバイス25に関するE
N/DISフラグがディスエーブル(DIS)ステート
に変更され、またレジスタ206にディスエーブルフラ
グがセットされる。これにより、I/Oデバイス25に
対するアクセスは禁止され、オプションカード32また
は33に対する正常なアクセスが保証される。この後、
システムBIOSは、CMOSメモリ20aの環境設定
フラグを環境正処理の完了を示す値“0”に書き替え
(ステップS31)、その後、ブートストラップ処理を
実行する(ステップS32)。
【0086】次に、CMOSメモリ20aに“1”の環
境設定フラグが格納されている場合、つまり、I/Oア
ドレスの重なりによってシステムがハングアップした後
のシステムリスタート時の動作を説明する。
【0087】CMOSメモリ20aに“1”の環境設定
フラグが格納されている場合、システムBIOSは、C
MOSメモリ20aからデバイスIDとI/Oアドレス
を読取り(ステップS33)、デバイスIDが“1”か
否かを調べる(ステップS34)。デバイスIDが
“1”の場合は、システムBIOSは、第1のI/Oデ
バイス24がハングアップの原因であったと認識し、そ
の第1のI/Oデバイス24のI/Oアドレス空間およ
び割り込みレベルの変更処理を行う(ステップS35〜
S37)。
【0088】この変更処理では、システムBIOSは、
まず、CMOSメモリ20aからリードしたI/Oアド
レス空間の値が第1のI/Oデバイス24のデフォルト
のI/Oアドレス空間であるか否かを調べる(ステップ
S35)。デフォルトのI/Oアドレス空間であった場
合には、システムBIOSは、I/Oデバイス24のI
/Oアドレス空間および割り込みレベルをそれぞれデフ
ォルト値から第2候補の値に変更し(ステップS3
6)、デフォルトのI/Oアドレス空間でなかった場合
には、I/Oデバイス24のI/Oアドレス空間および
割り込みレベルをそれぞれデフォルト値に変更する(ス
テップS37)。変更先のI/Oアドレス空間のベース
アドレスおよびIRQ番号は、CMOSメモリ20aに
格納される。
【0089】次いで、システムBIOSは、I/Oデバ
イス24をイネーブルにする(ステップS38)。この
I/Oデバイス24のイネーブル処理では、システムB
IOSは、イネーブルフラグと変更先のI/Oアドレス
空間のベースアドレスをI/Oアドレス変更回路122
のレジスタ204に格納すると共に、変更先のIRQ番
号を割り込みレベル変更回路123のレジスタ402に
格納する。この後、システムBIOSは、変更したI/
Oアドレス空間についての重なりの有無を検出するため
に、ライト・リード・コンペアによるチェック処理を行
う(ステップS39,S40)。
【0090】チェック処理が成功した場合には、変更し
たI/Oアドレス空間および割り込みレベルが正当な値
として確定され、それらI/Oアドレス空間および割り
込みレベルがI/Oデバイス24にハードウェア資源と
して割り当てられる。そして、システムBIOSは、C
MOSメモリ20aの環境設定フラグを環境正処理の完
了を示す値“0”に書き替え(ステップS31)、その
後、オペレーティングシステムをメインメモリ13にロ
ードして実行するためのブートストラップ処理を実行す
る(ステップS32)。
【0091】一方、チェック処理が失敗した場合には、
システムBIOSは、オペレーティングシステムのブー
トストラップにエラーが発生するのを防止するために、
I/Oデバイス24をディスエーブルする(ステップS
41)。このディスエーブル処理では、BIOSセット
アップ情報におけるI/Oデバイス24に関するEN/
DISフラグがディスエーブル(DIS)ステートに変
更され、またI/Oアドレス変更回路122のレジスタ
204にディスエーブルフラグがセットされる。これに
より、I/Oデバイス24に対するアクセスは禁止さ
れ、オプションカード32または33に対する正常なア
クセスが保証される。この後、システムBIOSは、C
MOSメモリ20aの環境設定フラグを環境処理の完了
を示す値“0”に書き替え(ステップS31)、その
後、ブートストラップ処理を実行する(ステップS3
2)。
【0092】デバイスIDが“2”の場合にも、同様の
手順でI/Oアドレス空間および割り込みレベルの変更
処理、およびその変更したI/Oアドレス空間について
のチェック処理が行われる(ステップS42〜S4
9)。
【0093】この第1の方法によれば、もし、オプショ
ンカード32または33が要求するI/Oアドレス空間
がI/Oデバイス24のデフォルトのI/Oアドレス空
間と一致しているならば、I/Oデバイス24に割り当
てられるI/Oアドレス空間は、デフォルト値からそれ
とは異なる値に自動的に変更される。同様に、オプショ
ンカード32または33が要求するI/Oアドレス空間
がI/Oデバイス25のデフォルトのI/Oアドレス空
間と一致しているならば、I/Oデバイス25のI/O
アドレス空間が自動的に変更される。これにより、オプ
ションカード32,33の要求するI/Oアドレス空間
がどのような値に設定されていても、そのオプションカ
ード32,33のI/Oアドレス空間が内蔵のI/Oデ
バイス24,25と重なることを防止できる。従って、
ユーザは、ISAカードなどの既存のオプションカード
32,33を、そのジャンパやディップスイッチの設定
を意識せずにシステムにインストールすることができ
る。
【0094】また、I/Oアドレスの重複によりシステ
ムがハングアップした場合には、システムリスタート後
にデバイスIDが参照され、そのデバイスIDによっ
て、どの内蔵I/OデバイスのI/Oアドレス空間との
重複が原因でハングアップが発生したかが自動的に決定
される。そして、その原因となったI/OデバイスのI
/Oアドレス空間が変更される。このため、I/Oアド
レス空間の重複によるハングアップが発生した場合で
も、ユーザはシステムをパワーオンし直すだけでよく、
以降はシステムを正常に動作させることができる。
【0095】次に、I/Oデバイス24,25それぞれ
の環境設定のための第2の方法を説明する。第2の方法
の概要は、次の通りである。I/Oデバイス24,25
はディスエーブル状態がデフォルトとして規定されてお
り、BIOSセットアップ情報の内容にかかわらず、シ
ステムがパワーオンされた時またはシステムリセットさ
れた時からI/Oデバイス24,25それぞれの環境設
定が実行されるまでの間はディスエーブル状態が維持さ
れる。
【0096】システムBIOSは、I/Oデバイス24
およびI/Oデバイス25を順番に環境設定するが、そ
の環境設定に先立って、環境設定の開始を示す“1”の
環境設定フラグをCMOSメモリ20aに保存する。環
境設定フラグは、I/Oデバイス24,25の双方の環
境設定が完了した時に“0”にリセットされる。
【0097】環境設定対象のデバイス、例えば、I/O
デバイス24の環境設定処理では、そのI/Oデバイス
24のデフォルトのI/Oアドレス空間がオプションカ
ード32または33の要求するI/Oアドレス空間と重
なるか否かが調べられる。このI/Oアドレス空間の重
なりの有無は、I/Oデバイス24をイネーブルにして
I/Oデバイス24をアクセスし、そのアクセスが正常
に実行されるか否かによって判別される。
【0098】もしI/Oアドレス空間が重なっていれ
ば、アクセスは失敗する。この時、システムBIOS
は、I/Oデバイス24,25の双方をディスエーブル
にしたまま、オペレーティングシステムのブートストラ
ップを実行する。これにより、I/Oデバイス24,2
5とオプションカード32,33のI/Oアドレス空間
が重複していても、オペレーティングシステムを正常に
ロードおよびひ実行することができる。また、I/Oデ
バイス24をアクセスした時にシステムがハングアップ
した場合には、ユーザがシステムを一旦パワーオフして
から再度システムをパワーオンし直すことを期待する。
この場合、システムBIOSは、I/Oデバイス24,
25の環境設定を行わずに、I/Oデバイス24,25
をディスエーブルした状態で、ブートストラップ処理を
実行する。I/Oデバイス24,25がディスエーブル
なので、オペレーティングシステムのブートストラップ
は正常に実行される。I/Oデバイス24,25の環境
設定は、オペレーティングシステムの管理下で専用のユ
ーティリティープログラムやシステムBIOSのセット
アップルーチンを利用して実行される。
【0099】以下、図10のフローチャートを参照し
て、第2の方法による環境設定処理の詳細を説明する。
システムBIOSは、まず、CMOSメモリ20aに
“1”の環境設定フラグが格納されているか否かを調
べ、これによってI/Oアドレスの衝突に起因するハン
グアップ後のシステムリスタート(システムパワーオン
またはシステムリセット)であるか否かを判別する(ス
テップS51)。
【0100】“1”の環境設定フラグが格納されてない
場合、つまり、通常のシステムスタート時は、システム
BIOSは、ステップS52〜S66の環境設定ルーチ
ンに進む。
【0101】環境設定ルーチンでは、システムBIOS
は、まず、CMOSメモリ20aに“1”の環境設定フ
ラグを書き込む(ステップS52)。システムBIOS
は、第1のI/Oデバイス24を最初の環境設定対象の
デバイスとして選択し、第1のI/Oデバイス24を示
すデバイスID(ID=“1”)をCMOSメモリ20
aに格納する(ステップS53)。次いで、システムB
IOSは、第1のI/Oデバイス24のデフォルトのI
/Oアドレス空間のベースアドレスおよびデフォルトの
割り込みレベル(IRQ番号)をCMOSメモリ20a
に格納し(ステップS54)、その後、I/Oデバイス
24をイネーブルにする(ステップS55)。このI/
Oデバイス24のイネーブル処理では、システムBIO
Sは、イネーブルフラグとデフォルトのI/Oアドレス
空間の先頭アドレスをI/Oアドレス変更回路122の
レジスタ204に格納する。
【0102】次いで、システムBIOSは、I/Oアド
レス空間の重なりの有無を検出するために、デフォルト
のI/Oアドレス空間に属す所定のI/Oアドレスをシ
ステムバス15上に出力してそのI/Oアドレスによっ
て指定されるI/Oデバイス24内のI/Oポートに対
するアクセスを試行し、そのアクセスが正常に実行でき
るか否かをチェックする(ステップS56,S57)。
このI/Oアクセスのチェック処理は、第1の方法と同
様にライト・リード・コンペアなどによって行なわれ
る。
【0103】チェック処理が失敗した場合には、システ
ムBIOSは、I/Oデバイス25をディスエーブルす
る(ステップS58)。このディスエーブル処理では、
BIOSセットアップ情報におけるI/Oデバイス24
に関するEN/DISフラグがディスエーブル(DI
S)ステートに変更され、またI/Oアドレス変更回路
122のレジスタ204にディスエーブルフラグがセッ
トされる。これにより、I/Oデバイス24に対するア
クセスは禁止される。この後、システムBIOSは、オ
ペレーティングシステムをメインメモリ13にロードし
て実行するためのブートストラップ処理を実行する(ス
テップS66)。このブートストラップ処理はI/Oデ
バイス24,25の双方がディスエーブルされた状態で
実行されるため、システムを正常に立ち上げることがで
きる。
【0104】一方、チェック処理が成功した場合には、
I/Oデバイス24のデフォルトのI/Oアドレス空間
およびデフォルトの割り込みレベルは正当な値として確
定され、それらデフォルトのI/Oアドレス空間および
割り込みレベルがI/Oデバイス24にハードウェア資
源として割り当てられる。そして、システムBIOS
は、ステップS59以降のI/Oデバイス25に対する
環境設定処理に移行する。
【0105】すなわち、システムBIOSは、第2のI
/Oデバイス25を環境設定対象のデバイスとして選択
し、第2のI/Oデバイス25を示すデバイスID(I
D=“2”)をCMOSメモリ20aに格納する(ステ
ップS59)。次いで、システムBIOSは、第2のI
/Oデバイス25のデフォルトのI/Oアドレス空間の
先頭アドレスおよびデフォルトの割り込みレベル(IR
Q番号)をCMOSメモリ20aに格納し(ステップS
60)、その後、I/Oデバイス25をイネーブルにす
る(ステップS61)。このI/Oデバイス25のイネ
ーブル処理では、システムBIOSは、イネーブルフラ
グとデフォルトのI/Oアドレス空間のベースアドレス
をI/Oアドレス変更回路122のレジスタ206に格
納する。
【0106】次いで、システムBIOSは、I/Oアド
レス空間の重なりの有無を検出するために、デフォルト
のI/Oアドレス空間に属す所定のI/Oアドレスをシ
ステムバス15上に出力してそのI/Oアドレスによっ
て指定されるI/Oデバイス25内のI/Oポートに対
するアクセスを試行し、そのアクセスが正常に実行でき
るか否かをチェックする(ステップS62,S63)。
このI/Oアクセスのチェック処理は、ライト・リード
・コンペアなどによって行なわれる。
【0107】チェック処理が失敗した場合には、システ
ムBIOSは、I/Oデバイス24,25の双方をディ
スエーブルする(ステップS64)。このディスエーブ
ル処理では、BIOSセットアップ情報におけるI/O
デバイス24,25それぞれに関するEN/DISフラ
グがディスエーブル(DIS)ステートに変更され、ま
たI/Oアドレス変更回路122のレジスタ204,2
06にディスエーブルフラグがセットされる。これによ
り、I/Oデバイス24,25に対するアクセスは禁止
される。この後、システムBIOSは、オペレーティン
グシステムをメインメモリ13にロードして実行するた
めのブートストラップ処理を実行する(ステップS6
6)。このブートストラップ処理はI/Oデバイス2
4,25の双方がディスエーブルされた状態で実行され
るため、システムを正常に立ち上げることができる。
【0108】一方、チェック処理が成功した場合には、
I/Oデバイス25のデフォルトのI/Oアドレス空間
およびデフォルトの割り込みレベルは正当な値として確
定され、それらデフォルトのI/Oアドレス空間および
割り込みレベルがI/Oデバイス25にハードウェア資
源として割り当てられる。そして、システムBIOS
は、CMOSメモリ20aの環境設定フラグを“0”に
リセットし(ステップS65)、その後、ブートストラ
ップ処理を実行する(ステップS66)。
【0109】次に、CMOSメモリ20aに“1”の環
境設定フラグが格納されている場合、つまり、I/Oア
ドレスの重なりによってシステムがハングアップした後
のシステムリスタート時の動作を説明する。
【0110】CMOSメモリ20aに“1”の環境設定
フラグが格納されている場合、システムBIOSは、I
/Oデバイス24,25の環境設定を行わずに、CMO
Sメモリ20aの環境設定フラグを“0”にリセットし
(ステップS67)、その後、I/Oデバイス24,2
5がディスエーブルされている状態でブートストラップ
処理を実行する(ステップS66)。この場合、I/O
デバイス24,25の環境設定は、オペレーティングシ
ステムが起動された後に、そのオペレーティングシステ
ムの管理下で実行可能なシステム構成変更用のユーティ
リティープログラムや、システムBIOSのセットアッ
プルーチンなどを実行することによってBIOSセット
アップ情報を書き換え、その後オペレーティングシステ
ムをリブートすることによって実現できる。
【0111】この第2の方法によれば、I/Oアドレス
空間の重複が決定された時、I/Oデバイス24,25
がディスエーブルされた状態でオペレーティングシステ
ムのブートストラップが実行される。したがって、I/
Oデバイス24または25とオプションカード32また
は33のI/Oアドレス空間が重なっていても、オペレ
ーティングシステムを正常にブートストラップすること
ができる。
【0112】次に、I/Oデバイス24,25それぞれ
の環境設定のための第3の方法を説明する。第3の方法
の概要は、次の通りである。この第3の方法は、システ
ムスタート時にオプションカード32または33が拡張
コネクタ28または29に装着されているか否かを調
べ、装着されている場合には、I/Oデバイス24,2
5を共にディスエーブルにしたままの状態でブートスト
ラップを実行する。
【0113】以下、図11のフローチャートを参照し
て、第3の方法による環境設定処理の詳細を説明する。
システムのパワーオンまたはシステムリセットに応答し
て、システムBIOSは、オプションカード32または
33が拡張コネクタ28または29に装着されているか
否かを検出する(ステップS71)。この検出は、フォ
トセンサ30,31からのカ−ド検出信号DTE1,D
TE2の値に応じて実行される。カ−ド検出信号DTE
1,DTE2の値は、そのカ−ド検出信号DTE1,D
TE2の値がセットされるシステムコントローラ12内
のレジスタの内容をシステムBIOSがリ−ドすること
によって認識できる。
【0114】オプションカード32または33が装着さ
れてない場合には、システムBIOSは、I/Oアドレ
ス変更回路122のレジスタ204,206にイネーブ
ルフラグを順次セットすることにより、I/Oデバイス
24,25をそれぞれイネーブルにする(ステップS7
2,S73)。この場合、I/Oデバイス24にはその
I/Oデバイス24に対応するデフォルトのI/Oアド
レス空間および割り込みレベルが割り当てられ、それら
I/Oアドレス空間の先頭アドレスを示す値および割り
込みレベルを示すIRQ番号がそれぞれI/Oアドレス
変更回路122のレジスタ204および割り込みレベル
変更回路123のレジスタ402にセットされる。ま
た、I/Oデバイス25にはそのI/Oデバイス25に
対応するデフォルトのI/Oアドレス空間および割り込
みレベルが割り当てられ、それらI/Oアドレス空間の
先頭アドレスを示す値および割り込みレベルを示すIR
Q番号がそれぞれI/Oアドレス変更回路122のレジ
スタ206および割り込みレベル変更回路123のレジ
スタ404にセットされる。この後、システムBIOS
は、ブートストラップ処理を実行する(ステップS7
4)。
【0115】一方、オプションカード32または33が
装着されている場合には、システムBIOSは、I/O
デバイス24,25の前述の環境設定処理(ステップS
72,73)を実行することなく、それらI/Oデバイ
ス24,25をディスエーブル状態にしたままブートス
トラップ処理を実行する(ステップS74)。この場
合、I/Oデバイス24,25の環境設定は、オペレー
ティングシステムが起動された後に、そのオペレーティ
ングシステムの管理下で実行可能なシステム構成変更用
のユーティリティープログラムや、システムBIOSの
セットアップルーチンなどを実行することによってBI
OSセットアップ情報を書き換え、その後オペレーティ
ングシステムをリブートすることによって実現できる。
【0116】以上のように、この第3の方法によれば、
システムの電源投入時にフォトセンサ30,31からの
検出信号がオプションカードの装着を示す時、I/Oデ
バイス24,25を共にディスエーブルにしたままオペ
レーティングシステムがブートストラップされる。した
がって、I/Oアドレス空間の重複が発生しても、シス
テムがハングアップするといった事態を招くこと無く、
オペレーティングシステムをブートストラップすること
ができる。
【0117】以上のように、この実施例のシステムにお
いては、システムボード上のデバイスの内で、システム
タイマ19やリアルタイムクロック20といったシステ
ム動作に不可欠なデバイスを除く他の全てのデバイス、
つまりI/Oデバイス24,25、については環境設定
/変更可能に構成することにより、オプションカード3
2,33が要求するハードウェア資源に応じてそれらI
/Oデバイス24,25に割り当てるハードウェア資源
を変更することができる。従って、オプションカード3
2,33のI/Oアドレス空間の設定値によらずに常に
正常に動作することが可能なコンピュータシステムを実
現できる。
【0118】なお、ここでは、ポータブルコンピュータ
本体1の拡張コネクタ26に拡張ユニット2を接続し、
その拡張ユニット2にオプションカード32,33を装
着する場合を説明したが、図12に示されているよう
に、ポータブルコンピュータ本体1内に複数の拡張コネ
クタ28,29が設けられている場合には、拡張ユニッ
トを使用せずに、オプションカード32,33をコンピ
ュータ本体1の拡張コネクタ28,29に直接装着する
ことも可能である。この場合、フォトセンサ30,31
は、図示のように、コンピュータ本体1の拡張コネクタ
28,29近傍に設けられる。
【0119】また、I/Oアドレス空間および割り込み
レベルだけでなく、I/Oデバイス24,25のDMA
チャネルやメモリアドレスなどについても同様にして変
更することが可能である。
【0120】さらに、ここでは、オプションカードとの
間のハードウェア資源の重複についてのみ考慮したが、
ポータブルコンピュータ本体1に取り外し可能に装着さ
れる各種ICカードとの間のハードウェア資源の重複に
ついても、オプションカードの場合と同様にして回避す
ることができる。
【0121】また、ここでは、システムバス15に接続
されるデバイス間でのハードウェア資源の重複について
説明したが、このハードウェア資源の重複は、バスの種
類とは特に関係するものではない。従って、CPUロー
カルバス14にオプションデバイスを装着できる構成の
コンピュータにおいては、CPUローカルバス14に接
続されている内蔵デバイスを、それに割り当てられるハ
ードウェア資源をソウトウェア的に変更可能に構成する
ことが好ましい。
【0122】
【発明の効果】以上説明したように、この発明によれ
ば、内蔵I/Oデバイスに割り当てられるI/Oアドレ
ス空間などのハードウェア資源を変更することができる
ので、ユーザによるジャンパなどの設定誤りによってオ
プションカードのI/Oアドレス空間がポータブルコン
ピュータ内蔵のI/OデバイスのI/Oアドレス空間と
重複する値に設定された場合でも、そのオプションカー
ドを含むシステム全体の動作を保証することができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るコンピュータシステ
ム全体の構成を示すブロック図。
【図2】図1のコンピュータシステムにおけるBIOS
セットアップ情報の一例を示す図。
【図3】図1のコンピュータシステムに設けられたI/
Oアドレス変更回路の具体的構成の一例を示すブロック
【図4】図3のI/Oアドレス変更回路に設けられたプ
ログラマブルデコーダの具体的構成の一例を示す回路
図。
【図5】図1のコンピュータシステムにおけるI/Oア
ドレスマップの一例を示す図。
【図6】図1のコンピュータシステムに設けられた割り
込みレベル変更回路の具体的構成の一例を示す回路図。
【図7】図1のコンピュータシステムにおける各デバイ
スのデフォルトの割り込みレベルを示す図。
【図8】図1のシステムがパワーオンされた時にそのシ
ステムのCPUによって実行される第1の環境設定動作
の一部を示すフローチャート。
【図9】図1のシステムがパワーオンされた時にそのシ
ステムのCPUによって実行される第1の環境設定動作
の残りの一部を示すフローチャート。
【図10】図1のシステムがパワーオンされた時にその
システムのCPUによって実行される第2の環境設定動
作を示すフローチャート。
【図11】図1のシステムがパワーオンされた時にその
システムのCPUによって実行される第3の環境設定動
作を示すフローチャート。
【図12】図1のコンピュータシステムの他の構成の一
例を示すブロック図。
【符号の説明】 1…ポータブルコンピュータ本体、2…拡張ユニット、
11…CPU、12…システムコントローラ、13…メ
インメモリ、14…CPUローカルバス、15…システ
ムバス、16…BIOS ROM、17…割り込みコン
トローラ、19…システムタイマ、20…リアルタイム
クロック、20a…CMOSメモリ、24,25…環境
設定/変更可能な内蔵I/Oデバイス、28,29…拡
張コネクタ、30,31…フォトセンサ、32,33…
オプションカード、122…I/Oアドレス変更回路、
123…割り込みレベル変更回路。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、 このCPUに電気的に接続されたシステムバスと、 このシステムバスに接続され、割り当てられるI/Oア
    ドレス空間が変更可能に構成された内蔵I/Oデバイス
    と、 前記システムバスに電気的に接続された拡張コネクタ
    と、 この拡張コネクタに着脱自在に接続される拡張デバイス
    であって、前記拡張コネクタを介して前記システムバス
    上のI/Oアドレスを受信およびデコードし、そのI/
    Oアドレスが前記拡張デバイスが要求する所定のI/O
    アドレス空間に属す時に動作する拡張デバイスと、 システムの電源投入に応答して、前記内蔵I/Oデバイ
    スの動作環境を設定する環境設定手段とを具備し、 この環境設定手段は、 前記内蔵I/Oデバイスに予め割り当てられた第1のI
    /Oアドレス空間に属すI/Oアドレスを前記システム
    バス上に出力し、前記システムバスを介して前記内蔵I
    /Oデバイスのアクセスを実行する手段と、 前記内蔵I/Oデバイスのアクセスが正常に実行された
    か否かに従って、前記内蔵I/Oデバイスに割り当てら
    れる前記第1のI/Oアドレス空間と前記拡張デバイス
    の要求するI/Oアドレス空間とが重複しているか否か
    を決定する手段と、 前記I/Oアドレス空間が重複していることが決定され
    た時、前記内蔵I/OデバイスのI/Oアドレス空間を
    前記第1のI/Oアドレス空間からそれとは異なる第2
    のI/Oアドレス空間に変更する手段とを具備すること
    を特徴とするコンピュータシステム。
  2. 【請求項2】 前記アクセス実行手段は、前記第1のI
    /Oアドレス空間に属すI/Oアドレスによって指定さ
    れる前記内蔵I/Oデバイス内のステータスレジスタか
    らステータスデータをリードする手段を含むことを特徴
    とする請求項1記載のコンピュータシステム。
  3. 【請求項3】 前記アクセス実行手段は、前記第1のI
    /Oアドレス空間に属すI/Oアドレスによって指定さ
    れる前記内蔵I/Oデバイス内のデータレジスタに所定
    のライトデータを書き込むためのライトアクセスを実行
    する手段と、 前記I/Oアドレスによって指定される前記データレジ
    スタの内容を読み出すためのリードアクセスを実行する
    手段とを含み、 前記アドレス空間が重複しているか否かを決定する手段
    は、前記ライトデータと前記リードアクセスによって読
    み出されたデータとを比較する手段と、それらデータの
    一致の有無に従って、前記内蔵I/Oデバイスに割り当
    てられた前記第1のI/Oアドレス空間と前記拡張デバ
    イスの要求するI/Oアドレス空間とが重複しているか
    否かを決定する手段とを含むことを特徴とする請求項1
    記載のコンピュータシステム。
  4. 【請求項4】 前記環境設定手段による前記内蔵I/O
    デバイスの環境設定処理が実行中であることを示すフラ
    グを不揮発性記憶装置にセットする手段と、 前記環境設定手段による前記内蔵I/Oデバイスの環境
    設定処理の完了に応答して前記フラグをリセットする手
    段と、 システムの電源投入に応答して、前記不揮発性記憶装置
    を参照して前記フラグがセットされているか否かを決定
    し、前記フラグがセットされている時、前記内蔵I/O
    デバイスに割り当てられるI/Oアドレス空間を前記第
    1のI/Oアドレス空間から前記第2のI/Oアドレス
    空間に変更する手段とをさらに具備することを特徴とす
    る請求項1記載のコンピュータシステム。
  5. 【請求項5】 前記I/Oアドレス空間が重複している
    ことが決定された時、前記内蔵I/Oデバイスに割り当
    てられている割り込みレベルを変更する手段をさらに具
    備することを特徴とする請求項1記載のコンピュータシ
    ステム。
  6. 【請求項6】 CPUと、 このCPUに電気的に接続されたシステムバスと、 このシステムバスに接続され、イネーブル信号を受信し
    た時にイネーブル状態に設定される内蔵I/Oデバイス
    と、 前記システムバスに電気的に接続された拡張コネクタ
    と、 この拡張コネクタに着脱自在に接続される拡張デバイス
    であって、前記拡張コネクタを介して前記システムバス
    上のI/Oアドレスを受信およびデコードし、そのI/
    Oアドレスが前記拡張デバイスが要求する所定のI/O
    アドレス空間に属す時に動作する拡張デバイスと、 前記内蔵I/Oデバイスに割り当てるI/Oアドレス空
    間を示す値がセットされる第1レジスタと、 前記CPUからのI/Oアドレスをデコードし、前記C
    PUからのI/Oアドレスが前記第1ジスタにセットさ
    れた値によって指定されるアドレス空間に属す時に前記
    イネーブル信号を発生する手段と、 前記システムの電源投入に応答して、前記内蔵I/Oデ
    バイスの動作環境を設定する環境設定手段とを具備し、 この環境設定手段は、 第1のアドレス空間を示す値を前記第1レジスタにセッ
    トして、前記第1のアドレス空間を前記内蔵I/Oデバ
    イスに割り当てる手段と、 前記第1のI/Oアドレス空間に属すI/Oアドレスを
    前記システムバス上に出力し、前記システムバスを介し
    て前記内蔵I/Oデバイスのアクセスを実行する手段
    と、 前記内蔵I/Oデバイスのアクセスが正常に実行された
    か否かに従って、前記内蔵I/Oデバイスに割り当てら
    れている前記第1のI/Oアドレス空間と前記拡張デバ
    イスの要求するI/Oアドレス空間とが重複しているか
    否かを決定する手段と、 前記I/Oアドレス空間が重複していることが決定され
    た時、前記第1レジスタの値を前記第1のI/Oアドレ
    ス空間を示す値からそれとは異なる第2のI/Oアドレ
    ス空間を示す値に変更する手段とを具備することを特徴
    とするコンピュータシステム。
  7. 【請求項7】 複数の割り込みレベルにそれぞれ対応す
    る複数の割り込み入力端子を有し、割り込み要求信号が
    供給された割り込み入力端子に対応する割り込みレベル
    を持つ割り込み信号を前記CPUに供給する割り込みコ
    ントローラと、 前記内蔵I/Oデバイスの割り込みレベルを指定する値
    がセットされる第2のレジスタと、 前記割り込みコントローラの2以上の割り込み入力端子
    に接続され、前記内蔵I/Oデバイスからの割り込み要
    求信号を受信した時、前記第2のレジスタにセットされ
    た割り込みレベルに対応する前記割り込みコントローラ
    の割り込み入力端子に、割り込み要求信号を供給する手
    段と、 前記I/Oアドレス空間が重複していることが決定され
    た時、前記内蔵I/Oデバイスの割り込みレベルが変更
    されるように前記第2のレジスタにセットされた値を更
    新する手段とをさらに具備することを特徴とする請求項
    6記載のコンピュータシステム。
  8. 【請求項8】 CPUと、 このCPUに電気的に接続されたシステムバスと、 このシステムバスに接続され、マッピングされるアドレ
    ス空間がそれぞれ変更可能に構成された複数の内蔵I/
    Oデバイスと、 前記システムバスに電気的に接続された拡張コネクタ
    と、 この拡張コネクタに着脱自在に接続される拡張デバイス
    であって、前記拡張コネクタを介して前記システムバス
    上のI/Oアドレスを受信およびデコードし、そのI/
    Oアドレスが前記拡張デバイスが要求する所定のI/O
    アドレス空間に属す時に動作する拡張デバイスと、 前記複数の内蔵I/Oデバイスに互いに異なるI/Oア
    ドレス空間が割り当てられるようにそれら内蔵I/Oデ
    バイス毎に予め規定されたI/Oアドレス空間を示すア
    ドレス情報を格納するアドレス管理テーブルと、 前記複数の内蔵I/OデバイスのI/Oアドレス空間そ
    れぞれが前記拡張デバイスの要求するI/Oアドレス空
    間と重複しているか否かを内蔵I/Oデバイス毎に検出
    し、その検出結果に応じて前記複数の内蔵I/Oデバイ
    スの動作環境を設定する環境設定手段であって、 前記複数の内蔵I/Oデバイスの環境設定処理の実行中
    を示すフラグを不揮発性記憶装置にセットする手段と、
    前記複数の内蔵I/Oデバイスを順番に環境設定対象と
    して選択し、その環境設定対象の内蔵I/Oデバイスを
    示すデバイスIDを前記不揮発性記憶装置にセットする
    手段と、前記アドレス情報によって指定される前記環境
    設定対象の内蔵I/OデバイスのI/Oアドレス空間に
    属すI/Oアドレスを前記システムバス上に出力し、前
    記システムバスを介して前記環境設定対象の内蔵I/O
    デバイスのアクセスを実行する手段と、前記環境設定対
    象の内蔵I/Oデバイスのアクセスが正常に実行された
    か否かに従って、前記内蔵I/Oデバイスにマッピング
    されている前記I/Oアドレス空間と前記拡張デバイス
    の要求するI/Oアドレス空間とが重複しているか否か
    を決定する手段と、前記I/Oアドレス空間が重複して
    いることが決定された時、前記アドレス情報を更新して
    前記環境設定対象の内蔵I/Oデバイスに対応するI/
    Oアドレス空間を変更する手段と、前記複数の内蔵I/
    Oデバイス全てのI/Oアドレス空間の重複の有無の検
    出処理の完了に応答して、前記フラグをリセットする手
    段とを含む、環境設定手段と、 システムの電源投入に応答して、前記不揮発性記憶装置
    を参照して前記フラグがセットされているか否かを決定
    する手段と、 前記フラグがセットされていることの決定に応答して、
    前記不揮発性記憶装置に格納されているデバイスIDに
    よって指定される内蔵I/Oデバイスに対応する前記ア
    ドレス情報を更新し、前記デバイスIDによって指定さ
    れる内蔵I/OデバイスにマッピングされるI/Oアド
    レス空間を変更する手段と、 前記フラグがリセットされていることの決定に応答し
    て、前記環境設定手段に環境設定処理を実行させる手段
    とを具備することを特徴とするコンピュータシステム。
  9. 【請求項9】 CPUと、 このCPUに電気的に接続されたシステムバスと、 このシステムバスに接続され、マッピングされるアドレ
    ス空間が変更可能に構成された内蔵I/Oデバイスと、 前記システムバスに電気的に接続された拡張コネクタ
    と、 この拡張コネクタに着脱自在に接続される拡張デバイス
    であって、前記拡張コネクタを介して前記システムバス
    上のI/Oアドレスを受信およびデコードし、そのI/
    Oアドレスが前記拡張デバイスが要求する所定のI/O
    アドレス空間に属す時に動作する拡張デバイスと、 システムの電源投入に応答して、前記第1のI/Oデバ
    イスの動作環境を設定する環境設定手段とを具備し、 この環境設定手段は、 前記内蔵I/Oデバイスが予め割り当てられている第1
    のI/Oアドレス空間に属すアドレスを前記システムバ
    ス上に出力し、前記システムバスを介して前記内蔵I/
    Oデバイスのアクセスを実行する手段と、 前記内蔵I/Oデバイスのアクセスが正常に実行された
    か否かに従って、前記内蔵I/Oデバイスに割り当てら
    れている前記第1のI/Oアドレス空間と前記拡張デバ
    イスの要求するI/Oアドレス空間とが重複しているか
    否かを決定する手段と、 前記I/Oアドレス空間が重複していることの決定に応
    答して、前記内蔵I/Oデバイスを動作禁止する手段
    と、 前記内蔵I/Oデバイスを動作禁止した状態でオペレー
    ティングシステムを起動する手段とを具備することを特
    徴とするコンピュータシステム。
  10. 【請求項10】 前記環境設定手段による前記内蔵I/
    Oデバイスの環境設定処理の実行中を示すフラグを不揮
    発性記憶装置にセットする手段と、 前記環境設定手段による前記内蔵I/Oデバイスの環境
    設定処理の完了に応答して前記フラグをリセットする手
    段と、 システムの電源投入に応答して、前記不揮発性記憶装置
    を参照して前記フラグがセットされているか否かを決定
    し、前記フラグがセットされている時、前記環境設定手
    段による環境設定処理の実行を禁止し、且つ前記内蔵I
    /Oデバイスを動作禁止した状態でオペレーティングシ
    ステムを起動する手段とをさらに具備することを特徴と
    する請求項9記載のコンピュータシステム。
  11. 【請求項11】 CPUと、 このCPUに電気的に接続されたシステムバスと、 このシステムバスに接続され、割り当てられるI/Oア
    ドレス空間が変更可能に構成された内蔵I/Oデバイス
    と、 前記システムバスに電気的に接続された拡張コネクタ
    と、 この拡張コネクタに着脱自在に接続される拡張デバイス
    であって、前記拡張コネクタを介して前記システムバス
    上のI/Oアドレスを受信およびデコードし、そのI/
    Oアドレスが前記拡張デバイスが要求する所定のI/O
    アドレス空間に属す時に動作する拡張デバイスと、 前記拡張デバイスが前記拡張コネクタに接続されている
    ことを検出するデバイス検出装置と、 システムの電源投入に応答して、前記デバイス検出装置
    からの出力に応じて前記拡張デバイスの接続の有無を決
    定する手段と、 前記拡張デバイスが接続されていることの決定に応答し
    て、前記内蔵I/Oデバイスを動作禁止した状態でオペ
    レーティングシステムの起動を実行する手段とを具備す
    ることを特徴とするコンピュータシステム。
JP6057414A 1994-03-28 1994-03-28 コンピュータシステム Pending JPH07271711A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6057414A JPH07271711A (ja) 1994-03-28 1994-03-28 コンピュータシステム
US08/720,273 US5809330A (en) 1994-03-28 1996-09-26 Conflict free PC in which only the I/O address of internal device is change when it is determined that the I/O address is overlap by expansion device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6057414A JPH07271711A (ja) 1994-03-28 1994-03-28 コンピュータシステム

Publications (1)

Publication Number Publication Date
JPH07271711A true JPH07271711A (ja) 1995-10-20

Family

ID=13054998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6057414A Pending JPH07271711A (ja) 1994-03-28 1994-03-28 コンピュータシステム

Country Status (2)

Country Link
US (1) US5809330A (ja)
JP (1) JPH07271711A (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094690A (en) * 1997-11-13 2000-07-25 Samsung Electronics Co., Ltd. Computer system with dynamic enabling and disabling function of the internal VGA module
EP0945807A1 (en) * 1998-03-27 1999-09-29 Hewlett-Packard Company Adress remapping for a bus
US6145030A (en) * 1998-03-27 2000-11-07 Intel Corporation System for managing input/output address accesses at a bridge/memory controller
US6336176B1 (en) * 1999-04-08 2002-01-01 Micron Technology, Inc. Memory configuration data protection
FI19991735A (fi) * 1999-08-16 2001-02-17 Nokia Networks Oy Menetelmä ja laite tietokonejärjestelmän toimintavarmuuden parantamiseksi
JP2001229117A (ja) * 2000-02-15 2001-08-24 Internatl Business Mach Corp <Ibm> 拡張ユニットの制御方法、コンピュータ、記録媒体及び伝送媒体
US6501660B1 (en) * 2001-06-22 2002-12-31 Sun Microsystems, Inc. Reliable card detection in a CPCI system
US6993622B2 (en) * 2001-10-31 2006-01-31 Netlogic Microsystems, Inc. Bit level programming interface in a content addressable memory
US7210003B2 (en) * 2001-10-31 2007-04-24 Netlogic Microsystems, Inc. Comparand generation in a content addressable memory
US7237058B2 (en) * 2002-01-14 2007-06-26 Netlogic Microsystems, Inc. Input data selection for content addressable memory
US7461228B2 (en) * 2003-11-21 2008-12-02 Rto Software, Inc. Systems and methods for avoiding base address collisions
US6792478B2 (en) * 2002-03-29 2004-09-14 Intel Corporation System and method to configure input/output (IO) devices to use selected pairs of port addresses
US7730292B2 (en) * 2003-03-31 2010-06-01 Hewlett-Packard Development Company, L.P. Parallel subword instructions for directing results to selected subword locations of data processor result register
US20060018142A1 (en) * 2003-08-11 2006-01-26 Varadarajan Srinivasan Concurrent searching of different tables within a content addressable memory
US7783792B2 (en) * 2004-02-20 2010-08-24 Lsi Corporation Enclosure slot identification by modules
US7716464B2 (en) * 2005-06-23 2010-05-11 Intel Corporation Method to have fault resilient booting
DE102005034944B3 (de) * 2005-07-22 2006-11-09 Siemens Ag Verfahren und Anordnung zur automatischen Konfiguration eines Master-Slave-Feldbussystems
KR20080047946A (ko) * 2006-11-27 2008-05-30 삼성전자주식회사 어드레스 관리방법 및 이를 적용한 영상기기
US9697141B2 (en) * 2014-10-17 2017-07-04 Sk Hynix Memory Solutions Inc. LBA blocking table for SSD controller

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4149238A (en) * 1977-08-30 1979-04-10 Control Data Corporation Computer interface
CA1234224A (en) * 1985-05-28 1988-03-15 Boleslav Sykora Computer memory management system
DE3584446D1 (de) * 1985-06-18 1991-11-21 Ibm Mikroprozessor.
US4875158A (en) * 1985-08-14 1989-10-17 Apple Computer, Inc. Method for requesting service by a device which generates a service request signal successively until it is serviced
US5187792A (en) * 1990-05-09 1993-02-16 International Business Machines Corporation Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system
EP0471928B1 (en) * 1990-08-20 1999-07-14 Kabushiki Kaisha Toshiba Connection state confirmation system and method for expansion unit
US5293593A (en) * 1990-10-11 1994-03-08 Hewlett-Packard Company Method and apparatus for the mapping of physically non-contiguous memory fragments to be linearly addressable
JPH0821015B2 (ja) * 1992-01-20 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータならびにそのシステム再構成化装置および方法
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
US5386515A (en) * 1992-05-27 1995-01-31 Intel Corporation Automatic input/output address conflict resolution
US5596728A (en) * 1994-05-04 1997-01-21 Compaq Computer Corporation Method and apparatus for resolving resource conflicts after a portable computer has docked to an expansion base unit

Also Published As

Publication number Publication date
US5809330A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
US6505278B1 (en) Method for flashing ESCD and variables into a ROM
JPH07271711A (ja) コンピュータシステム
US5805882A (en) Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5473775A (en) Personal computer using flash memory as BIOS-ROM
US6401198B1 (en) Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
US7111202B2 (en) Autonomous boot failure detection and recovery
US6101617A (en) Computer failure recovery and alert system
US5628027A (en) Method of determining the configuration of devices installed on a computer bus
US6182187B1 (en) System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
US6282640B1 (en) Method for improved storage of computer system configuration information
US6282643B1 (en) Computer system having flash memory BIOS which can be accessed remotely while protected mode operating system is running
US5987536A (en) Computer system having flash memory bios which can be accessed while protected mode operating system is running
US20010052067A1 (en) Method and apparatus for improved storage of computer system configuration information
GB2202350A (en) Data processing system with pluggable option cards
US10909247B2 (en) Computing device having two trusted platform modules
US6363492B1 (en) Computer method and apparatus to force boot block recovery
US6240519B1 (en) Computer method and apparatus to prompt for administrative password to flash a corrupted non-volatile memory
US20050039081A1 (en) Method of backing up BIOS settings
US7080164B2 (en) Peripheral device having a programmable identification configuration register
US6405311B1 (en) Method for storing board revision
US7752429B2 (en) Computer system and boot code accessing method thereof
US6795915B2 (en) Computer system and method for setting up information on an operating system thereof
WO2000025208A1 (en) Processor system with fail safe bios configuration
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、系统及介质
US20040210751A1 (en) Method for booting computer system with basic input-output system memory and structure thereof