(57)【要約】【課題】  ハードウェアリソースをより効率的に活用する。【解決手段】  本発明の一態様に従ったデジタル信号処理回路は、少なくとも１つの命令を含む命令コードを記憶し、出力指示に従って前記命令コードを出力する命令メモリと、拡張命令を格納した拡張命令格納部と、前記命令メモリから出力された命令コードに、前記拡張命令格納部に格納された前記拡張命令を選択するための選択コードが含まれる場合は、前記拡張命令格納部から前記選択コードに対応する拡張命令を選択する選択部と、前記命令コードに含まれる命令及び前記選択部によって選択された拡張命令を解釈して前記命令及び前記拡張命令を実行するための制御信号を生成するデコーダと、を備える。【選択図】  図１
2006092158.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの命令を含む命令コードを記憶し、出力指示に従って前記命令コードを出力する命令メモリと、
拡張命令を格納した拡張命令格納部と、
前記命令メモリから出力された命令コードに、前記拡張命令格納部に格納された前記拡張命令を選択するための選択コードが含まれる場合は、前記拡張命令格納部から前記選択コードに対応する拡張命令を選択する選択部と、
前記命令コードに含まれる命令及び前記選択部によって選択された拡張命令を解釈して前記命令及び前記拡張命令を実行するための制御信号を生成するデコーダと、
を備えたデジタル信号処理回路。
【請求項２】
前記命令コードには前記命令コードのタイプを表す分類コードが含まれ、
前記デコーダは、前記命令コードに含まれる分類コードに基づき、前記命令コードに含まれる命令及び前記選択された拡張命令の種類を判別し、前記判別の結果に基づき、前記命令及び前記拡張命令を解釈することを特徴とする請求項１に記載のデジタル信号処理回路。
【請求項３】
前記デコーダは、前記命令コードに前記選択コードが含まれる場合は、選択指示信号を前記選択部に出力し、
前記選択部は、前記命令コードの全部又は一部が入力され、前記選択指示信号が入力された場合は、前記選択指示信号に基づき前記命令コードの全部又は一部から前記選択コードを検出し、検出した前記選択コードに対応する拡張命令を前記拡張命令格納部から選択する、
ことを特徴とする請求項１又は２に記載のデジタル信号処理回路。
【請求項４】
前記デコーダは、前記命令メモリから出力された命令コードに含まれる命令を前記拡張命令として前記拡張命令格納部に登録するか否かを所定の基準に基づいて判断し、
前記命令コードに含まれる命令を前記拡張命令格納部に登録する場合は、前記デコーダの指示に従って前記命令コードに含まれる命令を前記拡張命令格納部に書き込む書込部をさらに備えたことを特徴とする請求項１乃至３のいずれかに記載のデジタル信号処理回路。
【請求項５】
前記拡張命令格納部へ登録するための拡張命令を記憶したデータメモリと、
前記命令メモリから出力された命令コードに含まれる命令が、前記データメモリに記憶された拡張命令を前記拡張命令格納部に登録することを指示する登録指示命令である場合は、前記登録指示命令に基づいて前記データメモリから読み出された拡張命令を、前記拡張命令格納部に書き込む書込部と、
をさらに備えたことを特徴とする請求項１乃至４のいずれかに記載のデジタル信号処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理回路に関する。
【背景技術】
【０００２】
CPU,DSP等のプロセッサにおいて、命令コード長が長い場合、命令の並列動作の自由度が高くなり機能的には望ましい。一方、命令コード長が短い場合、命令コードを格納するRAMやROM等のメモリ領域が小さくて済むため、LSI化する際のチップ面積や消費電流の面では好ましい。
【０００３】
実際のプロセッサでは両者のバランスの取れた命令コード長を探ることになる。しかし、このようにしてバランスの取れた命令コード長を決定した結果、一部の命令コードでは、命令の並列実行ができないものとならざるを得ない。即ち、一部の命令コードでは、ハードウェアにおける一部の回路しか使わないものとならざるを得ない。
【０００４】
例えばある20bit命令長のプロセッサで表１のようなオペコードの割り当てが行われていたとする。
【表１】
2006092158.tif 000003
【０００５】
１行目に示す命令コードでは、算術論理演算命令（ALU）と２つのデータ転送命令（Move  X、Move Y）とが同時に行われ、この並列動作により命令の実行効率が良くされる。１８〜１９桁目の「１１」は、この命令コードのタイプを示す分類コードである。つまり、この分類コードは、この命令コードに、算術論理演算命令と２つのデータ転送命令とが含まれていることを示す。
【０００６】
一方、最下行目に示す命令コードでは分岐処理命令（Branch）のみが実行される。この命令コードにおいて、ビットが割り当てられていない０〜３桁目の4つのビットに、16通りの機能を割り当てることも可能だが、割り当てビット数が４ビットで済む機能の中からどの機能を割り当てるのが効率的であるかを決定するのは困難であり、また、割り当てビット数が４ビットより大きい機能を割り当てることはできない。この命令コードにおいて、１０桁目〜１９桁目の「００・・・００」は、この命令コードのタイプを示す分類コードである。つまり、この分類コードは、この命令コードに、分岐処理命令のみが含まれていることを示す。
【０００７】
以上のように、命令コードのビット割り当ての制約から、命令コードの種類によっては複数の命令が割り当てられないものが存在し、この場合、並列動作が行われず、ハードウェアリソースの効率的な活用ができない。
【特許文献１】特開平０５−２００５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ハードウェアリソースをより効率的に活用できるデジタル信号処理回路を提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様に従ったデジタル信号処理回路は、少なくとも１つの命令を含む命令コードを記憶し、出力指示に従って前記命令コードを出力する命令メモリと、拡張命令を格納した拡張命令格納部と、前記命令メモリから出力された命令コードに、前記拡張命令格納部に格納された前記拡張命令を選択するための選択コードが含まれる場合は、前記拡張命令格納部から前記選択コードに対応する拡張命令を選択する選択部と、前記命令コードに含まれる命令及び前記選択部によって選択された拡張命令を解釈して前記命令及び前記拡張命令を実行するための制御信号を生成するデコーダと、を備える。
【発明の効果】
【００１０】
本発明により、ハードウェアリソースをより効率的に活用できる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施の形態に従ったデジタル信号処理回路の構成を示すブロック図である。
【００１２】
このデジタル信号処理回路は、命令メモリ１１、制御回路１２、レジスタ群１３、第１の命令デコーダ１４及び第２の命令デコーダ１５を備える。
【００１３】
命令メモリ１１は、実行すべき命令コードを格納し、次に実行するべき命令コードを、図示しないプログラム・カウンタに従って出力する。
【００１４】
表２は、本実施の形態におけるオペコードの割り当て例を示す。
【表２】
2006092158.tif 000004
【００１５】
各行における０〜１９桁目の２０ビットが１つの命令コードに対応する。
【００１６】
１行目に示す命令コードでは、算術論理演算命令（ALU）と２つのデータ転送命令（Move X, Move Y）とが同時に実行される。
【００１７】
より詳細には、１０〜１７桁目のALU命令は算術論理演算（例えば加算、減算、論理和、論理積）を指示する。
【００１８】
例えばALU命令が「００００００００」（一番左が１７桁目、一番右が１０桁目）の場合、このALU命令は、レジスタx0の値とレジスタy0の値とを加算したものをレジスタz0に代入することを意味する。１５〜１７桁目の「０００」が加算指示、１３〜１４桁目の「００」がレジスタx0、１１〜１２桁目の「００」がレジスタy0、１０桁目の「０」がレジスタz0を意味する。
【００１９】
５桁目〜９桁目のMove X命令は、レジスタ間や、データメモリ（図３参照）からレジスタへのデータ転送を指示する。例えばMove X命令が「００００１」（一番左が９桁目、一番右が５桁目）の場合、このMove X命令は、レジスタr0の値を、レジスタx0に転送すること（x0=r0）を意味する。また、Move X命令が「０１０００」の場合、このMove X命令は、ポインタax1が指すデータメモリのアドレスに格納された値をレジスタx0に転送し、さらにポインタax1の値を１インクリメントすることを意味する（x0=*(ax1++)）。
【００２０】
０桁目〜４桁目のMove Y命令は、レジスタ間や、データメモリ（図３参照）からレジスタへのデータ転送を指示する。例えばMove Y命令が「００００１」（一番左が９桁目、一番右が５桁目）の場合、このMove Y命令は、レジスタr1の値を、レジスタy0に転送すること（y0=r1）を意味する。また、Move Y命令が「０１０００」の場合、このMove Y命令は、ポインタay1が指すデータメモリのアドレスに格納された値をレジスタy0に転送し、さらにポインタay1の値を１インクリメントすることを意味する（y0=*(ay1++)）。
【００２１】
１８〜１９桁目の「１１」は、この命令コードのタイプを示す分類コードである。即ち、この分類コードは、この命令コードに、算術論理演算命令と２つのデータ転送コード命令とが含まれていることを示す。
【００２２】
表２の最下行に示す命令コードでは、分岐処理命令と、選択コードによって選択された拡張命令とが実行される。
【００２３】
より詳細には、４〜９桁目のBranch命令は分岐処理（例えばreturn、goto）を指示する。例えばBranch命令が「００００００」の場合、このBranch命令は、スタックレジスタに待避されている戻り値に示される命令メモリ１１のアドレスに処理を戻す（プログラム・カウンタをセットする）ことを意味する。
【００２４】
０〜３桁目の選択コードは、後に詳述するように、選択コードに対応するレジスタをレジスタ群１３の中から選択して、選択されたレジスタに含まれる命令（拡張命令）を実行するためのものである。
【００２５】
１０桁目〜１９桁目の「００・・・００」は、この命令コードのタイプを示す分類コードである。即ち、この分類コードは、この命令コードに、分岐処理命令と選択コードとが含まれていることを示す。
【００２６】
図１において、第１の命令デコーダ１４は、命令メモリ１１から出力された命令コードが入力され、入力された命令コードに基づいて、この命令コードのタイプを識別する。
【００２７】
より詳細には、第１の命令デコーダ１４は、分類コードの中の分類コード部分で、命令コードのタイプを判定する。
【００２８】
例えば、入力された命令コードが、１９桁目から下位桁に向かって、連続した１０個のゼロ「００００００００００」（分類コード）を含む場合は、当該命令コードのタイプは、「分岐＋拡張命令」（表２参照）であると認識する。つまり、第１の命令デコーダ１４は、当該命令コードは、４〜９桁目に分岐命令を含み、０〜３桁目に選択コードを含むと判断する。さらに、第１の命令デコーダ１４は、この分類コードに基づき、上記選択コードに対応する拡張命令の種類（例えばＡＬＵ命令、Move X命令＋Move Y命令、Move X命令、Move Y命令、即値命令、乗算命令など）も判断する。
【００２９】
第１の命令デコーダ１４は、このような識別結果（命令コードのタイプ、拡張命令の種類）を第２の命令デコーダに入力する。また、第１の命令デコーダ１４は、命令メモリ１１から入力された命令コードに選択コードが含まれる場合は、命令コードにおいて選択コードが格納されたビット位置を示す選択信号を生成し、生成した選択信号を制御回路１２に出力する。
【００３０】
制御回路１２は、選択回路２１と、書込回路２２とを有する。制御回路１２は、命令メモリ１１から出力された命令コードの全部又は一部（例えば２０ビット長の命令コードのうち下位１０ビット等）が入力される。
【００３１】
選択回路２１は、命令メモリ１１から入力された命令コードの全部又は一部と、第１の命令デコーダ１４から入力された選択信号とに基づいて、この選択信号に示される位置のビットを命令コードの全部又は一部から検出し、検出したビットをレジスタ群１３に出力する。例えば、選択信号が命令コードの全部又は一部の下位４ビット（０〜３桁目）（表２の最下行参照）を示す場合は、この下位４ビットを命令コードの全部又は一部から検出して出力する。
【００３２】
レジスタ群１３は、複数のレジスタ１〜レジスタｎを有する。各レジスタは、それぞれ拡張命令（例えばＡＬＵ命令、Move X命令＋Move Y命令、Move X命令、Move Y命令、即値命令、乗算命令など）を格納する。本例では、レジスタ群１３は、１６個のレジスタ１〜レジスタ１６を有し、１６ワード分の命令コードを格納可能であるとする。レジスタ群１３は、制御回路１２からビットが入力された場合は、入力されたビットに対応するレジスタを選択する。例えば、入力されたビットが「００００」の場合は、レジスタ１を選択し、「０００１」の場合はレジスタ２を選択し、・・・「１１１１」の場合は、レジスタ１６を選択する。レジスタ群１３は、このようにして選択したレジスタに格納される拡張命令を第２の命令デコーダ１５に出力する。
【００３３】
レジスタ群１３におけるレジスタへの拡張命令のセットは、制御回路１２における書込回路２２が行う。書込回路２２によるレジスタ群１３への拡張命令のセットは、例えば以下のようにして行われる。
【００３４】
第１に、命令を登録するか否かを識別する識別ビットを格納するためのフィールドを命令コードに追加し、命令コードにおける識別ビットがオンであればその命令コードに含まれる命令を拡張命令としてレジスタに登録し、オフであれば登録しない。より詳細には、第１の命令デコーダ１４（又は第２の命令デコーダ１５）が、識別ビットがオンであることを検出した場合は、命令の登録を指示する指示信号（例えば命令コードに含まれる登録すべき命令のビット位置及び登録先のレジスタを示す識別子を含むとし、これらは命令コードに含まれる分類コードによって決定される）を書込回路２２に出力する。書込回路２２は、指示信号に示される位置のビットを、命令メモリ１１から入力される命令コードの全部又は一部から検出し、指定のレジスタへ拡張命令として登録する。
【００３５】
第２に、拡張命令をレジスタに登録するための専用の命令コードを用意し、当該専用の命令コードに従って登録を行う。より詳細には、第１の命令デコーダ１４（又は第２の命令デコーダ１５）が、専用の命令コードが入力された場合は、この専用の命令コードに含まれる命令を登録することを指示する指示信号（例えば専用の命令コードに含まれる登録すべき命令のビット位置及び登録先のレジスタを示す識別子を含む）を書込回路１２に出力する。書込回路２２は、指示信号に示される位置のビットを、命令メモリ１１から入力される専用の命令コードの全部又は一部から検出し、指定のレジスタへ拡張命令として登録する。
【００３６】
第３に、専用の設定レジスタを設け、この設定レジスタの値に応じて登録を行う。例えば、第１の命令デコーダ１４（又は第２の命令デコーダ１５）は、設定レジスタがオンであれば、命令の登録を指示する指示信号（例えば命令コードに含まれる登録すべき命令のビット位置及び登録先のレジスタを示す識別子を含むとし、これらは命令コードに含まれる分類コードによって決定される）を書込回路２２に出力する。書込回路２２は、指示信号に示される位置のビットを、命令メモリ１１から入力される命令コードの全部又は一部から検出し、指定のレジスタへ拡張命令として登録する。
【００３７】
図１において、第２の命令デコーダ１５は、命令メモリ１１から命令コードが入力され、また、第１のデコーダ１４から上記識別結果（命令コードのタイプ、拡張命令の種類）が入力される。また、命令メモリ１１から出力された命令コードに選択コードが含まれていた場合は、選択回路２１によって選択された拡張命令がレジスタ群１３から第２の命令デコーダ１５に入力される。
【００３８】
第２の命令デコーダ１５は、第１の命令デコーダ１４から入力された命令コードのタイプに基づき、命令メモリ１１から入力された命令コードに含まれる命令の種類（例えばＡＬＵ命令、Move X命令＋Move Y命令、Move X命令、Move Y命令、即値命令、乗算命令など）を認識し、この認識結果に基づき、この命令を実行するための制御信号を生成して出力する。また、第２の命令デコーダ１５は、レジスタ群１３から拡張命令が入力された場合も同様に、第１の命令デコーダ１４から入力された拡張命令の種類に基づき、レジスタ群１３から入力された拡張命令の種類（例えばＡＬＵ命令、Move X命令＋Move Y命令、Move X命令、Move Y命令、即値命令、乗算命令など）を認識し、この認識結果に基づき、当該拡張命令を実行するための制御信号を生成して出力する。
【００３９】
図２は、図１のデジタル信号処理回路の動作を説明するフローチャートである。
【００４０】
ここでは、表２の最下行に示す「分岐＋拡張命令」タイプの命令コードを実行する場合を例にして説明する。
【００４１】
命令メモリ１１から、図示しないプログラム・カウンタに従って、「分岐＋拡張命令」タイプの命令コードが出力される（Ｓ１１）。
【００４２】
命令メモリ１１から出力された命令コードが第１の命令デコーダ１４及び第２の命令デコーダ１５に入力される。また、命令メモリ１１から出力された命令コードの下位１０ビット（０〜９桁目）が制御回路１２に入力される（Ｓ１２）。
【００４３】
第１の命令デコーダ１４は、命令メモリ１１から入力された命令コードにおける分類コード（１０〜１９桁目のビット）に基づき、当該命令コードのタイプを識別する。この結果、第１の命令デコーダ１４は、当該命令コードのタイプが、「分岐＋拡張命令」タイプであると認識する（Ｓ１３）。つまり、第１の命令デコーダ１４は、命令コードの４〜９桁目に分岐命令が含まれ、命令コードの０〜３桁目のビットに選択コードが含まれることを認識する。また、第１の命令デコーダ１４は、当該分類コードに基づき、選択コードに対応する拡張命令の種類を認識する。
【００４４】
第１の命令デコーダ１４は、命令コードにおける０〜３桁目（下位４桁）のビット（選択コード）を選択するための選択信号を制御回路１２に出力する（Ｓ１４）。また、第１の命令デコーダ１４は、識別結果（命令コードのタイプ及び拡張命令の種類）を第２の命令デコーダ１５に出力する（Ｓ１５）。
【００４５】
制御回路１２における選択回路２１は、第１の命令デコーダ１４から入力された選択信号に基づいて、命令メモリ１１から入力された命令コードの一部（下位１０ビット）から、選択信号に示されるビットを選択する（Ｓ１６）。選択信号は下位４ビットを示し、従って選択回路２１は、命令メモリ１１から入力された命令コードの一部（下位１０ビット）から、下位４ビット（０〜３桁目）を選択する。選択回路２１は、選択した下位４ビットをレジスタ群１３に出力する。
【００４６】
レジスタ群１３は、選択回路２１から入力されたビットに基づいて、入力されたビットに対応するレジスタを特定する（Ｓ１７）。
【００４７】
レジスタ群１３は、特定したレジスタに格納された拡張命令を第２の命令デコーダ１５に出力する（Ｓ１８）。ここでは、Move X及びMove Y命令が第２の命令デコーダ１５に出力されるとする。
【００４８】
第２の命令デコーダ１５は、第１の命令デコーダ１４から入力された識別結果（命令コードのタイプ及び拡張命令の種類）に基づき、命令メモリ１１から入力された命令コードに含まれる命令の種類（本例では分岐命令）、及びレジスタ群１３から入力された拡張命令の種類（本例ではMove X及びMove Y命令）を判別する。この結果、第２の命令デコーダ１５は、分岐命令を実行する制御信号を生成して出力し、また、Move X命令及びMove Y命令を実行する制御信号を生成して出力する（Ｓ１９）。
【００４９】
ここで、本実施の形態による効果を従来の場合と比較して説明する。
【００５０】
背景技術の欄における表１の最下行に示したように、背景技術に示した例では、分岐命令を含む命令コードでは、転送命令等、他の命令との並列実行はできなかった。
【００５１】
例えば下記の様な実行コードがあるとする。
x0=*ax1++, y0=*ay1++;     ・・・（A1）
z0=x0+y0,  x0=*ax1++, y0=*ay1++; ・・・（A2）
z0=z0+x0+y0, x0=*ax1++, y0=*ay1++;      ・・・（A3）
z0=z0+x0+y0, x0=*ax1++, y0=*ay1++;      ・・・（A4）
z0=z0+x0+y0;       ・・・（A5）
*ax0=z0, *ay0=flag;       ・・・（A6）
if(z0>0) goto label1;     ・・・（A7）
【００５２】
この実行コードにおいて、命令コードA7では、分岐命令のみが実行される。
【００５３】
これに対して、本実施の形態を用いた場合、事前に命令コードA6における *ax0=z0,及び*ay0=flagの２つの命令に相当するビット値をレジスタ群におけるレジスタに登録しておく。そして、これら２つの命令が格納されたレジスタを選択する選択コードと分岐命令とを含む命令コードを、以下の命令コードB6に示すように、用意する。
x0=*ax1++, y0=*ay1++;     ・・・（B1）
z0=x0+y0,  x0=*ax1++, y0=*ay1++; ・・・（B2）
z0=z0+x0+y0, x0=*ax1++, y0=*ay1++;      ・・・（B3）
z0=z0+x0+y0, x0=*ax1++, y0=*ay1++;      ・・・（B4）
z0=z0+x0+y0, x0=*ax1++, y0=*ay1++;      ・・・（B5）
if(z0>0) goto1 label1;    ・・・（B6）// *ax0=z0, *ay0=flagも実行  
【００５４】
命令コードB6におけるgoto1というのは、レジスタ群における1番目のレジスタに保持されている命令と分岐(goto)とを並列実行することを意味するニーモニックである。
【００５５】
これにより、１ステップ少ない命令コード数での実行が可能になる。即ち、従来では分岐命令のみ可能であった命令コードであっても、本実施の形態を適用することで、分岐命令に加え、任意の命令を並列に実行できる。
【００５６】
以上のように、本実施の形態によれば、命令コードにおける余ったビットフィールドに、予めレジスタ群に登録した拡張命令を選択する選択コードを格納することで、命令コードの実行時には、命令コードに含まれる命令と、選択コードによってレジスタ群から選択される拡張命令とを同時に実行するため、命令の実行効率を従来に比べて格段に向上させることができる。即ち、命令コード長の制限を越えて多くの回路を動作させることができ、効率的な命令コードを持つプロセッサが得られる。
【００５７】
例えば、１０命令での繰り返し処理があった場合、命令をレジスタ群に記憶するのに余計に１命令費やしたとしても、繰り返しループ内を１命令減らすことができれば、10%の効率アップとなり、ループ回数が多いほどその効果は大きくなる。
【００５８】
上述した例では、分岐命令と並列に実行する拡張命令として、転送命令を示したが、他の命令、例えば命令コードの大半を費やしてしまう即値命令等も、分岐命令と共に並列実行できる。
【００５９】
なお、レジスタ群における各レジスタに命令コード全体を記憶させることで、レジスタ群のより積極的な活用も考えられる。例えば、繰り返し実行の命令の場合、レジスタ群に保持した命令を順次、繰り返し読み出す制御を行うことで、繰り返し命令時は、命令メモリからの読み出しを行わずに済み、消費電力の低減に効果がある。
【００６０】
ところで、上述した説明においては、レジスタ群１３への拡張命令の登録に際し、登録すべき命令は、命令メモリ１１から与えられた。この他、登録すべき命令を、命令メモリ１１からではなく、データメモリから与えることも考えられる。
【００６１】
図３は、登録すべき命令をデータメモリから与えるデジタル信号処理回路の構成を示す図である。
【００６２】
図１に示す構成に対して、データメモリ２４とデータバス２３とが追加されている。データメモリ２４から命令を読み出してレジスタ群１３へ登録する命令コードを用意する。当該命令コードが実行されることで、当該命令コードに示される位置に格納された命令がデータメモリ２４からデータバス２３を介して制御回路１２に入力される。制御回路１２における書込回路２２は、第１の命令デコーダ１４又は第２の命令デコーダ１５からの指示信号又は制御信号に従って、入力された命令を、指示信号又は制御信号に基づくレジスタに書き込む。
【００６３】
このようにレジスタ群１３に登録すべき命令をデータメモリ２４に格納しておくことで、例えばポインタ演算を使った短いビット命令で登録すべき命令を転送できると共に（例えば、ext_code0 = *ax1++; ext_code1 = *ax1++;）、命令コード自身に登録すべき命令を含める必要がなくなる、すなわち、登録すべき命令を指定するのに命令コード自身を消費しなくて済む。また、登録すべき命令の再利用も可能となる。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態に従ったデジタル信号処理回路の構成を示すブロック図である。
【図２】図１のデジタル信号処理回路の動作を説明するフローチャートである。
【図３】登録すべき命令をデータメモリから与えるデジタル信号処理回路の構成を示す図である。
【符号の説明】
【００６５】
１１  命令メモリ
１２  制御回路
１３  レジスタ群
１４  第１の命令デコーダ
１５  第２の命令デコーダ
２１  選択回路
２２  書込回路
２３  データバス
２４  データメモリ
【図１】
2006092158.tif 000005
【図２】
2006092158.tif 000006
【図３】
2006092158.tif 000007