(57)【特許請求の範囲】
【請求項１】
プロセッサ（１）およびコプロセッサ（２）を備えた電子回路において、上記プロセッサおよび上記コプロセッサが、命令メモリ（３）の出力バスの少なくとも複数の線（５）を介して当該命令メモリに接続されて、当該命令メモリからの命令を同時に受けるようになされており、上記プロセッサ（１）は、命令デコーダ（７）を有しており、上記コプロセッサ（２）は、命令デコーダ（１３）を有しており、上記プロセッサ（１）の上記命令デコーダ（７）は、受けた命令をデコードして、当該受けた命令の少なくとも一部が上記コプロセッサ（２）によって実行されなければならないという事実を認識して、上記受けた命令がデコードされる上記プロセッサ（１）のサイクルの間に、対応する認識信号（ＶＣ１）を、上記コプロセッサに送信する回路を備え、上記コプロセッサ（２）の上記命令デコーダ（１３）は、受けた命令をデコードする回路と、上記コプロセッサが上記認識信号を受けた時に、上記デコードを有効化して引き続き上記受けた命令を実行するようにする回路とを具備しており、上記受けた命令の上記デコードと上記有効化とを同一の１つのサイクルの間に実行することを特徴とする電子回路。
【請求項２】
上記電子回路がモノリシック集積回路であって、上記コプロセッサ（２）の上記命令デコーダ（１３）は、上記命令メモリ（３）の上記出力バスに接続されており、上記コプロセッサが、上記コプロセッサの上記命令デコーダ（１３）に接続されて当該命令デコーダによってデコードされた命令の実行を可能にする命令レジスタ（１２）と、上記命令レジスタによって転送される命令に応じてデータを処理するプログラマブルな処理回路（１６）と、上記モノリシック集積回路のデータバス（２４）に入力が接続され、上記コプロセッサの上記処理回路に出力が接続されたデータ入力レジスタ（１４）と、上記コプロセッサの上記処理回路に入力が接続され、上記モノリシック集積回路の上記データバスに出力が接続されたデータ出力レジスタ（１５）とを備えることを特徴とする請求項１に記載の電子回路。
【請求項３】
上記コプロセッサと並列に接続されて、２つの異なるデータメモリ（Ｘ、Ｙ）からのデータを同時に処理する第２のコプロセッサを備えることを特徴とする請求項１または２に記載の電子回路。
【請求項４】
上記プロセッサの１動作サイクルよりも長く続く多サイクル命令を上記プロセッサが実行している場合に、上記認識信号が送られるのを遅らせる遅延回路を上記プロセッサが備えることを特徴とする請求項１〜３の何れか１項に記載の電子回路。
【請求項５】
上記遅延回路が、複数の単位命令が並べられて構成され最後の単位命令がわかる多サイクル命令を検知するために、上記プロセッサの上記命令デコーダ内に設けらているデコード回路と、多サイクル命令終了後に上記認識信号の転送を許可する回路とを備えることを特徴とする請求項４に記載の電子回路。
【請求項６】
上記遅延回路が、多サイクル命令の存在を検知するために、上記プロセッサの上記命令デコーダ内に設けらているデコード回路と、
上記プロセッサによる実行される多サイクル命令の実行時間に依存して初期状態に置かれ、多サイクル命令の終わりに上記認識信号を転送することを許可する信号を発生するアップ／ダウンカウンタとを備えることを特徴とする請求項４に記載の電子回路。
【請求項７】
プロセッサ（１）とコプロセッサ（２）の使用方法であって、
命令メモリの出力バス（１４）の少なくとも複数の線（５）を介して、同一の命令の一部（２２）を上記プロセッサと上記コプロセッサとに同時に転送し、
同一の１つのサイクルの間に、命令を上記プロセッサ（１）と上記コプロセッサ（２）との両方においてデコードするとともに、上記プロセッサの命令デコーダ（７）は受けた命令が上記コプロセッサによって実行されなければならないという事実を認識して、上記サイクルの間に対応する認識信号（ＶＣ１）を上記コプロセッサに送信し、かつ、上記コプロセッサが、その有効化回路で上記認識信号（ＶＣ１）を受けて、上記サイクルに続くサイクル中に上記コプロセッサの命令デコーダ（１３）がデコードした命令を実行できるようにする
ことを特徴とする使用方法。
【請求項８】
上記プロセッサのシーケンサ（１０）が、同期化された制御信号を、上記コプロセッサの命令デコーダ（１３）、上記コプロセッサの命令レジスタ（１２）、上記コプロセッサのプログラマブル処理回路（１６）、上記コプロセッサのデータ入力レジスタ（１４）、および上記コプロセッサのデータ出力レジスタ（１５）に送ることを特徴とする請求項７に記載の使用方法。
【請求項９】
上記プロセッサが、上記コプロセッサの動作に必要なメモリへのアクセスポイントを管理することを特徴とする請求項７または８に記載の使用方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、電子回路に関するものであり、特に、集積回路及びプロセッサをコプロセッサと協動させることができるようにするその集積回路の使用に関するものである。本発明は、特徴の１つが処理速度であるデジタルシグナルプロセッサ（ＤＳＰとして知られている）の分野に特に係わるものである。このようなデジタルシグナルプロセッサは、符号化動作または暗号化動作、特にモデムにおけるまたは音声処理動作のための符号化動作または暗号化動作を実行するために伝送システムにおいて使用される。
【０００２】
【従来の技術】
知られているデジタルプロセッサは、プログラマブル（プログラム可能な）処理回路をプログラムして、そのプログラマブル処理回路のプログラムされた状態に応じてデータを変更するために使用される１組の回路を具備している。そのプログラマブル処理回路のプログラムされた状態の変更は、命令として知られているデータ信号をそのプログラマブル処理回路に供給してなされる。プロセッサの様々な回路は特に、命令レジスタ及びデータレジスタを具備しており、プログラマブル処理回路と、そのプログラマブル処理回路に様々な命令及び様々なデータを供給するシーケンスを、タイミングを合わせて構成するシーケンサとをリンクする。この動作のシーケンスがプログラムと称される。普通、このようなプロセッサは、適切な命令が供給されるならば、任意の型式の動作を実行することができる。
【０００３】
しかし、特に複雑で長い或る種の特別な処理動作が高速で実行されねばならないとき、問題が生じる。この場合、普通に使用される型式のプロセッサに頼ることはできない。なぜならば、そのようなプロセッサを使用するならば、連続する命令の実行が、特別な処理動作の複雑さのために過剰に長い期間遅れる。例えば、各動作が１サイクルの期間で足りるような所与の速度でプロセッサの作業が実行さねばならないと仮定する。その作業の間に、１サイクル期間の50倍の期間を要する動作に出現する可能性がある。
【０００４】
この種の長い動作を含めて全ての動作を、１サイクルの間に、または少なくとも高速で実行するために、コプロセッサの技術が利用されている。実際、コプロセッサは、普通のプロセッサでは50サイクルを要したであろう動作を高速で（例えば、３乃至４サイクル内で）実行することができる特別な回路である。しかし、コプロセッサを適切なタイミングで動作させるためには、プロセッサがコプロセッサが協動するように構成して、コプロセッサに必要なデータを供給してコプロセッサに処理を移す必要がある。そのあと、コプロセッサは、独立して作業を開始し、その作業を完了し次第、処理済のデータが使用可能であることをプロセッサに通知する。
【０００５】
しかし、このような動作のモードは、単一サイクル期間の間に実行されねばならない動作があまり長くないとき、例えば、動作が５サイクル期間しか必要としないとき、考えられない。実際、コプロセッサを動作するように構成するには、５サイクルの期間を必要とし、一方、１サイクルの間に作業を遂行するようにコプロセッサが構成されているならば、基本的に低速なプロセッサに作業を直接実行させた場合に得られるであろう利点と比較して、なんら利点が得られない。
【０００６】
【発明が解決しよとする課題】
そこで、本発明は、非常に長く且つ複雑な動作をコプロセッサが実行しなければならないときにも有効であるが、コプロセッサを動作させる期間を短くする課題を解決せんとするものである。
【０００７】
【課題を解決するための手段】
本発明によるならば、プロセッサの全体回路の予備的定義の後に意図されるとき、同一の１つの電子回路に相補的な機能を実行させる。この場合、コプロセッサは、実際上、既知のしかし複雑な余り使用されない動作の処理に専用な特別な回路であるので、集積回路を全体的に再設計することが可能である。しかし、異なる要望一つ一つに新しく集積回路を用意することは、回路全体が問題である場合、余りの複雑な作業である。
【０００８】
本発明のシステムでは、回路の心臓部を維持して、回路の心臓部が常に同一であるように保つことが可能である。すなわち、プロセッサは、常時維持される。反対に、特に高速で実行されねばならない特別な動作のために、特別なコプロセッサが同一の１つの集積回路につくられる。本発明が提案するプロセッサとコプロセッサとの間の交換モードは、この種の変更に特に有益である。コプロセッサは、コプロセッサに送られてきた命令に従ってデータを処理する回路を有していることが好ましい。
【０００９】
本発明の１つの特徴は、プロセッサのシーケンスによって送られた命令が、コプロセッサを案内するために使用されることである。更に、プロセッサ及びコプロセッサが、命令メモリの同一出力バスに接続され、その命令メモリから読み出された命令を同時に受ける。プロセッサ及びコプロセッサの両方が、命令デコーダを有している。本発明によるならば、プロセッサの命令デコーダは、命令がコプロセッサによって実行されねばならないことを認識して、対応する認識信号を生成する回路を有している。この認識信号は、コプロセッサに送られ、その動作を有効化する。本発明においては、プロセッサ及びコプロセッサの両方が並列しているので、プロセッサによる命令のデコーディングと同時に行われるコプロセッサによる命令のデコーディングが、有効化され、コプロセッサが命令を実行することができる。好ましくは、命令の実行は、デコーディングに続くサイクルにおいてなされ、コプロセッサは、コプロセッサが有効にデコードされた命令の全てを実行することができる。
【００１０】
本発明においては、補助コプロセッサの動作時間は、主プロセッサの動作時間の内の１サイクルに限定することが好ましい。しかし、プロセッサの制御で、コプロセッサを連続して数サイクル動作させることができる。
【００１１】
コプロセッサを動作させる本発明において選んだデコーディングの原理は、特に自由度が高く、プロセッサとコプロセッサとのほぼ並列した動作に適合している。更に、コプロセッサの構成を簡略化するために、データメモリからコプロセッサへのデータの転送の全ての動作は、プロセッサの制御の下に行われる。従って、コプロセッサにより実行されねばならない命令の場合には、処理されるべきデータをコプロセッサに処理動作の始めに与え、処理動作の終わりに処理されたデータを受け取るように、プロセッサは動作する。
【００１２】
かくして、本発明によるならば、命令メモリのデータ出力バスの内の少なくとも複数の線を介して同一の１つの命令メモリに接続されたプロセッサとコプロセッサとを備える電子回路を提案する。プロセッサの命令デコーダは、バスを介して転送された命令から、当該命令がコプロセッサによって少なくとも部分的に実行されねばならないことを認識して、対応する認識信号をコプロセッサに送る回路を具備している。コプロセッサは、コプロセッサがその認識信号を受けたときコプロセッサが命令を実行することを許可する有効化回路を有している。
【００１３】
更に本発明によるならば、プロセッサとコプロセッサとの使用方法が提案される。本発明の方法においては、命令の少なくとも同一部分が、命令メモリのデータ出力バスの内の少なくとも複数の線を介して、プロセッサとコプロセッサとに同時に送られる。その命令は、プロセッサでデコードされ、デコードされた命令がコプロセッサによって実行されねばならないことを示す認識信号が生成される。そして、コプロセッサは、コプロセッサがその認識信号を受けたときコプロセッサが命令を実行することが許可される。
【００１４】
【実施例】
図１は、本発明による電子回路を図示している。この電子回路は、プロセッサ１とコプロセッサ２とを具備している。例えば、プロセッサ１は、デジタルデコーダ転送、特にビット制御機能、外部から与えられるフレームとの同期、並びに転送すべきデータの圧縮動作などの、モデムの共通機能を全てを実行するように構成されたプロセッサである。１つの例では、コプロセッサは、既知のＶＩＴＥＲＢＩ型の畳込み及び等化アルゴリズムを実行するように構成されている。当然、このコプロセッサは、データの到着及び出力速度でリアルタイムで動作して、遅延なくデータを転送しなければならない。このようなＶＩＴＥＲＢＩアルゴリズムにおいて実行されなければならない動作は複雑である。従って、プロセッサ１が、超高速回路（従って、製造が困難で且つ高価な回路）を具備するように構成されるか、または、この機能のために特化すなわち専用化されていない限り、そのような動作は、プロセッサ１によって実行させることを考えることはできなかった（ここで、専用化した回路は、それ自体既知の一般的な処理機能と共に、既知の１つのエンコーディングＶＩＴＥＲＢＩ機能を最終的に有しているだけあるが、再定義及び再構成のために多大な労力を必要としている）。
【００１５】
本発明の特徴の１つは、プロセッサ１とコプロセッサ２とがバス４を介して同一の１つの命令メモリ３に接続されていることである。図示の例では、バス４の線の内の少なくとも一部５（バス５）がコプロセッサ２に接続されている。図２に示すように、１つの例での命令ワードは、16ビットでエンコードされており、命令メモリ３は、バス４上に並列な16の出力を有しており、各出力が16ビットの各１ビットを出力する。更に後述するように、バス５は、16ビットではなく、４ビットしかない。その４ビットは、命令メモリ３から出力される16ビットの内の４ビットである。
【００１６】
プロセッサ１は、標準的な命令レジスタ６を有しており、その命令レジスタ６は、その入力がバス４に接続され、その出力が命令デコーダ７に接続されている。データメモリＸまたはＹからのデータは、プロセッサ１の入出力データレジスタ８に送られる。プロセッサ１のプログラマブル処理回路９は、データレジスタ８に格納されたデータに対して、プログラムされた処理動作を実行する。このプログラムされた処理動作は、命令レジスタ６に格納された２進データによって、その動作パラメータを設定する。処理動作の終了で、プロセッサ１が接続されている様々な周辺機器に分配されるデータが、入出力データレジスタ８において利用できる。上述したアーキテクチャは、プロセッサの全く一般的なアーキテクチャである。シーケンサ10は、それら回路６〜９を制御する。
【００１７】
本発明の特別な特徴の１つは、命令デコーダ７が、命令の実行中に使用される制御信号だけでなく、接続線11（１本以上の線）を介してコプロセッサ２に送られる“ＶＣＩ”として知られている認識信号も生成することである。信号ＶＣＩは、命令デコーダ７によってデコードされた命令が、コプロセッサ２によって実行されるべき命令であることを指示する信号である。
【００１８】
プロセッサ１と同様に、コプロセッサ２も、命令レジスタ12と、命令デコーダ13と、データ入力レジスタ14と、データ出力レジスタ15と、プログラマブル処理回路16とを具備している。命令レジスタ12は、その入力がバス５に接続され、その出力が命令デコーダ13に接続されている。命令デコーダ13は、その出力がプログラマブル処理回路16に接続されている。コプロセッサ２は、複数のコプロセッサ命令を連携させる比較的複雑な動作を実行することか必要な場合には、シーケンサを具備していてもよい。
【００１９】
コプロセッサ２内の様々な回路は、プロセッサ１のシーケンサ10によって同期が図られることが好ましい。実際、プロセッサ１の１サイクル期間の間にコプロセッサ２に具体的な動作を実行させたいので、この制御タスクは、最も基本的な型式である。すなわち、それは、まさに、クロックレート設定制御である。処理回路16は、プログラマブルであるが特別な回路であることが好ましい。ここで、プログラマブルとは、命令レジスタ12に格納されている或る数の命令によってパラメータが設定可能であるとの意味である。例えば、本発明におけるこの命令の数は16である。その理由は、バス５を介して４ビットを転送することしか必要でないためである（２4 ＝16）。小さな範囲でプログラマブルであるにも係わらず、処理回路16は、恒久的に固定された接続で、非常に多くの動作を物理的に実行する非常に複雑な特別な回路となることができる。反対に、プロセッサ１の処理回路９は、非常に自由度が高く、一般的な動作を実行することができる。すなわち、約1000の異なる命令を実行できる。
【００２０】
本発明の特別な特徴のもう１つは、命令デコーダ13、命令レジスタ12または他の回路14〜16の内の任意の回路が、信号ＶＣＩを受ける有効化入力を有しまたはと有することででき、認識信号が受けられたとき、処理回路による命令の実行を許可することである。図１は、命令デコーダ13または点線で示すように命令レジスタ12が信号ＶＣＩによって有効化されるようにしか図示していない。有効化回路は、非常に簡単でよい。すなわち、有効化回路は、単位回路を動作状態に置く“チップイネーブル”型のＯＮ信号を通過を許可まつたは禁止するスイッチ（トランジスタ）を簡単に有しているものでよい。
【００２１】
図２は、命令メモリ３から出力される命令ワードの16ビットの構成を示すものである。最初の11ビットは、命令コードを表しており、最後の５ビットは、プロセッサ１またはコプロセッサ２とデータメモリＸまたはＹとの間のデータ交換モードに対応する。従って、最後の５ビットの内の第１の１ビット17は、選択されたデータメモリ、すわなち、データメモリＸかまたはデータメモリＹかに関するものである。第２のビット18は、メモリの処理モード、すなわち書込かまたは読み取りかに関する。第３のビット19は、その選択したデータメモリにおけるアドレスインジケータである。従って、２通りのアドレスインジケータが可能である。残りの２ビット20及び21は、特に使用の場合、データメモリＸまたはＹにおける４通りのインクリメント値内の１つを指定するものである。実際、読み出されるまたは書き込まれるデータが、予め設定されたアドレスインクリメントで、データ転送ごとに読み出されまたは書き込まれる型式のアドレス動作を実行する方法が様々知られている。
【００２２】
命令ワードの始めの11ビットの命令コード（なお、ここに示すビットの順番は単なる例に過ぎず、ビットの順番は変えることもできる）は、1000以上の命令（すなわち、プロセッサ１により実行される1000の命令およびコプロセッサ２により実行される16の命令）の定義を可能にする。コプロセッサ２により実行される16の命令に対応するコードは、命令レジスタ12に接続されたバス５の４本の接続線に対応する命令ワードの４ビットゾーン22に常に置かれる。上述した５ビットでは、それら５ビットの特定の値の配列が、コプロセッサ２を動作状態に置かねばならないことを指示するため使用される。
【００２３】
以下に説明する特定な例では、コプロセッサ２は、コプロセッサが２つのコプロセッサすなわちコプロセッサＡ及びコプロセッサＢとに分けられていると言うことができる意味において、実際には多少複雑な回路である。この二重の表現は、扱われるメモリが２つのデータメモリＸ及びＹであることから、部分的には理解できよう。それ故、或る命令に対して、データメモリＸまたはデータメモリＹからのデータを処理回路16がその入力データレジスタ14で受ける。それ異なり、別の或る命令に対して、データメモリＸのデータとデータメモリＹのデータとを同時に処理する必要があるならば、データ入力レジスタ14を二倍にする必要があることを証明している。このことは、出力データメモリ15にも当てはまり、二倍にしなければならない。実際、処理回路16には、他方のメモリからのデータを同時に考慮する回路（不図示）が付加される。このような複雑さを伴う命令の場合、実際には、コプロセッサＡがデータメモリＸのデータを処理し、コプロセッサＢがデータメモリＹのデータを処理するようにし、またはその反対に、コプロセッサＡがデータメモリＹのデータを処理し、コプロセッサＢがデータメモリＸのデータを処理するようにしてもよい。または、単一のコプロセッサの処理回路が、同時に受けたデータメモリＸのデータとデータメモリＹのデータとに係わる動作を実行してもよい。
【００２４】
しかし、所与のサイクルには１つの命令しかロードされないので、原理的には、命令レジスタ13は、両処理回路に対して同じものである。実際、このことにより、図２の命令ワードの残りの５ビットゾーンにおいて、１つのまたは２つのまたは３つの異なる識別コードを定義する必要が生じる。それら識別コードとは、コプロセッサＡが動作されることを指示する識別コードＣＯＰ  Ａと、コプロセッサＢが動作されることを指示する識別コードＣＯＰ  Ｂと、更に必要ならば、コプロセッサＡ及びコプロセッサＢの両方が動作されることを指示する識別コードＣＯＰ  ＡＢとである。実際、これら２または３つの識別コードは、命令ワードの最初の５ビットを表す特定な形でもよい。コプロセッサは、上記した専用コードで選択してもよいし、または、初期化段階で、コプロセッサの内部ステータスレジスタに命令を書き込むことによってコプロセッサの動作が有効化されるようにしてもよい。後者の場合、各コプロセッサは、機能を開始する前に、先ず最初に、有効化され、そのあと、無効化されねばならない。常に１つのコプロセッサだけが動作可能であるようにすることもできる。シーケンサ10には、有効情報及び無効情報をロードすることができる。
【００２５】
本発明の特別な特徴は、命令デコーダ７が、特定の表現型式から信号ＶＣＩを生成することである。この作業モードは、コプロセッサ２によって実行できる３×16＝48の命令を定義することが究極的に可能である。既知の型式の命令デコーダ７において、これら表現型式の検出には何らの困難を生じない。従って、対応する信号ＶＣＩを容易に生成できる。
【００２６】
データ入出力レジスタ８、データ入力レジスタ14またはデータ出力レジスタ15は、データバス24を介してデータメモリＸまたはＹに結合されている。そのデータバス24の線の数は、データに対して要求される精度に関係しており、例えば、16ビットまたは32ビットまたはそれ以上である。プロセッサ１は、普通の方法で命令メモリ３及びデータメモリＸ及びＹにアドレスするための回路（不図示）を更に有している。
【００２７】
図３は、本発明による回路の動作を分かり易く説明するものである。図３(a) は、プロセッサ１が命令メモリ３にアドレスすなわちアクセスして命令を得て命令を命令レジスタにロードする動作を図示している。例えば、プロセッサ１は先ず最初に、プロセッサ１の処理回路９により実行可能な命令ＩＰ１を得て、その後、コプロセッサ２の処理回路16により実行可能な命令ＩＣ１を得て、次いで、プロセッサ１により実行可能な命令ＩＰ２を得て、その後、コプロセッサ２により実行可能な命令ＩＣ２を得ているように図示されている。この態様が続くと、シーケンサ10は、命令メモリ３からの命令を読み取ることができるように回路を組織しすなわち制御して、所望の命令をバス４及び５に出力させる。
【００２８】
図３(b) は、互いに並列に接続された命令デコータ７及び命令デコータ13の両方における、続く動作サイクルでの命令のデコーディングを示している。コプロセッサ命令を示す信号ＶＣＩが有効である場合、命令デコーダ13の動作が有効化される。このようにして、これらのデコーダは、続くサイクルで命令ＩＰ１、ＩＣ１、ＩＰ２する。しかし、命令ＩＣ２は、命令ＩＰ２が読み取られたすなわちデコードされたサイクルに続くサイクルではデコードされない。これを後述する。
【００２９】
図３(c) は、プロセッサ１のための命令のプロセッサ１による実行を図示している。図３(d) は、コプロセッサ２のための命令のコプロセッサ２による実行を図示している。そして、図３(e) は、それら実行サイクルの前の、命令デコードサイクルでの有効な信号ＶＣＩを示している。
命令デコーダ７でのデコーディングは、同一の１つのサイクルの間に、命令デコーダ13でのデコーディングを生起している。（図３(c) の第３サイクルに示すように）全く当然のこととして、プロセッサ１は命令ＩＰ１を実行する（なお、データの転送方法は他のところで説明する）。次のサイクルで、プロセッサ１の処理回路の算術オペレータが非活性化される。すなわち、データを処理しない。反対に、コプロセッサ２は、プロセッサ１から信号ＶＣＩを受けているまたは受けるので、コプロセッサ２は命令ＩＣ１を実行する。命令ＩＣ１のデコーディングのときに、命令デコーダ７により信号ＶＣＩが生成される。信号ＶＣＩは、１サイクルの間だけしか有効化されない。すなわち、この１サイクルは、コプロセッサ命令のデコーディングに対応し且つその実行（ここで説明している例では、１サイクルで完了する）に先行するサイクルである。
【００３０】
命令ＩＰ２は更に１つの特徴を有している。実際、この命令ＩＰ２は、プロセッサ１に２以上の動作サイクルを続けさせるように、始めに構成されている。従って、プロセッサ１は、命令が２サイクル命令であることを認識する手段を命令デコーダ７に設けている。例えば、命令コードの11ビットの内の第10ビットがこの場合“１”である。この状態を認識するとき、命令デコーダ７は、命令ＩＰ２のデコーディングの終わりで、シーケンサ10の制御信号27（図３(b))により、命令メモリの連続したパイプライン読み取りを一時的に中断乃至保留することが既にできる。命令ＩＰ２のデコーディングに続くサイクルで、この命令は処理回路９により実行される。その命令は、命令の第１の部分ＩＰ２ａと、次のサイクルで実行されるべき第２の部分ＩＰ２ｂとを有している。このような動作は、知られている型式である。
【００３１】
制御信号27により、命令ＩＣ２は、バス４及び５上にあるように保たれていることが好ましい。それ故、命令ＩＰ２の第２の部分の始めだけデコーディングをするようすることが重要である。このような手順を満たすように制御信号27はシーケンサ10により生成される。
【００３２】
更に、制御信号28が生成される。この制御信号28は、プロセッサ１により実行されている多サイクル命令の明確な終わりを指示するものである。制御信号28は２通りの方法で得ることができる。まず、命令ＩＰ２のデコーディングで、すなわち図３(a) から図３(d) の第４サイクル期間で、処理されている命令が２サイクル（ｎサイクル）を有する多サイクル命令であることを知ることができる。従って、“２−１”（“ｎ−１”）の初期値を有するアップ／ダウンカウンタを動作状態にして、そのアップ／ダウンカウンタが正しいタイミングで制御信号28を生成するようにすることができる。
【００３３】
好ましい方法では、命令レジスタ６にロードされた命令ＩＰ２ａまたはＩＰ２ｂの値を処理することにより、多少異なる手順が行われる。実際には、（究極的にはデコーダと同一の回路で）命令をフィルタリングして、命令の１つが特定の方法で整形されるとき、信号を生成することができる。例えば、命令レジスタ６に格納されている命令コードの内の所与の重みすなわち桁位置を有するビットが、ロードされた（１サイクルで実行される）単位命令が最後の（すなわち第２の）単位命令であることを示す所定の値を有するようにすることもできる。この検出により、該当する単位命令をロードするとき（または、直前の単位命令の実行の終わりに）制御信号28を生成することができる。
【００３４】
プロセッサ１及びコプロセッサ２は、同一の１つの集積回路に作り込まれることが好ましい。集積回路の領域の一部は、上述した全ての回路を有するプロセッサ１のために割り当てられ、集積回路の領域の残りの部分は、場合に応じて広い場合も狭い場合もあるが、専用処理回路のために割り当てられる。プロセッサ１の処理回路９は、約1000の命令を処理する能力を有しているので、処理回路９のプログラミングは非常に複雑である。しかし、プログラマブル処理回路16は、それ自体は複雑であるが、そのプログラミングは非常に簡単である。この複雑な処理回路16は更に、実行しなければならない16の命令に対応する16通りの構成乃至配置の一つ一つごとにテストすることができる。この方法は、プロセッサ１により実行することができる命令セットの中に16の命令を組み込みことと比較するならば、非常に簡単である。
【００３５】
図３(a) から図３(e) に示すような連続した動作の巧みな選択並びに命令サイクルの間しかコプロセッサの動作を許さない方法により、プロセッサとコプロセッサとの関係を非常に明瞭に単純化し、且つ、コプロセッサ２を動作状態に置くために必要な時間の損失を制限している。実際、本発明においては、時間の損失は零である。コプロセッサは、次のサイクル期間に動作を開始する。それにもかかわらず、制御信号27及び28に匹敵する制御信号を生成し且つそのときコプロセッサ２をオフにする代わりにプロセッサ１をオフにする手段を、シーケンサ10及び命令デコーダ７の中に設けることによって、コプロセッサ２によって実行される多サイクル命令を有することを考えることができる。
【００３６】
コプロセッサ２の機能を単純化するために、本発明では、データメモリからデータＸまたはＹを取り出し且つそれらメモリにデータをロードする動作をプロセッサ１が実行する。これは、命令を処理回路９または16の内のどちらが実行するかどうかに係わりなく、データバス24及びデータメモリＸまたはＹの管理がプロセッサ１に委ねられていることを意味している。しかし、これは何れにしても普通のプロセッサが行うことであるので、構成は複雑ではない。換言するならば、各サイクル期間ｔごとに、“ｔ”番目の命令の読み取り（図３(a))、“ｔ−１”番目の命令のデコーディング（図３(b))、“ｔ−２”番目の命令のプロセッサ１またはコプロセッサ２による実行（図３(c) または図３(d))、“ｔ−２”番目の命令に係わるデータのデータメモリＸまたはＹへの（またはデータレジスタ８または14への）転送、“ｔ−１”番目の命令によって処理されたデータのデータメモリＸまたはＹへの（またはデータレジスタ８または15への）供給がなされる。これら動作の全ては、プロセッサを基本とする集積回路、特に、本件出願人のＳＴ９と称するマイクロプロセッサを基本とする回路によって普通の方法で実行される。
【００３７】
以上、本発明の少なくとも１つの実施例を説明したが、様々な変更または改良が当業者には容易にできよう。しかし、かかる変更や改良は、本発明の考え方および範囲内に属するものである。従って、上述した説明は、単に例としてなしたものであり、限定するものではない。本発明は、特許請求の範囲に規定されるようにのみ限定されるものである。
【図面の簡単な説明】
【図１】  本発明による電子回路を示すブロック図である。
【図２】  本発明による電子回路並びに方法において使用される命令ワードを好ましい構成を示す図である。
【図３】  本発明による電子回路の様々な部分での様々な動作の実行を図解するタイミングチャートである。
【符号の説明】
１    プロセッサ
２    コプロセッサ
３    命令メモリ
４、５    命令バス
６、12    命令レジスタ
７、13    命令デコーダ
８、14、15    データレジスタ
９、16    プログラマブル処理回路
10    シーケンサ
Ｘ、Ｙ    データメモリ
【図１】
0003710262.tif 000002
【図２】
0003710262.tif 000003
【図３】
0003710262.tif 000004