| 번호 | 청구항 |
|---|---|
| 5 | 제1항에 있어서, 상기 수신된 패킷들은 P2P-DMA를 통해 상기 GPU 메모리 내의 패킷 버퍼로 직접 전달되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 6 | 제1항에 있어서, 각 GPU 쓰레드는 링 디스크립터와 일대일 맵핑되어 각 쓰레드마다 담당 디스크립터를 하나씩 가지는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 1 | GPU 내부 패킷 입출력 장치에 의해 수행되는 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법에 있어서, GPU(Graphic Processing Unit) 내부의 메모리 풀로부터 가용한 패킷 버퍼를 할당받는 단계; 네트워크 인터페이스 컨트롤러(NIC, Network interface controller)에서 수신된 패킷들이 상기 할당받은 패킷 버퍼에 직접 전달된 후 상기 직접 전달된 패킷들을 수신 커널(Rx-kernel)을 통해 처리하는 단계; 송신 커널(Tx-kernel)의 동작에 따라 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하는 단계; 및 상기 할당된 패킷 버퍼를 반납하는 단계를 포함하고,상기 GPU 내부 패킷 입출력 장치는 상기 수신 커널 및 상기 송신 커널이 동작하기 전에 상기 네트워크 인터페이스 컨트롤러에서 상기 GPU로 상기 수신된 패킷을 직접 전달하기 위해 초기화를 수행하며,상기 초기화 수행은,상기 메모리 풀의 DMA 주소들이 오프셋(Offset) 연산 과정을 통해 상기 네트워크 인터페이스 컨트롤러의 드라이버가 이전에 가지고 있던 패킷 버퍼 주소들을 대체하고,P2P-DMA(Peer To Peer Direct Memory Access)를 통해 GPU 메모리에 메모리 풀과 링 디스크립터를 세팅하고, 2단계의 맵핑과정을 통해 도어벨 레지스터를 GPU 메모리 내에 세팅하도록 수행되며,상기 메모리 풀과 링 디스크립터의 세팅은,GPU 메모리 내에 상기 메모리 풀과 상기 링 디스크립터가 제공되고, 상기 메모리 풀 및 상기 링 디스크립터의 주소 및 크기 정보가 상기 네트워크 인터페이스 컨트롤러 드라이버에 전달되고, 상기 정보에 기반하여 DMA 가능한 주소를 획득하고, 상기 링 디스크립터에 상기 DMA 가능한 주소가 매크로를 통해 설정되어 상기 네트워크 인터페이스 컨트롤러가 상기 링 디스크립터를 통해 관리가 가능하도록 세팅이 이루어지고,상기 도어벨 레지스터의 세팅은,상기 도어벨 레지스터의 주소가 가상 주소에 맵핑되고, 상기 네트워크 인터페이스 컨트롤러 드라이버에서 상기 가상 주소에 맵핑된 상기 도어벨 레지스터의 주소가 유저 영역의 가상 주소로 맵핑되고, 상기 유저 영역의 가상 주소로 맵핑된 상기 도어벨 레지스터의 주소는 GPU 메모리 내로 맵핑되어 상기 수신 커널 및 상기 송신 커널이 접근 가능하도록 세팅이 이루어지는 것을 특징으로 하는 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 2 | 삭제 |
| 3 | 삭제 |
| 4 | 제1항에 있어서, 상기 수신 커널은, 상기 직접 전달된 패킷들과 관련된 링 디스크립터의 정보를 업데이트하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 7 | 제1항에 있어서, 상기 메모리 풀은, 각 GPU 쓰레드들마다 독립된 복수의 미니-메모리 풀로 나누어지고, GPU 쓰레드들이 상기 메모리 풀에 액세스할 때 서로 다른 미니-메모리 풀에 액세스하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 8 | 제1항에 있어서, 각 GPU 커널은 고유 ID를 가지고, 특정 패킷 버퍼의 상태 레지스터(status_register) 필드에 쓰여진 ID 값과 일치하는 고유 ID 값을 가진 커널만이 해당 버퍼를 액세스하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 9 | 제1항에 있어서, 상기 수신 커널에 고유 ID 값이 미할당되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 10 | 제1항에 있어서, 패킷 처리를 하는 웝(warp)들은 첫 번째 웝부터 마지막 웝까지 순차적으로 순회하도록 하여 순차적인 패킷 처리를 수행하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 11 | 제1항에 있어서, 동시에 처리 가능한 웝 단위를 증가시키는 복수의 웝이 포함된 웝 배치(warp_batch)가 GPU 패킷 I/O의 기본 연산 수행단위로 결정되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 12 | 제1항에 있어서, 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하는 단계는, 상기 송신 커널(Tx-kernel)에 의한 디스크립터 정보의 업데이트 동작과 도어벨 레지스터의 엑세스 동작에 따라 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법. |
| 13 | 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치에 있어서,네트워크에 연결하여 패킷들을 송수신하기 위한 네트워크 인터페이스 컨트롤러(NIC, Network interface controller); GPU(Graphic Processing Unit) 메모리 내에서 복수의 패킷 버퍼를 포함하는 메모리 풀; 상기 메모리 풀로부터 가용한 패킷 버퍼를 할당받고, 상기 네트워크 인터페이스 컨트롤러에서 수신된 패킷들이 상기 할당받은 패킷 버퍼에 직접 전달된 후 상기 직접 전달된 패킷들을 처리하는 수신 커널(Rx-kernel); 및 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하고, 상기 할당된 패킷 버퍼를 반납하는 송신 커널(Tx-kernel)을 포함하고,상기 GPU 내부 패킷 입출력 장치는 상기 수신 커널 및 상기 송신 커널이 동작하기 전에 상기 네트워크 인터페이스 컨트롤러에서 상기 GPU로 상기 수신된 패킷을 직접 전달하기 위해 초기화를 수행하며,상기 초기화 수행은,상기 메모리 풀의 DMA 주소들이 오프셋(Offset) 연산 과정을 통해 상기 네트워크 인터페이스 컨트롤러의 드라이버가 이전에 가지고 있던 패킷 버퍼 주소들을 대체하고,P2P-DMA(Peer To Peer Direct Memory Access)를 통해 GPU 메모리에 메모리 풀과 링 디스크립터를 세팅하고, 2단계의 맵핑과정을 통해 도어벨 레지스터를 GPU 메모리 내에 세팅하도록 수행되며,상기 메모리 풀과 링 디스크립터의 세팅은,GPU 메모리 내에 상기 메모리 풀과 상기 링 디스크립터가 제공되고, 상기 메모리 풀 및 상기 링 디스크립터의 주소 및 크기 정보가 상기 네트워크 인터페이스 컨트롤러 드라이버에 전달되고, 상기 정보에 기반하여 DMA 가능한 주소를 획득하고, 상기 링 디스크립터에 상기 DMA 가능한 주소가 매크로를 통해 설정되어 상기 네트워크 인터페이스 컨트롤러가 상기 링 디스크립터를 통해 관리가 가능하도록 세팅이 이루어지고,상기 도어벨 레지스터의 세팅은,상기 도어벨 레지스터의 주소가 가상 주소에 맵핑되고, 상기 네트워크 인터페이스 컨트롤러 드라이버에서 상기 가상 주소에 맵핑된 상기 도어벨 레지스터의 주소가 유저 영역의 가상 주소로 맵핑되고, 상기 유저 영역의 가상 주소로 맵핑된 상기 도어벨 레지스터의 주소는 GPU 메모리 내로 맵핑되어 상기 수신 커널 및 상기 송신 커널이 접근 가능하도록 세팅이 이루어지는 것을 특징으로 하는 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 14 | 삭제 |
| 15 | 삭제 |
| 16 | 제13항에 있어서, 상기 수신 커널은, 상기 직접 전달된 패킷들과 관련된 링 디스크립터의 정보를 업데이트하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 17 | 제13항에 있어서, 상기 수신된 패킷들은 P2P-DMA(Peer To Peer Direct Memory Access)를 통해 상기 GPU 메모리 내의 패킷 버퍼로 직접 전달되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 18 | 제13항에 있어서, 각 GPU 쓰레드는 링 디스크립터와 일대일 맵핑되어 각 쓰레드마다 담당 디스크립터를 하나씩 가지는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 19 | 제13항에 있어서, 상기 메모리 풀은, 각 GPU 쓰레드들마다 독립된 복수의 미니-메모리 풀로 나누어지고, GPU 쓰레드들이 상기 메모리 풀에 액세스할 때 서로 다른 미니-메모리 풀에 액세스하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 20 | 제13항에 있어서, 각 GPU 커널은 고유 ID를 가지고, 특정 패킷 버퍼의 상태 레지스터(status_register) 필드에 쓰여진 ID 값과 일치하는 고유 ID 값을 가진 커널만이 해당 버퍼를 액세스하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 21 | 제13항에 있어서, 상기 수신 커널에 고유 ID 값이 미할당되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 22 | 제13항에 있어서, 패킷 처리를 하는 웝(warp)들은 첫 번째 웝부터 마지막 웝까지 순차적으로 순회하도록 하여 순차적인 패킷 처리를 수행하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 23 | 제13항에 있어서, 동시에 처리 가능한 웝 단위를 증가시키는 복수의 웝이 포함된 웝 배치(warp_batch)가 GPU 패킷 I/O의 기본 연산 수행단위로 결정되는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 24 | 제13항에 있어서, 상기 네트워크 인터페이스 컨트롤러를 통한 전송 패킷의 네트워크 전송은, 상기 송신 커널(Tx-kernel)에 의한 디스크립터 정보의 업데이트 동작과 도어벨 레지스터의 엑세스 동작에 따라 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하는, 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 장치. |
| 25 | 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 GPU 내부 패킷 입출력 장치에 의해 수행되는 상용 이더넷 장비 기반의 GPU 내부 패킷 입출력 방법을 실행하게 하는 명령어들을 저장하기 위한 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은: GPU(Graphic Processing Unit) 내부의 메모리 풀로부터 가용한 패킷 버퍼를 할당받는 단계; 네트워크 인터페이스 컨트롤러(NIC, Network interface controller)에서 수신된 패킷들이 상기 할당받은 패킷 버퍼에 직접 전달된 후 상기 직접 전달된 패킷들을 수신 커널(Rx-kernel)을 통해 처리하는 단계; 송신 커널(Tx-kernel)의 동작에 따라 상기 네트워크 인터페이스 컨트롤러를 통해 전송 패킷을 네트워크로 전송하는 단계; 및 상기 할당된 패킷 버퍼를 반납하는 단계를 포함하고,상기 GPU 내부 패킷 입출력 장치는 상기 수신 커널 및 상기 송신 커널이 동작하기 전에 상기 네트워크 인터페이스 컨트롤러에서 상기 GPU로 상기 수신된 패킷을 직접 전달하기 위해 초기화를 수행하며,상기 초기화 수행은,상기 메모리 풀의 DMA 주소들이 오프셋(Offset) 연산 과정을 통해 상기 네트워크 인터페이스 컨트롤러의 드라이버가 이전에 가지고 있던 패킷 버퍼 주소들을 대체하고,P2P-DMA(Peer To Peer Direct Memory Access)를 통해 GPU 메모리에 메모리 풀과 링 디스크립터를 세팅하고, 2단계의 맵핑과정을 통해 도어벨 레지스터를 GPU 메모리 내에 세팅하도록 수행되며,상기 메모리 풀과 링 디스크립터의 세팅은,GPU 메모리 내에 상기 메모리 풀과 상기 링 디스크립터가 제공되고, 상기 메모리 풀 및 상기 링 디스크립터의 주소 및 크기 정보가 상기 네트워크 인터페이스 컨트롤러 드라이버에 전달되고, 상기 정보에 기반하여 DMA 가능한 주소를 획득하고, 상기 디스크립터에 상기 DMA 가능한 주소가 매크로를 통해 설정되어 상기 네트워크 인터페이스 컨트롤러가 상기 링 디스크립터를 통해 관리가 가능하도록 세팅이 이루어지고,상기 도어벨 레지스터의 세팅은,상기 도어벨 레지스터의 주소가 가상 주소에 맵핑되고, 상기 네트워크 인터페이스 컨트롤러 드라이버에서 상기 가상 주소에 맵핑된 상기 도어벨 레지스터의 주소가 유저 영역의 가상 주소로 맵핑되고, 상기 유저 영역의 가상 주소로 맵핑된 상기 도어벨 레지스터의 주소는 GPU 메모리 내로 맵핑되어 상기 수신 커널 및 상기 송신 커널이 접근 가능하도록 세팅이 이루어지는 것을 특징으로 하는 비일시적 컴퓨터 판독 가능한 저장 매체. |