1 |
1
호스트 장치 및 스토리지 장치 세트와 통신하고, 제1 SQ(submission queue) 및 제1 CQ(completion queue)를 포함하고, 그리고 상기 호스트 장치에 의해 실행되는 제1 가상 머신을 지원하는 스토리지 가상화 장치의 동작 방법에 있어서:상기 제1 가상 머신의 제1 VSQ(virtual submission queue)의 제1 커맨드를 페치(fetch)하는 단계;상기 페치된 제1 커맨드를 상기 제1 SQ로 분배하는 단계;상기 제1 SQ의 상기 제1 커맨드를 상기 스토리지 장치 세트로 제공하는 단계;상기 스토리지 장치 세트로부터 상기 제1 커맨드가 처리된 것을 가리키는 제1 컴플리션을 수신하는 단계로서, 상기 제1 컴플리션은 상기 제1 CQ에 기입되는 것;상기 제1 CQ의 상기 제1 컴플리션을 가상화 계층에 분배하는 단계; 및상기 분배된 제1 컴플리션을 상기 제1 가상 머신의 제1 VCQ(virtual completion queue)에 기입하는 단계를 포함하는 방법
|
2 |
2
제 1 항에 있어서,상기 스토리지 가상화 장치는 제2 SQ 및 제2 CQ를 더 포함하고,상기 방법은:상기 제1 가상 머신의 제2 VSQ의 제2 커맨드를 페치하는 단계;상기 페치된 제2 커맨드를 상기 제2 SQ로 분배하는 단계;상기 제2 SQ의 상기 제2 커맨드를 상기 스토리지 장치 세트로 제공하는 단계;상기 스토리지 장치 세트로부터 상기 제2 커맨드가 처리된 것을 가리키는 제2 컴플리션을 수신하는 단계로서, 상기 제2 컴플리션은 상기 제2 CQ에 기입되는 것;상기 제2 CQ의 상기 제2 컴플리션을 가상화 계층에 분배하는 단계; 및상기 분배된 제2 컴플리션을 상기 제1 가상 머신의 제2 VCQ에 기입하는 단계를 더 포함하는 방법
|
3 |
3
제 2 항에 있어서,상기 제1 SQ, 상기 제1 CQ, 상기 제2 SQ, 및 상기 제2 CQ는 상기 스토리지 장치 세트의 제1 스토리지 장치에 대응하는 방법
|
4 |
4
제 2 항에 있어서,상기 제1 SQ 및 상기 제1 CQ는 상기 스토리지 장치 세트의 제1 스토리지 장치에 대응하고, 그리고상기 제2 SQ 및 상기 제2 CQ는 상기 스토리지 장치 세트의 제2 스토리지 장치에 대응하는 방법
|
5 |
5
제 1 항에 있어서,상기 스토리지 가상화 장치는 제2 SQ 및 제2 CQ를 더 포함하고, 그리고 상기 호스트 장치에 의해 실행되는 제1 가상 머신과 다른 제2 가상 머신을 더 지원하고,상기 방법은:상기 제2 가상 머신의 제2 VSQ의 제2 커맨드를 페치하는 단계;상기 페치된 제2 커맨드를 상기 제2 SQ로 분배하는 단계;상기 제2 SQ의 상기 제2 커맨드를 상기 스토리지 장치 세트로 제공하는 단계;상기 스토리지 장치 세트로부터 상기 제2 커맨드가 처리된 것을 가리키는 제2 컴플리션을 수신하는 단계로서, 상기 제2 컴플리션은 상기 제2 CQ에 기입되는 것;상기 제2 CQ의 상기 제2 컴플리션을 가상화 계층에 분배하는 단계; 및상기 분배된 제2 컴플리션을 상기 제2 가상 머신의 제2 VCQ에 기입하는 단계를 더 포함하는 방법
|
6 |
6
제 5 항에 있어서,상기 제1 SQ, 상기 제1 CQ, 상기 제2 SQ, 및 상기 제2 CQ는 상기 스토리지 장치 세트의 제1 스토리지 장치에 대응하는 방법
|
7 |
7
제 5 항에 있어서,상기 제1 SQ 및 상기 제1 CQ는 상기 스토리지 장치 세트의 제1 스토리지 장치에 대응하고, 그리고상기 제2 SQ 및 상기 제2 CQ는 상기 스토리지 장치 세트의 제2 스토리지 장치에 대응하는 방법
|
8 |
8
제 1 항에 있어서,상기 제1 가상 머신의 제1 VSQ의 제1 커맨드를 페치하는 단계는:상기 호스트 장치로부터 상기 제1 VSQ에 상기 제1 커맨드가 기입된 것을 가리키는 제1 도어벨(doorbell)을 수신하는 단계;상기 제1 도어벨에 기초하여 상기 제1 VSQ의 상기 제1 커맨드의 제1 요청을 상기 호스트 장치로 출력하는 단계; 및상기 호스트 장치로부터 상기 제1 가상 머신의 상기 제1 VSQ의 상기 제1 커맨드를 페치하는 단계를 포함하는 방법
|
9 |
9
제 8 항에 있어서,상기 스토리지 가상화 장치는 I/O(input/output) 메모리 관리 유닛과 더 통신하고, 상기 제1 도어벨에 기초하여 상기 제1 VSQ의 상기 제1 커맨드의 제1 요청을 상기 호스트 장치로 출력하는 단계는:상기 I/O 메모리 관리 유닛을 통해, 상기 제1 VSQ의 상기 제1 커맨드의 상기 제1 요청에 대응하는 제1 가상 어드레스가 제1 물리적 어드레스로 변환되고, 상기 변환된 제1 물리적 어드레스 및 상기 제1 도어벨에 기초하여, 상기 제1 VSQ의 상기 제1 커맨드의 상기 제1 요청을 상기 호스트 장치로 출력하는 단계를 포함하고, 그리고상기 호스트 장치로부터 상기 제1 가상 머신의 상기 제1 VSQ의 상기 제1 커맨드를 페치하는 단계는:상기 I/O 메모리 관리 유닛에 의한 어드레스 변환 없이, 상기 호스트 장치로부터 상기 제1 가상 머신의 상기 제1 VSQ의 상기 제1 커맨드를 페치하는 단계를 포함하는 방법
|
10 |
10
제 1 항에 있어서,상기 스토리지 가상화 장치는 I/O(input/output) 메모리 관리 유닛과 더 통신하고, 그리고상기 분배된 제1 컴플리션을 상기 제1 가상 머신의 상기 제1 VCQ에 기입하는 단계는:상기 I/O 메모리 관리 유닛을 통해, 상기 분배된 제1 컴플리션에 대응하는 제2 가상 어드레스가 제2 물리적 어드레스로 변환되고, 상기 변환된 제2 물리적 어드레스에 기초하여, 상기 분배된 제1 컴플리션을 상기 제1 가상 머신의 상기 제1 VCQ에 기입하는 단계를 포함하는 방법
|
11 |
11
제 1 항에 있어서,상기 페치된 제1 커맨드를 상기 제1 SQ로 분배하는 단계는:상기 페치된 제1 커맨드에 포함된, 상기 제1 가상 머신의 DMA(direct memory access) 버퍼의 제3 가상 어드레스를 제3 물리적 어드레스로 변환하는 단계를 포함하는 방법
|
12 |
12
제 1 항에 있어서,상기 제1 SQ의 상기 제1 커맨드를 상기 스토리지 장치 세트로 제공하는 단계는:상기 스토리지 장치 세트의 제1 스토리지 장치의 도어벨 레지스터로, 상기 제1 SQ에 상기 제1 커맨드가 기입된 것을 가리키는 제2 도어벨을 출력하는 단계;상기 제1 스토리지 장치로부터 상기 제1 SQ의 상기 제1 커맨드의 제2 요청을 수신하는 단계; 및상기 제2 요청에 기초하여 상기 제1 SQ의 상기 제1 커맨드를 포함하는 응답을 상기 제1 스토리지 장치로 출력하는 단계를 포함하는 방법
|
13 |
13
제 1 항에 있어서,상기 호스트 장치로부터 상기 제1 VCQ에 기입된 상기 제1 컴플리션이 처리된 것을 가리키는 제3 도어벨을 수신하는 단계를 더 포함하는 방법
|
14 |
14
제 13 항에 있어서,상기 제3 도어벨에 기초하여, 상기 스토리지 장치 세트의 제1 스토리지 장치의 도어벨 레지스터로, 상기 제1 CQ에 기입된 상기 제1 컴플리션이 처리된 것을 가리키는 제4 도어벨을 출력하는 단계를 더 포함하는 방법
|
15 |
15
제 1 항에 있어서,상기 스토리지 가상화 장치는 FPGA(field programmable gate array)로 구현되는 방법
|
16 |
16
호스트 장치 및 스토리지 장치 세트와 통신하고, 상기 호스트 장치에 의해 실행되는 제1 가상 머신을 지원하는 스토리지 가상화 장치에 있어서:상기 호스트 장치와 통신하고, 상기 제1 가상 머신과의 인터페이스를 제공하도록 구성된 SR-IOV(single root input/output virtualization) 어댑터;상기 제1 가상 머신의 제1 VSQ(virtual submission queue)의 제1 커맨드를 페치(fetch)하도록 구성된 제1 스토리지 가상화 코어;상기 제1 가상 머신 및 상기 스토리지 장치 세트 사이의 매핑 정보를 포함하는 개재(interposition) 계층; 및상기 스토리지 장치 세트와 통신하도록 구성되고, 제1 SQ(submission queue) 및 제1 CQ(completion queue)를 포함하는 스토리지 인터페이스 회로를 포함하되,상기 스토리지 인터페이스 회로는:상기 제1 스토리지 가상화 코어로부터 상기 개재 계층을 통해 상기 제1 SQ로 분배된 상기 제1 커맨드를 상기 스토리지 장치 세트로 제공하고;상기 스토리지 장치 세트로부터 상기 제1 커맨드가 처리된 것을 가리키는 제1 컴플리션을 수신하고, 상기 제1 컴플리션은 상기 제1 CQ에 기입되고; 그리고상기 개재 계층을 통해 상기 제1 CQ의 제1 컴플리션을 가상화 계층에 분배하도록 더 구성되고, 그리고상기 제1 스토리지 가상화 코어는 상기 분배된 제1 컴플리션을 상기 제1 가상 머신의 제1 VCQ(virtual completion queue)에 기입하도록 더 구성된 스토리지 가상화 장치
|
17 |
17
제 16 항에 있어서,상기 호스트 장치로부터 상기 SR-IOV 어댑터를 통해 상기 제1 커맨드에 대응하는 제1 도어벨을 수신하고, 그리고 상기 제1 VSQ에 상기 제1 커맨드가 기입된 것을 상기 제1 스토리지 가상화 코어에게 알리도록 구성된 도어벨 레지스터;상기 제1 스토리지 가상화 코어와 통신하고, 상기 제1 가상 머신의 DMA(direct memory access) 버퍼의 가상 어드레스 및 상기 호스트 장치에 대응하는 물리적 어드레스 간의 매핑 정보를 포함하는 테이블; 및상기 호스트 장치 및 상기 스토리지 장치 세트 사이의 상기 제1 커맨드의 처리를 지원하는 DMA 엔진을 더 포함하는 스토리지 가상화 장치
|
18 |
18
제 16 항에 있어서,상기 SR-IOV 어댑터 및 상기 개재 계층과 통신하고, 상기 호스트 장치에 의해 실행되는 제2 가상 머신의 제2 VSQ의 제2 커맨드를 페치하도록 구성된 제2 스토리지 가상화 코어를 더 포함하되,상기 SR-IOV 어댑터는 상기 제2 가상 머신과의 인터페이스를 더 제공하고,상기 개재 계층은 상기 제2 가상 머신 및 상기 스토리지 장치 세트 사이의 매핑 정보를 더 포함하고,상기 스토리지 인터페이스 회로는 제2 SQ 및 제2 CQ를 더 포함하고,상기 스토리지 인터페이스 회로는:상기 제2 스토리지 가상화 코어로부터 상기 개재 계층을 통해 상기 제2 SQ로 분배된 상기 제2 커맨드를 상기 스토리지 장치 세트로 제공하고;상기 스토리지 장치 세트로부터 상기 제2 커맨드가 처리된 것을 가리키는 제2 컴플리션을 수신하고, 상기 제2 컴플리션은 상기 제2 CQ에 기입되고; 그리고상기 개재 계층을 통해 상기 제2 CQ의 제2 컴플리션을 상기 가상화 계층에 분배하도록 더 구성되고, 그리고상기 제2 스토리지 가상화 코어는 상기 분배된 제2 컴플리션을 상기 제2 가상 머신의 제2 VCQ에 기입하도록 더 구성된 스토리지 가상화 장치
|
19 |
19
가상 머신을 실행하는 호스트 장치, 상기 가상 머신을 지원하고 그리고 SQ(submission queue) 및 CQ(completion queue)를 포함하는 스토리지 가상화 장치, 및 상기 스토리지 가상화 장치와 통신하는 스토리지 장치 세트를 포함하는 스토리지 시스템의 동작 방법에 있어서:상기 호스트 장치에 의해, 가상 머신의 VSQ(virtual submission queue)에 커맨드가 기입된 것을 가리키는 도어벨을 생성하는 단계;상기 스토리지 가상화 장치에 의해, 상기 가상 머신의 상기 VSQ의 상기 커맨드를 페치하는 단계;상기 스토리지 가상화 장치에 의해, 상기 페치된 커맨드를 상기 제1 SQ로 분배하는 단계;상기 스토리지 가상화 장치에 의해, 상기 제1 SQ의 상기 커맨드를 상기 스토리지 장치 세트로 제공하는 단계;상기 스토리지 장치 세트 및 상기 호스트 장치에 의해, 상기 커맨드를 처리하는 단계;상기 스토리지 장치 세트에 의해, 상기 커맨드가 처리된 것을 가리키는 컴플리션을 상기 CQ에 기입하는 단계;상기 스토리지 가상화 장치에 의해, 상기 CQ의 상기 컴플리션을 가상화 계층에 분배하는 단계; 및상기 스토리지 가상화 장치에 의해, 상기 분배된 컴플리션을 상기 가상 머신의 VCQ(virtual completion queue)에 기입하는 단계를 포함하는 방법
|
20 |
20
제 19 항에 있어서,상기 스토리지 시스템은 상기 호스트 장치 및 상기 스토리지 가상화 장치와 통신하는 I/O(input/output) 메모리 관리 유닛을 더 포함하고,상기 스토리지 가상화 장치에 의해, 상기 가상 머신의 상기 VSQ의 상기 커맨드를 페치하는 단계는:상기 스토리지 가상화 장치에 의해, 상기 도어벨에 기초하여 상기 VSQ의 상기 커맨드의 요청을 생성하는 단계;상기 I/O 메모리 관리 유닛에 의해, 상기 커맨드의 상기 요청에 대응하는 제1 가상 어드레스를 제1 물리적 어드레스로 변환하는 단계; 및상기 호스트 장치에 의해, 상기 제1 물리적 어드레스 및 상기 요청에 기초하여, 상기 VSQ의 상기 커맨드를 상기 스토리지 가상화 장치로 제공하는 단계를 포함하고, 그리고상기 스토리지 가상화 장치에 의해, 상기 분배된 컴플리션을 상기 가상 머신의 상기 VCQ에 기입하는 단계는:상기 스토리지 가상화 장치에 의해, 상기 분배된 컴플리션을 상기 I/O 메모리 관리 유닛으로 제공하는 단계;상기 I/O 메모리 관리 유닛에 의해, 상기 분배된 컴플리션에 대응하는 제2 가상 어드레스를 제2 물리적 어드레스로 변환하는 단계; 및상기 호스트 장치에 의해, 상기 제2 물리적 어드레스에 기초하여 상기 분배된 컴플리션을 상기 VCQ에 저장하는 단계를 포함하는 방법
|