JPH08263290A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH08263290A JPH08263290A JP7060797A JP6079795A JPH08263290A JP H08263290 A JPH08263290 A JP H08263290A JP 7060797 A JP7060797 A JP 7060797A JP 6079795 A JP6079795 A JP 6079795A JP H08263290 A JPH08263290 A JP H08263290A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- data processing
- signal
- control
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
が得られ、しかも処理性能の向上を図ることが可能な技
術を提供する。 【構成】 命令を実行する実行手段を制御する制御手段
と乗算手段を設け、制御手段と乗算手段とが並列動作す
る第1の命令とともに、前記乗算手段が動作する第2の
命令を有し、乗算手段を前記制御手段に内蔵するように
構成する。第1の命令は積和命令であるとともに、第2
の命令は乗算命令になっている。
Description
し、特に、半導体集積回路装置によって構成される高速
かつ小型のシングルチップマイクロコンピュータに利用
して有効な技術に関するものである。
に伴って、半導体単結晶からなるシングルチップに、中
央演算処理装置(Central Processin
g Unit;以下、単にCPUと称する)、プログラ
ムを格納するROM(ReadOnly Memor
y)、書き替え可能に各種データを格納するRAM(R
andom Access Memory)等を含む構
成素子を集積して製造した、小型のシングルチップマイ
クロコンピュータ(以下、単にマイクロコンピュータと
称する)が広範囲に普及してきており、種々の目的のデ
ータ処理装置として使用されてきている。このマイクロ
コンピュータは、CPUが同時に処理し得る情報の量に
よって性能が異なり、例えば4ビット、8ビット、16
ビット、32ビット等のマイクロコンピュータとして区
分されている。
レス空間の拡張や、命令セットの拡大、高速化等が図ら
れてきている。また、CPUは、ソフトウエアによって
その性能が定義されているから、前記のようにアドレス
空間の拡張や、命令セットの拡大、高速化等を図ったマ
イクロコンピュータにおいても、既存のマイクロコンピ
ュータのソフトウエア資産を有効に利用できることが望
ましい。
保ちつつ、アドレス空間の拡張や、命令セットの拡大、
高速化等を実現した例として、例えば本出願人が先に提
案した特開平6−51981号公報、あるいは平成5年
6月(株)日立製作所発行、「H8/300Hシリーズ
プログラミングマニュアル」等がある。
である、いわゆる2ステートで基本命令を実行してい
る。これに対して、1ステートで基本命令を実行するよ
うにし、さらに、CPUとは独立して乗算器を内蔵して
高速化を図った例として、例えば平成4年11月日経B
P社発行、「日経エレクトロニクスNO.568」、P
P99〜PP112、あるいは平成5年3月(株)日立
製作所発行、「SH7032、SH7034 ハードウ
エアマニュアル」等がある。このような乗算器は積和演
算と乗算に利用する。
イクロコンピュータによって制御される各種機器の高速
化や高性能化、あるいは、従来においては複数の半導体
集積回路装置で構成していたものを、結合したりするこ
とにより小型化を図ることができるようになる。
性能化、あるいは小型化は、アドレス空間が比較的小さ
く、命令セットが比較的小さいCPUあるいはマイクロ
コンピュータにおいても要求されるから、前記特開平6
−51981号公報等に記載されるアドレス空間の広い
CPUと、アドレス空間の小さいCPUが存在する場合
には、その双方の高速化を図ることが望ましい。
し、これをベースにして下位CPUへ展開できれば都合
が良い。これによって、開発効率を向上することができ
る。さらに、半導体集積回路装置によって構成されるC
PU自体の他に、クロスアセンブラやCコンパイラ、シ
ミュレータ、リアルタイムOS等の開発ツール等の開発
も共通化して、開発効率を向上することが望ましい。
コンピュータにおいて、乗算器は専用の資源を必要とす
るから、必ずしも積和演算や乗算の高速化を必要としな
い場合には、費用対効果の点で得策でない。また、例え
ば前記平成5年3月(株)日立製作所発行、「SH70
32、SH7034 ハードウエアマニュアル」におい
ては、乗算結果は専用のレジスタ(MAC)に得られる
から、これを利用する場合には、別の命令によってそれ
をCPUの汎用レジスタに転送しなければならない。乗
算器を内蔵して乗算自体を高速化しても、そのように乗
算結果を使用するまでの時間が長くなっては意味がな
い。
ためには、前記のように命令の追加は困難であり、追加
する命令は最小限にしなければならない。また、演算結
果等のフラグも互換性を保持する必要がある。積和演算
についても、演算結果等のフラグを参照できれば使い勝
手が良くなる。フラグの状態を判定して分岐する、いわ
ゆる条件分岐命令などで演算結果を容易に判定し、処理
の内容を変更することができるからである。かかるフラ
グには、オーバフロー(V)、ゼロ(Z)、ネガティブ
(N)などがある。
ズに応じた乗算性能が得られ、しかも処理性能の向上を
図ることが可能な技術を提供することにある。
を内蔵して互換性を維持しつつ処理の高速化を図ること
が可能な技術を提供することにある。
手段から独立して設け、しかも制御手段に乗算機能を備
えさせることにより、製造費用の低減が可能な技術を提
供することにある。
規な特長は、本発明書の記述および添付図面から明らか
になるであろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
実行する実行手段を制御する制御手段と乗算手段を設
け、前記制御手段と乗算手段とが並列動作する第1の命
令とともに、前記乗算手段が動作する第2の命令を有
し、乗算手段は前記制御手段に内蔵されている。また、
第1の命令は積和命令であるとともに、第2の命令は乗
算命令になっている。積和命令のアドレッシングモード
は、いわゆるポストインクリメントレジスタ間接とす
る。乗算手段には結果を判定するフラグ検出手段を設
け、乗算命令時はフラグ検出結果を制御手段に供給し
て、保持させる手段を設ける。
実行する実行手段を制御する制御手段と乗算手段を設
け、前記制御手段と乗算手段とが並列動作する第1の命
令とともに、前記乗算手段が動作する第2の命令を有
し、乗算手段は前記制御手段から独立して設けられてい
る。また、制御手段は乗算機能を備えている。
実行する実行手段を制御する制御手段に指定可能な複数
のレジスタの組み合わせを固定にし、複数のレジスタの
退避/復帰命令を有している。
実行する実行手段を制御する制御手段に搭載されるコン
トロールレジスタの有効/無効を切り換える手段を有
し、コントロールレジスタの有効時には、例外処理の遷
移時、例外処理からの復帰時に、前記コントロールレジ
スタの待避/復帰を行い、前記コントロールレジスタの
無効時には、例外処理の遷移時、例外処理からの復帰時
に、前記コントロールレジスタの待避/復帰を行わな
い。
実行する実行手段を制御する制御手段の搭載される固定
的なスタックレジスタを設け、エミュレーションプログ
ラムへの遷移時、エミュレーションプログラムからの復
帰時に、前記固定的なスタックレジスタ用いて、ユーザ
が使用するスタックポインタを無視あるいは保持するか
を指定する手段を有している。
手段)を内蔵することによって、アドレッシングモード
の増加を最小限にして、かつ処理性能を低下させずに積
和演算を実行可能にすることができる。また、ポストイ
ンクリメントレジスタ間接により、多数のデータの積和
演算を連続して処理することができる。さらに、乗算の
結果(積、フラグ)を直ちに利用できるから、実質的な
乗算の実行速度を向上することができる。
して、乗算器・CPU間の配線を短縮して、物理的規模
を縮小する。また、高速化に寄与することができる。
取外し可能に(独立して)設けることによって、乗算器
を取外した場合は、積和演算をサポートしないことによ
って、容易に下位CPUを実現し、論理的・物理的規模
を縮小し、製造費用を低減した別のマイクロコンピュー
タを容易に開発することができる。また、乗算器を取外
したCPUにおいても、汎用的な乗算命令をサポートす
ることによって、使い勝手の低下を防止できる。さら
に、乗算器使用するか使用しないかの制御信号(有効/
無効)を与えて制御することによって、テスト性を向上
したり、エミュレータを共通化したりすることができ
る。さらにまた、全体的な開発効率を向上することがで
きる。
のシーケンスで実行できる。積和演算はサポートせず、
積和演算の特殊なシーケンスをサポートしないことによ
って論理規模の縮小を更に行うことができる。テスト命
令をサポートすることによって、論理規模の増加を最低
限にして、テストの容易性を向上することができる。
スタの退避/復帰命令を持ち、この組み合せを固定的に
することによって、論理規模の縮小を図ることができ、
また、高速化を図ることができる。レジスタの本数の異
なる命令を複数命令サポートすることによって、使い勝
手の低下を防ぐことができる。
て、入出力タイミングの異なるレジスタ選択回路を複数
持つことにより、レジスタ間演算命令などの基本命令を
実質的に1命令/1ステート実行を行うことができる。
ールレジスタの有効/無効を切り換えることで、スタッ
クの節約と、割込み応答時間の高速化に寄与することが
できる。また、互換性を維持することができる。
ータ専用の固定スタックポインタを持つことにより、エ
ミュレータのサポートを容易にすることができる。ま
た、論理規模の増加を最低限にして、エミュレータの設
計を容易にすることができる。エミュレータ専用スタッ
クポインタの一部のアドレスを、CPU外部から与える
ようにして、スタックレジスタをリロケータブルにし、
マイクロコンピュータのアドレス配置などに容易に対応
することができる。
施例とともに詳細に説明する。
て、同一機能を有するものは同一符号を付け、その繰り
返しの説明は省略する。
の一例であるシングルチップマイクロコンピュータ(以
下、単にマイクロコンピュータと称する)のブロック図
を示す。マイクロコンピュータは、CPU1、乗算器
2、システムコントローラ(SYSC)3、割込コント
ローラ(INT)4、ROM5、RAM6、タイマA
7、タイマB8、シリアルコミュニケーションインタフ
ェース(SCI)9、A/D変換器10、第1乃至第9
入出力ポート(IOP1〜IOP9)11A〜11I、
クロック発振器(CPG)12の機能ブロック乃至はモ
ジュールから構成され、公知の半導体製造技術により1
つの半導体基板上に半導体集積回路装置として形成され
る。CPU1は、乗算器2を内蔵してなる。システムコ
ントローラ(SYSC)3は、システムコントロールレ
ジスタ(SYSCR)13および制御レジスタ(CPU
CR)14を内蔵している。
として、グランドレベル(Vss)、電源電圧レベル
(Vcc)、その他専用制御端子として、リセット(R
ES)、スタンバイ(STBY)、モード制御(MD0
〜2)、クロック入力(EXTAL、XTAL)端子を
有する。クロック入力(EXTAL、XTAL)端子に
接続される、図示はされない水晶振動子に基づいて、ク
ロック発振器が生成するシステムクロック(φ1、φ
2)に同期して、マイクロコンピュータは動作する。或
は外部クロックをEXTAL端子に入力してもよい。シ
ステムクロックの1周期を1ステートと呼ぶ。
て相互に接続される。内部バスは内部アドレスバス(P
AB)・内部データバス(PDB)の他、リード信号・
ライト信号を含み、さらにバスサイズ信号或いはシステ
ムクロック(φ1、φ2)などを含む。
路の入出力信号と兼用とされている。これらは、動作モ
ードあるいはソフトウエアの設定により、機能を選択さ
れて、使用される。IOP1〜3はアドレスバス出力、
IOP4、5はデータバス入出力、IOP6はバス制御
信号入出力信号と兼用されている。外部アドレスは、そ
れぞれ、これらの入出力ポートに含まれるバッファ回路
を介して内部アドレスバスと接続されている。
ス幅とし、バイトサイズ(8ビット)およびワードサイ
ズ(16ビット)のリード/ライトを可能にする。な
お、内部バスおよび外部バスのいずれも8ビット幅とす
ることもできる。バス制御信号入出力信号には、アドレ
スストローブ信号AS、リード信号RD、ライト信号H
WR・LWR、ウェイト信号WAIT、エリア0選択信
号CS0などがある。割込信号は、タイマ・SCI・I
OP8から要求され、割込コントローラ(INT)が調
停して、CPUに割込を要求する。このとき、CPUに
対し、割込要求信号とベクタ番号を与える。
と、モード端子(MD0〜2)で与えられる動作モード
を取り込み、マイクロコンピュータはリセット状態にな
る。モード端子で設定する動作モードは、シングルチッ
プ/拡張、アドレス空間、内蔵ROMの有効/無効、デ
ータバス幅の初期値を8ビットまたは16ビットから選
択する。
(SYSCR)3の構成を示す。各ビットの内容を表1
乃至表4に示す。
である。
す。本実施例に用いられるCPU1の命令は合計で71
種類ある。表6に命令とアドレッシングモードとの組合
せを示す。表7に以下の各表に使用される記号(オペレ
ーションの記号)の意味を示す。表8乃至表15に各命
令の機能別一覧表を示す。
作所発行『H8/300Hシリーズプログラミングマニ
ュアル』などに記載のCPUと同様であり、いわゆる、
ロードストアアーキテクチャを採用している。命令とア
ドレッシングモードの組み合わせを削減し、CPUの命
令制御の論理規模・物理的規模を縮小できる。
て命令実行時間の高速化を実現している。
位にしている。各命令は下記のようなオペレーションフ
ィールド(op)、レジスタフィールド(r)、EA拡
張部(EA)、およびコンディションフィールド(c
c)から構成されている。
ランドの処理内容を指定する。命令の先頭4ビットを必
ず含んでいる。2つのオペレーションフィールドを持つ
場合もある。
ット、データレジスタのとき3ビットまたは4ビットで
ある。2つのレジスタフィールドを持つ場合、またはレ
ジスタフィールドを持たない場合もある。
ースメントを指定する。8ビット、16ビット、または
32ビットである。
す。
CPU1に対し乗算器2を取外し可能に設けた概略ブロ
ック図を示す。命令レジスタ(IR)21、命令デコー
ダ・制御回路(CONT)22、レジスタセレクタ(R
SEL)23、ライトデータバッファ(DBW)24、
リードデータバッファ(DBR)25、演算器(AL
U)26、演算器(INC)27、汎用レジスタ(ER
0〜ER7)28A〜28H、エミュレータスタックポ
インタ(EMLSP)29、プログラムカウンタ(P
C)30、コンディションコードレジスタ(CCR)3
1、拡張レジスタ(EXR)32、アドレスバッファ
(MAB)33からなる。乗算器2なしのCPU1はこ
れらによって構成される。各バッファやレジスタ、演算
器の各ブロックの機能は、特開平5−241826号公
報に記載のCPUと概略同様である。また、乗算器2を
含むCPU1は、更に、バススイッチ34、乗算器2が
ある。
には、制御信号CPUS、制御信号INTM1、そのほ
かの制御信号(割り込み要求など)が入力されている。
CONT22は各部を制御するための、出力タイミング
の相違する制御信号A、B、Cを出力する。
の同期タイミングを示す。例えば、RSEL入力1のC
1はφに同期して入力が行われることを示し、RSEL
入力2のC2はφ#(#は論理反転)に同期して入力が
行われることを示す。また、ALU入力のC1は、φの
期間に入力が行われることを示し、ALU出力のC2
は、φ#の期間に出力が行われることを示す。ALU2
6とINC27は、それぞれ動作タイミングの異なった
演算器であり、それぞれ、オーバラップしつつ演算可能
である。
方でデータを入出力可能である。GB、DB、WBの各
バスはφ、φ#の両方で異なったデータを転送可能であ
る。
の2相クロックとしてもよい。
IR21乃至CONT22から命令コードの一部(レジ
スタ指定フィールド)が与えられる。この供給タイミン
グは、レジスタ指定フィールドの位置によって相違され
る。RSEL23は出力タイミングの相違するレジスタ
選択信号A、Bを出力する。
行『H8/300Hシリーズプログラミングマニュア
ル』に記載のCPUにおいては、16ビット単位の命令
コードのビット7−4が、CONT22と同時に与えら
れ(RSEL入力1)、ビット11−8および3−0
(RSEL入力2)が、CONT22の内容と0.5ス
テート遅れて与えられる。RSEL入力2の反転制御信
号をRSELに与える。
ALU26、INC27、ER0〜ER7(28A〜2
8H)、PC30、CCR31、VAG、ABは、GB
バス、DBバス、WBバスによって相互に接続されてい
る。
し、GB、DBバスからデータを入力し、WBバスにデ
ータを出力する。それぞれの入出力バスの数に対応した
数の内部バスとして、バス即ち配線の増加による物理的
規模の増加を抑止している。
4は内部データバスへの出力、リードデータバッファ
(DBR)25は内部データバスからの入力、アドレス
バッファ(MAB)33は内部アドレスバスへの出力、
命令レジスタは内部データバスからの入力が可能であ
り、それぞれ内部バスに接続されている。ライトデータ
バッファ(DBW)24およびリードデータバッファ
(DBR)25は32ビット構成とされる。ライトデー
タは32ビット一括してライトデータバッファ(DB
W)24に書き込むことができ、所定のタイミングで、
16ビットの内部データバスに出力される。また、内部
データバスから読み出したデータを、リードデータバッ
ファ(DBR)25に一旦格納して、32ビットのリー
ドデータを一括して出力することができる。MABは+
2のインクリメント機能を有する。
が、IR21からの入力、CPUS信号、INTM1信
号やそのほかの入力信号に基づいて、動作制御を行な
う。制御回路の出力は所定のバッファを介して出力され
る。CONT22自身にも、ステート番号などがフィー
ドバックされる。
リメント機能(+2)を有する。ER0〜ER7(28
A〜28Hは)データレジスタまたはアドレスレジスタ
として使用することができる。
いないリソースで、エミュレータに搭載されて動作する
とき、ユーザプログラムとエミュレーションプログラム
の間の遷移時のスタックポインタとして使用する。その
内容を指定するために、一部の内容が、CPU外部から
与えられる。
CPU1が次に実行する命令のアドレスを示している。
コンデションコードレジスタ(CCR)31は割り込み
マスクビット(I)、キャリフラグ(C)、ゼロフラグ
(Z)、ネガティブフラグ(N)、オーバフローフラグ
(V)を含んでいる。
を介して接続されている。また、バススイッチ34は内
部データバスとのインタフェースも行う。また、CPU
1から乗算器2への制御信号を与える。乗算器2のステ
ータス信号BUSYと、フラグ検出信号をCPU1に与
える。TESTMODE信号を、例えば、SYSC3か
ら与える。制御信号CPUSは、SYSCR14あるい
はそのほかのレジスタの制御ビットの出力にしてもよい
し、マイクロコンピュータの制御端子のようなもので指
定してもよい。
(CPUCR)14の制御ビットで構成した具体的な例
を示す。図は1ビットの構成を示している。CPUCR
14は、フリップフロップで構成される。フリップフロ
ップにはリセット信号が与えられる。フリップフロップ
のクロックは内部ライト信号と、アドレスをデコードし
て得られるCPUCR選択信号の論理積信号とされる。
データ入力はデータバスのビット8とされる。出力がC
PUS信号とされる。また、クロックトバッファCBF
6を介して、データバスに出力される。クロックトバッ
ファCBF6のクロックは内部ライト信号とCPUCR
選択信号の論理積信号とされる。
エミュレータに搭載した場合のブレークモードなどでの
みライト可能にするとよい。ブレークモードなどについ
ては、特開平6−150026などに記載されている。
同様に、TESTMODE信号を生成することができ
る。同一のレジスタに配置することができる。
例として、エミュレーション用プロセッサおよびエミュ
レータをブロック図で示す。エミュレーション用プロセ
ッサ38は、マイクロコンピュータ部分にエミュレーシ
ョン用インタフェース39を加えて構成される。エミュ
レーション用インタフェース39には、エミュレーショ
ン用プロセッサ専用の制御レジスタ41を有する。メモ
リ42は、ROM、RAMを含み、I/OはI/Oポー
ト、タイマ、SCIなどを含む。
りに応用システム(ユーザシステム)43に装着され
る。エミュレーション用プロセッサ38は上記コネクタ
部とインタフェースケーブル44を介し、ターゲットシ
ステムインタフェースを用いて上記応用システム43と
信号の入出力を行う。
は、特に制限はされないものの、ユーザバス45が存在
し、ユーザメモリ46が接続される。エミュレーション
用プロセッサ38が出力し、インタフェースケーブル4
4を介して供給されるユーザストローブ信号に従って、
ユーザメモリ46はリード/ライトされる。
は上記エミュレーションインタフェース39を用いてエ
ミュレーションバス47に接続される。エミュレーショ
ンバス47には図示はされない状態信号・制御信号など
を含む。上記エミュレーションバス47を用いて、エミ
ュレーション用プロセッサ38から、応用システム43
とエミュレーション用プロセッサ38の内部状態に応じ
た情報などが出力され、また、エミュレーション用プロ
セッサ38に対し、エミュレーションのための各種制御
信号が入力される。エミュレーション用プロセッサ38
の、図示はされないエミュレートモード端子が電源レベ
ルに固定され、エミュレーション用プロセッサ38内部
ではエミュレートモードが設定される。
は、特に制限はされないものの、応用システム43また
はターゲットマイクロコンピュータ内蔵のメモリを代行
するためのRAMでなるようなエミュレーションメモリ
48がある。また、エミュレーション用プロセッサ38
の制御状態やエミュレーションバス47の状態を監視し
て、その状態が予め設定された状態に達した時に、上記
エミュレータ専用割込みを入力して、CPUによるユー
ザプログラムの実行を停止させ、エミュレーション用プ
ログラム実行状態に遷移させる(ブレーク)ためのブレ
ーク制御回路49と、上記CPUのリード動作またはラ
イト動作を示す信号、命令リード動作を示す信号などに
基づき、エミュレーションバス47に与えられるアドレ
スデータさらには制御情報を逐次蓄えるリアルタイムト
レース回路50などが接続される。
レーションメモリ48、ブレーク制御回路49、リアル
タイムトレース回路50などに、それぞれ接続される。
これらでもってマイクロコンピュータ開発装置55が構
成されている。
ク制御回路49、リアルタイムトレース回路50はコン
トロールバス51に接続され、コントロールバス51を
介してコントロールプロセッサ52の制御を受けるよう
になっている。上記コントロールバス51は、エミュレ
ーション用プロセッサ制御回路に接続されるとともに、
インタフェース回路を介して、特に制限はされないもの
のパーソナルコンピュータなどのシステム開発装置54
に接続される。例えば、システム開発装置54から入力
されたプログラムをエミュレーションメモリ48に転送
し、内蔵ROM上に配置されるべきかかるプログラムを
CPU1がリードすると、エミュレーションメモリ48
上のプログラムがリードされる。また、ブレーク条件
や、リアルタイムトレース条件などもシステム開発装置
54から与えることができる。
信号をエミュレーション用プロセッサ38に供給して、
乗算器の使用/不使用の選択を行うことができる。コン
トロールプロセッサ52は、システム開発装置54から
入力された情報などに基づいて、CPUS信号を制御す
る。あるいは、図5のような制御レジスタを、エミュレ
ーション用インタフェース39内に制御レジスタに設け
て、エミュレータ40のソフトウェアをCPUが実行し
て、前記制御レジスタを指定することによって、CPU
S信号を生成するようにすることができる。この場合
は、エミュレーション用ソフトウェアの実行モード、い
わゆるブレークモードでのみライト可能にすると都合が
よい。開発途上にあるユーザのソフトウェアの誤動作に
よって、誤った設定を行うことがない。
エミュレータ40を複数のCPUをサポート可能にする
ことによって、実際のマイクロコンピュータのみを開発
すればよく、開発効率を向上することができる。なお、
EMLSP29のアドレス指定情報も、エミュレーショ
ン用インタフェース39内の制御レジスタで指定するこ
とができる。
ュレータ40については、特開平3−271834号公
報、あるいは特開平6−150026号公報などに記載
されている。
である、マイクロコンピュータの主要部をブロック図で
示す。CPUS信号をレジスタによらず、CMOSイン
バータ回路58の出力とする。かかるCMOSインバー
タ回路58は、Pチャネル型MOSトランジスタQ1、
Nチャネル型MOSトランジスタQ2で構成される。こ
のCMOSインバータ回路58の入力は、抵抗Rを介し
て電源Vddに接続されると共に、保護回路Q3、Q4
を介して端子Pに結合される。端子Pは、ワイヤWによ
ってグランドレベル電源用リードLに接続されるか、解
放状態とされるかが選択され、CPUSの設定を行な
う。
ンバータ回路58の入力はハイレベルとなって、CPU
S信号は非活性状態になる。一方、端子Pが、ワイヤW
によって、グランドレベル電源用リードLに接続されれ
ば、CMOSインバータ回路58の入力はロウレベルと
なって、CPUS信号は活性状態になる。乗算器を使用
可能にする。
プラスティックパッケージに封止された場合には、対応
する端子を持たない。
ージの端子を直接利用することなく、乗算器の制御を設
定できるため、一定のパッケージを用いた場合に、有効
な端子数の減少防ぐことができる。この場合、端子Pを
グランドレベル電源端子に隣接して配置すると都合がよ
い。
リードLにワイヤWによって接続するか、しないかの選
択を、半導体集積回路装置の配線変更として実現しても
よい。CMOSインバータ回路58の入力を、半導体集
積回路装置内部の電源電圧またはグランドのいずれに接
続するかを選択すればよい。このとき、抵抗R及び端子
Pは削除することができる。または、CPUSビットを
PROM素子などで構成してもよい。この場合、製造者
が設定を行なってもよいし、ユーザが設定を行なっても
よい。
構成を示す。これらのレジスタは、図8の汎用レジスタ
および図9のコントロールレジスタの2つに分割され
る。以下、各レジスタについて説明する。
レジスタは32ビット長からなり、すべて同じ機能を有
しており、アドレスレジスタとしてもデータレジスタと
しても使用することができる。データレジスタとしては
32ビット、16ビットおよび8ビットレジスタとして
使用できる。
としては、一括して汎用レジスタER(ER0〜ER
7)として使用する。16ビットレジスタとしては、汎
用レジスタERを分割して汎用レジスタE(E0〜E
7)、汎用レジスタR(R0〜R7)として使用する。
これらは同等の機能を有しており、16ビットレジスタ
を最大16本まで使用することができる。
Rを分割して汎用レジスタRH(R0H〜R7H)、汎
用レジスタRL(R0L〜R7L)として使用する。こ
れらは同等の機能を有しており、8ビットレジスタを最
大16本まで使用することができる。
す。各レジスタは独立して使用方法を選択することがで
きる。
しての機能に加えて、スタックポインタ(SP)として
の機能が割り当てられており、例外処理やサブルーチン
分岐などで暗黙的に使用される。図11にスタックの状
態を示す。
ンタ(PC)と8ビットの拡張レジスタ(エクステンド
レジスタ)(EXR)および8ビットのコンディション
コードレジスタ(CCR)を含んでいる。
アドレスを示している。CPUの命令は、すべて2バイ
ト(ワード)を単位としているため、最下位ビットは無
効である。(命令コードのリード時には最下位ビット
は”0”とみなされる)。
無視される。プログラム領域として使用できるのは、
H’00000000〜H’00FFFFFFの領域で
ある。
マスクビット(I2〜I0)を含む8ビットで構成され
ている。
クリアされているときは命令を順次実行する。”1”に
セットされているときは1命令実行する毎にトレース例
外処理を実行する。
〜I0) 割込み要求マスクレベル(0〜7)を指定する。
RC、XORC命令で実行することができる。このう
ち、STCを除く命令を実行した場合、実行終了後3ス
テートの間は、NMIを含めてすべての割込みは受け付
けられない。
R) 8ビットのレジスタで、CPUの内部状態を示す。割込
みマスクビット(I)とハーフキャリ(H)、ネガティ
ブ(N)、ゼロ(Z)、オーバフロー(V)、キャリ
(C)を含む8ビットで構成されている。
れる。ただし、NMIはIビットに関係なく受け付けら
れる。例外処理の実行が開始されたときに”1”にセッ
トされる。
ット(UI) ソフトウエア(LDC、STC、ANDC、ORC、Z
ORC命令)でリード/ライトできる。割込みマスクビ
ットとしても使用可能である。
B、CMP.B、NEG.B命令の実行により、ビット
3にキャリまたはボローが生じたとき”1”にセットさ
れ、生じなかったとき”0”にクリアされる。また、A
DD.W、SUB.W、CMP.W、NEG.W命令の
実行により、ビット11にキャリまたはボローが生じた
とき、ADD.L、SUB.L、CMP.L、NEG.
L命令の実行により、ビット27にキャリまたはボロー
が生じたとき、”1”にセットされ、生じなかったと
き”0”にクリアされる。
ORC命令)でリート/ライトできる。
ットの値を格納する。
き”0”にクリアされる。
にセットされる。それ以外のとき”0”にクリアされ
る。
され、生じなかったとき”0”にクリアされる。キャリ
には次の種類がある。
があり、ビット操作命令で使用される。なお、命令によ
ってはフラグが変化しない場合がある。CCRは、LD
C、STC、ANDC、ORC、XORC命令で操作す
ることができる。また、N、Z、V、Cの各フラグは、
条件分岐命令(Bcc)で使用される。
る。32ビットのMACH、MACLから構成される。
MACHは下位10ビットが有効であり、上位は符号拡
張されている。
示す。
間演算のタイミングである。特に制限はされないもの
の、内部データバスは16ビットであって、内蔵RO
M、RAMのリード/ライトを1ステートでリード/ラ
イト可能とする。
す)で、CPU1のアドレスバッファ(MAB)33か
らアドレスがIABに出力される。
PABに出力され、リードサイクルが開始される。C2
でリードデータが内部データバスに得られ、これをIR
21にラッチする。以上の動作は以前の命令の実行の制
御によって行われる。
命令の実行が開始される場合には、T2のC1で命令コ
ードがCONT22に入力されて、命令の内容が解読さ
れる。解読結果に従って、制御信号を出力して、各部の
制御を行う。命令の一部(レジスタ指定フィールド:R
SEL入力信号1)がレジスタセレクタ23に与えられ
る。
PCの内容を内部バスGBに読み出して、MAB33と
INC27に入力する。MAB33からアドレスIAB
が出力される。レジスタセレクタ23に制御信号を与え
る。RSEL入力信号1と制御信号A(Rs−DB出
力、Rd−GB出力)とに基づいて、レジスタ選択信号
Bが生成される。RSEL入力信号2がレジスタセレク
タ23に与えられる。
T3のC1で、INC27でインクリメント(+2)さ
れた結果が、内部バスWBを経由して、PC30にライ
トされる。RSEL入力信号2と制御信号B(WB−R
d入力)とに基づいて、レジスタ選択信号Cが生成され
る。レジスタ選択信号Bがレジスタを選択して、ソース
側、デスティネーション側のレジスタ(S、D)のデー
タをALU26に入力する。ALU26の演算内容はC
ONT22が制御信号Cによって指示する。加減算・論
理演算・シフトなどは1クロックで演算を行うことがで
きる。例えば、上記命令では16ビットの加算を行う。
次の命令のCONT22へのロードを指示する。RSE
L入力信号2と制御信号B(WB−Rd入力)とに基づ
いて、レジスタ選択信号Cが生成される。
(R)が、内部バスWBを経由して、レジスタ選択信号
Cが選択したデスティネーション側のレジスタにライト
される。制御信号Cによって、CCR31の更新を行
う。更に次の次の命令をIR21に取り込む。同時に、
次の命令の実行が開始され、例えば、PC30の内容を
読み出して、MAB33とINC27に入力される。レ
ジスタ間演算を実質的に1ステートで実行できる。2つ
の演算器26、27の入出力バスの数に対応した数の内
部バスとして(演算器に対応して、内部バスを増加させ
ることなく)、バス即ち配線の増加による物理的規模の
増加を抑止している。
示す。
スタ間接によるデータライトのタイミングである。
アドレスがIABに出力される。
れ、リードサイクルが開始される。C2でリードデータ
が内部データバスに得られ、これをIR21にラッチす
る。
1で命令コードがCONT22に入力されて、命令の内
容が解読され、各部の制御を行う。命令の一部のレジス
タ指定フィールド(RSEL入力信号1)がレジスタセ
レクタ23に与えられる。レジスタ間接によるデータラ
イトでは、制御信号AとRSEL入力信号1とに基づい
て、レジスタ選択信号Aが与えられ、アドレスとして指
定されたレジスタが選択される。
(A)を内部バスGBに読み出して、MAB33を経由
してアドレスIABに出力される。RSEL入力信号2
がレジスタセレクタ23に与えられる。RSEL入力信
号2と制御信号B(Rd−DB出力)とに基づいて、レ
ジスタ選択信号Bが生成される。
T22に入力され、状態遷移が行われる(ステートマシ
ンが構成される)。IABの内容に基づいて、ライトサ
イクルが開始される。選択されたレジスタの内容(D)
を内部バスDBに読み出して、データバッファ(DB
W)を経由して内部データバスに出力される。
GBに読み出して、MAB33とINC27に入力す
る。MAB33からアドレスIABが出力される。RS
EL入力信号1と制御信号A(Rd−GB出力)とに基
づいて、レジスタ選択信号Bが生成される。
ト(+2)された結果が、内部バスWBを経由して、P
C30にライトされる。レジスタ選択信号Bがレジスタ
を選択して、データレジスタ(D)のデータをALU2
6に入力する。ALU26の演算内容はCONT22が
制御信号Cによって指示する。転送の場合はデータのチ
ェックのみを行う。次の命令のCONT22へのロード
を指示する。
ックした結果によって、CCR31の更新を行う。更に
次の次の命令をIR21に取り込む。同時に、次の命令
の実行が開始され、例えば、PC30の内容を読み出し
て、MAB33とINC27に入力される。
L入力1(アドレスレジスタ、ソースレジスタ)とRS
EL入力2(データレジスタ、ディスティネーションレ
ジスタ)のように、レジスタ指定フィールド毎にことな
ったタイミング(φ同期とφ#同期)とすることによ
り、命令実行の高速化を実現することができる。
命令の説明を示す。
の実行状態を示し、表19はコンディションコードの変
化を示している。表17はレジスタフィールドと汎用レ
ジスタの対応を示している。
タをクリアするCLRMAC命令、汎用レジスタの内容
をMACレジスタに転送するLDMAC命令、MACレ
ジスタの内容を汎用レジスタに転送するSTMAC命令
がある。
は、1本のレジスタの待避/復帰命令に、PUSH、P
OP命令が、複数レジスタの待避/復帰命令にSTM/
LDM命令がある。STM/LDM命令には、指定する
レジスタ本数に対応して3種類がある。
す。
ラッチ(Y)62、部分積生成回路63、マツチプレク
サ64、デコーダ65A、65B、65C、選択回路6
6A、66B、66C、加算器67、フィードバック回
路68、乗算結果レジスタ69などによって構成されて
いる。
ことを基本動作とし、さらに、これを利用して、16×
16ビット+42ビットの積和演算を可能としている。
ードを用いて、16ビット×6ビットを3回行うように
される。
・2^15+Σ(y[i]・2^(i−1))=Σ(y
[2j]+y[2j+1]−2・y[2j+2])・2
^2jと表現される。i=1〜15、j=0〜7、y
[0]=0である。
j]+y[2j+1]−2・y[2j+2])・X・2
^2jとなる。y[2j]+y[2j+1]−2・y
[2j+2]は、y[2j]、y[2j+1]、y[2
j+2]の値の組み合わせにより、0、±1、±2の5
種類があるから、部分積(y[2j]+y[2j+1]
−2・y[2j+2])・Xは、0、±X、±2Xの5
種類である。この内、0、Xは直ちに得られる。2X
は、1ビットの左シフト(最下位ビットは0)、−Xは
2の補数であり、論理反転+1で得られる。−2Xは、
論理反転+1の1ビットの左シフト(最下位ビットは
0)で得る。
類の部分積(17ビット)を生成しておく。この5種類
を部分積選択回路66A〜66Cに与える。
1]、y[2j+2]をデコードして、0、±1、±2
を判定して、この結果によって、部分積選択回路66A
〜66Cを制御して、前記5種類の部分積を選択する。
1回に2ビット単位3種類の選択を行う。これを加算器
67で加算する。加算は、2ビットずつシフトしたそれ
ぞれ17ビットの部分積を加算して、22ビット分の結
果を得る。不足する上位ビットは符号拡張したデータと
する。
タ69のビット0〜5に格納される。上位16ビットは
フィードバック回路68を介して、2回めの加算に含め
られる。2回目の処理では、前記同様に得られた部分積
選択回路66A〜66Cの出力である、2ビットずつシ
フトしたそれぞれ17ビットの部分積と、1回めの処理
の上位16ビットを加算する。22ビット分の結果を得
る。不足する上位ビットは符号拡張したデータとする。
この内、下位6ビットは、乗算結果レジスタ69のビッ
ト11〜6に格納される。上位16ビットはフィードバ
ック回路68を介して、2回めの加算に含められる。
下位20ビットが乗算結果レジスタ69のビット31〜
12に格納される。加算結果の最上位2ビットは無視す
る。
算されるようにする。
の加算を行って、42ビットの結果を得る。16ビット
×16ビットの積和の結果を42ビットで得ることによ
り、約1000回の積和演算を繰り返してもオーバフロ
ーしないことになる。
すれば、加算器が22ビット長でよく、論理的規模を最
適化できる。
ビット×16ビット)の演算方法を示す。
は、上位を拡張する。符号無しの場合0拡張、符号付き
の場合符号拡張を行う。いずれの場合も、上位は全ビッ
ト”0”か全ビット”1”かのいずれかであって、ブー
スのデコードは0になる。このため、3回目の処理は行
わずに、2回の処理で済む。
乗算を示す信号として、MUL信号(制御信号B)、符
号付き/無しを示す信号としてUNSINP信号(制御
信号B)、バイト/ワードサイズを示す信号として、B
YTE信号(制御信号B)、積和演算の起動信号とし
て、MAC信号(制御信号B)、MACHからCPUへ
のデータ転送要求信号として、STMACH信号(制御
信号C)、MACLからCPUへのデータ転送要求信号
として、STMACL信号(制御信号C)、CPUから
MACHへのデータ転送要求信号として、LDMACH
信号(制御信号B)、CPUからMACLへのデータ転
送要求信号として、LDMACL信号(制御信号B)、
MACレジスタのクリア信号として、CLRMAC信号
(制御信号B)、乗数の転送信号として、STX信号
(制御信号B)、被乗数の転送信号として、STY信号
(制御信号B)、乗算結果の転送信号として、MULR
D信号(制御信号C)を与える。
中を示す信号として、BUSY信号、フラグに反映すべ
きデータとして、VFLAG、ZFLAG、NFLAG
信号が与えられる。
ス、Yバスを使用する。
を示す信号として、FIXED信号が与えられる。ま
た、テストモード信号として、TESTMODE信号が
与えられる。TESTMODE信号が活性状態になっ
て、テストモードが指示されると、乗算器は1回の処理
のみで動作を終了するようにする。
令実行ステートも短縮できる。入力データの組み合わせ
を種々変更してテストする場合に、テスト時間を短縮で
きる。加算を1回しか行わないので、テスト設計を容易
にすることができる。3回の処理を行って、加算結果が
蓄積されて、所望の動作のテストの結果を演算結果とし
て得にくくなることがない。
ても、CPU乃至乗算器のテストを行うことができるこ
とは言うまでもない。TESTMODE信号は、前記の
CPUSのようにレジスタの出力として供給することが
できる。
式およびCPU1への転送方式を示す。
フラグおよびNフラグ、Zフラグから構成されてい
る。
ンダフローが発生したときである。
C命令を実行したときである。
実行時に行われる。
でもオーバフローまたはアンダフローが発生すると、乗
算器のVフラグはセットされた状態を保持する。LDM
ACまたはCLRMAC命令を実行して、新しい一連の
積和演算の開始が判断されると、乗算器のVフラグはク
リアされる。
を別々に設けて出力する。
L)命令の場合、乗算結果の転送時、MAC命令の場合
STMAC実行時に行われる。
/CLRMACによって変化しない。
し、図17にNフラグ、Zフラグ仕様の実現の概念図を
示す。
ロップ(RS−F/F)で構成され、一旦、オーバフロ
ーまたはアンダフローが発生すると、STMACにより
読み出すまで状態を保持する。
とマルチプレクサ(MPX)で構成される。MAC命令
実行時の演算結果はラッチ回路に保持され、マルチプレ
クサに与えられる。また、乗算命令実行時の演算結果
は、直接マルチプレクサに与えられる。マルチプレクサ
はSTMAC命令のときラッチ回路の出力を出力し、そ
れ以外のとき演算結果を直接出力する。
する。MAC命令のフラグを随時CCRに反映しては、
並列実行中の命令のフラグ動作と矛盾してしまう。MA
C命令のフラグを乗算器内部で保持して、STMAC命
令実行時にCCRに転送するようにして、上記矛盾を回
避することができる。
を示す。
1B、拡張回路72A、72B、72C、出力バッファ
73A、73B、73C、73Dから構成される。バス
スイッチは、CPU内部バスのGB、DB、WBと、乗
算器のXバス、Yバスと、マイクロコンピュータの内部
バスであるIDBのインタフェースを行う。
は、GB、DBからXバス、Yバスに入力される。G
B、DBの入力は、選択回路71A、71Bで選択され
る。これは汎用レジスタ及び内部バスが32ビット構成
であるために、乗数、被乗数が8ビットまたは16ビッ
トであるために、CONT22の制御信号A及びレジス
タ制御信号Aに基づいて、所定の部分が選択される。
路72A、72Bに入力される。CONT22の制御信
号Aに基づいて、符号無しバイトサイズ乗算(MULX
U.B)の場合、上位8ビットを0拡張する。また、符
号付きバイトサイズ乗算(MULXS.B)の場合、上
位8ビットを符号拡張する。ワードサイズの場合は、選
択回路71A、71Bの出力をそのまま出力する。
ファ73B、73Cに入力される。CONT22の制御
信号Aに基づいて、所定のタイミングで、拡張回路72
A、72Bの出力をXバスまたはYバスに出力する。
は、Xバス、YバスからWBへの出力が行われる。Xバ
ス、Yバスの入力は拡張回路72Cに入力される。これ
は、MACHの上位22ビットを符号拡張する。拡張回
路72Cの出力は出力バッファに入力される。CONT
22の制御信号Cに基づいて、所定のタイミングで、拡
張回路72Cの出力をWBに出力する。
Xバス、Yバスへの入力が、それぞれ1回ずつ行われ
る。CONT22の制御信号Aに基づいて、所定のタイ
ミングで、IDBの内容はをXバスまたはYバスに出力
する。また、IDBは、DBWからの出力を入力可能と
され、DBR及びIRへデータを入力可能とされる。
ングを示す。
命令などの例である。この場合のER1を第1のアドレ
スレジスタ、ER2を第2のアドレスレジスタとする。
前記同様に、T2からMAC命令の実行が開始される。
い、PC30の内容をアドレスとした命令のリードを行
い、また、PC30の内容のインクリメントを行う。
いて、第1のアドレスの内容をGBに読み出して、MA
B33に転送し、IABに出力する。
に読み出して、ALU26に入力し、インクリメントを
行う。
B経由で、第1のアドレスレジスタに格納する。バスス
イッチ34に入力した、第1のリードデータをXバスに
出力すると共に、制御信号Bに含まれるSTX信号を活
性状態にし、乗算器2にこの内容を入力ラッチXにラッ
チさせる。同時に、第2のアドレスの内容をGBに読み
出して、MABに転送し、IABに出力する。
に読み出して、ALU26に入力し、インクリメントを
行う。T5のφ#で、インクリメント結果を、WB経由
で、第2のアドレスレジスタに格納する。バススイッチ
34に入力した、第2のリードデータをYバスに出力す
ると共に、制御信号Bに含まれるSTY信号を活性状態
にし、乗算器2にこの内容を入力ラッチYにラッチさせ
る。MAC信号を活性状態にして、積和演算動作の開始
を指示する。同時に、PC30の内容をアドレスとした
命令のリードを行い、また、PC30の内容のインクリ
メントを行う。
0に格納する。一方、BUSY信号が活性状態になる。
MAC命令では、CPU1は乗算器2とは並列に動作
し、BUSY信号を無視して、次の命令の実行を開始す
る。
のMAC命令がアドレス計算を行っている間に、乗算器
の動作が終了するために、MAC命令実行にウェイトを
挿入することはない。
とすることにより、特開平−51981号公報に記載さ
れているように、互換性を保持しつつ命令セットを拡張
することができる。また、乗算器動作中に、次の積和演
算を行った場合、命令フェッチとデータのアクセスを行
うことができるから、命令長が長くなっても実行時間を
低下させることがない。積和演算を連続的に高速に実行
することができる。
13のMACSビットを参照して、オーバフローが発生
していれば、MACレジスタの内容を、上限(H’7F
FFFFFF)または下限(H’80000000)に
固定する。
命令の動作タイミングを示す。
令などの例である。前記同様に、T2からSTMAC命
令の実行が開始される。
する。BUSY信号が活性状態であれば、ウェイト状態
になる。
れ、MAB33に入力されて、IABに出力される。ま
た、INC27に入力されて、インクリメント動作が開
始される。
され、CPUの動作を停止する。直前にMAC命令を実
行した場合、BUSY信号は3ステートの期間活性状態
であり、STMAC命令も3ステートウェイト状態にな
る。
と、T6からクロックの動作が開始される。
出力され、PC30に格納される。STMACHまたは
STMACL信号が活性状態になって、MACレジスタ
の読み出しが指示される。MACレジスタの内容がXバ
ス、Yバスに出力される。特に制限はされないものの、
Xバスが上位、Yバスが下位の内容とされる。
Bに出力されて、指定されたレジスタ(STMAC M
ACH,ER2の場合は、ER2)に格納される。同時
に、乗算器のフラグの内容がCCRのN、Z、Vフラグ
に格納される。
などの例である。
る。
AC ER1,MACLの場合は、ER1)の内容が読
み出される。この内容がXバス、Yバスに出力される。
ACL信号が活性状態になる。PC30の内容がGB経
由で、MAB33とINC27に入力される。
がWB経由で、PC30に格納される。また、Xバス、
Yバスの内容がMACレジスタに格納される。
合は、LDMAC命令も活性状態になるようにしてもよ
い。
と同様の動作で、LDMAC命令のLDMACH、L信
号と同じタイミングで、CLRMAC信号を活性状態に
するようにすればよい。
のタイミング図を示す。
ートマシンのステップの番号を記載した。これは、基本
的には、CONT22の出力のフィードバック信号で形
成される。また、制御信号CPUSを用いて、乗算器を
使用するか使用しないかを選択する。例えば、MULX
U.W R1,ER0などのバイトサイズ・符号無し乗
算の例である。前記同様に、T2から実行を開始する。
で、レジスタ制御信号Aによって、汎用レジスタの読み
だしを指示する。読出された結果は、GB、DBおよび
バススイッチ34を介して、Xバス、Yバスに出力され
る。
に基づいて、Xバス、Yバスの内容は、T3のφで乗算
器の入力ラッチにラッチされる。また、同時に、制御信
号Bに含まれるMUL信号によって、乗算器に乗算を指
示する。CONT22から、バイト/ワードの選択、符
号付/符号無の選択、乗算/積和の選択を上記制御信号
によって指示する。
与える。また、マルチプレクサやデコーダを動作させ
る。T4のφで、1回目の加算を行う。T4のφで部分
積を乗算結果レジスタとフィードバックラッチに格納す
る。これを3回繰り返す。BUSY信号が活性状態にな
ったことに呼応して、CPUはウェイト状態になる。
て、CPUは動作を再開し、T6のφで、制御信号Cに
含まれる、MULRD信号を活性状態にして、乗算結果
レジスタのリードを指示する。乗算結果レジスタの内容
は、Xバス、Yバスおよびバススイッチ34を経由し
て、T6のφ#でWBを経由して、レジスタ制御信号C
によって指定されるレジスタに格納される。同時に、乗
算の結果フラグがCCR31に格納される。
って、クロックが停止し、ウェイト状態となる。バイト
サイズ符号無し乗算命令(MULXU.B R0L,R
1など)は1ウェイトが挿入され、3ステートで実行さ
れる。ワードサイズ符号無し乗算命令(MULXU.W
R0,ER1など)は2ウェイトが挿入され、4ステ
ートで実行される。なお、符号付き乗算の場合は、それ
ぞれ、プリフィックスコードの実行が付加される。
判定することにより、制御回路(CONT22)の論理
を縮小することができる。
て、テストモードを指示された場合には、乗算器は1ス
テップの動作のみを行い、BUSY信号は非活性状態を
保持する。CPUは1ステートで処理を終了する。
令のタイミング図を示す。乗算器を用いない乗算は、特
に制限はされないものの、除算と類似のシーケンスで行
うようにする。
の読みだしを指示する。読出された結果は、符号判定を
行う。符号付/符号無の選択に対応して、符号判定を行
い、除数は符号反転し、負数にする。そのほかは正数に
する。
つシフトし、シフトした結果によって、下位側に乗数を
加算するかを決める。その結果に対して、さらにシフト
を行い、シフトした結果によって、下位側に乗数を加算
を行っていく。これを8または16回繰返して、乗算結
果の絶対値を得る。例えば、MULXU.B R1L,
R0などのバイトサイズ・符号無し乗算の例である。前
記同様に、T2から除算命令の実行が開始される。前記
のような、所定の処理を行った後、T5から部分乗算を
行う。
れる。前回の加算と次回のシフト処理を同一のALU処
理で行うようにする。
タ(ディスティネーションレジスタRd)から被乗数を
読み込み、シフト処理を行う。シフト処理の結果(部分
積)がφ#に同期してWBを経由して、Rdにライトさ
れる。また、シフトアウトされたキャリが内部で保持さ
れる。
読み込み、部分乗算処理を行う。前回のキャリが”1”
である場合、部分積の下位8ビットに乗数を加算し、1
6ビットでシフト処理を行い、最下位ビットは”0”と
する。前記以外の場合、部分積に16ビットでシフト処
理を行い、最下位ビットは”0”とする。かかる結果が
φ#に同期してWBを経由して、Rdにライトされる。
また、シフトアウトされたキャリが内部で保持される。
この動作を7回繰り返す。
のキャリが”1”である場合、部分積の下位8ビットに
乗数を加算する。前記以外の場合、部分積を保持する。
16ビットの積が得られる。かかる結果がφ#に同期し
てWBを経由して、Rdにライトされる。符号付きの場
合は、T14で符号処理を行う。また、ワードサイズの
場合は、部分乗算処理が8回追加される。
の符号処理を行う。すなわち、乗数・被乗数の一方が正
数、他方が負数のときは、積の符号を反転する(0から
積を引く)。
例えば、MULXU.B R1L,R0などのバイトサ
イズ・符号無し乗算の例である。命令の実行が開始され
ると、CPUS信号の状態によって分岐する。
の使用が許可されると、図6の動作を行う。即ち、ステ
ップ1で、指定されたレジスタの内容を、GB、DBを
経由して、X、Yバスに出力して、乗算器に供給する。
BUSY信号の状態を判定する。テストモードであれ
ば、BUSY信号は非活性状態であって、直ちにステッ
プ2に遷移する。
T状態に遷移する。BUSY信号は非活性状態になると
ステップ2に遷移する。
を経由して、指定されたレジスタにライトする。例え
ば、乗算器のフラグの内容をCCR31に格納する。次
の命令の実行を開始する。
器の使用が禁止されると、図25、26の動作を行う。
即ち、ステップ1、2でデータアライメントなどを行っ
た後、ステップ3から、部分乗算処理を行う。ステップ
3では、GB上位に被乗数を出力し、これをシフトす
る。
位に乗数を出力し、ALU26で加算を行う。前のステ
ップでシフトアウトしたビットが”1”であれば、加算
した結果が選択され、シフトアウトしたビットが”0”
であれば、GBの内容が選択され、シフトを行う。これ
をステップ10まで繰り返す。
下位に乗数を出力し、ALU26で加算を行う。前のス
テップでシフトアウトしたビットが”1”であれば、加
算した結果が選択され、シフトアウトしたビットが”
0”であれば、GBの内容が選択される。シフトは行わ
ない。
えば、積を検査して、CCRに反映する。次の命令の実
行を開始する。
を示している。例えば、DIVXU.B R1L,R0
などのバイトサイズ・符号無し除算の例である。前記同
様に、T2から除算命令の実行が開始される。除数の符
号反転などの、所定の処理を行った後、T5から部分除
算を行う。部分除算は、左シフト処理と減算で構成され
る。前回の減算と次回のシフト処理を同一のALU処理
で行うようにする。
タ(ディスティネーションレジスタRd)から被除数を
読み込み、シフト処理を行う。シフト処理の結果(部分
剰余)がφ#に同期してWBを経由して、Rdにライト
される。また、シフトアウトされたキャリが内部で保持
される。
を読み込み、部分除算処理を行う。前回のキャリが”
1”である場合、または、部分剰余の上位8ビットが除
数以上である場合、部分剰余の上位8ビットから除数を
減算(除数の符号反転を行っている場合、除数の反転を
加算)し、16ビットでシフト処理を行い、最下位ビッ
トは”1”とする。前記以外の場合、部分剰余に16ビ
ットでシフト処理を行い、最下位ビットは”0”とす
る。かかる結果がφ#に同期してWBを経由して、Rd
にライトされる。また、シフトアウトされたキャリが内
部で保持される。この動作を7回繰り返す。
のキャリが”1”である場合、または、部分剰余の上位
8ビットが除数以上である場合、部分剰余の上位8ビッ
トから除数を減算し、下位8ビットでシフト処理を行
い、最下位ビットは”1”とする。前記以外の場合、部
分剰余に下位8ビットでシフト処理を行い、最下位ビッ
トは”0”とする。いずれの場合も、ビット7の値は失
われる。上位8ビットに剰余、下位8ビットに商が得ら
れる。かかる結果がφ#に同期してWBを経由して、R
dにライトされる。
う。また、ワードサイズの場合は、部分除算処理が8回
追加される。
示す。ALU26は、算術論理演算回路76と、選択回
路77、シフト回路78、制御回路79から構成され
る。乗除算に直接関係のない部分は省略している。
容を入力して、加算、減算、論理積、論理和、排他的論
理和などの演算を行い、結果を出力する。選択回路77
は、算術論理演算回路の出力と、GBの内容を入力し
て、いずれかを選択して出力する。シフト回路78は、
選択回路77の出力を入力して、シフト処理を行う。
79によって制御される。制御回路79は、CONT2
2の与える制御信号と算術論理演算回路76とシフト回
路78の出力によって、選択回路77の選択とシフト回
路78のシフト入力を制御する。制御回路79が、前記
の部分乗算、部分除算の判定を行う。条件が成立してい
れば、算術論理演算回路76の出力を選択し、除算の場
合、1をシフト回路に入力する。条件が不成立であれ
ば、GBの入力を選択し、除算の場合、0をシフト回路
に入力する。乗算の場合のシフト回路の入力は、0とさ
れる。
シーケンス、及びALU26の回路構成を共通化する。
除算と乗算を共通化して、CONT22の論理規模を縮
小できる。
易に提供することができる。乗算器を持つCPUにおい
て不必要な乗算器を用いない乗算の論理を除算と共通化
して、論理規模の増加を最低限にすることができる。
い選択を可能にすることによって、テスト性を向上する
ことができる。テスト時に、乗算器を用いるか用いない
かを選択することに両方の論理をテストの対象にするこ
とができる。
表16の通りである。
ド中に指定される。例えば、昭和5年3月(株)日立製
作所発行『H8/500シリーズプログラミングマニュ
アル』に記載の複数命令の待避/復帰命令のように任意
のレジスタの組合わせを指定するのではなく、連続した
レジスタ番号の固定の組合わせとし、2、3、4本の固
定の組合わせとしている。命令コードも、レジスタ本数
に応じて3種類を用意している。
の本数に対応して、 STM(ERl−ERl+1),@−SP STM(ERm−ERm+2),@−SP STM(ERn−ERn+3),@−SP の3種類を有する。l=0、2、4、6であり、m、n
=0、4である。指定した汎用レジスタをスタックに待
避する。例えば、ER0とER1をスタックに待避する
場合は、 STM(ER0−ER1),@−SP を用いる。ER0、ER1の順番でスタックにライトさ
れ、スタックポインタ(ER7)は+8される。命令コ
ード中のレジスタ指定部は、最初に待避されるレジスタ
番号にしてある。
実行シーケンスを示す。例えば、STM.L ER0−
ER1,@−SPなどの2本の汎用レジスタを待避する
例である。レジスタ指定フィールドはB’000である
(B’は2進数を示す)。
始される。特に制限はされないものの、命令コードの第
1ワードはプリフィックスコードであり、次の命令コー
ドの動作を指定し、PCをインクリメントするほかの動
作は行わない。
と共通にされる。
し、ALU26に入力する。ALU26では−4の演算
を行う。なお、前記の通り、実行前のSPはスタックの
先頭アドレスを示しているとする。
される。WBからSPに書き込まれ、GBからMAB3
3に格納される。MAB33の内容がIABに出力され
る。また、第1の制御信号BとRSEL2(=B’00
0)とによって、待避されるレジスタが選択され、レジ
スタ制御信号Bが生成される。
0)の内容がDB経由で、DBW24に転送される。
の内容)の上位16ビット(Eレジスタの内容)が内部
データバスに出力される。また、MAB33のインクリ
メント機能によって、IABの出力値を+2とする。
み出し、ALU26に入力する。ALU26では−4の
演算を行う。
ータの下位16ビット(Rレジスタの内容)が内部デー
タバスに出力される。ALU26の演算結果がWBとG
Bに出力される。WBからSPに書き込まれ、GBから
MABに格納される。MAB33の内容がIABに出力
される。また、第2の制御信号BによってRSELのビ
ット0が反転される。第1の制御信号とRSEL2(=
B’001)とによって、待避されるレジスタが選択さ
れ、レジスタ制御信号Bが生成される。
1)の内容がDB経由で、DBW24に転送される。
の内容)の上位16ビット(Eレジスタの内容)が内部
データバスに出力される。また、MAB33のインクリ
メント機能によって、IABの出力値を+2とする。
ータの下位16ビット(Rレジスタの内容)が内部デー
タバスに出力される。
命令の読み出しと、PC30のインクリメント(+2)
を行う。
ート数が2ステート長くなり、SPのデクリメント(−
4)と、RSELのビット1が反転される。RSEL
は、レジスタ指定フィールドが000の場合、010と
され、汎用レジスタER2が選択される。ライト動作が
2回行われる。
行ステート数が2ステート長くなり、SPのデクリメン
ト(−4)と、RSELのビット1とビット0が反転さ
れる。RSELは、レジスタ指定フィールドが000の
場合、011とされ、汎用レジスタER23が選択され
る。ライト動作が2回行われる。
で、これを命令処理の実行に従って、変更させることが
容易である。例えば、2本のレジスタを待避する場合、
命令コード上のレジスタ指定フィールドの下位ビットは
0であるので、1回めのレジスタ指定は、レジスタ指定
フィールドの値に従い、2回のレジスタ指定は、CON
T22の制御に従って、レジスタ指定フィールドの下位
1ビットを1に変更して、行うようにする。
であり、前記の2回目の待避動作を行わないようにさ
れ、実行動作の共通化を図っている。
実行シーケンスを示す。例えば、LDM.L @ER7
+,ER0−ER1などの2本の汎用レジスタを待避す
る例である。レジスタ指定フィールドは001である。
の具体的な構成、およびその動作説明を示す。この制御
回路は、アンド回路75A、75B、オア回路80A、
80Bから構成される。
フィールドのビット2がそのまま入力される。ビット
1、0には、オアゲートとアンドゲートを介して入力さ
れる。オアゲートの他方の入力はSTM制御信号1、0
であり、アンドゲートの他方の入力はLDM制御信号
1、0の反転とされる。STM制御信号1、0およびL
DM制御信号1、0は、CONT22の出力である制御
信号Bに含まれる。
RSELビットは1になる。また、LDM制御信号が活
性状態になると、当該RSELビットは0になる。ST
M、LDM命令と指定したレジスタ本数に従って、ST
M制御信号、LDM制御信号が生成される。
の命令と共通化することができる。共通化によって、物
理的規模の増加を抑止できる。
と、これをCPUの命令に変換したリストの概略を示
す。このリストには、オフセット(相対アドレス)、命
令コード、Cラベル、Cソース及びアセンブラ命令の各
項目が示されている。
ついては、例えば、平成4年9月(株)日立製作所発行
『H8/300シリーズCコンパイラ』に記載されてい
る。引数を汎用レジスタER0、ER1に設定しておく
ことができる。
とし、これをER0に割り当てている。関数内の処理
で、ER2、3、4、6を使用するため、関数処理の先
頭で、 STM (ER2−ER3),@−SP STM (ER4−ER6),@−SP を実行して、関数の最後で、 LDM @SP+,(ER4−ER6) LDM @SP+,(ER2−ER3) を実行して、サブルーチンからリターン(RTS)して
いる。
では使用せず、内容の待避/復帰も行わない。
oc3は、引数をレジスタ渡しとし、これをER0に割
り当てている。関数内の処理で、ER5を使用するた
め、関数処理の先頭で、1レジスタの待避 PUSH.L ER5 を実行して、関数の最後で、 POP.L ER5 を実行して、サブルーチンからリターン(RTS)して
いる。
ら、ER7を待避/復帰することは意味がない。従っ
て、タスク切替えを行う場合に使用可能なすべてのレジ
スタを待避する場合には、 STM @SP+,(ER0−ER3) STM @SP+,(ER4−ER6) の2命令を用いる。ER0からER6の順番でスタック
に待避される。同様に、復帰する場合には、 LDM @SP+,(ER4−ER6) LDM @SP+,(ER0−ER3) の2命令を用いる。ER6からER0の順番でスタック
から復帰される。
いが、予め、レジスタの割当てを行っておくことによ
り、実質的な制約にはなりにくい。7本のレジスタを待
避/復帰する場合に2命令を用いることになるが、全体
的な実行ステート数やプログラム容量に対しては影響が
小さい。少なくとも、1本のレジスタずつの待避/復帰
命令を用いるより効果がある。後者の場合、4バイト×
7、5ステート×7であるのに対して、前者では、4バ
イト×2、9+11ステートで実行できる。少なくと
も、命令リードのためのリードサイクルや、アドレス計
算のための内部動作の分を短縮して、高速化を図ること
ができる。
に、関数乃至サブルーチンを多く用いるプログラムの高
速化を実現することができる。
の場合のほかに、割り込み処理ルーチンにおいても、同
様のレジスタの待避/復帰を行う必要がある。マイクロ
コンピュータが機器制御などを行う場合には、割り込み
処理については、割り込みのイベントが発生してから、
実際の割り込み処理を実行するまでの時間を短縮するこ
とによって、リアルタイム制御性を向上することができ
る。複数レジスタの待避を高速に実行可能にすることに
より、かかるリアルタイム制御性の向上に効果がある。
ステート数を固定にすることにより、内部の条件分岐を
行うことをなくし、内部論理を簡潔にし、論理規模を縮
小できる。マイクロプログラムによらず、ワイアードロ
ジックなどでも容易に実現できる。マイクロプログラム
によらず、ワイアードロジックなどとすることにより、
論理回路の高速化に寄与することができる。特に、C言
語など関数乃至サブルーチンを多く用いるプログラムを
高速に実行することができる。
ンスを示す。
実行が開始される。プリフェッチした命令はキャンセル
され、図示されない割り込み要求信号に呼応して、CO
NT22の入力が切り替えられる。
リメントを行う。T2のφ#で、PC30の内容を読み
出して、GB経由で、INC27でデクリメント(−
4)を行う。これはプリフェッチをキャンセルしたこと
に対応して、待避すべきPC30の値を算出する。
B経由で一旦PC30に格納する。
の内容をアドレスとして、PC30の内容をデータとし
て、ライト動作を行う。即ち、T3のφで、同時に、S
Pの内容を読み出して、GB経由でALU26でデクリ
メント(−2)を行う。
WB経由でSPに格納するとともに、GB経由でMAB
33に転送し、IABに出力させる。
DBW24に転送する。DBW24の内容は、T4のφ
#から、内部データバスに出力される。
の内容をアドレスとして、PC30の上位8ビットとC
CR31の内容をデータとして、ライト動作を行う。
して、GB経由でALU26でデクリメント(−2)を
行う。
WB経由でSPに格納するとともに、GB経由でMAB
33に転送し、IABに出力させる。DBW24に保持
したPC30の内容下位16ビットを内部データバスに
出力する。
でDBW24に転送する。T4で格納したPC30の上
位8ビットは保持される。DBW24の内容は、T5の
φ#から、内部データバスに出力される。
テップ4に遷移する。INTM1信号が活性状態であれ
ば、ステップ12に遷移し、SPをデクリメントし、こ
の内容をアドレスとして、EXRの内容をデータとし
て、ライト動作を行う。
B経由でALU27でデクリメント(−2)を行う。
WB経由でSPに格納する。
BW24に転送する。T6のφ#から、内部データバス
に出力される。
ードする。
B経由でMAB33に転送し、IABに出力させる。V
AGには、図示されない、割り込みコントローラから与
えられるベクタ番号に基づいて、ベクタアドレスを生成
する。
作の終了を待つ。
クタアドレスの内容をアドレスとして、命令のリードを
行う。DBR25の内容をインクリメントし、PC30
に格納する。
タアドレスのリード内容(分岐先の先頭アドレス)をG
B経由で、MAB33に転送し、IABに出力させ、A
LU26でインクリメント(+2)する。
WB経由でPC30に格納する。
として、命令のリードを行い、PC30のインクリメン
トを行う。
先頭アドレス)をGB経由で、MAB33に転送し、I
ABに出力させ、ALU26でインクリメント(+2)
する。リードした命令をIR21に格納する。
を、WB経由でPC30に格納する。
2を行うか、行わないかが選択され、スタックを2回行
うか、3回行うかが選択される。スタックを2回行う場
合には、PCとCCR31のみが待避される。SPは−
4となる。上記T5の動作に相当する部分(ステップ1
2)が実行されない。3回行う場合には、PC30とC
CR31及びEXRが待避される。SPは−6となる。
トにまたがっているのは、1つのCONT22の入力に
対応して、複数の異なるタイミングの制御信号A、B、
C及びレジスタ選択信号A、B、Cが生成されるのに対
応する。
状態を示す。図41はノーマルモードを示し、図42は
アドバンストモードを示している。
示す。
開始される。
ドレスとして、スタックのリードを行う。T2のφ#
で、SPの内容を読み出して、GB経由で、MAB33
に転送し、IABに出力させる。
B経由で、ALU27でインクリメント(+2)する。
IABのアドレスでスタックをリードする。T3のφ#
で、リードした内容をDBR25に格納する。
テップ2に遷移する。INTM1信号が活性状態であれ
ば、ステップ10に遷移し、リードした結果をEXRに
格納する。SPをインクリメントし、この内容でリード
を行う。
た結果を、WB経由でSPに格納する。また、GBを経
由して、MAB33に転送し、IABに出力させる。
み出し、これをALU27に入力する。T4のφ#で、
ALU27はGBから入力した内容をそのまま、WBに
出力し、EXRに格納する。
1に格納する。MAB33に格納した内容を、MAB3
3でインクリメントさせる。この内容でリードを行う。
なお、MAB33のインクリメント機能は、特開平4−
333153号公報などに記載されている。
み出し、これをALU27に入力する。T5のφ#で、
ALU27はGBから入力した内容をそのまま、WBに
出力し、CCR31に格納する。
ト(+4)する。
B経由で、ALU26でインクリメント(+4)する。
を、WB経由でSPに格納する。
タックから復帰したPC30の内容をアドレスとして、
命令のリードを行う。DBR25の内容をインクリメン
トし、PC30に格納する。
したベクタアドレスのリード内容(分岐先の先頭アドレ
ス)をGB経由で、MABに転送し、IABに出力さ
せ、ALUでインクリメント(+2)する。
WB経由でPC30に格納する。
として、命令のリードを行い、PC30のインクリメン
トを行う。
先頭アドレス)をGB経由で、MAB33に転送し、I
ABに出力させ、ALU26でインクリメント(+2)
する。リードした命令をIRに格納する。
WB経由でPC30に格納する。次の命令の実行を開始
させる。
には、前記従来CPU(例えば、前記平成5年6月
(株)日立製作所発行『H8/300Hシリーズプログ
ラミングマニュアル』に記載のCPU)と同一のスタッ
クの構造とされる。命令コードが共通であることと相俟
って、従来CPUによって書かれたプログラムをそのま
ま実行することができる。
スクビットやトレースビットなどを追加する場合には、
これに対応したプログラムを作成することになるから、
スタックの構造が異なっても実質的な問題はない。割込
みマスクビットを追加するなどして、使い勝手を向上す
ることができる。
SCRに存在し、このビットの状態がINTM1信号に
反映されるようになっている。リセット後に、かかるS
YSCRの設定を行うことにより、EXRを使用するか
しないかが選択される。
す。このCONT22は、アンド回路86A〜86Dに
よって構成される。
1ビットを”0”にクリアすると、EXRのビットは全
て”0”とみなされ、設定値は、無視されるようにされ
る。
ンタフェース39に含まれる制御レジスタ41の構成を
示す。この制御レジスタ41は、以下説明するように、
(1)ASEコントロールレジスタ D (ASECR
D)、(2)ブレークコントロールレジスタ A B
(BRCRA、B)、(3)ブレークアドレスレジスタ
A、B(BARA、B)、(4)ブレークアドレスマス
クレジスタ A、B(BAMRA、B)、および(5)
ASE専用スタックレジスタ(BRKSTKR)から構
成されている。
スタ D (ASECRD)の構成を示す。このレジス
タは8ビットリード/ライト可能なレジスタで、シング
ルステップの設定、RTB命令実行後の割込制御、多重
ブレークの許可禁止、ウインドウ機能を指定する。各ビ
ットの内容を表21乃至表24に示す。
ジスタ A B(BRCRA、B)の構成を示す。この
レジスタは、(a)BRCRA、(b)BRCRBから
なり、各々は8ビットのリード/ライトが可能なレジス
タで、それぞれPCブレークのチャネルA、Bの制御を
行う。各ビットの内容を表25乃至表28に示す。
タ A、B(BARA、B)の構成を示す。このレジス
タは、(a)BARA、(b)BARBからなり、各々
は32ビットのリード/ライトが可能なレジスタで、そ
れぞれPCブレークのチャネルA、Bのアドレスを指定
する。32ビットのレジスタをバイトサイズに分割し
て、BARR、E、H、Lと表記される場合もある。最
上位のBARRはリザーブされている。リードすると不
定値が読み出される。ライトは無効である。
レジスタ A、B(BAMRA、B)の構成を示す。こ
のレジスタは、(a)BAMRA、(b)BAMRBか
らなり、各々は32ビットのリード/ライトが可能なレ
ジスタで、それぞれPCブレークのチャネルA、Bのア
ドレス比較のマスクを行うビットを指定する。BAMR
のビットを”1”にセットすると、このビットに対応す
るアドレスのビットは、アドレス比較対象から除外され
る。32ビットのレジスタをバイトサイズに分割して、
BAMRR、E、H、Lと表記される場合もある。最上
位のBARRはリザーブされている。リードすると不定
値が読み出される。ライトは無効である。
スタ(BRKSTKR)の構成を示す。このレジスタ
は、6バイト(48ビット)のリード/ライトが可能な
レジスタで、ユーザモード⇔ブレークモードの遷移時
に、スタック領域として使用する。ユーザのSPは使用
せず、保持される。スタックされるリソースおよびスタ
ックの構造は、MCU動作モード(ノーマルモード/ア
ドバンストモード)および、制御レジスタの設定(SY
SCRのINTM1ビット)によって相違される。表2
9にこのレジスタの使用方法を示す。
態への遷移(ブレーク)時には、固定アドレスのブレー
クスタックレジスタを使用するようにする。ブレーク例
外処理や、ブレークからのリターン命令時には、ユーザ
のスタックポインタ(ER7)を使用せず、固定的なス
タックアドレスを生成する。かかるスタックアドレスの
生成はEMLSP29による。
このEMLSP29は、クロックトバッファで構成され
る。
3〜10は1固定、ビット5、4、0は0固定、ビット
9〜6は、外部からの指定を入力する。また、ビット
3、2、1はCONT22の制御信号を入力する。CM
OS回路で構成する場合、必要に応じて論理反転を用い
ればよい。クロックトバッファの出力はGBに接続され
ている。また制御信号mは、CONTの制御信号とクロ
ック(φ#)の論理積信号である。
ためのラッチ回路を持たなければならないが、EMLS
P29は、これを持たず、小型化を図っている。
アドレスは、B’000000であって、64kバイト
単位で16通りのアドレスを選択可能とされる。マイク
ロコンピュータの内部I/Oレジスタの配置によって、
アドレスを変更できる。
37、38と同様であり、そこでのSP(ER7)の読
み出しに代わって、EMLSP29を読み出すようにす
る。
スをB’000110として、デクリメントした内容の
B’000100がスタックのアドレスとされる。
000100として、デクリメントした内容のB’00
0010がスタックのアドレスとされる。
000010として、デクリメントした内容のB’00
0000がスタックのアドレスとされる。3回目は、I
NTM信号が活性状態のときに有効である。読み出され
るビット2、1は、CONT22の制御信号によって選
択する。
と同様であり、SP(ER7)の読み出しに代わって、
EMLSP29を読み出すようにする。
って異なり、INTM1信号が非活性状態であれば、下
位アドレスをB’000010として、INTM1信号
が活性状態であれば、下位アドレスをB’000000
として、読み出す。これらがスタックのアドレスとな
る。
活性状態である場合に有効であり、下位アドレスをB’
000010として、デクリメントした結果をアドレス
としてリードを行う。
ってアドレスを生成し、EMLSP29は使用しない。
規模を縮小できる。ユーザに公開されない資源による論
理規模の増大を最小限にすることができる。
ングを示す。実行シーケンスは図37、38の例外処理
タイミングと同様である。
実行が開始される。プリフェッチした命令はキャンセル
され、図示されないブレーク要求信号に呼応して、CO
NT22の入力が切り替えられる。
ークモードを示す信号BRKAK#が活性状態になる。
示す。この回路は、アンド回路81A乃至81G、オア
回路82A乃至82D、フリップフロップ83から構成
されている。
存在する。第1はBRK端子による要求である。第2は
アドレス比較Aによる要求であり、これは、BRKCR
のBIEAビットによって許可される。第3はアドレス
比較Bによる要求であり、これは、BRKCRのBIE
Bビットによって許可される。なお、かかるアドレス比
較は、前記の通り、(CA23・AR23+¬CA23
・¬AR23+AMR23)・…・(CAn・ARn+
¬CAn・¬ARn+AMRn)・…・(CA0・AR
0+¬CA0・¬AR0+AMR0)と表現される。
(¬は論理反転を示す)。
て、CPUに与えられる。
態によってBRK端子によるブレーク要求の許可禁止が
選択される。即ち、ブレークモードでMBIEビット
が”0”にクリアされている場合は、ブレーク要求が抑
止される。アドレス比較によるブレーク要求は、ブレー
クモードで禁止される。
プで構成され、BRKAK信号の反転信号で”0”にク
リアされる。かかるフリップフロップの入力は、所定の
データバスのビットであって、クロックは、ブレークモ
ード信号とアドレスデコード信号とライト信号の論理積
信号とされる。かかるアドレスデコード信号は、CPU
の出力するアドレスがBRKCRの存在するアドレスに
なったとき、活性状態とされる。即ち、ブレークモード
でのみライト可能とされる。
ブレーク要求がが禁止状態であって、不所望のブレーク
の多重例外処理(スタックした内容の破壊)が禁止され
る。また、BRKCRのSSTPビットと、BRKAK
信号の反転信号との論理積が、シングルステップブレー
ク要求として、CPUに与えられる。
命令実行信号との論理積信号と、ブレーク要求が、CP
U内部で、CPUブレーク例外処理要求として認識され
る。これらの例外処理の内容は共通とされる。
ングルステップブレーク要求を無視する。
るものである。
つつ、乗算器を内蔵することに当っては、ポストインク
リメントレジスタ間接のアドレッシングモードのみをサ
ポートすることによって、アドレッシングモードの増加
を最小限にして、かつ処理性能を低下させずに積和演算
を実行可能にすることができる。また、アドレスレジス
タの補正をレジスタ間演算命令で行い、これを1ステー
トで実行することができ、アドレッシングの柔軟性を向
上することができる。さらに、積和演算をCPUの内部
動作(ポストインクリメントのアドレス計算)と並行に
行うことによって、実行ステート数の短縮を行うことが
できる。
ることにあたっては、乗算の結果(積、フラグ)を直接
汎用レジスタ、CCRに格納するようにして、直ちに結
果を利用できるようにし、実質的な乗算の実行速度を向
上することができる。また、積和演算の結果(MAC)
をリード(STMAC)すると同時に、乗算器内部で保
持したフラグをCCRに格納することによって、積和演
算結果の利用や判定を容易に行うことができ、使い勝手
を向上することができる。
って、乗算器を取外した場合は、積和演算をサポートし
ないことによって、容易に下位CPUを実現し、論理的
・物理的規模を縮小し、製造費用を低減した別のマイク
ロコンピュータを容易に開発することができる。また、
汎用的な乗算命令を、乗算器によらずにサポートするこ
とによって、かかる別のマイクロコンピュータにおける
使い勝手の低下を防止できる。さらに、乗算器によらな
い乗算命令を除算と同一のシーケンスで実行するように
して、乗算器を持つマイクロコンピュータにおいても冗
長な論理を最低限にすることができる。
御信号を与えて制御することによって、テスト性を向上
したり、エミュレータを共通化したりすることができ
る。全体的な開発効率を向上することができる。さらに
また、乗算器を削除し、小型化したCPUを用いて、マ
イクロコンピュータを構成することによって、半導体集
積回路の論理規模・物理的規模を縮小して、製造費用の
縮小を図ることができる。
乗算器・CPU間の配線を短縮して、物理的規模を縮小
する。また、高速化に寄与することができる。
このときの乗算器の処理を1ステップのみにすることに
よって、論理規模の増加を最低限にして、テストの容易
性を向上することができる。テストステップを短縮する
ことができる。
て、入出力タイミングの異なるレジスタ選択回路を複数
持つことにより、実質的に1命令/1ステート実行を行
うことができる。
ち、この組み合せを固定的にすることによって、論理規
模の縮小を図ることができる。レジスタの本数の異なる
命令を複数命令サポートすることによって、使い勝手の
低下を防ぐことができる。また、複数レジスタの退避/
復帰命令を関数(サブルーチン)の入り口/出口で実行
することによって、C言語などで記述された場合のよう
に、関数の使用頻度が高い場合に、処理速度を特に向上
することができる。さらに、割り込み例外処理ルーチン
の先頭で複数レジスタの退避を用いることにより、リア
ルタイム性の向上を図ることができる。
とで、互換性を維持することと、機能拡張とを両立する
ことができる。EXRを無効とし、例外処理において退
避/復帰を行わないようにすることで、スタックの節約
と、割込み応答時間の高速化に寄与することができる。
また、互換性を維持する。さらに、EXRを有効とする
ことで、割り込みマスクレベルを拡張したり、トレース
機能を追加したりして、使い勝手を向上することができ
る。
ポインタを持つことによって、ユーザプログラムとエミ
ュレーションプログラムの遷移時に、ユーザーのスタッ
クポインタとは独立して、固定的なアドレスに対して退
避および復帰が行われるから、エミュレータのソフトウ
ェア、ハードウェアの開発を容易にすることができる。
を固定的にすることによって、ユーザに公開しない資源
を最小限の論理的・物理的規模にすることができる。ユ
ーザプログラムからエミュレーションプログラムへの遷
移(ブレーク)を多重に行うことを禁止することを可能
にすることによって、不所望のスタックの内容の破壊を
防止することができる。
施例に限定されるものではなく、その要旨を逸脱しない
範囲において種々変更可能である。実施例を相互に組み
合せて使用することもできる。
成は変更可能である。内部バス幅なども変更可能であ
る。但し、命令の大部分の命令コード長より、小さいバ
ス幅でないことが望ましい。
能である。16ビット×6ビットを3回繰り返すのでは
なく、16ビット×4ビットを4下位繰り返すようにし
てもよい。命令実行ステートと論理的規模に鑑みて選択
すればよい。
しの指定、テストモードの指定方法が種々変更可能であ
ることは言うまでもない。
するものであっても良い。
に限定されない。一般的に、CPUの例外処理時に、コ
ントロールレジスタの内容を待避することは行われてお
り、そのほかのCPUについても、本発明を適用して、
互換性を維持しつつ、コントロールレジスタの機能を拡
張することができる。
ータのその他の機能ブロックについても何等制約されな
い。
なされた発明をその背景となった利用分野であるシング
ルチップマイクロコンピュータに適用した場合について
説明したが、それに限定されるものではなく、その他の
データ処理装置にも適用可能であり、本発明は少なくと
も、複数の動作モードを選択して動作するデータ処理装
置に適用することができる。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
って、アドレッシングモードの増加を最小限にして、か
つ処理性能を低下させずに積和演算を実行可能にするこ
とができる。乗算器による乗算の結果を汎用レジスタC
CRに反映させ、かかる結果を直ちに利用可能にして、
処理速度を高速にすることができる。
設けることによって、乗算器を取外した場合は、積和演
算をサポートしないことによって、容易に下位CPUを
実現し、論理的・物理的規模を縮小し、製造費用の低減
に寄与することができる。
ち、この組み合せを固定的にすることによって、論理規
模の縮小を図ることができ、また、高速化を図ることが
できる。
を切り換えることで、スタックの節約と、割込み応答時
間の高速化に寄与することができるとともに、互換性を
維持することができる。
インタを持つことにより、エミュレータをサポートする
ことができ、また、論理規模の増加を最低限にして、エ
ミュレータの設計を容易にすることができ、さらにエミ
ュレータ専用スタックポインタの一部のアドレスを、C
PU外部から与えるようにして、スタックレジスタをリ
ロケータブルにし、マイクロコンピュータのアドレス配
置などに容易に対応することができる。
構成を示すブロック図である。
ントロールレジスタの構成図である
CPUの命令フォーマットの構成図である。
CPUと乗算器を示すブロック図である。
レジスタの1ビットの構成図である。
信号の設定方法の一例を示すブロックである。
信号の設定方法の一例を示す概略図である。
CPUのレジスタの構成図である。
CPUのレジスタの構成図である。
るCPUのレジスタの使用方法を説明するフロック図で
ある。
るCPUのレジスタのスタックの状態の説明図である。
るCPUの基本動作のタイミング図である。
るCPUの基本動作のタイミング図である。
る乗算器の構成を示すブロック図である。
る乗算器による演算方法の説明図である。
る乗算器のフラグの実現方法の説明図である。
る乗算器のフラグの実現方法の説明図である。
るバススイッチの構成を示すブロック図である。
AC命令の動作のタイミング図である。
る。
TMAC命令およびLDMAC命令の動作のタイミング
図である。
る。
算器を用いた場合の乗算命令の動作のタイミング図であ
る。
る。
算器を用いない場合の乗算命令の動作のタイミング図で
ある。
る。
算命令の状態遷移図である。
る演算器の構成を示すブロック図である。
数レジスタの退避命令の実行シーケンス図である。
る。
数レジスタの復帰命令の実行シーケンス図である。
る。
SEL2入力制御回路の構成を示すブロック図である。
るC言語による変換リストの概略例である。
るC言語による変換リストの概略例である。
込例外処理の実行シーケンス図である。
る。
外処理の状態遷移図である。
外処理後のスタックの状態の説明図である。
外処理後のスタックの状態の説明図である。
TE命令の実行シーケンス図である。
外処理の状態遷移図である。
御回路の構成の説明図である。
御レジスタの構成図である。
御レジスタの構成図である。
御レジスタの構成図である。
御レジスタの構成図である。
御レジスタの構成図である。
ミュレーションスタックポインタの構成の説明図であ
る。
レーク割込みシーケンスの実行タイミング図である。
レーク制御処理の回路構成図である。
(SYSC)、4…割込コントローラ(INT)、5…
ROM、6…RAM、9…シリアルコミュニケーション
インターフェース(SCI)、13…システムコントロ
ールレジスタ(SYSCR)、14…制御レジスタ(C
PUCR)、21…命令レジスタ(IR)、22…命令
デコーダ・制御回路(CONT)、23…レジスタセレ
クタ(RSEL)、24…ライトデータバッファ(DB
W)、25…リードデータバッファ(DBR)、26、
27…演算器、29…エミュレータスタックポインタ
(EMLSP)、30…プログラムカウンタ(PC)、
31…コンディションレジスタ(CCR)、32…拡張
レジスタ(EXR)、33…アドレスバッファ(MA
B)、34…バススイッチ、38…エミュレーション用
プロセッサ、39…エミュレーション用インタフェー
ス、44…インタフェースケーブル、48…エミュレー
ションメモリ、49…ブレーク制御回路、50…リアル
タイムトレース回路、58…CMOSインバータ回路、
65A〜65C…デコーダ、66A〜66C、71A、
71B、77…選択回路、67…加算器、72A〜72
C…拡張回路、76…算術論理演算回路、78…シフト
回路、79…制御回路、75A、75B、81A〜81
G、86A〜86D…アンド回路、80A、80B、8
2A〜82D…オア回路、83…フリップフロップ。
Claims (18)
- 【請求項1】 所定の命令を順次実行するデータ処理装
置であって、前記命令を実行する実行手段を制御する制
御手段と乗算手段を設け、前記制御手段と乗算手段とが
並列動作する第1の命令とともに、前記乗算手段が動作
する第2の命令を有することを特徴とするデータ処理装
置。 - 【請求項2】 前記第2の命令が第1の命令と同期して
いることを特徴とする請求項2に記載のデータ処理装
置。 - 【請求項3】 前記第1の命令は積和命令であるととも
に、前記第2の命令は乗算命令であることを特徴とする
請求項1または2に記載のデータ処理装置。 - 【請求項4】 前記乗算手段は前記制御手段に内蔵され
ていることを特徴とする請求項1乃至3のいずれか1項
に記載のデータ処理装置。 - 【請求項5】 前記乗算手段は前記制御手段から独立し
て設けられていることを特徴とする請求項1乃至3のい
ずれか1項に記載のデータ処理装置。 - 【請求項6】 前記制御手段は乗算機能を備えているこ
とを特徴とする請求項5に記載のデータ処理装置。 - 【請求項7】 前記乗算手段の動作の有効/無効を指定
できる手段を有することを特徴とする請求項1乃至6の
いずれか1項に記載のデータ処理装置。 - 【請求項8】 前記乗算手段の動作の有効/無効を指定
できる手段をテストモードで設定することを特徴とする
請求項7に記載のデータ処理装置。 - 【請求項9】 前記乗算手段の動作の有効/無効を指定
できる手段をエミュレーションモードで設定することを
特徴とする請求項7に記載のデータ処理装置。 - 【請求項10】 前記乗算手段の動作の有効/無効を指
定できる手段がレジスタからなり、このレジスタはエミ
ュレータに搭載されて、エミュレータの指定に基づいて
設定することを特徴とする請求項9に記載のデータ処理
装置。 - 【請求項11】 前記乗算手段の1ステップ動作の実行
を指定する手段を有することを特徴とする請求項を1乃
至10に記載のデータ処理装置。 - 【請求項12】 前記乗算手段の1ステップ動作の実行
を指定する手段をテストモードで設定することを特徴と
する請求項11に記載のデータ処理装置。 - 【請求項13】 所定の命令を順次実行するデータ処理
装置であって、前記命令を実行する実行手段を制御する
制御手段に指定可能な複数のレジスタの組み合わせを固
定にし、複数のレジスタの退避/復帰命令を有すること
を特徴とするデータ処理装置。 - 【請求項14】 所定の命令を順次実行するデータ処理
装置であって、前記命令を実行する実行手段を制御する
制御手段に搭載されるコントロールレジスタの有効/無
効を切り換える手段を有することを特徴とするデータ処
理装置。 - 【請求項15】前記コントロールレジスタの有効時に
は、例外処理の遷移時、例外処理からの復帰時に、前記
コントロールレジスタの待避/復帰を行い、前記コント
ロールレジスタの無効時には、例外処理の遷移時、例外
処理からの復帰時に、前記コントロールレジスタの待避
/復帰を行わないことを特徴とする請求項14に記載の
データ処理装置。 - 【請求項16】 前記コントロールレジスタの有効時に
は、このコントロールレジスタの設定値が有効であり、
前記コントロールレジスタの無効時には、このコントロ
ールレジスタの設定値が無視されることを特徴とする請
求項15に記載のデータ処理装置。 - 【請求項17】 所定の命令を順次実行するデータ処理
装置であって、前記命令を実行する実行手段を制御する
制御手段の搭載される固定的なスタックレジスタを設
け、エミュレーションプログラムへの遷移時、エミュレ
ーションプログラムからの復帰時に、前記固定的なスタ
ックレジスタを用いて、ユーザが使用するスタックポイ
ンタを無視あるいは保持する手段を有することを特徴と
するデータ処理装置。 - 【請求項18】 前記エミュレーションプログラム実行
状態での、エミュレーション遷移割り込みを禁止する手
段を有することを特徴とする請求項17に記載のデータ
処理装置
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7060797A JPH08263290A (ja) | 1995-03-20 | 1995-03-20 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7060797A JPH08263290A (ja) | 1995-03-20 | 1995-03-20 | データ処理装置 |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004161157A Division JP2004295914A (ja) | 2004-05-31 | 2004-05-31 | データ処理装置 |
| JP2004213952A Division JP3759742B2 (ja) | 2004-07-22 | 2004-07-22 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08263290A true JPH08263290A (ja) | 1996-10-11 |
Family
ID=13152672
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7060797A Withdrawn JPH08263290A (ja) | 1995-03-20 | 1995-03-20 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08263290A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6745320B1 (en) | 1999-04-30 | 2004-06-01 | Renesas Technology Corp. | Data processing apparatus |
| US7376819B2 (en) | 2002-06-28 | 2008-05-20 | Renesas Technology Corp. | Data processor with selectable word length |
-
1995
- 1995-03-20 JP JP7060797A patent/JPH08263290A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6745320B1 (en) | 1999-04-30 | 2004-06-01 | Renesas Technology Corp. | Data processing apparatus |
| US7376819B2 (en) | 2002-06-28 | 2008-05-20 | Renesas Technology Corp. | Data processor with selectable word length |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8918627B2 (en) | Multithreaded processor with multiple concurrent pipelines per thread | |
| US6560697B2 (en) | Data processor having repeat instruction processing using executed instruction number counter | |
| EP0901071B1 (en) | Methods for interfacing a processor to a coprocessor | |
| JPH09311786A (ja) | データ処理装置 | |
| JP2001202243A (ja) | データ処理装置 | |
| US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
| JP3578883B2 (ja) | データ処理装置 | |
| JP4073721B2 (ja) | データ処理装置 | |
| US6078940A (en) | Microprocessor with an instruction for multiply and left shift with saturate | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JP3479385B2 (ja) | 情報処理装置 | |
| JP4800582B2 (ja) | 演算処理装置 | |
| JPH096614A (ja) | データ処理装置 | |
| JP2006313561A (ja) | データ処理装置 | |
| JPH1153186A (ja) | プロセッサ | |
| JPH08263290A (ja) | データ処理装置 | |
| JP3786575B2 (ja) | データ処理装置 | |
| JP3759742B2 (ja) | データ処理装置 | |
| US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
| JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
| JP3740321B2 (ja) | データ処理装置 | |
| JP2004295914A (ja) | データ処理装置 | |
| JP3511691B2 (ja) | 演算処理装置 | |
| JP3839835B2 (ja) | データ処理装置及びマイクロコンピュータ | |
| JP3547585B2 (ja) | 条件実行命令を有するマイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040309 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040622 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20040723 |