JPH1091435A - 二種類の命令長コードを実行するプロセッサ及びその命令コード入力装置 - Google Patents

二種類の命令長コードを実行するプロセッサ及びその命令コード入力装置

Info

Publication number
JPH1091435A
JPH1091435A JP8243375A JP24337596A JPH1091435A JP H1091435 A JPH1091435 A JP H1091435A JP 8243375 A JP8243375 A JP 8243375A JP 24337596 A JP24337596 A JP 24337596A JP H1091435 A JPH1091435 A JP H1091435A
Authority
JP
Japan
Prior art keywords
instruction
bit
processor
code
length
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
JP8243375A
Other languages
English (en)
Other versions
JP3658101B2 (ja
JPH1091435A5 (ja
Inventor
Sugako Ootani
寿賀子 大谷
Shunichi Iwata
俊一 岩田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP24337596A priority Critical patent/JP3658101B2/ja
Priority to TW085114619A priority patent/TW379305B/zh
Priority to KR1019970000490A priority patent/KR100260353B1/ko
Priority to US08/811,005 priority patent/US6463520B1/en
Priority to CN97103068A priority patent/CN1095116C/zh
Publication of JPH1091435A publication Critical patent/JPH1091435A/ja
Priority to US09/562,643 priority patent/US6209079B1/en
Publication of JPH1091435A5 publication Critical patent/JPH1091435A5/ja
Application granted granted Critical
Publication of JP3658101B2 publication Critical patent/JP3658101B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

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)

Abstract

(57)【要約】 【課題】 二種類の命令長コードを備えたプロセッサに
おいて、コードサイズの縮小化及びH/W量の削減化に
よる高速化を図る。 【解決手段】 2種類の命令長(16ビット,32ビッ
ト)の命令コードを備えたプロセッサにおいて、命令コ
ードの配置方法を次の2種類に制限する。即ち、(1)
2個の16ビット長命令コードを32ビットワード境界
内に格納し、(2)単一の32ビット長命令コードはそ
のまま32ビットワード境界内に格納する。更に、分岐
先のアドレスを32ビットワード境界に制限すると共
に、各命令コードのMSBに1ビットの命令長識別子を
設けて命令コードの実行順序の制御を行う。これによ
り、プロセッサ内の命令フェッチ部から命令デコード部
への転送経路は2種類となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、複数の命令コー
ドの演算を実行するためのデータ処理装置に関するもの
であり、具体的には、プロセッサにおける命令コードの
配置技術に関する。
【0002】
【従来の技術】通常、プロセッサにおいては、命令は、
プロセッサとデータバスを介してつながっているメモリ
に、命令コードとして格納されている。この場合、当該
メモリに格納されている命令コードのフォーマットに
は、命令コードの長さが命令の種類によらずに常に一
定に設定されている「固定長フォーマット」と、命令
コードの長さがそれぞれ命令の種類によって異なるよう
に設定されている「任意長命令フォーマット」とがあ
る。
【0003】命令コードには、演算、転送、分岐など
の、命令の機能を指定するオペレーションコード部分
と、命令の実行対象データ(オペランド)を指定するオ
ペランドコード部分とがある。オペランドの指定は、命
令コード中のアドレッシングモードの指定部において当
該オペランドがレジスタ内に格納されているのか、それ
とも外部のメモリ内に格納されているのかを指定するこ
とにより、行われる。そして、オペランドがメモリ内に
ある場合には、更にアドレス情報を命令コード中に付加
する。
【0004】以下に、固定長フォーマット及び任意長フ
ォーマットの命令フォーマットを、それぞれ図18及び
図19に模式的に示す。両図において、命令フォーマッ
ト100はオペランドがない場合を、命令フォーマット
101はオペランドがある場合を、命令フォーマット1
02はオペランドがない場合の任意長フォーマットを、
命令フォーマット103はオペランドがある場合の任意
長フォーマットを、それぞれ表している。
【0005】
【発明が解決しようとする課題】 命令コードが固定長命令フォーマットの場合 この場合には、命令コードのデコードが容易であるとい
う利点がある。しかし、この命令フォーマットでは、決
められた一定の命令長の範囲内で、オペレーションコー
ドやアドレッシングモードの指定部や、さらにはアドレ
ス情報などの付加情報を記述しなくてはならないという
制約がある。従って、より多くの付加情報を記述するた
めには命令長を大きく設定する必要がある。その結果、
命令長を大きくした固定長命令フォーマットでは、命令
ビットパターンに冗長部分が増加し、コードサイズが大
きくなるという問題点が生ずる。一方では、コードサイ
ズを小さくするために命令長を小さく設定すると、命令
機能に対する制限が大きくなるという問題点が生じる。
【0006】命令コードが任意長命令フォーマットの
場合 この場合には、2種類以上の任意の命令長の命令フォー
マットが使用されるので、各々の命令毎に応じて命令機
能を拡張することができるという利点がある。また、オ
ペランドのない命令の命令長を短く設定することができ
るので、固定長命令フォーマットの場合と比較して、コ
ードサイズを小さくできる利点がある。
【0007】その反面、メモリから読み込んだデータを
各命令コードとして抽出し、更に、命令コード自身の各
々をデコードする作業が複雑化するので、命令デコード
方法が複雑にならざるを得ないという問題点がある。こ
のため、メモリの内容から命令コードを抽出して、命令
デコーダに送り込むためのH/W(ハードウェア)が大
きくなる。例えば、図20に示す様に、16/32ビッ
ト長命令フォーマット105,104を任意長命令フォ
ーマットとして導入するときには、図21に示す様に、
命令フェッチ部と命令デコーダの間には、命令コードの
転送のために、4つの経路を用意する必要がある。この
ためには、有効な命令コードをシフトして適切な命令コ
ードの配置の下でデコードが実行されるように、複雑な
シフト機能を命令デコーダに具備させなければならな
い。
【0008】以上の通り、の固定長命令フォーマット
及びの任意長命令フォーマットには、それぞれ一長一
短がある。そこで、及びのそれぞれの利点を兼ね備
えたプロセッサの実現が要望されているのである。
【0009】この発明は、上記の懸案事項を実現するた
めになされたものであり、具体的には、(i)固定長命
令フォーマットに比べてコードサイズを縮小化し、且つ
(ii)従来の任意長命令フォーマットに比べてプロセ
ッサのH/W量を削減して高速化を図ることができる命
令フォーマットを備えたプロセッサ及びプロセッサ用の
入力装置を実現することを、その主たる目的としてい
る。
【0010】又、この発明は、命令実行中に発生する各
割り込み(外部割り込み、PCブレーク割り込み)やソ
フトウェア割り込みの機能を具備したプロセッサを実現
することを、その副次的目的としている。
【0011】又、この発明は、そのような命令コードを
デコードするためのプロセッサの構成を具体化すること
を、その副次的目的としている。
【0012】
【課題を解決するための手段】第1の発明に係る二種類
の命令長コードを実行するプロセッサは、N(Nは1以
上の整数)ビット長命令を与える第1命令データ信号と
2Nビット長命令を与える第2命令データ信号のみから
成る命令コードを備え、前記第1及び第2命令データ信
号の命令コードは、(1)2個の前記第1命令データ信
号を2Nビット長のワードの境界内に格納し、(2)前
記第2命令データ信号の各々を前記2Nビットワード境
界内に格納するという規則の下に配置された、命令コー
ド入力手段と、前記命令コード入力手段をフェッチして
前記規則の下に配置された前記命令コードを保持する命
令フェッチ手段とを備えている。
【0013】第2の発明に係る二種類の命令長コードを
実行するプロセッサは、第1の発明の二種類の命令長コ
ードを実行するプロセッサであって、前記命令フェッチ
手段より転送される前記命令コードを与える信号を受け
取って、前記命令コードに対して分岐先アドレスを前記
2Nビットワード境界に制限することにより前記命令コ
ードをデコードする命令デコード手段を更に備えてい
る。
【0014】第3の発明に係る二種類の命令長コードを
実行するプロセッサであって、前記第1及び第2命令デ
ータ信号のそれぞれは、その所定のビット位置におい
て、命令実行順序の制御情報を与える命令長識別子デー
タを備えている。
【0015】第4の発明に係る二種類の命令長コードを
実行するプロセッサは、第2又は第3の発明の二種類の
命令長コードを実行するプロセッサであって、外部割り
込み信号及び特定のアドレス実行時に発生するPCブレ
ーク割り込み信号のそれぞれによる割り込み要求を前記
命令コードの前記2Nビットワード境界においてのみ受
け付けて、前記割り込み要求に対応した処理を実行する
ことを特徴としている。
【0016】第5の発明に係る二種類の命令長コードを
実行するプロセッサは、第2又は第3の発明の二種類の
命令長コードを実行するプロセッサであって、前記2N
ビットワード境界内に配置された前記第1命令データ信
号の内の一方が、ソフトウェアにより制御される割り込
みの実行を指令するトラップ命令であるときには、前記
命令デコード手段により前記トラップ命令をデコードし
て前記トラップ命令に対応した処理を実行することを特
徴としている。
【0017】第6の発明に係る命令コード入力装置は、
プロセッサに対して命令コードを与える命令コード入力
装置であって、前記命令コードは、N(Nは1以上の整
数)ビット長命令を与える第1命令データ信号と2Nビ
ット長命令を与える第2命令データ信号のみから成り、
前記第1及び第2命令データ信号の命令コードを、
(1)2個の前記第1命令データ信号を2Nビット長の
ワードの境界内に格納し、(2)前記第2命令データ信
号の各々を前記2Nビットワード境界内に格納するとい
う規則の下に配置している。
【0018】
【発明の実施の形態】
(実施の形態1)ここでは、N=16とした場合の一例
について、図面に基づき説明する。
【0019】図1は、本発明に係る複数の演算を実行す
るデータ処理装置の構成を示すブロック図である。図1
に示す通り、同装置は、プロセッサ10を中核として構
成される。
【0020】プロセッサ10は、演算部1、レジスタ
2、プログラムカウンタ部(以下、PC部と称す)3、
アドレス生成器4、命令キュー(queue)部5、命
令フェッチ部6、命令デコード部7及び制御部8より構
成されている。この内、制御部8は、命令デコード部7
が出力するデコード結果に従って、プロセッサ10内の
各部1〜7の動作を制御する。尚、図示の簡略化のため
に、同図中には、制御部8から出力される各制御信号の
図示化は省略されている。又、演算部1は、ALU(算
術論理演算器)、シフタ(shift)、Load−S
toreユニット及び乗算器(Mul.)から成る。
又、レジスタ2は汎用レジスタであり、32ビット幅で
16本の信号線を有し、演算結果のデータ及びアドレス
データを保持する。他の構成部分の詳細については、後
述する。
【0021】尚、命令キュー部5と命令フェッチ部6と
を総称して、「命令フェッチ機能部」と定義する。
【0022】又、プロセッサ10と、外部の周辺回路1
1、メモリ12及びデータセレクタ14とは、データバ
ス15とバスインタフェイス部13とによって接続され
ている。尚、データバス15は、命令コードを与える命
令コードデータ信号を本プロセッサ10に入力する「入
力手段」に該当する。
【0023】I.命令コードの配置方法(命令セット) 次に、この発明の根幹をなす「命令コードの配置方法」
について説明する。
【0024】既述した通り、固定長命令フォーマット
及び任意長命令フォーマットでは、それぞれに一長一
短があった。特に、の任意長命令フォーマットにおい
て、16ビット長命令コードと32ビット長命令コード
の2種類の命令コードを用いる場合は、命令フェッチ部
(ないし命令キュー部)と命令デコード部間には、4つ
の転送経路が必要とされる。この内、特にハードウェア
の複雑化という深刻な問題点を惹起せしめる要因となっ
ているのは、32(2N)ビット長命令が32(2N)
ビット境界を乗り越えてしまうような命令コードの配置
を許していることにあると考えられる。この点を、図2
に模式的に示す。
【0025】今、命令フェッチ部が外部のメモリより同
図の上段側に示す様な順序で配列された4つの命令コー
ド106〜109をフェッチしてきたものとし、これら
の内で、32ビット長の命令コード107及び108が
データ処理にとって有効であるものとする。このような
場合には、同図の下段側に示すような配置として、有効
命令コード107,108をデコードする必要がある。
従って、同図に示す様な、交差した2つの経路110,
111を実現する必要が生じるのである。このような経
路となる命令コードの配置を、ここでは「2Nビット命
令が2Nビット境界をまたぐ配置」と呼称している。こ
のために、命令デコーダ側のハードウェアが複雑化せざ
るを得ないのである。かかる要因に着眼するならば、そ
のような命令コードの配置を禁止する必要がある。
【0026】そこで、この発明では、(i)N(N≧
1)ビット長の命令(第1命令データ信号)と2Nビッ
ト長の命令(第2命令データ信号)という、2種類の命
令長のみから成る複数の命令コード(命令コードデータ
信号)を実行することとし、(ii)命令コードの配置
方法、即ち、2Nビット長で与えられる「ワード」内
(これを、2Nビット長ワード境界内と称す)に各命令
をどのように配置するのかという点を、以下の2種類の
みに制限することとしている。即ち、 (1)2個のNビット長命令を2Nビットワード境界内
に格納する。
【0027】(2)単一の2Nビット長命令を2Nビッ
トワード境界内に格納する。
【0028】本実施例では、N=16の場合を扱うもの
としているので、16ビット長命令と32ビット長命令
(最大ビット長の命令)の2種類のみとなり、命令コー
ドの配置方法は図3に示す通りとなる。
【0029】このような配置制限を設けることによっ
て、32ビット長命令が32ビット境界をまたぐような
命令コードの配置が完全に禁止されることとなり、その
結果として、図1の命令フェッチ部6と命令デコード部
7との転送経路は、図4に示す様に、3種類に削減され
る。この3種類の転送経路は、次の模式的な説明図5に
よって、理解されうるであろう。
【0030】同図に示す様に、命令キュー部5内に保持
されている状態では、3種類の命令コードの配列があり
うる。その内、同図の上段及び中段に示されるものは、
それぞれ、先行する16ビット長命令コードA1及び後
行する16ビット長命令コードB2のみが有効となる場
合であり、いずれも上記配列方法(1)の制限の下で配
列されている。この内、同図の上段の場合には、図4に
示す経路RT1を経て、命令コードA1はデコーダに転
送される。又、図5の中段の場合には、図4に示す交差
経路RT3を経て、命令コードB2はデコーダに転送さ
れる。他方、図5の下段に示される32ビット長の命令
コードC1は上記配置方法(2)に基づく制約の下で配
列されているものであり、図4に示す経路RT1,RT
2を経てデコーダに転送される。従って、デコード化の
ためには、3種類の経路RT1〜RT3のみで良いこと
となる。
【0031】このように、命令コードの配置を上記
(1),(2)の制約に服させることとしているので、
転送経路を従来の場合よりも1種類分だけ削減すること
が可能となるのであるが、上記(1),(2)の制約を
受けて配置された命令コードを与える命令コードデータ
信号は、図1のデータバス15上の入力データ信号とし
て実現されて、命令キュー部5に保持される。そのため
には、ここでは、上記制約ルール(1),(2)に基づ
いたプログラム制御によって、命令コードのデータをメ
モリ12内に書き込んでいる。従って、上記制約ルール
(1),(2)に基づく配置で書き込まれた命令コード
データ信号を記憶する「メモリ12」と、上記配置順序
に従って当該メモリ12から読み出された命令コードデ
ータ信号をプロセッサ10内に入力する手段たる「デー
タバス15」とを、「プロセッサ用命令コード入力装
置」として総称する。
【0032】尚、上記命令コードデータ信号の内、上記
制約(1)に基づき配置された16ビット(一般的には
Nビット)長命令コードを与えるものを「第1命令コー
ドデータ信号」と、上記制約(2)に基づき配置された
32ビット(一般的には2Nビット)長命令コードを与
えるものを「第2命令コードデータ信号」と、それぞれ
呼称する。
【0033】プロセッサ10の命令キュー部5内の命令
コードデータ信号のフォーマットを、図6に示す。同図
中の記号op1,op2はオペランドコードを、記号R
1,R2はレジスタを、記号Cは定数を、記号cond
は分岐条件の指定を表わす。
【0034】尚、上記制限(1),(2)の下でメモリ
12に命令コードのデータを書き込むのに代えて、上記
制限とは無関係に命令コードのデータをメモリ12内に
書き込み、新たにデータバス15上にメモリ12より読
み出した命令コードデータ信号を上記制限(1),
(2)の下で配置する機能部を設け、この機能部の出力
データを命令キュー部5に格納するようにしても良い。
【0035】II.分岐先の制御 更に、本プロセッサ10においては、分岐先のアドレス
を32ビット境界にのみ指定ないし制限する。このよう
に、命令コードの32ビット境界への配置を禁止したこ
とに加えて、分岐先アドレスを32ビット境界にのみに
制限したことにより、命令フェッチ部6と命令デコーダ
間の転送経路は2種類にまで削減される。
【0036】この点は、既述した図5に立ち戻って概観
すれば、容易に理解されうるであろう。即ち、分岐先ア
ドレスを32ビット境界においてのみ指定できるように
制限したということは、図1の命令デコード部7では、
命令フェッチ部6より出力された、32ビット長ワード
境界内に配置された命令コードデータ信号を受け取った
後は、当該命令コードデータ信号をその32ビット(2
Nビット)境界からデコードを開始することを意味す
る。従って、32ビットワード境界内に2個の16ビッ
ト長命令コードが配置されている場合は、先行する命令
A2をデコードした後に、同図の中段の命令コードB2
を、先行する命令コードA2があるビット位置へシフト
した上でデコードすればよい。
【0037】よって、命令キュー部5から命令デコード
部7への命令コードデータ信号の転送経路は、図7に模
式的に示す様に、2種類のみとなるのである。即ち、転
送経路は、 (イ)命令キュー部:上位16ビット→命令デコード
部:上位16ビット。
【0038】(ロ)命令キュー部:下位16ビット→命
令デコード部:下位16ビット。
【0039】分岐命令の飛び先の指定は、以下の形式で
行われる。その点を、図8、図9及び図10に示す本プ
ロセッサ10における命令コード表に基づき説明する。
尚、上記命令コード表において、「Format」中の
「dest」は結果収納先のレジスタの番号を示してお
り、「src」は演算対象であり、ここでは図6に示し
たレジスタR1を意味しており、当該レジスタR1中の
数値がメモリのアドレス値となっている。又、「pcd
isp8」は、即値が8ビットで与えられていることを
示している。
【0040】上記命令コード表において、 (a)JMP,JL命令は、命令コード内で指定したレ
ジスタの値が分岐先アドレスとなる。(ただし、レジス
タの下位2ビットの値”0”は無視する)。 (b)BRA,BL,BC,BNC命令は、8ビット又
は24ビットの即値を指定する。 (c)BEQ,BNE,BEQZ,BNEZ,BLT
Z,BGEZ,BLEZ,BGTZ命令は16ビットの
即値を指定する。 上記(b),(c)における分岐先のアドレスは、 (分岐命令のPC値)+(符号拡張された即値を左に
(最上位ビット位置側に)2ビットシフトした値) とする。ただし、加算を行う際には、PC値の下位2ビ
ットは”00”となる。
【0041】以上のように、分岐先を32ビット境界の
みに指定したことにより、分岐先アドレスの下位2ビッ
トは常に”00”となる。したがって、命令コード内で
分岐先アドレスを指定する場合には、その下位2ビット
を指定する必要がなくなる。結果として、命令コード内
から直接分岐できる範囲は22倍、従って4倍となる。
本実施の形態の場合には、上記命令コード表に示される
ように、命令コード内のアドレス指定部は最大で24ビ
ットであるので、実行中の命令のアドレスから±32M
Byteの範囲に直接分岐できる。
【0042】III.命令のデコード順序の制御 更に本プロセッサ10においては、命令コード内に命令
フォーマット識別子を与える情報を所定のビット数とし
て、ここでは1ビットとして設けている。そして、この
命令フォーマット識別子の値いかんによって、命令のデ
コード及び実行順序を制御している。ここでは、各命令
コードのMSB(Most Significant
Bit)が命令フォーマット識別子に該当する。
【0043】上記命令フォーマット識別子を用いた制御
のルールは、次の通りに設定される。即ち、単一の32
ビット長命令コードのMSBは常に1に設定されてい
る。他方、命令コードが2個の16ビット長命令コード
から成る場合においては、上位16ビット側に存在する
命令コードのMSBは常に0とされる。それに続く下位
16ビット側の命令コードに対しては、そのMSBの値
いかんによって異なる処理を行う。
【0044】命令の実行順序の制御方法を、図11を用
いて説明する。同図において、「命令B」のMSBが
0の場合は、「命令A」と「命令B」とは連続して実行
される。
【0045】それに対して、「命令B」のMSBが1
の場合は、「命令A」のみが実行される。命令Bは実行
されない。即ち、32ビット長命令の命令コード配置の
制約に基づいたワードアライメント調整のための命令B
としてワードアライメント調整用「NOP命令」を挿入
したときには、アセンブラが自動的に当該「NOP命
令」にあたる命令コードのMSBを1とし、これにより
「命令A」のみの実行が行われる。通常の無効演算「N
OP命令」は”0111000000000000”と
して与えられるが、アライメントという上記目的のため
に「NOP命令」は32ビットワード境界内の下位側1
6ビット位置に挿入されたのであって、それを直接実行
する必要もない。従って、本プロセッサ10では、「N
OP命令」は”1111000000000000”と
して与えられ、その結果、「NOP命令」自体は実行さ
れない。
【0046】このような命令実行順序の制御を行うこと
により、コード配置を満たすために挿入された無効演算
である「NOP命令」の実行時間ペナルティがなくなる
という利点が得られる。
【0047】V.命令デコード方法とその制御部 以下では、命令のデコード制御方法の具体例を、図12
を用いて説明する。
【0048】(命令デコード部7の構成)命令デコード
部7は、命令デコード入力ラッチ7a、命令デコーダ7
c、定数生成器7d及び命令デコード部7の制御ロジッ
ク7bから構成される。これらの内で、制御ロジック7
bは、命令デコード部7の各部の制御を司る。又、命令
デコーダ7cは、命令デコード入力ラッチ7aに格納さ
れた32ビットのビットパターンのうちの有効な命令コ
ードを、入力として受け取り、当該命令デコーダ7cは
命令コードをデコードする。尚、命令デコード入力ラッ
チ7a内の命令コードの配置は、メモリ12上での命令
コードの配置と同じである。デコード結果はプロセッサ
10の制御部8へと出力され、制御部8は、そのデコー
ド結果に基づき、演算部1やプロセッサ10全体を制御
する。
【0049】各部のより詳細な動作は、次の通りであ
る。
【0050】(命令フェッチ部6)先ず、命令フェッチ
部6は、データバス15(図1)を介してメモリ12か
ら命令コードデータ信号を32ビット長単位でフェッチ
し、それらを命令キュー部5に格納する。更に命令フェ
ッチ部6は、後述の第5制御信号CBに応じて、命令キ
ュー部5より順次に命令コードデータ信号を読み出して
命令デコード部7へ転送する。その結果、転送されてき
た命令コードデータ信号は、32ビット幅の命令デコー
ド入力ラッチ7aへ格納される。
【0051】命令デコード入力ラッチ7aに格納された
命令コードデータ信号の内で有効な命令コードを与える
信号のデコードの実行は、既述した命令フォーマット識
別子に基づき、制御ロジック7bにより、次の通りに制
御される。その点を、以下に詳述する。
【0052】(制御ロジック7b)図12の第1〜第3
制御信号CT1〜CT3(入力信号とも称す)と命令デ
コード入力ラッチ7a内の有効コード配置との関係を、
図13に示す。図中の斜線部は命令フォーマット識別子
を示し、梨地部は有効なコードを示す。
【0053】図12に示すように、制御ロジック7b
は、命令デコード入力ラッチ7aに納められた32ビッ
トパターンのうちの命令長識別子を与える第1,第2制
御信号CT1,CT2と、制御ロジック7b自身から出
力される第3制御信号CT3とを、入力とする。即ち、
命令デコード入力ラッチ7aは、命令フォーマット識別
子として自ら保有する32ビットのビットパターンの0
ビット目の値と16ビット目の値とを、各々第1制御信
号CT1及び第2制御信号CT2として、制御ロジック
7bに出力する。第3制御信号CT3は制御ロジック7
b自身からの出力信号であり、それは、命令デコーダ7
cが出力するデコード終了信号ESに応じて、上記ラッ
チ7aに納められた32ビットのビットパターン中の0
ビット目から15ビット目までの部分がデコードされて
いるのか(この場合には”0”)、それとも16ビット
目から31ビット目までの部分が現在デコードされてい
るのか(この場合には”1”)を、表わす。
【0054】(α)第1制御信号CT1の値が”1”で
ある時は、命令デコード入力ラッチ7aに納められてい
る命令コードデータ信号は32ビット長命令を与えるも
のである。
【0055】(β)第1制御信号CT1が”0”である
ときは、命令デコード入力ラッチ7aには2個の16ビ
ット長命令から成る命令コードデータ信号が格納されて
いる。このとき、さらに第2制御信号CT2が”0”か
つ第3制御信号CT3が”0”であれば、有効な命令コ
ードは上位16ビット側にある。これに対して、第2制
御信号2が”0”かつ第3制御信号CT3が”1”であ
れば、有効な命令コードは下位16ビット側にある。
【0056】(γ)第1制御信号CT1が”0”で、し
かも第2制御信号CT2が”1”である場合は、上位1
6ビットの命令コードのみが有効なコードであり、下位
16ビットの命令コードは、上述したワードアライメン
ト調整用「NOP命令」であり実行されない。
【0057】制御ロジック7bは、以上の入力信号CT
1〜CT3の値を基に、次コードのデコードのために、
次の3種類の制御信号CA,CB,CT3を出力する。
この内、第4制御信号CAは、命令デコード入力ラッチ
7a内において下位16ビットの命令コードを上位16
ビット位置へシフトするための制御信号、即ちシフタ制
御信号であり、第5制御信号CBは命令アドレスの32
ビット境界のポインタであり、命令フェッチ部6に対し
て命令デコード入力ラッチ7aへの命令コードの転送開
始を命令する信号である。第3制御信号CT3は、既述
した通り、次の有効コードが32ビットワード境界内の
上位16ビット位置にあるのか、下位16ビット位置に
あるのかを示す信号である。
【0058】さらに、図12に示すように、制御ロジッ
ク7bは、第6制御信号CCとして、命令デコーダ7c
においてデコード実行中の命令コードのアドレスが32
ビットワード境界上にある場合には”1”を、ワード境
界上にない場合には”0”を、後述するPCのビット3
0部(PC30部)に出力する。
【0059】命令コード内の即値により分岐先アドレス
を指定する分岐命令、即ち、上述した(b)BRA命令
等や(c)BEQ命令等をデコードする場合は、命令デ
コード入力ラッチ7aの後半24ビット(8ビット目か
ら31ビット目まで)位置に接続された定数生成器7d
へ、同ラッチ7aは即値を出力する。定数生成器7d
は、即値を符号拡張して得られる値を、バスS2に出力
する。
【0060】命令実行時に分岐が発生した場合には、第
1〜第3制御信号(入力)CT1〜CT3の値に関わり
なく、命令デコード部7の第4制御信号CA、第5制御
信号CB、第6制御信号CC及び第3制御信号CT3
は、すべて初期化される。
【0061】制御信号(入力)と制御信号(出力)の関
係を図14に示す。
【0062】以上より、命令デコード部7(図1,図1
2)においては、いずれの場合にも、第1回目にデコー
ドする命令コードは、必ず命令デコード入力ラッチ7a
の先頭からはじまる。したがって、命令デコード入力ラ
ッチ7aの内容が、そのまま命令デコーダ7cに転送さ
れる。命令コードデータ信号が単一の32ビット長命令
コードの場合には、転送経路は図12に示す経路P2,
P3である。又、上位の16ビット長命令コードの転送
経路は、経路P2である。
【0063】命令デコード入力ラッチ7aにおける命令
コードの配置が16ビット長命令の逐次実行である場合
のみ、命令コードの2回目の命令デコーダ7cへの出力
が行われる。この際、2回目の命令デコーダ7cへの出
力前に、次のような処理が行われる。デコード対象とな
る命令コード、即ち有効なコードは32ビットワード境
界内の下位側の16ビット位置にあるので、命令デコー
ド入力ラッチ7aの内容は左へ(32ビットのビットパ
ターンの0ビット目方向へ)16ビット分だけシフトさ
れ(経路P1)、入力ラッチ7aに入る。その結果が、
2回目の命令デコーダ7cへの出力となる(経路P
2)。
【0064】このように、経路P1を経由するのは、有
効コードが命令デコード入力ラッチ7aの下位16ビッ
ト位置にある場合に限られるので、H/W量を削減する
ことができ、さらに高速化を図れることが可能となる。
【0065】VI.PC部3のインクリメント動作 図15は、図1中のPC部3及びアドレス生成器4の部
分を拡大したブロック図である。図15を用いてPC部
3のインクリメント動作について説明する。
【0066】アドレス生成器4は、シフタ4aと加算器
4bとから構成されており、分岐命令のアドレスをアド
レッシングモードに従って計算する。
【0067】PC部3は、プログラムカウンタ(以後、
PCと称す)を中核として、更に比較器3b、(+1/
0)部3e、バックアップ・プログラムカウンタ(以
下、BPCと称す)3f、BPC30部3g及びプログ
ラムカウンタ・ブレークポインタ(以下、PBPと称
す)より構成される。この内、PBP3aとBPC3f
とは、制御レジスタである。
【0068】上述のプログラムカウンタは32ビットの
カウンタであり、現在実行中の命令のアドレス値を保持
する。命令コードの配置方法を上述の通り限定している
ので、本プロセッサ10(図1)の命令は偶数アドレス
値からのみ始まる。よって、プログラムカウンタの31
ビット目の値は、図22に例示するように、”0”固定
となる。従って、ハードウェア上では、PCの31ビッ
ト目の値を実現する必要がないので、PCは、図15に
示す通り、0ビット目から29ビット目までの値を与え
るPC(0:29)3cと、30ビット目の値を与える
PC30部3dとによって実現されている。この内、P
C30部3dは、第6制御信号CCの値”0”又は”
1”を保有するレジスタである。
【0069】又、上述のBPCは、後述する割り込み・
トラップ発生時にPC3cが保持するPC値を退避す
る。ここで、図23に例示するように、BPCの31ビ
ット目の値は常に”0”固定されているので、ハードウ
ェア上では、BPCは、0ビット目から29ビット目ま
での値を与えるBPC(0:29)3fと、30ビット
目の値を与えるBPC30より実現されている。従っ
て、本プロセッサ10(図1)は、後述する割り込み・
トラップの発生を検出すると、PC(0:29)3cの
値をBPC(0:29)3fへ退避させる。他方、PB
P3aは、後述するPCブレーク割り込みを制御するた
めの32ビット幅制御レジスタであり、PBP3aは、
割り込みを起動する命令実行のアドレス値を予め保有し
ており、制御部8(図1)から出力するバスD1上の書
き込み命令信号を用いて、上記アドレス値を書き込んで
いる。
【0070】PC(0:29)3cの更新は、本プロセ
ッサ10(図1)において分岐以外の命令が実行された
時には、以下に示すように行われる。尚、ここでは、4
本のバスS1,S2,S3及びD1を使用しており、信
号線Dは、PC3cに接続されている。
【0071】図12の命令デコード部7の制御ロジック
7bから出力される第5制御信号CB(32ビットワー
ド境界のアドレスを指すポインタ)が更新されると、P
C(0:29)3cが保持する値は(+1/0)部3e
によって”+1”だけ増加させられ、その増加後の値が
信号線D上にのる。これに対して、第5制御信号CBが
更新されない場合は、PC(0:29)3cの値は、
(+1/0)部3eによって増加されることなく、その
まま信号線D上にのる。
【0072】信号線D上の値はPC(0:29)3cへ
書き込まれ、これにより、PC(0:29)3cのPC
値は、次命令のPC(0:29)3cの値へと書き換え
られる。また、信号線DはバスS1に結線されているの
で、このPC(0:29)3cの更新値をバスS1上に
呼びだすことができる。
【0073】PC30部3dには、命令デコード部7内
の制御ロジック7b(図1)から出力される第6制御信
号CCの値が、命令実行時に書き込まれる。
【0074】他方、命令実行時に分岐が発生した場合に
は、次命令のPC値は、アドレス生成器4を用いて生成
され、その生成値はバスS3を経由してPC(0:2
9)3cに書き込まれる。
【0075】又、飛び先アドレス指定を即値でおこなう
分岐命令(上述した分岐命令(b),(c))の場合に
は、命令デコード部7の定数生成器7d(図1)は、当
該命令コードから抽出した即値を32ビットに拡張し、
拡張後の即値をバスS2を介してアドレス生成器4へ出
力する。そして、符号拡張された即値は、アドレス生成
器4内のシフタ4aによって左に(最上位側へ)2ビッ
トだけシフトされる。PC(0:29)3cの更新値
は、信号線DからバスS1を介して、アドレス生成器4
に出力される。ここで、PC(0:29)3cの更新値
は、分岐命令のPC上位30ビットにあたる。加算器4
bは、 (PC(0:29)3cの更新値)+(符号拡張された
即値を左に2ビットシフトした値) を計算し、これにより、分岐先アドレスの上位30ビッ
トが得られる。この上位30ビットの値は、バスS3を
介して、PC(0:29)3cに書き込まれる。
【0076】飛び先アドレス指定をレジスタ2(図1)
の値で行う分岐命令の場合(上述の分岐命令(a))に
は、命令コードにより指定されたレジスタ2から、バス
S1を介して、レジスタに保持されている値が受け取ら
れ、その定数値がPC3cに書き込まれる。
【0077】分岐発生時は、命令デコード部7が第6制
御信号CCを”0”に初期化することにより、PC30
部3dには”0”が書き込まれる。よって、本プロセッ
サ10(図1)では、上述の通り、分岐先のアドレスは
32ビットワード境界のみとなる。
【0078】VII.割り込み・トラップ動作の説明 プロセッサ10(図1)が通常のプログラムを実行して
いる途中で、ある事象が発生すると、そのプログラムの
実行を中断して、別のプログラムを実行する必要が生じ
る。このような事象としては、大別して、割り込み及び
トラップ動作がある。
【0079】(a)割り込み(Interrupt) 上記事象の内、外部からのハードウェア信号(これを割
り込み要求信号と称す)により、又は特定のアドレス実
行時に生ずるPCブレーク信号により発生する事象。
【0080】(b)トラップ(Trap) 上記事象のうち、命令により発行される事象。
【0081】本プロセッサ10(図1)はまた、外部割
り込み(EI)及びPCブレーク割り込み(PBI)か
ら成る2種類の(a)割り込みと、1種類のトラップ
(TRAP)とを実現する機能を備える。
【0082】割り込み・トラップ発生時の処理手順を図
16を用いて説明すれば、概要、次の通りとなる。
【0083】割り込み要求信号又はPCブレーク信号が
有効となった場合には、後程詳述する様に、プロセッサ
10は、32ビットワード境界でのみ割込み命令を受け
付ける。また、トラップ命令は、その命令実行後、トラ
ップの処理を開始する。
【0084】これにより、プロセッサ10(図1)は、
プログラムの実行を中断して割り込み又はトラップの処
理を行う。その際、同プロセッサ10は、後述する様
に、割り込み又はトラップの事象を検出して図15のP
C3cのPC値をBPC3fへ退避させることとしてお
り、その後、各々の割り込み又はトラップに対応した処
理プログラム「割り込み・トラップ処理ハンドラ」への
分岐をおこなう。
【0085】「割り込み・トラップ処理ハンドラ」での
処理が完了すると、「割り込み・トラップ処理ハンド
ラ」からの復帰命令を実行し、続いてPC3cのPC値
の復帰を行い、プロセッサ10は当該割り込み・トラッ
プ処理から復帰する。
【0086】本プロセッサ10における割り込み・トラ
ップの処理は、以上の通り、ハードウェアが処理を行う
部分と、プログラムが処理をする部分とから成る。即
ち、本プロセッサ10では、上述の処理の内、(1)戻
り先であるPC値のBPC3fへの退避、(2)「割り
込み・トラップ処理ハンドラ」への分岐、(3)BPC
値のPC3cへの書き込み、を、ハードウェア部分が実
行する。
【0087】前述の外部割り込み(EI)は、外部から
のハードウェア信号(割込み要求信号)により発生す
る。割込み要求信号による割り込みの要求は、32ビッ
トワード境界上でのみ受け付ける(この機構は、後記の
検出回路の構成による)。割り込み発生時に図15のB
PC3fに退避される値は、次命令のPC値である。
【0088】他方、PCブレーク割り込み(PBI)
は、特定のアドレスを実行したときに発生する。本プロ
セッサ10(図1)においては、指定するアドレスは3
2ビットワード境界のみである。各サイクル毎に、図1
5の比較器3bは、PBP3aが保持する値とPC3c
の値とを比較し、両者の値が一致するときにPCブレー
ク信号18を出力する。PCブレーク信号18は、後述
する割り込み・トラップ検出回路を介して、割り込み・
トラップ検出信号として検出され、その信号は図15の
(+1/0)部3eへ出力される。その結果、プロセッ
サ10に割り込みが発生し、PC値の退避が生じる。既
述した通り、PBP3aへの書き込みは、データバスD
1を用いて行われる。又、割り込み発生時にBPC3f
に退避される値は、次命令のPC値である。
【0089】又、トラップとは、ソフトウェアで制御す
る割り込みのことであり、トラップ命令の実行により発
生する。この場合、トラップ命令が32ビットワード境
界内の上位16ビット側にあるのか、それとも下位16
ビット側にあるのかを与える情報を、BPCビット3
0、即ち、BPC30部3gに格納する。トラップ命令
が上位16ビットにある場合は、BPC30部3gの値
は”0”、下位16ビットである場合は、BPC30部
3gの値は”1”である。割り込み発生時にBPCに退
避される値は、(トラップ命令のPC値+4)である。
【0090】割り込み・トラップを検出する回路を、図
17に示す。同検出回路は、図1の制御部8の一部を構
成しており、インバータ22、AND回路23,24及
び割り込み・トラップ検出回路16より成る。
【0091】本プロセッサ10は、当該検出回路によっ
て、外部信号19による割り込みの要求及びPCブレー
ク信号18による割り込みの要求を、共に32ビットワ
ード境界においてのみ受け付ける。即ち、32ビットワ
ード境界においては第6制御信号CCのレベルは”0”
であるので、第6制御信号CCを反転したワード境界検
出信号21(そのレベルは”1”)と割込み要求信号1
9とが同時に有効(”1”)になったときにのみ、出力
信号VEが有効(”1”)となる。また、ワード境界検
出信号21とPCブレーク信号18とが同時に有効(”
1”)になったときにのみ、出力信号VFが有効とな
る。このように、32ビットワード境界でのみ上記割込
み要求が受け付けられ、割り込み・トラップ処理ハンド
ラへ分岐し、当該処理を行った後に、「割り込み・トラ
ップ処理ハンドラ」からの復帰命令の実行によって、割
り込み・トラップ処理から実行プログラムへの復帰が行
われる。
【0092】他方、トラップ命令では、トラップ命令に
よる割り込みが指令されると、トラップ要求信号20が
有効(”1”)になる。
【0093】トラップ要求信号20、出力信号VE、出
力信号VFの内のいずれか1つが有効(”1”)になる
と、割り込み・トラップ検出回路16により、割り込み
・トラップ検出信号17が出力される。割り込み・トラ
ップ検出信号17が出力されると、割り込み・トラップ
処理ハンドラへ分岐し、当該処理を行った後、復帰命令
を実行し、当該処理から実行プログラムへと復帰する。
【0094】既述の通り、割り込み・トラップ発生時に
は、PC3c(図15)の値がBPC3fに退避され
る。割り込み発生時、BPC3fには次命令のPC値が
書き込まれる。
【0095】例えば、分岐命令の実行直後に割り込みが
発生した場合には、図15のアドレス生成器4で生成さ
れた分岐先を与えるPC値は、制御部8の制御の下、バ
スS3を経由してBPC3fに書き込まれる。これに対
して、分岐命令以外の命令の実行直後に割り込みが発生
した場合には、(+1/0)部3eによってPC(0:
29)3cの出力値に”+1”を加えられたものが、B
PC(0:29)3fに書き込まれる。
【0096】BPC30部3gには、PC30部3dの
値が書き込まれる。本プロセッサ10(図1)において
は、既述した通り、割り込みは32ビットワード境界に
おいてのみ受け付けられるので、割り込み発生時にBP
C30部3gに退避される値は、常に”0”である。
【0097】トラップ発生時には、((トラップ命令の
PC)+4)の値がBPC3fに書き込まれる。即ち、
(+1/0)部3eによってPC(0:29)3cの出
力値に”+1”が加えられたものが、BPC(0:2
9)3fに書き込まれ、BPC30部3gにはPC30
部3dの値が書き込まれる。即ち、トラップを発生させ
たトラップ命令が32ビットワード境界の上位16ビッ
トにある場合は、BPC30部3fには”0”が、32
ビットワード境界の下位16ビットにある場合はBPC
30部3gには”1”が、それぞれ書き込まれる。
【0098】割り込み・トラップからの復帰は、既述の
通り、リターン命令を実行することによって行う。リタ
ーン命令は、制御部8が出力する信号25を受けてBP
C3fが出力する信号が与えるアドレスへ分岐する。た
だし、本プロセッサ10においては、分岐先のアドレス
は常に32ビット境界のみに設定されているので、BP
C3fがPC3cに復帰する際、PCの下位2ビットは
常に”00”となる。
【0099】(まとめ)以上の構成を採用したことによ
り、次の様な特徴点が得られる。
【0100】本プロセッサ10は、Nビット長と2Nビ
ット長という2種類の命令長から成る命令コードを実行
することにより、固定長命令フォーマットに比べて、命
令機能の制限を受けることなくコードサイズを縮小する
ことができると共に、従来の任意長命令フォーマットに
比べて命令デコード方法を簡略化できる。
【0101】特に、命令コードの配置に一定の制限を加
えて、2Nビット境界をまたぐ命令の配置を禁止すると
共に、分岐先アドレスを2Nビットワード境界のみに指
定することとしたことにより、命令フェッチ部6及び命
令デコード部7間のデータ転送経路を格段に削減するこ
とができる。その結果、命令デコードのためのH/W量
を削減でき、高速化が図れる。
【0102】しかも、本プロセッサ10においては、分
岐先アドレスを2Nビット境界に制約したことにより、
分岐先アドレスの下位2ビットは常に”00”となる。
したがって、命令コード内で分岐先アドレスの下位2ビ
ットを指定する必要がない。その結果として、アドレス
の全てのビットを指定する場合と比較して、22倍、即
ち4倍の広範囲へ実行中の命令のアドレスから直接分岐
することができる。
【0103】そのような機能を備えた本プロセッサ10
に対して、更に、各種の割り込みやトラップ処理をサポ
ートし得る機能を備えることも可能である。
【0104】
【発明の効果】請求項1〜5記載の各発明によれば、命
令コード入力手段により2個の第1命令データ信号及び
第2命令データ信号は共に2Nビットワード境界内に格
納されるので、2Nビット長命令のデータが当該2Nビ
ット境界をまたいでしまうこととなる命令コードの配置
が禁止されることとなる。このため、命令フェッチ部か
ら命令デコード部への命令コードデータ信号の転送経路
を従来の4種類から3種類に削減することができるとい
う効果がある。
【0105】特に、請求項2記載の発明によれば、命令
デコーダ手段が分岐先アドレスを2Nビットワード境界
内に制限するので、命令コードデータ信号の転送経路を
2種類までに削減することができるという効果がある。
【0106】更に、請求項3記載の発明によれば、命令
長識別子に基づいて各命令のデコード及びその実行順序
を制御することが可能となる。そして、命令長識別子の
適切な設置によっては、無効演算としての命令コードデ
ータ信号を実行しなくて済むようにすることができ、こ
れにより実行時間ペナルティをなくすことも可能になる
いう利点がある。
【0107】更に、請求項4記載の発明では、外部割り
込み及びPCブレーク割り込みをサポートすることがで
きるという効果がある。
【0108】又、請求項5記載の発明では、トラップ命
令をサポートしうるという効果も得られる。
【0109】又、請求項6記載の発明では、命令コード
入力装置が2個の第1命令データ信号及び第2命令デー
タ信号を共に2Nビットワード境界内に格納した上で、
そのように各命令コードの配置が制約された2Nビット
長の命令コードデータ信号を順次にプロセッサに対して
入力させることができるので、当該命令コードデータ信
号を受けるプロセッサの側においては、命令デコード化
のための転送経路を従来の4種類から3種類に削減でき
るという効果を、プロセッサに対してもたらし得るとい
う効果がある。
【図面の簡単な説明】
【図1】 データ処理装置の構成を示すブロック図であ
る。
【図2】 命令コードの配置方法を模式的に示す図であ
る。
【図3】 命令コードの配置方法を模式的に示す図であ
る。
【図4】 命令フェッチ部と命令デコード部との転送経
路を模式的に示す図である。
【図5】 3種類の命令コードの配列を示す図である。
【図6】 命令キュー部内の命令コードデータ信号のフ
ォーマットを示す図である。
【図7】 命令キュー部と命令デコード部との転送経路
を模式的に示す図である。
【図8】 プロセッサの命令コード表を示す図である。
【図9】 プロセッサの命令コード表を示す図である。
【図10】 プロセッサの命令コード表を示す図であ
る。
【図11】 命令コードの実行順序の制御方法を示す図
である。
【図12】 命令デコード部の構成の詳細を示すブロッ
ク図である。
【図13】 第1〜第3制御信号と命令デコード入力ラ
ッチ内の有効コード配置との関係を示す図である。
【図14】 命令デコード部の制御ロジックの第1〜第
3制御信号と第4〜第6制御信号との関係を示す図であ
る。
【図15】 PC部及びアドレス生成器の構成の詳細を
示すブロック図である。
【図16】 割り込み・トラップ発生時の処理手順を示
す図である。
【図17】 割り込み・トラップを検出する回路を示す
ブロック図である。
【図18】 従来の固定長命令フォーマットを示す図で
ある。
【図19】 従来の任意長命令フォーマットを示す図で
ある。
【図20】 従来の任意長命令フォーマットの具体例を
示す図である。
【図21】 従来の命令フェッチ部と命令デコーダ部間
の転送経路を示す図である。
【図22】 PCがハードウェア上で実現されている態
様を示す図である。
【図23】 BPCがハードウェア上で実現されている
態様を示す図である。
【符号の説明】
1 演算部、2 レジスタ、3 PC部、3a プログ
ラムカウンタ・ブレークポインタ、3b 比較器、3c
プログラムカウンタ部(ビット0〜29)、3d プ
ログラムカウンタ部(ビット30)、3e (+1/
0)部、3f バックアップ・プログラムカウンタ(ビ
ット0〜29)、3g バックアップ・プログラムカウ
ンタ(ビット30)、4 アドレス生成器、5 命令キ
ュー部、6命令フェッチ部、7 命令デコード部、7a
命令デコード入力ラッチ、7b制御ロジック、7c
命令デコーダ、7d 定数生成器、8 制御部、10プ
ロセッサ、11 周辺回路、12 メモリ、13 バス
インタフェイス部、14 データセレクタ、15 デー
タバス、16 割り込み・トラップ検出回路、17 割
り込み・トラップ検出信号、18 PCブレーク信号、
19 割込み要求信号、20 TRAP要求信号、21
ワード境界検出信号、22 インバータ、23,24
AND回路、25 出力信号。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 N(Nは1以上の整数)ビット長命令を
    与える第1命令データ信号と2Nビット長命令を与える
    第2命令データ信号のみから成る命令コードを備え、前
    記第1及び第2命令データ信号の命令コードは、(1)
    2個の前記第1命令データ信号を2Nビット長のワード
    の境界内に格納し、(2)前記第2命令データ信号の各
    々を前記2Nビットワード境界内に格納するという規則
    の下に配置された、命令コード入力手段と、 前記命令コード入力手段をフェッチして前記規則の下に
    配置された前記命令コードを保持する命令フェッチ手段
    とを備えた、二種類の命令長コードを実行するプロセッ
    サ。
  2. 【請求項2】 請求項1記載のプロセッサであって、 前記命令フェッチ手段より転送される前記命令コードを
    与える信号を受け取って、前記命令コードに対して分岐
    先アドレスの指定を前記2Nビットワード境界に制限す
    ることにより前記命令コードをデコードする命令デコー
    ド手段を更に備えた、二種類の命令長コードを実行する
    プロセッサ。
  3. 【請求項3】 請求項2記載のプロセッサであって、 前記第1及び第2命令データ信号のそれぞれは、その所
    定のビット位置において、命令実行順序の制御情報を与
    える命令長識別子データを備える、二種類の命令長コー
    ドを実行するプロセッサ。
  4. 【請求項4】 請求項2又は3記載のプロセッサであっ
    て、 外部割り込み信号及び特定のアドレス実行時に発生する
    PCブレーク割り込み信号のそれぞれによる割り込み要
    求を前記命令コードの前記2Nビットワード境界におい
    てのみ受け付けて、前記割り込み要求に対応した処理を
    実行することを特徴とする、二種類の命令長コードを実
    行するプロセッサ。
  5. 【請求項5】 請求項2又は3記載のプロセッサであっ
    て、 前記2Nビットワード境界内に配置された前記命令コー
    ドが、ソフトウェアにより制御される割り込みの実行を
    指令するトラップ命令であるときには、前記命令デコー
    ド手段により前記トラップ命令をデコードして前記トラ
    ップ命令に対応した処理を実行することを特徴とする、
    二種類の命令長コードを実行するプロセッサ。
  6. 【請求項6】 プロセッサに対して命令コードを与える
    命令コード入力装置であって、 前記命令コードは、N(Nは1以上の整数)ビット長命
    令を与える第1命令データ信号と2Nビット長命令を与
    える第2命令データ信号のみから成り、 前記第1及び第2命令データ信号の命令コードを、
    (1)2個の前記第1命令データ信号を2Nビット長の
    ワードの境界内に格納し、(2)前記第2命令データ信
    号を前記2Nビットワード境界内に格納するという規則
    の下に配置する、命令コード入力装置。
JP24337596A 1996-09-13 1996-09-13 データ処理装置 Expired - Fee Related JP3658101B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP24337596A JP3658101B2 (ja) 1996-09-13 1996-09-13 データ処理装置
TW085114619A TW379305B (en) 1996-09-13 1996-11-26 Two-type command length code processor and command code input device
KR1019970000490A KR100260353B1 (ko) 1996-09-13 1997-01-10 2종류의 명령장 코드를 실행하는 프로세서 및 그명령 코드입력 장치
US08/811,005 US6463520B1 (en) 1996-09-13 1997-03-04 Processor for executing instruction codes of two different lengths and device for inputting the instruction codes
CN97103068A CN1095116C (zh) 1996-09-13 1997-03-19 执行两种指令长度代码的处理机及其指令码输入装置
US09/562,643 US6209079B1 (en) 1996-09-13 2000-05-01 Processor for executing instruction codes of two different lengths and device for inputting the instruction codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24337596A JP3658101B2 (ja) 1996-09-13 1996-09-13 データ処理装置

Publications (3)

Publication Number Publication Date
JPH1091435A true JPH1091435A (ja) 1998-04-10
JPH1091435A5 JPH1091435A5 (ja) 2004-09-09
JP3658101B2 JP3658101B2 (ja) 2005-06-08

Family

ID=17102923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24337596A Expired - Fee Related JP3658101B2 (ja) 1996-09-13 1996-09-13 データ処理装置

Country Status (5)

Country Link
US (2) US6463520B1 (ja)
JP (1) JP3658101B2 (ja)
KR (1) KR100260353B1 (ja)
CN (1) CN1095116C (ja)
TW (1) TW379305B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676652B2 (en) 2002-09-19 2010-03-09 Arm Limited Executing variable length instructions stored within a plurality of discrete memory address regions

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3490007B2 (ja) * 1998-12-17 2004-01-26 富士通株式会社 命令制御装置
EP1050801B1 (en) * 1999-05-03 2006-12-13 STMicroelectronics S.A. An instruction supply mechanism
EP1050798A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Decoding instructions
US20020144235A1 (en) * 2001-03-30 2002-10-03 Charles Simmers Debugging embedded systems
DE10120522A1 (de) * 2001-04-26 2002-11-07 Infineon Technologies Ag Verfahren zum Erkennen einer korrekten Befehls-Einsprung-Adresse bei Verwendung unterschiedlich langer Befehlsworte
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US7278137B1 (en) 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
KR100718754B1 (ko) * 2002-01-31 2007-05-15 에이알씨 인터내셔널 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서
DE10204038B4 (de) * 2002-02-01 2005-03-03 Infineon Technologies Ag Verfahren zum Erkennen einer korrekten Befehls-Einsprung-Adresse bei Verwendung unterschiedlich langer Befehlsworte
TWI230899B (en) * 2003-03-10 2005-04-11 Sunplus Technology Co Ltd Processor and method using parity check to proceed command mode switch
CN100595731C (zh) * 2003-03-21 2010-03-24 凌阳科技股份有限公司 利用同位检查以进行指令模式切换的处理器及方法
DE102004004561B4 (de) * 2004-01-29 2006-09-14 Infineon Technologies Ag Mikroprozessor mit einer energieeinsparenden Hol- und Dekodiereinheit zum Holen und Decodieren von komprimierten Programmbefehlen und mit einer Programmbefehlsfolgesteuerung
US8006071B2 (en) 2004-03-31 2011-08-23 Altera Corporation Processors operable to allow flexible instruction alignment
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US7581082B2 (en) * 2005-05-13 2009-08-25 Texas Instruments Incorporated Software source transfer selects instruction word sizes
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
CN100346291C (zh) * 2005-12-02 2007-10-31 浙江大学 多地址空间的块传输指令的控制方法及其装置
US7908463B2 (en) * 2007-06-26 2011-03-15 Globalfoundries Inc. Immediate and displacement extraction and decode mechanism
CN101344840B (zh) * 2007-07-10 2011-08-31 苏州简约纳电子有限公司 一种微处理器及在微处理器中执行指令的方法
TW200910195A (en) 2007-08-20 2009-03-01 Sunplus Technology Co Ltd A device of using serial bits to determine instruction length at a multi-mode processor and the method thereof
CN101377735B (zh) * 2007-08-28 2011-09-28 凌阳科技股份有限公司 于多模处理器中以串行位决定指令长度的装置及方法
CN101482809B (zh) * 2008-01-11 2011-10-26 凌阳科技股份有限公司 在多模处理器中用指令终止位决定指令长度的装置及方法
US7849243B2 (en) * 2008-01-23 2010-12-07 Intel Corporation Enabling flexibility of packet length in a communication protocol
CN101833437B (zh) * 2009-05-19 2013-06-26 威盛电子股份有限公司 适用于微处理器的装置及方法
US10055227B2 (en) 2012-02-07 2018-08-21 Qualcomm Incorporated Using the least significant bits of a called function's address to switch processor modes
GB2501299A (en) * 2012-04-19 2013-10-23 Ibm Analysing computer program instructions to determine if an instruction can be replaced with a trap or break point.
US9223714B2 (en) 2013-03-15 2015-12-29 Intel Corporation Instruction boundary prediction for variable length instruction set
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator
US20230342152A1 (en) * 2020-09-09 2023-10-26 Ascenium, Inc. Parallel processing architecture with split control word caches
US11775305B2 (en) * 2021-12-23 2023-10-03 Arm Limited Speculative usage of parallel decode units

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3678467A (en) * 1970-10-20 1972-07-18 Bell Telephone Labor Inc Multiprocessor with cooperative program execution
US4447878A (en) * 1978-05-30 1984-05-08 Intel Corporation Apparatus and method for providing byte and word compatible information transfers
US4408271A (en) * 1979-01-02 1983-10-04 Honeywell Information Systems Inc. Circuit for implementing a digital computer instruction
US4250548A (en) * 1979-01-02 1981-02-10 Honeywell Information Systems Inc. Computer apparatus
JPS5856164A (ja) * 1981-09-30 1983-04-02 Toshiba Corp デ−タ処理装置
JP2635057B2 (ja) 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
JPH0415826A (ja) 1990-05-08 1992-01-21 Rohm Co Ltd ワンチップマイクロコンピュータ
US5452423A (en) 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
JPH05313894A (ja) 1992-05-11 1993-11-26 Fuji Xerox Co Ltd 情報処理装置
JPH06119253A (ja) * 1992-10-02 1994-04-28 Toshiba Corp 二重化メモリ制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676652B2 (en) 2002-09-19 2010-03-09 Arm Limited Executing variable length instructions stored within a plurality of discrete memory address regions

Also Published As

Publication number Publication date
CN1177140A (zh) 1998-03-25
US6463520B1 (en) 2002-10-08
CN1095116C (zh) 2002-11-27
JP3658101B2 (ja) 2005-06-08
TW379305B (en) 2000-01-11
KR19980023918A (ko) 1998-07-06
US6209079B1 (en) 2001-03-27
KR100260353B1 (ko) 2000-07-01

Similar Documents

Publication Publication Date Title
JP3658101B2 (ja) データ処理装置
EP0220684B1 (en) Data processing system
US5522053A (en) Branch target and next instruction address calculation in a pipeline processor
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
JPH08305568A (ja) 情報処理装置
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
KR100254008B1 (ko) 2개의 명령을 동시에 실행할 수 있는 데이타 프로세서
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US6131158A (en) Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel
US4967338A (en) Loosely coupled pipeline processor
JP3182438B2 (ja) データプロセッサ
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
JPH07120278B2 (ja) データ処理装置
JPH01214932A (ja) データ処理装置
JP3578883B2 (ja) データ処理装置
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
EP0725336B1 (en) Information processor
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
US4812974A (en) Data processing apparatus for processing list vector instructions
EP0573071A2 (en) A microprocessor
JPH0769806B2 (ja) データ処理装置
JP3490007B2 (ja) 命令制御装置
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPH0793151A (ja) 命令供給装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050311

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080318

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090318

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090318

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100318

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120318

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130318

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130318

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140318

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees