JP5215324B2 - メディア装置における複数のオペレーティングシステム支援 - Google Patents

メディア装置における複数のオペレーティングシステム支援 Download PDF

Info

Publication number
JP5215324B2
JP5215324B2 JP2009549155A JP2009549155A JP5215324B2 JP 5215324 B2 JP5215324 B2 JP 5215324B2 JP 2009549155 A JP2009549155 A JP 2009549155A JP 2009549155 A JP2009549155 A JP 2009549155A JP 5215324 B2 JP5215324 B2 JP 5215324B2
Authority
JP
Japan
Prior art keywords
operating system
idle
device
digital media
steps
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
JP2009549155A
Other languages
English (en)
Other versions
JP2010518512A (ja
Inventor
キング,ブライアン・ダグラス
フィンガー,ジェームズ・シー
チャブダ,プラフル・プラタプライ
ディヴィス,ジェフリー・アラン
Original Assignee
マイクロソフト コーポレーション
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
Priority to US89990907P priority Critical
Priority to US60/899,909 priority
Priority to US11/999,605 priority patent/US8046570B2/en
Priority to US11/999,605 priority
Application filed by マイクロソフト コーポレーション filed Critical マイクロソフト コーポレーション
Priority to PCT/US2008/051045 priority patent/WO2008097695A1/en
Publication of JP2010518512A publication Critical patent/JP2010518512A/ja
Application granted granted Critical
Publication of JP5215324B2 publication Critical patent/JP5215324B2/ja
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Description

本発明は、コンシューマー電子装置において複数のオペレーティングシステムを支援する技法及びツールに関する。

コンシューマー電子装置用のメディアフォーマットは、ますます複雑になっていると同時に、それらの高度な機能の多くもハードウェアからソフトウェアに移っている。その結果、コンシューマー電子装置のソフトウェア環境が、ますます複雑になっている。

更に、DVDなどのようなより古い、より単純なフォーマットは、より安い、より単純なハードウェアへそれらの処理の多くを任せたとしても、それらの処理のいくつかをまだソフトウェアに残している。例えば、音声及び映像ストリームは、専用のハードウェアによって復号化されると思われるが、メニュー処理(又は「ナビゲーション」)の機能性は、ソフトウェアで実装され得る。基本的なナビゲーションソフトウェアは、比較的単純であり得るが、DVD市場は、時間と共に発展している。DVDプレーヤーは、より多くの機能を有するDVDを正確に処理するために複雑化したメニューの処理ロジックを用いて対応している。その結果、比較的単純なDVDフォーマットが発達し、その再生ソフトウェアは、現在、かなり複雑である。多くのプレーヤーの製造者が、このソフトウェアに多大な投資をしていて、ソフトウェアは、時間と共に発展し、それらの動作環境に依存性を有している。

異なる利用可能なメディアフォーマットを用いて複数のフォーマットを支援するコンシューマー電子装置の必要性がある。例えば、彼らのDVDプレーヤーが全く異なるメディアフォーマットであるCD音声ディスクも再生することをユーザーが一般に期待していることを考慮するとき、複数のフォーマットの支援が望まれていることが明らかである。次に対処されるべき課題は、それら自身のオペレーティングシステムを要求し得る複数のソフトウェアアプリケーションを、費用対効果に優れた方法でどのように実行するかである。

この「課題を解決するための手段」は、「発明を実施するための形態」において、更に以下に記載したいくつかの概念を簡易化された形式で紹介する。この概要が、請求項記載対象の重要な機能又は本質的な機能を識別することも意図せず、請求項記載対象の範囲を限定するために使用されることも意図していない。

要約すれば「発明を実施するための形態」を、コンシューマー電子装置において複数のオペレーティングシステムを支援する様々な技法及びツールに向ける。例えば、異なるメディアタイプを支援しているビデオディスクプレーヤーにおいて、オペレーティングシステム間の素早い切り換えを可能にすると同時に、待ち時間を減らしてユーザー体験に対する見込まれる悪影響を緩和する技法及びツールを記載する。

付加的な機能及び利点を、添付の図面を参照し由来する以下の様々な実施形態の詳細な説明から明らかにする。

記載した実施形態のいくつかが実装され得る適切な計算環境の一般化された例を示すブロック図である。 記載した1つ以上の実装による異なるオペレーティングシステム間の機能変更を処理する「正常ハンドオフモデル」に関する技法の例を示す流れ図である。 記載した1つ以上の実装による異なるオペレーティングシステム間の機能変更を処理する「ウォームブート」に関するモデルの技法の例を示す流れ図である。 記載した1つ以上の実装によるディスクフォーマット変更の正常ハンドオフ処理に関する技法の例を示す流れ図である。 記載した1つ以上の実装によるディスクフォーマットの変更を処理するブートローダー及びBIOSサービスを有するファームウェアを示すシステム図である。 記載した1つ以上の実装によるディスクフォーマット変更のウォームブート処理に関する技法の例を示す流れ図である。 記載した1つ以上の実装による並行してウォームブートメディアフォーマットの切り換え動作を実行する技法の例を示す流れ図である。

例えば、メディアプレーヤーなどの組み込み装置において複数のオペレーティングシステムを支援する技法及びツールを本明細書に記載する。
本明細書に記載した実装に対しては、様々な代替手段があり得る。例えば、流れ図ダイヤグラムを参照して記載した一定の技法が、一定の段階その他を繰り返すか又は省略することによって、流れ図に示されている段階の順番を変更することにより変えられ得るが、同一の結果を達成する。異なる実施形態は、記載した1つ以上の技法及びツールを実装する。本明細書に記載した技法及びツールのいくつかは、背景において述べられている1つ以上の課題に対処している。しかしながら所与の技法/ツールは通常、そのような課題すべてを解決するわけではない。

I. 計算環境
図1は、記載した実施形態のいくつかが実装され得る適切な計算環境(100)の一般化された例を示す。計算環境(100)は、本技法及びツールが、汎用的又は専用の様々な計算環境において実装され得るように有用性又は機能性の範囲に関していかなる限定を提示することを意図していない。例えば計算環境(100)は、携帯用オーディオプレーヤー、携帯用ビデオプレーヤー、携帯用オーディオ及びビデオプレーヤー、コンソールオーディオプレーヤー、コンソールビデオプレーヤー又はコンソールオーディオ及びビデオプレーヤーなどのメディア装置を提供し得る。そのようなメディア装置は、スタンドアロンのユニットであり得るか又は別の装置(例えば通信装置又はディスプレイ装置)に含まれ得る。

図1を参照すると、計算環境(100)は、少なくとも2つの処理ユニット(110,115)及び関連するメモリー(120,125)を含む。処理ユニット(110,115)は、CPU、映像アクセラレーター用GPU又は別のコプロセッシングユニットを含む。図1において、この最も多い基本構成(130)が破線内に含まれている。あるいはまた計算環境は、単一の処理ユニットを含む。処理ユニット(110,115)は、計算機実行可能命令を実行し、実際又は仮想のプロセッサーであり得る。マルチプロセッシングシステムにおいては、複数の処理ユニットが、計算機実行可能命令を実行し処理能力を増大させる。シナリオの符号化又は復号化においては、ホストの符号化又は複合化プロセスが、利用可能な処理ユニット(110,115)を使用し、符号化又は復号化の操作を実行する。一定の動差がGPUなどの専用処理ユニットによって実行され得る。メモリー(120,125)は、揮発性メモリー(例えばレジスター、キャッシュ、RAM)、不揮発性メモリー(例えばROM、EEPROM、フラッシュメモリーなど)又はその2つのいくつかの組み合わせであり得る。メモリー(120,125)は、特定の1つのプロセッサーであり得るか又は2つ以上のプロセッサーによって共有され得る。メモリー(120,125)は、複数のオペレーティングシステムを支援する方略を実装している装置に対するソフトウェア(180)をストアする。

計算環境は、更なる機能を有し得る。例えば、計算環境(100)は、記憶装置(140)、1つ以上の入力装置(150)、1つ以上の出力装置(160)及び1つ以上の通信接続装置(170)を含む。バス、コントローラー又はネットワークなどの(図示されていない)相互接続装置が、計算環境(100)のコンポーネントを相互接続する。(図示されていない)オペレーティングシステムソフトウェアは通常、計算環境(100)において実行する別のソフトウェアを動作環境に提供し、計算環境(100)のコンポーネントの動きを調整する。

記憶装置(140)は、取り外し可能又は取り外し不可能であり得、磁気ディスク、磁気テープ又はカセット、CD−ROM、DVD又は計算環境(100)内の情報をストアするために使用され得アクセスされ得る別の任意の媒体を含む。記憶装置(140)は、ソフトウェア(180)に関する命令をストアする。

入力装置(単数又は複数)(150)は、キーボード、マウス、ペン、タッチスクリーン若しくはトラックボールなどのタッチ入力装置、音声入力装置、スキャニング装置又は計算環境(100)への入力を提供する別の装置であり得る。音声又は映像に関しては、入力装置(単数又は複数)(150)は、サウンドカード、ビデオカード、テレビチューナーカード又はアナログ若しくはデジタル形式で音声若しくは映像入力を受け入れる類似の装置又は符号化された音声若しくは映像を計算環境(100)に読み出すDVD、CD−ROM又はCD−RWであり得る。出力装置(単数又は複数)(160)は、ディスプレイ、プリンター、スピーカー、CD、若しくはDVDライター又は計算環境(100)からの出力を提供する別の装置であり得る。

通信接続装置(単数又は複数)(170)は、通信媒体を介し別の計算実体との通信を可能にする。通信媒体は、計算機実行可能命令、音声若しくは映像入力又は出力又は搬送波データ信号の他のデータなどの情報を伝達する。搬送波データ信号は、1つ以上のその特性のセットを有しているか又は信号における情報を符号化する方法によって変更された信号である。制限ではなく例として、通信媒体は、電気的、光学的、無線周波数(「RF」)、赤外線(「IR」)、音響又は他のキャリヤーを用いて実装された有線又は無線の技法を含む。

本技法及びツールを、計算機可読媒体に関する一般的な文脈で記載し得る。計算機可読媒体は、計算環境内部でアクセスされ得る利用可能な任意の媒体である。制限ではなく例として、計算環境(100)を有する計算機可読媒体は、メモリー(120)、記憶装置(140)、通信媒体及び上記の任意の組み合わせを含む。

プログラムモジュールに含まれるターゲットの実際又は仮想のプロセッサー上の計算環境で実行されるような本技法及びツールを計算機実行可能命令に関する一般的な文脈で記載し得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造その他を含む。プログラムモジュールの機能性は、様々な実施形態において所望されるように結合され得るか又はプログラムモジュールの間で分割され得る。プログラムモジュールに関する計算機実行可能命令は、ローカル又は分散計算環境内で実行され得る。

詳細に提示するために記載は、計算環境における計算機の動作を記載するために「チェック」及び「立ち上げ」などの用語を使用している。これらの用語は、計算機によって実行される動作に対する高度な抽象化であって、人間によって実行される動作と混乱してはならない。これらの用語に相当する実際の計算機の動作は、実装に従って変わる。

II. コンシューマー電子装置における複数オペレーティングシステムの支援方略
コンシューマー電子装置は、ますます複雑になっていて、ハードウェアからソフトウェアまでそれらの機能性の多くに対する支援に移っている。DVDなどのより古くてより単純なフォーマットは、それらは通常、より安価で、より単純なハードウェアにそれらの処理の多くを任せているが、多くの場合、それらの処理のいくつかをソフトウェアに残している。例えば、音声及び映像ストリームは、専用ハードウェアによって復号され得るが、メニュー処理(又は「ナビゲーション」)機能は、ソフトウェアで実装され得る。その結果、DVDなどの比較的単純なフォーマットを支援しているいくつかのコンシューマー電子装置は、それにもかかわらず複雑なソフトウェアを有するように発展している。

更に、異なるメディアフォーマット用の再生ツールは、異なるオペレーティングシステムの要件を有し得、更にそれらを処理する装置のソフトウェア環境を複雑にし得る。例えば、(本明細書において時としてHD DVDフォーマットとして参照される)HD DVDビデオディスク規格に従って符号化された高解像度映像コンテンツは、(マイクロソフト社又は他のオペレーティングシステムからのWindows(登録商標)CEオペレーティングシステムなどの)第1のオペレーティングシステムによって支援されている再生アプリケーションを使用して復号され得、(本明細書において時としてブルーレイフォーマットとして参照される)ブルーレイビデオディスク規格に従って符号化された高解像度映像コンテンツは、(リナックスベースのオペレーティングシステム、他のUnix(登録商標)ライク又はUnix(登録商標)改良型のオペレーティングシステム又は他のオペレーティングシステムなどの)第2のオペレーティングシステムによって支援されている再生アプリケーションを使用して復号され得る。デュアルフォーマットディスク(例えばブルーレイフォーマットのコンテンツ及びHD DVDフォーマットのコンテンツを有するディスク)は、更に別のオペレーティングシステムの要件を有し得る。特定の動作環境向けに設計されたソフトウェアのいくつかは、時間と共にそれらの動作環境上の依存性を有するように発展している。これら及び他の要素の結果として、コンシューマー電子装置は、ますます複雑なソフトウェア環境を有している。

コンシューマー電子装置による対処するべき問題は、費用対効果に優れた方法によって、それ自身のオペレーティングシステムを必要とするそれぞれ複数のソフトウェアアプリケーションをどのように実行するかである。一解決策は、支援されているメディアフォーマットのそれぞれタイプ向けのオペレーティングシステム及びソフトウェアアプリケーションを備えているプロセッサーを含むことである。更に費用対効果に優れた解決策は、異なるタイプの媒体が処理されるとき、複数のオペレーティングシステム及びソフトウェアアプリケーション(例えば、メディアフォーマット毎に最大1つのオペレーティングシステム及びソフトウェアアプリケーション)をストアし、プレーヤーにリブートさせることである。例えば、プレーヤーは、HD DVD用に1つのオペレーティングシステム、DVD用に別のもの及びCD音声用に別のものを有し得る。オペレーティングシステムと支援されているアプリケーションとの間のマッピングは、一対一である必要はない。例えば、DVD及びCD音声再生は、一オペレーティングシステム上で実行し得るが、HD DVD再生は、異なるオペレーティングシステム上で実行する。

しかしながら、複数のオペレーティングシステムに関連する潜在的な課題が存在する。第1のオペレーティングシステム上で実行するHD DVDフォーマット及び第1のオペレーティングシステムと全く異なる第2のオペレーティングシステム上で実行する(時としてブルーレイディスクフォーマットと呼ばれる)ブルーレイフォーマットの2つのデジタルビデオディスクメディアフォーマットを支援している装置を考えられたい。あるフォーマットから別のもの(例えば第2のオペレーティングシステムを使用し支援されているブルーレイ再生から第1のオペレーティングシステムを使用し支援されているHD DVD−映像再生)に移行するときに考慮されるべき一課題は、ディスクのローディング時間である。考慮すべき別の課題は、ユーザー体験に対する悪影響を減らすためにオペレーティングシステム間の切り替えをユーザーの目に見えないように保つと同時に、ユーザーに対し(それら自身のオペレーティングシステムを要求する)複数のソフトウェアアプリケーション間をどのように切り換えさせるかである。

記載した「マルチブート」技法及びツールによって、ユーザー体験に過度の干渉をせずにオペレーティングシステム間で装置を低コストで切り換えることができる。本明細書の記載において、用語「デュアルブート」は、時として2つのオペレーティングシステム間を切り換える装置を記載するために使用されているが、本明細書に論述した考えを、2つを超えるオペレーティングシステムを実行し得る装置に拡張できる。利用可能な2つのオペレーティングシステムを有するデュアルブート装置は、利用可能な2つ以上のオペレーティングシステムを有し得るマルチブート装置のサブセットである。用語マルチブート及びデュアルブートは、以下、詳細に説明する必要がある装置が、オペレーティングシステムの間を切り換えるためにリブートする必要がある要件を示していない。

マルチブート設計に対するオプションは、以下を含む。
1. オペレーティングシステムの移行は、2つ以上のオペレーティングシステムが同時に作動する協調的なハンドオフ(又は正常ハンドオフ)装置を用いて処理される。例えば、記載した実装においては、第1のオペレーティングシステムと第2のオペレーティングシステムとの間のハンドオフが実行されるが、第1及び第2のオペレーティングシステムの双方が実行し続けられる。
1つのオペレーティングシステムは、ハンドオフの後、アイドル状態となる。

2. オペレーティングシステムの移行は、オペレーティングシステムの1つに対するウォームブート関与するハンドオフ装置を用いて処理される。用語「ウォームブート」は、本明細書においては、装置が既に電源を入れられた後、ロードされるオペレーティングシステムを使って装置上で生じるオペレーティングシステムブートを参照するために使用される。

マルチブート設計オプション間の選択は、(例えばシングルコア又はデュアルコア)チップ選択、実装コスト及び外部に依存するような多くのエレメントに依存し得る。チップ設計の多くは、単一のプロセッサーコアを有していて、低レベルのハードウェアスレッド又は別の技術が複数のオペレーティングシステムを同時実行する支援を提供しない場合、一度に1つのオペレーティングシステムを支援する。別のチップ設計は、2つのプロセッサーコアを有していて、単一の対称型マルチプロセッシング向けオペレーティングシステムは、通常、その双方を使用しない。いかなる場合も、システムオンチップ設計の選択は多くの場合、単にプロセッサーコア以外にも依存していて、音声/映像復号、二次元グラフィックスアクセラレーター、復号化その他のためのユニットなどのチップ上の他の機能ユニットも考慮している。

A. 例
以下の例は、オペレーティングシステム間の移行を処理する技法を例示していて、移行時間及びユーザー体験に対する可能性ある影響などの要因を占めている。この章の例は、2つのオペレーティングシステムの切り換えを記載しているが、2つを超えるオペレーティングシステムの間を切り換えることが可能である。代替実装においては、以下の例に示されているステップは、再順序付けされ得るか、省略され得るか又は異なるステップに取り替えられ得る。例えば、オペレーティングシステムAからオペレーティングシステムBへの切り替えを記載している例は、リクエストされたオペレーティングシステムBの機能が、もはや使用されなくなった後か又はデフォルトによって、それがその次のユーザー動作に対応してオペレーティングシステムAにおける機能を使用するオペレーティングシステムAに戻るように拡張され得る。オペレーティングシステム間の移行は、必要とされるか又は望まれている間、継続し得る。最初にオペレーティングシステムAがプライマリオペレーティングシステムである例は、最初にオペレーティングシステムBがプライマリオペレーティングシステムであるように変更され得、又は逆もまた同様である。

本例は、スタンドアロン装置であり得るか又は別の装置の一部として含まれるデジタルメディアプレーヤーを用いて実装される。あるいはまた本例は、別のコンシューマー電子装置か又は別の計算機装置を用いて実装される。

1. 正常ハンドオフの例
例1:この正常ハンドオフシナリオにおいては、コンシューマー電子装置は、オペレーティングシステムA及びオペレーティングシステムBが、同時に実行するように構成されている。この例においては、オペレーティングシステムAは、プライマリオペレーティングシステムであって、装置のほとんどの機能を今、制御している。それはユーザーが、(例えば特定のフォーマットのビデオディスクを装置に装着すること)によって、オペレーティングシステムBによって提供される機能を使用することを試みていることを検出する。
例1のプロセスは、以下のステップを含む:
1. 識別された機能要件(単数又は複数)を(例えば不揮発性記憶装置に)ストア。
2. (必要な場合)、オペレーティングシステムBによって使用されるようにハードウェア制御のリソースをリリース。
3. オペレーティングシステムBへ制御を転送。
4. 上記のステップ1でストアされたデータを読み出すことによって、要求されている機能を(オペレーティングシステムBを用いて)決定。
5. 機能要件を満たす必要なハードウェアリソースを必要な場合、アクティブにして(オペレーティングシステムBを用いて)使用。1つのオペレーティングシステムから別のオペレーティングシステムへの移行が、いくつかのハードウェア(例えばディスプレイ)リソースに対して正常に実行され得、それらの(例えば現在のメニュー表示)状態は、移行時間を短縮し及び/又はユーザー体験に対する悪影響を緩和するために、オペレーティングシステムAからオペレーティングシステムBへのハンドオフを介し完全又は部分的に持続される。
6. 所望されている機能を(オペレーティングシステムBを用いて)提供。
例1のステップ3においては、制御は、1つ以上のメッセージをオペレーティングシステムBに送信することによって、オペレーティングシステムBに転送される。これらのメッセージは、いくつかの方法によって実装され得る。例えば、実装の中には、(オペレーティングシステムAがプロセッサーコアA上で実行し、オペレーティングシステムBがプロセッサーコアB上で実行する)オペレーティングシステム/プロセッサーコアそれぞれが、その中でハードウェアのメールボックスキューを実装するドライバーを有するものもある。メールボックスキューは、オペレーティングシステムAとオペレーティングシステムBとの間でメッセージ通信するために使用される単純な先入れ先出しキューであり得る。オペレーティングシステムに対する制御コンポーネント(例えばドライバー)は、そのキューに到着するメッセージを待っていて、そのオペレーティングシステム及びコアをスリープするようにそれに命令する。メッセージは、その値が、オペレーティングシステム間の正常なハンドオフの目的のために予約されているメモリーワード(例えば値1は、制御コンポーネントが、そのオペレーティングシステム/コアをスリープさせる必要があることを示していて、値2は、制御コンポーネントが、スリープ状態からそのオペレーティングシステム/コアを立ち上げる必要があることを示していて、他の値は、他の目的に予約されている)であり得る。あるいはまたメッセージ通信は、別のプロトコル及び/又は別のタイプのデータ構造を用いて実装される。

メールボックスキューの実装の例においては、オペレーティングシステムAが、それが再生しないフォーマットのディスクを検出したとき、それは(例えば2の値を有する)メッセージをメッセージ通信ドライバーに送信し、オペレーティングシステムBのドライバーのメールボックスキューにそのメッセージを送信する。オペレーティングシステムB用のドライバーは、メールボックスキュー内のメッセージを待っていて、オペレーティングシステムAからメッセージを受信し、(値が「立ち上げ」と示す)メッセージを解釈し、オペレーティングシステムB及びコアBを立ち上げるための(例えばドライバーを適切に再び可能にする)ステップを実行する。オペレーティングシステムAは、オペレーティングシステムBが首尾よく立ち上がると仮定し、立ち上げメッセージをオペレーティングシステムBに送信した後、それ自体をスリープさせる。あるいはまたオペレーティングシステムAは、それ自体をスリープモードに入れるようにオペレーティングシステムBからオペレーティングシステムAに命令する(例えば1の値を有する)メッセージを待っている。オペレーティングシステムBにそのようなメッセージを送信させることによって、オペレーティングシステムBが首尾よく目覚めた後、オペレーティングシステムAは、しばらくした後にそのようなスリープメッセージを取得しない場合、オペレーティングシステムAは、システム全体をリブートすること及び/又は別のステップを実行することをユーザーに知らせることによって、エラー処理を開始できる更に良いエラー処理を考慮している。

メッセージングプロセスでは、オペレーティングシステムBは、それが再生しないフォーマットのディスクに遭遇した場合、リバースされる。オペレーティングシステムBは、(例えば2の値を有する)メッセージをオペレーティングシステムAのドライバーのメールボックスキューにそのメッセージを送信するメッセージングドライバーに送信する。オペレーティングシステムA用のドライバーは、そのメールボックスキュー内のそのメッセージを待っていて、オペレーティングシステムBからのメッセージを受信し、(値が「目覚めなさい」と示す)メッセージを解釈し、オペレーティングシステムA及びコアAを立ち上げるためのステップを実行する。それ自体をスリープさせるオペレーティングシステムBは、立ち上げメッセージをオペレーティングシステムAに送信するかあるいはまた又はオペレーティングシステムAからのスリープメッセージを待っている。

例2:図2は、オペレーティングシステム同時に実行する際の機能を使用する正常ハンドオフモデルによる技法(200)の例を示す流れ図である。図2に示されている技法(200)は、上記例1のステップはいくつかの点で異なるが、それでも2つのオペレーティングシステム間のスムーズな移行を達成している。

技法(200)においては、ブートローダーがアクティブにされ(205)、オペレーティングシステムA及びBがブートされる(210,255)。図2においては、オペレーティングシステムは、アイドル状態で開始する(215,260)。オペレーティングシステムのどちらかが、他方のオペレーティングシステムからの立ち上げメッセージ(220,265)によって、アイドル状態(215,260)から立ち上げられ得る。これは、例えばユーザーが操作をリクエストするか、ナビゲーション動作を実行するか、機器構成設定をチェックするか、又は(例えばディスクを変えることによって)メディアコンテンツを変えたとき発生し得る。

立ち上がった後、アクティブにされたオペレーティングシステムは、そのオペレーティングシステムを使用して利用可能な主要機能を実行する(225又は270)。アクティブにされたオペレーティングシステムは、機能変更を検出すると(230又は275)、それがその新しい機能を実行し得るか否かチェックする(235又は280)。そうでない場合、オペレーティングシステムは、必要に応じて他方のオペレーティングシステムへ移行するために、ハードウェアリソースを準備し(240又は285)、立ち上げメッセージを他方のオペレーティングシステムに送信する(245又は290)。立ち上げメッセージを送信するオペレーティングシステムはその後、見込まれる立ち上げメッセージを待つためにアイドル状態に戻る。

図2の例においては、オペレーティングシステムA及びBは、ブートされた後(210,255)、初めにアイドル状態に入る(215,260)。あるいはまた1つ以上のオペレーティングシステムは、初めはアクティブ状態である。例えば、ブルーレイ及びHD DVDディスク双方を再生するビデオディスクプレーヤーにおいては、第1のオペレーティングシステムは、それが電源投入されたとき、HD DVDディスクがプレーヤーに存在するとき、初めアクティブ状態に入る。初めにアイドル状態に入り、立ち上げメッセージに対するチェックする代わりに、第1のオペレーティングシステムは、別のオペレーティングシステムが、(例えば、ユーザーがブルーレイディスクを挿入し)アクティブになることを必要とするイベントが発生するまで、第1のオペレーティングシステム上で実行中の(例えば、HD DVDメニューの起動又はHD DVD再生)ソフトウェアを使用して利用可能な主要機能を実行する。若しくは、装置は、1つのオペレーティングシステムがデフォルトによって始動されたときにアクティブであるように構成され得る。

2. ウォームブート例
例3:このウォームブートシナリオにおいては、オペレーティングシステムA及びオペレーティングシステムBは、同時ではなく個々に実行するように構成される。この例においては、オペレーティングシステムAは、プライマリオペレーティングシステムであって、装置のほとんどの機能を今、制御している。それは、ユーザーがオペレーティングシステムBによって提供される機能を使用することを試みていることを検出する。
例3の処理は、以下のステップを含む。

1. 識別された機能要件を不揮発性記憶装置にストア。
2. オペレーティングシステムの要件を不揮発性記憶装置にストア。
3. オペレーティングシステムAをシャットダウン。
4. リブート。
5. 上記のステップ2においてストアされたデータを読み出すことによって、要求されているオペレーティングシステムを(ブートローダーを用いて)決定。この例においては、これはオペレーティングシステムBである。
6. オペレーティングシステムBをブート。
7. 上記のステップ1においてストアされたデータを読み出すことによって、要求されている機能を(オペレーティングシステムBを用いて)決定。
8. 機能要件を満たす必要なハードウェアリソースを必要な場合、アクティブにし、(オペレーティングシステムBを用いて)使用。1つのオペレーティングシステムから別のオペレーティングシステムへの移行が、移行時間を短縮し、及び/又はユーザー体験に対する悪影響を緩和するために、いくつかのハードウェアリソース(例えばディスプレイ)に対して正常に実行され得、(例えば現在メニューを表示している)それらの状態は、オペレーティングシステムAからオペレーティングシステムBへのハンドオフを介し完全に又は部分的に持続されている。
9. 所望されている機能を(オペレーティングシステムBを用いて)提供。
例4:図3は、オペレーティングシステムが同時に実行しない装置において、異なるオペレーティングシステムの機能を使用するためのウォームブートモデルによる技法(300)の例を示す流れ図である。図3に示されている技法(300)は、上記の例3のいくつかの点においてステップと異なるが、それでも2つのオペレーティングシステム間のスムーズな移行を達成している。

技法(300)においては、ブートローダーがアクティブにされ(305)、オペレーティングシステムBがブートされるか否か示すフラグがチェック(310)される。フラグがセットされていた場合、装置は、オペレーティングシステムBをブートし(315)、オペレーティングシステムBを使用して利用可能な主要機能を実行する(320)。あるいはまたフラグ以外のインジケーターが、実行される機能及び/又はどのオペレーティングシステムが使用されるか示すために使用される。

機能変更が検出された場合(325)、オペレーティングシステムは、それが新しい機能を支援しているか否か決定する(330)。それが新しい機能を支援していない場合、その機能に関する情報が不揮発性記憶装置にストアされる(335)。ブートフラグが、他方のオペレーティングシステムを使用する必要があることを示すためにリセットされ、リブートが発生する(340)。

リブート時(340)、ブートローダーがアクティブにされ(305)、ブートフラグは、オペレーティングシステムAがブートされることを示す(310)。装置は、オペレーティングシステムAをブートし(350)、オペレーティングシステムAを使用して利用可能な主要機能を実行する(355)。機能変更が検出された場合(360)、オペレーティングシステムは、それが新しい機能を支援しているか否か決定する(365)。それが新しい機能を支援していない場合、その機能に関する情報が、不揮発性記憶装置にストアされ(370)、装置は、オペレーティングシステムBへリブートし得る(375)。

リブート(340,375)は、装置が電源投入された後にリブートが発生するのでウォームブートである。オペレーティングシステムの典型的なウォームブートの一特徴は、オペレーティングシステムのあらゆるものが再初期化されないことである。ウォームブートの機能性の例は、−ラップトップ計算機がスタンバイ又はハイバネーションモードに入ったとき、いくつかの状態がセーブされ、ラップトップ計算機が再び立ち上がったとき、それが停止したところからもっと素早く通常の動作を再開し得る−ラップトップ計算機における「スタンバイ」又は「ハイバネーション」機能を含む。

B.議論
上記の例1、2、3及び4は、1つ以上のオペレーティングシステム環境がプライマリオペレーティングシステムによってホストされていて、環境すべてが、必要なハードウェアリソースへのアクセスを共有する(時として仮想化技法として参照される)技法とは異なる。例えば、上記の例1、2、3及び4のオペレーティングシステム移行は、オペレーティングシステムを切り換えるためのユーザーによる意識的な行為から必ずしも生じるわけでなくてそれらは、別のオペレーティングシステムをホストする一オペレーティングシステムも別のオペレーティングシステムが実行するその上のプラットフォームもエミュレートする1つのオペレーティングシステムも関与しない。ユーザーは、その装置上で利用可能な複数のオペレーティングシステムのいかなる認識も有する必要はない。

記載した実装に関する利点及び改善の中には、特定の機能性に必要とされるオペレーティングシステムの間で移行を実行する総時間の縮小及びユーザーにとって目立たないオペレーティングシステム移行を含むものもある。

様々な機能を範囲とするために、2つのオペレーティングシステムを使用する装置の例を考えられたい。この装置の例においては、オペレーティングシステムAが、光ディスクメディアの再生を支援すると同時にオペレーティングシステムBが、インターネットの閲覧を支援している。ユーザーがインターネットを閲覧している間、オペレーティングシステムBは、その装置の下で制御されている。ユーザーが次に光ディスクを挿入し、装置上の「再生」ボタンを押下すると、ユーザーは通常、オペレーティングシステムBからオペレーティングシステムAへ切り換えのために、ユーザーによる特定の動作をせずに光メディアの再生がもたらされることを期待している。記載した実装によって、オペレーティングシステム移行及び選択をユーザーから隠すことができる。

通常、オペレーティングシステムがブートし、デバイスドライバーがロードされると、デバイスドライバーが、そのハードウェアを既知の状態に初期化する。ユーザーの目に見える画面又は外部ディスプレイの場合、この初期化は、ユーザーに知覚可能なちらつきをもたらし得るか又はそれは、外部ディスプレイに、装置の信号との同期をしばらく間、失わせ得る。オペレーティングシステムの実体それぞれに対するデバイスドライバーの実装を変更することによって、初期化フェーズは、現在の表示状態を明らかにするように実行され得、ちらつき、破損又は信号損失をもたらすような不要な初期化ステップを実行させない。これは、ユーザーに対してオペレーティングシステム間で更に目立たない移行を実行するためにどのようにリブートシーケンスを設計し得るかに関する一例である。

III.音声及び画像再生装置の実装例
この章は、音声及び画像再生に関する異なるメディアフォーマット(例えばビデオディスクフォーマット)を処理する媒体装置に対するオペレーティングシステムの移行を処理する特定の技法及びツールの例を含む。代替の実装においては、以下の例に示されているステップは、再順番付けされ得るか、省略され得るか又は異なるステップに置換され得る。

例えば、第2のオペレーティングシステムから第1のオペレーティングシステムへの切り替えを記載している例は、第1のオペレーティングシステムを用いて支援されているリクエストされた機能がもはや使用されていなくなった後か、又は第2のオペレーティングシステムを用いて支援されている機能を使用するその後のユーザーの動作に応答し、デフォルトによって第2のオペレーティングシステムに元に戻るように拡張され得る。オペレーティングシステム間の移行は、必要されるか又は望まれている間、継続し得る。初めにプライマリオペレーティングシステムとして第2のオペレーティングシステムを指定する例は、初めにプライマリオペレーティングシステムとして第1のオペレーティングシステムを指定するように変更され得、又は逆もまた同様である。別の代替手段として装置は、異なるメディアフォーマットを支援するために、2つの第1のオペレーティングシステム以外のオペレーティングシステムを使用し得る。本章の例は、(例えばHD DVD、ブルーレイ、DVD映像再生又はCD音声再生の)再生動作の実行を記載しているが、オペレーティングシステムは、特定のオペレーティングシステムに特有か又は2つ以上のオペレーティングシステムに共通の別の動作を実行し得る。本章における例は、オペレーティングシステム間の移行をトリガーし得るイベントとしてディスクの変更を記載しているが、特定のオペレーティングシステムを用いて支援されているユーザー選択機能などの他のイベントもオペレーティングシステム間の移行をトリガーし得る。本章における例は、2つのオペレーティングシステム間の切り換えを記載しているが、2つを超えるオペレーティングシステムを切り換えることが可能である。

A. メディアフォーマット変更のための正常ハンドオフ
実装の中には、メディアフォーマット変更用の正常ハンドオフモデルが、2つ以上のプロセッシングコアそれぞれが異なるメディアフォーマットを支援している異なるオペレーティングシステムを実行するマルチコアの選択処理を含むものもある。正常ハンドオフモデルは、異なるフォーマットのコンテンツに対する更に短いロード時間をもたらし得る。

図4は、HD DVDディスク再生用に第1のオペレーティングシステムを使用し、別のディスクフォーマットのディスク再生用に第2のオペレーティングシステムを使用する装置における正常ハンドオフ移行の処理に関する技法(400)の例を示す流れ図である。図4に示されている例においては、ブートローダーがアクティブにされ(405)、オペレーティングシステムA及びBがブートされる(410,455)。オペレーティングシステムBは、まずディスクが装置に存在しているか否かチェックする(460)。ディスクが存在している場合、オペレーティングシステムBは、ディスクがHD DVDディスクであるか否か決定する(465)。ディスクが、HD DVDディスクでない場合、オペレーティングシステムBは、オペレーティングシステムを使用し支援されている主要機能(例えばブルーレイ、DVD又はCDの音声再生(470))を実行し得る。ディスクの変更を検出すると(475)、オペレーティングシステムは、新しいディスクがHD DVDディスクであるか否か決定する(465)。

オペレーティングシステムBが、始動時又はディスクの変更後、ディスクをチェックしたとき、ディスクがHD DVDディスクである場合、オペレーティングシステムは、必要に応じオペレーティングシステムAへの移行のためにハードウェアリソースを準備し(480)、立ち上げメッセージをオペレーティングシステムAへ送信する(485)。オペレーティングシステムBは、アイドル状態に入って(490)、オペレーティングシステムAからの立ち上げメッセージをチェックする(495)。立ち上がった後、オペレーティングシステムBは、再びそのオペレーティングシステムを使用して支援されている主要機能(例えばブルーレイ、DVD又はCDの音声再生(470))を実行し得る。

図4に示されている例においては、オペレーティングシステムAは、ブートされたとき、初めにアイドル状態(415)に入る。オペレーティングシステムAは、オペレーティングシステムBからの立ち上げメッセージをチェックする(420)。立ち上がった後、オペレーティングシステムAは、そのオペレーティングシステムを使用して支援されている主要機能(例えばHD DVD映像の再生(425))を実行し得る。

ディスクの変更を検出すると(430)、オペレーティングシステムは、新しいディスクがHD DVDディスクであるか否かチェックする(435)。そうでない場合、オペレーティングシステムは、必要に応じてオペレーティングシステムBへの移行のためにハードウェアリソースを準備し(440)、立ち上げメッセージをオペレーティングシステムBに送信する(445)。オペレーティングシステムAは、次に見込まれる立ち上げメッセージを待つアイドル状態に戻り得る(415)。

実装の中には、オペレーティングシステムそれぞれに関するアイドル状態の目的が、オペレーティングシステムそれぞれがアイドル状態のときの装置内のハードウェアへのアクセス回避であるものもある。例えば、1つのオペレーティングシステムが、光ドライブユニットにアクセス中である間、別のアイドル状態の別のオペレーティングシステムが、そのドライブへのアクセスを防ぎ得るものもある。アイドル状態は、異なる方法で処理され得る。例えば、オペレーティングシステムにおけるデバイスドライバーは、アイドルモードを支援するように符号化され得る。若しくは、オペレーティングシステムが、デバイスドライバーを動的にロードし、アンロードすることを支援している場合、ドライバーは、オペレーティングシステムが基盤となるハードウェアへのアクセスを防ぐために、アンロードされ得る。若しくは、オペレーティングシステムの中には、それらの状態が、メモリーにセーブされ、その後、停止し、後で素早く再始動される得、オペレーティングシステムがスリープさせられ得るものもある。そのようなスリープ機能は、マイクロソフト社製のWindows(登録商標)オペレーティングシステムにおけるハイバネーション機能を含む。

同一の機構が、装置上のオペレーティングシステムそれぞれにアイドル状態を実装するために、使用される必要はない。例えば、ハイバネーションは、1つのオペレーティングシステムによって支援され得るが、別のオペレーティングシステムは、ドライバーをロードしアンロードすることを支援するだけである。ハイバネーションを支援しているオペレーティングシステムは、ハイバネーション状態に入ることによって、アイドルモードを実施し得るが、別のオペレーティングシステムが、デバイスドライバーをアンロードすることによって、アイドルモードを実施し得る。アイドルモードを直接、支援しているドライバー及びアンロードとデバイスドライバーとの組み合わせは、例えばオペレーティングシステム上のデバイスドライバーのサブセットだけがアンロードされ得る場合、使用され得る。

このモデルに対する代替手段は、装置におけるハードウェアコンポーネントを、ファームウェアレイヤを通過するように抽象化することである。オペレーティングシステムにおけるドライバーは、ハードウェアを直接用いる代わりに抽象化されたコンポーネントと通信し得る。これは、オペレーティングシステムの仮想化環境又はデバイスアクセスは、物理バスが別の装置を介し通過され得る(例えばネットワークドライバーがUSBバスを越えてネットワークカードと通信し得る)レイヤを介し、抽象化されるシステムで使用されるモデルに対するBIOSの概念と同様である。アイドルモードの機能性は、次に装置へのアクセスを抽象化する中間レイヤにおいて実装され得る。

図5には、ファームウェア(530)及び共有ハードウェアリソース(540)を有するデュアルコア設計を用いたデュアルブート装置(500)の例を示す。図5を参照すると、(Linuxベースのオペレーティングシステム、別のUnix(登録商標)ライク又はUnix(登録商標)改良型のオペレーティングシステム又は他のオペレーティングシステムなどの)第2のオペレーティングシステム(510)は、ブルーレイプレーヤーのスタック(514)及び第2のオペレーティングシステム(510)に特有のドライバー(512)を支援している。(Windows(登録商標)CEオペレーティングシステム又は他のオペレーティングシステムなどの)第1のオペレーティングシステム(520)は、HD DVDプレーヤーのスタック(524)及び第1のオペレーティングシステム(520)に特有のドライバー(522)を支援している。ファームウェア(530)は、ブートローダーデーモン(532)を含んでいて、入力/出力サービス(534)を提供している。ファームウェア(530)は、特定のオペレーティングシステムとのどんな提携も有さずブートロード及びディスクのID検出状態マシンを仲介するために使用される。入力/出力サービス(534)は、オペレーティングシステム(510,520)双方に関するハードウェア装置(550)の共有ハードウェアリソース(540)に対する単一エントリーポイントを可能にする。入力/出力サービス(534)は、従来のBIOSサービスと同様である。入力/出力サービス(534)は単純であるが、異なるオペレーティングシステム特有のドライバー(512,522)が、大きく性能を犠牲にすることもなく、既存のドライバーに対し多くの根本的変更もせずに移植可能なほど強力である。Unix(登録商標)システム上で見出されるシステムコール「ioctl」に関連付けられて使用される単純な読み出し/書き込み/オープン/クローズなどのプログラム動作によって、アプリケーションは、デバイスドライバーと制御又は通信可能になる。

正常ハンドオフモデルは、更なるメモリーと、ハンドオフモデルを調整するためのハードウェアリソース共有及び/又はオペレーティングシステム間の通信オーバーヘッドに対処するオペレーティングシステムに対する修正と、を使用し得るが、移行時間を減らし、ユーザー体験を改善できる。エンジニアリングコストを削減するためには、オペレーティングシステムにおいては多くの場合、可能な限り作業しないことが望ましい。標準のデバイスドライバーを使用することが多くの場合、好まれる。

B. メディアフォーマット変更用ウォームブートモデル
図6は、ウォームブートモデルによる利用可能な第1及び第2のオペレーティングシステムを有する装置において、ディスクフォーマットの変更を処理するオペレーティングシステムが同時実行しない技法(600)の例を示す流れ図である。技法(600)において、ブートローダーがアクティブにされ(605)、HD DVD再生が実行されるか否かを示すフラグがチェックされる(610)。フラグがセットされている場合、装置は、第1のオペレーティングシステムをブートし(615)、第1のオペレーティングシステムによって支援されている機能(例えばHD DVDの再生(620))を実行する。あるいはまたフラグ以外のインジケーターが、実行される機能及び/又はどのオペレーティングシステムが使用されるかを示すために使用される。ディスクの変更が検出された場合(625)、オペレーティングシステムは、それが新しいディスクを支援しているか否か決定する(630)。新しいディスクを支援していない場合、HD DVDフラグがクリアされ(635)、リブート時(640)、ブートローダーがアクティブにされ(605)、クリアされたHD DVDフラグは、第2のオペレーティングシステムがブートされることを示す(610)。

リブート後(640)か又は初めにHD DVDフラグがセットされていない場合、装置は、第2のオペレーティングシステムをブートする(655)。第2のオペレーティングシステムは、初めにディスクが装置に存在しているか否かチェックする(660)。ディスクが存在している場合、第2のオペレーティングシステムは、そのディスクがHD DVDディスクであるか否か決定する(665)。そのディスクがHD DVDディスクでない場合、第2のオペレーティングシステムは、オペレーティングシステム特有の主要機能(例えばブルーレイ、DVD又はCDオーディオの再生)を実行し得る(670)。ディスクの変更を検出すると(675)、オペレーティングシステムは、新しいディスクが、HD DVDディスクであるか否か決定する(665)。

第2のオペレーティングシステムが始動時又はディスク変更後、ディスクをチェックしたとき、ディスクがHD DVDディスクだった場合、オペレーティングシステムはHD DVDフラグをセットし(680)、リブート時(685)、ブートローダーがアクティブにされ(605)、HD DVDフラグは、第1のオペレーティングシステムがブートされることを示す(610)。

リブート(640,685)は、装置が電源投入された後に生じるのでウォームブートである。あるいはまたオペレーティングシステムを直接にロードして開始するロジックが、ブートローダーを介して循環するよりもむしろ、使用され得る。

異なるオペレーティングシステムのリブート又は別のロード及び起動時、いくつかのハードウェアリソースの状態が、ユーザー体験に対する悪影響を緩和するように異なるオペレーティングシステムの制御を介し、完全又は部分的に持続され得る。例えば、高解像度マルチメディアインタフェース(「HDMI」)コントローラーの状態もリセットされ得ず、フロントパネルの表示状態もリセットされ得ない。

前述したウォームブートモデルに対していくつかの選択及び拡張があり得る。例えば、ディスクタイプの識別が、一旦書き込まれ得、装置用のブートローダーに存在し得る。ブートローダーは、ディスクタイプの識別に基づいて正しいオペレーティングシステムを選択し得る。ディスクの変更は、装置を構築するための技術的努力を簡単化し得るブートローダーロジックを取得するために、シャットダウン及びリブートを用いて処理され得る。

別の例として時間を消費する動作が、並行に処理され得る。例えば、メモリーからオペレーティングシステム及び再生アプリケーションをロードし、メディアタイプを識別する処理は、多大な時間がかかり得る。

図7は、ウォームブートのメディアフォーマットの切り換え動作を並列に実行する技法(700)の例を示す流れ図である。図7に示されている例においては、現在のオペレーティングシステムによって支援されている再生アプリケーションが、初めに実行している。ディスクトレーがオープンされ(710)、装置が現在の再生プロセッサーを止めて再生アプリケーションを停止する(720)。(このステップは任意であるが、次のステップのためのメモリーをいくらかでも解放するために望まれ得る。)装置は、(空きメモリーが十分にある場合、)別のオペレーティングシステムをメモリーへロードし始める(730)。新しいメディアが挿入されたとき(740)、システムは、そのメディアタイプを識別する(750)。オペレーティングシステムのロード(730)は、長時間の動作であり得るので、装置は、オペレーティングシステムのロード(730)を妨げずに別の1つ以上のステップ(例えばメディアタイプの識別(750))と並行に続行し得る。メディアタイプの識別(750)も長時間の動作であり得るので、それも別の1つ以上のステップ(例えばオペレーティングシステムのロード(730))と同時に続行する。

装置は、現在のオペレーティングシステムが新しいメディアを支援しているか否かチェックする(760)。新しいメディアタイプが、既に実行している現在のオペレーティングシステムを使用する場合、新しいオペレーティングシステムのロード(730)が中止され、適切なプレーヤーアプリケーションが新しいメディアに対して起動される(770)。新しいメディアタイプが、ロードされるオペレーティングシステムを使用する場合、その装置は、必要な場合、オペレーティングシステムのロードが終えるのを待ってリブートし、メモリーの新しいオペレーティングシステムを再始動する(780)。

ウォームブートの実装の中には、いくつかの正常ハンドオフの実装と比較した場合、特定のハードウェアプラットフォームに依存せず、更なるハードウェアリソースも必要とせず、全体の複雑さも有しないものもある。ウォームブート実装の中には、異なるコンテンツフォーマットに対しコンテンツのロード時間が増大するコストを含み得るものもある。

IV. 拡張及び代替手段
デバイスセットアップアプリケーションは、一般に任意の記録媒体に接続されていない潜在的に複雑なソフトウェアアプリケーションである。ビデオディスクプレーヤーに関しては、デバイスセットアップ機能は、多くの場合、セットアップディスクを挿入することによるよりもむしろ、リモートコントローラー上のボタンを介しアクセスされる。単一のオペレーティングシステムが、装置において同時に実行しているときは、セットアップがオペレーティングシステムそれぞれに実装され得、装置を開発する技術的な努力を複雑にするが、より良好なユーザー体験をもたらし得る。若しくは、セットアップは、単一のオペレーティングシステム上に実装され得、そのセットアップを支援しているオペレーティングシステムへのセットアップ入力が、その装置をリブートすることを要求する場合、見込まれるユーザー体験から損なうコストの技術的努力を簡素化する。ハイブリッド手法は、縮小した技術努力と増大した利便性とを混合したものを得るために使用され得る。頻繁にアクセスされる(例えば再生中、字幕を利用可能にするか又は利用不可能にする)動作が、2つ以上のオペレーティングシステムに実装され得、それほど頻繁でない(例えばネットワーク接続を設定する)動作が、単一のオペレーティングシステム上に実装され得る。複数のオペレーティングシステムが、同時に装置上で実行されるとき、セットアップは、単一のオペレーティングシステム上に実装され得、その装置の現在のメディアタイプにかかわらずそれでもなお機能し得る。例えば、セットアップは、1つのCPUコアの上で実行する第2のオペレーティングシステム上に実装され得、HD DVDの再生を制御する第1のオペレーティングシステムに渡されるユーザーインタフェースを実現する。ユーザーインタフェースは、映像再生の代わりか又はそれに加えられて(例えば一緒に組み合わされているか又は別々のウィンドウ画面上に)表示され得る。

装置は、ウォームブートと正常ハンドオフオペレーティングシステム移行技法との組み合わせを実装し得る。例えば、装置は、リソース利用、移行時間及びユーザー体験への影響の可能性などの要因に基づいて、正常ハンドオフ移行又はウォームブート移行を使用する必要があるか否か決定し得る。このようにして装置は、オペレーティングシステム間の移行処理において柔軟性を有し得る。

メディアフォーマットの中には、拡張マークアップ言語(「XML」)の支援、ECMAScript(標準スクリプト言語)の支援又はJava(登録商標)支援などの再生及びメニューナビゲーションの支援を超えた高機能な支援を要求するものもある。これらの類の高度な機能に関する支援を要求する機能選定もオペレーティングシステム移行を駆動し得る。

デュアルフォーマットディスクの使用は、ディスクの変更に関連したイベントと同様のオペレーティングシステム移行をトリガーするイベントをもたらし得る。本明細書に記載した技法及びツールは、デュアルフォーマットディスクと関連し使用され得る。

様々な実施形態を参照して我々の発明の原理を記載し例示しているので、その様々な実施形態がそのような原理から逸脱せずに配置及び詳細において変更され得ることが認められよう。本明細書に記載したプログラム、プロセス又は方法が別の方法で示されていない場合、特定の任意の計算環境タイプに関連も限定もされないことを理解されたい。様々なタイプの汎用又は専用の計算環境が、本明細書に記載した教示による動作を用いて使用されるか又は実行し得る。ソフトウェアで示されている実施形態のエレメントが、ハードウェアで実装され得、逆もまた同様である。

開示された発明の原理が適用される可能性のある多くの実施形態を考慮して、例示されている実施形態は、本発明の好ましい例に過ぎずないことを認められたいのであって、本発明の範囲を限定するように捉えられるべきでない。もっと正確に言えば、本発明の範囲は、以下の請求項によって定義される。

したがって我々は、これらの請求項の範囲及び趣旨内に収まるものすべてを我々の発明として主張する。

100 計算環境
110 処理ユニット
115 処理ユニット
120 メモリー
125 メモリー
130 基本構成
140 記憶装置
150 入力装置
160 出力装置
170 通信接続装置
180 ソフトウェア
500 デュアルブート装置
510 オペレーティングシステム
512 ドライバー
514 スタック
520 オペレーティングシステム
522 ドライバー
524 スタック
530 ファームウェア
532 ブートローダーデーモン
534 入力サービス/出力サービス
540 共有ハードウェアリソース
550 ハードウェア装置

Claims (12)

  1. 異なるメディアフォーマットで符号化された異なるデジタルメディア情報を再生する方法であって、
    メモリー内に、同時に実行されている第1のアイドル状態の第1のオペレーティングシステムアクティブ状態の第2のオペレーティングシステムを有しているデジタルメディアプレーヤーにおいて第1のデジタルメディア情報を受信するステップであって、前記第1のデジタルメディア情報が、第1のメディアフォーマットに従って符号化されているものと、
    前記第1のオペレーティングシステムを前記第1のアイドル状態から立ち上げるステップであって、前記第1のオペレーティングシステムが、前記第1のメディアフォーマット用のメディア再生を支援しており、前記第2のオペレーティングシステムが、前記第1のメディアフォーマットと異なる第2のメディアフォーマット用のメディア再生を支援しており、前記第1のオペレーティングシステムを前記第1のアイドル状態から立ち上げるステップが、前記アクティブ状態の前記第2のオペレーティングシステムから前記第1のアイドル状態の前記第1のオペレーティングシステムに立ち上げメッセージを送信するステップを含むものと、
    前記第1のオペレーティングシステムによって提供された動作環境において実行する第1のアプリケーションを使用し、前記第1のデジタルメディア情報を再生するステップと、を特徴とする方法。
  2. 更に、
    前記第1のオペレーティングシステムによって使用するためのリソースを解放するために、前記第2のオペレーティングシステムを第2のアイドル状態にするステップを含む請求項1記載の方法。
  3. 更に、
    前記デジタルメディアプレーヤーにおいて第2のデジタルメディア情報を受信するステップであって、前記第2のデジタルメディア情報が、前記第2のメディアフォーマットに従って符号化されているものと、
    前記第2のオペレーティングシステムによって使用するためのリソースを解放するために、前記第1のオペレーティングシステムを第1のアイドル状態にするステップと
    前記第2のオペレーティングシステムを前記第2のアイドル状態から立ち上げるステップと
    前記第2のオペレーティングシステムによって提供された動作環境において実行する第2のアプリケーションを使用し、前記第2のデジタルメディア情報を再生するステップと、を含む請求項2記載の方法。
  4. 更に、
    ナビゲーション又は機器構成機能に関するリクエストを受信するステップと、
    前記第2のオペレーティングシステムによって使用するためのリソースを解放するために、前記第1のオペレーティングシステムを第1のアイドル状態にするステップと
    前記第2のオペレーティングシステムを前記第2のアイドル状態から立ち上げるステップと
    前記第2のオペレーティングシステムによって提供された動作環境において、前記ナビゲーション又は機器構成機能に関するメニューを表示するステップと、を含む請求項2記載の方法。
  5. 前記デジタルメディアプレーヤーが、スタンドアロン装置、通信装置の一部又はディスプレイ装置の一部であることを特徴とする請求項1記載の方法。
  6. 前記第1のデジタルメディア情報が、高解像度映像コンテンツを含んでいて、前記第1のメディアフォーマットが、高解像度映像フォーマットであることを特徴とする請求項1記載の方法。
  7. 前記第1のオペレーティングシステムを前記第1のアイドル状態から立ち上げるステップが、前記第1のデジタルメディア情報が符号化されている前記第1のメディアフォーマットの識別に応答することを特徴とする請求項1記載の方法。
  8. 前記第1のオペレーティングシステムを前記第1のアイドル状態から立ち上げるステップが、前記第1のオペレーティングシステムによって支援されているナビゲーション又は機器構成機能のユーザー選択に応答することを特徴とする請求項1記載の方法。
  9. 数のハードウェアのコンポーネントの少なくとも1つの状態を持続するステップと、
    前記複数のハードウェアコンポーネントの制御を前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへ転送するステップと、
    を更に含むことを特徴とする請求項1記載の方法。
  10. 前記少なくとも1つのハードウェアコンポーネントが、前記デジタルメディアプレーヤーに接続されているディスプレイであって、前記持続された状態が、表示情報を含むことを特徴とする請求項記載の方法。
  11. 前記表示情報が、メニューを含むことを特徴とする請求項10記載の方法。
  12. ファームウェアレイヤ(530)が、前記複数のハードウェアコンポーネントに抽象アクセスする入力/出力サービス(534)を提供していて、前記ファームウェアレイヤが、前記第1のアイドル状態(260)に対するアイドルモード機能を実装していることを特徴とする請求項記載の方法。
JP2009549155A 2007-02-06 2008-01-15 メディア装置における複数のオペレーティングシステム支援 Active JP5215324B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US89990907P true 2007-02-06 2007-02-06
US60/899,909 2007-02-06
US11/999,605 US8046570B2 (en) 2007-02-06 2007-12-06 Supporting multiple operating systems in media devices
US11/999,605 2007-12-06
PCT/US2008/051045 WO2008097695A1 (en) 2007-02-06 2008-01-15 Supporting multiple operating systems in media devices

Publications (2)

Publication Number Publication Date
JP2010518512A JP2010518512A (ja) 2010-05-27
JP5215324B2 true JP5215324B2 (ja) 2013-06-19

Family

ID=39677180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009549155A Active JP5215324B2 (ja) 2007-02-06 2008-01-15 メディア装置における複数のオペレーティングシステム支援

Country Status (14)

Country Link
US (1) US8046570B2 (ja)
EP (1) EP2109818B1 (ja)
JP (1) JP5215324B2 (ja)
KR (1) KR101505209B1 (ja)
CN (1) CN101606128B (ja)
AU (1) AU2008214236B2 (ja)
BR (1) BRPI0806729A2 (ja)
CA (1) CA2675523A1 (ja)
IL (1) IL199728D0 (ja)
MX (1) MX2009008223A (ja)
RU (1) RU2451989C2 (ja)
TW (1) TW200841710A (ja)
WO (1) WO2008097695A1 (ja)
ZA (1) ZA200905419B (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI559227B (zh) * 2009-01-12 2016-11-21 幸福居福爾摩沙股份有限公司 具有內建雙可隨機關閉開啟電源作業裝置的電腦系統
WO2010099529A1 (en) * 2009-02-27 2010-09-02 Keicy Chung Central processing unit capable of multi-boot using disjoint memory spaces
US8327174B2 (en) * 2009-03-20 2012-12-04 Hewlett-Packard Development Company, L.P. Loading operating systems using memory segmentation and ACPI based context switch
KR101562973B1 (ko) * 2009-05-22 2015-10-26 삼성전자 주식회사 메모리 장치 및 메모리 장치의 동작 방법
TWI395139B (zh) * 2009-05-27 2013-05-01 Apacer Technology Inc 電子裝置及其開機方法
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US8743128B2 (en) 2009-09-01 2014-06-03 Blackberry Limited Mobile wireless communications device with reset functions and related methods
US8832421B2 (en) * 2009-10-20 2014-09-09 Blackberry Limited Enhanced fast reset in mobile wireless communication devices and associated methods
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
CN102104936B (zh) * 2009-12-18 2014-11-05 联想(北京)有限公司 系统状态切换方法及便携终端
US9665712B2 (en) 2010-02-22 2017-05-30 F-Secure Oyj Malware removal
CN102207875B (zh) 2010-03-30 2014-11-12 鸿富锦精密工业(深圳)有限公司 媒体数据播放装置及其重新启动方法
US9010641B2 (en) 2010-12-07 2015-04-21 Hand Held Products, Inc. Multiple platform support system and method
KR20120066846A (ko) * 2010-12-15 2012-06-25 삼성전자주식회사 모바일 디바이스
JP2012155600A (ja) * 2011-01-27 2012-08-16 Fujitsu Ltd 情報処理装置、制御方法、および制御プログラム
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
KR101292751B1 (ko) * 2011-07-04 2013-08-05 이호준 다중 운영 체제 기반의 홈 서버 장치
EP2771784A4 (en) * 2011-10-28 2015-06-24 Intel Corp Switching between operational contexts
JP2014531099A (ja) * 2011-10-28 2014-11-20 インテル・コーポレーション 動作コンテキストの切り替え
TW201324354A (zh) * 2011-12-12 2013-06-16 Wistron Corp 自動化連續安裝作業系統的方法
CN103294545B (zh) 2012-02-23 2017-07-04 纬创资通股份有限公司 切换双操作系统的方法以及电子装置
TWI457786B (zh) * 2012-02-23 2014-10-21 Wistron Corp 雙作業系統共用加密設定之方法以及運用該方法之電子裝置
CN103294562B (zh) 2012-02-23 2017-03-01 纬创资通股份有限公司 双操作系统共用周边装置的方法以及电子装置
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
CN103488466B (zh) * 2012-06-11 2017-02-08 联想(北京)有限公司 用于执行应用程序的方法和装置
US10064240B2 (en) * 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
TW201525869A (zh) * 2013-10-23 2015-07-01 Insyde Software Corp 用於雙作業系統記憶體切換的系統及方法
CN104142859B (zh) * 2014-07-31 2016-10-26 努比亚技术有限公司 一种双系统的快速切换方法、装置和移动终端
CN106776389A (zh) * 2016-11-29 2017-05-31 广州视源电子科技股份有限公司 存储器的访问方法及多系统终端
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3018336B2 (ja) * 1987-10-31 2000-03-13 株式会社東芝 情報処理装置
JPH0527954A (ja) * 1991-07-18 1993-02-05 Toshiba Corp コンピユータシステム
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
US5623696A (en) 1995-05-30 1997-04-22 International Business Machines Corporation System for formatting a request into a packet which can be read by plurality of operating systems for providing a driver for a storage device
JPH09297747A (ja) * 1996-04-30 1997-11-18 Mitsubishi Electric Corp 多目的システムlsi装置及びパーソナルコンピュータ
FI108478B (fi) 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
JP2000020285A (ja) * 1998-06-26 2000-01-21 Toshiba Corp コンピュータシステム
EP1037133A1 (en) 1999-03-15 2000-09-20 International Business Machines Corporation Method and apparatus for alternation between instances of operating systems in computer systems
US6631101B1 (en) * 1999-03-16 2003-10-07 Gateway, Inc. System, method, and software for recovering from interruption of DVD playback
JP2001117783A (ja) * 1999-08-10 2001-04-27 Seiko Epson Corp プログラム起動システム及びプログラム起動制御方法
US6763458B1 (en) 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
WO2001046819A2 (en) 1999-12-21 2001-06-28 General Instrument Corporation Abstract device driver model for the portability of device drivers across different operating system platforms
JP2001282558A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US20040226020A1 (en) 2000-09-28 2004-11-11 Ati Technologies, Inc. Method and system for using general and appliance operating systems in a single information handling device
US7890741B2 (en) * 2000-12-01 2011-02-15 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US6654827B2 (en) 2000-12-29 2003-11-25 Hewlett-Packard Development Company, L.P. Portable computer system with an operating system-independent digital data player
US7231531B2 (en) 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
JP2003036174A (ja) * 2001-07-25 2003-02-07 Hitachi Ltd 車載端末装置
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
JP4026383B2 (ja) * 2002-03-20 2007-12-26 セイコーエプソン株式会社 情報処理システム、情報処理端末、外部記憶装置、情報処理端末制御用プログラム及び外部記憶装置制御用プログラム
US7337330B2 (en) 2003-03-10 2008-02-26 Cyberview Technology, Inc. Universal game download system for legacy gaming machines
US7853740B2 (en) 2003-09-18 2010-12-14 Riip, Inc. Keyboard video mouse (KVM) switch for transmission of high quality audio with 64-bit data packets wherein transmissions of data packets are wherein a defined time limit
GB0400658D0 (en) 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Portable device for receiving media content
JP2005202691A (ja) * 2004-01-15 2005-07-28 Sharp Corp 情報処理装置、そのプログラムおよび記録媒体
TW200525421A (en) * 2004-01-30 2005-08-01 Intervideo Digital Technology Corp Structure of shared application program in operating system and method thereof
TWI234938B (en) * 2004-02-12 2005-06-21 Intervideo Digital Technology Architecture of operating system sharing application program with a remote-control feature and its method
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7529921B2 (en) 2004-12-17 2009-05-05 Cardiac Pacemakers, Inc. Fast initialization of medical device system having multiple operating systems
JP2006178816A (ja) * 2004-12-24 2006-07-06 D & M Holdings Inc デジタルデータ再生装置及びデジタルデータ記憶再生装置
US7536565B2 (en) 2005-01-07 2009-05-19 Apple Inc. Techniques for improved playlist processing on media devices
TWI267752B (en) 2005-01-17 2006-12-01 Lite On Technology Corp Multi-mode computer system and operating method thereof
TW200627277A (en) 2005-01-24 2006-08-01 Lite On Technology Corp OS selection method and computer system utilizing same
US20060179326A1 (en) 2005-02-10 2006-08-10 Kwok-Yan Leung Security device using multiple operating system for enforcing security domain
RU2005105976A (ru) * 2005-03-03 2006-08-10 Общество с ограниченной ответственностью "Активное Видео" (RU) Способ (варианты) и система (варианты) управления мультимедийной информацией и мультимедийными приложениями
JP2007006107A (ja) * 2005-06-23 2007-01-11 Toshiba Corp 情報処理装置および録画制御方法
FI20051114A0 (fi) * 2005-11-03 2005-11-03 Nokia Corp Automaattinen monen tietokoneen käynnistys
WO2008073618A2 (en) * 2006-11-06 2008-06-19 Devicevm, Inc. Instant on platform
US7877592B2 (en) * 2006-12-04 2011-01-25 Ntt Docomo, Inc. System and methods for efficient and cooperative operating system switching
EP2068320A4 (en) * 2006-12-29 2010-12-01 Panasonic Corp Recording reproduction device, reproduction device, and host device

Also Published As

Publication number Publication date
RU2451989C2 (ru) 2012-05-27
US20080189538A1 (en) 2008-08-07
ZA200905419B (en) 2010-10-27
CN101606128B (zh) 2013-07-24
BRPI0806729A2 (pt) 2011-09-13
KR20090115131A (ko) 2009-11-04
AU2008214236A1 (en) 2008-08-14
TW200841710A (en) 2008-10-16
MX2009008223A (es) 2009-08-12
EP2109818A1 (en) 2009-10-21
EP2109818A4 (en) 2009-12-09
IL199728D0 (en) 2010-04-15
CN101606128A (zh) 2009-12-16
CA2675523A1 (en) 2008-08-14
RU2009130109A (ru) 2011-02-10
KR101505209B1 (ko) 2015-03-23
EP2109818B1 (en) 2016-06-15
AU2008214236B2 (en) 2012-02-09
WO2008097695A1 (en) 2008-08-14
US8046570B2 (en) 2011-10-25
JP2010518512A (ja) 2010-05-27

Similar Documents

Publication Publication Date Title
JP6073323B2 (ja) アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外
JP5911892B2 (ja) ハイバネイトからの多段レジューム
JP5759044B2 (ja) ブート・パフォーマンスを向上させたシステム及び方法
TWI528162B (zh) 電腦系統及其作業系統切換方法
USRE43716E1 (en) Method of fast switching control for different operation systems operated in computer
US9046931B2 (en) Apparatus and method for adaptation of input/output interface in virtualization environment
KR101638658B1 (ko) 이중 운영 시스템을 위한 파일 시스템
EP2243080B1 (en) Driver architecture for computing device having multiple graphics subsystems, reduced power consumption modes, software and methods
US7529923B2 (en) Operating system mode transfer
US7620773B2 (en) In-line non volatile memory disk read cache and write buffer
USRE42936E1 (en) Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing
KR101456723B1 (ko) 다중 그래픽 하위시스템과 전력 소비 절감 모드를 가진 장치, 소프트웨어 및 방법
US5822582A (en) Boot drive selection and hibernation file detection
US8555099B2 (en) Device having multiple graphics subsystems and reduced power consumption mode, software and methods
ES2717603T3 (es) VEX - Marco de extensión virtual
CN1163824C (zh) 快速启动装置和方法
EP1137987B1 (en) Initializing and restarting operating systems
US7409536B2 (en) Computer systems with several operating systems coexisting thereon and swapping between these operating systems
US20130088500A1 (en) Policy-Based Switching Between Graphics-Processing Units
US7886136B2 (en) Computer system, method, and medium for switching operating system
US8171280B2 (en) Method of running multiple operating systems on an X86-based computer system having a dedicated memory region configured as a do not use region
CA2630282C (en) Method and system for carrying multiple suspended runtime images
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
KR101620655B1 (ko) 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120809

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250