1. Field
The present disclosure relates generally to integrated circuits, and more particularly, to memory access time tracking in dual-rail systems.
2. Background
A system on a chip (SoC) is an integrated circuit that integrates the components of a complete system on a chip. It contains a large number of “hard” intellectual property blocks known as “hard macros” (HM). A HM may be a functional unit (e.g., processor, graphics, modem, etc.), memory, or the like. Typically, memory is not implemented as a single HM, but rather as a large number of smaller HMs.
The functional units and the memory are powered from different voltage rails. The memory voltage rail is shared between all memory HMs. The performance mode of these memory HMs may be different at any given time. Some may be in low power mode and others may be in high power mode. There is a dedicated voltage rail for each functional unit HM. The voltage rail for each functional unit HM is set to a level based on its power mode. This creates a scenario where an HM for a functional unit in the low power mode can have logic gates powered at a lower voltage level while memory is powered at a higher voltage level to support the high power mode of other memory HMs. Under this scenario, timing the latching of data from the memory may be challenging. Accordingly, there is a need in the art for controlling the timing in dual-rail systems to ensure proper operation of the circuits.
One aspect of an apparatus is disclosed. The apparatus includes a memory coupled to a first voltage rail and having a data output, a data circuit coupled to a second voltage rail and configured to receive the data output from the memory, and a timing circuit configured to adjust an access time of the memory based on a second voltage rail level.
One aspect of a method of adjusting an access time of the memory is disclosed. The method includes determining a voltage rail level of a data circuit, adjusting the access time of the memory based on the voltage rail level of the data circuit, outputting data from the memory, and receiving the output data by the data circuit.
Another aspect of an apparatus is disclosed. The apparatus comprising a memory coupled to a first voltage rail and comprising a means for outputting data, a data circuit coupled to a second voltage rail and comprising a means for receiving the output data from the memory, and a timing circuit comprising a means for adjusting an access time of the memory based on a second voltage rail level.
Other aspects of apparatuses and methods described herein will become readily apparent to those skilled in the art based on the following detailed description, wherein various aspects of apparatuses and methods are shown and described by way of illustration. These aspects may be implemented in many different forms and its details may be modified in various ways without deviating from the scope of the present invention. Accordingly, the drawings and detailed description provided herein are to be regarded as illustrative in nature and not as restricting the scope of the claims.
Various aspects of apparatuses and methods will now be presented in the detailed description by way of example, and not by way of limitation, with reference to the accompanying drawings, wherein:
Various aspects of the disclosure will be described more fully hereinafter with reference to the accompanying drawings. This disclosure may, however, be embodied in many different forms by those skilled in the art and should not be construed as limited to any specific structure or function presented herein. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Based on the teachings herein, one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of this disclosure, whether implemented independently of or combined with any other aspect of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method which is practiced using other structure and/or functionality in addition to or instead of other aspects of this disclosure. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
Although particular aspects will be described herein, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different circuits, technologies, systems, networks, and methods, some of which are illustrated by way of example in the drawings and in the following description. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims and equivalents thereof.
The various circuits described throughout this disclosure may be implemented in various forms of hardware. By way of example, any of these circuits, either alone or in combination, may be implemented as an integrated circuit, or as part of an integrated circuit. The integrated circuit may be an end product, such as a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), programmable logic, memory, or any other suitable integrated circuit. Alternatively, the integrated circuit may be integrated with other chips, discrete circuit elements, and/or other components as part of either an intermediate product, such as a motherboard, or an end product. The end product can be any suitable product that includes integrated circuits, including by way of example, a cellular phone, a personal digital assistant (PDA), a laptop computer, a desktop computer (PC), a computer peripheral device, a multimedia device, a video device, an audio device, a global positioning system (GPS), a wireless sensor, or any other suitable device.
Various timing requirements may apply to the system 100. A common timing requirement is the “access time” of the memory 102. The access time indicates the time required to read or write to the memory 102. In the case of a read operation, it is typically measured from the clock edge to the time the data output from the memory 102 becomes valid. Other common timing requirements include the “setup time” and the “hold time.” In connection with the data circuit 104, the setup time is the time the data at the input to the data circuit 104 must be valid before the clock edge and the hold time is the time that the data at the input to the data circuit 104 must remain valid after the clock edge.
In at least one embodiment of a system 100, the memory 102 includes a timing circuit 110. The timing circuit 110 may provide various functions, including by way of example, adjusting certain parameters to ensure that the timing requirements are met. By way of example, the timing circuit 110 may provide a means for adjusting the access time of the memory 102 when the memory 102 is operating in a high power mode and the data circuit 104 is operating in a low power mode. Under these conditions, the access time for the memory may be too fast to meet the hold time for the data circuit. In other words, the data provided to the data circuit 104 by the memory 102 may change too quickly after the clock edge to meet the hold time requirements of the data circuit 104. In this example, the timing circuit 110 may be used to reduce the access time of the memory 102.
In the example illustrated in
The memory array 218 may include M number of rows and N number of columns of memory cells 214. In general, M and N may each have any positive integer value. The M rows of memory cells 214 are selected via M word lines, which are depicted as word lines WL1 through WLM. The N columns of memory cells 214 are coupled to N number of differential bit lines BL-1a and BL-1b through BL-Na and BL-Nb. The address decoder & word line drivers 202 may be used to decode the address transmitted by the processor on the bus to activate the appropriate word and differential bit lines to access the desired memory cells 214.
In addition to memory cells 214, the memory array 218 may include one row and one column of dummy cells 216. The dummy cells 216 are used to track the access time of certain memory cells 214 during read and/or write operations. By way of example, during a read operation, the differential bit lines attached to the selected column of memory cells 214 are pre-charged by the pre-charge circuit 222. Afterwards, the word line attached to the selected row of memory cells 214 is asserted, causing one of the two differential bit lines to discharge. The discharge time depends on the capacitive loading of that particular bit line, which is a function of the number of memory cells (e.g., M) attached to that particular bit line.
The dummy cells 218 are used to emulate the capacitive loading on that particular bit line. This is achieved by loading a dummy bit line, referred to as the self-timed bit line (STBL 300), with M number of dummy cells 216. As discussed in greater detail below with respect to
Once the STBL 300 is discharged, the timing circuit 110 provides a sense/enable signal 212 to the sense amplifier 220 in an I/O circuit 204. The sense amplifier 220 senses the voltage difference between the differential bit lines for the selected memory cell 214 when the sense/enable signal 212 is asserted. The appropriate differential bit lines may be provided to the sense amplifier 220 by a read multiplexer 224 in the I/O circuit 204. In a manner to be described in greater detail later, a delay 206 in the timing circuit 110 may be used to adjust the timing of the sense/enable signal 212.
The memory cell 214 includes a pair of cross-coupled inverters 314, 316 and a pair of n-channel transistors 310, 312. Inverter 314 has its input coupled to node A and its output coupled to node B. Inverter 316 has its input coupled to node B and its output coupled to node A. The n-channel transistor 310 has its drain coupled to node A, its source coupled to bit line BL-Xa, and its gate coupled to word line WLM. The re-channel transistor 312 has its drain coupled to node B, its source coupled to complimentary bit line BL-Xb, and its gate also coupled to word line WLM.
The memory cell 214 stores data according to the data values stored at nodes A and B. If the memory cell 214 stores a logic high (i.e., a ‘1’), then node A is at a logic high and node B is at a logic low (i.e., a ‘0’). If the memory cell 214 stores a logic low, then node A is at a logic low and node B is at logic high. During a read operation, differential bit lines BL-Xa and BL-Xb are pre-charged by the pre-charge circuit 222. The word line WLM is then asserted, thereby turning on n-channel transistors 310, 312.
If memory cell 214 stores a logic high, then bit line BL-Xa remains charged via n-channel transistor 310, and complimentary bit line BL-Xb is discharged via n-channel transistor 312. If memory cell 214 stores a logic low, then bit line BL-Xa is discharged via n-channel transistor 310, and complimentary bit line BL-Xb remains charged via re-channel transistor 312.
The signals carried by the differential bit lines BL-Xa, BL-Xb may be selected by the read multiplexer 224 and provided to the sense amplifier 220. When enabled, the sense amplifier 220 outputs data 112 based on the voltage differential between the differential bit lines BL-Xa, BL-Xb. The sense amplifier 220 is enabled by the sense/enable signal 212 that is output from the timing circuit 110.
The dummy cell 216 is constructed to emulate the memory cell 214. However, the source and gate of pass-through n-channel transistor 304 are coupled to vdd 226 such that node B′ is always pulled high. Since node B′ is always high, node A′ is always low because of inverter 308. When the word line WLM is asserted, n-channel transistor 302 is turned on and the STBL 300 goes low.
The dummy cells 216 are used to load the STBL 300 so that the discharge time tracks the discharge time of the appropriate bit line for the selected differential pair BL-Xa, BL-Xb. When the STBL 300 discharges, the timing circuit 110 generates a sense/enable signal 212 to enable the sense amplifier 220. A delay 206 in the timing circuit 110 may be used to delay the sense/enable signal 212 to ensure that the timing requirements of the memory and the data circuit (not shown) receiving the data 112 from the I/O circuit 204 are met. The delay 206 generates a ready signal 318 that is used by the clock & signal generator 208 to generate the sense/enable 212.
The low power mode of the data circuit is indicated as SVS (static voltage scaling) 400 and its compliment (i.e., a high power mode) is indicated as
The n-channel transistor 406 may provide a means for connecting a signal to a pull-down transistor (e.g., n-channel transistor 410) when the data circuit is in a low power mode (e.g., SVS mode). The n-channel transistor 406 may also provide a means for disconnecting the signal from the pull-down transistor (e.g., n-channel transistor 410) when the data circuit is not in a low power mode (e.g.,
The gate of the n-channel transistor 410 is coupled to the voltage of the data circuit (i.e., VDDCX 108). Since the n-channel transistor 410 has a voltage-dependent gate, the degree to which the n-channel transistor 410 is turned on will depend upon the voltage of VDDCX 108. In other words, the resistance of the pull-down circuit corresponding to path Y is a function of VDDCX 108 when n-channel transistors 406, 410 are on. The resistance will affect the discharge rate of STBL 300. As such, the re-channel resistor 410 is acting like a variable resistor, which has a resistance that is based on the voltage of VDDCX 108. The lower the voltage of VDDCX 108, the higher the resistance. The higher the resistance, the longer the discharge time. The longer the discharge time, the slower the discharge rate. By slowing the discharge rate, the rate of the falling edge of STBL 300 may be correspondingly reduced.
The rate of the falling edge of the STBL 300 will impact the time that the ready signal 318 is output by the delay 206 (see
Returning to
The left-hand side of
Turning to
The specific order or hierarchy of blocks in the processes disclosed in
Although various aspects of the present invention have been described as software implementations, those skilled in the art will readily appreciate that the various software modules presented throughout this disclosure may be implemented in hardware, or any combination of software and hardware. Whether these aspects are implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system. Those with ordinary skill in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention. The foregoing description is provided to enable any person skilled in the art to fully understand the scope of the invention. Modifications to various aspects disclosed herein will be readily apparent to those skilled in the art. Accordingly, the scope of the claims will not be limited to the various exemplary embodiments provided herein. Reference to an element in the singular is not intended to mean “one and only one” unless specifically stated as such; instead, reference to an element in the singular shall mean “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. No claim element is to be construed under the provisions of 35 U.S.C. §112(f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” The claims are not intended to be limited to the various aspects of this disclosure, but are to be accorded the full scope consistent with the language of the claims. All structural and functional equivalents to the various components of the exemplary embodiments described throughout this disclosure that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.