Embodiments of the present invention described herein relate generally to memories, and more particularly, in one or more of the illustrated embodiments, to shifting data signals, for example, in memory systems.
In semiconductor memory, proper operation of the memory is based on the correct timing of various internal command, data, and clock signals. For example, in writing data to memory internal clock signals that clock data path circuitry to latch write data may need to be provided with specific timing relationships with internal write command signals to properly enable the data path circuitry to provide the latched write data for writing to memory. If the timing of the internal write command signal is not such that the data path circuitry is enabled at the time the internal clock signal clocks the data path circuitry to provide the write data at an expected time, the write command may be inadvertently ignored or the write data provided to the memory may not be correct (e.g., the write data is associated with another command).
Thus, internal clock, data, and write command paths should be designed to provide propagation delays for the respective signals to account for latency, for example, write latency between receipt of a write command and receipt of the write data for the write command. Other examples of commands that may require the correct timing of internal clock, data, and command signals for proper operation include, for example, read commands and on-die termination enable commands.
An example conventional approach to maintaining the timing of internal write command, data, and clock signals is modeling both the clock and data path, and the write command path to have the same propagation delay using, for instance, a plurality of logic gates, such as inverters or buffers. Because logic gates may add a relative small amount of delay, the number of gates used may often be higher than desirable.
Methods and apparatuses for shifting data signals are disclosed herein. In accordance with one or more embodiments of the present invention, data may be shifted through a delay path based, at least in part, on one or more clock signals. Certain details are set forth below to provide a sufficient understanding of embodiments of the invention. However, it will be clear to one having skill in the art that embodiments of the invention may be practiced without these particular details. Moreover, the particular embodiments of the present invention described herein are provided by way of example and should not be used to limit the scope of the invention to these particular embodiments. In other instances, well-known circuits, control signals, timing protocols, and software operations have not been shown in detail in order to avoid unnecessarily obscuring the invention.
The clock generation circuit 120 may be any clock generator known in the art, such as a multi-phase clock generator, and may be configured to generate a plurality of clock signals based, at least in part, on the clock signal CLK. The clock generation circuit 120 may further provide the plurality of clock signals to a bus, such as the bus 140. Each of the plurality of clock signals may have a respective phase shift relative to the clock signal CLK and/or may have a same frequency as the clock signal CLK. Moreover, each of the plurality of clock signals may have a same frequency and duty cycle, or may have varying frequencies and/or duty cycles.
The driver circuit 115 may include one or more drivers and may be configured to provide (e.g., drive) one or more respective signals to a bus. For example, the driver circuit 115 may be configured to receive a data signal from bus 134, and provide the signal to a circuit, such as a memory array (not shown in
The delay path 110 may be configured to receive the data signal DATA and delay the data signal DATA based, at least in part, on the clock signal CLK and/or one or more of the plurality of clock signals from the clock generation circuit 120. As an example, the delay path 110 may sequentially shift the data signal DATA through one or more latches to delay propagation of the data signal DATA to the driver circuit 115. In at least one embodiment, this delay may be configured to match the delay resulting from the propagation of a command through a memory and/or from decoding the command (e.g., write command). This may, for example, allow the data signal DATA and corresponding decoded command signals to be provided to a circuit (not shown) at approximately the same time.
In an example operation of the apparatus 100, the clock signal CLK may be provided to the delay path 110 and the clock generation circuit 120. The clock generation circuit 120 may generate a plurality of clock signals based, at least in part, on the clock signal CLK and may provide each of the clock signals to the delay path 110 via the bus 140. The delay path 110 may further receive the data signal DATA and may delay the data signal DATA. The data signal DATA may be delayed by a particular amount or may be delayed by an amount that is adjusted dynamically, for instance, based on a temperature. The delay path 110 may delay the data signal DATA based, at least in part, on the data signal DATA and/or the plurality of clock signals from the clock generation circuit 120. As described, in one embodiment, the plurality of clock signals may be used to shift the data signal DATA through the delay path 110. The data signal DATA, once delayed, may be provided to the driver 115 over the bus 134, and thereby driven, for instance, to a circuit over the bus 135.
Each delay unit 325 may include a plurality of latches 311. For example, delay unit 325a may include latches 311a, 311c, 311e, and 311g, and delay unit 325b may include latches 311b, 311d, 311f, and 311h. Each latch 311 may receive a respective one of the plurality of clock signals generated by the clock generation circuit 120 and having a phase shift relative to the clock signal CLK of
Latches included in each of the delay units 325a,b may be configured in a series configuration. For example, as illustrated in
In an example operation of the delay path 300, the data signal DATA may be serially provided to each of the SUH units 302. As will be explained in more detail below, the first bit of the data signal DATA may be latched by the SUH unit 302a and subsequently provided to the delay unit 325a after a delay, and the second bit of the data signal DATA may be latched by the SUH unit 302b and subsequently provided to the delay unit 325b after a delay. Based, at least in part, on the respective clock signals provided to each of the latches 311, the first and second bits may be shifted through respective latches 311 of the delay units 325a and 325b until the first and second bits are provided to the bus 134.
In this manner, additional bits of the data signal DATA may also be latched by the SUH units 302 and shifted through the delay units 325 as well. For example, the SUH units 302a and 302b may alternate latching bits of the data signal DATA until all bits of the data signal DATA have been received. In one embodiment, the SUH unit 302a and the delay unit 325a may be configured to latch and shift even bits of the data signal DATA, and the SUH unit 302b and the delay unit 325b may be configured to latch and shift odd bits of the data signal DATA. As an example, delay unit 325a may receive bits 0, 2, 4, 6, etc., and the delay unit 325b may receive bits 1, 3, 5, 7, etc.
Moreover, the SUH unit 302a may include a skew latch 303 coupled between the SUH latches 302a,c. The skew latch 303 may be configured to delay the shifting of the data signal DATA through the SUH unit 302a by a predetermined amount, such as one half of a clock cycle of the clock signal CLK. This additional delay may, for instance, align the shift of respective bits of the data signal DATA through each of the delay units 325. For example, because the first bit of the signal will arrive at the delay path 300 before the second bit, the first bit may be latched by the SUH latch 304a before the second bit is latched by the SUH latch 304b. Assuming that the second bit is latched by the SUH latch 304b half of a clock cycle later, by delaying the first bit with the skew latch 303 the first and second bits may be aligned such that the bits are shifted through each delay unit 325 and/or provided to the bus 134 at approximately the same time. Subsequent bits of the data signal DATA may be adjusted in a same manner. While in one embodiment, such as the embodiment in
As described, the SUH latches 304 may be gated latches. Thus, in one embodiment, the SUH latch 304a may be configured to be transparent responsive to a logic low clock signal CLK and the SUH latch 304b may be configured to be transparent responsive to a logic high clock signal CLK. Accordingly, when the data bit D0 of the data signal DATA is be provided to SUH latches 304a,b at a time T0, because the clock signal CLK is at a logic low, the signal 404a provided by the SUH latch 304a is the data bit D0, and the signal 404b provided by the SUH latch 304b is whatever data was previously latched when the clock signal CLK was a logic high. At time T1, the clock signal CLK may transition, for example, from a logic low to a logic high, and in response, the SUH latch 304a may latch and the signal 404a will continue to be D0. The signals 403 and 404b may transition to D0 based on the skew latch 303 latching and the SUH latch 304b becoming transparent, respectively.
At time T2, the second bit of the data signal DATA, data bit D1 is provided to the SUH latches 304a,b. Because at time T2 the SUH latch 304a is latched, the signal 404a remains at D0. The signal 404b, however, may transition to D1 in response to the SUH latch 304b becoming transparent. At time T3 the clock signal CLK transitions from a logic high to a logic low. In response, the SUH latches 304c,d may latch, and signals 404c,d may be D0 and D1, respectively. The transition may further cause the SUH latch 304a to become transparent and SUH latch 304b to latch its input. As a result, signals 404a,b may both be data bit D1.
At time T4, a third bit of the data signal DATA, data bit D2, may be provided to the SUH latches 304a,b. Because at time T4 the SUH latch 304a may be transparent and the SUH latch 304b may be latched, signal 404a may transition to data bit D2 and signal 404b may be held at D1. At time T5, clock signal CLK may transition to a logic high. In response, SUH latches 304a,b may latch and become transparent, respectively, and both signals 304a,b may comprise data bit D2. Moreover, skew latch 303 may latch based, at least in part, on the rising edge of the clock signal CLK, causing signal 403 to be data bit D2. At time T6, the clock signal 440a may transition, for example, from a logic high to a logic low. In response to the falling edge, both the latch 311a of the delay unit 325a and latch 311b of the delay unit 325b may latch. Corresponding signals 411a,b, as a result, may be D0 and D1, respectively.
At time T7, the fourth bit of the data signal DATA, data bit D3, may be provided. Because the SUH latch 304a may be latched, the signal 404a is data bit D2. The SUH latch 304b may be transparent, and as a result, signal 404b is data bit D3. At time T8, clock signal CLK may transition, for example, to a logic low state. As described, this may cause SUH latch 304a to be transparent and SUH latch 304b to latch. Signals 404a,b therefore may both be data bit D3. Additionally, in response to the falling edge of the clock signal CLK, SUH latches 304c,d may latch data bits D2 and D3, respectively. At time T9, the clock signal 440b may transition, for example, to a logic low, and in response, latches 311c,d may latch, causing signals 411c,d to be data bits D0, D1. The data bits D0 and D1 may be further shifted through respective delay units 325 at times T10 and T11, respectively, based, at least in part, on the clock signals 440c and 440d. As described, the final latch in each delay unit 325, for example, latches 311g,h, may provide the data bits D0 and D1 to the bus 134. Data bits D2 and D3 may likewise be shifted based on the clock signals 440 until each is provided to the bus 134.
Accordingly, by shifting the data signal DATA through latches of both the setup and hold units 302 and the delay units 325, the data signal DATA may be delayed based on a plurality of clock signals, including the clock signal CLK and the plurality of clock signals 440. The delay may be adjusted, for example, by adjusting the number of latches or the frequency of the clock signal CLK and/or plurality of clock signals generated by the clock generation circuit 120. As described, this may, for instance, allow for the data signal DATA to be provided to a device, such as a circuit, at the same time as a corresponding memory command or decoded command signals.
In an example operation of the latch 500, a bit of the data signal DATA may be provided to the inverter 502 from, for example, a latch 311 or the setup and hold latch 302 of
The row and column addresses are provided by the address latch 610 to a row address decoder 622 and a column address decoder 628, respectively. The column address decoder 628 selects lines extending through the array 602 corresponding to respective column addresses. The row address decoder 622 is connected to word line driver 624 that activates respective rows of memory cells in the array 602 corresponding to received row addresses. The selected line (e.g., a bit line or bit lines) corresponding to a received column address are coupled to a read/write circuitry 630 to provide read data to a data output circuit 634 via an input-output data bus 640. Write data are provided to the memory array 602 through a data path 650 of the data input circuit 644 and the memory array read/write circuitry 630. The data path 650 may comprise an apparatus according to an embodiment of the invention, such as the apparatus 100, and may delay write data as described herein.
At least a portion of the data output circuit 634 may include an apparatus 640 that includes an encoding circuit and driver circuit, such as those previously described with reference to the apparatus 100 according to an embodiment of the invention. In addition to, or in place of, the apparatus 640 of the data output circuit 634, an apparatus 640 may also be included on input-output data bus 640, in between the memory array 602 and the read/write circuitry 630, or in any other location in the memory 600.
From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5004933 | Widener | Apr 1991 | A |
6111810 | Fujita | Aug 2000 | A |
6219384 | Kliza et al. | Apr 2001 | B1 |
6260128 | Ohshima et al. | Jul 2001 | B1 |
6275077 | Tobin et al. | Aug 2001 | B1 |
6424592 | Maruyama | Jul 2002 | B1 |
6438055 | Taguchi et al. | Aug 2002 | B1 |
6459313 | Godbee et al. | Oct 2002 | B1 |
6489823 | Iwamoto | Dec 2002 | B2 |
6510095 | Matsuzaki et al. | Jan 2003 | B1 |
6636110 | Ooishi et al. | Oct 2003 | B1 |
6687185 | Keeth et al. | Feb 2004 | B1 |
6710726 | Kim et al. | Mar 2004 | B2 |
6744285 | Mangum et al. | Jun 2004 | B2 |
6781861 | Gomm et al. | Aug 2004 | B2 |
6839288 | Kim et al. | Jan 2005 | B1 |
6861901 | Prexl et al. | Mar 2005 | B2 |
6914798 | Kwon et al. | Jul 2005 | B2 |
6930955 | Johnson et al. | Aug 2005 | B2 |
6973008 | Krause | Dec 2005 | B2 |
6980479 | Park | Dec 2005 | B2 |
6988218 | Drexler | Jan 2006 | B2 |
7042799 | Cho | May 2006 | B2 |
7046060 | Minzoni et al. | May 2006 | B1 |
7058799 | Johnson | Jun 2006 | B2 |
7061941 | Zheng | Jun 2006 | B1 |
7065001 | Johnson et al. | Jun 2006 | B2 |
7111185 | Gomm et al. | Sep 2006 | B2 |
7119591 | Lin | Oct 2006 | B1 |
7170819 | Szczypinski | Jan 2007 | B2 |
7187599 | Schnell et al. | Mar 2007 | B2 |
7209396 | Schnell | Apr 2007 | B2 |
7248512 | Shin | Jul 2007 | B2 |
7268605 | Fang et al. | Sep 2007 | B2 |
7269754 | Ramaswamy et al. | Sep 2007 | B2 |
7280430 | Lee | Oct 2007 | B2 |
7336752 | Vlasenko et al. | Feb 2008 | B2 |
7340632 | Park | Mar 2008 | B2 |
7375560 | Lee et al. | May 2008 | B2 |
7411852 | Nishioka et al. | Aug 2008 | B2 |
7443216 | Gomm et al. | Oct 2008 | B2 |
7451338 | Lemos | Nov 2008 | B2 |
7463534 | Ku et al. | Dec 2008 | B2 |
7489172 | Kim | Feb 2009 | B2 |
7509517 | Matsumoto et al. | Mar 2009 | B2 |
7590013 | Yu et al. | Sep 2009 | B2 |
7593273 | Chu et al. | Sep 2009 | B2 |
7609584 | Kim et al. | Oct 2009 | B2 |
7616040 | Motomura | Nov 2009 | B2 |
7631248 | Zakharchenko et al. | Dec 2009 | B2 |
7643334 | Lee et al. | Jan 2010 | B1 |
7656745 | Kwak | Feb 2010 | B2 |
7660187 | Johnson et al. | Feb 2010 | B2 |
7663946 | Kim | Feb 2010 | B2 |
7671648 | Kwak | Mar 2010 | B2 |
7675439 | Chang et al. | Mar 2010 | B2 |
7698589 | Huang | Apr 2010 | B2 |
7715260 | Kuo et al. | May 2010 | B1 |
7716510 | Kwak | May 2010 | B2 |
7751261 | Cho | Jul 2010 | B2 |
7773435 | Cho | Aug 2010 | B2 |
7822904 | LaBerge | Oct 2010 | B2 |
7826305 | Fujisawa | Nov 2010 | B2 |
7826583 | Jeong et al. | Nov 2010 | B2 |
7872924 | Ma | Jan 2011 | B2 |
7885365 | Hagleitner et al. | Feb 2011 | B2 |
7913103 | Gold et al. | Mar 2011 | B2 |
7945800 | Gomm et al. | May 2011 | B2 |
7948817 | Coteus et al. | May 2011 | B2 |
7969813 | Bringivijayaraghavan et al. | Jun 2011 | B2 |
7983094 | Roge et al. | Jul 2011 | B1 |
8004884 | Franceschini et al. | Aug 2011 | B2 |
8018791 | Kwak | Sep 2011 | B2 |
8030981 | Kim | Oct 2011 | B2 |
8116415 | Wada et al. | Feb 2012 | B2 |
8144529 | Chuang et al. | Mar 2012 | B2 |
8321714 | Wu et al. | Nov 2012 | B2 |
8358546 | Kim et al. | Jan 2013 | B2 |
8392741 | Kim et al. | Mar 2013 | B2 |
8441888 | Bringivijayaraghavan et al. | May 2013 | B2 |
8509011 | Bringivijayaraghavan | Aug 2013 | B2 |
8644096 | Bringivijayaraghavan | Feb 2014 | B2 |
8717078 | Idgunji et al. | May 2014 | B2 |
8788896 | Tekumalla | Jul 2014 | B2 |
9001955 | Lamanna et al. | Apr 2015 | B2 |
20010015924 | Arimoto et al. | Aug 2001 | A1 |
20020057624 | Manning | May 2002 | A1 |
20030117864 | Hampel et al. | Jun 2003 | A1 |
20050024107 | Takai et al. | Feb 2005 | A1 |
20050047222 | Rentschler | Mar 2005 | A1 |
20050132043 | Wang et al. | Jun 2005 | A1 |
20050270852 | Dietrich et al. | Dec 2005 | A1 |
20060062341 | Edmondson et al. | Mar 2006 | A1 |
20060155948 | Ruckerbauer | Jul 2006 | A1 |
20060182212 | Hwang et al. | Aug 2006 | A1 |
20060193194 | Schnell | Aug 2006 | A1 |
20070033427 | Correale, Jr. et al. | Feb 2007 | A1 |
20070046346 | Minzoni | Mar 2007 | A1 |
20070088903 | Choi | Apr 2007 | A1 |
20070192651 | Schoch | Aug 2007 | A1 |
20070291558 | Joo | Dec 2007 | A1 |
20080080267 | Lee | Apr 2008 | A1 |
20080080271 | Kim | Apr 2008 | A1 |
20080082707 | Gupta et al. | Apr 2008 | A1 |
20080144423 | Kwak | Jun 2008 | A1 |
20090232250 | Yamada et al. | Sep 2009 | A1 |
20090315600 | Becker et al. | Dec 2009 | A1 |
20100001762 | Kim | Jan 2010 | A1 |
20100066422 | Tsai | Mar 2010 | A1 |
20100124090 | Arai | May 2010 | A1 |
20100124102 | Lee et al. | May 2010 | A1 |
20100165769 | Kuroki | Jul 2010 | A1 |
20100165780 | Bains et al. | Jul 2010 | A1 |
20100195429 | Sonoda | Aug 2010 | A1 |
20100199117 | Kwak | Aug 2010 | A1 |
20100232213 | Hwang et al. | Sep 2010 | A1 |
20100254198 | Bringivijayaraghavan et al. | Oct 2010 | A1 |
20110047319 | Jeon et al. | Feb 2011 | A1 |
20110055671 | Kim et al. | Mar 2011 | A1 |
20110102039 | Shin | May 2011 | A1 |
20110228625 | Bringivijayaraghavan | Sep 2011 | A1 |
20110238866 | Zitlaw | Sep 2011 | A1 |
20110238941 | Xu et al. | Sep 2011 | A1 |
20110298512 | Kwak | Dec 2011 | A1 |
20110314324 | Ozdemir | Dec 2011 | A1 |
20120084575 | Flores et al. | Apr 2012 | A1 |
20120124317 | Mirichigni et al. | May 2012 | A1 |
20120212268 | Kim | Aug 2012 | A1 |
20120254873 | Bringivijayaraghavan | Oct 2012 | A1 |
20120269015 | Bringivijayaraghavan | Oct 2012 | A1 |
20120274376 | Gomm et al. | Nov 2012 | A1 |
20130141994 | Ito et al. | Jun 2013 | A1 |
20130194013 | Kwak | Aug 2013 | A1 |
20130250701 | Bringivijayaraghavan et al. | Sep 2013 | A1 |
20130329503 | Bringivijayaraghavan | Dec 2013 | A1 |
20130342254 | Mazumder et al. | Dec 2013 | A1 |
20140010025 | Bringivijayaraghavan | Jan 2014 | A1 |
20140035640 | Kwak et al. | Feb 2014 | A1 |
20140055184 | Vankayala | Feb 2014 | A1 |
20140119141 | Tamlyn et al. | May 2014 | A1 |
20140176213 | Rylov | Jun 2014 | A1 |
20140177359 | Kumar et al. | Jun 2014 | A1 |
20140258764 | Kwak | Sep 2014 | A1 |
Entry |
---|
Related U.S. Appl. No. 13/364,198, filed Feb. 1, 2012. |
Related U.S. Appl. No. 13/531,341, filed Jun. 22, 2012. |
Related U.S. Appl. No. 13/543,698, filed Jul. 6, 2012. |
Related U.S. Appl. No. 13/592,244, filed Aug. 22, 2012. |
Notificiation of International Search Report and Written Opinion dated May 7, 2012 for International Application No. PCT/US2012/027672, May 7, 2012, 1-9. |
“Interfacing DDR SDRAM with Stratix II Devices”, Version 3.2, Altera Corp, Sep. 2008. |
Lee, “How to Implement DDR SGRAM in Graphic System”, Samsung Electric, 1998. |
Office Action received for KR Appln No. 10-2013-7027649, dated Jan. 30, 2015, 5 pages. |
Number | Date | Country | |
---|---|---|---|
20130321052 A1 | Dec 2013 | US |