JP5658358B2 - データプロセッサ - Google Patents
データプロセッサ Download PDFInfo
- Publication number
- JP5658358B2 JP5658358B2 JP2013510955A JP2013510955A JP5658358B2 JP 5658358 B2 JP5658358 B2 JP 5658358B2 JP 2013510955 A JP2013510955 A JP 2013510955A JP 2013510955 A JP2013510955 A JP 2013510955A JP 5658358 B2 JP5658358 B2 JP 5658358B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- code
- pattern
- instruction code
- codes
- 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
Links
- 238000000034 method Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 16
- 238000010276 construction Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 101710130550 Class E basic helix-loop-helix protein 40 Proteins 0.000 description 5
- 102100025314 Deleted in esophageal cancer 1 Human genes 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012882 sequential analysis Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 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/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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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
-
- 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/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
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
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
本発明の代表的な実施の形態に係るデータプロセッサ(MPU)は、複数の命令パイプライン(EXPL,LSPL,BRPL)と、並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キュー(GIQ)と、前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路(EX−ISD,LS−ISD,BR−ISD)とを有する。このデータプロセッサは、個々の命令コードの本来の処理が禁止されることになる特定の複数の命令コードの組合せによる禁止組合せパターンを別の命令として追加定義した命令セットを有する。
項1のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は、当該組み合わせパターンの後半の命令コードパターンのみで定義される命令コードと同じ命令タイプに限定される。
項2のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンにおける前半及び後半のそれぞれの命令コードパターンは異なる命令コードである。
項3のデータプロセッサにおいて、前記ディスパッチ回路は、探索対象とする複数の命令コードの探索単位の中で目的とする命令コードタイプの命令コードを検出したときは当該検出した命令コードを有効として出力すると共にその直前の命令コードをプレフィックスコード候補として出力し、前記探索単位の先頭で目的とする命令コードタイプの命令コードを検出したときは当該先頭の命令コードを有効として出力し、前記探索単位の後端まで目的とする命令コードタイプの命令コードを検出できなかったときは当該後端の命令コードをプレフィックスコード候補として出力する。
項4のデータプロセッサにおいて、前記命令パイプラインは、プレフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するときは当該特定の複数の命令コードの組み合わせを、追加定義された命令として処理し、プレフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するものでないときないときはこれを無視する。
項5のデータプロセッサにおいて、前記命令パイプラインは、プレフィックスコード候補として供給された前記後端の命令コードを、その直後の命令コード探索において先頭で検出されて供給された命令コードに対して前記特定の複数の命令コードの組み合わせを構成するためのプレフィックスコード候補として用いる。
項2のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は分岐命令に専用化され、当該禁止組み合わせパターンの後半の命令コードパターンには分岐命令の命令コードが使用される。
項7のデータプロセッサにおいて、前記組み合わせによって別定義される前記特定の複数の命令コードの禁止組み合わせパターンにおける前半の命令コードパターンは遅延スロット付き分岐命令であり、後半の命令コードパターンは遅延スロットに置けない遅延スロット付き分岐命令以外の分岐命令である。
項7のデータプロセッサにおいて、前記ディスパッチ回路は、探索対象とする複数の命令コードの探索単位の中の最後以外で目的とする命令コードタイプの命令コードを検出したときは当該検出した命令コードを有効として出力すると共にその直後の命令コードをポストフィックスコード候補として出力し、前記探索単位の中の最後で目的とする命令コードタイプの命令コードを検出したときは当該最後の命令コードを有効として出力する。
項9のデータプロセッサにおいて、前記命令パイプラインは、ポストフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するときは当該特定の複数の命令コードの組み合わせを追加定義された命令として処理し、ポストフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するものでないときないときはこれを無視する。
項10のデータプロセッサにおいて、前記命令パイプラインは、前記ディスパッチ回路から供給された前記最後の命令コードに対して、その直後の命令コード探索において先頭で検出されて供給された命令コードを前記特定の複数の命令コードの組み合わせを構成するためのポストフィックスコード候補として用いる。
項1のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンにおける後半の命令コードパターンには前半の命令コードパターンとは異なる命令コードパターンが使用され、前記ディスパッチ回路はその前段にプリデコーダを有する。前記プリデコーダは、命令コードの命令コードタイプを判別すると共に、隣接する命令コード間で命令コードタイプの情報を交換して、命令コードが前記禁止組み合わせパターンを構成する命令タイプであるかを確定するための情報を前記ディスパッチ回路に供給する。前記ディスパッチ回路は、前記確定するための情報を用いることにより(前記禁止組み合わせパターンによる別定義された命令の命令タイプが当該禁止組み合わせパターンの後半の命令コードパターンによる命令タイプと異なる場合にも)前記禁止組み合わせパターンによる命令を供給する命令パイプラインを決定する。
項1のデータプロセッサにおいて、前記命令セットに含まれる命令コードは基本長とそれに対する2倍長の命令コードが混在する混在命令コードである。前記ディスパッチ回路は基本長の命令コードに対しては基本長単位で対応する命令パイプラインに供給し、2倍長の命令コードに対しては2倍長単位で対応する命令パイプラインに供給する。このとき、前記禁止組合せパターンの命令コードは2倍長命令コードとして定義される。
本発明のさらに別の実施の形態に係るデータプロセッサ(MPU)は、複数の命令パイプライン(EXPL,LSPL,BRPL)と、並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キュー(GIQ)と、前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路(EX−ISD,LS−ISD,BR−ISD)とを有する。このデータプロセッサは、本来組み合わせが禁止されていないが意味のない複数の命令コードの組み合わせによる禁止組合せパターンを別の命令として追加定義した命令セットを有する。
本発明のさらに別の実施の形態に係るデータプロセッサ(MPU)は、複数の命令パイプライン(EXPL,LSPL,BRPL)と、並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キュー(GIQ)と、前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路(EX−ISD,LS−ISD,BR−ISD)とを有する。前記命令パイプラインは更に、個々の命令コードの本来の処理が禁止されることになる特定の複数の命令コードの組み合わせに対して、単一の別の命令コードとして処理を行う。前記ディスパッチ回路は、前記特定の複数の命令コードの組み合わせを探索して対応する命令パイプラインに供給する。
項15のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は、当該組み合わせパターンの後半の命令コードパターンのみで定義される命令コードと同じ命令タイプに限定される。
項16のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンにおける前半及び後半のそれぞれの命令コードパターンは異なる命令コードである。
項16のデータプロセッサにおいて、前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は分岐命令に専用化され、当該禁止組み合わせパターンの後半の命令コードパターンには分岐命令の命令コードが使用される。
項18のデータプロセッサにおいて、前記組み合わせによって別定義される前記特定の複数の命令コードの禁止組み合わせパターンにおける前半の命令コードパターンは遅延スロット付き分岐命令であり、後半の命令コードパターンは遅延スロットに置けない遅延スロット付き分岐命令以外の分岐命令である。
項15のデータプロセッサにおいて、前記組み合わせによって別定義される前記特定の複数の命令コードの禁止組み合わせパターンにおける後半の命令コードパターンには前半の命令コードパターンとは異なる命令コードパターンが使用される。前記ディスパッチ回路はその前段にプリデコーダを有する。前記プリデコーダは、命令コードの命令コードタイプを判別すると共に、隣接する命令コード間で命令コードタイプの情報を交換して、命令コードが前記禁止組み合わせパターンを構成する命令タイプであるかを確定するための情報を前記ディスパッチ回路に供給する。前記ディスパッチ回路は、確定するための情報を用いることにより(前記禁止組み合わせパターンによる別定義された命令の命令タイプが当該禁止組み合わせパターンの後半の命令コードパターンによる命令タイプと異なる場合にも)前記禁止組み合わせパターンによる命令を供給する命令パイプラインを決定する。
項15のデータプロセッサにおいて、前記命令セットに含まれる命令コードは基本長とそれに対する2倍長の命令コードが混在する混在命令コードである。前記ディスパッチ回路は基本長の命令コードに対しては基本長単位で対応する命令パイプラインに供給し、2倍長の命令コードに対しては2倍長単位で対応する命令パイプラインに供給する。前記禁止組合せパターンの命令コードは2倍長命令コードとして定義される。
本発明の更に別の実施の形態に係るデータプロセッサ(MPU)は、複数の命令パイプライン(EXPL,LSPL,BRPL)と、並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キュー(GIQ)と、前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路(EX−ISD,LS−ISD,BR−ISD)とを有する。前記命令パイプラインは更に、本来組み合わせが禁止されていないが意味のない特定の複数の命令コードの組み合わせに対して、単一の別の命令コードとして処理を行い、前記ディスパッチ回路は、前記特定の複数の命令コードの組み合わせを探索して対応する命令パイプラインに供給する。
実施の形態について更に詳述する。
「スロット不当例外パターン」を構成する「遅延スロット付分岐命令」として図1の4命令を、「遅延スロットに置けない命令」として図1および図2の8命令を含む例を考える。図1の命令(1)はディレイスロット付プログラムカウンタ(以下PCとする)相対無条件分岐命令、命令(2)はディレイスロット付PC相対サブルーチンコール命令、そして命令(3)(4)はディレイスロット付PC相対条件分岐命令で、それぞれ条件フラグが成立および不成立の場合に分岐する。また、図2の命令(5)(6)はPC相対ロード命令で、それぞれ16ビットおよび32ビットデータをロードする。そして、命令(7)(8)はPC相対条件分岐命令で、それぞれ条件フラグが成立および不成立の場合に分岐する。オペランドフィールドは命令(1)(2)(5)(6)が12ビット、命令(3)(4)(7)(8)が8ビットである。図1及び図2において「disp8」は8ビットのディスプレースメント、「disp12」は12ビットのディスプレースメント、PCはプログラムカウンタ値、Rnは番号#nの汎用レジスタ、をそれぞれ意味する。
実施の形態1で説明した「スロット不当例外パターン」を活用する命令制御形態はディスパッチ機構を変えずに済むが、考慮すべき点がある。すなわち、命令コードが「スロット不当例外パターン」の場合、パターン前半の遅延スロット付分岐命令は分岐命令として分岐パイプラインにディスパッチされるが、パターン後半が付いて来ないため、例え分岐命令であっても実行できず、無駄なディスパッチが発生することである。すなわち、パターン後半が命令と見なされてディスパッチされ、パターン前半がそのプレフィックス候補として付加されるため、パターン後半と「スロット不当例外パターン」が同じ実行パイプラインで実行される命令のコードでなければならないという制約が必要なことである。
実施の形態2では「スロット不当例外パターン」による命令定義は分岐命令専用という制限があった。本実施の形態では「スロット不当例外パターン」を分岐命令以外にも活用するために、命令コードタイプ判定機構を変更し、命令コードタイプ判定時に16ビット単位の命令コードタイプ判定結果と隣接コード間での情報交換によって「スロット不当例外パターン」を検出できるようにする。即ち、「スロット不当例外パターン」の前半部分と後半部分に同じコードを使用しないようにする。具体的には、前半部分には遅延スロット付分岐命令、後半部分には遅延スロット付分岐命令以外の遅延スロットに置けない命令を使用する。そして、パターン前半をプレフィックスと同様に扱い、パターン後半を分岐命令、ロードストア命令、および演算命令のいずれかの命令と同様に扱う。図4の分類において、「スロット不当例外パターン」の後半部分としての命令タイプTYPE−DSで分類する。この結果、「スロット不当例外パターン」に命令を自由に割り当て、プレフィックス付命令と同様に扱うことが可能となる。このときのディスパッチ回路EX−ISD,LS−ISD,BR−ISDによる命令コードの分配機能は図12と同様でよい。
実施例3では実装の容易さを優先して16ビット単位の命令コードタイプ判定結果と隣接コード間での情報交換によって「スロット不当例外パターン」を検出できるように命令のエンコーディングを制限した。しかし、既に16/32ビット長混在命令セットを実装しているプロセッサでは、上記制限をしてもメリットがない。したがって、制限を設けずに「スロット不当例外パターン」約144.5Mパターンを全て新規32ビット命令定義に使用すべきである。
以上の実施の各実施の形態で活用した「スロット不当例外パターン」のような例外を発生するパターンだけでなく、その他に、プログラム上で意味のない2命令の組み合わせ(特定組み合わせパターン)にも本発明の概念を適用することができる。例えば、同一レジスタへの連続ロードの場合、1回目のロードのロード先のレジスタが2回目のロードのソースオペランドでなければ、1回目のロードは実行する必要がない。このような同一レジスタへの連続ロードは禁止されていないが、このような2命令の組み合わせを禁止して本発明を適用すればコード空間を拡張することができる。
CPU プロセッサコア
IBUS 内部バス
EIF 外部インタフェース回路
PER 内蔵周辺モジュール
IC 命令キャッシュ
IFU 命令フェッチユニット
PD プリデコーダ
GIQ グローバル命令キュー
BRC 分岐制御部
DC データキャッシュ
LSU ロードストアユニット
LSIQ ロードストア命令キュー
LSID ロードストア命令デコーダ
LSE ロードストア命令実行部
EXIQ 実行命令キュー
EXID 演算命令デコーダ
EXE 演算命令実行部
BIU バスインタフェースユニット
IC1、IC2 命令キャッシュアクセス
GIB グローバル命令バッファGIB
EXPL 演算命令用パイプライン
EXIB ローカル命令バッファ
EXRR ローカルレジスタリード
EX 演算
WB レジスタライトバック
LSPL ロードストア命令用パイプライン
LSIB ローカル命令バッファ
LSRR ローカルレジスタリード
LSA アドレス計算
DC1、DC2 データキャッシュアクセス
BRPL 分岐命令用パイプライン
BR 分岐
IFU 命令フェッチユニット
GIQ0〜15 16命令分の命令キューエントリ
GIQP グローバル命令キューポインタ
GIQP−DEC グローバル命令キューポインタデコーダ
EXP 演算命令ポインタ
LSP ロードストア命令ポインタ
BRP 分岐命令ポインタ
EX−ISD 演算命令探索ディスパッチ回路
LS−ISD ロードストア命令探索ディスパッチ回路
BR−ISD 分岐命令探索ディスパッチ回路
IREQ−GEN 命令フェッチ要求生成部
ICOV 命令キャッシュ出力有効信号
GIQU0〜3 グローバル命令キュー更新信号
GIQ0〜3、GIQ4〜7、GIQ8〜11、GIQ12〜15 グローバル命令キューエントリグループ
GIQO0〜15 グローバル命令キュー出力
BR−IV 分岐命令コード有効信号
BR−INST 分岐命令
BR−PV 分岐プレフィックス候補有効信号
BR−IV 分岐命令コード有効信号
Claims (22)
- 複数の命令パイプラインを有するデータプロセッサであって、
並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キューと、
前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路とを有し、
個々の命令コードの本来の処理が禁止されることになる特定の複数の命令コードの組合せによる禁止組合せパターンを別の命令として追加定義した命令セットを有する、データプロセッサ。 - 前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は、当該組み合わせパターンの後半の命令コードパターンのみで定義される命令コードと同じ命令タイプに限定される、請求項1記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける前半及び後半のそれぞれの命令コードパターンは異なる命令コードである、請求項2記載のデータプロセッサ。
- 前記ディスパッチ回路は、探索対象とする複数の命令コードの探索単位の中で目的とする命令コードタイプの命令コードを検出したときは当該検出した命令コードを有効として出力すると共にその直前の命令コードをプレフィックスコード候補として出力し、前記探索単位の先頭で目的とする命令コードタイプの命令コードを検出したときは当該先頭の命令コードを有効として出力し、前記探索単位の後端まで目的とする命令コードタイプの命令コードを検出できなかったときは当該後端の命令コードをプレフィックスコード候補として出力する、請求項3記載のデータプロセッサ。
- 前記命令パイプラインは、プレフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するときは当該特定の複数の命令コードの組み合わせを、追加定義された命令として処理し、プレフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するものでないときはこれを無視する、請求項4記載のデータプロセッサ。
- 前記命令パイプラインは、プレフィックスコード候補として供給された前記後端の命令コードを、その直後の命令コード探索において先頭で検出されて供給された命令コードに対して前記特定の複数の命令コードの組み合わせを構成するためのプレフィックスコード候補として用いる、請求項5記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は分岐命令に専用化され、当該禁止組み合わせパターンの後半の命令コードパターンには分岐命令の命令コードが使用される、請求項2記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける前半の命令コードパターンは遅延スロット付き分岐命令であり、後半の命令コードパターンは遅延スロットに置けない遅延スロット付き分岐命令以外の分岐命令である、請求項7記載のデータプロセッサ。
- 前記ディスパッチ回路は、探索対象とする複数の命令コードの探索単位の中の最後以外で目的とする命令コードタイプの命令コードを検出したときは当該検出した命令コードを有効として出力すると共にその直後の命令コードをポストフィックスコード候補として出力し、前記探索単位の中の最後で目的とする命令コードタイプの命令コードを検出したときは当該最後の命令コードを有効として出力する、請求項7記載のデータプロセッサ。
- 前記命令パイプラインは、ポストフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するときは当該特定の複数の命令コードの組み合わせを追加定義された命令として処理し、ポストフィックスコード候補として供給された命令コードが前記特定の複数の命令コードの組み合わせを構成するものでないときはこれを無視する、請求項9記載のデータプロセッサ。
- 前記命令パイプラインは、前記ディスパッチ回路から供給された前記最後の命令コードに対して、その直後の命令コード探索において先頭で検出されて供給された命令コードを前記特定の複数の命令コードの組み合わせを構成するためのポストフィックスコード候補として用いる、請求項10記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける後半の命令コードパターンには前半の命令コードパターンとは異なる命令コードパターンが使用され、
前記ディスパッチ回路はその前段にプリデコーダを有し、
前記プリデコーダは、命令コードの命令コードタイプを判別すると共に、隣接する命令コード間で命令コードタイプの情報を交換して、命令コードが前記禁止組み合わせパターンを構成する命令タイプであるかを確定するための情報を前記ディスパッチ回路に供給し、
前記ディスパッチ回路は、前記確定するための情報を用いることにより(前記禁止組み合わせパターンによる追加定義された命令の命令タイプが当該禁止組み合わせパターンの後半の命令コードパターンによる命令タイプと異なる場合にも)前記禁止組み合わせパターンによる命令を供給する命令パイプラインを決定する、請求項1記載のデータプロセッサ。 - 前記命令セットに含まれる命令コードは基本長とそれに対する2倍長の命令コードが混在する混在命令コードであり、
前記ディスパッチ回路は基本長の命令コードに対しては基本長単位で対応する命令パイプラインに供給し、2倍長の命令コードに対しては2倍長単位で対応する命令パイプラインに供給し、
前記禁止組合せパターンに対応付けられる追加定義された命令の命令コードは、2倍長命令コードとして定義される、請求項1記載のデータプロセッサ。 - 複数の命令パイプラインを有するデータプロセッサであって、
並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キューと、
前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路とを有し、
本来組み合わせが禁止されていないが意味のない複数の命令コードの組み合わせによる禁止組合せパターンを別の命令として追加定義した命令セットを有する、データプロセッサ。 - 複数の命令パイプラインを有するデータプロセッサであって、
並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キューと、
前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路とを有し、
前記命令パイプラインは更に、個々の命令コードの本来の処理が禁止されることになる特定の複数の命令コードの組み合わせに対して、単一の別の命令コードとして処理を行い、
前記ディスパッチ回路は、前記特定の複数の命令コードの組み合わせを探索して対応する命令パイプラインに供給する、データプロセッサ。 - 前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は、当該組み合わせパターンの後半の命令コードパターンのみで定義される命令コードと同じ命令タイプに限定される、請求項15記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける前半及び後半のそれぞれの命令コードパターンは異なる命令コードである、請求項16記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンによって追加定義される命令は分岐命令に専用化され、当該禁止組み合わせパターンの後半の命令コードパターンには分岐命令の命令コードが使用される、請求項16記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける前半の命令コードパターンは遅延スロット付き分岐命令であり、後半の命令コードパターンは遅延スロットに置けない遅延スロット付き分岐命令以外の分岐命令である、請求項18記載のデータプロセッサ。
- 前記特定の複数の命令コードの禁止組み合わせパターンにおける後半の命令コードパターンには前半の命令コードパターンとは異なる命令コードパターンが使用され、
前記ディスパッチ回路はその前段にプリデコーダを有し、
前記プリデコーダは、命令コードの命令コードタイプを判別すると共に、隣接する命令コード間で命令コードタイプの情報を交換して、命令コードが前記禁止組み合わせパターンを構成する命令タイプであるかを確定するための情報を前記ディスパッチ回路に供給し、
前記ディスパッチ回路は、確定するための情報を用いることにより(前記禁止組み合わせパターンに応じて前記単一の別の命令コードとして定義された命令の命令タイプが当該禁止組み合わせパターンの後半の命令コードパターンによる命令タイプと異なる場合にも)前記禁止組み合わせパターンによる命令を供給する命令パイプラインを決定する、請求項15記載のデータプロセッサ。 - 前記データプロセッサの命令セットに含まれる命令コードは基本長とそれに対する2倍長の命令コードが混在する混在命令コードであり、
前記ディスパッチ回路は基本長の命令コードに対しては基本長単位で対応する命令パイプラインに供給し、2倍長の命令コードに対しては2倍長単位で対応する命令パイプラインに供給し、
禁止組合せパターンに対応付けられる前記単一の別の命令コードは、2倍長命令コードとして定義される、請求項15記載のデータプロセッサ。 - 複数の命令パイプラインを有するデータプロセッサであって、
並列的にフェッチされた複数の命令コードを順次蓄積するグローバル命令キューと、
前記グローバル命令キューから出力された複数の命令コードに対して命令コードタイプ毎に探索を行い、探索結果に基づいて命令コードを命令パイプライン毎に振り分けるディスパッチ回路とを有し、
前記命令パイプラインは更に、本来組み合わせが禁止されていないが意味のない特定の複数の命令コードの組み合わせに対して、単一の別の命令コードとして処理を行い、
前記ディスパッチ回路は、前記特定の複数の命令コードの組み合わせを探索して対応する命令パイプラインに供給する、データプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013510955A JP5658358B2 (ja) | 2011-04-21 | 2012-04-10 | データプロセッサ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011094800 | 2011-04-21 | ||
JP2011094800 | 2011-04-21 | ||
PCT/JP2012/059757 WO2012144374A1 (ja) | 2011-04-21 | 2012-04-10 | データプロセッサ |
JP2013510955A JP5658358B2 (ja) | 2011-04-21 | 2012-04-10 | データプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012144374A1 JPWO2012144374A1 (ja) | 2014-07-28 |
JP5658358B2 true JP5658358B2 (ja) | 2015-01-21 |
Family
ID=47041486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013510955A Active JP5658358B2 (ja) | 2011-04-21 | 2012-04-10 | データプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US9910674B2 (ja) |
JP (1) | JP5658358B2 (ja) |
WO (1) | WO2012144374A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372695B2 (en) * | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
US9348596B2 (en) | 2013-06-28 | 2016-05-24 | International Business Machines Corporation | Forming instruction groups based on decode time instruction optimization |
US20180211046A1 (en) * | 2017-01-26 | 2018-07-26 | Intel Corporation | Analysis and control of code flow and data flow |
US11119777B1 (en) * | 2020-04-22 | 2021-09-14 | International Business Machines Corporation | Extended prefix including routing bit for extended instruction format |
CN112199158B (zh) * | 2020-10-16 | 2021-11-23 | 常熟理工学院 | 虚拟机保护的解释例程识别方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0895780A (ja) * | 1994-09-20 | 1996-04-12 | Nec Corp | 命令コード符号化方式 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
JP3570287B2 (ja) | 1999-03-31 | 2004-09-29 | セイコーエプソン株式会社 | マイクロコンピュータ |
JP3627725B2 (ja) | 2002-06-24 | 2005-03-09 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
JP5357475B2 (ja) | 2008-09-09 | 2013-12-04 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
-
2012
- 2012-04-10 US US14/113,058 patent/US9910674B2/en active Active
- 2012-04-10 WO PCT/JP2012/059757 patent/WO2012144374A1/ja active Application Filing
- 2012-04-10 JP JP2013510955A patent/JP5658358B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0895780A (ja) * | 1994-09-20 | 1996-04-12 | Nec Corp | 命令コード符号化方式 |
Also Published As
Publication number | Publication date |
---|---|
WO2012144374A1 (ja) | 2012-10-26 |
JPWO2012144374A1 (ja) | 2014-07-28 |
US20140040600A1 (en) | 2014-02-06 |
US9910674B2 (en) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6043374B2 (ja) | 動的アウトオブオーダプロセッサパイプラインを実装する方法および装置 | |
US6490673B1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
JP5357475B2 (ja) | データプロセッサ | |
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
US5337415A (en) | Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency | |
US6892293B2 (en) | VLIW processor and method therefor | |
JP3714999B2 (ja) | 命令キューをスキャンするための装置およびその方法 | |
JP4230504B2 (ja) | データプロセッサ | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
JP5658358B2 (ja) | データプロセッサ | |
US20060259742A1 (en) | Controlling out of order execution pipelines using pipeline skew parameters | |
JP5209933B2 (ja) | データ処理装置 | |
JP2002333978A (ja) | Vliw型プロセッサ | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US9841978B2 (en) | Processor with a program counter increment based on decoding of predecode bits | |
US7725690B2 (en) | Distributed dispatch with concurrent, out-of-order dispatch | |
US9170638B2 (en) | Method and apparatus for providing early bypass detection to reduce power consumption while reading register files of a processor | |
JP2815236B2 (ja) | スーパースカーラマイクロプロセッサのための命令ディスパッチ方法及びレジスタ競合についてのチェック方法 | |
US20020116599A1 (en) | Data processing apparatus | |
US6119220A (en) | Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions | |
JP7409208B2 (ja) | 演算処理装置 | |
JP5657760B2 (ja) | データプロセッサ | |
US20040128482A1 (en) | Eliminating register reads and writes in a scheduled instruction cache | |
JP2004152049A (ja) | データ処理装置 | |
WO1999015958A1 (fr) | Calculateur a tres long mot d'instruction pourvu d'une fonction de preexecution partielle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140821 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141015 |
|
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: 20141030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5658358 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 |