(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-19
(54)【発明の名称】プログラムロード方法、装置、コンピュータ読み取り可能媒体及電子機器
(51)【国際特許分類】
G06F 9/445 20180101AFI20250212BHJP
G06F 21/57 20130101ALI20250212BHJP
【FI】
G06F9/445
G06F21/57 350
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024543029
(86)(22)【出願日】2023-01-05
(85)【翻訳文提出日】2024-07-30
(86)【国際出願番号】 CN2023070732
(87)【国際公開番号】W WO2023138392
(87)【国際公開日】2023-07-27
(31)【優先権主張番号】202210055209.2
(32)【優先日】2022-01-18
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523037233
【氏名又は名称】北京有竹居▲網▼絡技▲術▼有限公司
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】グウ,ジョンハオ
(72)【発明者】
【氏名】ゴオ,シジエン
(72)【発明者】
【氏名】シェン,シアン
(72)【発明者】
【氏名】ヤン,シャオボ
(72)【発明者】
【氏名】ジュ,ジンジエ
(72)【発明者】
【氏名】ジャン,ボ
(72)【発明者】
【氏名】ジャン,ヨンスウ
(72)【発明者】
【氏名】ジャン,ユイ
(72)【発明者】
【氏名】ワン,ジエン
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AE31
5B376EA08
5B376EA24
(57)【要約】
本開示は、プログラムロード方法、装置、コンピュータ読み取り可能媒体及電子機器に関する。該方法は、第1速度のプログラムロード速度でフラッシュメモリにおけるbinファイルをロードし、binファイルにおける設定パラメータに基づいて、プログラムロード速度を第1速度よりも大きい第2速度に調整し、そして、第2速度のプログラムロード速度でFSBLをロードすることを含む。binファイルにおける設定パラメータを実行することで、BootromがフラッシュメモリからFSBLをロードする速度を調整する、BootromがFSBLをロードする時間を短縮し、組込み型システムが様々なフラッシュメモリに対応するとともに、ブート時間を重視する場合に適用できる。
【特許請求の範囲】
【請求項1】
電子機器のフラッシュメモリに予め設定されたbinファイルが記憶された前記電子機器に適用される方法であって、
第1速度のプログラムロード速度で、前記binファイルをロードするステップであって、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むステップ、
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を、前記第1速度よりも大きい第2速度に調整するステップ、
前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムFSBLをロードするステップ、を含む、プログラムロード方法。
【請求項2】
前記設定パラメータは、ポート物理層PHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びシリアル周辺インターフェースSPIクロックレートパラメータのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を第2速度に調整するステップは、
前記binファイルにおけるPHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びSPIクロックレートパラメータを取得するステップ、
前記PHYレジスタ設定パラメータに基づいて、前記フラッシュメモリにおけるボードレベル配線PHYレジスタ設定を調整するステップ、
前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするとともに、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、を含む、請求項1に記載の方法。
【請求項4】
前記第2速度に調整された前記プログラムロード速度でFSBLをロードするステップの後は、
前記FSBLのセキュリティ検証を行うステップ、
前記FSBLがセキュリティ検証に合格した場合、前記FSBLを実行するステップ、を更に含む、請求項1に記載の方法。
【請求項5】
前記FSBLのセキュリティ検証を行うステップは、
ロードされた前記FSBLから、前記FSBLの第1暗号化された署名を取得するステップ、
前記第1暗号化された署名を、予め格納された公開鍵によって復号化し、復号化された第1署名を得るステップ、
前記FSBLの署名を計算し、前記FSBLの第2署名を得るステップ、
前記第1署名と前記第2署名とを比較するステップ、
前記第1署名が前記第2署名と同一である場合、前記FSBLが前記セキュリティ検証に合格すると判定するステップ、を含む、請求項4に記載の方法。
【請求項6】
前記電子機器のフラッシュメモリは、SPIフラッシュメモリである、請求項1に記載の方法。
【請求項7】
電子機器のフラッシュメモリに予め設定されたbinファイルが記憶された前記電子機器に適用されるプログラムロード装置であって、
第1速度のプログラムロード速度で前記binファイルをロードするためのロードモジュールであって、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むロードモジュールと、
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を、前記第1速度よりも大きい第2速度に調整するための処理モジュールと、を備え、
前記ロードモジュールは、更に、前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムFSBLをロードするために用いられる、プログラムロード装置。
【請求項8】
前記処理モジュールは、以下のために用いられるものであり、
前記binファイルにおけるPHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びSPIクロックレートパラメータを取得するステップ、
前記PHYレジスタ設定パラメータに基づいて、前記フラッシュメモリにおけるボードレベル配線PHYレジスタ設定を調整するステップ、
前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするとともに、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、を含む、請求項7に記載の装置。
【請求項9】
コンピュータプログラムが記憶されたコンピュータ読み取り可能媒体であって、
前記コンピュータプログラムが処理装置によって実行されると、請求項1~6の何れか1項に記載の方法を実現する、コンピュータ読み取り可能媒体。
【請求項10】
コンピュータプログラムが記憶された記憶装置と、
前記記憶装置における前記コンピュータプログラムを実行する処理装置とを備え、
請求項1~6の何れか1項に記載の方法を実現する、電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本願は、2022年01月18に出願された出願番号が202210055209.2であり、出願名称が「プログラムロード方法、装置、コンピュータ読み取り可能媒体及電子機器」である中国特許出願に基づく優先権を主張し、当該出願に記載されたすべての記載コンテンツが援用により本願に組み込まれている。
【0002】
本開示は、ハードウェアプログラムロードに関しており、特にプログラムロード方法、装置、コンピュータ読み取り可能媒体及電子機器に関する。
【背景技術】
【0003】
Bootrom又はBoot ROM(Read-Only Memory、読み取り専用メモリ)は、CPUチップ埋め込まれたマスクROM又は書き込み保護されたフラッシュメモリの小片で、无法柔軟に補正することができない。組込み型システム(例えば、サーバの様々なアクセラレーターカード)の第1階段ブートローダプログラム(First Stage BootLoader、FSBL)が、シリアルペリフェラルインターフェースフラッシュメモリ(Serial Peripheral Interface Flash、SPIフラッシュメモリ)にある場合、Bootromは、CPUの電源投入後、FSBLをSRAM(Static Random-Access Memory、静的ランダムアクセスメモリ)にロードし、FSBLを検証して実行する必要がある。セキュリティ性の理由から、インプレース実行(eXecute In Place、XIP)であっても、ジャンプして実行する前に、FSBL全体を読み込んで検証する必要がある。
【0004】
組込み型システムは、様々なSPI Nor flash(不揮発性フラッシュメモリ)に対応するため、BootromのSPIコントローラのクロックレートは、比較的に低く(通常10MHzほど)、FSBLのロードに時間が掛かり、ブート時間を重視する場合には適さない。
【発明の概要】
【0005】
該発明の概要の部分は、簡単な形で構想を紹介するために用いられ、これらの構想は、後述の具体的な実施形態の部分において詳細に説明する。該発明の概要部分は、保護請求している技術案の重要な特征又は必須要件を特定することを意図するものではなく、保護請求している技術案の範囲を限定することを意図するものではない。
【0006】
第1局面によれば、本開示は、電子機器に適用されるプログラムロード方法を提供する。該方法は、第1速度のプログラムロード速度で、前記binファイルをロードするステップであり、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むステップと、前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を前記第1速度よりも大きい第2速度に調整するステップと、前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムのFSBLをロードするステップとを含む。
【0007】
第2局面によれば、本開示は、電子機器に適用されるプログラムロード装置を提供する。該装置は、第1速度のプログラムロード速度で、前記binファイルをロードするためのロードモジュールであり、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むロードモジュールと、前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を前記第1速度よりも大きい第2速度に調整するための処理モジュールと備え、前記ロードモジュールは、前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムのFSBLをロードするために更に用いられる。
【0008】
第三局面によれば、本開示は、コンピュータプログラムが記憶されたコンピュータ読み取り可能媒体を提供し、該プログラムは、処理装置によって実行されると、前述のプログラムロード方法を実現する。
【0009】
第4局面によれば、本開示は、コンピュータプログラムが記憶された記憶装置と、前記記憶装置における前記コンピュータプログラムを実行するための処理装置とを備えるコンピュータ機器を提供し、前述のプログラムロード方法を実現する。
【0010】
上述した技術案によれば、第1速度のプログラムロード速度でフラッシュメモリにおけるbinファイルをロードし、binファイルにおける設定パラメータに基づいて、プログラムロード速度を第1速度よりも大きい第2速度調整して、第2速度のプログラムロード速度でFSBLをロードする。binファイルにおける設定パラメータを実行することで、フラッシュメモリからBootromがFSBLをロードする速度を調整し、BootromがFSBLをロードする時間を短縮し、組込み型システムが様々なフラッシュメモリに対応するとともに、ブート時間を重視する場合にも適用することができる。
【0011】
本開示の他の特徴及び利点は、後述の具体的な実施形態の部分において詳細に説明する。
【図面の簡単な説明】
【0012】
本明細書の各実施形態の上述及び他の特徴、利点、及び形態は、添付の図面及び以下の具体的な実施の形態を参照してより明らかになるであろう。添付図面の全てを通して、同じ又は同一の符号は、同じ又は同一の要素を示すことを理解されたい。図面は模式的なものであり、各寸法の比率は、必ずしも現実の物体や要素とは一致しない。
【
図1】
図1は、本開示の例示的な一実施形態に係る電子機器の構成概略図である。
【
図2】
図2は、本開示の例示的な一実施形態に係るプログラムロード方法のフロー図である。
【
図3】
図3は、本開示の例示的な一実施形態に係る状態レジスタのパラメータ配置図である。
【
図4】
図4は、本開示の例示的な一実施形態に係るプログラムロード装置のブロック図である。
【
図5】
図5は、本開示の例示的な一実施形態に係る電子機器の構成概略図である。
【発明を実施するための形態】
【0013】
[符号の説明]
100-電子機器;10-ブートROM;20-SPIフラッシュメモリ;20-プログラムロード装置;201-ロードモジュール;203-処理モジュール; 600-コンピュータ機器;601-処理装置;602-ROM;603-RAM;604-バス;605-I/Oインターフェース;606-入力装置;607-出力装置;608-記憶装置;609-通信装置。
【0014】
以下、添付図面を参照して、本開示の実施形態をより詳細に説明する。添付図面には本開示の特定の実施形態を示しているが、本開示は、様々な形態で実現することができ、本明細書に記載された実施形態に限定されると解釈されるべきではなく、逆に、これらの実施形態は、本開示を徹底的かつ完全に理解するために提供されることを理解されたい。本開示の添付の図面及び実施形態は、例示的な目的にのみ用いられるものであり、本開示の保護範囲を限定することを意図するものではないことを理解されたい。
【0015】
本開示の方法実施形態に記載された各ステップは、異なる順序で及び/又は並列に実行可能であることが理解されるたい。更に、方法実施形態は、追加のステップを含んで、及び/又は図示されたステップの実行を省略してもよい。本開示の範囲は、この点において限定されない。
【0016】
本明細書における用語「含む」及びその変形は、オープンエンドである、つまり、「含むが限定されない」である。用語「~に基づく」は、「少なくとも部分的に~に基づく」である。他の用語についての定義は、後述で説明する。
【0017】
なお、本開示において言及される「第1」、「第2」などの概念は、異なる装置、モジュール又はユニットを区別するために用いられるだけであり、これらの装置、モジュール又はユニットによって実行される機能の順序又は相互の依存関係を限定するために用いられるものではない。
【0018】
なお、本開示において言及される「1つ」及び「複数」の修飾は、限定的ではなく、例示的なものであり、当業者は、文脈上で特に断りがない限り、「1つ又は複数」として理解されるべきである。
【0019】
本開示の実施形態における複数の装置同士の間で会話するメッセージ又は情報の名称は、これらのメッセージ又は情報の範囲を限定するものではなく、説明の目的にのみ用いられるものである。
【0020】
ブートROM(Bootrom)は、CPUの内部ROMに固められたコードであり、Bootromには、プロセスが電源投入又はリセットの際に実行される最初のコードが含まれている。特定のリボンピン又は内部ヒューズの配置によって、どこから実行すべきコードの次の部分をロードするか、及び実行すべきコードの正しさ又は有効性を検証するかを決定することができる。Bootromは、ブート中又はブート後にユーザコードにより使用される他の機能を更に含むことがある。例えば、iPhone(登録商標)が、ROMをブートし、マスクROMに埋め込まれたコードは補正できず、ROMは、フラッシュメモリ(flash)又はUSBから次のレベルのブートローダプログラムをロードし、内蔵RSAアルゴリズムを使用して、ブートローダプログラムの署名を検証し、ROMは、次のレベルのブートローダプログラムに対して加速復号化の機能を提供する。
【0021】
SPI flashは、シリアルペリフェラルインターフェースSPIを介して動作するflash記憶機器である。Flashは、通常、内部記憶構成によって、Nor flashとNand flashの2種類に分けられ、このSPI flash は、Nor flashに属する。SPI flashは、読み書きが遅く、読み書き回数も制限されるため、通常は、変更頻度が低いストレージに用いられる。以前、Nor flashのインターフェースは、パラレル(parallel)、即ち、データ線及びアドレス線を集積回路(Integrated Circuit、IC)のピンと並べて接続する。しかし、その後、当業者は、異なる容量のNor flashがハードウェア上で互換性がないことを判明した。データ線とアドレス線の数が同じではなく、パッケージ大きくなり、プリント回路基板(Printed Circuit Board、PCB)の場所を大きく占有するため、その後、徐々にSPI Nor flashに置換られていた。同時に、異なる容量のSPI Nor flashピンは、互換性も有し、パッケージもより小さいため、現在、很多当業者は、直接、Nor flashをSPI flashに置換する。
【0022】
XIP方式とは、コードをシステムRAM(Random Access Memory、ランダムアクセスメモリ)に読み取ることなく、flash内でアプリケーションを直接実行可能であることを意味する。flash実行とは、Nor flashを初期化することなく、flash内でコードを直接実行可能であることを意味する。ただし、コードの一部のみが実行される、例えばRAMが初期化されることが多い。
【0023】
組込み型システムのFSBLがSPI flashにある場合、Bootromは、CPU電源投入後に、FSBLをSRAMにロードし、SRAMにロードした後に、セキュリティ性のために、該FSBLを実行する前にFSBLの署名を検証する必要がある。XIP方式であっても、該FSBLを実行する前に、FSBL全体を読み込で、署名を検証する必要がある。
【0024】
高速クロック(CLK)に対応するSPIコントローラ(ここの高速は、通常、25MHz以上のクロック周波数、即ちCLK> 25MHz)は、通常、ポート物理層(Port Physical Layer、PHY)が付属している。PHYレジスタは、ボード配線、flashパラメータなどに応じて適合させる必要がある。BootromはCPUチップ内に固められており、これらのPHYレジスタの値を柔軟にカスタマイズすることができない。つまり、高速SPIコントローラは、ジャンパによって該PHYレジスタの値を補正できる場合があっても、該ジャンパによって関連のPHYレジスタを全てカバーできるとは限らない。従って、Bootromは、FSBLを読み込む階段で、SPIコントローラのクロックレートを高く設定でき図、例えば、通常、25MHzを超えることはできない。
【0025】
SPIは、3-wire(線)、4-wire及び 6-wireにそれぞれ対応するように、Single SPI(標準SPI、1クロックで1bitを伝送する)、Dual SPI(2倍SPI、1クロック内2bitを伝送する)及びQuad SPI(4倍SPI、1クロック内で4bitを伝送する)という3つのモードに分けられている。同一クロックにおいて、線数が多いほど、其データ伝送レートが高くなる。ほとんどのSPI flashはQSPI(Quad SPI)に対応するが、CPUは、QSPIを有効にする方式を決定する前に、シリアル・フラッシュメモリ・ディスカバーブル・パラメータ表(Serial Flash Discoverable Parameter、flash SFDP)を読み込む必要がある。これらのロジックは、煩雑であり、Bootromに入れるには適していない。
【0026】
従って、組込み型システムを、様々なSPI Nor flashに対応させるために、BootromのSPIコントローラのクロックレートは、比較的に保守的(10MHz左右)であり、且つSPIのQSPIモードがオンになることはほとんどなく、FSBLをロードする時間が長すぎる。
【0027】
上記の理由により、ブート時間に敏感な場合のSPI flashの適用は大きく制限される。例えば、高速シリアルコンピュータ拡張バス規格(Peripheral component interconnect express、PCIe)ボードの場合、PCIe仕様では、システム電源投入からPCIe初期化完了までの時間が在120ms以内でなければならない。FSBLのサイズが50KBであり、10MHzのSPIクロックを採用すると仮定すると、FSBLをロードする速度は、50K×8/10MHz = 40msとなる。FSBLのロードにのみ40ms掛かる場合、PCIe電源投入の前のハードウェア及びソフトウェア初期化速度は、要求が高すぎることになる。
【0028】
上述した理由により、FSBLをロードする従来の方法は、ブート時間に敏感な場合に適しないため、該問題を解決するために、本開示は、組込み型システムに適用可能なBootromのプログラムロード方法を提示しており、該方法は、BootromがSPI flashからFSBLをロードする時間を短縮する。以下、該方法を詳細に説明する。
【0029】
図1は、本開示の例示的な一実施形態に係る電子機器の構成概略図を示している。
【0030】
電子機器100は、ブートROM(Bootrom)10とSPIフラッシュメモリ(SPI flash)20都を備える。ここで、SPIフラッシュメモリ20は、SPI Nor flashであってもよい。
【0031】
SPIフラッシュメモリ20には、binファイルが記憶されてよい。
【0032】
電子機器のCPU電源投入後、Bootromは、SPIフラッシュメモリ20と通信接続を確立し、Bootromは、先ず、SPIフラッシュメモリ20のセキュリティ性を検証し、SPIフラッシュメモリ20がセキュリティ検証に合格した後、Bootromは、SPIフラッシュメモリ20における関連コードを読み込んで実行することで、関連のパラメータを取得しPHYレジスタを適合させる、又はSPIコントローラのクロックレートを調整してから、SPIフラッシュメモリ20からFSBLを読み込んでセキュリティ検証を行い、FSBLがセキュリティ検証に合格した後、Bootromは、該FSBLを実行する。
【0033】
図2を参照すると、
図2は、本開示の例示的な一実施形態に係るプログラムロード方法のフロー図である。該方法は、以下のステップを含む。
【0034】
ステップS101において、第1速度のプログラムロード速度でbinファイルをロードする。
【0035】
組込み型システムは、様々なSPI Nor flashに対応するために、BootromのSPIコントローラのクロックレートが比較的に低く、10MHzほどである。従って、このステップの第1速度は当分野の合理的な値であり、該値は、人為的な経験に基づいて取得してもよく、又は他の可能な方式で取得してもよい。例えば、第1速度は、SPIコントローラのクロックレートを10MHzとするものであってもよいが、これに限定されるものではない。
【0036】
なお、binファイルは、SPI flashに記憶され、該binファイルには、プログラムロード速度を調整するための設定パラメータが含まれている。該設定パラメータは、PHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、SPIクロックレートパラメータのうちの少なくとも1つを含む。ここで、PHYレジスタ設定パラメータは、SPIが正常に動作できるようにするために、組込み型システムのボードレベル配線のPHYレジスタ設定を調整する、具体的には、SPI各信号の間の位相関係を調整するために用いられる。SPIクロックレートパラメータは、SPIコントローラのクロックレートを調整するために用いられ、フラッシュメモリアダプテーションパラメータは、SPIのQSPIモードを有効にするために用いられる。
【0037】
ステップS102において、binファイルにおける設定パラメータに基づいて、プログラムロード速度を第2速度に調整する。
【0038】
示例的に、SPIを正常に動作できるようにするために、binファイルにおけるPHYレジスタ設定パラメータに基づいて、組込み型システムのボードレベル配線のPHYレジスタ設定を調整する、具体的には、SPIの各信号の間の位相関係を調整する。
【0039】
なお、該第2速度の値は、第1速度よりも大きく、第2速度は、当分野の合理的な値であり、該値は、人為的な経験により取得してもよく、又は他の可能な方式で取得してもよい、例えば、第2速度は、SPIコントローラのクロックレート値を50MHzとするものであってもよいが、これに限定されるものではない。
【0040】
binファイルにおける設定パラメータに基づいて、プログラムロード速度を第2速度に調整する方式は、前記プログラムロード速度を第2速度にするように、binファイルにおけるフラッシュメモリアダプテーションパラメータに基づいてSPIのQSPIモードを有効にすることであってもよい。上述したように、SPIは、3-wire、4-wire及び6-wireにそれぞれ対応するように、上記のSingle SPI、Dual SPI及びQuad SPIの3つのモードにわけられる。同一クロックにおいて、線数が多いほど、そのデータ伝送レートが高くなる。異なる会社から出荷されたflashは、異なるの調整方式に対応し、具体的には、該会社から与えられたflashマニュアルに従って具体的な調整方式を得られるが、本開示において限定されない。例えば、ある会社のflashを例にとって説明する。
図3示すように、状態レジスタ(Status Register)のパラメータ配置図を示している。bit0~bit7は何れもレジスタであり、ここで、QE(Quad Enable)は、通常にbit6レジスタにより制御される、つまり、QSPIモードは、bit6レジスタにより制御される。該bitの値が0又は1であり、QSPIを有効にすること及び有効にしないことを示すに用いられる(即ち、1=Quad Enable、0=not Quad Enable)ため、該Status Registerのbit6レジスタパラメータを調整することで、SPIのQSPIモードを有効にすることができる。
【0041】
或いは、binファイルにおける設定パラメータに基づいてプログラムロード速度を第2速度に調整する方式は、更に、binファイルにおけるSPIクロックレートパラメータに基づいてSPIコントローラのクロックレートを調整することで、プログラムロード速度を第2速度にすることであってもよい。好ましい実施形態では、SPIコントローラのクロックレートを50MHzに調整することができる。
【0042】
或いは、binファイルにおける設定パラメータに基づいて、プログラムロード速度を第2速度に調整する方式は、更に、binファイルにおけるフラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするとともに、プログラムロード速度を第2速度にするように、binファイルにおけるSPIクロックレートパラメータに基づいて、SPIコントローラのクロックレートを調整するものであってもよい。好ましい実施形態では、SPIコントローラのクロックレートを50MHzに調整することができる。
【0043】
ステップS103において、第2速度に調整するプログラムロード速度で、第1階段のロードプログラムのFSBLをロードする。
【0044】
Bootromは、SPI flashから第2速度のプログラムロード速度でFSBLを読み込み、通常、第2速度を第1速度の4-5倍に調整することで、高速でFSBLをロードする目的を達成できる。
【0045】
示例的に、例えば、前述のPCIeボードの場合、PCIe仕様では、システム電源投入からPCIe初期化完了までの時間が120ms以内でなければならない。FSBLが50KBであると仮定すると、第1速度のSPIクロックレート(例えば、10MHz)を採用する場合、FSBLのロードには、50K×8/10MHz = 40msが必要になる。本開示に提案されるプログラムロード方法を採用する場合、まず、第1速度でbinファイルをロードする。binファイルのサイズが500バイトであると仮定すると、SPIのQSPIモードを有効にして、プログラムロード速度を第2速度(例えば、50MHz)場合、FSBLのロードには、500×8 / 10MHz + 50K×8 / (4×50MHz) = 0.4ms + 2ms = 2.4msが必要になる。FSBLをロードする時間の約90%を節約できる。
【0046】
上述した方法により、binファイルにおける設定パラメータを実行することでBootromがフラッシュメモリからFSBLをロードする速度を調整し、BootromがFSBLをロードする時間を短縮し、組込み型システムが様々なフラッシュメモリに対応するとともに、ブート時間を重視する場合に適用することができる。Bootromのブート速度の制限により、SD/MMC関連レジスタを使用せざるを得ない製品は、SPI flashに切り換えることができ、ハードウェアコストを低減することができる。
【0047】
更に、上記の方法は、以下のステップを更に含む。
【0048】
ステップS104において、FSBLのセキュリティを検証する。
【0049】
なお、様々な可能な暗号化アルゴリズムを採用して、FSBLのセキュリティを検証することができる、本開示は、これを限定しない。
【0050】
例示的に、MD5アルゴリズムによってFSBLのセキュリティを検証することを例にとって説明する。通常、FSBL及びFSBLの第1暗号化された署名は、一緒にパッケージ化されて、SPI flashに記憶される。該第1暗号化された署名は、FSBLの署名を秘密鍵で暗号化したものである。ステップS103においてロードされたFSBLから、FSBL及びFSBLの第1暗号化された署名を取得して、Bootromに予め記憶された該秘密鍵に対応する公開鍵で、第1暗号化された署名を復号化して、復号化された第1署名を取得し、FSBLの署名を演算してFSBLの第2署名を取得する。そして、第1署名と第2署名とを比較して、第1署名と第2署名が同じである場合、FSBLがセキュリティ検証に合格したと判定する。
【0051】
ステップS105において、FSBLがセキュリティ検証に合格したの場合、FSBLを実行する。
【0052】
なお、本開示に係るプログラムロード方法の具体的な実施形態は、bootromに1つのプラグインを追加することであってもよい。該プラグインは、FSBLの高速ロードに限定されず、プラグイン中のコードを調整することで他の目的を実現してもよい。例えば、特別な配置をしない場合、前の16Mのアドレス空間にしかアクセスできないflashがある。対応するアクセスアドレス空間にプラグインブートを配置した後、4Gアドレス空間に拡張することができる。
【0053】
以上を纏めて、本開示に係るプログラムロード方法は、第1速度のプログラムロード速度でSPI flashのbinファイルをロードし、binファイルにおける設定パラメータに基づいて、プログラムロード速度を第1速度よりも大きい第2速度に調整し、そして、第2速度のプログラムロード速度でFSBLをロードすることを含む。binファイルにおける設定パラメータを実行することで、BootromがSPI flashからFSBLをロードする速度を調整し、BootromがFSBLをロードする時間を短縮し、組込み型システムを様々なSPI flashに対応させるとともに、ブート時間を重視する場合に適用することができる。
【0054】
図4は、本開示の例示的な一実施形態に係るプログラムロード装置のブロック図である。
図4を参照して、該装置20は、ロードモジュール201及処理モジュール203を備える。
【0055】
該ロードモジュール201は、第1速度のプログラムロード速度で、前記binファイルをロードするために用いられ、前記binファイルは、該プログラムロード速度を調整するための設定パラメータを含む。
【0056】
処理モジュール203は、該binファイルにおける前記設定パラメータに基づいて該プログラムロード速度を第1速度よりも大きい第2速度に調整するために用いられる。
【0057】
該ロードモジュール201は、更に、前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムのFSBLをロードするために用いられる。
【0058】
好ましくは、該設定パラメータは、ポート物理層PHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、シリアルペリフェラルインターフェースSPIクロックレートパラメータのうちの少なくとも1つを含む。
【0059】
好ましくは、該処理モジュール203は、
該binファイルにおけるPHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びSPIクロックレートパラメータを取得し、
該PHYレジスタ設定パラメータに基づいて、該フラッシュメモリにおけるボードレベル配線PHYレジスタ設定を調整する、
又は、該プログラムロード速度を該第2速度にするように、該フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にする、
又は、該プログラムロード速度を該第2速度にするように、該SPIクロックレートパラメータに基づいて、該フラッシュメモリにおけるSPIのクロックレートを調整する、
又は、該プログラムロード速度を該第2速度にするように、該フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にし、該SPIクロックレートパラメータに基づいて、該フラッシュメモリにおけるSPIのクロックレートを調整する。ために用いられる。
【0060】
好ましくは、該処理モジュール203は、更に、
該FSBLのセキュリティを検証するために用いられ、
該FSBLがセキュリティ検証に合格したの場合、該FSBLを実行する。
【0061】
好ましくは、該処理モジュール203は、
ロードされた該FSBLから、該FSBLの第1暗号化された署名を取得し、
予め格納された公開鍵で該第1暗号化された署名を復号化し、復号化された第1署名を得、
該FSBLの署名を演算し、該FSBLの第2署名を得、
該第1署名と該第2署名とを比較し、
当該第1署名と該第2署名とが同じである場合、該FSBLが該セキュリティ検証に合格したと判定するために用いられる。
【0062】
以下、
図5は、本開示の実施形態を実現するための電子機器600の構成概略図である。本開示の実施形態における端末装置としては、例えば、携帯電話、ラップトップコンピュータ、デジタル放送受信機、PDA(パーソナルデジタルアシスタント)、PAD(ポータブルアンドロイド(登録商標)デバイス)、PMP(ポータブルメディアプレイヤー)、車載端末(例えば、車載ナビゲーション端末)、PMP(ポータブルマルチメディアプレイヤー)、車載端末(例えば、車載ナビゲーション端末)等の携帯端末、及び、例えば、デジタルTV、デスクトップコンピュータ等の固定端末を挙げられるが、これらに限定されるものではない。
図5に例示した電子機器は、単なる一例であり、本開示の実施形態の機能や使用範囲を何ら限定するものではない。
【0063】
図5示すように、電子機器600は、読取り専用メモリ(ROM)602に記憶されたプログラム又は記憶装置608からランダムアクセスメモリ(RAM)603にロードされたプログラムに基づいて、様々の適切な動作及び処理を実行可能な処理装置(例えば、中央プロセッサ、グラフィックプロセッサなどの)601を含んでもよい。RAM 603には、電子機器600操作に必要な各種類のプログラム及びデータが更に記憶されている。プロセッサ601、ROM 602及びRAM 603は、バス604を介して互いに接続されている。入力/出力(Input/Output、I/O)インターフェース605もバス604に接続されている。
【0064】
通常、I/Oインターフェース605には、例えば、タッチスクリーン、タッチパネル、キーボード、マウス、カメラ、マイクロフォン、加速度計、ジャイロスコープなどの入力装置606や、例えば、液晶ディスプレイ(LCD)、スピーカー、バイブレータなどの出力装置607や、例えば、磁気テープ、ハードディスクなどの記憶装置608や、通信装置606などが接続されてもよい。通信装置606は、電子機器600が他の機器と無線又は有線で通信してデータを交換することを許容することができる。
図5には、様々な装置を備える電子機器600が示されているが、図示された装置の全てを実施又は具備する必要はないことを理解されたい。より多くの又はより少ない装置を、代替的に実施又は具備してもよい。
【0065】
特に、本開示の実施形態によれば、フロー図を参照して説明していたプロセスは、コンピュータソフトウェハプログラムとして実現されてもよい。例えば、本開示の実施形態は、非一時的なコンピュータ読み取り可能媒体に担持されたコンピュータプログラムを備えるコンピュータプログラム製品を含み、該コンピュータプログラムは、フロー図に示す方法を実行するためのプログラムコードを含む。このような実施形態では、該コンピュータプログラムは、通信装置606によって、ネットワークからダウンロード又はインストールされてもよく、記憶装置608からインストールされてもよく、ROM 602からインストールされてもよい。該コンピュータプログラムが処理装置601によって実行されると、本開示の実施形態の方法において限定される上記の機能が実行される。
【0066】
なお、本開示の上記のコンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体、又はコンピュータ読み取り可能な記憶媒体、又はこれらの任意の組み合わせであってもよい。コンピュータ読み取り可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、又は任意の以上の組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のワイヤを有する電気コネクター、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROM、フラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD-ROM)、光記憶装置、磁記憶装置、又はこれらの任意の適切な組み合わせが挙げられるが、これらに限定されない。本開示では、コンピュータ読み取り可能な記憶媒体は、指令実行システム、装置又は機器によって使用可能な、又はこれらと組み合わせて使用可能なプログラムを具備又は記憶する任意の有形媒体であってもよい。本開示では、コンピュータ読み取り可能信号媒体は、ベースバンドにおいて又はキャリアの一部として伝搬される、コンピュータ読み取り可能のプログラムコードを担持しているデータ信号を具備することができる。このような伝搬データ信号は、様々な形態を採用することができ、例えば、電磁気信号、光信号又は上記の任意の適切な組み合わせが挙げられるが、これらに限定されない。コンピュータ読み取り可能信号媒体は、指令実行システム、装置又はデバイスによって使用可能な、又はこれらと組み合わせて使用可能なプログラムを送信、伝搬又は伝送できれば、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能媒体であってもよい。コンピュータ読み取り可能媒体に含まれるプログラムコードは、任意の適切な媒体で伝送することができる。例えば、電線、光ファイバケーブル、RF(ラジオ)など、又は上記の任意の適切な組み合わせが挙げられるが、これらに限定されない。
【0067】
上記のコンピュータ読み取り可能媒体は、上記の電子機器に含まれてもよく、該電子機器に組み付けられず個別に存在してもよい。
【0068】
本開示の操作を実行するためのコンピュータプログラムコードは、1つ又は複数のプログラムプログラミング言語又はそれらの組み合わせで作成することができ、上記のプログラムプログラミング言語は、例えば、Java、Smalltalk、C++などのオブジェクト指向のプログラムプログラミング言語が挙げられるが、これらに限定されず、例えば、「C」言語又は類似のプログラムプログラミング言語などの通常の手続き型プログラムプログラミング言語も挙げられる。プログラムコードは、ユーザコンピュータにおいて完全に実行されてもよく、部分的にユーザコンピュータにおいて実行されてもよく、スタンドアロンソフトウェアパッケージとして実行されてもよく、部分的にユーザコンピュータにおいて実行され、部分的に遠隔コンピュータにおいて実行されてもよく、完全に遠隔コンピュータ又はサーバに実行されてもよい。遠隔コンピュータを使用する場合、遠隔コンピュータは、例えば、エリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)などの任意の種類のネットワークを介して、ユーザコンピュータに接続してもよく、外部コンピュータに接続してもよい(例えば、インターネットサービスプロバイダによってインターネットを介して接続する)。
【0069】
添付図面のうちのフロー図及びブロック図は、本開示の様々な実施形態に係るシステム、方法及びコンピュータプログラム製品の実現可能なアーキテクチャ、機能及び操作を図示している。この点で、フロー図又はブロック図の各ブロックは、所定の論理機能を実現するための実行可能な1つ又は複数の指令を含む、1つのモジュール、プログラムセグメント、又はコードの一部を表すことがある。代替としての幾つかの形態では、ブロックに示された機能は、添付図面に示された順序とは異なる順序で発生してもよいことにも留意すべきである。例えば、連続して表示される2つのブロックは、実際には、実質的に並列して実行可能であるが、関連の機能によっては、逆の順序で実行することもある。なお、ブロック図及び/又はフロー図の各ブロック、及びブロック図及び/又はフロー図におけるブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアによるシステムによって実現してもよく、又は専用ハードウェアとコンピュータ指令との組み合わせで実現してもよい。
【0070】
本開示の実施形態について説明していたモジュールは、ソフトウェハで実現してもよく、ハードウェアで実現してもよい。ここで、モジュールの名称はその自体を限定しない場合がある。
【0071】
本明細書で上述した機能は、少なくとも部分的に1つ又は複数のハードウェア論理部件によって実行することができる。例えば、特に限定されず、使用可能な例示的ハードウェア論理部件は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、複合プログラマブルロジックデバイス(CPLD)などが挙げられる。
【0072】
本開示の文脈では、機器読み取り可能媒体は、指令実行システム、装置又は機器によって、又は指令実行システム、装置又は機器と組み合わせて使用されるプログラムを具備又は記憶可能な有形の媒体であってもよい。機器読み取り可能媒体は、機器読み取り可能信号媒体、又は機器読み取り可能格納媒体であってもよい。機器読み取り可能媒体は、電機、磁気、光学、電磁気、赤外線、又は、半導体システム、装置又は機器、又はこれらのコンテンツの任意の適切な組み合わせが挙げられるが、これらに限定されない。機器読み取り可能な記憶媒体のより具体的な示例は、1つ又は複数のワイヤによる電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又はこれらの任意の適切な組み合わせが挙げられる。
【0073】
本開示の1つ又は複数の実施形態によれば、実施例1は、
電子機器のフラッシュメモリに予め設定されたbinファイルが記憶された前記電子機器に適用される方法であって、
第1速度のプログラムロード速度で、前記binファイルをロードするステップであって、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むステップ、
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を、前記第1速度よりも大きい第2速度に調整するステップ、
前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムFSBLをロードするステップ、を含む、プログラムロード方法を提供している。
【0074】
本開示の1つ又は複数の実施形態によれば、実施例2は、
前記設定パラメータは、ポート物理層PHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びシリアル周辺インターフェースSPIクロックレートパラメータのうちの少なくとも1つを含む、実施例1に記載の方法を提供している。
【0075】
本開示の1つ又は複数の実施形態によれば、実施例3は、
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を第2速度に調整するステップは、
前記binファイルにおけるPHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びSPIクロックレートパラメータを取得するステップ、
前記PHYレジスタ設定パラメータに基づいて、前記フラッシュメモリにおけるボードレベル配線PHYレジスタ設定を調整するステップ、
前記プログラムロード速度が第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするステップ、
又は、前記プログラムロード速度が第2速度になるように、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするとともに、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、を含む、実施例1に記載の方法を提供している。
【0076】
本開示の1つ又は複数の実施形態によれば、実施例4は、
前記第2速度に調整された前記プログラムロード速度でFSBLをロードするステップの後は、
前記FSBLのセキュリティ検証を行うステップ、
前記FSBLがセキュリティ検証に合格した場合、前記FSBLを実行するステップ、を更に含む、実施例1に記載の方法を提供している。
【0077】
本開示の1つ又は複数の実施形態によれば、実施例5は、
前記FSBLのセキュリティ検証を行うステップは、
ロードされた前記FSBLから、前記FSBLの第1暗号化された署名を取得するステップ、
前記第1暗号化された署名を、予め格納された公開鍵によって復号化し、復号化された第1署名を得るステップ、
前記FSBLの署名を計算し、前記FSBLの第2署名を得るステップ、
前記第1署名と前記第2署名とを比較するステップ、
前記第1署名が前記第2署名と同一である場合、前記FSBLが前記セキュリティ検証に合格すると判定するステップ、を含む、実施例4に記載の方法を提供している。
【0078】
本開示の1つ又は複数の実施形態によれば、実施例6は、
前記電子機器のフラッシュメモリは、SPIフラッシュメモリである、実施例1に記載の方法を提供している。
【0079】
本開示の1つ又は複数の実施形態によれば、実施例7は、
電子機器のフラッシュメモリに予め設定されたbinファイルが記憶された前記電子機器に適用されるプログラムロード装置であって、
第1速度のプログラムロード速度で前記binファイルをロードするためのロードモジュールであって、前記binファイルは、前記プログラムロード速度を調整するための設定パラメータを含むロードモジュールと、
前記binファイルにおける前記設定パラメータに基づいて、前記プログラムロード速度を、前記第1速度よりも大きい第2速度に調整するための処理モジュールと、を備え、
前記ロードモジュールは、更に、前記第2速度に調整された前記プログラムロード速度で第1階段のロードプログラムFSBLをロードするために用いられる、プログラムロード装置を提供している。
【0080】
本開示の1つ又は複数の実施形態によれば、実施例8は、
前記処理モジュールは、以下のために用いられるものであり、
前記binファイルにおけるPHYレジスタ設定パラメータ、フラッシュメモリアダプテーションパラメータ、及びSPIクロックレートパラメータを取得するステップ、
前記PHYレジスタ設定パラメータに基づいて、前記フラッシュメモリにおけるボードレベル配線PHYレジスタ設定を調整するステップ、
前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、
又は、前記プログラムロード速度が前記第2速度になるように、前記フラッシュメモリアダプテーションパラメータに基づいて、SPIのQSPIモードを有効にするとともに、前記SPIクロックレートパラメータに基づいて、前記フラッシュメモリにおけるSPIのクロックレートを調整するステップ、を含む、実施例7に記載の装置を提供している。
【0081】
本開示の1つ又は複数の実施形態によれば、実施例9は、
コンピュータプログラムが記憶されたコンピュータ読み取り可能媒体であって、
前記プログラムが処理装置によって実行されると、前記プログラムロード方法を実現する、コンピュータ読み取り可能媒体を提供している。
【0082】
本開示の1つ又は複数の実施形態によれば、実施例10は、
コンピュータプログラムが記憶された記憶装置と、
前記記憶装置における前記コンピュータプログラムを実行する処理装置と、を備え、
前記プログラムロード方法を実現する、電子機器を提供している。
【0083】
上述した説明は、本開示の好ましい実施形態、及び適用技術的原理についての例示に過ぎない。当業者であれば、本開示に係る開示範囲は、上述した技術的特徴の特定を組み合わせた技術案に限定されるものではなく、上述した記載の構想から逸脱するなく、上記の技術的特徴又はその同一の特徴を任意に組み合わせた他の技術案、例えば、上記の特徴を、本明細書に開示された(ただし、これに限定されない)同様な機能を有する技術的特徴に置換した技術案も含むことを理解すべきである。
【0084】
更に、各操作は、特定の順で説明されていたが、これらの操作は、説明した特定の順又は順番で実行すると解釈されるべきではない。マルチタスク及び並列処理は、ある環境において有利になり得る。同様に、上述した記述には、幾つかの具体的な実現の詳細が含まれているが、これらは、本開示の範囲を限定するものであると解釈すべきではない。それぞれの実施形態の文脈で説明した特定の特徴は、単一の実施形態において組み合わせて実現することもできる。逆に、単一の実施形態の文脈で説明した各特徴は、個別に又は任意の適切なサブコンビネーションで、複数の実施形態において実現してもよい。
【0085】
本主題は、構成特徴及び/又は方法論理動作に特有の言語で説明されてきたが、添付の特許請求の範囲によって限定される主題は、必ずしも上述した特定の特徴又は動作に限定されるものではないことを理解されたい。逆に、上述した特定の特徴及び動作は、特許請求の範囲を実現する例示的な形態にすぎない。
【0086】
上述した実施形態に係る装置では、各モジュールが操作を実行する具体的な実施は、該方法に関する実施形態において詳細に説明したが、ここでは、詳細に説明しない。
【国際調査報告】