JP2000099329A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP2000099329A
JP2000099329A JP10263386A JP26338698A JP2000099329A JP 2000099329 A JP2000099329 A JP 2000099329A JP 10263386 A JP10263386 A JP 10263386A JP 26338698 A JP26338698 A JP 26338698A JP 2000099329 A JP2000099329 A JP 2000099329A
Authority
JP
Japan
Prior art keywords
instruction
processing
decoding
result
operation instruction
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
JP10263386A
Other languages
English (en)
Inventor
Yukihiro Tamura
征大 田村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP10263386A priority Critical patent/JP2000099329A/ja
Publication of JP2000099329A publication Critical patent/JP2000099329A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 コード効率を高めることができ、しかも高速
化を図れるプロセッサを提供する。 【解決手段】 ALU41 ,42 と、単数の操作指示を
含む第1の命令を入力したときに、前記単数の操作指示
をデコードし、当該デコード結果に基づいてALU41
を制御し、複数の操作指示を含み前記第1の命令と同じ
命令長を持つ第2の命令を入力したときに、前記複数の
操作指示をデコードし、当該デコード結果に基づいてA
LU41 ,42 を制御するデコーダ3とを有する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、プロセッサに関す
る。
【0002】
【従来の技術】近年、多くのプロセッサは、プログラム
に記述された各命令の実行過程を、各々1クロックサイ
クル内で処理される例えばフェッチステージ、デコード
ステージ、実行ステージ、メモリアクセスステージおよ
びライトバックステージなどの複数のステージに分割
し、異なる命令の異なるステージを並行して行うことで
プログラムの処理時間の短縮を図る命令パイプライン処
理を採用している。このような命令パイプライン処理を
採用したプロセッサでは、各ステージ、特にフェッチス
テージおよびデコードステージを各々1クロックサイク
ル内で行うために、命令長を固定にしている。
【0003】ところで、命令長の設計思想には、主に以
下に示す第1の設計思想と第2の設計思想とがある。第
1の設計思想は、命令長を長くして1命令で多くの処理
内容を指示することで、命令の実行ステップ数を少なく
して高速化を図るものである。また、第2の設計思想
は、命令長を短くすることで、命令中に含まれる不使用
の部分(冗長な部分)を少なくし、命令(コード)効率
を高め、小規模化および低価格化を図るものである。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た第1の設計思想は、高速化という点では優れている
が、命令中に冗長な部分が多くなり、コード効率が悪い
という問題がある。このような問題は、メモリサイズに
厳しい制限があるマイクロプロセッサなどでは、特に深
刻である。また、上述した第2の設計思想は、コード効
率を高めるという点では優れているが、1命令で指示で
きる処理内容は単純なものに制限され、命令の実行ステ
ップ数が多くなり、高速化が困難であるという問題があ
る。
【0005】ところで、制御構造を持つプログラムの場
合、所定の条件を満たしたときのみ実行される条件付き
の処理は、通常、条件分岐命令を用いて指示される。し
かしながら、条件分岐命令は、単なる算術演算命令や論
理演算命令に比べると、分岐条件を満たすか否かの判断
を行う条件評価処理と、その条件評価の結果に基づいて
必要に応じて行われる分岐(ジャンプ)処理とを伴い、
処理時間を長期化させる大きな要因となる。従って、条
件分岐命令をいかに効率よく処理を行うかが、プロセッ
サの性能を高める上で重要である。
【0006】本発明は上述した従来技術の問題点に鑑み
てなされ、命令パイプライン処理を採用したプロセッサ
であって、コード効率を高めることができ、しかも高速
化を図れるプロセッサを提供することを目的とする。ま
た、本発明は、条件分岐命令を効率的に処理できるプロ
セッサを提供することを目的とする。
【0007】
【課題を解決するための手段】上述した従来技術の問題
点を解決し、上述した目的を達成するために、本発明の
第1の観点のプロセッサは、複数の処理手段と、単数の
操作指示を含む第1の命令を入力したときに、前記単数
の操作指示をデコードし、当該デコード結果に基づいて
単数の前記処理手段を制御し、複数の操作指示を含み前
記第1の命令と同じ命令長を持つ第2の命令を入力した
ときに、前記複数の操作指示をデコードし、当該デコー
ド結果に基づいて前記複数の処理手段を制御するデコー
ド手段とを有する。
【0008】本発明の第1の観点のプロセッサでは、第
1の命令がデコード手段に入力されると、当該第1の命
令に含まれる単数の操作指示がデコードされ、当該デコ
ード結果に基づいて単数の前記処理手段が制御される。
また、第2の命令がデコード手段に入力されると、当該
第2の命令に含まれる複数の操作指示がデコードされ、
当該デコード結果に基づいて複数の前記処理手段が制御
される。すなわち、同一の命令長の第1の命令および第
2の命令を選択して用いることで、相互に異なる命令長
を持つ操作指示のデコード結果に基づいて命令実行手段
を制御できる。このとき、複雑な操作指示を第1の命令
に含め、複数の簡単な操作指示を第2の命令に含めるこ
とで、コード効率を高められると共に、処理の高速化を
図ることができる。
【0009】また、本発明の第1の観点のプロセッサ
は、特定的には、前記第1の命令および前記第2の命令
を記憶する命令記憶手段と、前記処理手段の処理結果を
必要に応じて記憶するデータ記憶手段とをさらに有し、
前記第1の命令および前記第2の命令の各々の実行を、
前記命令記憶手段から前記命令を読み出して前記デコー
ド手段に出力するフェッチステージと、前記デコード手
段で前記デコードを行うデコードステージと、前記処理
手段で処理を行う実行ステージと、前記データ記憶手段
への前記処理結果の書き込みを行うライトバックステー
ジとに分割し、異なる前記命令の異なる前記ステージを
並行して処理して命令パイプライン処理を行う。
【0010】すなわち、命令パイプライン処理を行うた
めに、固定命令長を採用した場合でも、コード効率の向
上および処理の高速化を図れる。
【0011】本発明の第1の観点のプロセッサでは、前
記第2の命令に、条件付き実行操作指示と、条件評価操
作指示とを含めることで、デコード手段によるデコード
および処理手段における処理を、条件付き実行操作指示
と条件評価操作指示とで並行して行うことができ、条件
分岐命令などを短時間で処理できる。また、デコード手
段において、前記条件評価操作指示のデコード結果に基
づいた制御による前記処理手段の処理結果に基づいて、
前記条件付き実行操作指示のデコード結果に基づいた制
御による前記処理手段の処理結果の有効性を判断するこ
とで、正しい処理を確実に行うことができる。
【0012】また、本発明の第1の観点のプロセッサ
は、好ましくは、データ記憶手段をさらに有し、前記デ
コード手段は、前記条件付き実行操作指示のデコード結
果に基づいた制御による前記処理手段の処理結果が有効
であると判断した場合には、当該処理結果を前記データ
記憶手段に記憶し、前記条件付き実行操作指示のデコー
ド結果に基づいた制御による前記処理手段の処理結果が
無効であると判断した場合には、当該処理結果を前記デ
ータ記憶手段に記憶しない。
【0013】また、本発明の第2の観点のプロセッサ
は、第1の処理手段と、第2の処理手段と、第1の操作
指示を示す第1の命令フィールドと、前記第1の操作指
示が有効であるための条件を評価する条件評価操作指示
および当該条件評価操作指示以外の第2の操作指示のう
ち一方を示す第2の命令フィールドとを有する命令をデ
コードし、前記第2の命令フィールドが前記条件評価操
作指示を示している場合に、前記条件評価操作指示のデ
コード結果に基づいた制御による前記第2の処理手段の
処理結果に基づいて、前記第1の操作指示のデコード結
果に基づいた制御による前記第1の処理手段の処理結果
の有効性を判断するデコード手段とを有する。
【0014】本発明の第2の観点のプロセッサでは、命
令の第2の命令フィールドが、前記第1の操作指示が有
効であるための条件を評価する条件評価操作指示および
第2の操作指示のうち一方を示す。すなわち、命令内
に、条件評価専用のフィールドを設けるのではなく、第
2の命令フィールドを、条件評価操作指示と第2の操作
指示とで兼用して用いる。従って、本発明の第2の観点
のプロセッサは、条件評価専用のフィールドを全ての命
令に固定して設けた場合に比べて、コード効率を高める
ことができ、メモリサイズに厳しい制限があるマイクロ
プロセッサなどに特に有効である。
【0015】また、本発明の第2の観点のプロセッサ
は、好ましくは、前記命令を記憶する命令記憶手段と、
前記第1の処理手段および前記第2の処理手段の処理結
果を必要に応じて記憶するデータ記憶手段とをさらに有
し、前記第1の命令および前記第2の命令の各々の実行
を、前記命令記憶手段から前記命令を読み出して前記デ
コード手段に出力するフェッチステージと、前記デコー
ド手段で前記デコードを行うデコードステージと、前記
処理手段で処理を行う実行ステージと、前記データ記憶
手段への前記処理結果の書き込みを行うライトバックス
テージとに分割し、異なる前記命令の異なる前記ステー
ジを並行して処理して命令パイプライン処理を行う。
【0016】また、本発明の第2の観点のプロセッサ
は、好ましくは、前記デコード手段は、前記第2の命令
フィールドが前記第2の操作指示を示している場合に、
前記第1の操作指示のデコード結果に基づいた制御によ
る前記第1の処理手段の処理結果と、前記第2の操作指
示のデコード結果に基づいた制御による前記第2の処理
手段の処理結果との双方を有効なものとして扱う。
【0017】
【発明の実施の形態】以下、本発明の実施形態に係わる
プロセッサについて説明する。図1は、本実施形態のプ
ロセッサ1の主要部の構成図である。図1に示すよう
に、プロセッサ1は、例えば、命令記憶手段としての命
令キャッシュ2、デコード手段としてのデコーダ3、処
理手段としてのALU(Arithmetic Logic Unit: 論理演
算ユニット)41 ,42 、データ記憶手段としてのレジ
スタ群5、レジスタ制御回路6、プログラムカウンタ
(PC)7、カウントアップ回路8、セレクタ9、パイ
プラインレジスタ101 〜106 およびデータキャッシ
ュ11を有する。プロセッサ1では、各命令の実行過程
が、例えば、命令キャッシュ2から命令を読み出すフェ
ッチステージと、デコーダ3でデコード処理を行うデコ
ードステージと、ALU41 ,42 で処理を行う実行ス
テージと、データキャッシュ11にアクセスを行うメモ
リアクセスステージと、レジスタ群5のレジスタにデー
タ書き込みを行うライトバックステージとの5つのステ
ージに分割され、異なる命令の異なるステージが並行し
て処理される。すなわち、5段命令パイプライン処理が
行われる。
【0018】〔命令キャッシュ2〕命令キャッシュ2
は、プログラムカウンタ7のカウント値S7が示すアド
レスに記憶された命令を読み出して(フェッチして)、
デコーダ3に出力する。なお、命令キャッシュ2からの
命令の読み出しは、前述した命令パイプライン処理のフ
ェッチステージで行われる。
【0019】〔プログラムカウンタ7〕プログラムカウ
ンタ7は、セレクタ9で選択されたカウント値S9を設
定し、当該設定したカウント値をカウント値S7として
命令キャッシュ2に出力する。
【0020】〔カウントアップ回路8〕カウントアップ
回路8は、プログラムカウンタ7からのカウント値S7
を、例えば「1」だけ増加させたカウント値S8をセレ
クタ9に出力する。
【0021】〔セレクタ9〕セレクタ9は、デコーダ3
からの選択信号S3dに基づいて、ALU41 が出力し
たデータS41 およびカウントアップ回路8からのカウ
ント値S8のうち一方を選択して、カウント値S9とし
てプログラムカウンタ7に出力する。
【0022】〔レジスタ制御回路6〕レジスタ制御回路
6は、デコーダ3からの制御信号S3cに基づいて、レ
ジスタ群5のレジスタの読み出しおよび書き込みを制御
する制御信号S6を生成し、当該生成した制御信号S6
をレジスタ群5に出力する。
【0023】〔レジスタ群5〕レジスタ群5は、複数の
レジスタからなり、レジスタ制御回路6からの制御信号
S6に基づいて、特定されたレジスタの読み出しおよび
書き込みを行う。なお、レジスタ群5のレジスタへの書
き込みは、前述したライトバックステージで行われる。
【0024】〔パイプラインレジスタ101 〜108
パイプラインレジスタ101 ,102 は、必要に応じ
て、レジスタ群5のレジスタから読み出されたデータを
パイプライン制御用のクロック信号に基づいてラッチし
てALU41 に出力する。パイプラインレジスタ1
3 ,104 は、必要に応じて、レジスタ群5のレジス
タから読み出されたデータをパイプライン制御用のクロ
ック信号に基づいてラッチしてALU42 に出力する。
パイプラインレジスタ105 ,106 は、必要に応じ
て、それぞれALU41,42 から出力されたデータS
1 ,S42 をパイプライン制御用のクロック信号に基
づいてラッチして、データキャッシュ11あるいはパイ
プラインレジスタ107 ,108 に出力する。パイプラ
インレジスタ107 ,108 は、パイプラインレジスタ
105 ,106 から入力したデータS41 ,S42 ある
いはデータキャッシュ11から読み出されたデータをパ
イプライン制御用のクロック信号に基づいてラッチし
て、レジスタ群5に出力する。
【0025】〔ALU41 ,42 〕ALU41 は、デコ
ーダ3からの制御信号S3aに基づいて、パイプライン
レジスタ101 からのデータと必要に応じてパイプライ
ンレジスタ102 からのデータとを用いて処理を行い、
その処理結果をデータS41 としてパイプラインレジス
タ105 に出力する。ALU42 は、デコーダ3からの
制御信号S3aに基づいて、パイプラインレジスタ10
3 からのデータと必要に応じてパイプラインレジスタ1
4 からのデータとを用いて処理を行い、その処理結果
をデータS42 としてパイプラインレジスタ106 に出
力する。なお、ALU4における処理は、前述した命令
パイプライン処理の実行ステージで行われる。
【0026】〔デコーダ3〕デコーダ3は、命令キャッ
シュ2から命令を入力すると、当該入力した命令が図2
(A)〜(C)に示すロング命令L、ダブル命令Dおよ
びコンディショナル命令Cのいずれであるかを識別し、
当該識別結果に基づいて、後述するデコード処理を行
い、ALU41 ,42 の制御信号S41 ,S42 を生成
する。ここで、図2(A)〜(C)に示すように、ロン
グ命令L、ダブル命令Dおよびコンディショナル命令C
のいずれも命令長32ビットの命令である。なお、デコ
ーダ3におけるデコード処理は、前述した命令パイプラ
イン処理におけるデコードステージで行われる。
【0027】以下、ロング命令L、ダブル命令Dおよび
コンディショナル命令Cのフォーマットについて説明す
る。図2(A)に示すように、ロング命令Lは、MSB
(Most Significant Bit)に割り当てられた命令識別ビッ
ト20と、それに続く31ビットの命令フィールド21
とで構成される。ロング命令Lの命令識別ビット20に
は論理値「1」が設定されている。また、命令フィール
ド21は、ALU41 の操作指示が設定されている。命
令フィールド21には、例えば、当該操作指示内で直接
記述されているデータ(イミディエイトデータ)を扱う
演算指示や、絶対アドレスを指定する分岐指示など比較
的長い命令長を要する複雑な処理内容を示す指示が設定
される。例えば、イミディエイトデータを扱う演算指示
が設定されている場合には、図1において、当該イミデ
ィエイトデータが制御信号S3aと共にALU41 に供
給される。また、分岐指示が設定されている場合には、
例えば、絶対アドレスを示すALU41 から出力された
データS41 が、選択信号S3dに基づいて、セレクタ
9で選択されてプログラムカウンタ7に設定される。
【0028】また、図2(B)に示すように、ダブル命
令Dは、MSBに割り当てられた命令識別ビット20
と、それに続く15ビットの第1の命令フィールド22
と、それに続く1ビットの命令識別ビット23と、それ
に続く15ビットの第2の命令フィールド24とで構成
される。ダブル命令Dの命令識別ビット20には論理値
「0」が設定されている。第1の命令フィールド22に
は、ALU41 の操作指示が設定されている。命令識別
ビット23には、論理値「0」が設定されている。第2
の命令フィールド24には、ALU42 の操作指示が設
定されている。
【0029】第1の命令フィールド22および第2の命
令フィールド24には、例えば、算術演算指示、論理演
算指示、ロード命令およびストア命令などの比較的短い
命令長で足りる単純な処理内容を示す指示が設定され
る。なお、同一のダブル命令D内で、第1の命令フィー
ルド22および第2の命令フィールド24に設定される
操作指示相互間には依存性がないことが、正しい処理を
行う上で必要とされる。プロセッサ1は、例えば、当該
依存性を保証する機能は備えておらず、ユーザによるプ
ログラムの作成時あるいはコンパイラ時にサポート(保
証)される必要がある。これは、プロセッサ1の構成を
簡単化するためである。但し、スーパースカラ構造のプ
ロセッサのように、当該依存性がないことを保証する機
能をプロセッサ1に備えることも可能である。
【0030】また、図2(C)に示すように、コンディ
ショナル命令Cは、MSBに割り当てられた命令識別ビ
ット20と、それに続く15ビットの第1の命令フィー
ルド25と、それに続く1ビットの命令識別ビット23
と、それに続く15ビットの第2の命令フィールド26
とで構成される。コンディショナル命令Cの命令識別ビ
ット20には論理値「1」が設定されている。第1の命
令フィールド25には、ALU41 の条件付き実行操作
指示が設定されている。命令識別ビット23には、論理
値「1」が設定されている。第2の命令フィールド26
には、ALU42 の条件評価操作指示が設定されてい
る。後述するように、ALU42 における条件評価操作
指示に応じた処理結果に基づいて、ALU41 における
条件付き実行操作指示に応じた処理結果の有効性が判断
される。
【0031】コンディショナル命令Cは、条件分岐命令
として用いられる。また、第2の命令フィールド26に
設定される条件評価操作指示としては、例えば、レジス
タ群5内の特定のレジスタ相互間でのデータの比較指示
や、ビット操作指示などがある。
【0032】また、デコーダ3は、命令のデコード結果
に基づいて生成した選択信号3dをセレクタ9に出力す
る。また、デコーダ3は、命令のデコード結果に基づい
て、レジスタの書き込みおよび読み出しを制御するため
の制御信号S3cを生成し、制御信号S3cをレジスタ
制御回路6に出力する。
【0033】図3は、デコーダ3における命令の種類に
応じた処理のフローチャートである。 ステップS1:デコーダ3は、図1に示す命令キャッシ
ュ2から命令を入力したか否かを判断し、命令を入力し
たと判断した場合には、ステップS2の処理を実行し、
そうでない場合にはステップS1の処理を繰り返す。
【0034】ステップS2:デコーダ3は、命令キャッ
シュ2から入力した命令の図2に示す命令識別ビット2
0の論理値を識別し、論理値「0」である場合にはステ
ップS3の処理を実行し、論理値「1」である場合に
は、当該命令が図2(A)に示すロング命令Lであると
判断してステップS8の処理を実行する。
【0035】ステップS3:デコーダ3は、命令キャッ
シュ2から入力した命令の図2に示す命令識別ビット2
3の論理値を識別し、論理値「0」である場合には、当
該命令が図2(B)に示すダブル命令Dであると判断し
てステップS9の処理を実行し、論理値「1」である場
合には、当該命令が図2(C)に示すコンディショナル
命令Cであると判断してステップS4の処理を実行す
る。
【0036】ステップS4:デコーダ3において、命令
キャッシュ2から入力した命令がコンディショナル命令
Cであると判断された場合に実行される。デコーダ3
は、図2(C)に示すコンディショナル命令Cの第1の
命令フィールド25に設定された条件付き実行操作指示
をデコードし、図4に示すように、当該デコード結果に
応じて生成した制御信号S3aをALU41 に出力す
る。これにより、ALU41 において、制御信号S3a
に基づいて条件付き実行指示に応じた処理が行われる。
また、デコーダ3は、図2(C)に示すコンディショナ
ル命令Cの第2の命令フィールド26に設定された条件
評価操作指示をデコードし、図4に示すように、当該デ
コード結果に応じて生成した制御信号S3bをALU4
2 に出力する。これにより、ALU42 において、制御
信号S3bに基づいて条件評価操作指示に応じた処理が
行われる。そして、ALU42 から出力されたデータS
2 が、デコーダ3に出力される。
【0037】ステップS5:デコーダ3は、制御信号S
3bに基づいたALU42 における処理結果を示すデー
タS42 を参照して、制御信号S3aに基づいたALU
1における処理結果を示すデータS41 の有効性を判
断し、有効であると判断した場合にはステップS6の処
理を実行し、無効であると判断した場合にはステップS
7の処理を実行する。
【0038】ステップS6:デコーダ3は、ALU41
から出力されたデータS41 をパイプラインレジスタ1
5 でラッチしてからレジスタ群5内の特定のレジスタ
に書き込むための制御信号S3cを生成する。
【0039】ステップS7:デコーダ3は、ALU41
から出力されたデータS41 を廃棄するように処理を行
う。
【0040】ステップS8:デコーダ3において、命令
キャッシュ2から入力した命令がロング命令Lであると
判断された場合に実行される。デコーダ3は、図2
(A)に示すロング命令Lの命令フィールド21に設定
された操作指示をデコードし、図5に示すように、当該
デコード結果に応じて生成した制御信号S3aをALU
1 に出力する。これにより、ALU41 において、制
御信号S3aに基づいて処理が行われる。
【0041】ステップS9:デコーダ3において、命令
キャッシュ2から入力した命令がダブル命令Dであると
判断された場合に実行される。デコーダ3は、図2
(B)に示すダブル命令Dの第1の命令フィールド22
に設定された操作指示をデコードし、図6に示すよう
に、当該デコード結果に応じて生成した制御信号S3a
をALU41 に出力する。これにより、ALU41 にお
いて、制御信号S3aに基づいて処理が行われる。ま
た、デコーダ3は、図2(B)に示すダブル命令Dの第
2の命令フィールド24に設定された条件評価操作指示
をデコードし、図6に示すように、当該デコード結果に
応じて生成した制御信号S3bをALU42 に出力す
る。これにより、ALU42 において、制御信号S3b
に基づいて処理が行われる。
【0042】〔データキャッシュ11〕データキャッシ
ュ11は、記憶領域を備え、デコーダ3からの図示しな
い制御信号に基づいて、必要に応じて、パイプラインレ
ジスタ105 ,106 から入力したデータS41 ,S4
2 の記憶領域への書き込みや、記憶領域から読み出した
データのパイプラインレジスタ107 ,108 への出力
を行う。データキャッシュ11の記憶領域へのアクセス
は、前述した命令パイプライン処理のメモリアクセスス
テージで行われる。
【0043】以下、図1に示すプロセッサ1の動作例を
説明する。ここでは、図1に示す命令キャッシュ2に図
7に示すプログラム30が記憶されている場合を例に説
明する。先ず、プログラム30について説明する。図7
に示すように、プログラム30には、命令「mov r
4,r5/ifr6 GE r5」、命令「mov r
4,r6/if r6 LT r5」および命令「ad
d r4,r3/sub r3,0x1」が順に記述さ
れている。命令「mov r4,r5/if r6 G
E r5」は、図2(C)に示すコンディショナル命令
Cに分類され、第1の命令フィールド25に条件付き実
行操作指示「mov r4,r5」が設定され、第2の
命令フィールド26に条件評価操作指示「if r6
GE r5」が設定されている。ここで、条件付き実行
操作指示「mov r4,r5」は、レジスタ「r5」
からレジスタ「r4」へのデータ転送を示し、条件評価
操作指示「if r6GEr5」は、レジスタ「r6」
のデータがレジスタ「r5」のデータ以上の大きさであ
るか否かの条件判断を示している。
【0044】命令「mov r4,r6/if r6
GE r5」は、図2(C)に示すコンディショナル命
令Cに分類され、第1の命令フィールド25に条件付き
実行操作指示「mov r4,r6」が設定され、第2
の命令フィールド26に条件評価操作指示「if r6
LT r5」が設定されている。ここで、条件付き実
行操作指示「mov r4,r6」は、レジスタ「r
6」からレジスタ「r4」へのデータ転送を示し、条件
評価操作指示「if r6LT r5」は、レジスタ
「r6」のデータがレジスタ「r5」のデータより小さ
いか否かの条件判断を示している。
【0045】命令「add r4,r3/sub r3
0x01」は、図2(B)に示すダブル命令Dに分類
され、第1の命令フィールド22に操作指示「add
r4,r3」が設定され、第2の命令フィールド24に
操作指示「sub r3 0x01」が設定されてい
る。ここで、操作指示「add r4,r3」は、レジ
スタ「r3」のデータとレジスタ「r4」のデータとを
加算してレジスタ「r4」に書き込むことを示し、操作
指示「sub r3 0x01」は、レジスタ「r3」
のデータから「0x01」を減算し、減算結果をレジス
タ「r3」に書き込むことを示している。
【0046】次に、図7に示すプログラム30に基づい
た図1に示すプロセッサ1の動作について説明する。 〔命令「mov r4,r5/if r6 GE r
5」に応じた動作〕プログラムカウンタ7のカウント値
S7が示す命令キャッシュ2のアドレスから読み出され
た図7に示す命令「mov r4,r5/if r6
GE r5」が、デコーダ3においてデコードされる。
そして、第1の命令フィールド25に設定された条件付
き実行操作指示「mov r4,r5」のデコード結果
に基づいて生成された制御信号S3aがALU41 に出
力される。これにより、レジスタ「r5」のデータが、
レジスタ群5からパイプラインレジスタ101 を介して
ALU41 に入力し、ALU41 からデータS41 とし
て出力される。また、それと並行して、第2の命令フィ
ールド26に条件評価操作指示「ifr6 GE r
5」のデコード結果に基づいて生成された制御信号S3
bがALU42 に出力される。これにより、ALU42
から、条件評価操作指示「ifr6 GE r5」に応
じた条件評価の処理結果がデータS42 としてデコーダ
3に出力される。
【0047】そして、ALU42 において条件を満たす
と判断された場合、デコーダ3においてデータS42
基づいてデータS41 が有効であると判断され、デコー
ダ3からの制御信号S3cに基づいてレジスタ「r5」
のデータを示すデータS41が、パイプラインレジスタ
105 ,107 を介して、レジスタ群5内のレジスタ
「r4」に書き込まれる。一方、ALU42 において条
件を満たさないと判断された場合、デコーダ3において
データS42 に基づいてデータS41 が無効であると判
断され、データS41 は廃棄される。
【0048】〔命令「mov r4,r6/if r6
LT r5」に応じた動作〕プログラムカウンタ7の
カウント値S7が示す命令キャッシュ2のアドレスから
読み出された図7に示す命令「mov r4,r6/i
f r6 LT r5」が、デコーダ3においてデコー
ドされる。そして、第1の命令フィールド25に設定さ
れた条件付き実行操作指示「mov r4,r6」のデ
コード結果に基づいて生成された制御信号S3aがAL
U41 に出力される。これにより、レジスタ「r6」の
データが、レジスタ群5からパイプラインレジスタ10
1 を介してALU41 に入力し、ALU41 からデータ
S41 として出力される。また、それと並行して、第2
の命令フィールド26に条件評価操作指示「ifr6
LT r5」のデコード結果に基づいて生成された制御
信号S3bがALU42 に出力される。これにより、A
LU42 から、条件評価操作指示「ifr6 LT r
5」に応じた条件評価の処理結果がデータS42 として
デコーダ3に出力される。
【0049】そして、ALU42 において条件を満たす
と判断された場合、デコーダ3においてデータS42
基づいてデータS41 が有効であると判断され、デコー
ダ3からの制御信号S3cに基づいてレジスタ「r6」
のデータを示すデータS41が、パイプラインレジスタ
105 ,107 を介して、レジスタ群5内のレジスタ
「r4」に書き込まれる。一方、ALU42 において条
件を満たさないと判断された場合、デコーダ3において
データS42 に基づいてデータS41 が無効であると判
断され、データS41 は廃棄される。
【0050】〔命令「add r4,r3/sub r
3 0x01」に応じた動作〕プログラムカウンタ7の
カウント値S7が示す命令キャッシュ2のアドレスから
読み出された図7に示す命令「add r4,r3/s
ub r3 0x01」が、デコーダ3においてデコー
ドされる。そして、第1の命令フィールド22に設定さ
れた操作指示「add r4,r3」のデコード結果に
基づいて生成された制御信号S3aがALU41 に出力
される。これにより、レジスタ「r4」のデータおよび
レジスタ「r3」のデータがそれぞれパイプラインレジ
スタ101 および102 を介してALU41 に入力し、
これらがALU41 において加算される。そして、その
加算結果がデータS41 としてALU41 から出力さ
れ、パイプラインレジスタ105 ,107 を介して、レ
ジスタ群5のレジスタ「r4」に書き込まれる。
【0051】また、それと並行して、第2の命令フィー
ルド24に設定された操作指示「sub r3 0x0
1」のデコード結果に基づいて生成された制御信号S3
bがALU42 に出力される。これにより、レジスタ
「r3」のデータがパイプラインレジスタ103 を介し
てALU42 に入力し、ALU41 において、レジスタ
「r3」のデータからデータ「0x01」が減算され、
その減算結果がデータS42 としてALU42 から出力
され、パイプラインレジスタ106 ,108 を介して、
レジスタ群5のレジスタ「r3」に書き込まれる。
【0052】なお、上述した処理において、命令キャッ
シュ2からの命令の読み出しを行うフェッチ処理と、デ
コーダ3におけるデコード処理と、ALU41 ,42
おける実行処理と、レジスタ群5への書き込み処理とは
並行してパイプライン方式で行われる。従って、図7に
示す各命令は見かけ上、1クロックサイクルで処理さ
れ、図7に示すプログラム30は3クロックサイクルで
処理される。また、図7に示すプログラム30は、各命
令が32ビットであるため、16ビットを1ワードとし
た場合に、6ワードで表現される。
【0053】ところで、上述した図7に示すプログラム
30と同じ処理を示し、16ビットの命令長の命令を1
個のALUを備えたRISC(Reduced Instruction Set
Computer)プロセッサで実行するプログラム31は、図
8に示すように記述される。すなわち、16ビットを1
ワードとした場合に、プログラム31は、9ワードとな
り、9クロックサイクルで処理される。
【0054】従って、上述したプロセッサ1の動作例に
よれば、16ビットの命令長の命令を1個のALUを備
えたプロセッサで実行する場合に比べて、プログラムの
処理時間を9クロックサイクルから3クロックサイクル
に短縮できると共に、プログラムサイズを9ワードから
6ワードに削減してコード効率を高めることができる。
【0055】以上説明したように、プロセッサ1によれ
ば、図2(A)に示す31ビットの命令フィールド21
でALU41 の操作を指示するロング命令Lを用いるこ
とができるため、比較的長い命令長を必要とするイミデ
ィエイトデータを扱う演算指示や、絶対アドレスを指定
する分岐指示などの操作指示を1命令で指示でき、16
ビットの命令しか処理しないプロセッサに比べて、命令
数の削減により、コード効率を高めると共に、処理時間
を短縮できる。
【0056】また、プロセッサ1によれば、例えば、算
術演算指示や論理演算指示などの比較的簡単で16ビッ
トを用いて十分に指示可能な操作指示を、図2(B)に
示すようなダブル命令Dを用いて、図1に示すALU4
1 および42 において、独立した2つの操作指示に分割
して処理を行うことで、従来の32ビットの命令のみを
処理するプロセッサに比べて、命令内の不使用フィール
ドを削減でき、コード効率を高めることができる。
【0057】さらに、プロセッサ1では、図2(C)に
示すコンディショナル命令Cを用いることで、第1の命
令フィールド25に設定される条件付き実行操作指示の
デコードおよび実行と、当該条件付き実行操作指示の有
効性を評価する第2の命令フィールド26に設定された
条件評価指示のデコードおよび実行とをALU41 ,4
2 において並行して行い、条件付き実行操作指示に応じ
たALU41 の処理結果をレジスタに反映(記憶)する
か否かを、条件評価指示に応じたALU42 の処理結果
に応じて決定する。そのため、単数のALUを用いて処
理を行うプロセッサに比べて、条件分岐を伴う処理を、
少ない命令数で短時間で行うことができる。
【0058】この場合に、プロセッサ1では、図2
(C)に示す第2の命令フィールド26を、コンディシ
ョナル命令Cでは条件評価指示を設定するための専用フ
ィールとして用いるが、その他の図2(A),(B)に
示すロング命令Lおよびダブル命令Dでは、条件評価指
示以外の操作指示を設定するためのフィールドとして用
いる。そのため、プロセッサ1によれば、VLIW(Ve
ry Long Instruction Word)コンピュータなどのよう
に、条件を記述するため専用フィールドを全ての命令に
固定して設けた場合に比べて、コード効率を高めること
ができ、メモリサイズに厳しい制限があるマイクロプロ
セッサなどに特に有効である。
【0059】本発明は上述した実施形態には限定されな
い。例えば、上述した実施形態では、図2に示すよう
に、命令長が32ビットの命令を用いる場合を例示した
が、命令長はそれ以外の例えば16ビット、64ビット
あるいは128ビットなどであってもよい。
【0060】また、上述した実施形態では、図1に示す
ように、プロセッサ1内に2つのALU41 ,42 を備
え、図2(B),(C)に示すように1命令内に2つの
命令フィールドを設けた場合を例示したが、プロセッサ
内に3個以上のALUを備えた場合に、ALUに応じ
て、3個以上の命令フィールドを1命令内に設けてもよ
い。
【0061】また、上述した実施形態では、図2
(B)、(C)に示すように、複数の命令フィールドに
同じ命令長を割り当てたが、複数の命令フィールドに異
なる命令長を割り当てるようにしてもよい。
【0062】また、上述した実施形態では、図2に示す
ように、MSBと、MSBとLSBの中間のビットと
を、命令識別ビットとして割り当てたが、命令内におけ
る命令識別ビットを割り当てるビットの位置は任意であ
る。
【0063】
【発明の効果】以上説明したように、本発明のプロセッ
サによれば、命令パイプライン処理を行うために固定命
令長を採用した場合でも、操作指示の数が異なる第1の
命令および第2の命令を選択して用いることで、コード
効率を高め、高速化を図ることが可能になる。また、本
発明のプロセッサによれば、第2の命令に、条件付き実
行操作指示と条件評価操作指示とを含めることで、デコ
ード手段によるデコードおよび処理手段における処理
を、条件付き実行操作指示と条件評価操作指示とで並行
して行うことができ、条件分岐命令を短時間で処理でき
る。さらに、本発明のプロセッサによれば、第2の命令
フィールドを、条件評価操作指示と第2の操作指示とで
兼用して用いることで、条件評価専用のフィールドを全
ての命令に固定して設けた場合に比べて、コード効率を
高めることができる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態のプロセッサの主要
部の構成図である。
【図2】図2は、図1に示すプロセッサで用いられる命
令のフォーマットを説明するための図であり、図2
(A)はロング命令Lのフォーマットを示し、図2
(B)はダブル命令Dのフォーマットを示し、図2
(C)はコンディショナル命令Cのフォーマットを示し
ている。
【図3】図3は、図1に示すデコーダにおける命令の種
類に応じた処理のフローチャートである。
【図4】図4は、図2(C)に示すコンディショナル命
令の実行を説明するための図である。
【図5】図5は、図2(A)に示すロング命令の実行を
説明するための図である。
【図6】図6は、図2(B)に示すダブル命令の実行を
説明するための図である。
【図7】図7は、図1に示すプロセッサで処理されるプ
ログラムを説明するための図である。
【図8】図8は、図7に示すプログラムと同じ処理を示
し、16ビットの命令長の命令を1個のALUを備えた
プロセッサで実行するプログラムを説明するための図で
ある。
【符号の説明】
1…プロセッサ、2…命令キャッシュ、3…デコーダ、
1 ,42 …ALU、5…レジスタ群、6…レジスタ制
御回路、7…プログラムカウンタ、8…カウントアップ
回路、9…セレクタ、101 〜107 …パイプラインレ
ジスタ、11…データキャッシュ

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】複数の処理手段と、 単数の操作指示を含む第1の命令を入力したときに、前
    記単数の操作指示をデコードし、当該デコード結果に基
    づいて単数の前記処理手段を制御し、複数の操作指示を
    含み前記第1の命令と同じ命令長を持つ第2の命令を入
    力したときに、前記複数の操作指示をデコードし、当該
    デコード結果に基づいて前記複数の処理手段を制御する
    デコード手段とを有するプロセッサ。
  2. 【請求項2】前記第1の命令および前記第2の命令を記
    憶する命令記憶手段と、 前記処理手段の処理結果を必要に応じて記憶するデータ
    記憶手段とをさらに有し、 前記第1の命令および前記第2の命令の各々の実行を、
    前記命令記憶手段から前記命令を読み出して前記デコー
    ド手段に出力するフェッチステージと、前記デコード手
    段で前記デコードを行うデコードステージと、前記処理
    手段で処理を行う実行ステージと、前記データ記憶手段
    への前記処理結果の書き込みを行うライトバックステー
    ジとに分割し、異なる前記命令の異なる前記ステージを
    並行して処理して命令パイプライン処理を行う請求項1
    に記載のプロセッサ。
  3. 【請求項3】前記複数の操作指示は、それぞれ前記複数
    の処理手段のうち対応する一の処理手段の操作を指示し
    ている請求項1に記載のプロセッサ。
  4. 【請求項4】同一の前記第2の命令に含まれる複数の操
    作指示は、相互に制御およびデータの依存性がない請求
    項1に記載のプロセッサ。
  5. 【請求項5】前記第2の命令は、条件付きで実行される
    条件付き実行操作指示と、当該条件付き実行操作指示が
    有効であるための条件を評価する条件評価操作指示とを
    少なくとも含み、 前記デコード手段は、前記条件評価操作指示のデコード
    結果に基づいた制御による一の前記処理手段の処理結果
    に基づいて、前記条件付き実行操作指示のデコード結果
    に基づいた制御による他の前記処理手段の処理結果の有
    効性を判断する請求項1に記載のプロセッサ。
  6. 【請求項6】データ記憶手段をさらに有し、 前記デコード手段は、前記条件付き実行操作指示のデコ
    ード結果に基づいた制御による前記処理手段の処理結果
    が有効であると判断した場合には、当該処理結果を前記
    データ記憶手段に記憶し、前記条件付き実行操作指示の
    デコード結果に基づいた制御による前記処理手段の処理
    結果が無効であると判断した場合には、当該処理結果を
    前記データ記憶手段に記憶しない請求項5に記載のプロ
    セッサ。
  7. 【請求項7】前記第1の命令および前記第2の命令に
    は、前記第1の命令および前記第2の命令のどちらであ
    るかを識別するための命令識別フィールドが設けられて
    おり、 前記デコード手段は、前記命令識別フィールドに基づい
    て、前記第1の命令および前記第2の命令のどちらを入
    力したかを識別する請求項1に記載のプロセッサ。
  8. 【請求項8】前記第2の命令に含まれる前記複数の操作
    指示は、相互に同じビット数で構成される請求項1に記
    載のプロセッサ。
  9. 【請求項9】第1の処理手段と、 第2の処理手段と、 第1の操作指示を示す第1の命令フィールドと、前記第
    1の操作指示が有効であるための条件を評価する条件評
    価操作指示および当該条件評価操作指示以外の第2の操
    作指示のうち一方を示す第2の命令フィールドとを有す
    る命令をデコードし、前記第2の命令フィールドが前記
    条件評価操作指示を示している場合に、前記条件評価操
    作指示のデコード結果に基づいた制御による前記第2の
    処理手段の処理結果に基づいて、前記第1の操作指示の
    デコード結果に基づいた制御による前記第1の処理手段
    の処理結果の有効性を判断するデコード手段とを有する
    プロセッサ。
  10. 【請求項10】前記命令を記憶する命令記憶手段と、 前記第1の処理手段および前記第2の処理手段の処理結
    果を必要に応じて記憶するデータ記憶手段とをさらに有
    し、 前記第1の命令および前記第2の命令の各々の実行を、
    前記命令記憶手段から前記命令を読み出して前記デコー
    ド手段に出力するフェッチステージと、前記デコード手
    段で前記デコードを行うデコードステージと、前記処理
    手段で処理を行う実行ステージと、前記データ記憶手段
    への前記処理結果の書き込みを行うライトバックステー
    ジとに分割し、異なる前記命令の異なる前記ステージを
    並行して処理して命令パイプライン処理を行う請求項9
    に記載のプロセッサ。
  11. 【請求項11】前記デコード手段は、前記第2の命令フ
    ィールドが前記第2の操作指示を示している場合に、前
    記第1の操作指示のデコード結果に基づいた制御による
    前記第1の処理手段の処理結果と、前記第2の操作指示
    のデコード結果に基づいた制御による前記第2の処理手
    段の処理結果との双方を有効なものとして扱う請求項9
    に記載のプロセッサ。
  12. 【請求項12】データ記憶手段をさらに有し、 前記デコード手段は、前記第2の命令フィールドが前記
    条件評価操作指示を示しており、前記第1の処理手段の
    処理結果が有効であると判断した場合には、当該処理結
    果を前記データ記憶手段に記憶し、前記第1の処理手段
    の処理結果が無効であると判断した場合には、当該処理
    結果を前記データ記憶手段に記憶しない請求項9に記載
    のプロセッサ。
  13. 【請求項13】前記デコード手段は、前記第2の命令フ
    ィールドが前記第2の操作指示を示している場合に、前
    記第1の処理手段の処理結果と前記第2の処理手段の処
    理結果との双方を前記データ記憶手段に記憶する請求項
    12に記載のプロセッサ。
  14. 【請求項14】前記命令には、前記第2の命令フィール
    ドが、前記条件評価操作指示および第2の操作指示のど
    ちらを示しているかを識別するための識別フィールドが
    設けられており、 前記デコード手段は、前記識別フィールドに基づいて、
    前記第2の命令フィールドが前記条件評価操作指示およ
    び第2の操作指示のどちらを示しているかを識別する請
    求項9に記載のプロセッサ。
  15. 【請求項15】前記第1の命令フィールドと前記第2の
    命令フィールドとは、相互に同じビット数で構成される
    請求項9に記載のプロセッサ。
JP10263386A 1998-09-17 1998-09-17 プロセッサ Pending JP2000099329A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10263386A JP2000099329A (ja) 1998-09-17 1998-09-17 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10263386A JP2000099329A (ja) 1998-09-17 1998-09-17 プロセッサ

Publications (1)

Publication Number Publication Date
JP2000099329A true JP2000099329A (ja) 2000-04-07

Family

ID=17388778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10263386A Pending JP2000099329A (ja) 1998-09-17 1998-09-17 プロセッサ

Country Status (1)

Country Link
JP (1) JP2000099329A (ja)

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
US7473293B2 (en) Processor for executing instructions containing either single operation or packed plurality of operations dependent upon instruction status indicator
JP2816248B2 (ja) データプロセッサ
EP0942357A2 (en) Data processor compatible with a plurality of instruction formats
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US6035122A (en) Compiler for converting source program into object program having instruction with commit condition
US7552313B2 (en) VLIW digital signal processor for achieving improved binary translation
JPH0810428B2 (ja) データ処理装置
JP3781519B2 (ja) プロセッサの命令制御機構
JP4228241B2 (ja) 演算処理装置
JPH07120278B2 (ja) データ処理装置
US10437598B2 (en) Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
US20020116599A1 (en) Data processing apparatus
JP3578735B2 (ja) 情報処理装置及び情報処理方法
JP2007537529A (ja) 多重命令語処理装置におけるフィードバック接続の実行時間選択
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP2000099329A (ja) プロセッサ
JP2848727B2 (ja) 並列演算処理装置
JP2007004475A (ja) プロセッサ及びプログラム実行方法
JP3472504B2 (ja) 命令解読方法、命令解読装置及びデータ処理装置
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP3901670B2 (ja) データ処理装置
JP3019818B2 (ja) データ処理方法
JPH1196001A (ja) プログラム実行装置及びプログラム変換方法
JP4006887B2 (ja) コンパイラ、プロセッサおよび記録媒体