JP2005011336A - オペレーティングシステム切り替え可能な情報処理装置 - Google Patents

オペレーティングシステム切り替え可能な情報処理装置 Download PDF

Info

Publication number
JP2005011336A
JP2005011336A JP2004159851A JP2004159851A JP2005011336A JP 2005011336 A JP2005011336 A JP 2005011336A JP 2004159851 A JP2004159851 A JP 2004159851A JP 2004159851 A JP2004159851 A JP 2004159851A JP 2005011336 A JP2005011336 A JP 2005011336A
Authority
JP
Japan
Prior art keywords
interrupt
cpu
switching
area
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.)
Pending
Application number
JP2004159851A
Other languages
English (en)
Inventor
Koichi Kanemura
孝一 金村
Teruto Hirota
照人 廣田
Takayuki Ito
孝幸 伊藤
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004159851A priority Critical patent/JP2005011336A/ja
Publication of JP2005011336A publication Critical patent/JP2005011336A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】複数のOSを切り替え可能な情報処理装置において、あるOSが保持する情報を他のOSから保護することができる情報処理装置を提供する。
【解決手段】第1のOS及び第2のOSを切り替え可能な情報処理装置であって、第1のOSから、第2のOSへの切替処理において、CPU内部をクリアし、第1のOSが管理するデータを記憶しているメモリ領域を遮断することにより、第1のOSが管理するデータを第2のOSから保護する。
【選択図】図6

Description

本発明は、情報処理装置に関し、特に、複数のオペレーティングシステムを切り替えて処理を行う技術に関する。
一台の装置が複数のオペレーティングシステムを保持し、オペレーティングシステムを切り替えて処理を行う技術が開示されている。
例えば特許文献1には、複数のオペレーティングシステムを保持した装置において、各オペレーティングシステムのカーネルを主記憶に常駐させておくことにより、オペレーティングシステムの切り替え処理の高速化をはかり、更に、切り替え処理時に、それまで動作していた状態を2次記憶に記憶させることにより、復帰したとき切り替え処理前の状態から継続した処理を行うことを可能にする技術が開示されている。
特開昭64‐4838号公報 特開2001−216172号公報 特開昭60‐97440号公報 特開昭58‐181149号公報 特開昭62‐133533号公報 特開平6‐28497号公報 特許番号第3018336号公報 特許番号第2788590号公報
しかしながら、特許文献1に開示されている技術は、各オペレーティングシステムが所有している情報が他のオペレーティングシステムから保護されているとは言えず、あるオペレーティングシステムの動作が他のオペレーティングシステムの動作を妨害したり、他のオペレーティングシステムが所有している情報を破壊したりする可能性がある。
そこで本発明は、上記の問題点に鑑みなされたものであって、複数のオペレーティングシステムを保持して、各オペレーティングシステムを切り替えて処理を行う情報処理装置であって、あるオペレーティングシステムが所有している情報を他のオペレーティングシステムから保護することができる情報処理装置を提供することを目的とする。
上記の目的を達成するために、本発明は、第1のOS及び第2のOSの管理に従い動作する情報処理装置であって、第1のOSが管理するデータを記憶している第1領域と、第2のOSの復帰命令と第2のOSへの分岐命令とを含むリセットハンドラを記憶している第2領域と、第1領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、前記リセットハンドラの第2領域における位置を示す位置情報を格納している例外テーブル格納手段と、第1のOSの管理下で動作中に、第1のOSから第2のOSへの切替指示を受け付けると、前記アクセス遮断機構に対して第1領域の遮断を指示し、CPUに対してリセットを指示する切替管理手段と、プログラムカウンタを備え、プログラムカウンタにセットされた位置情報が示す位置の命令を実行し、切替管理手段からリセットの指示を受けると、内部を初期化し、プログラムカウンタに前記リセットハンドラの位置を示す位置情報をセットするCPUとを備えることを特徴とする。
また、本発明は、第1のOS及び第2のOSの管理に従い動作する情報処理装置であって第1のOSが管理するデータを記憶している第1領域と、第1のOSから第2のOSへの切替に係る退避命令、及び、第2のOSへの分岐命令に分岐する命令を含む第1割込みハンドラを記憶している第2領域と、第2のOSの退避命令及び第2のOSへの復帰命令を含む第2割込みハンドラを記憶している第3領域と、前記第1領域及び前記第2領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、前記第1割込みハンドラへの分岐を示す分岐命令を保持する分岐命令保持部と、前記分岐命令がフェッチされたことを検知するフェッチ検知部とから構成される切替管理手段とを備え、前記フェッチ検知部が前記分岐命令のフェッチを検知すると、前記アクセス遮断機構に対して、前記第1領域の遮断を指示することを特徴とする。
本発明は、第1のOS及び第2のOSの管理に従い動作する情報処理装置であって、第1のOSが管理するデータを記憶している第1領域と、第2のOSの復帰命令と第2のOSへの分岐命令を含むリセットハンドラを記憶している第2領域と、第1領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、前記リセットハンドラの第2領域における位置を示す位置情報を格納している例外テーブル格納手段と、第1のOSの管理下で動作中に、第1のOSから第2のOSへの切替指示を受け付けると、前記アクセス遮断機構に対して第1領域の遮断を指示し、CPUに対してリセットを指示する切替管理手段と、プログラムカウンタを備え、プログラムカウンタにセットされた位置情報が示す位置の命令を実行し、切替管理手段からリセットの指示を受けると、内部を初期化し、プログラムカウンタに前記リセットハンドラの位置を示す位置情報をセットするCPUとから構成される。
この構成によると、情報処理装置は、当該情報処理装置の動作を管理するオペレーティングシステムを、第1のOSから第2のOSへ切り替えるとき、第1領域に対する外部からのアクセスを遮断するので、第1のOSが管理するデータを保護することができる。また、CPUが内部を初期化することにより、第1のOSの管理により当該情報処理装置が動作していたときのCPU内部のデータを破棄し、CPU内部のデータにおいても、第1のOSが管理するデータを第2のOSから保護することができる。また、切替管理手段が切替指示を受けるとCPUをリセットするので、切替指示を受けた後に確実に第2のOSのリセットハンドラを実行させることができる。
ここで、前記記憶手段のアクセス遮断機構は、更に、前記第2領域に対する外部からのアクセスの遮断及び開放を切り替え、前記切替管理手段は、前記切替指示を受け付けると、前記アクセス遮断機構に対して第1領域の遮断に続き、第2領域の開放を指示する。
この構成によると、第2領域は、第1のOSから第2のOSへ切り替わってから開放することにより、第1のOSから第2領域の内容を保護することができる。
ここで、前記記憶手段は、更に、第2のOSへの切替前の第1のOSのCPU状態を退避させる退避命令を含む第1割込みハンドラを記憶している第3領域を備え、前記アクセス遮断機構は、更に、前記第3領域に対する外部からのアクセスの遮断及び開放を切り替え、前記例外テーブル格納手段は、前記第1割込みハンドラの前記第3領域における位置を示す位置情報を格納しており、前記CPUは、第1のOSの管理下で実行中のプログラムから前記第1割込みハンドラが呼び出されると、プログラムカウンタに、前記第1割込みハンドラの位置を示す位置情報をセットし、前記切替管理手段は、前記第1割込みハンドラから、第1のOSから第2のOSへの前記切替指示を受け付ける。
この構成によると、情報処理装置は、動作するオペレーティングシステムを第1のOSから第2のOSへ切り替えるとき、切替前の第1のOSのCPU状態を退避させるので、再度、当該装置の動作を管理するオペレーティングシステムが、第2のOSから第1のOSへ切り替わるときには、退避させたCPU状態を読み出すことにより、前のCPU状態を復帰させることができる。
ここで、前記切替管理手段は、前記第1割込みハンドラから、第2のOS上で動作するプログラムの種類と前記プログラムに要求する処理内容とを受け取り、前記リセットハンドラへ、前記プログラムの種類と前記処理要求とを通知する。
この構成によると、情報処理装置は、当該装置が第1のOSの管理に従い動作しているとき、第2のOSが管理するプログラムへの処理要求により、第1のOSから第2のOSへ切り替わるとき、前記処理要求を、切替管理手段を介して第2のOSへ通知することができる。
ここで、前記記憶手段の第3領域は、更に、第2割込みハンドラを記憶し、前記第2割込みハンドラは、発生したハードウェア割込みが、第1のOSが管理するハードウェアからの割込み又は第2のOSが管理するハードウェアからの割込みの何れであるか判断する判断命令と、第2のOSが管理するハードウェアからの割込みであると判断する場合に、前記第1割込みハンドラに分岐する命令とを含み、前記例外テーブル格納手段は、前記第2割込みハンドラの前記第3領域における位置を示す位置情報を格納しており、前記CPUは、第1のOSの管理下で動作中に割込みを受け付けると、プログラムカウンタに、前記第2割込みハンドラの位置を示す位置情報をセットする。
この構成によると、情報処理装置は、第1のOSが動作中に第2のOSが管理するハードウェアからの割込みが発生した場合にも、CPUが第2割込みハンドラを実行し、第2のOSへの切替動作を第1割込みハンドラへ依頼することにより、現在実行中でないOSが管理するハードウェアの割込み処理をすることができる。
ここで、前記情報処理装置は、前記第2割込みハンドラの処理、及び、前記第1割込みハンドラの処理を経て、第2のOSの管理下で動作中であって、前記リセットハンドラは、第2のOSから第1のOSへの復帰準備を行う命令を含み、前記CPUは、前記第1のOSへの復帰準備として、内部のリンクレジスタに第1のOSへ戻るプログラムの先頭番地をセットしたのち、第2のOSが管理するハードウェアを操作するデバイスドライバへ分岐し、前記デバイスドライバの処理の終了を検知すると、リンクレジスタにセットした前記先頭番地を、プログラムカウンタをセットする。
この構成によると、情報処理装置は、デバイスドライバによる割込み処理が終了すると、再度第1のOSの処理に戻ることができる。
また、第1のOSに戻る処理は、第1のOSから第2のOSへの切替処理と同様の処理を行うことにより、第2のOSから第1のOSが管理するデータを保護することができる。
ここで、前記第2割込みハンドラは、更に、第1のOSが管理するハードウェアからの割込みであると判断する場合に、第1のOSが管理するハードウェアを操作するデバイスドライバへ分岐する分岐命令を含み、前記CPUは、割込みが発生すると、プログラムカウンタに、前記第2割込みハンドラの位置を示す位置情報をセットし、第1のOSが管理するハードウェアからの割込みであると判断すると、前記第2割込みハンドラから呼び出される前記デバイスドライバの位置を示す位置情報をセットする。
この構成によると、当該情報処理装置が第1のOSの管理に従い動作しているときに、第1のOSが管理するハードウェアからの割込みが発生した場合に、CPUが第2割込みハンドラを実行することにより、ハードウェア割込みを処理することができる。
ここで、前記記憶手段は、更に、第2のOSが管理するデータを記憶している第4領域を備え、前記アクセス遮断機構は、更に、前記第4領域に対する外部からのアクセスの遮断及び開放を切り替え、前記切替管理手段は、前記リセットハンドラから、前記第4領域の開放指示を受け取ると、前記アクセス遮断機構に対して、前記第4領域の開放を指示する。
この構成によると、情報処理装置は、第2のOSが復帰するとき実行されるリセットハンドラ内の処理において、第4領域を開放する。そのため、当該情報処理装置の動作を管理するオペレーティングシステムが、第1のOSから第2のOSへ確実に切り替わった後に、第4領域が開放されるので、第1のOSから第2のOSが管理するデータを保護することができる。また、リセットハンドラで第4領域の開放をするかどうかの判断をした後に第4領域の開放をすることもできる。
ここで、情報処理装置は、更に、前記例外テーブル格納手段と外部との接続を切り替える例外テーブル切替手段を備え、前記例外テーブル格納手段は、前記第1割込みハンドラ及び前記第3割込みハンドラの格納位置を示す位置情報を含む第1例外テーブルと、前記リセットハンドラの格納位置を示す位置情報を含む第2例外テーブルとを格納しており、前記CPUが第1のOSの管理下で動作中の場合、前記切替管理手段は、第1例外テーブルの接続を指示し、第2のOSの管理下で動作中の場合、前記切替管理手段は、第2例外テーブルへの接続を指示し、前記例外テーブル切替手段は、前記切替管理手段からの指示を受けて、前記第1例外テーブル又は前記第2例外テーブルを外部と接続する。
この構成によると、情報処理装置は、当該装置が第1のOSの管理に従い動作しているときは、第1のOS専用の例外テーブルである第1例外テーブルのみ、外部からのアクセスを許可し、第2のOSの管理に従い動作しているときは、第2例外テーブルのみ、外部からのアクセスを許可することができる。
ここで、前記アクセス遮断機構は、前記第3領域に対する外部からのアクセスの遮断及び開放を切り替え、前記切替管理手段は、前記第1割込みハンドラから第1のOSから第2のOSへの切替指示を受け付けると、前記アクセス遮断機構に対して、前記第3領域の遮断を指示する。
この構成によると、第3領域を遮断することにより、第2のOSから前記第1割込みハンドラ及び前記第2割込みハンドラを保護することができる。また、第2のOSは、第3領域が遮断された後でも、前記切替管理手段から受け取る第1のOSからの処理要求に従い、処理を実行することができる。
ここで、前記第1割込みハンドラは、前記退避命令を実行した後、前記CPUに対し、省電力モードへの切り替えを指示し、前記CPUは、省電力モードへの切替処理を行い、前記切替処理が終了すると、前記切替管理手段へ省電力モードに切り替わったことを示す信号を出力し、前記切替管理手段は、前記CPUから省電力モードに切り替わったことを示す信号を受け取った後、前記CPUにリセットを指示する。
この構成によると、CPUは、省電力モードに切り替わった後でリセットの指示を受けるので、第2の割込みを受け付けた場合であっても実行中の処理が終了した後に、内部を初期化することができる。CPUが外部のデバイスとのやりとりとしている時にリセットが掛かると、外部のデバイスとのやりとりが完結せず、外部のデバイスが、ハングアップしてしまう可能性がある、そこで、このように構成することでその問題を解決することができる。
また、上記の目的を達成するために、本発明は、第1のOS及び第2のOSの管理に従い動作する情報処理装置であって、第1のOSが管理するデータを記憶している第1領域と、第1のOSから第2のOSへの切替に係る退避命令、及び、第2のOSへの分岐命令に分岐する命令を含む第1割込みハンドラを記憶している第2領域と、第2のOSの退避命令および第2のOSへの復帰命令を含む第2割込みハンドラを記憶している第3領域と、前記第1領域及び前記第2領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、前記第3領域への分岐を示す分岐命令を保持する分岐命令保持部と、前記分岐命令がフェッチされたことを検知するフェッチ検知部とを備え、前記フェッチ検知部が前記分岐命令のフェッチを検知すると、前記アクセス遮断機構に対して前記第1領域の遮断を指示する切替管理手段とから構成される。
この構成によると、情報処理装置は、切替管理手段が保持する分岐コードがフェッチされたことにより第1領域の遮断を指示する。そのため、第2のOSへの分岐と第1領域の遮断を同時に行うことができ、第2のOSから第1のOSが管理するデータを保護することができる。
ここで、前記情報処理装置は、更に、プログラムカウンタを備え、プログラムカウンタにセットされる位置情報が示す命令を実行するCPUを備え、前記CPUが前記第2割込みハンドラを処理し、第2のOSから第1のOSに切り替える指示をする前に、前記CPUは、前記分岐命令保持部に第1のOSから第2のOSへのリターンアドレスを設定する。
この構成によると、情報処理装置は、第1のOSへ切り替える前に第2のOSのリターンアドレスを分岐命令保持部に設定するので、第2のOSは、第1のOSが第2のOSに切り替えた後にCPUが実行する命令アドレスを設定できる。
ここで、前記第1割込みハンドラは、割込みをマスクし、前記切替管理手段に対して、第2のOS上で動作するプログラムの種類と前記プログラムに要求する処理内容とを通知し、前記CPUは、前記第1割込みハンドラから呼び出される前記第2割込みハンドラの前記復帰命令の位置を示す位置情報を、前記分岐命令保持部から読み出し、プログラムカウンタにセットし、前記切替管理手段は、前記第2割込みハンドラへ、前記プログラムの種類と前記処理内容とを通知する。
また、前記第2割込みハンドラは、第1のOSから第2のOSへの切替要因を確認し、前記切替要因が第2のOSが管理するプログラムへの処理要求である場合に、前記プログラムへ分岐し、前記CPUは、前記割込みハンドラから呼び出される前記プログラムの位置を示す位置情報をプログラムカウンタにセットする。
この構成によると、情報処理装置は、当該装置が第1のOSの管理に従い動作しているとき、第2のOSが管理するプログラムへの処理要求により、第1のOSから第2のOSへ切り替わるとき、前記処理要求を、切替管理手段を介して第2のOSに通知し、第2のOSは要求された処理を実行することができる。
ここで、前記第2割込みハンドラは、第1のOSから第2のOSへの切替要因を確認し、前記切替要因が第2のOSが管理するハードウェアからの割込みである場合に、割込みマスクを解除し、第2のOSが管理するハードウェアを操作するデバイスドライバの位置を示す位置情報を、前記CPUのプログラムカウンタにセットし、前記CPUは、前記デバイスドライバの処理の終了を検知すると、プログラムカウンタに、前記第2割込みハンドラの前記復帰命令の位置を示す位置情報をプログラムカウンタにセットする。
この構成によると、情報処理装置は、第2のOSに係る割込みが第2のOSが管理するハードウェアからの割込みである場合にも、CPUが第2割込みハンドラを実行することにより、ハードウェア割込みを処理することができる。また、デバイスドライバによる割込み処理が終了すると、第2のOSの退避命令へ移行するので、再度第1のOSの処理に戻ることができる。
ここで、前記情報処理装置は、更に、前記切替管理手段からの指示を受け、外部のデバッガと前記CPUとを接続又は遮断するデバッガ無効化回路を備え、前記切替管理手段は、前記CPUが第1のOSの管理に従い動作しているときは、前記デバッガ無効化回路に対して遮断を指示し、前記CPUが第2のOSの管理に従い動作しているときは、デバッガ無効化回路に対して接続を指示する。
この構成によると、情報処理装置は、CPUが第1のOSに従い動作しているときは、デバッガを無効にすることにより、デバッガから第1のOSが管理するデータを保護することができる。
ここで、前記情報処理装置は、更に、第1のOSが管理するハードウェアからの割込みを受け付ける第1信号線と、第2のOSが管理するハードウェアからの割込みを受け付ける第2信号線と、第1及び第2のOSが管理するハードウェアを操作するそれぞれのデバイスドライバの位置情報を記述したテーブルとを備えるベクタ割込みコントローラと、前記第2領域は、更に、前記第1のOSのブートコードを備え、前記CPUは、前記ブートコードの実行中に前記ベクタ割込みコントローラからのデバイスドライバの位置情報の取得を無効化し、第3領域に格納されている第2割込みハンドラの実行中に前記ベクタ割込みコントローラからのデバイスドライバの位置情報の取得を有効にする。
この構成によると、情報処理装置がベクタ割込みコントローラを備える場合、ベクタ割込みコントローラがハードウェア割込みを受け付けると、割込みハンドラの処理を経ずに、前記テーブルに従い直接デバイスドライバの処理へ分岐する。この場合、切替管理手段が、第1領域、および第2領域の遮断をアクセス遮断機構に指示できないので、第1のOSに従い動作しているときは、ベクタ割込みコントローラからのデバイスドライバの位置情報の取得を無効化して、第1領域、および第2領域が開放された状態で第2のOSの処理へ切り替わることを抑制し、第1のOSが管理する情報を第2のOSから保護する。
ここで、前記情報処理装置は、更に、パワーオンリセット回路を備え、前記記憶手段は、更に、記憶内容消去手段を備え、前記パワーオンリセット回路は、前記CPU及び前記記憶手段を初期化するリセット信号を、前記CPU及び前記記憶内容消去手段に出力し、前記CPUは、前記パワーオンリセット回路からリセット信号を受けると、内部を初期化し、前記記憶内容消去手段は、前記パワーオンリセット回路から、リセット信号を受けると、前記記憶手段が記憶している記憶内容を破棄し、前記リセット信号を受けてから、前記記憶内容の破棄を終了するまでの間、外部から前記記憶手段へのアクセスを遮断する。
この構成によると、情報処理装置がパワーオンリセットにより初期化されると、CPU及び記憶領域はそれぞれ、内部がクリアされるが、CPUの内部がクリアされるまでの時間と、記憶手段の内部がクリアされるまでの時間には差がある。CPUの内部がクリアされ、第2のOSがブートしても、記憶手段の内部が全てクリアされておらず第1のOSが管理するデータが残っている場合には、第2のOSから第1のOSが管理するデータを保護できない。そのため、パワーオンリセットが掛かると、記憶手段の内部がクリアされるまで、CPUからの読み出しを遮断することで、第2のOSから第1のOSが管理するデータを保護することができる。
≪第1の実施形態≫
本発明に係る第1の実施形態として、情報処理装置100について図面を参照して説明する。なお、本明細書及び図面において、「オペレーティングシステム」を単に「OS」と記載することがある。
<構成>
図1は、情報処理装置100の構成を機能的に示す機能ブロック図である。
同図に示す様に、情報処理装置100は、CPU(Central Processing Unit)101、メモリ102、例外テーブル切替部103、OS1用例外テーブル格納部104、OS2用例外テーブル格納部105、切替管理部106、割込みコントローラ107、OS1管理のハードウェア108、OS2管理のハードウェア109及びバス110から構成される。
また、図2は、情報処理装置100のソフトウェア構成を示す図である。
同図に示す様に、情報処理装置100のソフトウェアは、OS1(201)、OS1上で動作するプログラム1(202a)、プログラム2(202b)、・・・、プログラムN(202n)、及び、OS2(203)、OS2上で動作するプログラム1(204a)、プログラム2(204b)、・・・、プログラムN(204n)から構成される。さらに、OS1は、OS1管理のハードウェア108を操作するためのデバイスドライバ201aと、切替管理部106を操作するためのデバイスドライバ201bとを含み、OS2は、OS2管理のハードウェア109を操作するためのデバイスドライバ202aと、切替管理部106を操作するためのデバイスドライバ202bとを含む。
情報処理装置100は、OS1が管理する処理、及び、OS2が管理する処理に応じて、動作するオペレーティングシステムを、OS1からOS2へ、又は、OS2からOS1へ切り替えて連続して処理を行う。以下では、情報処理装置100の各構成要素について説明する。
(1)CPU101
図3は、CPU101の構成を示す図である。同図に示す様に、CPU101は、CPUコア301、MMU(Memory Management Unit)302及びキャッシュ303から構成される。
CPUコア301は、命令フェッチ部、命令デコーダ、演算器、レジスタファイルなどを備える。命令フェッチ部は、キャッシュ303から命令を読み出す。命令デコーダは、読み出した命令を解釈し、その情報を演算器に通知する。更に命令デコーダは、データをレジスタから演算器に転送する。演算器は、データに演算を施して、レジスタに書き戻す。
また、CPUコア301は、切替管理部106から割り込み信号とリセット信号を含む例外信号を受け付ける。リセット信号は、CPU101に、内部のクリアとリセットハンドラへの分岐とを通知する信号である。
MMU302は、論理アドレスを物理アドレスに変換することにより仮想記憶機能を実現する。論理アドレスと物理アドレスとは、メモリ102上に置かれたページテーブルにより対応付けられており、MMU302は、ページテーブルを参照してアドレス変換を行う。
キャッシュ303は、メモリ102に対して高速小容量のメモリであって、CPUコア301がメモリ102から読み出した命令を保持する。
なお、本実施例ではキャッシュ303として、物理アドレスキャッシュを想定しているが、本発明において、キャッシュは物理アドレスキャッシュに限定されず、仮想アドレスキャッシュであってもよい。
ここで、CPU101は、Userモード又は例外モードの何れかのモードをもつ。Userモードは、CPU101が通常処理を行っている状態を示し、例外モードは、CPU101が例外処理を行っている状態を示す。例外モードは、例外の発生要因によって更に複数のモードが存在する。
図4は、CPUコア301に含まれるレジスタファイル400を示す図である。レジスタファイル400は、複数のレジスタセットを備える。各レジスタセットは、CPU101の各モードに対応している。
レジスタセット401は、Userモードに対応したレジスタセットであり、カレントステータスレジスタ(csr)411、プログラムカウンタ(pc)412、リンクレジスタ(lr)413、スタックポインタ(sp)414、及び、汎用レジスタ(r_0〜r_n)415から構成される。
レジスタセット402、レジスタセット403、・・・、レジスタセット404は、それぞれ、例外モードの内の一つのモードに対応したレジスタセットである。レジスタセット402は、ステータスレジスタ(sr_B)421、リンクレジスタ(lr_B)422、及び、スタックポインタ(sp_B)423から構成される。レジスタセット403から、レジスタセット404までのレジスタセットも同様に、ステータスレジスタ、リンクレジスタ及びスタックポインタから構成されるが、例えばレジスタセット403のように、汎用レジスタ(r_0_C〜r_n_C)を持つ場合もある。
レジスタセット401のカレントステータスレジスタ(csr)411は、CPU101のモードを示すモードビットを含む。当該モードビットは、CPU101が例外モードのときのみアクセス可能である。
CPU101は、Userモードのとき、レジスタセット401の内のカレントステータスレジスタ411のモードビット以外のレジスタにアクセス可能であり、例外モードのとき、全てのレジスタセットにアクセス可能である。
次に、図5を用いてCPU101の動作について説明する。
CPU101がUserモードのとき、割込み又は例外が発生しなければ(ステップS101でNO)、CPU101は、命令をフェッチし(ステップS102)、解読し(ステップS103)、実行し(ステップS104)、プログラムカウンタ(pc)412のアドレスを進める(ステップS105)。その後、ステップS101に戻り、処理を続ける。
CPU101がUserモードのとき、割込み又は例外が発生した場合(ステップS101でYES、なお、ここでは一例としてレジスタセット402に対応する例外が発生したと仮定する)、CPU101は、例外が発生した時点において実行していた命令の次の命令の番地、即ち、戻りアドレスをレジスタセット402のリンクレジスタ(lr_B)422にコピーする(ステップS106)。
次に、CPU101は、カレントステータスレジスタ(csr)411の値を、ステータスレジスタ(sr_B)421にコピーする(ステップS107)。CPU101は、カレントステータスレジスタ(csr)411のモードビットを例外の種類を示すビットに書き換える(ステップS108)。次に、CPU101は、例外の種類に応じたベクタアドレスへ分岐し(ステップS109)、プログラムカウンタ(pc)412を、例外ハンドラを示す番地にセットする(ステップS110)。
その後、CPU101は、汎用レジスタ415、スタックポインタ(sp_B)423、リンクレジスタ(lr)422、プログラムカウンタ(pc)412、及び、カレントステータスレジスタ(csr)411を使用して例外処理を行う。具体的には、命令をフェッチし(ステップS111)、解読し(ステップS112)、実行する(ステップS113)。CPU101は、例外モードからUserモードに復帰する命令が発行されるまで、ステップS110からステップS114を繰り返す(ステップS114でNO)。
例外モードからUserモードに復帰する命令が発行されると(ステップS114でYES)、CPU101は、レジスタセット402のリンクレジスタ(lr_B)422を、レジスタセット401のプログラムカウンタ(pc)412へコピーする(ステップS115)。また、CPU101は、ステータスレジスタ(sr_B)421の値を、カレントステータスレジスタ(csr)411へコピーする(ステップS116)。
カレントステータスレジスタ(csr)411のモードビットが、例外を示すモードから、Userモードに切り替わり、CPU101は、ステップS101に戻りUserモードの処理を行う。
なお、レジスタセット403やレジスタセット404など、他のレジスタセットを用いる例外が発生した場合も、CPU101は同様に動作する。
(2)メモリ102
図6は、主記憶であるメモリ102の構成を示す図である。メモリ102は、バスインターフェース501、メモリ保護機構502及びメモリ領域から成り、同図に示す様に、メモリ領域は、OS1用例外ハンドラ領域503、OS1用メモリ領域504、OS2用例外ハンドラ領域505及びOS2用メモリ領域506に分割されている。
メモリ保護機構502は、バスインターフェース501とOS1用例外ハンドラ領域503との間に設けられたスイッチ507、バスインターフェース501とOS1用メモリ領域504との間に設けられたスイッチ508、バスインターフェース501とOS2用例外ハンドラ領域505との間に設けられたスイッチ509、及び、バスインターフェース501とOS2用メモリ領域506との間に設けられたスイッチ510を備える。
メモリ保護機構502は、切替管理部106から発行されるメモリ保護制御信号を受け取り、受け取ったメモリ保護制御信号に応じて、各スイッチを開閉することにより、各スイッチと接続している各メモリ領域を遮断、又は、開放する。いま、図6は、スイッチ507及びスイッチ508が閉じられ、スイッチ509とスイッチ510とが開いているので、OS1用例外ハンドラ領域503とOS1用メモリ領域504とが開放されており、OS2用例外ハンドラ領域505とOS2用メモリ領域506とが遮断されている状態を示している。開放されたメモリ領域は、バス110からアクセス可能であり、遮断されたメモリ領域は、バス110からアクセス不可能であり、内部のデータが保護される。
(a)OS1用例外ハンドラ領域503
図7は、OS1用例外ハンドラ領域503を示す図である。
OS1用例外ハンドラ領域503は、リセットハンドラ511、デバイスドライバ201a、デバイスドライバ201b、割込みハンドラ512、ソフトウェア割込みハンドラ513、前のCPU状態514などを保持する。左側の(0000AAAA)、(0000AABB)などは、各プログラムが配置されているアドレスを示している。
(リセットハンドラ511)
OS1用例外ハンドラ領域503が保持するリセットハンドラ511は、実際にはコンピュータプログラムであるが、ここでは、説明の便宜のため、図8に示すフローチャートを用いて、リセットハンドラ511が実行されたときのCPU101の動作について説明する。
CPU101は、ブートチェックを行い、OS1がブートしているか否か判断する(ステップS201)。OS1がブートしていない場合(ステップS201でNO)、OS1をブートし(ステップS202)、ステップS208へ進む。
OS1がブートしている場合(ステップS201でYES)、CPU101は、メモリ102のOS1用例外ハンドラ領域503から前のCPU状態514を読み出し、CPU状態を復帰する(ステップS203)。なお、CPU状態には、MMU302の設定も含まれる。CPU101は、MMU302を有効化し(ステップS204)、キャッシュ303を有効化する(ステップS205)。その後、CPU101は、切替管理部106に対して、OS1用メモリ領域504の開放を指示し(ステップS206)、更に、切替管理部106に対して、遷移要因を問い合わせる。
遷移要因がOS1上で動作するプログラム(図2の202aから202nのいずれか)への処理要求である場合(ステップS207でプログラム)、CPU101は、要求されたプログラムへ分岐する(ステップS208)。
遷移要因がOS1管理のハードウェア108からの割込みである場合(ステップS207でハードウェア)、CPU101は、OS2への復帰準備として、レジスタファイル400の割込みに対応するレジスタセットのリンクレジスタに、OS1からOS2への遷移プログラムの先頭アドレスをセットする(ステップS209)。その後、割込みハンドラ512へ分岐する。
(割込みハンドラ512)
割込みハンドラ512についてもリセットハンドラ511と同様、図9に示すフローチャートを用いて、割込みハンドラ512が実行されたときのCPU101の動作について説明する。
CPU101は、割込みコントローラ107に割込み要因を問い合わせる(ステップS501)。割込み要因が、OS1管理のハードウェア108によるものである場合(ステップS502でOS1管理のハードウェア)、CPU101は、デバイスドライバ201aに分岐し、デバイスドライバ201aによる処理を行う(ステップS504)。
割込み要因が、OS2管理のハードウェア109によるものである場合(ステップS502でOS2管理のハードウェア)、ソフトウェア割り込みハンドラ513に分岐する(ステップS503)。
(ソフトウェア割込みハンドラ513)
ソフトウェア割込みハンドラ513についても同様に、図10に示すフローチャートを用いて、ソフトウェア割込みハンドラが実行されたときのCPU101の動作について説明する。
CPU101は、MMU302を無効化し(ステップS301)、キャッシュ303を無効化する(ステップS302)。更に、CPU101は、カレントステータスレジスタ(csr)411の所定ビットをセットして割込みをマスクする(ステップS303)。
その後、CPU101は、CPU状態をOS1用例外ハンドラ領域503に退避させ(ステップS304)、OS2上で動作するプログラムを指定する情報(図2の204aから204nのいずれか)と、そのプログラムに要求する処理内容を切替管理部106に出力する(ステップS305)。
次に、CPU101は、切替管理部106に対して、OS1用メモリ領域504の保護を指示し(ステップS306)、更に、切替管理部106に対して、OS2への切替を指示する(ステップS307)。次に、CPU101は、省電力モードへの切替処理へ移行する(ステップS308)。
(CPU省電力モード切替処理)
ここでは、図11に示すフローチャートを用いて、CPU101と切替管理部106との動作に基づき、CPU101の省電力モードへの切替処理について説明する。
CPU101が切替管理部106に対してOS切替要求を実行する(ステップS401)と、切替管理部106はOS切替要求を受け付け、(ステップS402)、後述する割込み制御部705により、割込み線をマスクする(ステップS403)。
CPU101はOS切替要求を実行した後、省電力モードへの切替処理(ステップS404)を実行する。その後、CPU101は省電力モードに切り替わると、省電力モードに切り替わったことを示す信号を切替管理部106に出力する(ステップS405)。
切替管理部106は、省電力モードに切り替わったことを示す信号を受け取ると、CPU101に対してリセットを掛ける(ステップS406)。
CPU101は切替管理部106から例外信号を受け取ると、CPU101内部の状態をクリアして、リセットハンドラの処理へ移行する(ステップS407)。
なお、ステップS404で省電力モードへの切替処理を行う前に、CPU101が外部のデバイスとやりとりをしているときは、その処理を終了してから、省電力モードへの切替処理を行う。
(b)OS1用メモリ領域504
OS1用メモリ領域504には、OS1を構成するプログラム及びデータとOS1上で動作するプログラム(202aから202n)及びデータとがロードされる。
(c)OS2用例外ハンドラ領域505
OS2用例外ハンドラ領域505は、リセットハンドラ、割込みハンドラ、ソフトウェア割込みハンドラ、デバイスドライバ203a、デバイスドライバ203b、前のCPU状態などを保持する。
OS2用例外ハンドラ領域505が保持するリセットハンドラによる動作については図示していないが、図8に示したフローチャートのステップS202、ステップS206及びステップS209の各ステップについて、「OS1」を「OS2」に変更し、「OS2」を「OS1」に変更すればよい。
OS2用例外ハンドラ領域505が保持する割込みハンドラによる動作についても図示していないが、図9に示したフローチャートのステップS502、ステップS505、ステップS506、ステップS507及びステップS508の各ステップについて、「OS1」を「OS2」に変更し、「OS2」を「OS1」に変更し、更に、ステップS509について、「デバイスドライバ201a」を「デバイスドライバ203a」に変更すればよい。
OS2用例外ハンドラ領域505が保持するソフトウェア割込みハンドラによる動作についても図示していないが、図10に示したフローチャートのステップS304、ステップS305、ステップS306及びステップS307の各ステップについて、「OS1」を「OS2」に変更し、「OS2」を「OS1」に変更すればよい。
(d)OS2用メモリ領域506
OS2用メモリ領域506には、OS2を構成するプログラム及びデータとOS2上で動作するプログラム(204aから204n)及びデータとがロードされる。
なお、本実施形態では、OS1及びOS2が共通にアクセスできるメモリ領域を設けていないが、設けても良い。
(3)例外テーブル切替部103
例外テーブル切替部103は、バス110とOS1用例外テーブル格納部104、及び、バス110とOS2用例外テーブル格納部105を接続するスイッチを備える。
例外テーブル切替部103は、切替管理部106から供給される例外テーブル制御信号を受け付け、例外テーブル制御信号が「OS1」を示す場合に、バス110とOS1用例外テーブル格納部104とが接続するようスイッチを制御し、例外テーブル制御信号が「OS2」を示す場合に、バス110とOS2用例外テーブル格納部105とが接続するようスイッチを制御する。
(4)OS1用例外テーブル格納部104
図12(a)は、OS1用例外テーブル格納部104に格納されているOS1用例外テーブル601を示す図である。
同図に示すように、OS1用例外テーブル601のエントリには、それぞれ例外要因に対応付けられた分岐命令が記述されている。例えば、「リセット」に対応付けられた分岐命令は、「0000AAAA」のアドレスへの分岐を示す「BL0x0000AAAA」である。図7に示したように、「0000AAAA」のアドレスは、OS1用例外ハンドラ領域503内であって、リセットハンドラ511が配置されている。
CPU101は、OS1が動作している状態において例外が発生すると、OS1用例外テーブル601を参照し、発生した例外の種類に応じたエントリにアクセスし、分岐命令を実行する。
(5)OS2用例外テーブル格納部105
図12(b)は、OS2用例外テーブル格納部105に格納されているOS2用例外テーブル602を示す図である。
OS1用例外テーブル601と同様に、OS2用例外テーブル602のエントリには、それぞれ例外要因に対応つけられた分岐命令が記述されている。例えば、「割込み」に対応付けられた分岐命令は、「0000FFFF」のアドレスへの分岐を示す「BL0x0000FFFF」である。なお、各分岐命令により示されるアドレスは、OS2用例外ハンドラ領域505内を示している。
CPU101は、OS2が動作している状態において例外が発生すると、OS2用例外テーブル602を参照し、発生した例外の種類に応じたエントリにアクセスし、分岐命令を実行する。
(6)切替管理部106
図13は、切替管理部106の構成を示す図である。
同図に示す様に、切替管理部106は、システム状態管理部701、メモリ保護制御部702、例外テーブル制御部703、例外制御部704、割込み制御部705及びゲート706から構成される。
システム状態管理部701は、バス110から受け取る情報、CPU101から受け取る省電力モードに切り替わったことを示す情報に応じて、メモリ保護制御部702、例外テーブル制御部703、例外制御部704及び割込み制御部705へ指示を出力する。
メモリ保護制御部702は、システム状態管理部701の指示に応じて、スイッチ507、508、509及び510を制御するための信号をメモリ102に出力する。
例外テーブル制御部703は、システム状態管理部701の指示に応じて、例外テーブル制御信号を例外テーブル切替部103に出力する。
例外制御部704は、システム状態管理部701の指示に応じて、CPU101にリセット信号を出力する。
割り込み制御部705は、システム状態管理部701の指示に応じて、ゲート706を制御し、割込みコントローラ107から受け取る割り込み信号111のCPU101への出力を制御する。
図14は、OS1からOS2に遷移する場合のシステム状態管理部701の動作を示すシーケンスチャートである。図14では、紙面の左から右へ(t1からt5へ)向かって時間が経過するものとする。以下では、時間の流れに沿ってシステム状態管理部701の動作を説明する。
t1以前:システム状態管理部701は、メモリ保護制御部702に対して、OS1用例外ハンドラ領域503とOS1用メモリ領域504との開放、及び、OS2用例外ハンドラ領域505とOS2用メモリ領域506との遮断を指示する。また、システム状態管理部701は、例外テーブル制御部703に対して、OS1用例外テーブル601への接続を指示する。また、例外制御部704に対して、リセット信号を出力しないよう指示する。また、割り込み制御部705に対して割り込みをマスクしないよう指示する。
t1:システム状態管理部701は、バス110からOS1用メモリ領域保護要求(S306)を受け取ると、メモリ保護制御部702に対して、OS1用メモリ領域の遮断を指示する。
t2:バス110からOS2への切替を指示されると、システム状態管理部701は、割込み制御部705へ割込みをマスクする指示を出力する。
t3:システム状態管理部701は、CPU101から、省電力モードに切り替わったことを示す信号を受け取ると、例外制御部704へ、CPU101へリセットを掛ける指示を出力する。また、メモリ保護制御部702に対して、OS1用例外ハンドラ領域の遮断及びOS2用例外ハンドラ領域の開放を指示する。さらに、例外テーブル制御部703にOS2用例外テーブル格納部105に切り替えるよう指示する。
t4:システム状態管理部701は、CPU101の内部状態がクリアされるのに十分な時間が経過した後、例外制御部704に対して、リセットを解除する指示を出力する。また、割り込み制御部705へ割り込みマスクを解除する指示を出力する。
t5:システム状態管理部701はバス110からOS2用メモリ開放要求(S206)を受け取ると、メモリ保護制御部702に対して、OS2用メモリ領域の開放を指示する。
OS2からOS1に遷移する場合のシステム状態管理部701の動作については図示していないが、図14に示したシーケンスチャートの「OS1」を「OS2」に変更し、「OS2」を「OS1」に変更すればよい。
(7)割込みコントローラ107
割込みコントローラ107は、OS1管理のハードウェア108及びOS2管理のハードウェア109からの割込みを受け付けると、割込み線111により切替管理部106へ割込みの発生を伝える。また、割込みコントローラ107は、割込みハンドラ512(OS1用)及び割込みハンドラ(OS2用)からの割込み要因の問い合わせに対して、割込み要因を各ハンドラに伝える。
<動作>
図15は、情報処理装置100全体の動作を示すフローチャートである。ここでは、図15に基づき、情報処理装置100の動作について説明する。なお、ここでは、説明の便宜上、ステップS702の処理から開始することとする。
情報処理装置100は、OS1のブートチェックを行う(ステップS702)。OS1がブートしていない場合(ステップS702でN)、OS1のブート処理を行い(ステップS703)、ステップS707へ進む。OS1がブートしている場合(ステップS702でY)、前のCPU状態をOS1用例外ハンドラ領域503から読み出して、OS1のCPU状態を復帰する(ステップS704)。
情報処理装置100は、OS2からOS1への遷移要因を確認する。遷移要因が、OS1管理のハードウェア108からの割込みである場合(ステップS705でH)、情報処理装置100は、OS2への復帰準備を行い(ステップS706)、その後、ステップS710へ進む。遷移要因が、OS1上で動作するプログラムへの処理要求である場合(ステップS705でP)、情報処理装置100は、要求されたプログラムの処理を行う(ステップS707)。その後、OS2への切替が必要となった場合、情報処理装置100は、OS1退避処理行う(ステップS708)。
一方、情報処理装置100がOS1に従い動作している状態において、ハードウェアに係る割込みが発生すると(ステップS709)、情報処理装置100は、割込み要因を確認し(ステップS710)、割込み要因がOS2管理のハードウェアである場合(ステップS710で2)、ステップS708へ進む。割込み要因がOS1管理のハードウェアである場合(ステップS710で1)、情報処理装置100は、デバイスドライバ201aによる割込みに対応する処理を行い(ステップS711)、ステップS706でOS2への復帰準備をしている場合、ステップS708へ進む。
ステップS708のOS1退避処理の後、情報処理装置100は、CPU101内部の状態をクリアし(ステップS801)、OS2のブートチェックを行う(ステップS802)。OS2がブートしていない場合(ステップS802でN)、OS2のブート処理を行い(ステップS803)、ステップS807へ進む。OS2がブートしている場合(ステップS802でY)、前のCPU状態をOS2用例外ハンドラ領域505から読み出して、OS2のCPU状態を復帰する(ステップS604)。
情報処理装置100は、OS1からOS2への遷移要因を確認する。遷移要因が、OS2管理のハードウェア109からの割込みである場合(ステップS805でH)、情報処理装置100は、OS1への復帰準備を行い(ステップS806)、その後、ステップS810へ進む。遷移要因が、OS2上で動作するプログラムへの処理要求である場合(ステップS805でP)、情報処理装置100は、要求されたプログラムの処理を行う(ステップS807)。その後、OS1への切替が必要となった場合、情報処理装置100は、OS2退避処理を行う(ステップS808)。
一方、情報処理装置100がOS2に従い動作している状態において、ハードウェアに係る割込みが発生すると(ステップS809)、情報処理装置100は、割込み要因を確認し(ステップS810)、割込み要因がOS1管理のハードウェアである場合(ステップS810で1)、ステップS808へ進む。割込み要因がOS2管理のハードウェアである場合(ステップS810で1)、情報処理装置100は、デバイスドライバ203aによる割込みに対応する処理を行い(ステップS811)、ステップS806でOS2への復帰準備をしている場合、ステップS808へ進む。
ステップS808のOS2退避処理の後、情報処理装置100は、CPU101内部の状態をクリアし(ステップS701)、ステップS702に戻り処理を続ける。
ここで、ステップS702からステップS706まで破線で囲まれた処理は、OS1のリセットハンドラ511を実行することによる処理であり、ステップS708のOS1退避処理は、OS1のソフトウェア割込みハンドラ513を実行することによる処理であり、ステップS710の割込み要因の確認処理は、OS1の割込みハンドラ512を実行することによる処理である。
同様に、ステップS802からステップS806まで破線で囲まれた処理は、OS2のリセットハンドラを実行することによる処理であり、ステップS808のOS2退避処理は、OS2のソフトウェア割込みハンドラを実行することによる処理であり、ステップS810の割込み要因の確認処理は、OS2の割込みハンドラを実行することによる処理である。
≪第2の実施形態≫
本発明に係る、第2の実施形態として、情報処理装置100aについて、図面を参照して説明する。
<構成>
図16は、情報処理装置100aの構成を機能的に示す機能ブロック図である。
同図に示す様に、情報処理装置100aは、CPU101a、メモリ102a、例外テーブル切替部103a、OS1用例外テーブル格納部104a、OS2用例外テーブル格納部105a、切替管理部106a、割込みコントローラ107a、OS1管理のハードウェア108a、OS2管理のハードウェア109a、バス110a、デバッガ無効化回路112a及びデバッガインターフェース113aから構成される。
情報処理装置100との構成上の違いは、デバッガ無効化回路112a及びデバッガインターフェース113aを備える点である。
CPU101a、例外テーブル切替部103a、OS1用例外テーブル格納部104a、OS2用例外テーブル格納部105a、OS1管理のハードウェア108a、OS2管理のハードウェア109a及びバス110aは、それぞれ、第1の実施形態である情報処理装置100の、CPU101、例外テーブル切替部103、OS1用例外テーブル格納部104、OS2用例外テーブル格納部105、割込みコントローラ107、OS1管理のハードウェア108及びOS2管理のハードウェア109と同様の構成及び機能を有するため、ここでは説明を省略する。
(1)メモリ102a
図17は、メモリ102aの構成を示す図である。
メモリ102aは、メモリ102と同様に、バスインターフェース501a、メモリ保護機構502a、OS1用例外ハンドラ領域503a、OS1用メモリ領域504a、OS2用例外ハンドラ領域505a及びOS2用メモリ領域506aから構成される。
メモリ保護機構502aは、バスインターフェース501aとOS2用例外ハンドラ領域505aとの間に設けられたスイッチ509a、及び、バスインターフェース501aとOS2用メモリ領域506aとの間に設けられたスイッチ510aを備える。
メモリ保護機構502aは、切替管理部106aから発行されるメモリ保護制御信号を受け取り、受け取ったメモリ保護制御信号に応じて、スイッチ509a及びスイッチ510aを開閉することにより、各スイッチと接続しているOS2用例外ハンドラ領域505a及びOS2用メモリ領域506aを遮断、又は、開放する。いま、図17では、スイッチ509aとスイッチ510aとが開いているので、OS2用例外ハンドラ領域505aとOS2用メモリ領域506aとが遮断されている状態を示している。保護されたこれらのメモリ領域は、バス110aからアクセス不可能であり、内部の情報が保護される。
第1の実施形態との違いは、バスインターフェース501aとOS1用例外ハンドラ領域503aとの間にスイッチが存在せず、同様に、バスインターフェース501aとOS1用メモリ領域504aとの間にスイッチが存在しない点である。即ち、第2の実施形態では、OS1用例外ハンドラ領域503aとOS1用メモリ領域504aとは、常に開放された状態であり、バス110aからアクセスが可能である。
(a)OS1用例外ハンドラ領域503a
OS1用例外ハンドラ領域503aは、リセットハンドラ、OS1管理のハードウェア108aを操作するためのデバイスドライバ、割込みハンドラ、OS1用ソフトウェア割込みハンドラ801及び802、前のCPU状態などを保持する。
OS1用例外ハンドラ領域503aが保持するリセットハンドラは、図8に示したリセットハンドラ511と異なるが、公知技術である通常のオペレーティングシステムのブート処理で実現可能であるため、説明を省略する。また、OS1用例外ハンドラ領域503aが保持する割込みハンドラは、図9に示した割込みハンドラ512のステップS509の「デバイスドライバ201a」を「OS1管理のハードウェア108aを操作するデバイスドライバ」に変更すればよい。
ここでは、図18に示すフローチャートを用いて、OS1用ソフトウェア割込みハンドラ801及び802が実行されたときのCPU101aの動作について説明する。
(OS1用ソフトウェア割込みハンドラ801)
CPU101aは、キャッシュを無効化し(ステップS901)、MMUを無効化する(ステップS902)。更に、CPUは、カレントステータスレジスタ(csr)の所定ビットをセットして割込みをマスクする(ステップS903)。
その後、CPU101aは、CPU状態をOS1用例外ハンドラ領域503aに退避させ(ステップS904)、OS2上で動作するプログラムを指定する情報と、そのプログラムに要求する処理内容を切替管理部106aに出力する(ステップS905)。
次に、CPU101aは、切替管理部106aに対して、戻り先番地を指示した後(S906)、OS2への切替を指示し(ステップS907)、続いて、省電力モードへの切替処理へ移行する(ステップS908)。
(OS1用ソフトウェア割込みハンドラ802)
CPU101aは、OS1用例外ハンドラ領域503aから前のCPU状態を読み出し、OS1のCPU状態を復帰させる(ステップS911)。CPU101aは、切替管理部106aにデバッガの有効化を指示した後(ステップS912)、MMUを有効化し(ステップS913)、キャッシュを有効化する(ステップS914)。その後、CPU101aは、切替管理部106aに対して、遷移要因を問い合わせる。
遷移要因がOS1上で動作するプログラムへの処理要求である場合(ステップS915でプログラム)、CPU101aは、要求されたプログラムへ分岐する(ステップS916)。
遷移要因がOS1管理のハードウェア108aからの割込みである場合(ステップS915でハードウェア)、CPU101aは、割込みマスクを解除する(ステップS917)。
その後、割込み処理から復帰すると(ステップS918)、CPU101aは、OS1用ソフトウェア割込みハンドラ801のステップS901へとび、処理を続ける。
(b)OS2用例外ハンドラ領域505a
OS2用例外ハンドラ領域505aは、OS2用リセットハンドラ803、OS2管理のハードウェア109aを操作するためのデバイスドライバ、割込みハンドラ、OS2用ソフトウェア割込みハンドラ804、前のCPU状態などを保持する。
OS2用例外ハンドラ領域505aが保持する割込みハンドラの処理は、図9に示したフローチャートのステップS504について、「デバイスドライバ201a」を「OS2管理のハードウェア109aを操作するデバイスドライバ」に変更すればよい。
(OS2用リセットハンドラ803)
ここでは、図19に示すフローチャートを用いて、OS2用リセットハンドラ803が実行されたときのCPU101aの動作について説明する。
CPU101aは、ブートチェックを行い、OS2がブートしているか否か判断する(ステップS1001)。OS2がブートしていない場合(ステップS1001でNO)、OS2をブートし(ステップS1002)、ステップS1008へ進む。
OS2がブートしている場合(ステップS1001でYES)、CPU101aは、メモリ102aのOS2用例外ハンドラ領域505aから前のCPU状態を読み出し、CPU状態を復帰する(ステップS1003)。CPU101aは、MMUを有効化し(ステップS1004)、キャッシュを有効化する(ステップS1005)。その後、CPU101aは、切替管理部106aに対して、OS2用メモリ領域506aの開放を指示し(ステップS1006)、更に、切替管理部106aに対して、遷移要因を問い合わせる。
遷移要因がOS2上で動作するプログラムへの処理要求である場合(ステップS1007でプログラム)、CPU101aは、要求されたプログラムへ分岐する(ステップS1008)。
遷移要因がOS2管理のハードウェア109aからの割込みである場合(ステップS1007でハードウェア)、CPU101aは、割込みマスクを解除する(ステップS1009)。割込み処理から復帰すると(ステップS1010)、CPU101aは、後述するOS2用ソフトウェア割込みハンドラ804へとび、処理を続ける。
(OS2用ソフトウェア割込みハンドラ804)
ここでは、図20に示すフローチャートを用いて、OS2用ソフトウェア割込みハンドラ804が実行されたときのCPU101aの動作について説明する。
CPU101aは、キャッシュを無効化し(ステップS1021)、MMUを無効化する(ステップS1022)。更に、CPUは、カレントステータスレジスタ(csr)の所定ビットをセットして割込みをマスクする(ステップS1023)。
その後、CPU101aは、CPU状態をOS2用例外ハンドラ領域505aに退避させ(ステップS1024)、OS1上で動作するプログラムを指定する情報と、そのプログラムに要求する処理内容を切替管理部106aに出力する(ステップS1025)。
また、OS2用メモリ領域保護要求を切替管理部106aに出力し(ステップS1026)、後述する分岐コード格納部709aに格納されているOS1への分岐コードに分岐する(ステップS1027)。分岐コード格納部709aに格納されている分岐コードに含まれる分岐先アドレスは、図18に示すOS1用ソフトウェア割り込みハンドラ内のステップS906で指定されたアドレスである。
(c)OS1用メモリ領域504a、及び、OS2用メモリ領域506a
OS1用メモリ領域504aには、OS1を構成するプログラム及びデータとOS1上で動作するプログラム及びデータとがロードされる。
また、OS2用メモリ領域506aには、OS2を構成するプログラム及びデータとOS2上で動作するプログラム及びデータとがロードされる。
(2)切替管理部106a
図21は、切替管理部106aの構成を示す図である。
同図に示す様に、切替管理部106は、システム状態管理部701a、メモリ保護制御部702a、例外テーブル制御部703a、例外制御部704a、割込み制御部705a、デバッガ制御部706a及びゲート707aから構成される。
システム状態管理部701aは、フェッチ検知部708aと分岐コード格納部709aとを備える。フェッチ検知部708aは、分岐コード格納部709aに格納されている分岐コードがCPU101aによりフェッチされたことを検知することができる。分岐コード格納部709aは、OS2からOS1へ遷移するときにCPU101aが実行する、OS2用ソフトウェア割込みハンドラ804への分岐を示す分岐コードを格納している。なお、当該分岐コードは、予め分岐コード格納部709aに格納されていてもよいし、OS1からOS2へ遷移するときに、OS1からOS2へ通知され、OS2により分岐コード格納部709aに書き込まれてもよい。また、OS1により分岐コード格納部709aに書き込まれてもよい。この場合、OS1は、当該分岐コードを書き込むことはできるが、読み出すことはできない。
システム状態管理部701aは、バス110aから受け取る情報、CPU101aから受け取る省電力モードに切り替わったことを示す情報、フェッチ検知部708aによるフェッチの検知に応じて、メモリ保護制御部702a、例外テーブル制御部703a、例外制御部704a、割込み制御部705a及びデバッガ制御部706aへ指示を出力する。
メモリ保護制御部702aは、システム状態管理部701aの指示に応じて、スイッチ509a及び510aを制御するための信号をメモリ102aに出力する。
例外テーブル制御部703aは、システム状態管理部701aの指示に応じて、例外テーブル制御信号を例外テーブル切替部103aに出力する。
例外制御部704aは、システム状態管理部701aの指示に応じて、CPU101aにリセット信号を出力する。
割り込み制御部705aは、システム状態管理部701aの指示に応じて、ゲート707aを制御し、割込みコントローラ107aから受け取る割り込み信号111aのCPU101aへの出力を制御する。
図22は、OS1からOS2に遷移する場合のシステム状態管理部701aの動作を示すシーケンスチャートである。図22では、紙面の左から右へ(t1からt4へ)向かって時間が経過するものとする。以下では、時間の流れに沿ってシステム状態管理部701aの動作を説明する。
t1以前:システム状態管理部701aは、メモリ保護制御部702aに対して、OS2用例外ハンドラ領域505aとOS2用メモリ領域506aとの遮断を指示する。また、システム状態管理部701aは、例外テーブル制御部703aに対して、OS1用例外テーブルへの接続を指示する。また、例外制御部704aに対して、リセット信号を出力しないよう指示する。また、割り込み制御部705aに対して割り込みをマスクしないよう指示する。また、デバッガ制御部706aにデバッガを有効にするよう指示する。
t1:システム状態管理部701aは、バス110からOS2への切替要求(ステップS907)を受け取ると、割り込み制御部705aへ割り込みをマスクする指示を出力する。さらに、システム状態管理部701aは、デバッガ制御部706aへデバッガを無効にするよう指示する。
t2:システム状態管理部701aは、CPU101aから、省電力モードに切り替わったことを示す信号を受け取ると、例外制御部704aへ、CPU101へリセットをかける指示を出力する。また、メモリ保護制御部702に対して、OS2用例外ハンドラ領域の開放を指示する。また、例外テーブル制御部703aにOS2用例外テーブルに切り替えるよう指示する。
t3:システム状態管理部701aは、CPU101aの内部状態がクリアされるのに十分な時間が経過した後、例外制御部704aに対して、リセットを解除する指示を出力する。また、割り込み制御部705aへ割り込みマスクを解除する指示を出力する。
t4:システム状態管理部701aは、バス110aからOS2用メモリ領域開放要求(ステップS1006)を受け取ると、メモリ保護制御部702aに対して、OS2用メモリ領域の開放を指示する。
図29は、OS2からOS1に遷移する場合のシステム状態管理部701aの動作を示すシーケンスチャートである。図29では、紙面の左から右へ(t1からt3へ)向かって時間が経過するものとする。以下では、時間の流れに沿ってシステム状態管理部701aの動作を説明する。
t1以前:システム状態管理部701aは、メモリ保護制御部702aに対して、OS2用例外ハンドラ領域505aとOS2用メモリ領域506aとの開放を指示する。また、システム状態管理部701aは、例外テーブル制御部703aに対して、OS2用例外テーブルへの接続を指示する。また、例外制御部704aに対して、リセット信号を出力しないよう指示する。また、割り込み制御部705aに対して割り込みをマスクしないよう指示する。また、デバッガ制御部706aにデバッガを無効にするよう指示する。
t1:システム状態管理部701aは、バス110からOS2用メモリ領域保護要求(ステップS1026)を受け取ると、メモリ保護制御部702aに対して、OS2用メモリ領域506aの遮断を指示する。
t2:システム状態管理部701aは、分岐コード格納部709aへのアクセスをフェッチ検知部708aが検知すると、メモリ保護制御部702aに対して、OS2用例外ハンドラ領域505aの遮断を指示する。また、例外テーブル制御部703aにOS1用例外テーブルに切り替えるよう指示する。
t3:システム状態管理部701aは、バス110からデバッガの有効化の指示を受けるとデバッガ制御部706aにデバッガの有効化を指示する。
(3)デバッガ無効化回路112a及びデバッガインターフェース113a
デバッガ無効化回路112aは、CPU101aとデバッガインターフェース113aとの間に設けられ、CPU101aとデバッガインターフェース113aとを接続又は切断することができる。
デバッガ無効化回路112aは、切替管理部106aから「有効」を示すデバッガ制御信号を受け取ると、CPU101aとデバッガインターフェース113aとを接続し、切替管理部106aから「無効」を示すデバッガ制御信号を受け取ると、CPU101aとデバッガインターフェース113aとを切断する。
CPU101aとデバッガインターフェース113aとが接続されているときは、デバッガインターフェース113aの外部に接続されるデバッガが有効であり、CPU101aとデバッガインターフェース113aとが切断されているときは、デバッガインターフェース113aの外部に接続されるデバッガが無効である。具体例として、デバッガ無効化回路112aは、図23に示す様なスイッチにより実現される。
デバッガインターフェース113aは、情報処理装置100aと外部のデバッガとを接続するためのインターフェースである。
図23は、デバッガ無効化回路112a、CPU101a及びメモリ102aの関係を説明するために、情報処理装置100の一部を簡略化して記載した図である。
(a)は、情報処理装置100aでOS1が動作している状態を示す。OS1が動作している状態において、メモリ102aは、切替管理部106aから出力されるメモリ保護制御信号により、OS2用例外ハンドラ領域505a及びOS2用メモリ領域506aが遮断されている。このときデバッガ無効化回路112aは、切替管理部106aから、「有効」を示すデバッガ制御信号を受け取り、デバッガインターフェース113aとCPU101aとを接続するよう、スイッチを閉状態にする。
なお、OS2からOS1への切替時には、切替管理部106aが分岐コードをフェッチした時点を、OSの切り替わり時点であると判断し、切替管理部106aにより分岐コードがフェッチされたのち、デバッガ無効化回路112aが、切替管理部106aから発行される「有効」を示すデバッガ制御信号を受け取とってもよい。
(b)は、情報処理装置100aでOS2が動作している状態を示す。OS2が動作している状態において、メモリ102aは、切替管理部106aから出力されるメモリ保護制御信号により、OS2用例外ハンドラ領域505a及びOS2用メモリ領域506aが開放されている。このときデバッガ無効化回路112aは、切替管理部106aから、「無効」を示すデバッガ制御信号を受け取り、デバッガインターフェース113aとCPU101aとを切断するよう、スイッチを開状態にする。
<動作>
図24は、情報処理装置100a全体の動作を示すフローチャートである。ここでは、図24に基づき、情報処理装置100aの動作について説明する。
情報処理装置100aは、OS1のブート処理を行い(ステップS1031)、OS1による処理を行う(ステップS1032)。その後、情報処理装置100aはOS1の退避処理を行う(ステップS1033)。
OS1が復帰すると(ステップS1034)、情報処理装置100aは、OS2からOS1への遷移要因を確認する。遷移要因が、OS1上で動作するプログラムへの処理要求である場合(ステップS1035でP)、ステップS1032へとび、要求された処理を行う。遷移要因が、OS1管理のハードウェア108aからの割込みである場合(ステップS1035でH)、情報処理装置100aは、割込みマスクを解除する(ステップS1036)。
ここで、割込みコントローラ107aが割込み信号を出力していた場合、割込みマスクの解除(ステップS1036)の直後に、CPU101aは割込みを受け付け、情報処理装置100aは割込み発生状態(ステップS1038)になる。その後、情報処理装置100aは、割込み要因を確認する(ステップS1039)。
割込み要因が、OS1管理のハードウェア108aからの割込みである場合(ステップS1039で1)、情報処理装置100aは、デバイスドライバにより割込みに対応する処理を行い、割込み処理が終了すると、割込みを受け付けたコードの次のコードを実行し、割込みからの復帰処理を行う(ステップS1037)。情報処理装置100aは、割込みから復帰すると(ステップS1037)、ステップS1033へとび、OS1の退避処理を行う。
割込み要因が、OS2管理のハードウェア109aからの割込みである場合(ステップS1039で2)、情報処理装置100aは、割込みコントローラ107aに対し、割込み要因クリアの処理をせずにステップS1033へ進む。
なお、情報処理装置100aがOS1に従い動作している状態(ステップS1032)において、OS1管理のハードウェア108aに係る割込みが発生した場合、情報処理装置100aは、公知技術である通常のオペレーティングシステムの割り込み処理を行うため、説明を省略する。
ステップS1033のOS1退避処理の後、情報処理装置100aは、CPU101a内部の状態をクリアし(ステップS1051)、OS2のブートチェックを行う(ステップS1052)。OS2がブートしていない場合(ステップS1052でN)、OS2のブート処理を行い(ステップS1053)、ステップS1056へ進む。OS2がブートしている場合(ステップS1052でY)、前のCPU状態をOS2用例外ハンドラ領域505aから読み出して、OS2のCPU状態を復帰する(ステップS1054)。
情報処理装置100aは、OS1からOS2への遷移要因を確認する。遷移要因がOS2上で動作するプログラムへの処理要求である場合(ステップS1055でP)、情報処理装置100aは、要求されたプログラムの処理を行う(ステップS1056)。その後、情報処理装置100aは、OS1の処理が必要な場合、OS2の退避処理を行う(ステップS1057)。遷移要因が、OS2管理のハードウェア109aからの割込みである場合(ステップS805でH)、情報処理装置100aは、割込みマスクを解除する(ステップS1058)。
ここで、割込みコントローラ107aが割込み信号を出力していた場合、割込みマスクの解除(ステップS1059)の直後に、CPU101aは割込みを受け付け、情報処理装置100aは割込み発生状態(ステップS1060)になる。その後、情報処理装置100aは、割込み要因を確認する(ステップS1061)。
割込み要因が、OS2管理のハードウェア109aからの割込みである場合(ステップS1061で2)、情報処理装置100aは、デバイスドライバにより割込みに対応する処理を行い(ステップS1062)、割込み処理が終了すると、割込みを受け付けたコードの次のコードを実行し、割込みからの復帰処理を行う(ステップS1059)。情報処理装置100aは、割込みから復帰すると(ステップS1059)、ステップS1057へ進みOS2の退避処理を行う。
割込み要因が、OS1管理のハードウェア108aからの割込みである場合(ステップS1061で1)、情報処理装置100aは、割込みコントローラ107aに対し、割込み要因クリアの処理をせずにOS2の状態を退避する処理を実行し(ステップS1057)、OS2からOS1への切替処理を行った後、OS1の復帰処理(ステップS1034)を行う。
なお、情報処理装置100aがOS2に従い動作している状態(ステップS1056)において、OS2管理のハードウェア109bに係る割込みが発生した場合、情報処理装置100aは公知技術である通常のオペレーティングシステムの割り込み処理を行うため、説明を省略する。
ここで、ステップS1033からステップS1037まで破線で囲まれた処理は、OS1用ソフトウェア割込みハンドラ801及び802を実行することによる処理であり、ステップS1039の割込み要因の確認処理は、OS1の割込みハンドラを実行することによる処理である。
また、ステップS1052からステップS1059までのステップの内、破線で囲まれた処理は、OS2用リセットハンドラ803を実行することによる処理であり、ステップS1057のOS2の退避処理は、OS2用ソフトウェア割込みハンドラ804を実行することによる処理であり、ステップS1062の割込み要因の確認処理は、OS2の割込みハンドラを実行することによる処理である。
<変形例1>
上記第2の実施形態における情報処理装置100aは、割込み要因の確認を、ソフトウェアが割込みコントローラ107aに問い合わせる構成を有しているが、割込み要因の確認をハードウェアが実現するように構成してもよい。そこで、情報処理装置100aの変形例として、情報処理装置100bについて説明する。
図25は、情報処理装置100bの構成を機能的に示す機能ブロック図である。
同図に示す様に、情報処理装置100bは、CPU101b、メモリ102b、例外テーブル切替部103b、OS1用例外テーブル格納部104b、OS2用例外テーブル格納部105b、切替管理部106b、ベクタ割込みコントローラ107b、OS1管理のハードウェア108b、OS2管理のハードウェア109b、バス110b、デバッガ無効化回路112b及びデバッガインターフェース113bから構成される。
情報処理装置100aとの構成上の違いは、情報処理装置100bは、割込みコントローラ107aに替えて、ベクタ割込みコントローラ107bを備える点である。以下では、情報処理装置100aと異なる部分を中心に説明する。
(1)ベクタ割込みコントローラ107b
ベクタ割込みコントローラ107bは、割込みコントローラ107aと同様に、OS1管理のハードウェア108bからの割込みを受け付ける割込み線、及び、OS2管理のハードウェア109bからの割込みを受け付ける割込み線を備える。
また、ベクタ割込みコントローラ107bは、デバイスとデバイスドライバのアドレスとを対応付けたテーブルを保持しており、割込み線から割込みを受け付けると、テーブルを参照して、割込みを発生したデバイスがOS1管理のハードウェア108bであるか、OS2管理のハードウェア109bであるかを判断し、対応するデバイスドライバの配置されたメモリアドレスを取得し、取得したアドレスをCPU101bへ通知する。
なお、ベクタ割込みコントローラ107bは、OS1管理のハードウェア108bおよびOS2管理のハードウェア109bの他に、複数のハードウェアを接続することができ、各ハードウェアに応じたアドレスをCPU101bに通知することができる。即ち、デバイスからベクタ割込みコントローラ107bへ割込みの発生が伝えられると、CPU101bは、直接デバイスドライバへ分岐する。
(2)切替管理部106b
図26は、切替管理部106bの構成を示す図である。同図に示す様に、切替管理部106bは、システム状態管理部701b、メモリ保護制御部702b、例外テーブル制御部703b、例外制御部704b、割込み制御部705b、デバッガ制御部706b及びゲート707bから構成される。
システム状態管理部701bは、バス110bから受け取る情報、信号線から受け取る情報、情報処理装置100bの各状態、フェッチ検知部708bによる分岐コードフェッチの検知に応じて、メモリ保護制御部702b、例外テーブル制御部703b、例外制御部704b、割込み制御部705b及びデバッガ制御部706bへ指示を出力する。
システム状態管理部701bの動作は、図22に示したシステム状態管理部701aの動作と同様であるので、説明を省略する。
図27は、情報処理装置100bにおける割込み制御の具体例を示したシーケンスチャートである。
ここで、VEビットは、CPU101bに設定されるベクタ割込みコントローラ無効化ビットである。VE=0は、ベクタ割込みの受け付けの禁止、即ちベクタ割込みのマスクを示し、VE=1は、ベクタ割込みの受け付け許可を示す。VEビットは、ソフトウェアにより、CPU101bに設定される。CPU101bリセット後のVEビットの初期状態は、VE=0である。
ここで、Iビットは、CPU101bのカレントステータスレジスタ(csr)が保持するIRQ割込み無効化ビットである。I=1は、割込みの受け付け禁止、即ち割込みをマスクを示し、I=0は、割込みの受け付け許可を示す。
ここで、nIRQは、割込みの発生をCPU101bへ伝える信号であり、切替管理部106b内のゲート707bより出力される信号である。nIRQ=0(LOW)のとき割り込みが発生している。
図27では、紙面の左から右へ(t1からt12へ)向かって時間が経過するものとする。以下では、時間の流れに沿って割込み制御について説明する。
t1以前:情報処理装置100bは、OS2で動作しているとする。このとき、OS2はVE=1にしないのでVE=0であり、ベクタ割込みコントローラ107bからのベクタ割込みがマスクされている。また、I=0であり、割込みの受け付けが許可されている。
t1:OS1管理のハードウェア108bから割込みが発生し、ベクタ割込みコントローラ107bへ割込みの発生を伝える。
t2:図27では省略しているが、ベクタ割込みコントローラ107bは、割込み信号111bを駆動し、切替管理部106bに割込みの発生を伝える。割込みの発生が伝えられると、切替管理部106bは、nIRQをアサートして、CPU101bに割込みの発生を伝える。CPU101bは、nIRQ=0を受け取ると、IビットをI=1に設定し、割込みをマスクするする。
t3:CPU101bは、VE=0であるので、ベクタ割込みコントローラ107bからベクタアドレス信号を受信せず、割込みハンドラへ分岐する。
t4:システム状態管理部701bが図29に示した動作を行い、OS2からOS1へ遷移する。図24のステップS1036(割込みマスク解除)で、割込みマスクを解除する前に、CPU101bのVEビットはVE=1に設定される。
t5:図24のステップS1036で、csrのIビットをI=0に設定すると、nIRQ=0であるのでCPU101bは、再度割り込みを受け付ける。その後、再度IビットをI=1に設定し、割込みをマスクする。
t6:CPU101bは、VE=1であるので、割込みを処理するため、ベクタ割込みコントローラ107bへデバイスドライバのアドレスを要求する。
t7:ベクタ割込みコントローラ107bは、OS1管理のハードウェア108bのデバイスドライバのアドレスをCPU101bへ通知する。
t8:ベクタ割込みコントローラ107bは、CPU101bへデバイスドライバのアドレスを受け取ったか問い合わせる。
t9:CPU101bは、ベクタ割込みコントローラ107bへ、ACKを送信し、デバイスドライバのアドレスを受け取ったことを通知する。
t10:CPU101bは、デバイスドライバの処理を終了するとベクタ割込みコントローラ107bに対して、割込み要因クリアの指示をする。ベクタ割込みコントローラ107bは切替管理部106bへの割込み信号を取り下げ、切替管理部106bは、nIRQ=1にする。
t12:デバイスドライバは、処理終了後、CPU101bのcsrのIビットをI=0に設定する。
<変形例2>
上記第2の実施形態である情報処理装置100aの変形例として、情報処理装置100dについて説明する。
図28は、情報処理装置100dの構成を機能的に示す機能ブロック図である。
同図に示す様に、情報処理装置100dは、CPU101d、メモリ102d、例外テーブル切替部103d、OS1用例外テーブル格納部104d、OS2用例外テーブル格納部105d、切替管理部106d、割込みコントローラ107d、OS1管理のハードウェア108d、OS2管理のハードウェア109d、バス110d、デバッガ無効化回路112d、デバッガインターフェース113d及びパワーオンリセット回路114dから構成される。
情報処理装置100aとの構成上の違いは、情報処理装置100dは、パワーオンリセット回路114dを備える点である。また、メモリ102dは、メモリ102aと一部構成が異なる。
パワーオンリセット回路114dは、情報処理装置100dに電源が供給された場合、バグ、ノイズの発生等によりシステムの不具合が発生した場合に、情報処理装置100d全体にリセットを掛ける回路である。
なお、図28では、パワーオンリセット回路114dからの信号線は、CPU101dとメモリ102dとにのみ接続されているが、実際には、その他の構成要素にも同様に、パワーオンリセット回路114dから信号線が入っているが、ここでは、それらの信号線を省略している。
パワーオンリセット回路114dからのリセット信号により、CPU101dにリセットが掛かると、CPU101dは内部をクリアし、OS1がブートする。また、メモリ102にリセットが掛かるときの処理については以下で述べる。
図30は、メモリ102dの構成を機能的に示す機能ブロック図である。
同図に示す様に、メモリ102dは、バスインターフェース501d、メモリ保護機構502d、メモリクリア回路511d及びメモリ領域から成る。メモリ保護機構502dは、バスインターフェース501dとOS2用例外ハンドラ領域505dとの間に設けられたスイッチ509d、及び、バスインターフェース501dとOS2用メモリ領域506dとの間に設けられたスイッチ510dを備える。また、メモリ領域は、OS1用例外ハンドラ領域503d、OS1用メモリ領域504d、OS2用例外ハンドラ領域505d及びOS2用メモリ領域506dに分割されている。メモリ102aとの構成上の違いは、メモリクリア回路511dを備える点である。
メモリクリア回路511dは、パワーオンリセット回路114dから出力されるリセットを受け取ると、OS2用例外ハンドラ領域505d及びOS2用メモリ領域506aに特定の値を書き込む。ここで、特定の値とは、ゼロやランダムな値でもよい。また、メモリクリア回路511dは、OS2用例外ハンドラ領域505dおよびOS2用メモリ領域506dのメモリ全てに値を書き込むまで、メモリ保護機構502dからのアクセスを遮断する。
これは、パワーオンリセット回路114dによりCPU101dがリセットされ、OS1がブートするのに要する時間と、メモリクリア回路511dがOS2用例外ハンドラ領域505d及びOS2用メモリ領域506dに特定の値を書き込むのに要する時間とでは前者の方が短く、OS2用例外ハンドラ領域505d及びOS2用メモリ領域506dの内容が、OS1により解析、操作される可能性があるためである。そこで、OS2用例外ハンドラ領域505d及びOS2用メモリ領域506dに特定の値を書き込むまでの間、メモリクリア回路511dは、メモリ保護機構502dからのアクセスを遮断することが必要となる。
≪まとめ≫
本発明を上記の実施形態に基づき説明してきたが、本発明は、上記の実施形態に限定されないのは勿論であり、以下の様な場合も本発明に含まれる。
(1)上記の実施形態では、情報処理装置は、OS1及びOS2の2個のオペレーティングシステムを保持しているが、本発明において、情報処理装置が保持するオペレーティングシステムは、2個に限定されないのは勿論であり、2個以上の複数個のオペレーティングシステムを保持する場合も本発明に含まれる。
(2)第1の実施例、第2の実施例、変形例1及び変形例2を、それぞれ組み合わせる構成も本発明に含まれる。
(3)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD‐ROM、MO、DVD、DVD‐ROM、DVD‐RAM、BD(Blu‐ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
本発明は、複数のオペレーティングシステムを保持する情報処理装置をユーザに提供する産業において利用することができる。
情報処理装置100の構成を機能的に示す機能ブロック図である。 情報処理装置100のソフトウェア構成を示す図である。 CPU101の構成を示す図である。 CPU101に含まれるレジスタファイル400の構成を示す図である CPU101の動作を示す図である。 メモリ102の構成を示す図である。 OS1用例外ハンドラ領域503のメモリマップの一例を示す図である。 リセットハンドラ511が実行されたときのCPU101の動作を示す図である。 割込みハンドラ512が実行されたときのCPU101の動作を示す図である。 ソフトウェア割込みハンドラ513が実行されたときのCPU101の動作を示す図である。 CPU省電力モード切替処理の動作を示す図である。 (a)は、OS1用例外テーブル601のデータ構成を示す図である。(b)は、OS2用例外テーブル602のデータ構成を示す図である。 切替管理部106の構成を示す図である。 切替管理部106の動作を示すシーケンスチャートである。 情報処理装置100全体の動作を示すフローチャートである。 情報処理装置100aの構成を機能的に示す機能ブロック図である。 メモリ102aの構成を示す図である。 OS1用ソフトウェア割込みハンドラ801及び802が実行されたときのCPU101aの動作を示す図である。 OS2用リセットハンドラ803が実行されたときのCPU101aの動作を示す図である。 OS2用ソフトウェア割込みハンドラ804が実行されたときのCPU101aの動作を示す図である。 切替管理部106aの構成を示す図である。 OS1からOS2への遷移処理における、切替管理部106aの動作を示すシーケンスチャートである。 デバッガ無効化回路112aを説明するための図である。(a)は、デバッガ無効化回路112aが「有効」である状態を示し、(b)は、デバッガ無効化回路112aが「無効」である状態を示す。 情報処理装置100a全体の動作を示すフローチャートである。 情報処理装置100bの構成を機能的に示す機能ブロック図である。 切替管理部106bの構成を示す図である。 情報処理装置100bにおける割込み制御を説明するシーケンスチャートである。 情報処理装置100dの構成を機能的に示す機能ブロック図である。 OS2からOS1への遷移処理における、切替管理部106aの動作を示すシーケンスチャートである。 メモリ102dの構成を示す図である。
符号の説明
100 情報処理装置
100a 情報処理装置
100b 情報処理装置
100d 情報処理装置
101 CPU
101a CPU
101b CPU
101d CPU
102 メモリ
102a メモリ
102b メモリ
102d メモリ
103 例外テーブル切替部
103a 例外テーブル切替部
103b 例外テーブル切替部
103d 例外テーブル切替部
104 OS1用例外テーブル格納部
104a OS1用例外テーブル格納部
104b OS1用例外テーブル格納部
104d OS1用例外テーブル格納部
105 OS2用例外テーブル格納部
105a OS2用例外テーブル格納部
105b OS2用例外テーブル格納部
105d OS2用例外テーブル格納部
106 切替管理部
106a 切替管理部
106b 切替管理部
106d 切替管理部
107 割込みコントローラ
107a 割込みコントローラ
107b ベクタ割込みコントローラ
107d ベクタ割込みコントローラ
108 OS1管理のハードウェア
108a OS1管理のハードウェア
108b OS1管理のハードウェア
108d OS1管理のハードウェア
109 OS2管理のハードウェア
109a OS2管理のハードウェア
109b OS2管理のハードウェア
109d OS2管理のハードウェア
110 バス
110a バス
110b バス
110d バス
112a デバッガ無効化回路
112b デバッガ無効化回路
112d デバッガ無効化回路
113a デバッガインターフェース
113b デバッガインターフェース
113d デバッガインターフェース
114d パワーオンリセット回路

Claims (19)

  1. 第1のOS及び第2のOSの管理に従い動作する情報処理装置であって、
    第1のOSが管理するデータを記憶している第1領域と、
    第2のOSの復帰命令と第2のOSへの分岐命令とを含むリセットハンドラを記憶している第2領域と、
    第1領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、
    前記リセットハンドラの第2領域における位置を示す位置情報を格納している例外テーブル格納手段と、
    第1のOSの管理下で動作中に、第1のOSから第2のOSへの切替指示を受け付けると、前記アクセス遮断機構に対して第1領域の遮断を指示し、CPUに対してリセットを指示する切替管理手段と、
    プログラムカウンタを備え、プログラムカウンタにセットされた位置情報が示す位置の命令を実行し、切替管理手段からリセットの指示を受けると、内部を初期化し、プログラムカウンタに前記リセットハンドラの位置を示す位置情報をセットするCPUと
    を備えることを特徴とする情報処理装置。
  2. 前記記憶手段のアクセス遮断機構は、更に、前記第2領域に対する外部からのアクセスの遮断及び開放を切り替え、
    前記切替管理手段は、前記切替指示を受け付けると、前記アクセス遮断機構に対して第1領域の遮断に続き、第2領域の開放を指示する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記記憶手段は、更に、第2のOSへの切替前の第1のOSのCPU状態を退避させる退避命令を含む第1割込みハンドラを記憶している第3領域を備え、
    前記アクセス遮断機構は、更に、前記第3領域に対する外部からのアクセスの遮断及び開放を切り替え、
    前記例外テーブル格納手段は、前記第1割込みハンドラの前記第3領域における位置を示す位置情報を格納しており、
    前記CPUは、第1のOSの管理下で実行中のプログラムから前記第1割込みハンドラが呼び出されると、プログラムカウンタに、前記第1割込みハンドラの位置を示す位置情報をセットし、
    前記切替管理手段は、前記第1割込みハンドラから、第1のOSから第2のOSへの前記切替指示を受け付ける
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記切替管理手段は、
    前記第1割込みハンドラから、第2のOS上で動作するプログラムの種類と前記プログラムに要求する処理内容とを受け取り、
    前記リセットハンドラへ、前記プログラムの種類と前記処理要求とを通知する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記記憶手段の第3領域は、第2割込みハンドラを記憶しており、
    前記第2割込みハンドラは、
    発生したハードウェア割込みが、第1のOSが管理するハードウェアからの割込み又は第2のOSが管理するハードウェアからの割込みの何れであるか判断する判断命令と、
    第2のOSが管理するハードウェアからの割込みであると判断する場合に、前記第1割込みハンドラに分岐する命令とを含み、
    前記例外テーブル格納手段は、前記第2割込みハンドラの前記第3領域における位置を示す位置情報を格納しており、
    前記CPUは、第1のOSの管理下で動作中に割込みを受け付けると、プログラムカウンタに前記第2割込みハンドラの位置を示す位置情報をセットする
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置は、前記第2割込みハンドラの処理、及び、前記第1割込みハンドラの処理を経て、第2のOSの管理下で動作中であって、
    前記リセットハンドラは、第2のOSから第1のOSへの復帰準備を行う命令を含み、
    前記CPUは、
    前記第1のOSへの復帰準備として、内部のリンクレジスタに第1のOSへ戻るプログラムの先頭番地をセットしたのち、第2のOSが管理するハードウェアを操作するデバイスドライバへ分岐し、
    前記デバイスドライバの処理の終了を検知すると、リンクレジスタにセットした前記先頭番地を、プログラムカウンタにセットする
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記第2割込みハンドラは、更に、
    第1のOSが管理するハードウェアからの割込みであると判断する場合に、第1のOSが管理するハードウェアを操作するデバイスドライバへ分岐する分岐命令を含み、
    前記CPUは、
    割込みが発生すると、プログラムカウンタに、前記第2割込みハンドラの位置を示す位置情報をセットし、第1のOSが管理するハードウェアからの割込みであると判断すると、前記第2割込みハンドラから呼び出される前記デバイスドライバの位置を示す位置情報を、プログラムカウンタにセットする
    ことを特徴とする請求項5に記載の情報処理装置。
  8. 前記記憶手段は、更に、第2のOSが管理するデータを記憶している第4領域を備え、
    前記アクセス遮断機構は、更に、前記第4領域に対する外部からのアクセスの遮断及び開放を切り替え、
    前記切替管理手段は、前記リセットハンドラから、前記第4領域の開放指示を受け取ると、前記アクセス遮断機構に対して、前記第4領域の開放を指示する
    ことを特徴とする請求項3に記載の情報処理装置。
  9. 前記情報処理装置は、更に、前記例外テーブル格納手段と外部との接続を切り替える例外テーブル切替手段を備え、
    前記例外テーブル格納手段は、前記第1割込みハンドラ及び前記第3割込みハンドラの格納位置を示す位置情報を含む第1例外テーブルと、前記リセットハンドラの格納位置を示す位置情報を含む第2例外テーブルとを格納しており、
    前記切替管理手段は、前記CPUが第1のOSの管理下で動作中の場合、第1例外テーブルの接続を指示し、第2のOSの管理下で動作中の場合、第2例外テーブルの接続を指示し、
    前記例外テーブル切替手段は、前記切替管理手段からの指示を受けて、前記第1例外テーブル又は前記第2例外テーブルを外部と接続する
    ことを特徴とする請求項4に記載の情報処理装置。
  10. 前記アクセス遮断機構は、前記第3領域に対する外部からのアクセスの遮断及び開放を切り替え、
    前記切替管理手段は、前記第1割込みハンドラから、第1のOSから第2のOSへの切替指示を受け付けると、前記アクセス遮断機構に対して、前記第3領域の遮断を指示する
    ことを特徴とする請求項3に記載の情報処理装置。
  11. 前記第1割込みハンドラは、
    前記退避命令を実行した後、前記CPUに対し、省電力モードへの切り替えを指示し、
    前記CPUは、
    省電力モードへの切替処理を行い、前記切替処理が終了すると、前記切替管理手段へ省電力モードに切り替わったことを示す信号を出力し、
    前記切替管理手段は、
    前記CPUから、省電力モードに切り替わったことを示す信号を受け取った後、前記CPUにリセットを指示する
    ことを特徴とする請求項3に記載の情報処理装置。
  12. 第1のOS及び第2のOSの管理に従い動作する情報処理装置であって
    第1のOSが管理するデータを記憶している第1領域と、
    第1のOSから第2のOSへの切替に係る退避命令、及び、第2のOSへの分岐命令に分岐する命令を含む第1割込みハンドラを記憶している第2領域と、
    第2のOSの退避命令及び第2のOSへの復帰命令を含む第2割込みハンドラを記憶している第3領域と、
    前記第1領域及び前記第2領域に対する外部からのアクセスの遮断及び開放を切り替えるアクセス遮断機構とから構成される記憶手段と、
    前記第1割込みハンドラへの分岐を示す分岐命令を保持する分岐命令保持部と、
    前記分岐命令がフェッチされたことを検知するフェッチ検知部とから構成される切替管理手段とを備え、
    前記フェッチ検知部が前記分岐命令のフェッチを検知すると、前記アクセス遮断機構に対して、前記第1領域の遮断を指示する
    ことを特徴とする情報処理装置。
  13. 前記情報処理装置は、更に、
    プログラムカウンタを備え、プログラムカウンタにセットされる位置情報が示す命令を実行するCPUを備え、
    前記CPUは、前記第2割込みハンドラを処理し、第2のOSから第1のOSに切り替える指示をする前に、前記分岐命令保持部に、第1のOSから第2のOSへのリターンアドレスを設定する
    ことを特徴とする請求項12に記載の情報処理装置。
  14. 前記第1割込みハンドラは、割込みをマスクし、前記切替管理手段に対して、第2のOS上で動作するプログラムの種類と前記プログラムに要求する処理内容とを通知し、
    前記CPUは、前記第1割込みハンドラから呼び出される前記第2割込みハンドラの前記復帰命令の位置を示す位置情報を、前記分岐命令保持部から読み出し、プログラムカウンタにセットし、
    前記切替管理手段は、前記第2割込みハンドラへ、前記プログラムの種類と前記処理内容とを通知する
    ことを特徴とする請求項13に記載の情報処理装置。
  15. 前記第2割込みハンドラは、第1のOSから第2のOSへの切替要因を確認し、前記切替要因が第2のOSが管理するプログラムへの処理要求である場合に、前記プログラムへ分岐し、
    前記CPUは、前記第2割込みハンドラから呼び出される前記プログラムの位置を示す位置情報をプログラムカウンタにセットする
    ことを特徴とする請求項14に記載の情報処理装置。
  16. 前記第2割込みハンドラは、第1のOSから第2のOSへの切替要因を確認し、前記切替要因が第2のOSが管理するハードウェアからの割込みである場合に、割込みマスクを解除し、第2のOSが管理するハードウェアを操作するデバイスドライバの位置を示す位置情報を、前記CPUのプログラムカウンタにセットし、
    前記CPUは、前記デバイスドライバの処理の終了を検知すると、プログラムカウンタに、前記第2割込みハンドラの前記復帰命令の位置を示す位置情報をプログラムカウンタにセットする
    ことを特徴とする請求項14に記載の情報処理装置。
  17. 前記情報処理装置は、更に、前記切替管理手段からの指示を受け、外部のデバッガと前記CPUとを接続又は遮断するデバッガ無効化回路を備え、
    前記切替管理手段は、前記CPUが第1のOSの管理に従い動作しているときは、前記デバッガ無効化回路に対して遮断を指示し、前記CPUが第2のOSの管理に従い動作しているときは、デバッガ無効化回路に対して接続を指示する
    ことを特徴とする請求項12に記載の情報処理装置。
  18. 前記情報処理装置は、更に、
    第1のOSが管理するハードウェアからの割込みを受け付ける第1信号線と、
    第2のOSが管理するハードウェアからの割込みを受け付ける第2信号線と、
    第1及び第2のOSが管理するハードウェアを操作するそれぞれのデバイスドライバの位置情報を記述したテーブルとを備えるベクタ割込みコントローラを備え、
    前記第2領域は、更に、前記第1のOSのブートコードを備え、
    前記CPUは、
    前記ブートコードの実行中に、前記ベクタ割込みコントローラからのデバイスドライバの位置情報の取得を無効化し、第3領域に格納されている第2割込みハンドラの実行中に、前記ベクタ割込みコントローラからのデバイスドライバの位置情報の取得を有効にする
    ことを特徴とする請求項17に記載の情報処理装置。
  19. 前記情報処理装置は、更に、パワーオンリセット回路を備え、
    前記記憶手段は、更に、記憶内容消去手段を備え、
    前記パワーオンリセット回路は、前記CPU及び前記記憶手段を初期化するリセット信号を、前記CPU及び前記記憶内容消去手段に出力し、
    前記CPUは、前記パワーオンリセット回路からリセット信号を受けると、内部を初期化し、
    前記記憶内容消去手段は、前記パワーオンリセット回路から、リセット信号を受けると、前記記憶手段が記憶している記憶内容を破棄し、
    前記リセット信号を受けてから、前記記憶内容の破棄を終了するまでの間、外部から前記記憶手段へのアクセスを遮断する
    ことを特徴とする請求項17に記載の情報処理装置。
JP2004159851A 2003-05-29 2004-05-28 オペレーティングシステム切り替え可能な情報処理装置 Pending JP2005011336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004159851A JP2005011336A (ja) 2003-05-29 2004-05-28 オペレーティングシステム切り替え可能な情報処理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003153270 2003-05-29
JP2004159851A JP2005011336A (ja) 2003-05-29 2004-05-28 オペレーティングシステム切り替え可能な情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010148952A Division JP4876181B2 (ja) 2003-05-29 2010-06-30 オペレーティングシステム切り替え可能な情報処理装置

Publications (1)

Publication Number Publication Date
JP2005011336A true JP2005011336A (ja) 2005-01-13

Family

ID=34106793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004159851A Pending JP2005011336A (ja) 2003-05-29 2004-05-28 オペレーティングシステム切り替え可能な情報処理装置

Country Status (1)

Country Link
JP (1) JP2005011336A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007086909A (ja) * 2005-09-20 2007-04-05 Nec Corp コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
EP1821539A2 (en) * 2006-02-15 2007-08-22 Matsushita Electric Industrial Co., Ltd. Decoding apparatus and integrated circuit
WO2011114655A1 (ja) 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
WO2011138852A1 (ja) 2010-05-07 2011-11-10 パナソニック株式会社 情報処理装置、情報処理方法、及びプログラム配信システム
US8060716B2 (en) 2006-12-22 2011-11-15 Panasonic Corporation Information processing device for securely processing data that needs to be protected using a secure memory
JP5249920B2 (ja) * 2007-07-05 2013-07-31 パナソニック株式会社 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
US9483278B2 (en) 2013-05-11 2016-11-01 Lenovo (Singapore) Pte. Ltd. Arrangement for secure independent operating environments in a computer
US10372487B2 (en) 2015-02-27 2019-08-06 Samsung Electronics Co., Ltd. Device and method of running multiple operating systems and presenting multiple operation screens
US11243802B2 (en) 2015-02-27 2022-02-08 Samsung Electronics Co., Ltd. Device and method of running multiple operating systems and presenting multiple operation screens using locking of host operating system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01140255A (ja) * 1987-11-26 1989-06-01 Matsushita Electric Ind Co Ltd メモリ保護方法
JPH07105091A (ja) * 1993-10-01 1995-04-21 Hitachi Ltd キャッシュの制御装置および制御方法
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
JP2002140138A (ja) * 2000-08-22 2002-05-17 Canon Inc 省電力移行制御装置、情報処理装置、省電力移行制御方法及び記憶媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01140255A (ja) * 1987-11-26 1989-06-01 Matsushita Electric Ind Co Ltd メモリ保護方法
JPH07105091A (ja) * 1993-10-01 1995-04-21 Hitachi Ltd キャッシュの制御装置および制御方法
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
JP2002140138A (ja) * 2000-08-22 2002-05-17 Canon Inc 省電力移行制御装置、情報処理装置、省電力移行制御方法及び記憶媒体

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007086909A (ja) * 2005-09-20 2007-04-05 Nec Corp コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
EP1821539A2 (en) * 2006-02-15 2007-08-22 Matsushita Electric Industrial Co., Ltd. Decoding apparatus and integrated circuit
EP1821539A3 (en) * 2006-02-15 2009-08-05 Panasonic Corporation Decoding apparatus and integrated circuit
US8060716B2 (en) 2006-12-22 2011-11-15 Panasonic Corporation Information processing device for securely processing data that needs to be protected using a secure memory
JP5249920B2 (ja) * 2007-07-05 2013-07-31 パナソニック株式会社 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
WO2011114655A1 (ja) 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US9081596B2 (en) 2010-03-16 2015-07-14 Panasonic Intellectual Property Management Co., Ltd. Information processing device, virtual machine creation method, and application distribution system
WO2011138852A1 (ja) 2010-05-07 2011-11-10 パナソニック株式会社 情報処理装置、情報処理方法、及びプログラム配信システム
US8904518B2 (en) 2010-05-07 2014-12-02 Panasonic Corporation Information processing device, information processing method, and program distribution system
US9483278B2 (en) 2013-05-11 2016-11-01 Lenovo (Singapore) Pte. Ltd. Arrangement for secure independent operating environments in a computer
US10372487B2 (en) 2015-02-27 2019-08-06 Samsung Electronics Co., Ltd. Device and method of running multiple operating systems and presenting multiple operation screens
US11243802B2 (en) 2015-02-27 2022-02-08 Samsung Electronics Co., Ltd. Device and method of running multiple operating systems and presenting multiple operation screens using locking of host operating system

Similar Documents

Publication Publication Date Title
JP4876181B2 (ja) オペレーティングシステム切り替え可能な情報処理装置
KR100242484B1 (ko) 캐쉬 메모리 시스템의 성능 최적화 방법 및 장치
CN108780396B (zh) 程序循环控制
US6209085B1 (en) Method and apparatus for performing process switching in multiprocessor computer systems
JP2005521924A (ja) シングルスレッドプログラムのマルチスレッドでのインプリシットな実行を可能にするマルチスレッドプロセッサ
CN108885549B (zh) 分支指令
EP0948768A1 (en) System for facilitating data i/o between usb input device and non-usb cognition application
JP6508382B1 (ja) 情報処理装置、情報処理方法、プログラム
JP2004520662A (ja) 共通の名前を有する複数のレジスタへの選択的なアクセス
JP3226055B2 (ja) 情報処理装置
JPH0564813B2 (ja)
TW201337572A (zh) 推測式快取修改技術
JP2005011336A (ja) オペレーティングシステム切り替え可能な情報処理装置
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
JPH0340047A (ja) キヤツシユ・ライン・ストア方法
JPH0316660B2 (ja)
JPH05257808A (ja) マイクロプロセッサ及びその動作変換方法
US6339823B1 (en) Method and apparatus for selective writing of incoherent MMX registers
JPH01213732A (ja) データ処理システム
JP3670646B2 (ja) レジスタ転送オペレーション
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JPH0715667B2 (ja) データ処理装置
JP5555514B2 (ja) プロセッサシステム
JP3762608B2 (ja) 計算機とその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090715

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100330