(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023035930
(43)【公開日】2023-03-13
(54)【発明の名称】コンピュータシステム及びコンピュータシステムのブート方法
(51)【国際特許分類】
G06F 9/4401 20180101AFI20230306BHJP
G06F 8/65 20180101ALI20230306BHJP
G06F 11/20 20060101ALI20230306BHJP
G05B 19/05 20060101ALI20230306BHJP
【FI】
G06F9/4401
G06F8/65
G06F11/20 617
G05B19/05 L
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022132409
(22)【出願日】2022-08-23
(31)【優先権主張番号】202111001644.9
(32)【優先日】2021-08-30
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】522259120
【氏名又は名称】訊牧信息科技(上海)有限公司
【氏名又は名称原語表記】Xunmu Information Technology (Shanghai) Co., Ltd.
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】王 江
【テーマコード(参考)】
5B034
5B376
5H220
【Fターム(参考)】
5B034CC03
5B376AE13
5B376AE62
5B376AE63
5B376CA53
5B376CA55
5B376CA56
5B376CA68
5H220BB09
5H220BB13
5H220BB15
5H220CX04
5H220FF05
5H220JJ17
5H220JJ28
5H220KK08
5H220MM08
(57)【要約】 (修正有)
【課題】ブート動作を確実に成功させるためのコンピュータシステム及びコンピュータシステムのブート方法を提供する。
【解決手段】第1のファームウエアを格納する第1のメモリデバイスと、第2のファームウエアを格納する第2のメモリデバイスと、第1のメモリデバイスの第1のファームウエア又は第2のメモリデバイスの第2のファームウエアを選択するセレクタデバイスと、モニター回路と、第1のメモリデバイス及び第2のメモリデバイスに接続されたプログラマブルデバイスと、選択されたファームウエアをロード及び実行するプロセッサとを備えるコンピュータシステム200であって、コンピュータシステムが電源投入されると、モニター回路は、選択されたファームウエアのロード及び実行に成功したか否かを判断し、失敗した場合は、プロセッサがリセットされた後、セレクタデバイスにより選択された、代替のファームウエアをロード及び実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1のファームウエアを格納するように構成された第1のメモリデバイスと、
第2のファームウエアを格納するように構成された第2のメモリデバイスと、
前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうちの1つを選択されたファームウエアとして選択するためのパススイッチ機能を提供するセレクタデバイスを備える、前記第1のメモリデバイス及び前記第2のメモリデバイスに接続されたプログラマブルデバイスと、
前記パススイッチ機能に基づいて前記選択されたファームウエアをロード及び実行する、前記プログラマブルデバイスに接続されたプロセッサと、
を備え、
コンピュータシステムが電源投入されると、前記プログラマブルデバイスは、前記プロセッサが前記選択されたファームウエアのロード及び実行に成功したか否かを判断し、前記プロセッサが前記選択されたファームウエアのロード又は実行に失敗した場合、前記プログラマブルデバイスが前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアから1つの代替ファームウエアを前記選択されたファームウエアとして選択するように前記パススイッチ機能を実行し、リセット後に前記プロセッサに前記代替ファームウエアをロード及び実行させる、
コンピュータシステム。
【請求項2】
請求項1に記載のコンピュータシステムにおいて、
前記プログラマブルデバイスはモニター回路をさらに備え、前記プログラマブルデバイスは前記モニター回路を介して前記プロセッサが前記選択されたファームウエアのロード及び実行に成功したか否かを判断するように構成され、
前記コンピュータシステムが電源投入されると、前記モニター回路がタイマーをスタートさせ、
前記モニター回路が、タイマーがオーバーフローしていることを示すオーバーフロー信号を送信すると、前記プログラマブルデバイスは、前記プロセッサが前記選択されたファームウエアのロード又は実行に失敗したと判断する、
コンピュータシステム。
【請求項3】
請求項2に記載のコンピュータシステムにおいて、
前記プロセッサが前記選択されたファームウエアのロード及び実行に成功した場合、前記プロセッサはチップレベルバスを介して前記モニター回路をオフにし、その後、オペレーションシステムとアプリケーションソフトウエアをロードする、
コンピュータシステム。
【請求項4】
請求項1に記載のコンピュータシステムにおいて、
前記プロセッサは、前記プロセッサのリセットをトリガーするためのリセットピンを備え、
前記リセットピンは、前記プログラマブルデバイスに接続され、
前記プログラマブルデバイスがリセット信号を受信又は生成すると、前記プログラマブルデバイスが前記リセットピンを介して前記リセット信号を伝送し、前記プロセッサをリセットする、
コンピュータシステム。
【請求項5】
請求項1に記載のコンピュータシステムにおいて、
前記セレクタデバイスはチップセレクト回路であり、前記パススイッチ機能はチップセレクト信号である、
コンピュータシステム。
【請求項6】
請求項1に記載のコンピュータシステムにおいて、
前記第2のメモリデバイスの前記第2のファームウエアがデフォルトで前記選択されたファームウエアとして構成され、
前記コンピュータシステムがファームウエアのアップグレードを実行する時、前記プロセッサが前記第2のファームウエアをアップグレードできるように、前記セレクタデバイスは前記第2のメモリデバイスをデフォルトで選択するように構成され、
前記第2のファームウエアのアップグレードが完了すると、前記プロセッサは前記第2のファームウエアをロード及び実行するためにリセットされ、
前記プログラマブルデバイスは、前記プロセッサが前記第2のファームウエアのロード又は実行に失敗したと判断した時、前記セレクタデバイスは、前記プロセッサがリセット後に前記第1のファームウエアをロード及び実行するために、前記第1のメモリデバイスを選択するように前記パススイッチ機能を実行する、
コンピュータシステム。
【請求項7】
請求項6に記載のコンピュータシステムにおいて、
前記プログラマブルデバイスは、前記プロセッサが前記第2のファームウエアのロード又は実行に失敗したと判断した時、前記第2のファームウエアを復元するために、前記プロセッサがリセット後に失敗信号に基づいてプログラムをトリガーすることができるように失敗信号を生成する、
コンピュータシステム。
【請求項8】
第1のメモリデバイスに第1のファームウエアを提供するステップと、
第2のメモリデバイスに第2のファームウエアを提供するステップと、
前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうちの1つを選択されたファームウエアとして選択するためのパススイッチ機能を実行するステップと、
前記パススイッチ機能によって選択されたファームウエアをロードして実行するステップと、
コンピュータシステムが電源投入されると、前記選択されたファームウエアのロード及び実行に成功したか否かを判断するステップと、
前記コンピュータシステムが前記選択されたファームウエアのロード又は実行に失敗した場合、前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうち1つの代替ファームウエアを前記選択されたファームウエアとして選択するように前記パススイッチ機能を実行し、リセット後に前記代替の選択されたファームウエアを実行してロードするステップと、を含む、
コンピュータシステムのブート方法。
【請求項9】
請求項8に記載のコンピュータシステムのブート方法において、
モニター回路を介して前記選択されたファームウエアのロード及び実行に成功したか否かを判断するステップと、
前記コンピュータシステムが電源投入されると、前記モニター回路がタイマーをスタートさせるステップと、
前記タイマーがオーバーフローすると、前記モニター回路がオーバーフロー信号を送信するステップと、
をさらに含み、
前記オーバーフロー信号は前記選択されたファームウエアのロード及び実行に成功したか否かを示す、
コンピュータシステムのブート方法。
【請求項10】
請求項9に記載のコンピュータシステムのブート方法において、
前記選択されたファームウエアのロード及び実行に成功したと判断された時、前記モニター回路をオフにし、その後、オペレーションシステムとアプリケーションソフトエアをロードするステップをさらに含む、
コンピュータシステムのブート方法。
【請求項11】
請求項9に記載のコンピュータシステムのブート方法において、
前記パススイッチ機能はチップセレクト信号を送信することを含む、コンピュータシステムのブート方法。
【請求項12】
請求項9に記載のコンピュータシステムのブート方法において、
前記第2のメモリデバイスの前記第2のファームウエアがデフォルトで前記選択されたファームウエアとして選択され、前記コンピュータシステムがアップグレードされると、デフォルトで前記第2のファームウエアがアップグレードされるステップと、
前記第2のファームウエアがアップグレードされると、前記第2のファームウエアをロード及び実行するためにリセットされるステップと、
前記コンピュータシステムが前記第2のファームウエアのロード又は実行に失敗したと判断された時、前記第1のメモリデバイスを選択するように前記パススイッチ機能を実行し、リセット後に前記第1のファームウエアをロード及び実行するステップと、をさらに含む、
コンピュータシステムのブート方法。
【請求項13】
請求項12に記載のコンピュータシステムのブート方法において、
前記コンピュータシステムが前記第2のファームウエアのロード又は実行に失敗したと判断された時、リセット後に前記第2のファームウエアを復元するためのプログラムをトリガーするための失敗信号を生成するステップをさらに含む、
コンピュータシステムのブート方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本発明は、2021年8月30日に出願された中国特許出願第202111001644.9号に基づいて優先権を主張し、前記中国特許出願の全ての内容を参考として援用する。
【0002】
本発明は、コンピュータシステム及びコンピュータシステムのブート方法に関し、特に、コンピュータシステムが確実にファームウエアのロード及び実行に成功し、オペレーションシステムを起動できるようにする方法に関するものである。
【背景技術】
【0003】
ほとんどのミディアム及びハイエンドのコンピュータシステムにおいて、ブート用ファームウエアはフラッシュメモリデバイスなどの外部不揮発性メモリデバイスに格納される。コンピュータシステムが電源投入される又はリブートされると、プロセッサはコンピュータシステムをブートするためにフラッシュメモリデバイスからファームウエアをリードする。
【0004】
図1は公知技術におけるコンピュータシステム100のアーキテクチャである。コンピュータシステム100は回線経路102によりメモリデバイス120に接続されるプロセッサ110を備える。メモリデバイス120はファームウエア(図示せず)を格納する。コンピュータシステム100が電源投入されると、プロセッサ110は回線経路102を介してメモリデバイス120からブート用ファームウエアをリードする。
【0005】
バグ修正や機能追加のために、ブート用ファームウエアはアップグレードしなければならない場合がある。コンピュータシステム100は例えばネットワークポート等の外部インタフェース(図示せず)により新しいバージョンのブート用ファームウエアを取得し、メモリデバイス120との間の回線経路102によりオンラインアップグレードを行うことができる。
【0006】
このとき、電源障害、システム異常、ソフトウエア不良などの原因でアップグレードに失敗すると、メモリデバイス120のファームウエアが不完全で実行できなくなり、コンピュータシステム100も機能を喪失する。
【0007】
ファームウエアアップグレードの失敗によるシステム麻痺の大惨事の発生を避けるために、従来のファームウエアのバックアップ方式はコンピュータシステムに2つのフラッシュメモリを配置することである。即ち、コンピュータシステムはマザーボード、プロセッサ及び2つのフラッシュメモリを有し、プロセッサと2つのフラッシュメモリをマザーボードに配置する。
【0008】
また、マザーボードにスイッチ回線経路及びジャンパーキャップを設け、スイッチ回線経路をプロセッサと2つのフラッシュメモリの間に接続し、ジャンパーキャップをマザーボードに挿し込み可能に設け、スイッチ回線経路に接続し、ジャンパーキャップの位置を変更することでスイッチ回線経路の配置を変更でき、プロセッサはスイッチ回線経路により2つのフラッシュメモリのうちの1つに電気的に接続できるようになる。
【0009】
ファームウエアアップグレードに失敗した場合、フラッシュメモリは動作不能になるが、このとき、ユーザはジャンパーキャップを抜き挿しすることでジャンパーキャップの位置を変更でき、こうしてプロセッサは別のフラッシュメモリによりブートできるようになる。そのため、コンピュータシステムはリカバリーモードで動作し、故障したフラッシュメモリデバイスを再びアップグレードさせることができる。また、ジャンパーキャップを手動スイッチに交換することで、バックアップファームウエアを使用することも可能となる。
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記2つの実現方式には以下の欠点が存在する。
【0011】
図1に記載のコンピュータシステム100ではバックアップファームウエアで自動的にブートする方法について考慮されていない。アップグレードに失敗した場合、コンピュータシステムのケースを開けて手動で切り替えを行う必要がある。一方、ファームウエアのリカバリーには、エミュレータなどの補助ツールが必要であり、その際、メモリデバイス120をコンピュータシステム100の外に出して、バーンイン手順を行わなければならない。この操作は極めて不便であり、遠隔操作及び/又はサーバルームにおける現場操作には適さない。
【0012】
2つのフラッシュメモリデバイスアーキテクチャにおけるバックアップファームウエアでブートするための方法は、オペレータの手動介入を必要とするだけでなく、遠隔操作又はサーバルームの現場操作には不向きである。また、チップの位置やジャンパーキャップ、手動スイッチの位置などを熟知している必要があり、使い勝手が悪い。さらに、手作業が必要なため、2つのリカバリーの効率が相対的に低くなり、システムのダウンタイムが長くなる。
【課題を解決するための手段】
【0013】
しかしながら、この概要は、本発明の全ての態様及び実施形態を含むとは限らず、如何なる方法においても限定的又は制限的であることを意図していない。そして、本明細書に開示される発明は当業者によって明白な改良や修正を含むと理解されるべきである。
【0014】
上記の技術的課題を解決するために、本発明の実施形態は、ブート動作を確実に成功させるための方法及びその方法を実行するコンピュータシステムを提供する。
【0015】
コンピュータシステムの一実施形態において、少なくとも以下の構成要素が含まれる。
【0016】
第1のファームウエアを格納するように構成された第1のメモリデバイスと、
第2のファームウエアを格納するように構成された第2のメモリデバイスと、
前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうちの1つを選択されたファームウエアとして選択するためのパススイッチ機能を提供するセレクタデバイスを備える、前記第1のメモリデバイス及び前記第2のメモリデバイスに接続されたプログラマブルデバイスと、
前記パススイッチ機能に基づいて前記選択されたファームウエアをロード及び実行する、前記プログラマブルデバイスに接続されたプロセッサと、
を備えるコンピュータシステムであって、
前記コンピュータシステムが電源投入されると、前記プログラマブルデバイスは前記プロセッサが前記選択されたファームウエアのロード及び実行に成功したか否かを判断することができ、前記プロセッサが前記選択されたファームウエアのロード又は実行に失敗した場合、前記プログラマブルデバイスが前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアから1つの代替ファームウエアを前記選択されたファームウエアとして選択するように前記パススイッチ機能を実行でき、リセット後に前記プロセッサに前記代替ファームウエアをロード及び実行させることができるコンピュータシステム。
【0017】
具体的な実施形態において、
前記プログラマブルデバイスはモニター回路をさらに備え、
前記プログラマブルデバイスは前記モニター回路を介して前記プロセッサが前記選択されたファームウエアのロード及び実行に成功したか否かを判断するように構成され、
前記コンピュータシステムが電源投入されると、前記モニター回路がタイマーをスタートさせることができ、前記モニター回路が、タイマーがオーバーフローしていることを示すオーバーフロー信号を送信すると、前記プログラマブルデバイスは、前記プロセッサが前記選択されたファームウエアのロード又は実行に失敗したと判断することができるコンピュータシステム。
【0018】
具体的な実施形態において、
プロセッサとプログラマブルデバイスは、内部集積チップ(I2C)バスを介して接続することができるコンピュータシステム。
【0019】
具体的な実施形態において、
前記プロセッサは、前記プロセッサのリセットをトリガーするためのリセットピンを備えることができ、
前記リセットピンは、前記プログラマブルデバイスに接続され、
前記プログラマブルデバイスがリセット信号を受信又は生成すると、前記プログラマブルデバイスが前記リセットピンを介して前記リセット信号を伝送し、前記プロセッサをリセットすることができるコンピュータシステム。
【0020】
具体的な実施形態において、
前記プロセッサが前記選択されたファームウエアのロード及び実行に成功した後、前記プログラマブルデバイスを介して前記モニター回路をオフにし、その後、オペレーションシステムとアプリケーションソフトウエアをロードすることができるコンピュータシステム。
【0021】
具体的な実施形態において、
前記プログラマブルデバイスは、コンプレックスプログラムマブルロジックデバイス(CPLD)であってもよい。
【0022】
具体的な実施形態において、
前記セレクタデバイスはチップセレクト可能な回路であり、パススイッチ機能はチップセレクト信号であってもよい。
【0023】
一実施形態において、
前記第2のメモリデバイスの前記第2のファームウエアがデフォルトで前記選択されたファームウエアとして構成され、
前記コンピュータシステムがファームウエアのアップグレードを実行する時、前記プロセッサが前記第2のファームウエアをアップグレードできるように、前記セレクタデバイスは前記第2のメモリデバイスをデフォルトで選択するように構成され、
前記第2のファームウエアのアップグレードが完了すると、前記プロセッサは前記第2のファームウエアをロード及び実行するためにリセットされ、
前記プログラマブルデバイスは、前記プロセッサが前記第2のファームウエアのロード又は実行に失敗したと判断した時、前記セレクタデバイスは、前記プロセッサがリセット後に前記第1のファームウエアをロード及び実行するために、前記第1のメモリデバイスを選択するように前記パススイッチ機能を実行するコンピュータシステム。
【0024】
さらなる実施形態において、
前記プログラマブルデバイスは、前記コンピュータシステムがリセット後に前回のアップグレードの失敗を知るように、失敗を記録する機能を提供し、その後、前記ファームウエアを復元するか否かを決定する。例えば、前記プログラマブルデバイスは、前記プロセッサが第2のファームウエアのロード又は実行に失敗したと判断した時、前記第2のファームウエアを復元するために、前記プロセッサがリセット後に失敗信号に基づいてプログラムをトリガーすることができるように失敗信号を生成するコンピュータシステム。
【0025】
本発明の別の実施形態は、
前記コンピュータシステムの前記プロセッサがファームウエアのロード及び実行に確実に成功できる前記コンピュータシステムに適用されるコンピュータシステムのブート方法であって、前記コンピュータシステムのブート方法は、以下のステップとしてまとめることができる:
第1のメモリデバイスに第1のファームウエアを提供するステップと、
第2のメモリデバイスに第2のファームウエアを提供するステップと、
前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうちの1つを選択されたファームウエアとして選択するためのパススイッチ機能を実行するステップと、
前記パススイッチ機能によって選択されたファームウエアをロードして実行するステップと、
前記コンピュータシステムが電源投入されると、前記選択されたファームウエアのロード及び実行に成功したか否かを判断するステップと、
前記コンピュータシステムが前記選択されたファームウエアのロード又は実行に失敗した場合、前記第1のメモリデバイスの前記第1のファームウエア及び前記第2のメモリデバイスの前記第2のファームウエアのうち1つの代替ファームウエアを前記選択されたファームウエアとして選択するように前記パススイッチ機能を実行し、前記コンピュータシステムのリセット後に前記代替の選択されたファームウエアを実行するためにロードするステップと、を含むコンピュータシステムのブート方法。
【0026】
具体的な実施形態において、
前記モニター回路を介して前記選択されたファームウエアのロード及び実行に成功したか否かを判断するステップと、
前記コンピュータシステムが電源投入されると、前記モニター回路がタイマーをスタートさせるステップと、
前記タイマーがオーバーフローすると、前記モニター回路は、前記プロセッサが前記選択されたファームウエアのロード又は実行に失敗したことを示すオーバーフロー信号を送信するステップと、
をさらに含むコンピュータシステムのブート方法。
【0027】
具体的な実施形態において、
前記選択されたファームウエアのロード及び実行に成功したと判断された時、前記モニター回路をオフにし、その後、オペレーティングシステムとアプリケーションソフトをロードすることができる。
【0028】
具体的な実施形態において、
前記パススイッチ機能はチップセレクト信号を送信することによって実現されてもよい。
【0029】
具体的な実施形態において、
前記第2のメモリデバイスの前記第2のファームウエアがデフォルトで前記選択されたファームウエアとして選択され、前記コンピュータシステムがアップグレードされると、デフォルトで前記第2のファームウエアがアップグレードされるステップと、
前記第2のファームウエアがアップグレードされると、前記コンピュータシステムは、前記第2のファームウエアをロード及び実行するためにリセットされるステップと、
を含むコンピュータシステムのブート方法。
【0030】
前記コンピュータシステムが前記第2のファームウエアのロード又は実行に失敗したと判断された時、前記第1のメモリデバイスを選択するように前記パススイッチ機能を実行し、前記コンピュータシステムのリセット後に前記第1のファームウエアをロード及び実行することができるコンピュータシステムのブート方法。
【0031】
具体的な実施形態において、
前記コンピュータシステムが前記第2のファームウエアのロード又は実行に失敗したと判断された時、リセット後に前記第2のファームウエアを復元するためのプログラムをトリガーするための失敗信号を生成するステップをさらに含むコンピュータシステムのブート方法。
【発明の効果】
【0032】
従来のバックアップファームウエアからブートする方法と比較して、本発明は以下のような明らかな利点を有する:
プログラマブルデバイスを使用することで、コンピュータシステムの分解及び組立の現場作業の問題が解消される。ファームウエアのアップグレードに失敗した場合のバックアップとして、リモートサポートが提供される。アップグレードに失敗しても、コンピュータシステムはその後の復元及び修復できるようにブート可能なままである。上記の機能により、アップグレードと修復のプロセスをリモートで実行することができる。
【0033】
アップグレードされたファームウエアのロード又は実行に失敗した場合、オペレータは、高性能なツールを使用してジャンパーキャップやスイッチを切り替えて現場作業を行うことなく、リモートリカバリーを実行することができる。提案する実施形態は、操作が簡単で、時間、人手、材料資源において著しい効率化を図ることができる。
【0034】
さらに、本発明の実施の形態は、コンピュータシステムの信頼性を向上させることができる。ファームウエアのアップグレードに失敗した場合、人手を介さずに、自動的にバックアップファームウエアからコンピュータシステムをブートさせることができる。コンピュータシステムの故障による大惨事の発生を効果的に回避することができる。
【図面の簡単な説明】
【0035】
新規であると考えられる例示的な実施形態の特徴、並びに例示的な実施形態において特徴的な要素及び/又はステップは添付の特許請求の範囲において具体的に記載されている。図面は説明のためだけのものであり、縮尺通りに描かれてはいない。例示的な実施形態は、組織及び動作方法の両方に関して、添付の図面と合わせて得られる以下の詳細な説明を参照することによって最もよく理解され得る。
【
図1】公知技術におけるコンピュータシステムのアーキテクチャである。
【
図2】本発明の一実施形態によるコンピュータシステムアーキテクチャである。
【
図3】本発明の別の実施形態によるコンピュータシステムアーキテクチャである。
【
図4】本発明の一実施形態によるコンピュータシステムのブート方法のフローチャートである。
【発明を実施するための形態】
【0036】
以下、本発明の例示的な実施形態が示されている添付の図面を参照しながら、本発明をより完全に説明することができる。しかし、本発明は複数の異なる形態で具現化されることが可能であり、本明細書に示される実施形態に限定されると理解されるべきではない。むしろ、これらの実施形態は、本発明が全面的かつ完全であり、当業者に本発明の範囲を完全に伝えることができるように提供される。
【0037】
特定の用語は、本明細書及び以下の特許請求の範囲を通じて、特定の構成要素を指すために使用される。当業者であれば理解できるように、製造業者は、ある構成要素を異なる名称で呼ぶことがある。
【0038】
本明細書では、名称は異なるが機能が異なる構成要素を区別することを意図していない。以下の説明及び特許請求の範囲において、「含む/備える」及び「構成する/からなる」という用語は、自由形式で使用されているため、「含むがこれに限定されない」と理解されるべきである。「実質的に」とは、許容される誤差範囲内で当業者が、特定の誤差範囲で技術課題を解決し、基本的な技術効果を達成することができることを意味する。
【0039】
以下の説明は、本発明を実施するために最良に熟考された態様に関するものである。この説明は、本発明の一般的な原理を説明する目的でなされたものであり、限定的な意味でとらえられるべきではない。本発明の範囲は、添付の特許請求の範囲を参照することによって最もよく確定される。
【0040】
さらに、用語「含む」、「含有する」、及びその変形は、非排他的な包含をカバーすることを意図している。したがって、一連の要素からなるプロセス、方法、物体、又は装置は、これらの要素を含むだけでなく、明示的に指定されていない他の要素を含むか、又はプロセス、方法、物体、又は装置の固有の要素を含む可能性がある。それ以上の限定がない場合、「……を含む」によって限定された要素は、その要素を構成するプロセス、方法、物品、又は装置に存在する他の同じ要素を排除しない。
【0041】
以下の実施形態において、本発明は全体を通して同一又は類似の要素を参照するために、同じ参照数字が使用されている。
【0042】
本発明の実施形態における技術案は、本発明の実施形態における添付図面と組み合わせて、以下に明確かつ完全に説明される。説明された実施形態は、本発明の実施形態の一部であり、実施形態の全てではないことは明らかである。本発明の実施形態に基づき、当業者が創造的な労働を行わずに得た他の全ての実施形態も本発明の保護範囲に属する。
【0043】
図2は本発明の一実施形態によるコンピュータシステムアーキテクチャである。コンピュータシステム200は、プロセッサと、プログラマブルデバイス210と、第1のメモリデバイス202と、第2のメモリデバイス204とを含む。プログラマブルデバイス210は、例えば、コンプレックスプログラムマブルロジックデバイス(CPLD)であるが、これに限定されるものではない。第1のメモリデバイス202及び第2のメモリデバイス204は、例えば、2つのフラッシュメモリデバイスであってもよいが、これに限定されるものではない。プログラマブルデバイス210はセレクタデバイス212を含む。
【0044】
第1のメモリデバイス202と第2のメモリデバイス204はセレクタデバイス212に接続されている。第1のメモリデバイス202及び第2のメモリデバイス204は、プログラマブルデバイス210を介して、さらにプロセッサ110に接続されている。プログラマブルデバイス210は、スイッチング信号に基づいて、セレクタデバイス212を切り替えて、第1のメモリデバイス202又は第2のメモリデバイス204に接続することができる。
【0045】
このアーキテクチャでは、第1のメモリデバイス202及び第2のメモリデバイス204のスイッチング信号はプログラマブルデバイス210によって処理され、第1のメモリデバイス202及び第2のメモリデバイス204の他の信号はプロセッサ110に直接接続されている。セレクタデバイス212の切り替えは、例えば、外部スイッチ装置214によって制御されてもよいが、これに限定されるものではない。いくつかの実施形態において、スイッチデバイス214は統合プログラマブルデバイス210であってもよい。
【0046】
スイッチデバイス214は、外部入力信号を通じて対応するスイッチング信号を生成してもよく、又は、プロセッサ110の制御を通じて対応するスイッチング信号を生成してもよい。
【0047】
いくつかの実施形態において、スイッチデバイス214はプログラマブルデバイス210に統合されている。プログラマブルデバイス210は、スイッチデバイス214を介してコンピュータシステム200をブートするために異なるフラッシュメモリデバイスを選択し、その後、コンピュータシステムを復元するために故障したフラッシュメモリデバイスを再びアップグレードしてもよい。
【0048】
例えば、特定の条件下では、セレクタデバイス212は、プロセッサ110を第1のメモリデバイス202に接続させ、第1のメモリデバイス202からブート用ファームウエアをリードし、プロセッサ110がファームウエアをロード及び実行し、コンピュータシステム200をブートするようにしてもよい。ファームウエアをアップグレードする場合、第1のメモリデバイス202のファームウエアはデフォルトでアップグレードされてもよい。プログラマブルデバイス210は、ファームウエアが正常にアップグレードされたか、又は第1のメモリデバイス202にライトされたかを判断するために使用されてもよい。
【0049】
即ち、アップグレード又はライトの手順の完全性及び正確性が判定される。また、プログラマブルデバイス210は、プロセッサ110が第1のメモリデバイス202のファームウエアのロード又はリードに成功したか否かを判断するために使用されてもよい。即ち、プログラムによってロード又はリードされたデータの完全性及び正確性が判定される。
【0050】
プログラマブルデバイス210は、ファームウエアのアップグレードに失敗した、又はロードに失敗したと判断すると、スイッチデバイス214を採用して、コンピュータシステム200をリブートさせ、第2のメモリデバイス204からファームウエアをロードさせる。いくつかの実施形態において、セレクタデバイス212の切り替えは、プログラマブルロジックデバイス又はセレクタデバイスを用いたチップセレクト可能なスイッチ回路などのチップセレクト機構を介するものである。
【0051】
図3は本発明の別の実施形態によるコンピュータシステムアーキテクチャである。本実施形態は、プログラマブルデバイス310にモニター回路302を実装している。モニター回路302は前述のスイッチデバイスの機能を実現するために用いることができる。プログラマブルデバイス310のロジック設計を通じて、従来のファームウエアバックアップ方式における欠点が克服される。モニター回路302の動作原理は、ウォッチドッグ機構に類似しており、状況に応じてリアルタイムに対応することで、ファームウエア選択機構を柔軟に実現することができる。
【0052】
プロセッサ110と2つのフラッシュメモリデバイスである第1のメモリデバイス202と第2のメモリデバイス204は、プログラマブルデバイス310を介して接続されている。
【0053】
本実施形態において、プログラマブルデバイス310が第1のメモリデバイス202及び第2のメモリデバイス204のチップセレクトチャネルを処理する部分についてのみ説明する。第1のメモリデバイス202及び第2のメモリデバイス204の他の信号については、主にプロセッサ110により直接接続及び処理されるものであり、本例では特に説明しない。プログラマブルデバイス310はセレクタデバイス312を含む。
【0054】
プログラマブルデバイス310のモニター回路302は、タイマーを有する信号発生器であってもよい。モニター回路302のタイマーのデフォルト閾値は、コンピュータシステムのブートに必要な時間に応じて予め設定することができる。モニター回路302のタイマーがデフォルト閾値を超えると、タイマーはオーバーフローとなる。タイマーのオーバーフローを示す信号が生成されることにより、プログラマブルデバイスは、ファームウエアのロード/実行の失敗があるという状況を認識し、その後のアクションをトリガーすることができるようになる。
【0055】
例えば、タイマーがオーバーフローすると、モニター回路302は、セレクタデバイス312にチップセレクト信号#SLを直接出力して、セレクタデバイス312に、第1チャネルCS0及び第2チャネルCS1が対応する第1のメモリデバイス202又は第2のメモリデバイス204を切り替えさせることが可能である。
【0056】
モニター回路302とプロセッサ110は、プロセッサ110がモニター回路302の切り替えを制御するための制御バス304を介して接続されている。プロセッサ110がファームウエアのロード及び/又は実行に失敗してダウンした場合、モニター回路302をシャットダウンするための信号がコントロールバス304を介して伝送されないことがあり得るため、モニター回路302のタイマーがオーバーフローしてチップセレクト信号#SLをトリガーする。
【0057】
チップセレクト信号#SLを受信した後、セレクタデバイス312は、第1チャネルCS0と第2チャネルCS1の回路経路を切り替え、プロセッサに異なるフラッシュメモリデバイスをアクセスさせる。
【0058】
本実施形態において、コンピュータシステム100は、第1チャネルCS0及び第2チャネルCS1を介して第1のメモリデバイス202及び第2のメモリデバイス204を接続する。プロセッサ110の一般的な設計上の制限により、初期化段階のプロセッサ110は、ファームウエアをロードするために第1チャネルCS0を使用することしかできない。第1チャネルCS0及び第2チャネルCS1の回路経路がプログラマブルデバイス310を通過する時、セレクタデバイス312は回路経路切り替えの機能を実現するために適応可能である。
【0059】
例えば、コンピュータシステム300が電源投入又はリブートされた後、モニター回路302は自動的に第1チャネルCS0を第2のメモリデバイス204に接続し、第2チャネルCS1を第1のメモリデバイス202に接続し始めることができる。タイマーのオーバーフロー後、モニター回路302はチップセレクト信号#SLをセレクタデバイス312に送り、第1チャネルCS0を第1のメモリデバイス202に接続させ、第2チャネルCS1を第2のメモリデバイス204に接続させることができる。
【0060】
さらに、本実施形態のプログラマブルデバイス310では、本来、プロセッサ110をリセットするために用いられるリセット信号を、まずプログラマブルデバイス310に入力し、その後プログラマブルデバイス310の制御によりプロセッサ110に出力してもよい。このように、プログラマブルデバイス310は、プロセッサ110をリセットするタイミングを積極的に決定することができ、モニター回路302及びセレクタデバイス312が、プロセッサ110が必要とする動作条件を準備するのに十分な時間を確保することができる。
【0061】
要約すると、
図3のコンピュータシステム300の具体的な実施形態において、少なくとも以下の構成要素が使用される。まず、第1のメモリデバイス202は、第1ファームウエアを格納するために適応可能であり、第2のメモリデバイス204は、第2ファームウエア(図示せず)を格納する。コンピュータシステム300において、第1のメモリデバイス202と第2のメモリデバイス204を接続するために、プログラマブルデバイス310が使用される。
【0062】
プログラマブルデバイス310は、セレクタデバイス312とモニター回路302を含む。セレクタデバイス312は、選択されたファームウエアとして、第1のメモリデバイス202又は第2のメモリデバイス204を選択するためのパススイッチ機能を提供する。本実施の形態では、パススイッチ機能は、チップセレクト信号、即ち、ロジック回路でハイレベル/ローレベルの信号を生成することにより実現される選択である。したがって、コンピュータシステム300は、物理的な切り替え機構や手動による介入を必要としない。
【0063】
プロセッサ110は、プログラマブルデバイス310と接続され、セレクタデバイス312のパススイッチ機能を介して選択されたファームウエアをロード及び実行する。コンピュータシステム300が電源投入されると、モニター回路302は、プロセッサ110が選択されたファームウエアのロード及び実行に成功したか否かを判断する。失敗した場合、モニター回路302は、チップセレクト信号#SLを介してセレクタデバイス312のパススイッチ機能を変更し、プロセッサ110をリセットし、異なる選択されたファームウエアをロード及び実行させる。
【0064】
一実施形態において、コンピュータシステム300が電源投入されると、モニター回路302はタイマーを開始することができる。モニター回路302のタイマーがオーバーフローする、又はプロセッサ110が所定の制限時間内にブートに成功した結果を報告しないとき、モニター回路302はプロセッサ110が選択されたファームウエアのロード又は実行に失敗したと見なす。
【0065】
一実施形態において、プロセッサ110及びプログラマブルデバイス310は、制御バス304を介して互いに接続されてもよい。
【0066】
具体的な実施形態において、プロセッサ110は、プロセッサ110をリセットするためのトリガー用のリセットピン(図示せず)を含んでもよい。プロセッサ110のリセットピンは、リセットバス306を介してプログラマブルデバイス310によって排他的に制御される。コンピュータシステム300においてリセット信号#RSTが生成されると、リセット信号#RSTはまずプログラマブルデバイス310によって受信され、リセットバス306を介してプロセッサ110に渡され、プロセッサリセットをトリガーする。
【0067】
一方、プログラマブルデバイス310は、プロセッサ110をリセットする必要がある場合、リセット信号#RSTを積極的に生成し、リセットバス306を介してプロセッサ110に送って、プロセッサリセットをトリガーすることもできる。
【0068】
一実施形態において、プロセッサ110が選択されたファームウエアのロード及び実行に成功した場合、制御バス304を介してモニター回路302をスイッチオフすることができる。別のアプローチは、プロセッサ110が選択されたファームウエアのロード及び実行に成功した場合、制御バス304を介してモニター回路302にブート成功信号を返し、モニター回路302のタイマーを停止して、タイマーのオーバーフローを回避することである。
【0069】
モニター回路302がオフにされるか、又はタイマーを停止した後、プロセッサ110は、オペレーティングシステム及びアプリケーションソフトウエアのロードを継続することができ、コンピュータシステム300が正常に機能できるようになる。
【0070】
具体的な実施形態において、プログラマブルデバイス310は、コンプレックスプログラムマブルロジックデバイス(CPLD)であってもよい。
【0071】
図3に記載されたアーキテクチャは、特に、リモートファームウエアのアップグレードが要求されるアプリケーションに適している。コンピュータシステム300がファームウエアのアップグレードを実行するとき、パススイッチ機能は、第2のメモリデバイス204を接続するように構成され、プロセッサ110に第2のファームウエアをアップグレードさせることができる。
【0072】
第2のファームウエアのアップグレードが完了すると、プロセッサ110はリセットされ、第2のファームウエアをロード及び実行する。モニター回路302は、プロセッサ110が第2のファームウエアのロード又は実行に失敗したと判断すると、プロセッサ110がリセット後に第1のファームウエアをロード及び実行するために、パススイッチ機能を変更して第1のメモリデバイス202を接続することができる。
【0073】
さらなる実施形態において、モニター回路302は、コンピュータシステム300が、リセット後に前回のアップグレードが失敗したことを知り、それに応じてファームウエアを復元するか否かを決定するように、失敗を記録する機能を提供する。例えば、モニター回路302は、プロセッサ110が第2のファームウエアのロード又は実行に失敗したと判断した場合、失敗信号が生成されてもよい。プロセッサ110は、リセットされると、第1のファームウエアで正常にブートされる。
【0074】
そして、制御バス304を介してモニター回路302から失敗信号を受信し、前回のアップグレードに失敗したことを知る。なお、第1のファームウエアにファームウエアを自動的に復元する機能が設定されている場合は、それを選択的にトリガーし、第2のファームウエアを復元することができる。復元の方法は、第1のファームウエアを第1のメモリデバイスから第2のメモリデバイスに複製するクローン動作でもよいし、ユーザが定義した他のバックアップアドレスからリカバリー用のファイルをリードして第2のメモリデバイスにライトするリモート動作でもよい。
【0075】
本発明で提案するコンピュータシステム300は、プロセッサ110とファームウエアに基づいて実装される任意のアプリケーションデバイスであってよく、サーバ、スイッチ、組み込みシステム、ネットワークモニタ、ネットワークストレージシステム、又はIoTデバイスからなるが、これらに限定されるものではない。特に、人手によるメンテナンスが困難であり、リモート操作が常に必要となる機器に好適である。
【0076】
本発明の実施形態において明示的に説明しないが、コンピュータシステム300は、通信モジュール、ネットワークインタフェース、マンマシンインタフェース、ストレージシステムなど、動作に必要な他の構成要素を含んでもよい。詳細な機能及びアーキテクチャは、本発明の範囲内ではない。
【0077】
図4は本発明の一実施形態によるコンピュータシステム300のブートアップ方法のフローチャートである。
図3のコンピュータシステム300に基づいて、前述した実施形態は、以下のステップに要約されることができる。
【0078】
まず、ステップ401では、コンピュータシステム300が電源投入される。ステップ403では、コンピュータシステム300が電源投入又はリブートされると、プログラマブルデバイス310はリセットバス306を介してプロセッサ110にリセット信号#RSTを伝送し、同時にモニター回路302を起動させる。その際、セレクタデバイス312のパススイッチ機能により、デフォルト設定又はカスタム設定に従って、第1チャネルCS0が第2のメモリデバイス204に接続され、第2チャネルCS1が第1のメモリデバイス202に接続されるようにする。
【0079】
ステップ405では、プロセッサ110は、第2のメモリデバイス204からファームウエアをロード及び実行し、コンピュータシステムをブートさせる。ステップ407では、ブート手順が成功したか否かを判断する。本実施形態において、ブート成功の判定は、基本的にモニター回路302のタイマー待ち処理である。
【0080】
コンピュータシステムのブートに成功した場合、ステップ413でモニター回路302をオフにする。具体的には、プロセッサ110がファームウエアのロード及び実行に成功した場合、制御バス304を介してモニター回路302をオフにするコマンドを発行したり、モニター回路302のタイマーを停止するコマンドを発行したりすることができる。
【0081】
これに対し、ファームウエアをロードした後のプロセッサ110の実行状態に問題がある場合、モニター回路302は如何なるコマンドも受信せず、最終的にタイマーのオーバーフローが発生することがある。タイマーがオーバーフローすると、プロセッサ110がファームウエアを用いたコンピュータシステムのブートに失敗したと判断されるため、手順はステップ409に進む。
【0082】
ステップ409では、モニター回路302のタイマーのオーバーフローによりブート手順が失敗したと判断される。モニター回路302は、チップセレクト信号#SLを介してセレクタデバイス312に通知し、セレクタデバイス312の回路経路を切り替える。即ち、第1チャネルCS0を第1のメモリデバイス202に再接続し、第2チャネルCS1を第2のメモリデバイス204に再接続する。
【0083】
一方、プログラマブルデバイス310は、リセットバス306を介してプロセッサ110にリセット信号#RSTを出力し、プロセッサ110のリセットをトリガーする。ステップ411では、リセット後のプロセッサ110は、セレクタデバイス312によって選択された回路経路を介して、第1のメモリデバイス202からファームウエアをロード及び実行する。
【0084】
プロセッサ110は、第1のメモリデバイス202のリード及び実行に成功した場合、ステップ413に進み、モニター回路302をオフにする。その後、プロセッサ110は、ステップ415に進み、オペレーティングシステム及びアプリケーションソフトウエアを正常にロードすることができる。
【0085】
本発明のコンピュータシステムのブート方法は、特にコンピュータシステムのアップグレード時に、コンピュータシステム300の正常な動作を保証することができる。一実施形態において、ファームウエアのアップグレードを進める場合、常に一方のメモリデバイスを更新し、他方は常に静止状態を維持することを基本ルールとする。
【0086】
例えば、ファームウエアのアップグレードは、常に第2のメモリデバイス204で行われる。このようにして、一旦アップグレードに失敗しても、コンピュータシステム300は、第1のメモリデバイス202のファームウエアを使用することにより、基本的な機能性を維持することができる。維持された機能性に基づいて、コンピュータシステム300はさらに、第2のメモリデバイス204をリカバーする、又は第2のメモリデバイス204にもう一度アップグレードさせる可能性を保持する。
【0087】
いくつかの実施形態において、プロセッサ110及びプログラマブルデバイス310は、コンピュータシステムがモニター回路302の状態又はブートの理由などの情報をリードすることを容易にするために、I2Cバスを介して相互接続されることができる。また、コンピュータシステム300は、I2Cバスを用いてモニター回路302をオフにする。実施形態において、制御バス304は、I2Cバスである。
【0088】
いくつかの実施形態において、制御バス304はまた、SPIバス又はパラレルバスであってもよい。さらなる実施形態において、プロセッサ110とプログラマブルデバイス310との間の接続を実現するために、異なる種類のバスを適用することも可能である。
【0089】
さらなる実施形態において、コンピュータシステム300のブートに成功するたびに、セレクタデバイス312の構成は、次回のブートのためのデフォルト選択として記憶されることができる。記憶された構成は、第1のメモリデバイス202又は第2のメモリデバイス204の残りのスペースなど、コンピュータシステム300に既存の不揮発性メモリデバイス、又はプログラマブルデバイス310内に組み込まれた不揮発性メモリデバイスを採用することが可能である。
【0090】
さらなる実施形態において、モニター回路302のタイマーのオーバーフロー閾値は、ソフトウエアによって変更することができる。例えば、オーバーフロー閾値に関する構成をプログラマブルデバイス310に格納し、モニター回路302がオンになったときに、格納された構成を瞬時にそれに適用することができる。
【0091】
さらなる実施形態において、セレクタデバイス312の構成は、モニター回路302のチップセレクト信号#SLによってのみならず、ソフトウエアによっても調整可能なものとすることができる。
【0092】
既存のファームウエアフラッシュバックアップ方式と比較すると、本発明は明らかな利点を有する。第一に、リモート操作がサポートされる。ファームウエアのアップグレード後にコンピュータシステムがブートに失敗した場合、オペレータは、ジャンパーキャップやスイッチの切り替えなどのツールや現場での作業なしに、コンピュータシステムをリモートでリカバーさせることができる。メンテナンスが簡単で、時間、人手、材料資源において著しい効率化を図ることができる。
【0093】
さらに、コンピュータシステムの信頼性も向上させることができる。ファームウエアのアップグレードに失敗した場合、人手を介さずに自動的にバックアップファームウエアからコンピュータシステムをリブートさせることができる。コンピュータシステムの故障による大惨事の発生を回避することができる。
【0094】
用語「含む」、「含有する」、又はその他の変形は、一連の要素のプロセス、方法、物品、又は装置が、それらの要素を含むだけでなく、明示的にリストされていない他の要素を含むか、又はそのようなプロセス、方法、物品、又は装置に固有の要素を含むような、非排他的包含を意図していると理解される。「からなる」という用語で定義された要素は、その要素を構成するプロセス、方法、成形品、又は装置における同じ要素の存在を排除するものではない。
【0095】
本発明は、その好ましい実施形態に関連して説明されたが、本発明を限定することを意図するものではない。本発明を考慮した当業者にとって、本発明の思想から逸脱しない場合において、ここで具体的に説明した実施形態を超える例示的な実施形態の他の変更が行われ得ることは明らかである。したがって、そのような修正は、添付の特許請求の範囲によってのみ限定される本発明の範囲内にあると理解される。
【外国語明細書】