JPH0417529B2 - - Google Patents
Info
- Publication number
- JPH0417529B2 JPH0417529B2 JP60066236A JP6623685A JPH0417529B2 JP H0417529 B2 JPH0417529 B2 JP H0417529B2 JP 60066236 A JP60066236 A JP 60066236A JP 6623685 A JP6623685 A JP 6623685A JP H0417529 B2 JPH0417529 B2 JP H0417529B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- stack
- instruction
- registers
- program counter
- 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
- 238000000034 method Methods 0.000 claims description 12
- 230000010365 information processing Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔概要〕
本発明はデータ処理の途中、現在実行している
命令アドレスから別の命令アドレスに分岐するた
め使用するレジスタ1個のビツト幅が、プログラ
ムカウンタのビツト幅より小さい場合、アドレス
スタツクを使用した正確な動作のできる間接命令
分岐方式である。
命令アドレスから別の命令アドレスに分岐するた
め使用するレジスタ1個のビツト幅が、プログラ
ムカウンタのビツト幅より小さい場合、アドレス
スタツクを使用した正確な動作のできる間接命令
分岐方式である。
[産業上の利用分野]
本発明はデータ処理装置の命令分岐方式、特に
プログラムカウンタ以外にアドレススタツクを使
用して間接アドレス分岐を実行する方式に関す
る。
プログラムカウンタ以外にアドレススタツクを使
用して間接アドレス分岐を実行する方式に関す
る。
[従来の技術]
第2図に示すようなプロセツサ1を使用する情
報処理装置において、マイクロプログラムカウン
タ2に当初の番地を入れて動作を開始する。カウ
ンタの番地はメモリ3に送られ、その番地をアド
レスとしてメモリ3の内容が読出される。読出さ
た内容の命令を解読し、それに基づく動作をプロ
セツサ1が実行する。カウンタ2の値はそのとき
自動的に+1され、メモリの次の番地の内容を読
出して行く。若しプログラムの内容として命令の
中にアドレスを与えるものがあつたとき、それは
直接カウンタ2に格納され、次にプロセツサ1の
動作はその番地へジヤンプして行き、メモリ3の
内容を再び読出す。このようにカウンタ2の歩進
動作以外に他の番地へジヤンプして行く動作を直
接アドレスジヤンプまたは直接アドレス分岐とい
う。このように分岐命令自体で分岐先のアドレス
を指定する直接アドレス分岐方式と、分岐命令が
例えばレジスタ4を指定しており、そのレジスタ
4に格納されているアドレスに分岐する間接アド
レス分岐方式がある。レジスタ4の内容をプログ
ラムカウンタにロードすることにより間接アドレ
ス分岐方式は開始される。後者の間接アドレス分
岐は動作プログラムが分岐アドレスを意識する必
要がないため便利である。
報処理装置において、マイクロプログラムカウン
タ2に当初の番地を入れて動作を開始する。カウ
ンタの番地はメモリ3に送られ、その番地をアド
レスとしてメモリ3の内容が読出される。読出さ
た内容の命令を解読し、それに基づく動作をプロ
セツサ1が実行する。カウンタ2の値はそのとき
自動的に+1され、メモリの次の番地の内容を読
出して行く。若しプログラムの内容として命令の
中にアドレスを与えるものがあつたとき、それは
直接カウンタ2に格納され、次にプロセツサ1の
動作はその番地へジヤンプして行き、メモリ3の
内容を再び読出す。このようにカウンタ2の歩進
動作以外に他の番地へジヤンプして行く動作を直
接アドレスジヤンプまたは直接アドレス分岐とい
う。このように分岐命令自体で分岐先のアドレス
を指定する直接アドレス分岐方式と、分岐命令が
例えばレジスタ4を指定しており、そのレジスタ
4に格納されているアドレスに分岐する間接アド
レス分岐方式がある。レジスタ4の内容をプログ
ラムカウンタにロードすることにより間接アドレ
ス分岐方式は開始される。後者の間接アドレス分
岐は動作プログラムが分岐アドレスを意識する必
要がないため便利である。
[発明が解決しようとする問題点]
間接アドレス分岐方式では準備するレジスタ4
のビツト幅と、プログラムカウンタのビツト幅
は、等しいかカウンタの方が小さいことが必要で
ある。若しプログラムカウンタのビツト幅がレジ
スタのビツト幅より大きい場合、分岐先を変える
ため、レジスタの内容を変更しても、プログラム
カウンタが更新できる内容はアドレスの一部とな
り、正常に分岐ができない。
のビツト幅と、プログラムカウンタのビツト幅
は、等しいかカウンタの方が小さいことが必要で
ある。若しプログラムカウンタのビツト幅がレジ
スタのビツト幅より大きい場合、分岐先を変える
ため、レジスタの内容を変更しても、プログラム
カウンタが更新できる内容はアドレスの一部とな
り、正常に分岐ができない。
本発明の目的は前述の欠点を改善するため、プ
ログラムカウンタのビツト幅がレジスタのビツト
幅よりも大きいデータ処理装置においても、間接
アドレス分岐を可能とする命令分岐方式を提供す
ることにある。
ログラムカウンタのビツト幅がレジスタのビツト
幅よりも大きいデータ処理装置においても、間接
アドレス分岐を可能とする命令分岐方式を提供す
ることにある。
[問題点を解決するための手段]
本発明の構成要件は、レジスタに予め格納され
たデータをプログラムカウンタにロードし、次に
プログラムカウンタを読出したアドレスによりメ
モリの内容を実行する情報処理装置の命令分岐方
式において、1個のレジスタのビツト幅をプログ
ラムカウンタのビツト幅より小さい構成としたレ
ジスタ2個と、プログラムカウンタのビツト幅と
等しいビツト幅のアドレススタツクと、最新の戻
りアドレスが格納してあるアドレススタツク上の
位置を指し示すスタツクポインタと、前記2個の
レジスタの内一方を前記アドレススタツクの下位
部分へ転送するパスと、前記2個のレジスタの内
他方を前記アドレススタツクの上位部分へ転送す
るパスとを具備し、前記2個のレジスタに予め格
納されたデータを分岐アドレスとして分岐する場
合に、第1の転送命令により前記2個のレジスタ
の内一方を前記アドレススタツクの下位部分へ転
送すると同時にスタツクポインタを更新させ、第
2の転送命令により前記2個のレジスタの内他方
を前記アドレススタツクの上位部分へ転送し、し
かるのちサブルーチンからのリターンを実行する
ためのリターン命令を実行することにより、アド
レススタツクを読出して得た分岐アドレスをプロ
グラムカウンタにセツトして、該分岐アドレスに
分岐することを特徴とする。
たデータをプログラムカウンタにロードし、次に
プログラムカウンタを読出したアドレスによりメ
モリの内容を実行する情報処理装置の命令分岐方
式において、1個のレジスタのビツト幅をプログ
ラムカウンタのビツト幅より小さい構成としたレ
ジスタ2個と、プログラムカウンタのビツト幅と
等しいビツト幅のアドレススタツクと、最新の戻
りアドレスが格納してあるアドレススタツク上の
位置を指し示すスタツクポインタと、前記2個の
レジスタの内一方を前記アドレススタツクの下位
部分へ転送するパスと、前記2個のレジスタの内
他方を前記アドレススタツクの上位部分へ転送す
るパスとを具備し、前記2個のレジスタに予め格
納されたデータを分岐アドレスとして分岐する場
合に、第1の転送命令により前記2個のレジスタ
の内一方を前記アドレススタツクの下位部分へ転
送すると同時にスタツクポインタを更新させ、第
2の転送命令により前記2個のレジスタの内他方
を前記アドレススタツクの上位部分へ転送し、し
かるのちサブルーチンからのリターンを実行する
ためのリターン命令を実行することにより、アド
レススタツクを読出して得た分岐アドレスをプロ
グラムカウンタにセツトして、該分岐アドレスに
分岐することを特徴とする。
[作用]
2個のレジスタを利用して全アドレスを両レジ
スタの一旦分割格納し、次にプログラムカウンタ
に格納するようにして、間接命令分岐方式におけ
る動作を確実なものとする。
スタの一旦分割格納し、次にプログラムカウンタ
に格納するようにして、間接命令分岐方式におけ
る動作を確実なものとする。
[実施例]
第1図は本発明の実施例の構成を示すブロツク
図である。第1図において、2はマイクロプログ
ラムカウンタで、21はその上位例えば4ビツト
部分、22は下位例えば16ビツト部分、31,3
2はデータバスで後述するアドレススタツク5に
対する印加用バス、33,34は図示しないメモ
リに対するアドレスバス、41,42は第1レジ
スタと第2レジスタで例えば各16ビツトのもの
で、マイクロプログラムカウンタのビツト幅例え
ば20ビツト幅より小さいもの、5はアドレススタ
ツク、51,52はアドレススタツク5のアドレ
ス上位側51例えば4ビツトと、下位側52例え
ば16ビツトとするもの、6はスタツクポインタ例
えば5ビツトとするものを示している。7はマル
チプレクサ、8はトランシーバで切換信号により
データ伝送方向を変えるものを示し、レジスタ4
1からトランシーバ8を経てスタツク51へ転送
するときなどに使用するものである。
図である。第1図において、2はマイクロプログ
ラムカウンタで、21はその上位例えば4ビツト
部分、22は下位例えば16ビツト部分、31,3
2はデータバスで後述するアドレススタツク5に
対する印加用バス、33,34は図示しないメモ
リに対するアドレスバス、41,42は第1レジ
スタと第2レジスタで例えば各16ビツトのもの
で、マイクロプログラムカウンタのビツト幅例え
ば20ビツト幅より小さいもの、5はアドレススタ
ツク、51,52はアドレススタツク5のアドレ
ス上位側51例えば4ビツトと、下位側52例え
ば16ビツトとするもの、6はスタツクポインタ例
えば5ビツトとするものを示している。7はマル
チプレクサ、8はトランシーバで切換信号により
データ伝送方向を変えるものを示し、レジスタ4
1からトランシーバ8を経てスタツク51へ転送
するときなどに使用するものである。
いま、通常のサブルーチンコールと等しい命令
としての、ジヤンプアンドリンク命令とリターン
命令との組合せで命令ができているとき、当初に
ジヤンプアンドリンク命令で、現在のプログラム
カウンタ2の値20ビツトをアドレススタツク5の
中でスタツクポインタ6の指示する位置にセーブ
する。なおスタツクポインタ6の値はこのアドレ
ススタツクにプログラムカウンタの値が格納され
る前に自動的に+1されている。
としての、ジヤンプアンドリンク命令とリターン
命令との組合せで命令ができているとき、当初に
ジヤンプアンドリンク命令で、現在のプログラム
カウンタ2の値20ビツトをアドレススタツク5の
中でスタツクポインタ6の指示する位置にセーブ
する。なおスタツクポインタ6の値はこのアドレ
ススタツクにプログラムカウンタの値が格納され
る前に自動的に+1されている。
ジヤンプアンドリンク命令の後半で、その命令
により直接指定されジヤンプすべきアドレスをプ
ログラムカウンタ2にロードする。その結果新し
いアドレス即ちサブルーチンの先頭アドレスにジ
ヤンプする。サブルーチンの処理の途中に更に第
2ジヤンプアンドリンク命令があつたとき、現在
のプログラムカウンタの値は、以前のスタツクポ
インタの値が更に+1され、スタツク5の前述の
位置の次にセーブされる。第2サブルーチンの先
頭アドレスは第2ジヤンプアンドリンク命令によ
り指示されるので、それをプログラムカウンタ2
にロードしてジヤンプして行く。
により直接指定されジヤンプすべきアドレスをプ
ログラムカウンタ2にロードする。その結果新し
いアドレス即ちサブルーチンの先頭アドレスにジ
ヤンプする。サブルーチンの処理の途中に更に第
2ジヤンプアンドリンク命令があつたとき、現在
のプログラムカウンタの値は、以前のスタツクポ
インタの値が更に+1され、スタツク5の前述の
位置の次にセーブされる。第2サブルーチンの先
頭アドレスは第2ジヤンプアンドリンク命令によ
り指示されるので、それをプログラムカウンタ2
にロードしてジヤンプして行く。
第2サブルーチンが終わるとそこにリターン命
令が書いてあるから、それを実行しスタツクポイ
ンタ6が第2サブルーチンで指定した位置のセー
ブアドレスを読出して戻る。即ち第1サブルーチ
ンでジヤンプした次のアドレスへ帰つたこととな
る。なおスタツクポインタ6はリターン命令実行
後−1される。そして第1サブルーチンが終わつ
たときリターン命令が書いてあるから、原プログ
ラムの次のアドレスへ戻つて行く。このように、
通常はサブルーチンコールで使用されるアドレス
スタツクを、本発明では間接アドレス分岐に使用
する。本発明の実施例では、レジスタ41,42
をアドレススタツク5へムーブ(MV)命令によ
り転送し、スタツク5からマイクロプログラムカ
ウンタ2にリターン命令によりロードするとき、
MV命令による転送をそれぞれ例えば上位4ビツ
トと下位16ビツトとを分けて行うことにより、有
効な間接アドレス分岐がなされる。即ちレジスタ
41には上位4ビツト、42には下位16ビツトを
予め格納しておき、アドレススタツク5の51に
は上位4ビツトを、52には下位16ビツトをそれ
ぞれ転送する。スタツクポインタは、下位側の転
送の時にのみ+1されるようにする。このときト
ランシーバ8について、82の側により導通させ
転送処理を行う。次にリターン命令によりアドレ
ススタツク5を続出した値がプログラムカウンタ
の21,22へそれぞれ同時にロードされ、した
がつてジヤンプ動作が行われる。このようにして
レジスタ41,42へ格納したアドレスへの分岐
が有効に行われる。
令が書いてあるから、それを実行しスタツクポイ
ンタ6が第2サブルーチンで指定した位置のセー
ブアドレスを読出して戻る。即ち第1サブルーチ
ンでジヤンプした次のアドレスへ帰つたこととな
る。なおスタツクポインタ6はリターン命令実行
後−1される。そして第1サブルーチンが終わつ
たときリターン命令が書いてあるから、原プログ
ラムの次のアドレスへ戻つて行く。このように、
通常はサブルーチンコールで使用されるアドレス
スタツクを、本発明では間接アドレス分岐に使用
する。本発明の実施例では、レジスタ41,42
をアドレススタツク5へムーブ(MV)命令によ
り転送し、スタツク5からマイクロプログラムカ
ウンタ2にリターン命令によりロードするとき、
MV命令による転送をそれぞれ例えば上位4ビツ
トと下位16ビツトとを分けて行うことにより、有
効な間接アドレス分岐がなされる。即ちレジスタ
41には上位4ビツト、42には下位16ビツトを
予め格納しておき、アドレススタツク5の51に
は上位4ビツトを、52には下位16ビツトをそれ
ぞれ転送する。スタツクポインタは、下位側の転
送の時にのみ+1されるようにする。このときト
ランシーバ8について、82の側により導通させ
転送処理を行う。次にリターン命令によりアドレ
ススタツク5を続出した値がプログラムカウンタ
の21,22へそれぞれ同時にロードされ、した
がつてジヤンプ動作が行われる。このようにして
レジスタ41,42へ格納したアドレスへの分岐
が有効に行われる。
アドレススタツク5の上位部分51に格納され
ているアドレス内容を確認したいとき、トランシ
ーバ8のうち81の方を導通させレジスタ41に
転送すれば、それを読出せば良い。
ているアドレス内容を確認したいとき、トランシ
ーバ8のうち81の方を導通させレジスタ41に
転送すれば、それを読出せば良い。
[発明の効果]
このようにして本発明によると、アドレススタ
ツクとしてのビツト幅よりビツト幅の大きいもの
を使用する時、分岐すべきアドレスを一旦上位と
下位で別々に格納し、その値をリターン命令でプ
ログラムカウンタに同時にロードするから、正確
なジヤンプ動作が容易にできる効果を有する。
ツクとしてのビツト幅よりビツト幅の大きいもの
を使用する時、分岐すべきアドレスを一旦上位と
下位で別々に格納し、その値をリターン命令でプ
ログラムカウンタに同時にロードするから、正確
なジヤンプ動作が容易にできる効果を有する。
第1図は本発明の実施例の構成を示す図、第2
図は従来の命令分岐方式を説明する図である。 1……プロセツサ、2……マイクロプログラム
カウンタ、3……主メモリ、4,41,42……
レジスタ、5……アドレススタツク、51,52
……アドレススタツク5の上位、下位側、6……
アドレスポインタ。
図は従来の命令分岐方式を説明する図である。 1……プロセツサ、2……マイクロプログラム
カウンタ、3……主メモリ、4,41,42……
レジスタ、5……アドレススタツク、51,52
……アドレススタツク5の上位、下位側、6……
アドレスポインタ。
Claims (1)
- 【特許請求の範囲】 1 レジスタに予め格納されたデータをプログラ
ムカウンタにロードし、次にプログラムカウンタ
を読出したアドレスによりメモリの内容を実行す
る情報処理装置の命令分岐方式において、 1個のレジスタのビツト幅をプログラムカウン
タのビツト幅より小さい構成としたレジスタ2個
と、 プログラムカウンタのビツト幅と等しいビツト
幅のアドレススタツクと、 最新の戻りアドレスが格納してあるアドレスス
タツク上の位置を指し示すスタツクポインタと、 前記2個のレジスタの内一方を前記アドレスス
タツクの下位部分へ転送するパスと、 前記2個のレジスタの内他方を前記アドレスス
タツクの上位部分へ転送するパスとを具備し、 前記2個のレジスタに予め格納されたデータを
分岐アドレスとして分岐する場合に、第1の転送
命令により前記2個のレジスタの内一方を前記ア
ドレススタツクの下位部分へ転送すると同時にス
タツクポインタを更新させ、 第2の転送命令により前記2個のレジスタの内
他方を前記アドレススタツクの上位部分へ転送
し、 しかるのちサブルーチンからのリターンを実行
するためのリターン命令を実行することにより、
アドレススタツクを読出して得た分岐アドレスを
プログラムカウンタにセツトして、該分岐アドレ
スに分岐すること、 を特徴とする情報処理装置の命令分岐方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60066236A JPS61281339A (ja) | 1985-03-29 | 1985-03-29 | 情報処理装置の命令分岐方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60066236A JPS61281339A (ja) | 1985-03-29 | 1985-03-29 | 情報処理装置の命令分岐方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61281339A JPS61281339A (ja) | 1986-12-11 |
JPH0417529B2 true JPH0417529B2 (ja) | 1992-03-26 |
Family
ID=13310016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60066236A Granted JPS61281339A (ja) | 1985-03-29 | 1985-03-29 | 情報処理装置の命令分岐方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61281339A (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52143725A (en) * | 1976-05-26 | 1977-11-30 | Hitachi Ltd | Data processing unit |
JPS6033633A (ja) * | 1983-08-05 | 1985-02-21 | Canon Inc | 電子計算機 |
-
1985
- 1985-03-29 JP JP60066236A patent/JPS61281339A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52143725A (en) * | 1976-05-26 | 1977-11-30 | Hitachi Ltd | Data processing unit |
JPS6033633A (ja) * | 1983-08-05 | 1985-02-21 | Canon Inc | 電子計算機 |
Also Published As
Publication number | Publication date |
---|---|
JPS61281339A (ja) | 1986-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4314332A (en) | Memory control system | |
JPH0417529B2 (ja) | ||
JP2677458B2 (ja) | システムコール実行装置 | |
JPH0528431B2 (ja) | ||
JP2509244B2 (ja) | 分岐命令処理装置 | |
JP2883488B2 (ja) | 命令処理装置 | |
JP2506591B2 (ja) | 補助処理装置 | |
JPS6152747A (ja) | マイクロプロセツサ | |
JP2883489B2 (ja) | 命令処理装置 | |
JPS6337439B2 (ja) | ||
JP2573391B2 (ja) | プログラマブルコントローラ | |
JP2507791B2 (ja) | デ―タ処理装置 | |
JP2621898B2 (ja) | 外部参照型アドレス定数の動的解決処理方式 | |
JPS6234238A (ja) | マイクロプロセツサ | |
JPS5920055A (ja) | 分岐命令のリトライ方式 | |
JP2657947B2 (ja) | データ処理装置 | |
JPS63120336A (ja) | メモリアクセスモ−ド切替え方式 | |
JPS6236576B2 (ja) | ||
JPS6037937B2 (ja) | イニシャル・プログラム・ロ−ディング方式 | |
JPH04167146A (ja) | 情報処理装置のアドレストレース方式 | |
JPS60126731A (ja) | プログラム制御方法 | |
JPH05250161A (ja) | マイクロコンピュータ装置 | |
JPS6118224B2 (ja) | ||
JPS62248045A (ja) | プログラム実行方式 | |
JPH01175632A (ja) | マイクロプログラム制御装置 |