WO2016003126A1 - 압축 가속 장치 및 이에 적용되는 압축 가속기 - Google Patents

압축 가속 장치 및 이에 적용되는 압축 가속기 Download PDF

Info

Publication number
WO2016003126A1
WO2016003126A1 PCT/KR2015/006609 KR2015006609W WO2016003126A1 WO 2016003126 A1 WO2016003126 A1 WO 2016003126A1 KR 2015006609 W KR2015006609 W KR 2015006609W WO 2016003126 A1 WO2016003126 A1 WO 2016003126A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
compression
decompression
data
memory area
Prior art date
Application number
PCT/KR2015/006609
Other languages
English (en)
French (fr)
Inventor
김영환
안재훈
손재기
Original Assignee
전자부품연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전자부품연구원 filed Critical 전자부품연구원
Publication of WO2016003126A1 publication Critical patent/WO2016003126A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

압축 가속 장치 및 이에 적용되는 압축 가속기가 제공된다. 본 압축 가속 장치는, 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속기 및 압축 명령 또는 압축해제 명령이 입력되면, 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 애플리케이션부를 포함할 수 있게 되어, 고속으로 데이터를 압축 및 압축해제할 수 있게 된다.

Description

압축 가속 장치 및 이에 적용되는 압축 가속기
본 발명은 압축 가속 장치 및 이에 적용되는 압축 가속기에 관한 것으로, 더욱 상세하게는, 데이터를 압축 및 압축해제하기 위한 압축 가속 장치 및 이에 적용되는 압축 가속기에 관한 것이다.
최근 다양한 데이터들이 활용됨에 따라 빅데이터 분석 및 처리가 화두가 되고 있다. 이와 같은 빅데이터 분석 및 처리를 위해 필요한 기술 중 하나가 하둡(Hadoop)이다.
하둡은 저렴하면서도 방대한 데이터를 분석할 수 있게 돕는다. 기업은 하둡을 활용해 빅데이터 분석에 들어가는 초기 비용을 줄이면서 자사 데이터 시스템과의 호환 문제도 손쉽게 해결할 수 있다.
하둡 프레임워크는 대용량 데이터를 값싸고 빠르게 분석할 수 있게 돕는다. 기존에는 슈퍼컴퓨터를 며칠씩 돌려야 했던 데이터도 하둡을 이용하면 x86 서버로 실시간 분석이 가능해졌다. 이런 장점들이 알려지며 하둡은 빅데이터 처리와 분석을 위한 플랫폼 시장에서 사실상 표준으로 자리잡기 시작했다.
하둡을 이용하여 대용량의 데이터를 처리하기 위해서는 빠른 데이터 압축 기술이 필요하다. 하지만 기존의 소프트웨어를 이용한 압축 방식은 실시간으로 빅데이터를 처리하기에는 속도가 부족했다.
이에 따라, 하둡 시스템에서 이용할 수 있는 고속의 압축 기술을 제공하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속기 및 압축 명령 또는 압축해제 명령이 입력되면, 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 애플리케이션부를 포함하는 압축 가속 장치 및 이에 적용되는 압축 가속기를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 압축 가속 장치는, 압축 및 압축해제를 위한 메모리를 포함하고, 상기 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속기; 및 압축 명령 또는 압축해제 명령이 입력되면, 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 애플리케이션부;를 포함한다.
그리고, 상기 메모리는, 압축 대상 데이터가 입력되어 저장되는 제1 메모리 영역, 압축이 완료된 데이터가 저장되는 제2 메모리 영역, 압축해제 대상 데이터가 입력되어 저장되는 제3 메모리 영역, 압축해제가 완료된 데이터가 저장되는 제4 메모리 영역, 및 상기 제1 메모리 영역, 제2 메모리 영역, 제3 메모리 영역 및 제4 메모리 영역의 사용 상태를 관리 및 제어하기 위한 메모리 영역인 제5 메모리 영역을 포함할 수도 있다.
또한, 상기 애플리케이션부는, 압축 명령이 입력되면, 압축 대상 데이터를 상기 제1 메모리 영역으로 복사하고 상기 제5 메모리 영역 내의 제1 비트의 값을 1로 변경할 수도 있다.
그리고, 상기 압축 가속기는, 상기 제1 비트의 값이 1로 변경되면, 상기 제1 메모리 영역에 저장된 압축 대상 데이터를 압축하고, 압축이 완료되면 압축이 완료된 데이터를 상기 제2 메모리 영역으로 이동시킨 후에 상기 제1 비트의 값을 다시 0으로 변경하고 상기 제5 메모리 영역 내의 제2 비트의 값을 1로 변경할 수도 있다.
또한, 상기 애플리케이션부는, 상기 제2 비트의 값이 1로 변경되면, 제2 메모리 영역에 저장된 압축이 완료된 데이터를 사용자 영역의 메모리에 저장하고 상기 제2 비트의 값을 0으로 변경할 수도 있다.
그리고, 상기 애플리케이션부는, 압축해제 명령이 입력되면, 압축해제 대상 데이터를 상기 제3 메모리 영역으로 복사하고 상기 제5 메모리 영역 내의 제3 비트의 값을 1로 변경할 수도 있다.
또한, 상기 압축 가속기는, 상기 제3 비트의 값이 1로 변경되면, 상기 제3 메모리 영역에 저장된 압축해제 대상 데이터를 압축해제하고, 압축해제가 완료되면 압축해제가 완료된 데이터를 상기 제4 메모리 영역으로 이동시킨 후에 상기 제3 비트의 값을 다시 0으로 변경하고 상기 제5 메모리 영역 내의 제4 비트의 값을 1로 변경할 수도 있다.
그리고, 상기 애플리케이션부는, 상기 제4 비트의 값이 1로 변경되면, 제4 메모리 영역에 저장된 압축해제가 완료된 데이터를 사용자 영역의 메모리에 저장하고 상기 제4 비트의 값을 0으로 변경할 수도 있다.
또한, 상기 애플리케이션부는, 메모리 맵 파일(Memory mapped file, MMF)을 이용하여 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행할 수도 있다.
한편, 본 발명의 일 실시예에 따른, 압축 가속기는, 압축 대상 데이터가 입력되어 저장되는 제1 메모리 영역, 압축이 완료된 데이터가 저장되는 제2 메모리 영역, 압축해제 대상 데이터가 입력되어 저장되는 제3 메모리 영역, 압축해제가 완료된 데이터가 저장되는 제4 메모리 영역, 및 상기 제1 메모리 영역, 제2 메모리 영역, 제3 메모리 영역 및 제4 메모리 영역의 사용 상태를 관리 및 제어하기 위한 메모리 영역인 제5 메모리 영역을 포함하고, 애플리케이션과 직접 연결되어 압축 또는 압축해제를 위한 데이터 입출력 동작을 수행하는 메모리; 및 상기 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속부;를 포함한다.
본 발명의 다양한 실시예에 따르면, 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속기 및 압축 명령 또는 압축해제 명령이 입력되면, 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 애플리케이션부를 포함하는 압축 가속 장치 및 이에 적용되는 압축 가속기를 제공할 수 있게 되어, 고속으로 데이터를 압축 및 압축해제할 수 있게 된다. 특히, 시스템 호출 없이 애플리케이션이 직접 압축 가속기의 메모리에 연결되기 때문에, 시스템 콜 오버헤드의 발생이 없이 빠르게 압축 및 압축해제를 할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른, 압축 가속 장치의 구조를 개략적으로 도시한 블럭도,
도 2는 본 발명의 일 실시예에 따른, 압축 가속 장치의 구조를 상세하게 도시한 블럭도,
도 3은 본 발명의 일 실시예에 따른, 압축 가속기의 메모리 영역들을 도시한 도면,
도 4는 본 발명의 일 실시예에 따른, 압축 가속기의 제1 메모리 영역에 압축 대상 데이터가 저장된 상태를 도시한 도면,
도 5는 본 발명의 일 실시예에 따른, 압축 가속기의 제2 메모리 영역에 압축 완료 데이터가 저장된 상태를 도시한 도면,
도 6은 본 발명의 일 실시예에 따른, 압축 가속기의 제3 메모리 영역에 압축해제 대상 데이터가 저장된 상태를 도시한 도면,
도 7는 본 발명의 일 실시예에 따른, 압축 가속기의 제4 메모리 영역에 압축해제 완료 데이터가 저장된 상태를 도시한 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 압축 가속 장치(100)의 구조를 개략적으로 도시한 블럭도이다. 그리고, 도 2는 본 발명의 일 실시예에 따른, 압축 가속 장치의 구조를 상세하게 도시한 블럭도이다.
압축 가속 장치(100)는 파일이나 데이터를 고속으로 압축 또는 압축해제하는 기능을 제공하는 장치이며, 하둡(Hadoop) 스토리지 장치에 연결되거나 내장되어 사용될 수 있다. 또한, 압축 가속 장치(100)는 하드웨어 압축 기능을 제공할 뿐만 아니라, 애플리케이션이 압축 가속 장치(100)의 메모리를 직접 제어하기 때문에 시스템 콜 오버헤드가 발생하지 않고 신속하게 압축 및 압축해제기능을 제공할 수 있게 된다.
도 1에 도시된 바와 같이, 압축 가속 장치(100)는 애플리케이션부(110) 및 압축 가속기(120)를 포함한다.
애플리케이션부(110)는 압축 명령 또는 압축해제 명령이 입력되면, 압축 가속기(120)의 메모리(130)에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행한다. 여기에서 애플리케이션부(110)는 데이터를 압축 또는 압축해제하기 위한 애플리케이션이라면 어떤 것이라도 적용 될 수 있으며, 예를 들어, 도 2에 도시된 바와 같이, 애플리케이션부(110)는 Hadoop Map & Reduce Application이 될 수도 있다.
애플리케이션부(110)는 메모리 맵 파일(Memory mapped file, MMF)을 이용하여 가속 압축기(120)의 메모리(130)에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행한다. 여기에서, 메모리 맵 파일(Memory mapped file, MMF, 메모리 사상 파일)은 운영 체제에서 파일을 다루는 방법중 하나이다. 물리 디스크 파일, 장치, 공유 메모리 객체와 같이 운영 체제에서 파일로 다루는 모든 대상에 대해서 사용 가능하며, 메모리 맵 파일을 통해 프로세스의 가상 메모리 주소 공간에 파일을 매핑한 뒤 가상 메모리 주소에 직접 접근하는 것으로 파일 읽기/쓰기를 대신한다.
도 2에는 이와 같은 메모리 맵 파일을 이용하기 위한 구조에 대해 자바 환경을 기반으로 자세히 기술되어 있다. 도 2에 도시된 바와 같이, 애플리케이션부(110)의 압축 애플리케이션(Lz4Compressor.java) 및 압축해제 애플리케이션(Decompressor.java)이 자바 환경으로 구현되어 있다면, 애플리케이션부(110)는 자바 가상 머신(JVM : Java virtual machine), JNI(Java Native Interface) 및 가속기 유저 라이브러리(Accelerator User Library)를 이용함으로써, 가속 압축기(120)의 메모리(130)에 직접 연결하여 압축 명령 또는 압축해제 명령을 실행하게 된다. 이 때, 애플리케이션부(110)는 mmap이라는 함수를 통해 메모리 맵 파일 기능을 제공하고 있다. 구체적으로, 애플리케이션부(110)는 mmap이라는 함수를 이용하여 커널 영역의 장치 드라이버 중 메모리 맵(memory map)(210)에 연결되고, 인터페이스 장치 파일로 '/dev/uio0'(220)를 이용함으로써, PCI-Express(230) 규격으로 연결된 압축 가속기(120)의 메모리(130)에 대한 직접적인 접근이 가능해지게 된다.
압축 가속기(120)는 압축 및 압축해제를 위한 메모리(130)를 포함하고, 메모리(130)를 이용하여 데이터를 압축 또는 압축해제하는 기능을 수행하게 된다. 구체적으로, 압축 가속기(120)는 메모리(130) 및 압축 가속부(140)를 포함한다.
메모리(130)는 압축 대상 데이터가 입력되어 저장되는 제1 메모리 영역(131), 압축이 완료된 데이터가 저장되는 제2 메모리 영역(132), 압축해제 대상 데이터가 입력되어 저장되는 제3 메모리 영역(133), 압축해제가 완료된 데이터가 저장되는 제4 메모리 영역(134)를 포함한다. 또한, 메모리(130)는 제1 메모리 영역(131), 제2 메모리 영역(132), 제3 메모리 영역(133) 및 제4 메모리 영역(134)의 사용 상태를 관리 및 제어하기 위한 메모리 영역인 제5 메모리 영역(135)을 포함하한다. 그리고, 메모리(130)는 애플리케이션부(110)과 직접 연결되어 압축 또는 압축해제를 위한 데이터 입출력 동작을 수행하게 된다.
압축 가속부(140)는 메모리(130)를 이용하여 데이터를 압축 또는 압축해제한다. 이 때, 압축 가속부(140)는 하드웨어 압축을 수행하며 다양한 규격의 압축 및 압축해제를 제공할 수 있다.
이와 같은 구성의 압축 가속 장치(100)가 메모리(130)를 이용하여 압축 및 압축해제를 수행하는 과정에 대해, 도 3 내지 도 7을 참고하여 이하에서 설명한다.
먼저, 압축 과정에 대해 설명한다.
도 3은 본 발명의 일 실시예에 따른, 압축 가속기(120)의 메모리(130) 영역들을 도시한 도면이다. 도 3에 도시된 바와 같이, 제1 메모리 영역(131), 제2 메모리 영역(132), 제3 메모리 영역(133) 및 제4 메모리 영역(134)에 저장된 데이터가 없는 경우, 제5 메모리 영역(135)의 제1 비트(301), 제2 비트(302), 제3 비트(303) 및 제4 비트(304)는 모두 0인 것을 확인할 수 있다.
이와 같은 상태에서, 애플리케이션부(110)는 압축 명령이 입력되면, 압축 대상 데이터를 제1 메모리 영역(131)으로 복사하고, 제5 메모리 영역(135) 내의 제1 비트(301)의 값을 1로 변경하게 된다. 이와 같은 상태가 도 4에 도시되어 있다. 도 4는 본 발명의 일 실시예에 따른, 압축 가속기(120)의 제1 메모리 영역(131)에 압축 대상 데이터가 저장된 상태를 도시한 도면이다. 도 4에 따르면, 제1 메모리 영역(131)에 압축 대상 데이터가 있으면, 제5 메모리 영역(135) 내의 제1 비트(301)의 값이 1로 되어 있는 것을 확인할 수 있다.
압축 가속기(120)의 압축 가속부(140)는 제1 비트(301)의 값이 1로 변경되면, 제1 메모리 영역(131)에 저장된 압축 대상 데이터에 대한 압축을 수행하게 된다. 그리고, 압축이 완료되면, 압축 가속기(120)는 제1 메모리 영역(131)의 압축 대상 데이터는 삭제하고, 압축이 완료된 데이터를 제2 메모리 영역(132)으로 이동시킨다. 그 후에, 압축 가속기(120)는 제5 메모리 영역(135) 내의 제1 비트(301)의 값을 다시 0으로 변경하고, 제2 비트(302)의 값을 1로 변경하게 된다. 이와 같은 상태가 도 5에 도시되어 있다. 도 5는 본 발명의 일 실시예에 따른, 압축 가속기(120)의 제2 메모리 영역(132)에 압축 완료 데이터가 저장된 상태를 도시한 도면이다. 도 5에 따르면, 제2 메모리 영역(132)에 압축 완료 데이터가 있으면, 제5 메모리 영역(135) 내의 제2 비트(302)의 값이 1로 되어 있는 것을 확인할 수 있다.
애플리케이션부(110)는 제2 비트(302)의 값이 1로 변경되면, 제2 메모리 영역(132)에 저장된 압축 완료 데이터를 사용자 영역의 메모리에 저장한다. 그 후에, 애플리케이션부(110)는 제2 비트(302)의 값을 다시 0으로 변경하게 된다. 그러면, 메모리(130)는 다시 도 3의 상태로 돌아가게 된다.
이와 같은 과정을 통해, 애플리케이션부(110)는 메모리(130)에 직접 연결하여 데이터를 압축할 수 있게 된다.
이하에서는, 압축 해제 과정에 대해 설명한다.
도 3과 같은 상태에서, 애플리케이션부(110)는 압축해제 명령이 입력되면, 압축해제 대상 데이터를 제3 메모리 영역(133)으로 복사하고, 제5 메모리 영역(135) 내의 제3 비트(303)의 값을 1로 변경하게 된다. 이와 같은 상태가 도 6에 도시되어 있다. 도 6은 본 발명의 일 실시예에 따른, 압축 가속기(120)의 제3 메모리 영역(133)에 압축해제 대상 데이터가 저장된 상태를 도시한 도면이다. 도 6에 따르면, 제3 메모리 영역(133)에 압축해제 대상 데이터가 있으면, 제5 메모리 영역(135) 내의 제3 비트(303)의 값이 1로 되어 있는 것을 확인할 수 있다.
압축 가속기(120)의 압축 가속부(140)는 제3 비트(303)의 값이 1로 변경되면, 제3 메모리 영역(133)에 저장된 압축해제 대상 데이터에 대한 압축해제를 수행하게 된다. 그리고, 압축해제가 완료되면, 압축 가속기(120)는 제3 메모리 영역(133)의 압축해제 대상 데이터는 삭제하고, 압축해제가 완료된 데이터를 제4 메모리 영역(134)으로 이동시킨다. 그 후에, 압축 가속기(120)는 제5 메모리 영역(135) 내의 제3 비트(303)의 값을 다시 0으로 변경하고, 제4 비트(304)의 값을 1로 변경하게 된다. 이와 같은 상태가 도 7에 도시되어 있다. 도 7은 본 발명의 일 실시예에 따른, 압축 가속기(120)의 제4 메모리 영역(134)에 압축해제 완료 데이터가 저장된 상태를 도시한 도면이다. 도 7에 따르면, 제4 메모리 영역(134)에 압축해제 완료 데이터가 있으면, 제5 메모리 영역(135) 내의 제4 비트(304)의 값이 1로 되어 있는 것을 확인할 수 있다.
애플리케이션부(110)는 제4 비트(304)의 값이 1로 변경되면, 제4 메모리 영역(134)에 저장된 압축해제 완료 데이터를 사용자 영역의 메모리에 저장한다. 그 후에, 애플리케이션부(110)는 제4 비트(304)의 값을 다시 0으로 변경하게 된다. 그러면, 메모리(130)는 다시 도 3의 상태로 돌아가게 된다.
이와 같은 과정을 통해, 애플리케이션부(110)는 메모리(130)에 직접 연결하여 데이터를 압축해제 할 수 있게 된다.
상술한 구조의 압축 가속 장치(100)에 의하면, 고속으로 데이터를 압축 및 압축해제할 수 있게 된다. 특히, 애플리케이션부(110)가 메모리(130)에 직접 연결되어 압축 및 압축해제를 수행하기 때문에, 시스템 콜 오버헤드의 발생이 없이 빠르게 압축 및 압축해제를 할 수 있게 된다.
한편, 본 실시예에 따른 장치의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (10)

  1. 압축 및 압축해제를 위한 메모리를 포함하고, 상기 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속기; 및
    압축 명령 또는 압축해제 명령이 입력되면, 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 애플리케이션부;를 포함하는 압축 가속 장치.
  2. 제1항에 있어서,
    상기 메모리는,
    압축 대상 데이터가 입력되어 저장되는 제1 메모리 영역, 압축이 완료된 데이터가 저장되는 제2 메모리 영역, 압축해제 대상 데이터가 입력되어 저장되는 제3 메모리 영역, 압축해제가 완료된 데이터가 저장되는 제4 메모리 영역, 및 상기 제1 메모리 영역, 제2 메모리 영역, 제3 메모리 영역 및 제4 메모리 영역의 사용 상태를 관리 및 제어하기 위한 메모리 영역인 제5 메모리 영역을 포함하는 것을 특징으로 하는 압축 가속 장치.
  3. 제2항에 있어서,
    상기 애플리케이션부는,
    압축 명령이 입력되면, 압축 대상 데이터를 상기 제1 메모리 영역으로 복사하고 상기 제5 메모리 영역 내의 제1 비트의 값을 1로 변경하는 것을 특징으로 하는 압축 가속 장치.
  4. 제3항에 있어서,
    상기 압축 가속기는,
    상기 제1 비트의 값이 1로 변경되면, 상기 제1 메모리 영역에 저장된 압축 대상 데이터를 압축하고, 압축이 완료되면 압축이 완료된 데이터를 상기 제2 메모리 영역으로 이동시킨 후에 상기 제1 비트의 값을 다시 0으로 변경하고 상기 제5 메모리 영역 내의 제2 비트의 값을 1로 변경하는 것을 특징으로 하는 압축 가속 장치.
  5. 제4항에 있어서,
    상기 애플리케이션부는,
    상기 제2 비트의 값이 1로 변경되면, 제2 메모리 영역에 저장된 압축이 완료된 데이터를 사용자 영역의 메모리에 저장하고 상기 제2 비트의 값을 0으로 변경하는 것을 특징으로 하는 압축 가속 장치.
  6. 제2항에 있어서,
    상기 애플리케이션부는,
    압축해제 명령이 입력되면, 압축해제 대상 데이터를 상기 제3 메모리 영역으로 복사하고 상기 제5 메모리 영역 내의 제3 비트의 값을 1로 변경하는 것을 특징으로 하는 압축 가속 장치.
  7. 제6항에 있어서,
    상기 압축 가속기는,
    상기 제3 비트의 값이 1로 변경되면, 상기 제3 메모리 영역에 저장된 압축해제 대상 데이터를 압축해제하고, 압축해제가 완료되면 압축해제가 완료된 데이터를 상기 제4 메모리 영역으로 이동시킨 후에 상기 제3 비트의 값을 다시 0으로 변경하고 상기 제5 메모리 영역 내의 제4 비트의 값을 1로 변경하는 것을 특징으로 하는 압축 가속 장치.
  8. 제7항에 있어서,
    상기 애플리케이션부는,
    상기 제4 비트의 값이 1로 변경되면, 제4 메모리 영역에 저장된 압축해제가 완료된 데이터를 사용자 영역의 메모리에 저장하고 상기 제4 비트의 값을 0으로 변경하는 것을 특징으로 하는 압축 가속 장치.
  9. 제1항에 있어서,
    상기 애플리케이션부는,
    메모리 맵 파일(Memory mapped file, MMF)을 이용하여 상기 메모리에 직접 연결하여 압축 또는 압축해제를 위한 데이터를 입출력함으로써 압축 명령 또는 압축해제 명령을 실행하는 것을 특징으로 하는 압축 가속 장치.
  10. 압축 대상 데이터가 입력되어 저장되는 제1 메모리 영역, 압축이 완료된 데이터가 저장되는 제2 메모리 영역, 압축해제 대상 데이터가 입력되어 저장되는 제3 메모리 영역, 압축해제가 완료된 데이터가 저장되는 제4 메모리 영역, 및 상기 제1 메모리 영역, 제2 메모리 영역, 제3 메모리 영역 및 제4 메모리 영역의 사용 상태를 관리 및 제어하기 위한 메모리 영역인 제5 메모리 영역을 포함하고, 애플리케이션과 직접 연결되어 압축 또는 압축해제를 위한 데이터 입출력 동작을 수행하는 메모리; 및
    상기 메모리를 이용하여 데이터를 압축 또는 압축해제하는 압축 가속부;를 포함하는 압축 가속기.
PCT/KR2015/006609 2014-06-30 2015-06-29 압축 가속 장치 및 이에 적용되는 압축 가속기 WO2016003126A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140080941A KR101573379B1 (ko) 2014-06-30 2014-06-30 압축 가속 장치 및 이에 적용되는 압축 가속기
KR10-2014-0080941 2014-06-30

Publications (1)

Publication Number Publication Date
WO2016003126A1 true WO2016003126A1 (ko) 2016-01-07

Family

ID=54872052

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/006609 WO2016003126A1 (ko) 2014-06-30 2015-06-29 압축 가속 장치 및 이에 적용되는 압축 가속기

Country Status (2)

Country Link
KR (1) KR101573379B1 (ko)
WO (1) WO2016003126A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052366A (ko) 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050016325A (ko) * 2002-04-01 2005-02-21 매트릭스뷰 리미티드 고도로 상관된 이미지 데이터에 대한 반복 부호화된 압축
KR20050041359A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 재생 모드 정보가 설정된 동영상 재생 장치, 저장 매체 및그 재생방법
KR20050041833A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 프로그램 관리 정보가 기록된 저장 매체, 이를 재생하기위한 방법 및 그 장치
KR20080047096A (ko) * 2006-11-24 2008-05-28 삼성전자주식회사 데이터를 압축하여 관리하는 메모리 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050016325A (ko) * 2002-04-01 2005-02-21 매트릭스뷰 리미티드 고도로 상관된 이미지 데이터에 대한 반복 부호화된 압축
KR20050041359A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 재생 모드 정보가 설정된 동영상 재생 장치, 저장 매체 및그 재생방법
KR20050041833A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 프로그램 관리 정보가 기록된 저장 매체, 이를 재생하기위한 방법 및 그 장치
KR20080047096A (ko) * 2006-11-24 2008-05-28 삼성전자주식회사 데이터를 압축하여 관리하는 메모리 및 그 방법

Also Published As

Publication number Publication date
KR101573379B1 (ko) 2015-12-03

Similar Documents

Publication Publication Date Title
CN108874506B (zh) 虚拟机直通设备的热迁移方法和装置
US9880941B2 (en) Sharing an accelerator context across multiple processes
US10203980B2 (en) Dynamic batch management of shared buffers for virtual machines
US9588787B2 (en) Runtime virtual process creation for load sharing
US9529616B2 (en) Migrating processes between source host and destination host using a shared virtual file system
US20130179884A1 (en) Saving, Transferring and Recreating GPU Context Information Across Heterogeneous GPUs During Hot Migration of a Virtual Machine
US20200401439A1 (en) System and method for trapping system calls for remote execution
US8578069B2 (en) Prefetching for a shared direct memory access (DMA) engine
CN111183411B (zh) 用于虚拟机的动态地址转换
WO2023179388A1 (zh) 一种虚拟机实例的热迁移方法
CN111209080A (zh) 一种图形处理器透传的方法
CN113806006A (zh) 一种异构指令集架构下异常或中断的处理方法、装置
US20120265920A1 (en) Storage block deallocation in virtual environments
US9898307B2 (en) Starting application processors of a virtual machine
US8300704B2 (en) Picture processing via a shared decoded picture pool
CN113886019B (zh) 虚拟机创建方法、装置、系统、介质和设备
US10025607B2 (en) Optimizing a file system interface in a virtualized computing environment
CN112925606A (zh) 一种内存管理方法、装置及设备
WO2016003126A1 (ko) 압축 가속 장치 및 이에 적용되는 압축 가속기
US9471246B2 (en) Data sharing using difference-on-write
US20150220406A1 (en) Virtual machine-guest driven state restoring by hypervisor
US9912787B2 (en) Zero-copy multiplexing using copy-on-write
CN117331704B (zh) 图形处理器gpu调度方法、装置和存储介质
US20220156052A1 (en) Software packaging device and method for performing binary analysis, and recording medium on which program for performing the same is recorded
Lucas et al. Virtual Machines with Dedicated Graphics for Software Development

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15814323

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15814323

Country of ref document: EP

Kind code of ref document: A1