US20150113236A1 - Memory controller - Google Patents
Memory controller Download PDFInfo
- Publication number
- US20150113236A1 US20150113236A1 US14/590,106 US201514590106A US2015113236A1 US 20150113236 A1 US20150113236 A1 US 20150113236A1 US 201514590106 A US201514590106 A US 201514590106A US 2015113236 A1 US2015113236 A1 US 2015113236A1
- Authority
- US
- United States
- Prior art keywords
- delay
- read
- memory controller
- enable signal
- signal
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the invention relates to a memory controller, and more particularly, to a memory controller capable of precisely controlling data output time.
- a memory controller In many computer systems, a memory controller is used to efficiently manage the read and write transactions between a processor (or processors) and one or more random access memory (RAM) devices.
- Some memory controllers has a buffer (e.g., FIFO memory) that temporarily stores data to make data writing in a flash memory and data reading therefrom smoother.
- FIFO memory e.g., FIFO memory
- the memory controller may need to compensate for memory access latency.
- the memory device detects a falling edge of a read-enable signal RE, a read operation starts in the memory device.
- An activated read-enable (RE) signal (e.g., transmitted through the memory controller to the memory device) enables the memory device to output (read out) stored data, and the activated read-enable signal may then propagate back through the memory controller to indicate or control the availability of valid read data.
- Read data may not be instantaneously available (output) from some memory devices at the same time that the read-enable signal is activated.
- the access time T REA of a memory depends upon the characteristics of the individual memory device. Some memory devices may have different memory access latencies T REA , such that read data may be output (available) later from some memory devices than from others. Thus, there is a need for a memory controller capable of variably delaying the propagation of a read-enable signal and read data in the memory controller.
- Delay lines are used within digital circuits such as board level systems and integrated circuit (1C) devices, including field programmable gate arrays (FPGAs) and microprocessors, to control the timing of various signals in the digital circuits.
- a simple delay line receives an input signal on an input terminal and provides an output signal on an output terminal, the output signal being a copy of the input signal delayed by a certain time period that is referred to as the delay D of the delay line.
- More complicated delay lines are tunable (e.g., digitally programmable) so that delay D of the delay line can be adjusted.
- Connections between a memory controller formed on one integrated circuit and a memory device formed on a separate integrated circuit may produce an unpredictable propagation delay and access time, which may produce a read error.
- the access time may vary dynamically, which may cause a read error.
- An aspect of the invention provides a memory controller that can prevent a read error generated due to a variation in the access time during a data read so that the maximum performance can be obtained during data reading.
- a memory controller comprises: an digitally programmable delay unit receiving a read-enable signal and outputting a delayed read-enable signal having a variable delay time that varies in response to an externally applied delay-control signal (e.g., a digital delay selection signal); and a sampling unit outputting data transmitted from a memory in synchronization with the enable signal, wherein the delay time is a multiple of a period of a clock signal.
- an externally applied delay-control signal e.g., a digital delay selection signal
- the digital delay-control signal is a signal controlling the delay time though the digitally programmable delay unit and is applied by a user, or by an external circuit.
- the digitally programmable delay unit comprises a delay unit (e.g., a multi-tap delay block) receiving the read-enable signal, delaying a received read-enable signal by an interval of a multiple of the period of the clock signal, and outputting the delay signals having different delay times, and a switch unit selecting any one of the delay signals and outputting the selected delay signal as the enable signal, in response to the digital delay-control signal.
- a delay unit e.g., a multi-tap delay block
- the delay unit comprises a plurality of delay elements, each of which delays an input signal by an interval of a multiple of the period of the clock signal and outputs the delayed signal.
- the switch unit comprises a delay selector outputting a switching control signal that determines the delay time according to the digital delay-control signal, and a switching device selectively outputting any one of the delay signals in response to the switching control signal.
- the delay unit comprises n number of delay cells in which an output terminal of a k-th delay cell is connected to an input terminal of a (k+1)th delay cell, where k is a natural number that is not less than 1 and not greater than n ⁇ 1, and the first delay cell receives the read-enable signal, delays the received read-enable signal by a multiple of the period of the clock signal, and outputs a delayed signal in synchronization with the clock signal, where n is a natural number.
- the switching device is formed of a multiplexer.
- the sampling unit comprises a latch circuit that receives the enable signal and data and outputs the data signal, in synchronization with the enable signal.
- FIG. 1 is a block diagram of a memory controller, according to an exemplary embodiment of the invention.
- FIG. 2 is a timing diagram for explaining the operation of the memory controller of FIG. 1 .
- FIG. 1 is a block diagram of a memory controller 200 according to an exemplary embodiment of the invention.
- the memory controller 200 includes a programmable delay unit 210 and a sampling unit 250 .
- the programmable delay unit 210 is a digitally programmable delay unit configured to delay an input read-enable signal RE by a variable delay time, varying based upon an externally applied digital control signal CON_S, and outputs an enable signal EN.
- the variable delay time is a multiple of a period of a clock signal.
- a delay time is nT, where “n” is a natural number to be multiplied by period T.
- the sampling unit 250 receives data DATA transmitted from a data source (e.g., a memory 270 ).
- a data source e.g., a memory 270 .
- the enable signal EN When the enable signal EN is applied in an activated state, the received data DATA is output as read data RDATA.
- the active enable signal EN may be predetermined as a logic high or logic low level according to user settings.
- the programmable delay unit 210 may include a d multi-tap delay block 230 and a switch unit 220 .
- the multi-tap delay block 230 receives the read-enable signal RE and repeatedly delays the input read-enable signal RE for a total delay time interval of a multiple (n times) of the period of the clock signal CLK. For example, when the read-enable signal RE is input at a time point t1 and the period of the clock signal CLK is T, the multi-tap delay block 230 outputs the read-enable signal RE at each of time points t1+T, t1+2T, t1+3T, etc. and t1+nT.
- the multi-tap delay block 230 may include a plurality of delay elements e.g., clocked D-Q flip flops 231 , 232 , 233 , and 234 that are operated based on a clock signal CLK.
- Each of the delay elements e.g., flops 231 , 232 , 233 , and 234
- the number n of delay elements may be predetermined by a designer considering the access time of the memory controller 200 .
- the access time denotes the time period between the time point when the host device requests data and the time point when effective data is available for use.
- the time point from when the read-enable signal RE is activated to the time point just before the memory 270 starts a read operation in response to the read-enable signal RE is the access time.
- the delay element 231 which first receives the read-enable signal RE, is referred to as the first delay element 231 and the delay elements sequentially arranged after the first delay element are referred to as the second, third, . . . , n-th delay element 232 , 233 , . . . , 23 n -th, where n is a natural number.
- Each of the n delay elements may implemented by an edge-triggered d-type (DQ) flip-flop.
- the D input of a D-type “positive edge-triggered” flip-flop is sampled on the occurrence of the rising edge of the clock signal CLK (see, e.g., the rising edge of the CLOCK signal at time point t1 in FIG. 2 ), and the sampled D input is latched and transferred to the output Q. During all other conditions of the signal CLK, the input D is ignored.
- the first delay element (DQ flip-flop) 231 receives the read-enable signal RE through an input terminal D via a first node N 1 , and is operated in synchronization with the clock signal CLK.
- the first delay time t dl of the first delay element (DQ flip-flop) 231 is 1T.
- the time point synchronization is an interval of one cycle (period T) of the clock signal CLK.
- the first delay element 231 receives the read-enable signal RE at a time point t2
- the read data RDATA is output from a terminal Q of the first delay element (DQ flip-flop) 231 at a time point t2+T.
- the second delay element 232 receives a data signal output from the first delay element 231 through its input terminal D at the time point t2+T, the second delay element 232 outputs from its output terminal Q at a time point t2+2T.
- the (k+1)th delay element receives a signal output from output terminal Q of the kth delay element at the time point t2+kT, and the read data RDATA is output from the terminal Q of the (k+1)th delay element at a time point t2+(k+1)T, where k is a natural number that is not less than 1 and not greater than n.
- each delay element since each delay element outputs an input signal in synchronization with the clock signal CLK, each delay element has a delay time of 1T, which is one period of the clock signal CLK.
- the signal output by each of the delay elements 231 , 232 , 233 , and 234 through the terminal Q are input to the switch unit 220 .
- the switch unit 220 receives the inputs of signals output from the first through nth delay elements 231 , 232 , . . . , 233 , and 234 and selectively outputs one of the input signals.
- the switch unit 220 may receive the read-enable signal RE.
- the switch unit 220 selectively outputs any one of the read-enable signal RE and the output signals of the first through nth delay elements 231 , 232 , . . . 233 , and 234 .
- the switch unit 220 may include a delay selector 222 and a switching device 224 .
- the delay selector 222 in response to the digital delay-control signal CON_S, outputs a switching control signal corresponding to the digital delay-control signal CON_S.
- the switching control signal is a signal for controlling the amount of delay of the read-enable signal EN.
- the switching control signal selects any one of the read-enable signal RE and the output signals of the first, second, third, and fourth delay elements 231 , 232 , 233 , and 234 so that the read-enable signal EN can have a delay amount according to the digital delay-control signal CON_S.
- the switching device 224 in response to the switching control signal, selects and outputs one of the read-enable signal RE and the output signals of the first, second, third, and fourth delay elements 231 , 232 , 233 , and 234 , to a tenth node N 10 that is at an output terminal of the switching device 224 .
- the switching device 224 may be a multiplexer (MUX).
- the sampling unit 250 includes sampling devices such as flip-flops or latches.
- the sampling unit 250 in response to the enable signal EN output from the switch unit 220 , outputs the data DATA transmitted to a twelfth node N 12 at an input terminal of the sampling unit 250 , as the read data RDATA.
- FIG. 2 is a timing diagram for explaining the operation of the memory controller 200 of FIG. 1 .
- a signal “CLOCK” may denote the above-described clock signal CLK
- a signal “T CLK ” denotes one cycle (the period) of the clock signal CLK.
- the signal “CLOCK” may be produced by frequency-dividing the above-described clock signal CLK
- the signal “CLOCK” may be independent of the above-described clock signal CLK
- the read-enable input pin of the memory device 270 receives a falling edge of the read-enable signal RE, a read operation starts. At a rising edge of the read-enable signal RE, the read operation stops. Thus, when the read-enable signal RE is in a logic low level, the memory controller 200 reads the data stored in the memory 270 , and the read operation is performed. The memory controller 200 transmits the read-enable signal RE to the memory 270 .
- the propagation (delay) time of the read-enable signal RE transmitted from the memory controller 200 to the memory 270 is T RE-TOF .
- T RE-TOF is the time it takes for the read-enable signal RE to be transmitted from the input node ⁇ a4> of the memory controller 200 at a time point t1 to the input node ⁇ a3> of the memory device at time point t2.
- the RE signal transmitted from the memory controller 200 to the memory 270 has the waveform as shown of the read-enable signal RE 1 of FIG. 2 .
- the access time of the memory 270 is T REA .
- the time T DATA-TOF is the propagation (delay) time for transmitting the read data DATA 1 out from the memory 270 into the memory controller 200 .
- the time interval T DATA — TOF is a propagation delay time that occurs when the read data DATA 1 is transmitted from data output node ⁇ a1> of the memory device 270 a time point t3 to the data input node ⁇ a> of the memory controller 200 a time point t4.
- the time interval from the time point when the read-enable signal RE is a falling edge to the time point when the data read from the memory 270 is available is a time interval between a time point t1 and a time point t4.
- the time interval from the time point t1 to the time point t4 is the overall access time.
- the overall access time may not be an integer multiple of the period of the CLOCK signal.
- a set up time must be secured for all data read operations, where the set up time signifies a time needed to stabilize data.
- a hold time must be secured. where the hold time is a time to maintain the state of the read data for a predetermined period of time, which is requested by the memory controller 200 .
- the time from the time point t3 to a time point t5 may be a sum of the set up time and the hold time.
- a time TRC signifies a time needed for a predetermined unit of data to be output.
- the read-enable signal RE is delayed by a multiple of the cycle of the clock signal CLK considering the access time.
- the read-enable signal RE is delayed by 3T of the overall read-enable signal RE, e.g., three cycles of the clock signal CLK, a problem that the read data is not timely available can be prevented.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Pulse Circuits (AREA)
- Dram (AREA)
Abstract
A memory controller includes an digitally programmable delay unit having a selectable delay time receiving a read-enable signal and outputting a delayed read-enable signal. The delay time is selected in response to an externally applied delay-control signal. A sampling unit in the memory controller outputs data received from a separate memory, in synchronization with the delayed enable signal. The delay time may be a multiple of the period of a clock signal.
Description
- This application is a Continuation of U.S. application Ser. No. 12/272,100 filed on Nov. 17, 2008 which claims priority under 35 U.S.C. §119 to Korean Patent Application No. 10-2007-0116769 filed in the Korean Intellectual Property Office on Nov. 15, 2007, the disclosures of which are incorporated by reference herein in their entireties.
- 1. Technical Field of the Invention
- The invention relates to a memory controller, and more particularly, to a memory controller capable of precisely controlling data output time.
- 2. Description of the Related Art
- In many computer systems, a memory controller is used to efficiently manage the read and write transactions between a processor (or processors) and one or more random access memory (RAM) devices. Some memory controllers has a buffer (e.g., FIFO memory) that temporarily stores data to make data writing in a flash memory and data reading therefrom smoother. To perform a data output (read) operation synchronized with the operational clock (external clock) of a host system, the memory controller may need to compensate for memory access latency. When the memory device detects a falling edge of a read-enable signal RE, a read operation starts in the memory device. An activated read-enable (RE) signal (e.g., transmitted through the memory controller to the memory device) enables the memory device to output (read out) stored data, and the activated read-enable signal may then propagate back through the memory controller to indicate or control the availability of valid read data. Read data may not be instantaneously available (output) from some memory devices at the same time that the read-enable signal is activated. The access time TREA of a memory depends upon the characteristics of the individual memory device. Some memory devices may have different memory access latencies TREA, such that read data may be output (available) later from some memory devices than from others. Thus, there is a need for a memory controller capable of variably delaying the propagation of a read-enable signal and read data in the memory controller.
- Delay lines are used within digital circuits such as board level systems and integrated circuit (1C) devices, including field programmable gate arrays (FPGAs) and microprocessors, to control the timing of various signals in the digital circuits. A simple delay line receives an input signal on an input terminal and provides an output signal on an output terminal, the output signal being a copy of the input signal delayed by a certain time period that is referred to as the delay D of the delay line. More complicated delay lines are tunable (e.g., digitally programmable) so that delay D of the delay line can be adjusted.
- Connections between a memory controller formed on one integrated circuit and a memory device formed on a separate integrated circuit may produce an unpredictable propagation delay and access time, which may produce a read error. In some memory devices, the access time may vary dynamically, which may cause a read error. An aspect of the invention provides a memory controller that can prevent a read error generated due to a variation in the access time during a data read so that the maximum performance can be obtained during data reading.
- According to an aspect of the invention, a memory controller comprises: an digitally programmable delay unit receiving a read-enable signal and outputting a delayed read-enable signal having a variable delay time that varies in response to an externally applied delay-control signal (e.g., a digital delay selection signal); and a sampling unit outputting data transmitted from a memory in synchronization with the enable signal, wherein the delay time is a multiple of a period of a clock signal.
- The digital delay-control signal is a signal controlling the delay time though the digitally programmable delay unit and is applied by a user, or by an external circuit.
- The digitally programmable delay unit comprises a delay unit (e.g., a multi-tap delay block) receiving the read-enable signal, delaying a received read-enable signal by an interval of a multiple of the period of the clock signal, and outputting the delay signals having different delay times, and a switch unit selecting any one of the delay signals and outputting the selected delay signal as the enable signal, in response to the digital delay-control signal.
- The delay unit comprises a plurality of delay elements, each of which delays an input signal by an interval of a multiple of the period of the clock signal and outputs the delayed signal.
- The switch unit comprises a delay selector outputting a switching control signal that determines the delay time according to the digital delay-control signal, and a switching device selectively outputting any one of the delay signals in response to the switching control signal.
- The delay unit comprises n number of delay cells in which an output terminal of a k-th delay cell is connected to an input terminal of a (k+1)th delay cell, where k is a natural number that is not less than 1 and not greater than n−1, and the first delay cell receives the read-enable signal, delays the received read-enable signal by a multiple of the period of the clock signal, and outputs a delayed signal in synchronization with the clock signal, where n is a natural number.
- The switching device is formed of a multiplexer.
- The sampling unit comprises a latch circuit that receives the enable signal and data and outputs the data signal, in synchronization with the enable signal.
- The accompanying figures provide a further understanding of the present invention, and are incorporated in and constitute a part of this specification. The drawings illustrate exemplary embodiments of the present invention and, together with the description, serve to explain principles of the present invention. In the figures:
-
FIG. 1 is a block diagram of a memory controller, according to an exemplary embodiment of the invention; and -
FIG. 2 is a timing diagram for explaining the operation of the memory controller ofFIG. 1 . -
FIG. 1 is a block diagram of amemory controller 200 according to an exemplary embodiment of the invention. Referring toFIG. 1 , thememory controller 200 includes aprogrammable delay unit 210 and asampling unit 250. - The
programmable delay unit 210 is a digitally programmable delay unit configured to delay an input read-enable signal RE by a variable delay time, varying based upon an externally applied digital control signal CON_S, and outputs an enable signal EN. The variable delay time is a multiple of a period of a clock signal. Thus, when the period of a clock signal CLK is period T, a delay time is nT, where “n” is a natural number to be multiplied by period T. - The
sampling unit 250 receives data DATA transmitted from a data source (e.g., a memory 270). When the enable signal EN is applied in an activated state, the received data DATA is output as read data RDATA. The active enable signal EN may be predetermined as a logic high or logic low level according to user settings. - The digital delay-control signal CON_S is a signal that controls the delay time td (td=nT minus T, where n is a natural number selected based upon an externally applied digital delay-control signal CON_S. In a preferred embodiment, n is an integer. For example, when the digital delay-control signal CON_S is input as an m-bit code, a code of “00001” makes the amount of delay 1T, a code of “00010” makes the amount of delay 2T, and a code of “00011” makes the amount of delay 3T.
- The
programmable delay unit 210 may include a dmulti-tap delay block 230 and aswitch unit 220. Themulti-tap delay block 230 receives the read-enable signal RE and repeatedly delays the input read-enable signal RE for a total delay time interval of a multiple (n times) of the period of the clock signal CLK. For example, when the read-enable signal RE is input at a time point t1 and the period of the clock signal CLK is T, themulti-tap delay block 230 outputs the read-enable signal RE at each of time points t1+T, t1+2T, t1+3T, etc. and t1+nT. - Preferably, the
multi-tap delay block 230 may include a plurality of delay elements e.g., clockedD-Q flip flops flops memory controller 200. The access time denotes the time period between the time point when the host device requests data and the time point when effective data is available for use. Thus, the time point from when the read-enable signal RE is activated to the time point just before thememory 270 starts a read operation in response to the read-enable signal RE is the access time. When the access time is 10T (i.e., n=10), ten times of the period of the maximum clock signal CLK, then ten delay elements may be provided. - In the following description, for convenience of explanation, the
delay element 231, which first receives the read-enable signal RE, is referred to as thefirst delay element 231 and the delay elements sequentially arranged after the first delay element are referred to as the second, third, . . . , n-th delay element FIG. 2 ), and the sampled D input is latched and transferred to the output Q. During all other conditions of the signal CLK, the input D is ignored. - The first delay element (DQ flip-flop) 231 receives the read-enable signal RE through an input terminal D via a first node N1, and is operated in synchronization with the clock signal CLK. The first delay time tdl of the first delay element (DQ flip-flop) 231 is 1T. As described above, the time point synchronization is an interval of one cycle (period T) of the clock signal CLK. For example, when the
first delay element 231 receives the read-enable signal RE at a time point t2, the read data RDATA is output from a terminal Q of the first delay element (DQ flip-flop) 231 at a time point t2+T. - The
second delay element 232 receives a data signal output from thefirst delay element 231 through its input terminal D at the time point t2+T, thesecond delay element 232 outputs from its output terminal Q at a time point t2+2T. In general, the (k+1)th delay element receives a signal output from output terminal Q of the kth delay element at the time point t2+kT, and the read data RDATA is output from the terminal Q of the (k+1)th delay element at a time point t2+(k+1)T, where k is a natural number that is not less than 1 and not greater than n. - That is, since each delay element outputs an input signal in synchronization with the clock signal CLK, each delay element has a delay time of 1T, which is one period of the clock signal CLK. The signal output by each of the
delay elements switch unit 220. - The
switch unit 220 receives the inputs of signals output from the first throughnth delay elements switch unit 220 may receive the read-enable signal RE. Thus, theswitch unit 220 selectively outputs any one of the read-enable signal RE and the output signals of the first throughnth delay elements switch unit 220 may include adelay selector 222 and aswitching device 224. - The
delay selector 222, in response to the digital delay-control signal CON_S, outputs a switching control signal corresponding to the digital delay-control signal CON_S. The switching control signal is a signal for controlling the amount of delay of the read-enable signal EN. Thus, the switching control signal selects any one of the read-enable signal RE and the output signals of the first, second, third, andfourth delay elements - The
switching device 224, in response to the switching control signal, selects and outputs one of the read-enable signal RE and the output signals of the first, second, third, andfourth delay elements switching device 224. Theswitching device 224 may be a multiplexer (MUX). - The
sampling unit 250 includes sampling devices such as flip-flops or latches. Thesampling unit 250, in response to the enable signal EN output from theswitch unit 220, outputs the data DATA transmitted to a twelfth node N12 at an input terminal of thesampling unit 250, as the read data RDATA. -
FIG. 2 is a timing diagram for explaining the operation of thememory controller 200 ofFIG. 1 . Referring toFIG. 2 , a signal “CLOCK” may denote the above-described clock signal CLK, and a signal “TCLK” denotes one cycle (the period) of the clock signal CLK. In alternative embodiments, the signal “CLOCK” may be produced by frequency-dividing the above-described clock signal CLK In other embodiments, the signal “CLOCK” may be independent of the above-described clock signal CLK - When the read-enable input pin of the
memory device 270 receives a falling edge of the read-enable signal RE, a read operation starts. At a rising edge of the read-enable signal RE, the read operation stops. Thus, when the read-enable signal RE is in a logic low level, thememory controller 200 reads the data stored in thememory 270, and the read operation is performed. Thememory controller 200 transmits the read-enable signal RE to thememory 270. The propagation (delay) time of the read-enable signal RE transmitted from thememory controller 200 to thememory 270 is TRE-TOF. Thus, TRE-TOF is the time it takes for the read-enable signal RE to be transmitted from the input node <a4> of thememory controller 200 at a time point t1 to the input node <a3> of the memory device at time point t2. Thus, the RE signal transmitted from thememory controller 200 to thememory 270 has the waveform as shown of the read-enable signal RE1 ofFIG. 2 . - The access time of the
memory 270 is TREA. The time TDATA-TOF is the propagation (delay) time for transmitting the read data DATA1 out from thememory 270 into thememory controller 200. Thus, the time interval TDATA— TOF is a propagation delay time that occurs when the read data DATA1 is transmitted from data output node <a1> of the memory device 270 a time point t3 to the data input node <a> of the memory controller 200 a time point t4. - Thus, the time interval from the time point when the read-enable signal RE is a falling edge to the time point when the data read from the
memory 270 is available (can be used by the memory controller 200) is a time interval between a time point t1 and a time point t4. Thus, the time interval from the time point t1 to the time point t4 is the overall access time. The overall access time may not be an integer multiple of the period of the CLOCK signal. - Referring to a data DATA1, even when a data read operation starts at a time point t3, the read data can be output only after a predetermined time has elapsed. Thus, a set up time must be secured for all data read operations, where the set up time signifies a time needed to stabilize data. Also, a hold time must be secured. where the hold time is a time to maintain the state of the read data for a predetermined period of time, which is requested by the
memory controller 200. - Referring to
FIG. 2 , the time from the time point t3 to a time point t5 may be a sum of the set up time and the hold time. For reference, a time TRC signifies a time needed for a predetermined unit of data to be output. - As shown in
FIG. 2 , at the time point t5, the read data DATA1 can be used by thememory controller 200. However, the time point t5 is a position after the time point of <a2> t3 when the read-enable signal RE is raised. Accordingly, since data, for example, data DATA1, is output at a time point when the read operation of thememory 270 is deactivated by the read-enable signal RE, the requested data DATA is not properly transmitted. That is, a data read error problem is generated. - In an exemplary embodiment of the invention shown in
FIG. 1 , the read-enable signal RE is delayed by a multiple of the cycle of the clock signal CLK considering the access time. Thus, as shown inFIG. 2 , as the read-enable signal RE is delayed by 3T of the overall read-enable signal RE, e.g., three cycles of the clock signal CLK, a problem that the read data is not timely available can be prevented. - While the invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope of the following claims.
Claims (14)
1. A memory controller comprising:
a programmable delay unit configured to receive a periodic read-enable signal and to output a delayed periodic read-enable signal having a variable delay time selected in response to a delay-control signal; and
a sampling unit configured to output, in synchronization with the delayed periodic read-enable signal, data read out from a memory coupled to the memory controller,
wherein the programmable delay unit generates a plurality of delay signals having different delay times by repeatedly delaying the received read-enable signal based on edges of a clock signal, and selectively outputs one of the delay signals as the delayed read-enable signal.
2. The memory controller of claim 1 , wherein each of the plurality of delay signals is synchronized with the clock signal.
3. The memory controller of claim 1 , wherein the delay-control signal is a digital signal controlling the delay time of the programmable delay unit and is supplied by a user.
4. The memory controller of claim 1 , wherein the delay-control signal controls the delay time to approximately equal to an access time of the memory controller.
5. The memory controller of claim 1 , wherein the sampling unit comprises a latch circuit that receives the delayed read-enable signal and data and outputs the data signal, in synchronization with the delayed read-enable signal.
6. The memory controller of claim 1 , wherein the memory controller is formed on a first integrated circuit and the memory is formed on a separated second integrated circuit.
7. A memory controller, comprising:
a programmable delay unit configured to receive a periodic read-enable signal and to output a delayed periodic read-enable signal having a variable delay time selected in response to a delay-control signal,
wherein the programmable delay unit comprises:
a multi-tap delay block receiving the read-enable signal, and outputting a plurality of delay signals having different delay times by repeatedly delaying the received read-enable signal based on a clock signal; and
a switch unit configured to select one of the plurality of delay signals and to output the selected delay signal as the delayed read-enable signal, in response to the delay-control signal.
8. The memory controller of claim 7 , wherein the multi-tap delay block comprises a plurality of delay cells, each of which delays an input signal based on edges of the clock signal and outputs the delayed signal.
9. The memory controller of claim 8 , wherein each of the delay cells is formed of a flip-flop.
10. The memory controller of claim 7 , wherein the multi-tap delay block comprises a plurality n of delay cells in which an output terminal of a k-th delay cell is connected to an input terminal of a (k+1)th delay cell, wherein n is a natural number, wherein k is a natural number that is not less than 1 and not greater than n−1,
wherein the first one of the plurality n of delay cells receives the read-enable signal, delays the received read-enable signal based on edges of the clock signal, and outputs a delayed read-enable signal in synchronization with the clock signal.
11. The memory controller of claim 10 , wherein the k-th delay cell is formed of a positive edge-triggered flip-flop,
wherein the (k+1)th delay cell is formed of a negative edge-triggered flip-flop.
12. The memory controller of claim 10 , wherein the multi-tap delay block further comprises a plurality m of delay cells in which an output terminal of a i-th delay cell is connected to an input terminal of a (i+1)th delay cell, wherein m is a natural number, wherein i is a natural number that is not less than 1 and not greater than m−1,
wherein the first one of the plurality m of delay cells receives the read-enable signal,
wherein each of the plurality n of delay cells is formed of a positive edge-triggered flip-flop,
wherein each of the plurality m of delay cells is formed of a negative edge-triggered flip-flop.
13. The memory controller of claim 7 , wherein the switch unit comprises:
a delay selector configured to output a switching control signal that controls the delay time according to the delay-control signal; and
a switching device configured to select and output one of the delay signals in response to the switching control signal.
14. The memory controller of claim 13 , wherein the switching device is a multiplexer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/590,106 US20150113236A1 (en) | 2007-11-15 | 2015-01-06 | Memory controller |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20070116769A KR101455253B1 (en) | 2007-11-15 | 2007-11-15 | Memory controller |
KR10-2007-0116769 | 2007-11-15 | ||
US12/272,100 US8930739B2 (en) | 2007-11-15 | 2008-11-17 | Memory controller |
US14/590,106 US20150113236A1 (en) | 2007-11-15 | 2015-01-06 | Memory controller |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/272,100 Continuation US8930739B2 (en) | 2007-11-15 | 2008-11-17 | Memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150113236A1 true US20150113236A1 (en) | 2015-04-23 |
Family
ID=40754810
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/272,100 Active 2032-03-08 US8930739B2 (en) | 2007-11-15 | 2008-11-17 | Memory controller |
US14/590,106 Abandoned US20150113236A1 (en) | 2007-11-15 | 2015-01-06 | Memory controller |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/272,100 Active 2032-03-08 US8930739B2 (en) | 2007-11-15 | 2008-11-17 | Memory controller |
Country Status (2)
Country | Link |
---|---|
US (2) | US8930739B2 (en) |
KR (1) | KR101455253B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487576B2 (en) * | 2019-02-12 | 2022-11-01 | Samsung Electronics Co., Ltd. | Memory controller and method-controlling suspend mode |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110026578A (en) * | 2009-09-08 | 2011-03-16 | 엘지전자 주식회사 | Apparatus and method for compensating error of system memory |
US10217498B2 (en) | 2016-09-12 | 2019-02-26 | Qualcomm Incorporated | Techniques for preventing tampering with PROM settings |
US11935622B2 (en) | 2022-04-20 | 2024-03-19 | Sandisk Technologies Llc | Free flow data path architectures |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010022754A1 (en) * | 1997-08-22 | 2001-09-20 | Pawlowski J. Thomas | Synchronous memory with programmable read latency |
US6665230B1 (en) * | 2001-09-14 | 2003-12-16 | Denali Software, Inc. | Programmable delay compensation circuit |
US20040004509A1 (en) * | 2000-11-13 | 2004-01-08 | Tomohisa Okuno | Voltage conversion circuit and semiconductor integrated circuit device provided therewith |
US20050243607A1 (en) * | 2004-04-30 | 2005-11-03 | Hyun Woo Lee | Data output controller in semiconductor memory device and control method thereof |
US7196948B1 (en) * | 2005-03-07 | 2007-03-27 | Sun Microsystems, Inc . | Method and apparatus for data capture on a bi-directional bus |
US8536919B1 (en) * | 2010-10-21 | 2013-09-17 | Altera Corporation | Integrated circuits with delay matching circuitry |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5829195A (en) | 1981-08-12 | 1983-02-21 | Hitachi Ltd | Semiconductor memory |
JP4226686B2 (en) | 1998-05-07 | 2009-02-18 | 株式会社東芝 | Semiconductor memory system, semiconductor memory access control method, and semiconductor memory |
US6594748B1 (en) * | 2001-11-09 | 2003-07-15 | Lsi Logic Corporation | Methods and structure for pipelined read return control in a shared RAM controller |
JP4566621B2 (en) | 2004-05-14 | 2010-10-20 | 富士通セミコンダクター株式会社 | Semiconductor memory |
JP5013394B2 (en) * | 2005-09-13 | 2012-08-29 | ルネサスエレクトロニクス株式会社 | Semiconductor integrated circuit device |
KR20070030691A (en) * | 2005-09-13 | 2007-03-16 | 가부시끼가이샤 르네사스 테크놀로지 | Semiconductor integraged circuit device |
US7345948B2 (en) | 2005-10-20 | 2008-03-18 | Infineon Technologies Ag | Clock circuit for semiconductor memories |
US20070260778A1 (en) * | 2006-04-04 | 2007-11-08 | Ming-Shiang Lai | Memory controller with bi-directional buffer for achieving high speed capability and related method thereof |
-
2007
- 2007-11-15 KR KR20070116769A patent/KR101455253B1/en active IP Right Grant
-
2008
- 2008-11-17 US US12/272,100 patent/US8930739B2/en active Active
-
2015
- 2015-01-06 US US14/590,106 patent/US20150113236A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010022754A1 (en) * | 1997-08-22 | 2001-09-20 | Pawlowski J. Thomas | Synchronous memory with programmable read latency |
US20040004509A1 (en) * | 2000-11-13 | 2004-01-08 | Tomohisa Okuno | Voltage conversion circuit and semiconductor integrated circuit device provided therewith |
US6665230B1 (en) * | 2001-09-14 | 2003-12-16 | Denali Software, Inc. | Programmable delay compensation circuit |
US20050243607A1 (en) * | 2004-04-30 | 2005-11-03 | Hyun Woo Lee | Data output controller in semiconductor memory device and control method thereof |
US7196948B1 (en) * | 2005-03-07 | 2007-03-27 | Sun Microsystems, Inc . | Method and apparatus for data capture on a bi-directional bus |
US8536919B1 (en) * | 2010-10-21 | 2013-09-17 | Altera Corporation | Integrated circuits with delay matching circuitry |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487576B2 (en) * | 2019-02-12 | 2022-11-01 | Samsung Electronics Co., Ltd. | Memory controller and method-controlling suspend mode |
Also Published As
Publication number | Publication date |
---|---|
KR101455253B1 (en) | 2014-10-28 |
US8930739B2 (en) | 2015-01-06 |
US20090157986A1 (en) | 2009-06-18 |
KR20090050378A (en) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7555590B2 (en) | Fast buffer pointer across clock domains | |
KR100450726B1 (en) | Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device | |
US6633965B2 (en) | Memory controller with 1×/M× read capability | |
KR100435612B1 (en) | Clock vernier adjustment | |
US6678811B2 (en) | Memory controller with 1X/MX write capability | |
US5968180A (en) | Data capture circuit for asynchronous data transfer | |
US6625702B2 (en) | Memory controller with support for memory modules comprised of non-homogeneous data width RAM devices | |
US6654897B1 (en) | Dynamic wave-pipelined interface apparatus and methods therefor | |
JP4883850B2 (en) | Semiconductor device | |
US7180332B2 (en) | Clock synchronization circuit | |
US20110235446A1 (en) | Write strobe generation for a memory interface controller | |
US6889335B2 (en) | Memory controller receiver circuitry with tri-state noise immunity | |
US6986072B2 (en) | Register capable of corresponding to wide frequency band and signal generating method using the same | |
US20150113236A1 (en) | Memory controller | |
JPH0784863A (en) | Information processor and semiconductor storage device suitable to the same | |
US20070201288A1 (en) | Semiconductor memory device which compensates for delay time variations of multi-bit data | |
CN111161766A (en) | DDR SDRAM physical layer interface circuit and DDR SDRAM control device | |
US8395946B2 (en) | Data access apparatus and associated method for accessing data using internally generated clocks | |
US6900665B2 (en) | Transfer of digital data across asynchronous clock domains | |
US7589556B1 (en) | Dynamic control of memory interface timing | |
CN104639124A (en) | Method and circuit for improving margin for setup time and hold time of input signal of time sequence device | |
US7154809B2 (en) | Method for measuring the delay time of a signal line | |
JP3558564B2 (en) | Data transfer circuit and microcomputer equipped with data transfer circuit | |
JP3688137B2 (en) | Microcomputer | |
KR20080063877A (en) | Semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |