JP3164690B2 - アドレス制御装置 - Google Patents
アドレス制御装置Info
- Publication number
- JP3164690B2 JP3164690B2 JP08355193A JP8355193A JP3164690B2 JP 3164690 B2 JP3164690 B2 JP 3164690B2 JP 08355193 A JP08355193 A JP 08355193A JP 8355193 A JP8355193 A JP 8355193A JP 3164690 B2 JP3164690 B2 JP 3164690B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- clock
- register
- address information
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
に関し、特にマイクロコンピュータにおけるアドレス制
御装置の改良に関する。
に関し、特にマイクロコンピュータにおけるアドレス制
御装置の改良に関する。
【0002】
【従来の技術】従来のマイクロコンピュータのアドレス
制御装置の例を図7を参照して説明する。同図において
データバス1にレジスタ部2が接続される。レジスタ部
2は、図示しないマルチプレクサを介して入出力端子を
共通に接続した複数のレジスタからなり、Bレジスタ、
…、HLレジスタ、スタックポインタSP、プログラム
カウンタPC、ラッチを含んでいる。レジスタ部2に
は、図8に示すシステムクロック信号群のうち、クロッ
ク信号T1 及びT4 が供給され、データラッチ等に用い
られる。レジスタ部2の出力端子は内部アドレスラッチ
3に接続される。内部アドレスラッチ3には、図8に示
すシステムクロック信号群のうち、クロック信号T2 が
供給され、内部アドレスラッチ3はクロック信号T2 の
供給に応答してレジスタ部2が出力するアドレス情報を
取込み、保持する。内部アドレスラッチ3は、保持する
アドレス情報をアドレスラッチ5及びインクリメンタ/
ディクリメンタ4に出力する。上述したレジスタ部2、
内部ラッチ3及びインクリメンタ/ディクリメンタ4
は、いわゆるレジスタファイルを形成する。アドレスラ
ッチ5は、供給されるクロック信号T3 に応答してアド
レス情報を取込み、アドレス情報ADを記憶装置8に与
える。インクリメンタ/ディクリメンタ4は、インクリ
メント(増加指令)信号に応答して内部アドレスラッチ
3から供給されるアドレス情報に+1を加えてレジスタ
部2に出力する。また、デクリメント(減少指令)信号
に応答して内部アドレスラッチ3から供給されるアドレ
ス情報から1を減じてレジスタ部2に出力する。インク
リメント信号及びデクリメント信号は命令デコーダ7か
ら供給されるインクリメント/デクリメント切換信号
(以下、切換信号という)S1 によって表示される。命
令デコーダ7は、記憶装置8から命令レジスタ12にフ
ェッチした命令コードに対応した制御出力を発生し、図
示しないゲート等を制御して信号経路の形成、レジスタ
の選択等を行う。後述する命令をフェッチしたとき、上
記切換信号S1によってインクリメント信号或いはデク
リメント信号を供給する。記憶装置8は、供給されるア
ドレス情報ADに対応する記憶内容をデータバス1に出
力し、或いはアドレス情報ADに対応する記憶位置にデ
ータバス1から供給される情報を記憶する。テンポラリ
レジスタ9及びAレジスタ11は、データバス1に接続
されて情報を一時的に記憶する。テンポラリレジスタ9
及びAレジスタ11の各出力端子は算術論理演算ユニッ
ト(以下、ALUという)10の入力端子に夫々接続さ
れている。ALU10における情報の算術・論理演算の
実行結果はデータバス1に出力される。
制御装置の例を図7を参照して説明する。同図において
データバス1にレジスタ部2が接続される。レジスタ部
2は、図示しないマルチプレクサを介して入出力端子を
共通に接続した複数のレジスタからなり、Bレジスタ、
…、HLレジスタ、スタックポインタSP、プログラム
カウンタPC、ラッチを含んでいる。レジスタ部2に
は、図8に示すシステムクロック信号群のうち、クロッ
ク信号T1 及びT4 が供給され、データラッチ等に用い
られる。レジスタ部2の出力端子は内部アドレスラッチ
3に接続される。内部アドレスラッチ3には、図8に示
すシステムクロック信号群のうち、クロック信号T2 が
供給され、内部アドレスラッチ3はクロック信号T2 の
供給に応答してレジスタ部2が出力するアドレス情報を
取込み、保持する。内部アドレスラッチ3は、保持する
アドレス情報をアドレスラッチ5及びインクリメンタ/
ディクリメンタ4に出力する。上述したレジスタ部2、
内部ラッチ3及びインクリメンタ/ディクリメンタ4
は、いわゆるレジスタファイルを形成する。アドレスラ
ッチ5は、供給されるクロック信号T3 に応答してアド
レス情報を取込み、アドレス情報ADを記憶装置8に与
える。インクリメンタ/ディクリメンタ4は、インクリ
メント(増加指令)信号に応答して内部アドレスラッチ
3から供給されるアドレス情報に+1を加えてレジスタ
部2に出力する。また、デクリメント(減少指令)信号
に応答して内部アドレスラッチ3から供給されるアドレ
ス情報から1を減じてレジスタ部2に出力する。インク
リメント信号及びデクリメント信号は命令デコーダ7か
ら供給されるインクリメント/デクリメント切換信号
(以下、切換信号という)S1 によって表示される。命
令デコーダ7は、記憶装置8から命令レジスタ12にフ
ェッチした命令コードに対応した制御出力を発生し、図
示しないゲート等を制御して信号経路の形成、レジスタ
の選択等を行う。後述する命令をフェッチしたとき、上
記切換信号S1によってインクリメント信号或いはデク
リメント信号を供給する。記憶装置8は、供給されるア
ドレス情報ADに対応する記憶内容をデータバス1に出
力し、或いはアドレス情報ADに対応する記憶位置にデ
ータバス1から供給される情報を記憶する。テンポラリ
レジスタ9及びAレジスタ11は、データバス1に接続
されて情報を一時的に記憶する。テンポラリレジスタ9
及びAレジスタ11の各出力端子は算術論理演算ユニッ
ト(以下、ALUという)10の入力端子に夫々接続さ
れている。ALU10における情報の算術・論理演算の
実行結果はデータバス1に出力される。
【0003】上述したアドレス制御装置の各部回路にお
いては、特に図示しないが図8に示されるシステムクロ
ック信号が使用され、回路動作の同期が確保される。ク
ロック信号は、信号T1 〜T4 の順番に発生する。
いては、特に図示しないが図8に示されるシステムクロ
ック信号が使用され、回路動作の同期が確保される。ク
ロック信号は、信号T1 〜T4 の順番に発生する。
【0004】次に、アドレス制御装置の従来の動作につ
いて説明する。ここでは、後述する本発明の動作に関係
する命令について説明する。理解を容易にするため、上
記命令を次の3種類に分類して述べる。 (I) レジスタ間接オートポストインクリメントアドレッシング (HL+) レジスタ間接オートプリデクリメントアドレッシング (-HL) (II)スタックポインタ操作命令 PUSH/POP サブルーチンコール/リターン CALL/RET 割り込み/割り込みリターン INT/RETI (III) その他 JR d (1) 種類(I) の命令動作について、 LD B,(HL+) の場合 B ← (HL),HL←HL+1 本命令は、HLという名前で示されるレジスタ(HLレ
ジスタ)の内容をアドレス情報とし、この内容でアドレ
スされる記憶手段の内容をBという名前で示されるレジ
スタ(Bレジスタ)へ転送する。HLレジスタの内容は
HLレジスタ読み出し後にインクリメント(1加算)さ
れ、再びHLレジスタへ書き込まれる。なお、動作例で
はアドレスラッチ5にアドレス情報がセットされた時点
で、転送終了と見做してHLレジスタへの書込みを行っ
ている。
いて説明する。ここでは、後述する本発明の動作に関係
する命令について説明する。理解を容易にするため、上
記命令を次の3種類に分類して述べる。 (I) レジスタ間接オートポストインクリメントアドレッシング (HL+) レジスタ間接オートプリデクリメントアドレッシング (-HL) (II)スタックポインタ操作命令 PUSH/POP サブルーチンコール/リターン CALL/RET 割り込み/割り込みリターン INT/RETI (III) その他 JR d (1) 種類(I) の命令動作について、 LD B,(HL+) の場合 B ← (HL),HL←HL+1 本命令は、HLという名前で示されるレジスタ(HLレ
ジスタ)の内容をアドレス情報とし、この内容でアドレ
スされる記憶手段の内容をBという名前で示されるレジ
スタ(Bレジスタ)へ転送する。HLレジスタの内容は
HLレジスタ読み出し後にインクリメント(1加算)さ
れ、再びHLレジスタへ書き込まれる。なお、動作例で
はアドレスラッチ5にアドレス情報がセットされた時点
で、転送終了と見做してHLレジスタへの書込みを行っ
ている。
【0005】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図9に示すタイ
ミングチャートを参照して説明する。同図は、本命令に
よるレジスタ間の情報の転送の様子を示しており、第1
クロックでレジスタ部2からプログラムカウンタPCの
アドレス情報が読み出され、このプログラムカウンタP
Cのアドレス情報が第2クロックで内部アドレスラッチ
3に保持される。更に、アドレス情報は第3クロックで
アドレスラッチ5に保持され、記憶装置8のアドレス信
号入力端子に与えられる。また、内部アドレスラッチ3
に保持されたアドレス情報PCは、インクリメンタ/デ
ィクリメンタ4によって1増加されて、“PC+1”と
してレジスタ部2に出力される。この“PC+1”は、
第4クロックでプログラムカウンタPCに取込まれ、プ
ログラムカウンタPCの値が1増加する。この動作を繰
り返してプログラムカウンタPCのアドレス情報は、
“PC+1、PC+2、PC+3、…”と1ずつ増加
し、アドレスラッチ5を介して記憶装置8のアドレスを
順番に指定してプログラムを進行させる。
場合のアドレス制御装置の動作について図9に示すタイ
ミングチャートを参照して説明する。同図は、本命令に
よるレジスタ間の情報の転送の様子を示しており、第1
クロックでレジスタ部2からプログラムカウンタPCの
アドレス情報が読み出され、このプログラムカウンタP
Cのアドレス情報が第2クロックで内部アドレスラッチ
3に保持される。更に、アドレス情報は第3クロックで
アドレスラッチ5に保持され、記憶装置8のアドレス信
号入力端子に与えられる。また、内部アドレスラッチ3
に保持されたアドレス情報PCは、インクリメンタ/デ
ィクリメンタ4によって1増加されて、“PC+1”と
してレジスタ部2に出力される。この“PC+1”は、
第4クロックでプログラムカウンタPCに取込まれ、プ
ログラムカウンタPCの値が1増加する。この動作を繰
り返してプログラムカウンタPCのアドレス情報は、
“PC+1、PC+2、PC+3、…”と1ずつ増加
し、アドレスラッチ5を介して記憶装置8のアドレスを
順番に指定してプログラムを進行させる。
【0006】図示の命令実行サイクルの実行開始の時点
で、命令レジスタ12に上記“LDB,(HL+)”のコ
ードがフェッチされ、命令デコーダ7でデコードされる
と、命令実行サイクルにおける第1サイクルの第1クロ
ックでレジスタ部2内のHLレジスタの内容HLが読み
出され、第2クロックで内部アドレスラッチ3に取込ま
れ、第3クロックでアドレスラッチ5に取込まれる。第
4クロックでHLレジスタの内容がアドレス情報として
記憶装置8に取込まれる。また、内部アドレスラッチ3
の出力はインクリメンタ/ディクリメンタ4を介して
“HLレジスタの内容+1”となり、第4クロックでレ
ジスタ部2のHLレジスタに取込まれる。第2サイクル
の第1クロックで、記憶装置8からアドレスHLに対応
するデータ(HL)がデータバス1に出力される。第2
クロックで、レジスタ部2の図示しないデータラッチに
データ(HL)が取込まれ、第3クロックでBレジスタ
に記憶される。これによって、命令“LD B,(HL
+)”の実行が終了する。
で、命令レジスタ12に上記“LDB,(HL+)”のコ
ードがフェッチされ、命令デコーダ7でデコードされる
と、命令実行サイクルにおける第1サイクルの第1クロ
ックでレジスタ部2内のHLレジスタの内容HLが読み
出され、第2クロックで内部アドレスラッチ3に取込ま
れ、第3クロックでアドレスラッチ5に取込まれる。第
4クロックでHLレジスタの内容がアドレス情報として
記憶装置8に取込まれる。また、内部アドレスラッチ3
の出力はインクリメンタ/ディクリメンタ4を介して
“HLレジスタの内容+1”となり、第4クロックでレ
ジスタ部2のHLレジスタに取込まれる。第2サイクル
の第1クロックで、記憶装置8からアドレスHLに対応
するデータ(HL)がデータバス1に出力される。第2
クロックで、レジスタ部2の図示しないデータラッチに
データ(HL)が取込まれ、第3クロックでBレジスタ
に記憶される。これによって、命令“LD B,(HL
+)”の実行が終了する。
【0007】なお、第2サイクルの第1クロックでレジ
スタファイル2内のプログラムカウンタPCの内容“P
C+2”が出力され、同第2クロックで内部アドレスラ
ッチ3に取込まれ、同第3クロックでアドレスラッチ5
に取込まれ、記憶装置8にプログラムカウンタPCの内
容“PC+2”が出力される。プログラムカウンタPC
の値は、インクリメンタ/ディクリメンタ4を経て“P
C+3”に増加され、同第4クロックでプログラムカウ
ンタPCに取込まれ、プログラムカウンタPCのインク
リメント(増加動作)が繰り返される。
スタファイル2内のプログラムカウンタPCの内容“P
C+2”が出力され、同第2クロックで内部アドレスラ
ッチ3に取込まれ、同第3クロックでアドレスラッチ5
に取込まれ、記憶装置8にプログラムカウンタPCの内
容“PC+2”が出力される。プログラムカウンタPC
の値は、インクリメンタ/ディクリメンタ4を経て“P
C+3”に増加され、同第4クロックでプログラムカウ
ンタPCに取込まれ、プログラムカウンタPCのインク
リメント(増加動作)が繰り返される。
【0008】 LD B,(-HL)の場合 HL←HL−1,B ←(HL−1) 本命令は、HLレジスタの内容をデクリメント(1減
算)したデータをアドレス情報とし、このデータによっ
てアドレスされた記憶手段の内容をBレジスタに転送す
る。
算)したデータをアドレス情報とし、このデータによっ
てアドレスされた記憶手段の内容をBレジスタに転送す
る。
【0009】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図10に示すタ
イミングチャートを参照して説明する。同図は、本命令
によるレジスタ間の情報の転送の様子を示しており、命
令デコーダ7は切換信号S1をデクリメント指令に切換
える。まず、命令実行サイクルの第1サイクルの第1ク
ロックでレジスタ部2内のHLレジスタからアドレス情
報が読み出され、第2クロックで内部アドレスラッチ3
に記憶された後、第3クロックでアドレスラッチ5に記
憶される。しかし、アドレス情報としては使われず、イ
ンクリメンタ/ディクリメンタ4によってアドレス情報
が1だけデクリメントされて第4クロックでレジスタ部
2内のHLレジスタに“HL−1”が書込まれる。その
後、第2サイクルの第1クロックで再度HLレジスタか
ら読み出された“HL−1”のアドレス情報が、同第2
クロックで内部アドレスラッチ3に記憶され、同第3ク
ロックでアドレスラッチ5に記憶され、アドレスADと
して記憶手段8に出力される。同第4クロックでアドレ
スADを記憶手段8に取込む。第3サイクルの第1クロ
ックで、“HL−1”のアドレス情報に対応する内容
(HL−1)が記憶手段8からデータバス1に出力され
る。同第2クロックでレジスタ部2のデータラッチでラ
ッチされ、同第3クロックでレジスタ部2内のBレジス
タに内容(HL−1)が転送される。これによって、命
令“LD B,(-HL)”の実行が終了する。
場合のアドレス制御装置の動作について図10に示すタ
イミングチャートを参照して説明する。同図は、本命令
によるレジスタ間の情報の転送の様子を示しており、命
令デコーダ7は切換信号S1をデクリメント指令に切換
える。まず、命令実行サイクルの第1サイクルの第1ク
ロックでレジスタ部2内のHLレジスタからアドレス情
報が読み出され、第2クロックで内部アドレスラッチ3
に記憶された後、第3クロックでアドレスラッチ5に記
憶される。しかし、アドレス情報としては使われず、イ
ンクリメンタ/ディクリメンタ4によってアドレス情報
が1だけデクリメントされて第4クロックでレジスタ部
2内のHLレジスタに“HL−1”が書込まれる。その
後、第2サイクルの第1クロックで再度HLレジスタか
ら読み出された“HL−1”のアドレス情報が、同第2
クロックで内部アドレスラッチ3に記憶され、同第3ク
ロックでアドレスラッチ5に記憶され、アドレスADと
して記憶手段8に出力される。同第4クロックでアドレ
スADを記憶手段8に取込む。第3サイクルの第1クロ
ックで、“HL−1”のアドレス情報に対応する内容
(HL−1)が記憶手段8からデータバス1に出力され
る。同第2クロックでレジスタ部2のデータラッチでラ
ッチされ、同第3クロックでレジスタ部2内のBレジス
タに内容(HL−1)が転送される。これによって、命
令“LD B,(-HL)”の実行が終了する。
【0010】なお、第3サイクルの第1クロックでレジ
スタ部2内のプログラムカウンタPCの内容“PC+
2”が出力され、同第2クロックで内部アドレスラッチ
3に取込まれ、同第3クロックでアドレスラッチ5に取
込まれ、記憶装置8にプログラムカウンタPCの内容
“PC+2”が出力される。プログラムカウンタPCの
値は、インクリメンタ/ディクリメンタ4を経て“PC
+3”に増加され、同第4クロックでプログラムカウン
タPCに取込まれ、プログラムカウンタPCが“PC+
3”にセットされる。このようにして、プログラムカウ
ンタPCのインクリメントが引続いて繰り返される。
スタ部2内のプログラムカウンタPCの内容“PC+
2”が出力され、同第2クロックで内部アドレスラッチ
3に取込まれ、同第3クロックでアドレスラッチ5に取
込まれ、記憶装置8にプログラムカウンタPCの内容
“PC+2”が出力される。プログラムカウンタPCの
値は、インクリメンタ/ディクリメンタ4を経て“PC
+3”に増加され、同第4クロックでプログラムカウン
タPCに取込まれ、プログラムカウンタPCが“PC+
3”にセットされる。このようにして、プログラムカウ
ンタPCのインクリメントが引続いて繰り返される。
【0011】図には書いていないが、命令“LD B,
(-HL)”を実行する他の方法もある。例えば、レジス
タ部2内のHLレジスタから読み出されたアドレス情報
はデータバス1を介してAレジスタ11に供給される。
テンポラリレジスタには予め1が設定される。ALU1
0に減算を指令すると、ALU10で1減算されたアド
レス情報ADはデータバス1を介してレジスタ部2内の
HLレジスタに記憶される。その後、再度HLレジスタ
から読み出されたアドレス情報ADが内部アドレスラッ
チ3を介してアドレスラッチ5に記憶され、アドレスA
Dとして出力される。アドレスラッチ出力によってアド
レスされた記憶手段8から読み出された情報は、データ
バス1を介してレジスタ部2内のBレジスタに転送され
る。
(-HL)”を実行する他の方法もある。例えば、レジス
タ部2内のHLレジスタから読み出されたアドレス情報
はデータバス1を介してAレジスタ11に供給される。
テンポラリレジスタには予め1が設定される。ALU1
0に減算を指令すると、ALU10で1減算されたアド
レス情報ADはデータバス1を介してレジスタ部2内の
HLレジスタに記憶される。その後、再度HLレジスタ
から読み出されたアドレス情報ADが内部アドレスラッ
チ3を介してアドレスラッチ5に記憶され、アドレスA
Dとして出力される。アドレスラッチ出力によってアド
レスされた記憶手段8から読み出された情報は、データ
バス1を介してレジスタ部2内のBレジスタに転送され
る。
【0012】(2) 種類(II)の命令動作について PUSH B の場合 (SP)← B ,SP←SP−1 本命令は、Bレジスタの内容を、スタックポインタSP
の内容でアドレスされる記憶手段へ転送する。スタック
ポインタSPの内容はスタックポインタSPからアドレ
スを読み出した後にデクリメント(1減算)される。
の内容でアドレスされる記憶手段へ転送する。スタック
ポインタSPの内容はスタックポインタSPからアドレ
スを読み出した後にデクリメント(1減算)される。
【0013】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図11に示すタ
イミングチャートを参照して説明する。なお、プログラ
ムカウンタのインクリメント動作“PC,PC+1,P
C+2,PC+3,…”は上述した命令の場合と同様で
あるので説明を省略する。まず、上記命令をフェッチし
た命令デコーダ7から切換信号S1によってデクリメン
ト指令がインクリメンタ/ディクリメンタ4に与えられ
る。命令“PUSH B”の実行サイクルの第1サイク
ル第1クロックでレジスタ部2内のスタックポインタS
Pから読み出された内容は、同第2クロックで内部アド
レスラッチ3に記憶された後、同第3クロックでアドレ
スラッチ5に記憶されてアドレスADとして出力され、
同第4クロックで記憶装置8に取込まれる。レジスタ部
2内にあるBレジスタの内容は、第2サイクルの第1ク
ロックでデータバス1に出力され、同第2クロックでア
ドレスラッチ5の出力によってアドレスされた記憶手段
8に取込まれる。これによって、“(SP)← B ”
が実行される。また、内部アドレスラッチ3に記憶され
たアドレス情報は、インクリメンタ/ディクリメンタ4
によってデクリメントされ、第1サイクルの第4クロッ
クでレジスタ部2内のスタックポインタSPに書き込ま
れる。これにより、“SP←SP−1”が実行される。
場合のアドレス制御装置の動作について図11に示すタ
イミングチャートを参照して説明する。なお、プログラ
ムカウンタのインクリメント動作“PC,PC+1,P
C+2,PC+3,…”は上述した命令の場合と同様で
あるので説明を省略する。まず、上記命令をフェッチし
た命令デコーダ7から切換信号S1によってデクリメン
ト指令がインクリメンタ/ディクリメンタ4に与えられ
る。命令“PUSH B”の実行サイクルの第1サイク
ル第1クロックでレジスタ部2内のスタックポインタS
Pから読み出された内容は、同第2クロックで内部アド
レスラッチ3に記憶された後、同第3クロックでアドレ
スラッチ5に記憶されてアドレスADとして出力され、
同第4クロックで記憶装置8に取込まれる。レジスタ部
2内にあるBレジスタの内容は、第2サイクルの第1ク
ロックでデータバス1に出力され、同第2クロックでア
ドレスラッチ5の出力によってアドレスされた記憶手段
8に取込まれる。これによって、“(SP)← B ”
が実行される。また、内部アドレスラッチ3に記憶され
たアドレス情報は、インクリメンタ/ディクリメンタ4
によってデクリメントされ、第1サイクルの第4クロッ
クでレジスタ部2内のスタックポインタSPに書き込ま
れる。これにより、“SP←SP−1”が実行される。
【0014】 POP B の場合 SP←SP+1 ,B ←(SP+1) 本命令は、スタックポインタSPの内容をインクリメン
ト(1加算)したデータをアドレス情報として記憶手段
に与え、記憶手段から読み出された内容をBレジスタに
転送する。本命令が命令デコーダ7にフェッチされた場
合のアドレス制御装置の動作について図12に示すタイ
ミングチャートを参照して説明する。なお、プログラム
カウンタのインクリメント動作“PC,PC+1,…”
は先述した命令の場合と同様であるので説明を省略す
る。まず、上記命令をフェッチした命令デコーダ7から
切換信号S1によってインクリメント指令がインクリメ
ンタ/ディクリメンタ4に与えられる。命令実行サイク
ルの第1サイクルの第1クロックでレジスタ部2内のス
タックポインタSPより読み出されたアドレス情報は、
同第2クロックで内部アドレスラッチ3に記憶された
後、同第3クロックでアドレスラッチ5に記憶される。
しかし、アドレス情報としては使われない。このアドレ
ス情報はインクリメンタ/ディクリメンタ4によってイ
ンクリメントされて“SP+1”となり、同第4クロッ
クでレジスタ部2内のスタックポインタSPに書込まれ
る。その後、第2サイクルの第1クロックで再度スタッ
クポインタSPから読み出されたアドレス情報“SP+
1”が、同第2クロックで内部アドレスラッチ3に記憶
され、同第3クロックでアドレスラッチ5に記憶されア
ドレス情報として記憶装置8に出力される。同第4クロ
ックでアドレス情報が記憶装置8に取込まれる。第2サ
イクルの第1クロックで記憶手段8からアドレスラッチ
5によってアドレスされた内容(SP+1)がデータバ
ス1に出力される。同第2クロックで内容(SP+1)
がデータバス1からレジスタ部2内のラッチに取込ま
れ、同第3クロックでレジスタ部2内のBレジスタに記
憶される。こうして、POP Bの命令が実行される。
ト(1加算)したデータをアドレス情報として記憶手段
に与え、記憶手段から読み出された内容をBレジスタに
転送する。本命令が命令デコーダ7にフェッチされた場
合のアドレス制御装置の動作について図12に示すタイ
ミングチャートを参照して説明する。なお、プログラム
カウンタのインクリメント動作“PC,PC+1,…”
は先述した命令の場合と同様であるので説明を省略す
る。まず、上記命令をフェッチした命令デコーダ7から
切換信号S1によってインクリメント指令がインクリメ
ンタ/ディクリメンタ4に与えられる。命令実行サイク
ルの第1サイクルの第1クロックでレジスタ部2内のス
タックポインタSPより読み出されたアドレス情報は、
同第2クロックで内部アドレスラッチ3に記憶された
後、同第3クロックでアドレスラッチ5に記憶される。
しかし、アドレス情報としては使われない。このアドレ
ス情報はインクリメンタ/ディクリメンタ4によってイ
ンクリメントされて“SP+1”となり、同第4クロッ
クでレジスタ部2内のスタックポインタSPに書込まれ
る。その後、第2サイクルの第1クロックで再度スタッ
クポインタSPから読み出されたアドレス情報“SP+
1”が、同第2クロックで内部アドレスラッチ3に記憶
され、同第3クロックでアドレスラッチ5に記憶されア
ドレス情報として記憶装置8に出力される。同第4クロ
ックでアドレス情報が記憶装置8に取込まれる。第2サ
イクルの第1クロックで記憶手段8からアドレスラッチ
5によってアドレスされた内容(SP+1)がデータバ
ス1に出力される。同第2クロックで内容(SP+1)
がデータバス1からレジスタ部2内のラッチに取込ま
れ、同第3クロックでレジスタ部2内のBレジスタに記
憶される。こうして、POP Bの命令が実行される。
【0015】 サブルーチンコール/リターン(CA
LL/RET)、割込/割込リターン(INT/RET
I)はプログラムの分岐を伴う点では上述したPUSH
/POP命令とは異なるが、スタックポインタSPの増
減に関する動作は同じである。従って、CALL/IN
TがPUSHに対応し、RET/RETIがPOPに対
応する。 (3) 種類(III) の命令動作について JR d の場合 PC←$+2+d 本命令は、命令の第1ワードが記憶されているアドレス
$(ここでは、1ワードのパイプライン処理を想定して
いるのでPCは常に$+2を指す)と、オフセットdと
の加算値をプログラムカウンタPCに設定する。
LL/RET)、割込/割込リターン(INT/RET
I)はプログラムの分岐を伴う点では上述したPUSH
/POP命令とは異なるが、スタックポインタSPの増
減に関する動作は同じである。従って、CALL/IN
TがPUSHに対応し、RET/RETIがPOPに対
応する。 (3) 種類(III) の命令動作について JR d の場合 PC←$+2+d 本命令は、命令の第1ワードが記憶されているアドレス
$(ここでは、1ワードのパイプライン処理を想定して
いるのでPCは常に$+2を指す)と、オフセットdと
の加算値をプログラムカウンタPCに設定する。
【0016】本命令が命令レジスタ12にフェッチされ
た場合のアドレス制御装置の動作について図13に示す
タイミングチャートを参照して説明する。命令実行サイ
クルにおける第1サイクルの第1クロックでプログラム
カウンタPCからアドレス情報“PC+3”がデータバ
ス1に出力され、データバス1、テンポラリレジスタ9
を介してALU10に転送される。同第2クロックでプ
ログラムカウンタPCの内容“PC+3”が内部アドレ
スラッチ3に取込まれ、同第3クロックでアドレスラッ
チ5に記憶されて記憶装置8にアドレス情報として出力
される。第2サイクルの第1クロックで記憶装置8は、
“PC+3”のアドレスからオフセット“d”を読み出
してデータバス1に出力する。このオフセット“d”は
データバス1、Aレジスタ11を介してALU10に転
送される。ALU10は、直ちに“PC+3+d(=$
+3+d)”を計算し、データバス1に出力する。この
計算結果は、同第1クロックでレジスタ部2のラッチに
取込まれ、同第2クロックで内部アドレスラッチ3に記
憶され、更に、同第3クロックでアドレスラッチ5に記
憶される。しかし、分岐先アドレスとしては“$+2+
d”でなければならないので、インクリメンタ/ディク
リメンタ4でデクリメントされて第4クロックでレジス
タ部2内のプログラムカウンタPCに記憶される。続く
第3サイクルの第1クロックで、レジスタ部内のプログ
ラムカウンタPCから“$+2+d”という値のアドレ
ス情報が読み出される。第2クロックで内部アドレスラ
ッチ3にラッチされた後、第3クロックでアドレスラッ
チ4に記憶され、第4クロックで記憶装置8にアドレス
として取込まれて対応するアドレスから分岐先命令のフ
ェッチを行う。
た場合のアドレス制御装置の動作について図13に示す
タイミングチャートを参照して説明する。命令実行サイ
クルにおける第1サイクルの第1クロックでプログラム
カウンタPCからアドレス情報“PC+3”がデータバ
ス1に出力され、データバス1、テンポラリレジスタ9
を介してALU10に転送される。同第2クロックでプ
ログラムカウンタPCの内容“PC+3”が内部アドレ
スラッチ3に取込まれ、同第3クロックでアドレスラッ
チ5に記憶されて記憶装置8にアドレス情報として出力
される。第2サイクルの第1クロックで記憶装置8は、
“PC+3”のアドレスからオフセット“d”を読み出
してデータバス1に出力する。このオフセット“d”は
データバス1、Aレジスタ11を介してALU10に転
送される。ALU10は、直ちに“PC+3+d(=$
+3+d)”を計算し、データバス1に出力する。この
計算結果は、同第1クロックでレジスタ部2のラッチに
取込まれ、同第2クロックで内部アドレスラッチ3に記
憶され、更に、同第3クロックでアドレスラッチ5に記
憶される。しかし、分岐先アドレスとしては“$+2+
d”でなければならないので、インクリメンタ/ディク
リメンタ4でデクリメントされて第4クロックでレジス
タ部2内のプログラムカウンタPCに記憶される。続く
第3サイクルの第1クロックで、レジスタ部内のプログ
ラムカウンタPCから“$+2+d”という値のアドレ
ス情報が読み出される。第2クロックで内部アドレスラ
ッチ3にラッチされた後、第3クロックでアドレスラッ
チ4に記憶され、第4クロックで記憶装置8にアドレス
として取込まれて対応するアドレスから分岐先命令のフ
ェッチを行う。
【0017】
【発明が解決しようとする課題】かかる従来技術には、
次に述べるような改善すべき点がある。 1.LD B,(-HL)のような命令の場合、HLレジ
スタの内容をデクリメントしてからアドレスとして出力
しなければならない。このため、HLレジスタの内容を
アドレス情報として使う前にデクリメントするためのサ
イクルが必要である。
次に述べるような改善すべき点がある。 1.LD B,(-HL)のような命令の場合、HLレジ
スタの内容をデクリメントしてからアドレスとして出力
しなければならない。このため、HLレジスタの内容を
アドレス情報として使う前にデクリメントするためのサ
イクルが必要である。
【0018】2.スタックを操作する命令(PUSH/
POP)やCPU動作(CALL/RET,INT/R
ETI)の場合、通常、スタックポインタは、“スタッ
クの一番新しいデータを示すアドレス−1”を指してい
るので、スタックへの書込動作では、スタックポインタ
SPのアドレス情報をアドレスとしてデータを書込み、
その後、アドレス情報をデクリメントしてスタックポイ
ンタSPに書込む。従って、スタックポインタSPの更
新のためのサイクルは必要ない。逆に、スタックからの
読出動作では、スタックポインタSPからアドレス情報
を読み出し、インクリメントしてからアドレスされたス
タックの内容を読み出す。従って、スタックポインタ更
新のためのサイクルが必要となる。
POP)やCPU動作(CALL/RET,INT/R
ETI)の場合、通常、スタックポインタは、“スタッ
クの一番新しいデータを示すアドレス−1”を指してい
るので、スタックへの書込動作では、スタックポインタ
SPのアドレス情報をアドレスとしてデータを書込み、
その後、アドレス情報をデクリメントしてスタックポイ
ンタSPに書込む。従って、スタックポインタSPの更
新のためのサイクルは必要ない。逆に、スタックからの
読出動作では、スタックポインタSPからアドレス情報
を読み出し、インクリメントしてからアドレスされたス
タックの内容を読み出す。従って、スタックポインタ更
新のためのサイクルが必要となる。
【0019】これとは反対に、通常、スタックポインタ
がスタックの一番新しいデータを示すアドレスを指して
いる場合では、スタックへの書込動作は、スタックポイ
ンタを更新(インクリメント)してからデータを書込
む。従って、スタックポインタの更新のためのサイクル
が必要となる。逆に、スタックからの読出動作ではスタ
ックポインタ更新のためのサイクルは特に必要としな
い。いずれにしても、スタックへの書込み、或いは、ス
タックからの読み出しのどちらかでスタックポインタの
更新サイクルが必要である。
がスタックの一番新しいデータを示すアドレスを指して
いる場合では、スタックへの書込動作は、スタックポイ
ンタを更新(インクリメント)してからデータを書込
む。従って、スタックポインタの更新のためのサイクル
が必要となる。逆に、スタックからの読出動作ではスタ
ックポインタ更新のためのサイクルは特に必要としな
い。いずれにしても、スタックへの書込み、或いは、ス
タックからの読み出しのどちらかでスタックポインタの
更新サイクルが必要である。
【0020】3.その他の場合(従来例では、JR d
を例にして説明している)、分岐命令でアドレスが不連
続になったとき等、本来あるべきアドレス情報がずれた
ような場合、これを調整するサイクルが必要となる。
を例にして説明している)、分岐命令でアドレスが不連
続になったとき等、本来あるべきアドレス情報がずれた
ような場合、これを調整するサイクルが必要となる。
【0021】以上3種類の例をあげたが、アドレス情報
をインクリメント/デクリメントするためのサイクルを
回避する技術がないわけではない。例えば、命令の種類
によってアドレス計算が必要な場合は、アドレス専用の
演算手段を設けて命令の実行と並行して若しくは実行に
先だって自動的にアドレス計算を行い余分なサイクルを
発生しないようにする技術は既に知られている。
をインクリメント/デクリメントするためのサイクルを
回避する技術がないわけではない。例えば、命令の種類
によってアドレス計算が必要な場合は、アドレス専用の
演算手段を設けて命令の実行と並行して若しくは実行に
先だって自動的にアドレス計算を行い余分なサイクルを
発生しないようにする技術は既に知られている。
【0022】しかし、命令のプリフェッチ(パイプライ
ン処理)機能や、先行解析、アドレス計算を一手に行う
アドレス演算ユニット等を必要とし、マイクロコンピュ
ータのアーキテクチャに直接影響を及ぼす。また、回路
規模も大きく複雑になって不具合である。
ン処理)機能や、先行解析、アドレス計算を一手に行う
アドレス演算ユニット等を必要とし、マイクロコンピュ
ータのアーキテクチャに直接影響を及ぼす。また、回路
規模も大きく複雑になって不具合である。
【0023】よって、本発明は、アーキテクチャを変更
しない従来技術の延長で命令の実行速度及びCPUの処
理速度を早くしてマイクロコンピュータの処理能力を向
上することを目的とする。
しない従来技術の延長で命令の実行速度及びCPUの処
理速度を早くしてマイクロコンピュータの処理能力を向
上することを目的とする。
【0024】
【課題を解決するための手段】上記目的を達成するため
本発明のアドレス制御装置は、アドレス情報を記憶する
ことができる複数のレジスタを含んで構成されるレジス
タ部と、上記レジスタ部のいずれかのレジスタから出力
されるアドレス情報をラッチする第1のアドレスラッチ
と、増減指令に応答して上記第1のアドレスラッチから
出力されるアドレス情報を増加若しくは減少する増減手
段と、切換指令に応答して上記第1のアドレスラッチ及
び上記増減手段のいずれかが出力するアドレス情報を選
択して第2のアドレスラッチに出力するセレクタと、フ
ェッチした命令語が上記レジスタに保持されているアド
レス情報を増加若しくは減少して用いるものであると
き、上記命令語に対応して上記増減指令の内容を設定す
ると共に上記セレクタが上記増減手段の出力を選択する
ように上記切換指令を設定する命令デコーダと、を備え
ること特徴とする。
本発明のアドレス制御装置は、アドレス情報を記憶する
ことができる複数のレジスタを含んで構成されるレジス
タ部と、上記レジスタ部のいずれかのレジスタから出力
されるアドレス情報をラッチする第1のアドレスラッチ
と、増減指令に応答して上記第1のアドレスラッチから
出力されるアドレス情報を増加若しくは減少する増減手
段と、切換指令に応答して上記第1のアドレスラッチ及
び上記増減手段のいずれかが出力するアドレス情報を選
択して第2のアドレスラッチに出力するセレクタと、フ
ェッチした命令語が上記レジスタに保持されているアド
レス情報を増加若しくは減少して用いるものであると
き、上記命令語に対応して上記増減指令の内容を設定す
ると共に上記セレクタが上記増減手段の出力を選択する
ように上記切換指令を設定する命令デコーダと、を備え
ること特徴とする。
【0025】
【作用】命令デコーダにフェッチされた命令がレジスタ
部に記憶されているアドレス情報を変更して記憶装置に
与えるものであるとき、レジスタ部からアドレスラッチ
への転送途中でアドレス情報を変更する。このため、セ
レクタ及び増減手段が転送路の途中に設けられる。命令
がアドレス情報の変更を要しないものであるとき、セレ
クタはレジスタ部の出力を選択してアドレスラッチに出
力する。命令がアドレス情報の変更を要するものである
とき、変更の態様が増減手段に設定され、セレクタは増
減手段の出力を選択してアドレスラッチに出力する。そ
の結果、アドレス情報を変更するための命令サイクルが
不要となり、命令実行サイクルが短縮される。
部に記憶されているアドレス情報を変更して記憶装置に
与えるものであるとき、レジスタ部からアドレスラッチ
への転送途中でアドレス情報を変更する。このため、セ
レクタ及び増減手段が転送路の途中に設けられる。命令
がアドレス情報の変更を要しないものであるとき、セレ
クタはレジスタ部の出力を選択してアドレスラッチに出
力する。命令がアドレス情報の変更を要するものである
とき、変更の態様が増減手段に設定され、セレクタは増
減手段の出力を選択してアドレスラッチに出力する。そ
の結果、アドレス情報を変更するための命令サイクルが
不要となり、命令実行サイクルが短縮される。
【0026】
【実施例】以下、本発明の実施例を図面を参照して説明
する。図1は、本発明によるマイクロコンピュータのア
ドレス制御装置の例を示すブロック図である。同図にお
いて、図7に示された従来装置と対応する部分には同一
符号を付し、かかる部分の説明は省略する。この実施例
では、内部アドレスラッチ3及びアドレスラッチ5間に
セレクタ21を設けている。セレクタ21はA入力端子
及びB入力端子を備える。A入力端子には内部アドレス
ラッチ3の出力端子が接続され、B入力端子にはインク
リメンタ/ディクリメンタ4の出力端子が接続される。
セレクタ21の出力端子はアドレスラッチ5の入力端子
に接続される。セレクタ21は、命令デコーダ7から供
給される切換信号S2によって制御される。切換信号S
2がセレクタ21のA入力端子側を選択すると、内部ア
ドレスラッチ3の出力がアドレスラッチ5に転送され
る。切換信号S2がセレクタ21のB入力端子側を選択
すると、インクリメンタ/ディクリメンタ4の出力がア
ドレスラッチ5に転送される。他の構成は従来例と同様
である。
する。図1は、本発明によるマイクロコンピュータのア
ドレス制御装置の例を示すブロック図である。同図にお
いて、図7に示された従来装置と対応する部分には同一
符号を付し、かかる部分の説明は省略する。この実施例
では、内部アドレスラッチ3及びアドレスラッチ5間に
セレクタ21を設けている。セレクタ21はA入力端子
及びB入力端子を備える。A入力端子には内部アドレス
ラッチ3の出力端子が接続され、B入力端子にはインク
リメンタ/ディクリメンタ4の出力端子が接続される。
セレクタ21の出力端子はアドレスラッチ5の入力端子
に接続される。セレクタ21は、命令デコーダ7から供
給される切換信号S2によって制御される。切換信号S
2がセレクタ21のA入力端子側を選択すると、内部ア
ドレスラッチ3の出力がアドレスラッチ5に転送され
る。切換信号S2がセレクタ21のB入力端子側を選択
すると、インクリメンタ/ディクリメンタ4の出力がア
ドレスラッチ5に転送される。他の構成は従来例と同様
である。
【0027】次に、上記回路構成によるアドレシングに
ついて説明する。命令語に対するアドレシング動作を従
来例と対応して次の3種類に分類して説明する。 (I) レジスタ間接オートポストインクリメントアドレッシング (HL+) レジスタ間接オートプリデクリメントアドレッシング (-HL) (II)スタックポインタ操作命令 PUSH/POP サブルーチンコール/リターン CALL/RET 割り込み/割り込みリターン INT/RETI (III) その他 JR d (1) 種類(I) の命令動作について、 LD B,(HL+) の場合 B ← (HL),HL←HL+1 本命令は、HLレジスタの内容をアドレス情報としてア
ドレスされる記憶手段の内容をBという名前で示される
レジスタへ転送する。HLレジスタの内容はHLレジス
タ読み出し後にインクリメント(1加算)され、再びH
Lレジスタに書込まれる。なお、動作例ではアドレスラ
ッチ5にアドレス情報がセットされた時点で、転送終了
と見做してHLレジスタへの書込みを行っている。
ついて説明する。命令語に対するアドレシング動作を従
来例と対応して次の3種類に分類して説明する。 (I) レジスタ間接オートポストインクリメントアドレッシング (HL+) レジスタ間接オートプリデクリメントアドレッシング (-HL) (II)スタックポインタ操作命令 PUSH/POP サブルーチンコール/リターン CALL/RET 割り込み/割り込みリターン INT/RETI (III) その他 JR d (1) 種類(I) の命令動作について、 LD B,(HL+) の場合 B ← (HL),HL←HL+1 本命令は、HLレジスタの内容をアドレス情報としてア
ドレスされる記憶手段の内容をBという名前で示される
レジスタへ転送する。HLレジスタの内容はHLレジス
タ読み出し後にインクリメント(1加算)され、再びH
Lレジスタに書込まれる。なお、動作例ではアドレスラ
ッチ5にアドレス情報がセットされた時点で、転送終了
と見做してHLレジスタへの書込みを行っている。
【0028】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図2に示すタイ
ミングチャートを参照して説明する。まず、従来と同様
にレジスタ部2のプログラムカウンタPCのアドレス情
報は、4クロックでプログラムカウンタPC→内部アド
レスラッチ3→インクリメンタ/ディクリメンタ4→プ
ログラムカウンタPCを一巡し、アドレス情報を“P
C,PC+1,PC+2,PC+3,…”と歩進させる
ように動作している。命令“LD B,(HL+)”をフ
ェッチした命令デコーダ7は切換信号S2をセレクタ2
1に与え、A入力端子の選択を継続する。命令実行サイ
クルにおける第1サイクルの第1クロックでレジスタ部
2内のHLレジスタから読み出されたアドレス情報は、
同第2クロックで内部アドレスラッチ3に記憶され、第
3クロックでセレクタ21を介してアドレスラッチ5に
記憶される。このHLレジスタのアドレス情報は第4ク
ロックで記憶装置8に取込まれ、第2サイクルの第1ク
ロックでこのアドレス情報に対応する記憶内容(HL)
がデータバス1に出力される。この記憶内容(HL)
は、同第2クロックでレジスタ部2にラッチされ、同第
3クロックでBレジスタに記憶される。こうして、“B
←(HL),HL←HL+1”が実行される。
場合のアドレス制御装置の動作について図2に示すタイ
ミングチャートを参照して説明する。まず、従来と同様
にレジスタ部2のプログラムカウンタPCのアドレス情
報は、4クロックでプログラムカウンタPC→内部アド
レスラッチ3→インクリメンタ/ディクリメンタ4→プ
ログラムカウンタPCを一巡し、アドレス情報を“P
C,PC+1,PC+2,PC+3,…”と歩進させる
ように動作している。命令“LD B,(HL+)”をフ
ェッチした命令デコーダ7は切換信号S2をセレクタ2
1に与え、A入力端子の選択を継続する。命令実行サイ
クルにおける第1サイクルの第1クロックでレジスタ部
2内のHLレジスタから読み出されたアドレス情報は、
同第2クロックで内部アドレスラッチ3に記憶され、第
3クロックでセレクタ21を介してアドレスラッチ5に
記憶される。このHLレジスタのアドレス情報は第4ク
ロックで記憶装置8に取込まれ、第2サイクルの第1ク
ロックでこのアドレス情報に対応する記憶内容(HL)
がデータバス1に出力される。この記憶内容(HL)
は、同第2クロックでレジスタ部2にラッチされ、同第
3クロックでBレジスタに記憶される。こうして、“B
←(HL),HL←HL+1”が実行される。
【0029】 LD B,(-HL) の場合 HL←HL−1,B ←(HL+1) 本命令は、HLレジスタの内容をデクリメント(1減
算)されたデータをアドレス情報としてアドレスされた
記憶手段の内容をBレジスタに転送する。
算)されたデータをアドレス情報としてアドレスされた
記憶手段の内容をBレジスタに転送する。
【0030】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図3に示すタイ
ミングチャートを参照して説明する。まず、従来と同様
にレジスタ部2のプログラムカウンタPCのアドレス情
報は、4クロックでプログラムカウンタPC→内部アド
レスラッチ3→インクリメンタ/ディクリメンタ4→プ
ログラムカウンタPCを一巡し、アドレス情報を“P
C,PC+1,PC+2,PC+3,…”と歩進させ
る。命令“LD B,(HL+)”をフェッチした命令デ
コーダ7は命令実行サイクルの第1サイクルの間中、切
換信号S1をデクリメント指令に設定し、入力切換信号
S2をB入力端子選択に設定する。命令実行サイクルに
おける第1サイクルの第1クロックでレジスタ部2内の
HLレジスタからアドレス情報HLが読み出される。読
み出されたアドレス情報は同第2クロックで内部アドレ
スラッチ3に記憶される。内部アドレスラッチ3に記憶
されたアドレス情報はインクリメンタ/ディクリメンタ
4に出力されて“HL−1”にデクリメントされ、セレ
クタ21のB入力端子及び出力端子を介してアドレスラ
ッチ5に出力される。同第3クロックでアドレスラッチ
5に取込まれ、記憶装置8にアドレス情報ADとして出
力される。同第4クロックで記憶装置8にアドレス情報
が取込まれる。また、同第4クロックでインクリメンタ
/ディクリメンタ4が出力しているアドレス情報をHL
レジスタに取込む。
場合のアドレス制御装置の動作について図3に示すタイ
ミングチャートを参照して説明する。まず、従来と同様
にレジスタ部2のプログラムカウンタPCのアドレス情
報は、4クロックでプログラムカウンタPC→内部アド
レスラッチ3→インクリメンタ/ディクリメンタ4→プ
ログラムカウンタPCを一巡し、アドレス情報を“P
C,PC+1,PC+2,PC+3,…”と歩進させ
る。命令“LD B,(HL+)”をフェッチした命令デ
コーダ7は命令実行サイクルの第1サイクルの間中、切
換信号S1をデクリメント指令に設定し、入力切換信号
S2をB入力端子選択に設定する。命令実行サイクルに
おける第1サイクルの第1クロックでレジスタ部2内の
HLレジスタからアドレス情報HLが読み出される。読
み出されたアドレス情報は同第2クロックで内部アドレ
スラッチ3に記憶される。内部アドレスラッチ3に記憶
されたアドレス情報はインクリメンタ/ディクリメンタ
4に出力されて“HL−1”にデクリメントされ、セレ
クタ21のB入力端子及び出力端子を介してアドレスラ
ッチ5に出力される。同第3クロックでアドレスラッチ
5に取込まれ、記憶装置8にアドレス情報ADとして出
力される。同第4クロックで記憶装置8にアドレス情報
が取込まれる。また、同第4クロックでインクリメンタ
/ディクリメンタ4が出力しているアドレス情報をHL
レジスタに取込む。
【0031】第2サイクルの第1クロックで記憶手段8
から読み出されたアドレス“HL−1”に対応する記憶
情報(HL−1)はデータバス1に出力される。この情
報は同第2クロックでレジスタ部2のラッチに取込ま
れ、同第3クロックでレジスタ部2内のBレジスタに記
憶される。こうして、“HL←HL−1,B←(HL+
1)”が実行される。 (2) 種類(II)の命令動作について PUSH B の場合について (SP)← B ,SP←SP−1 本命令は、Bレジスタの内容を、スタックポインタSP
の内容でアドレスされる記憶手段に転送する。スタック
ポインタSPの内容はスタックポインタSPからアドレ
スを読み出した後にデクリメント(1減算)される。
から読み出されたアドレス“HL−1”に対応する記憶
情報(HL−1)はデータバス1に出力される。この情
報は同第2クロックでレジスタ部2のラッチに取込ま
れ、同第3クロックでレジスタ部2内のBレジスタに記
憶される。こうして、“HL←HL−1,B←(HL+
1)”が実行される。 (2) 種類(II)の命令動作について PUSH B の場合について (SP)← B ,SP←SP−1 本命令は、Bレジスタの内容を、スタックポインタSP
の内容でアドレスされる記憶手段に転送する。スタック
ポインタSPの内容はスタックポインタSPからアドレ
スを読み出した後にデクリメント(1減算)される。
【0032】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図4に示すタイ
ミングチャートを参照して説明する。なお、プログラム
カウンタのインクリメント動作“PC,PC+1,PC
+2,PC+3,…”は上述した命令の場合と同様であ
るので説明を省略する。まず、上記命令を命令レジスタ
12にフェッチした命令デコーダ7から切換信号S1に
よって命令実行サイクルの第1サイクルの間中デクリメ
ント指令がインクリメンタ/ディクリメンタ4に与えら
れる。また、入力切換信号S2はセレクタ21にA入力
端子の選択を指令する。命令“PUSH B”の実行サ
イクルの第1サイクル第1クロックでレジスタ部2内の
スタックポインタSPから読み出された内容は、同第2
クロックで内部アドレスラッチ3に記憶された後、同第
3クロックでアドレスラッチ5に記憶されてアドレス情
報ADとして出力され、同第4クロックで記憶装置8に
取込まれる。また、ラッチ3に記憶されたアドレス情報
は、インクリメンタ/ディクリメンタ4によってデクリ
メントされ、同第4クロックでレジスタ部2内のスタッ
クポインタSPに“SP−1”が書込まれる。これによ
り、“SP←SP−1”が実行される。レジスタ部2内
にあるBレジスタの内容は、第2サイクルの第1クロッ
クでデータバス1に出力され、同第2クロックでアドレ
スラッチ5の出力によってアドレスされた記憶手段8に
記憶される。これによって、“(SP)← B ”が実
行される。
場合のアドレス制御装置の動作について図4に示すタイ
ミングチャートを参照して説明する。なお、プログラム
カウンタのインクリメント動作“PC,PC+1,PC
+2,PC+3,…”は上述した命令の場合と同様であ
るので説明を省略する。まず、上記命令を命令レジスタ
12にフェッチした命令デコーダ7から切換信号S1に
よって命令実行サイクルの第1サイクルの間中デクリメ
ント指令がインクリメンタ/ディクリメンタ4に与えら
れる。また、入力切換信号S2はセレクタ21にA入力
端子の選択を指令する。命令“PUSH B”の実行サ
イクルの第1サイクル第1クロックでレジスタ部2内の
スタックポインタSPから読み出された内容は、同第2
クロックで内部アドレスラッチ3に記憶された後、同第
3クロックでアドレスラッチ5に記憶されてアドレス情
報ADとして出力され、同第4クロックで記憶装置8に
取込まれる。また、ラッチ3に記憶されたアドレス情報
は、インクリメンタ/ディクリメンタ4によってデクリ
メントされ、同第4クロックでレジスタ部2内のスタッ
クポインタSPに“SP−1”が書込まれる。これによ
り、“SP←SP−1”が実行される。レジスタ部2内
にあるBレジスタの内容は、第2サイクルの第1クロッ
クでデータバス1に出力され、同第2クロックでアドレ
スラッチ5の出力によってアドレスされた記憶手段8に
記憶される。これによって、“(SP)← B ”が実
行される。
【0033】 POP Bの場合 SP←SP+1 ,B ←(SP+1) 本命令は、スタックポインタSPの内容をインクリメン
ト(1加算)したデータをアドレス情報として記憶手段
に与え、記憶手段から読み出された内容をBレジスタに
転送する。本命令が命令デコーダ7にフェッチされた場
合のアドレス制御装置の動作について図5に示すタイミ
ングチャートを参照して説明する。なお、プログラムカ
ウンタのインクリメント動作“PC,PC+1,…”は
先述した命令の場合と同様であるので説明を省略する。
まず、上記命令をフェッチした命令デコーダ7から切換
信号S1によってインクリメント指令がインクリメンタ
/ディクリメンタ4に与えられる。また、入力切換信号
S2は、命令実行サイクルの第1サイクルの間中セレク
タ21にB入力端子の選択を指令する。本命令実行サイ
クルの第1サイクルの第1クロックでレジスタ部2内の
スタックポインタSPからアドレス情報が読み出され
る。このアドレス情報は同第2クロックで内部アドレス
ラッチ3に記憶される。内部アドレスラッチ3の出力
は、インクリメンタ/ディクリメンタ4によってインク
リメントされた後セレクタ21のB入力端子を介してア
ドレスラッチ5に出力される。このアドレス情報“SP
+1”同第3クロックでアドレスラッチ5に取込まれ、
記憶装置8に出力される。同第4クロックでアドレス情
報“SP+1”は記憶装置8に取込まれる。また、同第
4クロックでインクリメンタ/ディクリメンタ4が出力
しているアドレス情報“SP+1”がスタックポインタ
SPに取込まれる。
ト(1加算)したデータをアドレス情報として記憶手段
に与え、記憶手段から読み出された内容をBレジスタに
転送する。本命令が命令デコーダ7にフェッチされた場
合のアドレス制御装置の動作について図5に示すタイミ
ングチャートを参照して説明する。なお、プログラムカ
ウンタのインクリメント動作“PC,PC+1,…”は
先述した命令の場合と同様であるので説明を省略する。
まず、上記命令をフェッチした命令デコーダ7から切換
信号S1によってインクリメント指令がインクリメンタ
/ディクリメンタ4に与えられる。また、入力切換信号
S2は、命令実行サイクルの第1サイクルの間中セレク
タ21にB入力端子の選択を指令する。本命令実行サイ
クルの第1サイクルの第1クロックでレジスタ部2内の
スタックポインタSPからアドレス情報が読み出され
る。このアドレス情報は同第2クロックで内部アドレス
ラッチ3に記憶される。内部アドレスラッチ3の出力
は、インクリメンタ/ディクリメンタ4によってインク
リメントされた後セレクタ21のB入力端子を介してア
ドレスラッチ5に出力される。このアドレス情報“SP
+1”同第3クロックでアドレスラッチ5に取込まれ、
記憶装置8に出力される。同第4クロックでアドレス情
報“SP+1”は記憶装置8に取込まれる。また、同第
4クロックでインクリメンタ/ディクリメンタ4が出力
しているアドレス情報“SP+1”がスタックポインタ
SPに取込まれる。
【0034】第2サイクルの第1クロックで、記憶手段
8からアドレス情報“SP+1”に対応する内容“(S
P+1)”がデータバス1に読み出される。同第2クロ
ックでレジスタ部2のラッチはこの内容を取込み、同第
3クロックでBレジスタに内容“(SP+1)”を記憶
する。こうして、“SP←SP+1 ,B ←(SP+
1)”が実行される。従来、“POP B”命令の実行
サイクルに3サイクルを要したのに対し、上記セレクタ
21を使用することによって、2サイクルで済む。
8からアドレス情報“SP+1”に対応する内容“(S
P+1)”がデータバス1に読み出される。同第2クロ
ックでレジスタ部2のラッチはこの内容を取込み、同第
3クロックでBレジスタに内容“(SP+1)”を記憶
する。こうして、“SP←SP+1 ,B ←(SP+
1)”が実行される。従来、“POP B”命令の実行
サイクルに3サイクルを要したのに対し、上記セレクタ
21を使用することによって、2サイクルで済む。
【0035】 サブルーチンコール/リターン(CA
LL/RET),割込/割込リターン(INT/RET
I)はプログラムの分岐を伴う点では上記したPUSH
/POP命令とは異なるが、スタックポインタSPの増
減に関する動作は同じであり、CALL/INTがPU
SHに対応し、RET/RETIがPOPに対応する。
このため、かかる命令においても本願の発明の構成を用
いることによって命令実行サイクル中のアドレスの増減
のための1サイクル分を短縮することができる。 (3) 種類(III) の命令動作について JR d の場合 PC←$+2+d 本命令は、命令の第1ワードが記憶されているアドレス
$(ここでは、1ワードのパイプライン処理を想定して
いるのでPCは常に$+2を指す)と、オフセットdと
の加算値をプログラムカウンタPCに設定する。
LL/RET),割込/割込リターン(INT/RET
I)はプログラムの分岐を伴う点では上記したPUSH
/POP命令とは異なるが、スタックポインタSPの増
減に関する動作は同じであり、CALL/INTがPU
SHに対応し、RET/RETIがPOPに対応する。
このため、かかる命令においても本願の発明の構成を用
いることによって命令実行サイクル中のアドレスの増減
のための1サイクル分を短縮することができる。 (3) 種類(III) の命令動作について JR d の場合 PC←$+2+d 本命令は、命令の第1ワードが記憶されているアドレス
$(ここでは、1ワードのパイプライン処理を想定して
いるのでPCは常に$+2を指す)と、オフセットdと
の加算値をプログラムカウンタPCに設定する。
【0036】本命令が命令デコーダ7にフェッチされた
場合のアドレス制御装置の動作について図6に示すタイ
ミングチャートを参照して説明する。本命令の実行サイ
クルでは、第2サイクルの間中、切換信号S1がインク
リメンタ/ディクリメンタ4にデクリメントを指令し、
入力切換信号S2がセレクタ21にB入力端子の選択を
指令する。命令実行サイクルにおける第1サイクルの第
1クロックでプログラムカウンタPCからアドレス情報
“PC+3”がデータバス1に出力され、データバス1
及びテンポラリレジスタ9を介してALU10に転送さ
れる。同第2クロックでプログラムカウンタPCの内容
“PC+3”が内部アドレスラッチ3に取込まれる。同
第3クロックでアドレスラッチ5に“PC+3”が記憶
され、記憶装置8にアドレス情報として出力される。同
第4クロックでアドレス情報“PC+3”が記憶装置8
に取込まれる。また、内部アドレスラッチ3が出力する
アドレス情報“PC+3”がインクリメンタ/ディクリ
メンタ4を介して“PC+4”にインクリメントされ、
同第4クロックでアドレス情報“PC+4”がレジスタ
部2のプログラムカウンタPCに取込まれる。
場合のアドレス制御装置の動作について図6に示すタイ
ミングチャートを参照して説明する。本命令の実行サイ
クルでは、第2サイクルの間中、切換信号S1がインク
リメンタ/ディクリメンタ4にデクリメントを指令し、
入力切換信号S2がセレクタ21にB入力端子の選択を
指令する。命令実行サイクルにおける第1サイクルの第
1クロックでプログラムカウンタPCからアドレス情報
“PC+3”がデータバス1に出力され、データバス1
及びテンポラリレジスタ9を介してALU10に転送さ
れる。同第2クロックでプログラムカウンタPCの内容
“PC+3”が内部アドレスラッチ3に取込まれる。同
第3クロックでアドレスラッチ5に“PC+3”が記憶
され、記憶装置8にアドレス情報として出力される。同
第4クロックでアドレス情報“PC+3”が記憶装置8
に取込まれる。また、内部アドレスラッチ3が出力する
アドレス情報“PC+3”がインクリメンタ/ディクリ
メンタ4を介して“PC+4”にインクリメントされ、
同第4クロックでアドレス情報“PC+4”がレジスタ
部2のプログラムカウンタPCに取込まれる。
【0037】第2サイクルの第1クロックで記憶装置8
は、“PC+3”のアドレスからオフセット“d”を読
み出してデータバス1に出力する。このオフセット
“d”はデータバス1及びAレジスタを介してALU1
0に転送される。ALU10には加算が指令されてお
り、ALU10は、直ちに“PC+3+d(=$+3+
d)”を計算し、データバス1に出力する。この計算結
果は、同第1クロックでレジスタ部2のラッチに取込ま
れ、同第2クロックで内部アドレスラッチ3に記憶され
る。このとき、セレクタ21は入力端子Bを選択し、イ
ンクリメンタ/ディクリメンタ4にはデクリメントが指
令されている。内部アドレスラッチ3の出力“PC+3
+d”はインクリメンタ/ディクリメンタ4を介して
“PC+2+d”にデクリメントされ、セレクタ21の
B入力端子を介してアドレスラッチ5に出力される。同
第3クロックでアドレスラッチ5に記憶される。同第4
クロックで、アドレス情報“PC+2+d”は記憶装置
8に取込まれる。また、同第4クロックでインクリメン
タ/ディクリメンタ4の出力であるアドレス情報“PC
+2+d”はレジスタ部2のプログラムカウンタPCに
取込まれる。こうして、“PC←$+2+d”が実行さ
れるが、かかるジャンプ命令においても本願の発明の構
成を用いることによって命令実行サイクル中のアドレス
の増減のための1サイクル分を短縮することができる。
は、“PC+3”のアドレスからオフセット“d”を読
み出してデータバス1に出力する。このオフセット
“d”はデータバス1及びAレジスタを介してALU1
0に転送される。ALU10には加算が指令されてお
り、ALU10は、直ちに“PC+3+d(=$+3+
d)”を計算し、データバス1に出力する。この計算結
果は、同第1クロックでレジスタ部2のラッチに取込ま
れ、同第2クロックで内部アドレスラッチ3に記憶され
る。このとき、セレクタ21は入力端子Bを選択し、イ
ンクリメンタ/ディクリメンタ4にはデクリメントが指
令されている。内部アドレスラッチ3の出力“PC+3
+d”はインクリメンタ/ディクリメンタ4を介して
“PC+2+d”にデクリメントされ、セレクタ21の
B入力端子を介してアドレスラッチ5に出力される。同
第3クロックでアドレスラッチ5に記憶される。同第4
クロックで、アドレス情報“PC+2+d”は記憶装置
8に取込まれる。また、同第4クロックでインクリメン
タ/ディクリメンタ4の出力であるアドレス情報“PC
+2+d”はレジスタ部2のプログラムカウンタPCに
取込まれる。こうして、“PC←$+2+d”が実行さ
れるが、かかるジャンプ命令においても本願の発明の構
成を用いることによって命令実行サイクル中のアドレス
の増減のための1サイクル分を短縮することができる。
【0038】なお、実施例のインクリメンタ/ディクリ
メンタ4は、供給されるアドレス情報を切換信号S1に
対応して1だけ増加或いは減少しているが、指令に応じ
た値を増加或いは減少する構成とすることができる。こ
れは、例えば、命令デコーダ7によって定数が設定され
るレジスタの出力と、内部ラッチ3の出力とを入力とす
る演算装置を用いて実現される。このようにすれば、レ
ジスタ部2に保持されているアドレス情報を変更して使
用する、より幅広い命令語に対応することが可能とな
る。
メンタ4は、供給されるアドレス情報を切換信号S1に
対応して1だけ増加或いは減少しているが、指令に応じ
た値を増加或いは減少する構成とすることができる。こ
れは、例えば、命令デコーダ7によって定数が設定され
るレジスタの出力と、内部ラッチ3の出力とを入力とす
る演算装置を用いて実現される。このようにすれば、レ
ジスタ部2に保持されているアドレス情報を変更して使
用する、より幅広い命令語に対応することが可能とな
る。
【0039】
【発明の効果】以上説明したように本発明の構成によれ
ば、レジスタ部からアドレス情報をアドレスラッチに転
送する途中において、命令デコーダにフェッチした命令
に応じてアドレス情報を変更することを可能とする構成
としているので、命令中のデータ転送や演算以外に消費
されるサイクルである、アドレス情報のインクリメント
或いはデクリメントのためのサイクルを無くすことがで
き、その分命令の実行速度を早くすることが可能とな
る。また、割込処理等の命令に依存しないCPUの動作
速度も早くすることが可能となる。
ば、レジスタ部からアドレス情報をアドレスラッチに転
送する途中において、命令デコーダにフェッチした命令
に応じてアドレス情報を変更することを可能とする構成
としているので、命令中のデータ転送や演算以外に消費
されるサイクルである、アドレス情報のインクリメント
或いはデクリメントのためのサイクルを無くすことがで
き、その分命令の実行速度を早くすることが可能とな
る。また、割込処理等の命令に依存しないCPUの動作
速度も早くすることが可能となる。
【図1】図1は、本発明の実施例を示すブロック図であ
る。
る。
【図2】図2は、実施例における命令“LD B,(H
L+)”の実行を説明するタイミングチャートである。
L+)”の実行を説明するタイミングチャートである。
【図3】図3は、実施例における命令“LD B,(-H
L)”の実行を説明するタイミングチャートである。
L)”の実行を説明するタイミングチャートである。
【図4】図4は、実施例における命令“PUSH B”
の実行を説明するタイミングチャートである。
の実行を説明するタイミングチャートである。
【図5】図5は、実施例における命令“POP B”の
実行を説明するタイミングチャートである。
実行を説明するタイミングチャートである。
【図6】図6は、実施例における命令“JR d”の実
行を説明するタイミングチャートである。
行を説明するタイミングチャートである。
【図7】図7は、従来例の構成を示すブロック図であ
る。
る。
【図8】図8は、アドレス制御装置に用いるシステムク
ロック信号の例を示すタイミング図である。
ロック信号の例を示すタイミング図である。
【図9】図9は、従来例における命令“LD B,(H
L+)”の実行を説明するタイミングチャートである。
L+)”の実行を説明するタイミングチャートである。
【図10】図10は、従来例における命令“LD B,
(-HL)”の実行を説明するタイミングチャートであ
る。
(-HL)”の実行を説明するタイミングチャートであ
る。
【図11】図11は、従来例における命令“PUSH
B”の実行を説明するタイミングチャートである。
B”の実行を説明するタイミングチャートである。
【図12】図12は、従来例における命令“POP
B”の実行を説明するタイミングチャートである。
B”の実行を説明するタイミングチャートである。
【図13】図13は、従来例における命令“JR d”
の実行を説明するタイミングチャートである。
の実行を説明するタイミングチャートである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−117040(JP,A) 特開 平1−263750(JP,A) 特開 昭59−189447(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42
Claims (2)
- 【請求項1】アドレス情報を記憶することができる複数
のレジスタを含んで構成されるレジスタ部と、 前記レジスタ部のいずれかのレジスタから出力されるア
ドレス情報をラッチする第1のアドレスラッチと、 増減指令に応答して前記第1のアドレスラッチから出力
されるアドレス情報を増加若しくは減少する増減手段
と、 切換指令に応答して前記第1のアドレスラッチ及び前記
増減手段のいずれかが出力するアドレス情報を選択して
第2のアドレスラッチに出力するセレクタと、 フェッチした命令語が前記レジスタに保持されているア
ドレス情報を増加若しくは減少して用いるものであると
き、前記命令語に対応して前記増減指令の内容を設定す
ると共に前記セレクタが前記増減手段の出力を選択する
ように前記切換指令を設定する命令デコーダと、 を備えること特徴とするアドレス制御装置。 - 【請求項2】前記増減手段は、前記増減指令に応答して
前記アドレス情報に対して1加算及び1減算のいずれか
を行うことを特徴とする請求項1記載のアドレス制御装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08355193A JP3164690B2 (ja) | 1993-04-09 | 1993-04-09 | アドレス制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08355193A JP3164690B2 (ja) | 1993-04-09 | 1993-04-09 | アドレス制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06301531A JPH06301531A (ja) | 1994-10-28 |
JP3164690B2 true JP3164690B2 (ja) | 2001-05-08 |
Family
ID=13805653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08355193A Expired - Fee Related JP3164690B2 (ja) | 1993-04-09 | 1993-04-09 | アドレス制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3164690B2 (ja) |
-
1993
- 1993-04-09 JP JP08355193A patent/JP3164690B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06301531A (ja) | 1994-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
US5867696A (en) | Saving a program counter value as the return address in an arbitrary general purpose register | |
US6205539B1 (en) | Method for manipulating a stack pointer with post increment/decrement operation | |
US5586337A (en) | Programmable controller with timing control | |
JP3164690B2 (ja) | アドレス制御装置 | |
US6345353B2 (en) | Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs | |
JPH11316678A (ja) | ディジタル信号処理装置及び信号処理システム | |
US5463747A (en) | Microprogram data processor processing operand address calculation and instruction execution with common hardware | |
JP3534737B2 (ja) | ディジタル信号処理装置およびその制御方法 | |
JP2861560B2 (ja) | データ処理装置 | |
JPH0222413B2 (ja) | ||
JPH04275603A (ja) | プログラマブル・コントローラ | |
US5864691A (en) | Central processing unit with a selector that bypasses circuits where processing is not required | |
JPH07200289A (ja) | 情報処理装置 | |
JP3366235B2 (ja) | データ読み出し制御装置 | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JPH06301532A (ja) | マイクロプロセッサ装置 | |
US5822775A (en) | Efficient data processing method for coefficient data in a digital dignal, processor | |
JP2601055B2 (ja) | マイクロプログラム・シーケンサ | |
JPH08305564A (ja) | マイクロコンピュータ | |
JP3124361B2 (ja) | メモリデータロード装置 | |
JPH06324884A (ja) | データ処理装置 | |
JPH0531170B2 (ja) | ||
JPH1196007A (ja) | プロセッサの戻り番地読み出し制御方法及びプロセッサ | |
JPH0454531A (ja) | プログラム読出し回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080302 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090302 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |