JP5496602B2 - データプロセッサ - Google Patents

データプロセッサ Download PDF

Info

Publication number
JP5496602B2
JP5496602B2 JP2009249853A JP2009249853A JP5496602B2 JP 5496602 B2 JP5496602 B2 JP 5496602B2 JP 2009249853 A JP2009249853 A JP 2009249853A JP 2009249853 A JP2009249853 A JP 2009249853A JP 5496602 B2 JP5496602 B2 JP 5496602B2
Authority
JP
Japan
Prior art keywords
instruction
code
prefix
length
decoder
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.)
Active
Application number
JP2009249853A
Other languages
English (en)
Other versions
JP2011096033A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009249853A priority Critical patent/JP5496602B2/ja
Priority to US12/915,158 priority patent/US8924689B2/en
Publication of JP2011096033A publication Critical patent/JP2011096033A/ja
Application granted granted Critical
Publication of JP5496602B2 publication Critical patent/JP5496602B2/ja
Priority to US14/565,234 priority patent/US20150095616A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units

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

本発明は、複数の命令長の命令が混在するマイクロプロセッサやマイクロコンピュータ等のデータプロセッサに係り、例えば、プレフィックスコードによって拡張された命令を実行可能なデータプロセッサに適用して有効な技術に関する。
今日のプロセッサは性能最優先のPC/サーバ用プロセッサと高効率と高性能の両立が求められる組込プロセッサに大別される。そして、高効率が求められる組込プロセッサでは、高コード効率の実現可能な16ビット固定長命令セットのRISC(Reduced Instruction Set Computer)型の組込プロセッサが普及している。高コード効率は、オフチップメモリの大容量化が進んだ現在においても、オンチップのキャッシュ、RAMやROMの有効活用には欠かせないものである。しかしながら、16ビット固定長命令セットでは、プログラムサイズを小さく出来る反面、命令数が増加する。特に、オペランド指定の制約から、レジスタ間転送、即値転送命令の命令数が増加する。また、増加した転送命令のレイテンシを隠蔽するために、転送先レジスタの代わりに転送元レジスタの値をフォワーディングするソースフォワーディングも一般的に使われている。命令数の増加は、性能低下や電力増加の原因となる。また、性能低下を補うソースフォワーディングはクリティカルパス及び論理規模の増加を通じて、動作周波数の低下及び電力増大の一因となっている。
こうした問題は16ビット固定長命令セットの命令コード空間が216B=64kBと、32ビット固定長命令セットの命令コード空間232B=4GBに比べて非常に小さいことに起因する。このため、例えば、非特許文献1のARM Thumb-2命令セットでは、16ビット固定長命令と32ビット固定長命令を混在させて命令コード空間を広げている。一方、特許文献1のプロセッサでは、16ビット固定長命令セットに16ビットプレフィックスを追加することにより命令コード空間を広げている。ここでいうプレフィックスとは、後続の命令コードの意味を変えたり、後続の命令コードに情報を追加したりする機能を持つ命令コードであり、プレフィックス単独では命令にはならない。尚、プレフィックスは1985年に発表されたインテル社のi386プロセッサが、それまで16ビットアーキテクチャであったプロセッサを、上位互換性を維持しつつ32ビットアーキテクチャにする際に使用しており、20年以上前から公知である。そして、i386プロセッサでは、後続命令コードのオペランドサイズの意味を変えるためにプレフィックスを使用している。また、i386プロセッサやその後継機種は全て可変長命令セットのCISC(Complicated Instruction Set Computer)型のプロセッサであるため、元々命令デコード回路が複雑であり、プレフィックス追加に伴う実現回路への影響は相対的に小さいと言える。
特許文献1におけるプレフィックスは、2オペランド命令にオペランドを追加して3オペランドにすること、レジスタ間接アドレッシングの命令にインデックスを追加してレジスタ相対間接アドレッシングの命令に変えること、及び、2オペランドのモディファイ型命令のソースオペランドを変更して3オペランド型の命令に変えることに使われている。また、特許文献1では、命令コードを16ビットずつデコードするスカラプロセッサを例に、実現方式を開示している。プレフィックスも1命令コードであるため、プレフィックス付き命令のデコードには2サイクルかかり、実行も2サイクルかかる。
特許文献2では、特許文献1のプロセッサを改良したプロセッサが開示されている。プレフィックスの機能としては、2オペランドのモディファイ型命令のデスティネーションオペランドを変更して3オペランド型に変えること、及び、リテラルオペランドのビット幅を拡張することを開示している。また、特許文献1において2サイクルかかっていたプレフィックス付き命令のデコードのうち、プレフィックスのデコードを先行命令と同時に行うことにより、プレフィックスのデコードサイクルを隠蔽し、プレフィックス付き命令の1サイクル実行を実現している。
16ビット固定長命令セットで、レジスタ指定フィールドが確保できないという問題に対処するための方式として、暗黙の固定レジスタ指定がある。非特許文献2、3に記載のSH-4Aでは、16本の汎用レジスタのうちの1本のレジスタR0を暗黙の固定レジスタとして使用する命令を定義している。そして、コンパイラのレジスタアロケーション時にこうした暗黙の固定レジスタ使用命令に優先的にR0を割り当てる。こうした命令を活用することにより、固定レジスタであることのデメリットを緩和している。しかし、固定オペランド指定によるレジスタ指定の自由度の低下を十分隠蔽できるとは限らない。特に、種々の命令セットアーキテクチャを同じコンパイル方式で扱おうとする複数プロセッサ向けコンパイラの提供者は、特定のアーキテクチャの長所は使用しない傾向が強い。このため、固定レジスタ使用命令の活用が不十分な場合がある。即ち、固定レジスタ使用命令は、レジスタ指定フィールドが確保できないという問題に対する十分な対応策とはいえず、更なる改善が必要であると言える。
特開2000−284962号公報 特開2004−030015号公報
Markus Levy, "ARM Grows More Thumbs," Microprocessor Report, 6/17/03-02, June 2003. SH-4Aソフトウェアマニュアル、[2009年10月19日検索]、Internet URL http://documentation.renesas.com/jpn/products/mpumcu/rjj09b0090_sh4a.pdf 、p.3-9〜p.3-19、表3.4,3.5, 3.6, 3.9, 3.10, 3.13 SH-4A Software Manual、[2009年10月19日検索]、Internet URL http://documentation.renesas.com/eng/products/mpumcu/rej09b0003_sh4a.pdf、pp.33-42、Table 3.4,3.5, 3.6, 3.9, 3.10, 3.13
前述のように、16ビット固定長命令コードの命令コード空間の小ささを補うための命令コード空間拡張方式として、16ビット固定長命令と32ビット固定長命令を混在させて命令コード空間を広げる方式と、16ビット固定長命令セットに16ビットプレフィックスを追加することにより命令コード空間を広げる方式とが開示されている。そして、後者では具体的に、2オペランド命令にオペランドを追加して3オペランドにすること、レジスタ間接アドレッシングの命令にインデックスを追加してレジスタ相対間接アドレッシングの命令に変えること、2オペランドのモディファイ型命令のソースオペランドまたはデスティネーションオペランドを変更して3オペランド型の命令に変えること、及び、リテラルオペランドのビット幅を拡張することが開示されている。また、命令コード空間を拡張せずにオペランド数を確保する方式として、暗黙の固定オペランド指定方式がある。
しかしながら、命令コード空間を拡張せずにオペランド数を確保することが可能であるという固定レジスタ使用命令の長所を生かそうとしても固定レジスタ使用命令だけでは対応できない場合に、命令コード空間を拡張したとき、転送命令の出現頻度を削減し、性能を向上し、消費電力を削減するには、上記引用文献では充分ではなかった。
本発明が解決しようとする第1の課題は、命令コードを修飾するプレフィックスコードによって命令コード空間を拡張したとき、転送命令の出現頻度の削減、性能の向上、消費電力の削減に資することができる命令デコード機能を備えたデータプロセッサを提供することにある。
本発明が解決しようとする第2の課題は、プレフィックス付きの命令を含む命令セットにおいて効率的なスーパースカラ命令発行を可能にすること、即ち、プレフィックス付きの命令もプレフィックス無しの命令と同等の発行効率とすることができる命令デコード機能を備えたデータプロセッサを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、第1の課題を解決するために、本発明では、下記機能変換または機能拡張をするプレフィックスコードを効率良くデコードするように、プレフィックスコードのデコード部と固定長命令のデコード部とを別々に備えてデコード機能を実現する。プレフィックスコードは、例えば前記固定レジスタ使用命令の固定レジスタを他のレジスタ又は即値に置換する機能を有する。別のプレフィックスコードにおいては、固定レジスタ使用命令の定義においてサイズの直交性を維持せずに、使用頻度の低いサイズの命令は固定レジスタ使用命令、使用頻度の高いサイズの命令はレジスタフィールドでレジスタを指定する命令として命令コードサイズを圧縮し、プレフィックスによって使用頻度の高いサイズの命令サイズを使用頻度の低いサイズに置換して、命令定義の直交性を確保する機能を備える。さらに、サイズ置換に要するオペランドフィールドは少ないため、他の拡張、たとえば、データの符号拡張/ゼロ拡張、即値やディスプレースメントのビット幅の拡張を、前記サイズ変更機能に加えて、一つのプレフィックスコードとすることにより、プレフィックスコードによる命令定義拡張機能を強化するものである。さらに別の観点によるプレフィックスコードは、プレフィックスコードを後続する命令の種別によって変えるものである。
上記手段によれば、例えば、プレフィックス付きの命令をデコードするために、プレフィックス無しの固定長命令のデコーダに、プレフィックスコードのデコーダが追加される。このように、既存の固定長命令デコード構成はそのままに、プレフィックスコードのデコーダが追加された構成であるので、既存の固定長命令の実行に対して影響を無くすことができる。また、固定長命令の実行時には、プレフィックスコードのデコーダの動作を停止させることで電力消費を抑えることができる。そして、製品の多品種展開時、プレフィックスコードが不要である場合は、デコードモジュールが分けられていることにより、論理を合成する時に、削除することで、プロセッサの面積及び消費電力を削減できる。
第2の課題を解決するために、固定長命令の命令コードか、プレフィックスコードかを判定し、その判定結果と前記命令コードとを出力する命令フェッチ部を採用すると共に、その判別結果に基づいて命令コードとプレフィックスコードを夫々別々にデコードするデコーダを採用する。さらに、プレフィックスはこれが修飾する固定長命令コードよりも先にデコーダに供給されることにより、プレフィックスコードのデコード結果によって固定長命令のデコード動作を修飾することができる。前記プレフィックスコードは後続の固定長命令コードを修飾するから、プレフィックスコードに後続する固定長命令コードは、対応するプレフィックスコードのデコーダと同じパイプラインのデコーダに供給される。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、命令コードを修飾するプレフィックスコードによって命令コード空間を拡張したとき、転送命令の出現頻度の削減、性能の向上、消費電力の削減に資することができる。
また、プレフィックス付きの命令を含む命令セットにおいて効率的なスーパースカラ命令発行を可能にすることができる。
図1はプレフィックスコードを利用して可変長命令を実行可能なデータプロセッサにおける命令フェッチユニット及び命令デコードユニットを例示する実施の形態1のブロック図である。 図2は命令フェッチユニットFTCにおける属性信号と選択信号を生成する構成を概略的に示すブロック図である。 図3は選択制御回路による選択信号の生成形態を例示する説明図である。 図4はデータプロセッサ内の動作モード制御部として、固定長命令動作モードと可変長命令動作モードの切り替えを制御するモード制御論理の構成を例示するブロック図である。 図5は図1の命令デコードユニットを採用したデータプロセッサの全体的な構成を例示するブロック図である。 図6は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合の命令フェッチユニットの例を示す実施の形態2のブロック図である。 図7は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合のさらに別の命令フェッチユニットの例を示す実施の形態3のブロック図である。 図8は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合のさらに別の命令フェッチユニットの例を示す実施の形態4のブロック図である。 図9は16ビット固定長命令のほかにプレフィックス付き可変長命令及び非プレフィックス可変長命令を実行可能なデータプロセッサにおける命令フェッチユニット及び命令デコードユニットが例示される実施の形態5のブロック図である。 図10は図9の命令フェッチユニットにおける属性信号と選択信号を生成する構成が概略的に示されるブロック図である。 図11は図10の選択制御回路による選択信号の生成形態を例示する説明図である。 図12は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合の命令デコードユニットの例を示す実施の形態6のブロック図である。 図13は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合の別の命令デコードユニットの例を示す実施の形態7のブロック図である。 図14は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合のさらに別の命令デコードユニットの例を示す実施の形態8のブロック図である。 実施の形態7,8の場合においてタイミング制御回路STMGEが実現するように選択信号S0〜S3の選択形態を例示する説明図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るデータプロセッサは、第1の命令長の固定長命令に対応する第1モード、及び前記第1の命令長の固定長命令にプレフィックスを付して第2の命令長とする可変長命令に対応する第2モードを有する。このデータプロセッサは、入力された命令が、前記第1モードにおける固定長命令か、前記第2モードにおける可変長命令の一部である固定長命令か、又は前記第2モードにおける可変長命令の一部であるプレフィックスかを判定するためのプリデコードを行う第1、第2、第3及び第4プリデコーダ(FPD0〜FPD3)と、第1プレフィックスコードデコード部(DB0,PRFDEC1)及び第1固定長命令デコード部(DB1,BDYDEC1)を有する第1パイプライン(Pipe1)と、第2プレフィックスコードデコード部(DB2,PRFDEC2)及び第2固定長命令デコード部(DB3,BDYDEC2)を有する第2パイプライン(Pipe2)と、前記第1、第2、第3又は第4プリデコーダの出力から一つを選択して前記第1固定長命令デコード部へ出力するための第1セレクタ(SELB)と、前記第1、第2、第3又は第4プリデコーダの出力から一つを選択して前記第2固定長命令デコード部へ出力するための第2セレクタ(SELD)と、前記第1、第2、第3又は第4プリデコーダの出力から一つを選択して前記第1プレフィックスコードデコード部へ出力するための第3セレクタ(SELA)と、前記第1、第2、第3又は第4プリデコーダの出力から一つを選択して前記第2プレフィックスコードデコード部へ出力するための第4セレクタ(SELC)とを有する。
前記第1モードにおいては、前記第1プリデコーダに第1固定長命令が入力され、前記第2プリデコーダに第2固定長命令が入力され、前記第3プリデコーダに第3固定長命令が入力され、前記第4プリデコーダに第4固定長命令が入力され、前記第1プリデコーダは前記第1固定長命令をプリデコードし、前記第2プリデコーダは前記第2固定長命令をプリデコードし、前記第3プリデコーダは前記第3固定長命令をプリデコードし、前記第4プリデコーダは前記第4固定長命令をプリデコードし、前記第1セレクタは、前記第1から第4プリデコーダの出力から1つを選択し前記第1固定長命令デコード部へ出力し、前記第2セレクタは、前記第1から第4プリデコーダの出力から1つを選択し前記第2固定長命令デコード部へ出力する。
前記第2モードにおいては、前記第1プリデコーダに、第1可変長命令の一部である第1プレフィックス、前記第1可変長命令の一部である第3固定長命令、第2可変長命令の一部である第2プレフィックス又は前記第2可変長命令の一部である第4固定長命令が入力され、前記第2プリデコーダに、前記第1可変長命令の一部である第1プレフィックス、前記第1可変長命令の一部である第3固定長命令、第2可変長命令の一部である第2プレフィックス又は前記第2可変長命令の一部である第4固定長命令が入力され、前記第3プリデコーダに、前記第1可変長命令の一部である第1プレフィックス、前記第1可変長命令の一部である第3固定長命令、第2可変長命令の一部である第2プレフィックス又は前記第2可変長命令の一部である第4固定長命令が入力され、前記第4プリデコーダに、前記第1可変長命令の一部である第1プレフィックス、前記第1可変長命令の一部である第3固定長命令、第2可変長命令の一部である第2プレフィックス又は前記第2可変長命令の一部である第4固定長命令が入力され、前記第1プリデコーダは、前記第1プレフィックス、前記第3固定長命令、前記第2プレフィックス又は前記第4固定長命令をプリデコードし、前記第2プリデコーダは、前記第1プレフィックス、前記第3固定長命令、前記第2プレフィックス又は前記第4固定長命令をプリデコードし、前記第3プリデコーダは、前記第1プレフィックス、前記第3固定長命令、前記第2プレフィックス又は前記第4固定長命令をプリデコードし、前記第4プリデコーダは前記第1プレフィックス又は前記第3固定長命令又は前記第2プレフィックス又は前記第4固定長命令をプリデコードし、前記第3セレクタ又は前記第4セレクタは、前記第1プリデコーダ、前記第2プリデコーダ、前記第3プリデコーダ又は前記第4プリデコーダの出力から1つを選択し前記第1プレフィックスコードデコード部又は前記第2プレフィックスコードデコード部へ出力し、前記第1セレクタ又は前記第2セレクタは、前記第1プリデコーダないしは前記第4プリデコーダの出力から1つを選択し前記第1固定長命令デコード部又は前記第2固定長命令デコード部へ出力する。
〔2〕項1のデータプロセッサは、前記第1モードにおいて、前記第1及び第2プレフィックスコードデコード部への電力供給が遮断される。
〔3〕項1のデータプロセッサにおいて、前記第1、第2、第3、及び第4プリデコーダには、前記入力された命令が、前記第1モードにおける固定長命令か、前記第2モードにおける可変長命令の一部である固定長命令か、又は前記第2モードにおける可変長命令の一部であるプレフィックスかを示す命令属性信号を出力する。
〔4〕項1のデータプロセッサは、前記第1モードにおいて、前記第1及び第2プレフィックスコードデコード部の動作を停止し、又は前記第1及び第2プレフィックスコードデコード部を無効化する設定をするためのモードレジスタをさらに有する。
〔5〕本発明の別の実施の形態に係るデータプロセッサは、第1のコード長の命令コードから成る第1の命令と、後続される前記命令コードをプレフィックスコードで修飾した第2のコード長の第2の命令とを、実行可能な命令セットとして有する。このデータプロセッサは、複数個を単位として命令をフェッチする命令レジスタ部(IREG0〜IREG3)と、前記命令レジスタ部にフェッチされた複数個の命令を夫々解読して、前記第1の命令における命令コード、前記第2の命令における命令コード、又は前記第2の命令におけるプレフィックスコードの何れであるかを判別するプリデコーダ(FPD0〜FPD3)と、前記命令レジスタ部にフェッチされた命令の前記命令コードを解読する第1のデコーダ(BDYDEC1,BDYDEC2)と、前記命令レジスタ部にフェッチされた命令の前記プレフィックスコードをデコードする第2のデコーダ(PRFDEC1,PRFDEC2)と、前記プリデコーダによる判別結果(A0〜A3)に基づいて前記命令コードを前記第1のデコーダに供給し前記プレフィックスコードを前記第2のデコーダに供給する選択部(SEL0〜SEL3,SELA〜SELD)とを有する。前記選択部は、前記第1の命令に対してはその命令コードを前記第1のデコーダに供給し、前記第2の命令に対してはそのプレフィックスコードを前記第2のデコーダに供給した後に、当該プレフィックスコードで修飾される命令コードを前記第1のデコーダに供給する。
これによれば、プレフィックス付きの命令をデコードするために、プレフィックス無しの命令のデコーダはそのままにして、プレフィックスコードのデコーダを追加したから、既存の固定長命令の実行に対する影響を無くすことができる。また、プレフィックスコードはこれが修飾する固定長の命令コードよりも先にデコーダに供給されることにより、プレフィックスコードのデコード結果によって固定長命令のデコード動作を修飾することができる。
〔6〕項5のデータプロセッサにおいて、複数のパイプライン(Pipe1,Pipe2)で命令を実行するために前記第1のデコーダ及び第2のデコーダのペアをパイプラインの数に応じて備えるとき、前記選択部は、前記プリデコーダによる判別結果に基づいて、前記第2の命令を構成する命令コード及びプレフィックスコードを同じパイプラインの第1のデコーダ及び第2のデコーダに供給する制御を行う。前記プレフィックスコードは後続の固定長の命令コードを修飾するから、プレフィックスコードの後続の命令コードが、プレフィックスコードのデコーダと同じパイプラインのデコーダに供給されることによって、プレフィックス付きの命令を含む命令セットにおいて効率的なスーパースカラ命令発行を可能にすることができる。
〔7〕項5のデータプロセッサにおいて、前記第1の命令だけを実行する第1モードにおいて前記第2の命令デコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示される。これにより、データプロセッサによる電力消費を抑えることができる。また、製品の多品種展開時、プレフィックスコードが不要である場合は、命令コードとプレフィックスコードとの間でデコーダが分けられているから、論理を合成する時に、プレフィックスコードのデコーダを削除することで、プロセッサの面積及び消費電力を削減することができる。
〔8〕項5のデータプロセッサにおいて、前記プリデコーダは、第1の命令における命令コード、前記第2の命令における命令コード、又は前記第2の命令におけるプレフィックスコードの何れであるかを示す属性信号(A0〜A3)を出力する。この属性信号を用いることによって前記選択部は命令コードとプレフィックスコードの供給先の制御を容易に行うことができる。
〔9〕項5のデータプロセッサにおいて、前記第1の命令だけを実行する第1のモード又は前記第1の命令及び第2の命令の双方を実行する第2のモードを指定するモードレジスタ(MR1,MR2)を有する。ダイナミックに動作モードの切り替えを行うことが可能になる。
〔10〕本発明の更に別の実施の形態に係るデータプロセッサは、第1のコード長の第1の命令コードから成る第1の命令と、後続される前記第1の命令コードをプレフィックスコードで修飾した第2のコード長の第2の命令と、第2のコード長の第2の命令コードから成る第3の命令とを、実行可能な命令セットとする。このデータプロセッサは、複数個を単位として命令をフェッチする命令レジスタ部(IREG0〜IREG3)と、前記命令レジスタ部にフェッチされた複数個の命令を夫々解読して、前記第1の命令における第1の命令コード、前記第2の命令における第1の命令コード、前記第2の命令におけるプレフィックスコード、又は第3の命令における第2の命令コードの何れであるかを判別するプリデコーダ(FPD0〜FPD3)と、前記命令レジスタ部にフェッチされた前記第1の命令コードを解読する第1のデコーダ(BDYDEC1,BDYDEC2)と前記命令レジスタ部にフェッチされた第2の命令の前記プレフィックスコードをデコードする第2のデコーダ(PREDEC1,PREDEC2)と、前記命令レジスタ部にフェッチされた前記第2の命令コードを解読する第3のデコーダ(32UDEC,32LDEC)と、前記プリデコーダ(FPDE0〜FPDE3)による判別結果(A0〜A3)に基づいて前記第1の命令コードを前記第1デコーダに供給し、前記プレフィックスコードを前記第2のデコーダに供給し、前記第2の命令コードを前記第3デコーダに供給する選択部(SEL0〜SEL3、SELA〜SELD)とを有する。前記選択部は、第1の命令に対してはその第1の命令コードを前記第1のデコーダに供給し、前記第2の命令に対してはそのプレフィックスコードを前記第2のデコーダに供給した後に、当該プレフィックスコードで修飾される第1の命令コードを前記第1デコーダに供給し、第3の命令に対してはその第2の命令コードを前記第3のデコーダに供給する。
第2の命令に対するネイティブ命令としての第3の命令が混在しても、それに対応して項5と同様の作用効果を奏する。
〔11〕項10のデータプロセッサにおいて、複数のパイプライン(Pipe1,Pipe2)で命令を実行するために前記第1のデコーダ及び第2のデコーダのペアをパイプラインの数に応じて備える。前記選択部は、前記プリデコーダによる判別結果に基づいて、前記第2の命令を構成する第1の命令コード及びそれに対応するプレフィックスコードを同じパイプラインの第1のデコーダ及び第2のデコーダに供給する制御を行う。
〔12〕項10のデータプロセッサは、前記第1の命令だけを実行する動作モードにおいて前記第2の命令デコーダ及び第3の命令デコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示され、前記第1の命令及び第2の命令だけを実行する動作モードにおいて前記第3の命令デコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示される。
〔13〕項10のデータプロセッサにおいて、前記プリデコーダは、第1の命令における第1の命令コード、前記第2の命令における第1の命令コード、前記第2の命令におけるプレフィックスコード、又は第3の命令における第2の命令コードの何れであるかを示す属性信号(A0〜A3)を出力する。
〔14〕項10のデータプロセッサはさらに、前記第1の命令だけを実行する第1モード、前記第1の命令及び第2の命令の双方を実行する第2モード又は前記第1の命令乃至第3の命令の何れも実行する第3モードを指定するモードレジスタを有する。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
先ず、第1のコード長例えば16ビットの第1の命令コード(固定長命令コード)から成る第1の命令(固定長命令)と、後続される前記第1の命令コードをプレフィックスコード(例えば16ビット)で修飾した第2のコード長(32ビット)の第2の命令(可変長命令、プレフィックス付き可変長命令)とを、実行可能な命令セットとして有するデータプロセッサについて説明する。ここでは特に、上記第1の命令と第2の命令との双方に対応可能な可変長命令デコードユニットについて説明する。概略的には、既存の固定長命令デコード部に可変長命令デコード部を追加することで、必要時に可変長命令デコード部を動作させ、プレフィックス付きの命令を実行可能に命令デコードユニットを構成する。これにより、既存の固定長命令実行に対する影響は無い。固定長命令実行時はデコード論理の一部である可変長命令デコード部のみ動作を停止させることが可能となり、データプロセッサの低消費電力化に寄与する。さらには可変長命令が不要な場合は、命令デコードユニットの論理合成に際して可変長命令デコード部を削除することも容易になる。以下、詳細に説明する。
図1はプレフィックスコードを利用して可変長命令を実行可能なデータプロセッサにおける命令フェッチユニットFTC及び命令デコードユニットDECが例示される。
命令フェッチユニットFTCは、特に制限されないが、夫々16ビットの4個の命令レジスタIREG0〜IREG3を有する。便宜上、命令レジスタIREG0〜IREG3にフェッチされたコードをI0〜I3として表す。命令レジスタIREG0〜IREG3には図示を省略する命令フェッチ制御ロジックの動作に従って命令フェッチサイクル単位で夫々命令がフェッチされる。特に制限されないが、ここでは理解を容易化するために、命令レジスタIREG0〜IREG3に対する命令フェッチは固定長命令と可変長命令が混在されてもよいが、可変長命令は、当該64ビットの中で連続的に完結しなければならないものとする。要するに、32ビットの一つの可変長命令はプレフィックスコードに修飾されるべき16ビットの命令コードの直前に配置され、1回でフェッチされる命令レジスタIREG0〜IREG3中に存在されなければならない、したがってレジスタIREG3にはプレフィックスコードはフェッチされない。命令フェッチユニットFTCは、コードI0〜I3と共に、そのコードの属性を示す属性信号A0〜A3及び選択信号S0〜S3を命令デコードユニットDECに出力する。属性信号A0〜A3及び選択信号S0〜S3については命令デコードユニットDECと共に説明する。
命令デコードユニットDECは、コードI0〜I3毎にプリデコーダDPD0〜DPD3を有する。プリデコーダDPD0〜DPD3は夫々、プリデコードロジックPRDECと属性信号A0〜A3の分配回路DSBを有する。特に制限されないが、プリデコーダDPD0〜DPD3は、命令フェッチユニット(FTC、)内のプリデコーダ(FPD0〜FPD3)からの属性信号(A0〜A3)を基に、入力された命令が、前記第1のコード長の固定長命令か、前記第2のコード長の可変長命令の一部である固定長命令か、又は前記第2のコード長の可変長命令の一部であるプレフィックスかの判定を行い、固定長16ビット命令の実行時にタイミング制約が厳しくなる16ビットの命令コード、及びプレフィックス付き命令実行時にタイミング制約が厳しくなるプレフィックスコードに対して予め一部のデコードを行う。プレフィックスコードのプリデコードでは、プレフィック付き命令の特定の種類(例えば、固定レジスタを他のレジスタ又は即値に置換する場合)のプレフィックスコードをデコードし、プレフィックス付き命令実行に必要となる制御信号等が予めプリデコーダで生成される。
プリデコーダDPD0〜DPD3の出力及びそれに対応する前記属性情報A0〜A3は次に説明するデコーダによって解読されて実行されることになる。命令デコードユニットDECは、固定長命令コードをデコードする固定長命令デコーダBDYDEC1,BDYDEC2と、プレフィックスコードをデコードするプレフィックスデコーダPRFDEC1,PRFDEC2とを別々に備える。ここで説明するデータプロセッサは2本のパイプラインPipe1,Pipe2で命令を実行する2ウェイ形態のスーパースカラプロセッサとして構成され、固定長命令デコーダBDYDEC1及びプレフィックスデコーダPRFDEC1はパイプラインPipe1に対応され、固定長命令デコーダBDYDEC2及びプレフィックスデコーダPRFDEC2はパイプラインPipe2に対応される。固定長命令デコーダBDYDEC1,BDYDEC2と、プレフィックスデコーダPRFDEC1,PRFDEC2の前段に配置されたDB1,DB3とDB0,DB2はプリデコーダDPD0〜DPD3の出力及び対応する前記属性情報A0〜A3を受取るバッファとされ、デコーダの入力バッファ、或いはセレクタの出力バッファと理解して差し支えない。尚、デコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2に入力されるデコード対象は便宜上Ih〜Ikとして図示され、前記属性情報は便宜上Ah〜Akとして図示される。
プリデコーダDPD0〜DPD3とデコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2との間にはセレクタSEL0〜SEL3、SELA〜SELDが配置される。セレクタSEL0〜SEL3、SELA〜SELDはコードIh,Ii,Ij,IkとコードI0,I1,I2,I3との対応を決定し、属性信号Ah,Ai,Aj,Akと属性信号A0,A1,A2,A3,との対応を決定する。セレクタSEL0,SELAによる選択状態は選択信号S0によって決定され、セレクタSEL1,SELBによる選択状態は選択信号S1によって決定され、セレクタSEL2,SELCによる選択状態は選択信号S2によって決定され、セレクタSEL3,SELDによる選択状態は選択信号S3によって決定される。
図2には命令フェッチユニットFTCにおける属性信号A0〜A3と選択信号S0〜S3を生成する構成が概略的に示される。属性信号A0〜A3は、コードI0〜I3を16ビット単位で夫々プリデコードするプリデコーダFPD0〜FPD3によって生成される。プリデコーダFPD0〜FPD3は、入力された16ビットのコードI0〜I3が、16ビット固定長命令コードであるか、16ビットのプレフィックスコードであるか、もしくは、32ビットのネイティブ命令(非プレフィックスコードの可変長命令コード)であるかを判定し、その判定結果に応じたコードの属性信号A0〜A3を出力する。特に制限されないが、入力された命令コードが固定長命令コードである場合は、固定長命令コードを示すビットパターン(例えば3’b001)を出力する。同様に、命令コードがプレフィックスコードである場合は、プレフィックスコードを示すビットパターン(例えば3’b100)、非プレフィックスコードの可変長命令コードである場合は、非プレフィックス32ビット命令コードを示すビットパターン(例えば3’b010)を出力する。
選択信号S0〜S3は、特に制限されないが、属性信号A0〜A3とその他の制御信号CHGに基づいて選択制御回路STMGが生成する。
図3には選択制御回路STMGによる選択信号S0〜S3の生成形態が例示される。2ウェイスーパースカラにおける各パイプラインでの命令実行サイクルを1サイクルとし、命令レジスタIREG0〜IREG3にフェッチされた命令は2サイクル単位で実行されていくものとすると、パイプラインPipe1のデコーダBDYDEC1,PRFDEC1とパイプラインPipe2のデコーダBDYDEC2,PRFDEC2とは1サイクル単位で1個ずつコードを入力してデコードを行う。ここでは、16ビット固定長命令又はプレフィックスを用いた32ビット可変長命令だけを実行することを想定するから、前述の命令レジスタIREG0〜IREG3の命令フェッチの条件に従えば、フェッチの態様はA〜Eの5態様とされ、そのフェッチの態様に従ってサイクルCYC1とサイクルCYC2で順次命令コードと属性情報がセレクタで選択された対応するデコーダに供給される。CYC1,CYC2は夫々命令実行サイクルの1サイクルを意味する。図3の標記においてI16(x)のI16は固定長命令コードを意味し、(x)はそのコードが命令レジスタIREGxに格納されたものであることを意味する。Iprf(x)のIprfはそれがプレフィックスコードであることを意味し、(x)は上記同様である。態様B,C,D,Eに例示されるように、プレフィックスコードを用いた32ビットの可変長命令に対しては、そのプレフィックスコードを先にプレフィックスデコーダPRFDEC1又はPRFDEC2に供給した後に、当該プレフィックスコードで修飾される命令コードを対応するパイプラインの命令デコードBDYDEC1又はBDYDEC2に供給する。これによれば、プレフィックス付きの命令をデコードするために、プレフィックス無しの命令のデコーダはそのままにして、プレフィックスコードのデコーダを追加したから、既存の固定長命令の実行に対する影響を無くすことができる。また、プレフィックスコードはこれが修飾する固定長の命令コードよりも先にデコーダに供給されることにより、プレフィックスコードのデコード結果によって固定長命令のデコード動作を修飾することができる。
制御信号CHGは例えばパイプラインPipe1に供給する命令とパイプラインPipe2に供給する命令との切り替えなどに用いられる。例えば態様AにおいてI16(0),I16(1)をパイプラインPipe2に、I16(2),I16(3)をパイプラインPipe1にするように、制御信号CHGで指示することができる。選択制御回路STMGは便宜上フェッチユニットFTCに配置されているが、デコードユニットDEC等に配置してよいことは言うまでもいない。
命令デコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2は属性情報Ah〜Akを受取ることによって、入力されたコードの種別を認識してデコード動作を行うことが可能になる。例えば、プレフィックスデコーダPRFDEC1,PRFDEC2はAh,Ajによってプレフィックスコードであることが通知されない場合にその動作を停止する。これにより、プレフィックス付き命令の使用頻度が低い場合にプレフィックスを利用する可変長命令の不使用時にクロック入力を停止させることで、消費電力を抑えることが可能となる。更に、制御精度を高め、動的に可変長命令デコード部のオン/オフを制御することで消費電力の最適化を図ることも可能となる。これと同様の低消費電力制御を命令デコーダBDYDEC1,BDYDEC2も同様に属性情報Ai,Akを利用して行うことができる。
図4にはデータプロセッサ内の動作モード制御部として、固定長命令動作モードと可変長命令動作モードの切り替えを制御するモード制御論理の構成が例示される。この論理は、3個のモードレジスタMR1〜MR3を持ち、モードレジスタMR1〜MR3の出力を入力して、設定された動作モードを検出する検出器DTを備える。モードレジスタMR1〜MR3は、データプロセッサの動作モードの種類を示しており、図4の例では、次の3つのモードを制御する。MR1は固定長命令のみ実行可能な動作モードを指定するモードレジスタ、MR2は固定長命令及びプレフィックス付き命令を実行可能な動作モードを指定するモードレジスタ、MR3は固定長命令、プレフィックス付き命令、及び非プレフィックス可変長命令を実行可能な動作モードを指定するモードレジスタである。各モードレジスタMR1〜MR3は、どれか1つのみが設定される場合もあれば、複数のモードレジスタが設定される場合もある。複数のモードレジスタが設定されている時は、検出器DTがモード選択を決める必要がある。例えば、モードレジスタ番号が小さい方を選択する場合もあれば、逆にモードレジスタ番号が大きい方を選択する場合もある。
各モードレジスタMR1〜MR3がセットされている場合について説明する。モードレジスタはどれか1つのみが設定される場合を想定する。モードレジスタMR1が設定されている時は、固定長命令のみ実行可能な動作モードである。この時、検出器DTからは、プレフィックス無効信号PRFDECinvとネイティブ命令無効信号32bDECinvが共にイネーブルにされて出力される。モードレジスタMR2が設定されている時は、固定長命令とプレフィックス付き命令が実行可能なモードにされる。この時、検出器DTからは、32bDECinvがイネーブルとして出力される。モードレジスタMR3が設定されている時は、固定長命令とプレフィックス付き命令、及び非プレフィックス可変長命令が実行可能なモードである。この時、検出器DTはプレフィックス無効信号PRFDECinvとネイティブ命令無効信号32bDECinvの双方を無効にする。PRFDECinvは、プレフィックスデコーダPRFDEC1,PRFDEC2の動作を止める、もしくは、プレフィックスデコーダPRFDEC1,PRFDEC2の動作を無効化する信号であり、この信号PRFDECinvが有効にされると、プレフィックスデコーダPRFDEC1,PRFDEC2のクロック入力が停止され、或いは動作電源の入力を遮断する。特に図1の構成では関係ないが(後述する図9,12,13,14の構成において関係する)、32bDECinvは、非プレフィックスコードの可変長命令コードデコード部の動作を停止し、或いは無効化する信号であり、32bDECinvが有効にされると、非プレフィックスコードの可変長命令コードデコード部は、入力クロックを停止し動作を止め、もしくは、非プレフィックスコードの可変長命令コードデコード部への電源供給を遮断する。これらの動作により、前記属性信号に基づく低消費電力に加えて、さらにデータプロセッサの消費電力を抑えることができる。
図5には上記命令デコードユニットを採用したデータプロセッサの全体的な構成が例示される。データプロセッサMPUは複数個のプロセッサコアCPUを中心に、これに内部バスで接続されたメモリMEM、外部インタフェース回路EIF、及び内蔵周辺モジュールPER等を一個又は複数個備える。データプロセッサMPUは、特に制限されないが、単結晶シリコンのような1個の半導体基板に相補型MOS集積回路製造技術等によって形成される。夫々のプロセッサコアCPUは、上記命令デコードユニットを採用し、命令をフェッチして実行することによって所要のプログラム処理機能を実現する。
《実施の形態2》
図6は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合の命令フェッチユニット及び命令デコードユニットの例が示される。図1と異なる点は、プレフィックスコードをデコードするための構成が省かれ、命令フェッチユニットの命令レジスタ数も2個に縮減している点である。例えば、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述、例えば、固定長命令以外の命令セットが不要な時に、固定長命令デコード部以外の論理が合成されず、命令レジスタ数も半減させるようなオプション記述をすることによって、固定長命令セットしか使わないデータプロセッサにおいて、固定長命令デコード部のみが合成されたフェッチユニット及び命令デコードユニットが構成される。図6にはこの例が示される。
図6の構成は、固定長命令のみが存在するデータプロセッサに含まれ、不要なデコード論理が削除され、デコードユニットにおいてデコーダは2つの固定長命令デコーダBDYDEC1,BDYDEC2、プリデコーダDPD1,DPD3、及びセレクタSEL1,SELB,SEL3,SELDで構成される。命令フェッチユニットは命令レジスタIREG1,IREG3を備えると共に、属性信号A1,A3と選択信号S1,S3の生成機能を備える。この場合、タイミング制御回路STMGは、I16(1)をBDYDEC1に、I16(3)をBDYDEC2に供給する選択形態、又は、I16(1)をBDYDEC2に、I16(3)をBDYDEC1に供給する選択形態を採ればよい。何れを選択するかは制御信号CHGで制御すればよい。その他の点は実施の形態1と同様であるからその詳細な説明は省略する。
《実施の形態3》
図7は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合のさらに別の命令フェッチユニット及び命令デコードユニットの例が示される。図1と異なる点は、固定長命令だけしか実行できないようにしたものであり、命令レジスタの規模は図1と同等としたものである。例えば、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述、例えば、固定長命令以外の命令セットが不要な時には、固定長命令デコード部以外の論理が合成されないようなオプション記述をすることなどによって、固定長命令セットしか使わないデータプロセッサにおいて、固定長命令デコード部のみが合成されたフェッチユニット及び命令デコードユニットが構成される。図7にはこの例が示される。
図7の構成は、固定長命令のみが存在するデータプロセッサに含まれ、不要なデコード論理が削除され、デコードユニットにおいてデコーダは2つの固定長命令デコーダBDYDEC1,BDYDEC2とされ、プリデコーダDPD0〜DPD3、及びセレクタSEL0〜SEL3,SELA〜SELDはそのままにされ、デコーダBDYDEC1の入力にはDB0,DB1の出力が共通接続され、デコーダBDYDEC2の入力にはDB2,DB3の出力が共通接続されて構成される。この場合、タイミング制御回路STMGは、図3のAの態様を実現できればよい。上記同様に制御信号CHGを用いて命令を供給するパイプラインをそれとは逆に制御してよいことは言うまでもない。尚、論理合成時のオプション記述等によって、DB0〜DB3は固定長命令コードであることを示すコードが入力されていないとき、命令コード及び属性情報の出力を高インピーダンス状態に制御する機能が付加されている。その他の点は実施の形態1と同様であるからその詳細な説明は省略する。
《実施の形態4》
図8は論理合成に際して図1のデータプロセッサに対してその機能を縮減した場合のさらに別の命令フェッチユニット及び命令デコードユニットの例が示される。図1と異なる点は、固定長命令だけしか実行できないようにし、さらに、DB0〜DB3と命令デコーダBDYDEC1,BDYDEC2との間に命令分配回路SDBを配置し、命令レジスタの規模は図1と同等としたものである。上述と同様に、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述などによって、図8の構成が実現される。
図8の構成は、固定長命令のみが存在するデータプロセッサに含まれ、不要なデコード論理が削除され、デコードユニットにおいてデコーダは2つの固定長命令デコーダBDYDEC1,BDYDEC2とされ、プリデコーダDPD0〜DPD3、及びセレクタSEL0〜SEL3,SELA〜SELDはそのままにされ、デコーダBDYDEC1,BDYDEC2の入力にはそれぞれ、DB0,DB1,DB2,DB3の出力が共通接続されて構成される。この場合、タイミング制御回路STMGは、図3のAの態様を実現できればよい。この場合には、DB0〜DB3に対する高インピーダンス制御を要しない。命令分配回路SDBが命令実行のための同期クロックに従って図3の態様Aに従った命令分配制御を行えばよい。要するに、選択信号S0〜S3を命令分配回路SDBに供給し、その代わりに、プリデコーダDPD0〜DPD3の出力を直接命令分配回路SDBに供給するように構成すればよく、論理合成時にその指示を前述と同様にRTLのオプション記述で行うようにしてもよい。上記同様に制御信号CHGを用いて命令を供給するパイプラインをそれとは逆に制御してよいことは言うまでもない。その他の点は実施の形態1と同様であるからその詳細な説明は省略する。
《実施の形態5》
次に、第1のコード長例えば16ビットの第1の命令コード(固定長命令コード)から成る第1の命令(固定長命令)と、後続される前記第1の命令コードをプレフィックスコード(例えば16ビット)で修飾した第2のコード長(32ビット)の第2の命令(プレフィックス付き可変長命令)と、第2のコード長の第2の命令コードから成る第3の命令(非プレフィックス可変長命令、32ビットネイティブ命令、)とを、実行可能な命令セットとするデータプロセッサについて説明する。ここでは特に、上記第1の命令、第2の命令及び第3の命令の夫々に対応可能な可変長命令デコードユニットについて説明する。概略的には、既存の16ビット固定長命令デコード部にプレフィックス付き可変長命令デコード部と非プレフィックス可変長命令デコード部を追加することで、必要に応じてプレフィックス付き可変長命令デコード部又は非プレフィックス可変長命令デコード部を動作させ、プレフィックス付きの命令と非プレフィックス可変長命令を実行可能とするように命令デコードユニットを構成する。これにより、既存の固定長命令実行に対する影響は無い。固定長命令実行時はデコード論理の一部であるプレフィックス付き可変長命令デコード部及び非プレフィックス可変長命令デコード部の動作を停止させることが可能となり、データプロセッサの低消費電力化に寄与する。さらにはプレフィックス付き可変長命令又は非プレフィックス可変長命令が不要な場合は、命令デコードユニットの論理合成に際してそれらに対応する可変長命令デコード部を削除することも容易になる。以下、詳細に説明する。
図9は16ビット固定長命令のほかにプレフィックス付き可変長命令及び非プレフィックス可変長命令を実行可能なデータプロセッサにおける命令フェッチユニットFTCE及び命令デコードユニットDECEが例示される。
命令フェッチユニットFTCEは、特に制限されないが、夫々16ビットの4個の命令レジスタIREG0〜IREG3を有する。便宜上、命令レジスタIREG0〜IREG3にフェッチされたコードをI0〜I3として表す。命令レジスタIREG0〜IREG3には図示を省略する命令フェッチ制御ロジックの動作に従って命令フェッチサイクル単位で夫々命令がフェッチされる。特に制限されないが、ここでは理解を容易化するために、命令レジスタIREG0〜IREG3に対する命令フェッチは16ビット固定長命令、プレフィックス付き可変長命令及び非プレフィックス可変長命令が混在されてもよいが、可変長命令は、当該64ビットの中で連続的に完結しなければならないものとする。要するに、32ビットの一つの可変長命令はプレフィックスコードに修飾されるべき16ビットの命令コードの直前に配置され、1回でフェッチされる命令レジスタIREG0〜IREG3中に存在されなければならない。したがってレジスタIREG3にはプレフィックスコードはフェッチされない。非プレフィックス可変長命令についても同様である。命令フェッチユニットFTCEは、コードI0〜I3と共に、そのコードの属性を示す属性信号A0〜A3及び選択信号S0〜S3を命令デコードユニットDECに出力する。属性信号A0〜A及び選択信号S0〜S3については命令デコードユニットDECと共に説明する。
命令デコードユニットDECEは、コードI0〜I3毎にプリデコーダDPD0〜DPD3を有する。プリデコーダDPD0〜DPD3は夫々、プリデコードロジックPRDECと属性信号A0〜A3の分配回路DSBを有する。プリデコーダDPD0〜DPD3は、特に制限されないが、命令フェッチユニット(FTCE)内のプリデコーダからの属性信号(A0〜A3)を基に、入力された命令が、前記第1のコード長の固定長命令か、前記第2のコード長の可変長命令の一部である固定長命令か、又は前記第2のコード長の可変長命令の一部であるプレフィックスかの判定を行い、16ビット固定長命令の実行時にタイミング制約が厳しくなる16ビット固定長命令、32ビットの非プレフィックス可変長命令の実行時にタイミング制約が厳しくなる非プレフィックス可変長命令、及びプレフィックス付きか変調命令の実行時にタイミング制約が厳しくなるプレフィックス付き可変長命令に対して予め一部のデコードを行う。プレフィックスコードのプリデコードでは、プレフィック付き命令の特定の種類(例えば、固定レジスタを他のレジスタ又は即値に置換する場合)のプレフィックスコードをデコードし、プレフィックス付き命令実行に必要となる制御信号等が予めプリデコーダで生成される。
プリデコーダDPD0〜DPD3の出力及びそれに対応する前記属性情報A0〜A3はデコーダによって解読されて処理されることになる。命令デコードユニットDECEはデコーダとして、16ビット固定長命令コードをデコードする固定長命令デコーダBDYDEC1,BDYDEC2、16ビットのプレフィックスコードをデコードするプレフィックスデコーダPRFDEC1,PRFDEC2、及び32ビットの非プレフィックス可変長命令をデコードする32ビットデコーダ32b−Dとを別々に備える。図9において32ビットデコーダ32b−Dは上位側32UDDECと下位側32LDEDCに分けて図示されているが、上位及び下位の双方を併せて単一のデコード論理を構成するものであることは言うまでもない。
ここで説明するデータプロセッサは、16ビット固定長命令及びプレフィックス付き可変長命令の実行に関しては2本のパイプラインPipe1,Pipe2で命令を実行する2ウェイ形態のスーパースカラプロセッサとして構成され、固定長命令デコーダBDYDEC1及びプレフィックスデコーダPRFDEC1はパイプラインPipe1に対応され、固定長命令デコーダBDYDEC2及びプレフィックスデコーダPRFDEC2はパイプラインPipe2に対応される。固定長命令デコーダBDYDEC1,BDYDEC2と、プレフィックスデコーダPRFDEC1,PRFDEC2の前段に配置されたDB1,DB3とDB0,DB2はプリデコーダDPD0〜DPD3の出力及び対応する前記属性情報A0〜A3を受取るバッファとされ、デコーダの入力バッファ、或いはセレクタの出力バッファと理解して差し支えない。32ビットデコーダ32b−Dの上位側32UDECにはバッファDB1を介してプリデコーダDPD0〜DPD3の出力及び対応する前記属性情報A0〜A3が供給され、32ビットデコーダ32b−Dの下位側32LDECにはバッファDB2を介してプリデコーダDPD0〜DPD3の出力及び対応する前記属性情報A0〜A3が供給される。尚、デコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2,32b−Dに入力されるデコード対象は便宜上Ih〜Ikとして図示され、前記属性情報は便宜上Ah〜Akとして図示される。
プリデコーダDPD0〜DPD3とデコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2,32b−Dとの間にはセレクタSEL0〜SEL3、SELA〜SELDが配置される。セレクタSEL0〜SEL3、SELA〜SELDはIh,Ii,Ij,IkとI0,I1,I2,I3との対応を決定し、Ah,Ai,Aj,AkとA0,A1,A2,A3,との対応を決定する。セレクタSEL0,SELAによる選択状態は選択信号S0によって決定され、セレクタSEL1,SELBによる選択状態は選択信号S1によって決定され、セレクタSEL2,SELCによる選択状態は選択信号S2によって決定され、セレクタSEL3,SELDによる選択状態は選択信号S3によって決定される。
図10には図9の命令フェッチユニットFTCEにおける属性信号A0〜A3と選択信号S0〜S3を生成する構成が概略的に示される。属性信号A0〜A3は、コードI0〜I3を16ビット単位で夫々プリデコードするプリデコーダFPDE0〜FPDE3によって生成される。プリデコーダFPDE0〜FPDE3は、入力された16ビットのコードI0〜I3が、16ビット固定長命令コードであるか、16ビットのプレフィックスコードであるか、もしくはそれ以外(32ビットの非プレフィック可変長命令)であるかを判定し、その判定結果し応じたコードの属性信号A0〜A3を出力する。特に制限されないが、入力された命令コードが固定長命令コードである場合は、固定長命令コードを示すビットパターン(例えば3’b001)を出力する。同様に、命令コードがプレフィックスコードである場合は、プレフィックスコードを示すビットパターン(例えば3’b100)、非プレフィックスコードの可変長命令コードである場合は、非プレフィックス32ビット命令コードを示すビットパターン(例えば3’b010)を出力する。
選択信号S0〜S3は、特に制限されないが、属性信号A0〜A3とその他の制御信号CHGに基づいて選択制御回路STMGEが生成する。
図11には選択制御回路STMGEによる選択信号S0〜S3の生成形態が例示される。2ウェイスーパースカラにおける各パイプラインでの命令実行サイクルを1サイクルとし、命令レジスタIREG0〜IREG3にフェッチされた命令は2サイクル単位で実行されていくものとすると、パイプラインPipe1のデコーダBDYDEC1,PRFDEC1とパイプラインPipe2のデコーダBDYDEC2,PRFDEC2とは1サイクル単位で1個ずつコードを入力してデコードを行う。32ビットの非プレフィックス可変長命令については、デコーダBDYDEC1と32UDECがコードの入力経路を共用し、デコーダBDYDEC2と32LDECがコードの入力経路を共用している関係から、命令レジスタIREG0〜IREG3に2個の32ビット非プレフィックス可変長命令がフェッチされている場合は、命令毎にサイクル単位で命令が32ビットデコーダ32b−Dに供給される。それ以外の場合には、16ビット毎にサイクル単位で別々に上位32UDEC、下位32LDECに供給され、32ビットデコーダ32b−Dへの命令供給には2サイクルを要する。
よって、前述の命令レジスタIREG0〜IREG3の命令フェッチの条件に従えば、フェッチの態様はA〜Kの11態様とされ、そのフェッチの態様に従ってサイクルCYC1とサイクルCYC2で順次命令コードと属性情報がセレクタで選択された対応するデコーダに供給される。図11の標記においてI16(x)のI16は固定長命令コードを意味し、(x)はそのコードが命令レジスタIREGxに格納されたものであることを意味する。Iprf(x)のIprfはそれがプレフィックスコードであることを意味し、(x)は上記同様である。I32U(x)のI32Uは非プレフィックス可変長命令の上位16ビットを意味し、同じく、I32L(x)のI32Lは非プレフィックス可変長命令の上位16ビットを意味する。
態様A〜Eは図3同じである。態様B,C,D,E,I,Jに例示されるように、プレフィックスコードを用いた32ビットの可変長命令に対しては、そのプレフィックスコードを先にプレフィックスデコーダPRFDEC1又はPRFDEC2に供給した後に、当該プレフィックスコードで修飾される命令コードを対応するパイプラインの命令デコードBDYDEC1又はBDYDEC2に供給する。これによれば、プレフィックス付きの命令をデコードするために、プレフィックス無しの命令のデコーダはそのままにして、プレフィックスコードのデコーダを追加したから、既存の固定長命令の実行に対する影響を無くすことができる。また、プレフィックスコードはこれが修飾する固定長の命令コードよりも先にデコーダに供給されることにより、プレフィックスコードのデコード結果によって固定長命令のデコード動作を修飾することができる。
態様F,G,H,I,Jに示されるように、32ビットの非プレフィックス可変長命令とその他の命令が混在してレジスタIREG0〜IREG3にフェッチされている場合には、非プレフィックス可変長命令は2サイクルを要してデコーダ32b−Dに供給される。態様Kに示されるように、32ビットの非プレフィックス可変長命令が2命令連続してレジスタIREG0〜IREG3にフェッチされている場合には、夫々の非プレフィックス可変長命令は1サイクル毎にデコーダ32b−Dに供給される。
制御信号CHGは例えばパイプラインPipe1に供給する命令とパイプラインPipe2に供給する命令との切り替えなどに用いられる。例えば態様AにおいてI16(0),I16(1)をパイプラインPipe2に、I16(2),I16(3)をパイプラインPipe1にするように、制御信号CHGで指示することができる。選択制御回路STMGEは便宜上フェッチユニットFTCEに配置されているが、デコードユニットDECE等に配置してもよいことは言うまでもいない。
命令デコーダPRFDEC1,BDYDEC1,PRFDEC2,BDYDEC2,32b−Dは属性情報Ah〜Akを受取ることによって、入力されたコードの種別を認識してデコード動作を行うことが可能になる。例えば、プレフィックスデコーダPRFDEC1,PRFDEC2はAh,Akによってプレフィックスコードであることが通知されない場合にその動作を停止する。これにより、プレフィックス付き命令使用頻度が低い場合にプレフィックスを利用する可変長命令の不使用時にクロック入力を停止させることで、消費電力を抑えることが可能となる。更に、制御精度を高め、動的に可変長命令デコード部のオンオフを制御することで消費電力の最適化を図ることも可能となる。これと同様の低消費電力制御を命令デコーダBDYDEC1,BDYDEC2,32b−Dも同様に属性情報Ai,Ajを利用して行うことができる。
図9に基づいて説明している実施の形態5のデータプロセッサは既に図4に基づいて説明した動作モード制御部として、固定長命令動作モードと可変長命令動作モードの切り替えを制御するモード制御論理を備える。前述のように、MR1は固定長命令のみ実行可能な動作モードを指定するモードレジスタ、MR2は固定長命令及びプレフィックス付き命令を実行可能な動作モードを指定するモードレジスタ、MR3は固定長命令、プレフィックス付き命令、及び非プレフィックス可変長命令を実行可能な動作モードを指定するモードレジスタである。モードレジスタMR1が設定されている時は、固定長命令のみ実行可能な動作モードであり、プレフィックス無効信号PRFDECinvとネイティブ命令無効信号32bDECinvが共にイネーブルにされ、プレフィックスデコーダPRFDEC1,PRFDEC2と32ビットデコーダ32b−Dのクロック入力が停止され、或いは動作電源の入力が遮断される。モードレジスタMR2が設定されている時は、固定長命令とプレフィックス付き命令が実行可能なモードであり、32bDECinvがイネーブルとして出力され、32ビットデコーダ32b−Dのクロック入力が停止され、或いは動作電源の入力が遮断される。モードレジスタMR3が設定されている時は、固定長命令とプレフィックス付き命令、及び非プレフィックス可変長命令が実行可能なモードとされ、プレフィックス無効信号PRFDECinvとネイティブ命令無効信号32bDECinvの双方が無効にされ、デコーダPRFDEC1,PRFDEC2,32b−D、BDYDEC1,BDYDEC2へのクロック入力又は動作電源の入力は遮断されない。これらの動作により、前記属性信号に基づく低消費電力に加えて、さらにデータプロセッサの消費電力を抑えることができる。
図9のデータプロセッサも代表的に図5で説明したモジュール構成を採ることができる。
《実施の形態6》
図12は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合の命令フェッチユニット及び命令デコードユニットの例が示される。図9と異なる点は、DB0〜DB3と命令デコーダBDYDEC1,BDYDEC2、PRFDEC1,PRFDEC2,32b−Dとの間に命令分配回路SDBEを配置したものである。上述と同様に、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述などによって、図12の構成が実現される。この場合、命令分配回路SDBEは単なる2次的なバッファであってもよいし、選択信号S0〜S3によって選択動作を行うセレクタSEL0〜SEL3の全体と同様の選択動作を再度行ってもよい。その他の点は実施の形態5と同様であるからその詳細な説明は省略する。
《実施の形態7》
図13は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合の別の命令フェッチユニット及び命令デコードユニットの例が示される。図9と異なる点は、プレフィックスコードをデコードするための構成が省かれている点である。例えば、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述、例えば、プレフィックス付き可変長命令の命令セットが不要な時に、プレフィックス付き可変長命令のデコード論理が合成されないようなオプション記述をすることによって、16ビット固定長命令及び非プレフィックス可変長命令の命令セットしか使わないデータプロセッサの命令デコードユニットが構成される。図13にはこの例が示される。特にこの例では、固定長命令のデコーダBDYDEC1がバッファDB0に、固定長命令のデコーダBDYDEC2がバッファDB3に接続されている。この場合、タイミング制御回路STMGEは、図15に例示される態様を実現するように選択信号S0〜S3を生成すればよい。前述同様に16ビット固定長命令を供給するパイプラインPipe1,Pipe2の切換えは制御信号CHGで指示すればよい。その他の点は実施の形態5と同様であるからその詳細な説明は省略する。
《実施の形態8》
図14は論理合成に際して図9のデータプロセッサに対してその機能を縮減した場合のさらに別の命令フェッチユニット及び命令デコードユニットの例が示される。図14の構成は図13に対して、DB0〜DB3と命令デコーダBDYDEC1,BDYDEC2,32b−Dとの間に命令分配回路SDBEを配置したものである。上述と同様に、データプロセッサの論理合成に際して、RTL(Register Transfer Logic)記述におけるオプション記述などによって、図14の構成が実現される。この場合、命令分配回路SDBEは単なる2次的なバッファであってもよいし、選択信号S0〜S3によって選択動作を行うセレクタSEL0〜SEL3の全体と同様の選択動作を再度行ってもよい。選択信号S0〜S3による選択論理は図15で説明した論理と同じである。その他の点は実施の形態5と同様であるからその詳細な説明は省略する。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、固定長命令の命令コードは16ビットに限定されず32ビット等であってもよく、また、プレフィックスコードも16ビットに限定されず32ビット等であってもよい。命令フェッチユニットにおける命令レジスタの数は固定長命令の4個分に限定されず、8個等であってもよい。また、パイプライン本数も2本に限定されず4本などであってもよい。命令の属性情報に従って命令レジスタの命令を供給する供給先にはプリデコーダがあってもよい。前記供給先のデコーダはプリデコーダであっても本デコーダであってもよい。命令属性を判別し属性信号を出力するプリデコーダはフェッチユニットに配置する場合に限定されず、命令デコードユニット又はその他の回路ユニットに配置してもよい。DB0〜DB3やSDBに代表されるバッファは省略可能である。
FTC、FTCE 命令フェッチユニット
DEC、DECE 命令デコードユニット
IREG0〜IREG3 命令レジスタ
I0〜I3 フェッチされたコード
A0〜A3 属性信号
S0〜S3 選択信号
DPD0〜DPD3 プリデコーダ
BDYDEC1,BDYDEC2 固定長命令デコーダ
PRFDEC1,PRFDEC2 プレフィックスデコーダ
Pipe1,Pipe2 パイプライン
SEL0〜SEL3、SELA〜SELD セレクタ
Ih,Ii,Ij,Ik 選択されたコード
Ah,Ai,Aj,Ak 選択された属性信号
FPD0〜FPD3、FPDE0〜FPDE3 属性信号を得るプリデコーダ
STMG、STMGE 選択制御回路
MR1〜MR3 モードレジスタ
PRFDECinv プレフィックス無効信号
32bDECinv ネイティブ命令無効信号
32b−D 32ビットフルデコーダ
32UDEC 32ビットフルデコーダの上位論理
32LDEC 32ビットフルデコーダの下位論理

Claims (14)

  1. データプロセッサであって、
    前記データプロセッサは少なくとも2つのモードを有し、
    前記少なくとも2つのモードのうちの第1モードでは、前記データプロセッサは、第1の命令長の命令コードからなる第1の命令長の第1の種類の命令のみを実行するものであり、
    前記少なくとも2つのモードのうちの第2モードでは、前記データプロセッサは、前記第1の種類の命令と、プレフィックスコードと前記第1の命令長の前記命令コードからなる第2の命令長の第2の種類の命令のいずれをも実行しうるものであり、
    前記データプロセッサは、
    入力された命令が、前記第1の命令長の前記命令コードか、前記プレフィックスコードかを判定するためのプリデコードを行う第1、第2、第3及び第4プリデコーダと、
    第1プレフィックスコードデコード部及び第1固定長命令デコード部を有する第1パイプラインと、
    第2プレフィックスコードデコード部及び第2固定長命令デコード部を有する第2パイプラインと、
    前記第1、第2、第3及び第4プリデコーダの出力から一つを選択して前記第1固定長命令デコード部へ出力するための第1セレクタと、
    前記第1、第2、第3及び第4プリデコーダの出力から一つを選択して前記第2固定長命令デコード部へ出力するための第2セレクタと、
    前記第1、第2、第3及び第4プリデコーダの出力から一つを選択して前記第1プレフィックスコードデコード部へ出力するための第3セレクタと、
    前記第1、第2、第3及び第4プリデコーダの出力から一つを選択して前記第2プレフィックスコードデコード部へ出力するための第4セレクタとを有するものであり、
    前記第1モードにおいては、
    前記第1、第2、第3及び第4プリデコーダのいずれも、前記第1の命令長の前記命令コードが入力されて、入力された前記第1の命令長の前記命令コードをプリデコードするものであり、
    前記第1セレクタは、前記第1、第2、第3及び第4プリデコーダのそれぞれの出力から1つを選択して前記第1固定長命令デコード部に出力するものであり、
    前記第2セレクタは、前記第1、第2、第3及び第4プリデコーダのそれぞれの出力から1つを選択して前記第2固定長命令デコード部に出力するものであり、
    前記第2モードにおいては、
    前記第1、第2、第3及び第4プリデコーダのいずれも、前記第1の命令長の前記命令コードまたは前記プレフィックスコードのいずれかが入力されて、入力された前記第1の命令長の前記命令コードまたは前記プレフィックスコードをプリデコードするものであり、
    前記第3セレクタは、前記第1、第2、第3及び第4プリデコーダのうち、前記プレフィックスコードをプリデコードした1つのプリデコーダの出力を選択して前記第1プレフィックスコードデコード部に出力するものであり、
    前記第4セレクタは、前記第1、第2、第3及び第4プリデコーダのうち、前記プレフィックスコードをプリデコードした他の1つのプリデコーダの出力を選択して前記第2プレフィックスコードデコード部に出力するものであり、
    前記第1セレクタは、前記第1、第2、第3及び第4プリデコーダのうち、前記第1の命令長の前記命令コードをプリデコードした1つのプリデコーダの出力を選択して前記第1固定長命令デコード部に出力するものであり、
    前記第2セレクタは、前記第1、第2、第3及び第4プリデコーダのうち、前記第1の命令長の前記命令コードをプリデコードした他の1つのプリデコーダの出力を選択して前記第2固定長命令デコード部に出力するものである、データプロセッサ。
  2. 前記第1モードにおいて、前記第1及び第2プレフィックスコードデコード部への電力供給が遮断される、請求項1記載のデータプロセッサ。
  3. 前記第1、第2、第3及び第4プリデコーダのいずれも、前記入力された命令の属性を示す命令属性信号を出力するものであり、
    前記命令属性信号は、少なくとも、前記入力された命令が前記第1の命令長の前記命令コードであることと、前記入力された命令が前記プレフィックスコードであることを示しうるものである、請求項1記載のデータプロセッサ。
  4. 前記第1モードにおいて、前記第1及び第2プレフィックスコードデコード部の動作を停止し、又は前記第1及び第2プレフィックスコードデコード部を無効化する設定をするためのモードレジスタをさらに有する、請求項1記載のデータプロセッサ。
  5. 第1のコード長の命令コードから成る第1の命令と、後続される前記命令コードをプレフィックスコードで修飾した第2のコード長の第2の命令とを、実行可能な命令セットとして有するデータプロセッサであって、
    複数個を単位として命令をフェッチする命令レジスタ部と、
    前記命令レジスタ部にフェッチされた複数個の命令を夫々解読して、前記第1の命令における命令コード、前記第2の命令における命令コード、又は前記第2の命令におけるプレフィックスコードの何れであるかを判別するプリデコーダと、
    前記命令レジスタ部にフェッチされた命令の前記命令コードを解読する第1のデコーダと、
    前記命令レジスタ部にフェッチされた命令の前記プレフィックスコードをデコードする第2のデコーダと、
    前記プリデコーダによる判別結果に基づいて前記命令コードを前記第1のデコーダに供給し前記プレフィックスコードを前記第2のデコーダに供給する選択部と、を有し、
    前記選択部は、前記第1の命令に対してはその命令コードを前記第1のデコーダに供給し、前記第2の命令に対してはそのプレフィックスコードを前記第2のデコーダに供給した後に、当該プレフィックスコードで修飾される命令コードを前記第1のデコーダに供給する、データプロセッサ。
  6. 複数のパイプラインで命令を実行するために前記第1のデコーダ及び第2のデコーダのペアをパイプラインの数に応じて備え、
    前記選択部は、前記プリデコーダによる判別結果に基づいて、前記第2の命令を構成する命令コード及びプレフィックスコードを同じパイプラインの第1のデコーダ及び第2のデコーダに供給する制御を行う、請求項5記載のデータプロセッサ。
  7. 前記第1の命令だけを実行する第1モードにおいて前記第2のデコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示される、請求項5記載のデータプロセッサ。
  8. 前記プリデコーダは、第1の命令における命令コード、前記第2の命令における命令コード、又は前記第2の命令におけるプレフィックスコードの何れであるかを示す属性信号を出力する、請求項5記載のデータプロセッサ。
  9. 前記第1の命令だけを実行する第1のモード又は前記第1の命令及び第2の命令の双方を実行する第2のモードを指定するモードレジスタを有する、請求項5記載のデータプロセッサ。
  10. 第1のコード長の第1の命令コードから成る第1の命令と、後続される前記第1の命令コードをプレフィックスコードで修飾した第2のコード長の第2の命令と、第2のコード長の第2の命令コードから成る第3の命令とを、実行可能な命令セットとするデータプロセッサであって、
    複数個を単位として命令をフェッチする命令レジスタ部と、
    前記命令レジスタ部にフェッチされた複数個の命令を夫々解読して、前記第1の命令における第1の命令コード、前記第2の命令における第1の命令コード、前記第2の命令におけるプレフィックスコード、又は第3の命令における第2の命令コードの何れであるかを判別するプリデコーダと、
    前記命令レジスタ部にフェッチされた前記第1の命令コードを解読する第1のデコーダと、
    前記命令レジスタ部にフェッチされた第2の命令の前記プレフィックスコードをデコードする第2のデコーダと、
    前記命令レジスタ部にフェッチされた前記第2の命令コードを解読する第3のデコーダと、
    前記プリデコーダによる判別結果に基づいて前記第1の命令コードを前記第1デコーダに供給し、前記プレフィックスコードを前記第2のデコーダに供給し、前記第2の命令コードを前記第3デコーダに供給する選択部と、を有し、
    前記選択部は、第1の命令に対してはその第1の命令コードを前記第1のデコーダに供給し、前記第2の命令に対してはそのプレフィックスコードを前記第2のデコーダに供給した後に、当該プレフィックスコードで修飾される第1の命令コードを前記第1デコーダに供給し、第3の命令に対してはその第2の命令コードを前記第3のデコーダに供給する、データプロセッサ。
  11. 複数のパイプラインで命令を実行するために前記第1のデコーダ及び第2のデコーダのペアをパイプラインの数に応じて備え、
    前記選択部は、前記プリデコーダによる判別結果に基づいて、前記第2の命令を構成する第1の命令コード及びそれに対応するプレフィックスコードを同じパイプラインの第1のデコーダ及び第2のデコーダに供給する制御を行う、請求項10記載のデータプロセッサ。
  12. 前記第1の命令だけを実行する動作モードにおいて前記第2のデコーダ及び第3のデコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示され、前記第1の命令及び第2の命令だけを実行する動作モードにおいて前記第3のデコーダは動作電源の供給が遮断され又は回路動作の非活性化が指示される、請求項10記載のデータプロセッサ。
  13. 前記プリデコーダは、第1の命令における第1の命令コード、前記第2の命令における第1の命令コード、前記第2の命令におけるプレフィックスコード、又は第3の命令における第2の命令コードの何れであるかを示す属性信号を出力する、請求項10記載のデータプロセッサ。
  14. 前記第1の命令だけを実行する第1モード、前記第1の命令及び第2の命令の双方を実行する第2モード又は前記第1の命令乃至第3の命令の何れも実行する第3モードを指定するモードレジスタを有する、請求項10記載のデータプロセッサ。
JP2009249853A 2009-10-30 2009-10-30 データプロセッサ Active JP5496602B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009249853A JP5496602B2 (ja) 2009-10-30 2009-10-30 データプロセッサ
US12/915,158 US8924689B2 (en) 2009-10-30 2010-10-29 Semiconductor device with instruction code and prefix code predecoders
US14/565,234 US20150095616A1 (en) 2009-10-30 2014-12-09 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009249853A JP5496602B2 (ja) 2009-10-30 2009-10-30 データプロセッサ

Publications (2)

Publication Number Publication Date
JP2011096033A JP2011096033A (ja) 2011-05-12
JP5496602B2 true JP5496602B2 (ja) 2014-05-21

Family

ID=43926628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009249853A Active JP5496602B2 (ja) 2009-10-30 2009-10-30 データプロセッサ

Country Status (2)

Country Link
US (2) US8924689B2 (ja)
JP (1) JP5496602B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710277B2 (en) * 2010-09-24 2017-07-18 Intel Corporation Processor power management based on class and content of instructions
WO2013132767A1 (ja) * 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JPH1021071A (ja) * 1995-12-19 1998-01-23 Texas Instr Inc <Ti> 複数の命令を処理するプロセッサ動作方法
JP3570287B2 (ja) 1999-03-31 2004-09-29 セイコーエプソン株式会社 マイクロコンピュータ
US6460132B1 (en) * 1999-08-31 2002-10-01 Advanced Micro Devices, Inc. Massively parallel instruction predecoding
JP2001297002A (ja) * 2000-04-14 2001-10-26 Hitachi Ltd データ処理装置
JP2003084973A (ja) * 2001-09-14 2003-03-20 Seiko Epson Corp 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JP3627725B2 (ja) * 2002-06-24 2005-03-09 セイコーエプソン株式会社 情報処理装置及び電子機器
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte

Also Published As

Publication number Publication date
US20150095616A1 (en) 2015-04-02
US20110107064A1 (en) 2011-05-05
JP2011096033A (ja) 2011-05-12
US8924689B2 (en) 2014-12-30

Similar Documents

Publication Publication Date Title
JP5357475B2 (ja) データプロセッサ
US9672033B2 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
EP2289003B1 (en) Method &amp; apparatus for real-time data processing
US6408382B1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
JP2816248B2 (ja) データプロセッサ
US9329866B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
EP0996057A1 (en) Data processor
JP2006146953A (ja) プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体
US9021236B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JPH06274352A (ja) コンパイラ、及びデータ処理装置
US20020198606A1 (en) Data processing system and control method
CN108139911B (zh) 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格
KR100971626B1 (ko) 다수의 명령어 세트를 갖는 데이터 처리 장치 내에서의명령어 부호화
JP5496602B2 (ja) データプロセッサ
WO2012144374A1 (ja) データプロセッサ
US7461235B2 (en) Energy-efficient parallel data path architecture for selectively powering processing units and register files based on instruction type
US8327175B2 (en) Data processing systems and methods of operating the same in which memory blocks are selectively activated in fetching program instructions
JP5122277B2 (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
US20200371808A1 (en) Processing device with vector transformation execution
JP5068529B2 (ja) 時間−静止型プロセッサにおけるゼロ−オーバヘッドのブランチング及びルーピング
JP5657760B2 (ja) データプロセッサ
US20100153688A1 (en) Apparatus and method for data process
JP2004152049A (ja) データ処理装置
Md Architecture and Hardware Design of a Dual-Execution Mode Processor Based on Produced Order Queue Execution Model
Liu et al. Architecture design of variable lengths instructions expansion for VLIW

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140123

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: 20140206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140305

R150 Certificate of patent or registration of utility model

Ref document number: 5496602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350