JPH0738510A - Atrac用リアルタイム・タスクのスケジュール方法 - Google Patents
Atrac用リアルタイム・タスクのスケジュール方法Info
- Publication number
- JPH0738510A JPH0738510A JP17000593A JP17000593A JPH0738510A JP H0738510 A JPH0738510 A JP H0738510A JP 17000593 A JP17000593 A JP 17000593A JP 17000593 A JP17000593 A JP 17000593A JP H0738510 A JPH0738510 A JP H0738510A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- time
- memory
- processing
- 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
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
(57)【要約】
【目的】多くの信号処理アルゴリズムが商品に適用され
るようになり、アルゴリズムの効率的な実施がプロセッ
サのダイサイズと電力消費を最小に保つために必要とな
っている。 【構成】タスク・スケジューラは計算能力の利用とディ
ジタル信号プロセッサの内部メモリを最適化するために
アルゴリズムのタスクを割り当てるために使用される。
本発明では、タスク・スケジューラを使用してATRA
Cアルゴリズムの実行順序を指定してタスク再同期化時
間を最小にし、最低実行付帯時間(オーバーヘッド)に
伴うタスク間の結合と複雑性を減少する。タスク・スケ
ジューラは準動的緩衝手法を使用してタスク間のデータ
のやり取りのための効率的メモリー割付を実現する。
るようになり、アルゴリズムの効率的な実施がプロセッ
サのダイサイズと電力消費を最小に保つために必要とな
っている。 【構成】タスク・スケジューラは計算能力の利用とディ
ジタル信号プロセッサの内部メモリを最適化するために
アルゴリズムのタスクを割り当てるために使用される。
本発明では、タスク・スケジューラを使用してATRA
Cアルゴリズムの実行順序を指定してタスク再同期化時
間を最小にし、最低実行付帯時間(オーバーヘッド)に
伴うタスク間の結合と複雑性を減少する。タスク・スケ
ジューラは準動的緩衝手法を使用してタスク間のデータ
のやり取りのための効率的メモリー割付を実現する。
Description
【0001】
【産業上の利用分野】本発明はミニディスクで使用する
ディジタル信号プロセッサ(DSP)上でATRACエ
ンコーダ・アルゴリズムを効率的に実施する、スケジュ
ール方法に関するものである。
ディジタル信号プロセッサ(DSP)上でATRACエ
ンコーダ・アルゴリズムを効率的に実施する、スケジュ
ール方法に関するものである。
【0002】
【従来の技術】通常、汎用スケジューリング手法はいく
つかあり、その2つの一般的なグループとして、割り込
み形および非割り込み形手法がある。非割り込み形スケ
ジューリングは全動的、静的割当て、自己計時、全静的
等の異なるスケジューリング・クラスに分けることが出
来る。詳細は(エドワードA.リー及びジェフリーC.バイ
ヤー「静的にスケジュールしたデータ流れのアーキテク
チャ:DSPアプリケーション用並列アルゴリズムとア
ーキテクチャ」マージェィA.バヨウミ編集、pp.159ー190
クルウェー・アカデミック・パブリッシャ、1991年)
に詳しい。
つかあり、その2つの一般的なグループとして、割り込
み形および非割り込み形手法がある。非割り込み形スケ
ジューリングは全動的、静的割当て、自己計時、全静的
等の異なるスケジューリング・クラスに分けることが出
来る。詳細は(エドワードA.リー及びジェフリーC.バイ
ヤー「静的にスケジュールしたデータ流れのアーキテク
チャ:DSPアプリケーション用並列アルゴリズムとア
ーキテクチャ」マージェィA.バヨウミ編集、pp.159ー190
クルウェー・アカデミック・パブリッシャ、1991年)
に詳しい。
【0003】スケジューリング戦略の大部分ではコンパ
イル時間決定が必要となる。これにはタスクの実行時間
を指定して行うタスク指定があり、実行条件がタスク・
スケジューラの構築に必要である。上述したスケジュー
リング方法は複合的なタスク・スケジューリングは考慮
にいれていない。
イル時間決定が必要となる。これにはタスクの実行時間
を指定して行うタスク指定があり、実行条件がタスク・
スケジューラの構築に必要である。上述したスケジュー
リング方法は複合的なタスク・スケジューリングは考慮
にいれていない。
【0004】DSP上での信号処理アルゴリズムの実施
には通常、緩衝手法が用いられ、バッファメモリを使用
して先行タスクから後続タスクへ大量の処理データある
いは制御データを手渡している。更にバッファを制御す
るためにDSPのためにコードを生成する必要がある。
一般にバッファを実現し、管理する方法には、FIFO
と静的緩衝手法の2つの方法がある。FIFO手法は、
FIFO待ち行列を直接使用して実現できるが、入出力
ポインタを管理するのに大量の付帯の(オーバーヘッ
ド)実行時間を必要とするのでそれらはコストが高くな
る。静的緩衝手法はバッファを管理するのにかなり少な
い実行時間しか必要としない。これは処理タスクの各々
の呼び出しに付いて入力サンプルの位置と出力宛先の宛
先を静的に計算することにより行うことが出来る。タス
クを呼び出す度に、データは指定メモリ位置から直接読
み取り、指定メモリ位置に直接出力する。静的緩衝手法
は、タスクを呼び出す度に、呼び出したタスクはその入
出力のために同一位置にアクセスすることを意味する。
には通常、緩衝手法が用いられ、バッファメモリを使用
して先行タスクから後続タスクへ大量の処理データある
いは制御データを手渡している。更にバッファを制御す
るためにDSPのためにコードを生成する必要がある。
一般にバッファを実現し、管理する方法には、FIFO
と静的緩衝手法の2つの方法がある。FIFO手法は、
FIFO待ち行列を直接使用して実現できるが、入出力
ポインタを管理するのに大量の付帯の(オーバーヘッ
ド)実行時間を必要とするのでそれらはコストが高くな
る。静的緩衝手法はバッファを管理するのにかなり少な
い実行時間しか必要としない。これは処理タスクの各々
の呼び出しに付いて入力サンプルの位置と出力宛先の宛
先を静的に計算することにより行うことが出来る。タス
クを呼び出す度に、データは指定メモリ位置から直接読
み取り、指定メモリ位置に直接出力する。静的緩衝手法
は、タスクを呼び出す度に、呼び出したタスクはその入
出力のために同一位置にアクセスすることを意味する。
【0005】
【発明が解決しようとする課題】計算プロセスを行うた
め、エンコーダをディジタル信号プロセッサ(DSP)
を用いて実行する。目標はメモリ利用を最適化し、コー
ド化のためのマシンサイクルを最小に保つことである。
それによりチップ数は少なくなり、消費電力も少なくな
る。しかしそれらは音質を損なわずに行うようにすべき
である。
め、エンコーダをディジタル信号プロセッサ(DSP)
を用いて実行する。目標はメモリ利用を最適化し、コー
ド化のためのマシンサイクルを最小に保つことである。
それによりチップ数は少なくなり、消費電力も少なくな
る。しかしそれらは音質を損なわずに行うようにすべき
である。
【0006】図5はエンコーダの処理タスクの従来のス
ケジューリング方法を示したものである。従来のタスク
割付方法は実現が容易であるが、メモリ利用と処理時間
に関しては非効率的である。これはATRACアルゴリ
ズムの場合は特にそうである。各々のプロセス(図5に
示すような)では、完了するのに特定の実行時間が必要
である。プロセス実行時間は様々である。MDCT、Q
MF、ビット割当プロセスといったプロセスは、他のプ
ロセスに比べてゲインの大きなプロセスである。それら
のプロセスではプロセス実行中により多くの実行時間と
メモリが必要となる。図1に示す流れ図の流れにしたが
ってプロセスを実行する際はより多くのメモリを必要と
し、プロセス実行において非対称性をもたらす。非対称
的プロセスはプロセス実行に関して余分な待機時間をも
たらすことになる。
ケジューリング方法を示したものである。従来のタスク
割付方法は実現が容易であるが、メモリ利用と処理時間
に関しては非効率的である。これはATRACアルゴリ
ズムの場合は特にそうである。各々のプロセス(図5に
示すような)では、完了するのに特定の実行時間が必要
である。プロセス実行時間は様々である。MDCT、Q
MF、ビット割当プロセスといったプロセスは、他のプ
ロセスに比べてゲインの大きなプロセスである。それら
のプロセスではプロセス実行中により多くの実行時間と
メモリが必要となる。図1に示す流れ図の流れにしたが
ってプロセスを実行する際はより多くのメモリを必要と
し、プロセス実行において非対称性をもたらす。非対称
的プロセスはプロセス実行に関して余分な待機時間をも
たらすことになる。
【0007】MDCTのようなゲインの大きなプロセス
を実行するときは大きなメモリが必要となる。更に2つ
のQMFプロセス及びMDCTプロセスは高レベルに結
合されたプロセスである。QMFとMDCT間のこの結
合関係により、大きなメモリの割り付け要求は更に厳し
くなる。後続のプロセスを実行する(発火する)前にス
ペクトルのデータを蓄積するために大きなメモリが必要
となる。この状況を図6に示す。
を実行するときは大きなメモリが必要となる。更に2つ
のQMFプロセス及びMDCTプロセスは高レベルに結
合されたプロセスである。QMFとMDCT間のこの結
合関係により、大きなメモリの割り付け要求は更に厳し
くなる。後続のプロセスを実行する(発火する)前にス
ペクトルのデータを蓄積するために大きなメモリが必要
となる。この状況を図6に示す。
【0008】QMFとMDCTを処理するのに必要なメ
モリ要求を表1に示す。
モリ要求を表1に示す。
【0009】
【表1】
【0010】データ取得プロセスは背景プロセスと見な
されてきた。処理時間の大きな部分は、コード化プロセ
スに当てられている。リアルタイム処理を行うには、2
つの音声入力チャネルから16ビットデータを44.1KHz
のレートで連続的に取り込む。1つは現在フレームデー
タ用、もう1つは次のフレームデータ用、入力バッファ
を複製する必要がある。これはデータ取得プロセス(背
景プロセス)及びコード化プロセス(前景プロセス)の
重複故に必要となる。1つのデータバッファは現在のフ
レーム処理に使用し、もう1つは次のフレーム処理のデ
ータ取得に使用する。
されてきた。処理時間の大きな部分は、コード化プロセ
スに当てられている。リアルタイム処理を行うには、2
つの音声入力チャネルから16ビットデータを44.1KHz
のレートで連続的に取り込む。1つは現在フレームデー
タ用、もう1つは次のフレームデータ用、入力バッファ
を複製する必要がある。これはデータ取得プロセス(背
景プロセス)及びコード化プロセス(前景プロセス)の
重複故に必要となる。1つのデータバッファは現在のフ
レーム処理に使用し、もう1つは次のフレーム処理のデ
ータ取得に使用する。
【0011】従って必要なメモリ容量は2音声チャネル
に付き、1024 x 2 語である。ウィンドウ化とMDCT
については、ウィンドウ・バッファサイズを表1にまと
めて表現した。メモリバッファの半分はMDCTプロセ
スの最後にスペクトルデータを格納するのに使用し、デ
ータの他の半分は次のフレーム計算に使用する。表1
は、大きなゲインプロセスとQMFとMDCT間の密接
な結合により最低4096語がメモリ利用のピークであるこ
とを示している。このピークメモリ利用には、他のプロ
セスで必要な付帯(オーバーヘッド)メモリは含まれて
いない。
に付き、1024 x 2 語である。ウィンドウ化とMDCT
については、ウィンドウ・バッファサイズを表1にまと
めて表現した。メモリバッファの半分はMDCTプロセ
スの最後にスペクトルデータを格納するのに使用し、デ
ータの他の半分は次のフレーム計算に使用する。表1
は、大きなゲインプロセスとQMFとMDCT間の密接
な結合により最低4096語がメモリ利用のピークであるこ
とを示している。このピークメモリ利用には、他のプロ
セスで必要な付帯(オーバーヘッド)メモリは含まれて
いない。
【0012】大きなメモリ容量に加えて、複合的な高い
レベル結合した(自然言語に近いレベルの意味であ
る。)タスクは通常、計算集約的なタスクである。その
結果、複合的なタスクでは異なるチャネルの後続タスク
と再同期化するのにより多くの時間がかかることにな
る。複合的なタスクに続く単純なタスクを有するアルゴ
リズムの場合、そのタスクを通常の方法にしたがってス
ケジュールしようとすれば非対称処理時間を生じること
になる。これはより早い処理速度を必要とする。
レベル結合した(自然言語に近いレベルの意味であ
る。)タスクは通常、計算集約的なタスクである。その
結果、複合的なタスクでは異なるチャネルの後続タスク
と再同期化するのにより多くの時間がかかることにな
る。複合的なタスクに続く単純なタスクを有するアルゴ
リズムの場合、そのタスクを通常の方法にしたがってス
ケジュールしようとすれば非対称処理時間を生じること
になる。これはより早い処理速度を必要とする。
【0013】静的緩衝手法の実行時間付帯時間(オーバ
ーヘッド)は小さいが、大きなメモリ割当を必要とす
る。図7はタスク・スケジュールに基づく静的メモリ割
当の作動を示している。各々のフレーム処理に付いて、
タスクAは3回、タスクBは2回実行する。タスクAが
始動される度に、2ブロックのデータが生成される。合
計6ブロックのデータが後続のタスクBに対して生成さ
れる。タスクBは各々の呼び出しに付いて3ブロックの
データを読み取る。静的緩衝手法の規則にしたがって生
成されたデータと受け取った入力データは同一メモリス
ペースを占めるはずである。
ーヘッド)は小さいが、大きなメモリ割当を必要とす
る。図7はタスク・スケジュールに基づく静的メモリ割
当の作動を示している。各々のフレーム処理に付いて、
タスクAは3回、タスクBは2回実行する。タスクAが
始動される度に、2ブロックのデータが生成される。合
計6ブロックのデータが後続のタスクBに対して生成さ
れる。タスクBは各々の呼び出しに付いて3ブロックの
データを読み取る。静的緩衝手法の規則にしたがって生
成されたデータと受け取った入力データは同一メモリス
ペースを占めるはずである。
【0014】コード化プロセスを行うためにより多くの
処理出力を有することは、コード化のために高い頻度で
作動する2つないしそれ以上のDSPが必要なことにな
る。これは電力消費とチップ数の増大をもたらす。
処理出力を有することは、コード化のために高い頻度で
作動する2つないしそれ以上のDSPが必要なことにな
る。これは電力消費とチップ数の増大をもたらす。
【0015】メモリの非効率的な利用はDSPのダイサ
イズが大きくなり、外部メモリのサイズの増大をもたら
す。従って各々の処理を割り当ててメモリを利用する効
率的な方法が必要である。この要求を満足させるため、
ハードウェア実施レベルで改善を行う必要がある。計算
処理方法をプロセッサに割り付け、プロセスのメモリ利
用を効率的に管理する方法を開発する必要がある。
イズが大きくなり、外部メモリのサイズの増大をもたら
す。従って各々の処理を割り当ててメモリを利用する効
率的な方法が必要である。この要求を満足させるため、
ハードウェア実施レベルで改善を行う必要がある。計算
処理方法をプロセッサに割り付け、プロセスのメモリ利
用を効率的に管理する方法を開発する必要がある。
【0016】
【課題を解決するための手段】本発明は、上記の目的を
達成するため、複数音声チャネルの複合的なハイレベル
で結合したタスクを解決する手段と、最適スケジューリ
ング方法を用いてピークメモリ利用を削減する手段と、
最小実行と付帯時間(オーバーヘッド)で呼び出したタ
スク用のバッファを管理する手段と、メモリの再利用が
可能なように呼び出したタスクのためにメモリを割り当
てる手段と、音質を損なうことなくATRACコード化
アルゴリズムの単一DSP解決法を達成する手段とから
なるリアルタイム・スケジュール方法を提供する。
達成するため、複数音声チャネルの複合的なハイレベル
で結合したタスクを解決する手段と、最適スケジューリ
ング方法を用いてピークメモリ利用を削減する手段と、
最小実行と付帯時間(オーバーヘッド)で呼び出したタ
スク用のバッファを管理する手段と、メモリの再利用が
可能なように呼び出したタスクのためにメモリを割り当
てる手段と、音質を損なうことなくATRACコード化
アルゴリズムの単一DSP解決法を達成する手段とから
なるリアルタイム・スケジュール方法を提供する。
【0017】
【作用】上述のように問題を解決する方法を用いて、タ
スク・スケジューラを用いて結合した複合的な処理タス
クを削減し、タスク間のバッファメモリ管理を改善す
る。複数タスクをリアルタイムで取り扱うタスク・スケ
ジューラは、1つのDSP上で実行するATRACアル
ゴリズムの異なる処理タスクを割り当てるために発明さ
れたものである。タスク・スケジューラはメモリ利用が
最適化され、処理速度が効率的に使用されるようにプロ
セスの実行を規定する。
スク・スケジューラを用いて結合した複合的な処理タス
クを削減し、タスク間のバッファメモリ管理を改善す
る。複数タスクをリアルタイムで取り扱うタスク・スケ
ジューラは、1つのDSP上で実行するATRACアル
ゴリズムの異なる処理タスクを割り当てるために発明さ
れたものである。タスク・スケジューラはメモリ利用が
最適化され、処理速度が効率的に使用されるようにプロ
セスの実行を規定する。
【0018】タスク・スケジューラは静的スケジュール
の非割り込み形が可能となり、かつ完全に静的な特性と
いう利点を有する。それを更に強化するため、複合的で
高レベルで結合したタスクを効率的に割り当てスケジュ
ールする方法を付け加える。非割り込み形スケジューラ
を使用して、プロセッサの状態を維持及び回復するのに
使用する文脈スィッチングでの重大な付帯実行時間を削
減する。ATRACアルゴリズムの決定論的な動作の利
点を考慮して、スケジュールはコンパイル時間中に決定
することが出来る。ピーク時メモリ利用量を削減するた
め、スケジューラはQMFタスクに対して0.5 フレーム
の入力メモリを割り当てる。スケジューラはまた、2つ
のタスクを各々のチャネル(フレーム当りの処理時間)
/N別にスケジュールすることにより小節のサイズとQ
MFとMDCTプロセスの結合を削減するように設計さ
れている(Nはチャネル数を示す)。
の非割り込み形が可能となり、かつ完全に静的な特性と
いう利点を有する。それを更に強化するため、複合的で
高レベルで結合したタスクを効率的に割り当てスケジュ
ールする方法を付け加える。非割り込み形スケジューラ
を使用して、プロセッサの状態を維持及び回復するのに
使用する文脈スィッチングでの重大な付帯実行時間を削
減する。ATRACアルゴリズムの決定論的な動作の利
点を考慮して、スケジュールはコンパイル時間中に決定
することが出来る。ピーク時メモリ利用量を削減するた
め、スケジューラはQMFタスクに対して0.5 フレーム
の入力メモリを割り当てる。スケジューラはまた、2つ
のタスクを各々のチャネル(フレーム当りの処理時間)
/N別にスケジュールすることにより小節のサイズとQ
MFとMDCTプロセスの結合を削減するように設計さ
れている(Nはチャネル数を示す)。
【0019】タスク間のデータのやり取りのため、タス
ク・スケジューラにより準動的緩衝手法を用いて呼び出
したタスクにメモリを割り当てる。N循環バッファを呼
び出したタスクにより作成し、より大きな循環バッファ
を形成するためにそのバッファを鎖状につなぐ。出力、
入力ポインタはそのタスクで指定され、呼び出したタス
クで更新される。N循環バッファは大きな循環バッファ
内には一定のメモリ位置を持っていない。そのタスクが
呼び出される度に、メモリ領域は入出力ポインタをそれ
に指定することにより割り当てる。ポインタを管理する
際に使用する付帯実行時間(オーバーヘッド)は最小化
され、これにより使用されていないメモリを他のタスク
で再使用することが出来る。
ク・スケジューラにより準動的緩衝手法を用いて呼び出
したタスクにメモリを割り当てる。N循環バッファを呼
び出したタスクにより作成し、より大きな循環バッファ
を形成するためにそのバッファを鎖状につなぐ。出力、
入力ポインタはそのタスクで指定され、呼び出したタス
クで更新される。N循環バッファは大きな循環バッファ
内には一定のメモリ位置を持っていない。そのタスクが
呼び出される度に、メモリ領域は入出力ポインタをそれ
に指定することにより割り当てる。ポインタを管理する
際に使用する付帯実行時間(オーバーヘッド)は最小化
され、これにより使用されていないメモリを他のタスク
で再使用することが出来る。
【0020】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。図1、2、3、4は本発明の実施例を示し
たものである。一般にこのスケジューリング方法は処理
タスクに利点があり、それは、入力データサンプル数に
依存しない。この場合、QMFタスクは異なる時間間隔
でスケジュール化され、1回のフレーム周期内でサンプ
ルデータの1つのフレームの処理を完了する。このタス
クは外部世界と高いレベルで結合している。プロセッサ
に到着したサンプルデータはリアルタイム入力する。プ
ロセッサはサンプルデータを優先処理するために現在タ
スクを中断する必要がある。ハイレベル結合した複合的
な処理タスクを区分して、最適バッファ利用を達成する
一般化した方法を図1に示す。
て説明する。図1、2、3、4は本発明の実施例を示し
たものである。一般にこのスケジューリング方法は処理
タスクに利点があり、それは、入力データサンプル数に
依存しない。この場合、QMFタスクは異なる時間間隔
でスケジュール化され、1回のフレーム周期内でサンプ
ルデータの1つのフレームの処理を完了する。このタス
クは外部世界と高いレベルで結合している。プロセッサ
に到着したサンプルデータはリアルタイム入力する。プ
ロセッサはサンプルデータを優先処理するために現在タ
スクを中断する必要がある。ハイレベル結合した複合的
な処理タスクを区分して、最適バッファ利用を達成する
一般化した方法を図1に示す。
【0021】上述のタスクを使用するNチャネル処理を
行うため、(図1の参照数字11で示すように)タスクは
その入力バッファに(データフレームサイズ)/(Nチ
ャネル)ワードのデータを割り当てる。これにより文脈
スィッチングの必要がなくなり、入力バッファサイズを
削減できる。
行うため、(図1の参照数字11で示すように)タスクは
その入力バッファに(データフレームサイズ)/(Nチ
ャネル)ワードのデータを割り当てる。これにより文脈
スィッチングの必要がなくなり、入力バッファサイズを
削減できる。
【0022】複合的でハイレベル結合したタスクは、同
時性の利点をとるため、複数プロセッサ環境について異
なるプロセッサに対しタスクの割当を実行できるよう
に、データを区分する。しかし単一プロセッサ環境にお
いては、ハイレベル結合した複合的なタスクは順次に実
行するように指定される。これは図1で参照数字12で示
す。このステップでは、複合的なタスクやハイレベルに
結合したタスクは大きな小節タスクの結合を削減するよ
うに、単純なタスクに分解される。このステップを行う
際、結合した複合的なタスクは単純なタスクの結合に還
元される。
時性の利点をとるため、複数プロセッサ環境について異
なるプロセッサに対しタスクの割当を実行できるよう
に、データを区分する。しかし単一プロセッサ環境にお
いては、ハイレベル結合した複合的なタスクは順次に実
行するように指定される。これは図1で参照数字12で示
す。このステップでは、複合的なタスクやハイレベルに
結合したタスクは大きな小節タスクの結合を削減するよ
うに、単純なタスクに分解される。このステップを行う
際、結合した複合的なタスクは単純なタスクの結合に還
元される。
【0023】単一プロセッサ環境では、複合的なタスク
は異なるチャネルに対して1つのフレームサイクル内で
順次にN回始動(実行)するようにスケジューリングさ
れる(図1で参照数字13で示す)。このタスクは最小
(1フレーム周期)/(Nチャネル)別にスケジュール
される。これによりチャネル間のタスクの再同期化が最
小時間での実行を保証し、プロセッサに対する不必要な
再同期化オーバーヘッドをなくすことが出来る。更にデ
ータサンプルの1フレームに必要な本当の処理時間を推
定するよい方法をもたらす。
は異なるチャネルに対して1つのフレームサイクル内で
順次にN回始動(実行)するようにスケジューリングさ
れる(図1で参照数字13で示す)。このタスクは最小
(1フレーム周期)/(Nチャネル)別にスケジュール
される。これによりチャネル間のタスクの再同期化が最
小時間での実行を保証し、プロセッサに対する不必要な
再同期化オーバーヘッドをなくすことが出来る。更にデ
ータサンプルの1フレームに必要な本当の処理時間を推
定するよい方法をもたらす。
【0024】結果的には区分化より、実行アルゴリズム
のタスクは再順序化と、再割当の必要を生じる。このス
テップはアルゴリズムの正確な流れを保証する。図1の
参照数字14は、後続タスクを参照数字13で行われた複合
的で高レベル結合したタスクの再スケジューリングの結
果として、再順序化するするために用いられる。タスク
間の待機時間を取り除くために、再割当では後続タスク
の実行時間をも考慮に入れている。
のタスクは再順序化と、再割当の必要を生じる。このス
テップはアルゴリズムの正確な流れを保証する。図1の
参照数字14は、後続タスクを参照数字13で行われた複合
的で高レベル結合したタスクの再スケジューリングの結
果として、再順序化するするために用いられる。タスク
間の待機時間を取り除くために、再割当では後続タスク
の実行時間をも考慮に入れている。
【0025】図2はこの発明を用いてATRACのタス
ク・スケジュールを描いたものである。タスク・スケジ
ューラは最初に(フレームサイズ/2)ワード迄の入力
バッファサイズを割り付ける。
ク・スケジュールを描いたものである。タスク・スケジ
ューラは最初に(フレームサイズ/2)ワード迄の入力
バッファサイズを割り付ける。
【0026】QMFとMDCTはより複合的なタスクで
あり、この2つのタスクは高レベルで結合されている。
あり、この2つのタスクは高レベルで結合されている。
【0027】この2つのタスクは分解されNチャネルに
対するMDCTタスクは([フレーム当りの処理時間]
/N)間隔でスケジュール化される。2チャネルのケー
スでは、2つのチャネルのMDCTタスクの間の時間間
隔は 0.5フレーム離れている。これは図2で数字23、24
で示されている。QMFタスクは数字21で示すように2
チャネルあたりの0.5フレームデータを処理するために
呼び出される。他の 0.5フレームのデータは、数字22で
示すように、フレームサイクルの終わりに呼び出された
QMFタスクにより処理される。個々のチャネルの後続
のプロセスのためのタスクは再順序化される。ブロック
サイズ決定タスクは数字25で示すようにフレームの終わ
りにスケジュール化される。
対するMDCTタスクは([フレーム当りの処理時間]
/N)間隔でスケジュール化される。2チャネルのケー
スでは、2つのチャネルのMDCTタスクの間の時間間
隔は 0.5フレーム離れている。これは図2で数字23、24
で示されている。QMFタスクは数字21で示すように2
チャネルあたりの0.5フレームデータを処理するために
呼び出される。他の 0.5フレームのデータは、数字22で
示すように、フレームサイクルの終わりに呼び出された
QMFタスクにより処理される。個々のチャネルの後続
のプロセスのためのタスクは再順序化される。ブロック
サイズ決定タスクは数字25で示すようにフレームの終わ
りにスケジュール化される。
【0028】QMFプロセスの入力バッファサイズは上
記のようにフレームサイズの 0.5である。
記のようにフレームサイズの 0.5である。
【0029】図4は前記の発明を使用した結果としての
1フレームサイクルに対するメモリ割当を示したもので
ある。
1フレームサイクルに対するメモリ割当を示したもので
ある。
【0030】入力バッファは(フレーム当りのサンプル
データ)/(2チャネル語)のメモリ領域が割り当てら
れるので、入力バッファは 0.5フレームサイクル周期の
後は満杯になる。
データ)/(2チャネル語)のメモリ領域が割り当てら
れるので、入力バッファは 0.5フレームサイクル周期の
後は満杯になる。
【0031】次いて入力データは図4の数字41で示すよ
うに左右のチャネルの両方に付いてQMFタスクにより
処理される。
うに左右のチャネルの両方に付いてQMFタスクにより
処理される。
【0032】QMFデータの出力は左右のウィンドウバ
ッファに格納される。MDCTタスクはその入力として
のウィンドウ(H/M/L)データを使用することによ
って左チャネルの処理が発火される。左チャネルに対し
てスケジュールされた全ての後続タスクが完了した後、
ウィンドウバッファの半分を数字42で示すように他のタ
スクに割り当てることが出来る。
ッファに格納される。MDCTタスクはその入力として
のウィンドウ(H/M/L)データを使用することによ
って左チャネルの処理が発火される。左チャネルに対し
てスケジュールされた全ての後続タスクが完了した後、
ウィンドウバッファの半分を数字42で示すように他のタ
スクに割り当てることが出来る。
【0033】0.5フレームサイクルが経過すると、入力
バッファは満杯になり、データは数字44で示すように左
チャネルのウィンドウバッファの空の半分に格納され
る。データ転送後、図2でスケジュールされたタスクに
したがって数字44で示すように右のチャネルに対する処
理が呼び出される。左右のチャネルのスクラッチパッド
・バッファとウィンドウ・バッファのメモリスペースを
数字45で示すようにMDCTプロセスに続くタスク用と
して使用される。QMFプロセスは右チャネル処理が完
了した後に始動される。QMFの出力は数字46で示すよ
うに左右のウィンドウバッファに格納される。
バッファは満杯になり、データは数字44で示すように左
チャネルのウィンドウバッファの空の半分に格納され
る。データ転送後、図2でスケジュールされたタスクに
したがって数字44で示すように右のチャネルに対する処
理が呼び出される。左右のチャネルのスクラッチパッド
・バッファとウィンドウ・バッファのメモリスペースを
数字45で示すようにMDCTプロセスに続くタスク用と
して使用される。QMFプロセスは右チャネル処理が完
了した後に始動される。QMFの出力は数字46で示すよ
うに左右のウィンドウバッファに格納される。
【0034】準動的緩衝手法は、循環緩衝手法で使用す
るメモリポインタを管理により追加転送動作を削減す
る。
るメモリポインタを管理により追加転送動作を削減す
る。
【0035】この手法はタスク・スケジューラにより呼
び出したタスクに対してメモリを割り当てのために用い
られる。静的緩衝手法とは異なり、各々の入出力データ
フレームバッファのメモリ位置は固定されない。
び出したタスクに対してメモリを割り当てのために用い
られる。静的緩衝手法とは異なり、各々の入出力データ
フレームバッファのメモリ位置は固定されない。
【0036】入出力ポインタはプロセッサに対して現在
スケジュールされているタスクに割り当てられる。図7
に示す同様な問題を用いて、図3は準動的緩衝手法を用
いたメモリ割当例を示している。
スケジュールされているタスクに割り当てられる。図7
に示す同様な問題を用いて、図3は準動的緩衝手法を用
いたメモリ割当例を示している。
【0037】4つの循環バッファは、タスクデータ通過
用の中間タスクとして、タスクAとタスクBにより作成
される。4つのデータバッファは、より大きな循環バッ
ファを形成するために、鎖状に結合される。循環バッフ
ァが正確に作動するには、両方のポインタは、ポインタ
がバッファの終わりを指したら再びバッファの初めを指
し示す循環をする必要がある。図3はタスク実行終了時
の循環バッファの内容を示している。時間=0では、小
さな循環バッファの4ブロックは空である。時間=t2
では、タスクAはバッファに格納する4ブロックのデー
タを生成し、出力バッファは更新され、ポインタは格納
される。タスクBの実行は循環バッファの3つの小さな
ブロックを消費する。時間=t4では、2ブロックのデ
ータバッファがタスクAにより生成される。後続のタス
クBは残りのブロックを消費して1フレームサイクルを
完了する。動的緩衝手法の作動は、呼び出されたタスク
のメモリは2フレームサイクル毎に異なるメモリ位置を
占めることを示している。
用の中間タスクとして、タスクAとタスクBにより作成
される。4つのデータバッファは、より大きな循環バッ
ファを形成するために、鎖状に結合される。循環バッフ
ァが正確に作動するには、両方のポインタは、ポインタ
がバッファの終わりを指したら再びバッファの初めを指
し示す循環をする必要がある。図3はタスク実行終了時
の循環バッファの内容を示している。時間=0では、小
さな循環バッファの4ブロックは空である。時間=t2
では、タスクAはバッファに格納する4ブロックのデー
タを生成し、出力バッファは更新され、ポインタは格納
される。タスクBの実行は循環バッファの3つの小さな
ブロックを消費する。時間=t4では、2ブロックのデ
ータバッファがタスクAにより生成される。後続のタス
クBは残りのブロックを消費して1フレームサイクルを
完了する。動的緩衝手法の作動は、呼び出されたタスク
のメモリは2フレームサイクル毎に異なるメモリ位置を
占めることを示している。
【0038】表2は、タスク・スケジューラを使用した
ピークメモリの利用法が、メモリ容量をかなり削減出来
ることを示している。
ピークメモリの利用法が、メモリ容量をかなり削減出来
ることを示している。
【0039】
【表2】
【0040】入力バッファサイズは 512語に削減されて
いる。合計2887語がピーク利用で必要となる。
いる。合計2887語がピーク利用で必要となる。
【0041】なお、本発明はオーディオ・エンコーダの
サブバンド方式及び変換符号化方式でも使用することが
出来る。
サブバンド方式及び変換符号化方式でも使用することが
出来る。
【0042】
【発明の効果】以上述べたところから明らかなように、
本発明はATRACエンコーダの効率的なファームウエ
ア、ハードウエア化をもたらす。
本発明はATRACエンコーダの効率的なファームウエ
ア、ハードウエア化をもたらす。
【0043】効率的なメモリ割当及びATRACアルゴ
リズムのタスク・スケジューリングの結果、単一のDS
Pを用いてコード化を行うことが出来る。
リズムのタスク・スケジューリングの結果、単一のDS
Pを用いてコード化を行うことが出来る。
【0044】この新しいスケジューリング方法とそのメ
モリ管理手法は、メモリ利用及びDSPの処理能力に関
する点でより優れた性能をもたらす。
モリ管理手法は、メモリ利用及びDSPの処理能力に関
する点でより優れた性能をもたらす。
【0045】実施レベルで行う改善の結果、より少ない
メモリとDSPのより低い作動頻度を達成することが出
来る。
メモリとDSPのより低い作動頻度を達成することが出
来る。
【0046】また、タスク・スケジューラはまた2つの
チャネルの処理タスク間の再同期化時間を最小にする。
再同期化はアルゴリズムに無関係のタスクを処理するの
に使用するプロセッサ時間の量、例えばタスクを呼び出
す前にデータを待つのに使用する時間量として定義され
る。
チャネルの処理タスク間の再同期化時間を最小にする。
再同期化はアルゴリズムに無関係のタスクを処理するの
に使用するプロセッサ時間の量、例えばタスクを呼び出
す前にデータを待つのに使用する時間量として定義され
る。
【図1】ハイレベル結合タスクの割当てとスケジューリ
ングのステップを示す図である。
ングのステップを示す図である。
【図2】ATRACエンコードアルゴリズムのタスク・
スケジュールである。
スケジュールである。
【図3】図3は準動的バッファ手法の動作である。
【図4】ATRACエンコードアルゴリズムのメモリ・
スケジュールである。
スケジュールである。
【図5】図5は従来技術のエンコードプロセスの基本的
タスク・スケジュールである。
タスク・スケジュールである。
【図6】図6はATRACエンコードアルゴリズムのタ
スクのハイレベル結合時の課題を示す図である。
スクのハイレベル結合時の課題を示す図である。
【図7】図7は静的バッファを用いたメモリ割当てを示
す図である。
す図である。
11:入力バッファサイズ(M)を割り付け M=フレームサイズ/チャネル数 12:複合的ハイレベル結合タスクの区分 13:複合的タスクを少なくともXフレーム周期離してス
ケジュールする X=1フレーム周期/チャネル数 14:タスクの割当と再順序化
ケジュールする X=1フレーム周期/チャネル数 14:タスクの割当と再順序化
Claims (3)
- 【請求項1】一定数の新しい入力データサンプルを使用
する特定の機能を有して出力データサンプルを生成する
またはタスクの入力、出力のデータをそれぞれ制御する
処理タスクをスケジュールする方法であって、 i) タスクを指定して区割し、 ii) プロセッサのタスクを順序化して割当て、 iii) 呼び出したタスクにメモリを割り当てるステップ
を備えたことを特徴とするATRAC用リアルタイム・
タスクのスケジュール方法。 - 【請求項2】同一アルゴリズムを使用した2つないしそ
れ以上のチャネルの処理が必要となる音声アプリケーシ
ョンでのタスク間の複合性と結合を削減するスケジュー
ル方法であって、 i) 前記フレームの[(フレーム当りのサンプル数)/
(Nチャネル)]のバッファサイズを割当て、 ii) 2つないしそれ以上の複合し高度に結合したタス
クを区割し、 iii) 少なくとも(Nチャネルのフレーム当りの処理時
間)/N区間により後続のチャネルの処理タスクを実行
し、 iv) 実現するアルゴリズムの主流部をエミュレートす
るためにタスクを再順序化し、タスクをホストプロセッ
サに割り当てる、 各ステップを備えた請求項1記載のATRAC用リアル
タイム・タスクのスケジュール方法。 - 【請求項3】準動的緩衝手法を適用することで効率的に
呼び出されたタスクのバッファメモリを管理するスケジ
ュール方法であって、 i) 呼び出されたタスクが必要とするN循環バッファを
作成し、 ii) N循環バッファを連結してより大きな循環バッフ
ァを形成し、 iii) 入力、出力ポインタを大きな循環バッファに指定
し、 iv) 入出力ポインタをタスク実行中に更新する、 各ステップを備えた請求項1記載のATRAC用リアル
タイム・タスクのスケジュール方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17000593A JPH0738510A (ja) | 1993-07-09 | 1993-07-09 | Atrac用リアルタイム・タスクのスケジュール方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17000593A JPH0738510A (ja) | 1993-07-09 | 1993-07-09 | Atrac用リアルタイム・タスクのスケジュール方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0738510A true JPH0738510A (ja) | 1995-02-07 |
Family
ID=15896828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17000593A Pending JPH0738510A (ja) | 1993-07-09 | 1993-07-09 | Atrac用リアルタイム・タスクのスケジュール方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0738510A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003081429A1 (fr) * | 2002-03-22 | 2003-10-02 | Toyota Jidosha Kabushiki Kaisha | Procede et dispositif de gestion de taches, procede et dispositif d'evaluation de fonctionnement et programme devant etre evalue |
JP2010063102A (ja) * | 2008-09-04 | 2010-03-18 | Samsung Techwin Co Ltd | 映像処理装置 |
US7900205B2 (en) | 2004-03-31 | 2011-03-01 | Toyota Jidosha Kabushiki Kaisha | System and method for executing selected task based on task management table having at least one task and at least two associated processors |
US8151274B2 (en) | 2003-12-05 | 2012-04-03 | Toyota Jidosha Kabushiki Kaisha | Task management system |
-
1993
- 1993-07-09 JP JP17000593A patent/JPH0738510A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003081429A1 (fr) * | 2002-03-22 | 2003-10-02 | Toyota Jidosha Kabushiki Kaisha | Procede et dispositif de gestion de taches, procede et dispositif d'evaluation de fonctionnement et programme devant etre evalue |
US8589930B2 (en) | 2002-03-22 | 2013-11-19 | Toyota Jidosha Kabushiki Kaisha | Determining whether to execute a new task by deleting task objects of existing tasks |
US8151274B2 (en) | 2003-12-05 | 2012-04-03 | Toyota Jidosha Kabushiki Kaisha | Task management system |
US7900205B2 (en) | 2004-03-31 | 2011-03-01 | Toyota Jidosha Kabushiki Kaisha | System and method for executing selected task based on task management table having at least one task and at least two associated processors |
JP2010063102A (ja) * | 2008-09-04 | 2010-03-18 | Samsung Techwin Co Ltd | 映像処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5640563A (en) | Multi-media computer operating system and method | |
EP1023659B1 (en) | Efficient processing of clustered branch instructions | |
CN1158598C (zh) | 高频流水线分离队列设计 | |
CA2337172C (en) | Method and apparatus for allocating functional units in a multithreaded vliw processor | |
US5974526A (en) | Superscalar RISC instruction scheduling | |
JP2908598B2 (ja) | 情報処理装置 | |
US10545892B2 (en) | Multi-thread processor and its interrupt processing method | |
US20050198476A1 (en) | Parallel multithread processor (PMT) with split contexts | |
KR20010095074A (ko) | 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품, 및 명령어 컴파일링 제품 및 컴파일러 | |
CN101763251B (zh) | 含有译码缓冲装置的多线程的微处理器 | |
US6665791B1 (en) | Method and apparatus for releasing functional units in a multithreaded VLIW processor | |
US7096343B1 (en) | Method and apparatus for splitting packets in multithreaded VLIW processor | |
US7490223B2 (en) | Dynamic resource allocation among master processors that require service from a coprocessor | |
CN117009054B (zh) | 一种simt装置、线程组动态构建方法及处理器 | |
WO2012052775A1 (en) | Data processing systems | |
CN104461471A (zh) | 分簇vliw处理器上统一的指令调度和寄存器分配方法 | |
WO2023062456A1 (en) | Dynamic, low-latency, dependency-aware scheduling on simd-like devices for processing of recurring and non-recurring executions of time-series data | |
JPH0738510A (ja) | Atrac用リアルタイム・タスクのスケジュール方法 | |
JPS63191253A (ja) | キャッシュ記憶の優先順位指定装置 | |
US7457246B2 (en) | Adaptive threads assignment for receiving packets | |
US20020120796A1 (en) | Maintaining remote queue using two counters in transfer controller with hub and ports | |
US5386586A (en) | System and method for construction of lists of deferred service requests | |
EP1115065A2 (en) | Effective channel priority processing for transfer controller with hub and ports | |
RU2198422C2 (ru) | Асинхронная синергическая вычислительная система | |
Lv et al. | A Dynamic Multi-Strategies Scheduling Algorithm for Heterogeneous Computing Systems |