Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Interop2019 Toyota Netcope P4

428 views

Published on

Case Study of P4 applying to CAN pre-processing using FPGA + Netcope P4 compiler.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Interop2019 Toyota Netcope P4

  1. 1. A2-03 Interop Tokyo 2019 5G時代に向けた In Network Computing トヨタ自動車株式会社 コネクティッド先行開発部 InfoTech DCインフラG プリンシパル・リサーチャー 海老澤 健太郎 ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  2. 2. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ https://www.linkedin.com/in/ebiken/ コネクティッドカー向け 次世代ネットワークの研究 (データ収集&解析基盤) データセンター (データ解析基盤) 携帯網 固定網 Edge Computing 5G/4G WiFi プロトタイピング In Network Computing
  3. 3. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ モビリティサービス・プラットフォーム(MSPF) 総務省:Connected Car 社会の実現に向けた研究会 (第4回)資料4-4 「トヨタのConnected戦略」
  4. 4. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ 「大規模データのリアルタイム処理」の効率化 現在:数十MB/台・月×数十万台 ⇒ 2025年:数百MB以上/台・月×数千万台 総務省:Connected Car 社会の実現に向けた研究会 (第4回)資料4-4 「トヨタのConnected戦略」
  5. 5. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CAN (Controller Area Network) Data Center via DCM Renesas Electronics: In-Vehicle Networking Solutions https://www.renesas.com/jp/en/solutions/automotive/technology/networking-solutions.html
  6. 6. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CPUの高速化のトレンド Karl Rupp “40 Years of Microprocessor Trend Data” https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/
  7. 7. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ ドメイン特化型アーキテクチャの必要性 Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018 https://www.acm.org/hennessy-patterson-turing-lecture “A New Golden Age for Computer Architecture: Domain-Specific Hardware/Software Co-Design, Enhanced Security, Open Instruction Sets, and Agile Chip Development,”
  8. 8. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ ドメイン特化型 プロセッサ(例) Reference: https://www.barefootnetworks.com/technology/
  9. 9. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 ... パケット処理に特化したプログラミング言語 P4 Source Code パケット処理パイプラインの定義 パーサーやテーブル、アクション、など P4 Compiler P4をTarget上で実行可能な形式にコンパイル Target毎に提供される Target (P4対応Dataplane) P4 Dataplane runtime に従いパケットを処理 Hardware: ASIC, NPU, FPGA | Software: CPU “Programming Protocol-Independent Packet Processors” https://p4.org/ ASIC, NPU, FPGA
  10. 10. A2-03 Interop Tokyo 2019 研究事例 Netcope P4コンパイラ+FPGAを用いた CANデータオフロードの試作 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  11. 11. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CANデータ物理量変換(試作) Programmable Switch Match: 車種+フィールドID Action: 値の変換 Match: 車種+フィールドID Action: 値の変換 . . . . . . . . . 変換後の車両情報車両情報 BYTEアライメントではないデータの超高速ストリーム処理
  12. 12. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ プラットフォーム選択と実装上の課題 •車種によりデータは変わる •変換ロジックも変わる(かもしれない) 課題 : HDLを用いた高速パケット処理プログラムの難しさ ASIC NPU FPGA スループット ~6.4Tbps ~100Gbps ~200Gbps 計算ロジックの追加(#1) × 〇 ◎ テーブルの拡張性(#2) × △ 〇 (#1) P4 Extern (#2) Memory & Lookup Logic
  13. 13. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ 開発フローの比較 P4プログラミング P4プログラムチェック 論理合成 配置配線 タイミング検証 (シュミレーション) Netcope P4 Cloud RTL設計 (Verilog/VHDL) 論理検証 (シュミレーション) 論理合成 配置配線 タイミング検証 (シュミレーション) 一般的な FPGA開発
  14. 14. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 プログラム例(port forward) // Standard Headers header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } } header ethernet_t ethernet; header_type ipv4_t { fields { version : 4; ihl : 4; diffserv : 8; totalLen : 16; identification : 16; flags : 3; fragOffset : 13; ttl : 8; protocol : 8; hdrChecksum : 16; srcAddr : 32; dstAddr: 32; } } header ipv4_t ipv4; ヘッダの定義 parser start { return parse_ethernet; } parser parse_ethernet { extract(ethernet); return select(latest.etherType) { ETHERTYPE_IPV4 : parse_ipv4; default: ingress; } } parser parse_ipv4 { extract(ipv4); return select(latest.protocol) { IP_PROTOCOLS_ICMP : parse_icmp; IP_PROTOCOLS_TCP : parse_tcp; IP_PROTOCOLS_UDP : parse_udp; default: ingress; } } parser parse_udp { extract(udp); return select(latest.dstPort) { default: ingress; } } パーサーの定義 action _drop() { drop(); } action _nop() { } action forward(port) { modify_field(metadata.egress_port, port); } table t_fwd { reads { metadata.ingress_port: exact; } actions {forward; _drop;} } control ingress{ apply(t_fwd); } アクション/テーブル/コントロール
  15. 15. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 プログラム例(CAN処理ロジックの疑似コード) CANデータをヘッダとして 構造的に定義 header_type can_metadata_t { fields { id_model : 32; id_type : 32; timestamp : 64; } } header can_metadata_t can_metadata; header_type can_base_t { fields { id : 12; len : 4; } } header can_base_t can_base; ... ヘッダの定義 CANデータのID毎にパース するバイト数等を定義 parser parse_udp { extract(udp); return select(latest.dstPort) { UDP_PORT_CAN : parse_can; default: ingress; } } parser parse_can { extract(can_metadata); return parse_can_data; } parser parse_can_data { extract(can_base); return select(can_base.id) { 0x003 : parse_can_data003; 0x005 : parse_can_data005; 0x007 : parse_can_data007; ... } } パーサーの定義 マッチしたCAN_IDに応じデータ 変換するアクションを定義 action convert_dataXXX() { // set fixed fields modify_field(can_cdataXXX.id0, 3); modify_field(can_cdataXXX.sid0, 0); modify_field(can_cdataXXX.len0, 4); // calculate remaining fields modify_field(can_cdataXXX.val0, val0-4); modify_field(can_cdataXXX.val1, val1*2); .... } .... アクション/テーブル/コントロール
  16. 16. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud Netcope P4 Cloud P4 -> FPGA Firmware コンパイル ウェブサービス(Web Service) ターゲット・プラットフォームの選択
  17. 17. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud P4チェック結果、合成結果レポートの表示 合成されたファームウェアのダウンロード
  18. 18. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud
  19. 19. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ まとめ CPU高速化の限界(End of Moore’s Law) ドメイン特化型プロセッサ+プログラミング言語 パケット処理に特化したドメイン特化型言語の普及(P4) プラットフォームに合わせた開発環境の普及により、 ユースケースに合わせプラットフォームを選択できる時代に
  20. 20. A2-03 Interop Tokyo 2019 Appendix: Research of In Network Computing 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  21. 21. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ IRTF Computing in the Network (COIN) 性能の向上と新たなネットワーク化されたアプリケーションを実現可能にすべく ネットワーク内コンピューティングの研究を育成・促進する Initial Meeting: IETF 103 Bangkok (2018年11月9日) Wiki: https://trac.ietf.org/trac/irtf/wiki/coin Mailing List: https://www.irtf.org/mailman/listinfo/coin https://trac.ietf.org/trac/irtf/attachment/wiki/coin/coin_ietf103_chair_slides%20-%20Finalv3.pptx
  22. 22. A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ https://dl.acm.org/citation.cfm?doid=3132747.3132764
  23. 23. A2-03 Interop Tokyo 2019 • In-Network Data-Center Computing • draft-he-coin-datacenter-00 • machine learning, graph analysis, data analytics, map reduce • In Network Computing Enablers for Extended Reality • draft-montpetit-coin-xr-02 • Augmented Reality (AR), Virtual Reality (VR), Extended Reality (XR) • Information Centric Networking (ICN) & NDN • Network Coding, Smart contracts (block chain) • Overview of Edge Data Discovery • draft-mcbride-edge-data-discovery-overview • Named Data Networking (NDN) • Content-Centric Networking (CCN) 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ IRTF Computing in the Network (COIN)

×