JP4029016B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP4029016B2 JP4029016B2 JP2002197570A JP2002197570A JP4029016B2 JP 4029016 B2 JP4029016 B2 JP 4029016B2 JP 2002197570 A JP2002197570 A JP 2002197570A JP 2002197570 A JP2002197570 A JP 2002197570A JP 4029016 B2 JP4029016 B2 JP 4029016B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- comparison
- branch
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 73
- 238000012546 transfer Methods 0.000 claims description 22
- 238000009825 accumulation Methods 0.000 claims description 7
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 35
- 230000015654 memory Effects 0.000 description 31
- 230000008569 process Effects 0.000 description 30
- 230000003287 optical effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 239000004065 semiconductor Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000006073 displacement reaction Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 5
- 230000001771 impaired effect Effects 0.000 description 5
- 238000004904 shortening Methods 0.000 description 5
- 102100034460 Cytosolic iron-sulfur assembly component 3 Human genes 0.000 description 4
- 101710095809 Cytosolic iron-sulfur assembly component 3 Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 1
- OFFWOVJBSQMVPI-RMLGOCCBSA-N Kaletra Chemical compound N1([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=2C=CC=CC=2)NC(=O)COC=2C(=CC=CC=2C)C)CC=2C=CC=CC=2)CCCNC1=O.N([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=1C=CC=CC=1)NC(=O)OCC=1SC=NC=1)CC=1C=CC=CC=1)C(=O)N(C)CC1=CSC(C(C)C)=N1 OFFWOVJBSQMVPI-RMLGOCCBSA-N 0.000 description 1
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、データ処理装置、さらにはそれにおける処理の高速化技術に関し、例えばシングルチップマイクロコンピュータ(以下、単に「マイクロコンピュータ」という)に適用して有効な技術に関する。
【0002】
【従来の技術】
半導体集積回路装置の製造技術の高度化に伴って、半導体単結晶からなるシングルチップに、中央処理装置(Central Processing Unit;以下、単に「CPU」と称する)、プログラムを格納するROM(ReadOnly Memory)、書き換え可能に各種データを格納するRAM(Random Access Memory)等を含む構成素子を集積して製造したマイクロコンピュータが広範囲に普及してきており、制御モジュールとして各種機器に組み込まれている。
【0003】
尚、マイクロコンピュータについて記載された文献の例としては、特許公開2002−157115号公報がある。
【0004】
【発明が解決しようとする課題】
マイクロコンピュータは、当該機器の状態を参照しつつ、処理の内容を変えていく。すなわち、データアクセスを行い、当該データの値を判定して、判定結果に従って、処理の内容を変えるために、分岐命令を実行する。このような例として、所要のインタフェースを介して、命令を受信し、この命令の内容を判定して、当該命令に対応した処理プログラムに分岐することがある。この場合、想定される命令と、順次比較を行い、比較が一致したところで、分岐を行う。命令の受信から、当該命令に対応した処理を完了するまでの時間は短い方が望ましい。例えば光ディスクドライブの制御の場合、ホストシステムからのリード命令を入力し、入力した命令がリード命令であることを認識して、光ディスクのリード処理を行い、ホストシステムにデータを出力するまでの時間が、リード動作のアクセス時間になるため、この時間を可能な限り短くすることは、ホストシステムでの処理の高速化に有効とされる。
【0005】
近年、携帯電話やICカードをはじめとする多くのマイクロコンピュータ応用分野では、JAVA(登録商標)などの高級言語が用いられてきている。この場合、上記応用分野で用いられるマイクロコンピュータは、その高級言語のバーチャルマシンをエミュレートすることになる。すなわち、上記高級言語のバイトコードを逐次リードし、当該バイトコードに対応した処理プログラムにサブルーチン分岐する。サブルーチンリターン後、再度、次のバイトコードをリードし、サブルーチン分岐する処理を繰り返す。従って所望の処理プログラムに分岐する処理は可能な限り短くすることは、マイクロコンピュータでの処理の高速化に有効とされる。
【0006】
マイクロコンピュータによる機器制御においては、所定のイベントを割り込みとして入力し、所要の時間内に、当該イベントに対応する処理を行う、いわゆるリアルタイム性も重要である。そのため、イベントに対応する処理に要する時間は可能な限り短い方がよい。
【0007】
プログラム用のメモリであるROMを内蔵した、シングルチップ型のマイクロコンピュータにあっては、内蔵ROMの容量が、外部にメモリを接続するのに比較して少ないから、そこに格納されるプログラムのサイズを小さくすることが望ましい。特に近年は、シングルチップ型のマイクロコンピュータの内蔵ROMとして、電気的に書込み消去が可能なフラッシュメモリ、EEPROM(電気的に書込み消去可能なROM)が用いられることが多いが、これらの電気的に書込み消去が可能なメモリは記憶素子が大きく、また、書込み消去用の高電圧発生回路などが必要とされることからその物理的規模が大きくなってしまうため、より一層、プログラムのサイズ低減を可能とすることが望ましい。
【0008】
本発明の目的は、所望の処理プログラムに分岐する処理の高速化を図るための技術を提供することにある。
【0009】
本発明の別の目的は、プログラムのサイズ低減を図るための技術を提供することにある。
【0010】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0011】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0012】
すなわち、課題を解決するための第1の手段は、入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含んでデータ処理装置が構成されるとき、上記実行部は、比較分岐(BCMP)命令が上記制御部でデコードされることで生成された制御信号に従って、上記比較分岐命令を実行するための実行手段を有し、さらにこの上記実行手段は、入力データをレジスタ保持情報と比較する第1手段と、上記比較が所定の状態であるときに、上記比較の回数に対応した情報に基づいて分岐のための分岐アドレスを生成する第2手段と、上記比較の回数が、所定の最大比較回数に達したことを検出するための第3手段と、割り込みが要求された場合に、レジスタ及びプログラムカウンタの内容を復帰可能に保持して、割り込み例外処理に遷移するための第4手段とを含む。
【0013】
さらに具体的な態様では、BCMP命令は、第1のレジスタ(ER5)に比較データのアドレスを、第2のレジスタ(ER6)に分岐アドレステーブルのアドレスを、第3のレジスタ(R4)に最大比較数を、第4のレジスタ(R3)に、比較すべきデータを格納する。
【0014】
最大比較数を指定し、これに達したときに、命令の実行を終了するようにする。入力した値が所望の内容でなかったときの処理を行うことができる。不所望の要因によって、無限回数を実行してしまうことがない。
【0015】
命令コード上は、上記第1〜第4のレジスタの全てを独立に指定するフィールドを持たないようにし、固定的に指定する。マイクロコンピュータの命令セットの空間のうち、BCMP命令に用いる部分を最低限にして、他の命令を増やしたり、他の命令を短い命令コードにしたりでき、また、既存の命令セットと互換性を維持しつつ、本命令を追加する場合も比較的容易にできる。
【0016】
また、命令コード長を短縮することができる。命令コードを短縮することによって、命令リード回数を削減し、処理速度を向上できる。BCMP命令は、他の命令と組合せる必要がないから、使用するレジスタが固定的であっても、使い勝手の低下は少ない。
【0017】
実行途中で割り込み要求が発生した場合には、比較が所定の状態である(比較一致)ときは、分岐まで実行を完了して、割り込み例外処理を実行するようにするとともに、比較が所定の状態でない(比較不一致)ときは、第1〜第4のレジスタの途中の状態を保持し、プログラムカウンタも例外処理からの復帰後に、再実行可能なように保持して、割り込み例外処理を実行する。これによって、使い勝手を損なわず、かつ、割り込み応答時間を長くしてしまうことがない。
【0018】
このように比較分岐(BCMP)命令の実行により、上記の比較分岐が行われるため、例えばパーソナルコンピュータなどのホストから命令を入力して、命令を比較すべきデータとして、比較分岐を行うようにして、命令の入力から、所要の処理の実行までの時間短縮を図ることができる。
【0019】
課題を解決するための第2の手段は、入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含んでデータ処理装置が構成されるとき、上記実行部は、分岐(JMP)命令が上記制御部でデコードされることで生成された制御信号に従って、上記分岐命令を実行するための実行手段を有し、上記実行手段は、使用されたレジスタの内容に従ってデータをリードするための第1手段と、上記リードされたデータと、指定されたアドレス情報とによって、分岐テーブルをリードするための第2手段と、上記リードしたデータに基づき、分岐アドレスを生成して分岐するための第3手段とを含む。
【0020】
さらに具体的な態様としては、指定されたレジスタをアドレスとして、メモリからデータをリードし、リードしたデータを、必要に応じて拡張し、シフトし、指定されたアドレス情報(ディスプレースメント)に加算して、分岐テーブルをリードし、リードした内容を分岐先アドレスとして分岐する。
【0021】
命令の順序に、対応する処理プログラムの先頭アドレスを格納した分岐テーブルを持つことによって、入力した命令を複数のデータと比較することなく、所要のプログラムへの分岐を可能とし、処理速度を向上できる。
【0022】
上記シフトは、分岐テーブルの単位、すなわち、アドレス空間の大きさに相当するように行う。アドレス空間の大きさが4Gバイトであれば、分岐テーブルは4バイト単位であって、シフトは、×4に相当する2ビットシフトを行う。拡張・シフトを行うことで、入力した命令を、直接、分岐テーブルの検索に利用できるので、プログラムを短縮することができ、処理速度も向上できる。
【0023】
命令コードは、データをリードするためのレジスタを指定するレジスタ指定フィールドと、分岐テーブルを示す情報とを持つ。
【0024】
データをリードするためのアドレッシングモードとして、レジスタ間接を使用する。レジスタ間接は、実行前にアドレス計算などを行うことによって、任意のアドレスを指定できるから、多種類のデータリードのためのアドレッシングモードを持たなくても、汎用的に使用できる。上記同様に、マイクロコンピュータの命令セットの空間のうち、JMP命令に用いる部分を最低限にできる。
【0025】
上記同様に、リードした命令に基づき分岐テーブルを参照するようにして、命令の入力から、所要の処理の実行までの時間を短縮できる。
【0026】
課題を解決するための第3の手段は、入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含むデータ処理装置であって、上記実行部は、サブルーチン分岐(JSR)命令が上記制御部でデコードされることで生成された制御信号に従って、上記サブルーチン分岐命令を実行するための実行手段を有し、上記実行手段は、使用されたレジスタの内容に従ってデータをリードするための第1手段と、上記リードされたデータと、指定されたアドレス情報とによって、分岐テーブルをリードするための第2手段と、上記サブルーチン分岐命令の先頭アドレスをスタックに退避し、リターン時には上記サブルーチン分岐命令を再度実行可能にサブルーチン分岐する第3手段とを含む。
【0027】
すなわち、データをリードし、リードデータに基づき分岐テーブルを参照して、自命令の先頭アドレスをスタックに退避し、リターン時に自命令を再度実行可能なように、サブルーチン分岐する手段を設ける。
【0028】
バーチャルマシンをエミュレートする場合、あるいはインタープリトを行いつつ、実行する場合、プログラム全体を1命令とすることができる。
【0029】
その他は、JMP命令の場合と同様とされる。
【0030】
バーチャルマシンをエミュレートする場合に、入力された命令をインタープリトする処理を1命令で実行できる。
【0031】
課題を解決するための第4の手段は、入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含んでデータ処理装置が構成されるとき、上記実行部は、比較累積(CMP/ACC)命令が上記制御部でデコードされることで生成された制御信号に従って、上記比較累積命令を実行するための実行手段を有し、上記実行手段は、データの比較結果を示すフラグの記憶手段と、上記比較累積命令のデータ比較を行い、上記フラグの直前の状態と上記比較累積命令のデータ比較結果を上記フラグに反映させることによって、上記フラグを条件分岐の分岐条件とする手段とを含んで成る。
【0032】
さらに具体的な態様としては、第4の命令CMP/ACC実行時に、第1のフラグ手段(Z)は、直前の比較一致を示す状態と、当該命令の比較一致の結果の論理和を、前記フラグ手段(Z)に反映するデータの複数回の比較結果の一致の論理和を蓄積可能で、複数の比較に対して、条件分岐命令を1個にすることができ、プログラム容量を削減でき、実行ステート数も短縮できる。さらにに詳しくは、比較累積(CMP/ACC)命令実行時に、第2のフラグ手段(C)は、直前の比較大小を示す第1状態と、当該命令の比較大小の結果の第2状態の論理積を、前記フラグ手段(C)に反映するデータの複数回の比較結果の一致の論理和を蓄積可能で、複数の比較に対して、条件分岐命令を1個にすることができ、プログラム容量を削減でき、実行ステート数も短縮できる。
【0033】
課題を解決するための第5の手段は、入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含んでデータ処理装置が構成されるとき、上記実行部は、比較転送(SMOV)命令が上記制御部でデコードされることで生成された制御信号に従って、上記比較転送命令を実行するための実行手段を有し、上記実行手段は、データをリードし、リードしたデータをライトする第1手段と、リードしたデータを比較するための第2手段と、上記比較回数が、所定の最大比較回数に達したことを検出する第3手段と、割り込みが要求された場合に、レジスタ及びプログラムカウンタの内容を復帰可能に保持して、割り込み例外処理に遷移する第4手段とを含む。
【0034】
すなわち、データのリード/ライトを行い、それが設定回数に達すると次の命令を実行し、途中で所定のデータを検出すると、分岐アドレスを生成して分岐する命令を実行する。
【0035】
さらに具体的な態様としては、第1のレジスタ(ER5)にデータの転送元アドレスを、第2のレジスタ(ER6)にデータの転送先アドレスを、第3のレジスタ(R4)に最大転送数を格納する。さらに好適には、第4のレジスタ(R3)に、比較すべきデータが格納される。
【0036】
命令コード上は、上記第1〜第4のレジスタの全てを独立に指定するフィールドを持たないようにし、固定的に指定する。上記同様に、マイクロコンピュータの命令セットの空間のうち、SMOV命令に用いる部分を最低限にできる。
【0037】
また、命令コード長を短縮することができる。命令コードを短縮することによって、命令リード回数を削減し、処理速度を向上できる。SMOV命令は、他の命令と組合せる必要がないから、使用するレジスタが固定的であっても、使い勝手の低下は少ない。
【0038】
実行途中で割り込み要求が発生した場合には、比較が所定の状態である(比較一致)ときは、分岐まで実行を完了して、割り込み例外処理を実行するようにするとともに、比較が所定の状態でない(比較不一致)ときは、第1〜第4のレジスタの途中の状態を保持し、プログラムカウンタも例外処理からの復帰後に、再実行可能なように保持して、割り込み例外処理を実行する。これによって、使い勝手を損なわず、かつ、割り込み応答時間を長くしてしまうことがない。
【0039】
【発明の実施の形態】
図12には、本発明にかかるデータ処理装置の一例であるマイクロコンピュータが示される。
【0040】
このマイクロコンピュータ120は、シングルチップ型であり、全体の制御を司るCPU122、割込コントローラ124、CPU122の処理プログラムなどを格納するメモリであるROM128、CPU122の作業領域ならびにデータの一時記憶用及びスタック用のメモリとすることができるRAM129、タイマ125、シリアルコミュニケーションインタフェース(SCI)126、A/D変換器123、第1乃至第9入出力ポート(IOP1〜IOP9)、クロック発振器(CPG)121を含み、公知の半導体製造技術により、単結晶シリコン基板などのひとつの半導体基板上に形成される。
【0041】
かかるマイクロコンピュータ120は、グランドレベル(Vss)、電源電圧レベル(Vcc)、アナロググランドレベル(AVss)、アナログ電源電圧レベル(AVcc)の各入力端子と、リセット(RES)、スタンバイ(STBY)、モード制御(MD0、MD1)、クロック(EXTAL、XTAL)の各端子を有する。
【0042】
クロック端子EXTAL、XTALに接続される水晶発振子、又は当該端子を介して直接入力される外部クロック信号に基づいて生成される基準クロック(システムクロック)信号に同期して、マイクロコンピュータは動作する。この基準クロック1周期をステートと呼ぶ。
【0043】
マイクロコンピュータ120を構成する各機能ブロックは、内部バス119によって相互に接続さる。この内部バス119はバスコントローラ127によって制御される。内部バスはアドレスバス・データバスのほか、リード信号・ライト信号・バスサイズ信号を伝達するためのコントロールバスを含む。
【0044】
かかる機能ブロックやモジュールは、内部バスを介して、CPU122によってリード/ライト可能とされる。内部バスのデータバス幅は32ビットとする。内蔵ROM、RAMのリード/ライトを1ステップでリード/ライト可能とする。
【0045】
タイマ125、SCI126、A/D変換器123、第1乃至第9入出力ポートIOP1〜IOP9、割り込みコントローラ124、CPG121などが有する制御レジスタを内部I/Oレジスタと総称する。
【0046】
かかるマイクロコンピュータ120にリセット信号RESが与えられると、マイクロコンピュータ120はリセット状態になる。このリセットが解除されると、モード制御で指定された動作モード(シングルチップ、外部バス拡張、内蔵ROM有効など)とされ、CPU122は所定のアドレス(ベクタアドレス)からスタートアドレスをリードして、このスタートアドレスから命令のリードを開始するリセット例外処理を行う。この後、CPU122は逐次ROM128などから命令をリードし、それを解読する。そしてその解読内容に基づいて、フラグやビットの判定や操作を含む、データの処理、あるいはRAM129、タイマ125、SCI126、A/D変換器123、入出力ポートなどとのデータ転送を行う。すなわち、CPU122は、タイマ125、SCI126、A/D変換器123、入出力ポートIOP1〜IOP9などから入力されるデータあるいは機器の状態や指示(スイッチ、ボリュームなど)を参照しつつ、ROMなどに記憶されている命令に基づいて処理を行い、その結果に基づいて、入出力ポートIOP1〜IOP9、タイマ125などを使用しつつ、外部に信号を出力し、機器の制御を行う。
【0047】
割り込みコントローラ124は、タイマ125、SCI126、A/D変換器123からの割り込み信号や、外部からの割り込み信号を取り込んで、割り込み要求信号をCPU122に出力する。
【0048】
CPU122に割込要求信号が与えられると、CPU122は実行中の処理を中断して、割り込み例外処理状態を経て、所定の処理ルーチンに分岐し、所望の処理を行い、割込要因をクリアしたりする。所定の処理ルーチンの最後には、通常復帰命令がおかれ、この命令を実行することによって上記中断した処理を再開する。
【0049】
割り込み例外処理の実行時には、後述のプログラムカウンタ(PC)やコンディションコードレジスタ(CCR)などがRAMなどに退避され、復帰命令実行時に上記プログラムカウンタ(PC)やコンディションコードレジスタ(CCR)などが復帰される。
【0050】
図1には、上記CPU122の構成例が示される。
【0051】
図1に示されるようにこのCPU122は、制御部100と実行部200とを含む。
【0052】
制御部100は、命令バッファIFIFO、命令変更部CHG、命令デコーダDEC、レジスタセレクタRSEL、割り込み制御部INT、及び比較器11を含む。
【0053】
命令バッファIFIFOは、リードした命令を一旦格納する。実行すべき命令は、命令デコーダDECに出力される。
【0054】
命令変更部CHGは、割り込みなどの例外処理を実行するときなどに、リードした命令以外の命令コードを、命令デコーダに与える場合に動作し、その他の場合は、命令バッファIFIFOの内容を命令デコーダDECに与える。
【0055】
割り込み制御部INTは、図12に示される割り込みコントローラ124の出力する割り込み要求信号(割り込み指示)intfを受付ける。また、命令デコーダの出力する割り込み受付けタイミングを参照して、割り込みが受付け可能であれば、命令変更部CHGに割り込みを指示する。
【0056】
命令デコーダDECは、例えば、マイクロROMあるいはPLA(Programmable Logic Array)又は布線論理で構成される。命令デコーダDECの出力の一部が命令デコーダDECにフィードバックされている。これは各命令コード内の遷移に用いるステージコード(TMG)を含む。命令デコーダDECからの制御信号によって実行部100が制御される。制御信号にはA、B、Cの3種類があり、それぞれ有効となるタイミングが異なる。制御信号Aは当該ステップで有効になる。制御信号Bは次のステップで、制御信号Cは次の次のステップで、それぞれ有効になる。尚、制御信号Bには、コンディションコードレジスタCCRを制御するための信号exe、cmpaccが含まれる。
【0057】
レジスタセレクタRSELは、命令デコーダの指示と、命令コード中に含まれるレジスタ指定フィールドの情報に基づいて、レジスタ選択信号を出力する。このレジスタ選択信号によって汎用レジスタの入出力が制御される。
【0058】
実行部200は、特に制限されないが、汎用レジスタER0〜ER7、プログラムカウンタPC、コンディションコードレジスタCCR、テンポラリレジスタTR、算術論理演算器ALU、インクリメンタINC、リードデータバッファDBR、ライトデータバッファDBW、アドレスバッファMABを含む。これらのブロックは内部バスab、gb、db、wb1、wb2によって相互に接続されている。
【0059】
算術論理演算器ALUは、命令によって指定される各種の演算や実効アドレスの計算などを行う。そして、この算術論理演算器ALUからは、演算結果がゼロであることを示す信号z_out、演算結果にキャリ又はボローが発生したことを示す信号c_outが出力される。信号z_outは命令デコーダDECと、コンディションコードレジスタCCRとの双方に伝達される。信号c_outはコンディションコードレジスタCCRに供給される。
【0060】
インクリメンタINCは、主としてプログラムカウンタPCのインクリメントに用いられる。
【0061】
汎用レジスタER0〜ER7、プログラムカウンタPC、コンディションコードレジスタCCR以外のモジュールは、プログラミング上は参照できず、マイクロコンピュータ内部の動作にのみ用いられる。すなわち、リードデータバッファDBR、ライトデータバッファDBW、アドレスバッファMABなどは、内部バスIAB、IDBとのインタフェースをとるために、一時的なデータのラッチやバッファリングに使用される。テンポラリレジスタTRは、マイクロコンピュータ内部の動作に適宜用いられる。
【0062】
リードデータバッファDBRは、ROM128、RAM129、内部I/Oレジスタ、あるいは外部メモリから、リードしたデータを一時的に格納する。ライトデータバッファDBWはROM128、RAM129、内部I/Oレジスタ、あるいは外部メモリへのライトデータを一時的に格納する。
【0063】
アドレスバッファMABは、割り込みコントローラ124から入力されたベクタ、及び内部バスabを入力してアドレス出力を行う。
【0064】
コンディションコードレジスタCCRは、命令デコーダから制御信号exe、cmpaccを取り込み、算術論理演算器ALUからz_out、c_outを入力し、演算結果などを各フラグに反映(格納)する。
【0065】
比較器11は、比較レジスタ(COR)とDBRの内容を入力し、比較一致を示すmatchを命令デコーダDECに出力する。
【0066】
図2には、上記CPU122に内蔵されている汎用レジスタと拡張レジスタ、及びコントロールレジスタの構成例(プログラミングモデル)が示される。
【0067】
図2に示されるようにCPU122は、32ビット長の汎用レジスタを8本持っている。この汎用レジスタは、すべて同機能を有し、アドレスレジスタとしてもデータレジスタとしても使用することができる。データレジスタとしては32ビット、16ビット及び8ビットレジスタとして使用きる。アドレスレジスタ及び32ビットレジスタとしては、汎用レジスタER(ER0〜ER7)として使用する。16ビットレジスタとしては、汎用レジスタERを分割して汎用レジスタE(E0〜E7)としたり、汎用レジスタR(R0〜R7)として使用する。これらは同等の機能を持っており、16ビットジスタを最大16本まで使用することができる。8ビットレジスタとしては、汎用レジスタRを分割して汎用レジスタRH(R0H〜R7H)、汎用レジスタRL(R0L〜R7L)として使用する。これらは同等の機能を持っており、8ビットレジスタを最大16本まで使用することができる。各レジスタ独立に使用方法を選択することができる。汎用レジスタER7には、汎用レジスタとしての機能に加えて、スタックポインタ(SP)としての機能が割当てられており、例外処理やサブルーチン分岐などで暗黙的に使用される。例外処理は上記割り込み処理を含む。
【0068】
プログラムカウンタPCは、32ビットのカウンタで、CPU122が実行中の命令のアドレスを示す。特に制限されないが、CPU122の命令は、すべて2バイト(ワード)を単位としているため、最下位ビットは無効であり、命令リード時には最下位ビットは0とみなされる。
【0069】
コンディションコードレジスタCCRは、8ビット構成のレジスタで、CPU122の内部状態を示している。割り込みマスクビット(I)とハーフキャリ(H)、ネガティブ(N)、ゼロ(Z)、オーバフロー(V)、キャリ(C)の各フラグを含む8ビットで構成されている。
【0070】
図3には、本例における命令フォーマット例が示される。
【0071】
CPU122の命令は、2バイト(ワード)を単位にしている。各命令はオペレーションフィード(op)、レジスタ指定フィールド(r)、EA拡張部(EA)、及びコンディションフィールド(cc)を含む。
【0072】
オペレーションフィールド(op)は、命令の機能を表し、アドレッシングモードの指定オペランドの処理内容を指定する。
【0073】
図3(A)にはオペレーションフィールド(op)のみで命令が構成される場合の例(NOP)が示される。
【0074】
レジスタ指定フィールド(r)は汎用レジスタを指定する。アドレスレジスタのとき3ビット、データレジスタのとき3ビット(32ビットレジスタ)又は4ビット(8又は16ビットレジスタ)である。
【0075】
図3(B)にはオペレーションフィールドとレジスタ指定フィールドとを含んで命令が構成される場合の例(ADD.W R0,R1)が示される。
【0076】
EA拡張部(EA)は、イミディエイトデータ、絶対アドレス又はディスプレースメンを指定し、8ビット、16ビット、又は32ビットで構成される。図3(C)には、オペレーションフィールドとレジスタ指定フィールドとEA拡張部とを含む場合の例(MOV.W R2,@(0010,R3)が示される。また、図3(D)には、オペレーションフィールドとコンディションフィールドとEA拡張部とを有する場合の例(BEQ $+20)が示される。
【0077】
さらに本例では、所望の処理プログラムに分岐する処理を短い命令コードで実現することによって処理の高速化を図るために、図3において(E)〜(I)で示される5種類の命令が用意されている。すなわち、BCM命令、JMP命令、JSR命令、CMP/ACC命令、及びSMOV命令である。
【0078】
BCMP命令は、1ワード命令であり、オペレーションフィード(op)のみで構成され、レジスタ指定フィールド(r)を持たず、使用する汎用レジスタは暗黙的(固定的)に指定される。
【0079】
JMP命令やJSR命令は、3ワード命令である。第1ワードはオペレーションフィード(op)とレジスタ指定フィールド(r)を含む。第2、第3ワードは、分岐テーブルの先頭アドレスを示すディスプレースメント(d)である。
【0080】
CMP/ACCは、1ワード命令であり、オペレーションフィード(op)、レジスタ指定フィールド(r)、及びイミディエイト(xx)を含む。
【0081】
SMOV命令は、2ワード命令である。第1ワードはオペレーションフィード(op)であり、レジスタ指定フィールド(r)を持たず、使用する汎用レジスタは暗黙的(固定的)に指定される。第2ワードは、比較一致時に分岐するためのディスプレースメント(d)である。
【0082】
次に、上記5種類の命令の実行の流れについて説明する。
【0083】
図4には、上記BCMP命令の実行の流れが示される。
【0084】
図4で示される処理が順次行われるように命令デコーダDECの論理が決定される。
【0085】
かかる命令は、以下の設定を行って実行される。すなわち、暗黙的に、以下の汎用レジスタが使用される。
【0086】
汎用レジスタR3に、比較されるデータを設定する。
【0087】
汎用レジスタR4に、最大の比較回数を設定する。
【0088】
汎用レジスタER5に、比較するデータを格納した領域の先頭アドレスを設定する。
【0089】
汎用レジスタER6に、分岐アドレスを格納した領域の先頭アドレスを設定する。
【0090】
まず、命令の切れ目で、割り込み要求か否かを確認し、割り込みが要求されている場合は、当該命令の実行を行わずに、割り込み例外処理を実行する。割り込みが要求されていない場合には次のように処理される。
【0091】
第1ステップ(S1)では、制御信号Aに基づいて、汎用レジスタER5をアドレスとしてデータリードを行うとともに、汎用レジスタER5のインクリメントを行う。汎用レジスタER5を内部バスab経由で内部アドレスバスIABに出力するとともに、インクリメンタINCでインクリメントし、結果を内部バスwb1経由で、汎用レジスタER5に格納する。制御信号Bに基づいて、リードしたデータをリードデータバッファDBRに格納する。汎用レジスタER5のインクリメントは、データのサイズに応じた加算である。例えば、データのサイズがバイトサイズであれば、1を加算する。
【0092】
第2ステップ(S2)では、制御信号Aに基づいて、バスを使用したリード/ライトを行わないこと(nop)が指示される。制御信号Bに基づいて、次のステップで上記第1ステップでリードされたデータとレジスタR3とを、算術論理演算器ALUに転送し、この算術論理演算器ALUで比較(減算)を行う。そして、この比較結果がゼロかどうかの判別を行う。この判別結果はz_outで示される。
【0093】
次のステップ(S3)は、第2ステップ(S2)の制御に基づく、z_outによって異なる。
【0094】
すなわち、z_out=1(比較一致)のときは、第3ステップ(S3)であって、制御信号Aで、汎用レジスタER6をアドレスとしてデータリードを行うとともに、汎用レジスタER6のインクリメントを行う。汎用レジスタER6を内部バスab経由で内部アドレスバスIABに出力するとともに、インクリメンタINCでインクリメントし、その結果を内部バスwb1経由で、汎用レジスタER6に格納する。汎用レジスタER6のインクリメントは分岐テーブルのサイズ、換言すれば、分岐アドレスのサイズに応じて、例えば、アドレス空間が4Gバイトのときは、4を加算する。制御信号Bで、リードしたデータをリードデータバッファDBRに格納するとともに、レジスタR4の内容をALUでデクリメントする。レジスタR4のデクリメントは、レジスタR4の内容を内部バスgb経由で算術論理演算器ALUに取り込み、この算術論理演算器ALUには定数値「1」を与えて減算を行い、その結果を内部バスwb2経由でレジスタR4に格納する。
【0095】
z_out=1(比較一致)の場合、第4ステップ(S4)では、リードの完了を待ち、第5ステップ(S5)では、制御信号Aの制御により、リードデータバッファDBRの内容を内部バスab経由で内部アドレスバスIABに出力して、命令リードを行う。また、インクリメンタINCでインクリメントし、結果を内部バスwb1経由で、プログラムカウンタPCに格納する。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。第6ステップ(S6)では、制御信号Aの制御により、プログラムカウンタPCの内容に従って、命令リードを行い、プログラムカウンタPCの内容をインクリメントする。プログラムカウンタPCのインクリメントは、命令がワード単位であることに対応して、2を加算する。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。この後、第5ステップ(S5)でリードした分岐先命令の実行を開始する。
【0096】
それに対して、第2ステップ(S2)での減算結果の判定において、z_out=0(比較不一致)のときは、第13ステップ(S13)であって、第3ステップ(S3)の動作に対して、データリードを禁止し、nopにする。また、これに伴い、リードデータバッファDBRの格納を禁止する。
【0097】
そして、レジスタR4のデクリメント結果が、z_out=0(カウンタデクリメント結果が0でない)の場合、割り込み要求がなければ、第1ステップ(S1)に戻る。z_out=1(カウンタデクリメント結果が0)の場合、第6ステップ(S6)に遷移して、上記同様の動作を行い、この後、プリフェッチ済みの次の命令の実行を開始する。
【0098】
しかし、割り込みが要求された場合は、実行途中(比較不一致の第3ステップ(S3)終了後)で割り込み例外処理に遷移する。このとき、汎用レジスタER5、ER6は次に使用する(未使用の)アドレス、汎用レジスタR4には残りの回数が保存されている。また、プログラムカウンタのインクリメントも行っていないので、例外処理で、スタックされるプログラムカウンタは、当該命令のアドレスになる。例外処理ルーチン実行後の復帰命令(リターン命令)によって、再度当該命令を実行する。汎用レジスタの内容は、上記の通り保存されているので、当該命令の動作を継続することができる。
【0099】
ここで、BCMP命令実行中は、3ステップ毎に、割り込みを検出でき、比較一致の場合も含めて、6ステップ以内に、割り込み例外処理を実行可能である。通常、乗算命令、除算命令、複数レジスタの退避・復帰命令、ソフトウェア例外処理命令、など6ステップより実行ステップ数が長く、途中で割り込みを受付けない命令が存在するから、本命令によって、割り込み応答時間を長くしてしまうことがない。
【0100】
また、割り込み例外処理からの復帰命令実行後に、自動的に、動作を継続するから、使い勝手を損なうことがない。
【0101】
図5には、上記BCMP命令の好適な使用例が示される。
【0102】
同図に示される処理では、入力されたデータを判定するため、第1〜第nのデータと比較し、一致したデータに対応した第1〜第nの処理に分岐される。入力データは、レジスタR3に設定され、nはレジスタR4に設定される。第1〜第nのデータはメモリ上に配置され、その先頭アドレスが汎用レジスタER5に格納される。また、第1〜第nの処理の先頭アドレスがメモリ上に配置され、その先頭アドレスが汎用レジスタER6に格納される。図16(A)には、この場合のCソースプログラムが示される。
【0103】
入力データaが1であれば、関数func_1が実行される。この場合、switchにおいて、入力データaが、指定された値(上記Cソースプログラムでは1〜7)であるか否かが判定されるが、BCMP命令では、指定された値すべてと比較して、いずれとも一致していない場合、自動的に次の命令を実行するので、値の範囲のチェックが不要になる。
【0104】
図6には、BCMP命令の第1の変形例の実行フローチャートが示される。
【0105】
図6に示されるフローチャートは、図5に示されるのとは、第3乃至第5ステップ、及び第13ステップの内容が相違する。
【0106】
図6において、第3ステップ(S3’)では、ワード単位でリードが行われる。これに従って、第3ステップ(S3’)、第13ステップ(S13’)のインクリメント値は2とする。
【0107】
第4ステップ(S4’)では、制御信号Bで、リードしたデータとプログラムカウンタPCの内容が算術論理演算器ALUで加算される。
【0108】
第5ステップ(S5’)では、制御信号Aにより、図4のリードデータバッファDBRの代わりに、第4ステップの制御に従った算術論理演算器ALUの加算結果が用いられる。
【0109】
図4の場合と比較して、分岐アドレステーブルをワードサイズにできるから、メモリ使用量を削減することができる。また、PC相対とすることによって、分岐できる範囲の制約が少なくなるため、使い勝手を損なうことがない。
【0110】
別の例として、汎用レジスタER6をインクリメントせず、一致したとき、汎用レジスタER6に汎用レジスタR4の内容を2ビット(図6の例では1ビット)シフトし、ゼロ拡張したデータを加算して、テーブルを参照するようにしてもよい。
【0111】
また別の例として、汎用レジスタER5とER6を兼用することもできる。比較データと分岐アドレスと組合せて配置し、汎用レジスタER5の内容に従って同時にリードし、比較にはリードしたデータの例えば上位16ビットを、比較が一致した場合、リードしたデータの下位16ビットをプログラムカウンタPCに加算するようにすればよい。そのようにすれば、汎用レジスタER6を他の用途に使用できるし、別に分岐先テーブルをリードすることなく、直ちに分岐できるので、実行ステップ数を短縮できる。
【0112】
図7には、JMP命令についての実行フローチャートが示される。
【0113】
上記の場合と同様に、命令の切れ目で、割り込み要求を確認し、割り込みが要求されている場合は、当該命令の実行を行わずに、割り込み例外処理を実行する。
【0114】
割り込みが要求されていない場合には、第1ステップ(S1)では、プログラムカウンタPCの内容に従って、命令リード(当該命令の第3ワード)を行い、PCの内容をインクリメントする。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。
【0115】
第2ステップ(S2)では、制御信号Aで、命令コードで指定された汎用レジスタERnをアドレスとしてデータリードを行う。制御信号Bで、リードしたデータをリードデータバッファDBRに格納する。
【0116】
第3ステップ(S3)では、制御信号Aで、バスを使用したリード/ライトを行わないこと(nop)が指示される。制御信号Bで、リードしたデータを、アドレス空間が4Gバイトであることに対応して、2ビットシフトし、命令バッファIFIFOに保持した当該命令の第2、第3ワードの内容(FIFO23)を算術論理演算器ALUで加算する。
【0117】
第4ステップ(S4)では、制御信号Aで、上記第3ステップの制御に従った、ALUの加算結果を内部バスab経由で内部アドレスバスIABに出力して、データのリードを行う。制御信号Bで、リードしたデータをDBRに格納する。
【0118】
第5ステップ(S5)では、リードの完了を待ち、第6ステップ(S6)では、制御信号Aで、リードデータバッファDBRの内容を内部バスab経由で内部アドレスバスIABに出力して、命令リードを行う。また、インクリメンタINCでインクリメントし、結果を内部バスwb1経由で、PCに格納する。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。
【0119】
第7ステップ(S7)では、制御信号Aで、プログラムカウンタPCの内容に従って、命令リードを行い、プログラムカウンタPCの内容をインクリメントする。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。この後、第6ステップでリードした分岐先命令の実行を開始する。
【0120】
好適なプログラムの実行の流れは、上記BCMP命令と同じである。上記BCMP命令に対して、比較データが多い、すなわち、入力データのとり得る値が多い場合には、比較データのテーブルを設ける必要がないので、使用するメモリ容量を節約できる。逆に、入力データのとり得る値が離散的である場合には、分岐テーブルもとびとびの領域を使用することになり、メモリの使用効率ないしは使い勝手が低下する。入力データの量やとりうる値に応じて、BCMP命令と、JMP命令とを使い分ければよい。
【0121】
分岐テーブルの先頭アドレスは、ディスプレースメントとして命令コード中に持つほか、指定された汎用レジスタに持つようにしてもよい。また、データのリードはレジスタ間接のほか、別のアドレッシングモードであってもよい。メモリからリードせず、指定された汎用レジスタの内容を使用するようにしてもよい。レジスタ間接は、実行前にアドレス計算などを行うことによって、任意のアドレスを指定できるから、汎用的に使用できる。
【0122】
図8には、JSR命令の実行の流れが示される。
【0123】
JSR命令の実行においては、図7に示されるJMP命令に対して以下の点が追加されている。
【0124】
第2ステップ(S2)では、汎用レジスタの内容がインクリメンタINCでインクリメントされる。インクリメント値は、データのサイズに応じて決定される。例えば、バイトサイズの場合は+1とされる。
【0125】
第3ステップでは、制御信号Aで、インクリメンタINCでプログラムカウンタPCのデクリメントを行う。デクリメント値は、自命令の命令コード長に対応し、−6とされる。制御信号Bで、スタックポインタSPをデクリメントする。デクリメント値は、スタックするプログラムカウンタPCのサイズに対応して、−4とされる。
【0126】
第4ステップ(S4)では、制御信号Aで、上記デクリメントした結果を算術論理演算器ALUから内部アドレスバスIABに出力し、ロングワードのライトを指示する。制御信号Bで、上記の通り、自命令の先頭アドレスとしたプログラムカウンタPCの内容をスタックに退避する。
【0127】
このため、サブルーチン分岐からの復帰命令(リターン命令)実行時、再度この命令を実行する。
【0128】
JSR命令は、上記高級言語のバイトコードをインタープリトする場合になどに好適である。所望の汎用レジスタERnに、バイトコードの格納したアドレスを格納する。図8に示されるように、リードしたバイトコードを判定して、当該バイトコードをCPU122で実行(エミュレート)するためのプログラムに分岐することができる。
【0129】
分岐したプログラムにおいて、当該バイトコードが複数のバイト長であれば、汎用レジスタERnをインクリメントする。また、実行を終了すべきバイトコードに対応したプログラムでは、スタックに退避されたプログラムカウンタPCをJSR命令のワード数に対応してインクリメントした後に、リターンすれば、当該JSR命令の次の命令から、実行を再開できる。
【0130】
インタープリトは、例えば、Cソースプログラムにより、図16(B)に示されるように記述できる。
【0131】
図16(B)において、getbyte()は、上記高級言語のプログラムカウンタ(例えば、汎用レジスタER6に割当てる)の示すアドレスからバイトデータをリードし、上記高級言語のプログラムカウンタを更新する関数である。
【0132】
すなわち、図16(B)に示されるプログラムは、上記高級言語のバイトコードをリード(code=getbyte())し、codeに従って分岐(switch(code))し、最後に合流(continue)する処理を繰り返す(while)、というものである。
【0133】
上記の通り、JSR命令によれば、上記高級言語のバイトコードについて、リード、分岐、合流、繰返し、を実現することができる。
【0134】
尚、switch文の値の範囲のチェックは、分岐テーブル上で、値の範囲外に対応する部分に、範囲外の場合の処理を行うプログラムの先頭アドレスを持つようにすればよい。
【0135】
図9には、CMP/ACC命令の実行の流れが示される。
【0136】
第1ステップ(S1)では、制御信号Aで、プログラムカウンタPCの内容に従って、命令リードを行い、プログラムカウンタPCの内容をインクリメントする。制御信号Bで、リードしたデータを命令バッファIFIFOに格納する。また、指定した汎用レジスタRdと命令コード中に含まれるイミディエイトデータ(FIFO1)を、ALUに転送し、ALUで比較(減算)を行う。
【0137】
この比較命令は、比較結果の一致を示すZフラグの動作が相違されており、制御信号cmpaccを活性状態にすることで指示される。
【0138】
すなわち、直前のZフラグが1にセットされているときは保持し、直前のZフラグが0にクリアされているときは、比較結果が一致している場合、1にセットされ、不一致の場合、0にクリアされる。コンディションコードレジスタCCRのZフラグ論理は、図17(A)に示されるように既述できる。
【0139】
このCCRのZフラグは、演算ないし転送の実行時、制御信号exeが活性状態になって、クロック(clk)の立上りエッジで更新される。第4の命令CMP/ACC実行時には、制御信号exe、cmpaccが活性状態になって、直前のZフラグの状態と、算術論理演算器ALUの出力する結果z_outの論理和を格納する。その他の命令では、算術論理演算器ALUの出力する結果z_outを格納する。
【0140】
いうまでもなく、所要のその他の命令の条件を、else ifなどとして加えることができる。
【0141】
図10には、CMP/ACC命令の好適な使用方法であるプログラムの流れが示される。
【0142】
入力したデータを判定するため、第1〜第nのデータと比較する。例えば、第1〜第3のデータと一致すれば、第1の処理に分岐し、同様の比較分岐を繰返し、第n−k〜第nのデータと一致すれば、第mの処理に分岐するものである。
【0143】
ここで、第1〜第nのデータと比較し、例えば、第1〜第3のデータと一致すれば、第1の処理に分岐する処理は、入力データをレジスタR3に保持するものとし、第1の処理の先頭アドレスをL1として、従来技術に従えば、図18(A)に示されるようになる。
【0144】
これに対して本例によれば、図18(B)に示されるようになる。
【0145】
すなわち、第1のデータとの比較は通常の比較命令を実行し、比較結果をZフラグに格納する。第2、第3のデータとの比較は、CMP/ACC命令を実行し、直前のZフラグと、比較結果の論理和をZフラグに格納する。最後に、比較結果の論理和に従って、いずれかの比較が一致していれば、条件分岐命令の条件が成立して、アドレスL1に分岐する。それによれば、複数の比較命令に対して条件分岐命令を1個にすることができ、プログラム容量を削減できる。
【0146】
従来技術で、第1のデータdata1に一致する場合は実行ステップが短くできるが、本例では、第1〜第3のデータのいずれに一致しても実行ステップ数が均等で、全体的に実行ステップ数を短縮することができる。
【0147】
上記フローチャートは、例えば、Cソースプログラムで実現すると、図16(C)に示されるようになる。
【0148】
また、CMP/ACC命令では、Cフラグの動作を逆にするようにするとよい。このとき、コンディションコードレジスタCCRのCフラグの論理記述は、図17(B)に示されるようになる。
【0149】
直前のCMP命令で、Cフラグが1にセットされ、CMP/ACC命令で、CMP命令ではCフラグが0にクリアされる条件(〜c_out)であれば、Cフラグを1にセットするようにする。
【0150】
この場合のプログラム例が図18(C)に示される。
【0151】
すなわち、CMP命令で、R3<data2で検出し、Cフラグを1にセットされ、CMP/ACC命令で、R3≧data1を検出すれば、Cフラグが1にセットされる。この結果を、Cフラグが1にセットされていることを条件に分岐する条件分岐命令BCSを用いて判断する。
【0152】
尚、従来技術では、2つの条件に当てはまることを直接判定できないので、図18(D)に示されるように、個々に判定される。
【0153】
また、Cソースプログラムの例としては、図16(D)に示されるif文とされる。
【0154】
図11には、SMOV命令の実行の流れが示される。このSMOV命令の実行においても、上記のように汎用レジスタが使用される。すなわち、汎用レジスタER5にはデータの転送元アドレスが設定され、汎用レジスタER6にはデータの転送先アドレスが設定され、レジスタR4には最大転送数が設定され、レジスタR3には、比較すべきデータが格納される。
【0155】
第1ステップ(S1)では、制御信号Aで、汎用レジスタER5をアドレスとしてデータリードを行うとともに、ER5のインクリメントを行う。制御信号Bで、リードしたデータをリードデータバッファdbrに格納する。R3の内容を比較レジスタ(COR)に転送する。それはリードしたデータとの比較に供される。
【0156】
第2ステップ(S2)では、制御信号Aで、汎用レジスタER6をアドレスとしてデータライトを行うとともに、ER6のインクリメントを行う。制御信号Bで、第1ステップで、dbrに格納したデータをIDBに出力する。また、R4の内容をALUでデクリメントする。
【0157】
次のステップは、第1ステップ(S1)の制御に基づく、比較結果(match)によって異なる。
【0158】
match=1(比較一致)のときは、第3ステップであって、制御信号Aで、バスをnopにする。制御信号Bで、命令コードの第2ワード(FIFO2)を符号拡張して、PCの内容とALUで加算する。第4ステップ、第5ステップで、分岐先リードを行う。これは、図6における第4ステップ(S4’)、第5ステップ(S5’)と同様である。
【0159】
match=0(比較不一致)の場合、さらに、第2ステップ(S2)の制御に基づくR4のデクリメント結果z_outによって異なる。
【0160】
z_out=0(カウンタデクリメント結果が0でない)の場合、割り込み要求がなければ、上記第1ステップ(S1)に戻る。割り込み要求があれば、第3ステップ(S23)を経て、割り込み例外処理を実行する。
【0161】
z_out=1(カウンタデクリメント結果が0)の場合、第3ステップ(S13)を経て、上記第5ステップ(S5)に遷移して、上記同様の動作を行い、この後、プリフェッチ済みの次の命令を実行する。
【0162】
上記同様に、割り込み例外処理に遷移するとき、汎用レジスタER5、ER6は次に使用する(未使用の)アドレス、汎用レジスタR4には残りの回数が保存されている。また、プログラムカウンタのインクリメントも行っていないので、例外処理で、スタックされるプログラムカウンタは、当該命令のアドレスになる。例外処理ルーチン実行後の復帰命令(リターン命令)によって、再度当該命令を実行する。汎用レジスタの内容は、上記の通り保存されているので、当該命令の動作を継続することができる。
【0163】
比較器11を用いず、固定的なデータと比較するようにしてもよい。例えば、H’00などを検出するようにすることもできる。文字列を転送する場合に、終端を示すNULL(H’00)を検出するのに好適である。
【0164】
図13には、本発明が適用されたマイクロコンピュータの別の構成例が示される。
【0165】
図13に示されるマイクロコンピュータ130は、スマートカードやICカードに適用される。
【0166】
図13に示されるマイクロコンピュータ130は、特に制限されないが、外部との間で信号の入出力を可能とする入出力回路(I/O)131、読み出し専用のROM(リード・オンリー・メモリ)132、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)133、ランダムアクセス可能なRAM(ランダム・アクセス・メモリ)134、暗号処理を行うための暗号処理回路135、及びプログラムに従って所定の演算処理を行うためのCPU136を含み、それらがバス137によって互いに信号のやり取りが可能に結合される。また、リセット(RES)信号の入力端子、クロック(CLK)信号の入力端子、電源(Vcc、Vss)の各入力端子が設けられている。
【0167】
アプリケーションプログラムである上記高級言語のプログラムが入出力回路131を介して外部から入力される。通常、入力時には上記高級言語のプログラムは暗号化されている。このため、入力されたプログラムは、暗号処理回路135で解読され、その結果がEEPROM133に格納される。ROM132上に格納されたインタープリタ用プログラムによって、上記高級言語のプログラムが実行される。
【0168】
上記のCソースプログラムを、従来技術による命令で記述すれば、図18(E)に示されるようになる。
【0169】
例えば、MOV.B命令を2バイト、SHLL命令を2バイト、MOV.L命令を8バイト、JSR命令を2バイト、BRA命令を2バイト、合計16バイトなどとなる。
【0170】
これに対して、本例におけるJSR命令を用いれば、上記の通り、6バイトで実現できる。
【0171】
また、同時に実行ステップ数も短縮できる。この処理は、上記高級言語のプログラムの実行1ステップ毎に繰返されるから、これによって、ICカードないしスマートカードとしての応答時間を短縮できる。
【0172】
図14には、本例のCPU122,136の開発環境が示される。
【0173】
使用者は、各種エディタなどを用いて、C言語乃至アセンブリ言語でプログラムを作成する。これは通常、複数のモジュールに分割して作成される。
【0174】
Cコンパイラ141は、使用者の作成したそれぞれのC言語ソースプログラムを入力し、アセンブリ言語ソースプログラム乃至オブジェクトモジュールを出力する。
【0175】
アセンブラ142は、アセンブリ言語ソースプログラムを入力し、オブジェクトモジュールを出力する。
【0176】
リンケージエディタ143は、上記Cコンパイラ141やアセンブラ142によって生成された複数のオブジェクトモジュールを取り込んで、各モジュールの外部参照や相対アドレスなどの解決を行い、1つのプログラムに結合して、ロードモジュールを出力する。
【0177】
ロードモジュールは、シミュレータデバッガ143に入力され、パーソナルコンピュータなどのシステム開発装置上で、CPUの動作がシミュレーションされる。このシミュレーション結果を見ながらプログラムの解析や評価を行うことができる。また、エミュレータに入力して、実際の応用システム上などで動作する、いわゆるインサーキットエミュレーションを行い、マイクロコンピュータ全体としての、実動作の解析や評価を行うことができる。
【0178】
さらに、ロードモジュールをPROMライタ145に入力して、マイクロコンピュータの内蔵ROMがフラッシュメモリなどの場合や、外部のフラッシュメモリなどに、作成したプログラムをロードすることができる。必要に応じて、オブジェクトコンバータなどによって、所望のフォーマットに変換する。
【0179】
このほかに、ライブラリアンとして、汎用的なサブルーチンなどを提供することもできる。本発明の命令を適用することで、従来は、ライブラリとして提供していた処理を容易にインライン展開して、高速化できる。
【0180】
図15には、上記マイクロコンピュータ120が適用されたシステムの第1の例である光ディスクドライブシステムが示される。
【0181】
601はCD又はDVDなどの光ディスクであり、この光ディスク601はスピンドルモータ602の回転駆動によって所定の速度で回転される。603はドライバであり、このドライバ603は、上記スピンドルモータを駆動する。604はピックアップであり、このピックアップ604は、回転する上記光ディスク601から記憶情報を読み取る。607は、リードチャネルであり、このリードチャネル607は、上記ピックアップ601の読み取り情報を増幅するアンプを含む。605はアクチュエータモータであり、このアクチュエータモータ605は、上記ピックアップ604の位置を移動させる。608はドライバであり、このドライバ608は、上記アクチュエータモータ605のを駆動する。606はスレッドモータであり、このスレッドモータ606は、上記ピックアップ604とアクチュエータモータ605とをスライドさせる。609はドライバであり、このドライバ609は、上記スレッドモータ606を駆動する。610は信号処理用半導体集積回路であり、この信号処理用半導体集積回路610は、上記光ディスク601から読み出された信号を処理したり、上記ドライバ603,608,609を制御する機能を有する。611はバッファメモリであり、このバッファメモリ61は、リードチャネル607を介して取り込まれたデータを格納することによってデータのバッファリングを行う。613はマイクロコンピュータであり、このマイクロコンピュータ613は、この光ディスクドライブ装置600の全体的な動作制御を司る。このマイクロコンピュータ613には、図12に示されるマイクロコンピュータ120が適用される。
【0182】
信号処理用半導体集積回路610は、光ディスク601のサーボ制御に用いられ、トラッキングエラー信号(TE)や、フォーカスエラー信号(FE)などをサーボ用A/D変換器で検出して、サーボ用D/A変換器でアクチュエータモータ605、スレッドモータ606などの制御を行うとともに、読み出したデータを復調及び復号化し、ホストインタフェースを介して、パーソナルコンピュータなどのホストシステムへ、復調及び復号化したデータを出力する。
【0183】
光ディスク601の記憶情報は、ピックアップによって読み取られる。ピックアップ604は、発光素子(レーザダイオード)によってレーザ出力を行い、光ディスク604からの反射光を受光素子(フォトダイオード)で検出する。ピックアップ604の位置は、アクチュエータモータ605と、スレッドモータ606によって制御される。ピックアップ604から出力された信号は、リードチャネル607で増幅された後にディジタル信号に変換される。マイクロコンピュータ613は、シリアルコミュニケーションインタフェースSCI及び入出力ポートIOPを介してリードチャネル607の動作を制御する。
【0184】
アクチュエータモータ605に対しては、サーボ用D/A変換器の出力(SVDA)で、ドライバ608を介して制御する。アクチュエータモータ605は2軸分を備え、光ディスク604に垂直方向のフォーカス制御と、半径方向のトラッキング制御を行うため、サーボ用D/A出力を2本用いる。検出信号と基準信号との誤差が検出され、それに基づいて、スピンドルモータ602の制御が行われる。
【0185】
信号処理用半導体集積回路610に内蔵されるホストインタフェースは、特に制限されないが、上記ATAPIインタフェースが採用される場合には、エンハンスドIDEバスなどのバスを介して、パーソナルコンピュータなどのホストシステムと接続され、命令及びパケット命令などの取り込みが可能とされる。マイクロコンピュータ613は、上記命令及びパケット命令を読み出して解析し、それに基づく所定の動作制御、例えばステータスなどの表示と、データの入出力などを行う。また、信号処理用半導体集積回路610に内蔵されるタスクファイルレジスタのリード又はライトを検出して、低消費電力状態を解除したりする。
【0186】
光ディスク601がCDの場合、ピックアップ604で読み出された信号は、リードチャネル607で増幅された後、ディジタル波形に整形される。この出力(DIN)は、本信号処理用半導体集積回路610の復調回路で、ディジタル復調されてからデインタリーブされることで、その配列が元に戻され、エラー訂正や補間が実施される。読み出された信号がデータの場合には、さらにデスクランブルされて誤り訂正などが行われ、バッファメモリ611に蓄えられた後、本信号処理用半導体集積回路610内のホストインタフェースから出力される。光ディスク601から読み出された信号がオーディオデータの場合は、それがバッファメモリに蓄えられた後、本信号処理用半導体集積回路610内のオーディオ用D/A変換器でアナログ信号に変換され、後段のアンプ612で増幅された後にヘッドフォン駆動用のオーディオ信号として出力される。また、ディジタルオーディオデータの出力も可能にされる。
【0187】
光ディスク601がDVDの場合にも、上記CDの場合と同様に、復調回路及び復号回路で処理が施された後、ホストインタフェースを介して出力される。
【0188】
マイクロコンピュータ613は、システムコントロール用であり、所定のレジスタのリード又はライトや、シリアルコミュニケーションインタフェースSCIによる命令出力、入出力ポートIOPからの出力などによって、各部の動作を制御する。
【0189】
また、光ディスク601を載置するためのトレイ(図示せず)に対しては、オープンスイッチ信号、クローズスイッチ信号などが入出力ポートIOPを介して伝達される。イジェクトスイッチの操作情報が割り込み要求信号としてマイクロコンピュータ613に入力される。上記トレイを動かすためのローディングモータは、マイクロコンピュータ613に内蔵されているパルス幅変調タイマの出力信号PWMによって駆動される。
【0190】
さらに、LED(発光ダイオード)616は、入出力ポートIOPの出力信号で駆動され、このドライブが組み込まれるパーソナルコンピュータなどのシステムに適合するように、入出力ポートIOPやアナログ入力によって、オプション選択用の各種設定(OPT)情報615がマイクロコンピュータ613に取り込まれ、シリアルコミュニケーションインタフェースSCIによって評価用のシステム(EQP)614などとのインタフェースがとられる。
【0191】
ホストインタフェース30による、ホストシステムからのデータ転送命令入力時の動作は概略以下の通りである。
【0192】
まず、ホストシステムはタスクファイルレジスタに所定のパラメータを設定し、「A0」命令を命令レジスタにライトし、ホストインタフェースからの要求によって、パケット命令をライトする。パケット命令は、所定のパケット命令レジスタに格納される。
【0193】
このとき、割り込み要求が発生し、これに呼応して、マイクロコンピュータ613は、命令をリードして、その内容を解析する。データ転送命令の場合は以下の通りになる。
【0194】
要求されたデータが、バッファメモリ611上に存在するか否かを判定する。バッファメモリ上に存在しない場合は、ディスクの再生を行う。
【0195】
バッファメモリ611にデータが準備できると、ホストデータ転送の設定を行った後、データ転送を起動する。バッファメモリからデータをリードし、一時FIFOに蓄え、ホストインタフェースに出力する。
【0196】
データ転送が完了したか確認し、データ転送が終了すると、タスクファイルレジスタにステータスの表示を行う。
【0197】
ホストシステムは、ステータスの確認を行う。必要に応じて、次の命令を発行する。これを繰り返す。
【0198】
上記命令の解析は、命令として定義されているコード(CMD0、CMD1、…)と順次比較され、一致していれば、当該命令の処理プログラムに分岐することによって行われる。
【0199】
ここで従来技術に従えば、図19(A)に示されるような命令記述になる。
【0200】
このとき、CMP命令、BEQ命令がそれぞれ2バイト、4バイトの命令長であれば、比較分岐に、命令の種類×6バイトの命令を必要とする。
【0201】
これに対して、本例の命令をBCMP命令として、これを適用すれば、図19(B)に示されるようになる。
【0202】
上記の通り、BCMP命令の後に、入力した値が範囲外であった場合の処理プログラムを記述する。上記のほかに、BCMP命令が汎用レジスタER5、ER6で指定するデータテーブルが必要である。これは例えば、図19(C)に示されるように既述することができる。
【0203】
上記の通り、BCMP命令は、使用する汎用レジスタを固定しており、汎用レジスタの指定フィールドを持たないから、2バイトの命令長とすることができ、データテーブルが別に配置されるので、R4、ER5、ER6の設定命令コード長を16バイトとして、18バイト+命令の種類×5バイト、で実現できる。
【0204】
BCMP命令の第1の変形例は、分岐テーブルが2バイト単位にできるから、18バイト+命令の種類×3バイト、で実現できる。
【0205】
1つの分岐テーブルを複数回使用する場合は前者、1つの分岐テーブルを1回のみ使用する場合は後者を使用すればよい。
【0206】
実行ステップ数は、いずれの場合も、命令フェッチの回数を抑止できるので、従来技術に対して、短縮可能である。
【0207】
上記動作において、転送データがバッファメモリに存在する(連続リード)場合など、本発明によって、命令解析が高速化できれば、光ディスクドライブのアクセス時間の短縮に寄与できる。
【0208】
上記の例によれば、以下の作用効果を得ることができる。
【0209】
(1)BCMP命令の実行により、比較分岐が行われるため、例えばパーソナルコンピュータなどのホストから命令を入力して、命令を比較すべきデータとして、比較分岐を行うようにして、命令の入力から、所要の処理の実行までの時間短縮を図ることができる。
【0210】
(2)JMP命令の実行において、指定されたレジスタをアドレスとして、メモリからデータをリードし、リードしたデータを必要に応じて拡張し、シフトし、指定されたアドレス情報(ディスプレースメント)に加算して、分岐テーブルをリードし、リードした内容を分岐先アドレスとして分岐する。命令の順序に、対応する処理プログラムの先頭アドレスを格納した分岐テーブルを持つことによって、入力した命令を複数のデータと比較することなく、所要のプログラムへの分岐を可能とし、処理速度を向上できる。
【0211】
(3)JSR命令の実行を可能とするため、データをリードし、リードデータに基づき分岐テーブルを参照して、自命令の先頭アドレスをスタックに退避し、リターン時に自命令を再度実行可能なように、サブルーチン分岐する手段が設けられる。バーチャルマシンをエミュレートする場合、あるいはインタープリトを行いつつ、実行する場合、プログラム全体を1命令とすることができる。その他は、JMP命令の場合と同様とされる。バーチャルマシンをエミュレートする場合に、入力された命令をインタープリトする処理を1命令で実行できる。
【0212】
(4)入力された命令をデコードすることによって制御信号を生成する制御部100と、この制御部100で生成された制御信号に基づいて上記命令を実行するための実行部200とを含んでデータ処理装置が構成されるとき、上記実行部100は、CMP/ACC命令が上記制御部100でデコードされることで生成された制御信号に従って、上記比較累積命令を実行するための実行手段を有する。この実行手段は、データの比較結果を示すフラグの記憶手段と、上記比較累積命令のデータ比較を行う。上記フラグの直前の状態と上記比較累積命令のデータ比較結果は上記フラグに反映されることによって、上記フラグを条件分岐の分岐条件とされる。データの複数回の比較結果の一致の論理和を蓄積可能で、複数の比較に対して、条件分岐命令を1個にすることができ、プログラム容量を削減でき、実行ステップ数も短縮できる。
【0213】
(5)SMOV命令の実行においては、データのリード/ライトが行われ、設定回数に達すると次の命令が実行され、途中で所定のデータを検出すると、分岐アドレスを生成して分岐する命令が実行される。実行途中で割込み要求が発生した場合には、比較が所定の状態である(比較一致)ときは、分岐まで実行を完了して、割込み例外処理を実行するようにするとともに、比較が所定の状態でない(比較不一致)ときは、汎用レジスタの途中の状態を保持し、プログラムカウンタも例外処理からの復帰後に、再実行可能なように保持して、割込み例外処理が実行される。このため、使い勝手が損なわれることもなく、割込み応答時間が長くなることもない。
【0214】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0215】
例えば、命令の動作の流れは一例を示したものであって、パイプライン構成など基本アーキテクチャに則して、種々変更可能である。
【0216】
また、命令コードの基本単位16ビットに限定する必要はなく、8ビットあるいは32ビットなど任意のビット幅とできる。その他、アドレス空間の大きさ、プログラムカウンタのビット数、コンディションコードの構成、フラグの種類、汎用レジスタのビット数・本数、命令体系や命令セットすなわち、命令の種類やアドレッシングモードの種類及びこれらの組合せなども任意にできる。命令フォーマットは任意に変形できる。
【0217】
JMP命令、JSR命令の分岐テーブルの先頭を示すディスプレースメントは、32ビットである必要はなく、例えば16ビットなどでもよい。BCMP命令、CMP/ACC命令、SMOV命令のデータサイズは、バイト、ワード、ロングワードなど任意に変更できる。
【0218】
簡単のために、バス幅を32ビットとし、命令リードを16ビット単位としたが、命令リードを32ビット単位にして高速化することができる。このような例は、特願平11−167812に記載されている。また、バス幅を16ビットとして、ロングワードのリード/ライトを、ワード単位の2回のリード/ライトで実行するようにしてもよい。このような例は、特願平11−320518に記載されている。
【0219】
命令バッファIFIFOのFIFOの容量や、詳細な構造は任意にすることができる。FIFO構造である必要はなく、命令プリフェッチバッファとしてもよい。
【0220】
演算器や比較器の構成、制御信号の種類、内部バスの本数や種類なども任意にできる。
【0221】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種データ処理装置に広く適用することができる。
【0222】
本発明は、少なくとも入力された命令をデコードすることによって制御信号を生成し、その制御信号に基づいて命令を実行することを条件に適用することができる。
【0223】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0224】
すなわち、所望の処理プログラムに分岐するための処理が、比較分岐(BCMP)命令や、分岐(JMP)命令、比較累積(CMP/ACC)命令、あるいは比較転送(SMOV)命令が実行されることで可能とされるため、所望の処理プログラムに分岐するための処理の高速化を図ることができる。また、所望の処理プログラムに分岐するための処理が、上記比較分岐(BCMP)命令や、分岐(JMP)命令、比較累積(CMP/ACC)命令、あるいは比較転送(SMOV)命令などの短い命令コードで実現することができるため、プログラムのサイズ低減を図ることができる。
【図面の簡単な説明】
【図1】本発明にかかるデータ処理装置の一例とされるマイクロコンピュータに含まれるCPUの構成例ブロック図である。
【図2】上記CPUに内蔵される汎用レジスタと拡張レジスタ及びコントロールレジスタの構成例説明図である。
【図3】上記マイクロコンピュータにおける命令フォーマット例の説明図である。
【図4】上記マイクロコンピュータでのBCMP命令の実行の流れを示すフローチャートである。
【図5】上記BCMP命令の好適な使用例の説明図である。
【図6】上記マイクロコンピュータでのBCMP命令の実行の別の流れを示すフローチャートである。
【図7】上記マイクロコンピュータでのJMP命令の実行の流れを示すフローチャートである。
【図8】上記マイクロコンピュータでのJSR命令の実行の流れを示すフローチャートである。
【図9】上記マイクロコンピュータでのCMP/ACC命令の実行の流れを示すフローチャートである。
【図10】上記CMP/ACC命令の好適な使用例の説明図である。
【図11】上記マイクロコンピュータでのSMOV命令の実行の流れを示すフローチャートである。
【図12】本発明にかかるデータ処理装置の一例であるシングルチップマイクロコンピュータの構成例ブロック図である。
【図13】本発明にかかるデータ処理装置の一例であるシングルチップマイクロコンピュータの別の構成例ブロック図である。
【図14】上記CPUの開発環境の説明図である。
【図15】上記マイクロコンピュータが適用された光ディスクドライブシステムの構成例ブロック図である。
【図16】上記マイクロコンピュータで実行されるCソースプログラムの説明図である。
【図17】上記マイクロコンピュータのCPUのコンディションコードレジスタのZ及びCフラグ論理の説明図である。
【図18】上記マイクロコンピュータで実行されるアセンブリプログラム及び比較対象とされるアセンブリプログラムの説明図である。
【図19】上記マイクロコンピュータで実行されるアセンブリプログラム及びその比較対象とされるアセンブリプログラムとの説明図である。
【符号の説明】
11 比較器
100 制御部
120 マイクロコンピュータ
121 クロック発振器
122 CPU
123 A/D変換器
124 割り込みコントローラ
125 タイマ
126 シリアルコミュニケーションインタフェース
127 バスコントローラ
128 ROM
129 RAM
200 実行部
Claims (5)
- 入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含むデータ処理装置であって、
上記実行部は、分岐命令が上記制御部でデコードされることで生成された制御信号に従って、上記分岐命令を実行するための第1実行手段を有し、
上記第1実行手段は、使用されたレジスタの内容に従ってデータをリードするための第1手段と、
上記リードされたデータと、指定されたアドレス情報とによって、分岐テーブルをリードするための第2手段と、
上記リードしたデータに基づき、分岐アドレスを生成して分岐するための第3手段と、を含んで成ることを特徴とするデータ処理装置。 - 入力された命令をデコードすることによって制御信号を生成する制御部と、上記制御部で生成された制御信号に基づいて上記命令を実行するための実行部とを含むデータ処理装置であって、
上記実行部は、サブルーチン分岐命令が上記制御部でデコードされることで生成された制御信号に従って、上記サブルーチン分岐命令を実行するための第2実行手段を有し、
上記第2実行手段は、使用されたレジスタの内容に従ってデータをリードするための第1手段と、
上記リードされたデータと、指定されたアドレス情報とによって、分岐テーブルをリードするための第2手段と、
上記サブルーチン分岐命令の先頭アドレスをスタックに退避し、リターン時には上記サブルーチン分岐命令を再度実行可能にサブルーチン分岐する第3手段と、を含んで成ることを特徴とするデータ処理装置。 - 上記実行部は、比較分岐命令が上記制御部でデコードされることで生成された制御信号に従って、上記比較分岐命令を実行するための第3実行手段を有し、
上記第3実行手段は、入力データをレジスタ保持情報と比較する第4手段と、
上記比較が所定の状態であるときに、上記比較の回数に対応した情報に基づいて分岐のための分岐アドレスを生成する第5手段と、
上記比較の回数が、所定の最大比較回数に達したことを検出するための第6手段と、
割り込みが要求された場合に、レジスタ及びプログラムカウンタの内容を復帰可能に保持して、割り込み例外処理に遷移するための第7手段と、を含んで成る請求項1又は2記載のデータ処理装置。 - 上記実行部は、比較累積命令が上記制御部でデコードされることで生成された制御信号に従って上記比較累積命令を実行するための第4実行手段を有し、
上記第4実行手段は、データの比較結果を示すフラグの記憶手段と、
上記比較累積命令のデータ比較を行い、上記フラグの直前の状態と上記比較累積命令のデータ比較結果を上記フラグに反映させることによって、上記フラグを条件分岐の分岐条件とする手段とを含んで成る請求項1乃至3の何れか1項記載のデータ処理装置。 - 上記実行部は、比較転送命令が上記制御部でデコードされることで生成された制御信号に従って、上記比較転送命令を実行するための第5実行手段を有し、
上記第5実行手段は、データをリードし、リードしたデータをライトする第8手段と、
リードしたデータを比較するための第9手段と、
上記比較回数が、指定された最大比較回数に達したことを検出する第10手段と、
割り込みが要求された場合に、レジスタ及びプログラムカウンタの内容を復帰可能に保持して、割り込み例外処理に遷移する第11手段と、を含んで成る請求項1乃至4の何れか1項記載のデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002197570A JP4029016B2 (ja) | 2002-07-05 | 2002-07-05 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002197570A JP4029016B2 (ja) | 2002-07-05 | 2002-07-05 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004038772A JP2004038772A (ja) | 2004-02-05 |
| JP4029016B2 true JP4029016B2 (ja) | 2008-01-09 |
Family
ID=31705306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002197570A Expired - Fee Related JP4029016B2 (ja) | 2002-07-05 | 2002-07-05 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4029016B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103745167B (zh) * | 2013-12-31 | 2016-10-26 | 广东岭南通股份有限公司 | 单片机的iap方法及装置 |
-
2002
- 2002-07-05 JP JP2002197570A patent/JP4029016B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004038772A (ja) | 2004-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7340566B2 (en) | System and method for initializing a memory device from block oriented NAND flash | |
| TWI383319B (zh) | 電腦系統及其開機方法 | |
| CN111857776A (zh) | Dsp板卡类的应用程序的在线升级方法 | |
| KR20000076310A (ko) | 리스크 구조를 갖는 8 비트 마이크로콘트롤러 | |
| JP2002157235A (ja) | マイクロコントローラ | |
| JP2001202243A (ja) | データ処理装置 | |
| JP2004086837A (ja) | データ処理装置 | |
| JPH08241246A (ja) | メモリ・デバイスとプロセッサ間のデータ転送方法とシステム | |
| CN102893260B (zh) | 用以作为指令评估数据值的系统和方法 | |
| JP4029016B2 (ja) | データ処理装置 | |
| JP2006313561A (ja) | データ処理装置 | |
| JP3786575B2 (ja) | データ処理装置 | |
| US8117427B2 (en) | Motherboard, storage device and controller thereof, and booting method | |
| JP4545777B2 (ja) | データ処理装置 | |
| CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
| JP3839835B2 (ja) | データ処理装置及びマイクロコンピュータ | |
| CN101436140B (zh) | 计算机系统及其开机方法 | |
| US20020004877A1 (en) | Method and system for updating user memory in emulator systems | |
| JP3760093B2 (ja) | マイクロコンピュータ | |
| KR20000033437A (ko) | 부트스트랩로더 기능 구현 장치 | |
| JP4498338B2 (ja) | データ処理装置 | |
| JP2001337821A (ja) | データ処理装置 | |
| KR20000008845A (ko) | 컴퓨터 시스템의 부팅방법 | |
| JP2002007140A (ja) | 記録媒体、システム開発装置及びマイクロコンピュータ | |
| JP3539951B2 (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050609 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060817 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060822 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061020 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070508 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070606 |
|
| A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070712 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071002 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071015 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131019 Year of fee payment: 6 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |