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

中央演算処理装置

Info

Publication number
JPH07182158A
JPH07182158A JP5323813A JP32381393A JPH07182158A JP H07182158 A JPH07182158 A JP H07182158A JP 5323813 A JP5323813 A JP 5323813A JP 32381393 A JP32381393 A JP 32381393A JP H07182158 A JPH07182158 A JP H07182158A
Authority
JP
Japan
Prior art keywords
instruction
signal
program counter
processing unit
input signal
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
Application number
JP5323813A
Other languages
English (en)
Other versions
JP3462245B2 (ja
Inventor
Kazuhiko Hara
和彦 原
Shinichi Yamaura
慎一 山浦
Keiichi Yoshioka
圭一 吉岡
Takao Katayama
貴雄 片山
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 JP32381393A priority Critical patent/JP3462245B2/ja
Priority to US08/361,936 priority patent/US5630158A/en
Publication of JPH07182158A publication Critical patent/JPH07182158A/ja
Application granted granted Critical
Publication of JP3462245B2 publication Critical patent/JP3462245B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 マイクロプログラムの実行時間が短く、マイ
クロプログラムの負担を軽減することができるCPUを
提供する。 【構成】 インストラクションレジスタ3と、タイミン
グコントロールユニット4と、データパス2と、デコー
ダ1とを有するCPUにおいて、内部データバスからプ
ログラム・カウンタへのデータ供給を指示するPC入力
信号、次の命令等への移行を指示する指示信号及びプロ
グラム・カウンタ値のモニタ信号が供給され上記PC入
力信号及び上記モニタ信号に基づき上記指示信号の送出
を制御するネクストイネーブル手段5を備えた。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、アドレスに分岐先とし
ては禁止された領域を持ち、このアドレスに分岐しよう
としたとき直ちに例外処理に移行する機能を有する中央
演算処理装置に関する。
【0002】
【従来の技術】中央演算処理装置(以下、CPUと記
す)は、記憶装置(以下、メモリと記す)に格納された
プログラムとして構成される命令群より、順次命令を読
み込み実行する。通常、メモリには、8ビットから構成
される1バイト分のデータにつき一つの番地(以下、ア
ドレスと記す)が与えられる。 CPUが、メモリとの
データ転送経路としてのデータバスを16ビット長で持
つ場合、一度に2バイトのデータまたは命令をアクセス
できる。従ってそのときCPUは、メモリの二つのアド
レスを指定することになるが、一般的にCPUは、アド
レスを指定するためのアドレスバスを1通りしか持た
ず、1通りのアドレスバスの内容で、アドレスバスの最
下位ビットのデータが“0”の場合のアドレスと、
“1”の場合のアドレスという2バイト連続するアドレ
スを指定する。従ってアクセスする2バイトは、偶数ア
ドレスから始まる連続する2バイトであり、CPUの指
定するアドレスは、偶然アドレスである。同様に2バイ
トをアクセスする場合でも、奇数アドレスから始まる2
バイトの場合は、下位側の奇数アドレスと、上位側の偶
数アドレスを同時にアクセスできないため、2度に分け
てアクセスするので、時間的な効率が低下してしまう。
このように、2バイトにまたがるデータまたは命令は、
偶数アドレスに配置した方が効率的となる。
【0003】16ビットのデータバス幅を持つCPUの
命令コード長が、16ビットである場合、2バイト同時
に命令をリードできるように、プログラム中の命令の配
置を、必ず偶数アドレスにするよう制限を設けているC
PUがある。これはモトローラ社のCPU68000に
も見られる一般的な手法である。この制限を偶数アライ
メント制限と呼ぶ。この偶数アライメント制限を採用す
るCPUが実行する命令は、必ず偶数アドレスから命令
を読み込むので、実行する命令のアドレスを示すプログ
ラム・カウンタは、常に偶数である。もし、分岐命令な
どでプログラム・カウンタを更新するときに、更新値が
奇数であれば、例外処理として例外処理ルーチンへジャ
ンプする手続きを実行する。このような例外処理を行う
のは、プログラム・カウンタを奇数のアドレスで更新し
ようとした場合であるので、プログラム・カウンタを更
新するときには、必ず更新値が偶数か奇数かのチェック
が必要となる。CPUの動作をコントロールするマイク
ロプログラムには、プログラム・カウンタを更新する全
ての場合において、更新値が奇数であるかをチェック
し、奇数なら例外処理の手続きをするマイクロプログラ
ム中のルーチンへ分岐し、偶数ならそのまま次に実行を
移すよう記述する必要がある。
【0004】又、他のCPUにおいて、アドレスの最上
位ビットのデータの“0”または“1”で区別すること
でCPUのアクセスできる全アドレス空間を半分にす
る。そしてこのように半分になったアドレス空間(以
下、半空間と記す)に対して、複数の動作モードのうち
一部の動作モードではどちらか一方の半空間にプログラ
ム・ジャンプできないという制限を付けることができ
る。このような制限を付けたときジャンプできない半空
間にジャンプしようとしたときは、例外処理を発生す
る。従って制限を受ける動作モードで命令を実行中に、
プログラム・カウンタを更新しようとするときには、更
新値の最上位ビットを参照し、許可されている半空間か
否かのチェックが必要となる。よってCPUの動作をコ
ントロールするマイクロプログラムには、プログラム・
カウンタを更新する全ての場合において、更新値が許可
された半空間であるかをチェックし、許可されていない
半空間なら例外処理の手続きをするマイクロプログラム
中のルーチンへ分岐し、許可されている半空間ならその
まま次に実行を移すよう記述する必要がある。
【0005】さらに又、上記の半空間によるアドレス空
間の制御より、さらに発展させた制御方法として、任意
の値をセットできるレジスタを持ち、その内容とプログ
ラム・カウンタの内容とを常に比較し、条件を満たさな
い場合(もしくは、満たす場合)、例外発生の処理を行
い、それ以外は通常の動作を行うという機能を持つCP
Uがある。この場合も、CPUの動作をコントロールす
るマイクロプログラムには、プログラム・カウンタを更
新する全ての場合において、更新値が前述のレジスタに
格納された比較値との比較で、条件を満足するか否かを
チェックし、満足(あるいは不満足)なら例外処理の手
続きをするマイクロプログラム中のルーチンへ分岐し、
不満足(あるいは満足)ならそのまま次に実行を移すよ
う記述する必要がある。
【0006】上述したような従来のCPUにおける構成
を図を参照し以下に説明する。図7は、従来のCPUに
おける内部動作を説明するための図である。デコーダ
(以下、DECと記す)1は、CPUのメインのコント
ロール部で、インストラクション・レジスタ(以下、I
Rと記す)3及びタイミング・コントロール・ユニット
(以下、TCUと記す)4の出力側に接続される。又、
DEC1の出力側は、データの演算や一時記憶などを行
なう実行部(データパスともいう。以下、DPと記す)
2、IR3及びTCU4の入力側に接続される。このよ
うなDEC1は、IR3より命令コードの情報の供給を
受け、又、TCU4よりステップの情報の供給を受け、
DEC内部のマイクロプログラムを参照して、DP2へ
のコントロール信号101と、IR3へのコントロール
信号102と、TCU4へのコントロール信号103を
送出する。
【0007】DP2はプログラム・カウンタも有し、奇
数のプログラム・カウンタ値がプログラム・カウンタに
セットされると、モニタ信号201にてDEC1にその
旨を知らせている。IR3は、命令コードを記憶してお
りDEC1へ信号線301を経て上記命令コードを送出
する。またコントロール信号102の指示により次の命
令コードへの更新を行う。次の命令コードに更新するの
は、現在実行している命令が終了したときであり、その
タイミングは、DEC1がコントロール信号102を経
て伝える。
【0008】TCU4は、命令の実行ステップをコント
ロールする装置で、DEC1に命令処理のステップをタ
イミング信号401により伝える。TCU4は、命令の
最初のステップを“0”として、順次カウントするが、
マイクロプログラムの都合により、任意のカウント値に
することが可能である。その指示は、コントロール信号
103によりDEC1からTCU4へ伝えられる。実行
中の命令が終了したとき、コントロール信号103の指
示により、カウンタの値を“0”にセットする。
【0009】次に、図7に示すCPUの動作のタイミン
グを図8を参照し説明する。図8の(a)に示すタイミ
ング波形は、DEC1での命令コードのデコードのタイ
ミングを示す。図8の(b)に示すタイミング波形は、
DEC1の出力、つまりコントロール信号101のタイ
ミングを示す。図8の(c)に示すタイミング波形は、
DP2の動作のタイミングを示す。DP2は、DEC1
によりコントロールされるため、タイミングは、DEC
1の出力信号におけるタイミングと同じである。
【0010】図8を用いて、プログラム・カウンタの更
新のタイミングを説明する。図8の(a)に示すタイミ
ング波形11のタイミングで、CPU内部にてデータの
転送に使用するバスである内部データバス(不図示)か
らプログラム・カウンタへジャンプ先のアドレスを格納
するようマイクロプログラムに記述がある場合、DEC
1は、タイミング波形11のタイミングにてデコードを
行い、その結果をタイミング波形21に示すタイミング
にて出力する。尚、このようにして送出されるコントロ
ール信号を“DB PC”と呼ぶことにする。タイミン
グ波形21で送出されたコントロール信号“DB
C”に従って、DP2は上記内部データバスに存在する
ジャンプ先のアドレスをPCに取り込む。DP2は、こ
こで取り込まれたジャンプ先が奇数か偶数かをモニタ信
号201を使ってDEC1に知らせる。DEC1は、こ
の結果によって、その後マイクロプログラムが正常なジ
ャンプとして命令を終了するか、奇数アドレス例外処理
とするかをどちらかに分岐する。
【0011】図8にてタイミング波形31におけるタイ
ミングにてDP2が送出する情報を反映できるのは、タ
イミング波形13におけるタイミングのデコードが最も
早いので、タイミング波形13に示すタイミングにて正
常終了の場合と例外発生の場合の2通りのマイクロプロ
グラムが存在する。正常終了のときは、タイミング波形
13のタイミングでIR3に次の命令コードに更新する
よう指示し、TCU4にカウントの値に“0”をセット
するよう指示する。このように正常終了のときの動作
は、タイミング波形14から次の命令のデコードを始め
るために、タイミング波形13のタイミングにて行なわ
れる。そして、タイミング波形14に示すタイミングか
らは、次の命令に移る。従って、タイミング波形11で
コントロール信号“DB PC”をデコードしてから、
タイミング波形14で次の命令に移るのが、最速の場合
ということになる。
【0012】
【発明が解決しようとする課題】上述のように、従来、
プログラム・カウンタを更新する全ての場合で、奇数か
否かの判定を行っているため、更新値が偶数である場合
でも、マイクロプログラム中の判定のためのステップを
必要とするので、プログラムの実行に時間がかかるう
え、マイクロプログラムの負担も大きくなり、マイクロ
プログラムのサイズを大きくしてしまうという問題点が
あった。
【0013】又、上述したように従来はプログラム・カ
ウンタを更新する全ての場合で、許可された半空間か否
かの判定を行っているため、更新値が許可された半空間
である場合でも、マイクロプログラム中の判定のための
ステップを必要とするので、プログラムの実行に時間が
かかるうえ、マイクロプログラムの負担も大きくなり、
マイクロプログラムのサイズを大きくしてしまうという
問題点があった。
【0014】又、上述したように従来はプログラム・カ
ウンタを更新する全ての場合で、比較値との比較結果条
件を満足するか否かの判定を行っているため、更新値が
満足(あるいは不満足)で通常の動作である場合でも、
マイクロプログラム中の判定のためのステップを必要と
するので、プログラムの実行に時間がかかるうえ、マイ
クロプログラムの負担も大きくなり、マイクロプログラ
ムのサイズを大きくしてしまうという問題点があった。
本発明はこのような問題点を解決するためになされたも
ので、マイクロプログラムの実行時間が短く、マイクロ
プログラムの負担を軽減することができるCPUを提供
することを目的とする。
【0015】
【課題を解決するための手段】命令コードを格納するイ
ンストラクションレジスタと、命令の実行ステップのタ
イミングを制御するタイミングコントロールユニット
と、データ演算やデータの一時記憶の動作を含みプログ
ラム・カウンタを有するデータパスと、入力側が上記イ
ンストラクションレジスタ及び上記タイミングコントロ
ールユニットに接続され出力側が上記データパス、上記
インストラクションレジスタ及び上記タイミングコント
ロールユニットに接続され中央演算処理装置の主たる動
作制御を行い上記データパス、上記インストラクション
レジスタ及び上記タイミングコントロールユニットへ制
御信号を送出するデコーダと、を備えた中央演算処理装
置であって、上記デコーダ及び上記データパスの出力側
に接続され上記デコーダから上記制御信号に含まれる、
内部データバスから上記プログラム・カウンタへデータ
の入力を指示するプログラムカウンタ入力信号及び少な
くとも通常処理中の命令もしくは例外処理の動作を終了
し少なくとも通常処理の次の命令もしくは例外処理の動
作へ移行することを指示する指示信号が供給され、並び
に上記データパスからプログラムカウンタ値の偶数若し
くは奇数を示すモニタ信号が供給され上記プログラムカ
ウンタ入力信号及び上記モニタ信号に基づき上記指示信
号の送出を制御するネクストイネーブル手段を備えたこ
とを特徴とする。
【0016】
【作用】このように構成することで分岐命令を実行する
場合には、ネクストイネーブル手段は、モニタ信号のみ
ならずプログラムカウンタ入力信号をも参照し分岐先ア
ドレスの内容を判断する。よってネクストイネーブル手
段はプログラムカウンタ値が更新される前の、内部デー
タバスに更新値がある時点で分岐先アドレスの内容を判
断可能なように作用する。さらに、ネクストイネーブル
手段は、上記モニタ信号及び上記プログラムカウンタ入
力信号に基づく判断結果によって既にネクストイネーブ
ル手段へ供給されている指示信号を送出するか否かを判
断する。よってネクストイネーブル手段は従来よりも早
い段階で指示信号の送出が可能となるように作用する。
【0017】
【実施例】本発明のCPUにおける一実施例について図
を参照しながら以下に説明する。図1には本実施例にお
けるCPUの構成を記載している。尚、図7に示す構成
部分、信号と同じ構成部分、信号については同じ符号を
付しその説明を省略する。5は、次の命令へ進むという
指示信号501、502を発生するネクスト・イネーブ
ル装置(以下、NEと記す)であり、入力端子がDEC
1及びDP2の出力側に接続され、出力端子がIR3及
びTCU4の入力側に接続される。NE5は、指示信号
501によってIR3へ次の命令コードをセットするよ
う指示し、指示信号502によってTCU4のカウンタ
の値を“0”にセットする指示を出す。尚、NE5が送
出する指示信号501、502の果す役割は、図7に示
すDEC1が送出するコントロール信号102、103
が果たす役割に含まれる。従って、これらの機能は、図
1に示すDEC1からは除かれDEC1が送出するコン
トロール信号102、103にはなくなっている。
【0018】NE5に供給される信号は、DEC1が送
出するコントロール信号104と、DP2が送出するモ
ニタ信号201である。コントロール信号104の内容
は、上述したコントロール信号“DB PC”と、“次
の命令へ進む”という指示である“NEXIR”とであ
る。NE5は、コントロール信号104にて“NEXI
R”がDEC1から指示されたとき、DP2から供給さ
れたモニタ信号201に基づきプログラム・カウンタの
値が奇数か偶数かを即座に判断し、もし奇数であるな
ら、次の命令に進む指示をIR3、TCU4に伝えな
い。一方、プログラム・カウンタの値が偶数であるなら
ば、NE5は次の命令に進む指示をIR3、TCU4に
伝える。これによりプログラム・カウンタの内容が奇数
である場合には、たとえDEC1から“NEXIR”を
示すコントロール信号104が送出されたとしても次の
命令には進まないので、次のサイクルでは実行中の命令
の次のステップへ進む。尚、次のステップとは、プログ
ラム・カウンタの内容が奇数のときのみ実行されるステ
ップであるので、ここに奇数アドレス例外処理へ移行す
るマイクロ・プログラムをセットしておく。
【0019】次に、NE5の回路構成例を図2に示す。
図2に示す入力信号の“NEXIR”は、上述のものと
同じであり、“次の命令へ進む”という指示内容の入力
信号“NEXIR”である。又、入力信号の“DB
C”は、上述の信号と同じである。入力信号“DB
Cバー”は、入力信号“DB PC”の反転信号であ
る。又、入力信号“DB0”及び“PC0”は、DP2
からのモニタ信号201である。入力信号“DB0”
は、DP2の内部データバスの最下位ビットのデータを
モニタしており、入力信号“PC0”は、DP2のプロ
グラム・カウンタの最下位ビットのデータをモニタして
いる信号である。
【0020】NE5は第1マルチプレクサに該当するゲ
ート51及び第1選択手段に該当するゲート52から構
成される。ゲート51は、入力信号の“DB PC”及
び入力信号“DB0”が供給される2入力のAND回路
51aと、入力信号の“DB PCバー”及び入力信号
“PC0”が供給される2入力のAND回路51bと、
これら2つのAND回路51a,51bの出力端子が入
力側に接続される2入力のNOR回路51cとから構成
されている。ゲート52は、上記NOR回路51cの出
力端子が接続され入力信号の“NEXIR”が供給され
る2入力のAND回路である。
【0021】ゲート51は、入力信号“DB PC”が
ハイ(H)かつ入力信号“DB0”がHのとき、あるい
は、入力信号“DB PCバー”がHかつ入力信号“P
C0”がHのとき、ロー(L)を送出する。つまり、ゲ
ート51は、DEC1が入力信号“DB PC”を送出
している場合に内部データバスの最下位ビットが“1”
のとき、即ち奇数の値をプログラム・カウンタに供給し
ようとするときと、DEC1が入力信号“DB PC”
を送出していない場合にプログラム・カウンタに最下位
ビットが“1”のとき、即ちすでにプログラム・カウン
タに奇数が入っているときに、Lを送出する。ゲート5
1の出力信号はゲート52に入力される。
【0022】ゲート52は、ゲート51の出力信号と上
述の入力信号“NEXIR”が同時にHレベルのときの
みHレベルの信号を送出する。ゲート52の出力信号
は、信号“NEXT”と呼ぶことにする。信号“NEX
T”は、図1に示す指示信号501、502に相当す
る。
【0023】次に、図1に示す本実施例のCPUにおけ
る動作タイミングを図3を参照し説明する。尚、図3に
示すタイミング図は、図8に示すものと同様のタイミン
グにて示したものであり、図3において図8に示すタイ
ミング波形と同じタイミングにおける波形には同じ符号
を付している。タイミング波形11にて入力信号“DB
PC”がDEC1内でデコードされるのは図8に示す
場合と同様である。図8と同様に、DEC1からコント
ロール信号の“DB PC”としてDP2に出力される
タイミングは、図3に示すタイミング波形21にて示し
ている。このとき、図2で示すところのゲート51が動
作し、内部データバスの最下位ビットのデータである
“DB0”が“0”のとき、即ち偶数を示すとき、図3
の(d)に示すタイミングにてゲート51の出力を得
る。一方、内部データバスの最下位ビットのデータであ
る“DB0”が“1”のとき、即ち奇数を示すとき、図
3の(e)に示すタイミングにてゲート51の出力を得
る。
【0024】入力信号“NEXIR”は、タイミング波
形12に示すタイミングでデコードされ、タイミング波
形31に示すタイミングと同じタイミングにて即座に出
力されるが、そのときゲート52の出力信号によって
は、信号“NEXT”が送出されない。つまり奇数の場
合、入力信号“NEXIR”が無視され、偶数の場合の
み信号“NEXT”という形で有効になる。有効の場
合、タイミング波形31に示すタイミングにて、NE5
はIR3に次の命令の指示とTCU4のカウンタを
“0”にセットし、次のデコードタイミングであるタイ
ミング波形13に示すタイミングからは、次の命令コー
ドの最初のデコードとなる。
【0025】このように、図8と同様にタイミング波形
11に示されるタイミングにて入力信号“DB PC”
をデコードしてから、タイミング波形13に示されるタ
イミングにて次の命令に移ることができるので、従来の
CPUよりプログラム処理が速くなる。また、動作ステ
ップが一つ減るため、マイクロプログラムのサイズを縮
小することができるという効果もある。
【0026】以上の説明は、奇数アドレスへのジャンプ
を検出する場合であるが、禁止された半空間へのジャン
プを検出する方法も、図2に示す構成とほぼ同一の構成
である図4に示す構成で実現できる。図2に示す構成と
図4に示す構成との相違点を以下に示す。NE5は、第
2マルチプレクサに該当するゲート53及び第2選択手
段に該当するゲート54から構成され、ゲート53は上
述したゲート51と同じ構成である。但し、AND回路
53a、53bに供給される信号はゲート51の場合と
異なり、内部データバスの最下位ビットのデータ“DB
0”に換えて、最上位ビットのデータ“DBX”とし、
プログラム・カウンタの最下位ビットのデータ“PC
0”に換えて、最上位ビットのデータ“PCX”とす
る。ゲート54は、NOR回路53cの出力端子が接続
され後述する信号“MODE”が供給されるOR回路5
4aとOR回路54aの出力端子が接続され上述した信
号“NEXIR”が供給されるAND回路54bとから
構成される。
【0027】このように構成することで、これにより入
力信号“DB PC”がHのときは、内部データバスの
最上位ビット“DBX”の反転信号がゲート53より送
出され、入力信号“DB PCバー”がHのときは、プ
ログラム・カウンタの最上位ビットのデータ“PCX”
の反転信号がゲート53より出力される。つまり、ゲー
ト53の出力信号は、ジャンプ先のアドレスの最上位ビ
ットが“1”のときのみLとなる。ゲート54は、ゲー
ト53の出力信号と動作モード信号“MODE”とのど
ちらか一方がHなら、信号“NEXIR”と同じ論理を
信号“NEXT”として送出し、ゲート53の出力信号
と動作モード信号“MODE”との両方がLなら、信号
“NEXT”としてLを送出する。従って、動作モード
信号“MODE”がHならジャンプ先の制限はなく、例
外は発生しない。一方、動作モード信号“MODE”が
Lなら、ジャンプ先のアドレスの最上位ビットのデータ
が“0”なら例外は発生しないが、“1”なら例外が発
生することになる。
【0028】図4の例では、動作モード信号“MOD
E”がLでアドレスの最上位ビット“1”のとき、例外
発生となるが、内部データバスの最上位ビットのデータ
“DBX”とプログラム・カウンタの最上位ビットのデ
ータ“PCX”との代わりに、それぞれの反転信号を入
力すれば、動作モード信号“MODE”がLでアドレス
の最上位ビットのデータが“0”のとき、例外発生とい
う設定をすることもできる。動作モード信号“MOD
E”については、図4においては、動作モード信号“M
ODE”がHのときアドレスの制限のないモードであ
り、動作モード信号“MODE”がLのときアドレスの
制限があるモードということになっている。尚、動作タ
イミングは、図3の説明と同様なので説明は省略する。
【0029】次に、アドレス空間の制限を任意の値との
比較によって行なう場合の例について、図5に示す。第
3マルチプレクサに該当するゲート55及び第3選択手
段に該当するゲート57は図2に示す構成と同じであ
り、ゲート55を構成するNOR回路55cの出力端子
は入力信号“CMPn”が供給される比較器56に接続
され、比較器56の出力端子はゲート57の入力端子に
接続される。尚、上記NOR回路55cはOR回路であ
ってもよい。
【0030】このような構成からなるNE5は以下のよ
うに動作する。入力信号の“DBn”、“PCn”、
“CMPn”は、それぞれ内部データバス、プログラム
・カウンタ、比較値を格納するレジスタ(図示せず)の
任意の1ビットのデータであり、それぞれ第n桁(つま
り、同一桁)のビットのデータである。紙面の都合上、
第n桁のみの構成しか示していないが、必要に応じて複
数桁分を処理するような構成としてもよい。複数桁を処
理する場合には、ゲート55も同数存在する。尚、複数
桁を処理する場合の構成を図6に示す。ゲート55は、
入力信号“DB PC”がHのときは、入力信号“DB
n”を送出し、入力信号“DB PCバー”がHのとき
は、入力信号“PCn”を送出する。比較器56は、ゲ
ート55の出力信号における二値化データとレジスタに
格納されている比較値との比較を行い、その結果をゲー
ト57に送出する。比較器56の比較内容は任意に構成
できる。例えば比較する全ビットのデータの一致を判断
し、一致する場合には出力信号はL、不一致な場合には
出力信号はHとしてもよいし、ゲート55の出力側(ジ
ャンプ先)と比較値との大小関係でもよい。ゲート57
は、図2に示すゲート52と全く同じ動作をするので、
比較器56の出力信号がHの場合には正常なジャンプを
指示し、比較器56の出力信号がLのときに例外発生と
なる。尚、ゲート57を図4に示すゲート54と同じ構
成として、動作モード信号“MODE”を供給するよう
にしてもよい。
【0031】以上説明したように、NE5は以下の効果
を奏する。例えば図2のゲート51のマルチプレクサに
より、プログラム・カウンタに格納されている値だけで
なく、プログラム・カウンタが更新される前の内部デー
タバスに更新値がある時点で、分岐先アドレスの奇数か
偶数かを判定できる。そして、その判定結果を基にして
次の命令に進むコントロール信号である信号“NEX
T”を発生するか否かを判定するのではなく、既にデコ
ードされて発生している信号“NEXIR”をゲート5
1のマルチプレクサの出力信号結果によりイネーブルす
るか否かの判定をする図2に示すゲート52を備えるた
め、その出力信号である信号“NEXT”の発生が、従
来より早い段階で可能となっている。よって、マイクロ
プログラムにおける命令処理等の動作の最終ステップで
ある信号“NEXT”の発生を早い段階に設定可能と
し、これによって、マイクロプログラムの処理速度の向
上とマイクロプログラムのサイズ縮小を図ることができ
る。
【0032】又、NE5は以下の効果を奏する。図4の
ゲート53のマルチプレクサにより、プログラム・カウ
ンタに格納されている値だけでなく、プログラム・カウ
ンタが更新される前の内部データバスに更新値がある時
点で、分岐先アドレスの最上位ビットが“0”か“1”
かを判定できる。これによって禁止された半空間への分
岐の可否が判定できる。そして、その判定結果を基にし
て信号“NEXT”を発生するか否かを判定するのでは
なく、既にデコードされて発生している信号“NEXI
R”を上記ゲート53のマルチプレクサの出力結果によ
りイネーブルするか否かの判定をするゲート54を備え
るため、そのゲート54の出力である信号“NEXT”
の発生が従来より早い段階で可能となる。マイクロプロ
グラムにおける命令処理等の動作の最終ステップである
“NEXT”の発生を、早い段階に設定可能としたこと
で、マイクロプログラムの処理速度の向上とマイクロプ
ログラムのサイズ縮小を図ることができる。
【0033】又、NE5は以下の効果を奏する。図5の
ゲート55のマルチプレクサにより、プログラム・カウ
ンタに格納されている値だけでなく、プログラム・カウ
ンタが更新される前の内部データバスに更新値がある時
点で、分岐先アドレスの一部ビットを検出できる。そし
て、その一部ビットのデータと任意の値を設定されたレ
ジスタの内容との比較を、図5に示す比較器56で行な
う。そして、その判定結果を基にして“NEXT”を発
生するか否かを判定するのではなく、既にデコードされ
て発生している“NEXIR”を、上記ゲート55のマ
ルチプレクサの出力結果によりイネーブルするか否かの
判定をする図5に示すゲート57を備えるため、その出
力信号である“NEXT”の発生が、従来より早い段階
で可能となっている。よって、マイクロプログラムにお
ける命令処理等の動作の最終ステップである“NEX
T”の発生を早い段階に設定可能としたことで、マイク
ロプログラムの処理速度の向上とマイクロプログラムの
サイズ縮小を図ることができる。尚、上述したそれぞれ
の信号“NEXIR”は、マイクロプログラムでは“N
EXT”と同意である。
【0034】
【発明の効果】以上詳述したように本発明によれば、分
岐命令を実行する場合には、モニタ信号のみならずプロ
グラムカウンタ入力信号をも参照し分岐先アドレスの内
容を判断することから、プログラムカウンタ値が更新さ
れる前の、内部データバスに更新値がある時点で分岐先
アドレスの内容を判断することができ、さらに、上記モ
ニタ信号及び上記プログラムカウンタ入力信号に基づく
判断結果によって既にネクストイネーブル手段へ供給さ
れている指示信号を送出するか否かを判断するようにし
たことから、従来よりも早い段階で指示信号の送出を行
うことができる。又、本発明によれば、上述したように
プログラムカウンタ入力信号をも参照し分岐先アドレス
の内容を判断することから、従来に比べ動作ステップが
減少し、よってマイクロプログラムのサイズを縮小する
こともできる。
【図面の簡単な説明】
【図1】 本発明のCPUの一実施例における構成を示
すブロック図である。
【図2】 図1に示すNEの構成を示す回路図である。
【図3】 図2に示すNEの動作を説明するためのタイ
ミングチャートである。
【図4】 図1に示すNEの他の構成を示す回路図であ
る。
【図5】 図1に示すNEの他の構成を示す回路図であ
る。
【図6】 図5に示すNEにおいて複数桁を処理する場
合の構成を示す回路図である。
【図7】 従来のCPUにおける構成を示すブロック図
である。
【図8】 図7に示すCPUの動作を説明するためのタ
イミングチャートである。
【符号の説明】
1…DEC、2…DP、3…IR、4…TCU、5…N
E、51,52,53,54,55,57…ゲート、5
6…比較器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 片山 貴雄 東京都大田区中馬込1丁目3番6号 株式 会社リコー内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 命令コードを格納するインストラクショ
    ンレジスタと、命令の実行ステップのタイミングを制御
    するタイミングコントロールユニットと、データ演算や
    データの一時記憶の動作を含みプログラム・カウンタを
    有するデータパスと、入力側が上記インストラクション
    レジスタ及び上記タイミングコントロールユニットに接
    続され出力側が上記データパス、上記インストラクショ
    ンレジスタ及び上記タイミングコントロールユニットに
    接続され中央演算処理装置の主たる動作制御を行い上記
    データパス、上記インストラクションレジスタ及び上記
    タイミングコントロールユニットへ制御信号を送出する
    デコーダと、を備えた中央演算処理装置であって、 上記デコーダ及び上記データパスの出力側に接続され上
    記デコーダから上記制御信号に含まれる、内部データバ
    スから上記プログラム・カウンタへデータの入力を指示
    するプログラムカウンタ入力信号及び少なくとも通常処
    理中の命令もしくは例外処理の動作を終了し少なくとも
    通常処理の次の命令もしくは例外処理の動作へ移行する
    ことを指示する指示信号が供給され、並びに上記データ
    パスからプログラムカウンタ値の偶数若しくは奇数を示
    すモニタ信号が供給され上記プログラムカウンタ入力信
    号及び上記モニタ信号に基づき上記指示信号の送出を制
    御するネクストイネーブル手段を備えたことを特徴とす
    る中央演算処理装置。
  2. 【請求項2】 奇数アドレスからの命令の読み込みを認
    めていない中央演算処理装置において、上記ネクストイ
    ネーブル手段は、 上記プログラムカウンタ入力信号が有効な場合には上記
    内部データバスの最下位ビットの情報を送出し、上記プ
    ログラムカウンタ入力信号が無効の場合にはプログラム
    ・カウンタ値の最下位ビットの情報を送出する第1マル
    チプレクサと、 上記第1マルチプレクサから供給される第1マルチプレ
    クサ出力信号に基づき上記指示信号の有効もしくは無効
    の選択をする第1選択手段と、を備え、上記指示信号が
    有効の場合には、少なくとも通常処理の次の命令もしく
    は例外処理の動作へ移行し、上記指示信号が無効の場合
    には、例外処理のシーケンスを実行するように構成され
    たマイクロプログラムを実行する、請求項1記載の中央
    演算処理装置。
  3. 【請求項3】 複数の動作状態を持ち、その内の一部の
    動作状態では全アドレス空間のうち上位半分もしくは下
    位半分のアドレスからの命令の読み込みを認めていない
    中央演算処理装置において、上記ネクストイネーブル手
    段は、 上記プログラムカウンタ入力信号が有効な場合には上記
    内部データバスの最上位ビットの情報を送出し、上記プ
    ログラムカウンタ入力信号が無効の場合にはプログラム
    ・カウンタ値の最上位ビットの情報を送出する第2マル
    チプレクサと、 上記第2マルチプレクサから供給される上記第2マルチ
    プレクサ出力信号に基づき上記指示信号の有効もしくは
    無効の選択をする第2選択手段と、を備え、上記指示信
    号が有効の場合には、少なくとも通常処理の次の命令も
    しくは例外処理の動作へ移行し、上記指示信号が無効の
    場合には、例外処理のシーケンスを実行するように構成
    されたマイクロプログラムを実行する、請求項1記載の
    中央演算処理装置。
  4. 【請求項4】 任意の値がセット可能な格納手段を有し
    該格納手段に格納された比較値に基づき例外処理又は通
    常処理を選択する中央演算処理装置において、上記ネク
    ストイネーブル手段は、 上記プログラムカウンタ入力信号が有効な場合には上記
    内部データバスの情報を送出し、上記プログラムカウン
    タ入力信号が無効の場合にはプログラム・カウンタ値の
    情報を送出する第3マルチプレクサと、 上記第3マルチプレクサから供給される上記第3マルチ
    プレクサ出力信号情報と上記格納手段から供給される上
    記比較値の情報との一致の有無を判断し一致信号を送出
    する比較手段と、 上記比較手段から供給される上記一致信号に基づき上記
    指示信号の有効もしくは無効の選択をする第3選択手段
    と、を備え、上記指示信号が有効の場合には、少なくと
    も通常処理の次の命令もしくは例外処理の動作へ移行
    し、上記指示信号が無効の場合には、例外処理のシーケ
    ンスを実行するように構成されたマイクロプログラムを
    実行する、請求項1記載の中央演算処理装置。
JP32381393A 1993-12-22 1993-12-22 中央演算処理装置 Expired - Lifetime JP3462245B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32381393A JP3462245B2 (ja) 1993-12-22 1993-12-22 中央演算処理装置
US08/361,936 US5630158A (en) 1993-12-22 1994-12-22 Central processing unit including inhibited branch area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32381393A JP3462245B2 (ja) 1993-12-22 1993-12-22 中央演算処理装置

Publications (2)

Publication Number Publication Date
JPH07182158A true JPH07182158A (ja) 1995-07-21
JP3462245B2 JP3462245B2 (ja) 2003-11-05

Family

ID=18158893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32381393A Expired - Lifetime JP3462245B2 (ja) 1993-12-22 1993-12-22 中央演算処理装置

Country Status (2)

Country Link
US (1) US5630158A (ja)
JP (1) JP3462245B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003190367A (ja) * 2001-12-21 2003-07-08 Konami Co Ltd 虚像、実映像重畳表示装置及び映像表示制御方法、ならびに映像表示制御用プログラム
JP4146654B2 (ja) * 2002-02-28 2008-09-10 株式会社リコー 画像処理回路、複合画像処理回路、および、画像形成装置
JP3976089B2 (ja) * 2002-08-09 2007-09-12 株式会社リコー 半導体集積回路装置及びその製造方法
JP4296051B2 (ja) * 2003-07-23 2009-07-15 株式会社リコー 半導体集積回路装置
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0670773B2 (ja) * 1984-11-01 1994-09-07 富士通株式会社 先行制御方式
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5424969A (en) * 1992-02-05 1995-06-13 Fujitsu Limited Product-sum operation unit

Also Published As

Publication number Publication date
US5630158A (en) 1997-05-13
JP3462245B2 (ja) 2003-11-05

Similar Documents

Publication Publication Date Title
US4471433A (en) Branch guess type central processing unit
JPS6239780B2 (ja)
EP0125855A2 (en) Buffer-storage control system
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
US5418917A (en) Method and apparatus for controlling conditional branch instructions for a pipeline type data processing apparatus
US6662298B2 (en) Method and apparatus for manipulation of non-general purpose registers for use during computer boot-up procedures
US4661925A (en) Computer control memory apparatus providing variable microinstruction length
US5247624A (en) Microprogram controller including leading microinstruction from a generator executed while succeeding microinstruction from memory is read out
US4674063A (en) Information processing apparatus having a sequence control function
JP3462245B2 (ja) 中央演算処理装置
US5317703A (en) Information processing apparatus using an advanced pipeline control method
US6631464B1 (en) Instruction pipeline with a branch prefetch when the branch is certain
US5276853A (en) Cache system
JP2577023B2 (ja) 情報処理装置のアドレス拡張制御方式
JPS6161412B2 (ja)
JP3097602B2 (ja) データ処理装置
JPS6267649A (ja) キヤツシユメモリ制御装置におけるストア処理方式
JPS58222348A (ja) 情報処理装置
JP3331599B2 (ja) マイクロプログラム制御装置
KR19990061575A (ko) 중앙 처리 유니트의 명령어 길이 축소방법 및 그장치
JPH0810429B2 (ja) マイクロプログラム制御装置
JPH0239812B2 (ja)
JPH0749782A (ja) 情報処理装置
JPH11282787A (ja) 入出力制御装置
JPH0752402B2 (ja) データ処理装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100815

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100815

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 10

EXPY Cancellation because of completion of term