(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-15
(45)【発行日】2024-08-23
(54)【発明の名称】エントロピーソース回路
(51)【国際特許分類】
G06F 7/58 20060101AFI20240816BHJP
【FI】
G06F7/58 680
【外国語出願】
(21)【出願番号】P 2023011449
(22)【出願日】2023-01-30
【審査請求日】2023-02-08
(32)【優先日】2022-08-04
(33)【優先権主張国・地域又は機関】TW
(73)【特許権者】
【識別番号】520196623
【氏名又は名称】▲しゃーん▼碼科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】游 鈞恆
(72)【発明者】
【氏名】莊 ▲かい▼▲しぇん▼
(72)【発明者】
【氏名】邵 啓意
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】特表2018-507468(JP,A)
【文献】特開2008-097610(JP,A)
【文献】特開2022-002098(JP,A)
【文献】特表2009-543242(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/58- 7/72
(57)【特許請求の範囲】
【請求項1】
第1の時点で受信された入力データにしたがって、第2の時点で結果データを生成するように構成されたデジタル回路と、
前記デジタル回路に連結され、判定信号を生成するために、前記デジタル回路によって生成される動的出力を用いて参照データに対して判定を行うように構成された判定回路であって、該参照データは前記結果データと等しい、判定回路と、
前記判定回路に連結され、前記入力データにしたがって前記結果データを生成するための前記デジタル回路の遅延に対して、前記判定信号の助けを借りて時間デジタル変換を行い、該遅延に対応するエントロピーデータを生成するように構成された時間デジタル変換器(TDC)であって、前記第1の時点と前記第2の時点との間の時間差は該遅延を表す、TDCと、
開始信号及びシステムクロックにしたがって前記入力データ及び前記参照データを更新するように構成されたフリップフロップと、
インバータであって、該インバータの入力端子は前記フリップフロップの出力端子に連結され、該インバータの出力端子は前記フリップフロップの入力端子及び前記デジタル回路に連結されている、インバータと、
を含
み、
前記インバータの出力端子の論理値は、前記入力データ及び前記参照データを表す、エントロピーソース回路。
【請求項2】
前記判定回路は、
排他的論理和(XOR)ゲートであって、該XORゲートの第1の入力端子は前記デジタル回路の出力端子に連結され、該XORゲートの第2の入力端子は前記インバータの出力端子に連結され、該XORゲートの出力端子の論理値は前記判定信号を表す、XORゲート、
を含む、請求項
1に記載のエントロピーソース回路。
【請求項3】
タイミング制御信号を生成するために、前記開始信号及び前記システムクロックに対してAND論理演算を行うように構成されたANDゲートをさらに含み、
前記インバータは、前記タイミング制御信号にしたがって前記入力データ及び前記参照データを更新する、請求項
1に記載のエントロピーソース回路。
【請求項4】
第1の時点で受信された入力データにしたがって、第2の時点で結果データを生成するように構成されたデジタル回路と、
前記デジタル回路に連結され、判定信号を生成するために、前記デジタル回路によって生成される動的出力を用いて参照データに対して判定を行うように構成された判定回路であって、該参照データは前記結果データと等しい、判定回路と、
前記判定回路に連結され、前記入力データにしたがって前記結果データを生成するための前記デジタル回路の遅延に対して、前記判定信号の助けを借りて時間デジタル変換を行い、該遅延に対応するエントロピーデータを生成するように構成された時間デジタル変換器(TDC)であって、前記第1の時点と前記第2の時点との間の時間差は該遅延を表す、TDCと、
を含むエントロピーソース回路であって、
前記エントロピーソース回路はデジタルシステムに連結され、該デジタルシステムは複数のデジタル信号経路を含み、該複数のデジタル信号経路のうちのクリティカルパスは、該複数のデジタル信号経路のうちの遅延が最も長いデジタル信号経路であり、該クリティカルパスに対応する論理演算は、前記デジタル回路によって前記入力データに対して行われる論理演算と等しい
、エントロピーソース回路。
【請求項5】
前記デジタル回路は、前記クリティカルパスの入力端子から前記入力データを受信し、前記クリティカルパスの出力端子から前記参照データを受信する、請求項
4に記載のエントロピーソース回路。
【請求項6】
システムクロックにしたがって、前記入力データを前記デジタル回路に送信するタイミングを制御するように構成された第1のフリップフロップと、
前記システムクロックにしたがって、開始信号を前記TDCに送信するタイミングを制御するように構成された第2のフリップフロップと、
前記第1のフリップフロップと前記クリティカルパスの入力端子に連結され、前記開始信号にしたがって、前記クリティカルパスの入力端子のデータを前記第1のフリップフロップの入力端子に送信するかどうかを制御するように構成されたセレクタと、
さらに含む、請求項
5に記載のエントロピーソース回路。
【請求項7】
システムクロックにしたがって、前記参照データを前記判定回路に送信するタイミングを制御するように構成されたフリップフロップと、
前記フリップフロップ及び前記クリティカルパスの出力端子に連結され、開始信号にしたがって、前記クリティカルパスの出力端子のデータを前記フリップフロップの入力端子に送信するかどうかを制御するように構成されたセレクタと、
をさらに含む、請求項
5に記載のエントロピーソース回路。
【請求項8】
前記TDCは、
直列に接続された複数の遅延ユニットであって、該複数の遅延ユニットのうちの第1の遅延ユニットの入力端子は開始信号を受信するように構成され、該開始信号は前記第1の時点を示す、複数の遅延ユニットと、
複数のフリップフロップであって、該複数のフリップフロップの入力端子は、前記複数の遅延ユニットの出力端子にそれぞれ連結され、該複数のフリップフロップの各フリップフロップは、前記判定信号にしたがって、前記第2の時点で、該各フリップフロップの入力端子のデータを該各フリップフロップの出力端子に送信する、複数のフリップフロップと、
を含む、請求項1に記載のエントロピーソース回路。
【請求項9】
前記TDCは、
時間デジタル変換クロック及び前記判定信号にしたがってカウントクロックを生成するように構成されたクロック制御ロジックであって、該カウントクロックは、前記第1の時点と前記第2の時点との間の時間間隔内でのみ有効にされる、クロック制御ロジックと、
前記クロック制御ロジックに連結され、前記カウントクロックにしたがってカウント結果を生成するように構成されたカウンターであって、該カウント結果は、前記時間間隔内のカウントクロックのトグルの回数を示す、カウンターと、
を含む、請求項1のエントロピーソース回路。
【請求項10】
前記エントロピーソース回路は、
システムクロック、開始信号及び判定信号にしたがって、前記エントロピーデータが有効かどうかを示すフラグ信号を生成するように構成されたフラグ信号発生器であって、該開始信号は前記第1の時点を示す、フラグ信号発生器、
をさらに含み、
前記フラグ信号が第1の論理値であり、前記開始信号が第1の論理値であり、前記判定信号が第2の論理値であるという条件下では、前記フラグ信号は、前記システムクロックの次の立ち上がりエッジの時点で第2の論理値にプルされ、前記フラグ信号が第2の論理値であり、前記判定信号が第2の論理値であるという条件下では、前記フラグ信号は、前記システムクロックの次の立ち上がりエッジの時点で第1の論理値にプルされる、請求項
9に記載のエントロピーソース回路。
【請求項11】
前記フラグ信号発生器は、
前記開始信号を受信するように構成されたインバータと、
第1のANDゲートであって、該第1のANDゲートの第1の入力端子は前記インバータの出力端子に連結され、前記第1のANDゲートの第2の入力端子は前記判定信号を受信するように構成されている、第1のANDゲートと、
第1のフリップフロップであって、該第1のフリップフロップのデータ入力端子は前記第1のANDゲートの出力端子に連結され、前記第1のフリップフロップのクロック端子は前記システムクロックを受信するように構成されている、第1のフリップフロップと、
第2のANDゲートであって、該第2のANDゲートの第1の入力端子は前記インバータの出力端子に連結され、該第2のANDゲートの第2の入力端子は前記第1のフリップフロップのデータ出力端子に連結されている、第2のANDゲートと、
第2のフリップフロップであって、該第2のフリップフロップのデータ入力端子は前記第2のANDゲートの出力端子に連結され、該第2のフリップフロップのクロック端子は前記システムクロックを受信するように構成されている、第2のフリップフロップと、
前記第1のフリップフロップ及び前記第2のフリップフロップに連結され、前記フラグ信号を生成するために、前記第1のフリップフロップの出力及び前記第2のフリップフロップの出力に対して排他的論理和(XOR)演算を行うように構成されたXORゲートと、
を含む、請求項
10に記載のエントロピーソース回路。
【請求項12】
開始信号と、入力データと、該入力データに対応する参照データとを出力するように構成された入力データ制御回路と、
入力端子及び出力端子を有するデジタル回路であって、該デジタル回路の入力端子は前記入力データを受信するように構成されている、デジタル回路と、
前記デジタル回路の出力端子に連結され、前記参照データを受信するように構成された判定回路であって、前記デジタル回路の出力端子で生成される出力は前記参照データと等しい場合、該判定回路は判定信号を生成する、判定回路と、
前記入力データ制御回路及び前記判定回路に連結され、前記開始信号を受信し、前記開始信号及び前記判定信号にしたがってエントロピーデータを生成するように構成された時間デジタル変換器(TDC)と、
を含
み、
前記入力データ制御回路は、
前記開始信号を生成するために、外部制御信号及びシステムクロックに対してAND論理演算を行うように構成されたANDゲートと、
前記開始信号にしたがって、前記入力データ及び前記参照データを更新するタイミングを制御するように構成されたフリップフロップと、
インバータであって、該インバータの入力端子は前記フリップフロップの出力端子に連結され、前記インバータの出力端子は前記フリップフロップの入力端子及び前記デジタル回路に連結されている、インバータと、
を含み、
前記インバータの出力端子の論理値は、前記入力データ及び前記参照データを表す、エントロピーソース回路。
【請求項13】
前記デジタル回路は、第1の時点で前記入力データを受信し、前記判定信号は、前記デジタル回路の出力端子で生成される出力が、第2の時点における前記参照データと等しいことを示し、該第1の時点と該第2の時点との間の時間差は、前記エントロピーデータに対応する、請求項
12に記載のエントロピーソース回路。
【請求項14】
前記デジタル回路は、
直列に接続された複数の遅延ユニットであって、該複数の遅延ユニットのうちの最初の遅延ユニットの入力端子は前記インバータの出力端子に連結され、該複数の遅延ユニットのうちの最後の遅延ユニットの出力端子は前記判定回路に連結されている、複数の遅延ユニット、
を含む、請求項
12に記載のエントロピーソース回路。
【請求項15】
前記判定回路は、
排他的論理和(XOR)ゲートであって、該XORゲートの第1の入力端子は前記最後の遅延ユニットの出力端子に連結され、該XORゲートの第2の入力端子は前記インバータの出力端子に連結されている、XORゲート、
を含み、
前記XORゲートの出力端子の論理値は前記判定信号を表す、請求項
14に記載のエントロピーソース回路。
【請求項16】
開始信号と、入力データと、該入力データに対応する参照データとを出力するように構成された入力データ制御回路と、
入力端子及び出力端子を有するデジタル回路であって、該デジタル回路の入力端子は前記入力データを受信するように構成されている、デジタル回路と、
前記デジタル回路の出力端子に連結され、前記参照データを受信するように構成された判定回路であって、前記デジタル回路の出力端子で生成される出力は前記参照データと等しい場合、該判定回路は判定信号を生成する、判定回路と、
前記入力データ制御回路及び前記判定回路に連結され、前記開始信号を受信し、前記開始信号及び前記判定信号にしたがってエントロピーデータを生成するように構成された時間デジタル変換器(TDC)と、
を含むエントロピーソース回路であって、
前記入力データ制御回路は、
システムクロックにしたがって、前記入力データを前記デジタル回路に送信するタイミングを制御するように構成された第1のフリップフロップと、
前記システムクロックにしたがって、前記開始信号を前記TDCに送信するタイミングを制御するように構成された第2のフリップフロップと、
前記第1のフリップフロップに連結され、前記開始信号にしたがって、更新された入力データを前記第1のフリップフロップの入力端子に送信するかどうかを制御するように構成された第1のセレクタと、
前記システムクロックにしたがって、前記参照データを前記判定回路に送信するタイミングを制御するように構成された第3のフリップフロップと、
前記第3のフリップフロップに連結され、前記開始信号にしたがって、更新された参照データを前記第3のフリップフロップの入力端子に送信するかどうかを制御するように構成された第2のセレクタと、
を含む
、エントロピーソース回路。
【請求項17】
前記エントロピーソース回路はデジタルシステムに連結され、該デジタルシステムはクリティカルパスを含み、該クリティカルパスの入力端子及び出力端子はそれぞれ前記第1のセレクタ及び前記第2のセレクタに連結され、前記クリティカルパスに対応する論理演算は、前記デジタル回路によって前記入力データに対して実行される論理演算に等しい、請求項
16に記載のエントロピーソース回路。
【請求項18】
前記デジタルシステムは複数のデジタル信号経路を含み、前記クリティカルパスは該複数のデジタル信号経路のうちの遅延が最も長いデジタル信号経路である、請求項
17に記載のエントロピーソース回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エントロピーメカニズムを生成することに関し、より具体的には、デジタル回路の動作時間から乱数性を収集するためのエントロピーソース回路に関する。
【背景技術】
【0002】
現在の電子システムでは、セキュリティ関連の機能で用いられるように構成された乱数発生器が乱数を生成するために通常必要となる。関連技術の乱数発生器は、発振器や熱雑音サンプラー等の本質的に乱数性を有する回路に基づいて、高品質の真の乱数を生成する。しかしながら、これらの回路はアナログ回路であるため、これらの回路の設計を全デジタル設計フローに統合することは困難である。
【0003】
全体的なコスト(例えば、人間のタスク、デザインスケジュール)を効果的に削減するために、全デジタル回路で乱数性を収集する作業を実施することを可能にする新規な方法及び関連アーキテクチャが必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、エントロピーソース回路およびデジタル回路の動作時間から乱数性を収集する方法を提供し、エントロピーソース回路の設計フローを全デジタル設計フローに統合できるようにし、それによって全体的な製造効率を向上させることである。
【0005】
本発明の少なくとも1つの実施形態は、エントロピーソース回路を提供する。エントロピーソース回路はデジタル回路、判定回路及び時間デジタル変換器(TDC)を含み、判定回路はデジタル回路に連結され、TDCは判定回路に連結されている。デジタル回路は、第1の時点で受信された入力データにしたがって、第2の時点で結果データを生成するように構成され、判定回路は、判定信号を生成するために、デジタル回路によって生成される動的出力を用いて参照データに対して判定を行うように構成され、該参照データは結果データと等しい。加えて、TDCは、入力データにしたがって結果データを生成するためのデジタル回路の遅延に対して、判定信号の助けを借りて時間デジタル変換を行い、該遅延に対応するエントロピーデータを生成するように構成され、第1の時点と第2の時点との間の時間差は該遅延を表す。
【0006】
本発明の少なくとも1つの実施形態は、エントロピーソース回路を提供する。エントロピーソース回路は、入力データ制御回路、デジタル回路、判定回路及びTDCを含む。入力データ制御回路は、開始信号と、入力データと、該入力データに対応する参照データとを出力するように構成されている。デジタル回路は入力端子及び出力端子を有し、該デジタル回路の入力端子は入力データを受信するように構成され得る。判定回路はデジタル回路の出力端子に連結され、参照データを受信するように構成され、デジタル回路の出力端子で生成される出力は参照データと等しい場合、該判定回路は判定信号を生成する。加えて、TDCは入力データ制御回路及び判定回路に連結され、開始信号を受信し、開始信号及び判定信号にしたがってエントロピーデータを生成するように構成され得る。
【0007】
本発明の実施形態によって提供されるエントロピーソース回路は、デジタル回路の動作の遅延をデジタル信号に変換できる。遅延は乱数性を有するため、デジタル信号も乱数性を有することができる。関連技術と比較して、本発明は発振器又は熱雑音サンプラー等の追加のアナログ回路を必要としない。そのため、本発明の回路全体の設計をデジタル設計フローに統合でき、全体的な製造効率を効果的に改善できる。
【0008】
本発明のこれらの目的及び他の目的は、様々な図及び図面に示される好ましい実施形態の以下の詳細な説明を読んだ後に当業者にとって間違いなく明らかになる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の一実施形態に係るエントロピーソース回路を示す図である。
【
図2】
図2は、本発明の一実施形態に係る、
図1のデータ及び信号を示す図である。
【
図3】
図3は、本発明の一実施形態に係る、デジタルシステムに連結されたエントロピーソース回路の詳細な実施を示す図である。
【
図4】
図4は、本発明の別の実施形態に係る、エントロピーソース回路の詳細な実施を示す図である。
【
図5】
図5は、本発明の一実施形態に係る、時間デジタル変換器の詳細な実施を示す図である。
【
図6】
図6は、本発明の別の実施形態に係る、時間デジタル変換器の詳細な実施を示す図である。
【
図7】
図7は、本発明の一実施形態に係る、フラグ信号発生器を示す図である。
【
図8】
図8は、本発明の一実施形態に係る、デジタル回路の動作時間から乱数性を収集する方法の動作フローを示す図である。
【発明を実施するための形態】
【0010】
図1は、本発明の一実施形態に係るエントロピーソース回路10を示す図である。
図1に示すように、エントロピーソース回路10は、入力データ制御回路110、出力データ制御回路120、組み合わせ論理回路130等のデジタル回路、コンパレータ140等の判定回路及び時間デジタル変換器(TDC)150を含み得る。本実施形態では、入力データ制御回路110は、入力データDIN
,0、参照データDANS
,0、開始信号VSTART
,0等の外部制御信号、システムクロックCLKSYSを受信し、入力データDIN
,0、参照データDANS
,0、開始信号VSTART
,0に対してタイミング制御を行って、システムクロックCLKSYSのタイミングに基づいて入力データDIN、開始信号VSTARTを出力し得る。具体的には、入力データDINが組合せ論理回路(例えば、システムクロックが引き上げられた時点)に送信された時点で、開始信号V
STARTがTDC150に同時に送信され、開始信号V
STARTに従ってTDC150に始動タイミングの時点を決定させる。
【0011】
加えて、組合せ論理回路130は、入力データDINに従って結果データDREを生成するように構成してもよい。例えば、組合せ論理回路130は、入力データDIN内の一組以上のサブデータに対して論理演算を行って、結果データDRESを生成し得る。入力データDINが組合せ論理回路130に送信される前に、参照データDANSを予めアレンジして、参照データDANSが結果データDRESを等しくなるようにし、コンパレータ140は、VSTOPの等の判定信号を生成するために、組合せ論理回路130から出力されるデータを用いて参照データDANSの判定を行うように構成され得る。組合せ論理回路130が前述の論理演算をまだ完了していない場合(例えば、組み合わせ論理回路130の動的出力が結果データDRESではない場合)、判定信号VSTOPは第1の論理値(例えば論理値「0」)を有し得る。組合せ論理回路130が前述の論理演算を完了すると(例えば、組み合わせ論理回路130の動的出力が結果データDRESと等しい場合)、判定信号VSTOPは第2の論理値(例えば、論理値「1」)を有し得る。他の実施形態では、判定回路は「参照データDANSと結果データDRESが同一であるかどうか」を判定する機能を有する他の回路コンポーネントによって実施され得る。
【0012】
組み合わせ論理回路130が上記の論理演算を完了した時点を表すために、判定信号VSTOPの論理値が変更された時点をアレンジしてもよい。一部の実施形態では、入力データDINを組み合わせ論理回路130に送信するのと同時に、コンパレータ140に参照データDANSを送信してもよいが、本発明はこのような構成に限定されない。他の実施形態では、入力データDINを組み合わせ論理回路130に送信する時点より前に、参照信号DANSがコンパレータ140に送信され得るか又は入力データDINを組み合わせ論理回路130に送信する時点より後に、参照信号DANSがコンパレータ140に送信され得るが、本発明はそのような構成に限定されない。なお、組み合わせ論理回路130が前述の論理演算を完了する前に(例えば、正確な結果データDRESを出力する時点の前に)、参照データDANSをコンパレータ140に送信できる限り、入力データ制御回路110が参照データDANSをコンパレータ140に送信するタイミングは変動し得る。
【0013】
遅延に対応するエントロピーデータDTDCを生成するために、TDC150は、入力データDINにしたがって結果データDRESを生成する組み合わせ論理回路130の遅延に対して、判定信号VSTOPの支援を受けて時間デジタル変換を行うように構成され得る。例えば、組み合わせ論理回路130は第1の時点で入力データDINを受信し、判定信号VSTOPは、組み合わせ論理回路130から出力されたデータは第2の時点で結果データDRESと等しいことを示してもよく、その場合、第1の時点と第2の時点との間の時間差は遅延を表し得る。具体的には、第1の時点と第2の時点との間の期間における組合せ論理回路130の動的出力は無効な値であり得るか、以前の入力データに基づいて生成された出力(例えば、DINの最後のデータ)であり得るか、遅延によりもたらされた一時的な誤った結果(例えば、伝播遅延又は動作遅延)であり得る。そのため、第1の時点と第2の時点との間の期間における組合せ論理回路130の動的出力は、結果データDANSと異なる場合があり、コンパレータ140から出力される判定信号VSTOPは、組合せ論理回路130が正確な結果データDRESをまだ出力していないことを示す第1の論理値であり得る。組合せ論理回路130の動的出力が第2の時点における参照データDANSと等しいこと(つまり、組合せ論理回路130が正確な結果データDRESを出力していることを意味する)をコンパレータ140が検出した場合、判定信号VSTOPが第2の論理値にプル(pulled to)、TDC150は判定信号VSTOPにしたがって停止タイミングの時点を判定し得る。加えて、TDC150は、時間デジタル変換が完了した場合にエントロピーデータDTDCが有効であることを示すフラグ信号VALIDを利用し得るが、本発明はそのような構成に限定されない。出力データ制御回路120は、システムクロックCLKSYSに同期したエントロピーデータDOUT及びフラグ信号VALIDOUTを出力するために、システムクロックCLKSYSにしたがってエントロピーデータDTDC及びフラグ信号VALIDに対してタイミング制御を行い得る。例えば、出力データ制御回路120は、システムクロックCLKSYSの遷移エッジでエントロピーデータDTDC及びフラグ信号VALIDにしたがってエントロピーデータDOUT及びフラグ信号VALIDOUTを生成及び出力し得るが、本発明はこのような構成に限定されない。
【0014】
図2は、本発明の一実施形態に係る、システムクロックCLK
SYS、入力データD
IN、参照データD
ANS、開始信号V
START、決定信号V
STOP、フラグ信号VALID
OUT、エントロピーデータD
TDC等の
図1のデータ及び信号を示す図である。
図2に示すように、
図2に示す開始信号V
STARTの第1の立ち上がりエッジの時点(上述した第1の時点の一例であり得る)、開始信号V
STARTが第1の論理値(例えば、論理値「0」)から第2の論理値(例えば、論理値「1」)に変化する時点で、入力データDINはD
IN[0]であり、参照データD
ANSはD
ANS[0]である場合があり、これは、組み合わせ論理回路130が入力データD
IN[0]を受信し、入力データD
IN[0]に対する論理演算の実行を開始することを意味する。遅延T0の後で、組み合わせ論理回路130は、結果データD
RESを参照データD
ANS[0]と等しくために入力データD
IN[0]に対して行われた論理演算を完了し、コンパレータ140から出力される判定信号V
STOPは、それゆえに第1の論理値から第2の論理値にプルされて、結果データD
RESが参照データD
ANS[0]と等しいことを示し得る。
図2に示す判定信号V
STOPの第1の立ち上がりエッジは、上述した第2の時点の一例であり得る。TDC150は、遅延T0に対応するエントロピーデータD
TDC[0]を生成するために、開始信号V
START及び判定信号V
STOPにしたがって遅延T0に対して時間デジタル変換を行い、TDC150が時間デジタル変換を完了すると、フラグ信号VALID
OUTが第1の論理値から第2の論理値にプルされ得る。同様に、開始信号V
STARTの第2の立ち上がりエッジ(上述した第1の時点の別の例であり得る)の時点では、入力データD
INはD
IN[1]であり、参照データD
ANSはD
ANS[1]であり、これは、組み合わせ論理回路130が入力データD
IN[1]を受信して、入力データD
IN[1]に対する論理演算を開始することを意味する。遅延T1の後で、組み合わせ論理回路130は、結果データD
RESを参照データD
ANS[1]と等しくするために入力データD
IN[1]に対して行われる論理演算を完了し、コンパレータ140から出力される判定信号V
STOPは、結果データD
RESが参照データD
ANS[1]と等しいことを示すために、第1の論理値から第2の論理値にプルされ得る。
図2に示す判定信号V
STOPの第2の立ち上がりエッジは、上述した第2の時点の別の例であり得る。TDC150は、遅延T1に対応するエントロピーデータD
TDC[1]を生成するために、開始信号V
START及び判定信号V
STOPにしたがって、遅延T1に対して時間デジタル変換を行い、TDC150が時間デジタル変換を完了すると、フラグ信号VALID
OUTは第1の論理値から第2の論理値にプルされ得る。
【0015】
なお、組み合わせ論理回路130内の任意の論理ユニット(又は各論理ユニット)の遅延は、ノイズの影響により乱数性を有する場合があり、組み合わせ論理回路130によって任意の入力データに対して行われる論理演算の期間(例えば、遅延T0及びT1)も乱数性を有しするため、TDC150から出力されるエントロピーデータDTDC[0]及びDTDC[1]も乱数性を有し得る。
【0016】
図3は、本発明の一実施形態に係るデジタルシステム50に連結されたエントロピーソース回路30の詳細な実施を示す図であり、エントロピーソース回路は
図1に示すエントロピーソース回路10の一例であり得る。この実施形態では、デジタルシステム50の動作は複数の信号経路を含み、複数のデジタル信号経路のクリティカルパスは、複数のデジタル信号経路のうちの最も遅延の長いデジタル信号経路であり、クリティカルパスに対応する論理演算は、組み合わせ論理回路130によって入力データD
INに対して行われる論理演算と等しい。とりわけ、クリティカルパスは、デジタルシステム50内のクリティカルパスデジタル回路510によって提供される。例えば、組み合わせ論理回路130内の論理ゲートの組み合わせは、クリティカルパスデジタル回路510内の論理ゲートの組み合わせと同一であり得る。
図3に示すように、
図1の実施形態で言及した入力データD
IN,0は、クリティカルパスデジタル回路510の入力端子から得られたデータ(例えば、フリップフロップ520からクリティカルパスデジタル回路510に送信されるデータ)であってもよく、
図1の実施形態で言及されている参照データD
ANS,0は、クリティカルパスデジタル回路510の出力端子から得られたデータ(例えば、入力データD
IN,0に従ってクリティカルパスデジタル回路510によってフリップフロップ530に対して事前に生成された結果データ)であり得る。
【0017】
図3に示すように、組み合わせ論理回路130、コンパレータ140及びTDC150に加えて、エントロピーソース回路30は、フリップフロップ111、フリップフロップ112及びセレクタ113をさらに含み得る。セレクタ113の2つの入力端子(それぞれ「0」及び「1」と表記される)は、フリップフロップ111の出力端子及びクリティカルパスデジタル回路510の入力端子にそれぞれ連結され、セレクタ113の出力端子がフリップフロップ111の入力端子に連結されている。加えて、エントロピーソース回路30はフリップフロップ114及びセレクタ115をさらに含み得る。セレクタ115の2つの入力端子(それぞれ「0」及び「1」と表記される)は、フリップフロップ114の出力端子及びクリティカルパスデジタル回路510の出力端子にそれぞれ連結され、セレクタ115の出力端子はフリップフロップ114の入力端子に連結されている。フリップフロップ111、フリップフロップ112、セレクタ113、フリップフロップ114及びセレクタ115を含む部分は、
図1の実施形態の入力データ制御回路110の一例であり得るが、本発明はこのような構成に限定されない。加えて、エントロピーソース回路30は、フリップフロップ121及び122をさらに含んでもよく、フリップフロップ121及び122を含む部分は、
図1の実施形態の出力データ制御回路120の一例であり得るが、本発明はこのような構成に限定されない。
【0018】
この実施形態では、セレクタ113は、クリティカルパスデジタル回路510の入力端子のデータ(例えば、入力データDIN,0)を、開始信号VSTART,0にしたがってフリップフロップ111の入力端子に送信するかどうかを制御するように構成され得る。フリップフロップ111は、システムクロックCLKSYSにしたがって、入力データDIN,0を組み合わせ論理回路130に送信するタイミング(例えば、入力データDINのタイミング)を制御するように構成され得る。フリップフロップ112は、システムクロックCLKSYSにしたがって、開始信号VSTART,0をTDC150に送信するタイミング(例えばスタート信号VSTARTのタイミング)を制御するように構成され得る。例えば、開始信号VSTART,0の論理値が「0」の場合、セレクタ113は、入力データDINの値が変更しないようにフリップフロップ111の入力端子に送信される入力データDINを選択し得る。開始信号VSTART,0の論理値が「1」の場合、セレクタ113は、入力データDINの値が更新されるようにフリップフロップ111の入力端子に送信される入力データDIN,0を選択し得る。加えて、セレクタ115は、クリティカルパスデジタル回路510の出力端子のデータ(例えば、参照データDANS,0)を、開始信号VSTART,0にしたがってフリップフロップ114の入力端子に送信するかどうかを制御するよう構成され得る。フリップフロップ114は、システムクロックCLKSYSにしたがって、コンパレータ140に参照データDANS,0を送信するタイミング(例えば、参照データDANSのタイミング)を制御するように構成され得る。例えば、開始信号VSTART,0の論理値が「0」の場合、セレクタ115は、参照データDANSの値を変更しないようにフリップフロップ114の入力端子に送信する参照データDANSを選択し得る。開始信号VSTART,0の論理値が「1」の場合、セレクタ115は、参照データDANSの値を更新するためにフリップフロップ114の入力端子に送信する参照データDANS,0を選択し得る。
【0019】
図4は、本発明の別の実施形態に係るエントロピーソース回路40の詳細な実施を示す図であり、エントロピーソース回路40は、
図1に示すエントロピーソース回路10の一例であり得る。
図4に示すように、組み合わせ論理回路130、コンパレータ140及びTDC150に加えて、エントロピーソース回路40はフリップフロップ116、インバータ117及びANDゲート118をさらに含んでもよく、インバータ117の入力端子はフリップフロップ116の出力端子に連結され、インバータ117の出力端子はフリップフロップ116の入力端子に連結されている。ANDゲート118、フリップフロップ116及びインバータ117を含む部分は、
図1の実施形態で言及した入力データ制御回路110の一例であり得るが、本発明はこのような構成に限定されない。この実施形態では、フリップフロップ116は、開始信号VSTART,0及びシステムクロックCLKSYSにしたがって、入力データDIN及び参照データDANSの値を更新するように構成され得る。例えば、ANDゲート118は、開始信号V
START等のタイミング制御信号を生成するために、開始信号V
START,0及びシステムクロックCLK
SYSに対してAND論理演算を行うように構成され得る。フリップフロップ116は、開始信号V
STARTにしたがって入力データD
IN及び参照データD
ANSの値を更新するように構成され得る。インバータ117の出力端子の論理値は、入力データD
IN及び参照データD
ANSの値を表す。
【0020】
この実施形態では、組み合わせ論理回路130は、直列に接続された複数の遅延ユニットD1、D2、・・・、DNを含み、遅延ユニットD1の入力端子は、入力データDINを受信するための組み合わせ論理回路130の入力端子であり、遅延ユニットDNの出力端子は、コンパレータ140に連結される組み合わせ論理回路130の出力端子であり得る。この実施形態では、コンパレータ140は、排他的論理和(XOR)ゲート141を含んでもよく、XORゲート141の第1の入力端子は、組み合わせ論理回路130の出力端子(例えば、遅延ユニットDNの出力端子)に連結され、XORゲート141の第2の入力端子はインバータ117の出力端子に連結され、XORゲート141の出力端子の論理値は決定信号VSTOPを表す。
【0021】
とりわけ、フリップフロップ116の入力端子及び出力端子は論理値が異なり得るため、フリップフロップ116は、開始信号VSTARTの立ち上がりエッジに対応して、インバータ117の出力端子の論理値を変更し得る(すなわち、開始信号VSTARTの立ち上がりエッジに対応して、入力データDIN及び参照データDANSを変更すること)。入力データDIN及び参照データDANSの両方が最初に論理値であり、組み合わせ論理回路130の出力端子のデータも第1の論理値であると仮定すると、コンパレータ140から出力される判定信号VSTOPは、組み合わせ論理回路130の出力端子のデータが参照データDANSと同一であることを示し得る。開始信号VSTARTの立ち上がりに対応して入力データDIN及び参照データDANSが第2の論理値に更新されると、組み合わせ論理回路130の出力端子のデータは参照データDANSが異なることを示すために、コンパレータ140から出力される判定信号VSTOPの論理値が変更され得る。ある期間の遅延が経過した後で、入力データDINの変更に対応して、組み合わせ論理回路130の出力端子のデータが第2の論理値に更新される。このときにコンパレータ140から出力される判定信号VSTOPの論理値は、組み合わせ論理回路130の出力端子のデータが参照データDANSと同一であることを示すために再度変更できる。そのため、TDC150は、エントロピーデータDTDCを生成するために、開始信号VSTART及び判定信号VSTOPの論理値の変化の時点にしたがって上述の時間デジタル変換を行い得る。そのため、遅延ユニットの合計遅延は、エントロピーデータDTDCに対応し得る。
【0022】
本実施形態では、組み合わせ論理回路130の出力端子のデータが参照データDANSと異なる場合、判定信号VSTOPの論理値は「1」であり、組み合わせ論理回路130の出力端子のデータは参照データDANSと同一の場合、判定信号VSTOPの論理値は「0」であるが、本発明はこのような構成に限定されない。一部の実施形態では、コンパレータ140は他の組み合わせ論理回路で実施してもよく、組み合わせ論理回路130の出力端子のデータが参照データDANSと異なる場合、判定信号VSTOPの論理値は「0」であり、組み合わせ論理回路130の出力端子のデータが参照データDANSと同一の場合、判定信号VSTOPの論理値は「1」である。
【0023】
図5は、本発明の一実施形態に係るTDC550の詳細な実施を示す図であり、TDC550は上述したTDC150の一例であり得る。
図5に示すように、TDC550は、直列に接続された複数の遅延ユニットDS
0、DS
1、・・・、DS
(M-1)及びDS
Mを含み(Mは正の整数)、遅延ユニットDS
0、DS
1、・・・、DS
(M-1)及びDS
Mのうちの遅延ユニットDS
0等の第1の遅延ユニットの入力端子は、開始信号V
STARTを受信するように構成され、開始信号V
STARTは上記で言及した第1の時点を示し得る。TDC550は、D型フリップフロップ(DFF)DFF
0、DFF
1、・・・、DFF
(M-1)及びDFF
M等の複数のフリップフロップをさらに含んでもよく、DFF
0、DFF
1、・・・、DFF
(M-1)及びDFF
M(
図5で「D」と表記)の入力端子は、遅延ユニットDS
0、DS
1、・・・、DS
(M-1)及びDS
Mの出力端子にそれぞれ連結され、DFF
0、DFF
1、・・・、DFF
(M-1)及びDFF
Mの各DFFは、エントロピーデータ{TOUT[0]、TOUT[1]、・・・、TOUT[M-1]及びTOUT[M]}}の(M+1)ビットを出力するために、決定信号V
STOPにしたがって、上記で言及した第2の時点で、前述の各DFFの入力端子のデータを各DFFの出力端子(
図5で「Q」と表記)に送信する。例えば、開始信号V
STARTは、論理値「0」から論理値「1」に変更され、開始信号VSTARTの立ち上がりエッジを遅延ユニットDS0から開始して、次の遅延ユニットに転送され得る。決定信号VSTOPが論理値「0」から論理値「1」に変更された場合、DFF
0、DFF
1、・・・、DFF
(M-1)及びDFF
Mは、決定信号V
STOPの立ち上がりエッジに対応して、エントロピーデータ{TOUT[0]、TOUT[1]、・・・、TOUT[M-1]及びTOUT[M]}を出力し得る。この実施形態では、エントロピーデータ{TOUT[0]、TOUT[1]、・・・、TOUT[M-1]及びTOUT[M]}の値は温度計コードの形式で表される。加えて、遅延ユニットDS
0、DS
1、・・・、DS
(M-1)及びDS
Mの各遅延ユニットの遅延をT
SLOWと仮定し、DFF
0、DFF
1、・・・、DFF
(M-1)及びDFF
Mに判定信号V
STOPを送信するためのバッファDF
0、DF
1、・・・、DF
(M-1)及びDF
Mの各バッファの遅延をT
FASTと仮定し、遅延T
SLOWは遅延T
FASTより大きく、TDC550の分解能は(T
SLOW-T
FAST)であり得るが、本発明はこのような構成に限定されない。
【0024】
図6は、本発明の別の実施形態に係るTDC650の詳細な実施を示す図であり、TDC650は上記で言及したTDC150の一例であり得る。
図6に示すように、TDC650はANDゲート651等のクロック制御ロジックを含んでもよく、ANDゲート651の第1の入力端子はTDCクロックf_clkを受信し、ANDゲート651の第2の入力端子は判定信号V
STOP又はその反転信号を受信し得る。とりわけ、ANDゲート651は、TDCクロックf_clk及び判定信号V
STOPに従ってカウントクロックを生成するように構成され、カウントクロックは第1の時点と第2の時点との間の時間間隔内でのみ有効になる。例えば、判定信号V
STOPは、組み合わせ論理回路130の出力端子のデータが参照データD
ANSと異なることを示すために論理値「0」を利用し、組み合わせ論理回路130の出力端子のデータが参照データD
ANSと同一であることを示すために論理値「1」を利用すると仮定した場合、ANDゲート651は、カウントクロックが判定信号VSTOPの立下り(または開始信号V
STARTの立上り)の時点と判定信号V
STOPの立上りの時点との間の間隔内でのみ有効になるように、TDCクロックf_clk及び判定信号V
STOPの反転信号(
図6のANDゲート651の第2の入力端子上に丸で示される)に対してAND論理演算を行い得る。TDC650はカウンター652をさらに含んでもよく、カウンター652はANDゲート651の出力端子に連結されている。この実施形態では、カウンター652は、カウントクロックに従ってエントロピーデータ{BOUT[0]、BOUT[1]、・・・、BOUT[N-1]及びBOUT[N]}等のカウント結果を生成するように構成され、カウント結果は、時間間隔内でカウントクロックがトグルする回数を示し得る。例えば、カウンター652は、DFF
0、DFF
1、・・・、DFF
(N-1)及びDFF
N等の複数のフリップフロップを含んでもよく、DFF
0、DFF
1、・・・、DFF
(N-1)及びDFF
Nの各DFFは、データ入力端子(
図6で「D」と表記)、データ出力端子(
図6で「Q」と表記)、反転データ出力端子(
図6で「QB」と表記)、クロック端子(
図6で三角で示す)及びリセット端子(
図6で「RST」と表記)を含み得る。
図6に示すように、DFF
0のクロック端子はANDゲート651の出力端子に連結され、DFF
0の反転データ出力端子はDFF
0のデータ入力端子に連結されている。DFF
1のクロック端子はDFF
0の反転データ出力端子に連結され、DFF
1の反転データ出力端子はDFF
1のデータ入力端子に連結されている。残りについては、類推により推論してもよく、DFF
Nのクロック端子はDFF
(N-1)の反転データ出力端子に連結され、DFF
Nの反転データ出力端子はDFF
Nのデータ入力端子に連結されている。加えて、DFF
0、DFF
1、・・・、DFF
(N-1)及びDFF
Nのリセット端子はフラグ信号VALIDを受信してもよく、DFF
0、DFF
1、・・・、DFF
(N-1)及びDFF
Nのデータ出力端子は、エントロピーデータ{BOUT[0]、BOUT[1]、・・・、BOUT[N-1]及びBOUT[N]}を出力してもよく、エントロピーデータ{BOUT[0]、BOUT[1]、・・・、BOUT[N-1]及びBOUT[N]}の値はバイナリコードの形式で表される。加えて、TDCクロックf_clkの周波数はシステムクロックCLK
SYSの周波数より大きくてもよく、TDC650の分解能はTDCクロックf_clkの周波数によって決定され得る。
【0025】
図7は、本発明の一実施形態に係るフラグ信号発生器700を示す図であり、
図1に示すエントロピーソース回路10、
図3に示すエントロピーソース回路30及び
図4に示すエントロピーソース回路40のいずれかは、フラグ信号発生器700を含み得る(例えば、TDC150がフラグ信号発生器700を含み得る)。この実施形態では、フラグ信号発生器700は、エントロピーデータD
TDC(又はエントロピーデータD
OUT)が有効かどうかを示すために、システムクロックCLK
SYS、開始信号V
START及び決定信号V
STOPにしたがってフラグ信号VALIDを生成するように構成され得る。フラグ信号VALIDが第1の論理値(例えば、論理値「0」)であり、開始信号V
STARTが第1の論理値であり、決定信号が第2の論理値(例えば、論理値「1」)である条件の下では、フラグ信号VALIDはシステムクロックCLK
SYSの次の立ち上がりエッジの時点で第2の論理値にプルされ得る。フラグ信号VALIDが第2の論理値であり且つ決定信号V
STOPが第2の論理値である条件の下では、フラグ信号VALIDはシステムクロックCLK
SYSの次の立ち上がりエッジの時点で第1の論理値にプルされ得る。
【0026】
図7に示すように、フラグ信号発生器700は、インバータ710、ANDゲート720等の第1のANDゲート、DFF730等の第1のフリップフロップ、ANDゲート740等の第2のANDゲート、DFF750等の第2のフリップフロップ及びXORゲート760を含み得る。この実施形態では、インバータ710は開始信号V
STARTを受信するように構成され得る。ANDゲート720の第1の入力端子はインバータ710の出力端子に連結され、ANDゲート720の第2の入力端子は、決定信号V
STOPを受信するように構成されている。DFF730のデータ入力端子(
図7で「D」と表記)は、ANDゲート720の出力端子に連結され、DFF730のクロック端子(
図7で三角で示す)は、システムクロックCLK
SYSを受信するように構成されている。ANDゲート740の第1の入力端子はインバータ710の出力端子に連結され、ANDゲート740の第2の入力端子はDFF730のデータ出力端子(
図7で「Q」と表記)に連結されている。DFF750のデータ入力端子(
図7で「D」と表記)はANDゲート740の出力端子に連結され、DFF750のクロック端子(
図7で三角で示す)は、システムクロックCLK
SYSを受信するように構成されている。XORゲート760の2つの入力端子は、DFF730及びDFF750のデータ出力端子(
図7で「Q」と表記)にそれぞれ連結され、XORゲート760は、フラグ信号VALIDを生成するために、DFF730の出力及びDFF750の出力に対してXOR論理演算を行うように構成され得る。
【0027】
図8は、本発明の一実施形態に係るデジタル回路の動作時間から乱数性を収集するための方法の動作フローを示す図であり、該方法は、
図1に示すエントロピーソース回路10、
図3に示すエントロピーソース回路30及び
図4に示すエントロピーソース回路40等のエントロピーソース回路に適用可能であり、エントロピーソース回路はデジタル回路を含み得る。なお、
図8に示す動作フローは説明のためだけのものであり、本発明を限定することを意味していない。より具体的には、
図8に示す動作フローに1つ以上のステップが追加され得るか、削除され得るか又は変更され得る。加えて、全体的な結果に支障がなければ、これらのステップを厳密に
図8に示す順序で実行する必要はない。
【0028】
ステップS810で、エントロピーソース回路は、デジタル回路(例えば、組み合わせ論理回路130)を利用して、入力データにしたがって結果データを生成し得る。
【0029】
ステップS820で、エントロピーソース回路は、判定回路(例えば、コンパレータ140)を利用して、デジタル回路から出力されたデータを用いて参照データに対して判定を行って判定信号を生成し得る。参照データは結果データと等しい。
【0030】
ステップS830で、エントロピーソース回路は、TDC(例えば、TDC150)を利用して、判定信号の助けを借りて、デジタル回路の遅延(例えば、デジタル回路によって消費される入力データにしたがって結果データを生成するための遅延)に対して時間デジタル変換を行って、遅延に対応するエントロピー値等のエントロピーデータを生成し得る。
【0031】
要約すると、本発明の実施形態によって提供されるエントロピーソース回路及び方法は、組み合わせ論理回路の動作時間から乱数性を収集することによりエントロピーデータを生成でき、エントロピーソース回路の設計をデジタル設計フローに統合できる。そのため、設計フロー全体の効率を効果的に改善させることができる。加えて、本発明の実施形態は追加コストを大幅に増加させることはない。そのため、本発明は、副作用を導入することなく又は副作用を導入しにくい方法で、設計フロー全体の効率を改善させることができる。
【0032】
当業者であれば、本発明の教示を維持しながら、装置及び方法に多数の修正及び変更が行われ得ることを容易に理解するであろう。したがって、上記の開示は、添付の請求請求の範囲の内容及び範囲によってのみ制限されると解釈すべきである。