US20180158506A1 - Pulse-stretcher clock generator circuit for high speed memory subsystems - Google Patents
Pulse-stretcher clock generator circuit for high speed memory subsystems Download PDFInfo
- Publication number
- US20180158506A1 US20180158506A1 US15/370,892 US201615370892A US2018158506A1 US 20180158506 A1 US20180158506 A1 US 20180158506A1 US 201615370892 A US201615370892 A US 201615370892A US 2018158506 A1 US2018158506 A1 US 2018158506A1
- Authority
- US
- United States
- Prior art keywords
- pull
- memory
- clock
- circuit
- reference clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4094—Bit-line management or control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
Definitions
- the present disclosure relates generally to memory systems, and more particularly, to pulse stretching circuitry.
- Some memory devices may use pulse latches in a memory's input paths to improve performance.
- the use of pulse latches in a memory's input paths leads to minimum pulse width requirements so that the latch can be written to in the presence of clock signal variation across the die of the device.
- cache accesses and cache writes may be multi-cycle operations. Memory cycle time may usually be relaxed. Additionally, the memory clock used with the CPU architecture may be a pulsed clock. As clock frequency increases, minimum pulse width requirements may begin to limit the maximum system clock (e.g., CPU clock) frequency used to generate a memory clock.
- system clock e.g., CPU clock
- a memory apparatus may include a memory.
- the memory may be configured to receive a memory clock.
- the memory apparatus may also include a single stage logic gate.
- the single stage logic gate may be configured to generate the memory clock from a reference clock.
- the memory clock may be a gated clock and have a wider pulse width than the reference clock.
- an apparatus may include a processor.
- the apparatus may also include a memory.
- the memory may be configured to receive a memory clock.
- the memory apparatus may also include a single stage logic gate.
- the single stage logic gate may be configured to generate the memory clock from a reference clock.
- the memory clock may be a gated clock and have a wider pulse width than the reference clock.
- a memory apparatus may include means to store data configured to receive a memory clock.
- the memory apparatus may include means to generate the memory clock from a reference clock in a single logic gate stage.
- the memory clock may be a gated clock and may have a wider pulse width than the reference clock.
- the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims.
- the following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
- FIG. 1 is a diagram illustrating a graph of clock signals
- FIG. 2 is a block diagram illustrating a clocked memory system
- FIG. 3 is a diagram illustrating a CGC at a gate and individual transistor level
- FIG. 4 is another block diagram illustrating another clocked memory system
- FIG. 5 is another block diagram illustrating another clocked memory system
- FIG. 6 is a diagram illustrating a pulse lengthening CGC at a gate and an individual transistor level in accordance with the systems and methods proposed;
- FIG. 7 is a diagram illustrating a transistor level implementation of the OR gate and NAND gate circuit using an OR-AND-Inverter (OAI) circuit topology, in accordance with the systems and methods proposed;
- OAI OR-AND-Inverter
- FIG. 8 is a diagram illustrating a computing apparatus employing aspects of the systems and methods described herein.
- FIG. 9 is a timing diagram illustrating an example clock signal and aCGC pulse 206 .
- processors include microprocessors, microcontrollers, graphics processing units (GPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, systems on a chip (SoC), baseband processors, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
- processors in the processing system may execute software.
- Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium.
- Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer.
- such computer-readable media can include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
- FIG. 1 is a diagram illustrating a graph 100 of clock signals.
- the clock signals include a clock (CLK) 102 and a Memory CLK 104 .
- the Memory CLK 104 may be generated from the CLK 102 .
- the CLK 102 may be a central processing unit (CPU) CLK.
- the Memory CLK 104 may be generated based on a CPU CLK of the system. By generating the Memory CLK based on the CPU CLK, the memory in the system and the CPU in the system may be synchronized to each other.
- the Memory CLK 104 has a lower frequency than the CLK 102 .
- a circuit generating the Memory CLK 104 may not be enabled for each clock edge of the CLK 102 .
- the Memory CLK 104 has a lower duty cycle than the CLK 102 .
- the Memory CLK 104 has a single clock pulse in a same period during which the CLK 102 has multiple clock pulses.
- the Memory CLK 104 may be skewed relative to the CLK 102 . Skew between the CLK 102 and the Memory CLK 104 may be due to delays across a die. The delays may be due to the length of a signal path or signal paths on the die, delays through buffer circuits, delays through logic circuits, other delays, or some combination of such delays. Additionally, the pulse width of the Memory CLK 104 may also be distorted, e.g., decreased. For example, the pulse width of the Memory CLK 104 may be distorted by the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, distortion through logic circuits, or a combination of such distortion.
- a minimum pulse width requirements for a memory may be one aspect that may determine or be a factor in setting the maximum operating clock frequency (fMAX), e.g., for the memory device. Additionally, for some memory designs, a design violation of fMAX may not be discovered until fairly late in the design process.
- a design violation of fMAX may include a memory design with circuitry within the memory design that cannot be clocked at fMAX.
- fMAX may be difficult because a violation of fMAX may take time to discover, which may increase the time to design a memory. Accordingly, violations of fMAX may delay design roll-out. Furthermore, products may be launched that have lower performance than originally planned. For example, when a circuit design does not meet fMAX, the fMAX of the circuit design may have to be adjusted, e.g., the clock rate used may need to be lowered.
- tighter clock slews may help. Clock skew may occur when a clock signal arrives at different components at different times. Tighter clock slews may allow for higher fMAX because lower clock slew may allow a shorter time interval between clock pulses. The impact of tighter clock slew on the performance of a design may be low, however. Accordingly, an aspect of the disclosure may correct for violations of fMAX at the subsystem level. In other words, subsystems within a memory system may be designed to compensate for memory that may not meet the fMAX requirement.
- FIG. 2 is a block diagram illustrating a clocked memory system 200 .
- the clocked memory system 200 includes a clock gating cell (CGC) 202 and a memory 204 .
- the CGC 202 may generate a memory clock signal 206 for the memory 204 .
- the example of FIG. 2 may have a minimum pulse width limitations on the clock.
- the minimum pulse width limitations on the clock may limit fMAX.
- the pulse width of the memory clock signal 206 may be based on the pulse width of the input clock (CLK). Accordingly, the pulse width limitations of the memory clock signal 206 may set the pulse width of the input clock (CLK), which may limit the maximum frequency of the input clock (CLK), fMAX.
- the CGC 202 may enable and disable the propagation of the memory clock signal 206 to the memory 204 .
- the CGC 202 may enable and disable the propagation of the memory clock signal 206 to the memory 204 when the memory 204 is not being used.
- the CGC 202 may enable and disable the propagation of the memory clock signal 206 to the memory 204 to reduce the dynamic power used by the memory 204 .
- the CGC 202 may include an enable signal (EN) and a clock input (CLK).
- the enable signal (EN) may enable and disable the propagation of the memory clock signal 206 to the memory 204 .
- the CGC 202 may also include a test enable signal (test_en) that may enable the CGC 202 for testing purposes.
- the memory clock signal 206 may be generated based on the clock input (CLK), which may be a processor clock. Accordingly, the memory clock signal 206 (Memory CLK) and the processor clock may be synchronized.
- the memory 204 may be a Dynamic Random Access Memory (DRAM).
- the DRAM may be asynchronous.
- the signals related to the DRAM may generally be generated by a clocked memory controller, such as the CGC 202 , however.
- the clocked memory controller e.g., the CGC 202 , may limit the timing of the memory clock signal 206 for the DRAM to multiples of the controller's clock cycle, e.g., a CPU CLK.
- a clock signal may be skewed due to delays caused by the length of a signal path or signal paths on a die, delays through buffer circuits, delays through logic circuits, other delays, or some combination of such delays. Additionally, the pulse width of clock signals may also be distorted by the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, distortion through logic circuits, or a combination of the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, or distortion through logic circuits. Clock skew and clock distortions may impact the fMAX of the memory clock signal 206 , however.
- the memory clock signal 206 for the memory 204 generated for the clocked memory system 200 using the CGC 202 may have a limited fMAX due to clock skew and clock distortions.
- the CGC 202 may receive a clock input (CLK) that may be a CPU CLK and generate a Memory CLK.
- CLK clock input
- the CGC 202 may receive the CLK 102 and generate the Memory CLK 104 of FIG. 1 .
- FIG. 3 is a diagram illustrating a CGC 202 at a gate and an individual transistor level.
- the diagram of FIG. 3 includes individual transistors, including p-type metal oxide semiconductor (PMOS) transistors 302 , 304 , 306 , and n-type metal oxide semiconductor (NMOS) transistors 308 , 310 , 312 .
- the diagram of FIG. 3 also includes a several gates, including NOR gates 314 , 316 , and inverters 318 , 320 .
- the NAND gate 322 may gate the clock input (CLK).
- the inverter 320 may invert the output of the NAND gate 322 (pn 2 ). Inverting the output of NAND gate 322 (pn 2 ) may ensure that the clock input (CLK) and the clock output, Memory CLK, are in phase or nearly in phase with each other.
- the NOR gate 314 may be used to enable and disable the CGC 202 .
- the NOR gate 314 may have an enable input (EN) and a test enable input (test_en) as inputs.
- the NOR gate 314 generates an internal enable signal, nclk_en. When neither EN nor test_en are active, e.g., a logic high voltage, the internal enable signal, nclk_en, will be a logic high voltage.
- the PMOS transistor 306 When pn 2 is a logic low voltage (e.g., when the Memory CLK is a logic high voltage), the PMOS transistor 306 may be on and the NMOS transistor 310 may be off. When the PMOS transistor 306 is on and the NMOS transistor 310 is off pn 1 may be pulled up, e.g., to Vddfx. For example, when the PMOS transistor 306 is on pn 1 may be coupled through the PMOS transistor 306 to vddfx, which may be a positive power supply voltage.
- nclk_en signal When nclk_en signal is a logic high voltage (e.g., when the Memory CLK is a logic low voltage), the PMOS transistor 304 may be off and the NMOS transistor 308 may be on. Accordingly, the signal on pn 1 may depend on the PMOS transistor 306 and the NMOS transistors 310 , 312 .
- pn 2 When pn 2 is a logic high voltage, the PMOS transistor 306 is off and the NMOS transistor 310 may be on. When the NMOS transistor 310 is on pn 2 will be coupled to pn 1 .
- pn 1 and pn 2 may be pulled down, e.g., to Vsefx.
- the pn 2 may be pulled down through the NMOS transistors 310 , 308 .
- the pn 1 signal may be pulled down through the NMOS transistor 308 .
- the nclk_en signal is a logic high voltage, e.g., when the CGC 202 is “disabled”
- the pn 1 signal will either be a logic low voltage (when the Memory CLK is low) or will transition to a logic low voltage after the Memory CLK transitions low.
- the pn 1 signal is a logic low voltage, e.g., when the CGC 202 is “disabled,” the CLK signal will be disabled by the NAND gate 322 such that the Memory CLK signal will not toggle.
- the nclk_en signal When the CGC 202 is “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the nclk_en signal will be a logic low voltage. Accordingly, the NMOS transistor 308 may be off and the PMOS transistor 304 may be on. Accordingly, the pn 1 signal may be pulled to a logic high voltage when the PMOS transistor 302 is on.
- the PMOS transistor 302 may be on when the output of the NOR gate 316 is a logic low voltage.
- the output of the NOR gate 316 may be a logic low voltage when the pn 1 signal is a logic low voltage or when the clock input signal (CLK) is a logic low voltage.
- the output of the NOR gate 316 may be a logic high voltage when the pn 1 signal is a logic low voltage and the clock input signal (CLK) is a logic high voltage.
- the NMOS transistor 312 When the output of the NOR gate 316 is a logic high voltage, the NMOS transistor 312 may be on. When the NMOS transistor 312 is on and when pn 2 is a logic high voltage (e.g., when Memory CLK is a logic low voltage), the NMOS transistor 310 may be on. Accordingly, the pn 1 signal may be pulled low through the NMOS transistors 310 , 312 . With the CGC 202 “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the output of the NOR gate 316 may remain a logic low value and pn 1 may continue to be pulled to a logic high value through PMOS transistors 302 , 304 . Accordingly, the clock (CLK) may be passed through the NAND gate 322 , through the inverter 320 to output Memory CLK.
- CLK clock
- FIG. 4 is another block diagram illustrating another clocked memory system 400 employing a pulse stretcher according to an aspect of the systems and methods described herein.
- the clocked memory system 400 includes the CGC 202 and the memory 204 .
- the CGC 202 may generate a clock signal 206 .
- the example of FIG. 4 may have minimum pulse width limitations on the clock signal for memory 204 .
- the example of FIG. 4 also includes a pulse stretcher 402 .
- a pulse stretcher such as the pulse stretcher 402 may be a circuit that produces an output pulse whose duration may be greater than that of an input pulse and whose amplitude is proportional to a peak amplitude of the input pulse.
- the pulse stretcher 402 may have an input signal, the clock signal 206 .
- the pulse stretcher 402 may output a pulse stretched clock signal, Memory CLK 404 .
- the clock signal Memory CLK 404 may be an output pulse with a duration greater than that of an input pulse, the memory clock signal 206 .
- the clock signal 404 may be an output pulse with an amplitude that is proportional to a peak amplitude of the input pulse, the memory clock signal 206 . According, the design illustrated in FIG. 4 may increase clock latency because the pulse stretcher 402 increases delay, e.g., between an edge of the clock signal 404 and an edge of the memory clock signal 206 .
- the lengthened clock pulse may lessen the impact of clock skew and clock distortion.
- meeting or overcoming the minimum pulse width limitations on the clock may be easier because the clock pulse width may be longer.
- clock skew and clock distortions may have less of an impact on the fMAX of the Memory CLK to the memory 204 of FIG. 4 .
- the pulse stretcher 402 may increase delay and increase the difference between clock edges of the CLK and the Memory CLK.
- the CGC 202 of FIG. 4 may be the same or similar to the CGC 202 of FIG. 2 . Accordingly, the CGC 202 of FIG. 4 may enable and disable the propagation of the memory clock signal 206 .
- the pulse width of the memory clock signal 206 may be stretched through the pulse stretcher 402 to the memory 204 .
- the CGC 202 may enable and disable the propagation of the memory clock signal 206 to the memory 204 when the memory 204 is not being used, e.g., to reduce the dynamic power used by the memory 204 .
- the CGC 202 may include an enable signal (EN) and a clock input (CLK).
- the enable signal (EN) may enable and disable the propagation of the memory clock signal 206 to the memory 204 .
- the CGC 202 may also include a test enable signal (test_en) that may enable the CGC 202 for testing purposes. Stretching the memory clock signal (Memory CLK 404 ) may improve margins so that the clock used to generate the memory clock may be a higher frequency.
- the memory clock signal 206 may be generated based on the clock input (CLK), which may be a processor clock. Accordingly, the memory clock signal 206 and the processor clock may be synchronized.
- the memory clock signal 206 may be stretched using the system of FIG. 4 . However, the system of FIG. 4 may also delay the memory clock signal 206 more than the other example systems and methods described herein. Additionally, the memory 204 of FIG. 4 may also be a DRAM.
- FIG. 5 is another block diagram illustrating another clocked memory system 500 .
- the clocked memory system 500 includes a Pulse Stretcher (PS) CGC 502 and the memory 204 .
- the PS-CGC 502 may generate a clock signal 504 for the memory 204 .
- the clock signal 504 (Memory CLK) may be pulse stretched relative to the duty cycle of the clock CLK input to the PS-CGC 502 .
- the clock signal 504 may be a CPU CLK and the clock signal 504 may be pulse stretched, e.g., the pulse width may be increased, relative to the duty cycle of the CPU CLK.
- the clocked memory system of FIG. 5 may be clocked at a higher frequency and still meet minimum pulse width limitations on the clock because the pulse is stretched relative to the input clock.
- the PS-CGC 502 may maintain a low insertion delay while selectively delaying the falling edge of the clock signal to the memory. (Insertion delay may be the time taken by the clock signal to reach the register from its source point.)
- the memory apparatus e.g., clocked memory system 500
- the memory 204 may be configured to receive the memory clock (Memory CLK).
- the memory apparatus e.g., clocked memory system 500
- the single stage logic gate may be configured to generate the memory clock (Memory CLK) from a reference clock (e.g., CLK, CPU CLK). (See FIG.
- the memory clock may be a gated clock. Additionally, the memory clock may have a wider pulse width than the reference clock.
- the single stage logic gate (discussed in more detail with respect to FIGS. 6-7 ) may be the circuitry that allows the PS-CGC 502 to maintain a low insertion delay while selectively delaying the falling edge of the clock signal input to the memory.
- the PS-CGC 502 of FIG. 5 may be the same or similar to the CGC 202 of FIGS. 2 and 4 . Accordingly, the CGC 202 of FIG. 5 may enable and disable the propagation of the memory clock signal 206 .
- the CGC 202 may enable and disable the propagation of the memory clock signal 206 to the memory 204 when the memory 204 is not being used, e.g., to reduce the dynamic power used by the memory 204 .
- the CGC 202 may include an enable signal (EN) and a clock input (CLK).
- the enable signal (EN) may enable and disable the propagation of the memory clock signal 206 to the memory 204 .
- the CGC 202 may also include a test enable signal (test_en) that may enable the CGC 202 for testing purposes.
- the clock signal 504 may be generated based on the clock input (CLK), which may be a processor clock (CPU CLK). Accordingly, the memory clock signal 206 and the processor clock may be synchronized.
- the memory clock signal 206 may be stretched.
- the memory clock signal 206 may also be delayed, however, the delay may be lower when compared to the example of FIG. 5 .
- the memory 204 of FIG. 5 may also be a DRAM.
- FIG. 6 is a diagram illustrating a pulse lengthening PS-CGC 502 at a gate and an individual transistor level in accordance with the systems and methods proposed for lengthening a pulse, e.g., to increase a clock pulse width.
- the falling edge delay of the memory clock output (Memory CLK) may be made programmable based on the delay through the delay buffer used.
- the diagram of FIG. 6 includes individual transistors, including p-type metal oxide semiconductor (PMOS) transistors 302 , 304 , 306 , and n-type metal oxide semiconductor (NMOS) transistors 308 , 310 , 312 .
- the diagram of FIG. 6 also includes a several gates, including NOR gates 314 , 316 , inverters 318 , 320 .
- the PS-CGC 502 includes a buffer 602 , OR gate 604 , and a NAND gate 606 .
- the buffer 602 generates a delayed clock (Delayed CLK).
- the delayed clock (Delay CLK) and the clock (CLK) may be OR'ed together in the OR gate 604 to generate a stretched pulse clock.
- the NAND gate 606 may gate the clock input (CLK).
- the inverter 320 may invert the output of the NAND gate 606 (pn 2 ). Inverting the output of NAND gate 606 (pn 2 ) may ensure that the clock input (CLK) and the clock output, Memory CLK are in phase or nearly in phase with each other.
- the NOR gate 314 may be used to enable and disable the CGC 202 .
- the NOR gate 314 may have an enable input (EN) and a test enable input (test_en) as inputs.
- EN enable input
- test_en test enable input
- the NOR gate 314 generates an internal enable signal, nclk_en. When neither EN nor test_en are active, e.g., a logic high voltage, the internal enable signal, nclk_en, will be a logic high voltage.
- the PMOS transistor 306 When pn 2 is a logic low voltage (e.g., when the Memory CLK is a logic high voltage), the PMOS transistor 306 may be on and the NMOS transistor 310 may be off. When the PMOS transistor 306 is on and the NMOS transistor 310 is off pn 1 may be pulled up. For example, when the PMOS transistor 306 is on pn 1 may be coupled to vddfx, which may be a positive power supply voltage through the PMOS transistors 306 .
- nclk_en signal When nclk_en signal is a logic high voltage (e.g., when the Memory CLK is a logic low voltage), the PMOS transistor 304 may be off and the NMOS transistor 308 may be on. Accordingly, the signal on pn 1 may depend on the PMOS transistor 306 and the NMOS transistors 310 , 312 .
- pn 2 When pn 2 is a logic high voltage, the PMOS transistor 306 may be off and the NMOS transistor 310 may be on.
- the NMOS transistor 310 When the NMOS transistor 310 is on pn 2 will be coupled to pn 1 .
- the PMOS transistor 306 When the PMOS transistor 306 may be off and the NMOS transistor 310 is on and the NMOS transistor 308 is on, pn 1 and pn 2 may be pulled down.
- the pn 2 may be pulled down through the NMOS transistors 310 , 308 .
- the pn 1 signal may be pulled down through the NMOS transistor 308 . Accordingly, when the nclk_en signal is a logic high voltage, e.g., when the CGC 202 is “disabled,” the pn 1 signal will either be a logic low voltage (when the Memory CLK is low) or will transition to a logic low voltage after the Memory CLK transitions low. As long as the pn 1 signal is logic low voltage, e.g., when the CGC 202 is “disabled,” the CLK signal will be disabled by the NAND gate 606 such that the Memory CLK signal will not toggle.
- the nclk_en signal When the CGC 202 is “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the nclk_en signal will be a logic low voltage. Accordingly, the NMOS transistor 308 may be off and the PMOS transistor 304 may be on. Accordingly, the pn 1 signal may be pulled to a logic high voltage when the PMOS transistor 302 is on. The PMOS transistor 302 may be on when the output of the NOR gate 316 is a logic low voltage. The output of the NOR gate 316 may be a logic low voltage when the pn 1 signal is a logic low voltage or when the clock input signal (CLK) is a logic low voltage.
- CLK clock input signal
- the output of the NOR gate 316 may be a logic high voltage when the pn 1 signal is a logic low voltage and the clock input signal (CLK) is a logic high voltage.
- the functionality of the OR gate 604 and the NAND gate 606 illustrated in FIG. 6 may be generated using NMOS and PMOS transistors as discussed with respect to FIG. 7 .
- the NMOS and PMOS transistors may be configured to have a single stage of delay even though the NMOS and PMOS transistors implement the OR and NAND functions.
- the NMOS and PMOS transistors having a single stage of delay may be referred to as a single stage logic gate.
- FIG. 7 is a diagram 700 illustrating a transistor level implementation 702 ′ of the OR gate 604 and NAND gate 606 circuit 702 using an OR-AND-Inverter (OAI) circuit topology, in accordance with the systems and methods proposed.
- the circuit 702 and the transistor level implementation 702 ′ may be a single stage logic gate.
- the single stage logic gate may include a pull-up circuit 716 configured to pull-up the memory clock (Memory CLK).
- the single stage logic gate may also include a pull-down circuit 718 coupled to pull-down the memory clock (Memory CLK).
- the pull-up circuit 716 and the pull-down circuit 718 are configured to be controlled by the reference clock (CLK, CPU CLK), a delayed reference clock (Delay CLK), and a gating signal (pn 1 ).
- the single stage logic gate may be further configured to enable the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK) to control the pull-up circuit 716 and the pull-down circuit 718 in response to one logic state of the gating signal (pn 1 ). Additionally, the single stage logic gate is also further configured to enable one of the pull-up circuit 716 and the pull-down circuit 718 in response to another logic state of the gating signal (pn 1 ) independent of the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK).
- the single stage logic gate may include a memory clock output configured to provide the memory clock (Memory CLK) to the memory.
- the pull-up circuit 716 may be coupled between the memory clock output and a voltage rail and the pull-down circuit 718 may be coupled between the memory clock output and a voltage return rail.
- the pull-up circuit ( 716 ) includes first and second serial pull-up transistors ( 704 , 706 ) coupled between the memory clock output and the voltage rail.
- the first pull-up transistor ( 706 ) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-up transistor ( 704 ) may be configured to be controlled by a delayed reference clock (Delay CLK).
- the pull-down circuit ( 718 ) includes first and second parallel transistors ( 710 , 714 ) coupled between the memory clock output and the voltage return rail.
- the first pull-down transistor ( 710 ) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-down transistor ( 714 ) may be configured to be controlled by a delayed reference clock (Delay CLK).
- the pull-up circuit further includes a third pull-up transistor ( 708 ) coupled between the memory clock output and the voltage rail in parallel with the first and the second serial pull-up transistors ( 704 , 706 ).
- the pull-down circuit further includes a third pull-down transistor ( 712 ) coupled in series with the first and the second parallel pull-down transistors ( 710 , 714 ) between the memory clock output and the voltage return rail. Additionally, each of the third pull-up and the third pull-down transistors ( 708 , 712 ) may be controlled by a gating signal (pn 1 ).
- FIG. 8 is a diagram illustrating a computing apparatus 800 employing aspects of the systems and methods described herein.
- the computing apparatus 800 includes a processor 802 and the clocked memory system 500 of FIG. 5 .
- the clocked memory system 500 within the computing apparatus 800 include a memory 204 .
- the memory 204 is coupled to the processor 802 .
- an address bus, a data bus, and a control bus couple the memory 204 to the processor 802 .
- the memory 204 may be configured to receive the memory clock (Memory CLK).
- the computing apparatus 800 may also include a PS-CGC 502 .
- the PS-CGC 502 may be a single stage logic gate.
- the single stage logic gate may be configured to generate the memory clock (Memory CLK) from a reference clock (e.g., CLK 102 of FIG. 1 ).
- the memory clock (Memory CLK) 504 may be a gated clock. Additionally, the memory clock (Memory CLK) 504 may have a wider pulse width than the reference clock (CLK).
- FIG. 9 is a timing diagram 900 illustrating an example clock signal (CLK) 102 and a CGC pulse (memory clock signal 206 ). More specifically, the timing diagram 900 illustrates an example of a single pulse of the clock signal (CLK) 102 . The timing diagram 900 also illustrates a stretched CGC pulse (clock signal 504 ) that may be generated in accordance with the systems and methods described herein. As illustrated in the timing diagram 900 , there may be a delay 4240 between the rising edge of the clock signal (CLK) 102 and the rising edges of the original CGC pulse (memory clock signal 206 ) and the stretched CGC pulse (clock signal 504 ).
- the delay (t 2 -t 1 ) may be due to delays through the circuitry that generates the original CGC pulse (memory clock signal 206 ) and the stretched CGC pulse (clock signal 504 ).
- the original CGC pulse (memory clock signal 206 ) and the stretched CGC pulse (clock signal 504 ) may have the same or nearly the same rising edge.
- each of the clock signal (CLK) 102 , CGC pulse (clock signal 504 ), and stretched CGC pulse (clock signal 504 ) may be at a logic high voltage at t 3 .
- the clock signal (CLK) 102 may begin to transition from a logic high voltage to a logic low voltage at a time, t 4 .
- the original CGC pulse (memory clock signal 206 ) may begin to transition from a logic high voltage to a logic low voltage at a time, t 5 after a delay (t 5 -t 4 ).
- the delay (t 5 -t 4 ) may be due to delays through the circuitry that generates the original CGC pulse (memory clock signal 206 ).
- both the clock signal (CLK) 102 and the CGC pulse (clock signal 504 ) may be at a logic low voltage at t 6 .
- the stretched CGC pulse may be at a logic low voltage at t 7 .
- the stretched CGC pulse may be stretched to t 7 ., e.g., the stretched CGC pulse (clock signal 504 ) has a longer duration than the original CGC pulse (memory clock signal 206 ) and reaches the logic low voltage at t 7 .
- the memory apparatus may include a memory ( 204 ) configured to receive a memory clock (Memory CLK).
- the memory apparatus e.g., clocked memory system 500
- the memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- the single stage logic gate (circuit 702 ) includes a pull-up circuit ( 716 ) configured to pull-up the memory clock (Memory CLK), and a pull-down circuit ( 718 ) coupled to pull-down the memory clock (Memory CLK).
- the pull-up circuit ( 716 ) and the pull-down circuit ( 718 ) are configured to be controlled by the reference clock (CLK, CPU CLK), a delayed reference clock (Delay CLK), and a gating signal (pn 1 ).
- the apparatus includes a delay circuit (buffer 602 ) configured to generate the delayed reference clock (Delay CLK) from the reference clock (CLK, CPU CLK).
- a delay circuit buffer 602 configured to generate the delayed reference clock (Delay CLK) from the reference clock (CLK, CPU CLK).
- An example includes a latch ( 608 ) configured to generate the gating signal (pn 1 ).
- the latch ( 608 ) is further configured to latch the gating signal (pn 1 ) with a trailing edge of the reference clock (CLK, CPU CLK).
- the single stage logic gate (circuit 702 ) is further configured to enable the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK) to control the pull-up circuit ( 716 ) and the pull-down circuit ( 718 ) in response to one logic state of the gating signal (pn 1 ).
- the single stage logic gate (circuit 702 ) is also further configured to enable one of the pull-up circuit ( 716 ) and the pull-down circuit ( 718 ) in response to another logic state of the gating signal (pn 1 ) independent of the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK).
- the single stage logic gate (circuit 702 ) includes a memory clock output configured to provide the memory clock (Memory CLK) to the memory.
- the pull-up circuit ( 716 ) may be coupled between the memory clock output and a voltage rail and the pull-down circuit ( 718 ) may be coupled between the memory clock output and a voltage return rail.
- the pull-up circuit ( 716 ) includes first and second serial pull-up transistors ( 704 , 706 ) coupled between the memory clock output and the voltage rail.
- the first pull-up transistor ( 706 ) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-up transistor ( 704 ) may be configured to be controlled by a delayed reference clock (Delay CLK).
- the pull-down circuit ( 718 ) includes first and second parallel transistors ( 710 , 714 ) coupled between the memory clock output and the voltage return rail.
- the first pull-down transistor ( 710 ) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-down transistor ( 714 ) may be configured to be controlled by a delayed reference clock Delay CLK).
- the pull-up circuit further includes a third pull-up transistor ( 708 ) coupled between the memory clock output and the voltage rail in parallel with the first and the second serial pull-up transistors ( 704 , 706 ).
- the pull-down circuit further includes a third pull-down transistor ( 712 ) coupled in series with the first and the second parallel pull-down transistors ( 710 , 714 ) between the memory clock output and the voltage return rail. Additionally, each of the third pull-up and the third pull-down transistors ( 708 , 712 ) may be controlled by a gating signal (pn 1 ).
- An computing apparatus ( 800 ) may include a processor ( 802 ).
- the computing apparatus ( 800 ) may also include a memory ( 208 ).
- the memory ( 208 ) may be coupled to the processor ( 802 ).
- the memory ( 208 ) may be configured to receive a memory clock (Memory CLK).
- the memory apparatus e.g., clocked memory system 500
- the memory apparatus may also include a single stage logic gate (within 502 , 702 ) configured to generate the memory clock (Memory CLK) from a reference clock (CLK, CPU CLK).
- the memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- a memory apparatus may include means to store data (e.g., memory 204 ).
- the means to store data (e.g., memory 204 ) may be configured to receive a memory clock (Memory CLK).
- the memory apparatus may include means to generate the memory clock (clock signal 504 ) from a reference clock (CLK, CPU CLK) in a single logic gate stage (circuit 702 ).
- the memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- the means to generate the memory clock includes a pull-up circuit ( 716 ) configured to pull-up the memory clock and a pull-down circuit ( 718 ) coupled to pull-down the memory clock.
- Combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C.
- combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C.
Abstract
Description
- The present disclosure relates generally to memory systems, and more particularly, to pulse stretching circuitry.
- Some memory devices may use pulse latches in a memory's input paths to improve performance. The use of pulse latches in a memory's input paths leads to minimum pulse width requirements so that the latch can be written to in the presence of clock signal variation across the die of the device.
- In CPU Level 2 or Level 3 caches, cache accesses and cache writes may be multi-cycle operations. Memory cycle time may usually be relaxed. Additionally, the memory clock used with the CPU architecture may be a pulsed clock. As clock frequency increases, minimum pulse width requirements may begin to limit the maximum system clock (e.g., CPU clock) frequency used to generate a memory clock.
- The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.
- In an aspect of the disclosure, a memory apparatus is provided. The memory apparatus may include a memory. The memory may be configured to receive a memory clock. The memory apparatus may also include a single stage logic gate. The single stage logic gate may be configured to generate the memory clock from a reference clock. The memory clock may be a gated clock and have a wider pulse width than the reference clock.
- In an aspect of the disclosure, an apparatus is provided. The apparatus may include a processor. The apparatus may also include a memory. The memory may be configured to receive a memory clock. The memory apparatus may also include a single stage logic gate. The single stage logic gate may be configured to generate the memory clock from a reference clock. The memory clock may be a gated clock and have a wider pulse width than the reference clock.
- In an aspect of the disclosure, a memory apparatus is provided. The memory apparatus may include means to store data configured to receive a memory clock. The memory apparatus may include means to generate the memory clock from a reference clock in a single logic gate stage. The memory clock may be a gated clock and may have a wider pulse width than the reference clock.
- To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
-
FIG. 1 is a diagram illustrating a graph of clock signals; -
FIG. 2 is a block diagram illustrating a clocked memory system; -
FIG. 3 is a diagram illustrating a CGC at a gate and individual transistor level; -
FIG. 4 is another block diagram illustrating another clocked memory system; -
FIG. 5 is another block diagram illustrating another clocked memory system; -
FIG. 6 is a diagram illustrating a pulse lengthening CGC at a gate and an individual transistor level in accordance with the systems and methods proposed; -
FIG. 7 is a diagram illustrating a transistor level implementation of the OR gate and NAND gate circuit using an OR-AND-Inverter (OAI) circuit topology, in accordance with the systems and methods proposed; -
FIG. 8 is a diagram illustrating a computing apparatus employing aspects of the systems and methods described herein; and -
FIG. 9 is a timing diagram illustrating an example clock signal andaCGC pulse 206. - The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, the concepts described herein may be practiced without these specific details as will be apparent to those skilled in the art. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
- Several aspects of telecommunication systems will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
- By way of example, an element, or any portion of an element, or any combination of elements may be implemented as a “processing system” that includes one or more processors. Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, systems on a chip (SoC), baseband processors, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- Accordingly, in one or more example embodiments, the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
-
FIG. 1 is a diagram illustrating agraph 100 of clock signals. The clock signals include a clock (CLK) 102 and aMemory CLK 104. The Memory CLK 104 may be generated from the CLK 102. Additionally, theCLK 102 may be a central processing unit (CPU) CLK. For example, in an example processor based system, theMemory CLK 104 may be generated based on a CPU CLK of the system. By generating the Memory CLK based on the CPU CLK, the memory in the system and the CPU in the system may be synchronized to each other. - In the illustrated example of
FIG. 1 , theMemory CLK 104 has a lower frequency than theCLK 102. For example, a circuit generating theMemory CLK 104 may not be enabled for each clock edge of theCLK 102. Accordingly, theMemory CLK 104 has a lower duty cycle than theCLK 102. For example, in the illustrated example, theMemory CLK 104 has a single clock pulse in a same period during which theCLK 102 has multiple clock pulses. - Although not illustrated in
FIG. 1 , theMemory CLK 104 may be skewed relative to theCLK 102. Skew between theCLK 102 and theMemory CLK 104 may be due to delays across a die. The delays may be due to the length of a signal path or signal paths on the die, delays through buffer circuits, delays through logic circuits, other delays, or some combination of such delays. Additionally, the pulse width of theMemory CLK 104 may also be distorted, e.g., decreased. For example, the pulse width of theMemory CLK 104 may be distorted by the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, distortion through logic circuits, or a combination of such distortion. - In some process technologies, such as a 14 nm Low Power Plus (14LPP) process technology, a first-generation 10 nm process (10LPE) process technology, or other process technology, for example, a minimum pulse width requirements for a memory may be one aspect that may determine or be a factor in setting the maximum operating clock frequency (fMAX), e.g., for the memory device. Additionally, for some memory designs, a design violation of fMAX may not be discovered until fairly late in the design process. A design violation of fMAX may include a memory design with circuitry within the memory design that cannot be clocked at fMAX. Accordingly, meeting the design requirements for fMAX may be difficult because a violation of fMAX may take time to discover, which may increase the time to design a memory. Accordingly, violations of fMAX may delay design roll-out. Furthermore, products may be launched that have lower performance than originally planned. For example, when a circuit design does not meet fMAX, the fMAX of the circuit design may have to be adjusted, e.g., the clock rate used may need to be lowered.
- In some examples, tighter clock slews may help. Clock skew may occur when a clock signal arrives at different components at different times. Tighter clock slews may allow for higher fMAX because lower clock slew may allow a shorter time interval between clock pulses. The impact of tighter clock slew on the performance of a design may be low, however. Accordingly, an aspect of the disclosure may correct for violations of fMAX at the subsystem level. In other words, subsystems within a memory system may be designed to compensate for memory that may not meet the fMAX requirement.
-
FIG. 2 is a block diagram illustrating a clockedmemory system 200. The clockedmemory system 200 includes a clock gating cell (CGC) 202 and amemory 204. TheCGC 202 may generate amemory clock signal 206 for thememory 204. The example ofFIG. 2 may have a minimum pulse width limitations on the clock. The minimum pulse width limitations on the clock may limit fMAX. As the clock frequency increases, generating a pulse that meets the minimum pulse width limitations may be more difficult. For example, forCGC 202, the pulse width of thememory clock signal 206 may be based on the pulse width of the input clock (CLK). Accordingly, the pulse width limitations of thememory clock signal 206 may set the pulse width of the input clock (CLK), which may limit the maximum frequency of the input clock (CLK), fMAX. - The
CGC 202 may enable and disable the propagation of thememory clock signal 206 to thememory 204. For example, theCGC 202 may enable and disable the propagation of thememory clock signal 206 to thememory 204 when thememory 204 is not being used. - The
CGC 202 may enable and disable the propagation of thememory clock signal 206 to thememory 204 to reduce the dynamic power used by thememory 204. Accordingly, theCGC 202 may include an enable signal (EN) and a clock input (CLK). The enable signal (EN) may enable and disable the propagation of thememory clock signal 206 to thememory 204. TheCGC 202 may also include a test enable signal (test_en) that may enable theCGC 202 for testing purposes. - The memory clock signal 206 (Memory CLK) may be generated based on the clock input (CLK), which may be a processor clock. Accordingly, the memory clock signal 206 (Memory CLK) and the processor clock may be synchronized.
- The
memory 204 may be a Dynamic Random Access Memory (DRAM). The DRAM may be asynchronous. The signals related to the DRAM may generally be generated by a clocked memory controller, such as theCGC 202, however. The clocked memory controller, e.g., theCGC 202, may limit the timing of thememory clock signal 206 for the DRAM to multiples of the controller's clock cycle, e.g., a CPU CLK. - A clock signal may be skewed due to delays caused by the length of a signal path or signal paths on a die, delays through buffer circuits, delays through logic circuits, other delays, or some combination of such delays. Additionally, the pulse width of clock signals may also be distorted by the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, distortion through logic circuits, or a combination of the resistance and capacitance along the length of the signal path or signal paths on the die, distortion through the buffer circuits, or distortion through logic circuits. Clock skew and clock distortions may impact the fMAX of the
memory clock signal 206, however. Thememory clock signal 206 for thememory 204 generated for the clockedmemory system 200 using theCGC 202 may have a limited fMAX due to clock skew and clock distortions. TheCGC 202 may receive a clock input (CLK) that may be a CPU CLK and generate a Memory CLK. For example, theCGC 202 may receive theCLK 102 and generate theMemory CLK 104 ofFIG. 1 . -
FIG. 3 is a diagram illustrating aCGC 202 at a gate and an individual transistor level. The diagram ofFIG. 3 includes individual transistors, including p-type metal oxide semiconductor (PMOS)transistors transistors FIG. 3 also includes a several gates, including NORgates inverters - In the
CGC 202, theNAND gate 322 may gate the clock input (CLK). Theinverter 320 may invert the output of the NAND gate 322 (pn2). Inverting the output of NAND gate 322 (pn2) may ensure that the clock input (CLK) and the clock output, Memory CLK, are in phase or nearly in phase with each other. The NORgate 314 may be used to enable and disable theCGC 202. For example, the NORgate 314 may have an enable input (EN) and a test enable input (test_en) as inputs. The NORgate 314 generates an internal enable signal, nclk_en. When neither EN nor test_en are active, e.g., a logic high voltage, the internal enable signal, nclk_en, will be a logic high voltage. - When pn2 is a logic low voltage (e.g., when the Memory CLK is a logic high voltage), the
PMOS transistor 306 may be on and theNMOS transistor 310 may be off. When thePMOS transistor 306 is on and theNMOS transistor 310 is off pn1 may be pulled up, e.g., to Vddfx. For example, when thePMOS transistor 306 is on pn1 may be coupled through thePMOS transistor 306 to vddfx, which may be a positive power supply voltage. - When nclk_en signal is a logic high voltage (e.g., when the Memory CLK is a logic low voltage), the
PMOS transistor 304 may be off and theNMOS transistor 308 may be on. Accordingly, the signal on pn1 may depend on thePMOS transistor 306 and theNMOS transistors PMOS transistor 306 is off and theNMOS transistor 310 may be on. When theNMOS transistor 310 is on pn2 will be coupled to pn1. When thePMOS transistor 306 may be off and theNMOS transistor 310 is on and theNMOS transistor 308 is on, pn1 and pn2 may be pulled down, e.g., to Vsefx. The pn2 may be pulled down through theNMOS transistors NMOS transistor 308. Accordingly, when the nclk_en signal is a logic high voltage, e.g., when theCGC 202 is “disabled,” the pn1 signal will either be a logic low voltage (when the Memory CLK is low) or will transition to a logic low voltage after the Memory CLK transitions low. As long as the pn1 signal is a logic low voltage, e.g., when theCGC 202 is “disabled,” the CLK signal will be disabled by theNAND gate 322 such that the Memory CLK signal will not toggle. - When the
CGC 202 is “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the nclk_en signal will be a logic low voltage. Accordingly, theNMOS transistor 308 may be off and thePMOS transistor 304 may be on. Accordingly, the pn1 signal may be pulled to a logic high voltage when thePMOS transistor 302 is on. ThePMOS transistor 302 may be on when the output of the NORgate 316 is a logic low voltage. The output of the NORgate 316 may be a logic low voltage when the pn1 signal is a logic low voltage or when the clock input signal (CLK) is a logic low voltage. The output of the NORgate 316 may be a logic high voltage when the pn1 signal is a logic low voltage and the clock input signal (CLK) is a logic high voltage. - When the output of the NOR
gate 316 is a logic high voltage, theNMOS transistor 312 may be on. When theNMOS transistor 312 is on and when pn2 is a logic high voltage (e.g., when Memory CLK is a logic low voltage), theNMOS transistor 310 may be on. Accordingly, the pn1 signal may be pulled low through theNMOS transistors CGC 202 “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the output of the NORgate 316 may remain a logic low value and pn1 may continue to be pulled to a logic high value throughPMOS transistors NAND gate 322, through theinverter 320 to output Memory CLK. -
FIG. 4 is another block diagram illustrating another clockedmemory system 400 employing a pulse stretcher according to an aspect of the systems and methods described herein. The clockedmemory system 400 includes theCGC 202 and thememory 204. TheCGC 202 may generate aclock signal 206. The example ofFIG. 4 may have minimum pulse width limitations on the clock signal formemory 204. In order to overcome the minimum pulse width limitations on the clock, the example ofFIG. 4 also includes apulse stretcher 402. A pulse stretcher such as thepulse stretcher 402 may be a circuit that produces an output pulse whose duration may be greater than that of an input pulse and whose amplitude is proportional to a peak amplitude of the input pulse. - The
pulse stretcher 402 may have an input signal, theclock signal 206. Thepulse stretcher 402 may output a pulse stretched clock signal,Memory CLK 404. The clocksignal Memory CLK 404 may be an output pulse with a duration greater than that of an input pulse, thememory clock signal 206. Additionally, theclock signal 404 may be an output pulse with an amplitude that is proportional to a peak amplitude of the input pulse, thememory clock signal 206. According, the design illustrated inFIG. 4 may increase clock latency because thepulse stretcher 402 increases delay, e.g., between an edge of theclock signal 404 and an edge of thememory clock signal 206. - The lengthened clock pulse may lessen the impact of clock skew and clock distortion. For example, using the lengthened clock pulse, meeting or overcoming the minimum pulse width limitations on the clock may be easier because the clock pulse width may be longer. Accordingly, clock skew and clock distortions may have less of an impact on the fMAX of the Memory CLK to the
memory 204 ofFIG. 4 . However, thepulse stretcher 402 may increase delay and increase the difference between clock edges of the CLK and the Memory CLK. - The
CGC 202 ofFIG. 4 may be the same or similar to theCGC 202 ofFIG. 2 . Accordingly, theCGC 202 ofFIG. 4 may enable and disable the propagation of thememory clock signal 206. The pulse width of thememory clock signal 206 may be stretched through thepulse stretcher 402 to thememory 204. TheCGC 202 may enable and disable the propagation of thememory clock signal 206 to thememory 204 when thememory 204 is not being used, e.g., to reduce the dynamic power used by thememory 204. Accordingly, theCGC 202 may include an enable signal (EN) and a clock input (CLK). The enable signal (EN) may enable and disable the propagation of thememory clock signal 206 to thememory 204. TheCGC 202 may also include a test enable signal (test_en) that may enable theCGC 202 for testing purposes. Stretching the memory clock signal (Memory CLK 404) may improve margins so that the clock used to generate the memory clock may be a higher frequency. - The memory clock signal 206 (Memory CLK) may be generated based on the clock input (CLK), which may be a processor clock. Accordingly, the
memory clock signal 206 and the processor clock may be synchronized. Thememory clock signal 206 may be stretched using the system ofFIG. 4 . However, the system ofFIG. 4 may also delay thememory clock signal 206 more than the other example systems and methods described herein. Additionally, thememory 204 ofFIG. 4 may also be a DRAM. -
FIG. 5 is another block diagram illustrating another clockedmemory system 500. The clockedmemory system 500 includes a Pulse Stretcher (PS)CGC 502 and thememory 204. The PS-CGC 502 may generate aclock signal 504 for thememory 204. The clock signal 504 (Memory CLK) may be pulse stretched relative to the duty cycle of the clock CLK input to the PS-CGC 502. For example, theclock signal 504 may be a CPU CLK and theclock signal 504 may be pulse stretched, e.g., the pulse width may be increased, relative to the duty cycle of the CPU CLK. Accordingly, the clocked memory system ofFIG. 5 may be clocked at a higher frequency and still meet minimum pulse width limitations on the clock because the pulse is stretched relative to the input clock. - The PS-
CGC 502 may maintain a low insertion delay while selectively delaying the falling edge of the clock signal to the memory. (Insertion delay may be the time taken by the clock signal to reach the register from its source point.) Accordingly, the memory apparatus (e.g., clocked memory system 500) includes thememory 204. Thememory 204 may be configured to receive the memory clock (Memory CLK). The memory apparatus (e.g., clocked memory system 500) also includes a single stage logic gate. The single stage logic gate may be configured to generate the memory clock (Memory CLK) from a reference clock (e.g., CLK, CPU CLK). (SeeFIG. 7 for more details regarding an example single stage logic gate.) The memory clock may be a gated clock. Additionally, the memory clock may have a wider pulse width than the reference clock. The single stage logic gate (discussed in more detail with respect toFIGS. 6-7 ) may be the circuitry that allows the PS-CGC 502 to maintain a low insertion delay while selectively delaying the falling edge of the clock signal input to the memory. - The PS-
CGC 502 ofFIG. 5 may be the same or similar to theCGC 202 ofFIGS. 2 and 4 . Accordingly, theCGC 202 ofFIG. 5 may enable and disable the propagation of thememory clock signal 206. For example, theCGC 202 may enable and disable the propagation of thememory clock signal 206 to thememory 204 when thememory 204 is not being used, e.g., to reduce the dynamic power used by thememory 204. Accordingly, theCGC 202 may include an enable signal (EN) and a clock input (CLK). The enable signal (EN) may enable and disable the propagation of thememory clock signal 206 to thememory 204. TheCGC 202 may also include a test enable signal (test_en) that may enable theCGC 202 for testing purposes. - The clock signal 504 (Memory CLK) may be generated based on the clock input (CLK), which may be a processor clock (CPU CLK). Accordingly, the
memory clock signal 206 and the processor clock may be synchronized. Thememory clock signal 206 may be stretched. Thememory clock signal 206 may also be delayed, however, the delay may be lower when compared to the example ofFIG. 5 . Thememory 204 ofFIG. 5 may also be a DRAM. -
FIG. 6 is a diagram illustrating a pulse lengthening PS-CGC 502 at a gate and an individual transistor level in accordance with the systems and methods proposed for lengthening a pulse, e.g., to increase a clock pulse width. The falling edge delay of the memory clock output (Memory CLK) may be made programmable based on the delay through the delay buffer used. Similar toFIG. 3 , the diagram ofFIG. 6 includes individual transistors, including p-type metal oxide semiconductor (PMOS)transistors transistors FIG. 6 also includes a several gates, including NORgates inverters - The PS-
CGC 502 includes abuffer 602, ORgate 604, and aNAND gate 606. Thebuffer 602 generates a delayed clock (Delayed CLK). The delayed clock (Delay CLK) and the clock (CLK) may be OR'ed together in theOR gate 604 to generate a stretched pulse clock. In the PS-CGC 502, theNAND gate 606 may gate the clock input (CLK). Theinverter 320 may invert the output of the NAND gate 606 (pn2). Inverting the output of NAND gate 606 (pn2) may ensure that the clock input (CLK) and the clock output, Memory CLK are in phase or nearly in phase with each other. The NORgate 314 may be used to enable and disable theCGC 202. For example, the NORgate 314 may have an enable input (EN) and a test enable input (test_en) as inputs. The NORgate 314 generates an internal enable signal, nclk_en. When neither EN nor test_en are active, e.g., a logic high voltage, the internal enable signal, nclk_en, will be a logic high voltage. - When pn2 is a logic low voltage (e.g., when the Memory CLK is a logic high voltage), the
PMOS transistor 306 may be on and theNMOS transistor 310 may be off. When thePMOS transistor 306 is on and theNMOS transistor 310 is off pn1 may be pulled up. For example, when thePMOS transistor 306 is on pn1 may be coupled to vddfx, which may be a positive power supply voltage through thePMOS transistors 306. - When nclk_en signal is a logic high voltage (e.g., when the Memory CLK is a logic low voltage), the
PMOS transistor 304 may be off and theNMOS transistor 308 may be on. Accordingly, the signal on pn1 may depend on thePMOS transistor 306 and theNMOS transistors PMOS transistor 306 may be off and theNMOS transistor 310 may be on. When theNMOS transistor 310 is on pn2 will be coupled to pn1. When thePMOS transistor 306 may be off and theNMOS transistor 310 is on and theNMOS transistor 308 is on, pn1 and pn2 may be pulled down. The pn2 may be pulled down through theNMOS transistors NMOS transistor 308. Accordingly, when the nclk_en signal is a logic high voltage, e.g., when theCGC 202 is “disabled,” the pn1 signal will either be a logic low voltage (when the Memory CLK is low) or will transition to a logic low voltage after the Memory CLK transitions low. As long as the pn1 signal is logic low voltage, e.g., when theCGC 202 is “disabled,” the CLK signal will be disabled by theNAND gate 606 such that the Memory CLK signal will not toggle. - When the
CGC 202 is “enabled,” e.g., when one or more of the enable (EN) or test enable (test_en) signals are active, the nclk_en signal will be a logic low voltage. Accordingly, theNMOS transistor 308 may be off and thePMOS transistor 304 may be on. Accordingly, the pn1 signal may be pulled to a logic high voltage when thePMOS transistor 302 is on. ThePMOS transistor 302 may be on when the output of the NORgate 316 is a logic low voltage. The output of the NORgate 316 may be a logic low voltage when the pn1 signal is a logic low voltage or when the clock input signal (CLK) is a logic low voltage. The output of the NORgate 316 may be a logic high voltage when the pn1 signal is a logic low voltage and the clock input signal (CLK) is a logic high voltage. The functionality of theOR gate 604 and theNAND gate 606 illustrated inFIG. 6 may be generated using NMOS and PMOS transistors as discussed with respect toFIG. 7 . The NMOS and PMOS transistors may be configured to have a single stage of delay even though the NMOS and PMOS transistors implement the OR and NAND functions. The NMOS and PMOS transistors having a single stage of delay may be referred to as a single stage logic gate. -
FIG. 7 is a diagram 700 illustrating atransistor level implementation 702′ of theOR gate 604 andNAND gate 606circuit 702 using an OR-AND-Inverter (OAI) circuit topology, in accordance with the systems and methods proposed. Thecircuit 702 and thetransistor level implementation 702′ may be a single stage logic gate. The single stage logic gate may include a pull-upcircuit 716 configured to pull-up the memory clock (Memory CLK). The single stage logic gate may also include a pull-down circuit 718 coupled to pull-down the memory clock (Memory CLK). The pull-upcircuit 716 and the pull-down circuit 718 are configured to be controlled by the reference clock (CLK, CPU CLK), a delayed reference clock (Delay CLK), and a gating signal (pn1). - The single stage logic gate may be further configured to enable the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK) to control the pull-up
circuit 716 and the pull-down circuit 718 in response to one logic state of the gating signal (pn1). Additionally, the single stage logic gate is also further configured to enable one of the pull-upcircuit 716 and the pull-down circuit 718 in response to another logic state of the gating signal (pn1) independent of the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK). - The single stage logic gate may include a memory clock output configured to provide the memory clock (Memory CLK) to the memory. The pull-up
circuit 716 may be coupled between the memory clock output and a voltage rail and the pull-down circuit 718 may be coupled between the memory clock output and a voltage return rail. - In an example, the pull-up circuit (716) includes first and second serial pull-up transistors (704, 706) coupled between the memory clock output and the voltage rail. The first pull-up transistor (706) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-up transistor (704) may be configured to be controlled by a delayed reference clock (Delay CLK). The pull-down circuit (718) includes first and second parallel transistors (710, 714) coupled between the memory clock output and the voltage return rail. The first pull-down transistor (710) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-down transistor (714) may be configured to be controlled by a delayed reference clock (Delay CLK).
- In an example, the pull-up circuit further includes a third pull-up transistor (708) coupled between the memory clock output and the voltage rail in parallel with the first and the second serial pull-up transistors (704, 706). The pull-down circuit further includes a third pull-down transistor (712) coupled in series with the first and the second parallel pull-down transistors (710, 714) between the memory clock output and the voltage return rail. Additionally, each of the third pull-up and the third pull-down transistors (708, 712) may be controlled by a gating signal (pn1).
-
FIG. 8 is a diagram illustrating acomputing apparatus 800 employing aspects of the systems and methods described herein. Thecomputing apparatus 800 includes aprocessor 802 and the clockedmemory system 500 ofFIG. 5 . The clockedmemory system 500 within thecomputing apparatus 800 include amemory 204. Thememory 204 is coupled to theprocessor 802. For example, an address bus, a data bus, and a control bus couple thememory 204 to theprocessor 802. Thememory 204 may be configured to receive the memory clock (Memory CLK). - The
computing apparatus 800 may also include a PS-CGC 502. The PS-CGC 502 may be a single stage logic gate. The single stage logic gate may be configured to generate the memory clock (Memory CLK) from a reference clock (e.g.,CLK 102 ofFIG. 1 ). The memory clock (Memory CLK) 504 may be a gated clock. Additionally, the memory clock (Memory CLK) 504 may have a wider pulse width than the reference clock (CLK). -
FIG. 9 is a timing diagram 900 illustrating an example clock signal (CLK) 102 and a CGC pulse (memory clock signal 206). More specifically, the timing diagram 900 illustrates an example of a single pulse of the clock signal (CLK) 102. The timing diagram 900 also illustrates a stretched CGC pulse (clock signal 504) that may be generated in accordance with the systems and methods described herein. As illustrated in the timing diagram 900, there may be a delay 4240 between the rising edge of the clock signal (CLK) 102 and the rising edges of the original CGC pulse (memory clock signal 206) and the stretched CGC pulse (clock signal 504). The delay (t2-t1) may be due to delays through the circuitry that generates the original CGC pulse (memory clock signal 206) and the stretched CGC pulse (clock signal 504). Using the systems and methods described herein, the original CGC pulse (memory clock signal 206) and the stretched CGC pulse (clock signal 504) may have the same or nearly the same rising edge. In the illustrated example ofFIG. 9 , each of the clock signal (CLK) 102, CGC pulse (clock signal 504), and stretched CGC pulse (clock signal 504) may be at a logic high voltage at t3. The clock signal (CLK) 102 may begin to transition from a logic high voltage to a logic low voltage at a time, t4. The original CGC pulse (memory clock signal 206) may begin to transition from a logic high voltage to a logic low voltage at a time, t5 after a delay (t5-t4). The delay (t5-t4) may be due to delays through the circuitry that generates the original CGC pulse (memory clock signal 206). In the illustrated example ofFIG. 9 , both the clock signal (CLK) 102 and the CGC pulse (clock signal 504) may be at a logic low voltage at t6. The stretched CGC pulse (clock signal 504) may be at a logic low voltage at t7. The stretched CGC pulse (clock signal 504) may be stretched to t7., e.g., the stretched CGC pulse (clock signal 504) has a longer duration than the original CGC pulse (memory clock signal 206) and reaches the logic low voltage at t7. - On example is a memory apparatus (e.g., clocked memory system 500). The memory apparatus (e.g., clocked memory system 500) may include a memory (204) configured to receive a memory clock (Memory CLK). The memory apparatus (e.g., clocked memory system 500) may also include a single stage logic gate (within 502, 702) configured to generate the memory clock (Memory CLK) from a reference clock (CLK, CPU CLK). The memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- In an example, the single stage logic gate (circuit 702) includes a pull-up circuit (716) configured to pull-up the memory clock (Memory CLK), and a pull-down circuit (718) coupled to pull-down the memory clock (Memory CLK).
- In an example, the pull-up circuit (716) and the pull-down circuit (718) are configured to be controlled by the reference clock (CLK, CPU CLK), a delayed reference clock (Delay CLK), and a gating signal (pn1).
- In an example, the apparatus includes a delay circuit (buffer 602) configured to generate the delayed reference clock (Delay CLK) from the reference clock (CLK, CPU CLK).
- An example includes a latch (608) configured to generate the gating signal (pn1). The latch (608) is further configured to latch the gating signal (pn1) with a trailing edge of the reference clock (CLK, CPU CLK).
- In an example, the single stage logic gate (circuit 702) is further configured to enable the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK) to control the pull-up circuit (716) and the pull-down circuit (718) in response to one logic state of the gating signal (pn1). The single stage logic gate (circuit 702) is also further configured to enable one of the pull-up circuit (716) and the pull-down circuit (718) in response to another logic state of the gating signal (pn1) independent of the reference clock (CLK, CPU CLK) and the delayed reference clock (Delay CLK).
- In an example, the single stage logic gate (circuit 702) includes a memory clock output configured to provide the memory clock (Memory CLK) to the memory. The pull-up circuit (716) may be coupled between the memory clock output and a voltage rail and the pull-down circuit (718) may be coupled between the memory clock output and a voltage return rail.
- In an example, the pull-up circuit (716) includes first and second serial pull-up transistors (704, 706) coupled between the memory clock output and the voltage rail. The first pull-up transistor (706) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-up transistor (704) may be configured to be controlled by a delayed reference clock (Delay CLK). The pull-down circuit (718) includes first and second parallel transistors (710, 714) coupled between the memory clock output and the voltage return rail. The first pull-down transistor (710) may be configured to be controlled by the reference clock (CLK, CPU CLK) and the second pull-down transistor (714) may be configured to be controlled by a delayed reference clock Delay CLK).
- In an example, the pull-up circuit further includes a third pull-up transistor (708) coupled between the memory clock output and the voltage rail in parallel with the first and the second serial pull-up transistors (704, 706). The pull-down circuit further includes a third pull-down transistor (712) coupled in series with the first and the second parallel pull-down transistors (710, 714) between the memory clock output and the voltage return rail. Additionally, each of the third pull-up and the third pull-down transistors (708, 712) may be controlled by a gating signal (pn1).
- An computing apparatus (800) may include a processor (802). The computing apparatus (800) may also include a memory (208). The memory (208) may be coupled to the processor (802). The memory (208) may be configured to receive a memory clock (Memory CLK). The memory apparatus (e.g., clocked memory system 500) may also include a single stage logic gate (within 502, 702) configured to generate the memory clock (Memory CLK) from a reference clock (CLK, CPU CLK). The memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- In an example, a memory apparatus may include means to store data (e.g., memory 204). The means to store data (e.g., memory 204) may be configured to receive a memory clock (Memory CLK). The memory apparatus may include means to generate the memory clock (clock signal 504) from a reference clock (CLK, CPU CLK) in a single logic gate stage (circuit 702). The memory clock (Memory CLK) may be a gated clock and may have a wider pulse width than the reference clock (CLK, CPU CLK).
- In an example, the means to generate the memory clock includes a pull-up circuit (716) configured to pull-up the memory clock and a pull-down circuit (718) coupled to pull-down the memory clock.
- It is understood that the specific order or hierarchy of blocks in the processes/flowcharts disclosed is an illustration of exemplary approaches. Based upon design preferences, the specific order or hierarchy of blocks in the processes/flowcharts may be rearranged. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
- The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects. Unless specifically stated otherwise, the term “some” refers to one or more. Combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C. Specifically, combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. The words “module,” “mechanism,” “element,” “device,” and the like may not be a substitute for the word “means.” As such, no claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for.”
Claims (18)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/370,892 US9990984B1 (en) | 2016-12-06 | 2016-12-06 | Pulse-stretcher clock generator circuit for high speed memory subsystems |
CN201780074593.8A CN110024032B (en) | 2016-12-06 | 2017-11-06 | Pulse expander clock generator circuit and method for high speed memory subsystem |
PCT/US2017/060213 WO2018106372A1 (en) | 2016-12-06 | 2017-11-06 | A pulse-stretcher clock generator circuit and clock generation method for high speed memory subsystems |
EP17801561.6A EP3552204B1 (en) | 2016-12-06 | 2017-11-06 | A pulse-stretcher clock generator circuit and clock generation method for high speed memory subsystems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/370,892 US9990984B1 (en) | 2016-12-06 | 2016-12-06 | Pulse-stretcher clock generator circuit for high speed memory subsystems |
Publications (2)
Publication Number | Publication Date |
---|---|
US9990984B1 US9990984B1 (en) | 2018-06-05 |
US20180158506A1 true US20180158506A1 (en) | 2018-06-07 |
Family
ID=60413285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/370,892 Expired - Fee Related US9990984B1 (en) | 2016-12-06 | 2016-12-06 | Pulse-stretcher clock generator circuit for high speed memory subsystems |
Country Status (4)
Country | Link |
---|---|
US (1) | US9990984B1 (en) |
EP (1) | EP3552204B1 (en) |
CN (1) | CN110024032B (en) |
WO (1) | WO2018106372A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113454723A (en) * | 2021-05-25 | 2021-09-28 | 长江存储科技有限责任公司 | Method and apparatus for power saving in semiconductor devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030088801A1 (en) * | 2001-11-06 | 2003-05-08 | Infineon Technologies Aktiengesellschaft | Implementation of wait-states |
US6665222B2 (en) * | 1997-04-25 | 2003-12-16 | Micron Technology, Inc. | Synchronous dynamic random access memory device |
US7432752B1 (en) * | 2007-04-24 | 2008-10-07 | National Semiconductor Corporation | Duty cycle stabilizer |
US8014485B2 (en) * | 2007-05-17 | 2011-09-06 | Advanced Micro Devices, Inc. | Techniques for integrated circuit clock management using multiple clock generators |
US8552778B2 (en) * | 2009-09-24 | 2013-10-08 | Freescale Semiconductor, Inc. | Duty cycle corrector and duty cycle correction method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232873A (en) | 1998-02-06 | 1999-08-27 | Nec Corp | Semiconductor storage device |
JP4342654B2 (en) | 1999-10-12 | 2009-10-14 | 富士通マイクロエレクトロニクス株式会社 | Delay circuit and semiconductor integrated circuit |
EP1335210B1 (en) * | 2002-02-11 | 2006-11-22 | Texas Instruments Incorporated | High speed interconnect circuit test method and apparatus |
US7006403B2 (en) | 2003-12-15 | 2006-02-28 | International Business Machines Corp. | Self timed bit and read/write pulse stretchers |
US7102407B2 (en) * | 2004-03-31 | 2006-09-05 | Intel Corporation | Programmable clock delay circuit |
US8638153B2 (en) | 2012-03-29 | 2014-01-28 | Qualcomm Incorporated | Pulse clock generation logic with built-in level shifter and programmable rising edge and pulse width |
US9673786B2 (en) * | 2013-04-12 | 2017-06-06 | Qualcomm Incorporated | Flip-flop with reduced retention voltage |
US9088279B2 (en) | 2013-09-24 | 2015-07-21 | International Business Machines Corporation | Margin improvement for configurable local clock buffer |
-
2016
- 2016-12-06 US US15/370,892 patent/US9990984B1/en not_active Expired - Fee Related
-
2017
- 2017-11-06 EP EP17801561.6A patent/EP3552204B1/en active Active
- 2017-11-06 WO PCT/US2017/060213 patent/WO2018106372A1/en unknown
- 2017-11-06 CN CN201780074593.8A patent/CN110024032B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665222B2 (en) * | 1997-04-25 | 2003-12-16 | Micron Technology, Inc. | Synchronous dynamic random access memory device |
US20030088801A1 (en) * | 2001-11-06 | 2003-05-08 | Infineon Technologies Aktiengesellschaft | Implementation of wait-states |
US7432752B1 (en) * | 2007-04-24 | 2008-10-07 | National Semiconductor Corporation | Duty cycle stabilizer |
US8014485B2 (en) * | 2007-05-17 | 2011-09-06 | Advanced Micro Devices, Inc. | Techniques for integrated circuit clock management using multiple clock generators |
US8552778B2 (en) * | 2009-09-24 | 2013-10-08 | Freescale Semiconductor, Inc. | Duty cycle corrector and duty cycle correction method |
Non-Patent Citations (1)
Title |
---|
SEDRA SMITH, Microelectronic Circuits, SIXTH EDITION * |
Also Published As
Publication number | Publication date |
---|---|
EP3552204B1 (en) | 2022-01-12 |
EP3552204A1 (en) | 2019-10-16 |
US9990984B1 (en) | 2018-06-05 |
CN110024032A (en) | 2019-07-16 |
WO2018106372A1 (en) | 2018-06-14 |
CN110024032B (en) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7408393B1 (en) | Master-slave flip-flop and clocking scheme | |
US6134182A (en) | Cycle independent data to echo clock tracking circuit | |
US20110235446A1 (en) | Write strobe generation for a memory interface controller | |
KR20080026664A (en) | Semiconductor memory with reset function | |
US8575965B2 (en) | Internal clock gating apparatus | |
US7548102B2 (en) | Data latch with minimal setup time and launch delay | |
US8120406B2 (en) | Sequential circuit with dynamic pulse width control | |
US7408394B2 (en) | Measure control delay and method having latching circuit integral with delay circuit | |
US9124253B2 (en) | Methods and apparatuses for duty cycle preservation | |
US10110229B1 (en) | Aging-resistant signal path circuitry | |
US9990984B1 (en) | Pulse-stretcher clock generator circuit for high speed memory subsystems | |
US9385696B1 (en) | Generating a pulse clock signal based on a first clock signal and a second clock signal | |
US9564881B2 (en) | Area-efficient metal-programmable pulse latch design | |
US7392406B2 (en) | Circuit and method for generating clock signals for clocking digital signal processor and memory | |
US11068630B2 (en) | Synchronous device with slack guard circuit | |
KR102583438B1 (en) | Systems and methods for controlling power assertion in a memory device | |
US11258446B2 (en) | No-enable setup clock gater based on pulse | |
US10901454B2 (en) | Clock buffering to reduce memory hold time | |
US9129670B2 (en) | Semiconductor devices | |
US20230005513A1 (en) | Interface transformer and multiport storage device | |
Jeong et al. | Moebius circuit: Dual-rail dynamic logic for logic gate level pipeline with error gate search feature | |
US7764100B2 (en) | DFLOP circuit for an externally asynchronous-internally clocked system | |
Murlidharan et al. | Clock gating based on auto-gated flip-flops | |
KR20080077868A (en) | Semiconductor device | |
Harris et al. | Timing analysis with clock skew |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KUMAR, DORAV;NARAYANAN, VENKAT;ZAFAR, BILAL;AND OTHERS;REEL/FRAME:041596/0846 Effective date: 20170314 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20220605 |