Submit Search
Upload
20140310 fpgax
•
Download as PPT, PDF
•
8 likes
•
4,613 views
F
funadasatoshi
Follow
FPGA exstream computing #5 About the fpga based HTTP proxy cache server 'freeocean.'
Read less
Read more
Technology
Report
Share
Report
Share
1 of 31
Download now
Recommended
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
なおき きしだ
FPGAって、何?
FPGAって、何?
Toyohiko Komatsu
Gpu vs fpga
Gpu vs fpga
Yukitaka Takemura
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
なおき きしだ
FPGA
FPGA
firewood
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
Shinya Takamaeda-Y
Myoshimi extreme
Myoshimi extreme
Masato Yoshimi
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
Recommended
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
なおき きしだ
FPGAって、何?
FPGAって、何?
Toyohiko Komatsu
Gpu vs fpga
Gpu vs fpga
Yukitaka Takemura
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
なおき きしだ
FPGA
FPGA
firewood
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
Shinya Takamaeda-Y
Myoshimi extreme
Myoshimi extreme
Masato Yoshimi
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
Shinya Takamaeda-Y
FPGAX6_hayashi
FPGAX6_hayashi
愛美 林
FPGAことはじめ
FPGAことはじめ
Takahiro Nakayama
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
Shinya Takamaeda-Y
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
Takefumi MIYOSHI
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Shinya Takamaeda-Y
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Shinya Takamaeda-Y
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
Shinya Takamaeda-Y
Pynq祭り資料
Pynq祭り資料
一路 川染
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
Shinya Takamaeda-Y
高速シリアル通信を支える技術
高速シリアル通信を支える技術
Natsutani Minoru
Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門
Shinya Takamaeda-Y
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
ryos36
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
marsee101
ICD/CPSY 201412
ICD/CPSY 201412
Takefumi MIYOSHI
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
Hiroki Nakahara
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
Shotaro Uchida
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
Takefumi MIYOSHI
More Related Content
What's hot
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
Shinya Takamaeda-Y
FPGAX6_hayashi
FPGAX6_hayashi
愛美 林
FPGAことはじめ
FPGAことはじめ
Takahiro Nakayama
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
Shinya Takamaeda-Y
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
Takefumi MIYOSHI
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Shinya Takamaeda-Y
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Shinya Takamaeda-Y
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
Shinya Takamaeda-Y
Pynq祭り資料
Pynq祭り資料
一路 川染
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
Shinya Takamaeda-Y
高速シリアル通信を支える技術
高速シリアル通信を支える技術
Natsutani Minoru
Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門
Shinya Takamaeda-Y
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
ryos36
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
marsee101
ICD/CPSY 201412
ICD/CPSY 201412
Takefumi MIYOSHI
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
Hiroki Nakahara
What's hot
(20)
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
FPGAX6_hayashi
FPGAX6_hayashi
FPGAことはじめ
FPGAことはじめ
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
Pynq祭り資料
Pynq祭り資料
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
高速シリアル通信を支える技術
高速シリアル通信を支える技術
Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
ICD/CPSY 201412
ICD/CPSY 201412
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
Similar to 20140310 fpgax
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
Shotaro Uchida
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
Takefumi MIYOSHI
Fpga local 20130322
Fpga local 20130322
Takefumi MIYOSHI
Kernel vm-2014-05-25
Kernel vm-2014-05-25
Hirochika Asai
SDN Japan: ovs-hw
SDN Japan: ovs-hw
ykuga
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
Deep Learning JP
仮想FPGAクラウド
仮想FPGAクラウド
Eric Fukuda
Boost study14
Boost study14
fjnl
Trema day 1
Trema day 1
ykuga
High speed-pc-router 201505
High speed-pc-router 201505
ykuga
Good Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLO
If_CQ
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Masanobu Saitoh
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
Computational Materials Science Initiative
最近遊んだLinuxボードたち
最近遊んだLinuxボードたち
t n
IPv6技術動向
IPv6技術動向
Shinsuke SUZUKI
201104016 osc2011 kobe
201104016 osc2011 kobe
Yamauchi isamu
WalBの紹介
WalBの紹介
Takashi Hoshino
POWER8ここだけの話
POWER8ここだけの話
IBM Systems @ IBM Japan, Ltd.
IPv6の現状
IPv6の現状
Shinsuke SUZUKI
Similar to 20140310 fpgax
(20)
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
Fpga local 20130322
Fpga local 20130322
Kernel vm-2014-05-25
Kernel vm-2014-05-25
SDN Japan: ovs-hw
SDN Japan: ovs-hw
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
仮想FPGAクラウド
仮想FPGAクラウド
Boost study14
Boost study14
Trema day 1
Trema day 1
High speed-pc-router 201505
High speed-pc-router 201505
Good Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLO
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
最近遊んだLinuxボードたち
最近遊んだLinuxボードたち
IPv6技術動向
IPv6技術動向
201104016 osc2011 kobe
201104016 osc2011 kobe
WalBの紹介
WalBの紹介
POWER8ここだけの話
POWER8ここだけの話
IPv6の現状
IPv6の現状
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
20140310 fpgax
1.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
にネットワーク処理を実装してきた話と、これからの話 • 船田悟史 – 1975 年 1 月 1 日生まれ、栃木県出身 – 東京工業大学情報理工学研究科計算工学専攻でした – 東京工業大学無線研究部でした – 今は、株式会社イーツリーズ・ジャパン 代表取締役社長 • 今日の中身 – FPGA 前夜 – FPGA でWebサーバを作る – FPGA と CPU とイーサネット – FPGA の大変なところ、おもしろいところ – これから何をやりたい?
2.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA前夜 -
TCP/IP を聞いて知る • アマチュア無線を使って TCP/IP 通信 – LinuxPC + TNC(Terminal Node Controller) + アマチュア無線機 • Linux には、 AF_AX25 が実装されています。 – 物理層 : アマチュア無線 430/1200MHz 帯、 1200bps(Bell202) – リンク層 : AX.25( コールサインが MAC アドレス!) – ネットワーク層以上 : TCP/IP, SMTP, NNTP, HTTP… – 音声帯域 (1200Hz と 2200Hz) の2音を使って 1 と 0 を表現 – 音なので、ほかの無線機では、耳で通信の様子が聞こえる – TCP/IP を音で感じることが出来る! • スリーハンドシェーク SYN-SYN/ACK-ACK • パケットロスと、 TCP の再送 • メールの到着が、パケット通信の音でわかる。 • メールが送信されていったのが、音でわかる。 – コンピュータの気持ちがわかる。 • あー、がんばって再送しようとしてるけど、向こう側には聞こえてないんだなー
3.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
前夜 - TCP/IP を実装する (1-1) • TNC-ZZ(1994-1995) – もっと速いインターネット接続をアマチュア無線で実現したい! – イーサネットインターフェースを持った TNC( の一部分) – FreeBSD の NE2000 デバドラのコードを参考に、アセンブラで NE2000 ドライバ を作成 – イーサネット -AX.25 ブリッジとして動作する NE2000 イーサネット Z-80 系 CPU (HD64180S) ISA バス Mbps シリアル インターフェース モデム 変復調 ベースバンド 信号 アマチュア 無線機 担当範囲
4.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
前夜 - TCP/IP を実装する (1-2) – イーサネットの勉強には最適でした。 – 毎回 UV-EPROM を書き換えるのが面倒。 • 紫外線を 20 分くらい当てるとデータが消える ROM • 書き込みにも数分かかる。 – このあと、 BOOTP クライアントと、 TFTP クライアントも実装して、ネットブー トする Z80 システムも作りました。 ( デバッグを早くするため) 出典「 LAN によるハードウェア制御」
5.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
前夜 - TCP/IP を実装する (2) • picudp (1999) – PIC マイコンを使って、 Web サーバを実装した!という人が海外に現れる • 世界最小の Web サーバ • http://www-ccs.cs.umass.edu/shri/iPic.html • まねしてみよう! – TCP は面倒なので、とりあえず UDP のサーバ • インターフェースは RS232C/SLIP • IP アドレス固定 (10.0.0.1) • 1 ビット受信すると、 1 ビット送信する – パケット全体はバッファしない。 • http://sato-www.cs.titech.ac.jp/funada/picudp/ – Ping に答えるバージョン • このあと、 PIC につないだサーミスタの値を UDP で返すように改造した – UDP 温度計サーバ » 実装したものはどっかになくしてしまいました。。
6.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
前夜 - まとめ • TCP/IP, Ethernet 関連のプロトコルを実装してわかったこと。 – 入ってきたものに、 RFC 通りに正しく答えれば、動く! • 実装方法はどうでも構わない。 • たとえ、 – C 言語でも、 – Z-80 アセンブラでも、 – PIC マイコンアセンブラでも、 – きっと FPGAでも。 • たまに RFC どおりではないものもあるが。
7.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGAでWebサーバを作る •
なぜFPGAで作り始めたのか? – Web での申し込みイベントが増えた – そのたびにアクセス集中して、サービスがダウンする – 100倍速いサーバがあればいいんじゃないか? – FPGAで作ったら作れないか? • 最近 10 万ゲートの FPGA が1万円くらいで買える (2000 年時点) • メモリも安くなってきた • CAM という特殊なメモリもある – イーツリーズ・ジャパンでそれやろう! • イーツリーズ・ジャパンの目標 – 100 倍速いサーバを作る。 – サービス事業者に買ってもらう。 – 過程として、上場する、ことを前提に、資金を集める。
8.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGAでWebサーバを作る -
freeocean • Freeocean – HTTP プロキシ型のキャッシュサーバ – 2006 年発売 – 50 万同時 TCP コネクション – 出力帯域 1Gbps – キャッシュ容量 最大 32GByte – Name based のバーチャルホスト対応 – Hot-Hot の冗長構成対応 – IP アドレス単位、コネクション単位のトラフィックコントロール – アクセスログ出力
9.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGAでWebサーバを作る •
どうやって作る? – とにかく FPGA と、 Ethernet の PHY LSI を買う – データシートを読む – 基板をつくって、半田付けする – イーサネットパケットを受信してみる • ロジックアナライザで波形が見えればOK! • 見えた! – そのまま折り返しで、送信してみる • ping と tcpdump • PC側で送ったパケットと同じものが帰ってきた! • 物理層OK – イーサネットフレームを解析して、 • ARP リプライのフレームを作る回路を作る • さきほどの送信回路につなぐ • ARP 解決できた! – IP と ICMP のヘッダ解析回路を作る • ICMP応答ヘッダをつくる。データ部分はそのまま折り返す。 • IPヘッダを生成する。 • チェックサムがなかなか合わない。 • 送信回路につなぐ • ICMP Echo Request に、FPGAが答えた!( 2001 年 3 月 )
10.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGAでWebサーバを作る •
ICMP echo reply まで作れれば、あとはひたすら TCP と HTTP とファイルシ ステムをつくっていけばよい。 • 「。。。つくっていけばよい」ってそれほど簡単じゃない。 • この時点で、回路のパターン、法則性が見えてきた。 – デザインパターンのようなもの? • すべて扱うものはパケット – パケットが入ってきて、パケットが出て行く。 • ソフトウェアでの実装 (OS のなか)も同じ構造。 – ip_input(), ip_output(), tcp_input() など • 回路もそう作ればよい。 – パケットが入ってきて、 – そのパケットのヘッダやデータに対して、計算や処理をして、 – パケットを出す – 、、、の繰り返し。
11.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
でWebサーバを作る • UPL処理回路 – 入力を受けて、処理をして、出力する。 – 入力は1つだけ。 • 複数あると、検証のときの、入力パターンの組み合わせが爆発して大変 受信 FSM 処理 FSM 起動 送信 FSM 起動 パケットバッファ メモリ ヘッダ レジスタ ヘッダ レジスタ 処理 ロジック 入力パケット 出力パケット
12.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
でWebサーバを作る • UPLってなに? – Universal Protocol Line • なんでもパケットが通せる伝送路 – フロー制御付き の 片方向 の データ伝送路 • だたそれだけ。 • フロー制御はあったほうがよい – 例 • 32bit のデータ信号線+イネーブル信号+フロー制御信号(次スライド) • RS232C、パラレルポート • USB • イーサネットや、UDPや、TCPでもいい。 • RMIでもいい。
13.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
でWebサーバを作る – 具体的な実装例 • 32bit パラレルな UPL 伝送路 – FPGA 内部で使う http://e-trees.jp/index.php/製品/UPLとは より転載
14.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバをつくる - UPL 処理モジュール回路合成系 • パケットの送受信部やステートマシンの定型部を書くのが面倒 • 同じ部分は、スクリプトで合成しましょう – gene_uplmodule.awk .awk です。
15.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバを作る - gene_uplmodule @ENTITY add_sub_module @RECV 0 input 32 Command, 32 a, 32 b, 32 @END @SEND 0 output 32 Result, 32 x, 32 @END @STAGE add_sub_module @SENSE command, a, b @SUBST x if( command(7 downto 0) = X”00” ) then -- add value_x <= value_a + value_b; else -- sub value_x <= value_a – value_b; end if; @TO resut_output; @END @STAGE result_output @SUBST result result <= X”00”; -- success @SEND output; @END Add_sub_module.vhd 受信 Add_sub_module Result_output 送信 Reset 入力 UPL 出力 UPL command a b result z
16.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
でWebサーバを作る - UPL ユーティリティー回路ライブラリ群 • パケット合流回路 – さすがにすべての回路が1入力というわけにはいかない。 – 前提:データはいじらない – パケット経路として、複数を1つにまとめる。 受信 FSM 送信 FSM パケットバッファ メモリ 入力パケット 出力パケット 受信 FSM パケットバッファ メモリ 入力パケット 受信 FSM パケットバッファ メモリ 入力パケット アービタ
17.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバをつくる - UPLの利点と欠点 • 利点 – 回路同士が「電気的に」疎結合である • 個々の回路モジュールで動作検証ができれば、全体でも動く • 配置配線もしやすい – 回路同士がパケットインターフェースである • パケットでデータを捉えることが出来る • UDP パケットにカプセル化して、外部に取り出しやすい – Tcpdump で、回路のデバッグが出来る • デバイス分割がやりやすい。 – FPGA間にパケットのインターフェースがあれば、とりあえずデバイス跨ぎができる。 • 欠点 – パケットに入りきらない情報の扱いが面倒 • 大きなデータはパケットに分割しないといけない
18.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバを作る - モジュール構成 TCP/IP (v4/v6) TCP/IP (v4/v6) HTTPHTTP帯域制御帯域制御 IP フィルタIP フィルタ コンテンツメモリ ファイルシステム コンテンツメモリ ファイルシステム キャッシュ 制御 キャッシュ 制御 コンテンツ 鮮度管理 コンテンツ 鮮度管理 負荷分散負荷分散 冗長化 負荷分散 冗長化 負荷分散 TCP ポート転送 TCP ポート転送 ユーザ インターフェース ユーザ インターフェース システムマネジメント ( SNMP,syslog) システムマネジメント ( SNMP,syslog) アクセス ログ出力 アクセス ログ出力 透過 フィルタ 透過 フィルタ URL リライト URL リライト Web Application Firewall Web Application Firewall バーチャル ホスト バーチャル ホスト クライアント Web アプリケーション サーバ Web アプリケーション サーバ ハードウェア部 ソフトウェア部 コンテンツ アップデート コンテンツ アップデート キャッシュ ルール キャッシュ ルール インターネット側からのアクセスを すべてハードウェアにて高速処理 オリジンサーバアクセスを ソフトウェアにより高機能化 イーサネット
19.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバを作る - 内部構成 Ethernet 、 IPv4/v6 TCP/Socket HTTP File System Cache Manager Power supply
20.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバを作る - で、もうかってまっかー? • 某通信事業者様の配信サーバ – ウィルス対策ソフトウェアとパターンファイルを配信 • アイテック阪急阪神様 – 「バーストアクセス対応WEBサービス」 – http://www.itechh.ne.jp/related/burst.html • 社内では、 – 東日本大震災のときの、放射線量情報のキャッシュ配信 – JAXA のロケットや人工衛星打ち上げのイベントの生中継 • お試しいただける装置がありますので、ぜひご活用ください。
21.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバを作る - 苦労したところ • TATが長い – 1回が約2時間 • コンパイル (HDL 解析、 RTL 合成、 P&R 、 bitgen) がとにかく遅い • 一行でも、パラメータだけでも変えると、全体コンパイル – ソフトウェア業界と比べて、非常に遅れている。 – デバッグ、機能改善・追加に時間がかかる • デバッグモジュールの活用、 Tcpdump ベースのデバッグ • 物を作るのはお金がかかる – 設計委託、製造委託で 2000 万円 • タイミングエラーは出てちゃ駄目 – これ、ちゃんと動かすための大前提です • タスクマネージャ、タイマー等の集中管理部は作るのが大変 – 512k connection x 8timer = 4M timer の管理
22.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGA
で Web サーバをつくる - IPコア販売 • IPコア事業始めました – ハードウェアはお金がかかる – ノウハウをお安く提供します • e7cores (Xilinx 用です) – e7ether (10/100M, 1G, 10G ) PHY とのインターフェース、イーサフレーム送受 信 – e7udpip (10/100M, 1G, 10G) UDP パケット送受信、 ARP/ICMP – e7tcpip TCP サーバ機能、 TCP クライアント機能 ( 開発中) – e7pcie (Gen1, Gen2) GPIO 機能、 DMA インターフェース機能、 PC のメモリを FPGA から UPL でアクセス可能 – e7memiface MIG のコアを使って、 UPL でメモリアクセスを提供 – e7sata UPL で HDD/SSD に、メモリアクセスと同じようにアクセス ( 開発中 ) – e7lvdsiface (Spartan6, 7 シリーズ ) LVDS で 937Mbps/pair の UPL 経路を提供
23.
014/3/10 FPGA エクストリーム・コンピューティング第5回 10GbE
の取り組み • 10GBASE-R 系は、 FPGA の高速トランシーバで対応可能 – Xilinx Vertex7, Kintex7 – Altera Stratix V, Arria V – 10GBASE-T は、外付け PHYLSI が必要 • Xilinx は、 PCS/PMA は無料でライブラリ提供、 MAC は有償ライブラリ。 • Altera は、 PCS/PMA, MAC ともに有償ライブラリ。 • e7cores では、 Xilinx 用には MAC コアを販売可能です。
24.
014/3/10 FPGA エクストリーム・コンピューティング第5回 10GbE
への取り組み - 10G はここが大変 • ビットレートが高い – GbE では、 8bit 125MHz – 10GbE では、 64bit 156.25MHz • フレーム間ギャップが短い – GbE では、 12clock あった – 10GbE では、 1clock しかない • FIFO への制御をぎりぎりまで切り詰めないと難しい • CRC計算が大変 – GbE では普通に LUT で CRC 計算できた – 10GbE では、ビットスライスする方式が必要 – きっと、 40G,100G では、ハードマクロが必要だろう • Altera は、すでに V シリーズで、ハードウェアで CRC 計算をサポートしている。
25.
014/3/10 FPGA エクストリーム・コンピューティング第5回 10GbEへの取り組み - UDPエコーの動作 10GbE ペイロードサイズ 2524
cycle (12.620u 秒 ) 251 cycle (1.255u 秒 )
26.
014/3/10 FPGA エクストリーム・コンピューティング第5回 これから何をやりたい? •
ハードウェアは何かとコストがかかる – これを低減する工夫が必要!! • どうやって? – お金は(いっぱいは)ない、時間もあんまりない – 少しずつ、作って、貯めて、 • ビルディングブロック構想 – 大きなFPGAのコンパイルには時間がかかる → 小さなFPGAをいっぱい使う – お客様ごとに、基板を作るのはお金と時間がかかる → 小さなFPGA基板を、組み合わせて作る – VHDLのコーディング(デバッグ)には時間がかかる → すでに出来上がったUPLモジュールを使いまわす • ソフトウェアでは当たり前のことがFPGAでは出来ていない(と思う)
27.
014/3/10 FPGA エクストリーム・コンピューティング第5回 これから何をやりたい - 今 •
少しずつ群ができつつある – 回路設計製造業者( SI シナジーテクノロジー社、 ARKUS 社)との協業 – 機能試作を、さくっとできる環境とつくりたい 100BASE-TX 「 exStick 」 10GbE x4 「 Axpcie6031 」 Mini-ITX-FPGA 筐体SATA-FMC 「 Axfmc6040 」 1GbE x3 「 Axcmd6050 」
28.
014/3/10 FPGA エクストリーム・コンピューティング第5回 おもう事 - イーサネットでいーさ •
FPGAとCPUをどうやってつなぐか? – RS232C – USB – PCIExpress – Ethernet • イーサネットはデバイスドライバがいらない – 10M から 100G まで、スケールする – HUBを介して、複数の装置が接続できる – アプリケーションは Socket インターフェースが使える – インターネットを伝送路として使える
29.
014/3/10 FPGA エクストリーム・コンピューティング第5回 おもう事 - FPGAとCPU •
CPUが得意なこと – データはここにある。このデータをぐりぐりいじりたい • 3GHz の ALU/ レジスタファイルは、やっぱり速い • CPUには高性能なキャッシュメモリシステムがある • 最先端で高速な I/O が安くつなげる • FPGAが得意なこと – 固定長のデータがここに流れている。このデータをちょこっといじりたい • どんなにがんばっても 600MHz くらい。普通は 300MHz くらい • キャッシュメモリがないので、外部メモリへのアクセスが多発すると性能が出ない • I/O は広帯域 (1Tbps くらい ) に好きに作れる • 演算も帯域にあわせて、いっぱい作れる。 1000 個はいける。 • 可変長データ処理はあまり得意ではない。特に文字列処理。
30.
014/3/10 FPGA エクストリーム・コンピューティング第5回 FPGAって •
使いこなすにはノウハウがいる – あまりライブラリがない • やりたいことをやるのにはいろいろ準備が必要 – ものをつくらないといけない、買ってこないといけない • 高性能が求められる領域では、がんばれば何とかできることが多い – 豊富な高速シリアルインターフェース – メモリだって必要なだけつなげればいい – パイプラインも好きに作れる – 好きな演算器をいっぱいならべられる • 苦労も多いけど、 やっぱりFPGAっておもしろい
31.
014/3/10 FPGA エクストリーム・コンピューティング第5回 参考文献 •
「 PACKET RADIO TODAY( 小林直行著 ) 」で、イーサネット TNC が取り上 げられる – CQ ham radio 1995 年10月号、 CQ 出版 • 「インターネット時代のハード制御、第2,3,4章」 (船田悟史著) – トランジスタ技術 1999 年 7 月号、 CQ 出版 • 「イントロダクション ネットワーク I/O の世界へようこそ!」 (船田悟史 著) – LAN によるハードウェア制御、 CQ 出版 • 「第2章 ギガビット Ethernet と FPGA の接続方法」(船田悟史著) – FPGAマガジン No.3、CQ出版
Download now