KR20070079205A - 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치 - Google Patents

인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치 Download PDF

Info

Publication number
KR20070079205A
KR20070079205A KR1020060009744A KR20060009744A KR20070079205A KR 20070079205 A KR20070079205 A KR 20070079205A KR 1020060009744 A KR1020060009744 A KR 1020060009744A KR 20060009744 A KR20060009744 A KR 20060009744A KR 20070079205 A KR20070079205 A KR 20070079205A
Authority
KR
South Korea
Prior art keywords
data
bit
current
encoding
received
Prior art date
Application number
KR1020060009744A
Other languages
English (en)
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 KR1020060009744A priority Critical patent/KR20070079205A/ko
Publication of KR20070079205A publication Critical patent/KR20070079205A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/45Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the shape
    • A61F13/49Absorbent articles specially adapted to be worn around the waist, e.g. diapers
    • A61F13/49007Form-fitting, self-adjusting disposable diapers
    • A61F13/49009Form-fitting, self-adjusting disposable diapers with elastic means
    • A61F13/49014Form-fitting, self-adjusting disposable diapers with elastic means the elastic means is located at the side panels
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/56Supporting or fastening means
    • A61F13/5622Supporting or fastening means specially adapted for diapers or the like
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Health & Medical Sciences (AREA)
  • Epidemiology (AREA)
  • Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Vascular Medicine (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 데이터 버스를 통해 비트 데이터를 송수신하는 데이터 처리 장치로서, 외부 블록으로부터 비트 데이터를 순차적으로 수신하는 데이터 수신부와; 데이터 수신부로부터 수신된 현재 비트 데이터와, 기 처리된 이전 비트 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치하지 않는 오차 비트 개수가 기준 오차 비트 개수보다 큰 경우, 오차 비트 개수가 기준 오차 비트 개수 이하가 되도록 현재 비트 데이터를 변환하고 데이터 버스로 송신하는 인코딩 처리부를 포함한다. 본 데이터 처리 장치는 외부 블록으로 상기 비트 데이터를 순차적으로 송신되는 데이터 송신부와; 데이터 송신부를 통해 외부 블록으로 전송될 현재 실효 데이터와, 현재 실효 데이터의 변환 여부 정보를 갖는 현재 첨부 데이터를 포함하는 현재 수신 데이터를 데이터 버스로부터 수신하고, 현재 첨부 데이터와 기 수신된 이전 수신 데이터에서 상기 현재 첨부 데이터에 해당하는 부분을 추출한 이전 첨부 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 현재 실효 데이터를 복원하여 데이터 송신부로 전송하는 디코딩 처리부를 포함한다. 이에 의해, 데이터 처리 장치내의 다양한 기능 블록들이 데이터 버스를 통해 데이터를 송수신할 때 데이터 버스에 의해 소비되는 소비전력을 최소화 할 수 있다.

Description

인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터 처리 장치{DATA PROCESSING APPARATUS WITH DATA BUS USING ENCODING/DECODING FUNCTION}
도 1은 본 발명의 실시예에 따른 데이터 처리장치의 제어블록도이다.
도 2는 본 발명에 따른 SOC내의 인코딩 처리부의 블록도이다.
도 3은 본 발명에 따른 SOC내의 디코딩 처리부의 블록도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 데이터 버스 20 : 데이터 수신부
30 : 인코딩 처리부 33 : 데이터 분할부
40 : 데이터 송신부 50 : 디코딩 처리부
53 : 데이터 결합부 100 : SOC(System On Chip)
230 : 인코딩 비교부 240 : 인코딩 변환부
330 : 디코딩 비교부 340 : 디코딩 변환부
350 : 인덱스 산출부
본 발명은 데이터 처리 장치에 관한 것으로서, 보다 상세하게는, 데이터 처 리 장치 내의 기능 블록들 간에 데이터 버스를 통해 비트 데이터를 전송하는 데이터 처리 장치에 관한 것이다.
데이터 처리 장치는 다양한 기능을 가진 블록을 포함하고, 각 블록은 타 블록과 정보를 전송하기 위해 데이터 버스를 이용한다. 여기서 데이터 버스는 어드레스 버스등 그밖에 다양한 버스를 포함할 수 있다.
컴퓨터 형태의 시스템과 같은 데이터 처리 장치에서 정보 컴퓨팅 방식이 차츰 발달함에 따라 전술한 다양한 기능을 가진 블록들은 점차 하나의 반도체 칩에 구현되어 제공되고 있으며, 이것을 일반적으로 SOC(System On Chip)이라고 한다.
SOC내에는 다양한 기능 블록들이 칩 내에 집적되어 있으며, 데이터 버스를 통해 상대 기능 블록에 데이터를 읽거나, 쓰기를 할 수 있는 마스터로 동작하는 기능 블록인 마스트 블록과 마스터 블록에 의해 수동적으로 동작하는 기능 블록인 슬레이브 블록으로 나눠질 수 있다. 또한 SOC는 복수의 마스터 블록과 슬레이브 블록을 포함할 수 있다.
전술한 바와 같이 하나의 마스터 블록이 복수의 슬레이브 블록 중 어느 하나의 슬레이브 블록에 데이터를 쓰거나 읽을 때, 데이터는 비트 스트림의 형태로 버스를 통해 병렬로 전송되어진다. 이때 데이터 버스는 비트 스트림을 전송하는데 있어서 이전 비트 데이터의 비트 스트림에 대한 현재 비트 데이터의 비트 스트림의 상호 대응하는 위치의 비트별로 비교하여 서로 일치하지 않은 경우가 빈번할 때, 데이터 버스에 의해 소비되는 소비전력은 증가하게 된다. 예를 들면 이전 비트 데이터의 비트 스트림이 "1_1_1_1_0_0_0_0"일 때, 현재 비트 데이터의 비트 스트림 이 "1_1_1_0_1_0_0_0"인 제1 비트 스트림인 경우와, "0_0_1_0_1_1_0_1"인 제2 비트 스트림인 경우를 비교하면, 이전 비트 데이터의 비트 스트림 "1_1_1_1_0_0_0_0"에 대해 제1 비스 스트림인 "1_1_1_0_1_0_0_0"를 상호 대응하는 위치의 비트별로 비교하면 다른 비트가 4 번째와 5 번째 이고, 이전 비트 데이터의 비트 스트림 "1_1_1_1_0_0_0_0"에 대해 제2 비트 스트림인"0_0_1_0_1_1_0_1"을 상호 대응하는 위치의 비트별로 비교하면 다른 비트가 1 번째, 2 번째, 4 번째, 5 번째, 6 번째, 7 번째이다. 이때 이전 비트 데이터의 비트 스트림에 후속해서 전송되어지는 비트 스트림이 제2 비트 스트림인 경우 데이터 버스에 의해 소비되는 전력이 제1 비트 스트림인 경우 보다 훨씬 많아지게 된다.
이와 같이 종래의 데이터 처리 장치에서 데이터 버스를 통해 마스터 블록이 어느 하나의 슬레이브 블록에 데이터를 쓰거나 읽어올 때, 이전 비트 데이터의 비트 스트림에 대해 현재 비트 데이터의 비트 스트림의 각 비트가 상이한 경우가 자주 발생할 때 소비 전력은 증가하게 된다.
따라서, 본 발명의 목적은 데이터 처리 장치내의 다양한 기능 블록들이 데이터 버스를 통해 데이터를 송수신할 때 데이터 버스에 의해 소비되는 소비전력을 최소화 할 수 있는 데이터 처리 장치를 제공하는데 있다.
상기 목적은, 본 발명에 따라, 데이터 버스를 통해 비트 데이터를 송수신하는 데이터 처리 장치는 외부 블록으로부터 비트 데이터를 순차적으로 수신하는 데 이터 수신부와; 데이터 수신부로부터 수신된 현재 비트 데이터와 기 처리된 이전 비트 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치하지 않는 오차 비트 개수가 기준 오차 비트 개수보다 큰 경우, 상기 오차 비트 개수가 기준 오차 비트 개수 이하가 되도록 현재 비트 데이터를 변환하고 상기 데이터 버스로 송신하는 인코딩 처리부에 의해 달성된다.
그리고 현재 비트 데이터는 데이터 수신부를 통해 수신된 수신 데이터와 현재 비트 데이터의 변환 여부 정보를 포함하는 첨부데이터 중 적어도 하나를 포함하고, 인코딩 처리부는 이전 비트 데이터에서 수신 데이터에 대응하는 비트를 추출한 추출 데이터와, 수신 데이터를 상호 대응하는 위치의 비트별로 비교하는 인코딩 비교부를 포함한다.
그리고 인코딩 처리부는 오차 비트 개수가 기준 오차 비트 개수보다 커서 현재 비트 데이터를 변환 처리해야 할 경우, 현재 비트 데이터에 대한 첨부 데이터와 수신 데이터를 저장하는 인코딩 참조 테이블을 포함하여 인코딩 비교부의 결과값에 따라 인코딩 참조 테이블로부터 상기 첨부 데이터와 수신 데이터를 출력하는 인코딩 변환부를 포함한다.
한편, 상기 목적은, 본 발명에 따라, 데이터 버스를 통해 비트 데이터를 송수신하는 데이터 처리 장치는 외부 블록으로 비트 데이터를 순차적으로 송신되는 데이터 송신부와; 데이터 송신부를 통해 외부 블록으로 전송될 현재 실효 데이터와 현재 실효 데이터의 변환 여부 정보를 갖는 현재 첨부 데이터를 포함하는 현재 수신 데이터를 상기 데이터 버스로부터 수신하고, 현재 첨부 데이터와 기 수신된 이 전 수신 데이터에서 현재 첨부 데이터에 해당하는 부분을 추출한 이전 첨부 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 현재 실효 데이터를 복원하여 데이터 송신부로 전송하는 디코딩 처리부에 의해 달성될 수 있다.
그리고 디코딩 처리부는 데이터 버스로부터 변환되어 수신된 상기 변환된 현재 실효 데이터에 대해 복원된 현재 실효 데이터를 저장하는 디코딩 참조 테이블을 포함하고, 현재 실효 데이터가 변환된 것으로 판단된 경우, 현재 수신 데이터와, 이전 수신 데이터와, 상기 이전 수신 데이터에서 상기 이전 첨부 데이터를 뺀 이전 실효 데이터에 기초하여 인덱스 상수를 생성하고, 상기 인덱스 상수에 기초하여, 상기 디코딩 참조 테이블에서 복원된 현재 실효 데이터를 추출하여 상기 데이터 송신부로 송신한다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다. 첨부도면은 다양한 기능을 하는 기능 블록들과 기능 블록들간의 데이터 전송을 위해 사용되는 데이터 버스를 집적한 반도체 회로인 SOC(System On Chip)을 일 실시예로 설명한 것이다.
데이터 처리 장치는 소정 디지털 정보를 데이터 처리 장치내에 존재하는 기능 블록들간 데이터 버스를 통해 데이터 송수신할 수 있는 장치를 포함하며, 일반적으로 컴퓨터, 프린터, 복사기, PDA 등을 포함한다. 그리고 SOC는 데이터 처리 장치내에 포함되어 질 수 있다.
도 1은 본 발명의 실시예에 따른 데이터 처리장치의 제어블록도이다.
도 1은 본 발명에 따른 데이터 처리 장치가 데이터 수신부(20), 인코딩 처리부(30), 디코딩 처리부(50) 및 데이터 송신부(40)를 포함하는 것을 일예로 도시하였다. 여기서, 도 1에 따른 데이터 처리 장치는 SOC(Systen On a Chip : 100) 일 수도 있으며, SOC(100)를 포함하는 장치일 수도 있다. 그리고, 데이터 처리 장치는 도시된 바와 같이, 데이터 버스(10)를 포함하는 것이 바람직하다.
본 발명에 따른 데이터 처리 장치는 도 1에 도시된 구성요소 중 데이터 수신부(20)와 인코딩 처리부(30)를 포함할 수 있다.
여기서, 데이터 수신부(20)는 외부 블록으로부터 비트 데이터를 순차적으로 수신한다. 데이터 수신부(20)가 현재 수신하는 비트 데이터를 현재 비트 데이터라 하고, 데이터 수신부(20)가 현재 비트 데이터가 수신되기 직전에 수신한 비트 데이터를 이전 비트 데이터라 한다.
구체적으로, 데이터 수신부(20)는 외부 블록으로부터 비트 데이터를 수신하고, 수신된 비트 데이터를 인코딩 처리부(30)가 인코딩하여 데이터 버스를 통해 데이터 송신부(40)로 전송할 수 있도록 인코딩 처리부(30)로 송신한다. 데이터 수신부(20)는 단순히 데이터를 수신하기 위한 단자일 수 있으며, 또는 기능 블록인 마스터 블록일 수 도 있다.
인코딩 처리부(30)는 데이터 수신부(20)로부터 수신된 현재 비트 데이터와 기 처리된 이전 비트 데이터를 상호 대응하는 위치의 비트별로 비교한다. 그리고, 인코딩 처리부(30)는 비교 결과 현재 비트 데이터와 이전 비트 데이터의 비트 중 일치하지 않는 비트 개수인 오차 비트 개수가 기준 오차 비트 개수보다 큰지 여부 를 판단한다. 그리고, 인코딩 처리부(30)는 오차 비트 개수가 기준 오차 비트 개수 이하가 되도록 현재 비트 데이터를 변환한다.
그리고, 인코딩 처리부(30)는 데이터 분할부(33)를 더 포함하여, 인코딩 처리부(30)가 처리할 수 있는 데이터의 크기에 맞게 비트 데이터를 분할 할 수 있다.
본 발명에서는, 현재 비트 데이터가 분할 데이터와 첨부 데이터를 포함하는 것을 일예로 설명한다. 또한 분할 데이터와 첨부 데이터는 인코딩된 데이터임을 표시하기 위해 각각 인코딩 분할 데이터와 인코딩 첨부 데이터로 표시하여 후술하겠다. 그리고 전술한 현재 비트 데이터와 이전 비트 데이터는 분할 데이터에 해당한다.
본 발명에 따른 데이터 처리장치는 도 1에 도시된 구성요소 중 데이터 송신부(40)와 디코딩 처리부(50)를 포함할 수 있다.
데이터 송신부(40)는 외부 블록으로 비트 데이터를 순차적으로 송신한다. 여기서 비트 데이터는 디코딩 처리부(50)로부터 수신한 실효 데이터들을 결합한 것을 의미한다.
구체적으로 데이터 송신부(40)는 디코딩 처리부(50)가 데이터 버스(10)를 통해 수신한 현재 실효 데이터를 복원하여 보내면 이 복원된 현재 실효 데이터를 외부 블록으로 전송한다. 데이터 송신부(40)는 단순히 데이터를 송신하기 위한 단자일 수 있으며, 또는 기능 블록인 슬레이브 블록 일 수도 있다.
디코딩 처리부(50)는 데이터 버스(10)로부터 입력 데이터를 수신받는다. 여기서 데이터 버스(10)로부터 현재 입력 받은 데이터를 현재 입력 데이터라 하고, 현재 입력 데이터 직전에 입력받은 데이터를 이전 입력 데이터라고 한다.
그리고 입력 데이터는 후술할 데이터 결합부(53)에 전송되는 실효 데이터와 실효 데이터의 인코딩 여부 정보를 포함하는 첨부 데이터를 결합한 데이터이다.
그리고 디코딩 처리부(50)는 현재 입력 데이터의 현재 첨부 데이터와 기 수신된 이전 입력 데이터의 이전 첨부 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치 여부를 판단하여, 불일치로 판명되면 현재 실효 데이터를 복원하여 데이터 송신부(40)로 전송한다.
디코딩 처리부(50)는 데이터 결합부(53)를 더 포함하여 실효 데이터들을 결합하여 데이터 송신부(40)에 전송할 수 있다.
데이터 결합부(53)는 디코딩 처리부(50)에 포함될 수 있고, 별도로 마련될 수 있다. 디코딩 처리부(50)와 별도로 있는 경우, 데이터 결합부(53)는 디코딩 처리부(50)로부터 복원된 현재 실효 데이터를 수신하고 수신된 현재 실효 데이터들을 결합하여 데이터 송신부(40)로 전송한다.
또한, 디코딩 처리부(50)가 데이터 버스(10)로부터 입력 받는 비트 스트림을 입력 데이터라고 하고, 입력 데이터로부터 분할 데이터를 추출하여 디코딩 처리한 데이터를 디코딩 분할 데이터라 하고, 입력 데이터가 인코딩된 데이터인지에 대한 정보를 포함하는 데이터를 첨부 데이터라고 하여 일예를 후술할 것이다.
즉, 전술한 현재 수신 데이터와 이전 수신 데이터는 입력 데이터에 해당하고, 현재 실효 데이터는 디코딩 분할 데이터에 해당한다.
데이터 처리 장치내의 SOC(100)가 포함하는 기능 블록들 뿐만아니라, 데이터 처리 장치내의 기능 블록들이 데이터 버스(10)를 통해 데이터를 송수신하는 경우, 기능 블록과 데이터 버스(10) 사이에 인코딩 처리부(30)와 디코딩 처리부(50)를 설치하는 이유는 데이터 버스를 통해 전송되는 비트 데이터가 이전에 전송된 비트 데이터과 비교하여 상호 대응하는 비트 위치의 비트가 서로 다를 때 데이터 버스(10)에 의해 전력이 소비되는데 이 비트 스트림들을 인코딩 처리부(30)가 인코딩 처리하여 서로 다른 비트의 개수를 최소화하고, 인코딩된 비트 데이터를 디코딩 처리부(50)가 원래대로 디코딩하여 복원하기 위한 것이다.
다음은 인코딩 처리부(30)가 데이터 버스(10)를 통해 전송되는 비트 데이터를 비트 스트림으로 표현하여 일예를 설명한다.
예를 들면, 도 1에서 도시한 바와 같이, 데이터 버스(10)를 통해 전송되고 있는 비트 스트림 A와 비트 스트림 B를 상호 대응하는 비트 위치의 비트를 비교할 때, 상이한 것은 3번째 비트 자리와 4번째 비트 자리이고, 또한 비트 스트림 B와 비트 스트림 C를 상호 대응하는 비트 위치의 비트를 비교할 때, 상이한 것은 1번째, 2번째, 3번째, 6번째, 7번째, 8번째 비트 자리이다. 이때 비트 스트림 A와 비트 스트림 B를 전송할 때 소비되는 소비전력보다 비트 스트림 B와 비트 스트림 C를 전송할 때 소비되는 소비전력이 더 높다.
따라서 본 발명에 따른 SOC(100)의 인코딩 처리부(30)는 데이터 버스(10)를 통해 전송되는 현재 비트 스트림과 이전에 전송된 이전 비트 스트림을 상호 대응하는 위치별 비트를 비교하여 서로 상이한 비트의 개수를 기준 오차 비트 개수 이하가 되도록, 현재 비트 스트림을 인코딩하여 데이터 버스(10)로 전송한다. 여기서 현재 비트 스트림과 이전 비트 스트림은 데이터 수신부(20)로부터 수신한 수신 데이터와, 현재 비트 스트림과 이전 비트 스트림이 인코딩 되었는지를 나타내는 인코딩 여부 정보를 갖는 첨부 데이터 중 적어도 하나를 포함한다.
또한 본 발명에 따른 SOC(100)의 디코딩 처리부(50)는 데이터 버스를 통해 수신된 비트 스트림의 첨부 데이터를 통해 수신된 비트 스트림이 인코딩된 비트 스트림인지 판단하고, 인코딩된 비트 스트림으로 판명되면, 인코딩된 비트 스트림을 디코딩 처리하여 데이터 송신부(40)로 전송한다. 이때 데이터 송신부(40)로 전송될 디코딩 분할 데이터들의 결합 데이터를 후술할 일예를 설명하기 위해 실효 데이터라고 한다.
데이터 수신부(20)는 외부 블록으로부터 일정 크기의 데이터를 수신받아 상대 외부 블록으로 데이터 버스(10)를 통해 전송하기 위해 인코딩 처리부(30)로 일정 크기의 데이터를 송신한다. 인코딩 처리부(30)의 데이터 분할부(33)는 일정 크기의 데이터를 인코딩 처리부(30)가 처리할 수 있는 크기로 다시 분할하고 인코딩 처리부(30)는 분할된 데이터에 첨부 데이터를 결합하여 인코딩 처리하고 상대 외부 블록으로 전송되도록 데이터 버스(10)로 전송한다.
이때 데이터 분할부(33)에 의해 분할된 분할 데이터의 크기를 k라 하고 분할 데이터는
Figure 112006007699999-PAT00001
라 한다.
그리고 인코딩 처리부(30)에 의해 분할 데이터에 첨부되는 첨부 데이터의 크기를 m이라 할 때 인코딩 처리부(30)에 의해 데이터 버스(10)로 전송되는 출력 데이터의 크기는 m+k가 된다. m+k를 n이라 했을때, 인코딩 처리부(30)에 의해 인코딩 처리되어 출력되는 출력 데이터
Figure 112006007699999-PAT00002
라고 할 수 있다. 이때 출력 데이터 C 는 두개의 필드로 구분되는데 k 비트의 크기를 갖고 분할 데이터에 대응하는 하위 필드와, m(=n-k) 비트의 크기를 갖고 첨부 데이터에 대응하는 상위 필드로 구분된다.
전술한 상수 k와 n는 데이터 처리 장치를 설계하는 디자이너에 의해 설정되는 값이고, 설정된 k와 n에 기초하여 다음 공식을 근거로 상수 m을 구할 수 있다.
2
Figure 112006007699999-PAT00003
- (C(0,k)+C(1,k)+...+C(e,k)) <= SUM(C(1,k) × C(j,m)) 이면,
C(a,b) = b!/(a! * (b-a)!) - 이항계수(binomial coefficients),
l = {0,..,e-1}, j={1,...,e}, l + j <= e 의 조건하에
SUM(Cl,k * Cj,m) - (l과 j의 모든 조합(combination)의 합).
위의 공식에 따라,
k = 4, e = 2 인 경우, m = 1
k = 8, e = 3 인 경우, m = 4
k = 8, e = 2 인 경우, m = 15가 된다.
참고로 인코딩 처리부(30)
Figure 112006007699999-PAT00004
가 전송할 데이터를 인코딩 처리할 것 인가의 판단기준이 되는 기준 오차 비트 개수 e도 디자이너에 의해 데이터 처리 장치 설계 당시 설정되어 진다. 또한 인코딩 처리부(30)에 의해 분할 데이터가 인코딩되야 한다고 판명된 경우, 분할 데이터를 인코딩하여 도출될 인코딩 분할 데이터와 인코딩 분할 데이터에 첨부될 인코딩 첨부 데이터를 저장하는 인코딩 참조 테이블(245) 또한 디자이너에 의해 설정되어 진다.
디코딩 처리부(50)가 데이터 버스를 통해 출력 데이터
Figure 112006007699999-PAT00005
를 수신하면 인코딩 첨부 데이터을 통해 수신된 출력 데이터 C의 인코딩 여부를 판단하고, 인코딩된 것으로 판명되면, 출력 데이터 C를 디코딩하고 인코딩 처리부(30)의 데이터 분할부(33)가 분할했던 분할 데이터로 복원하면, 데이터 결합부(53)는 데이터 수신부(20)가 외부 블록으로부터 수신 받았던 데이터가 되도록 분할 데이터들을 결합하고 결합된 데이터를 데이터 송신부(40)로 전송한다.
도 2는 본 발명에 따른 SOC내의 인코딩 처리부의 블록도이다.
도 2에 도시한 바와 같이, 본 발명에 따른 인코딩 처리부(30)는 데이터 분할부(33)와, 인코딩 비교부(230)와, 인코딩 변환부(240)와, 인코딩 데이터 결합부(270)를 포함하고, 복수의 입력값들 중 하나의 선택하여 출력하는 MUX(250,260)를 복수개 더 포함할 수 있다. 그러나 2개의 MUX를 포함하는 것이 적절하다.
데이터 분할부(33)가 데이터 수신부(20)로부터 32 비트의 크기를 갖는 비트 데이터를 수신하였다고 가정하고, 디자이너가 데이터 처리 장치를 설계할 때 전술한 상수 k, e를 각각 8과 2로 설정했다면, 비트 데이터는 k(= 8)비트의 크기를 갖는 4개의 분할 데이터로 나눠질 수 있고 편의상 제1 분할 데이터, 제2 분할 데이터, 제3 분할 데이터, 제4 분할 데이터로 구분한다. 즉, 분할 데이터의 크기 k가 8이고, 인코딩 변수 e가 2인 경우, 전술한 공식에 의해 첨부 데이터의 크기 m은 15가 된다. 따라서 하나의 분할 데이터에 대한 출력 데이터는 비트 크기 23 비트(n = m+k)가 된다. 즉 분할 데이터는 8비트의 하위 필드와 15비트의 상위 필드를 갖는 출력 데이터로 변환되어 데이터 버스(10)를 통해 데이터 송신부(40)로 전송된다. 편의상 제1 분할 데이터, 제2 분할 데이터, 제3 분할 데이터, 제4 분할 데이터에 대한 출력 데이터를 제1 출력 데이터, 제2 출력 데이터, 제3 출력 데이터, 제4 출력 데이터라고 한다. 또한 위의 각 출력 데이터는 위의 분할 데이터들에 첨부데이터를 인코딩하여 결합한 것이고, 인코딩한 분할 데이터들을 인코딩 제1 분할 데이터, 인코딩 제2 분할 데이터, 인코딩 제3 분할 데이터, 인코딩 제4 분할 데이터라하고, 인코딩한 첨부 데이터를 인코딩 제1 첨부 데이터, 인코딩 제2 첨부 데이터, 인코딩 제3 첨부 데이터, 인코딩 제4 첨부 데이터로 한다.
현재 시점에서 제1 분할 데이터는 인코딩 처리되어 23비트 크기의 제1 출력 데이터로 변환되어 데이터 버스(10)를 통해 데이터 송신부(40)를 전송되었다고 가정하며, 인코딩 비교부(220)는 다음 분할 데이터인 제2 분할 데이터를 인코딩 처리하기 위해 데이터 분할부(33)로부터 제2 분할 데이터와 기 전송된 제1 출력 데이터의 인코딩 제1 분할 데이터를 입력받는다.
인코딩 비교부(230)는 두개의 입력 비트 스트림에 대해 상호 대응하는 위치별 비트를 비교하여 서로 상이한 비트의 개수를 센다. 이때 상이한 비트의 개수가 디자이너에 의해 설계 당시 2 값으로 설정된 기준 오차 비트 개수인 인코딩 변수 e보다 작거나 같으면, 인코딩 비교부(230)은 0을 출력하고 그 외의 경우는 1를 출력한다. 여기서 인코딩 비교부(230)가 0을 출력했다는 것은 제1 분할 데이터는 인코딩 처리할 필요가 없다는 것을 의미하고, 1을 출력했다는 것은 제1 분할 데이터는 인코딩 처리되어야 한다는 것을 의미한다.
인코딩 비교부(230)의 출력값은 단지 두 입력 비트 스트림을 비교하여 서로 상이한 비트의 개수가 기준 오차 비트 개수를 이하 인지, 아닌지 구분할 있으면 된다. 인코딩 비교부(230)에서 출력된 값은 제1 MUX(250)와 제2 MUX(260)의 입력 선택 변수가 된다.
인코딩 비교부(230)의 출력값이 0 이라면, 즉 제1 MUX(250)는 인코딩 비교부(230)로부터 입력 선택 변수로 0값이 입력되면 데이터 분할부(33)로부터 입력된 제2 분할 데이터를 출력한다. 제2 MUX(260)는 인코딩 비교부(230)로부터 입력 선택 변수로 0값이 입력되면, 제1 출력 데이터에서 추출한 상위 필드의 데이터에 해당하는 인코딩 제1 첨부 데이터를 출력한다.
만일 인코딩 비교부(230)가 1을 출력하였다면, 즉 제1 MUX(250)는 인코딩 비교부(230)로부터 입력 선택 변수로 1값이 입력되면, 인코딩 변환부(240)로부터 입력된 인코딩 제2 분활 데이터를 출력한다. 제2 MUX(260)는 인코딩 비교부(230)로부터 입력 선택 변수로 1값이 입력되면, 인코딩 변환부(240)로부터 입력된 인코딩 제2 첨부 데이터를 출력한다.
인코딩 변환부(240)가 어떻게 인코딩 분할 데이터와 인코딩 첨부 데이터를 출력하는가 하는 방법은 다음과 같다.
인코딩 변환부(240)가 인코딩 비교부(230)로부터 1값을 수신하면, 데이터 분할부(33)로부터 제2 분할 데이터를 수신받고, 인코딩 데이터 결합부(270)로부터 기 처리되었던 제1 출력 데이터를 수신받는다. 인코딩 변환부(240)는 이 두 입력값을 어드레스로 사용하여 인코딩 참조 테이블을 검색하고 인코딩 참조 테이블로 인코딩 제2 분할 데이터와 인코딩 제2 첨부 데이터를 추출하여 각각 제1 MUX(250)와 제2 MUX(260)로 출력한다.
인코딩 참조 테이블(245)는 데이터 처리 장치 설계 당시 디자이너에 의해 인코딩 데이터를 저장하도록 설정되어 있다.
인코딩 데이터 결합부(270)는 제1 MUX(250)로부터 제2 분할 데이터(인코딩 할 필요없는 경우), 또는 인코딩 제2 분할 데이터(인코딩 한 경우)를 입력받고, 제2 MUX(260)로부터 인코딩 제1 첨부 데이터(인코딩 할 필요없는 경우), 또는 인코딩 제2 첨부 데이터(인코딩 한 경우)를 입력받아, 인코딩 제1 첨부 데이터를 상위 필드로 제2 분할 데이터를 하위 필드(인코딩 할 필요없는 경우)로 하는, 또는 인코딩 제2 첨부 데이터를 상위 필드로, 인코딩 제2 분할 데이터를 하위 필드(인코딩한 경우)로 하고, 두 데이터를 결합한 제2 출력 데이터를 데이터 버스(10)로 출력한다.
도 3은 본 발명에 따른 SOC내의 디코딩 처리부의 블록도이다.
도 3에 도시한 바와 같이, 본 발명에 따른 디코딩 처리부(30)는 메모리부(370, 380)와, 디코딩 비교부(330)와, 인덱스 산출부(350)와, 디코딩 변환부(340)와 제3 MUX(360)와, 데이터 결합부(53)를 포함한다.
메모리부(370, 380)는 데이터 버스(10)를 통해 입력된 입력 데이터를 저장한다.
디코딩 비교부(330)은 입력된 두개의 비트 스트림을 상호 대응하는 위치별 비트를 비교하여 일치 여부에 따라 0 또는 1을 출력한다. 디코딩 비교부(330)의 출력값은 단지 두 비트 스트림의 일치 여부를 나타내는 출력값이면 된다.
인덱스 산출부(350)은 데이터 버스(10)와, 제1 메모리부(370)와, 제2 메모리부(380)로부터 데이터를 수신하고, 이 데이터들을 기초로 인덱스 상수를 산출하여 디코딩 변환부(340)로 출력한다.
디코딩 변환부(340)는 인덱스 산출부(350)로부터 인덱스 상수를 수신하여 인덱스 상수를 어드레스로 이용하여 디코딩 참조 테이블(345)로부터 데이터를 추출하고 제3 MUX(320)로 송신하다.
데이터 결합부(53)은 제3 MUX(360)로부터 데이터를 수신하고, 수신한 데이터들을 결합하여 데이터 송신부(40)로 전송한다.
디코딩 처리부(30)가 포함하는 각 부에 대한 기능을 설명하기 위해, 디코딩 처리부(30)가 데이터 버스(10)를 통해 수신한 데이터를 제1 입력 데이터, 제2 입력 데이터, 제3 입력 데이터, 제4 입력 데이터(도 1에서 인코딩 처리부(30)가 송신한 출력 데이터에 해당)라 하고, 각 입력 데이터는 상위 필드에 해당하는 첨부 데이터와, 하위 필드에 해당하는 분할 데이터를 포함한다. 또한 각각의 분할 데이터에 대해 디코딩 처리한 데이터를 디코딩 분할 데이터라고 한다. 즉 디코딩 제1 분할 데이터, 디코딩 제2 분할 데이터, 디코딩 제3 분할 데이터, 디코딩 제4 분할 데이터라 한다.
현재 시점에서, 디코딩 처리부(30)는 제1 입력 데이터를 수신하여 이미 디코딩 처리하였고, 제2 입력 데이터를 수신하였다고 가정하며,
메모리부(370, 380)는 복수의 메모리를 포함할 수 있고, 일반적으로 2개의 제1 메모리부(370)와 제2 메모리부(380)를 포함한다. 제1 메모리부(370)은 데이터 버스를 통해 수신된 제1 입력 데이터를 저장한다. 그리고 제2 메모리부(380)은 기 처리된 디코딩 제1 분할 데이터를 저장한다.
디코딩 비교부(330)은 제1 메모리부(370)으로부터 제1 첨부 데이터를 수신받고, 제2 입력 데이터로부터 추출된 제2 첨부 데이터를 수신한다. 디코딩 비교부(330)는 수신된 두 데이터를 상호 대응하는 위치별 비트를 서로 비교하여 일치하면 0을 출력하고, 일치하지 않으면 1을 출력한다. 디코딩 비교부(330)가 0값을 출력했다는 것은 제2 입력 데이터가 인코딩 처리되지 않은 데이터임을 나타내고, 1값을 출력했다는 것은 제2 입력 데이터가 인코딩 처리된 데이터임을 나타낸다. 디코딩 비교부(330)에서 출력된 값은 제3 MUX(360)와, 디코딩 변환부(340)와, 인덱스 산출부(350)의 입력 변수로 사용되어진다.
디코딩 비교부(330)가 0값을 출력한 경우, 제3 MUX(320)은 제2 입력 데이터로부터 추출된 제2 분할 데이터를 입력받아 데이터 결합부(53)로 송신한다.
디코딩 비교부(330)가 1값을 출력한 경우, 인덱스 산출부(350)는 제1 메모리부(370)으로부터 제1 입력 데이터를, 데이터 버스(10)로부터 제2 입력 데이터를, 제2 메모리부(380)로부터 디코딩 제1 분할 데이터를 수신받아, 이 3개의 입력 데이터를 기초로 인덱스 상수을 산출하여 디코딩 변환부(340)로 전송한다.
디코딩 변환부(340)는 인덱스 산출부(350)로부터 인덱스 상수을 수신하여, 이 인덱스 상수를 어드레스로 이용하여 디코딩 참조 테이블(345)로부터 디코딩 제2 분할 데이터를 산출하여 제3 MUX(360)에 전송한다.
데이터 결합부(53)는 제3 MUX(360)로부터 디코딩 제1 분할 데이터에서 디코 딩 제4 분할 데이터를 모두 수신하고 이들을 결합하여 데이터 송신부(40)로 전달한다.
데이터 송신부(40)는 데이터 수신부(20)가 송신하려고 했던 원본 데이터를 외부 블록으로 전송하게 된다.
따라서 본 발명에 따른 데이터 처리 장치에서 외부 블록이 상대 외부 블록으로 데이터를 전송할 때 데이터 버스(10)에 의해 소비되는 전력을 최소화할 수 있다.
비록 본 발명의 몇몇 실시예들이 도시되고 설명되었지만, 본 발명에 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 본 실시예를 변형할 수 있음을 알 수 있을 것이다. 발명의 범위는 첨부된 청구항과 그 균등물에 의해 정해질 것이다.
이상 설명한 바와 같이, 본 발명에 따르면 데이터 처리 장치는 기능 블록이 상대 기능 블록으로 데이터 버스를 통해 데이터를 전송할 때 데이터 버스에 의해 소비되는 전력을 최소화할 수 있는 인코딩 기능과 디코딩 기능을 제공한다.

Claims (5)

  1. 데이터 버스를 통해 비트 데이터를 송수신하는 데이터 처리 장치에 있어서,
    외부 블록으로부터 상기 비트 데이터를 순차적으로 수신하는 데이터 수신부와;
    상기 데이터 수신부로부터 수신된 현재 비트 데이터와 기 처리된 이전 비트 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치하지 않는 오차 비트 개수가 기준 오차 비트 개수보다 큰 경우, 상기 오차 비트 개수가 상기 기준 오차 비트 개수 이하가 되도록 상기 현재 비트 데이터를 변환하고 상기 데이터 버스로 송신하는 인코딩 처리부를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 현재 비트 데이터는 상기 데이터 수신부를 통해 수신된 수신 데이터와 상기 현재 비트 데이터의 변환 여부 정보를 포함하는 첨부데이터 중 적어도 하나를 포함하고,
    상기 인코딩 처리부는 상기 이전 비트 데이터에서 상기 수신 데이터에 대응하는 비트를 추출한 추출 데이터와, 상기 수신 데이터를 상호 대응하는 위치의 비트별로 비교하는 인코딩 비교부를 포함하는 것을 특징으로 하는 데이터 처리 장치
  3. 제2항에 있어서,
    상기 인코딩 처리부는 상기 오차 비트 개수가 상기 기준 오차 비트 개수보다 커서 상기 현재 비트 데이터를 변환 처리해야 할 경우, 상기 현재 비트 데이터에 대한 상기 첨부 데이터와 상기 수신 데이터를 저장하는 인코딩 참조 테이블을 포함하여, 상기 인코딩 비교부의 결과값에 따라 상기 인코딩 참조 테이블로부터 상기 첨부 데이터와 상기 수신 데이터를 출력하는 인코딩 변환부를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  4. 데이터 버스를 통해 비트 데이터를 송수신하는 데이터 처리 장치에 있어서,
    외부 블록으로 상기 비트 데이터를 순차적으로 송신되는 데이터 송신부와;
    상기 데이터 송신부를 통해 상기 외부 블록으로 전송될 현재 실효 데이터와 상기 현재 실효 데이터의 변환 여부 정보를 갖는 현재 첨부 데이터를 포함하는 현재 수신 데이터를 상기 데이터 버스로부터 수신하고, 상기 현재 첨부 데이터와 기 수신된 이전 수신 데이터에서 상기 현재 첨부 데이터에 해당하는 부분을 추출한 이전 첨부 데이터를 상호 대응하는 위치의 비트별로 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 상기 현재 실효 데이터를 복원하여 상기 데이터 송신부로 전송하는 디코딩 처리부를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  5. 제4항에 있어서,
    상기 디코딩 처리부는 상기 데이터 버스로부터 변환되어 수신된 상기 변환된 현재 실효 데이터에 대한 복원된 현재 실효 데이터를 저장하는 디코딩 참조 테이블 을 포함하고, 상기 현재 실효 데이터가 변환된 것으로 판단된 경우, 상기 현재 수신 데이터와, 상기 이전 수신 데이터와, 상기 이전 수신 데이터에서 상기 이전 첨부 데이터를 뺀 이전 실효 데이터에 기초하여 인덱스상수를 생성하고, 상기 인덱스상수에 기초하여, 상기 디코딩 참조 테이블에서 복원한 현재 실효 데이터를 추출하여 상기 데이터 송신부로 송출하는 것을 특징으로 하는 데이터 처리 장치.
KR1020060009744A 2006-02-01 2006-02-01 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치 KR20070079205A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060009744A KR20070079205A (ko) 2006-02-01 2006-02-01 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060009744A KR20070079205A (ko) 2006-02-01 2006-02-01 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치

Publications (1)

Publication Number Publication Date
KR20070079205A true KR20070079205A (ko) 2007-08-06

Family

ID=38599891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060009744A KR20070079205A (ko) 2006-02-01 2006-02-01 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치

Country Status (1)

Country Link
KR (1) KR20070079205A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226344B1 (ko) * 2010-12-22 2013-01-24 한양대학교 산학협력단 데이터 전송 시스템 및 그 구동방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226344B1 (ko) * 2010-12-22 2013-01-24 한양대학교 산학협력단 데이터 전송 시스템 및 그 구동방법

Similar Documents

Publication Publication Date Title
US6848018B2 (en) Method employed by a base station for transferring data
CN108777606B (zh) 解码方法、设备及可读存储介质
KR102357899B1 (ko) 유효 인코딩을 위한 방법 및 장치
KR20110111108A (ko) 반도체 장치 및 이의 복호 방법
US20100138573A1 (en) System including transmitter and receiver
US9977852B2 (en) Application specific integrated circuit interconnect
JPS61212920A (ja) データ圧縮方法およびコード化された圧縮データの受信方法
CN108737021A (zh) Polar码传输方法及装置
KR100969748B1 (ko) 직렬 통신 시스템에서 직렬 데이터의 송수신 방법 및 장치와 이를 위한 직렬 통신 시스템
WO2014139454A1 (en) System and method for multi-stream compression and decompression
Ramprasad et al. Information-theoretic bounds on average signal transition activity [VLSI systems]
US11095484B2 (en) Differential signal processing device using advanced braid clock signaling
KR20070079205A (ko) 인코딩/디코딩 기능을 갖는 데이터 버스를 포함하는 데이터처리 장치
US20190317548A1 (en) High performance clock domain crossing fifo
US20230144599A1 (en) Application specific integrated circuit interconnect
WO2019242180A1 (zh) 解码方法、设备及可读存储介质
KR20230050256A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
CN117897697A (zh) 用于芯片到芯片接口的按需分组化
WO2004025700A2 (en) Programmable serial interface for a semiconductor circuit
CN111832257B (zh) 编码数据的条件转码
KR101370606B1 (ko) 스위칭 횟수 및 크로스톡 지연을 최소화한 버스 인코딩 장치
US6765510B2 (en) Entropy encoder/decoder
GB2608030A (en) Power-aware transmission of quantum control signals
KR102066210B1 (ko) 머신러닝을 이용하여 최적의 망품질에 따른 지능형 순방향 오류 정정 송수신 구현 방법
US9521016B2 (en) Data transmission apparatus and method for transmitting data in delay-insensitive data transmission method supporting handshake protocol

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination