US20150113236A1 - Memory controller - Google Patents

Memory controller Download PDF

Info

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
Application number
US14/590,106
Inventor
Kwan-Ho Kim
Jong-In Kim
Young-wook Jang
Dae-Woong Kim
Bong-chun Kang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to US14/590,106 priority Critical patent/US20150113236A1/en
Publication of US20150113236A1 publication Critical patent/US20150113236A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.
  • BACKGROUND
  • 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.
  • SUMMARY
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 of FIG. 1.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • FIG. 1 is a block diagram of a memory controller 200 according to an exemplary embodiment of the invention. Referring to FIG. 1, 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. 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 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.
  • Preferably, 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) may be a flip-flop, and the number n of delay elements (e.g., the value of integer n) 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. Thus, 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. 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 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 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 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. 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 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. Thus, 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. Thus, 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 N10 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 N12 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. Referring to FIG. 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, 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 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 the memory 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 the memory controller 200 to the memory 270 has the waveform as shown of the read-enable signal RE1 of FIG. 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 the memory 270 into the memory 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 the memory 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 the memory 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 in FIG. 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)

What is claimed is:
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.
US14/590,106 2007-11-15 2015-01-06 Memory controller Abandoned US20150113236A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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