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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address 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
おいて、コードサイズの縮小化及びH/W量の削減化に
よる高速化を図る。 【解決手段】 2種類の命令長(16ビット,32ビッ
ト)の命令コードを備えたプロセッサにおいて、命令コ
ードの配置方法を次の2種類に制限する。即ち、(1)
2個の16ビット長命令コードを32ビットワード境界
内に格納し、(2)単一の32ビット長命令コードはそ
のまま32ビットワード境界内に格納する。更に、分岐
先のアドレスを32ビットワード境界に制限すると共
に、各命令コードのMSBに1ビットの命令長識別子を
設けて命令コードの実行順序の制御を行う。これによ
り、プロセッサ内の命令フェッチ部から命令デコード部
への転送経路は2種類となる。
Description
ドの演算を実行するためのデータ処理装置に関するもの
であり、具体的には、プロセッサにおける命令コードの
配置技術に関する。
プロセッサとデータバスを介してつながっているメモリ
に、命令コードとして格納されている。この場合、当該
メモリに格納されている命令コードのフォーマットに
は、命令コードの長さが命令の種類によらずに常に一
定に設定されている「固定長フォーマット」と、命令
コードの長さがそれぞれ命令の種類によって異なるよう
に設定されている「任意長命令フォーマット」とがあ
る。
の、命令の機能を指定するオペレーションコード部分
と、命令の実行対象データ(オペランド)を指定するオ
ペランドコード部分とがある。オペランドの指定は、命
令コード中のアドレッシングモードの指定部において当
該オペランドがレジスタ内に格納されているのか、それ
とも外部のメモリ内に格納されているのかを指定するこ
とにより、行われる。そして、オペランドがメモリ内に
ある場合には、更にアドレス情報を命令コード中に付加
する。
ォーマットの命令フォーマットを、それぞれ図18及び
図19に模式的に示す。両図において、命令フォーマッ
ト100はオペランドがない場合を、命令フォーマット
101はオペランドがある場合を、命令フォーマット1
02はオペランドがない場合の任意長フォーマットを、
命令フォーマット103はオペランドがある場合の任意
長フォーマットを、それぞれ表している。
う利点がある。しかし、この命令フォーマットでは、決
められた一定の命令長の範囲内で、オペレーションコー
ドやアドレッシングモードの指定部や、さらにはアドレ
ス情報などの付加情報を記述しなくてはならないという
制約がある。従って、より多くの付加情報を記述するた
めには命令長を大きく設定する必要がある。その結果、
命令長を大きくした固定長命令フォーマットでは、命令
ビットパターンに冗長部分が増加し、コードサイズが大
きくなるという問題点が生ずる。一方では、コードサイ
ズを小さくするために命令長を小さく設定すると、命令
機能に対する制限が大きくなるという問題点が生じる。
場合 この場合には、2種類以上の任意の命令長の命令フォー
マットが使用されるので、各々の命令毎に応じて命令機
能を拡張することができるという利点がある。また、オ
ペランドのない命令の命令長を短く設定することができ
るので、固定長命令フォーマットの場合と比較して、コ
ードサイズを小さくできる利点がある。
各命令コードとして抽出し、更に、命令コード自身の各
々をデコードする作業が複雑化するので、命令デコード
方法が複雑にならざるを得ないという問題点がある。こ
のため、メモリの内容から命令コードを抽出して、命令
デコーダに送り込むためのH/W(ハードウェア)が大
きくなる。例えば、図20に示す様に、16/32ビッ
ト長命令フォーマット105,104を任意長命令フォ
ーマットとして導入するときには、図21に示す様に、
命令フェッチ部と命令デコーダの間には、命令コードの
転送のために、4つの経路を用意する必要がある。この
ためには、有効な命令コードをシフトして適切な命令コ
ードの配置の下でデコードが実行されるように、複雑な
シフト機能を命令デコーダに具備させなければならな
い。
及びの任意長命令フォーマットには、それぞれ一長一
短がある。そこで、及びのそれぞれの利点を兼ね備
えたプロセッサの実現が要望されているのである。
めになされたものであり、具体的には、(i)固定長命
令フォーマットに比べてコードサイズを縮小化し、且つ
(ii)従来の任意長命令フォーマットに比べてプロセ
ッサのH/W量を削減して高速化を図ることができる命
令フォーマットを備えたプロセッサ及びプロセッサ用の
入力装置を実現することを、その主たる目的としてい
る。
割り込み(外部割り込み、PCブレーク割り込み)やソ
フトウェア割り込みの機能を具備したプロセッサを実現
することを、その副次的目的としている。
デコードするためのプロセッサの構成を具体化すること
を、その副次的目的としている。
の命令長コードを実行するプロセッサは、N(Nは1以
上の整数)ビット長命令を与える第1命令データ信号と
2Nビット長命令を与える第2命令データ信号のみから
成る命令コードを備え、前記第1及び第2命令データ信
号の命令コードは、(1)2個の前記第1命令データ信
号を2Nビット長のワードの境界内に格納し、(2)前
記第2命令データ信号の各々を前記2Nビットワード境
界内に格納するという規則の下に配置された、命令コー
ド入力手段と、前記命令コード入力手段をフェッチして
前記規則の下に配置された前記命令コードを保持する命
令フェッチ手段とを備えている。
実行するプロセッサは、第1の発明の二種類の命令長コ
ードを実行するプロセッサであって、前記命令フェッチ
手段より転送される前記命令コードを与える信号を受け
取って、前記命令コードに対して分岐先アドレスを前記
2Nビットワード境界に制限することにより前記命令コ
ードをデコードする命令デコード手段を更に備えてい
る。
実行するプロセッサであって、前記第1及び第2命令デ
ータ信号のそれぞれは、その所定のビット位置におい
て、命令実行順序の制御情報を与える命令長識別子デー
タを備えている。
実行するプロセッサは、第2又は第3の発明の二種類の
命令長コードを実行するプロセッサであって、外部割り
込み信号及び特定のアドレス実行時に発生するPCブレ
ーク割り込み信号のそれぞれによる割り込み要求を前記
命令コードの前記2Nビットワード境界においてのみ受
け付けて、前記割り込み要求に対応した処理を実行する
ことを特徴としている。
実行するプロセッサは、第2又は第3の発明の二種類の
命令長コードを実行するプロセッサであって、前記2N
ビットワード境界内に配置された前記第1命令データ信
号の内の一方が、ソフトウェアにより制御される割り込
みの実行を指令するトラップ命令であるときには、前記
命令デコード手段により前記トラップ命令をデコードし
て前記トラップ命令に対応した処理を実行することを特
徴としている。
プロセッサに対して命令コードを与える命令コード入力
装置であって、前記命令コードは、N(Nは1以上の整
数)ビット長命令を与える第1命令データ信号と2Nビ
ット長命令を与える第2命令データ信号のみから成り、
前記第1及び第2命令データ信号の命令コードを、
(1)2個の前記第1命令データ信号を2Nビット長の
ワードの境界内に格納し、(2)前記第2命令データ信
号の各々を前記2Nビットワード境界内に格納するとい
う規則の下に配置している。
について、図面に基づき説明する。
るデータ処理装置の構成を示すブロック図である。図1
に示す通り、同装置は、プロセッサ10を中核として構
成される。
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本の信号線を有し、演算結果のデータ及びアドレス
データを保持する。他の構成部分の詳細については、後
述する。
を総称して、「命令フェッチ機能部」と定義する。
1、メモリ12及びデータセレクタ14とは、データバ
ス15とバスインタフェイス部13とによって接続され
ている。尚、データバス15は、命令コードを与える命
令コードデータ信号を本プロセッサ10に入力する「入
力手段」に該当する。
について説明する。
及び任意長命令フォーマットでは、それぞれに一長一
短があった。特に、の任意長命令フォーマットにおい
て、16ビット長命令コードと32ビット長命令コード
の2種類の命令コードを用いる場合は、命令フェッチ部
(ないし命令キュー部)と命令デコード部間には、4つ
の転送経路が必要とされる。この内、特にハードウェア
の複雑化という深刻な問題点を惹起せしめる要因となっ
ているのは、32(2N)ビット長命令が32(2N)
ビット境界を乗り越えてしまうような命令コードの配置
を許していることにあると考えられる。この点を、図2
に模式的に示す。
図の上段側に示す様な順序で配列された4つの命令コー
ド106〜109をフェッチしてきたものとし、これら
の内で、32ビット長の命令コード107及び108が
データ処理にとって有効であるものとする。このような
場合には、同図の下段側に示すような配置として、有効
命令コード107,108をデコードする必要がある。
従って、同図に示す様な、交差した2つの経路110,
111を実現する必要が生じるのである。このような経
路となる命令コードの配置を、ここでは「2Nビット命
令が2Nビット境界をまたぐ配置」と呼称している。こ
のために、命令デコーダ側のハードウェアが複雑化せざ
るを得ないのである。かかる要因に着眼するならば、そ
のような命令コードの配置を禁止する必要がある。
1)ビット長の命令(第1命令データ信号)と2Nビッ
ト長の命令(第2命令データ信号)という、2種類の命
令長のみから成る複数の命令コード(命令コードデータ
信号)を実行することとし、(ii)命令コードの配置
方法、即ち、2Nビット長で与えられる「ワード」内
(これを、2Nビット長ワード境界内と称す)に各命令
をどのように配置するのかという点を、以下の2種類の
みに制限することとしている。即ち、 (1)2個のNビット長命令を2Nビットワード境界内
に格納する。
トワード境界内に格納する。
としているので、16ビット長命令と32ビット長命令
(最大ビット長の命令)の2種類のみとなり、命令コー
ドの配置方法は図3に示す通りとなる。
て、32ビット長命令が32ビット境界をまたぐような
命令コードの配置が完全に禁止されることとなり、その
結果として、図1の命令フェッチ部6と命令デコード部
7との転送経路は、図4に示す様に、3種類に削減され
る。この3種類の転送経路は、次の模式的な説明図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のみで良いこと
となる。
(1),(2)の制約に服させることとしているので、
転送経路を従来の場合よりも1種類分だけ削減すること
が可能となるのであるが、上記(1),(2)の制約を
受けて配置された命令コードを与える命令コードデータ
信号は、図1のデータバス15上の入力データ信号とし
て実現されて、命令キュー部5に保持される。そのため
には、ここでは、上記制約ルール(1),(2)に基づ
いたプログラム制御によって、命令コードのデータをメ
モリ12内に書き込んでいる。従って、上記制約ルール
(1),(2)に基づく配置で書き込まれた命令コード
データ信号を記憶する「メモリ12」と、上記配置順序
に従って当該メモリ12から読み出された命令コードデ
ータ信号をプロセッサ10内に入力する手段たる「デー
タバス15」とを、「プロセッサ用命令コード入力装
置」として総称する。
制約(1)に基づき配置された16ビット(一般的には
Nビット)長命令コードを与えるものを「第1命令コー
ドデータ信号」と、上記制約(2)に基づき配置された
32ビット(一般的には2Nビット)長命令コードを与
えるものを「第2命令コードデータ信号」と、それぞれ
呼称する。
コードデータ信号のフォーマットを、図6に示す。同図
中の記号op1,op2はオペランドコードを、記号R
1,R2はレジスタを、記号Cは定数を、記号cond
は分岐条件の指定を表わす。
12に命令コードのデータを書き込むのに代えて、上記
制限とは無関係に命令コードのデータをメモリ12内に
書き込み、新たにデータバス15上にメモリ12より読
み出した命令コードデータ信号を上記制限(1),
(2)の下で配置する機能部を設け、この機能部の出力
データを命令キュー部5に格納するようにしても良い。
を32ビット境界にのみ指定ないし制限する。このよう
に、命令コードの32ビット境界への配置を禁止したこ
とに加えて、分岐先アドレスを32ビット境界にのみに
制限したことにより、命令フェッチ部6と命令デコーダ
間の転送経路は2種類にまで削減される。
すれば、容易に理解されうるであろう。即ち、分岐先ア
ドレスを32ビット境界においてのみ指定できるように
制限したということは、図1の命令デコード部7では、
命令フェッチ部6より出力された、32ビット長ワード
境界内に配置された命令コードデータ信号を受け取った
後は、当該命令コードデータ信号をその32ビット(2
Nビット)境界からデコードを開始することを意味す
る。従って、32ビットワード境界内に2個の16ビッ
ト長命令コードが配置されている場合は、先行する命令
A2をデコードした後に、同図の中段の命令コードB2
を、先行する命令コードA2があるビット位置へシフト
した上でデコードすればよい。
部7への命令コードデータ信号の転送経路は、図7に模
式的に示す様に、2種類のみとなるのである。即ち、転
送経路は、 (イ)命令キュー部:上位16ビット→命令デコード
部:上位16ビット。
令デコード部:下位16ビット。
行われる。その点を、図8、図9及び図10に示す本プ
ロセッサ10における命令コード表に基づき説明する。
尚、上記命令コード表において、「Format」中の
「dest」は結果収納先のレジスタの番号を示してお
り、「src」は演算対象であり、ここでは図6に示し
たレジスタR1を意味しており、当該レジスタR1中の
数値がメモリのアドレス値となっている。又、「pcd
isp8」は、即値が8ビットで与えられていることを
示している。
ジスタの値が分岐先アドレスとなる。(ただし、レジス
タの下位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”となる。
みに指定したことにより、分岐先アドレスの下位2ビッ
トは常に”00”となる。したがって、命令コード内で
分岐先アドレスを指定する場合には、その下位2ビット
を指定する必要がなくなる。結果として、命令コード内
から直接分岐できる範囲は22倍、従って4倍となる。
本実施の形態の場合には、上記命令コード表に示される
ように、命令コード内のアドレス指定部は最大で24ビ
ットであるので、実行中の命令のアドレスから±32M
Byteの範囲に直接分岐できる。
フォーマット識別子を与える情報を所定のビット数とし
て、ここでは1ビットとして設けている。そして、この
命令フォーマット識別子の値いかんによって、命令のデ
コード及び実行順序を制御している。ここでは、各命令
コードのMSB(Most Significant
Bit)が命令フォーマット識別子に該当する。
のルールは、次の通りに設定される。即ち、単一の32
ビット長命令コードのMSBは常に1に設定されてい
る。他方、命令コードが2個の16ビット長命令コード
から成る場合においては、上位16ビット側に存在する
命令コードのMSBは常に0とされる。それに続く下位
16ビット側の命令コードに対しては、そのMSBの値
いかんによって異なる処理を行う。
いて説明する。同図において、「命令B」のMSBが
0の場合は、「命令A」と「命令B」とは連続して実行
される。
の場合は、「命令A」のみが実行される。命令Bは実行
されない。即ち、32ビット長命令の命令コード配置の
制約に基づいたワードアライメント調整のための命令B
としてワードアライメント調整用「NOP命令」を挿入
したときには、アセンブラが自動的に当該「NOP命
令」にあたる命令コードのMSBを1とし、これにより
「命令A」のみの実行が行われる。通常の無効演算「N
OP命令」は”0111000000000000”と
して与えられるが、アライメントという上記目的のため
に「NOP命令」は32ビットワード境界内の下位側1
6ビット位置に挿入されたのであって、それを直接実行
する必要もない。従って、本プロセッサ10では、「N
OP命令」は”1111000000000000”と
して与えられ、その結果、「NOP命令」自体は実行さ
れない。
により、コード配置を満たすために挿入された無効演算
である「NOP命令」の実行時間ペナルティがなくなる
という利点が得られる。
を用いて説明する。
部7は、命令デコード入力ラッチ7a、命令デコーダ7
c、定数生成器7d及び命令デコード部7の制御ロジッ
ク7bから構成される。これらの内で、制御ロジック7
bは、命令デコード部7の各部の制御を司る。又、命令
デコーダ7cは、命令デコード入力ラッチ7aに格納さ
れた32ビットのビットパターンのうちの有効な命令コ
ードを、入力として受け取り、当該命令デコーダ7cは
命令コードをデコードする。尚、命令デコード入力ラッ
チ7a内の命令コードの配置は、メモリ12上での命令
コードの配置と同じである。デコード結果はプロセッサ
10の制御部8へと出力され、制御部8は、そのデコー
ド結果に基づき、演算部1やプロセッサ10全体を制御
する。
る。
部6は、データバス15(図1)を介してメモリ12か
ら命令コードデータ信号を32ビット長単位でフェッチ
し、それらを命令キュー部5に格納する。更に命令フェ
ッチ部6は、後述の第5制御信号CBに応じて、命令キ
ュー部5より順次に命令コードデータ信号を読み出して
命令デコード部7へ転送する。その結果、転送されてき
た命令コードデータ信号は、32ビット幅の命令デコー
ド入力ラッチ7aへ格納される。
命令コードデータ信号の内で有効な命令コードを与える
信号のデコードの実行は、既述した命令フォーマット識
別子に基づき、制御ロジック7bにより、次の通りに制
御される。その点を、以下に詳述する。
制御信号CT1〜CT3(入力信号とも称す)と命令デ
コード入力ラッチ7a内の有効コード配置との関係を、
図13に示す。図中の斜線部は命令フォーマット識別子
を示し、梨地部は有効なコードを示す。
は、命令デコード入力ラッチ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”)を、表わす。
ある時は、命令デコード入力ラッチ7aに納められてい
る命令コードデータ信号は32ビット長命令を与えるも
のである。
ときは、命令デコード入力ラッチ7aには2個の16ビ
ット長命令から成る命令コードデータ信号が格納されて
いる。このとき、さらに第2制御信号CT2が”0”か
つ第3制御信号CT3が”0”であれば、有効な命令コ
ードは上位16ビット側にある。これに対して、第2制
御信号2が”0”かつ第3制御信号CT3が”1”であ
れば、有効な命令コードは下位16ビット側にある。
かも第2制御信号CT2が”1”である場合は、上位1
6ビットの命令コードのみが有効なコードであり、下位
16ビットの命令コードは、上述したワードアライメン
ト調整用「NOP命令」であり実行されない。
1〜CT3の値を基に、次コードのデコードのために、
次の3種類の制御信号CA,CB,CT3を出力する。
この内、第4制御信号CAは、命令デコード入力ラッチ
7a内において下位16ビットの命令コードを上位16
ビット位置へシフトするための制御信号、即ちシフタ制
御信号であり、第5制御信号CBは命令アドレスの32
ビット境界のポインタであり、命令フェッチ部6に対し
て命令デコード入力ラッチ7aへの命令コードの転送開
始を命令する信号である。第3制御信号CT3は、既述
した通り、次の有効コードが32ビットワード境界内の
上位16ビット位置にあるのか、下位16ビット位置に
あるのかを示す信号である。
ク7bは、第6制御信号CCとして、命令デコーダ7c
においてデコード実行中の命令コードのアドレスが32
ビットワード境界上にある場合には”1”を、ワード境
界上にない場合には”0”を、後述するPCのビット3
0部(PC30部)に出力する。
を指定する分岐命令、即ち、上述した(b)BRA命令
等や(c)BEQ命令等をデコードする場合は、命令デ
コード入力ラッチ7aの後半24ビット(8ビット目か
ら31ビット目まで)位置に接続された定数生成器7d
へ、同ラッチ7aは即値を出力する。定数生成器7d
は、即値を符号拡張して得られる値を、バスS2に出力
する。
1〜第3制御信号(入力)CT1〜CT3の値に関わり
なく、命令デコード部7の第4制御信号CA、第5制御
信号CB、第6制御信号CC及び第3制御信号CT3
は、すべて初期化される。
係を図14に示す。
2)においては、いずれの場合にも、第1回目にデコー
ドする命令コードは、必ず命令デコード入力ラッチ7a
の先頭からはじまる。したがって、命令デコード入力ラ
ッチ7aの内容が、そのまま命令デコーダ7cに転送さ
れる。命令コードデータ信号が単一の32ビット長命令
コードの場合には、転送経路は図12に示す経路P2,
P3である。又、上位の16ビット長命令コードの転送
経路は、経路P2である。
コードの配置が16ビット長命令の逐次実行である場合
のみ、命令コードの2回目の命令デコーダ7cへの出力
が行われる。この際、2回目の命令デコーダ7cへの出
力前に、次のような処理が行われる。デコード対象とな
る命令コード、即ち有効なコードは32ビットワード境
界内の下位側の16ビット位置にあるので、命令デコー
ド入力ラッチ7aの内容は左へ(32ビットのビットパ
ターンの0ビット目方向へ)16ビット分だけシフトさ
れ(経路P1)、入力ラッチ7aに入る。その結果が、
2回目の命令デコーダ7cへの出力となる(経路P
2)。
効コードが命令デコード入力ラッチ7aの下位16ビッ
ト位置にある場合に限られるので、H/W量を削減する
ことができ、さらに高速化を図れることが可能となる。
分を拡大したブロック図である。図15を用いてPC部
3のインクリメント動作について説明する。
4bとから構成されており、分岐命令のアドレスをアド
レッシングモードに従って計算する。
PCと称す)を中核として、更に比較器3b、(+1/
0)部3e、バックアップ・プログラムカウンタ(以
下、BPCと称す)3f、BPC30部3g及びプログ
ラムカウンタ・ブレークポインタ(以下、PBPと称
す)より構成される。この内、PBP3aとBPC3f
とは、制御レジスタである。
カウンタであり、現在実行中の命令のアドレス値を保持
する。命令コードの配置方法を上述の通り限定している
ので、本プロセッサ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”を保有するレジスタである。
トラップ発生時に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上の書
き込み命令信号を用いて、上記アドレス値を書き込んで
いる。
ッサ10(図1)において分岐以外の命令が実行された
時には、以下に示すように行われる。尚、ここでは、4
本のバスS1,S2,S3及びD1を使用しており、信
号線Dは、PC3cに接続されている。
7bから出力される第5制御信号CB(32ビットワー
ド境界のアドレスを指すポインタ)が更新されると、P
C(0:29)3cが保持する値は(+1/0)部3e
によって”+1”だけ増加させられ、その増加後の値が
信号線D上にのる。これに対して、第5制御信号CBが
更新されない場合は、PC(0:29)3cの値は、
(+1/0)部3eによって増加されることなく、その
まま信号線D上にのる。
書き込まれ、これにより、PC(0:29)3cのPC
値は、次命令のPC(0:29)3cの値へと書き換え
られる。また、信号線DはバスS1に結線されているの
で、このPC(0:29)3cの更新値をバスS1上に
呼びだすことができる。
の制御ロジック7b(図1)から出力される第6制御信
号CCの値が、命令実行時に書き込まれる。
は、次命令のPC値は、アドレス生成器4を用いて生成
され、その生成値はバスS3を経由してPC(0:2
9)3cに書き込まれる。
分岐命令(上述した分岐命令(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に書き込まれる。
の値で行う分岐命令の場合(上述の分岐命令(a))に
は、命令コードにより指定されたレジスタ2から、バス
S1を介して、レジスタに保持されている値が受け取ら
れ、その定数値がPC3cに書き込まれる。
御信号CCを”0”に初期化することにより、PC30
部3dには”0”が書き込まれる。よって、本プロセッ
サ10(図1)では、上述の通り、分岐先のアドレスは
32ビットワード境界のみとなる。
いる途中で、ある事象が発生すると、そのプログラムの
実行を中断して、別のプログラムを実行する必要が生じ
る。このような事象としては、大別して、割り込み及び
トラップ動作がある。
り込み要求信号と称す)により、又は特定のアドレス実
行時に生ずるPCブレーク信号により発生する事象。
り込み(EI)及びPCブレーク割り込み(PBI)か
ら成る2種類の(a)割り込みと、1種類のトラップ
(TRAP)とを実現する機能を備える。
16を用いて説明すれば、概要、次の通りとなる。
有効となった場合には、後程詳述する様に、プロセッサ
10は、32ビットワード境界でのみ割込み命令を受け
付ける。また、トラップ命令は、その命令実行後、トラ
ップの処理を開始する。
プログラムの実行を中断して割り込み又はトラップの処
理を行う。その際、同プロセッサ10は、後述する様
に、割り込み又はトラップの事象を検出して図15のP
C3cのPC値をBPC3fへ退避させることとしてお
り、その後、各々の割り込み又はトラップに対応した処
理プログラム「割り込み・トラップ処理ハンドラ」への
分岐をおこなう。
処理が完了すると、「割り込み・トラップ処理ハンド
ラ」からの復帰命令を実行し、続いてPC3cのPC値
の復帰を行い、プロセッサ10は当該割り込み・トラッ
プ処理から復帰する。
ップの処理は、以上の通り、ハードウェアが処理を行う
部分と、プログラムが処理をする部分とから成る。即
ち、本プロセッサ10では、上述の処理の内、(1)戻
り先であるPC値のBPC3fへの退避、(2)「割り
込み・トラップ処理ハンドラ」への分岐、(3)BPC
値のPC3cへの書き込み、を、ハードウェア部分が実
行する。
のハードウェア信号(割込み要求信号)により発生す
る。割込み要求信号による割り込みの要求は、32ビッ
トワード境界上でのみ受け付ける(この機構は、後記の
検出回路の構成による)。割り込み発生時に図15のB
PC3fに退避される値は、次命令のPC値である。
は、特定のアドレスを実行したときに発生する。本プロ
セッサ10(図1)においては、指定するアドレスは3
2ビットワード境界のみである。各サイクル毎に、図1
5の比較器3bは、PBP3aが保持する値とPC3c
の値とを比較し、両者の値が一致するときにPCブレー
ク信号18を出力する。PCブレーク信号18は、後述
する割り込み・トラップ検出回路を介して、割り込み・
トラップ検出信号として検出され、その信号は図15の
(+1/0)部3eへ出力される。その結果、プロセッ
サ10に割り込みが発生し、PC値の退避が生じる。既
述した通り、PBP3aへの書き込みは、データバスD
1を用いて行われる。又、割り込み発生時にBPC3f
に退避される値は、次命令のPC値である。
る割り込みのことであり、トラップ命令の実行により発
生する。この場合、トラップ命令が32ビットワード境
界内の上位16ビット側にあるのか、それとも下位16
ビット側にあるのかを与える情報を、BPCビット3
0、即ち、BPC30部3gに格納する。トラップ命令
が上位16ビットにある場合は、BPC30部3gの値
は”0”、下位16ビットである場合は、BPC30部
3gの値は”1”である。割り込み発生時にBPCに退
避される値は、(トラップ命令のPC値+4)である。
17に示す。同検出回路は、図1の制御部8の一部を構
成しており、インバータ22、AND回路23,24及
び割り込み・トラップ検出回路16より成る。
て、外部信号19による割り込みの要求及びPCブレー
ク信号18による割り込みの要求を、共に32ビットワ
ード境界においてのみ受け付ける。即ち、32ビットワ
ード境界においては第6制御信号CCのレベルは”0”
であるので、第6制御信号CCを反転したワード境界検
出信号21(そのレベルは”1”)と割込み要求信号1
9とが同時に有効(”1”)になったときにのみ、出力
信号VEが有効(”1”)となる。また、ワード境界検
出信号21とPCブレーク信号18とが同時に有効(”
1”)になったときにのみ、出力信号VFが有効とな
る。このように、32ビットワード境界でのみ上記割込
み要求が受け付けられ、割り込み・トラップ処理ハンド
ラへ分岐し、当該処理を行った後に、「割り込み・トラ
ップ処理ハンドラ」からの復帰命令の実行によって、割
り込み・トラップ処理から実行プログラムへの復帰が行
われる。
よる割り込みが指令されると、トラップ要求信号20が
有効(”1”)になる。
力信号VFの内のいずれか1つが有効(”1”)になる
と、割り込み・トラップ検出回路16により、割り込み
・トラップ検出信号17が出力される。割り込み・トラ
ップ検出信号17が出力されると、割り込み・トラップ
処理ハンドラへ分岐し、当該処理を行った後、復帰命令
を実行し、当該処理から実行プログラムへと復帰する。
は、PC3c(図15)の値がBPC3fに退避され
る。割り込み発生時、BPC3fには次命令のPC値が
書き込まれる。
発生した場合には、図15のアドレス生成器4で生成さ
れた分岐先を与えるPC値は、制御部8の制御の下、バ
スS3を経由してBPC3fに書き込まれる。これに対
して、分岐命令以外の命令の実行直後に割り込みが発生
した場合には、(+1/0)部3eによってPC(0:
29)3cの出力値に”+1”を加えられたものが、B
PC(0:29)3fに書き込まれる。
値が書き込まれる。本プロセッサ10(図1)において
は、既述した通り、割り込みは32ビットワード境界に
おいてのみ受け付けられるので、割り込み発生時にBP
C30部3gに退避される値は、常に”0”である。
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”が、それぞれ書き込まれる。
通り、リターン命令を実行することによって行う。リタ
ーン命令は、制御部8が出力する信号25を受けてBP
C3fが出力する信号が与えるアドレスへ分岐する。た
だし、本プロセッサ10においては、分岐先のアドレス
は常に32ビット境界のみに設定されているので、BP
C3fがPC3cに復帰する際、PCの下位2ビットは
常に”00”となる。
り、次の様な特徴点が得られる。
ット長という2種類の命令長から成る命令コードを実行
することにより、固定長命令フォーマットに比べて、命
令機能の制限を受けることなくコードサイズを縮小する
ことができると共に、従来の任意長命令フォーマットに
比べて命令デコード方法を簡略化できる。
えて、2Nビット境界をまたぐ命令の配置を禁止すると
共に、分岐先アドレスを2Nビットワード境界のみに指
定することとしたことにより、命令フェッチ部6及び命
令デコード部7間のデータ転送経路を格段に削減するこ
とができる。その結果、命令デコードのためのH/W量
を削減でき、高速化が図れる。
岐先アドレスを2Nビット境界に制約したことにより、
分岐先アドレスの下位2ビットは常に”00”となる。
したがって、命令コード内で分岐先アドレスの下位2ビ
ットを指定する必要がない。その結果として、アドレス
の全てのビットを指定する場合と比較して、22倍、即
ち4倍の広範囲へ実行中の命令のアドレスから直接分岐
することができる。
に対して、更に、各種の割り込みやトラップ処理をサポ
ートし得る機能を備えることも可能である。
令コード入力手段により2個の第1命令データ信号及び
第2命令データ信号は共に2Nビットワード境界内に格
納されるので、2Nビット長命令のデータが当該2Nビ
ット境界をまたいでしまうこととなる命令コードの配置
が禁止されることとなる。このため、命令フェッチ部か
ら命令デコード部への命令コードデータ信号の転送経路
を従来の4種類から3種類に削減することができるとい
う効果がある。
デコーダ手段が分岐先アドレスを2Nビットワード境界
内に制限するので、命令コードデータ信号の転送経路を
2種類までに削減することができるという効果がある。
長識別子に基づいて各命令のデコード及びその実行順序
を制御することが可能となる。そして、命令長識別子の
適切な設置によっては、無効演算としての命令コードデ
ータ信号を実行しなくて済むようにすることができ、こ
れにより実行時間ペナルティをなくすことも可能になる
いう利点がある。
込み及びPCブレーク割り込みをサポートすることがで
きるという効果がある。
令をサポートしうるという効果も得られる。
入力装置が2個の第1命令データ信号及び第2命令デー
タ信号を共に2Nビットワード境界内に格納した上で、
そのように各命令コードの配置が制約された2Nビット
長の命令コードデータ信号を順次にプロセッサに対して
入力させることができるので、当該命令コードデータ信
号を受けるプロセッサの側においては、命令デコード化
のための転送経路を従来の4種類から3種類に削減でき
るという効果を、プロセッサに対してもたらし得るとい
う効果がある。
る。
る。
る。
路を模式的に示す図である。
ォーマットを示す図である。
を模式的に示す図である。
る。
である。
ク図である。
ッチ内の有効コード配置との関係を示す図である。
3制御信号と第4〜第6制御信号との関係を示す図であ
る。
示すブロック図である。
す図である。
ブロック図である。
ある。
ある。
示す図である。
の転送経路を示す図である。
様を示す図である。
態様を示す図である。
ラムカウンタ・ブレークポインタ、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】 N(Nは1以上の整数)ビット長命令を
与える第1命令データ信号と2Nビット長命令を与える
第2命令データ信号のみから成る命令コードを備え、前
記第1及び第2命令データ信号の命令コードは、(1)
2個の前記第1命令データ信号を2Nビット長のワード
の境界内に格納し、(2)前記第2命令データ信号の各
々を前記2Nビットワード境界内に格納するという規則
の下に配置された、命令コード入力手段と、 前記命令コード入力手段をフェッチして前記規則の下に
配置された前記命令コードを保持する命令フェッチ手段
とを備えた、二種類の命令長コードを実行するプロセッ
サ。 - 【請求項2】 請求項1記載のプロセッサであって、 前記命令フェッチ手段より転送される前記命令コードを
与える信号を受け取って、前記命令コードに対して分岐
先アドレスの指定を前記2Nビットワード境界に制限す
ることにより前記命令コードをデコードする命令デコー
ド手段を更に備えた、二種類の命令長コードを実行する
プロセッサ。 - 【請求項3】 請求項2記載のプロセッサであって、 前記第1及び第2命令データ信号のそれぞれは、その所
定のビット位置において、命令実行順序の制御情報を与
える命令長識別子データを備える、二種類の命令長コー
ドを実行するプロセッサ。 - 【請求項4】 請求項2又は3記載のプロセッサであっ
て、 外部割り込み信号及び特定のアドレス実行時に発生する
PCブレーク割り込み信号のそれぞれによる割り込み要
求を前記命令コードの前記2Nビットワード境界におい
てのみ受け付けて、前記割り込み要求に対応した処理を
実行することを特徴とする、二種類の命令長コードを実
行するプロセッサ。 - 【請求項5】 請求項2又は3記載のプロセッサであっ
て、 前記2Nビットワード境界内に配置された前記命令コー
ドが、ソフトウェアにより制御される割り込みの実行を
指令するトラップ命令であるときには、前記命令デコー
ド手段により前記トラップ命令をデコードして前記トラ
ップ命令に対応した処理を実行することを特徴とする、
二種類の命令長コードを実行するプロセッサ。 - 【請求項6】 プロセッサに対して命令コードを与える
命令コード入力装置であって、 前記命令コードは、N(Nは1以上の整数)ビット長命
令を与える第1命令データ信号と2Nビット長命令を与
える第2命令データ信号のみから成り、 前記第1及び第2命令データ信号の命令コードを、
(1)2個の前記第1命令データ信号を2Nビット長の
ワードの境界内に格納し、(2)前記第2命令データ信
号を前記2Nビットワード境界内に格納するという規則
の下に配置する、命令コード入力装置。
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)
| 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)
| 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)
| 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 | 二重化メモリ制御装置 |
-
1996
- 1996-09-13 JP JP24337596A patent/JP3658101B2/ja not_active Expired - Fee Related
- 1996-11-26 TW TW085114619A patent/TW379305B/zh not_active IP Right Cessation
-
1997
- 1997-01-10 KR KR1019970000490A patent/KR100260353B1/ko not_active Expired - Fee Related
- 1997-03-04 US US08/811,005 patent/US6463520B1/en not_active Expired - Fee Related
- 1997-03-19 CN CN97103068A patent/CN1095116C/zh not_active Expired - Fee Related
-
2000
- 2000-05-01 US US09/562,643 patent/US6209079B1/en not_active Expired - Lifetime
Cited By (1)
| 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 |