IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レノボ・シンガポール・プライベート・リミテッドの特許一覧

<>
  • 特許-情報処理装置および制御方法 図1
  • 特許-情報処理装置および制御方法 図2
  • 特許-情報処理装置および制御方法 図3
  • 特許-情報処理装置および制御方法 図4
  • 特許-情報処理装置および制御方法 図5
  • 特許-情報処理装置および制御方法 図6
  • 特許-情報処理装置および制御方法 図7
  • 特許-情報処理装置および制御方法 図8
  • 特許-情報処理装置および制御方法 図9
  • 特許-情報処理装置および制御方法 図10
  • 特許-情報処理装置および制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】情報処理装置および制御方法
(51)【国際特許分類】
   G06F 1/20 20060101AFI20231024BHJP
   H05K 7/20 20060101ALI20231024BHJP
【FI】
G06F1/20 D
G06F1/20 B
H05K7/20 J
【請求項の数】 7
(21)【出願番号】P 2022070655
(22)【出願日】2022-04-22
【審査請求日】2022-04-22
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【弁理士】
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】平良 優介
(72)【発明者】
【氏名】後藤 康博
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2016-206844(JP,A)
【文献】特開2014-078199(JP,A)
【文献】特開2010-073995(JP,A)
【文献】特開2015-088672(JP,A)
【文献】特開2017-084148(JP,A)
【文献】特開2020-004233(JP,A)
【文献】米国特許出願公開第2014/0240913(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/20
H05K 7/20
(57)【特許請求の範囲】
【請求項1】
プロセッサ、コントローラ、固体記憶装置、および、放熱ファンを備え、
前記プロセッサと前記コントローラは、前記固体記憶装置とバスを用いて接続され、 前記固体記憶装置が、前記放熱ファンと対応する位置に設置された情報処理装置であって、
前記固体記憶装置は、自装置の温度である第1温度を測定する第1温度センサを備え、
前記情報処理装置は、前記固体記憶装置とは別個の部材の温度である第2温度を測定する第2温度センサを備え、
前記プロセッサは、
前記固体記憶装置の位置を示す位置情報と対応付けて当該固体記憶装置の識別情報を取得し、
前記コントローラは、
前記固体記憶装置の識別番号と論理アドレスを予め取得し、
前記プロセッサが取得した識別番号に対応する位置情報と当該識別番号に対応する論理アドレスを対応付けて参照テーブルを構成し、
前記固体記憶装置の第1温度を示す第1温度データと当該固体記憶装置の論理アドレスを取得するとき、
前記参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、 特定した位置情報で指示される位置に対応する放熱ファンを制御する際、
前記第1温度が前記放熱ファンの停止温度閾値よりも低くなるとき、前記第2温度に基づいて前記放熱ファンを制御し、
前記第2温度が前記放熱ファンの停止温度閾値よりも低くなるとき、取得した前記第1温度データに示される第1温度に基づいて前記放熱ファンを制御する
情報処理装置。
【請求項2】
前記プロセッサは、
自器の動作を開始するとき、前記位置情報と前記識別情報を取得し、
前記位置情報と前記識別情報を前記コントローラに通知し、
前記コントローラは、
前記固体記憶装置へのポーリングを開始する
請求項1に記載の情報処理装置。
【請求項3】
前記固体記憶装置は
記コントローラから送信されたポーリングパケットを検出するとき、
測定した第1温度を示す前記第1温度データを前記コントローラに応答する
請求項2に記載の情報処理装置。
【請求項4】
前記コントローラは、
前記参照テーブルに、取得した前記第1温度データを前記位置情報に対応付けて記憶し、 前記第1温度データを取得できないとき、特定した放熱ファンを前記参照テーブルに記憶した第1温度データに基づいて制御する
請求項1に記載の情報処理装置。
【請求項5】
前記コントローラは、
最後に第1温度データを取得した時点から所定期間を経過した後、第1温度データに基づく前記放熱ファンの動作を停止または減速する
請求項4に記載の情報処理装置。
【請求項6】
前記コントローラは、
前記固体記憶装置へのポーリングに対する応答を受信しない回数である未応答回数が所定回数を超えるとき、第1温度データに基づく前記放熱ファンの制御を停止または減速する 請求項5に記載の情報処理装置。
【請求項7】
プロセッサ、コントローラ、固体記憶装置、および、放熱ファンを備え、
前記プロセッサと前記コントローラは、前記固体記憶装置とバスを用いて接続され、 前記固体記憶装置が、前記放熱ファンと対応する位置に設置された情報処理装置における制御方法であって、
前記固体記憶装置は、自装置の温度である第1温度を測定する第1温度センサを備え、
前記情報処理装置は、前記固体記憶装置とは別個の部材の温度である第2温度を測定する第2温度センサを備え、
前記プロセッサが、
前記固体記憶装置の位置を示す位置情報と対応付けて当該固体記憶装置の識別情報を取得する第1ステップと、
前記コントローラは、
前記固体記憶装置の識別番号と論理アドレスを予め取得し、
前記プロセッサが取得した識別番号に対応する位置情報と当該識別番号に対応する論理アドレスを対応付けて参照テーブルを構成する第2ステップと、
前記固体記憶装置の第1温度を示す第1温度データと当該固体記憶装置の論理アドレスを取得するとき、
前記参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、 特定した位置情報で指示される位置に対応する放熱ファンを制御する第3ステップであって、
前記第1温度が前記放熱ファンの停止温度閾値よりも低くなるとき、前記第2温度に基づいて前記放熱ファンを制御し、
前記第2温度が前記放熱ファンの停止温度閾値よりも低くなるとき、取得した前記第1温度データに示される第1温度に基づいて前記放熱ファンを制御する第3ステップと、を実行する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および制御方法、例えば、情報処理装置に備わる補助記憶装置に関する。
【背景技術】
【0002】
パーソナルコンピュータ(PC:Personal Computer)をはじめとする情報処理装置には、取得したデータを記憶する固体記憶装置(SSD:Solid State Drive)を備えるものがある。SSDは、半導体メモリを用いて各種のデータを記憶するため、従来から普及しているハードディスクドライブ(HDD:Hard Disk Drive)よりも高速なアクセスを実現する。高速なSSDは発熱が著しく、高温で長時間動作させると熱による損傷を受けやすい。このことは、製品寿命を短縮し、データ破損または消失の可能性を高くする原因となりうる。そのため、SSDの温度管理が重要になる。
【0003】
そこで、SSDの温度(本願では、「SSD温度」と呼ぶことがある)のモニタリング(監視)において自己監視分析報告(SMART:Self-Monitoring and Reporting Technology)機能を用いることが提案されてきた。SSDには温度センサを内蔵または装着させておき、計測されたSSD温度は情報処理装置の本体に通知され、通知されたSSD温度は、放熱ファンの動作を制御し、発熱したSSDを冷却するために用いられる。SSD温度を示す温度データの伝送において、例えば、システムマネジメントバス(SMBus(登録商標):System Management Bus)を用いられる。SMBus(登録商標)は、主にシステム管理に用いられるデバイス間汎用コミュニケーションバスである。SMBus(登録商標)は、PCI Express(登録商標)(PCIe(登録商標):Peripheral Component Interconnect Express)などの代表的な入出力方式において採用されている。
【0004】
自己監視分析報告機能を活用することで、SSD内蔵の温度センサ(本願では、「内蔵温度センサ」と呼ぶことがある)を用いて計測されるSSD温度が通知されるため、温度センサの配置に係る制約を受けない。これに対し、SSDの外部に温度センサ(本願では、「外部温度センサ」と呼ぶことがある)を用いる場合には、SSDに十分に近接した位置に配置する必要がある。内蔵センサでは、計測された温度をそのままSSD温度として利用できる。これに対し、外部温度センサを用いて計測された温度に対しては、外部温度センサの配置によるSSD温度の差異を考慮する必要がある。内蔵センサでは、計測されたSSD温度が実時間で通知される。これに対し、外部温度センサでは、SSDから熱が伝わるまでの遅延時間がかかるため、実時間のSSD温度が得られないことがある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2018-094802号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
自己監視分析報告機能を用いる場合、個々のSSDは入出力方式に所定の論理アドレスを用いて識別される。論理アドレスは、情報処理装置10のホストシステムまたはSSDが起動する都度、アドレス解決プロトコル(ARP:Address Resolution Protocol)を用いて割り当てられる。かかる論理アドレスは起動時期ごとに異なりうる。そのため、個々のSSDを区別できても、特定のSSDを同定できないことがある。ひいては、発熱した特定のSSDを冷却する際、そのSSDに近接した放熱ファンを特定することができないことがある。複数の冷却ファンをSSDと対応付けて備える情報処理装置では、熱保護を優先して全ての冷却ファンを動作させることも考えられる。その場合には、放熱の必要性が低いSSDに対する放熱ファンも動作してしまうため、消費電力と騒音レベルが必要以上に増加しかねない。
【0007】
また、情報処理装置10の本体(ホスト)の動作モードが通常よりも消費電力が低い低電力モード(いわゆるスリープ)である場合、SMBus(登録商標)に接続される機器との入出力が制限されることがある。図11に例示されるように、ホストの動作モードがACPI(Advanced Configuration and Power Interface)に規定された通常の動作状態S0よりも消費電力が少ないスリーピング状態(S0i3以下の状態)、または、PCIe)に規定されたL状態よりも消費電力が少ないL状態である場合には、SSDを非動作とし、SSDからの応答(SSD応答)はアクセス不可となる。但し、動作状態がS0であって、L状態がL1.2状態である場合には、応答を行う(アクセス可能)一部の機種が存在するに過ぎない。図11において、D状態とは接続先のデバイスの電力状態を指し、L状態とは情報処理装置10とデバイスとのリンクに対する電力状態を指す。SSD応答が得られないと、ホストは、SSD応答に付随するSSD温度を取得することができないため、SSD温度に基づく冷却ファンの動作の制御を実現できない。
【課題を解決するための手段】
【0008】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様に係る情報処理装置は、プロセッサ、コントローラ、固体記憶装置、および、放熱ファンを備え、前記プロセッサと前記コントローラは、前記固体記憶装置とバスを用いて接続され、前記固体記憶装置が、前記放熱ファンと対応する位置に設置された情報処理装置であって、前記プロセッサは、前記固体記憶装置の位置を示す位置情報と対応付けて当該固体記憶装置の識別情報を取得し、前記コントローラは、前記固体記憶装置の識別情報と論理アドレスを予め取得し、前記プロセッサが取得した識別番号に対応する位置情報と当該識別情報に対応する論理アドレスを対応付けて参照テーブルを構成し、前記固体記憶装置の温度を示す温度データと当該固体記憶装置の論理アドレスを取得するとき、前記参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、特定した位置情報で指示される位置に対応する放熱ファンを取得した温度データに基づいて制御する。
【0009】
上記の情報処理装置において、前記プロセッサは、自器の動作を開始するとき、前記位置情報と前記識別情報を取得し、前記位置情報と前記識別情報を前記コントローラに通知し、前記コントローラは、前記固体記憶装置へのポーリングを開始してもよい。
【0010】
上記の情報処理装置において、前記固体記憶装置は、自装置の温度を測定する温度センサを備え、前記コントローラから送信されたポーリングパケットを検出するとき、測定した温度を示す前記温度データを前記コントローラに応答してもよい。
【0011】
上記の情報処理装置において、前記コントローラは、前記参照テーブルに、取得した前記温度データを前記位置情報に対応付けて記憶し、前記温度データを取得できないとき、特定した放熱ファンを前記参照テーブルに記憶した温度データに基づいて制御してもよい。
【0012】
上記の情報処理装置において、前記コントローラは、最後に温度データを取得した時点から所定期間を経過した後、温度データに基づく前記放熱ファンの動作を停止または減速してもよい。
【0013】
上記の情報処理装置において、前記コントローラは、前記固体記憶装置へのポーリングに対する応答を受信しない回数である未応答回数が所定回数を超えるとき、温度データに基づく前記放熱ファンの制御を停止または減速してもよい。
【0014】
本発明の第2態様に係る制御方法は、プロセッサ、コントローラ、固体記憶装置、および、放熱ファンを備え、前記プロセッサと前記コントローラは、前記固体記憶装置とバスを用いて接続され、前記固体記憶装置が、前記放熱ファンと対応する位置に設置された情報処理装置における制御方法であって、前記プロセッサが、前記固体記憶装置の位置を示す位置情報と対応付けて当該固体記憶装置の識別情報を取得する第1ステップと、前記コントローラは、前記固体記憶装置の識別情報と論理アドレスを予め取得し、前記プロセッサが取得した識別番号に対応する位置情報と当該識別情報に対応する論理アドレスを対応付けて参照テーブルを構成する第2ステップと、前記固体記憶装置の温度を示す温度データと当該固体記憶装置の論理アドレスを取得するとき、前記参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、特定した位置情報で指示される位置に対応する放熱ファンを取得した温度データに基づいて制御する第3ステップと、を実行する。
【発明の効果】
【0015】
本発明の実施形態によれば、個々の固体記憶装置の温度管理を経済的に実現することができる。
【図面の簡単な説明】
【0016】
図1】本実施形態に係る情報処理装置のハードウェア構成を例示する概略ブロック図である。
図2】本実施形態に係るSSDの配置例を示す側面図である。
図3】本実施形態に係るECとSSDとの接続例を示す図である。
図4】本実施形態に係る放熱ファンとSSDの配置例を示す図である。
図5】本実施形態に係るSSDポートのピンアサインの例を示す図である。
図6】本実施形態に係るデータ群の構成例を示す図である。
図7】本実施形態に係る情報処理装置の機能構成例を示す概略ブロック図である。
図8】本実施形態に係るアドレス設定処理の例を示すフローチャートである。
図9】本実施形態に係る参照テーブル生成処理の例を示すフローチャートである。
図10】本実施形態に係るSSD温度制御の例を示すフローチャートである。
図11】情報処理装置本体の動作状態とSSDの動作状態との関係を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照して説明する。まず、本発明の実施形態に係る情報処理装置10の概要について説明する。図1は、本実施形態に係る情報処理装置10のハードウェア構成を例示する概略ブロック図である。以下の説明では、情報処理装置10がノートブック型パーソナルコンピュータ(PC:Personal Computer)である場合を主とするが、これには限られない。情報処理装置10は、デスクトップ型PC、タブレット端末装置、多機能携帯電話機(スマートフォン)など、いずれの形態で実現されてもよい。
【0018】
情報処理装置10は、CPU(Central Processing Unit)11と、メインメモリ12と、GPU(Graphic Processing Unit)13と、ディスプレイ14と、チップセット21と、BIOS(Basic Input Output System)メモリ22と、USB(Universal Serial Bus)コネクタ24と、オーディオシステム25と、ネットワークカード26と、入力デバイス27と、放熱ファン28と、電源回路29と、EC(Embedded Controller)31と、SSDポート32と、SSD33とを備える。
【0019】
CPU11は、メインメモリ12に記憶されたプログラムを実行して、種々の演算処理を実行し、情報処理装置10の各部の動作を実現および制御するプロセッサである。本願では、「プログラムを実行する」または「プログラムの実行」とは、プログラムに記述された命令により指示される処理を実行することを指す。
メインメモリ12は、CPU11が実行する処理の作業領域として機能する。メインメモリ12には、CPU11が実行するプログラム、CPU11が実行する処理に用いられるデータ(パラメータも含む)、CPU11の処理により生成されたデータが一時的または永続的に記憶される。メインメモリ12に記憶されるデータには、ある処理により生成され、より後続する処理により用いられうる中間データも含まれうる。CPU11により実行されるプログラムには、例えば、OS(オペレーティングシステム、Operating System)、周辺機器などのハードウェアを操作するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム等が含まれる。メインメモリ12は、1個または複数個のDRAM(Dynamic Random Access Memory)を備える。
【0020】
GPU13は、CPU11からの制御に基づいて画像表示(描画)に関する処理を実行する。GPU13は、ビデオメモリを備え、CPU11からの制御に基づき画像表示に関連する機能を有するプロセッサである。GPU13は、CPU11から出力された描画命令を処理し、得られた描画情報をビデオメモリに書き込む。GPU13は、ビデオメモリから新たに書き込まれた描画情報を読み出し、読み出した描画情報を、ディスプレイ14に描画データ(表示データ)として出力する。
【0021】
ディスプレイ14は、GPU13から入力された描画データ(表示データ)に基づいて、表示画面を表示する。ディスプレイ14は、例えば、液晶ディスプレイである。
【0022】
チップセット21は、各種の機器(デバイス)を有線で接続するためのバスコントローラを備える。チップセット21は、接続のために、例えば、PCIe(登録商標)バスを用いる。チップセット21は、PCIe(登録商標)を用いて、少なくともCPU11、GPU13、および、EC31のそれぞれと、SSDポート32を経由してSSD33と接続可能とする。チップセット21は、PCIe(登録商標)以外に、USB、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、および、LPC(Low Pin Count)バスなどの、いずれか1種類、または、複数種類の方式を用い、他の機器と接続可能としてもよい。バスコントローラは、個々の方式に従って接続された機器とのデータの入出力を制御する。
【0023】
図1の例では、チップセット21は、周辺機器としてBIOSメモリ22、USBコネクタ24、オーディオシステム25、ネットワークカード26、EC31、および、SSDポート32と接続される。CPU11、メインメモリ12、GPU13、および、チップセット21は、ホストデバイスとして機能する。ホストデバイスは、情報処理装置10のコンピュータシステムにおいて必須最小限のハードウェアとなる。
【0024】
BIOSメモリ22は、システムファームウェアを格納する不揮発性メモリを含んで構成される。不揮発性メモリとして、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROMなどが用いられる。システムファームウェアは、コンピュータシステム全体の動作に関わり、ハードウェアとホストデバイスにおいて実行される各種のプログラムとのインタフェースを提供するためのプログラムである。システムファームウェアには、例えば、BIOS(Basic Input/Output System)がある。本願では、かかるシステムファームウェアを「BIOS」と総称することがある。
【0025】
USBコネクタ24は、USBを用いて周辺機器を着脱可能に接続するためのインタフェースである。USBコネクタ24は、情報処理装置10の筐体に固定して設置される。
オーディオシステム25は、音声データの入出力、記録、および、再生を実行可能とする機器である。
ネットワークカード26は、ネットワークに接続し、有線または無線でデータ通信を実行可能とする。ネットワークカード26は、無線LAN(Local Area Network)を用いて直接、または、さらに他のネットワークを経由して他の機器と接続可能としてもよい。
【0026】
SSDポート32は、SSD33と接続可能とするインタフェースである。SSDポート32は、PCIe(登録商標)ルートコンプレックスに接続されるルートポートとして構成されてもよい。SSDポート32は、例えば、M.2規格に準拠した端子となりうる。図1の例では、SSDポート32の個数は1個であるが、2個以上となってもよい。2個以上のSSDポート32に、それぞれSSD33が接続されうる。
【0027】
SSD33は、各種のデータおよびプログラムを記憶する補助記憶装置である。SSD33に記憶されるプログラムには、OS、ドライバ、サービス/ユーティリティ、アプリケーションプログラムなどが含まれる。SSD33には、自器の温度を測定する温度センサを内蔵または装着されている。SSD33は、測定した温度をSSD温度として示す温度データをCPU11またはEC31にSSDポート32を経由して送信する。
【0028】
EC31は、情報処理装置10の動作状態(動作モード)に関わらず、各種デバイス(周辺機器やセンサなど)の状態を監視し、制御するマイクロコンピュータである。EC31は、例えば、CPU、ROM、RAM、複数チャネルのA/D(Analog to Digital)入力端子、D/A(Digital to Analog)出力端子、タイマ、および、デジタル入出力端子を備えるワンチップマイコン(One-chip microcomputer)として構成される(図示せず)。デジタル入出力端子には、例えば、入力デバイス27、放熱ファン28、および、電源回路29が接続される。
【0029】
EC31は、システムファームウェアとは別個の所定のファームウェア(本願では「ECFW」と呼ぶことがある)を実行し、その機能を発揮する。EC31は、温度管理機能と電源管理機能を有する。温度管理機能は、後述するように、SSD温度としてSSD33の温度を示すSSD温度データを取得する機能と、SSD温度データに基づいて放熱ファン28の動作を制御する機能を含む。放熱ファン28の制御により、SSD33からの放熱量が制御される。電源管理機能は、電源回路29を制御して、情報処理装置10の各部で消費される電力を供給する機能である。EC31は、例えば、CPU11およびGPU13に供給する供給電力を制御する。
【0030】
入力デバイス27は、ユーザの操作を受け付け、受け付けた操作に応じた操作信号をEC31に出力する。操作信号により各種の情報または指令が指示される。入力デバイス27は、例えば、キーボード、タッチパッド、ポインティングデバイス、などのいずれであってもよい。
【0031】
放熱ファン28は、ファンと電動機(モータ)を含んで構成される。EC31により電動機に供給される電力量が制御され、電動機は供給される電力量に応じた速度でファンを回転させる。図2に例示されるように、ファンの回転により生ずる気流によりSSD33からの放熱が促進される。放熱ファン28の位置は、SSD33の位置と対応付けられた位置、即ち、ファンの回転により発生した気流がSSD33の周囲を通過する位置であればよい。この位置において、SSD33からの放熱により、情報処理装置10の外部からSSD33の周囲に吸入された空気の温度が上昇する。温度が上昇した空気は、情報処理装置10の外部に排気される。
【0032】
電源回路29は、AC/DC(Alternate Current/Direct Current)アダプタ、または電池ユニットから供給された直流電力の電圧を、情報処理装置10の各部を動作させるための動作電圧に変換する。電源回路29は、電圧を変換した電力を対応する情報処理装置10の動作電圧に対応する部位に供給する。電源回路29は、例えば、AC/DCアダプタと電池ユニットの他、DC/DCコンバータ、および、充放電ユニットなどを含む。電源回路29は、電力供給部の一例である。電源回路29は、エンベデッドコントローラ40からの制御に基づいて動作する。
【0033】
本実施形態では、CPU11とEC31は、それぞれSSDポート32とバスを用いてSSD33と接続される。SSD33の位置を示す位置情報として、予め設定されたSSDポート32の識別情報が用いられてもよい。SSDポート32が、PCIe(登録商標)ルートコンプレックスに接続されるルートポートとして構成される場合には、SSDポート32の識別情報として、PCIe(登録商標)ルートポート番号が用いられてもよい。後述するように、個々のSSDポート32に接続されたSSD33は、その周囲を放熱ファン28により生ずる気流が通過する位置に設置される。後述するように、SSD33の位置情報と放熱ファン28の識別情報をCPU11とEC31のレジスタに予め対応付けて設定しておいてもよい。
【0034】
CPU11とEC31は、図5に例示される所定のピンアサインのもとで温度データを取得することができる。図5の例では、PCIe(登録商標)の規定に基づくピンコネクタのうち、SMBus(登録商標)に割り当てられたピン番号40、42、44を用いて、それぞれアラート信号(ALERT#)、SMB信号(SMB DATA)、クロック信号(SMB CLK)が伝送されることを示す。個々の信号は、2段階の電圧(図5の例では、0V、1.8V)を用いて各種の情報を表現するデジタルの電気信号である。I/Oは、接続先となるデバイスからの入出力を示す。アラートデータにより各種の警告が伝達される。クロック信号によりCPU11またはEC31との同期がなされる。温度データは、SMB信号の一部の領域(Temp)に割り当てられる。
【0035】
温度データのデータ構成は、独自に定義されてもよいし、既定のデータ構成が温度データとして適用されてもよい。温度データは、例えば、SMARTデータに含めて伝送されてもよい。図6に例示されるように、SMARTデータは、先頭にStartヘッダと、末尾にStopデリミタと、その中間にアドレス(Addr R)と温度(Temp)のフィールドを有する。アドレスと温度のフィールドには、それぞれ送信元のSSD33のアドレスとSSD温度が記述される。
【0036】
次に、本実施形態に係るSSD33の配置例について説明する。図2は、本実施形態に係るSSD33の配置例を示す側面図である。図2の例では、CPU11とEC31が基板CB1の表面に配置され、SSD33は基板CB1の裏面に配置される。放熱ファン28は、CPU11の表面に配置される。EC31、CPU11、および、SSD33は、相互に一定以上の距離を隔てて配置されている。この配置のもとで、CPU11とEC31は、それぞれSSD33とバスを用いて接続される。EC31と放熱ファン28との間では、EC31が放熱ファン28の動作を制御できるように配線される。
【0037】
SSD33は、SSDコントローラ332とメモリチップ334-1~334-3を備える。SSDコントローラ332とメモリチップ334-1~334-3は、それぞれ基板CB2の表面が重なり合わないように配置されている。SSDコントローラ332は、メモリチップ334-1~334-3へのデータの書き込みまたは読み出しに関する制御を実行する。SSDコントローラ332は、例えば、集積回路であるASIC(Application Specific Integrated Circuit)を備える。SSDコントローラ332には、温度センサが内蔵されていてもよいし、表面上に設置されてもよい。温度センサは、自器の温度を検出する。
【0038】
SSDコントローラ332は、SMART機能を有し、温度センサが検出した温度をSSD温度としてSMARTデータに含めてEC31とCPU11の一方に出力してもよい。SSDコントローラ332は、送信元となるEC31またはCPU11の一方からポーリングパケットを受信する都度、その応答データとして温度データを含むSMARTデータをポーリングパケットの送信元に送信する。温度センサは、自己保護機能に要する温度の検出を主目的として設置されたものであってもよい。自己保護機能は、例えば、温度上昇によるメモリチップ334-1~334-3における電荷の消滅の緩和または防止を目的とした、温度上昇に応じたデータ読み書きの速度の低下などが含まれる。受信したポーリングパケットは、送信元となるデバイスであるEC31またはCPU11が動作中であることを示す。
【0039】
メモリチップ334-1~334-3には、各種のデータが記憶される。メモリチップ334-1~334-3は、例えば、NAND型フラッシュメモリであってもよい。図2の例では、メモリチップの個数は3個であるが、1個、2個、または、4個以上であってもよい。温度センサは、個々のメモリチップに備わってもよい。SSDコントローラ332は、個々のメモリチップの温度センサから通知された温度のうち、最も高い温度をSSD温度として定め、EC31またはCPU11に出力してもよい。
【0040】
上記のように、SSDコントローラ332は、検出されたSSD温度を示す温度データをEC31に出力(通知)する。EC31は、SSD33から入力される温度データに示されるSSD温度に基づいて放熱ファン28の動作を制御する。EC31は、例えば、SSD温度が所定の動作温度閾値を超えるとき、放熱ファン28を駆動し、SSD33を放熱する。放熱ファン28が回転することで、回転面に対面する方向に気流が生ずる。図2の例では、発生した気流によりSSD33の周囲に吸気された空気が送り込まれ、SSDからの放熱により送り込まれた空気の温度が上昇し、CPU11および放熱ファン28を通過して排気される。よって、SSD33に発生した熱が放熱される。
【0041】
なお、EC31には、複数のSSD33が接続されてもよい。図3の例では、EC31のポート#1がバスを用いて2個のSSDポート32-1、32-2に接続される。SSDポート32-1、32-2には、それぞれSSD33-1、33-2が装着される。EC31には、SSD33-1、33-2から伝達されたSSD温度に基づいて、それぞれ対応する放熱ファン28-1、28-2の動作を制御可能とする。
【0042】
放熱ファン28は、熱源となるプロセッサからの放熱を兼ねていてもよい。放熱ファン28の個数は、プロセッサの個数と等しいか、より少なくてもよい。個々の放熱ファン28の位置は、放熱対象とするプロセッサの位置にも対応付けられる。
図4の例では、情報処理装置10の筐体内にCPU11、GPU13、放熱ファン28-1、28-2、および、SSD33-1、33-2が設置されている。放熱ファン28-1は、CPU11とSSD33-1に対応付けられている。放熱ファン28-1の動作により生じた気流は、SSD33-1とCPU11の周囲を通過し、放熱を促進する。同様に、放熱ファン28-2は、GPU13とSSD33-2に対応付けられている。放熱ファン28-2の動作により生じた気流は、SSD33-2とGPU13からの放熱を促進する。
【0043】
情報処理装置10は、さらに温度センサを備えていてもよい。個々の温度センサは、熱保護の対象とする他部材から所定の範囲内の位置に設置されてもよい。個々の温度センサは、測定した温度(以下、「他部材温度」と呼ぶ)を示すデータを他部材温度データとしてCPU11に出力してもよい。CPU11は、他部材温度データに基づいて、その他部材温度を測定した温度センサに対応する放熱ファン28の動作を制御してもよい。図4の例では、他部材は、CPU11またはGPU13となりうる。他部材がCPU11、GPU13である場合には、それぞれ制御対象は放熱ファン28-1、28-2となる。
これにより、SSD33の温度が十分に低下しても、他部材の温度が高い場合には、放熱が促進される。他部材温度データに基づく放熱ファン28の動作制御は、CPU11に代えて、EC31が実行してもよい。その場合、温度センサからの他部材温度データの出力先はEC31となる。
【0044】
次に、本実施形態に係る情報処理装置10の機能構成例について説明する。図7は、本実施形態に係る情報処理装置10の機能構成例を示す概略ブロック図である。情報処理装置10は、BIOS処理部112と、参照テーブル生成部312と、温度データ取得部314と、放熱ファン制御部316とを備える。
【0045】
BIOS処理部112の機能は、起動時、つまり、CPU11を含むホストデバイスへの電力投入が開始されるとき(パワーオン、Power On)に開始される。CPU11は、例えば、電源回路29から自器への電力の供給開始を検出するとき、BIOSメモリ22からBIOSを読み出し、読み出したBIOSをメインメモリ12に展開する。BIOS処理部112の機能は、メインメモリ12に展開されたBIOSとCPU11が協働して実現される。CPU11は、BIOSを実行してBIOS処理部112の機能として、POST(Power on self-test)処理を開始する。CPU11は、POST処理を完了した後でOSの起動(OSブート)を開始する。POST処理は、BIOSのコードの正常性の検証、自装置に接続されたデバイスの検出、検出したデバイスの初期化などの過程を有する。検出対象とするデバイスには、SSD33が含まれる。
【0046】
BIOS処理部112は、POST処理において、例えば、CPU11に接続された個々のSSDポート32を示す識別情報であるPCIe(登録商標)ルートポート番号を特定する。
BIOS処理部112は、自部に接続する個々のデバイスを認識する。例えは、BIOS処理部112は、自部に接続されるバスに接続要求を送出する。動作中であってバスに接続されたSSD33のSSDコントローラ332は、バスを用いて受信した接続要求に対応する応答として、自器のSSDシリアル番号を含む応答信号をCPU11に送信する。SSDシリアル番号は、個々のSSD33に固有の識別情報の一例である。SSDコントローラ332には、自器を備えるSSD33のSSDシリアル番号を予め設定しておけばよい。BIOS処理部112は、バスを用いて受信した接続要求に対する応答信号の送信元となるSSD33のSSDシリアル番号を受信した応答信号から抽出する。また、BIOS処理部112は、応答信号を受信したSSDポート32のPCIe(登録商標)ルートポート番号をSSD33の位置情報として特定する。
BIOS処理部112は、応答信号の送信元となるSSD33ごとに、特定した位置情報と抽出した識別情報を対応付けてEC31に通知する。
【0047】
参照テーブル生成部312、温度データ取得部314、および、放熱ファン制御部316の機能は、ECFWとEC31のCPUが協働して実現される。EC31のCPUは、CPU11の動作状態に関わらず、ECFWを実行して参照テーブル生成部312、放熱ファン制御部316、および、温度データ取得部314の機能を提供する。
【0048】
参照テーブル生成部312には、SSD33の位置情報(例えば、PCIe(登録商標)ルートポート番号)ごとに、そのSSD33に対応する位置に設置された放熱ファン28の識別情報を対応付けて含むデータを参照テーブルとして予め記憶させておく。参照テーブルは、EC31に備わるレジスタ(以下、「ECレジスタ」と呼ぶことがある)に記憶されてもよい。
【0049】
参照テーブル生成部312は、バスに接続されるデバイスを監視(モニタ)し、所定時間ごとに新たに発見されるデバイスの有無を判定する。参照テーブル生成部312は、例えば、アドレス設定処理において、新たに発見されるデバイスの論理アドレスを定め、定めた論理アドレスを示すアドレス通知をバスに送出する。参照テーブル生成部312は、バスに接続される新たなデバイスとしてSSD33からアドレス通知に対する応答信号を受信する。参照テーブル生成部312は、応答信号から抽出したデバイスの識別情報(例えば、SSDシリアル番号)をSSD33の識別情報として特定することができる。参照テーブル生成部312は、応答信号を受信したSSDポート32の識別情報をSSD33の位置情報として特定することができる。よって、バスに接続されるSSD33の起動後に、そのSSD33が新たに発見されうる。アドレス設定処理の例については、後述する。参照テーブル生成部312は、参照テーブルを参照し、特定した位置情報と合致する位置情報を検索し、その位置情報と対応付けて論理アドレスを参照テーブルに書き込む(追加)。
【0050】
参照テーブル生成部312は、CPU11によるPOST処理の開始後、CPU11から伝送される位置情報と識別情報を待ち受ける。参照テーブル生成部312は、CPU11から位置情報と識別情報を対応付けて受信する。
参照テーブル生成部312は、参照テーブルを参照して、受信した位置情報ごとに、その位置情報と合致する位置情報を検索し、その位置情報に対応する識別情報を、その位置情報に対応付けて参照テーブルに書き込む(追加)。
よって、参照テーブルは、SSD33ごとに放熱ファン28との対応関係を示すとともに、SSD33ごとの識別情報に対応する位置情報と論理アドレスを対応付けて構成される。
【0051】
温度データ取得部314は、個々のSSD33から温度データを受信する。温度データ取得部314は、例えば、SSD33へのポーリングを行う。温度データ取得部314は、ポーリングにおいて所定時間ごとにポーリングパケットをバスに送出する。温度データ取得部314は、ポーリングパケットに対する応答としてSSD33から温度データを受信し、受信した温度データの送信元となるSSD33の論理アドレスを特定する。温度データ取得部314は、参照テーブルを参照し、特定した論理アドレスに対応するSSDシリアル番号を特定する。温度データ取得部314は、特定したSSDシリアル番号と温度データをECレジスタに対応付けて記憶する。
【0052】
放熱ファン制御部316は、温度データ取得部314により特定されたSSDシリアル番号で示されるSSD33に対応する放熱ファン28を特定する。放熱ファン制御部316は、例えば、新たにECレジスタに記憶された温度データに対応するSSDシリアル番号を特定し、対応テーブルを参照し、特定したSSDシリアル番号に対応する識別情報で示される放熱ファン28を特定することができる。放熱ファン制御部316は、SSDシリアル番号に対応する温度データで示されるSSD温度に基づいて特定した放熱ファン28の動作を制御する。
【0053】
放熱ファン制御部316は、例えば、予めECレジスタに記憶した温度制御テーブルを用いて放熱ファンの動作状態を制御することができる。温度制御テーブルには、例えば、動作温度閾値と停止温度閾値を設定しておく。動作温度閾値として、SSD33の動作が許容される温度の上限が設定されればよい。停止温度閾値として、動作温度閾値以下の温度が設定されればよい。放熱ファン制御部316は、特定したSSDシリアル番号に係るSSD33のSSD温度が動作温度閾値よりも高くなるとき、そのSSD33に対応する放熱ファン28を所定の動作量で動作させる。動作量は、放熱ファン28の回転速度、騒音レベル、消費電力のいずれを用いて定義されてもよい。放熱ファン制御部316は、SSD温度が停止温度閾値よりも低くなるとき、そのSSD温度が検出されたSSD33に対応する放熱ファン28の動作を停止させる。
【0054】
放熱ファン制御部316は、放熱ファン28を動作させる際、例えば、動作指令を示す制御信号をその放熱ファン28に出力する。放熱ファン28は、EC31から動作指令を示す制御信号が入力されるとき、電源回路29から所定の電力量での電力の供給を受け、電動機を回転させる。放熱ファン制御部316は、放熱ファン28の動作を停止させる際、例えば、停止指令を示す制御信号をその放熱ファン28に出力する。放熱ファン28は、EC31から停止指令を示す制御信号が入力されるとき、電源回路29からの電力の供給を停止し、電動機の回転を停止する。
【0055】
温度制御テーブルには、複数段階の予め定めた動作量の異なる動作モードのそれぞれについて、動作温度閾値と停止温度閾値が設定されてもよい。動作量の大小は、放熱ファン28の回転速度の高低に相当する。動作量が大きい動作モードほど動作温度閾値と停止温度閾値がそれぞれ高くなり、動作モードごとに停止温度閾値が動作温度閾値よりも低くなるように設定されればよい。
【0056】
放熱ファン制御部316は、温度制御テーブルを参照して、特定したSSDシリアル番号で示されるSSD33のSSD温度が、その時点において設定された動作モードに係る動作温度閾値よりも高いとき、その動作モードに対応する動作量を定める。放熱ファン制御部316は、特定したSSDシリアル番号で示されるSSD33に対応する放熱ファン28を、定めた動作量で動作させる。その後、放熱ファン制御部316は、動作量が1段階大きい動作モードに変更する。動作量がより大きい動作モードが存在しない場合には、放熱ファン制御部316は、動作モードを変更しない。放熱ファン制御部316には、予め動作モードの初期値を設定しておく。よって、SSD温度の上昇局面では、放熱ファン28の動作量が段階的に増加する。放熱ファン28の動作中に、その動作モードに係る停止温度閾値よりもSSD温度が低くなるとき、放熱ファン制御部316は、動作量が1段階小さい動作モードに変更し、その動作モードに係る動作量で放熱ファン28を動作させる。よって、SSD温度の下降局面では、放熱ファン28の動作量が段階的に減少する。なお、動作量が1段階小さい動作モードが存在しない場合には、放熱ファン制御部316は、その放熱ファン28の動作を停止させる。
【0057】
放熱ファン制御部316は、ある動作モードで放熱ファン28を動作させる際、例えば、その動作モードを示す制御信号をその放熱ファン28に出力する。放熱ファン28は、EC31から動作モードを示す制御信号が入力されるとき、電源回路29から指示された動作モードに対応する所定の電力量での電力の供給を受け、電動機を回転させる。動作量が大きい動作モードほど、対応する電力量が大きくなる。
【0058】
なお、情報処理装置10がさらに温度センサを備える場合、BIOS処理部112は、POST処理が終了した後、温度センサから入力されるセンサ温度データに示される他部材温度に基づいて、その温度センサに対応する放熱ファン28の動作を制御してもよい。他部材温度に基づく放熱ファン28の動作制御方法は、SSD温度に基づく動作制御方法と同様であってもよい。BIOS処理部112には、動作モードごとの動作温度閾値と停止温度閾値と他部材温度との対応関係を示す温度制御テーブルを予め設定しておく。
【0059】
放熱ファン制御部316は、その時点における動作モードのSSD温度に対する停止温度閾値よりもSSD温度が低くなるとき、他部材の温度に基づく動作制御を示す動作制御指示をBIOS処理部112に出力し、放熱ファン28に対するSSD温度に基づく動作制御を停止してもよい。放熱ファン制御部316は、放熱ファン28の動作モードを動作量が1段階小さい動作モードに変更した後で、BIOS処理部112に動作制御指示を出力してもよい。
【0060】
BIOS処理部112は、放熱ファン制御部316から動作制御指示が入力されるとき、他部材温度に基づく放熱ファン28の動作制御を開始する。そして、BIOS処理部112は、その時点における動作モードの他部材温度に対する停止温度閾値よりも他部材温度が低くなるとき、SSD温度に基づく動作制御指示を放熱ファン制御部316に出力し、放熱ファン28に対する他部材温度に基づく動作制御を停止する。BIOS処理部112は、放熱ファン28の動作モードを動作量が1段階小さい動作モードに変更した後で、放熱ファン制御部316に動作制御指示を出力してもよい。
【0061】
放熱ファン制御部316は、BIOS処理部112から動作制御指示が入力されるとき、SSD温度に基づく放熱ファン28の動作制御を再開する。SSD温度の低下は、CPU11の消費電力の減少に伴うため、CPU11からSSD33へのアクセスも不活発になりがちである。そのため、この段階でのSSD温度は他部材温度に基づく放熱ファン28の動作制御の開始時点におけるSSD温度よりも低くなりうる。
【0062】
よって、放熱ファン28の動作制御において、SSD温度の低下局面において他部材温度を優先して参照され、他部材温度の低下局面においてSSD温度が優先して参照される。例えば、SSD温度が十分に低下しても他部材としてのCPU11の温度が高い場合に対しては放熱ファン28の動作量が維持または動作が継続することがある。そのため、システム全体としての保護が図られる。また、SSD温度に基づく動作制御と他部材温度に基づく動作制御との競合が回避される。
【0063】
なお、他部材温度に基づく動作制御は、BIOS処理部112に代えて、放熱ファン制御部316が実行してもよい。その場合、放熱ファン制御部316による他部材温度に基づく動作制御指示の出力と、BIOS処理部112によるSSD温度に基づく動作制御指示の出力が省略される。
【0064】
次に、本実施形態に係るアドレス設定処理の例について説明する。図8は、本実施形態に係るアドレス設定処理の例を示すフローチャートである。以下に例示される処理は、ARPに基づく手法であり、EC31の参照テーブル生成部312が、バスを用いて接続される周辺機器(例えば、SSD33)を新たに発見するときに実行される。
【0065】
(ステップS102)参照テーブル生成部312は、タイムアウトカウントの初期値N(Nは、予め定めた1以上の整数)を設定する。Nは、アドレス割当の試行回数に相当する。
(ステップS104)参照テーブル生成部312は、所定の形式を有する1個の論理アドレス(例えば、ポート番号)を定め、定めた論理アドレスと既定の自器(即ち、EC31)のアドレスを示すアドレス通知をバスに送出する(アドレス割り当て)。バスに接続された機器(例えば、SSD33)は、参照テーブル生成部312から受信したアドレス通知を受信するとき、自器(即ち、バスに接続された機器)の識別情報を含む応答情報を返信する。
【0066】
(ステップS106)参照テーブル生成部312は、アドレス通知に対する応答信号を待ち受け、アドレス通知の送出から所定時間内に応答信号を受信するか否かによりアドレス割当に成功したか否かを判定する。アドレス割当に成功するとき(ステップS106 YES)、参照テーブル生成部312は、応答信号の送信元となる機器に確認応答を送信し、図8の処理を終了する。確認応答を受信した機器は、アドレス通知で示される論理アドレスを自器のアドレスとして設定し、以降に受信される確認応答を棄却する。設定された論理アドレスが、バスを用いて伝送されるデータの送受信先の特定に用いられる。
アドレス割当に成功しないとき(ステップS106 NO)、ステップS108の処理に進む。
【0067】
(ステップS108)参照テーブル生成部312は、その時点におけるタイムアウトカウントから1減算する。
(ステップS110)参照テーブル生成部312は、その時点におけるタイムアウトカウントが1未満であるか否かを判定する。タイムアウトカウントが1未満であるとき(ステップS110 YES)、参照テーブル生成部312は、アドレス割当に失敗したと判定し、図1の処理を終了する。タイムアウトカウントが1以上であるとき(ステップS110 NO)、参照テーブル生成部312は、S(Sは、0以上の整数)秒待機し、ステップS104の処理に戻る。ステップS104を繰り返す際、参照テーブル生成部312は、既に定めた論理アドレスとは異なる論理アドレスを新たに発行する。
【0068】
なお、参照テーブル生成部312は、複数の機器に対して論理アドレスを割り当てる際、新たな送信元から応答信号が受信されなくなるまで、図8の処理を繰り返してもよい。
ステップS106において、参照テーブル生成部312は、アドレス通知の送出から所定時間内に複数の機器から応答信号を受信するとき、最初に受信した応答信号の送信元となる機器を特定し、その他の機器から受信した応答信号を棄却する。参照テーブル生成部312は、割り当てた論理アドレスを特定した機器に対する論理アドレスとして定め、その機器に対する確認応答を送信する。参照テーブル生成部312は、その他の機器に対するアドレス割り当てを繰り返し試行する。
【0069】
図8の処理により個々のSSD33に割り当てられる論理アドレスは、CPU11またはSSD33の起動時期により異なりうる。本実施形態では、参照テーブルを用いて起動時期による論理アドレスの差異に関わらず、SSD温度の検出元であるSSD33、ひいては、制御対象の放熱ファン28を特定できるようにする。
【0070】
次に、本実施形態に係る参照テーブル生成処理の例について説明する。図9は、本実施形態に係る参照テーブル生成処理の例を示すフローチャートである。EC31には、SSD33の位置情報として、そのSSD33が接続されるSSDポート32のルートポート番号と、放熱ファン28の識別情報を含み、これらが対応付けられた参照テーブルを予め設定させておく。また、参照テーブルには、発見されたSSD33ごとに論理アドレスをさらに対応付けて記述しておく。
【0071】
(ステップS202)CPU11のBIOS処理部112は、自器に接続されたSSD33の識別情報としてSSDシリアル番号と、SSD33の位置情報として、SSD33が接続されたSSD33のルートポート番号を特定する。
(ステップS204)BIOS処理部112は、SSD33ごとに特定したSSDシリアル番号と特定したルートポート番号を対応付けてEC31に通知する。
【0072】
(ステップS206)EC31の参照テーブル生成部312は、CPU11からSSD33ごとにSSDシリアル番号とルートポート番号を取得する。
(ステップS208)参照テーブル生成部312は、参照テーブルにおいて、取得したルートポート番号と合致するルートポート番号を特定する。
(ステップS210)参照テーブル生成部312は、参照テーブルに、特定したルートポート番号に対応付けてSSDシリアル番号を追加する。これにより、発見されたSSD33の位置情報ごとに放熱ファン28の識別情報、SSD33の識別情報、および、論理アドレスが対応付けられた参照テーブルが生成される。
【0073】
次に、本実施形態に係るSSD温度制御の例について説明する。図10は、本実施形態に係るSSD温度制御の例を示すフローチャートである。
(ステップS302)EC31の温度データ取得部314は、ECレジスタに記憶された参照テーブルを参照し、接続されたSSD33ごとの論理アドレスの割り当ての有無を判定する。論理アドレスが割り当てられたSSD33に対しては(ステップS302 YES)、ステップS304の処理に進み、以降のステップの処理が実行される。論理アドレスの割り当てのないSSD33に対しては(ステップS302 NO)、図10の処理を行わずに終了する。
(ステップS304)温度データ取得部314は、SSD通信モードに遷移し、SSD33との間で通信可能な状態になる。
【0074】
(ステップS306)温度データ取得部314は、L(Lは、0以上の整数)秒待機する。
(ステップS308)温度データ取得部314は、SSD33へのポーリングを開始する。ポーリングにおいて、温度データ取得部314は、バスに一定時間ごとにポーリングパケットを送出する。
(ステップS310)温度データ取得部314は、バスに接続されたSSD33からの温度データを待ち受け、ポーリングパケットの送出から所定時間内に温度データを取得したか否かを判定する。温度データを取得したとき(ステップS310 YES)、ステップS316の処理に進む。温度データを取得していないとき(ステップS310 NO)、ステップS312の処理に進む。
【0075】
(ステップS312)温度データ取得部314は、「バス不明」(BUSMISS)の値を1増加させて累積する。「バス不明」の値は、SSD33からのポーリングパケットの応答としての温度データを受信しなかった回数(未応答回数)に相当する。
(ステップS314)温度データ取得部314は、「バス不明」の値がMよりも大きいか否かを判定する。Mは、予め定めた1以上の整数である。Mは、未応答回数の閾値に相当する。「バス不明」の値がMよりも大きいとき(ステップS314 YES)、ステップS332の処理に進む。このような場合には、SSD33が動作しないため、SSD温度が十分に低くなっていることが推認される。「バス不明」の値がM以下のとき(ステップS314 NO)、ステップS324の処理に進む。
(ステップS316)温度データ取得部314は、「バス不明」の値を0(ゼロ)にクリアする。
【0076】
(ステップS318)温度データ取得部314は、取得した温度データに示されるSSD温度が所定の動作温度範囲内であるか否かを判定する。動作温度範囲内である場合(ステップS318 YES)、ステップS328の処理に進む。動作温度範囲内ではない場合(ステップS318 NO)、ステップS320の処理に進む。
(ステップS320)温度データ取得部314は、取得した温度データに示されるSSD温度が所定の動作温度範囲外であるか否かを判定する。動作温度範囲外である場合(ステップS320 YES)、ステップS326の処理に進む。動作温度範囲外ではない場合(ステップS320 NO)、ステップS322の処理に進む。
(ステップS322)温度データ取得部314は、SSD温度を取得できない、つまり、欠測と判定する。
(ステップS324)温度データ取得部314は、ECレジスタに記憶された直前の温度データを保持する。
【0077】
(ステップS326)温度データ取得部314は、取得した温度データに示されるSSD温度が異常であることを示す異常値に置換する。
(ステップS328)温度データ取得部314は、温度データから取得元のSSD33の論理アドレスを抽出し、参照テーブルを参照して、抽出した論理アドレスと一致する論理アドレスと対応づけて、SSD温度を示す温度データをECレジスタに設定する。
【0078】
(ステップS330)放熱ファン制御部316は、ECレジスタに設定され、特定した論理アドレスに対応する温度データに示されるSSD温度がその時点における動作モードのSSD温度に対する停止温度閾値よりも低いか否かを判定する。低いと判定されるとき(ステップS330 YES)、ステップS332の処理に進む。低くないと判定されるとき(ステップS330 NO)、ステップS336の処理に進む。
【0079】
(ステップS332)放熱ファン制御部316は、動作制御指示をCPU11に出力して、自部による放熱ファン28に対する動作制御を停止する。
CPU11のBIOS処理部112は、EC31から動作制御指示が入力されるとき、他部材温度に基づく放熱ファン28に対する動作制御を開始する。
そのため、その後、SSD温度が本ステップの開始当初の動作モードの停止温度閾値より低下しても、他部材温度がその停止温度閾値よりも高温である場合には、放熱ファン28の動作モードは、より動作量の小さい動作モードに変更されずに維持される。
なお、BIOS処理部112は、その時点における動作モードの他部材温度に対する停止温度閾値よりも他部材温度が低くなるとき、動作制御指示を放熱ファン制御部316に出力し、自部による他部材温度に基づく動作制御を停止する。
【0080】
(ステップS334)放熱ファン制御部316は、CPU11から動作制御指示が入力されるとき、SSD温度に基づく放熱ファン28に対する動作制御を再開する。この時点におけるSSD温度は、自部による放熱ファン28に対する動作制御を停止した時点よりも低下するため、放熱ファン28は、より動作量が小さい(低速な)動作モードで動作する。なお、動作量がより小さい動作モードが存在しない場合には、放熱ファン制御部316は、動作させていた放熱ファン28の動作を停止する。その後、ステップS306の処理に進む。
【0081】
(ステップS336)温度データ取得部314は、ECレジスタに設定され、特定した論理アドレスに対応する温度データに示されるSSD温度がその時点における動作モードのSSD温度に対する動作温度閾値よりも高いか否かを判定する。高いと判定されるとき(ステップS336 YES)、ステップS338の処理に進む。高くないと判定されるとき(ステップS336 NO)、ステップS306の処理に進む。
(ステップS338)放熱ファン制御部316は、参照テーブルを参照して、特定した論理アドレスに対応する放熱ファン28を特定し、特定した放熱ファンの動作モードを、その時点における動作モードよりも動作量が大きい動作モードに変更する。なお、動作量がより大きい動作モードが存在しない場合には、温度データ取得部314は、動作モードを変更しない。その後、ステップS306の処理に進む。
【0082】
以上に説明したように、本実施形態に係る情報処理装置10は、プロセッサ(例えば、CPU11)、コントローラ(例えば、EC31)、固体記憶装置(例えば、SSD33)、および、放熱ファン28を備える。プロセッサとコントローラは、固体記憶装置とバスを用いて接続され、固体記憶装置は、放熱ファンと対応付けて設置される。プロセッサは、固体記憶装置の位置を示す位置情報(例えば、ルートポート番号)と対応付けて当該固体記憶装置の識別情報(例えば、SSDシリアル番号)を取得する。コントローラは、固体記憶装置の識別情報と論理アドレスを予め取得し、プロセッサが取得した識別情報に対応する位置情報と当該識別情報に対応付けて参照テーブルを構成する。コントローラは、固体記憶装置の温度を示す温度データと当該固体記憶装置の論理アドレスを取得するとき、参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、特定した位置情報で指示される位置に対応する放熱ファンを取得した温度データに基づいて制御する。
この構成によれば、参照テーブルを参照し、温度データの取得元である固体記憶装置の論理アドレスに対応する位置情報が特定される。特定された位置情報で示される位置に対応する放熱ファンが取得された温度データに基づいて制御される。そのため、コントローラにより、情報処理装置10の本体をなすプロセッサの動作状態に関わらず、個々の固体記憶装置の温度制御を実現することができる。
【0083】
また、プロセッサは、自器の動作を開始するとき、固体記憶装置の位置情報と識別情報を取得し、取得した位置情報と識別情報をコントローラに通知する。コントローラは、固体記憶装置へのポーリングを開始してもよい。
この構成によれば、プロセッサは、起動時に接続機器である固体記憶装置を発見する過程で、論理アドレスを割り当て、その固体記憶装置の識別情報を取得することができる。コントローラは、固体記憶装置に対するポーリングに対する応答として温度データを取得することができる。部品の追加を伴わずに、論理アドレスの割り当て、識別情報の取得、および、温度データの取得を可能にすることで、プロセッサの動作状態に依存しない固体記憶装置の温度制御を経済的に実現することができる。
【0084】
また、固体記憶装置は、自装置の温度を測定する温度センサを備え、コントローラから送信されたポーリングパケットを検出するとき、測定した温度を示す温度データをコントローラに応答してもよい。
この構成によれば、別個の温度センサを備えなくても、固体記憶装置に備わる温度センサで測定された温度を放熱ファン28の制御に用いることができる。温度センサの追加を伴わずに、遅滞なく測定された温度を取得することができる。そのため、固体記憶装置の温度に基づく実時間制御を実現することができる。
【0085】
また、コントローラは、参照テーブルに、取得した温度データを位置情報に対応付けて記憶し、温度データを取得できないとき、特定した放熱ファンを参照テーブルに記憶した温度データに基づいて制御してもよい。
この構成によれば、一時的に有効な温度データを取得できないときであっても、過去に取得した温度データを用いて放熱ファンの制御を中断せずに済む。
【0086】
また、コントローラは、最後に温度データを取得した時点から所定期間を経過した後、温度データに基づく放熱ファンの動作を停止または減速してもよい。
この構成によれば、固体記憶装置の動作がなされずに発熱が生じないない期間が所定期間以上となるとき、放熱ファンによる固体記憶装置の放熱が停止または緩和される。放熱ファンの必要とされない動作を回避することができる。
【0087】
また、コントローラは、固体記憶装置へのポーリングに対する応答を受信しない回数である未応答回数が所定回数を超えるとき、温度データに基づく放熱ファンの制御を停止または減速してもよい。この構成によれば、固体記憶装置の動作がなされずに発熱が生じないない期間を簡便に定めることができる。
【0088】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。上述の実施形態において説明した各構成は、任意に組み合わせることができる。
【0089】
例えば、SSD33の識別情報として、SSDシリアル番号に代え、MAC(Media Access Control)アドレスが用いられてもよい。図1のチップセット21、EC31に接続されるデバイスの一部、例えば、USBコネクタ24、オーディオシステム25、ネットワークカード26、および、入力デバイス27の全部または一部が省略されていてもよい。また、それ以外のデバイスが情報処理装置10に接続されていてもよい。SSDポート32の個数が2個以上である場合、一部のSSDポート32のそれぞれに各1個のSSD33が設置され、残りのSSDポート32にSSD33が設置されなくてもよい。情報処理装置10に備わるプロセッサの個数は、1個または2個に限られず、3個以上となってもよい。
【符号の説明】
【0090】
10…情報処理装置、11…CPU、12…メインメモリ、13…GPU、14…ディスプレイ、21…チップセット、22…BIOSメモリ、24…USBコネクタ、25…オーディオシステム、26…ネットワークカード、27…入力デバイス、28…放熱ファン、29…電源回路、31…EC、32…SSDポート、33…SSD、112…BIOS処理部、312…参照テーブル生成部、314…温度データ取得部、316…放熱ファン制御部、332…SSDコントローラ、334(334-1~334-3)…メモリチップ
【要約】
【課題】個々の固体記憶装置の温度管理を経済的に実現する情報処理装置および制御方法を提供する。
【解決手段】プロセッサ、コントローラ、固体記憶装置、および、放熱ファンを備え、 プロセッサとコントローラは、固体記憶装置とバスを用いて接続され、固体記憶装置が、放熱ファンと対応する位置に設置され、プロセッサは、前記固体記憶装置の位置を示す位置情報と対応付けて当該固体記憶装置の識別情報を取得し、コントローラは、固体記憶装置の識別情報と論理アドレスを予め取得し、識別番号に対応する位置情報と当該識別情報に対応する論理アドレスを対応付けて参照テーブルを構成し、固体記憶装置の温度を示す温度データと当該固体記憶装置の論理アドレスを取得するとき、参照テーブルを参照して、取得した論理アドレスに対応する位置情報を特定し、特定した位置情報で指示される位置に対応する放熱ファンを取得した温度データに基づいて制御する。
【選択図】図10
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11