JP3504355B2 - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP3504355B2
JP3504355B2 JP30182894A JP30182894A JP3504355B2 JP 3504355 B2 JP3504355 B2 JP 3504355B2 JP 30182894 A JP30182894 A JP 30182894A JP 30182894 A JP30182894 A JP 30182894A JP 3504355 B2 JP3504355 B2 JP 3504355B2
Authority
JP
Japan
Prior art keywords
instruction
address
control
microinstruction
branch
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.)
Expired - Lifetime
Application number
JP30182894A
Other languages
English (en)
Other versions
JPH08161166A (ja
Inventor
正人 鈴木
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP30182894A priority Critical patent/JP3504355B2/ja
Priority to US08/562,069 priority patent/US5729727A/en
Priority to EP95308603A priority patent/EP0716376B1/en
Priority to DE69529510T priority patent/DE69529510T2/de
Publication of JPH08161166A publication Critical patent/JPH08161166A/ja
Application granted granted Critical
Publication of JP3504355B2 publication Critical patent/JP3504355B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置のCPUとし
て用いられ、命令読み出しステージ、命令解読ステー
ジ、命令実行ステージの少なくとも3段からなるパイプ
ライン制御方式を採用したプロセッサに関する。
【0002】
【従来の技術】近年の電子技術の発展により、マイクロ
プロセッサ等の情報処理装置が普及し、あらゆる分野で
用いられている。
【0003】従来のプロセッサは、命令の種類が豊富な
ことを特徴とするCISCプロセッサ(Complex Instructio
n Set Computer)と、命令の種類を限定して高速さを特
徴とするRISCプロセッサ(Reduced Instruction Set Co
mputer)とに大別できる。例えば、TRONやMC68040など
は前者であり、SPARCやMIPSなどは後者である。
【0004】どちらのタイプのプロセッサにおいても、
パイプライン構造をとることにより命令の見かけ上の実
行時間の短縮が図られている。パイプラインとは、命令
の処理ステージを少なくとも読出し、解読、実行のステ
ージに分け、複数の命令について異なるステージを並列
に実行する処理方法である。CISCプロセッサは、RISCプ
ロセッサと異なり可変長命令形式をとるものが多い。可
変長命令形式は、命令の種類によって命令の語長が異な
り、一般的に固定長命令形式に比べてプログラムの大き
さを小さくすることができる。
【0005】その反面、命令の配置が、命令読出しにお
けるワード(16ビット)境界あるいはダブルワード
(32ビット)境界に対して固定的ではなくなるため、
多くの命令が境界をまたいで配置されることになる。そ
のため、命令の先読みを行っていても解読すべき命令が
末尾まで読出されていない場合があり、その場合パイプ
ラインによる並列処理を一時的に停止する必要が生じ
る。
【0006】このパイプラインの一時停止をパイプライ
ンインタロック、またその原因になる命令が境界をまた
いで配置される状態を命令ミスアライメントと呼ぶ。
【0007】また、従来のプロセッサとしては、例え
ば、特開平5-197546号(発明の名称:「マイクロコンピ
ュータ及び除算回路」)公報に示されているものがあ
る。この従来のプロセッサは、公報27ページ88段落
に記載されるように、JSR(JumpSubRoutine:サブルー
チンコール/プロシージャコール)命令ではプログラム
カウンタPCの内容を退避した後に分岐の処理を行ってい
る。
【0008】この従来のプロセッサは、命令読出しステ
ージ、解読・アドレス計算ステージ、演算実行ステージ
の3段からなるパイプライン構造をとり、命令読出しス
テージで読出され命令を格納する4バイトの命令バッフ
ァと、命令の動作を細分化した処理単位を実現するマイ
クロ命令を記憶する制御記憶とを有する。
【0009】命令読出しステージでは、読出しアドレス
が偶数番地ならば1マシンサイクルで2バイトが、奇数
番地ならば1バイトが読出され、命令バッファに格納さ
れる。
【0010】解読・アドレス計算ステージでは、命令バ
ッファの底(先頭の命令)の命令に対応するマイクロ命
令が制御記憶から読出され、マイクロ命令が指示する制
御信号が出力される。解読・アドレス計算ステージで解
読される命令が複数のマイクロ命令からなる場合には、
1マシンサイクル毎に1つのマイクロ命令を指示する御
信号が出力される。
【0011】演算実行ステージでは、制御記憶から出力
された1処理単位の指示を1マシンサイクルで実行す
る。
【0012】図5は、上記従来のプロセッサの動作タイ
ミングを示す図である。同図は、パイプラインの各ステ
ージで処理する命令と、命令バッファの内容と、制御記
憶から出力される処理単位毎の出力内容とをマシンサイ
クルと呼ばれるタイミング毎に示している。図中に例示
しているプログラムは下記の通りである。
【0013】命令1: 100番地 ADD D0,D1 (D0レジスタの値とD1レジスタの値を加算して結果をD1
レジスタに格納する1バイトの命令で、1処理単位のマ
イクロ命令からなる。)
【0014】命令2: 101番地 JSR @(disp16,PC) (プログラムカウンタの値に16ビットの偏位を加えた番
地にあるサブルーチンに分岐する3バイトの命令で、3
処理単位のマイクロ命令からなる。分岐先は201番地と
する。)
【0015】命令3: 201番地 MOV @(disp8,A0),D0 (A0レジスタの値に8ビットの偏位を加えた番地にある
データをD0レジスタにロードする2バイトの命令で、1
処理単位のマイクロ命令からなる。)
【0016】上記のプログラム例では、3バイト長のJS
R命令(命令2)と、3バイト長のMOV命令(命令3)と
が奇数番地から配置されており、ミスアライメントにな
っている。
【0017】図9は、上記命令2(JSR @(disp16,PC))
の3つの処理単位が実行するオペレーションの内容を示
す説明図である。同図のようにJSR命令はスタックポイ
ンタ減算、戻り先ストア、分岐実行の処理単位からな
る。SPはスタックポインタ、PCはプログラムカウンタ、
disp16は16ビットのアドレス偏位を示す。それぞれの
処理単位のオペレーションは、図5ではタイミングt
4、t5、t6において実行される
【0018】従来のプロセッサの動作を同図を用いて説
明する。 (タイミングt1) 命令読出しステージで100番地から2バイトの命令コー
ドを読出す。
【0019】(タイミングt2) タイミングt1で読出された100番地と101番地の命令コ
ードを命令バッファに格納するとともに、命令バッファ
の底から100番地の命令1を取り出して解読・アドレス
計算ステージで解読する。命令1は1バイトなので命令
の末尾までが命令バッファに存在することになる。命令
読出しステージでは2だけ増分した読出しアドレスを計
算して102番地から2バイトの命令コードを読出す。
【0020】(タイミングt3) 解読・アドレス計算ステージから命令1に関する加算の
指示が出力され、演算実行ステージでこれを実行する。
命令1に関する処理単位は唯一で、この実行により命令
1の実行が完了する。前のタイミングで読出された102
番地と103番地の命令コードを命令バッファに格納する
とともに、命令バッファの底から101番地の命令2を取
り出して解読・アドレス計算ステージで解読および分岐
先のアドレス計算を行う。命令2は3バイトであるが命
令の末尾までが命令バッファに存在している。命令読出
しステージは命令バッファに2バイト以上の空きがない
ため命令読出しを行わない。
【0021】(タイミングt4) 解読・アドレス計算ステージから命令2に関する第1の
処理単位であるスタックポインタデクリメントの指示が
出力され、演算実行ステージでこれを実行する。命令2
は3つの処理単位から構成される。命令読出しステージ
では2だけ増分した読出しアドレスを計算して104番地
から2バイトの命令コードを読出す。
【0022】(タイミングt5) 解読・アドレス計算ステージから命令2に関する第2の
処理単位であるスタックへの戻り先番地のストアの指示
が出力され、演算実行ステージでこれを実行する。前の
タイミングで読出された104番地と105番地の命令コード
を命令バッファに格納する。命令読出しステージでは2
だけ増分した読出しアドレスを計算して106番地から2
バイトの命令コードを読出す。
【0023】(タイミングt6) 解読・アドレス計算ステージから命令2に関する第3の
処理単位である分岐の指示が出力され、演算実行ステー
ジでこれを実行する。この分岐の指示により命令バッフ
ァにある全ての命令をフラッシュするともに、命令読出
しステージでは解読・アドレス計算ステージで先に計算
された分岐先アドレスを受け取り、201番地から1バイ
トの命令コードを読出す。受け取ったアドレスが奇数番
地なので1バイトのみの読出しになる。命令2はこの実
行により完了する。
【0024】(タイミングt7) 前のタイミングで読出された201番地の命令コードを命
令バッファに格納するとともに、命令バッファの底から
201番地の命令3を取り出して解読・アドレス計算ステ
ージで解読しようとするが命令3は2バイトなので命令
の末尾までが命令バッファに存在しないため解読できな
い。そのため解読・アドレス計算ステージにおける動作
を停止させる(パイプラインインタロック)。命令読出
しステージでは前の読出しアドレスが奇数なので1だけ
増分した読出しアドレスを計算して202番地から2バイ
トの命令コードを読出す。
【0025】(タイミングt8) 前のタイミングで解読・アドレス計算ステージにおける
動作が停止されているため、このタイミングでは演算実
行ステージにおける動作を停止させる(パイプラインイ
ンタロック)。前のタイミングで読出された202番地と2
03番地の命令コードを命令バッファに格納するととも
に、命令バッファの底から201番地の命令3を取り出し
て解読・アドレス計算ステージで解読およびロードのア
ドレス計算を行う。命令3は2バイトなのでこのタイミ
ングで初めて命令の末尾までが命令バッファに存在する
ことになる。命令読出しステージは命令バッファに2バ
イト以上の空きがないため命令読出しを行わない。
【0026】(タイミングt9) 解読・アドレス計算ステージから命令3に関するロード
の指示が出力され、演算実行ステージでこれを実行す
る。命令3に関する処理単位は唯一で、この実行により
命令3の実行が完了する。命令読出しステージでは2だ
け増分した読出しアドレスを計算して204番地から2バ
イトの命令コードを読出す。
【0027】
【発明が解決しようとする課題】しかしながら上記従来
のプロセッサによれば、可変長命令形式おいて複数の処
理単位(マイクロ命令)からなる分岐命令がミスアライ
メントされている場合には、分岐するための処理単位が
最後のマシンサイクルで実行されるので、パイプライン
インタロックが発生し、全体の命令実行時間が伸張して
処理性能が劣化するという問題点を有している。
【0028】図5を用いてより具体的に説明すると、タ
イミングt7において命令バッファの底から命令3を取
り出して解読しようとするが2バイトの命令3の末尾の
1バイトが命令バッファに存在しないため解読できない
という状態が起こる。これは、2バイトの命令3が奇数
番地に配置されていることと、直前のタイミングt6に
おいて分岐先の命令読出しが行われていることとに起因
する。さらに、タイミングt4やt5では実行されずに
フラッシュされることが明確な命令の先読出しが行われ
ており、これらの命令読出しに伴い無駄な浪費電力が発
生しているという問題もある。
【0029】かかる課題に鑑み本発明は、分岐と少なく
とも1つの分岐でない処理単位とからなる命令を実行す
る場合に該命令の分岐先が命令ミスアライメントであっ
ても命令不在によるパイプラインインタロックが発生せ
ず、従って命令の実行時間が伸張せず処理性能が劣化し
ないプロセッサを提供することを目的とする。
【0030】
【課題を解決するための手段】上記の課題を解決するた
め本発明の請求項1記載のプロセッサは、命令の先読み
を行うプロセッサであって、先読みすべき命令のアドレ
スを保持するフェッチアドレス保持手段と、前記フェッ
チアドレス保持手段のアドレスを分岐先の命令のアドレ
スへと書き換えることを内容とする分岐の処理単位と、
少なくとも1つ以上の処理単位からなるその他の処理単
位とから構成される分岐命令の実行に関する制御処理に
対して、まず分岐の処理単位の実行を制御し、続いてそ
の他の処理単位の実行を制御する制御手段とを備え、前
記分岐先の命令の解読可能なタイミングまでに、前記分
岐先の命令がミスアライメントであるか否かにかかわら
ず、前記分岐先の命令を複数のサイクルにわたって先読
みすることを特徴とする。
【0031】請求項2記載のプロセッサは、請求項1記
載のプロセッサにおいて、前記制御処理は、サブルーチ
ンコール命令の実行制御を含み、前記制御手段は、前記
分岐の処理単位の制御において、サブルーチンコール命
令のオペランドに基づいて得られる分岐先アドレスをフ
ェッチアドレス保持手段に書き込み、その他の処理単位
において、戻り先アドレスを退避すべき領域のアドレス
計算および戻り先アドレスの退避を制御するように構成
されている。
【0032】請求項3記載のプロセッサは、請求項2記
載のプロセッサにおいて、前記制御処理は、割り込み処
理ルーチンへの移行制御を含み、前記制御手段は、前記
分岐の処理単位の制御において、所定の割込み処理ルー
チンの開始アドレスをフェッチアドレス保持手段に書き
込み、その他の処理単位において戻り先アドレスを退避
すべきの領域のアドレス計算および戻り先アドレスの退
避を制御するように構成されている。
【0033】請求項4記載のプロセッサは、請求項1な
いし3記載の何れかのプロセッサにおいて、前記制御処
理は、サブルーチンからの復帰を指示するリターン命令
と、割り込み処理ルーチンからの復帰を指示するリター
ン命令とを含み、前記制御手段は、前記分岐の処理単位
の制御において戻り先アドレスをフェッチアドレス保持
手段に書き込むように構成されている。
【0034】請求項5記載のプロセッサは、請求項3記
載のプロセッサにおいて、前記制御手段は、前記制御処
理の動作を実現する複数のマイクロ命令を記憶する制御
記憶部と、前記各処理単位に対応するマイクロ命令を制
御記憶から順次読み出して、マイクロ命令が指示する制
御信号をプロセッサ内部に発行するマイクロ命令発行部
とを備え、前記マイクロ命令発行部は、サブルーチンコ
ール命令に対しては、当該命令中に指定されたアドレス
をフェッチアドレス保持手段に格納することを指示する
マイクロ命令と、戻り先アドレスを退避すべき領域のア
ドレスの計算を指示するマイクロ命令と、戻り先アドレ
スを退避することを指示するマイクロ命令とをこの順序
で発行し、割り込み処理ルーチンへの移行制御に対して
は、所定の割り込み処理開始アドレスをフェッチアドレ
ス保持手段に格納することを指示するマイクロ命令と、
戻り先アドレスを退避すべき領域のアドレスの計算を指
示するマイクロ命令と、戻り先アドレスを退避すること
を指示するマイクロ命令とをこの順序で発行する。
【0035】 請求項6記載のプロセッサは、請求項3
記載のプロセッサにおいて、前記制御手段は、サブルー
チンコール命令をプリデコードし、当該命令の分岐先ア
ドレスの算出を行うアドレス計算部と、前記制御処理を
実現する複数のマイクロ命令を記憶する制御記憶部と、
前記各処理単位に対応するマイクロ命令を制御記憶から
順次読み出して、マイクロ命令をプロセッサ内部に発行
するマイクロ命令発行部とを備え、前記マイクロ命令発
行部は、サブルーチンコール命令に対して、前記アドレ
ス計算部で得られるアドレスを前記フェッチアドレス保
持手段に格納すると共に、メモリに格納すべきデータを
保持するストアバッファに戻り先アドレスを保持するこ
とを指示するマイクロ命令と、前記退避領域を指すスタ
ックポインタの更新、およびオペランドアドレスを保持
すべきオペランドアドレスバッファに更新されたスタッ
クポインタの内容を格納することを指示するマイクロ命
令と、ストアバッファの内容をオペランドアドレスバッ
ファが指す退避領域に格納することを指示するマイクロ
命令とをこの順序で発行し、割り込み処理ルーチンへの
移行制御に対しては、所定の割込み処理の開始アドレス
を前記フェッチアドレス保持手段に格納すると共にスト
アバッファに戻り先アドレスを保持することを指示する
マイクロ命令と、スタックポインタの更新、及びオペラ
ンドアドレスバッファに更新されたスタックポインタの
内容を格納することを指示するマイクロ命令と、ストア
バッファの内容をオペランドアドレスバッファが指す退
避領域に格納することを指示するマイクロ命令とをこの
順序で発行する。請求項 7 のプロセッサは、前記分岐命
令に対する解読ステージが複数のサイクルから構成され
ることを特徴とする。請求項8のプロセッサは、前記分
岐の処理単位とその他の処理単位とが同一のパイプライ
ンステージで実行されることを特徴とする。
【0036】
【作用】請求項1記載のプロセッサは命令の先読みを行
うプロセッサであって、先読みすべき命令のアドレスを
保持するフェッチアドレス保持手段と、フェッチアドレ
ス保持手段のアドレスを書き換えることを内容とする分
岐の処理単位と、その他の処理単位とを含む分岐命令の
実行に関する制御処理に対して、まず分岐の処理単位の
実行を制御し、続いてその他の処理単位の実行を制御す
る制御手段とを備える。これにより、分岐先が命令ミス
アライメントであっても命令不在によるパイプラインイ
ンタロックは発生しないようになる。
【0037】請求項2記載のプロセッサにおいて、請求
項1記載のプロセッサの前記制御処理は、サブルーチン
コール命令の実行制御を含み、前記制御手段は、前記分
岐の処理単位の制御において、サブルーチンコール命令
のオペランドに基づいて得られる分岐先アドレスをフェ
ッチアドレス保持手段に書き込み、その他の処理単位に
おいて、戻り先アドレスを退避すべき領域のアドレス計
算および戻り先アドレスの退避を制御する。
【0038】請求項3記載のプロセッサにおいて、請求
項2記載のプロセッサの前記制御処理は、割り込み処理
ルーチンへの移行制御を含み、前記制御手段は、前記分
岐の処理単位の制御において、所定の割込み処理ルーチ
ンの開始アドレスをフェッチアドレス保持手段に書き込
み、その他の処理単位において戻り先アドレスを退避す
べきの領域のアドレス計算および戻り先アドレスの退避
を制御する。
【0039】請求項4記載のプロセッサでは、請求項1
ないし3記載のプロセッサの前記制御処理は、サブルー
チンからの復帰を指示するリターン命令と、割り込み処
理ルーチンからの復帰を指示するリターン命令とを含
み、 前記制御手段は、前記分岐の処理単位の制御にお
いて戻り先アドレスをフェッチアドレス保持手段に書き
込む。
【0040】請求項5記載のプロセッサにおいて、請求
項3記載のプロセッサの前記制御手段は、前記制御処理
の動作を実現する複数のマイクロ命令を記憶する制御記
憶部と、前記各処理単位に対応するマイクロ命令を制御
記憶から順次読み出して、マイクロ命令が指示する制御
信号をプロセッサ内部に発行するマイクロ命令発行部と
を備え、前記マイクロ命令発行部は、サブルーチンコー
ル命令に対しては、当該命令中に指定されたアドレスを
フェッチアドレス保持手段に格納することを指示するマ
イクロ命令と、戻り先アドレスを退避すべき領域のアド
レスの計算を指示するマイクロ命令と、戻り先アドレス
を退避することを指示するマイクロ命令とをこの順序で
発行し、割り込み処理ルーチンへの移行制御に対して
は、所定の割り込み処理開始アドレスをフェッチアドレ
ス保持手段に格納することを指示するマイクロ命令と、
戻り先アドレスを退避すべき領域のアドレスの計算を指
示するマイクロ命令と、戻り先アドレスを退避すること
を指示するマイクロ命令とをこの順序で発行する。
【0041】請求項6記載のプロセッサにおいて、請求
項3記載のプロセッサの前記制御手段は、サブルーチン
コール命令をプリデコードし、当該命令の分岐先アドレ
スの算出を行うアドレス計算部と、前記制御処理を実現
する複数のマイクロ命令を記憶する制御記憶部と、前記
各処理単位に対応するマイクロ命令を制御記憶から順次
読み出して、マイクロ命令をプロセッサ内部に発行する
マイクロ命令発行部とを備え、前記マイクロ命令発行部
は、サブルーチンコール命令に対して、前記アドレス計
算部で得られるアドレスを前記フェッチアドレス保持手
段に格納すると共に、メモリに格納すべきデータを保持
するストアバッファに戻り先アドレスを保持することを
指示するマイクロ命令と、前記退避領域を指すスタック
ポインタの更新、およびオペランドアドレスを保持すべ
きオペランドアドレスバッファに更新されたスタックポ
インタの内容を格納することを指示するマイクロ命令
と、ストアバッファの内容をオペランドアドレスバッフ
ァが指す退避領域に格納することを指示するマイクロ命
令とをこの順序で発行し、割り込み処理ルーチンへの移
行制御に対しては、所定の割込み処理の開始アドレスを
前記フェッチアドレス保持手段に格納すると共にストア
バッファに戻り先アドレスを保持することを指示するマ
イクロ命令と、スタックポインタの更新、及びオペラン
ドアドレスバッファに更新されたスタックポインタの内
容を格納することを指示するマイクロ命令と、ストアバ
ッファの内容をオペランドアドレスバッファが指す退避
領域に格納することを指示するマイクロ命令とをこの順
序で発行する。
【0042】
【実施例】図1は本発明の実施例におけるプロセッサの
概略構成を示すブロック図である。同図に示すように、
プロセッサ10は、命令バッファ32と制御記憶33を
有する解読部30、レジスタ部40、演算実行部50、
命令読出し部60、バスインタフェース部70を備え、
命令読出し部60、解読部30、演算実行部50でのそ
れぞれ処理をパイプラインとして同時に実行する。
【0043】入出力バス711は、プロセッサ10と外
界との間でデータのやり取りを行う入出力バスであり、
プログラムやデータを格納する外部メモリ(図外)等に
接続される。バスインタフェース部70は、入出力バス
711の制御を行う。
【0044】命令読出し部60は、バスインタフェース
部70を介して外部メモリから命令を読出す。その際命
令読出し部60は、分岐命令実行などにより読出しアド
レスが不連続になる場合にのみ解読部30または演算実
行部50からアドレスを受け取り、読出しアドレスが連
続する場合には内部に持つインクリメント回路により読
出しアドレスを計算して命令を読み出す。読出す命令
は、読出しアドレスが偶数番地ならば1マシンサイクル
で2バイト、奇数番地ならば1バイトを読み出して、4
バイトの命令バッファ32に格納する。
【0045】解読部30は、命令読出し部60から受け
取った命令を解読して、命令の実行を制御する。命令が
メモリアクセスを伴う場合にはそのオペランドアドレス
の計算を、分岐を伴う場合にはその分岐先アドレスの計
算を演算実行部50に行わせる。解読部30は、内部に
制御記憶33を持ち、解読した命令が1つの処理単位か
らなる場合は1つの処理の指示を発行し、複数の処理単
位からなる場合は1マシンサイクルに1つの処理単位ず
つ順次処理の指示を発行する。レジスタブロック40
は、命令のオペランドで指定される複数のレジスタを有
する。
【0046】演算実行部50は、内部に算術論理演算を
行う演算器を持ち、1マシンサイクルで制御記憶33か
ら出力された1処理単位の指示を実行する。図2(a)
は、制御記憶33の構成を示す説明図である。制御記憶
33は、全ての機械語命令に対応する処理単位(マイク
ロ命令)を格納しており、同図(a)は、その一部を示
している。
【0047】211は、命令1(加算命令)が解読され
た場合に参照され発行されるマイクロ命令の内容を格納
する記憶領域で、加算の指示を表す。命令1では1マシ
ンサイクルで制御記憶領域211の内容のみが発行され
る。221〜223は、命令2(JSR命令)が解読され
た場合に参照され発行されるマイクロ命令を格納する制
御記憶領域で、それぞれ分岐、スタックポインタのデク
リメント、スタックへの戻り先番地のストアを実現する
処理単位を表す。命令2では3マシンサイクルかけて制
御記憶領域221〜223の内容が順次発行される。
【0048】231は、命令3(MOV命令)が解読され
た場合に参照され発行される処理の内容を格納する制御
記憶領域で、ロードの指示を表す。命令3では1マシン
サイクルで制御記憶領域231の内容のみが発行され
る。図3は、図1に示したプロセッサのさらに詳細な構
成を表すブロック図である。同図において、プロセッサ
10は、命令解読部30、レジスタ部40、演算実行部
50、命令読出し部60、バスインタフェース部70を
有し、バス(以下ABUSと略す)20、第1データバス
(B1BUSと略す)21、第2データバス(B2BUSと略す)
22、命令アドレスバス(NIADDRと略す)701、命令
バス(IBUSと略す)702、オペランドアドレスバス
(OADDRと略す)703、ストアデータバス(STBUSと略
す)704、ロードデータバス(LDBUSと略す)705
により図示するように接続されている。
【0049】命令解読部30は、先読みした命令の格納
および解読を行ないマイコン全体を制御するため、割込
み制御部31、命令バッファ(IBと略す)32、制御記
憶33、セレクタ34、命令レジスタ35、ステータス
レジスタ36、プリデコーダ37、マイクロ命令レジス
タ38とから構成されている。割込み制御部31は割込
み受付時のマイコンの動作シーケンスを制御する。命令
バッファ32は、命令の実行に先だって命令読出し部6
0によって先行的にメモリから読み出された命令を蓄え
る。本実施例では、4バイト分の命令を蓄える容量を持
つ。
【0050】セレクタ34は、命令バッファ32から入
力される命令と、命令バスから入力される命令との何れ
か一方を選択する。命令レジスタ35は、セレクタ34
から出力する命令を保持する。ステータスレジスタ36
は、命令の解読に必要な各種のステータスフラグを保持
する。
【0051】制御記憶33は、ステータスレジスタ36
の内容を参照して、命令レジスタ35の命令を解読す
る。本実施例では、プログラマブルロジックアレイ(PL
A)を用いてマイクロプログラムによる制御論理が実装
され、命令レジスタ35の命令を実現するマイクロ命令
を順に出力する。プリデコーダ37は、命令レジスタ3
5の内容とステータスレジスタ36の内容とを入力し、
主として1サイクルで動作するロード命令及び条件分岐
命令を実行するための制御信号を出力する。この動作
は、命令実行ステージに先立って命令解読ステージにお
いて行われる。特に、サブルーチンコール命令、割込み
処理要求命令等の分岐命令に対しては、命令中で指定さ
れた分岐先アドレスをPCB64およびIAB72に格納する
制御を行う。分岐先アドレスへのディスプレースメント
(偏位)で指定される場合には、演算実行部50に分岐
先アドレスの計算を実行させて、その計算結果をPCB6
4およびIAB72に格納する。
【0052】マイクロ命令レジスタ38は、制御記憶3
3の解読結果である制御指示を保持する。レジスタ部4
0は、データやアドレスを保持するため、データレジス
タ群41、アドレスレジスタ群42、セレクタ43を備
えて構成されている。データレジスタ群41は、主とし
てデータを保持する16ビット長の4本のレジスタDR3
〜DR0を有する。アドレスレジスタ群42は、主として
アドレスを保持する16ビット長の4本のレジスタAR3
〜AR0を有する。このうちAR3はスタックポインタとして
機能する。
【0053】セレクタ43は、ABUS20とLDBUS705
とから選択的にデータレジスタ群41及びアドレスレジ
スタ群42に出力する。演算実行部50は、アドレスの
計算やデータ演算するため、演算器51、プログラムス
テータスワード52、オペランドアドレスレジスタ5
3、セレクタ54、セレクタ55、テンポラリーレジス
タ56、セレクタ57、セレクタ58、シフタ59を備
えて構成されている。演算器51は、16ビットのデー
タ演算及びアドレス計算を行う。
【0054】プログラムステータスワード52は、演算
結果のフラグ等を保持する16ビットのレジスタであ
る。オペランドアドレスレジスタ53は、メモリをアク
セスするアドレスを格納する。セレクタ54、55は、
演算器51に入力すべきオペランドを選択する。テンポ
ラリーレジスタ56は、演算器51の出力を一時的に保
持する。セレクタ57は、テンポラリーレジスタ56、
オペランドアドレスレジスタ53の何れかを選択してオ
ペランドアドレスバッファ74に出力する。
【0055】セレクタ58は、ABUS20とシフタ59と
の何れかを選択する。シフタ59は、セレクタ58の出
力を受けて演算器51とともにシフト動作をする。命令
読出し部60は、命令の読み出し位置を制御するため、
第1プリフェッチカウンタ(PFCと略す)61、第2プ
リフェッチカウンタ(PFCPと略す)62、セレクタ6
3、プログラムカウンタバッファ(PCBと略す)64、
インクリメンタ(INCと略す)65、セレクタ66から
構成されている。
【0056】PCB64は、セレクタ66から出力される
命令の読み出しアドレスを保持する。INC65は、PCB6
4の内容を+1あるいは+2インクリメントして、命令
の先読みアドレスとしてPFC61、セレクタ66を介し
てIAB72に出力する。PFC61は、INC65によりイン
クリメントされたアドレスを保持する。PFCP62は、PF
C61の1つ前のアドレスを保持する。セレクタ63
は、PFC61とPFCP62とのいずれかを選択してABUS2
0及びB1BUS21に出力する。
【0057】セレクタ66は、連続アドレスの命令が読
み出される場合にはPFC61の出力を選択し、分岐する
場合には、テンポラリーレジスタ56又はオペランドア
ドレスレジスタ53からのアドレスを選択して出力す
る。バスインタフェース部70は、外部メモリ(図外)
から命令やデータを読み出す際のバスの接続を制御し、
インタフェース部71、命令アドレスバッファ72、命
令バッファ73、オペランドアドレスバッファ74、ス
トアバッファ75、ロードバッファ76、バススイッチ
77、RAM78、ROM79から構成されている。インタフ
ェース部71は、CPU6のバスと外部との接続を制御す
る。命令アドレスバッファ(IABと略す)72、命令バ
ッファ73、オペランドアドレスバッファ74、ストア
バッファ75、ロードバッファ76は、それぞれ命令ア
ドレス、命令、オペランドアドレス、ストアデータ、ロ
ードデータを保持するためのバッファである。
【0058】バススイッチ77は、バス706〜709
を接断する。RAM78、ROM79は、それぞれデータ、命
令を格納する。本実施例では外部メモリを前提とするの
で、RAM78、ROM79は無視してよい。
【0059】 図2(b)は、上記、プリデコーダ37、
制御記憶33、マイクロ命令レジスタ38による機械語
命令JSR @(disp16,PC)を実現する処理単位の詳細なオペ
レーションを示す説明図である。図2(a)にも示した
ように、JSR @(disp16,PC)命令は、分岐、スタックポイ
ンタ減算、戻り先ストアの3つの処理単位からなる。
岐は、プリデコーダ37による制御動作(PFCP又はPFC+
disp16+0又は1 → PCB,IAB)と、制御記憶33及びマイ
クロ命令レジスタ38による制御動作(PFCP又はPFC+0
又は1 → STB)とにより実現される。前者のプリデコー
ダ37の制御により分岐先アドレス(PFCP又はPFC+disp
16又は0/1)が計算され、計算結果がPCB64及びIAB7
2に書き込まれる。分岐先アドレスは、PFC61とPFCP
62のどちらかと16ビットディスプレースメントと0
または1とを加算することにより得られる。PFC61とP
FCP62との選択および0と1の選択は、命令バッファ
32の残量に応じて選択される。この計算結果がPCB6
4及びIAB72に書き込まれる結果、分岐先アドレスか
ら命令が順次フェッチされることになる。また、後者の
制御動作により、戻り先アドレスがストアバッファ75
に保持される。これは、戻り先のストアに対する前準備
であり、戻り先アドレスが保存される。この制御は、制
御記憶領域221のマイクロ命令が指定する制御信号が
マイクロ命令レジスタ38から発行されることにより実
現される。
【0060】 スタックポインタ減算の処理単位は、スタ
ックポインタの値をスタック(退避領域)の未使用領域
に変更する処理(AR3-4 → AR3,OAB)である。本実施例
ではアドレススレジスタAR3がスタックポインタである
ので、AR3が4減算される。同時に戻り先ストアの前準
備として減算結果がOAB74にも格納される。この制御
は、制御記憶領域222のスタックポインタ減算のマイ
クロ命令により実現される。 戻り先ストアの処理単位
は、スタックポインタが指すスタックの未使用領域に、
戻り先アドレスを退避させる処理である。この時点では
既に、減算されたスタックポインタの値がOAB74に、
戻り先アドレスがSTB75に格納されているので、STB7
5の内容をOAB74が指すメモリ領域に格納する制御が
行われる。この制御は、制御記憶領域223の戻り先ス
トアのマイクロ命令により実現される。
【0061】以上のように構成された本実施例のプロセ
ッサについて、以下その動作を説明する。従来技術との
違いを明確にするために、従来技術の説明で用いた同一
のプログラム例に用いて説明する。例示プログラムを以
下に示す。 命令1: 100番地 ADD D0,D1 (D0レジスタの値とD1レジスタの値を加算して結果をD1
レジスタに格納する1バイトの命令で、1処理単位のマ
イクロ命令からなる。)
【0062】命令2: 101番地 JSR @(disp16,PC) (プログラムカウンタの値に16ビットの偏位を加えた番
地にあるサブルーチンに分岐する3バイトの命令で、3
処理単位のマイクロ命令からなる。分岐先は201番地と
する。)
【0063】命令3: 201番地 MOV @(disp8,A0),D0 (A0レジスタの値に8ビットの偏位を加えた番地にある
データをD0レジスタにロードする2バイトの命令で、1
処理単位のマイクロ命令からなる。)
【0064】図7は、同実施例におけるプロセッサの動
作タイミング図を示すものである。同図は、命令読出し
部60、解読部30、演算実行部50で処理する命令と
命令バッファ32の内容と制御記憶33の出力内容とを
マシンサイクルと呼ばれるタイミング毎に示している。
時間が経過する順にタイミング毎に説明する。 (タイミングt1) 命令読出し部60が100番地から2バイトの命令コード
を読出す。この読出しアドレスは図示しない分岐その他
の理由によりこのタイミングで解読部30または演算実
行部50から受け取るものとする。また命令バッファ3
2も空であるとする。
【0065】(タイミングt2) 前のタイミングで読出された100番地と101番地の命令コ
ードを命令バッファ32に格納するとともに、命令バッ
ファ32の底から100番地の命令1を取り出して解読部
30で解読する。命令1は1バイトなので命令の末尾ま
でが命令バッファ32に存在することになる。命令読出
し部60では2だけ増分した読出しアドレスを計算して
102番地から2バイトの命令コードを読出す。
【0066】(タイミングt3) 解読部30の制御記憶領域211から命令1に関する加
算の指示が出力され、演算実行部50でこれを実行す
る。この実行により命令1の実行が完了する。前のタイ
ミングで読出された102番地と103番地の命令コードを命
令バッファ32に格納するとともに、命令バッファ32
の底から101番地の命令2を取り出して解読部30で解
読および分岐先のアドレス計算を行う。命令2は3バイ
トであるが命令の末尾までが命令バッファ32に存在し
ている。命令読出し部60は命令バッファ32に2バイ
ト以上の空きがないため命令読出しを行わない。
【0067】(タイミングt4) 解読部30の制御記憶領域221から命令2に関する第
1の処理単位である分岐の指示が出力され、図4に示し
たように演算実行部50でこれを実行する。この分岐の
指示により命令バッファ32にある全ての命令をフラッ
シュするともに、命令読出し部60では解読部30で前
のタイミングで計算された分岐先アドレスを受け取り、
201番地から1バイトの命令コードを読出す。受け取っ
たアドレスが奇数番地なので1バイトのみの読出しにな
る。
【0068】(タイミングt5) 解読部30の制御記憶領域222から命令2に関する第
2の処理単位であるスタックポインタデクリメントの指
示が出力され、図5に示したように演算実行部50でこ
れを実行する。前のタイミングで読出された201番地の
命令コードを命令バッファ32に格納する。命令読出し
部60では前の読出しアドレスが奇数なので1だけ増分
した読出しアドレスを計算して202番地から2バイトの
命令コードを読出す。
【0069】(タイミングt6) 解読部30の制御記憶領域223から命令2に関する第
3の処理単位であるスタックへの戻り先番地のストアの
指示が出力され、図6に示したように演算実行部50で
これを実行する。前のタイミングで読出された202番地
と203番地の命令コードを命令バッファ32に格納す
る。命令読出し部60は命令バッファ32に2バイト以
上の空きがないため命令読出しを行わない。命令2はこ
の実行により完了する。
【0070】(タイミングt7) 命令バッファ32の底から201番地の命令3を取り出し
て解読部30で解読およびロードのアドレス計算を行
う。命令3は2バイトであるがこのタイミングで既に命
令の末尾までが命令バッファ32に存在しており、パイ
プラインインタロックは発生しない。命令読出し部60
は命令バッファ32に2バイト以上の空きがないため命
令読出しを行わない。
【0071】(タイミングt8) 解読部30の制御記憶領域231から命令3に関するロ
ードの指示が出力され、演算実行部50でこれを実行す
る。この実行により命令3の実行が完了する。命令読出
し部60では2だけ増分した読出しアドレスを計算して
204番地から2バイトの命令コードを読出す。
【0072】以上のように本実施例によれば、サブルー
チンへの分岐命令を実行する場合、解読部30の制御記
憶33から他の指示に先行してまず分岐の指示が出力さ
れるため、演算実行部50におけるスタックポインタデ
クリメントやスタックへの戻り先番地のストアの実行と
並行に命令読出し部60において2回の分岐先の命令読
出しを行うことができ、分岐先の命令がミスアライメン
トであっても分岐先命令を解読する時点で命令バッファ
32に3バイトの分岐先の命令が格納されていることに
なり、命令バッファ32における命令不在によるパイプ
ラインインタロックを回避することができる。
【0073】なお本実施例では、サブルーチンへの分岐
命令の場合をあげているが、分岐の処理単位と少なくと
も1つの分岐でない処理単位とからなる命令であれば何
でも適応できる。例えば、割込み処理ルーチンへの分岐
処理においては、スタックポインタのデクリメントとス
タックへの戻り先番地およびステータスワードのストア
とに先行して分岐の指示を発行するように制御記憶33
を構成すればよいし、サブルーチンからのリターン命令
あるいは割込み処理ルーチンからのリターン命令におい
ては、スタックからの戻り先番地およびステータスワー
ドのロードとスタックポインタインクリメントとに先行
して分岐の指示を発行するように制御記憶33を構成す
ればよい。
【0074】また実施例では、命令バッファ32の容量
を4バイトとしたが、5バイトまたはそれ以上でもよ
い。その場合、サブルーチンへの分岐命令の分岐先命令
を解読する時点で命令バッファ32に少なくとも5バイ
トの分岐先命令が格納されていることになりより効果的
である。または命令バッファ32の容量を3バイトとし
てもよい。
【0075】さらに実施例では、命令読出し部60での
1マシンサイクルで読出される命令を最大2バイトとし
たが、これを4バイトまたはそれ以上としてもよい。1
マシンサイクルで読出される命令語長を大きくするほど
読出しアドレスの境界をまたぐ命令ミスアライメントの
確率は低下するが、語長をいくら大きくしても命令ミス
アライメントは皆無にはならない。
【0076】
【発明の効果】本発明の請求項1のプロセッサによれ
ば、分岐先命令が解読可能になるタイミングでは少なく
とも2回の命令読出しが行われているため、分岐先が命
令ミスアライメントであっても命令不在によるパイプラ
インインタロックは発生しないので、命令の実行時間が
伸張せず処理性能が劣化しないという効果がある。
【0077】請求項2のプロセッサによれば、特にサブ
ルーチンコール命令に対して請求項1と同じ効果があ
る。請求項3のプロセッサによれば、特に割り込み処理
ルーチンへの移行制御に対しても請求項2と同じ効果が
ある。
【0078】請求項4のプロセッサによれば、請求項1
ないし3何れかの効果に加えて、サブルーチンからの復
帰を指示するリターン命令と、割り込み処理ルーチンか
らの復帰を指示するリターン命令に対して、請求項1な
いし3何れかと同じ効果がある。
【0079】請求項5のプロセッサによれば、請求項3
の効果に加えて、マイクロプログラムよる制御によって
特にサブルーチンコール命令、割り込み処理ルーチンへ
の移行制御に対して命令の実行時間が伸張せず処理性能
が劣化しないという効果がある。
【0080】請求項6のプロセッサによれば、請求項3
の効果に加えて、マイクロプログラムよる制御とは独立
にアドレス計算の制御をすることよって特にサブルーチ
ンコール命令および割り込み処理ルーチンへの移行制御
に対して命令の実行時間が伸張せず処理性能が劣化しな
いという効果がある。
【図面の簡単な説明】
【図1】本発明の実施例におけるプロセッサの概略構成
を示すブロック図である。
【図2】(a)同実施例における制御記憶33の構成図
である。 (b)同実施例における制御記憶33のオペレーション
を示す図である。
【図3】同実施例におけるプロセッサの詳細な構成を示
すブロック図である。
【図4】同実施例におけるプロセッサの動作タイミング
図である。
【図5】従来技術におけるプロセッサの動作タイミング
図である。
【図6】従来技術における制御記憶の構成図である。
【符号の説明】
10 プロセッサ 11 入出力バス 12 バスインタフェース回路 13 命令読出し回路 14 解読・アドレス計算回路 15 演算実行回路 131 命令バッファ 141 制御記憶 211〜231 制御記憶領域

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】命令の先読みを行うプロセッサであって、 先読みすべき命令のアドレスを保持するフェッチアドレ
    ス保持手段と、前記 フェッチアドレス保持手段のアドレスを分岐先の命
    令のアドレスへと書き換えることを内容とする分岐の処
    理単位と、少なくとも1つ以上の処理単位からなるその
    他の処理単位とから構成される分岐命令の実行に関する
    制御処理に対して、まず分岐の処理単位の実行を制御
    し、続いてその他の処理単位の実行を制御する制御手段
    とを備え、 前記分岐先の命令の解読可能なタイミングまでに、前記
    分岐先の命令がミスアライメントであるか否かにかかわ
    らず、前記分岐先の命令を複数のサイクルにわたって先
    読みすることを特徴とするプロセッサ。
  2. 【請求項2】前記制御処理は、サブルーチンコール命令
    の実行制御を含み、前記制御手段は、前記分岐の処理単
    位の制御において、サブルーチンコール命令のオペラン
    ドに基づいて得られる分岐先アドレスをフェッチアドレ
    ス保持手段に書き込み、その他の処理単位において、戻
    り先アドレスを退避すべき領域のアドレス計算および戻
    り先アドレスの退避を制御することを特徴とする請求項
    1記載のプロセッサ。
  3. 【請求項3】前記制御処理は、割り込み処理ルーチンへ
    の移行制御を含み、前記制御手段は、前記分岐の処理単
    位の制御において、所定の割込み処理ルーチンの開始ア
    ドレスをフェッチアドレス保持手段に書き込み、その他
    の処理単位において戻り先アドレスを退避すべきの領域
    のアドレス計算および戻り先アドレスの退避を制御する
    ことを特徴とする請求項2記載のプロセッサ。
  4. 【請求項4】前記制御処理は、サブルーチンからの復帰
    を指示するリターン命令と、割り込み処理ルーチンから
    の復帰を指示するリターン命令とを含み、前記制御手段
    は、前記分岐の処理単位の制御において戻り先アドレス
    をフェッチアドレス保持手段に書き込むことを特徴とす
    る請求項1ないし3記載の何れかのプロセッサ。
  5. 【請求項5】前記制御手段は、前記制御処理の動作を実
    現する複数のマイクロ命令を記憶する制御記憶部と、前
    記各処理単位に対応するマイクロ命令を制御記憶から順
    次読み出して、マイクロ命令が指示する制御信号をプロ
    セッサ内部に発行するマイクロ命令発行部とを備え、前
    記マイクロ命令発行部は、サブルーチンコール命令に対
    しては、当該命令中に指定されたアドレスをフェッチア
    ドレス保持手段に格納することを指示するマイクロ命令
    と、戻り先アドレスを退避すべき領域のアドレスの計算
    を指示するマイクロ命令と、戻り先アドレスを退避する
    ことを指示するマイクロ命令とをこの順序で発行し、割
    り込み処理ルーチンへの移行制御に対しては、所定の割
    り込み処理開始アドレスをフェッチアドレス保持手段に
    格納することを指示するマイクロ命令と、戻り先アドレ
    スを退避すべき領域のアドレスの計算を指示するマイク
    ロ命令と、戻り先アドレスを退避することを指示するマ
    イクロ命令とをこの順序で発行することを特徴とする請
    求項3記載のプロセッサ。
  6. 【請求項6】前記制御手段は、サブルーチンコール命令
    をプリデコードし、当該命令の分岐先アドレスの算出を
    行うアドレス計算部と、前記制御処理を実現する複数の
    マイクロ命令を記憶する制御記憶部と、前記各処理単位
    に対応するマイクロ命令を制御記憶から順次読み出し
    て、マイクロ命令をプロセッサ内部に発行するマイクロ
    命令発行部とを備え、前記マイクロ命令発行部は、サブ
    ルーチンコール命令に対して、前記アドレス計算部で得
    られるアドレスを前記フェッチアドレス保持手段に格納
    すると共に、メモリに格納すべきデータを保持するスト
    アバッファに戻り先アドレスを保持することを指示する
    マイクロ命令と、前記退避領域を指すスタックポインタ
    の更新、およびオペランドアドレスを保持すべきオペラ
    ンドアドレスバッファに更新されたスタックポインタの
    内容を格納することを指示するマイクロ命令と、ストア
    バッファの内容をオペランドアドレスバッファが指す退
    避領域に格納することを指示するマイクロ命令とをこの
    順序で発行し、割り込み処理ルーチンへの移行制御に対
    しては、所定の割込み処理の開始アドレスを前記フェッ
    チアドレス保持手段に格納すると共にストアバッファに
    戻り先アドレスを保持することを指示するマイクロ命令
    と、スタックポインタの更新、及びオペランドアドレス
    バッファに更新されたスタックポインタの内容を格納す
    ることを指示するマイクロ命令と、ストアバッファの内
    容をオペランドアドレスバッファが指す退避領域に格納
    することを指示するマイクロ命令とをこの順序で発行す
    ることを特徴とする請求項3記載のプロセッサ。
  7. 【請求項7】前記分岐命令に対する解読ステージが複数
    のサイクルから構成されることを特徴とする請求項1記
    載のプロセッサ。
  8. 【請求項8】前記分岐の処理単位とその他の処理単位と
    が同一のパイプラインステージで実行されることを特徴
    とする請求項7記載のプロセッサ。
JP30182894A 1994-12-06 1994-12-06 プロセッサ Expired - Lifetime JP3504355B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP30182894A JP3504355B2 (ja) 1994-12-06 1994-12-06 プロセッサ
US08/562,069 US5729727A (en) 1994-12-06 1995-11-22 Pipelined processor which reduces branch instruction interlocks by compensating for misaligned branch instructions
EP95308603A EP0716376B1 (en) 1994-12-06 1995-11-29 A pipeline processor with reduced interlocks caused by branch instructions
DE69529510T DE69529510T2 (de) 1994-12-06 1995-11-29 Pipelineprozessor mit reduzierten Verschränkungen, die von Verzweigungsbefehlen veranlasst werden

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30182894A JP3504355B2 (ja) 1994-12-06 1994-12-06 プロセッサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003374914A Division JP2004094973A (ja) 2003-11-04 2003-11-04 プロセッサ

Publications (2)

Publication Number Publication Date
JPH08161166A JPH08161166A (ja) 1996-06-21
JP3504355B2 true JP3504355B2 (ja) 2004-03-08

Family

ID=17901655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30182894A Expired - Lifetime JP3504355B2 (ja) 1994-12-06 1994-12-06 プロセッサ

Country Status (4)

Country Link
US (1) US5729727A (ja)
EP (1) EP0716376B1 (ja)
JP (1) JP3504355B2 (ja)
DE (1) DE69529510T2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3526773B2 (ja) * 1999-02-26 2004-05-17 松下電器産業株式会社 マルチプロセッサ装置およびその制御方法
US6622240B1 (en) * 1999-06-18 2003-09-16 Intrinsity, Inc. Method and apparatus for pre-branch instruction
US7278014B2 (en) * 2004-12-02 2007-10-02 International Business Machines Corporation System and method for simulating hardware interrupts
JP2007041837A (ja) * 2005-08-03 2007-02-15 Nec Electronics Corp 命令プリフェッチ装置及び命令プリフェッチ方法
US7478228B2 (en) * 2006-08-31 2009-01-13 Qualcomm Incorporated Apparatus for generating return address predictions for implicit and explicit subroutine calls

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5592947A (en) * 1978-12-29 1980-07-14 Fujitsu Ltd Interruption control system for microprogram
JPS573142A (en) * 1980-06-04 1982-01-08 Matsushita Electric Ind Co Ltd Instruction prefetching system
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
US4654786A (en) * 1984-04-11 1987-03-31 Texas Instruments Incorporated Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
JPS63317828A (ja) * 1987-06-19 1988-12-26 Fujitsu Ltd マイクロコ−ド読み出し制御方式
KR970005453B1 (ko) * 1987-12-25 1997-04-16 가부시기가이샤 히다찌세이사꾸쇼 고속처리에 적합한 데이타 처리장치
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5099419A (en) * 1988-11-25 1992-03-24 Nec Corporation Pipeline microcomputer having branch instruction detector and bus controller for producing and carrying branch destination address prior to instruction execution
US5034880A (en) * 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
JP3555900B2 (ja) * 1993-08-26 2004-08-18 日本化薬株式会社 水面拡散型固形農薬製剤

Also Published As

Publication number Publication date
DE69529510T2 (de) 2003-06-26
EP0716376A2 (en) 1996-06-12
JPH08161166A (ja) 1996-06-21
EP0716376B1 (en) 2003-01-29
EP0716376A3 (en) 1998-04-01
DE69529510D1 (de) 2003-03-06
US5729727A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
KR100327776B1 (ko) 다중 명령세트를 사용하는 데이터 처리방법
KR100323191B1 (ko) 다중명령세트를이용한데이터프로세싱장치
US4454578A (en) Data processing unit with pipelined operands
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
EP0438961A2 (en) Hardware data string operation controller
US5682531A (en) Central processing unit
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
USRE32493E (en) Data processing unit with pipelined operands
JPH03218523A (ja) データプロセッサ
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
EP0992894A1 (en) Apparatus and method for loop execution
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US4541047A (en) Pipelined data processing system
US5924114A (en) Circular buffer with two different step sizes
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
US5966514A (en) Microprocessor for supporting reduction of program codes in size
KR19990046225A (ko) 확장 명령어를 가진 중앙처리장치
JP3504355B2 (ja) プロセッサ
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
US4218741A (en) Paging mechanism
JP2004094973A (ja) プロセッサ
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
KR19990046284A (ko) 확장명령어를갖는중앙처리장치

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031210

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

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 10

EXPY Cancellation because of completion of term