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
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2015/006609
Other languages
English (en)
French (fr)
Inventor
김영환
안재훈
손재기
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Korea Electronics Technology Institute
Original Assignee
Korea Electronics Technology Institute
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 Korea Electronics Technology Institute filed Critical Korea Electronics Technology Institute
Publication of WO2016003126A1 publication Critical patent/WO2016003126A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Definitions

  • the present invention relates to a compression accelerator and a compression accelerator applied thereto, and more particularly, to a compression accelerator for compressing and decompressing data and a compression accelerator applied thereto.
  • Hadoop is one of the technologies needed for such big data analysis and processing.
  • Hadoop can help you analyze large amounts of data at a low cost. By using Hadoop, companies can easily solve the compatibility issues with their data systems while reducing the initial cost of big data analytics.
  • Hadoop helps you analyze large amounts of data cheaply and quickly. Previously, data that had to run a supercomputer for several days can be analyzed in real time using x86 servers. Knowing these benefits, Hadoop has become the de facto standard in the platform market for big data processing and analytics.
  • the present invention has been made to solve the above problems, an object of the present invention, when a compression accelerator and a compression command or decompression command for compressing or decompressing data using a memory is input, it is directly connected to the memory.
  • the present invention provides a compression accelerator and a compression accelerator applied thereto including an application unit configured to execute a compression command or a decompression command by inputting / outputting data for compression or decompression.
  • a compression accelerator includes a compression accelerator for compressing or decompressing data, including a memory for compression and decompression, the memory; And an application unit for executing a compression command or a decompression command by directly inputting and outputting data for compression or decompression by directly connecting to the memory when a compression command or a decompression command is input.
  • the memory may include a first memory area in which compression target data is input and stored, a second memory area in which compressed data is stored, a third memory area in which decompression target data is stored, and decompressed data. May include a fourth memory area in which is stored, and a fifth memory area which is a memory area for managing and controlling the use states of the first memory area, the second memory area, the third memory area, and the fourth memory area. .
  • the application unit may copy the data to be compressed into the first memory area and change the value of the first bit in the fifth memory area to 1 when a compression command is input.
  • the compression accelerator compresses the compression target data stored in the first memory area, and when compression is completed, moves the compressed data to the second memory area. Later, the value of the first bit may be changed back to 0 and the value of the second bit in the fifth memory area may be changed to 1.
  • the application unit may store the compressed data stored in the second memory area in the memory of the user area and change the value of the second bit to zero.
  • the application unit may copy the decompression target data to the third memory area and change the value of the third bit in the fifth memory area to 1.
  • the compression accelerator decompresses the decompression target data stored in the third memory area, and when decompression is completed, decompresses the decompressed data.
  • the value of the third bit may be changed back to 0 and the value of the fourth bit in the fifth memory area may be changed to 1.
  • the application unit may store the decompressed data stored in the fourth memory area in the memory of the user area and change the value of the fourth bit to 0.
  • the application unit may execute a compression command or a decompression command by directly connecting to the memory using a memory mapped file (MMF) and inputting / outputting data for compression or decompression.
  • MMF memory mapped file
  • the compression accelerator may include a first memory area in which compression target data is input and stored, a second memory area in which compressed data is stored, and a decompression target data is input and stored.
  • a compression accelerator for compressing or decompressing data using the memory.
  • a compression accelerator for compressing or decompressing data using a memory and a compression command or a decompression command are input
  • compression is performed by directly inputting and outputting data for compression or decompression by connecting directly to the memory.
  • a compression accelerator including an application unit for executing an instruction or decompression instruction and a compression accelerator applied thereto, thereby compressing and decompressing data at high speed.
  • the application since the application is directly connected to the memory of the compression accelerator without system calls, compression and decompression can be performed quickly without incurring system call overhead.
  • FIG. 1 is a block diagram schematically showing the structure of a compression accelerator, according to an embodiment of the invention.
  • FIG. 2 is a block diagram showing in detail the structure of a compression accelerator according to an embodiment of the present invention
  • FIG. 3 illustrates memory regions of a compression accelerator, in accordance with an embodiment of the present invention
  • FIG. 4 is a diagram illustrating a state in which compression target data is stored in a first memory area of a compression accelerator according to an embodiment of the present invention
  • FIG. 5 is a diagram illustrating a state in which compression completion data is stored in a second memory area of a compression accelerator according to an embodiment of the present invention
  • FIG. 6 is a diagram illustrating a state in which decompression target data is stored in a third memory area of a compression accelerator according to an embodiment of the present invention
  • FIG. 7 is a diagram illustrating a state in which decompression completed data is stored in a fourth memory area of a compression accelerator according to an embodiment of the present invention.
  • 1 is a block diagram schematically showing the structure of a compression accelerator 100 according to an embodiment of the present invention.
  • 2 is a block diagram showing in detail the structure of a compression accelerator according to an embodiment of the present invention.
  • the compression accelerator 100 is a device that provides a function of compressing or decompressing a file or data at high speed, and may be connected to or built into a Hadoop storage device.
  • the compression accelerator 100 not only provides a hardware compression function but also provides a compression and decompression function quickly without incurring system call overhead since the application directly controls the memory of the compression accelerator 100. You can do it.
  • the compression accelerator 100 includes an application unit 110 and a compression accelerator 120.
  • the application unit 110 When the compression command or the decompression command is input, the application unit 110 directly connects to the memory 130 of the compression accelerator 120 to input and output data for compression or decompression to execute the compression command or the decompression command.
  • the application unit 110 may be applied to any application for compressing or decompressing data.
  • the application unit 110 may include a Hadoop Map & Reduce Application. May be
  • the application unit 110 directly connects to the memory 130 of the acceleration compressor 120 by using a memory mapped file (MMF) to input and output data for compression or decompression to execute a compression command or a decompression command.
  • MMF memory mapped file
  • the memory mapped file is one of the ways to handle the file in the operating system. It can be used for any target that the operating system treats as a file, such as a physical disk file, device, or shared memory object.
  • the memory map file maps a file to the process's virtual memory address space and then directly accesses the virtual memory address. Replaces file read / write.
  • the application unit 110 may include a Java virtual machine (JVM: By using a Java virtual machine (JNI), a Java Native Interface (JNI), and an accelerator user library (Accelerator User Library), it is connected directly to the memory 130 of the accelerator compressor 120 to execute a compression command or decompression command.
  • JVM Java virtual machine
  • JNI Java virtual machine
  • JNI Java Native Interface
  • JNI Java Native Interface
  • accelerator user library Accelelerator User Library
  • the application unit 110 is connected to the memory map 210 of the device driver of the kernel region by using a function called mmap, and by using '/ dev / uio0' 220 as the interface device file.
  • mmap a function called mmap
  • '/ dev / uio0' 220 the interface device file.
  • direct access to the memory 130 of the compression accelerator 120 connected to the PCI-Express 230 standard becomes possible.
  • the compression accelerator 120 includes a memory 130 for compression and decompression, and performs a function of compressing or decompressing data using the memory 130.
  • the compression accelerator 120 includes a memory 130 and a compression accelerator 140.
  • the memory 130 may include a first memory area 131 in which compression target data is input and stored, a second memory area 132 in which compressed data is stored, and a third memory area in which decompression target data is input and stored ( 133) a fourth memory area 134 in which decompressed data is stored.
  • the memory 130 is a memory area for managing and controlling the use state of the first memory area 131, the second memory area 132, the third memory area 133, and the fourth memory area 134.
  • the memory 130 is directly connected to the application unit 110 to perform data input / output operations for compression or decompression.
  • the compression accelerator 140 compresses or decompresses data using the memory 130. At this time, the compression accelerator 140 may perform hardware compression and provide compression and decompression of various standards.
  • FIG. 3 is a diagram illustrating regions of the memory 130 of the compression accelerator 120 according to an embodiment of the present invention. As shown in FIG. 3, when there is no data stored in the first memory area 131, the second memory area 132, the third memory area 133, and the fourth memory area 134, the fifth memory area. It can be seen that the first bit 301, the second bit 302, the third bit 303, and the fourth bit 304 of 135 are all zero.
  • FIG. 4 is a diagram illustrating a state in which compression target data is stored in the first memory area 131 of the compression accelerator 120 according to an exemplary embodiment of the present invention. Referring to FIG. 4, when the compression target data is present in the first memory area 131, it is confirmed that the value of the first bit 301 in the fifth memory area 135 is set to one.
  • FIG. 5 is a diagram illustrating a state in which compressed data is stored in a second memory area 132 of the compression accelerator 120 according to an embodiment of the present invention. Referring to FIG. 5, if there is compressed data in the second memory area 132, it can be confirmed that the value of the second bit 302 in the fifth memory area 135 is set to one.
  • the application unit 110 stores the compressed data stored in the second memory area 132 in the memory of the user area. After that, the application unit 110 changes the value of the second bit 302 back to zero. Then, the memory 130 returns to the state of FIG. 3 again.
  • the application unit 110 may be directly connected to the memory 130 to compress the data.
  • FIG. 6 is a diagram illustrating a state in which decompression target data is stored in a third memory area 133 of the compression accelerator 120 according to an embodiment of the present invention. According to FIG. 6, if there is data to be decompressed in the third memory area 133, it is confirmed that the value of the third bit 303 in the fifth memory area 135 is set to one.
  • FIG. 7 is a diagram illustrating a state in which decompression completed data is stored in a fourth memory area 134 of the compression accelerator 120 according to an exemplary embodiment of the present invention. Referring to FIG. 7, when the decompressed data is in the fourth memory area 134, it is confirmed that the value of the fourth bit 304 in the fifth memory area 135 is set to one.
  • the application unit 110 stores the decompression completed data stored in the fourth memory area 134 in the memory of the user area. Thereafter, the application unit 110 changes the value of the fourth bit 304 back to zero. Then, the memory 130 returns to the state of FIG. 3 again.
  • the application unit 110 may be directly connected to the memory 130 to decompress the data.
  • the compression accelerator 100 having the above-described structure, it is possible to compress and decompress data at high speed.
  • the application unit 110 is directly connected to the memory 130 to perform compression and decompression, it is possible to quickly compress and decompress without incurring system call overhead.
  • the technical idea of the present invention can be applied to a computer-readable recording medium containing a computer program for performing the function of the apparatus according to the embodiment.
  • the technical idea according to various embodiments of the present disclosure may be implemented in the form of computer readable programming language code recorded on a computer readable recording medium.
  • the computer-readable recording medium can be any data storage device that can be read by a computer and can store data.
  • the computer-readable recording medium may be a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical disk, a hard disk drive, a flash memory, a solid state disk (SSD), and the like.
  • the computer-readable code or program stored in the computer-readable recording medium may be transmitted through a network connected between the computers.

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 압축 가속 장치 및 이에 적용되는 압축 가속기 Ceased 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 Ceased 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052366A (ko) 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
FR3118513B1 (fr) * 2020-12-29 2023-04-07 Stmicroelectronics Grand Ouest Sas Procédé d’augmentation du nombre d’applications dans un dispositif à mémoire limitée

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 매트릭스뷰 리미티드 고도로 상관된 이미지 데이터에 대한 반복 부호화된 압축
KR20050041833A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 프로그램 관리 정보가 기록된 저장 매체, 이를 재생하기위한 방법 및 그 장치
KR20050041359A (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 매트릭스뷰 리미티드 고도로 상관된 이미지 데이터에 대한 반복 부호화된 압축
KR20050041833A (ko) * 2003-10-30 2005-05-04 삼성전자주식회사 프로그램 관리 정보가 기록된 저장 매체, 이를 재생하기위한 방법 및 그 장치
KR20050041359A (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
US9880941B2 (en) Sharing an accelerator context across multiple processes
CN107870728B (zh) 用于移动数据的方法和设备
US9886302B2 (en) Dynamic batch management of shared buffers for virtual machines
US9588787B2 (en) Runtime virtual process creation for load sharing
US11256534B2 (en) System and method for trapping system calls for remote execution
US9529616B2 (en) Migrating processes between source host and destination host using a shared virtual file system
US8863117B2 (en) Optimizing a file system interface in a virtualized computing environment
CN114691300B (zh) 一种虚拟机实例的热迁移方法
KR101847262B1 (ko) 하드웨어 가속기를 포함하는 메인 메모리 및 메인 메모리의 동작 방법
CN102652308A (zh) 将数据高效地载入计算系统的存储器中
US8578069B2 (en) Prefetching for a shared direct memory access (DMA) engine
CN111209080A (zh) 一种图形处理器透传的方法
CN117331704A (zh) 图形处理器gpu调度方法、装置和存储介质
US20140282537A1 (en) Virtual machine image disk usage
US9898307B2 (en) Starting application processors of a virtual machine
CN103927193A (zh) Java应用程序函数迁移运行时的加载方法、服务端虚拟机
US20120265920A1 (en) Storage block deallocation in virtual environments
US10025607B2 (en) Optimizing a file system interface in a virtualized computing environment
US8300704B2 (en) Picture processing via a shared decoded picture pool
US9471246B2 (en) Data sharing using difference-on-write
WO2016003126A1 (ko) 압축 가속 장치 및 이에 적용되는 압축 가속기
US9304874B2 (en) Virtual machine-guest driven state restoring by hypervisor
US20130318319A1 (en) Systems and methods for managing zeroed logical volume
RU2835764C1 (ru) Способ миграции виртуальных устройств с сохранением их динамического состояния
US9912787B2 (en) Zero-copy multiplexing using copy-on-write

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