JP2005327269A - マルチメディアコンソール上のシステムアプリケーション - Google Patents

マルチメディアコンソール上のシステムアプリケーション Download PDF

Info

Publication number
JP2005327269A
JP2005327269A JP2005123573A JP2005123573A JP2005327269A JP 2005327269 A JP2005327269 A JP 2005327269A JP 2005123573 A JP2005123573 A JP 2005123573A JP 2005123573 A JP2005123573 A JP 2005123573A JP 2005327269 A JP2005327269 A JP 2005327269A
Authority
JP
Japan
Prior art keywords
processing unit
reserving
central processing
multimedia
application
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.)
Granted
Application number
JP2005123573A
Other languages
English (en)
Other versions
JP4801371B2 (ja
Inventor
J Andrew Goosen
アンドリュー グーセン ジュー
Michael Cory Maston
コリー マストン マイケル
Tracy C Sharpe
シー.シャープ トレイシー
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005327269A publication Critical patent/JP2005327269A/ja
Application granted granted Critical
Publication of JP4801371B2 publication Critical patent/JP4801371B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Selective Calling Equipment (AREA)

Abstract

【課題】 マルチメディアアプリケーションが、コンソール上で実行されている間に、それに応じて制御できなることを減らしながら、システムアプリケーションを使用することによってマルチメディアコンソール内で高いレベルのシステム機能を提供するシステムおよび方法を提供すること。
【解決手段】 マルチメディアコンソールの所定量のハードウェアリソースが予約される。システムアプリケーションは、所定量の予約されたハードウェアリソースを実質上使用して実行され、マルチメディアアプリケーションは、実質上残りの予約されていないハードウェアリソース内で実行される。
【選択図】 図3

Description

本発明は、一般には、マルチメディアコンソールの分野に関する。より詳細には、本発明は、マルチメディアコンソール上でシステム機能を実施するシステムおよび方法を対象とする。
ビデオゲームコンソールなどのマルチメディアコンソールは従来、開発者の「邪魔にならない」オペレーティングシステムを提供してきた。具体的には、従来のビデオゲームコンソール上では、ゲーム開発者は、ハードウェアのほとんどすべての制御を与えられており、オペレーティングシステムは、マルチメディアアプリケーションによって駆動される。ゲームソフトウェアはしばしば特定のプラットフォーム向けに開発されているので、使用可能なハードウェアリソース(メモリ、プロセッサなど)およびその特性(メモリサイズ、プロセッサ速度など)はよく知られている。このアーキテクチャは、開発者に完全な自律性、およびあらゆるCPUサイクルがどのように使用されるかを洞察する力をもたらす。したがって、ソフトウェア開発者は、ハードウェアリソースの使用を管理し、最大にし、また高パフォーマンスのマルチメディアアプリケーションを提供することができる。たとえば、ソフトウェアゲーム開発者は、同じ量のメモリが常に使用可能であり、CPUが別のアプリケーション、またはゲームリリース後に取り入れられたシステム機能(system feature)によって消費されないなどと確信することができる。
この手法の欠点は、ユーザに提供することが望まれるどんなシステム機能もがマルチメディアアプリケーション内に組み込まれなれければならないことである。この手法は、マルチメディア開発者がプログラミングに大きな投資を行うことを必要とする。別の欠点は、それぞれのマルチメディアアプリケーションがシステムリソースに対するそれ独自の特有のユーザインターフェースを提供するので、ユーザの経験が、異なるマルチメディアアプリケーション間で著しく異なり得ることである。
一連のリソース制御のもう一方の側は、アプリケーションがオペレーティングシステムの基本的な機能に対して制限された制御を有する従来のパーソナルコンピュータ(PC)において見られる。この手法は、アプリケーションによってそれが制御されることを必要とせずに、オペレーティングシステム内に多大な機能をもたらす。さらにこの手法は、複数のアプリケーションが互いに認識することを必要とせずに、複数のアプリケーションが同時に実行されることを実現する。この手法の欠点は、アプリケーションが各CPUサイクルをほとんど制御できず、それが実行中の唯一のアプリケーションでないと想定するように設計されなければならないことである。したがって、アプリケーションには、ある量の物理RAMを得られるという、またはかなりの量のCPU時間を消費する別のアプリケーションによってリソース不足にならない(get starved)という特別な保証はない。
マルチメディアコンソールのパワーが増すにつれて、開発者がシステムリソースのほとんどすべての制御を有する既存のマルチメディアコンソールオペレーティングシステムの利点を維持しながらマルチメディアアプリケーションにシステムサービスを提供する需要が恐らく高まる。
したがって、システムの動作およびハードウェアのリソースに対するマルチメディアアプリケーションの高いレベルの制御を維持しながら、より多くのシステム機能を可能にするためにマルチメディアコンソール上でシステムサービスを提供するためのシステムおよび方法が求められている。
本発明は、マルチメディアコンソールのハードウェアリソースに対するかなりの制御をマルチメディアが保持することを可能しながら、システムアプリケーションを介してシステム機能を提供することによって、既存のマルチメディアコンソールの制限に対処するシステムおよび方法を対象とする。マルチメディアコンソールの所定量のハードウェアリソースがシステムアプリケーション用に予約され、ハードウェアリソースの残りは、マルチメディアアプリケーションによって制御される。このようにして、マルチメディアアプリケーションは、ハードウェアリソースをほとんど制御できない、従来のパーソナルコンピューティング(PC)オペレーティングシステム上で実行されるアプリケーションとは異なり、ハードウェアリソースに対してかなりの制御を保持する。したがって、マルチメディアアプリケーションは、従来のシステムで必要とされるようなシステム機能を直接にサポートする必要がなく、依然としてシステム機能が提供され得る。システムアプリケーションは予約されたハードウェアリソースを介してシステム機能を提供し、マルチメディアアプリケーションは、残りのハードウェアリソース上で実行される。さらに、予約されたリソースの量は、グラフィック処理装置によって生成された割込みに基づくものとすることができる。このようにして、システムアプリケーションは、ハードウェアリソースの需要が少ない可能性が高いときに実行され得る。
本明細書で説明するシステムおよび方法は、セットトップボックス、組込みシステムなど、他の制限付きの環境で実施することができる。本発明の追加の特徴は、添付の図面を参照して進行する、例示的な実施形態についての以下の詳細な説明から明らかになる。
前述の要約、および例示的な実施形態についての以下の詳細な説明は、添付の図面と併せ読む場合によりよく理解される。本発明について説明するために本発明の例示的な実施形態が図面に示されているが、しかし、本発明は、開示する具体的な方法および手段に限定されない。
図1に、本発明の態様が実施され得るマルチメディアコンソール100の機能構成要素を示す。マルチメディアコンソール100は、レベル1(L1)キャッシュ102、レベル2(L2)キャッシュ104およびフラッシュROM(読取り専用メモリ)106を含む中央処理装置(CPU)101を含む。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデータを格納し、したがってメモリアクセスサイクルの数を減らし、それによって処理速度およびスループットを改善する。マルチメディアコンソール100が電源投入される場合、フラッシュROM106は、ブートプロセスの最初のフェーズの間にロードされる実行可能コードを格納し得る。代替として、最初のブートフェーズの間にロードされる実行可能コードは、FLASHメモリ装置(図示せず)内に格納され得る。さらに、ROM106は、CPU101とは別個に置くことができる。
グラフィック処理装置(GPU:graphics processing unit)108およびビデオエンコーダ/ビデオコーデック(コーダ/デコーダ)114は、高速および高解像度グラフィック処理のためのビデオ処理パイプラインを形成する。データは、バスを介してグラフィック処理装置(GPU)108からビデオエンコーダ/ビデオコーデック114に運ばれる。ビデオ処理パイプラインは、テレビまたは他の表示装置への伝送のため、A/V(オーディオ/ビデオ)ポート140にデータを出力する。メモリコントローラ110は、それだけに限定されないが、RAM(ランダムアクセスメモリ)などの様々なタイプのメモリ112へのプロセッサアクセスを実行するために、GPU108およびCPU101に接続される。
マルチメディアコンソール100は、好ましくはモジュール118上で実装されたI/Oコントローラ120、システム管理コントローラ122、オーディオ処理装置123、ネットワークインターフェースコントローラ124、第1のUSBホストコントローラ126、第2のUSBホストコントローラ128、およびフロントパネルI/Oサブアセンブリ130を含む。USBコントローラ126および128は、周辺コントローラ142(1)〜142(2)、無線アダプタ148および外部メモリ装置146(フラッシュメモリ、外部CD/DVD ROMドライブ、取出し可能媒体など)のホストとして働く。ネットワークインターフェース124および/または無線アダプタ148は、ネットワーク(インターネット、ホームネットワークなど)へのアクセスを提供し、またイーサネット(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデムなどを含めて、多岐にわたる様々な有線または無線のインターフェース構成要素のうちのいずれかであり得る。
ブートプロセスの間にロードされるアプリケーションデータを格納するために、システムメモリ143が設けられる。メディアドライブ144が設けられ、それは、DVD/CDドライブ、ハードドライブまたは他の取出し可能メディアドライブなどを含み得る。メディアドライブ144は、マルチメディアコンソール100の外部にあることも、内部にあることもある。アプリケーションデータは、マルチメディアコンソール100による実行、再生などのために、メディアドライブ144を介してアクセスすることができる。メディアドライブ144は、シリアルATAバスや他の高速接続(IEEE1394など)を介してI/Oコントローラ120に接続される。
システム管理コントローラ122は、マルチメディアコンソール100の可用性の保証に関する様々なサービス機能を提供する。オーディオ処理装置123およびオーディオコーデック132は、ハイファイおよびステレオ処理を含む対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンクを介してオーディオ処理装置123とオーディオコーデック132の間で運ばれる。オーディオ処理パイプラインは、外部のオーディオプレーヤ、またはオーディオ機能を備える装置による複製のために、A/Vポート140にデータを出力する。
フロントパネルI/Oサブアセンブリ130は、パワーボタン150および取出しボタン152の機能、ならびに任意のLED(発光ダイオード)またはマルチメディアコンソール100の外面上に露出された他のインジケータをサポートする。システム電力供給モジュール136は、マルチメディアコンソール100の構成要素に電力を供給する。ファン138は、マルチメディアコンソール100内の回路を冷却する。
CPU101、GPU108、メモリコントローラ110、およびマルチメディアコンソール100内の様々な他の構成要素は、シリアルおよびパラレルバス、メモリバス、周辺バス、および様々なバス構造のいずれかを使用するプロセッサまたはローカルバスを含めて、1つまたは複数のバスを介して相互接続される。
マルチメディアコンソール100が電源投入され、または再ブートされる場合、アプリケーションデータは、システムメモリ143からメモリ112および/またはキャッシュ102、104内にロードされ、CPU101上で実行され得る。アプリケーションは、マルチメディアコンソール100上で使用可能な様々なメディアタイプに移動する場合に、一貫したユーザ体験を提供するグラフィカルユーザインターフェースを提示し得る。動作において、メディアドライブ144内に含まれるアプリケーションおよび/または他のメディアがメディアドライブ144から起動されまたは再生されて、マルチメディアコンソール100に追加の機能を提供し得る。
マルチメディアコンソール100は、単にシステムをテレビまたは他の表示装置に接続することによって、スタンドアロンのシステムとして動作させることができる。このスタンドアロンモードでは、マルチメディアコンソール100は、1人または複数のユーザがシステムと対話し、映画を鑑賞し、音楽を聴くことなどを可能にする。しかし、ネットワークインターフェース124または無線アダプタ148を介して使用可能になるブロードバンド接続の統合により、マルチメディアコンソール100は、より大規模なネットワークコミュニティに参加する一員として動作させることができる。
図2に、図1の例示的なマルチメディアコンソールのさらなる詳細を示す。図2に示すように、CPU101は、3つのCPU、CPU101A、CPU101BおよびCPU101Cを含む。図示するように、それぞれのCPUは、対応するL1キャッシュ102(たとえばそれぞれL1キャッシュ102A、102Bおよび102C)を含む。図示するように、それぞれのCPU101A〜Cは、L2キャッシュ104と通信している。したがって、個々のCPU101A、BおよびCは、L2キャッシュ104を共有する。L2キャッシュ104は複数のCPU間で共有されるので、システムアプリケーション用にL2キャッシュの一部を予約するための技術を実装することは複雑となる可能性がある。3つのCPUが示されているが、任意の数のCPUが存在し得る。
図1および2に示すマルチメディアコンソールは、たとえばゲームなどのマルチメディアアプリケーションを実行するために使用され得る典型的なマルチメディアコンソールである。マルチメディアアプリケーションは、たとえばシステム設定、音声チャット、ネットワーク化されたゲーム、ネットワークを介して他のユーザと対話する能力、電子メール、ブラウザアプリケーションなどを含めたシステム機能を付けて向上させることができる。こうしたシステム機能によって、たとえばそれぞれ異なる場所にいるプレーヤがインターネットを介して共通のゲームをプレーすることができるなど、マルチメディアコンソール100の機能の改善が可能になる。
またシステム機能は、時間の経過につれて更新され、またはマルチメディアアプリケーションに追加されることができる。本明細書で説明するシステムおよび方法は、こうしたシステム機能を提供するために開発者にシステムアプリケーションに対してかなりの修正を行うことを求めるのではなく、マルチメディア開発者が、マルチメディアアプリケーションと連携して働く別個のシステムアプリケーションを介してシステム機能を提供できるようにする。たとえば、システムアプリケーションは、ネットワーク能力(networked capability)に関する機能を実施することができ、それによって、マルチメディア(ゲームなど)開発者によってほとんど作業を行わずに、マルチメディアアプリケーションをネットワーク化された能力を提供するように容易に適応させることができる。従来のアーキテクチャでは、マルチメディア開発者は、ネットワーク能力を提供するようにマルチメディアアプリケーションを修正するのに多大な開発努力を払わなければならないことがある。開発者によっては、関連コストのため、こうした機能の開発を見送ることがある。こうした機能を実施するシステムアプリケーションは、マルチメディア開発者に、そうでない場合よりも多くの機能を含めるように促し得る。
アプリケーション/オペレーティングシステムを対象とするシステムおよび方法が提供される。従来のマルチメディアコンソールオペレーティングシステムとは異なり、このシステムおよび方法は、開発者が直接マルチメディアアプリケーション内でシステム機能へのユーザアクセスを明示的に取り入れまたは扱うことなしに、システムアプリケーションを使用してシステム機能を実施できるようにする。システムアプリケーションを介してシステム機能へのアクセスを提供することによって、ユーザは、マルチメディアアプリケーションからシステムリソースの制御を不確かに取り上げることなしに、PCオペレーティングシステムのような同時アプリケーションおよび豊富なシステム機能の利益を得ることができる。ゲーム開発者などのマルチメディア開発者は一般に、システム動作は経時的に安定および決定的であると想定するので、システムアプリケーションは、製品の存続期間にわたって一定量のシステムリソースを取り、それが実行時に様々なリソースシグニチャ(signature)を提示しないように制限され得る。このシステムおよび方法は、マルチメディアアプリケーションにシステム機能を提供するシステムアプリケーションによって使用するために、マルチメディアコンソールハードウェアリソースの一部を予約する。システムアプリケーションについて一貫した不変のリソース使用のシグニチャを提供するために、複数の異なるシステムリソースが管理され得る。こうしたリソースは、CPU、キャッシュメモリ、メインメモリおよびオーディオチャネル、ゲームコントローラ入力などを含み得る。
次に図3を参照すると、マルチメディアコンソール上でシステムアプリケーションを提供するための例示的な方法のフローチャートが示されている。図3に示すように、マルチメディアコンソール100が電源投入されまたは再ブートされる場合、ステップ300で、マルチメディアコンソール100は、オペレーティングシステムカーネルをブートする。たとえば、マルチメディアコンソール100は、オペレーティングシステムカーネルを開始するために、ROM106に格納されたブートコードを実行し得る。
ステップ305で、オペレーティングシステムカーネルは、システムアプリケーション用のリソースを予約する。たとえば、オペレーティングシステムカーネルは、システムアプリケーション用に所定の量のメモリ(5MBなど)を予約することができ、この予約されたメモリを一般にマルチメディアアプリケーションが使用できるようにしない。カーネル、ドライバ、システムアプリケーションおよび他のシステム関連コードは、この予約されたメモリ内に常駐し得る。システムアプリケーションがメモリの全体量より少ない量を必要とする場合、カーネルは一般に、マルチメディアアプリケーションが一定量の使用可能メモリを見ることができるように所定量のメモリをさらに割り当て、予約する。具体的には、メモリ予約は、起動カーネル、システムアプリケーションおよびドライバを含むのに十分なほど大きいことがある。この予約によって、マルチメディアコンソールの存続期間にわたって新しいシステムアプリケーションおよびドライバを受け入れ、またシステムアプリケーションおよびドライバの占有スペースの予想された任意のサイズ拡大が可能になり得る。さらに、オペレーティングシステムカーネルは、マルチメディアアプリケーションとシステムアプリケーションの間の通信において使用するために、第2の所定量のメモリを予約することができる。
ステップ305で、オペレーティングシステムカーネルは、システムアプリケーションによって使用するための所定の数のオーディオチャネル(モノラルストリーム)を予約することもできる。たとえば、典型的なマルチメディアコンソールでは、およそ300個の使用可能チャネルのうちから10個のオーディオチャネルが予約され得る。このようにして、予約されたオーディオチャネルは、左右の音声効果のため7.1オーディオおよび追加の2音声をサポートし得る。予約されたチャネルは一般に、マルチメディアアプリケーション(ゲームなど)によって使用できるようにしない。
この例示的な1組のリソースが、予約され得るシステムリソースの限定的または網羅的なリストであることは意図されていない。こうしたリソースはシステムブート時に予約されるので、予約されたリソースは、マルチメディアアプリケーションから見ると存在しない。
ステップ310で、オペレーティングシステムカーネルは、ドライバをロードする。ドライバは、割込みを設定するGPUドライバを含み得る。この割込みは、GPU割込み、たとえばビデオ出力がビデオ表示装置上の所定の走査線に達した場合に割込みを生成するプログラマブルな走査線とすることができ、また別の適切な割込みソースでもよい。GPU割込みを使用して、GPUビデオフレームとの同期を保つことができ、またシステムアプリケーションは、GPUからの走査線割込みに応答してスケジューリングされ得る。
ステップ315で、GPU割込みが発生する場合、オペレーティングシステムカーネルは、システムアプリケーションマネージャ(SAM:system application manager)スレッドを開始する。SAMスレッドは、どのシステムアプリケーションがどのCPU上で実行され、またいつそれが実行されるかを管理する。
ステップ320で、SAMスレッドは、実行される各システムアプリケーションについてシステムアプリケーションSAスレッドを作成する。
ステップ325で、オペレーティングシステムカーネルは、SAMスレッドの実行をスケジューリングする。
ステップ330で、SAMスレッドは、どのSAスレッドを実行するかを順次指示し、ステップ335で、指示されたSAスレッドが実行される。カーネルは一般に、CPU上のSAスレッドの実際のスケジューリングを取り扱う。
ステップ340で、システムアプリケーション終了割込み(GPU垂直ブランク割込み(VBI:vertical blank interruptなど)がGPUによって生成されていない場合、この方法は、ステップ330に戻って、別のSAスレッドを実行する。システムアプリケーション終了割込みが生成された場合、ステップ345で、オペレーティングシステムカーネルは、SAMスレッドを停止する。ステップ330または335の間のいずれかの時点でシステムアプリケーション終了割込みが生成された場合もまた、現在実行中のSAスレッドが停止され、後で実行するためにスケジューリング変更され得る。
上述したように、図2の例示的なマルチメディアコンソール100は、3つのCPUを含む。(たとえば図3に関連して上記で説明したように割込みを介して実施される)CPU時間の予約は、様々なやり方でCPU間で分配され得る。たとえば、マルチメディアアプリケーション(ゲームなど)は、第1CPU101A上にシステムアプリケーションが実行されていない状態で、第1CPU101A上で実行され得る(また他のCPU上で実行することもできる)。システムアプリケーションは、場合によっては他の2つのCPU、101Bおよび101C上でスケジューリングされ得る。システムアプリケーションは、CPU101B上のX%のCPU処理時間、およびCPU101C上のY%のCPU処理時間でスケジューリングされ得る。さらに、X%およびY%の処理時間は、ビデオフレーム処理の終了時にスケジューリングされ得る。X%とY%の処理時間は、等しいことも(すなわち対称)、等しくない(すなわち非対称)のこともある。さらに、X%およびY%の処理時間の判断は、システムアプリケーションの設計要件に基づき得る。
システムアプリケーションの実行は、マルチメディアコンソールの典型的な特性を利用するために、周知の時間(ビデオフレーム処理の終了時など)にスケジューリングされ得る。たとえば、システムアプリケーションは、ほとんどのCPU処理が終了したはずのビデオフレーム終了時に実行され得る。システムアプリケーションは、時間の影響を受けやすいまたは時間依存型の(time−critical)コード(音声チャットオーディオ、ネットワークインターフェースなど)が十分な実行時間を得ることができるように、定期的に実行することができる。さらに、CPU101Bは時間依存型のシステムアプリケーション(音声など)用に予約することができ、CPU101Cは、非時間依存型のシステムアプリケーション(電子メールなど)用に予約することができる。
システムアプリケーションが予約されたCPU時間を使用しない場合、このシステムは、残りの処理時間をするために、アイドル状態のシステムスレッドをスケジューリングすることができる。このようにして、マルチメディアアプリケーションには、比較的に一定のシステムリソースのシグニチャが見える。
ビデオフレームの最後にシステムアプリケーションを実行することによって、ほとんどのマルチメディアアプリケーションはビデオフレーム終了の前に完了されているので、キャッシュメモリ(具体的にはL2キャッシュ104)への影響が低減され得る。これによって、L2キャッシュ104を直接に管理する複雑な努めが回避される(たとえばシステムアプリケーション用にL2キャッシュ104の別個の部分を直接に予約する)。そうではなく、図4に示すように、システムアプリケーションは、(CPUへのGPU割込みに基づいて)ビデオフレームの最後に予測可能な一定の頻度で実行される。ほとんどのマルチメディアアプリケーションがビデオフレームの終了前に処理を完了し(またはほとんどそうであり)、したがってこの特定の時点で実行されているシステムアプリケーションは、L2キャッシュの使用に混乱を生じさせる可能性が低いと予想される。
図2の各CPUの処理の時系列図である図4に示すように、CPU101Aは、マルチメディアアプリケーション(ゲームコードなど)だけを実行する。CPU101Bおよび101Cは、GPU割込みによる中断までマルチメディアアプリケーションを実行する(またCPU101Bおよび101Cは、図4に示す第1の時間部分ではどのマルチメディアアプリケーションコードをも実行していないことがある)。図示するように、CPU101Cは、第1のGPU割込み時までマルチメディアアプリケーションを実行する。その時点で、CPU101Cは、システムアプリケーション(SA)を実行し始める。同様に、CPU101Bは、第2のGPU割込み時までマルチメディアアプリケーションを実行する。その時点で、CPU101Bは、システムアプリケーション(SA)を実行し始める。またシステムアプリケーションマネージャ(SAM)は、CPU101B上でも実行され得るが、CPU101C上で実行される。さらに、CPU予約量は、予約されたCPU使用がシステムアプリケーションによって使用されていない場合には任意の未使用サイクルを消費するアイドル状態スレッドを使用することによって、実質上一定レベルに維持することができる。
システムアプリケーションはユーザ入力を見込み得るが、しかし、従来のマルチメディアアプリケーションは、(たとえばゲームコントローラの「ゲームパッド」入力、コントローラ142(1)および142(2)を介した)ユーザ入力に対する完全な制御を有する。したがって、ユーザ入力またはゲームコントローラ入力は、マルチメディアアプリケーションとシステムアプリケーションの間で適切に共有することができる。ある実施形態では、ユーザ入力は、システムアプリケーションとマルチメディアアプリケーションの間で透過的に共有される。一般にゲームは、ゲーム入力装置からシステムアプリケーションへとユーザ入力フォーカスを失う時、またはそれがゲームに再び戻される時を認識していない。ユーザ入力フォーカスがシステムアプリケーションに切り換えられる場合に、ゲームパッドの状態(どのボタンが押下されているか)が維持される。それが入力フォーカスをもたない間にゲームによってゲームパッド上に設定された状態は、ユーザ入力フォーカスがゲームに戻されるまでキューに入れられ、維持され得る。たとえば、システムアプリケーションに入力フォーカスがある間にゲームがゲームパッド振動状態(ゲームパッド内で振動生成モータが実行されて、ゲームパッド自体を振動させる状態など)を設定する場合、この振動状態は、ユーザ入力フォーカスがマルチメディアアプリケーションに戻された場合に整合性が取れるようにキューに入れられる(更新される)。入力装置は、予約されるリソースではないが、それぞれが装置の適切なフォーカスを有するように、システムアプリケーションとマルチメディアアプリケーションの間で切り換えられる。アプリケーションマネージャは、マネージャアプリケーションの知識なしに入力ストリームの切換えを制御することができ、ドライバは、フォーカス切換えに関する状態情報を維持することができる。ユーザがシステムアプリケーションなどと対話する場合のマルチメディアアプリケーションの停止など、他のタイプのユーザインタラクションが可能である。
システムアプリケーション用に予約された一部の時間の間にCPU上でシステムアプリケーションが実行されている場合に、高優先度のタスク(たとえばオーディオチャネル用の特定のデジタル符号化などのマルチメディアアプリケーションタスクなど)が実行されるべきケースが存在し得る。たとえば、オーディオタスクを実行すべきであり、またはユーザが望ましくない可聴のポップ音を聞き得る場合が存在し得る。しかし同時に、システムアプリケーションが、その仕事を完了するのに十分なほどのプロセッサ時間を受け取るのが望ましい。そうでない場合、たとえば時間切れのダウンロードなど、望ましくない様々な結果が生じ得る。このような状況では、(SAMと連携する)カーネルは、システムアプリケーション「時間枠(window)」の間(GPU割込みとVBI割込みの間など)に高優先度タスクをスケジューリングし得る。さらに、(SAMと連携する)カーネルは、システムアプリケーション時間枠の間の高優先度タスクのそのスケジューリングのためにシステムアプリケーションがどのくらいのプロセッサ時間を失ったかを追跡し得る。(SAMと連携する)カーネルは、VBIの後(次のビデオフレーム開始時など)にシステムアプリケーションを実行することによって、この失われたプロセッサ時間をシステムアプリケーションに「返す(credit back)」する。したがって、実際に、システムアプリケーションは、結局は同じ量の処理時間を受け取ることになり、時間内で実行がシフトされる。しかし、このビデオフレームの開始に再スケジューリングすることは、ビデオフレームの最後の場合よりも大きいL2キャッシュへの影響があり得る。またシステムアプリケーションは、ビデオフレームの開始時の一部のプロセッサ時間の間にさえ、高優先度タスクによって中断され得る。
図5に、高優先度タスクに対処するための例示的なフローチャートが示されている。ステップ510で、カーネルは、システムアプリケーションの時間枠(GPU割込みと、システムアプリケーションを実行するために予約されたVBIとの間の時間など)においてCPU上でシステムアプリケーションが実行されている間に高優先度タスクが保留されていると判断する。ステップ515で、カーネルは、システムアプリケーション時間枠内で実行されているシステムアプリケーションを停止する。ステップ520で、高優先度タスクを、停止されたシステムアプリケーションをかつて実行していたCPU上で実行するようにスケジューリングする。ステップ525で、カーネルは、前に停止されたシステムアプリケーションを次のビデオフレームの最初(VBIの後など)に実行するようにスケジューリングする。
図6は、図5のフローチャートの実施について図示する、図2の各CPUの処理の時系列図である。図6に示すように、CPU101Aは、マルチメディアアプリケーション(ゲームコードなど)だけを実行する。CPU101Bおよび101Cは、GPU割込みによる中断までマルチメディアアプリケーションを実行する。図示するように、CPU101Cは、第1のGPU割込み時までマルチメディアアプリケーションを実行する。その時点で、CPU101Cは、SAおよびSAMを実行し始める。同様に、CPU101Bは、第2のGPU割込み時までマルチメディアアプリケーションを実行する。その時点で、CPU101Bは、SAを実行し始める。しかし、CPU101B上で実行されているSAは、保留中の高優先度タスク(HP:high priority)のためにカーネルによって中断される。次いで、カーネルは、HPをCPU101B上で実行されるようにスケジューリングする。システムアプリケーション「時間枠」内に処理時間が残っていない場合、カーネルは、前に停止されたSAを、次のVBIの後にCPU101B上で実行されるようにスケジューリングする。
上述したように、システムアプリケーションは、マルチメディアアプリケーションが実行されている間にシステム機能を提供する。ユーザは、要望に応じて、システムアプリケーションとも、マルチメディアアプリケーションとも対話することができる。既存のオペレーティングシステムアーキテクチャが、マルチメディアアプリケーションがマルチメディアアプリケーション機能とシステム機能の両方を管理することを求める場合、本明細書で説明したシステムおよび方法は、別個のシステムアプリケーションのためのハードウェアリソースを提供する。したがって、マルチメディアアプリケーションはマルチメディアアプリケーション機能を管理することができ、システム機能は、システムアプリケーションを介して提供され得る。
上記内容が示しているように、本発明は、マルチメディアコンソール上でシステムアプリケーションを提供することを対象としている。本明細書で開示した広範な発明の概念から逸脱せずに、上述の例示的な諸実施形態に対して変更が行われ得ることが理解されよう。たとえば、例示的な一実施形態は3つのCPUを用いて実施されるように上記で説明されているが、本発明は、任意の数のCPUで実施され得ることが理解されよう。さらに、例示的な実施形態はメモリ予約として説明されているが、CPU時間およびオーディオチャネル、他のマルチメディアコンソールリソースを予約することもできる。したがって、本発明は、開示した特定の諸実施形態に限定されないが、添付の特許請求の範囲によって定義される本発明の精神および範囲内のすべての修正を網羅することを意図している。
本発明の態様が実施され得る例示的なマルチメディアコンソールを示すブロック図である。 本発明の態様が実施され得る図1の例示的なマルチメディアコンソールをより詳細に示すブロック図である。 本発明の一態様による、マルチメディアコンソール上のシステムアプリケーションを介してシステム機能を提供するための方法のフローチャートである。 本発明の一態様による、マルチメディアコンソール上のシステムアプリケーションを介してシステム機能を提供するための例示的なタイミングを示す図である。 本発明の一態様による、高優先度タスクの処理を含む、マルチメディアコンソール上のシステムアプリケーションを介してシステム機能を提供するための方法の別のフローチャートである。 本発明の一態様による、高優先度タスクの処理を含む、マルチメディアコンソール上のシステムアプリケーションを介してシステム機能を提供するための例示的なタイミングを示す図である。
符号の説明
100 マルチメディアコンソール
101 中央処理装置
102 レベル1キャッシュ
104 レベル2キャッシュ
108 グラフィック処理装置
110 メモリコントローラ
112 メモリ
114 ビデオエンコーダ/ビデオコーデック
120 I/Oコントローラ
122 システム管理コントローラ
123 オーディオ
126 USBコントローラ
128 USBコントローラ
130 フロントパネルI/Oサブアセンブリ
132 オーディオコーデック
136 システムパワー供給モジュール
138 ファン
140 A/Vポート
142 コントローラ(1)
142 コントローラ(2)
143 システムメモリ
144 メディアドライブ
146 メモリ装置
148 無線アダプタ

Claims (39)

  1. 中央処理装置、グラフィック処理装置およびメモリを含むマルチメディアコンソール上でシステムアプリケーションを提供するための方法であって、
    前記マルチメディアコンソールの所定量のハードウェアリソースを予約するステップと、
    前記所定量の予約されたハードウェアリソースを実質上使用して前記システムアプリケーションを実行するステップと、
    残りの予約されていない前記ハードウェアリソースを実質上使用してマルチメディアアプリケーションを実行するステップと
    を含むことを特徴とする方法。
  2. 前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーション用に所定量のメモリを予約するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記マルチメディアアプリケーションと前記システムアプリケーションの間の通信を実施するために、第2の所定量のメモリを予約するステップをさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記所定量のハードウェアリソースを予約するステップは、マルチメディアアプリケーションに関連するシステムアプリケーションをサポートするために決定された所定量のメモリを予約するステップを含むことを特徴とする請求項2に記載の方法。
  5. 複数のシステムアプリケーションのうちのどのシステムアプリケーションが実行されるかを優先順位付けするシステムアプリケーションマネージャを実行するステップをさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記システムアプリケーションはネットワーク能力を提供することを特徴とする請求項1に記載の方法。
  7. 複数のシステムアプリケーションのうちのどのシステムアプリケーションが実行されるかを優先順位付けし、また前記複数のシステムアプリケーションの各システムアプリケーションが、前記グラフィック処理装置によって生成される所定数のフレームごとに少なくとも1回実行されるようにスケジューリングさせるシステムアプリケーションマネージャを実行するステップをさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記所定量のハードウェアリソースを予約するステップは、少なくとも1つのオーディオチャネルを予約するステップを含むことを特徴とする請求項1に記載の方法。
  9. 前記所定量のハードウェアリソースを予約するステップは、少なくとも10個のオーディオチャネルを予約するステップを含むことを特徴とする請求項1に記載の方法。
  10. 前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションの実行のために中央処理装置時間の一部を予約するステップを含むことを特徴とする請求項1に記載の方法。
  11. 前記予約されたプロセッサ使用が前記システムアプリケーションによって使用されていない場合、アイドル状態のスレッドを含むシステムアプリケーションの実行のために、前記一部の中央処理装置時間の間の未使用のプロセッササイクルを消費するステップをさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記マルチメディアアプリケーションと前記システムアプリケーションの間で入力装置を共有するステップをさらに含むことを特徴とする請求項1に記載の方法。
  13. 前記マルチメディアコンソールは第1および第2の中央処理装置を含み、前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションの実行のために前記第2中央処理装置の一部の処理時間を予約し、前記第1処理装置の一部の処理時間を予約せず、それによって前記第1中央処理装置は前記マルチメディアアプリケーションの実行専用になるステップを含むことを特徴とする請求項1に記載の方法。
  14. 前記マルチメディアコンソールは第1、第2および第3の中央処理装置を含み、前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションの実行のために前記第2および第3中央処理装置の一部の処理時間を予約し、前記第1中央処理装置の一部の処理時間を予約せず、それによって前記第1中央処理装置は前記マルチメディアアプリケーションの実行専用になるステップを含むことを特徴とする請求項1に記載の方法。
  15. 前記第2中央処理装置の前記予約された部分の処理時間は、前記第3中央処理装置の前記予約された部分の処理時間と同じであることを特徴とする請求項14に記載の方法。
  16. 前記第2中央処理装置の前記予約された部分の処理時間は、前記第3中央実行装置の前記予約された部分の処理時間と異なることを特徴とする請求項14に記載の方法。
  17. 前記第2中央処理装置は時間依存型のシステムアプリケーションを実行し、前記第3中央処理装置は、非時間依存型のシステムアプリケーションを実行することを特徴とする請求項14に記載の方法。
  18. コンピューティングシステム内のコンピュータリソースを管理するための方法であって、
    グラフィック処理装置によって生成された割込みに基づいてコンピューティングシステムリソースの一部を予約するステップを含むことを特徴とする方法。
  19. 前記コンピューティングシステムリソースの前記一部を予約するステップは、前記グラフィック処理装置によって生成された走査線割込みに基づいて前記コンピューティングシステムリソースの前記一部を予約するステップを含むことを特徴とする請求項18に記載の方法。
  20. 前記コンピューティングシステムリソースの前記一部を予約するステップは、ビデオフレームの最後に一部の中央処理装置時間を予約するステップを含み、前記央処理装置時間の一部は、前記グラフィック処理装置によって生成された走査線割込みに応じて開始することを特徴とする請求項18に記載の方法。
  21. 前記コンピューティングシステムは中央処理装置およびグラフィック処理装置を含み、前記コンピュータリソースの前記一部を予約するステップは、
    前記グラフィック処理装置によって所定の時刻に走査線割込みを生成するステップと、
    前記走査線割込みに応じて、前記中央処理装置上でのマルチメディアアプリケーションの実行を停止するステップと、
    前記走査線割込みに応じて、前記中央処理装置上でシステムアプリケーションを実行するステップと
    を含むことを特徴とする請求項18に記載の方法。
  22. 垂直ブランク割込みに応じて前記中央処理装置上での前記システムアプリケーションの実行を停止するステップをさらに含むことを特徴とする請求項21に記載の方法。
  23. 中央処理装置と
    グラフィック処理装置と、
    前記グラフィック処理装置と通信する書込み可能メモリと、
    前記中央処理装置と通信する第2のメモリとを含むマルチメディアコンソールであって、
    前記第2メモリは、予約された所定量のハードウェアリソースを使用してシステムサービスを提供するシステムアプリケーションを実行するために、前記マルチメディアコンソールの前記所定量のハードウェアリソースの予約を実施する実行可能コードを含み、
    前記システムアプリケーションは、前記マルチメディアコンソール上で実行されるマルチメディアアプリケーションと並列に実行され、前記マルチメディアアプリケーションは、前記実行可能コードによって予約されないシステムリソースを制御し、前記マルチメディアアプリケーションは、実質上残りの予約されない前記ハードウェアリソース内で実行される
    ことを特徴とするマルチメディアコンソール。
  24. 前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーション用に所定量のメモリを予約するステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  25. 前記第2メモリは、前記マルチメディアアプリケーションと前記システムアプリケーションの間の通信を実施するために第2の所定量のメモリを予約するための実行可能コードをさらに含むことを特徴とする請求項24に記載のマルチメディアコンソール。
  26. 前記所定量のハードウェアリソースを予約するステップは、マルチメディアアプリケーションと関連するシステムアプリケーションをサポートするために決定された所定量のメモリを予約するステップを含むことを特徴とする請求項24に記載のマルチメディアコンソール。
  27. 前記第2メモリは、複数のシステムアプリケーションのうちのどのシステムアプリケーションが実行されるかを優先順位付けするシステムアプリケーションマネージャを実行するための実行可能コードをさらに含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  28. 前記システムアプリケーションはネットワーク能力を提供することを特徴とする請求項23に記載のマルチメディアコンソール。
  29. 前記第2メモリは、複数のシステムアプリケーションのうちのどのシステムアプリケーションが実行されるかを優先順位付けするシステムアプリケーションマネージャを実行し、また前記複数のシステムアプリケーションの各システムアプリケーションが、前記グラフィック処理装置によって生成される所定数のフレームごとに少なくとも1回実行されるようにスケジューリングさせるための実行可能コードをさらに含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  30. 前記所定量のハードウェアリソースを予約するステップは、少なくとも1つのオーディオチャネルを予約するステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  31. 前記所定量のハードウェアリソースを予約するステップは、少なくとも10個のオーディオチャネルを予約するステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  32. 前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションを実行するために一部の中央処理装置時間を予約するステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  33. 前記第2メモリは、前記予約されたプロセッサ使用が前記システムアプリケーションによって使用されない場合は、アイドル状態のスレッドを含む前記システムアプリケーションを実行するために、前記一部の中央処理装置時間の間の未使用のプロセッササイクルを消費するための実行可能コードをさらに含むことを特徴とする請求項32に記載のマルチメディアコンソール。
  34. 前記第2メモリは、前記マルチメディアアプリケーションと前記システムアプリケーションの間の入力装置共有を実施する実行可能コードをさらに含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  35. 前記中央処理装置は第1および第2の処理装置を含み、前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションを実行するために前記第2中央処理装置の一部の処理時間を予約し、前記第1中央処理装置の一部の処理時間を予約せず、それによって前記第1中央処理装置は前記マルチメディアアプリケーションの実行専用になるステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  36. 前記中央処理装置は第1、第2および第3の中央処理装置を含み、前記所定量のハードウェアリソースを予約するステップは、前記システムアプリケーションを実行するために前記第2および第3中央処理装置の一部の処理時間を予約し、前記第1中央処理装置の一部の処理時間を予約せず、それによって前記第1中央処理装置は前記マルチメディアアプリケーションの実行専用になるステップを含むことを特徴とする請求項23に記載のマルチメディアコンソール。
  37. 前記第2中央処理装置の前記予約された一部の処理時間は、前記第3中央処理装置の前記予約された一部の処理時間と同じであることを特徴とする請求項36に記載のマルチメディアコンソール。
  38. 前記第2中央処理装置の前記予約された一部の処理時間は、前記第3中央処理装置の前記予約された一部の処理時間と異なることを特徴とする請求項36に記載のマルチメディアコンソール。
  39. 前記第2中央処理装置は時間依存型システムアプリケーションを実行し、前記第3中央処理装置は、非時間依存システムアプリケーションを実行することを特徴とする請求項36に記載のマルチメディアコンソール。
JP2005123573A 2004-04-30 2005-04-21 マルチメディアコンソール上のシステムアプリケーション Expired - Fee Related JP4801371B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/836,890 US8707317B2 (en) 2004-04-30 2004-04-30 Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
US10/836,890 2004-04-30

Publications (2)

Publication Number Publication Date
JP2005327269A true JP2005327269A (ja) 2005-11-24
JP4801371B2 JP4801371B2 (ja) 2011-10-26

Family

ID=34939424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005123573A Expired - Fee Related JP4801371B2 (ja) 2004-04-30 2005-04-21 マルチメディアコンソール上のシステムアプリケーション

Country Status (3)

Country Link
US (1) US8707317B2 (ja)
EP (1) EP1591896B1 (ja)
JP (1) JP4801371B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022283A1 (en) * 2006-07-19 2008-01-24 International Business Machines Corporation Quality of service scheduling for simultaneous multi-threaded processors
US20080167127A1 (en) * 2007-01-05 2008-07-10 Microsoft Corporation Integration of Media on Gaming Consoles
US10248459B2 (en) 2016-03-15 2019-04-02 Microsoft Technology Licensing, Llc Operating system support for game mode

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2001331333A (ja) * 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム及び計算機システムの制御方法
JP2004062911A (ja) * 2002-07-26 2004-02-26 Hewlett-Packard Development Co Lp コンピュータ資源の割り当てを管理するシステム

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL88165A (en) * 1987-12-21 1993-01-31 Honeywell Bull Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
US5109512A (en) * 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
US5440740A (en) * 1992-10-13 1995-08-08 Chen; Fetchi System and method for managing devices on multiple digital signal processors
JP3382658B2 (ja) 1993-03-15 2003-03-04 富士通株式会社 画面表示方法及び画面表示装置
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
GB9515336D0 (en) * 1995-07-26 1995-09-20 Int Computers Ltd Multi-media services system
US6078942A (en) 1996-04-25 2000-06-20 Microsoft Corporation Resource management for multimedia devices in a computer
US6223201B1 (en) * 1996-08-27 2001-04-24 International Business Machines Corporation Data processing system and method of task management within a self-managing application
US6202060B1 (en) * 1996-10-29 2001-03-13 Bao Q. Tran Data management system
US6317774B1 (en) 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule
US6282560B1 (en) * 1997-03-28 2001-08-28 International Business Machines Corporation Managing processor resources in a non-dedicated computer system
US6654780B1 (en) * 1997-03-28 2003-11-25 International Business Machines Corporation System of managing processor resources in a non-dedicated computer system
US5784616A (en) * 1997-05-02 1998-07-21 Microsoft Corporation Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation
US6345293B1 (en) 1997-07-03 2002-02-05 Microsoft Corporation Personalized information for an end user transmitted over a computer network
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6128713A (en) 1997-09-24 2000-10-03 Microsoft Corporation Application programming interface enabling application programs to control allocation of physical memory in a virtual memory system
US6108711A (en) * 1998-09-11 2000-08-22 Genesys Telecommunications Laboratories, Inc. Operating system having external media layer, workflow layer, internal media layer, and knowledge base for routing media events between transactions
US20020002458A1 (en) * 1997-10-22 2002-01-03 David E. Owen System and method for representing complex information auditorially
US6032240A (en) * 1997-11-12 2000-02-29 Intergraph Corporation Bypassing a nonpaged pool controller when accessing a remainder portion of a random access memory
JPH11161505A (ja) * 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd メディア送出装置
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6526416B1 (en) 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
JP2000172852A (ja) * 1998-09-28 2000-06-23 Canon Inc 画像処理方法、装置および記録媒体
AU2322100A (en) * 1999-01-28 2000-08-18 Sega Enterprises, Ltd. Network game system, game device terminal used in it and storage medium
US6338130B1 (en) * 1999-03-11 2002-01-08 International Business Machines Corporation Adaptive method and apparatus for allocation of DSP resources in a communication system
US6766508B1 (en) 1999-04-15 2004-07-20 Koninklijke Philips Electronics N.V. Object-oriented system having anonymous scheduler design pattern
US6401211B1 (en) 1999-10-19 2002-06-04 Microsoft Corporation System and method of user logon in combination with user authentication for network access
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7137119B1 (en) * 2000-05-02 2006-11-14 Microsoft Corporation Resource manager architecture with resource allocation utilizing priority-based preemption
US7165255B2 (en) * 2001-03-15 2007-01-16 Sun Microsystems, Inc. Method and apparatus for managing surplus memory in multitasking system
US7036123B2 (en) * 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
JP2003024636A (ja) * 2001-07-13 2003-01-28 Square Co Ltd ビデオゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲームのプログラム及びビデオゲーム処理方法及びビデオゲーム処理装置
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7203942B2 (en) * 2001-09-25 2007-04-10 Interuniversitair Microelektronica Centrum Method for operating a real-time multimedia terminal in a QoS manner
US7325233B2 (en) * 2001-11-07 2008-01-29 Sap Ag Process attachable virtual machines
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
JP2003256221A (ja) 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US7293091B2 (en) * 2002-05-30 2007-11-06 Intel Corporation Method and apparatus for disruption sensitive network data management
US20030232648A1 (en) * 2002-06-14 2003-12-18 Prindle Joseph Charles Videophone and videoconferencing apparatus and method for a video game console
US7287254B2 (en) * 2002-07-30 2007-10-23 Unisys Corporation Affinitizing threads in a multiprocessor system
US7716668B2 (en) * 2002-12-16 2010-05-11 Brooktree Broadband Holding, Inc. System and method for scheduling thread execution
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US7107363B2 (en) * 2003-06-19 2006-09-12 International Business Machines Corporation Microprocessor having bandwidth management for computing applications and related method of managing bandwidth allocation
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
KR100548414B1 (ko) * 2003-10-09 2006-02-02 엘지전자 주식회사 트리플 모드 기능을 구비한 이동통신단말기
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US20050223383A1 (en) * 2004-03-31 2005-10-06 Tetrick Raymond S Methods and apparatus for reserving an execution thread
US7716669B2 (en) * 2004-04-30 2010-05-11 Microsoft Corporation Concurrent system applications in a multimedia console

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2001331333A (ja) * 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム及び計算機システムの制御方法
JP2004062911A (ja) * 2002-07-26 2004-02-26 Hewlett-Packard Development Co Lp コンピュータ資源の割り当てを管理するシステム

Also Published As

Publication number Publication date
EP1591896B1 (en) 2016-05-11
EP1591896A2 (en) 2005-11-02
US8707317B2 (en) 2014-04-22
JP4801371B2 (ja) 2011-10-26
EP1591896A3 (en) 2007-10-17
US20050262255A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
US8522249B2 (en) Management of software implemented services in processor-based devices
US20030056091A1 (en) Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US20050246638A1 (en) Presenting in-game tips on a video game system
US7802256B2 (en) Class scheduler for increasing the probability of processor access by time-sensitive processes
US8587602B2 (en) GPU texture tile detail control
US8707320B2 (en) Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications
JP5490417B2 (ja) マルチメディアコンソールシステム上で、マルチメディア体験と同時にコンテキスト的に関連するコミュニティおよび情報インターフェースを提示すること
US20090222830A1 (en) Methods for Multi-Tasking on Media Players
JP2005312972A (ja) 入力装置を介してゲーム・コンソール・システム内のシステム・ソフトウェアにアクセスするためのシステムおよび方法
CN110308982B (zh) 一种共享内存复用方法及装置
WO2008127622A2 (en) Data parallel computing on multiple processors
EP2375324A2 (en) Virtualization apparatus for providing a transactional input/output interface
JP2022513869A (ja) マッシブマルチプレーヤコンピュート
WO2011117987A1 (ja) マルチコアシステムおよび起動方法
EP1591897A2 (en) Concurrent system applications in a multimedia console
JP4801371B2 (ja) マルチメディアコンソール上のシステムアプリケーション
US20060143204A1 (en) Method, apparatus and system for dynamically allocating sequestered computing resources
CN1096025C (zh) 信息处理装置及多任务控制方法
Zheng et al. SWAP: A Scheduler with Automatic Process Dependency Detection.
US7984446B1 (en) Method and system for multitasking BIOS initialization tasks
US20120137300A1 (en) Information Processor and Information Processing Method
EP2280345A1 (en) A device for and a method of managing computer tasks
JP2023174416A (ja) ゲーム装置、ゲームプログラム、ゲーム処理方法及び、ゲームシステム
Zamith et al. A game loop architecture with automatic distribution of tasks and load balancing between processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110805

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees