JPH09251382A - プログラム制御装置 - Google Patents
プログラム制御装置Info
- Publication number
- JPH09251382A JPH09251382A JP5874896A JP5874896A JPH09251382A JP H09251382 A JPH09251382 A JP H09251382A JP 5874896 A JP5874896 A JP 5874896A JP 5874896 A JP5874896 A JP 5874896A JP H09251382 A JPH09251382 A JP H09251382A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- terminal
- value
- program
- input
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 高級言語におけるIFステートメント等の条
件文を実行する時間を短くし、また、条件文をコンパイ
ルした機械語命令の数を減少させることのできるプログ
ラム制御装置を得る。 【解決手段】 スペシャルブランチ命令の条件が偽であ
ると判定されると、ANDゲート11の出力信号は1と
なり、FF12により条件判定部6が判定した時点より
1命令サイクル遅延されたタイミングで、cin端子に
値1が入力される。そのため、加算器2は、第1の端子
からの現在のプログラムカウンタの値と第2の端子から
の+1に加え、cin端子からの+1を加算する。ci
n端子からの+1を加算することにより、通常1ずつ増
加したプログラムカウンタの値を+2増加させる。これ
により、機械語命令のジャンプ命令を省くことができ
る。
件文を実行する時間を短くし、また、条件文をコンパイ
ルした機械語命令の数を減少させることのできるプログ
ラム制御装置を得る。 【解決手段】 スペシャルブランチ命令の条件が偽であ
ると判定されると、ANDゲート11の出力信号は1と
なり、FF12により条件判定部6が判定した時点より
1命令サイクル遅延されたタイミングで、cin端子に
値1が入力される。そのため、加算器2は、第1の端子
からの現在のプログラムカウンタの値と第2の端子から
の+1に加え、cin端子からの+1を加算する。ci
n端子からの+1を加算することにより、通常1ずつ増
加したプログラムカウンタの値を+2増加させる。これ
により、機械語命令のジャンプ命令を省くことができ
る。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータにお
ける機械語命令が実行される際の順序を制御するために
使われるプログラム制御装置に関する。
ける機械語命令が実行される際の順序を制御するために
使われるプログラム制御装置に関する。
【0002】
従来例1.図6(a)に示す高級言語の条件命令、IF
−THEN−ELSE命令は、ある条件に基づき2つの
動作からどちらかを選択する。ある条件に基づき2つの
動作からどちらかを選択するということは、図6(b)
に示すフローチャートからわかるように、2次元の構造
を持つ。ところが、図6(c)に示すように、命令を格
納するために使われるコンピュータのメモリは、1次元
の構造である。図6(c)は、図6(b)に示した2次
元構造を持つ条件命令を、1次元のメモリ上にどのよう
に展開するかを示す。IF−THEN−ELSE命令
は、複数の機械語命令に展開され、展開された機械語命
令は、それぞれメモリ上で1つの位置(1つのアドレ
ス)を占める。IF−THEN−ELSE命令は、次の
ように実行される。メモリアドレスn+1のブランチ命
令で、AとBの大小を比較する。比較した結果により、
次に実行する命令のアドレスは、メモリアドレスn+2
とn+4に分岐する。IF−THEN−ELSE命令の
次に実行する命令の機械語命令は、メモリアドレスn+
5以降にある。そのため、メモリアドレスn+2のEL
SEステートメントが実行された場合、メモリアドレス
n+3にメモリアドレスn+5に分岐するためのジャン
プ命令を挿入する必要がある。このジャンプ命令によ
り、論理上は2次元構造を持つ条件命令を、1次元の物
理的なメモリ上に展開している。また、実行される命令
のアドレスは、プログラムカウンタと呼ばれるレジスタ
の値に従って指示される。通常、プログラムカウンタ
は、それぞれの命令サイクルで1ずつ加算され、命令の
実行は、命令が格納されたアドレスの順番に実行され
る。ブランチ命令は、このようなプログラムカウンタの
値が1ずつ順次加算される動作を変更する命令である。
−THEN−ELSE命令は、ある条件に基づき2つの
動作からどちらかを選択する。ある条件に基づき2つの
動作からどちらかを選択するということは、図6(b)
に示すフローチャートからわかるように、2次元の構造
を持つ。ところが、図6(c)に示すように、命令を格
納するために使われるコンピュータのメモリは、1次元
の構造である。図6(c)は、図6(b)に示した2次
元構造を持つ条件命令を、1次元のメモリ上にどのよう
に展開するかを示す。IF−THEN−ELSE命令
は、複数の機械語命令に展開され、展開された機械語命
令は、それぞれメモリ上で1つの位置(1つのアドレ
ス)を占める。IF−THEN−ELSE命令は、次の
ように実行される。メモリアドレスn+1のブランチ命
令で、AとBの大小を比較する。比較した結果により、
次に実行する命令のアドレスは、メモリアドレスn+2
とn+4に分岐する。IF−THEN−ELSE命令の
次に実行する命令の機械語命令は、メモリアドレスn+
5以降にある。そのため、メモリアドレスn+2のEL
SEステートメントが実行された場合、メモリアドレス
n+3にメモリアドレスn+5に分岐するためのジャン
プ命令を挿入する必要がある。このジャンプ命令によ
り、論理上は2次元構造を持つ条件命令を、1次元の物
理的なメモリ上に展開している。また、実行される命令
のアドレスは、プログラムカウンタと呼ばれるレジスタ
の値に従って指示される。通常、プログラムカウンタ
は、それぞれの命令サイクルで1ずつ加算され、命令の
実行は、命令が格納されたアドレスの順番に実行され
る。ブランチ命令は、このようなプログラムカウンタの
値が1ずつ順次加算される動作を変更する命令である。
【0003】図7を用いて、IF−THEN−ELSE
命令の動作を説明する。図7(a)は、IF−THEN
−ELSE命令の条件がA<Bの場合のコーディング例
であり、図7(b)は、図7(a)を展開したアセンブ
ラコードである。アセンブラコードの左に書かれた数
字、例えば、「temp=A−B;」の左に書かれた数
字0は、プログラムカウンタの値が指し示す命令(アセ
ンブラコード)を格納したメモリアドレスである。図7
(c)は、図7(a)に示したIF−THEN−ELS
E命令の動作を示すフローグラフである。図7(c)に
おいて、ノード(図中、丸印で示す)の中に記入された
数字は、図7(b)のアセンブラコードの左に記された
数字である。即ち、プログラムカウンタの値により、指
定されるアセンブラコードのメモリアドレスである。プ
ログラムカウンタの値は、ブランチ命令により1から4
に、ジャンプ命令により3から5に変更される可能性が
ある。これを図中矢印で示す。アセンブラコードの実行
順序の流れは、条件が成立するか否かにより0,1,
4,5と0,1,2,3,5の2系統に分かれる。図7
(a)に示すように、IF−THEN−ELSEのIF
の部分により、ある条件(図の例では、AがBより小さ
いか否か)が判定される。もしも、条件の判定結果が真
ならば、THEN以下の部分が実行される。条件の判定
結果が偽ならば、ELSE以下が実行される。IFの部
分をアセンブラコードに展開すると、図7(b)に示す
ように、A−Bという減算命令とブランチ命令となる。
ブランチ命令は、条件が真であると判定すると、THE
Nステートメントのメモリアドレス4に命令の流れを変
える。条件が偽と判定されたなら、ブランチ命令の次の
命令、即ち、ELSEステートメントが実行される。
命令の動作を説明する。図7(a)は、IF−THEN
−ELSE命令の条件がA<Bの場合のコーディング例
であり、図7(b)は、図7(a)を展開したアセンブ
ラコードである。アセンブラコードの左に書かれた数
字、例えば、「temp=A−B;」の左に書かれた数
字0は、プログラムカウンタの値が指し示す命令(アセ
ンブラコード)を格納したメモリアドレスである。図7
(c)は、図7(a)に示したIF−THEN−ELS
E命令の動作を示すフローグラフである。図7(c)に
おいて、ノード(図中、丸印で示す)の中に記入された
数字は、図7(b)のアセンブラコードの左に記された
数字である。即ち、プログラムカウンタの値により、指
定されるアセンブラコードのメモリアドレスである。プ
ログラムカウンタの値は、ブランチ命令により1から4
に、ジャンプ命令により3から5に変更される可能性が
ある。これを図中矢印で示す。アセンブラコードの実行
順序の流れは、条件が成立するか否かにより0,1,
4,5と0,1,2,3,5の2系統に分かれる。図7
(a)に示すように、IF−THEN−ELSEのIF
の部分により、ある条件(図の例では、AがBより小さ
いか否か)が判定される。もしも、条件の判定結果が真
ならば、THEN以下の部分が実行される。条件の判定
結果が偽ならば、ELSE以下が実行される。IFの部
分をアセンブラコードに展開すると、図7(b)に示す
ように、A−Bという減算命令とブランチ命令となる。
ブランチ命令は、条件が真であると判定すると、THE
Nステートメントのメモリアドレス4に命令の流れを変
える。条件が偽と判定されたなら、ブランチ命令の次の
命令、即ち、ELSEステートメントが実行される。
【0004】従来例2.特開昭62−40535号公報
に、条件付きブランチ命令の結果として、択一的に実行
される2種類の動作命令の一方をスキップするスキップ
制御回路を組み込んだプログラム制御装置の例が開示さ
れている。このスキップ制御回路により、スキップ信号
をハードウェア上で発生させることにより、ジャンプ命
令を削除することができる。以下に、特開昭62−40
535号公報に示された図及び記述を引用する。
に、条件付きブランチ命令の結果として、択一的に実行
される2種類の動作命令の一方をスキップするスキップ
制御回路を組み込んだプログラム制御装置の例が開示さ
れている。このスキップ制御回路により、スキップ信号
をハードウェア上で発生させることにより、ジャンプ命
令を削除することができる。以下に、特開昭62−40
535号公報に示された図及び記述を引用する。
【0005】図8は、従来例特開昭62−40535号
公報におけるプログラム制御装置のブロック図である。
31はプログラムカウンタ、32はプログラムメモリ、
33はインストラクションレジスタ、34はインストラ
クションデコーダ、35はアドレス制御部、36は条件
判定回路、37はスキップ制御回路、38はアキュムレ
ータである。プログラムメモリ32は、命令コードの集
合であるプログラムが記憶された、例えば、ROMであ
り、プログラムカウンタ31から印加されるアドレスに
従って、順次命令コードを読み出してインストラクショ
ンレジスタ33に出力する。プログラムカウンタ31に
接続されたアドレス制御回路35は、プログラムカウン
タ31にプログラムの先頭アドレスをプリセットした
り、インストラクションデコーダ34がジャンプ命令や
リターン命令等の命令を解読した時に、ジャンプ先のア
ドレス、或いは、戻り先のアドレスをプリセットするも
のである。インストラクションレジスタ33は、プログ
ラムメモリ32から読み出された命令コードを一時(例
えば、1マシンサイクルの間)記憶し、その命令コード
をインストラクションデコーダ34に与えて命令の実行
を行わせるものである。インストラクションデコーダ3
4は、プログラムメモリ32から読み出されてインスト
ラクションレジスタ33に記憶された命令が、どのよう
な動作を指示する命令であるかを検出するデコーダであ
り、図9に示す如く、インストラクションレジスタ33
の出力及びその反転出力と命令検出出力とが、マトリク
ス状に配列され、その交点に選択的にMOSFET(丸
印)が設けられてなる。即ち、インストラクションデコ
ーダ34は、インストラクションレジスタ33の出力及
びその反転出力を入力とするNORゲートの集合であ
り、その出力が命令検出出力となっている。更に、NO
Rゲートの入力には、各々スキップ制御回路37からの
スキップ信号SKPが印加され、スキップ信号SKPが
“1”となった場合には、命令検出出力が全て“0”と
なって命令の検出が禁止される。また、図9に示される
如く、命令検出出力、即ち、デコードラインは、対をな
す動作命令であるFFセット命令とFFリセット命令及
び出力セット命令と出力リセット命令等があり、また、
条件判定命令及びその他の命令があるが、動作命令に対
してスキップであるか否かを検出するデコードライン
は、設けられていない。
公報におけるプログラム制御装置のブロック図である。
31はプログラムカウンタ、32はプログラムメモリ、
33はインストラクションレジスタ、34はインストラ
クションデコーダ、35はアドレス制御部、36は条件
判定回路、37はスキップ制御回路、38はアキュムレ
ータである。プログラムメモリ32は、命令コードの集
合であるプログラムが記憶された、例えば、ROMであ
り、プログラムカウンタ31から印加されるアドレスに
従って、順次命令コードを読み出してインストラクショ
ンレジスタ33に出力する。プログラムカウンタ31に
接続されたアドレス制御回路35は、プログラムカウン
タ31にプログラムの先頭アドレスをプリセットした
り、インストラクションデコーダ34がジャンプ命令や
リターン命令等の命令を解読した時に、ジャンプ先のア
ドレス、或いは、戻り先のアドレスをプリセットするも
のである。インストラクションレジスタ33は、プログ
ラムメモリ32から読み出された命令コードを一時(例
えば、1マシンサイクルの間)記憶し、その命令コード
をインストラクションデコーダ34に与えて命令の実行
を行わせるものである。インストラクションデコーダ3
4は、プログラムメモリ32から読み出されてインスト
ラクションレジスタ33に記憶された命令が、どのよう
な動作を指示する命令であるかを検出するデコーダであ
り、図9に示す如く、インストラクションレジスタ33
の出力及びその反転出力と命令検出出力とが、マトリク
ス状に配列され、その交点に選択的にMOSFET(丸
印)が設けられてなる。即ち、インストラクションデコ
ーダ34は、インストラクションレジスタ33の出力及
びその反転出力を入力とするNORゲートの集合であ
り、その出力が命令検出出力となっている。更に、NO
Rゲートの入力には、各々スキップ制御回路37からの
スキップ信号SKPが印加され、スキップ信号SKPが
“1”となった場合には、命令検出出力が全て“0”と
なって命令の検出が禁止される。また、図9に示される
如く、命令検出出力、即ち、デコードラインは、対をな
す動作命令であるFFセット命令とFFリセット命令及
び出力セット命令と出力リセット命令等があり、また、
条件判定命令及びその他の命令があるが、動作命令に対
してスキップであるか否かを検出するデコードライン
は、設けられていない。
【0006】また、図8のスキップ制御回路37は、条
件判定回路36の検出出力及びインバータ39によって
反転された検出出力が各々印加され、インストラクショ
ンデコーダ34からの条件判定命令検出信号で制御され
るANDゲート40,41と、ANDゲート40,41
の出力を各々その命令の実行中遅延する遅延回路42,
43と、遅延回路43の出力がANDゲート44を介し
て伝達される遅延回路45と、遅延回路42及び45の
出力をスキップ信号SKPとして出力するORゲート4
6とから構成される。従って、遅延回路42を通過する
信号経路の場合には、条件判定命令の実行中遅延された
後、次の動作命令でスキップ信号が出力されるため、そ
の動作命令の実行が禁止される。一方、遅延回路43及
び45を通過する信号経路の場合には、条件判定命令の
実行中及び次の動作命令の実行中遅延された後、2番目
の動作命令でスキップ信号が出力されるため、2番目の
動作命令の実行が禁止される。なお、遅延回路43を通
過する信号経路の場合、条件判定命令の次の動作命令が
ジャンプ命令であると、次の命令の実行が禁止されてし
まうため、ジャンプ命令検出出力の反転信号をANDゲ
ート44の入力に印加し、遅延回路43の出力が次の遅
延回路45に伝達されるのを禁止している。条件判定回
路36は、例えば、アキュムレータ38に記憶されたデ
ータを入力して、そのデータが定められた状態、例え
ば、「0」であるか否かを検出し、検出時には検出出力
を“1”とする。ここで、条件判定回路36を動作させ
る条件判定命令の内容は、指定した条件が一致した場合
には、次の命令を実行して2番目の命令をスキップし、
一方、指定した条件と一致しない場合には、次の命令を
スキップして2番目の命令を実行するものである。
件判定回路36の検出出力及びインバータ39によって
反転された検出出力が各々印加され、インストラクショ
ンデコーダ34からの条件判定命令検出信号で制御され
るANDゲート40,41と、ANDゲート40,41
の出力を各々その命令の実行中遅延する遅延回路42,
43と、遅延回路43の出力がANDゲート44を介し
て伝達される遅延回路45と、遅延回路42及び45の
出力をスキップ信号SKPとして出力するORゲート4
6とから構成される。従って、遅延回路42を通過する
信号経路の場合には、条件判定命令の実行中遅延された
後、次の動作命令でスキップ信号が出力されるため、そ
の動作命令の実行が禁止される。一方、遅延回路43及
び45を通過する信号経路の場合には、条件判定命令の
実行中及び次の動作命令の実行中遅延された後、2番目
の動作命令でスキップ信号が出力されるため、2番目の
動作命令の実行が禁止される。なお、遅延回路43を通
過する信号経路の場合、条件判定命令の次の動作命令が
ジャンプ命令であると、次の命令の実行が禁止されてし
まうため、ジャンプ命令検出出力の反転信号をANDゲ
ート44の入力に印加し、遅延回路43の出力が次の遅
延回路45に伝達されるのを禁止している。条件判定回
路36は、例えば、アキュムレータ38に記憶されたデ
ータを入力して、そのデータが定められた状態、例え
ば、「0」であるか否かを検出し、検出時には検出出力
を“1”とする。ここで、条件判定回路36を動作させ
る条件判定命令の内容は、指定した条件が一致した場合
には、次の命令を実行して2番目の命令をスキップし、
一方、指定した条件と一致しない場合には、次の命令を
スキップして2番目の命令を実行するものである。
【0007】次に、具体的な例を用いて図8の動作を説
明する。例えば、アキュムレータ38が「0」の時、フ
リップフロップをセットし、「0」以外は、フリップフ
ロップをリセットするプログラムの場合、プログラムの
順序は、条件判定命令(ACC=0であるか)、FFセ
ット命令、FFリセット命令のアドレス順序となる。そ
こで、条件判定命令がインストラクションレジスタ33
にセットされると、条件判定命令検出出力が“1”とな
り、この時、条件判定回路36がアキュムレータ38の
内容を判定し、「0」の場合には、検出出力が“1”と
なるため、ANDゲート41の出力が“1”となって遅
延回路43に印加される。条件判定命令の実行が終了す
ると、遅延回路43から“1”がANDゲート44を介
して遅延回路45に印加される。しかし、遅延回路45
は、次の命令が終了するまで出力が“0”であるため、
スキップ信号SKPは出力されず、次のFFセット命令
が実行される。FFセット命令の実行が終了すると、遅
延回路45の出力が“1”となるため、FFリセット命
令の実行が禁止される。一方、条件判定命令の実行によ
って、アキュムレータ38の内容が「0」以外であるこ
とが検出されると、条件判定回路36の出力は“0”と
なり、インバータ39を介した反転信号“1”がAND
ゲートを介して遅延回路42に印加される。そして、条
件判定命令の実行が終了すると、遅延回路42の出力が
“1”となるため、次のFFセット命令の検出がインス
トラクションデコーダ34において禁止される。このF
Fセット命令の実行時間が終了すると、遅延回路42の
出力は“0”となるため、2番目のFFリセット命令の
検出がインストラクションデコーダ34でなされ、命令
が実行される。従って、条件判定命令において、択一的
に選択される一対の動作命令を選択したアドレスに配置
することが可能となる。
明する。例えば、アキュムレータ38が「0」の時、フ
リップフロップをセットし、「0」以外は、フリップフ
ロップをリセットするプログラムの場合、プログラムの
順序は、条件判定命令(ACC=0であるか)、FFセ
ット命令、FFリセット命令のアドレス順序となる。そ
こで、条件判定命令がインストラクションレジスタ33
にセットされると、条件判定命令検出出力が“1”とな
り、この時、条件判定回路36がアキュムレータ38の
内容を判定し、「0」の場合には、検出出力が“1”と
なるため、ANDゲート41の出力が“1”となって遅
延回路43に印加される。条件判定命令の実行が終了す
ると、遅延回路43から“1”がANDゲート44を介
して遅延回路45に印加される。しかし、遅延回路45
は、次の命令が終了するまで出力が“0”であるため、
スキップ信号SKPは出力されず、次のFFセット命令
が実行される。FFセット命令の実行が終了すると、遅
延回路45の出力が“1”となるため、FFリセット命
令の実行が禁止される。一方、条件判定命令の実行によ
って、アキュムレータ38の内容が「0」以外であるこ
とが検出されると、条件判定回路36の出力は“0”と
なり、インバータ39を介した反転信号“1”がAND
ゲートを介して遅延回路42に印加される。そして、条
件判定命令の実行が終了すると、遅延回路42の出力が
“1”となるため、次のFFセット命令の検出がインス
トラクションデコーダ34において禁止される。このF
Fセット命令の実行時間が終了すると、遅延回路42の
出力は“0”となるため、2番目のFFリセット命令の
検出がインストラクションデコーダ34でなされ、命令
が実行される。従って、条件判定命令において、択一的
に選択される一対の動作命令を選択したアドレスに配置
することが可能となる。
【0008】図10は、スキップ制御回路37の他の実
施を示す回路図であり、条件判定回路36の検出出力及
びその反転信号が印加され、インストラクションデコー
ダ34から出力される条件判定命令の検出出力が印加さ
れたANDゲート47,48と、ANDゲート48の出
力を遅延する遅延回路49と、遅延回路49の出力がA
NDゲート50及びORゲート51を介して印加される
とともに、ANDゲート47の出力がORゲート51を
介して印加される遅延回路52とから構成され、遅延回
路52の出力がスキップ信号SKPとして、インストラ
クションデコーダ34に印加される。従って、条件判定
回路36の判定出力が“0”である場合には、ANDゲ
ート47及びORゲート51を介して遅延回路52に
“1”が印加されるためのスキップ信号SKPは、条件
判定命令に続く動作命令の実行を禁止する。また、判定
出力が“1”である場合には、ANDゲート48を介し
て遅延回路49にその出力が印加されるため、遅延回路
49及び遅延回路52の遅延によりスキップ信号SKP
は、2番目の動作命令の実行を禁止する。
施を示す回路図であり、条件判定回路36の検出出力及
びその反転信号が印加され、インストラクションデコー
ダ34から出力される条件判定命令の検出出力が印加さ
れたANDゲート47,48と、ANDゲート48の出
力を遅延する遅延回路49と、遅延回路49の出力がA
NDゲート50及びORゲート51を介して印加される
とともに、ANDゲート47の出力がORゲート51を
介して印加される遅延回路52とから構成され、遅延回
路52の出力がスキップ信号SKPとして、インストラ
クションデコーダ34に印加される。従って、条件判定
回路36の判定出力が“0”である場合には、ANDゲ
ート47及びORゲート51を介して遅延回路52に
“1”が印加されるためのスキップ信号SKPは、条件
判定命令に続く動作命令の実行を禁止する。また、判定
出力が“1”である場合には、ANDゲート48を介し
て遅延回路49にその出力が印加されるため、遅延回路
49及び遅延回路52の遅延によりスキップ信号SKP
は、2番目の動作命令の実行を禁止する。
【0009】
【発明が解決しようとする課題】従来例1に示したよう
に、メモリは、1次元的な性質を持つため、ELSEス
テートメントがブランチ命令とTHENステートメント
の間に閉じこめられる。ELSEステートメントの後
に、THENステートメントが実行されてしまうのを回
避するために、ELSEステートメントとTHENステ
ートメントの間に、THENステートメントの次の命令
へ分岐するジャンプ命令(条件無しブランチ命令とも呼
ぶ)が必要となる。そのため、IF−THEN−ELS
Eステートメントを実行する時間は、この余分な命令、
即ち、ジャンプ命令を実行するため長くなるという問題
点があった。また、この余分な命令のため、メモリサイ
ズもより多く要するという問題点があった。また、従来
例2に示したように、スキップ制御回路をプログラム制
御装置に追加することにより、上記の問題点を回避する
方法が示されているが、スキップ制御回路が複雑である
という問題点があった。
に、メモリは、1次元的な性質を持つため、ELSEス
テートメントがブランチ命令とTHENステートメント
の間に閉じこめられる。ELSEステートメントの後
に、THENステートメントが実行されてしまうのを回
避するために、ELSEステートメントとTHENステ
ートメントの間に、THENステートメントの次の命令
へ分岐するジャンプ命令(条件無しブランチ命令とも呼
ぶ)が必要となる。そのため、IF−THEN−ELS
Eステートメントを実行する時間は、この余分な命令、
即ち、ジャンプ命令を実行するため長くなるという問題
点があった。また、この余分な命令のため、メモリサイ
ズもより多く要するという問題点があった。また、従来
例2に示したように、スキップ制御回路をプログラム制
御装置に追加することにより、上記の問題点を回避する
方法が示されているが、スキップ制御回路が複雑である
という問題点があった。
【0010】この発明は、上記のような課題を解決する
ためになされたもので、高級言語におけるIFステート
メント等の条件文を実行する時間を短くし、また、条件
文をコンパイルした機械語命令の数を減少させることの
できるプログラム制御装置をハードウェアの最小限の変
更により得ることを目的とする。
ためになされたもので、高級言語におけるIFステート
メント等の条件文を実行する時間を短くし、また、条件
文をコンパイルした機械語命令の数を減少させることの
できるプログラム制御装置をハードウェアの最小限の変
更により得ることを目的とする。
【0011】
【課題を解決するための手段】この発明に係るプログラ
ム制御装置は、所定の条件を判定することにより、第1
と第2の2種類の動作命令のいずれか一方を選択する選
択命令と上記第1と第2の2種類の動作命令とその他の
命令とを、選択命令、第1の動作命令、第2の動作命
令、その他の命令の順に連続したアドレスに記憶するプ
ログラム記憶部と、上記プログラム記憶部から読み出す
命令のアドレスを指示するプログラムカウンタと、上記
プログラムカウンタの値を計算する加算器と、上記プロ
グラム記憶部から上記プログラムカウンタにより指定さ
れたアドレスに基づき読み出された命令を解読する命令
デコーダと、上記選択命令の所定の条件を判定する条件
判定部と、上記条件判定部により第1の動作命令が選択
され実行される場合、第1の動作命令を実行した後、プ
ログラムカウンタの値をその他の命令が記憶されたアド
レスとする加算制御部を備えたことを特徴とする。
ム制御装置は、所定の条件を判定することにより、第1
と第2の2種類の動作命令のいずれか一方を選択する選
択命令と上記第1と第2の2種類の動作命令とその他の
命令とを、選択命令、第1の動作命令、第2の動作命
令、その他の命令の順に連続したアドレスに記憶するプ
ログラム記憶部と、上記プログラム記憶部から読み出す
命令のアドレスを指示するプログラムカウンタと、上記
プログラムカウンタの値を計算する加算器と、上記プロ
グラム記憶部から上記プログラムカウンタにより指定さ
れたアドレスに基づき読み出された命令を解読する命令
デコーダと、上記選択命令の所定の条件を判定する条件
判定部と、上記条件判定部により第1の動作命令が選択
され実行される場合、第1の動作命令を実行した後、プ
ログラムカウンタの値をその他の命令が記憶されたアド
レスとする加算制御部を備えたことを特徴とする。
【0012】上記加算制御部は、上記条件判定部の出力
と上記命令デコーダの出力に接続されるゲート回路と上
記ゲート回路の出力に接続される遅延回路を備え、上記
加算器は、プログラムカウンタの出力に接続される第1
の端子と、プログラムカウンタの増加値を入力する第2
の端子と、上記遅延回路の出力に接続される第3の端子
を備えたことを特徴とする。
と上記命令デコーダの出力に接続されるゲート回路と上
記ゲート回路の出力に接続される遅延回路を備え、上記
加算器は、プログラムカウンタの出力に接続される第1
の端子と、プログラムカウンタの増加値を入力する第2
の端子と、上記遅延回路の出力に接続される第3の端子
を備えたことを特徴とする。
【0013】この発明に係るプログラム制御装置は、ゲ
ート回路はアンド回路であり、遅延回路はフリップフロ
ップであり、上記条件判定部により第1の動作命令を選
択すると判定された場合、上記加算器の第1の端子にプ
ログラムカウンタから入力される現在実行中の命令のア
ドレスの値が入力され、第2の端子に値1が入力され、
上記フリップフロップにより上記条件判定部により第1
の動作命令を選択すると判定する時点より1インストラ
クションサイクル遅延されたハイレベル信号が上記加算
器の第3の端子に入力され、上記加算器は、第1の端子
にプログラムカウンタから入力される現在実行中の命令
のアドレスの値と第2の端子から入力される値1と第3
の端子から入力されるハイレベル信号、即ち、値1とを
加算することにより次に実行する命令のアドレスを計算
することを特徴とする。
ート回路はアンド回路であり、遅延回路はフリップフロ
ップであり、上記条件判定部により第1の動作命令を選
択すると判定された場合、上記加算器の第1の端子にプ
ログラムカウンタから入力される現在実行中の命令のア
ドレスの値が入力され、第2の端子に値1が入力され、
上記フリップフロップにより上記条件判定部により第1
の動作命令を選択すると判定する時点より1インストラ
クションサイクル遅延されたハイレベル信号が上記加算
器の第3の端子に入力され、上記加算器は、第1の端子
にプログラムカウンタから入力される現在実行中の命令
のアドレスの値と第2の端子から入力される値1と第3
の端子から入力されるハイレベル信号、即ち、値1とを
加算することにより次に実行する命令のアドレスを計算
することを特徴とする。
【0014】上記加算器の第3の端子は、最下位の桁の
キャリー入力端子であることを特徴とする。
キャリー入力端子であることを特徴とする。
【0015】この発明に係るプログラム制御装置は、プ
ログラムの各命令を記憶したプログラム記憶部と、プロ
グラム記憶部のアドレスを指定するプログラムカウンタ
と、プログラムカウンタの出力に接続された第1の端子
とプログラムカウンタの増加値を入力する第2の端子と
桁上げ信号を入力するキャリー入力端子とを備え、上記
第1の端子から入力された値と、上記第2の端子から入
力された値と、上記キャリー入力端子から入力された値
とを加算して、上記プログラムカウンタに出力する加算
器とを備え、上記キャリー入力端子に桁上げ信号を入力
することにより、プログラムカウンタの値を制御するこ
とを特徴とする。
ログラムの各命令を記憶したプログラム記憶部と、プロ
グラム記憶部のアドレスを指定するプログラムカウンタ
と、プログラムカウンタの出力に接続された第1の端子
とプログラムカウンタの増加値を入力する第2の端子と
桁上げ信号を入力するキャリー入力端子とを備え、上記
第1の端子から入力された値と、上記第2の端子から入
力された値と、上記キャリー入力端子から入力された値
とを加算して、上記プログラムカウンタに出力する加算
器とを備え、上記キャリー入力端子に桁上げ信号を入力
することにより、プログラムカウンタの値を制御するこ
とを特徴とする。
【0016】上記桁上げ信号を、上記プログラム記憶部
に記憶された1つの命令をスキップする場合に発生させ
ることを特徴とする。
に記憶された1つの命令をスキップする場合に発生させ
ることを特徴とする。
【0017】
実施の形態1.この実施の形態では、IF−THEN−
ELSE命令をコンパイルした結果の機械語命令の場合
について述べる。ここでは、IF文の条件が偽と判定さ
れた場合、1命令サイクル後に暗黙のスキップ命令を生
成するスペシャルブランチ命令を用いる例について述べ
る。このスペシャルブランチ命令により、従来例で述べ
たELSEステートメントの後のジャンプ命令を省くこ
とができる。
ELSE命令をコンパイルした結果の機械語命令の場合
について述べる。ここでは、IF文の条件が偽と判定さ
れた場合、1命令サイクル後に暗黙のスキップ命令を生
成するスペシャルブランチ命令を用いる例について述べ
る。このスペシャルブランチ命令により、従来例で述べ
たELSEステートメントの後のジャンプ命令を省くこ
とができる。
【0018】図1は、暗黙のスキップ命令を生成するた
めのハードウェア構成図である。1はプログラムカウン
タ、2は加算器である。3はプログラム記憶部、4は命
令レジスタ、5は命令デコーダである。6は条件判定部
である。7はORゲート、8はANDゲート、9はマル
チプレクサ(図ではMUX)、10はインバータ、11
はANDゲート、12はフリップフロップ(図ではF
F)である。13は加算制御部であり、ANDゲート1
1、FF12からなる。プログラムカウンタ1は、プロ
グラム記憶部3から次に取り出すべき命令コードのアド
レスを保持する。加算器2は、プログラムカウンタ1の
値を計算するために用いられる。プログラム記憶部3
は、命令コードを記憶し、記憶された命令コードには一
連のアドレスが対応している。プログラムカウンタ1の
指示するアドレスに従って、命令コードを読み出し、命
令レジスタ4に出力する。命令デコーダ5は、命令レジ
スタ4に読み出された命令の先頭Nビットのオペレーシ
ョンコード(図では、OPコード)を解読する。命令デ
コーダ5は、例えば、Nビットのオペレーションコード
を入力し、2N ビットの出力端子によりオペレーション
を指示する。2N ビットの出力端子の中には、通常のブ
ランチ命令を示す出力端子と、この発明の後述するスペ
シャルブランチ命令を示す出力端子が存在する。条件判
定部6は、ブランチ命令の分岐条件が成立する(以後、
真という)か、成立しない(以後、偽という)か判定す
る。この実施の形態では、ブランチコンディションマル
チプレクサを用いる。ブランチコンディションマルチプ
レクサは、命令レジスタ4からMビットのブランチコン
ディションを入力し、ブランチコンディションの値に基
づいて、2M ビットの入力から1つの入力を選択して出
力する。ブランチコンディションマルチプレクサの出力
は、真の時1、偽の時0である。
めのハードウェア構成図である。1はプログラムカウン
タ、2は加算器である。3はプログラム記憶部、4は命
令レジスタ、5は命令デコーダである。6は条件判定部
である。7はORゲート、8はANDゲート、9はマル
チプレクサ(図ではMUX)、10はインバータ、11
はANDゲート、12はフリップフロップ(図ではF
F)である。13は加算制御部であり、ANDゲート1
1、FF12からなる。プログラムカウンタ1は、プロ
グラム記憶部3から次に取り出すべき命令コードのアド
レスを保持する。加算器2は、プログラムカウンタ1の
値を計算するために用いられる。プログラム記憶部3
は、命令コードを記憶し、記憶された命令コードには一
連のアドレスが対応している。プログラムカウンタ1の
指示するアドレスに従って、命令コードを読み出し、命
令レジスタ4に出力する。命令デコーダ5は、命令レジ
スタ4に読み出された命令の先頭Nビットのオペレーシ
ョンコード(図では、OPコード)を解読する。命令デ
コーダ5は、例えば、Nビットのオペレーションコード
を入力し、2N ビットの出力端子によりオペレーション
を指示する。2N ビットの出力端子の中には、通常のブ
ランチ命令を示す出力端子と、この発明の後述するスペ
シャルブランチ命令を示す出力端子が存在する。条件判
定部6は、ブランチ命令の分岐条件が成立する(以後、
真という)か、成立しない(以後、偽という)か判定す
る。この実施の形態では、ブランチコンディションマル
チプレクサを用いる。ブランチコンディションマルチプ
レクサは、命令レジスタ4からMビットのブランチコン
ディションを入力し、ブランチコンディションの値に基
づいて、2M ビットの入力から1つの入力を選択して出
力する。ブランチコンディションマルチプレクサの出力
は、真の時1、偽の時0である。
【0019】加算器2の第1の端子は、プログラムカウ
ンタ1の出力に接続される。これにより、加算器2にプ
ログラムカウンタ1が保持する現在の値が入力される。
第2の端子は、マルチプレクサ9に接続される。マルチ
プレクサ9は、定数1(プログラムカウンタ1に+1加
算するために使う)とブランチ増減値とのどちらか一方
を選択する。第1,第2の端子へは、値が2進数で入力
され、第1,第2の端子は、プログラムカウンタ1のビ
ット幅と同じビット幅を持つ。マルチプレクサ9は、A
NDゲート8から出力される制御信号と接続される。A
NDゲート8の一方の入力端子は、条件判定部6の出力
に接続され、条件の判定結果が真の場合、1がANDゲ
ート8の一方の入力端子に入力される。ANDゲート8
の他方の入力端子は、ORゲート7の出力に接続され
る。ORゲート7の一方の入力端子は、命令デコーダ5
のブランチ命令を示す出力端子に接続される。命令デコ
ーダ5において、ブランチ命令であると判定された場
合、1がORゲート7に入力される。ORゲート7の他
方の入力端子は、命令デコーダ5のスペシャルブランチ
命令を示す出力端子に接続される。命令デコーダ5にお
いて、スペシャルブランチ命令であると判定された場
合、1がORゲート7に入力される。
ンタ1の出力に接続される。これにより、加算器2にプ
ログラムカウンタ1が保持する現在の値が入力される。
第2の端子は、マルチプレクサ9に接続される。マルチ
プレクサ9は、定数1(プログラムカウンタ1に+1加
算するために使う)とブランチ増減値とのどちらか一方
を選択する。第1,第2の端子へは、値が2進数で入力
され、第1,第2の端子は、プログラムカウンタ1のビ
ット幅と同じビット幅を持つ。マルチプレクサ9は、A
NDゲート8から出力される制御信号と接続される。A
NDゲート8の一方の入力端子は、条件判定部6の出力
に接続され、条件の判定結果が真の場合、1がANDゲ
ート8の一方の入力端子に入力される。ANDゲート8
の他方の入力端子は、ORゲート7の出力に接続され
る。ORゲート7の一方の入力端子は、命令デコーダ5
のブランチ命令を示す出力端子に接続される。命令デコ
ーダ5において、ブランチ命令であると判定された場
合、1がORゲート7に入力される。ORゲート7の他
方の入力端子は、命令デコーダ5のスペシャルブランチ
命令を示す出力端子に接続される。命令デコーダ5にお
いて、スペシャルブランチ命令であると判定された場
合、1がORゲート7に入力される。
【0020】ブランチ命令又はスペシャルブランチ命令
の場合で、かつ、条件の判定が真である場合は、AND
ゲート8から出力される制御信号が1となり、マルチプ
レクサ9は、ブランチ増減値を選択して出力する。ブラ
ンチ増減値は、命令レジスタ4のブランチ命令にセット
されたブランチ増減値が使われる。そのため、加算器2
は、プログラムカウンタ1の保持する現在の値に、ブラ
ンチ増減値を加算し、ブランチ先のアドレスを算出す
る。ブランチ命令又はスペシャルブランチ命令以外の命
令は、ANDゲート8から出力される制御信号が0とな
り、マルチプレクサ9は、+1を選択して出力する。加
算器2は、プログラムカウンタ1の保持する現在の値
に、+1を加算する。これは、プログラム記憶部3に記
憶された順に、命令を実行することを意味する。この発
明では、命令の1つに後述するスペシャルブランチ命令
を追加しているが、ここまでの説明は、命令デコーダ5
にスペシャルブランチ命令解読機能と、その出力端子が
追加された点を除き、その他の点は、従来の通常のプロ
グラム制御装置とほぼ同様である。
の場合で、かつ、条件の判定が真である場合は、AND
ゲート8から出力される制御信号が1となり、マルチプ
レクサ9は、ブランチ増減値を選択して出力する。ブラ
ンチ増減値は、命令レジスタ4のブランチ命令にセット
されたブランチ増減値が使われる。そのため、加算器2
は、プログラムカウンタ1の保持する現在の値に、ブラ
ンチ増減値を加算し、ブランチ先のアドレスを算出す
る。ブランチ命令又はスペシャルブランチ命令以外の命
令は、ANDゲート8から出力される制御信号が0とな
り、マルチプレクサ9は、+1を選択して出力する。加
算器2は、プログラムカウンタ1の保持する現在の値
に、+1を加算する。これは、プログラム記憶部3に記
憶された順に、命令を実行することを意味する。この発
明では、命令の1つに後述するスペシャルブランチ命令
を追加しているが、ここまでの説明は、命令デコーダ5
にスペシャルブランチ命令解読機能と、その出力端子が
追加された点を除き、その他の点は、従来の通常のプロ
グラム制御装置とほぼ同様である。
【0021】次に、この実施の形態における特徴部分に
ついて述べる。加算器2は、未使用のキャリー入力端子
(cin端子ともいう。図では、cin)を備えてお
り、これを第3の端子とする。図2に加算器2の詳細な
ブロック図を示す。加算器2の第1,第2の端子には、
2進数が入力され、第1,第2の端子は、プログラムカ
ウンタ1のビット幅と同じビット幅を持つ。ここで、ビ
ット幅をjビットとして説明する。図2において、加算
器2は、入力されるそれぞれのビット毎に対応する全加
算器21〜2jで構成される。全加算器21が最下位の
ビットの演算を実行する。第1の端子からAj ,・・
・,A3 ,A2 ,A1 、第2の端子からBj ,・・・,
B3 ,B2 ,B1 の値が入力される。Aj 〜A1 、Bj
〜B1 は、各ビット毎の値であり、1か0である。A1
,B1 が最下位のビットである。各全加算器21〜2
jは、キャリービットを入力する端子と出力する端子を
備え、全加算器の演算によって発生したキャリーC1 ,
・・・,Cj-1 を、それぞれ1桁上の全加算器22〜2
jに渡す。各全加算器21〜2jで演算した結果、S1
〜Sj が加算器2の演算結果として出力される。全加算
器2jで発生するキャリーCj は、捨てられる。また、
最下位の全加算器21のキャリー入力端子cinは、通
常は未使用である。この発明では、第3の端子として、
最下位の全加算器21のcin端子を利用する。このた
め、この発明を実施するにあたり、従来の加算器2を改
造したり、新たな入力端子を追加したりする必要がな
い。
ついて述べる。加算器2は、未使用のキャリー入力端子
(cin端子ともいう。図では、cin)を備えてお
り、これを第3の端子とする。図2に加算器2の詳細な
ブロック図を示す。加算器2の第1,第2の端子には、
2進数が入力され、第1,第2の端子は、プログラムカ
ウンタ1のビット幅と同じビット幅を持つ。ここで、ビ
ット幅をjビットとして説明する。図2において、加算
器2は、入力されるそれぞれのビット毎に対応する全加
算器21〜2jで構成される。全加算器21が最下位の
ビットの演算を実行する。第1の端子からAj ,・・
・,A3 ,A2 ,A1 、第2の端子からBj ,・・・,
B3 ,B2 ,B1 の値が入力される。Aj 〜A1 、Bj
〜B1 は、各ビット毎の値であり、1か0である。A1
,B1 が最下位のビットである。各全加算器21〜2
jは、キャリービットを入力する端子と出力する端子を
備え、全加算器の演算によって発生したキャリーC1 ,
・・・,Cj-1 を、それぞれ1桁上の全加算器22〜2
jに渡す。各全加算器21〜2jで演算した結果、S1
〜Sj が加算器2の演算結果として出力される。全加算
器2jで発生するキャリーCj は、捨てられる。また、
最下位の全加算器21のキャリー入力端子cinは、通
常は未使用である。この発明では、第3の端子として、
最下位の全加算器21のcin端子を利用する。このた
め、この発明を実施するにあたり、従来の加算器2を改
造したり、新たな入力端子を追加したりする必要がな
い。
【0022】図1において、第3の端子(cin端子)
は、加算制御部13に接続される。加算制御部13は、
ANDゲート11とFF12から構成される。第3の端
子は、1個のフリップフロップ12の出力に接続され
る。FF12は、ANDゲート11の出力に接続され
る。ANDゲート11の一方の入力端子は、命令デコー
ダ5のスペシャルブランチ命令の出力端子に接続され、
スペシャルブランチ命令であれば、ANDゲート11の
一方の入力端子に1が入力される。ANDゲート11の
他方の入力端子は、インバータ10を介し、条件判定部
6の出力に接続される。スペシャルブランチ命令の条件
が偽であると判定されると、その判定結果は、条件判定
部6が判定した時点より1命令サイクル、FF12によ
り遅延されたタイミングでcin端子に1が入力され
る。ANDゲート11、FF12の追加と加算器2のc
in端子の使用が、この発明の特徴となる部分である。
先に述べた暗黙のスキップ命令は、プログラムカウンタ
1に指定するアドレスの値を加算器2で計算する際、加
算制御部13からcin端子にキャリーを発生させるこ
とにより、マルチプレクサ9から入力した加算する数+
1に対して、キャリーを更に加算することにより実現さ
れる。その際、加算制御部13は、キャリーを発生させ
るタイミングを遅延させることにより暗黙のスキップ命
令が正しく動作するようにしている。この発明は、上述
したように、通常用いるハードウェアに極めて少ないハ
ードウェアの追加で実現できる。なお、インストラクシ
ョンクロックは、1つの命令を実行するためにかかる時
間、即ち、1命令サイクルを1クロックとし、同一のイ
ンストラクションクロックがFF12とプログラムカウ
ンタ1に入力され、これらの構成要素間の動作の同期を
とるため用いられる。また、図では示していないが、イ
ンストラクションクロックは、他の構成要素にも入力さ
れる。
は、加算制御部13に接続される。加算制御部13は、
ANDゲート11とFF12から構成される。第3の端
子は、1個のフリップフロップ12の出力に接続され
る。FF12は、ANDゲート11の出力に接続され
る。ANDゲート11の一方の入力端子は、命令デコー
ダ5のスペシャルブランチ命令の出力端子に接続され、
スペシャルブランチ命令であれば、ANDゲート11の
一方の入力端子に1が入力される。ANDゲート11の
他方の入力端子は、インバータ10を介し、条件判定部
6の出力に接続される。スペシャルブランチ命令の条件
が偽であると判定されると、その判定結果は、条件判定
部6が判定した時点より1命令サイクル、FF12によ
り遅延されたタイミングでcin端子に1が入力され
る。ANDゲート11、FF12の追加と加算器2のc
in端子の使用が、この発明の特徴となる部分である。
先に述べた暗黙のスキップ命令は、プログラムカウンタ
1に指定するアドレスの値を加算器2で計算する際、加
算制御部13からcin端子にキャリーを発生させるこ
とにより、マルチプレクサ9から入力した加算する数+
1に対して、キャリーを更に加算することにより実現さ
れる。その際、加算制御部13は、キャリーを発生させ
るタイミングを遅延させることにより暗黙のスキップ命
令が正しく動作するようにしている。この発明は、上述
したように、通常用いるハードウェアに極めて少ないハ
ードウェアの追加で実現できる。なお、インストラクシ
ョンクロックは、1つの命令を実行するためにかかる時
間、即ち、1命令サイクルを1クロックとし、同一のイ
ンストラクションクロックがFF12とプログラムカウ
ンタ1に入力され、これらの構成要素間の動作の同期を
とるため用いられる。また、図では示していないが、イ
ンストラクションクロックは、他の構成要素にも入力さ
れる。
【0023】以下、IF−THEN−ELSE命令を、
この実施の形態のプログラム制御装置を用いて編集し、
実行する場合の動作について説明する。図3(a)に、
高級言語におけるIF−THEN−ELSE命令の記述
例を示し、図3(b)に、これに対するアセンブラリス
トを示し、図3(c)に、フローグラフを示す。従来例
では、ELSEステートメントの後にジャンプ命令が必
要であったが、この実施の形態では、図3(b)に示す
ように、ELSEステートメントの後に、ジャンプ命令
が必要ないことが特徴である。これは、図3(c)のフ
ローグラフに示すように、ELSEステートメントの実
行後、ハードウェア上で暗黙のスキップ命令が発生され
るため、従来例で使われていたジャンプ命令を省くこと
ができるからである。これにより、従来に比べステート
メントを1つ減らすことができ、プログラムの実行時間
を短縮することができる。また、プログラム記憶部の記
憶領域もより少なくてよい。
この実施の形態のプログラム制御装置を用いて編集し、
実行する場合の動作について説明する。図3(a)に、
高級言語におけるIF−THEN−ELSE命令の記述
例を示し、図3(b)に、これに対するアセンブラリス
トを示し、図3(c)に、フローグラフを示す。従来例
では、ELSEステートメントの後にジャンプ命令が必
要であったが、この実施の形態では、図3(b)に示す
ように、ELSEステートメントの後に、ジャンプ命令
が必要ないことが特徴である。これは、図3(c)のフ
ローグラフに示すように、ELSEステートメントの実
行後、ハードウェア上で暗黙のスキップ命令が発生され
るため、従来例で使われていたジャンプ命令を省くこと
ができるからである。これにより、従来に比べステート
メントを1つ減らすことができ、プログラムの実行時間
を短縮することができる。また、プログラム記憶部の記
憶領域もより少なくてよい。
【0024】図4,図5は、図3(a)で示したIF−
THEN−ELSE命令の2つの処理の流れを説明する
ためのタイミング図である。図4は、条件の判定結果が
A<Bの場合である。図5は、A<Bではない場合であ
る。この時、暗黙のスキップ命令が発生する。図4,図
5における(P)から(K)は、図1に図示した(P)
から(K)の各点に対応している。(K)は、インスト
ラクションクロックを示し、インストラクションクロッ
クの立ち下がりに同期して、ステップ1からステップ4
の動作が切り替わる。図4,図5における「命令」は、
図3(b)に示したIF−THEN−ELSE命令を機
械語命令に翻訳した時の命令である。1機械語命令は、
1インストラクションクロックで実行されることを前提
として説明する。
THEN−ELSE命令の2つの処理の流れを説明する
ためのタイミング図である。図4は、条件の判定結果が
A<Bの場合である。図5は、A<Bではない場合であ
る。この時、暗黙のスキップ命令が発生する。図4,図
5における(P)から(K)は、図1に図示した(P)
から(K)の各点に対応している。(K)は、インスト
ラクションクロックを示し、インストラクションクロッ
クの立ち下がりに同期して、ステップ1からステップ4
の動作が切り替わる。図4,図5における「命令」は、
図3(b)に示したIF−THEN−ELSE命令を機
械語命令に翻訳した時の命令である。1機械語命令は、
1インストラクションクロックで実行されることを前提
として説明する。
【0025】始めに、図1,図4を用いて条件の判定結
果が、A<Bとなる場合の処理の流れについて述べる。
ステップ1で、(P)で示すプログラムカウンタの値が
0であるので、プログラム記憶部3のアドレスが0の命
令、即ち、temp=A−Bを実行する。temp=A
−Bは、A−Bを計算し、その値をtempに割り付け
る。tempが正か負かにより、次のステップでAとB
の大小関係を判定する。(S)で示す命令デコーダ5の
スペシャルブランチ命令の出力は、現在実行中の命令t
emp=A−Bが、スペシャルブランチ命令ではないの
で0となる。(T),(F)における条件判定結果の信
号は、1であっても0であってもどちらでもよい。なぜ
ならば、(T),(F)の信号如何に関わらず、(S)
で示すスペシャルブランチ命令の出力の信号が0である
ことにより、(D)で示すFF入力及び(M)で示すM
UX9制御信号が0となるからである。(D)で示すF
F入力が0であるため、(C)cin端子の入力の信号
は0となる。(M)MUX9制御信号が0であるため、
MUX9は+1を選択し、加算器2の第2の端子に+1
を出力する。(A)加算器2の出力は、現在のプログラ
ムカウンタ1の値、即ち、0と、第2の端子に入力され
た値+1と、cin端子に入力された値、即ち、0とを
加算し、1となる。
果が、A<Bとなる場合の処理の流れについて述べる。
ステップ1で、(P)で示すプログラムカウンタの値が
0であるので、プログラム記憶部3のアドレスが0の命
令、即ち、temp=A−Bを実行する。temp=A
−Bは、A−Bを計算し、その値をtempに割り付け
る。tempが正か負かにより、次のステップでAとB
の大小関係を判定する。(S)で示す命令デコーダ5の
スペシャルブランチ命令の出力は、現在実行中の命令t
emp=A−Bが、スペシャルブランチ命令ではないの
で0となる。(T),(F)における条件判定結果の信
号は、1であっても0であってもどちらでもよい。なぜ
ならば、(T),(F)の信号如何に関わらず、(S)
で示すスペシャルブランチ命令の出力の信号が0である
ことにより、(D)で示すFF入力及び(M)で示すM
UX9制御信号が0となるからである。(D)で示すF
F入力が0であるため、(C)cin端子の入力の信号
は0となる。(M)MUX9制御信号が0であるため、
MUX9は+1を選択し、加算器2の第2の端子に+1
を出力する。(A)加算器2の出力は、現在のプログラ
ムカウンタ1の値、即ち、0と、第2の端子に入力され
た値+1と、cin端子に入力された値、即ち、0とを
加算し、1となる。
【0026】ステップ2において、ステップ1で加算器
2により計算された結果、即ち、1がプログラムカウン
タ1にセットされた値となる。プログラムカウンタ1の
値から、アドレスが1の命令、即ち、スペシャルブラン
チ(spbrn)命令が実行される。tempの符号が
負であるか否か調べる。結果が真(tempの符号が
負)ならば、ブランチ増減値+2をプログラムカウンタ
1の値1に加え、次に、実行すべき命令(即ち、THE
Nステートメント)のアドレス(アドレス=3)を求め
る。(S)命令デコーダ5のスペシャルブランチ命令の
出力は、1である。(T)条件判定結果の信号は、A<
Bであれば、条件判定部6における結果は真となり、1
となる。(F)における条件判定結果の信号は、(T)
における条件判定結果の信号がインバータ10を介し逆
転されるため、0となる。(D)FF入力、即ち、AN
Dゲート11の出力は、ANDゲート11の一方の入
力、即ち、(F)における条件判定結果の信号が0であ
るため、0となる。そのため、(C)cin端子の入力
は、0である。(M)MUX9制御信号は、現在実行中
の命令がスペシャルブランチであり、条件判定結果が真
であるため、1となる。MUX9制御信号が1であるた
め、MUX9は、加算器2の第2の端子へ、ブランチ増
減値+2を出力する。(A)加算器の出力は、3であ
る。即ち、加算器2の出力は、現在のプログラムカウン
タ1の値、即ち、1と、MUX9の出力、即ち、+2
(ブランチ増減値)と、第3の端子の入力、即ち、0を
加算ことにより算出する。つまり、1+2+0=3とな
る。
2により計算された結果、即ち、1がプログラムカウン
タ1にセットされた値となる。プログラムカウンタ1の
値から、アドレスが1の命令、即ち、スペシャルブラン
チ(spbrn)命令が実行される。tempの符号が
負であるか否か調べる。結果が真(tempの符号が
負)ならば、ブランチ増減値+2をプログラムカウンタ
1の値1に加え、次に、実行すべき命令(即ち、THE
Nステートメント)のアドレス(アドレス=3)を求め
る。(S)命令デコーダ5のスペシャルブランチ命令の
出力は、1である。(T)条件判定結果の信号は、A<
Bであれば、条件判定部6における結果は真となり、1
となる。(F)における条件判定結果の信号は、(T)
における条件判定結果の信号がインバータ10を介し逆
転されるため、0となる。(D)FF入力、即ち、AN
Dゲート11の出力は、ANDゲート11の一方の入
力、即ち、(F)における条件判定結果の信号が0であ
るため、0となる。そのため、(C)cin端子の入力
は、0である。(M)MUX9制御信号は、現在実行中
の命令がスペシャルブランチであり、条件判定結果が真
であるため、1となる。MUX9制御信号が1であるた
め、MUX9は、加算器2の第2の端子へ、ブランチ増
減値+2を出力する。(A)加算器の出力は、3であ
る。即ち、加算器2の出力は、現在のプログラムカウン
タ1の値、即ち、1と、MUX9の出力、即ち、+2
(ブランチ増減値)と、第3の端子の入力、即ち、0を
加算ことにより算出する。つまり、1+2+0=3とな
る。
【0027】ステップ3において、ステップ2で述べた
加算器2の演算結果、即ち、3がプログラムカウンタ1
の値3となる。そのため、プログラム記憶部3におい
て、アドレスが3の命令C=C+1を実行する。(S)
命令デコーダ5のスペシャルブランチ命令の出力は、0
である。そのため、ステップ1と同様にして、(A)加
算器の出力は、現在のプログラムカウンタ1の値、即
ち、3と、第2の端子に入力された値+1と、cin端
子に入力された値、即ち、0とを加算し、4となる。ス
テップ4において、IF−THEN−ELSE命令の後
に続くアドレス=4の命令が実行される。
加算器2の演算結果、即ち、3がプログラムカウンタ1
の値3となる。そのため、プログラム記憶部3におい
て、アドレスが3の命令C=C+1を実行する。(S)
命令デコーダ5のスペシャルブランチ命令の出力は、0
である。そのため、ステップ1と同様にして、(A)加
算器の出力は、現在のプログラムカウンタ1の値、即
ち、3と、第2の端子に入力された値+1と、cin端
子に入力された値、即ち、0とを加算し、4となる。ス
テップ4において、IF−THEN−ELSE命令の後
に続くアドレス=4の命令が実行される。
【0028】図5におけるステップ1は、図4と同じで
あるので、説明は省略する。ステップ2において、ステ
ップ1で加算器2により計算された結果、即ち、1がプ
ログラムカウンタ1にセットされる。プログラムカウン
タ1の値から、アドレスが1の命令、即ち、スペシャル
ブランチ(spbrn)命令が実行される。tempの
符号が負であるか否か調べる。(S)命令デコーダ5の
スペシャルブランチ命令の出力は、1である。(T)条
件判定結果の信号は、A<Bでなければ、条件判定部6
における結果は偽となり、0となる。(F)における条
件判定結果の信号は、(T)における条件判定結果の信
号がインバータ10を介し逆転されるため、1となる。
(D)FF入力、即ち、ANDゲート11の出力は、A
NDゲート11の一方の入力である(S)のスペシャル
ブランチ命令の出力信号が1であり、かつ、他方の入力
である(F)における条件判定結果の信号が1であるた
め、1となる。(D)FF入力の信号は1であるが、F
F12において、1命令サイクル遅延されるため、この
ステップでは、(C)cin端子の入力は、0である。
(M)MUX9制御信号は、現在実行中の命令がスペシ
ャルブランチではあるが、条件判定結果が偽であるた
め、0となる。MUX9制御信号が0であるため、MU
X9は、加算器2の第2の端子へ、+1を出力する。
(A)加算器の出力は、2である。なぜならば、加算器
2の出力は、現在のプログラムカウンタ1の値、即ち、
1と、MUX9の出力、即ち、+1と、第3の端子の入
力、即ち、0とを加算ことにより算出する。つまり、1
+1+0=2となる。
あるので、説明は省略する。ステップ2において、ステ
ップ1で加算器2により計算された結果、即ち、1がプ
ログラムカウンタ1にセットされる。プログラムカウン
タ1の値から、アドレスが1の命令、即ち、スペシャル
ブランチ(spbrn)命令が実行される。tempの
符号が負であるか否か調べる。(S)命令デコーダ5の
スペシャルブランチ命令の出力は、1である。(T)条
件判定結果の信号は、A<Bでなければ、条件判定部6
における結果は偽となり、0となる。(F)における条
件判定結果の信号は、(T)における条件判定結果の信
号がインバータ10を介し逆転されるため、1となる。
(D)FF入力、即ち、ANDゲート11の出力は、A
NDゲート11の一方の入力である(S)のスペシャル
ブランチ命令の出力信号が1であり、かつ、他方の入力
である(F)における条件判定結果の信号が1であるた
め、1となる。(D)FF入力の信号は1であるが、F
F12において、1命令サイクル遅延されるため、この
ステップでは、(C)cin端子の入力は、0である。
(M)MUX9制御信号は、現在実行中の命令がスペシ
ャルブランチではあるが、条件判定結果が偽であるた
め、0となる。MUX9制御信号が0であるため、MU
X9は、加算器2の第2の端子へ、+1を出力する。
(A)加算器の出力は、2である。なぜならば、加算器
2の出力は、現在のプログラムカウンタ1の値、即ち、
1と、MUX9の出力、即ち、+1と、第3の端子の入
力、即ち、0とを加算ことにより算出する。つまり、1
+1+0=2となる。
【0029】ステップ3において、ステップ2で述べた
加算器2の演算結果、即ち、2が、プログラムカウンタ
1の値2となる。そのため、プログラム記憶部3におい
て、アドレスが2の命令C=C−1(ELSEステート
メント)を実行する。(S)命令デコーダ5のスペシャ
ルブランチ命令の出力は、現在実行中の命令がスペシャ
ルブランチ命令ではないので、0となる。(T),
(F)における条件判定結果の信号は、1であっても0
であってもどちらでもよい。なぜならば、(T),
(F)の条件判定結果の信号如何に関わらず、(S)の
スペシャルブランチ命令の出力信号が0であることによ
り、(D)FF入力及び(M)MUX9制御信号が0と
なるからである。(C)cin端子の入力の信号は、1
である。これは、(D)FF入力の信号は0であるが、
ステップ2において発生したFF入力の信号1がFF1
2により、1命令サイクル遅延され、入力されるからで
ある。(M)MUX9制御信号が0であるため、MUX
9は+1を選択し、加算器2の第2の端子に出力する。
(A)加算器2の出力は、現在のプログラムカウンタ1
の値、即ち、2と、第2の端子に入力された値+1と、
cin端子に入力された値、即ち、1とを加算し、2+
1+1=4となる。これは、次に実行される命令のアド
レスが、現在実行中のアドレス2からアドレス3へ変更
されるのではなく、アドレス4へ変更されることを意味
し、暗黙のスキップ命令が発生されることを意味する。
このように、暗黙のスキップ命令の発生は、プログラム
カウンタ1の値の制御により実現される。
加算器2の演算結果、即ち、2が、プログラムカウンタ
1の値2となる。そのため、プログラム記憶部3におい
て、アドレスが2の命令C=C−1(ELSEステート
メント)を実行する。(S)命令デコーダ5のスペシャ
ルブランチ命令の出力は、現在実行中の命令がスペシャ
ルブランチ命令ではないので、0となる。(T),
(F)における条件判定結果の信号は、1であっても0
であってもどちらでもよい。なぜならば、(T),
(F)の条件判定結果の信号如何に関わらず、(S)の
スペシャルブランチ命令の出力信号が0であることによ
り、(D)FF入力及び(M)MUX9制御信号が0と
なるからである。(C)cin端子の入力の信号は、1
である。これは、(D)FF入力の信号は0であるが、
ステップ2において発生したFF入力の信号1がFF1
2により、1命令サイクル遅延され、入力されるからで
ある。(M)MUX9制御信号が0であるため、MUX
9は+1を選択し、加算器2の第2の端子に出力する。
(A)加算器2の出力は、現在のプログラムカウンタ1
の値、即ち、2と、第2の端子に入力された値+1と、
cin端子に入力された値、即ち、1とを加算し、2+
1+1=4となる。これは、次に実行される命令のアド
レスが、現在実行中のアドレス2からアドレス3へ変更
されるのではなく、アドレス4へ変更されることを意味
し、暗黙のスキップ命令が発生されることを意味する。
このように、暗黙のスキップ命令の発生は、プログラム
カウンタ1の値の制御により実現される。
【0030】なお、FF12は、他の遅延回路であって
もよい。また、ANDゲート11は、他のゲート回路で
あってもよい。また、上記例では、IF−THEN−E
LSE命令の場合を示したが、所定の条件を判定して2
種類のいずれかの一方を選択する分岐を伴う条件文な
ら、どのような命令に対しても上記発明と同じ効果を奏
する。
もよい。また、ANDゲート11は、他のゲート回路で
あってもよい。また、上記例では、IF−THEN−E
LSE命令の場合を示したが、所定の条件を判定して2
種類のいずれかの一方を選択する分岐を伴う条件文な
ら、どのような命令に対しても上記発明と同じ効果を奏
する。
【0031】以上のように、この実施の形態では、高級
言語のIF文を実行する際、暗黙のスキップ命令をハー
ドウェア上で発生させるスペシャルブランチ命令を備え
たプログラム制御装置について述べた。暗黙のスキップ
命令は、プログラムカウンタで指定するアドレスの値を
加算器で演算する際、通常の加算数に更に、+1を加算
するタイミングを制御することにより実現する。これ
は、通常のハードウェアにANDゲート、フリップフロ
ップを追加し、プログラムカウンタの値を計算する加算
器の未使用のcin端子を使用して実現する。そのた
め、通常用いるハードウェアに極めて少ないハードウェ
アの追加で実現できる。また、ハードウェア上で暗黙の
スキップ命令が発生されるため、従来使われていたジャ
ンプ命令を省くことができる。これにより、従来に比
べ、IF文から生成される機械語命令を1つ減らすこと
ができ、プログラムの実行時間を短縮することができ
る。また、IF文のための機械語命令を記憶するプログ
ラム記憶部の記憶領域も、より少なくすることができ
る。
言語のIF文を実行する際、暗黙のスキップ命令をハー
ドウェア上で発生させるスペシャルブランチ命令を備え
たプログラム制御装置について述べた。暗黙のスキップ
命令は、プログラムカウンタで指定するアドレスの値を
加算器で演算する際、通常の加算数に更に、+1を加算
するタイミングを制御することにより実現する。これ
は、通常のハードウェアにANDゲート、フリップフロ
ップを追加し、プログラムカウンタの値を計算する加算
器の未使用のcin端子を使用して実現する。そのた
め、通常用いるハードウェアに極めて少ないハードウェ
アの追加で実現できる。また、ハードウェア上で暗黙の
スキップ命令が発生されるため、従来使われていたジャ
ンプ命令を省くことができる。これにより、従来に比
べ、IF文から生成される機械語命令を1つ減らすこと
ができ、プログラムの実行時間を短縮することができ
る。また、IF文のための機械語命令を記憶するプログ
ラム記憶部の記憶領域も、より少なくすることができ
る。
【0032】
【発明の効果】この発明によれば、高級言語における条
件文を実行する時間を短くすることができる。また、こ
の発明によれば、条件文をコンパイルした機械語命令の
数を減らすことができ、プログラム記憶部の記憶領域を
減らすことができる。また、この発明によれば、通常用
いるハードウェアに極めて少ないハードウェアの追加で
実現することができる。
件文を実行する時間を短くすることができる。また、こ
の発明によれば、条件文をコンパイルした機械語命令の
数を減らすことができ、プログラム記憶部の記憶領域を
減らすことができる。また、この発明によれば、通常用
いるハードウェアに極めて少ないハードウェアの追加で
実現することができる。
【図1】 この発明の一実施の形態におけるプログラム
制御装置のブロック図である。
制御装置のブロック図である。
【図2】 図2における加算器の詳細なブロック図であ
る。
る。
【図3】 高級言語におけるIF文と対応するアセンブ
ラリストとフローグラフの図である。
ラリストとフローグラフの図である。
【図4】 IF文を図1に示したプログラム制御装置で
実行するA<Bの場合のタイミング図である。
実行するA<Bの場合のタイミング図である。
【図5】 IF文を図1に示したプログラム制御装置で
実行するA<Bではない場合のタイミング図である。
実行するA<Bではない場合のタイミング図である。
【図6】 高級言語におけるIF文と対応するアセンブ
ラコードを記憶するメモリを従来例1で説明するための
図である。
ラコードを記憶するメモリを従来例1で説明するための
図である。
【図7】 高級言語におけるIF文に対応する従来のア
センブラリストとフローグラフを従来例1で説明するた
めの図である。
センブラリストとフローグラフを従来例1で説明するた
めの図である。
【図8】 従来例2におけるブロック図である。
【図9】 従来例2の図8に示されたインストラクショ
ンデコーダの回路図である。
ンデコーダの回路図である。
【図10】 従来例2の図8に示されたスキップ制御回
路の他の回路例を示す図である。
路の他の回路例を示す図である。
1 プログラムカウンタ、2 加算器、3 プログラム
記憶部、4 命令レジスタ、5 命令デコーダ、6 条
件判定部、7 ORゲート、8,11 ANDゲート、
9 マルチプレクサ、10 インバータ、12 フリッ
プフロップ、13 加算制御部、21,22,23,2
j 全加算器。
記憶部、4 命令レジスタ、5 命令デコーダ、6 条
件判定部、7 ORゲート、8,11 ANDゲート、
9 マルチプレクサ、10 インバータ、12 フリッ
プフロップ、13 加算制御部、21,22,23,2
j 全加算器。
Claims (6)
- 【請求項1】 所定の条件を判定することにより、第1
と第2の2種類の動作命令のいずれか一方を選択する選
択命令と上記第1と第2の2種類の動作命令とその他の
命令とを、選択命令、第1の動作命令、第2の動作命
令、その他の命令の順に連続したアドレスに記憶するプ
ログラム記憶部と、 上記プログラム記憶部から読み出す命令のアドレスを指
示するプログラムカウンタと、 上記プログラムカウンタの値を計算する加算器と、 上記プログラム記憶部から上記プログラムカウンタによ
り指定されたアドレスに基づき読み出された命令を解読
する命令デコーダと、 上記選択命令の所定の条件を判定する条件判定部と、 上記条件判定部により第1の動作命令が選択され実行さ
れる場合、第1の動作命令を実行した後、プログラムカ
ウンタの値をその他の命令が記憶されたアドレスとする
加算制御部を備えたことを特徴とするプログラム制御装
置。 - 【請求項2】 上記加算制御部は、上記条件判定部の出
力と上記命令デコーダの出力に接続されるゲート回路と
上記ゲート回路の出力に接続される遅延回路を備え、 上記加算器は、プログラムカウンタの出力に接続される
第1の端子と、プログラムカウンタの増加値を入力する
第2の端子と、上記遅延回路の出力に接続される第3の
端子を備えたことを特徴とする請求項1記載のプログラ
ム制御装置。 - 【請求項3】 ゲート回路はアンド回路であり、遅延回
路はフリップフロップであり、上記条件判定部により第
1の動作命令を選択すると判定された場合、上記加算器
の第1の端子にプログラムカウンタから入力される現在
実行中の命令のアドレスの値が入力され、第2の端子に
値1が入力され、上記フリップフロップにより上記条件
判定部により第1の動作命令を選択すると判定する時点
より1インストラクションサイクル遅延されたハイレベ
ル信号が上記加算器の第3の端子に入力され、上記加算
器は、第1の端子にプログラムカウンタから入力される
現在実行中の命令のアドレスの値と第2の端子から入力
される値1と第3の端子から入力されるハイレベル信
号、即ち、値1とを加算することにより次に実行する命
令のアドレスを計算することを特徴とする請求項2記載
のプログラム制御装置。 - 【請求項4】 上記加算器の第3の端子は、最下位の桁
のキャリー入力端子であることを特徴とする請求項3記
載のプログラム制御装置。 - 【請求項5】 プログラムの各命令を記憶したプログラ
ム記憶部と、 プログラム記憶部のアドレスを指定するプログラムカウ
ンタと、 プログラムカウンタの出力に接続された第1の端子とプ
ログラムカウンタの増加値を入力する第2の端子と桁上
げ信号を入力するキャリー入力端子とを備え、 上記第1の端子から入力された値と、 上記第2の端子から入力された値と、 上記キャリー入力端子から入力された値とを加算して、
上記プログラムカウンタに出力する加算器とを備え、 上記キャリー入力端子に桁上げ信号を入力することによ
り、プログラムカウンタの値を制御することを特徴とす
るプログラム制御装置。 - 【請求項6】 上記桁上げ信号を、上記プログラム記憶
部に記憶された1つの命令をスキップする場合に発生さ
せることを特徴とする請求項5記載のプログラム制御装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5874896A JPH09251382A (ja) | 1996-03-15 | 1996-03-15 | プログラム制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5874896A JPH09251382A (ja) | 1996-03-15 | 1996-03-15 | プログラム制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09251382A true JPH09251382A (ja) | 1997-09-22 |
Family
ID=13093170
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5874896A Pending JPH09251382A (ja) | 1996-03-15 | 1996-03-15 | プログラム制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09251382A (ja) |
-
1996
- 1996-03-15 JP JP5874896A patent/JPH09251382A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6304954B1 (en) | Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline | |
| US5964861A (en) | Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set | |
| JP4412905B2 (ja) | 低電力動作制御装置、およびプログラム最適化装置 | |
| EP0093430A2 (en) | Pipeline data processing system | |
| US6725450B1 (en) | Program conversion apparatus, processor, and record medium | |
| US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
| JP2006053830A (ja) | 分岐予測装置および分岐予測方法 | |
| JP3462245B2 (ja) | 中央演算処理装置 | |
| US6425047B1 (en) | Process containing address decoders suited to improvements in clock speed | |
| JP3014682B2 (ja) | プログラム制御方法及び装置 | |
| US7197653B2 (en) | Microcontroller for fetching and decoding a frequency control signal together with an operation code | |
| US20040019773A1 (en) | Illegal instruction processing method and processor | |
| JPH01199233A (ja) | パイプライン処理における条件分岐制御方式 | |
| US5732252A (en) | Program counter system capable of incrementing or decrementing after a conditional jump instruction | |
| JPS5860355A (ja) | 情報処理装置 | |
| JPS59183434A (ja) | 命令先取り制御方式 | |
| JP2503223B2 (ja) | 先行制御方式 | |
| KR100244472B1 (ko) | 분기예측회로 | |
| JP2004062427A (ja) | マイクロプロセッサ | |
| JPS6049439A (ja) | マイクロプログラム制御方式 | |
| JP2001184231A (ja) | プログラム開発支援装置とその制御方法 | |
| JPH0520062A (ja) | データ処理装置 | |
| JPH0619705A (ja) | パイプライン制御方式 | |
| JPH05313890A (ja) | アドレス演算回路 | |
| JP2001084139A (ja) | 演算処理装置および演算処理方法 |