OSC Tokyo 2013/Fall
-
Upload
kenichi-kurimoto -
Category
Documents
-
view
442 -
download
1
description
Transcript of OSC Tokyo 2013/Fall
栗元憲一http://k2-garage.com
FPGA上でのオープンソースSoC(System on Chip)の構築
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ
13年10月21日月曜日
自己紹介
SoCカスタムデータパスハードマクロ
static timing analyzer大学院で論理合成アルゴリズム研究
SoCの物理実装不揮発メモリ開発
トランジスタばらつき測定システム
物理実装とCSを十数年やってました。
13年10月21日月曜日
書籍出版しました
テーマソフトウェア処理で重たい部分をハードウェア化して高速化する手法を学ぶ
実習書です。
対象読者
SoC開発のエッセンスを学びたい人
13年10月21日月曜日
概要
LAN上にあるサーバからmotionJPEGファイルをストリーミング。FPGA上のSoCで動画表示
このようなSoCを開発することでSoC開発のエッセンス(ソフト処理をハード処理にすることで高速化する)を学習します。
13年10月21日月曜日
こんな感じのSoCをFPGA上で動かします
13年10月21日月曜日
開発フロー
ソフトウェア処理をハードウェア処理に変更することでfpsが向上。ハードウェア処理が何故高速なのかを学習。
13年10月21日月曜日
予備知識: memory
SRAMDRAM
面積 小 大速度 遅 速製造 専用 標準logic
13年10月21日月曜日
予備知識: FPGA
FPGA内部構造HDLを全く別の
方法で動作させます。
4~6入力のSRAMのメモリの中の値と接続を変更することで任意のlogicを実現
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ
13年10月21日月曜日
JPEG decode Algorithmの主な構造
huffman decode
量子化を戻す
2D-DCT変換
YCbCr-RGB変換
13年10月21日月曜日
YCbCr-RGB変換
R = Y + 1.40200(Cr-128)G = Y -0.34414(Cb-128) - 0.71414(Cr-128)B = Y +1.77200(Cb-128)
単なる色空間の変換演算です!今日はここにFocus!
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ
13年10月21日月曜日
FPGA上にSoCを実現!
13年10月21日月曜日
開発するSoC
SPARC V8 CPU, AHB・APBバス, ethernet mac......
13年10月21日月曜日
最初にFPGA上にSoCをインプリLinuxをブートしてソフトウェアのみで
システムを動作させる。
13年10月21日月曜日
aeroflex gaisler社からGPLライセンスのSoCが公開されていて、前出の図からjpegモジュールを除いたSoCが40種類ぐらいのボードでmakeコマンド一つで実装できます。
この状態でrepositoryに含めてます
13年10月21日月曜日
linuxについてもconfigurationさえすれば動作するsnapgear-linuxが公開されてます。
この状態でrepositoryに含めてます
13年10月21日月曜日
jpegソフトウェアについては定評のあるIJG(International Jpeg Group)のjpeg library
を使用します。
linuxのユーザランドアプリのディレクトリとしてrepositoryに含めてます
13年10月21日月曜日
softもhardもgitで管理
sourceforgeの MJPEG-LEON-FPGA にrepositoryがあります。
xilinxalteraactel
ASICでも!動作します
13年10月21日月曜日
Boot!
とりあえず、フレームバッファにコンソール出力するとこうなります。以降はコンソールはUART。
13年10月21日月曜日
IJG付属のjpeg表示ソフトを少し変更するとmotionJPEG表示できます。
遅い!!!!!! (こんなに小さな画面でもカクカク)
(ちなみに動作周波数40MHz)13年10月21日月曜日
ちなみにVGAサイズだと、、、
13年10月21日月曜日
gprofを用いて処理時間を測定
Each sample counts as 0.01 seconds.% cumulative self self total time seconds seconds calls ms/call ms/call name 32.26 0.20 0.20 62424 0.00 0.00 decode_mcu24.19 0.35 0.15 249696 0.00 0.00 jpeg_idct_islow20.97 0.48 0.13 2448 0.05 0.05 ycc_rgb_convert8.06 0.53 0.05 1722390 0.00 0.00 jpeg_fill_bit_buffer8.06 0.58 0.05 1 50.00 50.00 finish_output_bmp3.23 0.60 0.02 2448 0.01 0.01 put_pixel_rows1.61 0.61 0.01 236866 0.00 0.00 jpeg_huff_decode1.61 0.62 0.01 4896 0.00 0.00 h2v1_fancy_upsample0.00 0.62 0.00 62424 0.00 0.00 jzero_far
huffman decode, idct, YCbCr-RGB変換が占める
13年10月21日月曜日
software処理でデータはどう流れる? (1)
IU,cache,MMU
13年10月21日月曜日
software処理でデータはどう流れる? (3)
cache miss とMMU13年10月21日月曜日
software処理でデータはどう流れる? (2)
cache miss とMMU13年10月21日月曜日
software処理でデータはどう流れる? (4)
framebuffer出力も同時動作memory controllerの入り口もかなり厳しい
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ
13年10月21日月曜日
以下の様な要素技術をマスター
・IPコア設計・AMBAバスの理解とインターフェース設計・デバイスドライバ開発 (この発表ではふれません)
13年10月21日月曜日
AMBA busにつながるIPコア
YCbCr-RGB
13年10月21日月曜日
YCbCr-RGB演算をハード化
hardwareは並行動作可能動作周波数を満たす限り直列接続可能
R = Y + 1.40200(Cr-128)G = Y -0.34414(Cb-128) - 0.71414(Cr-128)B = Y +1.77200(Cb-128)
13年10月21日月曜日
他にも考慮しないといけないものがある
BUS
13年10月21日月曜日
Busって何? (1)
いつキャッシュミスが起きるかはHardware設計時にも分からないし、アプリケーション開発時にも分からない
busにつながるコアにはマスタとスレーブの2種類ある
13年10月21日月曜日
Busって何? (2)
bus上にマスタは複数あって要求が出るタイミングは分からないので当然ぶつかる
13年10月21日月曜日
Busって何? (3)
アービタが交通整理をしている
13年10月21日月曜日
Busって何? (4)
どのようなタイミングで要求や応答が起きても正しく動くように構造やプロトコルを規定したもの
13年10月21日月曜日
YCbCr-RGBコア概要設計
processorから書き込まれるslave interfaceとSDRAM上のframe bufferに書き込むmaster interface
両方を持ちます
13年10月21日月曜日
実行すると
殆どfps変わらない!?
13年10月21日月曜日
CPU使用時間の変化
13年10月21日月曜日
データの流れ
huffman, DCTは同じ13年10月21日月曜日
データの流れ
YCbCr-RGB変換はハードこの時huffman, DCTが並行動作に注意
13年10月21日月曜日
データの流れ
RGB信号は出し続ける13年10月21日月曜日
データの流れ
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ
13年10月21日月曜日
huffman, dctもhardware化
FIFOやダブルバッファで接続ハンドシェークで連携
13年10月21日月曜日
再生!
ソフト処理より遥かに大きな画面サイズで動画再生
13年10月21日月曜日
fpsが上がる理由
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ
13年10月21日月曜日
まとめ(1)
13年10月21日月曜日
まとめ(2)
13年10月21日月曜日
Agenda
introduction 1. 発表概要 & 予備知識main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ
13年10月21日月曜日
softwareに対するFPGAの優位性
・ハードウェア処理の方が圧倒的な低クロック数で処理可能
・バスボトルネックに対して対応したシステム構造を組める
13年10月21日月曜日
FPGA vs ASICpros 開発コスト・期間短い 少量の場合安価 動作時書き換え可能
cons 処理能力 ASIC >>> FPGA
消費電力大 大量の場合コストでASICに負ける
13年10月21日月曜日
以上のような条件の中でFPGAに合ったマーケットは?
最近話題になっているのは金融HFT
FPGAを搭載したレイヤ7スイッチで演算をして答えを返す
->低レイテンシの実現13年10月21日月曜日
real-timestream
processingdatabase
rule化
・real-timeで大量のデータ入出力・rule自体が変化成長していく
lambda architecture
13年10月21日月曜日
fin
13年10月21日月曜日