JP2004523827A - 補助レジスタバンクを有するマイクロプロセッサ回路 - Google Patents
補助レジスタバンクを有するマイクロプロセッサ回路 Download PDFInfo
- Publication number
- JP2004523827A JP2004523827A JP2002558124A JP2002558124A JP2004523827A JP 2004523827 A JP2004523827 A JP 2004523827A JP 2002558124 A JP2002558124 A JP 2002558124A JP 2002558124 A JP2002558124 A JP 2002558124A JP 2004523827 A JP2004523827 A JP 2004523827A
- Authority
- JP
- Japan
- Prior art keywords
- register
- registers
- auxiliary
- stack
- bank
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
- G06F9/30127—Register windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register 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)
- Mobile Radio Communication Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【選択図】 図1
Description
【0001】
本発明は、請求項1の前提部によるポータブルデータキャリアのマイクロプロセッサ回路に関する。
【背景技術】
【0002】
上述のタイプのマイクロプロセッサ回路は、好適には、集積回路が備えられた、いわゆるスマートカード、すなわち身分証明書、クレジットカード、チャージカード等において用いられる。しかしながら、マイクロプロセッサ回路は、さらに、対応するインターフェースを介して上述のカードと通信する、いわゆる支払いトランザクションモジュールにおいて用いられ得る。
【0003】
このようなカードの重要な利点の1つは、カード所有者に多様な用途が可能になることである。集積回路に含まれるマイクロプロセッサ、および関連する格納手段は、カードそれ自体における幅広いデータ処理を可能にする。これに対して、磁気ストリップが提供されたカードは、例えば、データ処理のオペレーション全体が外部で実行されることを必要とする。
【0004】
カードの製造業者は、マイクロプロセッサに、例えば、外部で入力されたコードと格納されたコードとを比較するための手順等の基本的機能を実行する常駐オペレーティングシステムを備え得る。マイクロプロセッサと関連するメモリは、オペレーティングシステムを格納するためだけでなく、複数の機能、および例えば、セキュリティの点検のために必要であり、かついずれにしても秘匿されなければならないパラメータからなる特定のアプリケーションを格納するためにも利用される。
【0005】
カードの多様な用途は、関連するプログラムを有するオペレーティングシステムを出発点とした場合に、特定のインターフェースが規定され、メモリまたはメモリ領域が外部プログラムのために確保された場合に達成される。カード製造業者は、その後、ユーザ、すなわち、カードを発行する組織に、外部プログラムをプログラムするためのメモリまたはメモリ領域を提供する。この外部プログラムにおいて、この組織は、次に、オペレーティングシステムに依存せず、特定の組織のみに関する特定のオペレーションを規定し得る。
【0006】
上述のタイプのマイクロプロセッサ回路には、現在実行されている機能、いわゆるコンテキストに利用可能である少なくとも1つのレジスタバンクが提供される。第1の機能からの第2の機能の機能を呼出す場合、第1の機能のデータによって占有されるレジスタは、バッファ記憶装置、スタックに格納されなければならない。呼出された第2の機能において、これらのレジスタは、その後、書き込むための第2の機能に利用可能である。第2の機能から第1の機能に戻ると、スタックにバッファされたデータが再びレジスタに書き込まれなければならない。
【0007】
個々のレジスタについて、対応する書き込み/読み出しオペレーションにより、レジスタをスタック上に格納するか、またはスタックからレジスタを読み出すことは、比較的多数のインストラクションを必要とし、これは、プログラムコードの著しい拡大に至る。さらに、機能を変更するか、または機能を呼出す場合、レジスタ内の第1の機能と関連するデータが第2の機能によって依然として読み出され得るという問題がある。これは、例えば、クレジットカードにおいてセキュリティの問題であり得る。これによって、例えば、第2の機能が、すなわち、場合によっては、第1の機能にのみ知られるべきレジスタ内のなお機密のデータが読み出され得るからである。
【0008】
従来技術から、スタックに格納されるべき、レジスタバンクの個々のレジスタを選択し得るために用いられるインストラクションが公知である。インストラクション「ST REGMASK[bit mask][SP]」は、内容を有するレジスタバンクのレジスタのみを選択し、かつこれらのレジスタをスタックに格納するためにビットマスクを用いることができる。さらに、このインストラクションは、スタックの次の空いたアドレスを示す「スタックポインタ SP」を含む。データによって占有されるのはどのレジスタかという情報は、コンパイラ、すなわち、CPUによって規定される。ビットマスクは、これらの情報アイテムから生成される。データがスタックから読み出されてレジスタに戻される場合、コンパイラは、本来占有されていたのはどのレジスタかを確認することができる。データは、ビットマスクのこの情報により、正しいレジスタに戻されて格納される。
【0009】
書き込まれたレジスタをスタックに格納するために単一のインストラクションが用いられ得る。インストラクションST REGMASK[bit mask」[SP]が呼出されると、レジスタは、スタックに直接書き込まれる。しかしながら、インストラクション全体を実行するためには、複数のクロックサイクルが必要とされる。その後にのみ、第2の機能が呼出され得、これにレジスタバンクのレジスタが利用可能になる。さらに、スタックが、プログラマにアクセス可能であり、従って、他のすべてのプログラムまたは機能にもアクセス可能であるメモリの部分領域をなすことは不利である。従って、このデータを密かに探り出すことが可能である。
【0010】
また、いわゆる「レジスタウィンドウ」の使用が公知である。ここで、1つの機能に1つのレジスタウィンドウが利用可能である。第2の機能が呼出された場合、「レジスタポインタ」の変更によりさらなるレジスタウィンドウが選択される。従って、このさらなるレジスタウィンドウは、書き込むための第2の機能に利用可能である。レジスタバンクは、複数のレジスタウィンドウを有し得る。書き込まれていない最後のレジスタウィンドウが機能によって呼出され、かつ書き込まれるとすぐに、1つ以上のレジスタウィンドウのレジスタがスタックに同時にバッファ格納され得る。従って、現在アクティブな機能のレジスタが同時に書き込まれること、および前にアクティブだった機能のレジスタ内容を格納することが可能である。従って、特に時間節約的な変形である。しかしながら、レジスタがデータを有するか否かにかかわらず、レジスタウィンドウのすべてのレジスタがスタックに書き込まれることが不利なことである。
【発明の開示】
【発明が解決しようとする課題】
【0011】
従って、本発明は、簡単な措置を用いて、1つの機能のレジスタコンテンツが別の機能にアクセスされないことを可能にする回路および方法を規定するという目的に基づく。
【課題を解決するための手段】
【0012】
本目的は、請求項1および8に規定される特徴に従う本発明によりそれぞれ達成される。
【0013】
本発明によると、マイクロプロセッサ回路は、多数のビットを格納する補助レジスタを有する。ビットの各々は、レジスタバンクのレジスタの1つに割り当てられ、レジスタバンクのそれぞれのレジスタが情報アイテムを含むか否かを示す。
【0014】
レジスタバンクのレジスタへのそれぞれのビットに割り当ては、書き込まれたレジスタと書き込まれないレジスタとを簡単な態様で区別することを可能にする。結果として、レジスタ内容がスタックに格納される場合、実際にデータを有するレジスタのみを格納することが可能である。
【0015】
データを有するレジスタがコンパイラによって検出される必要がないことにより、レジスタは、迅速、エネルギー効率的、かつわずかなプログラムコードで、すなわち単一のインストラクションで格納され得る。
【0016】
第1の実施形態において、補助レジスタは、レジスタバンクのレジスタの数に対応する、複数のさらなるレジスタを有する。これらのレジスタの各々は、1つのビットを格納するために提供される。従って、補助レジスタは、同様に、レジスタバンクをなす。
【0017】
第2の実施形態によると、補助レジスタは、正確に1つのさらなるレジスタを有する。このさらなるレジスタは、レジスタバンクのレジスタの数に対応するビット列を格納するために提供される。補助レジスタは、好適には、レジスタバンクのレジスタである。従って、この第2の実施形態において、それ自体公知のマイクロプロセッサ回路を改変することは必要とされない。なぜなら、補助レジスタは、レジスタバンクのレジスタ内に格納されるからである。最下位または最上位のレジスタは、好適には、このために用いられる。
【0018】
マイクロプロセッサ回路の好適な改良点において、プログラマによって管理され得ないさらなるスタックが、レジスタバンクに含まれるデータを格納するために提供される。このさらなるスタックは、いわゆる「コンテキスト安全領域」として公知である。この領域は、メモリの部分であり得るハードウェア内部スタックである。このさらなるスタックに格納されるデータは、メモリに格納されるソフトウェアにより問い合わせられるか、または書き込まれ得ない。このさらなるスタックの管理は、オペレーティングシステムにのみ依存する。従って、これらのデータの操作は、不可能である。
【0019】
レジスタバンクは、好適には、第1のレジスタを有する第1の領域および第2のレジスタを有する第2の領域であり、少なくとも第1のレジスタには、補助レジスタ内のビットが割り当てられる。レジスタバンクの第1の領域(上部コンテクスト)および第2の領域(下部コンテクスト)への分割は、機能が呼出された場合に、第1の機能のパラメータが、多くの場合、第2の機能に転送されるという事実による。これらのパラメータは、第2の領域のレジスタに格納される(下部コンテキスト)。この第2の領域から、第2の呼出された機能は、その後、さらなる処理のためのパラメータをフェッチする。対照的に、レジスタバンクの第1の領域(上部コンテクスト)が、第2の呼出された機能によってのみ用いられ、かつ書き込まれる。第3の機能が第2の機能によって呼出された場合、レジスタバンクの第1の領域のレジスタのみをスタックに格納するだけで十分である。対照的に、第2の領域のレジスタにおける転送パラメータは、上書きされ、場合によっては、第3の機能によって読み出しさえされ得る。
【0020】
当然、第2の領域のレジスタが補助レジスタに割り当てられ、従って、機能の呼出しおよび機能の変更の際に、レジスタバンクのすべてのレジスタ、すなわち、第1の領域のレジスタおよび第2の領域のレジスタのレジスタがスタックに格納されることもまた考えられ得る。
【0021】
本発明をさらに改良すると、レジスタバンクの第1の領域は、機能の1つとしてそれぞれ利用可能である複数の部分領域に分割され得る。複数の部分領域への分割は、導入部で述べられたレジスタウィンドウに対応する。レジスタバンクの最初の領域が十分に多い数のレジスタを有する場合、この変形は、極めてエネルギー効率的、かつ迅速な手順を可能にする。これは、特に、ポータブルデータキャリア内のマイクロプロセッサ回路の場合、非常に有利である。
【0022】
上述のマイクロプロセッサ回路を動作するための本発明による方法の場合、マイクロプロセッサ回路は、マイクロプロセッサ回路を初期設定する際に、補助レジスタのすべてのビットが第1の値に設定される。データがレジスタバンクのレジスタに書き込まれる場合、補助レジスタに割り当てられたビットが第2の値にセットされる。マイクロプロセッサ回路の初期設定は、活性化されると生じ、従って、補助レジスタのすべてのレジスタおよびすべてのビットが規定された公知の状態にあることが保証される。データが書き込まれた場合、それぞれのビットは、自動的に第2の値にセットされて、これにより、そのレジスタが値を有することが表示される。補助レジスタのビットの第1の値は、例えば、0であり、他方、補助レジスタのビットの第2の値は1であり得る。当然、逆に割り当ても可能である。
【0023】
本発明による方法のさらなる実施形態において、レジスタバンクのレジスタの1つからのデータの読み出しは、補助レジスタに割り当てられたビットが第2の値を有する場合にのみ可能である。これは、レジスタに割り当てられたビットが第2の値、例えば1を有する場合にのみ、実際にレジスタに格納されたデータが読み出されることを意味する。対照的に、補助レジスタに割り当てられたビットが第1の値を有する場合、場合によってはレジスタに位置するデータは、マイクロプロセッサに戻されないが、その代わりに規定された値、例えば、0である。
【0024】
これにより、レジスタを消去するために、レジスタ自身が消去される必要がなく、補助レジスタにおいて割り当てられたビットを第1の値にセットするだけで十分であることが明らかになる。これは、補助レジスタにおける実際のデータがもはや読み出され得ないことを十分に確実にする。従って、複数のレジスタは、簡単、迅速かつ電力節約的に消去され得る。
【0025】
本発明による方法のさらなる発展において、第1の機能から第2の機能に変更される場合、レジスタバンクのレジスタにおける第1の機能に関連するデータおよび補助レジスタのビット列は、スタックまたはさらなるスタックに連続的に格納される。換言すると、これは、レジスタバンクのすべてのレジスタがスタックに格納されるのではなく、むしろ、補助レジスタに第2の値を有するビットを有するレジスタのみが格納されることを意味する。レジスタのデータに加えて、補助レジスタのビット列は、同様に、戻される場合、データを正しいレジスタに復元するために、スタックに格納される。
【0026】
スタックまたはさらなるスタック内の補助レジスタのデータおよびビットシーケンスが格納された後、補助レジスタのビットが第1の値に設定された場合、さらに有利である。これは、上述のようにレジスタの削除に対応する。従って、レジスタ自体は実際に消去されないが、関連する補助レジスタのビットのみが消去される。
【0027】
本発明およびその利点は、以下の図を参照してより詳細に説明される。
【0028】
本発明によるマイクロプロセッサ回路の構造が図1に示される。このようなマイクロプロセッサの構造は公知であるので、原則的に、本明細書中では詳細に説明されない。従って、図示は、本発明にとって必要であるコンポーネントに制限される。
【0029】
マイクロプロセッサ回路は、制御線30を介してメモリ4と接続される制御ユニット1、レジスタバンク2、補助レジスタ6、および以下においてさらなるスタックと呼ばれるハードウェア内部スタック8を備える。メモリ4は、異なった領域に分割され得る。例として、このメモリは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)およびEEPROMを含み得る。これらの上述のメモリ領域の部分は、秘匿されなければならないセキュリティに関連するデータを部分的に含む。さらに、メモリ4は、迅速にアクセスされ得るバッファを表すスタック5を含む。スタックは、メモリ4内に保持されるすべてのプログラムによって利用され得る。これは、スタック5が、プログラムの各機能に公然とアクセス可能であることを意味する。
【0030】
本実施例において、レジスタバンク2は、8つのレジスタ3を有し、正確に1つのデータが各レジスタ3に格納され得る。各レジスタ3は、補助レジスタ6のさらなるレジスタ7に割り当てられる。正確に1つのビットが、さらなるレジスタ7の各々に格納され、このビットは、データが割り当てられた3に格納されるか否かに関する情報アイテムを含む。
【0031】
レジスタ3に格納されたデータが好適には機能の変更の場合に格納されるさらなるスタック8が、いわゆるハードウェア内部スタックである。これは、このスタックが、メモリ4に格納されたプログラムにアクセス可能でないことを意味する。従って、プログラムは、このメモリ領域にアクセスし得ない。むしろ、管理は、オペレーティングシステムが担う。図1において、さらなるスタック8は、メモリ4から離れてセットされることが示されるが、さらなるスタック8は、当然、メモリ4の一部でもよい。
【0032】
図1におけるレジスタ2および補助レジスタ6の例示は、レジスタ3およびさらなるレジスタ7に割り当てを説明することができるためにのみ選択された。さらなる説明から明らかになるように、補助レジスタ6は、必ずしもレジスタバンク2と異なるレジスタである必要はない。
【0033】
この、および以下の実施形態において、例示的に、さらなるレジスタ7における論理値「1」の場合、有効データは、レジスタバンク2に割り当てられたレジスタ3に書き込まれたことが想定される。
【0034】
図2および図3は、レジスタバンク2および補助レジスタ6の割り当ての2つの可能な実施形態を示す。
【0035】
図2において、レジスタバンク2および補助レジスタ6は、相互に分離したレジスタバンクである。それぞれのレジスタ3、7の数は同じである。実施形態に依存して、任意の数のビットがレジスタバンク2のレジスタ3に格納され得るが、補助レジスタ6のさらなるレジスタ7は、各場合について1つのビットを格納することができるにすぎない。
【0036】
本例示の実施形態におけるように、レジスタに下から上に0〜7と連続的に番号が付けられた場合、レジスタ2、3および4が有効なデータを有することが図2から見出され得る。それぞれ対応するさらなるレジスタ7は、従って、論理値「1」を含む。逆に、データは、残りのレジスタには書き込まれないので、割り当てられたビットは論理値「0」である。
【0037】
図3Aおよび図3Bにおいて、ハードウェアを変更する必要がない。なぜなら、本発明による補助レジスタが、レジスタバンク2のレジスタ3に格納されるからである。この結果、合計8つのレジスタがあると仮定すると、現在実行される機能を書き込むために、7つのみが利用可能であるということである。図3Aにおいて、補助レジスタ6’は、レジスタ7に格納される。図3Bにおいて、補助レジスタ6”は、レジスタ0に格納される。この場合、補助レジスタ6’、6”の最上位ビットは、例えば、最下位レジスタに対応する。この場合、レジスタ0である。
【0038】
本例示的実施形態において、8ビットのワード長を有するデータは、レジスタバンク2のレジスタ3内に格納され得る。この場合、補助レジスタ6’、6”の最下位ビット0は、どのレジスタにも割り当てられない。あるいは、最上位ビット7もまた、どのレジスタにも割り当てられないのでビット0〜6は、レジスタバンク2’のそれぞれのレジスタ3に割り当てるために用いられる。同様に、補助レジスタ6’の最上位ビットは、レジスタバンクの最上位レジスタ3に割り当てられ、他方、最下位ビットは、レジスタ0に割り当てられ得る。図3Bは、補助レジスタ6”がレジスタ0に配置されるレジスタバンク2”を示す。上述の改変は、同様に用いられ得る。
【0039】
データをレジスタバンクのレジスタに書き込みおよび読み出しする場合のオペレーションの方法は以下のとおりである。データがレジスタバンク2のレジスタ3に書き込まれると、すぐに補助レジスタ6、6’、6”の対応するビットが、すべての例示の実施形態に示されるように第2の値、論理値「1」に設定される。データをレジスタ3から読み出すために、最初に、補助レジスタの関連するビットが点検される。これが第1の値(論理値「0」)を含む場合、値0は、戻される(割り当てられたレジスタ3にデータが存在するか否かに関わらず)。問い合わせされたレジスタ3の関連するビットが第2の値(論理値「1」)を含む場合のみ、レジスタに存在するデータが読み出される。このことから、レジスタを初期設定または消去するために、補助レジスタのビットのみが第1の値に設定されなければならない(論理値「0」)。これは、レジスタ3に保持されるデータは読み出され得ないことを十分に確実にする。
【0040】
上述のように、第2の機能を第1の機能から呼出すと、レジスタ3に保持されるデータがスタックにバッファされる必要がある。以下の図4〜図7は、このことが理解され得る方法の異なった実施形態を示す。
【0041】
図4は、レジスタバンク2および割り当てられた、分離した補助レジスタ6の(図2から知られる)構成を示す。第2の機能が、例えば、インストラクションCALLによって[function2]呼出されると、割り当てられたビットが第2の値(論理値「1」)を有するレジスタバンクのレジスタ3は、好適には、さらなるスタック8に格納される。図4に示されるように、データを有しないレジスタが2つのデータを有するレジスタ3間に配置される場合、このレジスタは、スタック8に書き込まれる際に抜かされる。その結果、データを含むレジスタのみがスタック8に連続的に格納される。レジスタの内容に加えて、補助レジスタ6のビット列が、さらなるスタック8のワード行に格納される。この場合、補助レジスタ6のビット列は、好適には、最後の値として格納される。これにより、第2の機能から第1の機能に戻される場合、レジスタ内容は、スタック8から戻されてレジスタバンク2に書き込まれ得、それぞれの内容は、前に書き込まれたレジスタに正確に格納される。
【0042】
図5は、補助レジスタ6’がレジスタバンク2のレジスタに配置されるという事実のみが図4と異なる。レジスタ7は、本例示的実施形態に用いられる。そうでない場合、手順は、図4を参照して説明される手順に対応する。
【0043】
多くの場合、レジスタバンク2は、第1の領域10および第2の領域20に分割されるのが通例である。この場合、呼出し機能(第1の機能)および呼出される機能(第2の機能)の両方によって必要とされるデータは、第2の領域20に書き込まれる。これらは、転送パラメータである。第1の領域10は、ここにデータをバッファするために、呼出される機能によってのみ用いられる。
【0044】
第1の領域10のレジスタを、さらなるスタック8にバッファすることで十分である。この理由から、図6Aに示されるように、第1の領域10のみが補助レジスタ6に割り当てられる。
【0045】
あるいは、図6Bに示されるように、補助レジスタ6が、レジスタバンク2の第1の領域10および第2の領域20の両方に割り当てられることが可能である。この場合、転送パラメータは、さらに、機能が呼出されると、スタックにバッファされる。
【0046】
図7は、複数のレジスタウィンドウ11、12へのレジスタバンク2の分割を示す。図7は、2つのレジスタウィンドウ11、12のみを示すが、レジスタバンクは、任意の数のレジスタウィンドウを有し得る。レジスタバンクが第1の領域および第2の領域に分割される場合、レジスタウィンドウは、すべて、第1の領域10に配置される。
【0047】
現在実行されている機能に対して正確に1つのレジスタウィンドウが利用可能である。このレジスタウィンドウは、「スタックポインタREG SP」により選択される。レジスタウィンドウに割り当てられたレジスタは、その後、この機能により書き込まれる。補助レジスタ6、6’は、レジスタウィンドウのそれぞれの最上位レジスタに格納される。
【0048】
レジスタウィンドウの使用は、特に、機能の変更が頻繁に実行される場合に有利である。この手順は、機能を変更するたびにスタックに書き込まれたレジスタを格納する必要がないことを意味する。
【0049】
本実施例において、レジスタウィンドウ11が、第1の機能によってすでに占有または書き込まれたと仮定する。第1の機能は、第2の機能を呼出し、その結果、スタックポインタが次のレジスタウィンドウ12(REG SP)を示す。この機能呼出しにより、前の例示の実施形態と異なり、レジスタリストがスタックに格納されず、単に、スタックポインタがシフトされる。従って、第2の機能は、レジスタウィンドウ12(レジスタ16〜23)を利用し、補助レジスタは、レジスタ23に格納される。第3の機能が呼出されると、これは、第3のレジスタウィンドウ(図示せず)を利用し得る。この間、最初に書き込まれたレジスタウィンドウは、スタックに同時に書き込まれる。これは、本例示的実施形態において、レジスタウィンドウ11である。個々のレジスタは、図4および図5にそれぞれ記載される態様で格納される。
【0050】
このタイプの手順は、極めて迅速で、エネルギー効率的かつ確実にレジスタバンクに格納されるレジスタコンテンツの確実な格納を可能にする。
【0051】
この場合、図7に示される例示的実施形態は、同じ数のレジスタを有するレジスタウィンドウを有する。これは、必ずしも必要ではない。レジスタウィンドウの大きさは、それぞれの機能により必要とされるレジスタに適合され得る。しかしながら、この場合、レジスタウィンドウのレジスタの1つは、原則的に、補助レジスタのビット列を格納するために用いられる。
【図面の簡単な説明】
【0052】
【図1】図1は、本発明によるマイクロプロセッサ回路の構造を図示する。
【図2】図2は、レジスタおよび割り当てられた補助レジスタの第1の例示的実施形態を示す。
【図3A】図3Aは、補助レジスタがレジスタの一部である、第2の例示的実施形態を示す。
【図3B】図3Bは、補助レジスタがレジスタの一部である、第2の例示的実施形態を示す。
【図4】図4は、スタック上のレジスタの格納の原理を示す第1の例示的実施形態を示す。
【図5】図5は、スタック上のレジスタの格納を示す第2の例示的実施形態を示す。
【図6A】図6Aは、レジスタおよび割り当てられたレジスタの補助レジスタを示し、レジスタは、第1の領域と第2の領域とにさらに分割される。
【図6B】図6Bは、レジスタおよび割り当てられたレジスタの補助レジスタを示し、レジスタは、第1の領域と第2の領域とにさらに分割される。
【図7】図7は、レジスタがレジスタウィンドウとして実現される、さらなる例示的実施形態を示す。
【符号の説明】
【0053】
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 (12)
- 少なくとも1つの制御ユニット(1)と、機能を有する少なくとも1つのプログラムを用いてフリープログラミングするための少なくとも1つのメモリ(4)と、データをバッファするためのスタック(5)と、少なくとも1つのレジスタ(3)を有するレジスタバンク(2)とを有するマイクロプロセッサ回路であって、
補助レジスタ(6)は、多数のビットを格納し、該ビットの各々は、該レジスタバンク(2)の該レジスタ(3)の1つに割り当てられ、かつ該レジスタバンク(2)のそれぞれのレジスタ(3)が情報アイテムを含むか否かを示すことを特徴とする、マイクロプロセッサ回路。 - 前記補助レジスタ(6)は、前記レジスタバンク(2)の前記レジスタ(3)の数に対応する数のさらなるレジスタ(7)を有し、該さらなるレジスタ(7)の各々は、単一のビットを格納するために提供されることを特徴とする、請求項1に記載のマイクロプロセッサ回路。
- 前記補助レジスタ(6)は、正確に1つのさらなるレジスタを有し、該さらなるレジスタは、ビット列を格納するために提供され、該ビット列は、前記レジスタバンク(2)におけるレジスタ(3)の数に対応することを特徴とする、請求項1に記載のマイクロプロセッサ回路。
- 前記補助レジスタ(6)は、前記レジスタバンク(2)のレジスタ(3)であることを特徴とする、請求項3に記載のマイクロプロセッサ。
- 前記レジスタバンクに含まれる前記データを格納するために、プログラマによって管理され得ないさらなるスタック(9)が提供されることを特徴とする、請求項1〜4のいずれか1つに記載のマイクロプロセッサ回路。
- 前記レジスタバンクは、第1のレジスタを有する第1の領域(10)と、第2のレジスタを有する第2の領域(20)とを有し、少なくとも該第1のレジスタに、前記補助レジスタ(6)内のビットが割り当てられることを特徴とする、請求項1〜5のいずれか1つに記載のマイクロプロセッサ回路。
- 前記レジスタバンク(2)の前記第1の領域(10)が、複数の部分領域(11、12)に分割可能であり、該複数の部分領域は、それぞれ、前記プログラムの前記機能のうちの1つにそれぞれに利用可能になる、請求項6に記載のマイクロプロセッサ回路。
- マイクロプロセッサ回路を動作させる方法であって、
該マイクロプロセッサ回路を初期設定すると、前記補助レジスタ(6)のすべてのビットが第1の値に設定されることと、
前記レジスタバンク(2)のレジスタ(3)にデータを書き込むと、該補助レジスタの前記割り当てられたビットが第2の値に設定されることと
を特徴とする、請求項1〜7のいずれか1つに記載のマイクロプロセッサ回路。 - 前記レジスタバンク(2)の前記レジスタ(3)の1つからのデータの読み出しは、前記補助レジスタ(6)の前記割り当てられたビットが前記第2の値を有する場合にのみ可能であることを特徴とする、請求項8に記載の方法。
- 前記補助レジスタ(6)に割り当てられたビットが第1の値を有する、前記レジスタバンク(2)の前記レジスタ(3)の1つからデータを読み出すと、該データ「0」が戻されることを特徴とする、請求項8または9に記載の方法。
- 第1の機能を第2の機能に変更されると、前記レジスタバンク(2)の前記レジスタ(3)における該第1の機能に関連するデータ、および、前記補助レジスタ(6)の前記ビット列は、連続的に前記スタックまたは前記さらなるスタックに格納されることを特徴とする、請求項8〜10のいずれか1つに記載の方法。
- 前記補助レジスタ(6)の前記データおよび前記ビット列を前記スタックまたは前記さらなるスタックに格納した後、該補助レジスタの該ビットは、第1の値に設定されることを特徴とする、請求項11に記載の方法。
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 true JP2004523827A (ja) | 2004-08-05 |
JP3771904B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011357A (ja) * | 2003-06-19 | 2005-01-13 | Samsung Electronics Co Ltd | ネットワーク電子機器のデータインターフェース装置および方法 |
JP2009505236A (ja) * | 2005-08-10 | 2009-02-05 | クゥアルコム・インコーポレイテッド | エネルギーの効率的なレジスターファイルを提供する方法及びシステム |
Families Citing this family (10)
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 |
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 |
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)
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 |
-
2001
- 2001-01-18 DE DE10102202A patent/DE10102202A1/de not_active Ceased
-
2002
- 2002-01-09 TW TW091100183A patent/TWI240893B/zh not_active IP Right Cessation
- 2002-01-15 DE DE50209711T patent/DE50209711D1/de not_active Expired - Lifetime
- 2002-01-15 CN CNB028038959A patent/CN1260644C/zh not_active Expired - Fee Related
- 2002-01-15 EP EP02701190A patent/EP1352318B1/de not_active Expired - Lifetime
- 2002-01-15 WO PCT/DE2002/000093 patent/WO2002057906A2/de active Search and Examination
- 2002-01-15 AT AT02701190T patent/ATE357017T1/de not_active IP Right Cessation
- 2002-01-15 JP JP2002558124A patent/JP3771904B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-18 US US10/622,981 patent/US7237092B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011357A (ja) * | 2003-06-19 | 2005-01-13 | Samsung Electronics Co Ltd | ネットワーク電子機器のデータインターフェース装置および方法 |
JP2009505236A (ja) * | 2005-08-10 | 2009-02-05 | クゥアルコム・インコーポレイテッド | エネルギーの効率的なレジスターファイルを提供する方法及びシステム |
Also Published As
Publication number | Publication date |
---|---|
JP3771904B2 (ja) | 2006-05-10 |
ATE357017T1 (de) | 2007-04-15 |
WO2002057906A3 (de) | 2002-11-07 |
EP1352318A2 (de) | 2003-10-15 |
US20040059895A1 (en) | 2004-03-25 |
EP1352318B1 (de) | 2007-03-14 |
TWI240893B (en) | 2005-10-01 |
DE10102202A1 (de) | 2002-08-08 |
CN1488096A (zh) | 2004-04-07 |
DE50209711D1 (de) | 2007-04-26 |
WO2002057906A2 (de) | 2002-07-25 |
CN1260644C (zh) | 2006-06-21 |
US7237092B2 (en) | 2007-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100205740B1 (ko) | 복수의 마이크로 프로세서들간에 애플리케이션 데이터 및 절차들을 공유하기 위한 보안성 애플리케이션 카드 | |
EP0985202B1 (en) | Multi-application ic card with delegation feature | |
JP3878134B2 (ja) | データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法 | |
JP3771904B2 (ja) | 補助レジスタバンクを有するマイクロプロセッサ回路 | |
JPH02210590A (ja) | データを記憶し処理するための携帯可能なデータ担体 | |
US8417902B2 (en) | One-time-programmable memory emulation | |
US6572024B1 (en) | Memory array with address scrambling | |
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 | |
JPH0440588A (ja) | 携帯可能電子装置 | |
JPH01219982A (ja) | Icカード | |
JP4047281B2 (ja) | キャッシュメモリをメインメモリに同期させる方法 | |
US6736325B1 (en) | Codelets | |
CN113760193B (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
JPH0778485A (ja) | 不揮発性半導体記憶装置とデータ書換/読出方法 | |
US20050262291A1 (en) | Method to write in a non-volatile memory and system to implement such method | |
JP3899223B2 (ja) | Icカードおよびicカード搭載処理プログラムの変更・追加方法 | |
CN1533575B (zh) | 一种以卡为基础的交易系统中用于修改数据的处理过程和系统 | |
JP7438432B1 (ja) | 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム | |
JP2609645B2 (ja) | 携帯可能電子装置 | |
JPS63200399A (ja) | デ−タ処理システム | |
JP2005056259A (ja) | 携帯可能電子媒体と携帯可能電子媒体取扱装置 | |
JP2001229069A (ja) | Icモジュール | |
JPH07105334A (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 |