1 |
1
제1 I/O(Input/Output) 디바이스 및 제2 I/O 디바이스 사이의 데이터 통신에 대한 적어도 하나의 D2D(Device to Device) 커맨드를 저장하는 커맨드 큐;상기 적어도 하나의 D2D 커맨드로부터 상기 데이터 통신과 관련된 정보를 획득하는 커맨드 파서; 및상기 획득된 정보에 기초하여 상기 제1 I/O 디바이스로부터 상기 제2 I/O 디바이스로 데이터가 전송되도록 상기 제1 I/O 디바이스 및 상기 제2 I/O 디바이스 중 적어도 하나를 제어하는 오케스트레이터를 포함하고,상기 적어도 하나의 D2D 커맨드는 상기 제1 I/O 디바이스 또는 상기 제2 I/O 디바이스 중 하나를 가리키는 주체 디바이스에 대한 정보를 포함하고,상기 오케스트레이터는 상기 주체 디바이스가 인식하는 프로토콜에 따라 상기 적어도 하나의 D2D 커맨드에 대응하는 I/O 디바이스 커맨드를 생성하고, 상기 생성된 I/O 디바이스 커맨드를 상기 주체 디바이스로 전송하는 I/O 디바이스 제어 장치
|
2 |
2
제 1 항에 있어서,상기 적어도 하나의 D2D 커맨드는 상기 데이터 통신과 관련된 소스 주소 및 타겟 주소에 대한 정보를 더 포함하고,상기 소스 주소는 상기 제1 I/O 디바이스의 메모리 주소를 가리키고,상기 타겟 주소는 상기 제2 I/O 디바이스의 메모리 주소를 가리키는 I/O 디바이스 제어 장치
|
3 |
3
제 2 항에 있어서,상기 오케스트레이터는 상기 적어도 하나의 D2D 커맨드에 기초하여 상기 주체 디바이스가 상기 소스 주소에 저장된 데이터를 인출하여 상기 타겟 주소에 상기 인출된 데이터를 저장하도록 상기 주체 디바이스를 제어하는 I/O 디바이스 제어 장치
|
4 |
4
제 2 항에 있어서,상기 적어도 하나의 D2D 커맨드는 상기 데이터 통신과 관련된 통신 방향 및 데이터 길이에 대한 정보를 더 포함하고,상기 통신 방향은 상기 주체 디바이스를 기준으로 상기 데이터의 이동 방향을 가리키고, 상기 데이터 길이는 상기 소스 주소에 저장된 데이터의 길이를 가리키는 I/O 디바이스 제어 장치
|
5 |
5
제 1 항에 있어서,상기 적어도 하나의 D2D 커맨드는 상기 데이터 통신과 관련된 의존성에 대한 정보를 더 포함하고,상기 의존성은 상기 적어도 하나의 D2D 커맨드가 수행된 이후에, 추가적으로 수행될 의존성 있는 D2D 커맨드가 존재하는지 여부를 가리키고,상기 오케스트레이터는 상기 의존성에 기초하여 상기 의존성 있는 D2D 커맨드가 존재하지 않음을 판별하는 I/O 디바이스 제어 장치
|
6 |
6
삭제
|
7 |
7
제 1 항에 있어서,상기 오케스트레이터는 상기 주체 디바이스가 요구하는 표준 디바이스 프로토콜에 따라 상기 I/O 디바이스 커맨드를 생성하는 I/O 디바이스 제어 장치
|
8 |
8
제 1 항에 있어서,상기 제1 I/O 디바이스 또는 상기 제2 I/O 디바이스에 저장된 데이터가 인출되는 경우, 상기 인출된 데이터를 저장하는 중간 버퍼를 더 포함하는 I/O 디바이스 제어 장치
|
9 |
9
제 8 항에 있어서,상기 적어도 하나의 D2D 커맨드는 제1 D2D 커맨드 및 제2 D2D 커맨드를 포함하고,상기 제1 D2D 커맨드 및 상기 제2 D2D 커맨드는 각각 상기 데이터 통신과 관련된 주체 디바이스, 소스 주소, 타겟 주소, 및 의존성에 대한 정보를 포함하고,상기 제1 D2D 커맨드의 상기 주체 디바이스는 상기 제1 I/O 디바이스를 가리키고, 상기 제1 D2D 커맨드의 상기 소스 주소는 상기 제1 I/O 디바이스의 메모리 주소를 가리키고, 상기 제1 D2D 커맨드의 상기 타겟 주소는 상기 중간 버퍼의 메모리 주소를 가리키고, 상기 제1 D2D 커맨드의 상기 의존성은 의존성 있는 상기 제2 D2D 커맨드가 존재함을 가리키고, 상기 제2 D2D 커맨드의 상기 주체 디바이스는 상기 제2 I/O 디바이스를 가리키고, 상기 제2 D2D 커맨드의 상기 소스 주소는 상기 중간 버퍼의 상기 메모리 주소를 가리키고, 상기 제2 D2D 커맨드의 상기 타겟 주소는 상기 제2 I/O 디바이스의 메모리 주소를 가리키고, 상기 제2 D2D 커맨드의 상기 의존성은 의존성 있는 D2D 커맨드가 존재하지 않음을 가리키는 I/O 디바이스 제어 장치
|
10 |
10
제 9 항에 있어서,상기 오케스트레이터는,상기 제1 D2D 커맨드에 기초하여 상기 제1 I/O 디바이스가 상기 제1 I/O 디바이스의 상기 메모리 주소에 저장된 데이터를 인출하여 상기 중간 버퍼의 상기 메모리 주소에 인출된 데이터를 저장하도록 상기 제1 I/O 디바이스를 제어하고,상기 제2 D2D 커맨드에 기초하여 상기 제2 I/O 디바이스가 상기 중간 버퍼의 상기 메모리 주소에 저장된 데이터를 인출하여 상기 제2 I/O 디바이스의 상기 메모리 주소에 인출된 데이터를 저장하도록 상기 제2 I/O 디바이스를 제어하는 I/O 디바이스 제어 장치
|
11 |
11
제 9 항에 있어서,상기 오케스트레이터는 상기 제1 D2D 커맨드의 의존성 및 상기 제2 D2D 커맨드의 의존성에 기초하여 상기 제1 D2D 커맨드를 수행한 후 상기 제2 D2D 커맨드를 수행하는 I/O 디바이스 제어 장치
|
12 |
12
제 9 항에 있어서,상기 제2 D2D 커맨드는 TCP/IP(Transmission Control Protocol/Internet Protocol)의 정보를 더 포함하고,상기 오케스트레이터는 상기 제2 D2D 커맨드에 기초하여 상기 제2 I/O 디바이스가 상기 중간 버퍼의 상기 메모리 주소에 저장된 데이터를 인출하고, 상기 인출된 데이터 및 상기 TCP/IP의 정보가 포함된 패킷을 생성하여 외부로 전송하도록 상기 제2 I/O 디바이스를 제어하는 I/O 디바이스 제어 장치
|
13 |
13
제 8 항에 있어서,상기 중간 버퍼에 저장된 데이터를 처리하고, 상기 처리로부터 생성된 결과 데이터를 상기 중간 버퍼에 저장하는 데이터 처리기를 더 포함하는 I/O 디바이스 제어 장치
|
14 |
14
제 13 항에 있어서,상기 적어도 하나의 D2D 커맨드는 제1 D2D 커맨드, 제2 D2D 커맨드 및 제3 D2D 커맨드를 포함하고,상기 제1 D2D 커맨드 및 제3 D2D 커맨드는 각각 상기 데이터 통신과 관련된 주체 디바이스, 소스 주소, 타겟 주소, 및 의존성에 대한 정보를 포함하고,상기 제2 D2D 커맨드는 상기 처리와 관련된 데이터 처리 종류, 소스 주소, 타겟 주소, 및 의존성에 대한 정보를 포함하고,상기 제1 D2D 커맨드의 상기 주체 디바이스는 상기 제1 I/O 디바이스를 가리키고, 상기 제1 D2D 커맨드의 상기 소스 주소는 상기 제1 I/O 디바이스의 메모리 주소를 가리키고, 상기 제1 D2D 커맨드의 상기 타겟 주소는 상기 중간 버퍼의 제1 메모리 주소를 가리키고, 상기 제1 D2D 커맨드의 상기 의존성은 의존성 있는 제2 D2D 커맨드가 존재함을 가리키고,상기 제2 D2D 커맨드의 상기 데이터 처리 종류는 상기 처리에 대응하는 연산의 종류를 가리키고, 상기 제2 D2D 커맨드의 상기 소스 주소는 상기 중간 버퍼의 상기 제1 메모리 주소를 가리키고, 상기 제2 D2D 커맨드의 상기 타겟 주소는 상기 중간 버퍼의 제2 메모리 주소를 가리키고, 상기 제2 D2D 커맨드의 상기 의존성은 의존성 있는 제3 D2D 커맨드가 존재함을 가리키고,상기 제3 D2D 커맨드의 상기 주체 디바이스는 상기 제2 I/O 디바이스를 가리키고, 상기 제3 D2D 커맨드의 상기 소스 주소는 상기 중간 버퍼의 상기 제2 메모리 주소를 가리키고, 상기 제3 D2D 커맨드의 상기 타겟 주소는 상기 제2 I/O 디바이스의 메모리 주소를 가리키고, 상기 제3 D2D 커맨드의 상기 의존성은 의존성 있는 D2D 커맨드가 존재하지 않음을 가리키는 I/O 디바이스 제어 장치
|
15 |
15
제 14 항에 있어서,상기 오케스트레이터는,상기 제1 D2D 커맨드에 기초하여 상기 제1 I/O 디바이스가 상기 제1 I/O 디바이스의 상기 메모리 주소에 저장된 데이터를 인출하여 상기 중간 버퍼의 상기 제1 메모리 주소에 인출된 데이터를 저장하도록 상기 제1 I/O 디바이스를 제어하고,상기 제2 D2D 커맨드에 기초하여 상기 데이터 처리기가 상기 데이터 처리 종류에 따라 상기 중간 버퍼의 상기 제1 메모리 주소에 저장된 데이터를 처리한 후, 상기 결과 데이터를 상기 중간 버퍼의 상기 제2 메모리 주소에 저장하도록 상기 데이터 처리기를 제어하고,상기 제3 D2D 커맨드에 기초하여 상기 제2 I/O 디바이스가 상기 중간 버퍼의 상기 제2 메모리 주소에 저장된 데이터를 인출하여 상기 제2 I/O 디바이스의 상기 메모리 주소에 인출된 데이터를 저장하도록 상기 제2 I/O 디바이스를 제어하는 I/O 디바이스 제어 장치
|
16 |
16
제 1 항에 있어서,상기 제1 I/O 디바이스, 상기 제2 I/O 디바이스 및 상기 I/O 디바이스 제어 장치 각각은 PCIe(Peripheral Component Interconnect Express) 슬롯에 장착되는 I/O 디바이스 제어 장치
|
17 |
17
제1 I/O(Input/Output) 디바이스 및 제2 I/O 디바이스 중 적어도 하나를 제어하는 I/O 디바이스 제어 장치의 동작 방법에 있어서,상기 제1 I/O 디바이스 및 상기 제2 I/O 디바이스 사이의 데이터의 전송에 대한 적어도 하나의 D2D 커맨드를 수신하는 단계;상기 적어도 하나의 D2D 커맨드로부터 상기 데이터의 상기 전송과 관련된 정보를 획득하는 단계;상기 획득된 정보에 기초하여 상기 적어도 하나의 D2D 커맨드에 대응하는 적어도 하나의 I/O 디바이스 커맨드를 생성하는 단계; 및상기 적어도 하나의 I/O 디바이스 커맨드를 상기 제1 I/O 디바이스 및 상기 제2 I/O 디바이스 중 적어도 하나로 전송하는 단계를 포함하고,상기 적어도 하나의 D2D 커맨드는 상기 제1 I/O 디바이스 및 상기 제2 I/O 디바이스 중 적어도 하나를 가리키는 주체 디바이스에 대한 정보를 포함하고,상기 적어도 하나의 I/O 디바이스 커맨드는 상기 주체 디바이스가 인식하는 프로토콜에 따라 생성되어 상기 주체 디바이스로 전송되는 동작 방법
|
18 |
18
제 17 항에 있어서,상기 획득된 정보에 기초하여 상기 적어도 하나의 D2D 커맨드가 데이터 처리 커맨드를 포함하는지 여부를 판별하는 단계; 및상기 데이터 처리 커맨드가 존재하는 경우, 상기 제1 I/O 디바이스 또는 상기 제2 I/O 디바이스 중 하나로부터 전달된 상기 데이터를 처리하여 처리된 데이터를 생성하는 단계를 더 포함하는 동작 방법
|
19 |
19
호스트로부터 제1 I/O(Input/Output) 디바이스 및 제2 I/O 디바이스 사이의 데이터 통신에 대한 명령을 I/O 디바이스 제어 장치로 전달하는 I/O 디바이스 제어 장치 드라이버의 동작 방법에 있어서,상기 제1 I/O 디바이스로부터 상기 제2 I/O 디바이스로 데이터를 전송하는 상기 명령을 상기 호스트로부터 수신하는 단계;상기 호스트로부터 상기 제1 I/O 디바이스 및 상기 제2 I/O 디바이스의 구동 정보를 확인하는 단계;상기 구동 정보에 기초하여 상기 명령에 대한 적어도 하나의 D2D 커맨드를 생성하는 단계; 및상기 적어도 하나의 D2D 커맨드를 상기 I/O 디바이스 제어 장치로 전달하는 단계를 포함하고,상기 적어도 하나의 D2D 커맨드는 상기 제1 I/O 디바이스 또는 상기 제2 I/O 디바이스 중 하나를 가리키는 주체 디바이스 및 상기 적어도 하나의 D2D 커맨드가 수행된 이후에 추가적으로 수행될 의존성 있는 D2D 커맨드가 존재하는지 여부를 가리키는 의존성에 대한 정보를 포함하는 동작 방법
|
20 |
20
제 19 항에 있어서,상기 D2D 커맨드는 상기 데이터 통신과 관련된 소스 주소 및 타겟 주소에 대한 정보를 더 포함하고,상기 소스 주소는 상기 제1 I/O 디바이스의 메모리 주소를 가리키고,상기 타겟 주소는 상기 제2 I/O 디바이스의 메모리 주소를 가리키는 동작 방법
|