Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter11-4(前半) 6311627 加藤健.

Similar presentations


Presentation on theme: "Chapter11-4(前半) 6311627 加藤健."— Presentation transcript:

1 Chapter11-4(前半) 加藤健

2 4章 システムレベルでの パイプラインの作り方

3 システムレベルでのパイプラインの作り方 エッジ検出アルゴリズムでの先読み → → バイトバッファ配列へのアクセスが必要 パフォーマンスが低下
パイプラインレベルでの並列処理を行う 先読みでは、 劇的にフィルタの実効スループットが向上

4 システムレベルでのパイプラインの作り方 イメージフィルタアルゴリズムをサブプロセスへ分割 フィルタの複雑さが軽減
アルゴリズムのパフォーマンスが改善 そこで

5 システムレベルでのパイプラインの作り方 パイプラインの動作は7章で説明したものと ほぼ同様(今回は高レベル)
  ほぼ同様(今回は高レベル) パイプラインはプログラマにより設計される  (コンパイラにより自動的に生成されない) 並行処理を行う際

6 システムレベルでのパイプラインの作り方 エッジ検出の実装には各ピクセルを処理するために3×3のウインドウが必要
本書のアルゴリズムでは、上流のプロセスが3つのストリームとしてウインドウを生成 バイトバッファとそれに対応する 循環バッファのオーバーヘッドが不要に 実装のおはなし

7 システムレベルでのパイプラインの作り方 画像データをco_memory_readblockを使用してイメージバッファからロード。その後co_stream_writeを使用して24ビットのピクセルのストリームに変換 ジェネレータによりウインドウの各列を表すストリームを生成する。 4つのプロセスのパイプライン

8 システムレベルでのパイプラインの作り方 3つのピクセルデータは中央のピクセルの値を計算するために使われる。
  この値はco_stream_writeからストリーミングされる 4. co_stream_readを使用して結果のピクセルデータを呼び出し、co_memory_writeblockを使用して新しいイメージバッファに格納

9 システムレベルでのパイプラインの作り方 4つのプロセスはパイプラインにより並列で動作 リアルタイム動画処理に十分な速さを実現
4つのプロセスはパイプラインにより並列で動作 リアルタイム動画処理に十分な速さを実現 2クロックサイクルの速度で 処理されたピクセルを生成可能

10 DMAの入力プロセス これまでのアルゴリズムでは入出力画像が 保存されているかを無視していた
  保存されているかを無視していた 実際は、外部RAMやハードウェアインターフェイスを介して入出力される Impulse C は大量のデータを移動するための ストリームと、共有メモリのメカニズムを提供している DMA=ダイレクトメモリアクセス(CPUを介さないで直接データ転送)

11 DMAの入力プロセス これまでの例ではストリームを使用 選択決定の要因はプラットフォーム固有 留意する点は4つ 特定のアプリケーションでは
共有メモリを使用するとパフォーマンスが向上

12 DMAの入力プロセス 各ストリームの処理に何サイクル必要か プロセッサが転送に関わっているかとCPUとバスの組み合わせに依存
バスがストリーム上でデータを受信する際、ポーリングすると、大幅なオーバーヘッドが発生

13 DMAの入力プロセス メモリ転送のために何サイクル必要か 1と同様に使用されているメモリとバスのアーキテクチャに依存している
サイクル=クロック数

14 DMAの入力プロセス 3-1. CPUがキャッシュを持っているか 3-2. そのデータはキャッシュに存在するか

15 DMAの入力プロセス 4. Impulse Cのハードウェアのプロセスと 同じバス上のメモリか
  同じバス上のメモリか そうであるなら、CPUへのアクセス競合をおこし、パフォーマンスが低下する

16 DMAの入力プロセス 4章においてベンチマークの例を用いてこれらの問題について議論した
今回はストリーミングデータを用いるアプローチと共有メモリを用いるアプローチの比較実験のためにNiosⅡが埋め込まれたAlteraのStratix FPGAを使用

17 DMAの入力プロセス NiosⅡが埋め込まれたAlteraのStratix FPGAはストリームよりもDMA転送を使用したほうが効率的なFPGA 他のプラットフォームにおいてXilinxのMicroBlazeプロセッサとFSLバスを使用するとDMA転送より高速なパフォーマンスになることもある

18 DMAの入力プロセス DMAを用いた共有メモリとのアクセスはハードウェアが転送中、別の処理を行うと転送がブロックされる欠点がある
画像データを読み込み、データストリームから送信することがパイプラインの第一プロセス データ転送が計算とオーバーラップできるように 共有メモリ操作を処理するためのプロセスを含む必要がある 第一プロセスです。で、このページは終わる

19 DMAの入力プロセス 図11‐9からわかること to_streamプロセスは co_signal go co_memory imgmem
co_stream output_stream の3要素を持つ 11-9を参照しつつ説明

20 DMAの入力プロセス 2. プロセス実行機能では、それぞれ
2. プロセス実行機能では、それぞれ co_memory_readblock関数は共有メモリからのピクセルデータの読み取り co_stream_write関数は出力ストリームへの書き込みを行う co_signalはCPUと同期し、画像メモリの処理準備ができているかを確認  を行っている。

21 DMAの入力プロセス 3. 24bitのデータを受け入れるように設計されているため16bitのピクセルデータを受理する
3.  24bitのデータを受け入れるように設計されているため16bitのピクセルデータを受理する 画像データは16bit符合なし整数として格納するが32bitのメモリが使用されている DMAは配列に1つずつ要素を転送することで、倍のバストランザクションを必要とする バストランザクション=バスによるデータ転送において、データ転送に関わる細かい情報を省略してデータ転送動作を記述した物

22 DMAの入力プロセス これらのプロセスは多くの種類の入力ソースと共に使用できるように変更する、あるいは手製のハードウェアブロックに置き換えることが可能


Download ppt "Chapter11-4(前半) 6311627 加藤健."

Similar presentations


Ads by Google