1 |
1
프로세서 및 호스트 메모리를 포함하는 호스트와 비휘발성 메모리 모듈을 연결하는 비휘발성 메모리 제어 장치로서,상기 호스트와의 연결을 위한 호스트 인터페이스의 설정 공간에 노출되며, 상기 호스트에서 I/O(input/output) 요청의 명령을 상기 호스트 메모리로 발행할 때 갱신되는 제1 도어벨 영역,상기 제1 도어벨 영역이 갱신될 때 생성되는 이벤트 신호에 응답하여 상기 호스트 메모리로부터 상기 명령을 가져오는 페치 관리 모듈,상기 명령에 포함되어 있는 요청 정보에 기초해서 상기 호스트 메모리의 위치를 확인하고, 상기 호스트 메모리와 상기 비휘발성 메모리 모듈 사이에서 상기 I/O 요청에 따른 타겟 데이터의 전송을 수행하는 데이터 전송 모듈,상기 데이터 전송 모듈에서 상기 I/O 요청의 처리를 완료하는 경우, 상기 호스트 메모리에 완료 요청을 기록하고, 인터럽트를 처리하는 완료 핸들링 모듈, 그리고상기 설정 공간에 노출되며, 상기 호스트에서 I/O 서비스를 종료할 때 갱신되는 제2 도어벨 영역을 포함하는 비휘발성 메모리 제어 장치
|
2 |
2
제1항에서,상기 제1 도어벨 영역, 상기 페치 관리 모듈, 상기 데이터 전송 모듈, 상기 완료 핸들링 모듈 및 상기 제2 도어벨 영역은 하드웨어로 구현되는, 비휘발성 메모리 제어 장치
|
3 |
3
제2항에서,상기 제1 도어벨 영역, 상기 페치 관리 모듈, 상기 데이터 전송 모듈, 상기 완료 핸들링 모듈 및 상기 제2 도어벨 영역은 레지스터 전송 레벨(register transfer level, RTL)에서 하드웨어로 구현되는, 비휘발성 메모리 제어 장치
|
4 |
4
제2항에서,상기 제1 도어벨 영역, 상기 페치 관리 모듈, 상기 데이터 전송 모듈, 상기 완료 핸들링 모듈 및 상기 제2 도어벨 영역은 상기 비휘발성 메모리 제어 장치의 내부 메모리 버스에 의해 연결되는, 비휘발성 메모리 제어 장치
|
5 |
5
제4항에서,상기 내부 메모리 버스는 AXI(advanced extensible interface) 인터페이스를 포함하는, 비휘발성 메모리 제어 장치
|
6 |
6
제1항에서,상기 제1 도어벨 영역과 상기 제2 도어벨 영역은 상기 내부 메모리 버스의 주소 공간에 매핑되어 있는, 비휘발성 메모리 제어 장치
|
7 |
7
제1항에서,상기 호스트 인터페이스는 PCIe(peripheral component interconnect express) 인터페이스를 포함하며,상기 설정 공간은 BAR(base address registers)를 포함하는비휘발성 메모리 제어 장치
|
8 |
8
제1항에서,상기 페치 관리 모듈은 상기 명령으로부터 상기 요청 정보를 파싱하는, 비휘발성 메모리 제어 장치
|
9 |
9
제1항에서,상기 요청 정보는 논리 주소 및 상기 호스트 메모리의 위치를 지시하는 호스트 메모리 주소를 포함하며,상기 데이터 전송 모듈은,상기 논리 주소 및 상기 호스트 메모리 주소에 기초해서 상기 데이터 전송 모듈을 위한 소스 주소와 목적지 주소를 설정하는 제1 엔진, 그리고상기 소스 주소와 목적지 주소에 기초해서 상기 타겟 데이터의 전송을 수행하는 제2 엔진을 포함하는비휘발성 메모리 제어 장치
|
10 |
10
제9항에서,상기 제2 엔진은 DMA(direct memory access) 엔진을 포함하는, 비휘발성 메모리 제어 장치
|
11 |
11
제9항에서,상기 호스트 메모리 주소는 PRP(physical region page)를 포함하는, 비휘발성 메모리 제어 장치
|
12 |
12
제11항에서,상기 제1 엔진은 상기 PRP에 기초해서 상기 호스트 메모리로부터 PRP 리스트를 가져오며,상기 PRP 리스트는 상기 호스트 메모리의 위치를 참조하는 적어도 하나의 PRP 엔트리를 포함하고,상기 제1 엔진은 상기 PRP 엔트리에 의해 참조되는 상기 호스트 메모리의 위치를 검출하는비휘발성 메모리 제어 장치
|
13 |
13
제9항에서,상기 비휘발성 메모리 제어 장치는 상기 비휘발성 메모리 모듈과 복수의 채널을 통해 연결되며,상기 제2 엔진은 상기 복수의 채널에 각각 대응하는 복수의 DMA 코어를 포함하는비휘발성 메모리 제어 장치
|
14 |
14
제13항에서,상기 제2 엔진은 상기 I/O 요청의 타겟 데이터를 복수의 데이터 청크로 분할하고, 상기 복수의 데이터 청크를 상기 복수의 DMA 코어에 분산하는, 비휘발성 메모리 제어 장치
|
15 |
15
제1항에서,상기 호스트 메모리에 복수의 큐 쌍이 존재하며,각 큐 쌍은 SQ(submission queue)와 CQ(competition queue)의 쌍을 포함하며,상기 페치 관리 모듈은, 상기 복수의 큐 쌍 중에서 상기 제1 도어벨 영역에서 갱신된 엔트리에 대응하는 큐 쌍의 SQ로부터 상기 명령을 가져오는비휘발성 메모리 제어 장치
|
16 |
16
제15항에서,상기 완료 핸들링 모듈은 상기 페치 관리 모듈로부터 전달되는 정보에 기초해서 상기 명령을 가져온 상기 SQ에 대응하는 CQ를 감지하는, 비휘발성 메모리 제어 장치
|
17 |
17
프로세서 및 호스트 메모리를 포함하는 호스트와 비휘발성 메모리 모듈을 연결하는 비휘발성 메모리 제어 장치로서,상기 호스트와의 연결을 위한 PCIe(peripheral component interconnect express) 인터페이스의 BAR(base address registers)에 노출되며, 상기 호스트 메모리의 타겟 SQ(submission queue)에 명령이 기록될 때 상기 타겟 SQ에 대응하는 엔트리가 갱신되는 제1 도어벨 영역과 상기 호스트에서 I/O 서비스를 종료할 때 타겟 CQ(completion queue)에 대응하는 엔트리가 갱신되는 제2 도어벨 영역을 포함하는 제1 모듈,상기 제1 도어벨 영역이 갱신될 때 생성되는 이벤트 신호에 응답하여 상기 타겟 SQ로부터 상기 명령을 가져오는 제2 모듈,상기 명령에 포함되어 있는 PRP(physical region page)에 기초해서 상기 호스트 메모리의 위치를 검출하는 제1 엔진,상기 제1 엔진에 의해 검출된 상기 호스트 메모리의 위치와 상기 비휘발성 메모리 모듈 사이에서 상기 I/O 요청에 따른 타겟 데이터의 전송을 수행하는 제2 엔진, 그리고상기 제2 엔진에서 상기 I/O 요청의 처리를 완료하는 경우, 상기 타겟 CQ에 완료 요청을 기록하고, 인터럽트를 처리하는 제3 모듈을 포함하는 비휘발성 메모리 제어 장치
|
18 |
18
제17항에서,상기 제1 엔진은 상기 PRP에 기초해서 상기 호스트 메모리로부터 PRP 리스트를 가져오며,상기 PRP 리스트는 상기 호스트 메모리의 위치를 참조하는 적어도 하나의 PRP 엔트리를 포함하고,상기 제1 엔진은 상기 PRP 엔트리에 의해 참조되는 상기 호스트 메모리의 위치를 검출하는비휘발성 메모리 제어 장치
|
19 |
19
제17항에서,상기 제1 모듈, 상기 제2 모듈, 상기 제1 엔진, 상기 제2 엔진 및 상기 제3 모듈은 하드웨어로 구현되는, 비휘발성 메모리 제어 장치
|
20 |
20
프로세서 및 호스트 메모리를 포함하는 호스트에 연결되는 비휘발성 메모리 장치로서,비휘발성 메모리 모듈,상기 호스트와의 연결을 위한 호스트 인터페이스의 설정 공간에 노출되며, 상기 호스트에서 I/O(input/output) 요청의 명령을 상기 호스트 메모리로 발행할 때 갱신되는 제1 도어벨 영역,상기 제1 도어벨 영역이 갱신될 때 생성되는 이벤트 신호에 응답하여 상기 호스트 메모리로부터 상기 명령을 가져오는 페치 관리 모듈,상기 명령에 포함되어 있는 요청 정보에 기초해서 상기 호스트 메모리의 위치를 확인하고, 상기 호스트 메모리와 상기 비휘발성 메모리 모듈 사이에서 상기 I/O 요청에 따른 타겟 데이터의 전송을 수행하는 데이터 전송 모듈,상기 데이터 전송 모듈에서 상기 I/O 요청의 처리를 완료하는 경우, 상기 호스트 메모리에 완료 요청을 기록하고, 인터럽트를 처리하는 완료 핸들링 모듈, 그리고상기 설정 공간에 노출되며, 상기 호스트에서 I/O 서비스를 종료할 때 갱신되는 제2 도어벨 영역을 포함하는 비휘발성 메모리 장치
|