This application is a continuation of application Ser. No. 666,506, filed Oct. 30, 1984, now abandoned.
BACKGROUND OF THE INVENTIONThe present invention relates in general to a system control signal generator. More particularly, the invention relates to a signal generator employed in a computer or data processing system for providing timing signals, particularly, timing signals for controlling the system such as I/O and memory control signals.
In any type of a computer or data processing system, there is a bus controller that is employed for controlling signals transferred on the system bus. For example, one present bus controller that is employed is the Intel Model No. 8288. This device provides for effective bus control, but the problem associated therewith is that the device is relatively expensive and because of its universal design is unduly complex in configuration.
Accordingly, it is an object of the present invention to provide an improved system control signal generator or bus controller that is of improved construction particularly in that it can be fabricated less expensively.
Another object of the present invention is to provide an improved system control signal generator that is relatively simple in construction and that can use readily available inexpensive components without requiring special complex circuit design.
Still another object of the present invention is to provide an improved system control signal generator for use in a computer or data processing system and which requires a relatively small number of components for carrying out multiple controls and in which the signal generator is easy to maintain.
Another object of the present invention is to provide an improved system control signal generator that is of simplified construction, is thus less expensive, and which is readily adaptable to present overall computer system designs.
SUMMARY OF THE INVENTIONTo accomplish the foregoing and other objects, features and advantages of the invention, there is provided a system bus controller which is adapted to be coupled from and controlled by a central processing unit that generates control signals such as data status activity signals. These signals have to do with I/O and memory controls and data transmit and receive controls. The bus controller of this invention comprises a timing circuit in the form of a multiple stage timing circuit adapted to generate sequentially time-displaced timing control signals. There is also provided a gate array comprising multiple logic elements and having a plurality of input lines and a plurality of output lines. The control signal or signals from the central processing unit couple to this gate array at a first group of input lines thereto. The other group of input lines to the gate array receive, from the timing circuit stages, the timing control signals which are sequentially time-displaced. The output lines from the gate array generate timing signals that control bus operation. The timing circuit and the multiple stages thereof include a first stage having a constant time interval and a number of additional stages which have variable length time intervals. Each of the timing stages comprise a bi-stable device such as a flip-flop. The timing stages preferably total four. In accordance with another aspect of the present invention concerned with the variable length time intervals, there is provided a processor ready signal and means for coupling this signal to at least one of the timing stages to control the variable length time interval. There is also provided a signal feedback line coupled from the last stage of the timing circuit back to a previous stage thereof. There is also preferably included a gate means which receives this signal feedback line and also receives the processor ready signal and has an output coupling to the second stage of the timing circuit. The timing circuit is operated from a main clock signal. This main clock signal is coupled to the clock input of each of the flip-flops comprising the timing circuit. The commencement of the overall timing interval involves control from the central processing unit in the form of an address latch enable signal that couples to the first flip-flop to commence the timing sequence.
BRIEF DESCRIPTION OF THE DRAWINGSNumerous other objects, features and advantages of the invention should now become apparent upon a reading of the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1A is a circuit block diagram of a processing system utilizing the bus controller of the present invention;
FIG. 1B is a circuit block diagram showing the preferred bus controller of the present invention; and
FIG. 2 is a timing diagram associated with the circuit block diagram of FIG. 1
DETAILED DESCRIPTIONReference is now made to the circuit block diagram of FIG. 1 which illustrates a preferred embodiment of the controller of the present invention. In association with this diagram, reference is also made to the timing sequence diagram of FIG. 2 which shows the timing sequences as they relate to the circuit block diagram of FIG. 1.
FIG. 1 illustrates the central processing unit (CPU) 10. The CPU may be oftype 8088 and is of conventional design. Most of the signals identified in association with theCPU 10 are standard known signals and as such will not be discussed in any detail herein. As far as bus control is concerned, there are four control signals coupled from the central processing unit. These control signals are coupled onlines 12, 14, 16, and 18 from theCPU 10. The signal online 12 is the signal SSO*. This signal couples to pin 9 of thegate array 20. Pins 1-9 along withpin 19 represent inputs to thegate array 20. Thegate array 20 is of type 82S153. The make-up of thegate array 20 will be discussed in further detail hereinafter in association with logic equations used in defining this gate array.
Thecontrol line 14 from theCPU 10 is the signal IO/M*. This signal couples to theinput pin 7 of thegate array 20. The aforementioned signal SSO* is a status signal coupled from theCPU 10. The signal IO/M* online 14 indicates either IO or memory control. Athird control line 16 coupling from theCPU 10 is the signal DT/R*. This signal couples to theinput pin 4 of thegate array 20. This signal is a data transmit/receive signal that controls data as to whether it is being transmitted or received as far as theCPU 10 is concerned. Lastly, there is a signal online 18 which is the signal ALE. It is noted that this signal couples to theinput pin 3 of thegate array 20, but also couples by way ofline 21 as the signal CPU ALE to an input of the timing circuit. The signal ALE is an address latch enable signal which indicates that an address has now been latched and processing can commence.
FIG. 1 also shows additional timing inputs to thegate array 20 identified as signals A, B, C, and D. These signals are also identified in timing diagram of FIG. 2. These signals are generated from the timing circuit which is in the form of a pulse delay circuit including stages S1, S2, S3, and S4. Each of these stages is in the form of a flip-flop which is illustrated as being a J-K type flip-flop. These flip-flops may be of type 74F109. The flip-flops are provided in pairs and thus stages S1 and S2 appear on one circuit package and stages S3 and S4 appear on a second circuit package.
By way of example and with reference to stage S1, it is noted that the J-K flip-flop has a clock input atpin 4 and has an assertion output atpin 6 and a negation output atpin 7. The J input is atpin 2 and the K input is atpin 3. The set input is atpin 5 an the clear input is atpin 1. The same nomenclature also applies with regard to stage S3. With regard to stage S2, the clock input is atpin 12 and while the assertion output is atpin 10 and the negation output is atpin 9. The J input is atpin 14 and the K input is atpin 13. The set input ispin 11 and the clear input ispin 15. The same nomenclature equally applies between stages S2 and S4.
It is noted that the set inputs of all of the flip-flops are coupled to acommon line 22, and from there by way ofresistor 24 to the positive supply voltage. The clear inputs with regard to stages S2-S4 couple to acommon line 26 and receive a reset signal identified as signal RST*.
Another signal that is coupled to the array of flip-flops is the main clock signal which is identified as the signal CPU CLK. It is noted that this signal is coupled online 28 directly to stages S1 and S3 and is also coupled by way ofinverter 29 toline 30.Line 30 couples to the clock inputs of both flip-flops associated with stages S2 and S4. Thus, all clocking signals to the flip-flops are derived from the main central processor clock.
As indicated previously, the initial data signal that initiates operation of the timing circuit stages S1-S4 is derived from theCPU 10 and is coupled online 21 to the J input of the flip-flop at stage S1. The operation of the timing circuit will be discussed in further detail hereinafter as to the wave forms that are generated and in particular the signals A, B, C, and D. For now, the connections will be identified with regard to this timing circuit. Thus, at the output of the first stage, which ispin 6 of the flip-flop, this signal couples to line A (and associated signal A). The output from stage S1 also couples to the J input of the next stage S2. Thus, the setting of the second stage is interrelated to the transition of the waveform at the output of the first stage as will be discussed in further detail hereinafter.
The output from the second stage S2 atpin 10, which is the assertion output, couples to both data inputs of the next stage which are the J and K inputs to the stage S3. This output atpin 10 of stage S2 also couples on line B and is the aforementioned signal B.
The output from the third stage S3 atpin 6, which is the assertion output, couples in common to both the J and K inputs of stage S4 and also couples to line C giving the signal C as mentioned before. There is also a negation output atpin 7 from stage S3 which couples back to the clear input of stage S1 by way ofline 32.
Finally, the output from stage S4 at the assertion output of the flip-flop is the signal D and also couples by way ofline 34 in a feedback loop to one input of the ANDgate 40. The ANDgate 40 also has a signal online 38 which is a wait control signal referred to herein as the CPU signal (CPU READY). The output of thegate 40 couples toinverter 42. The output of theinverter 42 couples to line 44 which connects directly to the K input of the second stage S2 flip-flop. Thus, the feedback from the output stage actually couples back to the second stage of the overall timing circuit and provides for variable timing sequences as to be defined hereinafter in connection with the timing diagram of FIG. 2.
There are two other input signals to thegate array 20. One of these signals is online 48 which is the signal HLDA. This is a hold acknowledge signal. Lastly, there is an input signal online 49 which is the signal INTCS*. It is noted that this signal also couples to the interruptcontroller 50. The signal INTCS is an interrupt chip select signal. This signal INTCS* thus controls the interrelationship of operation between the interruptcontroller 50 and thegate array 20. When the processor is communicating with the interruptcontroller 50, the input signal online 49 is interrupted to thegate array 20.
At the output of thegate array 20 there are shown multiple output lines including lines 51-57. These output signals control certain bus operations in the computer system. The signal online 51 is the signal ALE which is an address latch enable signal. The signal online 52 is the signal DEN*. This signal is a data enable signal and in a sense is considered to be opposite to the ALE signal. The signal on line 53 is the signal IOR*. This is the I/O read signal. The signal on line 54 is the signal MEMR*. This is the memory read signal. The signal on line 55 is the IOW* signal. This is the I/O write signal. The signal online 56 is the signal M.EMWR. This is the memory write signal. The signal online 57 is the signal IOWAIT*. This is the I/O wait signal. These signals are used in the computer system in a known manner and thus their connections to other parts of the system are not shown in detail herein. These in essence are the same output signals as generated by the Intel 8288 bus controller referred to hereinbefore.
With regard to thegate array 20, this comprises a circuit that is comprised of multiple logic elements that are configured under computer control to provide desired outputs from selected inputs on the basis of logic equations that are used under computer control to modify the gate structure so as to carry out the logic equations. In this connection hereinbelow is now set forth the set of logic equations that relate the input and output signals. To the left is the set of output signals and to the right in each equation are the corresponding input signals that are used to derive these outputs. ##STR1##
Reference is now made to the timing diagram of FIG. 2. This diagram shows the signal CPU CLK at the top thereof. The basic timing clock signal as is noted, is separated into time slots T1, T2, TW (wait), T3, and T4. The cycle then repeats. The timing diagram also shows the CPU control signals SSO*, DT/R*, and IO/M*. The timing diagram also illustrates the signal ALE CPU which becomes active during the time interval T1.
The timing diagram of FIG. 2 also illustrates the signals A, B, C, and D which are generated from the timing circuitry at stages S1-S4, respectively. Finally, at the bottom of the timing diagram of FIG. 2 are shown output bus control signals. One of these signals is a read signal corresponding to the signals IOR* and MEM*. The second waveform is a wright signal corresponding to the signals IOW* and MEMWR*. The last waveform is the signal DEN which is the data enable signal.
As indicated previously, the system control signal generator of this invention provides the timing strobe signals that are required by the system. These are illustrated as the final output lines 51-57 in FIG. 1. These include the signals IOW*, IOR*, MEMWR*, MEMR*, ALE, DEN*, and IO/M*. But these signals are synthesized by thegate array 20 from the timing circuit signals A, B, C, and D, along with the CPU 10 (8088 device) status signals SSO*, DT/R*, and IO/M*. In addition, as indicated previously, the gate array is controlled by signals HLDA and INTCS*. As also indicated previously, the timing signals A, B, C, and D come from respective stages S1 and S4. Each of these stages comprises a flip-flop as noted. The timing clock supplied to the flip-flops is the signal CPU CLK.
A CPU cycle is divided basically into five periods, T1, T2, TWAIT, T3, and T4. Each cycle has a clock rising edge and a clock falling edge. In this regard, note the diagram of FIG. 2 and where the rising and falling edges occur. Hereinafter, the designation of, for example, T1+ denotes a rising edge and the signal T1- denotes a falling edge. The signal A is started from the signal CPU ALE being true and from T1+. The signal A is terminated by the signal C and the signal T2+.
The signal B is initiated from the signal A and the transition T1--. This signal B is terminated under control of the signal CPU READY, which is the central processing ready signal along with the signal D and the timing signals TW-/TW3-.
The timing signal C is initiated from the previous stage of the signal B along with the timing signal T2+. The signal C is terminated by the signal "BNOT" along with a timing signal T3+.
The signal D is initiated from the signal C during the timing interval T2-. The signal D is terminated by the signal "CNOT" during the timing transmission T3-.
It is noted from the timing diagram of FIG. 2 that the interval of the signal A is substantially constant while the interval of the signals B, C, and D is a function of a waiting period. Characteristically, the signal A is always one clock length while the signals B, C, and D are variable in length depending upon the number of inserted "wait" states. These wait states are determined by the signal CPU READY online 38. As indicated previously, there is a feedback from the signal D and the last stage S4 of the timing circuit to thegate 40 and this feedback continues on by way ofinverter 42 andline 44 to the input of the second stage S2 of the timing circuit. With this arrangement, any half-clock period between transitions T1+ and T3- can be logically combined to create the output timing signals as illustrated in FIG. 2.
It is noted from the timing diagram and also from the equations relating to thegate array 20, that the signal DEN* online 52 is substantially identical to the enable signal from theCPU 20 except when the interruptcontroller 50 is addressed. At that time it remains inactive now because the interrupt controller and the CPU are on the same data bus. The bus signal ALE is buffered by the signal HLDA which is the hold acknowledge signal as indicated from the equations.
Reference has been made previously to the variable length of the signals B, C, and D, which length is dependent upon the number of inserted "wait" states. Again, this relates to the timing of the signal CPU READY. Depending upon when this signal becomes active, the length of the signals B, C, and D may be shorter or longer. Thus, there has been provided herein, a relatively simple technique for providing variable width timing signals under control of the preferred signal CPU READY without having to get involved in complex timing circuitry.
Having now described a limited number of embodiments of the present invention, it should now be apparent to those skilled in the art that numerous other embodiments are contemplated as falling within the scope of the present invention as defined by the appended claims.