(57)【要約】【課題】外部端子を設けることなく、バスに関する複数のモードで動作することが可能なインタフェース回路等を提供する。【解決手段】ＣＰＵインタフェース部２１は、初期時において、複数のモード以外のモードで動作し、ＣＰＵバスＢ１から供給される第１群のバス信号に基づいて、複数のモードの内の第１群のバス信号によって定まるモードを示すための第１群の内部信号及び第２の内部信号を出力する初期化モード設定部３１と、第２の内部信号がが入力された場合に、複数のモードの内の第１群の内部信号によって示されるモードで動作を開始し、ＣＰＵバスＢ１から供給される制御信号、アドレス信号及びデータ信号に基づいて第３群の内部信号を出力するレジスタアクセス信号生成部３２とを含む。【選択図】図４
2009020708.tif 000002
【特許請求の範囲】
【請求項１】
バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵとバスを介して接続可能なインタフェース回路であって、
初期時において、前記複数のモード以外のモードで動作し、前記バスから供給される第１群のバス信号に基づいて、前記複数のモードの内の前記第１群のバス信号によって定まるモードを示すための第１群の内部信号及び前記複数のモードの内の前記第１群の内部信号で示されるモードで動作を開始することを指示するための第２の内部信号を出力する第１の回路と、
前記第２の内部信号が入力された場合に、前記複数のモードの内の前記第１の内部信号によって示されるモードで動作を開始し、前記バスから供給される前記第１群のバス信号及び第２群のバス信号に基づいて第３群の内部信号を出力する第２の回路と、
を含む、インタフェース回路。
【請求項２】
請求項１において、
前記複数のモードが、
ＣＰＵがデータを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくは前記バス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせを含む、インタフェース回路。
【請求項３】
請求項１又は２において、
前記第１群のバス信号が、
前記複数のモードのいずれのモードにおいてもタイミングが異ならない１群の制御信号と、
複数のデータ信号と、
を含む、インタフェース回路。
【請求項４】
請求項３において、
前記複数のデータ信号を記憶するための第３の回路を更に含み、
前記第１の回路が、
前記１群の制御信号が所与の第１の条件を満たした場合に、前記複数のデータ信号を前記第３の回路に記憶させ、その後、前記１群の制御信号が所与の第２の条件を満たした場合に、前記複数のモードの内の前記第３の回路に記憶されている前記複数のデータ信号によって定まるモードを示す前記第１群の内部信号及び前記第２の内部信号を出力する、インタフェース回路。
【請求項５】
請求項４において、
前記所与の第１の条件が、前記１群の制御信号がライトアクセスを表すことであり、
前記所与の第２の条件が、前記１群の制御信号がリード又はライトアクセスを表すこと
を特徴とする、インタフェース回路。
【請求項６】
請求項５において、
前記第１の回路が、
前記１群の制御信号がライトアクセスを表したときに、第１のステートに遷移し、その後、前記１群の制御信号がリード又はライトアクセスの開始を表したときに、第２のステートに遷移し、その後、前記１群の制御信号がリード又はライトアクセスの終了を表したときに、第３のステートに遷移して前記第２の内部信号を出力する、インタフェース回路。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記第２の回路が、
前記１群の制御信号が前記所与の第２の条件を満たした後に、前記１群の制御信号が所与の第３の条件を満たした場合に、前記第３の回路に記憶されているデータを前記バス上に出力するための前記第３群の内部信号を出力する、インタフェース回路。
【請求項８】
請求項７において、
前記所与の第３の条件が、前記１群の制御信号及び前記第２群のバス信号が所与のアドレスへのリードアクセスを表すこと
を特徴とする、インタフェース回路。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第１群のバス信号が供給される複数の端子を更に含み、
前記複数の種類のＣＰＵの内のいずれの種類のＣＰＵと接続された場合であっても前記第１の回路が前記第１群のバス信号に基づいて前記第１群の内部信号及び前記第２の内部信号を出力することが可能となるように、前記第１群のバス信号が前記複数の端子にそれぞれ供給される、インタフェース回路。
【請求項１０】
請求項９において、
データを書き込むための制御信号の種類及び／又はタイミングに関するモードが所与の第１のモードであるＣＰＵに接続された場合に、
前記複数の端子の内の第１の端子に、前記１群の制御信号の内の前記バス上の複数のデータ信号の内の上位バイトを取り込むタイミングを表す制御信号が供給され、
前記複数の端子の内の第２の端子に、前記１群の制御信号の内の前記バス上の複数のデータ信号の内の下位バイトを取り込むタイミングを表す信号が供給され、
データを書き込むための制御信号の種類及び／又はタイミングに関するモードが所与の第２のモードであるＣＰＵに接続された場合に、
前記第１の端子に、前記１群の制御信号の内の前記バス上の複数のデータ信号の内の上位バイトが有効又は無効であることを表す信号が供給され、
前記第２の端子に、前記１群の制御信号の内の前記バス上の複数のデータ信号を取り込むタイミングを表す信号が供給され、
前記複数の端子の内の第３の端子に、前記１群の制御信号の内の前記バス上の複数のデータ信号の内の下位バイトが有効又は無効であることを表す信号が供給される、インタフェース回路。
【請求項１１】
バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵの内の１つのＣＰＵと、
請求項１乃至１０のいずれかに記載のインタフェース回路を含む周辺回路と、
を含む、電子機器。
【請求項１２】
バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵの内の１つのＣＰＵと、請求項１乃至１０のいずれかに記載のインタフェース回路を含む周辺回路と、を含む電子機器において、前記ＣＰＵが実行する方法であって、
初期時において、前記複数のモードの内の前記ＣＰＵが動作するモードを示すための前記第１群の内部信号及び前記複数のモードの内の前記第１群の内部信号で示されるモードで動作を開始することを指示するための前記第２の内部信号を前記第１の回路に出力させるための前記第１群のバス信号を出力するステップを含む、インタフェース回路の制御方法。
【請求項１３】
請求項１２において、
前記第１群のバス信号が、
前記複数のモードのいずれのモードにおいてもタイミングが異ならない前記１群の制御信号と、
前記複数のデータ信号と、
を含み、
前記ＣＰＵが、上位バイトと下位バイトが同じデータ信号を前記複数のデータ信号として出力すること
を特徴とする、インタフェース回路の制御方法。
【請求項１４】
請求項１２又は１３において、
前記ＣＰＵが、前記所与の第１の条件を満たす前記１群の制御信号及び前記複数のデータ信号を出力し、その後、前記所与の第２の条件を満たす前記１群の制御信号を出力すること
を特徴とする、インタフェース回路の制御方法。
【請求項１５】
請求項１４において、
前記ＣＰＵが、前記所与の第２の条件を満たす前記１群の制御信号を出力した後に、前記所与の第３の条件を満たす前記１群の制御信号を出力すること
を特徴とする、インタフェース回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵと接続可能なインタフェース回路に関する。また、本発明は、そのようなインタフェース回路を含む電子機器に関する。さらに、本発明は、そのような電子機器においてＣＰＵが実行するインタフェース回路の制御方法に関する。
【背景技術】
【０００２】
ＣＰＵを用いた電子機器において、ＣＰＵのほか、ペリフェラルＩＣ（周辺ＩＣ）が用いられる。メインＣＰＵとペリフェラルＩＣは、バスで接続される。そして、現在、バスに関し複数のモードでそれぞれ動作する複数の種類のＣＰＵが存在する。そのため、ペリフェラルＩＣには、様々なＣＰＵに接続可能とするため、バスに関する複数のモードで動作することが可能であることが望まれている。
【０００３】
バスに関する複数のモードで動作可能なペリフェラルＩＣに関する技術として、下記の非特許文献１には、バスに関するモードを設定するための外部端子を設け、この外部端子に印加される電位によって、バスに関するモードを設定する技術が掲載されている。
【０００４】
【非特許文献１】"μＰＤ７２０１２２  データ・シート"、［online］、［平成１９年６月６日検索］、インターネット＜URL： http://www.necel.com/nesdis/image/S16685JJ3V0DS00.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、バスに関するモードを設定するための外部端子を設けると、チップサイズやパッケージサイズの増大、ペリフェラルＩＣを実装する基板のサイズの増大を招くことになる。そして、そのようなチップサイズやパッケージサイズの増大、基板のサイズの増大は、コストアップを招くことになる。また、今日、電子機器の小型化が求められており、この点においても好ましいことではない。
【０００６】
また、バスに関するモードの違いにより生じ得るペリフェラルＩＣの端子機能の相違を吸収するため、ペリフェラルＩＣ内部にディレイ（遅延素子）等のフィルタを配置し、ペリフェラルＩＣの端子に入力される信号をフィルタリングすることも考えられるが、ＡＣスペックに悪影響が出るため、好ましくない。
【０００７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、外部端子を設けることなく、また端子に入力される信号をフィルタリングすることなく、バスに関する複数のモードで動作することが可能なインタフェース回路、そのようなインタフェース回路を含む電子機器及びそのような電子機器において実行されるインタフェース回路の制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵとバスを介して接続可能なインタフェース回路であって、初期時において、複数のモード以外のモードで動作し、バスから供給される第１群のバス信号に基づいて、複数のモードの内の第１群のバス信号によって定まるモードを示すための第１群の内部信号及び複数のモードの内の第１群の内部信号で示されるモードで動作を開始することを指示するための第２の内部信号を出力する第１の回路と、第２の内部信号が入力された場合に、複数のモードの内の第１の内部信号によって示されるモードで動作を開始し、バスから供給される第１群のバス信号及び第２群のバス信号に基づいて第３群の内部信号を出力する第２の回路と、を含む、インタフェース回路に関係する。
【０００９】
本発明によれば、モードを設定するための外部端子を設けることなく、また端子に入力される信号をフィルタリングすることなく、種々のモードで動作することができるようになる。
【００１０】
また、本発明では、複数のモードが、ＣＰＵがデータを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくはバス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせを含んでいても良い。
【００１１】
このようにすれば、ＣＰＵがデータを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくはバス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせを含むモードで動作できるようになる。
【００１２】
また、本発明では、第１群のバス信号が、複数のモードのいずれのモードにおいてもタイミングが異ならない１群の制御信号と、複数のデータ信号と、を含んでいても良い。
【００１３】
このようにすれば、いずれのモードで動作するＣＰＵと接続された場合であっても、モードの設定ができるようになる。
【００１４】
また、本発明では、複数のデータ信号を記憶するための第３の回路を更に含み、第１の回路が、１群の制御信号が所与の第１の条件を満たした場合に、複数のデータ信号を第３の回路に記憶させ、その後、１群の制御信号が所与の第２の条件を満たした場合に、複数のモードの内の第３の回路に記憶されている複数のデータ信号によって定まるモードを示す第１群の内部信号及び第２の内部信号を出力するようにしても良い。
【００１５】
このようにすれば、モードの設定が可能となる実装を容易に実現することができるようになる。
【００１６】
また、本発明では、所与の第１の条件が、１群の制御信号がライトアクセスを表すことであり、所与の第２の条件が、１群の制御信号がリード又はライトアクセスを表すことにしても良い。
【００１７】
このようにすれば、モードの設定をライト及び／又はリードアクセスで容易に実現できるようになる。
【００１８】
また、本発明では、第１の回路が、１群の制御信号がライトアクセスを表したときに、第１のステートに遷移し、その後、１群の制御信号がリード又はライトアクセスの開始を表したときに、第２のステートに遷移し、その後、１群の制御信号がリード又はライトアクセスの終了を表したときに、第３のステートに遷移して第２の内部信号を出力するようにしても良い。
【００１９】
このようにすれば、モードの設定が可能となる実装を容易に実現することができるようになる。
【００２０】
また、本発明では、第２の回路が、１群の制御信号が所与の第２の条件を満たした後に、１群の制御信号が所与の第３の条件を満たした場合に、第３の回路に記憶されているデータをバス上に出力するための第３群の内部信号を出力するようにしても良い。
【００２１】
このようにすれば、設定したモードをＣＰＵが容易に確認することができるようになる。
【００２２】
また、本発明では、所与の第３の条件が、１群の制御信号及び第２群のバス信号が所与のアドレスへのリードアクセスを表すことにしても良い。
【００２３】
このようにすれば、モードの確認をリードアクセスで容易に実現できるようになる。
【００２４】
また、本発明では、第１群のバス信号が供給される複数の端子を更に含み、複数の種類のＣＰＵの内のいずれの種類のＣＰＵと接続された場合であっても第１の回路が第１群のバス信号に基づいて第１群の内部信号及び第２の内部信号を出力することが可能となるように、第１群のバス信号が複数の端子にそれぞれ供給されるようにしても良い。
【００２５】
このようにすれば、いずれのモードで動作するＣＰＵと接続された場合であっても、モードの設定が可能となる実装を容易に実現することができるようになる。
【００２６】
また、本発明では、データを書き込むための制御信号の種類及び／又はタイミングに関するモードが所与の第１のモードであるＣＰＵに接続された場合に、複数の端子の内の第１の端子に、１群の制御信号の内のバス上の複数のデータ信号の内の上位バイトを取り込むタイミングを表す制御信号が供給され、複数の端子の内の第２の端子に、１群の制御信号の内のバス上の複数のデータ信号の内の下位バイトを取り込むタイミングを表す信号が供給され、データを書き込むための制御信号の種類及び／又はタイミングに関するモードが所与の第２のモードであるＣＰＵに接続された場合に、第１の端子に、１群の制御信号の内のバス上の複数のデータ信号の内の上位バイトが有効又は無効であることを表す信号が供給され、第２の端子に、１群の制御信号の内のバス上の複数のデータ信号を取り込むタイミングを表す信号が供給され、複数の端子の内の第３の端子に、１群の制御信号の内のバス上の複数のデータ信号の内の下位バイトが有効又は無効であることを表す信号が供給されるようにしても良い。
【００２７】
このようにすれば、種々のモードで動作するＣＰＵと接続された場合であっても、モードの設定が可能となる実装を容易に実現することができるようになる。
【００２８】
また、本発明は、バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵの内の１つのＣＰＵと、本発明に係るインタフェース回路を含む周辺回路と、を含む、電子機器に関係する。
【００２９】
本発明によれば、モード設定のための端子を設けることなく、また端子に入力される信号をフィルタリングすることなく、バスに関する複数のモードで動作することができるようになる。
【００３０】
また、本発明は、バスに関する複数のモードでそれぞれ動作する複数の種類のＣＰＵの内の１つのＣＰＵと、本発明に係るインタフェース回路を含む周辺回路と、を含む電子機器において、ＣＰＵが実行する方法であって、初期時において、複数のモードの内のＣＰＵが動作するモードを示すための第１群の内部信号及び複数のモードの内の第１群の内部信号で示されるモードで動作を開始することを指示するための第２の内部信号を第１の回路に出力させるための第１群のバス信号を出力するステップを含む、インタフェース回路の制御方法に関係する。
【００３１】
本発明によれば、モード設定のための端子を設けることなく、また端子に入力される信号をフィルタリングすることなく、バスに関する複数のモードの設定の制御をＣＰＵが行うことができるようになる。
【００３２】
また、本発明では、第１群のバス信号が、複数のモードのいずれのモードにおいてもタイミングが異ならない１群の制御信号と、複数のデータ信号と、を含み、ＣＰＵが、上位バイトと下位バイトが同じデータ信号を複数のデータ信号として出力するようにしても良い。
【００３３】
このようにすれば、ＣＰＵのバス上に出力されるデータの並び順に関するモードがいずれのモードであっても、容易にモード設定を行うことができるようになる。
【００３４】
また、本発明では、ＣＰＵが、所与の第１の条件を満たす１群の制御信号及び複数のデータ信号を出力し、その後、所与の第２の条件を満たす１群の制御信号を出力するようにしても良い。
【００３５】
このようにすれば、モードの設定が可能となる実装を容易に実現することができるようになる。
【００３６】
また、本発明では、ＣＰＵが、所与の第２の条件を満たす１群の制御信号を出力した後に、所与の第３の条件を満たす１群の制御信号を出力するようにしても良い。
【００３７】
このようにすれば、設定したモードをＣＰＵが容易に確認することができるようになる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３９】
１．  バスに関するモード
バスに関するモード（以下、「バス関連モード」とも言う。）として多くのモードが存在するが、ここでは幾つかを例に挙げて説明する。
【００４０】
１．１  ＣＰＵがペリフェラルＩＣにデータを書き込むための制御信号に関するモード
１．１．１  ＢＥモード
ＢＥ（Byte Enable）モードは、ＣＰＵがペリフェラルＩＣにデータを書き込むための制御信号の種類及び／又はタイミングに関するモードの１つであり、１ワードが複数バイト（ここでは、２バイトとする。）を含む場合に、１ワードの中の複数のバイトが有効又は無効であることをそれぞれ表す複数のイネーブル信号（ここでは、ハイバイトイネーブル信号ＸＢＥＨ（接頭字「Ｘ」は、負論理を表す。）及びローバイトイネーブル信号ＸＢＥＬとする。）と、有効である１つ又は複数のバイトを取り込むタイミングを表すストローブ信号（ここでは、ライトストローブ信号ＸＷＲとする。）を使用するモードである。
【００４１】
図１は、ＢＥモードで動作するＣＰＵとペリフェラルＩＣとの間で送受されるＣＰＵバス上の制御信号のタイミングチャートである。
図１において、タイミングＴＭ１〜ＴＭ４は、ハイバイトライトバスサイクルであり、タイミングＴＭ５〜ＴＭ８は、ローバイトライトバスサイクルであり、タイミングＴＭ９〜ＴＭ１２は、ワードライトバスサイクルである。
【００４２】
まず、ハイバイトライトバスサイクルについて説明する。
タイミングＴＭ１において、ＣＰＵがチップセレクト信号ＸＣＳをアサートする（ローレベルにする）と、バスサイクルが開始される。このとき、ＣＰＵがローバイトイネーブル信号ＸＢＥＬをネゲートする（ハイレベルにする）ことで、このバスサイクルはハイバイトライトバスサイクルとなる。
【００４３】
次に、タイミングＴＭ２において、ＣＰＵがライトストローブ信号ＸＷＲをアサートしたときに、ペリフェラルＩＣがデータバス上の上位バイトを取り込む。
【００４４】
その後、タイミングＴＭ３において、ＣＰＵがライトストローブ信号ＸＷＲをネゲートし、さらに、タイミングＴＭ４において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ハイバイトライトバスサイクルが終了する。なお、タイミングＴＭ４において、ＣＰＵがローバイトイネーブル信号ＸＢＥＬをアサートしている。
【００４５】
次に、ローバイトライトバスサイクルについて説明する。
タイミングＴＭ５において、ＣＰＵがチップセレクト信号ＸＣＳをアサートすると、バスサイクルが開始される。このとき、ＣＰＵがハイバイトイネーブル信号ＸＢＥＨをネゲートすることで、このバスサイクルはローバイトライトバスサイクルとなる。
【００４６】
次に、タイミングＴＭ６において、ＣＰＵがライトストローブ信号ＸＷＲをアサートしたときに、ペリフェラルＩＣがデータバス上の下位バイトを取り込む。
【００４７】
その後、タイミングＴＭ７において、ＣＰＵがライトストローブ信号ＸＷＲをネゲートし、さらに、タイミングＴＭ８において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ローバイトライトバスサイクルが終了する。なお、タイミングＴＭ８において、ＣＰＵがハイバイトイネーブル信号ＸＢＥＨをアサートしている。
【００４８】
次に、ワードライトバスサイクルについて説明する。
タイミングＴＭ９において、ＣＰＵがチップセレクト信号ＸＣＳをアサートすると、バスサイクルが開始される。このとき、ＣＰＵがハイバイトイネーブル信号ＸＢＥＨ及びローバイトイネーブル信号ＸＢＥＬを共にアサートしているので、このバスサイクルはワードライトバスサイクルとなる。
【００４９】
次に、タイミングＴＭ１０において、ＣＰＵがライトストローブ信号ＸＷＲをアサートしたときに、ペリフェラルＩＣがデータバス上の上位及び下位バイト（ワード）を取り込む。
【００５０】
その後、タイミングＴＭ１１において、ＣＰＵがライトストローブ信号ＸＷＲをネゲートし、さらに、タイミングＴＭ１２において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ワードライトバスサイクルが終了する。
【００５１】
１．１．２  Ｓｔｒｏｂｅモード
Ｓｔｒｏｂｅ（ストローブ）モードは、ＣＰＵがペリフェラルＩＣにデータを書き込むための制御信号の種類及び／又はタイミングに関するモードの１つであり、先に説明したＢＥモードと排他的に用いられる。Ｓｔｒｏｂｅモードは、１ワードが複数バイト（ここでは、２バイトとする。）を含む場合に、１ワードの中の複数のバイトのデータを取り込むタイミングをそれぞれ表す複数のストローブ信号（ここでは、ハイバイトライトストローブ信号ＸＷＲＨ及びローバイトライトストローブ信号ＸＷＲＬとする。）を使用するモードであり、１ワードの中の複数のバイトの有効又は無効をそれぞれ表す複数のイネーブル信号を使用しない。
【００５２】
図２は、Ｓｔｒｏｂｅモードで動作するＣＰＵとペリフェラルＩＣとの間で送受されるＣＰＵバス上の制御信号のタイミングチャートである。
図２において、タイミングＴＭ２１〜ＴＭ２４は、ハイバイトライトバスサイクルであり、タイミングＴＭ２５〜ＴＭ２８は、ローバイトライトバスサイクルであり、タイミングＴＭ２９〜ＴＭ３２は、ワードライトバスサイクルである。
【００５３】
まず、ハイバイトライトバスサイクルについて説明する。
タイミングＴＭ２１において、ＣＰＵがチップセレクト信号ＸＣＳをアサートすると、バスサイクルが開始される。
【００５４】
次に、タイミングＴＭ２２において、ＣＰＵがハイバイトライトストローブ信号ＸＷＲＨをアサートしたときに、ペリフェラルＩＣがデータバス上の上位バイトを取り込む。
【００５５】
その後、タイミングＴＭ２３において、ＣＰＵがハイバイトライトストローブ信号ＸＷＲＨをネゲートし、さらに、タイミングＴＭ２４において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ハイバイトライトバスサイクルが終了する。
【００５６】
次に、ローバイトライトバスサイクルについて説明する。
タイミングＴＭ２５において、ＣＰＵがチップセレクト信号ＸＣＳをアサートすると、バスサイクルが開始される。
【００５７】
次に、タイミングＴＭ２６において、ＣＰＵがローバイトライトストローブ信号ＸＷＲＬをアサートしたときに、ペリフェラルＩＣがデータバス上の下位バイトを取り込む。
【００５８】
その後、タイミングＴＭ２７において、ＣＰＵがローバイトライトストローブ信号ＸＷＲＬをネゲートし、さらに、タイミングＴＭ２８において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ローバイトライトバスサイクルが終了する。
【００５９】
次に、ワードライトバスサイクルについて説明する。
タイミングＴＭ２９において、ＣＰＵがチップセレクト信号ＸＣＳをアサートすると、バスサイクルが開始される。
【００６０】
次に、タイミングＴＭ３０において、ＣＰＵがハイバイトライトストローブ信号ＸＷＲＨ及びローバイトライトストローブ信号ＸＷＲＬをアサートしたときに、ペリフェラルＩＣがデータバス上の上位及び下位バイトを取り込む。
【００６１】
その後、タイミングＴＭ３１において、ＣＰＵがハイバイトライトストローブ信号ＸＷＲＨ及びローバイトライトストローブ信号ＸＷＲＬをネゲートし、さらに、タイミングＴＭ３２において、ＣＰＵがチップセレクト信号ＸＣＳをネゲートすると、ワードライトバスサイクルが終了する。
【００６２】
１．２  データの並び順に関するモード
次に、バス上に出力されるデータの並び順に関するモードについて説明する。
そのようなモードとして、Ｂｉｇ  Ｅｎｄｉａｎ（ビッグエンディアン）とＬｉｔｔｌｅ  Ｅｎｄｉａｎ（リトルエンディアン）が広く用いられている。
【００６３】
図３は、ビッグエンディアンで動作するＣＰＵとペリフェラルＩＣとの間で送受されるＣＰＵバス上のデータの例及びリトルエンディアンで動作するＣＰＵとペリフェラルＩＣとの間で送受されるＣＰＵバス上のデータの例を示す図である。
【００６４】
例えば、ビッグエンディアンで動作するＣＰＵとペリフェラルＩＣとの間で"０ｘ１２３４"という１６ビットデータが送受される場合、図３に示すように、ＣＰＵバスのデータバス上のデータＣＤ［１５：８］、すなわち上位バイトが"０ｘ１２（０ｂ０００１００１０）"となり、データＣＤ［７：０］、すなわち下位バイトが"０ｘ３４（０ｂ００１１０１００）"となる。
【００６５】
一方、リトルエンディアンで動作するＣＰＵとペリフェラルＩＣとの間で同じ"０ｘ１２３４"という１６ビットデータが送受される場合、図３に示すように、データ信号ＣＤ［１５：８］、すなわち上位バイトが"０ｘ３４（０ｂ００１１０１００）"となり、データ信号ＣＤ［７：０］、すなわち下位バイトが"０ｘ１２（０ｂ０００１００１０）"となる。
【００６６】
このように、ビッグエンディアンで動作するＣＰＵとリトルエンディアンで動作するＣＰＵとでは、ＣＰＵバス上に出力されるデータの上位バイトの位置と下位バイトの位置とが逆になる。
【００６７】
１．３  モードの組み合わせ
上記した、ＣＰＵがペリフェラルＩＣにデータを書き込むための制御信号に関するモード及びバス上に出力されるデータの並び順に関するモードは、組み合わせることができる。例えば、ＢＥモード且つＢｉｇ  Ｅｎｄｉａｎ、Ｓｔｒｏｂｅモード且つＬｉｔｔｌｅ  Ｅｎｄｉａｎなどの種々の組み合わせが可能である。
【００６８】
２．  構成
図４に、複数のバス関連モードでそれぞれ動作する複数のＣＰＵと接続可能なインタフェース回路を含むコントローラ１３及びこれを含む電子機器１の構成例を示す。
【００６９】
電子機器１は、メインＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２及びコントローラ１３を含む。メインＣＰＵ１１、ＲＡＭ１２及びコントローラ１３は、ＣＰＵバスＢ１を介して相互に接続されている。ＣＰＵバスＢ１は、制御バス、アドレスバス及びデータバスを含む。
【００７０】
コントローラ１３（広義には、周辺回路）は、ＣＰＵインタフェース部（広義には、インタフェース回路）２１と、ＵＳＢ（Universal Serial Bus）インタフェース部２２と、ＦＩＦＯ部２３と、ＩＤＥ（Integrated Drive Electronics）インタフェース部２４と、ＤＭＡ処理部２５と、を含む。ＣＰＵインタフェース部２１、ＵＳＢインタフェース部２２、ＦＩＦＯ部２３、ＩＤＥインタフェース部２４及びＤＭＡ処理部２５は、内部バスＢ２を介して相互に接続されている。内部バスＢ２のデータバスは、ＣＰＵバスＢ１のデータバスに接続されている。
【００７１】
なお、コントローラ１３、電子機器１は図４の構成に限定されず、その構成要素の一部を省略したり、構成要素間の接続形態を変更したり、図４とは異なる構成要素を追加する変形実施が可能である。例えば、コントローラ１３において、ＵＳＢインタフェース部２２やＦＩＦＯ部２３やＩＤＥインタフェース部２４やＤＭＡ処理部２５等の構成を省いたり、ＵＳＢインタフェース部２２やＩＤＥインタフェース部２４に代えてＩＥＥＥ１３９４インタフェース部やＡＴＡ（AT Attachment）インタフェース部等を含む変形実施も可能である。また電子機器１において、図４に示されるもの以外の構成要素（例えば操作部、表示部、ＲＯＭ、撮像部、又は、電源等）を追加してもよい。
【００７２】
また、本実施形態の電子機器１としては、ビデオカメラ、デジタルカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、光ディスクドライブ装置、ハードディスクドライブ装置、オーディオ機器、携帯電話機、携帯型ゲーム機、電子手帳、電子辞書又は携帯型情報端末等の種々のものが考えられる。
【００７３】
また、コントローラ１３を半導体集積回路としても良いし、コントローラ１３、メインＣＰＵ１１及び／又はＲＡＭ１２を半導体集積回路としても良い。
【００７４】
メインＣＰＵ１１は、電子機器１の全体的な処理、制御を行う。例えば、電子機器１がビデオカメラである場合には、メインＣＰＵ１は、カメラプロセッサとして機能し、撮像デバイスの制御や画像のエフェクト処理や画像の圧縮処理などを行う。
ＲＡＭ１２は、種々のデータやプログラムを記憶する。
【００７５】
コントローラ１３のＣＰＵインタフェース部２１は、ＣＰＵバスＢ１を介してメインＣＰＵ１１及び／又はＲＡＭ１２との間でデータ等の送受信等を行うためのバスインターフェース回路である。なお、ＣＰＵインタフェース部２１については、後で詳細に説明する。
【００７６】
コントローラ１３のＵＳＢインタフェース部２２は、ＵＳＢを介してデータ転送（高速シリアル転送）を行うためのインタフェースである。具体的には、ＵＳＢインタフェース部２２は、ＵＳＢ（シリアルバス）を介してデータの受信や送信を行う物理層回路を含み、ＵＳＢ機器２との間のデータ転送を行う。ＵＳＢインタフェース部２２は、メインＣＰＵ１１のアドレス空間（メモリ空間、Ｉ／Ｏ空間等）にマッピングされメインＣＰＵ１１からリード及び／又はライトアクセス可能なレジスタ２２ａを含んでおり、メインＣＰＵ１１がレジスタ２２ａにコマンド及び／又はデータを書き込み、ＵＳＢインタフェース部２２は、レジスタ２２ａに書き込まれたコマンド及び／又はデータに基づいて、ＵＳＢ機器２との間のデータ転送を行う。なお、レジスタ２２ａは、１つであっても良いし複数であっても良い。
【００７７】
なお、ＵＳＢインタフェース部２２がホスト機能を有する場合には、ＵＳＢにＵＳＢデバイスを接続し、そのＵＳＢデバイスとの間でデータ転送を行うようにしてもよい。
【００７８】
コントローラ１３のＩＤＥインタフェース部２４は、ＩＤＥのバスを介してデータ転送（高速パラレル転送）を行うためのインタフェースである。具体的には、ＩＤＥインタフェース部２４は、タスクレジスタや、ＭＤＭＡ／ＰＩＯ制御部や、ＵｌｔｒａＤＭＡ制御部や、データバッファや、転送制御部等を含み、ＩＤＥ機器３との間のデータ転送を行う。ＩＤＥインタフェース部２４は、メインＣＰＵ１１のアドレス空間（メモリ空間、Ｉ／Ｏ空間等）にマッピングされメインＣＰＵ１１からリード及び／又はライトアクセス可能なレジスタ２４ａを含んでおり、メインＣＰＵ１１がレジスタ２４ａにコマンド及び／又はデータを書き込み、ＩＤＥインタフェース部２４は、レジスタ２４ａに書き込まれたコマンド及び／又はデータに基づいて、ＩＤＥ機器３との間のデータ転送を行う。なお、レジスタ２４ａは、１つであっても良いし複数であっても良い。
【００７９】
なお、ＩＤＥインタフェース部２４は、ホスト側インタフェースであっても良いし、デバイス側インタフェースであっても良い。
【００８０】
コントローラ１３のＦＩＦＯ部２３は、ＲＡＭとロジック回路（制御回路）を含み、ＵＳＢ機器２やＩＤＥ機器３に送信されるデータや、ＵＳＢ機器２やＩＤＥ機器３から受信されたデータを一時記憶する。ＦＩＦＯ部２３は、メインＣＰＵ１１のアドレス空間にマッピングされメインＣＰＵ１１からリード及び／又はライトアクセス可能なレジスタ２３ａを含んでおり、メインＣＰＵ１１がレジスタ２３ａにコマンド及び／又はデータを書き込み、ＦＩＦＯ部２３は、レジスタ２３ａに書き込まれたコマンド及び／又はデータに基づいて、ＦＩＦＯ処理を行う。なお、レジスタ２３ａは、１つであっても良いし複数であっても良い。なお、ＵＳＢ機器２〜ＵＳＢインタフェース部２２〜ＦＩＦＯ部２３〜ＩＤＥインタフェース部２４〜ＩＤＥ機器３という経路でのデータ転送も可能である。
【００８１】
コントローラ１３のＤＭＡ処理部２５は、内部バスＢ２のほか、ＣＰＵバスＢ１にも接続されており、ＵＳＢ機器２やＩＤＥ機器３に送信されるデータをＲＡＭ１２からＦＩＦＯ部２３にＤＭＡ転送し及び／又はＵＳＢ機器２やＩＤＥ機器から受信されたデータをＦＩＦＯ部２３からＲＡＭ１２にＤＭＡ転送する。ＤＭＡ処理部２５は、メインＣＰＵ１１のアドレス空間にマッピングされメインＣＰＵ１１からリード及び／又はライトアクセス可能なレジスタ２５ａを含んでおり、メインＣＰＵ１１がレジスタ２５ａにコマンド及び／又はデータを書き込み、ＤＭＡ処理部２５は、レジスタ２５ａに書き込まれたコマンド及び／又はデータに基づいて、ＦＩＦＯ部２３とＲＡＭ１２との間のＤＭＡ転送を行う。なお、レジスタ２５ａは、１つであっても良いし複数であっても良い。
【００８２】
ＣＰＵインタフェース部２１は、初期化モード設定部３１と、レジスタアクセス信号生成部３２と、アドレスデコーダ３３と、レジスタ３４とを含む。レジスタ３４は、メインＣＰＵ１１のアドレス空間にマッピングされている。
【００８３】
初期化モード設定部３１（広義には、第１の回路）は、初期時（パワーオン時、リセット時等）において、複数のバス関連モード（ここでは、ＢＥモード、Ｓｔｒｏｂｅモード、Ｂｉｇ  Ｅｎｄｉａｎ若しくはＬｉｔｔｌｅ  Ｅｎｄｉａｎ又はこれらの組み合わせ）のいずれでもないモードで動作し、メインＣＰＵ１１がＣＰＵバスＢ１上に所与の信号を出力した場合に、当該信号に基づいて複数のバス関連モードの内のＣＰＵバスＢ１上に出力された信号によって定まるモードで動作することを示すバス関連モード信号（広義には、第１群の内部信号）及びバス関連モード信号によって示されるモードで動作を開始することを指示するＩＮＩＴＩＡＬＩＺＥＤ信号（広義には、第２の内部信号）をレジスタアクセス信号生成部３２に出力するように設定される。
【００８４】
レジスタアクセス信号生成部３２（広義には、第２の回路）は、初期化モード設定部３１からＩＮＩＴＩＡＬＩＺＥＤ信号が入力されると、複数のバス関連モードの内のバス関連モード信号によって示されるモードで動作し、ＣＰＵバスＢ１との間の信号の送受を行う。
【００８５】
レジスタ３４（広義には、第３の回路）は、後で説明するように、複数のバス関連モードの内のメインＣＰＵ１１が設定したモードを示す値を記憶する。レジスタ３４に記憶された値は、メインＣＰＵ１１がレジスタ３４にリードアクセスすることで読み出すことが可能である。
【００８６】
図５にＣＰＵインタフェース部２１の初期化モード設定部３１とレジスタアクセス信号生成部３２の入出力信号の例を示す。
初期化モード設定部３１には、メインＣＰＵ１１のアクセス対象がコントローラ１３であることを表すチップセレクト信号ＸＣＳ（接頭字「Ｘ」は負論理を表す。）及び下位バイトの取り込みタイミングを表すローバイトライトストローブ信号ＸＷＲＬ（広義には、第１群のバス信号及び／又は１群の制御信号）が、ＣＰＵバスＢ１の制御バスからそれぞれ入力される。なお、メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードである場合には、ローバイトライトストローブ信号ＸＷＲＬに代えて上位及び／又は下位バイトの取り込みタイミングを表すライトストローブ信号ＸＷＲ（広義には、第１群のバス信号及び／又は１群の制御信号）が、ＣＰＵバスＢ１の制御バスから入力される。これらのチップセレクト信号ＸＣＳ、ローバイトライトストローブ信号ＸＷＲＬ及びライトストローブ信号ＸＷＲは、ＣＰＵがデータを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくはバス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせを含むモードのいずれのモードにおいてもタイミングが異ならない信号である。
【００８７】
レジスタアクセス信号生成部３２には、チップセレクト信号ＸＣＳとローバイトライトストローブ信号ＸＷＲＬのほか、メインＣＰＵ１１からコントローラ１３へのリードアクセスであることを表すリード信号ＸＲＤ及び上位バイトの取り込みタイミングを表すハイバイトライトストローブ信号ＸＷＲＨ（広義には、第２群のバス信号）が、ＣＰＵバスＢ１の制御バスからそれぞれ入力される。なお、メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードである場合には、ローバイトライトストローブ信号ＸＷＲＬに代えて上位及び／又は下位バイトの取り込みタイミングを表すライトストローブ信号ＸＷＲが、ハイバイトライトストローブ信号ＸＷＲＨに代えてハイバイトイネーブル信号ＸＢＥＨ（広義には、第２群のバス信号）が、ＣＰＵバスＢ１の制御バスからそれぞれ入力され、また、下位バイトが有効又は無効であることを表すローバイトイネーブル信号ＸＢＥＬ（広義には、第２群のバス信号）がＣＰＵバスＢ１の制御バスから更に入力される。
【００８８】
図６にメインＣＰＵ１１のモードの種類とコントローラ１３が有する複数の制御信号入力端子の内の３つの端子Ｐ０〜Ｐ２の好適なピンアサインとの関係の一例を示す。
【００８９】
メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＳｔｒｏｂｅモードである場合には、コントローラ１３の端子Ｐ０には、ハイバイトライトストローブ信号ＸＷＲＨが入力され、端子Ｐ１には、ローバイトライトストローブ信号ＸＷＲＬが入力されると好適である。
【００９０】
メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードである場合には、コントローラ１３の端子Ｐ０には、ハイバイトイネーブル信号ＸＢＥＨが入力され、端子Ｐ１には、ライトストローブ信号ＸＷＲが入力され、端子Ｐ２には、ローバイトイネーブル信号ＸＢＥＬが入力されると好適である。
【００９１】
なお、その他の制御信号入力端子については、種々のピンアサインが実現可能であり、説明を省略する。
【００９２】
再び図５を参照すると、レジスタアクセス信号生成部３２には、バス関連モード信号及びＩＮＩＴＩＡＬＩＺＥＤ信号が初期化モード設定部３１から入力される。ここでは、バス関連モード信号は、ＢｕｓＭｏｄｅ信号及びＣＰＵ＿Ｓｗａｐ信号を含む。
【００９３】
ＢｕｓＭｏｄｅ信号は、Ｌレベルの場合に、メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＳｔｒｏｂｅモードであることを示し、Ｈレベルの場合に、メインＣＰＵ１１がコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードであることを示す信号である。初期時（パワーオン時、リセット時等）において、ＢｕｓＭｏｄｅ信号は、Ｌレベルである。
【００９４】
ＣＰＵ＿Ｓｗａｐ信号は、Ｌレベルの場合に、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  Ｅｎｄｉａｎであることを示し、Ｈレベルの場合に、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  Ｅｎｄｉａｎであることを示す信号である。初期時において、ＣＰＵ＿Ｓｗａｐ信号は、Ｌレベルである。
【００９５】
ＩＮＩＴＩＡＬＩＺＥＤ信号は、Ｌレベルの場合に、初期化モード設定部３１がメインＣＰＵ１１によって未だ設定されていないことを示し、Ｈレベルの場合に、初期化モード設定部３１がメインＣＰＵ１１によって設定されたことを示す信号である。レジスタアクセス信号生成部３２は、ＩＮＩＴＩＡＬＩＺＥＤ信号がＬレベルの場合には、レジスタ２２ａ、２３ａ、２４ａ、２５ａの上位バイトへの書き込みを行うための内部信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、レジスタ２２ａ、２３ａ、２４ａ、２５ａの下位バイトへの書き込みを行うための内部信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及びレジスタ２２ａ、２３ａ、２４ａ、２５ａ、３４からのデータの読み出しを行うための内部信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号（広義には、第３群の内部信号）をアサートせず、ＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルになると、ｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号又はｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートする。初期時において、ＩＮＩＴＩＡＬＩＺＥＤ信号は、Ｌレベルである。従って、レジスタアクセス信号生成部３２は、初期時において、ｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及びｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートしない。
【００９６】
図７に初期化モード設定部３１の構成例を示す。図７に示すように、初期化モード設定部３１は、ＡＮＤゲート回路３１１、３１３、３１６、３２０、３２２、３２４、３２５、３２８、３２９と、遅延（ディレイ）素子３１２、３１４、３１５、３２１、３２３と、Ｄ型フリップフロップ３１７〜３１９、３２６、３２７とを含む。
【００９７】
ＡＮＤゲート回路３１１は、チップセレクト信号ＸＣＳの反転とローバイトライトストローブ信号ＸＷＲＬ（又はライトストローブ信号ＸＷＲ）の反転とフリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号の反転との論理積をｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号として出力する。
【００９８】
ＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号は、遅延素子３１２及びＡＮＤゲート回路３１３のほか、レジスタ３４（図４参照）にも出力される。レジスタ３４は、ｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号の立ち下がりエッジのタイミングで、ＣＰＵバスＢ１のデータバス上の下位バイトＣＤ［７：０］を取り込む。そして、レジスタ３４の下位から第３番目のビットＤ［２］及び下位から第２番目のビットＤ［１］は、フリップフロップ３１７、３１８のデータ入力端子（Ｄ入力端子）に、それぞれ入力される。
【００９９】
遅延素子３１２は、ＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号を所与の時間遅延させて出力する。
ＡＮＤゲート回路３１３は、遅延素子３１２の出力信号であるｄｌｙ＿ｍｏｄｅ＿ｗｒ信号とＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号との論理積をｃｐｕ＿ｍｏｄｅ＿ｗｒ信号として出力する。
【０１００】
遅延素子３１４は、ＡＮＤゲート回路３１３の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｗｒ信号を所与の時間遅延させたａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［０］信号を出力する。
遅延素子３１５は、遅延素子３１４の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［０］信号を所与の時間遅延させたａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［１］信号を出力する。
【０１０１】
ＡＮＤゲート回路３１６は、遅延素子３１４の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［０］信号の反転と遅延素子３１５の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［１］信号との論理積をａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号としてフリップフロップ３１７〜３１９のトリガ入力端子に出力する。
【０１０２】
フリップフロップ３１７は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、レジスタ３４の下位から第２番目のビットＤ［１］を取り込み、ＢＵＳＭＯＤＥ信号としてＡＮＤゲート回路３２８に出力する。なお、ＢＵＳＭＯＤＥ信号の初期値はＬレベルである。
【０１０３】
フリップフロップ３１８は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、レジスタ３４の下位から第３番目のビットＤ［２］を取り込み、ＥＮＤＩＡＮ信号としてＡＮＤゲート回路３２９に出力する。なお、ＥＮＤＩＡＮ信号の初期値はＬレベルである。
【０１０４】
フリップフロップ３１９のデータ入力端子（Ｄ端子）はプルアップされており、フリップフロップ３１９は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、Ｈレベルの信号を取り込み、ｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号としてＡＮＤゲート回路３１１及びフリップフロップ３２６に出力する。なお、ｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号の初期値はＬレベルである。また、ｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号は、状態（ステート）遷移を司る信号であると考えることもできる。
【０１０５】
後で詳細に説明するように、フリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号は、チップセレクト信号が１回アサートされる即ちメインＣＰＵ１１がコントローラ１３に１回アクセスする（コントローラ１３にバスサイクルを１回発行する）ことで、Ｈレベルに変化することになる。
【０１０６】
ＡＮＤゲート回路３２０は、チップセレクト信号ＸＣＳの反転とフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号の反転との論理積をｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号として遅延素子３２１及びＡＮＤゲート回路３２２に出力する。
【０１０７】
遅延素子３２１は、ＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号を所与の時間遅延させて出力する。
ＡＮＤゲート回路３２２は、遅延素子３２１の出力信号であるｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号とＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号との論理積をｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号として出力する。
【０１０８】
遅延素子３２３は、ＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号を所与の時間遅延させたａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号を出力する。
ＡＮＤゲート回路３２４は、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号の反転とＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号との論理積をｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号としてフリップフロップ３２６のトリガ入力端子に出力する。
【０１０９】
ＡＮＤゲート回路３２５は、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号とＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号の反転との論理積をｍｏｄｅ＿ｃｈｇ信号としてフリップフロップ３２７のトリガ入力端子に出力する。
【０１１０】
フリップフロップ３２６は、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジにおいて、フリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号を取り込み、ＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号としてフリップフロップ３２７のデータ入力端子（Ｄ入力端子）に出力する。なお、ＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号の初期値はＬレベルである。また、ＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号は、状態（ステート）遷移を司る信号であると考えることもできる。
【０１１１】
フリップフロップ３２７は、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジにおいて、フリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号を取り込み、ＩＮＩＴＩＡＬＩＺＥＤ信号として出力する。なお、ＩＮＩＴＩＡＬＩＺＥＤ信号の初期値はＬレベルである。また、ＩＮＩＴＩＡＬＩＺＥＤ信号は、状態（ステート）遷移を司る信号であると考えることもできる。
【０１１２】
後で詳細に説明するように、フリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号は、ｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号がアサートされた後にチップセレクト信号がアサートされる即ちメインＣＰＵ１１がコントローラ１３に２回アクセスする（コントローラ１３にバスサイクルを２回発行する）ことで、Ｈレベルに変化することになる。従って、レジスタアクセス信号生成部３２（図５参照）は、メインＣＰＵ１１がコントローラ１３に２回アクセスした後（コントローラ１３にバスサイクルを２回発行した後）に、ｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及び／又はｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートすることができるようになる。
【０１１３】
ＡＮＤゲート回路３２８は、フリップフロップ３１７の出力信号であるＢＵＳＭＯＤＥ信号とフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号との論理積をＢｕｓ＿Ｍｏｄｅ信号としてレジスタアクセス信号生成部３２（図４及び図５参照）に出力する。
【０１１４】
ＡＮＤゲート回路３２９は、フリップフロップ３１８の出力信号であるＥＮＤＩＡＮ信号とフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号との論理積をＣＰＵ＿Ｓｗａｐ信号としてレジスタアクセス信号生成部３２に出力する。
【０１１５】
図８にレジスタアクセス信号生成部３２の構成例を示す。図８に示すように、レジスタアクセス信号生成部３２は、ＡＮＤゲート回路３３１〜３３３、３３８〜３３９と、セレクタ３３４〜３３７とを含む。
【０１１６】
ＡＮＤゲート回路３３１は、チップセレクト信号ＸＣＳの反転と初期化モード設定部３１（図７参照）のフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号との論理積をｃｐｕ＿ａｃｃｅｓｓ信号として出力する。
【０１１７】
ＡＮＤゲート回路３３２は、ハイバイトライトストローブ信号ＸＷＲＨ（又はハイバイトイネーブル信号ＸＢＥＨ）の反転とローバイトライトストローブ信号ＸＷＲＬ（又はライトストローブ信号ＸＷＲ）の反転との論理積をｂｅ＿ｘｗｒｈ信号として出力する。
【０１１８】
ＡＮＤゲート回路３３３は、ローバイトライトストローブ信号ＸＷＲＬ（又はライトストローブ信号ＸＷＲ）の反転とローバイトイネーブル信号ＸＢＥＬの反転との論理積をｂｅ＿ｘｗｒｌ信号として出力する。
【０１１９】
セレクタ３３４は、Ｂｕｓ＿Ｍｏｄｅ信号がＬレベルの場合（Ｓｔｒｏｂｅモードを示す。）には、ハイバイトライトストローブ信号ＸＷＲＨを選択してｍｏｄｅ＿ｘｗｒｈ信号として出力する。また、セレクタ３３４は、Ｂｕｓ＿Ｍｏｄｅ信号がＨレベルの場合（ＢＥモードを示す。）には、ＡＮＤゲート回路３３２の出力信号であるｂｅ＿ｘｗｒｈ信号を選択してｍｏｄｅ＿ｘｗｒｈ信号として出力する。
【０１２０】
セレクタ３３５は、Ｂｕｓ＿Ｍｏｄｅ信号がＬレベルの場合（Ｓｔｒｏｂｅモードを示す。）には、ローバイトライトストローブ信号ＸＷＲＬを選択してｍｏｄｅ＿ｘｗｒｌ信号として出力する。また、セレクタ３３５は、Ｂｕｓ＿Ｍｏｄｅ信号がＨレベルの場合（ＢＥモードを示す。）には、ＡＮＤゲート回路３３３の出力信号であるｂｅ＿ｘｗｒｌ信号を選択してｍｏｄｅ＿ｘｗｒｌ信号として出力する。
【０１２１】
セレクタ３３６は、ＣＰＵ＿Ｓｗａｐ信号がＬレベルの場合（Ｂｉｇ  Ｅｎｄｉａｎを示す。）には、セレクタ３３４の出力信号であるｍｏｄｅ＿ｘｗｒｈ信号を選択してｒｅａｌ＿ｘｗｒｈ信号として出力する。また、セレクタ３３６は、ＣＰＵ＿Ｓｗａｐ信号がＨレベルの場合（Ｌｉｔｔｌｅ  Ｅｎｄｉａｎを示す。）には、セレクタ３３５の出力信号であるｍｏｄｅ＿ｘｗｒｌ信号を選択してｒｅａｌ＿ｘｗｒｈ信号として出力する。
【０１２２】
セレクタ３３７は、ＣＰＵ＿Ｓｗａｐ信号がＬレベルの場合（Ｂｉｇ  Ｅｎｄｉａｎを示す。）には、セレクタ３３５の出力信号であるｍｏｄｅ＿ｘｗｒｌ信号を選択してｒｅａｌ＿ｘｗｒｌ信号として出力する。また、セレクタ３３７は、ＣＰＵ＿Ｓｗａｐ信号がＨレベルの場合（Ｌｉｔｔｌｅ  Ｅｎｄｉａｎを示す。）には、セレクタ３３４の出力信号であるｍｏｄｅ＿ｘｗｒｈ信号を選択してｒｅａｌ＿ｘｗｒｌ信号として出力する。
【０１２３】
ＡＮＤゲート回路３３８は、セレクタ３３６の出力信号であるｒｅａｌ＿ｘｗｒｈ信号の反転とＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号との論理積をｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号として出力する。すなわち、ＡＮＤゲート回路３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号がＨレベルになるためには、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルであることが条件になる。そして、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルになるためには、初期化モード設定部３１のフリップフロップ３２７（図７参照）の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルであることが条件になる。先に説明したように、ＩＮＩＴＩＡＬＩＺＥＤ信号は、チップセレクト信号が２回アサートされる即ちメインＣＰＵ１１がコントローラ１３に２回アクセスする（コントローラ１３にバスサイクルを２回発行する）ことで、Ｈレベルに変化する。従って、ＡＮＤゲート回路３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号は、メインＣＰＵ１１がコントローラ１３に２回アクセスした後（コントローラ１３にバスサイクルを２回発行した後）にＨレベルになり得る。
【０１２４】
ＡＮＤゲート回路３３９は、セレクタ３３７の出力信号であるｒｅａｌ＿ｘｗｒｌ信号の反転とＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号との論理積をｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号として出力する。すなわち、ＡＮＤゲート回路３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号がＨレベルになるためには、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルであることが条件になる。そして、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルになるためには、初期化モード設定部３１のフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルであることが条件になる。先に説明したように、ＩＮＩＴＩＡＬＩＺＥＤ信号は、チップセレクト信号が２回アサートされる即ちメインＣＰＵ１１がコントローラ１３に２回アクセスする（コントローラ１３にバスサイクルを２回発行する）ことで、Ｈレベルに変化する。従って、ＡＮＤゲート回路３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号は、メインＣＰＵ１１がコントローラ１３に２回アクセスした後（コントローラ１３にバスサイクルを２回発行した後）にＨレベルになり得る。
【０１２５】
ＡＮＤゲート回路３４０は、リード信号ＸＲＤの反転とＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号との論理積をｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号として出力する。すなわち、ＡＮＤゲート回路３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がＨレベルになるためには、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルであることが条件になる。そして、ＡＮＤゲート回路３３１の出力信号であるｃｐｕ＿ａｃｃｅｓｓ信号がＨレベルになるためには、初期化モード設定部３１のフリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルであることが条件になる。先に説明したように、ＩＮＩＴＩＡＬＩＺＥＤ信号は、チップセレクト信号が２回アサートされる即ちメインＣＰＵ１１がコントローラ１３に２回アクセスする（コントローラ１３にバスサイクルを２回発行する）ことで、Ｈレベルに変化する。従って、ＡＮＤゲート回路３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号は、メインＣＰＵ１１がコントローラ１３に２回アクセスした後（コントローラ１３にバスサイクルを２回発行した後）にＨレベルになり得る。
【０１２６】
図９にアドレスデコーダ３３の入出力信号の例を示す。図９に示すように、アドレスデコーダ３３には、ＣＰＵバスＢ１のアドレスバスからアドレス信号ＣＡ［１５：０］が入力される。また、アドレスデコーダ３３は、第１〜第５アドレス検出信号を内部バスＢ２に出力する。
【０１２７】
アドレスデコーダ３３は、ＣＰＵバスＢ１のアドレスバス上のアドレス信号ＣＡ［１５：０］の値が所与の第１の値（レジスタ３４（図４参照）のリードアドレスであり、ここでは"０ｘ００Ｂ７"とする。）である場合に、第１アドレス検出信号をアサートする（Ｈレベルにする）。この第１アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がアサートされたときに、レジスタ３４は、記憶しているデータを内部バスＢ２のデータバスを介してＣＰＵバスＢ１のデータバスに出力する。なお、レジスタ３４は、先に説明したように、初期化モード設定部３１のＡＮＤゲート回路３１１（図７参照）の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号の立ち下がりエッジのタイミングで、ＣＰＵバスＢ１のデータバス上の下位バイトＣＤ［７：０］を取り込む。
【０１２８】
また、アドレスデコーダ３３は、ＣＰＵバスＢ１のアドレスバス上のアドレス信号ＣＡ［１５：０］の値が所与の第２の値（レジスタ２２ａ（図４参照）のアドレス）である場合に、第２アドレス検出信号をＨレベルにする。レジスタ２２ａは、第２アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている上位バイトを記憶する。また、レジスタ２２ａは、第２アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている下位バイトを記憶する。さらに、レジスタ２２ａは、第２アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がアサートされたときに、記憶しているデータを内部バスＢ２のデータバスを介してＣＰＵバスＢ１のデータバスに出力する。
【０１２９】
また、アドレスデコーダ３３は、ＣＰＵバスＢ１のアドレスバス上のアドレス信号ＣＡ［１５：０］の値が所与の第３の値（レジスタ２３ａ（図４参照）のアドレス）である場合に、第３アドレス検出信号をＨレベルにする。レジスタ２３ａは、第３アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている上位バイトを記憶する。また、レジスタ２３ａは、第３アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている下位バイトを記憶する。さらに、レジスタ２３ａは、第３アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がアサートされたときに、記憶しているデータを内部バスＢ２のデータバスを介してＣＰＵバスＢ１のデータバスに出力する。
【０１３０】
また、アドレスデコーダ３３は、ＣＰＵバスＢ１のアドレスバス上のアドレス信号ＣＡ［１５：０］の値が所与の第４の値（レジスタ２４ａ（図４参照）のアドレス）である場合に、第４アドレス検出信号をＨレベルにする。レジスタ２４ａは、第４アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている上位バイトを記憶する。また、レジスタ２４ａは、第４アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている下位バイトを記憶する。さらに、レジスタ２４ａは、第４アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がアサートされたときに、記憶しているデータを内部バスＢ２のデータバスを介してＣＰＵバスＢ１のデータバスに出力する。
【０１３１】
また、アドレスデコーダ３３は、ＣＰＵバスＢ１のアドレスバス上のアドレス信号ＣＡ［１５：０］の値が所与の第５の値（レジスタ２５ａ（図４参照）のアドレス）である場合に、第５アドレス検出信号をＨレベルにする。レジスタ２５ａは、第５アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３８の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている上位バイトを記憶する。また、レジスタ２５ａは、第５アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３３９の出力信号であるｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号がアサートされたときに、ＣＰＵバスＢ１のデータバスを介して内部バスＢ２のデータバス上に出力されている下位バイトを記憶する。さらに、レジスタ２５ａは、第５アドレス検出信号がアサートされ且つレジスタアクセス信号生成部３２のＡＮＤゲート３４０の出力信号であるｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がアサートされたときに、記憶しているデータを内部バスＢ２のデータバスを介してＣＰＵバスＢ１のデータバスに出力する。
【０１３２】
３．  電子機器の動作の概要
再び図５を参照すると、先に説明したように、メインＣＰＵ１１がレジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスすることが可能になるためには、レジスタアクセス信号生成部３２の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及び／又はｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がＨレベルになることが必要である。レジスタアクセス信号生成部３２の出力信号であるｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及び／又はｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号がＨレベルになるためには、初期化モード設定部３１の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルであることが必要である。そして、初期化モード設定部３１の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルになるためには、チップセレクト信号が２回アサートされる即ちメインＣＰＵ１１がコントローラ１３に２回アクセスする（コントローラ１３にバスサイクルを２回発行する）ことが必要である。
【０１３３】
図１０は、メインＣＰＵ１１がレジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスすることが可能になるために、メインＣＰＵ１１とコントローラ１３との間で送受されるＣＰＵバスＢ１上の制御信号のタイミングチャートの概要である。図１０には第１〜第３の３つのバスサイクルが示されており、第１のバスサイクル（広義には、第１の条件）及び第２のバスサイクル（広義には、第２の条件）が、メインＣＰＵ１１がレジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスすることが可能になるために、初期化モード設定部３１の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号をＨレベルにするためのバスサイクルである。図１０に示す第１のバスサイクルをモード設定バスサイクルと呼ぶことにし、図１０に示す第２のバスサイクルをモード確定バスサイクルと呼ぶことにする。メインＣＰＵ１１は、第２のバスサイクルにおいて初期化モード設定部３１の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルになるまでは、レジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスすることが出来ない。
【０１３４】
また、図１０に示す第３のバスサイクル（広義には、第３の条件）は、メインＣＰＵ１１が第１のバスサイクルにおいて設定した値（先に説明したように、レジスタ３４に記憶される。）を読み出して、所望の値が設定されたか否かを確認するためのバスサイクルであり、この第３のバスサイクルをモード確認バスサイクルと呼ぶことにする。なお、第３のバスサイクル時には、初期化モード設定部３１の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号はＨレベルになっているので、メインＣＰＵ１１がレジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスすることは可能である。すなわち、第３のバスサイクルはオプションのようなものであり必ずしも必須ではないが、第３のバスサイクルを発行しレジスタ３４の値を読み出して確認することが好適である。
【０１３５】
４．  電子機器の動作の詳細
次に、電子機器１の動作について詳細に説明する。
【０１３６】
図１１は、電子機器１の動作を示すフローチャートである。
図１２及び図１３は、コントローラ１３の詳細なタイミングチャートである。なお、図１２に示すバスサイクルは、図１０に示す第１のバスサイクルに対応し、図１３に示すバスサイクルは、図１０に示す第２のバスサイクルに対応する。
【０１３７】
まず、メインＣＰＵ１１は、前述したように、コントローラ１３のバス関連モードを設定する必要がある。そこで、メインＣＰＵ１１は、コントローラ１３のバス関連モードを設定するための値（以下、「バス関連モード設定値」という。）をコントローラ１３にライトするライトアクセスを行う（ステップＳ１１）。なお、このライトアクセスは、図１０及び図１２の第１バスサイクルに対応する。
コントローラ１３は、バス関連モード設定値を取り込み、バス関連モード設定値で示されるモードで動作することを設定する（ステップＳ２１）。
【０１３８】
より詳細には、図１２を参照すると、メインＣＰＵ１１は、ＣＰＵバスＢ１の制御バス上のチップセレクト信号ＸＣＳをアサートし（図１２のタイミングＴＭａ１参照）、その後ローバイトライトストローブ信号ＸＷＲＬ（又はライトストローブ信号ＸＷＲ）をアサートする（図１２のタイミングＴＭｂ１参照）。また、メインＣＰＵ１１は、ＣＰＵバスＢ１のデータバスＣＤ［１５：０］上にバス関連モード設定値を出力する。なお、ＣＰＵバスＢ１のアドレスバス上のアドレス信号の値は、初期化モード設定部３１がアドレス信号を利用しないため、どのような値であっても良い。
【０１３９】
図１４にメインＣＰＵ１１のモードの種類とバス関連モード設定値との対応例を示す。
まず、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  Ｅｎｄｉａｎであり且つメインＣＰＵ１１のコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＳｔｒｏｂｅモードである場合について、説明する。この場合には、メインＣＰＵ１１は、"０ｂ＊＊＊＊＊００＊＊＊＊＊＊００＊"（＊はｄｏｎ'ｔ  ｃａｒｅであり、例えば"０ｂ００００００００００００００００"等）をバス関連モード設定値としてＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力する。なお、レジスタ３４にはＣＰＵバスＢ１のデータバスの下位バイトＣＤ［７：０］が記憶されるので、"０ｂ＊＊＊＊＊００＊＊＊＊＊＊００＊"をＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力することに代えて、"０ｂ＊＊＊＊＊＊＊＊＊＊＊＊＊００＊"をＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力するようにしても良い。先に説明したように、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  Ｅｎｄｉａｎの場合には、メインＣＰＵ１１内部における上位バイトがＣＰＵバスＢ１のデータバスの上位ＣＤ［１５：８］に出力され、メインＣＰＵ１１内部における下位バイトがＣＰＵバスＢ１のデータバスの下位ＣＤ［７：０］に出力される（図３参照）。一方、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  Ｅｎｄｉａｎの場合には、メインＣＰＵ１１内部における上位バイトがＣＰＵバスＢ１のデータバスの下位ＣＤ［７：０］に出力され、メインＣＰＵ１１内部における下位バイトがＣＰＵバスＢ１のデータバスの上位ＣＤ［１５：８］に出力される（図３参照）。そのため、"０ｂ＊＊＊＊＊００＊＊＊＊＊＊００＊"をバス関連モード設定値としておけば、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  ＥｎｄｉａｎであるのかＬｉｔｔｌｅ  Ｅｎｄｉａｎであるのかをプログラマが気にする必要をなくすことができ、バグの発生の防止等を図ることができるので、好適である。
【０１４０】
次に、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  Ｅｎｄｉａｎであり且つメインＣＰＵ１１のコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードである場合について、説明する。この場合には、メインＣＰＵ１１は、"０ｂ＊＊＊＊＊０１＊＊＊＊＊＊０１＊"（＊はｄｏｎ'ｔ  ｃａｒｅであり、例えば"０ｂ００００００１０００００００１０"等）をバス関連モード設定値としてＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力する。なお、レジスタ３４にはＣＰＵバスＢ１のデータバスの下位バイトＣＤ［７：０］が記憶されるので、"０ｂ＊＊＊＊＊０１＊＊＊＊＊＊０１＊"をＣＰＵバスＢ１のデータバス上に出力することに代えて"０ｂ＊＊＊＊＊＊＊＊＊＊＊＊＊０１＊"をＣＰＵバスＢ１のデータバス上に出力するようにしても良い。先に説明したように、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  Ｅｎｄｉａｎの場合には、メインＣＰＵ１１内部における上位バイトがＣＰＵバスＢ１のデータバスの下位ＣＤ［７：０］に出力され、メインＣＰＵ１１内部における下位バイトがＣＰＵバスＢ１のデータバスの上位ＣＤ［１５：８］に出力される（図３参照）。一方、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  Ｅｎｄｉａｎの場合には、メインＣＰＵ１１内部における上位バイトがＣＰＵバスＢ１のデータバスの上位ＣＤ［１５：８］に出力され、メインＣＰＵ１１内部における下位バイトがＣＰＵバスＢ１のデータバスの下位ＣＤ［７：０］に出力される（図３参照）。そのため、"０ｂ＊＊＊＊＊０１＊＊＊＊＊＊０１＊"をバス関連モード設定値としておけば、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  ＥｎｄｉａｎであるのかＢｉｇ  Ｅｎｄｉａｎであるのかをプログラマが気にする必要をなくすことができ、バグの発生の防止等を図ることができるので、好適である。
【０１４１】
次に、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  Ｅｎｄｉａｎであり且つメインＣＰＵ１１のコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＳｔｒｏｂｅモードである場合について、説明する。この場合には、メインＣＰＵ１１は、"０ｂ＊＊＊＊＊１０＊＊＊＊＊＊１０＊"（＊はｄｏｎ'ｔ  ｃａｒｅであり、例えば"０ｂ０００００１００００００００１０"等）をバス関連モード設定値としてＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力する。なお、"０ｂ＊＊＊＊＊１０＊＊＊＊＊＊１０＊"をＣＰＵバスＢ１のデータバス上に出力することに代えて"０ｂ＊＊＊＊＊＊＊＊＊＊＊＊＊１０＊"をＣＰＵバスＢ１のデータバス上に出力するようにしても良いが、"０ｂ＊＊＊＊＊１０＊＊＊＊＊＊１０＊"をバス関連モード設定値としておけば、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＢｉｇ  ＥｎｄｉａｎであるのかＬｉｔｔｌｅ  Ｅｎｄｉａｎであるのかをプログラマが気にする必要をなくすことができるので、好適である。
【０１４２】
次に、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  Ｅｎｄｉａｎであり且つメインＣＰＵ１１のコントローラ１３にデータを書き込むための制御信号の種類及び／又はタイミングに関するモードがＢＥモードである場合について、説明する。この場合には、メインＣＰＵ１１は、"０ｂ＊＊＊＊＊１１＊＊＊＊＊＊１１＊"（＊はｄｏｎ'ｔ  ｃａｒｅであり、例えば"０ｂ０００００１１００００００１１０"等）をバス関連モード設定値としてＣＰＵバスＢ１のデータバスＣＤ［１５：０］上に出力する。なお、レジスタ３４にはＣＰＵバスＢ１のデータバスの下位バイトＣＤ［７：０］が記憶されるので、"０ｂ＊＊＊＊＊１１＊＊＊＊＊＊１１＊"をＣＰＵバスＢ１のデータバス上に出力することに代えて"０ｂ＊＊＊＊＊＊＊＊＊＊＊＊＊１１＊"をＣＰＵバスＢ１のデータバス上に出力するようにしても良いが、"０ｂ＊＊＊＊＊１１＊＊＊＊＊＊１１＊"をバス関連モード設定値としておけば、ＣＰＵバスＢ１のデータバス上に出力されるデータの並び順に関するモードがＬｉｔｔｌｅ  ＥｎｄｉａｎであるのかＢｉｇ  Ｅｎｄｉａｎであるのかをプログラマが気にする必要をなくすことができるので、好適である。
【０１４３】
再び図１２を参照すると、チップセレクト信号ＸＣＳがアサートされると（図１２のタイミングＴＭａ１参照）、初期化モード設定部３１（図７参照）のＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号は、Ｈレベルに変化する。
【０１４４】
次に、タイミングＴＭａ１から遅延素子３２１の遅延時間の後のタイミングＴＭｄ１において、遅延素子３２１の出力信号であるｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化し、ＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号もＨレベルに変化し、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号もＨレベルに変化する。
【０１４５】
フリップフロップ３２６は、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジでフリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号を取り込むが、フリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号はＬレベルであるので、フリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号はＬレベルのまま変化しない。
【０１４６】
そして、タイミングＴＭｄ１から遅延素子３２３の遅延時間の後のタイミングＴＭｄ２において、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化し、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号がＬレベルに変化する。
【０１４７】
一方、ローバイトライトストローブ信号（又はライトストローブ信号ＸＷＲ）がアサートされると（図１２のタイミングＴＭｂ１参照）、初期化モード設定部３１のＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号は、Ｈレベルに変化する。
【０１４８】
次に、タイミングＴＭｂ１から遅延素子３１２の遅延時間の後のタイミングＴＭｃ１において、遅延素子３１２の出力信号であるｄｌｙ＿ｍｏｄｅ＿ｗｒ信号がＨレベルに変化し、ＡＮＤゲート回路３１３の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｗｒ信号もＨレベルに変化する。
【０１４９】
さらに、タイミングＴＭｃ１から遅延素子３１４の遅延時間の後のタイミングＴＭｃ２において、遅延素子３１４の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［０］信号がＨレベルに変化する。
【０１５０】
さらに、タイミングＴＭｃ２から遅延素子３１５の遅延時間の後のタイミングＴＭｃ３において、遅延素子３１５の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［１］信号がＨレベルに変化する。
【０１５１】
なお、タイミングＴＭｂ１とタイミングＴＭｄ１が同じタイミングであっても良い。また、タイミングＴＭｃ１とタイミングＴＭｄ２が同じタイミングであっても良い。
【０１５２】
次に、ローバイトライトストローブ信号（又はライトストローブ信号ＸＷＲ）がネゲートされると（図１２のタイミングＴＭｂ２参照）、初期化モード設定部３１のＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号はＬレベルに変化し、ＡＮＤゲート回路３１３の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｗｒ信号もＬレベルに変化する。
【０１５３】
レジスタ３４（図４参照）は、このｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号の立ち下がりエッジにおいて、ＣＰＵバスＢ１のデータバス上のデータ信号ＣＤ［７：０］を取り込んで記憶する。
【０１５４】
次に、タイミングＴＭｂ２から遅延素子３１４の遅延時間の後のタイミングＴＭｃ４において、遅延素子３１４の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［０］信号がＬレベルに変化し、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号がＨレベルに変化する。
【０１５５】
フリップフロップ３１７は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、ＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号の立ち下がりエッジ（図１２のタイミングＴＭｂ２参照）で取り込まれたレジスタ３４（図４参照）の下位から第２番目のビットＤ［１］を取り込む。従って、フリップフロップ３１７の出力信号であるＢＵＳＭＯＤＥ信号は、タイミングＴＭｃ４において、ビットＤ［１］の値に応じた値になる。
【０１５６】
同様に、フリップフロップ３１８は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、ＡＮＤゲート回路３１１の出力信号であるｍｏｄｅ＿ｗｒ＿ａｃｃｅｓｓ信号の立ち下がりエッジ（図１２のタイミングＴＭｂ２参照）で取り込まれたレジスタ３４（図４参照）の下位から第３番目のビットＤ［２］を取り込む。従って、フリップフロップ３１８の出力信号であるＥＮＤＩＡＮ信号は、タイミングＴＭｃ４において、ビットＤ［２］の値に応じた値になる。
【０１５７】
さらに、フリップフロップ３１９は、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号の立ち上がりエッジにおいて、プルアップされたＨレベルの信号を取り込む。従って、フリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号は、タイミングＴＭｃ４において、Ｈレベル（広義には、第１のステート）になる。
【０１５８】
次に、タイミングＴＭｃ４から遅延素子３１５の遅延時間の後のタイミングＴＭｃ５において、遅延素子３１５の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｗｒ［１］信号がＬレベルに変化し、ＡＮＤゲート回路３１６の出力信号であるａｓｙｎｃ＿ｍｏｄｅ＿ｗｒ信号もＬレベルに変化する。
【０１５９】
一方、チップセレクト信号ＸＣＳ信号がネゲートされると（図１２のタイミングＴＭａ２参照）、ＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号がＬレベルに変化し、ＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号もＬレベルに変化し、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化する。
【０１６０】
フリップフロップ３２７は、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジでフリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号を取り込むが、フリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号はＬレベルであるので、フリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号はＬレベルのまま変化しない。
【０１６１】
次に、タイミングＴＭａ２から遅延素子３２３の遅延時間の後のタイミングＴＭｄ３において、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＬレベルに変化し、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号もＬレベルに変化する。
【０１６２】
再び図１１を参照すると、メインＣＰＵ１１は、コントローラ１３にリードアクセスする（ステップＳ１２）。なお、ここで、メインＣＰＵ１１がリードアクセスに代えてライトアクセスを行うようにしても良い。すなわち、チップセレクト信号ＸＣＳがアサートされれば良い。
コントローラ１３は、ステップＳ２１にて取り込んだバス関連モード設定値で示されるモードで動作することを確定する（ステップＳ２２）。
【０１６３】
より詳細には、図１３を参照すると、メインＣＰＵ１１は、ＣＰＵバスＢ１の制御バス上のチップセレクト信号ＸＣＳをアサートする（図１２のタイミングＴＭａ３参照）。なお、ＣＰＵバスＢ１のアドレスバス上のアドレス信号の値は、初期化モード設定部３１がアドレス信号を利用しないため、どのような値であっても良い。
【０１６４】
チップセレクト信号ＸＣＳがアサートされると（図１２のタイミングＴＭａ３参照）、初期化モード設定部３１（図７参照）のＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号は、Ｈレベルに変化する。
【０１６５】
次に、タイミングＴＭａ３から遅延素子３２１の遅延時間の後のタイミングＴＭｄ４において、遅延素子３２１の出力信号であるｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化し、ＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号もＨレベルに変化し、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号もＨレベルに変化する。
【０１６６】
フリップフロップ３２６は、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジでフリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号を取り込むが、フリップフロップ３１９の出力信号であるｘＩＮＩＴＩＡＬＩＺＡＴＩＯＮ信号はＨレベルであるので、フリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号はＨレベル（広義には、第２のステート）に変化する。
【０１６７】
そして、タイミングＴＭｄ４から遅延素子３２３の遅延時間の後のタイミングＴＭｄ５において、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化し、ＡＮＤゲート回路３２４の出力信号であるｐｒｅ＿ｍｏｄｅ＿ｃｈｇ信号がＬレベルに変化する。
【０１６８】
次に、チップセレクト信号ＸＣＳ信号がネゲートされると（図１２のタイミングＴＭａ４参照）、ＡＮＤゲート回路３２０の出力信号であるｍｏｄｅ＿ｃｈｇ＿ａｃｃｅｓｓ信号がＬレベルに変化し、ＡＮＤゲート回路３２２の出力信号であるｃｐｕ＿ｍｏｄｅ＿ｃｈｇ信号もＬレベルに変化し、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号がＨレベルに変化する。
【０１６９】
フリップフロップ３２７は、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号の立ち上がりエッジでフリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号を取り込むが、フリップフロップ３２６の出力信号であるＰＲＥ＿ＩＮＩＴＩＡＬＩＺＥＤ信号はＨレベルであるので、フリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号はＨレベル（広義には、第３のステート）に変化する。
【０１７０】
フリップフロップ３２７の出力信号であるＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルに変化すると、ＡＮＤゲート回路３２８の出力信号であるＢｕｓ＿Ｍｏｄｅ信号及びＡＮＤゲート回路３２９の出力信号であるＣＰＵ＿Ｓｗａｐ信号も変化する。
【０１７１】
次に、タイミングＴＭａ４から遅延素子３２３の遅延時間の後のタイミングＴＭｄ６において、遅延素子３２３の出力信号であるａｓｙｎｃ＿ｄｌｙ＿ｍｏｄｅ＿ｃｈｇ信号がＬレベルに変化し、ＡＮＤゲート回路３２５の出力信号であるｍｏｄｅ＿ｃｈｇ信号もＬレベルに変化する。
【０１７２】
以上のようにしてＩＮＩＴＩＡＬＩＺＥＤ信号がＨレベルになると、レジスタアクセス信号生成部３２（図５及び図８参照）は、ｃｐｕ＿ｗｒｈ＿ａｃｃｅｓｓ信号、ｃｐｕ＿ｗｒｌ＿ａｃｃｅｓｓ信号及びｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートすることができるようになる。
【０１７３】
再び図１１を参照すると、メインＣＰＵ１１は、ＣＰＵバスＢ１の制御バス上にチップセレクト信号ＸＣＳ、ハイバイトライトストローブ信号ＸＷＲＨ、ローバイトライトストローブ信号ＸＷＲＬ等を適宜アサートし、ＣＰＵバスＢ１のアドレスバス上にレジスタ２２ａ、２３ａ、２４ａ、２５ａがそれぞれマッピングされているアドレスを適宜出力し、レジスタ２２ａ、２３ａ、２４ａ、２５ａにリード及び／又はライトアクセスし、レジスタ２２ａ、２３ａ、２４ａ、２５ａにコマンド及び／又はデータを書き込む（ステップＳ１３）。
【０１７４】
ＵＳＢインタフェース部２２、ＦＩＦＯ部２３、ＩＤＥインタフェース部２４及びＤＭＡ処理部２５（図４参照）は、レジスタ２２ａ、２３ａ、２４ａ、２５ａに書き込まれたコマンド及び／又はデータに基づいて、ＵＳＢ機器２及び／又はＩＤＥ機器３（図４参照）との間のデータ転送を行う（ステップＳ２３）。
【０１７５】
なお、メインＣＰＵ１１が、ステップＳ１２の後、より好ましくはステップＳ１２の後且つステップＳ１３の前に、コントローラ１３のバス関連モードが所望のモードに設定されたか否かを確認するため、レジスタ３４にリードアクセスを行うようにしても良い。ステップＳ１２の後においては上述したようにレジスタアクセス信号生成部３２がｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートすることが可能になっているので、メインＣＰＵ１１がレジスタ３４のリードアドレス"０ｘ００Ｂ７"（前述）へのリードアクセスのバスサイクルを発行すると、レジスタアクセス信号生成部３２は、ｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号をアサートする。また、メインＣＰＵ１１がアドレス"０ｘ００Ｂ７"へのリードアクセスのバスサイクルを発行すると、アドレスデコーダ３３（図４及び図９参照）は、第１アドレス検出信号をアサートする。これらのｃｐｕ＿ｒｅａｄ＿ａｃｃｅｓｓ信号及び第１アドレス検出信号が内部バスＢ２上に出力され、レジスタ３４は、記憶しているデータを、内部バスＢ２を介して、ＣＰＵバスＢ１のデータバス上に出力する。
【０１７６】
以上説明したように、本実施形態によれば、バスに関するモードを設定するための外部端子を設けることなく、また端子に入力される制御信号をフィルタリングすることなく、バスに関する複数のモードのいずれかのモードに設定して動作することができる。
【０１７７】
また、本実施形態によれば、初期化モード設定部３１が、ＣＰＵがデータを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくはバス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせを含むモードのいずれのモードにおいてもタイミングが異ならないチップセレクト信号ＸＣＳ並びにローバイトライトストローブ信号ＸＷＲＬ又はライトストローブ信号ＸＷＲに基づいて動作するので、いずれのモードで動作するＣＰＵと接続された場合であっても、モードの設定が可能である。
【０１７８】
また、本実施形態によれば、コントローラ１３が有する複数の制御信号入力端子の内の３つの端子Ｐ０〜Ｐ２のピンアサインを図６に示すようなピンアサインにすることにより、データを書き込むための制御信号の種類及び／又はタイミングに関する複数のモード若しくはバス上に出力されるデータの並び順に関する複数のモード又はこれらの組み合わせのいずれのＣＰＵに接続された場合であっても、モードの変更をメインＣＰＵ１１から行うことができるようになる。
【０１７９】
また、本実施形態によれば、図１０及び図１２に示す第１バスサイクルでコントローラ１３のモードを設定し、図１０及び図１３に示す第２バスサイクルでコントローラ１３のモードを確定させるようにしている。このように、モードの設定をライトアクセス並びにリード又はライトアクセスで容易に実現できる。
【０１８０】
また、本実施形態によれば、モードの設定及び確定後に所与のアドレスへのリードアクセスを行うことにより、メインＣＰＵ１１が設定されたモードの確認を容易に行うことができる。
【０１８１】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またデータ転送制御装置や電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。例えばＵＳＢは、ＩＥＥＥ１３９４やシリアルＡＴＡやＣＥ−ＡＴＡのバスであってもよい。
【図面の簡単な説明】
【０１８２】
【図１】１６ビットＢＥモードのタイミングチャート。
【図２】１６ビットＳｔｒｏｂｅモードのタイミングチャート。
【図３】Ｂｉｇ  Ｅｎｄｉａｎ及びＬｉｔｔｌｅ  Ｅｎｄｉａｎの説明図。
【図４】本実施形態の構成例を示す図。
【図５】図４の初期化モード設定部とレジスタアクセス信号生成部の接続を示す図。
【図６】本実施形態の端子のピンアサインの例を示す図。
【図７】図５の初期化モード設定部の構成例を示す図。
【図８】図５のレジスタアクセス信号生成部の構成例を示す図。
【図９】図５のアドレスデコーダの例を示す図。
【図１０】本実施形態の動作の概要を示すフローチャート。
【図１１】本実施形態の動作を示すフローチャート。
【図１２】本実施形態の動作を示すタイミングチャート。
【図１３】本実施形態の動作を示すタイミングチャート。
【図１４】ＣＰＵのモードの種類とバス関連モード設定値との対応例を示す図。
【符号の説明】
【０１８３】
１  電子機器、２  ＵＳＢ機器、３  ＩＤＥ機器、１１  ＣＰＵ、１２  ＲＡＭ、
１３  コントローラ、２１  ＣＰＵインタフェース部、
２２  ＵＳＢインタフェース部、２３  ＦＩＦＯ部、２４  ＩＤＥインタフェース部、
２５  ＤＭＡ処理部、２２ａ、２３ａ、２４ａ、２５ａ、３４  レジスタ、
３１  初期化モード設定部、３２  レジスタアクセス信号生成部、
３３  アドレスデコーダ、
３１１、３１３、３１６、３２０、３２２、３２４、３２５、３２８、３２９、３２ａ〜３２ｃ、３２ｈ〜３２ｊ  ＡＮＤゲート回路、
３１２、３１４、３１５、３２１、３２３  遅延素子、
３１７〜３１９、３２６、３２７  フリップフロップ、３２ｄ〜３２ｇ  セレクタ
【図１】
2009020708.tif 000003
【図２】
2009020708.tif 000004
【図３】
2009020708.tif 000005
【図４】
2009020708.tif 000006
【図５】
2009020708.tif 000007
【図６】
2009020708.tif 000008
【図７】
2009020708.tif 000009
【図８】
2009020708.tif 000010
【図９】
2009020708.tif 000011
【図１０】
2009020708.tif 000012
【図１１】
2009020708.tif 000013
【図１２】
2009020708.tif 000014
【図１３】
2009020708.tif 000015
【図１４】
2009020708.tif 000016