JP2000081973A - データ処理装置及びデータ処理システム - Google Patents
データ処理装置及びデータ処理システムInfo
- Publication number
- JP2000081973A JP2000081973A JP10250726A JP25072698A JP2000081973A JP 2000081973 A JP2000081973 A JP 2000081973A JP 10250726 A JP10250726 A JP 10250726A JP 25072698 A JP25072698 A JP 25072698A JP 2000081973 A JP2000081973 A JP 2000081973A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch condition
- register
- logical operation
- data processing
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 プレディケートレジスタの値を用いた分岐条
件の生成を効率化できるデータ処理装置を提供する。 【解決手段】 データ処理装置(1)は、プレディケー
トレジスタ(12)の複数ビットを用いる複合論理演算
によって分岐条件を生成する分岐条件生成命令(AND
ORP,ORANDP)を命令セットに有する。デコー
ダ(17)は分岐条件生成命令を解読し、論理演算回路
(18)にプレディケートレジスタの複数ビットを用い
た論理積及び論理和演算を同じ命令実行サイクル中で実
行させ、その演算演算結果をプレディケートレジスタに
反映させる。分岐条件生成命令を命令セットに有し、そ
の命令に専用化された論理演算回路を有し、演算内容は
論理積や論理和などの単純なビット操作であって演算遅
延は非常に小さいから、プレディケートレジスタの値を
用いた複雑な演算による分岐条件の生成を高速化でき
る。
件の生成を効率化できるデータ処理装置を提供する。 【解決手段】 データ処理装置(1)は、プレディケー
トレジスタ(12)の複数ビットを用いる複合論理演算
によって分岐条件を生成する分岐条件生成命令(AND
ORP,ORANDP)を命令セットに有する。デコー
ダ(17)は分岐条件生成命令を解読し、論理演算回路
(18)にプレディケートレジスタの複数ビットを用い
た論理積及び論理和演算を同じ命令実行サイクル中で実
行させ、その演算演算結果をプレディケートレジスタに
反映させる。分岐条件生成命令を命令セットに有し、そ
の命令に専用化された論理演算回路を有し、演算内容は
論理積や論理和などの単純なビット操作であって演算遅
延は非常に小さいから、プレディケートレジスタの値を
用いた複雑な演算による分岐条件の生成を高速化でき
る。
Description
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サなどのデータ処理装置に係り、特に演算命令を実行し
た後の状態が反映されるコンディションレジスタを用い
た分岐条件の生成に関し、例えばスーパースカラアーキ
テクチャを有するRISC(Reduced Instruction Set
Computer)型のマイクロプロセッサに適用して有効な技
術に関するものである。
サなどのデータ処理装置に係り、特に演算命令を実行し
た後の状態が反映されるコンディションレジスタを用い
た分岐条件の生成に関し、例えばスーパースカラアーキ
テクチャを有するRISC(Reduced Instruction Set
Computer)型のマイクロプロセッサに適用して有効な技
術に関するものである。
【0002】
【従来の技術】マイクロプロセッサなどのデータ処理装
置は、演算命令を実行した後の状態を示すために、コン
ディションレジスタを有する。このコンディションレジ
スタは、演算命令によって明示的に指定されず、演算結
果の符号、オーバーフロー、ゼロ、キャリー、ボロー、
パリティー等の状態をビット単位で示すフラグを有する
場合と、演算命令により明示的に指定され、主に比較命
令によりセットされるものがある。コンディションレジ
スタは、分岐条件として利用することができる。最近の
アーキテクチャでは、このコンディションレジスタを複
数本設けるものもある。コンディションレジスタについ
て記載された文献の例として超高速MOSデバイス(株
式会社培風館昭和62年11月5日発行)第272頁及
び第278頁あるいは、PowerPC SYSTEM
ARCHITECTURE(Tom Shanley
著、MINDSHARE,INC.1995年発行)、
第61頁がある。
置は、演算命令を実行した後の状態を示すために、コン
ディションレジスタを有する。このコンディションレジ
スタは、演算命令によって明示的に指定されず、演算結
果の符号、オーバーフロー、ゼロ、キャリー、ボロー、
パリティー等の状態をビット単位で示すフラグを有する
場合と、演算命令により明示的に指定され、主に比較命
令によりセットされるものがある。コンディションレジ
スタは、分岐条件として利用することができる。最近の
アーキテクチャでは、このコンディションレジスタを複
数本設けるものもある。コンディションレジスタについ
て記載された文献の例として超高速MOSデバイス(株
式会社培風館昭和62年11月5日発行)第272頁及
び第278頁あるいは、PowerPC SYSTEM
ARCHITECTURE(Tom Shanley
著、MINDSHARE,INC.1995年発行)、
第61頁がある。
【0003】
【発明が解決しようとする課題】ここで、コンディショ
ンレジスタの中で、その内容が比較命令により明示的に
生成され、分岐条件として使用できるものをプレディケ
ートレジスタと呼ぶ。本発明者は複数本のプレディケー
トレジスタを持つプロセッサアーキテクチャにおけるプ
レディケートレジスタを用いる演算について検討した。
即ち、データ処理の高速化という点において、条件分岐
では、例えば分岐条件の生成若しくは判定によって生ず
るパイプラインハザードを極力小さくすることが必要で
ある。複数のプレディケートレジスタを用いて複数の演
算を行った結果を分岐条件とする場合には、そのような
複数の演算を少ないクロックサイクル数で行うことが望
ましい。この点で、複数のプレディケートレジスタの値
に対しする論理和や論理積などの単純なビット操作命令
を複数回繰り返し実行して分岐条件を生成する場合に
は、命令実行ステップ数が多くなり、効率的でないこと
が本発明者によって見出された。例えば、特定のプレデ
ィケートレジスタの値に対する論理積と、別のプレディ
ケートレジスタの値に対する論理積とを別々の論理演算
命令を実行して演算し、双方の演算結果に対して論理和
を採る更に別の論理演算命令を実行して、分岐条件を生
成しなければならない。プレディケートレジスタの値を
用いた演算が複雑になる程、分岐条件の生成が遅れる。
ンレジスタの中で、その内容が比較命令により明示的に
生成され、分岐条件として使用できるものをプレディケ
ートレジスタと呼ぶ。本発明者は複数本のプレディケー
トレジスタを持つプロセッサアーキテクチャにおけるプ
レディケートレジスタを用いる演算について検討した。
即ち、データ処理の高速化という点において、条件分岐
では、例えば分岐条件の生成若しくは判定によって生ず
るパイプラインハザードを極力小さくすることが必要で
ある。複数のプレディケートレジスタを用いて複数の演
算を行った結果を分岐条件とする場合には、そのような
複数の演算を少ないクロックサイクル数で行うことが望
ましい。この点で、複数のプレディケートレジスタの値
に対しする論理和や論理積などの単純なビット操作命令
を複数回繰り返し実行して分岐条件を生成する場合に
は、命令実行ステップ数が多くなり、効率的でないこと
が本発明者によって見出された。例えば、特定のプレデ
ィケートレジスタの値に対する論理積と、別のプレディ
ケートレジスタの値に対する論理積とを別々の論理演算
命令を実行して演算し、双方の演算結果に対して論理和
を採る更に別の論理演算命令を実行して、分岐条件を生
成しなければならない。プレディケートレジスタの値を
用いた演算が複雑になる程、分岐条件の生成が遅れる。
【0004】本発明の目的は、プレディケートレジスタ
の値を用いた分岐条件の生成を効率化できるデータ処理
装置を提供することにある。
の値を用いた分岐条件の生成を効率化できるデータ処理
装置を提供することにある。
【0005】本発明の別の目的は、条件分岐を用いたデ
ータ処理効率を向上させることができるデータ処理シス
テムを提供することにある。
ータ処理効率を向上させることができるデータ処理シス
テムを提供することにある。
【0006】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0007】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0008】すなわち、データ処理装置(1)は、実行
すべき命令がラッチされる命令レジスタ(13)と、前
記命令レジスタにラッチされた命令をデコードするデコ
ーダ(17)と、前記デコーダから出力されるデコード
信号を利用して演算を行う演算手段(16)と、前記演
算手段を利用して命令を実行した後の状態が反映される
プレディケートレジスタ(12)とを有する。このデー
タ処理装置は、前記プレディケートレジスタの複数ビッ
トを用いる複合論理演算によって分岐条件を生成する分
岐条件生成命令(ANDORP,ORANDP)を命令
セットに有する。前記デコーダは、前記命令レジスタに
ラッチされた前記分岐条件生成命令を解読し、前記状態
レジスタの複数ビットを用いる複数の第1論理演算とそ
れら第1論理演算結果を用いた第2論理演算とを同じ命
令実行サイクル中で実行させ、前記第2論理演算の結果
を前記状態レジスタの所定ビットに反映させる。前記分
岐条件生成命令には専用化された複合論理演算回路(1
8)を用いる。
すべき命令がラッチされる命令レジスタ(13)と、前
記命令レジスタにラッチされた命令をデコードするデコ
ーダ(17)と、前記デコーダから出力されるデコード
信号を利用して演算を行う演算手段(16)と、前記演
算手段を利用して命令を実行した後の状態が反映される
プレディケートレジスタ(12)とを有する。このデー
タ処理装置は、前記プレディケートレジスタの複数ビッ
トを用いる複合論理演算によって分岐条件を生成する分
岐条件生成命令(ANDORP,ORANDP)を命令
セットに有する。前記デコーダは、前記命令レジスタに
ラッチされた前記分岐条件生成命令を解読し、前記状態
レジスタの複数ビットを用いる複数の第1論理演算とそ
れら第1論理演算結果を用いた第2論理演算とを同じ命
令実行サイクル中で実行させ、前記第2論理演算の結果
を前記状態レジスタの所定ビットに反映させる。前記分
岐条件生成命令には専用化された複合論理演算回路(1
8)を用いる。
【0009】前記分岐条件生成命令には、オペレーショ
ンコードの指定フィールド(ANDORP,ORAND
Pに格納領域)と、前記第1論理演算に用いるプレディ
ケートレジスタのビット位置を指定する第1情報の指定
フィールド(Pm,len_aの格納領域)と、第2論
理演算に用いる第1論理演算結果を指定する第2情報の
指定フィールド(len_bの指定領域)とを有する命
令フォーマットを採用することができる。
ンコードの指定フィールド(ANDORP,ORAND
Pに格納領域)と、前記第1論理演算に用いるプレディ
ケートレジスタのビット位置を指定する第1情報の指定
フィールド(Pm,len_aの格納領域)と、第2論
理演算に用いる第1論理演算結果を指定する第2情報の
指定フィールド(len_bの指定領域)とを有する命
令フォーマットを採用することができる。
【0010】上記により、同じ命令実行サイクル中で前
記複数の第1論理演算と第2論理演算を行う複合論理演
算によって分岐条件を生成する分岐条件生成命令を命令
セットに有し、分岐条件生成命令に利用される論理演算
回路は専用化され、更に、演算内容は論理積や論理和な
どの単純なビット操作であって演算遅延は非常に小さい
から、条件レジスタの値を用いた複雑な演算によって分
岐条件を生成する場合にも、当該条件の生成を高速化で
きる。例えば、命令実行サイクルの1サイクルで所要の
分岐条件を生成できる。
記複数の第1論理演算と第2論理演算を行う複合論理演
算によって分岐条件を生成する分岐条件生成命令を命令
セットに有し、分岐条件生成命令に利用される論理演算
回路は専用化され、更に、演算内容は論理積や論理和な
どの単純なビット操作であって演算遅延は非常に小さい
から、条件レジスタの値を用いた複雑な演算によって分
岐条件を生成する場合にも、当該条件の生成を高速化で
きる。例えば、命令実行サイクルの1サイクルで所要の
分岐条件を生成できる。
【0011】上記データ処理装置を用いたデータ処理シ
ステムは、前記データ処理装置が実行可能であって前記
分岐条件生成命令を含む命令を格納するプログラム格納
手段(20)と、前記データ処理装置がデータの一時記
憶領域として利用するランダム・アクセス・メモリ(2
1)とを有する。命令並列度若しくは並列パイプライン
本数が多くなると、一般的に、分岐条件の生成がクリテ
ィカルパスになる傾向を持ち、分岐のオーバーヘッドも
相対的に大きくなろうとする。従って、条件分岐を用い
たデータ処理効率を向上できる。上記データ処理装置が
スーパースカラアーキテクチャ等を有する場合には、シ
ステム全体としてデータ処理効率を更に向上できる。
ステムは、前記データ処理装置が実行可能であって前記
分岐条件生成命令を含む命令を格納するプログラム格納
手段(20)と、前記データ処理装置がデータの一時記
憶領域として利用するランダム・アクセス・メモリ(2
1)とを有する。命令並列度若しくは並列パイプライン
本数が多くなると、一般的に、分岐条件の生成がクリテ
ィカルパスになる傾向を持ち、分岐のオーバーヘッドも
相対的に大きくなろうとする。従って、条件分岐を用い
たデータ処理効率を向上できる。上記データ処理装置が
スーパースカラアーキテクチャ等を有する場合には、シ
ステム全体としてデータ処理効率を更に向上できる。
【0012】
【発明の実施の形態】《マイクロプロセッサの概要》図
1には本発明の一例に係るマイクロプロセッサのブロッ
ク図が示される。同図に示されるマイクロプロセッサ1
は、単結晶シリコンのような1個の半導体チップに例え
ばCMOS集積回路製造技術によって形成されている。
1には本発明の一例に係るマイクロプロセッサのブロッ
ク図が示される。同図に示されるマイクロプロセッサ1
は、単結晶シリコンのような1個の半導体チップに例え
ばCMOS集積回路製造技術によって形成されている。
【0013】マイクロプロセッサ1は、特に制限されな
いが、CPU(中央処理装置)2、命令キャッシュメモ
リ3、データキャッシュメモリ4、及びバスステートコ
ントローラ5を有する。
いが、CPU(中央処理装置)2、命令キャッシュメモ
リ3、データキャッシュメモリ4、及びバスステートコ
ントローラ5を有する。
【0014】CPU2は、データおよびメモリアドレス
を格納する汎用レジスタ(GR)10を有する。マイク
ロプロセッサ1はその他のレジスタとして、プログラム
カウンタ(PC)11、プレディケートレジスタ(P
R)12及び命令レジスタ13などを有する。ここでプ
レディケートレジスタ12は8ビットのレジスタから成
り、それら8ビットをプレディケートレジスタビットP
0〜P7と称する。汎用レジスタア10を用いたデータ
演算及びアドレス演算は算術論理演算器(ALU)を有
する演算回路16で行なわれる。
を格納する汎用レジスタ(GR)10を有する。マイク
ロプロセッサ1はその他のレジスタとして、プログラム
カウンタ(PC)11、プレディケートレジスタ(P
R)12及び命令レジスタ13などを有する。ここでプ
レディケートレジスタ12は8ビットのレジスタから成
り、それら8ビットをプレディケートレジスタビットP
0〜P7と称する。汎用レジスタア10を用いたデータ
演算及びアドレス演算は算術論理演算器(ALU)を有
する演算回路16で行なわれる。
【0015】前記プログラムカウンタ11は、インクリ
メンタ14でインクリメントされた命令アドレス又は汎
用レジスタ10から転送された命令アドレスを、実行す
べき命令アドレスとして保有する。PC12に何れを保
有させるかはセレクタ15で選択される。例えば分岐命
令を実行したとき、分岐先の命令アドレスは演算回路1
6で演算され、汎用レジスタ10からセレクタ15を経
由してプログラムカウンタ11に供給される。
メンタ14でインクリメントされた命令アドレス又は汎
用レジスタ10から転送された命令アドレスを、実行す
べき命令アドレスとして保有する。PC12に何れを保
有させるかはセレクタ15で選択される。例えば分岐命
令を実行したとき、分岐先の命令アドレスは演算回路1
6で演算され、汎用レジスタ10からセレクタ15を経
由してプログラムカウンタ11に供給される。
【0016】命令キャッシュメモリ3は、プログラムカ
ウンタ11が保有する命令アドレスの命令を保有する場
合には(命令キャッシュヒット)、命令ロードのタイミ
ングで当該命令を命令レジスタ13に供給する。一方、
命令キャッシュメモリ3は、プログラムカウンタ11が
保有する命令アドレスの命令を保有していない場合には
(命令キャッシュミス)、バスステートコントローラ5
を介して、外部のプログラムメモリ20から1キャッシ
ュライン分の命令を読み込み、読み込んだ命令から所要
の命令を命令レジスタ13に供給する。図において22
は外部アドレスバス、23は外部データバスである。
ウンタ11が保有する命令アドレスの命令を保有する場
合には(命令キャッシュヒット)、命令ロードのタイミ
ングで当該命令を命令レジスタ13に供給する。一方、
命令キャッシュメモリ3は、プログラムカウンタ11が
保有する命令アドレスの命令を保有していない場合には
(命令キャッシュミス)、バスステートコントローラ5
を介して、外部のプログラムメモリ20から1キャッシ
ュライン分の命令を読み込み、読み込んだ命令から所要
の命令を命令レジスタ13に供給する。図において22
は外部アドレスバス、23は外部データバスである。
【0017】デコーダ17は命令レジスタ13にラッチ
された命令を解読して各種の内部制御信号を生成して、
汎用レジスタ10、演算回路16、プレディケートレジ
スタ12、及び複合論理演算回路18等の動作を制御す
る。解読された命令の実行にデータアクセスを必要とす
る場合、汎用レジスタ10からデータアドレスがデータ
キャッシュメモリ4に与えられる。データキャッシュメ
モリ4は、そのデータアドレスに対応するキャッシュエ
ントリを有する場合(データキャッシュヒット)、デコ
ーダ17で選択された汎用レジスタ10からデータキャ
ッシュメモリ4にデータが書き込まれ、或いは、データ
キャッシュメモリ4から読み出されたデータがデコーダ
17で選択された汎用レジスタ10にロードされる。一
方、データキャッシュメモリ4は、そのデータアドレス
に対応するキャッシュエントリを有していない場合(デ
ータキャッシュミス)、バスステートコントローラ5を
介して外部データメモリ21から1キャッシュライン分
のデータを読み込み、読み込んだデータのキャッシュへ
の格納と共にデコーダ17で選択された汎用レジスタ1
0からの書き込みデータが当該キャッシュラインに書き
込まれ、或いは、読み込んだデータのキャッシュへの格
納と共に読み込んだ所要のデータがデコーダ17で選択
された汎用レジスタ10のにロードされる。
された命令を解読して各種の内部制御信号を生成して、
汎用レジスタ10、演算回路16、プレディケートレジ
スタ12、及び複合論理演算回路18等の動作を制御す
る。解読された命令の実行にデータアクセスを必要とす
る場合、汎用レジスタ10からデータアドレスがデータ
キャッシュメモリ4に与えられる。データキャッシュメ
モリ4は、そのデータアドレスに対応するキャッシュエ
ントリを有する場合(データキャッシュヒット)、デコ
ーダ17で選択された汎用レジスタ10からデータキャ
ッシュメモリ4にデータが書き込まれ、或いは、データ
キャッシュメモリ4から読み出されたデータがデコーダ
17で選択された汎用レジスタ10にロードされる。一
方、データキャッシュメモリ4は、そのデータアドレス
に対応するキャッシュエントリを有していない場合(デ
ータキャッシュミス)、バスステートコントローラ5を
介して外部データメモリ21から1キャッシュライン分
のデータを読み込み、読み込んだデータのキャッシュへ
の格納と共にデコーダ17で選択された汎用レジスタ1
0からの書き込みデータが当該キャッシュラインに書き
込まれ、或いは、読み込んだデータのキャッシュへの格
納と共に読み込んだ所要のデータがデコーダ17で選択
された汎用レジスタ10のにロードされる。
【0018】上記マイクロプロセッサ1は、データ転送
命令、算術演算命令、論理演算命令、ビット操作命令、
及びプログラム制御命令等から成る命令セットを有す
る。プログラム制御命令には条件分岐命令や無条件分岐
命令などが含まれる。特定の条件分岐命令は、前記プレ
ディケートレジスタ12の所定ビットの値を分岐条件と
することができる。そのような分岐条件の生成には、比
較演算命令、および、論理演算命令等を利用することが
できる。
命令、算術演算命令、論理演算命令、ビット操作命令、
及びプログラム制御命令等から成る命令セットを有す
る。プログラム制御命令には条件分岐命令や無条件分岐
命令などが含まれる。特定の条件分岐命令は、前記プレ
ディケートレジスタ12の所定ビットの値を分岐条件と
することができる。そのような分岐条件の生成には、比
較演算命令、および、論理演算命令等を利用することが
できる。
【0019】特に、マイクロプロセッサ1は、前記プレ
ディケートレジスタ12の所定の複数ビットを用いる複
合論理演算によって分岐条件を生成する分岐条件生成命
令を命令セットに有する。この分岐条件生成命令はそれ
専用の論理演算回路(複合論理演算回路)18を用いて
実行される。
ディケートレジスタ12の所定の複数ビットを用いる複
合論理演算によって分岐条件を生成する分岐条件生成命
令を命令セットに有する。この分岐条件生成命令はそれ
専用の論理演算回路(複合論理演算回路)18を用いて
実行される。
【0020】《分岐条件生成命令》分岐条件生成命令
は、ニーモニック形態で図2に例示されるように、「A
NDORP Pd Pm len_a len_b」
と、「ORANDP Pd Pm len_a len
_b」との2通りである。Pdは演算結果を格納するプ
レディケートレジスタ12の位置を指定する。Pmは演
算を行うプレディケートレジスタ12の先頭位置を示す
オフセットである。len_aはANDORPの場合に
はAND(論理積)を行う範囲を0オリジンで示し、O
RANDPの場合にはOR(論理和)を行う範囲を0オ
リジンで示すものであり、0〜7を指定可能である。l
en_bはANDORPの場合にはORを行う個数を0
オリジンで指示し、ORANDPの場合はANDを行う
個数を0オリジンで指示するものであり、0〜3を指定
可能である。
は、ニーモニック形態で図2に例示されるように、「A
NDORP Pd Pm len_a len_b」
と、「ORANDP Pd Pm len_a len
_b」との2通りである。Pdは演算結果を格納するプ
レディケートレジスタ12の位置を指定する。Pmは演
算を行うプレディケートレジスタ12の先頭位置を示す
オフセットである。len_aはANDORPの場合に
はAND(論理積)を行う範囲を0オリジンで示し、O
RANDPの場合にはOR(論理和)を行う範囲を0オ
リジンで示すものであり、0〜7を指定可能である。l
en_bはANDORPの場合にはORを行う個数を0
オリジンで指示し、ORANDPの場合はANDを行う
個数を0オリジンで指示するものであり、0〜3を指定
可能である。
【0021】ANDORP,ORANDPはオペレーシ
ョンコードを意味する。ANDORPはlen_aで示
される範囲を先ずANDし、それを、len_bで示さ
れる個数だけORし、その結果をPdへ格納する処理を
指示する。例えば図2の(a)に例示された命令「AN
DORP P7 P2 1 1」は、オフセットP2か
ら0オリジンで2個置きにANDを採り(P2&P3、
P4&P5)、0オリジンで2個のAND結果に対して
ORを採り((P2&P3)|(P4&P5))、その
結果をP7に格納する、という処理を指示する。前記&
はAND(論理積)を意味し、|はOR(論理和)を意
味する。
ョンコードを意味する。ANDORPはlen_aで示
される範囲を先ずANDし、それを、len_bで示さ
れる個数だけORし、その結果をPdへ格納する処理を
指示する。例えば図2の(a)に例示された命令「AN
DORP P7 P2 1 1」は、オフセットP2か
ら0オリジンで2個置きにANDを採り(P2&P3、
P4&P5)、0オリジンで2個のAND結果に対して
ORを採り((P2&P3)|(P4&P5))、その
結果をP7に格納する、という処理を指示する。前記&
はAND(論理積)を意味し、|はOR(論理和)を意
味する。
【0022】ORANDPはlen_aで示される範囲
を先ずORし、それを、len_bで示される個数だけ
ANDし、その結果をPdへ格納する処理を指示する。
例えば図2の(b)に例示された命令「ORANDP
P7 P1 2 1」は、オフセットP1から0オリジ
ンで3個置きにORを採り(P1|P2|P3、P4|
P5|P6)、0オリジンで2個のOR結果に対してA
NDを採り((P1|P2|P3)&(P4|P5|P
6))、その結果をP7に格納する、という処理を指示
する。
を先ずORし、それを、len_bで示される個数だけ
ANDし、その結果をPdへ格納する処理を指示する。
例えば図2の(b)に例示された命令「ORANDP
P7 P1 2 1」は、オフセットP1から0オリジ
ンで3個置きにORを採り(P1|P2|P3、P4|
P5|P6)、0オリジンで2個のOR結果に対してA
NDを採り((P1|P2|P3)&(P4|P5|P
6))、その結果をP7に格納する、という処理を指示
する。
【0023】尚、マイクロプロセッサ1は、プレディケ
ートレジスタ12に対する処理を容易化するためにデー
タ転送命令には、プレディケートレジスタ移動命令を含
む。プレディケートレジスタ移動命令はニーモニック表
示で、「MOVPR Rm」、「MOVPI imm
8」、「MOVRP Rm」の3種類である。「MOV
PR Rm」は、汎用レジスタRmの下位8ビットをプ
レディケートレジスタ12にセットする命令である
({P0…P7}=Rm[7:0])。「MOVPI Im
m8」は、8ビットのイミディエイト値imm8をプレ
ディケートレジスタ12にセットする命令である({P
0…P7}=imm8)。「MOVRP Rm」は、プ
レディケートレジスタ12を符号なしで拡張して汎用レ
ジスタRmにセットする命令である(Rm=unsigned_i
nt({P0…P7}))。
ートレジスタ12に対する処理を容易化するためにデー
タ転送命令には、プレディケートレジスタ移動命令を含
む。プレディケートレジスタ移動命令はニーモニック表
示で、「MOVPR Rm」、「MOVPI imm
8」、「MOVRP Rm」の3種類である。「MOV
PR Rm」は、汎用レジスタRmの下位8ビットをプ
レディケートレジスタ12にセットする命令である
({P0…P7}=Rm[7:0])。「MOVPI Im
m8」は、8ビットのイミディエイト値imm8をプレ
ディケートレジスタ12にセットする命令である({P
0…P7}=imm8)。「MOVRP Rm」は、プ
レディケートレジスタ12を符号なしで拡張して汎用レ
ジスタRmにセットする命令である(Rm=unsigned_i
nt({P0…P7}))。
【0024】図3には前記分岐条件生成命令を用いる処
理(b)と分岐条件生成命令を用いない処理(a)とが
対比されている。図3のプログラム例は、複数の演算結
果により分岐条件を生成し、生成された条件に応じて分
岐を行う処理である。分岐条件生成命令を利用しない処
理は、(1)レジスタAの値がR0に等しいかを比較し
(A==R0)、比較結果(一致で論理値“1”、不一
致で論理値“0”)をプレディケートレジスタビットP
1に設定し、(2)レジスタBの値がR0に等しくない
かを比較し(B!=R0)、比較結果(不一致で論理値
“1”、一致で論理値“0”)をプレディケートレジス
タビットP2に設定し、(3)レジスタCの値がレジス
タDの値に等しいかを比較し(C==D)、比較結果
(一致で論理値“1”、不一致で論理値“0”)をプレ
ディケートレジスタビットP3に設定し、(4)プレデ
ィケートレジスタビットP1の値とプレディケートレジ
スタビットP2の値とのANDを採ってプレディケート
レジスタP4に格納し、(5)プレディケートレジスタ
ビットP3の値とプレディケートレジスタビットP4の
値とのORを採ってプレディケートレジスタビットP5
に格納し、(6)レジスタR1にfoo1をロードし、
(7)プレディケートレジスタビットP5の値が論理値
“0”であればレジスタR1の値で示されるアドレスに
分岐する、と言う処理である。ここで、R0には常に
“0”が格納されているとする。
理(b)と分岐条件生成命令を用いない処理(a)とが
対比されている。図3のプログラム例は、複数の演算結
果により分岐条件を生成し、生成された条件に応じて分
岐を行う処理である。分岐条件生成命令を利用しない処
理は、(1)レジスタAの値がR0に等しいかを比較し
(A==R0)、比較結果(一致で論理値“1”、不一
致で論理値“0”)をプレディケートレジスタビットP
1に設定し、(2)レジスタBの値がR0に等しくない
かを比較し(B!=R0)、比較結果(不一致で論理値
“1”、一致で論理値“0”)をプレディケートレジス
タビットP2に設定し、(3)レジスタCの値がレジス
タDの値に等しいかを比較し(C==D)、比較結果
(一致で論理値“1”、不一致で論理値“0”)をプレ
ディケートレジスタビットP3に設定し、(4)プレデ
ィケートレジスタビットP1の値とプレディケートレジ
スタビットP2の値とのANDを採ってプレディケート
レジスタP4に格納し、(5)プレディケートレジスタ
ビットP3の値とプレディケートレジスタビットP4の
値とのORを採ってプレディケートレジスタビットP5
に格納し、(6)レジスタR1にfoo1をロードし、
(7)プレディケートレジスタビットP5の値が論理値
“0”であればレジスタR1の値で示されるアドレスに
分岐する、と言う処理である。ここで、R0には常に
“0”が格納されているとする。
【0025】上記同様の分岐処理に対して、前記分岐条
件生成命令を利用する場合には、先ず前記処理(1)〜
(3)までと同じ処理を行った後、(4)レジスタR0
とR0の値を比較し、一致の比較結果である論理値
“1”をプレディケートレジスタビットP4に設定し、
(5)分岐条件生成命令ANDORPにより、プレディ
ケートレジスタビットP1とP2のANDと、プレディ
ケートレジスタビットP3とP4のANDとのORを演
算し、その演算結果をプレディケートレジスタビットP
5に設定し、その後、前記処理(6)、(7)と同じ処
理を行う。(7)の処理では、プレディケートレジスタ
12内のP5の値が例えば論理値“0”であれば、図1
のセレクタ15が汎用レジスタ10内のレジスタR1の
値がプログラムカウンタ11にセットされ、セットされ
たアドレスの命令実行に処理が分岐される。
件生成命令を利用する場合には、先ず前記処理(1)〜
(3)までと同じ処理を行った後、(4)レジスタR0
とR0の値を比較し、一致の比較結果である論理値
“1”をプレディケートレジスタビットP4に設定し、
(5)分岐条件生成命令ANDORPにより、プレディ
ケートレジスタビットP1とP2のANDと、プレディ
ケートレジスタビットP3とP4のANDとのORを演
算し、その演算結果をプレディケートレジスタビットP
5に設定し、その後、前記処理(6)、(7)と同じ処
理を行う。(7)の処理では、プレディケートレジスタ
12内のP5の値が例えば論理値“0”であれば、図1
のセレクタ15が汎用レジスタ10内のレジスタR1の
値がプログラムカウンタ11にセットされ、セットされ
たアドレスの命令実行に処理が分岐される。
【0026】上記処理を同時実行可能命令数の最適なス
ーパースカラ・アークテクチャで実行したとすれば、分
岐条件生成命令を利用しない場合には、上記(1)〜
(7)の処理を少なくとも4サイクル要する。これに対
して分岐条件生成命令を利用する場合には、上記(1)
〜(7)の処理を少なくとも3サイクルで実行すること
ができる。
ーパースカラ・アークテクチャで実行したとすれば、分
岐条件生成命令を利用しない場合には、上記(1)〜
(7)の処理を少なくとも4サイクル要する。これに対
して分岐条件生成命令を利用する場合には、上記(1)
〜(7)の処理を少なくとも3サイクルで実行すること
ができる。
【0027】《複合論理演算回路》図4には複合論理演
算回路18の一例が示される。複合論理演算回路18は
前記分岐条件生成命令ANDORP,ORANDPを実
行するために専用化された論理演算回路である。
算回路18の一例が示される。複合論理演算回路18は
前記分岐条件生成命令ANDORP,ORANDPを実
行するために専用化された論理演算回路である。
【0028】複合論理演算回路18は、命令ORAND
PのためにOR演算及びAND演算を行う論理回路アレ
イ100〜112と、命令ANDORPのためにAND
演算及びOR演算を行う論理回路アレイ200〜212
とを別々に持ち、双方の論理回路アレイにはプレディケ
ートレジスタ12からアライナ300を介して同じデー
タが並列に供給され、何れか一方の論理回路アレイの出
力がセレクタ301で選択される。選択された演算結果
は出力制御回路304を介してプレディケートレジスタ
12の指定された位置に格納される。アッパーマスクジ
ェネレータ301及びロワーマスクジェネレータ302
は、双方の論理回路アレイ100〜112,200〜2
12にマスクデータUM1〜UM4、LM1〜LM4を
出力する。選択デコーダ303はセレクタ301の選択
信号を生成し、選択デコーダ305は出力制御回路30
4の制御信号を生成する。この例では、前記アッパーマ
スクジェネレータ301、ロワーマスクジェネレータ3
02、選択デコーダ303及び選択デコーダ305は前
記デコーダ17の論理構成に含まれている。
PのためにOR演算及びAND演算を行う論理回路アレ
イ100〜112と、命令ANDORPのためにAND
演算及びOR演算を行う論理回路アレイ200〜212
とを別々に持ち、双方の論理回路アレイにはプレディケ
ートレジスタ12からアライナ300を介して同じデー
タが並列に供給され、何れか一方の論理回路アレイの出
力がセレクタ301で選択される。選択された演算結果
は出力制御回路304を介してプレディケートレジスタ
12の指定された位置に格納される。アッパーマスクジ
ェネレータ301及びロワーマスクジェネレータ302
は、双方の論理回路アレイ100〜112,200〜2
12にマスクデータUM1〜UM4、LM1〜LM4を
出力する。選択デコーダ303はセレクタ301の選択
信号を生成し、選択デコーダ305は出力制御回路30
4の制御信号を生成する。この例では、前記アッパーマ
スクジェネレータ301、ロワーマスクジェネレータ3
02、選択デコーダ303及び選択デコーダ305は前
記デコーダ17の論理構成に含まれている。
【0029】先ず、論理回路アレイ100〜112側の
構成を分岐条件生成命令「ORANDP P7 P1
2 1」を一例として説明する。
構成を分岐条件生成命令「ORANDP P7 P1
2 1」を一例として説明する。
【0030】前記アライナ300はPmで示されるプレ
ディケートレジスタビットを左端に位置させるように、
プレディケートレジスタ12の値を左シフトする。例え
ば、分岐条件生成命令「ORANDP P7 P1 2
1」において、Pm=P1であるから、アライナ30
0の出力は{P1,P2,P3,P4,P5,P6,P
7,0}とされる。
ディケートレジスタビットを左端に位置させるように、
プレディケートレジスタ12の値を左シフトする。例え
ば、分岐条件生成命令「ORANDP P7 P1 2
1」において、Pm=P1であるから、アライナ30
0の出力は{P1,P2,P3,P4,P5,P6,P
7,0}とされる。
【0031】アッパーマスクジェネレータ301は、夫
々8ビットのマスクデータUM1〜UM4を出力する。
マスクデータUM1〜UM4は、左端のビット位置から
順次Len_aで示される個数毎に論理値“1”を含む
データ列を有する。例えばLen_a=2の例では、U
M1={11100000}、UM2={000111
00}、UM3={00000011}、UM4={0
0000000}とされる。Len_a=1の場合に
は、UM1={11000000}、UM2={001
10000}、UM3={00001100}、UM4
={00000011}とされる。
々8ビットのマスクデータUM1〜UM4を出力する。
マスクデータUM1〜UM4は、左端のビット位置から
順次Len_aで示される個数毎に論理値“1”を含む
データ列を有する。例えばLen_a=2の例では、U
M1={11100000}、UM2={000111
00}、UM3={00000011}、UM4={0
0000000}とされる。Len_a=1の場合に
は、UM1={11000000}、UM2={001
10000}、UM3={00001100}、UM4
={00000011}とされる。
【0032】100〜103で示される回路は、夫々2
入力ANDゲートが8個配列されたAND回路列であ
り、夫々8ビットのアッパーマスクデータUM1〜UM
4とアライナ300の8ビット出力とを入力し、ビット
単位で2入力の論理積を採って8ビットを出力する。例
えば、AND回路列100に含まれる8個のAND回路
には8ビットのアッパーマスクデータUM1が下位側よ
り順次1ビットずつ入力されると共に、アライナ300
の8ビット出力が下位側より順次1ビットずつ入力さ
れ、夫々論理積を採る。したがって、Pm=P1、Le
n_a=2の場合、AND回路列100の出力は{P
1,P2,P3,0,0,0,0,0}とされ、AND
回路列101の出力は{0,0,0,P4,P5,P
6,0,0}とされ、AND回路列102の出力は
{0,0,0,0,0,0,P7,0}とされ、AND
回路列103の出力は全ビット論理値“0”にされる。
入力ANDゲートが8個配列されたAND回路列であ
り、夫々8ビットのアッパーマスクデータUM1〜UM
4とアライナ300の8ビット出力とを入力し、ビット
単位で2入力の論理積を採って8ビットを出力する。例
えば、AND回路列100に含まれる8個のAND回路
には8ビットのアッパーマスクデータUM1が下位側よ
り順次1ビットずつ入力されると共に、アライナ300
の8ビット出力が下位側より順次1ビットずつ入力さ
れ、夫々論理積を採る。したがって、Pm=P1、Le
n_a=2の場合、AND回路列100の出力は{P
1,P2,P3,0,0,0,0,0}とされ、AND
回路列101の出力は{0,0,0,P4,P5,P
6,0,0}とされ、AND回路列102の出力は
{0,0,0,0,0,0,P7,0}とされ、AND
回路列103の出力は全ビット論理値“0”にされる。
【0033】104〜107で示される回路は各AND
回路列100〜103の8ビット出力を8入力とするO
R回路である。したがって、上記Pm=P1、Len_
a=2の例において、場合、OR回路104の出力はP
1|P2|P3とされ、OR回路105の出力はP4|
P5|P6とされ、OR回路106の出力はP7とさ
れ、OR回路列107の出力は論理値“0”にされる。
回路列100〜103の8ビット出力を8入力とするO
R回路である。したがって、上記Pm=P1、Len_
a=2の例において、場合、OR回路104の出力はP
1|P2|P3とされ、OR回路105の出力はP4|
P5|P6とされ、OR回路106の出力はP7とさ
れ、OR回路列107の出力は論理値“0”にされる。
【0034】前記ロワーマスクジェネレータ302は、
夫々1ビットのマスクデータLM1〜LM4を出力す
る。マスクデータLM1〜LM4は、LM1より順次L
en_bで示される個数分だけ論理値“1”にされる信
号である。例えばLen_b=1の例では、LM1=
1、LM2=1、LM3=0、LM4=0とされる。L
en_a=0の場合には、LM1=1、LM2=0、L
M3=0、LM4=0とされる。
夫々1ビットのマスクデータLM1〜LM4を出力す
る。マスクデータLM1〜LM4は、LM1より順次L
en_bで示される個数分だけ論理値“1”にされる信
号である。例えばLen_b=1の例では、LM1=
1、LM2=1、LM3=0、LM4=0とされる。L
en_a=0の場合には、LM1=1、LM2=0、L
M3=0、LM4=0とされる。
【0035】108〜111で示される回路は8入力O
R回路104〜107の出力と前記マスクデータLM1
〜LM4の反転信号とを2入力として論理和を採る2入
力OR回路である。上記Pm=P1、Len_a=2、
Len_b=1の例において、OR回路108の出力は
OR回路104の出力に等しいP1|P2|P3とさ
れ、OR回路109の出力はOR回路105の出力に等
しいP4|P5|P6とされ、OR回路110、111
に出力は共に論理値“1”にされる。
R回路104〜107の出力と前記マスクデータLM1
〜LM4の反転信号とを2入力として論理和を採る2入
力OR回路である。上記Pm=P1、Len_a=2、
Len_b=1の例において、OR回路108の出力は
OR回路104の出力に等しいP1|P2|P3とさ
れ、OR回路109の出力はOR回路105の出力に等
しいP4|P5|P6とされ、OR回路110、111
に出力は共に論理値“1”にされる。
【0036】112で示される回路は2入力OR回路1
08〜111の出力に対して論理積を採る4入力AND
回路である。上記Pm=P1、Len_a=2、Len
_b=1の例では、4入力AND回路112の出力は、
(P1|P2|P3)&(P4|P5|P6)とされ
る。この値は、分岐条件生成命令「ORANDP P7
P1 2 1」を実行して得られる論理演算結果であ
る。選択デコーダ303はオペレーションコードがOR
ANDPであれば4入力AND回路112の出力を選択
し、選択デコーダ305はPd=P7であれば、これに
よって指定されるプレディケートレジスタビットP7に
前記セレクタ301の出力を入力させる。
08〜111の出力に対して論理積を採る4入力AND
回路である。上記Pm=P1、Len_a=2、Len
_b=1の例では、4入力AND回路112の出力は、
(P1|P2|P3)&(P4|P5|P6)とされ
る。この値は、分岐条件生成命令「ORANDP P7
P1 2 1」を実行して得られる論理演算結果であ
る。選択デコーダ303はオペレーションコードがOR
ANDPであれば4入力AND回路112の出力を選択
し、選択デコーダ305はPd=P7であれば、これに
よって指定されるプレディケートレジスタビットP7に
前記セレクタ301の出力を入力させる。
【0037】論理回路アレイ200〜212側の構成も
基本的な考え方は上記と同様であり、200〜203で
示される回路は、夫々2入力ORゲートが8個配列され
たOR回路列であり、夫々8ビットのアッパーマスクデ
ータUM1〜UM4の反転データとアライナ300の8
ビット出力とを入力し、ビット単位で2入力の論理和を
採って8ビットを出力する。204〜207で示される
回路は各OR回路列200〜203の8ビット出力を8
入力とするAND回路である。208〜211で示され
る回路は8入力AND回路204〜207の出力と前記
マスクデータLM1〜LM4とを2入力として論理積を
採る2入力AND回路である。212で示される回路は
2入力AND回路208〜211の出力に対して論理和
を採る4入力OR回路である。
基本的な考え方は上記と同様であり、200〜203で
示される回路は、夫々2入力ORゲートが8個配列され
たOR回路列であり、夫々8ビットのアッパーマスクデ
ータUM1〜UM4の反転データとアライナ300の8
ビット出力とを入力し、ビット単位で2入力の論理和を
採って8ビットを出力する。204〜207で示される
回路は各OR回路列200〜203の8ビット出力を8
入力とするAND回路である。208〜211で示され
る回路は8入力AND回路204〜207の出力と前記
マスクデータLM1〜LM4とを2入力として論理積を
採る2入力AND回路である。212で示される回路は
2入力AND回路208〜211の出力に対して論理和
を採る4入力OR回路である。
【0038】例えば分岐条件生成命令「ANDORP
P7 P1 2 1」を一例とすると、Pm=P1、L
en_a=2であるから、OR回路200の出力は{P
1,P2,P3,1,1,1,1,1}とされ、OR回
路列201の出力は{1,1,1,P4,P5,P6,
1,1}とされ、OR回路列202の出力は{1,1,
1,1,1,1,P7,1}とされ、OR回路列203
の出力は全ビット論理値“1”にされる。従って8入力
AND回路204〜207の出力は夫々P1&P2&P
3、P4&P5&P6、P7、1になる。Len_b=
1であるから、2入力AND回路208〜211の出力
は、P1&P2&P3、P4&P5&P6、0、0とな
る。結果として、4入力OR回路212の出力は、(P
1&P2&P3)|(P4&P5&P6)とされる。こ
の値は、分岐条件生成命令「ANDORP P7 P1
2 1」を実行して得られる論理演算結果である。選
択デコーダ303はオペレーションコードがANDOR
Pであれば4入力OR回路212の出力を選択し、選択
デコーダ305はPd=P7であれば、これによって指
定されるプレディケートレジスタビットP7に前記セレ
クタ301の出力を入力させる。
P7 P1 2 1」を一例とすると、Pm=P1、L
en_a=2であるから、OR回路200の出力は{P
1,P2,P3,1,1,1,1,1}とされ、OR回
路列201の出力は{1,1,1,P4,P5,P6,
1,1}とされ、OR回路列202の出力は{1,1,
1,1,1,1,P7,1}とされ、OR回路列203
の出力は全ビット論理値“1”にされる。従って8入力
AND回路204〜207の出力は夫々P1&P2&P
3、P4&P5&P6、P7、1になる。Len_b=
1であるから、2入力AND回路208〜211の出力
は、P1&P2&P3、P4&P5&P6、0、0とな
る。結果として、4入力OR回路212の出力は、(P
1&P2&P3)|(P4&P5&P6)とされる。こ
の値は、分岐条件生成命令「ANDORP P7 P1
2 1」を実行して得られる論理演算結果である。選
択デコーダ303はオペレーションコードがANDOR
Pであれば4入力OR回路212の出力を選択し、選択
デコーダ305はPd=P7であれば、これによって指
定されるプレディケートレジスタビットP7に前記セレ
クタ301の出力を入力させる。
【0039】上記マイクロプロセッサ1によれば、同じ
命令実行サイクル中で論理和と論理積とを行う複合論理
演算によって分岐条件を生成する分岐条件生成命令を命
令セットに有し、分岐条件生成命令に利用される複合論
理演算回路18は専用化され、更に、演算内容は論理積
や論理和などの単純なビット操作であって演算遅延は非
常に小さいから、CCR12の値を用いた複雑な演算に
よって分岐条件を生成する場合にも、当該条件の生成を
高速化できる。例えば、命令実行サイクルの1サイクル
で所要の分岐条件を生成できる。
命令実行サイクル中で論理和と論理積とを行う複合論理
演算によって分岐条件を生成する分岐条件生成命令を命
令セットに有し、分岐条件生成命令に利用される複合論
理演算回路18は専用化され、更に、演算内容は論理積
や論理和などの単純なビット操作であって演算遅延は非
常に小さいから、CCR12の値を用いた複雑な演算に
よって分岐条件を生成する場合にも、当該条件の生成を
高速化できる。例えば、命令実行サイクルの1サイクル
で所要の分岐条件を生成できる。
【0040】図1に例示されるように、外部データバス
23及び外部アドレスバス22を介してマイクロプロセ
ッサ1がアクセス可能なプログラムメモリ20とデータ
メモリ21などを有するデータ処理システムにおいて、
プログラムメモリ20には前記分岐条件生成命令を含む
命令が格納され、データメモリ21はマイクロプロセッ
サ1のデータの一時記憶領域として利用される。例えば
マイクロプロセッサ1はスーパースカラアーキテクチャ
を有する。命令並列度若しくは並列パイプライン本数が
多くなると、一般的に、分岐条件の生成がクリティカル
パスになる傾向を持ち、分岐のオーバーヘッドも相対的
に大きくなろうとする。このとき、マイクロプロセッサ
1は前記複合論理演算回路18を有し、これを用いて実
行される前記分岐条件生成命令を命令セットに有するか
ら、条件分岐命令を用いるデータ処理効率を向上させる
ことができ、スーパースカラアークテクチャー等のマイ
クロプロセッサ1を採用したデータ処理システムにおけ
るデータ処理効率を全体的に向上させることができる。
23及び外部アドレスバス22を介してマイクロプロセ
ッサ1がアクセス可能なプログラムメモリ20とデータ
メモリ21などを有するデータ処理システムにおいて、
プログラムメモリ20には前記分岐条件生成命令を含む
命令が格納され、データメモリ21はマイクロプロセッ
サ1のデータの一時記憶領域として利用される。例えば
マイクロプロセッサ1はスーパースカラアーキテクチャ
を有する。命令並列度若しくは並列パイプライン本数が
多くなると、一般的に、分岐条件の生成がクリティカル
パスになる傾向を持ち、分岐のオーバーヘッドも相対的
に大きくなろうとする。このとき、マイクロプロセッサ
1は前記複合論理演算回路18を有し、これを用いて実
行される前記分岐条件生成命令を命令セットに有するか
ら、条件分岐命令を用いるデータ処理効率を向上させる
ことができ、スーパースカラアークテクチャー等のマイ
クロプロセッサ1を採用したデータ処理システムにおけ
るデータ処理効率を全体的に向上させることができる。
【0041】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0042】例えば、プレディケートレジスタの本数又
はビット数は、命令フォーマットの許す限り増加させて
も、あるいは、減少させても構わない。また、マイクロ
プロセッサはスーパースカラアーキテクチャーに限定さ
れず、1本のパイプラインを有するものであってもよ
い。また、マイクロプロセッサの回路構成は図1に限定
されず、適宜変更可能である。例えばキャッシュメモリ
は命令とデータを混在させたユニファイドキャッシュメ
モリであってもよい。また、TLBを備えても良い。ま
た、キャッシュメモリ以外の内蔵データRAMを備えて
もよい。更に、その他適宜の周辺回路を内蔵して、所謂
シングルチップマイクロコンピュータ化してもよい。ま
た、プログラムメモリとデータメモリは統一された主記
憶であっても構わない。複合論理演算回路は図4に限定
されず適宜変更可能である。また、分岐条件生成命令の
命令フォーマットも上記に例に限定されず、変更可能で
ある。
はビット数は、命令フォーマットの許す限り増加させて
も、あるいは、減少させても構わない。また、マイクロ
プロセッサはスーパースカラアーキテクチャーに限定さ
れず、1本のパイプラインを有するものであってもよ
い。また、マイクロプロセッサの回路構成は図1に限定
されず、適宜変更可能である。例えばキャッシュメモリ
は命令とデータを混在させたユニファイドキャッシュメ
モリであってもよい。また、TLBを備えても良い。ま
た、キャッシュメモリ以外の内蔵データRAMを備えて
もよい。更に、その他適宜の周辺回路を内蔵して、所謂
シングルチップマイクロコンピュータ化してもよい。ま
た、プログラムメモリとデータメモリは統一された主記
憶であっても構わない。複合論理演算回路は図4に限定
されず適宜変更可能である。また、分岐条件生成命令の
命令フォーマットも上記に例に限定されず、変更可能で
ある。
【0043】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0044】すなわち、同じ命令実行サイクル中で複数
の第1論理演算と第2論理演算を行う複合論理演算によ
って分岐条件を生成する分岐条件生成命令を命令セット
に有し、分岐条件生成命令に利用される論理演算回路は
専用化され、更に、演算内容は論理積や論理和などの単
純なビット操作であって演算遅延は非常に小さいから、
プレディケートレジスタの値を用いた複雑な演算によっ
て分岐条件を生成する場合にも、当該条件の生成を高速
化できる。
の第1論理演算と第2論理演算を行う複合論理演算によ
って分岐条件を生成する分岐条件生成命令を命令セット
に有し、分岐条件生成命令に利用される論理演算回路は
専用化され、更に、演算内容は論理積や論理和などの単
純なビット操作であって演算遅延は非常に小さいから、
プレディケートレジスタの値を用いた複雑な演算によっ
て分岐条件を生成する場合にも、当該条件の生成を高速
化できる。
【0045】上記データ処理装置を用いたデータ処理シ
ステムにおいては、条件分岐を用いるデータ処理効率を
向上させることができる。
ステムにおいては、条件分岐を用いるデータ処理効率を
向上させることができる。
【図1】本発明の一例に係るマイクロプロセッサのブロ
ック図である。
ック図である。
【図2】分岐条件生成命令の説明図である。
【図3】分岐条件生成命令を用いる処理と分岐条件生成
命令を用いない処理とを対比して示す説明図である。
命令を用いない処理とを対比して示す説明図である。
【図4】複合論理演算回路の一例を示す論理回路図であ
る。
る。
1 マイクロプロセッサ 2 CPU 3 命令キャッシュメモリ 4 データキャッシュメモリ 5 バスステートコントローラ 10 汎用レジスタ 11 プログラムカウンタ 12 プレディケートレジスタ P0〜P7 プレディケートレジスタビット 13 命令レジスタ 16 演算回路 17 デコーダ 18 複合論理演算回路 20 プログラムメモリ 21 データメモリ
Claims (6)
- 【請求項1】 実行すべき命令がラッチされる命令レジ
スタと、前記命令レジスタにラッチされた命令をデコー
ドするデコーダと、前記デコーダから出力されるデコー
ド信号を利用して演算を行う演算手段と、前記演算手段
を利用して命令を実行した後の状態が反映されるプレデ
ィケートレジスタとを有し、 前記命令レジスタは前記プレディケートレジスタの複数
ビットを用いる複合論理演算によって分岐条件を生成す
る分岐条件生成命令をラッチ可能にされ、 前記デコーダは、前記分岐条件生成命令を解読し、前記
プレディケートレジスタの複数ビットを用いる複数の第
1論理演算とそれら第1論理演算結果を用いた第2論理
演算とを同じ命令実行サイクル中で実行させ、前記第2
論理演算の結果を前記プレディケートレジスタの所定ビ
ットに反映させるものであり、 前記分岐条件生成命令の実行に専用化された複合論理演
算回路を有して、成るものであることを特徴とするデー
タ処理装置。 - 【請求項2】 前記分岐条件生成命令は、前記第1論理
演算を論理積演算とし、第2論理演算を前記論理積演算
の結果に対する論理和演算とするものであることを特徴
とする請求項1記載のデータ処理装置。 - 【請求項3】 前記分岐条件生成命令は、前記第1論理
演算を論理和演算とし、第2論理演算を前記論理和演算
の結果に対する論理積演算とするものであることを特徴
とする請求項1記載のデータ処理装置。 - 【請求項4】 前記分岐条件生成命令は、オペレーショ
ンコードの指定フィールドと、前記第1論理演算に用い
る状態レジスタのビット位置を指定する第1情報の指定
フィールドと、第2論理演算に用いる第1論理演算結果
を指定する第2情報の指定フィールドとを有して成るも
のであることを特徴とする請求項2又は3記載のデータ
処理装置。 - 【請求項5】 1個の半導体チップに形成され、スーパ
ースカラアーキテクチャを有するマイクロプロセッサで
あることを特徴とする請求項4データ処理装置。 - 【請求項6】 請求項1乃至5の何れか1項に記載のデ
ータ処理装置と、前記データ処理装置が実行可能であっ
て前記分岐条件生成命令を含む命令を格納するプログラ
ム格納手段と、前記データ処理装置がデータの一時記憶
領域として利用するランダム・アクセス・メモリとを有し
て成るものであることを特徴とするデータ処理システ
ム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10250726A JP2000081973A (ja) | 1998-09-04 | 1998-09-04 | データ処理装置及びデータ処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10250726A JP2000081973A (ja) | 1998-09-04 | 1998-09-04 | データ処理装置及びデータ処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000081973A true JP2000081973A (ja) | 2000-03-21 |
Family
ID=17212143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10250726A Withdrawn JP2000081973A (ja) | 1998-09-04 | 1998-09-04 | データ処理装置及びデータ処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000081973A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101225075B1 (ko) * | 2008-03-11 | 2013-01-22 | 콸콤 인코포레이티드 | 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법 |
-
1998
- 1998-09-04 JP JP10250726A patent/JP2000081973A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101225075B1 (ko) * | 2008-03-11 | 2013-01-22 | 콸콤 인코포레이티드 | 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법 |
US8990543B2 (en) | 2008-03-11 | 2015-03-24 | Qualcomm Incorporated | System and method for generating and using predicates within a single instruction packet |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020169942A1 (en) | VLIW processor | |
US6839831B2 (en) | Data processing apparatus with register file bypass | |
US6754809B1 (en) | Data processing apparatus with indirect register file access | |
US8612726B2 (en) | Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type | |
JP2002512399A (ja) | 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ | |
US9513908B2 (en) | Streaming memory transpose operations | |
KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
JPH1124929A (ja) | 演算処理装置およびその方法 | |
KR20000076310A (ko) | 리스크 구조를 갖는 8 비트 마이크로콘트롤러 | |
US6343359B1 (en) | Result forwarding cache | |
US20230367598A1 (en) | Vector maximum and minimum with indexing | |
US20220365787A1 (en) | Event handling in pipeline execute stages | |
US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
US20060277425A1 (en) | System and method for power saving in pipelined microprocessors | |
JP3578883B2 (ja) | データ処理装置 | |
JPH05150979A (ja) | 即値オペランド拡張方式 | |
US6728741B2 (en) | Hardware assist for data block diagonal mirror image transformation | |
US6609191B1 (en) | Method and apparatus for speculative microinstruction pairing | |
US6889320B1 (en) | Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter | |
JP2538053B2 (ja) | 制御装置 | |
US5805490A (en) | Associative memory circuit and TLB circuit | |
JP2000081973A (ja) | データ処理装置及びデータ処理システム | |
US6988121B1 (en) | Efficient implementation of multiprecision arithmetic | |
US20030061468A1 (en) | Forwarding the results of operations to dependent instructions quickly | |
US20090063821A1 (en) | Processor apparatus including operation controller provided between decode stage and execute stage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |