TCP/IP Hardware Accelerator를 위한 Host Interface의 설계

Host Interface Design for TCP/IP Hardware Accelerator

  • 정여진 (이화여자대학교 SoC Design Lab.) ;
  • 임혜숙 (이화여자대학교 SoC Design Lab.)
  • 발행 : 2005.02.28

초록

빠른 데이터 처리를 위하여 기존에는 소프트웨어방식으로 구현되었던 TCP/IP를 고속의 하드웨어로 구현함에 있어, TCP/IP 하드웨어와 외부 블록간의 통신을 중계하는 블록인 Host Interface를 구현하였다. Host Interface는 TCP/IP 하드웨어와 외부 블록의 중간에 위치하여 외부 블록과의 통신을 위해 AMBA AHB 규약을 따른다. Host Interface는 내부의 Command/Status Register를 통하여 CPU와 TCP/IP 하드웨어 간의 명령, 상태, 헤더 정보 등을 전달하는데 이 때에는 AMBA AHB의 Slave로서 동작한다. Data Flow를 위해서 Host Interface는 AMBA AHB의 Master로서 동작하는데, 데이터 흐름의 방향에 따라 Data flow는 데이터를 수신하는 Receive flow와 데이터를 패킷으로 만들어 보내는 Transmit Flow로 나된다. Rx Flow의 경우, UDP 블록이나 TCP Buffer로부터 받은 데이터를 내부의 작은 RxFIFO를 통해 외부 RxRAM에 써서 CPU가 읽어갈 수 있도록 하고, Tx Flow의 경우에는 외부 TxRAM에서 전송할 데이터를 읽어 와서 TxFIFO를 거쳐 UDP Buffer나 TCP Buffer에 씀으로써 패킷을 만들어 보내도록 한다. 외부 RAM의 액세스에는 Command/Status Register에 위치한 Buffer Descriptor의 정보를 이용하게 된다. Host Interface는 이러한Data Flow의 원활한 흐름을 위해서 여러 세부 기능들을 수행하게 된다. Host Interface의 기능을 검증하기 위하여 여러 testcase들이 수행되었으며, 0.18 마이크론 기술을 사용하여 synthesis한 결과, 내부의 Command/Status Register와 FIFO를 모두 포함하여 약 173K 게이트가 소요됨을 보았다.

TCP/IP protocols have been implemented in software program running on CPU in end systems. As the increased demand of fast protocol processing, it is required to implement the protocols in hardware, and Host Interface is responsible for communication between external CPU and the hardware blocks of TCP/IP implementation. The Host Interface follows AMBA AHB specification for the communication with external world. For control flow, the Host Interface behaves as a slave of AMBA AHB. Using internal Command/status Registers, the Host Interface receives commands from CPU and transfers hardware status and header information to CPU. On the other hand, the Host Interface behaves as a master for data flow. Data flow has two directions, Receive Flow and Transmit Flow. In Receive Flow, using internal RxFIFO, the Host Interface reads data from UDP FIFO or TCP buffer and transfers data to external RAM for CPU to read. For Transmit Flow, the Host Interface reads data from external RAM and transfers data to UDP buffer or TCP buffer through internal TxFIFO. TCP/IP hardware blocks generate packets using the data and transmit. Buffer Descriptor is one of the Command/Status Registers, and the information stored in Buffer Descriptor is used for external RAM access. Several testcases are designed to verify TCP/IP functions. The Host Interface is synthesized using the 0.18 micron technology, and it results in 173 K gates including the Command/status Registers and internal FIFOs.

키워드

참고문헌

  1. James F. Kurose, Keith W. Ross 'Computer Networking: A Top-Down Approach Fraturing the Internet', Addison Wesley, 2002
  2. 'Introduction to TCP/IP Offload Engine (TOE)', http://www.10gea.org
  3. 진교홍, 이정태, '고속통신을 위한 TCP/IP 프로토콜의 하드웨어 설계 및 구현', 한국정보과학학회지, Vol. 12, No.1, pp135-153, Feb. 1998
  4. Ethernet Controller Data Sheet Version 1.0
  5. Wiznet, http://wiznet.co.kr