Your SlideShare is downloading. ×
0
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
OSC Tokyo 2013/Fall
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

OSC Tokyo 2013/Fall

447

Published on

Opensource conference Tokyo 2013/Fall …

Opensource conference Tokyo 2013/Fall

Talk about Opensource SoC(System on Chip) on FPGA

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
447
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. FPGA上でのオープンソースSoC (System on Chip)の構築 栗元憲一 http:/ /k2-garage.com 13年10月21日月曜日
  • 2. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ 13年10月21日月曜日
  • 3. 自己紹介 SoC カスタムデータパスハードマクロ static timing analyzer 大学院で論理合成アルゴリズム研究 SoCの物理実装 不揮発メモリ開発 トランジスタばらつき測定システム 物理実装とCSを十数年やってました。 13年10月21日月曜日
  • 4. android + hardware http:/ /k2-garage.com 13年10月21日月曜日
  • 5. 書籍出版しました テーマ ソフトウェア処理で重たい部分をハードウェア化 して高速化する手法を学ぶ 実習書です。 対象読者 SoC開発のエッセンスを学びたい人 13年10月21日月曜日
  • 6. 概要 LAN上にあるサーバからmotionJPEGファイルをスト リーミング。FPGA上のSoCで動画表示 このようなSoCを開発することでSoC開発のエッセン ス(ソフト処理をハード処理にすることで高速化する) を学習します。 13年10月21日月曜日
  • 7. こんな感じのSoCをFPGA上で動かします 13年10月21日月曜日
  • 8. 開発フロー ソフトウェア処理をハードウェ ア処理に変更することでfpsが向 上。 ハードウェア処理が何故高速な のかを学習。 13年10月21日月曜日
  • 9. 予備知識: memory DRAM SRAM 面積   小       大 速度   遅       速 製造   専用 13年10月21日月曜日 標準logic
  • 10. 予備知識: FPGA 4∼6入力のSRAMの メモリの中の値と 接続を変更することで 任意のlogicを実現 FPGA内部構造 HDLを全く別の 方法で動作させます。 13年10月21日月曜日
  • 11. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ 13年10月21日月曜日
  • 12. JPEG decode Algorithmの主な構造 huffman decode 量子化を戻す 2D-DCT変換 YCbCr-RGB変換 13年10月21日月曜日
  • 13. 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日月曜日
  • 14. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ 13年10月21日月曜日
  • 15. FPGA上にSoCを実現! 13年10月21日月曜日
  • 16. 開発するSoC SPARC V8 CPU, AHB・APBバス, ethernet mac...... 13年10月21日月曜日
  • 17. 最初にFPGA上にSoCをインプリ Linuxをブートしてソフトウェアのみで システムを動作させる。 13年10月21日月曜日
  • 18. aeroflex gaisler社からGPLライセンスのSoCが 公開されていて、前出の図からjpegモジュールを除 いたSoCが40種類ぐらいのボードでmakeコマンド 一つで実装できます。 この状態でrepositoryに含めてます 13年10月21日月曜日
  • 19. linuxについてもconfigurationさえすれば 動作するsnapgear-linuxが公開されてます。 この状態でrepositoryに含めてます 13年10月21日月曜日
  • 20. jpegソフトウェアについては定評のある IJG(International Jpeg Group)のjpeg library を使用します。 linuxのユーザランドアプリのディレクトリとして repositoryに含めてます 13年10月21日月曜日
  • 21. softもhardもgitで管理 xilinx altera actel ASICでも! 動作します sourceforgeの MJPEG-LEON-FPGA に repositoryがあります。 13年10月21日月曜日
  • 22. Boot! とりあえず、フレームバッファにコンソール出力するとこうな ります。以降はコンソールはUART。 13年10月21日月曜日
  • 23. IJG付属のjpeg表示ソフトを少し変更すると motionJPEG表示できます。 遅い!!!!!! (こんなに小さな画面でもカクカク) (ちなみに動作周波数40MHz) 13年10月21日月曜日
  • 24. ちなみにVGAサイズだと、、、 13年10月21日月曜日
  • 25. 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_mcu 24.19 0.35 0.15 249696 0.00 0.00 jpeg_idct_islow 20.97 0.48 0.13 2448 0.05 0.05 ycc_rgb_convert 8.06 0.53 0.05 1722390 0.00 0.00 jpeg_fill_bit_buffer 8.06 0.58 0.05 1 50.00 50.00 finish_output_bmp 3.23 0.60 0.02 2448 0.01 0.01 put_pixel_rows 1.61 0.61 0.01 236866 0.00 0.00 jpeg_huff_decode 1.61 0.62 0.01 4896 0.00 0.00 h2v1_fancy_upsample 0.00 0.62 0.00 62424 0.00 0.00 jzero_far huffman decode, idct, YCbCr-RGB変換が占める 13年10月21日月曜日
  • 26. software処理でデータはどう流れる? (1) IU,cache,MMU 13年10月21日月曜日
  • 27. software処理でデータはどう流れる? (3) cache miss とMMU 13年10月21日月曜日
  • 28. software処理でデータはどう流れる? (2) cache miss とMMU 13年10月21日月曜日
  • 29. software処理でデータはどう流れる? (4) framebuffer出力も同時動作 memory controllerの入り口もかなり厳しい 13年10月21日月曜日
  • 30. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ 13年10月21日月曜日
  • 31. 以下の様な要素技術をマスター ・IPコア設計 ・AMBAバスの理解とインターフェース設計 ・デバイスドライバ開発 13年10月21日月曜日 (この発表ではふれません)
  • 32. AMBA busにつながるIPコア YCbCr -RGB 13年10月21日月曜日
  • 33. YCbCr-RGB演算をハード化 R=Y + 1.40200(Cr-128) G = Y -0.34414(Cb-128) - 0.71414(Cr-128) B = Y +1.77200(Cb-128) hardwareは並行動作可能 動作周波数を満たす限り直列接続可能 13年10月21日月曜日
  • 34. 他にも考慮しないといけないものがある BUS 13年10月21日月曜日
  • 35. Busって何? (1) busにつながるコアには マスタとスレーブの2種 類ある いつキャッシュミスが起きるかは Hardware設計時にも分からないし、アプリケーション開発時にも分からない 13年10月21日月曜日
  • 36. Busって何? (2) bus上にマスタは複数あって要求が出るタイミングは 分からないので当然ぶつかる 13年10月21日月曜日
  • 37. Busって何? (3) アービタが交通整理をしている 13年10月21日月曜日
  • 38. Busって何? (4) どのようなタイミングで要求や応答が起きても 正しく動くように構造やプロトコルを規定したもの 13年10月21日月曜日
  • 39. YCbCr-RGBコア概要設計 processorから書き込まれるslave interfaceと SDRAM上のframe bufferに書き込むmaster interface 両方を持ちます 13年10月21日月曜日
  • 40. 実行すると 殆どfps変わらない!? 13年10月21日月曜日
  • 41. CPU使用時間の変化 13年10月21日月曜日
  • 42. データの流れ huffman, DCTは同じ 13年10月21日月曜日
  • 43. データの流れ YCbCr-RGB変換はハード この時huffman, DCTが並行動作に注意 13年10月21日月曜日
  • 44. データの流れ RGB信号は出し続ける 13年10月21日月曜日
  • 45. データの流れ 13年10月21日月曜日
  • 46. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. エクストリームなおまけ 13年10月21日月曜日
  • 47. huffman, dctもhardware化 FIFOやダブルバッファで接続 ハンドシェークで連携 13年10月21日月曜日
  • 48. 再生! ソフト処理より遥かに大きな画面サイズで 動画再生 13年10月21日月曜日
  • 49. fpsが上がる理由 13年10月21日月曜日
  • 50. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ 13年10月21日月曜日
  • 51. まとめ(1) 13年10月21日月曜日
  • 52. まとめ(2) 13年10月21日月曜日
  • 53. Agenda introduction 1. 発表概要 & 予備知識 main 2. JPEGアルゴリズム 3. softwareのみでmotionJPEG再生 4. 一部処理をhardware化 5. JPEG処理をhardware化 6. まとめ 7. おまけ 13年10月21日月曜日
  • 54. softwareに対するFPGAの優位性 ・ハードウェア処理の方が圧倒的な低クロ ック数で処理可能 ・バスボトルネックに対して対応したシス テム構造を組める 13年10月21日月曜日
  • 55. FPGA vs ASIC pros  開発コスト・期間短い  少量の場合安価  動作時書き換え可能 cons 処理能力 ASIC >>> FPGA 消費電力大 大量の場合コストでASICに負ける 13年10月21日月曜日
  • 56. 以上のような条件の中でFPGAに合ったマーケットは? 最近話題になっているのは金融HFT FPGAを搭載したレイヤ7スイッチで 演算をして答えを返す ->低レイテンシの実現 13年10月21日月曜日
  • 57. lambda architecture real-time stream processing rule化 ・real-timeで大量のデータ入出力 ・rule自体が変化成長していく 13年10月21日月曜日 database
  • 58. fin 13年10月21日月曜日

×