Abstract:
The present invention provides circuitry which facilitates user selection of alternative memory accessing techniques. The present invention provides a design approach or technique to transform the time associated with waiting for a valid &#34;way-select&#34; signal into cycle reduction time, thus providing a beneficial increase in the overall performance of multi-way associative cache and memory designs.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to a memory access design which facilitates the programmable selection of the manner in which memory and cache access occurs, depending on speed and power considerations. 
     A set-associative cache memory permits the storage of two or more words in cache memory at the same index (cache) address. Thus, each cache memory word stores two or more words from main memory at the same cache address. The distinct data words stored in cache at the same index (cache) address are each associated with a tag. The number of tag/word pairs stored in one word of cache forms a &#34;set&#34;. A set of size two has two tag/word pairs stored at each index (cache) address. 
     It is possible to have multiple cache memory words located at one index (cache) address. A cache memory which has multiple cache words at one cache address is referred to as a multi-way cache. Thus, if there were two cache words at each cache address, the cache would be a two way associative cache memory. 
     Multi-way associative memory designs use &#34;ways&#34; as an additional level of decode (in the bitline dimension) to translate data and information into and out of the memory array. Often, the way information is the last of the inputs to arrive during a memory read operation and thus may dictate the best case performance for a given memory design. 
     Multi-way associative caches/memories have two options for setting sense amps: set all sense amps early then apply late way select to the late select multiplexor (mux); or, wait for late select to arrive and set only the selected way sense amps. Unfortunately, providing for either one of these methods results in trade-offs in terms of desired speed and power requirements. The process of setting all sense amps early, then applying the way select as it is subsequently available is very fast, but requires much power since all sense amps are enabled. This is undesirable in situations in which it is desired to use as little power as possible, such as in laptop applications. 
     On the other hand, waiting for way select to arrive before setting selected sense amps uses less power but is inefficient in terms of memory access speed. 
     The prior art shows that circuit designs incorporate one access scheme or the other. 
     Providing a flexible design approach or technique which would allow the circuit designer to select, via programming, one or the other method of access would prove to be most useful. Transforming the wasted time associated with waiting for a valid &#34;way select&#34; into cycle time reduction is certainly beneficial in increasing the overall performance of multi-way associative cache and memory designs, but providing low power circuits is desirable in some situations, such as in laptop circuit design. 
     SUMMARY OF THE INVENTION 
     The present invention provides circuitry allowing a designer to select a memory access method depending on power and performance considerations. 
     The present invention provides for two modes of memory access operation, a high speed mode and a low power mode, allowing a single design to operate reliably across a wide range of process and application variations. 
     The present invention uses mode select logic to control the timing of the setting of sense amps. In a high performance mode, the mode select logic controls cache/memory access by sending a signal that sets all sense amps early, before a late arriving, way select signal is applied to a select mux. In low power mode, the sense amps are not set until a late, way select signal arrives, thus setting only selected way sense amps. 
     Further, the present invention provides mode selection circuitry which, after sufficient signal margin/bitline differential has developed across bitline pairs, provides for latching of the contents of all memory cells into all of their associated sense latches, before actual way selection has occurred. Thus, the time waiting for the way select signal, time otherwise wasted in previous designs, is utilized in the present invention to provide a selectable, high performance, high speed mode of operation. In addition, the present invention provides mode selection circuitry which provides for the latching of the contents of selected memory cells, thus providing a low power mode of operation. 
     The present invention provides a user selectable system which provides either a &#34;high performance&#34; mode of operation that utilizes the delay inherent in the generation of a valid &#34;way select&#34; to reduce the time required to successfully execute a &#34;read&#34; operation, or a low power mode of operation. 
     The subject invention includes: high performance mode select logic; read evaluate logic; dynamic restore logic; late select enable logic; sense amplifiers; and, a multiplexor. 
     The high performance mode select logic accepts as inputs: a high performance select signal with which a circuit designer or programmer can select high performance mode; an input which indicates when adequate signal margin is available for bitline sensing; and, a restore signal for resetting the circuitry. The mode select logic provides an input signal to the late select enable logic which enables the setting of sense amplifiers. 
     The dynamic restore logic accepts a restore signal as an input. The restore signal, generated at the beginning of each cycle to initialize or place the memory access circuitry into a known state, is also input to the high performance mode select logic and the read evaluate logic. The dynamic restore logic provides an input to the late select enable logic for effectively inhibiting memory reading. 
     The read evaluate logic accepts three inputs: a read signal; the restore signal mentioned previously; and, an inverted form of the restore signal. A proper read signal places the read evaluate logic in a condition to provide an input to the late select enable logic for enabling memory reading. 
     Thus, the late select enable logic accepts four inputs, one from each of the three above mentioned blocks, and a &#34;way-select&#34; signal. Depending on the values associated with each of these signals, the late select enable logic: outputs a signal which controls the sense amps for bitline sensing; and, outputs a signal which controls a multiplexor for outputting the values of selected sense amps. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The novel features believed characteristic of this invention are set forth in the appended claims. The invention itself, however, as well as other objects and advantages thereof, may best be understood by reference to the following detailed descriptions, read in conjunction with the accompanying drawings in which: 
     FIG. 1 is a block diagram of the overall circuitry of the present invention; 
     FIG. 2 is a circuit diagram of a portion of the present invention, including performance select logic, restore logic and read enable logic; 
     FIG. 3 is another circuit diagram of another portion of the present invention, depicting sense amplifiers and a multiplexor; and, 
     FIGS. 4-6 graphically depict signal levels associated with the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The present invention provides a user selectable system which provides either a &#34;high performance&#34; mode of operation that utilizes the delay inherent in the generation of a valid &#34;way select&#34; to reduce the time required to successfully execute a &#34;read&#34; operation, or a low power mode of operation. 
     Referring to FIG. 1, which depicts an overall block diagram of the present invention, high performance mode select logic 10 accepts an input signal, SIGNAL --  MARGIN, on signal line 12, an input signal, HIGH --  PERF, on signal line 14 and an input signal RESTORE on signal line 16. The HIGH --  PERF signal input provides a means by which a programmer or circuit designer can selectively enable the high performance mode of operation provided by the subject invention. The RESTORE signal will be described later. 
     Thus, with a properly enabled HIGH --  PERF select signal, and with a proper SIGNAL --  MARGIN signal, the select logic 10 outputs a SET --  SENSE --  AMP signal on signal line 18. The SET --  SENSE --  AMP signal serves as an input signal to the late select enable logic 20, and will, assuming other conditions are in the correct state, allow memory reading, as will be described later. The high performance mode select logic, in conjunction with additional circuitry, is the key component of the present invention. 
     Dynamic restore logic 22 accepts as an input, a RESTORE signal, on signal line 16. A RESTORE signal is generated at the beginning of each cycle to initialize or place the memory access circuitry into a known state. The restore logic generates an output signal, DYNAMIC --  RESTORE, on signal line 24. This signal is provided as an input to the late select enable logic 20, and in the proper state, effectively inhibits memory reading, as will be described later. The RESTORE signal is also input to the high performance mode select logic and the read evaluate logic to place each of these circuits in a proper initial state. 
     Read evaluate logic 26 accepts as inputs, a READ signal on signal line 28, and the RESTORE signal mentioned previously, on line 16. A proper READ signal places the read evaluate logic in a condition to provide an output signal, READ --  REQUEST --  ACTIVE, on signal line 30. A proper READ --  REQUEST --  ACTIVE signal places the memory access circuitry in condition for reading memory. The READ --  REQUEST --  ACTIVE signal is provided as an input to the enable logic 20. 
     Thus, the late select enable logic 20 accepts as inputs: a SET --  SENSE --  AMP signal, line 18; a DYNAMIC --  RESTORE, line 24; and, a READ --  REQUEST --  ACTIVE signal, on signal line 30. In addition, the late select enable logic accepts an additional input signal, WAY --  SELECT, on signal line 32. The late select enable logic 20 outputs a SENSE --  AMP --  SET signal, on signal line 34 and a 4:1 --  MUX --  SET signal on signal line 36, to be described later. 
     Sense amplifiers, indicated by 38, receive, as inputs, the SENSE --  AMP --  SET signal, on signal line 34, and a RESET --  SENSE --  AMP signal on signal line 40. The sense amplifiers, controlled by the SENSE --  AMP --  SET signal, sense the minute bitline signals output from the cache memory cells, supplying appropriate SENSE --  AMP --  OUT signals on signal line 42 to a multiplexor (mux) 44. 
     The mux 44 accepts as an input, the SENSE --  AMP --  OUT signals from the sense amp 38, and the 4:1 --  MUX --  SET signal from the late select enable logic, on signal line 36. The multiplexor, controlled by the 4:1 --  MUX --  SET signals provides an output signal 4:1-MUX --  OUT via signal line 46. 
     FIG. 2 is provided as a more detailed diagram illustrating various blocks of the present invention. 
     During normal operation the output on signal line 24 is maintained at a low level to ensure that transistor 48 is off. 
     Note also that the low value of the RESTORE signal on line 16 is seen by transistor 68 in the mode select logic, forcing this transistor off, and by transistor 70 in the read evaluate logic, holding this transistor off. With RESTORE signal on line 16 at a low level, transistor 50 is turned off. The low input signal is inverted by inverter 52, resulting in a high signal on node a, turning transistor 54 on and placing node b at ground potential. Inverter 56 causes a high signal level at node c. Node c&#39;s high is maintained by a latch formed by inverters 58 and 56. Node c&#39;s high results in a high at node d after passing through dual inverters 62 and 60. node d&#39;s high signal level turns on 64, forcing node e to ground. 
     Also, the inverted low signal at node a is seen by transistor 72 in the read evaluate logic, holding this transistor on. 
     Now, when RESTORE input is pulsed with a high level on signal line 16, to ensure that circuitry is in a known state, an immediate result is that 50 is turned on, placing node f at ground through transistor 64 which has been on from the previous quiescent state. With node f at a low level, node g is driven high due to inverter 74, turning off 66 disabling the half latch formed by inverter 74 and transistor 66. Signal line 24 is ultimately pulsed high, turning on transistor 48, forcing signal line 34 to ground. Note that half latch 76 holds signal line 34 low until a read is attempted. 
     Another immediate result of having the RESTORE input at a high level on line 16 is that node a, due to inverter 52, is driven to a low level, turning off 54. Node b which has been low from the previous quiescent state is held low by the latch formed by 58 and 56, while node a is at a low. With node f now at a low, node b is pulled high due to transistor 54A and node g is pulled high due to inverter 74. A high on node g turns on transistor 78, pulling node c to ground. A low at c propagates through inverters 62 and 60, turning off 64 and turning on 80. Node f is forced to a high signal level which in turn forces node g to a low, ultimately resulting in a low signal level on line 24, turning transistor 48 off. The low at g is maintained by the half latch formed by 74 and 66 ensuring that transistor 48 is off. 
     Assuming RESTORE is inactive, i.e. at a low signal level, transistor 70 is off, transistor 82 is off and transistor 72 is on. With READ input on signal line 28 at a high level, transistor 84 is turned on, placing node h at ground and placing node i at ground through transistor 72. Hence, READ --  REQUEST --  ACTIVE on signal line 30 is at a high level due to inverter 86. A latch formed from inverters 88 and 86 maintains the last READ --  REQUEST --  ACTIVE signal generated. 
     With node j at a high signal level, node k is at a high level via inverters 90 and 92, turning on transistor 94. Transistor 96 is held off. In addition, from a previous quiescent state to be discussed later, transistor 98 is off, 100 is on and therefore node 1 is at a high signal level, holding transistor 102 off. 
     When RESTORE is pulsed high, transistor 72 is turned off and transistor 70 is turned on. Since 94 was on from the previous state, node 1 is dropped to ground potential through 70 and 94, turning on transistor 102 and forcing node i to a high signal level. Also, transistor 98 is turned on from the high resulting from inverter 104, dropping node j, and hence, READ --  REQUEST --  ACTIVE to ground. Node k ultimately goes low via inverters 90 and 92, turning off transistor 94 and turning on 96. 
     With transistor 96 turned on , turning off 102, turning off 98 through inverter 104 and turning on transistor 100. With READ at a high signal level, and RESTORE back to its normal low level, the circuit returns to the previous state. 
     Assume, for the time being, that high performance mode is disabled, i.e. the HIGH --  PERF signal on line 14 is at a low value, SET --  SENSE --  AMP on line 18 is at a high value, ensuring that transistor 106 is off, and hence, the high performance circuit does not affect the reading of memory. 
     With HIGH --  PERF disabled and READ active, normal reading of memory occurs only as soon as a high WAY --  SELECT signal on line 32 is provided. This signal will result from additional memory decode circuits which are not shown, but are known to those with skill in art. When the inputs to NAND gate 108 are both at a high level, a low LATE --  SELECT --  ENABLE signal is output from the NAND gate on line 110. Inverter 112 inverts this signal to provide a high 4:1 --  MUX --  SET signal on line 36. In addition, the low output from the NAND gate 108 is supplied on signal line 114 to turn on transistor 116. This places a high signal level on line 34. 
     Turning to FIG. 3, sense amplifier block 38 includes a number of sense amplifiers 118, 120 122 and 124. It should be noted that the present invention will function with any number of sense amplifiers, four such amplifiers provided as a representative number. Also, additional SENSE --  AMP --  SET signal lines 126, 128 and 130 are provided, as well as additional 4:1 --  MUX --  SET signals 132, 134 and 136. These additional signals come from additional late select enable logic circuits, not illustrated. 
     With the SENSE --  AMP --  SET signal on line 34 at a high level, transistor 138 is turned on, completing the sense latch connection to ground, allowing the bitline offset to be sensed, transformed and stored within the latch as a logical &#34;one&#34; or &#34;zero&#34; depending on the contents of the memory cells, not shown. The contents of memory is output from the sense amplifier via signal line 140, SENSE --  AMP --  OUT. Note that transistors 142, 144, and 146 can be similarly turned on by their associated SENSE --  AMP --  SET signals. The actual operation of the sense amplifiers, including their functioning with regard to bitlines 148 and 150 is conventional, and will not be described. 
     At nearly the same time, the 4:1 --  MUX --  SELECT signal on line 36 is provided to the late select mux 44. This signal, at a high level, turns on transistor 152, providing the memory contents to output signal line 46, 4:1 --  MUX --  OUT. Again, note that the additional signal 4:1 --  MUX --  SET signal lines can turn on their corresponding transistors 154, 156 and 158. 
     The above described mode of operation is conventional and such memory accessing is known by those skilled in the art. This mode of operation is most useful when power considerations are of prime importance. Through the use of a novel combination of inventive circuitry with known circuit elements, the present invention provides a means to selectively operate in a different, faster mode of operation. 
     Turning our attention back to FIG. 2, we will consider the operation of the high performance mode select logic 10. Again, assuming that the memory access circuitry has been restored, if it is desired to operate in a high performance mode the circuit designer only need ensure that a high signal, HIGH --  PERF is place on signal line 14. This signal will turn on transistor 160. In addition, an active high SIGNAL --  MARGIN signal on line 12 will turn on transistor 162. The SIGNAL --  MARGIN signal is generated by additional circuitry not shown, and occurs after sufficient signal margin/bitline differential has been developed across the bitline pairs associated with a memory cell. As is known in the art, a sufficient level of charge must be evident on the bitlines output from a memory cell, before a reliable differential determination can be made by sense amplifiers. There are a variety of ways to determine whether enough bitline offset has developed to provide sufficient SIGNAL --  MARGIN to reliably swing the sense amplifier, none of which is disclosed herein, as these techniques are well known to those with skill in the art. 
     Thus with transistors 160 and 162 turned on, node m is at ground potential. Inverters 164 and 166 ultimately generate a low value on signal line 18, SET --  SENSE --  AMP. This signal turns on transistor 106, placing a high signal level on signal line 34, thus turning on transistor 138 (FIG. 3), allowing bitline sensing and latching of the contents of the memory cell into the sense amp. 
     Thus, with node m at ground, node n is at a high level due to inverter 164. A latch formed by inverters 168 and 164 holds node n at the last selected signal level. Ultimately node o is at a high level due to inverters 170 and 172, turning on transistor 174 and holding transistor 176 off. 
     In addition, from the previous quiescent state, transistor 178 is off, node p is at a low signal level and transistor 180 is off via inverter 182. Also 184 is on, forcing node q to a high signal level. 
     Shortly after the SIGNAL --  MARGIN signal on line 12 pulses high, turning on transistor 162, forcing node m to ground potential, it is pulsed low based on internally self-time logic delay, not shown. Again, this is a technique known to those in the prior art. 
     When RESTORE is pulsed high, transistor 68 is turned on, dropping node q to ground via 68 and 174, which is on from the previous state. With node q low, transistor 162A is turned on, forcing node m to a high signal level. Also, transistor 178 is turned on from the high resulting from inverter 190, dropping node n to ground and ultimately resulting in SET --  SENSE --  AMP having a high signal level. Also, transistor 180 gets turned on, also forcing SET 
       --  SENSE --  AMP high. The low level on node n results in a low signal level at node o, turning on transistor 176 and forcing node q back to a high level, returning the circuit to its previous state. 
     It is important to note that when operating in the high performance mode, it is not necessary that valid READ and WAY --  SELECT signal be in place before setting the sense amps. In the case of normal operation as described previous, the sense amps were enabled only after valid READ and valid WAY --  SELECT signals were supplied to the circuitry to turn on transistor 116. In the case of high performance operation, the sense amps have been placed in condition for reading through the use of a HIGH --  PERF signal to turn on transistor 106. 
     While awaiting a valid WAY --  SELECT input, time otherwise wasted in previous designs is utilized here in &#34;high performance&#34; mode: sensing the bitlines; latching the contents of memory into sense latches; isolating/redriving the sense latch outputs; and, validating the data path input into the late select mux circuitry that follows. 
     Similar to the normal mode of operation, once a valid WAY --  SELECT signal finally arrives, via signal line 32, and a READ --  REQUEST --  ACTIVE signal arrives via signal line 30, both the 4:1 --  MUX --  SET output and the SENSE --  AMP --  SET outputs are determined, as shown in FIG. 3. 
     FIG. 4 quantifies the delay from an active 4:1 --  MUX --  SET to a valid 4:1 --  MUX --  OUT for normal modes of operation. 400 and 401 depict the signal levels of SENSE --  AMP --  SET and 4:1 --  MUX --  SET on signal lines 34 and 36, respectively, of FIGS. 1-3. 402 depicts the signal level of SENSE --  AMP --  OUT signal line 140. 404 depicts the signal level of 4:1 --  MUX --  OUT on signal line 46. At 1.5 volts, indicated by &#34;*&#34;, the delay measured is 4:1 MUX --  OUT-4:1 --  MUX --  SET, or 497 picoseconds. 
     In FIG. 5, various signal levels of the present invention, with high performance mode invoked, are depicted. 510 indicates the signal level of SENSE --  AMP --  SET on signal line 34; 512 indicates the signal level of SENSE --  AMP --  OUT on signal 140; 514 indicates the signal level of 4:1 --  MUX --  SET on signal line 36; and, 516 indicates the signal level of 4:1 --  MUX --  OUT on signal line 46. With the high performance feature invoked, i.e. the HIGH --  PERF signal on line 14 is active, the delay measured from 4:1 --  MUX --  SET to 4:1 --  MUX --  OUT, at the 50% point indicated by &#34;*&#34;, measured 294 picoseconds, a decrease of 200+ picoseconds for the same operating conditions. This 200 ps improvement in the &#34;read&#34; operation translates into cycle time reduction and an overall increase in performance. 
     Another advantage of this design can be seen in FIG. 6, where 700 indicates the signal level on the complimentary bitline; 702 indicates the signal level on the true bitline; 704 indicates the signal level on the wordlines; 706 indicates the signal level on SENSE --  AMP --  SET in high performance mode; and 708 indicates the signal level on SENSE --  AMP --  SET in low power mode. Signal margin ranges from 218 mV, the point 712 minus the point 710, (minimum requirement set by this design) in high performance mode, to 721 mV, point 716 minus point 714, (maximum allowable offset for this design) in normal operating mode. The advantage of offering two modes of operation is that a single design can be made to operate reliable across a wide range of manufacturing process conditions, both anticipated and unexpected. In the event device parasitics and process induced noise sensitivity dictates more signal margin than originally modelled, this design affords the flexibility of compensating signal margin to track process variations. 
     It is important to note that the two modes of operation differ in overall power consumption as well. In &#34;high performance&#34; mode, all sense latches are initially set/latched to recover the 200+ picoseconds in performance discussed above. In this scenario, four times as many sense latches are activated and bitlines discharged than in normal, low power mode. This increase in device activity directly relates to increased power.