(57)【要約】【課題】  マイクロコンピュータからＩ／Ｏコントローラへアクセスする周期の短縮化を図る。【解決手段】  マイクロコンピュータ１００は、Ｉ／Ｏコントローラ３００の固有のアドレスを持つレジスタにアクセスする時は、マイクロコンピュータの出力する固有のアドレスをインターフェース回路２００を介してＩ／Ｏコントローラに入力し、同一のアドレスを持つレジスタにアクセスする時は、マイクロコンピュータから出力する複数のアドレスをインターフェース回路２００によって同一のアドレスに変換してＩ／Ｏコントローラに入力する。【選択図】  図１
2008065377.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータと、
固有のアドレスをそれぞれ持つ複数のＮビットレジスタおよび同一アドレスを持つ２個以上のＮビットレジスタを有するＩ／Ｏコントローラと、
前記マイクロコンピュータと前記Ｉ／Ｏコントローラ間を接続するＮビットのデータラインと、
前記マイクロコンピュータから前記Ｉ／Ｏコントローラの前記レジスタをアクセスするために出力されたアドレスを変換して前記Ｉ／Ｏコントローラに出力するインターフェース回路と、を備え、
前記Ｎビットレジスタをアクセスするとき、前記マイクロコンピュータから出力された前記Ｎビットレジスタが持つ固有のアドレスを前記インターフェース回路を介して前記Ｉ／Ｏコントローラへ出力し、
前記２個以上のＮビットレジスタをアクセスするとき、前記マイクロコンピュータから出力された複数アドレスを前記インターフェース回路によって前記同一アドレスに変換して前記Ｉ／Ｏコントローラに出力する
ことを特徴とする情報処理装置。
【請求項２】
前記マイクロコンピュータから１命令で前記Ｉ／Ｏコントローラの前記２個以上のＮビットレジスタを連続してアクセスすることを可能とした請求項１に記載の情報処理装置。
【請求項３】
前記インターフェース回路は、前記マイクロコンピュータから出力された前記複数アドレスを少なくとも１ビット以上を下位シフトして前記同一アドレスに変換することを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特にマイクロコンピュータとＩ／Ｏコントローラのインターフェースに関する。
【背景技術】
【０００２】
近年、ＣＤやＤＶＤドライブなどの読出し／書込み速度が年々増加している。結果として、たとえば読出し時には、ＣＤやＤＶＤフォーマットの解読処理と誤り訂正信号処理などを行うシステムＬＳＩの処理能力の向上が求められている。また、読出し／書込み速度の高速化を実現するためには、信号処理回路などのＩ／Ｏコントローラの高速化に加えて、システムＬＳＩの中核部であって全体の制御を行うマイクロコンピュータの処理速度の向上が必要とされている。
【０００３】
マイクロコンピュータの処理速度の向上は、クロックの高速化とともにマイクロコンピュータが処理するデータビットを長くすることで実現される。しかし、このようなマイクロコンピュータは、使用される組込みシステムのコスト制約が厳しいため、レジスタや演算回路や内部バスで取り扱われるデータビットを長くして処理性能の向上を図る場合でも、従来のマイクロコンピュータとの互換性を維持することを考慮して、命令セットの上位互換性を実現したアーキテクチャとすることが多い。その結果、従来のマイクロコンピュータで開発されたプログラムを継続して利用することができて、設計資産の活用が図られ、これによりシステム開発期間の短縮や開発コストの削減が実現される。
【０００４】
更に、このようなマイクロコンピュータは、Ｉ／Ｏポートに接続されるバス構成においても、ダイナミックバスサイジング機能をバスインターフェース部に設けて、メモリなどを含む周辺回路へのアクセスを多ビット幅で行ってデータ転送能力の向上を図るとともに、従来から使用している周辺回路のインターフェース部を改造することのないバスアクセスを可能としている（例えば、非特許文献１を参照。）。その結果、従来のシステムで開発した周辺回路を継続して利用することができて、設計資産の活用が図られ、これによりシステム開発期間の短縮や開発コストの削減が実現される。
【０００５】
一方、ＣＤやＤＶＤドライブでも読出し／書込みするデータ量が増加し、またＣＤやＤＶＤドライブを制御するＩ／Ｏコントローラのデータ量が増加している。そのため、その読出し／書込みするデータの位置指定情報のアドレス長を大きくする必要がある。しかしながら、Ｉ／Ｏインターフェースの拡張仕様の設計にあたっては、互換性を維持するため、同一Ｉ／Ｏアドレスを用いて複数回の読出し／書込みを行うようにすることが行われている（例えば、非特許文献２を参照。）。
【０００６】
また非特許文献２では、拡張したＩ／Ｏインターフェース仕様に対応したＩ／Ｏコントローラ内のマイクロコンピュータによってアクセスされるレジスタは、スタック動作してデータの送受信を行なう。そして、Ｉ／ＯコントローラがＣＤやＤＶＤドライブなどを制御する場合は、スタック構造のレジスタを連結してビットの長いコマンドレジスタやステータスレジスタとして使用している。
【０００７】
このように、ＣＤやＤＶＤドライブなどのシステム処理能力の向上や処理対象データ量の拡大に対応するための開発設計では、組込みシステムに求められるコスト制約が厳しいため、従来との互換性を維持するようにして、システム開発期間の短縮や開発コストの削減が実現される。
【０００８】
更にまた、このような組込みシステムのコスト制約を解決するため、マイクロコンピュータのバッファメモリの管理制御では、バッファメモリコントローラ内にアドレス変換回路を設けて、必要なアドレスをハードウェア的に生成するようにして、マイクロコンピュータの負荷を軽減する技術が提案されている（例えば、特許文献１参照。）。
【０００９】
以上説明したように、ＣＤやＤＶＤドライブの高倍速化の発展に従いデータレートが高くなっても、開発コストの増加や開発効率の低下を最小限にするようにしながら、マイクロコンピュータやＩ／Ｏコントローラの処理能力向上が図られて来た。しかしながら、ＤＶＤドライブの機構制御やデータ処理機能にあっては、一定データ単位ごとにマイクロコンピュータがＩ／Ｏコントローラからのステータスを元に実行内容を決定して、コマンド設定により指示するために、マイクロコンピュータからＩ／Ｏコントローラへのアクセス周期を短くする必要がある。アクセス周期を短縮する方法として、マイクロコンピュータに内蔵または外付けされたＤＭＡ回路によってＩ／Ｏコントローラをアクセスする方法があるが、この場合、従来の制御プログラムの修正を行なう必要があり、開発期間が長くなる問題があった。
【特許文献１】特開２００１−３２５０７７号公報  （第３頁、図１）
【非特許文献１】“ＴＬＣＳ−９００／Ｌ１シリーズ共通マニュアル  第３章  ＴＬＣＳ−９００／Ｌ１  ＣＰＵ”、［online］、平成１４年２月６日、東芝セミコンダクター社、［平成１７年１１月２１日検索］、インターネット＜ＵＲＬ：http://www.semicon.toshiba.co.jp/prd/micro/td/900family/900l1/kyoutu/pdf/900l1_chap3_cpu.pdf＞、３２ページ
【非特許文献２】インターフェース編集部編「ＡＴＡ（ＩＤＥ）／ＡＴＡＰＩの徹底研究」ＣＱ出版株式会社、２００１年１０月１日発行、４６頁
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上記問題を解決するためになされたもので、マイクロコンピュータからＩ／Ｏコントローラへアクセスする時、個別のＩ／ＯポートをアクセスしてＩ／Ｏコントローラを制御することを可能としながら、少ない付加回路でマイクロコンピュータからＩ／Ｏコントローラへのアクセス周期の短縮化を実現するインターフェース回路を有する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の情報処理装置は、マイクロコンピュータと、固有のアドレスをそれぞれ持つ複数のＮビットレジスタおよび同一アドレスを持つ２個以上のＮビットレジスタを有するＩ／Ｏコントローラと、前記マイクロコンピュータと前記Ｉ／Ｏコントローラ間を接続するＮビットのデータラインと、前記マイクロコンピュータから前記Ｉ／Ｏコントローラの前記レジスタをアクセスするために出力されたアドレスを変換して前記Ｉ／Ｏコントローラに出力するインターフェース回路と、を備え、前記Ｎビットレジスタをアクセスするとき、前記マイクロコンピュータから出力された前記Ｎビットレジスタが持つ固有のアドレスを前記インターフェース回路を介して前記Ｉ／Ｏコントローラへ出力し、前記２個以上のＮビットレジスタをアクセスするとき、前記マイクロコンピュータから出力された複数アドレスを前記インターフェース回路によって前記同一アドレスに変換して前記Ｉ／Ｏコントローラに出力することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、マイクロコンピュータからＩ／Ｏコントローラへアクセスする時、個別のＩ／ＯポートをアクセスしてＩ／Ｏコントローラを制御することを可能としながら、少ない付加回路でマイクロコンピュータからＩ／Ｏコントローラへのアクセス周期の短縮化を実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施例を説明する。
【実施例】
【００１４】
本発明の実施例に係る情報処理装置を、図１乃至図９を参照して説明する。
【００１５】
図１は、本発明の実施例に係るインターフェース回路を有する情報処理装置のシステム構成を示すブロック図である。図２は、本発明の実施例に係るインターフェース回路の構成を示すブロック図である。図３は、実施例のＩ／Ｏコントローラのレジスタ構成を示す構成図である。図４は、実施例のＩ／Ｏコントローラのレジスタ１にアクセスする命令列とアクセス動作を示す図である。図５は、図４に示す命令列を実行した時のアクセス動作を示す動作波形図である。図６は、実施例のＩ／Ｏコントローラのレジスタ２、３、４、５にアクセスする命令とアクセス動作を示す図である。図７は、図６に示す命令を実行した時のアクセス動作を示す動作波形図である。図８は、実施例のインターフェース回路でアドレス変換を行ってＩ／Ｏコントローラのレジスタ１にアクセスする命令とアクセス動作を示す図である。図９は、図８に示す命令を実行した時のアクセス動作を示す動作波形図である。
【００１６】
図１に示す本発明の実施例に係る情報処理装置１は、プログラムを実行するマイクロコンピュータ１００と、マイクロコンピュータ１００から出力されるアドレスＡＤＲをチップイネーブル信号ＣＥ１／ＣＥ２に従ってアドレス変換するインターフェース回路２００と、図示されないＩ／Ｏ制御ブロックをコントロールするＩ／Ｏコントローラ３００から構成される。
【００１７】
マイクロコンピュータ１００から出力される例えば下位１０ビットのアドレス信号Ａ［０：９］（アドレス信号のビット位置情報を含めてＡ［０：９］と示す）とチップイネーブル信号ＣＥ１およびチップイネーブル信号ＣＥ２は、インターフェース回路２００に入力される。また、インターフェース回路２００から出力される例えば８ビットの変換後のアドレス信号Ａ［０：７］とチップイネーブル信号ＣＥは、Ｉ／Ｏコントローラ３００に入力される。例えば８ビットのデータ信号Ｄ［０：７］、リード信号Ｒ、ライト信号Ｗ、ビジー信号ＢＳＹは、マイクロコンピュータ１００とＩ／Ｏコントローラ３００にとの間に接続されて、マイクロコンピュータ１００とＩ／Ｏコントローラとの間のコマンドやステータスデータのデータ転送に使用される。以下の説明では、ビジー信号ＢＳＹがアクティブとなって、データ入出力動作が待たされる例は省略している。
【００１８】
この実施例では、マイクロコンピュータ１００は、例えば３２ビットアーキテクチャのマイクロコンピュータで、内部バスおよび内部レジスタが３２ビットで構成される高性能なマイクロコンピュータである。またマイクロコンピュータ１００は、外部バス幅に柔軟に対応できるダイナミックバスサイジング機能を持っている。また、Ｉ／Ｏコントローラ３００は、後述するレジスタＲ１１乃至Ｒ５１を内蔵し、８ビットのデータバスで入出力を行うマイクロコンピュータに対応したインターフェース構成となっている。なお、本発明の構成はこれに限定されるものではなく、例えば６４ビットのマイクロコンピュータと１６ビットのＩ／Ｏコントローラの構成であっても良い。
【００１９】
図２は、インターフェース回路２００の内部構成を示す。インターフェース回路２００は、アドレス信号Ａ［０：９］が分岐して入力され、２入力１出力のセレクタからなる選択回路２１０と、チップイネーブル信号ＣＥ１、ＣＥ２が入力されるＯＲ回路２２０から構成される。
【００２０】
すなわち、マイクロコンピュータ１００から出力される下位１０ビットのアドレス信号Ａ［０：９］のうち、下位８ビットＡ［０：７］が選択回路２１０の一方のデータ入力に入力され、Ａ［２：９］で示される８ビットが選択回路２１０の他方のデータ入力に入力される。
【００２１】
選択回路２１０は、入力されたアドレス信号Ａ［０：７］とアドレス信号Ａ［２：９］のいずれか一方をマイクロコンピュータ１００からのチップイネーブル信号ＣＥ２により選択して、８ビット幅の変換後のアドレス信号Ａ［０：７］としてＩ／Ｏコントローラ３００に出力する。ここでは、選択回路２１０は、チップイネーブル信号ＣＥ２がｈｉｇｈの時はアドレス信号Ａ［０：７］を選択し、Ｌｏｗの時はアドレス信号Ａ［２：９］を選択するように動作する。
【００２２】
ＯＲ回路２２０は、マイクロコントローラ１００からのチップイネーブル信号ＣＥ１とチップイネーブル信号ＣＥ２をＯＲして、チップイネーブル信号ＣＥとしてＩ／Ｏコントローラ３００に出力する。
【００２３】
図３は、Ｉ／Ｏコントローラ３００に内蔵するレジスタの構成を示す。図３（Ａ）は、マイクロコンピュータ１００がＩ／ＯコントローラのレジスタＲ１１乃至Ｒ５１にデータ書込みをする時に転送されるアドレスと、レジスタＲ１１乃至Ｒ５１にセットされるデータの深さ方向の関係を示す。また、図３（Ｂ）は、Ｉ／Ｏコントローラが図示しないＩ／Ｏ制御ブロックにデータ転送する時のデータを記憶するレジスタＲ１１乃至Ｒ５１の構成を示す。なお、ここでＩ／Ｏ制御ブロックとは、例えばＤＶＤシステムのピックアップやモータなどの機構制御ＩＣや、ピックアップを介して入出力する信号処理制御ＩＣや、バッファ管理ＩＣなどがある。それらのＩ／Ｏ制御ブロックとＩ／Ｏコントローラ３００の間は、ローカル仕様のバスで接続されている。
【００２４】
図３のレジスタ構成を、更に詳しく説明する。レジスタＲ１１乃至Ｒ１４、Ｒ２１、Ｒ３１、Ｒ４１、Ｒ５１は、それぞれ８ビットのレジスタである。そして、レジスタＲ１１乃至Ｒ１４は、共通した同一アドレスでアクセスされるが、レジスタＲ２１，Ｒ３１，Ｒ４１，Ｒ５１は、それぞれ固有のアドレスでアクセスされる。
【００２５】
例えば、マイクロコンピュータ１００からＩ／Ｏコントローラ３００へのデータ転送（書き込み）において、アドレス０ｘ３０（０ｘは１６進表示であることを示す）によってレジスタＲ１１乃至Ｒ１４に各８ビットのデータが４段のスタック動作でセットされる。また、アドレス０ｘ４０によってレジスタＲ２１にデータがセットされる。また、アドレス０ｘ４１によってレジスタＲ３１にデータがセットされる。また、アドレス０ｘ４２によってレジスタＲ４１にデータがセットされる。更に、０ｘ４３によってレジスタＲ５１にデータがセットされる。
【００２６】
レジスタＲ１１乃至Ｒ１４のスタック動作とは、マイクロコンピュータ１００からＩ／Ｏコントローラ３００へのアドレス０ｘ３０と共に転送されるデータ転送において、第１データの転送ではレジスタＲ１１にセットされ、第２データの転送ではレジスタＲ１２にセットされ、第３データの転送ではレジスタＲ１３にセットされ、第４データの転送ではレジスタＲ１４にセットされる。
【００２７】
そして、図３（Ｂ）に示す通り、Ｉ／Ｏ制御ブロックにおける制御動作では、レジスタＲ１１乃至Ｒ１４によって３２ビット長のデータが構成されて出力され、他のレジスタＲ２１、Ｒ３１、Ｒ４１、Ｒ５１からはそれぞれ８ビット長のデータが出力される。
【００２８】
次に、図４乃至図９を参照しながら、マイクロコンピュータ１００が命令を実行してＩ／Ｏコントローラ３００の各レジスタからデータを読み出す時のインターフェース回路２００の動作の詳細を説明する。
【００２９】
図４は、マイクロコンピュータ１００がＩ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４から３２ビット長のデータを読出し、マイクロコンピュータ１００のレジスタに読み込む動作（（４１）〜（５１））の１１個の命令（ニーモニック）列と、Ｉ／Ｏコントローラ３００の動作を示したものである。
【００３０】
まず、マイクロコンピュータ１００は、Ｉ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４を読み出すためにアドレス０ｘ３０を出力すると共に、チップイネーブル信号ＣＥ１をアクティブ（Ｌｏｗ）にする。
【００３１】
図５は、１１の命令列に対応する各信号のタイミング図である。第１サイクルで、マイクロコンピュータ１００がニーモニック命令４１を実行すると、第２サイクルで、マイクロコンピュータ１００は、チップイネーブル信号ＣＥ１とリード信号Ｒをアクティブ（Ｌｏｗ）として出力し、アドレス信号ＡＤＲに０ｘ０３０を出力する。インターフェース回路２００のＯＲ回路２２０は、チップイネーブル信号ＣＥ１がＬｏｗであるので、チップイネーブル信号ＣＥをＬｏｗとしてＩ／Ｏコントローラ３００に出力する。同時に、チップイネーブル信号ＣＥ２がＨｉｇｈであるので、選択回路２１０は下位８ビットのアドレス信号Ａ［０：７］（即ち、アドレス信号０ｘ３０）を選択し、Ｉ／Ｏコントローラ３００に出力する。
【００３２】
その結果、Ｉ／Ｏコントローラ３００は、アドレス０ｘ３０であるレジスタＲ１１の内容を読み出し、データ信号Ｄを介してマイクロコンピュータ１００に出力する。マイクロコンピュータ１００は、第２サイクルの終了時には、データ信号Ｄに出力されたレジスタＲ１１の内容を内部レジスタ１に読み込み、その後チップイネーブル信号ＣＥ１とリード信号ＲをＨｉｇｈにするとともに、アドレス信号０ｘ０３０の出力を停止する。Ｉ／Ｏコントローラ３００もチップイネーブル信号ＣＥがＨｉｇｈとなるため、データ信号Ｄのドライブを停止する。
【００３３】
第３サイクルでは、ニーモニック命令４２が実行され、内部レジスタ１に読み込んだレジスタＲ１１の内容をマイクロコンピュータ１００の内部レジスタ２に保存する処理が行われる。
【００３４】
続いて、第４サイクルでは、ニーモニック命令４３が実行される。ニーモニック命令４３は、上記ニーモニック命令４１と同一処理が実行される。そして、続く第５サイクルでＩ／Ｏコントローラ３００のレジスタＲ１２の内容が読み出され、マイクロコンピュータ１００の内部レジスタ１に読み込まれる。
【００３５】
続く第６サイクルでは、ニーモニック命令４４が実行される。この命令によりマイクロコンピュータ１００の内部レジスタ１の内容が左に８ビットシフトされる。
【００３６】
続く第７のサイクルでは、第３サイクルと同じニーモニック実行４５が行われて、内部レジスタ１に読み込んだレジスタＲ１２の内容がマイクロコンピュータ１００の内部レジスタ２に保存される。この結果、内部レジスタ２には、レジスタＲ１２とＲ１１の内容が保存されることになる。
【００３７】
以下、第８サイクル〜第１１サイクルの動作、および第１２サイクル〜第１５サイクルの動作は、上述した第４サイクル〜第７サイクルまでの動作と同じ動作が実行される。各動作間で異なるのは、Ｉ／Ｏコントローラ３００から読み出される内容がレジスタＲ１３、Ｒ１４であり、先に読み込んだデータを左シフトする量が１６ビット、２４ビットである点である。このようにしてマイクロコンピュータ１００の内部レジスタ２にＩ／Ｏコントローラ３００のレジスタＲ１４、Ｒ１３、Ｒ１２、Ｒ１１の内容が読み出されたことになる。
【００３８】
図６は、マイクロコンピュータ１００がＩ／Ｏコントローラ３００の８ビット長のレジスタＲ２１、Ｒ３１、Ｒ４１、Ｒ５１の内容を読出し、マイクロコンピュータ１００の内部レジスタに読み込む動作を１つの命令６１で実行する場合の命令と、マイクロコンピュータ１００とＩ／Ｏコントローラ３００の動作を示したものである。
【００３９】
この１つの命令６１でアクセスする場合、Ｉ／Ｏコントローラ３００の各レジスタＲ２１乃至Ｒ５１のアドレスが０ｘ４０、０ｘ４１、０ｘ４２、０ｘ４３であるため、マイクロコンピュータ１００は、アドレス信号Ａ［０：９］に０ｘ０４０、０ｘ０４１、０ｘ０４２、０ｘ０４３を出力すると共に、チップイネーブル信号ＣＥ１をアクティブ（Ｌｏｗ）にする。また、命令６１が３２ビット長であるのに対しＩ／Ｏコントローラ３００からの読み出しが８ビット単位であるので、マイクロコンピュータ１００のダイナミックバスサイジング機能がバスインターフェース部１０１で動作する。
【００４０】
図７は、命令６１を実行する場合の各信号のタイミング図を示す。第１サイクルで、マイクロコンピュータ１００がニーモニック命令６１を実行すると、第２サイクルで、マイクロコンピュータ１００は、チップイネーブル信号ＣＥ１とリード信号Ｒをアクティブ（Ｌｏｗ）とし、アドレス信号に０ｘ０４０を出力する。
【００４１】
インターフェース回路２００のＯＲ回路２２０は、チップイネーブル信号ＣＥ１がＬｏｗであるので、チップイネーブル信号ＣＥをＬｏｗとしてＩ／Ｏコントローラ３００に出力する。また同時に、チップイネーブル信号ＣＥ２がＨｉｇｈであるので、選択回路２１０から下位８ビットのアドレス信号Ａ［０：７］が選択され、そのアドレス信号０ｘ４０をＩ／Ｏコントローラ３００に出力する。その結果、Ｉ／Ｏコントローラ３００は、アドレス０ｘ４０のレジスタＲ２１の内容を読み出し、データ信号Ｄを介してマイクロコンピュータ１００に出力する。
【００４２】
マイクロコンピュータ１００は、第２サイクルの終了時には、データ信号Ｄに出力されたレジスタＲ２１の内容をマイクロコンピュータ１００内のダイナミックバスサイジング機能を実現するバスインターフェース部１０１に読み込み保存する。その後、マイクロコンピュータ１００は、チップイネーブル信号ＣＥ１やリード信号をＨｉｇｈにするとともに、アドレス信号Ａ［０：９］の出力が停止する。また、Ｉ／Ｏコントローラ３００もチップイネーブル信号ＣＥがＨｉｇｈとなるため、データ信号Ｄの出力を停止する。
【００４３】
続く第３サイクルでは、マイクロコンピュータ１００のバスインターフェース部１０１でダイナミックバスサイジング動作が行われる。同時に、マイクロコンピュータ１００は、チップイネーブル信号ＣＥ１とリード信号Ｒをアクティブ（Ｌｏｗ）とすると共に、アドレスを＋１増加させてアドレス信号０ｘ０４１を出力する。
【００４４】
インターフェース回路２００のＯＲ回路２２０は、チップイネーブル信号ＣＥ１がＬｏｗであるので、チップイネーブル信号ＣＥをＬｏｗとしてＩ／Ｏコントローラ３００に出力し、また選択回路２１０からはチップイネーブル信号ＣＥ２がＨｉｇｈであるので、下位８ビットのアドレス信号Ａ［０：７］が選択され、そのアドレス信号０ｘ４１がＩ／Ｏコントローラ３００に出力される。その結果、Ｉ／Ｏコントローラ３００は、アドレス０ｘ４１のレジスタＲ３１の内容を読み出し、データ信号Ｄを介してマイクロコンピュータ１００に出力する。
【００４５】
マイクロコンピュータ１００は、第３サイクルの終了時には、データ信号Ｄに出力されたレジスタＲ３１の内容を内部のダイナミックバスサイジング機能を実現するバスインターフェース部１０１に読み込み保存する。同時にチップイネーブル信号ＣＥ１とリード信号をＨｉｇｈにすると共に、アドレス信号Ａ［０：９］の出力を停止する。また、Ｉ／Ｏコントローラ３００も、チップイネーブル信号ＣＥがＨｉｇｈとなるためデータ信号Ｄへの出力を停止する。
【００４６】
続く第４および第５サイクルにおいても第３サイクルと同様にＩ／Ｏコントローラ３００へのアクセスが行われて、アドレス０ｘ４２、０ｘ４３を持つレジスタＲ４１、レジスタＲ５１の内容がそれぞれ読み取られ、マイクロコンピュータ１００内のバスインターフェース部１０１に読み込まれる。そして、第５サイクルにおいては、バスインターフェース部１０１に保存された内容がマイクロコンピュータ１００の内部レジスタ１０２（この命令６１の場合は内部レジスタ１）へと転送される。
【００４７】
図８は、マイクロコンピュータ１００がＩ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４に記憶された３２ビット長の内容を読出してマイクロコンピュータに読み込むための１命令８１とＩ／Ｏコントローラ３００の動作を示したものである。
【００４８】
この命令８１でアクセスする場合、Ｉ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４のアドレスが０ｘＣ０、０ｘＣ１、０ｘＣ２、０ｘＣ３であるため、マイクロコンピュータ１００は、アドレス信号Ａ［０：９］に０ｘ０Ｃ０、０ｘ０Ｃ１、０ｘ０Ｃ２、０ｘ０Ｃ３を出力すると共に、チップイネーブル信号ＣＥ２をアクティブ（Ｌｏｗ）にする。また、命令８１が３２ビット長であり、Ｉ／Ｏコントローラ３００からの読み出しが８ビット単位であるので、マイクロコンピュータ１００はダイナミックバスサイジング機能による動作をバスインターフェース部１０１で行う。
【００４９】
図９は、命令８１を実行する場合の各信号のタイミング図を示す。第１サイクルでマイクロコンピュータ１００がニーモニック命令８１を実行すると、第２サイクルで、マイクロコンピュータ１００は、チップイネーブル信号ＣＥ２とリード信号Ｒをアクティブ（Ｌｏｗ）として出力し、またアドレス信号０ｘ０Ｃ０をＩ／Ｏコントローラ３００に出力する。
【００５０】
インターフェース回路２００のＯＲ回路２２０は、チップイネーブル信号ＣＥ２がＬｏｗであるので、Ｌｏｗのチップイネーブル信号ＣＥを出力すると共に、選択回路２１０からはチップイネーブル信号ＣＥ２がＬｏｗであるのでアドレス信号Ａ［２：９］が選択され、アドレス０ｘ０Ｃ０を下位方向に２ビットシフトしたアドレス０ｘ３０を出力する。即ち、アドレス０ｘ０Ｃ０＝”００１１００００００”を下位方向に２ビットシフトすると、”００１１００００”＝０ｘ３０に変換されたことになる。
【００５１】
その結果、Ｉ／Ｏコントローラ３００は、アドレス０ｘ３０を持つ第１のレジスタＲ１１の内容を読み出し、データ信号Ｄを介してマイクロコンピュータ１００に出力する。マイクロコンピュータ１００は、第２サイクルの終了時には、データ信号Ｄに出力されたレジスタＲ１１の内容を内部のダイナミックバスサイジング機能を実現するバスインターフェース部に読み込み保存する。同時に、チップイネーブル信号ＣＥ２とリード信号ＲをＨｉｇｈにすると共に、アドレス信号Ａの出力を停止する。また、Ｉ／Ｏコントローラ３００もチップイネーブル信号ＣＥがＨｉｇｈとなるため、データ信号Ｄの出力を停止する。
【００５２】
続く第３サイクルでは、マイクロコンピュータ１００は、ダイナミックバスサイジング機能によってチップイネーブル信号ＣＥ２とリード信号Ｒをアクティブ（Ｌｏｗ）とすると共に、アドレスを＋１増加したアドレス信号０ｘ０Ｃ１をＩ／Ｏコントローラ３００に出力する。
【００５３】
インターフェース回路２００のＯＲ回路２２０は、チップイネーブル信号ＣＥ２がＬｏｗであるので、Ｌｏｗのチップイネーブル信号ＣＥを出力すると共に、選択回路２１０からはアドレス０ｘ０Ｃ１（二進数”００１１０００００１”）を下位に２ビットシフトしたアドレス０ｘ３０（二進数”００１１００００”を出力する。その結果、Ｉ／Ｏコントローラ３００は、アドレス０ｘ３０を持つ第２のレジスタＲ１２の内容を読み出し、データ信号Ｄを介してマイクロコンピュータ１００に出力する。
【００５４】
マイクロコンピュータ１００は、第３サイクルの終了時には、データ信号Ｄに出力されたレジスタＲ１１の内容を内部のダイナミックバスサイジング機能を実現するバスインターフェース部１０１に読み込み保存する。また同時に、チップイネーブル信号ＣＥ２とリード信号ＲをＨｉｇｈにすると共に、アドレス信号Ｄの出力を停止する。また、Ｉ／Ｏコントローラ３００もチップイネーブル信号ＣＥがＨｉｇｈとなるため、データ信号Ｄへの出力を停止する。
【００５５】
続く第４および第５のサイクルにおいても第３のサイクルと同様の動作にて、Ｉ／Ｏコントローラ３００のレジスタＲ１３、Ｒ１４に対する読み取りアクセスが行われる。そして、この２つのサイクルではアドレス０ｘＣ２、０ｘＣ３がそれぞれ出力されるが、インターフェース回路２００の選択回路２１０による選択出力で同じアドレス０ｘ３０が生成されてＩ／Ｏコントローラ３００に出力される。Ｉ／Ｏコントローラ３００はアドレス０ｘ３０を持つ第３のレジスタＲ１３、第４のレジスタＲ１４の内容が順次読み出されて、データ信号Ｄを介してマイクロコンピュータ１００に出力される。そして、マイクロコンピュータ１００内のバスインターフェース部に読み込まれる。なお、第５サイクルにおいては、マイクロコンピュータ１００内でバスインターフェース部１０１に保存された内容が内部レジスタ１０２（この命令８１の場合は内部レジスタ１）に転送される。
【００５６】
このようにして、マイクロコンピュータ１００は、インターフェース回路２００を設けることでＩ／Ｏコントローラ３００のレジスタとマイクロコンピュータ１００のレジスタの間で３２ビット長のデータの入出力を図８に示したような命令で行えるようになり高速なアクセスが可能となる。
【００５７】
図４で示した命令列でＩ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４をスタック動作させて４回の８ビット単位でのアクセスが行えるので、マイクロコンピュータ１００が実行するＩ／Ｏコントローラ３００の制御プログラムにおいて、Ｉ／Ｏコントローラ３００のレジスタＲ１１乃至Ｒ１４へのアクセス頻度の短縮が必要な箇所のみ命令列を書き換えることで、Ｉ／Ｏコントローラ３００の制御対象のＩ／Ｏ制御ブロックの動作の高速化に対応可能となるとともに過去の設計資産を利用することができるのでプログラムの開発効率も向上する。
【００５８】
本発明は、上記実施例に限定されるものではなく、発明の要旨を逸脱しない範囲で、種々、変形して実施できることは勿論である。
【００５９】
例えば、図２のインターフェース回路２００にＩ／Ｏコントローラ３００のスタック構造のレジスタのアドレスを生成する回路を選択回路２１０のデータ入力側に設け、チップイネーブル信号ＣＥ２がアクティブの時は、その生成回路からのアドレスを変換後のアドレス信号として出力するようにしてもよい。この場合は、インターフェース回路２００に入力するアドレス信号本数を減らすことができ、また、チップイネーブル信号ＣＥ２をアクティブにするアドレスを未使用の任意のアドレスから選ぶことができてプログラムの開発が容易になる。
【図面の簡単な説明】
【００６０】
【図１】本発明に係る情報処理装置の実施例の構成を示すブロック図。
【図２】本実施例のインターフェース回路の構成を示すブロック図。
【図３】本実施例のＩ／Ｏコントローラのレジスタの構成を示す図。
【図４】本実施例のマイクロコンピュータの命令列と動作を示す図。
【図５】本実施例の図４の命令列を実行した時の情報処理装置の動作遷移を示す図。
【図６】本実施例のマイクロコンピュータの命令と動作を示す図。
【図７】本実施例の図６の命令を実行した時の情報処理装置の動作遷移を示す図。
【図８】本実施例のマイクロコンピュータの命令と動作を示す図。
【図９】本実施例の図８の命令を実行した時の情報処理装置の動作遷移を示す図。
【符号の説明】
【００６１】
１  情報処理装置
１００  マイクロコンピュータ
１０１  バスインターフェース
１０２  内部レジスタ
２００  インターフェース回路
２１０  選択回路
２２０  ＯＲ回路
３００  Ｉ／Ｏコントローラ
【図１】
2008065377.tif 000003
【図２】
2008065377.tif 000004
【図３】
2008065377.tif 000005
【図４】
2008065377.tif 000006
【図５】
2008065377.tif 000007
【図６】
2008065377.tif 000008
【図７】
2008065377.tif 000009
【図８】
2008065377.tif 000010
【図９】
2008065377.tif 000011