JPH0512008A - 中央演算処理装置 - Google Patents
中央演算処理装置Info
- Publication number
- JPH0512008A JPH0512008A JP18330891A JP18330891A JPH0512008A JP H0512008 A JPH0512008 A JP H0512008A JP 18330891 A JP18330891 A JP 18330891A JP 18330891 A JP18330891 A JP 18330891A JP H0512008 A JPH0512008 A JP H0512008A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- data
- storage means
- address
- 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.)
- Granted
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 大容量レジスタとデータメモリとの両方のデ
ータ領域を相互に効率良くアクセス可能な中央演算処理
装置を提供する。 【構成】 CPU101は、演算のためのデータを書込
み読出し可能な多数の汎用レジスタからなるレジスタバ
ンク105と、レジスタバンク105の出力を基にイン
ストラクションデコーダ104による解読結果に従って
所定の演算を実行し、その結果をレジスタバンク105
に出力するALU107と、レジスタバンク105と異
なるアドレス空間にあり該レジスタバンク105と同様
な機能を有する内部RAM108と、レジスタバンク1
05のレジスタ領域に該レジスタと内部RAM108を
間接的にアクセスするためのインデックスアドレス領域
を指定するとともに、レジスタバンク105内の汎用レ
ジスタのアドレスの指定及びインデックスレジスタの指
定を行うレジスタアドレス回路109と、内部RAM1
08のアドレス指定を行うメモリアドレス回路110と
から構成される。
ータ領域を相互に効率良くアクセス可能な中央演算処理
装置を提供する。 【構成】 CPU101は、演算のためのデータを書込
み読出し可能な多数の汎用レジスタからなるレジスタバ
ンク105と、レジスタバンク105の出力を基にイン
ストラクションデコーダ104による解読結果に従って
所定の演算を実行し、その結果をレジスタバンク105
に出力するALU107と、レジスタバンク105と異
なるアドレス空間にあり該レジスタバンク105と同様
な機能を有する内部RAM108と、レジスタバンク1
05のレジスタ領域に該レジスタと内部RAM108を
間接的にアクセスするためのインデックスアドレス領域
を指定するとともに、レジスタバンク105内の汎用レ
ジスタのアドレスの指定及びインデックスレジスタの指
定を行うレジスタアドレス回路109と、内部RAM1
08のアドレス指定を行うメモリアドレス回路110と
から構成される。
Description
【0001】
【産業上の利用分野】本発明は、中央演算処理装置に係
り、詳細には大容量レジスタとデータメモリとの両方の
データ領域を相互に効率よくアクセス可能とした間接ア
ドレッシングを有する中央演算処理装置に関する。
り、詳細には大容量レジスタとデータメモリとの両方の
データ領域を相互に効率よくアクセス可能とした間接ア
ドレッシングを有する中央演算処理装置に関する。
【0002】
【従来の技術】命令は一般に0〜3個のオペランドおよ
び0〜1個の次命令を指定することができる。CPU
は、命令実行時にこれらの指定に従ってオペランドおよ
び次命令の存在する位置、即ち、アドレスを決定する必
要がある。また、命令のオペランド部がオペランドその
ものである場合、これを即値データ(immediate data)
と呼び定数オペランドとして用いる。一方、オペランド
部がアドレスを指定する場合には直接および間接アドレ
ッシングの2通りがあり、オペランド部が直接的にオペ
ランドのアドレスを指定している場合を直接アドレッシ
ングと呼び、それがオペランドのアドレスを含むポイン
タを指定していて間接的にオペランドのアドレスを指定
する場合を間接アドレッシングという。
び0〜1個の次命令を指定することができる。CPU
は、命令実行時にこれらの指定に従ってオペランドおよ
び次命令の存在する位置、即ち、アドレスを決定する必
要がある。また、命令のオペランド部がオペランドその
ものである場合、これを即値データ(immediate data)
と呼び定数オペランドとして用いる。一方、オペランド
部がアドレスを指定する場合には直接および間接アドレ
ッシングの2通りがあり、オペランド部が直接的にオペ
ランドのアドレスを指定している場合を直接アドレッシ
ングと呼び、それがオペランドのアドレスを含むポイン
タを指定していて間接的にオペランドのアドレスを指定
する場合を間接アドレッシングという。
【0003】図10は従来の汎用CPU(例えば、μP
D78C11)のブロック図である。この図において、
符号11はCPU、12はCPU11の外部インターフ
ェイス回路、13はクロックを発生するオシレータ(O
SC)であり、CPU11は、CPU11全体の命令実
行制御を行う命令制御部21、CPU11内の主記憶ア
クセスを制御する記憶制御部22、命令命令制御部21
が解読した命令の演算を実行する演算処理部23および
内部データバス24により構成されている。命令制御部
21は、インストラクションデコーダ31、リード/ラ
イト制御部32、システム制御部33及びスタンバイ制
御部34により構成され、記憶制御部22への命令の取
り出しの依頼、命令解読、オペランドアドレス生成、記
憶制御部22へのオペランドアクセスの依頼、並びに演
算処理部23への演算実行の依頼等を行う。また、記憶
制御部22は、プログラムカウンタ(PC)、スタック
ポインタ(SP)、EAレジスタ、AVレジスタ、Vレ
ジスタ等からなるレジスタ群41、プログラムメモリ4
2及びデータメモリ43により構成され、命令制御部2
1から依頼された命令の取出しとオペランドアクセスの
制御、及び所定のアドレス変換を行う。また、演算処理
部23は、ALU(arithmetic logical unit)51、
ラッチ52,53及びPSW(program statas word )
54により構成され、命令制御部21からの依頼に従っ
て、命令制御及び記憶制御部22から送られたオペラン
ドに対して演算を行う。
D78C11)のブロック図である。この図において、
符号11はCPU、12はCPU11の外部インターフ
ェイス回路、13はクロックを発生するオシレータ(O
SC)であり、CPU11は、CPU11全体の命令実
行制御を行う命令制御部21、CPU11内の主記憶ア
クセスを制御する記憶制御部22、命令命令制御部21
が解読した命令の演算を実行する演算処理部23および
内部データバス24により構成されている。命令制御部
21は、インストラクションデコーダ31、リード/ラ
イト制御部32、システム制御部33及びスタンバイ制
御部34により構成され、記憶制御部22への命令の取
り出しの依頼、命令解読、オペランドアドレス生成、記
憶制御部22へのオペランドアクセスの依頼、並びに演
算処理部23への演算実行の依頼等を行う。また、記憶
制御部22は、プログラムカウンタ(PC)、スタック
ポインタ(SP)、EAレジスタ、AVレジスタ、Vレ
ジスタ等からなるレジスタ群41、プログラムメモリ4
2及びデータメモリ43により構成され、命令制御部2
1から依頼された命令の取出しとオペランドアクセスの
制御、及び所定のアドレス変換を行う。また、演算処理
部23は、ALU(arithmetic logical unit)51、
ラッチ52,53及びPSW(program statas word )
54により構成され、命令制御部21からの依頼に従っ
て、命令制御及び記憶制御部22から送られたオペラン
ドに対して演算を行う。
【0004】一方、外部インターフェイス回路12は、
シリアルI/O61、割込み制御回路62、タイマ6
3、カウンタ64、A/Dコンバータ65及び外部ポー
ト(A)71〜(F)75により構成されている。以上
の構成において、汎用のCPU11は、プログラムメモ
リ42とデータメモリ43が同一アドレス空間(アドレ
スの上位がデータメモリに割り当てられている)にあり
レジスタ群(PC,SP,EA,V,A‥‥)41はプ
ログラムメモリ42から出力される命令に含まれるアド
レスにより指定される。従って、このCPU11におけ
る間接アドレッシングでは、例えば汎用レジスタB,C
にデータメモリ43のアドレス16bitをあらかじめセ
ットしておいてから<LDAX B>命令を実行すると
レジスタB,Cに入っているアドレスで示されるデータ
メモリ43の値が汎用レジスタであるアキュムレータA
に転送されることになる(Load accumlater with Memor
y addressed by Register Pair)。この場合、CPU1
1では特定のインデックスレジスタが異なるメモリ領域
を同じアドレスで処理できるものはなく、また、レジス
タ群41における汎用レジスタの数は30本程度の構成
となっている。
シリアルI/O61、割込み制御回路62、タイマ6
3、カウンタ64、A/Dコンバータ65及び外部ポー
ト(A)71〜(F)75により構成されている。以上
の構成において、汎用のCPU11は、プログラムメモ
リ42とデータメモリ43が同一アドレス空間(アドレ
スの上位がデータメモリに割り当てられている)にあり
レジスタ群(PC,SP,EA,V,A‥‥)41はプ
ログラムメモリ42から出力される命令に含まれるアド
レスにより指定される。従って、このCPU11におけ
る間接アドレッシングでは、例えば汎用レジスタB,C
にデータメモリ43のアドレス16bitをあらかじめセ
ットしておいてから<LDAX B>命令を実行すると
レジスタB,Cに入っているアドレスで示されるデータ
メモリ43の値が汎用レジスタであるアキュムレータA
に転送されることになる(Load accumlater with Memor
y addressed by Register Pair)。この場合、CPU1
1では特定のインデックスレジスタが異なるメモリ領域
を同じアドレスで処理できるものはなく、また、レジス
タ群41における汎用レジスタの数は30本程度の構成
となっている。
【0005】
【発明が解決しようとする課題】ところが、上述した汎
用CPU11では大容量のデータメモリ43が1つであ
るため間接的にアドレスする対象が1つである。また、
インデックスレジスタ(上記の例ではレジスタB,C)
が例えば3本に限定されているため、間接命令の対象と
なる領域が広くなるとインデックスレジスタ数も少なく
なり、そのインデックスレジスタのアドレスデータを毎
回変更しなければならないという欠点があった。すなわ
ち、従来の汎用CPU11はインデックスレジスタとし
て使用できるレジスタを持ってはいるが、そのレジスタ
数は極めて少ない(例えば、レジスタB,Cのみ)ので
例えばレジスタB,Cを使ってレジスタ間接アドレッシ
ングを行う場合にはレジスタBにオペランドのrxを、
レジスタcにrx+1を入れてこの(rx,rx+1)
をアドレスにしてデータメモリ43からデータを読み出
してアキュームレータに送ることになる。従って、使用
できるレジスタの本数はレジスタD,E,H,L等とい
うように本数が決まっているから間接アドレッシングを
行う場合には1回毎にレジスタの内容を書替えなければ
ならず、命令が複雑になって命令効率が低下し高速処理
ができないという問題点があった。そこで本発明は、大
容量レジスタとデータメモリとの両方のデータ領域を相
互に効率良くアクセス可能として命令効率を高めること
ができる間接アドレッシングを有する中央演算処理装置
を提供することを目的としている。
用CPU11では大容量のデータメモリ43が1つであ
るため間接的にアドレスする対象が1つである。また、
インデックスレジスタ(上記の例ではレジスタB,C)
が例えば3本に限定されているため、間接命令の対象と
なる領域が広くなるとインデックスレジスタ数も少なく
なり、そのインデックスレジスタのアドレスデータを毎
回変更しなければならないという欠点があった。すなわ
ち、従来の汎用CPU11はインデックスレジスタとし
て使用できるレジスタを持ってはいるが、そのレジスタ
数は極めて少ない(例えば、レジスタB,Cのみ)ので
例えばレジスタB,Cを使ってレジスタ間接アドレッシ
ングを行う場合にはレジスタBにオペランドのrxを、
レジスタcにrx+1を入れてこの(rx,rx+1)
をアドレスにしてデータメモリ43からデータを読み出
してアキュームレータに送ることになる。従って、使用
できるレジスタの本数はレジスタD,E,H,L等とい
うように本数が決まっているから間接アドレッシングを
行う場合には1回毎にレジスタの内容を書替えなければ
ならず、命令が複雑になって命令効率が低下し高速処理
ができないという問題点があった。そこで本発明は、大
容量レジスタとデータメモリとの両方のデータ領域を相
互に効率良くアクセス可能として命令効率を高めること
ができる間接アドレッシングを有する中央演算処理装置
を提供することを目的としている。
【0006】
【課題を解決するための手段】請求項1記載の発明は、
所定のプログラムを記憶するプログラム記憶手段と、前
記プログラム記憶手段をアドレッシングするアドレッシ
ング手段と、演算用データを一時的に記憶可能な複数の
レジスタからなる演算データ記憶手段と、前記プログラ
ム記憶手段から出力される命令に含まれるオペコードを
解読する命令解読手段と、前記命令解読手段の解読結果
に従って前記演算データ記憶手段に対する演算を実行す
る演算手段と、前記プログラム記憶手段から出力される
命令に含まれるオペランドを用いて前記演算データ記憶
手段をアドレッシングするとともに、間接アドレッシン
グ命令が入力されると前記演算データ記憶手段の所定レ
ジスタ領域に、該演算データ記憶手段を間接的にアクセ
スするためのインデックスレジスタを指定し、該インデ
ックスレジスタに格納されたアドレスデータにより該演
算データ記憶手段に記憶領域をアクセスするように制御
する演算データアドレッシング手段と、を具備してい
る。請求項2記載の発明は、所定のプログラムを記憶す
るプログラム記憶手段と、前記プログラム記憶手段をア
ドレッシングするアドレッシング手段と、演算用データ
を一時的に記憶可能な複数のレジスタからなる演算デー
タ記憶手段と、前記演算データ記憶手段とは異なるアド
レス空間に設けられ、演算用データを書き込み読出し可
能な内部メモリと、前記プログラム記憶手段から出力さ
れる命令に含まれるオペコードを解読する命令解読手段
と、前記命令解読手段の解読結果に従って前記演算デー
タ記憶手段に対する演算を実行する演算手段と、前記プ
ログラム記憶手段から出力される命令に含まれるオペラ
ンドを用いて前記演算データ記憶手段をアドレッシング
するとともに、間接アドレッシング命令が入力されると
前記演算データ記憶手段の所定レジスタ領域に、該演算
データ記憶手段及び前記内部メモリを間接的にアクセス
するためのインデックスレジスタを指定し、該インデッ
クスレジスタに格納されたアドレスデータにより前記内
部メモリ及び該演算データ記憶手段の記憶領域をアクセ
スするように制御する演算データアドレッシング手段と
を具備している。
所定のプログラムを記憶するプログラム記憶手段と、前
記プログラム記憶手段をアドレッシングするアドレッシ
ング手段と、演算用データを一時的に記憶可能な複数の
レジスタからなる演算データ記憶手段と、前記プログラ
ム記憶手段から出力される命令に含まれるオペコードを
解読する命令解読手段と、前記命令解読手段の解読結果
に従って前記演算データ記憶手段に対する演算を実行す
る演算手段と、前記プログラム記憶手段から出力される
命令に含まれるオペランドを用いて前記演算データ記憶
手段をアドレッシングするとともに、間接アドレッシン
グ命令が入力されると前記演算データ記憶手段の所定レ
ジスタ領域に、該演算データ記憶手段を間接的にアクセ
スするためのインデックスレジスタを指定し、該インデ
ックスレジスタに格納されたアドレスデータにより該演
算データ記憶手段に記憶領域をアクセスするように制御
する演算データアドレッシング手段と、を具備してい
る。請求項2記載の発明は、所定のプログラムを記憶す
るプログラム記憶手段と、前記プログラム記憶手段をア
ドレッシングするアドレッシング手段と、演算用データ
を一時的に記憶可能な複数のレジスタからなる演算デー
タ記憶手段と、前記演算データ記憶手段とは異なるアド
レス空間に設けられ、演算用データを書き込み読出し可
能な内部メモリと、前記プログラム記憶手段から出力さ
れる命令に含まれるオペコードを解読する命令解読手段
と、前記命令解読手段の解読結果に従って前記演算デー
タ記憶手段に対する演算を実行する演算手段と、前記プ
ログラム記憶手段から出力される命令に含まれるオペラ
ンドを用いて前記演算データ記憶手段をアドレッシング
するとともに、間接アドレッシング命令が入力されると
前記演算データ記憶手段の所定レジスタ領域に、該演算
データ記憶手段及び前記内部メモリを間接的にアクセス
するためのインデックスレジスタを指定し、該インデッ
クスレジスタに格納されたアドレスデータにより前記内
部メモリ及び該演算データ記憶手段の記憶領域をアクセ
スするように制御する演算データアドレッシング手段と
を具備している。
【0007】
【作用】請求項1記載の発明では、大容量のレジスタか
らなる演算データ記憶手段の一部に他のレジスタと区別
されないインデックスレジスタが設けられる。アドレス
指定により間接アドレッシング命令が入力されると演算
データ記憶手段の所定レジスタ領域に、演算データ記憶
手段を間接的にアクセスするためのインデックスレジス
タが指定され、インデックスレジスタに格納されたアド
レスデータにより演算データ記憶手段の記憶領域がアク
セスされる。従って、インデックスレジスタに格納され
ているデータで演算データ記憶手段の記憶領域が自由に
アクセス可能になり、命令効率が格段に向上する。請求
項2記載の発明では、アドレス指定によりアドレッシン
グ命令が入力されると演算データ記憶手段の所定レジス
タ領域に、演算データ記憶手段及び内部メモリを間接的
にアクセスするためのインデックスレジスタが指定さ
れ、インデックスレジスタに格納されたアドレスデータ
により内部メモリ及び演算データ記憶手段の記憶領域が
アクセスされる。従って、大容量レジスタからなる演算
データ処理記憶手段と内部メモリとの2つのデータ領域
を相互に効率良くアクセス可能となり、また、間接アド
レッシングを可能として内部メモリを使用する場合であ
っても命令効率を格段に高めることができる。
らなる演算データ記憶手段の一部に他のレジスタと区別
されないインデックスレジスタが設けられる。アドレス
指定により間接アドレッシング命令が入力されると演算
データ記憶手段の所定レジスタ領域に、演算データ記憶
手段を間接的にアクセスするためのインデックスレジス
タが指定され、インデックスレジスタに格納されたアド
レスデータにより演算データ記憶手段の記憶領域がアク
セスされる。従って、インデックスレジスタに格納され
ているデータで演算データ記憶手段の記憶領域が自由に
アクセス可能になり、命令効率が格段に向上する。請求
項2記載の発明では、アドレス指定によりアドレッシン
グ命令が入力されると演算データ記憶手段の所定レジス
タ領域に、演算データ記憶手段及び内部メモリを間接的
にアクセスするためのインデックスレジスタが指定さ
れ、インデックスレジスタに格納されたアドレスデータ
により内部メモリ及び演算データ記憶手段の記憶領域が
アクセスされる。従って、大容量レジスタからなる演算
データ処理記憶手段と内部メモリとの2つのデータ領域
を相互に効率良くアクセス可能となり、また、間接アド
レッシングを可能として内部メモリを使用する場合であ
っても命令効率を格段に高めることができる。
【0008】
【実施例】以下、本発明を図面に基づいて説明する。図
1〜図9は本発明に係る中央演算処理装置の一実施例を
示す図であり、固定長固定サイクル命令を実行する中央
演算処理装置に適用した例である。
1〜図9は本発明に係る中央演算処理装置の一実施例を
示す図であり、固定長固定サイクル命令を実行する中央
演算処理装置に適用した例である。
【0009】先ず、構成を説明する。図1は中央演算処
理装置の全体構成図である。図1において、101は固
定長サイクル命令を実行可能な中央演算処理装置(CP
U)、102はCPU101に接続される外部インター
フェイス回路であり、CPU101は、オペコード、オ
ペランド1,オペランド2が1アドレスに存在する固定
長固定サイクル命令に基づくプログラムを記憶するプロ
グラムメモリ103と、プログラムメモリ103から出
力される命令に含まれるオペコードを解読して各部に所
定の制御信号を出力するインストラクションデコーダ1
04と、演算のためのデータを書込み読出し可能な多数
の汎用レジスタからなるレジスタバンク105と、レジ
スタバンク105の出力及びデータバス106を通して
各部から出力されたデータを基にインストラクションデ
コーダ104による解読結果(デコード信号)に従って
所定の演算を実行し、その結果をレジスタバンク105
に出力するALU(arithmetic logical unit)107
と、レジスタバンク105と異なるアドレス空間にあり
該レジスタバンク105と同様な機能を有する内部RA
M108と、レジスタバンク105のレジスタ領域にア
クセスするためのインデックスアドレス領域を指定する
とともに、プログラムメモリ22から出力される命令に
含まれるオペランドA2を用いてレジスタバンク105
内の汎用レジスタのアドレスの指定及びインデックスレ
ジスタ指定を行うレジスタアドレス回路109と、内部
RAM108のアドレス指定を行うメモリアドレス回路
110と、プログラムメモリ103のアドレス指定を行
うプログラムカウンタ(PC)111とにより構成され
ている。
理装置の全体構成図である。図1において、101は固
定長サイクル命令を実行可能な中央演算処理装置(CP
U)、102はCPU101に接続される外部インター
フェイス回路であり、CPU101は、オペコード、オ
ペランド1,オペランド2が1アドレスに存在する固定
長固定サイクル命令に基づくプログラムを記憶するプロ
グラムメモリ103と、プログラムメモリ103から出
力される命令に含まれるオペコードを解読して各部に所
定の制御信号を出力するインストラクションデコーダ1
04と、演算のためのデータを書込み読出し可能な多数
の汎用レジスタからなるレジスタバンク105と、レジ
スタバンク105の出力及びデータバス106を通して
各部から出力されたデータを基にインストラクションデ
コーダ104による解読結果(デコード信号)に従って
所定の演算を実行し、その結果をレジスタバンク105
に出力するALU(arithmetic logical unit)107
と、レジスタバンク105と異なるアドレス空間にあり
該レジスタバンク105と同様な機能を有する内部RA
M108と、レジスタバンク105のレジスタ領域にア
クセスするためのインデックスアドレス領域を指定する
とともに、プログラムメモリ22から出力される命令に
含まれるオペランドA2を用いてレジスタバンク105
内の汎用レジスタのアドレスの指定及びインデックスレ
ジスタ指定を行うレジスタアドレス回路109と、内部
RAM108のアドレス指定を行うメモリアドレス回路
110と、プログラムメモリ103のアドレス指定を行
うプログラムカウンタ(PC)111とにより構成され
ている。
【0010】また、外部インターフェイス回路102
は、内部データバス106を介してCPU101に接続
されており、A/Dコンバータ120、タイマ121,
122、割込信号INTを受付ける割込みゲート12
3、割込信号INTに従って割込み制御を行う割込み制
御回路124、入力ポート(POA)125及び出力ポ
ート(POA)126,(POB)127により構成さ
れている。
は、内部データバス106を介してCPU101に接続
されており、A/Dコンバータ120、タイマ121,
122、割込信号INTを受付ける割込みゲート12
3、割込信号INTに従って割込み制御を行う割込み制
御回路124、入力ポート(POA)125及び出力ポ
ート(POA)126,(POB)127により構成さ
れている。
【0011】次に、本実施例の動作を説明する。本実施
例のCPU101は、大容量レジスタであるレジスタバ
ンク105の一部に大容量のインデックスレジスタを設
けるとともに、レジスタアドレス回路109により上記
インデックスレジスタで自己の大量レジスタを間接的に
アドレス指定し、更にレジスタアドレス回路109及び
メモリアドレス回路110により上記インデックスレジ
スタで内部RAM108を間接的にアドレス指定可能に
するものである。かかるアドレッシングを可能にする転
送・演算命令として本実施例では@Rx命令、即ち<m
vxrd rx>命令と、@Rxm命令、即ち<mvx
m rd rx>命令とを設けている。以下、この@R
x命令、@Rxm命令に基づく命令実行時のアドレス移
動を例に採りCPU101の特徴部分の基本動作を説明
し、しかる後図4〜図9を用いてCPU101各部の具
体的な動作を述べる。
例のCPU101は、大容量レジスタであるレジスタバ
ンク105の一部に大容量のインデックスレジスタを設
けるとともに、レジスタアドレス回路109により上記
インデックスレジスタで自己の大量レジスタを間接的に
アドレス指定し、更にレジスタアドレス回路109及び
メモリアドレス回路110により上記インデックスレジ
スタで内部RAM108を間接的にアドレス指定可能に
するものである。かかるアドレッシングを可能にする転
送・演算命令として本実施例では@Rx命令、即ち<m
vxrd rx>命令と、@Rxm命令、即ち<mvx
m rd rx>命令とを設けている。以下、この@R
x命令、@Rxm命令に基づく命令実行時のアドレス移
動を例に採りCPU101の特徴部分の基本動作を説明
し、しかる後図4〜図9を用いてCPU101各部の具
体的な動作を述べる。
【0012】転送・演算命令例
図2及び図3は@Rx命令,@Rxm命令命令実行時の
アドレス移動経路を示す図である。 (I)@Rx命令における動作(図2参照) @Rx命令<mvx rd rx>は「rx,rx+1
のインデックスレジスタ105aで示される汎用レジス
タ(レジスタバンク105)の値をrdという汎用レジ
スタに転送する」という意味の命令であり、この命令が
プログラムメモリ103から出力されるとインストラク
ションデコーダ104で解析されて転送動作が行われ
る。このとき、汎用レジスタのオペランド部分のrxと
rx+1のデータが内部バス106及びレジスタアドレ
ス回路109を通って汎用レジスタのアドレスとして与
えられる。すなわち、オペランド2のrxは8bitであ
るからこれに+1してrx+1とし、rxとrx+1と
で16bitにする。すると、汎用レジスタrxとrx+
1の16bitでアドレスされる汎用レジスタのデータが
DATA OUTのA端子に出力される。このとき、A
LU107は演算を行わずにA端子の出力をそのまま汎
用レジスタのDATA IN入力に与える。
アドレス移動経路を示す図である。 (I)@Rx命令における動作(図2参照) @Rx命令<mvx rd rx>は「rx,rx+1
のインデックスレジスタ105aで示される汎用レジス
タ(レジスタバンク105)の値をrdという汎用レジ
スタに転送する」という意味の命令であり、この命令が
プログラムメモリ103から出力されるとインストラク
ションデコーダ104で解析されて転送動作が行われ
る。このとき、汎用レジスタのオペランド部分のrxと
rx+1のデータが内部バス106及びレジスタアドレ
ス回路109を通って汎用レジスタのアドレスとして与
えられる。すなわち、オペランド2のrxは8bitであ
るからこれに+1してrx+1とし、rxとrx+1と
で16bitにする。すると、汎用レジスタrxとrx+
1の16bitでアドレスされる汎用レジスタのデータが
DATA OUTのA端子に出力される。このとき、A
LU107は演算を行わずにA端子の出力をそのまま汎
用レジスタのDATA IN入力に与える。
【0013】また、このとき<mvx rd rx>命
令のオペランドで示されるrdの値がレジスタアドレス
回路109から汎用レジスタに与えられるため、DAT
AINの入力に与えられたデータは図2アに示すよう
に、rdで示される汎用レジスタ領域105bに格納さ
れる。このように@Rx命令例では自己の汎用レジスタ
の一部にあるインデックスレジスタ105aのアドレッ
シングにより自己のレジスタ同士のデータ転送が間接的
に実行される。従って、従来のCPUではインデックス
レジスタとして使用できるレジスタの数が極めて少なく
(例えば、30byte程度)、間接アドレッシングを行う
ためにはレジスタの許容を毎回更新しなければならなか
ったが、本CPU101は大容量(例えば、1kbyte)
のレジスタからなるレジスタバンク105のうちの任意
のレジスタをインデックスレジスタ105aに設定して
このインデックスレジスタ105aを用いて間接的にア
ドレスを指定しているので、インデックスレジスタ10
5aに入っている同じアドレスデータでレジスタバンク
105の記憶領域105bを自由にアクセスすることが
可能となる。また、インデックスレジスタ105aが直
接演算可能である汎用レジスタにあるため、アドレス計
算後直ちに間接アドレス処理が可能になる。
令のオペランドで示されるrdの値がレジスタアドレス
回路109から汎用レジスタに与えられるため、DAT
AINの入力に与えられたデータは図2アに示すよう
に、rdで示される汎用レジスタ領域105bに格納さ
れる。このように@Rx命令例では自己の汎用レジスタ
の一部にあるインデックスレジスタ105aのアドレッ
シングにより自己のレジスタ同士のデータ転送が間接的
に実行される。従って、従来のCPUではインデックス
レジスタとして使用できるレジスタの数が極めて少なく
(例えば、30byte程度)、間接アドレッシングを行う
ためにはレジスタの許容を毎回更新しなければならなか
ったが、本CPU101は大容量(例えば、1kbyte)
のレジスタからなるレジスタバンク105のうちの任意
のレジスタをインデックスレジスタ105aに設定して
このインデックスレジスタ105aを用いて間接的にア
ドレスを指定しているので、インデックスレジスタ10
5aに入っている同じアドレスデータでレジスタバンク
105の記憶領域105bを自由にアクセスすることが
可能となる。また、インデックスレジスタ105aが直
接演算可能である汎用レジスタにあるため、アドレス計
算後直ちに間接アドレス処理が可能になる。
【0014】(II)@Rxm命令における動作(図3参
照) @Rxm命令<mvxm rd rx>は、「rx,r
x+1のインデックスレジスタ105aで示される内部
RAM108の値を汎用レジスタ(レジスタバンク10
5)のrdに転送する」という意味の命令であり、この
命令が実行されると上記(I)の@Rx命令の場合と同
様にそのまま汎用レジスタのDATAIN入力に与えら
れる(図ア参照)。そして、同様にして図3イに示すよ
うにrdでアドレスされた汎用レジスタ領域105bに
データが格納される。従って、@Rxm命令では汎用レ
ジスタのインデックスレジスタ105aで汎用レジスタ
と内部RAM108のデータ転送が実行される。例え
ば、<adx rd rx>命令実行時ではALU10
7を通過するとき、B出力端子からrdの値がALU1
07に与えられ、ALU107により加算が実行される
ことによりrd←rd+(rx,rx+1)という演算
が実行される。
照) @Rxm命令<mvxm rd rx>は、「rx,r
x+1のインデックスレジスタ105aで示される内部
RAM108の値を汎用レジスタ(レジスタバンク10
5)のrdに転送する」という意味の命令であり、この
命令が実行されると上記(I)の@Rx命令の場合と同
様にそのまま汎用レジスタのDATAIN入力に与えら
れる(図ア参照)。そして、同様にして図3イに示すよ
うにrdでアドレスされた汎用レジスタ領域105bに
データが格納される。従って、@Rxm命令では汎用レ
ジスタのインデックスレジスタ105aで汎用レジスタ
と内部RAM108のデータ転送が実行される。例え
ば、<adx rd rx>命令実行時ではALU10
7を通過するとき、B出力端子からrdの値がALU1
07に与えられ、ALU107により加算が実行される
ことによりrd←rd+(rx,rx+1)という演算
が実行される。
【0015】CPU101の各部の動作
次に、図4及び図5のタイミングチャート、図6〜図9
のCPU101の動作状態を示すブロック図を参照しな
がら各部の動作を説明する。この場合、図4、図6及び
図7は<mvx rd rx>命令実行時(すなわち、
レジスタバンク105内の移動の場合)における動作
例、図5、図8及び図9は<mvxm rdrx>命令
実行時(すなわち、内部RAM108からレジスタバン
ク105にデータを移動する場合)における動作例を示
しており、図6〜図9中、太線で表示されている部分が
その時点で信号が流れていることを示している。
のCPU101の動作状態を示すブロック図を参照しな
がら各部の動作を説明する。この場合、図4、図6及び
図7は<mvx rd rx>命令実行時(すなわち、
レジスタバンク105内の移動の場合)における動作
例、図5、図8及び図9は<mvxm rdrx>命令
実行時(すなわち、内部RAM108からレジスタバン
ク105にデータを移動する場合)における動作例を示
しており、図6〜図9中、太線で表示されている部分が
その時点で信号が流れていることを示している。
【0016】<mvx rd rx>命令実行時
CPU101は、図4に示すように基本的にはクロック
T1〜T6の3サイクルで1命令が実行されるが、<m
vx>命令及び後述する<mvxm>命令は6サイクル
(T1〜T6)で1命令となる。
T1〜T6の3サイクルで1命令が実行されるが、<m
vx>命令及び後述する<mvxm>命令は6サイクル
(T1〜T6)で1命令となる。
【0017】先ず、プログラムカウンタ111により所
定のアドレスが指定されるとプログラムメモリ103か
ら24bit固定長データが出力され、具体的には上位8b
itがオペコード(A1)としてインストラクションデコ
ーダ104に、次の8bitがオペランド1(A2)、下
位8bitがオペランド2(A3)としてデータバス10
6を通してレジスタアドレス回路109にそれぞれ出力
される。インストラクションデコーダ104はプログラ
ムメモリ103から出力される命令に含まれるオペコー
ドを解読し、解読結果に基づいて所定の制御信号を各部
回路に供給する。ALU107は、インストラクション
デコーダ104の解読結果に従ってレジスタバンク10
5に対する演算を実行し、その演算結果をレジスタバン
ク105に出力する。このような場合において、アドレ
ス指定により<mvx rd rx>命令が実行される
とプログラムメモリ103からはこの命令に基づいて図
4及び図6に示すようにオペコードA1,オペランドA
2,A3としてmvx,rd,rxが出力される。ここ
で、mvxはインストラクション命令であり、rd,x
はアドレスを指定するデータである。
定のアドレスが指定されるとプログラムメモリ103か
ら24bit固定長データが出力され、具体的には上位8b
itがオペコード(A1)としてインストラクションデコ
ーダ104に、次の8bitがオペランド1(A2)、下
位8bitがオペランド2(A3)としてデータバス10
6を通してレジスタアドレス回路109にそれぞれ出力
される。インストラクションデコーダ104はプログラ
ムメモリ103から出力される命令に含まれるオペコー
ドを解読し、解読結果に基づいて所定の制御信号を各部
回路に供給する。ALU107は、インストラクション
デコーダ104の解読結果に従ってレジスタバンク10
5に対する演算を実行し、その演算結果をレジスタバン
ク105に出力する。このような場合において、アドレ
ス指定により<mvx rd rx>命令が実行される
とプログラムメモリ103からはこの命令に基づいて図
4及び図6に示すようにオペコードA1,オペランドA
2,A3としてmvx,rd,rxが出力される。ここ
で、mvxはインストラクション命令であり、rd,x
はアドレスを指定するデータである。
【0018】図4のA2,A3に示すようにT1サイク
ルの立上がりに同期してオペランドA2のrd、オペラ
ンドA3のrxがレジスタアドレス回路109に入力さ
れると、レジスタアドレス回路109は図4のA4に示
すようにT1サイクルの間出力信号A4としてオペラン
ドA3に入っていたデータrxを出力した後、T2,T
3サイクルの間上記rxを+1インクリメントした信号
rx+1を出力する。レジスタアドレス回路109の出
力信号A4はレジスタバンク105に入力され、この信
号A4によってレジスタバンク105に格納されている
アドレスデータが出力端子Aから出力信号A5として出
力される(図4及び図6のA5参照)。ここで、図4の
A5においてrxを括弧( )で括った(rx)は、
rxをインデックスレジスタとして読出されるデータで
あることを示しており、同様に図4のA5中(rx+
1)はrx+1をレジスタとして読出されるデータがA
5に出力されることを示している。以下、図4及び図5
のA5,A6,A7においても括弧書きの意味は同様で
ある。
ルの立上がりに同期してオペランドA2のrd、オペラ
ンドA3のrxがレジスタアドレス回路109に入力さ
れると、レジスタアドレス回路109は図4のA4に示
すようにT1サイクルの間出力信号A4としてオペラン
ドA3に入っていたデータrxを出力した後、T2,T
3サイクルの間上記rxを+1インクリメントした信号
rx+1を出力する。レジスタアドレス回路109の出
力信号A4はレジスタバンク105に入力され、この信
号A4によってレジスタバンク105に格納されている
アドレスデータが出力端子Aから出力信号A5として出
力される(図4及び図6のA5参照)。ここで、図4の
A5においてrxを括弧( )で括った(rx)は、
rxをインデックスレジスタとして読出されるデータで
あることを示しており、同様に図4のA5中(rx+
1)はrx+1をレジスタとして読出されるデータがA
5に出力されることを示している。以下、図4及び図5
のA5,A6,A7においても括弧書きの意味は同様で
ある。
【0019】レジスタバンク105の出力端子Aからは
信号A5としてrx,rx+1で指定されたデータ(r
x),(rx+1)が出力されるが、この信号A5は図
6に示すようにデータバス106上に出力されて信号A
6となりレジスタアドレス回路109に戻されここでラ
ッチされる。なお、データバス106とレジスタバンク
105、ALU107、内部RAM108、レジスタア
ドレス回路109及びメモリアドレス回路とを結ぶバス
上と、及びこれら各回路を結ぶ信号線上には図示しない
ゲート回路(例えば、トランスミッションゲート)が設
けられており、これらのゲート回路は例えばインストラ
クションデコーダ104からの制御信号を受けて所定タ
イミングで適宜開閉して図6〜図9の太実線で示される
信号経路で信号を流すように構成される。
信号A5としてrx,rx+1で指定されたデータ(r
x),(rx+1)が出力されるが、この信号A5は図
6に示すようにデータバス106上に出力されて信号A
6となりレジスタアドレス回路109に戻されここでラ
ッチされる。なお、データバス106とレジスタバンク
105、ALU107、内部RAM108、レジスタア
ドレス回路109及びメモリアドレス回路とを結ぶバス
上と、及びこれら各回路を結ぶ信号線上には図示しない
ゲート回路(例えば、トランスミッションゲート)が設
けられており、これらのゲート回路は例えばインストラ
クションデコーダ104からの制御信号を受けて所定タ
イミングで適宜開閉して図6〜図9の太実線で示される
信号経路で信号を流すように構成される。
【0020】このように、レジスタアドレス回路109
はT1サイクルでオペランドA3として入力されたデー
タrxを読出すと、出力信号A4としてrxをレジスタ
バンク108に出力し、レジスタバンク105はこのr
xにより指定されたデータ(rx)を読み出して出力端
子Aから信号A5としてデータバス106に出力する。
データバス106上の信号A6はレジスタアドレス回路
109に戻され、レジスタアドレス回路109は次のT
2,T3サイクルでオペランドA3で指定されたrxを
+1インクリメントし、このインクリメントした信号r
x+1をA4としてレジスタバンク105に出力する。
レジスタバンク105はこのrx+1に基づいてrx+
1で指定したデータ(rx+1)をA5として出力し、
同様にデータバス106上を通して信号A6としてレジ
スタアドレス回路109に戻される。
はT1サイクルでオペランドA3として入力されたデー
タrxを読出すと、出力信号A4としてrxをレジスタ
バンク108に出力し、レジスタバンク105はこのr
xにより指定されたデータ(rx)を読み出して出力端
子Aから信号A5としてデータバス106に出力する。
データバス106上の信号A6はレジスタアドレス回路
109に戻され、レジスタアドレス回路109は次のT
2,T3サイクルでオペランドA3で指定されたrxを
+1インクリメントし、このインクリメントした信号r
x+1をA4としてレジスタバンク105に出力する。
レジスタバンク105はこのrx+1に基づいてrx+
1で指定したデータ(rx+1)をA5として出力し、
同様にデータバス106上を通して信号A6としてレジ
スタアドレス回路109に戻される。
【0021】上記T1〜T3サイクルで前半部分の動作
が終わり、次のT4サイクルから後半部分の動作に移
る。T4〜T6サイクルのCPU101の動作は図7で
示される。
が終わり、次のT4サイクルから後半部分の動作に移
る。T4〜T6サイクルのCPU101の動作は図7で
示される。
【0022】レジスタアドレス回路109はオペランド
A3で指定されたrxをレジスタとして読出されたデー
タ(rx)と+1インクリメントしたrx+1をレジス
タとして読出されたデータ(rx+1)とをT4サイク
ルで加算してこれを信号A4としてレジスタバンク10
5に出力する(図6のA4参照)。すなわち、レジスタ
アドレス回路109に入力されたデータ(rx),(r
x+1)のうち、(rx)上位ビット、(rx+1)を
下位ビットとして加算して16ビットのデータを生成す
るようにしている。レジスタバンク105は入力された
信号A4(ここでは、(rx,rx+1))により指定
されたデータ((rx,rx+1))を読出してこれを出力
端子Aから出力信号A5としてALU107の入力端子
aに出力する(図4及び図7のA5参照)。このとき、
レジスタバンク105の出力信号A5をALU107側
に出力してデータバス106上には出力させないように
するためにレジスタバンク105とデータバス106の
間のゲート回路(図不示)は閉じられている。また、オ
ペコードA1による命令は<mvx>であるから、AL
U107は入力端子aに入力されたデータだけを通過さ
せて(入力端子bに入力されるデータは無視)ALU1
07出力A7としてレジスタバンク105のデータイン
端子に出力する。このときのデータの流れが図4及び図
7のA7で示されている。また、レジスタアドレス回路
109からの出力A4は図4のA4に示すようにT5,
T6サイクルで前記データ(rx,rx+1)出力から
オペランドA3のrd出力に切替えられている。そし
て、T5,T6サイクルでrdがレジスタバンク105
に入力されているときにライトパルスW1(図4のW1
参照)が立上がることにより、このW1のタイミングで
レジスタバンク105のデータイン端子に入力されてい
るデータ((rx,rx+1))がrdで示されるレジスタ
領域に格納される。
A3で指定されたrxをレジスタとして読出されたデー
タ(rx)と+1インクリメントしたrx+1をレジス
タとして読出されたデータ(rx+1)とをT4サイク
ルで加算してこれを信号A4としてレジスタバンク10
5に出力する(図6のA4参照)。すなわち、レジスタ
アドレス回路109に入力されたデータ(rx),(r
x+1)のうち、(rx)上位ビット、(rx+1)を
下位ビットとして加算して16ビットのデータを生成す
るようにしている。レジスタバンク105は入力された
信号A4(ここでは、(rx,rx+1))により指定
されたデータ((rx,rx+1))を読出してこれを出力
端子Aから出力信号A5としてALU107の入力端子
aに出力する(図4及び図7のA5参照)。このとき、
レジスタバンク105の出力信号A5をALU107側
に出力してデータバス106上には出力させないように
するためにレジスタバンク105とデータバス106の
間のゲート回路(図不示)は閉じられている。また、オ
ペコードA1による命令は<mvx>であるから、AL
U107は入力端子aに入力されたデータだけを通過さ
せて(入力端子bに入力されるデータは無視)ALU1
07出力A7としてレジスタバンク105のデータイン
端子に出力する。このときのデータの流れが図4及び図
7のA7で示されている。また、レジスタアドレス回路
109からの出力A4は図4のA4に示すようにT5,
T6サイクルで前記データ(rx,rx+1)出力から
オペランドA3のrd出力に切替えられている。そし
て、T5,T6サイクルでrdがレジスタバンク105
に入力されているときにライトパルスW1(図4のW1
参照)が立上がることにより、このW1のタイミングで
レジスタバンク105のデータイン端子に入力されてい
るデータ((rx,rx+1))がrdで示されるレジスタ
領域に格納される。
【0023】このように、大容量のレジスタバンク10
5の一部にあるインデックスレジスタのアドレッシング
によりレジスタバンク105の所定のレジスタ領域にデ
ータ転送を行うことが可能になる。
5の一部にあるインデックスレジスタのアドレッシング
によりレジスタバンク105の所定のレジスタ領域にデ
ータ転送を行うことが可能になる。
【0024】<mvxm rd rx>命令実行時
この命令は内部RAM108にあるデータをレジスタバ
ンク105で指定されたデータをアドレスとして読出し
てそれをレジスタバンク105内に移す動作を行わせる
ものである。
ンク105で指定されたデータをアドレスとして読出し
てそれをレジスタバンク105内に移す動作を行わせる
ものである。
【0025】アドレス指定により<mvx rd rx
>命令実行されるとプログラムメモリ103からはこの
命令に基づいて図5及び図8に示すようにオペコードA
1,オペランドA2,A3としてmvxm,rd,rx
が出力される。そして、図5のA2,A3に示すように
T1サイクルの立上がりに同期してオペランドA2のr
d、オペランドA3のrxがレジスタアドレス回路10
9に入力されると、レジスタアドレス回路109は図5
のA4に示すようにT1サイクルの間出力信号A4とし
てオペランドA3に入っていたデータrxを出力した
後、T2,T3サイクルの間上記rxを+1インクリメ
ントした信号rx+1を出力する。レジスタアドレス回
路109の出力信号A4はレジスタバンク105に入力
され、この信号A4によってレジスタバンク105に格
納されているアドレスデータが出力端子Aから出力信号
A5として出力される(図5及び図8のA5参照)。
>命令実行されるとプログラムメモリ103からはこの
命令に基づいて図5及び図8に示すようにオペコードA
1,オペランドA2,A3としてmvxm,rd,rx
が出力される。そして、図5のA2,A3に示すように
T1サイクルの立上がりに同期してオペランドA2のr
d、オペランドA3のrxがレジスタアドレス回路10
9に入力されると、レジスタアドレス回路109は図5
のA4に示すようにT1サイクルの間出力信号A4とし
てオペランドA3に入っていたデータrxを出力した
後、T2,T3サイクルの間上記rxを+1インクリメ
ントした信号rx+1を出力する。レジスタアドレス回
路109の出力信号A4はレジスタバンク105に入力
され、この信号A4によってレジスタバンク105に格
納されているアドレスデータが出力端子Aから出力信号
A5として出力される(図5及び図8のA5参照)。
【0026】レジスタバンク105の出力端子Aからは
信号A5としてrx,rx+1で指定されたデータ(r
x),(rx+1)が出力されるが、この信号A5は図
8に示すようにデータバス106上に出力されて信号A
6となりレジスタアドレス回路109に戻されここでラ
ッチされるとともに、ライトパルスW2(図5のW2参
照)の読込みタイミングに同期してアドレスカウンタ内
にあるメモリアドレス回路110に読込まれる。なお、
信号A6をメモリアドレス回路110に確実に読込むよ
うにするためにライトパルスW2はT1,T2の立上が
りよりも少しずれたタイミングに設定される。
信号A5としてrx,rx+1で指定されたデータ(r
x),(rx+1)が出力されるが、この信号A5は図
8に示すようにデータバス106上に出力されて信号A
6となりレジスタアドレス回路109に戻されここでラ
ッチされるとともに、ライトパルスW2(図5のW2参
照)の読込みタイミングに同期してアドレスカウンタ内
にあるメモリアドレス回路110に読込まれる。なお、
信号A6をメモリアドレス回路110に確実に読込むよ
うにするためにライトパルスW2はT1,T2の立上が
りよりも少しずれたタイミングに設定される。
【0027】このように、レジスタアドレス回路109
はT1サイクルでオペランドA3として入力されたデー
タrxを読出すと出力Aとしてrxをレジスタバンク1
08に出力し、レジスタバンク105はこのrxにより
指定されたデータ(rx)を読み出して出力端子Aから
信号A5としてデータバス106に出力する。データバ
ス106上の信号A6はレジスタアドレス回路109に
戻され、レジスタアドレス回路109は次のT2,T3
サイクルでオペランドA3で指定されたrxを+1イン
クリメントし、このインクリメントした信号rx+1を
信号A4としてレジスタバンク105に出力する。レジ
スタバンク105はこのrx+1に基づいてrx+1で
指定したデータ(rx+1)を信号A5として出力し、
同様にデータバス106上を通して信号A6としてレジ
スタアドレス回路109に戻される。
はT1サイクルでオペランドA3として入力されたデー
タrxを読出すと出力Aとしてrxをレジスタバンク1
08に出力し、レジスタバンク105はこのrxにより
指定されたデータ(rx)を読み出して出力端子Aから
信号A5としてデータバス106に出力する。データバ
ス106上の信号A6はレジスタアドレス回路109に
戻され、レジスタアドレス回路109は次のT2,T3
サイクルでオペランドA3で指定されたrxを+1イン
クリメントし、このインクリメントした信号rx+1を
信号A4としてレジスタバンク105に出力する。レジ
スタバンク105はこのrx+1に基づいてrx+1で
指定したデータ(rx+1)を信号A5として出力し、
同様にデータバス106上を通して信号A6としてレジ
スタアドレス回路109に戻される。
【0028】上記T1〜T3サイクルで前半部分の動作
が終わり、次のT4サイクルから後半部分の動作に移
る。但し、<mvxm>命令の場合はT4サイクルでは
誤動作防止のため信号A8の出力以外は何も出力しない
ようにする。また、T4〜T6サイクルのCPU101
の動作は図7で示される。
が終わり、次のT4サイクルから後半部分の動作に移
る。但し、<mvxm>命令の場合はT4サイクルでは
誤動作防止のため信号A8の出力以外は何も出力しない
ようにする。また、T4〜T6サイクルのCPU101
の動作は図7で示される。
【0029】メモリアドレス回路110はオペランドA
3で指定されたrxをレジスタとして読出されたデータ
(rx)と+1インクリメントしたrx+1をレジスタ
として読出されたデータ(rx+1)とを2番目のライ
トパルスW2の読込みタイミングで加算してこれをA8
として内部RAM108に出力する(図8のA8参
照)。すなわち、メモリアドレス回路110に入力され
たデータ(rx),(rx+1)のうち、(rx)を上
位ビット、(rx+1)を下位ビットとして加算して1
6ビットのデータを生成するようにしている。内部RA
M108は入力された信号A8(ここでは、(rx,r
x+1))により指定されたデータ((rx,rx+1))
を読出してこれを図9に示すように出力信号A6として
ALU107の入力端子aに出力する(図5及び図9の
A6参照)。このとき、内部RAM108の出力信号A
6をALU107に出力するようにするためにレジスタ
バンク105とALU107との間のゲート回路(図不
示)は閉じられている。また、オペコードA1による命
令は<mvxm>であるから、ALU107は入力端子
aに入力されたデータだけを通過させて(入力端子bに
入力されるデータは無視)ALU107出力A7として
レジスタバンク105のデータイン端子に出力する。こ
のときのデータの流れが図5及び図9のA7で示されて
いる。また、レジスタアドレス回路109からの出力A
4は図4のA4に示すようにT5,T6サイクルで前記
データ(rx,rx+1)出力からオペランドA3のr
d出力に切替えられている。そして、T5,T6サイク
ルでrdがレジスタバンク105に入力されているとき
にライトパルスW1(図5のW1参照)が立上がること
により、このW1のタイミングでレジスタバンク105
のデータイン端子に入力されているデータ((rx,rx
+1))がrdで示されるレジスタ領域に格納される。
3で指定されたrxをレジスタとして読出されたデータ
(rx)と+1インクリメントしたrx+1をレジスタ
として読出されたデータ(rx+1)とを2番目のライ
トパルスW2の読込みタイミングで加算してこれをA8
として内部RAM108に出力する(図8のA8参
照)。すなわち、メモリアドレス回路110に入力され
たデータ(rx),(rx+1)のうち、(rx)を上
位ビット、(rx+1)を下位ビットとして加算して1
6ビットのデータを生成するようにしている。内部RA
M108は入力された信号A8(ここでは、(rx,r
x+1))により指定されたデータ((rx,rx+1))
を読出してこれを図9に示すように出力信号A6として
ALU107の入力端子aに出力する(図5及び図9の
A6参照)。このとき、内部RAM108の出力信号A
6をALU107に出力するようにするためにレジスタ
バンク105とALU107との間のゲート回路(図不
示)は閉じられている。また、オペコードA1による命
令は<mvxm>であるから、ALU107は入力端子
aに入力されたデータだけを通過させて(入力端子bに
入力されるデータは無視)ALU107出力A7として
レジスタバンク105のデータイン端子に出力する。こ
のときのデータの流れが図5及び図9のA7で示されて
いる。また、レジスタアドレス回路109からの出力A
4は図4のA4に示すようにT5,T6サイクルで前記
データ(rx,rx+1)出力からオペランドA3のr
d出力に切替えられている。そして、T5,T6サイク
ルでrdがレジスタバンク105に入力されているとき
にライトパルスW1(図5のW1参照)が立上がること
により、このW1のタイミングでレジスタバンク105
のデータイン端子に入力されているデータ((rx,rx
+1))がrdで示されるレジスタ領域に格納される。
【0030】従って、内部RAM108に格納されたデ
ータを、レジスタバンク105で指定されたデータをア
ドレスとして読出してレジスタバンク105に移動させ
ることが可能になる。
ータを、レジスタバンク105で指定されたデータをア
ドレスとして読出してレジスタバンク105に移動させ
ることが可能になる。
【0031】以上説明したように、本実施例では固定長
固定サイクル命令に基づくプログラムを記憶するプログ
ラムメモリ103と、プログラムメモリ103から出力
される命令に含まれるオペコードA1を解読して各部に
所定の制御信号を出力するインストラクションデコーダ
104と、演算のためのデータを書込み読出し可能な多
数の汎用レジスタからなるレジスタバンク105と、レ
ジスタバンク105の出力及びデータバス106を通し
て各部から出力されたデータを基にインストラクション
デコーダ104による解読結果に従って所定の演算を実
行し、その結果をレジスタバンク105に出力するAL
U107と、レジスタバンク105と異なるアドレス空
間にあり該レジスタバンク105と同様な機能を有する
内部RAM108と、レジスタバンク105のレジスタ
領域に該レジスタと内部RAM108を間接的にアクセ
スするためのインデックスアドレス領域を指定するとと
もに、プログラムメモリ22から出力される命令に含ま
れるオペランドA2を用いてレジスタバンク105内の
汎用レジスタのアドレスの指定及びインデックスレジス
タの指定を行うレジスタアドレス回路109と、内部R
AM108のアドレス指定を行うメモリアドレス回路1
10と、プログラムメモリ103のアドレス指定を行う
プログラムカウンタ(PC)111とを備えているの
で、インデックスレジスタが他のレジスタと区別される
ことなくレジスタバンク105内に大量に設けられ、そ
のインデックスレジスタによりレジスタバンク(汎用レ
ジスタ)105及び内部RAM108がアクセス可能と
なり、インデックスレジスタに格納されているものと同
じアドレスデータで上記2つのメモリ記憶領域を自由に
アクセスすることができる。また、インデックスレジス
タが直接演算可能な汎用レジスタ内にあるため、アドレ
ス計算がそのまま間接アドレス処理となるという利点が
ある。その結果、命令効率が非常に良くなりプログラム
メモリの容量が少なくてすみ、さらに高速な処理が可能
になる。
固定サイクル命令に基づくプログラムを記憶するプログ
ラムメモリ103と、プログラムメモリ103から出力
される命令に含まれるオペコードA1を解読して各部に
所定の制御信号を出力するインストラクションデコーダ
104と、演算のためのデータを書込み読出し可能な多
数の汎用レジスタからなるレジスタバンク105と、レ
ジスタバンク105の出力及びデータバス106を通し
て各部から出力されたデータを基にインストラクション
デコーダ104による解読結果に従って所定の演算を実
行し、その結果をレジスタバンク105に出力するAL
U107と、レジスタバンク105と異なるアドレス空
間にあり該レジスタバンク105と同様な機能を有する
内部RAM108と、レジスタバンク105のレジスタ
領域に該レジスタと内部RAM108を間接的にアクセ
スするためのインデックスアドレス領域を指定するとと
もに、プログラムメモリ22から出力される命令に含ま
れるオペランドA2を用いてレジスタバンク105内の
汎用レジスタのアドレスの指定及びインデックスレジス
タの指定を行うレジスタアドレス回路109と、内部R
AM108のアドレス指定を行うメモリアドレス回路1
10と、プログラムメモリ103のアドレス指定を行う
プログラムカウンタ(PC)111とを備えているの
で、インデックスレジスタが他のレジスタと区別される
ことなくレジスタバンク105内に大量に設けられ、そ
のインデックスレジスタによりレジスタバンク(汎用レ
ジスタ)105及び内部RAM108がアクセス可能と
なり、インデックスレジスタに格納されているものと同
じアドレスデータで上記2つのメモリ記憶領域を自由に
アクセスすることができる。また、インデックスレジス
タが直接演算可能な汎用レジスタ内にあるため、アドレ
ス計算がそのまま間接アドレス処理となるという利点が
ある。その結果、命令効率が非常に良くなりプログラム
メモリの容量が少なくてすみ、さらに高速な処理が可能
になる。
【0032】なお、本実施例では、CPU11を固定長
固定命令としているが、要はプログラムメモリにデータ
を設けることのできるCPUであれば何でもよく、命令
長は固定長である必要はなく命令実行サイクルも任意で
あることは言うまでもない。また、上記CPU101や
これに接続される外部インターフェイス回路102等を
構成する部材の数、種類などは上述した実施例に限られ
るものではなく、また、内部RAM108を有しないC
PUであっても良いことは言うまでもない。
固定命令としているが、要はプログラムメモリにデータ
を設けることのできるCPUであれば何でもよく、命令
長は固定長である必要はなく命令実行サイクルも任意で
あることは言うまでもない。また、上記CPU101や
これに接続される外部インターフェイス回路102等を
構成する部材の数、種類などは上述した実施例に限られ
るものではなく、また、内部RAM108を有しないC
PUであっても良いことは言うまでもない。
【0033】
【発明の効果】請求項1の発明によれば、大容量のレジ
スタからなる演算データ記憶手段の一部にインデックス
レジスタを設けインデックスレジスタに格納されたアド
レスデータにより演算データ記憶手段を間接的にアドレ
ッシングしているので、インデックスレジスタに格納さ
れているデータで演算データ記憶手段の記憶領域が自由
にアクセス可能になり、命令効率が格段に向上するとと
もに、プログラムメモリの容量が少なくて済み、さらに
高速な処理が可能になる。
スタからなる演算データ記憶手段の一部にインデックス
レジスタを設けインデックスレジスタに格納されたアド
レスデータにより演算データ記憶手段を間接的にアドレ
ッシングしているので、インデックスレジスタに格納さ
れているデータで演算データ記憶手段の記憶領域が自由
にアクセス可能になり、命令効率が格段に向上するとと
もに、プログラムメモリの容量が少なくて済み、さらに
高速な処理が可能になる。
【0034】請求項2の発明によれば、大容量レジスタ
からなる演算データ記憶手段と内部メモリとの2つのデ
ータ領域を相互に効率良くアクセス可能となり、間接ア
ドレッシングを可能として内部メモリを使用する場合で
あっても命令効率を格段に高めることができる。
からなる演算データ記憶手段と内部メモリとの2つのデ
ータ領域を相互に効率良くアクセス可能となり、間接ア
ドレッシングを可能として内部メモリを使用する場合で
あっても命令効率を格段に高めることができる。
【図1】中央演算処理装置の全体構成図である。
【図2】中央演算処理装置の実行アドレスの移動経路を
示す図である。
示す図である。
【図3】中央演算処理装置の実行アドレスの移動経路を
示す図である。
示す図である。
【図4】中央演算処理装置のタイミングチャートであ
る。
る。
【図5】中央演算処理装置のタイミングチャートであ
る。
る。
【図6】中央演算処理装置の動作を説明するための構成
図である。
図である。
【図7】中央演算処理装置の動作を説明するための構成
図である。
図である。
【図8】中央演算処理装置の動作を説明するための構成
図である。
図である。
【図9】中央演算処理装置の動作を説明するための構成
図である。
図である。
【図10】従来の中央演算処理装置の全体構成図であ
る。
る。
101 CPU
102 外部インターフェイス回路
103 プログラムメモリ
104 インストラクションデコーダ
105 レジスタバンク
105a インデックスレジスタ
105b 汎用レジスタ領域
106 データバス
107 ALU
108 内部RAM
109 レジスタアドレス回路
110 メモリアドレス回路
111 プログラムカウンタ
Claims (2)
- 【請求項1】 所定のプログラムを記憶するプログラム
記憶手段と、 前記プログラム記憶手段をアドレッシングするアドレッ
シング手段と、 演算用データを一時的に記憶可能な複数のレジスタから
なる演算データ記憶手段と、 前記プログラム記憶手段から出力される命令に含まれる
オペコードを解読する命令解読手段と、 前記命令解読手段の解読結果に従って前記演算データ記
憶手段に対する演算を実行する演算手段と、 前記プログラム記憶手段から出力される命令に含まれる
オペランドを用いて前記演算データ記憶手段をアドレッ
シングするとともに、間接アドレッシング命令が入力さ
れると前記演算データ記憶手段の所定レジスタ領域に、
該演算データ記憶手段を間接的にアクセスするためのイ
ンデックスレジスタを指定し、該インデックスレジスタ
に格納されたアドレスデータにより該演算データ記憶手
段の記憶領域をアクセスするように制御する演算データ
アドレッシング手段と、 を備えたことを特徴とする中央演算処理装置。 - 【請求項2】 所定のプログラムを記憶するプログラム
記憶手段と、 前記プログラム記憶手段をアドレッシングするアドレッ
シング手段と、 演算用データを一時的に記憶可能な複数のレジスタから
なる演算データ記憶手段と、 前記演算データ記憶手段とは異なるアドレス空間に設け
られ、演算用データを書き込み読出し可能な内部メモリ
と、 前記プログラム記憶手段から出力される命令に含まれる
オペコードを解読する命令解読手段と、 前記命令解読手段の解読結果に従って前記演算データ記
憶手段に対する演算を実行する演算手段と、 前記プログラム記憶手段から出力される命令に含まれる
オペランドを用いて前記演算データ記憶手段をアドレッ
シングするとともに、間接アドレッシング命令が入力さ
れると前記演算データ記憶手段の所定レジスタ領域に、
該演算データ記憶手段及び前記内部メモリを間接的にア
クセスするためのインデックスレジスタを指定し、該イ
ンデックスレジスタに格納されたアドレスデータにより
前記内部メモリ及び該演算データ記憶手段の記憶領域を
アクセスするように制御する演算データアドレッシング
手段と、 を備えたことを特徴とする中央演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18330891A JP3182796B2 (ja) | 1991-06-28 | 1991-06-28 | 中央演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18330891A JP3182796B2 (ja) | 1991-06-28 | 1991-06-28 | 中央演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0512008A true JPH0512008A (ja) | 1993-01-22 |
JP3182796B2 JP3182796B2 (ja) | 2001-07-03 |
Family
ID=16133416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18330891A Expired - Fee Related JP3182796B2 (ja) | 1991-06-28 | 1991-06-28 | 中央演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3182796B2 (ja) |
-
1991
- 1991-06-28 JP JP18330891A patent/JP3182796B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3182796B2 (ja) | 2001-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4896259A (en) | Apparatus for storing modifying data prior to selectively storing data to be modified into a register | |
EP1047989B1 (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
US7007154B2 (en) | Method and apparatus for interfacing a processor to a coprocessor | |
US5386531A (en) | Computer system accelerator for multi-word cross-boundary storage access | |
US7308320B2 (en) | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same | |
JPS5852265B2 (ja) | デ−タ処理装置 | |
JP2002073330A (ja) | データ処理装置 | |
US5909588A (en) | Processor architecture with divisional signal in instruction decode for parallel storing of variable bit-width results in separate memory locations | |
JPS623461B2 (ja) | ||
JPH03233630A (ja) | 情報処理装置 | |
US6161171A (en) | Apparatus for pipelining sequential instructions in synchronism with an operation clock | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
EP0325226B1 (en) | Information processing apparatus and method | |
JP2680828B2 (ja) | ディジタル装置 | |
JP3182796B2 (ja) | 中央演算処理装置 | |
JP3164915B2 (ja) | データ処理装置及びそのデータ処理方法 | |
JPH07110769A (ja) | Vliw型計算機 | |
JPH05173778A (ja) | データ処理装置 | |
JPH0232648B2 (ja) | ||
JPH0546389A (ja) | 並列処理装置 | |
JPS6218934B2 (ja) | ||
JPH04163628A (ja) | 情報処理装置 | |
JPH033047A (ja) | 演算機能付きメモリ | |
JPH04314131A (ja) | 中央演算処理装置 | |
JPS62145430A (ja) | デ−タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |