"1以上のプログラムがロードされるメインメモリと、前記メインメモリにロードされた1以上のプログラムを実行可能なCPUと、1以上の拡張デバイスを着脱自在に接続するインタフェース部と、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報を登録可能なテーブルが格納されるテーブル格納部と、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして不揮発性メモリに退避させるサスペンド処理部と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブル格納部に格納されたテーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除するレジューム処理部とを具備する情報処理装置。請求項1に記載の情報処理装置であって、システムの起動手順を、前記インタフェース部に接続された1以上の拡張デバイスを検出して、検出された1以上の拡張デバイスの1以上のドライバを前記メインメモリにロードし、前記検出結果により前記テーブルを作成する第1の起動手順と、前記レジューム処理部を用いた第2の起動手順との間でユーザに選択させる選択部をさらに具備する情報処理装置。インタフェース部に接続された1以上の拡張デバイスを検出し、検出された1以上の拡張デバイスの1以上のドライバをメインメモリにロードし、前記検出結果をもとに、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報が登録されたテーブルを作成して不揮発性メモリに格納し、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして前記不揮発性メモリに退避させ、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除する情報処理装置の起動方法。請求項3に記載の情報処理装置の起動方法であって、システムの起動手順を、前記インタフェース部に接続された1以上の拡張デバイスを検出して、検出された1以上の拡張デバイスの1以上のドライバを前記メインメモリにロードし、前記検出結果により前記テーブルを作成する第1の起動手順と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させる第2の起動手順とをユーザからの選択に従って切り替える情報処理装置の起動方法。1以上のプログラムがロードされるメインメモリと、前記メインメモリにロードされた1以上のプログラムを実行可能なCPUと、1以上の拡張デバイスを着脱自在に接続するインタフェース部と、不揮発性メモリとを具備するコンピュータを、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報を登録可能なテーブルが格納されるテーブル格納部と、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして不揮発性メモリに退避させるサスペンド処理部と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブル格納部に格納されたテーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除するレジューム処理部として機能させるプログラム。しかしながら、典型的なサスペンド機能においては、システムに接続されたハードウェアの構成がシステム状態の復元の前後で整合がとれている必要がある。例えば、サスペンド状態にある情報処理装置の一部の拡張デバイスが外された場合、リジューム処理によって復元されたシステムでは、未だその拡張デバイスが存在しているかの如く扱われてしまうことから、その削除された拡張デバイスに対するアクセスが発生したとき、システムが停止状態に陥る可能性がある。以上のような事情に鑑み、本技術の目的は、サスペンド処理前とレジューム処理後のデバイス管理情報の不整合を解消して、システムの安定性を向上させることのできる情報処理装置、情報処理装置の起動方法、プログラムを提供することにある。上記の課題を解決するために、本技術の一形態である情報処理装置は、1以上のプログラムがロードされるメインメモリと、前記メインメモリにロードされた1以上のプログラムを実行可能なCPUと、1以上の拡張デバイスを着脱自在に接続するインタフェース部と、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報を登録可能なテーブルが格納されるテーブル格納部と、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして不揮発性メモリに退避させるサスペンド処理部と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブル格納部に格納されたテーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除するレジューム処理部とを具備する。本技術によれば、レジューム処理部がレジューム処理に伴い、サスペンド状態において取り外された拡張デバイスのデバイス識別情報をテーブルから削除することによって、存在しない拡張デバイスに対するアクセスによってシステムが停止状態に陥ることを防止することができる。また、一旦外した拡張デバイスを再び接続して利用することも可能になる。また、本技術の情報処理装置は、システムの起動手順を、前記インタフェース部に接続された1以上の拡張デバイスを検出して、検出された1以上の拡張デバイスの1以上のドライバを前記メインメモリにロードし、前記検出結果により前記テーブルを作成する第1の起動手順と、前記レジューム処理部を用いた第2の起動手順との間でユーザに選択させる選択部をさらに具備したものであってもよい。これにより、製造工程時に接続されていなかった新規の拡張デバイスを接続して利用する場合には、第1の起動手順を選択することで、その新規の拡張デバイスのデバイス識別情報を含めたテーブルを再構築することができる。これにより、レジューム処理を含む第2の起動手順によるシステムの起動後に、新規の拡張デバイスに対するアクセスを行うことが可能になる。本技術の別の形態である情報処理装置の起動方法は、インタフェース部に接続された1以上の拡張デバイスを検出し、検出された1以上の拡張デバイスの1以上のドライバをメインメモリにロードし、前記検出結果をもとに、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報が登録されたテーブルを作成して前記不揮発性メモリに格納し、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして不揮発性メモリに退避させ、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除することを特徴とする。また、この起動方法において、システムの起動手順を、前記インタフェース部に接続された1以上の拡張デバイスを検出して、検出された1以上の拡張デバイスの1以上のドライバを前記メインメモリにロードし、前記検出結果により前記テーブルを作成する第1の起動手順と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させる第2の起動手順とをユーザからの選択に従って切り替えるようにしてもよい。さらに、本技術の別の形態であるプログラムは、1以上のプログラムがロードされるメインメモリと、前記メインメモリにロードされた1以上のプログラムを実行可能なCPUと、1以上の拡張デバイスを着脱自在に接続するインタフェース部と、不揮発性メモリとを具備するコンピュータを、前記インタフェース部に接続された1以上の拡張デバイスをアクセスするために必要な1以上のデバイス識別情報を登録可能なテーブルが格納されるテーブル格納部と、システムの終了前に少なくとも、前記プログラムがロードされた前記メインメモリの内容をサスペンドデータとして不揮発性メモリに退避させるサスペンド処理部と、システムの起動時に前記不揮発性メモリに退避されたサスペンドデータを前記メインメモリに復帰させるとともに、前記インタフェース部に接続された1以上の拡張デバイスを検出し、検出結果と前記テーブル格納部に格納されたテーブルとを比較し、前記テーブルにのみ存在する拡張デバイスのデバイス識別情報を前記テーブルから削除するレジューム処理部として機能させるプログラムである。以上のように、本技術によれば、サスペンド処理前とレジューム処理後のデバイス管理情報の不整合を解消して、システムの安定性を向上させることができる。以下、本技術に係る実施形態を、図面を参照しながら説明する。<第1の実施形態>[情報処理装置ハードウェア構成]図1は、本技術の第1の実施形態に係る情報処理装置100のハードウェアおよびソフトウェアの構成を示す図である。同図に示すように、情報処理装置100は、ハードウェアとして、CPUCentralProcessingUnit11、メインメモリ12、不揮発性メモリ13、インタフェース部15、1以上の拡張デバイス1616-1,16-2,16-3,16-4、ユーザインタフェース部17、およびバス18を含む。なお、本実施形態の情報処理装置100は、例えば、パーソナルコンピュータ、記録装置、再生装置、テレビジョン装置、ディスプレイ装置、プロジェクタ装置、ゲーム機、通信用機器、デコーダ機器、エンコーダ機器など、OSを用いて動作する機器であれば、製品形態を問わない。不揮発性メモリ13には、本情報処理装置100のソフトウェア構成として、ブートローダプログラム131、OSオペレーティングシステム132、デバイスドライバ133、サスペンド処理プログラム134、レジューム処理プログラム135、デバイス管理テーブル136、アプリケーションプログラム137、図示しないユーザデータ映像、音声、文書などのファイルなどが格納される。これらのプログラムは、適宜メインメモリ12にロードされて、CPU11によって解釈されて実行される。また、不揮発性メモリ13には、サスペンド処理およびレジューム処理のためのサスペンドデータ退避領域138が設けられている。不揮発性メモリ13は、より具体的には、ハードディスクドライブ、ソリッドステートドライブSSDなど、高速で大容量の不揮発型のランダムアクセス記憶装置である。ここで、デバイス管理テーブル136は、通常起動時のデバイス検出によって検出された拡張デバイスのデバイス識別情報が登録されるテーブルである。メインメモリ12は、CPU11によって読み込まれて実行される各種プログラムがロードされたり、作業中のユーザデータなどが一時的に記憶されるメモリである。CPU11は、メインメモリ12にロードされたプログラムを読み込み、演算処理を実行する。インタフェース部15は、CPU11と1以上の拡張デバイス16を互いに接続するインタフェースである。インタフェース部15は、例えば、PCIPeripheralComponentInterconnect、PCIExpressなどの汎用的なインタフェースである。インタフェース部15には、1以上の拡張デバイス1616-1,16-2,16-3,16-4がスロットを通じて着脱自在とされている。拡張デバイス1616-1,16-2,16-3,16-4は、例えばネットワークカード、ビデオカードなど、情報処理装置100の機能を拡張する目的で追加されるデバイスである。図2の例では、4機の拡張デバイスが接続されている状態を示している。ユーザインタフェース部17は、表示部と入力操作部を有する。表示部は、例えば、システムの起動手順を通常起動と高速起動との間でユーザに選択させる選択画面などを表示することが可能である。表示部は、情報処理装置100の外部に接続されたモニタであってもよいし、情報処理装置100に組み込まれたモニタであってもよい。入力操作部は、例えば、システムの起動手順を通常起動と高速起動との間でユーザに選択させるための操作入力を受け付けるためなどに用いられる。入力操作部は、情報処理装置100の外部に接続されたキーボード、マウスなどの機器であってもよいし、情報処理装置100に組み込まれたものであってもよい。すなわち、本実施形態の情報処理装置100は、1以上のプログラムがロードされるメインメモリ12と、メインメモリ12にロードされた1以上のプログラムを実行可能なCPU11と、1以上の拡張デバイス16を着脱自在に接続するインタフェース部15と、インタフェース部15に接続された1以上の拡張デバイス16をアクセスするために必要な1以上のデバイス識別情報を登録可能なデバイス管理テーブル136が格納される不揮発性メモリ13と、システムの終了前に少なくとも、プログラムがロードされたメインメモリ12の内容をサスペンドデータとして不揮発性メモリ13に退避させるサスペンド処理部であるサスペンド処理プログラム134と、システムの起動時に不揮発性メモリ13に退避されたサスペンドデータをメインメモリ12に復帰させるとともに、インタフェース部15に接続された1以上の拡張デバイス16を検出し、検出結果とデバイス管理テーブル136とを比較し、デバイス管理テーブル136にのみ存在する拡張デバイス16のデバイス識別情報をデバイス管理テーブル136から削除するレジューム処理プログラム135とを具備する。[情報処理装置100の起動処理]本実施形態の情報処理装置100は、製造時に例えば従来の技術で説明したような典型的な手順通常起動の手順でシステムを起動させ、起動後のシステムの状態をサスペンド処理によって不揮発性メモリ13のサスペンドデータ退避領域138に退避させた状態で出荷される。購入したユーザ側では、電源ONの操作によってシステムの起動手順を選択する画面が表示される。この選択画面でユーザは高速起動と通常起動を任意に選択することができる。高速起動が選択された場合には、レジューム処理によって不揮発性メモリ13のサスペンドデータ退避領域138に退避されたデータの復帰処理を含む高速起動の手順でシステムが立ち上げられる。まず、図2のフローチャートを用いて情報処理装置100の通常起動の手順を説明する。情報処理装置100の電源がONになると、CPU11はBIOSBasicInputOutputSystemに格納されている起動用プログラムに基づいて不揮発性メモリ13からブートローダプログラム131をロードするステップS101。ブートローダプログラム131には、2種類の起動手順を選択する画面をユーザに提示し、ユーザにより選択された起動手順を設定するプログラムが含まれている。2種類の起動手順のうち第1の起動手順は通常起動のための手順であり、第2の起動手順は高速起動のための手順である。ブートローダプログラム131が起動されると、2種類の起動手順の中から1つの起動手順を選択させるための画面がユーザインタフェース部17の表示部に表示される。製造工程では通常起動の手順である第1の起動手順がユーザインタフェース部17の入力操作部を使って選択されるステップS102。CPU11はブートローダプログラム131に従って不揮発性メモリ13からカーネルをロードするなど、OS132の初期化処理を行うステップS103。カーネルはインタフェース部15に接続されている拡張デバイス16の検出をCPU11に実行させる。カーネルはこの拡張デバイス16の検出結果をもとにデバイス管理テーブル136の作成をCPU11に実行させる。作成されたデバイス管理テーブル136は不揮発性メモリ13に格納されるステップS104。図4はデバイス管理テーブル136の構成を示す図である。デバイス管理テーブル136には、インタフェースのバス番号、デバイススロット番号、ファンクション番号などで構成されるデバイス識別情報が登録される。バス番号は、バスを識別する情報である。デバイススロット番号は、1つのバス内の拡張デバイススロットを識別する情報である。ファンクション番号は1つの拡張デバイスが複数の機能ファンクションを選択的に利用可能な場合にそれらの機能を識別情報である。これらバス番号、デバイススロット番号、ファンクション番号の組み合わせで構成されるデバイス識別情報が、プロセスが拡張デバイスをアクセスするために必要なデバイスアドレスとして利用される。なお、図4はPCIインタフェースの場合を示しており、その他の種類のインタフェースの場合には、拡張デバイスを指定するアドレスの構造が異なる場合がある。続いてカーネルは、1以上の拡張デバイス16を動作させるために必要な1以上のドライバを不揮発性メモリ13からメインメモリ12へのロードをCPU11に実行させるステップS105。以上でOS132の起動が完了となる。次に、予め設定されたアプリケーションプログラム137がマニュアル操作あるいは設定ファイルに従って起動されることで、メインメモリ12にそのアプリケーションプログラム137がロードされた状態にするステップS106。必要なアプリケーションプログラム137を起動させた後、不揮発性メモリ13からメインメモリ12にサスペンド処理プログラム134がロードされる。CPU11は、このサスペンド処理プログラム134に従ってサスペンド処理を実行するステップS107。このサスペンド処理により、CPU11の汎用レジスタの内容およびメインメモリ12の内容などがサスペンドデータとして不揮発性メモリ13のサスペンドデータ退避領域138に退避された後、システムの電源がOFF状態になる。このようにサスペンドデータ退避領域138にサスペンドデータが保持された状態でシステムの電源がOFFになった状態はサスペンド状態と呼ばれる。情報処理装置100は、このサスペンド状態のまま出荷される。次に、図3のフローチャートを用いて情報処理装置100の高速起動の手順を説明する。情報処理装置100の電源がONになると、CPU11はBIOSBasicInputOutputSystemに格納されている起動用プログラムに基づいて不揮発性メモリ13からブートローダプログラム131をロードするステップS201。ブートローダプログラム131が起動されると、2種類の起動手順の中から1つの起動手順を選択させるための画面がユーザインタフェース部17の表示部に表示される。ユーザ使用工程では高速起動の手順である第2の起動手順がユーザインタフェース部17の入力操作部を使って選択されるステップS202。したがって、起動手順の選択操作は、マニュアルでも良いが、優先的かつスムースに第2の起動手順が選択されるように、選択画面の表示後、キーボードのエンターキーなどの操作によって第2の起動手順が選択されるように、選択画面において第2の起動手順がデフォルトの選択対象として設定されていることが望ましい。また、第1の起動手順が誤って選択実行されるのを防止するために、第1の起動手順の選択実行の操作に対して、選択操作の確認画面を表示し、この画面に対してユーザからの応答を入力してはじめて第1の起動手順が実行されるといった何らかの制約を設けてもよい。CPU11はブートローダプログラム131に従って不揮発性メモリ13からカーネルをロードするなど、OS132の初期化処理を行うステップS203。通常起動時は、この後、拡張デバイス16の検出、ドライバのロード、アプリケーションプログラム137のロードが順に行われたが、高速起動である第2の起動手順が選択されている場合、これらの処理はスキップされる。すなわち、OS132の初期化処理の後、レジューム処理プログラム135がメインメモリ12にロードされる。CPU11は、レジューム処理プログラム135に従って、不揮発性メモリ13に退避されたサスペンドデータをCPU11内の汎用レジスタ及びメインメモリ12に復帰させてレジューム処理を行うステップS204。続いてレジューム処理プログラム135は、インタフェース部15に接続されている拡張デバイス16の検出をCPU11に実行させるステップS205。レジューム処理プログラム135は、拡張デバイス16の検出結果と不揮発性メモリ13に格納されたデバイス管理テーブル136との比較をCPU11に実行させるステップS206。この比較で、拡張デバイス16の検出結果と不揮発性メモリ13に格納されたデバイス管理テーブル136とが一致している場合にはステップS27のNO、そのまま起動処理は終了となり、情報処理装置100をユーザが使用できる状態になる。ここで、サスペンド処理前に接続されていた拡張デバイス16が、その後のサスペンド状態においてユーザによって外されている場合が考えられる。この場合、拡張デバイス16の検出結果に存在しない拡張デバイスがデバイス管理テーブル136に存在するという不整合が発生するステップS207のYES。そこでこの場合、レジューム処理プログラム135は、デバイス管理テーブル136から拡張デバイス16の検出結果に存在しない拡張デバイスのデバイス識別情報の削除をCPU11に実行させるステップS208。これによりデバイス管理テーブル136と実際に接続されている拡張デバイス16との整合化がとられる。したがって、削除された拡張デバイスに対するアクセスが発生するような事態は発生しなくなる。例えば、図1において、例えば、バス番号=0、デバイススロット番号=1、ファンクション番号=0の拡張デバイス16-2が外されていた場合には、図5に示すように、デバイス管理テーブル136から該当する拡張デバイス16-2のデバイス識別情報が削除される。その他の拡張デバイス16-1,16-3,16-4が外された場合も同様である。また、不揮発性メモリ13には製造工程時に検出されたすべての拡張デバイス16のデバイス識別情報が登録されたデバイス管理テーブル136が格納されていることから、一旦外された拡張デバイスが再度接続された場合には、レジューム処理に続いて行われる拡張デバイスの検出結果とデバイス管理テーブル136との比較ステップS206によって一致が判定される。したがって、一旦外した拡張デバイスを再び接続して利用することが可能である。[新しい拡張デバイスが接続された場合の動作]情報処理装置100に製造工程時に接続されていなかった新規の拡張デバイスが接続された場合には、高速起動を行うと、レジューム処理に続くデバイス検出によって新規な拡張デバイスが検出される。しかし、高速起動時はその新規な拡張デバイスのドライバをロードするステップS105図2参照がスキップされるため、その拡張デバイスをアクセスすることができない。この場合には、電源がONになった直後に表示される起動手順の選択画面においてユーザが通常起動の手順である第1の起動手順を選択すればよい。第1の起動手順では、新規な拡張デバイスの検出に続いてその拡張デバイスのドライバをロードする処理が行われ、その新規な拡張デバイスのデバイス識別情報を含めたデバイス管理テーブル136が再構築される。したがって、次回の高速起動後には、その新規の拡張デバイスのアクセスを行うことが可能になる。なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。"