Abstract:
A circuit for waking a microprocessor from a sleep mode and providing it with its microprocessor clock long enough for a refresh, direct memory access (DMA) or master cycle operation to be done by external circuitry. The clock signal is then removed from the microprocessor to put it back into the sleep mode, thereby conserving energy. A hold signal is provided to the microprocessor to cause the microprocessor outputs to be put into a tri-state, high impedance condition, and thus relinquish control of the external bus to the external refreshing circuitry.

Description:
BACKGROUND 
     The present invention relates to circuits for refreshing dynamic memory during a microprocessor sleep mode. 
     In personal computers which are portable and operate off batteries, it is desirable to be able to put the computer system into a &#34;sleep&#34; mode to reduce power consumption. It is not possible to simply turn off all the circuitry, since dynamic random access memories (DRAM) must periodically receive a refresh signal so that the memory contents will not be lost. Many systems use a microprocessor and a separate memory management unit for controlling accesses to DRAM. Since the memory management unit is interposed between the dynamic memory and the microprocessor, the microprocessor can simply be turned off (by removing its clock) and the memory management unit itself can control the refreshing of the DRAM. However, it is possible that additional DRAM memory may be inserted in the I/0 space of the system, where it would be directly coupled to the address and data bus of the microprocessor. Any dynamic memory connected to the microprocessor bus must either be refreshed by the microprocessor itself, or the microprocessor I/0 circuits must be put into a tri-state, high impedance condition so that external circuitry can take control of the bus and do the refresh operation. In order to enter the tri-state condition, the microprocessor must be activated and be receiving its clock signal, and thus cannot be in a sleep mode. 
     SUMMARY OF THE INVENTION 
     The present invention provides a circuit for waking a microprocessor from a sleep mode and providing it with its microprocessor clock long enough for a refresh, direct memory access (DMA) or master cycle operation to be done by external circuitry. The clock signal is then removed from the microprocessor to put it back into the sleep mode, thereby conserving energy. A hold signal is provided to the microprocessor to cause the microprocessor outputs to be put into a tri-state, high impedance condition, and thus relinquish their control of the external bus. 
     The microprocessor is thus provided with the minimum clock frequency (and thus minimum power) during sleep, while providing a higher clock frequency to perform the refresh, thereby enabling the refresh to be quickly accomplished. 
     Certain microprocessors must have their clock provided so they can relinquish the bus for refresh, DMA and master cycle operations. During sleep, some microprocessors require a lower frequency clock while others (such as the Harris 80C286) can have the clock stopped. Certain of these microprocessors have an internal clock, which is a divided-down by 2 version of the supplied clock, which must be stopped and started in a certain phase for power conservation purposes. The present invention starts and stops the microprocessor clock in the correct phase of the microprocessor&#39;s internal, divided-down clock. This is accomplished by duplicating the microprocessor&#39;s internal divided-down clock to align the phases. 
     The present invention also provides a variety of divided versions of an external master clock which can be used for the sleep mode. Without knowing what master clock frequency would be provided, it would normally be necessary to reprogram a register to divide the actual clock provided by the appropriate number to give the necessary sleep frequency. Since some systems may provide a lower frequency clock than others, without appropriately programming the divide, a fixed divide might provide too slow of a clock frequency for the microprocessor. Accordingly, the present invention, by providing a plurality of divided versions of the external clock and a multiplexing circuit, enables a selection of an appropriate value by a simple input to the multiplexer, eliminating the need to reprogram an internal register. 
     For a fuller understanding of the nature and advantages of the invention, reference should be made to the ensuing detailed description taken in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a system incorporating the sleep mode refresh apparatus of the present invention; 
     FIG. 2 is a timing diagram showing the signals generated by the circuit of FIG. 1; 
     FIG. 3 is a block diagram showing the generation of the different clock frequencies according to the present invention; 
     FIG. 4 is a block diagram showing the circuitry for controlling the processor clock for putting into a sleep or awake mode; and 
     FIG. 5 is a timing diagram showing the internal processor divide by 2 clock. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 shows a microprocessor 10 coupled to a system address and data bus 12. A system controller 14 is coupled to the same bus, and has an output local memory address bus 16 connected to local DRAM memory 18. System controller 14 controls the refreshing of local memory 18 over address bus 16, and can do this without help from the microprocessor, which has no direct connection to local memory 18. System controller 14 includes a CPU/BUS controller and a page/interleave and EMS memory controller, such as those in Chips and Technologies&#39; parts 82C211 and 82C212. The circuit of system controller 14 is operated with a external clock oscillator 28 which preferably provides a 32 MHz clock. 
     Additional DRAM memory on an AT memory board 13 is connected to address bus 12 and is refreshed by a DRAM controller 19 on board 13. In order for DRAM controller 19 to send the necessary refresh signals, the outputs of microprocessor 10 must be put into a high impedance, tri-state condition. 
     In a sleep mode, the clock to microprocessor 10 is provided by system controller 14 on a PCLK line 22. The sleep clock frequency may be greatly reduced or zero, depending on the type of microprocessor used. A power control unit 20 includes an internal timer which periodically generates a refresh request signal. One power control unit is part number 82C636 available from Chips and Technologies. When system controller 14 receives the refresh request signal on line 24 from power control unit 20, an awake clock frequency is provided on line 22 to microprocessor 10. A hold signal is also provided on line 26 to microprocessor 10 to cause the outputs of microprocessor 10 to enter the tri-state condition, releasing bus 12. The awake clock frequency and hold signal are also generated for DMA and master cycles. DMA and master cycle requests are indicated by a hold request (HRQ) signal on a line 21 from an integrated peripheral controller 15. 
     The relative timing of the signals can be seen from FIG. 2. After a transition of the refresh request signal (REF. REQ.), the sleep/awake clock signal causes the PCLK to operate at an appropriate frequency. A hold signal is provided to the microprocessor to put its outputs in the tri-state condition. After a hold acknowledge (HOLD ACK) signal is received back from the microprocessor, refresh is commenced by system controller 14 providing the REF signal on line 17 to DRAM controller 19 on AT memory board 13. While the hold signal, and thus the REF signal, is high, refresh signals to refresh the dynamic memory on bus 12 are generated by DRAM controller 19. At the same time, system controller 14 provides refresh signals to local memory 18. This timing is not necessary for local memory 18, however, since control of AT bus 12 is not needed. The hold signal is held high for a period of time sufficient for the refresh process to complete. When the hold signal is removed, the sleep clock is again provided to the microprocessor. 
     FIG. 3 is a block diagram of the portions of system controller 14 used to provide the sleep clock in the present invention. The PCLK signal on line 22 is provided from a multiplexer 30 which uses either a sleep (S) or awake (A) input in accordance with a sleep select line 32. The sleep input is in turn provided by a multiplexer 34, which has two inputs. One input is a grounded input 36 for microprocessors which can have their clock completely shut off during a sleep mode. The other input on a line 38 provides a clock of some frequency for microprocessors which can operate on a low frequency during sleep, but cannot be turned off. This frequency signal is provided by a multiplexer 40 which either provides an external clock CLK2IN from multiplexer 42 or a divided version of that clock from one of multiplexers 44, 46 and 48. 
     While a sleep is in operation, an AT system clock, ATSYSCLK, is provided to memory control circuit 20 and the other operating circuits from the output of a multiplexer 50 at the bottom of FIG. 3. Multiplexer 50 receives its signal either from multiplexer 44 after passing through a divide by 2 circuit 52 or from a multiplexer 54. Multiplexer 54 can provide the external clock CLK2IN after being divided by 4 by a divide by 4 circuit 56. 
     Multiplexers 30, 42 and 50 are selected by the sleep mode signal, AWAKE. The remaining multiplexers are selected according to register values which are provided to the select inputs. 
     FIG. 4 shows the generation of the AWAKE signal for FIG. 3. A register 60 provides a sleep enable bit on a line 62 to an AND gate 64. This bit is set to enable the sleep mode. The sleep mode will be entered only if the other two inputs of AND gate 64 are also true. One of these inputs is the INSLEEP signal on line 66 from latch 68. This latch is a value on a line 70 from register 60. The signal is present unless an interrupt signal (INTR) or non-maskable interrupt (NMI) is provided to the reset input of latch 68 through OR gate 72. This mechanism allow the interrupt or non-maskable interrupt to cause an exit from the sleep mode (for DMA or master cycle). The other input from AND gate 64 is from halt detect logic 74 which has inputs which are decoded to determine when there has been a halt in the program operation. 
     The halt signal on line 76 is provided to latch 78. The output of latch 78 is provided as a sleep signal on line 80 to an AND gate 82. The output of AND gate 82 is the AWAKE signal on line 32 of FIG. 3. 
     The other input of AND gate 82 is from the output of a latch 84. Latch 84 is triggered by a NOR gate 86 which requires the presence of either a hold signal on line 88 or a hold acknowledge signal on line 90. The hold signal is generated in response to a refresh request, DMA, or master cycle signal on a line 24 to latch 92. The output of latch 92 is provided to the normal hold generation logic 94, which then generates the hold signal. The hold acknowledge is provided back from the microprocessor. While only the hold signal is needed to start the awake clock, both the hold and hold acknowledge must be removed before the microprocessor is put back to sleep. 
     Latches 78 and 84 are clocked by a microprocessor internal clock replica generator 96. Clock circuit 96 includes a divide by 2 circuit which mimics the internal divide by 2 clock of the microprocessor to ensure that the microprocessor is awakened and put to sleep in the same phase as the internal divide by 2 clock of the microprocessor. This is illustrated in FIG. 5. As can be seen in FIG. 5, the processor clock (PRO CLK) can have a low value at points 98 or 100, which appear identical. However, the internal processor clock divide by 2 is at a high state 102 for portion 98 and a low state, or alternate phase, at a portion 104 corresponding to portion 100 of the processor clock. Since some microprocessors will use less power and operate more efficiently if they are stopped and started in the second phase, this tracking circuit allows waking from sleep in the first phase to conserve power. This also requires that the processor clock be put to sleep in a known phase, which is done by using the same clock from circuit 96 to latch the halt signal. Latches 78 and 84 thus insure that the microprocessor clock is stopped and started, respectively, in the correct phase. 
     As will be understood by those familiar with the art, the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. For example, the microprocessor clock could have fewer or a greater number of selections of clock frequencies during the sleep mode. Also, the frequency of the microprocessor clock during the sleep mode refresh could be less than its normal awake frequency. Accordingly, the disclosure of the present embodiment of the invention is intended to be illustrative, but not limiting, of the scope of the invention which is set forth in the following claims.