(57)【特許請求の範囲】
【請求項１】
データ入力と、データ出力と、制御入力とを有し、
前記データ入力に与えられたデータを保持して出力するポート複数と、
前記データ入力から前記ポートへのデータ転送をするためのデータバスとを備え、
前記制御入力に与えられた制御信号もしくは前記データ入力に与えられたコマンドにより前記ポートのうち一つを選択し、この選択されたポートに前記データ入力からのデータを転送し、又は前記選択されたポートのデータを前記データ出力から出力するＩ／Ｏ拡張装置。
【請求項２】
前記データ出力に前記ポートのうち選択された一つからデータを転送するための他のデータバスをさらに備える事を特徴とする請求項１記載のＩ／Ｏ拡張装置。
【請求項３】
データを記憶するためのメモリと、
データ入力及び制御入力を有する回路とを備え、
前記回路は、前記制御入力からの制御信号により、前記データ入力からコマンド、データ、アドレスのいずれかを入力し、前記コマンドに応じて前記データ又は前記アドレスを前記メモリに与えて前記データを前記メモリ中の前記アドレスに記憶しもしくは前記メモリの前記アドレスのデータを出力する外部記憶装置。
【請求項４】
前記回路は、前記データ及び前記アドレスを前記メモリに与えるポート複数と、前記データ入力から前記ポートへのデータ転送をするためのデータバスとを有し、前記コマンドにより前記ポートの一つを選択してこの選択されたポートに前記データ及び前記アドレスを保持して前記メモリに与える事を特徴とする請求項３記載の外部記憶装置。
【請求項５】
データを記憶するためのメモリと、
データ入力、データ出力及び制御入力を有する回路とを備え、
前記回路は、前記制御入力からの制御信号により、前記データ入力からデータ又はアドレスを入力して前記データ又は前記アドレスを前記メモリに与え、前記メモリ中の前記アドレスに前記データを記憶するとともに前記データ出力から出力し、若しくは前記メモリの前記アドレスのデータを前記データ出力から出力する外部記憶装置。
【請求項６】
前記回路は、前記データ及び前記アドレスを前記メモリに与えるポート複数と、前記データ入力から前記ポートへのデータ転送をするためのデータバスとを有し、前記ポートの一つを選択してこの選択されたポートに前記データ及び前記アドレスを保持して前記メモリに与え、又は前記選択されたポートのデータを前記データ出力から出力する事を特徴とする請求項５記載の外部記憶装置。
【請求項７】
前記データ出力に前記ポートのうち選択された一つからデータを転送するための他のデータバスをさらに備える事を特徴とする請求項６記載の外部記憶装置。
【請求項８】
前記回路は、前記制御入力への制御信号のビット又は前記データ入力から与えられたコマンドにより、前記ポートの選択と書き込み及び読み出しとを制御する事を特徴とする請求項６記載の外部記憶装置。
【請求項９】
前記ポートは、前記データバスのデータを保持するとともに前記メモリに与える複数のフリップロップと、前記メモリのデータを前記データ出力に出力するバッファとを含んで構成されている事を特徴とする請求項４、６又は７いずれか記載の外部記憶装置。
【請求項１０】
前記メモリは、連続的にデータを出力するモードを有する事を特徴とする請求項３ないし９いずれか記載の外部記憶装置。
【請求項１１】
データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からコマンド、データ、アドレスのいずれかを入力し、前記コマンドに応じて前記データ又は前記アドレスを前記メモリに与えて前記データを前記メモリ中の前記アドレスに記憶しもしくは前記メモリの前記アドレスのデータを出力する外部記憶装置へのアクセス方法であって、
第１のコマンドとアドレスとを前記データ入力に与えて前記回路から前記メモリに前記アドレスを出力し、
第２のコマンドとデータとを前記データ入力に与えて前記回路から前記メモリに前記データを出力して前記データを前記メモリの前記アドレスに記憶させる外部記憶装置へのアクセス方法。
【請求項１２】
データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からコマンド、データ、アドレスのいずれかを入力し、前記コマンドに応じて前記データ又は前記アドレスを前記メモリに与えて前記データを前記メモリ中の前記アドレスに記憶しもしくは前記メモリの前記アドレスのデータを出力する外部記憶装置へのアクセス方法であって、
第１のコマンドとアドレスとを前記データ入力に与えて前記回路から前記メモリに前記アドレスを出力し、
第３のコマンドを前記データ入力に与えて前記メモリから前記アドレスのデータを出力させる外部記憶装置へのアクセス方法。
【請求項１３】
データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からデータ又はアドレスを入力して前記データ又は前記アドレスを前記メモリに与え、前記メモリ中の前記アドレスに前記データを記憶するとともに前記データ出力から出力し、若しくは前記メモリの前記アドレスのデータを前記データ出力から出力する外部記憶装置へのアクセス方法であって、
第１の制御信号を前記制御入力にアドレスを前記データ入力に与えて前記回路から前記メモリに前記アドレスを出力し、
第２の制御信号を前記制御入力にデータを前記データ入力に与え、前記回路から前記メモリに前記データを出力して前記データを前記メモリの前記アドレスに記憶させる外部記憶装置へのアクセス方法。
【請求項１４】
データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からデータ又はアドレスを入力して前記データ又は前記アドレスを前記メモリに与え、前記メモリ中の前記アドレスに前記データを記憶するとともに前記データ出力から出力し、若しくは前記メモリの前記アドレスのデータを前記データ出力から出力する外部記憶装置へのアクセス方法であって、
第１の制御信号を前記制御入力にアドレスを前記データ入力に与えて前記回路から前記メモリに前記アドレスを出力し、
第３の制御信号を前記制御入力にデータを前記データ入力に与え、前記回路から前記メモリの前記アドレスのデータを前記データ出力から出力させる外部記憶装置へのアクセス方法。
【請求項１５】
前記メモリの前記アドレスに記憶されるデータを前記外部記憶装置から入力して、そのデータが正確かを確かめる事を含む請求項１１又は１３いずれか記載の外部記憶装置へのアクセス方法。
【請求項１６】
前記アドレスの一部を前記外部記憶装置に保持されたアドレスの選択されたビットにセットして前記アドレスを前記回路から前記メモリに出力する事を特徴とする請求項１１ないし１５いずれか記載の外部記憶装置へのアクセス方法。
【請求項１７】
データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からコマンド、データ、アドレスのいずれかを入力し、前記コマンドに応じて前記データ又は前記アドレスを前記メモリに与えて前記データを前記メモリ中の前記アドレスに記憶しもしくは前記メモリの前記アドレスのデータを出力する外部記憶装置へのアクセス装置であって、
前記制御入力に前記制御信号を、前記データ入力にコマンド、データもしくはアドレスを与えるためのインターフェイスと、
前記外部記憶装置へ電力の供給をするとともに、前記インターフェイスと前記データ入力及び前記制御入力とを接続するためのコネクタとを有し、
前記インターフェイスから前記コマンド、データもしくはアドレスを前記データ入力に前記制御信号を前記制御入力に与えて、前記データを前記メモリの前記アドレスに記憶させ又は前記メモリから前記アドレスのデータを前記インターフェイスへ出力させるアクセス装置。
【請求項１８】
データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、前記回路は、前記制御入力からの制御信号により、前記データ入力からデータ又はアドレスを入力して前記データ又は前記アドレスを前記メモリに与え、前記メモリ中の前記アドレスに前記データを記憶するとともに前記データ出力から出力し、若しくは前記メモリの前記アドレスのデータを前記データ出力から出力する外部記憶装置へのアクセス装置であって、
前記制御入力に前記制御信号を、前記データ入力にデータもしくはアドレスを与え、前記データ出力からのデータを入力するためのインターフェイスと、
前記外部記憶装置へ電力の供給をするとともに、前記インターフェイスと前記データ入力、前記データ出力及び前記制御入力とを接続するためのコネクタとを有し、
前記インターフェイスから前記データもしくはアドレスを前記データ入力に前記制御信号を前記制御入力に与えて、前記データを前記メモリの前記アドレスに記憶させ、又は前記メモリから前記アドレスのデータを前記データ出力から前記インターフェイスへ出力させるアクセス装置。
【請求項１９】
前記メモリの前記アドレスに記憶されるデータを入力して、そのデータが正確かを確かめる事を含む請求項１７ないし１８いずれか記載のアクセス装置。
【請求項２０】
前記アドレスの一部を前記外部記憶装置に保持されたアドレスの選択されたビットにセットして前記アドレスを前記回路から前記メモリに出力する事を特徴とする請求項１７ないし１９いずれか記載のアクセス装置。
【請求項２１】
前記コネクタを介して前記外部記憶装置への電力の供給を制御する事を特徴とする請求項１７ないし２０いずれか記載のアクセス装置。
【請求項２２】
前記インターフェイスが備えられたマイクロコントローラを含んで構成されている事を特徴とする請求項１７ないし２１いずれか記載のアクセス装置。
【請求項２３】
前記インターフェイスは、前記外部記憶装置を複数接続可能であり、前記コネクタは、前記インターフェイスと前記外部記憶装置複数とを接続するとともに前記外部記憶装置のデータ入力を共通に接続する事を特徴とする請求項１７ないし２２いずれか記載のアクセス装置。
【請求項２４】
前記メモリは連続的にデータを出力するモードを有し、前記インターフェイスから状態を変化させて前記メモリを前記モードで動作させる事を特徴とする請求項１７ないし２３いずれか記載のアクセス装置。
【請求項２５】
データを記憶するためのメモリと、データ入力、データ出力及び制御入力とを有し、前記制御入力からの制御信号により、前記データ入力からコマンドを入力し、前記メモリのデータを前記データ出力から出力する外部記憶装置へのアクセス装置であって、
前記制御入力に前記制御信号を、前記データ入力にコマンドを与え、前記データ出力からのデータを入力するためのインターフェイスと、
前記外部記憶装置へ電力の供給をするとともに、前記インターフェイスと前記データ入力、前記データ出力及び前記制御入力とを接続するためのコネクタとを有し、
前記インターフェイスから前記コマンドを前記データ入力に与えるとともに前記制御信号を前記制御入力に与え、前記メモリからデータを前記データ出力から前記インターフェイスへ出力させるアクセス装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＰＣ／ＡＴ若しくはそれと互換のパーソナルコンピュータのパラレルインターフェイス（または、これと同等のパラレル入出力コネクター）に接続して入出力を拡張する事が可能なＩ／Ｏ拡張装置と、この装置を応用した装置及びこの装置を応用した方法に関する。
【０００２】
【従来の技術】
パーソナルコンピュータの拡張を行うには、デスクトップマシンでは、通常本体に拡張ボードを挿入して行われる。ＰＣ／ＡＴ若しくはその互換機では、ＩＳＡバスといわれる規格に適合した拡張ボードをバススロットに挿入して拡張が行われる。ノートブックサイズの携帯用のパーソナルコンピュータでは、ドッキングステーションなどの拡張用のボックスを接続してデスクトップ用の拡張ボードを増設する事が可能になっている。
【０００３】
最近では、ＰＣＭＣＩＡ規格が規定され、この規格にあったＩＣカード（ＰＣカードと呼ばれる）をカードスロットに挿入する事によって拡張する事が可能な機種が販売されている。
【０００４】
【発明が解決しようとする課題】
デスクトップマシンのように、本体に拡張ボードを挿入して拡張するような場合、本体の筐体を開けなければならない。これは、煩わしい作業であり、コンピュータの知識のないものにとっては難しい作業である。
【０００５】
また、携帯用のパーソナルコンピュータでは、ドッキングステーションを接続したのではその携帯性という利点が大きく失われ、また、ドッキングステーションを購入するための余分な出費を強いられる。
【０００６】
ＰＣＭＣＩＡ規格のＩＣカードをカードスロットに挿入する拡張方法は、通常デスクトップのマシンではカードスロットをサポートしていないために新たな拡張を行うための拡張ボードなどを購入する事を強いられる。さらに、ＰＣＭＣＩＡ規格では、増設メモリー用のカードから発展してきたためかＩＣカードの大きさに制限がある。したがって、ＩＣカードによる増設では、拡張に制限がある。
【０００７】
【課題を解決するための手段】
そこで、本発明は、上記課題を解決するために、拡張ボードをバススロットに挿入することもＩＣカードを挿入する事にもよらない新たな入出力を拡張するためのＩ／Ｏ拡張装置と、この装置を応用した装置及び方法を提供する事をその目的とする。
【０００８】
また、本発明は、上記Ｉ／Ｏ拡張装置を用いて、ＩＣカードのように本体に挿入する事によって様々な用途に使え、かつ携帯性の良いパーソナルコンピュータを提供することをその目的とする。
【０００９】
本発明に係るＩ／Ｏ拡張装置は、データ入力と、データ出力と、制御入力とを有し、データ入力に与えられたデータを保持して出力するポート複数と、データ入力からポートへのデータ転送をするためのデータバスとを備え、制御入力に与えられた制御信号もしくはデータ入力に与えられたコマンドによりポートのうち一つを選択し、この選択されたポートにデータ入力からのデータを転送し、又は選択されたポートのデータをデータ出力から出力する。
【００１０】
ここで、本発明に係るＩ／Ｏ拡張装置は、データ出力にポートのうち選択された一つからデータを転送するための他のデータバスをさらに備える事を特徴としてもよい。
これによって、本発明に係るＩ／Ｏ拡張装置で、Ｉ／Ｏ拡張をし得る。
【００１１】
また、本発明に係る外部記憶装置は、データを記憶するためのメモリと、
データ入力及び制御入力を有する回路とを備え、この回路は、制御入力からの制御信号により、データ入力からコマンド、データ、アドレスのいずれかを入力し、コマンドに応じてデータ又はアドレスをメモリに与えてデータをメモリー中のアドレスに記憶しもしくはメモリのアドレスのデータを出力する。これにより大きなアドレスを有する。
【００１２】
ここで、この回路は、データ及びアドレスをメモリに与えるポート複数と、データ入力からポートへのデータ転送をするためのデータバスとを有し、コマンドによりポートの一つを選択してこの選択されたポートにデータ及びアドレスを保持してメモリに与える事を特徴としてもよい。
【００１３】
また、本発明に係る外部記憶装置は、データを記憶するためのメモリと、  データ入力、データ出力及び制御入力を有する回路とを備え、この回路は、制御入力からの制御信号により、データ入力からデータ又はアドレスを入力してデータ又はアドレスをメモリに与え、メモリ中のアドレスにデータを記憶し、もしくはメモリのアドレスのデータをデータ出力から出力する。これにより、上記に加え、入力と出力とを別にできる。
【００１４】
ここで、この回路は、データ及びアドレスをメモリに与えるポート複数と、データ入力からポートへのデータ転送をするためのデータバスとを有し、ポートの一つを選択してこの選択されたポートにデータ及びアドレスを保持してメモリに与え、又は選択されたポートのデータをデータ出力から出力する事を特徴としてもよい。
【００１５】
そして、データ出力にポートのうち選択された一つからデータを転送するための他のデータバスをさらに備える事を特徴としてもよい。
【００１６】
上記回路は、制御入力への制御信号のビット又はデータ入力から与えられたコマンドにより、ポートの選択と書き込み及び読み出しとを制御する事を特徴としてもよい。
【００１７】
また、上記ポートは、データバスのデータを保持するとともにメモリに与える複数のフリップロップと、メモリのデータをデータ出力に出力するバッファとを含んで構成されている事を特徴としてもよい。
【００１８】
さらに、メモリは、連続的にデータを出力するモードを有する事を特徴としてもよい。
これによって、本発明に係る上記外部記憶装置は、与えられたアドレスにデータを記憶し、もしくは与えられたアドレスのメモリ中のデータを出力し得る。
【００１９】
また、本発明に係るアクセス方法は、データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からコマンド、データ、アドレスのいずれかを入力し、コマンドに応じてデータ又はアドレスをメモリに与えてデータをメモリ中のアドレスに記憶しもしくはメモリのアドレスのデータを出力する外部記憶装置へのアクセス方法であり、第１のコマンドとアドレスとをデータ入力に与えて回路からメモリにアドレスを出力し、第２のコマンドとデータとをデータ入力に与えて回路からメモリにデータを出力してデータをメモリのアドレスに記憶させる。これにより大きなアドレスを有する。
【００２０】
また、本発明に係るアクセス方法は、データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からコマンド、データ、アドレスのいずれかを入力し、コマンドに応じてデータ又はアドレスをメモリに与えてデータをメモリ中のアドレスに記憶しもしくはメモリのアドレスのデータを出力する外部記憶装置へのアクセス方法であり、第１のコマンドとアドレスとをデータ入力に与えて回路からメモリにアドレスを出力し、第３のコマンドをデータ入力に与えてメモリからアドレスのデータを出力させる。
これらのアクセス方法により、与えられたコマンドに応じて、より大きな与えられたアドレスにデータを記憶し、もしくは与えられたアドレスのメモリ中のデータを出力させアクセスし得る。
【００２１】
また、本発明に係るアクセス方法は、データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からデータ又はアドレスを入力してデータ又はアドレスをメモリに与え、メモリ中のアドレスにデータを記憶するとともにデータ出力から出力し、もしくはメモリのアドレスのデータをデータ出力から出力する外部記憶装置へのアクセス方法であり、第１の制御信号を制御入力にアドレスをデータ入力に与えて回路からメモリにアドレスを出力し、第２の制御信号を制御入力にデータをデータ入力に与え、回路からメモリにデータを出力してデータをメモリのアドレスに記憶させる。これにより、上記に加え、入力と出力とを別にできる。
【００２２】
また、本発明に係るアクセス方法は、データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からデータ又はアドレスを入力してデータ又はアドレスをメモリに与え、メモリ中のアドレスにデータを記憶するとともにデータ出力から出力し、もしくはメモリのアドレスのデータをデータ出力から出力する外部記憶装置へのアクセス方法であり、第１の制御信号を制御入力にアドレスをデータ入力に与えて回路からメモリにアドレスを出力し、第３の制御信号を制御入力にデータをデータ入力に与え、回路からメモリのアドレスのデータをデータ出力から出力させる。
これらのアクセス方法により、データ入力から与えられたアドレスにデータを記憶し、もしくは与えられたアドレスのメモリ中のデータをデータ出力から出力させ、より大きなアドレスをアクセスし得る。
【００２３】
ここで、メモリのアドレスに記憶されるデータを外部記憶装置から入力して、そのデータが正確かを確かめる事を含むようにしてもよい。
【００２４】
さらに、アドレスの一部を外部記憶装置に保持されたアドレスの選択されたビットにセットしてアドレスを回路からメモリに出力する事を特徴としてもよい。
【００２５】
また、本発明に係るアクセス装置は、データを記憶するためのメモリと、データ入力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からコマンド、データ、アドレスのいずれかを入力し、コマンドに応じてデータ又はアドレスをメモリに与えてデータをメモリ中のアドレスに記憶しもしくはメモリのアドレスのデータを出力する外部記憶装置へのアクセス装置であり、制御入力に制御信号を、データ入力にコマンド、データもしくはアドレスを与えるためのインターフェイスと、外部記憶装置へ電力の供給をするとともに、インターフェイスとデータ入力及び制御入力とを接続するためのコネクタとを有し、インターフェイスからコマンド、データもしくはアドレスをデータ入力に制御信号を制御入力に与えて、データをメモリのアドレスに記憶させ又はメモリからアドレスのデータをインターフェイスへ出力させる。これにより大きなアドレスを有するアクセスが可能になる。
【００２６】
また、本発明に係るアクセス装置は、データを記憶するためのメモリと、データ入力、データ出力及び制御入力を有する回路とを備え、回路は、制御入力からの制御信号により、データ入力からデータ又はアドレスを入力してデータ又はアドレスをメモリに与え、メモリ中のアドレスにデータを記憶し、もしくはメモリのアドレスのデータをデータ出力から出力する外部記憶装置へのアクセス装置であり、制御入力に制御信号を、データ入力にデータもしくはアドレスを与え、データ出力からのデータを入力するためのインターフェイスと、外部記憶装置へ電力の供給をするとともに、インターフェイスとデータ入力、データ出力及び制御入力とを接続するためのコネクタとを有し、インターフェイスからデータもしくはアドレスをデータ入力に制御信号を制御入力に与えて、データをメモリのアドレスに記憶させ、又はメモリからアドレスのデータをデータ出力からインターフェイスへ出力させる。これにより、上記に加え、入力と出力とを別にできる。
【００２８】
ここで、メモリのアドレスに記憶されるデータを入力して、そのデータが正確かを確かめる事を含むようにしてもよい。
【００２９】
アドレスの一部を外部記憶装置に保持されたアドレスの選択されたビットにセットしてアドレスを回路からメモリに出力する事を特徴としてもよい。
【００３０】
コネクタを介して外部記憶装置への電力の供給を制御する事を特徴としてもよい。
【００３１】
インターフェイスが備えられたマイクロコントローラを含んで構成されている事を特徴としてもよい。
【００３２】
インターフェイスは、外部記憶装置を複数接続可能であり、コネクタは、インターフェイスと外部記憶装置複数とを接続するとともに外部記憶装置のデータ入力を共通に接続する事を特徴としてもよい。
【００３３】
メモリは連続的にデータを出力するモードを有し、インターフェイスから状態を変化させてメモリをモードで動作させる事を特徴としてもよい。
【００４３】
また、本発明に係るアクセス装置は、データを記憶するするためのメモリと、データ入力、データ出力及び制御入力とを有し、制御入力からの制御信号により、データ入力からコマンドを入力し、メモリのデータをデー夕出力から出力する外部記憶装置へのアクセス装置であって、制御入力に制御信号を、データ入力にコマンドを与え、データ出力からのデータを入力するためのインターフェイスと、外部記憶装置へ電力の供給をするとともに、インターフェイスとデータ入力、データ出力及び制御入力とを接続するためのコネクタとを有し、インターフェイスからコマンドをデータ入力に与えるとともに制御信号を制御入力に与え、メモリからデータをデータ出力からインターフェイスへ出力させる。これにより、メモリのデータをデータ出力からインターフェイスへ出力させ得る。
【００４５】
【実施例】
本発明は、ＰＣ／ＡＴ若しくはその互換機のパラレルインターフェイスを利用して拡張を可能にするものであるので、まず、そのパラレルインターフェイスについて説明する。
【００４６】
パラレルインターフェイスは、プリンターの接続に使われることからプリンターポートとも呼ばれ、ＩＢＭ社発行「Technical Refference Personal Computer AT 」に記載されている。図１は、パーソナルコンピュータ本体内部のパラレルインターフェイスの構成を示したものである。
【００４７】
パラレルインターフェイスには、25ピンのDSUBコネクター(メス)が通常使用され、コンピュータの外部の装置に８ビットパラレルデータの出力が可能になっている。このパラレルインターフェイスには、データレジスタ（Data Register ），ステータスレジスタ（Status Register ），コントロールレジスタ（Control Register）の３つのレジスタがあり、これらはパーソナルコンピュータのマザーボードのインターフェイス（PC Interface ）であるＩＳＡバスに接続され、図示せぬＣＰＵ からアクセスできるようになっている。データレジスタ及びコントロールレジスタは、ＣＰＵ から書き込み・読みだしの両方が可能であり、ステータスレジスタは読みだしだけが可能になっている。
【００４８】
データレジスタの状態は、DSUBコネクターのピン２からピン９に出力され、この信号はＤ０からＤ７という名前がつけられている。コントロールレジスタのビット０からビット３の状態は、DSUBコネクターのピン１，１４，１６，１７にビット２を除いて反転されて出力される。これらの信号はＳＴＢ，ＡＬＦ，ＩＮＩ，ＤＳＬという名前がつけられ、残りのビット４から７についてはリザーブされるている。ステータスレジスタのビット３から７は、DSUBコネクターのピン１５，１３，１２，１０，１１の状態を示し、ビット７は反転された状態を示す。これらの信号は／ＦＥＨ，ＯＦＯＮ，ＰＡＰ，／ＡＣＫ，ＢＳＹという名前がつけられ、残りのビット４から７についてはリザーブされるている。また、ビット６（DSUBコネクターのピン１０、信号／ＡＣＫ）の状態をＬにすることによってＩＲＱ５又は７の割り込みを行う事が可能であり、これはコントロールレジスタのビット４によって割り込みの許可・不許可を制御する事ができる。この制御をするための回路（IRQ Logic ）が設けられている。
【００４９】
データレジスタのアドレスは、378H，278H，3BCH（Hは16進数であることを示す)いずれかに設定され、ステータスレジスタはデータレジスタのアドレスに１加えた値であり、コントロールレジスタのアドレスはデータレジスタのアドレスに２加えた値になっている。これらのアドレスをＣＰＵから指定する事によって上記レジスタのいずれかにアクセスする事ができるようになっている。図のアドレスデコードコントロール回路（Address Decode Control）はＣＰＵから出力されたアドレス（A0-A9）及びリードライト制御信号（IOR,IOW）から上記各レジスタの入出力制御を行う回路である。
【００５０】
ＰＣ／ＡＴでは、データレジスタに８ビットのデータを書き込んでコンピュータから外部の装置に８ビット並列のデータを出力する事ができる。しかし、この書き込んだデータをデータレジスタから読み取れるに過ぎないので、８ビット双方向の伝送はできない。ＰＣ／ＡＴ互換機の一部及びＰＳ／２では、データレジスタを用いて８ビット双方向の伝送が可能にはなっているが、どのＰＣ／ＡＴまたはその互換機でもパラレルインターフェイスから外部からデータを入力できるのは、ステータスレジスタに限られている。
【００５１】
本発明のＩ／Ｏ拡張装置は、上述のような事情に鑑み、どのＰＣ／ＡＴ若しくはその互換機でもパラレルインターフェイスに接続し入出力を拡張する事を可能にしようとするものである。
【００５２】
図２は、本発明のＩ／Ｏ拡張装置の構成例を示したものである。
【００５３】
このＩ／Ｏ拡張装置は、パーソナルコンピュータ本体のパラレルインターフェイスに接続するためのコネクターＣＮ１（カードエッジコネクターを含む。以下同じ）と、４ビットのデータ入出力ポート（PORT4,PORT5,..PORTn ）を複数持つＩ／Ｏ拡張回路１００とを有する。
【００５４】
コネクターＣＮ１のピン２〜９（データレジスタからの信号ラインD0〜D7）のうち４本は、Ｉ／Ｏ拡張回路１００のデータ入力DIN に接続される。Ｉ／Ｏ拡張回路１００は、このデータ入力DIN からコネクターＣＮ１を介してパーソナルコンピュータ本体のデータレジスタからの４ビット並列の信号を入力するようになっている。ただし、パリティを含む場合は、Ｉ／Ｏ拡張回路のデータ入力DIN は、５ビットであり、信号ラインD0〜D7のうち５ビットが接続される。
【００５５】
コネクターＣＮ１のピン１１〜１３，１５（ステータスレジスタへの信号ライン/FEH，BSY ，PAP ，ONOF）は、Ｉ／Ｏ拡張回路１００の４ビットのデータ出力DOUTに接続される。Ｉ／Ｏ拡張回路１００は、このデータ出力DOUTからコネクターＣＮ１のピンを介してパーソナルコンピュータ本体のステータスレジスタに４ビット並列の信号を出力するようになっている。ただし、パーソナルコンピュータ本体にハードウェア割り込み信号を与える場合または４ビット並列信号のパリティを含む場合は、データ出力DOUTのもう一つの出力が、信号ライン/ACKに接続され、コネクターＣＮ１のピン10を介してステータスレジスタのビット６に与えられるようになっている。割り込みはアクティブローである。
【００５６】
コネクターＣＮ１のピン１，１４，１６，１７（コントロールレジスタからの信号ライン/STB，/ALF，/INI，/DSL）のうち必要なものが、Ｉ／Ｏ拡張回路１００の制御入力CTRLに接続される。そのうち１本は、Ｉ／Ｏ拡張回路１００のストローブ端子PROGに接続される。このストローブPROGが初期状態から遷移すると、Ｉ／Ｏ拡張回路１００はデータ入力DIN からのコマンドを入力する。このコマンドによって、ポート４〜ｎのいずれかが選択されるとともに選択されたポートが書き込み又は読みだしモードに設定される。そして、読みだしモードの場合、選択されたポートの各端子の状態がデータ出力DOUTに出力される。書き込みモードの場合、選択されたポートに書き込むデータをデータ入力DIN に与えてストローブPROGが初期状態に戻るように遷移すると、選択されたポートの各端子に書き込むデータが出力される。
【００５７】
また、コントロールレジスタからの信号ライン/STB，/ALF，/INI，/DSLの他の一つは、４ビットのデータ入力DIN への信号を有効か無効かを制御するための端子/EN に接続される。４ビットのデータ入力DIN に与えられた信号が有効であるためには、少なくとも端子/EN によって有効なるように制御されなければならない。
【００５８】
この図２では、コントロールレジスタのビット０，１，３の状態によってＩＯ拡張回路１００の動作が制御され、ビット２の状態によってストローブPROGを制御するようになっている。
【００５９】
なお、コネクターＣＮ１のピン２〜９（データレジスタからの信号ラインD0〜D7）の残りは、Ｉ／Ｏ拡張回路１００への電源供給ラインや必要に応じてＩ／Ｏ拡張回路１００の制御入力CTRLに接続され、電源の供給や回路の制御に用いられる。
【００６０】
図３は、本発明のＩ／Ｏ拡張装置の具体的な回路例を示したものである。このＩ／Ｏ拡張装置は、現状で手に入り易いＩＣ（４ビットバスバッファU1A ，U1B ，ＩＯエキスパンダU3，U4）を用い、これらを双方向の４ビットバスで接続したもっとも簡単な構成例の一つである。また、図３は、ＩＯ拡張回路１００のポートPA1〜PA7，PB1〜PB7を介してメモリーＩＣ２８を接続する事によって簡単な外部記憶装置としての応用例も示している。
【００６１】
表１は、パラレルインターフェイスの各レジスタ，コネクターＣＮ１と図のＩ／Ｏ拡張回路との接続関係をまとめたものである。表の右側からパラレルインターフェイスの各レジスタ(register name,bit No.）と信号名（signal name ），コネクターＣＮ１のピン番号（pin No. ），信号の方向（Destination ），バスバッファU1A ，U1B,ＩＯエキスパンダU3及びU4などとの接続（Connection）を示している。なお、"-->"はコンピュータ本体から図のＩ／Ｏ拡張装置への出力を示し、"<--"は図のＩ／Ｏ拡張装置からコンピュータ本体への入力を示している。
【００６２】
0004341043.tif 000002
４ビットバスバッファU1A の入力1Aから4Aは、Ｉ／Ｏ拡張回路１００のデータ入力DIN をなす。これらは、パラレルインターフェイス接続用のコネクターＣＮ１のピン２から５が接続され、データレジスタの下位４ビットの信号D0からD3が与えられている。バスバッファU1A のゲート制御端子/EN は、Ｉ／Ｏ拡張回路１００のデータ入力DIN への信号を有効か無効かを制御するための端子をなす。この端子には、コネクターＣＮ１のピン１７が接続され、コントロールレジスタのビット３の信号DSL が与えられている。そして、コントロールレジスタのビット３の状態が"１"のとき（ピン１７は"Ｌ"）にのみ、信号D0からD3がバスバッファU1A 及び４ビットバスを介してＩＯエキスパンダU3及びU4のポートP20 からP23 に与えられるようになっている。
【００６３】
４ビットバスバッファU1B の出力1Yから4Yは、Ｉ／Ｏ拡張回路１００の４ビットのデータ出力DOUTをなす。これらは、コネクターＣＮ１のピン１５，１３，１２，１１（信号/FEH，OFON，PAP ，/BSY）が接続され、バスバッファU1A を介してＩＯエキスパンダU3及びU4のポート（P20 からP23 ）の状態がパーソナルコンピュータ本体のステータスレジスタのビット３，４，５，７に与えられるようになっている。また、コネクターＣＮ１のピン１０（信号/ACK）は、外部からの割り込み入力（/INT）が接続され、この割り込み入力（/INT）の状態がステータスレジスタのビット６に与えるようになっている。割り込み信号（/INT）はアクティブローである。
【００６４】
バスバッファU1A のゲート制御端子/EN ，ＩＯエキスパンダU3及びU4の端子CS，端子PROGは、Ｉ／Ｏ拡張回路１００の制御入力CTRLをなす。ＩＯエキスパンダの各端子及びコマンドなどについてはインテル社や互換チップメーカー発行のユーザーズマニュアルに記載されている通りである。
【００６５】
ＩＯエキスパンダU3及びU4の端子/CS ，端子PROGはコネクターＣＮ１のピン１，１４，１６は、コントロールレジスタのビット０，１，２（信号STB ，ALF ，/INI）が接続されている。ＩＯエキスパンダU3及びU4の端子/CS は、チップセレクト入力であり、この端子が"Ｈ"のときは出力又は内部ステータスの変更は一切出来ない。この端子も、Ｉ／Ｏ拡張回路１００の動作を制御するものであり、データ入力DIN への信号を有効か無効かを制御するための端子をなすといえる。ピン１（コントロールレジスタのビット０）が"Ｌ"のときはＩＯエキスパンダU3が選択され、ピン１が"Ｌ"のとき（コントロールレジスタのビット０が"１"）はＩＯエキスパンダU3が選択され、ピン１４が"Ｌ"のとき（コントロールレジスタのビット１が"１"）はＩＯエキスパンダU4が選択される。
【００６６】
ＩＯエキスパンダU3及びU4の端子PROGは、Ｉ／Ｏ拡張回路１００のストローブ端子PROGをなす。端子/CS 及び端子/EN を"Ｌ"にしてストローブPROGを"Ｈ"から"Ｌ"にすると、データ入力DIN からのコマンドをフェッチする。このコマンドの上位２ビットがＩＯエキスパンダのポートの選択（表３）、下位２ビットが選択されたポートのモード設定となっている。
【００６７】
コントロールレジスタのビット０，１，２の状態によってＩＯエキスパンダU3及びU4の動作が制御され、ビット４の状態によってストローブ端子PROGを制御するようになっている。
【００６８】
0004341043.tif 000003
【００６９】
例えば、コマンドが"20H "のとき、ポート６（P60 〜P63 ）が選択され、このポート６は読みだし（READ）モードになる。ポート６の状態がバスバッファU1B の出力1Yから4Yに出力され、パーソナルコンピュータ本体のステータスレジスタに与えられる。また、コマンドが"01H "のとき、ポート４（P40 〜P43 ）が選択され、このポート４は書き込み（WRITE ）モードになる。そして、選択されたポートに書き込むデータをバスバッファU1A の入力1Aから4Aに与えてストローブPROGを"Ｌ"から"Ｈ"に戻すと、書き込むデータがポート４の各端子に出力される。
【００７０】
コネクターＣＮ１のピン６から９を、ショットキーバリアダイオードCR1 ないしCR4 を介しての電源ライン（+5V ）に接続されている。このＩ／Ｏ拡張装置には、外部から電源を供給する事もできるが、消費電力を小さくしていることからパーソナルコンピュータ本体から電源の供給及びその制御ができるようになっている。電源の供給は、データレジスタの上位４ビットD4からD7を"１"にしてピン６から９を"Ｈ"にすることにより行われる。そして、"Ｌ"にすることにより電源の供給を停止できる。電源ライン（+5V ）とグランドラインとの間には、コンデンサC1を接続してリプルを抑えるようにしている。
【００７１】
また、電源ライン（+5V ）とグランドラインとの間には、電源監視回路が接続されている。この電源監視回路は、電源ライン（+5V ）の電圧が良好であるかどうかを監視するための回路であり、図のように、電源リセットＩＣ(U2)，トランジスタTR1 ，抵抗R1，発光ダイオードCR5 で構成する事が可能である。図の電源監視回路では、電源ライン（+5V ）の電圧が電源リセットＩＣ(U2)で決められた電圧以上になっているときに発光ダイオードCR5 を点灯して良好な電圧である事を示すようになっている。これらの回路で電源回路部１２０をなしている。
【００７２】
ＩＯエキスパンダU3及びU4のポートP40〜P43，P50〜P53，P60〜P63，P70〜P73は、それぞれＩ／Ｏ拡張回路１００の入出力ポートをなす。ここでは、これらに便宜上符号PA4，PA4，PA5，PA6，PA7，PB4，PB5，PB6，PB7を用いている。所望のポートに出力する場合のパーソナルコンピュータ本体側のアルゴリズムは表４のようにＩ／Ｏ拡張回路１００の制御入力の信号をコントロールして実現しうる。
【００７３】
0004341043.tif 000004
また、ＩＯエキスパンダU3及びU4の所望のポートから入力する場合、パーソナルコンピュータ本体側のアルゴリズムは表５のようにしてＩ／Ｏ拡張回路１００の制御入力の信号をコントロールして実現しうる。
【００７４】
0004341043.tif 000005
【００７５】
図３の回路構成の場合、ポートへの出力は次のようにして行う事ができる。まず、コントロールレジスタの上位４ビットを"0111"にし、ビット３に０を、ビット２に１を、U3の場合はビット０に、U4の場合はビット１に１をセットする（表４状態０）。データレジスタの上位４ビットを"1111"にしたまま、下位４ビットに所望のポートへの書き込みコマンドをセットする（表４状態１）。そして、コントロールレジスタのビット２に０をセットする（表４状態２）。データレジスタの上位４ビットを"1111"にしたまま下位４ビットに書き込みデータをセットする（表４状態３）。コントロールレジスタのビット２に１をセットする（表４状態４）。
【００７６】
これはアセンブラーやＣ言語等のコンピュータ言語を用いて実現できる。アセンブラで表せば次のようになる（ただし、変数portは表２に応じた0Hから3Hまでの値、変数chipはU3又はU4に応じた0H又は1Hのいずれかの値、変数prt_portはパラレルインターフェイスのアドレスである)。
【００７７】
MOVE  AL, chip
OR    AL, ECH
OUT   (prt_port+2), AL
MOVE  AL, port
OR    AL, F4H
OUT   prt_port, AL
MOVE  AL, chip
OR    AL, E8H
OUT   (prt_port+2), AL
MOVE  AL, write_data
OR    AL, F0H
OUT   prt_port, AL
MOVE  AL, chip
OR    AL, ECH
OUT   (prt_port+2), AL
【００７８】
図３の回路構成の場合、ポートからの入力は次のようにして行う事ができる。コントロールレジスタの上位４ビットを"0111"にし、ビット３に０を、ビット２に１を、U3の場合はビット０に、U4の場合はビット１に１をセットする（表５状態０）。データレジスタの上位４ビットを"1111"にしたまま、下位４ビットに所望のポートへの読み込みコマンドをセットする（表５状態１）。そして、コントロールレジスタのビット２に０をセットする（表５状態２）。コントロールレジスタのビット３に１をセットする（表５状態３）。ステータスレジスタの状態を読み取り保存する（表５状態４）。コントロールレジスタのビット３に０を、ビット２に１をセットする（表５状態５）。
【００７９】
これもアセンブラーやＣ言語等のコンピュータ言語を用いて実現できる。アセンブラで表せば次のようになる（ただし、読み取ったポートからのデータはALレジスタに保持される)。
【００８０】
MOVE  AL, chip
OR    AL, ECH
OUT   (prt_port+2), AL
MOVE  AL, port
OR    AL, F0H
OUT   prt_port, AL
MOVE  AL, chip
OR    AL, E8H
OUT   (prt_port+2), AL
MOVE  AL, chip
OR    AL, E8H
OUT   (prt_port+2), AL
MOVE  AL, chip
OR    AL, E0H
OUT   (prt_port+2), AL
IN    AL, (prt_port+1)
MOVE  BL, AL
MOVE  AL, chip
OR    AL, ECH
OUT   (prt_port+2), AL
SHR   BL, 3
AND   BL, 07H
NOT   AL
SHR   AL, 4
AND   AL, 08H
OR    AL, BL
【００８１】
このように、本発明のＩ／Ｏ拡張装置では、コントロールレジスタからの制御により、ストローブPROGを初期状態から遷移させて、データ入力DIN からコマンドを入力して所望のポートを書き込み又は読みだしモードにする。そして、読みだしモードの場合、選択されたポートの状態をデータ出力DOUTに出力させることができる。書き込みモードの場合、データ入力DIN に与えたデータを選択されたポートに出力することができる。すなわち、ワンチップマイクロコントローラのように、パラレルインターフェイスがあればどのパーソナルコンピュータでも、Ｉ／Ｏ拡張回路１００の多数あるポートのうち所望のものへアクセスする事を可能にすることができるようになる。
【００８２】
こうして、パラレルインターフェイスを介してパーソナルコンピュータの入出力端子を増加させ、入出力の拡張を実現する事ができる。Ｉ／Ｏ拡張装置のポートにリレーなどを接続してシーケンス制御に用いうる事はもとより、様々なハードウェアを接続し動作させる事もできる。
【００８３】
図３は、メモリーＩＣ２８を用いたストレージデバイスの具体的な構成例であり、メモリーＩＣ２８としては、ＤＲＡＭ，ＳＲＡＭ，ＥＥＰＲＯＭ，フラッシュメモリー，強誘電体メモリーなどを用いることができる。上述したポートにアクセスするためのアルゴリズムを用いて、書き込み・読みだしの動作をエミュレートする事によってメモリーＩＣ２８の書き込み及び読みだしを実現している。
【００８４】
ＩＯエキスパンダU4のポートP41-P43には、スイッチSW1〜SW3が接続され、このポートからスイッチの状態を読みだす事によって接続されたメモリーの識別が出来るようになっている。スイッチSW1 は、メモリーＩＣ２８の書き込み制御の為の端子/WE に接続され、このスイッチによって書き込み禁止にできるようになっている。また、スイッチSW2 はメモリーが接続されているかを識別するためのものである。スイッチSW3 は、そのアクセスがＤＲＡＭタイプかＳＲＡＭタイプかを識別するためのものである。図４は、ＩＯ拡張回路１００のポートPA4 の各ビットの状態とメモリーの識別の関係を例示したものである。この例では、メモリーの書き込みができるかどうか(BIT3)、メモリーのアクセスシーケンスがSRAMかDRAMか(BIT2)、メモリーが接続されているかどうか(BIT1)が判別できるようになっている。
【００８５】
図５及び図６に示す流れ図は、パーソナルコンピュータのデータレジスタ及びコントロールレジスタにデータを書き込み、ステータスレジスタから読み込むという上述したポートへのアクセスによってデータの読み込み・書き込みを１バイトづつ行う場合の例であり、図３の回路においてメモリーＩＣ２８にＳＲＡＭまたはＥＥＰＲＯＭを用いた場合の例である。メモリーＩＣ２８のアドレス入力のための端子A0〜A14 、データ入出力のための端子Q0〜Q7、コントロールのための端子/CS ，/OE ，/WE はＩＯエキスパンダU3及びU4の各ポートに接続されている。
【００８６】
データの読み込みの動作は次のようにして実現できる。メモリーのデータ端子Q0〜Q7に接続されたＩＯエキスパンダU4のポートP60-P63，P70-P73を読み込みモードにし、メモリーの制御のための端子/CS,/OE,/WE に接続されたＩＯエキスパンダU4のポートP5に"1101"を書き込み、P50,P52に"1",P51に"0"をセットする。端子/CS ，/OE は"Ｈ"状態になり、端子/WE は"Ｌ"状態になる。つぎに、メモリーのアドレス端子A0〜A13に接続されたＩＯエキスパンダU3のポートP40-P43,P50-P53,P60-P63,P70-P73 に書き込むアドレスをセットする。そのアドレスが端子A0〜A14 に与えられる。そして、ＩＯエキスパンダU4のポートP5に"1100"を書き込み、P50に"0"をセットする。端子/CS は"Ｌ"状態になり、メモリーＩＣ２８にアドレスがフェッチされる。メモリーＩＣ２８内のそのアドレスのデータが端子Q0〜Q7に出力される。この出力されたデータをＩＯエキスパンダU4のポートP60-P63，P70-P73から読み込む。そして、ＩＯエキスパンダU4のポートP5に"1101"，"1111"を順次書き込み、P50,P52に"1"をセットして端子/CS ，/OE ，/WE を初期状態の"Ｈ"状態にする。
【００８７】
書き込み動作は次のようにして実現できる。ＩＯエキスパンダU3，U4の各ポートを書き込みモードにし、ＩＯエキスパンダU3のポートP40-P43,P50-P53,P60-P63,P70-P73 にアドレスをセットする。また、ＩＯエキスパンダU4のポートP60-P63，P70-P73にデータをセットする。これらはいずれを先に行っても同じである。つぎに、ＩＯエキスパンダU4のポートP5に"1110"を書き込み、P50に"0" をセットする。端子/WEは"Ｌ"状態になる。ＩＯエキスパンダU4のポートP5に"1010"を書き込み、P52に"0"をセットする。端子/CS は"Ｌ"状態になり、メモリーＩＣ２８にアドレスがフェッチされる。そして、ＩＯエキスパンダU4のポートP5に"1110"を書き込み、P52に"1"をセットする。端子/CS は"Ｈ"状態になる。ＩＯエキスパンダU4のポートP60-P63，P70-P73にセットされたデータがメモリーＩＣ２８のそのアドレスにフェッチされる。ＩＯエキスパンダU4のポートP5に"1111"を書き込み、P50に"1"をセットして端子/CS ，/OE ，/WE を初期状態の"Ｈ"状態にする。なお、メモリーＩＣ２８にＥＥＰＲＯＭを用いた場合、次のアクセスまで一定時間のインターバルを明けておく。
【００８８】
連続してアクセスする場合、ＩＯエキスパンダU3のポートP40-P43,P50-P53,P60-P63,P70-P73 にセットするのは、アドレスのうち変更がある部分のみでよい。例えば、アドレス0Hに書き込みを行った後に、アドレス1Hにアクセスする場合、ポートPA7 に"0001"をセットするだけでよい。また、バーストモードをサポートするメモリーでは、端子/CS を変化させる事によってより高速に読みだす事ができる。
【００８９】
図７は、メモリーＩＣ２８にＤＲＡＭまたはこれと同じ動作でアクセスするメモリー（例えば、フラッシュメモリーなど）を用いた場合の例であり、図８及び図９に示す流れ図は、図７の回路においてデータの読み込み・書き込みを行う場合の例である。
【００９０】
読み込み動作は次のようにして行うことができる。まず、メモリーの制御のための端子/RAS,/WE,/CAS に接続されたＩＯエキスパンダU4のポートP5に"1111"を書き込む。メモリーの端子/RAS,/WE,/CASは"Ｈ"状態になる。そして、メモリーのアドレス端子A0〜A9に接続されたＩＯエキスパンダU3のポートP50-P53,P60-P63,P70-P73に上位アドレスをセットする。ＩＯエキスパンダU4のポートP5に"0111"を書き込む。端子/RASは"Ｌ"状態になり、セットした上位アドレスがメモリーにとり込まれる。つぎに、ＩＯエキスパンダU3のポートP50-P53,P60-P63,P70-P73に下位アドレスをセットする。そして、ＩＯエキスパンダU4のポートP5に"0110"を書き込む。端子/CASは"Ｌ"状態になり、セットした下位アドレスがメモリーにとり込まれる。上位アドレス及び下位アドレスで指定されたアドレスのデータがメモリーから出力される。そして、このデータをメモリーのデータ端子Q0〜Q3に接続されたＩＯエキスパンダU4のポートP60-P63,P70-P73 からを読み込む。ＩＯエキスパンダU4のポートP5に"1111"を書き込んで初期状態に戻して読み込みを終了する。
【００９１】
ページモードまたはニブルモードで連続してデータの読み込みを行う場合、図８に示すように、ＩＯエキスパンダU4のP5に"0111"を書き込み、端子/CASを"Ｈ"状態に戻した後、下位アドレスのセット及びデータの読み込みを繰り返す。
【００９２】
書き込み動作は次のようにして行うことができる。まず、ＩＯエキスパンダU4のポートP5に"1111"を書き込む。そして、ＩＯエキスパンダU3のポートP50-P53,P60-P63,P70-P73に上位アドレスをセットする。ＩＯエキスパンダU4のポートP5に"0111"を書き込む。ＩＯエキスパンダU4のポートP60-P63,P70-P73にデータをセットする。ＩＯエキスパンダU4のポートP5に"0011"を書き込む。端子/WEは"Ｌ"状態になり、書き込みモードになる。ＩＯエキスパンダU3のポートP50-P53,P60-P63,P70-P73に下位アドレスをセットする。ＩＯエキスパンダU4のポートP5に"0010"を書き込む。ＩＯエキスパンダU4のポートP5に"0110"を書き込む。これによって、セットしたデータがメモリーにとり込まれる。ＩＯエキスパンダU4のポートP5に"1111"を書き込んで初期状態に戻して書き込み終了する。
【００９３】
上述のように、  本発明のＩ／Ｏ拡張装置によってメモリーを接続しこれを読み書きする事ができ、パラレルインターフェイスに接続するストレージデバイスを実現する事ができる。また、メモリーだけでなく、ほかのインターフェイスチップを接続し各ポートの状態を制御することによって動作させることも可能である。さらに、種類の違うもの複数を接続する事も可能である。図３の装置において、ＩＯエキスパンダU4のポートP40 については、他のチップが接続されているかどうかの識別などに用いることができる。
【００９４】
なお、データのビット幅が８ビットの場合を示したが、例えば、図７においてＤＲＡＭ２を削除したり、メモリーを増やしたりして、ビット幅を４ビットや１６ビットにするようにしてもよい。また、ＲＡＭとＲＯＭを混在させるようにもする事もできる。このような場合を識別するために、メモリーの最初の所定の範囲をヘッダ領域とし、このヘッダ領域にビット幅、メモリーの書替えが可能か、トータルメモリーサイズ、ＲＡＭ領域の範囲、ＲＯＭ領域の範囲などの識別のためのデータを書き込む事によって、汎用性のあるものにできる。
【００９５】
このように、本発明のＩ／Ｏ拡張装置によってハードウェアをエミュレーションすることにより、メモリーやディスク装置などのストレージデバイス、ＳＣＳＩインターフェイスやＧＰＩＢインターフェイスを実現することができ、イーサネットなどのネットワークアダプタ、Ａ／Ｄ変換器、Ｄ／Ａ変換器など、様々なハードウェアを接続し、パーソナルコンピュータ本体から制御する事によって、これらを動作させる事ができる。これらのハードウェアを種類の違うもの複数を接続する事も可能であり、レキシブルなＩ／Ｏ拡張を実現することができる。
【００９６】
図１０は、本発明のＩ／Ｏ拡張装置の他の構成例を示したものであり、Ｉ／Ｏ拡張回路１００に３つのＩＯエキスパンダU3〜U5を用い、より多くのデータ入出力ポートPA4〜PA7,PB4〜PB7,PC4〜PC7を持つようにしたものである。
【００９７】
コネクターＣＮ１のピン１，１４は、デコーダU11 に与えられ、このデコーダU11 の出力はＩＯエキスパンダU3〜U5の端子/CS を接続されている。表６に示すように、コントロールレジスタのビット０，１の状態によってＩＯエキスパンダU3,U4,U5のいずれかが選択されるようになっている。
【００９８】
0004341043.tif 000006
【００９９】
また、ポートPC6,PC7 には、各ポートごとに論理和をとるとともにポートPC6,PC7 への信号全ての論理和をとるためのＡＮＤゲートU12,U13,U14 が接続されている。ＡＮＤゲートU12 の出力はアクティブローの割り込み信号（/INT）としてステータスレジスタのビット６(/ACK)に与えられている。ポートPC6,PC7 を入力用として用いる場合、ポートPC6,PC7 からの入力によってパーソナルコンピュータ本体にハードウェア割り込みをかける事ができるようになっている。そして、割り込みがあったときに、ポートの状態を読みだす事によりどの端子から入力があったかを調べる事ができる。ポートPC6,PC7 からの入力に応じた処理を実行する事ができる。
【０１００】
また、ＡＮＤゲートU13,U14 の出力はポートPC43，PC42に接続され、ハードウェア割り込みがあったときにポートPC4 の状態を読みだし、ビット3及び4の状態をチェックすることにより、いずれのポートPC6,PC7 から入力されたかを知る事ができるようになっている。特に入力端子が多い場合、このようにすることにより、よりスピーディに入力があった端子PC60〜PC63，PC70〜PC73を知る事ができるので、ポートPC6,PC7 からの入力に応じた処理をより早く起動する事ができる。
【０１０１】
これ以外の部分については、図３と同じである。したがって、図３の場合と同様の次の動作でアクセスできる。コントロールレジスタからの制御により、ストローブPROGを初期状態から遷移させて、データレジスタにセットしたコマンドをデータ入力DIN から入力して所望のポートを書き込み又は読みだしモードにする。そして、読みだしモードの場合、選択されたポートの状態をデータ出力DOUTに出力させステータスレジスタから読み取ることができる。書き込みモードの場合、データ入力DIN に与えたデータを選択されたポートに出力することができる。
【０１０２】
図１０では、データレジスタの出力である端子D4〜D7に接続する回路については省略してある。この部分には、消費電力が小さい場合、図３と同様の電源回路を構成する事ができる。また、D4〜D7にデコーダを新たに接続し、この新たなデコーダの出力及び４ビットバスにさらにＩＯエキスパンダを接続する事によって、さらにＩ／Ｏ拡張をする事ができる。
【０１０３】
図１１は、Ｉ／Ｏ拡張回路１００の他の構成例を示したものである。図３及び１０の回路は双方向の４ビットバスを用いたものであるのに対し、この図１１の回路は、データ入力DIN からの４ビットデータを所望のポート(P4,P5,P6,P7...)に伝送する４ビットライトバス(4bit write BUS)と、選択されたポート(P4,P5,P6,P7...)からの４ビットデータをデータ出力DOUTに伝送する４ビットリードバス(4bit read BUS)とを用いて構成されている。これら２つの単方向の４ビットデータバスを用いた点に特徴がある。この回路は、通常のロジック回路を用いて構成することができ、ワンチップ化する事も可能なものである。
【０１０４】
このＩ／Ｏ拡張回路１００の４ビットの各ポートには、ＤフリップフロップL4，L5，L6，L6，L7..及び入出力バッファB4，B5，B6，B6，B7..が接続されている。ＤフリップフロップL4〜L7..は、４ビットライトバス(4bit write BUS)を通ったデータ入力DIN からの４ビットデータD0〜D3を保持するためのものである。入出力バッファB4〜B7..は、制御回路MUX からの制御により、ＤフリップフロップL4〜L7..に保持された４ビットデータを各ポートに出力し、若しくは外部から各ポートに与えられた信号を４ビットリードバスに与えるための回路である。
【０１０５】
制御回路MUX は、信号PROGが"Ｈ"状態から"Ｌ"状態に遷移するときに、データ入力DIN からの４ビットのコマンドをフェッチし、このコマンドに応じて選択されたポートを書き込み又は読みだしモードに設定する。そして、コマンドによって選択されたポートの状態を入出力バッファを介してデータ出力DOUTに出力させる。書き込みモードの場合、選択されたポートに書き込むデータをデータ入力DIN に与えてストローブPROGが"Ｈ"状態に戻るように遷移すると、ＤフリップフロップL4〜L7..のうちコマンドによって選択されたものに書き込むデータD0〜D3をフェッチさせ、入出力バッファB4〜B7..から選択されたポートの各端子に出力させる。読みだしモードの場合、上記書き込みモードの動作はなく、選択されたポートの状態がデータ出力DOUTに出力させるだけである。
【０１０６】
制御回路MUX のコマンドとしては、表２，３に示したものを用いる事もできるが、"ANLD"，"ORLD"の二つのモードはかならすしも使用されない事から、表７及び８に示すコマンドにし、８つのポートを選択するようにする事もできる。
【０１０７】
0004341043.tif 000007
【０１０８】
図１２は、表７及び８に示すコマンドを用いた場合の制御回路MUX の構成例である。この図１２の回路は、ＤフリップフロップFF0〜FF3，デコーダDEC ，ラッチLL10〜LL17という標準ロジックを用いて構成されている。
【０１０９】
ＤフリップフロップFF0〜FF3は、信号PROGが"Ｈ"状態から"Ｌ"状態に遷移するときに、データ入力DIN からの４ビットのコマンドをフェッチし、デコーダDEC にあたえる。デコーダDEC は、フェッチされたコマンドの下位３ビットからそれに応じたポートのＤフリップフロップL4 〜L11及び入出力バッファB4 〜B11に制御信号を出力する。このとき入出力バッファB4 〜B11のうち選択された入出力バッファからそのポートの状態をデータ出力DOUTに出力させる。ラッチLL10〜LL17は、ポートごとに設けられ、そのモードが"READ"か"WRITE"を保持するためのものである。ＤフリップフロップFF3は、コマンドが"READ"か"WRITE"かを保持するためのものであり、このレジスターの状態は、信号PROGが"Ｈ"状態に戻るときに、選択されたポートに対応するラッチLL10〜LL17に保持される。書き込み"WRITE "モードが保持されると、該当する入出力バッファB4 〜B11は、ＤフリップフロップL4 〜L11のうちコマンドによって選択されたものの状態をそのポートに出力する。
【０１１０】
このＩ／Ｏ拡張回路１００は、４ビットバスが単方向であることから、４ビットデータの方向を切り換える必要がなくなる。そのため、この回路を用いて本発明のＩ／Ｏ拡張装置を構成することにより、より高速動作を実現する事ができる。
【０１１１】
図１３は、本発明のＩ／Ｏ拡張装置について、さらに他の構成例を示したものである。このＩ／Ｏ拡張装置も、コネクターＣＮ１（これがカードエッジコネクターである場合も含む）とＩ／Ｏ拡張回路１００とで構成され、上述した実施例と同様の構成を持つ電源電圧監視回路１２０を有している。この図１３の実施例では、Ｉ／Ｏ拡張回路１００をＩＯエキスパンダにかえて基本的なロジックを用いて構成したものであり、ワンチップ化する事も可能なものである。そして、次のような構成になっている。
【０１１２】
Ｉ／Ｏ拡張回路１００は、４ビットライトバス(4bit write BUS)と、４ビットリードバス(4bit read BUS) とを有し、これら２つの単方向の４ビットデータバスを用いた点に特徴がある。４ビットライトバスは、バッファU1A を介してそのデータ入力DIN からの４ビットデータが与えられ、後述するように入出力回路１０１〜１０８のうち一つを介して所望のポート(PA4,PA5...PA7,PA4..PA7)に伝送するようになっている。４ビットリードバスは、入出力回路１０１〜１０８のうち一つを介してポート(PA4,PA5...PA7,PA4...PA7 )からの４ビットデータをデータ出力DOUTに伝送するようになっている。
【０１１３】
デコーダU110は、その入力A0〜A2がＩ／Ｏ拡張回路１００の制御入力CTRLに接続され、コネクターＣＮ１のピン１，１４，１６（コントロールレジスタからの信号ライン/STB，/ALF，/INI）が与えられている。そして、デコーダU110のデコード出力/O0〜/O7は、アクティブローであって、コントロールレジスタのビット０，１，２によって後述する入出力回路１０１〜１０８のうち一つを選択できるできるようになっている（ただし、ビット２はデコーダU110の入力A2に反転されて与えられるようになっている）。
【０１１４】
入出力回路１０１〜１０８は、各入出力ポートPA4〜PA7,PB4〜PB7 にそれぞれ設けられている。そして、この入出力回路１０１〜１０８は、デコード出力/O0〜/O7があった場合に、ポートPA4〜PA7,PB4〜PB7 に出力するためのデータを保持して出力し、もしくはポートPA4〜PA7,PB4〜PB7 からのデータを入力するようになっている。ポートに出力するための４ビットデータが保持されるかは、制御入力CTRLのビット３の状態で決まる。これら入出力回路１０１〜１０８は、制御入力CTRLのビット３（コネクターＣＮ１のピン１７即ちコントロールレジスタ（ビット３）からの信号ライン/STB，/ALF，/INI，/DSL）の状態が”Ｌ”のときに、デコーダU110のデコード出力/O0〜/O7（コネクターＣＮ１のピン１，１４，１６即ちコントロールレジスタからの信号ライン/STB，/ALF，/INI）で選択された入出力回路１０１〜１０８のラッチU111A に４ビットデータを保持し、出力するようになっている。また、デコーダU110のデコード出力/O0〜/O7（コネクターＣＮ１のピン１，１４，１６即ちコントロールレジスタ（ビット０，１，２）からの信号ライン/STB，/ALF，/INI）で選択された入出力回路１０１〜１０８のバッファU111B からの４ビットデータが出力されるようになっている。
【０１１５】
入出力回路１０１〜１０８は、図のように、入出力ポートPA4〜PA7,PB4〜PB7 に与えられたデータを４ビットリードバスに出力するための４ビットバッファ U111B、４ビットリードバスに与えられたデータを入出力ポートPA4〜PA7,PB4〜PB7 に保持し出力するための４ビットラッチ U111Aで構成される。そして、バッファ U111Bの動作を制御するためのゲート U111C、バッファ U111Bの動作を制御するためのゲート U111D、入出力ポートPA4 〜PA7,PB4〜PB7のリード・ライトの状態を保持するためのＤフリッププロップ（以下、Ｄ−ＦＦ）U111Eで構成することができる。図１４は、図１３の回路構成での動作を示したものである。これを用いてその動作を説明する。
【０１１６】
まず、入出力ポートPA4〜PA7,PB4〜PB7 のうちの一つへ４ビットデータを書き込むには次のようにして行なわれる。はじめに、コンピュータ本体のデータレジスタの下位４ビットに出力すべき４ビットデータをセットし、コネクターＣＮ１のピン１，２，３，４からこの４ビットデータを出力させてデータ入力DIN に与える（図１４（Ａ））。この４ビットデータは、４ビットライトバスに出力される。
【０１１７】
また、コンピュータ本体のコントロールレジスタの下位３ビットに出力すべきポートを選択するための３ビットデータ（ただしビット０，１，３は反転される）をセットし、コネクターＣＮ１のピン１，１４，１６からこの３ビットデータを出力させる。また、コントロールレジスタのビット３に書き込み状態である”０”をセットする。これを３ビットデータとともにＩ／Ｏ拡張回路１００の制御入力CTRLに与える（制御入力CTRLのビット３(CTRL3)は”Ｈ”状態である）。制御入力CTRLのビット０，１，２からの３ビットデータにより、デコーダU110のデコード出力/O0〜/O7の１つが”Ｌ”になる（図１４（Ｂ））。これによって、入出力ポートPA4〜PA7,PB4〜PB7 のうちの一つを選択し、入出力回路１０１〜１０８の一つをアクティブにするようになっている。
【０１１８】
デコード出力/O0〜/O7の１つが”Ｌ”になると、その立ち下がりエッジにおいて、選択された入出力回路１０１〜１０８のＤ−ＦＦ U111Eに、コントロールレジスタのビット３の値である”０”がセットされる。この値は選択された入出力ポートへの書き込みを行なうことを示し、コネクターＣＮ１のピン１７の状態即ち制御入力CTRLのビット３を”Ｌ”にしても（図１４（Ｃ）の波形の立ち上がり）、その状態がＤ−ＦＦ U111Eに保持されるようになっている。
【０１１９】
制御入力CTRLのビット３の状態”Ｈ”及び該当するデコード出力/O0〜/O7の状態”Ｌ”から、選択された入出力回路１０１〜１０８のゲート U111Dの出力は”Ｈ”状態になる。ラッチ U111Aはデータの取り込み可能な状態になり、データ入力DIN から４ビットライトバスに出力された４ビットデータが、４ビットラッチ U111Bにラッチされる。また、Ｄ−ＦＦ U111Eからその保持された値”０”が出力されることによって、ラッチ U111Aはデータの出力可能な状態になって、４ビットデータが、入出力ポートPA4〜PA7,PB4〜PB7 のうち選択されたものから出力される（図１４（Ｄ））。
【０１２０】
こうして、データ入力DIN から４ビットライトバスに出力された４ビットデータが、４ビットラッチ U111Bにラッチされ、入出力ポートPA4〜PA7,PB4〜PB7 のうち選択されたものから出力することが可能であり、こうして所望のポートに書き込むことができる。
【０１２１】
また、制御入力CTRLのビット３に”１”をセットすると（図１４（Ｃ）の波形の立ち下がり）、選択された入出力回路１０１〜１０８のゲート U111Cの出力は”Ｌ”状態になり、選択された入出力ポートに与えられた４ビットデータがバッファ U111Bを介して４ビットリードバスに出力される。そして、この４ビットリードバスに出力された４ビットデータは、バッファU1B を介してデータ出力DOUTに出力されるようになっている（図１４（Ｅ））。
【０１２２】
出力された４ビットデータは、コネクターＣＮ１のピン１１〜１３，１５を介してステータスレジスタのビット３，４，５，７に与えられる。これをコンピュータ本体側で読み込むことによって、入出力ポートからの４ビットデータを取り込むことができるようになっている。
【０１２３】
入出力ポートPA4〜PA7,PB4〜PB7 のうちの一つへ４ビットデータを出力する場合、データを出力するだけでなく、その出力したデータが正しいかどうか確かめることもできる。これはアセンブラーやＣ言語等のコンピュータ言語を用いて実現できる。アセンブラで表せば次のようになる（ただし、変数write_dataは書き込みデータ、変数port'は入出力ポートPA4〜PA7,PB4〜PB7 を示す値であって、0Hから7Hまでのいずれかの値でビット０，１，２は反転されている。変数prt_portはパラレルインターフェイスのアドレスである)。なお、次の例はＰＣ−ＸＴ互換機など８ビットのＣＰＵでも利用できるようにすることを配慮したものであり、レジスタ転送命令やストリング転送命令などを用いて１６，３２ビットのＣＰＵで高速処理できるように直すことができる。
【０１２４】
0004341043.tif 000008
【０１２５】
次に、読み込みは、書き込みと同様であるが、コントロールレジスタ（ただし、ビット０，１，３は反転される）のビット３に”１”をセットしたままである点が異なる。書き込みは次のようにして行なわれる。
【０１２６】
コントロールレジスタのビット３に”１”をセットし、制御入力CTRLのビット３を”Ｌ”にした状態にする（図１５（Ｂ））。そして、コンピュータ本体のコントロールレジスタのビット０，１，２に出力すべきポートを選択するための３ビットデータをセットし、コネクターＣＮ１のピン１，１４，１６からこの３ビットデータを出力させる（図１５（Ａ））。
【０１２７】
制御入力CTRLの３ビットデータにより、上記３ビットデータによりデコーダU110のデコード出力/O0〜/O7の１つが”Ｌ”になり、制御入力CTRLのビット３が”Ｌ”状態でになることによって、ゲート U111Cの出力は”Ｌ”状態になる。４ビットバッファ U111Bは、データ出力可能な状態になり、入出力ポートPA4〜PA7,PB4〜PB7 のうちデコーダU110で選択されたものに与えられた４ビットデータがバッファ U111Bを介して４ビットリードバスに出力される。そして、この４ビットリードバスに出力された４ビットデータは、バッファU1B を介してデータ出力DOUTに出力される（図１４（Ｃ））。
【０１２８】
出力された４ビットデータは、コネクターＣＮ１のピン１１〜１３，１５を介してステータスレジスタのビット３，４，５，７に与えられる。これをコンピュータ本体側で読み込むことによって、入出力ポートからの４ビットデータを取り込むことができる。
【０１２９】
また、デコーダU110のデコード出力/O0〜/O7の１つが”Ｈ”から”Ｌ”に変化することにより、Ｄ−ＦＦ U111Eにコントロールレジスタのビット３の値である”１”がセットされる。この値は選択された入出力ポートからの読み込みを示し、Ｄ−ＦＦ U111Eの出力が”１”になることによって、ラッチ U111Aの出力はハイインピーダンス状態になってその出力は禁止される。
【０１３０】
こうして、入出力ポートPA4〜PA7,PB4〜PB7 のうちコントロールレジスタの下位３ビットで選択されたものから、４ビットデータをコンピュータ本体に読み込むことができる。また、当該ポートを読み込み状態にすることができる。
【０１３１】
この読み込み動作もアセンブラーやＣ言語等のコンピュータ言語を用いて実現できる。アセンブラで表せば次のようになる（ただし、読み取ったポートからのデータはALレジスタに保持される)。
【０１３２】
0004341043.tif 000009
【０１３３】
上述した図１３の実施例で示したＩ／Ｏ拡張装置においても、図３や図７のようにメモリーを接続しこれを読み書きする事ができ、パラレルインターフェイスに接続するストレージデバイスを実現する事ができる。図３や図７のようにメモリーを接続した場合、図５、図６、図８、図９において、ＩＯエキスパンダU3のポートP40-P43,P50-P53,P60-P63,P70-P73 をポートPA4-PA7 とし、ＩＯエキスパンダU4のポートP40-P43,P50-P53,P60-P63,P70-P73 をポートPB4-PB7 とすることによって、メモリーの読み書きの動作を実現することができる。
【０１３４】
また、メモリーだけでなく、ほかのインターフェイスチップを接続し各ポートの状態を制御することによって動作させることも可能である。さらに、種類の違うもの複数を接続する事も可能である。この装置においても、特定のポートについては、メモリー以外の他のチップが接続されているかどうかの識別などに用いることができる。
【０１３５】
次に、上述した各Ｉ／Ｏ拡張装置のいずれかに図３や図７のようにメモリーを接続して構成したストレージデバイスを用いたパーソナルコンピュータの一例について説明する。図１６は、そのパーソナルコンピュータの内部構成を示したものである。
【０１３６】
符号３００は、パーソナルコンピュータ本体を示し、通常のＰＣ−ＸＴ，ＰＣ−ＡＴ互換機と同等の構成を有し、８０Ｘ８６互換のＣＰＵ３１０、ＲＡＭ３２０、ＢＩＯＳＲＯＭ３３０、キーボード３７０、キーボードインターフェイス，パラレルインターフェイス，シリアルインターフェイス，サウンドインターフェイスなどの周辺装置３５０、ビデオインターフェイス３８５、これらを接続するための内部バス３０１を有する。これらの構成要素のうち、ＣＰＵ３１０、周辺装置３５０、ビデオインターフェイス３８５を１チップ化したものがあり、例えば、CHIPS&TECHNOLOGIES社F8680Aなどがある。また、ＣＰＵ３１０、周辺装置３５０を１チップ化したものも存在する。
【０１３７】
また、図の構成では、ディスプレイとして例えば、モノクロもしくはカラーのＬＣＤ（符号３８０）が用いられ、低消費電力化を図って電池駆動しやすいようにしている。サウンドインターフェイスの出力としてスピーカー３６０が内蔵されている。そして、パラレルインターフェイスの出力のためのコネクタＣＮ３，シリアルインターフェイスの出力のためのコネクタＣＮ４，サウンドインターフェイス及びビデオインターフェイスの出力のためののコネクタＣＮ５（例えば、Ｓ−ＶＩＤＥＯ用など）が設けられている。
【０１３８】
ストレージデバイス２００は、上述した各Ｉ／Ｏ拡張回路１００にメモリー１８０を接続した構成を有し、パーソナルコンピュータ本体３００のパラレルインターフェイスにつなぐためにコネクタＣＮ１を介してコネクタＣＮ３に接続できるようになっている。Ｉ／Ｏ拡張回路１００としては、高速動作を行なうために、図１３の回路を用いるのが望ましい。
【０１３９】
そして、パーソナルコンピュータ本体３００は、ストレージデバイス２００のメモリー１８０に書き込まれたプログラムもしくはデータを読み出すためのプログラムがＢＩＯＳＲＯＭ３３０に書き込まれており、そのプログラム３４０を用いることでドライブとしてストレージデバイス２００のメモリー１８０にアクセスできるようになっている。このプログラムは、図５、図６、図８、図９に示したルーチン（図１３の回路に応用する場合も含む）を用いることで実現することができる。パーソナルコンピュータ本体３００は、この点に特徴がある。
【０１４０】
そして、パーソナルコンピュータ本体３００にストレージデバイス２００が接続されている場合、起動時において、ＣＰＵ３１０は、ＢＩＯＳＲＯＭ３３０に書き込まれたプログラム３４０を用いてストレージデバイス２００にあるプログラムもしくはデータをメモリー３２０に読み出し、そのプログラムを実行できるようになっている。また、ＣＰＵ３１０は、プログラム３４０を用いてストレージデバイス２００にドライブとしてデータを保存できるようになっている。
【０１４１】
パーソナルコンピュータ本体３００が、このような構成を有することにより、小型化及び低消費電力化が可能であり、電池駆動で長時間使用に耐えうるものを構成することができる。従って、非常に携帯性が良いパーソナルコンピュータを提供することができる。
【０１４２】
また、ストレージデバイス２００のメモリー１８０に書き込んでおくプログラムは、既存のＰＣ−ＸＴ，ＰＣ−ＡＴ互換機と同等のものを用いることができる。従って、ＰＣ−ＸＴ，ＰＣ−ＡＴ互換機用にかかれたプログラムをパーソナルコンピュータ本体３００用として容易に移植することができる。
【０１４３】
さらに、ストレージデバイス２００は、デスクトップタイプ，ノートブックタイプのパーソナルコンピュータのパラレルインターフェイスに接続しアクセス可能であるため、ストレージデバイス２００にあるプログラムもしくはデータを共用することができる。従って、パーソナルコンピュータ本体３００にストレージデバイス２００をつないで屋外で使用し、室内においてデスクトップタイプ，ノートブックタイプのパーソナルコンピュータにストレージデバイス２００を接続し、ストレージデバイス２００にあるプログラムもしくはデータを利用することができる。
【０１４４】
パーソナルコンピュータ本体３００は、上記構成を有することから小型化が可能であり、その外観構成としてはさまざまなものが考えられる。図１７及び１８はその一例を示したものであり、図１７は、ＬＣＤ３８０の側から見た図であり、図１８は、その反対側から見た図である。
【０１４５】
この外観構成は、次に示すように、ストレージデバイス２００をパーソナルコンピュータ本体３００のカートリッジとした点に特徴がある。
【０１４６】
ストレージデバイス２００は、図に示すように、Ｉ／Ｏ拡張回路１００とメモリー１８０とをケース２０１の中に収納し、ケース２０１の外側にパーソナルコンピュータ本体３００のパラレルインターフェイスにつなぐためにコネクタＣＮ１を配置した構成になっている。そして、図にあるように凸凹にあわせてストレージデバイス２００をスライドさせてパーソナルコンピュータ本体３００に挿入できるようになっている。パーソナルコンピュータ本体３００のコネクタＣＮ３は、ストレージデバイス２００が挿入されたときに、コネクタＣＮ１と接続できるようになっている。コネクタＣＮ３は、コネクタＣＮ１が雄タイプの場合、雌タイプのものを使用している。
【０１４７】
なお、カートリッジの外観形状は、ケース２０１の中に収納するだけでなく、カード状に薄くしたものや、図に示すもの以外の形状にすることができる。また、コネクタＣＮ１，ＣＮ３は、ミニＤＳＵＢコネクタやカードエッジコネクタなどストレージデバイス２００の大きさに応じたものを利用できる。また、カートリッジをスライドさせてパーソナルコンピュータ本体に挿入する以外に、パーソナルコンピュータ本体にじかにパーソナルコンピュータ本体に取り付けるようにすることもできる。
【０１４８】
そして、図に示すように、ストレージデバイス２００をパーソナルコンピュータ本体３００に挿入することによってこのコネクタＣＮ１とパーソナルコンピュータ本体３００のコネクタＣＮ３とを直接接続できるようになっている。このようにすることにより、ストレージデバイス２００とパーソナルコンピュータ本体３００のパラレルインターフェイスとをつなぐためのケーブルが不要になるためノイズの影響が少なくなり、ストレージデバイス２００に対する高速のアクセスが期待できるようになる。
【０１４９】
また、本体３００の大きさを小さくするとともに操作しやすくするためにキーボード３７０のキーの数を少なくしている。より小さくし操作しやすくするためには、テンキー（数字のキー）などを削除してカーソルキーを用いたソフトウェアによる仮想キーボードとするのがより望ましい。また、部品点数が増える欠点があるがトラックボールを設けるようにしてもよいし、ペン入力にするようにしてもよい。
【０１５０】
さらに、電池駆動が可能になっており、本体３００の側面に電源スイッチ３９０が設けられている。また、サウンドインターフェイス及びビデオインターフェイスの出力のためののコネクタＣＮ５は、本体３００の側面に設けられ、例えば、テレビなどに接続し、ディスプレイとして大きな画面のものを使用できるようになっている。
【０１５１】
このパーソナルコンピュータは、ストレージデバイス２００をパラレルインターフェイスを介してＩＣカードのように本体に接続するようになっている。コネクタＣＮ１はパラレルインターフェイスに接続するためのものである。このパーソナルコンピュータは、ストレージデバイス２００にあるプログラムに応じて様々な用途に使え、良好な携帯性を持つものである。ストレージデバイス２００に例えばゲームのプログラムを書き込んだものを用いることで、携帯用ゲーム装置として利用することができる。また、カートリッジにメモリー以外に様々なハードウェアを搭載させることによって、様々な付加機能を持たせることができる。
【０１５２】
このように、上記実施例に列挙したＩ／Ｏ拡張装置を用いて、パラレルインターフェイスを介してパーソナルコンピュータ本体に接続する事によって様々な用途に使え、かつ携帯性の良いパーソナルコンピュータを提供することができる。
【０１５３】
上記Ｉ／Ｏ拡張装置は、パラレルインターフェイスに接続する場合について示したが、データレジスタ、コントロールレジスタ、ステータスレジスタの動作をエミュレートすることで、上記Ｉ／Ｏ拡張装置の入出力ポートのうちの選択したものの一つに対し４ビットデータを入力し、出力させることができる。例えば、上記３つのレジスタと同等の機能を有するレジスタをパーソナルコンピュータ本体に増設し、増設したレジスタと上述のＩ／Ｏ拡張装置を接続し同等の動作を実現する事も可能である。
【０１５４】
また、マイクロコントローラのパラレルポート（ＰＩＯ）を用いて上記Ｉ／Ｏ拡張装置の入出力ポートのうちの選択したものの一つに対し４ビットデータを入力し、出力させることができる。図１９はその接続例の一つを示したものである。
【０１５５】
図のマイクロコントローラ（ＭＰＵ）４００としては、ＰＩＯがあればよく、様々な機器に組み込まれているものを用いることができる。図では、パラレルポートＰ０，Ｐ１，Ｐ２にカートリッジ２００を接続した例を示したものである。ここでは、ＭＰＵ４００のパラレルポートＰ０にＩ／Ｏ拡張回路１００のデータ入力DIN を接続し、ＭＰＵ４００のパラレルポートＰ１にＩ／Ｏ拡張回路１００のデータ出力DOUTを接続し、ＭＰＵ４００のパラレルポートＰ２にＩ／Ｏ拡張回路１００の制御入力CTRLに接続している。
【０１５６】
なお、この例では、図３又は１３においてデータレジスタの出力D4-D7 に接続される端子を電源（＋５Ｖ）に直接接続し、カートリッジ２００に直接電源を与えるようになっている。
【０１５７】
パラレルポートＰ０，Ｐ１，Ｐ２それぞれをデータレジスタ、ステータスレジスタ、コントロールレジスタからの出力と同じになるように動作させることによってＩ／Ｏ拡張回路１００の所望のポートに４ビットデータを入出力できるようになる。
【０１５８】
ＭＰＵは８ビットＭＰＵであって、パラレルポートＰ０，Ｐ１，Ｐ２のビット０〜３がＩ／Ｏ拡張回路１００に接続されているものとし、Ｉ／Ｏ拡張回路１００として、図１３の回路を用いた場合、次のようにして４ビットデータを出力できる。P0,P1,P2はパラレルポートＰ０，Ｐ１，Ｐ２を示す。この他の点、例えば変数port'はＩ／Ｏ拡張回路１００の入出力ポートPA4〜PA7,PB4〜PB7 を示す値である点などは前述したものと同じである。
【０１５９】
MOVE  AL, write_data
OUT   P0, AL
OUT   P2, (port+8)
OUT   P2, port
OUT   P2, (port+8)
/* IF check write data ,add followings line */
IN    AL, P1
【０１６０】
また、４ビットデータを入力する場合は次のようにして行なうことができる。
【０１６１】
OUT   P2, port
IN    AL, P1
【０１６２】
こうして、Ｉ／Ｏ拡張回路１００の所望のポートに４ビットデータを入出力することによって、メモリーの読み書きの動作をエミュレートすることによって、メモリーにデータを蓄え、蓄えられたデータを読み出すことができる。また、図３の回路を用いた場合も同様にＩ／Ｏ拡張回路１００の所望のポートに４ビットデータを入出力できる。
【０１６３】
このように、上記Ｉ／Ｏ拡張装置は、パラレルポートのあるマイクロコントローラであれば、非常に簡単に接続して４ビットデータを入出力できるようになる。このようにＭＰＵとの接続が簡単であることから、、上記Ｉ／Ｏ拡張装置を用いたストレージデバイスは、マイクロコントローラを用いた様々な機器（例えば、ファクシミリ、モデム、電話機、コピー機、プリンター、ビデオ機器など）の外部記憶装置として利用できる。その上、パーソナルコンピュータや上記機器とのデータのやり取りが実現できる。
【０１６４】
上述したように、上記Ｉ／Ｏ拡張装置が、パラレルポートのあるワンチップマイクロコントローラと接続しやすいことを利用して、上記ストレージデバイスをパーソナルコンピュータに接続するための拡張装置を容易に構成することができる。
【０１６５】
図２０は、その外観構成例を示したものであり、拡張装置本体５００は、ケーブルでパーソナルコンピュータのプリンターインターフェイス又はＳＣＳＩインターフェイスに接続するようになっている。また、カートリッジ２００は４つ接続できるようになっている。なお、カートリッジについては、その必要な機会的形状に応じて、厚型のもの（符号２００ａ），薄型のもの（符号２００ｂ）など許される形状をとりうる。
【０１６６】
図２１は、その内部についてブロック構成例を示したものである。マイクロコントローラ（ＭＰＵ）４００は、そのＰＩＯの出力数の限界からそのバスインターフェイス（bus I/F ）にいわゆるパラレルインターフェイス用のチップ（例えば、8255A,6823や82C11 などのプリンターインターフェイス用のチップを含む）４１０を接続してＰＩＯの出力数を増加させている。そして、パラレルインターフェイス用のチップ４１０には、パーソナルコンピュータのプリンターインターフェイス又はＳＣＳＩインターフェイスに接続するためのコネクター４１０がつながれている。また、パラレルインターフェイス用のチップ４１０には、デージーチェーン接続するためのコネクター４２０がつながれている。パラレルインターフェイス用のチップ４１０をプリンターインターフェイス又はＳＣＳＩインターフェイスとして動作させるためのプログラムが、ＭＰＵ４００に接続されたＲＯＭ（図示せず）に書き込まれている。さらに、パーソナルコンピュータとの間で、プリンターインターフェイスで接続するか、ＳＣＳＩインターフェイスで接続するかを選択するためのスイッチ４４０が接続されている。
【０１６７】
ＭＰＵ４００のＰＩＯには、カートリッジ２００が接続されているが、このカートリッジ２００が４枚接続できるようになっている点に特徴がある。そして、各カートリッジ２００の端子ctrl0,ctrl1,ctrl2 は共通に接続されているが、端子ctrl3 はそれぞれＭＰＵ４００のＰＩＯに別々に接続されるようになっている。また、カートリッジ２００の端子Din は共通に接続されているが、端子DoutはそれぞれＭＰＵ４００のＰＩＯに別々に接続されるようになっている。なお、図では省略しているが、この例でも、カートリッジ２００のデータレジスタの出力D4-D7 に接続される端子を電源（＋５Ｖ）に直接接続するようになっているのは上述した例と同じであり、カートリッジ２００に直接電源を与えるようになっている。
【０１６８】
このように接続することによって、ＰＩＯの出力数がより少なくなるようになっている。そして、カートリッジ２００の端子ctrl-ctrl2はパラレルポートＰ２の下位４ビット、各カートリッジ２００の端子ctrl3 はパラレルポートＰ２上位４ビットに接続されているものとし、カートリッジ２００の端子Din はＰ０に接続され、各カートリッジ２００の端子DoutはパラレルポートＰ１Ｘ（Ｘは各カートリッジへのポートを示す値とする）に接続されているものとすると、図１３の回路を用いた場合、次のようにして４ビットデータを出力できる。
【０１６９】
MOVE  AL, write_data
OUT   P0, AL
OUT   P2, (port+x)  /* x=08h,0fh,10h, or 20h */
OUT   P2, port
OUT   P2, (port+x)
/* IF check write data ,add followings line */
IN    AL, P1X
【０１７０】
また、４ビットデータを入力する場合は次のようにして行なうことができる。
【０１７１】
OUT   P2, port
IN    AL, P1X
【０１７２】
このように、カートリッジ２００を増加させても、図１９の場合と同様に、Ｉ／Ｏ拡張回路１００の所望のポートに４ビットデータを入出力することによって、メモリーの読み書きの動作をエミュレートすることによって、メモリーにデータを蓄え、蓄えられたデータを読み出すことができる。
【０１７３】
メモリーの読み書きの動作は、ＭＰＵ４００に接続されたＲＯＭ（図示せず）に書き込まれており、ＭＰＵ４００からストレージデバイス２００のメモリーに書き込まれたプログラムもしくはデータを読み出し、そのプログラムを用いることでドライブとしてストレージデバイス２００のメモリー１８０にアクセスできるようになっている。
【０１７４】
ＭＰＵ４００には、様々もの（例えば、8bit,16bit,8086互換,68K互換など）を用いることができるが、８０８６と互換性のあるもの（例えば、80186,80188,V25,V50,Am186EM,Am386EM など）を用いることで、ＰＣ／ＡＴ互換機とソフトウェア的にコンパチビリティがあるものにすることができる。パーソナルコンピュータとの間の接続をＳＣＳＩインターフェイスとした場合は、ＰＣ／ＡＴ互換機で開発されたＳＣＳＩ用ドライバーソフトを容易に移植できる。また、パーソナルコンピュータとの間の接続をプリンターインターフェイスとする場合、例えば、DOS にあるようなintersvrコマンドを容易に移植できる。これらのＰＣ／ＡＴ互換機で開発されたソフトウェアによって、簡単にドライブとして動作させることができる。従って、これらのソフトウェアを上記ＲＯＭに書き込ませることによって、簡単に拡張装置を組み立てることができる。
【０１７５】
さらに、上記Ｉ／Ｏ拡張装置が、ＭＰＵと接続しやすいことを利用すれば、ワンチップマイクロコントローラを用いて非常に構成が簡単な機器を構成することができる。
【０１７６】
図２２及び２３は、通信機器への応用例であって、ＣＡＴＶコンバータを有するセットトップボックスとして構成した場合の例を示したものである。
【０１７７】
図２２は、その外観構成を示したものであり、このセットトップボックス５１０はＴＶアンテナ又はＣＡＴＶケーブルからの信号を入力し、ＴＶセット５０２にビデオ信号を与えるようになっている。また、モデム５０４も接続可能になっており、例えば、電話回線（携帯電話やＰＨＳなどの無線をつかったものを含む）を用いた通信も可能になっている。そして、入力装置として、通常のフルキーボードよりもキーの数が少ないジョイパッド（Joy pad ）５２０が用いられ、赤外線（Infra-red ray ）又はケーブルでセットトップボックス本体５１０にジョイパッド５２０からの入力を与えるようになっている。さらに、上述したカートリッジ２００ａ，２００ｂを接続できるようになっている。
【０１７８】
図２３は、上記セットトップボックス５１０の内部構成例を示したものである。
【０１７９】
このセットトップボックス５１０は、ＴＶ又はＣＡＴＶ用のレシーバー６００を内蔵させている。このレシーバー６００は、通常のＴＶ又はＣＡＴＶに用いられているものと同じである。レシーバー６００は、ＴＶ又はＣＡＴＶの信号を受信し復調するためのＴＶチューナー６１０と、ＴＶチューナー６１０からのスクランブルされたビデオ信号をデスクランブルするためのデスクランブラー６２０とを有し、ＴＶ又はＣＡＴＶの信号からビデオ信号を出力するようになっている。なお、レシーバー６００は、入力される信号がデジタルＴＶであれば、それに対応したレシーバーである。
【０１８０】
ＭＰＵ４１０としては、様々なものが用いれるが、３２ビット対応が望ましい点、現在広く使われているＯＳであるMS-Windowsと互換性があるのが望ましい点を配慮すれば、８０３８６以上のＣＰＵをコアとして用いているものが望ましい。また、マルチメディア用途を配慮すれば、できるだけそのクロック周波数が大きいものが望ましい。このようなＣＰＵとしては、現状ではコストを配慮して、例えば、ＡＭＤ社のAm386EM,Am486SE,Am486SELV などがあり、40MHz，33MHzのクロック周波数で動作させることができる。この他の候補として、将来的には、例えば、PowerPC などのチップがあげられる。
【０１８１】
ＡＭＤ社のAm386EMなるこのＭＰＵは、バスインターフェイス、ＤＲＡＭインターフェイス、ＤＭＡ、タイマーなどに加えて、ＰＩＯが３２本、ＳＩＯが２つ備えられており、このＭＰＵに周辺装置（Periferal chips ）を接続した構成になっている。
【０１８２】
ＭＰＵのバスインターフェイスには、ＤＲＡＭ５４０，ＲＯＭ５５０，ディスプレイインターフェイス５３０，サウンドインターフェイス５６０が接続されている。また、必要に応じて他の周辺装置、例えば、ＩＤＥインターフェイスを持つＣＤ−ＲＯＭドライブなどを接続できるようになっている。これらの装置については、通常のパーソナルコンピュータで使われているものと同じである（但し、ディスプレイインターフェイス５３０については後述するものが望ましいと思われる）。
【０１８３】
ディスプレイインターフェイス５３０の出力とレシーバー６００からのビデオ信号とは、択一的もしくは加算されてビデオ出力から出力されるが、デスクランブラー６２０から出力されるビデオ信号がデジタル信号である場合、そのデジタルビデオ信号をディスプレイインターフェイス５３０のビデオメモリーに直接書き込むようにすることもできる。また、描画速度を速めるために、ディスプレイインターフェイス５３０は、２次元的あるいは３次元的な画像処理ができることが望ましい。マルチメディア的に使われることを配慮すれば、現状において、ディスプレイインターフェイス５３０に用いるビデオチップは、３ＤＯ，SEGA SATURN，SONY PLAY-STATIONなどいわゆる家庭用ゲーム機器に用いられているものを採用することが考えられる。
【０１８４】
ＭＰＵのＰＩＯは、上述したカートリッジ２００ａ，２００ｂを接続できるようになっている。そして、カートリッジ２００の端子ctrl〜ctrl2 、端子Din を共通に接続してＰＩＯの出力数をより少なくなるようにしている点は上述した例と同様である。また、ＭＰＵのＰＩＯには、ジョイパッド５２０のインターフェイス５８０を接続してジョイパッド５２０からの入力を与えるようになっている。なお、ジョイパッド５２０のインターフェイス５８０は、ＭＰＵのバスインターフェイスに接続するようにしてもよい。
【０１８５】
ＭＰＵのＳＩＯの一つ又はＰＩＯの残りの出力は、レシーバー６００に接続され、チャンネルの選択及びデスクランブルの制御ができるようになっている。また、ＭＰＵのＳＩＯのもう一つには、モデムなどが接続可能になっており、電話回線などを用いて通信を行なうようにすることも可能である。これによって、通信カラオケなども行えるようになる。
【０１８６】
そして、ＲＯＭ５５０には、前述の例と同様、ストレージデバイス２００の書き込み・読み出のためのプログラムが書き込まれ、ドライブとしてストレージデバイス２００のメモリーにアクセスできるようになっている。ここで、ＲＯＭに書き込むことができて、MS-Windowsと互換性があるＯＳとして、例えば、Microsoft 社によって開発されている"Modular Windows" が知られている（日経エレクトロニクス1993.2.1p99 ）。このＯＳに、ドライブとしてストレージデバイス２００のメモリーにアクセスするドライバや、レシーバーの制御用のドライバ、さらに、ビデオチップに応じたディスプレイインターフェイス用のドライバ（画像処理を含む）を付加する。これらのドライバを付加したＯＳをＲＯＭ５５０に書き込むことで、図に示したセットトップボックスは、ユーザーにとって使いやすいグラフィックインターフェイスを持ち、マルチメディア用途に適したものになる。
【０１８７】
ビデオチップの種類が違っていても、ディスプレイインターフェイス用のドライバによって、共通のＡＰＩ（Aplication Program Interface）で動作させることが可能である。また、パーソナルコンピュータのＯＳの側で上記ＡＰＩを用意することで、図に示したセットトップボックス用のソフトウェアをパーソナルコンピュータでも利用することができる。
【０１８８】
ストレージデバイス２００に利用者のＩＤやデスクランブル制御のための情報やソフトウェアなどを格納しておくことが可能である。そして、チャンネルの選択及びデスクランブルの制御用のドライバを用いて、ストレージデバイス２００に格納された情報を利用してデスクランブルの制御を行なわせることができる。
【０１８９】
このように、このセットトップボックスは、マルチメディア用途にあわせてＴＶやＣＡＴＶの視聴の管理に用いうる。さらに、これらを組み合わせた利用もできる。従って、ＴＶやＣＡＴＶから送られた情報を加工するようなこともできる。
【０１９０】
例えば、ＣＡＴＶを用いた通信販売が行なわれているが、このセットトップボックスを用いれば、ＴＶを見ながらモデムを介して、価格情報の提供や購入の意志表示など情報のやり取りを行なうといった用途に用いうる。
【０１９１】
さらに、日本国内のＴＶ放送では、文字放送といって映像信号に加えて文字信号も伝送することが行なわれているが、文字放送のための信号として、様々なデジタル信号を送り、ＭＰＵ４１０のＰＩＯ，ＳＩＯに与えるようにすることができる。そして、このデジタル信号をセットトップボックスのＭＰＵ４１０ので様々な処理を行なわせることができる。これによって、ＴＶやＣＡＴＶを複合的に利用するようにすることもできる。このような処理のためのプログラムもストレージデバイス２００に格納し、交換できるようにすることで、セットトップボックスの利用範囲は非常に広いものになる。
【０１９２】
"Modular Windows" を用いた装置としては、携帯用の情報端末が知られている（日経エレクトロニクス1993.2.1p99 ）。図２４は、その外観を示したものであり、上記実施例に示したストレージデバイス２００を本体に挿入可能になっている。
【０１９３】
図の構成では、ＬＣＤディスプレイ３８０として、モノクロよりもはカラー（CGA or VGA，SVGA）を用いるのが望ましい。入力デバイスとしては、カーソルキー３７０を含むキーボードを用いても良いが、キーの数は減らしておくのが望ましい。そして、必要があれば、ペン入力やコネクターでキーボードをつなぐことができるようにしておく。そして、サウンド及びビデオ出力のためののコネクタＣＮ５を設けてディスプレイに表示できるようになっている。また、コネクタＣＮ７から電話回線などを用いて通信可能になっている。
【０１９４】
図２５は、図２４の携帯用の情報端末の内部のブロック構成を示したものである。この情報端末は、自動車などの移動体用としても利用可能なものである。ここで、ＭＰＵ４１０としては、図２２，２３に示したものと同じものを用いうるが、図はＡＭＤ社のAm386EM を用いた場合の例を示したものである。
【０１９５】
ＭＰＵのバスインターフェイスには、ＤＲＡＭ５４０，ＲＯＭ５５０，ディスプレイインターフェイス５３０，サウンドインターフェイス５６０が接続されている。これらの装置については、通常のパーソナルコンピュータで使われているものと同じである（ＬＣＤをディスプレイとして使っていることからディスプレイインターフェイス５３０についてもそれほど特別なものを要しないと思われる）。また、必要に応じて他の周辺装置、例えば、ＳＣＳＩインターフェイス、ＩＤＥインターフェイスなどを接続できる。このようなインターフェイスを接続することにより例えばＣＤＲＯＭを接続することも可能である。
【０１９６】
ＭＰＵのＰＩＯは、上述したカートリッジ２００ａ，２００ｂを接続できるようになっている。そして、カートリッジ２００の端子ctrl〜ctrl2 、端子Din を共通に接続してＰＩＯの出力数をより少なくなるようにしている点は上述した例と同様である。そして、前述と同様、"Modular Windows" なるＯＳに、ドライブとしてストレージデバイス２００のメモリーにアクセスするドライバや、後述する通信制御用のドライバ、さらに、ビデオチップに応じたディスプレイインターフェイス用のドライバを付加してＲＯＭ５５０に書き込まれている。
【０１９７】
また、ＭＰＵのＳＩＯの一つ（またはＰＩＯの残りの端子）には、入力デバイスを接続して入力を与えるようになっている。ＭＰＵのもう一つのＳＩＯは、ＤＣＥ（Data Circuit Terminating Equipment）などが接続可能になっている。ＤＣＥとしては一般的にはモデムが考えられているが、移動体無線、例えば、携帯電話やＰＨＳ、トランシーバーの場合、内部でデジタル信号処理を行なっていることから、そのデジタル信号をアナログ信号に変換しないでＳＩＯに与えるようにするのが望ましい。ＳＩＯを介して電話回線などを用いて通信を行なうようにすることも可能であるが、伝送速度の関係からＰＩＯ又はバスインターフェイスに設けた拡張装置を介して通信を行うようにしても良い。
【０１９８】
このような構成を有することにより、小型化及び低消費電力化が可能であり、電池駆動で長時間使用に耐えうるものを構成することができる。従って、非常に携帯性が良く、操作性の良い携帯用の情報端末を提供することができる。
【０１９９】
また、ストレージデバイス２００に書き込んでおくプログラムは、既存のMS-Windowsと互換性を持たせうるので、既存のMS-Windows用にかかれたプログラムをこの容易に携帯用の情報端末用として移植することができる。
【０２００】
ストレージデバイス２００にあるプログラムもしくはデータは、デスクトップタイプ，ノートブックタイプのパーソナルコンピュータと共用することができる。従って、この携帯用の情報端末を屋外（自動車内）で使用し、室内においてデスクトップタイプ，ノートブックタイプのパーソナルコンピュータにストレージデバイス２００を接続してストレージデバイス２００にあるプログラムもしくはデータを利用することができる。このように、屋外と室内とで同等の環境で使用できる。
【０２０１】
さらに、ＭＰＵのＳＩＯに、ＧＰＳレシーバーを接続し、いわゆるナビゲーションソフトを走らせることにより、地図上に航路表示や現在位置を表示するようにすることができる。この場合、ストレージデバイス２００にナビゲーションソフトや地図データを蓄えておくようにすることにより、ユーザーにとって使用しやすいものが利用できるようになる。ここで、移動体用の情報端末として用いる場合、ビデオディスプレイインターフェイスに使用するチップとして、いわゆるカーナビゲーションシステム向けに開発されたものや、３ＤＯ，SEGA SATURN，SONY PLAY-STATIONなどいわゆる家庭用ゲーム機器に用いられているものを採用することで、地図上の表示のレスポンスがよくなると考えられる。
【０２０２】
図２６は、車載用とした場合の外観構成を示したものであり、ディスプレイとして車載用のＬＣＤモニターを接続し、通信手段として、車載用のトランシーバー又は携帯電話などの移動体電話を接続する。また、ナビゲーションシステムとして動作させるために、ＧＰＳレシーバーを接続するようになっている。そして、入力デバイスは本体に備えられるようになっている。このような外観構成を持たせることにより、自動車などの移動体用としても利用しやすいものになる。
【０２０３】
周辺装置とアクセスするためのＰＩＯ，ＳＩＯの割り当ては、図に示した以外のものすることができる。この場合、その割り当てに応じてドライバをかき直すことで対処できる。
【０２０４】
オフィス機器の間でデータをやり取りして統合しようというのに、MicroSoft 社のATWorkが知られている。本発明のストレージデバイスは、このATWorkにも用いることができる。図２７は、そのような応用において、ＭＰＵの周りのブロック構成を示したものである。
【０２０５】
通常のＭＰＵの周辺と同様、そのバスインターフェイスには、ＤＲＡＭ，ＲＯＭが接続され、さらに、ＬＣＤインターフェイスが接続される。また、ＰＩＯ又はＳＩＯには、入力デバイスが接続される。
【０２０６】
そして、ＭＰＵのＰＩＯに本発明のストレージデバイス２００を接続し、ストレージデバイス２００のデータを読み書きするのは容易にできる。これによりオフィスにある様々な事務機器との間で、本発明のストレージデバイス２００を介してデータをやり取りすることができるようになる。
【０２０７】
本発明は前述の実施例に限らず様々な変形が可能である。
【０２０８】
例えば、上述のＩ／Ｏ拡張装置は、パラレルインターフェイスに接続するのが通常の用途と考えられるが、データレジスタ、コントロールレジスタ、ステータスレジスタと同等の機能を有するレジスタをパーソナルコンピュータ本体に増設し、増設したレジスタと上述のＩ／Ｏ拡張装置を接続し同等の動作を実現する事も可能である。また、コンピュータ本体は、パラレルインターフェイスにかえて、上記Ｉ／Ｏ拡張装置にデータの書き込み・読みだし動作をさせるためのシーケンサを有する拡張ボードを内蔵するものであってもよい。さらに、パーソナルコンピュータ本体と、上述のＩ／Ｏ拡張装置とを接続するためのコネクターもデスクトップコンピュータのようにＤＳＵＢ２５ピン形状に限られない。
【０２０９】
さらに、前述したＰＩＯを有するＭＰＵを用いたシステム構成（図２３、２５、２７）は、メモリーを有する着脱可能なストレージデバイスを用いるシステムの基本構成を示している。従って、このような  基本構成をとった場合、ストレージデバイス２００に用いる拡張回路１００としては、上述したような４ビットのものの他に、８ビットのものも用いれる。例えば、拡張回路１００としては、インテル社の８２５５もしくはその互換チップ、モトローラ社のＭＣ１４６８２３もしくはその互換チップなどにしてもよい。この場合は、８ビット並列転送になる。また、端子Ｄｉｎ，Ｄｏｕｔは８ビットのデータ入出力用の端子としてまとめたものになる。また、８ビット並列転送とした場合のストレージデバイスとパーソナルコンピューターのパラレルインターフェイスとの間の接続は、パラレルインターフェイスのデータ端子Ｄ０〜Ｄ７を用いる事になる。さらに、ＲＯＭにはModular WindowsにかえてMac OSなどのほかのＯＳも用いうる。
【０２１０】
したがって、本発明の範囲については、実施例だけに限定して解釈すべきではなく、特許請求の範囲から解釈すべきである。
【０２１１】
【発明の効果】
以上の通り本発明によれば、上述したＩ／Ｏ拡張装置をパーソナルコンピュータのパラレルインターフェイスに接続し、ストローブの状態を変化させて、第１のレジスタからコマンドを与えることにより、入出力ポートを選択し選択された入出力ポートに４ビットのデータを書き込んで出力し、或は選択された入出力ポートの状態をデータ出力から出力してステータスレジスタに与える事ができる。こうして、コマンドにより入出力ポートを選択し、選択された入出力ポートの読み込み・書き込みを行う事によって、パーソナルコンピュータの入出力を拡張する事が可能になる。
【０２１２】
メモリーを入出力ポートを接続する事によって、外部記憶装置を構成することができ、パーソナルコンピュータ本体からメモリーにデータを書き込み、あるいは、メモリーのデータを読み取ることができる。
【０２１３】
さらに、本発明のＩ／Ｏ拡張装置をパラレルインターフェイスを接続したときにパーソナルコンピュータ本体からドライブとしてアクセスできるようにすることで、様々な用途に使え、かつ携帯性の良いパーソナルコンピュータを提供することができる。
【０２１４】
【図面の簡単な説明】
【図１】パーソナルコンピュータ本体内部のパラレルインターフェイスの構成を示した図。
【図２】本発明のＩ／Ｏ拡張装置の構成を示した図。
【図３】本発明のＩ／Ｏ拡張装置の具体的な回路例を示した図。
【図４】ＩＯ拡張回路１００のポートPA4 の各ビットの状態とメモリーの識別の関係を例示した図。
【図５】メモリーにＳＲＡＭまたはＥＥＰＲＯＭを用いた場合のデータの読み込みを１バイトづつ行う場合のアルゴリズムの例を示す図。
【図６】メモリーにＳＲＡＭまたはＥＥＰＲＯＭを用いた場合のデータの書き込みを１バイトづつ行う場合のアルゴリズムの例を示す図。
【図７】メモリーにＳＲＡＭまたはＥＥＰＲＯＭを用いた場合のＩ／Ｏ拡張装置との具体的な接続例を示した図。
【図８】メモリーにＤＲＡＭまたはこれと同じ動作でアクセスするメモリーを用いた場合のデータの読み込みを１バイトづつ行う場合のアルゴリズムの例を示す図。
【図９】メモリーにＤＲＡＭまたはこれと同じ動作でアクセスするメモリーを用いた場合のデータの書き込みを１バイトづつ行う場合のアルゴリズムの例を示す図。
【図１０】本発明のＩ／Ｏ拡張装置の他の構成例を示した図。
【図１１】本発明のＩ／Ｏ拡張回路の構成例を示した図。
【図１２】図１１のＩ／Ｏ拡張回路の制御回路MUX の構成例を示した図。
【図１３】本発明のＩ／Ｏ拡張装置の他の構成例を示した図。
【図１４】図１３のＩ／Ｏ拡張装置の書き込みシーケンスを示した図。
【図１５】図１３のＩ／Ｏ拡張装置の読み込みシーケンスを示した図。
【図１６】実施例に列挙したＩ／Ｏ拡張回路にメモリーを接続して構成したストレージデバイスを用いたパーソナルコンピュータの内部構成例を示した図。
【図１７】図１６のパーソナルコンピュータの外観構成例を示した図。
【図１８】図１６のパーソナルコンピュータの外観構成例を示した図。
【図１９】マイクロコントローラと本発明のＩ／Ｏ拡張装置との接続例を示した図。
【図２０】本発明のＩ／Ｏ拡張装置を用いたストレージデバイスをパーソナルコンピュータに接続するための拡張装置の外観を示した図。
【図２１】図２０の拡張装置の内部についてブロック構成例を示した図。
【図２２】本発明のＩ／Ｏ拡張回路を用いたストレージデバイスで構成したセットトップボックスの構成例を示した図。
【図２３】本発明のＩ／Ｏ拡張回路を用いたストレージデバイスで構成したセットトップボックスの内部ブロック構成を示した図。
【図２４】本発明のＩ／Ｏ拡張回路を用いたストレージデバイスで構成した携帯用の情報端末の外観を示した図。
【図２５】本発明のＩ／Ｏ拡張回路を用いたストレージデバイスで構成した携帯用の情報端末の内部ブロック構成を示した図。
【図２６】図２４、２５の装置を車載用とした場合の外観構成を示した図。
【図２７】  ATWorkに応用した場合において、ＭＰＵの周りのブロック構成を示した図。
【符号の説明】
１００…Ｉ／Ｏ拡張装置
ＣＮ１…コネクター
PORT4,PORT5,..PORTn，…データ入出力ポート
D0〜D7…データレジスタからの信号ライン
/FEH，BSY ，PAP ，ONOF…ステータスレジスタへの信号ライン
/STB，/ALF，/INI，/DSL…コントロールレジスタからの信号ライン
U1A ，U1B,…バスバッファ
U3,U4,U5…ＩＯエキスパンダ
/CS，PROG…端子
DIN …データ入力
DOUT …データ出力
CTRL…制御入力
+5V…電源ライン
PA4，PA5，PA6，PA7，PB4，PB5，PB6，PB7，PC4，PC5，PC6，PC7…ポート
ＩＣ２８…メモリー
U1…デコーダ
U13,U14…ＡＮＤゲート
4bit write BUS…４ビットライトバス
4bit read BUS…４ビットリードバス
１０１〜１０８…入出力回路
U110…デコーダ
１８０…メモリー
２００…ストレージデバイス
２０１…ケース
３００…パーソナルコンピュータ本体
３３０…ＢＩＯＳＲＯＭ
３４０…プログラム
【図１】
0004341043.tif 000010
【図２】
0004341043.tif 000011
【図３】
0004341043.tif 000012
【図４】
0004341043.tif 000013
【図５】
0004341043.tif 000014
【図６】
0004341043.tif 000015
【図７】
0004341043.tif 000016
【図８】
0004341043.tif 000017
【図９】
0004341043.tif 000018
【図１０】
0004341043.tif 000019
【図１１】
0004341043.tif 000020
【図１２】
0004341043.tif 000021
【図１３】
0004341043.tif 000022
【図１４】
0004341043.tif 000023
【図１５】
0004341043.tif 000024
【図１６】
0004341043.tif 000025
【図１７】
0004341043.tif 000026
【図１８】
0004341043.tif 000027
【図１９】
0004341043.tif 000028
【図２０】
0004341043.tif 000029
【図２１】
0004341043.tif 000030
【図２２】
0004341043.tif 000031
【図２３】
0004341043.tif 000032
【図２４】
0004341043.tif 000033
【図２５】
0004341043.tif 000034
【図２６】
0004341043.tif 000035
【図２７】
0004341043.tif 000036