JP2006509288A - マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法 - Google Patents

マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法 Download PDF

Info

Publication number
JP2006509288A
JP2006509288A JP2004556646A JP2004556646A JP2006509288A JP 2006509288 A JP2006509288 A JP 2006509288A JP 2004556646 A JP2004556646 A JP 2004556646A JP 2004556646 A JP2004556646 A JP 2004556646A JP 2006509288 A JP2006509288 A JP 2006509288A
Authority
JP
Japan
Prior art keywords
register
registers
data processing
processing device
arithmetic unit
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.)
Pending
Application number
JP2004556646A
Other languages
English (en)
Inventor
トマス、ベーリング
ラルフ、マルツァーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2006509288A publication Critical patent/JP2006509288A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

少なくとも1つのマイクロプロセッサ(90)および少なくとも1つの補助演算ユニット(40)を有するデータ処理デバイス(100、100’)、およびデータ処理デバイス(100、100’)によって少なくとも1つの特定の計算を実行する方法を開発して、マイクロプロセッサ(90)による介入なしに複数の計算を順次に実行できるようにするため、少なくとも1つの周辺メモリ(10)、たとえば、少なくとも1つのRAM(ランダム・アクセス・メモリ)、少なくとも1つのROM(読み出し専用メモリ)、または少なくとも1つのEEPROM(電気的に消去可能およびプログラム可能な読み出し専用メモリ)からレジスタをロード可能にすることが提案される。

Description

本発明は、少なくとも1つのマイクロプロセッサおよび少なくとも1つの補助演算ユニットを有するデータ処理デバイス、およびこのようなタイプの少なくとも1つのデータ処理デバイスによって少なくとも1つの特定の計算を実行する方法に関する。
そのようなデータ処理デバイス、特に、単一の半導体チップに組み込まれたデータ処理デバイスは、たとえば、フィリップス社によって製造された集積回路P83C852のデータ・シートから知られている。
この集積回路は、特に、携帯カード形式のデータキャリア、たとえば、小切手カード形式のデータキャリアに埋め込まれ、たとえば、非対称暗号化方法を使用してデータを暗号化するか、そのようなデータを解読するように働く。そのような場合、特に、データ・ブロックは、或る定数を法とするキー・インデックスを使用して指数化される。前記定数は、最も安全な暗号化を達成できるように多数のディジットを有する。
それに必要な演算ステップは、原理的にマイクロプロセッサによって実行されてよい。しかし、これは非常に長い時間を必要とするので、マイクロプロセッサに加えて、暗号化に必要な演算ステップに対して最適に設計された特殊演算ユニットがチップの中へ集積される。マイクロプロセッサと補助演算ユニットとの間の接続は、この状況では、データ転送を制御する特殊レジスタおよび少なくとも1つのデータ記憶メディアを介して達成される。マイクロプロセッサおよび補助演算ユニットの双方は、これらにアクセスすることができる。
マイクロプロセッサおよび補助演算ユニットを有するこれらの既知の集積回路の欠点は、処理ステップまたは処理サイクルが補助演算ユニットによって実行された後、マイクロプロセッサは、少なくとも一部分が新しいオペランドのために新しい値をレジスタへ再ロードしなければならないことである。次の処理サイクルは、その新しいオペランドを使用して開始される。これは、かなりの時間損失を生じ、全体としてのデータ処理デバイスは、特に、長いキー・インデックスの場合、データの暗号化またはデータの解読に多くの時間を必要とする。
1つの処理サイクルが完了した直後に、できるだけ時間の損失を生じないで、演算ユニットが直ちに新しいデータについて次の処理サイクルを開始できるように、欧州特許第0822482A2号の開示によれば、データ転送を制御し、コマンドを伝送するため、少なくとも2セットのレジスタが設けられる。
この状況では、これらレジスタの出力は、更なるレジスタの内容によって切り替えられ、各々の場合に、1セットのレジスタのみがアクティブにされる。しかし、演算ユニットが処理サイクルを完了したとき、書き込まれたデータが利用可能であって、次の処理サイクルが即時に開始されるように、新しいデータがマイクロプロセッサによって非アクティブのレジスタへ任意の時点で書き込まれてもよい。このようにして、暗号化および解読プロセスは相当にスピードアップされる。
欧州特許第0822482A2号の開示によれば、演算ユニットCの初期化は、複数の並列レジスタ・セットR1、R2、R3、R4、R5、および選択回路Sによってスピードアップされる。この方法では、1つの計算の間に、次の計算のためにレジスタがロードされる(欧州特許第0822482A2号に従って構成されたデータ処理デバイスDのブロック図である図1を参照。デバイスDの中では、演算ユニットCはレジスタR1、R2、R3、R4、R5の3つのセットa、b、cによって制御される。参照符号Kは制御レジスタを示す)。
それぞれのアクティブ・レジスタは、演算ユニットに入力値を供給し、計算の間に変更されてはならない。したがって、このレジスタ・セットの変更は、他のレジスタを使用する次の計算の間、または2つの計算の間の時間でのみ可能である。
欧州特許第0822482A2号を実施するときの欠点は、各々の補助レジスタ・セットが、レジスタ・セットのサイズに従ったチップ表面積を必要とすることである。最新の暗号化アルゴリズムは、多くの場合、多数の小さな高速演算から構成され、高速計算を可能とするために多数のレジスタ・セットが必要である。
更に、従来技術によれば、マイクロプロセッサは、対応する制御ビットをアサートすることによって、個々の計算を開始する必要がある。これは更なる遅延を引き起こす。
前述した欠点および短所に基づき、また概説した従来技術を考慮して、本発明の目的は、前述したタイプ(従来技術の欧州特許第0822482A2号を参照)のデータ処理デバイス、およびマイクロプロセッサの介入なしに多数の計算を順次に実行する前述したタイプの方法を開発することである。
この目的は、請求項1で示された特徴を有するデータ処理デバイス、および請求項10で示された特徴を有する方法によって達成される。本発明の有利な実施形態および便宜的な更なる発展は、従属クレームで示される。
本発明の教示によれば、データ転送およびコマンド伝送を制御するレジスタが、少なくとも1つの周辺メモリ、たとえば、少なくとも1つのRAM(ランダム・アクセス・メモリ)、少なくとも1つのROM(読み出し専用メモリ)、または少なくとも1つのEEPROM(電気的に消去可能およびプログラム可能な読み出し専用メモリ)からロードされる。したがって、本発明は、補助演算ユニットを有するマイクロプロセッサのために、いわば入力データ・セットの自動ローディングを提案する。
特に発明的な更なる発展によれば、少なくとも1つの制御論理回路へ接続された少なくとも1つの補助アドレス・レジスタがメモリへ割り当てられる。このアドレス・レジスタは、レジスタのローディングに関して、ロードされるデータの開始アドレスのポインタとして働く。同じく制御論理回路へ接続された少なくとも1つのカウンティング・レジスタは、好ましくは、順次にロードされるレジスタ・セットを表示する。
特に周辺メモリからの再ローディングは、一般的に、マイクロプロセッサを介するレジスタのローディングよりも速いので、本発明によれば、計算の間に時間を損失することなく、多数の演算を順次に実行することができる。これは、本発明によれば、アドレッシングされたメモリからデータをフェッチまたはロードすることによって、計算の前および間に入力レジスタがロードされる事実に対応する。
全体の計算(x個の個々の計算)について、アドレス・レジスタおよびカウンティング・レジスタのみが初期化されるので、従来技術の複数のレジスタ・セットを使用する解決法と比較して、マイクロプロセッサのコード・サイズは非常に小さくなる。レジスタ・データは、たとえば、マイクロプロセッサのプログラム・コードの中に生のデータとして保存されてよい。
少なくとも1つのマイクロプロセッサおよび少なくとも1つの補助演算ユニットを有する上述のデータ処理デバイスは、特定の計算を実行するように使用される。この実行は、本発明に従った次の方法ステップで有効にされる。
先ず、2つの補助レジスタ、即ち、アドレス・レジスタおよびカウンティング・レジスタがマイクロプロセッサによって初期化され、制御ビットのアサーションによって計算が開始されてもよい。レジスタによって表示された開始アドレスからスタートして、データが周辺メモリからテンポラリレジスタ・セットの中へロードされる。メモリがアクセスされる度に、アドレス・レジスタが1だけ増分される。
もしテンポラリレジスタ・セットが満杯になれば(完了)、このテンポラリレジスタ・セットはメイン・レジスタ・セットの中へ転送され、カウンティング・レジスタが1だけ減らされ、補助演算ユニットが実際の計算を開始する。この計算の間に、メモリからテンポラリレジスタ・セットへ次のレジスタ・セットが保存される。
一度、現在の計算が終了すると、テンポラリレジスタ・セットがメイン・レジスタ・セットへ保存され、カウンティング・レジスタが1だけ減らされ、マイクロプロセッサは全く介入することなく次の計算が直ちに開始される。このプロセスは、カウンティング・レジスタが0へ減分されるまで反復される。
本発明の好ましい更なる発展によれば、テンポラリレジスタ・セットとメイン・レジスタ・セットとの間に少なくとも1つの選択回路が接続されてもよく、ここで説明される本発明が、マイクロプロセッサへ割り当てられたレジスタの複数のセットを含む発展と困難なしに組み合わせられてもよい。アクティブ計算のためにレジスタが記憶されるメイン・レジスタ・セットを使用することによって、アクティブ・レジスタ・セットは、後続の計算のために、計算が開始した後に変更されてよい。
各々のアドレス可能メモリは、ロードされるレジスタ・データの源として有利に使用されてよい(しかし、他の回路ブロック、たとえば、マイクロプロセッサによってメモリがアクセスされる場合の衝突に注意しなければならない)。少なくとも1つのMMS(メモリ管理システム)または少なくとも1つのMMU(メモリ管理ユニット)は、メモリへの並列アクセスを調整することができる。更に、それらとは無関係に、またはそれらと組み合わせて、本発明に重要なオプションが、汎用アドレス・ポインタから生じる。汎用アドレス・ポインタによって、複数のメモリ・ブロックへのアクセスが行われてよい。この補助特殊機能は、本発明に従った上述のアドレス・レジスタに特に適している。
本発明は、更に、上述のタイプの少なくとも1つのデータ処理デバイスを含む携帯データキャリアに関する。
本発明は、最後に、前述したタイプの少なくとも1つの集積データ処理デバイスを含む半導体チップに関する。
前述したように、本発明の教示を有利に具体化および発展させる様々な可能な方法が存在する。この点に関して、請求項1の従属クレームを参照されたい。本発明は、図面で示される実施形態の例を参照して説明される。しかし、本発明は図面に限定されるものではない。
図2〜図5において、同一または類似の実施形態、要素、または特徴は、同一の参照符号を付けられている。
図2は、特定の計算のためにマイクロプロセッサ90および補助特殊演算ユニット40を有するデータ処理デバイス100の実施形態の第1の例を示す。上記特定の計算は、もしマイクロプロセッサ90によって実行されるならば、非常に時間を消費するであろう。
演算ユニット40は、多数のレジスタを介してマイクロプロセッサ90と結合される。原理的に、第1のレジスタ群はデータ転送を制御するために設けられ、第2のレジスタ群はコマンドを伝送するために設けられる。更に、演算ユニット40は制御レジスタ50に関連づけられ、制御レジスタ50は制御論理回路60へ接続される。
実施形態の第1の例に従ったデータ処理デバイス100の特徴は、特に、レジスタがEEPROM(電気的に消去可能およびプログラム可能な読み出し専用メモリ)の形態をした周辺メモリ10からロードされてもよいことであり、それによって補助演算ユニット40を有するマイクロプロセッサ90に、入力データ・セットの自動ローディングを提供する。
図2から更に明らかなように、制御論理回路60へ接続された(670)補助アドレス・レジスタ70が周辺メモリ10へ割り当てられる。アドレス・レジスタ70は、レジスタのローディングに関して、ロードされるデータの開始アドレスへのポインタとして働き、メモリ10はアドレス・レジスタ70に従って動作する(参照符号170)。更に、制御論理回路60へ同じように接続された(672)カウンティング・レジスタ72は、順次にロードされるレジスタ・セットを表示し、計算の数を定義する。
レジスタをもっと正確に説明すると、5つのテンポラリレジスタ20、22、24、26、28のセットがメモリ10へ割り当てられる。これらのレジスタは、それぞれ5つのメイン・レジスタ30、32、34、36、38のセットへ接続される(230、232、234、236、238)。5つのメイン・レジスタのセットは、演算ユニット40へ割り当てられ、アクティブな計算のためにレジスタを記憶するように意図される。
メモリ10からの再ローディングは、一般的に、マイクロプロセッサ90を介するレジスタのローディングよりも速いから、データ処理デバイス100では、実施形態の第1の例に従って、計算の間に時間を損失することなく、多数の演算が順次に実行され得る。全体の計算(x個の個々の計算)について、アドレス・レジスタ70およびカウンティング・レジスタ72だけが初期化されるので、マイクロプロセッサ90のコード・サイズは相対的に小さい。レジスタ・データは、マイクロプロセッサ90のプログラム・コードの中で、たとえば生のデータとして保存されてよい。
詳細に説明すると、上述のデータ処理デバイス100は、特定の計算の実行中に、図3で示される次の方法ステップに従って動作する。
(i)最初に、2つの補助レジスタ、即ち、アドレス・レジスタ70およびカウンティング・レジスタ72がマイクロプロセッサ90によって初期化される。
(ii)次に、計算は制御ビットのアサーションによって開始される。
(iii)レジスタによって表示された開始アドレスから始まって、データは、周辺メモリ10から内部データ・バス120を介してテンポラリレジスタ20、22、24、26、28のセットへロードされる。
(iv)ここで、アドレス・レジスタ70は、メモリ10がアクセスされる度に1だけ増分される。
(v.a)もしテンポラリレジスタ20、22、24、26、28のセットが満杯になり(完了)、また
(vi.b)もし演算ユニット40が非アクティブであれば、
(vii)テンポラリレジスタ20、22、24、26、28のセットは、メイン・レジスタ30、32、34、36、38のセットへ転送されて、
(viii)次に、カウンティング・レジスタ72が1だけ減らされ、
(ix)補助演算ユニット40が実際の計算を開始する。この計算の間に、次のレジスタ・セットが、メモリ10からテンポラリレジスタ20、22、24、26、28のセットへ保存される。一度、現在の計算が終了すると、テンポラリレジスタ20、22、24、26、28のセットがメイン・レジスタ30、32、34、36、38のセットへ保存され、カウンティング・レジスタ72が1だけ減らされ、マイクロプロセッサ90は全く介入することなく、次の計算が直ちに始まる。
(x)このプロセスは、カウンティング・レジスタ72が0へ減分されるまで反復される。
(xi)次に、プロセスは終了する。
図4に従ったデータ処理デバイス100’の実施形態の第2の例は、選択回路74がテンポラリレジスタ20、22、24、26、28のセットとメイン・レジスタ30、32、34、36、38のセットとの間に接続される点で、図2に従ったデータ処理デバイス100の実施形態の第1の例とは実質的に異なる。選択回路74は、制御レジスタ50のビット位置51、52、53、54に従って動作する。
したがって、図2で示されたデータ処理デバイス100の実施形態の第1の例は、それぞれ5つのレジスタ80、82、84、86、88を含む3つのセットa、b、cを有する少なくとも1つの入力マルチプレクサで拡張されるか結合されてよい。ここで、これらのレジスタ・セット80a、80b、80c、82a、82b、82c、84a、84b、84c、86a、86b、86c、88a、88b、88cは、マイクロプロセッサ90からデータ・バス980を介してデータを引き出す。しかし、概略的に示されたレジスタによって演算ユニット40を制御するため、5つのテンポラリレジスタ20、22、24、26、28のセットは、メモリ10からデータ・バス120を介して特定のデータを引き出す。
全てのレジスタの出力は選択回路74へ導かれる。選択回路74は、レジスタのこれらのセットの1つの出力を選択し、5つのメイン・レジスタ30、32、34、36、38のセットを介して、それらの出力を演算ユニット40へ与える。ここで、選択は、内部データ・バス120を介してメモリ10からデータを供給されるテンポラリレジスタ・セット20、22、24、26、28へ適用されるビット位置51によって制御されるか、内部データ・バス980を介してマイクロプロセッサ90からデータを供給されるレジスタ・セット80a、80b、80c、82a、82b、82c、84a、84b、84c、86a、86b、86c、88a、88b、88cへ適用され、1つの場合だけに存在する制御レジスタ50の3つのビット位置52、53、54によって制御される。
全てのレジスタの入力は、実質的にデータ転送のみに意図される内部データ・バスへ接続され、書き込みのためマイクロプロセッサ90によって個別に選択されてもよい。ここで、図を明瞭にするため選択線は省略されている。
レジスタ80a、80b、80c、82a、82b、82c、84a、84b、84c、86a、86b、86c、88a、88b、88cの各々は、内部バスからのみデータの1バイトを受け取り、それを選択回路40へのみ出力する。制御レジスタ50はビットごとに読み書きされ得、ビット位置51、52、53、54、55は内部データ・バスからのみデータを受け入れ、出力を介して選択回路74(ビット位置51、52、53、54)および演算ユニット40(ビット位置55)を制御する。ビット位置56、57、58、59は、演算ユニット40とマイクロプロセッサ90との間の更なる通信のために設けられる。
最後に、図5は、実施形態の第1の例(図2に従ったデータ処理デバイス100)および実施形態の第2の例(図4に従ったデータ処理デバイス100’)の組み合わせ形態の本発明に従った全体データ処理デバイス100,100’の概略ブロック図である。
全体データ処理デバイス100,100’は、特に、特定の計算のためにマイクロプロセッサ90および補助特殊演算ユニット40を含む。上記特定の計算は、もしマイクロプロセッサ90によって実行されるならば、非常に時間を消費する。
更に、全体データ処理デバイス100,100’は、第1の書き込み/読み出しメモリ76および第2の書き込み/読み出しメモリ78と一緒に揮発性メモリ16を設けられる。マイクロプロセッサ90は、前述した内部バス980(図4を参照)を介して、実質的に直接2つの書き込み/読み出しメモリ76および78へ結合される。更に、
−マイクロプロセッサ90は、更なるアドレス・レジスタ14を介して揮発性メモリ16へ結合され、
−周辺メモリ10は、更なるレジスタ12を介して演算ユニット40へ結合される。
図5で概略的に示される更なるレジスタ12による補助演算ユニット40の制御は、図2、図3、および図4に関連した説明で、より明瞭かつ詳細に説明されるが、この時点では、補助演算ユニット40の機能および演算ユニット40のオペランドおよび演算ユニット40からの結果の伝送を制御する制御信号は、実質的に更なるレジスタ12を介して伝送されることを簡単に述べておく。
オペランド自身はオペランド・レジスタ42、44、46を介して演算ユニット40へ伝送され、演算ユニット40から来る結果は、結果レジスタ48を介して、特に更なる内部バス62を介して伝送される。オペランドを表すデータは、メモリ・レジスタ18を介して揮発性メモリ16から、および第2の書き込み/読み出しメモリ78から内部バス62へ供給される。
更に、演算ユニット40で実行された計算の結果は、バス62を介して第2の書き込み/読み出しメモリ78へ供給される。補助演算ユニット40およびマイクロプロセッサ90は、第2の書き込み/読み出しメモリ78へのアクセスを有するから(それぞれ、バス62およびデータ・バス980を介して)、この第2の書き込み/読み出しメモリ78を介して、演算ユニット40とマイクロプロセッサ90との間でデータが交換される。
内部バス62は、前述したように、実質的にデータの伝送だけに使用される。演算ユニット40は、更に、数バイトの長さを有するオペランドの演算を実行するように意図されているので、データ・バス62は、比較的大きなデータ幅、たとえば4バイトとして設計される。この状況において、第1の書き込み/読み出しメモリ76が適切な構成または内部直列/並列変換によって4バイトを並列に出力し、1バイト長の幾つかのワードが直列に受け取られて並列に出力されるものと仮定されてもよい。対応する配置は揮発性メモリ16の出力にあるメモリ・レジスタ18の形態で表示され、メモリ・レジスタ18は直列に供給された4バイトを並列にして、バス62を介して渡す。
3つのオペランド・レジスタ42、44、46の設計は、補助演算ユニット40が処理できるワード長に依存して、オペランド・レジスタ42、44、46が4バイトを並列に受け取り、それらバイトを並列に出力するか、任意的に4バイトよりも小さな部分で出力するようになっていてもよい。また、演算ユニット40の構造に依存して、演算結果の結果レジスタ48は直列または並列に数バイトを受け取って、各々の場合に、内部バス62を介して4バイトを並列に伝送してもよい。
メモリのアドレシングは当業者に周知であるから、揮発性メモリ16および第1の書き込み/読み出しメモリ76のために補助演算ユニット40からアドレスを伝送することは、図面を明瞭にするため図5では説明されない。
最後に、本発明に関して注意すべきは、レジスタの各々のセットに存在する5つのレジスタ(図2および図4を参照)は、たとえば、次の目的に使用されてよいことである。
−演算ユニット40を制御する演算コードを含むため、
−第1オペランドの開始アドレスを記述するため、
−第2オペランドの開始アドレスを含むため、
−更なるオペランドのアドレスを含むため。更なるオペランドは、演算ユニット40で実行される演算に応じて、演算ユニット40の中で、様々な様式で処理される。たとえば、このアドレスによって記述されるオペランドは、モジュロ演算のモジュラスを構成する。
−演算ユニット40の演算結果のアドレスを含むため、
−第1オペランドの長さを記述するため、および/または
−第2オペランドの長さを記述するため。
図2(実施形態の第1の例)、図4(実施形態の第2の例)、および図5(実施形態の第1の例および第2の例の単純な組み合わせ)に従って説明された配置は、演算ユニット40の計算パワーを最適に使用可能にさせる。なぜなら、レジスタの最初のセットを使用して計算を実行している間、マイクロプロセッサ90は更なるセットのレジスタに新しい値をロードしてもよく、演算ユニット40がオペランドのセットを完全に処理して結果を出力したとき、マイクロプロセッサ90は制御レジスタ50のビット位置51、52、53、54の内容を1ステップで変更してもよく、新しいオペランドのアドレスが即時に有効となってもよく、これらのオペランドを使用する計算は待ち時間を有して直ちに開始してもよいからである。開始アドレスおよびオペランド長によってオペランド・アドレスを記述することは、オペランドのアドレシングを非常に簡単かつ迅速にし、またレジスタを節約する。
演算ユニットがレジスタの3つのセットによって制御される従来技術に従ったデータ処理デバイスの概略ブロック図である。 本発明に従ったデータ処理デバイスの実施形態の第1の例の概略ブロック図である。 特定の計算を実行する図2のデータ処理デバイスに関連づけられた方法のフローチャートである。 演算ユニットがレジスタの3つのセットによって制御される本発明に従ったデータ処理デバイスの実施形態の第2の例の概略ブロック図である。 図2の実施形態の第1の例および図4の実施形態の第2の例を単純に組み合わせた形態の本発明に従った全体データ処理デバイスの概略ブロック図である。
符号の説明
100 データ処理デバイス(実施形態の第1の例、図2)
100’ データ処理デバイス(実施形態の第2の例、図4)
10 メモリ、具体的には、周辺メモリ
12 更なるレジスタ
14 更なるアドレス・レジスタ
16 揮発性メモリ
18 メモリ・レジスタ
20 第1のテンポラリレジスタ
22 第2のテンポラリレジスタ
24 第3のテンポラリレジスタ
26 第4のテンポラリレジスタ
28 第5のテンポラリレジスタ
30 第1のメイン・レジスタ
32 第2のメイン・レジスタ
34 第3のメイン・レジスタ
36 第4のメイン・レジスタ
38 第5のメイン・レジスタ
40 (補助)演算ユニット
42 第1のオペランド・レジスタ
44 第2のオペランド・レジスタ
46 第3のオペランド・レジスタ
48 結果レジスタ
50 制御レジスタ
51 制御レジスタ50の第1のビット位置
52 制御レジスタ50の第2のビット位置
53 制御レジスタ50の第3のビット位置
54 制御レジスタ50の第4のビット位置
55 制御レジスタ50の第5のビット位置
56 制御レジスタ50の第6のビット位置
57 制御レジスタ50の第7のビット位置
58 制御レジスタ50の第8のビット位置
59 制御レジスタ50の第9のビット位置
60 制御論理回路
62 内部(オペランド)バス
70 アドレス・レジスタ
72 カウンティング・レジスタ
74 選択回路
76 第1の書き込み/読み出しメモリ
78 第2の書き込み/読み出しメモリ
80 マイクロプロセッサ90へ割り当てられた第1のレジスタ
82 マイクロプロセッサ90へ割り当てられた第2のレジスタ
84 マイクロプロセッサ90へ割り当てられた第3のレジスタ
86 マイクロプロセッサ90へ割り当てられた第4のレジスタ
88 マイクロプロセッサ90へ割り当てられた第5のレジスタ
90 マイクロプロセッサ
120 メモリ10からテンポラリレジスタ20、22、24、26、28へのデータ・バス
170 メモリ10に対するアドレス・レジスタ70の作用
230 第1のテンポラリレジスタ20と第1のメイン・レジスタ30との間の接続 232 第2のテンポラリレジスタ22と第2のメイン・レジスタ32との間の接続
234 第3のテンポラリレジスタ24と第3のメイン・レジスタ34との間の接続
236 第4のテンポラリレジスタ26と第4のメイン・レジスタ36との間の接続
238 第5のテンポラリレジスタ28と第5のメイン・レジスタ38との間の接続
460 演算ユニット40と制御論理回路60との間の接続
560 制御レジスタ50と制御論理回路60との間の接続
670 制御論理回路60とアドレス・レジスタ70との間の接続
672 制御論理回路60とカウンティング・レジスタ72との間の接続
980 マイクロプロセッサ90からレジスタ80、82、84、86、88への内部データ・バス
C 従来技術に従った演算ユニット
D 従来技術に従ったデータ処理デバイス
K 従来技術に従った制御レジスタ
R1 従来技術に従った第1のレジスタ
R2 従来技術に従った第2のレジスタ
R3 従来技術に従った第3のレジスタ
R4 従来技術に従った第4のレジスタ
R5 従来技術に従った第5のレジスタ
S 従来技術に従った選択回路

Claims (10)

  1. 少なくとも1つの特定の計算を実行するため少なくとも1つのマイクロプロセッサおよび少なくとも1つの補助演算ユニットを有し、前記補助演算ユニットが多数のレジスタを介してマイクロプロセッサへ結合され、前記レジスタの中の第1のレジスタがデータ転送を制御するために設けられ、第2のレジスタがコマンドを伝送するために設けられるデータ処理デバイスであって、レジスタが、少なくとも1つの周辺メモリ、たとえば、
    −少なくとも1つのRAM(ランダム・アクセス・メモリ)、
    −少なくとも1つのROM(読み出し専用メモリ)、または
    −少なくとも1つのEEPROM(電気的に消去可能およびプログラム可能な読み出し専用メモリ)
    からロードされる、データ処理デバイス。
  2. テンポラリレジスタの少なくとも1つのセットがメモリへ割り当てられ、前記テンポラリレジスタのセットが、前記補助演算ユニットに割り当てられたメイン・レジスタの少なくとも1つのセットへ接続されかつアクティブ計算のためにレジスタを記憶する、請求項1に記載のデータ処理デバイス。
  3. メモリが、ロードされるデータの開始アドレスを指す少なくとも1つのアドレス・レジスタに従って動作し、アドレス・レジスタが少なくとも1つの制御論理回路へ接続される、請求項1または2に記載のデータ処理デバイス。
  4. 少なくとも1つの制御レジスタが演算ユニットへ割り当てられ、前記制御レジスタが制御論理回路へ接続される、請求項3に記載のデータ処理デバイス。
  5. 順次にロードされるレジスタ・セットを表示する少なくとも1つのカウンティング・レジスタが、制御論理回路へ割り当てられる、請求項3または4に記載のデータ処理デバイス。
  6. 少なくとも1つの選択回路が、前記マイクロプロセッサへ割り当てられたレジスタの少なくとも1つのセットと組み合わせて、前記テンポラリレジスタのセットと、前記メイン・レジスタのセットとの間に接続される、請求項1から5のいずれか一項に記載のデータ処理デバイス。
  7. 前記選択回路が、前記制御レジスタの少なくとも1つのビット位置に従って動作する、請求項6に記載のデータ処理デバイス。
  8. 請求項1から7のいずれか一項に記載のデータ処理デバイスの少なくとも1つを有する、携帯データキャリア。
  9. 請求項1から7のいずれか一項に記載の集積データ処理デバイスの少なくとも1つを含む、半導体チップ。
  10. 少なくとも1つのマイクロプロセッサおよび少なくとも1つの補助演算ユニットを有する少なくとも1つのデータ処理デバイスによって少なくとも1つの特定の計算を実行する方法であって、
    (i)前記マイクロプロセッサによって少なくとも1つのアドレス・レジスタおよび少なくとも1つのカウンティング・レジスタを初期化し、
    (ii)少なくとも1つの制御ビットのアサーションによって前記計算を開始し、
    (iii)少なくとも1つの周辺メモリからテンポラリレジスタの少なくとも1つのセットへ開始アドレスで始まるデータをコピーまたはロードし、
    (iv)前記メモリがアクセスされる度に、前記アドレス・レジスタを増分し、
    (v)前記テンポラリレジスタのセットが完了したかどうかをチェックし、
    (v.a)もし前記テンポラリレジスタのセットが完了していれば、ステップ(vi)へ進み、
    (v.b)もし前記テンポラリレジスタのセットが完了していなければ、ステップ(iii)へ進み、
    (vi)前記補助演算ユニットがアクティブであるかどうかをチェックし、
    (vi.a)もし前記補助演算ユニットがアクティブであれば、ステップ(vi)へ進み、
    (vi.b)もし前記補助演算ユニットがアクティブでなければ、ステップ(vii)へ進み、
    (vii)前記テンポラリレジスタのセットからメイン・レジスタの少なくとも1つのセットへデータをコピーまたは転送し、
    (viii)前記カウンティング・レジスタを減分し、
    (ix)前記補助演算ユニットにおいて計算を開始し、
    (x)前記カウンティング・レジスタが0へ減分されたかどうかをチェックし、
    (x.a)もし前記カウンティング・レジスタが0へ減分されていれば、ステップ(xi)へ進み、
    (x.b)もし前記カウンティング・レジスタが0へ減分されていなければ、ステップ(iii)へ進み、
    (xi)終了する、
    方法。
JP2004556646A 2002-12-04 2003-11-25 マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法 Pending JP2006509288A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10256586A DE10256586A1 (de) 2002-12-04 2002-12-04 Datenverarbeitungseinrichtung mit Mikroprozessor und mit zusätzlicher Recheneinheit sowie zugeordnetes Verfahren
PCT/IB2003/005436 WO2004051465A2 (en) 2002-12-04 2003-11-25 Data processing device with microprocessor and with additional arithmetic unit and associated method

Publications (1)

Publication Number Publication Date
JP2006509288A true JP2006509288A (ja) 2006-03-16

Family

ID=32318928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004556646A Pending JP2006509288A (ja) 2002-12-04 2003-11-25 マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法

Country Status (7)

Country Link
US (1) US20060136539A1 (ja)
EP (1) EP1573513A2 (ja)
JP (1) JP2006509288A (ja)
CN (1) CN100371887C (ja)
AU (1) AU2003280178A1 (ja)
DE (1) DE10256586A1 (ja)
WO (1) WO2004051465A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482903B (zh) * 2008-01-09 2010-09-29 联想(北京)有限公司 硬件安全单元
CN110245096B (zh) * 2019-06-24 2023-07-25 苏州暴雪电子科技有限公司 一种实现处理器直接连接扩展计算模块的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960209A (en) * 1996-03-11 1999-09-28 Mitel Corporation Scaleable digital signal processor with parallel architecture
DE19630861A1 (de) * 1996-07-31 1998-02-05 Philips Patentverwaltung Datenverarbeitungseinrichtung mit einem Mikroprozessor und einer zusätzlichen Recheneinheit
US5835788A (en) * 1996-09-18 1998-11-10 Electronics For Imaging System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory
US6292888B1 (en) * 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction

Also Published As

Publication number Publication date
WO2004051465A2 (en) 2004-06-17
WO2004051465A3 (en) 2005-04-07
CN100371887C (zh) 2008-02-27
AU2003280178A1 (en) 2004-06-23
EP1573513A2 (en) 2005-09-14
DE10256586A1 (de) 2004-06-17
CN1720502A (zh) 2006-01-11
US20060136539A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
KR100843280B1 (ko) 메모리 시스템 및 그것의 데이터 전송 방법
US7233541B2 (en) Storage device
US5163154A (en) Microcontroller for the rapid execution of a large number of operations which can be broken down into sequences of operations of the same kind
JPS6122828B2 (ja)
TWI461910B (zh) 用於依照組態資訊執行原子記憶體操作之記憶體及方法
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
EP2962187B1 (en) Vector register addressing and functions based on a scalar register data value
US9448926B2 (en) Bidirectional counter in a flash memory
WO2006130285A1 (en) Extracted-index addressing of byte-addressable memories
CN101501639A (zh) 快闪存储器存取电路
JP2008154432A (ja) インバータ装置のパラメータ転送システム,インバータ装置及びパラメータ転送装置
US6691179B2 (en) Direct memory access controller for converting a transfer mode flexibly in accordance with a data transfer counter value
US20060265571A1 (en) Processor with different types of control units for jointly used resources
GB2374704A (en) Serial data input to a non-volatile memory
US6578139B1 (en) Processor architecture scheme which uses virtual address registers to implement different addressing modes and method therefor
KR19990037572A (ko) 뱅크 어드레스 값을 공급하는 다중 소스를 구비하는 프로세서구조 설계 및 그 설계방법
EP0478149B1 (en) Workstation and method of configuring same
US5889622A (en) Data processing device including a microprocessor and an additional arithmetic unit
WO2012008068A1 (ja) マイクロコントローラ及びその制御方法
JP2006509288A (ja) マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法
KR20090120675A (ko) 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법
US6934819B2 (en) Method for memory addressing in micro controller and device using the same
JP2007141257A (ja) Icカードおよびリーダ・ライタ
US9892089B2 (en) Arithmetic logical unit array, microprocessor, and method for driving an arithmetic logical unit array
JP2000105758A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080618

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080801

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090313