KR20130027253A - 데이터의 압축 방법 - Google Patents
데이터의 압축 방법 Download PDFInfo
- Publication number
- KR20130027253A KR20130027253A KR1020110090734A KR20110090734A KR20130027253A KR 20130027253 A KR20130027253 A KR 20130027253A KR 1020110090734 A KR1020110090734 A KR 1020110090734A KR 20110090734 A KR20110090734 A KR 20110090734A KR 20130027253 A KR20130027253 A KR 20130027253A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- compressed data
- stored
- size
- page
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
압축률이 개선된 데이터의 압축 방법을 개시한다. 이를 위해 본 발명은, 제1 크기를 가지는 복수개의 로우 데이터(raw data)를 압축하여 복수개의 압축 데이터를 생성하는 단계, 상기 제1 크기보다 큰 할당 크기를 가지는 슈퍼 페이지를 정의하는 단계, 및 상기 복수개의 압축 데이터 중 기준 값보다 작은 압축 비율을 가지는 압축 데이터를 상기 슈퍼 페이지에 저장하는 단계를 포함하고, 상기 압축 비율은 상기 제1 크기에 대한 압축 데이터의 크기의 비율이고, 상기 기준 값은 0.5를 초과하며 1 미만인 것을 특징으로 하는 데이터의 압축 방법을 제공한다.
Description
본 발명은 데이터의 압축 방법에 관한 것으로, 더욱 상세하게는 플래시 메모리의 페이지에 저장되는 데이터의 압축 방법에 관한 것이다.
플래시 메모리 장치(flash memory device)는 전기적으로 프로그램 및 소거 동작이 가능한 비휘발성 메모리 장치이다. 상기 플래시 메모리 장치의 저장 데이터는 메모리 셀의 문턱 전압에 의해 정의되고, 프로그램 동작은 메모리 셀의 문턱 전압(threshold voltage)을 변화시키는 방식으로 이루어진다. 프로그램 시의 셀의 문턱 전압은 증가형 스텝 펄스 프로그램(incremental step pulse program, 이하 'ISPP'라 지칭함) 방식으로 제어될 수 있다.
본 발명이 해결하고자 하는 과제는, 압축 효율이 개선된 데이터의 압축 방법을 제공하는 것이다.
본 발명의 일 태양에 의한 데이터의 압축 방법이 제공된다. 상기 데이터의 압축 방법은, 제1 크기를 가지는 복수개의 로우 데이터(raw data)를 압축하여 복수개의 압축 데이터를 생성하는 단계, 상기 제1 크기보다 큰 할당 크기를 가지는 슈퍼 페이지를 정의하는 단계, 및 상기 복수개의 압축 데이터 중 기준 값보다 작은 압축 비율을 가지는 압축 데이터를 상기 슈퍼 페이지에 저장하는 단계를 포함하고, 상기 압축 비율은 상기 제1 크기에 대한 압축 데이터의 크기의 비율이고, 상기 기준 값은 0.5를 초과하며 1 미만일 수 있다.
상기 데이터의 압축 방법의 일 예에 의하면, 상기 압축 데이터를 상기 슈퍼 페이지에 저장하는 단계는, 상기 복수개의 압축 데이터 중 제1 압축 데이터가 상기 기준 값보다 작은 압축 비율을 가질 경우 상기 제1 압축 데이터를 상기 슈퍼 페이지에 저장하고, 상기 복수개의 압축 데이터 중 제2 압축 데이터가 상기 기준 값보다 큰 압축 비율을 가질 경우 상기 제2 압축 데이터에 대응되는 로우 데이터를 상기 슈퍼 페이지에 저장할 수 있다.
상기 데이터의 압축 방법의 다른 예에 의하면, 상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 짝수 배이고, 상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 홀수 개일 수 있다. 특히, 상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 2배이고, 상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 3개일 수 있다.
상기 데이터의 압축 방법의 다른 예에 의하면, 상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 홀수 배이고, 상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 짝수 개일 수 있다. 특히, 상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 3배이고, 상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 4개일 수 있다.
상기 데이터의 압축 방법의 다른 예에 의하면, 상기 기준 값은 0.63 내지 0.69 또는 0.72 내지 0.78일 수 있다.
상기 데이터의 압축 방법의 다른 예에 의하면, 상기 슈퍼 페이지에 저장된 상기 압축 데이터는 단일 메모리 칩 내 다른 플레인의 페이지들에 저장될 수 있다. 선택적으로, 상기 슈퍼 페이지에 저장된 상기 압축 데이터는 복수개의 메모리 칩들 각각의 페이지에 저장되는 것을 특징으로 하는 데이터의 압축 방법.
본 발명의 다른 태양에 의한 데이터의 압축 방법이 제공된다. 상기 데이터의 압축 방법은, 로우 데이터를 압축하여 복수개의 압축 데이터를 생성하는 단계, 상기 로우 데이터의 크기의 적어도 2배의 할당 크기를 가지는 슈퍼 페이지를 정의하는 단계, 및 상기 슈퍼 페이지에 적어도 3개의 압축 데이터를 저장하는 단계를 포함하고, 상기 적어도 3개의 압축 데이터 각각은, 상기 로우 데이터의 상기 크기에 대한 압축 데이터의 크기의 비율로 정의되는 압축 비율을 가지며, 상기 압축 비율은 0.5 내지 1 사이의 기준 값 미만일 수 있다.
상기 데이터의 압축 방법의 일 예에 의하면, 상기 기준 값은 [(상기 슈퍼 페이지의 상기 할당 크기 / 상기 로우 데이터의 상기 크기) / 슈퍼 페이지에 저장된 상기 압축 데이터의 개수]일 수 있다.
상기 데이터의 압축 방법의 다른 예에 의하면, 상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 [(상기 슈퍼 페이지의 상기 할당 크기 / 상기 로우 데이터의 상기 크기) / 상기 기준 값]일 수 있다.
일반적으로 페이지에 저장된 압축 데이터의 압축 비율은 0 내지 0.5여야만 한다. 압축 비율이 0.5를 초과하는 경우, 페이지 내에는 1개의 압축 데이터만이 저장될 수 있기 때문에 페이지에 압축 데이터를 저장할 필요가 없고, 압축 전의 데이터를 저장하는 것이 오히려 데이터의 처리 속도 면에서 유리하기 때문이다.
그러나 로우 데이터를 압축하는 경우, 통계적으로 매우 많은 수의 압축 데이터의 압축 비율이 50%를 초과한다. 따라서 적은 수의 압축 데이터만이 페이지게 저장되게 되고, 대부분 로우 데이터의 형태로 페이지에 저장되게 된다.
본 발명의 기술적 사상에 의한 실시예들에 따르면, 슈퍼 페이지를 사용하고 나아가 0.5를 초과하며 1 미만의 기준 값을 기초로 데이터가 압축되므로, 많은 수의 압축 데이터가 슈퍼 페이지에 저장될 수 있다. 결과적으로, 압축된 데이터의 개수를 증가시킬 수 있어, 압축 비율이 높은 데이터가 저장되더라도 전체 압축률이 개선될 수 있다.
도 1은 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법을 나타낸 흐름도이다.
도 2 내지 도 4는 슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 실시예를 도시한다. 도 3은 제1 페이지에 저장된 데이터를 나타내고, 도 4는 제2 페이지에 저장된 데이터를 나타낸다.
도 5 내지 도 7은 슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 다른 실시예를 도시한다. 도 6은 제1 페이지에 저장된 데이터를 나타내고, 도 7은 제2 페이지에 저장된 데이터를 나타낸다.
도 8 및 도 9는 슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.66인 경우에 대한 실시예를 도시한다. 도 9는 슈퍼 페이지에 저장된 데이터를 나타낸다.
도 10 및 도 11은 슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.75인 경우에 대한 실시예를 도시한다. 도 11은 슈퍼 페이지에 저장된 데이터를 나타낸다.
도 12는 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법을 나타낸 흐름도이다.
도 13 및 도 14에 나타난 데이터의 압축 비율에 관한 통계 자료를 나타낸다.
도 15 및 도 16은 본 발명의 기술적 사상에 의한 실시예들에 따른 저장 장치의 블록도 및 평면도이다.
도 17 및 도 18은 도 15 및 도 16의 제어부와 저장부를 포함하는 저장 장치의 평면도들이다.
도 19 및 도 20은 도 15 및 도 16의 제어부와 저장부를 포함하는 저장 장치의 평면도들로서,
도 21은 본 발명의 기술적 사상에 의한 실시예에 따른 저장 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 2 내지 도 4는 슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 실시예를 도시한다. 도 3은 제1 페이지에 저장된 데이터를 나타내고, 도 4는 제2 페이지에 저장된 데이터를 나타낸다.
도 5 내지 도 7은 슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 다른 실시예를 도시한다. 도 6은 제1 페이지에 저장된 데이터를 나타내고, 도 7은 제2 페이지에 저장된 데이터를 나타낸다.
도 8 및 도 9는 슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.66인 경우에 대한 실시예를 도시한다. 도 9는 슈퍼 페이지에 저장된 데이터를 나타낸다.
도 10 및 도 11은 슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.75인 경우에 대한 실시예를 도시한다. 도 11은 슈퍼 페이지에 저장된 데이터를 나타낸다.
도 12는 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법을 나타낸 흐름도이다.
도 13 및 도 14에 나타난 데이터의 압축 비율에 관한 통계 자료를 나타낸다.
도 15 및 도 16은 본 발명의 기술적 사상에 의한 실시예들에 따른 저장 장치의 블록도 및 평면도이다.
도 17 및 도 18은 도 15 및 도 16의 제어부와 저장부를 포함하는 저장 장치의 평면도들이다.
도 19 및 도 20은 도 15 및 도 16의 제어부와 저장부를 포함하는 저장 장치의 평면도들로서,
도 21은 본 발명의 기술적 사상에 의한 실시예에 따른 저장 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 “포함한다(comprise)” 및/또는 “포함하는(comprising)”은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 “및/또는”은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열의 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법(100)을 나타낸 흐름도이다.
도 1을 참조하면, 데이터의 압축 방법(100)은 로우 데이터 생성 단계(S110), 압축 데이터 생성 단계(S120), 슈퍼 페이지 정의 단계(S130), 및 압축 데이터 선택 및 슈퍼 페이지로의 저장 단계(S140)를 포함할 수 있다.
로우 데이터 생성 단계(S110)에서, 로우 데이터는 호스트 또는 인터페이스로부터 제공된 데이터를 기초로 생성될 수 있다. 예를 들어, 데이터의 압축 방법이 솔리드 스테이트 드라이브(SSD, solid state drive)에서 사용되는 경우, 인터페이스를 통해 입력된 기본 데이터가 플래시 변환층(FTL, flash transition layer)에 의해 변환됨으로써 로우 데이터가 생성될 수 있다.
압축 데이터 생성 단계(S120)에서, 압축 데이터는 로우 데이터로부터 생성될 수 있다. 압축 데이터를 생성하기 위해 다양한 압축 알고리즘이 이용될 수 있다. 로우 데이터가 제1 크기를 가지고 압축 데이터가 제2 크기를 가질 경우, 압축 비율은 제2 크기/제1 크기로 정의될 수 있다.
슈퍼 페이지 정의 단계(S130)에서, 슈퍼 페이지는 로우 데이터의 제1 크기보다 큰 할당 크기를 가지도록 정의될 수 있다. 여기서 슈퍼 페이지의 할당 크기는 로우 데이터 또는 압축 데이터가 저장될 수 있는 공간을 의미하고, 예를 들어 제1 크기의 배수일 수 있다. 예를 들어, 할당 공간이 제1 크기의 3배인 경우, 로우 데이터는 슈퍼 페이지에 3개 저장될 수 있고, 압축 비율이 0.75인 압축 데이터는 슈퍼 페이지에 4개 저장될 수 있다.
압축 데이터 선택 및 슈퍼 페이지로의 저장 단계(S140)에서, 압축 데이터 중 기준 값보다 작은 압축 비율을 가지는 압축 데이터가 선택될 수 있고, 선택된 압축 데이터가 슈퍼 페이지에 저장될 수 있다. 기준 값은 0.5를 초과하며 1 미만일 수 있다. 예를 들어, 기준 값이 0.66인 경우, 복수개의 압축 데이터 중 압축 비율이 0.66 이하(또는 미만)인 압축 데이터가 선택될 수 있고, 상기 선택된 압축 데이터가 슈퍼 페이지에 저장될 수 있다. 슈퍼 페이지의 할당 공간이 제1 크기의 2배인 경우, 압축 데이터는 슈퍼 페이지에 3개 저장될 수 있다.
여기서 슈퍼 페이지는 복수개의 페이지가 머지되는(merged) 논리적인 개념으로서, 메모리 칩 내 메모리 셀에 저장되는 데이터의 저장 단위, 즉 물리적인 개념의 페이지와 구별된다. 따라서 본 명세서의 "데이터가 슈퍼 페이지에 저장된다"는 표현은 슈퍼 페이지라는 논리적인 개념에 데이터가 맵핑(mapping)됨을 의미하는 것이며, 실제 데이터는 플래시 메모리의 실질적인 물리적 저장 단위인 페이지에 저장됨에 유의한다.
슈퍼 페이지를 이용하여 압축 데이터를 저장할 경우 1개의 페이지 내에 복수개의 압축 데이터가 저장될 수 있다. 그러나 슈퍼 페이지를 이용하지 않을 경우, 페이지에 저장된 압축 데이터의 압축 비율은 0 내지 0.5여야만 한다. 압축 비율이 0.5를 초과하는 경우, 페이지 내에는 1개의 압축 데이터만이 저장될 수 있기 때문에 페이지에 압축 데이터를 저장할 필요가 없고, 압축 전의 데이터를 저장하는 것이 오히려 데이터의 처리 속도 면에서 유리하다고 할 것이다.
슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 실시예가 도 2 내지 도 4에 도시된다. 여기서 '기준 값'이라 함은 압축 데이터가 페이지에 저장될 수 있는 압축 비율과 대응될 수 있다. 즉, 기준 값이 0.5인 경우, 이는 복수개의 압축 데이터 중 0.5 이하의 압축 비율을 가진 압축 데이터만이 선택되어 페이지에 저장될 수 있음을 의미한다.
도 2 내지 도 4를 참조하면, 2KB(kilobype)의 할당 크기를 가지는 제1 페이지(P1) 및 제2 페이지(P2)에 로우 데이터 또는 압축 데이터가 저장될 수 있다. 제1 및 제2 로우 데이터들(R1, R2)이 제1 크기(예를 들어, 2KB)를 가질 경우에, 제1 및 제2 압축 데이터들(C1, C2)은 상기 제1 크기보다 작은 크기를 (예를 들어, 각각 0.8KB 0.9KB) 가질 수 있다. 이 경우 제1 및 제2 압축 데이터들(C1, C2)의 압축률은 각각 40% 및 45% 일 수 있다.
제1 및 제2 압축 데이터들(C1, C2)의 압축 비율이 50% 이하 (즉, '기준 값'인 0.5 이하)이므로, 제1 페이지(P1)에는 도 3과 같이 제1 압축 데이터(C1) 및 제2 압축 데이터(C2)가 저장될 수 있다. 따라서 제2 페이지(P2)에는 다른 로우 데이터 또는 압축 데이터가 저장될 수 있을 것이다.
슈퍼 페이지를 이용하지 않는 데이터의 압축 방법에서 기준 값이 0.5인 경우에 관한 다른 실시예가 도 5 내지 도 7에 도시된다. 도 5 내지 도 7을 참조하면, 제1 및 제2 로우 데이터들(R1, R2)의 압축 결과, 제1 및 제2 압축 데이터들(C1, C2)은 각각 0.7KB, 1.2KB의 크기를 가질 수 있다. 이 경우 제1 및 제2 압축 데이터들(C1, C2)의 압축률은 각각 35 % 및 60 % 이다. 제1 압축 데이터(C1)의 경우 압축 비율이 50% 이하(즉, '기준 값'인 0.5 이하)이지만, 제2 압축 데이터(C2)의 압축 비율은 50%를 초과한다. 제1 페이지(P1)에 제1 압축 데이터(C1) 및 제2 압축 데이터(C2)가 저장될 수 없고, 결과적으로 제1 페이지(P1)에는 제1 로우 데이터(R1)가 저장되고 제2 페이지(P2)에는 제2 로우 데이터(R2)가 저장된다.
본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법은, 슈퍼 페이지를 사용함으로써 압축 효율을 개선시킬 수 있다. 슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.66인 경우에 대한 실시예가 도 8 및 도 9에 도시된다. 비록 본 실시예에서는 기준 값이 0.66이지만, 기준 값은 0.63 내지 0.69 사이의 임의의 값을 가질 수 있다.
도 8 및 도 9를 참조하면, 슈퍼 페이지(SP)의 할당 크기는 페이지의 크기(즉, 로우 데이터의 제1 크기)의 짝수 배일 수 있다. 예를 들어, 슈퍼 페이지(SP)의 할당 크기는 2배일 수 있고, 이 경우 제1 페이지(P1)와 제2 페이지(P2)가 머지된(merged) 형태의 슈퍼 페이지(SP)가 정의될 수 있다. 슈퍼 페이지(SP)는 4KB(kilobype)의 할당 크기를 가지며, 로우 데이터 또는 압축 데이터를 저장할 수 있다.
제1 내지 제3 로우 데이터들(R1, R2, R3)의 압축 결과, 제1 내지 제3 압축 데이터들(C1, C2, C3)은 각각 1.2KB, 1KB, 및 1.3KB의 크기를 가질 수 있다. 이 경우 제1 내지 제 3 압축 데이터들(C1, C2, C3)의 압축률은 각각 60%, 55%, 및 65% 이다. 제1 내지 제3 압축 데이터들(C1, C2, C3)의 압축 비율은 모두 0.66 이하이므로, 제1 내지 제3 압축 데이터들(C1, C2, C3)이 슈퍼 페이지(SP) 내에 저장될 수 있다.
상술한 바와 같이, 슈퍼 페이지(SP)는 복수개의 페이지가 머지되는 논리적인 개념으로서, 메모리 칩 내 메모리 셀에 저장되는 데이터의 저장 단위, 즉 물리적인 개념의 페이지와 구별된다. 도 9를 참조하면, 슈퍼 페이지(SP)에 저장된 제1 내지 제3 압축 데이터들(C1, C2, C3)은 제1 페이지(P1)와 제2 페이지(P2)로 분할되어 메모리 셀에 저장될 수 있다.
비록 본 발명이 플래시 메모리에 사용되는 페이지 및 이의 상위 개념인 슈퍼 페이지를 이용한 데이터의 압축 방법을 제안하고 있지만, 본 발명은 이에 제한되지 않음에 유의한다. 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법은 플래시 메모리에만 제한되지 않으며, 다른 저장 매체(예를 들어, 하드 디스크)에서도 본 발명의 데이터의 압축 방법이 적용될 수 있다. 플래시 메모리의 물리적 저장 단위인 페이지는 하드 디스크의 물리적 저장 단위인 섹터와 대응될 수 있으므로, 섹터의 상위개념을 정의함으로써 본 발명의 데이터의 압축 방법이 활용될 수 있다.
슈퍼 페이지를 이용하는 데이터의 압축 방법에서 기준 값이 0.75인 경우에 대한 실시예가 도 10 및 도 11에 도시된다. 비록 본 실시예에서는 기준 값이 0.75이지만, 기준 값은 0.72 내지 0.78 사이의 임의의 값을 가질 수 있다.
도 10및 도 11을 참조하면, 슈퍼 페이지(SP)의 할당 크기는 페이지의 크기(즉, 로우 데이터의 제1 크기)의 홀수 배일 수 있다. 예를 들어, 슈퍼 페이지(SP)의 할당 크기는 3배일 수 있고, 이 경우 제1 페이지 내지 제3 페이지(P1, P2, P3)가 머지된 형태의 슈퍼 페이지(SP)가 정의될 수 있다. 슈퍼 페이지(SP)는 6KB(kilobype)의 할당 크기를 가지며, 로우 데이터 또는 압축 데이터를 저장할 수 있다.
제1 내지 제4 로우 데이터들(R1, R2, R3, R4)의 압축 결과, 제1 내지 제4 압축 데이터들(C1, C2, C3, C4)은 각각 1.3KB, 1.4KB, 1.5KB, 및 1.3KB의 크기를 가질 수 있다. 이 경우 제1 내지 제 4 압축 데이터들(C1, C2, C3, C4)의 압축률은 각각 65%, 70%, 75%, 및 65% 이다. 제1 내지 제4 압축 데이터(C1, C2, C3, C4)의 압축 비율은 모두 0.75 이하이므로, 제1 내지 제4 압축 데이터(C1, C2, C3, C4)가 슈퍼 페이지(SP) 내에 저장될 수 있다. 도 11을 참조하면, 슈퍼 페이지(SP)에 저장된 제1 내지 제4 압축 데이터(C1, C2, C3, C4)는 제1 페이지(P1), 제2 페이지(P2), 및 제3 페이지(P3)로 분할되어 메모리 셀에 저장될 수 있다.
도 12는 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터의 압축 방법(200)을 나타낸 흐름도이다. 이 실시예들에 따른 데이터의 압축 방법(200)은, 도 1의 실시예를 일부 변형한 것일 수 있다. 이하 실시예들 간의 중복되는 설명은 생략하기로 한다.
도 12를 참조하면, 데이터의 압축 방법(200)은 로우 데이터 생성 단계(S210), 압축 데이터 생성 단계(S220), 슈퍼 페이지(SP) 정의 단계(S230), 압축 데이터 분류 단계(S250, S260, S270), 압축 데이터의 슈퍼 페이지로의 저장 단계(S300), 및 로우 데이터의 슈퍼 페이지로의 저장 단계(S310)를 포함할 수 있다.
로우 데이터 생성 단계(S210)에서, 호스트 또는 인터페이스로부터 제공된 데이터를 기초로 생성된 전체 로우 데이터의 개수가 K+1개일 수 있고, 이 경우 0번째 내지 K번째 로우 데이터가 생성될 수 있다. 이후, 압축 데이터 생성 단계(S220)에서, 0번째 내지 K번째 로우 데이터와 상응하는, 0번째 내지 K번째 압축 데이터가 생성될 수 있다.
슈퍼 페이지가 정의된 후(S230), N번째 압축 데이터의 압축 비율이 기준 값 미만인지 여부를 판단한다(S250). 처음에는 N=0 이므로, 먼저 0번째 압축 데이터의 압축 비율이 기준 값 미만인지 여부가 판단될 것이다.
N번째 압축 데이터의 압축 비율이 기준 값 미만인 경우, 상기 N번째 압축 데이터는 제1 종류로 분류된다(S260). 이와 반대로, N번째 압축 데이터의 압축 비율이 기준 값 이상인 경우, 상기 N번째 압축 데이터는 제2 종류로 분류될 수 있다(S270). 이러한 분류 단계는 추후 슈퍼 페이지에 저장되는 데이터가 압축 데이터의 형태인지 로우 데이터의 형태인지를 확인하는 일종의 마킹 작업으로 이해될 수 있다.
이후 N이 K인지 여부를 판단하여 전체 압축 데이터에 대한 분류 단계가 수행되었는지 여부를 판단한다(S280). 전체 압축 데이터에 대한 분류 단계가 수행되지 않은 경우, N 값을 증가시키고(S290) 분류 단계(S250, S260, S270)를 반복 수행한다.
전체 압축 데이터에 대한 분류 단계가 수행되면, 제1 종류로 분류된 압축 데이터를 슈퍼 페이지에 저장한다(S300). 한편, 제2 종류로 분류된 압축 데이터의 경우, 압축 데이터를 슈퍼 페이지에 저장하지 않고, 압축 데이터에 대응되는 로우 데이터를 슈퍼 페이지에 저장한다(S310).
이와 같은 과정을 통해 K+1개의 압축 데이터 중 기준 값보다 작은 압축 비율을 가지는 압축 데이터를 슈퍼 페이지에 저장할 수 있다. 한편, 상기 기준 값은 0.5를 초과하며 1 미만일 수 있다. 따라서, 슈퍼 페이지를 사용하지 않는 경우 기준 값이 0 내지 0.5이어야 하는 경우와 대조된다.
기준 값이 0.5를 초과함으로써 압축 성공률이 높아질 수 있고, 결과적으로 전체 압축 효율이 개선될 수 있다는 점에 유의할 필요가 있다. 이러한 기술적 이점은 다음 도 13 및 도 14에 나타난 데이터의 압축 비율에 관한 통계 자료에 근거하여 도출될 수 있다.
도 13을 참조하면, 크기가 2KB인 복수개의 로우 데이터를 압축하는 경우, 매우 많은 수의 압축 데이터의 압축 비율이 50% 내지 60% 사이에 위치함을 알 수 있다. 또한, 도 14를 참조하면, 크기가 4KB인 복수개의 로우 데이터를 압축하는 경우, 매우 많은 수의 압축 데이터의 압축 비율이 43% 내지 53% 사이에 위치함을 알 수 있다. 이러한 결과는 소프트웨어를 통해 나타난 결과로서, 실제 압축기가 하드웨어로 구현될 경우 약 10%의 성능 감소를 예상할 수 있을 것이다. 따라서 2KB의 로우 데이터의 경우 압축 데이터의 압축 비율이 대부분 60% 내지 70% 사이에 위치하고, 4KB의 로우 데이터의 경우 압축 데이터의 압축 비율이 대부분 60% 내지 70% 사이에 위치할 것이다.
슈퍼 페이지를 이용하지 않는 경우 기준 값은 0.5를 초과할 수 없으며, 이 경우 통계적으로. 페이지에는 압축 데이터가 아닌 로우 데이터가 대부분 저장될 것이다. 그러나 본 발명의 기술적 사상에 의한 실시예들에 따르면, 슈퍼 페이지를 사용하고 나아가 0.5를 초과하며 1 미만의 기준 값을 기초로 데이터가 압축되어 많은 수의 압축 데이터가 슈퍼 페이지에 저장될 수 있다. 결과적으로, 비록 압축 비율이 높은 데이터가 저장되더라고 압축된 데이터의 수를 증가시킬 수 있어, 전체 압축률이 개선될 수 있다.
도 15 및 도 16은 본 발명의 기술적 사상에 의한 실시예들에 따른 저장 장치(400)의 블록도 및 평면도이다.
도 15 및 도 16을 참조하면, 저장 장치(400)는 인터페이스(410), 플래시 변환층(420), 제어부(430), 및 저장부(440)를 포함할 수 있다. 비록 본 실시예는 저장 장치(400)의 일 예인 솔리드 스테이트 드라이브를 기초로 설명되었지만, 본 발명의 기술 사상은 이에 제한되지 않음에 유의한다. 즉, 본 발명의 기술 사상은 하드 디스크와 같은 저장 장치에도 적용될 수 있다.
인터페이스(410)는 호스트와 통신을 수행한다. 즉, 인터페이스(410)는 저장부(440)에 기록할 데이터를 호스트로부터 전송받거나, 저장부(440)로부터 로딩된 데이터를 호스트에 전달할 수 있다. 인터페이스(410)는 호스트 및 저장부(440) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함할 수 있다. 상기 프로토콜은, 예를 들어, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 및 IDE(Integrated Drive Electronics)를 포함할 수 있다.
플래시 변환층(420)은 인터페이스(410)로부터 제공된 기본 데이터를 수신하여, 플래시 타입에 맞는 로우 데이터로 변환할 수 있다. 상술한 PCI-E, ATA, Serial-ATA 등의 프로토콜들에 의해 생성된 기본 데이터는 플래시 메모리와 같은 저장부(440)에 직접 저장될 수 없을 수 있다. 따라서 기본 데이터를 플래시 메모리에 적합한 로우 데이터로 변환하기 위한 작업이 수행되어야 한다. 플래시 변환층(420)은 상기 작업을 수행하여 기본 데이터로부터 로우 데이터를 생성할 수 있다.
비록 도면에 도시되지는 않았지만, 플래시 변환층(420)은 수신된 기본 데이터 또는 생성된 로우 데이터를 임시로 저장하기 위한 버퍼(미도시)를 포함할 수 있다. 또한, 플래시 변환층(420)은 제어부(430) 내에서 구현될 수도 있다.
제어부(430)는 로우 데이터를 수신하여 저장부(440)에 저장할 수 있다. 제어부(430)는 압축부(433) 및 데이터 분류부(435)를 포함할 수 있다. 압축부(433)는 로우 데이터로부터 압축 데이터를 생성할 수 있다. 데이터 분류부(435)는 압축 데이터의 압축 비율을 기준 값과 비교하여, 저장부(440)의 슈퍼 페이지에 압축 데이터를 저장할 것인지, 상기 압축 데이터에 대응되는 로우 데이터를 저장할 것인지를 결정할 수 있다.
플래시 변환층(420)과 제어부(430)는 본 발명의 기술 사상에 의한 실시예들에 따른 데이터의 압축 방법을 구현하기 위한 구성요소일 수 있다. 예를 들어, 로우 데이터 생성 단계(도 1의 S110)는 플래시 변환층(420)에 의해 수행될 수 있다. 압축 데이터 생성 단계(도 1의 S120)는 제어부(430) 내 압축부(433)에 의해 수행될 수 있다. 또한, 슈퍼 페이지 정의 단계(S130) 및 압축 데이터의 선택 및 슈퍼 페이지로의 저장 단계(S140)는 데이터 분류부(435)에 의해 수행될 수 있다.
상술한 바와 같이, 상기 슈퍼 페이지 정의 단계에서, 슈퍼 페이지는 로우 데이터의 크기의 적어도 2개의 할당 크기를 가지도록 정의될 수 있고, 압축 데이터의 저장 단계에서, 적어도 3개의 압축 데이터가 저장될 수 있다. 이 경우 상기 적어도 3개의 압축 데이터 각각은, 상기 로우 데이터의 상기 크기에 대한 압축 데이터의 크기의 비율로 정의되는 압축 비율을 가지며, 상기 압축 비율은 0.5 내지 1 사이의 기준 값 미만일 수 있다.
나아가 상기 기준 값은 [(상기 슈퍼 페이지의 상기 할당 크기 / 상기 로우 데이터의 상기 크기) / 슈퍼 페이지에 저장된 상기 압축 데이터의 개수]일 수 있다. 예를 들어, 슈퍼 페이지의 할당 크기가 4KB이고, 로우 데이터의 크기가 2KB이며, 슈퍼 페이지에 저장된 압축 데이터의 개수가 3개인 경우, 기준 값은 (4/2)/3 이므로 0.66이 될 수 있다. 또한, 슈퍼 페이지의 할당 크기가 6KB이고, 로우 데이터의 크기가 2KB이며, 슈퍼 페이지에 저장된 압축 데이터의 개수가 4개인 경우, 기준 값은 (6/2)/4 이므로 0.75가 될 수 있다.
한편, 기준 값이 정해진 경우, 슈퍼 페이지에 저장된 압축 데이터의 개수가 결정될 수 있다. 즉, 상기 개수는 [(상기 슈퍼 페이지의 상기 할당 크기 / 상기 로우 데이터의 상기 크기) / 상기 기준 값]으로 표현될 수 있다. 예를 들어, 슈퍼 페이지의 할당 크기가 8KB이고, 로우 데이터의 크기가 2KB이며, 기준 값이 0.8인 경우, 슈퍼 페이지에 저장된 압축 데이터의 개수는 (8/2)/0.8 이므로 5개일 수 있다.
이러한 i) 기준 값 및 ii) 슈퍼 페이지에 저장된 압축 데이터의 개수는 선택의 문제로서, 데이터의 상황에 따라 변화할 수 있다. 본 명세서에서는 상기 값들이 고정된 것으로 표현되었지만, 본 발명은 이에 제한되지 않는다.
예를 들어, 로우 페이지의 크기의 3배의 할당 크기를 가지는 슈퍼 페이지가 정의되는 경우를 가정한다. 압축 데이터의 압축 비율이 통계적으로 대부분 0.6 내지 0.7 사이에 존재하는 경우, 도 10 및 도 11에 나타난 바와 같이, 기준 값은 0.75로 설정될 수 있고, 슈퍼 페이지에 저장된 압축 데이터의 개수는 3개로 설정될 수 있다.
그러나 이러한 압축 비율은 통계적으로 변화할 수 있다. 호스트로부터 수신된 로우 데이터의 종류가 변화할 수 있기 때문이다. 예를 들어, 호스트로부터 수신된 로우 데이터가 영상 데이터에서 문서 데이터로 변화하여 압축시 개별 압축률이 증가할 수 있다. 이 경우 로우 데이터를 압축한 압축 데이터의 압축 비율이 통계적으로 대부분 0.3 내지 0.4 사이에 존재할 수 있다. 이 경우 기준 값은 0.5로 재설정될 수 있고, 그에 따라 슈퍼 페이지에 저장된 압축 데이터의 개수는 6개로 설정될 수도 있다.
저장부(440)는 로우 데이터 또는 압축 데이터를 저장할 수 있다. 저장 장치가 솔리드 스테이트 드라이브인 경우 저장부(440)는 플래시 메모리 패키지일 수 있으며, 이 경우 플래시 메모리 패키징을 위해 다양한 패키징 방법이 이용될 수 있다.
도 17 및 도 18은 도 15 및 도 16의 제어부(430)와 저장부(440)를 포함하는 저장 장치(400a, 400b)의 평면도들이다. 도 17 및 도 18에서, 논리적인 개념인 슈퍼 페이지에 저장된 압축 데이터가, 메모리 칩 내의 물리적인 개념인 페이지에 저장되는 모습이 도시된다.
도8 및 도 9에서 나타난 실시예를 참조하면, 로우 데이터의 크기의 3배의 할당 크기를 가지는 슈퍼 페이지(SP)가 정의되고, 슈퍼 페이지(SP)에 제1 내지 제3 압축 데이터들(C1, C2, C3)이 저장될 수 있다.
이 경우, 도 17을 참조하면, 슈퍼 페이지(SP)에 저장된 압축 데이터들(C1, C2, C3)은 복수개의 메모리 칩들 각각의 페이지에 저장될 수 있다. 즉, 제어부(430)는 슈퍼 페이지(SP)에 저장된 압축 데이터(C1, C2, C3)를 제1 페이지(P1)와 제2 페이지(P2)로 분리하여 각각 제1 메모리 칩과 제2 메모리 칩에 저장할 수 있다. 따라서, 제1 압축 데이터(C1)와 제2 압축 데이터(C2)의 일부는 제1 페이지(P1)로서 제1 칩에 저장되고, 제2 압축 데이터(C2)의 나머지 일부와 제3 압축 데이터가 제2 페이지(P2)로서 제2 칩에 저장될 수 있다.
또한, 도 18을 참조하면, 슈퍼 페이지(SP)에 저장된 압축 데이터들(C1, C2, C3)은 단일 메모리 칩 내 서로 다른 플레인의 페이지들에 저장될 수도 있다. 즉, 제어부(430)는 슈퍼 페이지(SP)에 저장된 압축 데이터(C1, C2, C3)를 제1 페이지(P1)와 제2 페이지(P2)로 분리하여 각각 단일 메모리 칩 내 제1 플레인과 제2 플레인에 저장할 수 있다. 따라서, 제1 압축 데이터(C1)와 제2 압축 데이터(C2)의 일부는 제1 페이지(P1)로서 제1 플레인에 저장되고, 제2 압축 데이터(C2)의 나머지 일부와 제3 압축 데이터가 제2 페이지(P2)로서 제2 플레인에 저장될 수 있다.
도 19 및 도 20은 도 15 및 도 16의 제어부(430)와 저장부(440)를 포함하는 저장 장치(400c, 400d)의 평면도들로서, 도 17 및 도 18에 나타난 실시예의 변형예일 수 있다. 이하 실시예들 간의 중복되는 설명은 생략하기로 한다.
도10 및 도 11에서 나타난 실시예를 참조하면, 로우 데이터의 크기의 3배의 할당 크기를 가지는 슈퍼 페이지(SP)가 정의되고, 슈퍼 페이지(SP)에 제1 내지 제4 압축 데이터(C1, C2, C3, C4)가 저장될 수 있다.
도 19와 같이 슈퍼 페이지(SP)에 저장된 압축 데이터들(C1, C2, C3, C4)이 복수개의 메모리 칩들 각각의 페이지에 저장되는 경우, 제1 압축 데이터(C1)와 제2 압축 데이터(C2)의 일부는 제1 페이지(P1)로서 제1 칩에 저장되고, 제2 압축 데이터(C2)의 나머지 일부와 제3 압축 데이터는 제2 페이지(P2)로서 제2 칩에 저장되며, 제3 압축 데이터의 나머지 일부와 제4 압축 데이터는 제3 페이지로서 제3 칩에 저장된다.
도 20과 같이 슈퍼 페이지(SP)에 저장된 압축 데이터들(C1, C2, C3, C4)이 단일 메모리 칩 내 서로 다른 플레인의 페이지들에 저장되는 경우, 제1 압축 데이터(C1)와 제2 압축 데이터(C2)의 일부는 제1 페이지(P1)로서 상기 단일 메모리 칩 내 제1 플레인에 저장되고, 제2 압축 데이터(C2)의 나머지 일부와 제3 압축 데이터는 제2 페이지(P2)로서 상기 단일 메모리 칩 내 제2 플레인에 저장되며, 제3 압축 데이터의 나머지 일부와 제4 압축 데이터는 제3 페이지로서 상기 단일 메모리 칩 내 제3 플레인에 저장된다.
도 21은 본 발명의 기술적 사상에 의한 실시예에 따른 저장 장치(400)를 포함하는 컴퓨팅 시스템(500)을 나타내는 블록도이다.
도 21을 참조하면, 본 발명의 기술적 사상에 의한 실시예에 따른 컴퓨팅 시스템은 중앙 처리 장치(CPU, central process unit, 510), 램(RAM, random access memory, 520), 사용자 인터페이스(UI, user interface, 530), 전원(540), 및 저장 장치(400)를 포함할 수 있다.
저장 장치(400)는 시스템 버스(550)를 통해, 중앙 처리 장치(510), 램(520), 사용자 인터페이스(530) 및 전원(540)에 전기적으로 연결될 수 있다. 사용자 인터페이스(530)를 통해 제공되거나, 중앙 처리 장치(510)를 통해 처리된 데이터는 저장 장치(400)에 저장될 수 있다. 저장 장치(400)는 솔리드 스테이트 트라이브(SSD)로 구현될 수 있으며, 이 경우 컴퓨팅 시스템의 부팅 속도가 획기적으로 빨라질 수 있다.
본 발명을 명확하게 이해시키기 위해 첨부한 도면의 각 부위의 형상은 예시적인 것으로 이해하여야 한다. 도시된 형상 외의 다양한 형상으로 변형될 수 있음에 주의하여야 할 것이다. 도면들에 기재된 동일한 번호는 동일한 요소를 지칭한다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
Claims (10)
- 제1 크기를 가지는 복수개의 로우 데이터(raw data)를 압축하여 복수개의 압축 데이터를 생성하는 단계;
상기 제1 크기보다 큰 할당 크기를 가지는 슈퍼 페이지를 정의하는 단계; 및
상기 복수개의 압축 데이터 중 기준 값보다 작은 압축 비율을 가지는 압축 데이터를 상기 슈퍼 페이지에 저장하는 단계를 포함하고,
상기 압축 비율은 상기 제1 크기에 대한 압축 데이터의 크기의 비율이고, 상기 기준 값은 0.5를 초과하며 1 미만인 것을 특징으로 하는 데이터의 압축 방법. - 제1항에 있어서,
상기 압축 데이터를 상기 슈퍼 페이지에 저장하는 단계는,
상기 복수개의 압축 데이터 중 제1 압축 데이터가 상기 기준 값보다 작은 압축 비율을 가질 경우 상기 제1 압축 데이터를 상기 슈퍼 페이지에 저장하고,
상기 복수개의 압축 데이터 중 제2 압축 데이터가 상기 기준 값보다 큰 압축 비율을 가질 경우 상기 제2 압축 데이터에 대응되는 로우 데이터를 상기 슈퍼 페이지에 저장하는 것을 특징으로 하는 데이터의 압축 방법. - 제1항에 있어서,
상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 짝수 배이고,
상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 홀수 개인 것을 특징으로 하는 데이터의 압축 방법. - 제3항에 있어서,
상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 2배이고,
상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 3개인 것을 특징으로 하는 데이터의 압축 방법. - 제1항에 있어서,
상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 홀수 배이고,
상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 짝수 개인 것을 특징으로 하는 데이터의 압축 방법. - 제5항에 있어서,
상기 슈퍼 페이지의 상기 할당 크기는 상기 제1 크기의 3배이고,
상기 슈퍼 페이지에 저장된 상기 압축 데이터의 개수는 4개인 것을 특징으로 하는 데이터의 압축 방법. - 제1항에 있어서,
상기 슈퍼 페이지에 저장된 상기 압축 데이터는 단일 메모리 칩 내 다른 플레인의 페이지들에 저장되는 것을 특징으로 하는 데이터의 압축 방법. - 제1항에 있어서,
상기 슈퍼 페이지에 저장된 상기 압축 데이터는 복수개의 메모리 칩들 각각의 페이지에 저장되는 것을 특징으로 하는 데이터의 압축 방법. - 로우 데이터를 압축하여 복수개의 압축 데이터를 생성하는 단계;
상기 로우 데이터의 크기의 적어도 2배의 할당 크기를 가지는 슈퍼 페이지를 정의하는 단계; 및
상기 슈퍼 페이지에 적어도 3개의 압축 데이터를 저장하는 단계를 포함하고,
상기 적어도 3개의 압축 데이터 각각은, 상기 로우 데이터의 상기 크기에 대한 압축 데이터의 크기의 비율로 정의되는 압축 비율을 가지며, 상기 압축 비율은 0.5 내지 1 사이의 기준 값 미만인 것을 특징으로 하는 데이터의 압축 방법. - 제9항에 있어서,
상기 기준 값은 [(상기 슈퍼 페이지의 상기 할당 크기 / 상기 로우 데이터의 상기 크기) / 슈퍼 페이지에 저장된 상기 압축 데이터의 개수]인 것을 특징으로 하는 데이터의 압축 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110090734A KR20130027253A (ko) | 2011-09-07 | 2011-09-07 | 데이터의 압축 방법 |
US13/598,871 US20130060992A1 (en) | 2011-09-07 | 2012-08-30 | Data compression method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110090734A KR20130027253A (ko) | 2011-09-07 | 2011-09-07 | 데이터의 압축 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130027253A true KR20130027253A (ko) | 2013-03-15 |
Family
ID=47754039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110090734A KR20130027253A (ko) | 2011-09-07 | 2011-09-07 | 데이터의 압축 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130060992A1 (ko) |
KR (1) | KR20130027253A (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
KR102005227B1 (ko) * | 2013-03-12 | 2019-07-30 | 삼성전자 주식회사 | 데이터 처리 시스템과 이의 동작 방법 |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9430326B2 (en) * | 2014-07-22 | 2016-08-30 | HGST Netherlands B.V. | Multiple ECC codeword sizes in an SSD |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
JP6471012B2 (ja) * | 2015-03-25 | 2019-02-13 | 株式会社メガチップス | 半導体メモリ、記憶装置、上位装置、データ処理システム、データ書き込み装置、データ書き込みプログラム、制御プログラム及びデータ書き込み方法 |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
KR102294669B1 (ko) * | 2015-08-12 | 2021-08-27 | 삼성전자 주식회사 | 전자 장치 및 이의 데이터 압축 방법 |
US9400609B1 (en) * | 2015-11-04 | 2016-07-26 | Netapp, Inc. | Data transformation during recycling |
JP2017163390A (ja) * | 2016-03-10 | 2017-09-14 | 富士通株式会社 | 情報処理装置、データ圧縮方法、及び、データ圧縮プログラム |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
KR20190006680A (ko) * | 2017-07-11 | 2019-01-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490260A (en) * | 1990-12-14 | 1996-02-06 | Ceram, Inc. | Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size |
US6195107B1 (en) * | 1998-05-29 | 2001-02-27 | Cisco Technology, Inc. | Method and system for utilizing virtual memory in an embedded system |
US6374341B1 (en) * | 1998-09-02 | 2002-04-16 | Ati International Srl | Apparatus and a method for variable size pages using fixed size translation lookaside buffer entries |
US6145069A (en) * | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
US6523102B1 (en) * | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US7181457B2 (en) * | 2003-05-28 | 2007-02-20 | Pervasive Software, Inc. | System and method for utilizing compression in database caches to facilitate access to database information |
US7188227B2 (en) * | 2003-09-30 | 2007-03-06 | International Business Machines Corporation | Adaptive memory compression |
US7302543B2 (en) * | 2004-06-16 | 2007-11-27 | Nec Laboratories America, Inc. | Compressed memory architecture for embedded systems |
US7587572B1 (en) * | 2004-08-31 | 2009-09-08 | Sun Microsystems, Inc. | Method and system for managing process memory configured in resizable uncompressed and compressed regions |
EP1939751A1 (en) * | 2006-12-22 | 2008-07-02 | Telefonaktiebolaget LM Ericsson (publ) | Storing compressed data |
US7895242B2 (en) * | 2007-10-31 | 2011-02-22 | Microsoft Corporation | Compressed storage management |
JP2011128792A (ja) * | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
-
2011
- 2011-09-07 KR KR1020110090734A patent/KR20130027253A/ko not_active Application Discontinuation
-
2012
- 2012-08-30 US US13/598,871 patent/US20130060992A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20130060992A1 (en) | 2013-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20130027253A (ko) | 데이터의 압축 방법 | |
EP3477556A1 (en) | Method and apparatus for performing operations in convolutional neural network | |
KR101908768B1 (ko) | 상태 기계 엔진에 의해 수신된 데이터를 핸들링하기 위한 방법들 및 시스템들 | |
CN112749107B (zh) | 用于在存储附近进行分级排序加速的系统和方法 | |
CN110825464B (zh) | 用于提供由状态机引擎接收的数据的方法及设备 | |
US10698697B2 (en) | Adaptive routing to avoid non-repairable memory and logic defects on automata processor | |
US11630766B2 (en) | Memory system and operating method thereof | |
WO2024007849A1 (zh) | 面向智能计算的分布式训练容器调度 | |
US11461028B2 (en) | Memory writing operations with consideration for thermal thresholds | |
CN108733324B (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
CN109359729B (zh) | 一种在fpga上实现缓存数据的系统及方法 | |
US9691448B2 (en) | Memory system having lower pages and upper pages performing status read operation and method of operating the same | |
US20180173460A1 (en) | Contention reduction scheduler for nand flash array with raid | |
CN107609646B (zh) | 一种残差网络实现方法、系统、设备及计算机存储介质 | |
CN105139890A (zh) | 一种信息处理方法及固态硬盘 | |
US9423961B2 (en) | Method to enhance programming performance in multilevel NVM devices | |
CN109284231B (zh) | 内存访问请求的处理方法、装置及内存控制器 | |
CN106649136B (zh) | 一种数据存储方法和存储装置 | |
CN105573834A (zh) | 于异构平台的面向高维数据的词汇树构建方法 | |
JP2019200793A (ja) | 半導体システム及びその動作方法 | |
CN114546944B (zh) | 多进程负载均衡的数据库文件排序优化方法及装置 | |
Mir et al. | A high performance reconfigurable flash management framework | |
US11687275B2 (en) | Method for assigning plurality of channels of storage device for stream data writing, storage device and storage medium | |
JP2007172129A (ja) | 不揮発性メモリアクセス制御装置および不揮発性メモリ制御システム | |
TW202314703A (zh) | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |