JP2001022576A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2001022576A
JP2001022576A JP11197223A JP19722399A JP2001022576A JP 2001022576 A JP2001022576 A JP 2001022576A JP 11197223 A JP11197223 A JP 11197223A JP 19722399 A JP19722399 A JP 19722399A JP 2001022576 A JP2001022576 A JP 2001022576A
Authority
JP
Japan
Prior art keywords
instruction
data
predetermined
register
data processing
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
Application number
JP11197223A
Other languages
English (en)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11197223A priority Critical patent/JP2001022576A/ja
Publication of JP2001022576A publication Critical patent/JP2001022576A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 飽和演算などの特定の処理のためのプログラ
ムの短縮と処理の高速化を実現できるデータ処理装置を
提供することにある。 【解決手段】 CPU2は、命令セットに、飽和値転送
命令として、正の最大値、負の最小値をデスティネーシ
ョンのロケーションに転送する命令(MOVPL,MO
VMI)を備える。この命令は、正の最大値、負の最小
値を、イミディエイトデータなどのように命令コード中
に含まず、例えば限界値設定レジスタ(24)の値を暗
黙的に指定する。これにより、イミディエイトデータの
転送命令など、命令コード中にデータフィールドや、実
効アドレス計算用のフィールドを持つ場合に比較して、
命令コード長を短縮することができる。命令コード長を
短縮することによって、実行時間を短縮することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令を解読して実
行する中央処理装置(CPU)、マイクロコンピュー
タ、又はマイクロプロセッサなどのデータ処理装置に関
し、例えば飽和演算及び非飽和演算が可能なマイクロコ
ンピュータ、更にはサーボ制御機能を有するシステムL
SI等に適用して有効な技術に関するものである。
【0002】
【従来の技術】シングルチップマイクロコンピュータ
は、昭和59年11月30日オーム社発行の『LSIハ
ンドブック』P540およびP541に記載されるよう
に、中央処理装置(CPU)を中心にしてプログラム保
持用のROM(リードオンリメモリ)、データ保持用の
RAM(ランダムアクセスメモリ)、およびデータの入
出力を行なうための入出力回路などの機能ブロックが一
つの半導体基板上に形成されて成る。前記入出力回路に
はA/D変換器、D/A変換器等がある。A/D変換
器、D/A変換器を内蔵したシングルチップマイクロコ
ンピュータとして、平成7年9月(株)日立製作所発行
『H8S/2655シリーズ ハードウェアマニュア
ル』に記載のものが有る。
【0003】かかるA/D変換器、D/A変換器を内蔵
したシングルチップマイクロコンピュータは、例えばC
D―ROMなどを媒体とする記憶装置のサーボ制御やイ
ンタフェース制御などに利用することができる。CD―
ROMシステムは、平成7年10月(株)日立製作所発
行『日立評論』Vol77No.10pp33〜38
「四重誤り訂正方式4倍速CD−ROM用LSI」など
に記載されている通り、リードチャネル(プリアン
プ)、CD−DSP(サーボ及び信号処理)、ホストイ
ンタフェース、マイクロコンピュータ等の半導体集積回
路を使用して構成することができる。
【0004】マイクロコンピュータのA/D変換器やD
/A変換器を用いて、サーボ制御も行えれば都合がよ
い。この場合、サーボを上記のようなシングルチップマ
イクロコンピュータの、A/D変換器による入力、CP
Uによる処理、D/A変換器による出力によって代替
し、サーボの処理内容をCPUのソフトウェアに置換え
ることができるので、システム毎のチューニングなどが
容易であり、かかる記憶装置を組込むパーソナルコンピ
ュータなどのシステムの仕様に対応することも容易であ
る。また、デジタルバーサタイルディスク(DVD)な
どの種々の規格(DVD−ROM、DVD−RAMその
ほか)に見られるような、新規の規格や変更などにも対
応しやすい。
【0005】一方、従来ハードウェアで行っていた処理
を、A/D変換器、CPU、D/A変換器の動作に置換
えるため、それぞれに高速な動作が要求される。例え
ば、CD―ROMにおいては、サンプリング周波数で決
る周期内に、単位のサーボを完了させる必要がある。標
準速CD―ROMでは、サンプリング周波数は44.1
kHzであり、周期は22.7μsである。また、例え
ば、CD―ROMでは順次高速化が実現され、サンプリ
ング周波数向上、周期短縮がなされている。
【0006】
【発明が解決しようとする課題】本発明者は、サーボ制
御等に用いるシングルチップマイクロコンピュータ、特
に、内蔵A/D変換器とその変換結果の処理、並びにそ
れに基づく出力について検討した。
【0007】例えば、上記平成7年9月(株)日立製作
所発行『H8S/2655シリーズハードウェアマニュ
アル』に記載されるA/D変換器は、単一変換時2.3
μs、連続変換時1チャネル当り1μsの変換が可能で
あり、8ビット分解能で読出すか、10ビット分解能で
読出すかが選択可能にされている。読出したデータは、
接地電位(AVss)を0、基準電圧(Vref)を最
大値とした、符号無しデータとして得られる。
【0008】一方、前記CD−ROMシステムなどにお
いて、例えば、A/D変換器で、フォーカスやトラック
のずれ量を入力し、このずれ量を基に、CPUの処理に
よって、ピックアップなどの位置を修正するためにD/
A変換器によって、出力を行うサーボ制御を実施するこ
とが考えられる。この制御は、所謂PID(Proportion
al Integration and Differential)制御方式であ
り、偏差入力から制御出力を得る変換を行なう。前記偏
差入力として符号データが用いられる。
【0009】ここで、符号付データとは、例えば、8ビ
ットデータの場合、最上位ビットを符号ビットと解釈
し、ビット6〜0を絶対値と解釈する。即ち、H’80
(H’は16進数を意味する記号である)が負の最小値
で−H’80とされ、これを1ずつインクリメントする
毎に、順次H’81が−H’7F、…、H’FFが−
H’01、となり、以降は、正の値H’00、H’0
1、…、最大値H’7Fとなる。この最大値を更に1イ
ンクリメントすると(H’7FとH’01を加算する
と)、H’80が得られ、これは上記解釈によれば、−
H’80となってしまい、符号付データとしてはオーバ
フロー(桁あふれ)してしまう。
【0010】サーボ制御を行う場合、オーバフローによ
って符号が反転してしまうと、必要な補正(移動)の方
向と、逆の方向に補正(移動)をしてしまうことにな
る。例えば、前記CD−ROMのトラッキングサーボ
で、正の値が外周方向への移動、負の値が内周方向への
移動を示すとすると、前記サーボ制御の演算過程で、本
来、正の値であるべきところに、オーバフローが発生し
て負の値が得られると、外周方向へ追従すべきなのに対
して、内周方向への移動を行ってしまう。これによっ
て、サーボがはずれてしまうことになる。
【0011】このため、サーボ制御の各処理ステップ毎
に、オーバフローを検出して、オーバフローが発生して
いれば、正規の(正しい)符号で絶対値が最大の値を代
用する処理を行なって、オーバフローを回避するのが一
般的である。
【0012】このオーバフローを回避するための処理
を、上記平成7年9月(株)日立製作所発行『H8S/
2655シリーズ ハードウェアマニュアル』に記載さ
れるCPUに即して表記すれば、 ADD.L ER0,ER1 (1) BVC L3 (2) BPL L2 (3) MOV.L #7FFFFFFF,ER1 (4) BRA L3 (5) L2:MOV.L #80000000,ER1 (6) L3: となる。
【0013】ここで(1)が、必要な演算処理例えば加
算(ER0+ER1=ER1)であり、次の処理はL3
以降に記述される。(2)〜(6)がオーバフローを回
避するための処理である。即ち、(1)の処理に続い
て、(2)で演算結果のオーバーフローフラグを判定
し、オーバフローが発生していなければ、ラベルL3に
分岐する。オーバフローが発生している場合、(3)に
おいて、前記演算結果が負(マイナス)であれば、桁あ
ふれの結果、符号が負になったものであるので、(4)
で、正の最大値であるH’7FFFFFFFを設定し、
(5)で、レベルL3に分岐する。(3)において前記
演算結果が正であることが判定されれば、桁あふれの結
果、符号が正になったものであるので、ラベルL2に分
岐して(6)で、負の最小値であるH’8000000
0を設定する。
【0014】前記(2)〜(6)の命令は全部で、9ワ
ード(18バイト)を必要とする。また、前記(2)〜
(5)の実行サイクル数は、9ステートであり、最大動
作周波数である20MHzで動作している時には、45
0nsを必要とする。各処理に対して、これらが繰返さ
れるから、必要な演算に比較して、それらの処理時間は
無視できず処理速度の低下をもたらし、また、プログラ
ム容量を増加させる。
【0015】前記(1)〜(6)の処理は飽和演算であ
る。すなわち、数値の上限と下限が決っており、演算結
果がその値を超えた場合は上限/下限になるという、画
像処理などにも広く用いられる演算である。
【0016】ここで、前記平成7年9月(株)日立製作
所発行『H8S/2655シリーズハードウェアマニュ
アル』に記載されるCPUの積和演算命令(MAC)で
は、飽和演算/非飽和演算を選択することができ、飽和
演算の場合には、正の最大値、負の最小値が設定され
る。
【0017】算術演算に対しても、飽和演算/非飽和演
算を選択可能にできるが、サーボ制御の処理中であって
も、ループカウンタやアドレス計算といった符号無しで
解釈すべき算術演算が混在するから、飽和演算/非飽和
演算を選択するための処理によるオーバヘッドが発生す
る。また、飽和演算/非飽和演算の何れが選択されてい
るかは、その処理の命令コードでは判別できないから、
現在の選択状態の把握を誤り易い。また、前記例のよう
に、飽和演算/非飽和演算の選択を、CPU外の制御レ
ジスタで行うと、かかる制御レジスタは、割込みなどで
自動的に待避されることはないから、割込み処理ルーチ
ンで、前記制御レジスタの待避/復帰を行わなければな
らず、更に、オーバヘッドを生じてしまう。
【0018】また、全ての算術演算命令に、飽和演算命
令と非飽和演算命令を別々に持つようにすることも可能
であるが、命令コードは、バイト単位乃至ワード単位な
どとされているから、命令の種類が増えることによって
個々の命令の全体的なコード長(ビット数)が増大して
しまう。
【0019】命令を増やす場合にはマイクロコンピュー
タの開発効率についても考慮しなければならない。即
ち、マイクロコンピュータは、汎用的に使用できる(1
種類のチップで複数の応用分野に対応できる)ことが、
開発効率などの点から望ましい。特に、CPUについて
は、アセンブラやCコンパイラといったソフトウェア開
発装置、及びインサーキットエミュレータといったハー
ドウェア開発装置が必要であるから、命令セットの変更
は容易ではないし、また、変更する場合も、既存のCP
Uとの互換性を保ち、上記ソフトウェア乃至ハードウェ
ア開発装置を共通に利用できるように考慮することが望
ましい。
【0020】本発明の目的は、飽和演算などの特定の処
理のためのプログラムの短縮と処理の高速化を実現でき
るデータ処理装置を提供することにある。
【0021】本発明の別の目的は、開発環境の提供も容
易であって、既存のソフトウェア資産を有効に利用可能
であり、前記飽和演算などの特定の処理のためのプログ
ラムの短縮と処理の高速化を実現できるデータ処理装置
を提供することにある。
【0022】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0023】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0024】〔1〕正の最大値、負の最小値といった所
定のデータを設定する命令を備え、かかる所定のデータ
は、命令コード中にイミディエイトデータや、実効アド
レスを指定するためのフィールドを持たず、暗黙的に指
定されるようにする。これにより、命令コード長を短縮
することができ、更に、命令の実行時間を短縮すること
ができる。
【0025】〔2〕演算結果のフラグを参照して、この
フラグの状態によって、正の最大値、負の最小値といっ
た所定のデータ、または、元の値のいずれかを選択する
命令を備え、かかる所定のデータは、命令コード中にイ
ミディエイトデータや、実効アドレスを指定するための
フィールドを持たず、暗黙的に指定されるようにする。
更に、フラグを参照して、使用するデータ及び処理内容
を選択可能にする。これにより、複数の分岐命令と複数
の演算命令で処理していた内容を単一の命令で処理する
ことができ、プログラムを容易にし、命令コードを短縮
し、更に、命令の実行時間を短縮することができる。
【0026】〔3〕積和演算器などを持つとともに、積
和演算レジスタに対するそのほかの演算を行う命令を備
え、この演算にオーバフローが発生した場合には、正の
最大値、負の最小値といった所定のデータを設定するこ
とにより、オーバフローを回避するための処理を必要と
せず、プログラムを容易にし、命令コードを短縮し、更
に、命令の実行時間を短縮することができる。かかる所
定のデータは、命令コード中にイミディエイトデータ
や、実効アドレスを指定するためのフィールドを持た
ず、暗黙的に指定されるようにすることにより、更に、
命令コード長を短縮し、命令の実行時間を短縮すること
ができる。更に、オーバフローが発生した場合に所定の
データを設定するかを、積和演算器などの飽和/非飽和
を選択する手段と共通に行うことにより、プログラムを
容易にすることができる。
【0027】〔4〕追加する命令を少数にし、演算命令
に共通に利用可能にすることによって、既存のCPUに
対して上位互換性を維持しつつ、命令を追加することが
容易にできる。互換性を維持することによって、既存の
ソフトウェア資産を有効に利用することができる。ま
た、開発装置を共通にすることが容易にできる。開発装
置を共通にすることによって、開発装置の開発効率を向
上し、逸速く開発装置を提供することができる。
【0028】更に上記手段を詳細に述べる。
【0029】〔5〕条件付飽和命令の観点によるデータ
処理装置は、基本単位から構成される命令コードを読み
込んで動作するデータ処理装置であり、暗黙的に指定さ
れる所定のデータの転送を行なう転送命令を実行させる
命令制御手段を含み、前記所定のデータはクリア命令に
よって得られるデータの配列とは異なる配列を有する。
【0030】前記データの暗黙的指定を行なう前記転送
命令は、例えば、イミディエイト値又は実効アドレスを
指定するフィールドをオペレーションコードに付随して
待たず、オペレーションコードの解読結果にしたがって
データを指定するものである。
【0031】暗黙的指定と命令コード長に着目すれば、
前記転送命令の命令コードの長さ(16ビット)は、前
記所定のデータ(16/32ビット)より大きく、命令
コードの基本単位の整数倍の長さ(16+16/32+
16)より短い。
【0032】飽和演算への適用と考慮すると、前記命令
制御手段は、前記所定のデータの内容が相異なる、複数
の前記転送命令を実行させるものである。前記相異なる
所定のデータは、例えば、所定のデータ把握方法(符号
付データ)上で、互いに対(符号反転、両端の値)にな
るものである。
【0033】暗黙的に指定されるデータの保持という点
に着目すると、前記所定のデータの少なくとも一つを指
定する記憶手段(限界値設定レジスタ)を採用しても良
い。前記記憶手段は、例えばデータ処理装置のアドレス
空間上に存在する(内部I/Oレジスタ)レジスタであ
る。
【0034】前記命令が複数種類のサイズを指定する領
域を有する場合、その領域によって短い方のサイズが指
定された場合、前記所定のデータを指定する記憶手段
(限界値設定レジスタ)の上位側の規定の一部を使用す
るように予め規定しておくことができる。
【0035】前記所定の命令として条件付飽和命令の具
体例を想定すれば、データ処理装置はフラグ手段(CC
R)を更に有し、前記命令制御手段は、前記フラグ手段
の所定のビットの状態に基づいて、前記所定のデータを
転送するかしないかを判定する転送命令を実行させる。
更に詳しくは、前記命令制御手段は、前記フラグ手段の
第1のビット(V)の状態に応じて、前記所定のデータ
を転送するかしないかを判定し、前記フラグ手段の第2
のビット(N)が第1の状態であるとき、第1の所定の
データを転送させ、第2の状態であるとき、第2の所定
のデータを転送させるするものである。
【0036】〔6〕補正命令の観点によるデータ処理装
置は、複数の種類の演算命令と、前記複数の種類の演算
命令の複数に共通に利用可能な補正命令を実行させる命
令制御手段とを備え、前記複数の種類の演算命令に共通
に利用可能な補正命令は、符号付きデータのオーバーフ
ローによる不所望な符号変化を補正する。更に詳しく
は、前記命令制御手段は、フラグ手段の第1のビット
(V)の状態に応じて、前記所定のデータを転送するか
しないかを判定し、フラグ手段の第2のビット(N)が
第1の状態であるとき、第1の所定のデータを転送させ
て符号変化を補正し、前記第2のビットが第2の状態で
あるとき、第2の所定のデータを転送させて符号変化を
補正する。符号付データに対する処理を想定すると、相
異なる第1、第2の所定のデータは、所定のデータ把握
方法(符号付データ)上で、互いに対(符号反転、両端
の値)になるものである。
【0037】補正命令に関しても、前記データの暗黙的
指定が適用できる。即ち、前記補正命令は、前記第1、
第2の所定のデータを、命令コード中に含まず、暗黙的
に指定するものである。
【0038】補正命令の変形例として演算命令(LOG
IC)に着目すると、データ処理装置は、フラグ手段
(CCR)を有し、フラグ手段の所定のビット(N)が
第1の状態であるとき第1の処理を行い、第2の状態で
あるとき第2の処理を実行させる命令制御手段を有す
る。前記相異なる第1、第2の処理は、所定のデータ演
算処理(算術、論理など)上で、互いに対(加算/減
算、論理和/論理積)になる演算である。
【0039】処理内容をユーザ定義できるユーザ定義命
令に着目すると、命令を所定の手順にしたがって実行す
るデータ処理装置は、所定の命令による動作を定義する
ための記憶手段(命令定義レジスタ)を有し、前記記憶
手段の状態を参照して前記所定の命令を実行させる命令
制御手段を備える。前記記憶手段(命令定義レジスタ)
は、前記命令制御手段が参照する複数のフラグを有し、
複数のフラグは、前記所定の命令による演算の種類を指
定するフラグと、演算に使用するデータを指定するフラ
グとを含む。
【0040】〔7〕前記データ処理装置を適用したマイ
クロコンピュータ又はシステムLSI等の半導体装置に
着目する。この半導体装置は、前記データ処理装置と、
信号を入力する入力手段と、入力した信号を変換してデ
ィジタルデータを得る第1の変換手段と、前記第1の変
換手段による変換結果を保持する第1のデータ保持手段
と、第2のデータ保持手段と、前記第2のデータ保持手
段に保持したディジタルデータを出力信号に変換する第
2の変換手段と、出力信号を出力する出力手段とを含
む。前記第1のデータ保持手段と前記第2のデータ保持
手段は、前記データ処理装置のアドレス空間上に配置さ
れている。
【0041】前記半導体装置を用いたデータ処理システ
ムは、例えば、制御対象の所定の状態を検出する検出手
段と、前記検出手段の出力を前記入力手段に入力すると
共に制御対象を制御する制御手段を有し、前記出力手段
の出力を前記制御手段に入力するものである。
【0042】
【発明の実施の形態】図1には本発明の一例に係るシン
グルチップマイクロコンピュータが示される。同図に示
されるシングルチップマイクロコンピュータ1は、CP
U2、システムコントローラ(SYSC)3、割込コン
トローラ(INT)4、CPU2の動作プログラムなど
が格納されたROM5、CPU2のワーク領域などに利
用されるRAM6、タイマ(PWMを含む)7、シリア
ルコミュニケーションインタフェース(SCI)8、A
/D変換器9、D/A変換器10、第1入出力ポート
(IOP〔1〕)11〜第9入出力ポート(IOP
〔9〕)19、クロック発振器(CPG)20の機能ブ
ロック乃至はモジュールから構成され、公知の半導体集
積回路製造技術により1つの半導体基板(半導体チッ
プ)上に形成される。これらの機能ブロックは、内部バ
ス21によって相互に接続される。内部バス21はアド
レスバス、データバス、及びコントローラバスを含んで
いる。コントロールバスは、リード信号、ライト信号、
バスサイズ信号、システムクロック信号などの信号線を
含んでいる。前記シングルチップマイクロコンピュータ
は、電源端子として、グランドレベル(Vss)、電源
電圧レベル(Vcc)、アナロググランドレベル(AV
ss)、アナログ電源電圧レベル(AVcc)、アナロ
グ基準電圧(Vref)、その他専用制御端子として、
リセット(RES)、スタンバイ(STBY)、モード
制御(MD0、MD1)、クロック入力(EXTAL、
XTAL)の各端子を有する。
【0043】前記機能ブロックやモジュールは内部バス
21を介して、CPU2によってリード/ライトされ
る。内部バス21のデータバスの幅(ビット数)は特に
制限されないが、16ビットである。
【0044】各入出力ポートは、アドレスバス、データ
バス、バス制御信号あるいはタイマ7、SCI8、A/
D変換器9、D/A変換器10の入出力端子と兼用され
ている。例えば、D/A変換器10のアナログデータ出
力端子(AOT0〜AOT1)は第8ポート18と兼
用、A/D変換器9のアナログデータの入力端子(AI
N0〜AIN7)は第9ポート19と兼用にされてい
る。
【0045】割込信号22は、D/A変換器10、A/
D変換器9、タイマ7、SCI8が出力し、割込コント
ローラ4はこれを入力して、図示を省略する割込み制御
レジスタなどの設定状態に基づいて、CPU2に割込要
求信号23を与える。
【0046】システムコントローラ3は、内部I/Oレ
ジスタとして、限界値設定レジスタ(limit)24
を持ち、この内容をCPU2に与える。限界値設定レジ
スタ(limit)24は正の最大値を、CPU2の最
大のデータサイズで与え、例えば、H’7FFFFFF
Fを出力する。この限界値設定レジスタ24は、特に制
限されないが、CPUのメモリ空間に割り当てられるI
/Oレジスタの一種である。その値を任意に決定する必
要がなければ、固定値を保持してもよい。
【0047】また、A/D変換器9はA/D変換された
データを保持するデータレジスタ(ADDR)25を持
ち、D/A変換器10はD/A変換するデータを保持す
るデータレジスタ(DADR)26を持っている。
【0048】図2には前記CPU2のレジスタ構成が例
示される。CPUは、32ビット長の汎用レジスタを8
本持っている。汎用レジスタは、全て同一機能を持って
おり、アドレスレジスタとしてもデータレジスタとして
も使用することができる。データレジスタとしてしては
32ビット、16ビットおよび8ビットレジスタとして
使用きる。アドレスレジスタおよび32ビットレジスタ
としては、一括して汎用レジスタER(ER0〜ER
7)として使用する。16ビットレジスタとしては、汎
用レジスタERを分割して汎用レジスタE(E0〜E
7)、汎用レジスタR(R0〜R7)として使用する。
これらは同等の機能を持っており、16ビットジスタを
最大16本まで使用することができる。なお、汎用レジ
スタE(E0〜E7)を、特に拡張レジスタと呼ぶ場合
がある。8ビットレジスタとしては、汎用レジスタRを
分割して汎用レジスタRH(R0H〜R7H)、汎用レ
ジスタRL(R0L〜R7L)として使用する。これら
は同等の機能を持っており、8ビットレジスタを最大1
6本まで使用することができる。各レジスタ独立に使用
方法を選択することができる。
【0049】汎用レジスタER7には、汎用レジスタと
しての機能に加えて、スタックポインタ(SP)として
の機能が割り当てられており、例外処理やサブルーチン
分岐などで暗黙的に使用される。例外処理は前記割込み
処理を含む。図示されない制御レジスタなどの設定によ
って、サブルーチン分岐用のスタックポインタと、例外
処理用のスタックポインタを、独立して選択することが
できる。
【0050】PCは24ビットのプログラムカウンタ
で、CPU2が次に実行する命令のアドレスを示す。特
に制限されないもののCPU2の命令は、すべて2バイ
ト(ワード)を単位としているため、最下位ビットは無
効であり、命令リード時には最下位ビットは0とみなさ
れる。
【0051】CCRは8ビットのコンディションコード
レジスタで、CPU2の内部状態を示している。割込み
マスクビット(I)とハーフキャリ(H)、ネガティブ
(N)、ゼロ(Z)、オーバフロー(V)、キャリ
(C)の各フラグを含む8ビットで構成されている。オ
ーバフロー(V)は符号付演算の桁あふれを、キャリ
(C)は符号無し演算の桁あふれを示す。ネガティブ
(N)は、最上位ビットの値を示し、符号付データの場
合に、負数を示す。
【0052】EXRは8ビットのレジスタで、割込みな
どの例外処理の制御を行なう。割込みマスクビット(I
2〜I0)とトレース(T)の各ビットを含んでいる。
割込みなどの例外処理によって、命令のフローを変更す
る場合には、PC、CCR、EXRの内容をスタックに
待避する。例外処理ルーチンからの復帰(リターン)命
令を実行すると、これらの内容は回復される。
【0053】MACは64ビットの積和演算レジスタ
で、積和演算結果を格納する。32ビットのMACH、
MACLから構成される。積和演算は、飽和/非飽和
が、システムコントローラのシステムコントロールレジ
スタ(SYSCR)27で指定される。飽和演算の場合
は、32ビットで結果が得られ、レジスタMACLの3
2ビットが有効になる。オーバフローが発生した場合に
は、詳細を後述する処理を介して符号変化が発生しない
ように、H’7FFFFFFFまたはH’800000
00が設定される。非飽和演算の場合は、42ビットで
結果が得られ、レジスタMACLと、レジスタMACH
の下位10ビットが有効になる。レジスタMACHの上
位22ビットは符号拡張される。
【0054】汎用レジスタ上のデータ構成例、メモリ空
間上のデータ構成、アドレッシングモードと実効アドレ
スの計算方法などについては、前記平成7年3月(株)
日立製作所発行『H8S/2600シリーズH8S/2
000シリーズプログラミングマニュアル』記載のCP
Uと同様であり、アドレス空間16MB(乃至データ用
4GB)を利用できる。マキシマムモード/ミニマムモ
ード(前記平成7年3月(株)日立製作所発行『H8S
/2600シリーズH8S/2000シリーズプログラ
ミングマニュアル』の記載ではアドバンスト/ノーマル
モード)を持って、それぞれ、アドレス空間64kB/
16MBを選択できる。
【0055】図3にはCPU2の命令のうち特徴的なも
のが例示されている。同図に示される命令は、既存のC
PUの命令セットを包含した上で、新規に追加された命
令である。新規に追加された命令は、飽和演算に用いら
れるところの飽和値転送命令と条件付飽和命令である。
【0056】飽和値転送命令は、正/負の2種類(MO
VPL、MOVMI)と、データサイズとして、バイト
(.B)、ワード(.W)、ロングワード(.L)があ
る。いずれも1ワードの命令長を持つ。Szは命令のサ
イズを示し、Rdはディスティネーションレジスタを示
す。
【0057】正の飽和値転送命令(MOVPL)は、限
界値設定レジスタ24の内容を後述する図5のセレクタ
SEL及び算術論理演算器ALUを介して、バスWBに
出力し、デスティネーションレジスタにライトする。
【0058】負の飽和値転送命令(MOVMI)は、限
界値設定レジスタ24の内容の符号反転値を、前記セレ
クタSEL及び算術論理演算器ALUを介して、バスW
Bに出力し、デスティネーションレジスタにライトす
る。
【0059】飽和値転送命令がワード(.W)の場合
は、限界値設定レジスタ24の上位16ビット、例えば
H’7FFFを使用する。同様に、バイト(.B)の場
合は、限界値設定レジスタ24の上位8ビット、例えば
H’7Fを使用する。
【0060】前記飽和値転送命令の実行時には、コンデ
ィションコードレジスタCCRの内容が保持される。
【0061】飽和演算において飽和値転送命令を用い
た、オーバフローを回避するための処理例は、 ADD.L ER0,ER1 (1) BVC L3 (2) BPL L2 (3) MOVPL.L ER1 (4a) BRA L3 (5) L2:MOVMI.L ER1 (6a) L3: とされる。
【0062】前記オーバーフロー回避の処理プログラム
に比較して、(4a)(6a)が、飽和値転送命令に変
更されている。この置き換えを行なえば、(2)〜
(6)の処理は、5ワード(10バイト)に短縮でき
る。また、(2)〜(5)の処理は7ステートに短縮し
て実行することができる。
【0063】これは、飽和値転送命令では、飽和値(限
界値)をイミディエイトデータなどとしないので、命令
長を短縮できるためである。
【0064】尚、符号無しの最大値、例えば、H’FF
FFFFFFを限界値設定レジスタ24から転送する命
令を追加しても良い。このような命令は個数、回数など
を計測する場合に用いることができる。
【0065】前記飽和値転送命令はその命令コードが暗
黙的に限界値設定レジスタ24を指定する。汎用的なレ
ジスタ指定フィールドを持っていない。ここで、飽和値
転送命令と、0を転送するクリア(CLR)命令との相
違点について述べる。クリア命令は、同じデータの減算
や排他的論理和命令、例えば、SUB.L ER0,E
R0や、XOR.L ER0,ER0などで代替するこ
とができる。一方、前記H’7FFFFFFF、H’8
0000000、H’FFFFFFFFなどの固定値を
転送する命令は、一般的な演算命令では実現できず、複
数の命令を組合わせることによってしか実現できないた
め、演算処理効率が高い。
【0066】条件付飽和命令(LIMIT)は、データ
サイズとして、バイト(.B)、ワード(.W)、ロン
グワード(.L)があり、いずれも1ワードの命令長を
持つ。条件付飽和命令は、デスティネーションレジスタ
の内容を入力して、オーバフローフラグ(V)とネガテ
ィブ(N)を参照して、オーバフローしていれば、限界
値を設定する。
【0067】即ち、V=0であれば、オーバフローが発
生していないので、入力されたデスティネーションレジ
スタの内容をそのまま出力する。V=1であれば、オー
バフローが発生しており、N=1であれば、桁あふれの
結果、符号が負になったものであるので、限界値設定レ
ジスタ24から正の最大値例えばH’7FFFFFFF
を出力する。N=0であれば、桁あふれの結果、符号が
正になったものであるので、限界値設定レジスタ24の
符号を反転して、負の最大値例えばH’8000000
0を出力する。前記同様に、ワード(.W)の場合は限
界値設定レジスタ24の上位16ビットを、バイト(.
B)の場合は限界値設定レジスタの上位8ビットを使用
する。
【0068】条件付飽和命令を用いた、オーバフローを
回避するための処理は、 ADD.L ER0,ER1 (1) LIMIT.L ER1 (7) L3: とすることができる。
【0069】前記オーバーフロー回避の処理プログラム
に対して、(2)〜(6)の処理をを(7)の条件付飽
和命令に変更し、1ワード(2バイト)、1ステートで
実行可能に短縮できる。
【0070】図4には図3に示される命令の命令コード
が例示される。本命令コードの例は、前記平成7年3月
(株)日立製作所発行『H8S/2600シリーズH8
S/2000シリーズプログラミングマニュアル』記載
のCPUの命令セットを包含した上で、追加可能にされ
ている。
【0071】ビット7、6が、図3の命令の種類を示
し、B’01(B’はバイナリデータを意味する記号で
ある)がLIMIT命令、B’10がMOVPL命令、
B’11がMOVMI命令を意味する。ビット5、4が
データサイズを示し、B’01がバイト、B’10がワ
ード、B’11がロングワードを意味する。ビット3〜
0がレジスタ指定フィールドであり、デスティネーショ
ンレジスタを指定する。使用するデータは暗黙的に指定
され、イミディエイトデータフィールドや、使用するデ
ータを指定するための実効アドレスの計算に使用するレ
ジスタフィールドや絶対アドレスフィールドなどは、命
令コード中に存在せず、命令コード長を短縮している。
この例では限界値設定レジスタ24の設定値を利用す
る。
【0072】図5には前記CPU2の詳細な一例がブロ
ック図によって示される。CPU2は、命令レジスタI
R、命令デコーダ・制御回路CONT及びレジスタセレ
クタRSEL1,RSEL2から成る命令制御部を備え
る。更にCPU2は実行部を構成する為の、ライトデー
タバッファDBW、リードデータバッファDBR、セレ
クタSEL、算術論理演算器ALU、インクリメンタI
NC、汎用レジスタER0〜ER7、プログラムカウン
タPC、コンディションコードレジスタCCR、拡張レ
ジスタEXR、アドレスバッファMAB、バススイッチ
BSW、及び乗算器MULTを有する。
【0073】命令レジスタIRには命令がロードされ
る。前記命令デコーダ・制御回路CONTは、割込み要
求信号23などの信号に基づいて命令実行手順を制御す
ると共に、命令レジスタIRから供給される命令を解読
し、演算器等を制御して命令を実行させる。前記命令デ
コーダ・制御回路CONTは、そのための制御信号とし
て、出力タイミングの相違する制御信号Ca、Cb、C
cを出力する。命令デコーダ・制御回路CONTは自身
にも、ステート番号などをフィードバックしている。
【0074】算術論理演算器ALUとインクリメンタI
NCは、動作タイミングの異なった演算器であり、それ
ぞれ、オーバラップしつつ演算可能である。
【0075】システムコントローラ3の限界値設定レジ
スタ(limit)24の内容及びコンディションコー
ドレジスタCCRのVフラグ、Nフラグが前記セレクタ
SELに入力される。セレクタSELの出力は算術論理
演算器ALUの入力となる。
【0076】GB、DB、WBの各バスはφ、φ#の両
方で異なったデータを転送可能である。φ、φ#は互い
にノーオーバラップの関係の2相クロックである。汎用
レジスタなども、φ、φ#の両方でデータを入出力可能
である。
【0077】レジスタセレクタRSEL1、RSEL2
には、命令コードの一部に含まれるレジスタ指定フィー
ルドの情報rs,rdが与えられる。この供給タイミン
グは、レジスタ指定フィールドの位置によって相違され
る。レジスタセレクタRSEL1、RSEL2は出力タ
イミングの相違するレジスタ選択信号Ra,Rbを出力
する。例えば、16ビット単位の命令コードのビット7
〜4が、情報rsとしてレジスタセレクタRSEL1に
与えられ、それよりも0.5ステート遅れてビット11
〜8及び3〜0が情報rdとしてレジスタセレクタRS
EL2に与えられる。0.5ステートの遅延は遅延回路
DELによって与えられる。
【0078】CPU2内部の回路DBW、DBR、AL
U、INC、ER0〜ER7、PC、CCR、EXR、
MABは、バスGB、DB、WBによって相互に接続さ
れている。前記2つの演算器ALU、INCに対し、バ
スGB、DBからデータを入力し、バスWBにデータを
出力する。ライトデータバッファDBWは内部データバ
スへの出力、リードデータバッファDBRは内部データ
バスからの入力、アドレスバッファMABは内部アドレ
スバスへの出力、命令レジスタIRは内部データバスか
らの入力が可能であり、それぞれ内部バスに接続されて
いる。
【0079】ライトデータバッファDBW及びリードデ
ータバッファDBRは32ビット構成とされる。ライト
データは32ビット一括してライトデータバッファDB
Wに書き込むことができ、所定のタイミングで、16ビ
ットの内部データバスに出力される。また、内部データ
バスから読み出したデータを、リードデータバッファD
BRに一旦格納して、32ビットのリードデータを一括
して出力することができる。アドレスバッファMABは
+2のインクリメント機能を有する。プログラムカウン
タPCはCPU2が次に実行する命令のアドレスを示し
ている。
【0080】命令デコーダ・制御回路CONTは前記乗
算器MULTの制御も行なう。乗算器MULTは積和演
算に好適な回路構成を有し、バススイッチBSWを介し
て内部データバスや前記バスGB,WB,DBとインタ
フェースされる。乗算器の状態はステータス信号BUS
Yによって前記命令デコーダ・制御回路CONTに通知
される。
【0081】図6にはCPU2のセレクタSELの論理
記述が示される。この論理記述は、RTL(Register T
ransfer Level)若しくはHDL(Hardware Descriptio
n Language)記述と呼ばれ、公知の論理合成ツールによ
って、論理回路に論理展開できる。HDLはIEEE1
364として標準化されている。これに示される論理記
述の構文は、イフ(if)文とケース(case)文に
準拠してる。セレクタSELは、飽和値転送命令及び条
件付飽和命令で使用する。この結果が、算術論理演算器
ALUのデスティネーション側入力aluinとキャリ
入力cinとされる。本命令では、ソース側入力は0と
され、算術論理演算器ALUには加算が指示されるもの
とする。
【0082】前記条件付飽和命令LIMITでは、命令
デコーダ・制御回路CONTはその命令をデコードする
(IR[15:6]=10’b0000_0000_0
1)と、制御信号limitを1として判定する。セレ
クタSELは制御信号limitが1と判定されると、
コンディションコードレジスタCCRのオーバフロー
(V)及びネガティブ(N)フラグを参照して、alu
in,cinを選択する。
【0083】V=0であれば、内部バスGBに出力され
たデスティネーションレジスタの内容が選択され(al
uin=gb)、キャリは0とされる(cin=0)。
この結果、デスティネーションレジスタの内容が内部バ
スWBに出力され、デスティネーションレジスタに格納
される。
【0084】V=1、かつN=1であれば、限界値設定
レジスタ24の内容(limitd)が選択され(al
uin=limitd)、キャリは0とされる(cin
=0)。この結果、限界値設定レジスタ24の内容、即
ち、正の最大値が内部バスWBに出力され、デスティネ
ーションレジスタに格納される。
【0085】V=1、かつN=0であれば、限界値設定
レジスタ24の内容(limitd)の論理反転が選択
され(aluin=〜limitd)、キャリは1とさ
れる(cin=1)。この結果、限界値設定レジスタ2
4の内容の符号反転(2の補数)、即ち、負の最小値が
内部バスWBに出力され、デスティネーションレジスタ
に格納される。
【0086】命令デコーダ・制御回路CONTは、前記
正の飽和値転送命令MOVPLをデコードする(IR
[15:6]=10’b0000_0000_10)
と、制御信号movplを1として判定する。セレクタ
SELは制御信号movplが1と判定されると、限界
値設定レジスタ24の内容(limitd)が選択され
(aluin=limitd)、キャリは0とされる
(cin=0)。この結果、限界値設定レジスタ24の
内容、即ち、正の最大値が内部バスWBに出力され、デ
スティネーションレジスタに格納される。
【0087】命令デコーダ・制御回路CONTは、負の
飽和値転送命令MOVMIをデコードする(IR[1
5:6]=10’b0000_0000_11)と、制
御信号movmiを1として判定する。セレクタSEL
は制御信号movmiが1と判定されると、限界値設定
レジスタ24の内容(limitd)の論理反転値が選
択され(aluin=〜limitd)、キャリは1と
される(cin=1)。この結果、限界値設定レジスタ
24の内容の符号反転、即ち、負の最小値が内部バスW
Bに出力され、デスティネーションレジスタに格納され
る。
【0088】なお、キャリについては、図示はされない
ものの、前記セレクタSELの出力と他の命令に対応す
る制御信号とに基づいて、算術論理演算器ALUに入力
されるようにする。算術論理演算器ALUについては、
バイトサイズ、ワードサイズの場合は上位側を使用する
ものとし、不必要な下位側データは、デスティネーショ
ンレジスタのライト時に無視するものとする。
【0089】図7には条件付飽和命令の別の例が示され
る。この例では、ソースデータとして入力した値を、正
の最大値として扱う。図7の条件付飽和命令は、デステ
ィネーションレジスタとソースレジスタの内容を入力し
て、オーバフローフラグ(V)とネガティブ(N)を参
照して、オーバフローしていれば、ソースレジスタの内
容を限界値を設定する。即ち、V=0であれば、オーバ
フローが発生していないので、入力されたデスティネー
ションレジスタの内容をそのまま出力する。V=1であ
れば、オーバフローが発生しており、N=1であれば、
桁あふれの結果、符号が負になったものであるので、正
の最大値であるソースレジスタの内容を出力する。N=
0であれば、桁あふれの結果、符号が正になったもので
あるので、ソースレジスタの符号反転して、負の最大値
を出力する。図7の条件付飽和命令を用いる場合には、
予め、ソースレジスタに、正の最大値を、一般の転送命
令などで設定しておく。この設定は、所望の処理の前に
実行しておき、サーボ制御などの演算のフラグに影響を
与えないようにする必要がある。
【0090】図8には図7の条件付飽和命令をサポート
する為のセレクタSELの論理記述を例示する。この場
合には、図7の条件付飽和命令の変形例を実現するよう
に、限界値設定レジスタ24の代りに、内部バスDB上
に出力されているソースレジスタの内容を使用する。即
ち、{V,N}={1,1}のときaluin=dbと
し、{V,N}={1,0}のときaluin=〜db
とする。
【0091】図9には条件付飽和命令の更に別の例とし
て命令LIMITPL、LIMITMIが示される。そ
れら命令は、デスティネーションレジスタの内容を入力
して、ネガティブ(N)を参照して、限界値を設定す
る。
【0092】即ち、LIMITMI命令は、N=0であ
れば、入力されたデスティネーションレジスタの内容を
そのまま出力する。N=1であれば、正の最大値である
限界値設定レジスタ24の内容をディスティネーション
レジスタに出力する。LIMITPL命令は、N=1で
あれば、入力されたデスティネーションレジスタの内容
をそのまま出力する。N=0であれば、正の最大値であ
る限界値設定レジスタ24の内容をディスティネーショ
ンレジスタに出力する。
【0093】図9の条件付飽和命令LIMITMIを用
いた処理は、例えば CMP.L #limitd,ER1 LIMITMI.L ER1 とすることができる。即ち、ER1の内容が、limi
tdより小さければ(N=0)変更せず、大きければ
(N=1)limitdを設定するものである。
【0094】図9の条件付飽和命令LIMITPLを用
いた処理は、例えば CMP.L #limitd,ER1 LIMITPL.L ER1 とすることができる。即ち、ER1の内容が、limi
tdより大きければ変更せず、小さければlimitd
を設定するものである。
【0095】図10には更に別の命令ADDMACを示
す。同図に示される命令ADDMACは、レジスタMA
Cをソースレジスタとし、汎用レジスタをデスティネー
ションレジスタとした加算命令である。減算命令を持っ
てもよいが、一方のデータを符号反転すれば加算命令で
代用可能であるから、最低限加算命令を持てばよい。ま
た、レジスタMACが32ビット長であることから、ロ
ングワードサイズのみを持つ。積和演算(MAC)命令
は、前記レジスタSYSCRのFIXEDビットによっ
て、飽和/非飽和を選択できるものとする。
【0096】レジスタMACとの加算命令においても、
FIXEDビットによって、飽和/非飽和を選択する。
飽和を選択した場合には、加算でオーバフローが発生す
ると、正の最大値、または負の最小値が得られる。
【0097】図11には前記命令ADDMACのサポー
トに着目した場合に好適なCPU2aを例示する。図5
のCPU2との相違点は、積和演算の飽和/非飽和を指
示する制御信号FIXEDが命令デコーダ・制御回路C
ONTに入力されている。また、算術論理演算器ALU
の出力側にセレクタSELaが付加されている。その他
の点は図5と同じであるからその詳細な説明は省略す
る。
【0098】図12には図11のCPU2aにおけるセ
レクタSELaの論理記述が例示される。
【0099】前記命令ADDMACによってレジスタM
ACとの演算を行なうとき、命令デコーダ・制御回路C
ONTはその命令ADDMACのデコード結果によって
得られる制御信号macselを1と判定する。その制
御信号addmacが1と判定されると、オーバフロー
結果(vout)、ネガティブ出力(nout)によっ
て、出力(selout)が、算術論理演算器ALUの
演算結果(aluout)又は限界値limitdに選
択される。選択された結果は、内部バスWBに出力され
る。なお、ネガティブ出力(nout)は、演算結果
(aluout)の最上位ビットと同一である。
【0100】積和演算(MAC)命令に対して、非飽和
が指示されている場合には、FIXED=0であり、算
術論理演算器ALUの演算結果(aluout)が出力
される。vout=0であれば、算術論理演算器ALU
の演算結果(aluout)が選択され、内部バスWB
に出力され、デスティネーションレジスタに格納され
る。vout=1、かつnout=1であれば、限界値
設定レジスタ24の内容(limitd)が選択され、
限界値設定レジスタ24の内容、即ち、正の最大値が内
部バスWBに出力され、デスティネーションレジスタに
格納される。vout=1、且つnout=0であれ
ば、限界値設定レジスタ24の内容(limitd)の
符号反転が選択され、限界値設定レジスタ24の内容の
符号反転、即ち、負の最小値が内部バスWBに出力さ
れ、デスティネーションレジスタに格納される。
【0101】図13には前記CPU2の開発環境の概略
が示される。前記CPU2,2aは既存の所定のCPU
に対して上位互換CPUの関係を持つことになる。この
とき、既存のCPUと上位互換CPUの開発環境を、以
下により共通化しようとするものである。
【0102】CPU2,2aの使用者は、各種エディタ
などを用いて、C言語乃至アセンブリ言語でプログラム
を作成する。これは通常、複数のモジュールに分割して
作成される。
【0103】Cコンパイラ30は、使用者の作成したそ
れぞれのC言語ソースプログラムを入力し、アセンブリ
言語ソースプログラム乃至オブジェクトモジュールを出
力する。アセンブラ31は、アセンブリ言語ソースプロ
グラムを入力し、オブジェクトモジュールを出力する。
リンケージエディタ32は、上記Cコンパイラ30やア
センブラ31の生成した、複数のオブジェクトモジュー
ルを入力して、各モジュールの外部参照や相対アドレス
などの解決を行い、1つのプログラムに結合して、ロー
ドモジュールを出力する。
【0104】ロードモジュールは、シミュレータデバッ
ガ33に入力して、パーソナルコンピュータなどのシス
テム開発装置上で、CPUの動作をシミュレーション
し、実行結果を表示し、プログラムの解析や評価を行な
うことができる。また、エミュレータ34に入力して、
実際の応用システム上などで動作する、いわゆるインサ
ーキットエミュレーションを行ない、マイクロコンピュ
ータ全体としての、実動作の解析や評価を行なうことが
できる。
【0105】このほかに、ライブラリアンとして、汎用
的なサブルーチンなどを提供することもできる。
【0106】図14には前記システム開発装置上でCP
Uを選択する手法が例示される。ここでは、CPUのマ
キシマムモードを選択する場合について説明する。図1
4の(a)に示されるように、パーソナルコンピュータ
などのシステム開発装置上のディスプレイにプロンプト
が表示された状態で、例えば、“SET CPU=CP
U−2MAX”と入力すればよいようにする。或いは、
(b)に示されるように、プロンプトが表示された状態
で、“SET CPU”とコマンドを入力し、これに対
して、CPUの種類及び動作モードのメニューを、例え
ば“CPU NAME (1.CPU−1MAX、2.
CPU−1MIN、3.CPU−2MAX、4.CPU
−2MIN)”と表示するとともに、メニュー番号の入
力を要求し、使用者がメニューの番号1〜4のいずれか
を入力すればよいようにする。ここで、CPU−1MA
Xは既存CPUのマキシマムモード、CPU−1MIN
は既存CPUのミニマムモード、CPU−2MAXは前
記CPU2のマキシマムモード、CPU−2MINは前
記CPU2のミニマムモード、を示すものとする。この
ほか、ウィンドウのドロップダウンメニューで選択可能
にしてもよいし、ワークステーションなどであれば、C
シェルコマンドとして入力することもできる。更に、ア
センブラやCコンパイラなどの、ソースプログラムの制
御命令として、CPUの種類及び動作モードを入力する
ことができる。
【0107】アセンブラ31は、選択されたCPUの種
類及び動作モードに従って、入力されたアセンブリ言語
ソースプログラム上の記述を解釈し、オブジェクトモジ
ュールを生成したり、エラーがあればそれを表示したり
する。既存CPUを選択したとき、前記CPU2に存在
して、既存CPUに存在しない命令、例えばMOVPL
を記述すると、エラーになるようにする。CPU2は前
記既存のCPUの命令を包含しているから、CPU2に
適合するアセンブラ31を開発し、既存CPUについて
は、CPU2に存在して、既存CPUに存在しない命令
を検出する機能を追加する等して、アセンブラ31をC
PU2と既存CPUに容易に共通化できる。既存CPU
については、アセンブラが存在しているはずであるか
ら、これを容易に改造して、CPU2に適用できること
は言うまでもない。
【0108】Cコンパイラ30は、選択されたCPUの
種類及び動作モードに従って、使用可能な、オペレーシ
ョン、データサイズ、アドレッシングモードの組合せで
示される命令や、汎用レジスタ、アドレス空間を判別し
て、C言語によるプログラムを、CPUの命令に変換
し、アセンブリ言語プログラムやオブジェクトモジュー
ルとして出力する。本発明の命令は関数として記述でき
るようにするとよい。Cコンパイラ30自体には、C言
語によるプログラムを、CPUの命令に変換する機能の
他、C++言語によるプログラムのコンパイルや、モジ
ュール間最適化などといった、CPUの命令セットとは
直接関係のない機能の向上が図られているが、CPU毎
の個別のコンパイラでは、これらの機能向上を全ての個
別のコンパイラに適用しなければならない。本発明のよ
うに、共通のCコンパイラ30としておけば、前記、C
PU2の命令セットとは直接関係のない機能向上を図る
ことが容易になり、また、開発効率などを向上すること
ができる。
【0109】シミュレータデバッガ33は、入力された
ロードモジュールのプログラムを解釈して、CPUの動
作をシミュレーションし、その中で、エラーがあればそ
れを表示したりする。例えば、既存CPUを選択し、前
記CPU2に存在して、既存CPUに存在しない命令を
記述するとエラーになるようにする。命令コード及び命
令実行機能自体は前記CPU2が包含しているから、こ
のためのシミュレータデバッガを開発し、既存CPUに
ついては、前記CPU2に存在して、既存CPUに存在
しない命令を検出するような追加を行なうなどして、容
易に共通化できる。既存CPUについて、シミュレータ
デバッガが存在していれば、これを容易に改造して、前
記CPU2に適用できることは言うまでもない。
【0110】図15には前記CPU2のアセンブラの出
力するリストが例示されている。リストには、行番号、
ロケーションカウンタ、オブジェクトコード、ソース行
番号、ソースステートメントが表示される。
【0111】図15の(a)に示されるプログラムで
は、制御命令(.CPU)で、CPU−2MAX、即
ち、本発明に係る前記CPU2のマキシマムモードを指
定している。なお、ソースプログラム上で「.」で始ま
る命令は制御命令であり、マイクロコンピュータのプロ
グラムには直接の関係はない。また、STACKなどの
ラベルは、本プログラムのみでは解決されないので、オ
ブジェクトコード上の相当するフィールドは0とされて
いる。これらは、前記の通り、リンケージエディタで解
決される。
【0112】図15の(b)では、同一のプログラム
を、既存のCPU(CPU−1MAX)を指定してアセ
ンブルした例を示す。既存のCPUには、LIMIT.
W命令が存在しないため、エラーが表示され、オブジェ
クトコードは生成されない。
【0113】図16には本発明に係るCPU2を有する
マイクロコンピュータのためのエミュレータ47を示
す。
【0114】エミュレーション用プロセッサ40は、マ
イクロコンピュータ部分にエミュレーション用インタフ
ェース61を加えて構成される。前記マイクロコンピュ
ータ部分は、例えば図1のマイクロコンピュータ1の構
成に相当される。
【0115】コネクタ部41がシングルチップマイクロ
コンピュータの代わりに応用システム(ターゲットシス
テム又はユーザシステムとも称する)42のターゲット
マイクロコンピュータ搭載領域43に装着される。エミ
ュレーション用プロセッサ40は前記コネクタ部41と
インタフェースケーブル44を介して前記応用システム
42と信号の入出力を行う。
【0116】特に制限はされないものの、前記応用シス
テム42に、ユーザバス45が存在し、ユーザメモリ4
6を接続することも可能とされる。この場合、エミュレ
ーション用プロセッサ40が出力し、インタフェースケ
ーブル44を介して供給されるユーザストローブ信号に
従って、ユーザメモリ46はリード/ライトされる。
【0117】一方、エミュレーション用プロセッサ40
は前記エミュレーションインタフェースを用いてエミュ
レーションバス50に接続される。エミュレーションバ
ス50には図示はされない状態信号・制御信号などを含
む。前記エミュレーションバス50を用いて、エミュレ
ーション用プロセッサ40から、応用システム42とエ
ミュレーション用プロセッサ40の内部状態に応じた情
報などが出力され、また、エミュレーション用プロセッ
サ40に対し、エミュレーションのための各種信号が入
力される。エミュレーション用プロセッサ40の、図示
はされないエミュレートモード端子が電源レベルに固定
され、エミュレーション用プロセッサ40内部ではエミ
ュレートモードが設定される。
【0118】さらに、前記エミュレーションバス50に
は、エミュレーションメモリ51、ブレーク制御回路5
2、リアルタイムトレース回路53などが接続される。
前記エミュレーションメモリ51は、特に制限はされな
いものの、RAMなどによって構成され、前記のユーザ
プログラムを格納した領域と、エミュレーションのため
のプログラムを格納した領域とを持つ。前記ブレーク制
御回路52は、エミュレーション用プロセッサ40によ
る制御状態やエミュレーションバス50の状態を監視し
て、その状態が予め設定された状態に達した時に、前記
エミュレータ専用割込みを入力して、エミュレーション
用プロセッサ40のCPU(便宜上CPU2と記す)に
よるユーザプログラムの実行を停止させ、エミュレーシ
ョン用プログラム実行状態に遷移させる(ブレークす
る)。前記リアルタイムトレース回路53は、前記CP
U2のリード動作またはライト動作を示す信号、命令リ
ード動作を示す信号(CPUステータス信号)、エミュ
レーションバス50に与えられるアドレスやデータさら
には制御信号を逐次蓄える。
【0119】前記エミュレーションメモリ51、ブレー
ク制御回路52、リアルタイムトレース回路53はコン
トロールバス54にも接続され、コントロールバス54
を介してコントロールプロセッサ55の制御を受けるよ
うになっている。前記コントロールバス54は、前記コ
ントロールプロセッサ55に接続されるとともに、ホス
トインタフェース回路56を介して、特に制限はされな
いものの、前記パーソナルコンピュータなどのシステム
開発装置57に接続される。
【0120】例えば、システム開発装置57から入力さ
れたプログラム(ロードモジュール)をエミュレーショ
ンメモリ51のユーザプログラム格納領域に転送し、内
蔵ROM上に配置されるべきかかるプログラムをCPU
2がリードすると、エミュレーションメモリ51上のプ
ログラムがリードされ、実行される。また、ブレーク条
件や、リアルタイムトレース条件などもシステム開発装
置57から与えることができる。
【0121】コントロールプロセッサ55は、応用シス
テム42で本来使用するCPUの種類の選択を行うため
のプログラムを、エミュレーションメモリ51のエミュ
レーションプログラム格納領域に格納する。CPU2
は、かかるプログラムを、所定の条件でブレークした状
態で、実行し、エミュレーションインタフェース61内
の制御レジスタ62の設定を行なうことで、エミュレー
ション上の必要な設定を行なう。この場合は、エミュレ
ーション用プログラムの実行モード、いわゆるブレーク
モードでのみライト可能にすると都合がよい。開発途上
にあるユーザのソフトウェアの誤動作によって、誤った
設定を行なってしまうことを抑止できる。また、制御レ
ジスタを用いることによって、応用システム42で本来
使用するCPUの種類の選択対象が増えたりしても、制
御レジスタの構成のみを変更すればよく、エミュレーシ
ョン用インタフェースを変更する必要がなく、エミュレ
ータ47のハードウェアを変更しなくてよい。
【0122】エミュレーション用プロセッサ40および
エミュレータ47を複数のCPUをサポート可能にする
ことによって、実際のマイクロコンピュータのみを開発
すればよく、開発効率を向上することができる。
【0123】エミュレータ47においても、前記同様
に、CPUの種類を選択可能にする。選択方法は、パー
ソナルコンピュータなどのシステム開発装置57上で、
図14と同様に、行なえばよい。選択された内容は、コ
ントロールプロセッサ55を介して、所定のプログラム
として、エミュレーションメモリ51のエミュレーショ
ンプログラム格納領域に格納され、CPU2は、かかる
プログラムを実行し、エミュレーションインタフェース
内の制御レジスタの設定を行なうことで、前記選択が実
行される。
【0124】このとき、同時に、エミュレーション用プ
ロセッサ40の動作モードなどを同時に指定してもよ
い。エミュレーション用プロセッサ40の動作モード
は、例えば、シングルチップモード、内蔵ROM有効拡
張モード、内蔵ROM無効拡張モードなどがあり、これ
に、CPU2の動作モードを組合せて指定することがで
きる。
【0125】応用システム42で本来使用するCPUの
種類を指定可能にすることにより、同一のエミュレーシ
ョン用プロセッサ40乃至同一のエミュレータ47を以
って、内蔵機能モジュールや内蔵メモリの容量の組合せ
などで、多数の種類のシングルチップマイクロコンピュ
ータをエミュレーションできる。エミュレーション用プ
ロセッサ40乃至エミュレータ47の開発後でも、内蔵
している機能の組合せで実現できれば、エミュレーショ
ン用プロセッサ乃至エミュレータの開発を行なうことな
く、応用分野などの動向に合わせた、シングルチップマ
イクロコンピュータのみを開発していくことができる。
開発効率を向上することができる。
【0126】エミュレータに占めるエミュレーション用
プロセッサの費用は、少ないから、エミュレーション用
プロセッサにはなるべく多くの機能モジュールなどを内
蔵しておけばよい。
【0127】図17には本発明に係るCPU2のための
エミュレータ47によるトレースリストを例示する。こ
のトレースリストは、本発明に係るCPU2のLIMI
T.L ER1に相当する命令コードを、80行目で、
200番地から、命令リードを行い、既存のCPUで未
定義の命令(DATA.W H’0071)として表示
する例が示されている。
【0128】トレースリストは、行番号(BP)、アド
レスバス(AB)、データバス(DB)、アドレスデコ
ード(MA)、リード/ライト(R/W)、ステータス
(ST)、割込み信号(NMI、IRQ)を表示すると
ともに、実行した命令のアセンブリ言語によるリストを
示す。これは、データバスの状態と、図示はされないC
PU命令実行状態信号を解析して、逆アセンブラが表示
する。なお、行番号は、トレースリストの最後は0にな
る。また、アドレスデコード(MA)のROMは内蔵R
OMへのアクセス、リード/ライト(R/W)のRはリ
ードサイクル、ステータス(ST)のPRGは命令を示
す。
【0129】更に、(a)で示されている、LIR、L
ID信号は、エミュレーション用インタフェース61に
含まれている、命令解析用の信号のトレース結果であ
る。通常、かかる信号は、トレースリスト上には表示さ
れないが、トレースメモリには格納され、逆アセンブラ
などの解析に用いられる。また、使用者には、通常公開
されないコマンドなどによって、表示することができ
る。
【0130】LIR信号は当該バスサイクルが、命令リ
ードであることを示す。LID信号は命令実行開始を示
す。
【0131】例えば、200行目は、100番地から、
命令リードを行い、命令コードH’7A07を読み出し
たことを示す。199、198行目と合わせて、MO
V.L#FFFFFF0E:32,ER7を実行したこ
とが表示されている。逆アセンブラは、LID信号で命
令の第1ワードを判定して、H’7A07FFFFFF
0Eを、前記MOV.L #FFFFFF0E:32,
ER7と解釈して表示するものである。
【0132】既存のCPUのエミュレーション時に、逆
アセンブラは、CPU2は持つが、既存CPUが持たな
い命令を実行すると、未定義の命令として、表示する。
未定義の命令として表示する場合は、データとして、命
令コードを表示する。
【0133】図18には本発明を適用したマイクロコン
ピュータのエミュレーション用プロセッサのブロック図
を示す。
【0134】エミュレーション用プロセッサ40は、図
1のシングルチップマイクロコンピュータ1の部分(マ
イクロコンピュータコア60)と、エミュレーションイ
ンタフェース61から構成される。なお、図1のタイマ
や入出力ポートなどは、I/Oとして代表させ、また、
内部バスの詳細とバスコントローラを図示している。な
お、図1のタイマ7や入出力ポート11〜19などは、
I/O63、ユーザバッファ(ユーザBUF)64とし
て代表させ、また、図1ではその詳細な図示を省略した
内部バスIDB,IAB,PDB,PABの詳細とバス
コントローラ(BSC)65を図示している。ユーザイ
ンタフェース66は前記I/O63、ユーザバッファ6
4、及び図示を省略する入出力バッファなどを含む、ユ
ーザシステム(エミュレーション対象システムであるタ
ーゲットシステム)に接続されるインタフェース回路を
総称する。
【0135】マイクロコンピュータコア60は、図2の
マイクロコンピュータ1に対して未定義命令検出回路6
8が追加されている。エミュレーションインタフェース
61は、制御レジスタ62を含む。制御レジスタ62
は、ブレークモードでのみライト可能とされる。エミュ
レーションインタフェース61から入出力される信号
は、アドレスバス、データバス、リード信号、ライト信
号、データサイズ信号、命令フェッチ信号などバスの状
態を表示するバスステータス信号、命令の実行開始を示
す信号、割込み処理の実行開始を示す信号などのCPU
2の実行状態を示すCPUステータス信号、などを含
み、エミュレータによる、マイクロコンピュータの動作
解析に使用される。
【0136】未定義命令検出回路68は、CPU2に入
力される命令コードを解析し、選択されているCPU2
に存在しない命令が実行を開始したことを検出すると、
CPU2にブレーク割込みを要求する。CPU2に何れ
の機能が選択されるかは、制御レジスタ62から指示さ
れる。例えば、既存のCPUが選択されている場合に
は、前記条件付飽和命令等を実行すると、未定義命令と
して検出される。具体的には、命令コードを前記LIR
信号でラッチして、解析し、未定義と解読された場合、
前記LID信号が発生した時点で、ブレーク割込みを要
求するようにすればよく、容易である。
【0137】エミュレーション用プロセッサ40は、前
記の通り、本発明に係るCPU2を内蔵して、これを用
いて、サブセットの機能を持つ、既存のCPUの代行を
させることもできる。
【0138】いずれにせよ、エミュレーション用インタ
フェースを共通化しておけば、CPU乃至そのほかの機
能ブロックが変更になった場合にも、エミュレータ側の
ハードウェアの変更をする必要がなく、エミュレーショ
ン用プロセッサ40のみを変更して、命令の動作を解析
して表示する際の逆アセンブラに、いずれのCPUを対
象にするかを指示すればよい。逆アセンブラに対する指
示は、使用者がシステム開発装置から指定することもで
きるし、アセンブラなどからの入力情報によって、自動
的に選択されるようなものであってもよい。これによっ
てエミュレータの開発効率を向上し、逸早くエミュレー
タの開発環境を提供することができる。本発明では、限
定された命令を付加するようにしているので、CPUス
テータス信号を共通化し、エミュレータによる動作解析
も共通にすることが容易である。
【0139】図19には前記シングルチップマイクロコ
ンピュータ1を用いたデータ処理システムを例示する。
マイクロコンピュータ1は図1に示されるものである。
マイクロコンピュータ1の他に、リードチャネル70、
CD復調器(CD−DA)71、ホストインタフェース
72などの半導体集積回路を含む。リードチャネル70
はプリアンプ、データストローブ回路を含み、ホストイ
ンタフェース72はCDROMデコーダ、インタフェー
ス回路及びメモリを含む。
【0140】更にこのデータ処理システムは、信号を読
みとるピックアップ73、ピックアップ73を駆動する
アクチュエータモータ74、ピックアップ73とアクチ
ュエータモータ74をスライドさせるスレッドモータ7
5、CD−ROMなどの光ディスク76を回転させるス
ピンドルモータ77、オーディオ出力を行うD/A変換
器80を含む。
【0141】その詳細は後述するが、シングルチップマ
イクロコンピュータ1は、トラッキングエラーや、フォ
ーカスエラーなどをエラー信号をA/D変換器9を介し
て入力し、D/A変換器10でドライバ78,79を介
してアクチュエータモータ(2軸)74及びスレッドモ
ータ75をサーボ制御する。マイクロコンピュータ1の
動作周波数を20MHzとする。サーボの周期(搬送波
周期)は、例えばCD−ROMの標準速の場合、454
0ステート(22.7μs)[44.1kHz]とされ
る。
【0142】ピックアップ73の位置はアクチュエータ
モータ74とスレッドモータ75によって制御される。
ピックアップ73は、発光素子(レーザダイオード)に
よってレーザ出力を行い、光ディスク76からの反射光
を受光素子(フォトダイオード)で検出する。
【0143】ピックアップ73で読出された信号は、リ
ードチャネル70のプリアンプで増幅された後、波形整
形回路でデジタル波形に整形される。この出力(EF
M)は、CD復調器71で、デジタル復調され、デイン
タリーブされ、配列が元に戻され、エラー訂正や補間が
実施される。
【0144】オーディオデータの場合は、D/A変換器
80から音声信号が出力される。データの場合には、ホ
ストインタフェース72のCDROMデコーダ部で、更
にデスクランブルや、誤り訂正などが行われ、一旦メモ
リに蓄えられた後、ホストインタフェース72から出力
される。
【0145】ホストインタフェース72は、エンハンス
ドIDEバスなどのホストバスを介して、図示を省略す
るパーソナルコンピュータなどと接続され、コマンドな
どを入力し、ステータスなどの表示と、データの出力な
どを行う。
【0146】尚、スピンドルモータ77の制御は、当該
モータ77からの検出信号と基準信号との誤差に基づい
て、スピンドルモータ77の回転速度が制御される。
【0147】マイクロコンピュータ1は、リードチャネ
ル70に対して、SCI8及びI/Oポートを用いて、
制御を行うとともに、VREF、フォーカスエラー信号
(FE)、トラッキングエラー信号(TE)をA/D変
換器9で入力、トラックカウント信号をタイマ7の外部
イベント入力に入力する。
【0148】CD復調器71に対して、データバス81
を介して制御を行う。ホストインタフェース72に対し
て、データバス82を介して制御を行うとともに、入力
したコマンドなどを解析して、リセット要求などを、割
込み要求信号として入力し、これらに従った動作を、マ
イクロコンピュータ1及びそのほかの回路に指示して実
現する。
【0149】アクチュエータモータ74に対しては、D
/A変換器10の出力で、ドライバ78を介して制御す
る。アクチュエータモータ74は2軸で、光ディスク7
6に垂直方向のフォーカス制御と、半径方向のトラッキ
ング制御を行うため、D/A変換器10において2個の
D/A変換チャネルを用いる。
【0150】スレッドモータ75に対しては、タイマ7
のPWMタイマ機能の出力で、ドライバ79を介して制
御する。スレッドモータ75の制御には2種類がある。
第1は、再生の経過に従って、ピックアップ73全体を
光ディスク76の半径方向に移動させていく制御であ
り、これはトラッキング制御の低周波成分を検出して、
トラッキングを追従させるべく制御される。第2は、シ
ークであり、この場合には、トラッキングの追従は行わ
ず、所望のトラックへのジャンプを行う。
【0151】シークを高速化するためには、ピックアッ
プ73などの特性にも適合するように、目標アドレスへ
の距離に応じて、モータの速度が異なる制御方法を組合
わせて実現され、例えば、外周方向への移動は正
(+)、内周方向への移動は負(−)として、CPU2
によって処理される。これをPWMにライトすると、P
WMパルスとして出力される。このとき、横切るトラッ
クの数は、リードチャネル70の出力するトラックカウ
ント信号を、タイマ7のイベントカウント信号として検
出して、どれだけの距離を移動したかを知ることができ
る。光ディスク76の図示を省略したトレイに対して、
オープンスイッチ、クローズスイッチをI/Oポートで
入力、イジェクトスイッチを割込み要求信号として入力
して、トレイ(ローディング)モータをPWMタイマの
出力で駆動する。
【0152】上記によれば、フォーカス、トラッキン
グ、スレッドのサーボを、マイクロコンピュータ1のA
/D入力で入力し、サーボ演算をCPU2のソフトウェ
アで行い、出力をD/A出力で制御を行うことができ、
全体的な論理規模の縮小や、部品点数の削減に寄与する
ことができる。
【0153】図20には図19のシステムにおけるCP
U2のサーボ制御処理の一例が示されている。同図に示
される処理は、フォーカスサーボ処理である。この制御
は、所謂PID制御を採用している。図20においてZ
-1は遅延要素、G,C,R,Nは係数、遅延要素Z-1
介して加算結果が帰還される加算器+は積分要素を構成
し、減算器−は微分要素を構成する。図20に示される
処理はCPU2によって以下の手順で行なわれる。
【0154】先ず、マイクロコンピュータ1はフォーカ
スエラー信号(FE)をA/D変換器9に入力する。A
/D変換結果は MOV.B @ADDRA,R0H (1) に示されるように、レジスタADDRから所定の汎用レ
ジスタR0Hにロードされる。ロードされたA/D変換
結果に対しては、 SUB.B Vrefs,R0H (2) で示されるように、接地電位(AVss)と基準電圧
(Vref)の間の値Vrefs(例えばH’80)を
0とし、これより低い値を負数、これより大きい値を正
数とした、符号付のデータに変換される。
【0155】変換された符号データは、微分項の演算に
備え、 MOV.B R0H,R1L (3) EXTS.W R1 (4) NEG.W R1 (5) MOV.W R1,@FE_ORG (6) の処理を経て、16ビットに拡張されて、RAMに待避
される。
【0156】また、前記変換された符号データは、積分
項の演算に備え、 NEG.B R0H (7) MOV.B #00,R0L (8) MOV.W R0,@FE_NEW (9) の処理を経て、16ビットに拡張されて、RAMに待避
される。
【0157】次に、図20に示される比例項と積分項の
演算が行われる。その演算処理は、 MOV.L @FES,ER1 (10) LDMAC ER1,MAC (11) MOV.L #FE_NEW,ER2 (12) MOV.L #FOG,ER3 (13) MAC @ER2+,@ER3+ (14) MAC @ER2+,@ER3+ (15) STMAC MAC,ER1 (16) MOV.W R0,@(−2,ER2) (17) である。この演算処理において、アドレスFOG、及び
FOG+2には、比例項及び積分項の計数が設定されて
いる。更に、MAC命令には飽和演算が指示されてい
る。アドレスFE_NEW+2には、今回の入力値を保
持しておく。
【0158】次に、前回の微分項との加算を MOV.L @FNS,ER0 (18) ADD.L ER0,ER1 (19) によって行い、その後、 LIMIT.L ER1 (20) によって、前記条件付き飽和命令による飽和処理を行
う。
【0159】更に、有効データを24ビットへ桁合わせ
を行い、RAMに待避する処理を、L3:MOV.L
ER1,ER0 (21) BMI L4 (22) AND.W #00FF,E0 (23) BRA L5 (24) L4:OR.W #FF00,E0 (25) L5:MOV.L ER0,@FNS (26) によって行なう。
【0160】そして、ノイズシェーピング動作、桁合わ
せのためのシフト処理を、 MOV.W @FE_DP,R0 (27) L6:SHAL.L ER1 (28) によって行い、飽和処理を、 LIMIT.L ER1 (29) によって行う。条件付飽和命令は算術シフト命令につい
ても使用できる。更に処理は繰り返し継続する。演算結
果は、逐次D/A変換器にライトされ、出力される。
【0161】図21には更に別の命令のとして条件付論
理演算命令(LOGIC)が示される。この命令を利用
する場合には、限界値設定レジスタと同様の論理値設定
レジスタを持ち、論理値を設定しておく。条件付論理演
算命令(LOGIC)は、N=1のとき、論理値レジス
タの内容とディスティネーションレジスタの内容との論
理和をディスティネーションレジスタに格納し、N=0
のとき、論理値レジスタの内容の論理反転データとディ
スティネーションレジスタの内容との論理和をディステ
ィネーションレジスタに格納する、処理を行なう。この
条件付論理演算命令(LOGIC)によって、前記(2
2)〜(25)の処理を、LOGIC.L ER0
(30)のように変更し、命令コード長を短縮し、実行
時間を短縮することができる。尚、H’FF00000
0との論理和は、上位8ビットを1とし、下位24ビッ
トは元のデータと同様とすることになる。H’00FF
FFFFとの論理積は、上位8ビットを0とし、下位2
4ビットは元のデータと同様とすることになる。
【0162】図22には更に別の命令としてユーザ定義
命令(UDIF)が示される。ユーザ定義命令(UDI
F)を利用する場合には、演算動作を指定する命令定義
レジスタ(OPDEF)と、使用するデータ定義レジス
タ(DATADEF)とを持ち、ユーザ定義命令実行時
には、命令定義レジスタを参照して、算術論理演算器A
LUの演算内容を指示し、演算結果をデスティネーショ
ンレジスタに格納する。
【0163】図23には前記命令定義レジスタ(OPD
EF)とデータ定義レジスタ(DATADEF)との一
例が示される。命令定義レジスタ(OPDEF)は使用
する第1、第2フラグと処理内容を指定する。第1フラ
グは、op[7:6]で指定し、無条件/オーバフロー
(N)とネガティブ(N)を選択できる。これに基づき
入力したデータをそのまま出力するか否かを判定する。
第2フラグは、op[5:4]で指定し、無条件、キャ
リ(C)とネガティブ(N)を選択できる。これに基づ
き、データの使用方法を判定し、成立していれば設定デ
ータをそのまま使用するか、反転して使用するかを選択
する。演算は、op[3:1]で指定し、算術転送、論
理転送、加算、減算、論理積、論理和を選択できる。o
p[0]は予約されている。
【0164】前記条件付飽和命令(LIMIT)に相当
する命令は、第1フラグはオーバフロー(V)を、第2
フラグはネガティブ(N)を設定し、op[7:4]=
B’1010とすることによって定義することができ
る。第2フラグに対応する処理として、算術転送を設定
し、op[3:1]=B’000とする。データ定義レ
ジスタに前記同様にH’7FFFFFFFを設定してお
く。第2フラグが成立している場合は、設定データが転
送され、不成立の場合は、設定データの符号反転が転送
される。
【0165】前記条件付飽和命令の別の変形例(LIM
ITLT)に相当する命令は、第1フラグはネガティブ
(N)を、第2フラグは無条件を設定し、op[7:
4]=B’1100とすることによって定義することが
できる。第2フラグに対応する処理として、算術転送を
設定し、op[3:1]=B’000とする。データ定
義レジスタには所定の基準値を設定しておく。直前の比
較命令(CMP)で基準値より大きい場合は、設定デー
タが転送され、小さい場合は、保持される。
【0166】前記条件付論理演算命令(LOGIC)に
相当する命令は、第1フラグは無条件を、第2フラグは
ネガティブ(N)を設定し、op[7:4]=B’00
10とすることによって定義することができる。第2フ
ラグに対応する処理として、論理和を設定し、op
[3:1]=B’110とする。データ定義レジスタに
前記同様にH’FF000000を設定しておく。論理
和を指定しているので、第2フラグが成立している場合
は、設定データが使用され、不成立の場合は、設定デー
タの論理反転が使用され、対になる演算である論理積が
行われる。
【0167】正の最大値の飽和値転送命令(MOVP
L)に相当する命令は、第1、第2フラグに無条件を設
定し、op[7:4]=B’0000とすることによっ
て定義することができる。第2フラグに対応する処理と
して、算術転送を設定し、op[3:1]=B’000
とする。データ定義レジスタに前記同様にH’7FFF
FFFFを設定しておく。常に、設定データが転送され
る。
【0168】符号無しデータの加算に引続いて、キャリ
が発生していれば、最大値H’FFFFFFFFを設定
する場合には、第1フラグは無条件を、第2フラグはキ
ャリ(C)を設定し、op[7:4]=B’0011と
する。第2フラグに対応する処理として、算術転送を設
定し、op[3:1]=B’000とする。データ定義
レジスタにH’FFFFFFFFを設定しておく。常
に、設定データが転送される。
【0169】図24には更に別の構成を有するCPU2
bが示される。前記CPU2との相違点は、ALU制御
セレクタCSELが設けられ、算術論理演算器ALU及
びセレクタSELの制御を行う。ユーザ定義命令実行時
には、命令定義レジスタで指定された内容に応じて、セ
レクタSEL及び算術論理演算器ALUの制御が行われ
る。そのほかの命令実行時には、デコーダ・制御回路C
ONTの出力する制御信号に応じて、セレクタSEL及
び算術論理演算器ALUの制御が行われる。
【0170】図25及び図26には前記ALU制御セレ
クタCSELの論理記述の一部が示される。算術論理演
算器ALUは、add、or、xor、andの各論理
演算の指示制御信号(演算制御信号)で演算内容が指示
され、入力データaluxinとaluyinとに対し
て演算を行なう。
【0171】第1フラグ、第2フラグとも無条件で、算
術転送の場合(op[7:2]=B’00000?)
は、V、N、Cフラグによらず、加算が指示され、0と
データ設定レジスタ(datadef)の内容が入力さ
れ、その結果、datadefが出力される。加算の場
合(op[7:2]=B’000010)は、加算が指
示され、内部バスGB上に出力されているデスティネー
ションレジスタの内容(gb)とデータ設定レジスタ
(datadef)の内容が入力され、加算結果が出力
される。減算(op[7:2]=B’000011)の
場合は、加算が指示され、内部バスGB上に出力されて
いるデスティネーションレジスタの内容(gb)とデー
タ設定レジスタの内容の論理反転(〜datadef)
とキャリが入力され、減算結果が出力される。
【0172】上記説明した実施の態様によれば、以下の
作用効果を得ることができる。
【0173】〔1〕CPU2は、命令セットに、飽和値
転送命令として、正の最大値、負の最小値をデスティネ
ーションのロケーションに転送する命令(MOVPL,
MOVMI)を備える。この命令は、正の最大値、負の
最小値を、イミディエイトデータなどのように命令コー
ド中に含まず、例えば限界値設定レジスタ(24)の値
を暗黙的に指定する。これにより、イミディエイトデー
タの転送命令など、命令コード中にデータフィールド
や、実効アドレス計算用のフィールドを持つ場合に比較
して、命令コード長を短縮することができる。命令コー
ド長を短縮することによって、実行時間を短縮すること
ができる。
【0174】〔2〕条件付飽和命令として、演算結果の
フラグを参照して、このフラグの状態によって、正の最
大値、負の最小値、または、元の値のいずれかを選択す
る命令LIMITを備えることによって、オーバーフロ
ーの回避を容易に行うことができる。正の最大値、負の
最小値を、イミディエイトデータなどのように命令コー
ド中に含まず、暗黙的に指定することにより、イミディ
エイトデータの転送命令など、命令コード中にデータフ
ィールドや、実効アドレス計算用のフィールドを持つ場
合に比較して、命令コード長を短縮することができる。
判定処理と飽和値転送とを単一の命令で実現することに
より、プログラムステップ数を短縮し、ひいては全体的
な命令コード長を短縮できる。命令コード長を短縮する
ことによって、実行時間を短縮することができる。
【0175】加算、減算、シフトなどの任意の算術的処
理に引続いて、条件付飽和命令を実行することによっ
て、オーバーフローの回避を行うことができる。単一の
条件付飽和命令によって、加算、減算、シフトなどに共
通に利用することができる。
【0176】共通に利用可能な条件付飽和命令とするこ
とによって、全ての算術的処理命令に、飽和/非飽和を
設定することに比較して、容易に命令を追加することが
できる。また、内部I/Oレジスタなどによって、算術
的処理命令の飽和/非飽和を選択することに比較して、
プログラムを容易にすることができる。
【0177】〔3〕限界値設定レジスタ24を持つこと
により、任意の値を飽和値として使用できる。限界値設
定レジスタの符号反転を、対になる他方の飽和値とする
ことによって、内部I/Oレジスタや、内部I/Oレジ
スタとCPUとの間の配線などの物理的規模を縮小でき
る。
【0178】〔4〕積和演算器などを持つとともに、積
和演算レジスタに対するそのほかの演算を行う命令AD
DMACを備え演算にオーバフローが発生した場合に
は、積和演算の飽和/非飽和の選択に応じて、正の最大
値、負の最小値をすることを選択可能にすることによ
り、オーバフロー回避のための命令などを必要としない
でよい。積和演算レジスタMACに応じて、命令数やデ
ータサイズの種類を限定できる。
【0179】〔5〕条件付論理演算命令LOGICによ
って、プログラムを容易にし、命令コード長を短縮した
り、実行時間を短縮したりすることができる。特に、使
用するデータを暗黙的に指定することにより、命令コー
ド長を短縮することができる。
【0180】〔6〕使用者が定義可能な命令UDIF、
または、CPUのハードウェアを変更しないで、定義変
更可能な命令を備えることによって、応用分野や使用方
法に応じて、頻出する処理を随時定義して実行可能にす
ることができ、プログラムを容易にし、命令コード長を
短縮したり、実行時間を短縮したりすることができる。
【0181】フラグを参照し、複数の演算を切替えるこ
とによって、複数の分岐命令と複数の演算命令などを用
いる場合に比較して、プログラムを容易にし、命令コー
ド長を短縮したり、実行時間を短縮したりすることがで
きる。使用するデータを暗黙的に指定することによっ
て、命令コード長を短縮することができる。
【0182】〔7〕ソースプログラムレベルまたはオブ
ジェクトプログラムレベルで、既存のCPUの命令セッ
トを包含した上で、上記命令を追加することによって、
ソフトウェア資産を有効に利用することができ、使用者
のソフトウェア開発効率を向上することができる。共通
に利用可能な条件付飽和命令や飽和値転送命令のみを追
加することによって、既存の命令セットを維持及び包含
することが容易にできる。
【0183】〔8〕既存のCPUと、ソフトウェア開発
装置共通に利用可能にし、CPUを選択する手段を設け
ることによって、使用者の不所望の費用を抑止できる。
また、Cコンパイラなどは共通に機能向上などを行うこ
とが可能であるから、ソフトウェア開発装置の開発効率
を向上することができる。開発効率を向上することによ
って、開発に必要な資源を削減し、削減した資源を以っ
て、機能向上の頻度を高めることも可能になる。
【0184】
〔9〕既存のCPUとCPU2との間で、
エミュレーション用インタフェース61を共通化し、ひ
いては、同じエミュレータのハードウェアを共有でき
る。エミュレーション用インタフェースを共通化した
り、エミュレータのハードウェアを共通化することによ
って、逸早く開発環境を整えることができ、また、エミ
ュレータの開発に必要な資源を最小限にすることができ
る。飽和命令や飽和転送命令のみを追加することによっ
て、エミュレーション用インタフェースの共通化が容易
になる。
【0185】〔10〕制御対象の、エラー値乃至ずれ量
をA/D変換器9などに入力して、CPU2が、変換結
果をリードし、これに基づいて、上記命令を用いて、適
宜オーバフローを回避しつつ処理を行い、得られた補正
値を、D/A変換器10、PWM出力などの出力手段に
設定して、サーボ制御を行うことを可能にするととも
に、シークなどの制御を、前記D/A変換器、PWM出
力などの出力手段によって行うことを可能にすることに
よって、サーボ制御の、ソフトウェア処理を容易にし、
プログラム容量を縮小するとともに、処理を高速するこ
とができる。
【0186】更に、シークの制御を、CPUの制御によ
って行うことによって、ピックアップなどの特性に合わ
せるなどといった柔軟な対応ができ、前記サーボ制御と
シークの制御を、同一のD/A変換器、PWM出力など
の出力手段で行うことにより、半導体集積回路の全体的
な論理的・物理的規模の縮小を図るとともに、マルチプ
レクサなどの部品を削減し、費用の低減に寄与すること
ができる。
【0187】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0188】例えば、CPUのレジスタ構成やバス構
成、詳細な論理構成などは任意にできる。必ずしも、他
のCPUと命令セットを共通にしたり、開発環境を共通
にする必要はない。飽和値転送命令や、条件付飽和命令
等はいずれかを持てばよく、プログラム容量を短縮した
り、高速化を実現できる。例えば、条件付飽和命令3種
類のみを既存の命令セットに追加することは比較的容易
である。少なくとも、全ての算術演算命令に飽和/非飽
和の選択を追加するよりは容易である。条件付飽和命令
については、全てのデータサイズを持つ必要はなく、使
用頻度の高いデータサイズのみを可能としてもよい。
【0189】また、限界値設定レジスタを持たずに、
H’7FFFFFFFなどを固定的に用いるようにして
もよい。負の最小値を、正の最大値の符号反転とする必
要は必ずしもなく、正の最大値と負の最小値独立の値を
設定できるようにしてもよい。飽和値転送命令と条件付
飽和命令とで、独立した限界値設定レジスタを持っても
よい。
【0190】限界値設定レジスタや、論理値設定レジス
タ、命令定義レジスタは、内部I/Oレジスタとして持
つほか、マスクROMなどで構成し、製造工程で書込む
ようにしてもよいし、フラッシュメモリなどとして、使
用者が書込むようにしてもよい。必ずしも、アドレス空
間上に存在しなくてもよい。
【0191】シングルチップマイクロコンピュータのそ
の他の機能ブロックについても何等制約されない。A/
D変換器、D/A変換器やPWMの構成、及び、そのほ
かの機能ブロックの組合わせなども、応用システムに則
して、種々変更可能である。応用システムは、CDRO
Mや光ディスクドライブに限定されず、カメラ一体型の
自動焦点などにも対応可能である。カメラのCCDで光
電変換された結果を、A/D変換に入力して、変換結果
をCPUで処理し、処理結果に従ってD/A変換或はP
WMでレンズモータを駆動すればよい。
【0192】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるシング
ルチップマイクロコンピュータに適用した場合について
説明したが、それに限定されるものではなく、命令を解
読して実行するデータ処理装置や半導体装置に広く適用
することができる。
【0193】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0194】すなわち、命令の処理に使用するデータを
暗黙的に指定することにより、イミディエイトデータの
転送命令など、命令コード中にデータフィールドや、実
効アドレス計算用のフィールドを持つ場合に比較して、
命令コード長を短縮し、実行時間を短縮することができ
る。
【0195】フラグを参照し、複数の演算乃至データを
切替えることによって、複数の分岐命令と複数の演算命
令などを用いる場合に比較して、プログラムを容易に
し、命令コード長を短縮したり、実行時間を短縮したり
することができる。
【0196】共通に利用可能な命令とすることにより、
ソースプログラムレベルまたはオブジェクトプログラム
レベルで、既存のCPUの命令セットを包含した上で、
かかる命令を追加することが容易にできる。ソフトウェ
ア資産を有効に利用することができ、使用者のソフトウ
ェア開発効率を向上することができる。
【図面の簡単な説明】
【図1】本発明の一例に係るシングルチップマイクロコ
ンピュータのブロック図である。
【図2】CPUのレジスタ構成を例示する説明図であ
る。
【図3】CPUの命令セットに含まれる飽和値転送命令
及び条件付飽和命令の説明図である。
【図4】図3に示される命令の命令コードを例示するフ
ォーマット図である。
【図5】CPUの詳細な一例を示すブロック図である。
【図6】CPUのセレクタSELの論理記述の一例を示
す説明図である。
【図7】条件付飽和命令の別の例を示す説明図である。
【図8】図7の条件付飽和命令をサポートする為のセレ
クタSELの論理記述を例示す説明図である。
【図9】条件付飽和命令の更に別の例である命令LIM
ITPL、LIMITMIの説明図である。
【図10】命令ADDMACの説明図である。
【図11】命令ADDMACのサポートに着目した場合
に好適なCPUのブロック図である。
【図12】図11のCPUにおけるセレクタの論理記述
を例示する説明図である。
【図13】CPUの開発環境の概略を示す説明図であ
る。
【図14】システム開発装置上でCPUを選択する手法
を例示する説明図である。
【図15】CPUのアセンブラの出力するリストを例示
する説明図である。
【図16】エミュレータの一例を示すブロック図であ
る。
【図17】エミュレータによるトレースリストを例示す
る説明図である。
【図18】エミュレーション用プロセッサの一例を示す
ブロック図である。
【図19】シングルチップマイクロコンピュータを用い
たデータ処理システムを例示するブロック図である。
【図20】図19のシステムにおけるCPUのサーボ制
御処理の一例を示すブロック図である。
【図21】条件付論理演算命令(LOGIC)の説明図
である。
【図22】ユーザ定義命令(UDIF)の説明図であ
る。
【図23】命令定義レジスタ(OPDEF)とデータ定
義レジスタ(DATADEF)との一例を示すレジスタ
フォーマット図である。
【図24】ユーザ定義命令の実行に好適なCPUを例示
するブロック図である。
【図25】ALU制御セレクタ(CSEL)の論理記述
の一部を図26と共に示す説明図である。
【図26】ALU制御セレクタ(CSEL)の論理記述
の一部を図25と共に示す説明図である。
【符号の説明】
1 シングルチップマイクロコンピュータ 2 CPU 3 システムコントローラ 4 割込みコントローラ 5 ROM 6 RAM 24 限界値設定レジスタ 40 エミュレーション用プロセッサ 47 エミュレータ 61 エミュレーションインタフェース 62 制御レジスタ CCR コンディションコードレジスタ MAC 積和演算レジスタ ALU 算術論理演算器 SEL セレクタ SELa セレクタ CONT 命令デコーダ・制御回路

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 基本単位から構成される命令コードを読
    み込んで動作するデータ処理装置であって、 暗黙的に指定される所定のデータの転送を行なう転送命
    令を実行させる命令制御手段を含み、 前記所定のデータはクリア命令によって得られるデータ
    の配列とは異なる配列を有するものであることを特徴と
    するデータ処理装置。
  2. 【請求項2】 前記転送命令は、イミディエイト値又は
    実効アドレスを指定するフィールドをオペレーションコ
    ードに付随して待たず、オペレーションコードの解読結
    果にしたがってデータを指定するものであることを特徴
    とする請求項1記載のデータ処理装置。
  3. 【請求項3】 前記転送命令の命令コードの長さは、前
    記所定のデータより大きく、命令コードの基本単位の整
    数倍の長さより短いものであることを特徴とする請求項
    1又は2記載のデータ処理装置。
  4. 【請求項4】 前記命令制御手段は、前記所定のデータ
    の内容が相異なる、複数の前記転送命令を実行させるも
    のであることを特徴とする請求項1乃至3の何れか1項
    記載のデータ処理装置。
  5. 【請求項5】 前記相異なる所定のデータは、所定のデ
    ータ把握方法上で、互いに対になるものであることを特
    徴とする請求項4記載のデータ処理装置。
  6. 【請求項6】 前記所定のデータの少なくとも一つを指
    定する記憶手段を含んで成るものであることを特徴とす
    る請求項1乃至5の何れか1項記載のデータ処理装置。
  7. 【請求項7】 前記記憶手段は、データ処理装置のアド
    レス空間上に存在するレジスタであることを特徴とする
    請求項6記載のデータ処理装置。
  8. 【請求項8】 前記命令は、複数種類のサイズを指定す
    る領域を有し、短い方のサイズを指定した場合は、前記
    所定のデータを指定する記憶手段の上位側の規定の一部
    を使用するものであることを特徴とする請求項6又は7
    記載のデータ処理装置。
  9. 【請求項9】 フラグ手段を更に有し、前記命令制御手
    段は、前記フラグ手段の所定のビットの状態に基づい
    て、前記所定のデータを転送するかしないかを判定する
    転送命令を実行させるものであることを特徴とする請求
    項1乃至8の何れか1項記載のデータ処理装置。
  10. 【請求項10】 前記命令制御手段は、前記フラグ手段
    の第1のビットの状態に応じて、前記所定のデータを転
    送するかしないかを判定し、前記フラグ手段の第2のビ
    ットが第1の状態であるとき、第1の所定のデータを転
    送させ、第2の状態であるとき、第2の所定のデータを
    転送させるするものであることを特徴とする請求項9記
    載のデータ処理装置。
  11. 【請求項11】 命令を所定の手順にしたがって実行す
    るデータ処理装置であって、 複数の種類の演算命令と、前記複数の種類の演算命令の
    複数に共通に利用可能な補正命令を実行させる命令制御
    手段とを備え、 前記複数の種類の演算命令に共通に利用可能な補正命令
    は、符号付きデータのオーバーフローによる不所望な符
    号変化を補正するものであることを特徴とするデータ処
    理装置。
  12. 【請求項12】 前記命令制御手段は、フラグ手段の第
    1のビットの状態に応じて、前記所定のデータを転送す
    るかしないかを判定し、フラグ手段の第2のビットが第
    1の状態であるとき、第1の所定のデータを転送させて
    符号変化を補正し、前記第2のビットが第2の状態であ
    るとき、第2の所定のデータを転送させて符号変化を補
    正するものであることを特徴とする請求項11記載のデ
    ータ処理装置。
  13. 【請求項13】 相異なる第1、第2の所定のデータ
    は、所定のデータ把握方法上で、互いに対になるもので
    あることを特徴とする請求項12記載のデータ処理装
    置。
  14. 【請求項14】 前記補正命令は、前記第1、第2の所
    定のデータを、命令コード中に含まず、暗黙的に指定す
    るものであることを特徴とする請求項12又は13記載
    のデータ処理装置。
  15. 【請求項15】 命令を所定の手順にしたがって実行す
    るデータ処理装置であって、フラグ手段を有し、前記フ
    ラグ手段の所定のビットが第1の状態であるとき第1の
    処理を行い、第2の状態であるとき第2の処理を実行さ
    せる命令制御手段を有し、 前記相異なる第1、第2の処理は、所定のデータ演算処
    理上で、互いに対になる演算であることを特徴とするデ
    ータ処理装置。
  16. 【請求項16】 命令を所定の手順にしたがって実行す
    るデータ処理装置であって、 所定の命令による動作を定義するための記憶手段を有
    し、前記記憶手段の状態を参照して前記所定の命令を実
    行させる命令制御手段を備え、 前記記憶手段は、前記命令制御手段が参照する複数のフ
    ラグを有し、複数のフラグは、前記所定の命令による演
    算の種類を指定するフラグと、演算に使用するデータを
    指定するフラグとを含むものであることを特徴とするデ
    ータ処理装置。
  17. 【請求項17】 請求項1乃至16の何れか1項記載の
    データ処理装置と、信号を入力する入力手段と、入力し
    た信号を変換してディジタルデータを得る第1の変換手
    段と、前記第1の変換手段による変換結果を保持する第
    1のデータ保持手段と、第2のデータ保持手段と、前記
    第2のデータ保持手段に保持したディジタルデータを出
    力信号に変換する第2の変換手段と、出力信号を出力す
    る出力手段とを含み、 前記第1のデータ保持手段と前記第2のデータ保持手段
    が、前記データ処理装置のアドレス空間上に配置されて
    成るものであることを特徴とする半導体装置。
  18. 【請求項18】 請求項17記載の半導体装置を用いた
    データ処理システムであって、 制御対象の所定の状態を検出する検出手段と、前記検出
    手段の出力を前記入力手段に入力すると共に制御対象を
    制御する制御手段を有し、前記出力手段の出力を前記制
    御手段に入力するものであることを特徴とするデータ処
    理システム。
JP11197223A 1999-07-12 1999-07-12 データ処理装置 Withdrawn JP2001022576A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11197223A JP2001022576A (ja) 1999-07-12 1999-07-12 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11197223A JP2001022576A (ja) 1999-07-12 1999-07-12 データ処理装置

Publications (1)

Publication Number Publication Date
JP2001022576A true JP2001022576A (ja) 2001-01-26

Family

ID=16370896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11197223A Withdrawn JP2001022576A (ja) 1999-07-12 1999-07-12 データ処理装置

Country Status (1)

Country Link
JP (1) JP2001022576A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539882A (ja) * 2010-10-12 2013-10-28 エイアールエム リミテッド データ要素の条件付き選択

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539882A (ja) * 2010-10-12 2013-10-28 エイアールエム リミテッド データ要素の条件付き選択
US9753724B2 (en) 2010-10-12 2017-09-05 Arm Limited Conditional selection of data elements
KR101802740B1 (ko) 2010-10-12 2017-12-28 에이알엠 리미티드 데이터 요소의 조건적 선택
US9983872B2 (en) 2010-10-12 2018-05-29 Arm Limited Conditional selection of data elements

Similar Documents

Publication Publication Date Title
JP2001202243A (ja) データ処理装置
JP2006313561A (ja) データ処理装置
JPH04233640A (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
JP4004915B2 (ja) データ処理装置
JP2806171B2 (ja) データ演算装置
JP4073721B2 (ja) データ処理装置
JPS63192135A (ja) 信号処理方法、信号プロセッサ、その設計方法及びマイクロプロセッサ
JP2001022576A (ja) データ処理装置
JP3786575B2 (ja) データ処理装置
JP3839835B2 (ja) データ処理装置及びマイクロコンピュータ
JPH02123442A (ja) 高速化メモリ
JP3760093B2 (ja) マイクロコンピュータ
JP4545777B2 (ja) データ処理装置
JP4029016B2 (ja) データ処理装置
JP3740321B2 (ja) データ処理装置
JP2001306317A (ja) データ処理装置
KR100322547B1 (ko) 디에스피프로그램다운로드방법및그장치
US20030101333A1 (en) Data processor
JP3019818B2 (ja) データ処理方法
JP2010517154A (ja) コンピュータ・アーキテクチャの状態コード設定を効率的にエミュレートする方法、システムおよびコンピュータ・プログラム
JP4498338B2 (ja) データ処理装置
JP2001344101A (ja) マイクロコンピュータ
JP4382076B2 (ja) データ処理装置
JP2002132499A (ja) データ処理装置及び記録媒体
JP3820707B2 (ja) 割込ベクタアドレス生成装置及びマイクロコンピュータ

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061003