KR101746310B1 - 데이터 버스를 위한 누화 인지 인코딩 - Google Patents

데이터 버스를 위한 누화 인지 인코딩 Download PDF

Info

Publication number
KR101746310B1
KR101746310B1 KR1020157013652A KR20157013652A KR101746310B1 KR 101746310 B1 KR101746310 B1 KR 101746310B1 KR 1020157013652 A KR1020157013652 A KR 1020157013652A KR 20157013652 A KR20157013652 A KR 20157013652A KR 101746310 B1 KR101746310 B1 KR 101746310B1
Authority
KR
South Korea
Prior art keywords
data
bus
matrix
encoding
signal lines
Prior art date
Application number
KR1020157013652A
Other languages
English (en)
Other versions
KR20150079780A (ko
Inventor
스티븐 에이치 홀
차이탄야 스리라마
제이슨 에이 믹스
마이클 더블유 레디그
산체스 조세 에이 산체스
올루페미 비 올루와페미
폴 지 후레이
메이나드 씨 팔코너
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20150079780A publication Critical patent/KR20150079780A/ko
Application granted granted Critical
Publication of KR101746310B1 publication Critical patent/KR101746310B1/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Dc Digital Transmission (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

데이터를 인코딩하는 기술이 본 명세서에 설명된다. 본 기술에 따른 장치의 일 예는 복수의 디지털 입력에 결합된 시그널링 모듈을 포함한다. 시그널링 모듈은 인코딩된 데이터를 생성하기 위해 복수의 디지털 입력에서 수신되는 데이터를 인코딩하는 것이다. 인코딩된 데이터에 기초하여, 시그널링 모듈은 버스의 복수의 신호 라인 상에서 라인 전압을 구동할 수 있다. 복수의 라인 전압의 각각은 복수의 디지털 입력에서 수신되는 데이터의 가중 합에 대응한다.

Description

데이터 버스를 위한 누화 인지 인코딩{CROSSTALK AWARE ENCODING FOR A DATA BUS}
본 개시는 일반적으로 컴퓨팅 장치에서 신호 라인 사이의 누화를 감소시키는 기술에 관한 것이다. 특히, 본 개시는 데이터 버스의 신호 라인 사이의 누화를 감소시키는 인코딩 기술을 설명한다.
최신 컴퓨팅 장치는 지속적으로 점점 더 많은 수의 구성요소를 더 작은 장치 섀시로 통합한다. 섀시 용적이 감소됨에 따라, 구성요소 사이의 데이터 버스의 라우팅 밀도는 증가하며, 이는 데이터 버스의 신호 라인 사이의 누화 잡음의 대응하는 증가를 야기시킨다. 누화는 버스 성능을 감소시키는 경향이 있으며, 이는 데이터 버스가 구성요소 사이에서 데이터를 성공적으로 전송할 수 있는 데이터 속도를 제한하는 경향이 있다. 데이터 버스에서 누화를 감소시키는 하나의 방법은 신호 라인 간격을 증가시키는 것이며, 이는 달성될 수 있는 소형화의 정도를 제한한다.
도 1은 누화를 감소시키는 시그널링 모듈을 갖는 컴퓨팅 시스템의 일 예의 블록도이다.
도 2는 버스의 구동 및 수신 단에서 시그널링 모듈의 쌍의 일 예를 도시하는 블록도이다.
도 3은 인코더에 의해 사용되는 인코딩 프로세스의 다이어그램이다.
도 4는 디코더에 의해 사용되는 디코딩 프로세의 다이어그램이다.
도 5는 N 입력 인코더에 의해 사용되는 인코딩 매트릭스(W)이며, 여기서 N은 인코더에 의해 제어되는 신로 라인의 수에 대응한다.
도 6은 4 입력 인코더에 대한 인코딩 매트릭스의 일 예이다.
도 7은 N 입력 인코더에 의해 사용되는 디코딩 매트릭스(I)이며, 여기서 N은 디코더에 결합된 신호 라인의 수에 대응한다.
도 8은 4 입력 디코더에 대한 인코딩 매트릭스의 일 예이다.
도 9a-도 9d는 한 쌍의 시그널링 모듈에 의해 구현되는 인코딩 및 디코딩 프로세스의 시뮬레이션을 나타내는 그래프이다.
도 10a 및 도 10b는 이진 데이터의 단일 비트를 인코딩하는 4 입력 인코더에 의해 수행되는 인코딩 프로세스의 결과를 도시하는 그래프이다.
도 11a 및 도 11b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 아이 다이어그램이다.
도 12a 및 도 12b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 30 마이크로미터의 신호 라인 트레이스 폭 및 10 마이크로미터의 트레이스 대 트레이스 공간을 갖는 16 GT/s 버스의 시뮬레이션된 아이 다이어그램이다.
도 13a 및 도 13b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 30 마이크로미터의 신호 라인 트레이스 폭 및 10 마이크로미터의 트레이스 대 트레이스 공간을 갖는 24 GT/s 버스의 시뮬레이션된 아이 다이어그램이다.
도 14는 데이터를 인코딩하고 디코딩하는 방법을 요약하는 프로세스 흐름도이다.
본 명세서에 개시된 발명 대상은 예를 들어 마더보드 상의 메모리 버스와 같은 디지털 시스템 내의 구성요소 사이에서 정보를 송신하는 시그널링 기술에 관한 것이다. 구성요소 각각은 인코딩 블록을 갖는 입력/출력(Input/Output(I/O)) 송신기 및 디코딩 블록을 갖는 I/O 수신기를 포함할 수 있다. 구성요소 사이에서 송신되는 데이터는 누화의 부정적 효과가 제거되고 신호 품질이 증대되도록 인코딩되고 디코딩된다. 본 명세서에 설명된 시그널링 기술은 패키지, 인쇄 회로 보드(printed circuit board(PCB)), 멀티 칩 모듈(multi-chip module(MCM)) 및 멀티 칩 패키지(multi-chip package(MCP)) 상에 라우팅 밀도 및 버스 속도 둘다의 상당한 증가를 제공한다. 라우팅 밀도 및 버스 속도를 증가시키는 것은 더 많은 기능이 더 작은 용적으로 설계될 수 있게 하고 무어의 법칙에 따라 컴퓨터 성능의 스케일링을 용이하게 하는 것을 돕는다.
이하의 설명 및 특허청구범위에서, 용어 "결합된" 및 "연결된"은 그의 파생어와 함께 사용될 수 있다. 이러한 용어는 서로에 대한 동의어로 의도되지 않는다는 점이 이해되어야 한다. 오히려, 특정 실시예에서, "연결된"은 2개 이상의 요소가 서로 직접적으로 물리 또는 전기 접촉하는 것을 표시하기 위해 사용될 수 있다. "결합된"은 2개 이상의 요소가 직접적으로 물리 또는 전기 접촉하는 것을 의미할 수 있다. 그러나, "결합된"은 또한 2개 이상의 요소가 서로 직접적으로 접촉하는 것이 아니라, 서로 아직까지 여전히 협력하거나 상호 작용하는 것을 의미할 수 있다.
도 1은 누화를 감소시키는 시그널링 모듈을 갖는 컴퓨팅 시스템의 일 예의 블록도이다. 컴퓨팅 시스템(100)은 예를 들어 특히 이동 전화, 랩톱 컴퓨터, 울트라북, 데스크톱 컴퓨터, 서버, 또는 태블릿 컴퓨터일 수 있다. 컴퓨팅 시스템(100)은 프로세서(102)에 의해 실행 가능한 명령을 저장하는 메모리 장치(104) 뿐만 아니라 저장된 명령을 실행하도록 적응되는 프로세서(102)를 포함할 수 있다. 프로세서(102)는 단일 코어 프로세서, 멀티 코어 프로세서, 컴퓨팅 클러스터, 또는 임의의 수의 다른 구성일 수 있다. 프로세서(102)는 복잡 명령 집합 컴퓨터(Complex Instruction Set Computer(CISC)) 또는 축소 명령 집합 컴퓨터(Reduced Instruction Set Computer(RISC)) 프로세서, x86 명령 집합 호환 프로세서, 멀티 코어, 또는 임의의 다른 마이크로프로세서 또는 중앙 처리 유닛(central processing unit(CPU))으로 구현될 수 있다. 일부 실시예에서, 프로세서(102)는 듀얼 코어 프로세서(들), 듀얼 코어 이동 프로세서(들) 등을 포함한다.
메모리 장치(104)는 랜덤 액세스 메모리(예를 들어, SRAM, DRAM, 제로 커패시터 RAM, SONOS, eDRAM, EDO RAM, DDR RAM, RRAM, PRAM 등), 판독 전용 메모리(예를 들어, Mask ROM, PROM, EPROM, EEPROM 등), 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템을 포함할 수 있다. 메모리 장치(104)는 프로세서에 의해 실행될 때, 프로세서가 본 명세서에 설명된 따라 다양한 동작을 수행하도록 명령하는 컴퓨터 판독 가능 명령을 저장하기 위해 사용될 수 있다.
컴퓨팅 시스템(100)은 또한 컴퓨터 생성 그래픽을 처리하는 그래픽 프로세서(106)를 포함할 수 있다. 그래픽 프로세서(106)는 디스플레이(도시되지 않음)에 송신될 그래픽의 생성과 관련된 메모리를 처리하도록 구성된다. 디스플레이는 컴퓨팅 시스템(100)에 외부 연결된 컴퓨팅 시스템(100)의 내장 구성요소일 수 있다. 컴퓨팅 시스템(100)은 또한 다른 것 중에서, 네트워크 인터페이스 컨트롤러, 메모리 저장 장치, 사용자 입력 장치와 같은, 추가 I/O 장치(도시되지 않음)를 연결하고 제어하기 위해 사용되는 I/O 허브(108)를 포함할 수 있다. I/O 허브(108)에 결합된 I/O 장치는 컴퓨팅 시스템(100)의 내장 구성요소일 수 있거나, 컴퓨팅 시스템(100)에 외부 연결되는 장치일 수 있다.
컴퓨팅 시스템(100)은 또한 프로세서(102), 메모리(104), 그래픽 프로세서(106), 및 I/O 허브(110) 사이에서 통신을 처리하는 메모리 컨트롤러 허브(110)를 포함할 수 있다. 컴퓨팅 시스템(100)의 다양한 구성요소 사이의 통신은 다양한 데이터 버스를 통해 수행될 수 있다. 예를 들어, 그래픽 프로세서(106)는 그래픽 버스(112)를 통해 메모리 컨트롤러(110)에 결합될 수 있다. 메모리(104)는 메모리 버스(114)를 통해 메모리 컨트롤러(110)에 결합될 수 있다. 프로세서(102)와 메모리 컨트롤러(110) 사이의 데이터 버스는 전면측 버스(116)로 언급될 수 있다. 메모리 컨트롤러(110)와 I/O 허브 사이의 데이터 버스는 내부 버스(118)로 언급될 수 있다.
일부 실시예에서, 프로세서(102), 그래픽 프로세서(106), 메모리 장치(104), 메모리 컨트롤러(110), 및 I/O 허브(108)는 마더보드에 결합된 개별 집적 회로 칩일 수 있다. 일부 실시예에서, 프로세서(102), 그래픽 프로세서(106), 메모리 장치(104), 메모리 컨트롤러(110), 및 I/O 허브(108) 중 하나 이상은 멀티 칩 모듈(multi-chip module(MCM)), 멀티 칩 패키지(multi-chip package(MCP)), 또는 시스템 온 칩(system-on-a-chip(SOC))에 포함될 수 있다. 특정 구현의 설계 고려사항에 따라, 버스(112, 114, 116, 118) 중 하나 이상에 대한 신호 라인은 하나 이상의 회로 보드 상에 적어도 부분적으로 배치될 수 있다.
컴퓨팅 시스템(100)은 또한 각각의 버스에 결합된 구성요소 사이에서 디지털 통신을 용이하게 하는 시그널링 모듈(120)을 포함한다. 각각의 시그널링 모듈(120)은 디지털 신호를 수신하고 다양한 버스의 신호 라인 상에 전파하는 전압 신호를 생성한다. 아래에 더 설명되는 바와 같이, 전압 신호는 데이터 버스의 신호 라인 사이의 누화의 효과를 감소시키는 방식으로 시그널링 모듈에 의해 인코딩된다. 각각의 시그널링 모듈(120)은 싱글 엔드 통신을 사용하는 데이터 버스를 통해 데이터를 송신하는 컴퓨팅 장치(100)의 임의의 구성요소에 결합되거나 포함될 수 있다. 예를 들어, 시그널링 모듈은 다른 것 중에서, 프로세서(102), 그래픽 프로세서(106), 메모리 장치(104), 메모리 컨트롤러(110), 및 I/O 허브(108)에 포함될 수 있다.
도 1의 블록도는 컴퓨팅 시스템(100)이 도 1에 도시된 구성요소의 모두를 포함하고 있는 것을 표시하도록 의도되지 않는다는 점이 이해되어야 한다. 오히려, 컴퓨팅 시스템(100)은 도 1에 예시되지 않은 더 적거나 추가 구성요소를 포함할 수 있다. 더욱이, 구성요소는 도 1에 도시된 시스템 아키텍처 또는 구성요소 사이에서 싱글 엔드 통신을 용이하게 하기 위해 데이터 버스를 사용하는 임의의 다른 적절한 시스템 아키텍처를 포함하는, 임의의 적절한 시스템 아키텍처에 따라 서로에 결합될 수 있다. 예를 들어, 본 기술의 실시예 또한 시스템 온 칩(System-On-a-Chip(SOC)) 및 멀티 칩 모듈과 같은 초소형 폼 팩터 장치를 포함하는 임의의 적절한 전자 장치로 구현될 수 있다. 그것은 또한 디지털 정보를 한 지점으로부터 다른 지점으로 반송하기 위해 사용되는 컴퓨터 내부 또는 외부의 임의의 전기 케이블 상에 사용될 수 있다. 예를 들어, 본 기술의 실시예는 디스크 드라이브를 연결하는데 사용될 수 있다.
도 2는 버스의 구동 및 수신 단에서 시그널링 모듈의 쌍의 일 예를 도시하는 블록도이다. 구체적으로, 도 2는 N 신호 라인을 포함하는 데이터 버스(200)를 통해 통신 결합된 2개의 시그널링 모듈(120)을 도시하며, 여기서 N은 2, 4, 16, 32, 64, 또는 128을 포함하지만 이에 제한되지 않는 임의의 적절한 수일 수 있다. 일부 실시예에서, 신호 라인은 회로 보드 상에 적어도 부분적으로 배치되는 스트립 라인 또는 마이크로 스트립 라인이다. 일부 실시예에서, 신호 라인은 SOC, 멀티 칩 모듈, 또는 하나 이상의 케이블에 적어도 부분적으로 배치된다. 본 설명의 목적을 위해, 시그널링 모듈(120)은 본 명세서에서 송신 모듈(202) 및 수신 모듈(204)로 언급된다. 명료성을 위해, 송신 모듈(202)은 송신에 사용되는 구성요소를 포함하는 것으로 도시되는 반면, 수신 모듈(204)은 수신에 사용되는 구성요소를 포함하는 것으로 도시된다. 그러나, 일부 실시예에서, 각각의 시그널링 모듈(120)은 데이터 버스를 통해 데이터를 송신하고 수신하는 것 둘다를 위한 구성요소를 포함한다는 점이 이해될 것이다.
송신 모듈(202)은 버스(200)를 통해 송신될 데이터를 인코딩하는 하나 이상의 인코더(206)를 포함한다. 인코더(206)는 전자 구성요소(도시되지 않음)로부터 디지털 인코딩된 데이터를 수신하는 다수의 디지털 입력을 포함한다. 인코더로의 디지털 입력은 도 2에서 "데이터 A" 내지 "데이터 N"으로 언급된다. 인코더(206)의 출력은 복수의 송신기(208)에 결합되며, 그것의 각각은 인코더(206)로부터 신호를 수신하고 대응하는 전압 신호를 그 각각의 신호 라인 상에 송신한다. 인코더(206)는 누화의 부정적 효과가 제거되고 신호 품질이 증대되는 그러한 방식으로 버스(200)를 통해 송신되는 데이터를 인코딩한다.
수신 모듈(204)은 신호 라인 각각에 결합된 수신기(210)를 포함한다. 각각의 수신기(210)는 송신 모듈(202)의 각각의 송신기(208)에 의해 송신되는 아날로그 신호를 수신하고 입력 신호를 각각의 디코더(212)에 제공한다. 디코더(212)는 데이터 버스(200)를 통해 송신되는 데이터를 디코딩하고 디지털 데이터를 수신 전자 구성요소(도시되지 않음)에 송신한다. 수신 모듈(204)의 각각의 디코더(212)는 송신 모듈(206)의 각각의 인코더(206)와 쌍을 이룬다.
도 2에 도시된 바와 같이, 각각의 인코더(206)는 데이터 버스(200)의 신호 라인 중 4개를 제어할 수 있다. 그러나, 일부 실시예에서, 각각의 인코더(206)는 데이터 버스(200)의 전체 수의 신호 라인까지 임의의 적절한 수의 신호 라인을 제어할 수 있다. 도 2에 도시된 것과 같은, 일부 실시예에서, 데이터 버스(200)는 다수의 인코더/디코더 쌍 사이에서 분할된다. 일부 실시예에서, 송신 모듈은 단일 인코더(206)를 포함하고 수신 모듈은 단일 디코더(212)를 포함한다.
본 설명 도처에서, 본 기술을 설명하는 기준점의 역할을 하는 노드가 참조될 수 있다. 구체적으로, 노드 A는 송신 모듈(202)의 송신기(208)의 출력을 언급하고, 노드 B는 수신 모듈(204)의 수신기(210)의 입력을 언급하고, 노드 C는 수신 모듈(204)에서 디코더(212)의 디지털 출력을 언급한다.
아래에 더 설명되는 바와 같이, 단일 인코더(206)에 대한 데이터 입력(예를 들어, 데이터 A 내지 데이터 D)은 이웃 신호 라인으로부터의 누화가 각각의 신호 라인을 통해 송신되는 신호의 일부가 되도록 인코딩된다. 일부 실시예에서, 인코더(206)는 송신된 라인 전압을 생성하기 위해 인코딩 매트릭스를 사용하며, 그 결과 특정 신호 라인 상에 구동되는 라인 전압은 인코더(206)에 대한 디지털 입력 모두의 가중 합이다. 인코딩은 디코딩 시에, 이웃 라인으로부터의 누화가 제거되도록 각각의 신호 라인 상에서 전압 파형을 조정한다. 일부 실시예에서, 디코더(212)는 인코딩 매트릭스의 전치 또는 역 매트릭스인 디코딩 매트릭스를 사용하여 수신된 라인 전압을 디코딩한다.
도 3은 인코더에 의해 사용되는 인코딩 프로세스의 다이어그램이다. 구체적으로, 도 3은 도 2의 인코더(206)의 것과 같은, 4 입력 인코더에 의해 사용되는 인코딩 프로세스의 수학적 표현이다. 도 2의 다이어그램(300)은 다수의 데이터 입력, 즉 데이터 A 내지 데이터 D를 도시하며, 이는 도 2에 도시된 동일한 명칭의 4개의 데이터 입력과 부합한다. 도 2의 다이어그램(300)은 또한 라인 1 전압 및 라인 2 전압으로 언급되는 다수의 출력 라인 전압을 도시한다. 라인 1 전압은 도 2의 "라인 1"로 언급되는 신호 라인 상에 구동되는 전압을 나타내고, 라인 2 전압은 도 2의 "라인 2"로 언급되는 신호 라인 상에 구동되는 전압을 나타낸다. 4 입력 인코더는 또한 라인 3 전압 및 라인 4 전압(도시되지 않음)을 포함한다는 점이 이해될 것이다.
도 3에 도시된 바와 같이, 인코더는 가중 로직 및 합산 로직을 포함할 수 있다. 데이터 A 내지 데이터 D는 인코더의 입력에서의 이진 전압 레벨(예를 들어, 1 및 0)이다. 각각의 라인 전압에 대해, 인코더는 지정된 가중 파라미터(Wij)(302)에 따라 4개의 데이터 입력, 즉 데이터 A 내지 데이터 D 각각을 가중하고 그 다음 가중 입력은 합산기(304)에 의해 가산된다. 각각의 합산기(304)의 출력은 대응하는 라인 전압을 구동하기 위해 송신기를 제어하도록 사용된다. 입력 데이터를 인코딩한 후에, 라인 전압 각각은 인코더에 결합된 데이터 입력 각각의 가중 합에 비례할 것이다.
도 3에 도시된 바와 같이, 인코딩은 빅팀 및 어그레서 라인으로부터의 입력 데이터 정보의 가중 합에 기초한다. 본 설명의 목적을 위해, 용어 "어그레서 라인(aggressor line)"은 누화 잡음의 소스를 지칭하고, 용어 "빅팀 라인(victim line)"은 누화 잡음의 수신기를 지칭한다. 인코딩 매트릭스는 어그레서로부터 빅팀 라인으로 결합되는 잡음이 신호의 일부가 되고 따라서 누화의 부정적 속성을 제거하도록 구성된다. 입력 데이터 정보는 입력 이진 데이터 스트림(논리 1 및 0) 또는 그의 미리 구동된 전압 값으로 구성될 수 있다. 가중값(Wij)은 각각의 입력에 대해 고유할 수 있고 고려된 각각의 빅팀 라인에 대해 고유한 세트일 수 있다. 첨자 i 및 j는 빅팀 라인 수 및 어그레서 라인 수 각각을 표시한다. 가중 파라미터(Wij)(302)는 도 5 및 도 6에 관하여, 아래에 더 설명되는, 미리 정의된 가중 체계에 따라 지정될 수 있으며, 그것의 각각은 매트릭스 형태로 집합되는 가중 파라미터를 나타낸다.
도 3에 도시된 프로세스는 로직 회로, 컴퓨터 판독 가능 명령을 실행하도록 구성된 하나 이상의 프로세서 등을 포함하는 임의의 적절한 하드웨어로 구현될 수 있다. 더욱이, 도 3이 4 입력 인코더의 다이어그램을 도시하지만, 동일한 기술은 임의의 적절한 수 데이터 입력을 갖는 인코더에 사용될 수 있다.
도 4는 디코더에 의해 사용되는 디코딩 프로세스의 다이어그램이다. 구체적으로, 도 4는 도 2 및 도 3의 인코더(206)와 쌍을 이루는 디코더(212)에 의해 사용되는 디코딩 프로세스의 수학적 표현이다. 도 2의 다이어그램(400)은 다수의 라인 전압 입력, 즉 라인 1 내지 라인 4을 도시하며, 이는 도 2에 도시된 동일한 명칭의 신호 라인과 부합한다. 도 4의 다이어그램(400)은 또한 데이터 A 및 데이터 B로 언급되는, 다수의 데이터 출력을 도시한다. 데이터 A 및 데이터 B 출력은 도 2에 도시된 동일한 명칭의 데이터 출력을 나타낸다. 도 4의 4 출력 디코더는 또한 데이터 C 출력 및 데이터 D 출력(도시되지 않음)를 포함한다는 점이 이해될 것이다.
도 4에 도시된 바와 같이, 디코더는 가중 로직 및 합산 로직을 포함할 수 있다. 각각의 데이터 출력에 대해, 디코더는 지정된 가중 파라미터(Iij)(402)에 따라, 데이터 버스를 통해 수신되는 4개의 라인 전압 각각을 가중하고 그 다음 가중 라인 전압은 합산기(404)에 의해 가산된다. 각각의 신호 라인으로부터의 라인 전압은 대응하는 가중 항(Iij)에 곱해진다. 첨자 i 및 j는 빅팀 라인 수 및 어그레서 라인 수 각각을 표시한다. 각각의 합산기(404)의 출력은 대응하는 디지털 데이터 출력을 생성하기 위해 사용된다. 라인 전압 데이터를 디코딩한 후에, 데이터 출력 각각은 디코더에 결합된 라인 전압 각각의 가중 합에 비례할 것이다. 데이터 A로 언급되는 디코더 출력은 데이터 버스의 송신측에서 대응하는 인코더에 입력된 디지털 데이터를 나타내는 디지털 신호이며, 이는 또한 도 2 및 도 3 둘다에서 데이터 A로 언급된다. 가중 파라미터(Iij)(402)는 도 7 및 도 8에 관하여, 아래에 더 설명되는, 미리 정의된 가중 체계에 따라 지정될 수 있다.
도 4에 도시된 프로세스는 로직 회로, 컴퓨터 판독 가능 명령을 실행하도록 구성된 하나 이상의 프로세서 등을 포함하는, 임의의 적절한 하드웨어로 구현될 수 있다. 더욱이, 도 4가 4 출력 디코더의 다이어그램을 도시하지만, 동일한 기술은 임의의 적절한 수 데이터 출력을 갖는 디코더에 사용될 수 있다.
도 5는 N 입력 인코더에 의해 사용되는 인코딩 매트릭스(W)이며, N은 인코더에 의해 제어되는 신호 라인의 수에 대응한다. 인코딩 매트릭스는 인코더에 의해 수신되는 디지털 데이터를 인코딩하기 위해 사용되는 가중 파라미터의 매트릭스이다. 인코딩 매트릭스의 크기는 인코더에 의해 제어되는 신호 라인의 수에 의존할 것이다. 가중 파라미터(Wij)는 인코더에 대한 디지털 데이터 입력이 디코더에 의해 재생되는 것을 여전히 보장하면서, 인코더에 의해 제어되는 신호 라인 각각 사이의 누화가 감소되도록 지정될 수 있다.
가중값은 부호를 지닌 실수 또는 정수일 수 있고 누화가 최소화되고 송신기 및 수신기 장치의 전압 제한이 위반되지 않도록 선택된다. 매트릭스 형태로 결합될 때, 표준 선형 대수는 수학식 1에 도시된 바와 같은 데이터를 인코딩하기 위해 사용될 수 있다.
[수학식 1]
Figure 112015049459360-pct00001
수학식 1에서, VA는 도 2의 노드 A에서 인터커텍트 위에 송신될 인코딩된 전압을 리스트하는 열 벡터이고, WT는 가중 매트릭스(500)의 전치 매트릭스이고, Vinput는 버스(인코더에 대한 이진 입력) 위에 송신될 이진 정보를 포함하는 입력 열 벡터이다. 전압(VA)은 수학식 1에 의해 설명된 바와 같이 결합되고 버스(200)의 물리 신호 라인 위에서 축출된다.
가중 파라미터는 할당된 실수, 복소수, 또는 정수일 수 있고 누화가 최소화되고 송신기 및 수신기 장치의 전압 제한이 위반되지 않도록 선택된다. 데이터가 채널에 걸쳐 송신되면, 누화가 신호로부터 효과적으로 제거되고 이진 데이터가 복구될 수 있다. 누화를 최소화하기 위해, 가중 파라미터는 특정 규칙에 따라 지정될 수 있다. N 신호 라인을 갖는 채널에 대해, 가중 파라미터는 수학식 2 및 3으로 표현되는 규칙이 만족되도록 라인 상에 송신될 수 있는 데이터의 고유 조합을 나타낸다.
[수학식 2]
j≠k이면
Figure 112015049459360-pct00002
; 및
[수학식 3]
j=k이면
Figure 112015049459360-pct00003
, 여기서 Y는 상수이다.
수학식 2는 인코딩 매트릭스(500)의 임의의 2개의 열 사이의 내적인 0인 것을 표시한다. 수학식 3은 인코딩 매트릭스(500)의 각각의 열에 대한 제곱합이 정수형 상수인 것을 표시한다.
도 6은 4 입력 인코더에 대한 인코딩 매트릭스의 일 예이다. 4 입력 인코딩 매트릭스는 수학식 2 및 3로 표현된 조건을 만족한다. 4 입력 인코딩 매트릭스는 도 2에 도시되고 도 3에 나타낸 4 입력 인코더(206)에 사용될 수 있다. 인코딩 매트릭스(W)를 포함하는 값은 임의의 적절한 값일 수 있고 도 6의 예에 도시된 바와 같이 동일한 필요가 없다는 점이 주목되어야 한다.
도 7은 N 입력 인코더에 의해 사용되는 디코딩 매트릭스(I)이며, N은 디코더에 결합된 신호 라인의 수에 대응한다. 디코딩 매트릭스는 디코더에 의해 수신되는 라인 전압을 디코딩하기 위해 사용되는 가중 파라미터의 매트릭스이다. 인코딩 매트릭스의 크기는 디코더에 결합된 신호 라인의 수에 의존할 것이다. 디지털 데이터가 디코더에 의해 재생될 수 있는 것을 보장하기 위해, 가중 파라미터(Iij)는 디코딩 매트릭스(I)가 수학식 4에 표현된 바와 같이, 인코딩 매트릭스(W)의 전치 또는 역 매트릭스이도록 지정될 수 있다. 가중 파라미터(Iij)에 대한 명명법은 항등 행렬과 혼동되지 않아야 한다는 점을 주목한다.
[수학식 4]
W-1 = X * WT, 여기서 X는 상수이다.
수학식 4에서, X는 디코더에 의해 수신되는 전압 또는 전력 레벨이 디코더 회로의 동작 제한을 초과하지 않는 것을 보장하기 위해 지정될 수 있는 스케일링 인자이다. 디코딩 프로세스는 인코딩 프로세스의 동작을 반전시킨다. 디코딩 프로세스를 위해 사용되는 선형 대수 수학식의 일 예는 아래에 수학식 5로 제시된다.
[수학식 5]
Figure 112015049459360-pct00004
수학식 5에서, VC는 도 2의 노드 C에서의 복구된 이진 비트 스트림이고, WT는 인코딩 매트릭스의 전치 매트릭스이고, VB는 노드 B에서의 샘플링된 인코딩 데이터이다. 디코딩 프로세스 후에, 인코딩된 라인 전압은 이진 전압으로 다시 변환되고 디지털 비트 스트림이 복구된다.
도 8은 4 입력 디코더에 대한 디코딩 매트릭스의 일 예이다. 4 입력 디코딩 매트릭스는 0.25의 스케일링 인자에 곱해지는 도 6에 도시된 인코딩 매트릭스의 전치 매트릭스이다. 0.25의 스케일링 인자가 본 예에 사용되지만, 디코딩 매트릭스는 특정 구현의 설계 고려사항에 따라, 임의의 적절한 스케일링 인자를 사용할 수 있다는 점이 이해될 것이다. 4 입력 디코딩 매트릭스는 도 2에 도시되고 도 4에 나타낸 4 입력 디코더(206)에 사용될 수 있다.
도 9a-도 9d는 한 쌍의 시그널링 모듈에 의해 구현되는 인코딩 및 디코딩 프로세스의 시뮬레이션을 나타내는 그래프이다. 도 9a는 데이터 버스를 통해 송신될 이진 입력 데이터를 나타내는 그래프(900)이다. 구체적으로, 그래프(900)는 실선에 의해 표현되는 제 1 데이터 스트림(902) 및 점선에 의해 표현되는 제 2 데이터 스트림(904)을 포함하는, 2개의 이진 데이터 스트림을 도시한다. 참조를 위해, 수평 축은 시간(T)의 임의 단위로 분할된다. 이진 데이터 스트림(902 및 904) 둘다는 인코더에 입력될 수 있다. 명료성을 위해, 도 9a-도 9d는 2개의 입력 데이터 스트림을 도시한다. 그러나, 인코더는 인코더에 의해 제어되는 신호 라인의 수에 따라, 임의의 적절한 수의 입력 데이터 스트림을 디코딩할 수 있다는 점이 이해될 것이다. 도 9a의 예시적 데이터에 도시된 바와 같이, 이진 데이터 스트림(902 및 904)은 T=0에서 T=50까지 발생하는 3개의 클록 사이클에 대해 동일하다.
도 9b는 도 9a의 이진 데이터 스트림에 대응하는 송신된 인코딩 데이터를 도시하는 그래프이다. 인코딩된 데이터는 노드 A(도 2)에서 생성되는 신호(908 및 910)를 나타내며, 이는 버스의 신호 라인을 통해 송신된다. 구체적으로, 제 1 신호(908)는 제 1 데이터 스트림(902)과 부합하고 제 2 신호(910)는 제 2 데이터 스트림(904)과 부합한다. 이진 데이터 스트림이 인코딩된 후에, 데이터는 더 이상 이진수가 아닐 수 있다는 점이 인지될 수 있다. 도 9b에 도시된 바와 같이, 신호 라인을 통해 송신되는 데이터는 3개의 신호 레벨을 갖는다. 신호 라인을 통해 송신되는 데이터는 인코더에 의해 제어되는 신호 라인의 수 및 인코딩 매트릭스의 대응하는 크기에 따라 추가 신호 레벨을 포함할 수 있다. 예를 들어, 4 입력 인코딩 매트릭스에 대해, 신호 라인을 통해 송신되는 데이터는 4까지의 신호 레벨을 가질 수 있다. 8 입력 인코딩 매트릭스에 대해, 신호 라인을 통해 송신되는 데이터는 8까지의 신호 레벨을 가질 수 있다.
본 기술의 장점은 신호 데이터를 T=0에서 T=50까지 검사함으로써 이해될 수 있다. T=0에서 T=50까지, 제 1 데이터 스트림(902)(도 9a)에 대응하는 제 1 신호(908)는 0이다. 따라서, 제 1 신호(908)에서 제 2 신호(910)까지의 누화는 이러한 시간 플레임 동안에 효과적으로 제거될 것이다.
도 9c는 도 9a의 이진 데이터 스트림에 대응하는 수신된 인코딩 데이터를 도시하는 그래프(912)이다. 신호(908 및 910)에 의해 표현되는 수신된 인코딩 데이터는 버스를 통해 송신된 후에 노드 B(도 2 참조)에서 인코더에 의해 수신되는 데이터이다. 도 9c에서 알 수 있는 바와 같이, 신호는 버스를 통한 송신의 결과로서 신호 라인 사이의 어떤 누화 정도를 경험했다. 예를 들어, T=0 내지 T=50 시간 프레임 동안, 제 1 데이터 스트림(902)(도 9a)에 대응하는 제 1 신호(908)는 제 2 데이터 스트림(904)(도 9a)에 대응하는 제 2 신호(910)로부터 어떤 누화 정도를 경험했다. 그러나, 신호 라인 사이의 전체 누화가 상당히 감소된다. 예를 들어, T=0 내지 T=50 시간 프레임 내에서, 제 2 데이터 스트림(904)에 대응하는 제 2 신호(910)는 제 1 데이터 스트림(902)에 대응하는 제 1 신호(908)로부터 누화를 경험하지 못했다.
도 9d는 도 9a의 스트림의 이진 데이터에 대응하는 디코딩된 데이터를 도시하는 그래프(916)이다. 구체적으로, 디코딩된 데이터는 버스를 통해 송신된 후에 노드 C(도 2 참조)에서 디코더에 의해 출력되는 디지털 데이터이다. 도 9d에서 알 수 있는 바와 같이, 이진 데이터 스트림(902 및 904)은 디코더에 의해 재생되었다. 따라서, 누화의 부정적 효과는 상당히 감소되었고 최초 비트 패턴 둘다는 복구되었다.
도 10a 및 도 10b는 이진 데이터의 단일 비트를 인코딩하는 4 입력 인코더에 의해 수행되는 인코딩 프로세스의 결과를 도시하는 그래프이다. 도 10a는 도 2에 도시된 인코더(206)의 것과 같은, 4 입력 인코더에 입력될 수 있는 이진 입력 데이터의 일 예를 도시하는 4개의 그래프를 포함한다. 예를 들어, 도 2를 참조하면, 그래프(1002)는 데이터 A를 나타낼 수 있고, 그래프(1004)는 데이터 B를 나타낼 수 있고, 그래프(1006)는 데이터 C를 나타낼 수 있고 그래프(1008)는 데이터 D를 나타낼 수 있다. 이러한 예에서, 데이터 A는 논리 0과 같고, 데이터 B는 논리 0과 같고, 데이터 C는 논리 1과 같고, 데이터 D는 논리 0과 같다. 더욱이, 이러한 예에서, 논리 1은 거의 1 볼트의 전압 레벨과 부합한다. 그러나, 이진 데이터를 나타내기 위해 사용되는 실제 전압 레벨은 특정 구현의 설계 고려사항에 따라 임의의 적절한 전압 레벨일 수 있다.
도 10b는 도 10a의 이진 입력 데이터가 인코딩된 후에 버스를 통해 송신될 대응하는 신호를 도시하는 4개의 그래프를 포함한다. 예를 들어, 도 2를 참조하면, 그래프(1010)는 라인 1을 통해 송신될 신호를 나타내고, 그래프(1012)는 라인 2를 통해 송신될 신호를 나타내고, 그래프(1014)는 라인 3을 통해 송신될 신호를 나타내고, 그래프(1016)는 라인 4를 통해 송신될 신호를 나타낸다. 도 10b에 도시된 바와 같이, 신호 라인 1(그래프(1010)) 및 신호 라인 4(그래프(1016))는 0.25 볼트 펄스를 인지할 것인 반면, 신호 라인 2(그래프(1012)) 및 신호 라인 4(그래프(1014))는 -0.25 볼트 펄스를 인지할 것이다. 따라서, 도 10a의 그래프(1006)에 도시된 이진 데이터의 단일 비트에 대응하는 비트 정보는 4개의 신호 라인 사이에서 확산되었다. 이것은 누화를 다수의 방식으로 최소화하는 것을 돕는다. 예를 들어, 신호 라인 사이의 누화의 크기는 송신된 신호의 크기가 감소되는 것으로 인해 감소될 수 있다. 더욱이, 인코딩 프로세스의 결과로서, 신호 라인 상에 반송된 전압은 일부 경우에 반대 극성을 가질 수 있으며, 이는 신호 라인의 일부 사이에서 누화 소거를 야기한다. 예를 들어, 신호 라인 1(그래프(1010)) 및 신호 라인 4(그래프(1016))는 양의 0.25 볼트 펄스를 인지할 것인 반면, 신호 라인 2(그래프(1012)) 및 신호 라인 4(그래프(1014))는 음의 0.25 볼트 펄스를 인지할 것이다. 따라서, 이러한 예에서, 신호 라인 2 및 4로부터 신호 라인 3에 의해 수신되는 누화는 반대 극성일 것이고 서로 상쇄될 것이다. 따라서, 신호 라인 3에 의해 수신되는 누화는 신호 라인 1에 의해서만 수신되는 누화와 거의 같을 것이다.
도 11a 및 도 11b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 아이 다이어그램이다. 또한 아이 패턴으로 언급되는 아이 다이어그램은 디지털 신호의 품질을 평가하는 도구이다. 개방 아이 패턴은 저 레벨의 신호 왜곡을 표시한다. 아이 다이어그램의 폐쇄는 누화 및 다른 인자로 인해 파형의 왜곡을 표시한다.
도 11a 및 도 11b는 30 마이크로미터의 신호 라인 트레이스 폭 및 50 마이크로미터의 트레이스 대 트레이스 공간을 갖는 8 기가전송/초(GT/s) 버스의 시뮬레이션된 아이 다이어그램이며, 4x106 GT/s/㎡의 단위 면적 당 대역폭을 야기한다. 도 11a의 아이 다이어그램은 종래의 버스를 나타내고, 도 11b의 아이 다이어그램은 종래의 이진 시그널링 대신에 데이터가 본 명세서에 설명된 기술에 따라 인코딩될 때 발생하는 아이 다이어그램을 나타낸다. 도 11a 및 도 11b의 아이 다이어그램의 비교로부터 알 수 있는 바와 같이, 본 명세서에 설명된 인코딩 기술은 더 많은 개방 아이 다이어그램을 야기하며, 이는 신호 라인 사이의 누화의 상당한 감소를 표시한다.
도 12a 및 도 12b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 30 마이크로미터의 신호 라인 트레이스 폭 및 10 마이크로미터의 트레이스 대 트레이스 공간을 갖는 16 GT/s 버스의 시뮬레이션된 아이 다이어그램이다. 도 12a 및 도 12b에 나타낸 버스는 16x106 GT/s/㎡의 단위 면적 당 대역폭을 야기한다. 도 12a의 아이 다이어그램은 종래의 버스를 나타내고, 도 12b의 아이 다이어그램은 데이터가 본 명세서에 설명된 기술에 따라 인코딩될 때 발생하는 아이 다이어그램을 나타낸다. 도 12a에 도시된 바와 같이, 아이 다이어그램은 완전히 폐쇄되며, 종래의 버스가 신호 라인 사이의 누화로 인해 시뮬레이션된 대역폭 밀도로 적절히 기능하지 않는 것을 표시한다. 비교하면, 도 12b의 아이 다이어그램은 여전히 개방되며, 인코딩된 데이터가 더 높은 대역폭 밀도로 여전히 성공적으로 복구될 수 있도록 본 명세서에 설명된 인코딩 기술이 성공적으로 완화된 누화를 가진 것을 표시한다.
도 13a 및 도 13b는 본 명세서에 설명된 기술에 의해 제공되는 개선된 누화 감소를 도시하는 30 마이크로미터의 신호 라인 트레이스 폭 및 10 마이크로미터의 트레이스 대 트레이스 공간을 갖는 24 GT/s 버스의 시뮬레이션된 아이 다이어그램이다. 도 13a 및 도 13b에 나타낸 버스는 24x106 GT/s/㎡의 단위 면적 당 대역폭을 야기한다. 도 13a의 아이 다이어그램은 종래의 버스를 나타내고, 도 13b의 아이 다이어그램은 데이터가 본 명세서에 설명된 기술에 따라 인코딩될 때 발생하는 아이 다이어그램을 나타낸다. 도 13a에 도시된 바와 같이, 아이 다이어그램은 완전히 폐쇄되며, 종래의 버스가 신호 라인 사이의 누화로 인해 시뮬레이션된 대역폭 밀도로 적절히 기능하지 않는 것을 표시한다. 비교하면, 도 13b의 아이 다이어그램은 여전히 개방되며, 인코딩된 데이터가 더 높은 대역폭 밀도로 여전히 성공적으로 복구될 수 있도록 본 명세서에 설명된 인코딩 기술이 성공적으로 완화된 누화를 갖는 것을 표시한다.
상술된 시뮬레이션에 의해 증명되는 바와 같이, 본 명세서에 설명된 인코딩 기술은 고속 버스 상에서 누화의 기본적인 제한을 성공적으로 완화시키며, 이는 버스 속도, 라우팅 밀도, 및 라우팅 길이의 상당한 개선을 용이하게 할 수 있다. 일부 실시예에서, OPI 및 eDRAM 버스와 같은, 버스에 대한 트레이스 대 트레이스 간격은 50 미크론에서 10 미크론까지 감소될 수 있으며 대응하는 데이터 속도는 초 당 8 기가비트에서 초 당 24 기가비트까지 증가한다. 일부 실시예에서, DDR과 같은 PCB 레벨 라우팅에 대한 트레이스 대 트레이스 간격은 15 mils에서 4 mils까지 감소될 수 있으며 대응하는 데이터 속도는 초 당 2 기가비트에서 초 당 10 기가비트까지 증가한다.
도 14는 데이터를 인코딩하고 디코딩하는 방법을 요약하는 프로세스 흐름도이다. 방법(1400)은 도 1에 도시된 시그널링 모듈과 같은 하나 이상의 시그널링 모듈에 의해 수행될 수 있다. 방법(1400)은 시그널링 모듈에 포함된 로직, 예를 들어 도 2에 도시된 인코더(206) 및 디코더(212)에 의해 구현될 수 있다. 로직은 비일시적 컴퓨터 판독 가능 매체에 저장된 명령을 실행하도록 구성되는 로직 회로 또는 하나 이상의 프로세서와 같은, 하드웨어로 구체화된다. 방법은 블록(1402)에서 시작할 수 있으며, 복수의 데이터 비트는 인코더에 의해 수신된다. 데이터 비트는 병렬로 수신되며, 이는 각각의 데이터 비트가 거의 동일한 시간에 수신되고 각각의 데이터 비트가 상이한 데이터 스트림에 대응하는 것을 의미한다.
블록(1404)에서, 데이터 비트의 각각은 가중 데이터를 생성하기 위해 가중된다. 예를 들어, 데이터 비트의 각각은 인코딩 매트릭스로부터 수신되는 가중 파라미터에 곱해질 수 있다. 위에 논의된 바와 같이, 인코딩 매트릭스는 인코딩 매트릭스의 임의의 2개의 열 사이의 내적이 0이고 인코딩 매트릭스의 각각의 열에 대한 제곱합이 정수형 상수인 매트릭스일 수 있다.
블록(1406)에서, 가중 데이터가 합산될 수 있다. 합산된 가중 데이터는 신호 라인을 통해 송신될 신호 레벨을 생성하기 위해 사용될 수 있다. 예를 들어, 인코더는 송신기를 제어하기 위해 사용되는 제어 신호를 생성하도록 합산의 결과를 사용할 수 있으며, 그 결과 송신된 신호는 인코더에 대한 입력 각각의 가중 합에 비례한다.
블록(1408)에서, 신호 레벨은 신호 라인을 통해 송신된다. 블록(1402 내지 1408)은 인코더에 의해 제어되는 각각의 신호 라인에 대해 병렬로 수행될 수 있으며, 그 결과 생성된 각각의 신호 레벨은 인코딩 매트릭스로부터 가중 파라미터의 상이한 열을 사용하여 생성될 것이다.
블록(1410)에서, 복수의 신호는 버스를 통해 송신된 후에 수신된다. 복수의 신호는 블록(1402 내지 1406)에서 상술된 프로세스 후에 인코더에 의해 송신된 신호일 수 있다.
블록(1412)에서, 복수의 신호의 각각은 가중 데이터를 생성하기 위해 가중 파라미터에 곱해질 수 있다. 가중 파라미터는 블록(1404)에서 인코더에 의해 사용되는 인코딩 매트릭스의 전치 매트릭스인 디코딩 매트릭스로부터 획득될 수 있다.
블록(1414)에서, 가중 데이터는 수신된 데이터 비트를 생성하기 위해 합산될 수 있다. 수신된 데이터 비트는 블록(1402)에서 인코더에 의해 수신되는 데이터 비트의 것과 동일한 값을 가질 것이다. 블록(1410-1414)은 디코더에 결합된 신호 라인의 수에 따라, 수신될 각각의 데이터 비트에 대해 반복될 수 있다. 프로세스의 끝에서, 인코더에 의해 수신되는 데이터 비트의 각각은 디코더에 의해 재생될 것이다.
예 1
집적 회로 칩이 본 명세서에 설명된다. 집적 회로 칩은 복수의 디지털 입력에 결합된 시그널링 모듈을 포함한다. 시그널링 모듈은 인코딩된 데이터를 생성하기 위해 복수의 디지털 입력에서 수신되는 데이터를 인코딩하도록 구성된다. 인코딩된 데이터에 기초하여, 시그널링 모듈은 버스의 복수의 신호 라인 상에서 라인 전압 또는 전류를 구동할 수 있으며, 복수의 라인 전압의 각각은 복수의 디지털 입력에서 수신되는 데이터의 가중 합에 대응한다.
예 2
전자 장치가 본 명세서에 설명된다. 전자 장치는 복수의 신호 라인을 갖는 버스를 포함한다. 전자 장치는 또한 복수의 디지털 입력에 결합된 제 1 시그널링 모듈을 포함한다. 제 1 시그널링 모듈은 복수의 디지털 입력에서 수신되는 데이터를 인코딩하고 버스의 복수의 신호 라인 상에서 신호를 구동하도록 구성되며, 복수의 신호의 각각의 것은 복수의 디지털 입력에서 수신되는 데이터의 가중 합에 대응한다. 전자 장치는 또한 버스의 복수의 신호 라인에 결합된 제 2 시그널링 모듈을 포함한다. 제 2 시그널링 모듈은 버스를 통해 수신되는 수신되는 복수의 신호를 디코딩하고 대응하는 복수의 디지털 출력을 생성하도록 구성되며, 복수의 디지털 출력의 값은 복수의 디지털 입력의 값과 같다.
예 3
전자 장치가 본 명세서에 설명된다. 전자 장치는 복수의 데이터 비트를 병렬로 수신하는 로직을 포함하며, 각각의 데이터 비트는 상이한 데이터 스트림에 대응하고 복수의 데이터 비트는 제 1 데이터 비트를 포함한다. 전자 장치는 또한 가중 데이터를 생성하기 위해 데이터 비트의 각각을 가중하는 로직을 포함한다. 전자 장치는 또한 가중 데이터를 합산하고 가중 데이터의 합에 기초하여, 신호 라인을 통해 송신하는 신호 레벨을 생성하는 로직을 포함하며, 신호 레벨은 제 1 데이터 비트를 재생하기 위해 디코딩되는 것이다.
예 4
시스템이 본 명세서에 설명된다. 시스템은 복수의 신호 라인을 포함하는 버스를 포함한다. 시스템은 또한 복수의 디지털 입력에 결합된 제 1 송신 모듈을 포함하며, 제 1 송신 모듈은 복수의 디지털 입력에서 수신되는 데이터를 인코딩하고 버스의 복수의 신호 라인 상에서 신호를 구동하며, 복수의 신호의 각각의 것은 복수의 디지털 입력에서 수신되는 데이터의 가중 합에 대응한다.
일부 실시예는 하드웨어, 펌웨어, 및 소프트웨어 중 하나 또는 조합으로 구현될 수 있다. 일부 실시예는 또한 유형의 비일시적 기계 판독 가능 매체 상에 저장된 명령으로 구현될 수 있으며, 이는 설명된 동작을 수행하기 위해 컴퓨팅 플랫폼에 의해 판독되고 실행될 수 있다. 게다가, 기계 판독 가능 매체는 기계, 예를 들어 컴퓨터에 의해 판독가능한 형태로 정보를 저장하거나 송신하는 임의의 메커니즘을 포함할 수 있다. 예를 들어, 기계 판독 가능 매체는 다른 것 중에서, 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 저장 매체; 광 저장 매체; 플래시 메모리 장치; 또는 전기, 광, 음향 또는 다른 형태의 전파된 신호, 예를 들어 반송파, 적외선 신호, 디지털 신호, 또는 신호를 송신하고/하거나 수신하는 인터페이스를 포함할 수 있다.
일 실시예는 구현 또는 예이다. 본 명세서에서 "하나의 실시예", "일 실시예", "일부 실시예", "다양한 실시예", 또는 "다른 실시예"에 대한 언급은 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 본 기술의 적어도 일부 실시예에 포함되지만 반드시 모든 실시예에 포함되는 것은 아니라는 점을 의미한다. "하나의 실시예", "일 실시예", 또는 "일부 실시예"의 다양한 출현은 모두 반드시 동일한 실시예를 지칭하는 것은 아니다.
본 명세서에 설명되고 예시된 모든 구성요소, 특징, 구조, 특성 등은 특정 실시예 또는 실시예에 포함될 필요는 없다. 본 명세서는 구성요소, 특징, 구조, 또는 특성이 포함될 "수도 있거나", "수도 있었거나", "수 있거나" "수 있었던" 것을 진술하면, 예를 들어, 그 특정 구성요소, 특징, 구조, 또는 특성은 포함되도록 요구되지 않는다. 명세서 또는 특허청구범위가 하나의("a" 또는 "an") 요소를 언급하면, 그것은 요소의 하나만이 있는 것을 의미하지 않는다. 명세서 또는 특허청구범위가 "추가" 요소를 언급하면, 그것은 하나보다 더 많은 추가 요소가 있는 것을 배제하지 않는다.
일부 실시예가 특정 구현에 관하여 설명되었지만, 다른 구현이 일부 실시예에 따라 가능하다는 점이 주목되어야 한다. 추가적으로, 도면에 예시되고/되거나 본 명세서에 설명된 회로 요소 또는 다른 특징의 배열 및/또는 순서는 예시되고 설명된 특정 방식으로 배열될 필요는 없다. 많은 다른 배열은 일부 실시예에 따라 가능하다.
도면에 도시된 각각의 시스템에서, 요소는 일부 경우에, 표현된 요소가 상이하고/하거나 유사할 수 있는 것을 제안하기 위해 동일한 참조 번호 또는 상이한 참조 번호를 각각 가질 수 있다. 그러나, 요소는 상이한 구현을 갖기에 충분히 유연하고 본 명세서에 도시되거나 설명된 시스템의 일부 또는 전부와 함께 동작할 수 있다. 도면에 도시된 다양한 요소는 동일하거나 상이할 수 있다. 어느 하나가 제 1 요소로 지칭될 수 있고 제 2 요소로 지칭되는 것은 임의적이다.
상술한 예에서의 세부 사항은 하나 이상의 실시예에서 어디든지 사용될 수 있다는 점이 이해되어야 한다. 예를 들어, 상술된 컴퓨팅 장치의 모든 선택적 특징은 또한 본 명세서에 설명된 방법 또는 컴퓨터 판독 가능 매체에 대해 구현될 수 있다. 더욱이, 흐름도 및/또는 상태도가 실시예를 설명하기 위해 본 명세서에 사용될 수 있었지만, 기술은 본 명세서에서 그러한 도면 또는 대응하는 설명에 제한되지 않는다. 예를 들어, 흐름은 각각 예시된 박스 또는 상태를 통해 또는 정확하게 본 명세서에 예시되고 설명되는 바와 같은 동일한 순서로 이동할 필요는 없다.
본 기술은 본 명세서에 열거된 특정 상세에 제한되지 않는다. 실제로, 본 개시의 이득을 갖는 당업자는 전술한 설명 및 도면으로부터의 많은 다른 변화가 본 기술의 범위 내에 이루어질 수 있다는 점을 이해할 것이다. 따라서, 본 기술의 범위를 정의하는 것은 임의의 보정을 그것에 포함하는 이하의 특허청구범위이다.

Claims (31)

  1. 복수의 디지털 입력에 결합된 시그널링 모듈을 포함하되,
    상기 시그널링 모듈은
    인코딩된 데이터를 생성하기 위해 상기 복수의 디지털 입력에서 수신되는 데이터를 인코딩하고 -상기 데이터를 인코딩하는 것은 인코딩 매트릭스에 적어도 부분적으로 기초하여 상기 데이터를 가중하는 것을 포함하고, 상기 인코딩 매트릭스의 임의의 2개의 열 사이의 내적은 0이고, 상기 인코딩 매트릭스의 각각의 열에 대한 제곱합은 0이 아님(non-zero)-,
    상기 인코딩된 데이터에 기초하여, 버스의 복수의 신호 라인 상에서 라인 전압 또는 전류를 구동하며, 복수의 라인 전압의 각각은 상기 복수의 디지털 입력에서 수신되는 상기 데이터의 가중 합에 대응하는
    집적 회로 칩.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 시그널링 모듈은 상기 버스의 상기 복수의 신호 라인에 결합된 디코더를 포함하고, 상기 디코더는 상기 버스를 통해 제 2 시그널링 모듈의 제 2 인코더에 결합되고 상기 제 2 인코더로부터 수신되는 신호 데이터를 디코딩하는
    집적 회로 칩.
  5. 제 4 항에 있어서,
    상기 디코더는 상기 인코딩 매트릭스의 전치 매트릭스인 디코딩 매트릭스를 사용하여 상기 신호 데이터를 디코딩하는
    집적 회로 칩.
  6. 제 1 항에 있어서,
    상기 집적 회로 칩은 디지털 시스템의 중앙 처리 유닛, 마이크로 컨트롤러, IO 허브, 칩셋, 메모리 컨트롤러 허브(MCH)인
    집적 회로 칩.
  7. 제 1 항에 있어서,
    상기 집적 회로 칩은 그래픽 프로세서인
    집적 회로 칩.
  8. 복수의 신호 라인을 포함하는 버스와,
    복수의 디지털 입력에 결합된 제 1 시그널링 모듈 -상기 제 1 시그널링 모듈은 상기 복수의 디지털 입력에서 수신되는 데이터를 인코딩하고 상기 버스의 상기 복수의 신호 라인 상에서 신호를 구동하며, 상기 데이터를 인코딩하는 것은 인코딩 매트릭스에 적어도 부분적으로 기초하여 상기 데이터를 가중하는 것을 포함하고, 상기 인코딩 매트릭스의 임의의 2개의 열 사이의 내적은 0이고, 상기 인코딩 매트릭스의 각각의 열에 대한 제곱합은 0이 아니고(non-zero), 복수의 신호의 각각은 상기 복수의 디지털 입력에서 수신되는 상기 데이터의 가중 합에 대응함- 과,
    상기 버스의 상기 복수의 신호 라인에 결합된 제 2 시그널링 모듈 -상기 제 2 시그널링 모듈은 상기 버스를 통해 수신되는 상기 복수의 신호를 디코딩하고 대응하는 복수의 디지털 출력을 생성하며, 상기 복수의 디지털 출력의 값은 상기 복수의 디지털 입력의 값과 같음- 을 포함하는
    전자 장치.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서,
    상기 제 2 시그널링 모듈은 상기 버스의 상기 복수의 신호 라인에 결합된 디코더를 포함하고, 상기 디코더는 상기 인코딩 매트릭스의 전치 매트릭스 또는 역 매트릭스인 디코딩 매트릭스를 사용하여 상기 버스를 통해 수신되는 복수의 신호를 디코딩하는
    전자 장치.
  12. 제 8 항에 있어서,
    상기 전자 장치는 태블릿 PC, 울트라북, 데스크톱, 또는 서버인
    전자 장치.
  13. 제 8 항에 있어서,
    상기 전자 장치는 이동 전화인
    전자 장치.
  14. 제 8 항에 있어서,
    상기 버스의 상기 복수의 신호 라인 사이의 트레이스 대 트레이스 간격은 20 미크론 미만인
    전자 장치.
  15. 제 8 항에 있어서,
    상기 버스의 대역폭 밀도는 16 GT/s/㎡보다 큰
    전자 장치.
  16. 복수의 데이터 비트를 병렬로 수신하는 로직 -각각의 데이터 비트는 상이한 데이터 스트림에 대응하고 상기 복수의 데이터 비트는 제 1 데이터 비트를 포함함- 과,
    가중 데이터를 생성하기 위해 상기 데이터 비트의 각각을 가중하는 로직 -상기 데이터 비트의 각각을 가중하는 로직은 인코딩 매트릭스에 적어도 부분적으로 기초하여 상기 데이터를 가중하는 것을 포함하고, 상기 인코딩 매트릭스의 임의의 2개의 열 사이의 내적은 0이고, 상기 인코딩 매트릭스의 각각의 열에 대한 제곱합은 0이 아님(non-zero)- 과,
    상기 가중 데이터를 합산하고, 상기 가중 데이터의 합에 기초하여 신호 라인을 통해 송신하는 신호 레벨을 생성하는 로직 -상기 신호 레벨은 상기 제 1 데이터 비트를 재생하기 위해 디코딩됨- 을 포함하는
    전자 장치.
  17. 제 16 항에 있어서,
    상기 데이터 비트의 각각을 가중하는 로직은 상기 데이터 비트의 각각에 상기 인코딩 매트릭스로부터 수신되는 가중 파라미터를 곱하는 로직을 포함하는
    전자 장치.
  18. 삭제
  19. 제 16 항에 있어서,
    제 2 집적 회로 칩으로부터 버스를 통해 병렬로 송신되는 복수의 신호를 수신하는 로직과,
    가중 데이터를 생성하기 위해 상기 복수의 신호의 각각에 가중 파라미터를 곱하는 로직과,
    수신된 데이터 비트를 생성하기 위해 상기 가중 데이터를 합산하는 로직을 포함하는
    전자 장치.
  20. 제 16 항에 있어서,
    상기 인코딩 매트릭스의 전치 매트릭스 또는 역 매트릭스인 디코딩 매트릭스로부터 가중 파라미터를 획득하는 로직을 포함하는
    전자 장치.
  21. 복수의 신호 라인을 포함하는 버스와,
    복수의 디지털 입력에 결합된 제 1 송신 모듈 -상기 제 1 송신 모듈은 상기 복수의 디지털 입력에서 수신되는 데이터를 인코딩하고 상기 버스의 상기 복수의 신호 라인 상에서 신호를 구동하며, 상기 데이터를 인코딩하는 것은 인코딩 매트릭스에 적어도 부분적으로 기초하여 상기 데이터를 가중하는 것을 포함하고, 상기 인코딩 매트릭스의 임의의 2개의 열 사이의 내적은 0이고, 상기 인코딩 매트릭스의 각각의 열에 대한 제곱합은 0이 아니고(non-zero), 복수의 신호의 각각은 상기 복수의 디지털 입력에서 수신되는 상기 데이터의 가중 합에 대응함- 을 포함하는
    시스템.
  22. 제 21 항에 있어서,
    상기 버스에 결합된 제 2 송신 모듈을 적어도 포함하고, 상기 제 2 송신 모듈은 상기 제 1 송신 모듈에 비해 상기 복수의 신호 라인의 상이한 세트를 제어하기 위해 상기 제 1 송신 모듈과 병렬로 결합되는
    시스템.
  23. 제 21 항에 있어서,
    상기 버스는 상기 제 1 송신 모듈을 포함하는 복수의 송신 모듈에 의해 제어되는
    시스템.
  24. 삭제
  25. 삭제
  26. 제 21 항에 있어서,
    상기 버스의 상기 복수의 신호 라인에 결합된 디코더를 포함하고, 상기 디코더는 상기 인코딩 매트릭스의 전치 매트릭스 또는 역 매트릭스인 디코딩 매트릭스를 사용하여 상기 버스를 통해 수신되는 상기 복수의 신호를 디코딩하는
    시스템.
  27. 제 21 항에 있어서,
    상기 버스의 상기 복수의 신호 라인에 결합된 제 1 수신 모듈을 포함하고, 상기 제 1 수신 모듈은 상기 버스를 통해 수신되는 상기 복수의 신호를 디코딩하고 대응하는 복수의 디지털 출력을 생성하고, 상기 복수의 디지털 출력의 값은 상기 복수의 디지털 입력의 값과 동일한
    시스템.
  28. 제 27 항에 있어서,
    상기 제 1 수신 모듈은 상기 제 1 송신 모듈로부터 상기 버스를 통해 병렬로 송신되는 복수의 신호를 수신하고, 가중 데이터를 생성하기 위해 가중 파라미터에 상기 복수의 신호의 각각을 곱하고, 수신된 데이터 비트를 생성하기 위해 상기 가중 데이터를 합산하는
    시스템.
  29. 제 27 항에 있어서,
    상기 제 1 수신 모듈은 케이블 연결을 통해 상기 제 1 송신 모듈에 결합되는
    시스템.
  30. 제 27 항에 있어서,
    상기 제 1 수신 모듈은 회로 보드를 통해 상기 제 1 송신 모듈에 결합되는
    시스템.
  31. 제 22 항에 있어서,
    상기 제 1 송신 모듈 및 상기 제 2 송신 모듈은 동일한 집적 회로 칩 상에 배치되는
    시스템.
KR1020157013652A 2012-12-26 2013-06-25 데이터 버스를 위한 누화 인지 인코딩 KR101746310B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/726,748 2012-12-26
US13/726,748 US9330039B2 (en) 2012-12-26 2012-12-26 Crosstalk aware encoding for a data bus
PCT/US2013/047642 WO2014105173A1 (en) 2012-12-26 2013-06-25 Crosstalk aware encoding for a data bus

Publications (2)

Publication Number Publication Date
KR20150079780A KR20150079780A (ko) 2015-07-08
KR101746310B1 true KR101746310B1 (ko) 2017-06-12

Family

ID=50976023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013652A KR101746310B1 (ko) 2012-12-26 2013-06-25 데이터 버스를 위한 누화 인지 인코딩

Country Status (6)

Country Link
US (1) US9330039B2 (ko)
EP (1) EP2939127A4 (ko)
KR (1) KR101746310B1 (ko)
CN (1) CN104813299B (ko)
TW (1) TWI502364B (ko)
WO (1) WO2014105173A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632961B2 (en) 2012-12-26 2017-04-25 Intel Corporation Crosstalk aware decoding for a data bus
US10078612B2 (en) 2014-07-28 2018-09-18 Intel Corporation Mode selective balanced encoded interconnect
CN111159082B (zh) * 2018-11-07 2021-12-07 财团法人工业技术研究院 可重组式数据总线系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070058744A1 (en) * 2005-08-25 2007-03-15 Amir Amirkhany Linear Transformation Circuits
US20100189186A1 (en) * 2001-11-16 2010-07-29 Zerbe Jared L Signal line routing to reduce crosstalk effects

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084852A (en) * 1995-10-12 2000-07-04 Next Level Communications Burst mode preamble
US6128112A (en) 1996-08-22 2000-10-03 Mcdonnell Douglas Corporation Weighted-sum processing method and apparatus for decoding digital signals
US6624873B1 (en) 1998-05-05 2003-09-23 Dolby Laboratories Licensing Corporation Matrix-encoded surround-sound channels in a discrete digital sound format
JP2001144620A (ja) 1999-11-11 2001-05-25 Nec Eng Ltd バスシステム
US20020027985A1 (en) 2000-06-12 2002-03-07 Farrokh Rashid-Farrokhi Parallel processing for multiple-input, multiple-output, DSL systems
US7409580B2 (en) 2005-02-09 2008-08-05 International Business Machines Corporation System and method for recovering from errors in a data processing system
JP4604796B2 (ja) * 2005-03-29 2011-01-05 ソニー株式会社 無線通信装置及び無線通信方法
US7283460B1 (en) * 2006-04-03 2007-10-16 Stmicroelectronics S.R.L. Bus switch encoding for reducing crosstalk effects in buses
US20070271535A1 (en) * 2006-05-16 2007-11-22 National Tsing Hua University Method for crosstalk elimination and bus architecture performing the same
JP2009055228A (ja) * 2007-08-24 2009-03-12 Sony Corp 無線通信システム、無線通信装置及び無線通信方法
US7583209B1 (en) * 2008-03-19 2009-09-01 Mitsubishi Electric Research Laboratories, Inc. System and method for signaling on a bus using forbidden pattern free codes
KR101038112B1 (ko) 2009-07-08 2011-06-01 고려대학교 산학협력단 디스플레이 포트의 디지털 엔코더 및 디지털 디코더
US9531491B2 (en) * 2012-02-13 2016-12-27 Lantiq Deutschland Gmbh Communication method, apparatus and system
US8614634B2 (en) * 2012-04-09 2013-12-24 Nvidia Corporation 8b/9b encoding for reducing crosstalk on a high speed parallel bus
EP2778940B1 (en) 2013-03-15 2016-08-03 Intel Corporation Crosstalk aware decoding for a data bus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100189186A1 (en) * 2001-11-16 2010-07-29 Zerbe Jared L Signal line routing to reduce crosstalk effects
US20070058744A1 (en) * 2005-08-25 2007-03-15 Amir Amirkhany Linear Transformation Circuits

Also Published As

Publication number Publication date
WO2014105173A1 (en) 2014-07-03
KR20150079780A (ko) 2015-07-08
TWI502364B (zh) 2015-10-01
TW201430580A (zh) 2014-08-01
US9330039B2 (en) 2016-05-03
EP2939127A4 (en) 2016-09-21
CN104813299A (zh) 2015-07-29
US20140181357A1 (en) 2014-06-26
EP2939127A1 (en) 2015-11-04
CN104813299B (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
EP3186753B1 (en) Processing images using deep neural networks
CN104079370B (zh) 信道编译码方法及装置
CN107016437B (zh) 随机尖峰模式的生成的方法和系统
CN107346977A (zh) 使用共模抑制和sso恢复的功率和引脚高效的芯片到芯片通信
KR101746310B1 (ko) 데이터 버스를 위한 누화 인지 인코딩
KR20150079479A (ko) 폴라 프로세싱 메커니즘을 포함하는 컴퓨팅 시스템 및 그것의 동작 방법
CN112166567A (zh) 通信系统中的学习
CN106416159A (zh) 用于3相信令的模拟行为建模
CN106713922A (zh) 图像处理方法和电子设备
EP2778940B1 (en) Crosstalk aware decoding for a data bus
CN114333862B (zh) 音频编码方法、解码方法、装置、设备、存储介质及产品
US9632961B2 (en) Crosstalk aware decoding for a data bus
CN116227630A (zh) 一种联邦学习方法及相关设备
KR101702286B1 (ko) 모드 선택적 밸런스드 인코딩된 상호접속부
US20140181358A1 (en) Crosstalk aware decoding for a data bus
WO2017096409A1 (en) Logic-based decoder for crosstalk-harnessed signaling
CN114881221A (zh) 映射方案优化方法及装置、电子设备、可读存储介质
US9519604B2 (en) Systems and methods for frequency control on a bus through superposition
Shaik et al. A block floating point treatment to finite precision realization of the adaptive decision feedback equalizer
Hjørungnes Optimal bit and power constrained filter banks
US9565048B2 (en) Reduced precision vector processing
CN206479906U (zh) PXIe和CPCI混合槽位通信机箱
US6993550B2 (en) Fixed point multiplying apparatus and method using encoded multiplicand
CN116522947A (zh) 基于智简网络的信息发送方法、装置、电子设备及介质
CN117223263A (zh) 一种发送设备、接收设备和信号补偿方法

Legal Events

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