1 |
1
외부로부터 수신되는 제1 커널 요청(kernel request)에 응답하여 제어 신호를 생성하는 제어 모듈(control module); 상기 제어 신호에 응답하여 상기 제1 커널 요청에 대응되는 요청 데이터를 외부로부터 독출하는 DMA 엔진(Direct Memory Access Engine); 제1 연산을 통해 상기 요청 데이터를 절감하여 제1 절감 데이터로 생성하거나, 상기 제1 절감 데이터가 유일한 값(unique value)인 경우, 제2 연산을 통해 상기 제1 절감 데이터를 절감하여 제2 절감 데이터로 생성하는 데이터 절감 코어(data reduction core); 및상기 데이터 절감 코어에서의 상기 제1 연산과 상기 제2 연산의 수행 시간 및 수행 횟수 중 적어도 하나 이상이 상이한 경우, 상기 제1 연산 및 상기 제2 연산의 수행 순서를 변경하여 스케줄링하는 트래픽 스케줄러(traffic scheduler);를 포함하는 데이터 절감 장치(data reduction device)
|
2 |
2
청구항 1에 있어서,상기 제1 연산은 해시(hash) 연산인 데이터 절감 장치
|
3 |
3
청구항 1에 있어서,상기 제2 연산은 압축(compression) 연산인 데이터 절감 장치
|
4 |
4
청구항 1에 있어서,상기 제어 모듈은, 상기 제1 절감 데이터가 유일한 값인 경우, 외부로부터 수신되는 제2 커널 요청에 응답하여 상기 데이터 절감 코어가 상기 제2 연산을 수행하도록 제어하는 데이터 절감 장치
|
5 |
5
청구항 1에 있어서,상기 제어 모듈은, 상기 제1 절감 데이터가 유일한 값인지를 판단하여 상기 데이터 절감 코어가 상기 제2 연산을 수행하도록 상기 제어 신호를 설정하는 데이터 절감 장치
|
6 |
6
청구항 1에 있어서,상기 트래픽 스케줄러(traffic scheduler)는,다수의 상기 제1 커널 요청에 대응되는 다수의 상기 제1 연산 중 n번째 제1 연산이 상기 데이터 절감 코어에서 수행되는 중에 상기 제2 연산에 대한 제2 커널 요청 또는 상기 제어 신호가 수신되는 경우, 상기 n번째 제1 연산의 수행이 완료된 후 n-1번째 제1 연산이 수행되기 전에 상기 데이터 절감 코어에서 상기 제2 연산이 수행되도록 스케줄링하는 데이터 절감 장치
|
7 |
7
청구항 1에 있어서, 상기 트래픽 스케줄러는, 다수의 상기 제1 커널 요청에 대응되는 다수의 상기 제1 연산 중 n번째 제1 연산이 상기 데이터 절감 코어에서 수행되는 중에 상기 제2 연산에 대한 제2 커널 요청 또는 상기 제어 신호가 수신되는 경우, 상기 n번째 제1 연산의 수행을 종료시키고 상기 데이터 절감 코어에서 상기 제2 연산이 수행되도록 스케줄링하는 데이터 절감 장치
|
8 |
8
삭제
|
9 |
9
청구항 1에 있어서, 기 설정된 임의의 개수의 상기 제1 커널 요청 또는 제2 커널 요청이 처리되는 경우, 인터럽트 신호(interrupt signal)를 생성하는 컴플리션 컨트롤러(completion controller);를 더 포함하는 데이터 절감 장치
|
10 |
10
청구항 1에 있어서, 칩(chip) 또는 카드(card)로 구현되는 데이터 절감 장치
|
11 |
11
제1 호스트 요청(host request)을 생성하는 프로세서; 상기 제1 호스트 요청에 대응되는 요청 데이터가 로딩(loading)되는 시스템 메모리; 및상기 제1 호스트 요청에 대응되는 제1 커널 요청 또는 제2 커널 요청에 응답하여, 제1 절감 데이터 또는 제2 절감 데이터를 생성하는 데이터 절감 장치;를 포함하고, 상기 데이터 절감 장치는, 상기 제1 커널 요청 또는 상기 제2 커널 요청을 수신하여 제어 신호를 생성하는 제어 모듈; 상기 제어 신호에 응답하여 상기 요청 데이터를 상기 시스템 메모리로부터 리드하는 DMA 엔진; 제1 연산 또는 제2 연산에 대응되는 연산 로직을 구비하여, 상기 제1 연산을 통해 상기 요청 데이터를 절감하여 상기 제1 절감 데이터로 생성하거나, 상기 제1 절감 데이터가 유일한 값인 때에 상기 제2 연산을 통해 상기 제1 절감 데이터를 절감하여 상기 제2 절감 데이터로 생성하는 데이터 절감 코어; 및상기 데이터 절감 코어에서의 상기 제1 연산과 상기 제2 연산의 수행 시간 및 수행 횟수 중 적어도 하나 이상이 상이한 경우, 상기 제1 연산 및 상기 제2 연산의 수행 순서를 변경하여 스케줄링하는 트래픽 스케줄러;를 포함하는 시스템
|
12 |
12
청구항 11에 있어서, 상기 제1 연산은 해시 연산이고,상기 제2 연산은 압축 연산인 시스템
|
13 |
13
청구항 11에 있어서, 상기 트래픽 스케줄러는, 다수의 상기 제1 커널 요청에 대응되는 다수의 상기 제1 연산 중 n번째 제1 연산이 상기 데이터 절감 코어에서 수행되는 중에 상기 제2 연산에 대한 상기 제2 커널 요청이 수신되는 경우, 상기 n번째 제1 연산의 수행이 완료된 후 n-1번째 제1 연산이 수행되기 전에 상기 데이터 절감 코어에서 상기 제2 연산이 수행되도록 스케줄링하는 시스템
|
14 |
14
청구항 11에 있어서, 상기 트래픽 스케줄러는,다수의 상기 제1 커널 요청에 대응되는 다수의 상기 제1 연산 중 n번째 제1 연산이 상기 데이터 절감 코어에서 수행되는 중에 상기 제2 연산에 대한 상기 제2 커널 요청이 수신되는 경우, 상기 n번째 제1 연산의 수행을 종료시키고 상기 데이터 절감 코어에서 상기 제2 연산이 수행되도록 스케줄링하는 시스템
|
15 |
15
청구항 11에 있어서, 상기 데이터 절감 장치는, 기 설정된 임의의 개수의 상기 제1 커널 요청 또는 상기 제2 커널 요청이 처리되는 경우, 인터럽트 신호를 생성하는 컴플리션 컨트롤러;를 더 포함하는 시스템
|
16 |
16
삭제
|
17 |
17
청구항 11에 있어서, 상기 제1 커널 요청 또는 상기 제2 커널 요청은, 상기 제1 호스트 요청에 대해 커널의 장치 맵퍼(device mapper)에 의해 후킹(hooking)되어, 커널의 데이터 절감 장치 드라이브의 서브미션 큐(submission queue)로 복제되는 시스템
|
18 |
18
청구항 11에 있어서, 상기 제1 커널 요청 또는 상기 제2 커널 요청은, 상기 제1 연산의 유형, 상기 요청 데이터의 크기, 및 상기 요청 데이터에 대한 송신지 어드레스(source address) 및 수신지 주소(destination address)를 포함하는 시스템
|
19 |
19
데이터 절감 장치에 의해, 제1 호스트 요청에 대응되는 요청 데이터에 대한 해시 연산을 오프로드(offload)하여 상기 해시 연산을 수행하는 단계; 및 상기 데이터 절감 장치에 의해, 상기 해시 연산의 결과가 유일한 값인 경우 상기 해시 연산의 결과에 대한 압축 연산을 오프로드하여 상기 압축 연산을 수행하는 단계; 및상기 데이터 절감 장치에 의해, 상기 해시 연산 및 상기 압축 연산의 수행 시간 및 수행 횟수 중 적어도 하나 이상이 상이한 경우, 상기 해시 연산 및 상기 압축 연산의 수행 순서가 변경되도록 스케줄링하는 단계;를 포함하는 데이터 절감 방법
|
20 |
20
청구항 19에 있어서, 상기 데이터 절감 장치에 의해, 제2 호스트 요청에 대응되는 요청 데이터에 대한 압축 해제 연산을 오프로드하는 단계;를 더 포함하는 데이터 절감 방법
|