KR20170134470A - N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법 - Google Patents

N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법 Download PDF

Info

Publication number
KR20170134470A
KR20170134470A KR1020177028255A KR20177028255A KR20170134470A KR 20170134470 A KR20170134470 A KR 20170134470A KR 1020177028255 A KR1020177028255 A KR 1020177028255A KR 20177028255 A KR20177028255 A KR 20177028255A KR 20170134470 A KR20170134470 A KR 20170134470A
Authority
KR
South Korea
Prior art keywords
state
base
symbol
sequence
value
Prior art date
Application number
KR1020177028255A
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 퀄컴 인코포레이티드
Publication of KR20170134470A publication Critical patent/KR20170134470A/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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Dc Digital Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Transfer Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

디바이스가 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 인코딩/디코딩하는 것을 가능하게 하는 시스템, 방법들, 및 장치가 설명된다. 디바이스는 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하고, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하고, 심볼들의 시퀀스를 수신기로 송신한다. 디바이스는 값에 기초하여 프레임에 대한 베이스-N 수 다항식의 베이스-N 계수들을 계산하는 것으로서, N 은 2 보다 더 큰, 상기 베이스-N 계수들을 계산함으로써, 각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산함으로써, 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정함으로써, 그리고 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성함으로써 변환을 수행한다.

Description

N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법{N-BASE NUMBERS TO PHYSICAL WIRE STATES SYMBOLS TRANSLATION METHOD}
관련 출원들에 대한 상호-참조
이 출원은 2015 년 4 월 10 일자로 출원된 "N-BASE NUMBERS TO PHYSICAL WIRE STATES SYMBOLS TRANSLATION METHOD (N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법)" 이라는 명칭의 미국 가출원 제 62/145,693 호, 및 2016 년 4 월 6 일자로 출원된 "N-BASE NUMBERS TO PHYSICAL WIRE STATES SYMBOLS TRANSLATION METHOD" 이라는 명칭의 미국 정규출원 제 15/092,554 호의 우선권 및 이익을 주장하고, 그 전체 내용들은 참조로 본원에 편입된다.
본 개시물은 일반적으로 호스트 프로세서와 주변 디바이스 사이의 인터페이스에 관한 것으로, 더욱 상세하게는, 인터페이스 상에서의 배선 상태 변경들에 기초하여 데이터를 인코딩/디코딩하는 것에 관한 것이다.
셀룰러 전화들과 같은 이동 디바이스들의 제조자들은 상이한 제조자들을 포함하는 다양한 소스들로부터 이동 디바이스들의 컴포넌트들을 획득할 수도 있다. 예를 들어, 이동 컴퓨팅 디바이스에서의 애플리케이션 프로세서는 제 1 제조자로부터 획득될 수도 있는 반면, 이동 컴퓨팅 디바이스에 의해 채용된 센서들은 하나 이상의 다른 제조자들로부터 획득될 수도 있다. 전형적으로 특정 애플리케이션 또는 애플리케이션의 타입에 관한 다양한 표준들-기반 또는 전용 인터페이스들이 정의되었다. 예를 들어, 셀룰러 전화들은 예를 들어, 집적 회로간 (Inter-Integrated Circuit; I2C) 표준, 직렬 병렬 인터페이스 (Serial Peripheral Interface; SPI) 표준, 또는 개선된 집적 회로간 (Improved Inter-Integrated Circuit; I3C) 표준과 호환가능하거나 이를 준수하는 통신 인터페이스를 이용할 수도 있다.
현재, 다양한 인터페이스들 상에서의 에너지 소비를 감소시키면서 데이터 스루풋 (data throughput) 을 증가시키기 위한 필요성이 있다. 이러한 데이터 전송 프로토콜에 대한 예시적인 개념은 데이터의 2진 스트림들을 더 높은 레벨의 진법 (numeral system) 들로 프레임화된 수 (framed number) 들로서 표현하는 것에 기초하고 있다. 이러한 데이터 전송 프로토콜을 구현하는 일부 예의 애플리케이션들은 I3C, 카메라 제어 인터페이스 확장 (camera control interface extension; CCIe), 및 센서들 글로벌 버스 (Sensors Global Bus; SGbus) 를 포함한다.
데이터 전송의 근본적인 특징은 심볼들을 더 큰 숫자 베이스 (numeral base) 들 (예컨대, 베이스 3, 7, 8, 10, 16 등) 의 계수들로서 전송하는 것을 수반한다. 관심 있는 특정한 영역은 3진수 (ternary number) 들의 심볼들에 관한 것이다. 이러한 수들은 2-배선 버스 인터페이스 (two-wire bus interface) 를 이용하여 구현될 수 있고, 여기서, 각각의 배선은 2 개의 상태들을 가진다. 이러한 인터페이스 상에서의 에너지 소비를 감소시키면서 데이터 스루풋을 증가시키기 위한 이전의 방법들은 배선들의 물리적 상태 전이 (physical state transition) 들과 관련된 심볼 사이의 상관 (correlation) 을 평가하는 것을 수반한다. 작은 숫자 베이스들 (예컨대, 베이스 3) 에 대하여, 이러한 이전의 방법들은 효율적일 수도 있다. 그러나, 더 큰 숫자 베이스들 (예컨대, 베이스 7, 8, 10, 16 등) 에 대하여, 이전의 방법들은 값이 설정된 코딩된 비트들의 상당히 더 큰 대응관계 표, 감산 블록 (subtraction block), 및/또는 심볼들을 직접적으로 이용가능한 3진 계수들로 변환하는 보충적인 변환 표를 요구할 수도 있다. 이러한 요건들은 비용 인자가 중요한 디바이스들에 대하여 금지할 수도 있다. 따라서, 3진 또는 임의의 다른 더 큰 숫자 베이스 계수들의 직접적인 판독을 허용하는 인터페이스 상에서 데이터 스루풋을 증가시키기 위한 진행 중인 필요성이 있다.
본원에서 개시된 실시예들은 직렬 버스 상에서의 배선 상태 변경들에 기초하여 데이터를 인코딩하고 및/또는 인코딩하기 위한 시스템들, 방법들, 및 장치를 제공한다.
개시물의 양태에서, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법은, 인코딩되어야 할 데이터의 2진 스트링 (binary string) 을 수신하는 단계, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하는 단계, 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하는 단계로서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트인, 상기 데이터 비트들의 시퀀스의 값을 결정하는 단계, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하는 단계, 및 심볼들의 시퀀스를 수신기로 송신하는 단계를 포함한다. 변환하는 단계는, 값에 기초하여 프레임에 대한 베이스-N (base-N) 수 다항식의 베이스-N 계수들을 계산하는 단계로서, N 은 2 보다 더 큰 정수이고, 베이스-N 계수들은 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 계수들을 계산하는 단계, 각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산하는 단계, 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정하는 단계, 및 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성하는 단계를 포함한다.
양태에서, 값을 심볼들의 시퀀스로 변환하는 단계는, 심볼들의 시퀀스의 제 1 심볼에 대응하는 제 1 베이스-N 계수에 따라 제 1 베이스-2 수 다항식의 제 1 쌍의 베이스-2 계수들을 계산하는 단계, 제 1 쌍의 베이스-2 계수들에 따라 제 1 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정하는 단계, 심볼들의 시퀀스의 제 2 심볼에 대응하는 제 2 베이스-N 계수에 따라 제 2 베이스-2 수 다항식의 제 2 쌍의 베이스-2 계수들을 계산하는 단계, 및 제 2 쌍의 베이스-2 계수들에 따라 제 2 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정하는 단계를 포함한다.
또 다른 양태에서, 제 1 쌍 및 제 2 쌍의 베이스-2 계수들의 각각은 제 1 값 및 제 2 값을 포함하고, 제 1 값은 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하고, 제 2 값은 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시한다. 제 1 값은 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 배타적-NOR (exclusive-NOR; XNOR) 연산을 나타낸다. 제 2 값은 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 나타낸다.
제 1 값이 0 일 때, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 표시된다. 제 1 값이 1 일 때, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 미변경이 표시된다. 제 2 값이 0 일 때, 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 변경이 표시된다. 제 2 값이 1 일 때, 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 미변경이 표시된다.
추가의 양태에서, 심볼들의 시퀀스를 생성하는 단계는, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 제 1 심볼에 대하여 표시될 때, 제 1 배선이 LOW 레벨로 풀 다운 (pull down) 되어야 하는 것으로 결정하는 단계, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 미변경이 제 2 심볼에 대하여 표시될 때, 제 1 배선을 LOW 레벨로 풀 다운하는 단계, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 제 2 심볼에 대하여 표시될 때, 제 1 배선을 LOW 레벨로 풀 다운하는 것을 금지하는 단계를 포함한다.
개시물의 또 다른 양태에서, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치는 복수의 배선들에 결합된 통신 인터페이스 회로, 및 통신 인터페이스 회로에 결합된 프로세싱 회로를 포함한다. 프로세싱 회로는 인코딩되어야 할 데이터의 2진 스트링을 수신하고, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하고, 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하는 것으로서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트인, 상기 데이터 비트들의 시퀀스의 값을 결정하고, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하고, 그리고 심볼들의 시퀀스를 수신기로 송신하도록 구성된다. 프로세싱 회로는, 값에 기초하여 프레임에 대한 베이스-N (base-N) 수 다항식의 베이스-N 계수들을 계산하는 것으로서, N 은 2 보다 더 큰 정수이고, 베이스-N 계수들은 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 계수들을 계산함으로써, 각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산함으로써, 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정함으로써, 그리고 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성함으로써 변환하도록 구성된다.
개시물의 추가의 양태에서, 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치는, 인코딩되어야 할 데이터의 2진 스트링을 수신하기 위한 수단, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하기 위한 수단, 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하기 위한 수단으로서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트인, 상기 데이터 비트들의 시퀀스의 값을 결정하기 위한 수단, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하기 위한 수단, 및 심볼들의 시퀀스를 수신기로 송신하기 위한 수단을 포함한다. 변환하기 위한 수단은, 값에 기초하여 프레임에 대한 베이스-N (base-N) 수 다항식의 베이스-N 계수들을 계산하는 것으로서, N 은 2 보다 더 큰 정수이고, 베이스-N 계수들은 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 계수들을 계산함으로써, 각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산함으로써, 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정함으로써, 그리고 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성함으로써 변환하도록 구성된다.
개시물의 양태에서, 프로세서-판독가능 저장 매체는 하나 이상의 명령들을 가지고, 상기 하나 이상의 명령들은, 인코더의 프로세싱 회로에 의해 실행될 경우, 프로세싱 회로로 하여금, 인코딩되어야 할 데이터의 2진 스트링을 수신하게 하고, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하게 하고, 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하게 하는 것으로서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트인, 상기 데이터 비트들의 시퀀스의 값을 결정하게 하고, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하게 하고, 그리고 심볼들의 시퀀스를 수신기로 송신하게 한다. 명령들은 추가로, 프로세싱 회로로 하여금, 값에 기초하여 프레임에 대한 베이스-N (base-N) 수 다항식의 베이스-N 계수들을 계산하는 것으로서, N 은 2 보다 더 큰 정수이고, 베이스-N 계수들은 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 계수들을 계산함으로써, 각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산함으로써, 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정함으로써, 그리고 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성함으로써 변환하게 한다.
개시물의 또 다른 양태에서, 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 디코딩하는 방법은, 프레임에서의 심볼들의 시퀀스를 수신하는 단계로서, 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타내는, 상기 프레임에서의 심볼들의 시퀀스를 수신하는 단계, 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환하는 단계, 및 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원하는 단계를 포함한다. 양태에서, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다. 변환하는 단계는, 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 평가하는 단계, 상태들의 변경들에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 단계로서, 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응하고, N 은 2 보다 더 큰 정수인, 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 단계, 및 데이터 비트들의 시퀀스의 값을 결정하기 위하여, 베이스-N 계수들에 따라 베이스-N 수 다항식의 결과를 계산하는 단계를 포함한다.
양태에서, 심볼들의 시퀀스의 각각의 심볼은 복수의 배선들의 현재의 상태들을 포함한다. 복수의 배선들의 상태들의 변경들을 평가하는 단계는, 각각의 심볼에 대하여, 제 1 상태 값을 결정하기 위한 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산, 및 제 2 상태 값을 결정하기 위한 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 수행하는 단계를 포함한다.
평가하는 단계는, 상태의 변경이 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이에서 발생할 때, 제 1 상태 값이 0 인 것으로 결정하는 단계, 상태의 미변경이 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이에서 발생할 때, 제 1 상태 값이 1 인 것으로 결정하는 단계, 상태의 변경이 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이에서 발생할 때, 제 2 상태 값이 0 인 것으로 결정하는 단계, 및 상태의 미변경이 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이에서 발생할 때, 제 2 상태 값이 1 인 것으로 결정하는 단계를 더 포함할 수도 있다.
양태에서, 심볼의 제 1 상태 값 및 제 2 상태 값은 심볼에 대응하는 베이스-2 수 다항식의 한 쌍의 베이스-2 계수들에 대응한다. 따라서, 심볼들의 시퀀스의 심볼 값들을 계산하는 단계는, 각각의 심볼에 대응하는 개개의 쌍의 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼의 베이스-2 수 다항식의 결과를 계산하는 단계, 및 각각의 심볼에 대하여 각각 계산된 베이스-2 수 다항식의 결과에 따라 각각의 심볼에 대한 심볼 값을 결정하는 단계를 포함한다.
개시물의 추가의 양태에서, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치는 복수의 배선들에 결합된 통신 인터페이스 회로, 및 통신 인터페이스 회로에 결합된 프로세싱 회로를 포함한다. 프로세싱 회로는, 프레임에서의 심볼들의 시퀀스를 수신하는 것으로서, 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타내는, 상기 프레임에서의 심볼들의 시퀀스를 수신하고, 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환하고, 그리고 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원하도록 구성된다. 양태에서, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다. 프로세싱 회로는, 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 평가함으로써, 상태들의 변경들에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 것으로서, 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응하고, N 은 2 보다 더 큰 정수인, 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산함으로써, 그리고 데이터 비트들의 시퀀스의 값을 결정하기 위하여 베이스-N 계수들에 따라 베이스-N 수 다항식의 결과를 계산함으로써 변환하도록 구성된다.
개시물의 또 다른 양태에서, 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치는, 프레임에서의 심볼들의 시퀀스를 수신하기 위한 수단으로서, 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타내는, 상기 프레임에서의 심볼들의 시퀀스를 수신하기 위한 수단, 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환하기 위한 수단, 및 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원하기 위한 수단을 포함한다. 양태에서, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다. 변환하기 위한 수단은, 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 평가함으로써, 상태들의 변경들에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 것으로서, 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응하고, N 은 2 보다 더 큰 정수인, 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산함으로써, 그리고 데이터 비트들의 시퀀스의 값을 결정하기 위하여 베이스-N 계수들에 따라 베이스-N 수 다항식의 결과를 계산함으로써 변환하도록 구성된다.
개시물의 양태에서, 프로세서-판독가능 저장 매체는 하나 이상의 명령들을 가지고, 상기 하나 이상의 명령들은, 디코더의 프로세싱 회로에 의해 실행될 경우, 프로세싱 회로로 하여금, 프레임에서의 심볼들의 시퀀스를 수신하게 하는 것으로서, 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타내는, 상기 프레임에서의 심볼들의 시퀀스를 수신하게 하고, 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환하게 하고, 그리고 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원하게 한다. 양태에서, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다. 명령들은 프로세싱 회로로 하여금, 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 평가함으로써, 상태들의 변경들에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 것으로서, 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응하고, N 은 2 보다 더 큰 정수인, 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산함으로써, 그리고 데이터 비트들의 시퀀스의 값을 결정하기 위하여 베이스-N 계수들에 따라 베이스-N 수 다항식의 결과를 계산함으로써 변환하게 한다.
도 1 은 복수의 이용가능한 표준들 중의 하나에 따라 선택적으로 동작하는 IC 디바이스들 사이의 데이터 링크를 채용하는 장치를 도시한다.
도 2 는 IC 디바이스들 사이의 데이터 링크를 채용하는 장치를 위한 시스템 아키텍처를 예시한다.
도 3 은 본원에서 개시된 특정 양태들에 따라 송신기 및 수신기의 특정 양태들을 예시한다.
도 4 는 본원에서 개시된 특정 양태들에 따라 데이터를 트랜스코딩하기 위한 인코딩 방식을 예시한다.
도 5 는 I2C 1 바이트 기입 데이터 동작의 타이밍도를 예시한다.
도 6 은 공통 I2C 버스에 접속된 I2C 디바이스들 및 다른 디바이스들의 구성을 예시한다.
도 7 은 본원에서 개시된 특정 양태들에 따라, 직렬 버스의 동작의 모드들 사이 및/또는 직렬 버스 상에서 이용될 수도 있는 다수의 프로토콜들 사이에서 전이하기 위한 일반화된 방식을 예시한다.
도 8 은 본원에서 개시된 특정 양태들에 따라 구성된 인코더 및 디코더의 예를 예시하는 블록도이다.
도 9 는 본원에서 개시된 특정 양태들에 따라 인코딩/디코딩 방식으로부터 기인하는 표를 예시한다.
도 10 은 본원에서 개시된 특정 양태들에 따라 구성된 인코더 및 디코더의 또 다른 예를 예시하는 블록도이다.
도 11 은 다수의 기본 데이터 전송 링크들 (배선들) 및 프레임의 다수의 슬롯들의 다양한 조합들에 대하여 이용가능할 다수의 심볼들의 표를 예시한다.
도 12 는 개시물의 하나 이상의 양태들에 따라 데이터 통신 인터페이스에서 데이터를 인코딩하는 것에 관련된 동작들을 지원하도록 구성된 장치를 예시한다.
도 13 은 본원에서 개시된 하나 이상의 양태들에 따라 직렬 버스 인터페이스 상에서의 데이터 통신들을 위한 방법을 예시하는 플로우차트이다.
도 14 는 개시물의 하나 이상의 양태들에 따라 데이터 통신 인터페이스에서 데이터를 디코딩하는 것에 관련된 동작들을 지원하도록 구성된 장치의 예시도이다.
도 15 는 본원에서 개시된 하나 이상의 양태들에 따라 직렬 버스 인터페이스 상에서의 데이터 통신들을 위한 또 다른 방법을 예시하는 플로우차트이다.
다양한 양태들을 도면들을 참조하여 지금부터 설명된다. 다음의 설명에서는, 설명의 목적들을 위하여, 수 많은 특정 세부사항들이 하나 이상의 양태들의 철저한 이해를 제공하기 위하여 기재되어 있다. 그러나, 이러한 양태 (들) 는 이 특정 세부사항들 없이 실시될 수도 있다는 것이 분명할 수도 있다.
개요
본 개시물은 심볼 기반 데이터 전송에 대응하는 3진 또는 임의의 다른 더 큰 숫자 베이스 계수들의 직접적인 판독을 허용하는 물리적 코딩을 이용하여 인터페이스 상에서의 데이터 스루풋을 증가시키는 것을 제공한다. 본 개시물은 3진 (또는 더 큰 숫자 베이스) 계수들을 유도하기 위한 기본 게이트들을 이용할 수도 있다. 가장 덜 복잡한 심볼 기반 데이터 전송을 위하여, 즉, 베이스 3 (3진) 수들에 대해, 본 개시물은 코딩 및 디코딩의 용이함을 허용한다. 3 개의 배선들 또는 4 개의 배선들 상에서 각각 구현된 더 큰 숫자 베이스들, 예컨대, 베이스 7 (7진) 또는 베이스 15 (15진) 수들에 대하여, 본 개시물은 코딩 및 디코딩의 용이함을 허용할 뿐만 아니라, 구현을 위하여 요구된 게이트들의 수를 감소시킨다. 본 개시물은 또한, 상이한 타입들의 이전에 이용된 인터페이스들과의 역호환성을 보장하는 것이 필요한 (예컨대, 개선된 집적 회로간 (I3C)) 실제적인 시스템들을 위한 이익들을 제공한다.
예시적인 동작 환경
개시물의 특정 양태들은 전화, 이동 컴퓨팅 디바이스, 기기, 자동차 전자기기, 항공전자 시스템들 등과 같은 장치의 서브컴포넌트들을 포함할 수도 있는 전자 디바이스들 사이에서 전개된 통신 링크들에 적용가능할 수도 있다. 도 1 은 IC 디바이스들 사이의 통신 링크를 채용할 수도 있는 장치를 도시한다. 하나의 예에서, 장치 (100) 는 RF 트랜시버를 통해 라디오 액세스 네트워크 (radio access network; RAN), 코어 액세스 네트워크, 인터넷, 및/또는 또 다른 네트워크와 통신하는 무선 통신 디바이스를 포함할 수도 있다. 장치 (100) 는 프로세싱 회로 (102) 에 동작가능하게 결합된 통신 트랜시버 (106) 를 포함할 수도 있다. 프로세싱 회로 (102) 는 애플리케이션-특정 IC (application-specific IC; ASIC) (108) 와 같은 하나 이상의 IC 디바이스들을 포함할 수도 있다. ASIC (108) 은 하나 이상의 프로세싱 디바이스들, 논리 회로들 등을 포함할 수도 있다. 프로세싱 회로 (102) 는, 프로세싱 회로 (102) 에 의해 실행될 수도 있는 명령들 및 데이터를 유지할 수도 있는 메모리 (112) 와 같은 프로세서 판독가능 스토리지를 포함할 수도 있고 및/또는 이에 결합될 수도 있다. 프로세싱 회로 (102) 는 오퍼레이팅 시스템, 및 무선 디바이스의 메모리 디바이스 (112) 와 같은 저장 매체들에서 상주하는 소프트웨어 모듈들의 실행을 지원하고 가능하게 하는 애플리케이션 프로그래밍 인터페이스 (application programming interface; API) (110) 계층 중의 하나 이상에 의해 제어될 수도 있다. 메모리 디바이스 (112) 는 판독-전용 메모리 (read-only memory; ROM) 또는 랜덤-액세스 메모리 (random-access memory; RAM), 전기적 소거가능 프로그래밍가능 ROM (electrically erasable programmable ROM; EEPROM), 플래시 카드들, 또는 프로세싱 시스템들 및 컴퓨팅 플랫폼들에서 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (102) 는, 장치 (100) 를 구성하고 동작시키기 위하여 이용된 동작 파라미터들 및 다른 정보를 유지할 수도 있는 로컬 데이터베이스 (114) 를 포함할 수도 있거나 이를 액세스할 수도 있다. 로컬 데이터베이스 (114) 는 데이터베이스 모듈, 플래시 메모리, 자기 매체들, EEPROM, 광학 매체들, 테이프, 소프트 또는 하드 디스크 등 중의 하나 이상을 이용하여 구현될 수도 있다. 프로세싱 회로는 또한, 다른 컴포넌트들 중에서, 안테나 (122), 디스플레이 (124), 버튼 (128) 및 키패드 (126) 와 같은 오퍼레이터 제어부들과 같은 외부 디바이스들에 동작가능하게 결합될 수도 있다.
도 2 는 통신 버스에 접속된 장치 (200) 의 특정 양태들을 예시하는 블록 개략도이고, 여기서, 장치는 무선 이동 디바이스, 이동 전화, 이동 컴퓨팅 시스템, 무선 전화, 노트북 컴퓨터, 태블릿 컴퓨팅 디바이스, 미디어 플레이어, 게임용 디바이스, 개인 정보 단말 (personal digital assistant; PDA) 들 또는 다른 핸드헬드 디바이스, 넷북, 노트북 컴퓨터, 텔레비전, 엔터테인먼트 디바이스, 웨어러블 디바이스 등 중의 하나 이상에서 구체화될 수도 있다. 장치 (200) 는 버스 (230) 를 이용하여 통신하는 다수의 디바이스들 (202, 220, 및 222a 내지 222n) 을 포함할 수도 있다. 도 2 에서 도시된 바와 같이, 버스 (230) 는 직렬 클록 라인 (Serial Clock line; SCL) (216) 및 직렬 데이터 라인 (Serial Data line; SDA) (218) 을 포함할 수도 있다. 그러나, 개시물의 양태들에 따르면, 버스 (230) 는 신호를 송신하기 위한 2 개를 초과하는 라인들/배선들 (예컨대, 3 또는 4 개의 배선들) 을 포함할 수도 있다. 버스 (230) 는 버스 (230) 에 의해 지원된 개량된 특징들을 위하여 구성되는 디바이스들을 위한 기존의 버스의 능력들을 확장할 수 있다. 예를 들어, 버스 (230) 는 예를 들어, I2C, SPI, 또는 유니버셜 비동기식 수신기/송신기 (Universal Asynchronous Receiver/Transmitter; UART) 버스보다 더 높은 비트 레이트를 지원할 수도 있다.
도 2 에서 예시된 예에서, 디바이스 (202) 는 버스 (230) 상에서 슬레이브 (slave) 로서 동작하도록 구성될 수도 있다. 디바이스 (202) 는 하나 이상의 포괄적인 센서들, 고속 센서들, 핑거프린트 센서들, 이미지 센서들 (예컨대, 카메라들), 터치스크린 센서들 등을 관리하는 센서 제어 기능부 (204) 를 제공하도록 구성될 수도 있거나 구비될 수도 있다. 게다가, 디바이스 (202) 는 구성 레지스터들 또는 다른 스토리지 (206), 제어 로직 (212), 트랜시버 (210), 및 라인 구동기들/수신기들 (214a 및 214b) 을 포함할 수도 있다. 제어 로직 (212) 은 상태 머신 (state machine), 시퀀서 (sequencer), 신호 프로세서, 또는 범용 프로세서와 같은 프로세싱 회로를 포함할 수도 있다. 트랜시버 (210) 는 수신기 (210a), 송신기 (210c), 및 타이밍, 논리, 및 저장 회로들 및/또는 디바이스들을 포함하는 공통 회로들 (210b) 을 포함할 수도 있다. 하나의 예에서, 송신기 (210c) 는 클록 생성 회로 (208) 에 의해 제공된 타이밍에 기초하여 데이터를 인코딩하고 송신한다.
본원에서 개시된 특정 양태들에 따르면, 엔티티들 사이의 정보는 개개의 당사자들 사이에서 확립된 협약을 통해 전송된다. 협약은 다양한 방법들, 예컨대, 구두/문자 언어 (spoken/written language) 들, 컴퓨터 언어들, 및/또는 데이터로 구체화될 수도 있다. 이 시스템들의 전부에서는, 어떤 의미가 첨부되는 심볼들이 존재한다. 데이터 전송을 위한 방법은 일부 매체의 물리적 상태들의 2진 표현을 수반한다. 방법은 2 개의 심볼들, 일반적으로 "0" 및 "1" 을 이용한다. 데이터는 더 높은 수치 레벨들, 예컨대, 8진, 10진, 및 16진 등을 이용함으로써 전송될 수 있다. 모든 진법들은 심볼들을 이용하고, 여기서, 수치 베이스가 더 높을수록, 더 많은 상이한 심볼들이 필요하고, 더 적은 위치들이 데이터의 스트림 상에서 요구된다.
데이터 스트림들은 수들의 연속으로서 표현될 수 있다. 수들은 순서대로 열거된 정수 거듭제곱 (power) 들에서의 숫자 베이스의 다항식이다. 이와 같이, 임의의 데이터 스트림은 일반적인 형태로 다음으로서 기재될 수 있다:
Figure pct00001
여기서:
DATA = 데이터 스트링의 전체 값
NB = 숫자 베이스, 예컨대, 2, 3, 8, 10, 또는 16
S = 심볼, 예컨대, 0, 1, ..., A, B, C, ...
하나의 예에서, 데이터를 전송하기 위하여, 정보의 2진 스트링은 베이스 3 (3진) 수로서 코딩된 동일한 수치 값으로 변환될 수도 있다. 이와 같이, 더 적은 문자들이 동일한 정보에 대한 노드들 사이에서 송신될 필요가 있다. 변환된 3진수들은 다항식 합이고, 여기서, 인수들은 3 거듭제곱이고, 계수들은 [0, 1, 2] 이다.
Figure pct00002
여기서: T k = 3 진 계수들, ∈ [0, 1, 2].
또 다른 예에서, 동일한 데이터는 다음과 같이 다양한 진법들로 인코딩될 수 있다:
Figure pct00003
다양한 숫자 베이스들로 2-바이트 (즉, 16-비트) 예시적인 수를 인코딩하기 위한 예는 이하에서 제시된다:
다양한 숫자 베이스들로 코딩된 동일한 데이터:
2진: 1111 0000 1111 0000
Figure pct00004
16 개의 심볼 슬롯들, 2 개의 상이한 심볼들
3진: 10010121110
Figure pct00005
11 개의 심볼 슬롯들, 3 개의 상이한 심볼들
10진: 61680
Figure pct00006
5 개의 심볼 슬롯들, 10 개의 상이한 심볼들
16진: F0F0
Figure pct00007
4 개의 심볼 슬롯들, 16 개의 상이한 심볼들
도 3 은 본원에서 개시된 특정 양태들에 따라 구성된 송신기 (300) 및 수신기 (320) 의 예를 예시하는 블록도이다. 버스 동작들을 위하여, 송신기 (300) 는 데이터 (310) 를 더 큰 숫자 베이스 (예컨대, 베이스 3, 7, 8, 10, 16 등) 수들로 트랜스코딩할 수도 있다. 도 3 에서 도시된 바와 같이, 송신기 (300) 는 데이터 (310) 를, 제 1 신호 배선 W1 (예컨대, 직렬 클록 라인 (SCL)) (216) 및 제 2 신호 배선 (예컨대, 직렬 데이터 라인 (SDA)) (218) 상에서 송신된 심볼들로서 인코딩되는 3진 (베이스 3) 수들로 트랜스코딩할 수도 있다. 그러나, 개시물의 양태들에 따르면, 송신기 (300) 는 데이터를, 3 보다 더 큰 숫자 베이스를 갖는 임의의 수들로 트랜스코딩할 수도 있고, 여기서, 수들은 2 개를 초과하는 신호 배선들 상에서 송신된 심볼들로서 인코딩된다. 도시된 예에서, 입력 데이터 (310) 의 각각의 데이터 엘리먼트 (또한, 데이터 워드로서 지칭됨) 는 8, 12, 16, 19, 또는 20 비트들과 같은 미리 정의된 수의 비트들을 가질 수도 있다. 트랜스코더 (302) 는 입력 데이터 (310) 를 수신할 수도 있고, 각각의 데이터 엘리먼트에 대하여 3진수들 (312) 의 시퀀스를 생성할 수도 있다. 3진수들 (312) 은 2 비트들로 인코딩될 수도 있고, 각각의 3진 시퀀스 (312) 에서 12 개의 3진수들이 있을 수도 있다. 인코더 (304) 는 라인 구동기들 (306) 을 통해 송신되는 2-비트 심볼들 (314) 의 스트림을 생성한다. 도시된 예에서, 라인 구동기들 (306) 은 개방-드레인 (open-drain) 출력 트랜지스터들 (308) 을 포함한다. 그러나, 다른 예들에서, 라인 구동기들 (306) 은 푸시-풀 구동기 (push-pull driver) 들을 이용하여 W1 (216) 및 W2 (218) 신호 배선들을 구동할 수도 있다. 인코더에 의해 생성된 2-비트 심볼들 (314) 의 출력 스트림은, 어떤 쌍의 연속 심볼들도 2 개의 동일한 심볼들을 포함하지 않는다는 것을 보장함으로써, 연속 심볼들 (314) 사이의 W1 (216) 및 W2 (218) 신호 배선들 중의 적어도 하나의 상태에서의 전이를 가진다. 적어도 하나의 배선 (216 및/또는 218) 에서의 상태의 전이의 이용가능성은 수신 회로 (320) 가 데이터 심볼들 (314) 의 스트림으로부터 수신 클록 (338) 을 추출하는 것을 허용한다.
버스 인터페이스에서, 수신기 (320) 는 클록 및 데이터 복원 (clock and data recovery; CDR) 회로 (328) 를 포함할 수도 있거나, 이와 협력할 수도 있다. 수신기 (320) 는 W1 (216) 및/또는 W2 (218) 신호 배선들로부터 CDR (328) 로의 원시 2-비트 심볼들 (336) 의 스트림을 제공하는 라인 인터페이스 회로들 (326) 을 포함할 수도 있다. CDR (328) 은 원시 심볼들 (336) 로부터 수신 클록 (338) 을 추출하고, 2-비트 심볼들 (334) 의 스트림 및 수신 클록 (338) 을 수신기 (320) 의 다른 회로들 (324 및 322) 에 제공한다. 일부 예들에서, CDR (328) 은 다수의 클록들 (338) 을 생성할 수도 있다. 디코더 (324) 는 심볼들 (334) 의 스트림을 12 개의 3진수들 (332) 의 시퀀스들로 디코딩하기 위하여 수신 클록 (338) 을 이용할 수도 있다. 3진수들 (332) 은 2 비트들을 이용하여 인코딩될 수도 있다. 다음으로, 트랜스코더 (322) 는 12 개의 3진수들 (332) 의 각각의 시퀀스를 8, 12, 16, 19, 또는 20 개의 비트 출력 데이터 엘리먼트들 (330) 로 변환할 수도 있다. 양태에서, 3진수들은 임의의 수의 슬롯들에서 프레임화될 수도 있다. 예를 들어, 3-비트 수는 2 개의 3진 슬롯들에서 프레임화될 수도 있고, 8-비트 수는 6 개의 3진 슬롯들에서 프레임화될 수도 있고, 19-비트 수는 12 개의 3진 슬롯들에서 프레임화될 수도 있다. 더 높은 숫자 베이스 수, 예컨대, 3 개의 배선들을 이용하는 베이스-7 수 (즉, 7진) 에 대하여, 2 개의 7진 슬롯들의 프레임은 출력 데이터의 5 비트들인 10진 31 (25-1) 을 커버하는 10진 48 을 전달할 수 있다.
개시물의 다른 양태들에 따르면, 수신기 (320) 는 3 보다 더 큰 숫자 베이스를 갖는 수들에 상관시키는 원시 심볼들의 스트림을 CDR (328) 에 제공할 수도 있다. 다음으로, CDR (328) 은 이러한 원시 심볼들로부터 수신 클록을 추출할 수도 있고, 심볼들의 스트림 및 수신 클록을 디코더 (324) 및 트랜스코더 (322) 에 제공할 수도 있다. 디코더 (324) 는 심볼들의 스트림을, 3 보다 더 큰 숫자 베이스를 가지는 수들의 시퀀스들로 디코딩하기 위하여, 수신 클록을 이용할 수도 있다. 다음으로, 트랜스코더 (322) 는 수들의 각각의 시퀀스를, 대응하는 수의 비트들을 가지는 출력 데이터 엘리먼트들로 변환할 수도 있다.
도 4 는 버스 (230) 상에서의 송신을 위한 내장된 클록을 갖는 심볼들 (314) 의 시퀀스를 생성하기 위하여 인코더 (304) 에 의해 이용될 수도 있는 인코딩 방식 (400) 을 예시하는 도면이다. 인코딩 방식 (400) 은 또한, 버스 (230) 로부터 수신된 심볼들로부터 3진 전이 수들을 추출하기 위하여 디코더 (324) 에 의해 이용될 수도 있다. 인코딩 방식 (400) 에서, 버스 (230) 의 2 개의 배선들은 4 개의 기본 심볼들 S : {0, 1, 2, 3} 의 정의를 허용한다. 심볼들 (314, 334) 의 시퀀스에서의 임의의 2 개의 연속 심볼들은 상이한 상태들을 가지고, 심볼 시퀀스들 0,0, 1,1, 2,2 및 3,3 은 연속 심볼들의 무효인 조합들이다. 따라서, 오직 3 개의 유효한 심볼 전이들이 각각의 심볼 경계에서 이용가능하고, 여기서, 심볼 경계는 송신 클록에 의해 결정되고, 제 1 심볼 (이전의 심볼 Ps) (422) 이 종결되고 제 2 심볼 (현재의 심볼 Cs) (424) 이 시작되는 포인트를 나타낸다.
본원에서 개시된 특정 양태들에 따르면, 3 개의 이용가능한 전이들이 각각의 Ps 심볼 (422) 에 대하여 전이 수 (T) (426) 로 배정된다. T (426) 의 값은 3진수에 의해 나타내어질 수 있다. 하나의 예에서, 전이 수 (426) 의 값은 인코딩 방식에 대한 심볼-순서화 원 (402) 을 배정함으로써 결정된다. 심볼-순서화 원 (402) 은 4 개의 가능한 심볼들에 대한 원 (402) 상에서의 로케이션들 (404a 내지 404d), 및 로케이션들 (404a 내지 404d) 사이의 회전의 방향 (406) 을 할당한다. 도시된 예에서, 회전의 방향 (406) 은 시계방향이다. 전이 수 (426) 는 유효한 현재의 심볼들 (424) 과 바로 선행하는 심볼 (422) 사이의 분리를 나타낼 수도 있다. 분리는 이전의 심볼 (422) 로부터 현재의 심볼 Cs (424) 에 도달하기 위하여 요구된 심볼-순서화 원 (402) 상에서의 회전의 방향 (406) 을 따르는 스텝 (step) 들의 수로서 정의될 수도 있다. 스텝들의 수는 단일 디지트 베이스-3 수로서 표현될 수 있다. 심볼들 사이의 3-스텝 차이는 0base- 3 로서 나타내어질 수 있다는 것이 인식될 것이다. 도 4 에서의 표 (420) 는 이 접근법을 채용하는 인코딩 방식을 요약한다.
송신기 (300) 에서, 이전에 생성된 심볼 (422), 및 전이 수 (426) 로서 이용되는 입력 3진수의 지식이 주어지면, 표 (420) 는 송신되어야 할 현재의 심볼 (424) 을 룩업 (lookup) 하기 위하여 이용될 수도 있다. 수신기 (320) 에서, 표 (420) 는 이전에 수신된 심볼 (422) 과 현재 수신된 심볼 (424) 사이의 전이를 나타내는 전이 수 (426) 를 결정하기 위하여 룩업으로서 이용될 수도 있다. 전이 수 (426) 는 3진수로서 출력될 수도 있다.
도 5 는 I2C 1 바이트 기입 데이터 동작을 예시하는 타이밍도 (500) 이다. 송신은 마스터 노드가 W1 라인 (예컨대, SCL) (216) 이 하이 (high) 로 유지되는 동안에 W2 라인 (예컨대, SDA 라인) (218) 을 로우 (low) 로 구동함으로써 START 조건 (506) 을 제공할 때에 개시된다. I2C 마스터 노드는 마스터 노드가 I2C 버스 상의 어느 슬레이브 노드를 액세스하는 것을 희망하는지를 표시하기 위한 SDA 라인 (218) 상의 7-비트 슬레이브 ID (502) 와, 그 다음으로, 동작이 판독 또는 기입 동작인지 여부를 표시하는 Read/Write 비트 (512) 를 전송함으로써, Read/Write 비트 (512) 는 기입 동작을 표시하기 위한 논리 0, 및 판독 동작을 표시하기 위한 논리 1 에 있다. 그 ID 가 7-비트 슬레이브 ID (502) 와 일치하는 슬레이브 노드만이 기입 (또는 다른) 동작에 응답할 수 있다. I2C 슬레이브 노드가 그 자신의 ID (502) 를 검출하기 위하여, 마스터 노드는 SCL 라인 (216) 상에서의 8 개의 클록 펄스들과 함께, SDA 라인 (218) 상에서의 적어도 8-비트들을 송신한다. 마스터 노드는 SCL 라인 (216) 이 하이로 유지되는 동안에 SDA 라인 (218) 을 하이로 구동함으로써 트랜잭션 (transaction) 을 종결시키기 위하여 STOP 조건 (516) 을 제공한다. I2C 인터페이스는 START 조건 (506) 후에 "버스-비지 (Bus-Busy)" 상태에 있고 STO 조건 (516) 후에 "버스-프리 (Bus-Free)" 상태에 있는 것으로 고려된다.
버스 통신들은 데이터 송신을 위하여 I2C 버스의 SCL 라인 (216) 및 SDA 라인 (218) 의 조합을 이용할 수도 있다. 버스 심볼은 I2C 송신을 위하여 SCL 라인 (216) 상에서 송신된 클록 신호 펄스 (514) 의 각각의 토글 (toggle) 에 대응하는 시간에서 종결될 수도 있다. 각각의 프레임 송신 주기에서 송신된 클록 토글들의 수는 그러므로, 각각의 버스 송신을 위하여 송신될 수도 있는 심볼들의 수를 정의할 수도 있다. 따라서, 12 개의 심볼 송신들은 6-SCL 펄스 시퀀스 동안에 이용가능한 12 개의 시그널링 상태들에서 제공될 수도 있다.
I2C 버스의 SCL 라인 (216) 및/또는 SDA 라인 (218) 은, 클록 신호가 심볼 전이들 내에 내장되었을 때에 데이터 송신을 위하여 사용될 수도 있다. 결과적으로, SDA 라인 (218) 및 SCL 라인 (216) 은 레거시 I2C 슬레이브 노드 기능성에 영향을 주지 않으면서, 그리고 다른 버스-가능 노드들로부터 레거시 I2C 슬레이브 노드들을 분리시키기 위하여 브릿지 디바이스 (bridge device) 를 이용하지 않으면서, 심볼들을 송신하기 위하여 이용될 수 있다. I2C 모드에서, START 조건 (506) 은 오직 I2C 마스터에 의해 제공될 수도 있다. 또 다른 양태에서, START 조건 (506) 은 어느 노드가 12-심볼 워드를 송신하고 있는지에 의해 제공된다.
도 6 은 공통 (또는 공유된) 버스 (602) 가 I2C 디바이스들 (6041 내지 604k, 606) 및 다른 버스 디바이스들 (612, 6141 내지 614n, 및 6161 내지 616m) 을 결합하는 구성을 예시한다. 다른 버스 디바이스들 (612, 6141 내지 614n, 및 6161 내지 616m) 은 기존에 구성된 I2C 디바이스들 (6041 내지 604k, 606) 과 공존할 수도 있고, 다른 버스 디바이스들 (612, 6141 내지 614n, 및 6161 내지 616m) 중의 어떤 것은 희망되거나 필요하게 된 바와 같이, 기존의 I2C 프로토콜들을 이용하여 통신할 수도 있다.
구성 및 다른 버스 제어 메시지들을 포함하는, 공통 버스 (602) 상에서의 데이터 전송이 개시될 수도 있고, I2C 프로토콜의 수정된 버전들 또는 I2C 프로토콜의 변형을 이용하여 수행될 수도 있다. 하나의 예에서, 모든 트랜잭션들은 트랜잭션을 시작하기 위하여, 기존의 I2C 프로토콜들을 이용하여 개시될 수도 있다.
본원에서 개시된 특정 양태들에 따르면, 공통 버스 (602) 상에서의 통신들은, 공통 버스 (602) 에 결합된 디바이스들 사이의 데이터 전송들이 버스 관리 및/또는 제어 커맨드들 사이에서 발생하는 트랜잭션 (컨테이너 (container)) 들에서 캡슐화 (encapsulate) 되도록 효과적으로 컨테이너화 (containerize) 될 수도 있다. 전형적으로, 현재의 트랜잭션에서 관여된 디바이스들에 의해 채용된 프로토콜을 이용하여 통신하도록 구성되는 디바이스들은 트랜잭션을 무시할 수도 있거나, 트랜잭션을 망각할 수도 있다.
도 7 은 공유된 버스 (602) 의 컨테이너들 또는 동작의 모드들 사이에서 전이하기 위한 일반화된 방식을 예시하는 흐름도 (700) 이다. 각각의 컨테이너, 동작의 모드, 및/또는 프로토콜은 공유된 버스 (602) 의 대응하는 동작 상태 (702, 704, 706, 708, 710) 와 연관될 수도 있다. 버스의 동작의 모드들은 시그널링 방식들, 데이터 스루풋, 송신 포맷들 등의 사이를 구별할 수도 있다. 상이한 동작의 모드들이 프로토콜에 대하여 정의될 수도 있다.
동작 시에, 공통 프로토콜 상태 (704) 는 모든 버스 마스터 디바이스들에 의해 및/또는 버스 상의 모든 디바이스들에 의해 이해되는 공통 프로토콜을 이용하여 버스 관리 커맨드들을 교환하기 위하여 이용된다. 하나의 예에서, 단일-프로토콜 슬레이브 디바이스는 공통 프로토콜을 이용하여 통신할 수 없을 수도 있고, 결과적으로, 버스 관리 커맨드들을 무시할 수도 있다. 이 후자의 예에서, 버스 마스터 디바이스는 공유된 버스 (602) 를 제어할 수도 있고, 단일-프로토콜 슬레이브 디바이스에 의해 이해된 프로토콜을 이용하여 단일-프로토콜 슬레이브 디바이스와 통신할 수도 있다.
일부 예들에서, I2C 프로토콜은 공통 프로토콜 상태 (704) 에서 이용된다. 다른 예들에서는, 상이한 프로토콜이 공통 프로토콜 상태 (704) 에서 이용될 수도 있다. 공유된 버스 (602) 는 스타트업 상태 (startup state) (702) 로 초기화될 수도 있음으로써, 공유된 버스 (602) 에 결합된 디바이스들은 공통 프로토콜을 위하여 구성된다. 공통 프로토콜의 단일-버스 마스터 구현예들에서, 지정된 버스 마스터는 공통 프로토콜에 의해 정의된 절차들에 따라 공유된 버스 (602) 에 결합된 다른 디바이스들을 탐색할 수도 있고 및/또는 구성할 수도 있다. 멀티-마스터 구현예들에서, 하나 이상의 마스터 디바이스들은 어느 버스 마스터가 공통 프로토콜 상태 (704) 로의 진입 시에 공유된 버스 (602) 를 제어하는지를 결정하기 위하여 탐색, 구성, 및/또는 중재 프로세스에 참여할 수도 있다. 버스 계층적 개념이 채택될 수도 있고, 여기서, 하나의 버스 마스터 디바이스는 임의의 시간에 공유된 버스 (602) 의 활성 제어를 가지고, 다른 버스 마스터 디바이스들은 공유된 버스 (602) 의 승인 제어를 요청하고 이를 대기한다.
공통 프로토콜 상태 (704) 에서, 하나 이상의 디바이스들은 공유된 버스 (602) 의 제어를 위하여 경합할 수도 있다. 공유된 버스 (602) 는 공유된 버스 (602) 에 결합된 디바이스들 사이의 통신 트랜잭션을 가능하게 하기 위하여 희망되거나 중재된 프로토콜 상태 (706, 708) 에서 동작될 수도 있다. 트랜잭션의 완료 시에, 공유된 버스 (602) 는 공통 프로토콜 상태 (704) 로 복귀된다. 어떤 디바이스도 공유된 버스 (602) 에 대한 액세스를 요청하고 있지 않을 때, 공유된 버스 (602) 는 아이들 상태 (710) 에 진입할 수도 있다. 아이들 상태에서, 하나 이상의 디바이스들은 동작의 파워-다운 (power-down) 모드에 진입할 수도 있다. 버스-마스터 디바이스는 임의의 디바이스가 공유된 버스 (602) 에 대한 액세스를 요청하고 있는지를 결정하기 위하여, 공유된 버스 (602) 로 하여금, 공통 프로토콜 상태 (704) 에 진입하게 할 수도 있다. 일부 사례들에서, 공유된 버스 (602) 는 인터럽트 (interrupt) 또는 다른 이벤트에 응답하여 공통 프로토콜 상태 (704) 로 복귀될 수도 있다.
프로토콜 상태 (704, 706, 708) 로의 진입 및 프로토콜 상태들 (704, 706, 708) 로부터의 탈출은 버스 관리 커맨드들을 이용하여 달성될 수도 있다. 이 커맨드들은 시그널링, 메시징, 또는 공유된 버스 (602) 의 아키텍처 및 설계에 기초하여 선택된 시그널링 및 메시징의 일부 조합을 이용하여 구현될 수도 있다.
데이터 전송들은 공통 프로토콜 상태 (704), 또는 공유된 버스 (602) 에 결합된 디바이스들의 서브세트들에 의해 이용된 프로토콜 상태들 (706, 708) 중의 하나에서 발생할 수도 있다. 디바이스들의 서브세트들에 의해 이용된 프로토콜 상태들 (706, 708) 은 공유된 버스 (602) 와 호환가능한 임의의 프로토콜일 수도 있다. 데이터는 워드들, 프레임들, 및/또는 패킷들의 단위들로 전송될 수도 있고, 신축적인 데이터 전송 모드들이 고려된다.
일부 사례들에서, 어드레스들은 공유된 버스 (602) 에 결합된 디바이스들에 동적으로 할당될 수도 있다. 하나의 예에서, 동적 어드레스 할당은 공통 프로토콜을 이용하여 통신하는 디바이스들의 고유한 식별을 제공하기 위하여, 그리고 이러한 디바이스들에 대한 우선순위 랭킹들을 배정하기 위하여, 공통 프로토콜 상태 (704) 에서 수행된다. 일부 사례들에서, 동적 어드레스 할당은 공통 프로토콜 이외의 프로토콜들을 이용하여 통신하는 디바이스들의 고유한 식별을 제공하기 위하여, 그리고 이러한 디바이스들에 대한 우선순위 랭킹들을 배정하기 위하여, 다른 프로토콜 상태들 (706, 708) 중의 하나 이상에서 수행된다.
일부 사례들에서, 예외-처리 방식은 공통 프로토콜 상태 (704) 에 대하여 정의된다. 예를 들어, I2C-호환가능한 대역내 (in-band) 인터럽트 절차는 공통 프로토콜이 I2C 또는 I2C 의 파생물일 때에 제공될 수도 있다. 일부 사례들에서는, "핫-플러그 (hot-plug)" 절차가 구현될 수도 있고, 여기서, 그 핫-플러그 절차는 대역내 인터럽트 및 동적 어드레스 할당 절차들을 포함하고 및/또는 이를 이용한다.
배선 상태 변경들에 기초하여 데이터를 인코딩/디코딩하는 예시적인 설명
양태에서, 인코딩 방식은 12 심볼들의 런 (run) 들을, 워드들을 생성하기 위한 6 개의 쌍들로서 이용할 수도 있다. 각각의 워드는 데이터의 16 비트들 및 패리티 (parity) 의 2 비트들로 형성된 18 비트들을 포함한다. 심볼들의 쌍들은 최상위 심볼 쌍 우선 (most significant symbol pair first) 으로 송신된다. 쌍에서의 최상위 심볼이 먼저 전송된다. 그러므로, 데이터는 단일 데이터 레이트 (single data rate; SDR) 에 따라 최상위 비트 (most significant bit; MSb) 우선으로 코딩되어, 최초의 16 데이터 비트들이 MSb 에서, 그 다음으로, 2 패리티 비트들, P1 및 P0 이 송신된다. 12 개의 심볼들은 각각의 쌍의 심볼들을 3 비트들로 코딩함으로써 18 비트들로 변환한다. 심볼 코드들 0, 1, 또는 2 는 공식 {(W1) XNOR (이전-W1), (W2 XNOR (이전-W2)} 에 기초할 수도 있고, 여기서, W1 은 제 1 배선이고, W2 는 제 2 배선이고, XNOR 은 논리 "배타적-NOR" 연산이다.
본원에서 개시된 양태들에 따르면, 2 개 이상의 배선들에 대하여, 인코더와 같은 디바이스는 데이터의 2진 스트링을 수신할 수도 있다. 다음으로, 인코더는 프레임들에서의 2진 스트링을 분할할 수도 있고, 여기서, 프레임의 크기는 프레임의 심볼들에 대하여 선택된 베이스-N 숫자의 가장 큰 값을 커버하기에 충분할만큼 클 수도 있다. 예를 들어, 베이스-3 수 구현예 (즉, 이용가능한 2 개의 물리적 배선들) 및 2 개의 심볼 슬롯들에 대하여, 베이스-3 수의 가장 큰 값은 2x31 + 2x30 = 2x3 + 2x1 = 6 + 2 = 8 이다 (여기서, 가장 큰 베이스-3 수 값을 계산하기 위하여 이용된 수들은 10진 (베이스-10) 표기임). 그러나, 최대 커버된 전체 2진수는 7 (즉, 3'b111) 이다. 10진 표기에서의 이 수는 1x22 + 1x21 + 1x20 = 4 + 2 + 1 = 7 이다.
또 다른 예에서, 베이스-7 수 구현예 (즉, 이용가능한 3 개의 물리적 배선들) 및 2 개의 심볼 슬롯들에 대하여, 베이스-7 수의 가장 큰 값은 6x71 + 6x70 = 6x7 + 6x1 = 42 + 6 = 48 이다 (여기서, 가장 큰 베이스-7 수 값을 계산하기 위하여 이용된 수들은 10진 (베이스-10) 표기임). 그러나, 최대 커버된 전체 2진수는 31 (즉, 5'b11111) 이다. 10진 표기에서의 이 수는 1x24 + 1x23 + 1x22 + 1x21 + 1x20 = 16 + 8 + 4 + 2 + 1 = 31 이다.
인코더는 즉, 3진 (2 개의 물리적 배선들) 일 경우에 베이스-3, 또는 7진 (3 개의 물리적 배선들) 일 경우에 베이스-7 상의 각각의 2진 프레임의 값의 베이스-N 계수들을 추가로 계산할 수도 있다. 다음으로, 인코더는 2진 값들로 계산된 계수들을 표현하고, 각각의 배선에 대하여 위에서 설명된 XNOR 기반 공식을 적용함으로써 구성적 배선들 상에서의 변경들을 결정한다. 양태에서, "0" 의 값을 반환하는 XNOR 기반 공식은 상태가 변경되었다는 것을 표시하는 반면, "1" 의 값을 반환하는 XNOR 기반 공식은 상태의 미변경을 표시한다.
본원에서 개시된 양태들에 따르면, 2 개 이상의 배선들에 대하여, 디코더와 같은 디바이스는 2 개 이상의 배선들 상에서의 상태들의 변경들을 평가할 수도 있다. 베이스-N 수 구현예, 및 베이스-N 수들에 대한 미리 확립된 수의 슬롯들에 대하여, 디코더는 수신된 수의 값을 계산할 수도 있다. 예를 들어, 베이스-3 수 구현예 (즉, 이용가능한 2 개의 물리적 배선들) 및 2 개의 심볼들 슬롯들에 대하여, 디코더에 의해 수신된 계수들은 (슬롯들에 따른) 2 개의 연속적인 심볼들의 쌍들에서의 0, 1, 또는 2 의 임의의 조합일 수도 있다. 디코더는 결과적인 수가 (Symbol_1)x31 + (Symbol_2)x30 = (Symbol_1)x3 + (Symbol_2)x1 인 것으로 계산할 수도 있다. 동일한 방법론을 이용하면, 베이스-N 수들 및 미리 확립된 수의 슬롯들의 임의의 다른 조합에 대한 결과적인 수는 도 11 에서 표시된 바와 같이, 계산될 수도 있다. 다음으로, 디코더는 디코딩된 데이터인 계산된 수를 2진 포맷으로 표현할 수도 있다.
다른 시스템들과의 역호환성을 위하여, 인코더 및 디코더는 지능적인 보충적 단계를 수행할 수도 있고, 여기서, 본원에서 개시된 양태들에 따라, 인코더는 더미 심볼 (dummy symbol) 들을 추가할 수도 있거나, 디코더는 더미 심볼들을 무시할 수도 있다.
도 8 은 본원에서 개시된 특정 양태들에 따라 구성된 인코더 (800) 및 디코더 (820) 의 예를 예시하는 블록도이다. 버스 동작들을 위하여, 인코더 (800) 는 데이터 (810) 를 더 큰 숫자 베이스 (예컨대, 베이스 3, 7, 8, 10, 16 등) 수들로 트랜스코딩할 수도 있다. 도 8 에서 도시된 바와 같이, 인코더 (800) 는 데이터 (810) 를, 제 1 신호 배선 W1 (216) 및 제 2 신호 배선 W2 (218) 상에서 송신된 심볼들로서 인코딩되는 베이스-3 수들로 트랜스코딩할 수도 있다. 그러나, 개시물의 양태들에 따르면, 인코더 (800) 는 데이터를 임의의 베이스-N 수들 (여기서, N 은 2 보다 더 큼) 로 트랜스코딩할 수도 있고, 여기서, 수들은 2 개를 초과하는 신호 배선들 상에서 송신된 심볼들로서 인코딩된다. 도시된 예에서, 입력 데이터 (810) 의 각각의 데이터 엘리먼트 (또한, 데이터 워드로서 지칭됨) 는 8, 12, 16, 19, 또는 20 비트들과 같은 미리 정의된 수의 비트들을 가질 수도 있다. 비트들 투 프레임 할당기 (bits to frame allocator) (802) 는 인코딩되어야 할 데이터 (입력 데이터) (810) 의 2진 스트링을 수신할 수도 있고, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당할 수도 있다. 예를 들어, 입력 데이터의 20 비트들의 길이를 가질 때, 비트들 투 프레임 할당기 (802) 는 2진 스트링의 순차적인 서브세트들 (812) (예컨대, 20-비트 길이의 입력 데이터 (810) 의 매 3 비트들) 을 개개의 프레임들에 할당할 수도 있다.
프레임 값 투 심볼 변환기 (frame value to symbol convertor) (804) 는 프레임과 연관된 비트들의 서브세트 (812) 를 베이스-2 계수들로서 이용하여 베이스-2 수 다항식의 결과적인 수를 계산함으로써, 프레임의 프레임 값을 결정한다. 예를 들어, 프레임과 연관된 비트들의 순차적인 서브세트가 {1, 0, 1} 일 경우, 결과적인 수는 1x22 + 0x21 + 1x20 = 4 + 1 = 5 이다. 이 때문에, 비트들의 순차적인 서브세트 {1, 0, 1} 와 연관된 프레임에 대한 프레임 값은 5 이다.
프레임 값 투 심볼 변환기 (804) 는 프레임 값에 기초하여 프레임에 대한 베이스-3 수 다항식의 베이스-3 (3진) 계수들을 추가로 계산하고, 여기서, 베이스-3 계수들은 프레임과 연관된 심볼들의 시퀀스의 심볼들에 각각 대응한다. 상기 예를 이용하면, 프레임 값이 5 일 경우, 동등한 베이스-3 수 다항식은 5 = 1x31 + 2x30 이다. 따라서, 프레임에 대한 베이스-3 계수들은 프레임과 연관된 심볼들의 시퀀스의 제 1 심볼 및 제 2 심볼에 각각 대응하는 1 및 2 이다.
다음으로, 프레임 값 투 심볼 변환기 (804) 는 각각의 심볼에 대응하는 개개의 베이스-3 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산한다. 상기 예를 이용하면, 프레임의 제 1 심볼에 대응하는 베이스-3 계수가 1 일 경우, 동등한 베이스-2 수 다항식은 1 = 0x21 + 1x20 이다. 따라서, 제 1 심볼에 대한 베이스-2 계수들은 0 및 1 이다. 유사하게, 프레임의 제 2 심볼에 대응하는 베이스-3 계수가 2 일 경우, 동등한 베이스-2 수 다항식은 2 = 1x21 + 0x20 이다. 따라서, 제 2 심볼에 대한 베이스-2 계수들은 1 및 0 이다.
2 개의 배선들 W1 및 W2 에 대하여, 2진 심볼은 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2)} 에 기초할 수도 있다. 특히, W1 (예컨대, SCL) 에 대한 XNOR 연산의 위치는 역호환성의 간략화되고 스케일링가능한 방법을 제공하기 위하여 심볼의 최상위 비트 위치 상에 배치될 수도 있다. 또한, 심볼에 대하여 계산된 베이스-2 계수들은 심볼과 연관된 배선들에 대하여 수행된 XNOR 연산들의 결과들에 대응할 수도 있다. "0" 의 값을 반환하는 XNOR 연산은 상태가 배선의 현재의 상태와 이전의 상태 사이에서 변경되었다는 것을 표시한다. "1" 의 값을 반환하는 XNOR 연산은 배선의 현재의 상태와 이전의 상태 사이의 상태의 미변경을 표시한다.
상기 예를 이용하면, 제 1 심볼에 대한 베이스-2 계수들은 0 및 1 이다. 따라서, 제 1 베이스-2 계수 0 은 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, (W1) XNOR (이전-W1) = 0 이다. 이 때문에, 프레임 값 투 심볼 변환기 (804) 는 이전-W1 값 및 제 1 베이스-2 계수의 지식에 기초하여 W1 에 대한 값을 결정함으로써, 공식에 기초하여 제 1 심볼의 제 1 비트를 결정할 수도 있다. 제 2 베이스-2 계수 1 은 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, (W2) XNOR (이전-W2) = 1 이다. 이 때문에, 프레임 값 투 심볼 변환기 (804) 는 이전-W2 값 및 제 2 베이스-2 계수의 지식에 기초하여 W2 에 대한 값을 결정함으로써, 공식에 기초하여 제 1 심볼의 제 2 비트를 결정할 수도 있다. 프레임 값 투 심볼 변환기 (804) 는 제 2 심볼에 대하여 계산된 베이스-2 계수들을 이용하는 것과 유사한 방식으로 제 2 심볼의 제 1 및 제 2 비트들을 결정할 수도 있다.
프레임 값 투 심볼 변환기 (804) 에 의해 생성된 2-비트 심볼들 (814) 의 스트림은 라인 구동기들 (806) 을 통해 송신된다. 도시된 예에서, 라인 구동기들 (806) 은 개방-드레인 출력 트랜지스터들 (808) 을 포함한다. 그러나, 다른 예들에서, 라인 구동기들 (806) 은 푸시-풀 구동기들을 이용하여 W1 (216) 및 W2 (218) 신호 배선들을 구동할 수도 있다.
디코더 (820) 는 W1 (216) 및/또는 W2 (218) 신호 배선들로부터 심볼 수신기 (828) 로의 원시 2-비트 심볼들 (836) 의 스트림을 제공하는 라인 인터페이스 회로들 (826) 을 포함할 수도 있다. 양태에서, 심볼 수신기 (828) 는 프레임에서의 심볼들의 시퀀스를 수신한다. 심볼들의 시퀀스는 프레임에 할당되는 데이터 비트들의 시퀀스를 나타낼 수도 있다. 또한, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트일 수도 있고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다.
심볼 수신기 (828) 는 원시 심볼들 (836) 로부터 수신 클록을 추출하는 클록 및 데이터 복원 (CDR) 회로를 포함할 수도 있다. 심볼 수신기 (828) 는 2-비트 심볼들 (834) 의 스트림을 상태 변경 평가기 (824) 에 제공한다. 상태 변경 평가기 (824) 는 2진 심볼에 대한 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2)} 을 이용하여 심볼 수신기 (828) 로부터 수신된 심볼들의 시퀀스에 기초하여 배선들 W1 (216) 및 W2 (218) 의 상태들의 변경들을 평가한다.
현재 수신된 심볼은 배선들의 현재의 상태들에 각각 대응하는 비트들을 포함한다. 따라서, 상태 변경 평가기 (824) 는 심볼의 각각의 배선에 대한 XNOR 연산을 수행함으로써, 심볼에 대한 상태 값들을 계산할 수도 있다. 예를 들어, 수신된 심볼의 제 1 비트는 제 1 배선 (W1) 의 현재의 상태에 대응한다. 따라서, 상태 변경 평가기 (824) 는 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산, 즉, (W1) XNOR (이전-W1) = S1 을 수행함으로써, 심볼에 대한 제 1 상태 값 S1 을 계산할 수도 있다. 수신된 심볼의 제 2 비트는 제 2 배선 (W2) 의 현재의 상태에 대응한다. 따라서, 상태 변경 평가기 (824) 는 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산, 즉, (W2) XNOR (이전-W2) = S2 를 수행함으로써, 심볼에 대한 제 2 상태 값 S2 를 계산할 수도 있다. 계산된 상태 값들 (832) (예컨대, S1 및 S2) 은 심볼 투 데이터 변환기 (symbol to data convertor) (822) 에 제공될 수도 있다.
심볼 투 데이터 변환기 (822) 는 상태 값들 (832) 에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산한다. 상태 값들은 심볼에 대응하는 베이스-2 수 다항식의 베이스-2 계수들에 대응할 수도 있다. 따라서, 심볼 투 데이터 변환기 (822) 는 심볼과 연관된 상태 값들을 이용하여 베이스-2 수 다항식의 결과적인 수를 계산함으로써 심볼 값을 계산할 수도 있다. 예를 들어, 제 1 심볼에 대한 상태 값들 {S1, S2} 이 {0, 1} 일 경우, 베이스-2 계수들은 0 및 1 이고, 결과적인 수는 0x21 + 1x20 = 0 + 1 = 1 이다. 이 때문에, 제 1 심볼에 대한 심볼 값은 1 이다. 유사하게, 제 2 심볼에 대한 상태 값들 {S1, S2} 이 {1, 0} 일 경우, 베이스-2 계수들은 1 및 0 이고, 결과적인 수는 1x21 + 0x20 = 2 + 0 = 2 이다. 이 때문에, 제 2 심볼에 대한 심볼 값은 2 이다.
프레임에서의 심볼들의 시퀀스의 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 대응할 수도 있고, 여기서, N 은 2 보다 더 크다. 상기 예에서, 프레임의 제 1 및 제 2 심볼 값들은 베이스-3 (3진) 수 다항식의 베이스-3 계수들에 각각 대응한다. 따라서, 심볼 투 데이터 변환기 (822) 는 프레임과 연관된 심볼 값들을 이용하여 베이스-3 수 다항식의 결과적인 수를 계산함으로써 프레임 값을 추가로 계산할 수도 있다. 상기 예를 이용하면, 1 의 제 1 심볼 값은 제 1 베이스-3 계수에 대응하고, 2 의 제 2 심볼 값은 제 2 베이스-3 계수에 대응한다. 따라서, 결과적인 수는 1x31 + 2x30 = 5 이다. 이 때문에, 제 1 및 제 2 심볼들을 포함하는 프레임에 대한 프레임 값은 5 이다. 다음으로, 심볼 투 데이터 변환기 (822) 는 데이터 비트들 (830) 의 시퀀스를 복원하기 위하여 2진 포맷으로 프레임 값을 표현한다. 여기서, 5 의 프레임 값은 2진 데이터 비트 시퀀스 {1, 0, 1} 과 동등한 5 = 1x22 + 0x21 + 1x20 로서 표현될 수도 있다.
양태에서, 3진수들은 임의의 수의 심볼 슬롯들에서 프레임화될 수도 있다. 예를 들어, 3-비트 수는 2 개의 3진 심볼 슬롯들에서 프레임화될 수도 있고, 8-비트 수는 6 개의 3진 심볼 슬롯들에서 프레임화될 수도 있고, 19-비트 수는 12 개의 3진 심볼 슬롯들에서 프레임화될 수도 있다. 더 높은 숫자 베이스 수, 예컨대, 3 개의 배선들을 이용하는 베이스-7 수 (즉, 7진) 에 대하여, 2 개의 7진 슬롯들의 프레임은 출력 데이터의 5 비트들인 10진 31 (25-1) 을 커버하는 10진 48 을 전달할 수 있다.
도 9 는 XNOR 연산을 사용하는 인코딩/디코딩 방식 (XNOR 인코딩 방식) 으로부터 기인하는 표 (900) 를 예시한다. XNOR 인코딩 방식은 버스 (230) 상에서의 송신을 위한 심볼들 (814) 의 시퀀스를 생성하기 위하여 인코더 (800) 에 의해 이용될 수도 있다. XNOR 인코딩 방식은 또한, 버스 (230) 로부터 수신된 심볼들로부터 베이스-N 수 다항식의 베이스-N 계수들을 추출하기 위하여 디코더 (820) 에 의해 이용될 수도 있다. 도 9 는 구체적으로, 베이스-3 (3진) 수 구현예를 이용하여 2 개의 배선들 (예컨대, W1 (216) 및 W2 (218)) 에 적용된 XNOR 인코딩 방식에 속한다. 그러나, 일반적으로, XNOR 인코딩 방식은 추가적인 수의 배선들 (예컨대, 4, 5, 6 개 등의 배선들) 에 적용될 수도 있다. 예를 들어, XNOR 인코딩 방식은 베이스-7 수 (7진) 구현예를 이용하는 3 개의 배선들, 베이스-15 수 (15진) 구현예를 이용하는 4 개의 배선들, 및 베이스-31 수 구현예를 이용하는 5 개의 배선들에 적용될 수도 있다.
양태에서, 주어진 숫자 베이스에 대하여, 송신된 수들은 다양한 길이들로 프레임화될 수 있다. 프레임의 길이는 계수들이 승산하는 데이터 베이스의 거듭제곱을 결정한다. 예를 들어, 프레임에서의 2 개의 심볼 슬롯들을 이용하는 3진 구현예에서, 수는 다항식 T1x31 + T0x30 에 의해 주어진다. 프레임에서의 12 개의 심볼 슬롯들을 이용하면, 수는 다항식 T11x311 + T10x310 +...+ T1x31 + T0x30 에 의해 주어진다. 또 다른 예에서, 프레임에서의 2 개의 심볼 슬롯들을 이용하는 7진 구현예에서, 수는 S1x71 + S0x70 에 의해 주어진다. 프레임에서의 12 개의 심볼 슬롯들을 이용하면, 수는 S11x711 + S10x710 +...+ S1x71 + S0x70 에 의해 주어진다.
예에서, 3 개의 배선들 W1, W2, 및 W3 에 대하여, 2진 심볼은 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2), (W3) XNOR (이전-W3)} 에 기초할 수도 있다. 2 개의 배선들 (예컨대, W1 및 W2) 에 대하여, 2진 심볼에 대한 공식은 위에서 언급된 바와 같이, {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2)} 로 된다. 오직 2 개의 배선들이 있으므로, W3 비트는 존재하지 않는다. W1 (예컨대, SCL) 에 대한 XNOR 연산의 위치는 역호환성의 간략화되고 스케일링가능한 방법을 제공하기 위하여 심볼의 최상위 비트 위치 상에 배치될 수도 있다.
도 9 의 표 (900) 는 지금부터 추가로 논의될 것이다. 심볼들의 시퀀스로/로부터의 표 (900) 에서의 (예컨대, 3-비트 값들 0, 1, 2, 3, 4, 5, 6, 및 7 과 동등한) 데이터 비트들의 시퀀스의 인코딩/디코딩은 상기 언급된 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2)} 에 기초한다. 표 (900) 은 또한, 디코딩 동작이 8 의 값을 반환하는 특수한 경우를 도시한다. 그러나, 8 의 값은 3 비트들을 이용하여 2진 포맷으로 표현될 수 없으므로, 8 의 값을 반환하는 디코딩 동작은 에러를 표시하는 것으로 고려된다. 공식을 이용하여 인코딩 동작을 예시하기 위하여, 2 의 3-비트 값과 동등한 데이터 비트들의 시퀀스의 인코딩이 설명될 것이다.
프레임의 3 개의 데이터 비트들의 시퀀스 {0, 1, 0} 는 0x22 + 1x21 + 0x20 = 0 + 2 + 0 = 2 로서 표현될 수도 있다. 이 때문에, {0, 1, 0} 은 2 의 프레임 값과 동등하다. 인코더는 프레임에 대한 베이스-3 수 다항식의 제 1 베이스-3 (3진) 계수 및 제 2 베이스-3 계수를 계산하기 위하여 프레임 값 2 를 이용할 수도 있다. 제 1 및 제 2 베이스-3 계수들은 프레임의 제 1 및 제 2 심볼들에 각각 대응한다. 따라서, 프레임 값이 2 일 때, 동등한 베이스-3 수 다항식은 2 = 0x31 + 2x30 이다. 따라서, 프레임에 대한 제 1 베이스-3 계수는 제 1 심볼에 대응하는 0 이고, 프레임에 대한 제 2 베이스-3 계수는 제 2 심볼에 대응하는 2 이다.
다음으로, 인코더는 각각의 심볼에 대응하는 베이스-3 계수에 따라 제 1 심볼제 2 심볼의 각각에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산할 수도 있다. 여기서, 제 1 심볼에 대응하는 제 1 베이스-3 계수는 0 이다. 동등한 베이스-2 수 다항식은 0 = 0x21 + 0x20 에 의해 주어진다. 따라서, 제 1 심볼에 대한 베이스-2 계수들은 0 및 0 → {0, 0} 이다. 유사하게, 제 2 심볼에 대응하는 제 2 베이스-3 계수는 2 이다. 동등한 베이스-2 수 다항식은 2 = 1x21 + 0x20 에 의해 주어진다. 따라서, 제 2 심볼에 대한 베이스-2 계수들은 1 및 0 → {1, 0} 이다.
2 개의 배선들 W1 및 W2 에 대하여, 2진 심볼은 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2)} 에 기초한다. 이와 같이, 제 1 심볼제 2 심볼의 각각은 제 1 배선 (W1) 의 현재의 상태와, W1 에 대한 제 1 상태 값을 반환하는 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산, 및 제 2 배선 (W2) 의 현재의 상태와, W2 에 대한 제 2 상태 값을 반환하는 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산에 기초하여 결정될 수도 있다. 제 1 상태 값이 0 일 때, W1 과 이전-W1 사이의 상태의 변경 (또는 "풀 다운") 이 표시된다. 제 1 상태 값이 1 일 때, W1 과 이전-W1 사이의 상태의 미변경 (또는 "액션 없음") 이 표시된다. 제 2 상태 값이 0 일 때, W2 와 이전-W2 사이의 상태의 변경 (또는 "풀 다운") 이 표시된다. 제 2 상태 값이 1 일 때, W2 와 이전-W2 사이의 상태의 미변경 (또는 "액션 없음") 이 표시된다.
따라서, 제 1 심볼에 대한 베이스-2 계수들 {제 1 베이스-2 계수, 제 2 베이스-2 계수} 이 {0, 0} 일 때, 제 1 베이스-2 계수 0 은 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, XNOR (W1, 이전-W1) = 0 이다. 이 때문에, 인코더는 이전-W1 및 제 1 베이스-2 계수의 지식에 기초하여 W1 에 대한 적절한 값을 결정함으로써 제 1 심볼의 제 1 비트를 결정할 수도 있다. 제 2 베이스-2 계수 0 은 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, XNOR (W2, 이전-W2) = 0 이다. 이 때문에, 인코더는 이전-W2 및 제 2 베이스-2 계수의 지식에 기초하여 W2 에 대한 적절한 값을 결정함으로써 제 1 심볼의 제 2 비트를 결정할 수도 있다.
제 2 심볼에 대한 베이스-2 계수들 {제 1 베이스-2 계수, 제 2 베이스-2 계수} 이 {1, 0} 일 때, 제 1 베이스-2 계수 1 은 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, XNOR (W1, 이전-W1) = 1 이다. 이 때문에, 인코더는 이전-W1 및 제 1 베이스-2 계수의 지식에 기초하여 W1 에 대한 적절한 값을 결정함으로써 제 2 심볼의 제 1 비트를 결정할 수도 있다. 제 2 베이스-2 계수 0 은 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, XNOR (W2, 이전-W2) = 0 이다. 이 때문에, 인코더는 이전-W2 및 제 2 베이스-2 계수의 지식에 기초하여 W2 에 대한 적절한 값을 결정함으로써 제 2 심볼의 제 2 비트를 결정할 수도 있다.
표 (900) 에서의 0, 1, 3, 4, 5, 6, 및 7의 3-비트 값들과 동등한 데이터 비트들의 다른 시퀀스들은 위에서 설명된 바와 같이, 2 의 3-비트 값과 동등한 비트들의 시퀀스 {0, 1, 0} 를 인코딩하기 위하여 이용된 동일한 XNOR 인코딩 방식에 따라 인코딩될 수도 있다. 송신기 (300) 또는 인코더 (800) 에서, XNOR 인코딩 방식은 이전에 생성된 심볼 및 입력 3진 계수들의 지식이 주어질 경우에, 송신되어야 할 현재의 심볼을 결정하기 위하여 이용될 수도 있다. 수신기 (320) 또는 디코더 (820) 에서, XNOR 인코딩 방식은 이전에 수신된 심볼과 현재 수신된 심볼 사이의 전이를 나타내는 3진 계수들을 결정하기 위하여 이용될 수도 있다.
XNOR 방식을 이용하여 디코딩 동작을 예시하기 위하여, 5 의 3-비트 값을 복원하기 위한 심볼들의 시퀀스의 디코딩이 설명될 것이다. 디코더에 의해 현재 수신된 심볼은 배선들 W1 및 W2 의 현재의 상태들에 각각 대응하는 비트들을 포함한다. 따라서, 디코더는 심볼의 각각의 배선에 대한 XNOR 연산을 수행함으로써 심볼에 대한 상태 값들을 계산할 수도 있다. 예를 들어, 수신된 심볼의 제 1 비트는 제 1 배선 (W1) 의 현재의 상태에 대응한다. 따라서, 디코더는 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산, 즉, XNOR (W1, 이전-W1) = S1 을 수행함으로써, 심볼에 대한 제 1 상태 값 S1 을 계산할 수도 있다. 수신된 심볼의 제 2 비트는 제 2 배선 (W2) 의 현재의 상태에 대응한다. 따라서, 디코더는 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산, 즉, XNOR (W2, 이전-W2) = S2 를 수행함으로써, 심볼에 대한 제 2 상태 값 S2 를 계산할 수도 있다.
디코더는 상태 값들 S1 및 S2 에 기초하여 제 1 심볼제 2 심볼에 대한 심볼 값들을 한다. 상태 값들은 심볼에 대응하는 베이스-2 수 다항식의 베이스-2 계수들에 대응할 수도 있다. 따라서, 디코더는 심볼과 연관된 상태 값들을 이용하여 베이스-2 수 다항식의 결과적인 수를 계산함으로써 심볼 값을 계산할 수도 있다. 예를 들어, 제 1 심볼에 대한 상태 값들 {S1, S2} 이 {0, 1} 일 경우, 베이스-2 계수들은 0 및 1 이고, 결과적인 수는 0x21 + 1x20 = 0 + 1 = 1 이다. 이 때문에, 제 1 심볼에 대한 심볼 값은 1 이다. 유사하게, 제 2 심볼에 대한 상태 값들 {S1, S2} 이 {1, 0} 일 경우, 베이스-2 계수들은 1 및 0 이고, 결과적인 수는 1x21 + 0x20 = 2 + 0 = 2 이다. 이 때문에, 제 2 심볼에 대한 심볼 값은 2 이다.
프레임에서의 제 1 심볼제 2 심볼의 심볼 값들은 베이스-3 (3진 ) 수 다항식의 베이스-3 계수들에 각각 대응한다. 따라서, 디코더는 프레임과 연관된 심볼 값들을 이용하여 베이스-3 수 다항식의 결과적인 수를 계산함으로써 프레임 값을 추가로 계산할 수도 있다. 여기서, 1제 1 심볼 값은 제 1 베이스-3 계수에 대응하고, 2 의 제 2 심볼 값은 제 2 베이스-3 계수에 대응한다. 따라서, 결과적인 수는 1x31 + 2x30 = 5 이다. 다음으로, 디코더는 2진 데이터 비트 시퀀스 {1, 0, 1} 와 동등한, 데이터 비트들의 시퀀스 {1, 0, 1}, 즉, 5 = 1x22 + 0x21 + 1x20 를 복원하기 위하여 2진 포맷으로 결과적인 수를 표현할 수도 있다.
양태에서, XNOR 인코딩 방식은 3진 (또는 더 큰 숫자 베이스) 계수들을 유도하기 위한 기본 게이트들을 이용한다. 가장 덜 복잡한 심볼 기반 데이터 전송을 위하여, 즉, 베이스 3 (3진) 수들에 대해, 본원에서 개시된 양태들은 코딩 및 디코딩의 용이함과, 변환 표의 필요성 없이 3진 계수들을 직접적으로 판독하기 위한 능력을 허용한다. 3 개의 배선들 또는 4 개의 배선들 상에서 각각 구현된 더 큰 숫자 베이스들, 예컨대, 베이스 7 (7진) 또는 베이스 15 (15진) 수들에 대하여, 본원에서 개시된 양태들은 코딩 및 디코딩의 용이함을 허용할 뿐만 아니라, 구현을 위하여 요구된 게이트들의 수를 감소시킨다. 본원에서 개시된 양태들은 또한, 상이한 타입들의 이전에 이용된 인터페이스들과의 역호환성을 보장하는 것이 필요한 (예컨대, 개선된 집적 회로간 (I3C)) 실제적인 시스템들을 위한 이익들을 제공한다.
상이한 타입들의 인터페이스들은 데이터 전송에 관련된 클록 신호를 제공하기 위한 하나의 물리적 배선을 이용할 수도 있다. 데이터 전송 자체는 동일한 인터페이스의 인접한 배선들 상에서 발생할 수도 있다. 양태에서, 클록 신호는 동일한 수의 전체 물리적 배선들을 이용하면서 데이터 스루풋을 증가시키기 위하여, 데이터 전송을 위하여 지정된 배선들 내로 내장될 수도 있다. 본 개시물의 양태들에 따르면, XNOR 인코딩 방식은 클록 배선 활성을 심볼들의 최상위 비트 위치에 위치시킬 수도 있다. 또한, XNOR 기반 코딩으로 인해, 그 배선 상에서의 비활성은 "1" 로서 코딩될 수도 있다.
역호환가능한 고속 데이터 전송을 위한 예시적인 방식은 제 1 배선 W1 (예컨대, SCL) 을 50 ns 보다 더 빠른 LOW 레벨로 풀 다운할 수도 있다. 이것은 "모든 SCL LOW" 방식으로서 지칭될 수도 있다. 결과적으로, 이러한 방식에 따르면, 데이터 스루풋을 감소시키는 더미 심볼이 데이터 스트림에 불필요하게 추가될 수도 있다.
더미 심볼을 데이터 스트림에 불필요하게 추가하는 것을 회피하기 위하여, 역호환가능한 고속 데이터 전송을 위한 또 다른 예시적인 방식은 다음 심볼이 W1 이 자연적으로 아래로 가는 것을 요구하지 않을 경우에만 SCL 을 지능적으로 풀 다운한다. 이것은 "선택 SCL LOW" 방식으로서 지칭될 수도 있다. 본 개시물의 양태들 (예컨대, XNOR 인코딩 방식) 은 필요한 더미 심볼들과, SCL 을 자연적으로 LOW 레벨로 복귀시키는 심볼들 사이의 식별을 허용한다. 이것은 다수-입력 XOR 게이트 및 AND/NAND 게이트들을 이용하여 구현될 수도 있다.
데이터 전송 스테이지가 LOW 위치에서 제 1 배선 W1 (예컨대, SCL) 과 함께 시작하는 것으로 가정하면, 선택 SCL LW 고속 데이터 전송 방식은 다음과 같을 수도 있다:
1) MSb "1" 을 가지는 임의의 심볼은 더미 심볼에 의해 후행될 필요가 없다.
2) MSb "0" 을 가지고, MSb "0" 및 나머지 비트들 "0" 의 적어도 하나를 가지는 임의의 심볼에 의해 후행되는 임의의 심볼은 더미 심볼에 의해 후행될 필요가 없다.
3) MSb "0" 을 가지고, MSb "0" 및 나머지 비트들 "1" 의 전부를 가지는 임의의 심볼에 의해 후행되는 임의의 심볼은 더미 심볼에 의해 후행될 필요가 있다.
4) MSb "0" 을 가지고, MSb "1" 을 가지는 임의의 심볼에 의해 후행되는 임의의 심볼은 더미 심볼에 의해 후행될 필요가 있다.
5) 더미 심볼은 SCL 을 LOW 레벨로 가져가므로, 더미 심볼은 임의의 심볼에 의해 후행될 수 있다.
결과적으로, 더미 심볼은 2진 "0" 과, 그 다음으로, (개개의 인터페이스에 의해 이용된 물리적 배선들의 나머지와 동일한) 2진 위치들의 나머지에 대한 오직 "1" 로 이루어진다. 양태에서, "선택 SCL LW" 방식은 "모든 SCL LOW" 방식에 대한 평균 데이터 스루풋에서 20 % 보다 더 양호한 증가를 제공할 수도 있다. 또한, "선택 SCL LOW" 방식은 동일한 하드웨어 라인들 상에서의 대응하는 더블 데이터 레이트 (Double Data Rate; DDR) 프로토콜보다 더 높은 평균 데이터 스루풋을 제공할 수도 있다.
도 10 은 본원에서 개시된 특정 양태들에 따라 구성된 인코더 (1000) 및 디코더 (1020) 의 예를 예시하는 블록도이다. 버스 동작들을 위하여, 인코더 (1000) 는 데이터 (1010) 를 더 큰 숫자 베이스 (예컨대, 베이스 3, 7, 8, 10, 16 등) 수들로 트랜스코딩할 수도 있다. 도 10 에서 도시된 바와 같이, 인코더 (1000) 는 데이터 (1010) 를, 복수의 신호 배선들 상에서 송신된 (예컨대, 제 1 신호 배선 W1 (216) 내지 M 번째 단일 배선 WM (1050) 상에서 송신된) 심볼들로서 인코딩되는 베이스-N 수들 (N 은 2 보다 더 큼) 로 트랜스코딩할 수도 있다. 이하에서 논의된 바와 같이, 3 개의 배선들 상에서의 베이스-7 (7진) 수 구현예, 즉, WM = W3 이 설명될 것이다. 그러나, 도 10 의 인코더/디코더는 다른 숫자 베이스 구현예들이 고려되는 바와 같이 그렇게 제한되지는 않는다. 도시된 예에서, 입력 데이터 (1010) 의 각각의 데이터 엘리먼트 (또한, 데이터 워드로서 지칭됨) 는 8, 12, 16, 19, 또는 20 비트들과 같은 미리 정의된 수의 비트들을 가질 수도 있다. 비트들 투 프레임 할당기 (1002) 는 인코딩되어야 할 데이터 (입력 데이터) (1010) 의 2진 스트링을 수신할 수도 있고, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당할 수도 있다. 예를 들어, 베이스-7 (7진) 수 구현예에서, 입력 데이터가 20 비트들의 길이를 가질 때, 비트들 투 프레임 할당기 (1002) 는 2진 스트링의 5 비트들 (1012) 의 순차적인 서브세트들을 개개의 프레임들에 할당할 수도 있다.
프레임 값 투 심볼 변환기 (1004) 는 프레임과 연관된 비트들의 서브세트 (1012) 를 베이스-2 계수들로서 이용하여 베이스-2 수 다항식의 결과적인 수를 계산함으로써, 프레임의 프레임 값을 결정한다. 프레임 값 투 심볼 변환기 (1004) 는 프레임 값에 기초하여 프레임에 대한 베이스-7 수 다항식의 베이스-7 (7진) 계수들을 추가로 계산하고, 여기서, 베이스-7 계수들은 프레임과 연관된 심볼들의 시퀀스의 심볼들에 각각 대응한다. 다음으로, 프레임 값 투 심볼 변환기 (1004) 는 각각의 심볼에 대응하는 개개의 베이스-7 계수에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들 (예컨대, 심볼 당 3 개의 베이스-2 계수들) 을 계산한다.
3 개의 배선들 W1, W2, 및 W3 에 대하여, 2진 심볼은 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2), (W3) XNOR (이전-W3)} 에 기초할 수도 있다. 심볼에 대하여 계산된 베이스-2 계수들은 심볼과 연관된 배선들에 대하여 수행된 XNOR 연산들의 결과들에 대응할 수도 있다. "0" 의 값을 반환하는 XNOR 연산은 상태가 배선의 현재의 상태와 이전의 상태 사이에서 변경되었다는 것을 표시한다. "1" 의 값을 반환하는 XNOR 연산은 배선의 현재의 상태와 이전의 상태 사이의 상태의 미변경을 표시한다.
제 1 베이스-2 계수는 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, (W1) XNOR (이전-W1) = 제 1 베이스-2 계수이다. 이 때문에, 프레임 값 투 심볼 변환기 (1004) 는 이전-W1 값 및 제 1 베이스-2 계수의 지식에 기초하여 W1 에 대한 값을 결정함으로써, 공식에 기초하여 심볼의 제 1 비트를 결정할 수도 있다. 제 2 베이스-2 계수는 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, (W2) XNOR (이전-W2) = 제 2 베이스-2 계수이다. 이 때문에, 프레임 값 투 심볼 변환기 (1004) 는 이전-W2 값 및 제 2 베이스-2 계수의 지식에 기초하여 W2 에 대한 값을 결정함으로써, 공식에 기초하여 심볼의 제 2 비트를 결정할 수도 있다. 제 3 베이스-2 계수는 제 3 배선 (W3) 의 현재의 상태와 제 3 배선 (이전-W3) 의 이전의 상태 사이의 XNOR 연산의 결과에 대응하고, 즉, (W3) XNOR (이전-W3) = 제 3 베이스-2 계수이다. 이 때문에, 프레임 값 투 심볼 변환기 (1004) 는 이전-W3 값 및 제 3 베이스-2 계수의 지식에 기초하여 W3 에 대한 값을 결정함으로써, 공식에 기초하여 심볼의 제 3 비트를 결정할 수도 있다.
프레임 값 투 심볼 변환기 (1004) 에 의해 생성된 3-비트 심볼들 (1014) 의 스트림은 라인 구동기들 (1006) 을 통해 송신된다. 도시된 예에서, 라인 구동기들 (1006) 은 개방-드레인 출력 트랜지스터들 (1008) 을 포함한다. 그러나, 다른 예들에서, 라인 구동기들 (1006) 은 푸시-풀 구동기들을 이용하여 W1 (216), W2 (218), 및 WM (예컨대, W3) (1050) 신호 배선들을 구동할 수도 있다.
디코더 (1020) 는 W1 (216), W2 (218), 및/또는 WM (예컨대, W3) (1050) 신호 배선들로부터 심볼 수신기 (1028) 로의 원시 3-비트 심볼들 (1036) 의 스트림을 제공하는 라인 인터페이스 회로들 (1026) 을 포함할 수도 있다. 양태에서, 심볼 수신기 (1028) 는 프레임에서의 심볼들의 시퀀스를 수신한다. 심볼들의 시퀀스는 프레임에 할당되는 데이터 비트들의 시퀀스를 나타낼 수도 있다. 또한, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트일 수도 있고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다.
심볼 수신기 (1028) 는 원시 심볼들 (1036) 로부터 수신 클록을 추출하는 클록 및 데이터 복원 (CDR) 회로를 포함할 수도 있다. 심볼 수신기 (1028) 는 3-비트 심볼들 (1034) 의 스트림을 상태 변경 평가기 (1024) 에 제공한다. 상태 변경 평가기 (1024) 는 2진 심볼에 대한 공식 {(W1) XNOR (이전-W1), (W2) XNOR (이전-W2), (W3) XNOR (이전-W3)} 을 이용하여 심볼 수신기 (1028) 로부터 수신된 심볼들의 시퀀스에 기초하여 배선들 W1 (216), W2 (218), 및 WM (예컨대, W3) (1050) 의 상태들의 변경들을 평가한다.
현재 수신된 심볼은 배선들의 현재의 상태들에 각각 대응하는 비트들을 포함한다. 따라서, 상태 변경 평가기 (1024) 는 심볼의 각각의 배선에 대한 XNOR 연산을 수행함으로써, 심볼에 대한 상태 값들을 계산할 수도 있다. 예를 들어, 수신된 심볼의 제 1 비트는 제 1 배선 (W1) 의 현재의 상태에 대응한다. 따라서, 상태 변경 평가기 (1024) 는 제 1 배선 (W1) 의 현재의 상태와 제 1 배선 (이전-W1) 의 이전의 상태 사이의 XNOR 연산, 즉, (W1) XNOR (이전-W1) = S1 을 수행함으로써, 심볼에 대한 제 1 상태 값 S1 을 계산할 수도 있다. 수신된 심볼의 제 2 비트는 제 2 배선 (W2) 의 현재의 상태에 대응한다. 따라서, 상태 변경 평가기 (1024) 는 제 2 배선 (W2) 의 현재의 상태와 제 2 배선 (이전-W2) 의 이전의 상태 사이의 XNOR 연산, 즉, (W2) XNOR (이전-W2) = S2 를 수행함으로써, 심볼에 대한 제 2 상태 값 S2 를 계산할 수도 있다. 수신된 심볼의 제 3 비트는 제 3 배선 (W3) 의 현재의 상태에 대응한다. 따라서, 상태 변경 평가기 (1024) 는 제 3 배선 (W3) 의 현재의 상태와 제 3 배선 (이전-W3) 의 이전의 상태 사이의 XNOR 연산, 즉, (W3) XNOR (이전-W3) = S3 을 수행함으로써, 심볼에 대한 제 3 상태 값 S3 을 계산할 수도 있다. 계산된 상태 값들 (1032) (예컨대, {S1, S2, S3}) 은 심볼 투 데이터 변환기 (1022) 에 제공될 수도 있다.
심볼 투 데이터 변환기 (1022) 는 상태 값들 (1032) 에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산한다. 상태 값들은 심볼에 대응하는 베이스-2 수 다항식의 베이스-2 계수들에 대응할 수도 있다. 따라서, 심볼 투 데이터 변환기 (1022) 는 심볼과 연관된 상태 값들을 이용하여 베이스-2 수 다항식의 결과적인 수를 계산함으로써 심볼 값을 계산할 수도 있다. 예를 들어, 제 1 심볼에 대한 상태 값들 {S1, S2, S3} 이 {0, 1, 1} 일 경우, 베이스-2 계수들은 0, 1, 및 1 이고, 결과적인 수는 0x22 + 1x21 + 1x20 = 0 + 2 + 1 = 3 이다. 이 때문에, 제 3 심볼에 대한 심볼 값은 1 이다. 제 2 심볼에 대한 상태 값들 {S1, S2, S3} 이 {1, 0, 0} 일 경우, 베이스-2 계수들은 1, 0, 및 0 이고, 결과적인 수는 1x22 + 0x21 + 0x20 = 2 + 0+ 0 = 2 이다. 이 때문에, 제 2 심볼에 대한 심볼 값은 2 이다.
프레임에서의 심볼들의 시퀀스의 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 대응할 수도 있고, 여기서, N 은 2 보다 더 크다. 상기 예에서, 프레임의 제 1 및 제 2 심볼 값들은 베이스-7 (7진) 수 다항식의 베이스-7 계수들에 각각 대응한다. 따라서, 심볼 투 데이터 변환기 (1022) 는 프레임과 연관된 심볼 값들을 이용하여 베이스-7 수 다항식의 결과적인 수를 계산함으로써 프레임 값을 추가로 계산할 수도 있다. 상기 예를 이용하면, 3 의 제 1 심볼 값은 제 1 베이스-7 계수에 대응하고, 2 의 제 2 심볼 값은 제 2 베이스-7 계수에 대응한다. 따라서, 결과적인 수는 3x71 + 2x70 = 21 + 2 = 23 이다. 이 때문에, 제 1 및 제 2 심볼들을 포함하는 프레임에 대한 프레임 값은 23 이다. 다음으로, 심볼 투 데이터 변환기 (1022) 는 데이터 비트들 (1030) 의 시퀀스를 복원하기 위하여 2진 포맷으로 프레임 값을 표현한다. 여기서, 23 의 프레임 값은 2진 데이터 비트 시퀀스 {1, 0, 1, 1, 1} 과 동등한 23 = 1x24 + 0x23 + 1x22 + 1x21 + 1x20 로서 표현될 수도 있다.
본원에서 개시된 양태들에 따르면, 기본 데이터 전송 링크는 예를 들어, 하나의 물리적 배선 또는 하나의 오버-디-에어 (over-the-air) 송신 슬롯과 같은 하나의 물리적 전송 라인일 수도 있다. 하나의 기본 데이터 전송 링크는 데이터의 2진 코딩을 지원할 수도 있다. 2진 심볼들은 식별가능하게 하기 위하여, 제어된 시간 슬롯들에서 설정된다. 하나의 양태에서, 추가적인 기본 데이터 전송 링크들은 데이터 레이트를 증가시키기 위하여 구현될 수도 있다. 이러한 구현예의 결과는 데이터 레이트를 선형적으로 증가시킬 수도 있다. 또 다른 양태에서, 데이터 레이트는 데이터 스트림에서 추가적인 코딩 정보를 제공함으로써 증가될 수도 있다. 예를 들어, 본원에서 개시된 바와 같이, 데이터 스트림은 더 높은 레벨의 진법들을 이용하여 코딩될 수도 있다.
일반적으로, 데이터 스트림을 코딩하기 위한 방법은 다음과 같을 수도 있다. 먼저, 2진 데이터 스트림은 확립된 길이에서 프레임화된다. 데이터 스트림을 프레임화함으로써, 2진 심볼들은 정의된 가중치로 배정된다. 그 결과, 데이터 프레임의 전체 수치 값이 획득된다. 다음으로, 데이터 프레임의 결과적인 수치 값은 더 높은 레벨의 숫자 베이스 수, 예컨대, 3진, 8진, 10진, 16진 등으로 변환될 수도 있다. 숫자 데이터 베이스는 관련된 필요한 심볼들이 기본 데이터 전송 링크들의 적절한 수 (예컨대, 2, 3, 또는 4) 에 대해 구현될 수 있도록 선택될 수도 있다.
2 개의 위상 차동 배선 (phase differential wire) 들 상에서 구현된 2 개의 기본 데이터 전송 링크들의 경우, 3 개의 상이한 심볼들이 이용가능할 수도 있다. 결과적으로, 3진 베이스 심볼들 코딩이 이러한 경우에 대하여 적당하다. 3 개의 위상 차동 배선들 상에서 구현된 3 개의 기본 데이터 전송 링크들의 경우, 7 개의 상이한 심볼들이 이용가능할 수도 있다. 결과적으로, 7진 베이스 심볼들 코딩이 이러한 경우에 대하여 적당하다.
도 11 은 다수의 기본 데이터 전송 링크들 (배선들) 및 프레임의 다수의 슬롯들의 다양한 조합들에 대하여 이용가능할 다수의 심볼들을 예시하는 표 (1100) 이다. 특히, 표 (1100) 는 M 개의 배선들 및 N 개의 슬롯들을 이용하는 구현예에 대응하는 이용가능한 최대 수의 심볼들을 제공하고, 여기서, M 은 2 로부터 12 까지의 정수이고, N 은 2 로부터 12 까지의 정수이다. 양태에서는, 이용가능한 배선들의 수에 대하여 심볼 슬롯들의 가장 적당한 수를 선택하기 위한 수 많은 기준들이 존재할 수도 있다. 예를 들어, 선택된 심볼 슬롯들의 수는 2진수들을 8-비트 포맷으로 표현하기 위한 희망에 기초할 수도 있다. 또 다른 예에서, 선택된 심볼 슬롯들의 수는 채널 용량에 기초할 수도 있고, 여기서, 채널 용량은 소정의 수의 2진 슬롯들을 완전히 커버하는 이용가능한 심볼들의 코드들의 수를 기술한다.
배선 상태 변경들에 기초하여 데이터를 인코딩하기 위한 예시적인 디바이스 및 방법
도 12 는 개시물의 하나 이상의 양태들 (예컨대, 이하에서 설명된 도 13 의 방법에 관련된 양태들) 에 따라 데이터 통신 인터페이스에서 데이터를 인코딩하는 것에 관련된 동작들을 지원하도록 구성된 장치 (1200) 의 예시도이다. 장치 (1200) 는 통신 인터페이스 (예컨대, 적어도 하나의 트랜시버) (1202), 저장 매체 (1204), 사용자 인터페이스 (1206), 메모리 디바이스 (1208), 및 프로세싱 회로 (1210) 를 포함한다.
이 컴포넌트들은 도 12 에서의 접속 라인들에 의해 일반적으로 나타내어진 시그널링 버스 또는 다른 적당한 컴포넌트를 통해 서로 결합될 수 있고 및/또는 서로 전기적으로 통신하도록 배치될 수 있다. 시그널링 버스는 프로세싱 회로 (1210) 의 특정 애플리케이션 및 전체적인 설계 제약들에 따라 임의의 수의 상호접속하는 버스들 및 브릿지 (bridge) 들을 포함할 수도 있다. 시그널링 버스는 통신 인터페이스 (1202), 저장 매체 (1204), 사용자 인터페이스 (1206), 및 메모리 디바이스 (1208) 의 각각이 프로세싱 회로 (1210) 에 결합되고 및/또는 프로세싱 회로 (1210) 와 전기 통신하도록, 다양한 회로들을 함께 링크시킨다. 시그널링 버스는 또한, 당해 분야에서 잘 알려져 있고, 그러므로, 더 이상 설명되지 않을 타이밍 소스들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 다양한 다른 회로들 (도시되지 않음) 을 링크시킬 수도 있다.
통신 인터페이스 (1202) 는 장치 (1200) 의 무선 통신을 가능하게 하도록 구비될 수도 있다. 예를 들어, 통신 인터페이스 (1202) 는 네트워크에서의 하나 이상의 통신 디바이스들에 대하여 양방향으로 정보의 통신을 가능하게 하도록 구비된 회로부 및/또는 코드 (예컨대, 명령들) 를 포함할 수도 있다. 통신 인터페이스 (1202) 는 무선 통신 시스템 내에서의 무선 통신을 위한 하나 이상의 안테나들 (1212) 에 결합될 수도 있다. 통신 인터페이스 (1202) 는 하나 이상의 단독형 수신기들 및/또는 송신기들뿐만 아니라, 하나 이상의 트랜시버들로 구성될 수 있다. 예시된 예에서, 통신 인터페이스 (1202) 는 송신기 (1214) 및 수신기 (1216) 를 포함한다.
메모리 디바이스 (1208) 는 하나 이상의 메모리 디바이스들을 나타낼 수도 있다. 표시된 바와 같이, 메모리 디바이스 (1208) 는 장치 (1200) 에 의해 이용된 다른 정보와 함께, 네트워크-관련된 정보 (1218) 를 유지할 수도 있다. 일부 구현예들에서, 메모리 디바이스 (1208) 및 저장 매체 (1204) 는 공통 메모리 컴포넌트로서 구현된다. 메모리 디바이스 (1208) 는 또한, 장치 (1200) 의 프로세싱 회로 (1210) 또는 일부 다른 컴포넌트에 의해 조작되는 데이터를 저장하기 위하여 이용될 수도 있다.
저장 매체 (1204) 는 프로세서 실행가능 코드 또는 명령들 (예컨대, 소프트웨어, 펌웨어) 과 같은 코드, 전자 데이터, 데이터베이스들, 또는 다른 디지털 정보를 저장하기 위한 하나 이상의 컴퓨터-판독가능, 머신-판독가능, 및/또는 프로세서-판독가능 디바이스들을 나타낼 수도 있다. 저장 매체 (1204) 는 또한, 코드를 실행할 때에 프로세싱 회로 (1210) 에 의해 조작되는 데이터를 저장하기 위하여 이용될 수도 있다. 저장 매체 (1204) 는 휴대용 또는 고정식 저장 디바이스들, 광학 저장 디바이스들, 및 코드를 저장하거나, 포함하거나, 반송할 수 있는 다양한 다른 매체들을 포함하는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다.
제한이 아닌 예로서, 저장 매체 (1204) 는 자기 저장 디바이스 (예컨대, 하드 디스크, 플로피 디스크, 자기 스트립 (magnetic strip)), 광학 디스크 (예컨대, 컴팩트 디스크 (compact disc; CD) 또는 디지털 다기능 디스크 (digital versatile disc; DVD)), 스마트 카드, 플래시 메모리 디바이스 (예컨대, 카드, 스틱, 또는 키 드라이브), 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read only memory; ROM), 프로그래밍가능 ROM (programmable ROM; PROM), 소거가능 PROM (erasable PROM; EPROM), 전기적 소거가능 PROM (electrically erasable PROM; EEPROM), 레지스터 (register), 분리가능 디스크, 및 컴퓨터에 의해 액세스될 수도 있고 판독될 수도 있는 코드를 저장하기 위한 임의의 다른 적당한 매체를 포함할 수도 있다. 저장 매체 (1204) 는 제조의 항목 (예컨대, 컴퓨터 프로그램 제품) 에서 구체화될 수도 있다. 예로서, 컴퓨터 프로그램 제품은 패키징 재료들로 된 컴퓨터-판독가능 매체를 포함할 수도 있다. 상기한 것을 감안하면, 일부 구현예들에서, 저장 매체 (1204) 는 비-일시적 (예컨대, 유형의) 저장 매체일 수도 있다.
프로세싱 회로 (1210) 가 저장 매체 (1204) 로부터 정보를 판독할 수 있고 정보를 저장 매체 (1204) 에 기입할 수 있도록, 저장 매체 (1204) 는 프로세싱 회로 (1210) 에 결합될 수도 있다. 즉, 저장 매체 (1204) 가 프로세싱 회로 (1210) 에 의해 적어도 액세스가능하도록, 저장 매체 (1204) 가 프로세싱 회로 (1210) 에 결합될 수 있고, 이것은 적어도 하나의 저장 매체가 프로세싱 회로 (1210) 에 일체적인 예들, 및/또는 적어도 하나의 저장 매체가 프로세싱 회로 (1210) 로부터 별도인 (예컨대, 장치 (1200) 에서 상주하고, 장치 (1200) 에 외부적이고, 다수의 엔티티들에 걸쳐 분산되는 등) 예들을 포함한다.
저장 매체 (1204) 에 의해 저장된 코드 및/또는 명령들은, 프로세싱 회로 (1210) 에 의해 실행될 때, 프로세싱 회로 (1210) 로 하여금, 본원에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중의 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1204) 는 프로세싱 회로 (1210) 의 하나 이상의 하드웨어 블록들에서 동작들을 조절하기 위한 것뿐만 아니라, 그 개개의 통신 프로토콜들을 사용하는 무선 통신을 위한 통신 인터페이스 (1202) 를 사용하도록 구성된 동작들을 포함할 수도 있다.
프로세싱 회로 (1210) 는 저장 매체 (1204) 상에서 저장된 이러한 코드/명령들의 실행을 포함하는 프로세싱을 위하여 일반적으로 구비된다. 본원에서 이용된 바와 같이, 용어 "코드" 또는 "명령들" 은 소프트웨어, 펌웨어, 미들웨어 (middleware), 마이크로코드 (microcode), 하드웨어 설명 언어 (hardware description language), 또는 이와 다른 것으로서 지칭되든지 간에, 프로그래밍, 명령들, 명령 세트들, 데이터, 코드, 코드 세그먼트 (code segment) 들, 프로그램 코드, 프로그램들, 서브프로그램 (subprogram) 들, 소프트웨어 모듈 (software module) 들, 애플리케이션 (application) 들, 소프트웨어 애플리케이션들, 소프트웨어 패키지 (software package) 들, 루틴 (routine) 들, 서브루틴 (subroutine) 들, 오브젝트 (object) 들, 익스큐터블 (executable) 들, 실행의 스레드 (thread of execution) 들, 프로시저 (procedure) 들, 함수들 등을 제한 없이 포함하는 것으로 대략적으로 해석될 것이다.
프로세싱 회로 (1210) 는 데이터를 획득하고, 프로세싱하고, 및/또는 전송하고, 데이터 액세스 및 저장을 제어하고, 커맨드들을 발행하고, 다른 희망하는 동작들을 제어하도록 배열된다. 프로세싱 회로 (1210) 는 적어도 하나의 예에서 적절한 매체들에 의해 제공된 희망하는 코드를 구현하도록 구성된 회로부를 포함할 수도 있다. 예를 들어, 프로세싱 회로부 (1210) 는 실행가능한 코드를 실행하도록 구성된 하나 이상의 프로세서들, 하나 이상의 제어기들, 및/또는 다른 구조로서 구현될 수도 있다. 프로세싱 회로 (1210) 의 예들은 본원에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC), 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 또는 다른 프로그래밍가능 로직 컴포넌트, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그 임의의 조합을 포함할 수도 있다. 범용 프로세서는 마이크로프로세서뿐만 아니라, 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신을 포함할 수도 있다. 프로세싱 회로 (1210) 는 또한, DSP 및 마이크로프로세서의 조합과 같은 컴퓨팅 컴포넌트들의 조합, 다수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, ASIC 및 마이크로프로세서, 또는 임의의 다른 수의 변동되는 구성들로서 구현될 수도 있다. 프로세싱 회로 (1210) 의 이 예들은 예시를 위한 것이고, 개시물의 범위 내의 다른 적당한 구성들이 또한 고려된다.
개시물의 하나 이상의 양태들에 따르면, 프로세싱 회로 (1210) 는 본원에서 설명된 장치들 중의 임의의 것 또는 전부에 대한 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들 중의 임의의 것 또는 전부를 수행하도록 구비될 수도 있다. 본원에서 이용된 바와 같이, 프로세싱 회로 (1210) 에 관련된 용어 "구비된" 은 프로세싱 회로 (1210) 가 본원에서 설명된 다양한 특징들에 따라 특정한 프로세스, 기능, 동작, 및/또는 루틴을 수행하도록 구성되고, 채용되고, 구현되고, 및/또는 프로그래밍되는 것 중의 하나 이상인 것을 지칭할 수도 있다.
장치 (1200) 의 적어도 하나의 예에 따르면, 프로세싱 회로 (1210) 는 본원에서 설명된 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들 (예컨대, 도 13 에 대하여 설명된 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들) 중의 임의의 것 또는 전부를 수행하도록 구비되는 비트 수신 회로/모듈 (1220), 데이터 할당 회로/모듈 (1222), 비트 투 심볼 변환 회로/모듈 (1224), 및 심볼 송신 회로/모듈 (1226) 중의 하나 이상을 포함할 수도 있다.
비트 수신 회로/모듈 (1220) 은 예를 들어, 인코딩되어야 할 데이터의 2진 스트링을 수신하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1204) 상에서 저장된 비트 수신 명령들 (1228)) 을 포함할 수도 있다.
데이터 할당 회로/모듈 (1222) 은 예를 들어, 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1204) 상에서 저장된 데이터 할당 명령들 (1230)) 을 포함할 수도 있다.
비트 투 심볼 변환 회로/모듈 (1224) 은 예를 들어, 프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1204) 상에 저장된 비트 투 심볼 변환 명령들 (1232)) 을 포함할 수도 있고, 여기서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트이고, 값을 프레임과 연관된 심볼들의 시퀀스로 변환하고 있다.
심볼 송신 회로/모듈 (1226) 은 예를 들어, 심볼들의 시퀀스를 수신기로 송신하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1204) 상에서 저장된 심볼 송신 명령들 (1234)) 을 포함할 수도 있다.
위에서 언급된 바와 같이, 저장 매체 (1204) 에 의해 저장된 명령들은, 프로세싱 회로 (1210) 에 의해 실행될 때, 프로세싱 회로 (1210) 로 하여금, 본원에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중의 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1204) 는 비트 수신 명령들 (1228), 데이터 할당 명령들 (1230), 비트 투 심볼 변환 명령들 (1232), 및 심볼 송신 명령들 (1234) 중의 하나 이상을 포함할 수도 있다.
도 13 은 복수의 배선들에 결합된 직렬 버스 인터페이스 상에서 데이터를 인코딩하기 위한 방법을 예시하는 플로우차트 (1300) 이다. 방법은 디바이스 (예컨대, 도 2 의 버스 마스터 디바이스 (220) 또는 버스 슬레이브 회로 (202), 도 3 의 디바이스 (300) 또는 디바이스 (320), 도 8 의 인코더 (800), 인코더 (1000), 도 12 의 장치 (1200), 및/또는 본원에서 설명된 다른 디바이스들) 에 의해 수행될 수도 있다.
디바이스는 인코딩되어야 할 데이터의 2진 스트링을 수신할 수도 있다 (1302). 다음으로, 디바이스는 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당할 수도 있다 (1304). 디바이스는 프레임에 할당된 데이터 비트들의 시퀀스의 값을 추가로 결정할 수도 있고, 여기서, 데이터 비트들의 시퀀스는 데이터의 2진 스트링의 서브세트이다 (1306).
그 후에, 디바이스는 값을 프레임과 연관된 심볼들의 시퀀스로 변환할 수도 있다 (1308). 개시물의 양태에서, 디바이스는 값에 기초하여 프레임에 대한 베이스-N 수 다항식의 베이스-N 계수들을 먼저 계산함으로써 변환을 수행하고, 여기서, N 은 2 보다 더 큰 정수이다. 또한, 계산된 베이스-N 계수들은 심볼들의 시퀀스에 각각 대응한다. 다음으로, 디바이스는 각각의 심볼에 대하여 각각 계산된 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정한다. 개시물의 양태에서, 복수의 배선들의 제 1 배선은 전통적인 시스템들에서의 CLOCK 캐리어 또는 다른 타입들의 시스템에서 이용된 CLOCK 라인과 같은 기저 배선일 수도 있다. 제 1 배선 상에서의 상태 변경들은 결과적인 심볼의 최상위 비트 상에서 위치될 수도 있다. 예로서, 제 1 배선은 위에서 설명된 SCL 에 대응할 수도 있다. 다음으로, 디바이스는 각각의 심볼에 대한 복수의 배선들의 상태들의 변경들에 기초하여 심볼들의 시퀀스를 생성할 수도 있고, 심볼들의 시퀀스를 수신기로 추가로 송신할 수도 있다 (1310).
일 예의 구현예에서, 도 13 의 인코딩 방법은 베이스-N 수 다항식을 이용하여 구현될 수도 있고, 여기서, N = 3 (즉, 2 개의 물리적 배선들), 및 프레임 당 2 개의 심볼들이다 (2 보다 더 큰 N 의 다른 값들이 고려되지만, 예컨대, N = 7 임 (즉, 3 개의 물리적 배선들)). 따라서, N = 3 (즉, 2 개의 물리적 배선들) 일 때, 디바이스는 심볼들의 시퀀스의 제 1 심볼에 대응하는 제 1 베이스-N 계수에 따라 제 1 베이스-2 수 다항식의 제 1 쌍의 베이스-2 계수들을 계산함으로써, 그리고 제 1 쌍의 베이스-2 계수들에 따라 제 1 심볼에 대한 복수의 배선들의 상태들의 변경들을 결정함으로써, 값을 심볼들의 시퀀스로 변환할 수도 있다. 디바이스는 추가로, 심볼들의 시퀀스의 제 2 심볼에 대응하는 제 2 베이스-N 계수에 따라 제 2 베이스-2 수 다항식의 제 2 쌍의 베이스-2 계수들을 계산할 수도 있고, 제 2 쌍의 베이스-2 계수들에 따라 제 2 심볼에 대한 상태들의 변경들을 결정할 수도 있다.
본원에서 개시된 특정 양태들에 따르면, 제 1 쌍 및 제 2 쌍의 베이스-2 계수들의 각각은 제 1 값 및 제 2 값을 포함한다. 제 1 값은 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시한다. 제 2 값은 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시한다. 또한, 제 1 값은 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 XNOR 연산을 나타낼 수도 있고, 제 2 값은 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 XNOR 연산을 나타낼 수도 있다.
본원에서 개시된 특정 양태들에 따르면, 제 1 값이 0 일 때, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 표시된다. 제 1 값이 1 일 때, 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 미변경이 표시된다. 제 2 값이 0 일 때, 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 변경이 표시된다. 제 2 값이 1 일 때, 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 상태의 미변경이 표시된다. 일반적으로, 배선들의 물리적 상태들에서의 변경은 데이터 정보의 존재를 표시한다. 본원에서 설명된 XNOR 인코딩 방식은 2 개 이상의 배선들의 각각의 배선에 적용될 수도 있고, 여기서, "1" 의 값은 상태의 미변경을 표시하고, "0" 의 값은 상태의 변경을 표시한다.
본원에서 개시된 특정 양태들에 따르면, 디바이스는 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 제 1 심볼에 대하여 표시될 때에 제 1 배선이 LOW 레벨로 풀 다운되는 것으로 결정함으로써 심볼들의 시퀀스를 생성한다. 또한, 디바이스는 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 미변경이 제 2 심볼에 대하여 표시될 때, 제 1 배선을 LOW 레벨로 풀 다운한다. 디바이스는 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 상태의 변경이 제 2 심볼에 대하여 표시될 때, 제 1 배선을 LOW 레벨로 풀 다운하는 것을 추가로 금지한다.
배선 상태 변경들에 기초하여 데이터를 디코딩하기 위한 예시적인 디바이스 및 방법
도 14 는 개시물의 하나 이상의 양태들 (예컨대, 이하에서 설명된 도 15 의 방법에 관련된 양태들) 에 따라 데이터 통신 인터페이스에서 데이터를 디코딩하는 것에 관련된 동작들을 지원하도록 구성된 장치 (1400) 의 예시도이다. 장치 (1400) 는 통신 인터페이스 (예컨대, 적어도 하나의 트랜시버) (1402), 저장 매체 (1404), 사용자 인터페이스 (1406), 메모리 디바이스 (1408), 및 프로세싱 회로 (1410) 를 포함한다.
이 컴포넌트들은 도 14 에서의 접속 라인들에 의해 일반적으로 나타내어진 시그널링 버스 또는 다른 적당한 컴포넌트를 통해 서로 결합될 수 있고 및/또는 서로 전기적으로 통신하도록 배치될 수 있다. 시그널링 버스는 프로세싱 회로 (1410) 의 특정 애플리케이션 및 전체적인 설계 제약들에 따라 임의의 수의 상호접속하는 버스들 및 브릿지들을 포함할 수도 있다. 시그널링 버스는 통신 인터페이스 (1402), 저장 매체 (1404), 사용자 인터페이스 (1406), 및 메모리 디바이스 (1408) 의 각각이 프로세싱 회로 (1410) 에 결합되고 및/또는 프로세싱 회로 (1410) 와 전기 통신하도록, 다양한 회로들을 함께 링크시킨다. 시그널링 버스는 또한, 당해 분야에서 잘 알려져 있고, 그러므로, 더 이상 설명되지 않을 타이밍 소스들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 다양한 다른 회로들 (도시되지 않음) 을 링크시킬 수도 있다.
통신 인터페이스 (1402) 는 장치 (1400) 의 무선 통신을 가능하게 하도록 구비될 수도 있다. 예를 들어, 통신 인터페이스 (1402) 는 네트워크에서의 하나 이상의 통신 디바이스들에 대하여 양방향으로 정보의 통신을 가능하게 하도록 구비된 회로부 및/또는 코드 (예컨대, 명령들) 를 포함할 수도 있다. 통신 인터페이스 (1402) 는 무선 통신 시스템 내에서의 무선 통신을 위한 하나 이상의 안테나들 (1412) 에 결합될 수도 있다. 통신 인터페이스 (1402) 는 하나 이상의 단독형 수신기들 및/또는 송신기들뿐만 아니라, 하나 이상의 트랜시버들로 구성될 수 있다. 예시된 예에서, 통신 인터페이스 (1402) 는 송신기 (1414) 및 수신기 (1416) 를 포함한다.
메모리 디바이스 (1408) 는 하나 이상의 메모리 디바이스들을 나타낼 수도 있다. 표시된 바와 같이, 메모리 디바이스 (1408) 는 장치 (1400) 에 의해 이용된 다른 정보와 함께, 네트워크-관련된 정보 (1418) 를 유지할 수도 있다. 일부 구현예들에서, 메모리 디바이스 (1408) 및 저장 매체 (1404) 는 공통 메모리 컴포넌트로서 구현된다. 메모리 디바이스 (1408) 는 또한, 장치 (1400) 의 프로세싱 회로 (1410) 또는 일부 다른 컴포넌트에 의해 조작되는 데이터를 저장하기 위하여 이용될 수도 있다.
저장 매체 (1404) 는 프로세서 실행가능 코드 또는 명령들 (예컨대, 소프트웨어, 펌웨어) 과 같은 코드, 전자 데이터, 데이터베이스들, 또는 다른 디지털 정보를 저장하기 위한 하나 이상의 컴퓨터-판독가능, 머신-판독가능, 및/또는 프로세서-판독가능 디바이스들을 나타낼 수도 있다. 저장 매체 (1404) 는 또한, 코드를 실행할 때에 프로세싱 회로 (1410) 에 의해 조작되는 데이터를 저장하기 위하여 이용될 수도 있다. 저장 매체 (1404) 는 휴대용 또는 고정식 저장 디바이스들, 광학 저장 디바이스들, 및 코드를 저장하거나, 포함하거나, 반송할 수 있는 다양한 다른 매체들을 포함하는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다.
제한이 아닌 예로서, 저장 매체 (1404) 는 자기 저장 디바이스 (예컨대, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 디스크 (예컨대, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예컨대, 카드, 스틱, 또는 키 드라이브), 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 프로그래밍가능 ROM (PROM), 소거가능 PROM (EPROM), 전기적 소거가능 PROM (EEPROM), 레지스터, 분리가능 디스크, 및 컴퓨터에 의해 액세스될 수도 있고 판독될 수도 있는 코드를 저장하기 위한 임의의 다른 적당한 매체를 포함할 수도 있다. 저장 매체 (1404) 는 제조의 항목 (예컨대, 컴퓨터 프로그램 제품) 에서 구체화될 수도 있다. 예로서, 컴퓨터 프로그램 제품은 패키징 재료들로 된 컴퓨터-판독가능 매체를 포함할 수도 있다. 상기한 것을 감안하면, 일부 구현예들에서, 저장 매체 (1404) 는 비-일시적 (예컨대, 유형의) 저장 매체일 수도 있다.
프로세싱 회로 (1410) 가 저장 매체 (1404) 로부터 정보를 판독할 수 있고 정보를 저장 매체 (1404) 에 기입할 수 있도록, 저장 매체 (1404) 는 프로세싱 회로 (1410) 에 결합될 수도 있다. 즉, 저장 매체 (1404) 가 프로세싱 회로 (1410) 에 의해 적어도 액세스가능하도록, 저장 매체 (1404) 가 프로세싱 회로 (1410) 에 결합될 수 있고, 이것은 적어도 하나의 저장 매체가 프로세싱 회로 (1410) 에 일체적인 예들, 및/또는 적어도 하나의 저장 매체가 프로세싱 회로 (1410) 로부터 별도인 (예컨대, 장치 (1400) 에서 상주하고, 장치 (1400) 에 외부적이고, 다수의 엔티티들에 걸쳐 분산되는 등) 예들을 포함한다.
저장 매체 (1404) 에 의해 저장된 코드 및/또는 명령들은, 프로세싱 회로 (1410) 에 의해 실행될 때, 프로세싱 회로 (1410) 로 하여금, 본원에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중의 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1404) 는 프로세싱 회로 (1410) 의 하나 이상의 하드웨어 블록들에서 동작들을 조절하기 위한 것뿐만 아니라, 그 개개의 통신 프로토콜들을 사용하는 무선 통신을 위한 통신 인터페이스 (1402) 를 사용하도록 구성된 동작들을 포함할 수도 있다.
프로세싱 회로 (1410) 는 저장 매체 (1404) 상에서 저장된 이러한 코드/명령들의 실행을 포함하는 프로세싱을 위하여 일반적으로 구비된다. 본원에서 이용된 바와 같이, 용어 "코드" 또는 "명령들" 은 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어, 또는 이와 다른 것으로서 지칭되든지 간에, 프로그래밍, 명령들, 명령 세트들, 데이터, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 익스큐터블들, 실행의 스레드들, 프로시저들, 함수들 등을 제한 없이 포함하는 것으로 대략적으로 해석될 것이다.
프로세싱 회로 (1410) 는 데이터를 획득하고, 프로세싱하고, 및/또는 전송하고, 데이터 액세스 및 저장을 제어하고, 커맨드들을 발행하고, 다른 희망하는 동작들을 제어하도록 배열된다. 프로세싱 회로 (1410) 는 적어도 하나의 예에서 적절한 매체들에 의해 제공된 희망하는 코드를 구현하도록 구성된 회로부를 포함할 수도 있다. 예를 들어, 프로세싱 회로부 (1410) 는 실행가능한 코드를 실행하도록 구성된 하나 이상의 프로세서들, 하나 이상의 제어기들, 및/또는 다른 구조로서 구현될 수도 있다. 프로세싱 회로 (1410) 의 예들은 본원에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 애플리케이션 특정 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 컴포넌트, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그 임의의 조합을 포함할 수도 있다. 범용 프로세서는 마이크로프로세서뿐만 아니라, 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신을 포함할 수도 있다. 프로세싱 회로 (1410) 는 또한, DSP 및 마이크로프로세서의 조합과 같은 컴퓨팅 컴포넌트들의 조합, 다수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, ASIC 및 마이크로프로세서, 또는 임의의 다른 수의 변동되는 구성들로서 구현될 수도 있다. 프로세싱 회로 (1410) 의 이 예들은 예시를 위한 것이고, 개시물의 범위 내의 다른 적당한 구성들이 또한 고려된다.
개시물의 하나 이상의 양태들에 따르면, 프로세싱 회로 (1410) 는 본원에서 설명된 장치들 중의 임의의 것 또는 전부에 대한 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들 중의 임의의 것 또는 전부를 수행하도록 구비될 수도 있다. 본원에서 이용된 바와 같이, 프로세싱 회로 (1410) 에 관련된 용어 "구비된" 은 프로세싱 회로 (1410) 가 본원에서 설명된 다양한 특징들에 따라 특정한 프로세스, 기능, 동작, 및/또는 루틴을 수행하도록 구성되고, 채용되고, 구현되고, 및/또는 프로그래밍되는 것 중의 하나 이상인 것을 지칭할 수도 있다.
장치 (1400) 의 적어도 하나의 예에 따르면, 프로세싱 회로 (1410) 는 본원에서 설명된 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들 (예컨대, 도 15 에 대하여 설명된 특징들, 프로세스들, 기능들, 동작들, 및/또는 루틴들) 중의 임의의 것 또는 전부를 수행하도록 구비되는 심볼 수신 회로/모듈 (1420), 심볼 투 비트 변환 회로/모듈 (1422), 상태 변경 평가 회로/모듈 (1424), 및 데이터 복원 회로/모듈 (1426) 중의 하나 이상을 포함할 수도 있다.
심볼 수신 회로/모듈 (1420) 은 예를 들어, 프레임에서의 심볼들의 시퀀스를 수신하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1404) 상에 저장된 심볼 수신 명령들 (1428)) 을 포함할 수도 있고, 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타낸다.
심볼 투 비트 변환 회로/모듈 (1422) 은 예를 들어, 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1404) 상에 저장된 심볼 투 비트 변환 명령들 (1430)) 을 포함할 수도 있다.
상태 변경 평가 회로/모듈 (1424) 은 예를 들어, 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 평가하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1404) 상에서 저장된 상태 변경 평가 명령들 (1432)) 을 포함할 수도 있다.
데이터 복원 회로/모듈 (1426) 은 예를 들어, 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원하는 것에 관련되는 몇몇 기능들을 수행하도록 구비된 회로부 및/또는 명령들 (예컨대, 저장 매체 (1404) 상에 저장된 데이터 복원 명령들 (1434)) 을 포함할 수도 있다.
위에서 언급된 바와 같이, 저장 매체 (1404) 에 의해 저장된 명령들은, 프로세싱 회로 (1410) 에 의해 실행될 때, 프로세싱 회로 (1410) 로 하여금, 본원에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중의 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1404) 는 심볼 수신 명령들 (1428), 심볼 투 비트 변환 명령들 (1430), 상태 변경 평가 명령들 (1432), 및 데이터 복원 명령들 (1434) 중의 하나 이상을 포함할 수도 있다.
도 15 는 복수의 배선들에 결합된 직렬 버스 인터페이스 상에서 데이터 통신들을 인코딩하기 위한 방법을 예시하는 플로우차트 (1500) 이다. 방법은 디바이스 (예컨대, 도 2 의 버스 마스터 디바이스 (220) 또는 버스 슬레이브 회로 (202), 도 3 의 디바이스 (300) 또는 디바이스 (320), 도 8 의 디코더 (820), 디코더 (1020), 도 14 의 장치 (1400), 및/또는 본원에서 설명된 다른 디바이스들) 에 의해 수행될 수도 있다.
디바이스는 프레임에서의 심볼들의 시퀀스를 수신할 수도 있다 (1502). 심볼들의 시퀀스는 프레임에 할당된 데이터 비트들의 시퀀스를 나타낼 수도 있다. 개시물의 양태에서, 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 여기서, 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당된다.
디바이스는 심볼들의 시퀀스를 데이터 비트들의 시퀀스의 값으로 변환할 수도 있다 (1504). 본원에서 개시된 특정 양태들에 따르면, 디바이스는 심볼들의 시퀀스에 기초하여 복수의 배선들의 상태들의 변경들을 먼저 평가함으로써, 심볼들의 시퀀스를 값으로 변환할 수도 있다. 다음으로, 디바이스는 상태들의 변경들에 기초하여 심볼들의 시퀀스에 대한 심볼 값들을 계산한다. 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응할 수도 있고, 여기서, N 은 2 보다 더 큰 정수이다. 그 후에, 디바이스는 데이터 비트들의 시퀀스의 값을 결정하기 위하여, 베이스-N 계수들에 따라 베이스-N 수 다항식의 결과를 계산한다. 다음으로, 디바이스는 2진 포맷으로 값을 표현함으로써 데이터 비트들의 시퀀스를 복원한다 (1506).
심볼들의 시퀀스의 각각의 심볼은 복수의 배선들의 현재의 상태들을 포함한다. 일 예의 구현예에서, 도 15 의 디코딩 방법은 N = 3 인 (즉, 2 개의 물리적 배선들) 베이스-N 수 다항식을 이용하여, 그리고 (2 보다 더 큰 N 의 다른 값들, 예컨대, N = 7 (즉, 3 개의 물리적 배선들) 이 고려되지만) 프레임 당 2 개의 심볼들을 이용하여 구현될 수도 있다. 따라서, N = 3 (즉, 2 개의 물리적 배선들) 일 때, 디바이스는 각각의 심볼에 대하여, 제 1 상태 값을 결정하기 위한 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산, 및 제 2 상태 값을 결정하기 위한 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 수행함으로써 복수의 배선들의 상태들의 변경들을 평가할 수도 있다.
본원에서 개시된 특정 양태들에 따르면, 디바이스는 상태의 변경이 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이에서 발생할 때, 제 1 상태 값이 0 인 것으로 결정하고, 디바이스는 상태의 미변경이 제 1 배선의 현재의 상태와 제 1 배선의 이전의 상태 사이에서 발생할 때, 제 1 상태 값이 1 인 것으로 결정하고, 디바이스는 상태의 변경이 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이에서 발생할 때, 제 2 상태 값이 0 인 것으로 결정하고, 디바이스는 상태의 미변경이 제 2 배선의 현재의 상태와 제 2 배선의 이전의 상태 사이에서 발생할 때, 제 2 상태 값이 1 인 것으로 결정한다.
본원에서 개시된 특정 양태들에 따르면, 심볼의 제 1 상태 값 및 제 2 상태 값은 심볼에 대응하는 베이스-2 수 다항식의 한 쌍의 베이스-2 계수들에 대응한다. 따라서, 디바이스는 각각의 심볼에 대응하는 개개의 쌍의 베이스-2 계수들에 따라 심볼들의 시퀀스의 각각의 심볼의 베이스-2 수 다항식의 결과를 계산함으로써, 그리고 각각의 심볼에 대하여 각각 계산된 베이스-2 수 다항식의 결과에 따라 각각의 심볼에 대한 심볼 값을 결정함으로써, 심볼들의 시퀀스의 심볼 값들을 계산한다.
개시된 프로세스들에서의 단계들의 특정한 순서 또는 계층구조는 예시적인 접근법들의 예시라는 것이 이해된다. 설계 선호도들에 기초하여, 프로세스들에서의 단계들의 특정 순서 또는 계층구조는 재배열될 수도 있다는 것이 이해된다. 동반된 방법 청구항들은 표본적인 순서에서 다양한 단계들의 엘리먼트들을 제시하고, 제시된 특정 순서 또는 계층구조로 한정되도록 의도된 것은 아니다.
이 출원에서 이용된 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같지만, 이것으로 제한되지는 않는 컴퓨터-관련 엔티티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 오브젝트, 엑시큐터블, 실행의 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만, 이것으로 제한되지는 않는다. 예시로서, 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에서 상주할 수 있고, 컴포넌트는 하나의 컴퓨터 상에서 로컬라이즈 (localize) 될 수도 있고, 및/또는 2 개 이상의 컴퓨터들 사이에서 분산될 수도 있다. 게다가, 이 컴포넌트들은 그 위에 저장된 다양한 데이터 구조들을 가지는 다양한 컴퓨터 판독가능 매체들로부터 실행될 수도 있다. 컴포넌트들은 예컨대, 로컬 시스템, 분산 시스템에서의 또 다른 컴포넌트와, 및/또는 인터넷과 같은 네트워크를 가로질러 신호를 통해 다른 시스템들과 상호작용하는 하나 컴포넌트로부터의 데이터와 같은 하나 이상의 데이터 패킷들을 가진느 신호에 따라, 로컬 및/또는 원격 프로세스들을 통해 통신할 수도 있다.
또한, 용어 "또는" 은 배타적인 "또는" 이 아니라, 포괄적인 "또는" 을 의미하도록 의도된다. 즉, 이와 다르게 특정되거나 맥락으로부터 명백하지 않으면, 어구 "X 는 A 또는 B 를 채용함" 은 자연적인 포괄적 치환들 중의 임의의 것을 의미하도록 의도된다. 즉, 어구 "X 는 A 또는 B 를 채용함" 은 다음의 사례들 중의 임의의 것에 의해 충족된다: X 는 A 를 채용하고; X 는 B 를 채용하고; 또는 X 는 A 및 B 양자를 채용한다. 게다가, 이 출원 및 첨부된 청구항들에서 이용된 바와 같은 관사들 "a" 및 "an" 은, 이와 다르게 특정되거나 단수 형태로 지향되도록 하기 위하여 맥락으로부터 명백하지 않으면, "하나 이상" 을 의미하도록 일반적으로 해석되어야 한다.
이전의 설명은 당해 분야의 임의의 당업자가 본원에서 설명된 다양한 양태들을 실시하는 것을 가능하게 하도록 제공된다. 이 양태들에 대한 다양한 수정들은 당해 분야의 당업자들에게 용이하게 명백할 것이고, 본원에서 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 이에 따라, 청구항들은 본원에서 도시된 양태들로 한정되도록 의도된 것이 아니라, 문언적 청구항들과 일치하는 전체 범위를 따르도록 한 것이고, 단수인 엘리먼트에 대한 참조는 그렇게 특별히 기재되지 않으면 "하나 그리고 오직 하나" 를 의미하도록 의도된 것이 아니라, 오히려 "하나 이상" 을 의미하도록 의도된 것이다. 이와 다르게 구체적으로 기재되지 않으면, 용어 "일부" 는 하나 이상을 지칭한다. 당해 분야의 당업자들에게 알려져 있거나 추후의 알려지게 되는 이 개시물의 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 그리고 기능적 등가물들은 참조를 위해 본원에 분명하게 편입되고, 청구항들에 의해 망라되도록 의도된다. 또한, 본원에서 개시된 어떤 것도 이러한 개시물이 청구항들에서 명시적으로 열거되는지 여부에 관계없이 공중에게 헌정되도록 의도된 것은 아니다. 청구항 엘리먼트는 엘리먼트가 어구 "~ 위한 수단" 을 이용하여 분명하게 열거되지 않으면 수단 플러스 기능 (means plus function) 으로서 해석되지 않아야 한다.

Claims (30)

  1. 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치로서,
    복수의 배선들에 결합된 통신 인터페이스 회로; 및
    상기 통신 인터페이스 회로에 결합된 프로세싱 회로를 포함하며,
    상기 프로세싱 회로는,
    프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하고,
    상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하는 것으로서, 변환하도록 구성된 상기 프로세싱 회로는,
    상기 값에 기초하여 상기 프레임에 대한 베이스-N (base-N) 수 다항식의 베이스-N 계수들을 계산하는 것으로서, 상기 N 은 2 보다 더 큰 정수이고, 상기 베이스-N 계수들은 상기 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 수 다항식의 베이스-N 계수들을 계산하고,
    각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산하고,
    각각의 심볼에 대하여 각각 계산된 상기 베이스-2 계수들에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 상기 복수의 배선들의 상태들의 변경들을 결정하고, 그리고
    각각의 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들에 기초하여 상기 심볼들의 시퀀스를 생성하도록
    구성되는, 상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하고, 그리고
    상기 심볼들의 시퀀스를 수신기로 송신하도록
    구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  2. 제 1 항에 있어서,
    상기 프로세싱 회로는,
    인코딩되어야 할 데이터의 2진 스트링을 수신하고; 그리고
    상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하는 것으로서, 상기 데이터 비트들의 시퀀스는 상기 데이터의 2진 스트링의 서브세트인, 상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하도록
    추가로 구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  3. 제 1 항에 있어서,
    상기 값을, 상기 심볼들의 시퀀스로 변환하도록 구성된 상기 프로세싱 회로는,
    상기 심볼들의 시퀀스의 제 1 심볼에 대응하는 제 1 베이스-N 계수에 따라 제 1 베이스-2 수 다항식의 제 1 쌍의 베이스-2 계수들을 계산하고;
    상기 제 1 쌍의 베이스-2 계수들에 따라 상기 제 1 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하고;
    상기 심볼들의 시퀀스의 제 2 심볼에 대응하는 제 2 베이스-N 계수에 따라 제 2 베이스-2 수 다항식의 제 2 쌍의 베이스-2 계수들을 계산하고; 그리고
    상기 제 2 쌍의 베이스-2 계수들에 따라 상기 제 2 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하도록
    추가로 구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  4. 제 3 항에 있어서,
    상기 제 1 쌍 및 제 2 쌍의 베이스-2 계수들의 각각은 제 1 값 및 제 2 값을 포함하고;
    상기 제 1 값은 제 1 배선의 현재의 상태와 상기 제 1 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하고; 그리고
    상기 제 2 값은 제 2 배선의 현재의 상태와 상기 제 2 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  5. 제 4 항에 있어서,
    상기 제 1 값은 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 나타내고; 그리고
    상기 제 2 값은 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 나타내는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  6. 제 4 항에 있어서,
    상기 제 1 값이 0 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고,
    상기 제 1 값이 1 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되고,
    상기 제 2 값이 0 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고, 그리고
    상기 제 2 값이 1 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  7. 제 6 항에 있어서,
    상기 심볼들의 시퀀스를 생성하도록 구성된 상기 프로세싱 회로는,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 1 심볼에 대하여 표시될 때, 상기 제 1 배선이 LOW 레벨로 풀 다운되는 것으로 결정하도록
    구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  8. 제 7 항에 있어서,
    상기 심볼들의 시퀀스를 생성하도록 구성된 상기 프로세싱 회로는,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하고; 그리고
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하는 것을 금지하도록
    추가로 구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  9. 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법으로서,
    프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하는 단계;
    상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하는 단계로서, 상기 변환하는 단계는,
    상기 값에 기초하여 상기 프레임에 대한 베이스-N 수 다항식의 베이스-N 계수들을 계산하는 단계로서, 상기 N 은 2 보다 더 큰 정수이고, 상기 베이스-N 계수들은 상기 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 수 다항식의 베이스-N 계수들을 계산하는 단계,
    각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산하는 단계,
    각각의 심볼에 대하여 각각 계산된 상기 베이스-2 계수들에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 상기 복수의 배선들의 상태들의 변경들을 결정하는 단계,
    각각의 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들에 기초하여 상기 심볼들의 시퀀스를 생성하는 단계
    를 포함하는, 상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하는 단계; 및
    상기 심볼들의 시퀀스를 수신기로 송신하는 단계를 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  10. 제 9 항에 있어서,
    인코딩되어야 할 데이터의 2진 스트링을 수신하는 단계; 및
    상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하는 단계로서, 상기 데이터 비트들의 시퀀스는 상기 데이터의 2진 스트링의 서브세트인, 상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하는 단계를 더 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  11. 제 9 항에 있어서,
    상기 값을, 상기 심볼들의 시퀀스로 변환하는 단계는,
    상기 심볼들의 시퀀스의 제 1 심볼에 대응하는 제 1 베이스-N 계수에 따라 제 1 베이스-2 수 다항식의 제 1 쌍의 베이스-2 계수들을 계산하는 단계;
    상기 제 1 쌍의 베이스-2 계수들에 따라 상기 제 1 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하는 단계;
    상기 심볼들의 시퀀스의 제 2 심볼에 대응하는 제 2 베이스-N 계수에 따라 제 2 베이스-2 수 다항식의 제 2 쌍의 베이스-2 계수들을 계산하는 단계; 및
    상기 제 2 쌍의 베이스-2 계수들에 따라 상기 제 2 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하는 단계를 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  12. 제 11 항에 있어서,
    상기 제 1 쌍 및 제 2 쌍의 베이스-2 계수들의 각각은 제 1 값 및 제 2 값을 포함하고;
    상기 제 1 값은 제 1 배선의 현재의 상태와 상기 제 1 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하고; 그리고
    상기 제 2 값은 제 2 배선의 현재의 상태와 상기 제 2 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  13. 제 12 항에 있어서,
    상기 제 1 값은 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 나타내고; 그리고
    상기 제 2 값은 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 나타내는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  14. 제 12 항에 있어서,
    상기 제 1 값이 0 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고,
    상기 제 1 값이 1 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되고,
    상기 제 2 값이 0 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고, 그리고
    상기 제 2 값이 1 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  15. 제 14 항에 있어서,
    상기 심볼들의 시퀀스를 생성하는 단계는,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 1 심볼에 대하여 표시될 때, 상기 제 1 배선이 LOW 레벨로 풀 다운되는 것으로 결정하는 단계를 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  16. 제 15 항에 있어서,
    상기 심볼들의 시퀀스를 생성하는 단계는,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하는 단계; 및
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하는 것을 금지하는 단계를 더 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하는 방법.
  17. 복수의 배선들에 결합된 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치로서,
    프레임에 할당된 데이터 비트들의 시퀀스의 값을 결정하기 위한 수단;
    상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하기 위한 수단으로서, 상기 변환하기 위한 수단은,
    상기 값에 기초하여 상기 프레임에 대한 베이스-N 수 다항식의 베이스-N 계수들을 계산하는 것으로서, 상기 N 은 2 보다 더 큰 정수이고, 상기 베이스-N 계수들은 상기 심볼들의 시퀀스의 심볼들에 각각 대응하는, 상기 베이스-N 수 다항식의 베이스-N 계수들을 계산하고,
    각각의 심볼에 대응하는 개개의 베이스-N 계수에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 베이스-2 수 다항식의 베이스-2 계수들을 계산하고,
    각각의 심볼에 대하여 각각 계산된 상기 베이스-2 계수들에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 상기 복수의 배선들의 상태들의 변경들을 결정하고,
    각각의 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들에 기초하여 상기 심볼들의 시퀀스를 생성하도록
    구성되는, 상기 값을, 상기 프레임과 연관된 심볼들의 시퀀스로 변환하기 위한 수단; 및
    상기 심볼들의 시퀀스를 수신기로 송신하기 위한 수단을 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  18. 제 17 항에 있어서,
    인코딩되어야 할 데이터의 2진 스트링을 수신하기 위한 수단; 및
    상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하기 위한 수단으로서, 상기 데이터 비트들의 시퀀스는 상기 데이터의 2진 스트링의 서브세트인, 상기 데이터의 2진 스트링의 서브세트들을 복수의 프레임들에 각각 할당하기 위한 수단을 더 포함하는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  19. 제 17 항에 있어서,
    상기 값을, 상기 심볼들의 시퀀스로 변환하기 위한 수단은,
    상기 심볼들의 시퀀스의 제 1 심볼에 대응하는 제 1 베이스-N 계수에 따라 제 1 베이스-2 수 다항식의 제 1 쌍의 베이스-2 계수들을 계산하고;
    상기 제 1 쌍의 베이스-2 계수들에 따라 상기 제 1 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하고;
    상기 심볼들의 시퀀스의 제 2 심볼들에 대응하는 제 2 베이스-N 계수에 따라 제 2 베이스-2 수 다항식의 제 2 쌍의 베이스-2 계수들을 계산하고; 그리고
    상기 제 2 쌍의 베이스-2 계수들에 따라 상기 제 2 심볼에 대한 상기 복수의 배선들의 상태들의 상기 변경들을 결정하도록
    구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 제 1 쌍 및 제 2 쌍의 베이스-2 계수들의 각각은 제 1 값 및 제 2 값을 포함하고;
    상기 제 1 값은 제 1 배선의 현재의 상태와 상기 제 1 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하고; 그리고
    상기 제 2 값은 제 2 배선의 현재의 상태와 상기 제 2 배선의 이전의 상태 사이의 상태의 변경 또는 상태의 미변경을 표시하는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 제 1 값은 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 XNOR 연산을 나타내고; 그리고
    상기 제 2 값은 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 XNOR 연산을 나타내는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 제 1 값이 0 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고,
    상기 제 1 값이 1 일 때, 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되고,
    상기 제 2 값이 0 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 변경이 표시되고, 그리고
    상기 제 2 값이 1 일 때, 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이의 상태의 미변경이 표시되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  23. 제 22 항에 있어서,
    상기 심볼들의 시퀀스를 생성하도록 구성된 상기 변환하기 위한 수단은,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 1 심볼에 대하여 표시될 때, 상기 제 1 배선이 LOW 레벨로 풀 다운되는 것으로 결정하도록 구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  24. 제 23 항에 있어서,
    상기 심볼들의 시퀀스를 생성하도록 구성된 상기 변환하기 위한 수단은,
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 미변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하고; 그리고
    상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이의 상태의 변경이 상기 제 2 심볼에 대하여 표시될 때, 상기 제 1 배선을 상기 LOW 레벨로 풀 다운하는 것을 금지하도록
    추가로 구성되는, 데이터 통신 인터페이스에서 데이터를 인코딩하기 위한 장치.
  25. 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치로서,
    복수의 배선들에 결합된 통신 인터페이스 회로; 및
    상기 통신 인터페이스 회로에 결합된 프로세싱 회로를 포함하며,
    상기 프로세싱 회로는,
    프레임에서의 심볼들의 시퀀스를 수신하는 것으로서, 상기 심볼들의 시퀀스는 상기 프레임에 할당된 데이터 비트들의 시퀀스를 나타내는, 상기 프레임에서의 심볼들의 시퀀스를 수신하고,
    상기 심볼들의 시퀀스를 데이터 비트들의 상기 시퀀스의 값으로 변환하는 것으로서, 변환하도록 구성된 상기 프로세싱 회로는,
    상기 심볼들의 시퀀스에 기초하여 상기 복수의 배선들의 상태들의 변경들을 평가하고,
    상기 상태들의 변경들에 기초하여 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산하는 것으로서, 상기 심볼 값들은 베이스-N 수 다항식의 베이스-N 계수들에 각각 대응하고, N 은 2 보다 더 큰 정수인, 상기 심볼들의 시퀀스에 대한 심볼 값들을 계산하고, 그리고
    상기 데이터 비트들의 시퀀스의 상기 값을 결정하기 위하여, 상기 베이스-N 계수들에 따라 상기 베이스-N 수 다항식의 결과를 계산하도록
    구성되는, 상기 심볼들의 시퀀스를 데이터 비트들의 상기 시퀀스의 값으로 변환하고, 그리고
    2진 포맷으로 상기 값을 표현함으로써 데이터 비트들의 상기 시퀀스를 복원하도록
    구성되는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
  26. 제 25 항에 있어서,
    상기 데이터 비트들의 시퀀스는 디코딩되어야 할 데이터의 2진 스트링의 서브세트이고, 상기 2진 스트링의 서브세트들은 복수의 프레임들에 각각 할당되는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
  27. 제 25 항에 있어서,
    상기 심볼들의 시퀀스의 각각의 심볼은 상기 복수의 배선들의 현재의 상태들을 포함하고, 상기 복수의 배선들의 상태들의 상기 변경들을 평가하도록 구성된 상기 프로세싱 회로는, 각각의 심볼에 대하여,
    제 1 상태 값을 결정하기 위한 제 1 배선의 현재의 상태와 상기 1 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산; 및
    제 2 상태 값을 결정하기 위한 제 2 배선의 현재의 상태와 상기 2 배선의 이전의 상태 사이의 배타적-NOR (XNOR) 연산을 수행하도록
    구성되는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
  28. 제 27 항에 있어서,
    상기 복수의 배선들의 상태들의 상기 변경들을 평가하도록 구성된 상기 프로세싱 회로는,
    상태의 변경이 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이에서 발생할 때, 상기 제 1 상태 값이 0 인 것으로 결정하고;
    상태의 미변경이 상기 제 1 배선의 상기 현재의 상태와 상기 제 1 배선의 상기 이전의 상태 사이에서 발생할 때, 상기 제 1 상태 값이 1 인 것으로 결정하고;
    상태의 변경이 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이에서 발생할 때, 상기 제 2 상태 값이 0 인 것으로 결정하고; 그리고
    상태의 미변경이 상기 제 2 배선의 상기 현재의 상태와 상기 제 2 배선의 상기 이전의 상태 사이에서 발생할 때, 상기 제 2 상태 값이 1 인 것으로 결정하도록
    추가로 구성되는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
  29. 제 27 항에 있어서,
    심볼의 상기 제 1 상태 값 및 상기 제 2 상태 값은 상기 심볼에 대응하는 베이스-2 수 다항식의 한 쌍의 베이스-2 계수들에 대응하는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
  30. 제 29 항에 있어서,
    상기 심볼들의 시퀀스의 상기 심볼 값들을 계산하도록 구성된 상기 프로세싱 회로는,
    각각의 심볼에 대응하는 개개의 쌍의 베이스-2 계수들에 따라 상기 심볼들의 시퀀스의 각각의 심볼에 대한 상기 베이스-2 수 다항식의 결과를 계산하고; 그리고
    각각의 심볼에 대하여 각각 계산된 상기 베이스-2 수 다항식의 상기 결과에 따라 각각의 심볼에 대한 심볼 값을 결정하도록 구성되는, 데이터 통신 인터페이스에서 데이터를 디코딩하기 위한 장치.
KR1020177028255A 2015-04-10 2016-04-07 N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법 KR20170134470A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562145693P 2015-04-10 2015-04-10
US62/145,693 2015-04-10
US15/092,554 2016-04-06
US15/092,554 US9996483B2 (en) 2015-04-10 2016-04-06 N-base numbers to physical wire states symbols translation method
PCT/US2016/026537 WO2016164651A1 (en) 2015-04-10 2016-04-07 N-base numbers to physical wire states symbols translation method

Publications (1)

Publication Number Publication Date
KR20170134470A true KR20170134470A (ko) 2017-12-06

Family

ID=55806810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177028255A KR20170134470A (ko) 2015-04-10 2016-04-07 N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법

Country Status (9)

Country Link
US (1) US9996483B2 (ko)
EP (1) EP3281119A1 (ko)
JP (1) JP2018513635A (ko)
KR (1) KR20170134470A (ko)
CN (1) CN107454959A (ko)
AU (1) AU2016244848A1 (ko)
BR (1) BR112017021719A2 (ko)
TW (1) TW201640359A (ko)
WO (1) WO2016164651A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211204A1 (ko) * 2021-03-31 2022-10-06 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132323B2 (en) * 2017-06-20 2021-09-28 Intel Corporation System, apparatus and method for extended communication modes for a multi-drop interconnect
CN108170617B (zh) * 2017-12-01 2019-12-13 广东高云半导体科技股份有限公司 一种i3c设备及通信方法
US11314668B2 (en) 2018-02-19 2022-04-26 Intel Corporation Method, apparatus and system for device transparent grouping of devices on a bus
US20210096971A1 (en) * 2019-10-01 2021-04-01 Tektronix, Inc. Bus autodetect
KR20220051750A (ko) * 2020-10-19 2022-04-26 삼성전자주식회사 장치간 물리적 인터페이스의 트레이닝을 위한 장치 및 방법
US12079097B2 (en) * 2020-10-20 2024-09-03 Nvidia Corporation Techniques for testing semiconductor devices
US20210318975A1 (en) * 2021-06-24 2021-10-14 Intel Corporation Providing I3C Communications Of Multiple Data Lines Via A Universal Serial Bus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011041059A (ja) * 2009-08-12 2011-02-24 Sony Corp 符号化装置、情報処理装置、符号化方法、及びデータ伝送方法
US9374216B2 (en) 2013-03-20 2016-06-21 Qualcomm Incorporated Multi-wire open-drain link with data symbol transition based clocking
US9118457B2 (en) 2013-03-15 2015-08-25 Qualcomm Incorporated Multi-wire single-ended push-pull link with data symbol transition based clocking
US9639499B2 (en) * 2013-06-12 2017-05-02 Qualcomm Incorporated Camera control interface extension bus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211204A1 (ko) * 2021-03-31 2022-10-06 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법
KR20220135775A (ko) * 2021-03-31 2022-10-07 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법

Also Published As

Publication number Publication date
JP2018513635A (ja) 2018-05-24
CN107454959A (zh) 2017-12-08
US9996483B2 (en) 2018-06-12
BR112017021719A2 (pt) 2018-07-10
US20160299855A1 (en) 2016-10-13
WO2016164651A1 (en) 2016-10-13
TW201640359A (zh) 2016-11-16
AU2016244848A1 (en) 2017-09-21
EP3281119A1 (en) 2018-02-14

Similar Documents

Publication Publication Date Title
KR20170134470A (ko) N-베이스 수들 투 물리적 배선 상태들 심볼들 변환 방법
US9811499B2 (en) Transcoding and transmission over a serial bus
US10089173B2 (en) Error detection constants of symbol transition clocking transcoding
KR20160147842A (ko) 센서 글로벌 버스
US10579581B2 (en) Multilane heterogeneous serial bus
US20180054216A1 (en) Flipped bits for error detection and correction for symbol transition clocking transcoding
US20180062887A1 (en) Using full ternary transcoding in i3c high data rate mode
US9319178B2 (en) Method for using error correction codes with N factorial or CCI extension
US20190095273A1 (en) Parity bits location on i3c multilane bus