초록
TCP/IP Offload Engine(TOE)는 TCP/IP 프로토콜을 네트워크 어댑터 상에서 처리함으로써 호스트 CPU의 프로토콜 처리 부하를 줄이는 기술이다. TOE의 구현 방안으로는 임베디드 프로세서를 사용한 소프트웨어 TOE, ASIC 기반의 하드웨어 TOE, 그리고 하드웨어와 소프트웨어 구현의 장점을 결합한 하이브리드 TOE 등이 제안되어 왔다. 본 논문에서는 하이브리드 방식의 TOE 구현을 위해 두 개의 프로세서 코어를 내장한 FPGA를 기반으로 임베디드 리눅스 기반의 소프트웨어 모듈 및 데이타 송수신에 필요한 하드웨어 모듈들을 설계하였다. 두 개의 프로세서 코어를 사용하여 송신 경로와 수신 경로를 분담하여 관리함으로써 리눅스 프로세스들 사이의 작업 전환 오버헤드를 줄일 수 있고, 송신과 수신 과정의 병렬 처리를 통해 단일 임베디드 프로세서의 성능 한계를 극복할 수 있다. 하드웨어 모듈은 패킷 헤더의 생성 및 처리, DMA를 사용한 데이타 수집 및 저장 등을 담당하여 송수신 성능을 향상시킨다. 본 논문에서는 프로세서 코어 내장형 FPGA가 장착된 TOE 네트워크 어댑터를 사용하여 송수신 분리형 TOE의 성능을 검증하였다.
TCP/IP Offload Engine (TOE) is a technology that processes TCP/IP on a network adapter instead of a host CPU to reduce protocol processing overhead from the host CPU. There have been some approaches to implementing TOE: software TOE based on an embedded processor; hardware TOE based on ASIC implementation; and hybrid TOE in which software and hardware functions are combined. In this paper, we designed software modules and hardware modules for a hybrid TOE on an FPGA that had two processor cores. Software modules are based on the embedded Linux. Hardware modules are for data transmission (TX) and reception (RX). One core controls the TX path and the other controls the RX path of the Linux. This TX/RX path separation mechanism can reduce task switching overheads between processes and overcome poor performance of single embedded processor. Hardware modules deal with creating headers for outgoing packets, processing headers of incoming packets, and fetching or storing data from or to the host memory by DMA. These can make it possible to improve the performance of data transmission and reception. We proved performance of the TOE with separated transmission and reception paths by performing experiments with a TOE network adapter that was equipped with the FPGA having processor cores.