JP3771904B2 - 補助レジスタバンクを有するマイクロプロセッサ回路 - Google Patents

補助レジスタバンクを有するマイクロプロセッサ回路 Download PDF

Info

Publication number
JP3771904B2
JP3771904B2 JP2002558124A JP2002558124A JP3771904B2 JP 3771904 B2 JP3771904 B2 JP 3771904B2 JP 2002558124 A JP2002558124 A JP 2002558124A JP 2002558124 A JP2002558124 A JP 2002558124A JP 3771904 B2 JP3771904 B2 JP 3771904B2
Authority
JP
Japan
Prior art keywords
register
auxiliary
bank
data
registers
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.)
Expired - Fee Related
Application number
JP2002558124A
Other languages
English (en)
Other versions
JP2004523827A (ja
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2004523827A publication Critical patent/JP2004523827A/ja
Application granted granted Critical
Publication of JP3771904B2 publication Critical patent/JP3771904B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30105Register structure
    • 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
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • 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
    • G06F9/30134Register stacks; shift registers

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)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、請求項1の前提部によるポータブルデータキャリアのマイクロプロセッサ回路に関する。
上述のタイプのマイクロプロセッサ回路は、好適には、集積回路が備えられた、いわゆるスマートカード、すなわち身分証明書、クレジットカード、チャージカード等において用いられる。しかしながら、マイクロプロセッサ回路は、さらに、対応するインターフェースを介して上述のカードと通信する、いわゆる支払いトランザクションモジュールにおいて用いられ得る。
このようなカードの重要な利点の1つは、カード所有者に多様な用途が可能になることである。集積回路に含まれるマイクロプロセッサ、および関連する格納手段は、カードそれ自体における幅広いデータ処理を可能にする。これに対して、磁気ストリップが提供されたカードは、例えば、データ処理のオペレーション全体が外部で実行されることを必要とする。
カードの製造業者は、マイクロプロセッサに、例えば、外部で入力されたコードと格納されたコードとを比較するための手順等の基本的機能を実行する常駐オペレーティングシステムを備え得る。マイクロプロセッサと関連するメモリは、オペレーティングシステムを格納するためだけでなく、複数の機能、および例えば、セキュリティの点検のために必要であり、かついずれにしても秘匿されなければならないパラメータからなる特定のアプリケーションを格納するためにも利用される。
カードの多様な用途は、関連するプログラムを有するオペレーティングシステムを出発点とした場合に、特定のインターフェースが規定され、メモリまたはメモリ領域が外部プログラムのために確保された場合に達成される。カード製造業者は、その後、ユーザ、すなわち、カードを発行する組織に、外部プログラムをプログラムするためのメモリまたはメモリ領域を提供する。この外部プログラムにおいて、この組織は、次に、オペレーティングシステムに依存せず、特定の組織のみに関する特定のオペレーションを規定し得る。
上述のタイプのマイクロプロセッサ回路には、現在実行されている機能、いわゆるコンテキストに利用可能である少なくとも1つのレジスタバンクが提供される。第1の機能からの第2の機能の機能を呼出す場合、第1の機能のデータによって占有されるレジスタは、バッファ記憶装置、スタックに格納されなければならない。呼出された第2の機能において、これらのレジスタは、その後、書き込むための第2の機能に利用可能である。第2の機能から第1の機能に戻ると、スタックにバッファされたデータが再びレジスタに書き込まれなければならない。
個々のレジスタについて、対応する書き込み/読み出しオペレーションにより、レジスタをスタック上に格納するか、またはスタックからレジスタを読み出すことは、比較的多数のインストラクションを必要とし、これは、プログラムコードの著しい拡大に至る。さらに、機能を変更するか、または機能を呼出す場合、レジスタ内の第1の機能と関連するデータが第2の機能によって依然として読み出され得るという問題がある。これは、例えば、クレジットカードにおいてセキュリティの問題であり得る。これによって、例えば、第2の機能が、すなわち、場合によっては、第1の機能にのみ知られるべきレジスタ内のなお機密のデータが読み出され得るからである。
従来技術から、スタックに格納されるべき、レジスタバンクの個々のレジスタを選択し得るために用いられるインストラクションが公知である。インストラクション「ST REGMASK[bit mask][SP]」は、内容を有するレジスタバンクのレジスタのみを選択し、かつこれらのレジスタをスタックに格納するためにビットマスクを用いることができる。さらに、このインストラクションは、スタックの次の空いたアドレスを示す「スタックポインタ SP」を含む。データによって占有されるのはどのレジスタかという情報は、コンパイラ、すなわち、CPUによって規定される。ビットマスクは、これらの情報アイテムから生成される。データがスタックから読み出されてレジスタに戻される場合、コンパイラは、本来占有されていたのはどのレジスタかを確認することができる。データは、ビットマスクのこの情報により、正しいレジスタに戻されて格納される。
書き込まれたレジスタをスタックに格納するために単一のインストラクションが用いられ得る。インストラクションST REGMASK[bit mask」[SP]が呼出されると、レジスタは、スタックに直接書き込まれる。しかしながら、インストラクション全体を実行するためには、複数のクロックサイクルが必要とされる。その後にのみ、第2の機能が呼出され得、これにレジスタバンクのレジスタが利用可能になる。さらに、スタックが、プログラマにアクセス可能であり、従って、他のすべてのプログラムまたは機能にもアクセス可能であるメモリの部分領域をなすことは不利である。従って、このデータを密かに探り出すことが可能である。
また、いわゆる「レジスタウィンドウ」の使用が公知である。ここで、1つの機能に1つのレジスタウィンドウが利用可能である。第2の機能が呼出された場合、「レジスタポインタ」の変更によりさらなるレジスタウィンドウが選択される。従って、このさらなるレジスタウィンドウは、書き込むための第2の機能に利用可能である。レジスタバンクは、複数のレジスタウィンドウを有し得る。書き込まれていない最後のレジスタウィンドウが機能によって呼出され、かつ書き込まれるとすぐに、1つ以上のレジスタウィンドウのレジスタがスタックに同時にバッファ格納され得る。従って、現在アクティブな機能のレジスタが同時に書き込まれること、および前にアクティブだった機能のレジスタ内容を格納することが可能である。従って、特に時間節約的な変形である。しかしながら、レジスタがデータを有するか否かにかかわらず、レジスタウィンドウのすべてのレジスタがスタックに書き込まれることが不利なことである。
従って、本発明は、簡単な措置を用いて、1つの機能のレジスタコンテンツが別の機能にアクセスされないことを可能にする回路および方法を規定するという目的に基づく。
本目的は、請求項1および8に規定される特徴に従う本発明によりそれぞれ達成される。
本発明によると、マイクロプロセッサ回路は、多数のビットを格納する補助レジスタを有する。ビットの各々は、レジスタバンクのレジスタの1つに割り当てられ、レジスタバンクのそれぞれのレジスタが情報アイテムを含むか否かを示す。
レジスタバンクのレジスタへのそれぞれのビットに割り当ては、書き込まれたレジスタと書き込まれないレジスタとを簡単な態様で区別することを可能にする。結果として、レジスタ内容がスタックに格納される場合、実際にデータを有するレジスタのみを格納することが可能である。
データを有するレジスタがコンパイラによって検出される必要がないことにより、レジスタは、迅速、エネルギー効率的、かつわずかなプログラムコードで、すなわち単一のインストラクションで格納され得る。
第1の実施形態において、補助レジスタは、レジスタバンクのレジスタの数に対応する、複数のさらなるレジスタを有する。これらのレジスタの各々は、1つのビットを格納するために提供される。従って、補助レジスタは、同様に、レジスタバンクをなす。
第2の実施形態によると、補助レジスタは、正確に1つのさらなるレジスタを有する。このさらなるレジスタは、レジスタバンクのレジスタの数に対応するビット列を格納するために提供される。補助レジスタは、好適には、レジスタバンクのレジスタである。従って、この第2の実施形態において、それ自体公知のマイクロプロセッサ回路を改変することは必要とされない。なぜなら、補助レジスタは、レジスタバンクのレジスタ内に格納されるからである。最下位または最上位のレジスタは、好適には、このために用いられる。
マイクロプロセッサ回路の好適な改良点において、プログラマによって管理され得ないさらなるスタックが、レジスタバンクに含まれるデータを格納するために提供される。このさらなるスタックは、いわゆる「コンテキスト安全領域」として公知である。この領域は、メモリの部分であり得るハードウェア内部スタックである。このさらなるスタックに格納されるデータは、メモリに格納されるソフトウェアにより問い合わせられるか、または書き込まれ得ない。このさらなるスタックの管理は、オペレーティングシステムにのみ依存する。従って、これらのデータの操作は、不可能である。
レジスタバンクは、好適には、第1のレジスタを有する第1の領域および第2のレジスタを有する第2の領域であり、少なくとも第1のレジスタには、補助レジスタ内のビットが割り当てられる。レジスタバンクの第1の領域(上部コンテクスト)および第2の領域(下部コンテクスト)への分割は、機能が呼出された場合に、第1の機能のパラメータが、多くの場合、第2の機能に転送されるという事実による。これらのパラメータは、第2の領域のレジスタに格納される(下部コンテキスト)。この第2の領域から、第2の呼出された機能は、その後、さらなる処理のためのパラメータをフェッチする。対照的に、レジスタバンクの第1の領域(上部コンテクスト)が、第2の呼出された機能によってのみ用いられ、かつ書き込まれる。第3の機能が第2の機能によって呼出された場合、レジスタバンクの第1の領域のレジスタのみをスタックに格納するだけで十分である。対照的に、第2の領域のレジスタにおける転送パラメータは、上書きされ、場合によっては、第3の機能によって読み出しさえされ得る。
当然、第2の領域のレジスタが補助レジスタに割り当てられ、従って、機能の呼出しおよび機能の変更の際に、レジスタバンクのすべてのレジスタ、すなわち、第1の領域のレジスタおよび第2の領域のレジスタのレジスタがスタックに格納されることもまた考えられ得る。
本発明をさらに改良すると、レジスタバンクの第1の領域は、機能の1つとしてそれぞれ利用可能である複数の部分領域に分割され得る。複数の部分領域への分割は、導入部で述べられたレジスタウィンドウに対応する。レジスタバンクの最初の領域が十分に多い数のレジスタを有する場合、この変形は、極めてエネルギー効率的、かつ迅速な手順を可能にする。これは、特に、ポータブルデータキャリア内のマイクロプロセッサ回路の場合、非常に有利である。
上述のマイクロプロセッサ回路を動作するための本発明による方法の場合、マイクロプロセッサ回路は、マイクロプロセッサ回路を初期設定する際に、補助レジスタのすべてのビットが第1の値に設定される。データがレジスタバンクのレジスタに書き込まれる場合、補助レジスタに割り当てられたビットが第2の値にセットされる。マイクロプロセッサ回路の初期設定は、活性化されると生じ、従って、補助レジスタのすべてのレジスタおよびすべてのビットが規定された公知の状態にあることが保証される。データが書き込まれた場合、それぞれのビットは、自動的に第2の値にセットされて、これにより、そのレジスタが値を有することが表示される。補助レジスタのビットの第1の値は、例えば、0であり、他方、補助レジスタのビットの第2の値は1であり得る。当然、逆に割り当ても可能である。
本発明による方法のさらなる実施形態において、レジスタバンクのレジスタの1つからのデータの読み出しは、補助レジスタに割り当てられたビットが第2の値を有する場合にのみ可能である。これは、レジスタに割り当てられたビットが第2の値、例えば1を有する場合にのみ、実際にレジスタに格納されたデータが読み出されることを意味する。対照的に、補助レジスタに割り当てられたビットが第1の値を有する場合、場合によってはレジスタに位置するデータは、マイクロプロセッサに戻されないが、その代わりに規定された値、例えば、0である。
これにより、レジスタを消去するために、レジスタ自身が消去される必要がなく、補助レジスタにおいて割り当てられたビットを第1の値にセットするだけで十分であることが明らかになる。これは、補助レジスタにおける実際のデータがもはや読み出され得ないことを十分に確実にする。従って、複数のレジスタは、簡単、迅速かつ電力節約的に消去され得る。
本発明による方法のさらなる発展において、第1の機能から第2の機能に変更される場合、レジスタバンクのレジスタにおける第1の機能に関連するデータおよび補助レジスタのビット列は、スタックまたはさらなるスタックに連続的に格納される。換言すると、これは、レジスタバンクのすべてのレジスタがスタックに格納されるのではなく、むしろ、補助レジスタに第2の値を有するビットを有するレジスタのみが格納されることを意味する。レジスタのデータに加えて、補助レジスタのビット列は、同様に、戻される場合、データを正しいレジスタに復元するために、スタックに格納される。
スタックまたはさらなるスタック内の補助レジスタのデータおよびビットシーケンスが格納された後、補助レジスタのビットが第1の値に設定された場合、さらに有利である。これは、上述のようにレジスタの削除に対応する。従って、レジスタ自体は実際に消去されないが、関連する補助レジスタのビットのみが消去される。
本発明およびその利点は、以下の図を参照してより詳細に説明される。
本発明によるマイクロプロセッサ回路の構造が図1に示される。このようなマイクロプロセッサの構造は公知であるので、原則的に、本明細書中では詳細に説明されない。従って、図示は、本発明にとって必要であるコンポーネントに制限される。
マイクロプロセッサ回路は、制御線30を介してメモリ4と接続される制御ユニット1、レジスタバンク2、補助レジスタ6、および以下においてさらなるスタックと呼ばれるハードウェア内部スタック8を備える。メモリ4は、異なった領域に分割され得る。例として、このメモリは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)およびEEPROMを含み得る。これらの上述のメモリ領域の部分は、秘匿されなければならないセキュリティに関連するデータを部分的に含む。さらに、メモリ4は、迅速にアクセスされ得るバッファを表すスタック5を含む。スタックは、メモリ4内に保持されるすべてのプログラムによって利用され得る。これは、スタック5が、プログラムの各機能に公然とアクセス可能であることを意味する。
本実施例において、レジスタバンク2は、8つのレジスタ3を有し、正確に1つのデータが各レジスタ3に格納され得る。各レジスタ3は、補助レジスタ6のさらなるレジスタ7に割り当てられる。正確に1つのビットが、さらなるレジスタ7の各々に格納され、このビットは、データが割り当てられた3に格納されるか否かに関する情報アイテムを含む。
レジスタ3に格納されたデータが好適には機能の変更の場合に格納されるさらなるスタック8が、いわゆるハードウェア内部スタックである。これは、このスタックが、メモリ4に格納されたプログラムにアクセス可能でないことを意味する。従って、プログラムは、このメモリ領域にアクセスし得ない。むしろ、管理は、オペレーティングシステムが担う。図1において、さらなるスタック8は、メモリ4から離れてセットされることが示されるが、さらなるスタック8は、当然、メモリ4の一部でもよい。
図1におけるレジスタ2および補助レジスタ6の例示は、レジスタ3およびさらなるレジスタ7に割り当てを説明することができるためにのみ選択された。さらなる説明から明らかになるように、補助レジスタ6は、必ずしもレジスタバンク2と異なるレジスタである必要はない。
この、および以下の実施形態において、例示的に、さらなるレジスタ7における論理値「1」の場合、有効データは、レジスタバンク2に割り当てられたレジスタ3に書き込まれたことが想定される。
図2および図3は、レジスタバンク2および補助レジスタ6の割り当ての2つの可能な実施形態を示す。
図2において、レジスタバンク2および補助レジスタ6は、相互に分離したレジスタバンクである。それぞれのレジスタ3、7の数は同じである。実施形態に依存して、任意の数のビットがレジスタバンク2のレジスタ3に格納され得るが、補助レジスタ6のさらなるレジスタ7は、各場合について1つのビットを格納することができるにすぎない。
本例示の実施形態におけるように、レジスタに下から上に0〜7と連続的に番号が付けられた場合、レジスタ1、2および4が有効なデータを有することが図2から見出され得る。それぞれ対応するさらなるレジスタ7は、従って、論理値「1」を含む。逆に、データは、残りのレジスタには書き込まれないので、割り当てられたビットは論理値「0」である。
図3Aおよび図3Bにおいて、ハードウェアを変更する必要がない。なぜなら、本発明による補助レジスタが、レジスタバンク2のレジスタ3に格納されるからである。この結果、合計8つのレジスタがあると仮定すると、現在実行される機能を書き込むために、7つのみが利用可能であるということである。図3Aにおいて、補助レジスタ6’は、レジスタ7に格納される。図3Bにおいて、補助レジスタ6”は、レジスタ0に格納される。この場合、補助レジスタ6’、6”の最上位ビットは、例えば、最下位レジスタに対応する。この場合、レジスタ0である。
本例示的実施形態において、8ビットのワード長を有するデータは、レジスタバンク2のレジスタ3内に格納され得る。この場合、補助レジスタ6’、6”の最下位ビット0は、どのレジスタにも割り当てられない。あるいは、最上位ビット7もまた、どのレジスタにも割り当てられないのでビット0〜6は、レジスタバンク2’のそれぞれのレジスタ3に割り当てるために用いられる。同様に、補助レジスタ6’の最上位ビットは、レジスタバンクの最上位レジスタ3に割り当てられ、他方、最下位ビットは、レジスタ0に割り当てられ得る。図3Bは、補助レジスタ6”がレジスタ0に配置されるレジスタバンク2”を示す。上述の改変は、同様に用いられ得る。
データをレジスタバンクのレジスタに書き込みおよび読み出しする場合のオペレーションの方法は以下のとおりである。データがレジスタバンク2のレジスタ3に書き込まれると、すぐに補助レジスタ6、6’、6”の対応するビットが、すべての例示の実施形態に示されるように第2の値、論理値「1」に設定される。データをレジスタ3から読み出すために、最初に、補助レジスタの関連するビットが点検される。これが第1の値(論理値「0」)を含む場合、値0は、戻される(割り当てられたレジスタ3にデータが存在するか否かに関わらず)。問い合わせされたレジスタ3の関連するビットが第2の値(論理値「1」)を含む場合のみ、レジスタに存在するデータが読み出される。このことから、レジスタを初期設定または消去するために、補助レジスタのビットのみが第1の値に設定されなければならない(論理値「0」)。これは、レジスタ3に保持されるデータは読み出され得ないことを十分に確実にする。
上述のように、第2の機能を第1の機能から呼出すと、レジスタ3に保持されるデータがスタックにバッファされる必要がある。以下の図4〜図7は、このことが理解され得る方法の異なった実施形態を示す。
図4は、レジスタバンク2および割り当てられた、分離した補助レジスタ6の(図2から知られる)構成を示す。第2の機能が、例えば、インストラクションCALLによって[function2]呼出されると、割り当てられたビットが第2の値(論理値「1」)を有するレジスタバンクのレジスタ3は、好適には、さらなるスタック8に格納される。図4に示されるように、データを有しないレジスタが2つのデータを有するレジスタ3間に配置される場合、このレジスタは、スタック8に書き込まれる際に抜かされる。その結果、データを含むレジスタのみがスタック8に連続的に格納される。レジスタの内容に加えて、補助レジスタ6のビット列が、さらなるスタック8のワード行に格納される。この場合、補助レジスタ6のビット列は、好適には、最後の値として格納される。これにより、第2の機能から第1の機能に戻される場合、レジスタ内容は、スタック8から戻されてレジスタバンク2に書き込まれ得、それぞれの内容は、前に書き込まれたレジスタに正確に格納される。
図5は、補助レジスタ6’がレジスタバンク2のレジスタに配置されるという事実のみが図4と異なる。レジスタ7は、本例示的実施形態に用いられる。そうでない場合、手順は、図4を参照して説明される手順に対応する。
多くの場合、レジスタバンク2は、第1の領域10および第2の領域20に分割されるのが通例である。この場合、呼出し機能(第1の機能)および呼出される機能(第2の機能)の両方によって必要とされるデータは、第2の領域20に書き込まれる。これらは、転送パラメータである。第1の領域10は、ここにデータをバッファするために、呼出される機能によってのみ用いられる。
第1の領域10のレジスタを、さらなるスタック8にバッファすることで十分である。この理由から、図6Aに示されるように、第1の領域10のみが補助レジスタ6に割り当てられる。
あるいは、図6Bに示されるように、補助レジスタ6が、レジスタバンク2の第1の領域10および第2の領域20の両方に割り当てられることが可能である。この場合、転送パラメータは、さらに、機能が呼出されると、スタックにバッファされる。
図7は、複数のレジスタウィンドウ11、12へのレジスタバンク2の分割を示す。図7は、2つのレジスタウィンドウ11、12のみを示すが、レジスタバンクは、任意の数のレジスタウィンドウを有し得る。レジスタバンクが第1の領域および第2の領域に分割される場合、レジスタウィンドウは、すべて、第1の領域10に配置される。
現在実行されている機能に対して正確に1つのレジスタウィンドウが利用可能である。このレジスタウィンドウは、「スタックポインタREG SP」により選択される。レジスタウィンドウに割り当てられたレジスタは、その後、この機能により書き込まれる。補助レジスタ6、6’は、レジスタウィンドウのそれぞれの最上位レジスタに格納される。
レジスタウィンドウの使用は、特に、機能の変更が頻繁に実行される場合に有利である。この手順は、機能を変更するたびにスタックに書き込まれたレジスタを格納する必要がないことを意味する。
本実施例において、レジスタウィンドウ11が、第1の機能によってすでに占有または書き込まれたと仮定する。第1の機能は、第2の機能を呼出し、その結果、スタックポインタが次のレジスタウィンドウ12(REG SP)を示す。この機能呼出しにより、前の例示の実施形態と異なり、レジスタリストがスタックに格納されず、単に、スタックポインタがシフトされる。従って、第2の機能は、レジスタウィンドウ12(レジスタ16〜23)を利用し、補助レジスタは、レジスタ23に格納される。第3の機能が呼出されると、これは、第3のレジスタウィンドウ(図示せず)を利用し得る。この間、最初に書き込まれたレジスタウィンドウは、スタックに同時に書き込まれる。これは、本例示的実施形態において、レジスタウィンドウ11である。個々のレジスタは、図4および図5にそれぞれ記載される態様で格納される。
このタイプの手順は、極めて迅速で、エネルギー効率的かつ確実にレジスタバンクに格納されるレジスタコンテンツの確実な格納を可能にする。
この場合、図7に示される例示的実施形態は、同じ数のレジスタを有するレジスタウィンドウを有する。これは、必ずしも必要ではない。レジスタウィンドウの大きさは、それぞれの機能により必要とされるレジスタに適合され得る。しかしながら、この場合、レジスタウィンドウのレジスタの1つは、原則的に、補助レジスタのビット列を格納するために用いられる。
図1は、本発明によるマイクロプロセッサ回路の構造を図示する。 図2は、レジスタおよび割り当てられた補助レジスタの第1の例示的実施形態を示す。 図3Aは、補助レジスタがレジスタの一部である、第2の例示的実施形態を示す。 図3Bは、補助レジスタがレジスタの一部である、第2の例示的実施形態を示す。 図4は、スタック上のレジスタの格納の原理を示す第1の例示的実施形態を示す。 図5は、スタック上のレジスタの格納を示す第2の例示的実施形態を示す。 図6Aは、レジスタおよび割り当てられたレジスタの補助レジスタを示し、レジスタは、第1の領域と第2の領域とにさらに分割される。 図6Bは、レジスタおよび割り当てられたレジスタの補助レジスタを示し、レジスタは、第1の領域と第2の領域とにさらに分割される。 図7は、レジスタがレジスタウィンドウとして実現される、さらなる例示的実施形態を示す。
符号の説明
1 制御ユニット
2、2’、2” レジスタバンク
3 レジスタ
4 メモリ
5 スタック
6、6’、6” 補助レジスタ
7 レジスタ
8 スタック
9 ワード行
10 レジスタバンクの第1の領域
11 第1のレジスタウィンドウ
12 第2のレジスタウィンドウ
20 レジスタバンクの第2の領域
30 制御線
SP スタックポインタ
REG SP レジスタスタックポインタ

Claims (11)

  1. 少なくとも1つの制御ユニット(1)と、機能を有する少なくとも1つのプログラムを用いてフリープログラミングするための少なくとも1つのメモリ(4)と、データをバッファするためのスタック(5)と、少なくとも1つのレジスタ(3)を有するレジスタバンク(2)と、複数のビットを格納する補助レジスタ(6)とを有し、
    該複数のビットの各々は、該レジスタバンク(2)の該レジスタ(3)のうちの1つに割り当てられており、
    該補助レジスタ(6)のビットであって第1の値を有するビットが割り当てられた該レジスタバンク(2)のレジスタ(3)からデータが読み出される場合には、該レジスタ(3)に格納されている値とは無関係な所定の値が戻され、
    該レジスタバンク(2)のレジスタ(3)に割り当てられた該補助レジスタ(6)のビットが第2の値を有する場合にのみ、該レジスタバンク(2)のレジスタ(3)からデータが読み出され得る、マイクロプロセッサ回路。
  2. 前記補助レジスタ(6)は、前記レジスタバンク(2)の前記レジスタ(3)の数に対応する複数のさらなるレジスタ(7)を有し、該複数のさらなるレジスタ(7)の各々は、単一のビットを格納するために提供されることを特徴とする、請求項1に記載のマイクロプロセッサ回路。
  3. 前記補助レジスタ(6)は、正確に1つのさらなるレジスタを有し、該さらなるレジスタは、ビット列を格納するために提供され、該ビット列は、前記レジスタバンク(2)のレジスタ(3)の数に対応することを特徴とする、請求項1に記載のマイクロプロセッサ回路。
  4. 前記補助レジスタ(6)は、前記レジスタバンク(2)のレジスタ(3)であることを特徴とする、請求項3に記載のマイクロプロセッサ。
  5. 前記レジスタバンクに含まれる前記データを格納するために、プログラマによって管理され得ないさらなるスタック(9)が提供されることを特徴とする、請求項1〜4のいずれか1つに記載のマイクロプロセッサ回路。
  6. 前記レジスタバンク(2)は、第1のレジスタを有する第1の領域(10)と、第2のレジスタを有する第2の領域(20)とを有し、少なくとも該第1のレジスタに、前記補助レジスタ(6)内のビットが割り当てられることを特徴とする、請求項1〜5のいずれか1つに記載のマイクロプロセッサ回路。
  7. 前記レジスタバンク(2)の前記第1の領域(10)が、複数の部分領域(11、12)に分割可能であり、該複数の部分領域は、前記プログラムの前記機能のうちの1つにそれぞれ利用可能である、請求項6に記載のマイクロプロセッサ回路。
  8. 請求項1〜7のいずれか1つに記載のマイクロプロセッサ回路を動作させる方法であって、該方法は、
    該マイクロプロセッサ回路を初期設定すると、前記補助レジスタ(6)のすべてのビットが第1の値に設定されるステップと
    前記レジスタバンク(2)のレジスタ(3)にデータを書き込むと、該補助レジスタの前記割り当てられたビットが第2の値に設定されるステップと
    該補助レジスタ(6)のビットであって第1の値を有するビットが割り当てられた該レジスタバンク(2)のレジスタ(3)からデータが読み出される場合には、該レジスタ(3)に格納されている値とは無関係な所定の値が戻されるステップと
    該レジスタバンク(2)のレジスタ(3)に割り当てられた該補助レジスタ(6)のビットが第2の値を有する場合にのみ、該レジスタバンク(2)のレジスタ(3)からデータが読み出され得るステップと
    を包含する、方法
  9. 前記レジスタバンク(2)のレジスタ(3)は、前記補助レジスタ(6)の前記割り当たられたビットを前記第1の値に設定することによって消去される、請求項8に記載の方法。
  10. 第1の機能を第2の機能に変更されると、前記レジスタバンク(2)の前記レジスタ(3)における該第1の機能に関連するデータ、および、前記補助レジスタ(6)の前記ビット列は、前記スタックまたは前記さらなるスタックに連続的に格納されることを特徴とする、請求項8または9に記載の方法。
  11. 前記スタックまたは前記さらなるスタックに前記補助レジスタ(6)の前記データおよび前記ビット列を格納した後、該補助レジスタの該ビットは、前記第1の値に設定されることを特徴とする、請求項10に記載の方法。
JP2002558124A 2001-01-18 2002-01-15 補助レジスタバンクを有するマイクロプロセッサ回路 Expired - Fee Related JP3771904B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10102202A DE10102202A1 (de) 2001-01-18 2001-01-18 Mikroprozessorschaltung für tragbare Datenträger
PCT/DE2002/000093 WO2002057906A2 (de) 2001-01-18 2002-01-15 Mikroprozessorschaltung_mit hilfsregister

Publications (2)

Publication Number Publication Date
JP2004523827A JP2004523827A (ja) 2004-08-05
JP3771904B2 true JP3771904B2 (ja) 2006-05-10

Family

ID=7671012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002558124A Expired - Fee Related JP3771904B2 (ja) 2001-01-18 2002-01-15 補助レジスタバンクを有するマイクロプロセッサ回路

Country Status (8)

Country Link
US (1) US7237092B2 (ja)
EP (1) EP1352318B1 (ja)
JP (1) JP3771904B2 (ja)
CN (1) CN1260644C (ja)
AT (1) ATE357017T1 (ja)
DE (2) DE10102202A1 (ja)
TW (1) TWI240893B (ja)
WO (1) WO2002057906A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139877B2 (en) * 2003-01-16 2006-11-21 Ip-First, Llc Microprocessor and apparatus for performing speculative load operation from a stack memory cache
KR100544188B1 (ko) * 2003-06-19 2006-01-23 삼성전자주식회사 네트워크 전자기기의 데이터 인터페이스 장치 및 방법
US7013377B2 (en) * 2003-09-03 2006-03-14 Sun Microsystems, Inc. Method and apparatus for alleviating register window size constraints
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7698536B2 (en) * 2005-08-10 2010-04-13 Qualcomm Incorporated Method and system for providing an energy efficient register file
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US10078515B2 (en) * 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
CN104572499B (zh) * 2014-12-30 2017-07-11 杭州中天微系统有限公司 一种数据高速缓存的访问装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2389284A1 (fr) * 1977-04-27 1978-11-24 Cii Honeywell Bull Systeme de traitement d'informations protegeant le secret d'informations confidentielles
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4757440A (en) * 1984-04-02 1988-07-12 Unisys Corporation Pipelined data stack with access through-checking
US4802218A (en) * 1986-11-26 1989-01-31 Wright Technologies, L.P. Automated transaction system
JPS63156236A (ja) * 1986-12-19 1988-06-29 Toshiba Corp レジスタ装置
US5056060A (en) * 1987-03-13 1991-10-08 Apple Computer, Inc. Printed circuit card with self-configuring memory system for non-contentious allocation of reserved memory space among expansion cards
JPH01142943A (ja) 1987-11-30 1989-06-05 Toshiba Corp レジスタ退避・回復方式
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5675758A (en) * 1994-11-15 1997-10-07 Advanced Micro Devices, Inc. Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
US6047365A (en) * 1996-09-17 2000-04-04 Vlsi Technology, Inc. Multiple entry wavetable address cache to reduce accesses over a PCI bus
JPH10283188A (ja) 1997-04-03 1998-10-23 Matsushita Electric Ind Co Ltd プロセッサにおけるレジスタ保護方法
US5944810A (en) * 1997-06-27 1999-08-31 Sun Microsystems, Inc. Superscalar processor for retiring multiple instructions in working register file by changing the status bits associated with each execution result to identify valid data
US6094724A (en) * 1997-11-26 2000-07-25 Atmel Corporation Secure memory having anti-wire tapping
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6199156B1 (en) * 1998-12-16 2001-03-06 Bull Hn Information Systems Inc. System for explicitly referencing a register for its current content when performing processor context switch

Also Published As

Publication number Publication date
US20040059895A1 (en) 2004-03-25
US7237092B2 (en) 2007-06-26
CN1488096A (zh) 2004-04-07
EP1352318A2 (de) 2003-10-15
TWI240893B (en) 2005-10-01
WO2002057906A3 (de) 2002-11-07
CN1260644C (zh) 2006-06-21
DE10102202A1 (de) 2002-08-08
ATE357017T1 (de) 2007-04-15
EP1352318B1 (de) 2007-03-14
WO2002057906A2 (de) 2002-07-25
DE50209711D1 (de) 2007-04-26
JP2004523827A (ja) 2004-08-05

Similar Documents

Publication Publication Date Title
JP3771904B2 (ja) 補助レジスタバンクを有するマイクロプロセッサ回路
US8417902B2 (en) One-time-programmable memory emulation
JP3878134B2 (ja) データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法
JPS6228297A (ja) 更新情報と履歴情報の読出し手段を有するicカ−ド
JPH03240127A (ja) プログラム制御システム
US7409251B2 (en) Method and system for writing NV memories in a controller architecture, corresponding computer program product and computer-readable storage medium
US20060206704A1 (en) Data transmission system and method for operating a data transmission system
US7000071B2 (en) Method for virtually enlarging the stack of a portable data carrier
US6498750B2 (en) Boot block flash memory control circuit; IC memory card and semiconductor memory device incorporating the same; and erasure method for boot block flash memory
US6779732B2 (en) Method and apparatus for linking converted applet files
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
US6736325B1 (en) Codelets
US20050262291A1 (en) Method to write in a non-volatile memory and system to implement such method
US7014119B2 (en) Method of manufacturing smart cards
JP7438432B1 (ja) 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム
JPH0855204A (ja) Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法
JPS63200399A (ja) デ−タ処理システム
JP2001229069A (ja) Icモジュール
JPH01147686A (ja) 携帯可能電子装置
JP2006510099A (ja) メモリカードに記録されているデータの安全な変更方法
JPH05334506A (ja) Icメモリカード
JPH01166281A (ja) 携帯可能電子装置
KR20020082281A (ko) 다중 응용 프로그램들 간의 보안을 유지할 수 있는 스마트카드
JPH07105334A (ja) 情報カード
JPH01284993A (ja) 携帯可能電子装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050523

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100217

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100217

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110217

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120217

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130217

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140217

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees