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
Application number
JP58129221A
Other languages
English (en)
Other versions
JPS6020242A (ja
Inventor
Atsushi Hasebe
Tomoyuki Yamamoto
Ryohei Kato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP58129221A priority Critical patent/JPS6020242A/ja
Publication of JPS6020242A publication Critical patent/JPS6020242A/ja
Publication of JPH0447851B2 publication Critical patent/JPH0447851B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラム制御回路に関し、特に、
マイクロプログラム論理方式のプロセツサシステ
ムに用いられるいわゆるアドレスシーケンサとし
てのプログラム制御回路に関する。
〔背景技術とその問題点〕
マイクロプログラム論理方式のプロセツサシス
テム又はマイクロコンピユータにおいては、マイ
クロプログラムメモリに記憶されたマイクロ命令
を所定の順序に従つて読み出すためのプログラム
制御回路(あるいはプログラムコントロール回
路、アドレスシーケンサ)が用いられている。こ
のプログラム制御回路として、最も単純には、ア
ドレスを順次1ずつインクリメントするいわゆる
アドレスカウンタが挙げられるが、さらに、読み
出されたマイクロ命令の内容や演算結果等に応じ
てプログラムの進行を制御する機能を備えたもの
が一般に用いられている。
ところで、このようなプログラム制御回路を用
いてプログラムのループ制御を行なう場合に、ル
ープ回数やリターンアドレスを一時的に記憶する
ためのメモリが必要とされるが、従来のプログラ
ム制御回路内には、ループ回数管理用の1個のレ
ジスタや数ワード程度のスタツクメモリが設けら
れているのみである。したがつて、1重ループの
プログラムのプログラム制御は行なえるが、2重
以上の多重ループは簡単には行なえず、プログラ
ム制御回路外部に、ループ回数やリターンアドレ
スを記憶するメモリ、ループ回数の値を変化させ
る手段、及びループ回数とリターンアドレスとを
プログラム制御回路に再ロードする手段等が必要
となる。このため、ハードウエアが繁雑化した
り、マイクロプログラムのステツプ数が著しく増
加したりする欠点が生じ、また処理速度が低下す
るという不都合も生じていた。
〔発明の目的〕
本発明は、上述の実情に鑑み、複数のループ回
数データ及び複数のリターンアドレスを格納する
メモリを内部に有し、多重ループのプログラムを
簡単かつ高速に実行可能とするようなプログラム
制御回路の提供を目的とする。
〔発明の概要〕
本発明に係るプログラム制御回路は、プログラ
ムメモリに記憶されたプログラムの読み出し順序
を制御するためのプログラム制御回路において、
上記プログラムメモリをアクセスするためのアド
レスを出力する出力ポートと、この出力アドレス
を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に送る。
マイクロプログラムカウンタ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に
対してデータをいわゆるラストイン・フアースト
アウト制御する。この他、スタツクポインタを変
化させずにリターンアドレスを読み出すこともで
きる。
次に、ループ回数スタツクメモリ23は、複数
のループ回数データを記憶可能な複数ワードを有
し、命令解釈ブロツク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に送られる。
以上のような構成において、多重ループを含む
プログラムを実行する場合の各部動作について説
明する。
第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による指示位置を示している。
このような2重ループプログラムを実行する場
合に、プログラムが第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のワードをそ
れぞれ指定する。
次に、第2のループの終了アドレスA3に達し
たときには、命令解釈ブロツク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内の同じワードに書き
込まれる。
そして、第2のループ処理がN2(初期値)回実
行されたとき、すなわちループ制御変数としての
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を選
択していることよりポツプ操作を行なつてもよ
い。
すなわち、このようなループの終了アドレス
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
に進む。
以上のようにして、第1のループについては
N1回、第2のループについては第1のループの
各回毎にN2回(全体としてN1×N2回)の実行が
それぞれなされる。
このような2重ループ処理を行なわせるための
マイクロプログラムとしては、上記各アドレス
A1,A2の各ステツプにループ開始命令をそれぞ
れのループ回数N1,N2とともに設け、上記各ア
ドレスA3,A4の各ステツプにループ終了命令を
設けるだけでよく、ループ回数やリターンアドレ
スのメモリ書き込み、読み出し操作、及びデクリ
メント操作等を含むループ動作制御については、
プログラム制御回路1内部の主として命令解釈ブ
ロツク16により上記ループ開始命令やループ終
了命令に応じて実行されるため、マイクロプログ
ラムの負担が大幅に軽減される。したがつて、マ
イクロプログラムのステツプ数やマイクロプログ
ラムメモリのワード数が少なくてすみ、そのアド
レシングのためのビツト数も少なくできる。しか
も、ループ回数やリターンアドレスを記憶するた
めのメモリがプログラム制御回路1内部に設けら
れており、外付けハードウエアが不要になるとと
もに、1ステツプでループ開始やループ終了が各
動作が行なえるため、処理時間を大幅に短縮でき
る。
なお、本発明は上記実施例のみに限定されるも
のではなく、例えば3重以上の多重ループの処理
についても同様に、簡潔なプログラムで短時間で
実行できる。また、プログラム制御回路(プログ
ラムコントローラ)の使用例は第2図のものに限
定されない。
〔発明の効果〕
本発明に係るプログラム制御回路によれば、多
重ループを含むプログラムの場合に、各ループ回
数をプログラム制御回路内のループ回数スタツク
メモリに記憶させておくことができるため、プロ
グラム制御回路外部のメモリ等を利用する必要が
なく、プログラムが簡潔になりステツプ数が大幅
に短縮され、プログラムメモリの容量も少なくて
すむためこれをアクセスするためのアドレスのビ
ツト数を減らすことができ、しかも処理時間を短
縮できる。
【図面の簡単な説明】
第1図は本発明に係るプログラム制御回路の一
実施例を示すブロツク回路図、第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加算して出力するための
    プログラムカウンタと、 このプログラムカウンタからのアドレスを記憶
    するリターンアドレススタツクメモリと、 入力ポートからのループ回数を記憶するための
    ループ回数スタツクメモリと、 このループ回数スタツクメモリに記憶されたル
    ープ回数を1減算するデクリメンタと、 このデクリメンタでの減算値がゼロとなつたか
    否かを検出するゼロ検出器と、 読み出されたプログラムの命令を解釈して各部
    の動作を制御する命令解釈手段と、 この命令解釈手段からのリターンアドレススタ
    ツク操作命令に応じて上記リターンアドレススタ
    ツクメモリのメモリワードを指示するスタツクポ
    インタと、 上記命令解釈手段からのループ回数スタツク操
    作命令に応じて上記ループ回数スタツクメモリの
    メモリワードを指示するスタツクポインタと、 上記命令解釈手段により切換制御され、少なく
    とも上記プログラムカウンタからのアドレス及び
    上記リターンアドレススタツクメモリからのリタ
    ーンアドレスのいずれかを選択して上記出力ポー
    トより出力するマルチプレクサとを具備して成る
    ことを特徴とするプログラム制御回路。
JP58129221A 1983-07-15 1983-07-15 プログラム制御回路 Granted JPS6020242A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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)