KR20160102077A - 파티셔닝된 데이터 버스에 대한 인코딩 - Google Patents
파티셔닝된 데이터 버스에 대한 인코딩 Download PDFInfo
- Publication number
- KR20160102077A KR20160102077A KR1020167021749A KR20167021749A KR20160102077A KR 20160102077 A KR20160102077 A KR 20160102077A KR 1020167021749 A KR1020167021749 A KR 1020167021749A KR 20167021749 A KR20167021749 A KR 20167021749A KR 20160102077 A KR20160102077 A KR 20160102077A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- encoding
- bus
- indicator symbol
- data bus
- Prior art date
Links
- 238000005192 partition Methods 0.000 claims abstract description 182
- 238000000034 method Methods 0.000 claims description 68
- 238000012545 processing Methods 0.000 claims description 65
- 238000000638 solvent extraction Methods 0.000 claims description 62
- 230000005540 biological transmission Effects 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 25
- 238000012546 transfer Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 31
- 230000000875 corresponding effect Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 22
- 230000010363 phase shift Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 230000011664 signaling Effects 0.000 description 15
- 230000000295 complement effect Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/16—Conversion to or from representation by pulses the pulses having three levels
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/20—Conversion to or from representation by pulses the pulses having more than three levels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
- H04L12/40182—Flexible bus arrangements involving redundancy by using a plurality of communication lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4917—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using multilevel codes
-
- Y02B60/1228—
-
- Y02B60/1235—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Dc Digital Transmission (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
데이터 버스 (206) 는 파티션들 (218, 216) 로 나눠지고, 인코딩 (214, 212) 은 각각의 버스 파티션을 통해서 송신된 데이터에 독립적으로 적용되어 전력 및/또는 처리량 효율을 향상시킨다. 인코딩은 데이터 버스 인버전 또는 임의의 다른 적합한 유형의 인코딩일 수 있다. 데이터와 함께 송신된 인코딩 표시자 심볼 (226) 은, 만약 있다면, 어떤 버스 파티션이 인코딩된지를 표시한다. 일부 구현들에서, 인코딩은 병렬 데이터 버스의 각각의 데이터 전송 사이클 중에 각각의 버스 파티션에 선택적으로 적용된다. 일부 구현들에서, 인코딩 표시자 심볼은 다중-레벨 신호이며, 여기서 다중-레벨 신호의 각각의 레벨은, 대응하는 버스 파티션에 있어서, 버스 파티션을 통해서 송신될 데이터에 인코딩이 적용되는지 여부를 표시하는 적어도 2 비트의 정보를 나타낸다. 유리하게, 인코딩 표시자 심볼은 단일의 전용 버스 라인을 통해 송신될 수 있다.
Description
관련 출원들에 대한 상호-참조
본 출원은 2014 년 2 월 7 일에 미국특허상표청에 출원된 미국 특허 출원 제 14/175,394 호의 우선권 및 혜택을 주장하며, 그 전체 내용은 참조로서 본원에 포함된다.
기술분야
본 개시물의 양태들은 일반적으로 데이터 인코딩에 관한 것으로, 좀더 구체적으로, 배타적인 것은 아니지만, 파티셔닝된 데이터 버스에 대한 인코딩에 관한 것이다.
상호접속들에 걸친 데이터 송신은 다수의 형태를 취할 수도 있다. 컴포넌트들 사이의 데이터 송신을 가능하게 하는 구성의 일 예는 데이터 버스의 이용이며, 여기서 송신 컴포넌트는 병렬 송신 채널들의 그룹을 통해 수신 컴포넌트에 데이터 비트들이라고도 불리는 데이터 신호들을 전송한다. 데이터 비트들은 통상적으로 데이터 비트들의 진폭 및 타이밍을 변경할 수 있는 상호-심볼 간섭 (inter-symbol interference; ISI), 크로스토크, 및 동시 스위칭 노이즈 (simultaneous switching noise; SSN) 의 영향을 받는다. 종종, 데이터 비트들은 다양한 데이터 인코딩의 기법들을 이용하여 ISI, 크로스토크, 또는 SSN 의 영향들을 감소시키도록 인코딩될 수도 있다. 데이터 인코딩의 한 가지 특정한 형태는 데이터 버스 인버전 (data bus inversion; DBI) 이다.
다음은 그러한 양태들의 기본적인 이해를 제공하기 위해 본 개시물의 일부 양태들을 요약한다. 본 개요는 본 개시물의 모든 예견되는 특징들의 확장적인 개요가 아니며, 본 개시물의 모든 양태들의 주요한 또는 중요한 엘리먼트들을 식별하도록 의도된 것도 아니고 본 개시물의 임의의 또는 모든 양태들의 범위를 기술하도록 의도된 것도 아니다. 유일한 목적은 하기에 제시되는 상세한 설명에 대한 전조로서 본 개시물의 하나 이상의 양태들의 몇몇 개념들을 요약본 형태로 제공하는 것이다.
본 개시물의 다양한 양태들은 데이터 버스를 파티션들로 나누고, 각각의 버스 파티션을 통해 송신된 데이터에 인코딩을 독립적으로 적용하여 전력 소비를 감소시키고/감소시키거나 인코딩 효율을 향상시키는 것을 제공한다. 인코딩은 데이터 버스 인버전 또는 임의의 다른 적합한 유형의 인코딩일 수 있다. 일부 구현들에서, 인코딩은 병렬 데이터 버스에 대한 각각의 데이터 전송 사이클 중에 각각의 버스 파티션에 선택적으로 적용된다. 데이터와 함께 송신된 인코딩 표시자 심볼은, 만약 있다면, 어떤 버스 파티션이 인코딩되는지를 표시한다.
일부 구현들에서, 인코딩 표시자 심볼은 (본원에서 다중-상태 신호라고도 지칭되는) 다중-레벨 신호이며, 여기서 다중-레벨 신호의 각각의 레벨 (상태) 는, 대응하는 버스 파티션에 있어서, 버스 파티션을 통해 송신될 데이터에 인코딩이 적용되는지 여부를 표시하는 적어도 2 비트의 정보를 나타낸다. 유리하게, 인코딩 표시자 심볼은 단일의 전용 버스 라인을 통해 송신될 수 있다. 예를 들어, (DBI 플래그와 같은) 인코딩 플래그를 위한, 비트 라인을 통해 전달된 다중-레벨 인코딩 표시자 심볼은 단일의 비트 라인을 통해 버스 세그멘테이션 정보 및 각각의 버스 세그먼트에 대한 인코딩 표시자 양자 모두를 제공할 수 있다. 다중-레벨 신호로서 인코딩 표시자 심볼을 송신함으로써, 다수의 표시들 (즉, 각각의 버스 파티션에 대해 하나) 이 각각의 버스 사이클 중에 송신될 수 있다. 그와 같이, 버스는 향상된 효율을 위해 보다 작은 서브세트들로 파티셔닝될 수도 있고, 모든 대응하는 인코딩 표시들은 오직 단일의 핀을 이용하여 동시에 송신될 수도 있다.
본 개시물의 추가적인 양태들은 프로세싱 회로 및 프로세싱 회로에 커플링된 버스 인터페이스를 포함하는 통신을 위해 구성된 장치를 제공한다. 프로세싱 회로는 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하도록 구성된다. 버스 인터페이스는 인코딩 표시자 심볼을 송신하도록 구성된다.
본 개시물의 또 다른 양태들은 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하고; 인코딩 표시자 심볼을 송신하는 방법을 제공한다.
본 개시물의 추가적인 양태들은 통신을 위해 구성된 장치를 제공한다. 장치는 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하는 수단; 및 인코딩 표시자 심볼을 송신하는 수단을 포함한다.
본 개시물의 다른 양태들은 명령들이 저장된 비일시적 머신-판독가능 저장 매체를 제공하며, 명령들은, 적어도 하나의 프로세서에 의해 실행되는 경우, 적어도 하나의 프로세서로 하여금: 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하게 하고; 인코딩 표시자 심볼을 송신하게 한다.
본 개시물의 다른 양태들은 프로세싱 회로 및 프로세싱 회로에 커플링된 버스 인터페이스를 포함하는 통신을 위해 구성된 장치를 제공한다. 버스 인터페이스는 데이터 버스를 통해 데이터 및 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하도록 구성된다. 프로세싱 회로는 인코딩 표시자 심볼에 기초하여 수신된 데이터를 디코딩하도록 구성된다.
본 개시물의 또 다른 양태들은 데이터 버스를 통해 데이터를 수신하고; 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하고; 인코딩 표시자 심볼에 기초하여 수신된 데이터를 디코딩하는 방법을 제공한다.
본 개시물의 추가적인 양태들은 통신을 위해 구성된 장치를 제공한다. 장치는 데이터 버스를 통해 데이터를 수신하는 수단; 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하는 수단; 및 인코딩 표시자 심볼에 기초하여 수신된 데이터를 디코딩하는 수단을 포함한다.
본 개시물의 다른 양태들은 명령들이 저장된 비일시적 머신-판독가능 저장 매체를 제공하며, 명령들은, 적어도 하나의 프로세서에 의해 실행되는 경우, 적어도 하나의 프로세서로 하여금: 데이터 버스를 통해 데이터를 수신하게 하고; 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하게 하고; 인코딩 표시자 심볼에 기초하여 수신된 데이터를 디코딩하게 한다.
위와 관련된 본 개시물의 다른 양태들의 예들이 뒤따른다. 인코딩 표시자 심볼은, 다중-레벨 신호의 각각의 레벨이 데이터 버스의 각각의 파티션에 대해, 파티션에 인코딩이 적용되는지 여부를 나타내는 적어도 2 비트의 정보를 나타내는, 다중-레벨 신호일 수도 있다. 그러한 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 다수의 위상들, 다른 유형의 레벨들, 또는 이러한 레벨들의 조합으로 정의될 수 있다. 일부 구현들에서, 데이터 버스는 병렬 버스이고, 인코딩 표시자 심볼의 송신/수신은 전용 버스 라인을 통해서 인코딩 표시자 심볼을 송신/수신하는 것을 포함한다. 데이터 비트들의 병렬 세트는 버스 사이클 중에 데이터 버스를 통해서 송신/수신될 수 있으며, 여기서 인코딩 표시자 심볼의 송신/수신은 버스 사이클 중에 단일 신호 핀을 통해 인코딩 표시자 심볼을 송신/수신하는 것을 포함한다. 또한, 데이터 버스의 각각의 파티션에 대해, 파티션을 통해 전송될 데이터의 서브세트를 인코딩할지 여부에 관한 결정이 이루어질 수도 있으며, 여기서 인코딩 표시자 심볼의 생성은 대응하는 데이터의 서브세트가 인코딩되는 임의의 파티션들을 표시하는 값을 선택하는 것을 포함한다. 일부 경우들에서, 데이터의 서브세트를 인코딩할지 여부의 결정은: 데이터의 서브세트의 인코딩이 데이터의 서브세트의 송신과 연관된 전력 소비를 감소시키거나 데이터의 서브세트 송신과 연관된 간섭을 감소시킬지 여부를 결정하는 것을 포함한다. 또한, 파티션들을 통한 데이터의 송신과 연관된 낮은 전력 소비 또는 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 갑섭을 초래하는 데이터 버스의 파티셔닝을 식별하기 위해 선택이 이루어질 수 있다. 유사하게, 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상이한 파티션들에 적용될 인코딩의 유형을 식별하기 위해 선택이 이루어질 수 있다. 또한, 데이터 버스의 각각의 파티션에 대해, 인코딩 표시자 심볼에 기초하여, 파티션을 통해 수신된 데이터의 서브세트가 인코딩되는지 여부에 관한 결정이 이루어질 수도 있다. 이러한 경우에, 데이터의 서브세트가 인코딩된다고 인코딩 표시자 심볼이 표시하면 데이터의 서브세트가 디코딩된다.
본 발명의 이러한 양태들 및 다른 양태들은 후속하는 상세한 설명의 리뷰 시에 보다 완전히 이해될 것이다. 본 발명의 다른 양태들, 특징들, 및 구현들은, 다음의 상세한 설명, 첨부 도면들과 연계한 본 발명의 예시적인 구현들을 검토할 시에, 당업자들에게 자명해질 것이다. 본 발명의 특징들이 하기에서 소정의 구현들 및 도면들에 대해 논의될 수도 있으나, 본 발명의 모든 구현들은 본원에서 논의된 유리한 특징들 중 하나 이상의 유리한 특징들을 포함할 수 있다. 다시 말해, 하나 이상의 구현들이 소정의 유리한 특징들을 갖는 것으로 논의될 수도 있으나, 이러한 특징들 중 하나 이상의 특징은 또한 본원에서 논의된 발명의 다양한 구현들에 따라 이용될 수도 있다. 유사한 방식으로, 예시적인 구현들이 디바이스, 시스템, 또는 방법 실시형태들로 하기에서 논의될 수도 있으나, 그러한 예시적인 구현들은 다양한 디바이스들, 시스템들, 및 방법들로 구현될 수도 있음이 이해되어야 한다.
도 1 은 본 개시물의 하나 이상의 양태들이 응용을 찾을 수도 있는 네트워크 환경의 일 예의 간략화된 블록도이다.
도 2 는 본 개시물의 적어도 하나의 예에 따른 버스 파티션들에 대한 선택적 디코딩을 도시하는 간략화된 블록도이다.
도 3 은 본 개시물의 적어도 하나의 예에 따른 데이터를 인코딩하는 것과 함께 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 4 는 본 개시물의 적어도 하나의 예에 따른 데이터를 디코딩하는 것과 함께 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 5 는 데이터 버스의 상이한 채널들을 통해서 송신된 데이터 비트들의 일 예를 도시하는 간략화된 도면이다.
도 6 은 도 5 의 데이터 비트들에 적용된 종래의 DBI AC 인코딩을 일 예를 도시하는 간략화된 도면이다.
도 7 은 도 5 의 데이터 비트들에 적용된 종래의 DBI DC 인코딩을 일 예를 도시하는 간략화된 도면이다.
도 8 은 도 5 의 데이터 비트들의 일부분에 적용된 종래의 DBI DC 인코딩의 일 예에 대한 시그널링을 도시하는 간략화된 도면이다.
도 9 는 본 개시물의 적어도 하나의 예에 따른 도 5 의 데이터 비트들의 일부분에 적용된 인코딩에 대한 시그널링을 도시하는 간략화된 도면이다.
도 10 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 회로를 도시하는 간략화된 도면이다.
도 11 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 12 는 도 11 의 회로에 의해 생성된 출력 레벨들의 예를 도시하는 간략화된 도면이다.
도 13 은 도 11 의 회로에 의해 생성된 DBI 레벨들의 예들을 도시하는 간략화된 도면이다.
도 14 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 15 는 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 16 은 본 개시물의 적어도 하나의 예에 따른 버스 파티셔닝 포맷을 선택하기 위한 회로를 도시하는 간략화된 도면이다.
도 17 은 본 개시물의 적어도 하나의 예에 따른 인코딩의 유형을 선택하기 위한 회로를 도시하는 간략화된 도면이다.
도 18 은 본 개시물의 적어도 하나의 예에 따른 데이터 버스를 포함하는 인쇄 회로 기판을 도시하는 간략화된 도면이다.
도 19 은 본 개시물의 적어도 하나의 예에 따른 데이터 버스를 포함하는 집적 회로 다이를 도시하는 간략화된 도면이다.
도 20 은 본 개시물의 적어도 하나의 예에 따른 인코딩 기능성을 포함하는 장치의 선택 컴포넌트들을 도시하는 간략화된 블록도이다.
도 21 은 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼을 생성하는 것과 함께, 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 22 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼을 생성하는 것과 함께, 수행될 수도 있는 추가적인 동작들을 도시하는 플로차트이다.
도 23 은 본 개시물의 적어도 하나의 예에 따른 디코딩 기능성을 포함하는 장치의 선택 컴포넌트들을 도시하는 간략화된 블록도이다.
도 24 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼에 기초하여 데이터를 디코딩하는 것과 함께, 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 25 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼에 기초하여 데이터를 디코딩하는 것과 함께, 수행될 수도 있는 추가적인 동작들을 도시하는 플로차트이다.
도 2 는 본 개시물의 적어도 하나의 예에 따른 버스 파티션들에 대한 선택적 디코딩을 도시하는 간략화된 블록도이다.
도 3 은 본 개시물의 적어도 하나의 예에 따른 데이터를 인코딩하는 것과 함께 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 4 는 본 개시물의 적어도 하나의 예에 따른 데이터를 디코딩하는 것과 함께 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 5 는 데이터 버스의 상이한 채널들을 통해서 송신된 데이터 비트들의 일 예를 도시하는 간략화된 도면이다.
도 6 은 도 5 의 데이터 비트들에 적용된 종래의 DBI AC 인코딩을 일 예를 도시하는 간략화된 도면이다.
도 7 은 도 5 의 데이터 비트들에 적용된 종래의 DBI DC 인코딩을 일 예를 도시하는 간략화된 도면이다.
도 8 은 도 5 의 데이터 비트들의 일부분에 적용된 종래의 DBI DC 인코딩의 일 예에 대한 시그널링을 도시하는 간략화된 도면이다.
도 9 는 본 개시물의 적어도 하나의 예에 따른 도 5 의 데이터 비트들의 일부분에 적용된 인코딩에 대한 시그널링을 도시하는 간략화된 도면이다.
도 10 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 회로를 도시하는 간략화된 도면이다.
도 11 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 12 는 도 11 의 회로에 의해 생성된 출력 레벨들의 예를 도시하는 간략화된 도면이다.
도 13 은 도 11 의 회로에 의해 생성된 DBI 레벨들의 예들을 도시하는 간략화된 도면이다.
도 14 은 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 15 는 본 개시물의 적어도 하나의 예에 따른 다중-레벨 표시자를 생성하기 위한 다른 회로를 도시하는 간략화된 도면이다.
도 16 은 본 개시물의 적어도 하나의 예에 따른 버스 파티셔닝 포맷을 선택하기 위한 회로를 도시하는 간략화된 도면이다.
도 17 은 본 개시물의 적어도 하나의 예에 따른 인코딩의 유형을 선택하기 위한 회로를 도시하는 간략화된 도면이다.
도 18 은 본 개시물의 적어도 하나의 예에 따른 데이터 버스를 포함하는 인쇄 회로 기판을 도시하는 간략화된 도면이다.
도 19 은 본 개시물의 적어도 하나의 예에 따른 데이터 버스를 포함하는 집적 회로 다이를 도시하는 간략화된 도면이다.
도 20 은 본 개시물의 적어도 하나의 예에 따른 인코딩 기능성을 포함하는 장치의 선택 컴포넌트들을 도시하는 간략화된 블록도이다.
도 21 은 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼을 생성하는 것과 함께, 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 22 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼을 생성하는 것과 함께, 수행될 수도 있는 추가적인 동작들을 도시하는 플로차트이다.
도 23 은 본 개시물의 적어도 하나의 예에 따른 디코딩 기능성을 포함하는 장치의 선택 컴포넌트들을 도시하는 간략화된 블록도이다.
도 24 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼에 기초하여 데이터를 디코딩하는 것과 함께, 수행될 수도 있는 동작들을 도시하는 플로차트이다.
도 25 는 본 개시물의 적어도 하나의 예에 따른, 인코딩 표시자 심볼에 기초하여 데이터를 디코딩하는 것과 함께, 수행될 수도 있는 추가적인 동작들을 도시하는 플로차트이다.
첨부된 도면들과 함께 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 철저한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정 세부사항들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 일부 경우들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
도 1 은 본 개시물의 하나 이상의 양태들이 응용예를 찾을 수도 있는 시스템 (100) 의 일 예를 도시하는 블록도이다. 시스템 (100) 은 병렬 데이터 버스 (106) 에 의해 서로 통신적으로 커플링된 제 1 전자 디바이스 (102) 및 제 2 전자 디바이스 (104) 를 포함한다. 제 1 전자 디바이스 (102) 는 송신 양태들을 강조하여 도시되고, 인코더 (110) 를 가지고 데이터 버스 (106) 를 통해서 제 1 전자 디바이스 (102) 로부터 제 2 전자 디바이스 (104) 로 인코딩된 데이터 비트들을 전송하도록 적응된 송신기 (108) 를 포함한다. 제 2 전자 디바이스 (104) 는 수신 양태들을 강조하여 도시되고, 인코딩된 데이터 비트들을 수신하여 디코딩하기 위한 디코더 (114) 를 갖는 수신기 (112) 를 포함한다. 일부 예들에서, 데이터 버스 (106) 는 단방향 버스일 수도 있다. 다른 예들에서, 데이터 버스 (106) 는 양방향 버스일 수도 있으며, 이 경우에 제 2 전자 디바이스 (104) 는 제 1 전자 디바이스 (102) 의 수신기 (118) 에 데이터 버스 (106) 를 통해서 데이터 비트들을 전송하도록 적응된 송신기 (116) 를 포함할 수도 있다. 송신기 (116) 와 수신기 (118) 에 대한 데이터 버스 (106) 의 커플링은 도 1 의 복잡도를 감소시키기 위해 도시되지 않는다.
제 1 및 제 2 전자 디바이스들 (102 및 104) 은 통신 시그널링 (예를 들어, 단일-종단 시그널링) 을 이용하여 통신할 수 있는 임의의 디바이스일 수도 있다. 다양한 예들에서, 제 1 및 제 2 전자 디바이스들 (102 및 104) 은 컴퓨터 시스템에서의 컴포넌트들일 수도 있다. 예를 들어, 일부 구현들에서, 전자 디바이스 (102) 는 프로세싱 유닛일 수도 있고, 제 2 전자 디바이스 (104) 는 메모리 모듈일 수도 있고, 데이터 버스 (106) 는 시스템 버스일 수도 있다. 적어도 하나의 예에서, 프로세스의 메모리 제어기 인터페이스 (예를 들어, 물리적 메모리 인터페이스 회로 PHY) 및 메모리 모듈이 각각의 송신기들 및 수신기들을 포함하여 기록 동작 및 판독 동작을 수행할 수도 있다. 프로세서는 중앙 프로세싱 유닛 (CPU), 코-프로세서, 산술 프로세싱 유닛, 그래픽 프로세싱 유닛 (GPU), 디지털 신호 프로세서 (DSP) 등과 같은 임의의 적합한 유형의 프로세싱 유닛일 수도 있다. 메모리 모듈은 또한 임의의 적합한 유형의 메모리일 수도 있다. 일부 구현들에서, 제 2 전자 디바이스 (104) 는 브릿지 제어기, 저장 디바이스 (예를 들어, 하드 드라이브, 광학 드라이브, 플래시 드라이브, 저장 어레이 등), (예를 들어, 로컬 또는 광역 네트워크에 대한) 네트워크 인터페이스 디바이스, 사용자 인터페이스 (예를 들어, 디스플레이 디바이스, 사운드 디바이스, 프린터) 등과 같은 다른 유형의 디바이스일 수도 있다. 일부 예들에서, 제 1 및 제 2 전자 디바이스들 (102 및 104) 은 시스템에서의 프로세싱 유닛 내의 별도의 코어들 또는 별도의 프로세싱 유닛들일 수도 있다. 이에 따라, 적어도 하나의 예에서, 시스템 (100) 은 통신 네트워크일 수도 있으며, 여기서 제 1 및 제 2 전자 디바이스들 (102 및 104) 은 라우터들, 스위치들, 종단 디바이스들 등일 수도 있다. 따라서, 일반적으로, 제 1 및 제 2 전자 디바이스들 (102 및 104) 은 데이터 버스 (106) 를 통해서 데이터 비트들을 전송 및/또는 수신하도록 적응된 임의의 적합한 디바이스들일 수도 있다.
본원에서 이용되는 바와 같은, 용어들 데이터, 데이터 비트들 등은 통신 매체를 통해서 전달될 수 있는 정보를 일반적으로 지칭한다. 따라서, 데이터는, 예를 들어, 제어 정보, 주소 정보, 시그널링 정보, 타이밍 정보, 사용자 데이터, 페이로드 등을 포함할 수 있고, 데이터 버스는 이를 전달할 수 있다.
데이터 버스 (106) 는 채널들 (120) 이라고 지칭될 수도 있는 거의 병렬인 전도성 트레이스들 또는 라인들을 포함할 수도 있고, 이러한 채널들 (120) 은 각각의 종단에서 전자 디바이스들 (102 및 104) 에서의 개개의 핀들에 커플링될 수 있다. 데이터 버스 (106) 의 채널들 (120) 의 개수는 상이한 구현들에 따라 달라질 수 있다. 단지 예로서, 데이터 버스 (106) 는 4 개, 8 개, 16 개, 32 개, 64 개, 72 개, 또는 다른 개수의 데이터 채널들 (120) 을 포함할 수도 있다. 데이터 비트들과 병렬로 제어 신호들을 송신하기 위해 적어도 하나의 추가적인 채널 (122) 이 제공될 수도 있다. 예를 들어, 데이터 버스 (106) 는 전체 80 개의 채널들에 있어서 72 개의 데이터 채널들 및 8 개의 제어 채널들 (122) 을 가질 수도 있다. 하기에서 보다 상세히 논의되는 바와 같이, 제어 채널들 (122) 중 하나는 데이터 버스 (106) 에서 이용된 인코딩 (예를 들어, 데이터 채널들 (120) 을 통해서 송신된 데이터 비트들에 대해 이용된 인코딩) 의 표시를 전송하는데 이용될 수 있다. 버스는 추가적으로 수반하는 클록킹 토폴로지 (미도시) 를 지원할 수도 있다.
채널들 (120) 을 통해서 송신된 데이터 비트들은 "일들" (1들) 및 "영들" (0들), 또는 고 전압 및 저 전압을 포함하는 이진 데이터 비트들이다. 데이터 비트들이 데이터 버스 (106) 를 통해서 송신되면서, 데이터 비트들은 통상적으로 데이터 비트들의 진폭 및 타이밍을 변경할 수 있는 심볼-간 간섭 (inter-symbol interference; ISI), 크로스토크, 및 동시 스위칭 노이즈 (simultaneous switching noise; SSN) 의 영향을 받는다. 종종, 데이터 비트들은 다양한 데이터 인코딩의 기법들을 이용하여 ISI, 크로스토크, 및/또는 SSN 의 영향들을 감소시키도록 인코딩될 수도 있다. 데이터 인코딩은 또한 데이터 비트들의 송신과 연관된 전력 소비를 감소시키도록 사용될 수 있다.
데이터 버스 인버전 (data bus inversion; DBI) 은 통신 인터페이스들에서 전력 소비를 감소시키기 위한 공지의 기법이다. 인코딩의 효과는 인코딩되고 있는 병렬 데이터 (버스) 의 너비에 의존할 수도 있다. 따라서, 버스를 보다 작은 서브세트들로 파티셔닝하는 것은 잠재적으로 통신 시스템의 효율을 향상시키고 나아가 전력을 감소시키는 한 가지 방법이다. 그러나, 일부 구현들에서, 수신기에 상이한 서브세트들에 대한 DBI 플래그들을 통신하는데 필요한 추가적인 핀(들)은 너무 비용이 많이 든다. 결과적으로 DBI 파티셔닝은 달리 유용함을 증명할 수 있는 많은 구현들에서 이용되지 않는다.
도 2 는 본원의 사상들에 따른 인코딩 표시자 심볼을 사용하는 버스 파티션들에 대한 선택적 인코딩의 일 예를 도시하는 블록도이다. 유리하게, 인코딩 표시자 심볼은 인코딩되는 임의의 버스 파티션들을 식별하고, 단일 시그널링 라인 (예를 들어, 버스 비트 라인) 을 통해서 송신될 수 있다. 예를 들어, 하기에서 보다 상세히 논의된 바와 같이, 인코딩 표시자 심볼은 다중-레벨 신호 (다중-상태 신호) 를 포함할 수도 있으며, 여기서 각각의 "레벨" ("상태") 은 버스 파티셔닝 및/또는 인코딩을 표시하는 2 이상의 비트들을 나타낸다. 또한, 일부 구현들에서, 각각의 "레벨" ("상태") 은 대응하는 버스 파티션에 적용될 인코딩의 유형을 나타낼 수도 있다.
도 2 에서, 인코더 (202) 는 디코더 (204) 에 전송되는 데이터를 선택적으로 인코딩한다. 특히, 인코더 (202) 는 입력 데이터 버스 (데이터 입력 (DATA IN)) (206) 를 상이한 파티션들로 파티셔닝하고 각각의 파티션을 독립적으로 인코딩한다. 도 2 의 예에서, 16 비트 (즉, 16 라인) 데이터 버스 (206) 는 2 개의 8 비트 파티션들로 나눠진다. 다른 구현들에서는 다른 파티셔닝 포맷들이 사용될 수도 있다. 예를 들어, 버스는 보다 큰 수의 파티션들로 나눠질 수도 있으며, 각각의 파티션에서의 비트들의 수는 본원의 도면들에서 도시된 수와 상이할 수도 있고, 상이한 파티션들에서의 비트들의 수는 상이할 수도 있다.
도시된 바와 같이, 입력 데이터 버스 (206) 는 제 1 파티션 (208) (파티션 A) 과 제 2 파티션 (210) (파티션 B) 으로 분리된다. 파티션 A 선택적 인코딩 (212) 은, 예를 들어, 독립적으로, 파티션 B 선택적 인코딩 (214) 은, 예를 들어, 버스 사이클 기준으로, 제 2 파티션 (210) 에 대한 데이터를 인코딩할지 여부를 결정한다.
인코딩이 주어진 파티션에 적용되는지 여부에 관한 결정은 하나 이상의 팩터들 (예를 들어, 통신 성능 팩터들) 에 기초하여 이루어진다. 예를 들어, 일부 경우들에서, 그렇게 한다면, 주어진 버스 파티션을 통해서 송신될 데이터의 서브세트에 인코딩이 적용되는 것은 데이터 송신과 연관된 전력 소비를 감소시킬 것이다. 역으로, 인코딩에 의해 전력 절감들이 달성되지 않거나 무의미한 전력 절감들이 달성될 것이라면, 데이터의 서브세트는 대신에 인코딩 없이 송신된다. 다른 예로서, 일부 경우들에서, 그렇게 한다면, 주어진 버스 파티션을 통해서 송신될 데이터의 서브세트에 인코딩이 적용되는 것은 데이터 송신과 연관된 간섭을 감소시킬 것이다. 역으로, 인코딩에 의해 간섭 감소가 달성되지 않거나 무의미한 간섭 감소가 달성된다면, 데이터의 서브세트는 대신에 인코딩 없이 송신된다.
인코딩 또는 인코딩하지 않겠다는 결정이 이루어진 후에, 인코더 (202) 는 디코더 (204) 에 파티셔닝된 데이터 버스를 통해 데이터를 송신한다. 구체적으로, 인코더 (202) 는, 데이터 버스 파티션 A (216) 를 통해, 파티션 A 선택적 인코딩 (212) 에 의해 인코딩되었을 수도 있는, 데이터의 제 1 서브세트를 송신한다. 유사하게, 인코더 (202) 는, 데이터 버스 파티션 B (218) 를 통해, 파티션 B 선택적 인코딩 (214) 에 의해 인코딩되었을 수도 있는, 데이터의 제 2 서브세트를 송신한다.
본원에서 이용된 "버스 파티션들" 및 "파티셔닝된 버스" 용어들은 버스가 물리적으로 파티셔닝될 것을 요구하지 않는다는 것으로 이해되어야 한다. 오히려, 파티셔닝은 단지 상이한 방식으로 버스의 비트 라인들의 상이한 세트들을 통해서 전송될 데이터를 처리하는 것과 관련된다. 예를 들어, 하나의 파티션을 통해서 전송될 데이터의 서브세트를 인코딩하는 것에 대한 결정은 다른 파티션을 통해서 전송될 데이터의 다른 서브세트를 인코딩하는 것에 대한 결정과 독립적으로 이루어질 수도 있다. 다른 예로서, 상이한 버스 파티션들에 대한 데이터의 상이한 서브세트들에 대해 상이한 인코딩이 적용될 수도 있다.
주어진 파티션이 인코더 (202) 에 의해 인코딩되었는지 여부를 디코더 (204) 가 결정할 수 있도록 인코더 (202) 는 디코더 (204) 에 인코딩 정보를 전송한다. 이를 위해, 파티션 A 선택적 인코딩 (212) 및 파티션 B 선택적 인코딩 (214) 은 인코딩 표시자 생성기 (224) 에 대응하는 인코딩 또는 무 인코딩 결정의 표시 (220) 및 표시 (222) 를 각각 전송한다. 이러한 표시들에 기초하여, 인코딩 표시자 생성기 (224) 는 인코딩 표시자 심볼을 생성하며, 이는 그 다음에 비트 라인 (226) 을 통해 디코더 (204) 에 전송된다.
도 2 의 예에서, 인코딩 표시자 심볼은 버스 파티셔닝 및 주어진 버스 파티션에 인코딩이 적용되었는지 여부를 표시하는 2 비트의 정보를 나타낸다. 구체적으로, 2 비트 값 00 은 파티션 A 데이터 및 파티션 B 데이터 중 어느 것도 인코딩되지 않았다는 것을 표시한다. 2 비트 값 01 은 오직 파티션 A 데이터만이 인코딩되었다는 것을 표시한다. 2 비트 값 10 은 오직 파티션 B 데이터만이 인코딩되었다는 것을 표시한다. 2 비트 값 11 은 파티션 A 데이터 및 파티션 B 데이터 양자 모두가 인코딩되었다는 것을 표시한다. 다른 구현들에서 인코딩 표시자 심볼은 상이한 수의 비트들 (예를 들어, 3 이상) 을 나타낼 수도 있는 것으로 이해되어야 한다.
디코더 (204) 의 인코딩 표시자 프로세싱부 (228) 는 인코딩 표시자 심볼을 수신하여 데이터 버스 파티션들 A 및 B (216 및 218) 에 대해 인코딩이 활성인지 여부를 표시하는 표시들 (230 및 232) 을 생성한다. 표시 (230) 는 데이터 버스 파티션 A (216) 에서의 데이터가 인코딩되는지 여부를 표시한다. 표시 (232) 는 데이터 버스 파티션 B (218) 에서의 데이터가 인코딩되는지 여부를 표시한다. 표시된 바와 같이, 인코딩 표시자 프로세싱부 (228) 는 파티션 A 선택적 디코딩 (234) 에 표시 (230) 를 그리고 파티션 B 선택적 디코딩 (236) 에 표시 (232) 를 전송한다.
결과적으로, 디코더 (204) 는, 각각의 버스 파티션에 독립적으로, 해당 버스 파티션에 대해 디코딩이 적용될 필요가 있는지 여부를 결정할 수 있다. 파티션 A 선택적 디코딩 (234) 은, 표시 (230) 에 기초하여, 데이터 버스 파티션 A (216) 에서 수신된 데이터를 디코딩할지 여부를 결정한다. 파티션 A 선택적 디코딩 (234) 의 동작과 독립적으로, 파티션 B 선택적 디코딩 (236) 은, 표시 (232) 에 기초하여, 데이터 버스 파티션 B (218) 에서 수신된 데이터를 디코딩할지 여부를 결정한다.
위에서 논의된 바와 같이, 이러한 인코딩 결정들은 일부 구현들에서 버스 사이클 기준으로 이루어진다. 예를 들어, 인코더 (202) 는 파티셔닝된 데이터 버스에서 모든 데이터 전송 사이클과 병렬로 새로운 인코딩 표시자 심볼을 전송할 수 있다. 따라서, 디코더 (204) 는, 모든 데이터 전송에 대해, 버스 파티션들 중 임의의 버스 파티션에서 수신된 데이터에 디코딩이 적용될지 여부를 결정할 수 있다.
위의 것을 염두에 두고, 본 개시물에 따른 인코딩 및 디코딩과 관련되는 동작들의 예들이 이제 도 3 및 도 4 의 플로차트들과 함께 보다 상세히 설명될 것이다. 편리함을 위해, 도 3 및 도 4 의 동작들 (또는 본원에서 논의되거나 알려준 임의의 다른 동작들) 은 특정 컴포넌트들에 의해 수행되는 것으로 설명될 수도 있다. 그러나, 다양한 구현들에서, 이러한 동작들은 다른 유형의 컴포넌트들에 의해 수행될 수도 있고 상이한 개수의 컴포넌트들을 이용하여 수행될 수도 있는 것으로 이해되어야 한다. 일 주어진 구현에서, 본원에서 설명된 동작들 중 하나 이상이 사용되지 않을 수도 있다는 것이 또한 이해되어야 한다.
도 3 은 데이터를 선택적으로 인코딩하고 대응하는 인코딩 표시자 심볼을 생성하는 것과 함께 수행될 수도 있는 동작들의 일 예를 도시한다. 예를 들어, 도 3 의 동작들은 도 1 의 송신기 (108), 도 2 의 인코더 (202), 또는 일부 다른 적합한 엔티티에 의해 수행될 수 있다.
블록 302 는 데이터 전송에 앞서 수행되는 여러 예비 동작들에 관한 것이다. 지정된 컴포넌트가 데이터 버스에 대해 사용될 특정 데이터 파티셔닝 및 버스 파티션을 통해서 전송되는 데이터에 적용될 인코딩의 유형을 선택한다.
이러한 동작들은 일부 구현들에서 고정적 기준으로 수행된다. 예를 들어, 대응하는 시스템이 초기화되는 경우에 데이터 버스 제어기가 이러한 파라미터들을 정의할 수 있다. 다른 예로서, 제조사가 동일한 파라미터들을 항상 이용하도록 시스템을 구성할 수 있다.
다른 구현들에서, 블록 302 의 동작들은 동적 기준으로 수행된다. 예를 들어, 송신기, 인코더, 또는 일부 다른 컴포넌트가 소정의 데이터 전송들에 대해, 소정의 시간의 기간들 동안에, 또는 다른 특정 조건들에 대해 이용될 파티셔닝 및/또는 인코딩을 명시할 수 있다.
블록 302 의 결정의 기준은 하나 이상의 팩터들에 기초할 수 있다. 일 예로서, 인코딩 또는 파티셔닝은 전송되고 있는 데이터의 유형, 데이터 레이트, 또는 일부 다른 데이터-관련 또는 데이터-비관련 팩터에 의존할 수도 있다.
블록 304 에서, 블록 302 의 선택을 수행하는 디바이스는 연관된 디바이스에 데이터 버스 파티셔닝 정보 및/또는 인코딩 유형 정보를 전송한다. 여기서, 연관된 컴포넌트들 사이의 적절한 시그널링 (예를 들어, 인코더와 디코더 사이의 전용 비트 라인, 또는 커맨드 버스) 의 이용을 통하여, 하나의 컴포넌트는 데이터 전송들을 위해 이용될 특정 파티셔닝 및/또는 파티셔닝된 데이터 버스에 적용될 유형을 하나의 컴포넌트의 연관된 컴포넌트에 알릴 수 있다.
블록 306 에서, 일부 시점에서, 제 1 디바이스는 연관된 제 2 디바이스에 송신될 데이터를 수신한다. 예를 들어, 메모리 제어기는 메모리 디바이스로의 전송을 위해 시스템 프로세서로부터 데이터를 수신할 수도 있다. 본원의 사상들은 또한 데이터 전송들의 다른 형태들에 적용가능할 수도 있다는 것이 이해되어야 한다.
블록 308 에서, 각각의 데이터 버스 파티션에 대해, 제 1 디바이스는 데이터 버스 파티션을 통해서 송신될, 수신된 데이터의 서브세트를 인코딩할지 여부를 결정한다. 예를 들어, 제 1 디바이스의 인코더는 주어진 데이터 버스 파티션을 통해서 데이터의 서브세트를 분석하고, 그렇게 함으로써 해당 데이터의 서브세트가 인코딩될지 여부를 결정할 수도 있다.
블록 310 에서, 인코더는 블록 308 에서 인코딩하도록 지정된 데이터의 임의의 서브세트들을 인코딩한다. 블록 308 에서 인코딩하도록 지정되지 않은 데이터의 임의의 서브세트들은 인코딩되지 않는다.
블록 312 에서, 인코더 또는 연관된 컴포넌트는 블록 308 및 블록 310 에서의 결과들에 기초하여 인코딩 표시자 심볼을 생성한다. 본원에서 논의된 바와 같이, 인코딩 표시자 심볼은 버스 파티셔닝 및 각각의 버스 파티션에 적용되는 인코딩 양자 모두를 표시한다.
블록 314 에서, 제 1 디바이스는, 파티셔닝된 데이터 버스를 통해, 블록 310 에서 수신된 데이터의 하나 이상의 서브세트들에 대해 수행된 임의의 인코딩에 의해 경우에 따라 수정된, 블록 306 에서 수신된 데이터를 송신한다. 이러한 데이터 송신과 함께, 제 1 디바이스는 블록 312 에서 생성된 대응하는 인코딩 표시자 심볼을 송신한다. 통상적으로, 제 1 디바이스는 (예를 들어, 실질적으로 동일한 시간에) 병렬로 데이터 및 연관된 인코딩 표시자 심볼을 송신한다. 그러나, 원한다면, 인코딩 표시자 심볼은 데이터 전에 또는 후에 전송될 수 있다.
도 4 는 수신된 인코딩 표시자 심볼에 기초하여 수신된 데이터를 선택적으로 디코딩하는 것과 함께 수행될 수도 있는 동작들의 일 예를 도시한다. 예를 들어, 도 4 의 동작들은 도 1 의 수신기 (112), 도 2 의 디코더 (204), 또는 일부 다른 적합한 엔티티에 의해 수행될 수 있다.
블록 402 에서, 위에서 언급된 제 2 디바이스는 도 3 의 블록 304 에서 송신된 데이터 버스 파티셔닝 정보 및/또는 인코딩 유형 정보를 수신한다. 이러한 방식으로, 제 2 디바이스는 파티셔닝된 데이터 버스를 통해 수신된 데이터에 어떻게 디코딩이 적용될지를 결정한다.
블록 404 에서, 제 2 디바이스는 파티셔닝된 데이터 버스를 통해 제 1 디바이스로부터의 데이터, 뿐만 아니라 연관된 인코딩 표시자 심볼을 수신한다. 위에서 언급된 바와 같이, 데이터 버스 파티션들의 하나 이상에서 수신된 데이터의 하나 이상의 서브세트들이 인코딩될 수도 있다.
블록 406 에서, 각각의 데이터 버스 파티션에 대해, 제 2 디바이스는 인코딩 표시자 심볼을 이용하여 블록 402 에서 수신된 대응하는 데이터의 서브세트가 인코딩되는지 여부를 결정한다.
블록 408 에서, 디코더는 인코딩된 것으로, 블록 404 에서 식별된 데이터의 임의의 서브세트들을 디코딩한다. 블록 406 에서 인코딩된 것으로 식별되지 않은 데이터의 임의의 서브세트들은 디코딩되지 않는다. 제 2 디바이스는 그 다음에 그것의 의도한 목적을 위해 수신된 데이터를 이용할 수도 있다.
위에서 언급된 바와 같이, 본원에서의 사상들은 상이한 구현들에서 상이한 유형의 인코딩을 구현될 수 있다. 예시의 목적으로, 인코딩 표시자 심볼의 생성 및 이용과 관련되는 추가적인 세부사항들은 이제 DBI 인코딩의 맥락에서 설명될 것이다. 그러나, 본원에서의 사상들은 DBI 인코딩으로 제한되지 않는다는 것이 이해되어야 한다.
도 5 내지 도 7 은 종래의 DBI 인코딩의 개관을 제시한다. 도 5 는 데이터 버스 (502) (예를 들어, 도 1 의 데이터 버스 (106)) 의 상이한 채널들을 통해서 송신된 데이터 비트들의 일 예를 도시하는 블록도 (500) 이다. 도시된 바와 같이, 각각의 행은 별도의 데이터 채널을 나타내며, 8 데이터 비트들 및 사이클들이 각각의 채널에서 송신되는 것으로 도시된다. 홀수의 사이클들 또는 비트들은 단순히 보는 것을 쉽게 하기 위해 음영처리된다.
데이터 버스 인버전은, 송신에 앞서, 송신될 비트들 사이의 관계를 살펴보고, 그 다음에 비트들의 일부 또는 전부를 인버팅하는 것이 유리한지를 결정하기 위한 회로부를 사용하는 피쳐이다. 비트들이 인버팅되면, 비트들이 인버팅된다는 것을 표시하기 위해 추가적인 신호가 또한 설정된다. 이러한 추가적인 신호는 종종 데이터 버스 인버전 (DBI) 플래그 또는 인코딩 플래그라고 지칭된다. 데이터의 세트들이 인버팅된 수신 회로부를 식별하기 위해 다른 비트들과 병렬로 DBI 플래그가 전송될 수 있도록 추가 채널이 이용될 수 있다. 수신기는 DBI 플래그를 이용하여 수신기의 원래의 상태로 입력 데이터를 되돌린다.
일반적으로 DBI 인코딩에 이용되는 2 가지 유형의 데이터 버스 인버전 기법들이 있다. DBI AC 또는 최소 전환들이라고 당업자들에 의해 지칭될 수도 있는 제 1 기법은 데이터 채널에 대한 전환들 (예를 들어, "0" 에서 "1", 또는 "1" 에서 "0" 으로의 변화들) 의 수를 감소시켜 AC 전력 소비를 향상시키고 크로스토크 등의 발행을 감소시키기 위해 이용된다. 도 6 은 종래의 DBI AC 인코딩의 일 예를 도시하는 블록도이다. 왼쪽은 도 5 로부터의 원시 (raw) 데이터이고, 오른쪽은 결과적인 인코딩된 데이터 (602) 를 도시한다. DBI AC 인코딩은 통상적으로 동시 전환들의 수를 감소시키기 위해 사용된다. 원시 데이터에서, 데이터 버스 (502) 의 모두 8 개의 채널들에서 8 개의 사이클들에 걸쳐 총 34 개의 전환들이 있다. 도시된 바와 같이, 데이터 채널들의 반보다 많은 데이터 채널에서 송신을 위해 스케줄링된 데이터가 하나의 사이클로부터 다음 사이클로 전환한다고 디바이스가 결정하는 경우, 디바이스는 모든 데이터 채널들에서 다음 사이클을 인버팅할 수 있다. 예를 들어, 사이클 2 로부터 사이클 3 으로, 8 개의 데이터 채널들 중 7 개가, "1" 로부터 "0" 으로 또는 "0" 으로부터 "1" 로 전환한다. 이에 따라, 디바이스는 사이클 3 을 인버팅하여, 8 개의 데이터 채널들 중 오직 하나 만이 전환할 것이다. 추가적으로, DBI 플래그는 도 6 에서 채널 9 라고 식별된 DBI 제어 채널에 대해 사이클 3 에서 설정된다. 이러한 예에서, 데이터 버스 (502) 에서 송신되는 데이터에서의 전환들의 수는 34 개에서 25 개로 줄어드나, 데이터 버스 (502) 에서 송신되는 "1들" (예를 들어, 논리적 HIGH 신호들) 의 수는 31 개에서 32 개로 증가한다.
"1들" 을 최소화하거나 "0들" 을 최소화하는, DBI DC 라고 지칭될 수도 있는 데이터 버스 인버전에 대한 제 2 기법은 특정 상태의 데이터 비트들의 수를 감소시키기 위해 (예를 들어, "1들" 의 수 또는 "0들" 의 수를 감소시키기 위해) 이용된다. 도 7 은 종래의 DBI DC 인코딩의 일 예를 도시하는 블록도이다. 다시 한번, 왼쪽의 도면은 도 5 로부터의 원시 데이터이고, 오른쪽의 도면은 결과적인 인코딩된 데이터 (702) 를 도시한다. DBI DC 인코딩은 통상적으로 특정 상태를 갖는 데이터 비트들의 수를 감소시키기 위해 사용된다. 예를 들어, 이 예에서, DBI DC 는 데이터 버스 (502) 에서 송신된 "1들" (또는 논리적 HIGH 신호들) 의 수를 감소시키기 위해 사용된다. 도시된 바와 같이, 주어진 사이클에서 반을 넘는 데이터 채널들이 논리적 HIGH 신호 ("1") 를 갖는다고 디바이스가 결정하는 경우, 디바이스는 모든 데이터 채널들에 대한 사이클을 인버팅할 수 있다. 예를 들어, 원시 데이터에서 사이클 1 은 8 개의 데이터 채널들 중 5 개에서 논리적 HIGH 신호들 ("1들") 을 갖는다. 이에 따라, 디바이스는 8 개의 데이터 채널들 중 오직 3 개만이 논리적 HIGH 신호 "1") 를 송신하도록 데이터 채널들의 각각에서 사이클 1 을 컨버팅할 수 있다. 추가적으로, DBI 플래그는 도 7 에서 채널 9 라고 식별된 DBI 제어 채널에 대해 사이클 1 에서 설정된다. 이러한 예에서, 데이터 버스 (502) 에서 송신된 "1들" (예를 들어, 논리적 HIGH 신호들) 의 수는 31 개에서 22 개로 줄어든다. 이 예에서 전환들의 수가 또한 34 개에서 28 개로 줄어드나, 이 예는 이 기술에서 통상적인 것은 아니다. 일반적으로, 이 기법은 전환들의 수의 증가를 초래한다.
도 8 은 종래의 DBI 인코딩에서 사용된 이진 시그널링의 일 예를 도시한다. 특히, 도 8 은, 간략화된 방식으로, DBI 제어 채널로부터의 대응하는 DBI 값들과 함께, 도 7 로부터의 DBI DC 출력의 처음 4 개의 버스 사이클과 연관된 시그널링을 도시한다.
대조적으로, 도 9 는 본원에서 알려준 인코딩 표시자 심볼의 이용과 함께 사용될 수도 있는 시그널링의 일 예를 도시한다. 이 예에서, 각각의 인코딩 표시자 심볼 (DBI 값) 은 도 9 의 하단에 표시된 바와 같이 4 개의 값들 (레벨들) 중 하나를 취한다. 이러한 값들은 도 2 를 참조하여 위에서 설명된 인코딩 표시자 심볼 값들과 동일하다. 따라서, 이러한 인코딩 표시자 심볼은, 주어진 인코딩 표시자 심볼이, 각각의 버스 파티션에 대해, 해당 특정 버스 파티션에 인코딩이 적용되었는지 여부를 표시하는, 버스 파티셔닝과 함께 이용될 수 있다.
도 9 의 예에서, 8 개의 채널들은 두 (2) 개의 파티션들로 파티셔닝되었다.
제 1 파티션은 채널 1 내지 채널 4 로 구성되고, 제 2 파티션은 채널 5 내지 채널 8 로 구성된다. 버스 사이클 1 에서, 인코딩은 오직 제 1 파티션에만 적용된다. 버스 사이클 2 에서, 인코딩은 적용되지 않는다. 버스 사이클 3 에서, 인코딩은 제 1 파티션 및 제 2 파티션 양자 모두에 적용된다. 버스 사이클 4 에서, 인코딩은 오직 제 1 파티션에만 적용된다.
도 9 에서의 채널 1 내지 채널 8 에 대해 도시된 파형들은 DBI DC 인코딩의 이용에 대응한다. 특히, DBI DC 인코딩은 도 5 의 처음 4 개의 사이클들의 각각에 대해 각각의 버스 파티션에 선택적으로 적용된다. 여기서, 버스 파티셔닝들의 이용은 도 8 의 종래의 DBI DC 구현보다 보다 적은 "1들" (이러한 예에서 하이 신호 레벨) 을 초래한다는 것을 알 수도 있다. 구체적으로, 도 8 에서, 9 개의 "1들" 이 있는데 반해, 도 9 에서는, 7 개의 "1들" 이 있다. 따라서, 도 9 의 구현은 동일한 수의 비트 라인들 (또는 디바이스 핀들) 을 이용하면서 일반적으로 도 8 의 구현보다 좋은 성능을 제공한다.
다중-레벨 인코딩 표시자 심볼은 다양한 방식들로 구현될 수 있다. 예를 들어, 다중-레벨 인코딩 표시자 심볼은 다수의 전압 레벨들, 다수의 전류 레벨들, 다수의 위상 레벨들 (예를 들어, 위상 쉬프트들), 또는 이의 조합에 의해 정의될 수도 있다. 도 10 내지 도 15 는 다중-레벨 인코딩 표시자 심볼을 생성하기 위해 이용될 수 있는 회로들의 여러 예들을 도시한다.
도 10 은 상이한 전압 레벨들에서 인코딩 표시자 심볼을 생성할 수 있는 다중-레벨 전압 구동기 (1002) 의 간략화된 도면이다. 2 비트 (MSB 및 LSB) 입력 제어 신호 (1004) 가 전압 구동기 (1002) 의 출력 (1006) 을 제어한다. 구체적으로, 입력 값 00 은 레벨 0 출력 전압 (예를 들어, 0 볼트) 을 초래하고, 입력 값 01 은 레벨 1 출력 전압을 초래하고, 입력 값 10 은 레벨 2 출력 전압을 초래하고, 입력 값 11 은 레벨 3 출력 전압 (예를 들어, 최대 진폭) 을 초래한다. 상보적 다중-전압 레벨 수신기 회로 (미도시) 가 다중-레벨 인코딩 표시자 심볼을 수신하는데 이용될 수 있다.
도 11 은 상이한 전압 레벨들에서 인코딩 표시자 심볼을 생성할 수 있는 다중-레벨 전압 구동기 (1102) 의 간략화된 도면이다. (2 개의 스위치들 (1104) 로 나타내어진) 2 비트 입력 제어가 공급 전류들 (IMSB 및 ILSB) 이 종단부 저항 (RTerm) 으로 나타내어진 출력에 커플링되는지 여부를 제어한다. 이러한 예에서, IMSB 는 크기가 ILSB 의 두 배이다. 상보적 다중-전류 레벨 수신기 회로 (미도시) 가 다중-레벨 인코딩 표시자 심볼을 수신하는데 이용될 수 있다.
도 12 는 전류 구동기 (1102) 에 의해 생성될 수 있는 4 개의 전류 레벨들 (1202) 을 도시한다. 구체적으로, 입력 값 00 은 (OX 전력에 대응하는) 레벨 0 출력 전류를 초래하고, 입력 값 01 은 (1X 전력에 대응하는) 레벨 1 출력 전류를 초래하고, 입력 값 10 은 (4X 전력에 대응하는) 레벨 2 출력 전류를 초래하고, 입력 값 11 은 (9X 전력에 대응하는) 레벨 3 출력 전류를 초래한다.
도 13 은 도 12 의 전류 레벨들 (1202) 에 맵핑할 수 있는 4 개의 DBI 값들 (1302) 을 도시한다. 구체적으로, 레벨 0 출력 전류는 제 1 버스 파티션 (지정된 파티션 1) 및 제 2 버스 파티션 (지정된 파티션 2) 중 어느 것도 인코딩되지 (DBI 의 경우에 "인버팅되지") 않았다는 것을 표시한다. 레벨 1 출력 전류는 오직 제 1 버스 파티션만이 인코딩되었다는 것을 표시한다. 레벨 2 출력 전류는 오직 제 2 버스 파티션만이 인코딩되었다는 것을 표시한다. 레벨 3 출력 전류는 제 1 버스 파티션 및 제 2 버스 파티션 양자 모두가 인코딩되었다는 것을 표시한다.
도 14 는 상이한 위상 쉬프트들에서 인코딩 표시자 심볼을 생성할 수 있는 다중-상태 (또는 다중-레벨) 위상 쉬프터 (1402) 의 간략화된 블록도이다. 2 비트 (MSB 및 LSB) 입력 제어 신호 (1404) 가 위상 쉬프터 (1402) 의 출력 (1406) 을 제어한다. 구체적으로, 입력 값 00 은 상태 0 (레벨 0) 위상 쉬프트 (예를 들어, 위상 쉬프트 없음) 를 초래하고, 입력 값 01 은 상태 1 (레벨 1) 위상 쉬프트 (예를 들어, 90 도 위상 쉬프트) 를 초래하고, 입력 값 10 은 상태 2 (레벨 2) 위상 쉬프트 (예를 들어, 180 도 위상 쉬프트) 를 초래하고, 입력 값 11 은 상태 3 (레벨 3) 위상 쉬프트 (예를 들어, 270 도 위상 쉬프트) 를 초래한다. 상보적 다중-위상 레벨 수신기 회로 (미도시) 가 다중-레벨 인코딩 표시자 심볼을 수신하는데 이용될 수 있다.
도 15 는 상이한 위상 쉬프트들 및 진폭들에서 인코딩 표시자 심볼을 생성할 수 있는 다중-상태 (또는 다중-레벨) 위상 및 진폭 쉬프터 (1502) 의 간략화된 블록도이다. 2 비트 (MSB 및 LSB) 입력 제어 신호 (1504) 가 위상 및 진폭 쉬프터 (1502) 의 출력 (1506) 을 제어한다. 구체적으로, 입력 값 00 은 상태 0 (레벨 0) 위상 쉬프트 (예를 들어, 위상 쉬프트 없음) 및 진폭 (예를 들어, 낮은 진폭 값) 을 초래하고, 입력 값 01 은 상태 1 (레벨 1) 위상 쉬프트 (예를 들어, 180 도 위상 쉬프트) 및 진폭 (예를 들어, 낮은 진폭 값) 을 초래하고, 입력 값 10 은 상태 2 (레벨 2) 위상 쉬프트 (예를 들어, 위상 쉬프트 없음) 및 진폭 (예를 들어, 높은 진폭 값) 을 초래하고, 입력 값 11 은 상태 3 (레벨 3) 위상 쉬프트 (예를 들어, 180 도 위상 쉬프트) 및 진폭 (예를 들어, 높은 진폭 값) 을 초래한다. 상보적 다중-상태 수신기 회로 (미도시) 가 다중-레벨 인코딩 표시자 심볼을 수신하는데 이용될 수 있다. (2 개의 위상들 및 2 개의 진폭들 이외의) 위상들 및 진폭들의 상이한 조합들이 상이한 구현들에서 이용될 수도 있다는 것이 이해되어야 한다.
위에서 언급된 바와 같이, 일부 구현들에서, 데이터 버스에 적용된 파티셔닝은 지정된 시스템 컴포넌트에 의해 선택된다 (예를 들어, 동적으로 선택된다). 도 16 은 버스 파티셔닝 선택 기능성을 포함하는 송신기 (1602) 의 일 예를 도시한다. 본원에서 알려준 버스 파티셔닝 선택 기능성은 이러한 예로 제한되지 않는다는 것이 이해되어야 한다. 오히려, 다른 구현들에서, 버스 파티셔닝 선택 기능성은 다른 컴포넌트들 (예를 들어, 수신기 (1604) 또는 일부 다른 컴포넌트) 에 구현될 수도 있다.
송신기 (1602) 는 입력 데이터 버스 (1606) 를 통해 데이터 (데이터 입력) 를 수신하며, 그 결과 선택적 인코더 (1608) 는 데이터 버스 (1610) 의 상이한 버스 파티션들을 통해 송신될 데이터의 상이한 서브세트들에 인코딩을 선택적으로 적용한다. 이러한 데이터의 수신 시에, 수신기 (1604) 의 선택적 디코더 (1612) 는 출력 데이터 버스 (1614) 에서 출력 데이터 (데이터 출력 (DATA OUT)) 를 제공하기 위해 본원에서 알려준 바와 같이 연관된 인코딩 표시자 심볼 (미도시) 에 기초하여 데이터 버스 (1610) 의 상이한 버스 파티션들을 통해 수신된 데이터의 상이한 서브세트들에 디코딩을 선택적으로 적용한다.
송신기 (1602) 는 데이터 버스 (1610) 에서 사용될 특정 파티셔닝 포맷을 선택하도록 구성되는 파티셔닝 선택기 (1616) 를 포함한다. 예를 들어, 파티셔닝 선택기 (1616) 는 이용될 버스 파티션들의 수, 뿐만 아니라 각각의 버스 파티션에 대한 비트 라인들의 수를 선택할 수도 있다. 위에서 언급된 바와 같이, 상이한 버스 파티션들에서의 비트 라인들의 수는 상이할 수도 있다. 일부 구현들에서, 파티셔닝 선택기 (1616) 는 지원된 파티셔닝 포맷들의 세트로부터 파티셔닝 포맷을 선택한다.
특정 버스 파티셔닝의 선택은 다양한 팩터들에 기초할 수도 있다. 예를 들어, 버스 파티셔닝은 신호 라인 (트레이스) 라우팅 제약들, 라인-간 간섭 고려사항들 등에 의해 영향을 받을 수도 있다. 또한, 상이한 시스템 구성들에 대해, 상이한 시간의 기간들에 대해, 또는 다른 특정 조건들에 대해 상이한 버스 파티셔닝이 사용될 수도 있다. 또한, 도 16 에서 데이터 라인 (1620) 으로 표시된 바와 같이, 일부 구현들에서, 이용될 특정 버스 파티셔닝은 파티셔닝된 데이터 버스를 통해서 전송될 데이터에 기초할 수도 있다. 예를 들어, 파티셔닝은 전송되고 있는 데이터의 유형, 데이터 레이트, 또는 일부 다른 데이터-관련 팩터에 의존할 수도 있다. 주어진 파티션의 신호 라인들이 함께 (즉, 서로 바로 다음에) 라우팅될 필요가 없다는 것이 이해되어야 한다. 예를 들어, 홀수 번호의 신호 라인들이 하나의 파티션에 할당될 수도 있고, 짝수 번호의 신호 라인들이 다른 파티션에 할당될 수 있다. 그러한 구성은 DBI-AC 환경들에서 특히 유리할 수도 있는데, 홀수/짝수 파티셔닝이 홀수 짝수 페이즈 크로스토크를 감소시킬 수 있기 때문이다.
파티셔닝 선택기 (1616) 가 버스 파티셔닝을 선택하면, 파티셔닝 선택기 (1616) 는 선택적 인코더 (1608) 및 통신 컴포넌트 (1622) (예를 들어, 버스 구동기 회로) 에 선택된 파티셔닝의 표시를 전송한다. 통신 컴포넌트 (1622) 가 그 다음에 수신기 (1604) 의 대응하는 통신 컴포넌트 (1626) (예를 들어, 버스 수신기 회로) 에 적절한 신호 경로 (1624) (예를 들어, 제어 버스) 를 통해 파티셔닝 표시를 전송한다. 통신 컴포넌트 (1626) 가, 차례로, 적절한 신호 경로 (1628) 를 통해 선택적 디코더 (1612) 에 파티셔닝 표시를 전송한다. 이러한 방식으로, 데이터 버스 (1610) 에서 이용될 파티셔닝이 선택적 인코더 (1608) 및 선택적 디코더 (1612) 양자 모두에 통신된다.
일부 구현들에서, 데이터 버스에서 사용된 인코딩은 지정된 시스템 컴포넌트에 의해 선택된다 (예를 들어, 동적으로 선택된다). 도 17 은 인코딩 선택 기능성을 포함하는 송신기 (1702) 의 일 예를 도시한다. 본원에서 알려준 인코딩 선택 기능성은 이러한 예로 제한되지 않는다는 것이 이해되어야 한다. 오히려, 다른 구현들에서, 인코딩 선택 기능성은 다른 컴포넌트들 (예를 들어, 수신기 (1704) 또는 일부 다른 컴포넌트) 에 구현될 수도 있다.
송신기 (1702) 는 입력 데이터 버스 (1706) 를 통해 입력 데이터 (데이터 입력) 를 수신하며, 그 결과 선택적 인코더 (1708) 는 데이터 버스 (1710) 의 상이한 버스 파티션들을 통해 송신될 데이터의 상이한 서브세트들에 인코딩을 선택적으로 적용한다. 이러한 데이터의 수신 시에, 수신기 (1704) 의 선택적 디코더 (1712) 는 출력 데이터 버스 (1714) 에서 출력 데이터 (데이터 출력) 를 제공하기 위해 본원에서 알려준 바와 같이 연관된 인코딩 표시자 심볼 (미도시) 에 기초하여 데이터 버스 (1710) 의 상이한 버스 파티션들을 통해 수신된 데이터의 상이한 서브세트들에 디코딩을 선택적으로 적용한다.
송신기 (1702) 는 데이터 버스 (1710) 에서 사용될 특정 인코딩을 선택하도록 구성되는 인코딩 선택기 (1716) 를 포함한다. 예를 들어, 인코딩 선택기 (1716) 는 지원된 인코딩 유형들 (예를 들어, DBI AC, DBI DC 등) 의 세트로부터 일 유형의 인코딩을 선택할 수도 있다. 일부 구현들에서, 인코딩 선택기 (1716) 는 전체 데이터 버스 (1710) (즉, 모든 버스 파티션들) 에 적용될 일 유형의 인코딩을 선택한다. 일부 구현들에서, 인코딩 선택기 (1716) 는 상이한 버스 파티션들에 대해 상이한 유형의 인코딩을 선택할 수도 있다.
특정 인코딩의 선택은 다양한 팩터들에 기초할 수도 있다. 예를 들어, 상이한 유형의 채널 조건들, 상이한 동작 조건들, 상이한 시스템 구성들, 상이한 시간의 기간들, 또는 다른 특정 조건들에 대해 상이한 유형의 인코딩이 사용될 수도 있다. 도 17 에서 데이터 라인 (1720) 으로 표시된 바와 같이, 일부 구현들에서, 이용될 특정 인코딩은 파티셔닝된 데이터 버스 (1710) 를 통해서 전송될 데이터에 기초할 수도 있다. 예를 들어, 선택된 인코딩의 유형은 전송되는 데이터의 유형, 데이터 레이트, 또는 일부 다른 데이터-관련 팩터에 의존할 수도 있다.
인코딩 선택기 (1716) 가 인코딩을 선택하면, 인코딩 선택기 (1716) 는 선택적 인코더 (1708) 및 통신 컴포넌트 (1722) (예를 들어, 버스 구동기 회로) 에 선택된 인코딩의 표시를 전송한다. 통신 컴포넌트 (1722) 가 그 다음에 수신기 (1704) 의 대응하는 통신 컴포넌트 (1726) (예를 들어, 버스 수신기 회로) 에 적절한 신호 경로 (1724) (예를 들어, 제어 버스) 를 통해 인코딩 표시를 전송한다. 통신 컴포넌트 (1726) 가, 차례로, 적절한 신호 경로 (1728) 를 통해 선택적 디코더 (1712) 에 인코딩 표시를 전송한다. 이러한 방식으로, 데이터 버스 (1710) 에서 이용될 인코딩이 선택적 인코더 (1708) 및 선택적 디코더 (1712) 양자 모두에 통신된다.
위에서 언급된 바와 같이, 일부 구현들에서 (예를 들어, 인코딩 표시자 심볼이 4 개를 초과하는 레벨들을 나타내는 경우), 인코딩 표시자 심볼의 "레벨들" 중 하나 이상은 대응하는 버스 파티션에 적용될 인코딩의 유형을 표시할 수도 있다. 따라서, 이러한 구현들에서, 신호 경로 (1724) 는 DBI 플래그 비트 라인 (또는 핀) 또는 다른 비슷한 인코딩 표시자 비트 라인을 포함할 수도 있다.
다중-레벨 인코딩 표시자 심볼을 포함하는 데이터 버스는 다양한 방식들로 구현될 수 있다. 예를 들어, 데이터 버스는 인쇄 회로 기판 내에, 집적 회로 다이 내에, 또는 일부 다른 적합한 구조 내에 구현될 수도 있다. 도 18 및 도 19 는 인쇄 회로 기판 및 집적 회로 다이 구현들의 예들을 도시한다.
도 18 에서, 인쇄 회로 기판 (1802) 은 인쇄 회로 기판 (1802) 의 하나 이상의 레이어들 상에 배치된 (트레이스들이라고도 불리는) 다수의 와이어들 (1804) 로 구현된 데이터 버스를 포함한다. 이러한 예에서, 데이터 버스 와이어들 (1804) 은 제 1 집적 회로 (1810) 및 제 2 집적 회로 (1812) 의 콘택들이 접속되는 패드들 (예를 들어, 제 1 패드 (1806) 및 제 2 패드 (1808)) 로부터 라우팅된다. 데이터 버스의 와이어들은 다른 구현들에서 상이한 방식으로 라우팅될 수도 있다는 것이 이해되어야 한다. 예를 들어, 일부 구현들에서, 데이터 버스는 회로와 오프-보드 커넥터 (미도시) 사이에서 라우팅된다.
도 19 에서, 집적 회로 다이 (1902) 는 다이 (1902) 의 하나 이상의 레이어들에 배치된 (트레이스들이라고도 불리는) 다수의 와이어들 (1904) 로 구현된 데이터 버스를 포함한다. 이러한 예에서, 데이터 버스 와이어들 (1904) 은 제 1 회로 (1910) 와 제 2 회로 (1912) 가 접속하는 상호접속부들 (예를 들어, 제 1 상호접속부 (1906) 및 제 2 상호접속부 (1908)) 사이에서 라우팅된다. 데이터 버스의 와이어들은 다른 구현들에서 상이한 방식으로 라우팅될 수도 있다는 것이 이해되어야 한다. 예를 들어, 일부 구현들에서, 데이터 버스는 외부 회로 (미도시) 로의 접속을 위해 다이 (1902) 의 내부 회로와 다이의 본드 패드 사이에서 라우팅된다.
도 20 으로 넘어가면, 본 개시물의 적어도 하나의 예에 따른, 도 1 로부터의 제 1 또는 제 2 전자 디바이스 (102 또는 104) 와 같은, 장치 (2000) 의 선택적 컴포넌트들을 도시하는 블록도가 도시된다. 장치 (2000) 의 송신기 (2002) 는 데이터 버스 (2006) 의 복수의 채널들을 통해서 데이터 비트들을 송신하도록 적응된 인코더 (2004) 를 포함한다.
인코더 (2004) 는 일반적으로 데이터를 인코딩하고 연관된 인코딩 표시자 심볼을 생성하도록 적응된 회로부 및/또는 프로그래밍을 포함한다. 적어도 하나의 예에 따르면, 인코더 (2004) 는 데이터 버스 인터페이스 (2008) 에 의해 데이터 버스 (2006) 의 복수의 데이터 채널들에 커플링될 수도 있고, 데이터 버스 인터페이스 (2008) 및 저장 매체 (2012) 와 전기적 통신으로 커플링되거나 위치된 프로세싱 회로 (2010) 를 포함할 수도 있다. 데이터 버스 인터페이스 (2008) 는, 예를 들어, 신호 구동기 회로들, 신호 수신기 회로들, 증폭기들, 신호 필터들, 신호 버퍼들, 또는 시그널링 버스 혹은 다른 유형의 시그널링 매체들과 인터페이싱하는데 이용되는 다른 회로부 중 하나 이상을 포함할 수도 있다.
프로세싱 회로 (2010) 는 데이터를 획득, 프로세싱, 및/또는 전송하며, 데이터 액세스 및 저장을 제어하며, 커맨드를 발행하고, 다른 원하는 동작들을 제어하도록 배열된다. 프로세싱 회로 (2010) 는 적어도 일 예에서 적절한 매체에 의해 제공된 원하는 프로그래밍을 구현하도록 적응된 회로를 포함할 수도 있다. 일부 예들에서, 프로세싱 회로 (2010) 는, 프로그래밍을 구현하거나 구현하지 않으면서, 원하는 기능을 수행하도록 적응된 회로부를 포함할 수도 있다. 예로서, 프로세싱 회로 (2010) 는 하나 이상의 프로세서들, 하나 이상의 제어기들, 및/또는 실행가능한 프로그래밍을 실행하고/실행하거나 원하는 기능을 수행하도록 구성된 다른 구조들로 구현될 수도 있다. 프로세싱 회로 (2010) 의 예들은, 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA) 혹은 다른 프로그램가능 로직 컴포넌트, 이산 게이트 혹은 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합을 포함할 수도 있다. 범용 프로세서는 마이크로프로세서, 뿐만 아니라 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신을 포함할 수도 있다. 프로세싱 회로 (2010) 는 또한 컴퓨팅 컴포넌트들의 조합, 예컨대, DSP 와 마이크로 프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, ASIC 와 마이크로프로세서, 또는 임의의 다른 개수의 다양한 구성들로서 구현될 수도 있다. 프로세싱 회로 (2010) 의 이러한 예들은 예증적인 것이며 본 개시물의 범위 내에서 다른 적절한 구성들이 또한 고려된다.
프로세싱 회로 (2010) 는 저장 매체 (2012) 에 저장될 수도 있는 프로그래밍의 실행을 포함한 프로세싱을 위해 적응된다. 본원에서 이용되는 바와 같은, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어, 또는 달리 지칭되더라도, 용어 "프로그래밍" 은, 제한 없이, 명령들, 명령 세트들, 데이터, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 하위프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 하위루틴들, 오브젝트들, 실행가능물들, 실행의 스레드들, 절차들, 기능들 등을 포함하는 것으로 광범위하게 해석될 수도 있다.
일부 예들에서, 프로세싱 회로 (2010) 는 인코딩 표시자 심볼을 생성하기 위한 모듈 (2014), 인코딩할지 여부를 결정하기 위한 모듈 (2016), 인코딩하기 위한 모듈 (2018), 파티셔닝을 선택하기 위한 모듈 (2020), 및 인코딩 유형 (2022) 을 선택하기 위한 모듈을 포함할 수도 있다. 인코딩 표시자 심볼을 생성하기 위한 모듈 (2014) 은 (예를 들어, 상이한 버스 파티션들과 연관된) 데이터 비트들의 상이한 그룹들이 인코딩될 것인지 여부에 관한 정보를 수집하고, 수집된 정보에 기초하여 값들을 생성하고, 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 역할을 하는 본원에서 알려준 다중-레벨 또는 비슷한 표시를 생성하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2012) 에 저장된 인코딩 표시자 심볼을 생성하기 위한 모듈 (2024)) 를 포함할 수도 있다. 인코딩할지 여부를 결정하기 위한 모듈 (2016) 은 (예를 들어, 상이한 버스 파티션들과 연관된) 데이터 비트들의 하나 이상의 그룹들을 수집하고, 인코딩하기 위한 필요성을 표시하는 기준이 충족되는지 여부를 결정하기 위해 데이터 비트들을 평가하고, 해당 평가의 표시를 생성하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2012) 에 저장된 인코딩할지 여부를 결정하기 위한 모듈 (2026)) 를 포함할 수도 있다. 인코딩하기 위한 모듈 (2018) 은 (예를 들어, 상이한 버스 파티션들과 연관된) 데이터 비트들의 하나 이상의 그룹들을 수집하고, 정의된 공식에 따라 데이터 비트들의 적어도 일부에 대한 새로운 값을 결정하기 위해 데이터 비트들을 평가하고, 새로운 값으로 데이터 비트들의 적어도 일부를 대체하고, 결과적인 데이터 비트들을 출력하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2012) 에 저장된 인코딩하기 위한 모듈 (2028)) 를 포함할 수도 있다. 또한 파티셔닝을 선택하기 위한 모듈 (2020) 은 파티션 선택을 위한 하나 이상의 기준을 습득하고, 하나 이상의 기준을 만족시키는 버스 파티셔닝을 식별하고, 식별된 버스 파티셔닝의 표시를 출력하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2012) 에 저장된 파티셔닝을 선택하기 위한 모듈 (2030)) 을 포함할 수도 있다. 또한, 인코딩 유형을 선택하기 위한 모듈 (2022) 은 인코딩의 유형의 선택을 위한 하나 이상의 기준을 습득하고 (예를 들어, 입력 데이터 비트들을 수집하고), 하나 이상의 기준을 충족시키는 인코딩의 유형을 식별하고, 식별된 인코딩의 유형의 표시를 출력하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2012) 에 저장된 인코딩 유형을 선택하기 위한 모듈 (2032)) 을 포함할 수도 있다.
저장 매체 (2012) 는 프로그래밍, 전자 데이터, 데이터베이스들, 또는 다른 디지털 정보를 저장하기 위한 하나 이상의 프로세서-판독가능 디바이스들을 나타낼 수도 있다. 저장 매체 (2012) 는 또한 프로그래밍을 실행하는 경우 프로세싱 회로 (2010) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 저장 매체 (2012) 는 휴대용 또는 고정식 저장 디바이스들, 광학 저장 디바이스들, 및 프로그래밍을 저장, 포함, 및/또는 전달할 수 있는 다양한 다른 매체들을 포함하여, 프로세싱 회로 (2010) 에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 한정이 아닌 예로서, 저장 매체 (2012) 는 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 저장 매체 (예를 들어, 컴팩트 디스크 (CD), 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, 카드, 스틱, 키 드라이브), 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 프로그램가능 ROM (PROM), 소거가능 PROM (EPROM), 전기적으로 소거가능 PROM (EEPROM), 레지스터, 착탈가능 디스크, 및/또는 정보를 저장하는 다른 매체들 뿐만 아니라 이들의 임의의 조합과 같은 프로세서-판독가능 저장 매체를 포함할 수도 있다. 따라서, 일부 구현들에서, 저장 매체는 비일시적 (예를 들어, 유형의) 저장 매체일 수도 있다.
저장 매체 (2012) 는, 프로세싱 회로 (2010) 가 저장 매체 (2012) 로부터 정보를 판독하고, 저장 매체로 정보를 저장할 수 있도록 프로세싱 회로 (2010) 에 커플링될 수도 있다. 즉, 저장 매체 (2012) 는 저장 매체 (2012) 가 프로세싱 회로 (2010) 에 내장된 예들, 및/또는 저장 매체 (2012) 가 프로세싱 회로 (2010) 와 별도인 예들을 포함하여, 저장 매체 (2012) 가 프로세싱 회로 (2010) 에 의해 적어도 액세스 가능하도록 프로세싱 회로 (2010) 에 커플링될 수 있다.
저장 매체 (2012) 에 저장된 프로그래밍은, 프로세싱 회로 (2010) 에 의한 실행 시, 프로세싱 회로 (2010) 로 하여금, 본원에 설명된 다양한 기능들 및/또는 프로세스 단계들 중 하나 이상의 기능들 및 프로세스 단계들을 수행하도록 한다. 예를 들어, 저장 매체 (2012) 는 인코딩 표시자 심볼을 생성하기 위한 모듈 (예를 들어, 동작들) (2024), 인코딩할지 여부를 결정하기 위한 모듈 (2026), 인코딩하기 위한 모듈 (2028), 파티셔닝을 선택하기 위한 모듈 (2030), 및 인코딩 유형을 선택하기 위한 모듈 (2032) 을 포함할 수도 있다. 따라서, 본 개시물의 하나 이상의 양태들에 따르면, 프로세싱 회로 (2010) 는 본원에서 설명된 장치들 (예를 들어, 제 1 전자 디바이스 (102) 또는 제 2 전자 디바이스 (104)) 중 임의의 것 또는 모든 것에 대한 프로세스들, 기능들, 단계들, 및/또는 루틴들 중 임의의 것 또는 모든 것을 (저장 매체 (2012) 와 함께) 수행하도록 적응된다. 본원에서 이용되는 바와 같이, 프로세싱 회로 (2010) 와 관련한 용어 "적응된" 은, 본원에 설명된 다양한 피쳐들에 따른 특정 프로세스, 기능, 단계, 및/또는 루틴을 (저장 매체 (2012) 와 함께) 수행하도록 구성된, 사용된, 구현된, 및/또는 프로그래밍된 것 중 하나 이상인 프로세싱 회로 (2010) 를 지칭할 수도 있다.
도 21 은 인코딩 표시자 심볼을 생성하는 것과 함께 수행될 수도 있는 동작들 (2100) 의 일 예를 도시한다. 예를 들어, 도 21 의 동작들 (2100) 은 도 1 의 송신기 (108), 도 2 의 인코더 (202), 도 20 의 장치 (2000), 또는 일부 다른 적합한 엔티티에 의해 수행될 수도 있다.
블록 2102 에서, 인코딩 표시자 심볼이 생성된다. 이러한 심볼은 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시한다. 일부 양태들에서, 인코딩은 데이터 버스 인버전을 포함할 수도 있다. 일부 양태들에서, 데이터 버스는 병렬 버스일 수도 있다.
일부 양태들에서, 인코딩 표시자 심볼은 다중-레벨 신호일 수도 있다.
여기서, 다중-레벨 신호의 각각의 레벨은 데이터 버스의 각각의 파티션에 대해, 파티션에 인코딩이 적용되는지 여부를 나타내는 적어도 2 비트의 정보를 나타낼 수도 있다. 일부 양태들에서, 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 또는 다수의 위상들 중 적어도 하나에 의해 정의될 수도 있다.
블록 2104 에서, 인코딩 표시자 심볼이 송신된다. 예를 들어, 인코딩 디바이스는 디코딩 디바이스에 인코딩 표시자 심볼을 송신할 수도 있다. 일부 양태들에서, 인코딩 표시자 심볼의 송신은 전용 버스 라인을 통해 인코딩 표시자 심볼을 송신하는 것을 포함할 수도 있다.
도 22 는 데이터를 선택적으로 인코딩하고 대응하는 인코딩 표시자 심볼을 생성하는 것과 함께 수행될 수도 있는 추가적인 동작들 (2200) 의 일 예를 도시한다. 도 22 의 동작들 (2200) 은 도 1 의 송신기 (108), 도 2 의 인코더 (202), 도 20 의 장치 (2000), 또는 일부 다른 적합한 엔티티에 의해 수행될 수 있다.
옵션적 블록 2202 에서, 데이터 버스에서 사용될 데이터 파티셔닝이 선택될 수도 있다. 이러한 동작들은, 예를 들어, 도 3 의 블록 302 와 함께 위에서 논의된 대응하는 동작들에 대응할 수도 있다. 일부 양태들에서, 블록 2202 의 동작들은 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 데이터 버스의 파티셔닝을 선택하는 것을 포함할 수도 있다.
옵션적 블록 2204 에서, 버스 파티션들을 통해서 데이터에 적용될 인코딩의 유형이 선택될 수도 있다. 이러한 동작들은 또한, 예를 들어, 도 3 의 블록 302 와 함께 위에서 논의된 대응하는 동작들에 대응할 수도 있다. 일부 양태들에서, 블록 2202 의 동작들은 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상이한 파티션들에 적용될 인코딩의 유형을 선택하는 것을 포함할 수도 있다.
블록 2206 에서, 하나 이상의 데이터 버스 파티션들을 통해서 송신될 데이터의 하나 이상의 서브세트들을 인코딩할지 여부에 관한 결정이 이루어진다. 예를 들어, 데이터 버스의 각각의 파티션에 대해, 파티션을 통해서 전송될 데이터의 서브세트를 인코딩할지 여부에 관한 결정이 이루어질 수도 있다. 일부 양태들에서, 데이터의 서브세트를 인코딩할지 여부의 결정은 데이터의 서브세트의 인코딩이 데이터의 서브세트의 송신과 연관된 전력 소비를 감소시키거나 데이터의 서브세트 송신과 연관된 간섭을 감소시킬지 여부를 결정하는 것을 포함할 수도 있다.
블록 2208 에서, 인코딩을 요구하는 것으로 블록 2206 에서 식별된 데이터의 서브세트들 중 임의의 것에 인코딩이 적용된다. 인코딩을 요구하는 것으로 블록 2206 에서 식별되지 않은 데이터의 임의의 서브세트들은 인코딩되지 않는다.
블록 2210 에서, 인코딩 표시자 심볼이 생성된다. 이러한 동작들은 일부 양태들에서 위에서 논의된 블록 (2102) 의 동작들에 대응한다. 일부 양태들에서, 인코딩 표시자 심볼의 생성은 대응하는 데이터의 서브세트가 인코딩되는 임의의 파티션들을 표시하는 값을 선택하는 것을 포함할 수도 있다.
블록 2212 에서, 데이터는 데이터 버스 파티션들을 통해서 송신된다. 일부 구현들에서, 이는 버스 사이클 중에 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 송신하는 것을 수반할 수도 있다.
블록 2214 에서, 인코딩 표시자 심볼이 송신된다. 이러한 동작들은 일부 양태들에서 위에서 논의된 블록 2104 의 동작들에 대응한다. 블록 2212 가 버스 사이클 중에 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 송신하는 것을 수반하는 구현들에서, 블록 2214 의 동작들은 버스 사이클 중에 단일 신호 핀을 통해 인코딩 표시자 심볼을 송신하는 것을 포함할 수도 있다.
도 23 으로 넘어가면, 본 개시물의 적어도 하나의 예에 따른, 도 1 로부터의 제 1 또는 제 2 전자 디바이스 (102 또는 104) 와 같은, 장치 (2300) 의 선택적 컴포넌트들을 도시하는 블록도가 도시된다. 장치 (2300) 의 수신기 (2302) 는 데이터 버스 (2306) 의 복수의 채널들을 통해서 송신된 인코딩된 데이터 비트들을 수신하도록 적응된 디코더 (2304) 를 포함한다.
디코더 (2304) 는 일반적으로 연관된 인코딩 표시자 심볼에 기초하여 데이터를 디코딩하도록 적응된 회로부 및/또는 프로그래밍을 포함한다. 즉, 디코더는 인코더 (2004) 에 의해 인코더 및 위에서 설명된 인코딩 기법들 중 임의의 것에 의해 수행된 인코딩을 원상태로 돌리도록 적응된다. 적어도 하나의 예에 따르면, 디코더 (2304) 는 데이터 버스 인터페이스 (2308) 에 의해 데이터 버스 (2306) 의 복수의 데이터 채널들에 커플링될 수도 있고, 데이터 버스 인터페이스 (2308) 및 저장 매체 (2312) 와 전기적 통신으로 커플링되거나 위치된 프로세싱 회로 (2310) 를 포함할 수도 있다. 데이터 버스 인터페이스 (2308) 는, 예를 들어, 신호 구동기 회로들, 신호 수신기 회로들, 증폭기들, 신호 필터들, 신호 버퍼들, 또는 시그널링 버스 혹은 다른 유형의 시그널링 매체들과 인터페이싱하는데 이용되는 다른 회로부 중 하나 이상을 포함할 수도 있다.
프로세싱 회로 (2310) 는 데이터를 획득, 프로세싱, 및/또는 전송하며, 데이터 액세스 및 저장을 제어하며, 커맨드를 발행하고, 다른 원하는 동작들을 제어하도록 배열된다. 프로세싱 회로 (2310) 는 원하는 기능을 수행하고/수행하거나 적절한 매체들에 의해 제공된 원하는 프로그래밍을 구현하도록 구성된 회로부를 포함할 수도 있다. 프로세싱 회로 (2310) 는 위에서 설명된 프로세싱 회로 (2010) 의 예들 중 임의의 것에 따라 구현되고/구현되거나 구성될 수도 있다.
프로세싱 회로 (2310) 는 디코딩하기 위한 모듈 (2316) 및 데이터가 인코딩되는지 여부를 결정하기 위한 모듈 (2318) 을 포함할 수도 있다. 디코딩하기 위한 모듈 (2316) 은 (예를 들어, 상이한 버스 파티션들과 연관된) 데이터 비트들의 하나 이상의 그룹들을 수집하고, 정의된 공식에 따라 데이터 비트들의 적어도 일부에 대한 새로운 값을 결정하기 위해 데이터 비트들을 평가하고, 새로운 값으로 데이터 비트들의 적어도 일부를 대체하고, 결과적인 데이터 비트들을 출력하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2312) 에 저장된 디코딩하기 위한 모듈 (2320)) 을 포함할 수도 있다. 또한, 데이터가 인코딩되는지 여부를 결정하기 위한 모듈 (2318) 은 (예를 들어, 상이한 버스 파티션들과 연관된) 인코딩 표시자 심볼을 수집하고, 인코딩 표시자 심볼을 평가하여 하나 이상의 데이터 비트들이 인코딩되었는지 여부를 결정하고, 해당 평가의 표시를 생성하도록 적응된 회로부 및/또는 프로그래밍 (예를 들어, 저장 매체 (2312) 에 저장된 데이터가 인코딩되는지 여부를 결정하기 위한 모듈 (2322)) 을 포함할 수도 있다.
저장 매체 (2312) 는 프로세서 실행가능 코드 또는 명령들 (예를 들어, 소프트웨어, 펌웨어) 과 같은 프로그래밍, 전자 데이터, 데이터베이스들, 또는 다른 디지털 정보를 저장하기 위한 하나 이상의 프로세서-판독가능 디바이스들을 나타낼 수도 있다. 저장 매체 (2312) 는 위에서 설명된 저장 매체 (2012) 와 유사한 방식으로 구성 및/또는 구현될 수도 있다.
저장 매체 (2312) 는, 프로세싱 회로 (2310) 가 저장 매체 (2312) 로부터 정보를 판독하고, 저장 매체로 정보를 저장할 수 있도록 프로세싱 회로 (2310) 에 커플링될 수도 있다. 즉, 저장 매체 (2312) 는 저장 매체 (2312) 가 프로세싱 회로 (2310) 에 내장된 예들, 및/또는 저장 매체 (2312) 가 프로세싱 회로 (2310) 와 별도인 예들을 포함하여, 저장 매체 (2312) 가 프로세싱 회로 (2310) 에 의해 적어도 액세스 가능하도록 프로세싱 회로 (2310) 에 커플링될 수 있다.
저장 매체 (2012) 와 유사하게, 저장 매체 (2312) 는 그 위에 저장된 프로그래밍을 포함한다. 저장 매체 (2312) 에 의해 저장된 프로그래밍은, 프로세싱 회로 (2314) 에 의해 실행되는 경우, 프로세싱 회로 (2314) 로 하여금 본원에서 설명된 다양한 디코딩 기능들 및/또는 프로세스 단계들 중 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (2312) 는 디코딩하기 위한 모듈 (2320) (또는 동작들) 및 데이터가 인코딩되는지 여부를 결정하기 위한 모듈 (2322) 을 포함할 수도 있다. 따라서, 본 개시물의 하나 이상의 양태들에 따르면, 프로세싱 회로 (2310) 는 본원에서 설명된 전자 디바이스들 (예를 들어, 전자 디바이스들 (102 또는 104)) 중 임의의 것 또는 모든 것에 대한 디코딩 프로세스들, 기능들, 단계들, 및/또는 루틴들 중 임의의 것 또는 모든 것을 (저장 매체 (2312) 와 함께) 수행하도록 적응된다. 본원에서 이용되는 바와 같이, 프로세싱 회로 (2310) 와 관련한 용어 "적응된" 은, 본원에 설명된 다양한 피쳐들에 따른 특정 프로세스, 기능, 단계, 및/또는 루틴을 (저장 매체 (2312) 와 함께) 수행하도록 구성된, 사용된, 구현된, 및/또는 프로그래밍된 것 중 하나 이상인 프로세싱 회로 (2310) 를 지칭할 수도 있다.
도 24 는 연관된 인코딩 표시자 심볼에 따라 데이터를 디코딩하는 것과 함께 수행될 수도 있는 동작들 (2400) 의 예를 도시한다. 따라서, 이러한 동작들은 도 21 및 도 22 에서 송신된 데이터 및 인코딩 표시자 심볼을 수신하는 장치에 대응할 수도 있다. 도 24 의 동작들 (2400) 은 도 1 의 수신기 (112), 도 2 의 디코더 (204), 도 23 의 장치 (2300), 또는 일부 다른 적합한 엔티티에 의해 수행될 수 있다.
블록 2402 에서, 데이터는 데이터 버스에 의해 수신된다. 일부 양태들에서, 데이터 버스는 병렬 버스일 수도 있다. 일부 양태들에서, 데이터의 수신은 버스 사이클 중에 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 수신하는 것을 포함할 수도 있다.
블록 2104 에서, 인코딩 표시자 심볼이 수신된다. 이러한 심볼은 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시한다. 일부 양태들에서, 인코딩 표시자 심볼의 수신은 전용 버스 라인을 통해서 인코딩 표시자 심볼을 수신하는 것을 포함할 수도 있다. 블록 2402 에서 데이터의 수신이 버스 사이클 중에 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 수신하는 것을 수반하는 일부 구현들에서, 블록 2404 의 동작들은 버스 사이클 중에 단일 신호 핀을 통해 인코딩 표시자 심볼을 수신하는 것을 포함할 수도 있다. 일부 양태들에서, 인코딩은 데이터 버스 인버전을 포함할 수도 있다.
일부 양태들에서, 인코딩 표시자 심볼은 다중-레벨 신호일 수도 있다.
여기서, 다중-레벨 신호의 각각의 레벨은 데이터 버스의 각각의 파티션에 대해, 파티션에 인코딩이 적용되는지 여부를 나타내는 적어도 2 비트의 정보를 나타낼 수도 있다. 일부 양태들에서, 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 또는 다수의 위상들 중 적어도 하나에 의해 정의될 수도 있다.
블록 2406 에서, 블록 2402 에서 수신된 데이터는 블록 2404 에서 수신된 인코딩 표시자 심볼에 기초하여 디코딩된다. 예를 들어, 데이터가 인코딩된다고 인코딩 표시자 심볼이 표시하면, 데이터가 디코딩된다.
도 25 는 연관된 인코딩 표시자 심볼에 따라 데이터를 디코딩하는 것과 함께 수행될 수도 있는 추가적인 동작들 (2500) 의 예를 도시한다. 다시, 이러한 동작들은 도 21 및 도 22 에서 송신된 데이터 및 인코딩 표시자 심볼을 수신하는 장치에 대응할 수도 있다. 도 25 의 동작들 (2500) 은 도 1 의 수신기 (112), 도 2 의 디코더 (204), 도 23 의 장치 (2300), 또는 일부 다른 적합한 엔티티에 의해 수행될 수 있다.
블록 2502 에서, 데이터는 파티셔닝된 데이터 버스를 통해 수신된다. 이러한 동작들은 일부 양태들에서 위에서 논의된 블록 (2402) 의 동작들에 대응한다. 위에서 표시된 바와 같이, 데이터 버스는 병렬 버스일 수도 있다.
블록 2504 에서, 인코딩 표시자 심볼이 수신된다. 이러한 심볼은 데이터 버스의 파티셔닝 및 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시한다. 이러한 동작들은 일부 양태들에서 위에서 논의된 블록 (2404) 의 동작들에 대응한다.
블록 2506 에서, 데이터 버스의 각각의 파티션에 대해, 파티션을 통해 수신된 데이터의 서브세트가 인코딩된지 여부에 관한 결정이 이루어진다. 본원에서 논의된 바와 같이, 이러한 결정은 인코딩 표시자 심볼에 기초할 수도 있다.
블록 2508 에서, 데이터 버스의 각각의 파티션에 대해, 데이터의 서브세트는 블록 2506 의 대응하는 결정에 따라 디코딩된다. 예를 들어, 데이터의 서브세트가 인코딩되었다고 인코딩 표시자 심볼이 표시하면 데이터의 서브세트가 디코딩된다.
데이터 비트들의 그룹의 디코딩은 데이터 비트들의 원래의 그룹이 인코딩되었던 방식에 의존할 것이라고 당업자들은 인식할 것이다. 일반적으로, 디코딩 동작은 인코딩 동작에 대한 역 (또는 상보적) 동작들을 수행할 수도 있다.
도면들에 예시된 컴포넌트들, 단계들, 피쳐들, 및/또는 기능들 중 하나 이상은 단일 컴포넌트, 단계, 피쳐, 또는 기능으로 재배열 및/또는 조합되거나, 또는 몇몇 컴포넌트들, 단계들, 또는 기능들로 구현될 수도 있다. 추가적인 엘리먼트들, 컴포넌트들, 단계들, 및/또는 기능들이 또한 여기에 개시된 신규한 피쳐들로부터 벗어남이 없이 추가될 수도 있다. 도면들에 도시된 장치들, 디바이스들, 및/또는 컴포넌트들은 도면들에 설명된 방법들, 피쳐들, 또는 단계들 중 하나 이상을 수행하도록 구성될 수도 있다. 본원에서 설명된 신규한 알고리즘들은 소프트웨어에서 효율적으로 구현될 수도 있고/있거나 하드웨어에 내장될 수도 있다.
개시된 방법들에서의 특정 순서 또는 계층적 단계들은 예시적인 프로세스들의 예시임을 이해해야 한다. 설계 선호도들에 기초하여, 방법들에서의 특정 순서 또는 계층적 단계들이 재정렬될 수도 있음이 이해된다. 수반하는 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제시하고, 본원에서 달리 구체적으로 명시되지 않는 한, 제시된 특정 순서 또는 계층으로 제한되는 것으로 의도되지 않는다. 추가적인 요소들, 컴포넌트들, 단계들, 및/또는 기능들이 또한 본 개시물로부터 벗어남이 없이 추가될 수도 있다.
본 개시물의 피쳐들이 소정의 구현들 및 도면들에 대해 논의되었을 수도 있으나, 본 개시물의 모든 구현들은 본원에 논의된 유리한 피쳐들 중 하나 이상을 포함할 수 있다. 다시 말해, 하나 이상의 구현들이 소정의 유리한 특징들을 갖는 것으로 논의될 수도 있으나, 이러한 특징들 중 하나 이상의 특징은 또한 본원에서 논의된 다양한 구현들에 따라 이용될 수도 있다. 유사한 방식으로, 예시적인 구현들이 디바이스, 시스템, 또는 방법 구현들로 본원에서 논의될 수도 있으나, 그러한 예시적인 구현들은 다양한 디바이스들, 시스템들, 및 방법들로 구현될 수도 있음이 이해되어야 한다.
또한, 적어도 일부 구현들은 플로차트, 플로도, 구조도, 또는 블록도로 도시되는 프로세스로서 설명되었음에 유의한다. 플로차트가 순차적인 프로세스로서 동작들을 설명할 수도 있지만, 동작들 중 대부분은 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재정렬될 수도 있다. 프로세스는 프로세스의 동작들이 완료되는 경우 종료된다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 기능에 대응하는 경우, 프로세스의 종료는 호 기능 또는 메인 기능으로의 기능의 복귀에 대응한다. 본원에서 설명된 여러 방법들은, 머신-판독가능, 컴퓨터-판독가능, 및/또는 프로세서-판독가능 저장 매체에 저장될 수도 있고, 하나 이상의 프로세서들, 머신들, 및/또는 디바이스들에 의해 실행될 수도 있는 프로그래밍 (예를 들어, 명령들 및/또는 데이터) 에 의해 부분적으로 또는 전적으로 구현될 수도 있다.
당업자라면, 본원에서 개시된 구현들과 연계하여 설명된 다양한 예증적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 하드웨어, 소프트웨어, 또는 이들의 임의의 조합으로서 구현될 수도 있음을 또한 알 수 있을 것이다. 이러한 상호교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다.
본 개시물 내에서, 단어 "예시적인" 은 "예, 예증, 또는 예시로서 기능하는" 을 의미하는데 이용된다. "예시적인" 것으로서 본원에서 설명된 임의의 구현 또는 양태는 본 개시물의 다른 양태들에 비해 반드시 바람직하거나 유리한 것으로서 해석되지는 않아야 한다. 마찬가지로, 용어 "양태들" 은 본 개시물의 모든 양태들이 논의된 피쳐, 이점, 또는 동작의 모드를 포함할 것을 요구하지 않는다. 용어 "커플링된" 은 2 개의 오브젝트들 사이의 직접 또는 간접 커플링을 지칭하기 위해 본원에서 이용된다. 예를 들어, 오브젝트 A 가 오브젝트 B 를 물리적으로 터치하고, 오브젝트 B 가 오브젝트 C 를 터치하면, 오브젝트 A 와 오브젝트 C 가 서로 직접적으로 물리적으로 터치하지 않을지라도, 오브젝트 A 와 오브젝트 C 는 여전히 서로 커플링된 것으로 고려될 수도 있다. 예를 들어, 제 1 다이가 결코 제 2 다이와 직접 물리적으로 접촉하지 않을지라도 제 1 다이는 패키지에서 제 2 다이에 커플링될 수도 있다. 용어들 "회로" 및 "회로부" 는 광범위하게 이용되고, 접속되고 구성되는 경우, 전자 회로들의 유형에 대한 제한 없이, 본 개시물에서 설명된 기능들의 수행을 가능하게 하는 전기 디바이스들 및 컨덕터들의 하드웨어 구현들, 뿐만 아니라, 프로세서에 의해 실행되는 경우, 본 개시물에서 설명된 기능들의 수행을 가능하게 하는 정보 및 명령들의 소프트웨어 구현들을 포함하고자 한다.
본원에서 이용되는 바와 같이, 용어 "결정하는 것" 은 매우 다양한 액션들을 망라한다. 예를 들어, "결정하는 것" 은 계산하는 것, 컴퓨팅하는 것, 프로세싱하는 것, 도출하는 것, 조사하는 것, 검색하는 것 (예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조에서 검색하는 것), 확인하는 것 등을 포함할 수도 있다. 또한, "결정하는 것" 은 수신하는 것 (예를 들어, 정보를 수신하는 것), 액세스하는 것 (예를 들어, 메모리 내 데이터에 액세스하는 것) 등을 포함할 수도 있다. 또한, "결정하는 것" 은 해결하는 것, 선택하는 것, 택하는 것, 확립하는 것 등을 포함할 수도 있다.
앞서의 설명은 본원에 설명된 다양한 양태들을 당업자들이 실행할 수 있도록 제공된다. 이들 양태들에 대한 다양한 수정예들이 당업자들에게 자명할 것이고, 본원에서 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 나타낸 양태들에 한정시키려고 의도된 것이 아니며, 전문용어 청구항들 (language claims) 에 부합하는 전체 범위를 부여하려는 것이며, 여기서, 엘리먼트에 대한 단수형 참조는 "하나 및 오직 하나" 로 구체적으로 달리 말하지 않는 한, "하나 및 오직 하나" 를 의미하기 보다는, "하나 이상" 을 의미하도록 의도된다. 달리 구체적으로 언급하지 않는 한, 용어 "일부 (some)" 는 하나 이상을 지칭한다. "아이템들의 리스트 중 적어도 하나" 를 지칭하는 구절은 단일 멤버들을 포함하여 그러한 아이템들의 임의의 조합을 지칭한다. 일 예로서, "a, b, 또는 c 중의 적어도 하나" 는 a, b, c, a 및 b, a 및 c, b 및 c, 및 a, b 및 c 를 포함하고자 한다. 당업자들에게 알려진 또는 나중에 알려질, 본 개시물의 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 등가물들은, 참조에 의해 본원에 명시적으로 통합되며 청구항들에 의해 포괄되는 것으로 의도된다. 또한, 본원에 개시된 어떤 것도, 이러한 개시물이 청구항들에서 명시적으로 언급되는지의 여부와 관계없이 공중 (public) 에 전용되도록 의도되지 않는다. 어떠한 청구항 엘리먼트도, 그 엘리먼트가 "하는 수단" 의 문구를 사용하여 명시적으로 언급되지 않는 한, 또는 방법 청구항의 경우, 그 엘리먼트가 "하는 단계" 의 문구를 사용하여 언급되지 않는 한, 35 U.S.C.§112, 6 번째 단락의 조항들 하에서 해석되어서는 안된다.
이에 따라, 본원에서 설명되고 첨부 도면들에서 도시된 예들과 연관된 다양한 피쳐들은 본 개시물의 범주를 벗어나지 않으면서 상이한 예들 및 구현들로 구현될 수 있다. 따라서, 소정의 특정 구조들 및 배열들이 첨부 도면들에서 설명되고 도시되었으나, 설명된 구현들에 대한 다양한 다른 추가들과 수정들, 및 그로부터의 삭제들이 당업자들에게 자명할 것이므로, 이러한 구현들은 단지 예시일 뿐이고 본 개시물의 범주를 제한하지 않는다. 따라서, 본 개시물의 범주는 오직 다음의 청구항들의 문자 언어 및 법률적 등가물들에 의해서만 결정된다.
Claims (30)
- 통신을 위한 장치로서,
데이터 버스의 파티셔닝 및 상기 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하도록 구성된 프로세싱 회로; 및
상기 프로세싱 회로에 커플링되고 상기 인코딩 표시자 심볼을 송신하도록 구성된 버스 인터페이스
를 포함하는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 인코딩은 데이터 버스 인버전 (inversion) 을 포함하는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 인코딩 표시자 심볼은 다중-레벨 신호이고;
상기 다중-레벨 신호의 각각의 레벨은, 상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션에 인코딩이 적용되지 여부를 표시하는 적어도 2 비트의 정보를 나타내는, 통신을 위한 장치. - 제 3 항에 있어서,
상기 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 또는 다수의 위상들 중 적어도 하나에 의해 정의되는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 데이터 버스는 병렬 버스이고;
상기 인코딩 표시자 심볼의 송신은 전용 버스 라인을 통해서 상기 인코딩 표시자 심볼을 송신하는 것을 포함하는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 버스 인터페이스는 버스 사이클 중에 상기 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 송신하도록 더 구성되고;
상기 인코딩 표시자 심볼의 송신은 상기 버스 사이클 중에 단일 신호 핀을 통해 상기 인코딩 표시자 심볼을 송신하는 것을 포함하는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 프로세싱 회로는, 상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션을 통해서 전송될 데이터의 서브세트를 인코딩할지 여부를 결정하도록 더 구성되고;
상기 인코딩 표시자 심볼의 생성은 대응하는 데이터의 서브세트가 인코딩되는 임의의 파티션들을 표시하는 값을 선택하는 것을 포함하는, 통신을 위한 장치. - 제 7 항에 있어서,
상기 데이터의 서브세트를 인코딩할지 여부의 결정은,
상기 데이터의 서브세트의 인코딩이 상기 데이터의 서브세트의 송신과 연관된 전력 소비를 감소시키거나 상기 데이터의 서브세트의 송신과 연관된 간섭을 감소시킬 것인지 여부를 결정하는 것을 포함하는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 프로세싱 회로는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상기 데이터 버스의 파티셔닝을 선택하도록 더 구성되는, 통신을 위한 장치. - 제 1 항에 있어서,
상기 프로세싱 회로는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상기 상이한 파티션들에 적용될 인코딩의 유형을 선택하도록 더 구성되는, 통신을 위한 장치. - 통신의 방법으로서,
데이터 버스의 파티셔닝 및 상기 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 생성하는 단계; 및
상기 인코딩 표시자 심볼을 송신하는 단계
를 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 인코딩은 데이터 버스 인버전을 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 인코딩 표시자 심볼은 다중-레벨 신호이고;
상기 다중-레벨 신호의 각각의 레벨은, 상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션에 인코딩이 적용되지 여부를 표시하는 적어도 2 비트의 정보를 나타내는, 통신의 방법. - 제 13 항에 있어서,
상기 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 또는 다수의 위상들 중 적어도 하나에 의해 정의되는, 통신의 방법. - 제 11 항에 있어서,
상기 데이터 버스는 병렬 버스이고;
상기 인코딩 표시자 심볼의 송신은 전용 버스 라인을 통해서 상기 인코딩 표시자 심볼을 송신하는 것을 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 버스 인터페이스는 버스 사이클 중에 상기 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 송신하는 단계를 더 포함하고,
상기 인코딩 표시자 심볼의 송신은 상기 버스 사이클 중에 단일 신호 핀을 통해 상기 인코딩 표시자 심볼을 송신하는 것을 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션을 통해서 전송될 데이터의 서브세트를 인코딩할지 여부를 결정하는 단계를 더 포함하고,
상기 인코딩 표시자 심볼의 생성은 대응하는 데이터의 서브세트가 인코딩되는 임의의 파티션들을 표시하는 값을 선택하는 것을 포함하는, 통신의 방법. - 제 17 항에 있어서,
상기 데이터의 서브세트를 인코딩할지 여부의 결정은,
상기 데이터의 서브세트의 인코딩이 상기 데이터의 서브세트의 송신과 연관된 전력 소비를 감소시키거나 상기 데이터의 서브세트의 송신과 연관된 간섭을 감소시킬 것인지 여부를 결정하는 것을 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상기 데이터 버스의 파티셔닝을 선택하는 단계를 더 포함하는, 통신의 방법. - 제 11 항에 있어서,
상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 전력 소비 또는 상기 파티션들을 통한 데이터의 송신과 연관된 가장 낮은 간섭을 초래하는 상기 상이한 파티션들에 적용될 인코딩의 유형을 선택하는 단계를 더 포함하는, 통신의 방법. - 통신을 위한 장치로서,
데이터 버스를 통해 데이터, 및 상기 데이터 버스의 파티셔닝 및 상기 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하도록 구성된 버스 인터페이스; 및
상기 버스 인터페이스에 커플링되고 상기 인코딩 표시자 심볼에 기초하여 수신된 상기 데이터를 디코딩하도록 구성된 프로세싱 회로
를 포함하는, 통신을 위한 장치. - 제 21 항에 있어서,
상기 인코딩은 데이터 버스 인버전을 포함하는, 통신을 위한 장치. - 제 21 항에 있어서,
상기 인코딩 표시자 심볼은 다중-레벨 신호이고;
상기 다중-레벨 신호의 각각의 레벨은, 상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션에 인코딩이 적용되지 여부를 표시하는 적어도 2 비트의 정보를 나타내는, 통신을 위한 장치. - 제 23 항에 있어서,
상기 다중-레벨 신호는 다수의 전압 레벨들, 다수의 전류 레벨들, 또는 다수의 위상들 중 적어도 하나에 의해 정의되는, 통신을 위한 장치. - 제 21 항에 있어서,
상기 데이터 버스는 병렬 버스이고;
상기 인코딩 표시자 심볼의 수신은 전용 버스 라인을 통해서 상기 인코딩 표시자 심볼을 수신하는 것을 포함하는, 통신을 위한 장치. - 제 21 항에 있어서,
상기 데이터의 수신은 버스 사이클 중에 상기 데이터 버스를 통해서 데이터 비트들의 병렬 세트를 수신하는 것을 포함하고,
상기 인코딩 표시자 심볼의 수신은 상기 버스 사이클 중에 단일 신호 핀을 통해 상기 인코딩 표시자 심볼을 수신하는 것을 포함하는, 통신을 위한 장치. - 제 21 항에 있어서,
상기 프로세싱 회로는, 상기 데이터 버스의 각각의 파티션에 대해,
상기 인코딩 표시자 심볼에 기초하여, 상기 파티션을 통해서 수신된 데이터의 서브세트가 인코딩된지 여부를 결정하고;
상기 인코딩 표시자 심볼이 상기 데이터의 서브세트가 인코딩되었다고 표시하면 상기 데이터의 서브세트를 디코딩하도록
더 구성되는, 통신을 위한 장치. - 통신의 방법으로서,
데이터 버스를 통해 데이터를 수신하는 단계;
상기 데이터 버스의 파티셔닝 및 상기 데이터 버스의 상이한 파티션들에 적용된 인코딩을 표시하는 인코딩 표시자 심볼을 수신하는 단계; 및
상기 인코딩 표시자 심볼에 기초하여 수신된 상기 데이터를 디코딩하는 단계
를 포함하는, 통신의 방법. - 제 28 항에 있어서,
상기 인코딩 표시자 심볼은 다중-레벨 신호이고;
상기 다중-레벨 신호의 각각의 레벨은, 상기 데이터 버스의 각각의 파티션에 대해, 상기 파티션에 인코딩이 적용되지 여부를 표시하는 적어도 2 비트의 정보를 나타내고;
상기 데이터 버스는 병렬 버스이고;
상기 인코딩 표시자 심볼의 수신은 전용 버스 라인을 통해서 상기 인코딩 표시자 심볼을 수신하는 것을 포함하는, 통신의 방법. - 제 28 항에 있어서,
상기 데이터 버스의 각각의 파티션에 대해,
상기 인코딩 표시자 심볼에 기초하여, 상기 파티션을 통해 수신된 데이터의 서브세트가 인코딩된지 여부를 결정하는 단계; 및
상기 인코딩 표시자 심볼이 상기 데이터의 서브세트가 인코딩되었다고 표시하면 상기 데이터의 서브세트를 디코딩하는 단계
를 더 포함하는, 통신의 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/175,394 | 2014-02-07 | ||
US14/175,394 US9252802B2 (en) | 2014-02-07 | 2014-02-07 | Encoding for partitioned data bus |
PCT/US2015/014730 WO2015120217A1 (en) | 2014-02-07 | 2015-02-06 | Encoding for partitioned data bus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160102077A true KR20160102077A (ko) | 2016-08-26 |
KR101752157B1 KR101752157B1 (ko) | 2017-06-29 |
Family
ID=52589772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167021749A KR101752157B1 (ko) | 2014-02-07 | 2015-02-06 | 파티셔닝된 데이터 버스에 대한 인코딩 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9252802B2 (ko) |
EP (1) | EP3103234A1 (ko) |
JP (1) | JP6126317B1 (ko) |
KR (1) | KR101752157B1 (ko) |
CN (1) | CN105960786B (ko) |
WO (1) | WO2015120217A1 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405721B2 (en) * | 2014-06-06 | 2016-08-02 | Micron Technology, Inc. | Apparatuses and methods for performing a databus inversion operation |
WO2016068962A1 (en) * | 2014-10-31 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Indicating a privilege level |
US9665527B2 (en) | 2014-12-09 | 2017-05-30 | Intel Corporation | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
US9779465B2 (en) * | 2014-12-23 | 2017-10-03 | Intel Corporation | Apparatus and method for implementing power saving techniques when processing floating point values |
US9965408B2 (en) * | 2015-05-14 | 2018-05-08 | Micron Technology, Inc. | Apparatuses and methods for asymmetric input/output interface for a memory |
US10157161B2 (en) * | 2015-10-16 | 2018-12-18 | Qualcomm Incorporated | Conditional embedding of dynamically shielded information on a bus |
JP6694284B2 (ja) * | 2016-01-29 | 2020-05-13 | シナプティクス・ジャパン合同会社 | 画像データ伝送システム、送信回路及び受信回路 |
US9922686B2 (en) | 2016-05-19 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for performing intra-module databus inversion operations |
US10373657B2 (en) * | 2016-08-10 | 2019-08-06 | Micron Technology, Inc. | Semiconductor layered device with data bus |
KR102651127B1 (ko) | 2016-12-15 | 2024-03-26 | 삼성전자주식회사 | 처리 장치 및 데이터를 처리하는 방법 |
US10146719B2 (en) | 2017-03-24 | 2018-12-04 | Micron Technology, Inc. | Semiconductor layered device with data bus |
US10218359B2 (en) * | 2017-06-29 | 2019-02-26 | Intel Corporation | Regional partial reconfiguration of a programmable device |
US10425260B2 (en) | 2017-08-07 | 2019-09-24 | Micron Technology, Inc. | Multi-level signaling in memory with wide system interface |
US10277435B2 (en) | 2017-08-07 | 2019-04-30 | Micron Technology, Inc. | Method to vertically align multi-level cells |
US10447512B2 (en) | 2017-08-07 | 2019-10-15 | Micron Technology, Inc. | Channel equalization for multi-level signaling |
US10530617B2 (en) | 2017-08-07 | 2020-01-07 | Micron Technology, Inc. | Programmable channel equalization for multi-level signaling |
KR102441578B1 (ko) | 2017-10-27 | 2022-09-07 | 삼성전자주식회사 | 다중 데이터 버스 반전 동작을 수행하는 방법 및 메모리 장치 |
US10657094B2 (en) * | 2018-03-29 | 2020-05-19 | Nvidia Corp. | Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses |
US10964702B2 (en) | 2018-10-17 | 2021-03-30 | Micron Technology, Inc. | Semiconductor device with first-in-first-out circuit |
US20200251159A1 (en) * | 2020-04-21 | 2020-08-06 | Intel Corporation | Stacked memory device with end to end data bus inversion |
KR20210149543A (ko) * | 2020-06-02 | 2021-12-09 | 삼성전자주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
CN114327995A (zh) * | 2020-09-30 | 2022-04-12 | 长鑫存储技术有限公司 | 读写方法 |
US11757567B2 (en) | 2021-03-10 | 2023-09-12 | Samsung Electronics Co., Ltd. | Devices and methods for encoding and decoding to implement a maximum transition avoidance coding with minimum overhead |
US11494126B1 (en) | 2021-05-07 | 2022-11-08 | Western Digital Technologies, Inc. | Toggle mode (TM) coding with circuit bounded array memory |
US11720516B2 (en) | 2021-08-15 | 2023-08-08 | Apple Inc. | Methods for data bus inversion |
US11836107B2 (en) | 2022-03-01 | 2023-12-05 | Apple Inc. | Power consumption control based on random bus inversion |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930002316B1 (ko) * | 1989-05-10 | 1993-03-29 | 미쯔비시덴끼 가부시끼가이샤 | 버스제어방법 및 화상처리 장치 |
US5182752A (en) * | 1990-06-29 | 1993-01-26 | Digital Equipment Corporation | Method and apparatus for transferring data between a data bus and a data storage device |
EP0495575B1 (en) * | 1991-01-18 | 1997-08-06 | National Semiconductor Corporation | Repeater interface controller |
JPH0820964B2 (ja) * | 1991-09-13 | 1996-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリ制御装置および方法 |
US5544179A (en) * | 1992-03-30 | 1996-08-06 | Hartwell; David | Mis-synchronization detection system using a combined error correcting and cycle identifier code |
KR100877680B1 (ko) * | 2006-04-04 | 2009-01-09 | 삼성전자주식회사 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
US7616133B2 (en) | 2008-01-16 | 2009-11-10 | Micron Technology, Inc. | Data bus inversion apparatus, systems, and methods |
EP2294770B1 (en) * | 2008-06-20 | 2013-08-07 | Rambus, Inc. | Frequency responsive bus coding |
EP2894571B1 (en) | 2009-07-13 | 2017-03-08 | Rambus Inc. | Encoding data using combined data mask and data bus inversion |
US8581755B2 (en) * | 2010-01-20 | 2013-11-12 | Rambus Inc. | Multiple word data bus inversion |
US8879654B2 (en) | 2010-03-10 | 2014-11-04 | Micron Technology, Inc. | Communication interface with configurable encoding based on channel termination |
US8260992B2 (en) | 2010-04-12 | 2012-09-04 | Advanced Micro Devices, Inc. | Reducing simultaneous switching outputs using data bus inversion signaling |
US9529749B2 (en) * | 2013-03-15 | 2016-12-27 | Qualcomm Incorporated | Data bus inversion (DBI) encoding based on the speed of operation |
US9270417B2 (en) * | 2013-11-21 | 2016-02-23 | Qualcomm Incorporated | Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions |
-
2014
- 2014-02-07 US US14/175,394 patent/US9252802B2/en not_active Expired - Fee Related
-
2015
- 2015-02-06 JP JP2016549724A patent/JP6126317B1/ja active Active
- 2015-02-06 KR KR1020167021749A patent/KR101752157B1/ko active IP Right Grant
- 2015-02-06 CN CN201580007314.7A patent/CN105960786B/zh not_active Expired - Fee Related
- 2015-02-06 EP EP15706586.3A patent/EP3103234A1/en not_active Withdrawn
- 2015-02-06 WO PCT/US2015/014730 patent/WO2015120217A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN105960786B (zh) | 2017-12-05 |
JP6126317B1 (ja) | 2017-05-10 |
WO2015120217A1 (en) | 2015-08-13 |
KR101752157B1 (ko) | 2017-06-29 |
EP3103234A1 (en) | 2016-12-14 |
JP2017514191A (ja) | 2017-06-01 |
CN105960786A (zh) | 2016-09-21 |
US9252802B2 (en) | 2016-02-02 |
US20150229325A1 (en) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101752157B1 (ko) | 파티셔닝된 데이터 버스에 대한 인코딩 | |
US9337997B2 (en) | Transcoding method for multi-wire signaling that embeds clock information in transition of signal state | |
EP3072238B1 (en) | Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions | |
US6738891B2 (en) | Array type processor with state transition controller identifying switch configuration and processing element instruction address | |
JP6072990B1 (ja) | シグナリング電力を低減するための方法および装置 | |
CN103141066A (zh) | 发送电路、接收电路、发送方法、接收方法、通信***及其通信方法 | |
KR100532416B1 (ko) | 다중 소스의 다중 채널로의 할당 방법 및 시스템 | |
US20150195211A1 (en) | Low-voltage differential signaling or 2-wire differential link with symbol transition clocking | |
US10880135B2 (en) | Semiconductor device and communication | |
CN101414830A (zh) | 平行处理至少两个二进制值的方法与相应算术编码*** | |
US20070282932A1 (en) | Bus inverting code generating apparatus and method of generating bus inverting code using the same | |
KR102582152B1 (ko) | Pam 3 신호를이용한 데이터 반전 회로 | |
JP4956295B2 (ja) | 半導体記憶装置 | |
US7463266B2 (en) | Low overhead serial interface | |
US11810651B2 (en) | Multi-dimensional mapping of binary data to DNA sequences | |
US20190361909A1 (en) | Optimizing data conversion using pattern frequency | |
CN115512738A (zh) | 双沿采样电路及用于其的数据采样方法、装置及*** | |
KR20140004432A (ko) | 스위칭 횟수 및 크로스톡 지연을 최소화한 버스 인코딩 장치 | |
CN117596107A (zh) | 用于具有降低的电源噪声的数据发送的方法和设备 | |
KR20160035898A (ko) | 데이터 전송을 위한 도선의 수를 감소시키기 위한 데이터 전송 장치 및 그 방법 | |
CN113630211A (zh) | 编码方法及存储介质 | |
KR20160100363A (ko) | 오직 수신기 클록에 의한 CCIe 수신기 로직 레지스터 기입 | |
CN113407358A (zh) | 数据编码方法、装置及储介质 | |
JP2014220577A (ja) | 通信装置、通信システム、通信方法、及びプログラム | |
JPH07141254A (ja) | メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |