JPH07175652A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH07175652A
JPH07175652A JP31861993A JP31861993A JPH07175652A JP H07175652 A JPH07175652 A JP H07175652A JP 31861993 A JP31861993 A JP 31861993A JP 31861993 A JP31861993 A JP 31861993A JP H07175652 A JPH07175652 A JP H07175652A
Authority
JP
Japan
Prior art keywords
aligner
instruction
buffer
aligners
buffers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP31861993A
Other languages
English (en)
Inventor
Masanori Izumikawa
正則 泉川
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP31861993A priority Critical patent/JPH07175652A/ja
Publication of JPH07175652A publication Critical patent/JPH07175652A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】1クロックサイクルで2命令を同時に発行する
可変長命令セットをもつマイクロプロセッサの、命令列
のアラインを行なうハードウェアを簡単化する。 【構成】上位ハーフワードの主要部は、バッファ1a〜
1dが外部メモリ6と接続され、その出力はコントロー
ル・ロジック3にそれぞれ接続され、バッファ1aがア
ライナ2aおよび2bに、バッファ1bがアライナ2b
に、バッファ1cがアライナ2dおよび2fに、バッフ
ァ1dがアライナ2fおよびバッファ1fにそれぞれ接
続され、アライナ2fの出力端はバッファ1eに接続さ
れる。バッファ1eおよび1fの出力端はアライナ2a
および2dに、アライナ2aおよび2dの出力端はアラ
イナ2cおよび2eに、アライナ2bの出力端はアライ
ナ2cおよび2eに接続され、アライナ2cおよび2e
は上位16ビットおよび下位16ビットのデータとして
出力される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに係
わり、特に可変長の命令セットを有するマイクロプロセ
ッサの命令デコードに関する。
【0002】
【従来の技術】一般にコンピュータ・システムのCPU
時間は、1命令あたりの平均クロック数をCPI(cl
ock per instruction)とすると、 CPU時間=(命令数)×CPI×(クロックのサイク
ル時間) によって決る。
【0003】マイクロプロセッサにおけるRISC(r
educed instruction set co
mputer)アーキテクチァは命令数が少なくコンパ
イラとの整合性を考慮して簡単で効率の良さを指向した
アーキテクチァであリ、CPIを1に近づけることによ
ってCPU時間を短縮してきた。
【0004】CPIを1より小さくする方法は、例え
ば、複数の命令を1サイクル内に発行することである。
コンパイラのスケジューリング制御によって1クロック
サイクルに複数の独立した命令を発行するプロセッサは
スーパスカラとよばれているが、このスパースカラにお
いてはハードウェアが少数(2〜4)の互に独立した命
令の流れが依存関係にある場合、あるいは他の特定の基
準を満たさない場合には命令列の最初の命令のみが発行
される。
【0005】
【発明が解決しようとする課題】スーパスカラ・プロセ
ッサの研究開発は、32ビット固定命令長のアーキテク
チャに対して行なわれており、現在のところ可変長命令
のスーパスカラ・プロセッサは公表されていない。
【0006】可変長の命令セットで1クロックサイクル
に複数の命令を発行する場合の問題点は、命令列の2番
目以降の命令は前の命令をデコードしなければ命令の開
始アドレスが分らず、命令列のアラインがクリティカル
パスとなるという欠点があった。
【0007】本発明の目的は、上述の欠点に鑑みなされ
たものであり、1クロックサイクルで2命令を同時に発
行する可変長の命令セットを有するマイクロプロセッサ
において、命令列のアラインを行なうハードウェアを簡
単化することにある。
【0008】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、1クロックサイクルで2命令を同時に発行する
可変長の命令セットを有するマイクロプロセッサにおい
て、デコードする命令列の中の命令サイズが現在実行中
のクロックサイクルの前のクロックサイクルまでに分ら
ない場合に、前記命令列の最初の命令サイズを予測して
2番目の命令デコードを行なう手段と、前記予測がはず
れたときに前記2番目の命令デコード結果を無効にする
手段とを備えることを特徴とする。
【0009】
【実施例】次に、本発明の実施例について図面を参照し
ながら説明する。
【0010】図1(a)は本発明の一実施例を示す上位
ハーフワードのブロック図であり、図2(b)は同様に
下位ハーフワードのブロック図である。また、図3は可
変長の命令セットの一例を示す図である。
【0011】図1(a)を参照すると、本発明のマイク
ロプロセッサの上位ハーフワードの主要部は、バッファ
1a,1b,1c,1d,1eおよび1f、アライナ2
a,2b,2c,2dおおび2e、コントロール・ロジ
ック3を備え、バッファ1a〜1dは外部メモリ6とバ
スライン4を介して接続され、その出力はオペコード9
としてコントロール・ロジック3にそれぞれ接続されて
コントロール・ロジックからセレクト信号10がアライ
ナの選択制御信号(不図示)として、ストローブ信号1
1がバッファのクロックとしてそれぞれ分配される。
【0012】バッファ1aがアライナ2aおよび2b
に、バッファ1bがアライナ2bに、バッファ1cがア
ライナ2dおよび2fに、バッファ1dがアライナ2f
およびバッファ1fにそれぞれ接続され、アライナ2f
の出力端はバッファ1eに接続される。
【0013】バッファ1eの出力端はアライナ2aに、
バッファ1fの出力端はアライナ2dにそれぞれ接続さ
れる。
【0014】アライナ2aおよび2dの出力端はそれぞ
れアライナ2cおよび2eに、アライナ2bの出力端は
それぞれアライナ2cおよび2eにそれぞれ接続され、
アライナ2cは上位16ビットのデータとして、アライ
ナ2eは下位16ビットのデータとしてそれぞれインス
トラクションデコーダ5に接続されている。
【0015】また、下位ハーフワードの主要部を示す図
1(b)を参照すると、図1(a)の上位ハーフワード
と異なる部分は、バッファ1aおよび2bの出力端がそ
れぞれアライナ2bに、バッファ1cの出力端がアライ
ナ2a、2dおよび2fに、バッファ1dの出力端がア
ライナ2d、2fおよびバッファ1fにそれぞれ接続さ
れ、バッファ1fの出力端がアライナ2aに接続される
ことである。バッファ1eの出力端はこの場合無関係と
なる。それ以外の構成は図1(a)の構成と同様であり
同一構成要素には同一符号を付してここでの説明は省略
する。
【0016】次に、本実施例の動作を説明する。
【0017】本実施例で使用する命令セットの例を図3
を参照しながらあらかじめ説明すると、この命令セット
は、32(16〜32)ビットのワードと16ビット
(0〜15)のハーフワードの命令長とを有し、命令コ
ードは低い方のアドレスから順に並べられているものと
する。ただし、32ビットのワード命令では、上位ハー
フワードと下位ハーフワードが入れ替えられている。す
なわち、ビット0〜15に上位命令コードが、ビット1
6〜32に下位命令コードが配置され、命令列の最初の
ハーフワードを見れば命令長が決定できるものとする。
【0018】図1(a)および図1(b)を併せて参照
すると、本発明のマイクロプロセッサにおける命令バッ
ファおよびアライナを、理解を容易にするために上位ハ
ーフワードを図1(a)に、下位ハーフワードを図1
(b)に分けて示してある。
【0019】下位ハーフワードのアライン動作は、上位
ハーフワードのアライン動作から容易に類推できるの
で、上位ハーフワードのアライン動作について次に説明
する。
【0020】ここで、命令列の最初の命令を命令−1、
続く命令を命令−2と称するものとする。
【0021】まず、命令長が不明のときは、ハーフワー
ドであると静的に予測する場合の動作を説明する。命令
バッファとアライナの動作説明用のブロック図を示した
図4(a)および同図(b)、図5(a)および同図
(b)、図6(a)および同図(b)、図7(a)およ
び同図(b)を参照すると、バッファ1a〜1fのとり
得る状態としては7通りあることが分る。ここで、各バ
ッファ内で命令コードが有効である部分を網掛け模様で
塗り潰して表わしてある。また、キャッシュのミスヒッ
ト等で命令フェッチが出ないときは停止する。 (1)命令長を予測する場合(図3(e)) 図3(e)に示す状態のとき、命令−1をハーフワード
であると予測し、レジスタフェッチおよびリザベーショ
ンステーションへの登録などを行なう。
【0022】命令−1がワード長であった場合には命令
−2を無効として、それ以降の実行をキャンセルし、次
のクロックサイクルでの各バッファは図3(g)の状態
になる。
【0023】命令−1がハーフワードで予測が当ってい
た場合には、命令−2のサイズがハーフワードのとき図
4(a)の状態、すなわち、コントロール・ロジック3
から供給されるセレクト10に応答してバッファ1aの
内容がアライナ2aおよび2cにより選択され命令−1
の出力に、セレクト10に応答してバッファ1bの内容
がアライナ2bおよび2eにより選択され命令−2の出
力になる。
【0024】命令−2のサイズがワードのとき図4
(b)の状態に示すように、バッファ1aの内容が命令
−1の出力に、バッファ1bの内容が命令−2の出力に
なるとともに、バッファ1dの内容がアライナ2fによ
り選択されてバッファ1eに、バッファ1fにはバッフ
ァ1dから直接に、それぞれ命令コードを移動させる。 (2)命令長を予測しない場合(図3(g)) 図3(g)の場合、命令長は前のクロックサイクルで分
るので、この命令長に応じて命令−1がハーフワードの
ときは、図5(a)の状態、すなわち、コントロール・
ロジック3から供給されるストローブ11に応答してバ
ッファ1eの内容が命令−1の出力に、バッファ1fの
内容が命令−2の出力になるように命令コードを移動さ
せる。
【0025】命令−1がワードのときは、命令−2がハ
ーフワードであれば図5(b)の状態、すなわち、スト
ローブ11に応答してバッファ1aの内容が命令−2の
出力に、バッファ1eの内容が命令−1の出力になるよ
うに命令コードを移動させ、命令−2がワードであれば
図6(a)の状態、すなわち、ストローブ11に応答し
てバッファ1aの内容が命令−2の出力に、バッファ1
eの内容が命令−1の出力になるようにそれぞれ命令コ
ードを移動させる。 (3)分岐の場合(図3(b)および(c)) 分岐の結果、図3(b)および(c)のような状態にな
ったときは、このクロックサイクルでは命令の発行は行
なわれず、図6(b)の状態、すなわち、バッファ1c
の内容がアライナ2fに、バッファ1dの内容がバッフ
ァ1fにそれぞれ移され、図7(a)の状態のようにセ
レクト10に応答してアライナ2fにより選択されたバ
ッファ1eに格納されたデータが有効となるように、ス
トローブ11に応答して命令コードを移動する。
【0026】以上説明した動作の構成では、命令−1が
命令列上の最初の命令となり、依存関係のチェックなど
命令発行以降の処理は、従来のスーパスカラプロセッサ
の構成をそのまま利用できる。
【0027】第1の実施例のマイクロプロセッサによる
命令発行のピーク性能は、キャッシュミスヒット、分岐
および命令間の依存関係がなく、全く停止しない場合に
はバッファは図3の(d)、(e)、(f)および
(g)の状態をとり、命令長による状態遷移は図8に示
すようになる。
【0028】図8を参照すると、例えば、各状態名は図
3の(d)、(e)、(f)および(g)に対応し、遷
移条件の数字は1番目の数字が命令−1に、2番目の数
字が命令−2に対応する。すなわち、1のとき命令のサ
イズがワードを、0のときハーフワードであることを示
す。
【0029】状態(e)から命令サイズが0,0の遷移
は状態(g)となり命令コードの流れは図4(a)に、
状態(e)から命令サイズが0,1の遷移は状態(f)
となり命令コードの流れは図4(b)に、状態(g)か
ら命令サイズが0,0の遷移は状態(e)となり命令コ
ードの流れは図5(a)に、状態(g)から命令サイズ
が1,0の遷移は状態(d)となり命令コードの流れは
図5(b)に、状態(g)から命令サイズが1,1の遷
移はそのまま状態(g)となり命令コードの流れは図6
(a)に、状態(e)から命令サイズが1,0の遷移は
状態(f)となり、命令コードの流れは図7(b)にな
る。
【0030】遷移81および82は予測がはずれ1命令
しか発行できないことを示している。すなわち、全ての
事象は16通りあり、このうちの4通りの場合に1命令
しか実行できない。
【0031】命令長がランダムな場合は、平均すると4
クロックサイクルに1度の割り合いで1命令しか発行で
きないため、1サイクル2命令発行の理想的な場合に比
べて約1割の性能低下なる。
【0032】第1の実施例におけるアライナのディレイ
は、2入力マルチプレクサの2段分(命令−1がアライ
ナ2a,2bとアライナ2c、命令−2がアライナ2
b,2dとアライナ2e)であるから約1割の性能低下
でアライナのクリティカルパスを回避できる。
【0033】次に、本発明の第2の実施例を説明する。
【0034】命令実行時に、同じ命令長が続く傾向が強
いときには、1つ前の命令のサイズに応じて動的に予測
を行なう方が有効である。命令バッファが図3(e)の
状態であって、命令−1がワード長であると予測した場
合の命令コードの流れを図7(b)に示す。すなわち、
バッファ1aの内容が命令−1の出力となり、バッファ
1cの内容が命令−2の出力となる。
【0035】命令−2がハーフワード長であった場合の
キャンセルの仕方は、第1の実施例の(1)項の場合と
同様であるのでここでの説明は省略する。
【0036】
【発明の効果】以上説明したように本発明のマイクロプ
ロセッサは、デコードする命令列のなかの命令のサイズ
が、前のクロックサイクルまでに分らない場合に、その
命令列の最初の命令のサイズを予測して2番目の命令の
デコードを行なう手段と、予測がはずれたときに2番目
の命令のデコード結果を無効にする手段とを、バッファ
およびアライナの組合せにより、命令コードを上位およ
び下位で入れ替えることで実現できるようにした。した
がって最初の命令のサイズを予測して2番目の命令をデ
コードするときのクリティカルパスを低減することがで
きる。
【図面の簡単な説明】
【図1】(a)本発明の第1の実施例における上位ハー
フワードを示すブロック図である。 (b)本発明の第1の実施例における下位ハーフワード
を示すブロック図である。
【図2】可変長の命令セットの一例を示す図である。
【図3】(a)図1に示した命令バッファのとり得る状
態を示す第1の図である。 (b)図1に示した命令バッファのとり得る状態を示す
第2の図である。 (c)図1に示した命令バッファのとり得る状態を示す
第3の図である。 (d)図1に示した命令バッファのとり得る状態を示す
第4の図である。 (e)図1に示した命令バッファのとり得る状態を示す
第5の図である。 (f)図1に示した命令バッファのとり得る状態を示す
第6の図である。 (g)図1に示した命令バッファのとり得る状態を示す
第7の図である。
【図4】(a)命令バッファおよびアライナの動作説明
用の第1の状態図である。 (b)命令バッファおよびアライナの動作説明用の第2
の状態図である。
【図5】(a)命令バッファおよびアライナの動作説明
用の第3の状態図である。 (b)命令バッファおよびアライナの動作説明用の第4
の状態図である。
【図6】(a)命令バッファおよびアライナの動作説明
用の第5の状態図である。 (b)命令バッファおよびアライナの動作説明用の第6
の状態図である。
【図7】(a)命令バッファおよびアライナの動作説明
用の第7の状態図である。 (b)命令バッファおよびアライナの動作説明用の第8
の状態図である。
【図8】命令バッファの状態遷移図である。
【符号の説明】
1a〜1f バッファ 2a〜2e アライナ 3 コントロールロジック 4 バスライン 5 インストラクションデコーダ 6 メモリ 7 命令−1 8 命令−2 9 オペレーションコード 10 ストローブ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 1クロックサイクルで2命令を同時に発
    行する可変長の命令セットを有するマイクロプロセッサ
    において、デコードする命令列の中の命令サイズが現在
    実行中のクロックサイクルの前のクロックサイクルまで
    に分らない場合に、前記命令列の最初の命令サイズを予
    測して2番目の命令デコードを行なう第1の手段と、前
    記予測がはずれたときに前記2番目の命令デコード結果
    を無効にする第2の手段とを備えることを特徴とするマ
    イクロプロセッサ。
  2. 【請求項2】前記第1および第2の手段が、メモリから
    供給されるデータを一時格納する第1、第2、第3およ
    び第4のバッファと、前記第3および前記第4のバッフ
    ァから供給される前記データをそれぞれ選択的に出力す
    る第1のアライナと、前記第1のアライナの出力を一時
    的に格納する第5のバッファと、前記第4のバッファか
    ら供給される前記データを一時格納する第6のバッファ
    と、対応する前記各バッファから供給される前記データ
    をそれぞれ選択的に出力する第2、第3および第4のア
    ライナと、前記第2および前記第3のアライナからそれ
    ぞれ選択的に供給される前記データを選択的に第1の命
    令コードとして出力する第5のアライナと、前記第3お
    よび前記第4のアライナからそれぞれ選択的に供給され
    る前記データを選択的に第2の命令コードとして出力す
    る第6のアライナと、前記第1、前記第2、前記第3お
    よび前記第4のバッファからそれぞれ供給される前記デ
    ータに応答して所定の制御信号を出力するコントロール
    ・ロジックを備え、上位ハーフワードは、前記第1、前
    記第2、前記第3および前記第4のバッファの各々の入
    力端が外部メモリとバスラインを介してそれぞれ接続さ
    れ、各々の出力は前記コントロール・ロジックにそれぞ
    れ接続され、前記第1のバッファが前記第2および前記
    第3のアライナに、前記第2のバッファが前記第3のア
    ライナに、前記第3のバッファが前記第1および前記第
    4のアライナに、前記第4のバッファが前記第1のアラ
    イナおよび前記第6のバッファにそれぞれ接続され、前
    記第1のアライナの出力端は前記第5のバッファに接続
    され、前記第5のバッファの出力端は前記第2のアライ
    ナに、前記第6のバッファの出力端は前記第4のアライ
    ナにそれぞれ接続され、前記第2および前記第4のアラ
    イナの出力端はそれぞれ前記第5および前記第6のアラ
    イナに、前記第3のアライナの出力端は前記第5および
    前記第6のアライナにそれぞれ接続され、前記第5のア
    ライナは上位16ビットの前記第1の命令コードとし
    て、前記第6のアライナは下位16ビットの前記第2の
    命令コードとしてそれぞれインストラクションデコーダ
    に供給され、下位ハーフワードは、前記第1および前記
    第2のバッファの出力端がそれぞれ前記第3のアライナ
    に、前記第3のバッファの出力端が前記第1、前記第2
    および前記第4のアライナに、前記第4のバッファの出
    力端が前記第1および前記第4のアライナと前記第6の
    バッファとにそれぞれ接続され、前記第6のバッファの
    出力端が前記第2のアライナに接続された構成からなる
    ことを特徴とする請求項1記載のマイクロプロセッサ。
JP31861993A 1993-12-17 1993-12-17 マイクロプロセッサ Pending JPH07175652A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31861993A JPH07175652A (ja) 1993-12-17 1993-12-17 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31861993A JPH07175652A (ja) 1993-12-17 1993-12-17 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH07175652A true JPH07175652A (ja) 1995-07-14

Family

ID=18101162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31861993A Pending JPH07175652A (ja) 1993-12-17 1993-12-17 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH07175652A (ja)

Similar Documents

Publication Publication Date Title
US7809933B2 (en) System and method for optimizing branch logic for handling hard to predict indirect branches
US5826089A (en) Instruction translation unit configured to translate from a first instruction set to a second instruction set
US7418578B2 (en) Simultaneously assigning corresponding entry in multiple queues of multi-stage entries for storing condition attributes for validating simultaneously executed conditional execution instruction groups
KR100513358B1 (ko) Risc형명령세트및슈퍼스칼라마이크로프로세서
US5911057A (en) Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
US7299343B2 (en) System and method for cooperative execution of multiple branching instructions in a processor
KR100267098B1 (ko) 레지스터 화일 판독을 감소시키는 벡터 프로세서 디자인
US6832305B2 (en) Method and apparatus for executing coprocessor instructions
US7308320B2 (en) Processor core for using external extended arithmetic unit efficiently and processor incorporating the same
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
WO2002008893A1 (en) A microprocessor having an instruction format containing explicit timing information
US7228403B2 (en) Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
US20040064684A1 (en) System and method for selectively updating pointers used in conditionally executed load/store with update instructions
JPH07120278B2 (ja) データ処理装置
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US7707389B2 (en) Multi-ISA instruction fetch unit for a processor, and applications thereof
US7010677B2 (en) Data processor speeding up repeat processing by inhibiting remaining instructions after a break in a repeat block
US7519799B2 (en) Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof
JP2004038255A (ja) 命令制御方法及びプロセッサ
US6564316B1 (en) Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots
JPH07175652A (ja) マイクロプロセッサ
EP0877316A2 (en) System and method of processing instructions for a processor
US9952864B2 (en) System, apparatus, and method for supporting condition codes
US20020069351A1 (en) Memory data access structure and method suitable for use in a processor
US7711926B2 (en) Mapping system and method for instruction set processing

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990907