KR20040012677A - Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion - Google Patents

Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion Download PDF

Info

Publication number
KR20040012677A
KR20040012677A KR10-2003-7006227A KR20037006227A KR20040012677A KR 20040012677 A KR20040012677 A KR 20040012677A KR 20037006227 A KR20037006227 A KR 20037006227A KR 20040012677 A KR20040012677 A KR 20040012677A
Authority
KR
South Korea
Prior art keywords
bit
data
inversion
bus transaction
inversion signal
Prior art date
Application number
KR10-2003-7006227A
Other languages
Korean (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 KR20040012677A publication Critical patent/KR20040012677A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol

Abstract

본 발명의 동적 버스 반전을 구현하는 컴퓨터 시스템의 일 실시예는 동적 버스 반전 엔코더를 구비하는 제1 시스템 논리 장치와 동적 버스 반전 디코더를 구비하는 제2 시스템 논리 장치를 포함한다. 상기 제1 시스템 논리 장치와 상기 제2 시스템 논리 장치는 데이터 버스를 통해 연결된다. 상기 엔코더는 현재 데이터 버스에 놓인 데이터 비트 그룹과 다음에 데이터 버스에 놓일 데이터 비트 그룹을 비교한다. 상기 엔코더가 상기 현재 데이터 비트 그룹과 다음 데이터 비트 그룹 사이에 발생된 비트 변화 수가 소정의 수보다 큰 것으로 판단한 경우, 상기 엔코더는 상기 다음 데이터 비트 그룹을 상기 데이터 버스에 놓기 전에 상기 다음 데이터 비트 그룹을 반전시킨다. 상기 엔코더는 또한 상기 디코더에 의해 수신되는 반전 신호를 발생시킨다. 상기 반전 신호의 발생에 응답하여, 상기 디코더는 사전에 반전된 다음 데이터 비트 그룹을 원래 데이터로 복원하기 위하여 반전한다.One embodiment of a computer system implementing dynamic bus inversion of the present invention includes a first system logic device having a dynamic bus inversion encoder and a second system logic device having a dynamic bus inversion decoder. The first system logic device and the second system logic device are connected via a data bus. The encoder compares the group of data bits that are currently placed on the data bus with the group of data bits that will be next placed on the data bus. If the encoder determines that the number of bit changes generated between the current data bit group and the next data bit group is greater than a predetermined number, the encoder selects the next data bit group before placing the next data bit group on the data bus. Invert The encoder also generates an inverted signal received by the decoder. In response to the generation of the inverted signal, the decoder inverts beforehand and then inverts to restore the group of data bits to the original data.

Description

동적 버스 반전을 사용한 동시 스위칭 출력 노이즈 감소 장치 및 방법 {METHOD AND APPARATUS FOR REDUCING SIMULTANEOUS SWITCHING OUTPUT NOISE USING DYNAMIC BUS INVERSION}Simultaneous switching output noise reduction apparatus and method using dynamic bus inversion {METHOD AND APPARATUS FOR REDUCING SIMULTANEOUS SWITCHING OUTPUT NOISE USING DYNAMIC BUS INVERSION}

오늘날 컴퓨터 시스템의 성능 향상을 위한 노력으로, 시스템 설계자는 여러 시스템 데이터 버스의 클록 주파수를 향상시키기 위해 모색해 왔다. 버스 주파수가 증가함에 따라 데이터 라인(data line)의 노이즈는 점점 중요한 문제가 된다. 클록 주파수 증가와 그에 대응한 클록 주기의 감소는 데이터 라인에 존재하는 노이즈를 데이터가 수신측에 래치되기 전에 안정시키는 데 더 적은 시간을 허용한다. 데이터가 수신측에 래치될 때 데이터 라인에 존재하는 노이즈는 무효 데이터(invalid data)의 래치를 초래할 수 있다.In an effort to improve the performance of today's computer systems, system designers have sought to improve the clock frequencies of many system data buses. As bus frequencies increase, noise on data lines becomes an increasingly important issue. Increasing the clock frequency and correspondingly decreasing clock periods allow less time to stabilize the noise present on the data line before the data is latched to the receiving side. Noise present in the data line when the data is latched on the receiving side may result in the latching of invalid data.

데이터 라인 상의 노이즈 공급원 중 하나는 동시 스위칭 출력 노이즈라 할 수 있다. 이 노이즈는 동시에 특정 장치 스위칭 상태에 대해 몇몇 많은 출력 드라이버에 기인한다. 이에 대한 일례는 그래픽스 버스(graphics bus)를 통하여 그래픽스 장치에 한꺼번에 32비트 데이터를 구동하는 시스템 논리 장치를 포함한다.이 시스템 논리 장치는 한 클록 주기 동안에 32비트의 "1"을 구동할 수 있고, 그 후 다음 클록 주기 동안에 32비트의 "0"을 구동할 수 있다. 이 예에서, 모든 그래픽스 버스 비트는 한 클록 주기에서 다음 클록 주기로 상태가 변화한다. 이런 변화(transition)는 32개의 데이터 라인 전부 또는 일부에 동시 스위칭 출력 노이즈를 유발시킬 수 있고 그래픽스 버스에 대한 가능 클록 주파수를 제한할 수 있어, 그래픽스 서브시스템의 잠재적인 성능(potential performance)을 제한할 수 있다.One source of noise on the data line may be referred to as simultaneous switching output noise. This noise is due to several many output drivers simultaneously for a particular device switching state. An example of this includes a system logic device that drives 32-bit data at a time through a graphics bus to a graphics device. The system logic device can drive 32 bits of "1" in one clock period, The 32 bits of "0" can then be driven during the next clock period. In this example, all graphics bus bits change state from one clock cycle to the next. This transition can cause simultaneous switching output noise on all or part of the 32 data lines and can limit the possible clock frequency for the graphics bus, limiting the potential performance of the graphics subsystem. Can be.

본 발명은 컴퓨터 시스템에 관한 것이다. 특히 본 발명은 데이터 버스의 동시 스위칭 출력을 감소시키는 분야에 관한 것이다.The present invention relates to a computer system. In particular, the present invention relates to the field of reducing simultaneous switching output of a data bus.

도 1은 동적 버스 반전 엔코더를 구비한 시스템 논리 장치 및 동적 버스 반전 디코더를 구비한 그래픽스 장치를 포함하는 시스템의 일 실시예를 나타나낸 블록도이다.1 is a block diagram illustrating one embodiment of a system including a system logic device with a dynamic bus inversion encoder and a graphics device with a dynamic bus inversion decoder.

도 2는 동적 버스 반전 엔코더의 일 실시예를 나타내는 블록도이다.2 is a block diagram illustrating one embodiment of a dynamic bus inversion encoder.

도 3은 동적 버스 반전을 사용한 동시 스위칭 출력 노이즈를 감소시키는 방법의 일 실시예를 나타낸 흐름도이다.3 is a flow diagram illustrating one embodiment of a method of reducing simultaneous switching output noise using dynamic bus inversion.

본 발명은 이하에 기술된 실시예에 대한 상세한 설명과 첨부 도면으로부터 더욱 완전히 이해될 것이지만, 본 발명은 기술된 특정 실시예로 한정되어서는 안되며, 기술된 특정 실시예는 오직 설명과 이해를 위한 것이다.While the invention will be more fully understood from the following detailed description of the embodiments and the accompanying drawings, the invention is not to be limited to the specific embodiments described, and the specific embodiments described are for illustration and understanding only. .

도 1은 동적 버스 반전(dynamic bus inversion, DBI) 엔코더를 구비한 시스템 논리 장치(system logic device)(120)와 DBI 디코더(124)를 구비한 그래픽스 장치(130)를 포함하는 시스템의 일 실시예를 나타나낸 블록도이다. 시스템(100)은 또한 시스템 논리 장치(120)에 연결된 프로세서(110)를 포함한다. 시스템 논리 장치는 시스템 메모리(140) 및 입출력 허브(input/output hub)(150)에도 연결된다.1 illustrates an embodiment of a system including a system logic device 120 with a dynamic bus inversion (DBI) encoder and a graphics device 130 with a DBI decoder 124. Is a block diagram showing. System 100 also includes a processor 110 coupled to system logic device 120. The system logic device is also connected to the system memory 140 and the input / output hub 150.

시스템 논리 장치는 출력 데이터 버스(203)와 반전 신호(inversion signal)(205)를 사용하여 그래픽스 장치(130)에 연결된다. DBI 엔코더(200)는 이전에 출력 데이터 버스(203) 상에 높인 데이터 비트 집합과 다음에 데이터 버스(203) 상에 놓일 데이터 비트 집합을 비교한다. DBI 엔코더(200)는 이전 데이터 비트 집합에 뒤이어서 데이터 버스(203) 상에서 구동되는 다음 데이터 비트 집합의 결과로서 데이터 버스(203) 상에서 얼마나 많은 데이터 비트 변화(transition)가 발생하였는지를 판정한다. DBI 엔코더(200)는 데이터 비트들이 반전되었음을 DBI 디코더(124)에 나타내기 위하여 반전 신호(205)를 발생시킨다(assert). DBI 디코더(124)는 그러면 반전된 데이터 비트들을 원래 데이터로 복원하기 위하여 반전한다.The system logic device is connected to the graphics device 130 using an output data bus 203 and an inversion signal 205. The DBI encoder 200 compares the data bit set previously raised on the output data bus 203 with the data bit set to be placed next on the data bus 203. DBI encoder 200 determines how many data bit transitions have occurred on data bus 203 as a result of the next set of data bits driven on data bus 203 following the previous set of data bits. DBI encoder 200 asserts an inversion signal 205 to indicate to DBI decoder 124 that the data bits have been inverted. DBI decoder 124 then inverts to restore the inverted data bits to the original data.

상기한 소정의 수는 최소 비트 변화가 발생하도록 선태된다. 일부 실시예의 경우, 소정의 수는 데이터 폭의 반(半)과 동일하도록 선택된다. 예를 들어, 16비트 데이터 그룹의 경우 소정의 수는 8이다. 따라서, 8 데이터 비트 이상이 상태를 변화하면, 데이터 비트들은 반전되고 반전 신호가 발생한다.The predetermined number described above is selected such that a minimum bit change occurs. In some embodiments, the predetermined number is chosen to be equal to half the data width. For example, for a 16-bit data group, the predetermined number is eight. Thus, if more than eight data bits change state, the data bits are inverted and an inverted signal is generated.

전술한 DBI 실시예는 출력 데이터 버스 상에서 발생되는 비트 변화의 수를 제한함으로써 동시 스위칭 출력 노이즈의 양을 감소시킨다.The DBI embodiment described above reduces the amount of simultaneous switching output noise by limiting the number of bit changes that occur on the output data bus.

디코더(124)의 실시예는 입력 데이터(incoming data) 및 반전 신호에 대해XOR 기능을 수행하는 XOR 회로를 포함한다. 이러한 방식으로, 반전 없음(no inversion)이 나타나면, 즉 반전 신호(205)가 "1"이면 입력 데이터는 디코더(124)에 의해 반전되지 않는다. 반전이 나타나면, 즉 반전 신호(205)가 "1"이면 입력 데이터의 각 비트는 원래 데이터를 복원하기 위하여 디코더(124)에 의해 반전된다.An embodiment of the decoder 124 includes an XOR circuit that performs an XOR function on the incoming data and the inverted signal. In this way, if no inversion appears, i.e., if the inversion signal 205 is " 1 ", the input data is not inverted by the decoder 124. If inversion occurs, i.e. if inversion signal 205 is " 1 ", then each bit of input data is inverted by decoder 124 to recover the original data.

비록 시스템(100)은 단일 데이터 버스와 단일 반전 신호를 나타내고 있지만, 데이터 버스(203)는 두 개 이상의 그룹으로 나뉠 수 있다. 예를 들어, 32비트 버스는 각각 16비트로 이루어지는 두 개의 그룹으로 나뉠 수 있다. 다른 구성도 가능하다. 반전 결정은 그 후 그룹 기반(group-by-group basis)으로 엔코더(200)에 의해 이루어진다. 각 그룹은 고유한 반전 신호를 사용한다.Although system 100 represents a single data bus and a single inverted signal, data bus 203 may be divided into two or more groups. For example, a 32-bit bus can be divided into two groups of 16 bits each. Other configurations are possible. The inversion decision is then made by the encoder 200 on a group-by-group basis. Each group uses its own inverted signal.

도 2는 동적 버스 반전 엔코더(200)의 일 실시예를 나타내는 블록도이다. 출력데이터 버스(203)를 통해 전달될 데이터는 내부 데이터 버스(201)를 통해 엔코더(200)로 전달된다. 이 실시예의 경우, 내부 데이터 버스(201) 및 출력 데이터 버스(203)는 16비트 폭을 갖는다. 다른 실시예에서는 각각 16비트로 이루어지는 두 개의 그룹으로 구성되는 32비트의 데이터 폭도 가능하다. 또 다른 실시예에서는 다른 데이터 구성과 그룹화가 가능하다.2 is a block diagram illustrating one embodiment of a dynamic bus inversion encoder 200. Data to be delivered via the output data bus 203 is transferred to the encoder 200 via the internal data bus 201. In this embodiment, the internal data bus 201 and the output data bus 203 are 16 bits wide. In another embodiment, a 32-bit data width consisting of two groups of 16 bits each is also possible. In another embodiment, different data configurations and groupings are possible.

내부 데이터(201)는 XOR 회로(210) 및 인버터(220)/멀티플렉서(230) 조합 모두에 전송된다. XOR 회로(210)는 또한 출력 데이터(203)를 수신한다. 출력 데이터(203)는 현재의 데이터 비트 집합을 나타낸다. XOR 연산은 입력 데이터(201)와 출력 데이터(203)에 대해 수행된다. 반전 판정 회로(240)는 XOR 연산의 출력을 수신하여 XOR 연산에 의해 발견된 데이터 비트 변화의 수가 소정의 수를 초과하는지를 판정한다. 이 실시예의 경우, 소정의 수는 8이다. 다른 실시예에서는 다른 소정의 수를 사용할 수 있다. 프로그램할 수 있는 소정의 수를 사용하는 엔코더(200)를 구현하는 것도 가능하다. 반전 판정 회로(240)가 데이터 비트 변화의 수가 소정의 수를 초과하는 것으로 판단하면 내부 반전 신호(209)가 발생된다.Internal data 201 is transmitted to both the XOR circuit 210 and the inverter 220 / multiplexer 230 combination. XOR circuit 210 also receives output data 203. Output data 203 represents the current set of data bits. The XOR operation is performed on the input data 201 and the output data 203. The inversion determination circuit 240 receives the output of the XOR operation to determine whether the number of data bit changes found by the XOR operation exceeds a predetermined number. For this embodiment, the predetermined number is eight. Other predetermined numbers may be used in other embodiments. It is also possible to implement an encoder 200 using any number that can be programmed. If the inversion determination circuit 240 determines that the number of data bit changes exceeds a predetermined number, an internal inversion signal 209 is generated.

내부 반전 신호(209)는 멀티플렉서(230)와 래치(260)로 전달된다. 데이터 비트 변화의 수가 소정의 수를 초과하는 것을 나타내는 내부 반전 신호(209)가 발생되면, 멀티플렉서(230)는 인버터 회로(220)의 출력을 래치(250)로 전달한다. 내부 반전 신호가 발생되지 않으면, 멀티플렉서(230)는 반전되지 않은 내부 데이터를 래치(250)로 전달한다. 그러면 래치(250)는 멀티플렉서(230)의 출력을 출력 데이터 버스(203) 상에 래치한다. 내부 반전 신호(209)는 내부 신호(205) 상으로 래치된다.The internal inversion signal 209 is transmitted to the multiplexer 230 and the latch 260. When the internal inversion signal 209 is generated indicating that the number of data bit changes exceeds a predetermined number, the multiplexer 230 delivers the output of the inverter circuit 220 to the latch 250. If the internal inversion signal is not generated, the multiplexer 230 transfers internal data that is not inverted to the latch 250. Latch 250 then latches the output of multiplexer 230 on output data bus 203. The internal inversion signal 209 is latched onto the internal signal 205.

인버터(220)/멀티플렉서(230) 조합은 내부 데이터 버스 비트들(201)이 각각 내부 반전 신호(209)와 XOR 연산되는 XOR 회로로 구현될 수 있다. 내부 반전 신호(209)가 발생되면, 각각의 내부 데이터 비트(201)는 반전되어 래치(250)의 입력으로 전달된다. 내부 반전 신호(209)가 발생되지 않으면, XOR 연산은 내부 데이터 비트(201)를 변경시키지 않은 채로 둔다.Inverter 220 / multiplexer 230 combination may be implemented in an XOR circuit in which internal data bus bits 201 are XORed with internal inversion signal 209, respectively. When the internal inversion signal 209 is generated, each internal data bit 201 is inverted and passed to the input of the latch 250. If the internal inversion signal 209 is not generated, the XOR operation leaves the internal data bit 201 unchanged.

도 3은 동적 버스 반전을 사용하여 동시 스위칭 출력 노이즈를 감소시키는 방법의 일 실시예를 나타낸 흐름도이다. 첫 번째 n비트 데이터와 두 번째 n비트 데이터 사이의 비트 변화의 수는 블록 320에서 계수된다. 블록 330에 나타낸 것처럼, 계수된 비트 변화의 수가 소정의 수를 초과하면, 다음 n비트 데이터는 블록 340에서 반전된다. 반전된 다음 n비트 데이터는 블록 360에서 데이터 버스를 통해 전달된다. 반전 신호는 또한 블록 360에서 발생된다. 계수된 비트 변화 수가 소정의 수를 초과하지 않으면, 다음 n비트 데이터는 블록 350에서 데이터 버스를 통해 전달된다. 전술한 실시예의 방법은 데이터 버스를 통해 전달될 모든 후속하는 n비트 데이터에 대해 반복될 수 있다. 이 실시예의 경우, n은 16이고 소정의 수는 8이지만, 다른 실시예에서는 다른 데이터 폭과 소정의 수를 사용할 수 있다.3 is a flow diagram illustrating one embodiment of a method of reducing simultaneous switching output noise using dynamic bus inversion. The number of bit changes between the first n-bit data and the second n-bit data is counted at block 320. As indicated at block 330, if the number of counted bit changes exceeds a predetermined number, the next n-bit data is inverted at block 340. The inverted n-bit data is then passed over the data bus at block 360. The inversion signal is also generated at block 360. If the counted number of bit changes does not exceed a predetermined number, the next n-bit data is passed over the data bus at block 350. The method of the foregoing embodiment can be repeated for all subsequent n-bit data to be delivered over the data bus. In this embodiment, n is 16 and the predetermined number is 8. In other embodiments, other data widths and predetermined numbers may be used.

비록 일부 전술한 일시예에서 그래픽스 버스를 통해 그래픽스 장치로 데이터를 전송하는 시스템 논리 장치를 언급하였지만, 다른 실시예에서는 DBI 엔코더를 구비하는 송신기로서 임의의 시스템 장치를 사용하고 DBI 디코더를 구비하는 수신기로서 임의의 다른 장치를 사용하는 것도 가능하다.Although some of the foregoing examples refer to a system logic device for transmitting data to a graphics device via a graphics bus, another embodiment uses any system device as a transmitter with a DBI encoder and as a receiver with a DBI decoder. It is also possible to use any other device.

이상에서 본 발명을 특정 실시예에 관련하여 상세하게 설명하였지만, 첨부한 특허청구범위에 밝힌 것과 같이 본 발명의 기술적 사상과 범위를 벗어나지 않으면서 다양한 변형과 변경이 이루어질 수 있다는 것은 명백하다. 따라서 명세서와 도면은 한정하는 것이 아니라 예시하는 것으로 간주되어야 한다.While the present invention has been described in detail with reference to specific embodiments, it is apparent that various modifications and changes can be made without departing from the spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

명세서에서 실시예와 관련하여 기술된 특정한 형상(feature), 구조 또는 특징을 의미하는 "실시예", "일 실시예", "일부 실시예" 또는 "다른 실시예"는 적어도 본 발명의 일부 실시예에 포함되지만 반드시 본 발명의 모든 실시예에 포함되는 것은 아니다. "실시예", "일 실시예" 또는 "일부 실시예"의 다양한 양상은 반드시 모두 동일한 실시예를 가리키는 것은 아니다.An “embodiment”, “one embodiment”, “some embodiments”, or “another embodiment” means a particular feature, structure, or feature described in connection with an embodiment in the specification, at least in some embodiments of the invention. Although included in the examples, they are not necessarily included in all embodiments of the present invention. The various aspects of "an embodiment", "one embodiment" or "some embodiments" do not necessarily all refer to the same embodiment.

Claims (26)

현재 버스 트랜잭션(current bus transaction)과 비교했을 때 다음 버스 트랜잭션(nest bus transaction)이 소정의 수의 비트 변화보다 큰지를 판정하고, 상기 현재 버스 트랜잭션과 비교했을 때 상기 다음 버스 트랜잭션이 상기 소정의 수의 비트 변화보다 크면 반전 신호를 발생시키는 비트 변화 검출 회로(bit transition detection circuit), 및Determine if a next bus transaction is greater than a predetermined number of bit changes when compared to a current bus transaction, and when the next bus transaction is compared with the current bus transaction, the predetermined number of bits A bit transition detection circuit that generates an inverted signal if greater than a bit change in, and 상기 반전 신호의 발생에 응답하여 상기 다음 버스 트랜잭션의 비트들을 반전시키는 반전 회로An inversion circuit that inverts the bits of the next bus transaction in response to generation of the inversion signal 를 포함하는Containing 장치.Device. 제1항에서,In claim 1, 상기 비트 변화 검출 회로는 상기 현재 버스 트랜잭션과 상기 다음 버스 트랜잭션 사이의 비트 변화 수를 감지하는 제1 XOR 회로를 포함하는 장치.And the bit change detection circuit comprises a first XOR circuit to sense the number of bit changes between the current bus transaction and the next bus transaction. 제2항에서,In claim 2, 상기 비트 변화 검출 회로는 상기 제1 XOR 회로에 의해 감지된 비트 변화 수가 상기 소정의 수를 초과하는지를 판정하는 회로를 포함하는 장치.And the bit change detection circuit includes circuitry to determine whether the number of bit changes sensed by the first XOR circuit exceeds the predetermined number. 제3항에서,In claim 3, 상기 반전 회로는 상기 다음 버스 트랜잭션과 상기 반전 신호 사이에 XOR 기능을 수행하는 제2 XOR 회로를 포함하는 장치.And the inversion circuit comprises a second XOR circuit performing an XOR function between the next bus transaction and the inversion signal. 제4항에서,In claim 4, 상기 제2 XOR 회로의 출력을 래치하고, 래치된 출력을 외부 데이터 버스 및 상기 제1 XOR 회로에 제공하는 제1 래치를 더 포함하는 장치.And a first latch for latching an output of said second XOR circuit and providing a latched output to an external data bus and said first XOR circuit. 제5항에서,In claim 5, 상기 반전 신호를 래치하고, 래치된 반전 신호를 외부 반전 신호부에 제공하는 제2 래치를 더 포함하는 장치.And a second latch for latching the inversion signal and providing the latched inversion signal to an external inversion signal portion. 제6항에서,In claim 6, 상기 현재 버스 트랜잭션 및 상기 다음 버스 트랜잭션은 16 비트 폭인 장치.The current bus transaction and the next bus transaction are 16 bits wide. 제7항에서,In claim 7, 상기 소정의 수의 비트 변화는 8인 장치.And said predetermined number of bit changes is eight. 현재 버스 트랜잭션과 비교했을 때 다음 버스 트랜잭션이 소정의 수의 비트 변화보다 큰지를 판정하는 단계 및Determining whether the next bus transaction is greater than a predetermined number of bit changes compared to the current bus transaction; and 상기 다음 버스 트랜잭션의 반전 버전(inverted version)을 제공하는 단계Providing an inverted version of the next bus transaction 를 포함하는 방법.How to include. 제9항에서,In claim 9, 상기 다음 버스 트랜잭션이 반전되었음을 나타내는 반전 신호를 제공하는 단계를 더 포함하는 방법.Providing an inversion signal indicating that the next bus transaction has been inverted. 데이터 버스를 통해 제1 n비트 데이터를 전송하는 단계,Transmitting first n-bit data over a data bus, 상기 제1 n비트 데이터와 제2 n비트 데이터 사이의 비트 변화를 계수하는 단계,Counting a bit change between the first n-bit data and the second n-bit data, 상기 계수된 비트 변화가 소정의 수를 초과하는지를 판정하는 단계,Determining whether the counted bit change exceeds a predetermined number, 상기 계수된 비트 변화가 상기 소정의 수를 초과하는 경우 다음 n비트 데이터를 반전시키고 반전 신호를 발생시키는 단계, 및Inverting the next n-bit data and generating an inverted signal if the counted bit change exceeds the predetermined number, and 상기 데이터 버스를 통해 상기 다음 n비트 데이터를 전송하는 단계Transmitting the next n-bit data over the data bus 를 포함하는 방법.How to include. 제11항에서,In claim 11, 상기 다음 n비트 데이터를 반전시키는 단계는 상기 다음 n비트와 상기 반전 신호를 XOR 연산하는 단계를 포함하는 방법.Inverting the next n-bit data comprises performing an XOR operation on the next n-bit and the inverted signal. 제12항에서,In claim 12, 상기 n은 16인 방법.N is 16. 제13항에서,In claim 13, 상기 소정의 수는 8인 방법.And said predetermined number is eight. 프로세서,Processor, 상기 프로세서에 연결되는 제1 논리 장치, 및A first logic device coupled to the processor, and 버스를 통해 상기 제1 논리 장치에 연결되는 제2 논리 장치A second logic device coupled to the first logic device via a bus 를 포함하며,Including; 상기 제1 논리 장치는The first logic device is 현재 버스 트랜잭션과 비교했을 때 다음 버스 트랜잭션이 소정의 수의 비트 변화보다 큰지를 판정하고, 상기 현재 버스 트랜잭션과 비교했을 때 상기 다음 버스 트랜잭션이 상기 소정의 수의 비트 변화보다 크면 반전 신호를 발생시키는 비트 변화 검출 회로, 및Determining whether a next bus transaction is greater than a predetermined number of bit changes when compared to a current bus transaction, and generating an inversion signal if the next bus transaction is greater than the predetermined number of bit changes when compared with the current bus transaction. Bit change detection circuit, and 상기 반전 신호의 발생에 응답하여 다음 버스 트랜잭션의 비트들을 반전시키는 반전 회로An inversion circuit that inverts the bits of the next bus transaction in response to the generation of the inversion signal 를 포함하는 동적 버스 반전 엔코더(dynamic bus inversion encoder)Dynamic bus inversion encoder 를 포함하는Containing 시스템.system. 제15항에서,The method of claim 15, 상기 비트 변화 검출 회로는 상기 현재 버스 트랜잭션과 상기 다음 버스 트랜잭션 사이의 비트 변화 수를 감지하는 제1 XOR 회로를 포함하는 시스템.And the bit change detection circuit comprises a first XOR circuit to sense the number of bit changes between the current bus transaction and the next bus transaction. 제16항에서,The method of claim 16, 상기 비트 변화 검출 회로는 상기 제1 XOR 회로에 의해 감지된 비트 변화 수가 상기 소정의 수를 초과하는지를 판정하는 회로를 포함하는 시스템.And the bit change detection circuit includes circuitry to determine whether the number of bit changes sensed by the first XOR circuit exceeds the predetermined number. 제17항에서,The method of claim 17, 상기 반전 회로는 상기 다음 버스 트랜잭션과 상기 반전 신호 사이에 XOR 기능을 수행하는 제2 XOR 회로를 포함하는 시스템.The inversion circuit comprises a second XOR circuit that performs an XOR function between the next bus transaction and the inversion signal. 제17항에서,The method of claim 17, 상기 제2 XOR 회로의 출력을 래치하고, 래치된 출력을 버스 및 상기 제1 XOR 회로에 공급하는 제1 래치를 더 포함하는 시스템.And a first latch to latch the output of the second XOR circuit and to supply the latched output to a bus and the first XOR circuit. 제19항에서,The method of claim 19, 상기 반전 신호를 래치하고, 래치된 반전 신호를 외부 반전 신호부에 공급하는 제2 래치를 더 포함하며, 상기 외부 반전 신호부는 상기 제2 논리 장치와 연결되는 시스템.And a second latch for latching the inversion signal and supplying the latched inversion signal to an external inversion signal portion, wherein the external inversion signal portion is coupled to the second logic device. 제20항에서,The method of claim 20, 상기 제2 논리 장치는 동적 버스 반전 디코더(dynamic bus inversion decoder)를 포함하는 시스템.And the second logic device comprises a dynamic bus inversion decoder. n비트 데이터를 수신하는 데이터 버스 입력부,a data bus input for receiving n-bit data, 반전 신호를 수신하는 반전 신호 입력부, 및An inversion signal input for receiving an inversion signal, and 상기 반전 신호가 발생된 경우, 상기 데이터 버스 입력부에서 수신된 상기 n비트 데이터를 반전시키는 반전 회로An inversion circuit for inverting the n-bit data received at the data bus input unit when the inversion signal is generated 를 포함하는 장치.Device comprising a. 제22항에서,The method of claim 22, 상기 반전 회로는 상기 데이터 버스 입력부에서 수신된 상기 n비트 데이터와 상기 반전 신호 사이에 XOR 기능을 수행하는 XOR 회로를 포함하는 장치.And the inversion circuit comprises an XOR circuit for performing an XOR function between the n-bit data received at the data bus input and the inversion signal. 제23항에서,The method of claim 23, 상기 n은 16인 장치.And n is 16. 수신 장치에서 n비트 데이터를 수신하는 단계, 및Receiving n-bit data at the receiving device, and 송신 장치에 의해 발생된 반전 신호의 발생에 응답하여 상기 n비트 데이터를 반전시키는 단계Inverting the n-bit data in response to the generation of the inversion signal generated by the transmitting device 를 포함하는 방법.How to include. 제25항에서,The method of claim 25, 상기 n비트 데이터를 반전시키는 단계는 상기 n비트 데이터와 상기 반전 신호 사이에 XOR 기능을 수행하는 단계를 포함하는 방법.Inverting the n-bit data comprises performing an XOR function between the n-bit data and the inverted signal.
KR10-2003-7006227A 2000-11-07 2001-10-12 Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion KR20040012677A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70822100A 2000-11-07 2000-11-07
US09/708,221 2000-11-07
PCT/US2001/031816 WO2002039290A2 (en) 2000-11-07 2001-10-12 Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion

Publications (1)

Publication Number Publication Date
KR20040012677A true KR20040012677A (en) 2004-02-11

Family

ID=24844882

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7006227A KR20040012677A (en) 2000-11-07 2001-10-12 Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion

Country Status (6)

Country Link
KR (1) KR20040012677A (en)
CN (1) CN1483166A (en)
AU (1) AU2002211646A1 (en)
DE (1) DE10196834T1 (en)
GB (1) GB2387943A (en)
WO (1) WO2002039290A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845141B1 (en) * 2007-01-17 2008-07-10 삼성전자주식회사 Single rate interface device, dual rate interface device and dual rate interfacing method
KR100877680B1 (en) * 2006-04-04 2009-01-09 삼성전자주식회사 Method and Computer readable recording media, and apparatus for interfacing between semiconductor devices using single ended parallel interface system
US7541947B2 (en) 2006-05-27 2009-06-02 Samsung Electronics Co., Ltd. Semiconductor devices, a system including semiconductor devices and methods thereof
US7688102B2 (en) 2006-06-29 2010-03-30 Samsung Electronics Co., Ltd. Majority voter circuits and semiconductor devices including the same
US8552891B2 (en) 2006-05-27 2013-10-08 Samsung Electronics Co., Ltd. Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
WO2020205060A1 (en) * 2019-03-29 2020-10-08 Intel Corporation Minimum input/output toggling rate for interfaces

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1380961B1 (en) * 2002-07-10 2006-04-05 STMicroelectronics S.r.l. Process and device for reducing bus switching activity and computer program product therefor
JP2004080553A (en) 2002-08-21 2004-03-11 Nec Corp Circuit and method for data output
DE60221396D1 (en) 2002-09-25 2007-09-06 St Microelectronics Srl Method and apparatus for transmitting digital signal over a computer bus and computer program product therefor
EP1403775B1 (en) * 2002-09-25 2006-03-08 STMicroelectronics S.r.l. Process and devices for transmiting digital signals over buses and computer program product therefor
KR100459726B1 (en) * 2002-10-05 2004-12-03 삼성전자주식회사 Data inversion circuit of multi-bit pre-fetch semiconductor device and method there-of
US6992506B2 (en) 2003-03-26 2006-01-31 Samsung Electronics Co., Ltd. Integrated circuit devices having data inversion circuits therein with multi-bit prefetch structures and methods of operating same
EP1761855B1 (en) 2004-06-21 2008-01-16 Nxp B.V. Data processing system and method for interconnect arbitration
US7764792B1 (en) 2005-01-13 2010-07-27 Marvell International Ltd. System and method for encoding data transmitted on a bus
US7869525B2 (en) 2005-08-01 2011-01-11 Ati Technologies, Inc. Dynamic bus inversion method and system
KR100621353B1 (en) 2005-11-08 2006-09-07 삼성전자주식회사 Data in-out put circuit with verification for data inversion and semiconductor memory device having the same
CN101788967B (en) * 2010-03-09 2012-02-08 西安电子科技大学 Encoding and decoding method for crosstalk resistant on-chip bus and encoding and decoding device thereof
US8260992B2 (en) 2010-04-12 2012-09-04 Advanced Micro Devices, Inc. Reducing simultaneous switching outputs using data bus inversion signaling
CN103885913B (en) * 2014-03-26 2017-01-04 中国科学院声学研究所 Bus coding and decoding device and method thereof
KR20160058503A (en) * 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 Semiconductor Memory Apparatus
US10623200B2 (en) * 2018-07-20 2020-04-14 Nvidia Corp. Bus-invert coding with restricted hamming distance for multi-byte interfaces

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520650A1 (en) * 1991-06-19 1992-12-30 AT&T Corp. Low power signaling using gray codes
JPH0969075A (en) * 1995-08-31 1997-03-11 Nippon Telegr & Teleph Corp <Ntt> Bus circuit
US5960468A (en) * 1997-04-30 1999-09-28 Sony Corporation Asynchronous memory interface for a video processor with a 2N sized buffer and N+1 bit wide gray coded counters

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877680B1 (en) * 2006-04-04 2009-01-09 삼성전자주식회사 Method and Computer readable recording media, and apparatus for interfacing between semiconductor devices using single ended parallel interface system
US7541947B2 (en) 2006-05-27 2009-06-02 Samsung Electronics Co., Ltd. Semiconductor devices, a system including semiconductor devices and methods thereof
US7830280B2 (en) 2006-05-27 2010-11-09 Samsung Electronics Co., Ltd. Semiconductor devices, a system including semiconductor devices and methods thereof
US8552891B2 (en) 2006-05-27 2013-10-08 Samsung Electronics Co., Ltd. Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US9048855B2 (en) 2006-05-27 2015-06-02 Samsung Electronics Co., Ltd Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US7688102B2 (en) 2006-06-29 2010-03-30 Samsung Electronics Co., Ltd. Majority voter circuits and semiconductor devices including the same
KR100845141B1 (en) * 2007-01-17 2008-07-10 삼성전자주식회사 Single rate interface device, dual rate interface device and dual rate interfacing method
US7746890B2 (en) 2007-01-17 2010-06-29 Samsung Electronics Co., Ltd. Interface device and inter-chip communication interface apparatus to control data transfer between chips
WO2020205060A1 (en) * 2019-03-29 2020-10-08 Intel Corporation Minimum input/output toggling rate for interfaces
US10963405B2 (en) 2019-03-29 2021-03-30 Intel Corporation Minimum input/output toggling rate for interfaces

Also Published As

Publication number Publication date
GB0312605D0 (en) 2003-07-09
GB2387943A (en) 2003-10-29
DE10196834T1 (en) 2003-11-13
AU2002211646A1 (en) 2002-05-21
WO2002039290A3 (en) 2003-04-03
WO2002039290A2 (en) 2002-05-16
CN1483166A (en) 2004-03-17

Similar Documents

Publication Publication Date Title
KR20040012677A (en) Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion
US6584526B1 (en) Inserting bus inversion scheme in bus path without increased access latency
JP4310878B2 (en) Bus emulation device
US6016066A (en) Method and apparatus for glitch protection for input buffers in a source-synchronous environment
US20070011379A1 (en) I/O energy reduction using previous bus state and I/O inversion bit for bus inversion
JP3683892B2 (en) Method and system for improved differential form transition coding
US7043670B2 (en) Reducing the effect of simultaneous switching noise
JP2968251B2 (en) How to detect a bus driver when an error occurs on a clock synchronous bus
US7436220B2 (en) Partially gated mux-latch keeper
US20190107999A1 (en) Random number generating system and random number generating method thereof
US20040088497A1 (en) Methods and apparatus for exchanging data using cyclic redundancy check codes
KR19990022495A (en) High Speed Circulation Redundancy Check System and Method Using Programmable Structure
US20220382627A1 (en) Infrastructure integrity checking
US5808485A (en) Clock clamping circuit that prevents clock glitching and method therefor
US7024618B2 (en) Transmission error checking in result forwarding
JP3591822B2 (en) Bus system and method
JP2001144620A (en) Bus system
JP2752654B2 (en) Data transmission method of scrambled code
JP2864611B2 (en) Semiconductor memory
US6990507B2 (en) Parity prediction for arithmetic increment function
JP3473746B2 (en) Data transmission / reception circuit
EP1243111A1 (en) Method and circuit for protection of a universal serial bus transceiver against short-circuit
KR100528450B1 (en) Synchronous memory device
US6304104B1 (en) Method and apparatus for reducing worst case power
KR0186166B1 (en) Error detecting device for a cd-rom driver

Legal Events

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