JPH1069394A - オブジェクト指向言語プログラム由来の中間コードデータストリーム、またはマルチメディアデータストリームの処理システム及び方法 - Google Patents

オブジェクト指向言語プログラム由来の中間コードデータストリーム、またはマルチメディアデータストリームの処理システム及び方法

Info

Publication number
JPH1069394A
JPH1069394A JP9147592A JP14759297A JPH1069394A JP H1069394 A JPH1069394 A JP H1069394A JP 9147592 A JP9147592 A JP 9147592A JP 14759297 A JP14759297 A JP 14759297A JP H1069394 A JPH1069394 A JP H1069394A
Authority
JP
Japan
Prior art keywords
hardware
virtual machine
processor
program
thread
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
JP9147592A
Other languages
English (en)
Inventor
Carlos Dangelo
カルロス・ダンジェロ
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.)
LSI Corp
Original Assignee
LSI Logic 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 LSI Logic Corp filed Critical LSI Logic Corp
Publication of JPH1069394A publication Critical patent/JPH1069394A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR 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/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 OR 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 マルチメディア環境の下で効率的なデータ
処理が可能な、中間コードデータストリームの処理シス
テム及び方法を提供する。 【解決手段】 オブジェクト指向言語プログラムをコン
パイルした中間コードの入力ストリームをリアルタイム
で効率的に処理する本発明のシステムは、並列処理のた
めに設けられた複数のプロセッサコアを含む。コアのい
くつかは、映像圧縮データ解凍、逆DCT等のマルチメ
ディアメソッドの実行用として最適化されたものであ
る。このシステムは、中間コードからオブジェクト、ス
レッドを再構築し、それぞれを並列処理のため適当なハ
ードウェアソースに転送する仮想マシン機構のプログラ
ムを有する。このシステムは、オブジェクト指向のパラ
ダイムをクライアントの実行ハードウェア及びO.S.
を通して拡張し、中間コードの移植性を保持しつつ、専
用/並列プロセッサ使用の利点を付加する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタルコンピュ
ータハードウェア及びソフトウェアの分野に関し、特
に、マルチメディアデータをリアルタイムで処理するた
めのオブジェクト指向マルチメディアアーキテクチャに
関する。
【0002】
【発明の背景】マルチメディアシステムは、音声、グラ
フィックス、動画、画像、音声及びフルモーションビデ
オのような様々な情報ソースを、多様なアプリケーショ
ンと結合する。一般にマルチメディアとは、歴史的に別
れて存在してきた3つの産業分野、即ちコンピューティ
ング、通信、及び放送を新たに組み合わせたものを意味
する。マルチメディアシステムを特徴付けるのは、音
声、映像及び動画のような“連続的な”メディアを組み
込んでいることである。分散型マルチメディアシステム
は、例えば遠隔地のカメラからの画像信号ストリームの
画像表示(playout)のように、比較的長時間に亘る連
続的なデータ伝送、メディア同期化、大容量記憶、その
他の高度な技術を必要とする。
【0003】マルチメディアシステムについては、様々
な用途における新たな改善された利用方法が見いだされ
ている。その例を挙げると、セットトップボックス(se
t top box)及び対話型テレビ、マルチメディアライブ
ラリ(データベース)、ポータブルコンピュータ、ゲー
ムマシン、進歩的なポータブルデジタル機器、移動端
末、及びワールドワイドウェブページなどがある。マル
チメディアアプリケーションにおいて使用される大量の
データ、及びリアルタイムまたはリアルタイムに近い状
態でデータの処理の必要性は、ハードウェア及びソフト
ウェア双方のシステム設計者にとっての技術的課題を投
げかける。これらの課題は、圧縮アルゴリズムや、特殊
目的ハードウェアプロセッサのような様々な異なる技術
分野の最前線において取り扱われている。マルチメディ
アアプリケーションの複雑さは、コンピュータシステム
の全ての構成要素にとっての負担となる。マルチメディ
アデータの処理には、グラフィックス、データ変換、及
びデータ圧縮等を行うために非常に充実した処理能力が
必要である。このためのアーキテクチャは、極めて大き
なバスのバンド幅及び効率的なI/Oを備えていなけれ
ばならないということは明らかである。また、マルチメ
ディアオペレーティングシステムは、新たなデータの
型、リアルタイムスケジューリング処理、及び高速割り
込み処理をサポートしたものであるべきである。
【0004】歴史的に、データ処理技術は、単に文字デ
ータのみが組み込まれた環境から発展してきた。コンピ
ュータグラフィックス及び他のマルチメディア要素は、
この分野において比較的新しいものである。旧来のコン
ピュータシステムも、リニアまたは“フラット”処理に
より特徴付けられる。コンピュータは、文字の集まりに
基づいて演算を施される、予め定められた一連の命令を
逐次実行した。多くの場合、バッチ処理が用いられた。
コンピュータプロセッサが、歴史的に汎用プロセッサで
あったということを背景として意識しておくことも重要
である。即ち、コンピュータは、アプリケーションプロ
グラムにより実現される特定の機能ならば、いかなるも
のでも実行できるように設計されたのである。ただ一つ
比較的例外に属するのは、特殊なニーズを満たすために
開発された“専用プロセッサ”であった。従って、従来
のコンピュータアーキテクチャは、プログラマーがかい
た一連の命令ならば、いかなるものでも実行できるよう
に設計されていたのである。このような特定の用途は、
システム設計者に前もって知られていたものではなく、
従って、システムアーキテクチャを特定のアプリケーシ
ョンに対して最適化することはできなかった。このた
め、汎用コンピュータは、その用途において柔軟性を有
するが、そのことが性能面での限界を生じさせていた。
【0005】マルチメディアアプリケーションの進歩
は、幾つかの異なるハードウェア及びソフトウェア分野
における開発に刺激を与えてきた。例えば、マルチメデ
ィアアプリケーションにおいて大量のデータが必要とな
ることで、圧縮/解凍技術の進歩がもたらされてきた。
画像データや音声データの圧縮の標準規格であるJPE
G標準及びMPEG標準の開発を我々は目撃してきた。
MPEG2は、現在多くのコンピュータにおいて実現さ
れている動画の符号化の標準規格である。ごく最近、我
々は、マルチメディアデータの“ストリーム処理”のた
めのソフトウェアの改善を目撃した。例えば、Java
(登録商標)の非同期イメージモデルにより、イメージ
データをインターネットに送り込むことが可能となっ
た。これが意味するのは、クライアントマシンの“アプ
レット”が、データが利用可能になると画像上で動作を
開始できるということである。この能力がなければ、マ
ルチメディアデータのダウンロードが終了するまで、そ
の動作のデータが表示されるのをユーザは待たなければ
ならないが、この能力があれば、そのデータをそのまま
利用できる。このような機能は発揮できるものの、Ja
va環境は、依然としてリアルタイム動作ではなく、そ
の対話機能(interactivity)には限界がある。マルチ
メディアデータの処理におけるこの限界をもたらしたも
のは、一つにはデータの質のためであり、また一つには
解凍及びグラフィックス操作のような必要なオペレーシ
ョンの数多くが計算集約的であるという事実のためであ
る。より高速のマイクロプロセッサを使用することには
幾つかの利点があった。実際にワールドワイドウェブの
著しい普及の理由の1つは、マイクロプロセッサ技術の
進歩であるとしなければならない。それにも関わらず、
インテル社X86.P5.P6のような現在のマイクロ
プロセッサは、依然として汎用プロセッサなのである。
このようなプロセッサが、マルチメディアの用途に最適
化されるのは、仮にあったとしても、極限られた場合だ
けである。更なる改善をもたらすためには、コプロセッ
サのような特別なハードウェアの使用のみならず、ハー
ドウェアをより効率的に編成するようなアーキテクチャ
の改良が必要となる。
【0006】ある種の特別なハードウェアは、この必要
性を取り扱うべく開発されてきた。例えば、デジタルシ
グナルプロセシング(DSP)集積回路は、リアルタイ
ムで音声データを処理するものとして知られている。D
SPデバイスは、パーソナルコンピュータをアップグレ
ードするためのアドオン型“サウンドボード”において
実現されていることがある。ビデオランダムアクセスメ
モリ(VRAM)デバイスはスクリーンディスプレイの
リフレッシュ速度を改善するものとして知られている。
パーソナルコンピュータにおいてディスプレイバンド幅
を改善することによりスクリーンリフレッシュを改善す
る回路基板である“ビデオボード”上に、VRAMが実
現されていることが多い。しかし、このような専用プロ
セッサ及びメモリは、従来の汎用プロセッサアーキテク
チャのコンテキストにおいて設けられるものであること
から、その利点も限定されたものとなる。業界の用語で
は、このようなタイプのコプロセッサを、既存のアーキ
テクチャに“ボルト留め”するという。このようなシス
テムでは、依然として1個の汎用プロセッサの制御のも
と、フラットデータストリームとして処理しているのが
常である。従って、マルチメディアアプリケーションを
リアルタイムで処理すべく、様々なハードウェア及びソ
フトウェア技術をより効率的に利用する新たなアーキテ
クチャに対する必要性は依然として存在するのである。
【0007】以上、マルチメディアアプリケーション及
びコンテンツの成長やリアルタイム対話機能に対する必
要性が、マルチメディアデータを伝送し処理するための
より強力な計算能力及びより広いデータ通信バンド幅の
必要性をいかに高めてきたかについて説明してきた。例
えばISDN及びT−1ラインの使用の拡大のような、
既存の巨大な有限バンド幅の通信インフラストラクチャ
による通信チャネルバンド幅の拡大は、通信上の助けに
はなるが、このようなインフラは高価で、依然として限
定された地域でしか使用することができない。また、実
質的に通信バンド幅が使用可能な場合ですら、クライア
ントマシンの処理能力には依然として限られたものであ
る。
【0008】ハードウェア能力や、圧縮アルゴリズム等
における技術的進歩は、それぞれの幾らか役立つもので
はあるが、これらの断片的な進歩は、それぞれが協調し
て機能しないために改善のレベルも限定されたものに過
ぎない。このことの一つの例には、ビデオボードのよう
な様々な“アクセラレータ”は、唯1つの汎用プロセッ
サに依存する旧式のアーキテクチャに単にボルト留めさ
れているに過ぎない、という上述の事実がある。従来の
並列コンピュータ処理のコンセプトは、移植性がないた
め、実際にマルチメディア環境に適用するのは困難であ
る。
【0009】
【発明が解決しようとする課題】従って、本発明の目的
は、マルチメディア環境の下でより効率的なデータ処理
が可能な、オブジェクト指向言語プログラム由来の中間
コードデータストリーム、またはマルチメディアデータ
ストリームの処理システム及び方法を提供することであ
る。
【0010】
【課題を解決するための手段】本発明は、マルチメディ
アデータ処理における実質的な進歩をもたらすべく努力
するなかでハードウェア及びソフトウェア環境全体を再
評価することにより達成されたものである。本発明の一
実施例によれば、改良されたマルチメディアソフトウェ
ア及びハードウェアアーキテクチャが、オブジェクト指
向パラダイムの利点を最大限に活用し、データ通信か
ら、リアルタイムのマルチメディアコンテンツのパフォ
ーマンスに至る全ての領域に亘ってこのパラダイムを支
えている。この新たなマルチメディアアーキテクチャに
おいては、ソフトウェアオブジェクトが、軽量プロセス
(LWP)または多重プロセッサ上で同時並行的に実行
されるスレッドとして実行レベルに降ろされる。従来よ
り、オブジェクト指向技術は、マルチメディアアプリケ
ーションをプログラミングまたは制作支援(authorin
g)するために用いられてきた。必要となるデータ通信
バンド幅を減らし、様々なハードウェアプラットフォー
ム間で移植可能とするため、これらのオブジェクト指向
アプリケーションは、コンパイルされて低級な疑似言語
である中間コード(例えば、Java(登録商標)のバ
イトコード)にされ、更にこの中間コードが実行時に翻
訳されて、中間コードと等価な、目標のプロセッサ上で
機能するオペレーションコードに変換される仕組みとな
っていた。
【0011】本発明の新規なアーキテクチャでは、そこ
に含まれる新規なタイプの“仮想マシン”機構におい
て、入力される中間コードストリームから、ソースプロ
グラムにおいて定義された元の“オブジェクト”及びス
レッドが復元される。この新規な仮想マシンは、ソース
プログラムにおいて用いられるオブジェクト及びメソッ
ドをインスタンス化するためのクラスライブラリを含
み、元のアプリケーションプログラムの“スレッド”を
復元する。ハードウェア面では、マイクロカーネルオペ
レーティングシステムの制御下にある複数のプロセッサ
が設けられる。1または2以上のハードウェアプロセッ
サは、例えば圧縮音声データの解凍若しくは画像オブジ
ェクト回転の計算のような、特定のマルチメディア機能
またはメソッドを実行するようにデザイン、または最適
化される。この仮想マシンは、クラスライブラリを照会
して、バイトコードストリームから復元されたオブジェ
クト及びスレッドと、現在使用可能なハードウェアのリ
ソースのリストとを相互に関連付ける。この仮想マシン
は、オブジェクトメソッド及びプログラムスレッドを、
可能な限りそのタスクに対して最も適切なプロセッサ上
で同時並行的に実行されるように編成する。このアーキ
テクチャは、並列処理マシンの性能を発揮すると共に、
疑似コードプログラムの、様々なプラットフォーム間で
の移植性を維持する。更に、この仮想マシンは、それが
使用可能なハードウェアリソースを自動的に選択して使
用でき、また、このようなリソースにはまだ市販されて
いないコア(マイクロプロセッサ)も含まれる。この場
合にも、アプリケーションプログラムの移植性は損なわ
れない。
【0012】ハードウェアに直接サポートされているこ
れらの機能を必要とするオブジェクトまたはスレッド
は、その実行のため対応するプロセッサへ回される。こ
の擬似言語または中間コード(例えば、Javaバイト
コード)を直接実行するために、他のプロセッサまたは
“コア”を設けることもできる。“フラット”スレッド
またはコードセグメントを、オペレーションコードに変
換することなく実行するために、これらのコードが適合
するプロセッサである“ネイティブ”プロセッサ(例え
ば、サンマイクロシステムズ社のSUN Pico−J
avaエンジン)に転送することもできる。従って、疑
似言語または中間コードの命令の直列ストリームを目的
のプロセッサ上で実行させるために、この新たなアーキ
テクチャでは、従来技術のように単に翻訳するのでな
く、並列プロセシングの原理とオブジェクト指向パラダ
イムとを結び付けて、実行速度を高めた。つまり、オブ
ジェクト指向環境の利点を保存したまま、それをハード
ウェアにまで拡張したのである。
【0013】オブジェクト指向パラダイムに従い、スレ
ッド及びオブジェクトは、リソース、ここでは選択され
たハードウェアプロセッサに対する“呼び出し”により
実行される。従って、本発明の一実施例は、実行のため
のソフトウェアプロセスとハードウェアの“整合性”を
改善する。このシステムは、仮想マシン、マイクロカー
ネル、及びハードウェアのそれぞれが、特定のオブジェ
クトクラスメソッドに関連するタスクを実行するために
配置された分散型構成要素(現在の技術ではプロセッサ
又はコア)を含んでいるという意味で、ハードウェアを
も含む全体に亘ってオブジェクト指向である。この新た
な仮想マシンのプログラムは、任意のハードウェアプラ
ットフォーム用としてプログラミングされ得ることか
ら、オブジェクト環境の移植性についての利点が保存さ
れる。また、この仮想マシンは、現在使用可能なプラッ
トフォームハードウェアリソースの全てに適合してお
り、従ってコストパフォーマンスに関して柔軟性がもた
らされる。
【0014】本発明の好適実施例には、メモリに格納さ
れた仮想マシンプログラムが含まれる。この仮想マシン
は、オブジェクトクラス定義のストアドライブラリ(st
oredlibrary)にアクセスでき、またバイトコードのよ
うな、流れ込んでくる疑似言語命令即ち中間コードスト
リームを受け取り、それを一次格納するバッファとして
機能するハードウェアにもアクセスできる。この仮想マ
シンは、バイトコードにおいて参照される全てのクラス
がストアドライブラリ内に存在するようにチェックし、
かつ、全ての欠落しているクラスを、中間コードストリ
ームを転送するソースであり得るネットワークリソース
からダウンロードするクラスローダ(class loader)を
含む。
【0015】本発明の目的、特徴、及び利点は、以下に
記載の発明の実施の形態の項を添付の図面と共に参照す
ることにより一層明らかとなろう。
【0016】
【発明の実施の形態】図1は、オブジェクト指向プログ
ラミング言語の仮想マシンインプリメンテーションのデ
ータ流れ図である。サン・マイクロシステムズ社のJa
va(登録商標)環境はこのインプリメンテーションの
一例である。このJava環境は、いくつかの異なる部
分を含む。第1に、C言語ファミリーに属するJava
プログラミング言語が存在する。これはC++に類似し
たオブジェクトの意味論を有するが、更に追加的なオブ
ジェクトの特徴と、不要なオブジェクトを回収するガー
ベジコレクション(garbage collection)機能を有す
る。Javaは、メソッドやメンバー変数の参照先を実
行時に決める動的結合をサポートしている点、実行時コ
ードローディングが可能な点、及び安全にコードの実行
ができる点で有名になった。図1において、ブロック1
0はJava言語ソースコードからなるプログラムを表
している。
【0017】Java言語プログラムは様々なマシンア
ーキテクチャ上で実行するためコンパイルされ得る。し
かし、Java環境の第2のコアピースは、図1におい
て点線30の下として示されている仮想マシン(VMと
略称される)である(仮想マシンAPI)。 Java
の仮想マシンは、抽象的なプロセッサアーキテクチャを
実現する。この仮想マシンは、様々なオペレーティング
システム及びハードウェア上でソフトウェアにより実現
され得る。Javaソースコードプログラム10はコン
パイルされて、擬似コードである中間コード、即ちJa
va仮想マシン命令セットに基づく一連の“バイトコー
ド”となる。この仮想マシンは、各目的プラットフォー
ムに対して移植されなければならない。仮想マシン40
においてランタイムインタプリタは、エミュレーション
に類似するタスクを実行する。つまり、ランタイムイン
タプリタは、Java命令セットバイトコードを、目的
のプラットフォームハードウェア上で実行可能なオペレ
ーションコードに変換するのである。
【0018】このプロセスの一部として、インタプリタ
は、呼出しにより、コードをJava環境の他の構成要
素である基礎クラスライブラリ(Fundation Class Libr
ary)、即ちJavaクラス定義に読み込む処理も行
う。このステップは、プログラムオブジェクトが予め定
義されたクラスの単なるインスタンスであるようなオブ
ジェクト指向パラダイムにおいては、基本的なステップ
である。インタプリタが使用可能な他のライブラリは、
必ずしも実現される必要はないが、Javaに様々な機
能を与えている。例えば、VMは、一般にCコードTC
P/IP機能のライブラリを一般に含む。とにかく、
“翻訳された”コードが得られると、次いで目的のプラ
ットフォームオペレーティングシステム44に対する呼
出しを行って、そのコードが実行され得ることになる。
このとき、オペレーティングシステム44はプロセッサ
ハードウェア46とのインタフェースを取るのである。
この従来技術における環境では、元のオブジェクト指向
言語によるプログラムを、目的のプラットフォーム上で
の実行のため、直列フラットコード(serial flat cod
e)に変換する。仮想マシン40が実現された任意のプ
ラットフォーム上で同じソースコードプログラム10を
実行することができることから、従来の環境で移植性が
得られたのである。Java仮想マシンのインプリメン
テーションについての詳細は、例えば、ブライアン・ケ
ース(Brian Case)氏による論文“Implementing the J
ava Virtual Machine - Java's Complex Instruction S
et Can Be inSoftware; Microprocessor Report, March
25, 1996, p. 12”に記載されている。Javaによっ
て移植性が得られるが、クライアントマシン上でのプロ
グラムの実行は、従来通りの汎用プロセッサ上での直列
フラットコードの実行に依存している。
【0019】図2は、本発明による新規なマルチメディ
アアーキテクチャを示す概念図である。図2において、
データ(ここではプログラムコード及びデータを意味す
る)は、図面の左側から右側の方に流れている。Jav
aバイトコードのようなオブジェクト指向疑似コード、
または中間コードの形態で入力されたデータは受け取ら
れて実行される。バイトコードストリームは、ローカル
に存在する物(同じマシン内部に存在)か、またはロー
カルエリアネットワーク若しくはワイドエリアネットワ
ークを介してサーバからクライアントマシンに転送され
得る。この入力データストリームは、インターネットの
ようなワールドワイドネットワークを介して伝送するこ
とも可能である。バイトコードのストリームは予め定義
された仮想マシンAPIでコンパイルされる。仮想マシ
ン102は、ランタイムインタプリタ、ガーベジコレク
ション機構、及び後に説明する他の機構を有する。この
入力ストリームは、オブジェクト指向疑似コード、また
は中間コードである必要はあるが、Javaの“バイト
コード”に限定されるものではない。本発明のシステム
は、例えばMPEG−4“シンタクス記述言語”のよう
な新規なマルチメディアプログラミング言語と共に用い
たとき特に有用である。
【0020】“MPEG−4”は、ディジタルオーディ
オ−ビジュアルデータの通信、アクセス、及び操作のた
めの(特にコンテンツベースの)新規な方法をサポート
するものとして浮上してきた符号化規格である。この規
格は未だ普及しておらず、完全に確立されるまでには数
年を要すると思われる。それにも関わらず、そのコンセ
プトは明らかであり、即ちオーディオ−ビジュアルオブ
ジェクトそれ自体の符号化のためのものである。従来の
“フラット”表現において、画像及び音声フレームはオ
ブジェクトを区別しない。このフレームの全ての部分は
等しい優先度を有し、符号化時には、例えば詳細なバッ
クグラウンドデータがより重要な前景オブジェクトから
ビットを“盗む”ことが可能である。MPEG−4コミ
ュニティは、新しいレベルの性能及び対話機能に達する
ためには、オブジェクトベースの符号化のある種の形態
が必要であると信じている。
【0021】企図されたMPEG−4の機能性は、対話
機能、高い圧縮レート、及び/またはユニバーサルなア
クセス可能性を容易にサポートする。鍵となるのはコン
テンツベースの対話機能、即ちオーディオ−ビジュアル
シーンにおける意味のあるオブジェクトとの対話の可能
性のコンセプトである。具体例として、映画の一場面で
走行中の自動車が画面に写っていることを想像された
い。通常は、たとえ対話が行われない場合でも、映画を
見るためには、かなりの量のデータ(フレーム全体)を
連続的にリアルタイムで圧縮し、転送し、解凍し、表示
し、リフレッシュしなければならない。つまり、フレー
ムのデータ全体が処理されるのである。しかし、MPE
G−4では、データの大半をスタティック及び恐らく重
要でないものであると認識する。ただし、車のホイール
のようなオブジェクトは変化する(回転する)。従って
MPEG−4の符号化では、各車のホイールをオブジェ
クト(物理的オブジェクトに対応するソフトウェアオブ
ジェクト)として取り扱う。MPEG−4シンタクス記
述言語(MSDL)は、自然のオブジェクト及び人工的
なオブジェクトの双方との相互作用をサポートするテン
プレート(ひな型)を提供する。車を表示するために膨
大な画素データを処理する代わりに用いられるMSDL
により記述されたホイールオブジェクトは、単純に“ス
ピン”メソッドと称する。“ISO/IEC JTC1/SC29/WG11/N
0998 Coding of Moving Pictures and Associated Audi
o Information (MPEG-4 Proposal Package, July, 199
5) ”を参照されたい。ここに開示する本発明のシステ
ムは、このMSDLで符号化されたマルチメディアアプ
リケーションの処理に容易に適用することができる。
【0022】再び図2を参照すると、仮想マシン102
は、ソースコード言語の少なくとも1つの基礎クラスラ
イブラリ(ソフトウェアオブジェクト定義のセット)も
含み、また好ましくは拡張クラスライブラリを含む。J
ava基礎クラスは、例えば、Java Develo
pment Kitに含まれる全ての約15個の異なる
パッケージを有する。例えば、JDKパッケージは、j
ava.applet、java.awp、java.
io、java.net、及びjava.imageを
有する。具体例として、アプレットインタフェースの1
つは、オーディオクリップをプレイバックするのに用い
られる。(“インタフェース”は特別な型のJavaク
ラスである。)パッケージjava.awpは、ユーザ
インタフェース及びオンスクリーングラフィクスを構築
するために必要なインタフェース及びクラスを含む。そ
の例を挙げると、ボタン、ラベル、パネル、色等があ
る。画像パッケージクラスは画素イメージの操作を取り
扱う。
【0023】拡張クラスは、インターネット上での商用
トランザクション、暗号、バンキング、データベースA
PI、及び様々なグラフィクスオペレーションのような
ものを実現するための、より特殊化したクラスであり、
その多くが現在構築中である。以下に述べるように、本
発明のマルチメディアアーキテクチャは、新たな拡張ク
ラスが将来出現しても、その利点を最大限に利用するこ
とができ、特に重要なのは、このアーキテクチャが、拡
張クラスオブジェクト呼出しの実行のための特殊なハー
ドウェアプロセッサを設置し得る点である。このような
プロセッサは、例えば、専用の特別目的プロセッサ、R
ISCコア、ネイティブエンジン、または他の型のまだ
完成していないプロセッサを含み得る。新しい拡張クラ
スの進歩は、ハードウェア設計者にこれらクラスメソッ
ドの実行のための特殊なプロセッサを提供する動機を与
え得る。
【0024】その動作において、仮想マシン102は、
ソースコードで示されたソフトウェアオブジェクトを、
全ての入力されたバイトコードを(a)フィールド、
(b)オブジェクト、及び(c)スレッドにマッピング
することにより再構築する。フィールドは、コンパイル
時間に完全に開示されない変数である。仮想マシンは、
それがアクセスされ得るようになる前にこのフィールド
を分解する。オブジェクトは、勿論、クラスライブラリ
において定義されたクラスのインスタンスである。
【0025】軽量プロセスとも称されるスレッドは、そ
の命令を個別に実行し得る個別の制御ストリームであっ
て、マルチスレッドプロセスでは多数のタスクを同時に
実行することができる。つまり、多数のスレッドを1つ
のプロセスとして実行することができるのである。
(“スレッド”なる用語と“軽量プロセス(LWP)”
なる用語が交換可能なものとして用いられる場合もあ
る。しかし、インプリメンテーションによっては、各ス
レッドと1つのLWPとの間の1対1の対応関係が必ず
しも成立しない。)しかし、本発明は、実行における同
時並行性を最大限に高める方法を求めている。本発明で
は、以下に詳しく説明するように、各スレッドに対する
個別の実行のスケジューリングを企図しているのであ
る。Java言語はスレッドクラス群を実現する。基礎
クラス及び拡張クラスは仮想マシンの一部分であり、こ
れにより再構築がうまくできるのである。というのは、
これらのクラスが、コンパイラが疑似コードまたはバイ
トコードを生成するために用いたライブラリとしての同
じ情報を含んでいるからである。この仮想マシンは、擬
似コードで用いられているがライブラリの中には見いだ
せない任意のクラスをダウンロードするクラスローダ機
構も有している。
【0026】“スレッド”またはマルチスレッドプログ
ラミングの概念は、従来技術においては、アプリケーシ
ョンスループット、アプリケーション応答性、及びプロ
グラム構造を改善すると共に、使用できる並列プロセッ
サを効率的に開発するためのプログラム記述の方法論と
して有名であった。スレッドを研究実験用に用いること
は、しばらくすると大学や研究所において広まってき
た。しかし、商用オペレーティングシステムにおけるイ
ンプリメンテーションの段階に入ってきたのはここ数年
のことである。現在3つの主なマルチスレッドライブラ
リのセットが存在する。即ち、UNIX、OS/2、及
びWindowsNTである。マルチスレッド技術が、
マルチプロセッサ(SMP)マシンの利点を利用するこ
とで広範に改善されたパフォーマンスを得ることを可能
にしたのは明らかである。シングルプロセッサマシンに
おいては、このような利点はそれほど明確ではないが、
同時に多数のタスクを実行しなければならないアプリケ
ーションにおいてはやはり劇的な効果を発揮し得る。
【0027】VMSまたはUNIXのような典型的なマ
ルチタスクオペレーティングシステムにおいては、ユー
ザ空間とカーネル空間との間にファーム分割ラインが存
在する。この区分はハードウェアによって強化される。
ユーザプログラムはユーザ空間において実行される。ユ
ーザ空間はユーザコード、グローバルデータ、プログラ
ムカウンタ、及びスタックポインタを含む。プログラム
またはプロセスが直接アクセスし、変更できるデータ
は、ユーザ空間内のデータに限定される。ユーザプログ
ラムがカーネルから何かを必要とするとき(例えば、フ
ァイルの読み出し、または現在時間の読み出し)、ユー
ザプログラムはシステム呼出しを作成しなければならな
い。このシステム呼出しは、幾つかの引数をセットアッ
プし、次いで空間的割り込み命令を実行するライブラリ
関数である。この命令によりハードウェアがカーネルへ
の割り込みを開始し、次いでマシンの支配権を握るので
ある。カーネルはどのような動作が必要なのかを判定
し、且つその動作を実行してよいか否かを決める。最後
に、このカーネルは所望のタスクを実行し、何らかの情
報をユーザプロセスに戻す。
【0028】オペレーティングシステムは、I/Oメモ
リ、プロセッサ等を完全に制御していることから、進行
中の各プロセスに対するデータを維持しておく必要があ
る。このデータからオペレーティングシステムはプロセ
スの状態がどのようなものであるかを、即ちどのファイ
ルが開いているか、どのユーザがそれを走らせているか
ということ等を認識することができるのである。従って
マルチタスク系のプロセスのコンセプトはカーネル内に
も拡張され、カーネルにおいて、この情報がプロセス構
造の中に維持されるのである。マルチタスクシステムに
おいては多数のプロセスを同時並行的に走らせることが
できる。各プロセスはそれぞれのメモリ空間及びそれ自
身のスタックプログラムカウンタ等を有している。何れ
の2つのプロセスも、特別な共有メモリセグメントをセ
ットアップしない限り互いのメモリを見たり、変えたり
することはできない。従って、各プログラムは、1プロ
セス当たり、1つのスタック、1つのプログラムカウン
タ、及び1組のCPUレジスタを有する。従って、これ
らのプログラムまたはプロセスのそれぞれは、一度に1
つのことしか実行できず、これはシングルスレッド方式
である。
【0029】マルチタスクオペレーティングシステムが
複数のプロセスを走らせることにより同時に複数のこと
を実行できるように、1つのプロセスは、複数のスレッ
ドを実行することにより同じことができる。各スレッド
は、その命令を個別に実行し得る異なる制御の流れであ
り、従ってマルチスレッドプロセスは多数のタスクを同
時に実行できるのである。例えば、1つのスレッドがG
UIを走らせる一方で第2のスレッドがI/Oを実行
し、第3のスレッドが計算を行うこともできる。スレッ
ドはプロセスに類似しているが、スレッドの方はデー
タ、コード、カーネル状態、及びCPUレジスタの組を
有する。しかし、プロセスの方はカーネルレベルのエン
ティティであって、仮想メモリマップ、ファイル記述
子、ユーザID等のようなものを有しており、各プロセ
スはそれ自身がこれらを集めたコレクションを有する。
従って、プログラムがプロセス構造内のデータにアクセ
スし、その状態を照会し、或いは変更するための唯一の
方法は、システム呼出しよる方法だけである。
【0030】従来技術においては、スレッドは主にユー
ザレベルのエンティティであった。スレッド構造はユー
ザ空間に存在し、スレッドライブラリコールで直接アク
セスすることができた。このスレッドライブラリコール
は単なるユーザレベルの関数である。レジスタ(スタッ
クポインタ、プログラムカウンタ等)は、全てスレッド
の一部であり、各スレッドはそれ自身のスタックを有す
るが、それが実行するコードはスレッドの一部分ではな
かった。実際のコード(関数、ルーチン、シグナルハン
ドラー等)は、グローバルなものであり、任意のスレッ
ドで実行することができた。重要な点は、プロセスにお
ける全てのスレッドがそのプロセスの状態を共有してい
るということである。スレッドは完全に同じメモリ空間
内に存在し、同じ関数を参照し、同じデータを利用す
る。1つのスレッドがプロセス変数を変えると、他の全
てのスレッドもそれが次にアクセスする時にその変化を
認識する。1つのスレッドが読み出しのためにファイル
を開くと、他の全てのスレッドもそれからの読み出しを
行うことができるようになる。このような編成では、何
らかの同期化及びスケジューリングの必要性が生ずる
が、ここには実際のプロセスの切り替えのカーネルオー
バヘッド(overhead)なしに多数のタスクを実行できる
という利点がある。
【0031】図2を再び参照すると、再構築されたオブ
ジェクト及びスレッドがオペレーティングシステムAP
I104に従っている。オペレーティングシステム10
6は、後に詳しく説明するように、オブジェクト及びス
レッド及びJavaバイトコードをマルチコアまたは並
列プロセッサ112に転送するリアルタイムマイクロカ
ーネルオペレーティングシステムを含む。本発明の重要
な側面は、プログラムスレッドと“進行中(on the fl
y)”ハードウェアリソースとの“整合”を改善する点
である。これら複数のスレッドは同時に実行されること
から、このスレッドは同じユーザメモリ空間にアクセス
でき、プログラマーは、そのオペレーションを調和また
は“同期化”させることに注意を払わねばならない。1
つのスレッドは、他のスレッドがデータを改変している
時に同時にデータの読み出しを行うことができない。従
って、スレッドは、少なくとも一時的にはオブジェクト
に排他的なアクセスをする必要がある。スレッド同期化
のための幾つかの技術が知られている。最も単純な場合
においては、Mutual Exclusion Lo
ckまたはmutexにより唯1つのスレッドが一時的
に、例えばグローバルデータを変更するコードのような
所与のコードピースを実行する。この他、所与の条件テ
ストが真となるまでスレッドの実行を禁止する条件変数
が知られている。
【0032】Javaにおいては例えばスレッドはこの
言語の一体化された一部分としてサポートされている。
Javaはクラスプロトコルにおいて定義される同期性
メソッド群を備えている。同期化されたメソッド群を備
えたクラスが“初期化”されると、新しいオブジェクト
が“モニタ(monitor)”を与えられる。1つのオブジ
ェクトにおける同期性メッセージを呼び出すためスレッ
ドは、そのオブジェクトのモニタを必要とする。モニタ
を獲得することが可能な場合には、スレッドは同期化メ
ソッドに入るが、それがモニタを有している間は他のス
レッドはオブジェクト内の同期化メソッドを呼び出すこ
とができない。スレッドがオブジェクト内の同期化メソ
ッドを呼び出し、そのオブジェクトのモニタが他のスレ
ッドによって獲得されている場合には、呼び出しスレッ
ドは他のスレッドがモニタを解放するまでブロックされ
る。元のスレッドがモニタを獲得する同期化メソッドを
出た時、モニタの所有権はブロックされたスレッドに移
り、この時このスレッドはブロックされていたメソッド
に入ることができるようになる。仮想マシン102は、
アプリケーション層スレッドを識別し、以下に説明する
ように、これらのスレッドを個別に、同時並行的に実行
するため区分する。
【0033】仮想マシンは、続いてホストプラットフォ
ーム上での実行のためのコードを生成する。重要な点
は、仮想マシンが初めにプラットフォーム上で使用可能
なハードウェアリソースのリストを調べ、識別されたス
レッドとハードウェアリストを備えたオブジェクトと比
較する点である。つまり、仮想マシンはマシン内のハー
ドウェアリソースを全て認識しているのである(たとえ
アプリケーションプログラマーは知らなくても)。使用
可能なハードウェアリソースに応じて、各実行スレッド
またはLWPに対するメモリ内のスタック上に適当なア
ドレス及び変数が配置される。実行可能な符号は、各ス
レッドに対するメモリ内に配置され格納される。実行可
能なものを生成する過程では、それらのスレッドに対す
るオペレーションコードが翻訳され、これはネイティブ
プロセッサエンジンに転送されない。次いで、仮想マシ
ンはマイクロカーネルオペレーティングシステム104
を呼び出し、スレッドの実行のスケジューリングを行
う。
【0034】仮想マシンにより実行されるスレッドの識
別は、アプリケーションのプログラマーにより特別にそ
のようなものとして書かれたスレッドに限定されない。
仮想マシンは、ハードウェアリソースリスト内の特定の
プロセッサ、例えば音声ファイルに“ベースブースト”
を加えるプロセッサを見つけることができる。仮想マシ
ンが呼び出された“ベースブースト”オブジェクトを見
つけた場合、仮想マシンはその呼び出しを“ベースブー
スト”ハードウェア上で実行されるスレッドとして編成
する。というのは、このハードウェア機能はソフトウェ
アメソッドに対応しているからである。一般に、新たな
仮想マシンにおける“スレッド”は、アプリケーション
プログラマーにより特別に書かれたスレッドであるか、
若しくは実行用のスレッドとしての仮想マシンによって
書かれた任意のオブジェクト若しくはコードフラグメン
トであり得る。従って、仮想マシンまたはカーネルは、
それがより小さいスレッドを処理するのに使用可能な適
当なハードウェアリソースを有している場合にはスレッ
ドを2つに“分割”することができ、これにより実行の
同時並行性を高めることができる。図5に示すのは、2
つの異なるプロセッサ上で実行するために分割された
(経路324及び326参照)、再構築されたスレッド
T2である。
【0035】マイクロカーネルオペレーティングシステ
ム104には、RTOS、即ち、リアルタイムマイクロ
カーネルオペレーティングシステムとして知られている
市販のこのタイプのオペレーティングシステムを用いる
ことができる。ISI Integrated Sys
tems Solutions社(米国カリフォルニア
州マウンテンビュー)はpSOSと称するこのような製
品を発売している。MicroWare社(米国アイオ
ワ州デモイン)も、OS−9と称するこのような製品を
発売している。またWindRiver社(米国カリフ
ォルニア州オークランド)は、VxWorksオペレー
ティングシステムを発売している。マイクロカーネルは
ハードウェアリソース106とインタフェースをとって
いる。即ち、このマイクロカーネルは、オブジェクト及
びスレッドをソートし、対応するハードウェアプロセッ
サ108に送るのである。マイクロカーネルは、必要な
程度ハードウェアリソースのスケジューリングを取り扱
っている。例えば、20個の異なるタスクが必要である
が、存在するプロセッサが20に満たない場合若しくは
プロセッサミックスが、実行されるスレッド及びオブジ
ェクトのタイプに対応していない場合には、マイクロカ
ーネルは、従来より周知の技術を用いてタスクのスケジ
ューリングを行う。マイクロカーネルはネットワークフ
ァイルシステム(NFS)、ネットワーキングオペレー
ション、周辺機器ドライバ、仮想メモリ管理、ユーザイ
ンタフェース及び他のオペレーティングシステムが従来
通り責任を負っている他のタスクのハンドリングにも関
係している。
【0036】2つの追加的なメモリ管理タスクもマイク
ロカーネルに割り当てられている。第1は、“ガーベジ
コレクション”、即ちコードに参照がもはや存在してい
ないオブジェクトまたはスレッドに割り当てられたメモ
リを解放するタスクである。ガーベージコレクションの
詳細は、Java環境における例として知られている。
ガーベージコレクションタスク自体は1つのプロセスで
あって、適切なプロセッサに割り当てられ得る。好まし
くは、オペレーティングシステムがJava言語で書か
れ、ガーベージコレクションタスクはJavaネイティ
ブプロセッサ上でネイティブコードで実行できるように
すべきである。他の空間的メモリ管理タスクは、ネイテ
ィブプロセッサ群、例えばPicoJava(登録商
標)プロセッサの全てに亘る分散メモリの管理である。
【0037】図3には、本発明によるマルチメディアア
ーキテクチャの一実施例が示されており、ここではハー
ドウェアリソース108の更なる詳細が示されている。
このハードウェアリソース、一般にプロセッサコアのそ
れぞれは、一例としてライン124で示されたように、
マイクロカーネル104とデータのやりとりを行う。以
下のタイプのプロセッサは、本発明の現時点での好適実
施例の実例である。しかし、特定のマルチメディアアプ
リケーションに対するパフォーマンスを最適化するため
の、多くの異なるハードウェアリソースの組み合わせに
このアーキテクチャを適用することができる。本発明の
利点の1つは、仮想マシンを変更することなく、様々の
プロセッサを任意に追加したり除去したりできるという
点である。これにより、パフォーマンス改善のための極
めて高い柔軟性及び移植性が得られる。図3においては
1つの例としてハードウェアリソース108が、ビデオ
バックグラウンドプロセッサ120、DSPオーディオ
プロセッサ122、ビデオ解凍プロセッサ124、二次
元オブジェクト回転プロセッサ126、ステレオオーデ
ィオ同期化プロセッサ128、三次元レンダリングプロ
セッサ130、グラフィカルユーザインタフェースツー
ルプロセッサ132、追加のビデオバックグラウンドプ
ロセッサ134、及び1又は2以上のネイティブバイト
コードプロセッサ136を有する。
【0038】このようなプロセッサの一部または全てに
は、RISC Machines社(英国ケンブリッ
ジ)製のARM−8 RISCプロセッサのような市販
のプロセッサコアを用いることができる。このタイプの
プロセッサは、小型で消費電力の少ない構成で、100
MIPSのオーダの高い処理能力が得られる。更に、1
又は2以上のプロセッサをネイティブバイトコードコア
とすることができる。これらは仮想マシン疑似言語命令
を直接実行するように設計されたプロセッサである。入
手可能な専用プロセッサ1つに対して適合していないコ
ードセグメントまたはスレッドは、以下に説明するよう
に、その実行のため仮想マシンによりネイティブバイト
コードコアに転送される。別の形態においては、上述の
プロセッサの一部または全てが、ネイティブバイトコー
ドコアとなり得る。この場合、仮想マシンにおけるコー
ド生成においてオペレーションコードの翻訳は不要とな
る。ハードウェアリソースの特定の選択及び組み合わせ
には、他の工学的な設計上の選択におけるコストとパフ
ォーマンスとのトレードオフの関係が関連する。好まし
くは、プロセッサの一部または全てが、サイズ、コス
ト、及び電力消費を最小のものとすべく1つの集積回路
チップ上に実現される。図3には、上述の2つの実施例
において、ソフトウェアオブジェクトが仮想マシン10
2において、どのように再構築され、対応するハードウ
ェアプロセッサに送り込まれてゆくのかが示されてい
る。ここに示す例は、破線152によって示されたビデ
オバックグラウンドオブジェクト及び破線150によっ
て示された三次元ビデオオブジェクトである。
【0039】図4は、仮想マシンプログラム102をよ
り詳細に示した図である。この仮想マシンは、好ましく
はソフトウェアにおいて実現され、前述の入力されるバ
イトコード100のストリームを受け取るハードウェア
バッファ、パイプラインまたはその類似物200とやり
とりする。仮想マシンの第1のオペレーションは、再構
築ステップ200に示されている。再構築ステップ20
0には、入力されたバイトコードにおいてどのクラスが
参照されているかを判定し、クラスライブラリ204に
おいてそのクラスを検索するクラスローダが含まれてい
る。仮想マシンに格納されたクラスライブラリは、アプ
リケーションプログラミング言語ライブラリを含む。例
えば、Java言語の場合は、基礎ライブラリがAWT
クラス(抽象ウィンドウズツールキット)、ネットワー
ククラス、ユーティリティ、グラフィクス、サウンド、
ビデオクラス等を含む。拡張クラスの例は、前に記述し
た。好ましくは、適用可能な拡張クラスが仮想マシン内
に格納されて、デジタルクラスのリンキングの増加を最
小限に押さえるようにする。再構築ステップ202で
は、欠落した任意のクラス、即ちバイトコードにおいて
参照されているが、ストアドライブラリには入っていな
いクラスを識別し、図面の矢印206で示されるよう
に、入力ストリーム100のソースから欠落したクラス
をダウンロードする。バイトコードを通してパーズ(オ
ペランド解析)し、且つクラスライブラリを参照するこ
とにより、再構築ステップ202では、ソースプログラ
ム(図1の10)において使用される元のソフトウェア
オブジェクト、スレッド、及びコードフラグメントを再
構築され得る。これらのオブジェクト、スレッド、及び
バイトコードセグメントのリストは、矢印208で示さ
れるような関連付けプロセス210に与えられる。この
関連付けステップ210では、ハードウェアリソースリ
スト212を限定する。
【0040】ハードウェアリソースリストは、ハードウ
ェアリソース108とインタフェースをとっているマイ
クロカーネル104とのやりとりを通して形成される。
続けてプロセス210は、実行する必要のあるオブジェ
クト、スレッド、及びバイトコードと現在使用可能なハ
ードウェアリソースとを互いに関連付ける。プロセス
は、各オブジェクトにスレッドと最も適切な使用可能な
リソースとを結合する。その一例は前に図3を参照して
説明したものである。次に、ステップ216において、
仮想マシンが必要な変数(フィールド)及び他のリファ
レンスを、必要に応じてクラスライブラリを用いること
により分解する。仮想マシンは与えられたタスクの実行
のために必要なパラメータ及び変数の全てを編成する。
実行されるべき必要不可欠な4つのタイプのタスクまた
はプロセスが存在する。即ちスレッド、オブジェクト、
アプレット、及びフラットコードセグメントである。コ
ジェネレーションプロセス220は、従来のコードジェ
ネレーションプロセスと類似したものである。このプロ
セスでは、オペレーションコードが、仮想マシン疑似言
語から実行可能な機械語へ翻訳される。同じ命令セット
を有していない異なるハードウェアプロセッサ上で実行
のため指定されている場合には、これはプロセスによっ
て異なるものとなり得る。ある種のプロセス、特にフラ
ットコードセグメントは、オペレーションコードへの翻
訳なしにネイティブ疑似コードプロセッサ上で直接実行
することができる。例えば、Javaバイトコード疑似
言語のコードセグメントは、米国カリフォルニア州サン
マイクロシステムズ社製PicoJavaネイティブコ
ードプロセッサ上で直接実行することができる。コジェ
ネレーションプロセス220は、実行されるべき各プロ
セスに対するスタック上にオペランド、変数、ポインタ
等を適当に配置し、ついでプロセスをマイクロカーネル
104に“パス”する。このプロセスにおいては、コジ
ェネレーションステップ220により各実行可能なプロ
セスが、上述の関連付けステップ210において決定さ
れた適当なプロセッサに向けられるようにされる。図4
の下部において、例えば、ライン230で示された実行
プロセスが対応するプロセッサ120、122、及び1
36上で実行される。プロセッサの様々なタイプについ
ては、図3に関連して前にまとめてある。
【0041】実行スレッドは、ハードウェアリソースと
必ずしも1対1で結合されなくてもよい。アプリケーシ
ョンによっては、使用可能なリソースに基づいて“進行
中の”スレッドを再構築できる“スマート”カーネルを
設けることによりより高い性能を得ることができる。好
ましくは、十分な数のプロセッサ、即ち20、30若し
くは100個に達する数のプロセッサが設けられる。こ
うして多くのスレッドが同時並行的に実行される。更
に、プロセス全体は連続的で且つ動的である。従って、
ハードウェアの割り振りは、スレッドの実行の終了時に
コンスタントに変化し、新たなスレッドが割り当てられ
る。システム全体を1個のシリコン“チップ”に組み込
んだインプリメンテーションでは、低コストで高い性能
が得られる。
【0042】更に性能を改善するためには、システム内
に“スマートコントローラ”を設ける。スマートコント
ローラは、マイクロカーネルとハードウェアリソースと
の間に効果的に設けられ、バスへのアクセスを制御す
る。このコントローラは、アドレスをプロセッサに送
り、バストラフィックを低く押さえることによりコンテ
ンション及び遅れを少なくする。
【0043】図5には、本発明の広義のコンセプトが示
されている。図5において、ソースプログラム300は
T1、T2、及びT3で示された幾つかのプログラムス
レッドを含む。ソースプログラム300は適当なコンパ
イラ302においてコンパイルされ、一連の疑似言語バ
イトコード304を形成する。コンパイラ302は、3
00において使用されている特定のオブジェクト指向プ
ログラム言語用のクラスライブラリを含む。バイトコー
ド304は、ネットワーク、インターネット等を通し
て、磁気ディスク若しくは光学ディスクのような機械が
読み出し可能な媒体を用いること等、様々な手段を用い
てにより格納され、転送され、若しくは分配され得る。
【0044】図5の下部において、クライアントマシン
上で受け取られたバイトコードは、上述のように仮想マ
シン306において処理される。仮想マシンは、プログ
ラムスレッド及びオブジェクト310を再構築し、次い
で一般に符号320で示された対応する特定目的のプロ
セッサに転送される。従って元のプログラム300のオ
ブジェクト指向性はハードウェアプロセッサ320を通
して再構築され、運ばれてオブジェクト指向パラダイム
の移植性、コンパクトさ、及び他の利点を保持したまま
同時並行的な実行が可能となるという利点が得られるこ
とになる。ここに概要を示した適当なハードウェアプロ
セッサを用いることにより、本発明のアーキテクチャ、
従来のソリューションよりも極めて効果的なマルチメデ
ィアデータのリアルタイム処理が可能となる。
【0045】本発明の原理について、好適実施例を用い
て説明してきたが、本発明の範囲を逸脱することなく編
成や詳細を様々に変更することが可能であることは明ら
かであろう。
【0046】また、本発明の一実施形態であるソフトウ
ェアプログラムを、任意の記憶媒体に格納して、保存、
分配、及び使用することが可能である。
【0047】
【発明の効果】以上より、本発明により、マルチメディ
ア環境の下でより効率的なデータ処理が可能な、オブジ
ェクト指向言語プログラム由来の中間コードデータスト
リーム、またはマルチメディアデータストリームの処理
システム及び方法が提供される。
【図面の簡単な説明】
【図1】マルチメディアアプリケーションにおいて用い
られる従来のオブジェクト指向仮想マシン環境を示す単
純化されたデータ流れ図である。
【図2】本発明による、マルチメディアアプリケーショ
ンを処理するための新規なオブジェクト指向マルチプロ
セッサアーキテクチャを示した図である。
【図3】図2のアーキテクチャをより詳細に示した図で
ある。
【図4】図2及び図3の仮想マシンをより詳細に示した
データ流れ図及びハードウェアブロック図の混成図であ
る。
【図5】図2及び図3の新規なアーキテクチャにおける
プログラムスレッドの取り扱いを示した機能ブロック図
である。
【符号の説明】
10 Java言語からなるソースコード 20 Java言語のバイトコード 30 仮想マシン API 40 ランタイムインタプリタ 42 基礎クラス群 44 オペレーティングシステム 46 プロセッサ 100 入力バイトコードストリーム 102 仮想マシン 104 オペレーティングシステム又はマイクロカーネ
ル 106 ハードウェア 108 コア(プロセッサ)群 110 スレッドデータの流れ 120 ビデオバックグラウンドプロセッサ 122 DSPオーディオプロセッサ 124 ライン 126 二次元オブジェクト回転プロセッサ 128 ステレオオーディオ同期化プロセッサ 130 三次元レンダリングプロセッサ 132 グラフィカルユーザインタフェースツールプロ
セッサ 134 追加のビデオバックグラウンドプロセッサ 136 ネイティブバイトコードプロセッサ 150 三次元ビデオオブジェクト 152 ビデオバックグラウンドオブジェクト 300 ソースプログラムオブジェクト 302 コンパイラ 304 バイトコード 306 仮想マシン 310 再構築されたプログラムオブジェクト 320 ハードウェアプロセッサ群

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向言語からなるソース
    プログラムをコンパイルして得られる中間コードデータ
    ストリームをリアルタイムで処理するシステムであっ
    て、 メモリと、 入力される前記中間コードストリームを受け取るための
    入力手段と、 並列に設置された複数のハードウェアプロセッサと、 前記メモリに格納され、前記入力手段に前記中間コード
    ストリームを受け取るべく接続された仮想マシンプログ
    ラムとを有することを特徴とし、 前記仮想マシンコンピュータプログラムが、 前記中間コードストリームからソフトウェアスレッドを
    再構築する手段と、 再構築された前記ソフトウェアスレッドを、対応する実
    行可能なプロセスに変換する手段と、 前記複数のハードウェアプロセッサの中から、前記対応
    する実行可能なプロセスを実行するのに適切なものを1
    つ選択するプロセッサ選択手段と、 選択されたハードウェアプロセッサに、前記対応する実
    行可能なプロセスをその実行のため転送する手段とを有
    することを特徴とするオブジェクト指向言語プログラム
    由来の中間コードデータストリームの処理システム。
  2. 【請求項2】 前記仮想マシンプログラムが、前記シ
    ステムにおいて現在利用可能なハードウェアプロセッサ
    のリストである利用可能プロセッサリストを維持する手
    段を有することを特徴とし、 前記プロセッサ選択手段が、前記利用可能プロセッサリ
    ストを調べて、前記システムを、それが前記現在利用可
    能なハードウェアプロセッサを利用するように、自動的
    に適合させる手段を有することを特徴とする請求項1に
    記載のシステム。
  3. 【請求項3】 前記仮想マシンプログラムが、前記メ
    モリに格納された所定のクラスプロトコルのライブラリ
    を含むことを特徴とし、 前記プロセッサ選択手段が、前記システムにおいて現在
    利用可能なハードウェアプロセッサのリストである利用
    可能プロセッサリストを、前記オブジェクトクラスプロ
    トコルのライブラリに関連付ける手段を有することを特
    徴とする請求項1に記載のシステム。
  4. 【請求項4】 前記仮想マシンプログラムが、入力さ
    れた前記中間コードストリームにおいて参照されている
    オブジェクトが、前記クラスライブラリにおいて定義さ
    れたクラスプロトコルのインスタンスであるか否かを判
    定し、欠落したクラスプロトコル若しくはライブラリを
    ダウンロードするための動的クラスローダ手段を有する
    ことを特徴とする請求項3に記載のシステム。
  5. 【請求項5】 前記仮想マシンプログラムが、 前記中間コードストリームから複数の異なるプロセスス
    レッド群を再構築する手段と、 前記プロセススレッド群の各々に対して、その実行のた
    めの各ハードウェアプロセッサを個別に選択する個別プ
    ロセッサ選択手段と、 前記プロセススレッド群のそれぞれを、対応する選択さ
    れた各ハードウェアプロセッサに、軽量プロセスの同時
    並行的実行のため転送する手段とを有することを特徴と
    する請求項1に記載のシステム。
  6. 【請求項6】 前記複数のハードウェアプロセッサ
    が、選択されたマルチメディアメソッドの実行専用のマ
    ルチメディアプロセッサを少なくとも1つ含むことを特
    徴とし、 前記仮想マシンプログラムが、前記マルチメディアプロ
    セッサにマルチメディアプロセススレッドを転送する手
    段を有することを特徴とする請求項5に記載のシステ
    ム。
  7. 【請求項7】 前記複数のハードウェアプロセッサ
    が、音声データの実行専用のオーディオプロセッサを少
    なくとも1つ含むことを特徴とし、 前記仮想マシンプログラムが、前記オーディオプロセッ
    サに音声プロセススレッドを転送する手段を有すること
    を特徴とする請求項5に記載のシステム。
  8. 【請求項8】 前記複数のハードウェアプロセッサ
    が、グラフィクスデータの解凍専用のグラフィクス解凍
    プロセッサを少なくとも1つ含むことを特徴とし、 前記仮想マシンプログラムが、前記グラフィクス解凍プ
    ロセッサにグラフィクスプロセススレッドを転送する手
    段を有することを特徴とする請求項5に記載のシステ
    ム。
  9. 【請求項9】 前記複数のハードウェアプロセッサ
    が、グラフィクスデータのレンダリング専用のグラフィ
    クスレンダリングプロセッサを少なくとも1つ含むこと
    を特徴とし、 前記仮想マシンプログラムが、前記グラフィクスレンダ
    リングプロセッサにグラフィクスプロセススレッドを転
    送する手段を有することを特徴とする請求項5に記載の
    システム。
  10. 【請求項10】 前記複数のハードウェアプロセッサ
    が、ネイティブ中間コードからなるフラットプロセスス
    レッドの実行専用のネイティブ中間コードプロセッサを
    少なくとも1つ含むことを特徴とし、 前記仮想マシンが、前記フラットプロセススレッドを、
    オペレーションコードへの翻訳をすることなく実行する
    ために、前記ネイティブ中間コードプロセッサに転送す
    る手段を有することを特徴とする請求項5に記載のシス
    テム。
  11. 【請求項11】 前記複数のハードウェアプロセッサ
    と前記ハードウェアマシンプログラムとの間のインタフ
    ェーシングのための、マイクロカーネルオペレーティン
    グシステムを更に有することを特徴とする請求項5に記
    載のシステム。
  12. 【請求項12】 前記仮想マシンプログラムが、オブ
    ジェクト指向プログラミング言語で記述されていること
    を特徴とする請求項11に記載のシステム。
  13. 【請求項13】 前記オブジェクト指向プログラミン
    グ言語が、Javaプログラミング言語のクラス群を含
    むことを特徴とし、 前記仮想マシンプログラムが、前記メモリに格納された
    Javaクラスプロトコルライブラリを含むことを特徴
    とし、 前記個別プロセッサ選択手段が、前記システムにおいて
    現在利用可能なハードウェアプロセッサのリストである
    利用可能プロセッサリストを、前記Javaクラスプロ
    トコルライブラリに関連付ける手段を有することを特徴
    とする請求項12に記載のシステム。
  14. 【請求項14】 オブジェクト指向言語からなるマル
    チメディアアプリケーションプログラムをコンパイルし
    て得られる中間コードの入力データストリームを、その
    リアルタイム並列処理のために複数のプロセススレッド
    に変換する機能を有し、その処理能力がハードウェアに
    依存しない仮想マシンメソッドをコンピュータ上に実現
    することによって、前記中間コードの移植性を維持しつ
    つ改善された処理能力を得るデータストリームの処理方
    法であって、 前記仮想マシンメソッドを実現する過程が、 利用可能なハードウェアリソースのリストを維持する過
    程と、 前記入力中間コードストリームから複数のプログラムオ
    ブジェクト及びスレッドを再構築する過程と、 再構築された前記複数のプログラムオブジェクト及びス
    レッドを、前記利用可能なハードウェアリソースのリス
    トに関連付ける関連付け過程と、 再構築された前記複数のプログラムオブジェクト及びス
    レッドを、その実質的に同時並行的な実行のため、前記
    ハードウェアリソース群の中から選択された各ハードウ
    ェアリソースにそれぞれ転送する転送過程とを有するこ
    とを特徴とするオブジェクト指向言語プログラム由来の
    中間コードデータストリーム、またはマルチメディアデ
    ータストリームの処理方法。
  15. 【請求項15】 前記マルチメディアアプリケーショ
    ンプログラムにおいて定義された予め定められた同期化
    メソッドを支援する過程を更に含むことを特徴とする請
    求項14に記載の方法。
  16. 【請求項16】 前記利用可能なハードウェアリソー
    スのリストが、特定のマルチメディア機構に適合する1
    又は2以上のハードウェアリソースがある場合、そのハ
    ードウェアリソースのそれぞれに対して、各特定のマル
    チメディア機能を示すインディケーションを有すること
    を特徴とし、 前記関連付け過程が、何らかのプログラムオブジェクト
    及びスレッドを実行するのに特に適合するハードウェア
    リソースがある場合そのハードウェアリソースを識別す
    るために、前記プログラムオブジェクト及びスレッド
    と、前記利用可能なハードウェアリソースのリストとを
    比較する比較過程を含むことを特徴とし、 前記転送過程が、前記プログラムオブジェクト及びスレ
    ッドを、その実行のため、前記比較過程で識別された対
    応するハードウェアリソースに結合する過程を含むこと
    を特徴とする請求項14に記載の方法。
  17. 【請求項17】 前記ソースプログラムにおいて宣言
    された、同期化された複数のプロセスを識別し、 前記同期化された複数のプロセスを、変数が一致した状
    態を確保すべくモニタの制御の下で実行する過程と、 他の全てのプロセスを、前記利用可能なハードウェアリ
    ソースで可能な範囲で同時並行的に実行するためにスケ
    ジューリングを行う過程とを含むことを特徴とする請求
    項14に記載の方法。
  18. 【請求項18】 前記ハードウェアリソースが、それ
    ぞれその主な機能に最適化された複数のプロセッサを含
    むことを特徴とし、 処理能力を向上させるべく、前記複数のプロセッサのそ
    れぞれに接続された、書き込まれた内容の同一性を保持
    するコヒーレントな1個のグローバルキャシュメモリを
    設ける過程を更に有することを特徴とする請求項14に
    記載の方法。
  19. 【請求項19】 オブジェクト指向言語からなるプロ
    グラムに由来するマルチメディアデータストリームをリ
    アルタイムで処理するためのシステムであって、 入力データストリームを受け取るための入力手段と、 並列に設置された複数のハードウェアプロセッサと、 前記入力手段に接続された仮想マシンコンピュータプロ
    グラムと、 前記複数のハードウェアプロセッサを管理するためのマ
    イクロカーネルオペレーティングシステムを有すること
    を特徴とし、 前記仮想マシンコンピュータプログラムが、 前記入力データからソフトウェアスレッドを再構築する
    手段と、 再構築された前記ソフトウェアスレッドを対応する実行
    可能なプロセスに翻訳する手段と、 前記複数のハードウェアプロセッサの中から、前記対応
    する実行可能なプロセスを実行するために適切なものを
    1つ選択する選択手段と、 前記対応する実行可能なプロセスを、それを実行するた
    めに前記選択手段で選択されたハードウェアプロセッサ
    に転送する手段とを有することを特徴とし、 前記マイクロカーネルオペレーティングシステムが、 前記仮想マシンを、前記対応する実行可能なプロセスを
    実行するのに適切な選択されたハードウェアプロセッサ
    の1つと接続して使用するための前記仮想マシンに利用
    可能なプロセッサのリストを供給するべく、前記ハード
    ウェアプロセッサを調査する手段を有することを特徴と
    するマルチメディアデータストリームの処理システム。
  20. 【請求項20】 前記ハードウェアプロセッサが、メ
    ディアオブジェクトの予め定められたメソッドを実行す
    るために最適化された特別なプロセッサを少なくとも1
    つ有し、且つネイティブ中間コードで書かれたフラット
    コードセグメントを実行するためのRISCプロセッサ
    を少なくとも1つ有することを特徴とする請求項19に
    記載のシステム。
JP9147592A 1996-06-10 1997-06-05 オブジェクト指向言語プログラム由来の中間コードデータストリーム、またはマルチメディアデータストリームの処理システム及び方法 Pending JPH1069394A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/661,183 1996-06-10
US08/661,183 US5946487A (en) 1996-06-10 1996-06-10 Object-oriented multi-media architecture

Publications (1)

Publication Number Publication Date
JPH1069394A true JPH1069394A (ja) 1998-03-10

Family

ID=24652550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9147592A Pending JPH1069394A (ja) 1996-06-10 1997-06-05 オブジェクト指向言語プログラム由来の中間コードデータストリーム、またはマルチメディアデータストリームの処理システム及び方法

Country Status (4)

Country Link
US (1) US5946487A (ja)
EP (1) EP0813147A2 (ja)
JP (1) JPH1069394A (ja)
KR (1) KR980004099A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249809A (ja) * 1999-12-06 2001-09-14 Alcatel 端末アプリケーションを実行する端末
WO2001084303A1 (en) * 2000-05-04 2001-11-08 Access Co.,Ltd. Information processing method and system
JP2003509767A (ja) * 1999-09-14 2003-03-11 タオ グループ リミテッド オブジェクト指向コンピュータプログラムのロード
JP2003531434A (ja) * 2000-04-17 2003-10-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Javaコンピュータプログラムを実行するためのコンピュータ方法およびシステム
JP2007188259A (ja) * 2006-01-12 2007-07-26 Hitachi Ltd 情報処理装置及び情報処理システム
JP2008217665A (ja) * 2007-03-07 2008-09-18 Nec Corp マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
JP2009176145A (ja) * 2008-01-25 2009-08-06 Nippon Signal Co Ltd:The 保安処理装置
JP2011018352A (ja) * 2004-02-06 2011-01-27 Intel Corp 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
JP2011523141A (ja) * 2008-06-06 2011-08-04 アップル インコーポレイテッド マルチプロセッサにおけるデータパラレルコンピューティングのためのアプリケーションプログラミングインターフェイス
US9304834B2 (en) 2007-04-11 2016-04-05 Apple Inc. Parallel runtime execution on multiple processors
US9442757B2 (en) 2007-04-11 2016-09-13 Apple Inc. Data parallel computing on multiple processors
US9720726B2 (en) 2008-06-06 2017-08-01 Apple Inc. Multi-dimensional thread grouping for multiple processors
US9766938B2 (en) 2007-04-11 2017-09-19 Apple Inc. Application interface on multiple processors
US11237876B2 (en) 2007-04-11 2022-02-01 Apple Inc. Data parallel computing on multiple processors
US11836506B2 (en) 2007-04-11 2023-12-05 Apple Inc. Parallel runtime execution on multiple processors

Families Citing this family (211)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487507B1 (en) * 2001-07-18 2009-02-03 City U Research Limited Secure control transfer in information system
US6405255B1 (en) * 1996-07-01 2002-06-11 Sun Microsystems, Inc. Mixing and splitting multiple independent audio data streams in kernel space
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
BR9713267A (pt) 1996-10-25 2004-06-15 Schlumberger Systems & Service Cartão de circuito integrado para uso com um terminal, processo para uso com o mesmo, microcontrolador e processo para sua programação
US6079566A (en) * 1997-04-07 2000-06-27 At&T Corp System and method for processing object-based audiovisual information
US9098297B2 (en) * 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US6330659B1 (en) * 1997-11-06 2001-12-11 Iready Corporation Hardware accelerator for an object-oriented programming language
WO1998050852A1 (en) * 1997-05-08 1998-11-12 Iready Corporation Hardware accelerator for an object-oriented programming language
US6960133B1 (en) 2000-08-28 2005-11-01 Igt Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays)
US6654931B1 (en) 1998-01-27 2003-11-25 At&T Corp. Systems and methods for playing, browsing and interacting with MPEG-4 coded audio-visual objects
US6110226A (en) * 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6349322B1 (en) * 1998-05-06 2002-02-19 Sun Microsystems, Inc. Fast synchronization for programs written in the JAVA programming language
US6233611B1 (en) * 1998-05-08 2001-05-15 Sony Corporation Media manager for controlling autonomous media devices within a network environment and managing the flow and format of data between the devices
US6704764B1 (en) * 1998-06-18 2004-03-09 Hewlett-Packard Development Company, L.P. Method and apparatus for a servlet server class
US6324688B1 (en) * 1998-07-30 2001-11-27 International Business Machines Corporation Method and apparatus for optimizing execution of Java programs
US6260190B1 (en) * 1998-08-11 2001-07-10 Hewlett-Packard Company Unified compiler framework for control and data speculation with recovery code
KR20010072477A (ko) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치
US6253215B1 (en) * 1998-08-17 2001-06-26 Sun Microsystems Method, apparatus, and article of manufacture for facilitating resource management for applications having two types of program code
CA2245976A1 (en) * 1998-08-26 2000-02-26 Qnx Software Systems Ltd. Symmetric multi-processor system and method
EP0984631A1 (en) * 1998-09-04 2000-03-08 THOMSON multimedia Apparatus and method for executing interactive TV applications on set top units
ES2235296T3 (es) * 1998-09-11 2005-07-01 Two Way Media Limited Distribucion de aplicaciones interactivas.
US6651080B1 (en) * 1998-10-16 2003-11-18 Sun Microsystems, Inc. Techniques for implementing pluggable virtual machines
JP2002528971A (ja) * 1998-10-19 2002-09-03 ジェネラル・インスツルメント・コーポレイション 構成可能な機能をもつテレビジョン・セットトップ・ボックス
AU6419399A (en) * 1998-11-12 2000-06-05 General Instrument Corporation Application programming interface (api) for accessing and managing resources in a digital television receiver
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
JP4109772B2 (ja) * 1998-12-03 2008-07-02 キヤノン株式会社 データ処理方法及びその装置
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US7225436B1 (en) * 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US6801943B1 (en) * 1999-04-30 2004-10-05 Honeywell International Inc. Network scheduler for real time applications
EP1059781B1 (de) * 1999-05-06 2007-09-05 Siemens Aktiengesellschaft Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten
US6427228B1 (en) * 1999-05-12 2002-07-30 International Business Machines Corporation Combining a meta data file and java source code to dynamically create java classes and javabeans
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
JP3722194B2 (ja) * 1999-05-20 2005-11-30 セイコーエプソン株式会社 画像表示システム
WO2000072586A2 (en) * 1999-05-21 2000-11-30 General Instrument Corporation Programming interface for television settop core system software
WO2000072583A1 (en) * 1999-05-21 2000-11-30 General Instrument Corporation Software architecture for a television set-top terminal providing compatibility with multiple operating environments
US6788980B1 (en) * 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
JP3756352B2 (ja) * 1999-06-29 2006-03-15 富士通株式会社 コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体
US7062769B1 (en) * 1999-07-07 2006-06-13 National Semiconductor Corporation Object-oriented processor design and design methodologies
US7882501B1 (en) * 1999-08-13 2011-02-01 Oracle America, Inc. System and method for enabling dynamic modifed class reloading in an application server environment
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
US7996843B2 (en) * 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
AU5144500A (en) * 1999-09-01 2001-03-26 Audiobase, Inc. A system and method for streaming data in java
HK1046049A1 (zh) 1999-09-01 2002-12-20 Intel Corporation 用於多线程处理器的分支指令
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
GB9920676D0 (en) * 1999-09-01 1999-11-03 Tao Group Ltd Translating and executing object-oriented computer programs
US6970893B2 (en) * 2000-10-27 2005-11-29 Bea Systems, Inc. System and method for regeneration of methods and garbage collection of unused methods
US7062779B1 (en) * 1999-12-10 2006-06-13 Sun Microsystems, Inc. Methods and apparatus for accessing synchronized broadcast data
US6842899B2 (en) 1999-12-21 2005-01-11 Lockheed Martin Corporation Apparatus and method for resource negotiations among autonomous agents
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6307789B1 (en) 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
WO2001055917A1 (en) * 2000-01-27 2001-08-02 Morphics Technology Inc. Improved apparatus and method for multi-threaded signal processing
US6823517B1 (en) * 2000-01-27 2004-11-23 Andrew E. Kalman Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level
US6557168B1 (en) * 2000-02-25 2003-04-29 Sun Microsystems, Inc. System and method for minimizing inter-application interference among static synchronized methods
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
US6745386B1 (en) * 2000-03-09 2004-06-01 Sun Microsystems, Inc. System and method for preloading classes in a data processing device that does not have a virtual memory manager
US20010027464A1 (en) * 2000-03-27 2001-10-04 General Instrument Corporation Operating system abstraction interface for broadband terminal platform firmware
US6721949B1 (en) 2000-03-27 2004-04-13 General Instrument Corporation Kernel abstraction layer for digital television set-top box firmware
US6961934B2 (en) 2000-05-08 2005-11-01 Microtune (San Diego), Inc. Portable thread environment
AU2001257566A1 (en) * 2000-05-08 2001-11-20 Transilica, Inc. Priority in a portable thread environment
US6792601B1 (en) * 2000-05-18 2004-09-14 International Business Machines Corporation Multiple mode object locking method and system
US6769985B1 (en) 2000-05-31 2004-08-03 Igt Gaming device and method for enhancing the issuance or transfer of an award
US7695363B2 (en) 2000-06-23 2010-04-13 Igt Gaming device having multiple display interfaces
US6731313B1 (en) 2000-06-23 2004-05-04 Igt Gaming device having touch activated alternating or changing symbol
US7699699B2 (en) 2000-06-23 2010-04-20 Igt Gaming device having multiple selectable display interfaces based on player's wagers
US7274368B1 (en) 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US6865585B1 (en) * 2000-07-31 2005-03-08 Microsoft Corporation Method and system for multiprocessor garbage collection
WO2002017638A1 (en) * 2000-08-21 2002-02-28 Istream Tv Open architecture set-top box
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6935955B1 (en) 2000-09-07 2005-08-30 Igt Gaming device with award and deduction proximity-based sound effect feature
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6739973B1 (en) 2000-10-11 2004-05-25 Igt Gaming device having changed or generated player stimuli
US6968356B1 (en) 2000-10-19 2005-11-22 International Business Machines Corporation Method and apparatus for transferring data between a client and a host across a firewall
US6901586B1 (en) * 2000-11-06 2005-05-31 Sun Microsystems, Inc. Safe language static variables initialization in a multitasking system
US7039717B2 (en) 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US8312429B2 (en) * 2000-11-10 2012-11-13 Oracle International Corporation Cell based data processing
US6826550B2 (en) 2000-12-15 2004-11-30 International Business Machines Corporation Method, system, and program for converting application program code to executable code using neural networks based on characteristics of the inputs
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
GB0031206D0 (en) * 2000-12-21 2001-01-31 Ibm Multi-platform command line interpretation
US7379475B2 (en) 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US20020116166A1 (en) * 2001-02-13 2002-08-22 El-Ghoroury Hussein S. Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set process systems using interconnected design components
US7040983B2 (en) 2001-03-21 2006-05-09 Igt Gaming device having a multi-round, multi-characteristic matching game
US6749502B2 (en) 2001-03-21 2004-06-15 Igt Gaming device having a multi-characteristic matching game
US9110692B2 (en) * 2001-03-22 2015-08-18 Frederick Master Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
FI110973B (fi) * 2001-05-15 2003-04-30 Digita Oy Menetelmä sovellusten lähettämiseen digitaalisessa yleislähetysverkossa
US7571388B2 (en) 2001-05-31 2009-08-04 International Business Machines Corporation Computer-readable memory medium for fast drawing of text fields and labels using a Java swing application program interface
US6918093B2 (en) * 2001-05-31 2005-07-12 International Business Machines Corp. Inheritance of background color in a containment hierarchy of objects in a graphical user interface
US20020180790A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System and method for encapsulating software components in an application program interface using a proxy object
US6957391B2 (en) * 2001-05-31 2005-10-18 International Business Machines Corporation Application program interface that can maintain similar look and feel of a displayed image regardless of whether the interface is platform dependent or platform independent
US20020191018A1 (en) * 2001-05-31 2002-12-19 International Business Machines Corporation System and method for implementing a graphical user interface across dissimilar platforms yet retaining similar look and feel
US20020180793A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation Dynamic buffering of graphic images by a platform independent application program interface
US7571389B2 (en) * 2001-05-31 2009-08-04 International Business Machines Corporation System, computer-readable storage device, and method for combining the functionality of multiple text controls in a graphical user interface
US7562306B2 (en) * 2001-05-31 2009-07-14 International Business Machines Corporation System and method for reducing memory use associated with the graphical representation of a list control
US6993773B2 (en) 2001-05-31 2006-01-31 International Business Machines Corporation System and method for introducing enhanced features into a java swing application program interface
US7620955B1 (en) 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US7240120B2 (en) 2001-08-13 2007-07-03 Texas Instruments Incorporated Universal decoder for use in a network media player
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
JP3852568B2 (ja) * 2001-09-11 2006-11-29 ソニー株式会社 マルチメディアプレゼンテーション作成装置および方法
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7901291B2 (en) * 2001-09-28 2011-03-08 Igt Gaming device operable with platform independent code and method
US7666098B2 (en) 2001-10-15 2010-02-23 Igt Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes
US7708642B2 (en) 2001-10-15 2010-05-04 Igt Gaming device having pitch-shifted sound and music
US6848996B2 (en) * 2001-10-15 2005-02-01 Igt Gaming device with sound recording changes associated with player inputs
US8156471B2 (en) * 2001-11-09 2012-04-10 Oracle International Corporation Multi-language execution method
WO2003048961A1 (en) * 2001-12-04 2003-06-12 Powerllel Corporation Parallel computing system, method and architecture
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7114152B2 (en) * 2002-01-08 2006-09-26 International Business Machines Corporation Method, apparatus, and program to determine the mutability of an object at loading time
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US20030200336A1 (en) * 2002-02-15 2003-10-23 Suparna Pal Apparatus and method for the delivery of multiple sources of media content
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7039911B2 (en) * 2002-05-17 2006-05-02 Naturalbridge, Inc. Hybrid threads for multiplexing virtual machine
US7853557B2 (en) * 2002-06-14 2010-12-14 Siebel Systems, Inc. Method and computer for responding to a query according to the language used
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US8788650B1 (en) 2002-07-19 2014-07-22 Fortinet, Inc. Hardware based detection devices for detecting network traffic content and methods of using the same
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
TWI324309B (en) * 2002-08-26 2010-05-01 Interdigital Tech Corp Communication circuit
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7346902B2 (en) * 2002-10-22 2008-03-18 Sun Microsystems, Inc. System and method for block-based concurrentization of software code
US7603664B2 (en) * 2002-10-22 2009-10-13 Sun Microsystems, Inc. System and method for marking software code
US7765532B2 (en) * 2002-10-22 2010-07-27 Oracle America, Inc. Inducing concurrency in software code
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US20040123289A1 (en) * 2002-12-20 2004-06-24 Drews Paul C Multi-processing inside a virtual machine
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7015913B1 (en) * 2003-06-27 2006-03-21 Nvidia Corporation Method and apparatus for multithreaded processing of data in a programmable graphics processor
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7789748B2 (en) * 2003-09-04 2010-09-07 Igt Gaming device having player-selectable music
US7105736B2 (en) 2003-09-09 2006-09-12 Igt Gaming device having a system for dynamically aligning background music with play session events
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US7899913B2 (en) 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US7260631B1 (en) 2003-12-19 2007-08-21 Nvidia Corporation System and method for receiving iSCSI protocol data units
US8549170B2 (en) 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US7624198B1 (en) 2003-12-19 2009-11-24 Nvidia Corporation Sequence tagging system and method for transport offload engine data lists
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
GB0401781D0 (en) * 2004-01-28 2004-03-03 Koninkl Philips Electronics Nv Digital broadcasting terminal
US7206872B2 (en) 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7249306B2 (en) 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US7877484B2 (en) * 2004-04-23 2011-01-25 International Business Machines Corporation System and method for bulk processing of semi-structured result streams from multiple resources
JP2006031261A (ja) * 2004-07-14 2006-02-02 Matsushita Electric Ind Co Ltd マルチメディア処理システム
US7585219B2 (en) 2004-09-30 2009-09-08 Igt Gaming device having a matching symbol game
US8043155B2 (en) 2004-10-18 2011-10-25 Igt Gaming device having a plurality of wildcard symbol patterns
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US8713524B2 (en) * 2005-04-06 2014-04-29 Microsoft Corporation Memory management configuration
US8701095B2 (en) * 2005-07-25 2014-04-15 Microsoft Corporation Add/remove memory pressure per object
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
TW200731134A (en) * 2006-02-14 2007-08-16 Mitac Int Corp Software system structure and application program processing method
US7784041B2 (en) * 2006-03-30 2010-08-24 Oracle America, Inc. Mechanism for reducing detectable pauses in dynamic output caused by dynamic compilation
WO2007123753A2 (en) 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US8245199B2 (en) * 2006-05-05 2012-08-14 International Business Machines Corporation Selectively marking and executing instrumentation code
US8176491B1 (en) * 2006-08-04 2012-05-08 Oracle America, Inc. Fast synchronization of simple synchronized methods
US8028290B2 (en) * 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
US8533710B1 (en) * 2006-08-31 2013-09-10 Oracle America, Inc. Using observed thread activity to dynamically tune a virtual machine for responsiveness
US8533697B2 (en) * 2007-02-14 2013-09-10 The Mathworks, Inc. Graphical processing unit (GPU) arrays providing high computational capabilities in a computing environment
US8549500B2 (en) 2007-02-14 2013-10-01 The Mathworks, Inc. Saving and loading graphical processing unit (GPU) arrays providing high computational capabilities in a computing environment
US20080313647A1 (en) * 2007-06-18 2008-12-18 Microsoft Corporation Thread virtualization techniques
CN104407518B (zh) 2008-06-20 2017-05-31 因文西斯系统公司 对用于过程控制的实际和仿真设施进行交互的系统和方法
US8591308B2 (en) 2008-09-10 2013-11-26 Igt Gaming system and method providing indication of notable symbols including audible indication
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8930277B2 (en) * 2010-04-30 2015-01-06 Now Technologies (Ip) Limited Content management apparatus
RU2573777C2 (ru) 2010-04-30 2016-01-27 НАУ ТЕКНОЛОДЖИЗ (Ай Пи) ЛИМИТЕД Устройство управления содержимым
CN102014302B (zh) * 2010-12-01 2012-10-03 福建新大陆通信科技股份有限公司 一种机顶盒高性能模块调度的方法
JP2013061810A (ja) * 2011-09-13 2013-04-04 Fujitsu Ltd 情報処理装置、情報処理装置制御方法及び中間コード命令実行プログラム
US8460090B1 (en) 2012-01-20 2013-06-11 Igt Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events
US20130191838A1 (en) * 2012-01-23 2013-07-25 Phillip M. Hoffman System and method for separating multiple workloads processing in a single computer operating environment
JP5900061B2 (ja) * 2012-03-19 2016-04-06 富士通株式会社 試験方法、試験装置及びプログラム
US9183059B1 (en) * 2012-06-01 2015-11-10 Wyse Technology L.L.C. VM client administrative interface for virtual machine instantiation allows a user to select from a subset of predetermined available resources assigned to the user
US9245407B2 (en) 2012-07-06 2016-01-26 Igt Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines
US8740689B2 (en) 2012-07-06 2014-06-03 Igt Gaming system and method configured to operate a game associated with a reflector symbol
US10489416B2 (en) 2013-02-28 2019-11-26 Micro Focus Llc Optimizing and managing execution of hybrid flows
US9192857B2 (en) 2013-07-23 2015-11-24 Igt Beat synchronization in a game
CN103365665A (zh) * 2013-07-25 2013-10-23 成都品果科技有限公司 一种基于虚拟指令的应用程序移植方法
US9369744B2 (en) 2014-10-15 2016-06-14 Fortinet, Inc. Optimizing multimedia streaming in WLANs (wireless local access networks)
US10606651B2 (en) * 2015-04-17 2020-03-31 Microsoft Technology Licensing, Llc Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
CN104808907B (zh) * 2015-05-20 2018-01-09 腾讯科技(深圳)有限公司 一种内容同屏显示方法、装置及终端设备
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US9947170B2 (en) 2015-09-28 2018-04-17 Igt Time synchronization of gaming machines
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline
CN112579249B (zh) * 2019-09-30 2024-09-10 奇安信安全技术(珠海)有限公司 多cpu虚拟机的运行方法及装置、存储介质、计算机设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5457780A (en) * 1991-04-17 1995-10-10 Shaw; Venson M. System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages
FR2683344B1 (fr) * 1991-10-30 1996-09-20 Bull Sa Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs.
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5706515A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. System and method for implementing an atomic wait for notification operation

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003509767A (ja) * 1999-09-14 2003-03-11 タオ グループ リミテッド オブジェクト指向コンピュータプログラムのロード
JP2001249809A (ja) * 1999-12-06 2001-09-14 Alcatel 端末アプリケーションを実行する端末
JP2003531434A (ja) * 2000-04-17 2003-10-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Javaコンピュータプログラムを実行するためのコンピュータ方法およびシステム
WO2001084303A1 (en) * 2000-05-04 2001-11-08 Access Co.,Ltd. Information processing method and system
JP2011018352A (ja) * 2004-02-06 2011-01-27 Intel Corp 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
US9323571B2 (en) 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
JP2007188259A (ja) * 2006-01-12 2007-07-26 Hitachi Ltd 情報処理装置及び情報処理システム
JP2008217665A (ja) * 2007-03-07 2008-09-18 Nec Corp マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
US11836506B2 (en) 2007-04-11 2023-12-05 Apple Inc. Parallel runtime execution on multiple processors
US9304834B2 (en) 2007-04-11 2016-04-05 Apple Inc. Parallel runtime execution on multiple processors
US10552226B2 (en) 2007-04-11 2020-02-04 Apple Inc. Data parallel computing on multiple processors
US9436526B2 (en) 2007-04-11 2016-09-06 Apple Inc. Parallel runtime execution on multiple processors
US9442757B2 (en) 2007-04-11 2016-09-13 Apple Inc. Data parallel computing on multiple processors
US9471401B2 (en) 2007-04-11 2016-10-18 Apple Inc. Parallel runtime execution on multiple processors
US11544075B2 (en) 2007-04-11 2023-01-03 Apple Inc. Parallel runtime execution on multiple processors
US11237876B2 (en) 2007-04-11 2022-02-01 Apple Inc. Data parallel computing on multiple processors
US9766938B2 (en) 2007-04-11 2017-09-19 Apple Inc. Application interface on multiple processors
US9858122B2 (en) 2007-04-11 2018-01-02 Apple Inc. Data parallel computing on multiple processors
US11106504B2 (en) 2007-04-11 2021-08-31 Apple Inc. Application interface on multiple processors
US10534647B2 (en) 2007-04-11 2020-01-14 Apple Inc. Application interface on multiple processors
JP2009176145A (ja) * 2008-01-25 2009-08-06 Nippon Signal Co Ltd:The 保安処理装置
US10067797B2 (en) 2008-06-06 2018-09-04 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
US9720726B2 (en) 2008-06-06 2017-08-01 Apple Inc. Multi-dimensional thread grouping for multiple processors
US9477525B2 (en) 2008-06-06 2016-10-25 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
JP2011523141A (ja) * 2008-06-06 2011-08-04 アップル インコーポレイテッド マルチプロセッサにおけるデータパラレルコンピューティングのためのアプリケーションプログラミングインターフェイス

Also Published As

Publication number Publication date
EP0813147A2 (en) 1997-12-17
US5946487A (en) 1999-08-31
KR980004099A (ko) 1998-03-30

Similar Documents

Publication Publication Date Title
US5946487A (en) Object-oriented multi-media architecture
Aridor et al. cJVM: A Single System Image of a JVM on a Cluster.
Peleg et al. Intel MMX for multimedia PCs
CN108762815B (zh) 一种基于非虚拟化体系架构的Android运行环境实现方法
US5892966A (en) Processor complex for executing multimedia functions
Watsen et al. Bamboo-a portable system for dynamically extensible, real-time, networked, virtual environments
US7694306B2 (en) Balancing computational load across a plurality of processors
US9069549B2 (en) Machine processor
US8171491B2 (en) Object synchronization in shared object space
Ferrari JPVM: Network parallel computing in Java
RU2304305C2 (ru) Системы и способы управления драйверами в вычислительной системе
CN108701368B (zh) 用于经实施例化的几何结构的更有效的光线跟踪方法和装置
Igehy et al. The design of a parallel graphics interface
US9830176B2 (en) Methods, systems, and media for binary compatible graphics support in mobile operating systems
US20160292816A1 (en) Hybrid on-demand graphics translation table shadowing
US20050071828A1 (en) System and method for compiling source code for multi-processor environments
US20020133529A1 (en) Method and apparatus for representing and encapsulating active computing environments
US20120188263A1 (en) Method and system to dynamically bind and unbind applications on a general purpose graphics processing unit
JP2022525215A (ja) タスクおよびワークフローのステートレス並列処理のための方法、装置およびコンピュータプログラム
US20130198325A1 (en) Provision and running a download script
US9348676B2 (en) System and method of processing buffers in an OpenCL environment
US9448823B2 (en) Provision of a download script
KR20040079097A (ko) 보조프로세서를 이용한 멀티미디어 처리를 위한 가속장치
CN1190211A (zh) 面向对象的多媒体结构
US6334180B1 (en) Processor coupled by visible register set to modular coprocessor including integrated multimedia unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060801