JP2002312331A - メディアアクセラレータのサービス品質 - Google Patents

メディアアクセラレータのサービス品質

Info

Publication number
JP2002312331A
JP2002312331A JP2001364987A JP2001364987A JP2002312331A JP 2002312331 A JP2002312331 A JP 2002312331A JP 2001364987 A JP2001364987 A JP 2001364987A JP 2001364987 A JP2001364987 A JP 2001364987A JP 2002312331 A JP2002312331 A JP 2002312331A
Authority
JP
Japan
Prior art keywords
algorithm
data
dsp
idsp
time
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
JP2001364987A
Other languages
English (en)
Inventor
Rajko Milovanovic
ミロヴァノヴィク ライコ
Philip R Thrift
アール、スリフト フィリップ
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2002312331A publication Critical patent/JP2002312331A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 汎用プロセッサストリーミングメディアアプ
リケーションおよび/またはDSPメディアアルゴリズ
ムを有するメディアプレイヤを統合するためのサービス
品質(QoS)制御を実時間プラットフォームに提供す
ること。 【解決手段】 アルゴリズムプロセッサと連絡するアプ
リケーションプロセッサ上の実時間メディアアプリケー
ションのためのフレームワーク。アプリケーションプロ
セッサ上に実時間メディアアプリケーション用の複数の
プラグインを備え、アルゴリズムプロセッサ上に複数の
アルゴリズムコンポーネントとコンポーネントスケジュ
ーラとを備え、プラグインはそれぞれ1以上のアルゴリ
ズムコンポーネントに対応し、アルゴリズムプロセッサ
はアプリケーションプロセッサに連絡し、スケジューラ
は、コンポーネントの実行に関連するプラグインの制御
に応じたコンポーネントスケジューリングと、プラグイ
ンに送出するコンポーネントの実行に関するイベントの
通知とによって、コンポーネントに関してアプリケーシ
ョンにサービス品質を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子デバイスに関
し、更に詳細に言えば、マルチプロセッサ及びデジタル
シグナルプロセッサのフレームワークと方法に関する。
【0002】
【従来の技術】高速ネットワークアクセスと結びついた
インターネットの成長によって、実時間マルチメディア
処理はコンピュータ利用中心になった。実際、既に提案
されているマルチメディアフレームワークアーキテクチ
ャのMPEG−21規格化では、デジタルアイテムの定
義、マルチメディアコンテンツ表現、デジタルアイテム
の同定と説明、コンテンツの管理と使用、知的所有権の
管理と保護、端末とネットワーク、そして、イベント報
告という7つの構成要素が考えられている。こうしたア
ーキテクチャを持つアプリケーションは、インターネッ
ト上に接続し編集設備を有する、広範囲に分散した家族
メンバーのコンピュータに配布される写真アルバムの作
成に関するものであったり、あるいは、サービス品質
(QoS)の解決と利用可能な端末及びネットワークリ
ソースを必要とし消費前に発行される、関連同時追加コ
ンテンツを利用可能なインターネットストリーミングビ
デオの消費であったりして良い。
【0003】MPEG−21提案の標準インターフェイ
スは、ネットワーク及び端末の設置、管理、および、実
行の諸問題から利用者を保護することが目的である。こ
うしたアーキテクチャは各端末にグローバルなQoSマ
ネージャを含むことができる。QoSマネージャは、端
末リソースマネージャと予測マネージャーとを制御して
ネットワークリソースマネージャと予測マネージャとと
もにAPIを通じて利用者と対話する。一般的なネット
ワークアーキテクチャを示す図25及び図24を参照さ
れたい。
【0004】端末/ネットワークノード(クライアント
/サーバー)内におけるQoSマネージャの必要性は、
特に、全てのストリーミングメディア系アプリケーショ
ンの実時間サービス要件から生じる。ストリーミングメ
ディアアプリケーションは、独自のレンダリング期限を
持つ異種のコーデック(エンコーダ/デコーダ)とフィ
ルタとを取り扱わなければならない。これらのアプリケ
ーションは、人間の知覚特性をサービス品質における段
階的異常停止に利用および翻訳もできるべきである。ア
プリケーションは、その処理及びレンダリングサイクル
において妥当な量のジッタを処理できるべきである。例
えば、ビデオアプリケーションでは、レンダリングのフ
レームレートは30フレーム/秒(fps)、フレーム
周期に換算すると33msに維持されなければならな
い。しかし、アプリケーションは、サーバーと取り決め
る際に瞬間的変動制限に耐えられるべきである。また、
30fpsでは、人間の視覚は、約6フレーム/秒のフ
レーム落ちに耐えることができる。クライアントアプリ
ケーションは、さらに、性能における段階的異常停止
(瞬間的なフレーム落ち)をサポートでき、サーバーと
取り決めた特定の許容差内にレンダリングの定常状態を
維持しなければならない。QoSマネージャは、こうし
た実時間システムを実現するのに必要な機能と能力を提
供する機構である。
【0005】マイクロソフト・ダイレクトショーは、ロ
ーカルファイルやインターネットサーバーからのマルチ
メディアストリームを再生するために、および、装置か
らマルチメディアストリームを取り込むために汎用プロ
セッサ上にアプリケーションフレームワークを提供す
る。ダイレクトショーは、フィルタの接続とフィルタ経
由のストリームのデータフローを制御するフィルタグラ
フマネージャと共にプラグ可能なフィルタコンポーネン
トからなるフィルタグラフを中心とする。アプリケーシ
ョンは、フィルタグラフマネージャと連絡してフィルタ
グラフを制御する。図26を参照されたい。インターネ
ットからの再生には、単に、ソースフィルタがインター
ネットのURLから読み出し可能であるとが必要なだけ
である。ソースフィルタ後の構文解析プログラムフィル
タは、オーディオ、ビデオ、テキストなどにストリーム
を構文解析することができる。図27を参照されたい。
フィルタグラフマネージャは、選択のためのメリット値
を持つレジストリにおいて必要なフィルタ(例えば、レ
ンダラ)を制御し検索する。フィルタは、フィルタ入出
力用のピンを持っている。フィルタグラフマネージャ
は、メディアストリーム開始、一時停止、再生期間など
を、フィルタの方法にアクセスするフィルタグラフマネ
ージャへのアプリケーション・アクティブX制御呼び出
しによってサポートする。フィルタグラフマネージャ
は、イベントをフィルタからアプリケーションに送る。
【0006】フィルタは、タスクを実行するためのCO
Mオブジェクトであり、ピンは、フィルタから/への一
方向データストリームのためにフィルタによって作成さ
れるCOMオブジェクトである。図28を参照された
い。フィルタはIBaseFilterインターフェイ
スを有し、ピン、プロパティなどを計数して、実行、一
時停止、停止などの状態処理の制御に加えて同期化を可
能にするIMediaFilterから継承する。フィ
ルタは、フィルタグラフマネージャによって呼び出され
る。ピンインターフェイスは、共有メモリや他のリソー
スを用いたタイムスタンプ付きデータの転送、ピン間接
続におけるネゴシエートデータフォーマット、データコ
ピーの最小化とデータ処理量の最大化のためのバッファ
管理・割当をサポートする。IQualityCont
rolインターフェイスは出力ピン上にある。
【0007】品質制御データを含むフィルタグラフ(プ
ロトコル)におけるデータフローは、レンダラで生じ
て、メディアデータフロー変更が可能なフィルタが見つ
かるまでフィルタを通じて上流に(あるいはQCMに)
流れる。例えば、メディアサンプルプロトコルは、メデ
ィアサンプルを如何にフィルタ間に割り当てて通過させ
るかである。品質管理プロトコルは、フィルタグラフを
ハードウェア及びネットワーク状態に対して動的に適応
させて性能を如何に段階的に低下/向上させるかであ
る。
【0008】プッシュあるいはプルどちらかによるメデ
ィアサンプルデータフローは、下流フィルタからのIM
emInputPin::Receiveコールによる
ソースフィルタのプッシュ、あるいは、IAsyncR
eaderインターフェイス(IAsyncReade
rトランスポート)による下流プルである。メディアサ
ンプルは、IMediaSampleインターフェイス
をサポートするデータオブジェクトである。あるフィル
タから別のフィルタへ転送するデータは、「トランスポ
ート」と呼ばれ、ダイレクトショーの分類ではローカル
メモリトランスポートのためのサポートがあり、入力ピ
ンがIMemInputPinインターフェイス及び出
力ピンをサポートする。IAsyncReaderイン
ターフェイスはプル用である。
【0009】ノーテンブームのUSP5,748,46
8及びイクエーター・テクノロジーズのPCT公表出願
WO99/12097は、それぞれ、多重タスクへのプ
ロセッサリソースの割り当て方法を記載している。ノー
テンブームでは、ホストプロセッサに加えて、タスクを
優先順位システムによってコプロセッサリソースに割り
当てるコプロセッサが考えられている。イクエーター・
テクノロジーズでは、少なくと1サービスレベル(プロ
セッサリソース消費率)を与えられた各タスクをサポー
トしながら、タスクの時間消費に応じてプロセッサリソ
ースのスケジュールを決め、サポートしたサービスレベ
ルのための十分なリソースが存在するならリソースマネ
ージャがタスクを許可する。
【0010】2つ以上のプロセッサを備え、各プロセッ
サが独自のオペレーティングシステムあるいはBIOS
を備えたシステムとしては、遠く離れたプロセッサをイ
ンターネット経由で接続したシステムと、1つのRIS
C CPUに1つ以上のDSPを加えたものなど、2つ
以上のプロセッサを同一半導体ダイ上に統合したシステ
ムがある。
【0011】XDAIS規格には、DSP上で実行する
アルゴリズムのインターフェイスが規定される。これは
再使用可能オブジェクトを提供する。XDAISは、標
準インターフェイスIALGを実現するアルゴリズムに
加えて、このアルゴリズムを実行するための拡張を必要
とする。XDAISは、また、再配置可能コードや命名
規則などの若干の柔軟性規則にも従わなければならな
い。クライアントアプリケーションは、ファンクション
ポインタのテーブルを訪問してアルゴリズムのインスタ
ンスを管理できる。XDAIS規格・指針によれば、ア
ルゴリズム開発者はアルゴリズムを開発または変換でき
るので、DSPアプリケーション内にプラグインするの
がより簡単になる。
【0012】図20は、データが如何に現在の異種シス
テムの処理素子を通過して流れるかということを示す図
である。データトランザクションには、時間順を示すよ
うに1から6の番号を付けている。各トランザクション
に対して、データは、中央制御プロセッサ(CCP)の
制御下にシステムバスを通過せねばならない。CCP
は、メッセージまたはトリガーを制御経路経由でシステ
ム内の各種処理素子に送出することによってトランザク
ションを開始する。
【0013】図20の処理素子は、一組の定義されたタ
スクを実行可能な別個のプロセッサ(例えば、DSP、
ASIC、GPPなど)として示されている。それはそ
れぞれのプロセッサが独自のメモリを有して示されてい
る理由である。処理素子は、同一プロセッサ上で実行さ
れる個々のタスクであっても良い。
【0014】同一データが複数回(例えば、トランザク
ション1と2、3と4、および、5と6)システムバス
を通過せねばならない場合がある。そうしたシステムで
は、データは、合計2+(2×n)回、即ちこの場合は
6回、システムバスを通過せねばならない。システムバ
スを通過してCCPによる介入を受ける度に、データフ
ローオーバーヘッドを生じるのでシステムス全体のスル
ープットは低下する。
【0015】データフローオーバーヘッドは、所定の時
間のフレームにおいてシステムを移動可能なデータ量に
対してマイナスの影響を与えるので、システムが処理可
能なデータ量を制限する。こうしたシステムは、その素
子の能力の合計が示すものよりも少ない有効タスクしか
実行していないことになる。
【0016】
【発明が解決しようとする課題】本発明は、汎用プロセ
ッサストリーミングメディアアプリケーションおよび/
またはDSPメディアアルゴリズムを有するメディアプ
レイヤを統合するためのサービス品質(QoS)制御を
持つ実時間プラットフォームを提供する。これには、D
SPを含むシステム上においてDSPアルゴリズムを使
用するアプリケーションのためのクライアントアプリケ
ーションプログラミングを簡単にする利点がある。
【0017】
【発明の実施の形態】1. 概要 好適な実施例(iDSP)は、汎用プロセッサ(GP
P)ストリーミングメディアアプリケーションおよび/
またはコーデック、トランスフォーム、レンダラ、キャ
プチャラ、ソース、シンクなどのDSPメディアアルゴ
リズムを有するメディアプレイヤを統合するためのサー
ビス品質(QoS)制御を持つ実時間プラットフォーム
を提供する。
【0018】iDSPは、(1)XDAISアルゴリズ
ム規格に準拠したメディアドメインフレームワークと、
(2)多重並行メディアストリームの処理および管理
と、(3)保証インボックスQoSおよびMPEG−2
1準拠の実時間メディア処理とを提供する。GPPアプ
リケーションには、各種フィルタがiDSPプラグイン
と統合型DSP上の対応iDSPコンポーネントとで置
換されたダイレクトショーアプリケーションが含まれ
る。
【0019】図1a−1cは、iDSPフレームワーク
を模式的に示し、それにはDSPアルゴリズムalg
1、...alg3(iDSPコンポーネント)を、D
SPにブリッジしたRISCプロセッサ(GPP)を含
むハードウェアプラットフォーム上の対応GPPプロキ
シオブジェクトp_alg1、...p_alg3(i
DSPプラグイン)を通して1つのGPPメディアアプ
リケーションに統合する。このとき、GPPは実時間O
S(RTOS)を実行している。フレームワークは、ア
プリケーション開発者のためのAPIとアルゴリズム開
発者のためのAPIを有する。付録にあるiDSPプロ
グラマーズガイドでは、それらのAPIに加えて、G.
723オーディオデコーディングをiDSPによって加
速したダイレクトショーアプリケーションの例に関する
詳細が提供される。
【0020】2. サービス品質設計 図2a−2bは、好適な実施例のiDSPフレームワー
クとスケジューラを模式的に示す。図2aは、GPPア
プリケーションにおけるプラグインとDSP上のアルゴ
リズムの対応データグラフとの間のデータ及び制御フロ
ーを示す。実際には、プラグインAのためのデータフロ
ーグラフは2つのトラックに5つのアルゴリズムを有
し、プラグインBのためのデータフローグラフは2つの
アルゴリズムとデータリターンを有する。図2bは、ア
ルゴリズム優先順位解析を含むiDSPスケジューラの
実行を示す。iDSPフレームワークにおけるQoSサ
ポートは、スケジューラからプラグインへ送られるイベ
ント通知とプラグインからスケジューラへの制御を含
む。これによってプラグインを用いるアプリケーション
はQoSを嵌め込むことが可能になる。特に、 −−IDSPPluginは、1つ以上のIDSPCo
mponentのデータフロー(有向非環式)グラフへ
のアプリケーションインターフェイスである。 −−IDSPPluginは、一組の入出力IDSPF
ormat形式を特定することによって作成される。 −−IDSPPluginへのデータI/Oインターフ
ェイスは、タイムスタンプ付き発行/再要求モデルであ
り、IDSPPluginを用いるアプリケーションか
らのメディアバッファがプレゼンテーション時間でスタ
ンプされる。 −−矢印は、IDSPPluginとIDSPComp
onent間、および、IDSPComponent間
のIDSPBuffer(タイムスタンプ付きメディア
バッファ)のデータフローを示す。 −−IDSPBufferはタイムスタンプ(IDSP
時間)付きである。 −−IDSPSchedulerは、IDSPComp
onentのオンタイム実行を最適化してメディアのオ
ンタイム(同期)プレゼンテーション(オーディオ及び
ビデオ)を維持する。 −−IDSPQoSEventは、IDSPPlugi
nによって非同期に受信される。この形式には次のもの
がある。 IDSPQoS_ALG_COMPLETED IDSPQoS_PRESENTATION_TIME
_NOT_MET IDSPQoS_INSUFFICIENT_DATA IDSPQoS_INSUFFICIENT_CYCL
ES_AVAILABLE IDSPQoS_INSUFFICIENT_MEMO
RY_AVAILABLE −−IDSPQoSControlは、IDSPPlu
ginによって送られる。この形式には次のものがあ
る。 IDSPQoS_SET_RATE IDSPQoS_SET_QUALITY_LEVEL IDSPQoS_GET_STATS(使用メモリ、使
用サイクル、品質レベル、レート、期限に間に合ったバ
ッファの百分率、期限に間に合うために必要な品質レベ
ル) −−IDSPSchedulerは、QoSスケジュー
リングとイベント通知とを提供する。
【0021】IDSPQos_priority()
は、プレゼンテーション期限に間に合うように時間臨界
に基づいて計算される。もし最高優先順位のコンポーネ
ントが実行不可能な場合、IDSPScheduler
は環境を解析してIDSPQoSEventを送る。ア
プリケーションは品質レベルまたはレートを調整するこ
とができる。
【0022】さらに一般的には、QoSは、付録にある
iDSPプログラマーズガイドで説明されている次のイ
ンターフェイスでiDSPにおいてサポートされる。 IDSPPlugin_issue() IDSPPlugin_reclaim() IDSPPlugin_getPerformance
() IDSPPlugin_optimize() IDSPPluginManager_getMemo
ryUtil() IDSPPluginManager_getProc
essorUtil() IDSPCommand() IDSPRateChangeCommand()
【0023】実際には、QoSの鍵は「オンタイム」レ
ンダリングであり、iDSPは次のことによってアプリ
ケーションプログラマーに対してQoS管理のためのサ
ポートを有する。 −−データフローチェーンに沿ってメディアバッファの
尚早・遅滞を計測しながら実行時間データへのアクセス
を提供すること。 −−特定のメディアプレイヤに必要な新たな能力に拡張
可能なQoS調整用コンポーネントへのインターフェイ
スを提供すること。 −−コンポーネントのメモリとプロセッサ利用へのアク
セスを提供すること。 −−時間をベースにしたメディアの「オンタイム」動作
を最適化する実行時間スケジューラを提供すること。
【0024】メディアアプリケーション開発者は、これ
らのiDSPの特徴を利用してメディアプレイヤの特定
のQoS管理と連結しながらアプリケーション内にQo
Sを構築することができる。
【0025】iDSPにおける全てのデータストリーム
は、時間ベースである。即ち、IDSPPlugin_
issue()とIDSPPlugin_reclai
m()は、データ転送に加えて、データフローグラフ中
の処理において尚早及び遅滞を計測するのに使用可能な
時間I/O情報を提供する。アプリケーションはこのデ
ータを使用して性能の測定値を得てメディア処理を調整
するのに必要な調整を決定することができる。iDSP
スケジューラはデータフローを最適化して遅滞を避け
る。IDSPPlugin_optimize()は、
遅滞を最小化するようにプラグインのためのフレームレ
ートを下げるのに使用できる。IDSPPlugin_
getPerformance()は、プラグインがど
の程度「オンタイム」に動作しているかを示す測定値を
提供する。
【0026】IDSPCommandは、QoS命令を
含む全てのIDSPComponent命令のための基
本形式である。IDSPRateChangeComm
andは、iDSP2.0によって与えられる形式であ
る。この命令を扱うIDSPComponentは、そ
れに応じてそれぞれのフレームレートを調整することに
なる。アプリケーション開発者は、自分たちのプレイヤ
開発に必要なQoSコマンドのためにIDSPComm
andを拡張する。
【0027】IDSPPluginManager_g
etMemoryUtil()とIDSPPlugin
Manager_getProcessorUti
l()は、プラグインのシステムへの負荷を決定するの
に使用される。これは、ともかく新たなプレイヤを構築
可能かどうかを知るためにアプリケーションによって使
用される。また、複数プロセッサへのコンポーネント割
り当てを管理するときにiDSPロードバランサによっ
ても使用される。
【0028】3. iDSPにおけるMPEG−21準
拠QoS管理の主要特性 次において「OEMソフトウェア」とは、ボックスビル
ダーがiDSP(DSP/BIOSIIを含むとする)
ソフトウェアと統合(自分自身および第三者のソースか
ら)させた全てのソフトウェアを示す。 −−OEMソフトウェアへ利用可能なiDSPサービス
には、iDSPに対して発行可能な次のメディアサービ
ス要求が含まれる。 1. プラグ−−GPP側のOEMソフトウェア内部に
新たなiDSPメディアサービスを埋め込め。 2. プレイ−−プラグされたiDSPサービスにメデ
ィアを供給せよ。 3. コネクト−−2つの既存(集合体あるいは単体)
のiDSPメディアサービスを1つの集合体iDSPメ
ディアサービスに接続せよ。 4. QoS−−プラグ、プレイ、および、コネクト中
にiDSPのQoS(の様相)に関して、(A)問い合
わせ、(B)設定、および、(C)警告せよ。 −−QoS特性 1. OEMソフトウェアは、iDSPのQoSの如何
なる様相についても原則として問い合わせ可能である。 2. OEMソフトウェアは、iDSPのQoSの如何
なる様相をも原則として設定可能である。 3. OEMソフトウェアは、iDSPのQoSの如何
なる様相についても原則として警戒可能である。 4. QoSは、全てのiDSP関連のMPEG−21
端末QoS要件に対して、および、そのネットワークQ
oS要件のうち感知可能な部分集合(空集合でも良い)
に対して完全に準拠する。両者は、MPEG−21によ
って現在明瞭に表現されているものと同じだけのもので
ある。 5. DSP/BIOSのバージョンIIを用いると、
所与のDSP上のiDSPサービスの利用可能クラス
は、DSPコードイメージロード時間(=全DSPサー
ビスのリセット時間)に固定される。DSP/BIOS
がDLL能力を付加するときには、iDSPサービスの
利用可能クラスは、DSPがそのサービスを実行中は可
変となる。 6. iDSPは「例外の場合」にはOEMソフトウェ
アに対してQoSを管理する。即ち、(a)特に逆のこ
とと分かったり(b)全てが上手くいっているという周
期(OEMソフトウェアによって設定可能な周期)的な
通知に失敗したりしなければ、「全てをOEMソフトウ
ェアの期待のままにして、OEMソフトウェアの邪魔を
しない。」 7. 全てのメディアストリーム化されたデジタルアイ
テムは、強力に型識別される。このことによって、間違
ったiDSPコンポーネントやサービスを、OEMソフ
トウェアと或いはそれら相互間で、接続することを防止
する。 8. 全てのメディアフレームは実時間でスタンプされ
る。iDSPは、適時のメディア処理を保証する。 9. 現在のフレーム処理時間は、全ての使用中のスト
リーム化されたデジタルアイテムのための全ての現在フ
レームと数個の過去フレームに対してOEMソフトウェ
アに利用可能である。 10. iDSPは、OEMソフトウェアの指示通り
に、あるいは、段階的異常停止の一部として事前に、メ
ディアフレームレートを変更可能である。 11. リソースが枯渇寸前になったときに、今OEM
ソフトウェアのQoS命令があるとすると、iDSP単
独でサービスの段階的異常停止を開始する。 12. iDSPコンポーネントは、ストリームの一部
であって、そのストリームに対する意味負荷の所定レベ
ルの分散よりも長いiDSPサービスをストール・ブロ
ックすることはできない。この閾値を超えた瞬間に、i
DSPはそのiDSPサービスを中断してOEMソフト
ウェアに通知する。iDSP(しかもOEMソフトウェ
アではなく)がレンダリング中ならば、iDSPは、中
断したiDSPサービスを別の使用中の或いはデフォル
トのストリーム化されたデジタルアイテムに置換する。
即ち、特定のOEMソフトウェアが初めてiDSPを呼
び出したときに最初は置換優先順位をそのOEMソフト
ウェアに一致させておき、それ以後いつでも(例えば、
新たにストリーム化されたデジタルアイテムがスタート
・ストップする度に、あるいは、ストリーム化されたデ
ジタルアイテム(組)中に)OEMソフトウェアによっ
て修正可能になる。 13. プレイを開始する前にプラグすると、OEMは
そのメディアストリーム化されたデジタルアイテム
(組)の期待平均負荷と分散を設定する。 14. (最新の数個の)フレーム間負荷分散が設定さ
れたものを超えるとiDSPはOEMソフトウェアに警
告し、増加した負荷の処理の選択を促す。(注:ピーク
よりも一定値大きいこと或いはピーク丁度であることを
OEMソフトウェアが識別しても良い。)
【0029】15. DSP計算時間対DSP−GPP
通信時間の比を動的に管理するiDSPフレームワーク
によって、所与のDSP処理容量に対して最大のメディ
ア値加算スループットとなるようにiDSPを最適化し
て、DSPの内部対外部メモリアクセスパフォーマンス
における相違を最良適合する。 16. OEMソフトウェアへ/からの転送の最小意味
単位は、メディアフレームである。 17. iDSPは、待ち時間の管理、フレーム間の変
化、ストリーム化されたデジタルアイテム間のクロスロ
ーディングを含む現在のメディアサービス全体のスケジ
ュールを立てる。 18. OEMソフトウェアの複数要素間の競合はあり
得ない。つまり、2つ以上のそうした構成要素による潜
在的に競合する要求は、予め定義された決定論的方法で
iDSPによって解消される。 19. 主要iDSPメディアサービスのロードバラン
スはGPP上で取られ、分散されたiDSPが各DSP
上でスケジュールを組む。 20. iDSPは複数のDSPを有する1つのGPP
をサポートする。 21. DSP/BIOSIIを用いれば、全iDSP
コンポーネントクラスをiDSPでラップおよびスケジ
ュールされたDSP/BIOSIIタスクとして用い
て、所与のDSP用の全イメージを一回でロードする。
所与のクラスの多重インスタンスは、OEMソフトウェ
アのiDSPへの実行時間サービス要求によって作成さ
れる。 22. スケジューリングは、進行中のDSPメディア
演算とOEMソフトウェアからの実時間ベースのメディ
アフロー或いは新たなサービス要求との間のiDSPの
QoS最適化された相互作用によって駆動される。 23. iDSPコンポーネント(「DSP al
g」)は、1つの完全なオブジェクトコンポーネントシ
ェル内部に存在し、フレームワークの手引きによる使用
中のQoS最大化エージェントである。 24. iDSPコンポーネント(「DSP al
g」)は、規格に規定したメディア処理だけを行う。ア
ルゴリズムのI/Oは、全てのアルゴリズムに対して一
様に、iDSPフレームワークによって管理される。 25. 統合性プラットフォームによって提供されるQ
oSを最大化する目標をもって、iDSPフレームワー
クだけがiDSPコンポーネントを操作する。OEMソ
フトウェアはiDSPサービス要求だけを発行する。 26. iDSPフレームワークは、メディアオブジェ
クトコンポーネントフォーマットの拡張(例えば、XD
AIS準拠)によって保証された自動互換性QAを用い
て、新たな形式のアルゴリズムを追加するための組込サ
ポートを有する。 27.コネクトサービス要求を使用して、OEMソフト
ウェアは、オブジェクトコンポーネントフォーマットを
使用したiDSP内部の自動互換性QAを用いて、iD
SPコンポーネントを有向非周期的グラフ(最も単純な
例はチェーンである)内にリンクできる。 28. iDSPフレームワークは、OEMソフトウェ
アにメディアプレイヤが存在しないという状況に対して
オーディオ・ビデオ同期サポートを持っている。2つ
(オーディオ+ビデオ)のストリームの2番目を開始す
るときに、iDSPを用いるOEMソフトウェアは1番
目のものと同期進行する。両ストリームの開始は遅延す
ることができ、かつ/もしくは、両ストリームの開始は
特定の「同時に今開始せよ(両方とも予約済み)」に結
合させて、処理に遅延を確保することができて、相互の
サンプル間時相偏差が規定のものより小さいiDSP送
出同期を2番目の開始が阻害しない。
【0030】4. QoSタイミング管理 iDSPシステムにおけるサービス品質(QoS)マネ
ージャは、以下iDSP−QoSMと称するが、クライ
アントアプリケーションに対してサービスの約定レベル
を提供する機構である。iDSP−QoSMは、保証サ
ービス品質に対して、クライアントに伝達される予定異
常停止ポリシーを提供する。iDSP−QoSMは、次
の特徴を持つ。即ち、(1)iDSP−QoSMは、ス
トリーミングメディア処理の限定的な文脈内で定義され
る。(2)図1a−1cで図示された好適な実施例は1
つの単一DSP(サーバー)のみを有するが、iDSP
−QoSMは、負荷共有能力を有する複数プロセッサ環
境に対して定義される。
【0031】iDSP−QoSMによって実施される機
能には、一般的に、次のものが含まれる。即ち、(1)
システム内のサーバー(DSP)に掛かる定常状態の処
理負荷を監視すること。(2)過負荷サーバーからその
同位サーバーへ負荷を分配すること。(3)サーバーへ
の如何なる付加的な負荷の登録のために、クライアント
アプリケーションとサービス要件を交渉すること。
(4)サーバーによってサービスされている個々のオブ
ジェクトの特定の特性に基づいてサーバーに掛かる将来
の負荷を予測すること。(5)アルゴリズム実行時間予
測は処理時間ではなくてプロセッサ時間のサイクルに基
づくこと。したがって、この方法では、アルゴリズム実
行時間予測は、プロセッサの動作周波数に制限されな
い。
【0032】テキサス・インスツルメンツ社のTMS3
20C62XX系DSPでは、内部(オンチップ)デー
タメモリ量に制限がある。TMS320C6211(及
びその派生物)を除いて、TMS320C62XX系D
SPは、外部メモリ(オフチップ)アクセスを効率的に
するためのデータキャッシュを持たない。内部メモリ
は、TMS320C62XX系DSPのデータメモリ階
層において最高レベルにある。それゆえ、TMS320
C62XX系DSP上で実行される全てのアルゴリズム
は、内部メモリをそれぞれのデータ作業空間として使用
しようとする。何故なら、それがデータメモリへのアク
セスに最高レベルの効率であるからである。
【0033】典型的には、DSP用のアルゴリズムは、
DSPプロセッサ全体、したがって、DSPの内部メモ
リの全てを所有すると仮定して開発される。このため、
幾つかの異なるアルゴリズムを統合することは、それら
が同一(同種)のものであろうと異なる(異種の)もの
であろうと、極端に難しくなる。内部メモリなどのシス
テムリソースへアクセスしてそれを使用する1つの共通
な方法に関してアルゴリズム開発者には一組の規則が必
要となる。
【0034】好適な実施例では、DSP内部メモリにデ
ータページングアーキテクチャを用いることによってデ
ータキャッシュレスDSP上で複数のアルゴリズムを実
行するときのプロセッサ利用を増加させる方法が提供さ
れる。DSPアルゴリズムをデータページングアーキテ
クチャに準拠するように開発または変換することは、テ
キサス・インスツルメンツ社のXDAIS規格で達成可
能である。この規格は、アルゴリズム開発者がアルゴリ
ズムのために全てのデータメモリをサポートすることに
なる少なくとも1つ以上のメモリ領域を定義することを
必要とする。これらのユーザー定義領域は、1つまたは
全部がアルゴリズム開発者によってTMS320C62
X系DSPの内部メモリでの実行のために選択される。
アプリケーションのDSPシステムソフトウェア部分内
で、内部メモリはシステムサポートとデータ作業空間
(ページ)に分割される。DSPアプリケーション内の
全てのアルゴリズムは、作業空間を共有し、実行時間に
は全ての作業空間を所有する。2つのアルゴリズム間の
文脈切り換え上で、DSPシステムソフトウェアは作業
空間と各アルゴリズムの外部シャドーメモリとの間の転
送をそれぞれ担当する。好適な実施例は、次のことを提
供する。 (1) 2つ以上のDSPアルゴリズム間でのデータキ
ャッシュレスDSPにおける内部データメモリの共有は
プロセッサ利用を増加させる。 (2) 同一共有内部メモリからの複数アルゴリズムの
実行によって、各アルゴリズムは、スタック要件とアル
ゴリズム内部変数とをサポートするためにデータメモリ
にアクセスするときにTMS320C62X系DSPに
おいて最大効率を享受できる。 (3) このアーキテクチャは、内部メモリとプロセッ
サの内部メモリへのアクセスを持つDMA利用とを持つ
如何なる単一プロセッサでも機能する。 (4) データ入力フレーム境界でのみ文脈切り換えを
実行すると、最良効率のデータページングアーキテクチ
ャが得られる。
【0035】リードオンリーであるアルゴリズムデータ
の非対称ページ転送のサポートアプリケーションにおけ
るデータフローは、アルゴリズムからアルゴリズムへで
も良く、また、好適な実施例は、各アルゴリズム実行の
ためにGPPとバス経由でやりとりされるのではなく、
1つ以上のDSPに滞在するデータに備えるものであ
る。
【0036】5. 複数サーバーのためのQoS iDSPサービス品質マネージャ(iDSP−QoS
M)の定義されている好適な実施例構成は、一群のデジ
タル信号プロセッサ(DSP)を同位サーバーとして有
するホストプロセッサからなる。特定のサービス品質を
維持するのに必要な全ての機能を実施する包括的QoS
マネージャがこのDSPサーバー群を管理する。ホスト
プロセッサは、汎用プロセッサ(GPP)であり、共有
メモリやバス型インターフェイスなどのハードウェアイ
ンターフェイスを通じてDSPと接続される。QoSマ
ネージャは、iDSPの一部、あるいは、より一般的に
は、DSP上の別個のマネージャである。システムは、
ハードウェア割り込みとソフトウェア割り込みの両方に
よって駆動される。好適な実現方法は、主要ユーザー
(クライアント)アプリケーションをGPP上で実行さ
せ、特定サービスを負荷分散に基づいてDSP上で実行
させることである。全てのプロセッサ上でQoSマネー
ジャと同時実行するのが、iDSPメディアフレームワ
ークなどのフレームワークであっても良い。iDSPQ
oSマネージャは3つの主要機能を実施する。即ち、
(1)オブジェクトの分類、(2)オブジェクトのスケ
ジューリング、そして、(3)オブジェクトの実行時間
の予測、である。
【0037】これらの機能は、GPP/マルチDSP環
境で、メディアの具体的な例を用いて以下に説明する。
【0038】a. オブジェクトの分類 ある特定のメディア環境では、オブジェクトは、メディ
アコーデック/フィルタ(アルゴリズム)に変換する。
メディアオブジェクトは、それらのストリーム形式、ア
プリケーション形式、あるいは、アルゴリズム形式に基
づいて分類可能である。アルゴリズムの形式に応じて、
QoSマネージャはコーデックサイクル、フィルタサイ
クルなどとして公知の測定基準を定義する。
【0039】b. オブジェクトのスケジューリング
(ハード期限) iDSP−QoSMは、2相スケジューラに基づいてア
ルゴリズムオブジェクトのスケジュールを立てる。第1
相は、新たなメディアストリームがDSP上でスケジュ
ールを組むことが可能かどうかを決定し、コーデックサ
イクルのハード実時間期限を設定する高度スケジューラ
である。第2相は、個々のメディアフレームのスケジュ
ールを立てて、第1相からのハード実時間期限を利用す
る。第1相は、オブジェクトネゴシエーション時に、し
かも典型的にはホスト(GPP)上で作動する。第2相
は、DSP(サーバー)上で作動してフレーム単位に基
づいて作動する。
【0040】スケジューリングの第1相は、オブジェク
トが既に同時実行中のオブジェクトでサポートされるこ
とが可能かどうかをQoSマネージャが概して決定する
場合である。また、第1相のスケジューリングの一部と
して必要なものは、メモリの点でオブジェクトに対して
十分なサポートを考慮することである。内部の利用およ
び入出力のためのオブジェクトメモリバッファは、メモ
リを動的に割り当てるという不確実性を取り除くために
そのインスタンスの生成時には静的に固定されなければ
ならない。iDSPメディアプラットフォームは、XD
AIS準拠アルゴリズムを実行するだけである。開発者
は、自分のアルゴリズムに対して異なる条件下で処理時
間を定義することが求められる。QoSマネージャが各
オブジェクトに期限を設定するときにQoSマネージャ
によって要素として入れられる初期化の時にサーバーか
ら/へのデータ伝送に必要な凡その時間は、決定され
る。
【0041】各DSPオブジェクトはQoSマネージャ
に以下の情報を供給する必要がある。 n コーデックサイクル及びフレーム数(デフォル
ト:フレーム/秒) Tacc 目的サーバー(DSP)サイクル数でコーデッ
クサイクルを計算する平均時間 Tacd 目的サーバー(DSP)サイクル数でのコーデ
ックサイクルの表示時間
【0042】1つのビデオコーデックに対して、nは通
常、連続したI−フレーム間のフレーム数(例えば、1
5フレーム)である。Taccは通常、1つのI−フレー
ムに必要な最大時間量とP及びBフレームに必要な平均
時間との合計になる。QoSマネージャは、全てのメデ
ィアオブジェクトに対してTccdを記録しておく。この
時間(DSPサイクルに関して)は、現在のフレームレ
ートに基づく。例えば、30fpsビデオストリームで
n=15の場合、Tccd=125Mサイクルとする。
【0043】このとき、QoSマネージャは、新たなス
トリームが以下のようにスケジュールを組むことが可能
かどうか決定可能である。Sを現在スケジュールされて
いる全ストリームのコーデックサイクル(Tacc)の合
計とする。新たなストリームに対する(S+Tacc)が
新たなストリームに対するTccdより小さいなら、スト
リームはスケジュールを組むことが可能であるし、そう
でないなら、スケジュールを組むことが不可能である。
例えば、n=15、Taxc=39.5Mサイクル(15
8ms)、Tccd=125Mサイクル(500ms)の
オブジェクトAが存在し、DSP上でスケジュールされ
たタスクが存在しない(したがって、S=0)とする。
QoSマネージャは、オブジェクトAを必要とする新た
なストリームに対するリソースのスケジュールを立てる
ように通知される。S+39.5=39.5Mサイクル
<125Mサイクル(500ms)なので、このストリ
ームはスケジュール可能である。2番目のストリームが
オブジェクトAを求めてやってくると、S+39.5=
79Mサイクル(316ms)<125Mサイクル(5
00ms)なので、これもスケジュールされる。3番目
のストリームもスケジュール可能である。しかし、4番
目のストリームは、158Mサイクル(632ms)を
必要とするのでスケジュールできず、500msのハー
ド期限に応じることができない。この点で、QoSマネ
ージャは1つのストリームのフレームレートを下げるよ
うに交渉し、それに失敗すると、そのストリームを完全
に拒絶することになる。
【0044】一変型例では、スケジューラは異なるコー
デックサイクル時間を持つ異種メディアオブジェクトを
扱うことができる。より長いTccdを持つオブジェクト
は、最小Tccdに割り振られる。例えば、n=30、T
axc=40Mサイクル(160ms)、Tccd=169M
サイクル(675ms)のオブジェクトBが存在し、D
SP上でスケジュールされた2つのオブジェクトAオブ
ジェクト(上述のように定義)が存在する(したがっ
て、S=79Mサイクル/316ms)とする。S+4
*(125/158)=110.45Mサイクル(S
+160*500/675=435ms)なので、新た
なオブジェクトBのストリームはスケジュール可能であ
る。(79+40<125)Mサイクル/(316+1
60<500)msなのでこのことは立証可能に正し
い。したがって、500msのより短いコーデックサイ
クル期限内の全てのストリームを実際に保証可能であ
る。オブジェクトBを必要とする2番目のストリームが
スケジューリングを必要とするとどうなるか。110.
45+40*125/158=139>125Mサイク
ル/435+160*(500/675)=554ms
>500msである。したがって、スケジューラはこの
ストリームを拒絶して、上述のように交渉を開始する。
【0045】iDSP−QoSMは、コーデックサイク
ルに基づいてメディアオブジェクトに対して十分な処理
帯域幅を確保するためにアプリケーション或いはそのプ
ロキシと交渉する。この交渉では、他の同時実行中のD
SPアプリケーションと共に、オブジェクトに必要なメ
モリ、要求QoSレベル、および、DSPの利用可能な
MIPSが考慮される。オブジェクト選択が変わると、
QoSマネージャは、DSPプロセッサ帯域幅の再交渉
を実施する。QoSマネージャの交渉プロセスへの入力
パラメータには、アプリケーションが1つのオブジェク
トに対して以下のことを定義する必要がある。 (1) DSPメモリ要件(入出力バッファの数とサイ
ズ) (2) 所望のQoSレベル(典型的には1秒当たりの
フレーム数で表現) (3) オブジェクト開始のための最悪実行時間 (4) コーデックサイクル(フレーム数及び平均実行
時間)と称される、メディアフレームのシーケンスのた
めのハード実時間期限を持つこと
【0046】iDSP−QoSMマネージャにおけるオ
ブジェクトの第2相のスケジューリングは、期限が最初
にくるのもの、および、最高優先順位を持つものという
2つの様相に基づく。次の例を考える。もしオブジェク
トAが10msで期限を有し、オブジェクトDが3ms
で期限を有するなら、iDSP−QoSマネージャは、
オブジェクトAがより高い優先順位を持っているとして
もオブジェクトDを最初に実行するようにスケジュール
を組む。オブジェクトの近似的な実行時間は分かるの
で、あるオブジェクトがその期限に間に合うように開始
しなければならないという「遅延の無い」時間を決定で
きる。図3では、オブジェクトDがオブジェクトAの
「遅延の無い」開始点以前に完了することが予測されて
いる。このシナリオでは、より高い優先順位のオブジェ
クトAとオブジェクトDの間には期限競合が存在しな
い。それゆえ、より低い優先順位のオブジェクトDの後
でオブジェクトAが実行される。
【0047】優先順位が最初の期限よりも重視される別
のスケジューリングの例では、より高い優先順位のオブ
ジェクトAの「遅延の無い」時間がオブジェクトDの予
測終了時間よりも前の場合である。この場合、オブジェ
クトDがオブジェクトインスタンス化時に特定されるフ
レーム落ちパラメータを満足しさえするならば、オブジ
ェクトAはより高い優先順位なであり、かつ、オブジェ
クトDは後で実行しても良いるので、オブジェクトAが
最初に実行されることになる。図4を参照されたい。
【0048】iDSP−QoSが最良可能な効率に期限
を管理するためには、GPPは、出来るだけ速やかにデ
ータ入力フレームをDSPサブシステムに送り、1つの
オブジェクトに対する到着時と期限の間に最大量の時間
を許さなければならない。データフレームの到着と期限
の間の時間が長くなればなるほど、iDSP−QoSM
には、他の並行オブジェクトとの各オブジェクトのスケ
ジューリングにより大きな柔軟性を持たせることができ
る。
【0049】c. オブジェクトの実行時間予測(ソフ
ト期限) iDSP−QoSMの中心機能は、全てのスケジュール
されたオブジェクトの次の入力フレームに対して必要な
処理時間を予測することである。予測は非トリビアルで
オブジェクト独特のものである。QoSマネージャは、
次の入力フレームに対する期待実行時間を計算するため
に先行実行時間の統計値を用いることによってオブジェ
クトの実行時間を予測する。オブジェクトに対する期待
実行時間は、最大可能正方向変化(各オブジェクト独自
に決まる)をもつ先行実行時間の関数(オブジェクト独
自)である。例えば、ビデオオブジェクトの場合、I、
P及びBフレームの周期が決定論的である。したがっ
て、将来の処理時間は、ビデオフレームの周期内の現在
フレームの形式とその位置に基づいて予測可能である。
全ての並行アルゴリズムにこうした予測を直接実施する
ことは、予測処理時間と近似ハード期限に基づいた動的
な優先順位の再配置に役立つ。
【0050】これらの予測は、処理時間におけるソフト
期限とジッタの管理にとって鍵となる成功因子である。
iDSP−QoSMは、これらの予測に基づいて、処理
のためのオブジェクトを瞬時に再スケジュールすること
になる。この瞬時の再スケジューリングは、個々のオブ
ジェクトのコーデックサイクル期限時間(平均して定義
されるハード期限)内で発生する。この方法は、個々の
フレームがハード期限とソフト期限の両方に応じて重み
付けされるという点で独特なものである。上述の例で
は、オブジェクトBにおける全てのフレームが平均して
オブジェクトAと500ms重複する作業負荷となる同
一時間量を必要とすると仮定した。これは、オブジェク
トBのフレームは現実の重複中にもっと多くの時間を必
要とする場合もあったり、オブジェクトBが平均時間量
を与えられない場合もあったりするので、真実ではな
い。それゆえ、コーデックサイクル期限に最も近いフレ
ームがより高い優先順位を受ける。
【0051】予測される実行時間がユーザー定義期限要
件に違反するなら、QoSマネージャは幾つかの可能な
行動のうちの1つを採ることになる。単一DSP構成に
おいては、 (レベル1) 単純にバイナリ切り捨て。この結果、自
動的なフレーム落ちが発生する。該当するオブジェクト
はフレーム落ちが破局的な結果を生じるかどうかを表示
可能であるべきである。 (レベル2) オブジェクトが割り当て時間の最後に割
り込むことでより低い優先順位のオブジェクトの割り当
て実行時間を一般的に短縮すること。これによってフレ
ーム落ちが生じることもあるし、生じないこともある。 (レベル3) オブジェクトは、出力データの品質縮小
などのQoSコマンドを受け入れる能力を持つことが求
められる。複数DSP構成では、 (1) 各QoSタイムスライスの終わりに、負荷デー
タを持つメッセージが各DSPからGPPに送出され
る。 (2) GPPは、期限に間に合わないと推測される場
合にのみ、オブジェクトの再分配という手段を採用す
る。このタスクの再割り当ては、動作中のDSPからの
「負荷データ」を受信後にGPP(ORB層)によって
実施されるものである。しかし、タスク切り換え時間を
減少させるためには、全てのDSPが外部メモリ空間の
共通クラスタから動作することが極めて望ましい。
【0052】iDSPシステムで実行する全てのオブジ
ェクトは、実行時間が決定論的でなければならない。D
SPオブジェクトは、3つの形式、即ち、データ圧縮
(符号化)、データ解凍(復号化)、および、データ変
換(オブジェクトのデータの事前または事後処理)に分
類できる。オブジェクトには、ブロックに分類された処
理用データが与えられる。これらのブロックは入力デー
タフレームと称される。オブジェクトは、入力データフ
レームを処理して出力データフレームを生成する。計量
データと同様に、入力及び出力データフレームは共に、
処理のサイズと量に関して限界がある。与えられた入力
フレームのサイズに基づいて、DSPまたは当該問題処
理用の他のコンピュータがその入力フレームに処理を実
施しなければならない最大処理量を正確に決定すること
ができる。
【0053】各オブジェクトは、iDSPシステムに統
合される前に、単一フレームの場合にそのオブジェクト
に対する最悪実行時間を宣言しておく必要がある。この
最悪実行時間は、オブジェクトを開始可能なように、最
初の入力データフレームの実行時間を計算するのに用い
られる。QoSマネージャは、オブジェクト実行前に入
力データフレームを特徴付けることはできない。エンコ
ーダやデコーダオブジェクトは最悪シナリオではほぼ動
作しないので、最初の入力データフレームは高価なもの
となる(最悪と予測しなければならないので)。この最
悪スケジュールは、最初のフレームの実際の実行時間よ
りも長い時間がかかると考えられる。このことは、現実
の実行時間が最悪スケジュールよりも長い場合に問題と
なるだけである。
【0054】上述したように、アルゴリズムオブジェク
トの処理時間は入力フレーム間で変化する。最初は、i
DSP−QoSMは、最初のデータ入力フレームに対し
て最悪値で開始する。最初のフレームの後、QoSマネ
ージャは、アルゴリズムの特徴と最初のフレームに対し
て測定した処理時間とを基にして次の入力フレームの処
理時間を予測する。後続のフレームそれぞれに対して、
アルゴリズムオブジェクトの意味論と履歴を基に、近似
的な処理時間要件を予測する。例えば、復号化オブジェ
クトは、将来の符号化時間を予測するために、同様な先
行入力フレームの平均符号化時間とともにオブジェクト
意味論(例えば、I、P及びBフレーム形式)を用い
る。エンコーダオブジェクトは、実行のためにスケジュ
ールされる度に同一サイズの入力フレームに対して働き
かける。処理時間の変動は、フレームにおける使用中レ
ベル、フレーム間のモーションの程度などの要因から生
じる。これらの変動には、しかし、限界がある。したが
って、2つのフレーム間の処理時間には有限な最大差が
あり、この有限な最大差は次のフレームに対する最悪処
理時間を決定するために予測処理時間に追加され得る。
図5−6を参照されたい。
【0055】復号化オブジェクトには、典型的には、可
変サイズの入力フレームが与えられる。入力データフレ
ームの処理時間は、そのサイズに正比例する。次のフレ
ームの処理時間に増分があるかどうかを決定するため
に、QoSマネージャは、現在のデータ入力フレームサ
イズと次のデータ入力フレームサイズとの差の大きさを
照合する。エンコーダと同様の議論はデコーダにも適用
できる。即ち、2つの意味論的に類似したフレーム間の
処理の差には限界がある。デコーダに対する最大または
最悪処理時間は、オブジェクトに対して定義される最大
可能なバッファである。図7を参照されたい。
【0056】変換オブジェクトは、常に同一サイズの入
力フレームに対して働きかけるという点で復号化オブジ
ェクトと同様な動作をする。各フレームは常に同一の処
理時間量を要し、入力フレームからの単一パスである。
それゆえ、入力フレーム当たりの処理時間は常に一定の
ままとなる。
【0057】各オブジェクトは、通過フレームがそのオ
ブジェクトによって完了しなければならないという相対
時間をユーザーアプリケーションから受け取る。例え
ば、アプリケーションは、このフレームは次の7mS内
に処理されなければならないと指定する。ホストGPP
とDSPの間には共通のソフトウェアクロックは存在し
ないので、期限は相対期間でのみ指定可能である。ホス
トとDSPの間のデータフレームの伝送時間は決定論的
であるとする。iDSPシステムは内部クロックを保有
していて、データフレームが到着時にタイムスタンプを
受けその後期待処理時間を計算する。期待処理時間を計
算した後で、今度はQoSマネージャがデータフレーム
実行をスケジュールする。
【0058】オブジェクトがスケジュールできる前に、
QoSマネージャは、他の並行オブジェクトと比較し
て、適当なオブジェクト実行順序を決定する。もし入力
フレームを処理中の他のオブジェクトが存在しないな
ら、オブジェクトフレームは即座に実行をスケジュール
される。他の実行中のオブジェクトが存在するなら、Q
oSマネージャは、各要求オブジェクトの優先順位と期
待期限とハードまたはソフト実時間要件とを考慮して実
行順序を決定する。図8を参照されたい。
【0059】異なる実行時間優先順位を持つ複数のオブ
ジェクトが同一のDSP上に組み合わされるとき、Qo
Sマネージャは、オブジェクトの特定の実行時間の計算
に基づいて各オブジェクトの実行時間予測を計算する。
その後、スケジューリングオブジェクト(TBD)に基
づいて異なるタスクをスケジュールする。次の3つのス
ケジューリングシナリオがあり得る。
【0060】(1) 全てのオブジェクトは、与えられ
た入力データフレームについて完了するまで動作し、ア
プリケーション指定の期限内に完了する。このシナリオ
は、図9で示される。ただし、図中のオブジェクトは全
て、各オブジェクト期限前に完了する。全てのオブジェ
クトがそれぞれの期限前に完了するなら、QoSマネー
ジャに要求する作業は最小である。
【0061】(2) 1つ以上のオブジェクト(例え
ば、オブジェクトB)の処理負荷は増加するが、このこ
とは次のオブジェクトが予測期限に間に合わないという
事態を引き起こさない。オブジェクトBにおいてなど1
つ以上のオブジェクトの負荷は増加することがあり得
る。オブジェクトによっては、同一のオブジェクトの後
続のデータフレームがその期限制約内に処理されるなら
ば、期限に間に合わないことが受け入れ可能な場合もあ
る。一例は、「I」フレームが計算に最も長時間を要す
H263エンコーダにおいてである。「I」フレームに
続くフレームは、常に、「P」フレームであり、典型的
には、数多くの小さな処理要件を持つ。このため、
「I」フレーム処理は後続のPフレーム処理からのサイ
クルスティールが可能となる。こうして、1つのフレー
ムが期限に間に合わないことも、次のフレームに十分な
処理余地が存在するならば、破局的にならない場合があ
る。
【0062】オブジェクトBの期限は過ぎてしまうの
で、システム全体の効果が決定されなければならない。
もしオブジェクトBの期限に間に合わないことが後続の
オブジェクトの予測期限に間に合わない結果を引き起こ
さないのであれば、システム全体の障害は最小である。
図10−11を参照されたい。
【0063】(3) 1つ以上のオブジェクト(例え
ば、オブジェクトB)の処理負荷が増加するが、このこ
とは、後続のオブジェクトの予測期限に間に合わない結
果を引き起こしてしまう。図12を参照されたい。
【0064】この場合、オブジェクトBの期限に間に合
わないことが、後続オブジェクトの予測期限に間に合わ
ない結果を引き起こしてしまう。この場合でも、システ
ム全体の障害が最小になる場合もあるし、ならない場合
もある。並行に実行中のオブジェクトは、それぞれ、後
続フレームからサイクルスティールをすることが可能
で、期限失敗のドミノ効果を回避できる場合がある。
【0065】iDSP−QoSMは、ソフト期限管理の
ために一組の規則を提案する。この一組の規則は、単一
の致命的期限失敗から生じる期限失敗の雪だるま効果を
制限しようとするものである。(1)どのアルゴリズム
オブジェクトも許容される秒当たりのフレーム落ちの最
大数をQoSマネージャに提供する。(2)各オブジェ
クトは、各処理サイクル後に移動平均として「失敗した
期限」の実行計数を更新する。(3)オブジェクトが期
限失敗の限界を超えてしまうと、そのオブジェクトの優
先順位を最高値に変える。計数が一旦限界値を下回ると
元来の優先順位が回復される。(4)制限後に期限を失
敗した後続フレームは全て落とす。この結果、QoSは
次の即値レベルに一時的に低下する。この瞬間的なQo
S低下(非常に稀であるはずであるが)は、その後クラ
イアントに報告される。(5)DSPが期限が過ぎた後
も当該オブジェクトを開始していない場合にのみ、原則
としてフレームを落とす。
【0066】d. 周期メディアレンダリングのための
絞り制御 与えられたアルゴリズムオブジェクトに対して、iDS
P−QoSMは、どの瞬間の実行可能待ち行列にも1つ
の要求のみが存在すると仮定する。一般的に、メディア
ストリームは、QoSマネージャに対するサービス品質
制約として特定される周期期限(例えば、ビデオストリ
ームの場合30フレーム/秒)を持っている。メディア
システムにおけるオーディオ及びビデオレンダリングコ
ンポーネントは、到着時の分散を処理するためにフレー
ムをバッファへ移すことが可能であり、フレームが僅か
にスケジュールに先行して到着することも許容する。し
かし、これらのバッファは有限なので、メディアシステ
ムの上流コンポーネントは、フレームを処理する相対速
度を慎重に絞らなければならない。
【0067】アルゴリズムオブジェクトの処理速度を絞
るためにiDSP−QoSMは2つの機構を提供する。
【0068】(1) DSPアルゴリズムオブジェクト
のクライアントは、そのアルゴリズムオブジェクトの処
理機能(サーバー)を呼び出す速度を制御する。この結
果、要求を満たさなければならない期間内に要求がなさ
れるならば、QoSマネージャのスケジューリングアル
ゴリズムの部分最適動作を生じることができる。例え
ば、バッファA1が期間T1内に、バッファA2が期間
T2内に処理されねばならない上述のアルゴリズムオブ
ジェクトAが考えられる。なお、T1とT2は、2つの
連続期間であり、[x]はバッファxの到着を示し、
{x}はバッファxの処理完了を示す。図13aを参照
されたい。
【0069】(2) QoSマネージャは、メディアス
トリームの絞りを制御する。この機構によって、クライ
アントは、入力バッファを用いて出来るだけ速やかにア
ルゴリズムオブジェクトの処理機能を呼び出すことが可
能になる。QoSマネージャは、その後、入力バッファ
に「始動期限」を付加する。スケジューラは、「始動期
限」後までこのバッファをスケジュールしない。クライ
アントは、その現在バッファの処理が完了するまで遮断
する。図13bを参照されたい。
【0070】このように、両方の場合において、どの瞬
間のQoSマネージャの実行可能待ち行列にも1つのア
ルゴリズムオブジェクトに付きせいぜい1つの要求が存
在する。
【0071】メモリページング 1つのDSPまたは当該問題処理用のプロセッサ上で複
数アルゴリズムを最良に実行するためには、システムリ
ソースがアルゴリズム間で公平に共用されるように一組
の規則が確立されなければならない。これらの規則は、
それらのアルゴリズムのためのDMA、内部メモリ、お
よび、スケジューリング方法などのプロセッサの周辺装
置へのアクセスを特定する。一旦一組の規則が受け入れ
られてしまうと、システムインターフェイスは、アルゴ
リズムがプラグインされるように展開できるので、アル
ゴリズムはシステムリソースにアクセス可能となる。1
つの共通なシステムインターフェイスはアルゴリズム開
発者に十分定義された限界を提供し、その限界によっ
て、アルゴリズム開発者がシステムサポート問題ではな
くアルゴリズム開発にのみ集中することが可能なので、
アルゴリズムをより速やかに開発できる。このようなイ
ンターフェイスがテキサス・インスツルメンツ社のiD
SPメディアプラットフォームDSPフレームワークで
ある。アルゴリズムとTMS320C62XX系DSP
とのアクセスは全てこのフレームワークを通して発生す
る。
【0072】テキサス・インスツルメンツ社のXDAI
S規格要件は、1つ以上のアルゴリズムをiDSPメデ
ィアプラットフォーム内にプラグ能力を許容して「シス
テム統合者が1つ以上のアルゴリズムから製造品質シス
テムを速やかに組み立てることができる」規則を確立す
る。XDAIS規格は、全てのアルゴリズムがAlgイ
ンターフェイスと称される共通インターフェイス要件を
満たすことを求める。XDAIS規格の課す規則には幾
つかあるが、最も重要なものは、アルゴリズムがメモリ
を直接定義したりハードウェア周辺装置に直接アクセス
したりできないことである。システムサービスは、アル
ゴリズムに対して単一の共通なインターフェイスを通じ
て提供される。それゆえ、システム統合者は、全てのア
ルゴリズムに対してAlgインターフェイスをサポート
する1つのDSPフレームワークだけを提供する。Al
gインターフェイスは、アルゴリズム開発者に対して、
システムサービスへのアクセス及びそのアルゴリズムの
呼び出しの手段も提供する。
【0073】アルゴリズムはその内部メモリ要件を厳密
に定義しなければならない。これは、ページングアーキ
テクチャが複数アルゴリズムの内部メモリ内の同一空間
へのアクセスをサポートするのに必要不可欠である。X
DAIS準拠アルゴリズムは、その内部及び外部メモリ
要件を特定することが求められる。
【0074】内部(オンチップ)メモリは2つの領域に
分割されなければならない。1番目のものはシステムオ
ーバーヘッド領域であり、これは、特定のDSPシステ
ム構成用のOSデータ構造に対するサポートである。2
番目の領域は、アルゴリズムが実行のためにスケジュー
ルされている場合にのみ使用するものである。両メモリ
領域はサイズが固定されなければならない。この2番目
のメモリ領域は、アルゴリズムオンチップ作業空間と称
される。言い換えれば、この作業空間領域は、データオ
ーバレイまたはデータメモリページとしても説明でき
る。図14を参照されたい。
【0075】どれぐらいのメモリがアルゴリズムオンチ
ップ作業空間に利用可能かを決定するため、システム開
発者は利用可能な内部データメモリ空間の総量を取得
し、ページングアーキテクチャのためのOSサポートと
データサポートなどのシステムソフトウェアをサポート
するのに必要な量をその内部データメモリ空間の総量か
ら引く。タスクやセマフォなどのOS構成は、システム
DSP設計者によって、設計者が一度に同時実行させた
いアルゴリズムの総数をサポートする最大サイズに設定
されるべきである。これによって、OSサポートオーバ
ーヘッドは最小に保ち、アルゴリズム作業空間を増加さ
せる。
【0076】アルゴリズムがこの環境で動作するには、
その内部メモリ要件が作業空間のサイズよりも少なけれ
ばならない。そうでなければシステム統合者はアルゴリ
ズムを統合できない。限界は、アルゴリズム当たり1ペ
ージだけ存在することである。このアーキテクチャは、
1つのアルゴリズムに対して複数ページをサポートしな
い。
【0077】アルゴリズム作業空間は3つのコンポーネ
ント、即ち、スタック(必須)、持続性メモリ、及び、
非持続性メモリに分割される。持続性メモリのリードオ
ンリー部分を扱う後述の4番目のコンポーネントが存在
することもある。図15を参照されたい。
【0078】1つのアルゴリズムは、実行している間、
オンチップ作業空間だけを使用する。アルゴリズムが実
行をスケジュールされている場合、DSPシステムソフ
トウェアは、その外部記憶位置(シャドー記憶装置)か
らオンチップの内部作業空間内にアルゴリズムの作業空
間を転送することになる。アルゴリズムが制御を生じる
と、DSPシステムソフトウェアは次にどのアルゴリズ
ムを実行すべきかを決定する。もし次のアルゴリズムが
同一のアルゴリズムならば、アルゴリズムの作業空間の
転送は必要ない。次のアルゴリズムが異なるアルゴリズ
ムならば、現在の作業空間を外部メモリ内のそのシャド
ー位置に格納して、次のアルゴリズムの作業空間を転入
する。図16を参照されたい。
【0079】1つのアルゴリズムに対する作業空間が文
脈切り換える際に全て転送されるのではない。スタック
と持続性データメモリの使用部分のみが転送される。ア
ルゴリズムのスタックは、アルゴリズムがそのコールス
タックにおいて最高レベルにあるときに、最高レベル
(最小使用)にある。言い換えれば、アルゴリズムはそ
の入り口点にある。
【0080】アルゴリズムにとっての理想の文脈切り換
えは、そのスタックがその最高レベルにある時に起こ
る。何故なら、それは、シャドー記憶装置内へのオフチ
ップ転送すべきデータが少ないことを意味するからであ
る。図17を参照されたい。
【0081】好適な実施例のデータページアーキテクチ
ャは、文脈切り換えが最も効率的であることを要求す
る。オーバーヘッドを処理する文脈切り換えは、DSP
がアルゴリズムを実行可能な時間を減らす。アルゴリズ
ムを文脈切り換える最良時間はそのコール境界にあるの
で、アルゴリズムの中断は、絶対的に最小化されるはず
である。アルゴリズムのスタックがその最小値よりも大
きいときにアルゴリズムを中断するとシステム全体を低
下させてしまう。このことは必要条件でないといけない
が、極めて限られる範囲の中断しか受け入れることがで
きない。図18−19を参照されたい。
【0082】アルゴリズムがリードオンリーの持続性メ
モリを必要とする場合が、アルゴリズム作業空間の特別
な場合である。この種のメモリは、アルゴリズムの使用
する参照表のために使用される。このメモリは決して修
正されないので、読み込みだけが必要で書き込みは必要
ない。この非対称ページ転送は、アルゴリズムの文脈切
り換えを用いてオーバーヘッドを減少させる。
【0083】このデータページングアーキテクチャを用
いて、単一アルゴリズムのインスタンスを1度以上生成
することができる。アルゴリズムが内部メモリ要件とし
て必要なものを定義しているので、DSPシステム統合
者は同一アルゴリズムのインスタンスを1つ以上作成可
能である。DSPシステムソフトウェアは、複数インス
タンスと、アルゴリズムの各インスタンスを何時スケジ
ュールすればいいかを記録しておく。インスタンスの数
は、アルゴリズムインスタンスのシャドーバージョンを
維持するためにDSPシステム内に存在するメモリの数
によって制限される。
【0084】DSPシステムソフトウェアは、アルゴリ
ズムをスケジュールするに際してアルゴリズムデータと
正確に調和するように各インスタンスを管理しなければ
ならない。殆どのDSPアルゴリズムのインスタンスは
タスクとして生成されるので、DSPシステムソフトウ
ェアはアルゴリズムインスタンスを管理する手段として
タスク環境ポインタを使用することができる。
【0085】連鎖を持つデータフロー データフローの好適な実施例では、処理素子を統合し、
それらの素子に1つの共有メモリ空間を提供して、GP
Pによる介入無しで処理素子間で直接データを回送す
る。こうしたシステムは図21に示されている。
【0086】処理素子PEaがかなりのデータ量の処理
を完了すると、生じたデータを共有メモリ内の事前定義
出力バッファに書き込む。処理素子PEaは、その後、
適当な制御経路経由でチェーンの次の処理素子PEb
通知する。この通知はどちらの共有メモリバッファを処
理素子PEbが入力として使用すべきかを示す。処理素
子PEbは、その後、更なる処理のために入力バッファ
からデータを読み込む。この方法では、データは、全て
のデータが消費されるまでの間に必要な処理素子全ての
間を通過させられる。
【0087】上述のように、一組のバッファが2つの処
理素子間のデータ通信に使用され、それらの素子間に1
つのI/Oチャンネルを形成する。多重I/Oチャンネ
ルがどの2つの処理素子間にも存在してもよく、その場
合、システムによって同時に(即ち、並行に)複数デー
タストリームを処理することができる。図22は複数デ
ータストリームs1とs2の並行処理の例を示す。
【0088】I/Oチャンネルに接続した一連の処理素
子は1つのチャンネルチェーンを構成する。1つの特定
のシステム内には幾つかのチャンネルチェーンを定義で
きる。チェーン中央位置にある処理素子の場合、各入力
チャンネルは関連の出力チャンネルを持つ。端末位置に
ある処理素子は入力または出力チャンネルのみを持つ。
【0089】処理素子の入力チャンネルは、データを読
み出すべきバッファを定義する。処理素子の出力チャン
ネルは、データを書き込むべきバッファとどの処理素子
に後に通知すべきかとを定義する。データ処理素子と中
央制御プロセッサ(CCP)の間の制御メッセージの形
式には、次のものがある。 (1) 状態メッセージ:データストリーム処理開始、
停止、強制終了、一時停止、再開、など。 (2) サービス品質メッセージ:タイムスタンプ、シ
ステム負荷、リソース・フリー/ビジー、など。 (3) データストリーム制御メッセージ:開始、停
止、一時停止、再開、巻き戻し、など。 (4) システム負荷メッセージ:タスク実行、使用中
チャンネル数、処理素子当たりのチャンネル、など。
【0090】好適な一実施例では、処理素子とのI/O
チャンネルの作成と関連付けは、システム初期化時に読
み出し可能な構成ファイルから静的に定義される。処理
されるビットストリーム形式ごとに、構成ファイルは適
当な処理素子と接続する1つのチャンネルチェーン(即
ち、データ経路)を定義する。1つのチャンネルチェー
ン内の全ての処理素子の集合的処理の結果、データは完
全に消費される。
【0091】1つの所与のビットストリームに対して複
数のデータ経路が存在する場合、代替またはバックアッ
プチャンネルチェーンが定義可能である。主チャンネル
チェーンの処理素子が全て利用不可の場合、ビットスト
リームは、これら代替またはバックアップチャンネルチ
ェーンに回送できる。実行時におけるビットストリーム
形式の決定と動的QoS解析とによって、データを回送
するチャンネルチェーンを選択する。実行時には、シス
テム内の全ての正当なチャンネルチェーンが固定され、
修正不可になる。
【0092】別の好適な実施例では、新たなビットスト
リームが通信プロセッサに到着すると、異なるビットス
トリームに対するチャンネルチェーンを動的に構築可能
になる。実行時に由来するビットストリーム情報が制御
メッセージ経由でCCPに送られる。CCPは必要な処
理素子を決定し、決定した処理素子間にI/Oチャンネ
ルを動的に割り当てる。この方法は、実行時にリソース
をサービスから奪ったりオンラインで与えたりすること
ができ、システムの自動適応を可能にする。
【0093】共有メモリ異種システムでは、データはC
CPによる介入無しで外部共有メモリ経由で処理素子間
を流れる。データがバス上に現れることがないので、デ
ータトランザクションの速度はバス伝送時間ではなく共
有メモリアクセス時間によって決定される。CCP介入
も最小化されるので、CCP応答及び処理の遅延が全体
のデータフロー時間から除去される。これによって、処
理素子間のデータ転送時間を最小化してシステムのスル
ープットを向上させる。
【0094】a. 実施例 ここで述べられたデータフロー技術の典型的な用途は、
メディア処理システム用である。こうしたシステムは、
復号化、符号化、翻訳、変換、拡大縮小などの処理のた
めにブロードバンドのメディアのストリームを開始およ
び制御する。システムは、ローカルディスクから、ある
いは、ケーブルモデム、DSL、無線などの通信媒体経
由でリモート機械/サーバーから生じるメディアストリ
ームを処理可能である。図23は、こうしたシステムの
一例を示す。
【0095】図23のメディア処理システムは次の5つ
の処理素子を含む。 (1) DSLまたはケーブルモデムI/Oフロントエ
ンドDSP (2) メディア処理DSP (3) ビデオ/グラフィックオーバレイプロセッサ (4) H.263デコーダタスク (5) カラースペースコンバータタスク
【0096】I/OフロントエンドDSPに入ったH.
263ストリームは、アーク番号1〜3によって定義さ
れるチャンネルチェーンを進む。各チャンネルは、2つ
の処理素子を接続し、素子間にデータを通すために使用
される一組のI/Oバッファからなる。制御フローは影
付きのアーク経由で示されている。
【0097】H.263ストリームは、I/Oフロント
エンドDSPからグローバル共有メモリ内に定義された
チャンネル1I/Oバッファ内に流れる。I/Oフロン
トエンドDSPは、チャンネル1に関連付けられた目的
地の処理素子、即ち、メディア処理DSP上のH.26
3デコーダタスクに対して、その入力バッファが満杯で
あり、読み出し準備ができていることを通知する。H.
263デコーダタスクは、チャンネル1I/Oバッファ
から読み出し、データを復号し、生じたYUVデータを
ローカル共有メモリ内のチャンネル2I/Oバッファに
書き込む。
【0098】ただし、チャンネルはインタープロセッサ
またはイントラプロセッサであり得る。データはグロー
バル共有メモリ(インタープロセッサ)経由、または、
所定のプロセッサ(イントラプロセッサ)に対して「ロ
ーカル」である共有メモリ経由でプロセッサ間を通過で
きる。図23では、チャンネル1と3がインタープロセ
ッサであり、チャンネル2がイントラプロセッサであ
る。
【0099】図25は、提案のリソース管理フレームワ
ークを単純化したものを示す。矢印は、必ずしもフロー
ではなく、APIを経由した制御フロー通信を表示す
る。これらの制御フローはプロトコルによって支配され
る。
【0100】変型 好適な実施例は、サービス品質制御とイベント通知を行
うアルゴリズムプロセッサのアルゴリズムプロセッサス
ケジューラを有する汎用プロセッサ用フレームワークの
特徴を保ちながら、多様な方法で変更可能である。
【0101】以上の説明に関して更に以下の項を開示す
る。 (1) a) アプリケーションプロセッサ上の実時間
メディアアプリケーション用の複数のプラグインと、
(b) アルゴリズムプロセッサ上の複数のアルゴリズ
ムコンポーネントと、ただし、前記プラグインがそれぞ
れ1つ以上のアルゴリズムコンポーネントに対応し、前
記アルゴリズムプロセッサがアプリケーションプロセッ
サに連絡しており、(c) 前記アルゴリズムプロセッ
サ上のコンポーネントスケジューラとを備え、(d)
前記スケジューラは、(i)前記コンポーネントの実行
に関連する前記プラグインからの制御に応じたコンポー
ネントのスケジューリングと、(ii)前記プラグイン
に送出される前記コンポーネントの実行に関連するイベ
ントの通知とによって、前記コンポーネントに関して前
記アプリケーションに対してサービス品質を提供する、
アルゴリズムプロセッサと連絡するアプリケーションプ
ロセッサ上の実時間メディアアプリケーションのための
フレームワーク。 (2) (a)前記制御が前記コンポーネントの1つに
対する一組のデータレートを含む第1項記載のフレーム
ワーク。 (3) (a)前記イベントが前記コンポーネントの1
つに対するプレゼンテーション時間に間に合わないとの
通知を含む第1項記載のフレームワーク。 (4) (a)前記アルゴリズムプロセッサ上でスケジ
ュール可能なメディアストリームの期限を決定するアプ
リケーションプロセッサスケジューラを更に有し、前記
アルゴリズムプロセッサ上の前記スケジューラが前記メ
ディアストリームの1回のフレームをスケジュールする
第1項記載のフレームワーク。 (5) (a)第2アルゴリズムプロセッサ上に複数の
第2アルゴリズムコンポーネントを更に有し、前記第2
アルゴリズムプロセッサが前記アプリケーションプロセ
ッサと前記アルゴリズムプロセッサとに連絡し、前記プ
ラグインも前記第2アルゴリズムコンポーネントに関連
する第1項記載のフレームワーク。
【0102】(6) アプリケーションを実行する汎用
プロセッサがDSPアルゴリズムに対するプロクシとし
てプラグインオブジェクトを含み、サービス品質がアル
ゴリズムスケジューリングのアプリケーション制御とア
プリケーションへ報告されるアルゴリズムイベントとを
含む、DSP実行アルゴリズムの統合。
【0103】本出願は、2000年11月29日提出の
仮出願番号第60/253,848号に由来する優先権
を要求する。次の特許出願は関連主題を開示する。即
ち、2001年4月25日提出の出願番号第09/84
1,847である。これらの出願は、本出願と共通の譲
受人を有する。
【0104】
【0105】
【0106】
【0107】
【0108】
【0109】
【0110】
【0111】
【0112】
【0113】
【0114】
【0115】
【0116】
【0117】
【0118】
【0119】
【0120】
【0121】
【0122】
【0123】
【0124】
【0125】
【0126】
【0127】
【0128】
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
【0136】
【0137】
【0138】
【0139】
【0140】
【0141】
【0142】
【0143】
【0144】
【0145】
【0146】
【0147】
【0148】
【0149】
【0150】
【0151】
【0152】
【0153】
【0154】
【0155】
【0156】
【0157】
【0158】
【0159】
【0160】
【0161】
【0162】
【図面の簡単な説明】
【図1a】好適な実施例のDSP構造を示す。
【図1b】好適な実施例のDSP構造を示す。
【図1c】好適な実施例のDSP構造を示す。
【図2a】好適な実施例のサービス品質を示す。
【図2b】好適な実施例のサービス品質を示す。
【図3】QoSのためのタイミング図である。
【図4】QoSのためのタイミング図である。
【図5】QoSのためのタイミング図である。
【図6】QoSのためのタイミング図である。
【図7】QoSのためのタイミング図である。
【図8】QoSのためのタイミング図である。
【図9】QoSのためのタイミング図である。
【図10】QoSのためのタイミング図である。
【図11】QoSのためのタイミング図である。
【図12】QoSのためのタイミング図である。
【図13】QoSのためのタイミング図である。
【図14】好適な実施例のメモリ解析を示す。
【図15】好適な実施例のメモリ解析を示す。
【図16】好適な実施例のメモリ解析を示す。
【図17】好適な実施例のメモリ解析を示す。
【図18】好適な実施例のメモリ解析を示す。
【図19】好適な実施例のメモリ解析を示す。
【図20】異種からなるシステムにおける既知のデータ
フローを示す。
【図21】好適な実施例のデータフローを示す。
【図22】好適な実施例のデータフローを示す。
【図23】好適な実施例のデータフローを示す。
【図24】クライアントサーバーとMPEG−21シス
テムを示す。
【図25】クライアントサーバーとMPEG−21シス
テムを示す。
【図26】ダイレクトショーフィルタとアプリケーショ
ン制御を示す。
【図27】ダイレクトショーフィルタとアプリケーショ
ン制御を示す。
【図28】ダイレクトショーフィルタとアプリケーショ
ン制御を示す。
フロントページの続き (72)発明者 フィリップ アール、スリフト アメリカ合衆国 テキサス、ダラス、 チ ャーチル ウェイ 7900、ナンバー2304 Fターム(参考) 5B045 AA01 BB34 BB36 BB38

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】(a) アプリケーションプロセッサ上の
    実時間メディアアプリケーション用の複数のプラグイン
    と、(b) アルゴリズムプロセッサ上の複数のアルゴ
    リズムコンポーネントと、ただし、前記プラグインがそ
    れぞれ1つ以上のアルゴリズムコンポーネントに対応
    し、前記アルゴリズムプロセッサがアプリケーションプ
    ロセッサに連絡しており、(c) 前記アルゴリズムプ
    ロセッサ上のコンポーネントスケジューラとを備え、
    (d) 前記スケジューラは、(i)前記コンポーネン
    トの実行に関連する前記プラグインからの制御に応じた
    コンポーネントのスケジューリングと、(ii)前記プ
    ラグインに送出される前記コンポーネントの実行に関連
    するイベントの通知とによって、前記コンポーネントに
    関して前記アプリケーションに対してサービス品質を提
    供する、 アルゴリズムプロセッサと連絡するアプリケーションプ
    ロセッサ上の実時間メディアアプリケーションのための
    フレームワーク。
JP2001364987A 2000-11-29 2001-11-29 メディアアクセラレータのサービス品質 Pending JP2002312331A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25384800P 2000-11-29 2000-11-29
US253848 2000-11-29

Publications (1)

Publication Number Publication Date
JP2002312331A true JP2002312331A (ja) 2002-10-25

Family

ID=22961955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001364987A Pending JP2002312331A (ja) 2000-11-29 2001-11-29 メディアアクセラレータのサービス品質

Country Status (3)

Country Link
US (1) US7140016B2 (ja)
EP (1) EP1229444A1 (ja)
JP (1) JP2002312331A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501600A (ja) * 2007-10-23 2011-01-06 フリースケール セミコンダクター インコーポレイテッド パケット・ストリーム・チャネルの処理をスケジュールするための方法、集積回路、および通信ユニット
JP2015156165A (ja) * 2014-02-21 2015-08-27 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001289045A1 (en) * 2000-09-08 2002-03-22 Avaz Networks Hardware function generator support in a dsp
CN1527968A (zh) * 2001-07-13 2004-09-08 �ʼҷ����ֵ������޹�˾ 运行媒体应用的方法及具有作业控制的媒体系统
KR100595066B1 (ko) * 2001-07-20 2006-06-30 엘지전자 주식회사 디지털 아이템 생성방법
US7904931B2 (en) * 2001-09-12 2011-03-08 Cox Communications, Inc. Efficient software bitstream rate generator for video server
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
JP2003330900A (ja) * 2002-05-09 2003-11-21 Nec Corp アプリケーション並列処理システム及びアプリケーション並列処理方法
AU2003274578A1 (en) * 2002-12-03 2004-06-23 Koninklijke Philips Electronics N.V. Pull scheduling of software components in hard real-time systems
FR2851389B1 (fr) * 2003-02-14 2005-04-29 Canon Kk Procede et dispositif de gestion de requetes dans une architecture du type client-serveur
US7929441B1 (en) * 2003-08-20 2011-04-19 Cisco Technology, Inc. Resource reservation method and system
KR100542441B1 (ko) * 2003-09-02 2006-01-11 한국전자통신연구원 2 이상의 채널을 처리하기 위한 스케줄링 방법, 보이스오버 패킷 시스템, 및 기록 매체
KR100546780B1 (ko) * 2003-12-26 2006-01-25 한국전자통신연구원 다수의 DSP를 사용하는 VoP(Voice OverPacket)시스템 및 그 시스템에서의 음성 처리 방법
US7617012B2 (en) * 2004-03-04 2009-11-10 Yamaha Corporation Audio signal processing system
US8831026B2 (en) * 2004-03-19 2014-09-09 International Business Machines Corporation Method and apparatus for dynamically scheduling requests
US7725905B1 (en) * 2004-05-10 2010-05-25 Globalfoundries Inc. Media accelerator interface API
US7756594B2 (en) * 2004-06-14 2010-07-13 Microsoft Corporation Systems and methods for parsing flexible audio codec topologies
EP1612977A3 (en) * 2004-07-01 2013-08-21 Yamaha Corporation Control device for controlling audio signal processing device
US20060031607A1 (en) * 2004-08-05 2006-02-09 Microsoft Corporation Systems and methods for managing input ring buffer
US7706901B2 (en) * 2004-10-01 2010-04-27 Microsoft Corporation Low latency real-time audio streaming
KR100640876B1 (ko) * 2004-11-17 2006-11-02 엘지전자 주식회사 이동 방송 수신기의 비디오 디코딩 시스템
CA2593247A1 (en) * 2005-01-10 2006-11-16 Quartics, Inc. Integrated architecture for the unified processing of visual media
US7606234B2 (en) * 2005-06-14 2009-10-20 Microsoft Corporation Multi-stream acknowledgement scheduling
KR100781511B1 (ko) * 2005-06-29 2007-12-03 삼성전자주식회사 홈 네트워크를 기반으로 하는 스트리밍 서비스 방법 및시스템
WO2007011203A1 (en) * 2005-07-22 2007-01-25 Stichting Astron Scalable control interface for large-scale signal processing systems.
US7720986B2 (en) * 2007-08-24 2010-05-18 At&T Intellectual Property I, L.P. Method and system for media adaption
US9189268B2 (en) * 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
US8964838B2 (en) * 2008-12-17 2015-02-24 Apple Inc. Video coding system using sub-channels and constrained prediction references to protect against data transmission errors
US20100150230A1 (en) * 2008-12-17 2010-06-17 Apple Inc. Video coding system using sub-channels and constrained prediction references to protect against data transmission errors
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8819686B2 (en) * 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
EP2787438A4 (en) * 2011-08-26 2016-06-29 Hitachi Ltd PREDICTIVE SEQUENTIAL CALCULATION DEVICE
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
JP6169105B2 (ja) * 2011-12-27 2017-07-26 ネットアップ,インコーポレイテッド ストレージシステムの動作を制御するための方法、装置、コンピュータプログラム及び記憶媒体
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9003021B2 (en) 2011-12-27 2015-04-07 Solidfire, Inc. Management of storage system access based on client performance and cluser health
US11455268B2 (en) * 2020-02-13 2022-09-27 Arm Limited Method, system and device for electronic interconnect delay bound determination

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303369A (en) * 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
US5291614A (en) * 1991-09-03 1994-03-01 International Business Machines Corporation Real-time, concurrent, multifunction digital signal processor subsystem for personal computers
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
US5388261A (en) * 1992-09-30 1995-02-07 Apple Computer, Inc. Apparatus and method for handling frame overruns in a digital signal processing system
FR2696259A1 (fr) * 1992-09-30 1994-04-01 Apple Computer Organisation en tâches et en modules d'une exécution dans un processeur.
US6434532B2 (en) * 1998-03-12 2002-08-13 Aladdin Knowledge Systems, Ltd. Interactive customer support for computer programs using network connection of user machine
US6092120A (en) * 1998-06-26 2000-07-18 Sun Microsystems, Inc. Method and apparatus for timely delivery of a byte code and serialized objects stream
AU2002237748A1 (en) * 2000-10-19 2002-05-21 Loudeye Technologies, Inc. System and method for selective insertion of content into streaming media

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501600A (ja) * 2007-10-23 2011-01-06 フリースケール セミコンダクター インコーポレイテッド パケット・ストリーム・チャネルの処理をスケジュールするための方法、集積回路、および通信ユニット
US8401019B2 (en) 2007-10-23 2013-03-19 Freescale Semiconductor, Inc. Method, integrated circuit, and communication unit for scheduling a processing of packet stream channels
JP2015156165A (ja) * 2014-02-21 2015-08-27 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法
US10349072B2 (en) 2014-02-21 2019-07-09 Renesas Electronics Corporation Image processing apparatus and control method for the same

Also Published As

Publication number Publication date
US20020112097A1 (en) 2002-08-15
EP1229444A1 (en) 2002-08-07
US7140016B2 (en) 2006-11-21

Similar Documents

Publication Publication Date Title
US7140016B2 (en) Media accelerator quality of service
US20020019843A1 (en) Multiprocessor object control
Lelli et al. Deadline scheduling in the Linux kernel
KR100649107B1 (ko) 실시간 동작 수행방법 및 시스템
US6941341B2 (en) Method and apparatus for balancing distributed applications
US7657890B2 (en) Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7685599B2 (en) Method and system for performing real-time operation
US8171477B2 (en) Method and system for performing real-time operation
US6779181B1 (en) Micro-scheduling method and operating system kernel
Pyarali et al. Evaluating and optimizing thread pool strategies for real-time CORBA
US20050066330A1 (en) Method and system for performing real-time operation
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
US20060288397A1 (en) Stream controller
JP2013516711A (ja) 電子デバイスにおける電力を制御するシステムおよび方法
TW514832B (en) Multiprocessor object control
Wolf et al. The system architecture of the Heidelberg transport system
Moina-Rivera et al. Event-driven serverless pipelines for video coding and quality metrics
Calvo et al. Supporting a reconfigurable real-time service-oriented middleware with FTT-CORBA
Fitzpatrick et al. Design and application of TOAST: an adaptive distributed multimedia middleware platform
Rutten et al. Dynamic reconfiguration of streaming graphs on a heterogeneous multiprocessor architecture
Mercer Operating system resource reservation for real-time and multimedia applications
Colmenares et al. Real-time-component based software architecture for QoS-adaptive networked multimedia applications
Repplinger et al. Stream processing on GPUs using distributed multimedia middleware
Mullender et al. Quality of service in distributed multimedia systems
WO2003034657A2 (en) Scheme for dynamic process network reconfiguration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070803