WO2002039290A2 - 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 PDFInfo
- Publication number
- WO2002039290A2 WO2002039290A2 PCT/US2001/031816 US0131816W WO0239290A2 WO 2002039290 A2 WO2002039290 A2 WO 2002039290A2 US 0131816 W US0131816 W US 0131816W WO 0239290 A2 WO0239290 A2 WO 0239290A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- bits
- inversion signal
- inversion
- bus
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
Definitions
- the present invention pertains to the field of computer systems. More particularly, this invention pertains to the field of reducing simultaneous switching output noise on a data bus.
- simultaneous switching output noise This noise results from several to many output drivers on a particular device switching states at the same time.
- One example of this may include a system logic device driving 32 bits of data at once to a graphics device over a graphics bus.
- the system logic device may drive 32 bits of "P's during one clock period and then drive 32 bits of "0"s during the next clock period, h this example all of the graphics bus bits change state from one clock period to the next.
- Such transitions may induce simultaneous switching output noise on some or all of the 32 data lines and limit the possible clock frequency for the graphics bus, thereby limiting the potential performance of the graphics subsystem.
- Figure 1 is a block diagram of an embodiment of a system including a system logic device having a dynamic bus inversion encoder and a graphics device having a dynamic bus inversion decoder.
- Figure 2 is a block diagram of an embodiment of a dynamic bus inversion encoder.
- Figure 3 is a flow diagram of an embodiment of a method for reducing simultaneous switching output noise using dynamic bus inversion.
- FIG. 1 is a block diagram of an embodiment of a system 100 including a system logic device 120 having a dynamic bus inversion (DBI) encoder 200 and a graphics device 130 having a DBI decoder 124.
- the system 100 also includes a processor 110 coupled to the system logic device 120.
- the system logic device is further coupled to a system memory 140 and an input/output hub 150.
- DBI dynamic bus inversion
- the system logic device 120 is coupled to the graphics device 130 by way of an output data bus 203 and an inversion signal 205.
- the DBI encoder 200 compares a set of data bits previously placed on the output data bus 203 with a next set of data bits to be placed on the data bus 203.
- the DBI encoder 200 determines how many data bit transitions would occur on the data bus 203 as a result of the next set of data bits being driven on the data bus 203 following the previous set of data bits. If the number of potential data bit transitions is greater than a predetermined number, then the DBI encoder 200 inverts each data bit in the next set of data bits and drives the inverted data onto the output data bus 203.
- the DBI encoder 200 asserts the inversion signal 205 to indicate to the DBI decoder 124 that the data bits have been inverted.
- the DBI decoder 124 then inverts the inverted data bits in order to restore the original data.
- the predetermined number is selected to produce the fewest bit transitions.
- the predetermined number is selected to equal one half of the data width. For example, for a group of 16 bits of data, the predetermined number would be 8. Therefore, if more than 8 data bits would change state, the data bits are inverted and the inversion signal is asserted.
- the DBI embodiment described above reduces the amount of simultaneous switching output noise by limiting the number of bit transitions occurring on the output data bus.
- An embodiment of the decoder 124 includes an XOR circuit that performs an XOR function on the incoming data and the inversion signal. In this manner, if no inversion is indicated (the inversion signal 205 is a "0") then the incoming data is not inverted by the decoder 124. If an inversion is indicated (the inversion signal 205 is a "1") then each bit of incoming data is inverted by the decoder 124 in order to restore the original data.
- system 100 shows a single data bus and a single inversion signal
- the data bus 203 may be divided into two or more groups. For example, a 32 bit bus may be divided into two groups of 16 bits each. Other configurations are possible. Inversion decisions are then made by the encoder 200 on a group-by-group basis. Each group utilizes its own inversion signal.
- Figure 2 is a block diagram of an embodiment of the dynamic bus inversion encoder 200.
- Data to be delivered over the output data bus 203 is delivered to the encoder 200 via an internal data bus 201.
- the internal data bus 201 and the output data bus 203 are 16 bits wide.
- Other embodiments are possible with a data width of 32 bits organized into two groups of 16 bits each.
- Still other embodiments are possible with other data organizations and groupings.
- the internal data 201 is delivered to both an XOR circuit 210 and an inverter
- the XOR circuit 210 also receives output data 203.
- the output data 203 represents a current set of data bits.
- An XOR operation is performed on the input data 201 and the output data 203.
- An inversion determination circuit 240 receives the output of the XOR operation and determines whether the number of data bit transitions found by the XOR operation exceeds a predetermined number.
- the predetermined number is eight. Other embodiments are possible using other predetermined numbers. It is also possible to implement the encoder 200 using a programmable predetermined number. If the inversion determination circuit 240 determines that the number of data bit transitions exceeds the predetermined number, an internal inversion signal 209 is asserted. The internal inversion signal 209 is delivered to the multiplexor 230 and a latch
- the multiplexor 230 delivers the output of the inverter circuit 220 to a latch 250. If the internal inversion signal is not asserted, then the multiplexor 230 delivers the non-inverted internal data to the latch 250. The latch 250 then latches the output of the multiplexor 230 onto the output data bus 203. The internal inversion signal 209 is latched onto the inversion signal 205.
- the inverter 220/multiplexor 230 combination may be implemented as an XOR circuit where the internal data bus bits 201 are each XORed with the internal inversion signal 209.
- the internal inversion signal 209 When the internal inversion signal 209 is asserted, then each of the internal data bits 201 are inverted and delivered to the input of the latch 250. If the internal inversion signal 209 is not asserted, then the XOR operation will leave the internal data bits 201 unchanged.
- Figure 3 is a flow diagram of an embodiment of a method for reducing simultaneous switching output noise using dynamic bus inversion.
- a first n bits of data are delivered over a data bus.
- the number of bit transitions between the first n bits of data and a second n bits of data are counted at block 320.
- the next n bits of data are inverted at block 340.
- the inverted next n bits of data are delivered over the data bus at block 360.
- An inversion signal is also asserted at block 360. If the counted bit transitions do not exceed the predetermined number, then the next n bits of data are delivered over the data bus at block 350.
- the preceding embodiment of a method may be repeated for every subsequent n bits of data to be delivered over the data bus.
- n equals 16 and the predetermined number is eight, although other embodiments are possible using other data widths and predetermined numbers.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dc Digital Transmission (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2002211646A AU2002211646A1 (en) | 2000-11-07 | 2001-10-12 | Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion |
| KR10-2003-7006227A KR20040012677A (en) | 2000-11-07 | 2001-10-12 | Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion |
| GB0312605A GB2387943A (en) | 2000-11-07 | 2001-10-12 | Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion |
| DE10196834T DE10196834T1 (en) | 2000-11-07 | 2001-10-12 | Method and device for reducing simultaneous switching output noise using dynamic bus inversion |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US70822100A | 2000-11-07 | 2000-11-07 | |
| US09/708,221 | 2000-11-07 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2002039290A2 true WO2002039290A2 (en) | 2002-05-16 |
| WO2002039290A3 WO2002039290A3 (en) | 2003-04-03 |
Family
ID=24844882
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2001/031816 Ceased WO2002039290A2 (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 (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1380961A1 (en) * | 2002-07-10 | 2004-01-14 | STMicroelectronics S.r.l. | Process and device for reducing bus switching activity and computer program product therefor |
| EP1403775A1 (en) * | 2002-09-25 | 2004-03-31 | STMicroelectronics S.r.l. | Process and devices for transmiting digital signals over buses and computer program product therefor |
| EP1403774A1 (en) * | 2002-09-25 | 2004-03-31 | STMicroelectronics S.r.l. | Process and devices for transmitting digital signals over buses and computer program product therefor |
| GB2394088A (en) * | 2002-08-21 | 2004-04-14 | Nec Corp | Output circuit and method that inverts the data byte if the number of changed bits compared with the last byte is more than half the total number of bits. |
| WO2006000944A1 (en) * | 2004-06-21 | 2006-01-05 | Koninklijke Philips Electronics N.V. | Data processing system and method for interconnect arbitration |
| EP1406388A3 (en) * | 2002-10-05 | 2006-12-20 | SAMSUNG ELECTRONICS Co. Ltd. | Integrated circuit devices having data inversion circuits therein that reduce simultaneous switching noise and support interleaving of parallel data |
| WO2007093906A1 (en) * | 2006-02-17 | 2007-08-23 | Ati Technologies, Inc | Dynamic bus inversion method and system |
| US7408482B2 (en) | 2003-03-26 | 2008-08-05 | Samsung Electronics Co., Ltd. | Integrated circuit devices having data inversion circuits therein with multi-bit prefetch structures and methods of operating same |
| US7466608B2 (en) | 2005-11-08 | 2008-12-16 | Samsung Electronics Co., Ltd. | Data input/output circuit having data inversion determination function and semiconductor memory device having the same |
| US7764792B1 (en) * | 2005-01-13 | 2010-07-27 | Marvell International Ltd. | System and method for encoding data transmitted on a bus |
| CN101788967A (en) * | 2010-03-09 | 2010-07-28 | 西安电子科技大学 | Encoding and decoding method for crosstalk resistant on-chip bus and encoding and decoding device thereof |
| WO2011130059A1 (en) * | 2010-04-12 | 2011-10-20 | Advanced Micro Devices, Inc. | Reducing simultaneous switching outputs using data bus inversion signaling |
| CN103885913A (en) * | 2014-03-26 | 2014-06-25 | 中国科学院声学研究所 | Bus encoding and decoding device and method thereof |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100877680B1 (en) * | 2006-04-04 | 2009-01-09 | 삼성전자주식회사 | Single parallel data interface method between semiconductor devices, recording medium and semiconductor device |
| KR100782327B1 (en) | 2006-05-27 | 2007-12-06 | 삼성전자주식회사 | Single parallel data interface method between semiconductor devices, recording medium and semiconductor device |
| 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 |
| 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 |
| 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 |
| US10963405B2 (en) | 2019-03-29 | 2021-03-30 | Intel Corporation | Minimum input/output toggling rate for interfaces |
Family Cites Families (3)
| 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 |
-
2001
- 2001-10-12 AU AU2002211646A patent/AU2002211646A1/en not_active Abandoned
- 2001-10-12 GB GB0312605A patent/GB2387943A/en not_active Withdrawn
- 2001-10-12 DE DE10196834T patent/DE10196834T1/en not_active Withdrawn
- 2001-10-12 CN CNA018183921A patent/CN1483166A/en active Pending
- 2001-10-12 KR KR10-2003-7006227A patent/KR20040012677A/en not_active Ceased
- 2001-10-12 WO PCT/US2001/031816 patent/WO2002039290A2/en not_active Ceased
Cited By (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6933863B2 (en) | 2002-07-10 | 2005-08-23 | Stmicroelectronics S.R.L. | Process and device for reducing bus switching activity and computer program product therefor |
| EP1380961A1 (en) * | 2002-07-10 | 2004-01-14 | STMicroelectronics S.r.l. | Process and device for reducing bus switching activity and computer program product therefor |
| GB2394088A (en) * | 2002-08-21 | 2004-04-14 | Nec Corp | Output circuit and method that inverts the data byte if the number of changed bits compared with the last byte is more than half the total number of bits. |
| US6946867B2 (en) | 2002-08-21 | 2005-09-20 | Nec Corporation | Data output circuit and data output method |
| GB2394088B (en) * | 2002-08-21 | 2005-10-12 | Nippon Electric Co | Data output circuit and data output method |
| US7372916B2 (en) | 2002-09-25 | 2008-05-13 | Stmicroelectronics S.R.L | Process and devices for transmitting digital signals over buses and computer program product therefore |
| EP1403775A1 (en) * | 2002-09-25 | 2004-03-31 | STMicroelectronics S.r.l. | Process and devices for transmiting digital signals over buses and computer program product therefor |
| EP1403774A1 (en) * | 2002-09-25 | 2004-03-31 | STMicroelectronics S.r.l. | Process and devices for transmitting digital signals over buses and computer program product therefor |
| US6943706B2 (en) | 2002-09-25 | 2005-09-13 | Stmicroelectronics S.R.L. | Process and devices for transmitting digital signals over buses and computer program product therefore |
| US7991081B2 (en) | 2002-09-25 | 2011-08-02 | Stmicroelectronics S.R.L. | Process and devices for transmitting digital signals over buses and computer program product therefore |
| EP1406388A3 (en) * | 2002-10-05 | 2006-12-20 | SAMSUNG ELECTRONICS Co. Ltd. | Integrated circuit devices having data inversion circuits therein that reduce simultaneous switching noise and support interleaving of parallel data |
| US7408482B2 (en) | 2003-03-26 | 2008-08-05 | Samsung Electronics Co., Ltd. | Integrated circuit devices having data inversion circuits therein with multi-bit prefetch structures and methods of operating same |
| WO2006000944A1 (en) * | 2004-06-21 | 2006-01-05 | Koninklijke Philips Electronics N.V. | Data processing system and method for interconnect arbitration |
| CN100541461C (en) * | 2004-06-21 | 2009-09-16 | Nxp股份有限公司 | Data processing system and method for interconnect arbitration |
| US7698514B2 (en) | 2004-06-21 | 2010-04-13 | Nxp B.V. | Data processing system and method for interconnect arbitration |
| USRE45334E1 (en) * | 2005-01-13 | 2015-01-13 | Marvell International Ltd. | System and method for encoding data transmitted on a bus |
| US7764792B1 (en) * | 2005-01-13 | 2010-07-27 | Marvell International Ltd. | System and method for encoding data transmitted on a bus |
| USRE44777E1 (en) | 2005-01-13 | 2014-02-25 | 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 |
| US7466608B2 (en) | 2005-11-08 | 2008-12-16 | Samsung Electronics Co., Ltd. | Data input/output circuit having data inversion determination function and semiconductor memory device having the same |
| WO2007093906A1 (en) * | 2006-02-17 | 2007-08-23 | Ati Technologies, Inc | Dynamic bus inversion method and system |
| EP2600578A1 (en) * | 2006-02-17 | 2013-06-05 | ATI Technologies Inc. | Dynamic bus inversion method and system |
| CN101788967A (en) * | 2010-03-09 | 2010-07-28 | 西安电子科技大学 | Encoding and decoding method for crosstalk resistant on-chip bus and encoding and decoding device thereof |
| WO2011130059A1 (en) * | 2010-04-12 | 2011-10-20 | Advanced Micro Devices, Inc. | Reducing simultaneous switching outputs using data bus inversion signaling |
| US8260992B2 (en) | 2010-04-12 | 2012-09-04 | Advanced Micro Devices, Inc. | Reducing simultaneous switching outputs using data bus inversion signaling |
| CN103885913A (en) * | 2014-03-26 | 2014-06-25 | 中国科学院声学研究所 | Bus encoding and decoding device and method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2387943A (en) | 2003-10-29 |
| WO2002039290A3 (en) | 2003-04-03 |
| AU2002211646A1 (en) | 2002-05-21 |
| DE10196834T1 (en) | 2003-11-13 |
| CN1483166A (en) | 2004-03-17 |
| GB0312605D0 (en) | 2003-07-09 |
| KR20040012677A (en) | 2004-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2002039290A2 (en) | Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion | |
| US6433600B2 (en) | Method and apparatus for glitch protection for input buffers in a source-synchronous environment | |
| US7216187B2 (en) | Memory system including a circuit to convert between parallel and serial bits | |
| US6687721B1 (en) | Random number generator with entropy accumulation | |
| US5511170A (en) | Digital bus data retention | |
| JP3683892B2 (en) | Method and system for improved differential form transition coding | |
| US20050127947A1 (en) | Output buffer slew rate control using clock signal | |
| US6721918B2 (en) | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect | |
| US5748902A (en) | Polarity switched data bus for reduced electromagnetic interference | |
| US20030158991A1 (en) | Transceiver circuitry for sending and detecting OOB signals on serial ATA buses | |
| US5349666A (en) | Reduced power line fluctuation/noise circuit by increasing impedance level when number of bus lines simultaneously change state exceeds the predetermined number | |
| US6118297A (en) | Voting circuit and method | |
| US7436220B2 (en) | Partially gated mux-latch keeper | |
| JP3509894B2 (en) | Parallelized size comparator | |
| WO2005006691A1 (en) | Low power differential link interface methods and apparatuses | |
| US7057415B2 (en) | Output buffer compensation control | |
| US5675271A (en) | Extended chip select reset apparatus and method | |
| EP0793181A1 (en) | Data transmission system between master and slave and slave using the same | |
| US6931075B2 (en) | Event detection with a digital processor | |
| US5983300A (en) | Dynamic window mechanism for preventing invalid information propagation from the PCI bus | |
| JP2864611B2 (en) | Semiconductor memory | |
| JP3305968B2 (en) | Signal transfer device | |
| EP1094396A2 (en) | Bus system suitable for increasing transmission speed | |
| JP2000207073A (en) | System and method for bus | |
| US7813447B2 (en) | Apparatus, system, and method for dynamic phase equalization in a communication channel |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| ENP | Entry into the national phase |
Ref document number: 0312605 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20011012 |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 018183921 Country of ref document: CN Ref document number: 1020037006227 Country of ref document: KR |
|
| RET | De translation (de og part 6b) |
Ref document number: 10196834 Country of ref document: DE Date of ref document: 20031113 Kind code of ref document: P |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 10196834 Country of ref document: DE |
|
| 122 | Ep: pct application non-entry in european phase | ||
| WWP | Wipo information: published in national office |
Ref document number: 1020037006227 Country of ref document: KR |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |
|
| WWR | Wipo information: refused in national office |
Ref document number: 1020037006227 Country of ref document: KR |