Extreme TCP Speed on GbE

Similar documents
TOE40G-IP Introduction (Xilinx( Realize 40GbE limit speed!

UDP1G-IP Introduction (Xilinx( Agenda

TOE1G-IP Core. Core Facts

TOE10G-IP Core. Core Facts

TOE1G-IP Core. Core Facts

TOE1G-IP Core. Core Facts

TOE10G-IP with CPU reference design

UDP1G-IP Core. Core Facts

UDP1G-IP reference design manual

UDP10G-IP reference design manual

TOE1G-IP Multisession Reference design manual Rev May-17

TOE1G-IP Two-Port Demo Instruction

NVMe-IP Introduction for Xilinx Ver1.7E

Core Facts. Features Support Provided by Design Gateway Co., Ltd.

NVMe-IP Introduction for Xilinx Ver1.8E

INT-1010 TCP Offload Engine

October 9, 2018 Product Specification Rev1.1. Core Facts. Documentation. Design File Formats. Additional Items

INT 1011 TCP Offload Engine (Full Offload)

TOE1G-IP Multisession Demo Instruction Rev May-17

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Ultimate IP cores. for Storage & Networking Solution. Features of Gigabit IP core series. DesignGateway is joining Xilinx Alliance Program

May 7, 2018 Product Specification Rev2.3. Core Facts. Documentation Design File Formats

CSCI-GA Operating Systems. Networking. Hubertus Franke

NVMe-IP Introduction for Intel

NVMe-IP DDR reference design manual Rev Apr-18

INT G bit TCP Offload Engine SOC

TCP over Wireless PROF. MICHAEL TSAI 2016/6/3

Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os

LogiCORE IP AXI DataMover v3.00a

TOE10G-IP Multisession Demo Instruction Rev Nov-16

STEVEN R. BAGLEY PACKETS

LogiCORE IP AXI DMA v6.01.a

TOE10G-IP Demo on VC707 Instruction Rev Jun-14

Introduction to TCP/IP networking

Transport Protocols. Raj Jain. Washington University in St. Louis

The Transport Layer: TCP & Reliable Data Transfer

LogiCORE IP AXI Video Direct Memory Access v4.00.a

LogiCORE IP AXI Ethernet v6.0

TCP: Flow and Error Control

NWEN 243. Networked Applications. Layer 4 TCP and UDP

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

LogiCORE IP AXI DMA v6.02a

Overview. Internetworking and Reliable Transmission. CSE 561 Lecture 3, Spring David Wetherall. Internetworking. Reliable Transmission

LogiCORE IP AXI Video Direct Memory Access v5.00.a

HCTL-IP RAID0x8 DDR reference design manual Rev Mar-18

Outline. CS5984 Mobile Computing

TOE1G-IP FTP Server Demo Instruction

10GBase-R PCS/PMA Controller Core

CRC. Implementation. Error control. Software schemes. Packet errors. Types of packet errors

ECE 650 Systems Programming & Engineering. Spring 2018

NVMe-IP reference design manual

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!! Garcia UCB!

CN-100 Network Analyzer Product Overview

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

LM1000STXR4 Gigabit Ethernet Load Module

Introduction to Networks and the Internet

January 19, 2010 Product Specification Rev1.0. Core Facts. Documentation Design File Formats. Slices 1 BUFG/

Table 1: Example Implementation Statistics for Xilinx FPGAs

TCP congestion control:

Ethernet Hub. Campus Network Design. Hubs. Sending and receiving Ethernet frames via a hub

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Problem 7. Problem 8. Problem 9

Fall 2012: FCM 708 Bridge Foundation I

1G Bit TCP+UDP Offload Engine (TOE+UOE) Hardware IP Core

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

440GX Application Note

TCP over wireless links

RAID prototype system introduction. SATA-IP RAID prototype system for Xilinx FPGA. 3 September 2018 Design Gateway Page 1.

Computer Communication Networks Midterm Review

User Datagram Protocol

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1

FIFO Generator v13.0

NVMe-IP for PLDA PCIe reference design manual

The SpaceWire Transport Protocol. Stuart Mills, Steve Parkes University of Dundee. International SpaceWire Seminar 5 th November 2003

TXS 10/100 Mbps and Gigabit Ethernet Load Modules

LogiCORE IP Soft Error Mitigation Controller v4.0

High Speed Data Transfer Using FPGA

TCP Over SoNIC. Xuke Fang Cornell University. XingXiang Lao Cornell University

TCP : Fundamentals of Computer Networks Bill Nace

LogiCORE IP Serial RapidIO v5.6

Virtex-7 FPGA Gen3 Integrated Block for PCI Express

25G bit-1k Sess TCP+UDP Offload + Host_IF. IP Cores for FPGAs and SoCs

LogiCORE IP AXI DMA (v4.00.a)

Outline. Connecting to the access network: DHCP and mobile IP, LTE. Transport layer: UDP and TCP

Support Triangle rendering with texturing: used for bitmap rotation, transformation or scaling

Gigabit Ethernet XMVR LAN Services Modules

QUIZ: Longest Matching Prefix

Gigabit Ethernet XMVR LAN Services Modules

MAX-860 Report FAIL. Job Information. Equicom Méréstechnikai Kft. Report Title: Circuit ID: Contractor Name: Customer Name: Operator Name: Comment:

Politecnico di Milano Scuola di Ingegneria Industriale e dell Informazione. Link Layer. Fundamentals of Communication Networks

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

PDS200 Power over Ethernet Device Server User Manual

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

LogiCORE IP Serial RapidIO Gen2 v1.2

TCP/IP Protocol Suite 1

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Multiple unconnected networks

Packet Header Formats

a. (4pts) What general information is contained in a LSR-PDU update that A might send?

Midterm Review. EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007

Transcription:

TOE1G-IP Introduction (Xilinx) Ver1.1E Extreme TCP Speed on GbE Design Gateway Page 1 Agenda Advantage and Disadvantage of TCP on GbE TOE1G-IP core overview TOE1G-IP core description Initialization High-speed transmit High-speed reception User I/F, Buffer size parameterization Reference design Resource usage and real performance Design Gateway Page 2

Advantage of TCP/IP on GbE Advantage of GbE (Giga-bit Ethernet) 1Gbps speed in theoretical maximum Any PC furnishes GbE port Popular in the market, very low cost Advantage of TCP/IP Standard Ethernet protocol Guaranteed data reliability Major OS provides protocol stack Design Gateway Page 3 Disadvantage of TCP/IP on GbE Poor Performance Complicated protocol management Necessary high-performance CPU for TCP control Practical speed is around 300Mbps at maximum Requires expensive High performance CPU FPGA internal CPU (MicroBlaze) is not enough Needs external high-performance but expensive CPU If use Zynq, TCP consumes most CPU resource TOE1G-IP core can provide ideal solution! Design Gateway Page 4

TOE1G-IP core Overview 2 nd generation TCP/IP off-loading engine core Inserts between user logic and Xilinx TEMAC module Fully hard-wired TCP control for both Tx and Rx Supports Full Duplex communication TOE1G-IP core block diagram Xilinx MAC core (EF-DI-TEMAC) Design Gateway Page 5 TOE1G-IP core Advantage 1 Fully hard-wired TCP/IP protocol control Possible to build CPU-less network system Zero load for CPU Support all of Tx only, Rx only, and full-duplex 110MByte/sec speed for half-duplex mode 100MByte/sec speed for full-duplex mode Guarantee transfer data reliability Tx: Automatic retry when No-ACK, Duplicate-ACK, timeout Rx: Automatic ACK control by Sequence number calculation Design Gateway Page 6

TOE1G-IP core Advantage 2 Selectable data buffer size Selectable buffer size of memory usage vs. performance Compatible with Xilinx MAC core (EF-DI-TEMAC) Direct connection between TOE1G-IP and TEMAC Many reference design on Xilinx evaluation board Full Vivado project for standard Xilinx board Free bit-file for evaluation before purchase All source code (except IP-core) in design project 2 port of TOE1G-IP (fast) + CPU (slow) design FTP server sample design using TOE1G-IP core and CPU Design Gateway Page 7 TOE1G-IP core Operation Set parameter (IP-adr&MAC-adr, etc) during Reset Release Reset then initialize including ARP Idle state after initialization finish, wait command Port open by either of Active (Client) or Passive (Server) mode Tx and Rx operates individually (full-duplex) If want change parameter, move to Reset state (transfer/packet length can change except Busy) State Diagram Design Gateway Page 8

TOE1G-IP Initialization Set parameter to TOE1G-IP User logic can set parameter during TOE1G-IP reset Set IP address, MAC address, and Port number Release reset after parameter setting finish TOE1G-IP executes ARP after reset release Issue ARP to destination target Get MAC-adr of the target via ARP result User Logic ARP TOE1G-IP parameter TOE1G-IP parameter User Logic set parameter during reset Release reset Destination Target MAC-adr Set dest. MAC-adr via ARP result Design Gateway Page 9 Tx packet generation High-Speed Tx User Logic writes Tx data to TxFIFO Split Tx data in the frame size Concatenate header with Tx data Automatic retransmit function Check ACK reply from destination Detect No-ACK, Duplicate-ACK, and Timeout Resend same packet by such ACK error detection Design Gateway Page 10

Tx Packet Generation Generate header and concatenate it with Tx data TOE1G-IP splits Tx data in the frame size Generate checksum and sequence number in TOE1G-IP Split in the frame size 1460Byte DATA Header DATA3 Header3 DATA2 Header2 DATA1 Header1 Tx Packet Generation Concatenate header with data Design Gateway Page 11 Automatic retransmit Retransmit function by dedicated FIFO Proceed pointer by normal ACK reception Rewind pointer by illegal ACK reception TOE1G-IP controls pointer and retransmit operation Rewind pointer when ACK error is detected Proceed pointer when Normal ACK is detected Tx data read pointer Tx Data buffer (4-64KByte) TOE1G-IP controls Tx write and read data pointer in FIFO by data arrival confirmation Tx data write pointer Retransmit by dedicated FIFO Design Gateway Page 12

High-Speed Rx Rx packet header check Ignore packet if destination is not TOE1G-IP or if checksum is wrong Data reordering Reorder when sequence number skip is detected Avoid retransmit request for transfer efficiency If reordering is not possible, then send duplicate ACK Duplicate data management Check duplicate data in Rx packet Retrieve original data by trimming duplicate data part Flow control Automatic Window Update packet sending Design Gateway Page 13 Rx Packet Header Check Verify header check sum in Rx packet Also check following condition in TOE1G-IP Byte Offset Protoco Description Check condition 0-5 ICMP Destination MAC adr Match with MAC adr set by SML/SMH register 6-11 ICMP Source MAC adr Match with target MAC adr set by ARP 12-13 ICMP Type = 0x0800 (IP packet) 14 IP Version/Header = 0x45 (IPv4, IP header len=20) 20 IP Flag/Fragment OFS = b"000000" (no fragment) 23 IP Protocol Number = 0x06(TCP packet) 26-29 IP Source IP adr Match with IP adr set by DIP register 30-33 IP Destination IP adr Match with IP adr set by SIP register 34-35 TCP Source port number Match with DPN register or extracted target port number in Passive Open 36-37 TCP Destination port number Match with port number set by SPN register 38-41 TCP Sequence number Possible value within TOE2-IP core can process this packet Header check condition in Rx packet Design Gateway Page 14

Function when SEQ number skip is detected Not accept any packet other than that can solve lost condition Data reordering function Data Reordering Recover data contiguous from lost-solved packet Keep performance by suppress resend request Pkt#3 resend is not necessary Pkt#1 Pkt#2 Pkt#3 Pkt#3 Pkt#4 Pkt#3 (Normal Rx Packet) Receive Pkt#3, so Pkt#2 is lost Pkt#1 Pkt#1 Pkt#3 Pkt#4 Refuse Pkt#4 if Rx FIFO space is not enough. Pkt#1 Pkt#2 Pkt#3 Pkt#2 Receive Pkt#2, so lost condition is solved Pkt#1 Pkt#2 Pkt#3 Pkt#4 Recover to Pkt#4 normal condition from Pkt#4 Design Gateway Page 15 Duplicate data trimming Detect data duplication and correct automatically Detect Rx data duplication by checking sequence number Trim duplicate block and retrieve contiguous data Store only latter 1000 bytes from new packet 1460Byte 1460Byte 1460Byte 1460Byte Previous SEQ# =0 New SEQ# =1460 Previous SEQ# =0 New SEQ# =1000 Store to buffer directly when no duplication Rx data buffer Cut out duplicate 460 bytes from new packet Rx data buffer Design Gateway Page 16

Flow Control (Automatic Window Update transmit) Generates TCP Window Update (ACK) packet Detect available space recovery in Rx data buffer Send Window Update packet when space exceeds threshold PC side can restart Tx operation by Window Size recovery IP lsb 42=FPGA IP lsb 25=PC (Normal ACK of Rx during PC->FPGA xfr) Restart Tx from PC after Window size recovery Automatic Window Update packet TOE1G-IP generates Window Update packet by Rx FIFO space recovery Design Gateway Page 17 User Interface (Control) 3 types of Register I/F, Tx FIFO I/F, and Rx FIFO I/F Register I/F for initial parameter setting and Tx/Rx command Tx FIFO I/F and Rx FIFO I/F is standard FIFO interface Clk RegAddr[3:0] RegWrData[31:0] RegWrEn RegRdData[31:0] 2 A0 A1 D0 1 Register I/F timing D1 3 [Register Write] (1) Assert RegWrEn with RegAddr and RegWrData [Register Read] (2) Set RegAddr (3) Valid RegRdData output in the next clock Design Gateway Page 18

User Interface (Data) [Tx data write] (1) Write data with WrEn (2) Suspend write within 4 Clk after Full assertion (3) FIFO clear by Flush Tx FIFO I/F timing Rx FIFO I/F timing [Rx data read] (1) Read by RdEn assertion when not Empty (2) Read data after 1 Clk (3) Read is inhibited when Empty (4) FIFO clear by Flush Design Gateway Page 19 Buffer Capacity Parameterized 3 types of data buffer (1) Tx Data Buffer: 4KByte -64KByte (2) Tx Packet Buffer: 2KByte - 16KByte (3) Rx Data Buffer: 2KByte -64KByte User can optimize resource usage and performance Generic Name Range Description TxBufBitWidth 12-16 Set Tx data buffer size in address bit width When set to 12, size is 4KByte, when 16, 64KByte for example. TxPacBitWidth 11-14 Set Tx packet buffer size in address bit width When set to 11, size is 2KByte, when 14, 16KByte for example RxBufBitWidth 11-16 Set Rx data buffer size in address bit width When set to 11, size is 2KByte, when 16, 64KByte for example. Buffer size is selectable by parameterization Design Gateway Page 20

Free Bit File for Evaluation Bit file for evaluation with Xilinx standard board Ready for VC707/KC705/AC701/ZC706(*) Support both Half-Duplex and Full-Duplex operation Measure transfer speed performance and data reliability 2 port (Fast+Slow) operation, FTP sample application (*) Needs SFP-RJ45 adapter for ZC706 evaluation Evaluation environment for Xilinx board Design Gateway Page 21 Reference Design Overview Vivado design project for real operation All source code (except IP-core) included in full project Both half-duplex and full-duplex design in IP-core package 2 port design and FTP design available for IP-core customer User Module PacSel Tx Packet Size Register rpacketsizeset Tx Packet Counter TCPTxFfFull TCPTxFfWrEn TxFfDataCnt TxPatt Generator TCPTxFfWrData RxPatt Generator rrxffrden DFF TCPRxFfRdEmpty TCPRxFfRdEn rexppatt ErrLED Comparator TCPRxFfRdData TOE2-IP ConnOn StartSW ModeSel Debounce rstartcnt State Machine rstate State Decoder RegAddr RegWrEn RegWrData RegRdData GMII I/F MAC I/F EMAC Vivado/EDK project in package TCPCtrlTest.vhd Reference design block diagram Design Gateway Page 22

Reference Design (2 Port Design) Implements 2 port of fast port by TOE1G-IP and slow port by CPU Data Tx and Rx for fast port and Ping command for slow port Emulates real product that requires more protocol other than TCP/IP Multiplexor selects fast or slow port for output Fast port by TOE1G-IP executes high-speed Tx/Rx Slow port by CPU supports Ping response 2 port reference design block diagram Design Gateway Page 23 Reference Design(FTP sample) FPGA board operates as high-speed FTP server TOE1G-IP core executes ultra high-speed file data transfer CPU (MicroBlaze) handles FTP command process by its firmware CPU firmware processes FTP command (CPU) Standard FTP tool (FileZilla) can access FTP server (TOE1G-IP core) TOE1G-IP executes highspeed file data transfer FTP sample system Design Gateway Page 24

Reference Design(FTP sample: cont d) Extreme transfer speed over 100MB/s 943MB file transfer in 8 seconds Real performance result of 943MByte file download by FileZilla Design Gateway Page 25 Effective Development on Ref. Design Vivado project is attached to TOE1G-IP package Full source code (VHDL) except IP core Can save user system development duration Confirm real board operation by original reference design. Then modify a little to approach final user product. Check real operation in each modification step. Short-term development is possible without big turn back Design Gateway Page 26

Resource Usage TOE1G-IP core standalone resource usage Condition = Maximum buffer setting Family (TxDataBuf=RxDataBuf=64KB, TxPacketBuf=16KB) Example Device Fmax (MHz) Slice Regs Slice LUTs TOE1G-IP core standalone compilation result Slic es 1 RAMB 36E1 Design Tools Artix-7 XC7A200T-2FBG676 125 2674 2502 1020 37 Vivado2014.1 Kintex-7 XC7K325T-2FFG900 125 2674 2502 1087 37 Vivado2014.1 Zynq-7000 XC7Z045-2FFG900 125 2674 2052 1119 37 Vivado2014.1 Virtex-7 XC7VX485T-2FFG1761 125 2674 2502 1086 37 Vivado2014.1 This result is based on maximum buffer size setting. User can save memory resource by smaller buffer size setting Design Gateway Page 27 Transfer Performance Real performance in full-duplex test More than 100MByte/sec for both Tx and Rx Design Gateway Page 28

TOE1G-IP Application Market Data transfer in FAmarket Medical video processing system Sensor data logger measurement instrument Storage system using TCP such as NAS, iscsi TOE1G-IP replaces CPU for hard TCP processing Network product Network printer for high speed print data download Network camera for high speed video data upload Design Gateway Page 29 For more detail Detailed documents available on the web site. http://www.dgway.com/toe1g-ip_x_e.html Contact Design Gateway Co,. Ltd. E-mail : ip-sales@design-gateway.com FAX : +66-2-261-2290 Design Gateway Page 30

Revision History Rev. Date Description 1.0E April 5, 2016 English version initial release 1.1E September 2, 2016 Rename IP core product from TOE2-IP to TOE1G-IP Design Gateway Page 31