(57)【要約】【課題】バス上の調停を行うことなく、システムリセット解除後のＩ／Ｏポートの状態の回復を高速に行うことである。【解決手段】ＣＰＵ２００と、バスＢＵ上のＩ／Ｏポート回路１００とを備えるＩ／Ｏポート制御システム１αにおいて、Ｉ／Ｏポート回路１００に接続されＩ／Ｏポートの状態データを記憶する不揮発性メモリとしてのＭＲＡＭ（磁気抵抗メモリ）５００を備え、Ｉ／Ｏポート回路１００が、ＣＰＵインタフェース部１０と、メモリインタフェース部３０と、タイミング制御部４０と、タイミング制御部４０のタイミング制御に基づいて、システムリセット解除時に、システムリセット直前のＩ／Ｏポートの状態データをメモリインタフェース部３０を介してＭＲＡＭ５００から読み込み、当該Ｉ／Ｏポートの状態データに基づいてＩ／Ｏポートの状態を設定するＩ／Ｏポート制御部２０と、を備える。【選択図】図１
2005222217.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、当該ＣＰＵが制御するバス上に設けられて、外部ユニット及び周辺回路のうちの少なくとも１つのＩ／Ｏポートを制御するＩ／Ｏポート回路とを備えるＩ／Ｏポート制御システムにおいて、
前記バスとは別に前記Ｉ／Ｏポート回路に接続され、前記Ｉ／Ｏポートの状態データを記憶する不揮発性メモリを備え、
前記Ｉ／Ｏポート回路は、
前記バス上のＣＰＵとの通信を介するＣＰＵインタフェース部と、
前記不揮発性メモリとの通信を介するメモリインタフェース部と、
システムリセット解除後の処理実行のタイミングを制御するタイミング制御部と、
前記タイミング制御部のタイミング制御に基づいて、システムリセット解除後に、システムリセット直前のＩ／Ｏポートの状態データを前記メモリインタフェース部を介して前記不揮発性メモリから読み込み、当該Ｉ／Ｏポートの状態データに基づいて前記Ｉ／Ｏポートの状態を設定するＩ／Ｏポート制御部と、を備えることを特徴とするＩ／Ｏポート制御システム。
【請求項２】
前記不揮発性メモリは、先頭アドレスからアドレス順に記憶される前記Ｉ／Ｏポートの状態データと、前記先頭アドレスとを記憶し、
前記Ｉ／Ｏポート制御部は、前記システムリセット解除後に、前記先頭アドレスを前記メモリインタフェース部を介して前記不揮発性メモリから読み込み、当該先頭アドレスに基づいてシステムリセット時のＩ／Ｏポートの状態データを前記メモリインタフェース部を介して前記不揮発性メモリからアドレス順に読み込むことを特徴とする請求項１に記載のＩ／Ｏポート制御システム。
【請求項３】
前記不揮発性メモリは、磁気抵抗メモリ及び強誘電体メモリのうちの少なくとも１つからなることを特徴とする請求項１又は２に記載のＩ／Ｏポート制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ／Ｏポートを制御するＩ／Ｏポート制御システムに関する。
【背景技術】
【０００２】
従来、複写機などに組み込まれ、外部ユニットや周辺回路との通信を介するＩ／Ｏポート回路を有するＩ／Ｏポート制御システムがあった。図６に、従来のＩ／Ｏポート制御システム１βのブロック構成を示す。
【０００３】
図６に示すように、Ｉ／Ｏポート制御システム１βは、Ｉ／Ｏポート回路１００Ａと、各部を中央制御するＣＰＵ（Central Processing Unit）２００と、データを一時的に格納する揮発性のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory read/write）３００と、電気的に書き換え可能な、データを記憶する不揮発のフラッシュメモリ４００を備え、各部がバスＢＵを介して接続される。
【０００４】
図７に、Ｉ／Ｏポート回路１００Ａの内部構成を示す。Ｉ／Ｏポート回路１００Ａは、双方向バッファ（入力１１Ａ，出力１２Ａ）と、アドレスデコーダ１３Ａと、セレクタ１４Ａと、ポートレジスタ２５Ａと、を備えて構成される。ポートレジスタ２５Ａは、ｎ（ｎは任意の自然数）のＤＦＦ（Delay Flip-Flop）回路２６Ａを有する。
【０００５】
アドレスデコーダ１３Ａは、ＣＰＵ２００から出力されるアドレス信号、ＣＳ（Chip Select）信号、ＷＥ（Write Enable）信号及びＲＥ（Read Enable）信号に基づいて、ポートレジスタ２５Ａに接続される出力ポート（１）〜（ｎ）と、セレクタ１４Ｂに接続される入力ポート（１）〜（ｎ）と、のデータ通信経路を切り替える。つまり、アドレスデコーダ１３Ａから出力されるライトデコード信号により、データバスとしてのバスＢＵ及び入力バッファ１１Ａを介して、ＣＰＵ２００などのバスＢＵ上の部材から、外部ユニット／周辺回路へのデータの経路が、出力ポート（１）〜（ｎ）から選択される。また、アドレスデコーダ１３Ａから出力されるリードデコード信号により、出力バッファ１２Ａ及びデータバスとしてのバスＢＵを介して、外部ユニット／周辺回路から、ＣＰＵ２００などのバスＢＵ上の部材へのデータの経路が、入力ポート（１）〜（ｎ）から選択される。
【０００６】
このように、Ｉ／Ｏポート回路１００Ａは、ＣＰＵ２００が制御するバスＢＵに接続する構成をとることで、ＣＰＵ２００が持つアドレス空間中の一部分をＩ／Ｏポート回路１００Ａのアドレス空間に割り振ることによって、Ｉ／Ｏポート回路１００Ａの出力ポート（１）〜（ｎ）を設定する制御や、入力ポート（１）〜（ｎ）に入力される信号レベル状態の監視を行う。また、Ｉ／Ｏポート回路１００Ａにおいて、電源オン／オフなどのシステムリセットが掛かったことなどにより、ＤＦＦ２６Ａなどの記憶素子に記憶されたＩ／Ｏポートの状態がクリアされる。
【０００７】
そこで、電源オン／オフなどのシステムリセットが掛かったことなどにより、クリアされたＩ／Ｏポートの状態を元に戻す手段としては、不揮発性メモリを設ける構成が一般的である。図８に、Ｉ／Ｏポート制御システム１γのブロック構成を示す。Ｉ／Ｏポート制御システム１γは、Ｉ／Ｏポート制御システム１βのバスＢＵ上に、不揮発メモリ６００を備えて構成される。不揮発メモリ６００は、制御が比較的簡単なことなどから、Ｓ（Static）ＲＡＭ６１及びバッテリ６２を備えて構成される。
【０００８】
Ｉ／Ｏポート制御システム１γがシステムリセットする前に、Ｉ／Ｏポート回路１００Ａに設定されたデータが不揮発性メモリ６００に記憶される。そして、システムリセット解除後、再びＣＰＵ２００が起動された場合に、ＣＰＵ２００により、不揮発性メモリ６００に記憶されたＩ／Ｏポートの状態データが読み出されてＩ／Ｏポート回路１００Ａに設定される。
【０００９】
また、ＣＰＵ及びメモリが接続されたシステムバス上のＩ／Ｏ制御装置が、構造体フェッチエンジンを有し、その構造体フェッチエンジンにより、メモリに記憶されたＩ／Ｏ命令の実行に必要な情報がシステムバスを介して読み出されてＩ／Ｏポートの状態が設定される構成が考えられている（例えば、特許文献１参照）。この構成により、ＣＰＵの負担が低減される。
【特許文献１】特開平９−２８２２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、図８のＩ／Ｏポート制御システム１γの構成では、ＯＳ（operating System）などのソフトウェアの制御のため、電源オンからシステムリセットが解除されてＣＰＵ２００が起動してＩ／Ｏポート回路１００Ａの設定を行うまでの間は、出力ポートから出力される信号が意図しない論理となり、出力ポート先に接続された周辺回路や、別ＣＰＵを持った外部ユニットに対して、待ち時間を設けるなどして回路同士又はシステム同士の状態の整合を行う必要があった。
【００１１】
また、Ｉ／Ｏ制御装置に、構造体フェッチエンジンを設ける構成の場合、ＣＰＵと、構造体フェッチエンジンとの、システムバス上のデータ転送の調停を行う回路などが必要になるおそれがあった。
【００１２】
本発明の課題は、バス上の調停を行うことなく、システムリセット解除後のＩ／Ｏポートの状態の回復を高速に行うことである。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、請求項１に記載の発明は、ＣＰＵと、当該ＣＰＵが制御するバス上に設けられて、外部ユニット及び周辺回路のうちの少なくとも１つのＩ／Ｏポートを制御するＩ／Ｏポート回路とを備えるＩ／Ｏポート制御システムにおいて、
前記バスとは別に前記Ｉ／Ｏポート回路に接続され、前記Ｉ／Ｏポートの状態データを記憶する不揮発性メモリを備え、
前記Ｉ／Ｏポート回路は、
前記バス上のＣＰＵとの通信を介するＣＰＵインタフェース部と、
前記不揮発性メモリとの通信を介するメモリインタフェース部と、
システムリセット解除後の処理実行のタイミングを制御するタイミング制御部と、
前記タイミング制御部のタイミング制御に基づいて、システムリセット解除後に、システムリセット直前のＩ／Ｏポートの状態データを前記メモリインタフェース部を介して前記不揮発性メモリから読み込み、当該Ｉ／Ｏポートの状態データに基づいて前記Ｉ／Ｏポートの状態を設定するＩ／Ｏポート制御部と、を備えることを特徴とする。
【００１４】
請求項２に記載の発明は、請求項１に記載のＩ／Ｏポート制御システムにおいて、
前記不揮発性メモリは、先頭アドレスからアドレス順に記憶される前記Ｉ／Ｏポートの状態データと、前記先頭アドレスとを記憶し、
前記Ｉ／Ｏポート制御部は、前記システムリセット解除後に、前記先頭アドレスを前記メモリインタフェース部を介して前記不揮発性メモリから読み込み、当該先頭アドレスに基づいてシステムリセット時のＩ／Ｏポートの状態データを前記メモリインタフェース部を介して前記不揮発性メモリからアドレス順に読み込むことを特徴とする。
【００１５】
請求項３に記載の発明は、請求項１又は２に記載のＩ／Ｏポート制御システムにおいて、
前記不揮発性メモリは、磁気抵抗メモリ及び強誘電体メモリのうちの少なくとも１つからなることを特徴とする。
【発明の効果】
【００１６】
請求項１に記載の発明によれば、Ｉ／Ｏポート制御部が、システムリセット解除後に、システムリセット直前のＩ／Ｏポートの状態データを、メモリインタフェース部を介して、バス上にない不揮発性メモリから読み込み、当該Ｉ／Ｏポートの状態データに基づいてＩ／Ｏポートの状態を設定するので、システムリセット解除後に、ＣＰＵ及びＯＳの起動完了を待つことなく、またバス上の調停を行うことなく、Ｉ／Ｏポートの状態の回復設定を高速に行うことができる。
【００１７】
請求項２に記載の発明によれば、システムリセット解除時に、Ｉ／Ｏポート制御部が、先頭アドレスを不揮発性メモリから読み込み、当該先頭アドレスに基づいてシステムリセット直前のＩ／Ｏポートの状態データを不揮発性メモリから順に読み込むので、先頭アドレスを不揮発性メモリから高速に読み込んだ後、簡単且つ高速にシステムリセット直前のＩ／Ｏポートの状態データを読み込むことができる。
【００１８】
請求項３に記載の発明によれば、不揮発性メモリは、磁気抵抗メモリ及び強誘電体メモリのうちの少なくとも１つからなるので、Ｉ／Ｏポート制御部により、簡単な命令によりランダムアクセスで高速にシステムリセット時のＩ／Ｏポートの状態データを読み込むことができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明に係る実施の形態を説明する。ただし、発明の範囲は、図示例に限定されない。
【００２０】
先ず、図１〜図４を参照して、本実施の形態の装置構成を説明する。図１に、本実施の形態に係るＩ／Ｏポート制御システム１αのブロック構成を示す。図２に、Ｉ／Ｏポート回路１００の内部構成を示す。図３に、ＣＰＵインタフェース部１０及びＩ／Ｏポート制御部２０の内部構成を示す。図４に、メモリインタフェース部３０及びタイミング制御部４０の内部構成を示す。
【００２１】
図１に示すように、本実施の形態に係るＩ／Ｏポート制御システム１αは、Ｉ／Ｏポート回路１００と、ＣＰＵ２００と、ＳＤＲＡＭ３００と、フラッシュメモリ４００と、ＭＲＡＭ（Magnetoresistive（磁気抵抗） RAM）５００と、を備えて構成され、Ｉ／Ｏポート回路１００、ＣＰＵ２００、ＳＤＲＡＭ３００及びフラッシュメモリ４００は、バスＢＵに接続される。また、ＭＲＡＭ５００は、Ｉ／Ｏポート回路１００に接続される。
【００２２】
Ｉ／Ｏポート制御システム１αは、例えば、複写機の内部に構成されるものとするが、これに限定されるものではない。例えば、Ｉ／Ｏポート制御システム１αは、例えば、プリンタなどの画像形成装置や、ＰＣ（Personal Computer）、ＰＤＡ（Personal Digital Assistant）などの情報処理装置、などの内部に構成されるものとしてもよい。
【００２３】
ＣＰＵ２００は、各部を中央制御し、特にＩ／Ｏポート回路１００のＩ／Ｏポート状態の設定が可能である。ＳＤＲＡＭ３００は、各種データや各種プログラムをランダムアクセス可能に一時的に格納する。フラッシュメモリ４００は、電気的にデータの書き換えが可能な不揮発性のメモリである。ＭＲＡＭ５００は、記憶容量が大きく、アクセススピードが高速で且つランダムアクセスが可能な不揮発性のメモリである。
【００２４】
図２に示すように、Ｉ／Ｏポート回路１００は、ＣＰＵインタフェース部１０と、Ｉ／Ｏポート制御部２０と、メモリインタフェース部３０と、タイミング制御部４０と、と備えて構成される。ＣＰＵインタフェース部１０は、ＣＰＵ２００を有するバスＢＵと接続される。また、Ｉ／Ｏポート制御部２０は、Ｉ／Ｏポートを介する外部ユニット／周辺回路と接続される。また、メモリインタフェース部３０は、ＭＲＡＭ５００と接続される。つまり、ＣＰＵ２００と外部ユニット／周辺回路とは、ＣＰＵインタフェース部１０及びＩ／Ｏポート制御部２０を介してデータを送受信する。ＣＰＵ２００とＭＲＡＭ５００とが、ＣＰＵインタフェース部１０及びメモリインタフェース部３０を介してデータを送受信する。タイミング制御部４０は、Ｉ／Ｏポート制御部２０及びメモリインタフェース部３０のデータ送受信のタイミングを制御する。
【００２５】
Ｉ／Ｏポートは、Ｉ／Ｏポート回路１００にデータ入力するｎ個の入力ポート（Ａ），（Ｂ），…，（ｎ）（ｎは任意の自然数）と、Ｉ／Ｏポート回路１００からデータ出力するｎ個の出力ポート（Ａ），（Ｂ），…，（ｎ）（ｎは任意の自然数）とからなるものとする。入力ポートから出力される信号をＰＩ（Ａ），ＰＩ（Ｂ），…，ＰＩ（ｎ）とし、出力ポートへ入力する信号をＰＯ（Ａ），ＰＯ（Ｂ），…，ＰＩ（ｎ）とする。また、周期的なＣＬＫ（CLocK）信号と、電源オフなどによりリセットされるＲＳＴＢ信号（システムリセット信号）とが、Ｉ／Ｏポート回路１００に入力される。
【００２６】
図３に示すように、ＣＰＵインタフェース部１０は、双方向バッファ（入力１１，出力１２）と、アドレスデコーダ１３と、セレクタ１４と、を備えて構成される。また、Ｉ／Ｏポート制御部１０は、バッファ２１，２２と、シフトレジスタ２３と、セレクタ２４と、ポートレジスタ２５と、を備えて構成される。ポートレジスタ２５は、ｎ個のＤＦＦ２６から構成される。
【００２７】
図４に示すように、メモリインタフェース部３０は、メモリレジスタ３１と、双方向バッファ３２，３３と、を備えて構成される。メモリレジスタ３１は、４つのセレクタ３４と、４つのＤＦＦ３５と、から構成される。また、タイミング制御部４０は、シーケンス回路４１と、制御回路４２と、レジスタ４３と、を備えて構成される。
【００２８】
アドレスデコーダ１３は、ＣＰＵ２００からバスＢＵを介して送信される信号に基づいて、セレクタ１４及びポートレジスタ２５に制御信号を入力して制御する。このＣＰＵ２００からアドレスデコーダ１３に送信される信号は、データの読み書き先のアドレスを示すアドレスバス信号と、Ｉ／Ｏポートの外部ユニット／周辺回路のデータ読み書きの際にオンされるＣＳ（Chip Select）バス（Ｉ／Ｏ）信号と、データ書き込みを許可するＷＥ（Write Enable）Ｂ（Bus）信号と、データ読み込みを許可するＲＥ（Read Enable）Ｂ（Bus）信号と、が入力される。
【００２９】
セレクタ１４には、入力ポートからの信号ＰＩ（Ａ），ＰＩ（Ｂ），…，ＰＩ（ｎ）がバッファ２２を介して入力され、ＭＲＡＭ５００からバッファ３３を介して入力された信号ＭＥＭ＿ＤＡＴＯＵＴが入力され、さらにポートレジスタ２５から入力される出力ポートへの信号ＰＯ（Ａ），ＰＯ（Ｂ），…，ＰＯ（ｎ）が入力される。これらの信号が、アドレスデコーダ１３から入力される制御信号に基づいて、セレクタ１４により選択されて、データ信号として、出力バッファ１２を介してバスＢＵ上のＣＰＵ２００などの部材に送信される。
【００３０】
また、バスＢＵ上のＣＰＵ２００などの部材から入力されるデータ信号ＤＡＴ−ＩＮは、入力バッファ１１、バッファ３２を介してＭＲＡＭ５００に送信される。また、データ信号ＤＡＴ−ＩＮは、バッファ２１を介してセレクタ２４に入力される。また、ＭＲＡＭ５００から入力されたデータ信号ＭＥＭ＿ＤＡＴＯＵＴと、制御回路４２から出力されるＳＨＩＦＴ＿ＣＬＫ（Shift Clock）信号とがシフトレジスタ２３に入力され、ＳＨＩＦＴ＿ＣＬＫ信号に基づいて、データ信号ＭＥＭ＿ＤＡＴＯＵＴ及びポートラッチパルスとがセレクタ２４に入力される。
【００３１】
セレクタ２４は、システムの通常稼動時に、アドレスデコーダ１３から出力される制御信号に基づいて、データ信号ＤＡＴ＿ＩＮをポートごとに選択して書き込みデータ信号とし、またポートラッチパルスを生成して、ポートごとの書き込みデータ信号及びポートラッチパルスをポートレジスタ２５に入力する。また、セレクタ２４は、システムリセット解除後に、制御回路４２から入力されたＳＨＩＦＴ＿ＣＬＫに基づいて、データ信号ＭＥＭ＿ＤＡＴＯＵＴを選択してポートごとに選択して書き込みデータ信号とし、またポートラッチパルスを生成して、ポートごとの書き込みデータ信号及びポートラッチパルスをポートレジスタ２５に入力する。ポートレジスタ２５は、セレクタ２４から入力されたポートラッチパルスに基づいて、セレクタ２４から入力されたポートごとの書き込みデータ信号を、信号ＰＯ（Ａ），ＰＯ（Ｂ），…，ＰＯ（ｎ）として出力ポートに入力する。
【００３２】
シーケンス回路４１は、Ｉ／Ｏポート制御システム１αのシステム状態を検出し、制御回路４２に出力する。制御回路４２は、シーケンス回路４１から入力されるシステム状態に基づいて、ＳＨＩＦＴ＿ＣＬＫを生成してシフトレジスタ２３に入力し、制御信号を生成してセレクタ２４に入力し、ＭＲＡＭ５００のアドレス信号、ＣＳ信号、ＷＥ信号及びＲＥ信号を生成して各セレクタ３４に入力し、制御信号を生成してメモリレジスタ３１に入力し、制御信号（レジスタラッチパルス）を生成してレジスタ４３に入力する。レジスタ４３は、制御回路４２の制御により、ＭＲＡＭ５００から入力された信号ＭＥＭ＿ＤＡＴＯＵＴとしてのＩ／Ｏポートの状態データの先頭アドレスを入力して記憶する。レジスタ４３は、揮発性のメモリである。
【００３３】
各セレクタ３４には、バスＢＵ上のＣＰＵ２００から及び制御回路４２からの、アドレスバス信号及びアドレス信号と、ＣＳバス（ＭＥＭ）信号及びＣＳ信号と、ＷＥＢ信号及びＷＥ信号と、ＲＥＢ信号及びＲＥ信号と、がそれぞれ入力される。各信号は、各セレクタ３４により選択されて各ＤＦＦ３５に出力される。そして、制御回路４２の制御信号により、各ＤＦＦ３５に適切なタイミングでオン信号が入力されて、アドレス信号、ＣＳ信号、ＷＥ信号及びＲＥ信号としてＭＲＡＭ５００に出力される。ＭＲＡＭ５００は、アドレス信号、ＣＳ信号、ＷＥ信号及びＲＥ信号というような簡単な命令により制御されるメモリである。
【００３４】
次に、図５を参照して、Ｉ／Ｏポート制御システム１αの動作を説明する。図５に、システムリセット解除後の各種信号のタイミングチャートを示す。先ず、ＣＰＵ２００及びＯＳが起動完了され（以下、この状態をシステム稼動中とする）、ＣＰＵ２００がＩ／Ｏポート回路１００の設定を行う動作を説明する。
【００３５】
ＣＰＵ２００は、アドレスバス信号、ＣＳバス（Ｉ／Ｏ）信号、ＷＥＢ信号、ＲＥＢ信号及びＣＳバス（ＭＥＭ）信号を生成する。アドレスバス信号、ＣＳバス（Ｉ／Ｏ）信号、ＷＥＢ信号及びＲＥＢ信号に基づいて、アドレスデコーダ１３によりセレクタ１４のデータ選択及びセレクタ２４のデータ出力が制御される。ＣＰＵ２００の制御により、外部ユニット／周辺回路のＩ／Ｏポートへの書き込みデータと、ＭＲＡＭ５００への書き込みデータとの混合書き込みデータとしてのデータ信号ＤＡＴ＿ＩＮが、バスＢＵから入力バッファ１１を介してポート制御部２０に入力される。
【００３６】
データ信号ＤＡＴ＿ＩＮは、バッファ２１を介してセレクタ２４に入力されるとともに、バッファ３２を介してＭＲＡＭ５００に入力される。Ｉ／Ｏポートの出力ポートへデータを書き込む場合に、セレクタ２４によりデータ信号ＤＡＴ＿ＩＮが選択されて、ポートラッチパルス（ポートレジスタＡラッチパルス〜ポートレジスタｎラッチパルス）とともに、ポートレジスタ２５に入力され、ポートレジスタ２５により、ポートラッチパルスに基づいて、各出力ポートへの書き込み信号ＰＯ（Ａ），ＰＯ（Ｂ），…，ＰＯ（ｎ）が外部ユニット／周辺回路の各出力ポート（１）〜（ｎ）に入力されて書き込まれる。また、書き込み信号ＰＯ（Ａ），ＰＯ（Ｂ），…，ＰＯ（ｎ）及び読み込み信号ＰＩ（Ａ），ＰＩ（Ｂ），…，ＰＩ（ｎ）が、セレクタ１４、バッファ１２を介してＣＰＵ２００に入力され、ＣＰＵ２００がＩ／Ｏポートの状態を管理してＳＤＲＡＭ３００に記憶する。
【００３７】
また、アドレスバス信号、ＣＳバス（ＭＥＭ）信号、ＷＥＢ信号及びＲＥＢ信号は、セレクタ３４に入力される。ＭＲＡＭ５００へデータを書き込む場合に、制御回路４２からの制御信号に基づいて、セレクタ３４により、アドレスバス信号、ＣＳバス（ＭＥＭ）信号、ＷＥＢ信号及びＲＥＢ信号が選択され、ＤＦＦ３５を介して、それぞれアドレス信号、ＣＳ信号、ＷＥ信号及びＲＥ信号としてＭＲＡＭ５００に入力される。ＭＲＡＭでは、アドレス信号、ＣＳ（ＭＥＭ）信号、ＷＥ信号及びＲＥ信号に基づいて、データ信号ＤＡＴ＿ＩＮ中の、ＭＲＡＭ５００への書き込みデータが書き込まれるとともに、ＭＲＡＭ５００に記憶されたデータが読み込まれてデータ信号ＭＥＭ＿ＤＡＴＯＵＴをメモリインタフェース３０に入力する。このデータ信号ＭＥＭ＿ＤＡＴＯＵＴは、バッファ３３、セレクタ１４、出力バッファ１２を介してＣＰＵ２００に入力され、ＣＰＵ２００がＭＲＡＭ５００のデータ記憶状態を管理してＳＤＲＡＭ３００に記憶する。
【００３８】
このようにして、Ｉ／Ｏポートのデータの読み込み及び書き込みと、ＭＲＡＭ５００のデータの読み込み及び書き込みとが実行される。また、システム稼動中に随時、ＭＲＡＭ５００の固定領域には、ＭＲＡＭ５００内のＩ／Ｏポートの状態データの先頭アドレスを格納する先頭アドレスデータが書き込まれ、また、その他の領域に、Ｉ／Ｏポートの状態データが書き込まれる。この固定領域のアドレスを先頭アドレス格納アドレスとする。Ｉ／Ｏポートの状態データは、例えば、各ポートごとのデータに分割されており、各分割データを格納する各アドレスと対応づけられて記憶される。このポートごとの状態データをポートデータ（ポート（Ａ）データ〜ポート（ｎ）データ）とする。さらに、各分割データが先頭アドレスからアドレス順にＭＲＡＭ５００に記憶されるものとする。
【００３９】
そして、電源オン／オフなどにより、Ｉ／Ｏポート制御システム１αのＣＰＵ２００及びＯＳが動作停止してシステムリセットがかかり、その後、システムリセットが解除された場合の動作を説明する。本実施の形態においては、制御回路４２からセレクタ２４に入力する制御信号が、ローで、シフトレジスタ２３を介するデータ信号ＭＥＭ＿ＤＡＴＯＵＴがセレクタ２４により選択され、ハイで、データ信号ＤＡＴ＿ＩＮがセレクタ２４により選択されるものとする。また、制御回路４２からセレクタ３４に入力する制御信号が、ローで、制御回路４２から生成されるアドレス信号、ＣＳ信号、ＷＥ信号及びＲＥ信号がセレクタ３４により選択され、ハイで、ＣＰＵ２００からのアドレスバス信号、ＣＳバス（ＭＥＭ）信号、ＷＥＢ信号及びＲＥＢ信号がセレクタ３４により選択されるものとする。
【００４０】
図５のタイミングチャートに示すように、システムリセット解除後、先ず、シーケンス回路４１により初期状態モードに設定される。そして、システムリセットの解除を示すＲＳＴＢ信号のオンがＩ／Ｏポート回路１００に入力され、シーケンス回路４１により、ＭＲＡＭ５００内の先頭アドレスデータを読み込む第１モードに設定される。
【００４１】
先ず、第１モード設定開始から２ＣＬＫ後に、制御回路４２により、先頭アドレス格納アドレスのアドレス信号が生成される。そして、制御回路４２により、１ＣＬＫ後に、ＣＳ信号及びＲＥ信号がオンされる。そして、ＭＲＡＭ５００から先頭アドレス格納アドレスの先頭アドレスデータがバッファ３３を介して読み込まれて、第１モード設定開始から５ＣＬＫ後に、制御回路４２により、レジスタラッチパルスが生成されてレジスタ４０に入力されて、レジスタラッチパルスの立ち上がりエッジで、先頭アドレスデータがレジスタ４３に記憶される。
【００４２】
そして、レジスタラッチパルスの立ち下り時に、シーケンス回路４１により、ＭＲＡＭ５００に記憶されたＩ／Ｏポートの状態データをＩ／Ｏポートに設定する第２モードに移行される。第２モード設定開始から５ＣＬＫ後に、制御回路４２により、レジスタ４３内の先頭アドレスデータに基づいてアドレス信号が生成されて、また、制御回路４２から出力されるＣＳ信号及びＲＥ信号がオンされる。これにより、ＭＲＡＭ５００内の先頭アドレスのポート（Ａ）データが読み込まれて、第２モード設定開始から８ＣＬＫ後に、制御回路４２によりＳＨＩＦＴ＿ＣＬＫがオンされ、ＳＨＩＦＴ＿ＣＬＫの立ち上がりにより、シフトレジスタ２３からポート（Ａ）データがセレクタ２４及びポートレジスタ２５に順に入力される。これとともに、ＳＨＩＦＴ＿ＣＬＫに基づいて、シフトレジスタ２３により、ポート（Ａ）に対応するＤＦＦ２６に蓄積するデータを出力させるポートレジスタＡラッチパルスが生成されてセレクタ２４及びポートレジスタ２５に順に入力され、ポートレジスタ２５から出力されるポート（Ａ）データが書き込み信号ＰＯ（Ａ）として出力ポート（Ａ）に入力されて設定される。
【００４３】
制御回路４２により、ＳＨＩＦＴ＿ＣＬＫのオンは、９ＣＫＬ間隔で発生される。次に、出力ポート（Ａ）と同様にして、先頭アドレスデータ＋１に対応するポート（Ｂ）データが書き込み信号ＰＯ（Ｂ）として出力ポート（Ｂ）に入力されて設定される。そして、このポートデータの出力ポートへの設定手順が繰り返し実行されて、最後に、ポート（ｎ）データが書き込み信号ＰＯ（ｎ）として出力ポート（ｎ）に入力されて設定される。
【００４４】
この出力ポート（ｎ）の設定完了前又はその後のタイミングで、ＣＰＵ２００及びＯＳが起動完了される。そして、出力ポート（ｎ）の設定完了且つＣＰＵ２００及びＯＳの起動完了後、シーケンス回路４１により、ＣＰＵ２００の外部ユニット／周辺回路のＩ／Ｏポートの状態データの読み書きと、ＭＲＡＭ５００のデータ読み書きとが可能なシステム稼動中の第３のモードに設定される。
【００４５】
このとき、制御回路４２から出力されるセレクタ３４のセレクタ制御信号がハイに設定される。そして、ＣＰＵ２００により、外部ユニット／周辺回路のＩ／Ｏポートの状態データの読み書きと、ＭＲＡＭ５００のデータ読み書きとが実行される。
【００４６】
以上、本実施の形態によれば、Ｉ／Ｏポート制御部２０が、システムリセット解除後に、システムリセット直前のＩ／Ｏポートの状態データを、メモリインタフェース部３０を介して、バスＢＵ上にないＭＲＡＭ５００から読み込み、当該Ｉ／Ｏポートの状態データに基づいてＩ／Ｏポートの状態を設定する。このため、システムリセット解除後に、ＣＰＵ２００及びＯＳの起動完了を待つことなく、また、バスＢＵ上の調停を行うことなく、Ｉ／Ｏポートの状態の回復設定を高速に行うことができる。
【００４７】
また、システムリセット解除後に、Ｉ／Ｏポート制御部２０が、先頭アドレスをメモリインタフェース部３０を介してＭＲＡＭ５００の固定領域から読み込み、当該先頭アドレスに基づいてシステムリセット直前のＩ／Ｏポートの各ポートの状態データをメモリインタフェース部３０を介してＭＲＡＭ５００からアドレス順に読み込むので、先頭アドレスをＭＲＡＭ５００から高速に読み込んだ後、簡単且つ高速にシステムリセット直前のＩ／Ｏポートの状態データを読み込むことができる。
【００４８】
また、Ｉ／Ｏポートの状態データを格納するメモリをＭＲＡＭ５００にするので、Ｉ／Ｏポート制御部２０が、簡単な命令によりランダムアクセスで高速にシステムリセット直前のＩ／Ｏポートの状態データを読み込むことができる。
【００４９】
なお、以上の実施の形態における記述は、本発明に係る好適なＩ／Ｏポート制御システムの一例であり、これに限定されるものではない。
また、以上の実施の形態におけるＩ／Ｏポート制御システムを構成する各部の細部構成及び細部動作に関して本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【００５０】
例えば、上記各実施の形態においては、Ｉ／Ｏポートの状態データを保存するために、簡単な命令（アドレス信号、ＣＳ信号、ＲＥ信号及びＷＥ信号）により、高速データ読み書きが可能な大容量の不揮発性ランダムアクセスメモリとして、磁気抵抗メモリとしてののＭＲＡＭを用いる構成としたが、これに限定されるものではない。例えば、強誘電体メモリとしてのＦｅ（Ferroelectric：強誘電体）ＲＡＭを用いる構成としてもよい。また、これらの複数種類のメモリを組み合わせる構成としてもよい。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係るＩ／Ｏポート制御システム１αのブロック構成図である。
【図２】Ｉ／Ｏポート回路１００の内部構成を示す図である。
【図３】ＣＰＵインタフェース部１０及びＩ／Ｏポート制御部２０の内部構成を示す図である。
【図４】メモリインタフェース部３０及びタイミング制御部４０の内部構成を示す図である。
【図５】システムリセット解除後の各種信号のタイミングチャートである。
【図６】従来のＩ／Ｏ制御ポートシステム１βのブロック構成図である。
【図７】Ｉ／Ｏポート回路１００Ａの内部構成を示す図である。
【図８】従来のＩ／Ｏ制御ポートシステム１γのブロック構成図である。
【符号の説明】
【００５２】
１α，１β，１γ  Ｉ／Ｏポート制御システム
１００，１００Ａ  Ｉ／Ｏポート回路
１０  ＣＰＵ／インタフェース部
１１，１１Ａ  入力バッファ
１２，１２Ａ  出力バッファ
１３，１３Ａ  アドレスデコーダ
１４，１４Ａ  セレクタ
２０  Ｉ／Ｏポート制御部
２１，２２  バッファ
２３  シフトレジスタ
２４  セレクタ
２５，２５Ａ  ポートレジスタ
２６，２６Ａ  ＤＦＦ
３０  メモリインタフェース部
３１  メモリレジスタ
３２，３３  バッファ
３４  セレクタ
３５  ＤＦＦ
４０  タイミング制御部
４１  シーケンス回路
４２  制御回路
４３  レジスタ
２００  ＣＰＵ
３００  ＳＤＲＡＭ
４００  フラッシュメモリ
５００  ＭＲＡＭ
６００  不揮発性メモリ
６１  ＳＲＡＭ
６２  バッテリ
ＢＵ  バス
【図１】
2005222217.tif 000003
【図２】
2005222217.tif 000004
【図３】
2005222217.tif 000005
【図４】
2005222217.tif 000006
【図５】
2005222217.tif 000007
【図６】
2005222217.tif 000008
【図７】
2005222217.tif 000009
【図８】
2005222217.tif 000010