KR102017807B1 - 데이터 처리 장치 및 데이터 처리 방법 - Google Patents

데이터 처리 장치 및 데이터 처리 방법 Download PDF

Info

Publication number
KR102017807B1
KR102017807B1 KR1020130168660A KR20130168660A KR102017807B1 KR 102017807 B1 KR102017807 B1 KR 102017807B1 KR 1020130168660 A KR1020130168660 A KR 1020130168660A KR 20130168660 A KR20130168660 A KR 20130168660A KR 102017807 B1 KR102017807 B1 KR 102017807B1
Authority
KR
South Korea
Prior art keywords
bits
data
bit
compressed
compression
Prior art date
Application number
KR1020130168660A
Other languages
English (en)
Other versions
KR20150078866A (ko
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 에스케이하이닉스 주식회사
Priority to KR1020130168660A priority Critical patent/KR102017807B1/ko
Priority to US14/288,232 priority patent/US9509338B2/en
Publication of KR20150078866A publication Critical patent/KR20150078866A/ko
Application granted granted Critical
Publication of KR102017807B1 publication Critical patent/KR102017807B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

본 발명에 따른 데이터 처리 장치는, 2n(n은 자연수) 비트로 구성된 데이터의 인접하는 두 비트들의 쌍을 각각 비교한 비교 결과에 기초하여 데이터를 압축하는 압축부, 및 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터를 생성하는 패딩부를 포함하는 컨트롤러를 구비한다.

Description

데이터 처리 장치 및 데이터 처리 방법{Apparatus for processing data and method for processing data}
본 발명은 데이터 처리 장치 및 데이터 처리 방법에 관한 것으로, 더욱 상세하게는 데이터를 압축하여 송수신하도록 하는 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다.
보다 작고 빠른 전자 기기에 대한 요구에 따라, 전자 기기의 소형화 및 고속화를 이루기 위한 연구가 지속적으로 이루어지고 있다. 전자 기기의 소형화를 위해서는 내부에 구비된 회로 자체를 소형화하는 방법이 있으며, 고속화를 위해서는 내부적인 신호 전달 타이밍을 증가시키는 방법이 있을 수 있다.
그런데, 전자 기기 내부에서 특정 동작 목료를 달성하기 위한 과정을 보다 간단히 구현하도록 개선한다면, 전자 기기 내부에 구비될 회로 자체도 간소화될 수 있으며 내부적인 동작 속도도 증가시킬 수 있기 때문에 전자 기기의 소형화와 고속화를 모두 달성할 수 있을 것이다.
본 발명이 이루고자 하는 기술적 과제는 데이터를 송수신하는 경우, 송수신하는 데이터 정보의 값에 기초하여 압축을 수행함으로써 데이터 송신량을 줄이고 데이터 송신 속도를 증가시킬 수 있는 데이터 처리 장치 및 데이터 처리 방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 송수신하는 데이터의 특성에 따라서 압축 방식을 유연하게 변경시킴으로써 동작에 최적화된 데이터 처리를 수행할 수 있는 데이터 처리 장치 및 데이터 처리 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 데이터 처리 장치는 2n(n은 자연수) 비트로 구성된 데이터의 인접하는 두 비트들의 쌍(Pair)을 각각 비교한 비교 결과에 기초하여 상기 데이터를 압축하는 압축부, 및 상기 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터를 생성하는 패딩부를 포함하는 컨트롤러를 구비하고, 데이터에서 인접하는 두 비트들이 각각 쌍을 이루고, 압축부는 쌍을 이루는 두 비트끼리를 서로 비교하며, 쌍을 이루는 두 비트끼리 서로 다른 값을 갖는 경우, 동일한 값을 갖도록 쌍을 이루는 두 비트들을 대체하여 압축한다.
본 발명의 일 실시예에 따른 데이터 처리 방법은 2n 비트로 구성된 데이터의 인접하는 두 비트들의 쌍(Pair)을 각각 비교한 비교 결과에 기초하여 상기 데이터를 압축하는 단계, 데이터의 압축 여부를 나타내는 플래그 정보를 생성하는 단계, 상기 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터를 생성하는 단계, 및 상기 송신 데이터 및 상기 플래그 정보를 물리적 연결자를 통하여 송신하는 단계를 포함하고, 데이터를 압축하는 단계는 데이터에서 인접하는 두 비트들이 각각 쌍을 이루고, 쌍을 이루는 두 비트끼리를 서로 비교하는 단계, 및 쌍을 이루는 두 비트끼리 서로 다른 값을 갖는 경우, 동일한 값을 갖도록 쌍을 이루는 두 비트들을 대체하여 압축하는 단계를 포함한다.
본 발명의 실시예들에 따른 데이터 처리 장치 및 데이터 처리 방법은 인접한 데이터 비트 값을 비교하여 압축함으로써 송신 데이터 정보량을 줄일 수 있다. 송신 데이터 정보량이 줄어들기 때문에 입출력 드라이버와 채널의 부하를 줄일 수 있으며, 나아가 송신 품질의 향상을 기대할 수 있다.
더욱이 본 발명의 실시예들에 따른 데이터 처리 장치 및 데이터 처리 방법은 압축 대상 데이터의 값 자체를 비교하는 것으로 압축을 수행하기 때문에 데이터 압축을 위하여 별도의 정보를 추가로 필요로 하지 않는다.
아울러 본 발명의 실시예는 예시를 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인코더를 나타내는 블록도이다.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법을 설명하기 위하여 2진 데이터의 데이터 형태를 나타낸 도면들이다. 특히, 도 3 내지 도 5는 무손실 데이터 압축 처리를 설명하기 위한 도면들이다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 데이터 처리 장치에 있어서 손실 모드 동작을 설명하기 위한 도면들이다.
도 10은 플래그 정보가 송신 데이터와 동일한 물리적 연결자를 통하여 송신되는 경우를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 데이터 처리 방법을 설명하기 위한 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 데이터 처리 장치를 포함하는 컴퓨팅 시스템을 도시한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 처리 장치(10)는 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있다.
컨트롤러(100)는 메모리 장치(200)를 제어하기 위한 다양한 신호들을 생성하여 송신한다. 컨트롤러(100)는 메모리 장치(200)에 대하여 커맨드/어드레스 신호와 같은 다양한 제어 신호를 송신할 수 있다. 도 1에서는 컨트롤러(100)가 메모리 장치(200)에 송신 데이터(DQp) 및 플래그 정보(CF)를 송신하는 것으로 도시하였다.
실시예에 따라, 컨트롤러(100)는 메모리 장치(200)로부터 데이터를 수신할 수 있는데, 여기서 수신된 데이터는 컨트롤러(100)에서 메모리 장치(200)에 송신 데이터(DQp)을 송신하는 것과 마찬가지로 압축되어 제공된 것일 수 있다. 컨트롤러(100)는 메모리 장치(200)로부터 압축된 데이터를 수신하면서 압축 여부를 표시하는 플래그 정보(CF)도 함께 수신할 수 있다.
본 발명의 일 실시예에 따른 데이터 처리 장치(10)에 구비되는 컨트롤러(100)는 인코더(110) 및 송신부(120)를 포함할 수 있다.
인코더(110)는 모드 신호(mode)에 기초하여 압축 방식을 결정하여 2n 비트(n은 자연수)의 데이터(Dm)를 압축한다. 인코더(110)는 데이터(Dm)를 압축함에 따라 남겨진 비트의 공간에 더미 비트를 패딩하여 2n 비트의 송신 데이터(DQp)를 생성한다. 인코더(110)는 데이터(Dm)의 압축 여부를 나타내는 플래그 정보(CF)를 생성한다.
인코더(110)는 2n 비트의 데이터(Dm)의 인접하는 두 비트들을 각각 비교한다. 구체적으로 데이터(Dm)는 n개의 쌍(Pair)으로 이루어져 있으며 n개의 비트 쌍들의 일치 여부를 비교하여 압축을 수행한다. 인코더(110)가 데이터(Dm)에 포함된 비트들의 값을 비교하여 압축을 수행하기 때문에 압축을 위하여 별도의 정보를 필요로 하지 않는다. 따라서 본 발명의 일 실시예에 따른 데이터 처리 장치(10)는 데이터 압축을 통하여 정보량을 줄일 수 있는 동시에, 압축에 별도로 요구되는 정보가 없어 간단한 구조로 구현이 가능한다.
송신부(120)는 인코더(110)로부터 송신 데이터(DQp) 및 플래그 정보(CF)를 수신하여 메모리 장치(200)로 송신할 수 있다. 실시예에 따라, 송신 데이터(DQp)와 플래그 정보(CF)는 물리적 연결자를 통하여 메모리 장치(200)에 제공될 수 있다.
예를 들어, 송신 데이터(DQp)와 플래그 정보(CF)는 각각의 구분된 물리적 연결자를 통하여 메모리 장치(200)에 송신될 수 있다. 다른 실시예에 있어서, 송신 데이터(DQp)와 플래그 정보(CF)는 동일한 물리적 연결자를 통하여 송신될 수 있다. 송신 데이터(DQp)와 플래그 정보(CF)가 동일한 물리적 연결자를 통하여 송신되는 경우, 플래그 정보(CF)는 송신 데이터(DQp)의 전단(front end) 또는 말단(back end)에 덧붙여 송신될 수 있다. 플래그 정보(CF)가 송신 데이터(DQp)와 동일한 물리적 연결자를 통하여 송신되는 경우에 대해서는 도 7을 참조하여 후술하도록 한다.
메모리 장치(200)는 수신부(210) 및 디코더(220)를 포함할 수 있다.
수신부(210)는 컨트롤러(100)로부터 송신 데이터(DQp) 및 플래그 정보(CF)를 수신하여, 디코더(220)로 제공한다.
디코더(220)는 모드 신호(mode)에 기초하여 송신 데이터(DQp)가 어떠한 방식으로 압축되었는 지를 파악한 이후, 플래그 정보(CF)에 기초하여 압축 여부를 판단한다. 이에 따라서 송신 데이터(DQp)의 압축을 해제하고 데이터(Dm)를 복원한다.
실시예에 따라, 메모리 장치(200)는 저장 수단(230)을 더 포함할 수 있다. 저장 수단(230)는 복원된 데이터(Dm)를 저장할 수 있는 수단으로서, 예를 들어, 메모리 셀 어레이를 포함할 수 있다. 실시예에 따라 저장 수단(230)는 휘발성 또는 비휘발성 메모리 셀들로 구성된 메모리 셀 어레이일 수 있다.
도 1에서 블록으로 설명하고 있는 컨트롤러(100)와 메모리 장치(200)는 물리적인 구성요소들로서 인쇄 회로 기판 등에 실장되어 연결됨으로써 동작할 수 있으며, 다양한 회로들의 하드웨어적인 구성으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 인코더를 나타내는 블록도이다.
도 2를 참조하면, 인코더(110)는 압축부(111) 및 패딩부(113)를 포함할 수 있다.
압축부(111)는 모드 신호(mode)에 기초하여 압축 방식을 파악하고, 이에 따른 압축 방식에 근거하여 데이터(Dm)를 압축한다. 압축부(111)는 압축된 데이터(CDQl)와 함께 압축 여부를 표시하는 플래그 정보(CF)를 함께 제공할 수 있다.
압축부(111)는 인접하는 두 비트들의 쌍이 일치하는 경우, 일치하는 하나의 비트로 압축하고, 인접하는 두 비트들의 쌍이 일치하지 않는 경우, 모드 신호(mode)에 기초하여 선택적으로 두 비트들을 압축한다.
실시예에 따라, 모드 신호(mode)는 압축 방식과 관련하여 손실 모드와 무손실 모드, 그리고 손실 모드의 경우에는 실제 손실을 허용할 비트 수를 설정할 수 있으며, 나아가 손실 모드에서 손실을 허용하면서 데이터를 압축하는 경우에 어떠한 기준을 가지고 특정한 비트 정보를 손실 시킬 지에 대한 정보를 포함할 수도 있다.
모드 신호(mode)가 무손실 모드에 상응하는 경우, 압축부(111)는 일치하지 않는 두 비트들을 압축하지 않고, 모드 신호가 손실 모드에 상응하는 경우, 일치하지 않는 두 비트들을 기설정된 하나의 비트로 대체하여 압축하거나 두 비트들 중 하나의 비트에 우선순위를 두어 선택된 하나의 비트로 대체할 수 있다. 예를 들어, 압축부(111)는 데이터(Dm)를 손실하며 압축함에 있어, MSB(Most Significant Bit)에서부터 LSB(Least Significant Bit) 순서대로 우선순위를 두고 하나의 비트를 선택하여 손실되는 다른 비트를 대체할 수 있다.
예를 들어, 손실 모드는 그래픽 데이터를 처리하는 경우에 사용될 수 있는데, 일정 비트들을 손실 시키더라도 사용자에게 제공되는 그래픽 상에서 치명적인 오류가 발생한 것으로 인식되지 않으면서 높은 동작 속도를 달성하고자 할 때에 활용될 수 있을 것이다.
일 실시예에 있어서, 모드 신호(mode)에는 손실이 허용될 수 있는 비트 수가 포함될 수 있다. 예를 들어, 압축부(111)가 데이터(Dm)에 포함된 8개의 비트 쌍들, 즉 16 비트의 데이터(Dm)를 비교한 결과, 3 개의 비트 쌍들의 값이 서로 일치하여 손실 없이 압축이 가능한 것으로 판단하고 5 개의 비트 쌍들의 값은 상이하여 손실이 없이는 압축이 불가능한 것으로 판단할 수 있다.
모드 신호(mode)가 손실 모드에 상응하는 경우, 비트 쌍들의 값이 상이한 5개의 비트 쌍들도 하나의 비트로 대체함으로써 압축할 수 있을 것이다. 그러나 5개의 비트 쌍 모두에서 하나의 비트를 손실시켜 압축한다면 5 비트의 오류를 감수하여야 하는데, 경우에 따라서 비트 손실이 동작에 치명적인 오류를 발생시킬 수 있다. 따라서, 기설정된 손실 비트 이하로만 비트를 손실시키도록 모드 신호(mode)에 의하여 정의될 수 있다.
모드 신호(mode)에 포함된 정보에 따라 16 비트의 데이터(Dm) 중에서 2 비트만을 손실시켜야 한다면 5개의 비트 쌍들 중에서 2개의 비트 쌍들만을 손실 압축하여야 하는 바, 압축부(111)는 2개의 비트 쌍들을 선택하여야 한다. 압축부(111)가 압축할 비트 쌍을 선택할 때에는 일정한 기준이 필요하다. 예를 들어, 압축부(111)는 LSB 부터 손실시키고 MSB 에 해당할수록 손실시키지 않는 방식으로 압축을 진행할 수 있다.
이하의 도 3 내지 도 10을 참조하여 본 발명의 일 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법을 설명하도록 한다. 도 3 내지 도 10은 2진 데이터를 나타내는 표이며, 도 1 및 도 2의 구성을 토대로 데이터 처리 동작을 설명한다. 도 3 내지 도 10에는 예시적으로 8 비트의 데이터가 16 비트의 버스트 길이(Burst Length)를 가지는 것으로 설명한다.
도 3은 도 1의 컨트롤러(100)가 외부로부터 수신하는 데이터(Dm)를 나타낸다. 도 4는 도 2의 압축부(111)에 의하여 도 3의 데이터가 압축된 데이터(CDQl)와 플래그 정보(CF), 도 5는 패딩부(113)에 의하여 더미 패드가 패딩된 이후의 송신 데이터(DQp)와 플래그 정보(CF)를 나타낸다.
도 3에 나타낸 데이터들 모두 송신하기 위해 컨트롤러(100)는 128 비트의 데이터를 송신하여야 한다. 한 시점에서 제공되는 각 데이터(Dm)의 비트들을 제1 버스트(B0) 내지 제16 버스트(B15)으로 설명한다. 즉, 제1 버스트(B0)는 '00001111', 제2 버스트(B1)는 '11110000', 제3 버스트(B2)는 '11001100'에 상응한다.
압축부(111)가 데이터(Dm)의 인접하는 두 비트들을 비교하는 경우, 한 시점에서는 하나의 버스트에 대하여 인접하는 두 비트들을 비교하는 것으로 이해될 수 있다.
도 3에서 데이터(Dm)의 제1 버스트(B0)는 '00001111'이다. 제1 버스트(B0)의 인접하는 두 비트들, 즉 비트 쌍들을 구분하면 '00', '00', '11', 및 '11'로 나뉜다. 압축부(111)는 각 비트 쌍들을 비교하여 모든 비트 쌍들의 값이 서로 일치하는 것으로 판단한다. 압축부(111)는 일치하는 비트 쌍을 일치되는 하나의 비트로 압축한다.
도 4를 참조하면, 압축부(111)에서 압축된 데이터(CDQl)의 제1 압축 버스트(CB0)는 '0011'의 값을 가지며, 2n 비트(Dm)의 데이터가 n 비트로 압축된다.
마찬가지로, 데이터(Dm)의 제2 버스트(B1)는 '11', '11', '00', 및 '00'의 비트 쌍들로 이루어진다. 압축부(111)는 각 비트 쌍들의 값을 비교하여 '1100'의 n 비트로 압축한다. 제3 버스트(B2)은 '11', '00', '11', 및 '00'의 비트 쌍들로 이루어지는 바, 압축부(111)는 '1010'의 제3 압축 버스트(CB2)로 압축한다.
이와 같이, 데이터(Dm)의 16개의 버스트들(CB0, CB1, CB2, CB3, ..., CB15)을 구성하는 모든 비트 쌍들이 서로 동일한 비트로 이루어지는 경우, 하나의 비트로 대체됨으로써, 압축된 데이터는 64 비트의 크기를 갖는다. 다만, 압축 여부를 나타내는 플래그 정보(CF)가 하나의 버스트 당 한 비트씩 부가되면, 데이터의 값을 복원하기 위하여 실제 필요한 정보는 80 비트이다. (도 4 참조)
도 3 및 도 4에서 예시한 바와 같이, 데이터(Dm)의 모든 버스트들이 압축되는 경우, 압축부(111)의 압축률은 80/128=62.5%로 산출될 수 있다.
다만, 위에서는 데이터(Dm)가 한 시점에 전송되는 버스트 단위로 압축되는 것으로 설명하였으나, 하나의 연결자를 통하여 전송되는 제1 데이터(D0) 단위로 압축될 수도 있다. 이 경우, 제1 데이터(D0)는 ´0110110110110110´의 16 비트 값을 가질 수 있으며, 8개의 비트 쌍들의 값이 비교되어 압축될 수 있다.
도 4를 참조하면, 8 비트의 입출력 너비를 가졌던 데이터(Dm)가 4 비트의 압축 데이터(CDQl)로 변환, 압축된다.
패딩부(113)는 4 비트의 압축 데이터(CDQl)에 대하여 더미 비트(D)를 패딩하여 8 비트의 입출력 너비를 갖는 송신 데이터(DQp)를 생성하여 메모리 장치(200)로 송신할 수 있다. 메모리 장치(200)는 플래그 정보(CF)에 기초하여 더미 비트를 무시하고 데이터(Dm)를 복호화할 수 있다.
다만, 실시예에 따라, 도 3의 경우와 같이 데이터(Dm)의 모든 비트들이 압축되는 경우에는 압축 데이터(CDQl)와 플래그 정보(CF)만이 메모리 장치(200)로 제공될 수도 있다. 예를 들어, 도 4와 같이 모든 데이터(Dm)가 압축된 경우, 각각의 압축 버스트들(CB0, ..., CB15)이 각각 4 비트씩을 갖기 때문에 일정량의 입출력 패드가 아예 사용되지 않을 수 있다. 예를 들어, 데이터(Dm)가 제1 내지 제8 입출력 패드를 통하여 16 비트의 버스트 길이로 데이터(Dm)를 전송하였다면, 압축 데이터(CDQl)는 제1 내지 제4 입출력 패드만으로 전송될 수 있으며, 사용하지 않는 입출력 패드는 플래그 정보(CF)를 전송하는 데에 사용되거나, 다른 신호 송수신 용도로 활용될 수도 있다.
다만, 항상 모든 데이터(Dm)가 압축될 수는 없기 때문에 패딩부(113)는 압축된 데이터(CDQl)에 더미 비트를 채워 넣는다.
도 5는 패딩부에 의하여 생성된 송신 데이터와 플래그 정보를 나타내는 도면이다.
도 5에서는 더미 비트를 'D'로 나타내었다. 더미 비트는 '0'또는 '1' 중 하나의 비트로 통일되어 패딩될 수 있다. 더미 비트로 결정되는 비트는 기설정된 비트일 수 있으며, 데이터의 송수신에 소모되는 전력을 최소화할 수 있는 비트로 결정될 수 있다.
다른 실시예에 있어서, 더미 비트는 압축된 데이터를 구성하는 비트 값들에 기초하여 결정될 수도 있다. 도 2b에서는 압축된 데이터들을 구성하는 비트들 중 '0' 비트의 수와 '1' 비트의 수가 동일하지만, 만일 둘 중 어느 한 비트라도 많은 경우에는 더미 비트를 과반이 넘는 비트로 결정하여 채워줌으로써 비트 전환을 위해 소모되는 전력을 최소화할 수도 있다.
그런데, 데이터(Dm)에 포함하는 비트 쌍들은 동일한 비트 값을 가질 수도 있으나, 동일한 비트 값을 가지지 않을 수도 있다. 즉, 도 3의 데이터(Dm)는 이상적으로 모든 비트 쌍들이 동일한 비트 값들을 갖는 경우를 나타낸 것이지만, 비트 쌍들이 동일한 비트 값들을 갖지 않아 압축이 되지 않는 경우가 있다.
본 발명의 일 실시예에 따른 데이터 처리 장치(10)는 모드 신호(mode)에서 지정하는 압축 방식에 따른 손실 모드에서 데이터(Dm)의 인접하는 두 비트가 일치하지 않는 경우를 압축할 수 있도록 한다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 데이터 처리 장치에 있어서 손실 모드 동작을 설명하기 위한 도면들이다. 도 6은 압축되어야 하는 데이터(Dm)를 나타낸 것이며, 도 7 내지 도 9는 도 6의 데이터(Dm)가 모드 신호(mode)에 따라 상이한 방식으로 압축되어 송신 데이터(DQp)로 생성된 형태를 나타내는 도면들이다.
도 3과 마찬가지로, 도 6에서는 8 비트의 데이터(Dm)인 경우를 예를 들어 나타내었으며, 또한 데이터(Dm)는 16 비트의 버스트 길이, 즉 16개의 버스트들(B0, B1, B2, ..., B15)로 구성된다.
도 6을 참조하면, 제4 버스트(B3), 제8 버스트(B7), 제12 버스트(B11), 및 제15 버스트(B14)를 제외하고는 인접하는 두 비트들의 쌍이 모두 일치한다. 따라서 상술한 바와 마찬가지로 인접하는 비트 쌍들이 모두 일치하는 버스트들은 4 비트로 각각 압축되고, 플래그 정보(CF)는 '1'로 생성된다. 손실이 없는 데이터의 압축된 형태는 도 6 내지 도 8에서 모두 동일하다 (CB0, CB1, CB2, CB4, CB5, CB6, CB8. CB9, CB10, CB12, CB13, CB15 참조).
도 3에서 데이터의 8비트를 구성하는 인접하는 두 비트들의 쌍이 일치하지 않는 제4 버스트(B3), 제8 버스트(B7), 제12 버스트(B11), 및 제15 버스트(B14)를 압축하기 위해서는 비트 손실이 불가결하다.
데이터(Dm)의 제4 버스트(B3)을 구성하는 8비트를 압축하기 위해서는 세 번째 비트 '0' 과 네 번째 비트 '1' 중 하나의 비트의 정보를 손실하여야만 한다. 마찬가지로, 제8 버스트(B7)의 세 번째 비트 '1'과 네 번째 비트 '0', 일곱 번째 비트 '1'과 여덟 번째 비트 '0' 중 하나의 비트를 손실 시켜야 하고, 제12 버스트(B11)의 세 번째 비트 '0'과 네 번째 비트 '1', 일곱 번째 비트 '1'과 여덟 번째 비트 '0', 마지막으로 제15 버스트(B14)의 세 번째 비트 '0'과 네 번째 비트 '1' 중 하나의 비트를 손실 시켜야 한다.
도 7에서는 모드 신호(mode)가 무손실 모드에 상응하는 경우를 나타낸 것이다. 무손실 모드에서는 데이터 압축에 의하여 하나의 비트도 손실되어서는 안 된다. 따라서 압축부(111)는 제4 버스트(B3), 제8 버스트(B7), 제12 버스트(B11), 및 제15 버스트(B14)를 모두 압축하지 않고 그대로 압축 데이터(CDQl)로 송신하고 플래그 정보(CF)는 '0'으로 생성하여 압축되지 않았음을 나타낸다.
패딩부(113) 또한 제4 버스트(B3), 제8 버스트(B7), 제12 버스트(B11), 및 제15 버스트(B14)의 경우에는 8비트 정보를 모두 포함하고 있기 때문에 더미 비트를 채워 넣지 않는다.
송신 데이터(DQp)를 수신한 메모리 장치(200)는 플래그 정보(CF)에 기초하여 특정 버스트가 압축되지 않았음을 감지하고 그대로 저장 수단(230)에 기록하는 등의 동작을 수행할 수 있다. 예를 들어, 플래그 정보(CF)의 네 번째 비트, 일곱 번째 비트, 열두 번째 비트, 열다섯 번째 비트가 '0'인 것으로 판단될 수 있다.
도 7과 같이 압축에 따른 손실을 허용하지 않는 압축 방식의 경우 유효 데이터를 산출하면, 4 비트로 압축된 12개의 버스트들이 48 비트, 압축되지 않은 8 비트의 4 개의 버스트들이 32 비트, 그리고 플래그 정보(CF)가 16 비트로서, 전체 96 비트이다. 따라서 압축률은 96/128=75%로 산출된다.
도 8에서는 모드 신호(mode)가 손실 모드에 상응하는 경우로서, 압축에 따른 비트 손실은 허용하도록 하되, 데이터의 압축 단위인 버스트에 대하여 1 비트의 손실만을 허용하는 경우를 나타낸 것이다.
압축부(111)는 세 번째 비트 '0' 과 네 번째 비트 '1' 가 상이한 제4 버스트(B3)와 제15 버스트(B14)를 압축한다. 압축을 위해서 두 비트를 손실하여야 하는 제8 버스트(B7) 및 제12 버스트(B11)는 압축되지 않는다.
손실 허용하여 압축하는 경우에는 압축을 위하여 세 번째 비트와 네 번째 비트 중 하나를 다른 비트로 대체하고 압축하는 것으로 이해될 수 있다. 여기서 어느 비트를 대체하는 것이 적절한 지를 선택하여야 한다.
실시예에 따라, 압축부(111)는 데이터가 손실되는 경우, 기설정된 하나의 비트로 손실되는 모든 비트를 대체할 수 있다. 예를 들어, 손실되어 압축되는 경우에는 모두 '0'으로 대체하는 것으로 설정할 수도 있다. 이 경우에는, 제4 버스트(B3)의 경우에는 '00011111'에서 '00001111'로 대체되어 '0011'로 압축될 수 있다.
다른 실시예에 있어서, 손실되는 두 비트들 중 하나의 비트를 다른 비트로 대체할 수도 있는데, 이 경우에는 LSB보다는 중요도가 큰 MSB로 대체되어 압축을 수행할 수 있다. 예를 들어, 네 번째 비트와 세 번째 비트가 일치하지 않는 경우에는 네 번째 비트가 세 번째 비트보다 더 중요한 비트로 판단되어 세 번째 비트가 네 번째 비트로 대체된다. 이에 따라서 제15 버스트(B14)의 경우에는 '11011100'에서 '11111100'으로 대체되어 '1110'으로 압축된다.
제3 버스트(B4)와 제15 버스트(B14)가 압축되었으므로, 이에 대한 플래그 정보(CF)도 압축되었음을 지시하도록 '1'로 생성된다.
도 8에서와 같이 1 비트의 손실을 허용하게 되면, 유효 비트들은 모두 88비트로서, 압축률은 88/128=68.75%가 된다. 손실 모드에 따른 도 8의 경우는 도 6에서보다 압축 효율이 높아지지만 128 비트 중에서 2 비트의 오류가 발생되어 1.56%의 오류율을 가진다.
도 9는 모드 신호(mode)가 손실 모드에 상응하는 경우이고, 비트 손실은 허용하도록 하되, 데이터의 압축 단위인 버스트에 대하여 2 비트의 손실을 허용하는 경우를 나타낸 것이다.
압축부(111)는 모드 신호(mode)에 기초하여 세 번째 비트와 네 번째 비트, 그리고 일곱 번째 비트와 여덟 번째 비트가 일치하지 않는 제8 버스트(B7) 및 제12 버스트(B11)를 압축할 수 있다.
도 8을 참조하여 설명한 바와 같이, 손실을 허용하여 압축하는 방식은 1 비트의 손실을 허용하는 경우이나 2 비트의 손실을 허용하는 경우가 모두 동일하다.
예를 들어, 압축부(111)는 하나의 버스트 당 2 비트의 손실을 허용하며, 손실 비트를 압축하기 위하여 LSB 를 MSB 로 대체하는 방식에 따른다는 정보를 포함하는 모드 신호(mode)를 수신할 수 있다.
압축부(111)는 제8 버스트(B7)를 '11100010'에서 '11000000'로 대체하고, '1000'로 압축하며, 플래그 정보(CF)를 '1'로 생성한다.
유사한 방식으로, 압축부(111)는 제12 버스트(B11)를 '11011110'에서 '11111100'으로 대체하고 '1110'로 압축하며 플래그 정보(CF)를 '1'로 생성한다.
도 9에서 패딩부(113)는 압축된 데이터(CDQl)에 대하여 더미 비트를 패딩할 수 있다. 상술한 바와 같이 더미 비트는 기설정된 비트들일 수 있으나, 실시예에 따라 압축 데이터(CDQl)에 포함된 비트 값에 기초하여 생성될 수 있다.
구체적으로, 제4 압축 버스트(CB3)는 '1'이 3 비트 '0'이 1 비트로 구성된다. 이에 따라서 '1'의 값이 '0'의 값보다 많은 바, 제4 압축 버스트(CB3)에 패딩되는 더미 비트는 '1'로 결정될 수 있다. 비슷한 방식으로 제8 압축 버스트(CB7)는 '0'이 '1'보다 많은 바, 제8 압축 버스트(CB7)에 패딩되는 더미 비트는 '0'으로 결정될 수 있다.
도 9의 2 비트 손실 모드의 경우의 효율을 살펴보면, 데이터(Dm)의 모든 버스트들이 압축되어 유효 비트는 80/128=62.5%로서, 도 7의 무손실 압축과 동일한 압축률을 가지지만, 전체적으로 6 비트의 오류가 발생하여 총 4.69%의 오류율을 가지는 것으로 확인할 수 있다.
도 9에서는 한 번에 송신되는 128 비트의 데이터 중에서 6 비트의 오류가 발생하였는데, 본 발명에서는 모드 신호(mode)에 의하여 특정한 단위로 오류 비트가 설정될 수 있다. 예를 들어, 모드 신호(mode)에 의하여 한 번에 송신되는 데이터 중에서 5 비트 이상의 오류를 허용하지 않는 것으로 설정될 수 있다.
압축부(111)는 모드 신호(mode)에 기초하여 손실 모드이면서 2 비트 손실을 허용한다고 하더라도 5 비트 까지만 손실을 허용하고 나머지 비트에 대해서는 압축을 수행하지 않을 수 있다. 압축을 수행하지 않는 비트를 결정하기 위해서는 또한 MSB에 우선 순위를 둘 수 있다.
다른 실시예에 있어서, 모드 신호(mode)는 오류율을 지정하여 손실 허용 비트 수를 제한할 수도 있다. 이 경우에는 일정 시간 동안 전송되는 데이터 비트 수에 비례하여 손실 허용 비트가 결정될 수 있다.
본 발명의 일 실시예에 따른 데이터 처리 장치(10)에 있어서 압축률과 오류율은 트레이드 오프(trade off) 관계에 있다. 따라서 모드 신호(mode)를 기초로 하여 더 높은 압축률을 원하는 대신에 어느 정도의 오류를 감수하는 경우, 또는 데이터의 정확도를 원하며 압축은 고려하지 않는 경우와 같이 원하는 동작을 선택하여 데이터를 처리할 수 있다.
도 10은 플래그 정보(CF)가 송신 데이터(DQp)와 동일한 물리적 연결자를 통하여 송신되는 경우를 설명하기 위한 도면이다.
도 10을 참조하면, 송신 데이터(DQp)의 압축 버스트들(CB0, CB1, ..., CB15)의 전단에 플래그 정보(CF)가 삽입된다. 도 10에서는 제1 압축 플래그(CF0), 제2 압축 플래그(CF1)로 나타낸다.
도 4, 도 5, 도 7 내지 도 9에서는 플래그 정보(CF)를 압축 데이터(CDQl) 및 송신 데이터(DQp)와 병렬적으로 나타내었다. 예를 들어, 이러한 병렬적인 표시는 도 1에서 도시된 컨트롤러(100)와 메모리 장치(200) 사이에서 송신 데이터(DQp)와 플래그 정보(CF)가 서로 물리적으로 분리된 연결자를 통하여 송수신 되는 것을 표현하는 것으로 해석될 수도 있다.
도 10은 다른 실시예에 있어서, 플래그 정보(CF)를 위하여 별도의 연결자를 필요로 하는 것이 아니라, 송신 데이터(DQp)를 송수신하는 연결자를 이용하여 플래그 정보(CF)를 송수신할 수 있음을 설명하기 위한 것이다.
따라서 도 10은 이해를 위하여 플래그 정보(CF)의 삽입 방식을 설명하는 것이고, 도 4, 도 5, 도 7 내지 도 9에서 병렬적으로 표시된 플래그 정보(CF) 또한 도 10에서 설명하는 바와 같이, 송신 데이터(DQp)의 전단, 후단, 또는 실시예에 따라 송신 데이터(DQp)의 송신 중의 특정 시점에 삽입될 수 있다.
본 명세서에서 예시적으로 설명하고 있는 송신 데이터(DQp)는 각각 8 비트의 입출력 너비를 갖는 데이터들이 16 비트의 버스트 길이를 가지고 송신되므로, 16 비트의 플래그 정보(CF)를 갖는다. 플래그 정보(CF)는 압축부(111)에서 생성되어 패딩부(113)를 거쳐, 송신부(120)에 제공될 수 있다.
송신부(120)는 플래그 정보(CF)가 송신된 연결자에 따라서, 도 10에 나타낸 바와 같이, 송신 데이터(DQp)와 플래그 정보(CF)를 함께 병렬화할 수 있다.
플래그 정보(CF)가 모두 16 비트인 바, 총 8 비트의 데이터(DQ0, ..., DQ8)의 두 버스트를 할당함으로써 송신 데이터(DQp)의 송신 전단에 삽입될 수 있으며, 이에 따라서, 제1 압축 플래그(CF0)는 송신 데이터(DQp)의 제1 압축 버스트(CB0) 내지 제8 압축 버스트(CB7)의 압축 여부를 지시하며, 제2 압축 버스트(CF1)는 송신 데이터(DQp)의 제9 압축 버스트(CB8) 내지 제16 압축 버스트(CB15)의 압축 여부를 지시한다.
플래그 정보(CF)의 재배열은 송신부(120)에서 수행되거나, 실시예에 따라 인코더(110)에서 수행될 수도 있다.
도 11은 본 발명의 일 실시예에 따른 데이터 처리 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 데이터 처리 방법은, 인코더(110)에 포함된 압축부(111)가 2n(n은 자연수) 비트로 구성된 데이터(Dm)의 인접하는 두 비트들의 쌍을 각각 비교한 비교 결과에 기초하여 데이터(Dm)를 압축한다. 또한 데이터(Dm)의 압축 여부를 나타내는 플래그 정보(CF)를 생성한다 (단계 S1110).
압축부(111)는 모드 신호(mode)에 기초하여 두 비트들의 쌍들을 비교한 결과에 기초하여 상이한 방식으로 압축을 수행할 수 있다.
인접하는 두 비트들의 쌍이 일치하는 경우에는 일치하는 하나의 비트로 압축하고(도 3 내지 도 5 참조), 인접하는 두 비트들의 쌍이 일치하지 않는 경우에는 모드 신호(mode)에 기초하여 선택적으로 두 비트들을 압축한다.
모드 신호(mode)가 무손실 모드에 상응하는 경우, 일치하지 않는 두 비트들을 압축하지 않는다 (도 6 및 도 7 참조).
모드 신호(mode)가 손실 모드에 상응하는 경우, 상기 일치하지 않는 두 비트들을 기설정된 하나의 비트로 대체하거나 일치하지 않는 두 비트들 중 선택된 하나의 비트로 대체하여 압축한다 (도 6, 도 8 및 도 9 참조).
또한, 모드 신호(mode)가 손실 모드에 상응하는 경우에는 압축을 위하여 비트를 대체하는 방식이나, 오류 허용 정도를 설정할 수도 있다.
인코더(110)에 포함된 패딩부(113)는 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터(DQp)를 생성한다 (단계 S1120).
더미 비트는 기설정된 비트들로 채워질 수 있으며, 실시예에 따라서 압축된 데이터의 비트 수들을 분석하여 송신 전력을 최소화할 수 있는 값으로 설정될 수도 있다.
송신부(120)는 송신 데이터(DQp) 및 플래그 정보(CF)를 물리적 연결자를 통하여 전송한다 (단계 S1130). 송신 데이터(DQp)와 플래그 정보(CF)서로 구분되는 물리적인 연결자를 통하여 송신되거나, 서로 동일한 연결자를 통하여 송신될 수도 있다.
메모리 장치(200)의 수신부(210)는 물리적인 연결자를 통하여 컨트롤러(100)로부터 송신 데이터(DQp) 및 플래그 정보(CF)를 수신한다. 디코더(220)는 모드 신호(mode)에 기초하여 송신 데이터(DQp)의 압축 방식을 파악하고 플래그 정보(CF)에 기초하여 압축 여부를 파악한다. 디코더(220)에 의하여 송신 데이터(DQp)는 데이터(Dm)로 복원되고, 저장 수단(230)에 저장될 수 있다.
도 12는 본 발명의 일 실시예에 따른 데이터 처리 장치(10)를 포함하는 컴퓨팅 시스템을 도시한 블록도이다.
도 12를 참조하면, 컴퓨팅 시스템(1200)은 프로세서(1210), 메모리 장치(1220, 1230), 및 인터페이스 부(1225, 1235)를 포함할 수 있다.
프로세서(1210)는 도 1의 컨트롤러(100)에 상응할 수 있으며, 메모리 장치(1220, 1230)은 도 1의 메모리 장치(200)에 상응할 수 있다.
컴퓨팅 시스템(1200)은 랩탑, 데스크탑, 워크스테이션, PDA, 서버, 블레이드(blade) 서버, 메인프레임 등과 같은 다양한 형태의 디지털 컴퓨터를 포함할 수 있다.
컴퓨팅 시스템(1200)의 각 구성요소들은 마더 보드(mother board)와 같은 회로 기판 상에 실장될 수 있다. 프로세서(1210)와 제1 메모리 장치(1220)는 제1 인터페이스부(1225)를 통하여 연결되며, 프로세서(1210)와 제1 메모리 장치(1230)는 제2 인터페이스부(1235)를 통하여 연결될 수 있다.
프로세서(1210)는 컴퓨팅 시스템(1200) 내에서 실행되는 명령어를 처리할 수 있다. 프로세서(1210)에서 처리되는 명령어에는, 고속 데이터 입출력을 위하여 제1 메모리 장치(1220)에 저장되는 명령어 및 저속 데이터 입출력을 위하여 제2 메모리 장치(1230)에 저장되는 명령어가 포함될 수 있다. 다른 실시예에 있어서, 다중 프로세서 및/또는 다중 버스는, 다중 메모리 및 메모리 타입과 함께 사용될 수 있다.
본 발명에 있어서, 프로세서(1210)는 데이터 처리 방식에 관한 명령어, 즉 모드 신호(mode)에 기초하여 2n 비트로 구성된 데이터(Dm)의 인접하는 두 비트들의 쌍을 비교하여 압축함으로써 송신 데이터(DQp) 및 플래그 정보(CF)를 메모리 장치들(1220, 1230)에 제공한다.
제1 메모리 장치(1220) 및 제2 메모리 장치(1230)는 컴퓨팅 시스템(1200) 내에서 다양한 정보를 저장할 수 있다. 일 실시예에서, 제1 메모리 장치(1220) 및 제2 메모리 장치(1230)는 휘발성 메모리 유닛 또는 비휘발성 메모리 유닛이다. 여기서 휘발성 메모리 유닛 또는 비휘발성 메모리 유닛은 각각 휘발성 메모리 또는 비휘발성 메모리 이외에 메모리 기입 및 독출을 위한 여러 가지 회로들을 포함할 수 있다.
예를 들어, 제1 인터페이스부(1225)는 고속 인터페이스 동작을 수행할 수 있으며, 제1 메모리 장치(1220)는 고속 동작을 지원하는 휘발성 메모리 셀 어레이를 포함할 수 있다. 제1 메모리 장치(1220)는 컴퓨팅 장치(1600)내에서 다양한 정보를 저장할 수 있다. 실시예에 따라, 제1 인터페이스 부(1225)는 다양한 확장 카드를 수용할 수 있는 고속 확장 포트에 연결될 수 있다.
제2 인터페이스부(1235)는 저속 인터페이스 동작을 수행할 수 있으며, 제2 메모리 장치(1230)는 저속 동작을 지원하는 비휘발성 메모리 셀 어레이를 포함할 수 있다. 제2 메모리 장치(1230)는 컴퓨팅 시스템(1200)을 위한 대용량 저장소(mass storage)를 제공할 수 있다. 일 실시예에서, 제2 메모리 장치(1230)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 또는 테이프 장치, 플래쉬 메모리 또는 다른 유사한 고체 상태(solid state) 메모리 장치, 또는 저장 영역 네트워크 또는 다른 구성에 존재하는 장치를 포함하는 장치 어레이일 수 있다.
일부 실시예에서, 제2 인터페이스 부(1235)는 저속 확장 포트에 연결될 수 있다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 네트워크 어댑터를 통하여 네트워킹 장치에 연결될 수 있다.
제1 및 제2 메모리 장치들(1220, 1230)은 다수의 메모리 칩들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 장치들(1220, 1230)은 다수의 적층된 다이들로 구현될 수도 있다.
제1 및 제2 메모리 장치들(1220, 1230)은 프로세서(1210)에서 제공된 송신 데이터(DQp)를 모드 신호(mode) 및 플래그 정보(CF)에 기초하여 복원한다.
제1 및 제2 인터페이스부(1225, 1235)는 컴퓨팅 시스템(1600)내에서 상이한 동작 속도를 갖는 구성 요소들 사이의 인터페이싱을 수행할 수 있다. 도시한 바와 같은 구성 요소들의 배치는 예시적인 것으로서 이에 한정되지는 않는다.
실시예에 따라, 컴퓨팅 시스템(1200)은 입출력 부(1240)를 더 포함할 수 있다. 입출력 부(1240)는 키보드, 마우스와 같은 사용자 입력을 수행하는 장치, 프린터, 디스플레이와 같이 사용자에게 데이터를 출력해주는 장치들을 포함할 수 있다.
본 명세서에 설명된 데이터 처리 장치와 데이터 처리 방법은 디지털 전자 회로, 집적 회로, 특정 목적으로 설계된 ASICs(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다.
이러한 컴퓨팅 시스템의 구현은 하나 이상의 컴퓨터 프로그램에 의하여 이루어질 수 있다. 컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 또는 코드라 함)은 프로그램 가능한 프로세서용 기계 명령을 포함하고, 고레벨 절차 및/또는 객체지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다.
나아가, 컴퓨터 프로그램은 프로그램 가능한 시스템 상에서 실행될 수 있으며, 프로그램 가능한 시스템은 저장 시스템에 연결되어 데이터와 명령을 송수신하는, 전용 또는 범용인 적어도 하나의 프로그램 가능한 프로세서, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함할 수 있다.
컴퓨팅 시스템(1200)의 구성요소는 임의 형태 또는 디지털 데이터 통신의 매체(예를 들어, 통신 네트워크)에 의해 상호 접속될 수 있다. 예를 들어, 통신 네트워크는 근거리 네트워크(LAN), 광역 네트워크(WAN), 및 인터넷을 포함할 수 있다.
설명한 바와 같이 본 발명의 일 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법은 압축을 위한 별도의 정보 없이, 데이터 자체의 비교만으로 데이터를 압축하여 송신함으로써 간단한 방식으로 데이터의 압축 송신이 가능하다.
나아가, 본 발명의 일 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법은 데이터의 압축률이 보다 요구되는 경우, 또는 정확도가 보다 요구되는 경우에 따라 선택적으로 데이터의 압축에 대한 손실 여부를 결정하고, 손실 비트를 설정할 수 있어, 보다 유연하게 압축 동작을 가능하게 한다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
10 : 데이터 처리 장치
100 : 컨트롤러
200 : 메모리 장치
1200 : 컴퓨팅 시스템

Claims (20)

  1. 2n(n은 자연수) 비트로 구성된 데이터의 인접하는 두 비트들의 쌍(Pair)을 각각 비교한 비교 결과에 기초하여 상기 데이터를 압축하는 압축부; 및
    상기 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터를 생성하는 패딩부를 포함하는 컨트롤러를 구비하고,
    상기 데이터에서 상기 인접하는 두 비트들이 각각 쌍을 이루고,
    상기 압축부는
    쌍을 이루는 두 비트끼리를 서로 비교하며,
    상기 쌍을 이루는 두 비트끼리 서로 다른 값을 갖는 경우, 동일한 값을 갖도록 상기 쌍을 이루는 두 비트들을 대체하여 압축하는 데이터 처리 장치.
  2. 청구항 1에 있어서,
    상기 압축부는,
    상기 인접하는 두 비트들의 쌍이 일치하는 경우, 일치하는 비트 쌍을 일치하는 하나의 비트 값으로 압축하는 데이터 처리 장치.
  3. 청구항 2에 있어서,
    상기 압축부는,
    상기 인접하는 두 비트들의 쌍이 일치하지 않는 경우, 압축 방식을 결정하기 위한 모드 신호에 기초하여 무손실 모드, 손실 모드 중 어느 하나의 모드에 따라 두 비트들을 압축하는 데이터 처리 장치.
  4. 청구항 3에 있어서,
    상기 압축부는,
    상기 모드 신호가 상기 무손실 모드에 상응하는 경우, 상기 두 비트들을 압축하지 않는 데이터 처리 장치.
  5. 청구항 3에 있어서,
    상기 압축부는,
    상기 모드 신호가 상기 손실 모드에 상응하는 경우, 상기 두 비트들을 기설정된 하나의 비트 값으로 대체하여 압축하는 데이터 처리 장치.
  6. 청구항 3에 있어서,
    상기 압축부는,
    상기 모드 신호가 상기 손실 모드에 상응하는 경우, 상기 두 비트들 중 우선순위에 의해 선택된 하나의 비트로 대체하여 압축하는 데이터 처리 장치.
  7. 청구항 6에 있어서,
    상기 압축부는
    MSB(Most Significant Bit)에서부터 LSB(Least Significant Bit) 순서대로 상기 우선순위를 두어 상기 하나의 비트를 선택하는 데이터 처리 장치.
  8. 청구항 5 내지 7중 어느 한 항에 있어서,
    상기 압축되는 비트 수는 기설정되는 데이터 처리 장치.
  9. 청구항 1에 있어서,
    상기 더미 비트는 상기 압축된 데이터에 포함된 비트들 중 '0' 비트의 수와 '1' 비트의 수에 따라 설정되는 데이터 처리 장치.
  10. 청구항 1에 있어서,
    상기 압축부는,
    상기 데이터의 압축 여부를 지시하는 플래그 정보를 생성하는 것을 특징으로 하는 데이터 처리 장치.
  11. 청구항 10에 있어서,
    상기 컨트롤러는,
    상기 플래그 정보 및 상기 송신 데이터를 송신하는 송신부를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.
  12. 청구항 11에 있어서,
    상기 송신부는,
    상기 컨트롤러에 구비된 제1 연결자를 통하여 상기 송신 데이터를 송신하고 상기 컨트롤러에 구비된 제2 연결자를 통하여 플래그 정보를 각각 송신하는 것을 특징으로 하는 데이터 처리 장치.
  13. 청구항 11에 있어서,
    상기 송신부는,
    상기 컨트롤러에 구비된 제1 연결자를 통하여 상기 송신 데이터 및 상기 플래그 정보를 순차적으로 송신하는 데이터 처리 장치.
  14. 청구항 11에 있어서,
    상기 송신부를 통하여 송신된 상기 송신 데이터 및 상기 플래그 정보를 수신하는 수신부; 및
    상기 송신 데이터의 압축을 해제하여 상기 데이터를 복원하는 디코더를 포함하는 메모리 장치를 더 구비하는 것을 특징으로 하는 데이터 처리 장치.
  15. 청구항 14에 있어서,
    상기 복원된 데이터를 저장하는 저장 장치를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.
  16. 2n(n은 자연수) 비트로 구성된 데이터의 인접하는 두 비트들의 쌍(Pair)을 각각 비교한 비교 결과에 기초하여 상기 데이터를 압축하는 단계;
    상기 데이터의 압축 여부를 나타내는 플래그 정보를 생성하는 단계;
    상기 압축된 데이터에 더미 비트를 패딩하여 2n 비트의 송신 데이터를 생성하는 단계; 및
    상기 송신 데이터 및 상기 플래그 정보를 물리적 연결자를 통하여 전송하는 단계를 포함하고,
    상기 데이터를 압축하는 단계는
    상기 데이터에서 상기 인접하는 두 비트들이 각각 쌍을 이루고, 쌍을 이루는 두 비트끼리를 서로 비교하는 단계; 및
    상기 쌍을 이루는 두 비트끼리 서로 다른 값을 갖는 경우, 동일한 값을 갖도록 상기 쌍을 이루는 두 비트들을 대체하여 압축하는 단계를 포함하는 데이터 처리 방법.
  17. 청구항 16에 있어서,
    상기 데이터를 압축하는 단계는,
    상기 인접하는 두 비트들의 쌍이 일치하는 경우에는 일치하는 비트 쌍을 일치하는 하나의 비트 값으로 압축하고, 상기 인접하는 두 비트들의 쌍이 일치하지 않는 경우에는 압축 방식을 결정하기 위한 모드 신호에 기초하여 무손실 모드, 손실 모드 중 어느 하나의 모드에 따라 두 비트들을 압축하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  18. 청구항 17에 있어서,
    상기 모드 신호가 상기 무손실 모드에 상응하는 경우, 일치하지 않는 두 비트들을 압축하지 않고, 상기 모드 신호가 상기 손실 모드에 상응하는 경우, 상기 일치하지 않는 두 비트들을 기설정된 하나의 비트 값으로 대체하거나 일치하지 않는 두 비트들 중 우선순위에 의해 선택된 하나의 비트로 대체하여 압축하는 데이터 처리 방법.
  19. 청구항 18에 있어서,
    상기 더미 비트는 상기 압축된 데이터에 포함된 비트들 중 '0' 비트의 수와 '1' 비트의 수에 따라 설정되는 데이터 처리 방법.
  20. 청구항 18에 있어서,
    상기 모드 신호는 상기 손실 모드에 있어서, 상기 데이터들의 최대 허용 손실 비트 수를 결정하는 것을 특징으로 하는 데이터 처리 방법.
KR1020130168660A 2013-12-31 2013-12-31 데이터 처리 장치 및 데이터 처리 방법 KR102017807B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130168660A KR102017807B1 (ko) 2013-12-31 2013-12-31 데이터 처리 장치 및 데이터 처리 방법
US14/288,232 US9509338B2 (en) 2013-12-31 2014-05-27 Apparatus and method for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130168660A KR102017807B1 (ko) 2013-12-31 2013-12-31 데이터 처리 장치 및 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20150078866A KR20150078866A (ko) 2015-07-08
KR102017807B1 true KR102017807B1 (ko) 2019-09-03

Family

ID=53483086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130168660A KR102017807B1 (ko) 2013-12-31 2013-12-31 데이터 처리 장치 및 데이터 처리 방법

Country Status (2)

Country Link
US (1) US9509338B2 (ko)
KR (1) KR102017807B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168939B2 (en) * 2015-11-24 2019-01-01 International Business Machines Corporation Reading records from a tape medium
US10838922B2 (en) * 2017-03-31 2020-11-17 International Business Machines Corporation Data compression by using cognitive created dictionaries
KR20210092465A (ko) 2020-01-16 2021-07-26 우송대학교 산학협력단 수납형태의 이동식 컨테이너 하우스

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290615A1 (en) * 2010-10-22 2013-10-31 Indra Networks, Inc. Compression and decompression of data at high speed in solid state storage

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179711A (en) 1989-12-26 1993-01-12 International Business Machines Corporation Minimum identical consecutive run length data units compression method by searching consecutive data pair comparison results stored in a string
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US5748904A (en) * 1996-09-13 1998-05-05 Silicon Integrated Systems Corp. Method and system for segment encoded graphic data compression
US20020154040A1 (en) 2001-04-23 2002-10-24 Pentti Vataja Lossless data compression method enabling fast decompression
US7742926B2 (en) * 2003-04-18 2010-06-22 Realnetworks, Inc. Digital audio signal compression method and apparatus
US7365673B2 (en) * 2004-12-30 2008-04-29 Honeywell International, Inc. Compression and transmission of weather data
EP2351229A1 (en) * 2008-10-27 2011-08-03 Micro Motion, Inc. Method and apparatus for compressing and decompressing data records
KR20110089308A (ko) * 2008-11-13 2011-08-05 마이크로 모우션, 인코포레이티드 데이터 레코드들의 압축 및 압축해제를 위한 방법 및 장치
KR101720101B1 (ko) * 2011-03-18 2017-03-28 삼성전자주식회사 메모리 시스템에 데이터를 쓰는 쓰기 방법 및 메모리 시스템의 데이터 쓰기 방법
US20150067436A1 (en) * 2013-09-03 2015-03-05 Sandisk Technologies Inc. Nonvolatile Memory System Compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290615A1 (en) * 2010-10-22 2013-10-31 Indra Networks, Inc. Compression and decompression of data at high speed in solid state storage

Also Published As

Publication number Publication date
US20150188566A1 (en) 2015-07-02
KR20150078866A (ko) 2015-07-08
US9509338B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
US8949687B2 (en) Memory device and memory system
US20180137224A1 (en) K-d tree encoding for point clouds using deviations
US7995696B1 (en) System and method for deskewing data transmitted through data lanes
CN112514264A (zh) 数据压缩、解压方法及相关装置、电子设备、系统
US20150026509A1 (en) Storage device having a data stream converter
CN105207678A (zh) 一种改进型lz4压缩算法的硬件实现系统
US9647688B1 (en) System and method of encoding in a serializer/deserializer
KR102017807B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
KR20120109753A (ko) 저장 장치에서의 데이터 압축 방법
US20150378813A1 (en) Semiconductor memory card, method for controlling the same, and semiconductor memory system
WO2017007550A1 (en) Systems and methods for providing non-power-of-two flash cell mapping
US10236915B2 (en) Variable T BCH encoding
EP4057515B1 (en) Devices for encoding
KR102017808B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
US8380897B2 (en) Host computer, computer terminal, and card access method
CN114141285A (zh) 存储器件、存储器件的操作方法和存储系统
US11237729B1 (en) Fast bus inversion for non-volatile memory
US9785592B2 (en) High density mapping for multiple converter samples in multiple lane interface
JP4011062B2 (ja) 信号伝送方法
US8391402B2 (en) Process and device for encoding, and associated electronic system and storage medium
KR20220094174A (ko) 메모리 시스템에 대한 길이 호환 극성 코드에서의 에러 정정을 수행하기 위한 시스템 및 방법
JP2019536386A (ja) ナローリンクにおける頻出データ値の圧縮
US10411733B2 (en) Data compression and decompression
CN114946144B (zh) 低密度奇偶校验码编码方法和编码器
CN107195327B (zh) 一种优化的prom存储器编程烧录方法的设计

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant