Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7324637B2 - コンピュータ装置及び再起動方法 - Google Patents
[go: Go Back, main page]

JP7324637B2 - コンピュータ装置及び再起動方法 - Google Patents

コンピュータ装置及び再起動方法 Download PDF

Info

Publication number
JP7324637B2
JP7324637B2 JP2019135516A JP2019135516A JP7324637B2 JP 7324637 B2 JP7324637 B2 JP 7324637B2 JP 2019135516 A JP2019135516 A JP 2019135516A JP 2019135516 A JP2019135516 A JP 2019135516A JP 7324637 B2 JP7324637 B2 JP 7324637B2
Authority
JP
Japan
Prior art keywords
value
link
cpu
chipset
capability
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.)
Active
Application number
JP2019135516A
Other languages
English (en)
Other versions
JP2021018731A (ja
Inventor
祐介 岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PFU Ltd
Original Assignee
PFU Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PFU Ltd filed Critical PFU Ltd
Priority to JP2019135516A priority Critical patent/JP7324637B2/ja
Publication of JP2021018731A publication Critical patent/JP2021018731A/ja
Application granted granted Critical
Publication of JP7324637B2 publication Critical patent/JP7324637B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Retry When Errors Occur (AREA)

Description

本開示は、コンピュータ装置及び再起動方法に関する。
パーソナルコンピュータやサーバ等のコンピュータ装置の機能を拡張するために、Peripheral Component Interconnect Express(以下では「PCIe」と呼ぶことがある)デバイスがコンピュータ装置に接続されることがある。
特開2013-117930号公報
PCIeデバイスには様々なものが存在するため、様々なPCIeデバイスの中には、PCIeデバイスが接続されたコンピュータ装置との相性が悪いものも存在する。コンピュータ装置との相性が悪いPCIeデバイスがコンピュータ装置に接続されると、コンピュータ装置とPCIeデバイスとの間の通信状態が期待通りにならないことがある。
このように、コンピュータ装置とPCIeデバイスとの間の通信状態が期待通りにならなかった際に期待通りの通信状態を獲得するためには、従来は、PCIeデバイスを一旦リセットするために、PCIeデバイスが接続されたコンピュータ装置自体の再起動を試みていた。
開示の技術は、コンピュータ装置自体の再起動が必要となる事態の発生率を減少させることを目的とする。
開示の態様では、外部機器を接続可能なコンピュータ装置は、チップセットと、CPUとを有する。前記チップセットは、前記外部機器と通信可能であって、前記コンピュータ装置と前記外部機器との通信状態を示す値を実測して前記通信状態の実測値を取得する。前記CPUは、前記チップセットの通信能力を示す第一能力値、及び、前記外部機器の通信能力を示す第二能力値のうち小さい方の値を前記通信状態の期待値に設定し、前記実測値と前記期待値とを比較し、前記実測値が前記期待値と異なるときに前記外部機器を再起動させる。
開示の態様によれば、コンピュータ装置自体の再起動が必要となる事態の発生率を減少させることができる。
図1は、本開示の実施例1のコンピュータ装置の構成例を示す図である。 図2は、本開示の実施例1のコンピュータ装置の処理手順の一例を示すフローチャートである。 図3は、本開示の実施例1のコンピュータ装置の動作例を示す図である。 図4は、本開示の実施例2のコンピュータ装置の構成例を示す図である。 図5は、本開示の実施例2のコンピュータ装置の処理手順の一例を示すフローチャートである。 図6は、本開示の実施例2のコンピュータ装置の動作例を示す図である。
以下、本開示の実施例を図面に基づいて説明する。なお、以下の実施例により本開示のコンピュータ装置及び再起動方法が限定されるものではない。また、以下の実施例において同一の機能を有する構成には同一の符号を付す。また、以下では、コンピュータ装置の機能を拡張するために、コンピュータ装置の外部からコンピュータ装置に接続可能なデバイスを「外部機器」と総称することがある。
[実施例1]
<コンピュータ装置の構成>
図1は、本開示の実施例1のコンピュータ装置の構成例を示す図である。図1において、コンピュータ装置2Aは、CPU(Central Processing Unit)21と、メモリ22と、チップセット23と、デバイス検出回路24と、PCIeポート25とを有する。チップセット23は、ケイパビリティレジスタ231と、リンクステータスレジスタ232とを有する。
PCIeポート25にPCIeデバイス3が装着されることにより、CPU21、チップセット23及びデバイス検出回路24の各々と、PCIeデバイス3とが接続される。CPU21及びチップセット23の各々とPCIeデバイス3とが接続されることにより、CPU21及びチップセット23の各々と、PCIeデバイス3とが、相互に通信可能となる。PCIeデバイス3は、レジスタ31を有する。PCIeデバイス3は外部機器の一例である。
<コンピュータ装置における処理手順>
図2は、本開示の実施例1のコンピュータ装置の処理手順の一例を示すフローチャートである。図2に示すフローチャートは、コンピュータ装置2Aの電源投入時(つまり、コンピュータ装置2Aの起動時)に開始される。
ステップS101では、CPU21は、PCIeデバイス3がコンピュータ装置2Aに接続されているか否かを判定する。デバイス検出回路24は、PCIeデバイス3がコンピュータ装置2Aに接続されたときに、PCIeデバイス3がコンピュータ装置2Aに接続されたことを検出し、PCIeデバイス3がコンピュータ装置2Aに接続されたことを検出したことを示す通知(以下では「PCIeデバイス検出通知」と呼ぶことがある)をCPU21へ送信する。コンピュータ装置2Aの電源投入後にCPU21がPCIeデバイス検出通知を受信していないときは、CPU21は、PCIeデバイス3がコンピュータ装置2Aに接続されていないと判定するため(ステップS101:No)、処理はステップS139へ進む。一方で、コンピュータ装置2Aの電源投入後にCPU21がPCIeデバイス検出通知を受信しているときは、CPU21は、PCIeデバイス3がコンピュータ装置2Aに接続されていると判定するため(ステップS101:Yes)、処理はステップS103へ進む。
ステップS103では、CPU21は、第一リトライカウンタn及び第二リトライカウンタmを「0」にリセットする。第一リトライカウンタn及び第二リトライカウンタmは、メモリ22に記憶されている。
次いで、ステップS105では、CPU21は、PCIeポート25を有効にする。
次いで、ステップS107では、CPU21は、トレーニングシーケンスの実行指示(以下では「TS実行指示」と呼ぶことがある)をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってPCIeデバイス3との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、PCIeデバイス3との間で所定の信号を送受信することにより、コンピュータ装置2AとPCIeデバイス3との通信状態を示す値を実測する。例えば、チップセット23は、コンピュータ装置2AとPCIeデバイス3との通信状態を示す値として、チップセット23とPCIeデバイス3との間のリンクスピード及びリンク幅を実測し、リンクスピード実測値及びリンク幅実測値を通信状態の実測値(以下では「通信状態実測値」と呼ぶことがある)として取得する。チップセット23は、取得したリンクスピード実測値及びリンク幅実測値をリンクステータスレジスタ232に格納する。また、チップセット23は、トレーニングシーケンスを実行した結果、PCIeデバイス3がリンクアップした場合は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを「0」(リンクダウン)から「1」(リンクアップ)に更新する。
次いで、ステップS109では、CPU21は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを確認し、PCIeデバイス3がリンクアップしているか否かを判定する。リンクアップ状態フラグが「0」のときは、CPU21は、PCIeデバイス3がリンクアップしていないと判定するため(ステップS109:No)、処理はステップS111へ進む。一方で、リンクアップ状態フラグが「1」のときは、CPU21は、PCIeデバイス3がリンクアップしていると判定するため(ステップS109:Yes)、処理はステップS121へ進む。
ステップS111では、CPU21は、第一リトライカウンタnが所定回数N未満(但し、Nは2以上の整数)であるか否かを判定する。所定回数Nはメモリ22に予め記憶されており、例えば「4」にセットされている。第一リトライカウンタnが所定回数N未満である場合は(ステップS111:Yes)、処理はステップS113へ進み、第一リトライカウンタnが所定回数N以上である場合は(ステップS111:No)、処理はステップS139へ進む。
ステップS113では、CPU21は、PCIeデバイス3をリセットしてPCIeデバイス3を再起動させる。
次いで、ステップS115では、CPU21は、PCIeポート25をリセットする。
次いで、ステップS117では、CPU21は、TS実行指示をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってPCIeデバイス3との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、チップセット23とPCIeデバイス3との間のリンクスピード及びリンク幅(つまり、コンピュータ装置2AとPCIeデバイス3との間のリンクスピード及びリンク幅)を実測し、リンクスピード実測値及びリンク幅実測値を取得する。そして、チップセット23は、取得したリンクスピード実測値及びリンク幅実測値によって、リンクステータスレジスタ232に格納されているリンクスピード実測値及びリンク幅実測値を更新する。また、チップセット23は、トレーニングシーケンスを実行した結果、PCIeデバイス3がリンクアップした場合は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを「0」(リンクダウン)から「1」(リンクアップ)に更新する。
次いで、ステップS119では、CPU21は、第一リトライカウンタnをインクリメントする。ステップS119の処理後、処理はステップS109に戻る。
一方で、ステップS121では、CPU21は、チップセット23の通信能力を示す値(以下では「チップセット能力値」と呼ぶことがある)をケイパビリティレジスタ231から取得する。チップセット能力値は予めケイパビリティレジスタ231に記憶されている。例えば、ケイパビリティレジスタ231には、チップセット能力値として、チップセット23がPCIeデバイス3と通信可能な最大リンクスピード及び最大リンク幅(つまり、コンピュータ装置2AがPCIeデバイス3と通信可能な最大リンクスピード及び最大リンク幅)が記憶されており、CPU21は、ケイパビリティレジスタ231に記憶されている最大リンクスピード及び最大リンク幅をケイパビリティレジスタ231から取得する。
次いで、ステップS123では、CPU21は、PCIeデバイス3の通信能力を示す値(以下では「PCIeデバイス能力値」と呼ぶことがある)をPCIeデバイス3のレジスタ31から取得する。PCIeデバイス能力値は予めレジスタ31に記憶されている。例えば、レジスタ31には、PCIeデバイス能力値として、PCIeデバイス3がチップセット23と通信可能な最大リンクスピード及び最大リンク幅(つまり、PCIeデバイス3がコンピュータ装置2Aと通信可能な最大リンクスピード及び最大リンク幅)が記憶されており、CPU21は、レジスタ31に記憶されている最大リンクスピード及び最大リンク幅をレジスタ31から取得する。
次いで、ステップS125では、CPU21は、ステップS121で取得したチップセット能力値と、ステップS123で取得したPCIeデバイス能力値とを比較し、チップセット能力値及びPCIeデバイス能力値のうち小さい方の値を通信状態の期待値(以下では「通信状態期待値」と呼ぶことがある)に設定する。例えば、CPU21は、チップセット23が通信可能な最大リンクスピード(以下では「チップセットリンクスピード」と呼ぶことがある)とPCIeデバイス3が通信可能な最大リンクスピード(以下では「PCIeリンクスピード」と呼ぶことがある)とを比較し、チップセットリンクスピード及びPCIeリンクスピードのうち小さい方のリンクスピードをリンクスピードの期待値(以下では「リンクスピード期待値」と呼ぶことがある)に設定する。また例えば、CPU21は、チップセット23が通信可能な最大リンク幅(以下では「チップセットリンク幅」と呼ぶことがある)とPCIeデバイス3が通信可能な最大リンク幅(以下では「PCIeリンク幅」と呼ぶことがある)とを比較し、チップセットリンク幅及びPCIeリンク幅のうち小さい方のリンク幅をリンク幅の期待値(以下では「リンク幅期待値」と呼ぶことがある)に設定する。そして、CPU21は、設定したリンクスピード期待値及びリンク幅期待値をメモリ22に格納する。
次いで、ステップS127では、CPU21は、通信状態実測値と通信状態期待値とを比較し、通信状態実測値が通信状態期待値に等しいか否かを判定する。例えば、CPU21は、リンクステータスレジスタ232に格納されているリンクスピード実測値とメモリ22に格納されているリンクスピード期待値とを比較するとともに、リンクステータスレジスタ232に格納されているリンク幅実測値とメモリ22に格納されているリンク幅期待値とを比較する。そして、CPU21は、リンクスピード実測値がリンクスピード期待値に等しく、かつ、リンク幅実測値がリンク幅期待値に等しい場合に、通信状態実測値が通信状態期待値に等しいと判定する。一方で、CPU21は、リンクスピード実測値がリンクスピード期待値と異なるか、または、リンク幅実測値がリンク幅期待値と異なる場合に、通信状態実測値が通信状態期待値と異なると判定する。通信状態実測値が通信状態期待値に等しい場合は(ステップS127:Yes)、処理はステップS139へ進み、通信状態実測値が通信状態期待値と異なる場合は(ステップS127:No)、処理はステップS129へ進む。
ステップS129では、CPU21は、第二リトライカウンタmが所定回数M未満(但し、Mは2以上の整数)であるか否かを判定する。所定回数Mはメモリ22に予め記憶されており、例えば「4」にセットされている。第二リトライカウンタmが所定回数M未満である場合は(ステップS129:Yes)、処理はステップS131へ進み、第二リトライカウンタmが所定回数M以上である場合は(ステップS129:No)、処理はステップS139へ進む。
ステップS131では、CPU21は、PCIeデバイス3をリセットしてPCIeデバイス3を再起動させる。
次いで、ステップS133では、CPU21は、PCIeポート25をリセットする。
次いで、ステップS135では、CPU21は、TS実行指示をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってPCIeデバイス3との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、チップセット23とPCIeデバイス3との間のリンクスピード及びリンク幅を実測し、リンクスピード実測値及びリンク幅実測値を取得する。チップセット23は、取得したリンクスピード実測値及びリンク幅実測値によって、リンクステータスレジスタ232に格納されているリンクスピード実測値及びリンク幅実測値を更新する。
次いで、ステップS137では、CPU21は、第二リトライカウンタmをインクリメントする。ステップS137の処理後、処理はステップS127に戻る。
そして、ステップS139では、CPU21は、OS(Operating System)を起動させる。OSは、コンピュータ装置2Aが有するディスクドライブ(図示せず)に予め記憶されている。
<コンピュータ装置の動作>
図3は、本開示の実施例1のコンピュータ装置の動作例を示す図である。ここでは、一例として、リンクスピードとして2.5Gbps,5Gbps,8Gbpsの何れかを採用することが可能であり、リンク幅としてx1,x2,x4,x8,x16の何れかを採用することが可能である場合について説明する。
図3に示すように、CPU21は、チップセットリンクスピード=5Gbps、かつ、チップセットリンク幅=x8であるチップセット能力値と、PCIeリンクスピード=8Gbps、かつ、PCIeリンク幅=x4であるPCIeデバイス能力値とを比較する。図3では、チップセットリンクスピード(5Gbps)がPCIeリンクスピード(8Gbps)より小さく、PCIeリンク幅(x4)がチップセットリンク幅(x8)より小さいため、CPU21は、通信状態期待値として、チップセットリンクスピード(5Gbps)をリンクスピード期待値に設定し、PCIeリンク幅(x4)をリンク幅期待値に設定する。
よって、図3に示すように、CPU21は、リンクスピード実測値=5Gbps、かつ、リンク幅実測値=x4である場合は、通信状態実測値が通信状態期待値に等しいと判定する。また、CPU21は、リンクスピード実測値=2.5Gbps、かつ、リンク幅実測値=x4である場合は、通信状態実測値が通信状態期待値と異なると判定する。また、CPU21は、リンクスピード実測値=5Gbps、かつ、リンク幅実測値=x1である場合は、通信状態実測値が通信状態期待値と異なると判定する。
以上、実施例1について説明した。
[実施例2]
<コンピュータ装置の構成>
図4は、本開示の実施例2のコンピュータ装置の構成例を示す図である。図4において、コンピュータ装置2Bは、CPU21と、メモリ22と、チップセット23と、デバイス検出回路24と、USB(Universal Serial Bus)ポート26とを有する。
USBポート26にUSBデバイス4が装着されることにより、CPU21、チップセット23及びデバイス検出回路24の各々と、USBデバイス4とが接続される。CPU21及びチップセット23の各々とUSBデバイス4とが接続されることにより、CPU21及びチップセット23の各々と、USBデバイス4とが、相互に通信可能となる。USBデバイス4は、メモリ41を有する。USBデバイス4は外部機器の一例である。
<コンピュータ装置における処理手順>
図5は、本開示の実施例2のコンピュータ装置の処理手順の一例を示すフローチャートである。図5に示すフローチャートは、コンピュータ装置2Bの電源投入時(つまり、コンピュータ装置2Bの起動時)に開始される。
ステップS301では、CPU21は、USBデバイス4がコンピュータ装置2Bに接続されているか否かを判定する。デバイス検出回路24は、USBデバイス4がコンピュータ装置2Bに接続されたときに、USBデバイス4がコンピュータ装置2Bに接続されたことを検出し、USBデバイス4がコンピュータ装置2Bに接続されたことを検出したことを示す通知(以下では「USBデバイス検出通知」と呼ぶことがある)をCPU21へ送信する。コンピュータ装置2Bの電源投入後にCPU21がUSBデバイス検出通知を受信していないときは、CPU21は、USBデバイス4がコンピュータ装置2Bに接続されていないと判定するため(ステップS301:No)、処理はステップS337へ進む。一方で、コンピュータ装置2Bの電源投入後にCPU21がUSBデバイス検出通知を受信しているときは、CPU21は、USBデバイス4がコンピュータ装置2Bに接続されていると判定するため(ステップS301:Yes)、処理はステップS303へ進む。
ステップS303では、CPU21は、第一リトライカウンタn及び第二リトライカウンタmを「0」にリセットする。第一リトライカウンタn及び第二リトライカウンタmは、メモリ22に記憶されている。
次いで、ステップS305では、CPU21は、TS実行指示をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってUSBデバイス4との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、USBデバイス4との間で所定の信号を送受信することにより、コンピュータ装置2BとUSBデバイス4との通信状態を示す値を実測する。例えば、チップセット23は、コンピュータ装置2BとUSBデバイス4との通信状態を示す値として、チップセット23とUSBデバイス4との間のリンクスピードを実測し、リンクスピード実測値を通信状態実測値として取得する。チップセット23は、取得したリンクスピード実測値をリンクステータスレジスタ232に格納する。また、チップセット23は、トレーニングシーケンスを実行した結果、USBデバイス4がリンクアップした場合は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを「0」(リンクダウン)から「1」(リンクアップ)に更新する。
次いで、ステップS307では、CPU21は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを確認し、USBデバイス4がリンクアップしているか否かを判定する。リンクアップ状態フラグが「0」のときは、CPU21は、USBデバイス4がリンクアップしていないと判定するため(ステップS307:No)、処理はステップS309へ進む。一方で、リンクアップ状態フラグが「1」のときは、CPU21は、USBデバイス4がリンクアップしていると判定するため(ステップS307:Yes)、処理はステップS319へ進む。
ステップS309では、CPU21は、第一リトライカウンタnが所定回数N未満(但し、Nは2以上の整数)であるか否かを判定する。所定回数Nはメモリ22に予め記憶されており、例えば「4」にセットされている。第一リトライカウンタnが所定回数N未満である場合は(ステップS309:Yes)、処理はステップS311へ進み、第一リトライカウンタnが所定回数N以上である場合は(ステップS309:No)、処理はステップS337へ進む。
ステップS311では、CPU21は、USBデバイス4の電源をオフにした後、再びオンにしてUSBデバイス4を再起動させる。
次いで、ステップS313では、CPU21は、USBポート26をリセットする。
次いで、ステップS315では、CPU21は、TS実行指示をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってUSBデバイス4との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、チップセット23とUSBデバイス4との間のリンクスピード(つまり、コンピュータ装置2BとUSBデバイス4との間のリンクスピード)を実測し、リンクスピード実測値を取得する。そして、チップセット23は、取得したリンクスピード実測値によって、リンクステータスレジスタ232に格納されているリンクスピード実測値を更新する。また、チップセット23は、トレーニングシーケンスを実行した結果、USBデバイス4がリンクアップした場合は、リンクステータスレジスタ232に記憶されているリンクアップ状態フラグを「0」(リンクダウン)から「1」(リンクアップ)に更新する。
次いで、ステップS317では、CPU21は、第一リトライカウンタnをインクリメントする。ステップS317の処理後、処理はステップS307に戻る。
一方で、ステップS319では、CPU21は、チップセット能力値をケイパビリティレジスタ231から取得する。チップセット能力値は予めケイパビリティレジスタ231に記憶されている。例えば、ケイパビリティレジスタ231には、チップセット能力値として、チップセット23がUSBデバイス4と通信可能な最大リンクスピード(つまり、コンピュータ装置2BがUSBデバイス4と通信可能な最大リンクスピード)が記憶されており、CPU21は、ケイパビリティレジスタ231に記憶されている最大リンクスピードをケイパビリティレジスタ231から取得する。
次いで、ステップS321では、CPU21は、USBデバイス4の通信能力を示す値(以下では「USBデバイス能力値」と呼ぶことがある)をUSBデバイス4のメモリ41から取得する。USBデバイス能力値は予めメモリ41に記憶されている。例えば、メモリ41には、USBデバイス能力値として、USBデバイス4がチップセット23と通信可能な最大リンクスピード(つまり、USBデバイス4がコンピュータ装置2Bと通信可能な最大リンクスピード)が記憶されており、CPU21は、メモリ41に記憶されている最大リンクスピードをメモリ41から取得する。
次いで、ステップS323では、CPU21は、ステップS319で取得したチップセット能力値と、ステップS321で取得したUSBデバイス能力値とを比較し、チップセット能力値及びUSBデバイス能力値のうち小さい方の値を通信状態期待値に設定する。例えば、CPU21は、チップセットリンクスピードとUSBデバイス4が通信可能な最大リンクスピード(以下では「USBリンクスピード」と呼ぶことがある)とを比較し、チップセットリンクスピード及びUSBリンクスピードのうち小さい方のリンクスピードをリンクスピード期待値に設定する。そして、CPU21は、設定したリンクスピード期待値をメモリ22に格納する。
次いで、ステップS325では、CPU21は、通信状態実測値と通信状態期待値とを比較し、通信状態実測値が通信状態期待値に等しいか否かを判定する。例えば、CPU21は、リンクステータスレジスタ232に格納されているリンクスピード実測値とメモリ22に格納されているリンクスピード期待値とを比較する。そして、CPU21は、リンクスピード実測値がリンクスピード期待値に等しい場合に、通信状態実測値が通信状態期待値に等しいと判定する。一方で、CPU21は、リンクスピード実測値がリンクスピード期待値と異なる場合に、通信状態実測値が通信状態期待値と異なると判定する。通信状態実測値が通信状態期待値に等しい場合は(ステップS325:Yes)、処理はステップS337へ進み、通信状態実測値が通信状態期待値と異なる場合は(ステップS325:No)、処理はステップS327へ進む。
ステップS327では、CPU21は、第二リトライカウンタmが所定回数M未満(但し、Mは2以上の整数)であるか否かを判定する。所定回数Mはメモリ22に予め記憶されており、例えば「4」にセットされている。第二リトライカウンタmが所定回数M未満である場合は(ステップS327:Yes)、処理はステップS329へ進み、第二リトライカウンタmが所定回数M以上である場合は(ステップS327:No)、処理はステップS337へ進む。
ステップS329では、CPU21は、USBデバイス4の電源をオフにした後、再びオンにしてUSBデバイス4を再起動させる。
次いで、ステップS331では、CPU21は、USBポート26をリセットする。
次いで、ステップS333では、CPU21は、TS実行指示をチップセット23へ送信することにより、チップセット23にトレーニングシーケンスを実行させる。チップセット23は、CPU21から送信されたTS実行指示に従ってUSBデバイス4との間でトレーニングシーケンスを実行する。チップセット23は、トレーニングシーケンスの実行中において、チップセット23とUSBデバイス4との間のリンクスピードを実測し、リンクスピード実測値を取得する。チップセット23は、取得したリンクスピード実測値によって、リンクステータスレジスタ232に格納されているリンクスピード実測値を更新する。
次いで、ステップS335では、CPU21は、第二リトライカウンタmをインクリメントする。ステップS335の処理後、処理はステップS325に戻る。
そして、ステップS337では、CPU21は、OSを起動させる。OSは、コンピュータ装置2Bが有するディスクドライブ(図示せず)に予め記憶されている。
<コンピュータ装置の動作>
図6は、本開示の実施例2のコンピュータ装置の動作例を示す図である。ここでは、一例として、リンクスピードとして480Mbps,5Gbps,10Gbpsの何れかを採用することが可能である場合について説明する。
図6に示すように、CPU21は、チップセットリンクスピード=5Gbpsであるチップセット能力値と、USBリンクスピード=10GbpsであるUSBデバイス能力値とを比較する。図6では、チップセットリンクスピード(5Gbps)がUSBリンクスピード(10Gbps)より小さいため、CPU21は、通信状態期待値として、チップセットリンクスピード(5Gbps)をリンクスピード期待値に設定する。
よって、図6に示すように、CPU21は、リンクスピード実測値=5Gbpsである場合は、通信状態実測値が通信状態期待値に等しいと判定する。また、CPU21は、リンクスピード実測値=480Mbpsである場合は、通信状態実測値が通信状態期待値と異なると判定する。
以上、実施例2について説明した。
[実施例3]
コンピュータ装置2A,2Bでの上記説明における各処理の全部または一部は、各処理に対応するプログラムをCPU21に実行させることによって実現しても良い。例えば、上記説明における各処理に対応するプログラムがメモリ22に記憶され、プログラムがCPU21によってメモリ22から読み出されて実行されても良い。また、プログラムは、任意のネットワークを介してコンピュータ装置2A,2Bに接続されたプログラムサーバに記憶され、そのプログラムサーバからコンピュータ装置2A,2Bにダウンロードされて実行されたり、コンピュータ装置2A,2Bが読み取り可能な記録媒体に記憶され、その記録媒体から読み出されて実行されても良い。コンピュータ装置2A,2Bが読み取り可能な記録媒体には、例えば、メモリカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、CD-ROM、DVD、及び、Blu-ray(登録商標)ディスク等の可搬の記憶媒体が含まれる。また、プログラムは、任意の言語や任意の記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。また、プログラムは必ずしも単一的に構成されるものに限られず、複数のモジュールや複数のライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものも含む。
以上、実施例3について説明した。
以上のように、本開示のコンピュータ装置(実施例1,2のコンピュータ装置2A,2B)は、外部機器(実施例1のPCIeデバイス3、実施例2のUSBデバイス4)を接続可能であり、チップセット(実施例1,2のチップセット23)と、CPU(実施例1,2のCPU21)とを有する。チップセットは、外部機器と通信可能であり、コンピュータ装置と外部機器との通信状態を示す値を実測して通信状態の実測値(実施例1,2の通信状態実測値)を取得する。CPUは、チップセットの通信能力を示す第一能力値(実施例1,2のチップセット能力値)、及び、外部機器の通信能力を示す第二能力値(実施例1のPCIeデバイス能力値、実施例2のUSBデバイス能力値)のうち小さい方の値を通信状態の期待値(実施例1,2の通信状態期待値)に設定し、実測値と期待値とを比較し、実測値が期待値と異なるときに外部機器を再起動させる。
例えば、実施例1のように、実測値、第一能力値、第二能力値、及び、期待値は、コンピュータ装置と外部機器との間のリンクスピード及びリンク幅であり、CPUは、実測値のリンクスピードまたはリンク幅が期待値のリンクスピードまたはリンク幅と異なるときに外部機器を再起動させる。
また例えば、実施例2のように、実測値、第一能力値、第二能力値、及び、期待値は、コンピュータ装置と外部機器との間のリンクスピードであり、CPUは、実測値のリンクスピードが期待値のリンクスピードと異なるときに外部機器を再起動させる。
こうすることで、外部機器が接続されたコンピュータ装置において、外部装置との通信状態が期待値とならないときにOSの起動前に外部機器を再起動させることができるため、コンピュータ装置自体の再起動が必要となる事態の発生率を減少させることができる。
2A,2B コンピュータ装置
3 PCIeデバイス
4 USBデバイス
21 CPU
23 チップセット

Claims (4)

  1. 外部機器を接続可能なコンピュータ装置であって、
    前記外部機器と通信可能なチップセットであって、前記コンピュータ装置と前記外部機器との通信状態を示す値を実測して前記通信状態の実測値を取得する前記チップセットと、
    前記チップセットの通信能力を示す第一能力値、及び、前記外部機器の通信能力を示す第二能力値のうち小さい方の値を前記通信状態の期待値に設定し、前記実測値と前記期待値とを比較し、前記実測値が前記期待値と異なるときに前記外部機器を再起動させ、前記外部機器を再起動させた後に前記実測値が前記期待値と一致するか否かの判定を行う処理を複数回実行し、複数回実行する前記処理の最中に前記実測値が前記期待値と一致したとき、または、前記実測値が前記期待値と一致することなく前記処理の回数が所定回数に達したときにOSを起動させるCPUと、
    を具備するコンピュータ装置。
  2. 前記実測値、前記第一能力値、前記第二能力値、及び、前記期待値は、前記コンピュータ装置と前記外部機器との間のリンクスピードであり、
    前記CPUは、前記実測値の前記リンクスピードが前記期待値の前記リンクスピードと異なるときに前記外部機器を再起動させる、
    請求項1に記載のコンピュータ装置。
  3. 前記実測値、前記第一能力値、前記第二能力値、及び、前記期待値は、前記コンピュータ装置と前記外部機器との間のリンクスピード及びリンク幅であり、
    前記CPUは、前記実測値の前記リンクスピードまたは前記リンク幅が前記期待値の前記リンクスピードまたは前記リンク幅と異なるときに前記外部機器を再起動させる、
    請求項1に記載のコンピュータ装置。
  4. 外部機器を接続可能なコンピュータ装置が、
    前記コンピュータ装置と前記外部機器との通信状態を示す値を実測して前記通信状態の実測値を取得し、
    前記コンピュータ装置の通信能力を示す第一能力値、及び、前記外部機器の通信能力を示す第二能力値のうち小さい方の値を前記通信状態の期待値に設定し、
    前記実測値と前記期待値とを比較し、
    前記実測値が前記期待値と異なるときに前記外部機器を再起動させ
    前記外部機器を再起動させた後に前記実測値が前記期待値と一致するか否かの判定を行う処理を複数回実行し、複数回実行する前記処理の最中に前記実測値が前記期待値と一致したとき、または、前記実測値が前記期待値と一致することなく前記処理の回数が所定回数に達したときにOSを起動させる、
    再起動方法。
JP2019135516A 2019-07-23 2019-07-23 コンピュータ装置及び再起動方法 Active JP7324637B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019135516A JP7324637B2 (ja) 2019-07-23 2019-07-23 コンピュータ装置及び再起動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019135516A JP7324637B2 (ja) 2019-07-23 2019-07-23 コンピュータ装置及び再起動方法

Publications (2)

Publication Number Publication Date
JP2021018731A JP2021018731A (ja) 2021-02-15
JP7324637B2 true JP7324637B2 (ja) 2023-08-10

Family

ID=74563738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019135516A Active JP7324637B2 (ja) 2019-07-23 2019-07-23 コンピュータ装置及び再起動方法

Country Status (1)

Country Link
JP (1) JP7324637B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7574115B2 (ja) 2021-03-17 2024-10-28 株式会社Pfu コンピュータ装置
CN115061558B (zh) * 2022-06-16 2023-08-15 飞腾信息技术有限公司 一种pcie设备的热复位方法、装置、存储介质及pcie设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008547362A (ja) 2005-06-29 2008-12-25 インテル コーポレイション ポイントツーポイント・リンクのネゴシエーション方法および装置
JP2009259217A (ja) 2008-03-18 2009-11-05 Ricoh Co Ltd データ処理回路、省電力方法、省電力プログラム、記録媒体及び機器
JP2013117930A (ja) 2011-12-05 2013-06-13 Hitachi Ltd 計算機及び計算機の制御方法
JP2013162155A (ja) 2012-02-01 2013-08-19 Nec Access Technica Ltd 通信制御装置、通信制御方法、及び、通信制御プログラム
US20160077841A1 (en) 2014-09-17 2016-03-17 Dell Products L.P. Systems and methods for in-situ fabric link optimization in a modular information handling system chassis
CN106649021A (zh) 2016-11-25 2017-05-10 北京计算机技术及应用研究所 PCIe从设备测试装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3405896B2 (ja) * 1997-01-30 2003-05-12 松下電器産業株式会社 機器接続構成管理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008547362A (ja) 2005-06-29 2008-12-25 インテル コーポレイション ポイントツーポイント・リンクのネゴシエーション方法および装置
JP2009259217A (ja) 2008-03-18 2009-11-05 Ricoh Co Ltd データ処理回路、省電力方法、省電力プログラム、記録媒体及び機器
JP2013117930A (ja) 2011-12-05 2013-06-13 Hitachi Ltd 計算機及び計算機の制御方法
JP2013162155A (ja) 2012-02-01 2013-08-19 Nec Access Technica Ltd 通信制御装置、通信制御方法、及び、通信制御プログラム
US20160077841A1 (en) 2014-09-17 2016-03-17 Dell Products L.P. Systems and methods for in-situ fabric link optimization in a modular information handling system chassis
CN106649021A (zh) 2016-11-25 2017-05-10 北京计算机技术及应用研究所 PCIe从设备测试装置

Also Published As

Publication number Publication date
JP2021018731A (ja) 2021-02-15

Similar Documents

Publication Publication Date Title
US9442876B2 (en) System and method for providing network access for a processing node
US9122501B1 (en) System and method for managing multiple bios default configurations
CN104185836B (zh) 用于在系统改变之后验证计算设备的适当操作的方法和系统
US9672112B2 (en) Backing up firmware during initialization of device
CN105814541B (zh) 计算机设备及计算机设备内存启动的方法
US10372460B2 (en) System and method for baseboard management controller assisted dynamic early host video on systems with a security co-processor
TWI522834B (zh) 用於作業系統未知硬體驗證的系統與方法
US9542201B2 (en) Network bios management
US20170031694A1 (en) System and method for remote system configuration managment
US10198332B2 (en) System on chip integrity verification method and system
US8880747B2 (en) Endpoint device discovery system
CN119861985B (zh) 服务器的启动方法、设备、存储介质及程序产品
CN114968628B (zh) 减少停机时间的方法及系统
US20180210783A1 (en) Information processing apparatus, control method of the same, and storage medium
JP7324637B2 (ja) コンピュータ装置及び再起動方法
CN101620580B (zh) 计算机系统及其控制方法
CN115291957B (zh) 多处理器主板的初始化方法和装置
EP2973139B1 (en) Security co-processor boot performance
US10509656B2 (en) Techniques of providing policy options to enable and disable system components
JP2013025440A (ja) 情報処理装置および障害処理方法
US20110196992A1 (en) Method for dismounting a storage device, and computer program product and electronic apparatus for implementing the method
CN110383260A (zh) 耦合到计算机总线的设备的功能状态
CN114328313A (zh) 一种信息传输方法及系统
CN102455970A (zh) 带可靠性检测功能的多外设boot实现方法、设备及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230421

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: 20230725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230731

R150 Certificate of patent or registration of utility model

Ref document number: 7324637

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150