A digital bus is driven to the logic state of a data input signal upon activating a data enable signal. A bus keeper enable signal activates a buffer having its input and output connected to the digital bus. The data is thus buffered and driven back onto the digital bus during the active state of the bus keeper enable signal in order to retain the logic state after the data enable signal deactivates. The bus keeper enable signal remains active until a subsequent data enable signal becomes active thereby retaining the data on the bus potentially indefinitely.
|
1. A digital bus, comprising:
a plurality of data drivers each having an input coupled for receiving a data signal, an enable input coupled for receiving an enable signal, and an output coupled to the digital bus; a buffer having an input, an output, and an enable input, said input being coupled to the digital bus, said output being coupled to the digital bus for retaining the data signal on the digital bus; and a control circuit providing a second enable signal to said enable input of said buffer where said second enable signal is activated during an activate state of one of said enable signals of said plurality of data drivers, said control circuit including, (a) an OR gate having inputs coupled for receiving said enable signals for said plurality of data drivers, and (b) a nand gate having first and second inputs and an output, said first input being coupled to an output of said OR gate, said second input receiving a system clock signal, said output being coupled to said enable input of said buffer. 4. A digital bus within an integrated microprocessor, comprising:
a plurality of data drivers each having an input coupled for receiving a data signal, an enable input coupled for receiving an enable signal, and an output coupled to the digital bus; a buffer having an input, an output, and an enable input, said input being coupled to the digital bus, said output being coupled to the digital bus for retaining the data signal on the digital bus; and a control circuit providing a second enable signal to said enable input of said buffer where said second enable signal is activated during an activate state of one of said enable signals of said plurality of data drivers, said control circuit maintaining said second enable signal until a subsequent one of said enable signals of said plurality of data drivers, said control circuit including, (a) an OR gate having inputs coupled for receiving said enable signals for said plurality of data drivers, and (b) a nand gate having first and second inputs and an output, said first input being coupled to an output of said OR gate, said second input receiving a system clock signal, said output being coupled to said enable input of said buffer. 2. The digital bus of
3. The digital bus of
5. The digital bus of
6. The digital bus of
|
The present invention relates in general to digital bus architectures and, more particularly, to a digital bus data retention scheme.
Most if not all computer systems use a digital bus architecture to transfer address and data signals between the central processing unit, memory and various peripherals. Typically, data is placed on the bus by a data driver. A latching circuit then latches the data at its output for use by the appropriate end device. It is important for the data to remain valid on the bus between the time the data driver charges the bus and the time the latching circuit reads the data.
A conventional digital bus may use a pre-charge transistor to initialize the bus to say logic one. The data driver then sets the proper logic level on the bus according to a data input signal. Such a scheme relies on bus capacitance to hold the data on the bus until the latch can read it. The data retention time is thus limited by the capacitive discharge time on the bus. Another known technique is to connect the input and output of a bus keeper buffer to the data bus. The buffer is typically two series inverters with a drive capacity much less than the data drivers. Thus, the data driver simply overpowers the buffer to change logic state on the bus. Unfortunately, conventional bus keeper buffers are sensitive to noise because of their small size and may change state inadvertently from noise due to adjacent bus switching.
Hence, a need exists for a data retention scheme to maintain valid data on the data bus indefinitely while remaining robust to noise.
Briefly stated, the invention comprises a digital bus comprising a data driver having an input receiving a data input signal, an enable input receiving a first enable signal, and an output coupled to the digital bus. A buffer includes an input coupled to the digital bus, and an output coupled to the digital bus. A control circuit provides a second enable signal to an enable input of the buffer which is activated during an activate state of the first enable signal.
In another aspect, the present invention is a method of retaining data on a digital bus comprising the steps of driving the digital bus to a first logic state of a data input signal upon activating a first enable signal, buffering the first logic state on the digital bus upon activating a second enable signal during an activate state of the first enable signal, and driving the first logic state back onto the digital bus during the second enable signal to retain the first logic state on the digital bus.
FIG. 1 is a schematic diagram illustrating a digital bus architecture with data retention scheme;
FIG. 2 is a schematic diagram illustrating the control circuit of FIG. 1; and
FIG. 3 is a waveform timing diagram useful in explaining the present invention.
A dynamic digital bus 10 is shown in FIG. 1 suitable for manufacturing within an integrated circuit such as the Motorola 68020 and 68030 series microprocessors using conventional MOS integrated circuit processes. Digital bus 10 may represent one bit of a multi-bit data bus or address bus. Data driver 12 receives a data input signal and drives digital bus 10 upon receiving a data enable signal "anded" with a signal that is logic one during system clock T1 and T2 phases via AND gate 14. Latching circuit 16 receives data from digital bus 10 and latches data at its Q-output upon receiving a latch enable signal. Additional data drivers like 12 and latching circuit like 16 (not shown) with corresponding enable signals are typically coupled to digital bus 10. To provide data retention, a bus keeper buffer 18 has an input and output coupled to digital bus 10. Control circuit 20 provides a bus keeper enable signal to an enable input of buffer 18. Bus keeper buffer 18 may comprise two serially coupled transistor inverters (not shown) with an enable/disable feature where each drive transistor has a similar width to length ratio as the drive transistors of data driver 12. In other words, buffer 18 has substantially the same drive capacity as data driver 12. The large size of buffer 18 decreases its susceptibility to system noise. Thus, bus keeper buffer 18 acts as a data source to digital bus 10 and provides data retention after the data enable signal deactivates data driver 12.
Further detail of control circuit 20 is shown in FIG. 2 with OR gate 22 receiving the data enable signal for driver 12 and other data enable signals for drivers like 12. The output of OR gate 22 is coupled to a first input of NAND gate 24. The second input of NAND gate 24 receives the system clock T1 phase while its output provides the bus keeper enable signal to buffer 18.
The operation of digital bus may best be understood with the timing diagram in FIG. 3. The system clock is logically divided in four phases T1-T4 over two periods. At time t1, the data enable goes active high during the rising edge of the system clock to enable data driver 12 via AND gate 14. Digital bus 10 is brought to the logic level of the data input signal. The bus keeper enable signal remains low during the time NAND gate 24 receives logic ones from OR gate 22 and the system clock T1 phase. When the system clock enters its logic zero T2 phase at time t2, the bus keeper enable signal becomes active and enables buffer 18. The data enable signal remains active through time t2. Bus keeper buffer 18 latches the present logic state on digital bus 10 because its input was driven to that state at time t1. Thus, there is no bus contention between data driver 12 and bus keeper buffer 18. The data enable signal is removed at or before the end of the system clock T2 phase. A similar operation is shown between times t3 and t4 with the data enable signal keyed off the system clock T3 and T4 phases, i.e. AND gate 14 receives a logic one signal during the system clock T3 and T4 phases.
A key feature of the present invention is that data driver 12 holds the proper logic state on bus 10 during the system clock T1 and T2 phases while bus keeper buffer 18 holds the same logic state after time t2. Buffer 18 buffers the present logic state on the digital bus and drives that logic state back onto the digital bus during the bus keeper enable signal to retain the logic state on the digital bus. The overlap between data driver 12 and buffer 18 during the system clock T2 phase provides immunity from system noise and assures that bus 10 is always driven by at least one source in order to prevent glitches. The data enable signal may deactivate after time t2 to minimize its time on bus 10 and provide set-up time for the next data enable signal. The bus keeper enable signal remains at logic one until the next activation of a data enable signal thereby maintaining data retention potentially indefinitely. The latch enable signal may latch the data at the Q-output of latching circuit 16 any time after time t1.
Digital bus 10 may be extended to systems using multiple bus segments separated by bi-directional buffers such as utilized by Motorola 68020 and 68030 microprocessors. Each bus segment will have its own bus keeper buffer 18 and control circuit 20.
While specific embodiments of the present invention have been shown and described, further modifications and improvements will occur to those skilled in the art. It is understood that the invention is not limited to the particular forms shown and it is intended for the appended claims to cover all modifications which do not depart from the spirit and scope of this invention.
Patent | Priority | Assignee | Title |
10762027, | Apr 13 2018 | Hamilton Sundstrand Corporation | Method and system for output latch based data bus failure mitigation |
5668482, | Mar 15 1996 | Texas Instruments Incorporated | Bus maintenance circuit |
5793363, | Nov 02 1994 | Texas Instruments Incorporated | Flat panel display driver |
5954825, | Apr 11 1997 | GOOGLE LLC | Method for isolating faults on a clocked synchronous bus |
6172519, | Dec 18 1997 | XILINX, Inc.; Xilinx, Inc | Bus-hold circuit having a defined state during set-up of an in-system programmable device |
6301160, | Feb 09 1999 | Kabushiki Kaisha Toshiba | Bus driving circuit and memory device having same |
6351489, | Sep 30 1996 | Rosemount Inc.; Rosemount Inc | Data bus communication technique for field instrument |
6433600, | Mar 19 1998 | Intel Corporation | Method and apparatus for glitch protection for input buffers in a source-synchronous environment |
6449196, | Feb 09 1999 | Kabushiki Kaisha Toshiba | Bus driving circuit and memory device having same |
6484267, | Dec 29 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Clock gated bus keeper |
6486709, | Sep 29 2000 | Oracle America, Inc | Distributing data to multiple destinations within an asynchronous circuit |
6570792, | Feb 09 1999 | Kabushiki Kaisha Toshiba | Bus driving circuit and memory device having same |
6700825, | Sep 29 2000 | Oracle America, Inc | Implementation of a multi-dimensional, low latency, first-in first-out (FIFO) buffer |
6725305, | Dec 29 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for using a bus as a data storage node |
7698586, | Jan 31 2005 | Samsung Electronics Co., Ltd. | System and apparatus for allowing data of a module in power saving mode to remain accessible |
7804334, | Jul 29 2008 | Qualcomm Incorporated | High signal level compliant input/output circuits |
8106699, | Jul 29 2008 | Qualcomm Incorporated | High signal level compliant input/output circuits |
8138814, | Jul 29 2008 | Qualcomm Incorporated | High signal level compliant input/output circuits |
8593203, | Jul 29 2008 | Qualcomm Incorporated | High signal level compliant input/output circuits |
8717064, | Feb 18 2010 | Renesas Electronics Corporation | Semiconductor integrated circuit |
Patent | Priority | Assignee | Title |
4298982, | Jun 03 1980 | Lockheed Martin Corporation | Fault-tolerant interface circuit for parallel digital bus |
4320452, | Jun 29 1978 | Standard Oil Company (Indiana) | Digital bus and control circuitry for data routing and transmission |
4774422, | May 01 1987 | Digital Equipment Corporation | High speed low pin count bus interface |
4801813, | Apr 17 1986 | TechSearch, LLC | Event distribution and combination system |
5007012, | Sep 09 1988 | GLOBALFOUNDRIES Inc | Fly-by data transfer system |
5230067, | May 11 1988 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 26 1993 | ABDOO, DAVID G | Motorola, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 006649 | /0299 | |
Aug 02 1993 | Motorola, Inc. | (assignment on the face of the patent) | / | |||
Apr 04 2004 | Motorola, Inc | Freescale Semiconductor, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015698 | /0657 | |
Dec 01 2006 | Freescale Semiconductor, Inc | CITIBANK, N A AS COLLATERAL AGENT | SECURITY AGREEMENT | 018855 | /0129 | |
Dec 01 2006 | FREESCALE ACQUISITION CORPORATION | CITIBANK, N A AS COLLATERAL AGENT | SECURITY AGREEMENT | 018855 | /0129 | |
Dec 01 2006 | FREESCALE ACQUISITION HOLDINGS CORP | CITIBANK, N A AS COLLATERAL AGENT | SECURITY AGREEMENT | 018855 | /0129 | |
Dec 01 2006 | FREESCALE HOLDINGS BERMUDA III, LTD | CITIBANK, N A AS COLLATERAL AGENT | SECURITY AGREEMENT | 018855 | /0129 | |
Apr 13 2010 | Freescale Semiconductor, Inc | CITIBANK, N A , AS COLLATERAL AGENT | SECURITY AGREEMENT | 024397 | /0001 | |
Aug 14 2012 | Freescale Semiconductor, Inc | ZOZO MANAGEMENT, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034034 | /0236 | |
Dec 19 2014 | ZOZO MANAGEMENT, LLC | Apple Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034732 | /0019 | |
Dec 07 2015 | CITIBANK, N A , AS COLLATERAL AGENT | Freescale Semiconductor, Inc | PATENT RELEASE | 037354 | /0225 |
Date | Maintenance Fee Events |
Nov 16 1999 | REM: Maintenance Fee Reminder Mailed. |
Mar 20 2000 | M183: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 20 2000 | M186: Surcharge for Late Payment, Large Entity. |
Sep 26 2003 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 14 2007 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 23 1999 | 4 years fee payment window open |
Oct 23 1999 | 6 months grace period start (w surcharge) |
Apr 23 2000 | patent expiry (for year 4) |
Apr 23 2002 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 23 2003 | 8 years fee payment window open |
Oct 23 2003 | 6 months grace period start (w surcharge) |
Apr 23 2004 | patent expiry (for year 8) |
Apr 23 2006 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 23 2007 | 12 years fee payment window open |
Oct 23 2007 | 6 months grace period start (w surcharge) |
Apr 23 2008 | patent expiry (for year 12) |
Apr 23 2010 | 2 years to revive unintentionally abandoned end. (for year 12) |