(57)【要約】少なくとも１つのマイクロプロセッサ（９０）および少なくとも１つの補助演算ユニット（４０）を有するデータ処理デバイス（１００、１００’）、およびデータ処理デバイス（１００、１００’）によって少なくとも１つの特定の計算を実行する方法を開発して、マイクロプロセッサ（９０）による介入なしに複数の計算を順次に実行できるようにするため、少なくとも１つの周辺メモリ（１０）、たとえば、少なくとも１つのＲＡＭ（ランダム・アクセス・メモリ）、少なくとも１つのＲＯＭ（読み出し専用メモリ）、または少なくとも１つのＥＥＰＲＯＭ（電気的に消去可能およびプログラム可能な読み出し専用メモリ）からレジスタをロード可能にすることが提案される。
2006509288.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの特定の計算を実行するため少なくとも１つのマイクロプロセッサおよび少なくとも１つの補助演算ユニットを有し、前記補助演算ユニットが多数のレジスタを介してマイクロプロセッサへ結合され、前記レジスタの中の第１のレジスタがデータ転送を制御するために設けられ、第２のレジスタがコマンドを伝送するために設けられるデータ処理デバイスであって、レジスタが、少なくとも１つの周辺メモリ、たとえば、
−少なくとも１つのＲＡＭ（ランダム・アクセス・メモリ）、
−少なくとも１つのＲＯＭ（読み出し専用メモリ）、または
−少なくとも１つのＥＥＰＲＯＭ（電気的に消去可能およびプログラム可能な読み出し専用メモリ）
からロードされる、データ処理デバイス。
【請求項２】
テンポラリレジスタの少なくとも１つのセットがメモリへ割り当てられ、前記テンポラリレジスタのセットが、前記補助演算ユニットに割り当てられたメイン・レジスタの少なくとも１つのセットへ接続されかつアクティブ計算のためにレジスタを記憶する、請求項１に記載のデータ処理デバイス。
【請求項３】
メモリが、ロードされるデータの開始アドレスを指す少なくとも１つのアドレス・レジスタに従って動作し、アドレス・レジスタが少なくとも１つの制御論理回路へ接続される、請求項１または２に記載のデータ処理デバイス。
【請求項４】
少なくとも１つの制御レジスタが演算ユニットへ割り当てられ、前記制御レジスタが制御論理回路へ接続される、請求項３に記載のデータ処理デバイス。
【請求項５】
順次にロードされるレジスタ・セットを表示する少なくとも１つのカウンティング・レジスタが、制御論理回路へ割り当てられる、請求項３または４に記載のデータ処理デバイス。
【請求項６】
少なくとも１つの選択回路が、前記マイクロプロセッサへ割り当てられたレジスタの少なくとも１つのセットと組み合わせて、前記テンポラリレジスタのセットと、前記メイン・レジスタのセットとの間に接続される、請求項１から５のいずれか一項に記載のデータ処理デバイス。
【請求項７】
前記選択回路が、前記制御レジスタの少なくとも１つのビット位置に従って動作する、請求項６に記載のデータ処理デバイス。
【請求項８】
請求項１から７のいずれか一項に記載のデータ処理デバイスの少なくとも１つを有する、携帯データキャリア。
【請求項９】
請求項１から７のいずれか一項に記載の集積データ処理デバイスの少なくとも１つを含む、半導体チップ。
【請求項１０】
少なくとも１つのマイクロプロセッサおよび少なくとも１つの補助演算ユニットを有する少なくとも１つのデータ処理デバイスによって少なくとも１つの特定の計算を実行する方法であって、
（ｉ）前記マイクロプロセッサによって少なくとも１つのアドレス・レジスタおよび少なくとも１つのカウンティング・レジスタを初期化し、
（ｉｉ）少なくとも１つの制御ビットのアサーションによって前記計算を開始し、
（ｉｉｉ）少なくとも１つの周辺メモリからテンポラリレジスタの少なくとも１つのセットへ開始アドレスで始まるデータをコピーまたはロードし、
（ｉｖ）前記メモリがアクセスされる度に、前記アドレス・レジスタを増分し、
（ｖ）前記テンポラリレジスタのセットが完了したかどうかをチェックし、
（ｖ．ａ）もし前記テンポラリレジスタのセットが完了していれば、ステップ（ｖｉ）へ進み、
（ｖ．ｂ）もし前記テンポラリレジスタのセットが完了していなければ、ステップ（ｉｉｉ）へ進み、
（ｖｉ）前記補助演算ユニットがアクティブであるかどうかをチェックし、
（ｖｉ．ａ）もし前記補助演算ユニットがアクティブであれば、ステップ（ｖｉ）へ進み、
（ｖｉ．ｂ）もし前記補助演算ユニットがアクティブでなければ、ステップ（ｖｉｉ）へ進み、
（ｖｉｉ）前記テンポラリレジスタのセットからメイン・レジスタの少なくとも１つのセットへデータをコピーまたは転送し、
（ｖｉｉｉ）前記カウンティング・レジスタを減分し、
（ｉｘ）前記補助演算ユニットにおいて計算を開始し、
（ｘ）前記カウンティング・レジスタが０へ減分されたかどうかをチェックし、
（ｘ．ａ）もし前記カウンティング・レジスタが０へ減分されていれば、ステップ（ｘｉ）へ進み、
（ｘ．ｂ）もし前記カウンティング・レジスタが０へ減分されていなければ、ステップ（ｉｉｉ）へ進み、
（ｘｉ）終了する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのマイクロプロセッサおよび少なくとも１つの補助演算ユニットを有するデータ処理デバイス、およびこのようなタイプの少なくとも１つのデータ処理デバイスによって少なくとも１つの特定の計算を実行する方法に関する。
【背景技術】
【０００２】
そのようなデータ処理デバイス、特に、単一の半導体チップに組み込まれたデータ処理デバイスは、たとえば、フィリップス社によって製造された集積回路Ｐ８３Ｃ８５２のデータ・シートから知られている。
【０００３】
この集積回路は、特に、携帯カード形式のデータキャリア、たとえば、小切手カード形式のデータキャリアに埋め込まれ、たとえば、非対称暗号化方法を使用してデータを暗号化するか、そのようなデータを解読するように働く。そのような場合、特に、データ・ブロックは、或る定数を法とするキー・インデックスを使用して指数化される。前記定数は、最も安全な暗号化を達成できるように多数のディジットを有する。
【０００４】
それに必要な演算ステップは、原理的にマイクロプロセッサによって実行されてよい。しかし、これは非常に長い時間を必要とするので、マイクロプロセッサに加えて、暗号化に必要な演算ステップに対して最適に設計された特殊演算ユニットがチップの中へ集積される。マイクロプロセッサと補助演算ユニットとの間の接続は、この状況では、データ転送を制御する特殊レジスタおよび少なくとも１つのデータ記憶メディアを介して達成される。マイクロプロセッサおよび補助演算ユニットの双方は、これらにアクセスすることができる。
【０００５】
マイクロプロセッサおよび補助演算ユニットを有するこれらの既知の集積回路の欠点は、処理ステップまたは処理サイクルが補助演算ユニットによって実行された後、マイクロプロセッサは、少なくとも一部分が新しいオペランドのために新しい値をレジスタへ再ロードしなければならないことである。次の処理サイクルは、その新しいオペランドを使用して開始される。これは、かなりの時間損失を生じ、全体としてのデータ処理デバイスは、特に、長いキー・インデックスの場合、データの暗号化またはデータの解読に多くの時間を必要とする。
【０００６】
１つの処理サイクルが完了した直後に、できるだけ時間の損失を生じないで、演算ユニットが直ちに新しいデータについて次の処理サイクルを開始できるように、欧州特許第０８２２４８２Ａ２号の開示によれば、データ転送を制御し、コマンドを伝送するため、少なくとも２セットのレジスタが設けられる。
【０００７】
この状況では、これらレジスタの出力は、更なるレジスタの内容によって切り替えられ、各々の場合に、１セットのレジスタのみがアクティブにされる。しかし、演算ユニットが処理サイクルを完了したとき、書き込まれたデータが利用可能であって、次の処理サイクルが即時に開始されるように、新しいデータがマイクロプロセッサによって非アクティブのレジスタへ任意の時点で書き込まれてもよい。このようにして、暗号化および解読プロセスは相当にスピードアップされる。
【０００８】
欧州特許第０８２２４８２Ａ２号の開示によれば、演算ユニットＣの初期化は、複数の並列レジスタ・セットＲ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５、および選択回路Ｓによってスピードアップされる。この方法では、１つの計算の間に、次の計算のためにレジスタがロードされる（欧州特許第０８２２４８２Ａ２号に従って構成されたデータ処理デバイスＤのブロック図である図１を参照。デバイスＤの中では、演算ユニットＣはレジスタＲ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５の３つのセットａ、ｂ、ｃによって制御される。参照符号Ｋは制御レジスタを示す）。
【０００９】
それぞれのアクティブ・レジスタは、演算ユニットに入力値を供給し、計算の間に変更されてはならない。したがって、このレジスタ・セットの変更は、他のレジスタを使用する次の計算の間、または２つの計算の間の時間でのみ可能である。
【００１０】
欧州特許第０８２２４８２Ａ２号を実施するときの欠点は、各々の補助レジスタ・セットが、レジスタ・セットのサイズに従ったチップ表面積を必要とすることである。最新の暗号化アルゴリズムは、多くの場合、多数の小さな高速演算から構成され、高速計算を可能とするために多数のレジスタ・セットが必要である。
【００１１】
更に、従来技術によれば、マイクロプロセッサは、対応する制御ビットをアサートすることによって、個々の計算を開始する必要がある。これは更なる遅延を引き起こす。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
前述した欠点および短所に基づき、また概説した従来技術を考慮して、本発明の目的は、前述したタイプ（従来技術の欧州特許第０８２２４８２Ａ２号を参照）のデータ処理デバイス、およびマイクロプロセッサの介入なしに多数の計算を順次に実行する前述したタイプの方法を開発することである。
【課題を解決するための手段】
【００１３】
この目的は、請求項１で示された特徴を有するデータ処理デバイス、および請求項１０で示された特徴を有する方法によって達成される。本発明の有利な実施形態および便宜的な更なる発展は、従属クレームで示される。
【００１４】
本発明の教示によれば、データ転送およびコマンド伝送を制御するレジスタが、少なくとも１つの周辺メモリ、たとえば、少なくとも１つのＲＡＭ（ランダム・アクセス・メモリ）、少なくとも１つのＲＯＭ（読み出し専用メモリ）、または少なくとも１つのＥＥＰＲＯＭ（電気的に消去可能およびプログラム可能な読み出し専用メモリ）からロードされる。したがって、本発明は、補助演算ユニットを有するマイクロプロセッサのために、いわば入力データ・セットの自動ローディングを提案する。
【００１５】
特に発明的な更なる発展によれば、少なくとも１つの制御論理回路へ接続された少なくとも１つの補助アドレス・レジスタがメモリへ割り当てられる。このアドレス・レジスタは、レジスタのローディングに関して、ロードされるデータの開始アドレスのポインタとして働く。同じく制御論理回路へ接続された少なくとも１つのカウンティング・レジスタは、好ましくは、順次にロードされるレジスタ・セットを表示する。
【００１６】
特に周辺メモリからの再ローディングは、一般的に、マイクロプロセッサを介するレジスタのローディングよりも速いので、本発明によれば、計算の間に時間を損失することなく、多数の演算を順次に実行することができる。これは、本発明によれば、アドレッシングされたメモリからデータをフェッチまたはロードすることによって、計算の前および間に入力レジスタがロードされる事実に対応する。
【００１７】
全体の計算（ｘ個の個々の計算）について、アドレス・レジスタおよびカウンティング・レジスタのみが初期化されるので、従来技術の複数のレジスタ・セットを使用する解決法と比較して、マイクロプロセッサのコード・サイズは非常に小さくなる。レジスタ・データは、たとえば、マイクロプロセッサのプログラム・コードの中に生のデータとして保存されてよい。
【００１８】
少なくとも１つのマイクロプロセッサおよび少なくとも１つの補助演算ユニットを有する上述のデータ処理デバイスは、特定の計算を実行するように使用される。この実行は、本発明に従った次の方法ステップで有効にされる。
【００１９】
先ず、２つの補助レジスタ、即ち、アドレス・レジスタおよびカウンティング・レジスタがマイクロプロセッサによって初期化され、制御ビットのアサーションによって計算が開始されてもよい。レジスタによって表示された開始アドレスからスタートして、データが周辺メモリからテンポラリレジスタ・セットの中へロードされる。メモリがアクセスされる度に、アドレス・レジスタが１だけ増分される。
【００２０】
もしテンポラリレジスタ・セットが満杯になれば（完了）、このテンポラリレジスタ・セットはメイン・レジスタ・セットの中へ転送され、カウンティング・レジスタが１だけ減らされ、補助演算ユニットが実際の計算を開始する。この計算の間に、メモリからテンポラリレジスタ・セットへ次のレジスタ・セットが保存される。
【００２１】
一度、現在の計算が終了すると、テンポラリレジスタ・セットがメイン・レジスタ・セットへ保存され、カウンティング・レジスタが１だけ減らされ、マイクロプロセッサは全く介入することなく次の計算が直ちに開始される。このプロセスは、カウンティング・レジスタが０へ減分されるまで反復される。
【００２２】
本発明の好ましい更なる発展によれば、テンポラリレジスタ・セットとメイン・レジスタ・セットとの間に少なくとも１つの選択回路が接続されてもよく、ここで説明される本発明が、マイクロプロセッサへ割り当てられたレジスタの複数のセットを含む発展と困難なしに組み合わせられてもよい。アクティブ計算のためにレジスタが記憶されるメイン・レジスタ・セットを使用することによって、アクティブ・レジスタ・セットは、後続の計算のために、計算が開始した後に変更されてよい。
【００２３】
各々のアドレス可能メモリは、ロードされるレジスタ・データの源として有利に使用されてよい（しかし、他の回路ブロック、たとえば、マイクロプロセッサによってメモリがアクセスされる場合の衝突に注意しなければならない）。少なくとも１つのＭＭＳ（メモリ管理システム）または少なくとも１つのＭＭＵ（メモリ管理ユニット）は、メモリへの並列アクセスを調整することができる。更に、それらとは無関係に、またはそれらと組み合わせて、本発明に重要なオプションが、汎用アドレス・ポインタから生じる。汎用アドレス・ポインタによって、複数のメモリ・ブロックへのアクセスが行われてよい。この補助特殊機能は、本発明に従った上述のアドレス・レジスタに特に適している。
【００２４】
本発明は、更に、上述のタイプの少なくとも１つのデータ処理デバイスを含む携帯データキャリアに関する。
【００２５】
本発明は、最後に、前述したタイプの少なくとも１つの集積データ処理デバイスを含む半導体チップに関する。
【００２６】
前述したように、本発明の教示を有利に具体化および発展させる様々な可能な方法が存在する。この点に関して、請求項１の従属クレームを参照されたい。本発明は、図面で示される実施形態の例を参照して説明される。しかし、本発明は図面に限定されるものではない。
【発明を実施するための最良の形態】
【００２７】
図２〜図５において、同一または類似の実施形態、要素、または特徴は、同一の参照符号を付けられている。
【００２８】
図２は、特定の計算のためにマイクロプロセッサ９０および補助特殊演算ユニット４０を有するデータ処理デバイス１００の実施形態の第１の例を示す。上記特定の計算は、もしマイクロプロセッサ９０によって実行されるならば、非常に時間を消費するであろう。
【００２９】
演算ユニット４０は、多数のレジスタを介してマイクロプロセッサ９０と結合される。原理的に、第１のレジスタ群はデータ転送を制御するために設けられ、第２のレジスタ群はコマンドを伝送するために設けられる。更に、演算ユニット４０は制御レジスタ５０に関連づけられ、制御レジスタ５０は制御論理回路６０へ接続される。
【００３０】
実施形態の第１の例に従ったデータ処理デバイス１００の特徴は、特に、レジスタがＥＥＰＲＯＭ（電気的に消去可能およびプログラム可能な読み出し専用メモリ）の形態をした周辺メモリ１０からロードされてもよいことであり、それによって補助演算ユニット４０を有するマイクロプロセッサ９０に、入力データ・セットの自動ローディングを提供する。
【００３１】
図２から更に明らかなように、制御論理回路６０へ接続された（６７０）補助アドレス・レジスタ７０が周辺メモリ１０へ割り当てられる。アドレス・レジスタ７０は、レジスタのローディングに関して、ロードされるデータの開始アドレスへのポインタとして働き、メモリ１０はアドレス・レジスタ７０に従って動作する（参照符号１７０）。更に、制御論理回路６０へ同じように接続された（６７２）カウンティング・レジスタ７２は、順次にロードされるレジスタ・セットを表示し、計算の数を定義する。
【００３２】
レジスタをもっと正確に説明すると、５つのテンポラリレジスタ２０、２２、２４、２６、２８のセットがメモリ１０へ割り当てられる。これらのレジスタは、それぞれ５つのメイン・レジスタ３０、３２、３４、３６、３８のセットへ接続される（２３０、２３２、２３４、２３６、２３８）。５つのメイン・レジスタのセットは、演算ユニット４０へ割り当てられ、アクティブな計算のためにレジスタを記憶するように意図される。
【００３３】
メモリ１０からの再ローディングは、一般的に、マイクロプロセッサ９０を介するレジスタのローディングよりも速いから、データ処理デバイス１００では、実施形態の第１の例に従って、計算の間に時間を損失することなく、多数の演算が順次に実行され得る。全体の計算（ｘ個の個々の計算）について、アドレス・レジスタ７０およびカウンティング・レジスタ７２だけが初期化されるので、マイクロプロセッサ９０のコード・サイズは相対的に小さい。レジスタ・データは、マイクロプロセッサ９０のプログラム・コードの中で、たとえば生のデータとして保存されてよい。
【００３４】
詳細に説明すると、上述のデータ処理デバイス１００は、特定の計算の実行中に、図３で示される次の方法ステップに従って動作する。
（ｉ）最初に、２つの補助レジスタ、即ち、アドレス・レジスタ７０およびカウンティング・レジスタ７２がマイクロプロセッサ９０によって初期化される。
（ｉｉ）次に、計算は制御ビットのアサーションによって開始される。
（ｉｉｉ）レジスタによって表示された開始アドレスから始まって、データは、周辺メモリ１０から内部データ・バス１２０を介してテンポラリレジスタ２０、２２、２４、２６、２８のセットへロードされる。
（ｉｖ）ここで、アドレス・レジスタ７０は、メモリ１０がアクセスされる度に１だけ増分される。
（ｖ．ａ）もしテンポラリレジスタ２０、２２、２４、２６、２８のセットが満杯になり（完了）、また
（ｖｉ．ｂ）もし演算ユニット４０が非アクティブであれば、
（ｖｉｉ）テンポラリレジスタ２０、２２、２４、２６、２８のセットは、メイン・レジスタ３０、３２、３４、３６、３８のセットへ転送されて、
（ｖｉｉｉ）次に、カウンティング・レジスタ７２が１だけ減らされ、
（ｉｘ）補助演算ユニット４０が実際の計算を開始する。この計算の間に、次のレジスタ・セットが、メモリ１０からテンポラリレジスタ２０、２２、２４、２６、２８のセットへ保存される。一度、現在の計算が終了すると、テンポラリレジスタ２０、２２、２４、２６、２８のセットがメイン・レジスタ３０、３２、３４、３６、３８のセットへ保存され、カウンティング・レジスタ７２が１だけ減らされ、マイクロプロセッサ９０は全く介入することなく、次の計算が直ちに始まる。
（ｘ）このプロセスは、カウンティング・レジスタ７２が０へ減分されるまで反復される。
（ｘｉ）次に、プロセスは終了する。
【００３５】
図４に従ったデータ処理デバイス１００’の実施形態の第２の例は、選択回路７４がテンポラリレジスタ２０、２２、２４、２６、２８のセットとメイン・レジスタ３０、３２、３４、３６、３８のセットとの間に接続される点で、図２に従ったデータ処理デバイス１００の実施形態の第１の例とは実質的に異なる。選択回路７４は、制御レジスタ５０のビット位置５１、５２、５３、５４に従って動作する。
【００３６】
したがって、図２で示されたデータ処理デバイス１００の実施形態の第１の例は、それぞれ５つのレジスタ８０、８２、８４、８６、８８を含む３つのセットａ、ｂ、ｃを有する少なくとも１つの入力マルチプレクサで拡張されるか結合されてよい。ここで、これらのレジスタ・セット８０ａ、８０ｂ、８０ｃ、８２ａ、８２ｂ、８２ｃ、８４ａ、８４ｂ、８４ｃ、８６ａ、８６ｂ、８６ｃ、８８ａ、８８ｂ、８８ｃは、マイクロプロセッサ９０からデータ・バス９８０を介してデータを引き出す。しかし、概略的に示されたレジスタによって演算ユニット４０を制御するため、５つのテンポラリレジスタ２０、２２、２４、２６、２８のセットは、メモリ１０からデータ・バス１２０を介して特定のデータを引き出す。
【００３７】
全てのレジスタの出力は選択回路７４へ導かれる。選択回路７４は、レジスタのこれらのセットの１つの出力を選択し、５つのメイン・レジスタ３０、３２、３４、３６、３８のセットを介して、それらの出力を演算ユニット４０へ与える。ここで、選択は、内部データ・バス１２０を介してメモリ１０からデータを供給されるテンポラリレジスタ・セット２０、２２、２４、２６、２８へ適用されるビット位置５１によって制御されるか、内部データ・バス９８０を介してマイクロプロセッサ９０からデータを供給されるレジスタ・セット８０ａ、８０ｂ、８０ｃ、８２ａ、８２ｂ、８２ｃ、８４ａ、８４ｂ、８４ｃ、８６ａ、８６ｂ、８６ｃ、８８ａ、８８ｂ、８８ｃへ適用され、１つの場合だけに存在する制御レジスタ５０の３つのビット位置５２、５３、５４によって制御される。
【００３８】
全てのレジスタの入力は、実質的にデータ転送のみに意図される内部データ・バスへ接続され、書き込みのためマイクロプロセッサ９０によって個別に選択されてもよい。ここで、図を明瞭にするため選択線は省略されている。
【００３９】
レジスタ８０ａ、８０ｂ、８０ｃ、８２ａ、８２ｂ、８２ｃ、８４ａ、８４ｂ、８４ｃ、８６ａ、８６ｂ、８６ｃ、８８ａ、８８ｂ、８８ｃの各々は、内部バスからのみデータの１バイトを受け取り、それを選択回路４０へのみ出力する。制御レジスタ５０はビットごとに読み書きされ得、ビット位置５１、５２、５３、５４、５５は内部データ・バスからのみデータを受け入れ、出力を介して選択回路７４（ビット位置５１、５２、５３、５４）および演算ユニット４０（ビット位置５５）を制御する。ビット位置５６、５７、５８、５９は、演算ユニット４０とマイクロプロセッサ９０との間の更なる通信のために設けられる。
【００４０】
最後に、図５は、実施形態の第１の例（図２に従ったデータ処理デバイス１００）および実施形態の第２の例（図４に従ったデータ処理デバイス１００’）の組み合わせ形態の本発明に従った全体データ処理デバイス１００，１００’の概略ブロック図である。
【００４１】
全体データ処理デバイス１００，１００’は、特に、特定の計算のためにマイクロプロセッサ９０および補助特殊演算ユニット４０を含む。上記特定の計算は、もしマイクロプロセッサ９０によって実行されるならば、非常に時間を消費する。
【００４２】
更に、全体データ処理デバイス１００，１００’は、第１の書き込み／読み出しメモリ７６および第２の書き込み／読み出しメモリ７８と一緒に揮発性メモリ１６を設けられる。マイクロプロセッサ９０は、前述した内部バス９８０（図４を参照）を介して、実質的に直接２つの書き込み／読み出しメモリ７６および７８へ結合される。更に、
−マイクロプロセッサ９０は、更なるアドレス・レジスタ１４を介して揮発性メモリ１６へ結合され、
−周辺メモリ１０は、更なるレジスタ１２を介して演算ユニット４０へ結合される。
【００４３】
図５で概略的に示される更なるレジスタ１２による補助演算ユニット４０の制御は、図２、図３、および図４に関連した説明で、より明瞭かつ詳細に説明されるが、この時点では、補助演算ユニット４０の機能および演算ユニット４０のオペランドおよび演算ユニット４０からの結果の伝送を制御する制御信号は、実質的に更なるレジスタ１２を介して伝送されることを簡単に述べておく。
【００４４】
オペランド自身はオペランド・レジスタ４２、４４、４６を介して演算ユニット４０へ伝送され、演算ユニット４０から来る結果は、結果レジスタ４８を介して、特に更なる内部バス６２を介して伝送される。オペランドを表すデータは、メモリ・レジスタ１８を介して揮発性メモリ１６から、および第２の書き込み／読み出しメモリ７８から内部バス６２へ供給される。
【００４５】
更に、演算ユニット４０で実行された計算の結果は、バス６２を介して第２の書き込み／読み出しメモリ７８へ供給される。補助演算ユニット４０およびマイクロプロセッサ９０は、第２の書き込み／読み出しメモリ７８へのアクセスを有するから（それぞれ、バス６２およびデータ・バス９８０を介して）、この第２の書き込み／読み出しメモリ７８を介して、演算ユニット４０とマイクロプロセッサ９０との間でデータが交換される。
【００４６】
内部バス６２は、前述したように、実質的にデータの伝送だけに使用される。演算ユニット４０は、更に、数バイトの長さを有するオペランドの演算を実行するように意図されているので、データ・バス６２は、比較的大きなデータ幅、たとえば４バイトとして設計される。この状況において、第１の書き込み／読み出しメモリ７６が適切な構成または内部直列／並列変換によって４バイトを並列に出力し、１バイト長の幾つかのワードが直列に受け取られて並列に出力されるものと仮定されてもよい。対応する配置は揮発性メモリ１６の出力にあるメモリ・レジスタ１８の形態で表示され、メモリ・レジスタ１８は直列に供給された４バイトを並列にして、バス６２を介して渡す。
【００４７】
３つのオペランド・レジスタ４２、４４、４６の設計は、補助演算ユニット４０が処理できるワード長に依存して、オペランド・レジスタ４２、４４、４６が４バイトを並列に受け取り、それらバイトを並列に出力するか、任意的に４バイトよりも小さな部分で出力するようになっていてもよい。また、演算ユニット４０の構造に依存して、演算結果の結果レジスタ４８は直列または並列に数バイトを受け取って、各々の場合に、内部バス６２を介して４バイトを並列に伝送してもよい。
【００４８】
メモリのアドレシングは当業者に周知であるから、揮発性メモリ１６および第１の書き込み／読み出しメモリ７６のために補助演算ユニット４０からアドレスを伝送することは、図面を明瞭にするため図５では説明されない。
【００４９】
最後に、本発明に関して注意すべきは、レジスタの各々のセットに存在する５つのレジスタ（図２および図４を参照）は、たとえば、次の目的に使用されてよいことである。
−演算ユニット４０を制御する演算コードを含むため、
−第１オペランドの開始アドレスを記述するため、
−第２オペランドの開始アドレスを含むため、
−更なるオペランドのアドレスを含むため。更なるオペランドは、演算ユニット４０で実行される演算に応じて、演算ユニット４０の中で、様々な様式で処理される。たとえば、このアドレスによって記述されるオペランドは、モジュロ演算のモジュラスを構成する。
−演算ユニット４０の演算結果のアドレスを含むため、
−第１オペランドの長さを記述するため、および／または
−第２オペランドの長さを記述するため。
【００５０】
図２（実施形態の第１の例）、図４（実施形態の第２の例）、および図５（実施形態の第１の例および第２の例の単純な組み合わせ）に従って説明された配置は、演算ユニット４０の計算パワーを最適に使用可能にさせる。なぜなら、レジスタの最初のセットを使用して計算を実行している間、マイクロプロセッサ９０は更なるセットのレジスタに新しい値をロードしてもよく、演算ユニット４０がオペランドのセットを完全に処理して結果を出力したとき、マイクロプロセッサ９０は制御レジスタ５０のビット位置５１、５２、５３、５４の内容を１ステップで変更してもよく、新しいオペランドのアドレスが即時に有効となってもよく、これらのオペランドを使用する計算は待ち時間を有して直ちに開始してもよいからである。開始アドレスおよびオペランド長によってオペランド・アドレスを記述することは、オペランドのアドレシングを非常に簡単かつ迅速にし、またレジスタを節約する。
【図面の簡単な説明】
【００５１】
【図１】演算ユニットがレジスタの３つのセットによって制御される従来技術に従ったデータ処理デバイスの概略ブロック図である。
【図２】本発明に従ったデータ処理デバイスの実施形態の第１の例の概略ブロック図である。
【図３】特定の計算を実行する図２のデータ処理デバイスに関連づけられた方法のフローチャートである。
【図４】演算ユニットがレジスタの３つのセットによって制御される本発明に従ったデータ処理デバイスの実施形態の第２の例の概略ブロック図である。
【図５】図２の実施形態の第１の例および図４の実施形態の第２の例を単純に組み合わせた形態の本発明に従った全体データ処理デバイスの概略ブロック図である。
【符号の説明】
【００５２】
１００  データ処理デバイス（実施形態の第１の例、図２）
１００’  データ処理デバイス（実施形態の第２の例、図４）
１０  メモリ、具体的には、周辺メモリ
１２  更なるレジスタ
１４  更なるアドレス・レジスタ
１６  揮発性メモリ
１８  メモリ・レジスタ
２０  第１のテンポラリレジスタ
２２  第２のテンポラリレジスタ
２４  第３のテンポラリレジスタ
２６  第４のテンポラリレジスタ
２８  第５のテンポラリレジスタ
３０  第１のメイン・レジスタ
３２  第２のメイン・レジスタ
３４  第３のメイン・レジスタ
３６  第４のメイン・レジスタ
３８  第５のメイン・レジスタ
４０  （補助）演算ユニット
４２  第１のオペランド・レジスタ
４４  第２のオペランド・レジスタ
４６  第３のオペランド・レジスタ
４８  結果レジスタ
５０  制御レジスタ
５１  制御レジスタ５０の第１のビット位置
５２  制御レジスタ５０の第２のビット位置
５３  制御レジスタ５０の第３のビット位置
５４  制御レジスタ５０の第４のビット位置
５５  制御レジスタ５０の第５のビット位置
５６  制御レジスタ５０の第６のビット位置
５７  制御レジスタ５０の第７のビット位置
５８  制御レジスタ５０の第８のビット位置
５９  制御レジスタ５０の第９のビット位置
６０  制御論理回路
６２  内部（オペランド）バス
７０  アドレス・レジスタ
７２  カウンティング・レジスタ
７４  選択回路
７６  第１の書き込み／読み出しメモリ
７８  第２の書き込み／読み出しメモリ
８０  マイクロプロセッサ９０へ割り当てられた第１のレジスタ
８２  マイクロプロセッサ９０へ割り当てられた第２のレジスタ
８４  マイクロプロセッサ９０へ割り当てられた第３のレジスタ
８６  マイクロプロセッサ９０へ割り当てられた第４のレジスタ
８８  マイクロプロセッサ９０へ割り当てられた第５のレジスタ
９０  マイクロプロセッサ
１２０  メモリ１０からテンポラリレジスタ２０、２２、２４、２６、２８へのデータ・バス
１７０  メモリ１０に対するアドレス・レジスタ７０の作用
２３０  第１のテンポラリレジスタ２０と第１のメイン・レジスタ３０との間の接続      ２３２  第２のテンポラリレジスタ２２と第２のメイン・レジスタ３２との間の接続
２３４  第３のテンポラリレジスタ２４と第３のメイン・レジスタ３４との間の接続
２３６  第４のテンポラリレジスタ２６と第４のメイン・レジスタ３６との間の接続
２３８  第５のテンポラリレジスタ２８と第５のメイン・レジスタ３８との間の接続
４６０  演算ユニット４０と制御論理回路６０との間の接続
５６０  制御レジスタ５０と制御論理回路６０との間の接続
６７０  制御論理回路６０とアドレス・レジスタ７０との間の接続
６７２  制御論理回路６０とカウンティング・レジスタ７２との間の接続
９８０  マイクロプロセッサ９０からレジスタ８０、８２、８４、８６、８８への内部データ・バス
Ｃ  従来技術に従った演算ユニット
Ｄ  従来技術に従ったデータ処理デバイス
Ｋ  従来技術に従った制御レジスタ
Ｒ１  従来技術に従った第１のレジスタ
Ｒ２  従来技術に従った第２のレジスタ
Ｒ３  従来技術に従った第３のレジスタ
Ｒ４  従来技術に従った第４のレジスタ
Ｒ５  従来技術に従った第５のレジスタ
Ｓ  従来技術に従った選択回路
【図１】
2006509288.tif 000003
【図２】
2006509288.tif 000004
【図３】
2006509288.tif 000005
【図４】
2006509288.tif 000006
【図５】
2006509288.tif 000007
【国際調査報告】
2006509288.tif 000008
2006509288.tif 000009
2006509288.tif 000010
2006509288.tif 000011