Presentation is loading. Please wait.

Presentation is loading. Please wait.

임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현

Similar presentations


Presentation on theme: "임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현"— Presentation transcript:

1 임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현
공학 석사 학위 논문 임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현 컴퓨터구조 및 시스템 연구실 최 봉 식 공학 석사 학위 논문을 발표하겠습니다. 저는 컴퓨터구조 및 시스템 연구실의 최봉식 입니다. 본 논문의 제목은 임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현

2 순서 서론 관련 연구 소프트웨어 기반 TCP/IP Offload Engine (TOE)의 구현 실험 결론 및 향후 과제
Lightweight TCP/IP(lwIP)를 이용한 TOE 구현 lwIP의 개선 실험 결론 및 향후 과제 순서는 다음과 같습니다. 서론과 관련 연구를 연구를 먼저 말하고 그리고 본 논문에서 구현한 소프트웨어 기반 TOE의 구현 을 살펴보겠습니다. 이후 실험과 결론 및 향후 과제를 다루도록 하겠습니다.

3 서론(1/3) 네트워크가 고속화될수록 CPU가 네트워크의 bottleneck이 되고 있음
네트워크의 대역폭은 12개월에 약 3배 증가 CPU 성능은 18개월에 약 2배 증가 1 bps를 처리하기 위해서는 약 1 Hz CPU 클럭이 필요 10 Gbps를 full-duplex로 처리하려면 20 GHz CPU 클럭이 필요 고속 네트워크 환경에서, 호스트 CPU 자원의 대부분을 TCP/IP 처리에 사용 실제 사용자 응용 프로그램을 위한 CPU 자원 부족 호스트 CPU의 부담을 줄이기 위한 방안이 활발히 연구 중

4 서론(2/3) TCP/IP Offload Engine (TOE)
어플리케이션 어플리케이션 소켓 인터페이스 소켓 인터페이스 운영체제 TCP IP 하드웨어 TOE TCP TCP/IP Offload Engine  이하 TOE IP 일반 NIC MAC MAC PHY PHY 일반 TCP/IP 처리 TOE 를 이용한 TCP/IP 처리

5 서론(3/3) TOE의 구현 방법 하드웨어 기반 TOE 소프트웨어 기반 TOE 성능은 우수한 반면 유연성이 떨어짐
iSCSI, HTTP, RDMA, … 소프트웨어 기반 TOE 하드웨어 방식보다 성능은 떨어지지만 유연성에서 장점 임베디드 운영체제를 사용하여 구현 구현은 용이하나, 성능이 낮음 운영체제 없이 전용 프로그램을 개발하여 구현 유연성과 성능상의 이점을 고려한 방식

6 관련연구(1/2) 하드웨어 기반 TOE 구현 소프트웨어 기반 TOE 구현 ASIC을 이용한 전용 칩 개발
Chelsio사의 T210 내장된 여러 개의 하드웨어 유닛들을 사용하여 TCP/IP를 병렬로 처리 Alacritech사의 SEN2100 TCP/IP를 fully offload하지 않고, 데이터 패스 부분만 offload 소프트웨어 기반 TOE 구현 ARM, Xscale등과 같은 임베디드 프로세서 사용 Intel의 PRO1000T 200MHz StrongARM 전용 프로그램으로 TCP/IP 처리

7 관련연구(2/2) 임베디드 시스템상에서 TCP/IP를 소프트웨어적으로 처리하는 방법
임베디드 리눅스, VxWorks, …… 운영체제 없이 독자적으로 TCP/IP를 처리하는 프로그램 사용 Lightweight TCP/IP(lwIP) 스택 Adam Dunkels (Swedish Institute of Computer Science)에 의하여 개발 공개 소프트웨어 소형 임베디드 시스템을 위해 개발 메모리 사용을 최소화하도록 개발

8 소프트웨어 기반 TOE의 구현

9 TOE 구현을 위한 호스트 커널의 수정 2.4.27 버전의 리눅스 커널을 수정
socket() 함수의 인자로 TOE 정의 나머지 함수들은 수정할 필요 없음 TOE를 이용하는 코드들은 디바이스 계층에 구현된 소켓 함수들을 직접 호출하고 그 결과를 돌려 받음 TOE 구현을 위해서는 호스트 커널의 수정이 필요합니다. 일반적으로, 호스트에서 TCP/IP를 처리할 경우 리눅스 운영체제에서는 그림과 같이 소켓관련 함수를 거쳐 커널 영역으로 들어 간뒤 BSD 소켓 계층, INET 소켓 계층, ~ 디바이스 계층을 거치도록 되어 있습니다. 하지만 TOE를 사용할 경우, BSD 계층에서 TOE를 사용하는지 아닌지를 판별한 후 TOE를 사용하면 나머지 하위 계층을 바이패스 하고 디바이스 계층에 그 명령을 전달하도록 해야 합니다. 이렇게 BSD 계층에서의 판별을 하기 위해 커널의 수정이 필요하며 본 논문에서는 버전

10 TOE 구현을 위한 소켓 라이브러리 분류 소켓 라이브러리를 이루는 함수들을 분류
연결에 필요한 함수들 socket(), bind(), ... 데이터 전송에 필요한 함수들 send(), recv(), ... 두 종류의 소켓 라이브러리 함수들을 TOE에서 처리

11 임베디드 리눅스를 이용한 TOE 구현 (1/2) 소켓 라이브러리에서 연결과 관련된 함수들의 처리
앞에서 말하바와 같이 소켓라이브러리 함수의 종류는 연결관련 함수와 데이터 전송 함수로 나뉩니다. 먼저 socket함수의 처리를 통해서 연결과 관련된 함수들의 처리를 살펴보겠습니다. 호스트영역의 사용자 응용프로그램은 socket을 호출하고 이는 BSD계층을 거쳐 디바이스 드라이버 내에 있는 toe_socket을 호출합니다. toe_socket 함수는 인터럽트를 통해서 임베디드 응용프로그램

12 임베디드 리눅스를 이용한 TOE 구현 (2/2) 소켓 라이브러리에서 데이터 전송 함수들의 처리

13 임베디드 리눅스를 이용한 TOE의 성능 임베디드 리눅스를 이용한 TOE의 성능 OS 사용으로 인한 오버헤드
대역폭: 62Mbps OS 사용으로 인한 오버헤드 임베디드 응용프로그램과 커널 모듈간의 context switch 대기 상태로 진입, 대기 상태를 깨우는 작업 OS를 사용하지 않고 전용 프로그램을 개발하여 TOE를 구현 OS 사용으로 인한 오버헤드 문제를 해결 Lightweight TCP/IP Stack (lwIP)

14 lwIP를 이용한 TOE의 구현 (1/2) 소켓 라이브러리에서 연결과 관련된 함수들의 처리

15 lwIP를 이용한 TOE의 구현 (2/2) 소켓 라이브러리에서 데이터 전송 함수들의 처리

16 TOE의 성능 향상을 위한 lwIP의 개선 (1/3)
송수신 버퍼의 크기, 수신 윈도우의 크기, 세그먼트 크기 등의 인자들이 작은 값으로 설정이 되어있음 충분한 성능을 내기 위해서는 이러한 인자들을 상향 설정 필요가 있음

17 TOE의 성능 향상을 위한 lwIP의 개선 (2/3)
메모리 복사의 제거 lwIP는 수신 패킷을 저장하고 있는 디바이스 드라이버 측의 버퍼에서 lwIP 전용 패킷 버퍼 구조체로 복사하도록 구현 됨 이더넷 칩에서 lwIP 전용버퍼로 DMA하도록 수정

18 TOE의 성능 향상을 위한 lwIP의 개선(3/3)
ACK 전송 방식의 수정을 통한 개선 지연 ACK (Delyed ACK) 방식으로 수정

19 개발 환경 Cyclone사의 PCI-730 PCI-730의 블록 다이어그램

20 실 험

21 실험 환경 PCI-730 카드를 장착한 1.8GHz 펜티엄 IV 서버 2대
3COM의 SuperStack3 스위치로 이더넷을 연결 send() 함수의 호출로부터 데이터가 원격 노드의 수신버퍼에 들어갈 때까지의 지연시간과 대역폭을 측정 측정치는 4byte~256KB의 데이터 전송을 1000회 반복한 평균치

22 lwIP 개선을 통한 성능 향상 측정 (1/2) ① 아무런 수정을 하지 않은 lwIP ② 인자 수정 ③ 메모리 복사 제거 ④
지연 ACK

23 lwIP 개선을 통한 성능 향상 측정 (2/2) 개선 사항 추가 때마다, 지연시간과 대역폭 측면에서 성능이 향상되는 것을 확인, 57MBps의 성능을 보임

24 임베디드 운영체제를 이용한 TOE와 비교 실험
64KB까지는 lwIP 이용한 TOE의 성능이 우수하나, 이후 점차 임베디드 리눅스를 이용한 TOE의 성능이 더 좋음 이더넷 디바이스 드라이버의 불안정성 임베디드 리눅스의 드라이버와 같이 하드웨어를 충분히 활용하고 있지 않음

25 CPU 사용률 측정 TCP/IP를 호스트에서 처리했을 때와 TOE에서 처리했을 때의 CPU 사용률 비교
TOE를 사용하여 호스트 CPU의 TCP/IP 프로토콜 처리 오버헤드가 줄어든 것을 확인

26 결론 및 향후 과제 결론 향후 과제 임베디드 리눅스를 이용하여 TOE를 구현 lwIP를 이용하여 TOE를 구현
lwIP 분석을 통하여 얻은 기술을 바탕으로 독자적인 TCP/IP 처리 소프트웨어 개발


Download ppt "임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현"

Similar presentations


Ads by Google