JP6189267B2 - 情報処理装置、方法およびプログラム - Google Patents

情報処理装置、方法およびプログラム Download PDF

Info

Publication number
JP6189267B2
JP6189267B2 JP2014167885A JP2014167885A JP6189267B2 JP 6189267 B2 JP6189267 B2 JP 6189267B2 JP 2014167885 A JP2014167885 A JP 2014167885A JP 2014167885 A JP2014167885 A JP 2014167885A JP 6189267 B2 JP6189267 B2 JP 6189267B2
Authority
JP
Japan
Prior art keywords
unit
operating system
peripheral device
access
information processing
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
JP2014167885A
Other languages
English (en)
Other versions
JP2016045596A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014167885A priority Critical patent/JP6189267B2/ja
Priority to US14/789,289 priority patent/US9524189B2/en
Publication of JP2016045596A publication Critical patent/JP2016045596A/ja
Application granted granted Critical
Publication of JP6189267B2 publication Critical patent/JP6189267B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明の実施形態は、情報処理装置、方法およびプログラムに関する。
従来より、情報処理装置の仮想化技術が知られている。仮想化技術を用いることにより単一の情報処理装置で複数のオペレーティングシステム(OS)を並行して実行させることができる。また、仮想化技術を用いてOSの切り替えをすることにより、周辺機器へのデータの入出力のアクセスを、一方のOSから他方のOSへとオフロードすることができる。
ところで、周辺機器が有するバッファメモリの容量等の制限により、周辺機器へのアクセスは、通常、数バイトから数キロバイトのデータ単位で実行される。従って、比較的に大きいデータの入出力のアクセスを、一方のOSから他方のOSへとオフロードする場合には、数バイトから数キロバイトのデータ毎にOSの切り替えをしなければならない。従って、比較的に大きいデータの入出力のアクセスをオフロードする場合には、切り替え頻度が増加し、処理のオーバヘッドが大きくなってしまっていた。
特開2012−194911号公報 特開2012−212257号公報 特開2010−211644号公報
本発明が解決しようとする課題は、オペレーティングシステムを切り替えて周辺機器へアクセスさせる場合に、オペレーティングシステムの切り替え頻度を減らすことにある。
本実施形態に係る情報処理装置は、プロセッサとバッファ部とを備え、周辺機器が接続可能である。前記情報処理装置は、第1オペレーティングシステム部と、モニタ部と、を有する。前記第1オペレーティングシステム部は、前記情報処理装置を制御する。前記モニタ部は、前記第1オペレーティングシステム部、および、前記情報処理装置を制御する第2オペレーティングシステム部の何れか一方を切り替えて機能させる。
前記モニタ部は、切替部を含む。前記切替部は、前記第2オペレーティングシステム部が前記周辺機器へのアクセス要求を発行した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる。前記第1オペレーティングシステム部は、要求入出力部と、アクセス部と、を含む。前記要求入出力部は、前記第2オペレーティングシステム部により書き込まれた前記周辺機器へのアクセス要求を前記バッファ部から読み出し、読み出した前記アクセス要求を前記周辺機器により受け付け可能な単位の命令に分割し、分割したそれぞれの命令を発行する。前記アクセス部は、前記要求入出力部により発行された命令に従って前記周辺機器にアクセスする。
第1実施形態に係る情報処理装置のハードウェア構成を示す図。 第1実施形態に係る情報処理装置の概略の機能構成を示す図。 第1実施形態に係る情報処理装置の機能構成を示す図。 第1実施形態に係るバッファ部に書き込まれる情報の第1例を示す図。 第1実施形態に係るバッファ部に書き込まれる情報の第2例を示す図。 第1実施形態に係る情報処理装置の処理フローを示す図。 第1実施形態の変形例に係る情報処理装置の機能構成を示す図。 第1実施形態の変形例に係る情報処理装置の処理フローを示す図。 第1実施形態の変形例に係る切替部の処理フローを示す図。 第2実施形態に係る情報処理装置のハードウェア構成を示す図。 第2実施形態に係る情報処理装置の機能構成を示す図。 ハイバネーション制御部の第1の処理フローを示す図。 ハイバネーション制御部の第2の処理フローを示す図。 第2実施形態の変形例に係る情報処理装置の機能構成を示す図。 第2実施形態の変形例に係る転送判定部の処理フローを示す図。 第3実施形態に係る情報処理装置の機能構成を示す図。 第3実施形態に係るバッファ部に書き込まれる情報の例を示す図。 第3実施形態に係る情報処理装置の処理フローを示す図。
以下、図面を参照しながら実施形態に係る情報処理装置について詳細に説明する。本実施形態に係る情報処理装置は、オペレーティングシステムを切り替えて周辺機器へのアクセスをオフロードする場合に、オペレーティングシステムの切り替え頻度を減らすことができる。これにより、本実施形態に係る情報処理装置は、処理のオーバヘッドを削減し、リアルタイム性を向上し、さらに、省電力化することができる。なお、以下、複数の実施形態および変形例を説明するが、略同一の機能の構成要素には図面中に同一の符号を付けて、重複した説明を省略する。
(第1実施形態)
図1は、第1実施形態に係る情報処理装置10のハードウェア構成を示す図である。情報処理装置10は、CPU(Central Processing Unit)11(プロセッサ)と、主記憶部12と、ストレージ13と、周辺機器14とを備える。
CPU11は、主記憶部12に記憶されたプログラムに記述された命令列を実行する。主記憶部12は、CPU11によるプログラムの実行の際の作業領域として用いられる。主記憶部12は、オペレーティングシステム(OS)と呼ばれるプログラムを記憶する。オペレーティングシステムは、CPU11により実行される。オペレーティングシステムは、情報処理装置10に備えられるデバイスを管理および制御し、アプリケーションプログラムにハードウェアデバイスを利用させるための基本的なプログラムである。
本実施形態においては、主記憶部12は、マイクロOS(第1オペレーティングシステム)および大型OS(第2オペレーティングシステム)を記憶する。さらに、主記憶部12は、マイクロOSおよび大型OSに関連するプログラムおよびデータも記憶する。
マイクロOSは、大型OSよりもコード数が少ない。マイクロOSは、一例として、大型OSよりもコード数が1/100程度である。従って、CPU11がマイクロOSを実行した場合の消費電力は、一般にCPU11が大型OSを実行した場合の消費電力よりも小さい。また、マイクロOSは、大型OSと比べて、管理および制御可能なハードウェアデバイスの数が少なくてもよい。
大型OSは、一例として、Linux(登録商標)またはWindows(登録商標)等の汎用OSである。大型OSは、汎用OSに限らず、特殊な分野で使用される専用のOSであってもよい。
マイクロOSは、一例として、汎用OSに存在するセキュリティの脆弱性を補完するためのセキュアOSである。マイクロOSは、セキュアOSに限らず、大型OSより小型であればどのようなOSであってもよい。
また、主記憶部12は、モニタプログラムと呼ばれるプログラム、および、モニタプログラムに関連するプログラムおよびデータを記憶する。モニタプログラムは、CPU11により実行される。モニタプログラムは、CPU11に実行されることにより、情報処理装置10を仮想化した仮想マシンをオペレーティングシステムに提供することができる。
CPU11がモニタプログラムを実行することにより、複数の仮想マシンによりオペレーティングシステムを並行して実行させることができる。モニタプログラムは、時分割で複数の仮想マシンを切替えて実行することにより、オペレーティングシステムを並行して実行させる。本実施形態においては、CPU11は、モニタプログラムを実行して仮想マシンを機能させ、マイクロOSおよび大型OSの何れか一方を切り替えて機能させる。
ストレージ13は、不揮発性の記憶装置であり、モニタプログラム、マイクロOSおよび大型OSを記憶する。CPU11は、情報処理装置10の起動時において、ストレージ13からモニタプログラム、マイクロOSおよび大型OSを読み出して、主記憶部12に記憶させる。そして、CPU11は、モニタプログラム、およびマイクロOSおよび大型OSのそれぞれを実行する。
周辺機器14は、バスおよびインタフェース等を介して接続可能な機器であって、情報処理装置10の一部として機能する。周辺機器14は、例えばハードディスクドライブ等の記憶装置、ネットワークインタフェースカード等の通信機器、測定機器および信号発生機器、音声入出力装置、および、画像入出力装置等の、CPU11から制御可能な機器である。
なお、情報処理装置10は、複数の周辺機器14を備えてよい。また、情報処理装置10は、入力装置および表示装置等のさらに他のデバイスを備えてもよい。
図2は、第1実施形態に係る情報処理装置10の概略の機能構成を示す図である。情報処理装置10は、ハードウェア部20と、マイクロOS部21(第1オペレーティングシステム部)と、大型OS部22(第2オペレーティングシステム部)と、モニタ部23とを備える。
ハードウェア部20は、図1に示したCPU11、主記憶部12、ストレージ13および周辺機器14等を備える。
マイクロOS部21は、CPU11がマイクロOSを実行することにより機能する。マイクロOS部21は、情報処理装置10に備えられるハードウェアデバイスを管理および制御し、アプリケーションプログラムに対してこれらのハードウェアデバイスを仮想化して提供する。
大型OS部22は、CPU11が大型OSを実行することにより機能する。大型OS部22は、情報処理装置10に備えられるハードウェアデバイスを管理および制御し、アプリケーションプログラムに対してこれらのハードウェアデバイスを仮想化して提供する。
モニタ部23は、CPU11がモニタプログラムを実行することにより機能する。モニタ部23は、マイクロOS部21および大型OS部22に仮想マシンを提供し、マイクロOS部21および大型OS部22を仮想マシン上で動作させる。そして、モニタ部23は、マイクロOS部21および大型OS部22の何れか一方を切り替えて機能させる。モニタ部23は、マイクロOS部21または大型OS部22からの呼び出し、および、周辺機器14等からの割り込みにより切り替えを実行する。
図3は、第1実施形態に係る情報処理装置10の機能構成を示す図である。以下、マイクロOS部21、大型OS部22およびモニタ部23の詳細な機能についてさらに説明する。
大型OS部22は、要求部31と、転送部32とを含む。モニタ部23は、切替部33を含む。マイクロOS部21は、要求入出力部34と、アクセス部35とを含む。また、主記憶部12は、バッファ部36と、状態保存部37とを含む。
要求部31は、大型OS部22が周辺機器14にアクセスする場合に呼び出される。例えば、要求部31は、大型OS部22が周辺機器14へとデータを出力(ライト)する場合、または、大型OS部22が周辺機器14からデータを入力(リード)する場合に呼び出される。そして、要求部31は、転送部32を呼び出して、周辺機器14へのアクセス要求(例えば、周辺機器14へのデータの出力(ライト)の要求、または、周辺機器14からのデータの入力(リード)の要求)を発行する。
要求部31から発行されるアクセス要求は、周辺機器14により受付可能なデータ単位の命令でなくてよい。例えば、ハードディスクドライブからデータを読み出す場合、情報処理装置10は、入出力バッファの容量等の制限から、1回の命令で予め定められた単位(例えば、4Kバイト)でしかデータを読み出すことができない。つまり、ハードディスクドライブからデータを読み出す場合、情報処理装置10は、制限を超えるデータ(例えば100Mバイト)を単一の命令で読み出すことはできない。しかし、要求部31は、周辺機器14により受付可能なデータ単位より大きなデータ単位でのアクセス要求、例えば、ハードディスクのセクタ番号1から100Mバイト分のデータを入力(リード)するといったアクセス要求を発行してもよい。
転送部32は、大型OS部22が周辺機器14へのアクセス要求を発行する場合、要求部31により呼び出される。転送部32は、要求部31から呼び出された場合、要求部31により発行された周辺機器14へのアクセス要求をバッファ部36に書き込む。
バッファ部36には、一例として、図4および図5に示されるようなアクセス要求が書き込まれる。すなわち、バッファ部36には、アクセス対象の周辺機器14を特定する情報、種別、トータルサイズ、周辺機器14の固有データ、および、入出力データが書き込まれる。
図4の表中におけるアクセス対象の周辺機器を特定する情報は、情報処理装置10に接続された周辺機器14を識別する情報である。種別は、その周辺機器14へのアクセスが、出力(ライト)なのか、入力(リード)なのかを表す。トータルサイズは、出力(ライト)または入力(リード)をするデータのサイズを表す。
図4の表中における周辺機器の固有データは、例えば、その周辺機器14にアクセスするために必要となるデータである。例えば周辺機器14がハードディスクドライブ(HDD1)である場合には、周辺機器14の固有データは、開始セクタの番号等である。また、例えば周辺機器14がネットワークインタフェースカード(NIC1)である場合には、周辺機器14の固有データは、通信のプロトコル(例えばTCP/IP)、接続先のIPアドレス(例えばaaa.bbb.ccc.ddd)およびポート番号(例えばポート“80”)、および、接続後に最初に送るメッセージ(例えば「初期化コマンド=GET index.html HTTP/1.0¥n¥n」)等である。
入出力データは、アクセスの種別が出力(ライト)の場合には、周辺機器14へと出力するデータが格納される。入出力データは、アクセスの種別が入力(リード)の場合には、周辺機器14から入力したデータが格納される。なお、アクセスの種別が入力(リード)の場合、転送部32は、入出力データが空の状態のアクセス要求をバッファ部36に書き込む。
そして、転送部32は、アクセス要求をバッファ部36に書き込んだ後、オペレーティングシステムを切り替えるために切替部33を呼び出す。
切替部33は、大型OS部22が周辺機器14へのアクセス要求を発行するために転送部32から呼び出される。切替部33は、大型OS部22の状態を待避させて機能を停止させ、マイクロOS部21の状態を復帰して機能を開始させる。
より具体的には、切替部33は、大型OS部22のコンテキストを取得して、取得したコンテキストを状態保存部37に書き込む(コンテキストの待避)。続いて、切替部33は、マイクロOS部21のコンテキストを状態保存部37から読み出して、CPU11に設定する(コンテキストの復帰)。なお、コンテキストとは、CPU11のレジスタ等のマイクロOS部21と大型OS部22で共有するデバイスの状態を表す情報である。複数のOSを並行して実行する場合、CPU11は、一方のOSの実行時のコンテキストを待避し、他方のOSのコンテキストを復帰することにより、OSの切り替えをすることができる。
そして、切替部33は、マイクロOS部21の状態を復帰して機能を開始させた後、大型OS部22が発行した周辺機器14へのアクセス要求をマイクロOS部21に実行させるために、要求入出力部34を呼び出す。
要求入出力部34は、大型OS部22が周辺機器14へのアクセス要求を発行した場合、切替部33により呼び出される。要求入出力部34は、大型OS部22により書き込まれた周辺機器14へのアクセス要求をバッファ部36から読み出す。要求入出力部34は、一例として、図4または図5に示されるようなアクセス要求を読み出す。
要求入出力部34は、読み出したアクセス要求を周辺機器14により受け付け可能な単位の命令に分割し、分割したそれぞれの命令をアクセス部35に対して発行する。より具体的には、要求入出力部34は、アクセス要求を周辺機器14が入出力できるデータサイズの命令に分割し、分割した命令を入出力済みのデータサイズがアクセス要求に含まれるトータルサイズに達するまで、繰り返して発行する。例えばハードディスクドライブのセクタ番号1から100Mバイト分について入力(リード)するというアクセス要求の場合、要求入出力部34は、最初にセクタ番号1から128セクタ分のデータのリード命令を発行し、次に129セクタから128セクタ分のデータのリード命令を発行するといったように、アクセス要求を複数のリード命令に分割して繰り返す。
そして、要求入出力部34は、アクセス部35を呼び出し、発行した命令を順次にアクセス部35に渡す。
アクセス部35は、要求入出力部34に呼び出される。アクセス部35は、要求入出力部34により発行された命令に従って周辺機器14にアクセスする。そして、アクセス部35は、周辺機器14からアクセス結果を受け取り、受け取ったアクセス結果を要求入出力部34へと返す。
より具体的には、アクセス部35は、要求入出力部34から出力命令(ライト命令)が発行された場合には、要求入出力部34から、出力すべきデータを受け取るとともに、周辺機器14の固有データを受け取る。そして、アクセス部35は、指定された周辺機器14に固有データに示された内容に従ってアクセスして、指定された周辺機器14にデータを出力する。また、アクセス部35は、要求入出力部34から入力命令(リード命令)が発行された場合には、要求入出力部34から、周辺機器14の固有データを受け取る。そして、アクセス部35は、指定された周辺機器14から固有データに示された内容に従ってアクセスして、指定された周辺機器14からデータを入力し、入力したデータをアクセス結果として要求入出力部34に返す。
要求入出力部34は、発行した命令に応じた周辺機器14へのアクセス結果を、アクセス部35から受け取る。そして、要求入出力部34は、アクセス部35が受け取ったアクセス結果をバッファ部36に書き込む。例えば、要求入出力部34は、入力命令(リード命令)を発行した場合、周辺機器14から入力したデータを受け取り、バッファ部36におけるアクセス要求の入出力データの領域に書き込む。
そして、要求入出力部34は、周辺機器14へのアクセスが完了した場合、つまり、分割した全ての命令に従った周辺機器14へのアクセスが完了した場合、切替部33を呼び出す。
切替部33は、周辺機器14へのアクセスが完了したことにより要求入出力部34から呼び出された場合、マイクロOS部21の状態を待避させて機能を停止させ、大型OS部22の状態を復帰して機能を開始させる。より具体的には、切替部33は、マイクロOS部21のコンテキストを取得して、取得したコンテキストを状態保存部37に書き込む。続いて、切替部33は、大型OS部22のコンテキストを状態保存部37から読み出して、CPU11に設定する。そして、切替部33は、転送部32を呼び出す。
転送部32は、周辺機器14へのアクセスが完了したことにより切替部33から呼び出された場合、バッファ部36からアクセス結果を読み出す。例えば、周辺機器14からのデータを入力(リード)するアクセス要求を発行した場合、バッファ部36から入力データを読み出す。そして、転送部32は、読み出したアクセス結果を、要求部31に返す。
図6は、第1実施形態に係る情報処理装置10の処理フローを示す図である。次に、情報処理装置10の処理フローを説明する。
まず、要求部31は、転送部32を呼び出し、転送部32にアクセス要求を渡す(S11)。続いて、転送部32は、アクセス要求に含まれる、アクセス対象の周辺機器14を特定する値、種別およびトータルサイズをバッファ部36に書き込む(S12)。続いて、転送部32は、アクセス要求に含まれる周辺機器14の固有データをバッファ部36に書き込む(S13)。
続いて、転送部32は、周辺機器14へのアクセスの種別が、出力(ライト)であるか入力(リード)であるかを判定する(S14)。出力(ライト)の場合、転送部32は、バッファ部36にデータを書き込み(S15)、処理をステップS16に進める。入力(リード)の場合、転送部32は、そのまま処理をステップS16に進める。そして、ステップS16において、転送部32は、切替部33を呼び出す。
続いて、切替部33は、大型OS部22のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、大型OS部22のコンテキストを待避させて、大型OS部22の機能を停止させることができる(S17)。
続いて、切替部33は、マイクロOS部21のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、マイクロOS部21のコンテキストを復帰させて、マイクロOS部21の機能を開始させることができる(S18)。そして、切替部33は、要求入出力部34を呼び出す。
続いて、要求入出力部34は、入出力済みのデータサイズが、バッファ部36に書き込まれているトータルサイズと同一であるか否かを判定する(S19)。要求入出力部34は、入出力済みのデータサイズとトータルサイズとが同一である場合には(S19のYes)、処理をステップS24に進め、同一ではない場合には(S19のNo)、処理をステップS20に進める。
ステップS20において、要求入出力部34は、アクセスの種別が出力(ライト)であるか入力(リード)であるかを判定する。種別が出力(ライト)である場合、要求入出力部34は、アクセス要求を分割した出力命令(ライト命令)をアクセス部35に発行して、バッファ部36に記憶されているデータを周辺機器14に出力させる(S21)。種別が入力(リード)である場合、要求入出力部34は、アクセス要求を分割した入力命令(リード命令)をアクセス部35に発行して、アクセス部35が周辺機器14から受け取ったデータをバッファ部36に書き込む(S22)。要求入出力部34は、分割した命令を発行すると、処理をステップS23に進める。
続いて、ステップS23において、要求入出力部34は、入出力済みのデータサイズを更新する。要求入出力部34は、ステップS23を終えると処理をステップS19に戻す。そして、要求入出力部34は、ステップS19からステップS23までの処理を、入力済みのデータサイズとトータルサイズとが同一となるまで繰り返す。例えば、トータルサイズが1Mバイト(1024Kバイト)であり、周辺機器14が有する入出力バッファの量が1Kバイトであったとする場合、要求入出力部34は、ステップS19からステップS23までの処理を1024回繰り返す。
入力済みのデータサイズとトータルサイズとが同一となった場合(S19のYes)、アクセス要求に応じた周辺機器14へのアクセスを完了したので、要求入出力部34は、切替部33を呼び出す(S24)。続いて、切替部33は、マイクロOS部21のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、マイクロOS部21のコンテキストを待避させて、マイクロOS部21の機能を停止させることができる(S25)。
続いて、切替部33は、大型OS部22のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、大型OS部22のコンテキストを復帰させて、大型OS部22の機能を開始させることができる(S26)。そして、切替部33は、転送部32を呼び出す。
続いて、転送部32は、アクセス結果を要求部31に返す(S27)。なお、アクセス要求の種別が入力(リード)の場合には、転送部32は、バッファ部36から入力データを読み出して、要求部31に渡す。ステップS27を終えると、情報処理装置10は、本フローを終了する。
以上のように本実施形態に係る情報処理装置10は、大型OS部22による周辺機器14のアクセス要求をマイクロOS部21にオフロードする場合、マイクロOS部21でアクセス要求を分割して周辺機器14にアクセスする。これにより、本実施形態に係る情報処理装置10によれば、オペレーティングシステムの切り替えの頻度を少なくしてオーバヘッドを無くし、処理のリアルタイム性を向上させることができる。
例えば、1Mバイト(1024Kバイト)のデータをネットワークを介して外部へ出力する場合、ネットワークインタフェースカードが持つデータ入出力用バッファの容量が1Kバイトであれば、情報処理装置10は、データを1024個に分割してネットワークインタフェースカードにアクセスする。しかしながら、情報処理装置10は、1Mバイトのアクセス要求をそのままバッファ部36に書き込むので、このような場合であっても、オペレーティングシステムの切り替えを、往復で2048回もせずに、往復2回で完了させることができる。
(第1実施形態の変形例)
図7は、第1実施形態の変形例に係る情報処理装置10の機能構成を示す図である。第1実施形態の変形例に係る情報処理装置10は、周辺機器14の処理中において、マイクロOS部21の機能を停止して、大型OS部22を機能させることができる。なお、本変形例に係る情報処理装置10は、図3に示す機能構成と略同一である。以下、図3に示す機能構成との相違点について説明する。
本変形例に係るマイクロOS部21は、切替判定部41をさらに含む。切替判定部41は、アクセス部35から呼び出される。より具体的には、切替判定部41は、アクセス部35が周辺機器14にアクセスした結果、周辺機器14が処理中となった後に、アクセス部35から呼び出される。
切替判定部41は、周辺機器14の処理中に、マイクロOS部21の機能を停止して大型OS部22を機能させるか否かを判定する。切替判定部41は、一例として、周辺機器14による推定の処理時間が予め定められた時間以上の場合、マイクロOS部21の機能を停止して大型OS部22の機能を開始させると判定する。また、切替判定部41は、一例として、アクセス部35から呼び出された場合、すなわち、周辺機器14が処理中となった場合、常に、マイクロOS部21の機能を停止して大型OS部22の機能を開始させると判定してもよい。
切替判定部41は、マイクロOS部21の機能を停止して大型OS部22を機能させると判定した場合には、切替部33を呼び出す。切替判定部41は、マイクロOS部21の機能を停止して大型OS部22を機能させると判定しなかった場合には、特に処理を実行せずに、アクセス部35に処理を戻す。
周辺機器14は、アクセス部35からのアクセスに応じて処理を開始した後は、マイクロOS部21の機能が停止しても、その処理を継続する。また、周辺機器14は、処理が完了した場合、処理が完了したことを通知する割り込みを、切替部33へ与える。
切替部33は、切替判定部41がマイクロOS部21の機能を停止して大型OS部22を機能させると判定したことにより、切替判定部41から呼び出された場合、マイクロOS部21の状態を待避させて機能を停止させ、大型OS部22の状態を復帰して機能を開始させる。そして、切替部33は、転送部32を呼び出す。転送部32は、切替判定部41がマイクロOS部21の機能を停止して大型OS部22を機能させると判定したことにより切替部33から呼び出された場合、アクセス要求を発行したタスクを切り替えて、他のタスクを実行する。これにより、大型OS部22は、周辺機器14の処理中において、アクセス要求を発行した処理とは異なる他の処理を実行することができる。
また、切替部33は、周辺機器14から処理が完了したことを通知する割り込みを受け取った場合、周辺機器14に対するアクセス元が、マイクロOS部21であるか大型OS部22であるかを判定する。切替部33は、周辺機器14に対するアクセス元が大型OS部22である場合には、処理が完了したことを通知する割り込みを大型OS部22へと与える。
切替部33は、周辺機器14に対するアクセス元がマイクロOS部21である場合には、すなわち、周辺機器14がマイクロOS部21からのアクセスによって開始した処理を完了した場合、大型OS部22の状態を待避させて機能を停止させ、マイクロOS部21の状態を復帰して機能を開始させる。そして、切替部33は、切替判定部41を呼び出す。
切替判定部41は、切替部33から呼び出されると、アクセス部35に処理を戻す。アクセス部35は、切替判定部41から処理が戻されると、周辺機器14に対するアクセスを継続する。これにより、アクセス部35は、周辺機器14からのアクセス結果を受け取ることができる。そして、アクセス部35は、要求入出力部34から次の命令が発行された場合、周辺機器14へとアクセスして処理を開始させた後、再度、切替判定部41を呼び出す。
図8は、第1実施形態の変形例に係る情報処理装置10の処理フローを示す図である。本変形例に係る情報処理装置10は、ステップS11からステップS18までの処理は、図6に示すフローと同一である。従って、本変形例の処理フローについては、ステップS18より後を説明する。
ステップS18の処理を終えると、切替部33は、要求入出力部34を呼び出して、処理をステップS31に進める。ステップS31において、要求入出力部34は、入出力済みのデータサイズが、バッファ部36に書き込まれているトータルサイズと同一であるか否かを判定する。要求入出力部34は、入出力済みのデータサイズとトータルサイズとが同一である場合には(S31のYes)、処理をステップS38に進め、同一ではない場合には(S31のNo)、処理をステップS32に進める。
ステップS32において、要求入出力部34は、アクセスの種別が出力(ライト)であるか入力(リード)であるかを判定する。種別が出力(ライト)である場合、要求入出力部34は、アクセス要求を分割した出力命令(ライト命令)をアクセス部35に発行して、バッファ部36に記憶されているデータを周辺機器14に出力させる(S33)。種別が入力(リード)である場合、要求入出力部34は、アクセス要求を分割した入力命令(リード命令)をアクセス部35に発行する(S34)。アクセス部35は、要求入出力部34が発行した命令に従って周辺機器14にアクセスして、周辺機器14に処理を開始させると、切替判定部41を呼び出して処理をステップS35に進める。
続いて、ステップS35において、切替判定部41は、周辺機器14の処理中にマイクロOS部21の機能を停止して大型OS部22を機能させるか否かを判定する。切替判定部41は、周辺機器14の処理中にマイクロOS部21の機能を停止して大型OS部22を機能させると判定した場合には(S35のYes)、処理をステップS38に進める。
切替判定部41は、周辺機器14の処理中にマイクロOS部21の機能を停止して大型OS部22を機能させないと判定した場合には(S35のNo)、処理をステップS36に進める。
ステップS36において、要求入出力部34は、ステップS34またはステップS35で発行した命令のアクセス結果を受け取り、バッファ部36に書き込む。要求入出力部34は、データを周辺機器14から入力する命令(リード命令)を発行した場合には、周辺機器14から取得したデータをバッファ部36に書き込む。
続いて、ステップS37において、要求入出力部34は、入出力済みのデータサイズを更新する。要求入出力部34は、ステップS37を終えると処理をステップS31に戻す。そして、要求入出力部34は、ステップS31からステップS37までの処理を、入力済みのデータサイズとトータルサイズとが同一となるまで繰り返す。
周辺機器14の処理中にマイクロOS部21の機能を停止して大型OS部22を機能させると判定した場合(S35のYes)、または、入力済みのデータサイズとトータルサイズとが同一となった場合(S31のYes)、要求入出力部34は、切替部33を呼び出す(S38)。続いて、切替部33は、マイクロOS部21のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、マイクロOS部21のコンテキストを待避させて、マイクロOS部21の機能を停止させることができる(S39)。
続いて、切替部33は、大型OS部22のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、大型OS部22のコンテキストを復帰させて、大型OS部22の機能を開始させることができる(S40)。そして、切替部33は、転送部32を呼び出す。
続いて、転送部32は、発行したアクセス要求に対する周辺機器14の処理が未完了であるか否かを判定する(S41)。発行したアクセス要求に対する周辺機器14の処理が未完了ではない場合(S41のNo)、転送部32は、処理をステップS42に進める。ステップS42において、転送部32は、アクセス結果を要求部31に返す。
発行したアクセス要求に対する周辺機器14の処理が未完了である場合(S41のYes)、転送部32は、処理をステップS43に進める。ステップS43において、転送部32は、別のタスクに処理を切り替える。これにより情報処理装置10は、周辺機器14の処理中において、大型OS部22に他の処理を実行させることができる。
そして、情報処理装置10は、ステップS42またはステップS43の処理を終えると本フローを終了する。
図9は、第1実施形態の変形例に係る切替部33の処理フローを示す図である。本変形例に係る切替部33は、図8に示したフローと並行して、図9に示すフローを実行する。
まず、切替部33は、周辺機器14から処理の完了を示す割り込みを受け取るまで、処理を待機する(S44)。切替部33は、周辺機器14から処理の完了を示す割り込みを受け取った場合(S44のYes)、処理をステップS45に進める。
ステップS45において、切替部33は、割り込みをしてきた周辺機器14に対するアクセス元が、マイクロOS部21であるか大型OS部22であるかを判定する。切替部33は、アクセス元が大型OS部22である場合(S45のYes)、処理をステップS46に進める。ステップS46において、切替部33は、処理が完了したことを通知する割り込みを大型OS部22へと与え、本フローを終了する。
切替部33は、アクセス元がマイクロOS部21である場合(S45のNo)、処理をステップS47に進める。ステップS47において、切替部33は、大型OS部22のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、大型OS部22のコンテキストを待避させて、大型OS部22の機能を停止させることができる(S47)。
続いて、切替部33は、マイクロOS部21のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、マイクロOS部21のコンテキストを復帰させて、マイクロOS部21の機能を開始させることができる(S48)。
そして、切替部33は、要求入出力部34を呼び出す。要求入出力部34は、切替部33から呼び出されると、図8のステップS36から処理を実行する。これにより、要求入出力部34は、ステップS31からステップS37までのループに処理を復帰し、アクセス要求に応じた命令の発行処理を繰り返すことができる。
本変形例に係る情報処理装置10は、周辺機器14の処理中において、マイクロOS部21の機能を停止し、大型OS部22を機能させることができる。これにより、情報処理装置10は、オフロードによる大型OS部22の機能の停止期間を短くし、より効率良く周辺機器14に対するアクセスを実行することができる。
(第2実施形態)
図10は、第2実施形態に係る情報処理装置50のハードウェア構成を示す図である。本実施形態に係る情報処理装置50は、大型OS部22の機能の停止中に、大型OS部22に関連するハードウェアデバイスの電源を遮断して省電力化を図ることができる。
本実施形態に係る情報処理装置50は、図1に示した第1実施形態に係る情報処理装置10の主記憶部12に代えて、不揮発性主記憶部51と、揮発性主記憶部52と、電源管理部53と、二次記憶部54とを備える。
不揮発性主記憶部51は、電源を遮断してもデータを保存し続けるメモリである。不揮発性主記憶部51は、モニタプログラムおよびマイクロOS、および、これらに関連するプログラムおよびデータを記憶し、CPU11によるモニタプログラムおよびマイクロOSの実行の際の作業領域として用いられる。不揮発性主記憶部51は、一例として、MRAM(Magnetoresistive Random Access Memory)である。
揮発性主記憶部52は、電源を遮断すると、データを消失するメモリである。揮発性主記憶部52は、大型OS、および、大型OSに関連するプログラムおよびデータを記憶し、CPU11による大型OSの実行の際の作業領域として用いられる。揮発性主記憶部52は、一例として、DRAM(Dynamic Random Access Memory)である。
電源管理部53は、情報処理装置50が備えるそれぞれのハードウェアデバイスの電源の投入および遮断を制御する。より具体的には、電源管理部53は、CPU11からの制御に従って、揮発性主記憶部52の電源の投入および遮断、それぞれの周辺機器14の電源の投入および遮断を制御する。
二次記憶部54は、電源を遮断してもデータを保存し続ける記憶装置であって、例えば、ハードディスクドライブまたはフラッシュメモリ等である。二次記憶部54は、バスおよびインタフェース等を介してCPU11に接続されている。
図11は、第2実施形態に係る情報処理装置50の概略の機能構成を示す図である。本実施形態に係る情報処理装置50は、図3に示す機能構成と略同一である。以下、図3に示す機能構成との相違点について説明する。
本実施形態に係る不揮発性主記憶部51は、バッファ部36および状態保存部37を含む。また、本実施形態に係るモニタ部23は、ハイバネーション制御部55をさらに含む。
切替部33は、大型OS部22の機能を停止させてマイクロOS部21の機能を開始させる場合、ハイバネーション制御部55を呼び出す。また、切替部33は、マイクロOS部21の機能を停止させて大型OS部22の機能を開始させる場合も、ハイバネーション制御部55を呼び出す。
ハイバネーション制御部55は、大型OS部22の機能を停止させてマイクロOS部21の機能を開始させる場合に、切替部33により呼び出される。この場合、ハイバネーション制御部55は、次のような処理を実行する。
ハイバネーション制御部55は、揮発性主記憶部52に記憶されている、CPU11を大型OS部22として機能させるためのプログラムおよびデータのコピーを取得して、二次記憶部54に書き込む。そして、ハイバネーション制御部55は、電源管理部53に命令を与えて、揮発性主記憶部52の電源を遮断する。さらに、ハイバネーション制御部55は、大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14の状態を読み出して、二次記憶部54に書き込む。そして、ハイバネーション制御部55は、電源管理部53に命令を与えて、大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14の電源を遮断する。
また、ハイバネーション制御部55は、マイクロOS部21の機能を停止させて大型OS部22の機能を開始させる場合に、切替部33により呼び出される。この場合、ハイバネーション制御部55は、次のような処理を実行する。
ハイバネーション制御部55は、揮発性主記憶部52の電源を投入する。そして、ハイバネーション制御部55は、二次記憶部54から、CPU11を大型OS部22として機能させるためのプログラムおよびデータのコピーを読み出して揮発性主記憶部52に書き込む。さらに、ハイバネーション制御部55は、大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14の電源を投入する。そして、ハイバネーション制御部55は、これらの周辺機器14を二次記憶部54に記憶されている状態に設定する。
図12は、第2実施形態に係る情報処理装置50の、ステップS17とステップS18との間の処理フローを示す図である。図13は、第2実施形態に係る情報処理装置50の、ステップS25とステップS26との間の処理フローを示す図である。
本実施形態に係る情報処理装置50は、図6のステップS11からステップS27までの処理に加えて、ステップS17とステップS18との間に、図12のステップS51からステップS55の処理を実行する。さらに、本実施形態に係る情報処理装置50は、図6のステップS11からステップS27までの処理に加えて、ステップS25とステップS26との間に、図13のステップS61からステップS65の処理を実行する。
図12に示すステップS17において、大型OS部22のコンテキスト待避をした後、切替部33は、ハイバネーション制御部55を呼び出す。続いて、ハイバネーション制御部55は、揮発性主記憶部52に記憶されているプログラムおよびデータのコピーを二次記憶部54に書き込む(S51)。続いて、ハイバネーション制御部55は、電源管理部53に揮発性主記憶部52の電源遮断命令を発行し、揮発性主記憶部52の電源を遮断する(S52)。
続いて、ハイバネーション制御部55は、大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14の一覧を取得する(S53)。続いて、ハイバネーション制御部55は、一覧の周辺機器14の各周辺機器の状態を読み出して、二次記憶部54に書き込む(S54)。続いて、ハイバネーション制御部55は、電源管理部53に一覧の各周辺機器14の電源遮断命令を発行し、一覧の周辺機器14の電源を遮断する(S55)。そして、ステップS18において、切替部33は、マイクロOS部21のコンテキスト復帰をする。
また、図13に示すステップS25において、マイクロOS部21のコンテキスト待避をした後、切替部33は、ハイバネーション制御部55を呼び出す。続いて、ハイバネーション制御部55は、電源管理部53に揮発性主記憶部52の電源投入命令を発行し、揮発性主記憶部52の電源を投入する(S61)。続いて、ハイバネーション制御部55は、二次記憶部54に記憶されているプログラムおよびデータのコピーを読み出して、揮発性主記憶部52に書き込む(S62)。
続いて、ハイバネーション制御部55は、大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14の一覧を取得する(S63)。続いて、ハイバネーション制御部55は、電源管理部53に一覧の周辺機器14の電源投入命令を発行し、一覧の周辺機器14の電源を投入する(S64)。続いて、ハイバネーション制御部55は、一覧の周辺機器14を、二次記憶部54に記憶された状態に復元する(S65)。そして、ステップS26において、切替部33は、大型OS部22のコンテキスト復帰をする。
一般に周辺機器14に対するデータの入出力時間は長い。従って、大容量のデータの入出力アクセスをマイクロOS部21にオフロードした場合、大型OS部22は、長時間停止する。また、マイクロOS部21は、マイクロOSのコード数が大型OSのコード数より少ないので、一般にメモリ消費量が大型OS部22よりも少ない。従って、CPU11は、マイクロOSを、例えばMRAMのような、低容量および電力消費量が少ない不揮発性メモリ上に展開することができる。MRAM以外にもバッテリにより内容が保持されるSRAM等のデバイスを不揮発性メモリとして利用してもよい。
一方、CPU11は、汎用OSを、DRAMのような大容量および電力消費量が多い揮発性メモリ上に展開しなければならない。そこで、第2実施形態に係る情報処理装置50は、マイクロOSおよびマイクロOSに関連するデータを不揮発性主記憶部51に記憶させ、大型OSおよび大型OSに関連するデータを揮発性主記憶部52に記憶させ、大型OS部22の停止中においては、揮発性主記憶部52の電源を遮断する。これにより、情報処理装置50は、省電力化を図ることができる。
また、第2実施形態に係る情報処理装置50は、大型OS部22の停止中においては、マイクロOS部21が使用しないデバイス(大型OS部22が使用し且つマイクロOS部21が使用しない周辺機器14)の電源を遮断する。これにより、第2実施形態に係る情報処理装置50は、さらなる省電力化を図ることができる。
(第2実施形態の変形例)
図14は、第2実施形態の変形例に係る情報処理装置50の機能構成を示す図である。本変形例に係る情報処理装置50は、アクセス要求が発行された場合であっても、条件によっては大型OS部22から直接、周辺機器14へとアクセスすることができる。
本変形例に係る情報処理装置50は、図11に示す機能構成と略同一である。以下、図11に示す機能構成との相違点について説明する。
本変形例に係る大型OS部22は、転送判定部61と、第2アクセス部62とをさらに含む。本変形例においては、要求部31は、アクセス要求を発行する場合に、転送判定部61を呼び出す。
転送判定部61は、要求部31がアクセス要求を発行する場合に、要求部31から呼び出される。転送判定部61は、周辺機器14へのアクセスをマイクロOS部21に実行させるか否かを判定する。
例えば、転送判定部61は、大型OS部22がタスクを停止させておくことが可能な最大の時間である停止可能時間を、現在のタスクの動作状況等から計算する。さらに、例えば、転送判定部61は、アクセス要求に応じた処理を周辺機器14に実行させた場合における周辺機器14の処理時間を、アクセス要求の内容および周辺機器14の処理能力等から計算する。そして、転送判定部61は、一例として、大型OS部22の停止可能時間が、予め設定された第1の閾値以上であり、且つ、周辺機器14の処理時間が、予め設定された第2の閾値以上である場合、アクセス要求をマイクロOS部21に実行させると判定する。また、転送判定部61は、一例として、停止可能時間が第1の閾値より短い、または、周辺機器14の処理時間が第2の閾値より短い場合、アクセス要求を大型OS部22に実行させると判定する。
転送判定部61は、アクセス要求をマイクロOS部21に実行させると判定した場合、転送部32を呼び出す。また、転送判定部61は、周辺機器14へのアクセスをマイクロOS部21で実行させないと判定した場合(すなわち、アクセス要求を大型OS部22に実行させると判定した場合)、転送部32は呼び出さずに、第2アクセス部62を呼び出す。
第2アクセス部62は、周辺機器14へのアクセスをマイクロOS部21で実行させないと判定した場合に、転送判定部61に呼び出される。第2アクセス部62は、転送判定部61により呼び出された場合、アクセス要求を周辺機器14により受け付け可能な単位の命令に分割し、分割したそれぞれの命令に応じて周辺機器14にアクセスする。そして、第2アクセス部62は、周辺機器14からアクセス結果を受け取り、受け取ったアクセス結果を転送判定部61に返す。
転送部32は、周辺機器14へのアクセスをマイクロOS部21で実行させると判定した場合、転送判定部61に呼び出される。転送部32は、転送判定部61に呼び出されると、周辺機器14へのアクセス要求をバッファ部36に書き込む。また、転送部32は、周辺機器14へのアクセスが完了したことにより切替部33から呼び出された場合、バッファ部36からアクセス結果を読み出し、読み出したアクセス結果を、転送判定部61に返す。転送判定部61は、第2アクセス部62または転送部32からアクセス結果が返ってきた場合、そのアクセス結果を要求部31に返す。
図15は、第2実施形態の変形例に係る転送判定部61の処理フローを示す図である。本変形例に係る情報処理装置50は、図6、図12および図13の処理フローに加えて、ステップS11とステップS12との間に、図15に示すステップS71からステップS74の処理を実行する。
まず、ステップS11において、要求部31は、転送判定部61を呼び出し、転送判定部61にアクセス要求を渡す。続いて、ステップS71において、転送判定部61は、現在のタスクの動作状況等から大型OS部22の停止可能時間を計算し、大型OS部22の停止可能時間が予め設定された第1の閾値以上であるか否かを判定する。転送判定部61は、大型OS部22の停止可能時間が第1の閾値以上である場合(S71のYes)、処理をステップS72に進め、大型OS部22の停止可能時間が第1の閾値以上ではない場合(S71のNo)、処理をステップS73に進める。
ステップS72において、転送判定部61は、アクセス要求の内容および周辺機器14の処理能力等から周辺機器14の処理時間を計算し、周辺機器14の処理時間が予め設定された第2の閾値以上であるか否かを判定する。転送判定部61は、周辺機器14の処理時間が第2の閾値以上である場合(S72のYes)、処理をステップS12に進め、周辺機器14の処理時間が第2の閾値以上ではない場合(S72のNo)、処理をステップS73に進める。
ステップS12において、転送判定部61は、転送部32を呼び出す。そして、転送部32は、アクセス要求に含まれる、アクセス対象の周辺機器14を特定する値、種別およびトータルサイズをバッファ部36に書き込む。
ステップS73において、転送判定部61は、第2アクセス部62を呼び出す。第2アクセス部62は、アクセス要求を周辺機器14により受け付け可能な単位の命令に分割し、分割したそれぞれの命令に応じて周辺機器14にアクセスする。続いて、ステップS74において、第2アクセス部62は、周辺機器14からアクセス結果を受け取り、受け取ったアクセス結果を転送判定部61に返す。そして、情報処理装置50は、ステップS74の処理を終えると、本フローを終了する。
以上の本変形例に係る情報処理装置50は、省電力化を図ることができる。これとともに、本変形例に係る情報処理装置50は、実行しているタスクの影響等により大型OS部22の停止可能時間が短く、マイクロOS部21による処理時間が停止可能時間を上回ってしまい、マイクロOS部21にアクセス要求を処理させることが困難な場合、大型OS部22にアクセス要求を処理させることができる。また、本変形例に係る情報処理装置50は、周辺機器14の処理時間が短いため、マイクロOS部21にアクセス要求を処理させた方がコストが高くなる場合に、大型OS部22にアクセス要求を処理させることができる。
(第3実施形態)
図16は、第3実施形態に係る情報処理装置70の機能構成を示す図である。本実施形態に係る情報処理装置70は、周辺機器14へのアクセス命令を含む命令列(コード)をマイクロOS部21に実行させることができる。
本実施形態に係る情報処理装置70は、図3に示す構成と略同一である。以下、図3に示す構成との相違点について説明する。
本実施形態において、要求部31は、周辺機器14へのアクセス命令を含む命令列、署名および入出力データを含むアクセス要求を発行する。なお、命令列に含まれるアクセス命令の種別が入力(リード)のみの場合には、入出力データは空である。署名は、命令列が正当に作成されたかを検証するための情報である。
転送部32は、命令列、署名および入出力データを含むアクセス要求をバッファ部36に書き込む。バッファ部36には、一例として、図17に示されるような情報が書き込まれる。図17に示される情報は、入出力データに示されるデータが無くなるまで、一秒毎に、周辺機器14であるサウンドカードに対してデータを出力させることを示す命令列の例である。なお、命令列には、アクセス対象となる周辺機器14を特定する値、アクセスの種別および周辺機器14の固有データ等が含まれる。
本実施形態に係るマイクロOS部21は、図3で説明した構成に加えて、コード実行部72と、検証部73とをさらに含む。
本実施形態において、要求入出力部34は、切替部33から呼び出された場合、コード実行部72を呼び出す。コード実行部72は、要求入出力部34から呼び出された場合、命令列、署名および入出力データをバッファ部36から読み出す。コード実行部72は、検証部73を呼び出して、署名および命令列を渡す。
検証部73は、コード実行部72により呼び出されて署名および命令列を受け取ると、命令列の正当性を検証する。検証部73は、一例として、署名に含まれるハッシュ値と命令列から算出したハッシュ値とが一致し、且つ、署名が正しい鍵で作成されているかを判定する。検証部73は、ハッシュ値が一致し、且つ、署名が正しい鍵で作成されている場合には、命令列の正当性の検証が成功したとして、判定結果をコード実行部72に返す。検証部73は、ハッシュ値が一致しなかった場合、または、署名が正しい鍵で作成されていない場合には、エラーであったことを示す情報をコード実行部72に返す。なお、署名の検証方式は、一般的に知られたRSA署名等の方式であってよい。
コード実行部72は、検証部73による命令列の正当性の検証が成功した場合、命令列を実行する。この場合において、コード実行部72は、命令列にアクセス命令が含まれている場合には、アクセス部35を呼び出して、アクセス命令をアクセス部35に渡す。アクセス部35は、コード実行部72により呼び出されてアクセス命令が渡されると、指定された周辺機器14にアクセスをし、アクセス結果をコード実行部72に渡す。コード実行部72は、アクセス命令の種別が入力命令(リード命令)である場合には、アクセス結果に含まれるデータをバッファ部36に書き込む。
そして、コード実行部72は、命令列の実行を終了した場合、周辺機器14へのアクセスが完了したとして要求入出力部34を呼び出す。要求入出力部34は、周辺機器14へのアクセスが完了してコード実行部72から呼び出された場合、切替部33を呼び出す。
なお、アクセス要求は、署名を含まなくてもよい。この場合、マイクロOS部21は検証部73を含まず、コード実行部72は、命令列の正当性の検証をせずに命令列を実行する。
図6は、第3実施形態に係る情報処理装置70の処理フローを示す図である。
まず、要求部31は、転送部32を呼び出し、転送部32に、アクセス要求を渡す(S81)。続いて、転送部32は、アクセス要求に含まれる命令列および署名をバッファ部36に書き込む(S82)。続いて、転送部32は、命令列に含まれるアクセス命令の種別が出力(ライト)であるか入力(リード)であるかを判定する(S83)。出力(ライト)の場合、転送部32は、バッファ部36にデータを書き込み(S84)、処理をステップS85に進める。入力(リード)の場合、転送部32は、そのまま処理をステップS85に進める。そして、ステップS85において、転送部32は、切替部33を呼び出す。
続いて、切替部33は、大型OS部22のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、大型OS部22のコンテキストを待避させて、大型OS部22の機能を停止させることができる(S86)。
続いて、切替部33は、マイクロOS部21のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、マイクロOS部21のコンテキストを復帰させて、マイクロOS部21の機能を開始させることができる(S87)。そして、切替部33は、要求入出力部34を呼び出す。
続いて、要求入出力部34は、コード実行部72を呼び出す。さらに、コード実行部72は、バッファ部36から命令列および署名を読み出し、検証部73を呼び出して署名を検証させる(S88)。署名が正しくない場合(S88のNo)、コード実行部72は、エラー処理を実行して(S89)、本フローを終了する。署名が正しい場合(S88のYes)、コード実行部72は、処理をステップS90に進める。
ステップS90において、コード実行部72は、命令列の実行が完了したか否かを判定する。コード実行部72は、命令列の実行が完了した場合には(S90のYes)、処理をステップS97に進め、完了していない場合には(S90のNo)、処理をステップS91に進める。
ステップS91において、コード実行部72は、命令列の中から次に実行すべき命令を取り出す。続いて、ステップS92において、コード実行部72は、取り出した命令が、周辺機器14へのアクセス命令であるか否かを判定する。アクセス命令ではない場合には(S92のNo)、コード実行部72は、処理をステップS93に進める。ステップS93において、コード実行部72は、取り出した命令を実行する。
アクセス命令である場合には(S92のYes)、コード実行部72は、処理をステップS94に進める。ステップS94において、コード実行部72は、取得したアクセス命令の種別が出力(ライト)であるか入力(リード)であるかを判定する。種別が出力(ライト)である場合、コード実行部72は、バッファ部36に記憶されているデータを読み出して出力命令(ライト命令)をアクセス部35に与えて、読み出したデータを周辺機器14に出力する(S95)。種別が入力(リード)である場合、コード実行部72は、入力命令(リード命令)をアクセス部35に与えて、周辺機器14からデータを取得してバッファ部36に書き込む(S96)。
そして、コード実行部72は、ステップS93、ステップS95またはステップS96の処理を終えると、処理をステップS90に戻す。そして、コード実行部72は、ステップS90からステップS96までの処理を、命令列の実行を全て完了するまで繰り返す。
命令列の実行を全て完了すると(S90のYes)、コード実行部72は、切替部33を呼び出す(S97)。続いて、切替部33は、マイクロOS部21のコンテキストを取得して状態保存部37に書き込む。これにより、切替部33は、マイクロOS部21のコンテキストを待避させて、マイクロOS部21の機能を停止させることができる(S98)。
続いて、切替部33は、大型OS部22のコンテキストを状態保存部37から読み出して、コンテキストを再設定する。これにより、切替部33は、大型OS部22のコンテキストを復帰させて、大型OS部22の機能を開始させることができる(S99)。そして、切替部33は、転送部32を呼び出す。
続いて、転送部32は、アクセス結果を要求部31に返す(S100)。なお、アクセス要求の種別が入力(リード)の場合には、転送部32は、バッファ部36から入力データを読み出して、要求部31に渡す。ステップS100を終えると、情報処理装置70は、本フローを終了する。
以上のように本実施形態に係る情報処理装置70は、命令列の実行もマイクロOS部21に実行させることができる。これにより、情報処理装置70は、例えば、周辺機器14への複雑なタイミングのアクセス、周辺機器14の複雑な領域へのアクセス等を容易に実行させることができる。また、情報処理装置70は、命令列の署名を検証することができるので、不正な命令列の実行を防止することができる。また、さらに、本実施形態に係る情報処理装置70は、第2実施形態に係る情報処理装置50の構成を適用することも可能である。これにより、情報処理装置70は、より省電力化を図ることができる。
以上説明した本実施形態の情報処理装置10、50、70で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置10、50、70で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置10、50、70で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理装置
11 CPU
12 主記憶部
13 ストレージ
14 周辺機器
20 ハードウェア部
21 マイクロOS部
22 大型OS部
23 モニタ部
31 要求部
32 転送部
33 切替部
34 要求入出力部
35 アクセス部
36 バッファ部
37 状態保存部
41 切替判定部
50 情報処理装置
51 不揮発性主記憶部
52 揮発性主記憶部
53 電源管理部
54 二次記憶部
55 ハイバネーション制御部
61 転送判定部
62 第2アクセス部
70 情報処理装置
72 コード実行部
73 検証部

Claims (15)

  1. プロセッサとバッファ部とを備え、周辺機器が接続可能な情報処理装置であって、
    前記情報処理装置を制御する第1オペレーティングシステム部と、
    前記第1オペレーティングシステム部、および、前記情報処理装置を制御する第2オペレーティングシステム部の何れか一方を切り替えて機能させるモニタ部と、
    を有し、
    前記モニタ部は、前記第2オペレーティングシステム部が前記周辺機器へのアクセス要求を発行した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる切替部を含み、
    前記第1オペレーティングシステム部は、前記第2オペレーティングシステム部により書き込まれた前記周辺機器への前記アクセス要求を前記バッファ部から読み出し、読み出した前記アクセス要求を前記周辺機器により受け付け可能な単位の命令に分割し、分割したそれぞれの命令を発行する要求入出力部と、
    前記要求入出力部により発行された命令に従って前記周辺機器にアクセスするアクセス部と、
    を含む
    情報処理装置。
  2. 前記第2オペレーティングシステム部をさらに備え、
    前記第2オペレーティングシステム部は、前記周辺機器への前記アクセス要求を前記バッファ部に書き込む転送部を含む
    請求項1に記載の情報処理装置。
  3. 前記第1オペレーティングシステム部は、前記プロセッサが第1オペレーティングシステムを実行することにより機能し、
    前記第2オペレーティングシステム部は、前記プロセッサが第2オペレーティングシステムを実行することにより機能し、
    前記第1オペレーティングシステムは、前記第2オペレーティングシステムよりも、コード数が少ない
    請求項2に記載の情報処理装置。
  4. 前記アクセス部は、前記周辺機器からアクセス結果を受け取り、
    前記要求入出力部は、前記アクセス部が受け取った前記アクセス結果を前記バッファ部に書き込み、
    前記切替部は、前記周辺機器へのアクセスが完了した場合、前記第1オペレーティングシステム部の状態を待避させて機能を停止させ、前記第2オペレーティングシステム部の状態を復帰して機能を開始させ、
    前記転送部は、前記周辺機器へのアクセスが完了した場合、前記バッファ部から前記アクセス結果を読み出す
    請求項2または3に記載の情報処理装置。
  5. 前記第1オペレーティングシステム部は、前記周辺機器の処理中に、前記第1オペレーティングシステム部の機能を停止して前記第2オペレーティングシステム部を機能させるか否かを判定する切替判定部をさらに含み、
    前記切替部は、
    前記切替判定部が前記第1オペレーティングシステム部の機能を停止して前記第2オペレーティングシステム部を機能させると判定した場合、前記第1オペレーティングシステム部の状態を待避させて機能を停止させ、前記第2オペレーティングシステム部の状態を復帰して機能を開始させ、
    前記周辺機器が前記第1オペレーティングシステム部からのアクセスに応じて開始した処理を完了した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる
    請求項4に記載の情報処理装置。
  6. 前記切替判定部は、前記周辺機器による推定の処理時間が予め定められた時間以上の場合、前記第1オペレーティングシステム部の機能を停止して前記第2オペレーティングシステム部の機能を開始させると判定する
    請求項5に記載の情報処理装置。
  7. 前記情報処理装置は、二次記憶部と、前記プロセッサを前記第2オペレーティングシステム部として機能させるためのプログラムおよびデータを記憶する揮発性主記憶部とをさらに備え、
    前記モニタ部は、
    前記第2オペレーティングシステム部の機能を停止させる場合、前記揮発性主記憶部に記憶されている前記プログラムおよび前記データのコピーを前記二次記憶部に書き込み、前記揮発性主記憶部の電源を遮断し、
    前記第2オペレーティングシステム部の機能を開始させる場合、前記揮発性主記憶部の電源を投入し、前記二次記憶部から前記プログラムおよび前記データのコピーを読み出して前記揮発性主記憶部に書き込むハイバネーション制御部をさらに含む
    請求項4から6の何れか1項に記載の情報処理装置。
  8. 前記プロセッサを前記第1オペレーティングシステム部として機能させるためのプログラムおよびデータを記憶する不揮発性主記憶部とをさらに備え、
    前記不揮発性主記憶部は、前記バッファ部を含む
    請求項7に記載の情報処理装置。
  9. 前記ハイバネーション制御部は、
    前記第2オペレーティングシステム部の機能を停止させる場合、前記第2オペレーティングシステム部が使用し且つ前記第1オペレーティングシステム部が使用しない前記周辺機器の状態を前記二次記憶部に書き込み、前記周辺機器の電源を遮断し、
    前記第2オペレーティングシステム部の機能を開始させる場合、前記第2オペレーティングシステム部が使用し且つ前記第1オペレーティングシステム部が使用しない前記周辺機器の電源を投入し、前記周辺機器を前記二次記憶部に記憶されている状態に設定する
    請求項7または8に記載の情報処理装置。
  10. 前記第2オペレーティングシステム部は、
    前記周辺機器へのアクセスを前記第1オペレーティングシステム部に実行させるか否かを判定する転送判定部と、
    前記周辺機器へのアクセスを前記第1オペレーティングシステム部で実行させないと判定した場合、前記アクセス要求を前記周辺機器により受け付け可能な単位の命令に分割し、分割したそれぞれの命令に応じて前記周辺機器にアクセスする第2アクセス部と、
    を含み、
    前記転送部は、前記周辺機器へのアクセスを前記第1オペレーティングシステム部で実行させると判定した場合、前記周辺機器への前記アクセス要求を前記バッファ部に書き込み、
    前記切替部は、前記転送判定部が前記周辺機器へのアクセスを前記第1オペレーティングシステム部で実行させると判定した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる
    請求項7から9の何れか1項に記載の情報処理装置。
  11. 前記転送判定部は、前記第2オペレーティングシステム部の停止可能時間が第1の閾値以上であり、且つ、前記周辺機器の処理時間が第2の閾値以上である場合、前記アクセス要求を前記第1オペレーティングシステム部に実行させると判定する
    請求項10に記載の情報処理装置。
  12. 前記転送部は、前記周辺機器へのアクセスを実行させる命令列を含むアクセス要求を前記バッファ部に書き込み、
    前記第1オペレーティングシステム部は、前記命令列を前記バッファ部から読み出して実行するコード実行部を含み、
    前記要求入出力部は、前記コード実行部による前記命令列の実行に従って、前記周辺機器へのアクセス命令を発行する
    請求項2から11の何れか1項に記載の情報処理装置。
  13. 前記第1オペレーティングシステム部は、前記命令列の正当性を検証する検証部をさらに含み、
    前記コード実行部は、前記検証部による前記命令列の正当性の検証が成功した場合に、前記命令列を実行する
    請求項12に記載の情報処理装置。
  14. プロセッサとバッファ部とを備え、周辺機器が接続可能な情報処理装置で実行される方法であって、
    前記情報処理装置は、
    前記情報処理装置を制御する第1オペレーティングシステム部と、
    前記第1オペレーティングシステム部、および、前記情報処理装置を制御する第2オペレーティングシステム部の何れか一方を切り替えて機能させるモニタ部と、
    を有し、
    前記モニタ部が、前記第2オペレーティングシステム部が前記周辺機器へのアクセス要求を発行した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる切替ステップと、
    前記第1オペレーティングシステム部が、前記第2オペレーティングシステム部により書き込まれた前記周辺機器への前記アクセス要求を前記バッファ部から読み出し、読み出した前記アクセス要求を前記周辺機器により受け付け可能な単位の命令に分割し、分割したそれぞれの命令を発行する要求入出力ステップと、
    前記第1オペレーティングシステム部が、前記要求入出力ステップで発行された命令に従って前記周辺機器にアクセスするアクセスステップと、
    を実行する方法。
  15. プロセッサとバッファ部とを備え、周辺機器が接続可能な情報処理装置で実行されるプログラムであって、
    前記情報処理装置を、
    前記情報処理装置を制御する第1オペレーティングシステム部と、
    前記第1オペレーティングシステム部、および、前記情報処理装置を制御する第2オペレーティングシステム部の何れか一方を切り替えて機能させるモニタ部と、
    して機能させ、
    前記情報処理装置に、
    前記モニタ部が、前記第2オペレーティングシステム部が前記周辺機器へのアクセス要求を発行した場合、前記第2オペレーティングシステム部の状態を待避させて機能を停止させ、前記第1オペレーティングシステム部の状態を復帰して機能を開始させる切替ステップと、
    前記第1オペレーティングシステム部が、前記第2オペレーティングシステム部により書き込まれた前記周辺機器への前記アクセス要求を前記バッファ部から読み出し、読み出した前記アクセス要求を前記周辺機器により受け付け可能な単位の命令に分割し、分割したそれぞれの命令を発行する要求入出力ステップと、
    前記第1オペレーティングシステム部が、前記要求入出力ステップで発行された命令に従って前記周辺機器にアクセスするアクセスステップと、
    を実行させるプログラム。
JP2014167885A 2014-08-20 2014-08-20 情報処理装置、方法およびプログラム Active JP6189267B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014167885A JP6189267B2 (ja) 2014-08-20 2014-08-20 情報処理装置、方法およびプログラム
US14/789,289 US9524189B2 (en) 2014-08-20 2015-07-01 Information processing device, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014167885A JP6189267B2 (ja) 2014-08-20 2014-08-20 情報処理装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016045596A JP2016045596A (ja) 2016-04-04
JP6189267B2 true JP6189267B2 (ja) 2017-08-30

Family

ID=55348397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014167885A Active JP6189267B2 (ja) 2014-08-20 2014-08-20 情報処理装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US9524189B2 (ja)
JP (1) JP6189267B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6252799B2 (ja) * 2013-03-25 2017-12-27 日本電気株式会社 演算処理装置およびその制御方法
US9690596B1 (en) * 2014-09-02 2017-06-27 Phoenix Technologies Ltd. Firmware based runtime operating system switch
JP6615726B2 (ja) 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
JP6776292B2 (ja) 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991797A (en) * 1997-12-23 1999-11-23 Intel Corporation Method for directing I/O transactions between an I/O device and a memory
JP2002351854A (ja) * 2001-05-30 2002-12-06 Omron Corp プログラム実行装置および携帯型情報処理装置
JP2003036174A (ja) * 2001-07-25 2003-02-07 Hitachi Ltd 車載端末装置
US8819705B2 (en) * 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
JP2006113767A (ja) * 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
TWI362612B (en) * 2007-09-05 2012-04-21 Htc Corp System and electronic device using multiple operating systems and operating method thereof
JP4888731B2 (ja) * 2008-03-12 2012-02-29 日本電気株式会社 コンピュータシステム、入出力優先度制御方法、及びプログラム
JP2010211644A (ja) 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
US9367331B2 (en) * 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
JP5418097B2 (ja) * 2009-09-14 2014-02-19 株式会社リコー 情報処理装置、画像形成装置、動作モード切替方法
JP2011227598A (ja) * 2010-04-16 2011-11-10 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
JP5633440B2 (ja) 2011-03-17 2014-12-03 富士通株式会社 情報処理装置、電力制御方法及び電力制御プログラム
JP5655663B2 (ja) 2011-03-30 2015-01-21 富士通株式会社 メモリの電源制御を行う情報処理装置およびメモリ電源制御プログラム
US20140115308A1 (en) * 2011-05-30 2014-04-24 Beijing Lenovo Software Ltd. Control method, control device and computer system
US9448810B2 (en) * 2011-10-21 2016-09-20 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
US9251201B2 (en) * 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
JP6067449B2 (ja) 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
JP6081300B2 (ja) 2013-06-18 2017-02-15 株式会社東芝 情報処理装置及びプログラム
JP5911835B2 (ja) 2013-09-17 2016-04-27 株式会社東芝 情報処理装置
JP6117068B2 (ja) 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム
JP6129702B2 (ja) 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
US9645864B2 (en) * 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments
TWI522924B (zh) * 2014-04-30 2016-02-21 宏碁股份有限公司 電子裝置及其切換作業系統的方法
CN104375963B (zh) * 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法

Also Published As

Publication number Publication date
JP2016045596A (ja) 2016-04-04
US9524189B2 (en) 2016-12-20
US20160055030A1 (en) 2016-02-25

Similar Documents

Publication Publication Date Title
US10853519B2 (en) System on chip and method for implementing secure operating system switching
KR102324336B1 (ko) 사용자 장치 및 그것에 대한 무결성 검증 방법
US20140297998A1 (en) Memory virtualization-based snapshot boot apparatus and method
WO2013103023A1 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
JP6189267B2 (ja) 情報処理装置、方法およびプログラム
JP6399916B2 (ja) 情報処理装置およびその制御方法
US9721104B2 (en) CPU-based measured boot
JP5466645B2 (ja) 記憶装置、情報処理装置およびプログラム
US20230067317A1 (en) Code update in system management mode
JP7393226B2 (ja) 情報処理装置とその起動方法
JP6672341B2 (ja) 仮想マシンの状態情報の保護
JP6462540B2 (ja) ドライバ装置、情報処理システム、プログラムおよび方法
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP4597032B2 (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
JP7263101B2 (ja) 情報処理装置、データ検証方法
JP4728343B2 (ja) 情報更新方法、プログラム、情報処理装置
JP6197871B2 (ja) 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
US20180107509A1 (en) Migration of computer systems
JP2012216108A (ja) 情報処理装置およびプログラム転送方法
JP6506976B2 (ja) 情報処理装置及びプログラム
JP5564466B2 (ja) 仮想化装置、仮想化装置制御方法、仮想化装置制御プログラム
TW201804284A (zh) 開機方法
JP2001027948A (ja) 情報処理装置およびその方法
JP2012190120A (ja) メモリダンプ取得装置、メモリダンプ取得方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170802

R151 Written notification of patent or utility model registration

Ref document number: 6189267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151