JPH07504054A - コンピュータシステムにおけるコプロセッサのプログラミングモデル - Google Patents

コンピュータシステムにおけるコプロセッサのプログラミングモデル

Info

Publication number
JPH07504054A
JPH07504054A JP5514279A JP51427993A JPH07504054A JP H07504054 A JPH07504054 A JP H07504054A JP 5514279 A JP5514279 A JP 5514279A JP 51427993 A JP51427993 A JP 51427993A JP H07504054 A JPH07504054 A JP H07504054A
Authority
JP
Japan
Prior art keywords
coprocessor
task
dsp
processor
host
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
JP5514279A
Other languages
English (en)
Inventor
アンダーソン,エリック・シイ
スヴェンセン,ヒュー・ビイ
ソーン,エイ・フィリップ
Original Assignee
アプル・コンピュータ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アプル・コンピュータ・インコーポレーテッド filed Critical アプル・コンピュータ・インコーポレーテッド
Publication of JPH07504054A publication Critical patent/JPH07504054A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 本RIIは、コンピュータオペレーティングシステム及びアプリケージ、ン開発 の分野に関し、特に、コプロセッサを有するコンピュータシステムにおいてホス トコンピュータアプリケ−シーンを開発するためのプログラミングモデルに関す る。
2、関連技術の説明 特殊化機能を実行するため又はプロセッサの性能と機能性を向上させるために、 コプロセッサを利用するコンピュータシステムは、当該技術では良く知られて埴 る。コプロセッサは拡張グラフィック画像を生成し且つ演算機能を実行するため に使用される。コンピュータシステム用としてマルチメディアアプリケージ1ン が開発されてゆくにつれて、デジタル信号処理(DSP)コプロセッサに対する 要望と必要性が生じた。マルチメディアアプリケージ曽ンとは、より有効な情報 の提示、たとえば、テキスト部分と、映像部分と、音声部分とを育する「文書」 を生成するために形態の異なる通信を統合するアプリケージIンである。
デジタル信号処理はデジタル化信号の処理である。デジタル化信号はアナログ信 号のデジタル表現である。アナログ信号は音響9画像、音声、あるいは1つ又は 複数のシリーズと従属変数(たとえば、時間又は空間)との何らかの1つ又は複 数のアンサンプルであっても良い。そのようなデジタル化信号を正確に処理する ためには、信号をデジタル化したときのサンプル速度と、アナログ信号を表現す るために使用されたデジタルビットの形式とを知ることが必要である。この情報 をもって、デジタル化信号をアプリケ−シーンソフトウェアプログラムにより操 作できる。その結果得られたデータを続いて記憶するか、又はアナログ信号に戻 し変換することができるDSPコプロセッサを利用するアプリケ−シーンプログ ラムを以下ではホストDSPアプリケージVンと呼び、DSPで実際に実行され ているコードをDSPプログラムという。たとえば、ホストDSPアプリケーシ ーンは音楽を生成し且つ編集するためのプログラムであっても良(、一方、DS Pプログラムは再生に際して記憶されている音声データを圧縮し、伸張し且つ混 合するために使用されても良い。
場合によっては、ホストDSPアプリケージ1ンは専用ハードウェアコンポーネ ント、たとえば、モデム又はオーディオインタフェース又は図形表示インタフェ ースを介して支援される0本来の経済性、たとえば、システムハードウェアコス トの削減を得るために、単一のDSPコプロセッサで複数のアプリケ−シーンを 支援することが望ましい。マルチメディアアプリケ−シロンの成長に伴って、そ のようなデジタル信号処理の必要条件もそれに従って大きくなる。
コプロセッサをコンピュータシステムに統合するときには、典型的には、共用指 令ストリーム、多重処理及びサテライトという3つの形態のうち1つの形態をと る。共用指令ストリームによる統合では、ホストプロセッサによって処理される 入力ストリームの中にコプロセッサタスク要求を直接に導入する。コプロセッサ がタスクを受ける方法は2つの方式の一方であれば良い、第1の方式では、ホス トプロセッサによりコプロセッサタスクの実行のためにコプロセッサへ送り出す 。第2の方式では、コプロセッサはコプロセッサ命令をめてパスアクティビティ を監視する。コプロセッサ命令を検出すると、コプロセッサは、たとえば、ハー ドウェアハンドシェークを経てホストプロセッサと通信し、その命令を処理する 。浮動小数点プロセッサなどの、数式を実行するコプロセッサは典型的には共用 指令ストリーム統合を有する。
多重処理統合においては、コプロセッサが独自のオペレーティングシステムを有 する。ホストプロセッサオペレーティングシステムとの通信は共用メモリ、ハー ドウェアメールボックス又は他の資源を介する。サテライト統合では、コプロセ ッサはタスクを実行するためにホストプロセッサから指令、プログラム及びデー タを受信するであろう。典型的には、コプロセッサは共通バスを介してメモリを 共用するのではなく、入出力チャネル又は他の限定された相互接続手段を共用す る。
先に挙げた統合技法のそれぞれについて、ホストプロセッサとコプロセッサ資源 の利用を最適化するという問題が起こる。共用指令ストリーム又は指令駆動によ る統合では、コプロセッサは、そのコプロセッサにタスクが誘導されていない期 間中はアイドル状態のままであるが、苛酷な利用をしている期間には処理ボトル ネックの原因となりうるであろう。多重プロセッサ統合においては、ホストプロ セッサにより最も良く実行しつる機能をコプロセッサによって実行することもあ り、それがシステム全体の性能に悪影響を与える。ホストプロセッサはコプロセ ッサと相互作用動作するのが望ましい。
知られているDSPの実現形態は、DSPコプロセッサをサテライトコプロセッ サを主プロセツサに統合している。そのような実現形態はDSPの機能性とDS P自体の終端値を限定することが顧客にはわかっている。DSPコプロセッサは 典型的には専用オペレーティングシステムを育する。この結果、ホストDSPア プリケーシーン又はDSPプログラムを開発するプログラマはホストコンピュー タシステムの動作環境と、DSPの動作環境と、操作すべきデータの型(たとえ ば、デジタル化音声データ)に特有のプログラミング技法又はアルゴリズムとを 熟知していることが要求された。多くの場合、1人のプログラマがそのような技 能をもつことはなく、技能を習得しなければならないと考えられるので、これは 能率の面で不利である。たとえば、ホストDSPアプリケーン1ンを開発するプ ログラマはDSPの動作環境、又は特定の型のデータを操作するために使用され るアルゴリズムについて技能をもっていないであろう。逆に、DSPプログラム を開発するプログラマはホスト動作環境に関する技能を全くもたないであろう提 供されるシステム資源を利用してホストアプリケ−シーン開発を簡略化する技法 として知られているのは、アプリケージ蒙ンプログラミングインタフェース(A PI)を介するというものである。APIは、典型的には、資源を事前定義され た方式でアクセスし且つ利用するために使用できる所定の1組の機能(たとえば 、マクロ)呼出しである。ところが、そのようなAPIは、ホスドアプリケージ 1ン開発者が資源を利用する方式に融通性を要求するような状況には対処しない 、ホスドアプリケージ1ン開発者が資源を代替方式で使用することを望む場合に は、通常、APIをバイパスするので、資源のプログラミングについての技能が 要求されるであろう。
本発明の目的は、アプリケージ1ンプログラマとコプロセッサプログラマの技能 が最も良(利用されるような環境を提供することである。この目的のためには、 ホストDSPアプリケージ替ン開発者がDSPをプログラミングすることに配慮 する必要がなく且つDSPプログラム開発者はホスト環境をプログラミングする ことに配慮する必要がないような環境が望ましい。
本発明の別の目的は、作業をホストプロセッサとコプロセッサとに分割すること によってシステムの総スループットを最適化することである。
最後に、本発明の目的は、1つ又は複数のコプロセッサを介して複数のホスドア ブリケージ醪ンの同時実行を提供することである。
見−! コプロセッサ、たとえば、デジタル信号処理装置においてタスクを開発し且つ実 行する方法及び装置を開示する。コプロセッサに関わるオペレーティングシステ ムはチームワーク概念を利用する。このチームワーク概念はコプロセッサのオペ レーティングシステム機能をホストプロセッサと、コプロセッサとに分割する。
すなわち、コプロセッサのオペレーティングシステムの第1の部分をホストプロ セッサにより実行し、第2の部分をコプロセッサにより実行する。このようなチ ームワークオペレーティングシステムはシステムとコプロセッサの作業のスルー ブツトを最適化する。
さらに、コプロセッサを利用するホストアプリケ−シーンプログラムの開発を容 易にするために、アプリケージ置ンプログラミングインタフェース(API)が 設けられている。APIは、コプロセッサタスクを生成し且つ制御するために使 用される1組の機能呼出しから構成されている。コプロセッサで実行するための コプロセッサコードの開発を容易にするために、タスクプログラミングインタフ ェース(TPI)とタスク単位定義言!!(TUDL)が設けられている。TP I及びTUDLは、コプロセッサプログラムに関わる動作環境の構成を容易にす るために使用される1組の機能呼出しとマクロから構成されている。ホスドアプ リケージ1ン開発者と、コプロセッサプログラム開発者との通信は、タスク単位 仕様文書を通して行われる。タスク単位仕様文書は、ホスドアブリケージ蒙ンが 特定のコプロセッサプログラムを利用するために必要な情報を含む。
図面の簡単な説明 図1は、本発明の好ましい実施例により利用できるようなコンピュータシステム を示す。
図2は、本発明の好ましい実施例により利用されるようなチームワーク処理動作 環境を示す。
図3は、本発明の実現される実施例において実行されるようなコプロセッサを利 用するコプロセッサタスクを構成するために要求されるステップを示すフローチ ャートである。
図4は、本発明の実現される実施例において実行されるように、コプロセッサタ スクをコプロセッサでの実行から除外するために要求されるステップを示すフロ ーチャートである。
図5は、本発明の実行される実施例において利用されるように、コプロセッサで 実行するためのコプロセッサタスク単位を生成するために要求されるステップを 示すフローチャートである。
図6は、本発明の実現される実施例により実行されるようにDSPコプロセッサ を利用するホスドアプリケージWンの1例の概要を示す。
好ましい実施例の詳細な説明 コンピュータシステムにおけるコプロセッサ、すなわち、デジタル信号処理装置 を制御する方法及び装置を説明する。以下の説明中、本発明を完全に理解させる ために、オペレーティングシステムの機能性などの特定の詳細を数多く挙kfる 。しかしながら、そのような詳細が当業者には知られて(すること及びそれらの 特定の詳細がなくとも本発明を実施しうることは当業者に&書明白であろう。他 の場合には、本発明を無用にわかりに4くしな〜)ために、周知の機能、たとえ +(、デジタルシステム処理アルゴリズム及び機能を詳細に番よ説明しなカーっ た。
1蛙と割り14が1乙に久本二とすL 本発明の好ましい実施例は代り構成をもつコンピュータシステムで実施されて良 い。図1はそのようなコンピュータシステムの基本構成要素の一亀くつ力瓢を示 す通信するバス又は他の通信手段101とミバス101と結合し、情報を処理す る処理手段102(一般にはホストプロセッサという)と、バス101と結合し 、プロセッサ102に関わる情報と命令を記憶するランダムアクセスメモリ(R AM)又は他の記憶装置1103(一般には主メモリという)と、バス101と 結合し、プロセッサ102に関わる静的情報と命令を記憶する読取り専用メモリ (ROM)又は他の静的記憶vt11104とを含む。
前記バスlotに結合する他の装置は、情報と命令を記憶する磁気ディスク及び ディスクドライブなどのデータ記憶装置105と、情報と指令選択をプロセッサ 102に通信する英数字キー及びその他のキーを含む英数字入力装置106と、 カーソルを制御し且つ情報及び指令選択をプロセッサ102に通信するマウス、 トラックボール、カーソル制御キーなどのカーソル制御装置107と、データの 入出力を表示する表示装置1108と、DSP資源要求を処理するデジタル信号 処理装置(DSP)109と、音声信号の入出力のためのオーディオボート11 Oと、遠隔通信信号の入出力のための遠隔通信ボート111とを含む。このよう なコンピュータシステム構成では、デジタル信号処理装置lO8はホストプロセ ッサ102に対するコプロセッサであると考えられる。
アーキテクチャの上では、DSPは浮動小数点装置を含む超高速整数RISC( 圧縮命令セットコンピュータ)利用汎用マイクロプロセッサである。真の汎用プ ロセッサとの基本的な相違点は、DSPが乗算及び累算(MA C)演算を非常 に急速に実行するように設計されているということである。DSPプログラムで は、MAC演算は非常に大量に使用される。従って、実行に際してDSPコプロ セッサを要求しな111が、利用可能であれば、それらを活用するであろうよう なりSPホストアプリケ−シロンを書込んでも良いことに注意すべきである。
本発明の一実施例は、カリフォルニア州Cupert i noのApple( 1E録商標)COmputer+ IneOrl)Orat8dから入手可能で あるMacintosh(登録商標)コンピュータのファミリに属するい(つか のコンピュータで使用するために実現されている。利用して良いコプロセッサは 、ペンシルバニア州AllentownのAmerican Te1ephon e &Telegraph(AT & T)Microelectronics から入手可能であるDSP3210 Digital Signal Proc essO「で見られる動作特性及び機能に類似する動作特性と機能を有する任意 のデジタル信号処理プロセッサである。
説明の残る部分は実現した実施例に関連するものである。実現した実施例におけ るDSPコプロセッサは汎用マイクロプロセッサの特性を有して〜するので、月 嗜の様々な機能を実行するコプロセッサに本発明を適用すること番よ当業者にC よ明白であろう。
さらに、以上の説明の中で明らかになるであろうh+、特定ノ1−ドウエア要件 i!コンパートメント化されているので、本発明の好ましb1実施例&よ使用す るDSPとは無関係である。従って、代替DSPの使用は単にDSPドライノ( の開発を要求するだけであろう。DSPコブロセブサで実行されるDSPカーネ lしの不可欠の構成要素は相対的に小型で、良(知られて0るため、これ&よ周 知のアクティビティを表わす。言うまでもなく、特定のDSP装置を拳1用する ために書込まれるDSPプログラムコードをいずれも再書込み又Ct再コンノf イルしな1すれ+2ならないであろう。
先に説明した通り、DSPコプロセッサは汎用プロセッサの特性を有する。これ は、時によってはシステムメモリに類似する局所メモIJIこ対するアクセスを 含み、オペレーティングシステムにより制御されることになる。たとえ+f、D SP3210 DSPコプロセッサは8キロノイイト内部キャッシュメモI〕と 、システムメモリをアクセスするための汎用外部ノ(スとを有する。DSPプロ グラマの視点からいえば、DSPはホストプロセッサ及びホストオペレーティン グシステムと協調して動作している自立言語型システムである。しh=Lなめζ ら、ホスドアプリケージ、ンブログラマの視点からいえば、DSPjよ、単に、 ホストコンビ、S−タシステムと関連する従来のプログラミング技法を使用して 呼出しうる資源である。
システムアーキテクチャ 実現される実施例は、ホストプロセッサ及びDSPIこシステム資源をアクセス させることができる共用メモリアーキテクチャを駒1用する。共用メモr」アー キテクチャは、インプリメンテ−シーン及び/1−ドウエアに要するコストを低 減させ、プロセッサ間通信及びデータ共用又はデータストリーミングを簡略化し 且つスピードアップし、システムのスループブトを最適化すると共に、DSPが 提供できる適用可能機能の範囲を広げるという利点を有することがわかっている 。
実現される実施例の中のメモリモデルは、局所メモリと、主メモリとに分割され ている。局所メモリは、DSPオペレーティングソフトウェアによって頻繁にア クセスされるデータ(たとえば、プログラムデータ)を記憶する。主メモリはさ ほど頻繁にアクセスされないデータ(たとえば、FIFOデータ)を記憶する。
尚、局所メモリと主メそりは共に同じ物理メモリの中にあっても良(、あるいは 、バスによって分離されてtlても良いことに注意する。それら2つのメモリは 共通アドレススペースを共用する。
システムは、それぞれが複数のDSPクライアントにより同時にアクセス可能で あるような複数の並行DSPコプロセッサ動作を可能にするという点で、DSP の堅牢性を与える(DSPクライアントについては、以下にさらに詳細に説明す る)。そのようなりSPの堅牢性は以上の説明の中で明白になるであろう。
実現される実施例のDSP、すなわち、コプロセッサオペレーティングシステム は、チーム処理を基本として動作する。特に、作業をホストプロセッサとDSP とに分割することに入念な注意を払う。その目的は、全てのコンビ、−タシステ ム資源を最大限適切に利用することである。DSPオペレーティングシステム全 体のアーキテクチャを図2に示す。図2は、システムアーキテクチャの機能を示 す図であり、機能構成要素内部の実際の編成又はインタフェースを表現しようと するものではない。
図2を参照すると、ホストアプリケ−シーン又はクライアント201はDSPマ ネージャ202とインタフェースする。概念上、DSPマネージャ202はアプ リケージ、ンプログラマによりアクセス可能な一次レベルツールボックスである と考えて良い。DSPマネージャ202はホストプロセッサで実行される。ホス ドアブリケージ替ン又はクライアント201は特定のアプリケ−シーン又はホス トアプリケ−シーンによりアクセスされているより高次のレベルのツールボック スを表わす。クライアントという用語は一般に資源と、資源要求側との関係を記 述するために使用される。この場合、要求されている資源はDSPコブロセブサ である。ツールボックスは、一般に使用される機能を実行する事前定義済の1組 の呼出し可能ルーチンを指す。典型的には、そのようなツールボックスは特定の 1つの機能、たとえば、図形出力を生成する機能と関連している。ツールボック スの使用はAppleオペレーティングシステムにおけるプログラミングを熟知 する人んは良く知られており、ADDISOS−WELSLEY Publis hing Companyが刊行した刊行物rlnside Macint。
shJの中に詳細に説明されている。これは、ホスドアブリケージ冒ンがDSP の機能性をDSPマネージャ202を介して直接に利用しても良く、あるいは、 より高次のレベルのツールボックスを介して利用しても良いことをさらに示唆し ている。
DSPマネージャ202は、小ストDSPアブリケーンーンとより高次のレベル のツールボックスがDSP機能をアクセスするときに経過するホスト機能性を提 供する。DSPマネージャ202はDSPホストドライバ204とさらにインタ フェースする。DSPホストドライバ204はホストプロセッサで実行されて、 特定のDSPコプロセッサハードウェアインブリメンテ−シーンとインタフェー スするために要求される特定の機能性を提供する。DSPマネージャ202とD SPホストドライバは共用メモリ218とさらにインタフェースする。共用メモ リ218は局所メモリ又は局所メモリ、主メモリ双方の組合わせのりずれかとし て定義されれば良い。局所メモリはシステムDRAMにあるか、あるいは、オブ シ、ンのカード又は主論理ボードメモリにある。DSPマネージャ202とDS Pカーネル211が通信するときは、この共用メモリ218を介する。
DSPマネージャ202はアプリケージ1ンプログラミングインタフエース(A PI)205と、クライアント及び装置マネージャ206と、入出カサ−ビス2 07と、データ構造マネージャ208と、割当てマネージャ209とからさらに 構成されている。DSPマネージャ202は、ツールボックス呼出しを実行する ために使用される標準インタフェースを利用しても良い。たとえば、Apple  Macintosh環境においては、ツールボックス呼出しを実行するために 421準トラツプインタフエースを使用する。ところが、手続き呼出しメカニズ ムも機能するであろう。DSPにインタフェースするための1組のマクロはクラ イアントに対してアクセス可能であり、アプリケージジンプログラミングインタ フェース(API)205の中で定義され且つ解決される。尚、この意味でのマ クロは所定の機能を実行するコードの呼出し可能部分を指すことに注意する。マ クロとその利用法は当業者には知られて埴る。
DSPマネージャの3つの主要なサービスは入出カサ−ビス207と、クライア ント及び装置管理20Bと、データ構造管理208とに関連している。それらの サービスは、DSPマネージャ202の最下位レベルである割当てマネージャに 対して呼出しを実行する。割当てマネージャ209はDSPキャパシタ及び局所 メモリの割当てと、入出力資源の割当てに責任も負う。入出カサ−ビス207は 、DSPへリアルタイムで送信されている又はDSPからリアルタイムで受信さ れているデータストリームを処理するためのものである。クライアント及び装置 マネージャ206は、利用可能な装置(すなわち、逃理責源と入出力資源の双方 )とクライアントを追跡し続ける。クライアント管理によって、複数のクライア ントが利用可能な資源を競合なく共用できる。
以上説明した構成要素201〜209は全てホストプロセッサと関連している。
上記の項目は主にDSPコプロセブサで実行されている。図2に戻ると、タスク 単位定義言!i! (TUDL)220はDSPタスク単位210を構成するた めに使用される。TUDL220は、DSPタスクの構成を容易にするためにさ らに使用される。DSPタスク単位を構成する1組のマクロを提供する。TUD L220は、様々な構成でDSPタスク単位を利用するための乳化情報をさらに 提供する。この乳化情報はDSPマネージャ202により所望のDSPタスクを 生成するために使用される。TUDLマクロはホストプロセッサで実行されるが 、ルーチンをDSPコブロセブサで実行させても良い。
TUDLマクロは、DSPプログラマがそのプログラムの中に低レベルの、たと えば、メモリ管理のDSP動作命令を含める必要をなくす。TUDLマクロをさ らにセットとして記憶し、TUDLスクリプトとして呼出しても良いことに注意 すべきである。そのようなスクリプトは頻繁に使用されるTUDL機能性を実行 するために使用されても良い。
DSPタスク221はDSPカーネル211とインタフェースする。DSPタス ク221は、DSPコブロセブサに関して書込まれている特定の機能又はプログ ラムを表わす。DSPタスク221については以下にさらに詳細に説明する。
DSPカーネル211は、DSPコブロセフサにより直接にアクセス可能な記憶 場所(たとえば、局所メモリ)に常駐している。実現された実施例では、そのよ うな記憶場所は局所メモリと、DSP3210 DSPコプロセッサのキャッシ ュ及び/又は読取り専用メモリ(ROM)とにある。
DSPマネーツヤ202に類似する方式で、DSPカーネル211はDSPカー ネルドライバ212及び共用メモリ218とインタフェースする。DSPカーネ ルドライバ2+2はハードウェア依存ルーチンを含み、局所メモリ又はキヤ/寸 ツタメモリに常駐している。DSPカーネルドライノ(212は共用メモリ21 8を介し、直接割込み219を経てDSPホストドライ)<204と通信する。
DSPマネージャ202とDSPカーネル211との通信は、共用メモリ218 のフラグ、データ及びセマフォと、割込み219とによって実行される。DSP カーネル2+1はさらにタスクプログラミングインタフェース(TPI)213 と、入出カサ−ビス214と、制御サービス2!5と、キャッシングサービス2 16と、エグゼクティブ217とから構成されている。
DSP7不−ジヤ202と同様に、DSPカーネル211もインタフェース層、 すなわち、タスクプログラミングインタフェース(TPI)213を有する。
TP I 213は、DSPタスクに関わるランタイム環境を構成するために、 DSPカーネル211に指示語を提供する。TP I 213はDSPマネージ ャと同様の方式で動作しても良いニドラップ又は手続き呼出しメカニズムを使用 して、DSPタスク単位からのDSPカーネルに対する呼出しを実行する。TP I213はDSPコプロセッサで実行されるが、ルーチンをホストプロセッサで 実行させても良い。
DSPカーネル211はDSPタスクに対するサービス、すなわち、他のタスク 又はプロセッサに対するデータストリーム及びFIFOの管理と、制御サービス 215と、DSPキャッシュメモリに関わるキャッシング動作21Bとを含む入 出カサ−ビスをも提供する。DSPカーネルの基礎を成す機能はエグゼクティブ 層217であり、これはDSPタスク順序付は及び他の制御機能を管理する必要 がある。
先に指示した通り、DSPマネージャ202とDSPカーネル211との通信は 共用メモリ218を介して伝送されるのであるが、これは割込み219により、 あるいはフラグ又はセマフォにより開始されれば良い。DSPホストドライバ2 04はホストプロセッサで実行するが、DSPカーネルドライバ212はDSP コプロセッサで実行する。
DSPマネージャ202とDSPカーネル21+との間で要求される通信は、た とえば、DSPで実行中であるタスクの異常な終了の結果として起こることもあ る。そのような状況においては、ホスドアプリケージ1ン/クライアントとオペ レーティングンステムにその終了を報知しなければならない。従って、DSPカ ーネル211はDSPドライバ212にDSPホストドライバ204に対する割 込みを生成させるであろう。さらに、DSPカーネル212は状fi/誤り情報 を共用メモリ218の所定の記憶場所又はバブツTに導入するであろう。その割 込みを受信すると、ホストドライバ204は、所望の応答アクシランを実行する ために、共用メモリのその所定の記憶場所又はバッファを問い合わせるであろう 。これは、DSPマネージャ202及び/又はホストアプリケ−ノーン/クライ アント201に対するコールバックを含んでいても良い。
実現される実施例では、DSPカーネルドライバ212とDSPホストドライバ 204を一体に1つのドライバとして記憶している。DSPホストドライノ<2 04はホストオペレーティングシステムと関連する標準装置ドライバ必要条件に 準拠するであろう。DSPカーネルドライバ212はDSPコプロセッサについ て類似のドライバ機能を実行する。さらに、DSPカーネルドライバはノ1−ド ウエアのインプリメンテーシ四ンに従属する何らかのDSPコードと、ブーティ ング、再始動及び誤り処理コードとを含むであろう。
図2は、実現される実施例のデュアルプログラミングインタフェース:DSPマ ネージャのアプリケージ「ンプログラミングインタフェース(API)205、 DSPカーネル211のタスクプログラミングインタフェース(TPI)213 及びタスク単位定義言M (TUDL)220をさらに示す。それらのインタフ ェースは完全に分離しており、異なるプログラマによ、5で使用されるような構 成となっている、特定していえば、プログラマはホストアプリケ−シーンとDS Pプログラミングの双方に熟達している必要はないのである。プログラマはDS Pタスク単位仕様文書を通して互いに通信しても良い。この文書は、ホストクラ イアントとDSPタスク単位との間の正しいインタフェースを確定するために必 要な全ての情報を転送するビークルを形成する。DSPタスク単位仕様文書の内 容については、以下にさらに詳細に論じる。
ホストDSPアプリケージ替ン開発 ホストアプリケ−シロンプログラムがDSPコプロセッサを利用するとき、DS Pタスクが構成される。DSPタスクは、DSPを利用しているアプリケ−シー ンの文脈の中でホストアプリケ−シーンプログラマによって作成されても良い。
また、DSPタスクはツールボックス内のツールによって作成されても良い。
いずれの場合にも、タスクはアプリケ−シーンプログラミングインタフェース( APE)を介してDSPマネージャに対しマクロ呼出しを実行することにより作 成される。それらのマクロ呼出しを使用して、タスク構造を生成し、そのタスク 構造に所望のDSPタスク単位を挿入する。他のマクロ呼出しを使用して、DS Pタスクを活動させ、状態照会し、また、非活動化する。
タスク構造は典型的にはタスク識別子と、関連フラグと、DSPタスク単位のリ ンクされたリストに対するポインタとから構成されている。DSPタスク単位は DSPコード、変数、入カバッフア、出力バッフT又はDSPコプロセッサで実 行されるDSPタスクを生成するための他の情報を含む。
先に説明した通り、ホストアプリケ−シーンは典型的にはツールボックスからの ツールを使用して良い。実現される実施例におけるツールボックスの使用及びツ ールボックスの生成又は拡張のためのホスドアブリケージ厘ンの書込みは、先に 挙げた刊行物rlnsids MacintoshJの中に説明されている。
従って、ツールボックスの使用についてこれ以上論じることは不必要であると思 われる。
実現される実施例においては、ホストDSPアプリケージ―ン又はクライアント を、l)特定アプリケージシン向は機能の性能向上のために、DSPが存在して いれば、そのDSPを認識し且つ使用するか、2)DSPを要求し、DSPが利 用可能でないならば、全く実行しないか、又は3)より高次のレベルのツールボ ックスに対して呼出しを実行することによりDSPを利用するという3つの異な る方式で動作するように設計することができる。
図3は、DSPタスクを構成するために要求されるステップを示すフローチャー トである。まず、ステップ301で、DSPクライアント(たとえば、ホスドア プリケージ曹ン)はDSPの存在をDSP問い合わせ状態を経て確定しなければ ならない。次に、ステップ302では、DSP資源が利用可能であるか否かを判 定する。この試験は、アプリケージ1ンのプラットホーム独立性があるために実 行されるのである。そこで、アプリケ−シーンはDSP資源が存在していればD SPコプロセッサを活用しても良く、存在していなければ、処理を継続すべきか 否かを決定することができるであろう。DSP資源が利用可能でない場合、ステ ップ303で、アプリケージ1ンを継続すべきか否かについて決定を実行する。
DSPなしでアプリケ−シーンが実行されないのであれば、ステップ304でア プリケージ1ンを終了する。そうでない場合には、ステップ305でアプリケー ジロンは継続し、DSP機能性はホストプロセッサにより、おそらくはより下位 のレベルで実行されることになる。
DSP資源が利用可能である場合には、ステップ30Bで、クライアントはDS P装置とサインイン(sign−in)する。この手続きによって、与えられた タスクを特定のクライアントと関連づけることができる。これはクライアント管 理、誤り処理及びDSPタスクアクセスの制御のために実行される。
次に、ステップ307では、新たな(空の)DSPタスク構造を生成する。これ はタスクデータ構造を記憶するためのメモリの割当てを含む。次のステップ30 8では、DSPタスク単位からの資源を割当て、記憶装置からのDSPタスク構 造の中に挿入する。TUDLからのタスク単位に記憶されている情報をAPIを 介してアプリケ−シロン指示語と関連させて使用して、DSPタスクを構成する +、DSPタスク単位に関する情報はDSPタスク単位仕様文書からホストプロ グラマに提供される。DSPタスク単位挿入が完了したならば、次に、ステップ 309で、DSPコプロセッサによる実行のためにDSPタスクをDSPタスク ランリストに導入する。DSPタスクをDSPタスクランリストに導入したとき 、そのDSPタスクは非活動状態である。すなわち、実行のためのタスクをもた ない。ステップ310では、次にDSPタスクを実行のために活動化する。これ はそのタスクと関連する活動/非活動制御フラグを設定することを含む。
タスクの状態を問い合わせるか、タスクを制御するか、タスクを変更するか又は タスクを終了させるために、好ましい実施例の中では、さらに別のマクロが提供 される。図4は、タスクを終了させるために要求されるステップの概要を示すフ ローチャートである。タスクの実行中に使用される様々なバッファや他の記憶媒 体を記憶するために記憶装置割当てが実行されているために、タスクを終了さ( るには特別のステップが必要である。まず、ステップ401で、タスクを非活動 化する。これは典型的にはDSPタスクに関わる活動/非活動制御フラグをクリ アすることを含む。次に、ステップ402では、非活動化肯定応答を照会する。
ホストプロセッサは、現在実行中である可能性のあるタスクの完了の検証を待機 しなければならない。これは、また実行中であるDSPタスクの排除(システム 全体を異常に終了させてしまうという結果をもたらすであろう)を防止する。
次に、ステップ403では、DSPタスクをDSPタスクランリストから除去す る。次に、ステップ404で、全てのタスク割当て資源の割当てを解除する。こ れはタスク構造それ自体について割当てられたメモリと、DSPタスク及びデー タ又は入出力バッファについて割当てられた局所メモリ及びシステムメモリとを 含むであろう。最後に、ステップ405で、クライアントはDSPコプロセッサ からサインアウト(signout)Lなければならない。
DSPアプリケージぽン開発 DSPタスク単位はDSPプログラミングをホスドアブリケージ寥ンプログラミ ングから隔離する。ところが、先に説明したように、DSPタスク単位はホスト アプリケーンーンによって導入される。従って、DSPプログラマは各プログラ ム単位に関する何らかの基本情報を文書化しなければならない。そのような情報 はDSPタスク単位仕様文書の中に含まれているであろう。そのようなりSPタ スク単位仕様文書を使用して、ホスドアプリケージ1ンプログラマはホストアプ リケーンーンを書込むために必要な情報を得るであろう。基本情報はタスク単位 識別子情報と、入出力バッフ1定義情報と、II御及びパラメータ形式と機能と 、DSPタスク単位により提供される機能の簡単な記述とを含むであろう。
実際のDSPプログラムコードの開発はDSPタスク単位の構成とは明確に異な っていても良い。DSPプログラムコードはDSPに特有の命令から構成されて いる。本発明の実現される実施例は、DsPプログラムをコード化するための開 発機能、たとえば、コンパイラ、アセンブラ及びデバッガを提供する。そのよう なプログラム開発機能は当該技術では良く知られている。
図5は、DSPタスク単位生成のために要求されるステップを例示するフローチ ャートである。個別のプログラミング型、プログラミング方法又は特定の開発ツ ールセットの動作に応じて、別のステップ又は興なるステップを取っても良い。
いずれにしても、DSPタスク単位の生成は、ステップ501で、所望のDSP プログラムの開発(すなわち、書込みとデバッキング)と共に始まる。DSPプ ログラムはDSPタスク単位の基礎属性と、TPI及びTUDLで提供されるマ クロとに関して設計されるであろうと(1うことか理解される。残るステップは タスク単位構造の実際の構成に関するものであり、TPI及びTtlDLの呼出 しとマクロを使用して実現される。まず、ステップ502では、新たなタスク単 位構造を生成する。この結果、プログラム単位構造に対してメモリが割当てられ ると共に、ヘッダフィールドに情報が挿入される。ステップ503では、DSP プログラムコード、データ、変数などをDSPタスク単位構造に挿入する6次に 、ステップ504で、コンバイリング及び/又はアセンブリング及びリンキング によって、DSPホスドアブリケージ1ン又はクライアントが使用するために、 DSPタスク単位を準備する。最後に、ステップ505では、構成したタスク単 位を記憶装置、たとえば、ディスクに導入する。ホストアプリケ−シーンプログ ラマによりタスク単位をアクセス可能であるのは、ディスクの記憶場所からであ る図6は、ホストDSPアプリケーシロンを示す。DSPアプリケージ1ンは先 に記憶されていた音声データを取り出し、それを再生する。圧縮音声データはデ ィスク601に記憶されている。音声データそれ自体のそのような圧縮は1つの DSPタスクから構成されているであろう。いずれにしても、圧縮音声データ6 olは入力FIFOバッフ1602に提供されるであろう。音声データを伸張す るために、入力FIFO602はDSP803にさらに結合しているであろう。
出力、すなわち、伸張後の音声データは、その後、第2のFIFOバブフ160 4へと送り出されるであろう。P IFO604は、次に、音声データの再生の ために、スピーカ605に結合しているであろう。
この例では、伸張音声データDSPタスク単位603はタスク単位生成に関して 説明した方法を使用して生成されるであろう。DSPタスク単位603を取り囲 んでいる要素、すなわち、圧縮音声データ601と、FIFO602及び604 とは、DSPマネージャと他のホストオペレーティングシステムのツールボック スの双方に対する一連のAPI呼出しを使用して、ホスドアブリケージ、ン又は クライアントにより定義され旦つDSPタスク603に関連づけられるであろう 。従って、伸張アルゴリズムプログラムコードは音声再生タスク単位コードとは 別個に開発されるのである。
以上、チームワーク動作環境を利用し且つホストアプリケ−シロン開発者と、コ プロセブサプログラム開発者とに対して別個のプログラミングインタフェースを 形成する方法及び装置を開発する。
ィ← フロントページの続き (81)指定国 EP(AT、BE、CH,DE。
DK、ES、FR,GB、GR,IE、IT、LU、MC,NL、PT、SE) 、GA(BF、BJ、CF、CG、CI、CM、GA、GN、ML、MR,SN 、TD。
TG)、 AT、 AU、 BB、 BG、 BR,CA、 CH。
CZ、DE、DK、ES、FI、GB、HU、JP、KP、 KR,LK、 L U、 MG、 MN、 MW、 NL、 N。
、 NZ、PL、PT、 RQ、 RU、 SD、SE、 SK。
A (72)発明者 スヴエンセン、ヒユー・ビイアメリカ合衆国 30319 ジ ョーシア州・アトランタ・ジョンソン−フェリー ロード・1930−エイ (72)発明者 ソーン、エイ・フィリップアメリカ合衆国 95008 カリ フォルニア州・キャンベル・ウェスト パー アヴエニュ・668

Claims (19)

    【特許請求の範囲】
  1. 1.プロセッサと、システムメモリと、バスと、コプロセッサとを具備し、前記 システムメモリに記憶されるオペレーティングシステムと、コプロセッサ制御手 段とをきらに具備するコンピユータジステムにおいて、前記コプロセッサ制御手 段は、 a)コプロセッサ命令の実行を制御するコプロセッサ部分と;b)コプロセッサ タスク単位からコプロセッサタスクを構成し、さらに、前記コプロセッサタスク の実行を制御するホスト部分と;c)的記コプロセッサ部分及び前記ホスト部分 に結合し、前記コプロセッサ部分を前記ホスト部分に結合する共用メモリ手段と を具備するコンピュータシステム。
  2. 2.前記コプロセッサタスク単位は、 8)前記タスク単位を識別するヘッダ部分と;b)コプロセッサデータ及び命令 と; c)人出力情報と; d)前記コプロセッサタスクに関わる実行環境を構成する要件情報とからさらに 構成されている請求項1記載のコンピュータシステム。
  3. 3.前記コプロセッサタスクは、 a)前記タスクを識別するヘッダ部分と;b)コプロセッサデータ及び命令と; c)前記コプロセッサタスク単位の前記要件情報から生成きれる入出力情報、状 態情報及び制御情報とから構成されている請求項2記載のコンピユータジステム 。
  4. 4.前記コプロセッサ部分は、 8)記憶手段に記憶された複数のコプロセッサ指示マクロから構成されるタスク プログラミングインタフェース手段と;b)前記記憶手段に記憶きれた複数のタ スク単位構成マクロから構成されるタスク単位定義手段と; c)前記ホスト部分を前記コプロセッサにインタフェースするコプロセッサドラ イバ部分とからさらに構成されている請求項3記載のコンピュータシステム。
  5. 5.前記ホスト部分は、 a)前記記憶手段に記憶された複数のコプロセッサタスク作成及び制御マクロか ら構成きれるホストアプリケーションインタフェース手段と;b)前記ホスト部 分を前記コプロセッサにインタフェースするホストドライバ部分とからさらに構 成されている請求項4記載のコンピュータシステム。
  6. 6.前記ホストドライバ部分及び前記コプロセッサドライバ部分に結合し、前記 ホスト部分と前記コプロセッサ部分との間でメッセージ信号を発生する割込み手 段をさらに具備する請求項5記載のコンピュータシステム。
  7. 7.前記コプロセッサは圧縮命令セットコンピュータ(RISC)プロセッサで ある請求項8記載のコンピュータシステム。
  8. 8.前記コプロセッサはデジタル信号処理(DSP)プロセッサである請求項6 記載のコンピュータシステム。
  9. 9.プロセッサと、システムメモリと、バスと、コプロセッサとを具備し、前記 コプロセッサは命令の実行を制御するオペレーティングシステムを有するような コンピュータシステムにおける前記コプロセッサを利用する方法において、a) 1組のコプロセッサ命令及びデータと、コプロセッサタスク構成情報と、コプロ セッサ指示語とを含むコプロセッサタスク単位を前記コプロセッサオペレーティ ングシステムに提供する過程と;b)前記コプロセッサタスク単位からコプロセ ッサタスクを構成する過程と;c)前記コプロセッサタスクを実行のために前記 コプロセッサに提供する過程と; d)前記コプロセッサで前記コプロセッサタスクを実行する過程とから成る方法 。
  10. 10.前記コプロセッサタスク単位からコプロセッサタスクを構成する前記過程 は、 a)コプロセッサ構造を生成する過程と;b)前記コプロセッサタスク単位の前 記コプロセッサタスク構成情報から、入出力情報、状態情報及び制御情報を生成 する過程と;c)前記入出力情報、状態情報及び制御情報を前記コプロセッサタ スク構造に挿入する過程と; d)前記1組のコプロセッサ命令及びデータを前記コプロセッサタスク構造に挿 入する過程とからさらに構成されている請求項9記載の方法。
  11. 11.前記コプロセッサタスクを実行のために前記コプロセッサに提供する前記 過程は、 a)前記コプロセッサタスクをコプロセッサランリストに挿入する過程と;b) 前記コプロセッサタスクを起動する過程とからさらに構成されている請求項10 記載の方法。
  12. 12.前記コプロセッサタスクを実行する前記過程は、a)前記コプロセッサタ スクを前記コプロセッサオペレーテイングシステムに提供する過程と; b)前記コプロセッサタスク単位の前記コプロセッサ指示語から前記コプロセッ サコードに関わるランタイム環境を構成する過程と;c)前記1組のコプロセッ サ命令を実行する過程とからさらに構成されている請求項11記載の方法。
  13. 13.前記コプロセッサは圧縮命令セットコンピュータ(RISC)プロセッサ である請求項12記載の方法。
  14. 14.前記コプロセッサはデジタル信号処理(DSP)プロセッサである請求項 12記載の方法。
  15. 15.プロセッサと、システムメモリと、パスと、コプロセッサとを具備し、オ ペレーティングシステムにより動作が制御され、前記コプロセッサの動作はコプ ロセッサオペレーティングシステムにより制御されるコンピュータシステムにお ける前記コプロセッサを利用する方法においてa)前記コプロセッサで実行可能 である1つ又は複数のコプロセッサ命令を有するコプロセッサタスク単位を生成 する過程と;b)コプロセッサタスク単位を実行するためのコプロセッサタスク を構成する過程と; c)前記コプロセッサタスクをコプロセッサタスクランリストに挿入する過程と ; d)前記コプロセッサタスクランリスト中の前記コプロセッサタスクを実行のた めに起動する過程とから成る方法。
  16. 16.コプロセッサタスク単位を生成する前記過程は、a)所望の機能を実行す るための1組のコプロセッサ命令を生成する過程と;b)タスク単位構造を生成 する過程と;c)前記1組のコプロセッサ命令に関わる入出力情報、変数情報及 びデータ情報を挿入する過程とからさらに構成されている請求項15記載の方法 。
  17. 17.コプロセッサタスクを構成する前記過程は、a)コプロセッサタスク構造 を生成する過程と;b)コプロセッサタスク単位を前記コプロセッサタスク構造 に挿入する過程とからきらに構成されている請求項16記載の方法。
  18. 18.前記コプロセッサは圧縮命令セットコンピュータ(R1SC)プロセッサ である請求項17記載の方法。
  19. 19.前記コプロセッサはデジタル信号処理(DSP)プロセッサである請求項 17記載の方法。
JP5514279A 1992-02-18 1993-02-11 コンピュータシステムにおけるコプロセッサのプログラミングモデル Pending JPH07504054A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US83732692A 1992-02-18 1992-02-18
US837,326 1992-02-18
PCT/US1993/001211 WO1993016437A1 (en) 1992-02-18 1993-02-11 A programming model for a coprocessor on a computer system

Publications (1)

Publication Number Publication Date
JPH07504054A true JPH07504054A (ja) 1995-04-27

Family

ID=25274167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5514279A Pending JPH07504054A (ja) 1992-02-18 1993-02-11 コンピュータシステムにおけるコプロセッサのプログラミングモデル

Country Status (5)

Country Link
US (1) US5577250A (ja)
JP (1) JPH07504054A (ja)
AU (1) AU3616793A (ja)
DE (1) DE4390577T1 (ja)
WO (1) WO1993016437A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009507A (en) * 1995-06-14 1999-12-28 Avid Technology, Inc. System and method for distributing processing among one or more processors
US5842014A (en) * 1995-06-14 1998-11-24 Digidesign, Inc. System and method for distributing processing among one or more processors
US5721945A (en) * 1996-05-06 1998-02-24 Advanced Micro Devices Microprocessor configured to detect a DSP call instruction and to direct a DSP to execute a routine corresponding to the DSP call instruction
CA2224466C (en) * 1997-01-09 2003-12-23 Mitel Networks Corporation Transfer of basic knowledge to agents
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US5983338A (en) * 1997-09-05 1999-11-09 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6145097A (en) * 1997-09-05 2000-11-07 Motorola Inc. Method and apparatus for providing operand feed forward support in a data processing system
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US8489860B1 (en) * 1997-12-22 2013-07-16 Texas Instruments Incorporated Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device
US6480952B2 (en) 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US7243335B1 (en) 2000-02-17 2007-07-10 Microsoft Corporation Method and system for reducing coding complexity by providing intelligent manipulable defaults
US6832305B2 (en) * 2001-03-14 2004-12-14 Samsung Electronics Co., Ltd. Method and apparatus for executing coprocessor instructions
US20020174258A1 (en) * 2001-05-18 2002-11-21 Dale Michele Zampetti System and method for providing non-blocking shared structures
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
JP2004192052A (ja) 2002-12-06 2004-07-08 Matsushita Electric Ind Co Ltd ソフトウェア処理方法およびソフトウェア処理システム
US7380151B1 (en) 2002-12-11 2008-05-27 National Semiconductor Corporation Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors
US7016695B1 (en) 2002-12-11 2006-03-21 National Semiconductor Corporation Apparatus and method for processing a deterministic data flow associated with a wireless communication signal
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US7017127B1 (en) 2003-06-02 2006-03-21 National Semiconductor Corporation Method and system for enabling energy efficient wireless connectivity
US7739479B2 (en) 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US7743376B2 (en) * 2004-09-13 2010-06-22 Broadcom Corporation Method and apparatus for managing tasks in a multiprocessor system
US6980148B1 (en) 2004-12-07 2005-12-27 National Semiconductor Corporation Pipelined analog to digital converter that is configurable based on wireless communication protocol
US7193553B1 (en) 2004-12-07 2007-03-20 National Semiconductor Corporation Analog to digital converter with power-saving adjustable resolution
US7650266B2 (en) * 2005-05-09 2010-01-19 Nvidia Corporation Method of simulating deformable object using geometrically motivated model
GB0516454D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Coprocessor support in a computing device
US8302082B2 (en) * 2006-06-07 2012-10-30 Intel Corporation Methods and apparatus to provide a managed runtime environment in a sequestered partition
US7689810B2 (en) * 2006-06-21 2010-03-30 Qualcomm Incorporated Processor generating control signals including detection duration for satellite positioning system ranging signal detection circuit
US20080126747A1 (en) * 2006-11-28 2008-05-29 Griffen Jeffrey L Methods and apparatus to implement high-performance computing
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
US8249066B2 (en) * 2008-02-19 2012-08-21 Dialogic Corporation Apparatus and method for allocating media resources
CN102800312A (zh) * 2011-05-24 2012-11-28 鸿富锦精密工业(深圳)有限公司 语音控制系统及方法
US10983842B2 (en) * 2019-07-08 2021-04-20 Microsoft Technology Licensing, Llc Digital signal processing plug-in implementation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4729094A (en) * 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
US4648034A (en) * 1984-08-27 1987-03-03 Zilog, Inc. Busy signal interface between master and slave processors in a computer system
US4882674A (en) * 1985-03-05 1989-11-21 Wang Laboratories, Inc. Apparatus and method for control of one computer system by another computer system
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5283900A (en) * 1989-10-02 1994-02-01 Spectron Microsystems, Inc. Real-time operating system and virtual digital signal processor for the control of a digital signal processor
US5440740A (en) * 1992-10-13 1995-08-08 Chen; Fetchi System and method for managing devices on multiple digital signal processors

Also Published As

Publication number Publication date
WO1993016437A1 (en) 1993-08-19
US5577250A (en) 1996-11-19
DE4390577T1 (de) 1995-02-23
AU3616793A (en) 1993-09-03

Similar Documents

Publication Publication Date Title
JPH07504054A (ja) コンピュータシステムにおけるコプロセッサのプログラミングモデル
US8689232B2 (en) Object synchronization in shared object space
US8132191B2 (en) Method and apparatus for adapting and hosting legacy user interface controls
US7543301B2 (en) Shared queues in shared object space
US20070273700A1 (en) Method, system and computer program product for efficiently utilizing limited resources in a graphics device
US5384890A (en) Method and apparatus for providing multiple clients simultaneous access to a sound data stream
US20050257219A1 (en) Multiple computer architecture with replicated memory fields
US6445974B1 (en) CAD-neutral application programming interface
US5902947A (en) System and method for arranging and invoking music event processors
US20070220031A1 (en) XNA relationship management
US7689986B2 (en) Shared listeners in shared object space
US20070178968A1 (en) Displaying game asset relationship in a game development environment
JP3535795B2 (ja) コンピュータ、並びに、コンピュータ読み取り可能な記録媒体
US20060259386A1 (en) Building digital assets for use with software applications
US20020066084A1 (en) Coalescing properties, methods and events
JPH08502375A (ja) コンピュータにて並列実行処理可能なオブジェクト指向プログラムの少なくとも1つのオブジェクトにおける少なくとも1つのテストの実施方法
US8260850B2 (en) Thin-client and distributed development using data programming
US10621163B2 (en) Tracking and reusing function results
GB2342735A (en) Transferring information between computer programs
JP2878159B2 (ja) トランザクション処理システム
Bishop General purpose visual simulation system
AU2005236089B2 (en) Multiple computer architecture with replicated memory fields
CN121635996A (zh) 一种调用链的生成方法、装置和计算设备集群
CN115080198A (zh) 用于数据处理的方法、装置、服务器及计算机存储介质
CN118585127A (zh) 一种数据管理方法、装置及电子设备