(57)【要約】  バスの性能を低下させずにビット操作を行う。  情報処理装置（１０）は、命令をフェッチして実行可能なＣＰＵ（１０１，１０２）と、上記ＣＰＵによって書き換え可能なレジスタを内蔵し、上記ＣＰＵとはバスによって結合された周辺モジュール（Ｍ１，Ｍ２，Ｍ３）とを含む。上記ＣＰＵは、フェッチされたビット操作命令を実行するために、上記周辺モジュールに含まれるレジスタに対するビット単位のライト動作を指示するためのバスコマンドを発行する機能を含む。上記バスコマンドが発行されると、上記周辺モジュールは、レジスタに対するビット単位のライト動作を実行する。これにより、上記ＣＰＵは、上記バスコマンド発行後にバスをロックする必要がないので、バスの性能を低下させずにビット操作を行うことができる。
2010029682.tif 000002
【特許請求の範囲】
【請求項１】
命令をフェッチして実行可能なＣＰＵと、
上記ＣＰＵによって書き換え可能なレジスタを内蔵し、上記ＣＰＵとはバスによって結合された周辺モジュールと、を含み、
上記ＣＰＵは、フェッチされたビット操作命令を実行するために、上記周辺モジュールに含まれるレジスタに対するビット単位のライト動作を指示するためのバスコマンドを発行する機能を含んで成ることを特徴とする情報処理装置。
【請求項２】
上記周辺モジュールは、上記ＣＰＵから発行された上記バスコマンドに呼応して、上記レジスタに対するビット単位のライト動作を実行するビット操作コントローラを含む請求項１記載の情報処理装置。
【請求項３】
フェッチした命令を実行する際に、ビット単位のライト動作を指示するためのバスコマンドを発行可能なＣＰＵと、
上記ＣＰＵとはバスによって結合された周辺モジュールと、を含み、
上記周辺モジュールは、上記ＣＰＵによって書き換え可能なレジスタと、
上記バスコマンドに呼応して、上記レジスタに対するビット単位のライト動作を実行するビット操作コントローラと、を含んで成ることを特徴とする情報処理装置。
【請求項４】
上記ＣＰＵから発行されたバスコマンドは、上記バスを介して上記ビット操作コントローラに伝達される請求項３記載の情報処理装置。
【請求項５】
上記ＣＰＵから発行されたバスコマンドは、専用線を介して上記ビット操作コントローラに伝達される請求項３記載の情報処理装置。
【請求項６】
フェッチした命令を実行する際に、ビット単位のライト動作を指示するための第１バスコマンドを発行可能なＣＰＵと、
上記ＣＰＵとはバスによって結合された周辺モジュールと、
上記バスに結合され、バスステート制御を行うバスステートコントローラと、を含み、
上記バスステートコントローラは、上記周辺モジュールが上記バスコマンドをサポートするか否かの識別を可能とする第１回路と、
上記ＣＰＵからの第１バスコマンドを上記周辺モジュールがサポートする第２バスコマンドに変換可能な第２回路と、
上記第１回路での識別結果に基づいて、上記ＣＰＵから伝達された第１バスコマンドと、第２回路から出力された第２バスコマンドとを選択的に上記周辺モジュールに出力可能な第３回路と、を含んで成ることを特徴とする情報処理装置。
【請求項７】
上記第２回路は、第２回路で変換されたバスコマンドが上記第３回路を介して出力される場合には、上記周辺モジュールからデータを読み込み、読み込んだデータの一部を変更してから再び上記周辺モジュールへ書き戻すリードモディファイライトを行う請求項６記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、特にＣＰＵ（中央処理装置）に結合された周辺モジュールに含まれるレジスタのビット操作に関する。
【背景技術】
【０００２】
情報処理装置は、マイクロプロセッサ、マイクロコントローラ、信号処理プロセッサ、画像処理プロセッサ、及び音声処理プロセッサを含む。情報処理装置の一例とされるマイクロプロセッサは、半導体チップ内部でのデータ処理の一つであるビット操作処理を高速に行うために、ＣＰＵからチップ内の各周辺モジュールへのデータアクセス時間を短縮する必要がある。このようなアクセス時間の短縮には、マイクロプロセッサの動作周波数向上やチップ内の各周辺モジュールが接続されているバスの高速化、ビット操作用の新命令の追加といったことが広く行われている。【０００３】
しかしながら、マイクロプロセッサは従来から周辺レジスタやメモリ等に対して、ある単位（８ビット／１６ビット／３２ビット）でのデータ処理する構成となっており、１ビットだけ操作するビット操作を直接周辺モジュールに指示することができない。このため、ビット操作を行う時は、一度ある単位（８ビット／１６ビット／３２ビット）でデータを周辺レジスタやメモリ等からＣＰＵ内に読み込み、読み込んだデータ中の１ビットだけデータを変更し、再び周辺モジュールへ書き戻す、リードモディファイライト（以下「ＲＭＷ」と略記する）の動作が必要となる。【０００４】
ところが、このＲＭＷの動作中は、ＣＰＵがバスをロック（ビット操作処理以外を受け付けない状態に固定すること）させ、ＣＰＵ自体もＲＭＷ中は、他の命令を実行することができない。このため、ビット操作処理を短縮し、ＣＰＵが他命令を実行できるようにＲＭＷ動作が不要なビット操作方式が必要となる。【０００５】
このようなＲＭＷ動作不要なビット操作方式として、特許文献１のような方式が挙げられる。特許文献１では、ビット操作を高速化させるために、ビット操作する１ビット毎に３２ビットアドレスに割り当てる為に、メモリアドレス領域を追加して、追加したメモリアドレス領域へ通常命令（ライト命令）でデータを書き込むと、所望のビット操作が実行できる技術が開示されている。追加メモリアドレス領域へある単位（８ビット／１６ビット／３２ビット）でデータを書き込むことで、モディファイ用にデータをＣＰＵに読み込む必要を無くし、すなわち、ＣＰＵでのＲＭＷ動作が不要となり、ビット操作を高速化することができる。また、追加メモリアドレス領域へは通常命令でアクセスするため、ビット操作用の新規命令追加の必要も無い。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００５／０１７７６９１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように特許文献１では、ビット操作のために、あるビット幅（８ビット／１６ビット／３２ビット）を持つメモリアドレス領域を追加して、メモリアドレス領域に通常命令（８ビット／１６ビット／３２ビット単位でのライト命令）でデータを書き込むと、ＬＳＵ（ロードストアユニット）がライト動作をＲＭＷ動作に変換し、ビット操作を行う方式が開示されている。それによれば、ビット操作をＬＳＵが行うため、ＣＰＵは追加したメモリアドレス領域にデータを書き込むだけ良く、ＣＰＵのビット操作処理の実行時間を短縮している。【０００８】
ところが、この方式では、ビット操作を実行するのがＣＰＵからＬＳＵに移り、ＬＳＵがＲＭＷ動作を行う為、周辺モジュールにとってのビット操作自体の処理時間は短縮されない。また、複数コアを搭載するＣＰＵ等では、ＲＭＷ動作中に他コアからの命令によるデータの書き換えを防ぐ為に、ＲＭＷ動作中はバスをロックする必要がある。ＣＰＵは通常命令だけでビット操作をさせることができるため、ＬＳＵのＲＭＷ動作が完了するのを待たずに、他命令を実行することができるが、ＬＳＵがＲＭＷ動作を実行している間、バスをロックさせる必要があるため、バスの性能が落ちる虞がある。【０００９】
本発明の目的は、バスの性能を低下させずにビット操作を行うための技術を提供することにある。【００１０】
本発明の別の目的は、メモリアドレス領域を追加するのでは無く、新バスコマンド（１ビットライト動作コマンド）を追加し、外部アドレス空間に接続された周辺モジュールの制御を行うバスステートコントローラが接続モジュールの新バスコマンド対応／非対応状況を把握し、新バスコマンドと旧バスコマンドとを切り替え、ビット操作を高速化するための技術を提供することにある。【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。【００１３】
すなわち、情報処理装置は、命令をフェッチして実行可能なＣＰＵと、上記ＣＰＵによって書き換え可能なレジスタを内蔵し、上記ＣＰＵとはバスによって結合された周辺モジュールとを含む。上記ＣＰＵは、フェッチされたビット操作命令を実行するために、上記周辺モジュールに含まれるレジスタに対するビット単位のライト動作を指示するためのバスコマンドを発行する機能を含む。上記バスコマンドが発行されると、上記周辺モジュールは、レジスタに対するビット単位のライト動作を実行する。これにより上記ＣＰＵは、上記バスコマンド発行後に、バスをロックする必要がない。これによって、バスの性能を低下させずにビット操作を行うことができる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。【００１５】
すなわち、本発明によれば、バスの性能を低下させずにビット操作を行うことができる。また、新バスコマンドを追加し、バスステートコントローラが新バスコマンドと旧バスコマンドを切り替えてビット操作を行うことで、新旧バスコマンド対応モジュールが混在しても、ビット操作の高速化が可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明にかかる情報処理装置の一例とされるマイクロコンピュータにおけるバスコマンド切り替え型ビット操作の説明図である。
【図２】図２は、上記マイクロコンピュータの構成例ブロック図である。
【図３】図３は、上記マイクロコンピュータにおけるバスステートコントローラの構成例ブロック図である。
【図４】図４は、上記バスステートコントローラにおけるコマンド判定コントローラの構成例ブロック図である。
【図５】図５は、上記マイクロコンピュータにおける新バスコマンドＢＣ１に対応する機能モジュールの構成例ブロック図である。
【図６】図６は、上記マイクロコンピュータにおけるビット操作のフローチャートである。
【図７】図７は、新バスコマンドＢＣ１対応モジュールと非対応モジュールのビット操作例の説明図である。
【発明を実施するための最良の形態】
【００１７】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。【００１８】
〔１〕本発明の代表的な実施の形態に係る情報処理装置（１０）は、命令をフェッチして実行可能なＣＰＵ（１０１，１０２）と、上記ＣＰＵによって書き換え可能なレジスタを内蔵し、上記ＣＰＵとはバスによって結合された周辺モジュール（Ｍ１，Ｍ２，Ｍ３）とを含む。上記ＣＰＵは、フェッチされたビット操作命令を実行するために、上記周辺モジュールに含まれるレジスタに対するビット単位のライト動作を指示するためのバスコマンドを発行する機能を含む。【００１９】
上記ＣＰＵは、上記バスコマンドが発行されると、上記周辺モジュールでは、レジスタに対するビット単位のライト動作を実行する。このため、上記バスコマンドが発行された後は、バスをロックする必要がないので、バスの性能を低下させずにビット操作を行うことができる。【００２０】
〔２〕上記〔１〕において、上記周辺モジュールは、上記ＣＰＵから発行された上記バスコマンドに呼応して、上記レジスタに対するビット単位のライト動作を実行するビット操作コントローラを含む。【００２１】
〔３〕上記情報処理装置（１０）は、フェッチした命令を実行する際に、ビット単位のライト動作を指示するためのバスコマンドを発行可能なＣＰＵ（１０１，１０２）と、上記ＣＰＵとはバスによって結合された周辺モジュール（Ｍ１，Ｍ２，Ｍ３）とを含む。上記周辺モジュールは、上記ＣＰＵによって書き換え可能なレジスタ（５２）と、上記バスコマンドに呼応して、上記レジスタに対するビット単位のライト動作を実行するビット操作コントローラ（５１）とを含んで成る。【００２２】
〔４〕上記〔３〕において、上記ＣＰＵから発行されたバスコマンドは、上記バスを介して上記ビット操作コントローラに伝達されるように構成することができる。【００２３】
〔５〕上記〔３〕において、上記ＣＰＵから発行されたバスコマンドは、専用線を介して上記ビット操作コントローラに伝達されるように構成することができる。専用線を用いる場合には、バスを用いる場合よりも、バスコマンドを高速に伝達することができる。【００２４】
〔６〕上記情報処理装置（１０）は、フェッチした命令を実行する際に、ビット単位のライト動作を指示するためのバスコマンドを発行可能なＣＰＵ（１０１，１０２）と、上記ＣＰＵとはバスによって結合された周辺モジュール（Ｍ１，Ｍ２，Ｍ３）と、上記バスに結合され、バスステート制御を行うバスステートコントローラ（１０５）とを含む。上記バスステートコントローラは、上記周辺モジュールが上記バスコマンドをサポートするか否かの識別を可能とする第１回路（３１）と、上記ＣＰＵからの第１バスコマンドを上記周辺モジュールがサポートする形式の第２バスコマンドに変換可能な第２回路（３２）と、上記第１回路での識別結果に基づいて、上記ＣＰＵから伝達された第１バスコマンドと、第２回路から出力された第２バスコマンドとを選択的に上記周辺モジュールに出力可能な第３回路（３３）と、を含んで成る。【００２５】
上記バスステートコントローラが上記ＣＰＵからの第１バスコマンドを受けて、第１バスコマンドを出力するか、第１バスコマンドを第２バスコマンドに変換するかを判定する。これにより、上記ＣＰＵは１ビットライト動作の第１バスコマンドを出力するだけで良く、仮にバスステートコントローラが第２バスコマンドを出力しＲＭＷ動作が発生しても、そのＲＭＷ動作の完了を待つことなく、他命令を実行することができるので、バスの性能を低下させずにビット操作を行うことができる。【００２６】
〔７〕上記〔６〕において、上記第２回路は、第２回路で変換されたバスコマンドが上記第３回路を介して出力される場合には、上記周辺モジュールからデータを読み込み、読み込んだデータの一部を変更してから再び上記周辺モジュールへ書き戻すＲＭＷを行う。【００２７】
２．実施の形態の説明
次に、実施の形態について更に詳述する。【００２８】
図２には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータが示される。図２に示されるマイクロコンピュータ１０は、複数のＣＰＵ１０１，１０２、バスステートコントローラ（ＢＳＣ）１０５、複数の周辺モジュール（Ｍｏｄｕｌｅ）Ｍ１，Ｍ２，Ｍ３を含み、公知の半導体集積回路製造方法により単結晶シリコン基板などの一つの半導体基板に形成される。ＣＰＵ１０１，１０２は第１バス１０３に結合され、周辺モジュールＭ１，Ｍ２，Ｍ３は第２バス１０４に結合される。上記第１バス１０３と上記第２バス１０４とはバスステートコントローラ１０５を介して結合される。マイクロコンピュータ１０の外部には、外部メモリ２０が配置される。この外部メモリ２０には周辺モジュールＭ４が内蔵されている。上記ＣＰＵ１０１，１０２は、それぞれプログラムメモリ（図示せず）から命令をフェッチし、それを実行する。上記周辺モジュールＭ１，Ｍ２，Ｍ３，Ｍ４は、それぞれ所定の機能を有する。【００２９】
次に、上記構成のマイクロコンピュータ１０におけるバスコマンド切り替え型ビット操作について説明する。【００３０】
図１は、図２に示されるマイクロコンピュータ１０におけるバスコマンド切り替え型ビット操作を模式的に示している。【００３１】
上記構成のマイクロコンピュータ１０におけるバスコマンド切り替え型ビット操作は、ＣＰＵ１０１，１０２が新バスコマンドＢＣ１（第１バスコマンド）をバスステートコントローラ１０５に出力し、バスステートコントローラ１０５が周辺モジュール毎に新バスコマンド対応／非対応を判断し新バスコマンドと旧バスコマンド（第２バスコマンド）を切り替えてビット操作するものである。この操作方式により、バスに接続される周辺モジュールに、新バスコマンド対応モジュールと新バスコマンド非対応モジュールが混在しても、ビット操作を実行することができる。説明の便宜上、周辺モジュールＭ１，Ｍ２は、新バスコマンドＢＣ１と旧バスコマンドＢＣ２との双方に対応し、周辺モジュールＭ３，Ｍ４は旧バスコマンドＢＣ２にのみ対応するものとする。新バスコマンド（ＢＣ１）対応モジュールＭ１，Ｍ２に対しては、以下に述べるようにビット操作の高速化ができ、新バスコマンド非対応モジュールに対しては、バスステートコントローラ１０５が、新バスコマンドＢＣ１を旧バスコマンドＢＣ２に変換し、従来ＣＰＵが行っていたＲＭＷ動作を実行する。すなわち、ＣＰＵ１０１，１０２は、新バスコマンドＢＣ１をバスステートコントローラ１０５に対して発行するだけでビット操作を実行することができ、新バスコマンドＢＣ１出力後すぐに他命令を実行することが可能となる。また、新バスコマンド対応モジュールＭ１，Ｍ２は、ＲＭＷ動作ではなく、１ビットライト動作ができるので、ビット操作自体の高速化が実現できる。【００３２】
ここで、上記バスコマンドは、ＣＰＵ１０１，１０２がフェッチした命令を実行するために、ＣＰＵ内の命令解釈モジュール（デコーダ）が、周辺モジュールに対して発行する、あるビット単位（例えば８ビットや１０ビット等）の命令である。例えば、ＣＰＵ１０１あるいは１０２は、ビット操作命令が格納されているプログラムメモリ（図示せず）から命令を読み取り、当該ＣＰＵ内のデコーダで命令を解釈する。このデコーダは、命令解釈後、ビット操作命令を実行する為に必要な周辺モジュールの動作を、周辺モジュールに指示する命令である、リードやライト等のバスコマンドを出力する。バスコマンドは、ＣＰＵ１０１又は１０２から専用線、あるいは、バス１０３及び１０４を介して周辺モジュールに入力される。専用線を用いる場合には、バス１０３や１０４を用いる場合よりも高速にバスコマンドを伝達することができる。【００３３】
本提案の新バスコマンドＢＣ１（第１バスコマンド）は旧バスコマンドＢＣ２（第２バスコマンド）の拡張である。旧バスコマンドＢＣ２には、前述の通り、リードやライト等がある。ところが、旧バスコマンドＢＣ２は、バイトやワード単位でのリードやライト等を指示するコマンドであり、１ビット単位のライトを指示するコマンドでは無い。これに対して、新バスコマンドＢＣ１は１ビット単位のライト動作を指示するコマンドである。【００３４】
ビット操作対象のビット位置と、ビット操作情報を埋め込む方法は２通りある。１つ目は、データの空き領域に埋め込む方法である。この方法では、データへのアクセス単位はバイト、ワード単位であり、ライト単位は１ビット単位である。例えば、新バスコマンドは、データにバイト単位でアクセスし、バイトデータ中の、ある１ビットのみ操作する動作をさせるコマンドである。この時のビット操作のビット位置と、ビット操作情報はデータの上位空きビットに埋め込んでおく。【００３５】
２つ目は、バスコマンドにビット位置情報と、ビット操作情報を追加する方法である。１つ目の方法は、ビット位置情報とビット操作情報をデータの上位空きビットに埋め込むため、データアクセス単位は、バイト単位かワード単位に縛られる。ところが、２つ目の方法は、バスコマンドに操作ビット位置情報と、ビット操作情報を追加するので、データアクセス単位は、バイト、ワード以外にも設定可能である。【００３６】
本実施形態におけるバスコマンド切り替え型ビット操作では、ビット操作高速化の実現のために、バスステートコントローラ１０５がＣＰＵから受けた新バスコマンドＢＣ１をそのまま出力し、１ビットライト動作を実行する、若しくは、新バスコマンドＢＣ１を旧バスコマンドＢＣ２に変換して出力し、ＲＭＷ動作を実行する。ここで、バスステートコントローラ１０５の構成、及び動作について図３を用いて説明する。【００３７】
図３には、上記バスステートコントローラ１０５の構成例が示される。【００３８】
図３に示されるように、上記バスステートコントローラ１０５は、内部に次の４つの周辺モジュールを持つ。すなわち、コマンド判定コントローラ（ＣＪＣ）３１、ＲＭＷモジュール（ＲＭＷ＿Ｍｏｄ）３２、バスコマンドセレクタ（ＢＣ＿ＳＥＬ）３３、及びデータセレクタ（Ｄ＿ＳＥＬ）３４、である。【００３９】
コマンド判定コントローラ３１は、ＣＰＵ１０１，１０２から受けた新バスコマンドを、バスに接続された、新バスコマンド対応モジュールと新バスコマンド非対応モジュール毎に、新バスコマンド対応／非対応を判定し、新バスコマンドをそのまま出力するか、新バスコマンドを旧バスコマンドに変換して出力するかを判定する機能を有する。【００４０】
ＲＭＷモジュール３２は、コマンド判定コントローラ３１が旧バスコマンドを出力する判定をした時に、旧バスコマンドＢＣ２の出力と、ＲＭＷ動作を実行する。【００４１】
バスコマンドセレクタ３３は、コマンド判定コントローラ３１から出力された新バスコマンドＢＣ１と、ＲＭＷモジュール３２から出力された旧バスコマンドＢＣ２を、ＲＭＷモジュール３２から出力されたＢＣ２＿ＳＥＬ（旧バスコマンド選択信号）の信号で選択する。【００４２】
データセレクタ３４は、ＣＰＵ１０１，１０２からのデータ（ＤＡＴＡ）をそのまま出力するか、ＲＭＷモジュール３２からのＤＡＴＡ＿ＲＭＷを出力するかをＲＭＷモジュール３２から出力されたＢＣ２＿ＳＥＬで選択する。【００４３】
コマンド判定コントローラ３１は、ＣＰＵ１０１，１０２から新バスコマンドＢＣ１とアドレスＡＤＲを受け、ＢＣ１はそのまま出力し、コマンド判定コントローラ３１内部の周辺モジュール毎の新バスコマンド対応／非対応情報を持つレジスタ群Ｉ＿Ｒｅｇの情報を基に、操作対象モジュールが新バスコマンド非対応モジュールの場合は旧バスコマンドＢＣ２のアクセス単位情報Ｂ／Ｗと旧バスコマンドイネーブル信号ＢＣ２＿ＥＮとをＲＭＷモジュール３２に出力する。【００４４】
ＲＭＷモジュール３２は、ＣＰＵ１０１，１０２からアドレス（ＡＤＲ）とデータ（ＤＡＴＡ）、コマンド判定コントローラ３１から旧バスコマンドイネーブル信号ＢＣ２＿ＥＮとアクセス単位情報Ｂ／Ｗを受け、旧バスコマンドＢＣ２と旧バスコマンド選択信号ＢＣ２＿ＳＥＬを出力し、ＲＭＷ動作を行う。特に制限されないが、このＲＭＷモジュール３２は、ＢＣ２出力制御部Ｂ＿ＣＮＴと、３つのデータ保持用レジスタＲｅｇ＿Ａ，Ｒｅｇ＿ＢＣ，Ｒｅｇ＿Ｄを持つ。ＢＣ２出力制御部Ｂ＿ＣＮＴは、コマンド判定コントローラ３１から旧バスコマンドイネーブル信号ＢＣ２＿ＥＮとアクセス単位情報Ｂ／Ｗを受け、旧バスコマンドＢＣ２をバスコマンドセレクタ３３に、旧バスコマンド選択信号ＢＣ２＿ＳＥＬをバスコマンドセレクタ３３とデータセレクタ３４に出力するためのものである。３つのデータ保持用レジスタＲｅｇ＿Ａ，Ｒｅｇ＿ＢＣ，Ｒｅｇ＿Ｄは、ＲＭＷ動作中の、バスコマンド／アドレスの変更、及びＣＰＵ１０１，１０２からのデータ（ＤＡＴＡ）によるデータ変更を防止するためのものである。すなわち、アドレス保持用のレジスタＲｅｇ＿Ａは、ＣＰＵ１０１，１０２から受けたアドレス（ＡＤＲ）をＲＭＷ動作中保持しておくためのものである。レジスタ群Ｒｅｇ＿ＢＣは、旧バスコマンドイネーブル信号ＢＣ２＿ＥＮやアクセス単位情報Ｂ／Ｗを保持するのに使用される。すなわち、コマンド判定コントローラ３１から受けた旧バスコマンドイネーブル信号ＢＣ２＿ＥＮとアクセス単位情報Ｂ／ＷをＲＭＷ動作中保持しておくことができる。データ保持用のレジスタＲｅｇ＿Ｄは、ＲＭＷ動作時に使用される。これは、ＣＰＵから受けたＤＡＴＡを接続モジュールに書き込む時に、一度ある単位（８ビット／１６ビット／３２ビット）でデータを読み込み、変更を加える時に使用するためと、ＲＭＷ動作中にＣＰＵ１０１，１０２からの新たなデータ（ＤＡＴＡ）入力を防止するためのものである。【００４５】
図４には、図３におけるコマンド判定コントローラ３１の構成例が示される。先述のとおり、コマンド判定コントローラ３１はＣＰＵ１０１，１０２から新バスコマンドＢＣ１とアドレス（ＡＤＲ）を受け、新バスコマンドＢＣ１はそのまま出力し、Ｉ＿Ｒｅｇの情報を基に、アクセス単位情報Ｂ／Ｗ、及び旧バスコマンドイネーブル信号ＢＣ２＿ＥＮを出力するかを判定する。新バスコマンドＢＣ１はコマンド判定コントローラ３１を素通りするパスとＢＣ２制御部ＢＣ２＿ＣＴＬに入力されるパスとに分かれる。アドレス（ＡＤＲ）はデコーダＤＥＣに入力され、デコーダＤＥＣの出力信号ＡＤＲ＿ＤＥＣがレジスタ群Ｉ＿Ｒｅｇ（図中のＲ＿Ｍ１，Ｒ＿Ｍ２，Ｒ＿Ｍ３，Ｒ＿Ｍ４）に入力される。デコーダＤＥＣはアドレス（ＡＤＲ）の例えばある２ビットの情報から、どの接続モジュールにアクセスするかを認識し、その情報をレジスタ群Ｉ＿Ｒｅｇに出力する。このレジスタ群Ｉ＿Ｒｅｇは、接続モジュールが新バスコマンド対応／非対応情報を持つ。【００４６】
ここで、例えば周辺モジュールＭ３が新バスコマンドに非対応の場合（図中Ｒ＿Ｍ３：０（１が新バスコマンド対応、０が新バスコマンド非対応を意味する））について説明する。【００４７】
アドレスＡＤＲで周辺モジュールＭ３が選択され、デコーダＤＥＣの出力信号ＡＤＲ＿ＤＥＣがレジスタ群Ｉ＿Ｒｅｇに入力されると、新バスコマンド対応／非対応の判定が行われる。レジスタＲ＿Ｍ３には、新バスコマンド非対応（０のデータが保持されている）の情報が書かれているので、ＢＣ２＿ＣＴＬ＿ＥＮ（旧バスコマンド制御部イネーブル信号）がイネーブル状態にされる。ＢＣ２制御部ＢＣ２＿ＣＴＬは、ＢＣ２＿ＣＴＬ＿ＥＮがイネーブル状態にされているので、旧バスコマンドイネーブル信号ＢＣ２＿ＥＮとアクセス単位情報Ｂ／Ｗを出力する。【００４８】
図５には、新バスコマンドＢＣ１に対応する機能モジュールＭ１の構成例が示される。【００４９】
図５に示されるように、機能モジュールＭ１は、機能モジュールの機能設定用のレジスタ５２と、このレジスタ５２のビット操作を行うためのビット操作コントローラ５１とを含む。尚、特に制限されないが、機能モジュールＭ１は、旧バスコマンドＢＣ２にも対応するため、旧バスコマンド対応のビット操作コントローラ（図示せず）が設けられている。内部のビット操作コントローラ５１が、バスステートコントローラ１０５からの新バスコマンドＢＣ１を受けて、１ビットだけ操作する動作を行なう。図５では、例として、３２ビットレジスタの第２ビットを操作する例を示している。前述の通り、機能モジュールＭ１は、バスステートコントローラ１０５から新バスコマンドＢＣ１を受けて、３２ビットレジスタ中の１ビット、第２ビット（ハッチングで示されるビット）を操作する。この操作により、３２ビットレジスタ中の１ビットの書き換えが行われる。【００５０】
図６には、上記ビット操作のフローチャートが示される。【００５１】
まず、新バスコマンドＢＣ１がバスステートコントローラ１０５に入力される（Ｓ１：Ｂｕｓ  Ｃｏｍｍａｎｄ  ＢＣ１  Ｉｎｐｕｔ）。バスステートコントローラ１０５で新バスコマンドに対応するか否かを判定し（Ｓ２：Ｃｏｍｍａｎｄ  Ｓｅｌｅｃｔ）、新バスコマンドＢＣ１に対応している場合（Ｗｒｉｔｅ）は、新バスコマンドＢＣ１を出力し（Ｓ３：Ｂｕｓ  Ｃｏｍｍａｎｄ  ＢＣ１  Ｏｕｔｐｕｔ）、新バスコマンドＢＣ１に対応していない場合（Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）は、新バスコマンドＢＣ１を旧バスコマンドＢＣ２に変換する。【００５２】
新バスコマンドＢＣ１を出力する場合、接続モジュールの１ビットを書込み、ビット操作の終了判定に移る。【００５３】
新バスコマンドＢＣ１を旧バスコマンドＢＣ２に変換する場合、レジスタをアクセス単位情報Ｂ／Ｗ単位でリードし（Ｓ６：Ｒｅｇｉｓｔｅｒ  Ｒｅａｄ  Ｂ／Ｗ）、その中の１ビットを変更し（Ｓ７：１  Ｂｉｔ  Ｍｏｄｉｆｙ）、アクセス単位情報Ｂ／Ｗ単位でレジスタに書き込まれ（Ｓ８：Ｒｅｇｉｓｔｅｒ  Ｗｒｉｔｅ  Ｂ／Ｗ）、ビット操作の終了判定（Ｓ５：Ｂｉｔ  Ｏｐｅｒａｔｉｏｎ  Ｓｅｌｅｃｔ）に移る。【００５４】
ビット操作の終了判定では、ビット操作を終了しない場合は、新バスコマンドＢＣ１がバスステートコントローラ１０５に入力される処理（Ｓ１）に戻され、ビット操作を終了する場合には、本フローチャートによる処理が終了される（Ｅｎｄ）。【００５５】
図７には、新バスコマンドＢＣ１対応モジュールと非対応モジュールのビット操作例が示される。【００５６】
新バスコマンドＢＣ１対応モジュールの場合、図７（Ａ）に示されるように、新バスコマンドＢＣ１対応モジュール内で、該当する１ビットのみが書き換えられるのに対して、新バスコマンドＢＣ１非対応モジュールでは、図７（Ｂ）に示されるように、バスステートコントローラ（ＢＳＣ）１０５が介在され、この、バスステートコントローラ（ＢＳＣ）１０５において、ＲＭＷによる１ビット書き換えが行われる。【００５７】
上記の例によれば、以下の作用効果を得ることができる。【００５８】
（１）バスステートコントローラ１０５がＣＰＵからの新バスコマンドを受けて、新バスコマンドを出力するか、新バスコマンドを旧バスコマンドに変換するかを判定し、旧バスコマンドを出力する時には、従来ＣＰＵが実行していたＲＭＷをバスステートコントローラ１０５が実行する動作を行う。これにより、ＣＰＵ１０１，１０２は１ビットライト動作の新バスコマンドを出力するだけで良く、仮にバスステートコントローラ１０５が旧バスコマンドを出力しＲＭＷ動作が発生しても、ＲＭＷ動作の完了を待つことなく、他命令を実行することができる。【００５９】
（２）上記（１）の作用効果により、マイクロコンピュータ１０での処理の効率向上を図ることができる。【００６０】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。【００６１】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではない。
【産業上の利用可能性】
【００６２】
本発明は、マイクロコントローラ、信号処理プロセッサ、画像処理プロセッサ、及び音声処理プロセッサなどに適用することができる。
【符号の説明】
【００６３】
１０  マイクロコンピュータ
２０  外部メモリ
３１  コマンド判定コントローラ
３２  ＲＭＷモジュール
３３  バスコマンドセレクタ
３４  データセレクタ
５１  ビット操作コントローラ
５２  レジスタ
１０１，１０２  ＣＰＵ
１０５  バスステートコントローラ
１０３  第１バス
１０４  第２バス
Ｍ１，Ｍ２，Ｍ３，Ｍ４  周辺モジュール
【図１】
2010029682.tif 000003
【図２】
2010029682.tif 000004
【図３】
2010029682.tif 000005
【図４】
2010029682.tif 000006
【図５】
2010029682.tif 000007
【図６】
2010029682.tif 000008
【図７】
2010029682.tif 000009
【国際調査報告】
2010029682.tif 000010
2010029682.tif 000011
2010029682.tif 000012
2010029682.tif 000013