KR100681944B1 - 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법 - Google Patents

병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법 Download PDF

Info

Publication number
KR100681944B1
KR100681944B1 KR1020050108840A KR20050108840A KR100681944B1 KR 100681944 B1 KR100681944 B1 KR 100681944B1 KR 1020050108840 A KR1020050108840 A KR 1020050108840A KR 20050108840 A KR20050108840 A KR 20050108840A KR 100681944 B1 KR100681944 B1 KR 100681944B1
Authority
KR
South Korea
Prior art keywords
data
encoding
bits
group
difference
Prior art date
Application number
KR1020050108840A
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 KR1020050108840A priority Critical patent/KR100681944B1/ko
Application granted granted Critical
Publication of KR100681944B1 publication Critical patent/KR100681944B1/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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1675Miscellaneous details related to the relative movement between the different enclosures or enclosure parts
    • G06F1/1683Miscellaneous details related to the relative movement between the different enclosures or enclosure parts for the transmission of signal or power between the different housings, e.g. details of wired or wireless communication, passage of cabling

Landscapes

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

Abstract

본 발명은 병렬 데이터 전송(Parallel Data Transmission)에 관한 것으로, 이를 위하여 본 발명은, 싱글 엔디드(single-ended) 방식으로 병렬 데이터 전송 시 n(1〈n인 자연수)개의 데이터 모두를 반전 인코딩하여 전송하는 종래 방법과는 달리, 전송단으로부터 수신단으로 싱글 엔디드 방식에 따른 병렬 데이터 전송 시 전송되는 k(1〈k인 자연수)개의 데이터 집합들을 포함하고, 상기 데이터 집합들 중 하나의 데이터 집합은 데이터 비트만을 포함하며, 데이터 집합들 중 다른 데이터 집합들은 데이터 비트와 플래그(flag) 비트를 포함할 때, 모든 플래그 비트를 특정 값으로 초기화하고, 데이터 비트만을 포함하는 하나의 데이터 집합은 해당 핀들을 통해 원래 데이터를 출력하며, 데이터 집합들이 집합1부터 집합k로 구성되고, 이들 중 데이터 비트만을 포함하는 하나의 데이터 집합을 상기 집합k라고 할 경우 임의의 i(1≤i〈k인 자연수)에 대해 집합i의 0과 1의 개수 차이와 인코딩된 집합i+1 내지 인코딩된 집합k-1 및 집합k의 총 0과 1의 개수 차이에 따라 집합i의 반전 인코딩을 수행함으로써, 최종 0과 1의 개수 차이를 최소로 줄여 스위칭 잡음을 최소화할 수 있는 것이다.
싱글 엔디드 방식, 병렬 데이터 전송, 플래그

Description

병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법{SEGMENTED GROUP INVERSION ENCODING METHOD FOR PARALLEL DSTA TRANSMISSION}
도 1은 종래의 n 비트 싱글 엔디드 병렬 데이터 전송 방식을 나타낸 도면,
도 2는 종래의 반전 코딩 방식을 이용한 n 비트 싱글 엔디드 병렬 데이터 전송 방식을 나타낸 도면,
도 3은 본 발명에 따라 분할된 집합 반전 인코딩을 이용한 병렬 데이터 전송 방식을 나타낸 도면,
도 4는 본 발명에 따라 두 개의 집합 a와 b가 있을 경우 집합 b를 반전 코딩하는 방식을 나타낸 도면,
도 5는 본 발명에 따라 G4를 집합 반전 코딩한 결과를 나타낸 도면,
도 6은 본 발명에 따라 G3의 집합 반전 코딩한 결과를 나타낸 도면,
도 7은 본 발명에 따라 G2의 집합 반전 코딩한 결과를 나타낸 도면,
도 8은 본 발명에 따라 G1의 집합 반전 코딩한 결과를 나타낸 도면,
도 9는 본 발명에 따라 32비트 데이터까지의 최적화된 조합들을 나타낸 도면,
도 10은 본 발명에 따라 최종 전류 차이 2를 제거하는 병렬 데이터 전송 방 식을 나타낸 도면.
본 발명은 병렬 데이터 전송에 관한 것으로, 더욱 상세하게는 병렬 데이터 전송을 위해 집합 반전 인코딩 방식으로 최종 전류 차이를 감소시키는데 적합한 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법에 관한 것이다.
잘 알려진 바와 같이, 집적 회로 공정이 비약적으로 발달함에 따라 내부 디지털 회로의 동작 속도 또한 증가하면서 시스템의 성능은 칩(chip) 간 데이터 최대 전송 속도에 의해 제한되고 있다.
일반적인 PCB 보드상의 시스템에서 데이터 전송 양을 늘리기 위해서는 여러 개의 입출력 라인을 이용하여 데이터를 전송하는 병렬 전송 방식을 이용하는데, 라인 수를 감소시키기 위해 하나의 채널 당 하나의 라인을 사용하는 싱글 엔디드(single-ended) 병렬 데이터 전송을 이용한다.
이러한 싱글 엔디드 병렬 데이터 전송의 가장 큰 문제점은 많은 핀(pin)을 이용하여 데이터 전송을 할 경우 스위칭 잡음(switching noise)의 크기가 입출력 라인의 수에 비례하여 증가하는 데 있다. 그리고, 고속 동작을 위해서는 데이터 전송 속도와 입출력 라인의 수를 증가시켜야 하지만 스위칭 잡음으로 인한 한계로 인해 데이터 전송 속도가 제한되는 문제점이 있었다.
일 예로서, 도 1은 종래의 n 비트 싱글 엔디드 병렬 데이터 전송 방식을 나 타낸 도면이다. 이러한 도면을 통해 병렬 데이터 전송 방법에 대해 설명한다.
도 1을 참조하면, n개의 비트는 데이터 전송 시에 각각 0(low) 또는 1(high)의 값을 가질 수 있는데, 데이터가 1인 경우 VDD로부터 데이터 출력 라인으로 전류가 흐르며, 0인 경우에는 출력 라인으로부터 VSS로 전류가 흐른다.
여기에서, 시스템이 2Gb/s/pin의 전송 속도로 동작하고, 하나의 출력 라인에 흐르는 전류를 대략 10mA이며, n=6, VDD 및 VSS에 연결된 인덕터(inductor)가 1nH의 순 인덕턴스(net inductance)의 값을 갖는다고 가정할 경우 스위칭 잡음의 값을 계산하기 위한 VDDi의 최대 전압 하강 및 VSSi의 최대 전압 상승 값을 계산하면, 인덕터 양단에 순간적으로 걸리는 전압은 시간에 따른 전류의 변화(di/dt)와 비례하는데 최대 전압 변화는 n개의 데이터가 모두 0에서 1로 또는 1에서 0으로 변화(transition)하는 경우에 발생한다(Switching noise = L(di/dt) = (1nH)(16*10mA/0.5ns) = 0.32V).
즉, 내부 공급 전압 노드(node)가 0.32V까지 변할 수 있으므로 데이터의 마진(margin)이 심각하게 감소하여 수신단(receiver)에서 복원이 불가능하게 된다. 이를 가능하게 하기 위해서는 파워핀의 숫자를 증가시켜 L값을 감소시키거나 또는 10mA의 전류를 감소시켜야 하지만, L값을 감소시키기 위해 파워 핀 수를 증가시키는 것에는 한계가 있기 때문에 큰 효과를 기대하기 어렵고, 전류를 감소시키는 방법은 동작 속도 및 안정성에 문제가 발생할 여지를 안고 있다. 이러한 문제로 인해 종래 방식의 병렬 데이터 전송은 전송 속도가 증가할수록 증가하는 스위칭 때문에 최대 전송 속도의 제한을 받는 문제점이 있었다.
이에 따라, 반전 코딩(inversion coding) 방식을 이용한 병렬 데이터 전송 방법을 시도하게 되었는데, 도 2는 종래의 반전 코딩 방식을 이용한 n 비트 싱글 엔디드 병렬 데이터 전송 방식을 나타낸 도면으로, 이러한 도면을 통해 반전 코딩 방식의 병렬 데이터 전송 방법에 대해 설명한다.
도 2를 참조하면, 플래그(flag)는 처음에 0으로 초기화된 상태이며 현재의 n 비트 데이터를 이전 시간에 전송하였던 n 비트 데이터와 비교하여 0에서 1로 또는 1에서 0으로 변화하는 비트수가 n/2보다 클 경우 '플래그=1'로 하여 n개의 데이터 모두를 반전시켜 보내는 코딩 방법이다.
이러한 방법을 이용할 경우 변화하는 최대 핀 수는 n/2가 되므로 최대 스위칭 잡음을 절반으로 감소시킬 수 있다. 하지만, 스위칭 잡음을 감소시키는 근본적인 해결 방법이 아니므로 전송 속도가 증가하거나 혹은 병렬 채널 숫자가 커져 n이 증가하면 스위칭 잡음을 감소시키는데 한계가 있는 실정이다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위한 것으로, 싱글 엔디드 방식으로 병렬 데이터를 전송할 경우 분할된 반전 인코딩을 통해 스위칭 잡음을 감소시켜 고속의 데이터 전송을 수행할 수 있는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 전송단으로부터 수신단으로 싱글 엔디드 방식에 따른 병렬 데이터 전송 시 분할된 집합 반전 인코딩하는 방법으로 서, 상기 전송단으로부터 상기 수신단으로 전송되는 k(1〈k인 자연수)개의 데이터 집합들을 포함하고, 상기 데이터 집합들 중 하나의 데이터 집합은 데이터 비트만을 포함하며, 상기 데이터 집합들 중 다른 데이터 집합들은 상기 데이터 비트와 플래그 비트를 포함할 때, 모든 플래그 비트를 특정 값으로 초기화하는 제 1 과정과, 상기 데이터 비트만을 포함하는 상기 하나의 데이터 집합은 해당 핀들을 통해 원래 데이터를 출력하는 제 2 과정과, 상기 데이터 집합들이 집합1부터 집합k로 구성되고, 이들 중 상기 데이터 비트만을 포함하는 상기 하나의 데이터 집합을 상기 집합k라고 할 경우 임의의 i(1≤i〈k인 자연수)에 대해 집합i의 0과 1의 개수 차이와 인코딩된 집합i+1 내지 인코딩된 집합k-1 및 집합k의 총 0과 1의 개수 차이에 따라 상기 집합i의 반전 인코딩을 수행하는 제 3 과정을 포함하는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법을 제공한다.
본 발명의 상기 및 기타 목적과 여러 가지 장점은 이 기술분야에 숙련된 사람들에 의해 첨부된 도면을 참조하여 하기에 기술되는 본 발명의 바람직한 실시 예로부터 더욱 명확하게 될 것이다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세하게 설명한다.
본 발명의 핵심 기술요지는, 싱글 엔디드 방식으로 병렬 데이터 전송 시 n(1〈n인 자연수)개의 데이터 모두를 반전 인코딩하여 전송하는 종래 방법과는 달리, 전송단으로부터 수신단으로 싱글 엔디드 방식에 따른 병렬 데이터 전송 시 전송되는 k(1〈k인 자연수)개의 데이터 집합들을 포함하고, 상기 데이터 집합들 중 하나의 데이터 집합은 데이터 비트만을 포함하며, 데이터 집합들 중 다른 데이터 집합들은 데이터 비트와 플래그 비트를 포함할 때, 모든 플래그 비트를 특정 값으로 초기화하고, 데이터 비트만을 포함하는 하나의 데이터 집합은 해당 핀들을 통해 원래 데이터를 출력하며, 데이터 집합들이 집합1부터 집합k로 구성되고, 이들 중 데이터 비트만을 포함하는 하나의 데이터 집합을 상기 집합k라고 할 경우 임의의 i(1≤i〈k인 자연수)에 대해 집합i의 0과 1의 개수 차이와 인코딩된 집합i+1 내지 인코딩된 집합k-1 및 집합k의 총 0과 1의 개수 차이에 따라 집합i의 반전 인코딩을 수행한다는 것으로, 이러한 기술적 수단을 통해 본 발명에서 목적으로 하는 바를 쉽게 달성할 수 있다.
도 3은 본 발명에 따라 분할된 집합 반전 인코딩을 이용한 병렬 데이터 전송 방식을 나타낸 도면으로, 이러한 도면을 통해 병렬 데이터 전송 방법에 대해 설명한다.
도 3을 참조하면, 송신단(Transmitter)과 수신단(Receiver) 사이에 전체 n개의 핀은 k개의 집합(G : group)으로 나뉘어져 있고, 집합1(G1)부터 집합k-1(Gk-1)까지는 플래그 핀을 추가로 각각 하나씩 포함하고 있다. 여기에서, n1부터 nk는 모두 짝수이다. 또한, 각 집합i(Gi)의 플래그i(flagi)는 해당 집합i(Gi) 내의 ni개 데이터의 반전(inversion) 유무 상태를 나타낸다. 여기에서, k는 1〈k인 자연수이고, i는 1≤i〈k인 자연수이며, n은 1〈n인 자연수이다.
즉, '플래그i=1' 일 경우 해당 ni개 데이터의 0과 1값이 모두 원래 값의 반대로 나타남을 의미한다. 여기에서, n1부터 nk-1은 짝수이며, 모두 각각 하나씩의 플래그 비트를 가지고 있기 때문에 집합k(Gk)를 제외한 집합1(G1)부터 집합k-1(Gk-1)까지의 핀 수는 홀수가 된다.
한편, 병렬 데이터 전송을 위한 분할된 집합 반전 코딩 방식에 대해 설명하면, 첫째, 모든 플래그 비트는 특정 값(예를 들면, 0, 1 등)으로 초기화하고, 둘째, 집합k(Gk)의 nk개의 핀은 별도의 코딩없이 원래 데이터를 출력한다.
셋째, 집합k-1의 경우 집합k와 집합k-1을 합했을 때의 0과 1의 개수의 차이가 집합k-1의 반전 여부에 따라 두 가지 경우 중에 작아지는 방식으로 반전 코딩을 수행한다. 이 때, 첫 번째 단계에서 플래그 비트가 0으로 초기화된 경우 반전을 수행하면 플래그 비트는 1이 되고, 반전을 수행하지 않은 경우 0으로 남겨 둔다. 그리고, 집합k-1의 핀 수는 플래그를 포함하여 홀수이므로 결국 집합k-1과 집합k 모두를 합했을 때의 0과 1의 개수 차이는 집합k에서의 0과 1의 차이와 반드시 다른 값을 가진다.
넷째, 집합k-2의 경우 상술한 바와 같이 집합k와 반전 인코딩이 적용된 집합k- 1 및 집합k-2를 합했을 때의 0과 1의 개수 차이가 집합k-2의 반전 여부에 따라 두가지 경우 중에 작아지는 방식으로 반전 코딩을 수행한다.
다섯째, 집합k-3 내지 집합1에서의 경우도 상술한 바와 같은 방식으로 반전 코딩을 수행한다.
일 예로서, 도 4는 본 발명에 따라 두 개의 집합 a와 집합 b가 있을 경우 집합 b를 반전 코딩하는 방식을 나타낸 도면으로, 집합 a에서 0과 1의 개수 차이가 1이라고 하고, 집합 b의 핀 수가 3(즉, 2개의 데이터와 1개의 플래그 비트)일 경우 집합 b의 반전 코딩을 수행한 후의 결과를 나타낸다. 여기에서, 집합 반전 코딩을 수행한 결과 모든 경우에서 최종 0과 1의 차이는 '2'임을 알 수 있다.
이러한 방식으로 집합 반전 코딩을 수행하여 n1 내지 nk의 숫자를 효과적으로 정할 경우 최종적으로 0과 1의 차이가 최소가 되는 최적 조합을 얻을 수 있다.
일 예로서, 16 비트 이진 데이터의 전송에 대한 인코딩의 경우 다섯 개의 집합(즉, 집합1(G1), 집합2(G2), 집합3(G3), 집합4(G4) 및 집합5(G5))으로 나뉘고, 최적 조합은 n1, n2, n3, n4 및 n5의 값이 각각 2, 2, 4, 4 및 4가 된다. 다음에, 이러한 인코딩 과정을 도 5 내지 도 8을 통해 설명한다.
도 5는 본 발명에 따라 G4의 집합 반전 코딩한 결과를 나타낸 도면으로, n4와 플래그4를 집합 반전 코딩한 결과 n5를 포함한 0과 1의 개수 차이 중 최대의 경우를 표시하고 있는데, 이의 최대 차이는 '5'임을 알 수 있다. 또한, 도 6은 본 발 명에 따라 G3의 집합 반전 코딩한 결과를 나타낸 도면으로, 도 5의 결과를 바탕으로 n3의 집합 반전 코딩 최대 차이를 나타내는 조합을 표시하고 있는데, n3까지의 코딩 결과 최대 0과 1의 차이는 '4'가 됨을 알 수 있다.
그리고, 도 7은 본 발명에 따라 G2의 집합 반전 코딩한 결과를 나타낸 도면으로, 도 6의 결과를 바탕으로 n2의 경우 최대 0과 1의 차이는 '3'이 됨을 알 수 있고, 도 8은 본 발명에 따라 G1의 집합 반전 코딩한 결과를 나타낸 도면으로, 도 7의 결과를 바탕으로 n1의 경우 최종 0과 1의 차이는 최대 '2'가 되며, 이러한 값은 집합 반전으로 달성할 수 있는 최소값에 해당하는 것을 의미한다.
다음에, 최적 조합을 도출하기 위해 다수의 비트들을 포함하는 집합들에 대한 인코딩 과정에 대해 설명한다.
먼저, 최적 조합을 도출하기 위한 다음의 수학식 1 과 같은 연산자를 정의한다.
Figure 112005065475916-pat00001
[x][y]
여기에서, [x]는 x-비트 데이터를 구성하는 0과 1 개수의 차이를 의미하고,
Figure 112005065475916-pat00002
는 데이터 차이들의 누적연산을 의미한다. 인코딩 과정을 수행한 최종 결과로서, 0 또는 2의 차이를 도출하여야 하므로, 플래그 비트들을 포함하는 전체 비트들의 수는 짝수가 되어야 한다. 그런데, n1, n2, n3, ...,nk-1, nk 중 n1, n2, n3, ...,nk-1까 지는 짝수라고 가정하였으므로 전체 비트의 숫자가 짝수가 되기 위해서는 k가 짝수일 때, nk는 홀수이거나 k가 홀수일 때, nk는 짝수인 경우 중 어느 하나가 된다. 다음에, k가 짝수일 경우와 홀수인 경우의 두 가지 경우에 대한 최적 조합을 유도하는 과정을 상세하게 후술한다. 또한, n은 임의의 i(1 <= i < k)에 대해 ni >= 2 이거나 혹은 임의의 i(2 <= i < k)에 대해 ni >= ni-1의 조건을 만족해야만 한다.
첫 번째로, k가 짝수일 경우, nk는 홀수인 경우에서는 첫 번째 인코딩 과정으로 Gk-1에 대한 반전 인코딩을 수행하는데, Gk에 대한 누적 연산된 차이는 아래의 수학식 2에 의해 산출된다.
Figure 112005065475916-pat00003
[nk][nk -1+1]≤M(nk-1, nk -1)
여기에서, 함수 M(a, b)은 a와 b 중에 더 큰 수를 출력하는 함수이고, Gk-1에서의 플래그 비트는 nk-1+1과 같이 nk-1에 1을 더하여 표현되었다. 왼쪽 연산식의 두 피연산자(즉, [nk], [nk-1+1])는 홀수 차이를 갖는 홀수들이고, 이에 따라 누적 연산 후 최대 가능 차이는 반전 인코딩에 의해 최소한 하나는 감소하게 되므로 왼쪽 연산식의 두 피연산자 중 더 큰 수에서 1을 뺀 수가 된다. 또한, 이러한 첫 번째 인코딩 과정의 결과는 짝수가 된다.
다음에, 두 번째 인코딩 과정으로 Gk-2의 반전 인코딩을 수행하는데, 전체 누 적 연산된 차이는 아래의 수학식 3에 의해 산출된다.
Figure 112005065475916-pat00004
Figure 112005065475916-pat00005
([nk][nk -1+1])[nk -2+1]≤M(M(nk-1, nk -1)-1, nk -2+1)
여기에서, 첫 번째 인코딩 과정이 홀수들 사이에서 수행되는 반면, 두 번째 인코딩 과정은 짝수와 홀수 사이에서 수행된다. 최대 차이가 첫 번째 연산의 결과에 의해 결정되는 경우엔 그 연산 결과에서 1을 삔 수가 되고, 최대 차이가 마지막 피연산자 nk-2+1값에 의해 결정되는 경우에는 첫 번째 인코딩 과정의 결과로 그 차이가 만약 0이 된 경우 두 번째 인코딩 과정의 결과에서는 최대 차이가 두 번째 피연산자인 nk-2+1 자체가 될 수 있다. 또한, 상기한 수학식 3의 결과가 홀수이므로 다음 인코딩 과정의 결과는 첫 번째 인코딩 과정과 같이 홀수들 사이에서 수행된다.
이와 같이, 단계별 인코딩 과정을 수행한 후 마지막 인코딩 과정에 따른 누적 연산된 차이는 수학식 4에 의해 산출된다.
Figure 112005065475916-pat00006
Figure 112005065475916-pat00007
Figure 112005065475916-pat00008
Figure 112005065475916-pat00009
Figure 112005065475916-pat00010
Figure 112005065475916-pat00011
((···(([nk][nk -1+1])[nk -2+1])···[n3+1])[n2+1])[n1+1]
≤M(M(M(···(M(M(nk-1, nk-1)-1, nk-2+1)-1···n3)-1, n2+1), n1)
여기에서, 가장 작은 수의 그룹들에 대한 최적 조합을 도출하기 위해 다음과 같은 조건을 가정한다.
n1≤n2≤n3≤···nk-3≤nk-3≤nk-1
이에 따라, 상기한 수학식 4의 오른쪽 연산식은 2가 되고, n1∼nk-1의 최적화된 수들은 다음과 같이 얻어진다.
n1, n2, n3, n4, n5, n6, n7, n8, n9, ··· = 2, 2, 4, 4, 6, 6, 8, 8, 10, ···
이와 같이, 짝수가 두 번씩 반복되어 증가하는 방식으로 산출된다.
이러한 조건을 만족하기 위해서는 상기한 수학식 1로부터 nk에 대한 추가적인 조건이 주어지는데, 상기한 n1∼nk-1의 최적화된 수들에 의해 첫 번째 인코딩 과정에서의 M함수는 nk-1에 의해 결정되어야 함을 알 수 있다. 결론적으로, 다음과 같은 수학식 6을 도출할 수 있다.
nk≤nk-1+1
두 번째로, k가 홀수일 경우, nk는 짝수인 경우에서는 첫 번째 인코딩 과정의 결과는 다음의 수학식 7에 의해 산출된다.
Figure 112005065475916-pat00012
[nk][nk -1+1]≤M(nk-1, nk -1+1)
여기에서, nk는 짝수이고, nk-1+1은 홀수이므로 누적 연산 후 최대 가능한 차 이는 nk의 수보다 작은 값이거나 [nk]가 0이라면 nk-1+1 자체가 된다.
두 번째 인코딩 과정은 두 개의 홀수들 사이에 대한 누적 연산이고, 이러한 결과는 다음의 수학식 8과 같다.
Figure 112005065475916-pat00013
Figure 112005065475916-pat00014
([nk][nk -1+1])[nk -2+1]≤M(M(nk-1, nk -1+1)-1, nk -2)
이에 따라, 상기한 수학식 8의 연산 결과는 두 개의 홀수들 사이의 연산이므로 짝수가 된다. 따라서, 다음 인코딩 과정은 첫 번째 인코딩 과정과 같이 짝수와 홀수들의 사이에서 수행되고, 단계별 인코딩 과정을 수행한 후 마지막 인코딩 과정에 따른 누적 연산된 차이는 수학식 9에 의해 산출된다.
Figure 112005065475916-pat00015
Figure 112005065475916-pat00016
Figure 112005065475916-pat00017
Figure 112005065475916-pat00018
Figure 112005065475916-pat00019
Figure 112005065475916-pat00020
((···(([nk][nk -1+1])[nk -2+1])···[n3+1])[n2+1])[n1+1]
≤M(M(M(···(M(M(nk-1, nk-1+1)-1, nk-2)-1···n3)-1, n2+1), n1)
이에 따라, k가 짝수일 때, nk는 홀수인 경우와 같이 상기한 수학식 9의 오른쪽 연산 결과는 2가 된다. 그래서, n1∼nk-1의 최적화된 수들은 상기한 수학식 9와 상기한 수학식 5에 따라 다음과 같이 됨을 알 수 있다.
n1, n2, n3, n4, n5, n6, n7, n8, n9, ··· = 2, 2, 4, 4, 6, 6, 8, 8, 10, ···
이와 같이, k가 짝수일 때, nk는 홀수인 경우와 같은 결과를 얻을 수 있다. 그리고, nk의 조건은 상기한 수학식 6과 같다. 여기에서, n은 임의의 i(1 <= i < k)에 대해 ni >= 2 이거나 혹은 임의의 i(2 <= i < k)에 대해 ni >= ni-1의 조건을 만족해야만 한다.
예를 들면, 16 비트 데이터에 대한 인코딩 과정에서는 n1, n2, n3, n4 = 2, 2, 4, 4가 되고, n5는 짝수 4가 된다. 따라서, k가 짝수일 때, nk는 홀수인 경우 n1∼nk-1의 최적화된 수들과 상기한 수학식 6으로부터 알 수 있거나 혹은 k가 홀수일 때, nk는 짝수인 경우 n1∼nk-1의 최적화된 수들과 상기한 수학식 10으로부터 알 수 있다. 여기에서, 도 9는 32비트 데이터까지의 최적화된 조합들을 나타낸다.
따라서, 상술한 바와 같은 과정을 통해 싱글 엔디드 병렬 데이터 전송 시 비트 수에 관계없이 스위칭 잡음을 최소화 할 수 있는 반전 코딩이 가능하고, 수신단(receiver)에서는 수신된 플래그의 결과에 따라 해당 집합의 데이터 반전 여부를 수행하여 복원할 수 있다.
한편, 도 10은 본 발명에 따라 최종 전류 차이 2를 제거하는 병렬 데이터 전송 방식을 나타낸 도면으로, 0과 1의 최종 차이 '2'를 제거하려 할 경우 추가적인 더미(dummy) 핀을 이용하여 차이가 '2'인 경우에 부족한 전류를 외부로 흘려주어 0과 1의 차이로 인한 영향을 효과적으로 제거할 수 있다.
이상의 설명에서는 본 발명의 바람직한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통 상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
이상 설명한 바와 같이 본 발명은, 싱글 엔디드 방식으로 병렬 데이터 전송 시 n(1〈n인 자연수)개의 데이터 모두를 반전 인코딩하여 전송하는 종래 방법과는 달리, 전송단으로부터 수신단으로 싱글 엔디드 방식에 따른 병렬 데이터 전송 시 전송되는 k(1〈k인 자연수)개의 데이터 집합들을 포함하고, 상기 데이터 집합들 중 하나의 데이터 집합은 데이터 비트만을 포함하며, 데이터 집합들 중 다른 데이터 집합들은 데이터 비트와 플래그 비트를 포함할 때, 모든 플래그 비트를 특정 값으로 초기화하고, 데이터 비트만을 포함하는 하나의 데이터 집합은 해당 핀들을 통해 원래 데이터를 출력하며, 데이터 집합들이 집합1부터 집합k로 구성되고, 이들 중 데이터 비트만을 포함하는 하나의 데이터 집합을 상기 집합k라고 할 경우 임의의 i(1≤i〈k인 자연수)에 대해 집합i의 0과 1의 개수 차이와 인코딩된 집합i+1 내지 인코딩된 집합k-1 및 집합k의 총 0과 1의 개수 차이에 따라 집합i의 반전 인코딩을 수행함으로써, 싱글 엔디드 병렬 데이터 전송 시 스위칭 잡음을 최소화하도록 반전 인코딩하여 고속 데이터 전송을 수행할 수 있다.

Claims (6)

  1. 전송단으로부터 수신단으로 싱글 엔디드 방식에 따른 병렬 데이터 전송 시 분할된 집합 반전 인코딩하는 방법으로서,
    상기 전송단으로부터 상기 수신단으로 전송되는 k(1〈k인 자연수)개의 데이터 집합들을 포함하고, 상기 데이터 집합들 중 하나의 데이터 집합은 데이터 비트만을 포함하며, 상기 데이터 집합들 중 다른 데이터 집합들은 상기 데이터 비트와 플래그 비트를 포함할 때, 모든 플래그 비트를 특정 값으로 초기화하는 제 1 과정과,
    상기 데이터 비트만을 포함하는 상기 하나의 데이터 집합은 해당 핀들을 통해 인코딩 없이 원래 데이터를 출력하는 제 2 과정과,
    상기 데이터 집합들이 집합1부터 집합k로 구성되고, 이들 중 상기 데이터 비트만을 포함하는 상기 하나의 데이터 집합을 상기 집합k라고 할 경우 임의의 i(1≤i〈k인 자연수)에 대해 집합i의 0과 1의 개수 차이와 인코딩된 집합i+1 내지 인코딩된 집합k-1 및 집합k의 총 0과 1의 개수 차이에 따라 상기 집합i의 반전 인코딩을 수행하는 제 3 과정
    을 포함하는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    상기 데이터 집합들의 해당 핀들 외에 더미 핀을 통해 상기 0과 1의 해당 차이만큼 전류를 출력하는 제 4과정을 더 포함하는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 집합들이 n1부터 nk개의 핀들을 각각 포함하는 집합1부터 집합k로 구성될 경우 상기 n1 내지 nk-1개의 핀들의 개수는, 짝수인 것을 특징으로 하는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법.
  4. 제 3 항에 있어서,
    상기 n의 조건은, 임의의 i(1 <= i < k)에 대해 ni >= 2 이거나 혹은 임의의 i(2 <= i < k)에 대해 ni >= ni-1 인 것을 특징으로 하는 병력 데이터 전송을 위한 분할된 반전 인코딩 방법.
  5. 제 1 항에 있어서,
    상기 플래그 비트의 0과 1의 값은, 해당 데이터 집합 내 데이터의 반전 유무 상태를 나타내는 것을 특징으로 하는 병력 데이터 전송을 위한 분할된 반전 인코딩 방법.
  6. 제 1 항에 있어서,
    상기 반전 인코딩은, 집합i의 플래그 비트와 데이터 비트가 상기 인코딩된 집합i+1 내지 상기 인코딩된 집합k-1 및 집합k까지의 0과 1의 개수 차이에 가산되어 최종 0과 1의 개수 차이가 감소하도록 수행되는 것을 특징으로 하는 병렬 데이터 전송을 위한 분할된 반전 인코딩 방법.
KR1020050108840A 2005-11-15 2005-11-15 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법 KR100681944B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050108840A KR100681944B1 (ko) 2005-11-15 2005-11-15 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050108840A KR100681944B1 (ko) 2005-11-15 2005-11-15 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법

Publications (1)

Publication Number Publication Date
KR100681944B1 true KR100681944B1 (ko) 2007-02-12

Family

ID=38106243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050108840A KR100681944B1 (ko) 2005-11-15 2005-11-15 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법

Country Status (1)

Country Link
KR (1) KR100681944B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000008406A (ko) * 1998-07-13 2000-02-07 이계철 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치
JP2001044847A (ja) 1999-05-21 2001-02-16 Nippon Telegr & Teleph Corp <Ntt> 可逆符号化方法、可逆復号化方法、これらの装置及びその各プログラム記録媒体
US6661355B2 (en) 2000-12-27 2003-12-09 Apple Computer, Inc. Methods and apparatus for constant-weight encoding & decoding
JP2005184042A (ja) 2003-12-15 2005-07-07 Sony Corp 画像復号装置及び画像復号方法並びに画像復号プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000008406A (ko) * 1998-07-13 2000-02-07 이계철 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치
JP2001044847A (ja) 1999-05-21 2001-02-16 Nippon Telegr & Teleph Corp <Ntt> 可逆符号化方法、可逆復号化方法、これらの装置及びその各プログラム記録媒体
US6661355B2 (en) 2000-12-27 2003-12-09 Apple Computer, Inc. Methods and apparatus for constant-weight encoding & decoding
JP2005184042A (ja) 2003-12-15 2005-07-07 Sony Corp 画像復号装置及び画像復号方法並びに画像復号プログラム

Similar Documents

Publication Publication Date Title
EP0344903A2 (en) Traversed (d, k) code translation
CN107294539B (zh) 一种准动态霍夫曼硬件编码器及编码方法
JPS5827238A (ja) ランレングス制限記号発生装置
JPH05244019A (ja) 畳み込み符号の簡易復号方法及び簡易復号回路
Samala et al. A Novel deep submicron bus coding for Low Energy
JP3416115B2 (ja) ランレングス制限コード化シーケンスへの2進シーケンスの可逆的マッピング方法及び装置
KR100681944B1 (ko) 병렬 데이터 전송을 위한 분할된 집합 반전 인코딩 방법
Chang et al. Bit-stuffing algorithms for crosstalk avoidance in high-speed switching
CN101228698B (zh) 4电平逻辑解码器以及解码4电平输入数据信号的方法
US7064683B1 (en) Speed optimized encoder with running disparity constraint
US8004430B2 (en) Coding scheme for serial data communications
JP3418595B2 (ja) 三値ディジタル回路
KR100946177B1 (ko) 데이터 송수신 장치 및 방법
CN105760329A (zh) 一种减少总线耦合翻转的编解码装置
Obulesu et al. Design and Implementation of Low-Power Memory-Less Crosstalk Avoidance Codes Using Bit-Stuffing Algorithms
JP3573978B2 (ja) 符号化方法、及び符号化装置
Sim Segmented group-inversion coding for parallel links
CN112953556A (zh) 基于斐波那契数列的抗串扰互联的编解码器及编码方法
US7158057B1 (en) Circuitry and methods for high speed data encoding
JP3589648B2 (ja) 半導体集積回路
Wadayama et al. Bounds on the Asymptotic Rate for Capacitive Crosstalk Avoidance Codes for On-Chip Buses
Kim et al. An 8B/10B encoder with a modified coding table
JP2011244212A (ja) ビット変換回路、転送ユニット、通信システム、ビット変換方法及びプログラム
RU2060593C1 (ru) Способ кодирования цифровой информации и устройство для его осуществления
Rokhani et al. Optimality of bus-invert coding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120105

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee