JP6967639B1 - 情報処理装置、及び制御方法 - Google Patents

情報処理装置、及び制御方法 Download PDF

Info

Publication number
JP6967639B1
JP6967639B1 JP2020152809A JP2020152809A JP6967639B1 JP 6967639 B1 JP6967639 B1 JP 6967639B1 JP 2020152809 A JP2020152809 A JP 2020152809A JP 2020152809 A JP2020152809 A JP 2020152809A JP 6967639 B1 JP6967639 B1 JP 6967639B1
Authority
JP
Japan
Prior art keywords
interface
drive device
memory
ssd
memory drive
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
JP2020152809A
Other languages
English (en)
Other versions
JP2022047084A (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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte 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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2020152809A priority Critical patent/JP6967639B1/ja
Application granted granted Critical
Publication of JP6967639B1 publication Critical patent/JP6967639B1/ja
Publication of JP2022047084A publication Critical patent/JP2022047084A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】メモリドライブ装置がハングアップした場合に、システムを機能停止させずに、復帰させる。【解決手段】情報処理装置は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第1のインタフェースと、メモリドライブ装置を管理するための第2のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、前記第2のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第1のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部とを備える。【選択図】図1

Description

本発明は、情報処理装置、及び制御方法に関する。
近年、パーソナルコンピュータ(以下、PCという)などの情報処理装置では、記憶装置に、SSD(Solid State Drive)などのメモリドライブ装置を使用するものが知られている(例えば、特許文献1を参照)。
特開2019−212274号公報
ところで、上述したような従来技術の情報処理装置では、例えば、SSD(メモリドライブ装置)がハングアップした場合に、動作が停止したり、ブルー画面が表示されたして、情報処理装置のシステムもハングアップする。このような場合に、従来技術の情報処理装置では、システムを復帰する手段はなく例えば、一旦、電源をオフして再投入することにより、システムを再起動して復帰させる必要があった。
本発明は、上記問題を解決すべくなされたもので、その目的は、メモリドライブ装置がハングアップした場合に、システムを機能停止させずに、復帰させることができる情報処理装置、及び制御方法を提供することにある。
上記問題を解決するために、本発明の一態様は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第1のインタフェースと、メモリドライブ装置を管理するための第2のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、前記第2のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第1のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部とを備える情報処理装置である。
また、本発明の一態様は、上記の情報処理装置において、前記メモリドライブ装置は、前記メモリドライブ装置の異常による前記機能停止を検出した場合に、前記第2のインタフェースにより、前記メモリドライブ装置が前記機能停止の状態であることを示す停止検出情報を送信し、前記ドライブ制御部は、前記停止検出情報に基づいて、前記機能停止を検出するようにしてもよい。
また、本発明の一態様は、上記の情報処理装置において、前記ホスト制御部と独立して動作する組み込み制御部であって、前記メモリドライブ装置から前記第2のインタフェースにより前記停止検出情報を受信した場合に、前記停止検出情報を受信したことを、前記ドライブ制御部に通知する組み込み制御部を備え、前記ドライブ制御部は、前記組み込み制御部を介して、前記機能停止を検出するようにしてもよい。
また、本発明の一態様は、上記の情報処理装置において、前記ドライブ制御部は、前記メモリドライブ装置との間の前記第1のインタフェースを制御し、前記機能停止を検出した場合に、前記メモリドライブ装置を再起動させる再起動要求を、前記第1のインタフェースにより送信するBIOS(Basic Input Output System)と、前記BIOSを介して、前記メモリドライブ装置へのデータの入出力を制御し、前記機能停止を検出した場合に、前記入出力の要求の実行を一時停止させ、前記メモリドライブ装置が再起動して正常に動作する状態になった場合に、前記入出力の要求の実行を再開させるデバイスドライバ部とを備えるようにしてもよい。
また、本発明の一態様は、上記の情報処理装置において、前記デバイスドライバ部は、前記BIOSが前記メモリドライブ装置を再起動させた後に、前記メモリドライブ装置を初期化する初期化要求を前記メモリドライブ装置に送信するようにしてもよい。
また、本発明の一態様は、上記の情報処理装置において、前記メモリドライブ装置は、前記第1のインタフェースを制御するメインシステムと、前記第2のインタフェースを制御するとともに、前記メモリドライブ装置の異常による機能停止を検出可能なサブシステムとを備えるようにしてもよい。
また、本発明の一態様は、上記の情報処理装置において、前記第1のインタフェースは、PCIe(Peripheral Component Interconnect Express)バスのNVMe(Non Volatile Memory Express)プロトコルによるインタフェースであり、前記第2のインタフェースは、SMBus(System Management Bus)のNVMe−MI(NVM Express Management Interface)であってもよい。
また、本発明の一態様は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第1のインタフェースと、メモリドライブ装置を管理するための第2のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部とを備える情報処理装置の制御方法であって、ドライブ制御部が、前記第2のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第1のインタフェースにより、前記メモリドライブ装置を再起動させる制御方法である。
本発明の上記態様によれば、メモリドライブ装置がハングアップ(異常による機能停止)した場合に、システムを機能停止させずに、復帰させることができる。
本実施形態によるノートPCの主要なハードウェア構成の一例を示す図である。 本実施形態によるノートPCの機能構成の一例を示すブロック図である。 本実施形態におけるPERST#の信号線の接続例を示す図である。 本実施形態によるノートPCの動作の一例を示す図である。
以下、本発明の一実施形態による情報処理装置、及び制御方法について、図面を参照して説明する。
図1は、本実施形態によるノートPC1の主要なハードウェア構成の一例を示す図である。本実施形態では、情報処理装置の一例として、ノートブック型パーソナルコンピュータ(以下、ノートPCという)であるノートPC1について説明する。
図1に示すように、CPU11と、メインメモリ12と、ビデオサブシステム13と、表示部14と、チップセット21と、BIOSメモリ22と、エンベデッドコントローラ31と、入力部32と、電源回路33と、SSD40とを備える。
なお、本実施形態において、CPU11と、メインメモリ12と、ビデオサブシステム13と、表示部14と、チップセット21と、BIOSメモリ22と、エンベデッドコントローラ31と、入力部32と、電源回路33とをホスト部50として説明する。また、CPU11と、チップセット21と、メインメモリ12とを、ホスト制御部10として説明する。
CPU(Central Processing Unit)11は、プログラム制御により種々の演算処理を実行し、ノートPC1の全体を制御している。
メインメモリ12は、CPU11の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップで構成される。この実行プログラムには、OS(オペレーティングシステム)、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム等が含まれる。
ビデオサブシステム13は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、CPU11からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部14に描画データ(表示データ)として出力する。
表示部14は、例えば、液晶ディスプレイであり、ビデオサブシステム13から出力された描画データ(表示データ)に基づく表示画面を表示する。
チップセット21は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI−Expressバス、及びLPC(Low Pin Count)バスなどのコントローラを備えており複数のデバイスが接続される。図1では、デバイスの例示として、BIOSメモリ22と、SSD40とが、チップセット21に接続されている。
BIOS(Basic Input Output System)メモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROM(フラッシュメモリ)などの電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOS、及びエンベデッドコントローラ31などを制御するためのシステムファームウェアなどを記憶する。
SSD(Solid State Drive)40(メモリドライブ装置の一例)は、書き換え可能な不揮発性メモリを有するメモリドライブ装置であり、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。ノートPC1は、SSD40が記憶するデータを利用して各種情報処理を実行する。SSD40は、例えば、PCI−Expressバス(以下、PCIeということがある)により、チップセット21に接続されている。また、SSD40は、例えば、SMBus(System Management Bus)により、後述するエンベデッドコントローラ31と接続されている。
また、SSD40は、複数のフラッシュメモリ41と、メモリコントローラ42と、サブコントローラ43とを備える。
フラッシュメモリ41は、例えば、NANDフラッシュメモリであり、書き換え可能な不揮発性メモリの一例である。
メモリコントローラ42は、例えば、不図示のCPU、ROM、RAMなどを含むプロセッサであり、SSD40を統括的に制御する。メモリコントローラ42は、例えば、チップセット21との間のホストインタフェース(ホストI/F)の制御処理、フラッシュメモリ41との間のメモリインタフェース(メモリI/F)の制御処理、フラッシュメモリ41のデータ管理処理などの処理を実行する。
サブコントローラ43は、例えば、不図示のCPU、ROM、RAMなどを含むプロセッサであり、SSD40のサブシステムを制御する。サブコントローラ43は、SSD40を管理するサブシステムを制御するとともに、後述するエンベデッドコントローラ31との間のインタフェースの制御処理を実行する。
エンベデッドコントローラ31(組込み制御部の一例)は、ノートPC1のシステム状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視し制御するワンチップマイコン(One-Chip Microcomputer)である。また、エンベデッドコントローラ31は、電源回路33を制御する電源管理機能を有している。なお、エンベデッドコントローラ31は、不図示のCPU、ROM、RAMなどで構成されるとともに、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子を備えている。エンベデッドコントローラ31には、それらの入出力端子を介して、例えば、入力部32、及び電源回路33などが接続されており、エンベデッドコントローラ31は、これらの動作を制御する。また、エンベデッドコントローラ31は、SMBusを備えており、SMBusによって、SSD40と接続されている。
入力部32は、例えば、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイスである。
電源回路33は、例えば、DC/DCコンバータ、充放電ユニット、AC/DCアダプタなどを含んでおり、外部電源から、又はバッテリから供給される直流電圧を、情報処理装置100を動作させるために必要な複数の電圧に変換する。また、電源回路33は、エンベデッドコントローラ31からの制御に基づいて、ノートPC1の各部に電力を供給する。
次に、図2を参照して、本実施形態によるノートPC1の機能構成について説明する。
図2は、本実施形態によるノートPC1の機能構成の一例を示すブロック図である。
図2に示すように、ノートPC1は、ホスト部50と、SSD40とを備える。なお、図2において、本実施形態の発明に関する主要な機能構成のみを記載している。
ホスト部50は、OS51と、BIOS52と、PCIeI/F(インタフェース)部15と、エンベデッドコントローラ31とを備える。
また、SSD40は、メインシステム70と、サブシステム80とを備える。また、SSD40は、フラッシュメモリ41にデータを入出力するインタフェースIF1(第1のインタフェース)と、SSD40を管理するためのインタフェースIF2(第2のインタフェース)とを備える。
ここで、インタフェースIF1は、例えば、PCIeバスのNVMe(Non Volatile Memory Express)プロトコルによるインタフェースであり、主に、OS51からSSD40へのデータの入出力を制御する。なお、ここでのデータの入出力とは、SSD40へのデータの書き込み(データを記憶させること)、及びSSD40からのデータの読み出しを示す。
また、インタフェースIF2は、例えば、SMBusのNVMe−MI(NVM Express Management Interface)であり、SSD40(メモリドライブ装置)を管理するためのインタフェースである。
メインシステム70は、上述したメモリコントローラ42により実現される機能部であり、PCIeによるインタフェースIF1を制御する。メインシステム70は、OS51からSSD40へのデータの入出力を制御する。メインシステム70は、CFS(Controller Fatal Status)を備えている。ここで、CFSは、メモリコントローラ42(メインシステム70)が、致命的な状態、すなわち、SSD40が異常による機能停止した状態を示すフラグである。CFSは、異常による機能停止した状態である場合に、“1”がセットされる。すなわち、メインシステム70は、SSD40が異常による機能停止した状態になった場合に、CFSに“1”をセットする。
サブシステム80は、上述したサブコントローラ43により実現される機能部であり、メインシステム70とは独立したシステムである。サブシステム80は、インタフェースIF2を制御するとともに、上述したCFSにより、SSD40の異常による機能停止(SSD40のメインシステム70のハングアップ)を検出可能である。サブシステム80は、CFSが“1”になった場合に、インタフェースIF2により、エンベデッドコントローラ31に“ALERT#”を送信する。ここで、“ALERT#”は、SSD40が機能停止の状態であることを示す停止検出情報の一例である。
このように、SSD40は、SSD40の異常による機能停止を検出した場合に、インタフェースIF2により、SSD40が機能停止の状態であることを示す“ALERT#”(停止検出情報)を送信する。
エンベデッドコントローラ31は、SSD40からインタフェースIF2により“ALERT#”を受信した場合に、“ALERT#”を受信したことを、BIOS52に通知する。
ホスト制御部10は、例えば、CPU11と、チップセット21と、メインメモリ12とにより実現される機能部であり、SSD40へのデータの入出力を伴う情報処理を実行するなど各種処理を実行する。ホスト制御部10は、OS51と、BIOS52と、PCIeI/F部15とを備えている。
BIOS52は、BIOSメモリ22が記憶するBIOSのプログラムをCPU11に実行させることで実現される機能部であり、各種周辺機器類とOS51との間の入出力処理を行う。BIOS52は、エンベデッドコントローラ31からのSSD40が機能停止の状態であることの通知を受信した場合に、システムマネージメントモード(SMM:System Management Mode)に移行させる。これにより、OS51及びストレージドライバ61は動作を停止する。
また、BIOS52は、システムマネージメントモード(SMM)の間、SSD40との間のインタフェースIF1を制御し、SSD40の機能停止を検出した場合に、SSD40を再起動させる再起動要求を、インタフェースIF1により送信する。すなわち、BIOS52は、エンベデッドコントローラ31からの通知により、SSD40の異常による機能停止を検出した場合に、インタフェースIF1により、SSD40を再起動させる。
例えば、BIOS52は、PCIeI/F部15を介して、PERST#を出力する。ここで、PERST#とは、PCIeにおけるリセット信号であり、SSD40のメインシステム70及びサブシステム80を初期化して、SSD40を再起動させる再起動要求の一例である。
なお、PERST#の信号線は、例えば、図3に示すようにSSD40に接続されている。
図3は、本実施形態におけるPERST#の信号線の接続例を示す図である。
図3に示すように、PERST#の信号線は、OR回路16(論理和回路)を介して、SSD40に接続されている。OR回路16は、ホスト部50(PCIeI/F部15)から出力されるBIOS_RST信号と、ノートPC1の全体をリセットするCPU_RST信号とを入力として、BIOS_RST信号と、CPU_RST信号とを論理和した出力信号を、PERST#信号として出力する。
このように、PERST#信号は、BIOS52からの出力と、CPU_RST信号ととのいずれかにより、SSD40(メインシステム70及びサブシステム80)を初期化又は再起動できるように構成されている。これにより、実行中であったメインシステム70内のIOキューを消去することもできる。
図2の説明に戻り、BIOS52は、システムマネージメントモード(SMM)において、システムマネージメントモード(SMM)から退出した後にOS51内のストレージドライバ61が実行するコマンドを、例えば“IOCTL_STORAGE_RESET_DEVICE”コマンドと“IOCTL_STORAGE_FIRMWARE_ACTIVATE”コマンドを、ストレージドライバ61へ送信する。BIOS52は、送信が完了した後、システムマネージメントモード(SMM)から退出する。
BIOS52がシステムマネージメントモード(SMM)から退出した後は、OS51がストレージドライバ61を介してPCIeI/F部15を使用可能な状態になる。ストレージドライバ61は、PCIeI/F部15を介して、インタフェースIF1により、SSD40へのデータの入出力を制御する。
OS(オペレーティングシステム)51は、例えば、Windows(登録商標)であり、例えば、SSD40が記憶するOSプログラムをCPU11に実行させることで実現される機能部である。OS51は、例えば、ストレージドライバ61を備える。
ストレージドライバ61(デバイスドライバ部の一例)は、SSD40を管理し、SSD40に対するデータの入出力を制御するデバイスドライバである。ストレージドライバ61は、SSD40へのデータの入出力を制御する。また、ストレージドライバ61は、SSD40の異常による機能停止を検出した場合に、入出力の要求の実行を一時停止させ、SSD40が再起動して正常に動作する状態になった場合に、入出力の要求の実行を再開させる。
具体的に、ストレージドライバ61は、BIOS52がシステムマネージメントモード(SMM)を退出した後、予めBIOS52から送られた“IOCTL_STORAGE_RESET_DEVICE”コマンドに応じて、実行中であったストレージドライバ61内の全てのIOキュー(入出力キュー)を消去する。また、ストレージドライバ61は、予めBIOS52から送られた“IOCTL_STORAGE_FIRMWARE_ACTIVATE”コマンドに応じて、PCIeI/F部15を介して、インタフェースIF1により、SSD40のメインシステム70及びサブシステム80を初期化し、OS51がSSD40を使用可能な状態にする。ストレージドライバ61は、SSD40が再起動して正常に動作する状態になった場合に、一時停止させているOS51からのコマンドを再開させる。
なお、図2に示すように、本実施形態において、ストレージドライバ61とBIOS52(又はBIOS52の一部)とは、ドライブ制御部60に対応する。ドライブ制御部60は、インタフェースIF2により、SSD40の異常による機能停止を検出した場合に、インタフェースIF1により、SSD40を再起動させる。すなわち、ドライブ制御部60は、SSD40からの“ALERT#”(停止検出情報)に基づいて、SSD40の機能停止を検出する。例えば、ドライブ制御部60は、エンベデッドコントローラ31を介して、“ALERT#”を受信し、機能停止を検出する。
また、ドライブ制御部60は、SSD40の機能停止を検出した場合に、インタフェースIF1によりPERST#を出力させて、SSD40を再起動させる。
また、ドライブ制御部60は、SSD40の機能停止を検出した場合に、現在実行待ちの全てのIOキュー及びOS51のコマンドを一時停止させ、SSD40が再起動して正常に動作する状態になった場合に、一時停止させている現在実行待ちの全てのIOキューを消去し、停止していたOS51のコマンドを再開させる。
次に、図4を参照して、本実施形態によるノートPC1の動作について説明する。
図4は、本実施形態によるノートPC1の動作の一例を示す図である。この図により、SSD40の異常検出及びSSD40の復帰処理について説明する。
図4に示すように、まず、SSD40は、CFSが“1”になるか否かを判定する(ステップS101)。すなわち、SSD40のサブシステム80は、SSD40のメインシステム70によって、SSD40の異常が検出されて機能停止し、CFSが“1”にされたか否かを判定する。サブシステム80は、CFSが“1”である場合(ステップS101:YES)に、処理をステップS102に進める。また、サブシステム80は、CFSが“1”でない場合(ステップS101:NO)に、処理をステップS101に戻す。
ステップS102において、SSD40は、“ALERT#”をエンベデッドコントローラ31に送信する。すなわち、サブシステム80は、SMBusのNVMe−MIであるインタフェースIF2により、“ALERT#”をエンベデッドコントローラ31に送信する。
次に、エンベデッドコントローラ31は、SSD40からの“ALERT#”の受信に応じて、“SSD ALERT#”を、BIOS52に送信する(ステップS103)。ここで、“SSD ALERT#”は、SSD40の機能停止が検出されたことを示す注意通知である。
次に、BIOS52は、エンベデッドコントローラ31からの“SSD ALERT#”の注意通知の受信に応じて、システムマネージメントモード(SMM)にする(ステップS104)。すなわち、BIOS52は、CPU11をシステムマネージメントモードに移行させる。
これにより、BIOS52は、SSDリセットアプリケーション62を経由して、OS51及びストレージドライバ61に通知し(ステップS105)、OS51及びストレージドライバ61は活動を停止し、ストレージドライバ61内の全てのIOキュー(入出力キュー)の実行と、OS51のコマンドの処理を、一旦停止する(ステップS106)。
なお、SSDリセットアプリケーション62は、SSD40のリセットに関する処理を行うアプリケーションプログラムにより実現される機能部であり、ドライブ制御部60に含まれるものとする。
次に、BIOS52は、SSD40にPERST#を出力する(ステップS107)。BIOS52は、例えば、PCIeI/F部15を介して、PCIeバスのNVMeプロトコルによるインタフェースIF1により、SSD40を再起動させるPERST#信号をSSD40に出力する。
次に、SSD40は、BIOS52からのPERST#に応じて、再起動する(ステップS108)。
また、BIOS52は、SSD40の初期化要求をSSD40に送信する(ステップS109)。BIOS52は、PCIeI/F部15を介して、インタフェースIF1により、SSD40を初期化するコマンド(初期化要求)をSSD40に送信する。
次に、SSD40は、BIOS52からのコマンド(初期化要求)に応じて、SSD40を初期化する(ステップS110)。すなわち、SSD40のメインシステム70は、メインシステム70及びサブシステム80の初期化処理を実行し、メインシステム70内で実行中であった全てのIOキュー(入出力キュー)を消去する。
次に、BIOS52は、“IOCTL_STORAGE_RESET_DEVICE”コマンド及び“IOCTL_STORAGE_FIRMWARE_ACTIVATE”コマンドを、SSDリセットアプリケーション62を経由して、ストレージドライバ61に送信し、実行を予約する(ステップS111)。なお、ストレージドライバ61は,不活性状態であるため、これらのコマンドの処理を行わない。
次に、BIOS52は、システムマネージメントモード(SMM)から退出する(ステップS112)。これにより、OS51及びストレージドライバ61は、動作を再開する(ステップS113)。すなわち、ストレージドライバ61は、IOキューの実行を再開する。
次に、予めBIOS52から送られた“IOCTL_STORAGE_RESET_DEVICE”に応じて、ストレージドライバ61は、ストレージドライバ61内で実行中であった全てのIOキュー(入出力キュー)を消去する(ステップS114)。
次に、ストレージドライバ61は、予めBIOS52から送られた“IOCTL_STORAGE_FIRMWARE_ACTIVATE”に応じて、インタフェースIF1により、SSD40に初期化要求を送信する(ステップS115)。ストレージドライバ61は、PCIeI/F部15を介して、インタフェースIF1により、SSD40のメインシステム70を初期化させる。
次に、ストレージドライバ61は、停止していた全てのOS51のコマンドの実行を再開する(ステップS116)。すなわち、ストレージドライバ61は、ステップS110において、実行を停止したOS51のコマンドを再開する。
これにより、ノートPC1は、SSD40がハングアップした場合であっても、迅速に復帰させることができる。
なお、上述した図4に示す例では、ドライブ制御部60がSSDリセットアプリケーション62を備え、BIOS52からSSDリセットアプリケーション62を経由して通知する例を説明したが、これに限定されるものではなく、SSDリセットアプリケーション62を備えない形態であってもよい。
以上説明したように、本実施形態によるノートPC1(情報処理装置)は、SSD40と、ホスト制御部10と、ドライブ制御部60とを備える。SSD40(メモリドライブ装置)は、書き換え可能なフラッシュメモリ41(不揮発性メモリ)を内蔵し、フラッシュメモリ41にデータを入出力するインタフェースIF1(第1のインタフェース)と、SSD40(メモリドライブ装置)を管理するためのインタフェースIF2(第2のインタフェース)とを備える。ホスト制御部10は、SSD40へのデータの入出力を伴う情報処理を実行する。ドライブ制御部60は、インタフェースIF2により、SSD40の異常による機能停止を検出した場合に、インタフェースIF1により、SSD40を再起動させる。
これにより、本実施形態によるノートPC1は、ドライブ制御部60がSSD40の異常による機能停止を検出して、SSD40を再起動させるため、例えば、SSD40がハングアップ(異常による機能停止)した場合に、システム(OS51)を機能停止させずに、復帰させることができる。例えば、本実施形態によるノートPC1は、SSD40の異常が原因で、ノートPC1(OS51)の動作が停止したり、ブルー画面が表示されたして、ノートPC1のシステム(OS51)がハングアップすることを低減することができる。
また、本実施形態では、SSD40は、SSD40の異常による機能停止を検出した場合に、インタフェースIF2により、SSD40が機能停止の状態であることを示す停止検出情報(例えば、ALERT#)を送信する。ドライブ制御部60は、停止検出情報(例えば、ALERT#)に基づいて、機能停止を検出する。
これにより、本実施形態によるノートPC1は、SSD40の異常による機能停止を、インタフェースIF2により、SSD40から通知されるため、ドライブ制御部60は、適切に、復帰させることができる。
また、本実施形態によるノートPC1は、ホスト制御部10と独立して動作する組み込み制御部であって、SSD40からインタフェースIF2により停止検出情報を受信した場合に、停止検出情報を受信したことを、ドライブ制御部60に通知するエンベデッドコントローラ31(組み込み制御部)を備える。ドライブ制御部60は、エンベデッドコントローラ31を介して、SSD40の機能停止を検出する。
これにより、本実施形態によるノートPC1は、ホスト制御部10と独立して動作するエンベデッドコントローラ31を利用して、SSD40の機能停止を検出するため、ホスト制御部10の状態によらずに、確実にSSD40の機能停止を検出することができる。
また、本実施形態では、ドライブ制御部60は、BIOS52と、ストレージドライバ61(デバイスドライバ部)とを備える。BIOS52は、SSD40との間のインタフェースIF1を制御し、機能停止を検出した場合に、SSD40を再起動させる再起動要求(PERST#)を、インタフェースIF1により送信する。ストレージドライバ61は、BIOS52を介して、SSD40へのデータの入出力を制御し、機能停止を検出した場合に、入出力の要求(IOキュー)の実行を一時停止させ、SSD40が再起動して正常に動作する状態になった場合に、入出力の要求の実行を再開させる。
これにより、本実施形態によるノートPC1は、BIOS52により迅速にSSD40を再起動することができる。また、本実施形態によるノートPC1は、ストレージドライバ61によって、実行中であった入出力の要求(IOキュー)の実行を再起動中に消去し、再起動後にOS51の入出力の要求の実行を再開させるため、SSD40の異常で、システムが停止(ハングアップ)することを適切に低減することができる。
また、本実施形態では、ストレージドライバ61は、BIOS52がSSD40を再起動させた後に、SSD40を初期化する初期化要求(“IOCTL_STORAGE_FIRMWARE_ACTIVATE”コマンド)をSSD40に送信する。
これにより、本実施形態によるノートPC1は、SSD40の異常停止後に、適切に、SSD40を復帰させることができる。
また、本実施形態では、SSD40は、インタフェースIF1を制御するメインシステム70と、インタフェースIF2を制御するとともに、SSD40の異常による機能停止を検出可能なサブシステム80とを備える。
これにより、本実施形態によるノートPC1は、メインシステム70と独立したサブシステム80により、SSD40の異常による機能停止を適切に検出することができる。
また、本実施形態では、インタフェースIF1は、PCIe(Peripheral Component Interconnect Express)バスのNVMe(Non Volatile Memory Express)プロトコルによるインタフェースである。また、インタフェースIF2は、SMBus(System Management Bus)のNVMe−MI(NVM Express Management Interface)である。
これにより、本実施形態によるノートPC1は、既存の規格のインタフェースを利用して、システム(OS51)を機能停止させずに、SSD40を適切に復帰させることができる。
また、本実施形態では、サブシステム80は、CFS(例えば、CFS=“1”)により、SSD40の異常による機能停止を検出する。
これにより、本実施形態によるノートPC1は、既存の仕様であるCFSを利用することで、迅速かつ確実に、SSD40の異常による機能停止を検出することができる。
また、本実施形態による制御方法は、書き換え可能なフラッシュメモリ41を内蔵し、フラッシュメモリ41にデータを入出力するインタフェースIF1と、SSD40を管理するためのインタフェースIF2とを備えるSSD40と、SSD40へのデータの入出力を伴う情報処理を実行するホスト制御部10とを備えるノートPC1の制御方法であって、再起動ステップを含む。再起動ステップにおいて、ドライブ制御部60が、インタフェースIF2により、SSD40の異常による機能停止を検出した場合に、インタフェースIF1により、SSD40を再起動させる。
これにより、本実施形態による制御方法は、上述したノートPC1と同様の効果を奏し、例えば、SSD40がハングアップ(異常による機能停止)した場合に、システム(OS51)を機能停止させずに、復帰させることができる。
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、情報処理装置がノートPC1である例を説明したが、これに限定されるものではなく、例えば、タブレット端末装置や、デスクトップ型PCなどの他の情報処理装置であってもよい。
また、上記の実施形態において、ノートPC1のOS51が、Windows(登録商標)である例を説明したが、これに限定されるものではなく、例えば、Linux(登録商標)などの他のOSを適用してもよい。
また、上記の実施形態において、SSD40のサブシステム80が、CFSが“1”になるのを検出して、“ALERT#”をインタフェースIF2により、EC31を介して、BIOS52に通知することで、SSD40の異常による機能停止を検出する例を説明したが、SSD40の異常による機能停止の検出手法は、これに限定されるものではない。例えば、ドライブ制御部60がエンベデッドコントローラ31を介して、サブシステム80に、CFSが“1”になったか否かを、定期的に問い合わせることで、SSD40の異常による機能停止の検出するようにしてもよい。
また、上記の実施形態において、OR回路16を用いて、BIOS_RST信号と、CPU_RST信号とのいずれかにより、PERST#信号を生成する例を説明したが、これに限定されるものではなく、例えば、OR回路16以外の論理回路や、ダイオードなどの素子を用いて、PERST#信号を生成するようにしてもよい。
また、上記の実施形態において、SSD40を再起動するために、PERST#信号を生成する例を示したが、これに限定されるものではなく、例えば、PCIコントローラのレジストリに値を送信したり、NVMeで定義されたController Level Resetを使用するなど、別のリセット信号やリセットコマンドの形態を使用してもよい。
また、上記の実施形態において、SSD40を再起動するために、PERST#信号を生成する例を示したが、これに限定されるものではなく、例えば、SSD40の供給電源を遮断した後に再投入することによってSSD40を再起動するようにしてもよい。
また、上記の実施形態において、ストレージドライバ61に対してIOキューの消去とSSD40の初期化の実行を命令するために、BIOSを用いる例を示したが、これに限定されるものではなく、例えば、OS51上で動作するデバイスドライバであってもよい。
また、上記の実施形態において、インタフェースIF2の一例として、SMBusを用いる例を説明したが、これに限定されるものではなく、例えば、I2C(アイツ―シー)バスなどの他のインタフェースであったり、電圧の変化や電圧パルスなどを用いてもよい。
また、上記の実施形態において、SSD40が、メモリコントローラ42と、サブコントローラ43とを備える例を説明したが、これに限定されるものではなく、サブコントローラ43を備えずに、メモリコントローラ42により、メインシステム70とサブシステム80とを実現するようにしてもよい。
なお、上述したノートPC1が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したノートPC1が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したノートPC1が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にノートPC1が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
1 ノートPC
10 ホスト制御部
11 CPU
12 メインメモリ
13 ビデオサブシステム
14 表示部
15 PCIeI/F部
16 OR回路
21 チップセット
22 BIOSメモリ
31 エンベデッドコントローラ(EC)
32 入力部
33 電源回路
40 SSD
41 フラッシュメモリ
42 メモリコントローラ
43 サブコントローラ
50 ホスト部
51 OS
52 BIOS
60 ドライブ制御部
61 ストレージドライバ
70 メインシステム
80 サブシステム
IF1、IF2 インタフェース

Claims (8)

  1. 書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第1のインタフェースと、メモリドライブ装置を管理するための第2のインタフェースとを備えるメモリドライブ装置と、
    前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、
    前記第2のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第1のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部と
    を備える情報処理装置。
  2. 前記メモリドライブ装置は、前記メモリドライブ装置の異常による前記機能停止を検出した場合に、前記第2のインタフェースにより、前記メモリドライブ装置が前記機能停止の状態であることを示す停止検出情報を送信し、
    前記ドライブ制御部は、前記停止検出情報に基づいて、前記機能停止を検出する
    請求項1に記載の情報処理装置。
  3. 前記ホスト制御部と独立して動作する組み込み制御部であって、前記メモリドライブ装置から前記第2のインタフェースにより前記停止検出情報を受信した場合に、前記停止検出情報を受信したことを、前記ドライブ制御部に通知する組み込み制御部を備え、
    前記ドライブ制御部は、前記組み込み制御部を介して、前記機能停止を検出する
    請求項2に記載の情報処理装置。
  4. 前記ドライブ制御部は、
    前記メモリドライブ装置との間の前記第1のインタフェースを制御し、前記機能停止を検出した場合に、前記メモリドライブ装置を再起動させる再起動要求を、前記第1のインタフェースにより送信するBIOS(Basic Input Output System)と、
    前記BIOSを介して、前記メモリドライブ装置へのデータの入出力を制御し、前記機能停止を検出した場合に、前記入出力の要求の実行を一時停止させ、前記メモリドライブ装置が再起動して正常に動作する状態になった場合に、前記入出力の要求の実行を再開させるデバイスドライバ部と
    を備える請求項1から請求項3のいずれか一項に記載の情報処理装置。
  5. 前記デバイスドライバ部は、前記BIOSが前記メモリドライブ装置を再起動させた後に、前記メモリドライブ装置を初期化する初期化要求を前記メモリドライブ装置に送信する
    請求項4に記載の情報処理装置。
  6. 前記メモリドライブ装置は、
    前記第1のインタフェースを制御するメインシステムと、
    前記第2のインタフェースを制御するとともに、前記メモリドライブ装置の異常による機能停止を検出可能なサブシステムと
    を備える請求項1から請求項5のいずれか一項に記載の情報処理装置。
  7. 前記第1のインタフェースは、PCIe(Peripheral Component Interconnect Express)バスのNVMe(Non Volatile Memory Express)プロトコルによるインタフェースであり、
    前記第2のインタフェースは、SMBus(System Management Bus)のNVMe−MI(NVM Express Management Interface)である
    請求項1から請求項6のいずれか一項に記載の情報処理装置。
  8. 書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第1のインタフェースと、メモリドライブ装置を管理するための第2のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部とを備える情報処理装置の制御方法であって、
    ドライブ制御部が、前記第2のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第1のインタフェースにより、前記メモリドライブ装置を再起動させる
    制御方法。
JP2020152809A 2020-09-11 2020-09-11 情報処理装置、及び制御方法 Active JP6967639B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020152809A JP6967639B1 (ja) 2020-09-11 2020-09-11 情報処理装置、及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020152809A JP6967639B1 (ja) 2020-09-11 2020-09-11 情報処理装置、及び制御方法

Publications (2)

Publication Number Publication Date
JP6967639B1 true JP6967639B1 (ja) 2021-11-17
JP2022047084A JP2022047084A (ja) 2022-03-24

Family

ID=78509606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020152809A Active JP6967639B1 (ja) 2020-09-11 2020-09-11 情報処理装置、及び制御方法

Country Status (1)

Country Link
JP (1) JP6967639B1 (ja)

Also Published As

Publication number Publication date
JP2022047084A (ja) 2022-03-24

Similar Documents

Publication Publication Date Title
JP6530774B2 (ja) ハードウェア障害回復システム
EP2189901B1 (en) Method and system to enable fast platform restart
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US10203740B2 (en) Information processing device and semiconductor device
EP2966571B1 (en) Method for migrating memory data and computer therefor
JP3777136B2 (ja) コンピュータ装置、データのデッドコピー方法、プログラム、コンピュータ装置の稼動方法
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US9529410B2 (en) Service processor (SP) initiated data transaction with BIOS utilizing power off commands
US20080098246A1 (en) Computer system and control method thereof
US9448889B2 (en) BIOS failover update with service processor
US10509458B2 (en) Information device with improved operating modes
EP3889735A1 (en) Information processing apparatus and control method
JP5378308B2 (ja) メイン・メモリのバックアップ方法およびデータ保護システム
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
JP6967639B1 (ja) 情報処理装置、及び制御方法
JP2001005661A (ja) コンピュータシステムおよびそのcpu性能制御方法
CN115794153A (zh) 一种固件升级方法及相关设备
US20210096624A1 (en) Electronic apparatus and operation information output method
US10782764B2 (en) Techniques of emulating an ACPI controller on a service processor
JP2001117663A (ja) コンピュータシステムおよびその処理速度制御方法
US10997046B2 (en) Integrity check staging
US20140025982A1 (en) Information processing equipment and control method
US20130080717A1 (en) Information processing apparatus and control method
CN115756372A (zh) 服务器的快速启动设备、方法、电子设备及存储介质
JP2023081105A (ja) 情報処理装置、及び耐タンパ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200911

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211025

R150 Certificate of patent or registration of utility model

Ref document number: 6967639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350