JP2002149399A - プロセッサ用命令セット - Google Patents

プロセッサ用命令セット

Info

Publication number
JP2002149399A
JP2002149399A JP2001287070A JP2001287070A JP2002149399A JP 2002149399 A JP2002149399 A JP 2002149399A JP 2001287070 A JP2001287070 A JP 2001287070A JP 2001287070 A JP2001287070 A JP 2001287070A JP 2002149399 A JP2002149399 A JP 2002149399A
Authority
JP
Japan
Prior art keywords
external
format
opcode
instruction
formats
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.)
Pending
Application number
JP2001287070A
Other languages
English (en)
Inventor
Nigel Peter Topham
ナイジェル・ピーター・トファム
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.)
Siroyan Ltd
Original Assignee
Siroyan Ltd
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 Siroyan Ltd filed Critical Siroyan Ltd
Publication of JP2002149399A publication Critical patent/JP2002149399A/ja
Pending legal-status Critical Current

Links

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/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 VLIWプロセッサ用のコンパクトな命令セ
ットを提供する 【解決手段】 コンパクトな外部命令セットを備えて、
VLIWアーキテクチャの命令レベルパラレリズムを、
高密度化16ビット命令セットの符号化したコードの
「フットプリント」と組み合わせたVLIWプロセッサ。
プロセッサ内では、各実行装置を適切に動作させる内部
命令フォーマットに翻訳し、実行を行う。上記を実現す
るための、オペコードの符号化方法を開示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプロセッサ用命令セ
ットに関する。特に、本発明は二組かそれ以上の命令セ
ットを有するプロセッサに関する。また、本発明は、斯
かるプロセッサ用の命令を自動的に符号化する方法にも
関する。
【0002】
【従来の技術】高性能プロセッサには一般に、コードが
コンパクトであること(プロセッサのプログラムを記憶
するのに必要なメモリ容量を小さくするため)、それ
に、オペレーションとオペランドとが豊富であることと
言った二つの要件を満たせる命令セットが求められてい
る。エンベッド型プロセッサ、即ち、モバイル通信装置
の如くシステムに組み込まれているプロセッサの場合で
は、これらの要件は特に重要である。この場合、コード
ないし命令は、例えばプログラム用メモリの容量が限ら
れているとか、システムリソースが限られていることか
ら、高密度になっていることが極めて重要である。
【0003】しかし、これらの二つの要件は互いに競合
していて、単一の統合的命令セットで満たすことは困難
である。何故なら、コードをコンパクトにすると、最も
頻繁に発生するオペレーションのそれぞれを最小限に符
号化することとなる(これにより、命令セットから発生
頻度の少ないオペレーションを省くことになる)一方、
オペレーションとオペランドが豊富であることは、減ら
した直交型32ビット命令セット(orthogonal 32-bit r
educed instruction set)が必要となるからである。従
って、既存の32ビット命令セットを有するプロセッサ
では、コンパクトな16ビット命令セットを追加して、
限られたサブセットのレジスタ用オペランドに対する最
も普遍的に利用される機能とアクセスの何れか、または
両方が得られるようにしている。
【0004】添付図面を参照して説明すれば、前記のプ
ロセッサのための命令セットを図1に概略的に示す。こ
の図において、ハードウェアレベルにおいて、プロセッ
サは先ず32ビット命令セットISINTが備わってい
る。プロセッサの外部には二つの命令セットIS、I
が備わっている。第1外部命令セットISは、内
部命令セットISINTと同じ32ビット命令から成り立
っている。第2外部命令セットISは、16ビット命
令から成り立っており、プロセッサには、この第2外部
命令セットISの各16ビット命令を、内部命令セッ
トISINTにおける対応する32ビット命令に翻訳する
ために命令翻訳回路200が備わっている。
【0005】エンベッド型プロセッサは、非常に長い命
令語(very long instruction word、VLIW)命令を実
行できるVLIWプロセッサである場合もある。このV
LIWプロセッサのもうひとつの最重要な特徴に命令レ
ベルパラレリズム(Instruction-Level-Parallelism、IS
P)と言うものがあって、これはVLIW命令を実行して
いるときに二つかそれ以上のオペレーションを同時に行
うプロセッサの能力を意味している。
【0006】斯かるVLIWプロセッサでは、命令発生
装置には複数の出力スロットがあって、それぞれのスロ
ットは異なった実行装置と機能的に接続されている。V
LIWプロセッサとしては、一回の処理サイクルにつき
二つかそれ以上の命令を発生するのが通常であって、そ
の命令が出てくる出力スロットに応じて異なったフォー
マット(或いはフォーマット群)で各命令を符号化してい
る。同一処理サイクルにおいて発生する命令はVLIW
パケットないしパーセルで組み合わされるようになって
いる。VLIWパーセルにおける命令の位置で、当該命
令が符号化されるフォーマットのサブセットが決まる。
このようにして、VLIWパーセル内での異なった位置
に予定されている命令のフォーマットが、曖昧さをもた
らすことなく同じ符号化を利用することが出きる。
【0007】現実にはプログラムにおける命令の90%
以上はあまり実行されることはなく、従って命令の実行
時間が10%以下となっている場合が多いことは、実際
に経験されているところである。当然のことながら、残
り10%の命令が実行時間の19%も占めている。ま
た、プログラムにおける実行頻度の小さい部分は、二つ
かそれ以上の命令を同時に発生するプロセッサの能力を
効果的に利用できないでいる。プログラムのその部分が
VLIW命令セットを利用して符号化されるのであれ
ば、その命令の大部分は、一つの命令の結果が次の命令
に使われることから、同じVLIWパーセルに連続した
命令が現れない場合にVLIWパーセルを単に寝かせる
ためにコンパイラによりプログラムに挿入された「無演
算(no operation、NOP)」命令となってしまう。このこと
から、命令を並列発生する能力を有効に利用しないプロ
グラムの部分については、或いは、その能力から得られ
る性能利得が大した影響をもたらさない場合では、最大
コード密度(即ち、最小数のビットの利用)を達成すべく
プログラムを符号化するのが望ましいのである。
【0008】
【発明が解決しようとする課題】従って、フォーマット
がコンパクトな命令セットを備えて、VLIWアーキテ
クチャの命令レベルパラレリズムを、16ビット命令セ
ットの如くの密に符号化した命令セットのコンパクトな
コードの「フットプリント(footprint)」と組み合わせる
ようにしたVLIWプロセッサを提供するのが望ましい
のである。
【0009】図1を参照しながら説明した前述のプロセ
ッサでは、本来の32ビット命令セットを構築した後に
コンパクトな命令セットを追加しているので、16ビッ
ト命令から32ビット命令への翻訳が複雑で遅いと言っ
た問題がある。
【0010】従って、各外部命令のフォーマット(例え
ば少なくとも一つのVLIWフォーマットと少なくとも
一つのコンパクトなフォーマット)からハードウェアで
直接実行できる形への翻訳がより効率的に達成できるよ
うに命令セットのフォーマットと符号化とを構築するの
が望ましいのである。
【0011】
【課題を解決するための手段】本発明は、ある一面で
は、それぞれに実行すべきオペレーションを指定するオ
ペコードが含まれる、プロセッサが受ける命令のある第
1及び第2外部命令フォーマットと;前記外部フォーマ
ットでの命令がオペレーションの実行前に翻訳される内
部命令フォーマットとからなり、前記各外部フォーマッ
トには、オペコードがでてくる一つかそれ以上の予め選
ばれたオペコードビットがあり;前記オペレーション
が、前記第1及び第2外部フォーマットで指定しうる第
1演算と、前記第2外部フォーマットで指定しうる第2
演算とを含み;前記第1及び第2演算は、前記第2外部
フォーマットにおいて互いに異なったオペコードを有し
ており;前記第1及び第2外部フォーマットが共有して
いる、予め選ばれた前記各オペコードビットにおいて、
前記二つの外部フォーマットでの第1演算のオペコード
が同一であることよりなるプロセッサを提供している。
【0012】また、別の面での本発明は、それぞれに実
行すべきオペレーションを指定するオペコードが含まれ
る、プロセッサが受ける命令のある第1及び第2外部命
令フォーマットと;前記外部フォーマットでのプロセッ
サ命令がオペレーションの実行前に翻訳される内部命令
フォーマットからなり、前記各外部フォーマットには、
オペコードがでてくる一つかそれ以上の予め選ばれたオ
ペコードビットがあり;プロセッサが実行しうる第1演
算が、前記第1及び第2外部フォーマットで指定しうる
と共に、プロセッサが実行しうる第2演算が前記第2外
部フォーマットで指定しうるようになっており;前記第
1及び第2演算は、前記第2外部フォーマットにおいて
互いに異なったオペコードを有しており;前記第1及び
第2外部フォーマットが共有している、予め選ばれた前
記各オペコードビットにおいて、前記二つの外部フォー
マットでの第1演算のオペコードが同一であることより
なるプロセッサ命令符号化を提供している。
【0013】また別の面での本発明は、それぞれに実行
すべきオペレーションを指定するオペコードが含まれ
る、プロセッサが受ける命令のある第1及び第2外部命
令フォーマットと、前記外部フォーマットでの命令がオ
ペレーションの実行前に翻訳される内部命令フォーマッ
トとからなり、前記各外部フォーマットには、オペコー
ドがでてくる一つかそれ以上の予め選ばれたオペコード
ビットがあり、前記オペレーションが、前記第1及び第
2外部フォーマットで指定しうる第1演算と、前記第2
外部フォーマットで指定しうる第2演算とを含み、前記
第1及び第2演算は、前記第2外部フォーマットにおい
て互いに異なったオペコードを有しており、前記第1及
び第2外部フォーマットが共有している、予め選ばれた
前記各オペコードビットにおいて、前記二つの外部フォ
ーマットでの第1演算のオペコードが同一であることよ
りなるプロセッサのためのプロセッサ命令の符号化方法
であって、前記第2外部フォーマットでの異なったオペ
コードを有する前記第1及び第2演算を符号化するステ
ップと;前記第1及び第2外部フォーマットが共有して
いる、予め選ばれた前記各オペコードビットにおいて、
前記二つの外部フォーマットでの第1演算のオペコード
が同一となるように、前記第1及び第2外部フォーマッ
トで前記第1演算のオペコードを符号化するステップと
からなる符号化方法を提供している。
【0014】更に別の面での本発明は、二つかそれ以上
の外部命令フォーマットと、一つかそれ以上の内部命令
フォーマットとを有するプロセッサのための命令符号化
方法であって、(a) 各外部及び内部フォーマットでの
複数の有効オペコードと、それぞれが、前記外部フォー
マットの一つの前記オペコードビットにより指定される
オペコードを、前記内部フォーマットの少なくとも一つ
の前記オペコードビットにより指定されるオペコードに
翻訳する一組のマッピングファンクションとを含む初期
符号化パラメータを選択するステップと;(b) オペレ
ーションが指定できる各外部及び内部フォーマットでの
他のそれぞれのオペレーションに割り当てるオペコード
とは別のオペコードを、プロセッサが実行しうる各オペ
レーションに割り当てるステップと;(c) 前記ステッ
プ(b)において前記オペレーションのそれぞれに対する
各指定可能なフォーマットで割当てに使えるオペコード
がない場合、前記符号化パラメータのどれが前記ステッ
プ(b)での割当てを制約しているかを判定し、制約して
いるパラメータを解放して前記ステップ(b)を繰り返す
ステップとからなる方法であって、前記割当てステップ
(b)で割り当てたオペコードは、該当する各マッピング
ファンクションでオペレーションに割り当てた外部フォ
ーマットの斯かるオペコードを、当該オペレーションに
割り当てた外部フォーマットの斯かるオペコードに翻訳
して、オペレーションに割り当てた全ての内部フォーマ
ットのオペコードが同じ有効オペコードビットを有する
ようにするものであることよりなる命令符号化方法を提
供している。
【0015】そして、更なる面での本発明は、それが実
行されると、二つかそれ以上の外部命令フォーマットと
一つかそれ以上の内部命令フォーマットとを有するプロ
セッサのための命令を符号化するコンピュータプログラ
ムを記録した記録媒体であって、(a) 各外部及び内部
フォーマットでの複数の有効オペコードと、それぞれ
が、前記外部フォーマットの一つの前記オペコードビッ
トにより指定されるオペコードを、前記内部フォーマッ
トの少なくとも一つの前記オペコードビットにより指定
されるオペコードに翻訳する一組のマッピングファンク
ションとを含む初期符号化パラメータを選択し、(b)
オペレーションが指定できる各外部及び内部フォーマッ
トでの他のそれぞれのオペレーションに割り当てるオペ
コードとは別のオペコードを、プロセッサが実行しうる
各オペレーションに割り当て、(c)前記(b)において前
記オペレーションのそれぞれに対する各指定可能なフォ
ーマットで割当てに使えるオペコードがない場合、前記
符号化パラメータのどれが前記(b)での割当てを制約し
ているかを判定し、制約しているパラメータを解放して
前記(b)を繰り返すようになっており、前記(b)で割り
当てたオペコードは、該当する各マッピングファンクシ
ョンでオペレーションに割り当てた外部フォーマットの
斯かるオペコードを、当該オペレーションに割り当てた
外部フォーマットの斯かるオペコードに翻訳して、オペ
レーションに割り当てた全ての内部フォーマットのオペ
コードが同じ有効オペコードビットを有する前記コンピ
ュータプログラムを記録した記録媒体を提供している。
【0016】
【発明の実施の形態】以後、添付図面を参照しながら、
本発明の好ましい実施の形態を詳述する。先ず、本発明
を実施したプロセッサの部分を示す図2において、図示
のプロセッサはVLIWプロセッサである。このプロセ
ッサ1は、命令発生装置10、スケジュール記憶装置1
2、第1、第2、第3VLIW翻訳装置4、6、8、ス
カラー翻訳装置9、第1、第2、第3実行装置14、1
6、18、レジスタファイル20からなる。
【0017】命令発生装置10には三つの出力スロット
IS、IS、ISがあって、これらのスロットは
それぞれ第1ないし第3翻訳装置4、6、8に接続して
いる。これら第1、第2、第3翻訳装置4、6、8の出
力端は第1、第2、第3実行装置14、16、18にそ
れぞれ接続されている。
【0018】命令発生装置10には出力端SCもあり、
この出力端はスカラー翻訳装置9に接続してある。この
スカラー翻訳装置9の出力端は各実行装置14、16、
18の第2入力端に共通して接続されている。
【0019】これら三つの実行装置14、16、18は
全て第1バス22を介してレジスタファイル20に接続
されており、また、第1及び第2実行装置14、16の
みが第2バス24を介して外部メモリ26に接続されて
いる。外部メモリ26としては、図示の実施の形態では
外部ランダムアクセスメモリ(RAM)装置としている
が、別の方法としてはプロセッサ1に内蔵のRAMであ
っても良い。
【0020】ところで、図1では共有バス(shared buse
s)22、24が実行装置をレジスタファイル20とメモ
リ26とにそれぞれ接続しているものとして示している
が、別の方法として各実行装置がレジスタファイルとメ
モリとに独立して接続されていても良い。
【0021】プロセッサ1は一連の処理サイクルを行う
ようになっている。このプロセッサは、選択的にスカラ
ーモードとVLIWモードとの何れかのモードで動作す
る。スカラーモードでは、プロセッサは特定の命令セッ
ト(VLIW命令セットであっても良いし、それとは別
のものであってもよい)から命令を実行する。このモー
ドでは、命令は出力スロットIS〜ISから発生さ
れることはない。他方、VLIWモードでは、命令発生
装置10が、1サイクルごとに三つの出力スロットIS
1〜ISから並列して3つまでの命令を発生すること
ができる、即ち、全命令発生幅(full instruction issu
e width)が活用されるのである。
【0022】スカラーモードでの命令とVLIWモード
での命令とは共に、スケジュール記憶装置12に一緒に
記憶される。命令は、このスケジュール記憶装置に記憶
されている命令スケジュールに従って出される。
【0023】後で詳しく説明するように、命令スケジュ
ールにおける命令は少なくとも二つの異なった外部フォ
ーマット、即ち、プロセッサのスカラー命令セットに属
する少なくとも一つのフォーマット(以後、「スカラーフ
ォーマット」と称する)と、プロセッサのVLIW命令セ
ットに属する少なくとも一つのフォーマット(以後、「V
LIWフォーマット」と称する)とで書き込まれている。
実際は、スカラーフォーマットにしても、またVLIW
フォーマットにしても二つかそれ以上ある。VLIWフ
ォーマットの場合では、一つのフォーマットが二つかそ
れ以上の出力スロットに共有されることもあるけれど
も、出力スロットが異なるごとに異なったフォーマット
を有することも可能である。
【0024】他方、プロセッサ内では、各実行装置が少
なくとも一つの内部フォーマットで命令を実行する。従
って、各実行装置14、16、18には、外部VLIW
フォーマットの一つの命令を対応する実行装置が必要と
する内部フォーマット(または、二つ以上の場合では、
適切な内部フォーマット)に翻訳する翻訳装置4、6、
8が備わっている。同様に、スカラー翻訳装置9は、外
部スカラーフォーマットの一つの命令を実行装置が必要
とする(適切な)内部フォーマットに翻訳するために設け
られている。
【0025】どれか該当する翻訳装置4、6、8、9に
よる翻訳が行われた後、命令発生装置10の異なった出
力スロットまたはスカラー命令出力端SCから出された
命令が対応する実行装置14、16、18により実行さ
れる。各実行装置としては、対応する実行装置に対して
出された先行命令の実行が終わる前に新たな命令が実行
されるよう、二つ以上の命令を同時に実行するように構
成しても良い。
【0026】命令を実行するためには、各実行装置1
4、16、18は第1バス22を介してレジスタファイ
ル20にアクセスする。従って、レジスタファイル20
に含まれているレジスタに保持されている値は、実行装
置14、16、18により読み出されたり、書き込まれ
るようになっている。また、第1及び第2実行装置1
4、16は、第2バス24を介して外部メモリ26にも
アクセスできるようになっており、そのために外部メモ
リ26の記憶位置に記憶されている値が読み出された
り、書き込まれるようになっている。本実施の形態では
第3実行装置18は外部メモリ26にアクセスできない
が、レジスタファイル20に含まれている値の操作だけ
ができるようになっている。
【0027】ここまで概略を説明したように、図2のプ
ロセッサのアーキテクチャは、コンパクトな(例えば、
16ビット)命令セットと大規模な(例えば、32ビッ
ト)VLIW命令セットとを定めている。各VLIWパ
ーセルには、これらの大規模命令の内の少なくとも二つ
がある。コンパクトな命令セットとVLIW命令セット
に属する命令は外部フォーマットを利用して符号化され
る。
【0028】各VLIWパーセルは、そのパーセル内の
異なった位置(スロット)にある二つかそれ以上の命令か
ら成り立っている。VLIWパーセルの各スロットに
は、幾つかの外部VLIWフォーマットの一つで符号化
された命令が含まれている。プロセッサが行える少なく
とも一部の基本動作(例えば、加算、減算、あるいは掛
算)がVLIWパーセルの命令スロットの内の二つかそ
れ以上、できれば全てにおいて得られるようになってい
る必要がある言うまでもないことではあるが、これらの
異なった外部フォーカットでの命令が翻訳されるときに
は、これらの命令は全て各内部フォーマットでの同一ビ
ット群内に同じオペレーションコード(オペコード)を有
していなければならない。
【0029】例えば二つかそれ以上の異なった種のオペ
ランドないしオペランドアドレッシングを利用して同一
基本演算(operation)を行う場合では、二つかそれ以上
のスカラー命令を利用して基本演算も得られるようにな
っている。この場合、同一基本演算に関する二つかそれ
以上のスカラー命令はそれぞれ別のスカラーフォーマッ
トを利用して符号化されていなければならず、別の内部
フォーマットに翻訳しなければならない。また、これら
の二つかそれ以上のスカラー命令は、内部フォーマット
に翻訳された場合、同一内部フォーマットに翻訳する同
一演算に対する全てのVLIWフォーマット命令として
同じオペコードを有していなければならない。一般に、
スカラー命令セットは、全(VLIW)命令セットのサブ
セットであり、それにより外部スカラーフォーマットの
符号化がより簡単になることがある。
【0030】フォーマットを工夫して、各フォーマット
における各演算にコードを割当てる仕事は、オペレーシ
ョンXが外部フォーマットF、Fで出て(appear)、
別のオペレーションYが外部フォーマットFとまた別
の外部フォーマットFで出てくることから煩雑であ
る。このことは、外部フォーマットF、F、F
工夫とオペレーションX、Yのためのオペコードの選択
とが互いに独立していることを意味する。図3における
(A)は、前述した命令符号化の簡単な例を示している。
本例においては、加算オペレーションは外部フォーマッ
トF、Fで出ている。両方のフォーマットF、F
での加算オペレーションは同一内部フォーマットG
にマッピングされている。ロード命令は外部フォーマッ
トFと別の外部フォーマットFで出ている。この両
方のフォーマットでのロードオペレーションは同一内部
フォーマットGに翻訳されている。
【0031】図3の(A)で示したように、異なった外部
フォーマットF〜Fにおいては、オペコードを指定
するのに異なったビットのセットが用いられている、即
ち、オペコードフィールドが異なっている。フォーマッ
トFにあっては、ビットi+1からビットi+4までの4ビ
ットがオペコード指定に使われている。他方、フォーマ
ットFでは、ビットi+1からビットi+3までの3ビット
がオペコード指定に使われている。そして、フォーマッ
トFでは、ビットiからビットi+3までの4ビットがオ
ペコード指定に使われている。Fのオペコードフィー
ルドは、例えばフォーマットFで得られるオペレーシ
ョンが少ないことから、フォーマットF とFのオペ
コードフィールドよりも短くなっていることがある。
【0032】また、図3の(A)では、外部フォーマット
、Fは、共通してオペコードビットとしてビット
i+1〜i+3を有している。フォーマットFでの加算オペ
レーションとフォーマットFでのロードオペレーショ
ンには、これらの共通ビットi+1〜i+3は、たとえオペレ
ーションがこのように異なっていても同一である。その
ために翻訳プロセスが複雑になっている。例えば、内部
フォーマットGでは、加算オペレーションのオペコー
ドは「1011」となっていることもある。するとフォー
マットFでの加算オペレーションは、Fから「10
1」を選んで、「1」を付加することで簡単にこの内部フ
ォーマットのオペコードに翻訳することができる。しか
し、フォーマットFの加算オペレーションをこの内部
フォーマットコードに翻訳するためには、簡単な選択操
作を利用することはできない。この場合、外部フォーマ
ットFでの全てのオペコードビットi+1〜i+4を調べ
て、フォーマットFでの加算オペレーションを識別す
るビットのパターン(「1101」)と特異的に一致させる
ことが必要となる。この完全な調査に足りないものがあ
れば、Fでの別のオペレーションと区別することがで
きなくなる。
【0033】しかしながら、(i)フォーマットFでの
「加算」と「ロード」のオペコードが別物であり、そのこと
が、同じフォーマットFと少なくと一つの他のフォー
マットとに一緒に出てくる他の対のオペレーションにつ
いてもあてはまること、また、(ii)二つかそれ以上の外
部フォーマットに出てくるあらゆるオペレーション(即
ち、「加算」オペレーションとFとFとに出てくるそ
の他のもの、及び、「ロード」オペレーションとFとF
に出てくるその他のもの)が、それが出てくる全ての
フォーマットで全て共通のオペコードビットに同じよう
にコード化されること、との二つが保証できるのであれ
ば、翻訳プロセスとしてはオペコードそれ自体とは独立
したものとなり、各命令の外部フォーマット(そして、
内部フォーマットが二つかそれ以上あれば、目標内部フ
ォーマット)の検索(discovery)に依存するだけとなる。
この特性を有する命令符号化を、本明細書においては
「合同(congruent)」命令符号化と呼ぶことにする。
【0034】図3の(B)では、同図の(A)における加算
オペレーションとロードオペレーションとに合同命令符
号化を割り当てている。従って、加算命令の割当てたオ
ペコード(フォーマットFで「1011」とフォーマッ
トFで「101」)は、二つのフォーマットF1、F
に共通する三つのオペコードビット(「101」)において
同一であることが分かる。
【0035】同様に、フォーマットF、Fに出てい
るロードオペレーションの場合でも、フォーマット
、F3で共通する三つのオペコードビットは、F
とFとにおいても同一(「011」)である。
【0036】従って、図3に示した命令符号化は合同(c
ongruent)である。このことは、翻訳装置が行う翻訳動
作が簡単なビット選択動作となり、例えば、外部フォー
マットFから内部フォーマットGへの翻訳の場合で
はi+1〜i+4から一部ないし全てのビットを選択するか、
外部フォーマットFから内部フォーマットGとG
の何れかへの翻訳の場合ではi+1〜i+3から三つのビット
の一部ないし全てを選択するか、外部フォーマットF
からない部フォーマットGに翻訳する場合では、i〜i
+3から四つのビットの一部ないし全てを選択する動作と
なる。所要の翻訳に必要なビットの選択は、外部フォー
マットと目標内部フォーマットとを識別することで簡単
に決めることが出きる。この外部フォーマットの識別
は、外部フォーマットにおけるIDビット、例えば図3の
(B)においてはF〜Fとラベル付けしたビットを調
べることにより行うことができる。
【0037】命令フォーマットと、合同関係を有するオ
ペコードを構築することは、二つのオペレーションだけ
を考慮した図3の(B)の如くの簡単な場合ではそれ程難
しいものではない。しかし、異なった内部フォーマット
で出てくることもある異なった外部フォーマットでのオ
ペレーションが沢山ある場合では、フォーマットを構築
し、オペコードを割当てるのは非常に難しいものとな
る。例えば、プロセッサとしては、そのスカラー命令セ
ットに約32〜128個の命令と、VLIW命令セット
に32〜128(または、その倍)個の命令、さては、異
なった外部フォーマットが恐らくは3〜6個、異なった
内部フォーマットが4〜6個も必要としていることがあ
る。
【0038】このことから、従来では翻訳を実行するの
に使われている翻訳装置は望ましくないほど複雑になっ
ていて、前述のプロセッサーに伝送遅れ(propagation d
elay)をもたらしたり、消費電力が余計に多くなってい
るのである。
【0039】次に、合同命令符号化を達成するためのフ
ォーマットとオペコードと翻訳を設計する方法を説明す
る。命令フォーマット内でのオペコードフィールドを定
め、これらのフォーマットで合同符号化をもたらすこの
方法を説明するに当り、これから用いる用語を先ず定義
付けしておく。
【0040】 が、N個の内部フォーマットGjに符号化される全ての
内部命令のセットであるものとする。
【0041】各内部フォーマットGjはWの適切なサブ
セットであり、実行中のプロセッサにより定まる内部命
令のセットからなる。yがフォーマットGjで符号化さ
れた命令であれば、このyのオペコードは、命令フォー
マットGjからaビット含むサブフィールドを選択す
る関数g(y)で与えられる。
【0042】今ここでiをi∈[1、M]とするFが外
部命令フォーマットであるとする。xがフォーマットF
で符号化された命令であるとすると、このxに対する
コードは、命令Fからbビット含むサブフィールド
を選択する関数f(x)で与えられる。
【0043】各内部命令は、メモリにおいて一つか、そ
れ以上の外部命令フォーマットで表される。命令が二つ
か、それ以上の外部フォーマットで表される場合、各変
異体(variant)は、同じ内部オペコードに翻訳しなけれ
ばならない。これらの変異体は一般に、それらのオペラ
ンドの種類と現れ方は異なることがあっても、同じ機能
を果たす。
【0044】以上の説明は、オペコードのフィールド幅
を求める方法とオペコードが各フォーマットで割り当て
られる方法とに関するものである。オペランドの符号化
も重要ではあるが、オペコード割当ての事項とは無関係
であり、そのためにここでは説明しない。
【0045】外部フォーマットFから内部フォーマッ
トGjへの翻訳には、bビットのオペコードをF
らGjでのaビットのオペコードにマッピングするマ
ッピングファンクションmi,jが必要である。設計す
るに当たっての実行及び方策を簡単にするために、これ
らのマッピングは好ましくはビット選択ないし入替え(p
ermutation)であるのが望ましい。この説明において
は、あらゆる対の外部フォーマットと内部フォーマット
との間での翻訳のためのマッピングファンクションは一
つあるものと、便宜上仮定している。
【0046】プロセッサの命令セットアーキテクチャ
は、各内部命令yごとに対応する組の翻訳Tyを定める
ようになっており、ここで各翻訳は、翻訳ソースとして
の外部フォーマットと翻訳生成物としての内部フォーマ
ットとを識別する対(i,j)からなる。各翻訳につき、
マッピングファンクションmi,jがなければならな
い。従って、
【0047】内部フォーマットにしても、また、外部フ
ォーマットにしても、各フォーマットは、そのフォーマ
ット内におけるオペコードの数で定まる濃度(cardinali
ty)を持っている。Fの濃度は|F|と表され、従っ
て、外部及び内部フォーマットにおけるオペコードフィ
ールドのサイズは下記の不等式を満たすものでなければ
ならない。 a ≧log(|Gj|) b ≧log(|F|) …… (式2)
【0048】従って、各内部フォーマットGjで、範囲
|0、2aj〉内のオペコードが定まり、各外部フォー
マットFiで範囲|0、2bi〉内のオペコードが定ま
るのである。内部フォーマットGjでのオペレーション
に割り当てるために得られる一組のオペコードは方法Q
jの間のどんな時点にも含まれている。同様に、Riに
は、外部フォーマットFiでのオペレーションに割り当
てるために得られる一組のオペコードが含まれている。
【0049】そこで問題になるのは、各命令y∈Nに特
異なオペコードを判定して、命令セットアーキテクチャ
において定まる各翻訳に対する選択、ないし、入替えに
基づくマッピングファンクションを求めることになる。
方法の一つの好ましい実施の形態は、前述した用語を利
用して言えば、図4と図5に示したフローチャートに示
すように疑似コードで表すことができる。
【0050】先ず、各マッピングファンクションm
i,jが選ばれた数bの外部フォーマットFの有効
オペコードビットを選ばれた数aの内部フォーマット
Gjの有効オペコードビットにマッピングする。その結
果、外部フォーマットFからq=min(a,b)ビ
ットだけ(no more than q=min(aj, bi))が内部フォーマ
ットGjでのaビットにマッピングされ、aでの未
定義ビットを0に設定する。簡単に説明すれば、この好
ましい実施の形態では、各マッピングファンクションに
は、外部フォーマットのオペコードの全てのビットが、
翻訳語に内部フォーマットのオペコードの一部、もしく
は全てのビットとなる用の選択することが含まれている
ものと仮定している。本発明の他の好ましい実施の形態
では、例えば入替えを含むマッピングファンクションと
か、その他のマッピングファンクションを利用すること
もできる。
【0051】図4と図5とに示したフローチャートで
は、先ずステップS1において、各外部フォーマットと
各内部フォーマットで命令の数を理論的に符号化すると
思われる最小数aまたはbのオペコードビットを算
出する。この最小数aないしbは、対応するフォー
マットに対する初期有効オペコードビット数として使わ
れる。
【0052】ステップS2では、新たな一群のイタレー
ション(実地では複数群必要となることがある)を行う。
最初に、各内部フォーマットGjごとに、aビットで
定義できる全ての考えられるオペコードからなる、得ら
れるオペコードセットQjを生成する。同様に、各外部
フォーマットFにつき、bビットで定義できる全て
の考えられるオペコードからなる、得られるオペコード
セットRを割り当てる。後述するように、得られる各
オペコードは、オペコードビットの算出した最小数a
ないしbよりも大きい有効数(working number)のビッ
トを有していることがある。例えば、全てのセット
、Rで得られる全てのオペコードの有効数は、算
出した最小数aないしbの最大数(highest compute
d minimumpossible number aj or bi)と等しくなるよう
に設定しておいても良い。
【0053】ステップS3では、内部フォーマットで全
てのオペレーションにわたり反復(iterate)して、各外
部フォーマットに発生した場合に当該外部フォーマット
でのオペコードを判定する。
【0054】各反復ごとにステップS4からS9が繰り
返される。各反復ごとに一つの基本オペレーションが考
慮される。ステップS4においては、考慮されているオ
ペレーションについて、当該オペレーションを翻訳する
のに必要な各マッピングファンクションの内部フォーマ
ットと外部フォーマットのための対のセットR、Q
を調べて、相互セットhとして、対を構成する二つの
セットが共有している数を識別する。ステップS5で
は、全ての必要なマッピングファンクションの全ての相
互セットhの共通数(common number)のセットHを生
成する。ステップS6での結果がセットは0とでれば、
許容しうるマッピングが見つからないので、ステップS
11へ進んで制約(constraints)を解く。逆に、Hに少
なくとも一つの共通オペコードが含まれていると、図5
に示すステップS7へ進んで、Hにおける共通オペコー
ド、或いは、その一つを選択する。
【0055】ステップS7以後のフローを示す図5にお
いて、その後ステップS8において選ばれたオペコード
が、考慮しているオペレーションがでている外部及び内
部フォーマット、即ち、ステップS4で調べたセットの
各セットR、Qから除外する。
【0056】図4と図5に示したプロセスは、全ての必
要な外部及び内部フォーマットでの全てのオペレーショ
ンにオペコードを首尾良く割り当てるステップS9で終
了する。
【0057】前述のプロセスは、ステップS11での逆
トラッキング法(back-tracking process)で、コードの
合同アサインメントを見つけるのに必要な数のオペコー
ドが得られるまで符号化制約を継続して解放することか
ら、確実の終了するようになっている。
【0058】外部フォーマットFiからビットを選択す
るほかに、マッピングファンクションでビットを入れ替
えることもある。例えば、ビットの順序がマッピングフ
ァンクションで逆になることがある。そのような入替え
は、マッピングしたビットの数がq=min(a、b)
に達したときに利用できる。
【0059】p=max(a、b)であれば、あり得る入
れ替えの全回数はp!/(p-q)!である。従って、大量の
命令セットの場合、あり得る入れ替えの回数も非常に多
くなる。しかしながら、現実には、pは約5でありqは
約3であるのが通常である。と言うことは、各マッピン
グにつき最大で60の異なった入替え機能があることを
意味する。一般に、五つの異なったマッピングがあると
考えられるから、ステップS4からS9で定めたプロセ
スの各反復を考慮する場合、マッピングファンクション
の数が全部で60(即ち、778x100万の可能性)
も考えられることになる。これでも、自動的に計数して
評価する現在のコンピュータの能力に入っている。
【0060】フィールド幅がより大きい場合、あり得る
入替えの数は手に負えないほどになる。しかし、本例の
場合、サーチすべき入替えの種類(class)を制限するこ
とにより、前述のプロセスをうまく操作することができ
るのである。例えば、恣意的なビット対をスワップする
ことにより定義付けられるnビットフィールドの入替え
がn(n+1)/2もある。プロセスにより調べるべき入替
えに対する斯かる制限を選択することにより、プロセス
の運用時間をnの多項式(polynomial)に制限することが
できる。
【0061】次に、図4と図5とを参照して説明したプ
ロセスの作用を一例を示しながら説明する。この一例に
おいては、例えば図2に示したプロセッサの如くのVL
IWプロセッサは、出力スロットA、Bから二つの命令
を同時に出力できる能力を有しているものとする。
【0062】図6において、出力スロットAから出力さ
れる命令に割り当てた外部VLIWフォーマットは、第
1及び第2外部VLIWフォーマットF、Fからな
るものと示してある。同図では、外部フォーマットF
のオペコードビットをCで、また、フォーマットF
のオペコードビットをCでそれぞれ示す。
【0063】出力スロットBから命令を出力させる場合
でも、二つの外部VLIWフォーマットが利用でき、そ
の内の一つは出力スロットAから得られるのと同じ外部
フォーマットFであり、残りは第3外部VLIWフォ
ーマットFである。フォーマットFでのオペコード
ビットは、図6においてはCで示されている。
【0064】また、本例でのプロセッサはスカラーモー
ドで動作して、二つの異なった16ビットスカラー外部
フォーマットF、Fの何れか一方での命令を実行す
ることができるようになっている。図6では、フォーマ
ットFでのオペコードビットをCで、また、フォー
マットFでのオペコードビットをCでそれぞれ示
す。
【0065】本例におけるプロセッサには二つの内部フ
ォーマットG、Gがある。図6ではこの内部フォー
マットGのオペコードビットをCで、また、内部フ
ォーマットGのオペコードビットをCでそれぞれ示
す。各スカラー命令が、Cフィールドか、Cフィー
ルドの何れかに符号化された、一方または両方の内部フ
ォーマットG、Gでの単一オペレーションに翻訳さ
れる。
【0066】また、図6に概略的に示したように、プロ
セッサには三つの翻訳装置30、32、34が備わって
いる。翻訳装置30は出力スロットAに対応して、外部
フォーマットFのオペコードビットCまたは外部フ
ォーマットFのオペコードビットCを内部フォーマ
ットGのオペコードビットCか、または、内部フォ
ーマットGのオペコードCに翻訳する。同様に、翻
訳装置32は出力スロットBに対応して、外部フォーマ
ットFのオペコードビットCまたは外部フォーマッ
トFのオペコードビットCを内部フォーマットG
のオペコードビットCか、または、内部フォーマット
のオペコードCに翻訳する。
【0067】更に、翻訳装置34はスカラー命令に対応
していて、外部フォーマットFのオペコードビットC
または外部フォーマットFのオペコードビットC
を内部フォーマットGのオペコードビットCか、ま
たは、内部フォーマットGのオペコードCに翻訳す
る。以上のことから、図6の翻訳装置30、32は、図
2に示した翻訳装置4、6、8に対応しており、翻訳装
置34は同じく翻訳装置9に対応しているのは明らかで
あろう。
【0068】図7において、本例でのプロセッサは、加
算add、論理OR演算or、乗算mul、ロード即時演算(loa
d immediate operation)li、減算sub、VLIWモード
から復帰演算rv、除算divと言った七つの基本演算セッ
トを有している。図7に示した表では、第1カラム(左
端カラム)に前述の七つの基本演算を示している。その
隣の第2カラムには、該当するオペレーションがでるよ
うになっている内部フォーマットを示している。add、o
r、mul、li、subの各演算は内部フォーマットG 、G
の両方にでるようになっているので、「G」行と「G
」行とがそれぞれにあるが、rv、divの各演算は内部フ
ォーマットGにでてくるので、「G」行はない。
【0069】図7における残りの六つのカラムは五つの
外部命令フォーマットF〜Fに関するものである。
外部フォーマットFは、出力スロットAと出力スロッ
トBとの両方からでるので、本例では二つのカラムを割
り当てている。
【0070】六つの外部フォーマットのカラムにおける
各セルは一つの命令に対応している。これらのセルに
は、斜線を施したものと、そうでないものとが混在して
いる。行GとFにおけるセルの命令Iは、外部フォ
ーマットFで表されていなければならず、また、その
セルに斜線が施してあれば、内部フォーマットGに翻
訳されなければならない。そのセルに斜線が施されてい
ない場合では、当該命令Iは、外部フォーマットF
はないことになる。図7において*印を付したセルにつ
いて考えてみる。このセルは、命令についての行G
かラムFとの交点にある。セルに斜線があると言うこ
とは、外部フォーマットFと内部フォーマットG
に命令があって、オペレーションのためのオペコードが
両方のフォーマットにおいてほぼ選ばれていなければな
らないこと、また、これら二つのフォーマットの間で命
令の翻訳がなければならないことを表している。
【0071】図4と図5とを参照しながら説明したアル
ゴリズムを図6と図7に示した本例に当てはめて、オペ
コードと、各フォーマットでのオペコードフィールド幅
と、フォーマット間でのマッピングファンクション(翻
訳)を求める。本例での基本演算のセットWは、下記の
如く書き表すことができる。 W={add, or, mul, li, sub, rv, div} …… (式3) 内部フォーマットの数Nは2(GとG)であり、外部
フォーマットの数Mは5(F〜F)である。
【0072】図7を参照して、どのオペレーションであ
ろうとも行Gにおけるセルに斜線が施されておれば、
各外部フォーマットFにマッピングファンクションm
i, が必要になる。例えば外部フォーマットFに注
目すると、Fカラムと各G 行との交点のセルには斜
線がないので、内部フォーマットGにはマッピングフ
ァンクションが必要であるが、内部フォーマットG
はそれは必要でないことが分かる。従って、本例では、
1,1、m2,1、m2,2、m3,2、m4,1、m
4,4、m5,1、m5,2のマッピングファンクション
が必要である。
【0073】図7から直接導き出される各オペレーショ
ンごとの翻訳対tは下記の通りである。
【0074】アルゴリズム(図4)のステップS1におい
て、各フォーマットに要するオペコードの数が求まる。
このオペコードの数は各外部フォーマットごとに、その
外部フォーマットのカラムの中に少なくとも斜線のある
セルが該当するオペレーションの数を観察することで決
めることができる。例えば外部フォーマットFの場
合、四つのオペレーション(add, or, mul, sub)におい
て対応するカラムに斜線のあるセルが見られる。外部フ
ォーマットのカラムが二つ(外部フォーマットF の如
く)ある場合では、一方のカラムに一つの内部フォーマ
ットが、他方のカラムにも内部フォーマットがあって
も、オペレーションは1回あるものと計上する。従っ
て、外部フォーマットF2の場合では、オペレーション
の数|F|は4である。
【0075】内部フォーマットの場合では、オペコード
の所要数は、対応する内部フォーマットに割り当てた行
の全数(少なくとも一つの斜線付きセルを含む)を計算す
ることにより算出できる。例えば、内部フォーマットG
には、斜線付きセルのある行が5行もある。他方、内
部フォーマットGには、斜線付きセルのある行が7行
もある。従って、異なった内部及び外部フォーマットに
必要なオペコードの数は、|G |=5、|G|=7、|F
|=4、|F|=4、|F|=6、|F|=4、|F|=5
である。
【0076】その結果、ステップS1では、有効オペコ
ードビットの初期数は、a=3、a=3、b=2、
=2、b=3、b=2、b=3と判定される。こ
れらの数は、関係のあるフォーマットででてくる数のオ
ペレーションを理論的に符号化するビットの考えられる
最小値を表しており、前記アルゴリズムの実行過程で増
加することがある。
【0077】ステップS2では、得られる一組のオペコ
ードが各外部フォーマットごと、また、各内部フォーマ
ットごとに下記式5に示すように生成される。 R={000, 001, 010, 011} R={000, 001, 010, 011} R={000, 001, 010, 011, 100, 101, 110, 111} R={000, 001, 010, 011} …… (式5) R={000, 001, 010, 011, 100, 101, 110, 111} Q={000, 001, 010, 011, 100, 101, 110, 111} Q={000, 001, 010, 011, 100, 101, 110, 111}
【0078】各オペコードにおけるビットの有効数は、
最初は内部及び外部フォーマットの中でのオペコードビ
ットの最大所要数と等しくなるように設定されており、
即ち、フォーマットG、G、Fでの所要オペコー
ドビット数は3である。外部フォーマットF1に対する
オペコードの初期セットRは、四つの3ビットコード
000、001、010、011から成り立っている。bはステッ
プS1で2と計上されるので、四つのコードが必要であ
る。このことは、他の2ビット外部フォーマットR
についてもあてはまる。
【0079】外部フォーマットF、Fの場合では、
八つのコードが必要であり、RとRに割り当てた初
期コードは000、001、010、011、100、101、110、111で
ある。各内部フォーマットG、Gも八つのコード
(a=3、a=3)が必要であり、従ってこれらの内部
フォーマットのオペコードの初期セットQ、Qも、
外部フォーマットR、Rに対するのと同一である。
【0080】ステップS3では、第一回目の一連の反復
が開始し、この第一回目の一連の反復において図7に示
した最初のオペレーション、即ち、加算が先ず考慮対象
として選択される。ステップS4では、外部及び内部フ
ォーマットの該当各対(全体で八対、即ち、本例では、
-G、F-G、F-G、F-G、F-
、F-G、F-G、F-G)における未使
用(未割当て)のオペレーションに得られるオペコードが
考慮される。割り当てられているオペコードがないか
ら、五つの対F-G、F-G、F-G、F-
、F-Gは、h={000、001、010、011}であ
り、三つの対F-G、F-G、F-Gは、h
={000、001、010、011、100、101、110、111}であ
る。従って、ステップS5ではH={000、001、010、01
1}となる。
【0081】ステップS6では、Hか空(0)かどうかが
チェックされる。この場合では槽ではないから、ステッ
プS7に進む。このステップS7では、オペコードc=0
00がHから先ず選択される。従って、このオペコード00
0が加算オペレーションに割り当てられるようになる。
次のステップS8では、内部フォーマットのオペコード
セットQ、Qが更新されて、オペコード000が含ま
れておればそのオペコードが更新に伴って除去される。
従って、各セットQ、Qからコード000が除去され
るのである。また、このステップS8では、該当する各
外部フォーマット(本例では、外部フォーマットF
の全て)煮えられるオペコードのセットが更新さ
れ、それに伴い、オペコード000が含まれておれば当該
オペコードが除去される。従って、各セットR〜R
のそれぞれから000が除去されるのである。
【0082】最初の反復で行われる割当ての結果を図8
に示す。図8から図15においては、セットQまたはR
に残っているオペコードが示されている。また、外部及
び内部フォーマットに対してなされた全ての割当ては該
当するセルに書き込まれている。
【0083】その後、ステップS3に戻って、第一回目
の二番目の反復を行う。この二番目の反復においては、
or演算を考慮する。ステップS4で考慮すべき対は、一
番目の反復におけるの同一である。すると、ステップS
4、S5の結果は、H={001、010、011}となる。次のス
テップS6ではHは空ではないと判断され、ステップS
7へ進み、オペコードc=001が選ばれる。従って、ステ
ップS8では、オペコード001が、内部フォーマットG
、Gに得られるオペコードの各セットQ 、Q
ら除去される。同様に、外部フォーマットF〜F
それぞれのセットR〜Rにおいても、オペコード00
0が除去される。この二番目の反復の結果は図9に示す
とおりである。
【0084】三番目の反復においては、mul演算を考慮
する。ここでも、ステップS4において考慮すべき対は
一番目と二番目の反復におけるのと同一であるから、ス
テップS5で行われる演算の結果Hは、{010、011}であ
り、従って、ステップS7ではオペコード010が選択さ
れる。次のステップS8では、全てのセットQ
、R〜Rからオペコード010が除去される。従
って、010がmul演算に割り当てられるようになる。この
時の状態を図10に示す。
【0085】第一回目の四番目の反復では、li命令を考
慮する。この場合、ステップS4で調べるべき対はF
-G、F-G、F-G、F-Gである。この
反復の過程でのステップS5では、H={011}と判定され
る。この場合、Hセットは空ではないから、ステップS
7に進んで、コード011(セットHに得られる唯一のコー
ド)が選択される。それ故、コード011がliに割り当てら
れるようになる。このコード011は、該当するセットQ
、Q、R、Rから除去されるが、セットR
、Rではそのままになる。それにより得られた状
態を図11に示す。
【0086】五番目の反復では、sub命令を考慮する。
ステップS4においては、翻訳セットはTsub={<
1、1>、<3、2>、<5、1>、<5、2>}である。従っ
て、これらの翻訳に対する外部及び内部フォーマットの
対がF-G、F-G、F -G、F-Gであ
るから、共通セットhは、F-Gの場合では{}、
-G、F-G、F-Gの場合では{100, 10
1, 110, 111}である。このことは、ステップS5でH=
{φ}であることを意味する。何故なら、100, 101,110,
111は依然とR、R、Q、Qでは未使用ではあ
るが、これらのコードが、011だけを含む残りのセット
で得られることはないからである。従って、ステッ
プS6を経てステップS11に進み、そこで制約が評価
される。その結果で、RとQ(及びRとQ)との
交点は空セットと判定される。RはQとQよりも
数が小さいから、Rが制約要因であるとみるのは理に
叶っている。この制約を克服するためには、Fに対す
る有効オペコードビットの数を、その初期値である2以
上に増加させる必要がある。従って、aは1だけ増え
て3になる。残りの値a〜a、b、bはそのま
ま残る。
【0087】さて、それまでのオペコード割当てが全て
無になって、第二回目の一連の反復がステップS2にて
開始する。この一連の反復では、当所はR1={000、00
1、010、011、100、101、110、111}である。この第二回
目における五番目の反復では、sub演算が再び考慮され
る。この段階における状態を図12に示す。この時での
ステップS5では、H={100、101、110、111}である。
ステップS7ではオペコード100が選ばれる。ステップ
S8では、この100がR、R、R、Q、Q
ら除去される。この結果を図13に示す。
【0088】第二回目の六番目の反復では、rv命令につ
いて初めて考慮する。ステップS5では、H-{101、11
0、111}である。ステップS7ではオペコード101が選ば
れ、ステップS8ではこの101がR、Qから除去さ
れる。この結果を図14に示す。また、第二回目の七番
目の反復では、div命令を初めて考慮する。この場合で
のステップS5はH={110、111}であり、ステップS7
でオペコード110が選択され、ステップS8では100がR
、R、Qから除去されて図14に示すような結果
となる。
【0089】この時点で全ての命令にオペコードが割り
当てられ、ステップS10に進む。このステップでは、
これまでに割り当てたオペコードを調べて、各外部フォ
ーマットにおける命令に実際に必要な該当外部フォーマ
ットにおけるビットの数を判断する。例えば、外部フォ
ーマットFでは、割り当てたコード000、001、010、0
11全てが接頭値0を持っている。このことは、接頭値0
は外部フォーマットFでは冗長なものであることを意
味する。従って、フォーマットFが、他の全ての外部
フォーマットと区別できるようであれば、この接頭値0
はフォーマットFにおける命令から省くことができる
ので、フォーマットFには2ビットオペコードフィー
ルドだけで充分である。
【0090】以上のことから、マッピングファンクショ
ンm4、1、m4、2、m2、1、m 2、2で翻訳時に
接頭値0を挿入して、フォーマットFでのadd、or、m
ul、li演算がフォーマットF、F、Fでのsub、r
v、div演算と区別するのは言うまでもない。この最適化
ステップS10は、接頭ビットの数が、各オペレーショ
ンに各外部フォーマットでの特有なオペコードを与える
のに必要な各命令セットにおけるビット数よりも大きい
場合に特に重要になってくる。最適化の後の最終オペコ
ードを図16に示す。
【0091】本発明を実施する方法は、コンピュータプ
ログラムに従って稼働する汎用コンピュータで実行する
ことができるものである。このコンピュータプログラム
としては、記憶媒体(例えば、フロッピー(登録商標)
ディスク、CD-ROMなど)の如くの適当な担持媒体、
または、担持信号に記録されていても良い。斯かる担持
信号としては、インターネットの如くの通信網からダウ
ンロードされるような信号であっても良い。コンピュー
タプログラムに関わる本明細書に添付の請求の範囲は、
コンピュータプログラムそのもののみならず、前述した
あらゆる形態のコンピュータプログラムを含むものと解
すべきである。
【0092】ここまでなした説明は、一例としてVLI
Wプロセッサを挙げて行ったが、本発明はVLIWプロ
セッサ以外のプロセッサにも適用できるものである。本
発明を実施するプロセッサは、マルチメディア用途、通
信網ルータ、ビデオモバイル電話、インテリジェント自
動車、デジタルテレビ、音声認識、3Dゲームなどに使
われる高密度集積化「ワン・チップ・システム(system-on-
a-chip, SOC)」におけるプロセッサ「コア」として含まれ
ることがある。
【図面の簡単な説明】
【図1】 余分のコンパクトな命令セットを有する従来
のプロセッサを説明する説明図。
【図2】 本発明を実施したプロセッサの構成を示すブ
ロック図。
【図3】 (A)は従来の命令符号化の説明図であり、
(B)は合同命令符号化の説明図。
【図4】 本発明による命令符号化の方法を示すフロー
チャートの一部。
【図5】 本発明による命令符号化の方法を示すフロー
チャートの残部。
【図6】 一例における外部及び内部命令フォーマット
の概略図。
【図7】 図6の特定の例に適用した自動符号化方法の
異なった段階を説明するのに利用するチャート。
【図8】 図6の特定の例に適用した自動符号化方法の
異なった段階を説明するのに利用するチャート。
【図9】 図6の特定の例に適用した自動符号化方法の
異なった段階を説明するのに利用するチャート。
【図10】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図11】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図12】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図13】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図14】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図15】 図6の特定の例に適用した自動符号化方法
の異なった段階を説明するのに利用するチャート。
【図16】 図8から図15に示した方法で達成できた
最終命令符号化を示す。
【符号の説明】
4…第1翻訳装置 6…第2翻訳装置 8…第3翻訳装置 9…スカラー翻訳装置 10…命令発生装置 12…スケジュール記憶装
置 14…第1実行装置 16…第2実行装置 18…第3実行装置 20…レジスタファイル 26…外部メモリ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/45 G06F 9/44 322Z 322F Fターム(参考) 5B013 AA16 DD00 DD04 5B033 AA06 AA10 AA14 BA00 BA02 BB00 BB02 BE00 BE05 DC08 5B081 CC21 CC32

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 それぞれに実行すべきオペレーションを
    指定するオペコードが含まれる、プロセッサが受ける命
    令のある第1及び第2外部命令フォーマットと、 前記外部フォーマットでの命令がオペレーションの実行
    前に翻訳される内部命令フォーマットとからなり、前記
    各外部フォーマットには、オペコードがでてくる一つか
    それ以上の予め選ばれたオペコードビットがあり、 前記オペレーションが、前記第1及び第2外部フォーマ
    ットで指定しうる第1演算と、前記第2外部フォーマッ
    トで指定しうる第2演算とを含み、 前記第1及び第2演算は、前記第2外部フォーマットに
    おいて互いに異なったオペコードを有しており、 前記第1及び第2外部フォーマットが共有している、予
    め選ばれた前記各オペコードビットにおいて、前記二つ
    の外部フォーマットでの第1演算のオペコードが同一で
    あることよりなるプロセッサ。
  2. 【請求項2】 請求項1に記載のものであって、 前記オペレーションが、それぞれが前記第1及び第2外
    部フォーマットで指定しうる一つかそれ以上の別の第1
    演算と、前記第2外部フォーマットで指定しうる一つか
    それ以上の別の第2演算とを含み、 一つの前記第1演算と一つの前記第2演算とからなる前
    記オペレーションの対ごとに、対をなすオペレーション
    が前記第2外部フォーマットで異なったオペコードを有
    しており、 第1及び第2外部フォーマットが共有している、予め選
    ばれた前記各オペコードビットにおいて、前記二つの外
    部フォーマットでの各第1演算のオペコードが同一であ
    ることよりなるプロセッサ。
  3. 【請求項3】 請求項1または2に記載のものであっ
    て、 それぞれに実行すべきオペレーションを指定するオペコ
    ードが含まれる、プロセッサが受ける命令のある第3外
    部命令フォーマットと、 前記外部フォーマットでの命令がオペレーションの実行
    前に翻訳される第1及び第2内部命令フォーマットとか
    らなり、前記第3外部フォーマットには、オペコードが
    でてくる一つかそれ以上の予め選ばれたオペコードビッ
    トがあり、 前記第2演算が、前記第2及び第3外部フォーマットで
    指定しうるようになっており、 前記第1及び第2外部フォーマットの何れかで前記第1
    演算を指定する命令が前記第1内部フォーマットに翻訳
    されると共に、前記第2及び第3外部フォーマットで前
    記第2演算を指定する命令が前記第2内部フォーマット
    に翻訳されるようになっており、 慚前記2及び第3外部フォーマットが共有している、予
    め選ばれた前記各オペコードビットにおいて、前記二つ
    の外部フォーマットでの第2演算のオペコードが同一で
    あることよりなるプロセッサ。
  4. 【請求項4】 請求項3に記載のものであって、 前記オペレーションが、それぞれが前記第1及び第2外
    部フォーマットで指定しうる一つかそれ以上の別の第1
    演算と、前記第2外部フォーマットで指定しうる一つか
    それ以上の別の第2演算とを含み、 一つの前記第1演算と一つの前記第2演算とからなる前
    記オペレーションの対ごとに、対をなすオペレーション
    が前記第2外部フォーマットで異なったオペコードを有
    しており、 第1及び第2外部フォーマットが共有している、予め選
    ばれた前記各オペコードビットにおいて、前記二つの外
    部フォーマットでの各第1演算のオペコードが同一であ
    ることよりなるプロセッサ。
  5. 【請求項5】 請求項1から4までの何れか一項に記載
    のものであって、前記プロセッサがVLIWプロセッサ
    であって、その場合一方の外部フォーマットがスカラー
    命令に利用されるスカラー命令フォーマットであり、他
    方のフォーマットがVLIW命令に利用されるVLIW
    命令フォーマットであることよりなるプロセッサ。
  6. 【請求項6】 請求項1から5までの何れか一項に記載
    のものであって、前記プロセッサがVLIWプロセッサ
    であって、外部フォーマットが、二つの異なったVLI
    Wフォーマットであるか、または、それを含んでなるプ
    ロセッサ。
  7. 【請求項7】 請求項6項に記載のものであって、前記
    プロセッサがVLIWプロセッサであって、その場合、
    VLIW命令パーセルの異なったスロットで二つの異な
    ったVLIWフォーマットがそれぞれ利用されてなるプ
    ロセッサ。
  8. 【請求項8】 請求項6または7に記載のものであっ
    て、VLIW命令パーセルの少なくとも一つの命令スロ
    ットが前記二つの異なったVLIWフォーマットを利用
    していることよりなるプロセッサ。
  9. 【請求項9】 請求項1から8までの何れか一項に記載
    のものであって、一方の外部フォーマットの命令幅が他
    方の外部フォーマットのそれとは異なっていることより
    なるプロセッサ。
  10. 【請求項10】 請求項1から9までの何れか一項に記
    載のものであって、前記各外部フォーマットのオペコー
    ドを対応する内部フォーマットのオペコードに翻訳する
    所定の翻訳演算を行う翻訳手段を有してなるプロセッ
    サ。
  11. 【請求項11】 請求項10に記載のものであって、前
    記翻訳演算が、前記外部フォーマット命令における前記
    予め選ばれたオペコードビットからのビットの選択と入
    替えの何れか、または、両方行うことよりなるプロセッ
    サ。
  12. 【請求項12】 請求項10または11に記載のもので
    あって、前記翻訳演算が外部フォーマットのオペコード
    とは独立してなるプロセッサ。
  13. 【請求項13】 請求項12に記載のものであって、前
    記翻訳手段が、各外部フォーマット命令が翻訳されるべ
    き内部フォーマットを識別し、前記翻訳演算を識別した
    内部フォーマットに従って実行するようになっているこ
    とよりなるプロセッサ。
  14. 【請求項14】 それぞれに実行すべきオペレーション
    を指定するオペコードが含まれる、プロセッサが受ける
    命令のある第1及び第2外部命令フォーマットと、 前記外部フォーマットでのプロセッサ命令がオペレーシ
    ョンの実行前に翻訳される内部命令フォーマットからな
    り、前記各外部フォーマットには、オペコードがでてく
    る一つかそれ以上の予め選ばれたオペコードビットがあ
    り、 プロセッサが実行しうる第1演算が、前記第1及び第2
    外部フォーマットで指定しうると共に、プロセッサが実
    行しうる第2演算が前記第2外部フォーマットで指定し
    うるようになっており、 前記第1及び第2演算は、前記第2外部フォーマットに
    おいて互いに異なったオペコードを有しており、 前記第1及び第2外部フォーマットが共有している、予
    め選ばれた前記各オペコードビットにおいて、前記二つ
    の外部フォーマットでの第1演算のオペコードが同一で
    あることよりなるプロセッサ命令符号化。
  15. 【請求項15】 それぞれに実行すべきオペレーション
    を指定するオペコードが含まれる、プロセッサが受ける
    命令のある第1及び第2外部命令フォーマットと、前記
    外部フォーマットでの命令がオペレーションの実行前に
    翻訳される内部命令フォーマットとからなり、前記各外
    部フォーマットには、オペコードがでてくる一つかそれ
    以上の予め選ばれたオペコードビットがあり、前記オペ
    レーションが、前記第1及び第2外部フォーマットで指
    定しうる第1演算と、前記第2外部フォーマットで指定
    しうる第2演算とを含み、前記第1及び第2演算は、前
    記第2外部フォーマットにおいて互いに異なったオペコ
    ードを有しており、前記第1及び第2外部フォーマット
    が共有している、予め選ばれた前記各オペコードビット
    において、前記二つの外部フォーマットでの第1演算の
    オペコードが同一であることよりなるプロセッサのため
    のプロセッサ命令の符号化方法であって、 前記第2外部フォーマットでの異なったオペコードを有
    する前記第1及び第2演算を符号化するステップと、 前記第1及び第2外部フォーマットが共有している、予
    め選ばれた前記各オペコードビットにおいて、前記二つ
    の外部フォーマットでの第1演算のオペコードが同一と
    なるように、前記第1及び第2外部フォーマットで前記
    第1演算のオペコードを符号化するステップとからなる
    符号化方法。
  16. 【請求項16】 二つかそれ以上の外部命令フォーマッ
    トと、一つかそれ以上の内部命令フォーマットとを有す
    るプロセッサのための命令符号化方法であって、 (a) 各外部及び内部フォーマットでの複数の有効オペ
    コードと、それぞれが、前記外部フォーマットの一つの
    前記オペコードビットにより指定されるオペコードを、
    前記内部フォーマットの少なくとも一つの前記オペコー
    ドビットにより指定されるオペコードに翻訳する一組の
    マッピングファンクションとを含む初期符号化パラメー
    タを選択するステップと、 (b) オペレーションが指定できる各外部及び内部フォ
    ーマットでの他のそれぞれのオペレーションに割り当て
    るオペコードとは別のオペコードを、プロセッサが実行
    しうる各オペレーションに割り当てるステップと、 (c) 前記ステップ(b)において前記オペレーションの
    それぞれに対する各指定可能なフォーマットで割当てに
    使えるオペコードがない場合、前記符号化パラメータの
    どれが前記ステップ(b)での割当てを制約しているかを
    判定し、制約しているパラメータを解放して前記ステッ
    プ(b)を繰り返すステップとからなる方法であって、 前記割当てステップ(b)で割り当てたオペコードは、該
    当する各マッピングファンクションでオペレーションに
    割り当てた外部フォーマットの斯かるオペコードを、当
    該オペレーションに割り当てた外部フォーマットの斯か
    るオペコードに翻訳して、オペレーションに割り当てた
    全ての内部フォーマットのオペコードが同じ有効オペコ
    ードビットを有するようにするものであることよりなる
    命令符号化方法。
  17. 【請求項17】 請求項16に記載の方法であって、前
    記各マッピングファンクションが、外部フォーマットの
    オペコードの全てのビットを内部フォーマットのオペコ
    ードのビットの一部、または全てとして選択するように
    なっている命令符号化方法。
  18. 【請求項18】 請求項16または17に記載の方法で
    あって、前記ステップ(a)において各外部及び内部フォ
    ーマットごとに、前記有効オペコードビットの数が、関
    係するフォーマットに指定しうるオペレーションの数を
    理論的にふぐかできるオペコードビットの最小数と等し
    くなるようにされている命令符号化方法。
  19. 【請求項19】 請求項16から18までの何れか一項
    に記載の方法であって、前記ステップ(b)が一連の反復
    からなり、この一連の反復を開始する前に各外部及び内
    部フォーマットのオペコードが一組形成されるようにな
    っており、前記一連の反復における各反復において前記
    オペレーションが考慮されると共に、この考慮されてい
    るオペレーションへのオペコードの割当てが、その考慮
    されているオペレーションを指定しうる各外部及び内部
    フォーマットのオペコードの組の調査に基づいているこ
    とよりなる命令符号化方法。
  20. 【請求項20】 請求項19に記載の方法であって、各
    外部及び内部フォーマットごとに、一連の反復を開始す
    る前に形成された一組のオペコードが、そのフォーマッ
    トに現に適応しうる有効オペコードビットの前記数に応
    じて複数の数を有してなる命令符号化方法。
  21. 【請求項21】 請求項19または20に記載の方法で
    あって、全ての組で得られるオペコードが同一有効数の
    ビットを有してなる命令符号化方法。
  22. 【請求項22】 請求項21に記載の方法であって、前
    記有効数が、関係のあるフォーマットで指定しうるオペ
    レーションの最大数を有する外部ないし内部フォーマッ
    トで指定しうるオペレーションの数を理論的に符号化で
    きるオペコードビットの最小数と等しくなるように設定
    されてなる命令符号化方法。
  23. 【請求項23】 請求項19から22までの何れか一項
    に記載の方法であって、前記ステップ(b)の各反復が、 (b-1) 得られるオペコードがあるとすれば、それが考
    慮されているオペレーションを指定しうる全ての外部及
    び内部フォーマットに対する組に共通しているかどうか
    を判定するステップと、 (b-2) 前記ステップ(b-1)で一つかそれ以上の得られる
    オペコードが共通していると判定されると、一つかそれ
    以上の共通オペコードを選択してそれを考慮しているオ
    ペレーションに割り当てる一方、考慮しているオペレー
    ションを指定しうる各外部及び内部フォーマットの組か
    ら前記選択されたオペコードを除去するステップとから
    なる命令符号化方法。
  24. 【請求項24】 請求項23に記載の方法であって、前
    記ステップ(b)の各反復が、 (b-3) 前記ステップ(b-1)で共通するオペコードが、考
    慮しているオペレーションを指定しうる全ての外部及び
    内部フォーマットの組にないと判定されると、全ての割
    り当てたオペコードを無にしてステップ(c)を行うステ
    ップを更に備えてなる命令符号化方法。
  25. 【請求項25】 請求項16から24までの何れか一項
    に記載の方法であって、 (d) 全てのオペレーションに、前記有効数のビットを
    有する前記得られるオペコードの一つを割り当てた後、
    その有効数が、特有のオペコードで外部フォーマットの
    指定しうる各オペレーションを行うのに必要なビットの
    最小数よりも大きいかどうかを各外部フォーマットごと
    に判定し、もしそうであれば、その外部フォーマットの
    割り当てたオペコードを判定したビットの最小数に制限
    するステップを更に設けてなる命令符号化方法。
  26. 【請求項26】 請求項25に記載の方法であって、前
    記ステップ(d)が、(d-1) 各外部フォーマットの割り当
    てた全てのオペコードに対する最大長共通接頭値がもし
    あれば、それをその外部フォーマットごとに識別するス
    テップと、(d-2) その外部フォーマットの割り当てた
    全てのオペコードから識別した共通接頭値を除去するス
    テップと、(d-3) その外部フォーマットのオペコード
    ビットで指定しうるオペコードを内部フォーマットのオ
    ペコードで指定されたオペコードに翻訳して、マッピン
    グファンクションで識別した共通接頭値を前記翻訳中に
    外部フォーマットのオペコードビットに付するように、
    各マッピングファンクションを調整するステップとから
    なる命令符号化方法。
  27. 【請求項27】 請求項16から26までの何れか一項
    に記載の方法であって、前記ステップ(c)において外部
    ないし内部フォーマットの一つの有効オペコードビット
    の数が制約パラメータであると判定されると、そのフォ
    ーマットの有効オペコードビットの数を増加するように
    なっていることよりなる命令符号化方法。
  28. 【請求項28】 請求項16から17までの何れか一項
    に記載の方法であって、該方法が電子データ処理手段に
    より行われることよりなる命令符号化方法。
  29. 【請求項29】 それが実行されると、二つかそれ以上
    の外部命令フォーマットと一つかそれ以上の内部命令フ
    ォーマットとを有するプロセッサのための命令を符号化
    するコンピュータプログラムを記録した記録媒体であっ
    て、 (a) 各外部及び内部フォーマットでの複数の有効オペ
    コードと、それぞれが、前記外部フォーマットの一つの
    前記オペコードビットにより指定されるオペコードを、
    前記内部フォーマットの少なくとも一つの前記オペコー
    ドビットにより指定されるオペコードに翻訳する一組の
    マッピングファンクションとを含む初期符号化パラメー
    タを選択し、 (b) オペレーションが指定できる各外部及び内部フォ
    ーマットでの他のそれぞれのオペレーションに割り当て
    るオペコードとは別のオペコードを、プロセッサが実行
    しうる各オペレーションに割り当て、 (c) 前記(b)において前記オペレーションのそれぞれ
    に対する各指定可能なフォーマットで割当てに使えるオ
    ペコードがない場合、前記符号化パラメータのどれが前
    記(b)での割当てを制約しているかを判定し、制約して
    いるパラメータを解放して前記(b)を繰り返すようにな
    っており、 前記(b)で割り当てたオペコードは、該当する各マッピ
    ングファンクションでオペレーションに割り当てた外部
    フォーマットの斯かるオペコードを、当該オペレーショ
    ンに割り当てた外部フォーマットの斯かるオペコードに
    翻訳して、オペレーションに割り当てた全ての内部フォ
    ーマットのオペコードが同じ有効オペコードビットを有
    する前記コンピュータプログラムを記録した記録媒体。
JP2001287070A 2000-10-09 2001-09-20 プロセッサ用命令セット Pending JP2002149399A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0024723A GB2367915B (en) 2000-10-09 2000-10-09 Instruction sets for processors
GB0024723 2000-10-09

Publications (1)

Publication Number Publication Date
JP2002149399A true JP2002149399A (ja) 2002-05-24

Family

ID=9900945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001287070A Pending JP2002149399A (ja) 2000-10-09 2001-09-20 プロセッサ用命令セット

Country Status (5)

Country Link
US (2) US7130989B2 (ja)
EP (1) EP1195674A1 (ja)
JP (1) JP2002149399A (ja)
CN (1) CN1347028A (ja)
GB (1) GB2367915B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504115A (ja) * 2009-09-04 2013-02-04 インテル ベネラックス ビー.ブィー. 方法および装置および記録されたキャリア
JP2017016637A (ja) * 2015-06-26 2017-01-19 インテル・コーポレーション 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030195780A1 (en) * 2001-12-13 2003-10-16 Liquid Engines, Inc. Computer-based optimization system for financial performance management
US20070061236A1 (en) * 2003-01-23 2007-03-15 Lehman Brothers Inc. Combination of financial instruments and method for implementing investment strategy
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
WO2010096119A1 (en) * 2008-10-29 2010-08-26 Adapteva Incorporated Variable instruction width digital signal processor
US20110283089A1 (en) * 2009-01-28 2011-11-17 Harshal Ingale modularized micro processor design
US9424042B2 (en) * 2011-12-06 2016-08-23 Intel Corporation System, apparatus and method for translating vector instructions
CN104679480A (zh) * 2013-11-27 2015-06-03 上海芯豪微电子有限公司 一种指令集转换系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0476722B1 (en) * 1985-04-08 1997-02-26 Hitachi, Ltd. Data processing system
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US6701515B1 (en) * 1999-05-27 2004-03-02 Tensilica, Inc. System and method for dynamically designing and evaluating configurable processor instructions
US6490716B1 (en) * 1999-08-20 2002-12-03 Hewlett-Packard Company Automated design of processor instruction units
US6385757B1 (en) * 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
US6408428B1 (en) * 1999-08-20 2002-06-18 Hewlett-Packard Company Automated design of processor systems using feedback from internal measurements of candidate systems
US6633969B1 (en) * 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6941548B2 (en) * 2001-10-16 2005-09-06 Tensilica, Inc. Automatic instruction set architecture generation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504115A (ja) * 2009-09-04 2013-02-04 インテル ベネラックス ビー.ブィー. 方法および装置および記録されたキャリア
JP2017016637A (ja) * 2015-06-26 2017-01-19 インテル・コーポレーション 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法
US9870339B2 (en) 2015-06-26 2018-01-16 Intel Corporation Hardware processors and methods for tightly-coupled heterogeneous computing
US10372668B2 (en) 2015-06-26 2019-08-06 Intel Corporation Hardware processors and methods for tightly-coupled heterogeneous computing

Also Published As

Publication number Publication date
US20050223192A1 (en) 2005-10-06
US7428630B2 (en) 2008-09-23
GB2367915B (en) 2002-11-13
GB2367915A (en) 2002-04-17
GB0024723D0 (en) 2000-11-22
CN1347028A (zh) 2002-05-01
EP1195674A1 (en) 2002-04-10
US20020056036A1 (en) 2002-05-09
US7130989B2 (en) 2006-10-31

Similar Documents

Publication Publication Date Title
US7428630B2 (en) Processor adapted to receive different instruction sets
US20190266217A1 (en) Apparatus and method for matrix computation
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
US7895417B2 (en) Select-and-insert instruction within data processing systems
US5696922A (en) Recursive address centrifuge for distributed memory massively parallel processing systems
JP5869125B2 (ja) エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
TW201445567A (zh) 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法
KR20080086739A (ko) 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법
Sun et al. An I/O bandwidth-sensitive sparse matrix-vector multiplication engine on FPGAs
US5765181A (en) System and method of addressing distributed memory within a massively parallel processing system
CN114090954A (zh) 一种基于ft-2000+的整数矩阵乘法内核优化方法
JP5218063B2 (ja) 命令オペコード生成システム
CN116521611A (zh) 一种深度学习处理器的泛化架构设计方法
CN109144471A (zh) 用于二进制向量分解的二进制乘法器
US7185041B1 (en) Circuit and method for high-speed execution of modulo division
CN108108189A (zh) 一种计算方法及相关产品
US20050154773A1 (en) Data processing apparatus and method for performing data processing operations on floating point data elements
CN111341374A (zh) 存储器的测试方法、装置及可读存储器
EP0733236B1 (en) Memory addressing for massively parallel processing systems
US7181595B1 (en) Method for decoding composite VLIW packets utilizing a tree structure
US8117507B2 (en) Decompressing method and device for matrices
CN112257843B (zh) 一种基于MobileNetV1网络推理任务的扩展指令集的系统
CN113222152B (zh) 一种量子态信息的获取方法及装置
CN112905181B (zh) 一种模型编译、运行方法及装置
WO2022067510A1 (zh) 一种处理器、处理方法及相关设备