[go: up one dir, main page]

JPH1165839A - プロセッサの命令制御機構 - Google Patents

プロセッサの命令制御機構

Info

Publication number
JPH1165839A
JPH1165839A JP9224081A JP22408197A JPH1165839A JP H1165839 A JPH1165839 A JP H1165839A JP 9224081 A JP9224081 A JP 9224081A JP 22408197 A JP22408197 A JP 22408197A JP H1165839 A JPH1165839 A JP H1165839A
Authority
JP
Japan
Prior art keywords
instruction
register
field
length
value
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.)
Granted
Application number
JP9224081A
Other languages
English (en)
Other versions
JP3781519B2 (ja
Inventor
Shunsuke Kamijo
俊介 上條
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP22408197A priority Critical patent/JP3781519B2/ja
Priority to US08/994,329 priority patent/US5938759A/en
Publication of JPH1165839A publication Critical patent/JPH1165839A/ja
Application granted granted Critical
Publication of JP3781519B2 publication Critical patent/JP3781519B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30189Instruction operation extension or modification according to execution mode, e.g. mode flag

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)

Abstract

(57)【要約】 【課題】 短いコードで多種類の命令コードが表現でき
るようにした命令コードのセットを実行できるプロセッ
サの命令制御機構の実現。 【解決手段】 命令デコーダ45と、レジスタ55と、即値
を記憶する記憶回路56と、演算回路63,64 とを備え、命
令フィールドと第1オペランドフィールドと第2オペラ
ンドフィールドで構成される命令コードを実行するプロ
セッサの命令制御機構において、第2フィールドにレジ
スタを記載したレジスタ命令コードは命令フィールドを
特定の値とし、第2フィールドの残りの部分に第2命令
フィールドを記載し、同一処理内容の即値命令コードと
即値類似レジスタ命令コードには、命令フィールドと第
2命令フィールドに同一の値を割り当て、特定の値を判
定するレジスタ命令検出回路43と、判定結果に従って命
令フィールドと第2命令フィールドのいずれかを命令デ
コーダに入力する選択回路44を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、効率的な命令セッ
トを簡単な機構で実行できるプロセッサの命令制御機構
に関し、特に命令コードを効率的に圧縮し、プログラム
サイズを小さくできる短縮長命令が使用できると共に多
数の命令を効率よく使用できる命令セットを実行できる
プロセッサの命令制御機構を簡単な機構で実現する技術
に関する。
【0002】
【従来の技術】プロセッサでは実行できる命令セットが
決められている。命令セットを構成する命令コードは、
命令フィールド(オペレーションコード)とオペランド
から構成される。命令フィールドは、処理の内容を示す
部分で、オペランドは処理の対象となるレジスタやメモ
リアドレスを示す部分で、処理に使用する数値であるこ
ともある。このような数値は即値又はリテラルと呼ばれ
る。
【0003】命令には、ジャップ命令などのようにオペ
ランドが1個の命令や、2個のオペランドの値に対して
加算などの演算を行ってその結果を一方のオペランドに
格納したり、2個のオペランドの一方から他方に値を移
動させるなどのオペランドが2個の命令や、2個のオペ
ランドの値に対して加算などの演算を行ってその結果を
別のオペランドに格納するなどのオペランドが3個の命
令がある。なお、この3個のオペランドを使用する命令
は、2個のオペランドを使用する命令を組み合わせるこ
とにより実現できるので、3個のオペランドを使用する
命令を持たない命令セットもある。ここでは、上記の、
オペランドを1個、2個及び3個使用する3種のアドレ
ッシングモードを有する命令セットを例として、以下の
説明を行う。なお、レジスタのみを使用したアドレシイ
ングモードの命令はレジスタ命令、即値を使用したアド
レシイングモードの命令はイミーディエート命令と呼ば
れる。
【0004】図1は、レジスタ命令と即値(イミーディ
エート)命令の命令コードの従来の構成例を示す図であ
り、(1)がレジスタ命令の構成を、(2)が即値命令
の構成を示す。図示のように、レジスタ命令と即値命令
は同じ長さであり、本発明はこのようなレジスタ命令と
即値命令の長さが同じ命令セットを対象とする発明であ
る。上記のメモリアドレスを直接指示するメモリアドレ
シッング命令は、レジスタ命令や即値命令と長さが同じ
場合も異なる場合もあるが、本発明はこれには直接関係
しないので、いずれであってもよい。
【0005】図1に示すように、レジスタ命令は、上位
6ビットが命令フィールドOP1であり、次の5ビット
が演算対象の第1のレジスタRs1を示し、次の5ビッ
トが演算結果を格納する結果格納先レジスタRdを示
す。ここまでは即値命令も同じである。レジスタ命令で
は、更に次の5ビットが演算対象の第2のレジスタRs
2を示すが、即値命令では次の16ビットが即値を示
す。レジスタ命令の第2のレジスタRs2の後の残りの
11ビットは第2の命令フィールドOP2であり、OP
1と合せて命令フィールドを形成する。従ってレジスタ
命令は即値命令より種類が多い。
【0006】図2は、図1のような命令セットを実行す
るプロセッサの命令制御機構の従来例の構成を示す図で
ある。プログラムはメモリに格納されており、メモリか
ら読み出された命令コードは、命令保持用フリップフロ
ップ11から14に一時的に保持される。参照番号11
が命令フィールドOP1の示す値を保持する部分で、1
2が第1の演算対象レジスタRs1を指示する値を保持
する部分で、13が第1の結果格納先レジスタRdを指
示する値を保持する部分で、14がレジスタ命令の時に
は第2の演算対象レジスタRs2を指示する値と第2の
命令フィールドOP2を示す値を保持し、即値命令の時
には即値を保持する部分である。フリップフロップ11
と14に保持された命令フィールドOP1とOP2は命
令デコーダ15に出力され、そこで解読されて、処理す
る内容が演算器28と29に指示されると共に、命令に
応じて第2の演算対象レジスタRs2の値を使用するか
即値が使用されるかが選択される。フリップフロップ1
2、13及び14(Rs2の部分のみ)に保持された値
により、レジスタ18、19、17が指示される。ま
た、フリップフロップ14に保持された値は更にフリッ
プフロップ23に保持される。命令デコーダ15の解読
結果に応じて、レジスタ19の値又はフリップフロップ
23に保持された値が内部バスに出力され、同時に出力
されるレジスタ18と共に演算器28、29に入力さ
れ、そこで命令フィールドOPで指示された演算が行わ
れる。その演算結果は、レジスタ17に格納される。こ
のようにして1つの命令コードに対する処理が完了し、
プログラムで指示される命令コードを順次行う。
【0007】
【発明が解決しようとする課題】図1及び図2の例は、
もっとも一般的な命令セット及びプロセッサの命令制御
機構の従来例であるが、近年プロセッサの高速化・低価
格化により、従来は専用回路を用いて行っていた様々な
処理を、1つのプロセッサでプログラムを切り換えなが
ら処理できるようになってきた。その反面、プログラム
サイズが膨大になり、キャッシュなどのチップ内蔵メモ
リや外部メモリが増大したり、それらのメモリのアクセ
ス頻度が高くなるために消費電力が増大するといった問
題が生じている。
【0008】最近のように、メディア機器の携帯化が進
むと、プロセッサのコストや消費電力は、機器トータル
のコストや消費電力の増大にとって大きな割合を占める
ようになってきており、このため、いかに全体のプログ
ラムサイズを圧縮するかがプロセッサの課題となってい
る。そのため、同じ長さの命令セットであれば、できる
だけ多数の命令コードが表現できることが望ましい。
【0009】また、このような課題を解決するための別
の方法に、短縮長命令を使用することがある。短縮長命
令を使用できれば、プログラムサイズを圧縮することが
可能である。従来から基本長命令と共に短縮長命令が使
用できるようにサポートしているプロセッサがある。図
3は、基本長命令と短縮長命令が両方使用できるように
した従来例における命令コードの従来例の構成を示す図
である。この方法は、あらかじめ命令フィールド中に命
令長を示すビットを持たせることにより、プログラム中
の命令が基本長命令と短縮長命令のいずれであるかが識
別できるようにする方法であり、図3では最上位ビット
をこれに割り当てている。しかし、この場合、1ビット
がこのような識別に使用されることになり、その分他の
フィールのビットが減少することになる。図3では、命
令フィールドの1ビットを基本長命令と短縮長命令の識
別に割り当てており、命令フィールドの長さが6ビット
から5ビットに減少している。6ビットであれば64通
りの命令が表されるのに、5ビットであれば32通りの
命令しか表せなくなる。基本長命令と短縮長命令の識別
のための1ビットを他の部分、例えば、即値の部分の1
ビットを基本長命令と短縮長命令の識別に割り当てるこ
とも考えられるが、その場合には即値の範囲が半分に減
少することになる。短縮長命令は、そもそも命令コード
の長さが限られるため特に問題である。
【0010】そこで、プロセッサにモード切り換え機構
を設け、プログラム中のモード切り換え命令でモードを
切り換えられるようにする。短縮長命令モードであれ
ば、命令コードはすべて短縮長命令であるとして処理さ
れる。図4は、モード切り換えを可能にした場合の命令
コードの従来例の構成を示す図である。しかし、この方
法では、当然のことながら短縮長命令に割り当てられな
かった命令は使用できないが、すべての基本長命令セッ
トを短縮長命令セットに割り当てることは原理的に不可
能であるため、基本長命令セットにはあるが短縮長命令
としては使用できない命令が存在することになる。その
ため、短縮長命令モードにおいてはこのような命令が使
用できず、そのような命令を使用する場合には、一旦基
本長命令モードに切り換える必要が生じる。これでは、
プログラムが複雑で、サイズも大きくなる。
【0011】上記の2つの方法では、基本長命令も短縮
長命令も命令フィールドは同じ長さであるとしたが、基
本長命令セットと短縮長命令セットで命令フィールドの
体系を大きく異ならせることにより、多くの命令を短縮
長命令として持つことができるようになる。しかし、こ
の場合、モード切り換えにより両方の命令セットを実行
できるプロセッサでは、命令デコーダを共通に使用する
ためには、短縮長命令フィールドを基本長命令フィール
ドに変換するために、図5に示すような回路が必要にな
る。この回路は、短縮長命令モード時には、短縮長命令
の命令フィールドを、対応する処理内容の基本長命令コ
ードの命令フィールドに変換する命令コード変換エンコ
ーダ31と、その出力を一時保持するフリップフロップ
32で構成される。通常の処理においては、この変換回
路での処理のためにパイプラインの1段分を消費する
か、あるいは、1段分を消費しない場合でもデコーダの
クリティカルパスを圧迫することになり、ハードウエア
の増加を招くだけでなく、分岐ペナルティの増大で性能
の低下を招くといった問題がある。
【0012】本発明は、コードの長さが同じ命令セット
であれば、できるだけ多数の種類の命令コードが表現で
きるようにすることで、プログラムの長さを短くした命
令コードのセットを実行できるプロセッサの命令制御機
構を簡単な構成で実現することを目的とする。また、所
定の長さのコードで多数の短縮長命令を効率よく実行で
きるプロセッサの命令制御機構を簡単な構成で実現する
ことを目的とする。
【0013】
【課題を解決するための手段】上記目的を実現するた
め、本発明のプロセッサの命令制御機構は、命令コード
のうち、処理対象のレジスタ名又は即値を記載した第2
のフィールドにおいてレジスタ名を記載した場合には、
第2のフィールドに使用しない第2の命令フィールドが
あることに着目した。そして、第2のフィールドに処理
対象のレジスタ名を記憶するレジスタ命令については、
命令フィールドに特定の値を割り当て、実際の命令内容
は第2の命令フィールドに記載するようにし、即値命令
については、命令フィールドにこの特定の値以外の値を
割り当て、しかも、即値とレジスタを使用する以外は同
一の処理である少なくとも一部の即値命令コードと即値
類似レジスタ命令コードには、命令フィールドと第2の
命令フィールドに同一の値が割り当てる。これであれ
ば、命令デコーダなどを複雑にすることもない。
【0014】すなわち、本発明のプロセッサの命令制御
機構は、命令フィールドと、処理対象のレジスタ名を記
載した第1のフィールドと、処理対象の他のレジスタ名
又は即値を記載した第2のフィールドで構成される命令
コードを有する命令セットを解読して実行するプロセッ
サの命令制御機構であって、命令フィールドの値を解読
する命令デコーダと、処理対象のレジスタ名及び処理対
象の他のレジスタ名で指示されるレジスタと、即値を記
憶する記憶回路と、レジスタ又はレジスタと記憶回路に
記憶された値に対して、命令デコーダの解読結果に対応
する処理を行う演算回路とを備えるプロセッサの命令制
御機構において、第2のフィールドに処理対象の他のレ
ジスタを記載したレジスタ命令コードは、命令フィール
ドを特定の値とし、第2のフィールドのうちの処理対象
の他のレジスタを記載した以外の部分に第2の命令フィ
ールドを記載することにより表され、第2のフィールド
に即値を記載した即値命令コードは、命令フィールドに
特定の値以外の値が記載され、即値と処理対象の他のレ
ジスタを使用する以外は同一の処理である少なくとも一
部の即値命令コードと即値類似レジスタ命令コードに
は、命令フィールドと第2の命令フィールドに同一の値
が割り当てられ、命令フィールドが特定の値であるかを
判定するレジスタ命令検出回路と、レジスタ命令検出回
路の判定結果に従って、命令フィールドが特定の値であ
る時には第2の命令フィールドが、命令フィールドが特
定の値でない時には命令フィールドが、命令デコーダに
入力されるように切り換える選択回路を備えることを特
徴とする。
【0015】また、即値命令コード及び即値類似レジス
タ命令コードと類似した処理であるが、即値及び処理対
象の他のレジスタの値は使用しない第2のレジスタ命令
コードの少なくとも一部には、命令フィールドに特定の
値以外の第2の特定の値で、第2の命令フィールドに即
値類似レジスタ命令コードの第2の命令フィールドの値
と同一の値を割り当てるようにし、レジスタ命令検出回
路が、命令フィールドが第2の特定の値であるかも判定
するようにすることが望ましい。このような命令の例と
しては、レジスタ間転送命令がある。
【0016】本発明のプロセッサの命令制御機構におい
ては、基本長命令を実行するモードと短縮長命令を実行
するモードを切り換えて、両方の命令が実行できるよう
にする。そこで、短縮長命令コードの命令フィールド
は、基本長命令コードの命令フィールドと同じ位置で、
処理内容が類似の即値類似レジスタの第2の命令フィー
ルドと同一の値とし、基本長命令コードを処理する基本
長モードと短縮長命令コードを処理する短縮長モードを
切り換えるモード切り換え回路を設け、命令デコーダ
は、モードに応じて解読処理を変化させる。
【0017】ここで、短縮長モード時に、レジスタ命令
検出回路が命令フィールドが特定の値であることを検出
した時には、命令デコーダは、この命令コードを基本長
命令コードとして処理するようにすれば、短縮命令を実
行するモードにおいても、そのまま基本長命令が実行で
きるようになる。
【0018】
【発明の実施の形態】図6は、本発明の実施例における
命令コードの構造を示す図であり、(1)が基本長命令
を、(2)が短縮長命令を示し、それぞれ(a)がレジ
スタアドレッシング命令を、(b)が即値アドレッシン
グ命令を示す。図示のように、本実施例の命令コードに
おいては、短縮長命令及び基本長の即値アドレッシング
命令は、図4の従来の命令コードと同じ構造であり、異
なるのは基本長のレジスタアドレッシング命令の構造で
ある。基本長のレジスタアドレッシング命令では、上位
6ビットの第1の命令フィールドOP1の値が000000又
は000100であり、従来例においては使用されなかった下
位11ビットに第2の命令フィールドOP2と第3の命
令フィールドOP3が記載される。
【0019】図7は、実施例における基本長の即値アド
レッシング命令のセットを示す図である。ここでは各命
令の詳しい説明は省略するが、命令は46個あり、空白
の部分は対応する命令が規定されておらず、斜線に部
分、すなわち000000と000100は基本長のレジスタアドレ
ッシング命令であることを示す。図8は、基本長のレジ
スタアドレッシング命令のセットを示す図である。図示
のように、基本長のレジスタアドレッシング命令の第1
の命令フィールドOP1の値は000000又は000100であ
り、第2の命令フィールドOP2の値により処理の内容
が規定される。ここで重要なのが第2の命令フィールド
OP2の値は、類似の処理を行う基本長の即値アドレッ
シング命令の第1の命令フィールドOP1の値と同じで
ある点である。例えば、第1の命令フィールドOP1の
値が000000の基本長のレジスタアドレッシング命令の乗
算命令MUL(Rs1,Rs2,Rd)の第2の命令フ
ィールドOP2の値は110111であり、対応する基本長の
即値アドレッシング命令MULI(Rs1,#16,R
d)の第1の命令フィールドOP1の値と同じである。
また、第1の命令フィールドOP1の値が000000の基本
長のレジスタアドレッシング命令の加算命令ADD(R
s1,Rs2,Rd)の第2の命令フィールドOP2の
値は001111であり、対応する基本長の即値アドレッシン
グ命令ADDI(Rs1,#16,Rd)の第1の命令
フィールドOP1の値と同じである。
【0020】ここで、第1の命令フィールドOP1の値
が000100の基本長のレジスタアドレッシング命令につい
ても、同様に、第2の命令フィールドOP2の値は、類
似の処理を行う基本長の即値アドレッシング命令の第1
の命令フィールドOP1の値と同じである。例えば、加
算命令には、符号なし飽和処理付き32ビット加算(A
DD)や、符号付き飽和処理付き32ビット加算(AD
DSS)や、オペランドを上位と下位で16ビットずつ
に分け、それぞれに符号付き飽和処理付きの16ビット
加算を同時に行う加算(ADDHSS)や、オペランド
を上位と下位で16ビットずつに分け、それぞれに符号
なし飽和処理付きの16ビット加算を同時に行う加算
(ADDHUS)などの各種の加算処理がある。本実施
例では、ADDSSは、第1の命令フィールドOP1の
値が000000の基本長のレジスタアドレッシング命令とし
て規定し、ADDSSとADDHSSとADDHUS
は、第1の命令フィールドOP1の値が000001の基本長
のレジスタアドレッシング命令として規定している。A
DDSSとADDHSSとADDHUSの第2の命令フ
ィールドOP2の値は001111であり、第3の命令フィー
ルドOP3の値を異ならせることにより、これらの処理
を識別している。このように、同じような処理である
が、処理内容が細部で異なる処理を第3の命令フィール
ドOP3により規定している。
【0021】図7に示すように、第1の命令フィールド
OP1は6ビットであり、そこでは最大64通りの命令
を規定できる。従来は、この64通りで、即値アドレッ
シング命令を規定していた。レジスタアドレッシング命
令については、OP1とOP2と合せて命令を規定して
いた。これに対して、本実施例では、46通りの即値ア
ドレッシング命令が規定され、72通りのレジスタアド
レッシング命令が規定されており、即値アドレッシング
命令は62通りまで(2つの値をレジスタアドレッシン
グ命令に割り当てるとした場合)、レジスタアドレッシ
ング命令は第2の命令フィールドOP2だけで規定した
としても62通り(000000と000100除くとする)規定す
ることが可能であり、第3の命令フィールドOP3も使
用するとすれば更に32倍のレジスタアドレッシング命
令を規定することが可能である。
【0022】図10は、短縮長命令の例を示す図であ
り、ここでは加算命令の例を示している。ここで重要な
のは、短縮長命令の命令フィールドの値001111は、類似
の処理を行う基本長の即値アドレッシング命令の第1の
命令フィールドOP1の値及び基本長のレジスタアドレ
ッシング命令の第2の命令フィールドOP2の値と同じ
である点である。また、上記のADD、ADDSS、A
DDHSS及びADDHUSのいずれの加算命令である
かは、9ビット目と5ビット目の値の組合せで規定して
いる。なお、短縮長命令においては、演算対象の第1の
レジスタRs1と演算結果を格納する結果格納先レジス
タRdは同じレジスタであり、Rs1/Rdで指示され
るレジスタの値に対して処理を行い、その処理結果を同
じレジスタに格納する。
【0023】図11と図12は、本発明の実施例のプロ
セッサの命令制御機構の構成を示す図である。基本長命
令を処理するモードであるか、短縮長命令を処理するモ
ードであるかは、プログラム中の命令により、モードレ
ジスタに所定の値をセットすることにより設定されるよ
うになっている。いずれのモードにおいても、メモリか
ら32ビット分の命令コードが読み出され、命令保持用
フリップフロップ(FF)41と42に一時的に保持さ
れる。命令保持用フリップフロップは、上位16ビット
を保持するFF41と下位16ビットを保持するFF4
2で構成される。従って、基本長命令の場合には、第1
の命令フィールドOP1と第1の演算対象レジスタRs
1と格納先レジスタRdがFF41に保持され、第2の
演算対象レジスタRs2と第2の命令フィールドOP2
と第3の命令フィールドOP3又は即値#16がFF4
2に保持され、短縮長命令の場合には、一方の命令フィ
ールドOPとRs/RdとRs2(又は即値#4)がF
F41に保持され、他方のOPと第1のレジスタRs/
Rdと第2のレジスタRs2(又は即値#4)がFF4
2に保持される。
【0024】まず、基本長命令を処理するモード時の動
作について説明する。OP1はデコーダ43に入力さ
れ、その値が000100又は000000であるかが判定される。
OP1が000100又は000000であればレジスタアドレッシ
ング命令であり、000100と000000以外であれば即値アド
レッシング命令である。デコーダ43は、この判定結果
とモード信号に従って命令モード信号を出力する。セレ
クタ44には、OP1(FF41のOPと同じ)、OP
2、FF42のOPが入力される。セレクタ44は、命
令モード信号に従って、レジスタアドレッシング命令で
あれば入力される信号のうちからOP2を選択し、即値
アドレッシング命令であればOP1を選択して、命令デ
コーダ45に出力する。前述のように、レジスタアドレ
ッシング命令のOP2と即値アドレッシング命令OP1
は、類似の処理であれば同じ値であるから、命令デコー
ダ45は最大62通りの命令が識別できればよい。命令
デコーダ45は入力されるOP1又はOP2を解読し
て、演算器制御信号を出力する。
【0025】セレクタ51には、FF41のRs1とR
dとRs1/Rd及びFF42のRs1/Rdが入力さ
れ、セレクタ52には、FF41のRs2(#4)及び
FF42のRs2とRs2(#4)が入力され、セレク
タ53には、FF42の即値#16(Rs2とOP2と
OP3)が入力される。セレクタ51は、命令モード信
号に従って、Rs1とRdをそれぞれレジスタ55のア
ドレスデコーダD(Rs1)とD(Rd)に入力する。
ここで、フリップフロップFF54は、基本長命令を実
行するモードの場合には通過状態になる。同様に、セレ
クタ52は、命令モード信号に従って、Rs2をレジス
タ55のアドレスデコーダD(Rs2)に入力する。更
に、セレクタ53は、命令モード信号に従って、FF4
2の即値#16を選択してFF56に出力する。なお、
図では命令モード信号のセレクタ51、52及び53へ
の配線を省略してある。
【0026】命令モード信号が基本長命令を示す時に
は、カウント値発生回路68が4を発生し、それをプロ
グラムカウンタ47に印加する。プログラムカウンタ4
7はFF48に保持された直前のプログラムカウント値
にこの4を加えてプログラムカウンタの値を増加させ
る。また、セレクタ49は、短縮長命令にのみ関係する
セレクタであり、基本長命令には関係しない。デコーダ
50には、セレクタ49の出力と命令モード信号の一部
が入力される。デコーダ50は、基本長命令の場合に
は、命令モード信号の一部を選択し、それをRs2/即
値選択信号として出力する。
【0027】図12に示すように、レジスタ55の読み
書きポートP(Rs1)から出力された値は一方の内部
バス62に出力される。Rs2/即値選択信号に従っ
て、レジスタ55の読み書きポートP(Rs2)の出力
とFF56の出力の一方が、他方の内部バス61に出力
される。演算器63と64は、内部バス61と62上の
値に対して、命令デコーダ45の出力する演算制御信号
により指示された処理を行い、その結果を出力ポート6
5と66を介して更に別の内部バス67に出力する。内
部バス67に出力された値は、適当なタイミングでレジ
スタ55の読み書きポートP(Rd)に書き込まれる。
【0028】以上のようにして、レジスタアドレッシン
グ命令の場合には、Rs1とRs2で指示されたレジス
タの値に対して演算が行われ、その結果がRdで指示さ
れるレジスタに記憶され、即値アドレッシング命令の場
合には、Rs1で指示されたレジスタの値と即値#16
に対して演算が行われ、その結果がRdで指示されるレ
ジスタに記憶される。
【0029】次に、短縮長命令を処理するモード時の動
作について説明する。短縮長命令のFF41に保持され
るOPはOP1と同じビットであり、デコーダ43に入
力され、その値が000100又は000000であるかが判定され
る。OPが000100又は000000であれば短縮長命令を処理
するモード時であっても、基本長のレジスタアドレッシ
ング命令であると判定され、上記の基本長命令用の処理
が行われる。ただし、短縮長命令に基本長命令を混在さ
せる場合には、基本長命令は4バイトの境界、すなわ
ち、FF41のOP(OP1)に保持されるように制限
されているものとする。OPが000100又は000000でなけ
れば短縮長命令であり、カウント値発生回路49は2を
発生して、プログラムカウンタ47は2増加する。
【0030】デコーダ43は、判定結果とモード信号に
従って命令モード信号を出力する。セレクタ44は、短
縮長命令の場合には、プログラムカウンタ47の出力を
ラッチしたFF48の出力の最下位のビットを判定し
て、FF41のOPを選択すべきか、FF42のOPを
選択すべきかを判定して出力する。具体的には、FF4
8の出力の最下位のビットが「0」の時にはFF41の
OPを、「1」の時にはFF42のOPを選択する。上
記のように、基本長のレジスタアドレッシング命令と判
定された場合には、FF41のOP、すなわちOP1を
選択して出力する。命令デコーダ45はセレクタ45の
出力を解読して演算制御信号を発生させる。前述のよう
に、短縮長命令のOPとレジスタアドレッシング命令の
OP2は、類似の処理であれば同じ値であるから、命令
デコーダ45は基本長命令と同じ解読処理を行えばよ
い。
【0031】セレクタ51は、短縮長命令で、FF48
の出力の最下位のビットが「0」の時には、FF41の
Rs1/Rdをレジスタ55のD(Rs1)に、「1」
の時には、FF42のRs1/Rdをレジスタ55のD
(Rs1)に出力する。同時に、セレクタ51の出力
は、FF54で一旦保持された後、レジスタ55のD
(Rd)に入力される。これは、演算器65と66での
処理後にその処理結果をRs1/Rdで指示される読み
書きポートP(Rd)に書き込むためである。なお、基
本長命令の場合には、セレクタ51は、FF41のRs
1とRdをそれぞれレジスタ55のD(Rs1)とD
(Rd)に出力する。
【0032】同様に、セレクタ52は、短縮長命令で、
FF48の出力の最下位のビットが「0」の時には、F
F41のRs2(#4)をレジスタ55のD(Rs2)
に、「1」の時には、FF42のRs2(#4)をレジ
スタ55のD(Rs2)に出力する。基本長命令の場合
には、セレクタ52は、FF42のRs2をレジスタ5
5のD(Rs2)に出力する。
【0033】また、セレクタ53は、短縮長命令で、F
F48の出力の最下位のビットが「0」の時には、FF
41のRs2(#4)を、「1」の時には、FF42の
Rs2(#4)をレジスタ55のD(Rs2)に出力す
る。前述のように、基本長命令の場合には、セレクタ5
3は、FF42の#16を出力する。ただし、短縮長命
令に基本長の即値アドレッシング命令を混在させること
はできないので、短縮長命令を実行するモードで、セレ
クタ53が#16を出力することは有り得ない。FF4
2は、#16を保持して出力するので、短縮長命令の時
には、Rs2(#4)の上位に12個の「0」を付加す
る。
【0034】図10に示したように、短縮長命令では、
9ビット目と5ビット目(25ビット目と20ビット
目)が共に「0」の時が即値アドレッシング命令であ
る。セレクタ49は、25ビット目、20ビット目、9
ビット目及び5ビット目の値、すなわち、図においてF
F41とFF42で斜線で示した部分のビットが入力さ
れ、プログラムカウンタの値に応じて、25ビット目と
20ビット目、9ビット目と5ビット目のいずれかを選
択し、2つの値が共に「0」の時にFF56から出力さ
れる即値を選択し、「1」の時にレジスタ55の読み書
きポートP(Rs2)から出力されたRs2で指示され
るレジスタの値を選択するRs2/即値選択信号を出力
する。
【0035】後の処理は、基本長命令の場合と同じであ
る。ここで、短縮長命令では、すべての基本長命令を規
定することができないため、プログラムサイズを小さく
するために短縮長命令を使用している場合でも、短縮長
命令セットで規定されない命令を使用する場合には、基
本長命令を使用する必要がある。また、短縮長命令で
は、レジスタを指定するオペランドRs1、Rs2及び
Rdのビット数が基本長命令より小さいため、基本長命
令で使用できるレジスタをすべて使用することはできな
い。そのため、短縮長命令で使用できないレジスタを使
用する場合には、基本長命令を使用する必要がある。本
実施例では、上記の説明のように、短縮長命令を実行す
るモード時でも、第1の命令フィールドOP1(FF4
1に保持されるOP)が000100又は000000である時に
は、自動的に基本長命令であると判定してそれに対応す
る処理が行われる。従って、短縮長命令を実行している
途中で基本長命令(但し、レジスタアドレッシング命令
のみ)を実行する場合にも、モードの切り換えを行う必
要がなく、プログラムを簡単にできる。
【0036】
【発明の効果】以上のように、本発明によれば、命令コ
ードの無駄を生ぜずに短縮長命令と基本長命令を混在さ
せることができるため、プログラムサイズを効率よく圧
縮することが可能になる。また、短縮長命令モード中
に、同一命令について基本長命令と短縮長命令を混在さ
せることができるため、すべてのレジスタを有効に使用
することができる。
【0037】更に、本発明では、命令デコーダは共通の
処理内容であるため、その構成を非常に簡単にでき、パ
イプラインの段数を増加させる必要がなく、命令数を増
加させてもデコーダのハードウエアの増加を最小限にす
ることができる。
【図面の簡単な説明】
【図1】レジスタ及び即値(イミーディエート)アドレ
ッシングモードの命令コードの従来の構成例を示す図で
ある。
【図2】プロセッサの命令制御機構の従来の構成例を示
す図である。
【図3】短縮長命令を有する命令コードの従来の構成例
(その1)を示す図である。
【図4】短縮長命令を有する命令コードの従来の構成例
(その2)を示す図である。
【図5】短縮長命令を基本長命令に変換する従来の変換
機構を示す図である。
【図6】本発明の実施例の命令コードの構造を示す図で
ある。
【図7】実施例の基本長の即値アドレッシング命令の命
令フィールドOP1のセットを示す図である。
【図8】実施例の基本長のレジスタアドレッシング命令
の命令フィールドのセットを示す図である。
【図9】実施例の基本長のレジスタアドレッシング命令
の命令フィールドのセットを示す図である。
【図10】実施例の短縮長命令の例を示す図である。
【図11】実施例の命令制御機構の構成を示す図であ
る。
【図12】実施例の命令制御機構の構成を示す図であ
る。
【符号の説明】
41、42…命令保持用フリップフロップ(FF) 43…デコーダ 44…セレクタ 45…命令デコーダ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 命令フィールドと、処理対象のレジスタ
    名を記載した第1のフィールドと、処理対象の他のレジ
    スタ名又は即値を記載した第2のフィールドで構成され
    る命令コードを有する命令セットを解読して実行するプ
    ロセッサの命令制御機構であって、 前記命令フィールドの値を解読する命令デコーダと、 前記処理対象のレジスタ名及び前記処理対象の他のレジ
    スタ名で指示されるレジスタと、 前記即値を記憶する記憶回路と、 前記レジスタ又は前記レジスタと前記記憶回路に記憶さ
    れた値に対して、前記命令デコーダの解読結果に対応す
    る処理を行う演算回路とを備えるプロセッサの命令制御
    機構において、 前記第2のフィールドに前記処理対象の他のレジスタを
    記載したレジスタ命令コードは、前記命令フィールドを
    特定の値とし、前記第2のフィールドのうちの前記処理
    対象の他のレジスタを記載した以外の部分に第2の命令
    フィールドを記載することにより表され、 前記第2のフィールドに前記即値を記載した即値命令コ
    ードは、前記命令フィールドに前記特定の値以外の値が
    記載され、 前記即値と前記処理対象の他のレジスタを使用する以外
    は同一の処理である少なくとも一部の即値命令コードと
    即値類似レジスタ命令コードには、前記命令フィールド
    と前記第2の命令フィールドに同一の値が割り当てら
    れ、 前記命令フィールドが前記特定の値であるかを判定する
    レジスタ命令検出回路と、 該レジスタ命令検出回路の判定結果に従って、前記命令
    フィールドが前記特定の値である時には前記第2の命令
    フィールドが、前記命令フィールドが前記特定の値でな
    い時には前記命令フィールドが、前記命令デコーダに入
    力されるように切り換える選択回路を備えることを特徴
    とするプロセッサの命令制御機構。
  2. 【請求項2】 請求項1に記載のプロセッサの命令制御
    機構であって、 前記即値命令コード及び前記即値類似レジスタ命令コー
    ドと類似した処理であるが、前記即値及び処理対象の他
    のレジスタの値は使用しない第2のレジスタ命令コード
    の少なくとも一部には、前記命令フィールドが前記特定
    の値以外の第2の特定の値で、前記第2の命令フィール
    ドに前記即値類似レジスタ命令コードの前記第2の命令
    フィールドの値と同一の値が割り当てられ、 前記レジスタ命令検出回路は、前記命令フィールドが前
    記第2の特定の値であるかも判定するプロセッサの命令
    制御機構。
  3. 【請求項3】 請求項1に記載のプロセッサの命令制御
    機構であって、 前記命令セットは、前記即値命令コードと前記即値類似
    レジスタ命令コードの少なくとも一部に対応し、前記即
    値命令コードと即値類似レジスタ命令コードの基本長命
    令コードより短い短縮長命令コードを有し、 該短縮長命令コードの命令フィールドは、前記基本長命
    令コードの命令フィールドと同じ位置で、処理内容が類
    似の前記即値類似レジスタの前記第2の命令フィールド
    と同一の値を有し、 当該命令制御機構は、前記基本長命令コードを処理する
    基本長モードと前記短縮長命令コードを処理する短縮長
    モードを切り換えるモード切り換え回路を備え、 前記命令デコーダは、モードに応じて解読処理を変化さ
    せるプロセッサの命令制御機構。
  4. 【請求項4】 請求項2に記載のプロセッサの命令制御
    機構であって、 前記命令セットは、前記即値命令コードと前記即値類似
    レジスタ命令コードの少なくとも一部に対応し、前記即
    値命令コードと即値類似レジスタ命令コードの基本長命
    令コードより短い短縮長命令コードを有し、 該短縮長命令コードの命令フィールドは、前記基本長命
    令コードの命令フィールドと同じ位置で、処理内容が類
    似の前記即値類似レジスタの前記第2の命令フィールド
    と同一の値を有し、 当該命令制御機構は、前記基本長命令コードを処理する
    基本長モードと前記短縮長命令コードを処理する短縮長
    モードを切り換えるモード切り換え回路を備え、 前記命令デコーダは、モードに応じて解読処理を変化さ
    せるプロセッサの命令制御機構。
  5. 【請求項5】 請求項3に記載のプロセッサの命令制御
    機構であって、 前記短縮長モード時に、レジスタ命令検出回路が前記命
    令フィールドが前記特定の値であることを検出した時に
    は、前記命令デコーダは、当該命令コードを前記基本長
    命令コードとして処理するプロセッサの命令制御機構。
  6. 【請求項6】 請求項4に記載のプロセッサの命令制御
    機構であって、 前記短縮長モード時に、レジスタ命令検出回路が前記命
    令フィールドが前記特定の値又は前記第2の特定の値で
    あることを検出した時には、前記命令デコーダは、当該
    命令コードを前記基本長命令コードとして処理するプロ
    セッサの命令制御機構。
  7. 【請求項7】 請求項5又は6に記載のプロセッサの命
    令制御機構であって、 レジスタ間転送命令を、前記第2のレジスタ命令コード
    に割り当てたプロセッサの命令制御機構。
JP22408197A 1997-08-20 1997-08-20 プロセッサの命令制御機構 Expired - Fee Related JP3781519B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22408197A JP3781519B2 (ja) 1997-08-20 1997-08-20 プロセッサの命令制御機構
US08/994,329 US5938759A (en) 1997-08-20 1997-12-19 Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22408197A JP3781519B2 (ja) 1997-08-20 1997-08-20 プロセッサの命令制御機構

Publications (2)

Publication Number Publication Date
JPH1165839A true JPH1165839A (ja) 1999-03-09
JP3781519B2 JP3781519B2 (ja) 2006-05-31

Family

ID=16808271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22408197A Expired - Fee Related JP3781519B2 (ja) 1997-08-20 1997-08-20 プロセッサの命令制御機構

Country Status (2)

Country Link
US (1) US5938759A (ja)
JP (1) JP3781519B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005353105A (ja) * 1999-04-30 2005-12-22 Renesas Technology Corp データ処理装置及びマイクロコンピュータ
JP2007316824A (ja) * 2006-05-24 2007-12-06 Sanyo Electric Co Ltd 可変機能実現装置、可変機能実現方法
US7788472B2 (en) 2003-06-13 2010-08-31 Arm Limited Instruction encoding within a data processing apparatus having multiple instruction sets

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567910B2 (en) * 1998-02-13 2003-05-20 Texas Instruments Incorporated Digital signal processing unit with emulation circuitry and debug interrupt enable register indicating serviceable time-critical interrupts during real-time emulation mode
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
JP3578735B2 (ja) * 2001-08-02 2004-10-20 松下電器産業株式会社 情報処理装置及び情報処理方法
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US7581082B2 (en) * 2005-05-13 2009-08-25 Texas Instruments Incorporated Software source transfer selects instruction word sizes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3781823A (en) * 1972-07-28 1973-12-25 Bell Telephone Labor Inc Computer control unit capable of dynamically reinterpreting instructions
JPS6029126B2 (ja) * 1977-01-14 1985-07-09 株式会社日立製作所 デ−タ処理装置
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba Corp マイクロコンピュータ
JP2669158B2 (ja) * 1991-01-22 1997-10-27 三菱電機株式会社 データ処理装置
JP3172214B2 (ja) * 1991-09-30 2001-06-04 富士通株式会社 状態モード設定方式
JPH07121352A (ja) * 1993-10-21 1995-05-12 Canon Inc 演算処理装置
GB9406666D0 (en) * 1994-04-05 1994-05-25 Communicate Ltd Computer system
GB2289354B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
GB2290395B (en) * 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5826089A (en) * 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
US5790824A (en) * 1996-03-18 1998-08-04 Advanced Micro Devices, Inc. Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005353105A (ja) * 1999-04-30 2005-12-22 Renesas Technology Corp データ処理装置及びマイクロコンピュータ
US7788472B2 (en) 2003-06-13 2010-08-31 Arm Limited Instruction encoding within a data processing apparatus having multiple instruction sets
JP2007316824A (ja) * 2006-05-24 2007-12-06 Sanyo Electric Co Ltd 可変機能実現装置、可変機能実現方法

Also Published As

Publication number Publication date
JP3781519B2 (ja) 2006-05-31
US5938759A (en) 1999-08-17

Similar Documents

Publication Publication Date Title
US7363466B2 (en) Microcomputer
KR100236527B1 (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
US7979676B2 (en) Method for instructing a data processor to process data
US7473293B2 (en) Processor for executing instructions containing either single operation or packed plurality of operations dependent upon instruction status indicator
EP0782071A2 (en) Data processor
US20020169942A1 (en) VLIW processor
KR100254007B1 (ko) 2개의 명령을 동시에 실행할 수 있는 데이타프로세서
JP3781519B2 (ja) プロセッサの命令制御機構
US7552313B2 (en) VLIW digital signal processor for achieving improved binary translation
JPH03218523A (ja) データプロセッサ
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
WO1998020422A1 (en) Eight-bit microcontroller having a risc architecture
US6026486A (en) General purpose processor having a variable bitwidth
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set
JP3570287B2 (ja) マイクロコンピュータ
JP3534987B2 (ja) 情報処理装置
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP2000112754A (ja) データ処理装置
JP3019818B2 (ja) データ処理方法
JPH0524537B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060307

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees