JP3627725B2 - 情報処理装置及び電子機器 - Google Patents
情報処理装置及び電子機器 Download PDFInfo
- Publication number
- JP3627725B2 JP3627725B2 JP2002182766A JP2002182766A JP3627725B2 JP 3627725 B2 JP3627725 B2 JP 3627725B2 JP 2002182766 A JP2002182766 A JP 2002182766A JP 2002182766 A JP2002182766 A JP 2002182766A JP 3627725 B2 JP3627725 B2 JP 3627725B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- prefix
- target
- register
- decoding
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 38
- 230000004048 modification Effects 0.000 claims description 50
- 238000012986 modification Methods 0.000 claims description 50
- 238000000034 method Methods 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 24
- 238000001514 detection method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、情報処理装置及び電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
本出願人は、ターゲット命令の前におかれターゲット命令の機能を修飾(拡張)するプリフィックス命令を含む命令セットを有するマイクロコンピュータ(広義には情報処理装置)を開発している。かかるプリフィックス命令とし、例えばターゲット命令が即値を含む場合に、その即値の上位ビットをプリフィックス命令で与えてターゲット命令の即値を拡張をするext命令等を有している。
【0003】
しかし従来のパイプライン制御を行うマイクロコンピュータではプリフィックス命令で修飾されたターゲット命令の機能を実現するためには、プリフィックス命令とターゲット命令の2命令の実行が必要であり、2クロックかかっていた。
【0004】
ここでマイクロコンピュータの性能を左右する最も重要な要素はその実行速度であり、出来るだけローコストで高速実行可能なコストパフォーマンスのよいマイクロコンピュータを提供することが好ましい。
【0005】
本発明は以上のような問題点に鑑みてなされたものであり、プリフィックス命令を含む命令セットを有する情報処理装置において出来るだけローコストで高速実行可能なコストパフォーマンスのよい情報処理装置及び電子機器の提供を目的とする。
【0006】
【課題を解決するための手段】
(1)本発明は、パイプライン制御を行う情報処理装置であって、
所定のターゲット命令と、該ターゲット命令の前におかれターゲット命令の機能を修飾するプリフィックス命令を含む複数の命令の命令コードを命令キューにフェッチするフェッチ回路と、
命令キューにフェッチされているデコード前の命令コードを入力し、所定のプリフィックス命令であるか否か判断し、所定のプリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報をターゲット命令修飾情報レジスタに記憶するプリフィックス命令専用デコード処理を行うプリフィックス命令専用デコード回路と、
命令キューにフェッチされているプリフィックス命令以外の命令コードをデコード対象命令として入力しデコードするデコード回路を含み、
前記デコード回路は、
デコード対象命令がターゲット命令である場合には、ターゲット命令修飾情報保持レジスタに記憶されているターゲット命令修飾情報に基づき、プリフィックス命令によって修飾されたターゲット命令のデコードを行うことを特徴とする。
【0007】
本発明の情報処理装置には、ターゲット命令及び該ターゲット命令の機能を拡張するプリフィックス命令が入力される。プリフィックス命令は、後続のターゲット命令が実行される際に、そのターゲット命令の機能を拡張する機能を有する。
【0008】
ここで命令キューとはデコードされる前に命令コードが格納されているキューのことで、フェッチキュー又はプリフェッチキュー等でもよい。
【0009】
デコード対象命令がターゲット命令であるかいなかは、デコード対象命令の命令コード及びターゲット命令修飾情報レジスタの少なくとも一方にもとづき判断するようにしてもよい。
【0010】
またデコード対象命令がターゲット命令でない場合には、当該命令の通常の機能が実現されるようにデコードを行う。
【0011】
プリフィックス命令専用デコード回路は、命令キューに格納されている各命令がデコード回路に渡される少なくとも1クロック以上前に該命令を読み込み、プリフィックス命令専用デコード処理を行うようにしてもよい。そして読み込んだ命令がプリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報を、少なくとも修飾するターゲット命令のデコード前までにターゲット命令修飾情報レジスタに記憶させる。
【0012】
そして命令キューに格納された命令がプリフィックス命令である場合には、当該命令がデコード回路によってデコードされないように制御する。
【0013】
このようにするとプリフィックス命令はデコード回路でデコードせずに、先行する他の命令がデコード回路でデコードされている間にプリフィックス命令専用デコード回路でデコードして、ターゲット命令の実行に必要な情報をターゲット命令修飾情報レジスタに記憶させることが出来る。そしてターゲット命令のデコードの際にターゲット命令修飾情報レジスタを参照してデコードを行うことにより、プリフィックス命令を実質上0クロックで実現することができ情報処理装置の高速化を図ることが出来る。
【0014】
しかもプリフィックス命令専用デコード回路の回路規模は通常のデコード回路に比べると非常に小さいので、回路規模の増大を招くことなく情報処理装置の高速化を図るとが出来る。
(2)本発明の情報処理装置は、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行に必要な即値を拡張させるための即値拡張プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードが即値拡張プリフィックス命令である場合には、即値拡張プリフィックス命令に修飾されたターゲット命令の実行時に即値を拡張するために必要な即値拡張情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令が即値拡張プリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記即値拡張情報に基づき、即値拡張プリフィックス命令によって修飾されたターゲット命令の実行時に即値が拡張されてターゲット命令が実行されるようにデコードを行うことを特徴とする。
【0015】
ターゲット命令の実行時に即値を拡張するために必要な即値拡張情報とは、例えば、実行に必要な即値の一部のビットの値(拡張部分に該当するビット値等)等を含む。
【0016】
ここでいう即値の拡張とは、例えば通常のゼロ拡張やサイン拡張のほか、命令コード中に記載されている即値のビット幅を伸張して、伸張された部分に、所与のビットを補う場合も含む。
【0017】
本発明によれば、回路規模の増大を招くことなく、ターゲット命令の実行に必要な即値を拡張する即値拡張プリフィックス命令を実質上0クロックで実現することができ、情報処理装置の高速化を図ることが出来る。
(3)本発明の情報処理装置は、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行結果をシフトさせるためのシフトプリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードがシフトプリフィックス命令である場合には、シフトプリフィックス命令によって修飾されたターゲット命令の実行結果をシフトするために必要なシフト情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令がシフトプリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記シフト情報に基づき、シフトプリフィックス命令によって修飾されたターゲット命令の実行結果がシフトされてターゲット命令が実行されるようにデコードを行うことを特徴とする。
【0018】
ターゲット命令の実行結果をシフトするために必要なシフト情報とは、例えば、ターゲット命令の実行結果を左シフトするか右シフトするかに関する情報、論理シフトするか算術シフトするかに関する情報、シフトさせる数(シフト値)等を含む。
【0019】
本発明によれば、回路規模の増大を招くことなく、ターゲット命令の実行結果をシフトするシフトプリフィックス命令を実質上0クロックで実現することができ、情報処理装置の高速化を図ることが出来る。
(4)本発明の情報処理装置は、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行に必要なレジスタを拡張するためのレジスタ拡張プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードがレジスタ拡張プリフィックス命令である場合には、レジスタ拡張プリフィックス命令によって修飾されたターゲット命令の実行時にレジスタを拡張するために必要なレジスタ拡張情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令がレジスタ拡張プリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記レジスタ拡張情報に基づき、レジスタ拡張プリフィックス命令によって修飾されたターゲット命令の実行時にレジスタが拡張されてターゲット命令が実行されるようにデコードを行うことを特徴とする。
【0020】
ターゲット命令の実行時にレジスタを拡張するために必要なレジスタ拡張情報とは、例えば、ターゲット命令実行時に使用する汎用レジスタ番号に関する情報等を含む。
【0021】
本発明によれば、回路規模の増大を招くことなく、ターゲット命令の実行に必要なレジスタを拡張するレジスタ拡張プリフィックス命令を実質上0クロックで実現することができ、情報処理装置の高速化を図ることが出来る。
(5)本発明の情報処理装置は、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行の有無を制御するための実行制御プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードが実行制御プリフィックス命令である場合には、実行制御プリフィックス命令によって修飾されたターゲット命令の実行の有無を制御するために必要な実行制御情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令が実行制御プリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記実行制御情報に基づき、実行制御プリフィックス命令によって修飾されたターゲット命令の実行の有無を判断してターゲット命令が実行されるようにデコードすることを特徴とする。
【0022】
ターゲット命令の実行の有無を制御するために必要な実行制御情報とは、例えば実行制御プリフィックス命令に先だって実行された比較命令の比較結果によってターゲット命令の実行の有無を制御する場合には、ターゲット命令の実行無し又は有りに対応する比較結果等でもよい。
【0023】
そして比較命令の比較結果が、定義された比較コードと一致したら、ターゲット命令をNOP命令にすり替えるようにしてもよい。
【0024】
本発明によれば、回路規模の増大を招くことなく、ターゲット命令の実行の有無を制御するための実行制御プリフィックス命令を実質上0クロックで実現することができ、情報処理装置の高速化を図ることが出来る。
(6)本発明の情報処理装置は、
前記フェッチ回路は、
命令コードの少なくとも2倍以上のバス幅を有するバスに接続され、前記バスを介して複数命令を1クロックで命令キューにフェッチすることを特徴とする。
(7)本発明の情報処理装置は、
ターゲット命令は、当該ターゲット命令を修飾するプリフィックス命令の後に連続して配置され、
前記デコード回路が第1の命令のデコード中に、前記プリフィックス命令専用デコード回路が第1の命令に続く第2の命令についてプリフィックス命令専用デコード処理を行うことを特徴とする。
(8)本発明は、上記のいずれかに記載の情報処理装置と、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【0025】
本発明によれば、ローコストで高速実行可能な情報処理装置を内蔵しているため、安価で高機能な電子機器を提供することが出来る。
【0026】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0027】
1.情報処理装置
図1は、従来のマイクロコンピュータ(広義には情報処理装置)におけるパイプライン制御の一例について説明するための図である。
【0028】
同図は、Fetch(F)、Decode(D)、Execute(E)、Access(A)、Write(W)の5段のパイプライン制御を行うマイクロコンピュータにおいて、▲1▼〜▲4▼の命令が処理されるタイムテーブルを表している。
【0029】
ここで▲2▼extと▲3▼extはいずれも後に続く▲4▼addを修飾するプリフィックス命令である。すなわち▲4▼addは、▲2▼extと▲3▼extによって修飾されるターゲット命令である。
【0030】
パイプライン制御を行うマイクロコンピュータにおいてプリフィックス命令とターゲット命令を含む4つの命令を実行する場合には、同図のタイムテーブルに示すように4クロック必要となる。
【0031】
図2(A)(B)は、本実施の形態の特徴について説明するための図である。図2(A)は、本実施の形態の情報処理装置の特徴的な構成について説明するための図である。本実施の形態の情報処理装置は、複数の命令の命令コードを命令キュー(プリフェッチキュー)30−0,30−1・・・にフェッチするフェッチ回路20と、命令キュー30にフェッチされているデコード前の命令コード(ここではキュー1(30−1)に格納されている命令コード、キュー2(30−2)に格納されている命令コード)を入力し、所定のプリフィックス命令であるか否か判断し、プリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報をターゲット命令修飾情報レジスタ50に記憶させるプリフィックス命令専用デコード処理を行うプリフィックス命令専用デコード回路40と、命令キュー30にフェッチされているプリフィックス命令以外の命令コードを入力しデコードするデコード回路60と、デコードされた命令を実行する実行回路70を含む。
【0032】
図2(B)は、本実施の形態の情報処理装置の特徴的な動作について説明するための図である。
【0033】
ここで図1の▲1▼〜▲4▼の命令(sub、ext、ext、add)が命令キュー30−0,30−1・・・に格納されているとする。
【0034】
命令キュー0(30−0)に格納された第1の命令(ここではsub)がデコード回路60に渡されるとともに(s1)、命令キュー1(30−1)に格納された第2の命令(ここではext)、命令キュー2(30−2)に格納された第3の命令(ここではext)が、プリフィックス命令専用デコード回路40に入力され(s2,s3)、前記デコード回路60が第1の命令(ここではsub)のデコード中に、前記プリフィックス命令専用デコード回路40が第1の命令に続く第2の命令(ここではext)及び第3の命令(ここではext)についてプリフィックス命令専用デコード処理を行う。
【0035】
ここで、第2の命令(ここではext)および第3の命令(ここではext)は、プリフィックス命令であるため、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報がターゲット命令修飾情報レジスタ50に記憶される(s4)。
【0036】
次に、命令キュー1(30−1)に格納された第2の命令(ここではext)、命令キュー2(30−2)に格納された第3の命令(ここではext)はプリフィックス命令であるため、これらの命令はデコード回路に渡されず、命令キュー3(30−0)に格納された第4の命令(ここではadd)がデコード回路60に渡される(s5)。デコード回路では、ターゲット命令修飾情報レジスタ50に格納されている情報を入力して(S6)、第4の命令(ここではadd)についてプリフィックス命令に修飾されたターゲット命令として実行されるようにデコード処理を行う。
【0037】
このようにすることで実質上、プリフィックス命令の実行が0クロックとなる。
【0038】
なおここでは前記命令コードデコード回路がキュー1に格納されている命令コードの第1の命令のデコード中に、前記プリフィックス命令専用デコード回路が、キュー1(30−1)に格納されている命令コード及びキュー2(30−2)に格納されている第2の命令及び第3の命令についてプリフィックス命令専用デコード処理を行う場合について説明したがそれに限られない。
【0039】
例えば、1つのターゲット命令を修飾するプリフィックス命令が1つしかない場合には、前記命令コードデコード回路が第1の命令のデコード中に、前記プリフィックス命令専用デコード回路が第2の命令についてプリフィックス命令専用デコード処理を行うようにしてもよい。
【0040】
また例えば、1つのターゲット命令を修飾するプリフィックス命令がn個ある場合には、前記命令コードデコード回路が第1の命令のデコード中に、前記プリフィックス命令専用デコード回路が第2〜第n+1の命令についてプリフィックス命令専用デコード処理を行うようにしてもよい。
【0041】
図3は、本実施の形態のマイクロコンピュータ(広義には情報処理装置)の構成について説明するための機能ブロック図である。
【0042】
本実施の形態のマイクロコンピュータは、CPU(広義には、処理回路)10と、BCU(バスコントロールユニット)100とを含む。なおマイクロコンピュータ100は、これ以外にもROM(Read Only Memory)、RAM(Random Access Memory)、MMU(Memory Management Unit)、DMAC(Direct Access Memory Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
【0043】
CPU10は、ROMやRAMに記憶されたプログラムに従って、命令のフェッチ、命令のデコード、演算処理、レジスタへの書き込み等をパイプライン制御で行う。CPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
【0044】
BCU(バスコントロールユニット)100は、図示しない32ビットの命令データバスや、命令データアクセスのための命令アドレスバスや、32ビットのデータバスや、データアクセスのためのデータアドレスバスや、コントロール信号のためのコントロールバス等の各種バスのバスコントロール処理を行う。
【0045】
そしてこのCPU10は、前記各種バスを介して外部と信号のやり取りを行う。
【0046】
またCPU10は、フェッチ回路20、プリフィックス命令専用デコード回路40、デコード回路60、実行回路70、レジスタファイル80(汎用レジスタ82,特殊レジスタ84)、命令アドレスジェネレータ90等を含んで構成される。
【0047】
フェッチ回路20は、所定のターゲット命令と、該ターゲット命令の前におかれターゲット命令の機能を修飾するプリフィックス命令を含む複数の命令の命令コードを命令キュー(例えばプリフェッチキュー)30−0、30−1・・にプリフェッチする。
【0048】
プリフィックス命令専用デコード回路40は、所定の命令キュー(ここでは30−1、30−2)に信号線を介して接続され、所定の命令キューフェッチされているデコード前の命令コードを入力し、所定のプリフィックス命令であるか否か判断し、プリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報をターゲット命令修飾情報保持レジスタ50に記憶させる。
【0049】
デコード回路60は命令キューに信号線を介して接続され命令キューにフェッチされているプリフィックス命令以外の命令コードを入力しデコードする。
【0050】
また前記デコード回路は、ターゲット命令修飾情報レジスタ50に信号線を介して接続され、ターゲット命令修飾情報レジスタ50に記憶されているターゲット命令修飾情報を入力し、プリフィックス命令によって修飾されたターゲット命令のデコードを行うターゲット命令デコード回路62を含む。
【0051】
実行回路70は、前記デコード回路60がデコードした命令のオペレーション内容に基づき該命令の実行をおこなう。実行回路70は、データの演算を行うデータ演算回路72と、アドレスの演算を行うアドレス演算回路74を含み、必要に応じて汎用レジスタ84やメモリ(RAM等)にアクセスしてデコード回路60でデコードされた命令の機能を実行する。
【0052】
レジスタファイル90は、汎用レジスタR0〜R15の16本の汎用レジスタ、プログラムカウンタ(PC)、プロセッサーステータスレジスタ(PSR)、スタックポインタ(SP)、算術ローレジスタ(ALR)、算術ハイレジスタ(AHR)等のCPUで使用するレジスタを有している。
【0053】
命令アドレスジェネレータ90は、図示しないプログラムカウンタ等に基づき命令キューにフェッチする命令アドレスを生成する。
【0054】
図4はフェッチ回路の命令キューの具体的回路構成の一例について説明するための図である。
【0055】
フェッチ回路は、図示しないバスや信号線IRINを介して、ROMやRAMに記憶された命令コードを入力する。ここでは命令長は16ビットでデータ転送は32ビットで行われる場合について説明する。
【0056】
また命令キューQ0〜Q5は6個の命令キューを有し、6個の命令コードをフェッチ可能に構成されている。
【0057】
フェッチ回路は読み込んだ32ビットのデータをビット(31:16)部分とビット15:0)部分に分けQ0〜Q5に順番に格納し、順番にデコード、実行されるように制御する。例えば命令キューQ0〜Q5を順番に使用可能か否かを検索して、使用可能なキューに読み込んだ命令を格納するようにしてもよい。
【0058】
またフェッチ回路は、各クロック毎に命令キューQ0の出力がデコード回路に入力され、同じタイミングで命令キューQ1、Q2の出力がプリフィックス命令専用デコード回路に入力されるように制御する。
【0059】
そしてプリフィックス命令専用デコード回路40が命令キューQ1、Q2の命令が所定のプリフィックス命令であると判断した場合には、これらの命令はデコード回路に入力されないように制御する。例えば命令キューQ1、Q2の命令が所定のプリフィックス命令である場合には命令キューQ0に格納せず、Q3をQ0に格納することで、これらの命令はデコード回路に入力されないように制御してもよい。
【0060】
また命令キューQ5〜Q3に格納されている命令は、命令キューQ1又は命令キューQ2のいずれかを経由して命令キューQ0に格納されるように制御する。このようにすることで、各命令がプリフィックス命令専用デコード回路40によって、プリフィックス命令であるか否かを判断され、プリフィックス命令である場合にはプリフィックス命令専用のデコードを行わせることが出来る。
【0061】
なお上記例では命令コードの2倍の幅を有するバスに接続されて1クロックで2命令フェッチ可能な回路構成を例にとり説明したがそれに限られない。
【0062】
例えば命令コードの少なくとも3倍以上のバス幅を有するバスに接続され、前記バスを介して3命令以上の命令を1クロックで命令キューにフェッチするような構成にしてもよい。
【0063】
2.即値拡張プリフィックス命令
図5(A)は、即値拡張プリフィックス命令のターゲット命令となることが可能な命令の命令コード210のビットフィールドを示した図であり、図5(B)は、ext命令(即値拡張プリフィックス命令)の命令コード220のビットフィールドを示している。ビットフィールドの上の数字はビットの位置を示しており、同図(A)(B)に示すように、命令コードはビット15からビット0まで16ビット幅のフィールドを有している。
【0064】
図5(A)に示す即値拡張プリフィックス命令のターゲット命令となることが可能な命令の命令コード210は、ビット15からビット10に6ビットのオペコード指定領域212と、ビット9からビット4に6ビットの即値指定領域216と、ビット3からビット0に4ビットのレジスタ指定領域218を有している。
【0065】
オペコード指定領域212は、オペレーションの内容を特定するためのオペコードが格納されている。
【0066】
前記即値指定領域216には、6ビットの即値(imm6)の値が格納されており、レジスタ指定領域218には、いずれかの汎用レジスタ(rd)を示すコードが格納されている。
【0067】
ここで即値拡張プリフィックス命令のターゲット命令となることが可能な命令は、前記即値(imm6)と汎用レジスタ(rd)に対して前記オペコードで示される演算を行い、結果を汎用レジスタ(rd)に対して書き込む動作を行う命令である。
【0068】
また、図5(B)に示すように、ext命令(即値拡張プリフィックス命令)の命令コード220は、ビット15からビット13に3ビットのオペコード指定領域222と、ビット12からビット0に13ビットの即値を指定する領域224とを有している。
【0069】
オペコード指定領域212は、即値拡張プリフィックス命令であることを示すオペコードが格納されている。
前記即値を指定する領域224には、13ビットの即値(imm13)の値が格納されている。
【0070】
ext命令はプリフィックス命令であるため、単独ではCPUにおけるALUでの演算等の実行を何ら行わないが、後続のターゲット命令が実行される際に、そのターゲット命令の実行に使用する即値を拡張する機能を有する。例えば図5(A)の命令のように命令コードに即値を含んでいる命令がext命令のターゲット命令となった場合、ターゲット命令実行時に、ターゲット命令の命令コードに含まれる即値をext命令の6ビットの即値(imm6)を用いて拡張する機能を有する。
【0071】
ここでまずタイプ1命令が単独で実行された場合の実行内容について説明する。図3において、まず、タイプ1命令は図示しないROMから図示しない命令データバスを介して、フェッチ回路20により命令レジスタキュー30に格納される。 そして、プリフィックス命令専用デコード回路40でプリフィックス命令であるか否か判断される。
【0072】
そしてプリフィックス命令でないのでデコード回路60に入力され、デコードが行われる。このときデコード対象命令はターゲット命令ではないため、通常機能(プリフィックス命令で拡張されていない機能)用のデコードが行われ、通常機能で実行される。
【0073】
すなわち命令コードで指定された汎用レジスタ(rd)に格納されたデータがレジスタファイル80よりALU(データ演算回路72)に入力される。また、命令コードで指定された即値(imm6)は、命令デコード回路により切り出され、図示しない即値生成回路170で、前記即値(imm6)は32ビットにゼロ拡張あるいはサイン拡張され、前記拡張された即値はALU(データ演算回路72)に入力される。そしてALU(データ演算回路72)はタイプ1命令のオペコードで示される演算を行い、演算結果をレジスタファイル80の汎用レジスタ(rd)に格納する。
【0074】
このように即値拡張プリフィックス命令のターゲット命令となることが可能な命令は単独で実行することも出来るし、直前の1又は複数のext命令と組み合わせて実行することも可能である。ext命令と組み合わせて実行された場合は、まず命令キューに格納されているext命令がターゲット命令専用デコード回路(図3の40参照)でデコードされ、命令コードで指定された即値(図5(B)のimm13)が、ターゲット命令専用デコード回路により切り出され、ターゲット命令修飾情報レジスタ50に格納される。
【0075】
次にデコード回路にext命令に後続するターゲット命令が読み込まれ、ターゲット命令機能拡張回路(図3の62参照)によって、ターゲット命令修飾情報レジスタ(図3の50参照)に保持されている先のext命令の即値を用いてimm6の拡張が行われる。
【0076】
従って、即値拡張プリフィックス命令のターゲット命令となることが可能な命令が単独で実行されたか、直前の1又は複数のext命令と組み合わせて実行されたかにより、生成される拡張された即値が異なってくる。
【0077】
図6(A)〜(C)は、タイプ1命令のオペレーションを表した式と該オペレーションの実行に使用される拡張された即値のフィールド図である。
【0078】
図6(A)は、即値拡張プリフィックス命令のターゲット命令となることが可能な命令が単独で実行された場合のオペレーションを表した式と、実行に使用される拡張された即値230のビットフィールド図である。同図に示すように、タイプ1命令の6ビットの即値(imm6)がゼロ拡張又はサイン拡張のいずれかの方法で拡張されて32ビットの即値230となる。ゼロ拡張された場合は、ビット6からビット31の領域232はすべてゼロとなり、サイン拡張された場合は、ビット6からビット31の領域232は、すべてimm6の最上位ビットすなわちビット5と同じビットとなる。
【0079】
図6(B)は、直前の1のext命令と組み合わせて実行された場合のオペレーションを表した式と、該オペレーションの実行に使用される拡張された即値240のビットフィールド図である。同図に示すように、即値拡張プリフィックス命令のターゲット命令となることが可能な命令の6ビットの即値(imm6)がビット5からビット0のフィールド246にセットされ、直前の1のext命令の13ビットの即値(imm13)がビット18からビット6にセットされ、19ビットの即値(imm19)が生成される。そして、前記19ビットの即値(imm19)はゼロ拡張又はサイン拡張のいずれかの拡張方法で32ビットの即値240となる。ゼロ拡張された場合は、19ビットから31ビットの領域242はすべてゼロとなり、サイン拡張された場合は、19ビットから31ビットの領域242は、すべてimm19の最上位ビットすなわち18ビット目と同じビットとなる。
【0080】
図6(C)は、2個のext命令と組み合わせて実行された場合のオペレーションを表した式と、該オペレーションの実行に使用される拡張された即値250のビットフィールド図である。同図に示すように、即値拡張プリフィックス命令のターゲット命令となることが可能な命令の6ビットの即値(imm6)がビット5からビット0のフィールド256にセットされ、1回目のext命令の13ビットの即値(imm13)がビット31からビット19にセットされ、2回目のext命令の13ビットの即値(imm13)がビット18からビット6にセットされ、32ビットの即値(imm32)250が生成される。
【0081】
図7は、プリフィックス命令が即値拡張プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【0082】
命令キュー1に格納されている命令は、即値拡張プリフィックス命令か否か判断し、即値拡張プリフィックス命令である場合には以下の処理を行う(ステップS10)。
【0083】
まずターゲット命令修飾情報レジスタの即値拡張ステータスビットをONに、それ以外のステータスビットをOFFにセットする(ステップS20)。
【0084】
次に命令コードのimm13をターゲット命令修飾情報レジスタの即値拡張情報保持部に保持する(ステップS30)。
【0085】
そして命令キュー1の命令を無効にする(ステップS40)。ここで命令キュー1の命令を無効にするとは、命令キュー1の命令がデコード回路のデコード対象とならないように制御するために必要な処理を含む。
【0086】
図8は、即値拡張プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【0087】
デコード対象命令が、即値拡張プリフィックス命令のターゲット命令となれる命令か否か判断する(ステップS50)。ここでプリフィックス命令のターゲット命令となれる命令については予め規定されているので、デコード対象命令の命令コードと予め規定されている即値拡張プリフィックス命令のターゲット命令となれる命令の命令コードを比較して判断するようにしてもよい。
【0088】
デコード対象命令が即値拡張プリフィックス命令のターゲット命令となれる命令である場合には、即値拡張ステータスビットがONか否か判断する(ステップS60)。
【0089】
そして即値拡張ステータスビットがONである場合には、即値拡張情報保持部に保持されている即値を用いて、ターゲット命令の即値を拡張して、ターゲット命令が実行されるようにデコードする(ステップS70)。
【0090】
またデコード対象命令が即値拡張プリフィックス命令のターゲット命令となれる命令でない場合や、即値拡張ステータスビットがONでない場合にはデコード対象命令が通常機能でデコードされるようにデコードする(ステップS80)。
【0091】
3.シフトプリフィックス命令
図9(A)(B)(C)は、シフトプリフィックス命令について説明するための図である。
【0092】
図9(A)はシフトプリフィックス命令の命令コード310のビットフィールドを示した図である。
【0093】
同図に示すように、シフトプリフィックス命令の命令コード310は、ビット15からビット4のオペコード指定領域312と、ビット3の左シフトOR右シフト情報314、ビット2の論理シフトOR算術シフト情報316、ビット1〜ビット0にシフト値情報318を有している。シフト値情報318には、1〜4の範囲でシフト値を指定可能である。
【0094】
オペコード指定領域312には、シフトプリフィックス命令であることを示すオペコードが格納されている。
【0095】
図9(B)は、シフトプリフィックス命令のターゲット命令となることが可能なadd命令が単独で実行される場合のオペレーションについて説明するための図である。add命令が単独で実行されるとはadd命令がシフトプリフィックス命令のターゲット命令とならずに実行される場合を意味する。この場合には同図に示すように、レジスタ2と「3」を足した結果をレジスタ2に格納するオペレーションが行われる。
【0096】
図9(C)は、add命令が、シフトプリフィックス命令のターゲット命令として実行される場合のオペレーションについて説明するための図である。
【0097】
ここで先行するext命令(シフトプリフィックス命令)は、ターゲット命令の実行結果を右方向に1ビット論理シフトすることを指示するプリフィックス命令である(オペランドの’sr1’はshift right logicalを意味し、’1’は1ビットシフトすることを意味する)。
【0098】
この場合には同図に示すように、先行するext命令(シフトプリフィックス命令)の指示にしたがって、レジスタ2と「3」を足した結果を右方向に1ビット論理シフトし、レジスタ2に格納するオペレーションが行われる。
【0099】
図10は、プリフィックス命令がシフトプリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【0100】
命令キュー1に格納されている命令は、シフトプリフィックス命令か否か判断し、シフトプリフィックス命令である場合には以下の処理を行う(ステップS110)。
【0101】
まずターゲット命令修飾情報レジスタのシフトステータスビットをONに、それ以外のステータスビットをOFFにセットする(ステップS120)。
【0102】
次に命令コードの右シフトOR左シフト情報、論理シフトOR算術シフト情報、シフト値情報をターゲット命令修飾情報レジスタのシフト方向選択ビット、シフト種類選択ビット、シフト値指定部に保持する(ステップS130)。
【0103】
そして命令キュー1の命令を無効にする(ステップS140)。ここで命令キュー1の命令を無効にするとは、命令キュー1の命令がデコード回路のデコード対象とならないように制御するために必要な処理を含む。
【0104】
図11は、シフトプリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【0105】
デコード対象命令がシフトプリフィックス命令のターゲット命令となれる命令か否か判断する(ステップS150)。ここでシフトプリフィックス命令のターゲット命令となれる命令については予め規定されているので、デコード対象命令の命令コードと予め規定されているシフトプリフィックス命令のターゲット命令となれる命令の命令コードを比較して判断するようにしてもよい。
【0106】
デコード対象命令がシフトプリフィックス命令のターゲット命令となれる命令である場合には、シフトステータスビットがONか否か判断する(ステップS160)。
【0107】
そしてシフトステータスビットがONである場合には、ターゲット命令修飾情報レジスタのシフト方向選択ビット、シフト種類選択ビット、シフト値指定部に保持されている右シフトOR左シフト情報、論理シフトOR算術シフト情報、シフト値情報を用いて、ターゲット命令を実行し、演算結果をシフトする(ステップS170)。
【0108】
またデコード対象命令がシフトプリフィックス命令のターゲット命令となれる命令でない場合や、シフトステータスビットがONでない場合にはデコード対象命令が通常機能でデコードされるようにデコードする(ステップS180)。
【0109】
4.レジスタ拡張プリフィックス命令
図12(A)(B)(C)は、レジスタ拡張プリフィックス命令について説明するための図である。
【0110】
図12(A)は、レジスタ拡張プリフィックス命令の命令コードのビットフィールドを示した図である。同図に示すように、レジスタ拡張プリフィックス命令の命令コード320のビット15からビット4はオペコード指定領域322であり、ビット3〜ビット0はレジスタ拡張情報324である。
【0111】
オペコード指定領域332には、レジスタ拡張プリフィックス命令であることを示すオペコードが格納されている。レジスタ拡張情報324にはターゲット命令の実行時にレジスタディスティネーションとして使用されるレジスタ番号が記憶されている。
【0112】
図12(B)は、レジスタ拡張プリフィックス命令のターゲット命令となることが可能なadd命令が単独で実行される場合のオペレーションについて説明するための図である。add命令が単独で実行されるとはadd命令がレジスタ拡張プリフィックス命令のターゲット命令とならずに実行される場合を意味する。この場合には同図に示すように、レジスタ2と「3」を足した結果をレジスタ2に格納するオペレーションが行われる。
【0113】
図12(C)は、add命令が、レジスタ拡張プリフィックス命令のターゲット命令として実行される場合のオペレーションについて説明するための図である。この場合には同図に示すように、レジスタ2と「3」を足した結果を、先行するext命令(レジスタ拡張プリフィックス命令)で指定されたレジスタ1に格納するオペレーションが行われる。
【0114】
図13は、プリフィックス命令がレジスタ拡張プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【0115】
命令キュー1に格納されている命令は、レジスタ拡張プリフィックス命令か否か判断し、レジスタ拡張プリフィックス命令である場合には以下の処理を行う(ステップS210)。
【0116】
まずターゲット命令修飾情報レジスタのレジスタ拡張ステータスビットをONに、それ以外のステータスビットをOFFにセットする(ステップS220)。
【0117】
次に命令コードに基づきレジスタ拡張情報をターゲット命令修飾情報レジスタのレジスタ拡張情報保持部に保持する(ステップS230)。
【0118】
そして命令キュー1の命令を無効にする(ステップS240)。ここで命令キュー1の命令を無効にするとは、命令キュー1の命令がデコード回路のデコード対象とならないように制御するために必要な処理を含む。
【0119】
図14は、レジスタ拡張プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【0120】
デコード対象命令がレジスタ拡張プリフィックス命令のターゲット命令となれる命令か否か判断する(ステップS250)。ここでレジスタ拡張プリフィックス命令のターゲット命令となれる命令については予め規定されているので、デコード対象命令の命令コードと予め規定されているレジスタ拡張プリフィックス命令のターゲット命令となれる命令の命令コードを比較して判断するようにしてもよい。
【0121】
デコード対象命令がレジスタ拡張プリフィックス命令のターゲット命令となれる命令である場合には、レジスタ拡張ステータスビットがONか否か判断する(ステップS260)。
【0122】
そしてレジスタ拡張ステータスビットがONである場合には、ターゲット命令修飾情報レジスタの拡張レジスタ情報保持部に保持されている拡張レジスタ情報を用いて、ターゲット命令の実行時に使用するレジスタを拡張してターゲット命令が実行されるようにデコードする(ステップS270)。
【0123】
またデコード対象命令がレジスタ拡張プリフィックス命令のターゲット命令となれる命令でない場合や、レジスタ拡張ステータスビットがONでない場合にはデコード対象命令が通常機能でデコードされるようにデコードする(ステップS280)。
【0124】
5.実行制御プリフィックス命令
図15(A)(B)(C)は、実行制御プリフィックス命令について説明するための図である。
【0125】
図15(A)は、実行制御プリフィックス命令の命令コードのビットフィールドを示した図である。同図に示すように、実行制御プリフィックス命令の命令コード330のビット15からビット4はオペコード指定領域332であり、ビット3〜ビット0は実行制御条件判断コード334である。
【0126】
オペコード指定領域332には、実行制御プリフィックス命令であることを示すオペコードが格納されている。実行制御条件判断コード334は、「LT」「LE」「GT」「GE」「EQ」「NE」・・・等の各種実行制御条件判断コードが格納される。例えば「LT」は「cmp %R1、%R2」において「%R1が%R2より小さい」場合にターゲット命令をNOPにすることを示す。
【0127】
図15(B)は、実行制御プリフィックス命令の使用例について示した図であり、図15(C)は図15(B)の使用例のオペレーションについて説明するための図である。
【0128】
図15(C)及び図15(B)に示すように、ext命令(実行制御プリフィックス命令)は、cmp命令(比較命令)の後におかれ、ext命令(実行制御プリフィックス命令)の後にくるターゲット命令(ここではadd命令)の実行の有無を比較命令の比較結果によって制御する機能を有する。
【0129】
図16は、プリフィックス命令が実行制御プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【0130】
命令キュー1に格納されている命令は、実行制御プリフィックス命令か否か判断し、実行制御プリフィックス命令である場合には以下の処理を行う(ステップS310)。
【0131】
まずターゲット命令修飾情報レジスタの実行制御ステータスビットをONに、それ以外のステータスビットをOFFにセットする(ステップS320)。
【0132】
次に命令コードの実行制御判断コードをターゲット命令修飾情報レジスタの実行制御判断コード保持部に保持する(ステップS330)。
【0133】
そして命令キュー1の命令を無効にする(ステップS340)。ここで命令キュー1の命令を無効にするとは、命令キュー1の命令がデコード回路のデコード対象とならないように制御するために必要な処理を含む。
【0134】
図17は、実行制御プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【0135】
デコード対象命令が実行制御プリフィックス命令のターゲット命令となれる命令か否か判断する(ステップS350)。ここで実行制御プリフィックス命令のターゲット命令となれる命令については予め規定されているので、デコード対象命令の命令コードと予め規定されている実行制御プリフィックス命令のターゲット命令となれる命令の命令コードを比較して判断するようにしてもよい。
【0136】
デコード対象命令が実行制御プリフィックス命令のターゲット命令となれる命令である場合には、実行制御ステータスビットがONか否か判断する(ステップS360)。
【0137】
そして実行制御ステータスビットがONである場合には、ターゲット命令修飾情報レジスタの実行制御条件判断コード情報保持部に保持されている実行制御条件判断コードを用いて、ターゲット命令の実行の有無を判断してターゲット命令が実行されるようにデコードする(ステップS370)。
【0138】
またデコード対象命令が実行制御プリフィックス命令のターゲット命令となれる命令でない場合や、実行制御ステータスビットがONでない場合にはデコード対象命令が通常機能でデコードされるようにデコードする(ステップS380)。
【0139】
6.電子機器
次に、上述したマイクロコンピュータを含む電子機器について説明する。
例えば図18(A)に、電子機器の1つであるカーナビゲーションシステムの内部ブロック図を示し、図19(A)に、その外観図を示す。カーナビゲーションシステムの操作はリモコン710を用いて行われ、GPSやジャイロからの情報に基づいて位置検出部720が車の位置を検出する。地図などの情報はCDROM730(情報記憶媒体)に格納されている。メモリ740は画像処理や音声処理の際の作業領域になるメモリであり、生成された画像は画像出力部750を用いて運転者に表示される。また、生成されたカーナビゲーション用のガイド音声は、音出力部735を用いて運転者に出力される。マイクロコンピュータ700は、リモコン710、位置検出部720、CDROM730などの情報入力源から情報を入力し、種々の処理を行い、処理後の情報を、画像出力部750、音出力部735などの出力装置を用いて出力する。
【0140】
図18(B)に、電子機器の1つであるゲーム装置の内部ブロック図を示し、図19(B)に、その外観図を示す。このゲーム装置では、ゲームコントローラ760からのプレーヤの操作情報、CDROM770からのゲームプログラム、ICカード780からのプレーヤ情報等に基づいて、メモリ790を作業領域としてゲーム画像やゲーム音を生成し、画像出力部810、音出力部800を用いて出力する。
【0141】
図18(C)に電子機器の1つであるプリンタの内部ブロック図を示し、図19(C)にその外観図を示す。このプリンタでは、操作パネル820からの操作情報、コードメモリ830及びフォントメモリ840から文字情報に基づいて、ビットマップメモリ850を作業領域として、印刷画像を生成し、プリント出力部860を用いて出力する。またプリンタの状態やモードを表示パネル870を用いてユーザに伝える。
【0142】
なおマイクロコンピュータを適用できる電子機器としては、上記以外にも例えば、携帯電話(セルラーフォン)、PHS、ページャ、携帯型情報端末、デジタルカメラ、ハードディスク装置、光ディスク(CD、DVD)装置、光磁気ディスク(MO)装置、オーディオ機器、電子手帳、電子卓上計算機、POS端末、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、パーソナルコンピュータ、テレビ、ビューファインダ型、又はモニタ直視型のビデオテープレコーダなど種々のものを考えることができる。
【0143】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0144】
また、本発明の電子機器の構成も、図18(A)〜(C)、図19(A)〜(C)で説明したものに限定されるものでなく、種々の変形実施が可能である
【図面の簡単な説明】
【図1】従来のマイクロコンピュータ(広義には情報処理装置)におけるパイプライン制御の一例について説明するための図である。
【図2】図2(A)(B)は、本実施の形態の特徴について説明するための図である。
【図3】本実施の形態のマイクロコンピュータ(広義には情報処理装置)の構成について説明するための機能ブロック図である。
【図4】フェッチ回路の命令キューの具体的回路構成の一例について説明するための図である。
【図5】図5(A)(B)は、即値拡張プリフィックス命令及びそのターゲット命令について説明するための図である。
【図6】図6(A)〜(C)は、タイプ1命令のオペレーションを表した式と該オペレーションの実行に使用される拡張された即値のフィールド図である。
【図7】プリフィックス命令が即値拡張プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【図8】即値拡張プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【図9】図9(A)(B)(C)は、シフトプリフィックス命令について説明するための図である。
【図10】プリフィックス命令がシフトプリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【図11】シフトプリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【図12】図12(A)(B)(C)は、レジスタ拡張プリフィックス命令について説明するための図である。
【図13】プリフィックス命令がレジスタ拡張プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【図14】レジスタ拡張プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【図15】図15(A)(B)(C)は、実行制御プリフィックス命令について説明するための図である。
【図16】プリフィックス命令が実行制御プリフィックス命令である場合に、プリフィックス命令専用デコード回路が命令キューの命令をデコードする処理の流れを説明するためのフローチャート図である。
【図17】実行制御プリフィックス命令のターゲット命令を含むデコード対象命令をデコードする処理の流れを説明するためのフローチャート図である。
【図18】図18(A)(B)(C)は、マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図19】図19(A)(B)(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 CPU(広義には、処理回路)
20 フェッチ回路
30 命令キュー
40 プリフィックス命令専用デコード回路
50 ターゲット命令修飾情報レジスタ
60 デコード回路
62 ターゲット命令デコード回路
70 実行回路
72 データ演算回路
74 アドレス演算回路
80 レジスタファイル
82 汎用レジスタ
84 特殊レジスタ
90 命令アドレスジェネレータ
100 BCU(バスコントロールユニット))
700 マイクロコンピュータ
710 リモコン
720 位置検出部
735、800 音出力部
740 メモリ
750、810 画像出力部
770 CDROM
780 カード
790 ICメモリ
800 音出力部
820 操作パネル
830 コードメモリ
840 フォントメモリ
850 ビットマップメモリ
860 プリント出力部
870 表示パネル
Claims (7)
- パイプライン制御を行う情報処理装置であって、
所定のターゲット命令と、該ターゲット命令の前におかれターゲット命令の機能を修飾するプリフィックス命令を含む複数の命令の命令コードを命令キューにフェッチするフェッチ回路と、
命令キューにフェッチされているデコード前の命令コードを入力し、所定のプリフィックス命令であるか否か判断し、所定のプリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報をターゲット命令修飾情報レジスタに記憶するプリフィックス命令専用デコード処理を行うプリフィックス命令専用デコード回路と、
命令キューにフェッチされているプリフィックス命令以外の命令コードをデコード対象命令として入力しデコードするデコード回路を含み、
前記デコード回路は、
デコード対象命令がターゲット命令である場合には、ターゲット命令修飾情報保持レジスタに記憶されているターゲット命令修飾情報に基づき、プリフィックス命令によって修飾されたターゲット命令のデコードを行うように構成され、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行結果をシフトさせるためのシフトプリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードがシフトプリフィックス命令である場合には、シフトプリフィックス命令によって修飾されたターゲット命令の実行結果をシフトするために必要なシフト情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令がシフトプリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記シフト情報に基づき、シフトプリフィックス命令によって修飾されたターゲット命令の実行結果がシフトされてターゲット命令が実行されるようにデコードを行うことを特徴とする情報処理装置。 - パイプライン制御を行う情報処理装置であって、
所定のターゲット命令と、該ターゲット命令の前におかれターゲット命令の機能を修飾するプリフィックス命令を含む複数の命令の命令コードを命令キューにフェッチするフェッチ回路と、
命令キューにフェッチされているデコード前の命令コードを入力し、所定のプリフィックス命令であるか否か判断し、所定のプリフィックス命令である場合には、プリフィックス命令に修飾されたターゲット命令のデコードに必要な情報をターゲット命令修飾情報レジスタに記憶するプリフィックス命令専用デコード処理を行うプリフィックス命令専用デコード回路と、
命令キューにフェッチされているプリフィックス命令以外の命令コードをデコード対象命令として入力しデコードするデコード回路を含み、
前記デコード回路は、
デコード対象命令がターゲット命令である場合には、ターゲット命令修飾情報保持レジスタに記憶されているターゲット命令修飾情報に基づき、プリフィックス命令によって修飾されたターゲット命令のデコードを行うように構成され、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行の有無を制御するための実行制御プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードが実行制御プリフィックス命令である場合には、実行制御プリフィックス命令によって修飾されたターゲット命令の実行の有無を制御するために必要な実行制御情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令が実行制御プリフィックス命令のターゲット命令である場合には、タ ーゲット命令修飾情報レジスタに記憶されている前記実行制御情報に基づき、実行制御プリフィックス命令によって修飾されたターゲット命令の実行の有無を判断してターゲット命令が実行されるようにデコードすることを特徴とする情報処理装置。 - 請求項1乃至2のいずれかにおいて、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行に必要な即値を拡張させるための即値拡張プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードが即値拡張プリフィックス命令である場合には、即値拡張プリフィックス命令に修飾されたターゲット命令の実行時に即値を拡張するために必要な即値拡張情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令が即値拡張プリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記即値拡張情報に基づき、即値拡張プリフィックス命令によって修飾されたターゲット命令の実行時に即値が拡張されてターゲット命令が実行されるようにデコードを行うことを特徴とする情報処理装置。 - 請求項1乃至3のいずれかにおいて、
前記所定のプリフィックス命令は、該プリフィックス命令の機能拡張の対象となるターゲット命令の実行に必要なレジスタを拡張するためのレジスタ拡張プリフィックス命令を含み、
前記プリフィックス命令専用デコード回路は、
入力された命令コードがレジスタ拡張プリフィックス命令である場合には、レジスタ拡張プリフィックス命令によって修飾されたターゲット命令の実行時にレジスタを拡張するために必要なレジスタ拡張情報をターゲット命令修飾情報レジスタに記憶し、
前記デコード回路は、
デコード対象命令がレジスタ拡張プリフィックス命令のターゲット命令である場合には、ターゲット命令修飾情報レジスタに記憶されている前記レジスタ拡張情報に基づき、レジスタ拡張プリフィックス命令によって修飾されたターゲット命令の実行時にレジスタが拡張されてターゲット命令が実行されるようにデコードを行うことを特徴とする情報処理装置。 - 請求項1乃至4のいずれかにおいて、
前記フェッチ回路は、
命令コードの少なくとも2倍以上のバス幅を有するバスに接続され、前記バスを介して複数命令を1クロックで命令キューにフェッチすることを特徴とする情報処理装置。 - 請求項1乃至5のいずれかにおいて、
ターゲット命令は、当該ターゲット命令を修飾するプリフィックス命令の後に連続して配置され、
前記デコード回路が第1の命令のデコード中に、前記プリフィックス命令専用デコード回路が第1の命令に続く第2の命令についてプリフィックス命令専用デコード処理を行うことを特徴とする情報処理装置。 - 請求項1乃至6のいずれかに記載の情報処理装置と、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182766A JP3627725B2 (ja) | 2002-06-24 | 2002-06-24 | 情報処理装置及び電子機器 |
US10/601,136 US7340589B2 (en) | 2002-06-24 | 2003-06-20 | Shift prefix instruction decoder for modifying register information necessary for decoding the target instruction |
CNB031477313A CN1270232C (zh) | 2002-06-24 | 2003-06-23 | 信息处理装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182766A JP3627725B2 (ja) | 2002-06-24 | 2002-06-24 | 情報処理装置及び電子機器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004030015A JP2004030015A (ja) | 2004-01-29 |
JP3627725B2 true JP3627725B2 (ja) | 2005-03-09 |
Family
ID=31179177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002182766A Expired - Fee Related JP3627725B2 (ja) | 2002-06-24 | 2002-06-24 | 情報処理装置及び電子機器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7340589B2 (ja) |
JP (1) | JP3627725B2 (ja) |
CN (1) | CN1270232C (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8486081B2 (en) * | 2007-07-23 | 2013-07-16 | DePuy Synthes Products, LLC | Implant insertion device and method |
JP5217431B2 (ja) | 2007-12-28 | 2013-06-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP5357475B2 (ja) * | 2008-09-09 | 2013-12-04 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
JP5471082B2 (ja) * | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
JP5496602B2 (ja) | 2009-10-30 | 2014-05-21 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
WO2012144374A1 (ja) | 2011-04-21 | 2012-10-26 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
FR3021432B1 (fr) * | 2014-05-20 | 2017-11-10 | Bull Sas | Processeur a instructions conditionnelles |
GB2521019B (en) | 2014-05-27 | 2016-05-25 | Imagination Tech Ltd | Decoding instructions that are modified by one or more other instructions |
US9940242B2 (en) | 2014-11-17 | 2018-04-10 | International Business Machines Corporation | Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries |
US9733940B2 (en) | 2014-11-17 | 2017-08-15 | International Business Machines Corporation | Techniques for instruction group formation for decode-time instruction optimization based on feedback |
US9875107B2 (en) | 2015-01-19 | 2018-01-23 | International Business Machines Corporation | Accelerated execution of execute instruction target |
US10620957B2 (en) * | 2015-10-22 | 2020-04-14 | Texas Instruments Incorporated | Method for forming constant extensions in the same execute packet in a VLIW processor |
US20170185400A1 (en) | 2015-12-23 | 2017-06-29 | Intel Corporation | Mode-specific endbranch for control flow termination |
US9785800B2 (en) * | 2015-12-23 | 2017-10-10 | Intel Corporation | Non-tracked control transfers within control transfer enforcement |
US20170315807A1 (en) * | 2016-05-02 | 2017-11-02 | Oracle International Corporation | Hardware support for dynamic data types and operators |
US10761849B2 (en) * | 2016-09-22 | 2020-09-01 | Intel Corporation | Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction |
US11061724B2 (en) * | 2017-06-05 | 2021-07-13 | Marvell Asia Pte, Ltd. | Programmable hardware scheduler for digital processing systems |
US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
KR20230129559A (ko) * | 2022-01-26 | 2023-09-08 | 구글 엘엘씨 | 가변길이 명령어들을 사용하는 병렬 디코드 명령어 세트 컴퓨터 아키텍처 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
US5875315A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Parallel and scalable instruction scanning unit |
US5809273A (en) * | 1996-01-26 | 1998-09-15 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
JP3711422B2 (ja) | 1995-12-20 | 2005-11-02 | セイコーエプソン株式会社 | 情報処理回路 |
US5822559A (en) * | 1996-01-02 | 1998-10-13 | Advanced Micro Devices, Inc. | Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions |
JPH1124929A (ja) | 1997-06-30 | 1999-01-29 | Sony Corp | 演算処理装置およびその方法 |
US6418527B1 (en) * | 1998-10-13 | 2002-07-09 | Motorola, Inc. | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods |
US6260134B1 (en) * | 1998-11-02 | 2001-07-10 | Advanced Micro Devices, Inc. | Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte |
JP3570287B2 (ja) | 1999-03-31 | 2004-09-29 | セイコーエプソン株式会社 | マイクロコンピュータ |
KR100379837B1 (ko) | 2000-06-30 | 2003-04-11 | 주식회사 에이디칩스 | 확장명령어 축약장치 |
CN1142485C (zh) | 2001-11-28 | 2004-03-17 | 中国人民解放军国防科学技术大学 | 流水线控制相关延迟消除方法 |
-
2002
- 2002-06-24 JP JP2002182766A patent/JP3627725B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-20 US US10/601,136 patent/US7340589B2/en not_active Expired - Fee Related
- 2003-06-23 CN CNB031477313A patent/CN1270232C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004030015A (ja) | 2004-01-29 |
CN1270232C (zh) | 2006-08-16 |
CN1490726A (zh) | 2004-04-21 |
US20040039897A1 (en) | 2004-02-26 |
US7340589B2 (en) | 2008-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3627725B2 (ja) | 情報処理装置及び電子機器 | |
US20090235052A1 (en) | Data Processing Device and Electronic Equipment | |
JP5607832B2 (ja) | 汎用論理演算の方法および装置 | |
JP2001504959A (ja) | Riscアーキテクチャを有する8ビットマイクロコントローラ | |
US6530011B1 (en) | Method and apparatus for vector register with scalar values | |
US11237833B2 (en) | Multiply-accumulate instruction processing method and apparatus | |
US6499046B1 (en) | Saturation detection apparatus and method therefor | |
JP2565495B2 (ja) | デ−タ処理システム | |
JP4284559B2 (ja) | マイクロプロセッサ、マイクロコンピュータ、電子機器 | |
JP3164915B2 (ja) | データ処理装置及びそのデータ処理方法 | |
JP2007193572A (ja) | Cpu、集積回路装置、マイクロコンピュータ及び電子機器 | |
JP2007207075A (ja) | Cpu、集積回路装置、マイクロコンピュータ、電子機器、及びcpuの制御方法 | |
JPH03271829A (ja) | 情報処理装置 | |
JP3760999B2 (ja) | 情報処理装置、マイクロコンピュータ及び電子機器 | |
JP5753603B2 (ja) | データ要素内のビットをゼロ化するためのシステム、装置、および方法 | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JP5263498B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JPH04195629A (ja) | 演算フラグ生成装置 | |
JP2002182905A (ja) | ディジタル信号処理プロセッサ | |
JP2003233496A (ja) | マイクロプロセッサ | |
JPH11126200A (ja) | ベクトル処理装置 | |
JP2004288203A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
JPH11203133A (ja) | 情報処理装置 | |
JPH0520052A (ja) | マイクロプログラム制御装置 | |
JP2005157575A (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040824 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041021 |
|
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: 20041116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041129 |
|
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: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |