JPH04314131A - 中央演算処理装置 - Google Patents

中央演算処理装置

Info

Publication number
JPH04314131A
JPH04314131A JP10685091A JP10685091A JPH04314131A JP H04314131 A JPH04314131 A JP H04314131A JP 10685091 A JP10685091 A JP 10685091A JP 10685091 A JP10685091 A JP 10685091A JP H04314131 A JPH04314131 A JP H04314131A
Authority
JP
Japan
Prior art keywords
data
instruction
storage means
address
output
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.)
Pending
Application number
JP10685091A
Other languages
English (en)
Inventor
Tomohisa Ishikawa
智久 石川
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP10685091A priority Critical patent/JPH04314131A/ja
Publication of JPH04314131A publication Critical patent/JPH04314131A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、中央演算処理装置に係
り、詳細には即値データ(immediate dat
a)をプログラムメモリ中に配置可能にした中央演算処
理装置に関する。
【0002】
【従来の技術】命令は一般に0〜3個のオペランドおよ
び0〜1個の次命令を指定することができる。CPUは
、命令実行時にこれらの指定に従ってオペランドおよび
次命令の存在する位置、即ち、アドレスを決定する必要
がある。また、命令のオペランド部がオペランドそのも
のである場合、これを即値データ(以下、即値という)
と呼び、定数オペランドとして用いる。従来のCPUに
おいては命令オペランドとメモリを特定するために数値
化された小量のデータ(オペランド)とにより構成され
、大量のデータは外部ROMとしてCPUのプログラム
メモリのアドレッシング空間とは別のアドレッシング回
路により供給される。CPUは外部のアドレッシング回
路を命令によって個別に制御し、外部ROMからのデー
タは所定のバスを通して演算用RAMに格納される。
【0003】プログラムメモリが1アドレスにオペコー
ド、オペランド1、オペランド2のデジタルコードを出
力する固定長固定サイクル命令であるとすると、即値を
演算時に1回だけ使用する場合は上記命令に含ませてし
まうことができる。例えば、<mov  R0  50
H>(R0というRAMの一部に即値50Hを格納する
)命令がプログラムメモリから出力された場合、その命
令のオペコードがオペレーションデコーダを通して解読
されオペレーションデコーダからmov(ムーブ)制御
を行うための信号が出力されるとともに、オペランド1
がRAMアドレス制御回路を通してRAMの格納アドレ
スを指定し、オペランド2が所定ビット(例えば、8ビ
ット)の即値を直接バス、セレクタ及びALUを通して
演算用RAMのデータ入力に入力することによってRA
Mの所定領域R0に50Hという即値が入力される。こ
の例では命令の中に存在するため制御用の即値しか使用
されない。一般に、データメモリ(電子楽器等に用いた
場合では周波数テーブル、伴奏データ等)は大量である
ため上述したようにプログラムメモリ内に即値データと
して存在させることはできず、外部にデータメモリ(外
部ROM)を設けてこのデータメモリからデータを取込
む必要がある。
【0004】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の中央演算処理装置にあっては、外部のデータ
メモリからデータを取込む構成となっていたため、専用
のデータメモリ及びそのアドレッシング回路が必要とな
るばかりか演算用RAMにデータを格納するまでに非常
に時間がかかるため高速処理ができないという問題点が
あった。すなわち、上記データメモリは、プログラムメ
モリからの指示を受けて演算用RAMからのアドレスデ
ータを出力ラッチに格納することによってアドレスが与
えられ、これによって初めてデータメモリからデータが
読み出されることとなり、読み出されたデータは所定の
セレクタ及びALUを通して演算用RAMに格納される
。従来の電子楽器用カスタムCPUなどではすべてこの
方法によりボードにアドレス16〜22ビットをセット
してデータメモリのアクセスを行っている。このため、
従来では、(I)データメモリ及びそのアドレッシング
回路が別に必要となる、(II)高速に即値が得られず
、処理時間がかかりすぎる、(III)大量データ処理
が困難になり、大量データ処理が必要な電子楽器用CP
Uとしての速度のボトルネックとなりつつある、(IV
)メモリ単位の下落に伴って大量データ処理が行われる
傾向にあり、上記不具合がより拡大しつつある、という
問題があった。そこで本発明は、プログラムメモリ領域
にデータメモリ領域を配置可能として専用のデータメモ
リ及びそのアドレッシング回路を不要にするとともに、
処理速度を大幅に向上させることができる中央演算処理
装置を提供することを目的としている。
【0005】
【課題を解決するための手段】請求項1記載の発明は、
所定のプログラムを記憶するプログラム記憶手段と、前
記プログラム記憶手段をアドレッシングするアドレッシ
ング手段と、演算用データを書込み読出し可能な演算デ
ータ記憶手段と、前記プログラム記憶手段から出力され
る命令に含まれるオペコードを解読する命令解読手段と
、前記プログラム記憶手段から出力される命令に含まれ
るオペランドを用いて前記演算データ記憶手段をアドレ
ッシングする演算データアドレッシング手段と、前記命
令解読手段の解読結果に従って前記演算データ記憶手段
に対する演算を実行する演算手段と、を備えた中央演算
処理装置において、前記アドレッシング手段は、前記オ
ペランドの即値データに基づいて前記プログラム記憶手
段の一部に復帰を前提として分岐させるアドレスを指定
するアドレス変更手段と、復帰後のアドレスを一時格納
するアドレス格納手段と、分岐後に第1の復帰命令によ
り前記アドレス格納手段から分岐命令の次の命令のアド
レスを復帰後アドレスとして読出して前記プログラム記
憶手段のアドレスとする制御手段と、復帰後に命令に含
まれるオペランドを読出して記憶させる第2の復帰命令
を設け、読出したデータを記憶するデータ記憶手段と、
を具備している。請求項2記載の発明は、前記プログラ
ム記憶手段をアドレッシングするアドレッシング手段と
、演算用データを書込み読出し可能な演算データ記憶手
段と、前記プログラム記憶手段から出力される命令に含
まれるオペコードを解読する命令解読手段と、前記プロ
グラム記憶手段から出力される命令に含まれるオペラン
ドを用いて前記演算データ記憶手段をアドレッシングす
る演算データアドレッシング手段と、前記命令解読手段
の解読結果に従って前記演算データ記憶手段に対する演
算を実行する演算手段と、を備えた中央演算処理装置に
おいて、復帰を前提として分岐を行う第1のサブルーチ
ン分岐命令と、前記分岐解読手段から所定の制御信号を
出力させる第2のサブルーチン分岐命令と、前記制御信
号を遅延させて遅延制御信号を出力する遅延手段と、前
記遅延手段から出力された遅延制御信号により分岐後の
前記プログラム記憶手段から出力される即値データを読
出して記憶する記憶手段とを設け、読出し後復帰して分
岐直後の命令を処理するようにした。
【0006】
【作用】請求項1記載の発明では、プログラム記憶手段
の一部領域にはプログラム領域の他にデータメモリ領域
が設けられている。プログラム記憶手段のオペランドの
即値データに基づいてアドレス変更手段によりプログラ
ム記憶手段の一部に復帰を前提として分岐させるアドレ
スが指定され、復帰後のアドレスはアドレス格納手段に
一時格納される。そして、分岐後に第1の復帰命令によ
りアドレス格納手段から分岐命令の次の命令へ復帰後ア
ドレスが読出されて再度復帰されるとともに、復帰後に
命令に含まれるオペランドを読出して記憶させる第2の
復帰命令によって、読出したデータが記憶される。従っ
て、プログラム記憶手段の一部にデータ領域を設けるこ
とが可能となり専用のデータメモリ及びそのアドレッシ
ング回路を設ける必要がなくなるとともに、外部のRO
Mアクセスに比べ、アドレス用ラッチデータの処理が不
要となり、非常に高速に即値を得ることができる。請求
項2記載の発明では、復帰を前提として分岐を行う第1
のサブルーチン分岐命令と、第1のサブルーチン分岐命
令とは別に分岐解読手段から所定の制御信号を出力させ
る第2のサブルーチン分岐命令とが設けられている。遅
延手段により制御信号が遅延され、遅延手段から出力さ
れた遅延制御信号により分岐後のプログラム記憶手段か
ら出力される即値データが読出され、その後復帰して分
岐直後の命令を処理する。従って、復帰命令を設けなく
ても強制的にプログラム実行アドレスに自動的に復帰で
き、データ領域を100%有効に使用することが可能に
なる。
【0007】
【実施例】以下、本発明を図面に基づいて説明する。 原理説明 先ず、本発明の基本原理について説明する。図1及び図
2はプログラムメモリの流れを示す図であり、図1は従
来のサブルーチンコールを、図2は本発明にかかる中央
演算処理装置のサブルーチンコールを示している。ここ
で、図1に示すプログラムは複数回使用する同処理のプ
ログラムをサブプログラムとし、メインルーチンからサ
ブルーチンコールにより呼び出されるとプログラムアド
レスをサブプログラムに移動させてサブプログラムの処
理(ここでは、mov処理)を実行する。その処理が終
了すると前記プログラムアドレスを戻してメインルーチ
ンに復帰するようにして複数回利用を可能にする。この
場合、サブルーチンからメインルーチンにはRET(リ
ターン)命令によって戻される。
【0008】これに対して図2に示すようにプログラム
領域と同じアドレス空間の一部にデータメモリ領域を設
けるとともに、このデータメモリ領域のアドレスD0に
対応してオペコードとしてRET’命令(上述した従来
のRET命令としては異なる動作を行う)と、オペラン
ド1,オペランド2にデータ0,データ1とを置くよう
にする。上記RET’命令はサブルーチンからメインル
ーチンに復帰する際の従来のRET処理に加え、RET
処理前(すなわち、RET命令をインストラクションデ
コーダで処理中)にオペランド1,オペランド2に格納
されたデータ0,データ1を所定のラッチLM(後述)
に転送する動作を行う命令である。すなわち、プログラ
ム領域の下にデータメモリ領域をもたせ、従来のRET
命令では使用していなかったオペランド1,オペランド
2部分に演算用RAMで使用されるべきデータをセット
するようにしたものである。
【0009】以上の構成において、メインルーチンで処
理中にデータメモリ中の1部データを読出す動作は以下
のようなものである。先ず、図2に示すように<cal
l  D0>(メインルーチンの中でD0というアドレ
スをサブルーチンコールする)命令を実行する。すると
、従来のサブルーチンコールと同様の処理がアドレッシ
ング回路部(後述)で行われ、プログラムアドレスはプ
ログラムメモリのアドレスD0に移行する。これによっ
て、アドレスD0に依存する<RET’  d0  d
1>というオペコード、オペランド1,オペランド2が
プログラムメモリから出力される。そして、オペランド
1,オペランド2のデータd1,d2がラッチLM(後
述)にラッチされるとともにオペコードはRET命令と
してインストラクションデコーダでデコードされて従来
と同様の復帰処理がなされ、<call  D0>命令
の次の命令が実行される。例えば、この<call  
D0>命令の次に<movR0  LM>(ラッチLM
の内容をメモリのアドレスR0に格納する)命令をプロ
グラムしておくようにするとプログラムエリア中のデー
タメモリ領域の即値をメモリに読み込むことが可能にな
る。同様に、<call  D1>(D1というアドレ
スをサブルーチンコールする)命令を実行すると、プロ
グラムアドレスはアドレスD1に存在する<RET’ 
 d2  d3>というオペコード、オペランド1,オ
ペランド2が出力される。このように、プログラムメモ
リの一部にデータメモリ領域をもたすことが可能となっ
たため、専用のデータメモリ及びそのアドレッシング回
路が不要となるばかりか該データがプログラムメモリに
直接格納されるので従来のように外部のデータメモリか
らデータを読み出してくる処理がなくなり処理速度が格
段に向上する。
【0010】第1実施例 以下、上記基本原理に基づいて実施例を説明する。図3
〜図6は本発明に係る中央演算処理装置の第1実施例を
示す図であり、固定長固定サイクル命令を実行する中央
演算処理装置に適用した例である。
【0011】先ず、構成を説明する。図3は中央演算処
理装置の全体構成図である。図3において、11は固定
長サイクル命令を実行可能な中央演算処理装置(CPU
)、12はCPU11にデータを供給する外部データメ
モリであり、CPU11は、基本クロックCK1,CK
2および制御信号OP1,OP2,Mを基に各部を制御
するクロック信号P1,P2,P3,P4,P5,P6
(図5参照)を生成するクロック回路21と、オペコー
ド、オペランド1,オペランド2が1アドレスに存在す
る固定長固定サイクル命令に基づくプログラムを記憶す
るプログラムメモリ22と、プログラムメモリ22から
出力される命令に含まれるオペコードA1を解読して各
部に制御信号OP1,OP2,M,C1,C3(図5参
照)を出力するオペレーション(インストラクション)
デコーダ23と、演算のためのデータを書込み読出し可
能な演算用RAM24と、プログラムメモリ22から出
力される命令に含まれるオペランドA2を用いて演算用
RAM24をアドレッシングする演算用RAMアドレス
制御回路25と、オペレーションデコーダ23の解読結
果に従って演算用RAM24に対する演算を実行する演
算回路26と、プログラムメモリ22をアドレッシング
するアドレッシング回路27と、分岐からの復帰命令に
オペランド1,オペランド2として含まれているデータ
を一時的に保持するラッチ(LM0)28,(LM1)
29と、データメモリ12に出力されるアドレスデータ
をラッチするラッチ(L3)30とにより構成されてお
り、これら各部はゲート回路31〜35を有するバス3
6により接続されている。
【0012】演算回路26は、演算RAM24から読出
された演算データをラッチするラッチ(L1)41,(
L2)42と、ラッチ(L2)42の出力とバス36を
通して入力されたデータ(例えば、ラッチLM0,LM
1に格納された復帰命令に戻されるデータ、データメモ
リ12から読出されたデータ)とを制御信号C3に従っ
て選択するセレクタ(S1)43と、ラッチ(L1)4
1の出力及びセレクタ(S1)43で選択された出力を
基にオペレーションデコーダ23による解読結果(デコ
ード信号M)に従って所定の演算を実行し、その結果を
演算用RAM24に出力するALU(arithmet
ic  logical  unit)44と、から構
成されている。
【0013】また、アドレッシング回路27は、次に読
出す命令が入っているメモリのアドレスを保持し命令実
行により+1ずつインクリメントするプログラムカウン
タ(PC)51と、スタックカウンタ52のアドレスの
増減により分岐命令の次の命令のアドレス(復帰後アド
レス)を格納するスタックメモリ(ST)53と、プロ
グラムカウンタ(PC)51に格納されていたアドレス
、スタックメモリ53に格納されていたアドレス及びプ
ログラムメモリ22からのオペランド1,2アドレスの
うちの何れかのアドレスを制御信号OP1,OP2に従
って選択するセレクタ(S2)54と、選択されたアド
レスをクロック信号P1のタイミングでラッチしてプロ
グラムメモリ22に出力するアドレスラッチ(AL)5
5とから構成されている。
【0014】次に、本実施例の動作を説明する。 演算命令例 図3で示した中央演算処理装置11の各部の具体的な動
作を説明するにあたって、先ず図14のタイミングチャ
ートを参照しながら8bitの演算命令例<AD1  
rd1  05H>における動作を述べる。この命令が
実行されるとき、プログラムメモリ22は22bitの
コードを出力し、bit0〜7/bit8〜15/bi
t16〜21をそれぞれオペランド2/オペランド1/
オペコードと呼ぶ。例えば、図4に示すように上記命令
時はオペコード/オペランド1/オペランド2を“06
0105”のデジタルコードにより出力するものとする
と、<オペコード>06H(HはHEX表現、以下同様
)は、オペレーションデコーダ23に入力され、その出
力制御線は(1)ALU44の入出力演算をC=A+B
となるような制御コードをALU44に与える。 (2)オペランド2の出力を8bitバスラインに接続
するC1をONする。 (3)ALU44のB入力のセレクタ(S1)43入力
をバス36に接続する。 (4)演算用RAM24のリードライト制御を行う(後
述)。 <オペランド1>は、RAMアドレス制御回路25を通
して演算用RAM24に直接01Hが与えられる。 <オペランド2>は、C1〜バス36を通してALU4
4が与えられる。 本CPU11では以上の動作を3タイミング1サイクル
により実行する。このタイミングで、L1コントロール
はオペレーションデコーダ23の出力で演算用RAM2
4の出力データをラッチするラッチ(L1)41のコン
トロール信号である。同様に、RAMライト信号はオペ
レーションデコーダ23の出力で演算用RAM24に書
き込むためのパルスであり、この信号がLOWのときは
RAM24に与えられているアドレスのデータが出力さ
れ続ける。
【0015】以上のようにT1でRAM24に与えられ
ているアドレスで選択されているセルの内容(ここでは
3H)がT1中央でL1にラッチされる。T2でT1の
ときALUの2入力に与えられたデータを加算する。そ
して、T3でその内容を再びrd1に書込む。従って、
rd1←rd1+05Hとなり、3+5=8がrdに格
納され演算が終了する。同様に、ADD  rd1  
rd2の場合には、T1はT2のタイミングでL2にr
d2の内容をラッチし、セレクタ(S1)43をALU
B入力  L2出力とすることにより、rd2←rd1
+dr2の演算が実行される。
【0016】CPU11の各部の動作 次に、図5及び図6のタイミングチャートを参照しなが
らCPU11の各部の動作を説明する。CPU11は、
図5に示すように基本クロックCK2の3サイクルで1
命令が実行される(例外的に、6サイクルで1命令とい
うものもある)。先ず、アドレッシング回路27により
所定のアドレスが指定されるとプログラムメモリ22か
ら22bit固定長データが出力され、具体的には上位
6bitがオペコード(A1)としてオペレーションデ
コーダ23に、次の8bitがオペランド1(A2)、
下位8bitがオペランド3(A3)としてバス36を
通してRAMアドレス制御回路25及びセレクタ(S2
)54にそれぞれ出力される。オペレーションデコーダ
23はプログラムメモリ22から出力される命令に含ま
れるオペコードを解読し、解読結果に基づいて制御信号
OP1,OP2,M,C1,C3を各部回路に供給する
。演算回路26は、オペレーションデコーダ23の解読
結果に従って演算用RAM24に対する演算を実行し、
その演算結果を演算用RAM24に出力する。このよう
な場合において、アドレス指定により<CallADu
  ADo>命令が実行されるとプログラムメモリ22
からはこの命令に基づいてオペコードA1,オペランド
A2,A3としてCall,ADu,ADoが出力され
る。ここで、Callはインストラクション命令であり
、ADu,ADoはアドレスを指定するデータである。 オペコードA1はオペレーションデコーダ23により解
析され、その結果オペレーションデコーダ23からはC
all文を示す指令OP1がセレクタ(S2)54に出
力される。セレクタ(S2)54にはプログラムカウン
タ(PC)51出力、スタックメモリ53出力STR、
オペランド1,オペランド2が入力されており、セレク
タ(S2)54に指令OP1が入力されるとCall命
令によるJUMP先のアドレスであるオペランドA2,
A3を選択する。ここで、1命令(3サイクル)の間O
P1が出力されているからその間図5S2に示すように
オペランド1,2のデータD0が選択される。
【0017】セレクタ(S2)54の出力はアドレスラ
ッチ(AL)55に入力され、アドレスラッチ(AL)
55は図5に示すように基本クロックCK1の1サイク
ル目の部分に応答して出力されるクロック信号P1に対
応して出力されるセレクタ(S2)54の出力データD
0をラッチする。なお、セレクタ(S2)54にOP1
が入力されないときは+1ずつインクリメントされるプ
ログラムカウンタ(PC)51のアドレス出力PCがア
ドレスラッチ(AL)にラッチされることになる。
【0018】上述したオペランド1,2データD0のラ
ッチを行うのと同時にサブルーチンコールのためのスタ
ック処理が実行される。すなわち、Call命令の先の
命令のアドレスを生成しているプログラムカウンタ(P
C)51の復帰先アドレスデータはスタックカウンタ5
2によりそのアドレスが増減するスタックメモリ(ST
)53に格納され、それによってサブプログラムの処理
が始まる。その後、サブプログラムの終了時にRET(
復帰)命令が実行されるとスタックメモリ53に格納さ
れていたメインルーチンの戻り先アドレスがセレクタ(
S2)54により選択され、call命令の次の命令よ
り処理が実行される。
【0019】この処理を具体的に説明する。図3に示す
ようにスタックメモリ(ST)53には図5に示すクロ
ック信号P2が入力されており、スタックメモリ53は
P2が入った時点でプログラムカウンタ(PC)51の
値をスタックメモリ53に退避させる。このときの状態
を図5のSTKに示すようにプログラムカウンタ(PC
)51の値(PC+1)をP2に同期してスタックメモ
リ53に格納しておく。プログラムカウンタ(PC)5
1にはクロック信号P3が入力されており、このP3入
力により+1されてD0+1が出力される。そして、ア
ドレスラッチ(AL)55の値D0はプログラムメモリ
22に出力され、読み込んだD0によって図2に示すよ
うにD0をアドレスとしてデータ0,データ1が読み出
される。すなわち、図2に示すプログラムメモリ22上
でアドレスD0が指定されると次のサイクルでデータ0
,データ1が出ることになる。このとき、RET命令も
プログラムメモリ22から命令の一部としてオペレーシ
ョンデコーダ23に出力されるから、オペレーションデ
コーダ23はこれを解読して指令OP2をセレクタ(S
2)54に出力する。OP2が入力されると、セレクタ
(S2)54からはプログラムカウンタ(PC)51に
入っていた(PC+1)が選択されアドレスラッチ(A
L)55に入力される。この状態でアドレスラッチ(A
L)55に基本クロックCK1の1サイクル目に同期し
て立ち上がるクロック信号P1が入力されると、図5A
Lに示すようにアドレスラッチ(AL)55にアドレス
データ(PC+1)がラッチされる。また、プログラム
カウンタ(PC)51はクロック信号P3の入力により
(PC+2)となる。
【0020】一方、図3に示すようにバス36にはアド
レスをデータ出力として演算回路26に供給するための
ラッチ(LM0)28,(LM1)29が設けられてい
る。すなわち、プログラムメモリ22からオペランド1
,オペランド2として出力されるのはアドレスを指定す
るデータであり、これを直接演算回路26に供給するこ
とはできないので上記ラッチ(LM0)28,(LM1
)29が設けてアドレスデータを一時的に退避させてお
くようにする。ラッチ(LM0)28,(LM1)29
にはRET時(OP2が出力されたとき)基本クロック
CK1の1サイクルに同期して立上がるクロック信号P
4が入力されており、このP4が入力されることにより
、図5LM0,LM1に示すようにデータD0,D1が
それぞれラッチされる。
【0021】ラッチ(LM0)28,(LM1)29に
ラッチされたデータは以下のようにして演算回路26に
移される。すなわち、図5A1,A2,A3に示すよう
に<mov>によってラッチされたデータD0,D1を
移す命令がなされ、次いで<RD0>によってラッチ(
LM0)28とバス36との間のゲート(C2−1)3
2を開き、<LM0>によってゲート(C2−2)33
を開く。と同時に、バス36上におけるデータの衝突を
防止するためのゲート(C1)31を閉じる。このとき
、アドレスラッチ(AL)55にはクロック信号P1に
よって(PC+2)がラッチされていて、このデータ(
PC+2)は次のRD1,LM1を読み込むためのデー
タであり、アドレスラッチ(AL)55は次に読み込む
ためのものを準備している。
【0022】ラッチ(LM0)28,(LM1)29で
ラッチされたデータを演算回路26に読み込むためには
、先ず演算回路26のセレクタ(S1)43に入力され
る制御信号C3を制御する必要がある。具体的には図5
C1,C3に示すようにゲート(C1)31に入力され
る制御信号C1を立下げるとともに、制御信号C3を立
上げることによってラッチ(LM0)28,(LM1)
29からのデータをセレクタ(S1)43で選択させる
ようにする。また、オペランドA1による命令は<mo
v>であるから、ALU44は制御信号Mが入力される
とALU44の入力端子Bに入力されたセレクタ(S1
)43のデータだけを通過させて(入力端子Aに入力さ
れるデータは無視)演算用RAM24に出力する。この
ときのデータの流れが図5L1で示されており、上記通
過させるということはラッチ(L1)41から“0”を
出力することに相当する。また、セレクタ(S1)43
からALU44に出力されるデータは図5S1で示され
る。
【0023】図6はALU44におけるタイミングを示
す図である。この図に示すようにALU44はデータD
1,D1をそのまま演算用RAM24に出していること
になる。そして、図6P6に示すように演算用RAM2
4はP6というタイミングでオペランド1で指定された
RD0にアドレスD0が送り込まれる。上述したラッチ
(LM0)28,ラッチ(LM1)29からのデータの
取出し動作は実際には8bit処理により行われるため
同様の処理がLM0,LM1に分けて2回行われる。
【0024】図6RD1は同様の処理により演算用RA
M24のRD1にD1を読み込んだことを示している。
【0025】以上、図5及び図6のタイミングチャート
に従ってCPU11の各部の動作を説明したが、CPU
11全体において動作の特徴部分を示せば次のようなも
のである。 <Call D0>というニーモニックの命令が実行さ
れると、例えば“823451”Hというデジタルコー
ドがプログラムメモリ22より出力される。このとき、
オペコード82はオペレーション(インストラクション
)デコーダ23に入力され、その出力は各部に出力され
て以下のような動作を行わせる。 (1)オペランド1,2をセレクタ(S2)54を通し
てアドレスラッチ(AL)55にラッチさせ、次のサイ
クルのアドレスとする。 (2)CALL  SUB1の次のアドレス、すなわち
プログラムカウンタ(PC)51の現在値をスタックメ
モリ(TS)53に入力させ、スタックカウンタ52を
+1する。
【0026】この結果、アドレスラッチ(AL)55に
D0(=3456H)が与えられ、3456番地の命令
が次のサイクルで実行される。この3456番地には図
2に示すように<Ret’ data0,data1>
という命令があり、例えば“83789AH”というデ
ータがプログラムメモリ22から出力される。このとき
、オペコード83はインストラクションデコーダに与え
られ従来のRet(復帰)動作に加え、オペランド1,
2すなわち789AHの16bitデータを16bit
ラッチLM(LM0,LM1は8bit単位の名称)に
記憶させる動作をさせる。また、従来のRet動作とし
てはスタックカウンタ51を−1した後、スタックされ
ていたRETアドレスをセレクタ(S2)54を通して
アドレスラッチ(AL)55にラッチさせる。以上の結
果、復帰した後、LMに16bitデータが格納される
ことになる。そして、<mov rd0 LM0><m
ov rd1 LM1>を実行することにより演算用R
AM24のrd0,1に789AHが格納されることに
なる。
【0027】以上説明したように、本実施例によればプ
ログラム領域にデータメモリを設けてアドレス変化をさ
せてデータを出力させ、その後プログラム実行アドレス
に再度復帰できるようにしている。すなわち、サブルー
チンコールとRETを利用し、一時的にデータ領域をア
クセスし、その時RET文でオペランドデータを読み出
すようにしているので、プログラムメモリ22の一部に
データ領域を設けることが可能となり専用のデータメモ
リやそのアドレッシング回路を不要にすることができる
。又、この上述した機能を達成するための回路もきわめ
て少なく従来のカスタムCPUへも非常に容易に応用可
能である。
【0028】また、外部のデータメモリ12からデータ
を取り込む必要がなくなるので、特に従来方式の別デー
タROMアクセスに較べ、アドレス用ラッチデータの処
理が不要となることから、非常に高速に即値を得ること
が可能になり、処理速度を飛躍的に向上させることがで
きる。さらに、汎用RAMに直接データが格納されるた
め、LMからの転送命令、転送時間が不要となりプログ
ラムメモリの節約及び高速処理がより一層向上する。
【0029】なお、本実施例ではRET’命令実行時に
LMというラッチに即値データに格納しているが、その
RET’命令時にRAMアドレス制御回路25を制御し
、バス等の入出力の制御を行って特定のRAM領域に直
接即値データを格納することも可能である。このように
すればより汎用性を向上させることができる。
【0030】また、本実施例では、CPU11を固定長
固定命令としているが、要はプログラムメモリにデータ
を設けることのできるCPUであれば何でもよく、命令
長は固定長である必要はなく命令実行サイクルも任意で
あることは言うまでもない。
【0031】第2実施例 ところで、前記第1実施例のCPU11ではCALL/
RETをそのまま利用しているのでプログラムメモリ長
は22bitであるにもかかわらず、上位6bitは必
ずRET命令のオペコードでなければならずこの点のメ
モリ効率をより高めることが考えられ、これを第2実施
例として説明する。なお、実際には、オペコードとして
使用した上位6bitは6bitであって利用しにくい
ことから第1実施例のCPU11でも非常に有効である
【0032】図7〜図12は本発明に係る中央演算処理
装置の第2実施例を示す図であり、第1実施例と同様、
固定長固定サイクル命令を実行する中央演算処理装置に
適用した例である。本実施例の説明にあたり、第1実施
例と同一構成部分には同一番号及び同一符号を付して重
複部分の説明を省略する。
【0033】先ず、構成を説明する。図7は中央演算処
理装置の全体構成図である。図7において、100は2
4bit固定長サイクル命令を実行可能な中央演算処理
装置(CPU)であり、CPU100は、基本クロック
CK1,CK2および制御信号CALL,RET,Mを
基に各部を制御するクロック信号P1,P2,P3,P
4,P5,P6(図10及び図11参照)を生成するク
ロック回路101と、オペコード、オペランド1,オペ
ランド2が1アドレスに存在する固定長固定サイクル命
令に基づくプログラムを記憶するプログラムメモリ22
と、プログラムメモリ22から出力される命令に含まれ
るオペコードA1を解読して各部に制御信号M,C1,
C3(図10及び図11参照)を出力するオペレーショ
ン(インストラクション)デコーダ102と、オペレー
ションデコーダ102からの出力及び外部からの与えら
れた分岐命令信号CALL1に基づいてCPU100全
体のサブルーチン分岐、復帰の制御を行う命令信号CA
LL,RETを出力する分岐遅延回路103と(図8参
照)、演算のためのデータを書込み読出し可能な演算用
RAM24と、プログラムメモリ22から出力される命
令に含まれるオペランドA2を用いて演算用RAM24
をアドレッシングする演算用RAMアドレス制御回路2
5と、オペレーションデコーダ102の解読結果に従っ
て演算用RAM24に対する演算を実行する演算回路2
6と、プログラムメモリ22をアドレッシングするアド
レッシング回路27と、分岐した際のデータを一時的に
保持するラッチ(LM0)104,(LM1)105,
(LM2)106と、データメモリ12に出力されるア
ドレスデータをラッチするラッチ(L3)30とにより
構成されており、これら各部はゲート回路31,34,
35,107〜109を有するバス110により接続さ
れている。
【0034】上記ラッチ(LM0)104,(LM1)
105,(LM2)106はラッチLMの8bit単位
の名称で、LMは、分岐するとその命令サイクルでデー
タ0〜データ2の3byte(24bit)のデータを
ラッチするものである(図11参照)。
【0035】図8は分岐遅延回路103の回路構成図で
ある。この図において、分岐遅延回路103は、従来か
らある通常のサブルーチン分岐命令信号CALL1と本
実施例特有のサブルーチン分岐命令信号CALL2を論
理ORするORゲート111と、CALL2信号を図1
0に示すようなクロックCK1,CK2に同期してラッ
チし遅延信号DCALL2として出力する遅延用ラッチ
112と、DCALL2信号と従来からあるサブルーチ
ン復帰命令信号RETとを論理ORしRET命令信号と
して出力するORゲート113とにより構成されている
【0036】以上の構成において、CALL2という本
実施例特有のサブルーチン分岐命令を行うと図9に示す
ようにD0というラベルのアドレスに分岐する。分岐す
るとその命令サイクルでDATA0〜DATA2の3b
yteデータをLMというラッチ(LM0,LM1,L
M2)に転送する。そして、このサイクルでは自動的に
RET命令が実行される。次のサイクルでCALL2の
次のアドレスに復帰処理がなされ、プログラムが制御す
るプログラム領域に制御が移される。このとき、例えば
<mov R012 LM>(LMの内容をメモリRo
12に転送する)という命令を置くことによりデータメ
モリ領域の即値を読み込むことが可能となる。
【0037】以下、図10〜図12のタイミングチャー
トを参照して実際の回路動作を説明する。
【0038】図10及び図11はCPU100の各部の
タイミングチャートであり、第1実施例の図5に対応し
ている。図5と異なるところは次のようなものである。 すなわち、図5ではオペコードA1はCALL命令の次
の命令がRET命令でありオペランド1,オペランド2
はデータD0,D1であったが、本実施例ではデータが
オペコードA1にも入るから図10に示すようにデータ
メモリ領域のオペコード、オペランド1,オペランド2
にこの順でDATA1〜DATA3が入る。なお、上記
DATA1〜DATA3はデータの順序(1番面〜3番
目)を示すものであり、図9では上記DATA1〜DA
TA3はD0〜D2,D3〜D5あるいはDn〜Dn+
2に対応する。また、上記DATA1〜DATA3を読
込むタイミングとして演算用RAM26にクロック信号
P6が入力されている。また、本実施例では図5のOP
1,OP2に代えて分岐遅延回路103によってCAL
L,RETが用いられ、さらにこれに加えて図10に示
すDCALLが出力される。
【0039】分岐遅延回路103にはオペレーションデ
コーダ102により従来からあるサブルーチン分岐命令
信号CALL1と本実施例特有のCALL2、さらにサ
ブルーチン復帰命令信号RETが入力されており、分岐
遅延回路103のCALLOUT,RET  OUT端
子からはCPU全体各部のサブルーチン分岐、復帰の制
御を行うCALL信号、RET信号が出力される。
【0040】いま、プログラム中<CALL  D0>
命令がプログラムメモリ22より出力されると、オペレ
ーションデコーダ102でこの命令が解読され、分岐遅
延回路103のCALL2端子に「H」レベルを与える
。 すると、CALLOUT端子より「H」レベルが出力さ
れ、従来からあるCALL命令処理が行われることとな
って、プログラムメモリアドレスは<ラベルD0番地>
に移る。また、CALL2の「H」は内部の遅延用ラッ
チに入力されることになる。
【0041】次のサイクルではプログラムメモリ22は
ラベルD0番地となるため図9に示すようにオペコード
、オペランド1,2としてそれぞれDATA1〜DAT
A3が出力される。このとき、図12に示すようにDC
ALL2信号が「H」となるので、DATA1〜DAT
A3はラッチLMの入力に接続されるように制御され、
LMに格納される。また、DCALL2信号は従来のR
ET命令信号と同様の意味を持つRET  OUT信号
に論理和されるので次の命令サイクルに復帰するように
CPU100全体を制御することができる。
【0042】次のサイクルでは復帰が行われ、サブルー
チン分岐命令の直後の命令が実行される。上述した動作
によりLMというラッチにデータ領域の即値データが格
納されることになる。このように、第1の実施例ではオ
ペコードとして使用した領域にはデータを入れることが
できず、オペランド1,2について8bitのデータを
設けていたが、本実施例ではオペコードを記憶していた
部分にもデータを記憶できるようにするものである。こ
れを実現するために本実施例のCPU100は分岐遅延
回路103を設け、通常のCALL命令とは少し異なる
DCALL2命令を出力するようにして(通常のCAL
L命令も出力する)RETを省略するようにする。すな
わち、CALL2という命令を入力すると分岐遅延回路
103によってDCALL2とRET命令信号を出力し
て強制的に復帰させるようにしている。また、これに伴
ってLMとしては一時退避させるラッチを3つ(LM0
)104,(LM1)105,(LM2)106設けて
いる。
【0043】以上述べたように、本実施例ではプログラ
ム領域からデータ領域にサブルーチン分岐させ、データ
領域全bitフィールドがどんな値でも(第1実施例で
はオペコードがRETという制限があったが)プログラ
ム実行アドレスに自動的に復帰できるようにしているの
で、第1実施例の効果に加えてデータ領域を100%有
効に使用することが可能となる。
【0044】なお、上記各実施例では固定サイクル命令
が3サイクル命令のCPUに適用した例であるが、他の
サイクル命令でも良いことは勿論である。また、上記C
PU11,CPU100や分岐遅延回路103等を構成
する部材の数、種類などは上述した実施例に限られるも
のではなく、例えばレジスタ等を増やすようにしてもよ
いことは言うまでもない。
【0045】
【発明の効果】請求項1の本発明によれば、プログラム
領域からデータ領域とのアドレス変化をさせそのときデ
ータを出力させ、その後プログラム実行アドレスに再度
復帰できるようにしているので、プログラムメモリの一
部にデータ領域を設けることが可能となり専用のデータ
メモリやそのアドレッシング回路を不要とすることがで
き、従来方式の別データROMアクセスに比べ、アドレ
ス用ラッチデータの処理が不要のため、非常に高速に即
値が得られる。請求項2の発明によれば、請求項1の発
明の効果に加えて、さらにRET命令が不要となるので
オペコードとして使用していたデータ領域にもデータを
記憶させることができメモリ効率をより一層高めること
ができる。
【図面の簡単な説明】
【図1】中央演算処理装置のプログラムメモリの流れを
示す図である。
【図2】中央演算処理装置のプログラムメモリの流れを
示す図である。
【図3】中央演算処理装置の全体構成図である。
【図4】中央演算処理装置の8bitの演算命令例を説
明するためのタイミングチャートである。
【図5】中央演算処理装置のタイミングチャートである
【図6】中央演算処理装置の演算回路のタイミングチャ
ートである。
【図7】中央演算処理装置の全体構成図である。
【図8】中央演算処理装置の分岐遅延回路の回路図であ
る。
【図9】中央演算処理装置のプログラムメモリの流れを
示す図である。
【図10】中央演算処理装置のタイミングチャートであ
る。
【図11】中央演算処理装置のタイミングチャートであ
る。
【図12】中央演算処理装置の分岐遅延回路のタイミン
グチャートである。
【符号の説明】
11  CPU 12  データメモリ 21  クロック回路 22  プログラムメモリ 23  オペレーションデコーダ 24  演算用RAM 25  演算用RAMアドレス制御回路26  演算回
路 27  アドレッシング回路 28  ラッチ(LM0) 29  ラッチ(LM1) 30  ラッチ(L1) 31〜35  ゲート回路 41  ラッチ(L1) 42  ラッチ(L2) 43  セレクタ(S1) 44  ALU 51  プログラムカウンタ 52  スタックカウンタ 53  スタックメモリ 54  セレクタ(S2) 55  アドレスラッチ(AL) 103  分岐遅延回路 104  ラッチ(LM0) 105  ラッチ(LM1) 106  ラッチ(LM2) 111,113  ORゲート 112  遅延用ラッチ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 所定のプログラムを記憶するプログラム
    記憶手段と、前記プログラム記憶手段をアドレッシング
    するアドレッシング手段と、演算用データを書込み読出
    し可能な演算データ記憶手段と、前記プログラム記憶手
    段から出力される命令に含まれるオペコードを解読する
    命令解読手段と、前記プログラム記憶手段から出力され
    る命令に含まれるオペランドを用いて前記演算データ記
    憶手段をアドレッシングする演算データアドレッシング
    手段と、前記命令解読手段の解読結果に従って前記演算
    データ記憶手段に対する演算を実行する演算手段と、を
    備えた中央演算処理装置において、前記アドレッシング
    手段は、前記オペランドの即値データに基づいて前記プ
    ログラム記憶手段の一部に復帰を前提として分岐させる
    アドレスを指定するアドレス変更手段と、復帰後のアド
    レスを一時格納するアドレス格納手段と、分岐後に第1
    の復帰命令により前記アドレス格納手段から分岐命令の
    次の命令のアドレスを復帰後アドレスとして読出して前
    記プログラム記憶手段のアドレスとする制御手段と、復
    帰後に命令に含まれるオペランドを読出して記憶させる
    第2の復帰命令を設け、読出したデータを記憶するデー
    タ記憶手段と、を具備したことを特徴とする中央演算処
    理装置。
  2. 【請求項2】 所定のプログラムを記憶するプログラム
    記憶手段と、前記プログラム記憶手段をアドレッシング
    するアドレッシング手段と、演算用データを書込み読出
    し可能な演算データ記憶手段と、前記プログラム記憶手
    段から出力される命令に含まれるオペコードを解読する
    命令解読手段と、前記プログラム記憶手段から出力され
    る命令に含まれるオペランドを用いて前記演算データ記
    憶手段をアドレッシングする演算データアドレッシング
    手段と、前記命令解読手段の解読結果に従って前記演算
    データ記憶手段に対する演算を実行する演算手段と、を
    備えた中央演算処理装置において、復帰を前提として分
    岐を行う第1のサブルーチン分岐命令と、前記分岐解読
    手段から所定の制御信号を出力させる第2のサブルーチ
    ン分岐命令と、前記制御信号を遅延させて遅延制御信号
    を出力する遅延手段と、前記遅延手段から出力された遅
    延制御信号により分岐後の前記プログラム記憶手段から
    出力される即値データを読出して記憶する記憶手段とを
    設け、読出し後復帰して分岐直後の命令を処理するよう
    にしたことを特徴とする中央演算処理装置。
JP10685091A 1991-04-11 1991-04-11 中央演算処理装置 Pending JPH04314131A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10685091A JPH04314131A (ja) 1991-04-11 1991-04-11 中央演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10685091A JPH04314131A (ja) 1991-04-11 1991-04-11 中央演算処理装置

Publications (1)

Publication Number Publication Date
JPH04314131A true JPH04314131A (ja) 1992-11-05

Family

ID=14444103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10685091A Pending JPH04314131A (ja) 1991-04-11 1991-04-11 中央演算処理装置

Country Status (1)

Country Link
JP (1) JPH04314131A (ja)

Similar Documents

Publication Publication Date Title
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPS6297036A (ja) 計算機システム
US4348720A (en) Microcomputer arranged for direct memory access
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
EP0755538B1 (en) Apparatus and method for updating information in a writable microcode control store
US5051890A (en) Program/data memory employed in microcomputer system
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
JPH08212075A (ja) 情報処理装置
JP2690406B2 (ja) プロセッサおよびデータ処理システム
KR100321745B1 (ko) 외부메모리액세스를위한마이크로컨트롤러유닛
JPH04314131A (ja) 中央演算処理装置
JP3182796B2 (ja) 中央演算処理装置
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
JPH04329436A (ja) 中央演算処理装置
CN114115997B (zh) 面向处理器的数据传送指令实现方法及系统
JPS61250754A (ja) 簡易型キヤツシユメモリ
JPS63206843A (ja) キヤツシユメモリ装置
JPS63163634A (ja) 命令フエツチ方式
JP2001100991A (ja) ディジタル信号処理装置
JPS62145430A (ja) デ−タ処理装置
JPH11203134A (ja) ビット演算回路
JPH10207708A (ja) プログラマブルコントローラ
JPS6218934B2 (ja)
JPH05303543A (ja) プロセッサシステム
JPS60218146A (ja) 記憶装置アドレス制御方式