(57)【要約】  第１及び第２のパイプラインステージ、並びに当該パイプラインステージの間に配置されたラッチを含み、イネーブル信号に応じて当該ラッチがオープン及びクローズされるノーマルモード、並びに当該ラッチのオープン及びクローズに関連付けられた電流ピークを低減するために当該ラッチのオープンが維持される低減モードで動作するように構成された電子回路であって、電力分析技術を用いて複合することがより困難な電子回路が提供される。
2007528550.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のパイプラインステージと、
前記パイプラインステージの間に配置されたラッチを含む電子回路であって、
有効信号に応答して前記ラッチがオープン及びクローズされるノーマルモード、並びに前記ラッチのオープン及びクローズに関連付けられた電流ピークを低減するために前記ラッチのオープンが維持される低減モードで動作する電子回路。
【請求項２】
請求項１に記載の電子回路であって、さらに、
前記ラッチに接続されたラッチ制御回路を含み、
前記ラッチ制御回路は、前記電子回路がノーマルモードである場合に有効信号を有するラッチを制御し、前記電子回路が低減モードである場合にラッチのオープンを維持するように構成されたことを特徴とする電子回路。
【請求項３】
請求項１に記載の電子回路であって、
前記電子回路は、第３のパイプラインステージ及び第２のラッチをさらに含み、
前記第２のラッチは、前記第２と第３のパイプラインステージの間に配置されたことを特徴とする電子回路。
【請求項４】
請求項３に記載の電子回路であって、
前記電子回路が低減モードで動作している場合に、前記ラッチのオープン及びクローズに関連付けられた電流ピークを低減するために前記第１及び第２のラッチのオープンが維持される電子回路。
【請求項５】
請求項３に記載の電子回路であって、
前記電子回路が低減モードで動作している場合に、前記ラッチのオープン及びクローズに関連付けられた電流ピークを低減するために前記第１及び第２のラッチのうち１つのオープンが維持されることを特徴とする電子回路。
【請求項６】
請求項５に記載の電子回路であって、
前記オープンが維持されるラッチが時間とともに変化することを特徴とする電子回路。
【請求項７】
請求項６に記載の電子回路であって、
前記第１及び第２のラッチは、異なる時間の長さでオープンが維持されることを特徴とする電子回路。
【請求項８】
請求項１〜７のいずれか１項に記載の電子回路であって、
前記電子回路が低減モードで動作する時間の長さが変化することを特徴とする電子回路。
【請求項９】
請求項３に記載の電子回路であって、
前記第２のラッチに接続された第２のラッチ制御回路をさらに含むことを特徴とする電子回路。
【請求項１０】
請求項９に記載の電子回路であって、
前記第２のラッチ制御回路は、前記電子回路の動作モードを示す信号を受け取ることを特徴とする電子回路。
【請求項１１】
請求項１０に記載の電子回路であって、
前記電子回路が低減モードで動作している場合に、前記信号は、第１のラッチ、第２のラッチ又は第１及び第２のラッチの両方のオープンが維持されることを示すことを特徴とする電子回路。
【請求項１２】
請求項９に記載の電子回路であって、
各ラッチ制御回路は、前記電子回路が低減モードで動作している場合に、それぞれのラッチのオープンが維持されるかどうかを示すそれぞれの制御信号を受け取ることを特徴とする電子回路。
【請求項１３】
第１及び第２のパイプラインステージ、並びにステージの間に配置されたラッチを含む電子回路を動作させる方法であって、
有効信号に応答して前記ラッチがオープン及びクローズされるノーマルモード、並びに前記ラッチのオープン及びクローズに関連付けられた電流ピークを低減するために前記ラッチのオープンが維持される低減モードで前記電子回路を動作させる方法。
【請求項１４】
請求項１３に記載の方法であって、
前記電子回路はさらに、第３のパイプラインステージ及び第２のラッチを含み、
前記第２のラッチは、前記第２及び第３のパイプラインステージの間に配置され、
前記電子回路が前記第２のラッチのオープン及びクローズに関連付けられた電流ピークを低減するための低減モードで動作している場合に、前記第２のラッチのオープンを維持することを特徴とする方法。
【請求項１５】
請求項１４に記載の方法であって、
前記電子回路が低減モードで動作している場合に、前記第１のラッチ及び第２のラッチは異なる時間でオープンが維持されることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、
前記第１のラッチ及び第２のラッチは異なる時間の長さでオープンが維持されることを特徴とする方法。
【請求項１７】
請求項１４に記載の方法であって、
前記電子回路が低減モードで動作している場合に、前記第１のラッチ及び第２のラッチの両方は、オープンが維持されることを特徴とする方法。
【請求項１８】
請求項１３に記載の方法であって、
前記電子回路が低減モードで動作する時間の長さが変化することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路分野に関し、特に、パイプラインを含む電子回路の暗号化機能の集積化に関する。
【背景技術】
【０００２】
マイクロプロセッサは、暗号化を含む応用にしばしば用いられる。この一例は、スマートカードに用いられるマイクロプロセッサである。これらの応用に関しては、データの安全性が最も重要であり、解読又は複合が困難なマイクロプロセッサを保証することに多くの努力が期待される。
【０００３】
マイクロプロセッサを解読する最も一般的な方法の１つは、スマートカードの電力出力をモニタすることによるものである。この技術の最も基本的な方法は単純電力解析（ＳＰＡ）といわれ、より複雑な技術は電力差分解析（ＤＰＡ）と呼ばれる。
【０００４】
パイプライン型のプロセッサでは、マイクロプロセッサの各ステージのクロックがモニタされ、ＳＰＡ及びＤＰＡに用いられ得る電流ピークを引き起こす。これらの電流ピークは、結果的に、スマートカードによって処理されるデータを抽出するために解析され得る。
【０００５】
ＳＰＡ及びＤＰＡのような電力出力分析技術の効果を低減する１つの方法は、電流ピークの発生をランダム化し、最小化することである。
【０００６】
同期式システムでは、クロック信号の全ての立ち上がりエッジで、各ステージの全てのフリップフロップの中へ新しいデータがラッチされる。マイクロプロセッサのパイプラインの全てのステージの同期式クロックが、ＤＰＡ及びＳＰＡを用いることによって容易に検出可能な大きな電流ピークとなる。電圧スケーリング、又は“Ｓｅｃｕｒｅ  Ｃｏｎｔａｃｔｌｅｓｓ  Ｓｍａｒｔｃａｒｄ  ＡＳＩＣ  ｗｉｔｈ  ＤＰＡ  Ｐｒｏｔｅｃｔｉｏｎ”ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，  Ｖｏｌ．３６，  Ｎｏ．３，  Ｍａｒｃｈ  ２００１，  ｐ５５９−５６５  ｂｙ  Ｐａｔｒｉｃｋ  Ｒａｋｅｒｓ，  Ｌａｒｒｙ  ｃｏｎｎｅｌｌ，  Ｔｉｍ  Ｃｏｌｌｉｎｓ  ａｎｄ  Ｄａｎ  Ｒｕｓｓｅｌｌに開示されているような技術は、これらの電流ピークを低減し、同期式マイクロプロセッサベースのスマートカードをより安全にするために開発されたものである。しかしながら、これらの技術には、独立ネットワーク又は電圧スケーリング回路の追加が必要であり、必要とされるハードウェアの量を増やすことになる。
【０００７】
代替的には、非同期式マイクロプロセッサが同期式マイクロプロセッサの代わりに用いられ得る。
【０００８】
多くの非同期式マイクロプロセッサは、並列処理及び性能を増加させるためのパイプラインを用いる。つまり、いくつかの独立ステップを含むマイクロプロセッサの命令実行場所である分割ユニットは、各ステップを実行するマイクロプロセッサの中に作られ得る。１つのユニットが命令を実行し終えた場合は、パイプラインの次のユニットに命令が伝えられ、次の命令の処理を開始する。それ故に、実行される全ての命令に必要とされる時間の長さは非同期型システムと同じままであるにもかかわらず、次の命令が１つのユニットだけ後方にあるので、全体的な結果としては、マイクロプロセッサの性能が改善されたものになる。
【０００９】
１つのコンポーネントがデータを処理する時間及びシステムの次の部分にデータをいつ伝播するかについてグローバルクロック信号が制御するような同期式回路とは違って、非同期式システムのコンポーネントは、各自のレートでタスクを実行し、システムの次の部分がデータの受信の確認応答をした場合にのみ次のタスクへ進む。
【００１０】
それ故に、非同期式マイクロプロセッサは、パイプラインステージを通してデータをラッチするためのグローバルクロックを持っておらず、必要な時と場所でデータがラッチされるだけであるので、同期式マイクロプロセッサに比べて、電流ピークは、大きさが減少し、発生時間が広がる。それ故に、ＳＰＡ及びＤＰＡ技術を用いてマイクロプロセッサによって処理される命令及びデータを解析することはより困難である。
【００１１】
しかしながら、特定はより困難であるが、電流ピークは未だに存在し、マイクロプロセッサデータを不正に取り出させ得る。
【００１２】
従って、非同期式マイクロプロセッサの電流ピークの発生及び大きさをさらにランダム化する技術が必要である。
【発明の概要】
【００１３】
本発明の第１の態様によれば、第１のパイプラインステージ及び第２のパイプラインステージ、並びに当該パイプラインステージの間に配置されたラッチを含む電子回路であって、有効信号に応答して当該ラッチがオープン及びクローズされるノーマルモード、並びに当該ラッチのオープン及びクローズに関連付けられる電流ピークを低減するために当該ラッチのオープンが維持される低減モードで動作するように変化する電子回路が提供される。
【００１４】
好ましくは、当該電子回路は第３のパイプラインステージ及び第２のラッチを含み、当該第２のラッチは、当該第２のパイプラインステージと第３のパイプライステージの間に配置される。
【００１５】
電子回路が低減モードで動作している場合に、当該第１のラッチ及び第２のラッチは、当該ラッチのオープン及びクローズに関連付けられる電流ピークを低減するようにオープンが維持され得る。
【００１６】
代替的には、当該電子回路が低減モードで動作している場合に、当該第１のラッチ及び第２のラッチのうち１つが、ラッチのオープン及びクローズに関連付けられる電流ピークを低減するようにオープンが維持される。好ましくは、当該オープンが維持されるラッチは時間とともに変化する。好ましくは、当該第１のラッチ及び第２のラッチは異なる時間の長さでオープンが維持される。
【００１７】
好ましくは、電子回路が低減モードで動作する時間の長さは変化する。
【００１８】
本発明のもう１つの態様によれば、第１のパイプラインステージ及び第２のパイプラインステージ、並びに当該ステージの間に配置されるラッチを含む電子回路を動作させる方法であって、有効信号に応答して当該ラッチがオープン及びクローズされるノーマルモード、並びに当該ラッチのオープン及びクローズに関連付けられる電流ピークを低減するように当該ラッチのオープンが維持される低減モードで当該電子回路を動作させる方法が提供される。
【００１９】
本発明のより良い理解のために、そして、効果がどのようにもたらされるかをより明確に示すために、一例として、以下の図面について説明される。
【発明の詳細な説明】
【００２０】
本発明は、以下の非同期式マイクロプロセッサのパイプラインを参照して説明されるが、当然のことながら、パイプラインを有するいかなるタイプの電子回路にも本発明が適用できる。
【００２１】
図１は、本発明の一態様に関する５ステージパイプラインを示す。本発明は、５ステージパイプラインを参照して説明されるが、当然のことながら、いかなる数のステージを有するパイプラインにも本発明が適用できる。
【００２２】
パイプライン２のステージは、それぞれ、各々のラッチ（４、６、８、１０及び１２）を含み、従来と同様に、各ラッチが、ラッチの動作モードを決めるそれぞれの有効信号、Ｅｎ１、Ｅｎ２、Ｅｎ３、Ｅｎ４又はＥｎ５を有する。ラッチが有効の場合は、ラッチの出力はラッチの入力と同じであり、そのようなラッチは透過と呼ばれる。ラッチが無効の場合は、ラッチの出力は直前の入力値を保持する。
【００２３】
命令メモリ１４は、第１のラッチ４に接続され、プロセッサパイプライン２に対する命令を格納する。この命令は、データ命令１６の特定アドレスにアクセスするために用いられるロード命令を含んでも良く、又は、算術論理演算装置（ＡＬＵ）１８によって実行される算術演算命令を含んでも良い。他のタイプの命令は、例えば、比較命令、ジャンプ命令、分岐命令及び記憶命令である。
【００２４】
検索された命令は、第１のラッチ４に記憶され、第１のユニット２０に渡される。第１のユニット２０は、複合ステージとして一般に知られ、検索された命令を複合する。先行する命令が第３のラッチ８に安全に記憶されたことの確認を第２のラッチ６が受け取った場合に、制御信号及びデータ信号を含んでも良い第１のユニット２０の出力が第２のラッチ６に記憶される。これらの制御信号及びデータ信号は、パイプラインの各ステージで行うべき処理がどのようなものであるかを伝える。
【００２５】
第２のラッチ６に記憶された命令は、次に、ＡＬＵ１８によって実行される。命令が算術演算命令である場合は、ＡＬＵ１８は演算処理を行う。しかしながら、命令がロード命令である場合は、ＡＬＵ１８は、パイプライン２の第４のステージでデータメモリ１６にアクセスされなければならないアドレスを計算する。先行する命令が次のステージによって記憶されたことの確認を第３のラッチ８が受け取った場合は、次に、第３のラッチ８のレジスタ２２又は２４に演算処理の結果が記憶される。結果を記憶する第３のラッチ８の内部の特定レジスタ２２、２４は、実行される命令の性質によって決められる。例えば、命令がロード命令である場合は、データメモリ１６がアクセスされ得るようにトップレジスタ２２に結果が記憶される。代替的には、命令が演算処理命令である場合は、ボトムレジスタ２４に結果が記憶される。一実施例では、有効信号Ｅｎ３は、条件付きビットと連動して分割レジスタ２２、２４の選択を可能にする。
【００２６】
第４のステージでは、現在の命令がロード命令である場合は、データメモリ１６がアクセスされ、必要とされるデータがラッチ１０のトップレジスタ２６に読み出される。現在の命令が算術演算命令である場合は、第３のステージからの結果（ラッチ８に記憶された結果）がラッチ１０のボトムレジスタ２８にここで記憶される。
【００２７】
第３のラッチ８及び第４のラッチ１０のいずれにも２つのレジスタだけが示されるが、当然のことながら、２以上であっても良く、正確な数は、パイプラインが実行できる命令のタイプに依存する。
【００２８】
第５のステージでは、第４のステージの結果（ラッチ１０に記憶された結果）がラッチ１２に書き込まれる（以下、「レジスタファイル」という）。
【００２９】
上記のとおり、この非同期式パイプラインは、当然、パイプラインステージを通してデータのラッチを制御するためのグローバルクロック信号を有していないので、同期式マイクロプロセッサと比べた場合に、電流ピークの大きさは低減され、発生時間が広がる。しかしながら、特定は困難であるが、電流ピークは未だに存在し、非同期式マイクロプロセッサの中にデータを未だに分断して導き得る。
【００３０】
それ故に、本発明によれば、透過モードがランダムに維持され、パイプラインの２つの隣接ステージを１つのステージへ効果的に結合し、パイプラインを通したデータのラッチに関連付けられた電流ピークを低減することができるように、マイクロプロセッサパイプラインの１又はそれ以上のラッチを制御できる。透過が維持されるパイプラインのラッチを変えることによって、電流ピークのタイミングもランダム化され得る。
【００３１】
それ故に、図１に示された本発明の態様では、第２、第３及び第４のステージラッチ６、８及び１０の動作を制御するためにラッチ制御回路３０が設けられる。各ラッチ制御回路３０は、適当なラッチ有効信号及び適当なラッチ制御信号（ＣＴＲＬ）を受け取る。
【００３２】
本発明の代替的な態様によれば、ラッチコントローラ又は追加のラッチコントローラは、単に図１に示された第２、第３及び第４のラッチのみならず、パイプラインの他のラッチに接続され得る。
【００３３】
ラッチ制御回路３０は、関連付けられたラッチの動作モードを制御するために機能する。制御信号（ＣＴＲＬ）が、ラッチが通常に動作すべきことを示す場合は、ラッチ制御回路３０は、有効信号Ｅｎによってラッチを動作させる。つまり、有効信号は、ラッチが透過（次の記憶されるデータをロードしているとき）かどうか、又は、ラッチが直前に有効になった場合の直前の入力値を保持しているかどうかを制御する。
【００３４】
しかしながら、ラッチのオープン及びクローズと関連付けられた電流ピークを低減することが望まれる場合は、制御信号（ＣＴＲＬ）は、ラッチを透過にし、２つのステージを１つのステージに効果的に結合させる。つまり、ラッチ制御回路３０は、有効信号Ｅｎを無効にし、透過状態でラッチを保持する。これら２つのステージのうち最初のステージにデータが入力された時点で、次の非透過ラッチが命令の結果の受信の確認応答をするまで、ラッチは透過モードに維持される（この確認に必要とされる時間の長さは、システムで用いられるハンドシェイクプロトコルに依存する）。
【００３５】
当然のことながら、１又はそれ以上のラッチ（それらのラッチがパイプライン内で連続した位置にあるか否かを問わない）は、同時に透過状態が維持されても良い。
【００３６】
１又はそれ以上のラッチのオープンが維持されるモードを有し、そのステージを効果的に透過にするようなパイプライン２は、「低減された」パイプラインとして知られる。
【００３７】
パイプラインラッチコントローラの一実施は図２に示される。ノーマルラッチングモード（有効信号Ｅｎによって制御される）と透過が保持される低減モードとの間でラッチが切り替えられる。
【００３８】
この図では、有効信号（Ｅｎ）のハイは、ラッチが透過になることを意味する。しかしながら、有効信号（Ｅｎ）のロウがラッチを透過にするような異なる状況に対してこのコントローラを採用することは、当業者に容易に明らかである。
【００３９】
ラッチコントローラ３０では、低減モードとノーマルモードの間の切り替えは、制御信号（ＣＴＲＬ）によって決められる。制御信号（ＣＴＲＬ）は、入力として有効信号（Ｅｎ）と供給電圧信号（ＶＤＤ）を有するマルチプレクサ３２の動作を制御する。
【００４０】
電流ピークの発生及び大きさをランダム化するように低減されるべきであると決定された場合は、供給電圧信号（ＶＤＤ）がラッチの動作を制御するように、マルチプレクサ３２が制御信号（ＣＴＲＬ）によって制御される。それ故に、有効信号（Ｅｎ）の値によらず、ラッチは強制的に、透過状態になる。再び、パイプラインによってラッチが用いられる場合は、有効信号（Ｅｎ）がラッチを通過し、通常通りラッチにデータを記憶できるように、制御信号がマルチプレクサ３２を動作させる。
【００４１】
当然のことながら、上記及び図２に示されたラッチ制御回路は、例示的なものであって、本発明を実施するために用いられても良い多くの可能性のあるラッチ制御回路のうちの１つに過ぎない。ラッチ制御回路の多くの代替的なタイプは当業者に容易に明らかである。
【００４２】
それ故に、上記コントローラを有するラッチは透過モードに切り替えられ得る一方、システム内の他のラッチは、それらの有効信号に応答して通常通りラッチング状態を保ち得る。パイプラインに複数のラッチコントローラがある場合は、各ラッチコントローラは同じ制御信号を受け取っても良く、個別の制御信号を受け取っても良い。
【００４３】
制御信号（ＣＴＲＬ）は、ランダム信号発生器（図示されない）によって生成される。信号発生器は、「ランダム」信号がラッチ動作に関して安全であるように動作するように構成される。例えば、現在のデータを記憶しているラッチが、そのデータを次のラッチが記憶する前に透過状態に切り替えられる場合は、データを失うことになるであろう。図３は、例示的な２つの安全な制御信号を示す。
【００４４】
信号（ａ）は、一般的なラッチに関する有効信号である。立ち上がりエッジは、ラッチが、次のデータをロードするための透過（又はオープン）モードになるポイントに反応し、立ち下がりエッジは、ラッチがクローズし、データが蓄積されるポイントに反応する。
【００４５】
信号（ｂ）及び（ｃ）は、本発明に係る第１及び第２の安全な制御信号を示す。信号の立ち上がり及び立ち下がりエッジは、最初の有効信号の立ち上がり及び立ち下がりに反応するので、セットアップの導入及びレジスタのホールドバイオレーションが妨げられ、信号は安全であるとみなされる。
【００４６】
立ち上がり及び立ち下がりエッジは、最初の有効信号の立ち上がり及び立ち下りに反応しないので、信号（ｄ）は危険な信号である。
【００４７】
それ故に、非同期式マイクロプロセッサは、同期式の等価物に比べて電流ピークを削減したので、パイプラインの減少は、パイプラインのあるステージのラッチをランダムにオープンさせるように用いられ得るし、より小さな電流ピークのランダム発生をもたらす。このことは、マイクロプロセッサで発生した作用が何かを決めることがより困難であり、それ故に、スマートカードのデータを不正に取り出すことがより困難であることを意味する。
【００４８】
パイプラインステージが減少した場合は、第２の利点は、そのステージのラッチを作用させる必要がないので素子の電力消費が減少するという事実に起因する。
【００４９】
第３の利点は、ラッチが透過になる状況をプログラムできるという事実に起因する。従って、高性能が必要とされる一方で、機密データを処理する場合の利用パイプラインの低減が必要とされる場合にも、マイクロプロセッサは通常通り（すなわち、全てのラッチがノーマルモードで）動作できた。
【００５０】
上述された実施例は本発明を限定するものではなく、当業者であれば、添付の特許請求の範囲に記載された範囲から逸脱することなく多くの代替的な実施例を設計できることに注目すべきである。「含む（ｃｏｍｐｒｉｓｉｎｇ）」という語は、請求項に列挙された要素又はステップの存在を除外するものではない。
【図面の簡単な説明】
【００５１】
【図１】本発明の一態様に関する５ステージパイプラインである。
【図２】本発明の実施例に関するパイプラインラッチコントローラの一実施を示す。
【図３】本発明に係る制御信号を示す。
【図１】
2007528550.tif 000003
【図２】
2007528550.tif 000004
【図３】
2007528550.tif 000005
【国際調査報告】
2007528550.tif 000006
2007528550.tif 000007