OSC Tokyo 2013/Fall
Upcoming SlideShare
Loading in...5
×
 

OSC Tokyo 2013/Fall

on

  • 453 views

Opensource conference Tokyo 2013/Fall

Opensource conference Tokyo 2013/Fall

Talk about Opensource SoC(System on Chip) on FPGA

Statistics

Views

Total Views
453
Views on SlideShare
453
Embed Views
0

Actions

Likes
4
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OSC Tokyo 2013/Fall OSC Tokyo 2013/Fall Presentation Transcript

  • FPGA上でのオープンソースSoC (System on Chip)の構築 栗元憲一 http:/ /k2-garage.com 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日月曜日
  • android + hardware http:/ /k2-garage.com 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 DRAM SRAM 面積   小       大 速度   遅       速 製造   専用 13年10月21日月曜日 標準logic
  • 予備知識: FPGA 4∼6入力のSRAMの メモリの中の値と 接続を変更することで 任意のlogicを実現 FPGA内部構造 HDLを全く別の 方法で動作させます。 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で管理 xilinx altera actel ASICでも! 動作します sourceforgeの MJPEG-LEON-FPGA に repositoryがあります。 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_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日月曜日
  • software処理でデータはどう流れる? (1) IU,cache,MMU 13年10月21日月曜日
  • software処理でデータはどう流れる? (3) cache miss とMMU 13年10月21日月曜日
  • software処理でデータはどう流れる? (2) cache miss とMMU 13年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演算をハード化 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日月曜日
  • 他にも考慮しないといけないものがある BUS 13年10月21日月曜日
  • Busって何? (1) busにつながるコアには マスタとスレーブの2種 類ある いつキャッシュミスが起きるかは Hardware設計時にも分からないし、アプリケーション開発時にも分からない 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 ASIC pros  開発コスト・期間短い  少量の場合安価  動作時書き換え可能 cons 処理能力 ASIC >>> FPGA 消費電力大 大量の場合コストでASICに負ける 13年10月21日月曜日
  • 以上のような条件の中でFPGAに合ったマーケットは? 最近話題になっているのは金融HFT FPGAを搭載したレイヤ7スイッチで 演算をして答えを返す ->低レイテンシの実現 13年10月21日月曜日
  • lambda architecture real-time stream processing rule化 ・real-timeで大量のデータ入出力 ・rule自体が変化成長していく 13年10月21日月曜日 database
  • fin 13年10月21日月曜日