JP3454393B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3454393B2
JP3454393B2 JP11276795A JP11276795A JP3454393B2 JP 3454393 B2 JP3454393 B2 JP 3454393B2 JP 11276795 A JP11276795 A JP 11276795A JP 11276795 A JP11276795 A JP 11276795A JP 3454393 B2 JP3454393 B2 JP 3454393B2
Authority
JP
Japan
Prior art keywords
condition
instruction
information
data processing
register
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 - Fee Related
Application number
JP11276795A
Other languages
English (en)
Other versions
JPH08305563A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11276795A priority Critical patent/JP3454393B2/ja
Publication of JPH08305563A publication Critical patent/JPH08305563A/ja
Application granted granted Critical
Publication of JP3454393B2 publication Critical patent/JP3454393B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、条件付き演算命令をサ
ポートするデータ処理装置に関し、特に、条件付き演算
命令の分岐条件指定フィールドに必要なビット数を低減
することによって、命令の種類やオペランドの自由度の
制限による性能低下および命令コード長の増大によるプ
ログラムを格納するメモリ容量の増加を抑えることが可
能なデータ処理装置に関する。
【0002】
【従来の技術】近年の高度に発展した情報処理社会にお
いては様々な分野でディジタル信号処理が行われてお
り、そのためのハードウエアとして、通常マイクロプロ
セッサやディジタルシグナルプロセッサ(DSP)と呼
ばれるシステムLSIが使われている。これらのシステ
ムLSIは、様々な用途に適用させるために、汎用の命
令セットを備えているのが普通である。様々な用途のう
ちには、一連の固定した命令の順序に従って実行するだ
けでよい単純な処理もあるが、成立する条件によって実
行すべき処理内容が異なってくるのが一般的である。そ
の場合には、まず所定の条件が成立するか否かを判定
し、その判定結果によって処理すべき命令を選択する必
要がある。そのため従来の一般的なシステムLSIは条
件分岐命令を備えている。図15に条件分岐命令による
分岐処理のフローチャート例を示す。
【0003】図15では、まず、ステップ150で所定
の算術演算1を実行し、次にステップ151で前ステッ
プ150による演算結果が正の数(0を含む)か否かを
判定する。その判定結果、負の数であった場合(NO)に
は直接ステップ153に移り動作3を実行するが、ステ
ップ151による判定結果が正の数(0を含む)の場合
(YES)にはステップ152で動作2を実行した後、ス
テップ153に移る。すなわち、図15の処理例ではス
テップ150での実行結果によって以降の処理手順が異
なっている。この処理をアセンブラ的なニモニックで表
現したプログラム例を図16に示す。
【0004】通常のシステムLSIでは、図15のよう
な条件によって処理手順が異なる処理を実現するため
に、条件分岐命令を用いる。すなわち、図16に示すよ
うに1行目の算術演算命令inst.1を実行することによ
り、その演算結果を求める(図15のステップ150に
相当)。この時、通常のシステムLSIでは同時にその
演算結果の性質を表すいくつかのコードを生成する。こ
れは通常にコンディション・コードと呼ばれており、例
えば、桁上がりや桁借りが生じたことを示すフラグ(キ
ャリー),結果が正か負かを示すフラグ(ネガティ
ブ),結果がプロセッサが表現できるデータの範囲を超
えたことを示すフラグ(オーバフロー),結果がゼロか
どうかを示すフラグ(ゼロ)などがその代表なコンディ
ション・コードのフラグ例である。
【0005】図16の2行目では、これらのコンディシ
ョン・コードのうち、演算結果が正か負かを示すフラグ
を用いた条件分岐命令が書かれており、もし負であれば
(ifN)ラベルL1のついている行に分岐する(図15の
ステップ151の判定;NOに相当)。すなわち,もし負
であれば3行目の命令は実行せずにスキップして4行目
(図15のステップ153に相当)に分岐する。もし条
件判定の結果、正(0を含む)であれば、2行目の条件
分岐命令は実行されず、3行目のinst.3を実行(図15
のステップ152に相当)してから4行目に移る。この
ようにして図15のフローチャートに示された処理が実
行できる。
【0006】ここで注目すべきことは、図15のような
処理を行う場合には必ず分岐動作が必要になることであ
る。分岐命令の役割は基本的にはプログラムの実行順序
を強制的に変更することであり、データ処理には直接に
は何ら寄与しない動作である。しかも処理性能を向上さ
せる極めて一般的な手法であるパイプライン制御(先行
制御)を行っているシステムLSIでは、このような分
岐命令によってプログラムの流れが乱されると、著しく
処理効率が低下する(オーバヘッドが増加する)。この
ような処理効率の低下を極力抑えるために、従来より様
々な手法が提案されている。一つの手段としては、この
条件分岐命令の実行によるオーバヘッドを低減しようと
するものがある。例えば条件が成立しても不成立でも同
じように処理できるように、あらかじめ両方の場合で次
に実行すべき命令をあらかじめプログラムメモリから読
み出して用意しておく手法などが知られている。しかし
この方法はプログラムのシーケンス制御が非常に複雑に
なるため、ハードウェア量が増大してしまうという問題
がある。
【0007】このようなハードウェアの増大を抑えて処
理性能を向上させる別の手段としてADSP-2100 User's M
anual p4-4〜4-15に開示されているように、様々な命令
に分岐命令と同様な条件を付加し、指定された条件が成
立した時のみ実行し、不成立の場合は指定された動作を
実行せずにそのまま次のステップに移るようにしたもの
が知られている。この手法を用いて図15の処理をアセ
ンブラ的なニモニックで表現したプログラム例を図17
に示す。すなわち、図15のステップ152はステップ
150の結果が正の時のみ実行するのであるから、図1
7の2行目(if P inst.2)に示されているように、1
行目の演算結果として生成されるコンディション・コー
ドのうちの正(0を含む)か負かを示すフラグが正(0
を含む)を示している時のみ、inst.2を実行するような
命令を備えることにより、分岐命令をプログラムから排
除することができる。この2行目の命令は条件の成立/
不成立に関わらず、プログラム実行のパイプラインは全
く乱れないので、複雑な制御回路を増加することなしに
処理性能の向上を図ることができる。
【0008】
【発明が解決しようとする課題】しかしながら、上記の
条件付き演算実行命令の手法では、複雑なパイプライン
制御用のハードウェアは不要になるものの、様々な命令
のコードに条件指定フィールドを設けなければならない
ため、限られた命令コードのうちの何ビットかがそのた
めに使われてしまい、サポートする命令全体の種類やオ
ペランドの自由度が狭くなり、プロセッサとしての性能
が低下してしまうという問題がある。例えば、前述した
ような桁上がりや桁借りが生じたことを示すフラグ(キ
ャリー),結果が正(0を含む)か負かを示すフラグ
(ネガティブ),結果がプロセッサが表現できるデータ
の範囲を超えたことを示すフラグ(オーバフロー),結
果がゼロかどうかを示すフラグ(ゼロ)の4種類のコン
ディションの真/偽を実行の条件として指定できるよう
にする場合、合計8種類の条件から選択することになる
ので、図18に示すように命令コード90毎に少なくと
も3ビットの条件指定フィールド91を確保する必要が
ある。3ビットの条件指定フィールド91の具体例を9
2に示してある。プロセッサとしての性能の低下を回避
するために、この3ビットの条件指定フィールド91を
従来の命令コード長に新たに追加させると、今度はプロ
グラム全体を格納するメモリ容量が増加してしまうとい
う別の問題が生じてしまう。
【0009】一般的にいって、上述したような条件付き
で演算を実行すべきプログラムモジュールはそれほど頻
繁には現れてくることはないが、例えば、ディジタル信
号処理の場合には一定の処理ルーチンを繰り返し実行す
ることが多く、処理ルーチン内に1行あるだけでもそれ
を何回も繰り返し実行するため条件付き演算命令の処理
上の性能向上の効果が大きくなる。その上、所定の処理
ルーチンを繰り返し実行する際には指定されている条件
はずっと同一である。本発明は、この事情を鑑みてなさ
れたものであり、その目的とするところは、上述した如
き問題点を解決し、命令の種類やオペランドの自由度の
制限による性能低下、および命令コード長の増大に伴う
プログラムメモリ容量の増加などの問題を発生すること
なく処理効率の向上を図ることができる条件付き演算命
令をサポートするデータ処理装置を提供することにあ
る。
【0010】
【課題を解決するための手段】本発明は、上記目的を達
成するために、データ処理を実行する演算回路(図1の
105(ALU))と、該データ処理に必要なソースデ
ータを供給する手段(同レジスタ・ファイル102)
と、演算結果を格納する演算結果格納手段(レジスタ・
ファイル102)と、指定された条件が成立している時
のみ演算を実行する条件付き演算命令を実行する制御手
段(制御信号生成回路106)とを少なくとも具備する
データ処理装置において、該条件付き演算命令に使われ
るべき複数の条件から、少なくとも1つの条件を選択す
る条件選択手段(例えば図4の1行目)と、該条件選択
手段(例えば図4の1行目)で選択された条件情報を保
持する条件情報保持手段(コンディション・セレクト・
レジスタ103(CSR))と、少なくとも前記選択さ
れた条件に基づいて演算結果の性質を表す情報を保持す
る手段(コンディション・コード・レジスタ104(C
CR))をさらに具備し、該条件付き演算命令は該選択
された条件のうちのひとつを指定して条件が成立してい
るときのみ、所要の演算処理を実行する機能を有するこ
とを特徴としている。
【0011】また、前記演算結果の性質を表す情報を保
持する保持手段(コンディション・コード・レジスタ1
04(CCR))は、前記選択された条件に基づいて演
算結果の性質を表す情報(図2の104d(DC))以
外に恒常的に演算結果の性質を表す情報(図2の104
a(N),104b(Z),104c(V)など)を同
時に保持する手段を持つことを特徴としている。また、
前記条件選択手段(例えば図4の1行目)は、恒常的に
演算結果の性質を表す複数の情報の中からひとつを選択
することを特徴としている。
【0012】さらに、前記条件付き演算命令(図5)
は、命令コード中に条件を指定するフィールド(51)
を持ち、該条件を指定するフィールド(51)は、無条
件で実行する選択肢(52の「0」)と、前記選択され
た条件情報を保持する手段で保持されている条件が真の
場合のみ所要の演算処理を実行する選択肢(52の
「1」)を少なくとも持つことを特徴としている。ま
た、前記条件付き演算命令(図10)は、命令コード中
に条件を指定するフィールド(81)を持ち、該条件を
指定するフィールド(81)は、無条件で実行する選択
肢(82の「00」)と、前記選択された条件情報を保
持する手段で保持されている条件が「真」の場合に所要
の演算処理を実行する選択肢(82の「01」)と、
「偽」の場合に所要の演算処理を実行する選択肢(82
の「10」)とを少なくとも持つことを特徴としてい
る。また、前記選択された条件情報を保持する手段(図
14の103a(CS0),103b(CS1),10
3c(CS2))は、前記演算結果の性質を表す情報を
保持する手段(図14の104a(N),104b
(Z),104c(V)と同一のレジスタ(1500
(CR))で構成されていることを特徴としている。
【0013】
【作用】本発明の構成において、条件選択手段(例えば
図4の1行目)は選択すべき条件を規定するコード(条
件情報)を条件情報保持手段(コンディション・セレク
ト・レジスタ103(CSR))に書き込み、以後新た
に別の条件情報によって該条件情報が書き換えられる
か、またはリセット処理動作などによって初期化される
まで、その条件情報を保持しておく。また、条件付き実
行命令用の演算結果の性質を表す情報を保持する保持手
段(図2の104d)は、コンディション・コードを更
新すべき命令が実行される度に条件情報保持手段(コン
ディション・セレクト・レジスタ103(CSR))に
保持されている情報に基づいてその内容が更新される。
一方、各演算命令は、図5に示すように、無条件で実行
するか条件付きで実行するかを選択するビットを持ち、
条件つきで実行させる選択肢(図5の52)を持ってお
り、条件付きで演算命令が実行されると、プロセッサは
該条件付き実行命令用の演算結果の性質を表す情報を保
持する保持手段(コンディション・コード・レジスタ1
04(CCR))の内容をチェックしてその演算を実行
すべきかどうかを判定する。
【0014】または、各演算命令は、図10に示すよう
に、無条件で実行する選択肢(82の「00」)と、前
記選択された条件情報を保持する手段で保持されている
条件が「真」の場合に所要の演算処理を実行する選択肢
(82の「01」)と、「偽」の場合に所要の演算処理
を実行する選択肢(82の「10」)とを持っており、
条件付きで演算命令が実行されると、プロセッサは該条
件付き実行命令用の演算結果の性質を表す情報を保持す
る保持手段(コンディション・コード・レジスタ104
(CCR))の内容をチェックして所要の演算処理を実
行するか否かを判定する。この結果、各演算命令に、無
条件か条件付きで実行するかを選択するビット、また
は、各演算命令に、無条件か,条件情報保持手段に保持
されている条件が「真」の時に実行するか,「偽」の時
に実行するかを選択する少数のビットを付加するだけで
済み、各演算命令毎に全ての種類の条件を指定する長い
フィールドを設ける必要がなくなり、命令の種類やオペ
ランドの自由度の制限による性能低下を防止し、かつプ
ログラムメモリの小容量化が可能になる。
【0015】
【実施例】図1は本発明の第1の実施例を説明するため
の構成図である。同図において、100は本発明を適用
した情報処理装置の演算実行回路、101はデータを格
納しているメモリ、102は演算に必要なソースデータ
や演算結果を格納するレジスタファイル、103は条件
付き演算命令に使用するために選択されたコンディショ
ン・コード情報を保持するコンディション・セレクト・
レジスタ(CSR)、104は演算結果のコンディショ
ン・コードおよび条件付き実行命令用のコンディション
・コードを保持するコンディション・コード・レジスタ
(CCR)、105は様々な算術演算や論理演算を実行
する算術論理演算器(ALU)、106は演算実行に必
要な制御信号を生成する制御信号生成回路である。
【0016】また、107は制御信号生成回路106か
ら送られるメモリ101の読み出し,書き込みを制御す
る制御信号、108は制御信号生成回路106から送ら
れるコンディション・セレクト・レジスタ103(CS
R)の読み出し,書き込みを制御する制御信号、109
は制御信号生成回路106から送られるレジスタ・ファ
イル内の各レジスタ毎の、データバス121あるいは算
術論理演算器105とのデータの入出力を制御する信号
群、110は制御信号生成回路106から送られる算術
論理演算器105で実行する演算を選択して実行させる
ための制御信号群、111はメモリ101とデータバス
121とを接続しているデータパス、112はレジスタ
・ファイル102とデータバス121とを接続している
データパス、113,114はレジスタ・ファイル10
2から算術論理演算器105へ供給されるソース・デー
タ、115は算術論理演算器105で実行された演算結
果をレジスタ・ファイル102へ書き込むべきデスティ
ネーション・データ、116は算術論理演算器105で
実行された演算結果のコンディション・コードをコンデ
ィション・コード・レジスタ104(CCR)に反映さ
せるのに必要なデータ信号群である。
【0017】さらに、117はコンディション・セレク
ト・レジスタ103(CSR)とデータバス121とを
接続しているデータパス、118はコンディション・セ
レクト・レジスタ103(CSR)に保持された選択さ
れたコンディション・コード情報をコンディション・コ
ード・レジスタ104(CCR)に伝える選択情報信
号、119は条件付き演算命令や通常の条件分岐命令の
実行制御のために、コンディション・コード・レジスタ
104(CCR)の保持情報を制御信号生成回路106
に伝えるための信号、120はコンディション・コード
・レジスタ104(CCR)とデータバス121とを接
続しているデータパス、121はデータバス、122は
コンディション・コード・レジスタ104(CCR)の
読み出し,書き込みを制御する信号である。なお、上記
の信号は単数または複数の信号を意味し、混乱しない限
りにおいて信号と信号線を同一の符号で呼ぶことがあ
る。また本来の情報処理装置に当然含まれる他の要素回
路、すなわちメモリ101に供給するアドレスおよびア
ドレス発生回路、命令のデコード回路やフロー制御回路
などは本発明とは直接関係がないのでここでは省略して
いる。
【0018】次に、通常の基本的な演算命令の実行手順
を説明する。演算命令が実行されると、まず制御信号生
成回路106は制御信号109を通じて演算に必要なソ
ース・データをレジスタ・ファイル102から113お
よび114に出力させる。情報処理装置が備える命令に
よっては、演算に必要なソース・データをメモリから供
給するように指定する場合もあるが、本発明にはソース
・データの出力元がどこであるかは無関係なので、以下
の説明ではソース・データをレジスタ・ファイル102
から供給するものと仮定する。レジスタ・ファイル10
2からソース・データを受け取った算術論理演算器10
5は、制御信号110によって指定された演算を実行
し、その演算結果をデスティネーション・データ115
として出力し、信号群109で指定されたレジスタ・フ
ァイル位置(デスティネーション・レジスタ)に入力す
る。この時、同時に演算結果のコンディション・コード
情報をデータ信号群116を通じてコンディション・コ
ード・レジスタ104(CCR)に送る。
【0019】図2にコンディション・セレクト・レジス
タ103(CSR)およびコンディション・コード・レ
ジスタ104(CCR)、およびその周辺部分の詳細な
構成例を示す。図2中、103a(CS0),103b
(CS1),103c(CS2)はコンディション・セ
レクト・レジスタ103(CSR)を構成するフラグビ
ット、200は上記各フラグビットの情報をデコードし
て条件付き演算命令で指定する条件をコンディション・
コード・レジスタ104(CCR)に送る選択情報信号
118を生成する回路(デコーダ)、104aは演算結
果が正か負かを示すフラグ(N),104bは演算結果
がゼロかどうかを示すフラグ(Z),104cは演算結
果がプロセッサが表現できるデータの範囲を超えたこと
を示すフラグ(V),104dは条件付き実行命令用の
コンディション・コードを保持するフラグ(DC)であ
る。
【0020】また、116a,116b,116c,1
16dは算術論理演算回路105から送られてくる演算
結果のコンディション・コードをコンディション・コー
ド・レジスタ104(CCR)に反映させるのに必要な
個別のデータ信号群、201はデータ信号群116a,
116b,116c,116dおよびコンディション・
セレクト・レジスタ103(CSR)から送られてきた
選択情報信号118を用いてフラグ104dに入力すべ
き状態信号202を生成する条件生成/選択回路であ
る。なお、ここでは条件付き実行命令用のコンディショ
ン・コードを保持するフラグ104d以外の通常のコン
ディション・コードフラグとして3種類のフラグを例示
しているが、この部分の種類およびその数については、
特定の数に制限するものではなく、さらに不要とあれ
ば、全くなくてもよいことは明らかである。また、状態
信号202を生成するための信号116の数が、個別に
反映するコンディション・コードフラグの数と異なって
いてもよいことも明らかである。
【0021】次に、前述した図15のフローチャートの
処理手順を本発明によるアセンブラ的なニモニックで表
現したプログラム例を図4に示す。条件付き演算命令を
実行するにあたっては、図4の1行目(SET CSR[2:0]
=101)に書かれているように、まずコンディション・セ
レクト・レジスタ103(CSR)に選択すべき条件を
規定する情報を設定する(条件選択手段)。ここでは、
コンディション・セレクト・レジスタ103(CSR)
の第2ビット,第1ビット,第0ビットがそれぞれ1,
0,1、すなわち、結果が正数(0を含む)であること
を条件としている。前述の条件付き実行命令用のコンデ
ィション・コードを保持する手段にどんなコンディショ
ンを反映させるかを予め選択する命令として、コンディ
ション・セレクト・レジスタ103(CSR)内の各ビ
ットにデータを直接セットする特別の命令を新しく設け
ている。具体的な動作としては、新しいセット命令から
デコードされた選択情報をコンディション・セレクト・
レジスタ103(CSR)の各ビット103a,103
b,103cに対応してコード化し、それをデータバス
に出力して制御信号108をイネーブルにして書き込む
方法が考えられる。
【0022】しかしコンディション・セレクト・レジス
タ103(CSR)に選択すべき条件を規定する情報を
設定する方法は、上述したように特に新しいセット命令
を追加しなくても、レジスタ・ファイル102またはメ
モリ101に格納されているデータをデータ転送命令に
よって送り込む方法でも実現できる。またここではコン
ディション・セレクト・レジスタ103(CSR)を構
成するフラグビットは3ビットで示しているが、ビット
数は情報処理装置が条件付き演算命令に必要としている
条件の種類を全て区別できればいくらでも構わない。こ
こでは例として8種類の条件のうちから1つを選択する
コンディション・セレクト・レジスタ103(CSR)
を構成する各ビットの定義例を図3に示してある。この
定義例では、結果が0でないときは000,結果が0の
ときは001,結果がオーバフローしたときは010,
結果がオーバフローしていないときは011,結果が負
数のときは100,結果が正数(0を含む)のときは1
01,キャリーが生成されたときは110,キャリーが
生成されなかったときは111としている。
【0023】コンディション・セレクト・レジスタ10
3(CSR)の各ビット103a(CS0),103b
(CS1),103c(CS2)に書き込まれた情報
は、以後新たに別の情報によって書き換えられるか、ま
たはリセット処理動作などによって初期化されるまで保
持され続ける。コンディション・セレクト・レジスタ1
03(CSR)の各ビット103a,103b,103
cに選択すべき条件を規定する情報が設定されると、そ
の情報をデコーダ200で選択されたコンディション・
コード情報をコンディション・コード・レジスタ104
(CCR)に伝える選択情報信号118に変換する。こ
の変換過程は必ずしも必要という訳ではなく、103
a,103b,103cに保持されている状態をそのま
ま選択情報信号118として出力しても構わない。しか
しその場合は、コンディション・コード・レジスタ10
4(CCR)内のビット104dに格納する状態信号2
02を生成する全ての処理を条件生成/選択回路201
で行うことになる。
【0024】コンディション・セレクト・レジスタ10
3(CSR)の各ビット103a,103b,103c
に選択すべき条件を規定する情報が設定された後、コン
ディション・コード・レジスタ104(CCR)内のビ
ット104dは、コンディション・コードが更新される
可能性のある演算命令が実行される度にコンディション
・セレクト・レジスタ103(CSR)に保持されてい
る情報に基づいてその内容が更新される。すなわち、図
4の2行目に書かれているように、コンディション・コ
ードが更新される可能性のある演算命令(inst.1)が算
術論理演算器105で実行されると、コンディション・
コード・レジスタ104(CCR)内の条件生成/選択
回路201は、算術論理演算回路105から送られてき
た様々な演算結果のコンディション・コード情報116
と、コンディション・セレクト・レジスタ103(CS
R)からの選択情報信号118によってフラグ104d
に入力すべき状態信号202を生成する。
【0025】図15の処理手順では次に演算結果が正数
(0を含む)であるかどうかを条件とした演算命令が必
要であるので、図3に示された正数条件コード「10
1」が各ビット103a,103b,103cに保持さ
れており、条件生成/選択回路201は演算結果のコン
ディション・コード情報116のうちの信号116aの
反転情報を状態信号202として出力する。すなわちネ
ガティブ信号116aが「偽」のとき、状態信号202
は「真」状態を出力する。状態信号202はそのままフ
ラグ104dに入力される。コンディション・コード・
レジスタ104(CCR)内の他のフラグ104a,1
04b,104cにはそれぞれ信号116a,116
b,116cが入力される。続いて、図4の3行目の条
件付き演算命令(if P inst.2)が実行されると、前述
したように2行目の演算命令の演算結果が正数(0を含
む)かどうかが既にフラグ104dに保持されているの
で、フラグ104dが「真」状態ならば指定された演算
を実行し、「偽」状態ならば実行しないでそのまま次の
4行目の命令(inst.3)の実行に移る。
【0026】図5に本発明における条件付き演算命令の
一例を示す。同図において、50は命令コード、51は
条件指定フィールド、52は条件指定フィールドの具体
的なコード定義例を示している。ここでは、命令コード
中に条件を指定する条件指定フィールドとして1ビット
設け、該1ビットの条件指定フィールドの値によって該
命令を無条件に実行するのか(0の場合)、条件付きで
実行するのか(1の場合)を指定した例である。条件付
きで実行するとは、選択された条件情報を保持する手段
(条件情報保持手段:コンディション・セレクト・レジ
スタ103(CSR))に保持されている条件が真の場
合にのみ所要の演算処理を実行することを意味してい
る。
【0027】図15では、与えられた条件が「真」の時
のみ追加的な処理を実行し、「偽」の時は追加処理を行
わないフローを示しているが、図6に示すように「偽」
の時も別の処理がある場合が考えられる。図6の処理手
順をアセンブラ的なニモニックで表現したプログラム例
を図7に示す。図6において、まずステップ60で算術
演算1を実行し(図7の1行目)、ステップ61でその
演算結果を判定し、演算結果が正数(0を含む)であれ
ば(すなわち負数でなければ)ステップ62で動作2a
を実行し(図7の3行目)、演算結果が正数(0を含
む)でなければ(すなわち負数であれば)ステップ63
でステップ62とは異なる動作2bを実行し(図7の5
行目)、ステップ62またはステップ63を実行した後
にステップ64において動作3を実行する(図7の6行
目)。図7のプログラム例では与えられた条件の真/偽
に関わらず、必ず1回は分岐命令を実行することにな
る。
【0028】このような例についても、本発明を適用す
ることが可能である。本発明による図6の処理手順をア
センブラ的なニモニックで表現したプログラム例を図8
に示す。図8のプログラム例によると、その2行目(if
P inst.2a)および3行目(if N inst.2b)に示されて
いるように分岐命令を用いず条件付き演算命令を用いて
いる。ここで注意すべきことは、図8の2行目の条件付
き演算命令(if P inst.2a)が条件が「真」で実行され
た時、演算結果によってレジスタ104(CCR)のコ
ンディション・コードを更新しないようにすることであ
る。この制御は非常に容易であり、例えば条件付き演算
命令が実行された時は制御信号122をディセーブル状
態にしておくことにより、コンディション・コードの更
新が行なわれないようにすることができる。このような
制御は、前述した図15のような処理において同様に行
なっても全く問題ないので、無条件演算実行時はコンデ
ィション・コードを更新することとし、条件付き演算実
行時は条件の成立/不成立に関わらずコンディション・
コードを更新しないことにすれば、図15および図6の
双方の処理を本発明を用いて同一のプロセッサで実現で
きる。
【0029】図9は、条件付き演算命令の他の例であ
り、複数の条件を設定するとともに、命令中に条件を指
定する条件指定フィールド71を設けたものである。こ
の条件指定フィールドの値で指定する所定の条件が
「真」のときに対応する所要の演算を行うようにしたも
のである。条件指定フィールド71のコード定義例とし
ては、例えば、図9の72に示すように、無条件で実行
する選択肢(72の「00」)と、前記選択された条件
情報を保持する手段で保持されている条件1が「真」の
場合に所要の演算処理を実行する選択肢(72の「0
1」)と、前記選択された条件情報を保持する手段で保
持されている条件2が「真」の場合に所要の演算処理を
実行する選択肢(72の「10」)と、前記選択された
条件情報を保持する手段で保持されている条件3が
「真」の場合に所要の演算処理を実行する選択肢(72
の「11」)とを有している。
【0030】また、図10は、条件付き演算命令の別の
例である。この条件付き演算命令は命令中に条件を指定
する条件指定フィールド81を持っている。条件指定フ
ィールド81のコード定義例としては、例えば、同図8
2に示すように、無条件で実行する選択肢(82の「0
0」)と、前記選択された条件情報を保持する手段で保
持されている条件1が「真」の場合に所要の演算処理を
実行する選択肢(82の「01」)と、保持されている
条件1が「偽」の場合に所要の演算処理を実行する選択
肢(82の「10」)とを有している。
【0031】本発明の実施例は他にも様々な形式が考え
られる。例えば図2の別の実施例として図11に示すよ
うに、図2の条件生成/選択回路201をセレクタ11
00で構成し、算術論理演算回路105から送られてく
る信号群116の中の1つを該セレクタ1100で選択
して信号202として出力し、フラグ104dに入力さ
せてもよい。この場合、コンディション・セレクト・レ
ジスタ103(CSR)のコード定義例としては、図1
2に示すように信号群116のどれを選ぶかを指定する
ようにすればよい。図12の定義例では、ゼロ判定信号
選択のときは00,オーバフロー判定信号選択のときは
01,正負判定信号選択のときは10,キャリー発生判
定信号選択のときは11である。図11の実施例では、
コンディション・セレクト・レジスタ103(CSR)
は2ビットのレジスタになっているが、ビット数につい
てはこの実施例では特に2ビットでなければならないと
いう訳ではなく、例えばより多くのコンディションから
選びたい場合にはもっとビット数を増やして構わないこ
とは明白である。
【0032】コンディション・セレクト・レジスタ10
3(CSR)やコンディション・コード・レジスタ10
4(CCR)の構成方法についても様々な方法が考えら
れる。図13および図14は、両者を単一のレジスタで
構成した一実施例である。図13中、1500は図1の
コンディション・セレクト・レジスタ103(CSR)
とコンディション・コード・レジスタ104(CCR)
を合体させたコントロール・レジスタCRであり、15
01はコントロール・レジスタ1500とデータバス1
21とを接続しているデータパス、1502はコントロ
ール・レジスタ1500と制御信号生成回路106とを
接続しているデータパスである。残りは図1および図2
と同一である。この実施例は、コンディション・セレク
ト用のビットとコンディション・コードのビットが同一
のレジスタ内でビット位置が異なる以外、具体的な動作
は先述の第一の実施例と同様である。
【0033】以上の実施例では、コンディション・セレ
クト・レジスタ103(CSR)、コンディション・コ
ード・レジスタ104(CCR)、コントロール・レジ
スタ1500(CR)はすべて通常のレジスタであるこ
とを前提として述べてきたが、例えばメモリマップ上に
マッピングされたレジスタであってもよいことは明らか
である。
【0034】
【発明の効果】以上述べたように、本発明によれば、通
常のコンディション・コード・フラグ以外に条件付き実
行命令用のコンディション・コードを保持する手段を設
け、該条件付き実行命令用のコンディション・コードを
保持する手段にどんなコンディションを反映させるかを
予め選択する命令およびその選択情報を保持する手段を
設けることにより、命令の種類やオペランドの自由度の
制限による性能低下、または命令コード長の増大による
プログラムメモリ容量増加などの問題発生することなく
処理効率の向上を図ることができる条件付き演算命令を
サポートすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例である。
【図2】本発明の第1の実施例の部分的な詳細ブロック
図である。
【図3】コンディション・セレクト・レジスタの各ビッ
トの定義例である。
【図4】本発明を用いて図15の処理内容をアセンブラ
的なニモニックで表現したプログラム例である。
【図5】1ビットの条件指定フィールドを持つ命令コー
ド例である。
【図6】条件付き実行動作を含む第2のフローチャート
図である。
【図7】図6の処理内容をアセンブラ的なニモニックで
表現したプログラム例である。
【図8】本発明を用いて図6の処理内容をアセンブラ的
なニモニックで表現したプログラム例である。
【図9】2ビットの条件指定フィールドを持つ命令コー
ド例である。
【図10】2ビットの条件指定フィールドを持つ第2の
命令コード例である。
【図11】本発明の図1の実施例の別な部分的な詳細ブ
ロック図である。
【図12】コンディション・セレクト・レジスタの各ビ
ットの第2の定義例である。
【図13】本発明の第2の実施例を示す図である。
【図14】本発明の第2の実施例の部分的な詳細ブロッ
ク図である。
【図15】条件付き実行動作を含むフローチャート例で
ある。
【図16】図15の処理内容をアセンブラ的なニモニッ
クで表現したプログラム例である。
【図17】図15の処理内容をアセンブラ的なニモニッ
クで表現した別のプログラム例である。
【図18】3ビットの条件指定フィールドを持つ命令コ
ード例である。
【符号の説明】
100:本発明を適用した情報処理装置の演算実行回路 101:データを格納しているメモリ 102:演算に必要なソースデータや演算結果を格納す
るレジスタファイル 103:条件付き演算命令に使用するために選択された
コンディション・コード情報を保持するコンディション
・セレクト・レジスタ(CSR) 104:演算結果のコンディション・コードおよび条件
付き実行命令用のコンディション・コードを保持するコ
ンディション・コード・レジスタ(CCR) 105:様々な算術演算や論理演算を実行する演算器
(ALU) 106:演算実行に必要な制御信号を生成する制御信号
生成回路 107:メモリ101の読み出し,書き込みを制御する
信号 108:コンディション・セレクト・レジスタ103
(CSR)の読み出し,書き込みを制御する信号 109:レジスタ・ファイル内の各レジスタ毎のデータ
バス121あるいは算術論理演算器105とのデータの
入出力を制御する信号群 110:算術論理演算器105で実行する演算を選択
し,実行させるための制御信号群 111:メモリ101とデータバス121とを接続して
いるデータパス 112:レジスタ・ファイル102とデータバス121
とを接続しているデータパス 113,114:レジスタ・ファイル102から算術論
理演算器105へ供給されるソース・データ 115:算術論理演算器105で実行された演算結果を
レジスタ・ファイル102へ書き込むべきデスティネー
ション・データ 116:算術論理演算器105で実行された演算結果の
コンディション・コードをコンディション・コード・レ
ジスタ104(CCR)に反映させるのに必要なデータ
信号群 117:コンディション・セレクト・レジスタ103
(CSR)とデータバス121とを接続しているデータ
パス 118:コンディション・セレクト・レジスタ103
(CSR)に保持された選択されたコンディション・コ
ード情報をコンディション・コード・レジスタ104
(CCR)に伝える信号 119:条件付き演算命令や通常の条件分岐命令の実行
制御のために、コンディション・コード・レジスタ10
4(CCR)の保持情報を制御信号生成回路106に伝
えるための信号 120:コンディション・コード・レジスタ104(C
CR)とデータバス121とを接続しているデータパス 121:データバス 122:コンディション・コード・レジスタ104(C
CR)の読み出し,書き込みを制御する信号 103a,103b,103c:コンディション・セレ
クト・レジスタ103を構成するフラグビット 104a:演算結果が正か負かを示すフラグ(N) 104b:演算結果がゼロかどうかを示すフラグ(Z) 104c:演算結果がプロセッサが表現できるデータの
範囲を超えたことを示すフラグ(V) 104d:条件付き実行命令用のコンディション・コー
ドを保持するフラグ 116a,116b,116c,116d:算術論理演
算回路105から送られてくる演算結果のコンディショ
ン・コードをコンディション・コード・レジスタ104
(CCR)に反映させるのに必要な個別のデータ信号 200:各フラグビットの情報をデコードして条件付き
演算命令で指定する条件をコンディション・コード・レ
ジスタ104(CCR)に送る選択情報信号118を生
成する回路 201:データ信号群116a,116b,116c,
116dおよびコンディション・セレクト・レジスタ1
03(CSR)から送られてきた選択情報信号118を
用いてフラグ104dに入力すべき状態信号202を生
成する条件生成/選択回路 1500:コンディション・セレクト・ビット,演算結
果のコンディション・コードおよび条件付き実行命令用
のコンディション・コードを保持するコントロール・レ
ジスタ(CR) 1501:コントロール・レジスタ1500とデータバ
ス121とを接続しているデータパス 1502:コントロール・レジスタ1500の読み出
し,書き込みを制御する信号
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/36 G06F 9/40 - 9/42

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ処理を実行する演算回路と、該デ
    ータ処理に必要なソースデータを供給する手段と、演算
    結果を格納する演算結果格納手段と、指定された条件が
    成立している時のみ演算を実行する条件付き演算命令を
    実行する制御手段とを少なくとも具備するデータ処理装
    置において、該条件付き演算命令に使われるべき複数の
    条件から少なくとも1つの条件を選択する条件選択手段
    と、該条件選択手段で選択された条件情報を保持する条
    件情報保持手段と、少なくとも該選択された条件に基づ
    いて演算結果の性質を表す情報を保持する手段をさらに
    具備し、該条件付き演算命令は該選択された条件のうち
    のひとつを指定して条件が成立しているときのみ、所要
    の演算処理を実行する機能を有することを特徴とするデ
    ータ処理装置。
  2. 【請求項2】 前記演算結果の性質を表す情報を保持す
    る保持手段は、前記選択された条件に基づいて演算結果
    の性質を表す情報以外に恒常的に演算結果の性質を表す
    情報を同時に保持する手段を持つことを特徴とする請求
    項1記載のデータ処理装置。
  3. 【請求項3】 前記条件選択手段は、恒常的に演算結果
    の性質を表す複数の情報の中からひとつを選択すること
    を特徴とする請求項1記載のデータ処理装置。
  4. 【請求項4】 前記条件付き演算命令は、命令コード中
    に条件を指定するフィールドを持ち、該条件を指定する
    フィールドは、無条件で実行する選択肢と、前記選択さ
    れた条件情報を保持する手段で保持されている条件が真
    の場合のみ所要の演算処理を実行する選択肢を少なくと
    も持つことを特徴とする請求項1記載のデータ処理装
    置。
  5. 【請求項5】 前記条件付き演算命令は、命令コード中
    に条件を指定するフィールドを持ち、該条件を指定する
    フィールドは、無条件で実行する選択肢と、前記選択さ
    れた条件情報を保持する手段で保持されている条件が
    「真」の場合に所要の演算処理を実行する選択肢と、
    「偽」の場合に所要の演算処理を実行する選択肢とを少
    なくとも持つことを特徴とする請求項1記載のデータ処
    理装置。
  6. 【請求項6】 前記選択された条件情報を保持する手段
    は、前記演算結果の性質を表す情報を保持する手段と同
    一のレジスタで構成されていることを特徴とする請求項
    1記載のデータ処理装置。
JP11276795A 1995-05-11 1995-05-11 データ処理装置 Expired - Fee Related JP3454393B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11276795A JP3454393B2 (ja) 1995-05-11 1995-05-11 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11276795A JP3454393B2 (ja) 1995-05-11 1995-05-11 データ処理装置

Publications (2)

Publication Number Publication Date
JPH08305563A JPH08305563A (ja) 1996-11-22
JP3454393B2 true JP3454393B2 (ja) 2003-10-06

Family

ID=14595010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11276795A Expired - Fee Related JP3454393B2 (ja) 1995-05-11 1995-05-11 データ処理装置

Country Status (1)

Country Link
JP (1) JP3454393B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
EP1197875B1 (en) 1998-12-16 2006-03-22 Matsushita Electric Industrial Co., Ltd. Conditional vector operation method and device thereof
JP4159586B2 (ja) 2006-08-03 2008-10-01 エヌイーシーコンピュータテクノ株式会社 情報処理装置および情報処理の高速化方法
JP5888128B2 (ja) * 2012-06-05 2016-03-16 富士通株式会社 プロセッサ

Also Published As

Publication number Publication date
JPH08305563A (ja) 1996-11-22

Similar Documents

Publication Publication Date Title
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
JPH0636515B2 (ja) 通信プロセッサ装置
US5978822A (en) Circuit for rotating, left shifting, or right shifting bits
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US6553474B2 (en) Data processor changing an alignment of loaded data
JPH05150979A (ja) 即値オペランド拡張方式
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
US6760836B2 (en) Apparatus for issuing an instruction to a suitable issue destination
JP2006517322A (ja) パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
JP3479385B2 (ja) 情報処理装置
JP3454393B2 (ja) データ処理装置
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
JPH08212075A (ja) 情報処理装置
US5832257A (en) Digital signal processing method and system employing separate program and data memories to store data
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP3769445B2 (ja) データ駆動型情報処理装置
JP2000112754A (ja) データ処理装置
US20050033939A1 (en) Address generation
JPH07200289A (ja) 情報処理装置
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JPS63276126A (ja) 命令デコ−ド回路
JP2001034603A (ja) 積和演算処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090725

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100725

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees