JPH0447851B2 - - Google Patents
Info
- Publication number
- JPH0447851B2 JPH0447851B2 JP58129221A JP12922183A JPH0447851B2 JP H0447851 B2 JPH0447851 B2 JP H0447851B2 JP 58129221 A JP58129221 A JP 58129221A JP 12922183 A JP12922183 A JP 12922183A JP H0447851 B2 JPH0447851 B2 JP H0447851B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- stack
- program
- loop
- 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 - Lifetime
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム制御回路に関し、特に、
マイクロプログラム論理方式のプロセツサシステ
ムに用いられるいわゆるアドレスシーケンサとし
てのプログラム制御回路に関する。
マイクロプログラム論理方式のプロセツサシステ
ムに用いられるいわゆるアドレスシーケンサとし
てのプログラム制御回路に関する。
マイクロプログラム論理方式のプロセツサシス
テム又はマイクロコンピユータにおいては、マイ
クロプログラムメモリに記憶されたマイクロ命令
を所定の順序に従つて読み出すためのプログラム
制御回路(あるいはプログラムコントロール回
路、アドレスシーケンサ)が用いられている。こ
のプログラム制御回路として、最も単純には、ア
ドレスを順次1ずつインクリメントするいわゆる
アドレスカウンタが挙げられるが、さらに、読み
出されたマイクロ命令の内容や演算結果等に応じ
てプログラムの進行を制御する機能を備えたもの
が一般に用いられている。
テム又はマイクロコンピユータにおいては、マイ
クロプログラムメモリに記憶されたマイクロ命令
を所定の順序に従つて読み出すためのプログラム
制御回路(あるいはプログラムコントロール回
路、アドレスシーケンサ)が用いられている。こ
のプログラム制御回路として、最も単純には、ア
ドレスを順次1ずつインクリメントするいわゆる
アドレスカウンタが挙げられるが、さらに、読み
出されたマイクロ命令の内容や演算結果等に応じ
てプログラムの進行を制御する機能を備えたもの
が一般に用いられている。
ところで、このようなプログラム制御回路を用
いてプログラムのループ制御を行なう場合に、ル
ープ回数やリターンアドレスを一時的に記憶する
ためのメモリが必要とされるが、従来のプログラ
ム制御回路内には、ループ回数管理用の1個のレ
ジスタや数ワード程度のスタツクメモリが設けら
れているのみである。したがつて、1重ループの
プログラムのプログラム制御は行なえるが、2重
以上の多重ループは簡単には行なえず、プログラ
ム制御回路外部に、ループ回数やリターンアドレ
スを記憶するメモリ、ループ回数の値を変化させ
る手段、及びループ回数とリターンアドレスとを
プログラム制御回路に再ロードする手段等が必要
となる。このため、ハードウエアが繁雑化した
り、マイクロプログラムのステツプ数が著しく増
加したりする欠点が生じ、また処理速度が低下す
るという不都合も生じていた。
いてプログラムのループ制御を行なう場合に、ル
ープ回数やリターンアドレスを一時的に記憶する
ためのメモリが必要とされるが、従来のプログラ
ム制御回路内には、ループ回数管理用の1個のレ
ジスタや数ワード程度のスタツクメモリが設けら
れているのみである。したがつて、1重ループの
プログラムのプログラム制御は行なえるが、2重
以上の多重ループは簡単には行なえず、プログラ
ム制御回路外部に、ループ回数やリターンアドレ
スを記憶するメモリ、ループ回数の値を変化させ
る手段、及びループ回数とリターンアドレスとを
プログラム制御回路に再ロードする手段等が必要
となる。このため、ハードウエアが繁雑化した
り、マイクロプログラムのステツプ数が著しく増
加したりする欠点が生じ、また処理速度が低下す
るという不都合も生じていた。
本発明は、上述の実情に鑑み、複数のループ回
数データ及び複数のリターンアドレスを格納する
メモリを内部に有し、多重ループのプログラムを
簡単かつ高速に実行可能とするようなプログラム
制御回路の提供を目的とする。
数データ及び複数のリターンアドレスを格納する
メモリを内部に有し、多重ループのプログラムを
簡単かつ高速に実行可能とするようなプログラム
制御回路の提供を目的とする。
本発明に係るプログラム制御回路は、プログラ
ムメモリに記憶されたプログラムの読み出し順序
を制御するためのプログラム制御回路において、
上記プログラムメモリをアクセスするためのアド
レスを出力する出力ポートと、この出力アドレス
を1加算して出力するためのプログラムカウンタ
と、このプログラムカウンタからのアドレスを記
憶するリターンアドレススタツクメモリと、入力
ポートからのループ回数を記憶するためのループ
回数スタツクメモリと、このループ回数スタツク
メモリに記憶されたループ回数を1減算するデク
リメンタと、このデクリメンタでの減算値がゼロ
となつたか否かを検出するゼロ検出器と、読み出
されたプログラムの命令を解釈して各部の動作を
制御する命令解釈手段と、この命令解釈手段から
のリターンアドレススタツク操作命令に応じて上
記リターンアドレススタツクメモリのメモリワー
ドを指示するスタツクポインタと、上記命令解釈
手段からのループ回数スタツク操作命令に応じて
上記ループ回数スタツクメモリのメモリワードを
指示するスタツクポインタと、上記命令解釈手段
により切換制御され、少なくとも上記プログラム
カウンタからのアドレス及び上記リターンアドレ
ススタツクメモリからのリターンアドレスのいず
れかを選択して上記出力ポートより出力するマル
チプレクサとを具備して成ることを特徴としてい
る。
ムメモリに記憶されたプログラムの読み出し順序
を制御するためのプログラム制御回路において、
上記プログラムメモリをアクセスするためのアド
レスを出力する出力ポートと、この出力アドレス
を1加算して出力するためのプログラムカウンタ
と、このプログラムカウンタからのアドレスを記
憶するリターンアドレススタツクメモリと、入力
ポートからのループ回数を記憶するためのループ
回数スタツクメモリと、このループ回数スタツク
メモリに記憶されたループ回数を1減算するデク
リメンタと、このデクリメンタでの減算値がゼロ
となつたか否かを検出するゼロ検出器と、読み出
されたプログラムの命令を解釈して各部の動作を
制御する命令解釈手段と、この命令解釈手段から
のリターンアドレススタツク操作命令に応じて上
記リターンアドレススタツクメモリのメモリワー
ドを指示するスタツクポインタと、上記命令解釈
手段からのループ回数スタツク操作命令に応じて
上記ループ回数スタツクメモリのメモリワードを
指示するスタツクポインタと、上記命令解釈手段
により切換制御され、少なくとも上記プログラム
カウンタからのアドレス及び上記リターンアドレ
ススタツクメモリからのリターンアドレスのいず
れかを選択して上記出力ポートより出力するマル
チプレクサとを具備して成ることを特徴としてい
る。
以下、本発明に係るプログラム制御回路の好ま
しい一実施例について、図面を参照しながら説明
する。
しい一実施例について、図面を参照しながら説明
する。
第1図は、本発明の一実施例としてのプログラ
ム制御回路1の内部構成を示すブロツク図であ
り、第2図はこのプログラム制御回路1を用いて
構成されるマイクロコンピユータの要部を示すブ
ロツク図である。これらの第1図および第2図に
おいて、プログラム制御回路1は、マイクロプロ
グラムメモリ2に記憶されているマイクロ命令の
実行順序を制御するために、このマイクロプログ
ラムメモリ2の読み出しアドレスを出力するもの
であり、プログラム制御回路1の内部では、マル
チプレクサ11により例えば4種類(4系統)の
アドレスデータのうちの1つを選択して出力する
ようにしている。すなわち、マルチプレクサ11
には、入力ポート12からの直接的なアドレスデ
ータと、先行するマイクロ命令にてレジスタ13
に格納され保持されているアドレスデータと、リ
ターンアドレススタツクメモリ14からのリター
ンアドレスデータと、マイクロプログラムカウン
タ15からの順次1ずつインクリメントされるア
ドレスデータとが供給されており、このマルチプ
レクサ11は、命令解釈ブロツク16からの選択
制御信号に応じて上記4種類のアドレスデータの
うちの1つを選択し、バツフアゲート17を介し
て出力ポート18に送る。
ム制御回路1の内部構成を示すブロツク図であ
り、第2図はこのプログラム制御回路1を用いて
構成されるマイクロコンピユータの要部を示すブ
ロツク図である。これらの第1図および第2図に
おいて、プログラム制御回路1は、マイクロプロ
グラムメモリ2に記憶されているマイクロ命令の
実行順序を制御するために、このマイクロプログ
ラムメモリ2の読み出しアドレスを出力するもの
であり、プログラム制御回路1の内部では、マル
チプレクサ11により例えば4種類(4系統)の
アドレスデータのうちの1つを選択して出力する
ようにしている。すなわち、マルチプレクサ11
には、入力ポート12からの直接的なアドレスデ
ータと、先行するマイクロ命令にてレジスタ13
に格納され保持されているアドレスデータと、リ
ターンアドレススタツクメモリ14からのリター
ンアドレスデータと、マイクロプログラムカウン
タ15からの順次1ずつインクリメントされるア
ドレスデータとが供給されており、このマルチプ
レクサ11は、命令解釈ブロツク16からの選択
制御信号に応じて上記4種類のアドレスデータの
うちの1つを選択し、バツフアゲート17を介し
て出力ポート18に送る。
マイクロプログラムカウンタ15は、インクリ
メンタ21からの出力データを、クロツク入力端
子22からのクロツクパルスに応じて取り込み出
力するような、一種のラツチあるいはレジスタで
あり、このマイクロプログラムカウンタ15から
出力されたカウントアドレスデータは、上記マル
チプレクサ11のみならず上記リターンアドレス
のスタツクメモリ14のデータ入力端子に供給さ
れている。ここで、クロツク入力端子22に入力
されるクロツクパルスは、上記マイクロプログラ
ムカウンタ15の他に、リターンアドレススタツ
クメモリ14、ループ回数スタツクメモリ23、
これらの各スタツクメモリのスタツクポインタ2
5,26、デクリメンタ27、及びレジスタ13
に供給されており、上記マイクロ命令読み出しの
クロツクサイクルを決定する。インクリメンタ2
1は、マルチプレクサ11からの出力データを1
だけ増加して(インクリメントして)マイクロプ
ログラムカウンタ15に送る。リターンアドレス
のスタツクメモリ14は、命令解釈ブロツク16
からのリターンアドレススタツク操作命令に応じ
て、マイクロプログラムカウンタ15からのカウ
ントアドレスデータをスタツクポインタ25によ
り指示されるメモリワードに書き込み、あるいは
スタツクポインタ25により指示されるメモリワ
ードの内容を読み出してマルチプレクサ11に送
る。スタツクポインタ25は、上記リターンアド
レススタツク操作命令である例えばプツシユ、ポ
ツプ命令に応じて、ポインタ値をインクリメント
あるいはデクリメントし、スタツクメモリ14に
対してデータをいわゆるラストイン・フアースト
アウト制御する。この他、スタツクポインタを変
化させずにリターンアドレスを読み出すこともで
きる。
メンタ21からの出力データを、クロツク入力端
子22からのクロツクパルスに応じて取り込み出
力するような、一種のラツチあるいはレジスタで
あり、このマイクロプログラムカウンタ15から
出力されたカウントアドレスデータは、上記マル
チプレクサ11のみならず上記リターンアドレス
のスタツクメモリ14のデータ入力端子に供給さ
れている。ここで、クロツク入力端子22に入力
されるクロツクパルスは、上記マイクロプログラ
ムカウンタ15の他に、リターンアドレススタツ
クメモリ14、ループ回数スタツクメモリ23、
これらの各スタツクメモリのスタツクポインタ2
5,26、デクリメンタ27、及びレジスタ13
に供給されており、上記マイクロ命令読み出しの
クロツクサイクルを決定する。インクリメンタ2
1は、マルチプレクサ11からの出力データを1
だけ増加して(インクリメントして)マイクロプ
ログラムカウンタ15に送る。リターンアドレス
のスタツクメモリ14は、命令解釈ブロツク16
からのリターンアドレススタツク操作命令に応じ
て、マイクロプログラムカウンタ15からのカウ
ントアドレスデータをスタツクポインタ25によ
り指示されるメモリワードに書き込み、あるいは
スタツクポインタ25により指示されるメモリワ
ードの内容を読み出してマルチプレクサ11に送
る。スタツクポインタ25は、上記リターンアド
レススタツク操作命令である例えばプツシユ、ポ
ツプ命令に応じて、ポインタ値をインクリメント
あるいはデクリメントし、スタツクメモリ14に
対してデータをいわゆるラストイン・フアースト
アウト制御する。この他、スタツクポインタを変
化させずにリターンアドレスを読み出すこともで
きる。
次に、ループ回数スタツクメモリ23は、複数
のループ回数データを記憶可能な複数ワードを有
し、命令解釈ブロツク16からのループ回数スタ
ツク操作命令に応じて、入力ポート12からのル
ープ回数データをスタツクポインタ26により指
示されるメモリワードに書き込み、あるいはスタ
ツクポインタ26により指示されるメモリワード
の内容をデクリメンタ27に送り1だけ減算(デ
クリメント)して再び当該メモリワードに書き込
む。このときのデクリメント操作は、命令解釈ブ
ロツクからのデクリメント操作命令に応じて行な
われる。さらに、デクリメンタ27においてデク
リメントされた値はゼロ検出器28に送られ、ゼ
ロとなつたときにゼロ検出出力が命令解釈ブロツ
ク16に送られる。なお、ループ回数スタツクメ
モリ23も、スタツクポインタ26の値のインク
リメント、デクリメント動作を伴なつた書き込
み、読み出し操作であるプツシユ、ポツプ操作が
可能であることは勿論である。
のループ回数データを記憶可能な複数ワードを有
し、命令解釈ブロツク16からのループ回数スタ
ツク操作命令に応じて、入力ポート12からのル
ープ回数データをスタツクポインタ26により指
示されるメモリワードに書き込み、あるいはスタ
ツクポインタ26により指示されるメモリワード
の内容をデクリメンタ27に送り1だけ減算(デ
クリメント)して再び当該メモリワードに書き込
む。このときのデクリメント操作は、命令解釈ブ
ロツクからのデクリメント操作命令に応じて行な
われる。さらに、デクリメンタ27においてデク
リメントされた値はゼロ検出器28に送られ、ゼ
ロとなつたときにゼロ検出出力が命令解釈ブロツ
ク16に送られる。なお、ループ回数スタツクメ
モリ23も、スタツクポインタ26の値のインク
リメント、デクリメント動作を伴なつた書き込
み、読み出し操作であるプツシユ、ポツプ操作が
可能であることは勿論である。
ところで、プログラム制御回路1の出力ポート
18からのアドレスデータによりマイクロプログ
ラムメモリ2から読み出されたマイクロ命令は、
1ワード例えば数十ビツトで構成され、この1ワ
ード中に複数の命令を含んでいる。この読み出さ
れたマイクロ命令は、パイプラインレジスタ3を
介して各命令実行ユニツト、例えばALU(論理演
算ユニツト)4、乗算器、データメモリ、コント
ロールバス等に送られ、また一部がプログラム制
御回路1の命令解釈ブロツク16の命令入力端子
19aに送られる。さらに、マイクロ命令中のル
ープ回数やサブルーチン先頭アドレス等のデータ
は、上記入力ポート12を介してプログラム制御
回路1内に取り込まれる。この他、ALU4にお
ける演算に応じたコンデイシヨンコードが、プロ
グラム制御回路1の命令解釈ブロツク16のコン
デイシヨンコード入力端子19bに送られる。
18からのアドレスデータによりマイクロプログ
ラムメモリ2から読み出されたマイクロ命令は、
1ワード例えば数十ビツトで構成され、この1ワ
ード中に複数の命令を含んでいる。この読み出さ
れたマイクロ命令は、パイプラインレジスタ3を
介して各命令実行ユニツト、例えばALU(論理演
算ユニツト)4、乗算器、データメモリ、コント
ロールバス等に送られ、また一部がプログラム制
御回路1の命令解釈ブロツク16の命令入力端子
19aに送られる。さらに、マイクロ命令中のル
ープ回数やサブルーチン先頭アドレス等のデータ
は、上記入力ポート12を介してプログラム制御
回路1内に取り込まれる。この他、ALU4にお
ける演算に応じたコンデイシヨンコードが、プロ
グラム制御回路1の命令解釈ブロツク16のコン
デイシヨンコード入力端子19bに送られる。
以上のような構成において、多重ループを含む
プログラムを実行する場合の各部動作について説
明する。
プログラムを実行する場合の各部動作について説
明する。
第3図は、一例として、2重ループを含むプロ
グラムのアドレス及び各スタツクメモリ14,2
3の内容を示すものであり、アドレスA1で第1
のループが開始されて、次のアドレスA1+1及
びループ回数N1が各スタツクメモリ14,23
にそれぞれプツシユされる。この第1のループ処
理はアドレスA4まで及んでおり、このアドレス
A4でループ回数N1のチエツクを行ない、N1回に
達していないときにはアドレスA1+1に戻り、
N1回に達したときには次のアドレスA4+1に進
む。これらのアドレスA1+1からA4までの間に、
第2のループ処理が含まれており、アドレスA2
にて第2のループ処理が開始され、次のアドレス
A2+1及びループ回数N2が各スタツクメモリ1
4,23にそれぞれプツシユされる。そして、ア
ドレスA3にてループ回数N2のチエツクがなされ、
ループ回数がN2未満のときにはアドレスA2+1
に戻り、N2に達したときにはアドレスA3+1に
進む。なお、第3図の各スタツクメモリ14,2
3に図示された矢印は、上記各スタツクポインタ
25,26による指示位置を示している。
グラムのアドレス及び各スタツクメモリ14,2
3の内容を示すものであり、アドレスA1で第1
のループが開始されて、次のアドレスA1+1及
びループ回数N1が各スタツクメモリ14,23
にそれぞれプツシユされる。この第1のループ処
理はアドレスA4まで及んでおり、このアドレス
A4でループ回数N1のチエツクを行ない、N1回に
達していないときにはアドレスA1+1に戻り、
N1回に達したときには次のアドレスA4+1に進
む。これらのアドレスA1+1からA4までの間に、
第2のループ処理が含まれており、アドレスA2
にて第2のループ処理が開始され、次のアドレス
A2+1及びループ回数N2が各スタツクメモリ1
4,23にそれぞれプツシユされる。そして、ア
ドレスA3にてループ回数N2のチエツクがなされ、
ループ回数がN2未満のときにはアドレスA2+1
に戻り、N2に達したときにはアドレスA3+1に
進む。なお、第3図の各スタツクメモリ14,2
3に図示された矢印は、上記各スタツクポインタ
25,26による指示位置を示している。
このような2重ループプログラムを実行する場
合に、プログラムが第1のループの開始アドレス
A1に達し、このA1行のマイクロ命令によりルー
プ開始動作が行なわれる。すなわち、命令解釈ブ
ロツク16にループ開始命令が供給されて解釈さ
れることにより、第4図の太線に示すように、マ
ルチプレクサ11においてプログラムカウンタ1
5からのアドレスA1+1の出力が選択されると
ともに、スタツクポインタ25により指定される
リターンアドレススタツクメモリ14内のワード
に上記アドレスデータA1+1が書き込まれる。
これは、スタツクのプツシユ操作であり、メモリ
への書き込み動作と同時にスタツクポインタが例
えばインクリメントされる。また、ループ回数に
ついても同様に、スタツクポインタ26により指
定されるループ回数スタツクメモリ23内のワー
ドに入力ポート12からのループ回数データN1
を書き込むようなスタツクのプツシユ操作が行な
われる。
合に、プログラムが第1のループの開始アドレス
A1に達し、このA1行のマイクロ命令によりルー
プ開始動作が行なわれる。すなわち、命令解釈ブ
ロツク16にループ開始命令が供給されて解釈さ
れることにより、第4図の太線に示すように、マ
ルチプレクサ11においてプログラムカウンタ1
5からのアドレスA1+1の出力が選択されると
ともに、スタツクポインタ25により指定される
リターンアドレススタツクメモリ14内のワード
に上記アドレスデータA1+1が書き込まれる。
これは、スタツクのプツシユ操作であり、メモリ
への書き込み動作と同時にスタツクポインタが例
えばインクリメントされる。また、ループ回数に
ついても同様に、スタツクポインタ26により指
定されるループ回数スタツクメモリ23内のワー
ドに入力ポート12からのループ回数データN1
を書き込むようなスタツクのプツシユ操作が行な
われる。
次に、プログラムが第2のループ開始アドレス
A2に達すると、第5図の太線に示すように、命
令解釈ブロツク16にループ開始命令が供給され
ることに応じて、リターンアドレススタツクメモ
リ14にプログラムカウンタ15からのアドレス
A2+1がプツシユされ、ループ回数スタツクメ
モリ23に入力ポート12からのループ回数N2
がプツシユされるとともに、マルチプレクサ11
はプログラムカウンタ15からのアドレスA2+
1を選択して出力する。なおこのとき、各スタツ
クポインタ25,26は、第4図に示す状態より
それぞれ1だけ例えばインクリメントされたアド
レスの各スタツクメモリ14,23のワードをそ
れぞれ指定する。
A2に達すると、第5図の太線に示すように、命
令解釈ブロツク16にループ開始命令が供給され
ることに応じて、リターンアドレススタツクメモ
リ14にプログラムカウンタ15からのアドレス
A2+1がプツシユされ、ループ回数スタツクメ
モリ23に入力ポート12からのループ回数N2
がプツシユされるとともに、マルチプレクサ11
はプログラムカウンタ15からのアドレスA2+
1を選択して出力する。なおこのとき、各スタツ
クポインタ25,26は、第4図に示す状態より
それぞれ1だけ例えばインクリメントされたアド
レスの各スタツクメモリ14,23のワードをそ
れぞれ指定する。
次に、第2のループの終了アドレスA3に達し
たときには、命令解釈ブロツク16に例えばルー
プ終了命令が送られ、第6図の太線に示すよう
に、ループ回数スタツクメモリ23からのループ
回数データN2がポツプされてデクリメンタ27
に送られる。デクリメンタ27は、このデータ
N2を1減算してゼロ検出器28に送り、ゼロ検
出器28はN2−1がゼロか否かを判別する。ゼ
ロ検出器28からの検出出力は命令解釈ブロツク
16に送られ、非ゼロのときは第6図のような動
作制御を、またゼロのときには第7図のような動
作制御をそれぞれ行なう。
たときには、命令解釈ブロツク16に例えばルー
プ終了命令が送られ、第6図の太線に示すよう
に、ループ回数スタツクメモリ23からのループ
回数データN2がポツプされてデクリメンタ27
に送られる。デクリメンタ27は、このデータ
N2を1減算してゼロ検出器28に送り、ゼロ検
出器28はN2−1がゼロか否かを判別する。ゼ
ロ検出器28からの検出出力は命令解釈ブロツク
16に送られ、非ゼロのときは第6図のような動
作制御を、またゼロのときには第7図のような動
作制御をそれぞれ行なう。
すなわち、上記減算データN2−1が非ゼロの
場合には、第6図に示すように、減算データを第
2ループ回数データとして(N2=N2−1)ルー
プ回数スタツクメモリ23にプツシユするととも
に、マルチプレクサ11によりスタツクメモリ1
4からのリターンアドレスA2+1を選択して出
力し、次のステツプでアドレスA2+1に戻るよ
うにプログラムの進行を制御する。したがつて、
第2のループ処理プログラムが1回実行される毎
にループ回数データN2は1ずつ減算され、ルー
プ回数スタツクメモリ23内の同じワードに書き
込まれる。
場合には、第6図に示すように、減算データを第
2ループ回数データとして(N2=N2−1)ルー
プ回数スタツクメモリ23にプツシユするととも
に、マルチプレクサ11によりスタツクメモリ1
4からのリターンアドレスA2+1を選択して出
力し、次のステツプでアドレスA2+1に戻るよ
うにプログラムの進行を制御する。したがつて、
第2のループ処理プログラムが1回実行される毎
にループ回数データN2は1ずつ減算され、ルー
プ回数スタツクメモリ23内の同じワードに書き
込まれる。
そして、第2のループ処理がN2(初期値)回実
行されたとき、すなわちループ制御変数としての
N2−1がゼロとなつたときには、ゼロ検出器2
8からの検出出力に応じて命令解釈ブロツク16
は、第7図に示すように、マルチプレクサ11に
よりマイクロプログラムカウンタ15からのアド
レスA3+1を選択して出力し、次のステツプで
はプログラムメモリ上での次のアドレスA3+1
に進むように制御する。なお、第7図において
は、アドレスA3の命令実行の際のループ回数ス
タツクメモリ23をポツプした後のデータの流れ
を太線で示しており、スタツクメモリ23及びス
タツクポインタ26へのポツプ制御信号の流れを
省略している。この場合、スタツクメモリ23は
ポツプ操作されたまま、デクリメンタ27の減算
データのプツシユ操作は行なわれず、スタツクポ
インタ26は第1ループ回数N1の記憶されたワ
ードを指示している。
行されたとき、すなわちループ制御変数としての
N2−1がゼロとなつたときには、ゼロ検出器2
8からの検出出力に応じて命令解釈ブロツク16
は、第7図に示すように、マルチプレクサ11に
よりマイクロプログラムカウンタ15からのアド
レスA3+1を選択して出力し、次のステツプで
はプログラムメモリ上での次のアドレスA3+1
に進むように制御する。なお、第7図において
は、アドレスA3の命令実行の際のループ回数ス
タツクメモリ23をポツプした後のデータの流れ
を太線で示しており、スタツクメモリ23及びス
タツクポインタ26へのポツプ制御信号の流れを
省略している。この場合、スタツクメモリ23は
ポツプ操作されたまま、デクリメンタ27の減算
データのプツシユ操作は行なわれず、スタツクポ
インタ26は第1ループ回数N1の記憶されたワ
ードを指示している。
また、これら第6図、第7図において、リター
ンアドレススタツクメモリ14やスタツクポイン
タ25への制御信号の流れも図示を省略している
が、第6図の場合には、スタツクポインタ25の
値を変化させずにスタツクメモリ14の読み出し
のみを行ない、第7図の場合には、スタツクポイ
ンタ25の値のみを例えばデクリメントするか、
あるいはマルチプレクサ11がカウンタ15を選
択していることよりポツプ操作を行なつてもよ
い。
ンアドレススタツクメモリ14やスタツクポイン
タ25への制御信号の流れも図示を省略している
が、第6図の場合には、スタツクポインタ25の
値を変化させずにスタツクメモリ14の読み出し
のみを行ない、第7図の場合には、スタツクポイ
ンタ25の値のみを例えばデクリメントするか、
あるいはマルチプレクサ11がカウンタ15を選
択していることよりポツプ操作を行なつてもよ
い。
すなわち、このようなループの終了アドレス
A3におけるスタツク操作について説明すると、
ループ回数スタツクメモリ23に関しては、先ず
常にデクリメンタ27にデータをポツプし、デク
リメント後のゼロ検出器28からの検出出力に応
じて、非ゼロのときのみ上記減算データをプツシ
ユする。したがつて、減算データがゼロとなる
N2回ループ終了時には、上記ポツプのみが行な
われ、スタツクポインタ26は第1のループ回数
N1のデータが記憶されているワードを指示して
いる。また、リターンアドレススタツクメモリ1
4に関しては、上記減算データが非ゼロのときに
はスタツクポインタ25の値は変化せず、スタツ
クメモリ14のアドレスデータA2+1が読み出
され、また上記減算データがゼロのときにはスタ
ツクポインタ25の値が例えばデクリメントされ
て、アドレスデータA1+1が記憶されているワ
ードが指示される。
A3におけるスタツク操作について説明すると、
ループ回数スタツクメモリ23に関しては、先ず
常にデクリメンタ27にデータをポツプし、デク
リメント後のゼロ検出器28からの検出出力に応
じて、非ゼロのときのみ上記減算データをプツシ
ユする。したがつて、減算データがゼロとなる
N2回ループ終了時には、上記ポツプのみが行な
われ、スタツクポインタ26は第1のループ回数
N1のデータが記憶されているワードを指示して
いる。また、リターンアドレススタツクメモリ1
4に関しては、上記減算データが非ゼロのときに
はスタツクポインタ25の値は変化せず、スタツ
クメモリ14のアドレスデータA2+1が読み出
され、また上記減算データがゼロのときにはスタ
ツクポインタ25の値が例えばデクリメントされ
て、アドレスデータA1+1が記憶されているワ
ードが指示される。
次に、第1のループの終了アドレスA4に達し
たときには、上記アドレスA3に達したときと同
様に、ループ回数N1がスタツクメモリ23より
デクリメンタ27にポツプされ、1減算されてゼ
ロ検出器28でゼロか否かが判別され、非ゼロの
ときは減算データをスタツクメモリ23にプツシ
ユするとともに、マルチプレクサ11がスタツク
メモリ14からのリターンアドレスA1+1を選
択して、次のステツプでアドレスA1+1に戻る。
また、第1のループがN1回実行されて上記減算
データがゼロとなるときには、マルチプレクサ1
1がプログラムカウンタ15からのアドレスA4
+1を選択し、次のステツプでアドレスA4+1
に進む。
たときには、上記アドレスA3に達したときと同
様に、ループ回数N1がスタツクメモリ23より
デクリメンタ27にポツプされ、1減算されてゼ
ロ検出器28でゼロか否かが判別され、非ゼロの
ときは減算データをスタツクメモリ23にプツシ
ユするとともに、マルチプレクサ11がスタツク
メモリ14からのリターンアドレスA1+1を選
択して、次のステツプでアドレスA1+1に戻る。
また、第1のループがN1回実行されて上記減算
データがゼロとなるときには、マルチプレクサ1
1がプログラムカウンタ15からのアドレスA4
+1を選択し、次のステツプでアドレスA4+1
に進む。
以上のようにして、第1のループについては
N1回、第2のループについては第1のループの
各回毎にN2回(全体としてN1×N2回)の実行が
それぞれなされる。
N1回、第2のループについては第1のループの
各回毎にN2回(全体としてN1×N2回)の実行が
それぞれなされる。
このような2重ループ処理を行なわせるための
マイクロプログラムとしては、上記各アドレス
A1,A2の各ステツプにループ開始命令をそれぞ
れのループ回数N1,N2とともに設け、上記各ア
ドレスA3,A4の各ステツプにループ終了命令を
設けるだけでよく、ループ回数やリターンアドレ
スのメモリ書き込み、読み出し操作、及びデクリ
メント操作等を含むループ動作制御については、
プログラム制御回路1内部の主として命令解釈ブ
ロツク16により上記ループ開始命令やループ終
了命令に応じて実行されるため、マイクロプログ
ラムの負担が大幅に軽減される。したがつて、マ
イクロプログラムのステツプ数やマイクロプログ
ラムメモリのワード数が少なくてすみ、そのアド
レシングのためのビツト数も少なくできる。しか
も、ループ回数やリターンアドレスを記憶するた
めのメモリがプログラム制御回路1内部に設けら
れており、外付けハードウエアが不要になるとと
もに、1ステツプでループ開始やループ終了が各
動作が行なえるため、処理時間を大幅に短縮でき
る。
マイクロプログラムとしては、上記各アドレス
A1,A2の各ステツプにループ開始命令をそれぞ
れのループ回数N1,N2とともに設け、上記各ア
ドレスA3,A4の各ステツプにループ終了命令を
設けるだけでよく、ループ回数やリターンアドレ
スのメモリ書き込み、読み出し操作、及びデクリ
メント操作等を含むループ動作制御については、
プログラム制御回路1内部の主として命令解釈ブ
ロツク16により上記ループ開始命令やループ終
了命令に応じて実行されるため、マイクロプログ
ラムの負担が大幅に軽減される。したがつて、マ
イクロプログラムのステツプ数やマイクロプログ
ラムメモリのワード数が少なくてすみ、そのアド
レシングのためのビツト数も少なくできる。しか
も、ループ回数やリターンアドレスを記憶するた
めのメモリがプログラム制御回路1内部に設けら
れており、外付けハードウエアが不要になるとと
もに、1ステツプでループ開始やループ終了が各
動作が行なえるため、処理時間を大幅に短縮でき
る。
なお、本発明は上記実施例のみに限定されるも
のではなく、例えば3重以上の多重ループの処理
についても同様に、簡潔なプログラムで短時間で
実行できる。また、プログラム制御回路(プログ
ラムコントローラ)の使用例は第2図のものに限
定されない。
のではなく、例えば3重以上の多重ループの処理
についても同様に、簡潔なプログラムで短時間で
実行できる。また、プログラム制御回路(プログ
ラムコントローラ)の使用例は第2図のものに限
定されない。
本発明に係るプログラム制御回路によれば、多
重ループを含むプログラムの場合に、各ループ回
数をプログラム制御回路内のループ回数スタツク
メモリに記憶させておくことができるため、プロ
グラム制御回路外部のメモリ等を利用する必要が
なく、プログラムが簡潔になりステツプ数が大幅
に短縮され、プログラムメモリの容量も少なくて
すむためこれをアクセスするためのアドレスのビ
ツト数を減らすことができ、しかも処理時間を短
縮できる。
重ループを含むプログラムの場合に、各ループ回
数をプログラム制御回路内のループ回数スタツク
メモリに記憶させておくことができるため、プロ
グラム制御回路外部のメモリ等を利用する必要が
なく、プログラムが簡潔になりステツプ数が大幅
に短縮され、プログラムメモリの容量も少なくて
すむためこれをアクセスするためのアドレスのビ
ツト数を減らすことができ、しかも処理時間を短
縮できる。
第1図は本発明に係るプログラム制御回路の一
実施例を示すブロツク回路図、第2図は第1図の
プログラム制御回路の使用例を示すブロツク図、
第3図は2重ループを示すプログラムのアドレス
及びスタツクメモリ内容を示す図、第4図ないし
第7図は第1図の回路の動作を説明するための図
である。 1……プログラム制御回路、2……マイクロプ
ログラムメモリ、11……マルチプレクサ、12
……入力ポート、14……リターンアドレススタ
ツクメモリ、15……マイクロプログラムカウン
タ、16……命令解釈ブロツク、18……出力ポ
ート、21……インクリメンタ、23……ループ
回数スタツクメモリ、25,26……スタツクポ
インタ、27……デクリメンタ、28……ゼロ検
出器。
実施例を示すブロツク回路図、第2図は第1図の
プログラム制御回路の使用例を示すブロツク図、
第3図は2重ループを示すプログラムのアドレス
及びスタツクメモリ内容を示す図、第4図ないし
第7図は第1図の回路の動作を説明するための図
である。 1……プログラム制御回路、2……マイクロプ
ログラムメモリ、11……マルチプレクサ、12
……入力ポート、14……リターンアドレススタ
ツクメモリ、15……マイクロプログラムカウン
タ、16……命令解釈ブロツク、18……出力ポ
ート、21……インクリメンタ、23……ループ
回数スタツクメモリ、25,26……スタツクポ
インタ、27……デクリメンタ、28……ゼロ検
出器。
Claims (1)
- 【特許請求の範囲】 1 プログラムメモリに記憶されたプログラムの
読み出し順序を制御するためのプログラム制御回
路において、 上記プログラムメモリをアクセスするためのア
ドレスを出力する出力ポートと、 この出力アドレスを1加算して出力するための
プログラムカウンタと、 このプログラムカウンタからのアドレスを記憶
するリターンアドレススタツクメモリと、 入力ポートからのループ回数を記憶するための
ループ回数スタツクメモリと、 このループ回数スタツクメモリに記憶されたル
ープ回数を1減算するデクリメンタと、 このデクリメンタでの減算値がゼロとなつたか
否かを検出するゼロ検出器と、 読み出されたプログラムの命令を解釈して各部
の動作を制御する命令解釈手段と、 この命令解釈手段からのリターンアドレススタ
ツク操作命令に応じて上記リターンアドレススタ
ツクメモリのメモリワードを指示するスタツクポ
インタと、 上記命令解釈手段からのループ回数スタツク操
作命令に応じて上記ループ回数スタツクメモリの
メモリワードを指示するスタツクポインタと、 上記命令解釈手段により切換制御され、少なく
とも上記プログラムカウンタからのアドレス及び
上記リターンアドレススタツクメモリからのリタ
ーンアドレスのいずれかを選択して上記出力ポー
トより出力するマルチプレクサとを具備して成る
ことを特徴とするプログラム制御回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58129221A JPS6020242A (ja) | 1983-07-15 | 1983-07-15 | プログラム制御回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58129221A JPS6020242A (ja) | 1983-07-15 | 1983-07-15 | プログラム制御回路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6020242A JPS6020242A (ja) | 1985-02-01 |
| JPH0447851B2 true JPH0447851B2 (ja) | 1992-08-05 |
Family
ID=15004135
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58129221A Granted JPS6020242A (ja) | 1983-07-15 | 1983-07-15 | プログラム制御回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6020242A (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61259339A (ja) * | 1985-05-13 | 1986-11-17 | Hitachi Ltd | シ−ケンス制御装置 |
| JPS62169232A (ja) * | 1986-01-22 | 1987-07-25 | Oki Electric Ind Co Ltd | 信号処理プロセツサ |
| JPH0679271B2 (ja) * | 1987-04-24 | 1994-10-05 | 株式会社日立製作所 | ル−プ制御回路 |
| JPS6458023A (en) * | 1987-08-28 | 1989-03-06 | Ricoh Kk | Microprogram controller |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56140444A (en) * | 1980-04-03 | 1981-11-02 | Nec Corp | Microprogram control system |
| US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
-
1983
- 1983-07-15 JP JP58129221A patent/JPS6020242A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6020242A (ja) | 1985-02-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5619704A (en) | Asynchronous interrupt inhibit method and apparatus for avoiding interrupt of an inseparable operation | |
| US4430706A (en) | Branch prediction apparatus and method for a data processing system | |
| US3889243A (en) | Stack mechanism for a data processor | |
| GB2399899A (en) | Active memory with three control units | |
| EP0062658A4 (en) | STACK STORAGE FOR A DATA PROCESSING SYSTEM. | |
| EP0010196B1 (en) | Control circuit and process for digital storage devices | |
| US4093983A (en) | Fast and normal rate instruction fetching | |
| JPH0447851B2 (ja) | ||
| EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
| US5287483A (en) | Prefetched operand storing system for an information processor | |
| US4124892A (en) | Data processing systems | |
| KR100321745B1 (ko) | 외부메모리액세스를위한마이크로컨트롤러유닛 | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| US4816992A (en) | Method of operating a data processing system in response to an interrupt | |
| US5557772A (en) | Data processing apparatus including a register storing a parameter and a microinstruction execution arrangement including a correction arrangement for causing a first value of the parameter to be change to a second, correct value | |
| JPH0373010B2 (ja) | ||
| JPH0222413B2 (ja) | ||
| JPS62245439A (ja) | シンボリツク処理システムおよび方法 | |
| AU540728B2 (en) | Stack for a data processor | |
| EP0167333A2 (en) | Data processing apparatus with data type classifier | |
| JPH0232650B2 (ja) | ||
| JPH0243626A (ja) | コンピュータ・プロセッサの実行速度を制御する装置 | |
| JPS60193046A (ja) | 命令例外検出方式 | |
| JPS6346856B2 (ja) | ||
| JPS6229813B2 (ja) |