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

中央演算処理装置

Info

Publication number
JP2894854B2
JP2894854B2 JP3603691A JP3603691A JP2894854B2 JP 2894854 B2 JP2894854 B2 JP 2894854B2 JP 3603691 A JP3603691 A JP 3603691A JP 3603691 A JP3603691 A JP 3603691A JP 2894854 B2 JP2894854 B2 JP 2894854B2
Authority
JP
Japan
Prior art keywords
data
instruction
input
branch
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.)
Expired - Lifetime
Application number
JP3603691A
Other languages
English (en)
Other versions
JPH04275627A (ja
Inventor
圭一 吉岡
隆 安井
慎一 山浦
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP3603691A priority Critical patent/JP2894854B2/ja
Publication of JPH04275627A publication Critical patent/JPH04275627A/ja
Application granted granted Critical
Publication of JP2894854B2 publication Critical patent/JP2894854B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、中央演算処理装置(以
下CPUと記す)に関する。
【0002】
【従来の技術】CPUにおいて、条件分岐命令とはCP
Uの演算結果や動作状態が命令コードで指定された条件
を満足したか否かを判断することにより、命令をフェッ
チしたプログラムアドレスを特定の位置に移すことを行
う命令を言う。プログラムアドレスを特定のアドレスへ
移す方法として、例えばアドレッシングモードの選択に
より行う方法がある。例えばリラティブアドレッシング
は、命令をフェッチしたプログラムアドレスに分岐量を
示すデータ(以下ディスプレースメントデータと記す)を
加算してプログラムを相対位置に分岐させる。又、アブ
ソリュートアドレッシングでは分岐アドレスを示すデー
タフェッチしてプログラムアドレスを絶対位置に分岐さ
せる。ここでCPUと入出力するアドレスデータが24
ビットであり、データの入出力は8ビットであり、CP
U内部のALUが8ビットにて演算される場合、従来の
条件分岐命令サイクルは、例えば「表1」に示すようにロ
ングリラティブアドレッシングの条件分岐命令にて実行
される。ロングリラティブアドレッシングとは、上記リ
ラティブアドレッシングが8ビットのディスプレースメ
ントデータで分岐するのに対し、16ビットからなるデ
ィスプレースメントデータで相対分岐するアドレッシン
グ方法である。
【0003】
【表1】
【0004】動作サイクルに従い説明すると、0サイク
ルにてプリバイトのフェッチが行なわれ、1サイクルに
てオペコードのフェッチが行なわれ、これらの命令コー
ドのフェッチにより分岐命令の指定、条件の設定、アド
レッシングの指定が行なわれる。2サイクルにてディス
プレースメントデータの下位側8ビットのデータがフェ
ッチされ、3サイクルにてディスプレースメントデータ
の上位側8ビットのデータがフェッチされることで2サ
イクルにてフェッチした上記下位側のディスプレースメ
ントデータの加算による相対分岐アドレスの計算が行な
われ、4サイクルにて3サイクルにてフェッチした上記
上位側のディスプレースメントデータの加算による相対
分岐アドレスの計算、CPU内部サイクル動作が行なわ
れる。5サイクルでは、分岐する場合には上述のように
計算された新しいプログラムアドレスより演算が実行さ
れ、分岐しない場合には分岐命令の次のプログラムアド
レスより演算が実行される。又、分岐が行なわれるか否
かの判断は、上記2ないし4サイクル中に平行して実施
される。
【0005】
【発明が解決しようとする課題】上記分岐有無の判断が
0ないし2サイクルで完了し分岐を行わないと判断した
場合であっても、従来のCPUでは演算処理上必要のな
い上記3及び4サイクルを実行しており、無駄な演算サ
イクルの実行により演算時間を浪費しているという問題
点があった。本発明はこのような問題点を解決するため
になされたもので、条件分岐命令において分岐条件が非
成立の場合には、無駄な演算サイクルを排除し、高速な
条件分岐命令の実行を行うことができるCPUを提供す
ることを目的とする。
【0006】
【課題を解決するための手段】本発明は、CPUの条件
分岐命令の制御に関し上記CPUのデータ入出力部のビ
ットサイズが命令コードに続いてフェッチされる分岐量
を示すデータのビットサイズに比べ小さく上記分岐量を
示すデータを上記データ入出力部が少なくとも2回以上
複数サイクルに分割してフェッチする構成のCPUにお
いて、当該CPU内に備わり当該CPUの動作状態を示
すデータや演算結果を示すデータを保持する内部レジス
タと、命令コード内に含まれ分岐条件を指定するビット
データと上記内部レジスタに格納されるデータとの比較
により分岐条件の成立の有無を判断しその判断結果信号
を送出する分岐条件判断部と、命令実行の動作シーケン
スを制御するタイミング信号を送出するタイミングコン
トローラと、上記タイミングコントローラが送出するタ
イミング信号、命令コード及び上記判断結果信号が供給
され該判断結果信号に応じたタイミング信号が上記タイ
ミングコントローラから送出されるようにタイミングコ
ントローラを制御するタイミングコントローラ制御信号
を送出するプログラム ロジックアレイと、を備えたこ
とを特徴とするCPU。
【0007】
【作用】命令コード内には分岐条件を指定するデータが
含まれ、分岐条件判断部は該データと内部レジスタの格
納データとの比較を行い分岐条件が成立するか否かを判
断し、その判断結果信号をプログラム ロジック アレイ
に送出する。一方、プログラム ロジック アレイは、命
令実行の動作シーケンスを制御するため、タイミングコ
ントローラが送出するタイミング信号を分岐条件の成
立、非成立に応じて変化させるように、供給される上記
判断結果信号に応じてタイミングコントローラへタイミ
ングコントローラ制御信号を送出するように構成され
る。よって、プログラム ロジック アレイより分岐条件
非成立の場合に対応したタイミングコントローラ制御信
号がタイミングコントローラに供給されることで、タイ
ミングコントローラが送出するタイミング信号が制御さ
れ、分岐量を示すデータの一部のみがフェッチされ、他
の分岐量に関するデータのフェッチ動作を省略するよう
に命令実行の動作シーケンスが制御される。したがっ
て、内部レジスタ、分岐条件判断部、プログラム ロジ
ックアレイ、タイミングコントローラは、分岐条件が非
成立の場合には分岐量を示すデータのフェッチ動作に関
するサイクルが省略され、高速演算処理を行い得るよう
に作用する。
【0008】
【実施例】まず、本発明のCPUの一実施例における構
成の概要を図5ないし図7a,b,cを参照し以下に説
明する。図6は、プログラミングモデルであり、本CP
Uの基本語長は8ビットである。
【0009】アドレス空間は、プログラムをアクセスす
る際、プログラムカウンタ(以下PCと記す)は24ビ
ット(PBC、PCH、PCL)を有しており、リニアア
ドレスで16Mバイトをアクセス可能としている。尚、
PBCとはプログラム・バンク・カウンタレジスタ(以
下PBCと記す)、PCHとはプログラム・カウンタレ
ジスタH(以下PCHと記す)、PCLとはプログラム・
カウンタレジスタL(以下PCLと記す)である。
【0010】一方、データをアクセスする時は、バンク
方式を用いており、バンクアドレスとしては、基本的に
データバンクレジスタ(以下DBRと記す(8ビット))が
出力され、従って、64Kバイトリニアで256バンク
を用いて、16Mバイトのアクセスを可能にしている。
尚、バンクアドレスとしてのDBRの出力については後
述のM1,M0フラグにて説明する。また、複数の汎用
レジスタ(W0〜W3:16ビット)があり、特に、W0,
W1の両レジスタは8ビットごとに分別され、8ビット
レジスタR0,R1,R2,R3として使用することもで
きる。故に、本CPUでは、演算のデータサイズとして
8ビット,16ビットの両方のサイズのデータを命令に
より区別して扱うことが可能である。
【0011】さらに、スタック空間としては、スタック
ポインタレジスタ(以下SPと記す)として16ビットレ
ジスタを用意しており、リニアに64Kバイトのアクセ
スをおこなう。ただし、バンクアドレスは、“00"hに
固定されている。そして、プロセッサステイタスレジス
タ(以下PSRと記す)は現在のCPUの動作状態を示し
ており、具体的には、N,V,Z,Cの各フラグは、演算
の結果により変化し、Iフラグは、割り込み要求の受付
けの可否を示し、Dフラグは、加減算命令の結果の補正
に関し、D=1ならば、加減算命令の実行結果は自動的
に10進補正される。
【0012】M1,M0フラグは、データ空間をアクセ
スする際、出力されるバンクアドレスの選択を可能にす
るフラグである。従って、M1,M0フラグを任意の値
に設定(このCPUでは命令で更新する)する事により、
データアクセスの際に、出力されるバンクアドレスをD
BR値、“00"h等の定数の何れかを選択して出力し様
々なメモリのアプリケーションに対応させる。
【0013】ファーストページレジスタ(以下FPRと
記す)はデータアクセス時のアドレス・ポインタとなる
レジスタで、ファースト・ダイレクトと呼ぶアドレッシ
ング・モードで使用される。尚、アドレッシングとは、
データの格納先のアドレスを指定することをいう。
【0014】このアドレッシング・モードではオペラン
ド・データとして8ビットのデータのみをフェッチして
そのデータを実効アドレスのロー(ビット7〜ビット0)
とし、ハイ(ビット15〜ビット8)をFPRの内容とす
るアドレッシングモードにおいて有効となるレジスタで
ある。ただしこのときも、出力されるバンクアドレス
は、M1,M0のフラグ状態に従う。このアドレッシン
グ・モードは、オペランドデータを1バイトのみフェッ
チするだけなので、同一ページアドレス内(アドレスの
ビット15〜ビット8が一定値)の高速なデータのアク
セスが可能となる。
【0015】図7aないし図7cは、本CPUの命令形式
について示したものであり、このCPUは基本語長は、
前述のように8ビットであり、オペコードの前にプリバ
イトと呼ばれる命令拡張用の1バイトデータをフェッチ
する形式をとる。基本的にプリバイト・データは、アド
レッシング・モードに係る情報を有し、オペコードが実
行すべき命令の内容を持っている。但し、命令の使用頻
度が高いものについては、命令コード長と実行時間の短
縮を図るため、「形式1」に示すように、短縮命令と呼ぶ
プリバイトの無いオペコード内にアドレッシング及び命
令の内容を含んだ命令を用意する。
【0016】さらに、オペランドデータは2種類の配置
形式をもっている。図7bに示す「形式2」は、プリバイ
トの次にオペコードを配置し、その後にオペランドデー
タを配する形式であり、「形式3」はプリバイトとオペコ
ードの間にもオペランドデータを配置する。特に、形式
3のプリバイトとオペコードの間のオペランドデータ
は、ディスプレースメント付アドレッシングで使用され
る。ここでいうディスプレースメント付アドレッシング
とは、データのアクセスのための実効アドレスの発生時
に、内部レジスタデータにオペランドでフェッチされた
データもしくは、オペランドで指定されたレジスタの値
をオフセットとして加算することで実効アドレスを発生
するアドレッシングのことを示す。
【0017】このアドレッシング・モードが使用される
際、もし形式2のようなオペランドデータの配置形式を
取れば、ディスプレースメントのオペランドデータをフ
ェッチした後、実効アドレスを計算するために、時間を
要し、オペランドのディスプレースメント・データのフ
ェッチの後、複数のアイドルサイクルが存在することに
なる。しかし、形式3の配置をこのとき用いて、プリバ
イトとオペコードの間にディスプレースメントデータを
配置すれば、実効アドレス発生のための計算をオペコー
ドのフェッチサイクルに重複して行なう事ができ、無駄
なアイドルサイクルの発生を防ぐ。
【0018】図5は、ブロックレベルの構成図であり、
本CPUは主に制御部1と演算部2の2つの機能部に大
別される。初めに、制御部1であるがここは、命令の実
行を制御する機能を持っている。動作としては、命令の
実行に際し、外部からデータバス(D7〜D0)を介し
て、DIL15に入力された命令コードは、プリバイト
IR3或いはオペコードIR4の各インストラクション
レジスタに格納され次の命令が発生するまで保持され
る。 そして、これらのインストラクションレジスタの
複数の出力5,6と命令シーケンスのタイミングを制御
するTCU7の出力がAND−ORのPLAで構成され
た命令デコード回路8,9,10,11に入力され、命令
とタイミングに応じたデコード結果13を出力する。さ
らにそのデコード結果は、ECI12というインターフ
ェース回路を介して、演算部2に対してタイミングを整
えて演算部2を制御すべき複数の制御信号14を発生す
る。但し、本CPUにおいて、PLAの構成は、AND
プレーンをプリバイト用(構成部分8)と、オペコード用
(構成部分10)の2種類もち、ORプレーン9,11を
共有した形をとる。
【0019】これは、先の命令形式でも記述した様に、
プリバイト部は、アドレッシングモードの情報を有し、
オペコード部が命令のオペレーション内容を含むため、
PLA上でも機能的に、分類することでデコードの容易
化と冗長性を排除し、機能別(プリバイトかオペコード)
で最小のPLA(特に、ANDプレーン)を実現させてい
る。そして、この2分割されたPLAのANDプレーン
8,10は、インタラプト制御21からの入力信号24
により、ANDプレーンの両方を動作状態にするか、一
方ANDプレーン10を非動作状態にせしめることもで
きる。ここで割り込みのシーケンスの制御コードは、全
て、プリバイト側のANDプレーン8にコードが割り付
けられており、割り込みの処理時にオペコード側のAN
Dプレーン10は非動作状態にある。
【0020】演算部2は、上記の制御信号にしたがっ
て、演算やCPU外部とのデータのアクセスを行なう。
内部バスとしては、基本的にMB,DB,SBの3種類
8ビットバスを有し、各機能部とのデータのやりとりを
行なう。機能としては、上述のプログラミングモデルで
示したレジスタ群や、データや実効アドレスの演算を行
なう8ビットALU19や、シフト演算を行なう8ビッ
トのシフタ20、アドレス生成を主に行なうACU13
がある。
【0021】ALU19は、MB入力側にIC27をも
ち、IC27は、MBバスから入力される信号を、スル
ーするか、反転したり、“00"h等の定数データを発生
してALU19での演算を補助する。さらにDフラグの
機能を実現するための10進補正回路もALU19は含
んでいる。そして内部バス(MB)のデータのゼロを検出
するZDT17や分岐命令での分岐条件成立の有無をP
SRの状態から検出するBRDT18もある。 特にア
ドレス生成を主に行なうACU部に関しては、8ビット
単位に、機能が分離されそれぞれはキャリーが伝搬する
構成となっていて、最大24ビットのアドレス演算を行
なう。ここでは、アドレスの演算のみならずデータの演
算も可能である。
【0022】具体的にはACU部は、8ビット毎にIN
C/DECという増減機能があり、ABL,ABH,SB
という内部バス(各8ビット)からのデータを“00"h,
“01"h,“02"hで選択的に増減する。INC/DE
Cで演算された結果は、CALL,CALH,CALBの
ラッチに選択的に格納され、AOBL,AOBH,AOB
Bのアドレス・バッファを介して出力される。ここで選
択的というのは、演算結果が常にラッチされるのではな
く、アドレス演算時のみラッチして、データ演算時には
ラッチされない場合があることを意味する。しかし、R
LT2 35は、INC/DEC:B演算時は常に結果
をラッチするデータラッチである。
【0023】ACU部には、割り込み発生時に強制的に
割り込みベクタを発生するVECL,VECH,VECB
(ベクタアドレス発生回路)や、INC/DECを介さず
にDBバスデータを直接アドレスとして出力するBSも
配置されている。本CPUにおいて、実効アドレスの生
成は、特に分岐やディスプレースメント付のアドレッシ
ングにおいてAUとACUの両方を使用して演算してお
り、CSB,CSH25,26は、その際に使用される。
つまり、ALU19からの演算結果によるキャリーやボ
ローをACUの演算に反映させるためのキャリーのセレ
クタとしての機能をCSB,CSH25、26が持って
いる。尚、INC/DECからラッチされた演算結果
は、SB,ABH,ABLのバスを介してPC,DBR,T
R,ADH,ADLのレジスタデータを選択的に更新す
る。
【0024】その他の機能としては、CPUのクロック
の制御をつかさどる、クロック発生器22や、周辺シス
テムにCPUの動作状態を知らせる複数の信号を発生す
るシステム制御23がある。さらに、インストラクショ
ン・プレデコーダ33は、命令コードのプリデコードを
行い短縮命令の識別や、プリバイト付でオペコードと不
当な組合せ(以下不当命令と称す)の選別などを行なう。
【0025】以下に、本CPUの演算部2の各機能部に
ついて説明を行なう。 ○ 汎用レジスタ 演算,転送時にデータを提供したり、演算,転送後の結果
を格納する図5及び図6に示す汎用レジスタ群である。
W0,W1については、8ビットずつに分けてR0,R
2,R1,R3の8ビットレジスタとしても命令で区別し
て使用することができるので、本CPUでは16ビット
のみならず、8ビットのデータを扱うことができる。W
2,W3は、データアクセスの際のポインタとしてアド
レッシングモードで指定すれば使用することもできる。
汎用レジスタ群の各レジスタは、ラッチ(セット、リセ
ットなし)で構成され、内部バスに対し、以下の接続関
係を有する。基本的に、MBバスから入力されデータを
ラッチし、DB或いはMBのバスにラッチされたデータ
を出力する。R2レジスタのみ、除算命令を実行する際
のため、入力にDBバスを選択可能とする。 R0(W0L)→MBから入力, DBあるいはMBへ
出力。 R2(W0H)→MBあるいはDBから入力, DBあるいはMBへ
出力。 R1(W1L)→MBから入力, DBあるいはMBへ
出力。 R3(W1H)→MBから入力, DBあるいはMBへ
出力。 W2L →MBから入力, DBあるいはMBへ
出力。 W2H →MBから入力, DBあるいはMBへ
出力。 W3L →MBから入力, DBあるいはMBへ
出力。 W3H →MBから入力, DBあるいはMBへ
出力。
【0026】○ FPR(ファーストページレジスタ) 図5及び図6に示したFPRは、前述のファースト・ダ
イレクト・アドレッシングと呼ぶアドレッシングモード
で使用される。FPRは、ラッチ(セット、リセットな
し)で構成され、内部バスに対し、以下の接続関係を有
する。基本的に、MBバスから入力されデータをラッチ
し、DBのバスにラッチされたデータを、出力する。 FPR → MBから入力 , DBへ出力。
【0027】○ IC(ALUに関する入力制御) 図5に示したIC27(8ビット)は、MBバスからAL
U19に入力されるデータを制御する。機能的には、以
下の機能を有する。 1.MBバスデータ →ALUに入力。 2.MBバスデータの反転→ALUに入力。 3.“00"hの定数 →ALUに入力。 (MBバスデータは無視する。) 4.“01"hの定数 →ALUに入力。 (MBバスデータは無視する。) 5.“02"hの定数 →ALUに入力。 (MBバスデータは無視する。) 6.“03"hの定数 →ALUに入力。 (MBバスデータは無視する。)
【0028】○ ALU(演算論理素子) 図5に示したALU19(8ビット)は、DBバスデータ
とICからの各8ビットの入力により演算を実施する。
機能的には、AND(論理積)、OR(論理和)、EXOR
(排他的論理和)、SUM(加算)がある。 また、PSR
中のDフラグの設定により(D=1ならば)、加算及び減
算を同一演算サイクル内で10進補正する回路も含む。
さらに、SUMの結果、キャリー・ボロー発生、オーバ
ーフローが発生の検出及びキャリー・ボロー、オーバー
フローをラッチする機能も具備する。特に、キャリー結
果は、ALU19が次のSUMを実行するまで保持され
るものとする。(AND,OR,EXORでは変化しない)
【0029】○ ALUシフタ(演算論理素子シフタ) 図5に示した、ALUシフタ28は、8ビットデータの
1ビットシフトライトを実施するシフトレジスタで、主
に乗算命令で使用される。このシフトレジスタに入力さ
れるデータは、ALU19のSUM(加算)の結果であ
り、最上位ビットには、そのSUMの結果で発生したキ
ャリーが入力され、シフトの結果最下位より送出される
1ビットデータは、ALU19のキャリーとして最終的
に保持される。
【0030】○ RLT(ALU 結果ラッチ) 図5に示した、RLT29は、ALU19の演算結果を
保持する8ビットラッチである。内部バスに対しては以
下の接続関係を有する。 RLT → DBあるいはMBへ出力。 ただし、RLT29のデータは、次のALU演算が実行
されるまで内容は更新されない。
【0031】○ シフタ 図5に示した、シフタ20はフリップ・フロップで構成
され、データの1ビットシフトレフト,シフトライト,ノ
ーシフトのいずれかを制御信号により選択的に実施す
る。内部バスに対しては以下の接続関係を有する。 シフタ → MBから入力, MBへ出力。
【0032】○ ZDT(ゼロ検出回路) 図5に示したZDT17は、MBバスの状態をモニタ
し、MBバスが全ビット“00"hならば、“00"hの検
出をしたことを示す信号を発生するゼロ検出回路であ
る。特に、この信号はPSRレジスタ30中のZフラグ
に作用し、ALU19等の演算結果がRLT29より、
MBバスに出力される時、結果の“00"hを検出してZ
フラグを“1"にセットする動作を促すために用いられ
る。
【0033】○ PSR(プロセッサ・ステイタス・レ
ジスタ) 図5に示した、PSR30は、ラッチで構成され内部バ
スに対しては以下の接続関係を有する。 PSR → MBから入力 , DBへ出力。 機能としては、概要でも記述した様にPSRレジスタ3
0は現在のCPUの動作状態を示す。
【0034】○ BRDT(分岐検出回路) 図5に示した、BRDT18は、PSR30に接続され
ており、分岐命令が発生した場合、PSR30の内容か
ら分岐するか否かを判断する信号を発生する。
【0035】○ AOBB,AOBH,AOBL(アドレ
ス・出力バッファ) 図5ACU部16に示した、AOBB,AOBH,AOB
Lはアドレス出力用のバッファであり、各8ビットで計
24ビット(BA7〜BA0,A15〜A0)のアドレス
を出力する。アドレス出力は、BEのローでハイ・イン
ピーダンス状態になる。
【0036】○ VECB,VECH,VECL(ベクタ
アドレス発生器) 図5ACU部16に示した、VECB,VECH,VEC
Lは割り込み処理において、ベクタアドレス(24ビッ
ト)を発生する。
【0037】○ CALB,CALH,CALL(アドレ
ス計算ラッチ) 図5ACU部16に示した、CALB,CALH,CAL
LはINC/DEC:B:H:Lの演算の結果を選択的に
格納するラッチであり、アドレス演算時のみラッチされ
る。
【0038】○ RLT2(結果ラッチ2) 図5ACU部16に示した、RLT2はINC/DE
C:Bの演算の結果を常に格納するラッチである。
【0039】○ INC/DEC:B:H:L(インクリメ
ント/デクリメント・ユニット) 図5ACU部16に示したINC/DEC:B:H:Lは
データの増減を行なう。各機能部は、8ビット単位で構
成され、演算結果で発生したキャリーは、それぞれの上
位アドレス増減部(INC/DEC:LならINC/DE
C:Hへ,INC/DEC:HならINC/DEC:Bへ)
に伝搬され、結局24ビットのアドレス生成を実現する
ことになる。但し、このINC/DEC:B:H:Lにデ
ータ(各8ビット)は、SB,ABH,ABLのデータバス
(各8ビット)を介して入力される。各INC/DEC:
B:H:Lは、このデータについて基本的に次の動作を選
択的に行なう。 1.現状データの保持 2.“01"hのインクリメントあるいはデクリメント。 3.“02"hのインクリメントあるいはデクリメント。
【0040】○ BS(バス セレクト) 図5ACU部16に示した、BSは実効アドレスを発生
する際、CPU外部から入力されたデータ(8ビット)を
INC/DEC:Lを介することなく、DBバスから、
直接AOBLに入力するためのデータの選択の機能を有
する。前記のファースト・ダイレクト・アドレッシング
のような場合、実効アドレスのためのオペランドデータ
(8ビット)をフェッチするサイクルの次に、すぐに実効
アドレスを出力しなければならないが、この場合、IN
C/DEC:Lを介すれば遅延が生じる。そこでこのB
Sを用いて、オペランドデータ(DIL)をDBバスに乗
せ、BSで選択することにより、高速にAOBLを書き
換えることができる。
【0041】○ CSB,CSH(キャリーセレクタ) 図5ACU部16に示した、CSB,CSH25、26
はデータの演算時に、INC/DEC:B,INC/DE
C:Hに入力されるキャリーがINC/DECの下位側
(INC/DEC:HならINC/DEC:L,INC/D
EC:BならINC/DEC:H)からか、あるいはAL
U19で発生されたキャリーにするかを選択する機能を
有する。従って、このCPUでは実効アドレス発生の際
のディスプレースメントデータの加算や、プログラム相
対アドレスで分岐の際にアドレスの計算を行なうこと
は、ALU19とACU16を共用して行なう。例え
ば、24ビットデータに8ビットのディスプレースメン
トを加算して、実効アドレスを発生するアドレッシング
の場合、24ビットデータ中のビット7〜ビット0とデ
ィスプレースメントデータ(8ビット)の加算をALU1
9で行ない、24ビットの残り(ビット23〜ビット1
6)をACU部16で演算する。ALU19で加算の結
果キャリーが発生した場合、このキャリーは、CSH2
5を介して、ACUHに入力され、ACU16はこの桁
上がりを含めて演算ができる。一方、通常のプログラム
カウンタのインクリメント動作の場合には、ACU16
のみを用いて、ALU19は別のオペレーションのため
の演算を行なうことができる。この時ALU19のキャ
リーは無視されACUL16から発生したキャリーがC
SH25を介してACUHに入力される。
【0042】○ PBC,PCH,PCL(プログラム・
カウンタ) 24ビットのプログラム・カウンタ・レジスタである。
このレジスタのインクリメントは、INC/DEC:B:
H:Lを用いて行なう。内部バスに対しては以下の接続
関係を有する。 PBD → SBから入力 , DBあるいはSBへ出力。 PCH → ABHから入力, MBあるいはABHへ出力。 PCL → ABLから入力, DBあるいはABLへ出力。
【0043】○ TR,ADH,ADL(テンポラリ・レ
ジスタ) 各8ビットのテンポラリ・データラッチである。CPU
外部からは見えない。演算結果を一時的に格納する。 TR → DBあるいはSBから入力 , SBへ出力。 ADH → MBあるいはABHから入力, ABHへ出力。 ADL → DBあるいはABLから入力, ABLへ出力。
【0044】○ SPH,SPL(スタック・ポインタ・
レジスタ) 16ビットのスタック・ポインタ・レジスタである。内
部バスに対しては以下の接続関係を有する。 SPH →MBから入力 , MBあるいはDBへ出力。 SPL →MBから入力 , DBへ出力。
【0045】○ DBR(データ・バンク・レジスタ) 8ビットのバンク・レジスタである。基本的にデータア
クセスの際のバンクアドレスは、このレジスタ値が出力
される。但し、PSR中にモード・フラグ(M1,M0)
の状態により、バンクアドレス値は変動する。また、D
BRは、SBバスを介して入力されており、DBR値の
増減にも任意に対応できる。内部バスに対しては以下の
接続関係を有する。 DBR → MBあるいはSBから入力, DBあるいはSBへ出力。
【0046】○ DIL(データ入力ラッチ) 8ビットのラッチである。外部データは、このラッチに
入力される。DIL15は、制御部1に対しては命令コ
ードを供給し、演算部2には、内部バス(DB,MB,S
B)に対しデータを供給する。CPU内部に対しては以
下の接続関係を有する。 DIL → D7〜D0から入力, DB,MB,SBあるいは制御部へ出
力。
【0047】○ DOL(データ出力ラッチ) 8ビットのラッチである。外部に出力されるデータは、
このラッチに入力される。CPU内部に対しては以下の
接続関係を有する。 DIL → DBあるいはMBから入力, D7〜D0へ出力。
【0048】以下に、本CPUの制御部1の各機能部に
ついて説明を行なう。 ○ インストラクション・プレ・デコーダ 基本的に次の3つの機能部を有する。 1.PLAでのデコードではタイミング的に間に合わな
い場合、プレデコーダで予めデコードして制御信号を発
生する。[1サイクル命令の検出,外部制御信号の発生制
御,TCU7の制御等] 2.PLAコードの最小化のためデコードを補助する。
[短縮命令の検出,命令で扱うデータサイズの検 出等] 3.不当命令,ソフトウェアインターラプト命令の検
出。
【0049】○ クロック発生器 CPU内部用の複数のクロックの発生。あるいは、外部
システム用システム・クロックを発生する。 WAIT−−−プロセッサ停止入力。 LSP −−−バスサイクル変更用入力。 CLK −−−CPUクロック入力。 S1,S2−−−システム・クロック出力。
【0050】○ システム制御 CPUの動作状態を知らせるための複数の信号を発生す
る。 BSVT−−−プロセッサ動作状態出力。 (ベクタアドレス出力中を示す) BSDA−−−プロセッサ動作状態出力。 (データアクセスを示す) BSPA−−−プロセッサ動作状態出力。 (プログラムアクセスを示す) BSOF−−−プログラム動作状態出力。 (命令フェッチを示す) BSML−−−プロセッサ動作状態出力。 (メモリロック状態を示す) RWB,RB,WB−−−リードライト状態出力 BE−−−バスイネーブル入力。
【0051】○ インタラプト制御 CPUの割り込みを制御する。 RES −−−リセット割り込み入力。 NMI −−−ノンマスカブル割り込み入力。 IRO −−−割り込み入力。 ISE0〜3−−−割り込み(IRO)選択入力。 WAKE −−−プロセッサ停止命令の解除入力。
【0052】○ TCU(タイミング制御ユニット) 命令実行の動作シーケンスを制御する。
【0053】○ ECI(イクスキュージョン制御イン
タフェース) PLAの命令デコード結果を受け演算部2にタイミング
を整えた制御信号を発生する機能を有す。
【0054】○ オペコードIR(バッファ), プリバイトIR(インストラクション・レジスタ)命令を
格納するインストラクションレジスタ。
【0055】○ プリバイト ANDプレーン,オペコ
ード ANDプレーン,ORプレーンAND−ORで構
成された命令デコード用PLA。
【0056】以上説明したようなCPUにおいては入出
力部のビットサイズが8ビットであり、分岐量を示すデ
ータのビットサイズが16ビットである。したがって、
分岐量を示すデータは2分割され2回に分けてCPUに
取り込まれる。本実施例のCPUにて使用する分岐条件
命令は、図3に示すように8ビットからなるプリバイ
ト、当該プリバイトの下位側に8ビットからなるオペコ
ードから構成される。上記オペコードの下位側4ビット
はCCT(コンディション コード テーブル)を構成す
る。CCTは、「表2」に示すようにCCTの内容により
分岐する条件を設定している。例えばCCTのビットデ
ータが0110である場合の分岐条件は、「ゼロフラグ
を有する場合には分岐する」という条件である。このC
CTのデータは後述するBRDT18に供給される。
【0057】
【表2】
【0058】上述した構成部分の内、本実施例における
CPUで特に重要な役割を果たすものは、図5に示すP
SR(プロセッサ ステイタス レジスタ)30、BRDT
(ブランチディテクタ)18、TCU(タイミング コント
ローラ ユニット)7である。PSR30はBRDT18
に接続され、BRDT18はOP−CODE IR(オペ
コード インストラクションレジスタ)4に接続される。
オペコードインストラクション レジスタ4は、オペコ
ード インストラクション レジスタ バッファを介して
オペコード ANDプレーン10及びORプレーン11
に接続され、上記ORプレーン11はTCU7に接続さ
れる。又、TCU7の出力側は、ANDプレーン10の
入力側に接続される。
【0059】PSR30は、ALU19における演算結
果においてキャリー、ボロー、正、負等の条件を保持す
るレジスタであり、BRDT18はPSR30から供給
されるデータに基づき分岐の有無の判断を行う信号を発
生する回路であり、TCU7は命令実行の動作シーケン
スを制御する回路である。
【0060】BRDT18は、図1に示すように上述し
たCCTのデータの各ビットデータが供給される命令コ
ード入力端子100ないし103と、PSR30から
N,V,Z,Cの各フラグデータが供給されるそれぞれの
入力端子104ないし107と、ANDゲート、ORゲ
ート等の論理回路と、トランスミッションゲートと、本
BRDT回路の出力信号であるBRFP信号が送出され
るBRFP信号出力端子108とを有している。
【0061】Nフラグ入力端子104及びVフラグ入力
端子105は、インバータを介してトランスミッション
ゲート111及び112の入力側に接続され、又、論理
回路を介してトランスミッションゲート118に接続さ
れる。Zフラグ入力端子106及びCフラグ入力端子1
07は、インバータを介してトランスミッションゲート
109及び110に接続され、又、論理回路を介してト
ランスミッションゲート113及び114の入力側に接
続される。トランスミッションゲート109及び110
の出力側はトランスミッションゲート115の入力側に
接続され、トランスミッションゲート111及び112
の出力側はトランスミッションゲート116の入力側に
接続され、トランスミッションゲート113及び114
の出力側はトランスミッションゲート117の入力側に
接続される。さらに、トランスミッションゲート115
及び116の出力側はトランスミッションゲート119
の入力側に接続され、トランスミッションゲート117
及び118の出力側はトランスミッションゲート120
の入力側に接続される。さらにトランスミッションゲー
ト119及び120の出力側はインバータを介してトラ
ンスミッションゲート121及び122の入力側にそれ
ぞれ接続され、トランスミッションゲート121及び1
22の出力側はインバータを介してBRFP信号出力端
子108に接続される。
【0062】一方、上述したCCTの0ビット目の反転
データが供給される命令コード入力端子103は、トラ
ンスミッションゲート109ないし114の制御信号入
力端子に接続され、CCTの1ビット目の反転データが
供給される命令コード入力端子102は、トランスミッ
ションゲート115ないし118の制御信号入力端子に
接続され、CCTの2ビット目の反転データが供給され
る命令コード入力端子101は、トランスミッションゲ
ート119及び120の制御信号入力端子に接続され、
CCTの3ビット目の反転データが供給される命令コー
ド入力端子100は、トランスミッションゲート121
及び122の制御信号入力端子に接続される。
【0063】TCU7は、図2に示すようにトランスミ
ッションゲート、論理回路を有する4ビットのデータを
処理するカウンタであり、各ビットデータについてそれ
ぞれセット、リセットの入力端子123ないし130を
設けている。これらの入力端子123ないし130には
ORプレーン11の出力側が接続され、出力端子131
ないし134はANDプレーン10の入力側に接続され
る。出力端子131ないし134から送出される信号は
命令を実行する際のカウント値であり、後述するように
ANDプレーン10及びORプレーン11から構成され
るPLA(プログラマブル ロジック アレイ)の回路構成
により、発生する上記カウント値が制御される。
【0064】一方、図4に示すようにTCU7が送出す
るカウント値によって条件分岐命令の動作サイクルが割
り当てられており、分岐する場合にはTCU7から送出
される4ビットからなるカウント値は0→5→9→7→
8→0(各10進数にて示す。以下同様。)の順に強制的
にカウント値が遷移し命令が実行される。即ち、上述し
たBRDT18の送出するHレベルのBRFP信号が上
記PLAに供給された場合、上述したようなカウント値
をTCU7から発生させるための信号をPLAがTCU
7へ送出するようにPLAは回路構成がなされている。
一方、LレベルのBRFP信号が上記PLAに供給され
た場合には、上記カウント値が0→5→9→0の順にカ
ウント値をTCU7が発生するようにPLAは回路構成
がなされている。尚、上記カウント値が0のときにはプ
リバイト部分がフェッチされ、カウント値が5のときに
はオペコード部分がフェッチされ、カウント値が9のと
きにはCPU内部における演算動作が実行され、カウン
ト値が7のときにはディスプレースメントのH(ハイ)側
のデータがフェッチされ、カウント値が9のときにはデ
ィスプレースメントのL(ロー)側のデータがフェッチさ
れる。
【0065】このように構成されるCPUの動作を表3
及び表4を参照し以下に説明する。上述したように、T
CU7から送出されるカウント値は、分岐の有無に拘わ
らずまず0、5、9の順に送出されることから、TCU
7が0のカウント値を送出する0サイクル目では、命令
コードに含まれるプリバイトがフェッチされ、次に5の
カウント値を送出する1サイクル目ではオペコードがフ
ェッチされる。これらの0、1サイクルにおいて、分岐
命令の指定、上述したようにオペコードに含まれるCC
Tのデータによる分岐条件の指定、いづれのアドレッシ
ングを行うかの指定が行なわれる。次に9のカウント値
を送出する2サイクル目ではディスプレースメントデー
タの内、下位側のデータがフェッチされる。尚、TCU
7が送出するカウント値はPLAにも供給される。
【0066】一方、PSR30には、命令の実行により
図5に示すALU19における演算にて発生した正、負
等を表すフラグが8ビットにて格納され、その内のN、
V、Z、Cの各フラグデータはBRDT18に送出され
る。尚、Nは演算結果が負の場合を示すフラグであり、
Vは演算結果が桁あふれを生じた場合を示すフラグであ
り、Zは演算結果がゼロである場合を示すフラグであ
り、Cは演算によりキャリが発生した場合を示すフラグ
である。
【0067】BRDT18には、上記1サイクル目にお
けるオペコードのフェッチによるCCTのデータが供給
され、又、上記PSR30からN,V,Z,Cの各フラグ
データが供給される。よって、TCU7がカウント値9
を送出し下位側のディスプレースメントデータをフェッ
チする2サイクル目の実行と同時に、BRDT18はB
RDTを構成する各トランスミッションゲート109な
いし122がオン、オフ動作し、PSR30から供給さ
れるデータによってBRFP信号出力端子108よりハ
イあるいはローのBRFP信号を送出する。例えばCC
Tのデータが表2に示す1111であるBCCの場合、
トランスミッションゲート109、111、113、1
15、117、119、121がオン状態となりCフラ
グのデータが0であればBRFP信号はハイ状態とな
る。
【0068】BRFP信号は、オペコード インストラ
クション レジスタ4等を介してPLAに供給される。
又、TCU7が送出するカウント値もPLAに供給され
ており、上述したようにPLAはBRFP信号の信号レ
ベルに応じて所定の信号をTCU7へ送出する。
【0069】今、BRFP信号がLレベルである場合、
即ち分岐を行う場合、上述しようにTCU7は3サイク
ル目としてカウント値7を送出することで、ディスプレ
ースメントデータの上位側の8ビットのデータがフェッ
チされ、プログラムカウンタのカウント値にディスプレ
ースメントデータの下位側のデータが加算され、分岐先
のアドレスである相対分岐アドレスが計算される。
【0070】次に、TCU7は4サイクル目としてカウ
ント値8を送出する。よってプログラムカウンタのカウ
ント値にディスプレースメントデータの上位側のデータ
が加算され、分岐先のアドレスである相対分岐アドレス
が計算され、該アドレスが確定する。
【0071】よって新しいプログラムアドレスへ分岐が
行なわれ、TCU7は5サイクル目として再びカウント
値0を送出する。よって分岐先の新しいプログラムアド
レスにおける命令コードがフェッチされる。このように
分岐を行う場合には、PLAは通常の分岐命令時の動作
に従いTCU7を動作させるようにタイミングコントロ
ーラ制御信号を送出する。
【0072】一方、BRFP信号がHレベルである場
合、即ち分岐を必要としない場合、0ないし2サイクル
は上述した場合と同じ動作であるので説明を省略する
が、2サイクル目ではHレベルのBRFP信号がPLA
に供給される。したがってPLAは、TCU7が3サイ
クル目としてカウント値7ではなくカウント値0を送出
するように、TCU7へタイミングコントローラ制御信
号を送出する。よってTCU7は3サイクル目としてカ
ウント値7ではなくカウント値0を送出する。したがっ
てCPUはプログラムカウンタがカウントする次のカウ
ント値によって示されるアドレスにおける命令コードを
フェッチする。
【0073】このようにフェッチした命令コードが分岐
を必要としない場合には、上述した3及び4サイクル目
が省略されることより、従来のCPUに比べ1命令を2
サイクル少ないサイクル数にて実行することができる。
したがって命令実行を高速化することができる。又、こ
のようなCPUを製作するためにはBRDT18を設
け、かつPLAの回路構成を一部変更するだけで良く、
容易に製作することができる。
【0074】
【表3】
【0075】
【表4】
【0076】
【発明の効果】以上詳述したように本発明によれば、分
岐条件が非成立のときには分岐量を示すデータの一部の
みをフェッチしその他の分岐量を示すデータのフェッチ
は省略されることより、無駄な演算サイクルが排除され
高速に分岐命令の実行を行うことができる。
【図面の簡単な説明】
【図1】 本発明のCPUに設けられるBRDT回路の
構成を示す論理回路図である。
【図2】 本発明のCPUに設けられるTCU回路の構
成を示す論理回路図である。
【図3】 本発明のCPUにて使用する命令コードを構
成するプリバイト及びオペコードを示す図である。
【図4】 本発明のCPUに設けられるTCUと条件分
岐命令のサイクル割り当てを示す図である。
【図5】 本発明のCPUの全体構成を示すブロック図
である。
【図6】 本発明のCPUにて使用されるプログラミン
グモデルを示す図である。
【図7】 本発明のCPUにて使用される命令形式を示
す図である。
【符号の説明】
7…TCU、10…ANDプレーン、11…ORプレー
ン、18…BRDT、30…PSR。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 中央演算処理装置の条件分岐命令の制御
    に関し上記中央演算処理装置のデータ入出力部のビット
    サイズが命令コードに続いてフェッチされる分岐量を示
    すデータのビットサイズに比べ小さく上記分岐量を示す
    データを上記データ入出力部が少なくとも2回以上複数
    サイクルに分割してフェッチする構成の中央演算処理装
    置において、当該中央演算処理装置内に備わり当該中央
    演算処理装置の動作状態を示すデータや演算結果を示す
    データを保持する内部レジスタと、命令コード内に含ま
    れ分岐条件を指定するビットデータと上記内部レジスタ
    に格納されるデータとの比較により分岐条件の成立の有
    無を判断しその判断結果信号を送出する分岐条件判断部
    と、命令実行の動作シーケンスを制御するタイミング信
    号を送出するタイミングコントローラと、上記タイミン
    グコントローラが送出するタイミング信号、命令コード
    及び上記判断結果信号が供給され該判断結果信号に応じ
    たタイミング信号が上記タイミングコントローラから送
    出されるようにタイミングコントローラを制御するタイ
    ミングコントローラ制御信号を送出するプログラム ロ
    ジック アレイと、を備えたことを特徴とする中央演算
    処理装置。
JP3603691A 1991-03-01 1991-03-01 中央演算処理装置 Expired - Lifetime JP2894854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3603691A JP2894854B2 (ja) 1991-03-01 1991-03-01 中央演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3603691A JP2894854B2 (ja) 1991-03-01 1991-03-01 中央演算処理装置

Publications (2)

Publication Number Publication Date
JPH04275627A JPH04275627A (ja) 1992-10-01
JP2894854B2 true JP2894854B2 (ja) 1999-05-24

Family

ID=12458491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3603691A Expired - Lifetime JP2894854B2 (ja) 1991-03-01 1991-03-01 中央演算処理装置

Country Status (1)

Country Link
JP (1) JP2894854B2 (ja)

Also Published As

Publication number Publication date
JPH04275627A (ja) 1992-10-01

Similar Documents

Publication Publication Date Title
JP2968289B2 (ja) 中央演算処理装置
EP0019392B1 (en) Instruction register sequence decoder for microprogrammed data processor and method
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US4839797A (en) Microprocessor compatible with any software represented by different types of instruction formats
EP0465248B1 (en) Pseudo-linear bank switching memory expansion
EP0011412B1 (en) Bipartite control store for microprogrammed data processor
US4312034A (en) ALU and Condition code control unit for data processor
US4926318A (en) Micro processor capable of being connected with a coprocessor
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US5410721A (en) System and method for incrementing a program counter
US5757685A (en) Data processing system capable of processing long word data
EP0227319A2 (en) Instruction cache memory
US5301338A (en) System including central processing unit
JP3556252B2 (ja) オフセット合計を計算するデータ処理システムとその方法
JP2894854B2 (ja) 中央演算処理装置
US5596761A (en) Central processing unit with internal register initializing means
EP0265948B1 (en) Data processor capable of immediately calculating branch address in relative address branch
JP2922979B2 (ja) 中央演算処理装置
JP2968288B2 (ja) 中央演算処理装置
JP3085690B2 (ja) 中央演算処理装置
JPH02123442A (ja) 高速化メモリ
US5220670A (en) Microprocessor having ability to carry out logical operation on internal bus
JP3144678B2 (ja) 中央演算処理装置
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
US5142636A (en) Memory bank address calculation with reduced instruction execution cycles

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090305

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20100305

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110305

Year of fee payment: 12

EXPY Cancellation because of completion of term