KR20100064442A - 버스 신호의 인코딩, 디코딩 방법 및 장치 - Google Patents

버스 신호의 인코딩, 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR20100064442A
KR20100064442A KR1020080122876A KR20080122876A KR20100064442A KR 20100064442 A KR20100064442 A KR 20100064442A KR 1020080122876 A KR1020080122876 A KR 1020080122876A KR 20080122876 A KR20080122876 A KR 20080122876A KR 20100064442 A KR20100064442 A KR 20100064442A
Authority
KR
South Korea
Prior art keywords
bus signal
signal
gray
bit
byte sequence
Prior art date
Application number
KR1020080122876A
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 KR1020080122876A priority Critical patent/KR20100064442A/ko
Priority to US12/566,496 priority patent/US8166219B2/en
Priority to JP2009224414A priority patent/JP4846836B2/ja
Publication of KR20100064442A publication Critical patent/KR20100064442A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dc Digital Transmission (AREA)

Abstract

본 발명은 마이크로프로세서 버스 신호를 전송하기 위해, 병렬 신호를 직렬 신호로 코딩하는 방법과 직렬 신호를 디코딩하는 방법에 관한 것으로, 버스 신호의 직렬화 전에 해당 버스 신호를 하드웨어적으로 코딩함으로써, 직렬화될 때 신호 변동 횟수가 증가하지 않도록 한다. 본 발명에 의해 직렬화된 버스 신호의 신호 변동을 줄일 수 있으므로, 데이터 통신의 전력 소모를 절감할 수 있다.
Figure P1020080122876
버스 신호, 직렬화, XOR 연산, 그레이 코딩, 인버팅

Description

버스 신호의 인코딩, 디코딩 방법 및 장치{Encoding/Decoding Method and Device Using The Same}
본 발명은 데이터 전송을 위한 신호의 코딩/디코딩 방법에 관한 것으로서, 더 구체적으로는, 마이크로프로세서 버스의 병렬 신호를 직렬 신호로 코딩하는 방법 및 직렬 신호를 병렬 신호로 디코딩하는 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제명: 초저전력 비동기 프로세서 개발].
대부분의 버스(Bus) 통신 규약들은 첫 번째 버스 싸이클에 전송/수신할 데이터의 목적지 주소(address) 정보를 전송하고 그 다음 버스 싸이클에 데이터를 전송/수신하는 통신 방식을 취한다. 이 통신 방식은 레지스터 파이프라인(pipeline) 형식으로 진행된다.
도 1은 통상적인 마이크로프로세서 버스의 데이터 전송 과정을 개략적으로 도시한 것이다.
주소 버스는 이어지는 주소 정보를 전송하는 경우가 대부분이다. 따라서, 각 사이클의 주소 정보 사이에는 상호 연관이 많으며, 도 1에 도시된 바와 같이, 연속 증가하거나 연속 감소하는 경우가 대부분이다. 도 1에서 A는 각 주소 정보 사이의 공통된 부분을 나타낸다.
이처럼 주소 버스의 신호들은 변동 횟수가 적지만, 이 주소 버스 신호들을 전송하기 위해 직렬화하면 상호 연관성이 깨져 버린다. 상호 연관성이 깨져버린 채로 직렬화된 버스 신호는 신호 변동(signal transition)이 크게 증가한다.
이는 데이터 버스의 경우도 마찬가지이다. 도 1의 주소 A에 대응하는 데이터인 Data0, 주소 A+1에 대응하는 데이터인 Data1 등, 데이터 버스의 경우도 주소 버스 신호와 같이 서로 연관성을 갖는 경우가 많다.
예를 들어, 다량의 데이터 전송이 필요한 영상이나, 음성 또는 동영상 등의 멀티미디어 데이터의 경우, 인접한 데이터들은 차이가 작거나 없는 경우가 대부분이다.
하지만, 이를 바로 직렬화하면, 주소 버스의 경우와 마찬가지로, 연관성이 깨지면서 신호 변동이 증가한다.
마이크로프로세서 외부의 신호 전송 시스템의 도선이나 신호 전송 경로는 반도체 내부의 도선에 비해 수천 ~ 수만 배까지 캐패시턴스(C)가 크기 때문에, 신호 변동 1회당 전력소모 역시 수천 ~ 수만 배까지 증가할 수 있다.
따라서, 버스 신호를 직렬화하여 전송하는 경우, 신호 변동수가 급격히 증가하지 않도록 하여 전력 소모가 증가하는 것을 억제하기 위한 방법이 필요하다.
본 발명은 마이크로프로세서 버스 신호를 전송할 때, 전력 소모의 증가를 방지하는 방법을 제시하고자 한다.
본 발명은 직력화된 버스 신호의 신호 변동을 줄이는 버스 신호의 코딩/디코딩 방법을 제시하고자 한다.
본 발명은 버스 신호의 코딩/디코딩을 더욱 용이하게 할 수 있는 방법을 제시하고자 한다.
본 발명은 버스 신호를 수신하는 단계, 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로(bitwise) XOR 연산하는 단계, XOR 연산된 버스 신호의 짝수 번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계 및 인버팅 된 버스 신호를 직렬화하는 단계를 포함하는 버스 신호 인코딩 방법을 제공한다.
본 발명에 따른 버스 신호 인코딩 방법에서는, XOR 연산 단계와 인버팅 단계 사이에, 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하는 단계를 더 포함할 수도 있다.
또한 본 발명에 따른 버스 신호 인버팅 방법에서는, 인버팅 단계와 직렬화 단계 사이에, 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하는 단계를 더 포함할 수도 있다.
본 발명은 또한, 직렬 버스 신호를 역직렬화하는 단계, 역직렬화된 신호의 짝수 번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계 및 인버팅된 신호의 첫번 째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산하는 단계를 포함하는, 버스 신호 디코딩 방법을 제공한다.
본 발명에 따른 버스 신호 디코딩 방법에서는, 역직렬화 단계와 인버팅 단계 사이에, 신호의 첫번째 바이트 시퀀스를 그레이 디코딩하는 단계를 더 포함할 수도 있다.
또한, 본 발명에 따른 버스 신호 디코딩 방법에서는, 인버팅 단계와 XOR 단계 사이에, 신호의 첫번째 바이트 시퀀스를 그레이 디코딩하는 단계를 더 포함할 수도 있다.
또한 본 발명은 버스 신호를 비트 단위로(bitwise) 연산하는 XOR 연산기, XOR 연산기에서 출력된 버스 신호를 비트 단위로 인버팅하는 인버터 및 인버터에서 출력된 버스 신호를 직렬화하는 직렬화기를 포함하며, XOR 연산기는 버스 신호의 첫번째 바이트 시퀀스를 제외한 바이트 시퀀스를 XOR 연산하며, 인버터는 버스 신호의 짝수번째 바이트 시퀀스를 인버팅 하는 것인, 버스 신호 인코더를 제공한다.
본 발명에 따른 버스 신호 인코더 그레이 인코더를 더 포함하여, 그레이 인코더가 XOR 연산기에서 출력된 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하여 상기 인버터에 전달하도록 해도 된다.
본 발명에 따른 버스 신호 인코더는 또한, 그레이 인코더를 더 포함하여, 그레이 인코더가 인버터에서 출력된 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하여 상기 직렬화기에 전달하도록 해도 된다.
아울러, 본 발명에 따른 버스 신호 인코더에서, 그레이 인코더는 첫번째 비 트의 연산 결과는 첫번째 비트값을 그대로 사용하고, 두번째 비트부터는 선행 비트의 연산 결과와 현재 비트를 XOR 연산하여 출력하는 XOR 체인으로 형성될 수도 있다.
또한, 본 발명에 따른 버스 신호 인코더에서 그레이 인코더는 룩업테이블로 형성될 수도 있다.
본 발명은 또한, 직렬 버스 신호를 역직렬화하는 역직렬화기, 역직렬화기에서 출력된 신호를 비트 단위로 인버팅하는 인버터 및 인버터에서 출력된 신호를 비트 단위로 연산하는 XOR 연산기를 포함하며, 인버터는 신호의 짝수번째 바이트 시퀀스를 인버팅하고, XOR 연산기는 신호의 첫번째 바이트 시퀀스를 제외한 바이트 시퀀스를 XOR 연산하는 것인, 버스 신호 디코더를 제공한다.
본 발명에 따른 버스 신호 디코더는, 그레이 디코더를 더 포함하여, 그레이 디코더가 역직렬화기에서 출력된 신호를 그레이 디코딩하여 인버터에 전달하도록 해도 된다.
또한 본 발명에 따른 버스 신호 디코더는, 그레이 디코더를 더 포함하여, 그레이 디코더가 인버터에서 출력된 신호를 그레이 디코딩하여 XOR 연산기에 전달하도록 해도 된다.
본 발명에 따른 버스 신호 디코더에서, 그레이 인코더는 첫번째 비트의 연산 결과는 첫번째 비트값을 그대로 사용하고, 두번째 비트부터는 선행 비트의 연산 결과와 현재 비트를 XOR 연산하여 출력하는 XOR 체인으로 형성될 수도 있다.
또한 본 발명에 따른 버스 신호 디코더에서, 그레이 디코더는 룩업테이블로 형성될 수도 있다.
본 발명에 의하면, 병렬식 버스 신호를 직렬화했을 때, 버스 신호의 신호 변동을 감소시킴으로써, 신호 변동에 따른 전력 소모 증가를 방지할 수 있다.
본 발명에 의하면, 신호 변동이 적은 버스 신호를 송신/수신함으로써, 고속 직렬화되어 가는 칩 간 통신에 있어서, 통신 전력의 소모를 줄일 수 있다.
본 발명은 버스 신호들이 직렬화되기 전에, 버스 신호들을 코딩함으로써 직렬화될 때 신호변동 횟수가 증가하지 않는 신호들로 변환한다. 이를 통해, 통신 지연 없이 데이터 통신 전반에 걸쳐 전력 소모를 줄일 수 있다.
이하 본 발명에 따른 버스 신호의 코딩/디코딩 방법을 첨부한 도면과 함께 구체적으로 설명한다.
인코딩 방법 및 인코더
도 2은 본 발명에 따른 버스 신호의 인코더를 개략적으로 도시한 블록도이다.
인코더(200)는 XOR 연산기(201), 인버터(203) 및 직렬화기(serializer)를 포함한다.
비트 단위로 XOR 연산기(201)는 버스 신호를 수신해서, 비트 단위로 XOR(Exclusive OR) 연산을 실행한다. 이때 XOR 연산기(201)는, 병렬 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산한 다. 본 발명에서 바이트 시퀀스(byte sequence)는 병렬 버스 신호에서 함께 전송되거나 전송된 바이트 주소 또는 데이터를 의미한다.
XOR 연산기(201)에서 첫번째 바이트 시퀀스를 제외하고, XOR 연산 처리된 병렬 버스 신호는 인버터(203)에서 비트 단위로 인버팅(inverting)된다. 이때 인버터(203)는 병렬 버스 신호에서 짝수번째 바이트 시퀀스를 비트 단위로 인버팅한다.
인버터(203)에서 출력된 병렬 버스 신호는 직렬화기(206)에서 직렬화(serialization)된다.
인코더(200)는 그레이 인코더(gray encoder, 205)를 더 포함할 수도 있다. 그레이 인코더는 병렬 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩한다.
그레이 코딩은 코딩할 이진수값의 첫번째 비트는 그대로 그레이 코드로 사용하며, 이진수값의 두번째 비트부터는 바로 전단계에서 생성된 이진수값인 앞 비트와 그레이 코드의 해당번째 비트를 XOR 연산한다.
본 발명에서 그레이 인코더(205)는 도시한 바와 같이 인버터(203)와 직렬화기(206) 사이에 위치해도 되고, XOR 연산기(201)와 인버터(203) 사이에 위치해도 된다.
또한, 본 발명에서 그레이 인코더는 그 결과를 저장한 룩업테이블(LUT, Look Up Table)을 이용하여 형성해도 된다.
아울러, 본 발명에서 그레이 인코더는 바이트 시퀀스의 첫번째 비트의 연산결과는 첫번째 비트값을 그대로 사용하고, 그 다음부터 선행 비트의 연산한 결과와 현재 비트를 XOR 연산하여 출력하는, 소위 XOR 체인을 통해 구현될 수도 있다.
이와 같은, LUT 또는 XOR 체인을 통해, 더 간편하게 인코더를 구현할 수 있다.
도 3은 본 발명에 따른 버스 신호의 인코딩 방법을 개략적으로 도시한 플로우차트이다.
병렬 버스 신호가 수신되면(S301 단계), 인코더는 XOR 연산기를 통해서, 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산한다(S302 단계).
XOR 연산이 이루어진 뒤에, 짝수번째 바이트 시퀀스를 비트 단위로 인버팅한다(S303 단계).
이후, 인버팅된 버스 신호를 직렬화(serialization)하여(S304 단계), 버스 신호를 인코딩한다.
직렬화된 버스 신호는 버스 신호를 수신할 장치로 전송된다(S305 단계).
본 발명은, 병렬 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스에 대하여 비트 단위로 XOR 연산을 하는 단계(S302 단계)와 병렬 버스 신호의 짝수번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계(S303 단계) 사이에, 또는 병렬 버스 신호의 짝수번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계(S303 단계)와 병렬 버스 신호를 직렬화하는 단계(S304 단계) 사이에, 병렬 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하는 단계(S306 단계)를 더 포함할 수도 있다.
그레이 코딩은 코딩할 이진수값의 첫번째 비트는 그대로 그레이 코드로 사용하며, 이진수값의 두번째 비트부터는 바로 전단계에서 생성된 이진수값인 앞 비트 와 그레이 코드의 해당번째 비트를 XOR 연산한다.
첫번째 바이트 시퀀스를 그레이 코딩함으로써, 인코딩에서 제외되었던 첫번째 바이트 시퀀스를 포함하여, 직렬화된 전체 버스 신호의 신호 변동을 줄일 수 있게 된다.
디코딩 방법 및 디코더
도 4는 본 발명에 따른 버스 신호의 디코더를 개략적으로 도시한 블록도이다.
디코더(400)는 역직렬화기(deserializer, 401), 인버터(403), XOR 연산기(405)를 포함한다.
수신된 직렬 버스 신호는 역직렬화기(401)에서 역직렬화(deserialization)되어, 병렬 신호로 전환된다.
역직렬화기(401)에서 출력된 병렬 신호는 인버터(403)에서 비트 단위로 인버팅(inverting)된다. 이때 인버터(403)는 병렬 신호에서 짝수번째 바이트 시퀀스를 비트 단위로 인버팅한다.
XOR 연산기(405)는 인버터(403)에서 출력된 신호를, 비트 단위로 XOR 연산한다. XOR 연산기(405)는, 병렬 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산하여, 병렬 신호를 버스 신호로 복원한다.
본 발명의 디코더(400)는 인코더에서 버스 신호가 그레이 코딩된 경우에, 그레이 디코더(gray decoder, 402)를 더 포함한다. 그레이 디코더는 병렬 신호의 첫번째 바이트 시퀀스를 그레이 디코딩한다.
그레이 디코딩은 디코딩할 이진수값의 첫번째 비트는 그대로 그레이 코드로 사용하며, 이진수값의 두번째 비트부터는 바로 전단계에서 생성된 이진수값인 앞 비트와 그레이 코드의 해당번째 비트를 XOR 연산한다.
본 발명에서 그레이 디코더(402)는 도시한 바와 같이 역직렬화기(401)와 인버터(403) 사이에 위치해도 되고, 인버터(403)와 XOR 연산기(405) 사이에 위치해도 된다.
또한, 본 발명에서 그레이 디코더는 XOR 체인(chain)이나 룩업테이블(LUT, Look Up Table)로 형성되어도 된다. 이를 통해, 더 간편하게 디코더를 구현할 수 있다.
도 5는 본 발명에 따른 버스 신호의 디코딩 방법을 개략적으로 도시한 플로우차트이다.
직렬 버스 신호가 수신되면(S501 단계), 디코더는 역직렬화기를 통해서, 직렬 버스 신호를 병렬 신호로 변환한다(S502 단계).
역직렬화된 병렬 신호에 대하여, 짝수번째 바이트 시퀀스를 비트 단위로(bitwise) 인버팅한다(S503 단계).
트랜잭션(transaction) 간에 파이프라인 형식으로 연이어 진행되는 버스 통신의 경우라도, 버스트(burst) 전송 또는 패킷(packet) 단위로 전송을 하기 때문에, 일정한 길이 단위로 전송하게 된다. 따라서, 수신회로는 연속된 트랜잭션들 사이에서도 개별 트랜잭션의 마디들을 파악할 수 있으므로, 각 트랜잭션의 첫 번째 베이스 신호값, 즉 첫번째 바이트 시퀀스를 인식할 수 있다.
따라서, 수신한 데이터가 베이스 신호값인지를 인지해서, 짝수번째 바이트 시퀀스를 비트 단위로 인버팅한다.
인버팅된 병렬 신호에 대하여, XOR 연산기를 통해, 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산하여(S504 단계) 버스 신호를 복원한다.
본 발명의 디코딩 방법은, 수신한 직렬 버스 신호가 그레이 코딩된 경우에, 직렬 버스 신호를 역직렬화하는 단계(S502 단계)와 병렬 신호의 짝수번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계(S503 단계) 사이에, 또는 병렬 신호의 짝수번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계(S503 단계)와 병렬 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스에 대하여 비트 단위로 XOR 연산을 하는 단계(S504 단계) 사이에, 병렬 신호의 첫번째 바이트 시퀀스를 그레이 디코딩하는 단계(S505 단계)를 더 포함할 수도 있다.
그레이 디코딩은 코딩할 이진수값의 첫번째 비트는 그대로 그레이 코드로 사용하며, 이진수값의 두번째 비트부터는 바로 전단계에서 생성된 이진수값인 앞 비트와 그레이 코드의 해당번째 비트를 XOR 연산한다.
역직렬화 단계(S502 단계) 이후에 그레이 디코딩을 하는 경우에는, 앞서 설명한 바와 같이, 수신한 데이터가 베이스 신호값인지를 인지해서, 그레이 디코딩하면 된다.
비교예
도 6은 종래의 직렬화 방법에 따라서 버스 신호를 직렬화한 것을 도시한 것 이다. t ~ t+4는 연이어 전송되는 5개의 바이트 주소 또는 데이터를 나타내는 바이트 시퀀스이다.
D0 ~ D7은 각 바이트의 비트 포지션("D" 다음의 숫자가 각 비트의 위치를 표시하고 있다)을 표시한 것이다.
t를 선두로 51h, 52h, 53h, 54h, 55h의 16진수 정보가, 이진수로 표현되어 8비트의 버스를 통해 순차적으로 전송되고 있다.
도시된 바와 같이, 직렬화를 하지 않고 버스 신호를 전송하는 경우에는, 신호 변동 횟수가 D0에서 4번, D1에서 2번, D2에서 1번으로 총 7번이지만, 직렬화한 경우에는 총 31번의 신호 변동이 있음을 알 수 있다.
도 7은 본 발명의 일실시예에 따라서, 병렬 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산하고, 짝수번째 바이트 시퀀스를 비트 단위로 인버팅한 후, 직렬화한 결과를 나타낸 것이다.
도시된 바와 같이, 첫번째 바이트 시퀀스(t)를 제외한 나머지 바이트 시퀀스(t+1, t+2, t+3, t+4)를 비트 단위로 XOR 연산하고, 짝수번째 바이트 시퀀스(t+1, t+3)를 비트 단위로 인버팅하면, 신호 변동 횟수는 13회로 크게 줄어든다.
도 8은 본 발명의 본 발명의 또다른 실시예에 따라서, 병렬 버스 신호의 첫번째 바이트 시퀀스에 대하여 그레이 코딩을 추가로 실시한 후, 직렬화한 결과를 도시한 것이다.
도 7의 직렬화 과정에서 알 수 있듯이, 버스 신호 인코딩을 통해 t의 신호 변동은 도 6의 경우와 동일하게 유지되고 있다.
버스 신호 전송은 트랜잭션(transaction)의 시작과 끝으로 명확히 구분되기 때문에, 직렬화된 신호값을 수신하는 회로는 그 전송 단위의 첫 베이스 신호값(첫번째 바이트 시퀀스)의 시간대(또는 전송위치)를 파악할 수 있다. 따라서 베이스 신호값, 즉 병렬 버스 신호의 첫번째 바이트 시퀀스만 따로 코딩을 하여도 디코딩이 가능하다.
다시 말하면, 디코딩이 가능하므로, 첫번째 바이트 시퀀스만을 그레이 코딩함으로써, 신호 변동을 더 줄일 수 있다.
그레이 코딩은 상술한 바와 같이, 코딩할 이진수값의 첫번째 비트는 그대로 그레이 코드로 사용하며, 이진수값의 두번째 비트부터는 바로 전단계에서 생성된 이진수값인 앞 비트와 그레이 코드의 해당번째 비트를 XOR 연산한다.
첫번째 바이트 시퀀스(t)를 그레이 코딩한 결과, 도시된 바와 같이, 첫번째 바이트 시퀀스(t)의 신호 변동 횟수는 3회로 줄어들며, 전체 신호 변동 횟수도 7회로 줄어든다.
지금까지 도면을 참조로 본 발명의 구체적인 실시예를 설명하였지만, 이는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 쉽게 이해할 수 있도록 하기 위한 것이고 발명의 기술적 범위를 제한하기 위한 것이 아니다. 도면을 참조로 한 이상과 같은 설명은 본 발명의 기술적 사상의 범위 내에서 충분히 변형되거나 수정될 수 있다.
예를 들어, 본 실시예에서는 짝수번째 바이트 시퀀스의 인버팅 후에 첫번째 바이트 시퀀스를 그레이 코딩하였으나, 첫번째 바이트 시퀀스는 인버팅 연산을 하 지 않으므로, 짝수 번째 바이트 시퀀스를 인버팅하기 전에, 첫번째 바이트 시퀀스를 그레이코딩해도 된다.
또한, 본 실시예에서는 연속해서 5개의 버스 신호가 전송되는 경우를 설명하였으나, 본 발명은 이에 한하지 않으며, 버스 신호가 늘어날수록, 종래의 직렬화에 비해 신호변동 횟수가 크게 감소하는 것을 알 수 있다.
또한, 그레이 코딩을 할 것인지를 판단해서, 그레이 코딩을 할 필요가 없는 신호인 경우에는 이를 알리는 1 비트의 가드 신호나 1 전송 사이클을 추가할 수도 있다.
도 1은 통상적인 마이크로프로세서 버스의 데이터 전송 과정을 개략적으로 도시한 것이다.
도 2은 본 발명에 따른 버스 신호의 인코더를 개략적으로 도시한 블록도이다.
도 3은 본 발명에 따른 버스 신호의 인코딩 방법을 개략적으로 도시한 플로우차트이다.
도 4는 본 발명에 따른 버스 신호의 디코더를 개략적으로 도시한 블록도이다.
도 5는 본 발명에 따른 버스 신호의 디코딩 방법을 개략적으로 도시한 플로우차트이다.
도 6은 종래의 방법에 따라서 버스 신호를 직렬화한 것을 도시한 것이다.
도 7은 본 발명의 일실시형태에 따라서 버스 신호를 직렬화한 것을 도시한 것이다.
도 8은 본 발명의 또다른 실시형태에 따라서 버스 신호를 직렬화한 것을 도시한 것이다.

Claims (16)

  1. 버스 신호를 수신하는 단계;
    상기 버스 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로(bitwise) XOR 연산하는 단계;
    상기 XOR 연산된 버스 신호의 짝수 번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계; 및
    상기 인버팅 된 버스 신호를 직렬화하는 단계를 포함하는,
    버스 신호 인코딩 방법.
  2. 제1항에 있어서,
    상기 XOR 연산 단계와 상기 인버팅 단계 사이에, 상기 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하는 단계를 더 포함하는,
    버스 신호 인코딩 방법.
  3. 제1항에 있어서,
    상기 인버팅 단계와 상기 직렬화 단계 사이에, 상기 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하는 단계를 더 포함하는,
    버스 신호 인코딩 방법.
  4. 직렬 버스 신호를 역직렬화하는 단계;
    상기 역직렬화된 신호의 짝수 번째 바이트 시퀀스를 비트 단위로 인버팅하는 단계; 및
    상기 인버팅된 신호의 첫번째 바이트 시퀀스를 제외한 나머지 바이트 시퀀스를 비트 단위로 XOR 연산하는 단계를 포함하는,
    버스 신호 디코딩 방법.
  5. 제4항에 있어서,
    상기 역직렬화 단계와 상기 인버팅 단계 사이에, 상기 신호의 첫번째 바이트 시퀀스를 그레이 디코딩하는 단계를 더 포함하는,
    버스 신호 디코딩 방법.
  6. 제4항에 있어서,
    상기 인버팅 단계와 상기 XOR 단계 사이에, 상기 신호의 첫번째 바이트 시퀀스를 그레이 디코딩하는 단계를 더 포함하는,
    버스 신호 디코딩 방법.
  7. 버스 신호를 비트 단위로(bitwise) 연산하는 XOR 연산기;
    상기 XOR 연산기에서 출력된 버스 신호를 비트 단위로 인버팅하는 인버터; 및
    상기 인버터에서 출력된 버스 신호를 직렬화하는 직렬화기를 포함하며,
    상기 XOR 연산기는 버스 신호의 첫번째 바이트 시퀀스를 제외한 바이트 시퀀스를 XOR 연산하며,
    상기 인버터는 버스 신호의 짝수번째 바이트 시퀀스를 인버팅 하는 것인,
    버스 신호 인코더.
  8. 제7항에 있어서,
    상기 버스 신호 인코더는, 그레이 인코더를 더 포함하며,
    상기 그레이 인코더는 상기 XOR 연산기에서 출력된 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하여 상기 인버터에 전달하는 것인,
    버스 신호 인코더.
  9. 제7항에 있어서,
    상기 버스 신호 인코더는, 그레이 인코더를 더 포함하며,
    상기 그레이 인코더는 상기 인버터에서 출력된 버스 신호의 첫번째 바이트 시퀀스를 그레이 코딩하여 상기 직렬화기에 전달하는 것인,
    버스 신호 인코더.
  10. 제8항 또는 제9항에 있어서,
    상기 그레이 인코더는 첫번째 비트의 연산 결과는 첫번째 비트값을 그대로 사용하고, 두번째 비트부터는 선행 비트의 연산 결과와 현재 비트를 XOR 연산하여 출력하는 XOR 체인으로 형성되어 있는 것인,
    버스 신호 인코더.
  11. 제8항 또는 제9항에 있어서,
    상기 그레이 인코더는 룩업테이블로 형성되어 있는 것인,
    버스 신호 인코더.
  12. 직렬 버스 신호를 역직렬화하는 역직렬화기;
    상기 역직렬화기에서 출력된 신호를 비트 단위로 인버팅하는 인버터; 및
    상기 인버터에서 출력된 신호를 비트 단위로 연산하는 XOR 연산기를 포함하며,
    상기 인버터는 신호의 짝수번째 바이트 시퀀스를 인버팅하고,
    상기 XOR 연산기는 신호의 첫번째 바이트 시퀀스를 제외한 바이트 시퀀스를 XOR 연산하는 것인,
    버스 신호 디코더.
  13. 제12항에 있어서,
    상기 버스 신호 디코더는, 그레이 디코더를 더 포함하며,
    상기 그레이 디코더는 상기 역직렬화기에서 출력된 신호를 그레이 디코딩하 여 상기 인버터에 전달하는 것인,
    버스 신호 디코더.
  14. 제12항에 있어서,
    상기 버스 신호 디코더는, 그레이 디코더를 더 포함하며,
    상기 그레이 디코더는 상기 인버터에서 출력된 신호를 그레이 디코딩하여 상기 XOR 연산기에 전달하는 것인,
    버스 신호 디코더.
  15. 제13항 또는 제14항에 있어서,
    상기 그레이 인코더는 첫번째 비트의 연산 결과는 첫번째 비트값을 그대로 사용하고, 두번째 비트부터는 선행 비트의 연산 결과와 현재 비트를 XOR 연산하여 출력하는 XOR 체인으로 형성되어 있는 것인,
    버스 신호 디코더.
  16. 제13항 또는 제14항에 있어서,
    상기 그레이 디코더는 룩업테이블로 형성되어 있는 것인,
    버스 신호 디코더.
KR1020080122876A 2008-12-05 2008-12-05 버스 신호의 인코딩, 디코딩 방법 및 장치 KR20100064442A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080122876A KR20100064442A (ko) 2008-12-05 2008-12-05 버스 신호의 인코딩, 디코딩 방법 및 장치
US12/566,496 US8166219B2 (en) 2008-12-05 2009-09-24 Method and apparatus for encoding/decoding bus signal
JP2009224414A JP4846836B2 (ja) 2008-12-05 2009-09-29 バス信号のエンコード、デコード方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080122876A KR20100064442A (ko) 2008-12-05 2008-12-05 버스 신호의 인코딩, 디코딩 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20100064442A true KR20100064442A (ko) 2010-06-15

Family

ID=42232438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080122876A KR20100064442A (ko) 2008-12-05 2008-12-05 버스 신호의 인코딩, 디코딩 방법 및 장치

Country Status (3)

Country Link
US (1) US8166219B2 (ko)
JP (1) JP4846836B2 (ko)
KR (1) KR20100064442A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9599645B2 (en) * 2013-05-28 2017-03-21 Oracle International Corporation High speed clock cycle rate digital voltage monitor with triggered tracing for integrated circuits
GB201314938D0 (en) * 2013-08-21 2013-10-02 Advanced Risc Mach Ltd Communication between voltage domains

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4125219A1 (de) * 1991-07-30 1993-02-04 Pep Modular Computers Ag Hochgeschwindigkeits-bussystem und verfahren zum betreiben desselben
US5825824A (en) * 1995-10-05 1998-10-20 Silicon Image, Inc. DC-balanced and transition-controlled encoding method and apparatus
JPH1049271A (ja) 1996-08-06 1998-02-20 Mitsubishi Electric Corp バス転送回路
KR100248379B1 (ko) * 1997-06-16 2000-03-15 정선종 단일 콘케티네이티드 부호기를 이용한 통신 장치 및 이를 이용한 통신 방법
JPH11308281A (ja) 1998-04-22 1999-11-05 Sony Corp デジタル信号伝送装置およびその方法、デジタル信号送信装置およびデジタル信号受信装置
JPH11317773A (ja) 1998-05-01 1999-11-16 Sony Corp デジタル信号伝送装置およびその方法、デジタル信号送信装置およびデジタル信号受信装置
KR100435215B1 (ko) * 1999-12-30 2004-06-09 삼성전자주식회사 버스 인코딩/디코딩 장치 및 그 방법
US6934730B2 (en) * 2000-10-13 2005-08-23 Xpriori, Llc Method and system for generating a transform
US6583735B2 (en) * 2001-02-01 2003-06-24 Nec Corporation Method and apparatus for adaptive bus coding for low power deep sub-micron designs
JP4034172B2 (ja) 2002-11-20 2008-01-16 Necエレクトロニクス株式会社 エンコーダ、デコーダおよびデータ転送装置
JP4311095B2 (ja) 2003-06-26 2009-08-12 ソニー株式会社 固体撮像装置およびその駆動方法
JP4322063B2 (ja) 2003-07-23 2009-08-26 株式会社ルネサステクノロジ 送信装置
KR100591243B1 (ko) 2003-12-24 2006-06-19 한국전자통신연구원 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법
US7817068B2 (en) * 2006-06-30 2010-10-19 Intel Corporation Low power serial link bus architecture
KR100969748B1 (ko) * 2007-01-29 2010-07-13 삼성전자주식회사 직렬 통신 시스템에서 직렬 데이터의 송수신 방법 및 장치와 이를 위한 직렬 통신 시스템
KR20090059838A (ko) * 2007-12-07 2009-06-11 삼성전자주식회사 반도체 장치에서 데이터를 전송하는 방법, 장치 및 시스템
US7881089B2 (en) * 2009-02-24 2011-02-01 International Business Machines Corporation Coding techniques for improving the sense margin in content addressable memories

Also Published As

Publication number Publication date
US20100146364A1 (en) 2010-06-10
US8166219B2 (en) 2012-04-24
JP2010134913A (ja) 2010-06-17
JP4846836B2 (ja) 2011-12-28

Similar Documents

Publication Publication Date Title
JP3204672B2 (ja) 遷移制御されたデジタルエンコード及び信号伝送システム
JP3542809B2 (ja) 遷移制御された平衡エンコード体系
US20150295678A1 (en) Coding apparatus, coding method, data communication apparatus, and data communication method
WO1997013348A2 (en) Block coding for digital video transmission
CN216119513U (zh) 发光二极管驱动器以及发光二极管驱动设备
KR100969748B1 (ko) 직렬 통신 시스템에서 직렬 데이터의 송수신 방법 및 장치와 이를 위한 직렬 통신 시스템
US8031746B2 (en) Synchronized receiver
KR20100064442A (ko) 버스 신호의 인코딩, 디코딩 방법 및 장치
KR20230050256A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
US20080279289A1 (en) Transmitter, receiver, method for transmitting, method for receiving, fixed length serial burst data transfer system, semiconductor device, and hybrid semiconductor device
JP2010288078A (ja) データ送信装置、データ受信装置、及びデータ伝送システム
CN116866445B (zh) 四相双轨与两相双轨协议间的转换装置、芯片及电子设备
JP4780350B2 (ja) シリアルデータ通信のための符号化方式
KR100574359B1 (ko) 직렬데이터의 송수신 장치 및 그 방법
US8175171B2 (en) Transmitter, receiver, transmitting method, receiving method, variable-length serial burst data transfer system, semiconductor device and hybrid semiconductor device
CN116866446B (zh) 四相双轨与四相捆绑协议间的转换装置、芯片及电子设备
JP2011155330A (ja) 伝送システム
JP4491579B2 (ja) 通信方法
JP2010068264A (ja) ディジタル信号変換装置
JP2000224242A (ja) データ通信装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application