Abstract:
A microcomputer that reduces through current of output buffers, and thus, reduces power line fluctuation that occurs when a large number of the bus lines connected to output buffers change state at the same time. The through current (or punch-through current) is reduced through the use of a detector circuit that detects the number of bus lines which are changing state and a decoder circuit that changes the impedance of output buffers, which drive the bus lines to external components, when the number of bus lines changing state at a given time exceeds a predetermined number.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to one-chip microcomputers which can be connected to an external memory. 
     2. Description of the Prior Art 
     When address and other data are sent from a one-chip microcomputer to an external memory, the one-chip microcomputer outputs bus data from an output terminal via an output buffer. FIG. 4 is a block diagram showing the buses and signal output unit of a conventional one-chip microcomputer. In the figure, plural address buses 1a-1c, the number of which is equal to the bit count of an address of the one-chip microcomputer, are connected to output terminals 5a-5c through output buffers 2a-2c; 40 is the CPU; 41 the working RAM; and 42 the external memory. CPU 40 is also connected with data line d, clock line CLK, and enable line EN. 
     FIG. 5 is a timing diagram showing the operation of an address signal output unit of the one-chip microcomputer shown in FIG. 4. In the figure, 14 is the internal clock output from CPU 40; 15 is the enable signal; 16 shows a signal from one of address buses 1a-1c output as an inverse of the previous bus state (i.e., H→L or L→H); 20 is an output signal from one of buffers 2a-2c to which address signal 16 is input; through current 21 flows to output buffers 2a-2c when signals from the output buffers are inversed-e.g., when output signal 20 from output buffer 2a changes from &#34;H&#34; to &#34;L&#34; or from &#34;L&#34; to &#34;H.&#34; Further, when reading external memory 42, enable signal 15 returns data signal 22 on data line d while the L state is on, following a duration t2 after the detection of an address signal in output signal 20 from output buffer 2a-2c. 
     Due to the structure described above, an address bus signal output unit is a conventional one-chip microcomputer generates a large external load capacity when connected to external memory 42, and must thus be driven by an output buffer with large-sized transistors. When plural output buffers change state, plural address signal lines also change state at the same time within the short time period ta, causing a large amount of through current to flow to the output buffers. This through current becomes great as the number of address buses changing state at the same time increases, causing a flow of reverse current in the power line and therefore current fluctuations, which are a cause of malfunctions in one-chip microcomputers. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is the object of the invention to provide a microcomputer that eliminates the problem described above, whereby current fluctuations and subsequent malfunctions do now occur when a large number of address buses change state at the same time. 
     According to the invention there is provided a one-chip microcomputer which determines the number of buses in which signal changes have occurred on the basis of the output from detector circuit 6 which detects signal changes in the various buses, then raises the impedance of variable-impedance buffers Ba-Bc when the number of buses exceeds a set number N. 
     When the detector signal from detector circuit 6 is input to decoder 10, and the total of buses 1a-1c experiencing state changes exceed a specified number, decoder 10 raises the impedance of the variable-impedance buffer units as described above, causing a delay in the signals from output units Ba-Bc in respect to signals in buses 1a-1c. 
     The above and other objects, features, and advantages of the Invention will become more apparent from the following description when taken in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing the structure of a microcomputer according to an embodiment of the invention; 
     FIG. 2 is a timing chart showing the operation of the microcomputer of FIG. 1; 
     FIG. 3 is a diagram of another embodiment of the invention; 
     FIG. 4 is block diagram showing the structure of a conventional microcomputer; 
     FIG. 5 is a timing chart showing the operation of a conventional microcomputer. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 is a block diagram of the address buses and signal output unit of an embodiment according to the invention. In the figure, 1a-1c are address buses whose total number is equal to the bit count of an address of the microcomputer. Address buses 1a-1c are connected to output buffers 3a-3c through to output terminals 5a-5c. Output buffers 3a-3c are connected in parallel to other output buffers 4a-4c. The combined impedance of parallel output buffers 3a-3c and 4a-4c is equal to the impedance of a single conventional output buffer (2a-2c in FIG. 3). If the impedance of output buffers 3a, 4a,, etc. is Z, then the combined impedance of parallel output buffers 3a, 4a, etc. is 
     
         1/Zm=1/Z+1/Z, Zm=Z/2. 
    
     The impedance is thus halved when the output buffers are linked in parallel. Parallel output buffers 3a-3c and 4a-4c are comprised of variable-impedance buffer units Ba-Bc. In addition, 40 is a central processing unit or CPU, 41 the internal RAM, and 42 the external RAM. CPU 40 is connected with data line d, clock line CLK, and enable line E. 
     Address buses 1a-1c are also connected to bus inversion detector circuit 6 which detects inversions in address signals. Output signals from address buses 1a-1c that are input to bus inversion detector circuit 6 are divided into two branches, one directly connected to the input terminals of comparators 8a-8c, and one to the other input terminals of comparator 8a-8c through latches 7a-7c. Latches 7a-7c operate in synchronization with internal clock 9 which is input to each latch. When the output signal from 1a and other address buses invert, latches 7a-7c output an inverse signal following time duration t (described below). The outputs from bus inversion detector circuit 6 (i.e., output signals from 8a-8c) are connected to decoder 10. Decoder 10 outputs &#34;L&#34; when the number of &#34;L&#34;s among the input signals exceed the specified limit N, and &#34;H&#34; when the number is below the limit N. In other words, decoder 10 outputs &#34;H&#34; when the number of address buses among 1a-1c changing state at the same time is fewer than N, and &#34;L&#34; when the number of address buses changing state at the same time exceed N as a warning to the outside to take malfunction measures. Moreover, the limit N is the maximum number of address buses among 1a-1c that can change state at the same time and not cause malfunctions, the number being circuit-determined according to the hardware. The output signal of decoder 10 branches into two: one for use as ready request signal 11 and the other for the control of gates G1-G3 of output buffers 4a-4c. When the output signal of decoder 10 is &#34;L,&#34; the ready request signal turns on and output buffers 4a-4c turn off. In order to extend the access time of the CPU with external memory 42, ready signal 11 is connected to the ready input of CPU 40. 
     FIG. 2 is a timing diagram showing the operation of the address bus signal output unit. In the FIG. 9 is an internal clock of clock line CLK of a one-chip microcomputer; 15 is an enable signal; 16 is a signal of one of plural address buses 1a-1c output as an inverse of the previous bus state (i.e., H→L or L→H). Each of comparators 8a-8c compares signal 16 from address buses 1a-1c with latched signal 17, which is address bus signal 16 whose inversion has been delayed by latches 7a-7c. Output 18 of comparators 8a-8c outputs &#34;L&#34; during time duration t1, following the inversion of data of address buses 1a-1c. When the data of address bus 1a invert, an inverted signal immediately enters one input of, for example comparator 8, while the other signal enters the other input of the comparator, to invert only after the specified time duration t1 due to the action of latch 7. For this reason, during an interval of t1, the two inputs, 16 and 17, do not match, and comparator 8 therefore outputs &#34;L&#34; or 18. 
     If N number of address buses 1a-1c output inverted signals, a delay is generated by latches 7a-7c, and &#34;L&#34; is output by N number of comparators 8a-8c. When the number of address buses among 1a-1c experiencing state changes exceeds the limit N, decoder 10 outputs &#34;L&#34; in output 19 during the time duration t1. &#34;L&#34; is then input to the gates of output buffers 4a-4c, and output 19 from decoder 10 turns off during the &#34;L&#34; output duration tb, leaving on only output buffers 3a-3c. Through current 21 at this time is inversely proportional to the impedance, and therefore decreases. This results in a drop in the driving power of output buffers 3a-3c, and a delay in the inversion of data of output 20 from output buffers 3a-3c during time interval tb. As a result, the total through current from output buffers 3a-3c decreases, power line fluctuations are reduced, and malfunctions in the one-chip microcomputer are prevented. Since the time for the inversion of the output signal from output buffers 3a-3c is delayed, the time for confirming the address in external memory 42 is extended and signal 22, which returns from external memory 42 on data bus d, is delayed; however, since the ready request signal is in &#34;L&#34; state, the CPU undergoes one wait, and the broken line in enable signal 15 is moved an interval of 1 minute to the solid line; in other words, the &#34;L&#34; duration of enable signal 15 is lengthened, and data are read in without a reduction in reading time. 
     FIG. 3 shows another embodiment of the invention. Except for the programmable decoder 23 in place of decoder 10, the structure and operation of this embodiment are the same as those of the first embodiment. 
     When the input of address 12 and data 13 to programmable decoder 23 is enabled, then programmable decoder 23 outputs &#34;L&#34; when the number of &#34;L&#34; input within control input signal 18 exceeds limit N. Limit N can be freely set to N1, N2, or NN by address 12 and data 13. For this reason, the incorporation of this one-chip microcomputer provides the convenience of setting the limit N high for devices with an abundant power capacity, or low for devices with a limited power capacity. 
     In both embodiments, when inversions do not exceed limit N, buffers 3a, 4a, etc. are parallel circuits that transfer address inversion signal 1b to output terminals 5a-5c without delay. 
     As has been explained above, the microcomputer according to the invention has plural buffers comprised of variable-impedance buffer units, a detector circuit that detects signal changes in each bus, and a decoder which raises the impedance of each buffer unit when the number of buses in which signal changes have occurred, based on the output from the detector circuit, exceeds a specified value. As a result, when a larger number of address bus signals change state at the same time, the impedance of the buffer units rise, turning on the ready signal by which the access time to the external memory is extended and signal changes on the output side of the buffer units are delayed. The result is the prevention of fluctuations in the power line, by which a microcomputer free of malfunctions is made possible.