(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023110593
(43)【公開日】2023-08-09
(54)【発明の名称】情報処理装置および制御方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20230802BHJP
G06F 11/14 20060101ALI20230802BHJP
【FI】
G06F3/06 304Z
G06F3/06 304P
G06F11/14 671
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022012139
(22)【出願日】2022-01-28
(71)【出願人】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【弁理士】
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】平良 優介
(72)【発明者】
【氏名】菅原 隆
(57)【要約】
【課題】障害の再現を待たずに障害時における補助記憶装置のログを取得できる情報処理装置および制御方法を提供する。
【解決手段】記憶装置は、不揮発性記憶媒体、揮発性記憶媒体および制御器を備え、制御器は、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御し、自器の動作状態を示す動作ログを前記揮発性記憶媒体に記憶し、制御器は、前記ホストデバイスからトリガが入力されるとき、前記動作ログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送し、前記記憶装置への電力供給が停止され、再開された後、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ホストデバイスと、
記憶装置と、を備え、
前記記憶装置が、不揮発性記憶媒体、揮発性記憶媒体および制御器を備え、
前記制御器が、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御し、自器の動作状態を示す動作ログを前記揮発性記憶媒体に記憶する
情報処理装置であって、
前記制御器は、前記ホストデバイスからトリガが入力されるとき、
前記動作ログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送し、
前記記憶装置への電力供給が停止され、再開された後、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する
情報処理装置。
【請求項2】
前記トリガは、前記情報処理装置への電力供給の停止の可能性を示す信号である
請求項1に記載の情報処理装置。
【請求項3】
前記トリガは、電力喪失保護信号である
請求項2に記載の情報処理装置。
【請求項4】
電源ボタンと、
前記電源ボタンが押下されるとき、前記制御器に前記電力喪失保護信号を出力する電気回路と、を備える
請求項3に記載の情報処理装置。
【請求項5】
前記ホストデバイスは、起動処理において前記制御器にログ要求コマンドを出力し、
前記制御器は、前記ログ要求コマンドの入力に応じて、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する
請求項1から請求項4のいずれか一項に記載の情報処理装置。
【請求項6】
前記記憶装置は、固体記憶装置である
請求項1から請求項5のいずれか一項に記載の情報処理装置。
【請求項7】
ホストデバイスと、
記憶装置と、を備え、
前記記憶装置が、不揮発性記憶媒体および揮発性記憶媒体を備える
情報処理装置における制御方法であって、
前記記憶装置が、
前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御する制御ステップと、
自器の動作状態を示す動作ログを前記揮発性記憶媒体に記憶するログ記憶ステップと、
前記ホストデバイスからトリガが通知されるとき、
前記動作ログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送するログ転送ステップと、
前記ホストデバイスの電力供給が停止され、再開された後、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力するログ出力ステップと、を実行する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に備わる補助記憶装置に関する。
【背景技術】
【0002】
パーソナルコンピュータ(PC:Personal Computer)をはじめとする情報処理装置は、取得したデータを永続的に記憶するための補助記憶装置を備える。補助記憶装置には、半導体メモリを用いて各種のデータを記憶する固体記憶装置(SSD:Solid State Drive)が普及している。SSDは、従来から普及しているハードディスクドライブ(HDD:Hard Disk Drive)よりも振動耐性が高く、データアクセス時に騒音が発生しない。SSDは、消費電力が少なく、かつ、データ転送速度が高いという利点を有する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、SSDは、不揮発性メモリ、揮発性メモリ、および、コントローラを備える。不揮発性メモリは、ユーザデータを記憶する。コントローラは、DRAM(Dynamic Random Access Memory)などの揮発性メモリを作業領域として用い、不揮発性メモリにおけるユーザデータの読み書きを制御する。SSDの動作状況を示す情報として、コントローラは、統計的ログ(statistical log)と、SSD内部で実行される個々の処理を示すログ(以下、「ファームウェアログ」または「SSDログ」と呼ぶことがある)を生成する。コントローラは、統計的ログをホストデバイスに出力し、ファームウェアログを揮発性メモリに記憶する。統計的ログには、SSDの状態を統計的に示す情報が記述される。一般には、統計的ログは、障害の解析には情報が不足しがちである。ファームウェアログは、障害の解析に有用であるが、SSDの電源が停止するとき消去される。不揮発性メモリに記憶される各種のデータは、電源の停止により消去されるためである。
【0005】
そこで、障害発生時にSSDの外部からトリガを与え、揮発性メモリに記憶されているファームウェアログを排出することも考えられる。しかしながら、作業を行うためSSDの筐体を開放して、電源を停止する必要がある。その際に、ファームウェアログが消去されてしまうので、障害が再現するまで待機することや、障害を再現するための作業を要することがある。
なお、故障解析のためのツールをSSDに予め備えることも考えられるが、ハードウェア規模やコストの増加を招きかねない。また、ファームウェアログをNAND型フラッシュメモリなどの不揮発性メモリに逐一記憶することは、寿命の短縮を招きかねない。NAND型フラッシュメモリには、正常に動作することができるアクセス回数の上限があるためである。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様に係る情報処理装置は、ホストデバイスと、記憶装置と、を備え、前記記憶装置が、不揮発性記憶媒体、揮発性記憶媒体および制御器を備え、前記制御器が、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御し、自器の動作状態を示す動作ログを前記揮発性記憶媒体に記憶する情報処理装置であって、前記制御器は、前記ホストデバイスからトリガが入力されるとき、前記動作ログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送し、前記記憶装置への電力供給が停止され、再開された後、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力してもよい。
【0007】
上記の情報処理装置において、前記トリガは、前記情報処理装置への電力供給の停止の可能性を示す信号であってもよい。
【0008】
上記の情報処理装置において、トリガは、電力喪失保護信号であってもよい。
【0009】
上記の情報処理装置において、電源ボタンと、前記電源ボタンが押下されるとき、前記制御器に前記電力喪失保護信号を出力する電気回路と、を備えてもよい。
【0010】
上記の情報処理装置において、前記ホストデバイスは、起動処理において前記制御器にログ要求コマンドを出力し、前記制御器は、前記ログ要求コマンドの入力に応じて、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力してもよい。
【0011】
上記の情報処理装置において、前記記憶装置は、固体記憶装置であってもよい。
【0012】
本発明の第2態様に係る制御方法は、ホストデバイスと、記憶装置と、を備え、前記記憶装置が、不揮発性記憶媒体および揮発性記憶媒体を備える情報処理装置における制御方法であって、前記記憶装置が、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御する制御ステップと、自器の動作状態を示す動作ログを前記揮発性記憶媒体に記憶するログ記憶ステップと、前記ホストデバイスからトリガが通知されるとき、前記動作ログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送するログ転送ステップと、前記ホストデバイスの電力供給が停止され、再開された後、前記動作ログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力するログ出力ステップと、を実行する制御方法である。
【発明の効果】
【0013】
本発明の実施形態によれば、障害の再現を待たずに経済的に障害時における補助記憶装置のログを取得することができる。
【図面の簡単な説明】
【0014】
【
図1】本実施形態に係る情報処理装置の内部構成例を示す平面図である。
【
図2】本実施形態に係る情報処理装置のハードウェア構成例を示す概略ブロック図である。
【
図3】本実施形態に係るSSDの構成例を示す概略ブロック図である。
【
図4】本実施形態に係るファームウェアログの保存処理の例を説明するための説明図である。
【
図5】本実施形態に係るファームウェアログの復元処理の例を説明するための説明図である。
【
図6】本実施形態に係るトリガの発行に係るハードウェア構成例を示す説明図である。
【
図7】本実施形態に係る情報処理装置におけるファームウェア取得処理の例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照して説明する。まず、本発明の実施形態に係る情報処理装置1の概要について説明する。
図1は、本実施形態に係る情報処理装置1の内部構成例を示す平面図である。
図1は、情報処理装置1の筐体BDの内部を模式的に示す。筐体BDは、各種の部材を格納する。筐体BDには、マザーボードMB、記憶装置23、オーディオシステム24、バッテリ34および冷却部35が配置されている。マザーボードMBには、プロセッサ11、ビデオサブシステム13、チップセット21、BIOS(Basic Input Output System)メモリ22、EC(Embedded Controller、エンベデッドコントローラ)31および電源回路33が設置されている。
【0016】
冷却部35は、情報処理装置1を冷却するために設けられる。冷却部35は、放熱ファン351、ヒートパイプ352および温度センサ353を備える。放熱ファン351とヒートパイプ352は、熱拡散装置の例である。放熱ファン351は、フィン(羽)を回転させるモータを備え、吸気口81から空気を筐体BD内に流入させる。流入された空気はヒートパイプ352と熱交換されたうえで、排気口83から筐体BDの外に排出される。放熱ファン351の動作は、例えば、EC31またはその他のデバイスにより制御されうる。
【0017】
ヒートパイプ352は蒸発部および凝縮部を有する。ヒートパイプ352の蒸発部は、プロセッサ11において発生した熱を取り入れることができるように、プロセッサ11に近接または当接するようにして設けられる。ヒートパイプ352の凝縮部は、放熱ファン351の近傍に備えられる。
【0018】
ヒートパイプ352の蒸発部では、プロセッサが発した熱を受け取ることにより作動流体を蒸発させる。蒸発部では、作動流体の蒸発により圧力が高まるため、気相の作動流体が凝縮部に向けて移動する。凝縮部では、放熱ファン351によって生じる気流により、作動流体の熱が奪われる。作動流体の熱を奪った気流は、排気口83から筐体BDの外部に排出される。凝縮部において熱を奪われた作動流体は、凝縮して液相となる。液相となった作動流体は、ウィックに形成された細孔を通じて、毛管力によって蒸発部に向けて流動する。蒸発部に到達した液相の差動流体は、再びプロセッサ11から熱を受け取って蒸発する。以降は、上記の現象が繰り返される。このようにして、ヒートパイプ352を備える冷却部35によりプロセッサ11を冷却することができる。
【0019】
温度センサ353は、温度を検出し、検出した温度を示す温度信号をEC31に出力する。温度センサ353は、ヒートパイプ352の蒸発部に相当する部位の温度を検出することができる位置に設けられる。温度センサ353が検出する温度は、概ねプロセッサ11の温度に相当する。
【0020】
次に、本実施形態に係る情報処理装置1の主なハードウェア構成例について説明する。
図2は、本実施形態に係る情報処理装置1のハードウェア構成例を示す概略ブロック図である。情報処理装置1は、プロセッサ11と、メインメモリ12と、ビデオサブシステム13と、ディスプレイ14と、チップセット21と、BIOSメモリ22と、SSD23と、オーディオシステム24と、WLANカード25と、USBコネクタ26と、EC31と、入力部32と、電源回路33と、バッテリ34と、冷却部35とを備える。
【0021】
プロセッサ11は、ソフトウェア(プログラム)に記述された命令で指示される種々の演算処理を実行する。プロセッサ11が実行する処理には、SSD23へのデータの書き込みまたはSSD23からのデータの読み取りなどが含まれる。CPUは、情報処理装置1全体の動作を制御する。CPUは、例えば、OS(Operating System)、BIOS、アプリケーションプログラム(本願では、「アプリ」と呼ぶこともある)など、ソフトウェアに基づく処理を実行する。なお、ソフトウェアに記述された指令(コマンド)で指示される処理を実行することを、「ソフトウェアを実行する」と呼ぶことがある。GPUは、主に実時間画像処理、その他の並列演算処理を担うプロセッサである。GPUは、CPUと一部の処理を分担することがある。
【0022】
メインメモリ12は、プロセッサ11の実行プログラムの読み込み領域として、または、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAMチップを含んで構成される。実行プログラムには、OS、周辺機器などのハードウェアを操作するための各種ドライバ、各種サービス/ユーティリティ、アプリ等が含まれる。
【0023】
ビデオサブシステム13は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含む。ビデオコントローラは、プロセッサ11からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、ディスプレイ14に表示情報を示す表示データとして出力する(画像処理)ビデオサブシステム13は、1個または複数個のGPU(Graphic Processing Unit)として構成されてもよい。GPUは、プロセッサ11として機能するCPUと一体化し、同一のコアに形成されてもよいし、CPUとは別個のコアに形成されてもよい。GPUは、画像処理以外の並列演算処理を実行することも、CPUと一部の処理を分担することもある。
【0024】
ディスプレイ14は、ビデオサブシステム13から出力された描画データ(表示データ)に基づく表示画面を表示する。ディスプレイ14は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、OLED(Organic Light Emitting Diode、有機発光ダイオード)ディスプレイなどのいずれであってもよい。
【0025】
チップセット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、SSD23、オーディオシステム24、WLANカード25、USBコネクタ26、および、EC31が含まれる。チップセット21には、その他の補助記憶装置、例えば、HDD(Hard Disk Drive)などと接続されてもよい。
【0026】
BIOSメモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROMなど、電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOS、EC31その他のデバイスの動作を制御するためのファームウェアなどを記憶する。
【0027】
SSD(Solid State Drive)23は、半導体メモリを備える補助記憶装置の一種である。SSD23は、半導体ドライブ、メモリドライブ、などとも呼ばれることがある。SSDは、コントローラ、揮発性メモリ、および、不揮発性メモリを備える。コントローラは、論理ホストLHと不揮発性メモリとの間で各種のデータの読み書きを制御する。本願では、論理ホストLHとは、SSD23と直接または間接的に各種のデータの読み書きを行うデバイスまたはそれらの集合を指す。論理ホストLHは、ホストデバイスとも呼ばれる。論理ホストLHは、情報処理装置1の主たるコンピュータシステム(ホストシステム)を構成するプロセッサ11、メインメモリ12、および、チップセット21の他、EC31も含まれうる。コントローラは、SSD23の性能を左右する重要な要素である。コントローラとして、例えば、SoC(System-on-a-Chip)が用いられる。不揮発性メモリとして、例えば、フラッシュメモリが用いられる。
【0028】
本願では、不揮発性メモリとして、主にNAND型フラッシュメモリを例として説明する。不揮発性メモリには、主にユーザデータが記憶される。本願では、ユーザデータとは、論理ホストLHにより読み書き可能とするデータを指す。ユーザデータには、予め記憶されるデータ、OS、ドライバ、ファームウェア、アプリなどのプログラムなども含まれうる。ユーザデータは、必ずしも論理ホストLHにおいて現実に利用されたものには限らない。揮発性メモリは、コントローラの作業領域として用いられるデータが記憶される。揮発性メモリには、コントローラの動作パラメータなどの設定データ、中間データなどの他、コントローラの動作ログがSSDログとして記憶される。揮発性メモリとして、例えば、DRAM(Dynamic Random Access Memory)が用いられる。SSD23の構成例については、後述する。
【0029】
オーディオシステム24は、マイクロホンとスピーカ(図示せず)が接続され、音声データの記録、再生および出力を行う。なお、マイクロホンとスピーカは、例えば、情報処理装置1に内蔵されてもよいし、情報処理装置1とは別体であってもよい。
【0030】
WLAN(Wireless Local Area Network)カード25は、ワイヤレス(無線)LANにより、ネットワークに接続して、データ通信を行う。WLANカード25は、例えば、ネットワークからのデータを受信した際に、データを受信したことを示すイベントトリガを発生する。
USBコネクタ26は、USBを利用した周辺機器類を接続するためのコネクタである。
【0031】
EC31は、情報処理装置1のシステムの動作状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視して制御するワンチップマイコン(One-Chip Microcomputer)である。EC31は、CPU、ROM、RAM、複数チャネルのA/D入力端子、D/A出力端子、タイマおよびデジタル入出力端子(図示せず)を備える。EC31のデジタル入出力端子には、例えば、入力部32、電源回路33、放熱ファン351などが接続されており、EC31は、これらの動作を制御可能とされている。
また、EC31は、チップセット21を経由してプロセッサ11のクロック周波数の変更等の制御を行い、消費電力を制御してもよい。
【0032】
入力部32は、例えば、キーボードや、タッチパッドなど、ユーザの操作を検出し、検出した操作に応じた操作信号をEC31に出力する入力デバイスを備える。入力部32は、
図1に例示されるディスプレイ14に重畳したタッチセンサとして構成されてもよい。
【0033】
電源回路33は、例えば、DC/DCコンバータ、充放電ユニット、AC/DCアダプタなどを備える。例えば、電源回路33は、ACアダプタ(図示せず)などの外部電源またはバッテリ34から供給される直流電圧を、情報処理装置1を動作させるために必要な複数の電圧に変換する。また、電源回路33は、EC31の制御に基づいて、情報処理装置1の各部に電力を供給する。
【0034】
バッテリ34は、例えば、リチウムイオンバッテリ等の二次電池を備える。バッテリ34は、情報処理装置1に外部電源から電力供給されている場合に、電源回路33を介して充電され、情報処理装置1に外部電源から電力供給されていない場合に、電源回路33を介して、蓄積した電力を情報処理装置1の動作電力として出力する。
【0035】
電源ボタン36は、押下操作が受け付けられる都度、情報処理装置1の全体の電源投入(Power ON)および電源断(Power OFF)を制御する。電源ボタン36は、押下を示す押下信号をEC31に出力する。EC31は、情報処理装置1が電源断であるときに電源ボタン36から押下信号が入力されるとき、電源回路33に対し、情報処理装置1の各デバイスへの電力供給を開始させる(電源投入)。プロセッサ11は、自部への電力供給の開始を検出するとき、BIOSメモリ22からBIOSを読み取り、メインメモリ12にロードし、BIOSに従って起動処理(ブート)を実行する。起動処理において、プロセッサ11は、SSD23に退避させていたデータをメインメモリ12にロードする。その後、プロセッサ11は、OSを起動し、OSの起動が完了した後、SSD23などのデバイスの制御に係るデバイスドライバの実行を開始する。この時点までに、SSD23への電力供給が再開され、SSD23にアクセスできる状態となる。
【0036】
他方、EC31は、情報処理装置1に電源投入されているときに電源ボタン36から押下信号が入力されるとき、プロセッサ11に停止処理(シャットダウン)を実行させる。プロセッサ11は、停止処理において、その時点で作業領域に存在するデータをSSD23その他の補助記憶装置に退避させる。プロセッサ11は、データの退避を終了した後、その時点で実行しているアプリ、SSD23などのデバイスドライバ、その他のプログラムによる処理を停止する。その後、プロセッサ11は、停止処理の完了をEC31に通知する。EC31は、電源回路33に情報処理装置1の各デバイスへの電力供給を停止させる。このとき、SSD23への電力供給が停止する。電力供給が停止することでDRAM233dに記憶されているデータ(SSD23のファームウェアログも含む)が消去される。他方、NAND237nに記憶されたユーザデータは保存される。
【0037】
次に、本実施形態に係るSSD23の構成例について説明する。
図3は、本実施形態に係るSSD23の構成例を示す概略ブロック図である。
SSD23は、論理ホストIF232、DRAM233d、SoC234、I/Oバッファ236およびNANDメモリ237nを備える。
論理ホストIF232は、論理ホストLHとSoC234と接続し、相互間で各種のデータを可能とする入出力インタフェースである。
DRAM233dは、SoC234の作業領域として用いられる揮発性メモリの例である。
【0038】
I/Oバッファ236は、NANDメモリ237nとのデータの入出力におけるバッファ(キャッシュ)として用いられるメモリである。
NANDメモリ237nは、ユーザデータを記憶する不揮発性メモリの例である。NANDメモリ237nは、NAND型フラッシュメモリと呼ばれることもある。NANDメモリ237nは、論理ホストLHから通知されたコマンドに従って新たなユーザデータがNANDメモリ237nに書き込まれうる。また、論理ホストLHから通知されたコマンドに従ってNANDメモリ237nに記憶されたデータの一部が読み取られる。
【0039】
SoC234は、ホストアクセスコントローラ234hと、NANDアクセスコントローラ234nを備える。SoC234は、所定のファームウェアに記述された命令で示される処理を実行し、ホストアクセスコントローラ234hと、NANDアクセスコントローラ234nの機能を実現してもよい。
【0040】
ホストアクセスコントローラ234hは、主に論理ホストLHからのアクセス制御を実行する。ホストアクセスコントローラ234hは、NVMeコントローラ234a、コマンド転送モジュール234b、リソース管理モジュール234c、DMA管理モジュール234dおよびステータスモニタモジュール234eを備える。
【0041】
NVMe(Non-Volatile Memory Express)コントローラ234aは、論理ホストLHから通知された複数のコマンドを並列に実行可能とし、それぞれの実行状態を管理する。
コマンド転送モジュール234bは、NVMeコントローラ234aに通知されたコマンドを取り込み(フェッチ)、リソース管理モジュール234cに転送する。
リソース管理モジュール234cは、DRAM233dおよびSoC234などのリソースの使用状態を管理する。リソース管理モジュール234cは、リソースの使用状態に基づいてコマンド転送モジュール234bから入力されるコマンドの実行の可否を判定し、実行可と判定してコマンドをNANDアクセスコントローラ234nに転送する。リソース管理モジュール234cは、コマンドの実行に際し、その時点で利用可能なリソースを示すリソース情報をNANDアクセスコントローラ234nに通知してもよい。リソース管理モジュール234cは、コマンドの実行状態をNVMeコントローラ234aとステータスモニタモジュール234eに通知する。リソース管理モジュール234cは、実行不可と判定したコマンドについて、実行不可であることをNVMeコントローラ234aにコマンド転送モジュール234bを経由して通知し、また、ステータスモニタモジュール234eに通知する。
【0042】
DMA(Direct Memory Access)管理モジュール234dは、論理ホストLHから通知されたバス制御データに従って、SSD23に備わるメモリ間、および、SoC234と各メモリとの間のデータの転送を制御する。バス制御データにより、個々のコマンドの読み書きのタイミング、読み取り元のメモリまたはその他のデバイス、転送先のメモリまたはその他のデバイス、転送速度、などの情報が指示される。また、DMA管理モジュール234dは、NANDメモリ237nを読み取り元または書き込み先として指示するバス制御データをNANDアクセスコントローラ234nに転送する。
【0043】
ステータスモニタモジュール234eは、DRAM233dに記憶された情報に基づいてSSD23の動作状態を監視する。DRAM233dには、個々のモジュールに提供されたコマンドやそれらの実行状態、コマンドの実行に伴うリソースの状態などの情報が蓄積されファームウェアログとして形成される。ファームウェアログは、SSD23の動作状態を示す動作ログに相当する。
ステータスモニタモジュール234eは、SSDの動作状態を示す統計的ログを生成し、論理ホストLHに通知する。統計的ログには、SSDの状態を統計的に示す情報が記述される。例えば、所定の単位時間当たりの不揮発性メモリ(NANDメモリ237n)への入出力アクセス回数、不揮発性メモリにおける使用済みの記憶容量などが含まれる。ステータスモニタモジュール234eは、論理ホストLHからのログ要求コマンドの受信に応じて統計的ログを生成および通知してもよいし、予め定めた時刻または時間間隔で自律的に統計的ログを生成し、生成した統計的ログを通知してもよい。
【0044】
NANDアクセスコントローラ234nは、主にNANDメモリ237nへのアクセスを制御する。
NANDアクセスコントローラ234nは、NANDコントローラ234k、DMA管理モジュール234lおよびリソース保護モジュール234mを備える。
NANDコントローラ234kは、主にNANDメモリ237nの入出力を制御する。NANDコントローラ234kは、通知されるコマンドに従ってDMA管理モジュール234lとリソース保護モジュール234mを経由してNANDメモリ237nにアクセスし、コマンドで指示された処理を行う。コマンドでは、記憶されているデータファイルとその名称と容量、ディレクトリ構成などの照会、データファイルの開放(オープン)または閉鎖(クローズ)、データの書き込み、データの読み取り、データの消去、などの処理が指示されうる。
【0045】
DMA管理モジュール234lは、論理ホストLHからホストアクセスコントローラ234hを経由して通知されたバス制御データに従って、NANDコントローラ234kで通知されるコマンドに関して、SSD23に備わるメモリ間、および、SoC234と各メモリとの間のデータの転送を制御する。
リソース保護モジュール234mは、NANDコントローラ234kから通知されるコマンドから、所定の種類のリソースを読み取り専用で保護する。つまり、コマンドにより消去または変更が指示されるデータが、所定の種類のリソースに属する場合には、リソース保護モジュール234mは、そのコマンドで指示される処理として、消去または変更を実行しない。所定の種類のリソースには、消去または変更により、情報処理装置1の機能に障害が生じる可能性があるリソースが含まれうる。かかるリソースは、例えば、OS(Operating System)の一部としてインストールされたシステムファイル、フォルダ、レジストリーキーなどが該当する。
【0046】
上記のように、各モジュールの動作状態やリソースの状態を示す情報が少なくとも変更される都度、DRAM233dに記憶され、累積された情報がファームウェアログとして形成される。しかしながら、ファームウェアログはNANDメモリ237nには蓄積されない。NANDメモリ237nなどのフラッシュメモリは、頻繁にアクセスを受けることで、機能の劣化が助長されるので、正常に動作できる寿命が短縮するためである。
【0047】
本実施形態では、論理ホストLHから所定のトリガが入力されるとき、ホストアクセスコントローラ234hは、NANDアクセスコントローラ234nに対して、その時点において蓄積されているファームウェアログをDRAM233dから読み取らせ、読み取ったファームウェアログをNANDメモリ237nに書き込ませる。SSD23が電源断となっても、不揮発性メモリであるNANDメモリ237nにおいてファームウェアログが保存される。ファームウェアログは、主に障害の解析をはじめ、情報処理装置1またはSSD23の保守、管理に用いられ、正常に動作する場合には特に必要とされない。トリガとして、情報処理装置1への電力供給の停止の可能性をSSD23に明示的または暗示的に通知できる信号が用いられるようにしてもよい。トリガは、既存の信号でもよいし、新たな専用の信号でもよい。
【0048】
起動処理により、SSD23への電源供給が再開され、プロセッサ11によりSSD23のデバイスドライバが起動すると、論理ホストLHとSSD23とのデータの読み書きが再開できる状態となる。本実施形態では、この状態のもとで、論理ホストLH(プロセッサ11、チップセット21、EC31のいずれでもよい)は、ログ要求コマンドを生成し、生成したログ要求コマンドをSSD23に出力する。ホストアクセスコントローラ234hは、論理ホストLHから入力されたログ要求コマンドをNANDアクセスコントローラ234nに出力し、NANDメモリ237nに記憶されたファームウェアログを読み取らせ、読み取ったファームウェアログを出力させる。
【0049】
次に、本実施形態に係るファームウェアログの保存処理の例について説明する。
図4は、本実施形態に係るファームウェアログの保存処理の例を説明するための説明図である。
図4に例示される処理は、電源ボタン36への押下を契機として開始される。
電源ボタン36は、自部への押下操作を検出するとき(ボタン押下)、押下を示す押下信号をEC31に出力する(ボタン押下通知)。
【0050】
EC31は、電源ボタン36から押下信号が入力されるとき、トリガの例として電力喪失保護信号PLN#(PLP:Power Loss Protection)を生成し、生成した電力喪失通知信号をSSD23に出力する。電力喪失保護信号は、従来から、電力供給の停止の予告を主目的として用いられる電気信号である。
SSD23のSoC234は、EC31から電力喪失保護信号PLN#が入力されるとき、揮発性メモリ233からファームウェアログを読み取り、読み取ったファームウェアログを不揮発性メモリ237に書き込む。不揮発性メモリ237には、ユーザデータの他、ファームウェアログが記憶される。
【0051】
次に、本実施形態に係るファームウェアログの復元処理の例について説明する。
図5は、本実施形態に係るファームウェアログの復元処理の例を説明するための説明図である。
図5に例示される処理は、論理ホストLHの起動(または再起動)処理中の所定の段階または処理後に開始される場合を例にする。
起動処理は、論理ホストLHの主たるデバイスであるプロセッサ11により、例えば、EFI(Extensible Firmware Interface)の規定に従って構成されたファームウェアに従って実行される。BIOSは、かかるEFIに準拠したファームウェアに相当する。プロセッサ11は、ファームウェアログの要求を示すログ要求コマンドを生成し、生成したログ要求コマンドをSoC234に出力する。
SoC234は、プロセッサ11からログ要求コマンドが入力されるとき、不揮発性メモリ237からファームウェアログを読み取る。SoC234は、読み取ったファームウェアログをプロセッサ11、または、論理ホストLHのその他のデバイスに出力する。
【0052】
次に、本実施形態に係るトリガの発行に係るハードウェア構成例について説明する。
図6は、本実施形態に係るトリガの発行に係るハードウェア構成例を示す説明図である。
図6は、電気回路CTを例にする。電気回路CTは、電源ボタン36の押下を検出し、トリガとして電力喪失保護信号PLN#を電気的に生成する。
【0053】
電気回路CTは、スイッチとオペアンプを備える。スイッチの一端は接地され、他端には切片が接続される。切片は、押下によりスイッチの一端と接続される。オペアンプの入力端は、スイッチの他端に接続され、出力端は、コネクタCNを経由してSSD23に電気的に接続されている。コネクタCNは、例えば、M.2コネクタである。M.2は、内蔵拡張カードのフォームファクタや接続端子に関する規格である。スイッチとオペアンプは、隣接して配置されてもよいし、別個に配置されてもよい。スイッチは、例えば、電源ボタン36と一体に構成される。オペアンプは、例えば、マザーボードMB上に配置される。
【0054】
電源ボタン36が押下されると、オペアンプの入力端が接地されるので、入力端の電位が電源ボタン36の押下前に生じていた正の電位よりも低下する。このとき、オペアンプは出力端から、電源ボタン36の押下前とは電位が有意に異なる電気信号を電力喪失保護信号PLN#として出力する。
SSD23のSoC234は、電力喪失保護信号PLN#が入力されるとき、揮発性メモリ233に記憶されたファームウェアログを読み取り、読み取ったファームウェアログを不揮発性メモリ237に記憶する。
【0055】
次に、本実施形態に係る情報処理装置1におけるファームウェア取得処理の例について説明する。
図7は、本実施形態に係る情報処理装置1におけるファームウェア取得処理の例を示すフローチャートである。
(ステップS102)論理ホストLHは、SSD23のファームウェアログの必要性が生じうる所定のイベント(例えば、電源ボタン36の押下)が発生したか否かを判定する。発生したと判定されるとき(ステップS102 YES)、ステップS104の処理に進む。発生していないと判定されるとき(ステップS102 NO)、ステップS102の処理を繰り返す。
(ステップS104)論理ホストLHは、イベントを示すトリガを生成し、生成したトリガをSSD23に出力する(トリガ通知)。
(ステップS106)SSD23のSoC234は、論理ホストLHからトリガが通知されるとき、揮発性メモリ233からファームウェアログを読み取る。
(ステップS108)SoC234は、読み取ったファームウェアログを不揮発性メモリに記憶する。
【0056】
(ステップS110)論理ホストLHは、電源断が指示されたか(例えば、動作中における電源ボタン36の押下)否かを判定する。電源断が指示されたとき(ステップS110 YES)、終了処理を開始し、終了処理が完了した後、ステップS112の処理に進む。電源断が指示されないとき(ステップS110 NO)、ステップS110の処理を繰り返す。
(ステップS112)論理ホストLHは、電力供給が再開されたか否かを判定する。再開されたとき(ステップS112 YES)、ステップS114の処理に進む。電力供給が再開されていないとき(ステップS112 NO)、ステップS112の処理を繰り返す。よって、ステップS110においてSSD23は電力断となった後、ステップS112において電力供給の再開が判定される(パワーサイクル)。電力断により揮発性メモリ233に記憶されたファームウェアログは消去されるが、不揮発性メモリ237においてファームウェアが維持される。
【0057】
(ステップS114)論理ホストLHは、ログ要求コマンドを生成し、生成したログ要求コマンドをSSD23に出力する。
(ステップS116)SSD23のSoC234は、論理ホストLHからログ要求コマンドが入力されるとき、不揮発性メモリ237からファームウェアログを読み取る。
(ステップS118)SoC234は、読み取ったファームウェアログを論理ホストLHに出力する。その後、
図7の処理を終了する。
【0058】
なお、ステップS102において、論理ホストLHは、所定のイベントとして、特定のプログラムまたは指令で指示される処理のタイムアウトの発生を検出してもよい。タイムアウトの検出は、その指令の指示を特定した時点から所定の経過時間が経過しても処理結果となる値が得られないことをもって判定される。また、ステップS102においてタイムアウトの発生が検出された場合には、論理ホストLHは、ステップS110において電源断が指示されるか否かに関わらず、終了処理を開始してもよい。
【0059】
ステップS110において、論理ホストLHは、電源断に代えて、動作停止(シャットダウン)が指示されるとき、終了処理を開始してもよい。動作停止は、入力部32または他機器からの操作信号で指示されうる。論理ホストLHは、現時刻が予め設定された停止時刻に達するとき、終了処理を開始してもよい。
ステップS112における電力供給の再開の契機は、停止中における電源ボタン36の押下に限られず、外部機器から入力される起動指示コマンドの検出、現時刻が予め設定された起動時刻に達すること、などであってもよい。
【0060】
ステップS110において、論理ホストLHは、電源断に代えて、再起動が指示されるとき、終了処理を開始してもよい。再起動は、入力部32または他機器からの操作信号で指示されうる。論理ホストLHは、終了処理が完了した後、ステップS112を省略し、起動処理を開始してもよい。起動処理が完了するまでには、論理ホストLHおよびSSD23には電力供給が再開される。そして、論理ホストLHにおけるSSD23のデバイスドライバの実行が再開される。その後、ステップS114の処理に進む。
【0061】
以上に説明したように、本実施形態に係る情報処理装置1は、ホストデバイス(例えば、論理ホストLH)と、記憶装置(例えば、SSD)と、を備える。前記記憶装置が、不揮発性記憶媒体(例えば、不揮発性メモリ237)、揮発性記憶媒体(例えば、揮発性メモリ233)および制御器(例えば、SoC234)を備える。制御器は、不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御し、自器の動作状態を示す動作ログ(例えば、ファームウェアログ)を揮発性記憶媒体に記憶する情報処理装置である。そして、制御器は、ホストデバイスからトリガが入力されるとき、動作ログを揮発性記憶媒体から不揮発性記憶媒体に転送する。制御器は、記憶装置への電力供給が停止され、再開された後、動作ログを不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する。
この構成によれば、電力供給が停止される前に記憶装置の動作ログが不揮発性記憶媒体に退避され、電力供給が再開された後、トリガの発行に応じて動作ログが出力される。そのため、電力供給を停止して、事象の再現を行わずに、その事象が発生した時点における動作ログを取得できる。また、動作ログの取得のために専用の機器を要しない。不揮発性記憶媒体への各時点における動作状態の書き込みを要しないため、製品寿命の短縮を招かずに済む。
【0062】
また、トリガは、情報処理装置1への電力供給の停止の可能性を示す信号(例えば、電力喪失保護信号PLN#)であってもよい。
この構成によれば、トリガの送信先となる制御器には、電力供給の停止が予告されるので、電力供給の停止に備えた処理(例えば、動作中のデータの退避)と併せて、動作ログを退避することができる。そのため、電力供給の停止による障害を予防することができる。
【0063】
また、電源ボタン36と、電源ボタン36が押下されるとき、制御器に電力喪失保護信号PLN#を出力する電気回路(例えば、スイッチとオペアンプ)を備えてもよい。
この構成によれば、電源ボタン36の押下を契機として動作ログが保存される。そのため、電源ボタン36の押下により、動作停止または再起動が要求される時点までの動作ログが保存されるので、保存された動作ログをその時点までに発生した事象の解析に役立てることができる。
【0064】
ホストデバイスは、起動処理において制御器にログ要求コマンドを出力し、制御器は、ログ要求コマンドの入力に応じて、動作ログを不揮発性記憶媒体から読み取り、ホストデバイスに出力してもよい。
この構成によれば、ホストデバイスは、起動時に不揮発性記憶媒体に保存された動作ログを取得することができる。そのため、起動後に取得された動作ログを用いて、動作停止前に生じた事象を解析することができる。
【0065】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。上述の実施形態において説明した各構成は、任意に組み合わせることができる。
【符号の説明】
【0066】
1…情報処理装置、11…プロセッサ、12…メインメモリ、13…ビデオサブシステム、14…ディスプレイ、21…チップセット、22…BIOSメモリ、23…SSD、24…オーディオシステム、25…WLANカード、26…USBコネクタ、31…EC、32…入力部、33…電源回路、34…バッテリ、35…冷却部、351…放熱ファン、353…温度センサ、36…電源ボタン、232…論理ホストI/F、233…揮発性メモリ、233d…DRAM、234…SoC、234h…ホストアクセスコントローラ、234n…NANDアクセスコントローラ、236…I/Oバッファ、237…不揮発性メモリ、237n…NANDメモリ、BD…筐体、LH…論理ホスト、MB…マザーボード
【手続補正書】
【提出日】2023-04-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ホストデバイスと、
記憶装置と、を備え、
前記記憶装置が、不揮発性記憶媒体、揮発性記憶媒体および制御器を備える情報処理装置であって、
前記制御器は、前記ホストデバイスから通知されるコマンドに基づいて、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御し、前記コマンドに基づく動作状態を示すファームウェアログを前記揮発性記憶媒体に記憶し、前記不揮発性記憶媒体に記憶せず、
前記ホストデバイスは、前記ファームウェアログを必要とする所定のイベントが発生するとき、前記記憶装置にトリガを出力し、
前記制御器は、前記ホストデバイスから前記トリガが入力されるとき、
前記ファームウェアログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送し、
前記記憶装置への電力供給が停止され、再開された後、前記ホストデバイスからのログ要求コマンドの入力に応じて、前記ファームウェアログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する
情報処理装置。
【請求項2】
前記トリガは、前記情報処理装置への電力供給の停止の可能性を示す信号である
請求項1に記載の情報処理装置。
【請求項3】
前記トリガは、電力喪失保護信号である
請求項2に記載の情報処理装置。
【請求項4】
電源ボタンと、
前記電源ボタンが押下されるとき、前記制御器に前記電力喪失保護信号を出力する電気回路と、を備える
請求項3に記載の情報処理装置。
【請求項5】
前記ホストデバイスは、起動処理において前記制御器にログ要求コマンドを出力し、
前記制御器は、前記ログ要求コマンドの入力に応じて、前記ファームウェアログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力する
請求項1から請求項4のいずれか一項に記載の情報処理装置。
【請求項6】
前記記憶装置は、固体記憶装置である
請求項1から請求項5のいずれか一項に記載の情報処理装置。
【請求項7】
ホストデバイスと、
記憶装置と、を備え、
前記記憶装置が、不揮発性記憶媒体および揮発性記憶媒体を備える
情報処理装置における制御方法であって、
前記記憶装置は、前記ホストデバイスから通知されるコマンドに基づいて、前記不揮発性記憶媒体へのデータの書き込みおよび読み取りを制御する制御ステップと、
前記コマンドに基づく動作状態を示すファームウェアログを前記不揮発性記憶媒体に記憶せず、前記揮発性記憶媒体に記憶するログ記憶ステップと、を実行し、
前記ホストデバイスは、前記ファームウェアログを必要とする所定のイベントが発生するとき、前記記憶装置にトリガを出力し、
前記記憶装置は、
前記ホストデバイスから前記トリガが通知されるとき、
前記ファームウェアログを前記揮発性記憶媒体から前記不揮発性記憶媒体に転送するログ転送ステップと、
前記ホストデバイスの電力供給が停止され、再開された後、前記ホストデバイスからのログ要求コマンドの入力に応じて、前記ファームウェアログを前記不揮発性記憶媒体から読み取り、前記ホストデバイスに出力するログ出力ステップと、を実行する
制御方法。