(57)【要約】【課題】処理速度の高速化を図った中央演算処理装置を提供する。【解決手段】ＡＬＵ３２１、３２２は、R0〜R3レジスタ３３３〜３３６に保持されたデータの加算、減算、論理演算が可能である。制御回路３１は、複数の命令から構成されるプログラムに従って動作を行う。制御回路３１は、プログラムに従って外部メモリ２０から読み込んだデータを直接、R0〜R3レジスタ３３３〜３３６に格納させてＡＬＵ３２１、３２２に演算を実行させる。【選択図】図１
2019191793.tif 000002
【特許請求の範囲】
【請求項１】
演算用レジスタに保持されたデータの演算が実行可能な演算回路と、
複数の命令から構成されるプログラムに従って動作を行う制御回路と、を備え、
前記制御回路は、前記プログラムに従って外部メモリから読み込んだデータを直接、前記演算用レジスタに格納させて前記演算回路に演算を実行させることを特徴とする中央演算処理装置。
【請求項２】
前記演算回路は、前記データの加算、減算及び論理演算の少なくとも１つ以上を行う算術回路から構成され、
前記演算用レジスタは、前記算術回路の入力に接続されたレジスタから構成されることを特徴とする請求項１に記載の中央演算処理装置。
【請求項３】
前記算術回路が行った加算、減算及び論理演算の結果をそれぞれ格納する複数の第１レジスタと、
前記命令に従った演算結果を格納する第２レジスタと、を備え、
前記算術回路は、前記演算用レジスタに格納されたデータを同時に加算、減算及び論理演算し、各結果を前記複数の第１レジスタに別々に格納し、
前記制御回路は、前記複数の第１レジスタのうち前記命令に従った１つに格納されたデータを、前記第２レジスタに転送させることを特徴とする請求項２に記載の中央演算処理装置。
【請求項４】
前記演算回路及び前記演算用レジスタは、保持されたデータをインクリメント、デクリメントするカウンタ回路から構成されることを特徴とする請求項１に記載の中央演算処理装置。
【請求項５】
前記演算回路は、前記データの比較演算を行う比較回路から構成され、
前記演算用レジスタは、前記比較回路の入力に接続されたレジスタから構成されることを特徴とする請求項１に記載の中央演算処理装置。
【請求項６】
前記演算回路及び前記演算用レジスタは、保持されたデータをシフトするシフトレジスタから構成されていることを特徴とする請求項１に記載の中央演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中央演算処理装置に関する。
【背景技術】
【０００２】
従来、マイクロコンピュータ（以下μＣＯＭ）として、図３に示されたものが知られている。図３は、一般的な８ビットのマイクロコンピュータの構成内容を示す。同図に示すように、μＣＯＭ１００は、プログラムデータが格納された外部メモリ２００と、プログラムデータを構成する複数の命令を順次読み込んで実行する中央演算処理装置（以下ＣＰＵ）３００と、を備えている。これら外部メモリ２００及びＣＰＵ３００は、互いにアドレスバスＢ１、データバスＢ２及び制御信号線Ｌ１を介して接続されている。上記プログラムデータは、複数の命令によって構成されている。
【０００３】
上記ＣＰＵ３００は、制御回路３０１と、レジスタ群３０２と、ＡＬＵ３０３と、第１演算ラッチレジスタ３０４と、第２演算ラッチレジスタ３０５と、を備え、これらが内部バスＢ３で接続されている。
【０００４】
制御回路３０１は、ＣＰＵ３００全体の制御を司り、上記命令の解析や命令に応じた演算制御などを行う。
【０００５】
上記レジスタ群３０２は、Ａレジスタ３０２ａ、Ｂレジスタ３０２ｂ、Ｃレジスタ３０２ｃ、Ｄレジスタ３０２ｄ、Ｅレジスタ３０２ｅ、Ｆレジスタ３０２ｆ、Ｈレジスタ３０２ｇ、Ｌレジスタ３０２ｈから構成されていて、演算途中のデータなどを一時的に記憶するためのレジスタである。これらは汎用レジスタと呼ばれている。
【０００６】
ＡＬＵ３０３は、制御回路３０１の制御に応じて後述する第１演算ラッチレジスタ３０４、第２演算ラッチレジスタ３０５に保持されているデータをＡＮＤ演算、ＯＲ演算、ＮＯＴ演算などの論理演算や加算および減算を実行する。
【０００７】
第１演算ラッチレジスタ３０４、第２演算ラッチレジスタ３０５は、ＡＬＵ３０３で演算するためのデータを一時的に保持するためのレジスタである。制御回路３０１は、レジスタ群３０２に一時的に格納されたデータを第１演算ラッチレジスタ３０４、第２演算ラッチレジスタ３０５に移して、ＡＬＵ３０３による演算を実行させる。
【０００８】
次に、例えば、外部メモリ２００のアドレス番地XXXXXに格納されたデータと、アドレス番地YYYYYに格納されたデータと、を加算する際のμＣＯＭ１００の動作について説明する。この場合、外部メモリ２００にはアドレス番地XXXXXに格納されたデータをＡレジスタ３０２ａに移動させる命令、YYYYYに格納されたデータをＢレジスタ３０２ｂに移動させる命令、Ａレジスタ３０２ａ及びＢレジスタ３０２ｂのデータを加算して、Ａレジスタ３０２ａに格納させる命令、が格納されている。
【０００９】
まず、最初の命令に従って、制御回路３０１はXXXXXに格納されたデータをＡレジスタ３０２ａに移動させる。次の命令に従って、制御回路３０１はYYYYYに格納されたデータをＢレジスタ３０２ｂに移動させる。その次の命令に従って、制御回路３０１はＡＬＵ３０３を制御してＡレジスタ３０２ａ及びＢレジスタ３０２ｂのデータをそれぞれ第１演算ラッチレジスタ３０４、第２演算ラッチレジスタ３０５に転送して加算して、その結果をＡレジスタ３０２ａに格納させる。
【００１０】
上述したＣＰＵ３００は、外部メモリ２００に格納されたデータを加算するために、一旦、そのデータをレジスタ群３０２内のレジスタに格納してから第１演算ラッチレジスタ３０４、第２演算ラッチレジスタ３０５に格納させていた。このため、処理速度が遅くなってしまう、という問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、以上の背景に鑑みてなされたものであり、処理速度の高速化を図った中央演算処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上述した課題を解決するためになされた本発明の態様は、演算用レジスタに保持されたデータの演算が実行可能な演算回路と、複数の命令から構成されるプログラムに従って動作を行う制御回路と、を備え、前記制御回路は、前記プログラムに従って外部メモリから読み込んだデータを直接、前記演算用レジスタに格納させて前記演算回路に演算を実行させることを特徴とする中央演算処理装置である。
【００１３】
また、前記演算回路は、前記データの加算、減算及び論理演算の少なくとも１つ以上を行う算術回路から構成され、前記演算用レジスタは、前記算術回路の入力に接続されたレジスタから構成されていてもよい。
【００１４】
また、前記算術回路が行った加算、減算及び論理演算の結果をそれぞれ格納する複数の第１レジスタと、前記命令に従った演算結果を格納する第２レジスタと、を備え、前記算術回路は、前記演算用レジスタに格納されたデータを同時に加算、減算及び論理演算し、各結果を前記複数の第１レジスタに別々に格納し、前記制御回路は、前記複数の第１レジスタのうち前記命令に従った１つに格納されたデータを、前記第２レジスタに転送させてもよい。
【００１５】
また、前記演算回路及び前記演算用レジスタは、保持されたデータをインクリメント、デクリメントするカウンタ回路から構成されてもよい。
【００１６】
また、前記演算回路は、前記データの比較演算を行う比較回路から構成され、前記演算用レジスタは、前記比較回路の入力に接続されたレジスタから構成されていてもよい。
【００１７】
また、前記演算回路及び前記演算用レジスタは、保持されたデータをシフトするシフトレジスタから構成されてもよい。
【発明の効果】
【００１８】
以上説明したように本発明の態様によれば、外部メモリから読み取ったデータを汎用レジスタに保持せずに直接、演算用レジスタに格納させる。これにより、汎用レジスタから演算用レジスタに転送する作業時間を省略することができ、処理速度の高速化を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明のＣＰＵを組み込んだμＣＯＭを示すブロック図である。
【図２】図１に示すＣＰＵを示すブロック図である。
【図３】従来のＣＰＵを組み込んだμＣＯＭを示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態における本発明の中央演算処理装置（以下、ＣＰＵ）及びマイクロコンピュータ（μＣＯＭ）を図１に基づいて説明する。同図に示すように、μＣＯＭ１０は、外部メモリ２０と、プログラムデータを構成する複数の命令を順次読み込んで実行するＣＰＵ３０と、を備えている。これら外部メモリ２０及びＣＰＵ３０は、互いにアドレスバスＢ１、データバスＢ２、制御信号線Ｌ１を介して接続されている。上記プログラムデータは、複数の命令によって構成されている。外部メモリ２０は、0000H番地〜FFFFH番地までのアドレスが順次割り振られた複数の領域が設けられ、各領域に複数の命令が記憶されている。
【００２１】
図２に示すように、上記ＣＰＵ３は、制御回路３１と、算術演算ユニット３２と、カウンターユニット３３と、シフトユニット３４と、ＰＳＷ３５と、内部バスＢ３と、ＰＳＷバスＢ４と、を備えている。
【００２２】
制御回路３１は、ＣＰＵ３０全体の制御を司り、上記命令の解析や命令に応じた演算制御などを行う。
【００２３】
算術演算ユニット３２は、外部メモリ２０から読み込んだ２つのデータの算術演算を実行するユニットである。
【００２４】
算術演算ユニット３２は、演算回路、算術回路としての複数のＡＬＵ３２１、３２２（本実施形態では２つ）と、演算用レジスタとしてのR0〜R3レジスタ３２３〜３２６と、第１レジスタとしてのRA00レジスタ３２７ａ〜RA04レジスタ３２７ｅと、第１レジスタとしてのRA10レジスタ３２８ａ〜RA14レジスタ３２８ｅと、Flg00レジスタ３２７ｆ〜Flg04レジスタ３２７ｊと、Flg10レジスタ３２８ｆ〜Flg14レジスタ３２８ｊと、を有している。
【００２５】
ＡＬＵ３２１は、制御回路３１からのＡＬＵ動作信号の出力に応じてR0レジスタ３２３及びR1レジスタ３２４に保持されているデータの算術演算を実行する。本実施形態では、ＡＬＵ３２１は、加算、減算、ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算を同時に実行する。
【００２６】
ＡＬＵ３２２は、制御回路３１からのＡＬＵ動作信号の出力に応じてR2レジスタ３２５及びR3レジスタ３２６に保持されているデータの算術演算を実行する。本実施形態では、ＡＬＵ３２２は、加算、減算、ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算を同時に実行する。
【００２７】
R0レジスタ３２３及びR1レジスタ３２４は、ＡＬＵ３２１の入力に接続されるレジスタである。
【００２８】
R2レジスタ３２５及びR3レジスタ３２６は、ＡＬＵ３２２の入力に接続されるレジスタである。
【００２９】
RA00レジスタ３２７ａ〜RA04レジスタ３２７ｅは、ＡＬＵ３２１の出力に接続され、ＡＬＵ３２１の演算結果データが格納されるレジスタである。RA10レジスタ３２８ａ〜RA14レジスタ３２８ｅは、ＡＬＵ３２２の出力に接続され、ＡＬＵ３２２の演算結果データが各々入力されるレジスタである。具体的には、RA00レジスタ３２７ａ、RA10レジスタ３２８ａには、ＡＬＵ３２１、３２２が加算を行った結果データが格納される。RA01レジスタ３２７ｂ、RA11レジスタ３２８ｂには、ＡＬＵ３２１、３２２が減算を行った結果データが格納される。RA02レジスタ３２７ｃ、RA12レジスタ３２８ｃには、ＡＬＵ３２１、３２２がＡＮＤ演算を行った結果データが格納される。RA03レジスタ３２７ｄ、RA13レジスタ３２８ｄには、ＡＬＵ３２１、３２２がＯＲ演算を行った結果データが格納される。RA04レジスタ３２７ｅ、RA14レジスタ３２８ｅには、ＡＬＵ３２１、３２２がＸＯＲ演算を行った結果データが格納される。
【００３０】
Flg00レジスタ３２７ｆ〜Flg04レジスタ３２７ｊは、ＡＬＵ３２１の演算結果フラグが格納されるレジスタである。Flg10レジスタ３２８ｆ〜Flg14レジスタ３２８ｊは、ＡＬＵ３２２の演算結果フラグが格納されるレジスタである。具体的には、Flg00レジスタ３２７ｆ、Flg10レジスタ３２８ｆには、ＡＬＵ３２１、３２２の加算結果フラグ（桁上げ）が格納される。Flg01レジスタ３２７ｇ、Flg11レジスタ３２８ｇには、ＡＬＵ３２１、３２２の減算結果フラグ（桁借り）が格納される。Flg02レジスタ３２７ｈ〜Flg04レジスタ３２７ｊ、Flg12レジスタ３２８ｈ〜Flg14レジスタ３２８ｊには、ＡＬＵ３２１、３２２のＡＮＤ、ＯＲ、ＸＯＲ結果フラグ（ゼロフラグ）が格納される。
【００３１】
カウンターユニット３３は、外部メモリ２０から読み込んだデータのインクリメント、デクリメントや、インクリメント、デクリメントしたデータと外部メモリ２０から読み込んだデータとを比較してその結果を出力するユニットである。
【００３２】
カウンターユニット３３は、演算用レジスタ、演算回路、カウンタ回路としてのR4、R5カウンタ回路３３１、３３２と、Ｃ−Ｃ（カウント制御）回路３３３と、演算回路としてのCmp0、Cmp1比較回路３３４、３３５と、演算用レジスタとしてのCR0、CR1レジスタ３３６、３３７と、連結回路３３８と、を有している。
【００３３】
R4カウンタ回路３３１、R5カウンタ回路３３２は、カウント値を保持する８ビットのレジスタから構成され、後述するＣ−Ｃ回路３３３の制御に応じてレジスタに保持したカウント値をインクリメント（＋１）、デクリメント（−１）する。
【００３４】
Ｃ−Ｃ回路３３３は、R4カウンタ回路３３１、R5カウンタ回路３３２を制御する回路である。Ｃ−Ｃ回路３３３は、R4カウンタ回路３３１、R5カウンタ回路３３２に対してインクリメント、デクリメントを設定し、カウントパルスを出力する。R4カウンタ回路３３１、R5カウンタ回路３３２は、カウントパルスが出力される毎にレジスタに保持されたカウント値をインクリメント、デクリメントする。
【００３５】
Cmp0、Cmp1比較回路３３４は、R4カウンタ回路３３１が入力に接続され、R4カウンタ回路３３１に保持されたカウント値と後述するCR0レジスタ３３６に保持されたデータとを比較する回路である。
【００３６】
Cmp0、Cmp1比較回路３３５は、R5カウンタ回路３３２が入力に接続され、R5カウンタ回路３３２に保持されたカウント値と後述するCR1レジスタ３３７に保持されたデータとを比較する回路である。
【００３７】
CR0レジスタ３３６はCmp0比較回路３３４の入力に接続され、カウント値と比較するためのデータが保持される。CR1レジスタ３３７はCmp1比較回路３３５の入力に接続され、カウント値と比較するためのデータが保持される。
【００３８】
連結回路３３８は、８ビットのR4カウンタ回路３３１、R5カウンタ回路３３２、Cmp0、Cmp1比較回路３３４、３３５を連結する回路である。連結回路３３８により連結することにより、R4カウンタ回路３３１、R5カウンタ回路３３２を１６ビットのカウンタ回路として用いることができる。
【００３９】
シフトユニット３４は、外部メモリ２０から読み込んだデータのシフトを実行するユニットである。
【００４０】
シフトユニット３４は、演算用レジスタ、演算回路としてのR6、R7シフトレジスタ３４１、３４２と、Ｃ−Ｓ（シフト制御）回路３４３と、連結回路３４４と、を備えている。
【００４１】
R6シフトレジスタ３４１は、８ビットのレジスタから構成され、後述するＣ−Ｓ回路３３３の制御に応じてレジスタに保持したデータを右シフト、左シフトする。
【００４２】
Ｃ−Ｓ回路３４３は、R6シフトレジスタ３４１、R7シフトレジスタ３４２を制御する回路である。Ｃ−Ｓ回路３４３は、R6シフトレジスタ３４１、R7シフトレジスタ３４２に対して右シフト、左シフトを設定し、シフトパルスを出力する。R6シフトレジスタ３４１、R7シフトレジスタ３４２は、シフトパルスが出力される毎にレジスタに保持されたデータを右シフト、左シフトする。
【００４３】
連結回路３４４は、８ビットのR6シフトレジスタ３４１、R7シフトレジスタ３４２を連結する回路である。連結回路３４４により連結することにより、R6シフトレジスタ３４１、R7シフトレジスタ３４２を１６ビットのシフトレジスタとして用いることができる。
【００４４】
ＰＳＷ３５には、各種演算結果フラグが格納される。
【００４５】
上述した制御回路３１、R0レジスタ３２３、R1レジスタ３２４、RA00レジスタ３２７ａ〜RA04レジスタ３２７ｅ、RA10レジスタ３２８ａ〜RA14レジスタ３２８ｅ、R4カウンタ回路３３１、R5カウンタ回路３３２、CR0レジスタ３３６、CR1レジスタ３３７は、内部バスＢ３により接続されている。内部バスＢ３は、データバスＢ２を介して外部メモリ２０に接続されている。Flg00レジスタ３２７ｆ〜Flg04レジスタ３２７ｊ、Flg10レジスタ３２８ｆ〜Flg14レジスタ３２８ｊ、R4、R5カウンタ回路３３１、３３２、Cmp0、Cmp1比較回路３３４、３３５、CR0、CR1レジスタ３３６、３３７、R6、R7シフトレジスタ３４１、３４２、ＰＳＭ３５は、ＰＳＷバスＢ４により互いに接続されている。
【００４６】
次に、上述したＣＰＵ３０の動作について説明する。ＣＰＵ３０は、外部メモリ２０のアドレスを外部メモリ２０に出力し、制御信号線Ｌ１を介してリード信号する。上記アドレスは、アドレスバスＢ１を介してＣＰＵ１０から外部メモリ２０に出力される。外部メモリ２０は、リード信号が入力されると、入力されたアドレスの領域に保持されたデータをＣＰＵ１０に出力する。上記データは、データバスＢ２を介して外部メモリ２０からＣＰＵ１０に出力される。ＣＰＵ３０は、0000Hから順番に外部メモリ２０のデータ（命令）を読み取り、命令を解析し、実行する。
【００４７】
次に、上述したＣＰＵ３０の算術演算ユニット３２での動作について一例を挙げて説明する。なお、算術演算を行う場合には、R0、R1レジスタ３２３、３２４、R2、R3レジスタ３２５、３２６を使用するように命令を作成するものとする。例えば、外部メモリ２０のアドレス番地XXXXXに格納されたデータと、アドレス番地YYYYYに格納されたデータと、を加算する命令をＣＰＵが実行する際のＣＰＵ３０の動作について説明する。この場合、外部メモリ２０には、アドレス番地XXXXXをR0レジスタ３２３に移動させる第１命令、アドレス番号YYYYYをR1レジスタ３２４に移動させる第２命令、R0、R1レジスタ３２３、３２４のデータを加算して、R0レジスタ３２３に格納させる第３命令、からなるプログラムデータが書き込まれている。制御回路３１は、上述した第１命令〜第３命令を順番に読み込んで動作を実行する。
【００４８】
まず、制御回路３１は、第１命令に従って外部メモリ２０のアドレス番地XXXXXに格納されたデータを読み出し、R0レジスタ３２３に格納させる。次に、制御回路３１は、第２命令に従って外部メモリ２０のアドレス番地YYYYYに格納されたデータを読み出し、R1レジスタ３２４に格納させる。その後、制御回路３１は、ＡＬＵ３２１に対してＡＬＵ動作信号を出力する。このＡＬＵ動作信号の出力に応じてＡＬＵ３２１は、RO、R1レジスタ３２３、３２４に格納された２つのデータの加算、減算、ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算を同時に実行し、それらの演算結果データ、演算結果フラグをRA00レジスタ３２７ａ〜RA04レジスタ３２７ｅ、Flg00レジスタ３２７ｆ〜Flg04レジスタ３２７ｇに格納する。
【００４９】
その後、制御回路３１は、第３命令に従って、加算結果データを格納したRA00レジスタ３２７ａのデータを第２レジスタとしてのR0レジスタ３２３に転送し、加算結果フラグを格納したFlg00レジスタ３２７ｆのデータをＰＳＷ３５に転送して動作をする。
【００５０】
なお、上述した実施形態では、加算を例について説明していたが、第３命令が減算命令であれば、減算結果データを格納したRA01レジスタ３２７ｂのデータをR0レジスタ３２３に転送し、減算結果フラグを格納したFlg01レジスタ３２７ｇのデータをＰＳＷ３５に転送する。また、第３命令がＡＮＤ、ＯＲ、ＸＮＯＲ命令であれば、それら結果データを格納したRA02〜RA04レジスタ３２７ｃ〜３２７ｅをR0レジスタ３２３に転送し、結果フラグを格納したFlg02〜Flg04レジスタ３２７ｈ〜３２７ｊのデータをＰＳＷ３５に転送する。
【００５１】
上述した実施形態によれば、外部メモリ２０から読み取ったデータを汎用レジスタに保持せずに直接、演算用のレジスタであるR0、R1レジスタ３２３、３２４、R2、R3レジスタ３２５、３２６に格納させる。これにより、汎用レジスタからR0、R1レジスタ３２３、３２４、R2、R3レジスタ３２５、３２６に転送する作業時間を省略することができ、処理速度の高速化を図ることができる。
【００５２】
また、上述した実施形態によれば、ＡＬＵ３２１、３２２は、R0〜R3レジスタ３２３〜３２６に格納されたデータを同時に加算、減算及び論理演算し、各結果をRA00〜RA04レジスタ３２７ａ〜３２７ｅ、RA10〜RA14レジスタ３２８ａ〜３２８ｅに別々に格納し、制御回路３１は、RA00〜RA04レジスタ３２７ａ〜３２７ｅ、RA10〜RA14レジスタ３２８ａ〜３２８ｅのうち命令に従った１つに格納されたデータを、演算結果としてR0レジスタ３２３に転送させている。これにより、第３命令を受け取る前にＡＬＵ３２１、３２２に演算を実行させることができ、より一層、処理速度の高速化を図ることができる。
【００５３】
次に、上述したＣＰＵ３０のカウンターユニット３３での動作について一例を挙げて説明する。なお、カウンター動作を行う場合には、R4、R5カウンタ回路３３１、３３２を使用するように命令を作成するものとする。例えば、外部メモリ２０のアドレス番地XXXXXに格納されたデータをインクリメント（デクリメント）する際のＣＰＵ３０の動作について説明する。この場合、外部メモリ２０には、アドレス番地XXXXXをR4カウンタ回路３３１に移動させる第４命令、R4カウンタ回路３３１のデータをインクリメント（デクリメント）させる第５命令、からなるプログラムデータが書き込まれている。制御回路３１は、上述した第４〜第５命令を順番に読み込んで動作を実行する。
【００５４】
まず、制御回路３１は、第４命令に従って外部メモリ２０のアドレス番地XXXXXに格納されたデータを読み出し、R4カウンタ回路３３１に格納させる。その後、制御回路３１は、第５命令に従ってＣ−Ｃ回路３３３を制御して、インクリメント（デクリメント）設定させると共に、Ｃ−Ｃ回路３３３からカウンタパルスを出力させる。カウンタパルスの出力に応じてR4カウンタ回路３３１は、保持しているデータをインクリメント（デクリメント）させる。その後、制御回路３１は、R4カウンタ回路３３１が保持しているインクリメント（デクリメント）した結果をＰＳＷ３５に転送して動作を終了する。
【００５５】
次に、外部メモリ２０のアドレス番地XXXXXに格納されたデータをインクリメント（デクリメント）し、アドレス番地YYYYYに格納されたデータと比較する命令をＣＰＵ３０が実行する際のＣＰＵ３０の動作について説明する。この場合、外部メモリ２０には、上記第４命令、第５命令に加えて、アドレス番地YYYYYをCR0レジスタ３３６に移動させる第６命令、R4カウンタ回路３３１、CR0レジスタ３３６のデータを比較する第７命令、からなるプログラムデータが書き込まれている。制御回路３１は、上述した第４〜第７命令を順番に読み込んで動作を実行する。
【００５６】
制御回路３１は、上述した第４、第５命令に従って動作を行った結果、R4カウンタ回路３３１にはインクリメント（デクリメント）されたデータが保持されている。次に、制御回路３１は、第６命令に従って外部メモリ２０のアドレス番地YYYYYに格納されたデータを読み出し、CR0レジスタ３３６に格納させる。その後、制御回路３１は、第７命令に従ってCmp0比較回路３３４にR4カウンタ回路３３１、CR0レジスタ３３６に格納されたデータを比較させて、ＰＳＷバスＢ４を介してその結果をＰＳＷ３５に格納させて動作を終了する。
【００５７】
なお、上述した実施形態によれば、カウンターユニット３３は、８ビットのインクリメント（デクリメント）を行っていたが、連結回路３３８によりR4、R5カウンタ回路３３１、３３２を連結することにより１６ビットのインクリメント（デクリメント）を行うことができる。
【００５８】
上述した実施形態によれば、外部メモリ２０から読み取ったデータを汎用レジスタに保持せずに直接、演算用レジスタであるR4、R5カウンタ回路３３１、３３２やCR0、CR1レジスタ３３６、３３７に格納させる。これにより、汎用レジスタからR4、R5カウンタ回路３３１、３３２やCR0、CR1レジスタ３３６、３３７に転送する作業時間を省略することができ、処理速度の高速化を図ることができる。
【００５９】
次に、上述したＣＰＵ３０のシフトユニット３４での動作について一例を挙げて説明する。なお、シフト動作を行う場合には、R6、R7シフトレジスタ３４１、３４２を使用するように命令を作成するものとする。例えば、外部メモリ２０のアドレス番地XXXXX、YYYYYに格納されたデータをシフトする際のＣＰＵ３０の動作について説明する。この場合、外部メモリ２０には、アドレス番地XXXXXをR6シフトレジスタ３４１に移動させる第８命令、アドレス番地YYYYYをR7シフトレジスタ３４２に移動させる第９命令、R6、R7シフトレジスタ３４１、３４２に格納されたデータを所定のシフト方向、所定のシフト量だけシフトさせる第１０命令と、からなるプログラムデータが書き込まれている。制御回路３１は、上述した第８〜第１０命令を順番に読み込んで動作を実行する。
【００６０】
まず、制御回路３１は、第８命令に従って外部メモリ２０のアドレス番地XXXXXに格納されたデータを読み出し、R6シフトレジスタ３４１に格納させる。次に、制御回路３１は、第９命令に従って外部メモリ２０のアドレス番地YYYYYに格納されたデータを読み出し、R7シフトレジスタ３４２に格納させる。その後、制御回路３１は、第１０命令に従ってＣ−Ｓ回路３４４を制御して、所定のシフト方向を設定させると共に、Ｃ−Ｓ回路３４１から所定のシフト量に応じた数のシフトパルスを出力させる。シフトパルスが出力される毎に、R6、R7シフトレジスタ３４１、３４２は、保持しているデータを設定されたシフト方向に１つずつシフトさせる。その後、制御回路３１は、R6、R7シフトレジスタ３４１、３４２が保持しているシフトした結果をＰＳＷ３５に転送して動作を終了する。
【００６１】
上述した実施形態によれば、外部メモリ２０から読み取ったデータを汎用レジスタに保持せずに直接、演算用のレジスタであるR6、R7シフトレジスタ３４１、３４２に格納させる。これにより、汎用レジスタからR6、R7シフトレジスタ３４１、３４２に転送する作業時間を省略することができ、処理速度の高速化を図ることができる。
【００６２】
なお、上述した実施形態によれば、プログラムデータは外部メモリ２０に記録されていたが、これに限ったものではない。プログラムデータは内部メモリに記憶されていてもよい。
【００６３】
また、上述した実施形態によれば、ＡＬＵ３２１、３２２は、加算、減算及び論理演算を同時に実行し、同時に結果を出力できるものであったが、これに限ったものではない。ＡＬＵ３２１、３２２としては、制御回路１１で指定された演算のみを実行して、１つの結果を出力するものであってもよい。また、演算回路としては、加算、減算及び論理演算が実行できるものでなくてもよい。演算回路としては、加減算のみを実行できるＡＳＵ：Addition and subtraction unitと、論理演算のみを実行できるＬＵ:Logic unitと、を別々に設けてもよい。
【００６４】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００６５】
１  ＣＰＵ（中央演算処理装置）
３１  制御回路
３２１  ＡＬＵ（演算回路、算術回路）
３２２  ＡＬＵ（演算回路、算術回路）
３２３  R0レジスタ（演算用レジスタ、第２レジスタ）
３２４  R1レジスタ（演算用レジスタ）
３２５  R2レジスタ（演算用レジスタ）
３２６  R3レジスタ（演算用レジスタ）
３２７ａ〜３２７ｅ  RA00レジスタ〜RA04レジスタ（第1レジスタ）
３２８ａ〜３２８ｅ  RA10レジスタ〜RA14レジスタ（第１レジスタ）
３３１  R4カウンタ回路（演算用レジスタ、演算回路、カウンタ回路）
３３２  R5カウンタ回路（演算用レジスタ、演算回路、カウンタ回路）
３３４  Cmp0比較回路（演算回路）
３３５  Cmp1比較回路（演算回路）
３３６  CR0レジスタ（演算用レジスタ）
３３７  CR1レジスタ（演算用レジスタ）
３４１  R6シフトレジスタ（演算用レジスタ、演算回路、シフトレジスタ）
３４２  R7シフトレジスタ（演算用レジスタ、演算回路、シフトレジスタ）
【図１】
2019191793.tif 000003
【図２】
2019191793.tif 000004
【図３】
2019191793.tif 000005