1 |
1
가상 머신을 실행하는 호스트 장치와 통신하고, 그리고 CSV(Computational Storage Virtualization) 장치, 스토리지 장치, 및 연산 장치를 포함하는 가상화 장치의 동작하는 방법에 있어서:상기 CSV 장치에 의해, 상기 호스트 장치로부터, 상기 가상 머신의 제1 어드레스, 상기 스토리지 장치의 제2 어드레스, 및 읽기 동작을 가리키는 제1 요청을 수신하는 단계;상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 실제 머신의 제3 어드레스 및 상기 연산 장치의 제4 어드레스를 획득하는 단계;상기 CSV 장치에 의해, 상기 스토리지 장치에게, 상기 제2 어드레스, 상기 제4 어드레스, 및 리디렉션을 가리키는 제2 요청을 제공하는 단계;상기 스토리지 장치에 의해, 상기 연산 장치에게, 상기 제2 요청에 기초하여 원시 데이터를 제공하는 단계;상기 CSV 장치에 의해, 상기 연산 장치에게, 상기 제3 어드레스, 상기 제4 어드레스, 및 처리 동작을 가리키는 제3 요청을 제공하는 단계;상기 연산 장치에 의해, 상기 제3 요청 및 상기 원시 데이터에 기초하여 처리된 데이터를 생성하는 단계; 및상기 연산 장치에 의해, 상기 호스트 장치에게, 상기 처리된 데이터를 제공하는 단계를 포함하고, 상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 상기 실제 머신의 상기 제3 어드레스 및 상기 연산 장치의 상기 제4 어드레스를 획득하는 단계는:상기 CSV 장치에 의해, 상기 제1 요청의 리저브드 필드를 참조하여 상기 제1 요청이 연산 스토리지 동작을 가리키는지 여부를 결정하는 단계; 및상기 CSV 장치에 의해, 상기 제1 요청이 상기 연산 스토리지 동작을 가리키는 것으로 결정하면, 상기 제3 어드레스 및 상기 제4 어드레스를 획득하는 단계를 포함하는 방법
|
2 |
2
제 1 항에 있어서,상기 가상화 장치는 상기 호스트 장치, 상기 CSV 장치, 상기 스토리지 장치, 및 상기 연산 장치와 연결된 PCIe(Peripheral Component Interconnect express) 회로를 더 포함하고,상기 스토리지 장치에 의해, 상기 연산 장치에게, 상기 제2 요청에 기초하여 상기 원시 데이터를 제공하는 단계는:상기 스토리지 장치에 의해, 상기 PCIe 회로를 통해 상기 연산 장치에게, 상기 제2 요청의 상기 제4 어드레스에 기초하여 상기 원시 데이터를 직접적으로 제공하는 단계를 포함하고, 그리고상기 연산 장치에 의해, 상기 호스트 장치에게, 상기 처리된 데이터를 제공하는 단계는:상기 연산 장치에 의해, 상기 PCIe 회로를 통해 상기 호스트 장치에게, 상기 제3 요청의 상기 제3 어드레스에 기초하여 상기 처리된 데이터를 직접적으로 제공하는 단계를 포함하는 방법
|
3 |
3
제 1 항에 있어서,상기 제1 요청, 상기 제2 요청, 및 상기 제3 요청의 각각은 NVMe(Non-Volatile Memory Express) 표준의 커맨드 포맷의 상기 리저브드 필드를 변경함으로써 구현되는 방법
|
4 |
4
제 3 항에 있어서,상기 리저브드 필드는:상기 연산 장치의 상기 처리 동작의 종류를 가리키는 연산자 체인 식별자(Operator Chain Identifier);상기 처리된 데이터를 요청하는 소스의 위치를 가리키는 소스 어드레스;상기 처리된 데이터를 수신하는 목적지의 위치를 가리키는 목적지 어드레스;상기 소스 어드레스에 따라 전송될 데이터의 크기를 가리키는 소스 사이즈;상기 목적지 어드레스에 따라 전송될 데이터의 크기를 가리키는 목적지 사이즈;동일한 종류의 동작들을 가리키는 서로 다른 요청들 사이의 의존성(dependency)을 관리하는 요청 식별자;상기 스토리지 장치의 인덱스 및 상기 연산 장치의 인덱스를 가리키는 물리적 장치 식별자;상기 스토리지 장치로의 액세스가 필요한지 여부를 가리키는 타입;상기 연산 장치의 상기 처리 동작에 사용되는 정보가 저장된 상기 호스트 장치 내의 위치를 가리키는 직접 파라미터;상기 연산 장치의 상기 처리 동작에 사용되는 복사된 정보가 저장된 상기 스토리지 장치 내의 위치를 가리키는 파일 파라미터;상기 직접 파라미터의 전송에 사용되는 직접 파라미터 포인터; 및상기 파일 파라미터의 전송에 사용되는 파일 파라미터 포인터 중 적어도 하나를 가리키는 방법
|
5 |
5
제 1 항에 있어서,상기 스토리지 장치 내의 상기 원시 데이터는 압축된 데이터 또는 암호화된 데이터이고, 그리고상기 연산 장치에 의한 상기 처리된 데이터는 압축해제된 데이터 또는 복호화된 데이터인 방법
|
6 |
6
삭제
|
7 |
7
제 1 항에 있어서,상기 스토리지 장치에 의해, 상기 연산 장치에게, 상기 제2 요청에 기초하여 상기 원시 데이터를 제공하는 단계는:상기 스토리지 장치에 의해, 상기 원시 데이터를 제공한 후, 상기 CSV 장치에게 제1 컴플리션을 제공하는 단계를 포함하고,상기 CSV 장치에 의해, 상기 연산 장치에게, 상기 제3 어드레스, 상기 제4 어드레스, 및 상기 처리 동작을 가리키는 상기 제3 요청을 제공하는 단계는:상기 CSV 장치에 의해, 상기 제1 컴플리션에 응답하여, 상기 연산 장치에게 상기 제3 요청을 제공하는 단계를 포함하고, 그리고상기 연산 장치에 의해, 상기 호스트 장치에게, 상기 처리된 데이터를 제공하는 단계는:상기 연산 장치에 의해, 상기 처리된 데이터를 제공한 후, 상기 CSV 장치에게 완료 알림(done notification)을 제공하는 단계; 및상기 CSV 장치에 의해, 상기 완료 알림에 응답하여, 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함하는 방법
|
8 |
8
제 1 항에 있어서,상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 상기 실제 머신의 상기 제3 어드레스 및 상기 연산 장치의 상기 제4 어드레스를 획득하는 단계는:상기 CSV 장치에 의해, 상기 CSV 장치 내의 어드레스 변환 테이블을 참조하여, 상기 제1 어드레스에 기초하여 상기 제3 어드레스를 획득하는 단계를 포함하는 방법
|
9 |
9
제 1 항에 있어서,상기 가상화 장치는 상기 호스트 장치 및 상기 CSV 장치와 통신하는 I/O(input/output) 메모리 관리 유닛을 더 포함하고, 그리고상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 상기 실제 머신의 상기 제3 어드레스 및 상기 연산 장치의 상기 제4 어드레스를 획득하는 단계는:상기 I/O 메모리 관리 유닛에 의해, 상기 제1 요청에 기초하여 상기 제1 어드레스를 상기 제3 어드레스로 변환하는 단계; 및상기 CSV 장치에 의해, 상기 I/O 메모리 관리 유닛으로부터 상기 제3 어드레스를 수신하는 단계를 포함하는 방법
|
10 |
10
제 1 항에 있어서,상기 가상화 장치는 복수의 가상 머신들 중 타겟 가상 머신으로서 상기 가상 머신을 식별하고, 복수의 스토리지 장치들 중 타겟 스토리지 장치로서 상기 스토리지 장치를 식별하고, 그리고 복수의 연산 장치들 중 타겟 연산 장치로서 상기 연산 장치를 식별하도록 구성된 방법
|
11 |
11
제 1 항에 있어서,상기 CSV 장치는 제1 FPGA(Field Programmable Gate Array)로 구현되고, 그리고상기 연산 장치는 제2 FPGA로 구현되는 방법
|
12 |
12
제 1 항에 있어서,상기 연산 장치는 상기 CSV 장치의 내부-연산 장치로 구현되는 방법
|
13 |
13
가상 머신을 실행하는 호스트 장치와 통신하고, 그리고 CSV(Computational Storage Virtualization) 장치, 스토리지 장치, 및 연산 장치를 포함하는 가상화 장치의 동작하는 방법에 있어서:상기 CSV 장치에 의해, 상기 호스트 장치로부터, 상기 가상 머신의 제1 어드레스, 상기 스토리지 장치의 제2 어드레스, 및 쓰기 동작을 가리키는 제1 요청을 수신하는 단계;상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 실제 머신의 제3 어드레스 및 상기 연산 장치의 제4 어드레스를 획득하는 단계;상기 CSV 장치에 의해, 상기 연산 장치에게, 상기 제3 어드레스, 상기 제4 어드레스, 및 처리 동작을 가리키는 제2 요청을 제공하는 단계;상기 연산 장치에 의해, 상기 호스트 장치로부터, 상기 제2 요청에 기초하여 원시 데이터를 수신하는 단계;상기 연산 장치에 의해, 상기 제2 요청 및 상기 원시 데이터에 기초하여 처리된 데이터를 생성하는 단계;상기 CSV 장치에 의해, 상기 스토리지 장치에게, 상기 제2 어드레스, 상기 제4 어드레스, 및 저장 동작을 가리키는 제3 요청을 제공하는 단계;상기 스토리지 장치에 의해, 상기 연산 장치로부터, 상기 제3 요청에 기초하여 상기 처리된 데이터를 수신하는 단계; 및상기 스토리지 장치에 의해, 상기 처리된 데이터를 저장하는 단계를 포함하고, 상기 CSV 장치에 의해, 상기 제1 요청에 기초하여 상기 가상 머신에 대응하는 실제 머신의 제3 어드레스 및 상기 연산 장치의 제4 어드레스를 획득하는 단계는:상기 CSV 장치에 의해, 상기 제1 요청의 리저브드 필드를 참조하여 상기 제1 요청이 연산 스토리지 동작을 가리키는지 여부를 결정하는 단계; 및상기 CSV 장치에 의해, 상기 제1 요청이 상기 연산 스토리지 동작을 가리키는 것으로 결정하면, 상기 제3 어드레스 및 상기 제4 어드레스를 획득하는 단계를 포함하는 방법
|
14 |
14
제 13 항에 있어서,상기 가상화 장치는 상기 호스트 장치, 상기 CSV 장치, 상기 스토리지 장치, 및 상기 연산 장치와 연결된 PCIe(Peripheral Component Interconnect express) 회로를 더 포함하고,상기 연산 장치에 의해, 상기 호스트 장치로부터, 상기 제2 요청에 기초하여 상기 원시 데이터를 수신하는 단계는:상기 연산 장치에 의해, 상기 PCIe 회로를 통해 상기 호스트 장치로부터, 상기 제2 요청의 상기 제3 어드레스에 기초하여 상기 원시 데이터를 직접적으로 수신하는 단계를 포함하고, 그리고상기 스토리지 장치에 의해, 상기 연산 장치로부터, 상기 제3 요청에 기초하여 상기 처리된 데이터를 수신하는 단계는:상기 스토리지 장치에 의해, 상기 PCIe 회로를 통해 상기 연산 장치로부터, 상기 제3 요청의 상기 제4 어드레스에 기초하여 상기 처리된 데이터를 직접적으로 수신하는 단계를 포함하는 방법
|
15 |
15
제 13 항에 있어서,상기 제1 요청, 상기 제2 요청, 및 상기 제3 요청의 각각은 NVMe(Non-Volatile Memory Express) 표준의 커맨드 포맷의 상기 리저브드 필드를 변경함으로써 구현되는 방법
|
16 |
16
제 15 항에 있어서,상기 리저브드 필드는:상기 연산 장치의 상기 처리 동작의 종류를 가리키는 연산자 체인 식별자(Operator Chain Identifier);상기 처리된 데이터를 요청하는 소스의 위치를 가리키는 소스 어드레스;상기 처리된 데이터를 수신하는 목적지의 위치를 가리키는 목적지 어드레스;상기 소스 어드레스에 따라 전송될 데이터의 크기를 가리키는 소스 사이즈;상기 목적지 어드레스에 따라 전송될 데이터의 크기를 가리키는 목적지 사이즈;동일한 종류의 동작들을 가리키는 서로 다른 요청들 사이의 의존성(dependency)을 관리하는 요청 식별자;상기 CSV 장치의 인덱스, 상기 스토리지 장치의 인덱스, 및 상기 연산 장치의 인덱스를 가리키는 물리적 장치 식별자;상기 스토리지 장치로의 액세스가 필요한지 여부를 가리키는 타입;상기 연산 장치의 상기 처리 동작에 사용되는 정보가 저장된 상기 호스트 장치 내의 위치를 가리키는 직접 파라미터;상기 연산 장치의 상기 처리 동작에 사용되는 복사된 정보가 저장된 상기 스토리지 장치 내의 위치를 가리키는 파일 파라미터;상기 직접 파라미터의 전송에 사용되는 직접 파라미터 포인터; 및상기 파일 파라미터의 전송에 사용되는 파일 파라미터 포인터 중 적어도 하나를 가리키는 방법
|
17 |
17
제 13 항에 있어서,상기 호스트 장치의 원시 데이터는 압축되지 않은 데이터 또는 암호화되지 않은 데이터이고, 그리고상기 연산 장치에 의한 상기 처리된 데이터는 압축된 데이터 또는 암호화된 데이터인 방법
|
18 |
18
제 13 항에 있어서,상기 연산 장치에 의해, 상기 제2 요청 및 상기 원시 데이터에 기초하여 상기 처리된 데이터를 생성하는 단계는:상기 연산 장치에 의해, 상기 처리된 데이터를 생성한 후, 상기 CSV 장치에게 완료 알림(done notification)을 제공하는 단계를 포함하고,상기 CSV 장치에 의해, 상기 스토리지 장치에게, 상기 제2 어드레스, 상기 제4 어드레스, 및 상기 저장 동작을 가리키는 상기 제3 요청을 제공하는 단계는:상기 CSV 장치에 의해, 상기 완료 알림에 응답하여, 상기 스토리지 장치에게 상기 제3 요청을 제공하는 단계를 포함하고, 그리고상기 스토리지 장치에 의해, 상기 처리된 데이터를 저장하는 단계는:상기 스토리지 장치에 의해, 상기 처리된 데이터를 저장한 후, 상기 CSV 장치에게 제1 컴플리션을 제공하는 단계; 및상기 CSV 장치에 의해, 상기 제1 컴플리션에 응답하여, 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함하는 방법
|
19 |
19
제1 데이터를 저장하도록 구성된 스토리지 장치;상기 제1 데이터를 처리하고, 그리고 호스트 장치에 의해 실행되는 가상 머신의 제2 데이터를 처리하도록 구성된 연산 장치;CSV(Computational Storage Virtualization) 장치; 및상기 스토리지 장치, 상기 연산 장치, 상기 CSV 장치, 및 상기 호스트 장치와 연결된 PCIe(Peripheral Component Interconnect express) 회로를 포함하되,상기 CSV 장치는:상기 호스트 장치로부터 상기 가상 머신의 제1 어드레스 및 상기 스토리지 장치의 제2 어드레스를 포함하는 제1 요청을 수신하고;상기 제1 요청의 리저브드 필드를 참조하여 상기 제1 요청이 연산 스토리지 동작을 가리키는 것으로 결정되면, 상기 가상 머신에 대응하는 실제 머신의 제3 어드레스 및 상기 연산 장치의 제4 어드레스를 획득하고;상기 제1 요청이 읽기 동작 또는 쓰기 동작을 가리키는지 여부를 결정하고;상기 제1 요청이 상기 읽기 동작을 가리키는 것으로 결정하면, 상기 제2 어드레스, 상기 제4 어드레스, 및 리디렉션을 가리키는 제2 요청을 상기 스토리지 장치에게 제공하고, 그리고 상기 제3 어드레스, 상기 제4 어드레스, 및 상기 제1 데이터의 제1 처리 동작을 가리키는 제3 요청을 상기 연산 장치에게 제공하고; 그리고상기 제1 요청이 상기 쓰기 동작을 가리키는 것으로 결정하면, 상기 제3 어드레스, 상기 제4 어드레스, 및 상기 제2 데이터의 제2 처리 동작을 가리키는 제4 요청을 상기 연산 장치에게 제공하고, 그리고 상기 제2 어드레스, 상기 제4 어드레스, 및 저장 동작을 가리키는 제5 요청을 상기 스토리지 장치에게 제공하도록 구성된 가상화 장치
|
20 |
20
제 19 항에 있어서,상기 CSV 장치는:상기 가상 머신과의 인터페이스를 제공하는 VF(Virtual Function)를 포함하는 SR-IOV(single root input/output virtualization) 어댑터; 및상기 VF를 통해 상기 가상 머신을 식별하고, 상기 가상 머신에 대한 상기 스토리지 장치의 리소스 및 상기 연산 장치의 리소스를 할당하고, 상기 제1 요청에 기초하여 상기 제3 어드레스 및 상기 제4 어드레스를 획득하고, 그리고 상기 제1 요청에 기초하여 상기 제2 요청 및 상기 제3 요청을 생성하거나 또는 상기 제1 요청에 기초하여 상기 제4 요청 및 상기 제5 요청을 생성하도록 구성된 장치 오케스트라를 포함하는 가상화 장치
|