JP3760999B2 - 情報処理装置、マイクロコンピュータ及び電子機器 - Google Patents

情報処理装置、マイクロコンピュータ及び電子機器 Download PDF

Info

Publication number
JP3760999B2
JP3760999B2 JP2004176681A JP2004176681A JP3760999B2 JP 3760999 B2 JP3760999 B2 JP 3760999B2 JP 2004176681 A JP2004176681 A JP 2004176681A JP 2004176681 A JP2004176681 A JP 2004176681A JP 3760999 B2 JP3760999 B2 JP 3760999B2
Authority
JP
Japan
Prior art keywords
instruction
branch
fetch
circuit
branch destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004176681A
Other languages
English (en)
Other versions
JP2006003954A (ja
Inventor
真 工藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004176681A priority Critical patent/JP3760999B2/ja
Priority to CNB2005100722210A priority patent/CN100343800C/zh
Priority to US11/149,494 priority patent/US7340587B2/en
Publication of JP2006003954A publication Critical patent/JP2006003954A/ja
Application granted granted Critical
Publication of JP3760999B2 publication Critical patent/JP3760999B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、情報処理装置、マイクロコンピュータ及び電子機器に関する。
パイプライン型のCPUにおいて性能を上げるには、動作周波数を上げながら条件分岐を行う場合の必要クロック数を削減することがとても重要となる。
ところがパイプラインアーキテクチャでは、分岐命令やループ命令が発生すると、分岐先の命令について再びフェッチからやり直さなければならない。このため、「フェッチ」「デコード」「実行」「アクセス」「書き込み」という通常の5段階パイプラインのCPUでは高速な分岐をするため、デコードフェーズで分岐命令のデコードと分岐先アドレスを計算する専用の加算機をもっている。このようにするとデコード終了時には分岐先アドレスが計算できているので、次は分岐先からフェッチできる。
特開平5−27971号
しかし条件分岐の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次(非分岐先)の命令をフェッチするかが決定されるため、これを1クロックで行う場合には1クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
かかるクリティカルパスがあると動作周波数の上限が低くなり、それ以上動作周波数を上げることができないという問題点があった。
本発明は以上のような問題点に鑑みてなされたものであり、パイプラインアーキテクチャを採用する情報処理装置において回路規模の増大を招くことなく動作周波数を上げ、少ないクロック数の条件分岐を実現する情報処理装置、マイクロコンピュータ及び電子機器の提供を目的とする。
(1)本発明は、
パイプライン制御を行う情報処理装置であって、
非分岐先命令をフェッチする第1のフェッチキューと、
分岐先命令をフェッチする第2のフェッチキューと、
命令コードをフェッチするためのフェッチアドレスを演算し、第1のフェッチキューまたは第2のフェッチキューにフェッチし、第1のフェッチキューまたは第2のフェッチキューの命令をデコード回路に出力するフェッチ回路と、
第1のフェッチキューまたは第2のフェッチキューにフェッチされた命令コードを受け取りデコードを行うデコード回路と、
デコード結果に基づき命令の実行を行う実行回路とを含み、
前記フェッチ回路は、
比較命令の実行結果に基づき第1のフェッチキュー又は第2のフェッチキューのいずれの命令をデコード回路に渡すかを選択する選択回路を含むことを特徴する。
比較命令とは、条件分岐命令に先行して配置され後続の条件分岐命令の分岐条件を判定するための比較命令である。
なお比較命令の実行結果と、パイプライン制御で比較命令の実行と平行してデコードされているデコード対象命令が条件分岐であることを示す情報とに基づき
第1のフェッチキュー又は第2のフェッチキューのいずれの命令をデコード回路に渡すかを選択するようにしてもよい。
第1のフェッチキューには、非分岐時のアドレスを順次プリフェッチし、第2のフェッチキューには、(条件分岐命令がデコードされて又はデコード途中で)分岐先のアドレスがわかり次第プリフェッチするようにしてもよい。
なお非分岐先命令をフェッチする第1のフェッチキューへのフェッチと分岐先命令をフェッチする第2のフェッチキューへのフェッチを同一クロック内で両方行える構成(メモリもデュアルポート対応となる)でもよいし、同一クロック内ではいずれか一方の命令のフェッチのみ行える構成でもよい。
本発明によれば非分岐命令の場合には次の命令を第1のフェッチキューにプリフェッチし、条件分岐命令がきたら分岐/非分岐に関わらず分岐先の命令をフェッチし、選択回路が比較命令の実行結果に基づき、非分岐先(第1のフェッチキュー)又は分岐先(第2のフェッチキュー)のいずれかの命令を選択してデコード回路に渡すことができる。
ここにおいて比較命令の実行結果を待って非分岐先/分岐先のいずれをフェッチするか選択する構成の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次(非分岐先)の命令をフェッチするかが決定されるため、これを1クロックで行う場合には1クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
しかし本発明によればフェッチ前に比較命令の実行結果を参照することなく、非分岐先/分岐先の両方の命令をフェッチして、デコード回路に渡す際に比較命令の実行結果に基づきいずれかの命令を選択する構成なので、1クロック内で行うべき処理に要する時間を短く構成することができるため、動作周波数を上げることができる。
またフェッチキューと選択回路の追加で対応できるため分岐予測回路を設ける場合のように回路規模の増大を招くことがない。
このように本発明によれば回路規模の増大を招くことなく動作周波数を上げながら少ないクロック数の条件分岐を実現することができる。
(2)本発明の情報処理装置は、
前記デコード回路は、
デコード対象命令が分岐命令であるか否か判断し、分岐命令である場合には、分岐命令の分岐先アドレスをフェッチ回路に向け出力し、
前記フェッチ回路は、
デコード対象命令が分岐命令である場合には、受け取った分岐先アドレスに基づき分岐先の命令を第2のフェッチキューにフェッチし、
デコード対象命令が分岐命令でない場合には、非分岐先アドレスを演算し、当該非分岐先アドレスに基づき非分岐先の命令を第1のフェッチキューにフェッチ
することを特徴する。
非分岐先アドレスは、例えばプログラムカウンタを命令長又は読み出し単位のビット幅でインクリメントすることにより求める事ができる。
フェッチ回路はデコード対象命令が分岐命令であるか否かについては、例えば分岐先アドレスをうけとったか否かに基づき判断するようにしても良いし、デコード回路からデコード対象命令が分岐命令であるか否かについての情報(分岐命令発生情報)を受け取って当該情報に基づき判断するようにしてもよい。
例えばデコード対象命令が分岐命令である場合には次のクロックで分岐先をフェッチし、デコード対象命令が分岐命令でない場合には次のクロックで非分岐先をフェッチするように構成することができる。
このようにすると1クロックで分岐命令又は非分岐命令のいずれか一方のみをアクセスする構成の場合でも、比較命令の実行終了後のクロックで分岐先/非分岐先の両方がフェッチされた状態にできるので、ここで比較命令の実行結果に基づき選択回路が分岐先/非分岐先のいずれかを選択してデコード回路に渡すことができる。
(3)本発明の情報処理装置は、
前記デコード回路は、
命令のデコードが終了する前に、分岐命令の分岐先アドレスをフェッチ回路に向け出力することを特徴する。
本発明によれば、より早く分岐先のフェッチを行うことができるため、1クロック内で行うべき処理の処理時間を短くすることができる。
(4)本発明の情報処理装置は、
前記フェッチ回路は、
連続したアドレスから2命令以上同時に命令フェッチを行うことを特徴する。
例えば16ビット命令について、32ビット幅でアクセスする場合には、連続した2命令を同時にアクセスすることができる。
(5)本発明は、
上記のいずれかに記載の情報処理装置を含むことを特徴とするマイクロコンピュータである。
(6)本発明は、
上記のいずれかに記載の情報処理装置と、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
本発明によれば、ローコストで高速実行可能な情報処理装置を内蔵しているため、安価で高機能な電子機器を提供することが出来る。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
1.情報処理装置
図1は、本実施の形態の情報処理装置の構成について説明するための機能ブロック図である。
本実施の形態の情報処理装置1は、パイプライン制御を行う情報処理装置(例えばマイクロコンピュータ)であって、CPU(広義には、処理回路)10と、BCU(バスコントロールユニット)100とメモリ110(ROM(Read Only Memory)、RAM(Random Access Memory)とを含む。
なお情報処理装置1は、これ以外にもMMU(Memory Management Unit)、DMAC(Direct Access Memory Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
CPU10は、ROMやRAMに記憶されたプログラムに従って、命令のフェッチ、命令のデコード、演算処理、レジスタへの書き込み等をパイプライン制御で行う。CPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
BCU(バスコントロールユニット)100は、図示しない32ビットの命令データバスや、命令データアクセスのための命令アドレスバスや、32ビットのデータバスや、データアクセスのためのデータアドレスバスや、コントロール信号のためのコントロールバス等の各種バスのバスコントロール処理を行う。
そしてこのCPU10は、前記バスを介してメモリ110から実行すべき命令をよみだす。
またCPU10は、フェッチ回路20、デコード回路60、実行回路70等を含んで構成される。
フェッチ回路20は、非分岐先命令をフェッチする第1のフェッチキュー22−1、22−2と、分岐先命令をフェッチする第2のフェッチキュー24と、フェッチアドレス演算回路30と選択回路40とを含む。
フェッチアドレス演算回路30は、命令コードをフェッチするためのフェッチアドレスを演算しBCUに対して出力するもので、非分岐アドレス演算回路32,分岐先アドレス保持レジスタ34,セレクタ36、読み出しアドレス出力回路38等を含む。
非分岐アドレス演算回路32は図示しないフェッチ用プログラムカウンタに保持されている値を命令長(又は命令長の整数倍、例えば命令長が16ビットだがバス幅32ビット単位で読み出す場合には32ビット)でインクリメントして得られた値を非分岐アドレスとして演算する。
分岐先アドレス保持レジスタ34は、デコード回路60から分岐先アドレスを受け取ると分岐先アドレス保持レジスタ34に保持する。
セレクタ36は、デコード回路60から分岐命令発生情報64を受け取った場合には、分岐先アドレス保持レジスタの値を選択して読み出しアドレス出力回路38に出力し、それ以外の場合には非分岐アドレス演算回路32が演算した非分岐アドレスの値を選択して読み出しアドレス出力回路38に出力する。
読み出しアドレス出力回路38は、セレクタ36で選択されたアドレスをメモリ110からの読み出しアドレスとしてBCU100に出力する。
ここにおいてフェッチアドレス演算回路30は、条件分岐命令の分岐条件を決定するCOMP命令の実行終了を待たずに、当該分岐先アドレスを読み出しアドレスとしてBCU100に出力するようにしてもよい。
選択回路40は、比較命令の実行結果(条件分岐命令であるというデコード結果66、比較命令の比較結果に基づき設定されたフラグ76)に基づき第1のフェッチキュー22−1、22−2又は第2のフェッチキュー24のいずれかの命令を選択してデコード回路60に出力する。出力された命令はフィリップフロップ(FF)回路42を介してデコード回路60に入力される。
このように本実施の形態では命令コードをフィリップフロップ(FF)回路42に取り込む直前にMUX(選択回路40)を置き、比較命令の実行結果得られたフラグ76に基づき分岐先の命令コード(第2のフェッチキューにフェッチされている命令コード)又は非分岐先の命令コード(第のフェッチキューにプリフェッチされている命令コード)を選択する構成を有する。
デコード回路60は選択回路40によって選択された命令コードを受け取りデコードする処理をおこなう回路であり所定のレジスタ等にデコード結果66を出力する。またデコードの途中で、分岐命令であることを識別した場合には分岐先アドレス62をフェッチ回路20の分岐先アドレス保持レジスタ34に出力する。
実行回路70は、データやアドレスの演算を行う演算回路(ALU)72と、レジスタファイル78等を含み、前記デコード回路60がデコードした命令のオペレーション内容に基づき該命令の実行をおこない、実行結果74や各種フラグ76の設定を行う。
レジスタファイル78は、汎用レジスタR0〜R15の16本の汎用レジスタ、プログラムカウンタ(PC)、プロセッサーステータスレジスタ(PSR)、スタックポインタ(SP)、算術ローレジスタ(ALR)、算術ハイレジスタ(AHR)等のCPUで使用するレジスタで構成することができる。
本実施の形態によれば非分岐先命令をフェッチする第1のフェッチキューと、分岐先命令をフェッチする第2のフェッチキューと、比較命令の実行結果に基づき第1のフェッチキュー又は第2のフェッチキューのいずれの命令をデコーダに渡すかを選択する選択回路40を含む。従って、非分岐命令の場合には次の命令を第1のフェッチキューにフェッチし、条件分岐命令がきたら分岐/非分岐に関わらず分岐先の命令をフェッチし、選択回路40が比較命令の実行結果に基づき、非分岐先(第1のフェッチキュー)又は非分岐先(第2のフェッチキュー)のいずれかの命令を選択してデコード回路60に渡すことができる。
なおフェッチ回路20は、連続したアドレスから2命令以上同時に命令フェッチを行うようにしてもよい。すなわち例えば16ビット長命令に対して、32ビット幅のデータ長でアクセスする場合には、1回のアクセスで連続する2命令を読み出すことが可能である。従って連続する2命令をそれぞれ第1のフェッチキュー22−1、22−2に格納するようにしてもよい。
図2は条件分岐が発生する場合の課題について説明するための図である。
310に示すような命令コードで条件分岐312で分岐先312に分岐する場合、条件分岐「jpeg L1」312命令の次の命令の「add」313は無駄なフェッチとなりnop化(350参照)されるが、その次からは分岐先「sub」314がフェッチでき、1命令(1クロック)のオーバーヘッドで分岐ができる。
ここで比較例(又は従来の一般的な構成)ではcmp命令実行時にeqかどうかのフラグを計算するのでそのフラグ情報をみた上で、分岐であれば分岐先のフェッチを開始することになる。
このように比較例では件分岐の場合、分岐命令の前の比較命令の実行結果を得てから分岐先をフェッチするか次(非分岐先)の命令をフェッチするかが決定されるため、これを1クロックで行う場合には1クロック当たりの処理時間が長くなるクリティカルパスを形成することになる。
図3は、本実施の形態と比較例の具体的な動作比較を示した図である。
ここでは図2の命令リストに対応した本実施の形態と比較例の動作について、各クロック毎に対比して説明する。
まず1番目のクロックで、比較例では「cmp」のフェッチを行い、本実施の形態では「cmp」と「jpeg」の連続した2命令のフェッチを行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
次の(2番目の)クロックで、比較例では「cmp」の次の「jpeg」のフェッチを行う同時に「cmp」のデコードを行う。本実施の形態では「cmp」のデコードを行う(「cmp」の次の命令の「jpeg」については、前のクロックで既にフェッチ済みである)。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
次の(3番目の)クロックで、比較例では「jpeg」の次の「add」フェッチ、「jpeg」のデコード、「cmp」の実行を行い、「cmp」の実行結果に基づき分岐非分岐の判断を行い(370参照)、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する(380参照)。このように比較例では「cmp」の実行結果に基づき分岐非分機の判断する動作(370参照)や、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する動作(380参照)を1クロック内に行う必要があるため、処理時間が長くなる(クリティカルパスとなる)(図4参照)。
これに対し本実施の形態では「add」と「and」の連続した2命令のフェッチ、「jpeg」のデコード、「cmp」の実行を行う。
次の(4番目の)クロックで、比較例では分岐の場合には分岐先の「sub」フェッチ、「add」のデコード、「jpeg」の実行を行い、非分岐の場合には「add」の次の「and」のフェッチ、「add」のデコード、「jpeg」の実行を行う。これに対し本実施の形態では分岐先の「sub」のフェッチ、「add」のデコード、「jpeg」の実行を行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
そして次の(5番目の)クロックで、比較例では分岐の場合には分岐先の「sub」の次の「or」のフェッチ、「sub」のデコード、「add」の実行のキャンセルを行い、非分岐の場合「and」の次命令のフェッチ、「and」のデコード、「add」の実行を行う。これに対し本実施の形態では分岐の場合には既にフェッチ済みの「sub」のデコード、「add」の実行をキャンセル行い、非分岐の場合には「and」の次命令のフェッチ、「and」のデコード、「add」の実行を行う。このクロックでは比較例も本実施の形態でも処理時間はさほどかわらない。
以上からわかるように3番目のクロックでは、比較例は「cmp」の実行結果に基づき分岐非分機の判断する動作(370参照)や、判断結果に基づき分岐又非分岐のフェッチアドレスを出力する動作(380参照)を1クロック内に行う必要があるためクリティカルパスを形成し、動作周波数の上げる最のネックとなる。
図4は3クロック目の比較例の処理時間(クリティカルパス)を示した図である。
410はcmp命令が実行されて結果がフラグレジスタに格納されるステップで、約8nS(ナノセック)かかる。
420はフラグレジスタの内容に基づき、次の命令をフェッチするのか分岐先の命令をフェッチするのか判断し制御信号を生成するステップで、約1nS(ナノセック)かかる。
430は制御信号に基づき、フェッチアドレスとして次の命令のアドレス又は分岐先の命令のアドレスのいずれかを選択するステップで、約1nS(ナノセック)かかる。
440はフェッチアドレスがメモリ(RAM等)に到達するまでのステップで、途中バスの遅延やキャッシュ、MMUのロジックをへることで、約5nS(ナノセック)かかる。
このように比較例では1クロックあたり15nS(ナノセック)かかるクリティカルパスがあるため、動作周波数は67MHzが上限となる。
図5は3クロック目の本実施の形態の処理時間を示した図である。
210はjpeg命令がデコードされて、デコード回路から出力された分岐先アドレスが分岐先アドレス保持レジスタに保持されるステップで、約4nS(ナノセック)かかる。
220はセレクタ36がデコード回路60から分岐命令発生情報64を受け取り、分岐先アドレス保持レジスタの値を選択するステップで約1nS(ナノセック)かかる。
230はフェッチアドレスがメモリ(RAM等)に到達するまでのステップで、途中バスの遅延やキャッシュ、MMUのロジックをへることで、約5nS(ナノセック)かかる。
このように本実施の形態例では1クロックあたり10nS(ナノセック)でよいため、動作周波数を100MHzまで上げることができる。
2.マイクロコンピュータ
図6は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
本マイクロコンピュータ700は、CPU510、キャッシュメモリ520、LCDコントローラ530、リセット回路540、プログラマブルタイマ550、リアルタイムクロック(RTC)560、DRAMコントローラ兼バスI/F570、割り込みコントローラ580、シリアルインターフェース590、バスコントローラ600、A/D変換器610、D/A変換器620、入力ポート630、出力ポート640、I/Oポート650、クロック発生装置660、プリスケーラ670及びそれらを接続する汎用バス680、専用バス730等、各種ピン690等を含む。
CPU510は、例えば図1で説明した構成を有する。
3.電子機器
図7に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、メモリ830、電源生成部840、LCD850、音出力部860を含む。
ここで、入力部820は、種々のデータを入力するためのものである。マイクロコンピュータ810は、この入力部820により入力されたデータに基づいて種々の処理を行うことになる。メモリ830は、マイクロコンピュータ810などの作業領域となるものである。電源生成部840は、電子機器800で使用される各種電源を生成するためのものである。LCD850は、電子機器が表示する各種の画像(文字、アイコン、グラフィック等)を出力するためのものである。 音出力部860は、電子機器800が出力する各種の音(音声、ゲーム音等)を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
図8(A)に、電子機器の1つである携帯電話950の外観図の例を示す。この携帯電話950は、入力部として機能するダイヤルボタン952や、電話番号や名前やアイコンなどを表示するLCD954や、音出力部として機能し音声を出力するスピーカ956を備える。
図8(B)に、電子機器の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、入力部として機能する操作ボタン962、十字キー964や、ゲーム画像を表示するLCD966や、音出力部として機能しゲーム音を出力するスピーカ968を備える。
図8(C)に、電子機器の1つであるパーソナルコンピュータ970の外観図の例を示す。このパーソナルコンピュータ970は、入力部として機能するキーボード972や、文字、数字、グラフィックなどを表示するLCD974、音出力部976を備える。
本実施の形態のマイクロコンピュータを図8(A)〜図8(C)の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
なお、本実施形態を利用できる電子機器としては、図8(A)、(B)、(C)に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のLCDを使用する種々の電子機器を考えることができる。
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
本実施の形態の情報処理装置の構成について説明するための機能ブロック図である。 条件分岐が発生する場合の課題について説明するための図である。 本実施の形態と比較例の具体的な動作比較を示した図である。 比較例の処理時間(クリティカルパス)を示した図である。 3クロック目の本実施の形態の処理時間を示した図である。 本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。 マイクロコンピュータを含む電子機器のブロック図の一例を示す。 図8(A)(B)(C)は、種々の電子機器の外観図の例である。
符号の説明
1 情報処理装置、10 CPU、20 フェッチ回路、22−1,22−2 第1のフェッチキュー、24 第2のフェッチキュー、30 フェッチアドレス演算回路、32 非分岐アドレス演算回路、34 分岐アドレス保持回路、36 セレクタ、38 読み出しアドレス出力回路、40 選択回路、60 デコード回路、62 分岐情報設定回路、70 実行回路、72 データ/アドレス演算回路、74 実行結果、76 フラグ、78 レジスタファイル、100 BCU(バスコントロールユニット)、110 メモリ、510 CPU、530 LCDコントローラ、540 リセット回路、550 プログラマブルタイマ、560 リアルタイムクロック(RTC)、570 DRAMコントローラ兼バスI/F、580 割り込みコントローラ、590 シリアルインターフェース、600 バスコントローラ、610 A/D変換器、620 D/A変換器、630 入力ポート、640 出力ポート、650 I/Oポート、660 クロック発生装置(PLL)、670 プリスケーラ、680 汎用バス、690 各種ピン、700 マイクロコンピュータ、710 ROM、720 RAM、730 MMU、800 電子機器、850 LCD

Claims (6)

  1. パイプライン制御を行い、条件分岐命令と条件分岐命令に先行して配置され後続の条件分岐命令の分岐条件を判定するための比較命令を含む命令をフェッチしてデコードして実行する情報処理装置であって、
    非分岐先命令をフェッチする第1のフェッチキューと、分岐先命令をフェッチする第2のフェッチキューとを含み、比較命令の実行結果を参照することなく、非分岐先/分岐先の命令をそれぞれ読み出して前記第1のフェッチキューまたは前記第2のフェッチキューに格納するフェッチ回路と、
    第1のフェッチキューまたは第2のフェッチキューにフェッチされた命令コードを受け取りデコードを行うデコード回路と、
    デコード結果に基づき命令の実行を行う実行回路とを含み、
    前記フェッチ回路は、
    条件分岐命令であるというデコード結果及び比較命令の比較結果に基づき第1のフェッチキュー又は第2のフェッチキューのいずれの命令をデコード回路に渡すかを選択する選択回路を含み、
    前記デコード回路は、
    パイプライン制御で比較命令の実行と平行してデコードされているデコード対象命令が条件分岐命令であるか否か判断し、条件分岐命令である場合には、条件分岐命令であるというデコード結果を前記選択回路に向け出力し、
    前記実行回路は、
    比較命令の比較結果を前記選択回路に向け出力することを特徴とする情報処理装置。
  2. 請求項1において、
    前記デコード回路は、
    デコード対象命令が分岐命令であるか否か判断し、分岐命令である場合には、分岐命令の分岐先アドレスをフェッチ回路に向け出力し、
    前記フェッチ回路は、
    デコード対象命令が分岐命令である場合には、受け取った分岐先アドレスに基づき分岐先の命令を第2のフェッチキューにフェッチし、
    デコード対象命令が分岐命令でない場合には、非分岐先アドレスを演算し、当該非分岐先アドレスに基づき非分岐先の命令を第1のフェッチキューにフェッチすることを特徴する情報処理装置。
  3. 請求項1乃至2のいずれかにおいて、
    前記デコード回路は、
    命令のデコードが終了する前に、分岐命令の分岐先アドレスをフェッチ回路に向け出力することを特徴する情報処理装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記フェッチ回路は、
    連続したアドレスから2命令以上同時に命令フェッチを行うことを特徴する情報処理装置。
  5. 請求項1乃至4のいずれかに記載の情報処理装置を含むことを特徴とするマイクロコンピュータ。
  6. 請求項1乃至4のいずれかに記載の情報処理装置と、
    入力情報を受け付ける手段と、
    入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
    を含むことを特徴とする電子機器。
JP2004176681A 2004-06-15 2004-06-15 情報処理装置、マイクロコンピュータ及び電子機器 Expired - Fee Related JP3760999B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004176681A JP3760999B2 (ja) 2004-06-15 2004-06-15 情報処理装置、マイクロコンピュータ及び電子機器
CNB2005100722210A CN100343800C (zh) 2004-06-15 2005-05-23 信息处理装置、微型计算机及电子设备
US11/149,494 US7340587B2 (en) 2004-06-15 2005-06-09 Information processing apparatus, microcomputer, and electronic computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004176681A JP3760999B2 (ja) 2004-06-15 2004-06-15 情報処理装置、マイクロコンピュータ及び電子機器

Publications (2)

Publication Number Publication Date
JP2006003954A JP2006003954A (ja) 2006-01-05
JP3760999B2 true JP3760999B2 (ja) 2006-03-29

Family

ID=35461867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004176681A Expired - Fee Related JP3760999B2 (ja) 2004-06-15 2004-06-15 情報処理装置、マイクロコンピュータ及び電子機器

Country Status (3)

Country Link
US (1) US7340587B2 (ja)
JP (1) JP3760999B2 (ja)
CN (1) CN100343800C (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56103714A (en) * 1980-01-19 1981-08-19 Matsushita Electric Ind Co Ltd Controller for rotary body
JPH03189824A (ja) * 1989-12-20 1991-08-19 Mitsubishi Electric Corp マイクロプロセッサ
JPH04372020A (ja) 1991-06-21 1992-12-25 Fujitsu Ltd データ処理方法およびデータ処理装置
JP2773471B2 (ja) 1991-07-24 1998-07-09 日本電気株式会社 情報処理装置
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
JP3493110B2 (ja) * 1997-01-29 2004-02-03 株式会社東芝 高速分岐処理装置
CN1206145A (zh) * 1997-06-30 1999-01-27 索尼公司 带有流水线处理电路的信号处理器及其方法
JPH1124929A (ja) 1997-06-30 1999-01-29 Sony Corp 演算処理装置およびその方法
US5958038A (en) * 1997-11-07 1999-09-28 S3 Incorporated Computer processor with two addressable memories and two stream registers and method of data streaming of ALU operation
US7003649B2 (en) * 2002-03-08 2006-02-21 Hitachi, Ltd. Control forwarding in a pipeline digital processor

Also Published As

Publication number Publication date
US20050278515A1 (en) 2005-12-15
US7340587B2 (en) 2008-03-04
JP2006003954A (ja) 2006-01-05
CN1713136A (zh) 2005-12-28
CN100343800C (zh) 2007-10-17

Similar Documents

Publication Publication Date Title
US20090235052A1 (en) Data Processing Device and Electronic Equipment
JP3781419B2 (ja) パイプライン方式のプロセッサにおける例外処理
JP3627725B2 (ja) 情報処理装置及び電子機器
JP2001092662A (ja) プロセッサコア及びこれを用いたプロセッサ
JP2002073330A (ja) データ処理装置
JP2693678B2 (ja) データ処理装置
WO2021061626A1 (en) Instruction executing method and apparatus
US6530011B1 (en) Method and apparatus for vector register with scalar values
JP3778246B2 (ja) 割り込みコントローラ、asic、及び電子機器
JP2004005603A (ja) 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
JP3760999B2 (ja) 情報処理装置、マイクロコンピュータ及び電子機器
JP4284559B2 (ja) マイクロプロセッサ、マイクロコンピュータ、電子機器
JP2007193572A (ja) Cpu、集積回路装置、マイクロコンピュータ及び電子機器
EP4193252A1 (en) Mitigation of return stack buffer side channel attacks in a processor
JP2007207075A (ja) Cpu、集積回路装置、マイクロコンピュータ、電子機器、及びcpuの制御方法
JP2004246890A (ja) データプロセッシング装置及びコンピュータシステム
JP3899784B2 (ja) クロック制御装置、半導体集積回路装置、マイクロコンピュータ及び電子機器
JPH03271829A (ja) 情報処理装置
EP0907124A1 (en) Microcomputer and electronic equipment
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP2002182905A (ja) ディジタル信号処理プロセッサ
JPH11203133A (ja) 情報処理装置
JP2001034474A (ja) データ処理装置及びデータ処理方法
JP2005242457A (ja) プログラマブルコントローラ
JP2007280184A (ja) プロセッサ、レジスタファイル回路、集積回路装置、マイクロコンピュータ及び電子機器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051221

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060103

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120120

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120120

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130120

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130120

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140120

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees