(57)【要約】【課題】パイプラインアーキテクチャを採用する情報処理装置において回路規模の増大なしに動作周波数を上げ、少ないクロック数の条件分岐を実現すること。【解決手段】  パイプライン制御を行う情報処理装置１は、非分岐先命令をフェッチする第１のフェッチキュー２２と、分岐先命令をフェッチする第２のフェッチキュー２４と、フェッチアドレスを演算し、第１のフェッチキューまたは第２のフェッチキューにフェッチし、第１のフェッチキューまたは第２のフェッチキューの命令をデコード回路に出力するフェッチ回路２０と、第１のフェッチキューまたは第２のフェッチキューにフェッチされた命令コードを受け取りデコードを行うデコード回路６０と、デコード結果に基づき命令の実行を行う実行回路７０とを含み、前記フェッチ回路２０は、比較命令の実行結果に基づき第１のフェッチキュー２２又は第２のフェッチキュー２４のいずれの命令をデコード回路６０に渡すかを選択する選択回路４０を含む。【選択図】      図１
2006003954.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン制御を行う情報処理装置であって、
非分岐先命令をフェッチする第１のフェッチキューと、
分岐先命令をフェッチする第２のフェッチキューと、
命令コードをフェッチするためのフェッチアドレスを演算し、第１のフェッチキューまたは第２のフェッチキューにフェッチし、第１のフェッチキューまたは第２のフェッチキューの命令をデコード回路に出力するフェッチ回路と、
第１のフェッチキューまたは第２のフェッチキューにフェッチされた命令コードを受け取りデコードを行うデコード回路と、
デコード結果に基づき命令の実行を行う実行回路とを含み、
前記フェッチ回路は、
比較命令の実行結果に基づき第１のフェッチキュー又は第２のフェッチキューのいずれの命令をデコード回路に渡すかを選択する選択回路を含むことを特徴する情報処理装置。
【請求項２】
請求項１において、
前記デコード回路は、
デコード対象命令が分岐命令であるか否か判断し、分岐命令である場合には、分岐命令の分岐先アドレスをフェッチ回路に向け出力し、
前記フェッチ回路は、
デコード対象命令が分岐命令である場合には、受け取った分岐先アドレスに基づき分岐先の命令を第２のフェッチキューにフェッチし、
デコード対象命令が分岐命令でない場合には、非分岐先アドレスを演算し、当該非分岐先アドレスに基づき非分岐先の命令を第１のフェッチキューにフェッチすることを特徴する情報処理装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記デコード回路は、
命令のデコードが終了する前に、分岐命令の分岐先アドレスをフェッチ回路に向け出力することを特徴する情報処理装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記フェッチ回路は、
連続したアドレスから２命令以上同時に命令フェッチを行うことを特徴する情報処理装置
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置を含むことを特徴とするマイクロコンピュータ。
【請求項６】
請求項１乃至４のいずれかに記載の情報処理装置と、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
パイプライン型のＣＰＵにおいて性能を上げるには、動作周波数を上げながら条件分岐を行う場合の必要クロック数を削減することがとても重要となる。
【０００３】
ところがパイプラインアーキテクチャでは、分岐命令やループ命令が発生すると、分岐先の命令について再びフェッチからやり直さなければならない。このため、「フェッチ」「デコード」「実行」「アクセス」「書き込み」という通常の５段階パイプラインのＣＰＵでは高速な分岐をするため、デコードフェーズで分岐命令のデコードと分岐先アドレスを計算する専用の加算機をもっている。このようにするとデコード終了時には分岐先アドレスが計算できているので、次は分岐先からフェッチできる。
【特許文献１】特開平５−２７９７１号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし条件分岐の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次（非分岐先）の命令をフェッチするかが決定されるため、これを１クロックで行う場合には１クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
【０００５】
かかるクリティカルパスがあると動作周波数の上限が低くなり、それ以上動作周波数を上げることができないという問題点があった。
【０００６】
本発明は以上のような問題点に鑑みてなされたものであり、パイプラインアーキテクチャを採用する情報処理装置において回路規模の増大を招くことなく動作周波数を上げ、少ないクロック数の条件分岐を実現する情報処理装置、マイクロコンピュータ及び電子機器の提供を目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は、
パイプライン制御を行う情報処理装置であって、
非分岐先命令をフェッチする第１のフェッチキューと、
分岐先命令をフェッチする第２のフェッチキューと、
命令コードをフェッチするためのフェッチアドレスを演算し、第１のフェッチキューまたは第２のフェッチキューにフェッチし、第１のフェッチキューまたは第２のフェッチキューの命令をデコード回路に出力するフェッチ回路と、
第１のフェッチキューまたは第２のフェッチキューにフェッチされた命令コードを受け取りデコードを行うデコード回路と、
デコード結果に基づき命令の実行を行う実行回路とを含み、
前記フェッチ回路は、
比較命令の実行結果に基づき第１のフェッチキュー又は第２のフェッチキューのいずれの命令をデコード回路に渡すかを選択する選択回路を含むことを特徴する。
【０００８】
比較命令とは、条件分岐命令に先行して配置され後続の条件分岐命令の分岐条件を判定するための比較命令である。
【０００９】
なお比較命令の実行結果と、パイプライン制御で比較命令の実行と平行してデコードされているデコード対象命令が条件分岐であることを示す情報とに基づき
第１のフェッチキュー又は第２のフェッチキューのいずれの命令をデコード回路に渡すかを選択するようにしてもよい。
【００１０】
第１のフェッチキューには、非分岐時のアドレスを順次プリフェッチし、第２のフェッチキューには、（条件分岐命令がデコードされて又はデコード途中で）分岐先のアドレスがわかり次第プリフェッチするようにしてもよい。
【００１１】
なお非分岐先命令をフェッチする第１のフェッチキューへのフェッチと分岐先命令をフェッチする第２のフェッチキューへのフェッチを同一クロック内で両方行える構成（メモリもデュアルポート対応となる）でもよいし、同一クロック内ではいずれか一方の命令のフェッチのみ行える構成でもよい。
【００１２】
本発明によれば非分岐命令の場合には次の命令を第１のフェッチキューにプリフェッチし、条件分岐命令がきたら分岐／非分岐に関わらず分岐先の命令をフェッチし、選択回路が比較命令の実行結果に基づき、非分岐先（第１のフェッチキュー）又は分岐先（第２のフェッチキュー）のいずれかの命令を選択してデコード回路に渡すことができる。
【００１３】
ここにおいて比較命令の実行結果を待って非分岐先／分岐先のいずれをフェッチするか選択する構成の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次（非分岐先）の命令をフェッチするかが決定されるため、これを１クロックで行う場合には１クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
【００１４】
しかし本発明によればフェッチ前に比較命令の実行結果を参照することなく、非分岐先／分岐先の両方の命令をフェッチして、デコード回路に渡す際に比較命令の実行結果に基づきいずれかの命令を選択する構成なので、１クロック内で行うべき処理に要する時間を短く構成することができるため、動作周波数を上げることができる。
【００１５】
またフェッチキューと選択回路の追加で対応できるため分岐予測回路を設ける場合のように回路規模の増大を招くことがない。
【００１６】
このように本発明によれば回路規模の増大を招くことなく動作周波数を上げながら少ないクロック数の条件分岐を実現することができる。
【００１７】
（２）本発明の情報処理装置は、
前記デコード回路は、
デコード対象命令が分岐命令であるか否か判断し、分岐命令である場合には、分岐命令の分岐先アドレスをフェッチ回路に向け出力し、
前記フェッチ回路は、
デコード対象命令が分岐命令である場合には、受け取った分岐先アドレスに基づき分岐先の命令を第２のフェッチキューにフェッチし、
デコード対象命令が分岐命令でない場合には、非分岐先アドレスを演算し、当該非分岐先アドレスに基づき非分岐先の命令を第１のフェッチキューにフェッチ
することを特徴する。
【００１８】
非分岐先アドレスは、例えばプログラムカウンタを命令長又は読み出し単位のビット幅でインクリメントすることにより求める事ができる。
【００１９】
フェッチ回路はデコード対象命令が分岐命令であるか否かについては、例えば分岐先アドレスをうけとったか否かに基づき判断するようにしても良いし、デコード回路からデコード対象命令が分岐命令であるか否かについての情報（分岐命令発生情報）を受け取って当該情報に基づき判断するようにしてもよい。
【００２０】
例えばデコード対象命令が分岐命令である場合には次のクロックで分岐先をフェッチし、デコード対象命令が分岐命令でない場合には次のクロックで非分岐先をフェッチするように構成することができる。
【００２１】
このようにすると１クロックで分岐命令又は非分岐命令のいずれか一方のみをアクセスする構成の場合でも、比較命令の実行終了後のクロックで分岐先／非分岐先の両方がフェッチされた状態にできるので、ここで比較命令の実行結果に基づき選択回路が分岐先／非分岐先のいずれかを選択してデコード回路に渡すことができる。
【００２２】
（３）本発明の情報処理装置は、
前記デコード回路は、
命令のデコードが終了する前に、分岐命令の分岐先アドレスをフェッチ回路に向け出力することを特徴する。
【００２３】
本発明によれば、より早く分岐先のフェッチを行うことができるため、１クロック内で行うべき処理の処理時間を短くすることができる。
【００２４】
（４）本発明の情報処理装置は、
前記フェッチ回路は、
連続したアドレスから２命令以上同時に命令フェッチを行うことを特徴する。
【００２５】
例えば１６ビット命令について、３６ビット幅でアクセスする場合には、連続した２命令を同時にアクセスすることができる。
【００２６】
（５）本発明は、
上記のいずれかに記載の情報処理装置を含むことを特徴とするマイクロコンピュータである。
【００２７】
（６）本発明は、
上記のいずれかに記載の情報処理装置と、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【００２８】
本発明によれば、ローコストで高速実行可能な情報処理装置を内蔵しているため、安価で高機能な電子機器を提供することが出来る。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００３０】
１．情報処理装置
図１は、本実施の形態の情報処理装置の構成について説明するための機能ブロック図である。
【００３１】
本実施の形態の情報処理装置１は、パイプライン制御を行う情報処理装置（例えばマイクロコンピュータ）であって、ＣＰＵ（広義には、処理回路）１０と、ＢＣＵ（バスコントロールユニット）１００とメモリ１１０（ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）とを含む。
【００３２】
なお情報処理装置１は、これ以外にもＭＭＵ（Memory Management Unit）、ＤＭＡＣ（Direct Access Memory Controller）、ＬＣＤ（Liquid Crystal Display）ドライバ或いはＳＩＯ（Serial Input Output）等の各種周辺回路を含むことができる。
【００３３】
ＣＰＵ１０は、ＲＯＭやＲＡＭに記憶されたプログラムに従って、命令のフェッチ、命令のデコード、演算処理、レジスタへの書き込み等をパイプライン制御で行う。ＣＰＵ１０は３２ビット幅のデータを扱うが１６ビットの命令コードを処理するよう構成されている。
【００３４】
ＢＣＵ（バスコントロールユニット）１００は、図示しない３２ビットの命令データバスや、命令データアクセスのための命令アドレスバスや、３２ビットのデータバスや、データアクセスのためのデータアドレスバスや、コントロール信号のためのコントロールバス等の各種バスのバスコントロール処理を行う。
【００３５】
そしてこのＣＰＵ１０は、前記バスを介してメモリ１１０から実行すべき命令をよみだす。
【００３６】
またＣＰＵ１０は、フェッチ回路２０、デコード回路６０、実行回路７０等を含んで構成される。
【００３７】
フェッチ回路２０は、非分岐先命令をフェッチする第１のフェッチキュー２２−１、２２−２と、分岐先命令をフェッチする第２のフェッチキュー２４と、フェッチアドレス演算回路３０と選択回路４０とを含む。
【００３８】
フェッチアドレス演算回路３０は、命令コードをフェッチするためのフェッチアドレスを演算しＢＣＵに対して出力するもので、非分岐アドレス演算回路３２，分岐先アドレス保持レジスタ３４，セレクタ３６、読み出しアドレス出力回路３８等を含む。
【００３９】
非分岐アドレス演算回路３２は図示しないフェッチ用プログラムカウンタに保持されている値を命令長（又は命令長の整数倍、例えば命令長が１６ビットだがバス幅３２ビット単位で読み出す場合には３２ビット）でインクリメントして得られた値を非分岐アドレスとして演算する。
【００４０】
分岐先アドレス保持レジスタ３４は、デコード回路６０から分岐先アドレスを受け取ると分岐先アドレス保持レジスタ３４に保持する。
【００４１】
セレクタは３６は、デコード回路６０から分岐命令発生情報６４を受け取った場合には、分岐先アドレス保持レジスタの値を選択して読み出しアドレス出力回路３８に出力し、それ以外の場合には非分岐アドレス演算回路３２が演算した非分岐アドレスの値を選択して読み出しアドレス出力回路３８に出力する。
【００４２】
読み出しアドレス出力回路３８は、セレクタ３６で選択されたアドレスをメモリ１１０からの読み出しアドレスとしてＢＣＵ１００に出力する。
【００４３】
ここにおいてフェッチアドレス演算回路３０は、条件分岐命令の分岐条件を決定するＣＯＭＰ命令の実行終了を待たずに、当該分岐先アドレスを読み出しアドレスとしてＢＣＵ１００に出力するようにしてもよい。
【００４４】
選択回路４０は、比較命令の実行結果（条件分岐命令であるというデコード結果６６、比較命令の比較結果に基づき設定されたフラグ７６）に基づき第１のフェッチキュー２２−１、２２−２又は第２のフェッチキュー２４のいずれかの命令を選択してデコード回路６０に出力する。出力された命令はフィリップフロップ（ＦＦ）回路４２を介してデコード回路６０に入力される。
【００４５】
このように本実施の形態では命令コードをフィリップフロップ（ＦＦ）回路４２に取り込む直前にＭＵＸ（選択回路４０）を置き、比較命令の実行結果得られたフラグ７６に基づき分岐先の命令コード（第２のフェッチキューにフェッチされている命令コード）又は非分岐先の命令コード（第２のフェッチキューにプリフェッチされている命令コード）を選択する構成を有する。
【００４６】
デコード回路６０は選択回路４０によって選択された命令コードを受け取りデコードする処理をおこなう回路であり所定のレジスタ等にデコード結果６６を出力する。またデコードの途中で、分岐命令であることを識別した場合には分岐先アドレス６２をフェッチ回路２０の分岐先アドレス保持レジスタ３４に出力する。
【００４７】
実行回路７０は、データやアドレスの演算を行う演算回路（ＡＬＵ）７２と、レジスタファイル７８等を含み、前記デコード回路６０がデコードした命令のオペレーション内容に基づき該命令の実行をおこない、実行結果７４や各種フラグ７６の設定を行う。
【００４８】
レジスタファイル７８は、汎用レジスタＲ０〜Ｒ１５の１６本の汎用レジスタ、プログラムカウンタ（ＰＣ）、プロセッサーステータスレジスタ（ＰＳＲ）、スタックポインタ（ＳＰ）、算術ローレジスタ（ＡＬＲ）、算術ハイレジスタ（ＡＨＲ）等のＣＰＵで使用するレジスタで構成することができる。
【００４９】
本実施の形態によれば非分岐先命令をフェッチする第１のフェッチキューと、分岐先命令をフェッチする第２のフェッチキューと、比較命令の実行結果に基づき第１のフェッチキュー又は第２のフェッチキューのいずれの命令をデコーダに渡すかを選択する選択回路４０を含む。従って、非分岐命令の場合には次の命令を第１のフェッチキューにプリフェッチし、条件分岐命令がきたら分岐／非分岐に関わらず非分岐先の命令をフェッチし、選択回路４０が比較命令の実行結果に基づき、非分岐先（第１のフェッチキュー）又は非分岐先（第２のフェッチキュー）のいずれかの命令を選択してデコード回路６０に渡すことができる。
【００５０】
なおフェッチ回路２０は、連続したアドレスから２命令以上同時に命令フェッチを行うようにしてもよい。すなわち例えば１６ビット長命令に対して、３２ビット幅のデータ長でアクセスする場合には、１回のアクセスで連続する２命令を読み出すことが可能である。従って連続する２命令をそれぞれ第１のフェッチキュー２２−１、第２のフェッチキュー２２−２に格納するようにしてもよい。
【００５１】
図２は条件分岐が発生する場合の課題について説明するための図である。
【００５２】
３１０に示すような命令コードで条件分岐３１２で分岐先３１２に分岐する場合、条件分岐「jpeg L1」３１２命令の次の命令の「add」３１３は無駄なフェッチとなりnop化（３５０参照）されるが、その次からは分岐先「sub」３１４がフェッチでき、１命令（１クロック）のオーバーヘッドで分岐ができる。
【００５３】
ここで比較例（又は従来の一般的な構成）ではcmp命令実行時にeqかどうかのフラグを計算するのでそのフラグ情報をみた上で、分岐であれば分岐先のフェッチを開始することになる。
【００５４】
このように比較例では件分岐の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次（非分岐先）の命令をフェッチするかが決定されるため、これを１クロックで行う場合には１クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
【００５５】
図３は、本実施の形態と比較例の具体的な動作比較を示した図である。
【００５６】
ここでは図２の命令リストに対応した本実施の形態と比較例の動作について、各クロック毎に対比して説明する。
【００５７】
まず１番目のクロックで、比較例では「cmp」のフェッチを行い、本実施の形態では「cmp」と「jpeg」の連続した２命令のフェッチを行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
【００５８】
次の（２番目の）クロックで、比較例では「cmp」の次の「jpeg」のフェッチを行う同時に「cmp」のデコードを行う。本実施の形態では「cmp」のデコードを行う（「cmp」の次の命令の「jpeg」については、前のクロックで既にフェッチ済みである）。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
【００５９】
次の（３番目の）クロックで、比較例では「jpeg」の次の「add」フェッチ、「jpeg」のデコード、「cmp」の実行を行い、「cmp」の実行結果に基づき分岐非分機の判断を行い（３７０参照）、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する（３８０参照）。このように比較例では「cmp」の実行結果に基づき分岐非分機の判断する動作（３７０参照）や、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する動作（３８０参照）を１クロック内に行う必要があるため、処理時間が長くなる（クリティカルパスとなる）（図４参照）。
【００６０】
これに対し本実施の形態では「add」と「and」の連続した２命令のフェッチ、「jpeg」のデコード、「cmp」の実行を行う。
【００６１】
次の（４番目の）クロックで、比較例では分岐の場合には分岐先の「sub」フェッチ、「add」のデコード、「jpeg」の実行を行い、非分岐の場合には「add」の次の「and」のフェッチ、「add」のデコード、「jpeg」の実行を行う。これに対し本実施の形態では分岐先の「sub」のフェッチ、「add」のデコード、「jpeg」の実行を行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
【００６２】
そして次の（５番目の）クロックで、比較例では分岐の場合には分岐先の「sub」の次の「or」のフェッチ、「sub」のデコード、「add」の実行のキャンセルを行い、非分岐の場合「and」の次命令のフェッチ、「and」のデコード、「add」の実行を行う。これに対し本実施の形態では分岐の場合には既にフェッチ済みの「sub」のデコード、「add」の実行をキャンセル行い、非分岐の場合には「and」の次命令のフェッチ、「and」のデコード、「add」の実行を行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
【００６３】
以上からわかるように３番目のクロックでは、比較例は「cmp」の実行結果に基づき分岐非分機の判断する動作（３７０参照）や、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する動作（３８０参照）を１クロック内に行う必要があるためクリティカルパスを形成し、動作周波数の上げる最のネックとなる。
【００６４】
図４は３クロック目の比較例の処理時間（クリティカルパス）を示した図である。
【００６５】
４１０はcmp命令が実行されて結果がフラグレジスタに格納されるステップで、約８ｎS（ナノセック）かかる。
【００６６】
４２０はフラグレジスタの内容に基づき、次の命令をフェッチするのか分岐先の命令をフェッチするのか判断し制御信号を生成するステップで、約１ｎS（ナノセック）かかる。
【００６７】
４３０は制御信号に基づき、フェッチアドレスとして次の命令のアドレス又は分岐先の命令のアドレスのいずれかを選択するステップで、約１ｎS（ナノセック）かかる。
【００６８】
４４０はフェッチアドレスがメモリ（ＲＡＭ等）に到達するまでのステップで、途中バスの遅延やキャッシュ、ＭＭＵのロジックをへることで、約５ｎS（ナノセック）かかる。
【００６９】
このように比較例では１クロックあたり１５ｎS（ナノセック）かかるクリティカルパスがあるため、動作周波数は６７MHzが上限となる。
【００７０】
図５は３クロック目の本実施の形態の処理時間を示した図である。
【００７１】
２１０はjpeg命令がデコードされて、デコード回路から出力された分岐先アドレスが分岐先アドレス保持レジスタに保持されるステップで、約４ｎS（ナノセック）かかる。
【００７２】
２２０はセレクタは３６がデコード回路６０から分岐命令発生情報６４を受け取り、分岐先アドレス保持レジスタの値を選択するステップで約１ｎS（ナノセック）かかる。
【００７３】
２３０はフェッチアドレスがメモリ（ＲＡＭ等）に到達するまでのステップで、途中バスの遅延やキャッシュ、ＭＭＵのロジックをへることで、約５ｎS（ナノセック）かかる。
【００７４】
このように本実施の形態例では１クロックあたり１０ｎS（ナノセック）でよいため、動作周波数を１００MHzまで上げることができる。
【００７５】
２．マイクロコンピュータ
図６は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００７６】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０及びそれらを接続する汎用バス６８０、専用バス７３０等、各種ピン６９０等を含む。
【００７７】
ＣＰＵ５１０は、例えば図１で説明した構成を有する。
【００７８】
３．電子機器
図７に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００７９】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００８０】
図８（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【００８１】
図８（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【００８２】
図８（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【００８３】
本実施の形態のマイクロコンピュータを図８（Ａ）〜図８（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【００８４】
なお、本実施形態を利用できる電子機器としては、図８（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【００８５】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００８６】
【図１】本実施の形態の情報処理装置の構成について説明するための機能ブロック図である。
【図２】条件分岐が発生する場合の課題について説明するための図である。
【図３】本実施の形態と比較例の具体的な動作比較を示した図である。
【図４】比較例の処理時間（クリティカルパス）を示した図である。
【図５】３クロック目の本実施の形態の処理時間を示した図である。
【図６】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図７】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図８】図８（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【００８７】
１  情報処理装置、１０  ＣＰＵ、２０  フェッチ回路、２２−１，２２−２    第１のフェッチキュー、２４  第２のフェッチキュー、３０  フェッチアドレス演算回路、３２  非分岐アドレス演算回路、３４  分岐アドレス保持回路、３６  セレクタ、３８  読み出しアドレス出力回路、４０  選択回路、６０  デコード回路、６２  分岐情報設定回路、７０  実行回路、７２  データ／アドレス演算回路、７４  実行結果、７６  フラグ、７８  レジスタファイル、１００  ＢＣＵ（バスコントロールユニット）、１１０  メモリ、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  シリアルインターフェース、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、８００  電子機器、８５０  ＬＣＤ
【図１】
2006003954.tif 000003
【図２】
2006003954.tif 000004
【図３】
2006003954.tif 000005
【図４】
2006003954.tif 000006
【図５】
2006003954.tif 000007
【図６】
2006003954.tif 000008
【図７】
2006003954.tif 000009
【図８】
2006003954.tif 000010
【手続補正書】
【提出日】平成17年8月26日(2005.8.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
例えば１６ビット命令について、３２ビット幅でアクセスする場合には、連続した２命令を同時にアクセスすることができる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
セレクタ３６は、デコード回路６０から分岐命令発生情報６４を受け取った場合には、分岐先アドレス保持レジスタの値を選択して読み出しアドレス出力回路３８に出力し、それ以外の場合には非分岐アドレス演算回路３２が演算した非分岐アドレスの値を選択して読み出しアドレス出力回路３８に出力する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
本実施の形態によれば非分岐先命令をフェッチする第１のフェッチキューと、分岐先命令をフェッチする第２のフェッチキューと、比較命令の実行結果に基づき第１のフェッチキュー又は第２のフェッチキューのいずれの命令をデコーダに渡すかを選択する選択回路４０を含む。従って、非分岐命令の場合には次の命令を第１のフェッチキューにプリフェッチし、条件分岐命令がきたら分岐／非分岐に関わらず非分岐先の命令をフェッチし、選択回路４０が比較命令の実行結果に基づき、非分岐先（第１のフェッチキュー）又は分岐先（第２のフェッチキュー）のいずれかの命令を選択してデコード回路６０に渡すことができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
次の（３番目の）クロックで、比較例では「jpeg」の次の「add」フェッチ、「jpeg」のデコード、「cmp」の実行を行い、「cmp」の実行結果に基づき分岐非分岐の判断を行い（３７０参照）、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する（３８０参照）。このように比較例では「cmp」の実行結果に基づき分岐非分機の判断する動作（３７０参照）や、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する動作（３８０参照）を１クロック内に行う必要があるため、処理時間が長くなる（クリティカルパスとなる）（図４参照）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
２２０はセレクタ３６がデコード回路６０から分岐命令発生情報６４を受け取り、分岐先アドレス保持レジスタの値を選択するステップで約１ｎS（ナノセック）かかる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置６６０、プリスケーラ６７０及びそれらを接続する汎用バス６８０、専用バス７３０等、各種ピン６９０等を含む。