1 |
1
소켓이 응용 프로그램내의 소켓 인터페이스와 TOE(TCP Offload Engine) 사이의 연결을 제어하는 통신 인터페이스 방법에서,상기 소켓은 소켓 스위칭 계층, 오프로드 프로토콜 처리 계층, 그리고 TOE 장치 드라이버 계층을 포함하는 형태로 구현되며,a) 사용자가 소켓 인터페이스를 호출하면, 상기 소켓 스위치 계층에서 현재 사용하고 있는 소켓이 TOE에 연결되었는지를 판단하여, 그 판단 결과에 따라 프로토콜 스택을 선택하는 단계;b) 상기 소켓 스위치 계층에서 TOE 프로토콜 스택이 선택된 경우, 상기 오프로드 프로토콜 처리 계층에서, 상기 소켓 스위치 계층으로부터 전달된 사용자의 요청을 디스크립터 형태로 변환하는 단계;c) 상기 TOE 장치 드라이버 계층에서 상기 오프로드 프로토콜 처리 계층으로부터 상기 디스크립터를 수신하여 이를 상기 TOE의 지정된 메모리에 저장하고 상기 오프로드 프로토콜 처리 계층으로 제어권을 반환하는 단계를 포함하는 통신 인터페이스 방법
|
2 |
2
제1항에 있어서,상기 b) 단계에서 오프로드 프로토콜 처리 계층은 상기 TOE 디바이스 드라이버로 디스크립터를 제공하고, 상기 제공한 디스크립터의 처리 결과를 상기 TOE 디바이스 드라이버로부터 꺼내오는 작업을 수행하는 것을 특징으로 하는 통신 인터페이스 방법
|
3 |
3
제2항에 있어서,상기 오프로드 프로토콜 처리 계층은 상기 TOE의 지정된 메모리에 저장된 사용자의 송신 요청에 대응하는 디스크립터에 해당하는 작업이 완료되어 미리 지정된 완료처리함수가 호출될 때까지 사용자의 요청 프로세스를 대기시키는 것을 특징으로 하는 통신 인터페이스 방법
|
4 |
4
제3항에 있어서,상기 오프로드 프로토콜 처리 계층은 상기 TOE가 하드웨어 인터럽트를 받으면 완료처리함수를 호출하여 완료큐에 저장된 디스크립터를 가져가고 완료를 기다리고 있던 프로세스를 깨우는 것을 특징으로 하는 통신 인터페이스 방법
|
5 |
5
제1항에 있어서,상기 TOE 디바이스 드라이버 계층에서는 상기 TOE의 지정된 메모리에 저장한 디스크립터에 해당하는 작업이 완료되어 하드웨어 인터럽트가 발생하면, 완료 정보를 상기 지정된 메모리에서 꺼내는 작업을 수행하는 것을 특징으로 하는 통신 인터페이스 방법
|
6 |
6
제5항에 있어서,상기 TOE 디바이스 드라이버 계층은 상기 TOE에서 제공하는 인터페이스를 소프트웨어로 구현한 것임을 특징으로 하는 통신 인터페이스 방법
|
7 |
7
제5항에 있어서,상기 디스크립터는 호출된 함수의 의미와 전달된 인자에 대응하여 생성되는 것을 특징으로 하는 통신 인터페이스 방법
|
8 |
8
제1항에 있어서,상기 a) 단계에서 사용자가 소켓 인터페이스를 호출하는 경우 그 호출은 상기 소켓 스위치 계층 및 오프로드 프로토콜 처리 계층에 걸쳐 접두어만 다르고 이름과 인자가 동일한 인터페이스에 연결되는 것을 특징으로 하는 통신 인터페이스 방법
|
9 |
9
제1항에 있어서,상기 오프로드 프로토콜 처리 계층은 데이터 무복사 기능, 사용자 소켓과 상기 ROE의 TCP 세션의 매핑 기능을 포함하는 것을 특징으로 하는 통신 인터페이스 방법
|
10 |
10
응용 프로그램내의 소켓 인터페이스와 TOE 사이의 연결을 제어하는 커널 수준의 소켓을 이용한 통신 인터페이스 방법에 있어서,상기 커널 수준의 소켓 중 오프로드 프로토콜 처리 계층에서,임의의 사용자 수준의 가상 메모리를 할당받는 응용 프로그램으로부터 소켓 송수신 인터페이스를 통해 그 메모리의 주소를 수신하는 단계;상기 수신한 메모리의 주소를 TOE의 DMA(direct memory access) 엔진이 인식할 수 있는 실제 메모리 주소로 변환하는 단계; 및상기 변환된 실제 메모리 주소를 상기 TOE로 전달하는 단계를 포함하는 것을 특징으로 하는 통신 인터페이스 방법
|
11 |
11
제10항에 있어서, 사용자가 지정한 메모리가 페이지보다 크거나 페이지 경계를 넘어갈 경우에는 상기 실제 메모리에 대해서 페이지 경계를 기준으로 잘라서 상기 실제 메모리 주소와 메모리 크기로 이루어진 리스트를 작성하여 상기 TOE로 전달하는 것을 특징으로 하는 통신 인터페이스 방법
|
12 |
12
제11항에 있어서, 상기 리스트는 sg list 및 scatter/gather list 인 것을 특징으로 하는 통신 인터페이스 방법
|
13 |
13
제11항에 있어서, 상기 사용자가 지정한 메모리의 송수신이 완료될 때까지 상기 실제 메모리에 머물러 있을 수 있도록 상기 리스트에 포함된 모든 페이지에 대해서 페이지 맵 테이블을 검색하여 해당 페이지의 페이지 테이블의 Reserved 비트를 설정하도록 하는 것을 특징으로 하는 통신 인터페이스 방법
|
14 |
14
제11항에 있어서, 사용자가 지정한 메모리 주소의 실제 주소가 상기 TOE가 요청하는 바이트 정렬을 만족하지 못한 경우에는 상기 메모리의 정렬이 어긋난 부분만 정렬된 커널 메모리에 저장하여 처리하는 것을 특징으로 하는 통신 인터페이스 방법
|
15 |
14
제11항에 있어서, 사용자가 지정한 메모리 주소의 실제 주소가 상기 TOE가 요청하는 바이트 정렬을 만족하지 못한 경우에는 상기 메모리의 정렬이 어긋난 부분만 정렬된 커널 메모리에 저장하여 처리하는 것을 특징으로 하는 통신 인터페이스 방법
|