KR20180028613A - Memory System and Memory Control Method - Google Patents

Memory System and Memory Control Method Download PDF

Info

Publication number
KR20180028613A
KR20180028613A KR1020160116117A KR20160116117A KR20180028613A KR 20180028613 A KR20180028613 A KR 20180028613A KR 1020160116117 A KR1020160116117 A KR 1020160116117A KR 20160116117 A KR20160116117 A KR 20160116117A KR 20180028613 A KR20180028613 A KR 20180028613A
Authority
KR
South Korea
Prior art keywords
margin
read
memory device
test
bit
Prior art date
Application number
KR1020160116117A
Other languages
Korean (ko)
Inventor
이상민
최재형
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160116117A priority Critical patent/KR20180028613A/en
Priority to US15/648,909 priority patent/US10388402B2/en
Publication of KR20180028613A publication Critical patent/KR20180028613A/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56012Timing aspects, clock generation, synchronisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/229Timing of a write operation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

The present invention provides a memory system and a memory control method capable of securing a time margin. According to one aspect of the present invention, the memory system comprises: a memory device; and a memory controller for adjusting delay of a data strobe clock, processing at least one of a read test and a write test on the memory device, detecting at least one data bit reducing at least one of a setup margin and a hold margin among a plurality of data bits, and adjusting delay of the at least one bit to increase the reduced at least one margin.

Description

메모리 시스템 및 메모리 제어 방법{Memory System and Memory Control Method}[0001] DESCRIPTION [0002] MEMORY SYSTEM AND MEMORY CONTROL METHOD [

본 발명의 실시예는 메모리 시스템 및 메모리 제어 방법에 관한 것이다.An embodiment of the present invention relates to a memory system and a memory control method.

메모리의 특성은 사용 환경, 사용 횟수 또는 사용 시간이 경과함에 따라 변화할 수 있다. 그에 따라, 메모리를 사용하는 시스템의 메모리 인터페이스에는 전압 및 환경 변화에 따라 데이터 스큐(skew)가 발생할 수 있다. 메모리 인터페이스의 데이터 스큐를 줄이기 위한 많은 연구가 진행되고 있다.The characteristics of the memory may change with the use environment, the number of times of use, or the use time. Accordingly, a data skew may occur in the memory interface of the system using the memory according to the voltage and the environment change. Much research is underway to reduce data skew in memory interfaces.

데이터 스큐를 줄이고 데이터 래치를 안정적으로 실행하기 위해서 메모리 시스템은 데이터 스트로브 클럭 신호를 데이터 신호의 타이밍(timing) 마진의 가운데(center)에 위치시키는 교정(calibration)을 실행할 수 있다. 그러나, 데이터 스트로브 클럭 신호에 대한 교정은 메모리 디바이스로의 읽기 및 쓰기 동작이 발생하기 이전에 실행되며(initial training), 축소된 타이밍 마진을 개선할 수는 없었다.To reduce data skew and stably execute the data latch, the memory system can perform a calibration that positions the data strobe clock signal at the center of the timing margin of the data signal. However, the calibration for the data strobe clock signal was not performed before the read and write operations to the memory device occurred (initial training) and could not improve the reduced timing margin.

본 발명의 다양한 실시예들은 타이밍 마진을 확보할 수 있는 메모리 시스템 및 메모리 제어 방법을 제공할 수 있다.Various embodiments of the present invention can provide a memory system and a memory control method capable of securing a timing margin.

본 발명의 일면에 따른 메모리 시스템은, 메모리 디바이스; 및 데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 상기 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하고, 복수의 데이터 비트 중에서 셋업 마진(setup margin) 및 홀드 마진(hold margin) 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하고, 감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 메모리 컨트롤러;를 포함하는 것을 특징으로 한다.A memory system according to an aspect of the present invention includes: a memory device; And at least one of a read test and a write test for the memory device and controls at least one of a setup margin and a hold margin among a plurality of data bits, And a memory controller for detecting at least one data bit that reduces one margin and adjusting the delay of the at least one bit to increase the at least one margin that is reduced.

본 발명의 다른 면에 따른 적어도 하나의 프로세서에 의한 메모리 제어 방법은, 데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하는 동작; 복수의 데이터 비트 중에서 셋업 마진 및 홀드 마진 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하는 동작; 및 감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 동작을 포함하는 것을 특징으로 한다.According to another aspect of the present invention, a method for controlling a memory by at least one processor comprises: controlling a delay of a data strobe clock; performing at least one of a read test and a write test for a memory device; Detecting at least one data bit that reduces at least one of a setup margin and a hold margin among the plurality of data bits; And adjusting the delay of the at least one bit to increase the reduced at least one margin.

본 발명의 또 다른 면에 따른 메모리 컨트롤러는, 셋업 마진 및 홀드 마진을 저장하는 저장부; 및 데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하고, 복수의 데이터 비트 중에서 상기 셋업 마진 및 상기 홀드 마진 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하고, 감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 프로세서를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a memory controller including: a storage unit for storing a setup margin and a hold margin; And at least one of a read test and a write test for a memory device and adjusts a delay of a data strobe clock and at least one of a set margin and a hold margin of the plurality of data bits, A processor for detecting one data bit and adjusting the delay of the at least one bit to increase the at least one margin that is reduced.

본 발명에 따르면, PI 및 SI 영향으로 인한 메모리 인터페이스의 타이밍 마진을 개선할 수 있다.According to the present invention, the timing margin of the memory interface due to PI and SI effects can be improved.

도 1은 본 발명의 실시예에 따른 메모리 시스템을 도시한 구성도이다.
도 2 및 도 3은 본 발명의 실시예에 따른 데이터 인터페이스를 도시한 타이밍도이다.
도 4는 본 발명의 실시예에 따른 메모리 컨트롤러를 도시한 구성도이다.
도 5는 본 발명의 실시예에 따른 셋업 마진 테스트 과정의 타이밍도이다.
도 6은 본 발명의 실시예에 따른 홀드 마진 테스트 과정의 타이밍도이다.
도 7은 본 발명의 실시예에 따른 읽기 동작의 타이밍 마진 확보 방법을 도시한 흐름도이다.
도 8은 본 발명의 실시예에 따른 쓰기 동작의 타이밍 마진 확보 방법을 도시한 흐름도이다.
1 is a block diagram illustrating a memory system according to an embodiment of the present invention.
2 and 3 are timing diagrams illustrating a data interface according to an embodiment of the present invention.
4 is a block diagram illustrating a memory controller according to an embodiment of the present invention.
5 is a timing diagram of a setup margin test process according to an embodiment of the present invention.
6 is a timing diagram of a hold margin test process according to an embodiment of the present invention.
7 is a flowchart illustrating a method of securing a timing margin of a read operation according to an embodiment of the present invention.
8 is a flowchart illustrating a method of securing a timing margin of a write operation according to an embodiment of the present invention.

이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Various embodiments of the invention will now be described with reference to the accompanying drawings. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes various modifications, equivalents, and / or alternatives of the embodiments of the invention. In connection with the description of the drawings, like reference numerals may be used for similar components.

본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. 본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, the expressions "have," "may," "include," or "include" may be used to denote the presence of a feature (eg, a numerical value, a function, Quot ;, and does not exclude the presence of additional features. In this document, the expressions "A or B," "at least one of A and / or B," or "one or more of A and / or B," etc. may include all possible combinations of the listed items . For example, "A or B," "at least one of A and B," or "at least one of A or B" includes (1) at least one A, (2) Or (3) at least one A and at least one B all together.

본 문서에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.The expressions "first," " second, "" first, " or "second ", etc. used in this document may describe various components, It is used to distinguish the components and does not limit the components. For example, the first user equipment and the second user equipment may represent different user equipment, regardless of order or importance. For example, without departing from the scope of the rights described in this document, the first component can be named as the second component, and similarly the second component can also be named as the first component.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.(Or functionally or communicatively) coupled with / to "another component (eg, a second component), or a component (eg, a second component) Quot; connected to ", it is to be understood that any such element may be directly connected to the other element or may be connected through another element (e.g., a third element). On the other hand, when it is mentioned that a component (e.g., a first component) is "directly connected" or "directly connected" to another component (e.g., a second component) It can be understood that there is no other component (e.g., a third component) between other components.

본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.As used herein, the phrase " configured to " (or set) to be "adapted to, " To be designed to, "" adapted to, "" made to, "or" capable of ". The term " configured (or set) to "may not necessarily mean " specifically designed to" Instead, in some situations, the expression "configured to" may mean that the device can "do " with other devices or components. For example, a processor configured (or configured) to perform the phrases "A, B, and C" may be a processor dedicated to performing the operation (e.g., an embedded processor), or one or more software programs To a generic-purpose processor (e.g., a CPU or an application processor) that can perform the corresponding operations.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the other embodiments. The singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art. The general predefined terms used in this document may be interpreted in the same or similar sense as the contextual meanings of the related art and are intended to mean either ideally or in an excessively formal sense It is not interpreted. In some cases, even the terms defined in this document can not be construed as excluding the embodiments of this document.

도 1은 본 발명의 실시예에 따른 메모리 시스템을 도시한 구성도이고, 도 2 및 도 3은 본 발명의 실시예에 따른 데이터 인터페이스를 도시한 타이밍도이다.FIG. 1 is a configuration diagram illustrating a memory system according to an embodiment of the present invention, and FIGS. 2 and 3 are timing diagrams illustrating a data interface according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리 시스템은 메모리 디바이스(20) 및 메모리 컨트롤러(40)를 포함할 수 있다.1, a memory system according to an embodiment of the present invention may include a memory device 20 and a memory controller 40. [

본 발명의 일 실시예에 따르면, 메모리 디바이스(20)는 메모리 컨트롤러(40)의 제어에 따라 데이터를 저장할 수 있다. 예를 들어, 메모리 디바이스(20)는 DDR(Double Data Rate) 메모리, Flash 메모리, SSD(Single Data Rate) 메모리, 하드디스크(hard disk) 등 다양한 메모리 장치일 수 있다.According to one embodiment of the present invention, the memory device 20 may store data under the control of the memory controller 40. [ For example, the memory device 20 may be various memory devices such as a DDR (Double Data Rate) memory, a Flash memory, a SSD (Single Data Rate) memory, a hard disk and the like.

본 발명의 일 실시예에 따르면, 메모리 디바이스(20)는 메모리 컨트롤러(40)와 복수의 데이터 입출력 인터페이스 및 제어용 인터페이스로 연결될 수 있다. 일 실시예에서, 복수의 데이터 입출력 인터페이스는 메모리 디바이스(20)에 대한 읽기 동작, 쓰기 동작 및 읽기와 쓰기의 주소 지정 등을 위한 신호인 복수의 데이터 비트(DQS)을 포함할 수 있다. 예를 들어, 복수의 데이터 비트는 8비트일 수 있다. 일 실시예에서, 제어용 인터페이스는 적어도 하나의 데이터 스트로브 클럭(DQS_c, DQS_t) 및 기타 제어용 신호를 포함할 수 있다. 예를 들어, 적어도 하나의 데이터 스트로브 클럭(DQS_c, DQS_t)은 데이터의 읽기와 쓰기의 기준 시점을 제공하는 신호일 수 있다. 본 명세서에서는 데이터 스트로브 클럭이 두 신호로 제공되는 경우를 예로 들어 도시하였으나, 이에 한정되지 않는다. 일 실시예에서, 기타 제어용 신호는 메모리 디바이스(20)의 종류에 따라 각기 다를 수 있으며, 예를 들어, WE(write enable), RE(read enable), 어드레스(addr), CS(chip select) 및 커맨드(CMD) 등을 포함할 수 있다. WE(write enable)은 메모리 컨트롤러(40)가 메모리 디바이스(20)에 복수의 데이터 비트를 쓰기 동작중임을 알리는 신호일 수 있다. RE(read enable)은 메모리 컨트롤러(40)가 메모리 디바이스(20)에 읽기 동작중임을 알리는 신호일 수 있다. 어드레스(addr)는 복수의 데이터 비트가 메모리 디바이스(20)의 어드레스를 지정하지 아니면 데이터인지를 알리는 신호일 수 있다. CS(chip select)는 복수의 메모리 디바이스 중에서 해당 메모리 디바이스(20)와 인터페이스중임을 알리는 신호일 수 있다. 커맨드(CMD)는 복수의 데이터 비트를 통해 전달되는 데이터가 명령(command)인지 데이터인지를 구분하기 위한 신호일 수 있다.According to an embodiment of the present invention, the memory device 20 may be connected to the memory controller 40 via a plurality of data input / output interfaces and control interfaces. In one embodiment, the plurality of data input / output interfaces may include a plurality of data bits (DQS) that are signals for a read operation, a write operation, and addressing of read and write operations to the memory device 20. [ For example, the plurality of data bits may be 8 bits. In one embodiment, the control interface may include at least one data strobe clock (DQS_c, DQS_t) and other control signals. For example, at least one of the data strobe clocks DQS_c and DQS_t may be a signal that provides a reference point of time for reading and writing data. In the present specification, the case where the data strobe clock is provided as two signals is shown as an example, but the present invention is not limited thereto. In one embodiment, the other control signals may be different depending on the type of memory device 20 and may include, for example, WE (write enable), RE (read enable), address addr, CS Command (CMD), and the like. WE (write enable) may be a signal indicating that the memory controller 40 is writing a plurality of data bits to the memory device 20. [ RE (read enable) may be a signal indicating that the memory controller 40 is reading from the memory device 20. The address addr may be a signal indicating whether the plurality of data bits specify the address of the memory device 20 or not. The chip select (CS) signal may be a signal indicating that the memory device 20 is in an interface with a plurality of memory devices. The command CMD may be a signal for discriminating whether data transmitted through a plurality of data bits is a command or data.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 메모리 디바이스(20)에 대한 읽기(read) 동작과 쓰기(write) 동작을 제어할 수 있다. 메모리 컨트롤러(40)는 메모리 디바이스(20)에 대한 지우기(erase) 동작을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 프로세서와 메모리 디바이스(20) 사이에서 프로세서의 지시에 따라 메모리 디바이스(20)에 대한 읽기 동작과 쓰기 동작을 제어하는 소자일 수 있다. 메모리 컨트롤러(40)는 SoC(system on chip) 형태로 구성될 수 있다. 일 실시예에서, 프로세서는 중앙처리장치(CPU), 어플리케이션 프로세서(AP), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다.According to one embodiment of the present invention, the memory controller 40 may control the read and write operations to the memory device 20. [ The memory controller 40 may control the erase operation for the memory device 20. [ For example, the memory controller 40 may be an element that controls the read and write operations to and from the memory device 20, according to instructions from the processor, between the processor and the memory device 20. [ The memory controller 40 may be configured in the form of a system on chip (SoC). In one embodiment, the processor may include one or more of a central processing unit (CPU), an application processor (AP), or a communications processor (CP).

도 2 또는 도 3을 참조하면, 본 발명의 일 실시예에 따른 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지에 동기를 맞추어 메모리 디바이스(20)의 특정 주소를 지정하여 복수의 데이터 비트를 쓰거나, 메모리 디바이스(20)로부터 복수의 데이터 비트를 읽을 수 있다. 예를 들어, 동기 에지는 상승 에지(rising edge) 및 하강 에지(falling edge) 중 적어도 하나일 수 있다. 2 or 3, the memory controller 40 according to an exemplary embodiment of the present invention synchronizes with the synchronous edge of the data strobe clock to designate a specific address of the memory device 20 to write a plurality of data bits , And may read a plurality of data bits from the memory device (20). For example, the sync edge may be at least one of a rising edge and a falling edge.

도 2 또는 도 3를 참조하면, 복수의 데이터 비트는 a구간과 a'구간에서 상태천이(transition)될 수 있다. 셋업 마진(b)은 복수의 데이터 비트가 모두 상태천이 완료된 시점에서 데이터 스트로브 클럭의 동기 에지 간의 시간간격일 수 있다. 셋업 마진(b)은 복수의 데이터 비트 중에서 가장 타이밍이 늦은 데이터 비트에 의해 결정될 수 있다. 홀드 마진(c)는 데이터 스트로브 클럭의 동기 에지로부터 복수의 데이터 비트의 다음 상태천이의 시작시점까지의 간격일 수 있다. 홀드 마진(c)은 가장 타이밍이 빠른 데이터 비트에 의해 결정될 수 있다. 타이밍 마진(b+c)는 셋업 마진(b)과 홀드 마진(c)의 합일 수 있다.Referring to FIG. 2 or FIG. 3, a plurality of data bits may transition from a 'to a'. The setup margin b may be a time interval between synchronization edges of the data strobe clock at a time point when the state transition of all the plurality of data bits is completed. The setup margin b may be determined by a data bit whose timing is the slowest among a plurality of data bits. The hold margin c may be an interval from the synchronous edge of the data strobe clock to the start point of the next state transition of the plurality of data bits. The hold margin c can be determined by the data bit having the highest timing. The timing margin (b + c) may be the sum of the setup margin (b) and the hold margin (c).

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 딜레이(도 2 및 3의 'd' 참조)를 조절하며, 메모리 디바이스(20)에 대한 읽기 테스트 및 쓰기 테스트하여 메모리 디바이스(20)의 타이밍 마진을 측정할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치(예: b 구간의 시작시점)로 조절하여 메모리 디바이스(20)에 대해 읽기 테스트 또는 쓰기 테스트할 수 있다. 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치에 위치시킨 상태에서 읽기 또는 쓰기 테스트하여 복수의 데이터 비트 중에서 셋업 마진(setup margin)을 감소시키는 적어도 하나의 데이터 비트를 검출할 수 있다. 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지를 지정된 홀드 마진 위치(예: c구간의 시작시점)로 조절하여 읽기 테스트 또는 쓰기 테스트하고 복수의 데이터 비트 중에서 홀드 마진(hold margin)을 감소시키는 적어도 하나의 데이터 비트를 검출할 수 있다.According to one embodiment of the present invention, the memory controller 40 adjusts the delay of the data strobe clock (see 'd' in FIGS. 2 and 3) and performs a read test and a write test on the memory device 20, It is possible to measure the timing margin of the timing belt 20. For example, the memory controller 40 may perform a read test or a write test on the memory device 20 by adjusting the synchronous edge of the data strobe clock to a specified setup margin position (e.g., the start time of the b section). The memory controller 40 can detect at least one data bit that reduces a setup margin among a plurality of data bits by performing a read or a write test in a state in which a sync edge of a data strobe clock is located at a specified setup margin position have. The memory controller 40 performs a read test or write test by adjusting the synchronous edge of the data strobe clock to a specified hold margin position (e.g., the start time of the section c), and at least a hold margin One data bit can be detected.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 읽기 테스트를 수행할 때 데이터 스트로브 클럭의 딜레이를 셋업 마진 또는 홀드 마진 위치로 조절한 후 메모리 디바이스(20)에 저장된 기준 패턴(또는 기준 데이터)을 읽어올 수 있다. 예를 들어, 메모리 디바이스(20)에 저장된 기준 패턴은 메모리 컨트롤러(40)가 데이터 스트로브 클럭의 딜레이를 조절하기 전 또는 읽기 테스트를 수행하기 전에 내부 메모리에 저장된 기준 패턴을 메모리 디바이스(20)에 쓰여진 패턴일 수 있다. 메모리 컨트롤러(40)는 읽어온 기준 패턴과 내부 저장된 기준 패턴을 비교하여 상호 일치하는지를 확인하고, 일치하지 않는 비트를 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트로 결정할 수 있다. 일 실시예에서, 기준 패턴은 복수의 동기 에지에서 복수의 데이터 비트를 상태 천이할 수 있는 데이터일 수 있다. 예를 들어, 복수의 데이터 비트가 8비트일 경우에 기준 패턴의 각 비트는 01010101과 10101010일 수 있다.According to one embodiment of the present invention, the memory controller 40 adjusts the delay of the data strobe clock to a setup margin or a hold margin position when performing a read test, ) Can be read. For example, the reference pattern stored in the memory device 20 may be written to the memory device 20 before the memory controller 40 adjusts the delay of the data strobe clock or before performing the read test, Pattern. The memory controller 40 compares the read reference pattern with the stored reference pattern to check whether the reference patterns match with each other or not, and can determine a bit that does not match as a data bit that reduces a setup margin or a hold margin. In one embodiment, the reference pattern may be data capable of state transitions of a plurality of data bits at a plurality of sync edges. For example, when the plurality of data bits is 8 bits, each bit of the reference pattern may be 01010101 and 10101010.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 쓰기 테스트를 수행할 때 데이터 스트로브 클럭의 딜레이를 셋업 마진 또는 홀드 마진 위치로 조절한 후 내부 메모리에 저장된 기준 패턴을 메모리 디바이스(20)에 쓰기(write)할 수 있다. 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 딜레이를 위치 조절 전으로 복원시킨 후 메모리 디바이스(20)에 쓰여진 패턴을 읽어올 수 있다. 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 읽어온 패턴과 내부 메모리의 기준 패턴과 비교함에 따라 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트를 검출할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 내부 메모리의 기준 패턴과 읽어온 패턴이 상호 일치하지 않는 경우, 두 패턴의 비트 중 일치하지 않는 비트를 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트로 결정할 수 있다.According to an embodiment of the present invention, when performing a write test, the memory controller 40 adjusts the delay of the data strobe clock to a setup margin or a hold margin position and then stores the reference pattern stored in the internal memory in the memory device 20 Can be written. The memory controller 40 may read the pattern written to the memory device 20 after restoring the delay of the data strobe clock before the position adjustment. The memory controller 40 can detect a data bit for reducing the setup margin or the hold margin by comparing the pattern read from the memory device 20 with the reference pattern of the internal memory. For example, when the reference pattern of the internal memory and the read pattern do not coincide with each other, the memory controller 40 can determine the bits that do not match among the bits of the two patterns as data bits that reduce the setup margin or the hold margin.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 과정에서 데이터 스트로브 클럭을 기준으로 복수의 데이터 비트의 딜레이를 각기 조절하면서, 읽기 동작(또는 읽기 테스트) 또는 쓰기 동작(또는 쓰기 테스트)을 수행하여 각 데이터 비트에 대해 설정 가능한 모든 딜레이 중에서 타이밍 마진이 가장 크게 확보되는 딜레이를 설정할 수 있다.According to one embodiment of the present invention, the memory controller 40 controls the delay of a plurality of data bits based on the data strobe clock in the initialization process of the memory device 20, and performs a read operation (or a read test) By performing an operation (or a write test), it is possible to set the delay in which the timing margin is maximized among all possible delays for each data bit.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 초기화된 메모리 디바이스(20)의 사용 중에 메모리 디바이스(20)에 대한 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 주기적으로 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 메모리 컨트롤러(40)는 읽기 테스트 또는 쓰기 테스트의 수행 중에 프로세서로부터 읽기 동작 또는 쓰기 동작이 지시되면, 지시된 동작을 잠시 대기시킬 수 있다. 메모리 컨트롤러(40)는 읽기 테스트 또는 쓰기 테스트를 수행 완료한 다음에 대기시킨 동작을 수행할 수 있다. According to one embodiment of the present invention, the memory controller 40 may perform a read test and a write test on the memory device 20 during use of the initialized memory device 20. For example, the memory controller 40 may periodically perform read and write tests. The memory controller 40 can wait for a moment when the read operation or the write operation is instructed from the processor during the execution of the read test or the write test. The memory controller 40 can perform an operation waiting after the completion of the read test or the write test.

본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 이후 임계시간이 경과한 후에 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 임계시간은 메모리 디바이스(20)의 초기화 이후에 시간 지연 등에 의해서 PI 및 SI 영향이 발생하는 시점을 이용하여 결정될 수 있다. 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 이후에 읽기 동작 및 쓰기 동작 중 적어도 하나가 지정된 임계횟수 이상 수행된 이후에 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 임계횟수는 메모리 디바이스(20)의 초기화 이후에 동작 반복 등에 의해서 PI 및 SI 영향이 발생하는 동작횟수를 이용하여 결정될 수 있다.According to one embodiment of the present invention, the memory controller 40 may perform a read test and a write test after the threshold time has elapsed since the initialization of the memory device 20. [ For example, the threshold time may be determined using a time point at which the PI and SI effects occur due to a time delay or the like after initialization of the memory device 20. [ The memory controller 40 may perform a read test and a write test after at least one of the read operation and the write operation is performed after the initialization of the memory device 20 for a predetermined number of times or more. For example, the threshold number of times may be determined using the number of operations in which PI and SI effects occur due to repetition of operations, etc. after the initialization of the memory device 20.

본 발명의 다양한 실시예들은 타이밍 마진을 축소한 원인이 되는 데이터 비트의 딜레이를 조절할 수 있어, SI 및 PI 영향으로 인해 축소된 타이밍 마진을 확보할 수 있다. 본 발명의 다양한 실시예들은 메모리 디바이스의 사용에 따라 축소된 타이밍 마진을 개선할 수 있다.Various embodiments of the present invention can adjust the delay of the data bits that cause the timing margin to be reduced, thereby ensuring a reduced timing margin due to SI and PI effects. Various embodiments of the present invention may improve the reduced timing margin in accordance with the use of the memory device.

도 4는 본 발명의 실시예에 따른 메모리 컨트롤러를 도시한 구성도이고, 도 5는 본 발명의 실시예에 따른 셋업 마진 테스트 과정의 타이밍도이고, 도 6은 본 발명의 실시예에 따른 홀드 마진 테스트 과정의 타이밍도이다.FIG. 4 is a configuration diagram illustrating a memory controller according to an embodiment of the present invention. FIG. 5 is a timing diagram of a setup margin test process according to an embodiment of the present invention. FIG. It is a timing diagram of the test process.

도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리 컨트롤러(40)는 저장 모듈(410), 트레이닝 모듈(420), 읽기 컨트롤러(450), 쓰기 컨트롤러(430), 읽기 마진 테스트 모듈(460) 및 쓰기 마진 테스트 모듈(440)을 포함할 수 있다. 본 발명의 실시예에 따른 트레이닝 모듈(420), 읽기 컨트롤러(450), 쓰기 컨트롤러(430), 읽기 마진 테스트 모듈(460), 쓰기 마진 테스트 모듈(440) 중 적어도 하나는 생략될 수 있다. 본 발명의 실시예에 따른 메모리 컨트롤러(40)의 각 구성요소는 적어도 하나의 프로세서의 하드웨어 모듈일 수 있으며, 적어도 하나의 프로세서에 의해 구현되는 소프트웨어 모듈일 수 있다. 예를 들어, 메모리 컨트롤러(40)에 포함된 각 구성요소는 적어도 하나의 프로세서에 의해 수행되거나, 각각 별도의 프로세서에 의해 수행될 수 있다.4, the memory controller 40 according to an embodiment of the present invention includes a storage module 410, a training module 420, a read controller 450, a write controller 430, a read margin test module 460 and a write margin test module 440. At least one of the training module 420, the read controller 450, the write controller 430, the read margin test module 460, and the write margin test module 440 according to the embodiment of the present invention may be omitted. Each component of the memory controller 40 according to an embodiment of the present invention may be a hardware module of at least one processor and may be a software module implemented by at least one processor. For example, each component included in the memory controller 40 may be performed by at least one processor, or each processor may be executed by a separate processor.

본 발명의 일 실시예에 따르면, 저장 모듈(410)은 읽기 및 쓰기 테스트에 사용되는 테스트 정보를 저장할 수 있다. 예를 들어, 테스트 정보는 기준 패턴, 셋업 마진 위치, 홀드 마진 위치, 각 테스트에 사용되는 메모리 디바스의 주소 등을 포함할 수 있다. 일 실시예에서, 기준 패턴은 복수의 데이터 비트의 타이밍 마진 확인을 위한 데이터로서, 복수의 동작 주기에 상태천이되는 데이터일 수 있다. 예를 들어, 복수의 데이터가 8비트일 경우에 기준 패턴은 첫 번째 데이터의 각 비트가 01010101이고 두 번째 데이터의 각 비트가 10101010인 데이터일 수 있다. 본 발명의 일 실시예에 따르면, 저장 모듈(410)은 메모리 컨트롤러(40)의 내장 메모리일 수 있다.According to one embodiment of the present invention, the storage module 410 may store test information used in read and write tests. For example, the test information may include a reference pattern, a set-up margin position, a hold margin position, and the address of a memory device used for each test. In one embodiment, the reference pattern is data for timing margin confirmation of a plurality of data bits, and may be data that is transitioned to a plurality of operation periods. For example, when the plurality of data is 8 bits, the reference pattern may be data in which each bit of the first data is 01010101 and each bit of the second data is 10101010. According to one embodiment of the present invention, the storage module 410 may be an internal memory of the memory controller 40. [

본 발명의 일 실시예에 따르면, 트레이닝 모듈(420)은 메모리 디바이스(20)에 대한 초기화 과정에서 각 데이터 비트에 대한 인터페이스 딜레이를 조절하며, 조절된 딜레이에서 읽기 및 쓰기 동작 중 적어도 하나를 수행하며 타이밍 마진을 확인할 수 있다. 일 실시예에서, 트레이닝 모듈(420)은 데이터 스트로브 클럭을 기준으로 복수의 데이터 비트의 인터페이스 딜레이를 각기 조절할 수 있다. 트레이닝 모듈(420)은 조절된 딜레이 중에서 상대적으로 가장 타이밍 마진을 증가시킬 수 있는 각 인터페이스 딜레이를 확인하고, 확인된 각 인터페이스 딜레이를 각 데이터 비트의 인터페이스 딜레이로 설정할 수 있다. In accordance with one embodiment of the present invention, the training module 420 adjusts the interface delay for each data bit in the initialization for the memory device 20, and performs at least one of read and write operations in the adjusted delay Timing margin can be confirmed. In one embodiment, the training module 420 may adjust the interface delays of the plurality of data bits, respectively, based on the data strobe clock. The training module 420 can identify each interface delay that can relatively increase the timing margin relatively among the adjusted delays and set each identified interface delay as the interface delay of each data bit.

본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)는 프로세서의 지시에 따라 메모리 디바이스(20)에 대한 읽기 동작을 수행할 수 있다. 쓰기 컨트롤러(430)는 프로세서의 지시에 따라 메모리 디바이스(20)에 대한 읽기 동작을 수행할 수 있다. According to one embodiment of the present invention, the read controller 450 may perform a read operation to the memory device 20 in accordance with the instructions of the processor. Write controller 430 may perform a read operation to the memory device 20 in accordance with an instruction of the processor.

본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)는 복수의 데이터 비트의 읽기 동작의 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 읽기 컨트롤러(450)는 트레이닝 모듈(420) 및 읽기 마진 테스트 모듈(460) 중 적어도 하나의 요청에 따라 복수의 데이터 비트의 읽기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. According to one embodiment of the present invention, the read controller 450 may adjust the interface delay of the read operation of the plurality of data bits. For example, the read controller 450 may adjust an interface delay for a read operation of a plurality of data bits in response to a request of at least one of the training module 420 and the read margin test module 460.

본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 복수의 데이터 비트의 쓰기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 쓰기 컨트롤러(430)는 트레이닝 모듈(420) 및 쓰기 마진 테스트 모듈(440) 중 적어도 하나의 요청에 따라 복수의 데이터 비트의 쓰기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 각 인터페이스 딜레이는 지정된 시간단위(예컨대, 1ms)로 앞당겨지나, 지연될 수 있다. 예를 들어, 지정된 시간단위는 데이터 스트로브 클럭의 1/n배수일 수 있다.According to one embodiment of the present invention, the write controller 430 may adjust the interface delay for a write operation of a plurality of data bits. For example, the write controller 430 may adjust an interface delay for a write operation of a plurality of data bits in response to a request of at least one of the training module 420 and the write margin test module 440. For example, each interface delay may be delayed or delayed by a specified time unit (e.g., 1 ms). For example, the designated time unit may be 1 / n times the data strobe clock.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)의 읽기 동작의 타이밍 마진을 확인하기 위한 읽기 테스트를 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 데이터 스트로브 클럭의 딜레이를 지정된 셋업 마진 위치 또는 홀드 마진 위치로 조절하며, 메모리 디바이스(20)에 대한 읽기 테스트를 수행할 수 있다. 읽기 마진 테스트 모듈(460)은 읽기 테스트 결과 셋업 마진 또는 홀드 마진을 감소시킨 비트를 검출할 수 있다.According to one embodiment of the present invention, the read margin test module 460 may perform a read test to check the timing margin of the read operation of the memory device 20. [ For example, the read margin test module 460 may adjust the delay of the data strobe clock to a specified setup margin or hold margin position and perform a read test on the memory device 20. The read margin test module 460 may detect a bit that reduces a setup margin or a hold margin as a result of a read test.

도 5와 같이, 본 발명의 일 실시예에 따른 읽기 마진 테스트 모듈(460)은 데이터 스트로브 클럭을 셋업 마진의 위치로 조절하고, 메모리 디바이스(20)에 저장된 제1 패턴을 읽어올 수 있다. 일 실시예에서, 제1 패턴은 읽기 테스트가 수행되기 전(또는 데이터 스트로브 클럭의 위치를 셋업 마진 위치로 조절하기 전)에 쓰기 컨트롤러(430) 또는 쓰기 마진 테스트 모듈(440)에 의해 메모리 디바이스(20)에 저장된 기준 패턴일 수 있다. 본 발명의 일 실시예에 따른 읽기 마진 테스트 모듈(460)은 읽어온 제1 패턴의 각 비트와 저장 모듈(410)의 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 셋업 마진 실패 플래그를 출력할 수 있다. 본 발명의 일 실시예에 따른 읽기 마진 테스트 모듈(460)은 기준 패턴과 읽어온 패턴의 각 비트를 비교하고, 비교 결과 상호 일치하지 않는 비트를 셋업 마진을 감소시킨 비트로 검출할 수 있다. 도 5에서는 기준 패턴의 각 비트(DQ[7:0])는 11001011이고, 메모리 디바이스(20)로부터 읽어온 제1 패턴의 각 비트(DQ[7:0])는 11000011일 수 있다. 이 경우, 읽기 마진 테스트 모듈(460)은 DQ3 비트를 셋업 마진을 감소시킨 데이터 비트로 검출할 수 있다. 본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 셋업 마진을 감소시킨 데이터 정보를 읽기 컨트롤러(450)에 전달할 수 있다. 일 실시예에서, 읽기 컨트롤러(450)는 셋업 마진을 감소시킨 데이터 비트의 딜레이를 데이터 스트로브 클럭의 동기 에지를 기준으로 왼쪽으로 적어도 1 시간단위 이동(예컨대: 쉬프트)하여 읽기 동작의 셋업 마진을 확보할 수 있다.As shown in FIG. 5, the read margin test module 460 according to an embodiment of the present invention adjusts the data strobe clock to the position of the setup margin, and reads the first pattern stored in the memory device 20. In one embodiment, the first pattern is generated by the write controller 430 or the write margin test module 440 before the read test is performed (or before the position of the data strobe clock is adjusted to the setup margin position) 20). ≪ / RTI > The read margin test module 460 according to an embodiment of the present invention checks whether each bit of the read first pattern and the reference pattern of the storage module 410 coincide with each other, The flag can be output. The read margin test module 460 according to an embodiment of the present invention may compare each bit of the reference pattern and the read pattern and detect bits that do not coincide with each other as a bit whose set margin is reduced. 5, each bit (DQ [7: 0]) of the reference pattern is 11001011, and each bit (DQ [7: 0]) of the first pattern read from the memory device 20 may be 11000011. In this case, the read margin test module 460 can detect the DQ3 bit with a data bit whose set margin is reduced. According to one embodiment of the present invention, the read margin test module 460 may pass the data information with reduced setup margin to the read controller 450. In one embodiment, the read controller 450 shifts the delay of the data bits for which the set-up margin has been reduced to the left by at least one hour (for example, shifts) based on the synchronous edge of the data strobe clock to secure the setup margin of the read operation can do.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 데이터 스트로브 클럭을 홀드 마진 위치로 조절하고, 메모리 디바이스(20)에 저장된 제1 패턴을 읽어올 수 있다. 일 실시예에서, 읽기 마진 테스트 모듈(460)은 읽어온 제1 패턴의 각 비트와 저장 모듈(410)의 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 홀드 마진 실패 플래그를 출력할 수 있다. 일 실시예에서, 읽기 마진 테스트 모듈(460)은 기준 패턴과 읽어온 패턴의 각 비트를 비교하고, 비교 결과 일치하지 않는 비트를 홀드 마진을 감소시킨 비트로 검출할 수 있다. 도 6에서는 기준 패턴의 각 비트(DQ[7:0])는 11001011이고, 읽어온 제1 패턴의 각 비트(DQ[7:0])는 11101011일 수 있다. 이 경우, 읽기 마진 테스트 모듈(460)은 DQ5 비트를 홀드 마진을 감소시킨 데이터 비트로 검출할 수 있다. 본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 홀드 마진을 감소시킨 데이터 정보를 읽기 컨트롤러(450)에 전달할 수 있다. 읽기 컨트롤러(450)는 홀드 마진을 감소시킨 데이터 비트(예: DQ5)의 딜레이를 데이터 스트로브 클럭의 동기 에지를 기준으로 오른쪽으로 적어도 1 시간단위 이동(예: 쉬프트)하여 읽기 동작의 홀드 마진을 확보할 수 있다.According to one embodiment of the present invention, the read margin test module 460 may adjust the data strobe clock to the hold margin position and read the first pattern stored in the memory device 20. In one embodiment, the read margin test module 460 checks whether each bit of the first pattern read and the bits of the reference pattern of the storage module 410 coincide with each other, and outputs a hold margin failure flag can do. In one embodiment, the read margin test module 460 may compare each bit of the reference pattern with the read pattern, and detect the bit that is not the result of comparison as a bit with a reduced hold margin. In FIG. 6, each bit (DQ [7: 0]) of the reference pattern is 11001011 and each bit (DQ [7: 0]) of the read first pattern may be 11101011. In this case, the read margin test module 460 can detect the DQ5 bit with a data bit whose hold margin is reduced. According to one embodiment of the present invention, the read margin test module 460 may pass the data information with the reduced hold margin to the read controller 450. The read controller 450 moves the delay of the data bit (e.g., DQ5) in which the hold margin is reduced to the right by at least one hour on the basis of the synchronous edge of the data strobe clock to secure the hold margin of the read operation can do.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 읽기 동작의 셋업 마진 또는 홀드 마진을 감소시킨 데이터 비트에 대한 딜레이가 조절되면, 다시 읽기 테스트를 수행하여 셋업 마진 또는 홀드 마진이 확보되었는지를 확인할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 딜레이가 조절된 후 바로 이어서 읽기 테스트를 수행할 수 있다. 본 발명의 다른 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 다음 읽기 테스트를 통해서 읽기 동작의 셋업 마진 또는 홀드 마진이 증가되었는지를 확인할 수도 있다. According to one embodiment of the present invention, the read margin test module 460 performs the read test again when the setup margin of the read operation or the delay of the data bit that reduces the hold margin is adjusted, thereby obtaining a setup margin or a hold margin Can be confirmed. For example, the read margin test module 460 may perform a read test immediately after the delay is adjusted. According to another embodiment of the present invention, the read margin test module 460 may check whether the setup margin or the hold margin of the read operation is increased through the next read test.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 1회의 읽기 테스트에 셋업 마진과 홀드 마진을 둘 다 확인할 수 있으며, 둘 중 하나만 확인할 수도 있다.According to an embodiment of the present invention, the read margin test module 460 can confirm both the setup margin and the hold margin in one read test, and only one of them can be confirmed.

본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 수행할 때 데이터 스트로브 클럭을 셋업 마진 위치로 조절하고, 메모리 디바이스(20)에 기준 패턴을 쓰기할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴을 쓰기한 후 데이터 스트로브 클럭을 원래 위치로 복원시켜 메모리 디바이스(20)로부터 메모리 디바이스(20)에 저장된 패턴을 읽어올 수 있다. 쓰기 마진 테스트 모듈(440)은 읽어온 제2 패턴과 저장 모듈(410)에 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 셋업 마진 실패 플래그를 출력할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴과 읽어온 패턴의 각 비트를 비교하고, 상호 일치하지 않는 비트를 셋업 마진을 감소시킨 비트로 검출할 수 있다. 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 통해 검출된 셋업 마진을 감소시킨 데이터 비트 정보를 쓰기 컨트롤러(430)에 전달할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 셋업 마진을 감소시킨 데이터 비트(예: DQ5)의 딜레이를 데이터 스트로브 클럭을 기준으로 왼쪽으로 적어도 1 시간단위 쉬프트하여 쓰기 동작의 셋업 마진을 확보할 수 있다.According to one embodiment of the present invention, the write margin test module 440 may adjust the data strobe clock to a setup margin position and write a reference pattern to the memory device 20 when performing a write test. The write margin test module 440 may read the pattern stored in the memory device 20 from the memory device 20 by restoring the data strobe clock to the original position after writing the reference pattern. The write margin test module 440 checks whether the bits of the read second pattern and the reference pattern stored in the storage module 410 coincide with each other. If the bits do not coincide with each other, the write margin test module 440 outputs a setup margin failure flag. The write margin test module 440 compares each bit of the reference pattern with the read pattern, and detects the bits that do not coincide with each other with the bit whose set margin is reduced. The write margin test module 440 may transmit the data bit information to the write controller 430 in which the setup margin detected through the write test is reduced. According to one embodiment of the present invention, the write controller 430 shifts the delay of a data bit (e.g., DQ5) in which the setup margin is reduced to the left by at least one hour on the basis of the data strobe clock, .

본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 수행할 때 데이터 스트로브 클럭을 홀드 마진 위치로 조절하고, 메모리 디바이스(20)에 기준 패턴을 저장시킬 수 있다. 쓰기 마진 테스트 모듈(440)은 데이터 스트로브 클럭을 딜레이를 조절하기 이전으로 복원시켜 메모리 디바이스(20)에 저장된 패턴을 읽어올 수 있다. 쓰기 마진 테스트 모듈(440)은 읽어온 제2 패턴과 저장 모듈(410)에 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 홀드 마진 실패 플래그를 출력할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴과 읽어온 제2 패턴의 각 비트를 비교하고, 상호 일치하지 않는 비트를 홀드 마진을 감소시킨 비트로 검출할 수 있다. 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 통해 검출된 홀드 마진을 감소시킨 데이터 정보를 쓰기 컨트롤러(430)에 전달할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 홀드 마진을 감소시킨 데이터 비트(예: DQ5)의 딜레이를 데이터 스트로브 클럭의 동기 에지를 기준으로 오른쪽으로 적어도 1 시간단위 이동(예: 쉬프트)시켜 쓰기 동작의 홀드 마진을 확보할 수 있다.According to one embodiment of the present invention, the write margin test module 440 may adjust the data strobe clock to the hold margin position and store the reference pattern in the memory device 20 when performing the write test. The write margin test module 440 may read the pattern stored in the memory device 20 by restoring the data strobe clock before adjusting the delay. The write margin test module 440 may check whether the read second pattern and the reference pattern stored in the storage module 410 coincide with each other and output a hold margin failure flag if they do not coincide with each other. The write margin test module 440 compares each bit of the reference pattern with the read second pattern, and detects non-coincident bits with a bit whose hold margin is reduced. The write margin test module 440 may transmit the data information to the write controller 430 in which the hold margin detected through the write test is reduced. According to one embodiment of the present invention, the write controller 430 shifts the delay of the data bit (e.g., DQ5) in which the hold margin is reduced by at least one hour unit shift ) So that the hold margin of the write operation can be secured.

본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 1회의 쓰기 테스트에 셋업 마진과 홀드 마진을 둘 다 확인할 수 있으며, 둘 중 하나만 확인할 수도 있다.According to an embodiment of the present invention, the write margin test module 440 can confirm both the setup margin and the hold margin in one write test, and only one of them can be confirmed.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)에 대한 읽기 동작 및 쓰기 동작이 없을 때 메모리 디바이스(20)에 대한 읽기 테스트를 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 주기적으로 읽기 동작 및 쓰기 동작이 있는지를 확인하고, 확인 결과 읽기 동작 및 쓰기 동작이 없는 경우에 읽기 테스트를 수행할 수 있다. 읽기 마진 테스트 모듈(460)은 읽기 동작 및 쓰기 동작이 발생하지 않는 프로세서의 특정 상태(예: 슬립 상태)일 때 읽기 테스트를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)도 특정 주기에서 메모리 디바이스(20)에 대한 동작(예: 읽기 동작 및 쓰기 동작)이 없을 때나, 프로세서의 특정 상태에 메모리 디바이스(20)에 대한 쓰기 테스트를 수행할 수 있다.According to one embodiment of the present invention, the read margin test module 460 may perform a read test on the memory device 20 when there is no read operation and no write operation to the memory device 20. For example, the read margin test module 460 may periodically check whether there is a read operation and a write operation, and perform a read test when there is no read operation or write operation as a result of the check. Read margin test module 460 may perform a read test when the processor is in a particular state (e.g., sleep state) where no read and write operations occur. In accordance with an embodiment of the present invention, the write margin test module 440 may also determine whether the memory device 20 (e. G., The memory device 20) ). ≪ / RTI >

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 각 테스트 진행 시 충돌이 발생하지 않도록 둘 중 하나가 우선순위를 가질 수 있다. 예를 들어, 메모리 컨트롤러(40)가 초기화 과정 등에 미리 기준 패턴을 메모리 디바이스(20)에 저장시킨 경우에 읽기 마진 테스트 모듈(460)이 우선순위를 가질 수 있다. 읽기 테스트는 기준 패턴이 쓰여진 이후에 가능하므로, 쓰기 마진 테스트 모듈(440)이 우선순위를 가질 수도 있다.According to an embodiment of the present invention, one of the read margin test module 460 and the write margin test module 440 may have a priority so that collision does not occur during each test progress. For example, the read margin test module 460 may have a priority when the memory controller 40 stores the reference pattern in the memory device 20 in advance in the initialization process and the like. Since the read test is possible after the reference pattern is written, the write margin test module 440 may have a priority.

본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 메모리 디바이스(20)의 초기화 이후에 임계시간이 경과한 후 또는 각 동작이 임계횟수 수행된 후에 읽기 테스트와 쓰기 테스트를 각기 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)의 초기화 시점에서 임계시간이 경과되거나, 또는 읽기 동작이 임계횟수 수행된 후에 읽기 테스트를 수행할 수 있다. 쓰기 마진 테스트 모듈(440)은 메모리 디바이스(20)의 초기화 시점에서 임계시간이 경과되거나, 쓰기 동작이 임계횟수 수행된 후에 쓰기 테스트를 수행할 수 있다. 본 발명의 일 실시예에서는 메모리 디바이스(20)를 사용함에 따라 SI 및 PI 영향이 발생하는 시점부터 읽기 테스트 및 쓰기 테스트를 수행함에 따라 효율적으로 테스트를 진행할 수 있다.According to one embodiment of the present invention, the read margin test module 460 and the write margin test module 440 read after the threshold time has elapsed since the initialization of the memory device 20, or after each operation has been performed a threshold number of times Test and write tests can be performed separately. For example, the read margin test module 460 may perform a read test after a threshold time has elapsed at the time of initialization of the memory device 20, or after a read operation has been performed a threshold number of times. The write margin test module 440 may perform a write test after the threshold time elapses at the time of initialization of the memory device 20 or after the write operation has been performed a threshold number of times. According to the embodiment of the present invention, since the memory device 20 is used, the test can be efficiently performed by performing the read test and the write test from the time when the influence of SI and PI occurs.

본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 각 쓰기 테스트에서 셋업 마진과 홀드 마진 확인을 위해 기준 패턴을 쓰기하는 주소는 상호 다를 수 있다. 본 발명의 다른 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 한 번의 쓰기 테스트 후에 기준 패턴을 지울(erase) 수 있다. 본 발명의 실시예에서는 쓰기 테스트 시에 이전 테스트에서 쓰여진 기준 패턴을 잘못 확인하여 잘못된 쓰기 테스트를 수행하는 것을 방지할 수 있다. According to an embodiment of the present invention, the writing margin test module 440 may have different addresses for writing the reference pattern for the setup margin and the hold margin in each writing test. According to another embodiment of the present invention, the write margin test module 440 may erase the reference pattern after one write test. In the embodiment of the present invention, it is possible to prevent the erroneous writing test from being performed by erroneously checking the reference pattern written in the previous test at the time of the writing test.

본 발명의 일 실시예 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 읽기 테스트와 쓰기 테스트에 각기 다른 기준 패턴을 사용할 수 있다. 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440) 중 적어도 하나는 각 테스트에 각기 다른 주소를 사용할 수 있다. 예를 들어, 쓰기 마진 테스트 모듈(440)는 메모리 디바이스(20)의 데이터가 저장되지 않은 다음 번 주소에 기준 패턴을 저장하여 쓰기 테스트를 수행할 수 있다.According to one embodiment of the present invention, the read margin test module 460 and the write margin test module 440 may use different reference patterns for the read test and the write test. At least one of the read margin test module 460 and the write margin test module 440 may use a different address for each test. For example, the write margin test module 440 may perform a write test by storing the reference pattern at the next address where the data of the memory device 20 is not stored.

본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 데이터 비트의 딜레이를 조절한 경우에 데이터 스트로브 클럭을 타이밍 마진의 중간 위치로 조절(centering)할 수 있다. 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 데이터 비트의 딜레이를 조절함에 따라 확보된 셋업 마진과 홀드 마진을 종합적으로 고려하여 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. 예를 들어, 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 셋업 마진을 확보하기 위해서 데이터 비트의 딜레이를 앞당긴 경우에는 앞당겨진 데이터 비트의 딜레이의 절반만큼 데이터 스트로브 클럭을 앞당길 수 있다. 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 홀드 마진을 확보하기 위해서 데이터 비트의 딜레이를 지연시킨 경우에는 지연된 데이터 비트의 딜레이의 절반만큼 데이터 스트로브 클럭을 지연시킬 수 있다. 만약, 데이터 비트의 딜레이가 홀수 시간단위만큼 조절된 경우에는 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 조절된 딜레이를 2로 나눈 몫만큼 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. According to an embodiment of the present invention, the read controller 450 and the write controller 430 may center the data strobe clock to the middle of the timing margin when the delay of the data bits is adjusted. The read controller 450 and the write controller 430 can adjust the delay of the data strobe clock in consideration of the set up margin and the hold margin, which are ensured by adjusting the delay of the data bits. For example, the read controller 450 and the write controller 430 can advance the data strobe clock by half of the delay of the preceding data bit if the delay of the data bit is advanced to secure the setup margin. The read controller 450 and the write controller 430 may delay the data strobe clock by half of the delay of the delayed data bit when the delay of the data bit is delayed in order to secure the hold margin. If the delay of the data bits is adjusted by an odd time unit, the read controller 450 and the write controller 430 can adjust the delay of the data strobe clock by a division of the adjusted delay by two.

본 발명의 다양한 실시예들은 메모리 디바이스의 보드 환경에서 메모리 디바이스의 사용 중에 PI 또는 SI 영향으로 인해 타이밍 마진이 줄었는지 여부를 확인할 수 있으며, 줄어든 타이밍 마진을 어느 정도 개선할 수 있다.Various embodiments of the present invention can identify whether the timing margin has been reduced due to PI or SI effects during use of the memory device in the board environment of the memory device and can improve the reduced timing margin to some extent.

도 7은 본 발명의 실시예에 따른 읽기 동작의 타이밍 마진 확보 방법을 도시한 흐름도이다.7 is a flowchart illustrating a method of securing a timing margin of a read operation according to an embodiment of the present invention.

도 7을 참조하면, 동작 710에서, 메모리 컨트롤러(40)는 기설정된 주기에 도래하였는지를 확인할 수 있다. 메모리 컨트롤러(40)는 기설정된 주기에 도래하면, 프로세서에 의해 지시된 동작(예: 읽기 동작 및 쓰기 동작)이 존재하는 경우에는 지시된 동작을 수행한 이후에 읽기 테스트를 수행할 수 있다. 또는 메모리 컨트롤러(40)는 지시된 동작을 읽기 테스트 완료시점까지 대기시킬 수 있다. 일 실시예에서, 메모리 컨트롤러(40)는 초기화 이후에 임계시간 경과 후 또는 임계 횟수의 읽기 동작의 진행 후에 기설정된 주기에 도래하였는지를 확인할 수도 있다.Referring to FIG. 7, at operation 710, the memory controller 40 may verify that it has arrived at a predetermined period. When the memory controller 40 arrives at a predetermined period, if there is an operation (e.g., a read operation and a write operation) instructed by the processor, the memory controller 40 can perform the read test after performing the indicated operation. Or the memory controller 40 can wait for the indicated operation until the completion of the read test. In one embodiment, the memory controller 40 may check whether a predetermined period of time has elapsed since the expiration of the threshold time after initialization or after a threshold number of read operations proceeded.

동작 715에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지가 셋업 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. In operation 715, the memory controller 40 may adjust the delay of the data strobe clock so that the synchronous edge of the data strobe clock occurs at the setup margin position.

동작 720에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소에 저장된 기준 패턴을 읽어올 수 있다. 일 실시예에서, 기준 패턴은 메모리 디바이스(20)의 초기화 과정에 저장될 수 있다. 다른 실시예에서, 기준 패턴은 데이터 스트로브 클럭의 딜레이를 조절하기 직전에 저장될 수 있다.In operation 720, the memory controller 40 may read the reference pattern stored in the first address of the memory device 20 from the memory device 20. [ In one embodiment, the reference pattern may be stored in the initialization process of the memory device 20. [ In another embodiment, the reference pattern may be stored just prior to adjusting the delay of the data strobe clock.

동작 725에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.At operation 725, the memory controller 40 may verify that the read pattern and the stored reference pattern match each other.

동작 730에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 비트를 셋업 마진을 감소시키는 비트로 검출할 수 있다.In operation 730, if the read pattern and the self-stored reference pattern do not coincide with each other, the memory controller 40 can detect bits that do not coincide with each other in a bit for reducing the setup margin.

동작 735에서, 메모리 컨트롤러(40)는 셋업 마진을 감소시키는 비트의 딜레이를 셋업 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 앞당겨 셋업 마진을 확보할 수 있다.In operation 735, the memory controller 40 may adjust the delay of the bit for decreasing the setup margin in the direction of increasing the setup margin. For example, the memory controller 40 may advance the delay of the detected data bits to secure a setup margin.

동작 740에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지가 홀드 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. In operation 740, the memory controller 40 may adjust the delay of the data strobe clock so that the synchronous edge of the data strobe clock occurs at the hold margin position.

동작 745에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소로부터 기준 패턴을 읽어올 수 있다.At operation 745, the memory controller 40 may read the reference pattern from the memory device 20 at a first address of the memory device 20.

동작 750에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.At operation 750, the memory controller 40 can verify that the read pattern matches the self-stored reference pattern.

동작 755에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 데이터 비트를 홀드 마진을 감소시키는 비트로 검출할 수 있다.In operation 755, if the read pattern and the self-stored reference pattern do not coincide with each other, the memory controller 40 can detect data bits that do not coincide with each other with a bit for decreasing the hold margin.

동작 760에서, 메모리 컨트롤러(40)는 검출된 비트의 딜레이를 홀드 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 지연시켜 홀드 마진을 확보할 수 있다.In operation 760, the memory controller 40 may adjust the delay of the detected bit in a direction to increase the hold margin. For example, the memory controller 40 can delay the delay of the detected data bits to secure a hold margin.

동작 765에서, 메모리 컨트롤러(40)는 읽기 테스트를 완료한 다음 데이터 스트로브 클럭의 딜레이를 타이밍 마진의 중심 위치로 센터링할 수 있다.At operation 765, the memory controller 40 may complete the read test and then center the delay of the data strobe clock to the center position of the timing margin.

도 7에서는 메모리 컨트롤러(40)가 읽기 동작의 셋업 마진을 테스트한 후에 읽기 동작의 홀드 마진을 테스트하는 경우를 예로 들어 설명하였다. 본 발명의 다른 실시예에서는 읽기 동작의 홀드 마진을 테스트한 이후에 읽기 동작의 셋업 마진을 테스트할 수도 있다.In FIG. 7, the memory controller 40 tests the setup margin of the read operation and then tests the hold margin of the read operation. In another embodiment of the present invention, the setup margin of the read operation may be tested after the hold margin of the read operation is tested.

도 7에서는 한 번의 읽기 테스트에서 셋업 마진과 홀드 마진을 동시에 테스트하는 경우를 예로 들어 설명하였다. 이와 달리, 본 발명의 다른 실시예에 따르면, 메모리 컨트롤러(40)는 한 번의 읽기 테스트에서 셋업 마진과 홀드 마진을 교대로 테스트할 수도 있다. 예를 들어, 메모리 컨트롤러(40)는 홀수 주기에는 읽기 동작의 셋업 마진을 테스트하고, 짝수 주기에는 읽기 동작의 홀드 마진을 테스트할 수 있다. In FIG. 7, the case where the setup margin and the hold margin are simultaneously tested in one read test is described as an example. Alternatively, in accordance with another embodiment of the present invention, the memory controller 40 may alternately test the setup margin and the hold margin in one read test. For example, the memory controller 40 may test the setup margin of the read operation in an odd period and the hold margin of the read operation in an even period.

도 8은 본 발명의 실시예에 따른 쓰기 동작의 타이밍 마진 확보 방법을 도시한 흐름도이다.8 is a flowchart illustrating a method of securing a timing margin of a write operation according to an embodiment of the present invention.

도 8을 참조하면, 동작 810에서, 메모리 컨트롤러(40)는 기설정된 주기에 도래하였는지를 확인할 수 있다. 일 실시예에서, 메모리 컨트롤러(40)는 기설정된 주기이면, 프로세서에 의해 지시된 동작(예: 읽기 동작 및 쓰기 동작)이 존재하는지를 확인할 수 있다. 메모리 컨트롤러(40)는 읽기 동작 및 쓰기 동작이 지시된 경우에는 지시된 동작을 수행한 이후에 쓰기 테스트를 수행할 수 있다. 메모리 컨트롤러(40)는 읽기 동작 및 쓰기 동작이 지시된 경우에는 지시된 동작을 쓰기 테스트의 수행완료시점까지 대기시킬 수 있다.Referring to FIG. 8, at operation 810, the memory controller 40 may verify that it has arrived at a predetermined period. In one embodiment, the memory controller 40 can check if there is an operation (e.g., a read operation and a write operation) indicated by the processor if the predetermined period is a predetermined period. The memory controller 40 may perform a write test after performing the indicated operation when the read operation and the write operation are instructed. The memory controller 40 can wait for the indicated operation until the completion of the write test when the read operation and the write operation are instructed.

동작 815에서, 메모리 컨트롤러(40)는 쓰기 셋업 마진을 테스트하기 위해서 데이터 스트로브 클럭의 동기 에지가 셋업 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.At operation 815, the memory controller 40 may adjust the delay of the data strobe clock so that the synchronous edge of the data strobe clock occurs at the setup margin position to test the write setup margin.

동작 820에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소에 기준 패턴을 쓰기할 수 있다. 일 실시예에서, 제1 주소는 고정 주소일 수 있으며, 가변 주소일 수 있다. 예를 들어, 제1 주소는 메모리 디바이스(20)의 데이터가 저장되지 않은 영역의 첫 번째 주소일 수 있다.At operation 820, the memory controller 40 may write a reference pattern from the memory device 20 to the first address of the memory device 20. In one embodiment, the first address may be a fixed address and may be a variable address. For example, the first address may be the first address of an area where the data of the memory device 20 is not stored.

동작 825에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭을 이전 위치로 복원시키고, 읽기 동작을 수행하여 메모리 디바이스(20)의 제1 주소로부터 기준 패턴을 읽어올 수 있다. 예를 들어, 메모리 컨트롤러(40)는 동작 815에서 조절된 딜레이에 반대되도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.At operation 825, the memory controller 40 may restore the data strobe clock to a previous location and perform a read operation to read the reference pattern from the first address of the memory device 20. [ For example, the memory controller 40 may adjust the delay of the data strobe clock to be opposite to the delay adjusted at operation 815. [

동작 830에서, 메모리 컨트롤러(40)는 읽어온 패턴과 내부 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인할 수 있다.In operation 830, the memory controller 40 can check whether the bits of the read pattern and the internally stored reference pattern coincide with each other.

동작 835에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 두 패턴의 각 비트 중에서 상호 일치하지 않는 비트를 셋업 마진을 감소시키는 비트로 검출할 수 있다.In operation 835, if the read pattern and the self-stored reference pattern do not coincide with each other, the memory controller 40 can detect bits that do not coincide with each other among the bits of the two patterns, with a bit for decreasing the setup margin.

동작 840에서, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 셋업 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 앞당겨 셋업 마진을 확보할 수 있다.In operation 840, the memory controller 40 may adjust the delay of the detected data bits in the direction of increasing the setup margin. For example, the memory controller 40 may advance the delay of the detected data bits to secure a setup margin.

동작 845에서, 메모리 컨트롤러(40)는 쓰기 홀드 마진을 테스트하기 위해서 데이터 스트로브 클럭의 동기 에지가 홀드 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.In operation 845, the memory controller 40 may adjust the delay of the data strobe clock such that the synchronous edge of the data strobe clock occurs at the hold margin position to test the write-hold margin.

동작 850에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제2 주소에 저장된 기준 패턴을 쓰기할 수 있다. 일 실시예에서, 제2 주소는 고정 주소일 수 있으며, 가변 주소일 수 있다. 예를 들어, 제2 주소는 메모리 디바이스(20)의 데이터가 저장되지 않은 영역의 첫 번째 주소일 수 있다.At operation 850, the memory controller 40 may write the reference pattern stored at the second address of the memory device 20 from the memory device 20. [ In one embodiment, the second address may be a fixed address and may be a variable address. For example, the second address may be the first address of an area where the data of the memory device 20 is not stored.

동작 855에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭을 원래 위치로 복원시키고, 메모리 디바이스(20)의 제2 주소로부터 기준 패턴을 읽어올 수 있다. 일 실시예에서, 메모리 컨트롤러(40)는 동작 845에서 조절된 딜레이에 반대되도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.In operation 855, the memory controller 40 may restore the data strobe clock to its original location and read the reference pattern from the second address of the memory device 20. [ In one embodiment, memory controller 40 may adjust the delay of the data strobe clock to be opposite to the delay adjusted at operation 845. [

동작 860에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.In operation 860, the memory controller 40 can verify whether the read pattern matches the self-stored reference pattern.

동작 865에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 데이터 비트를 검출할 수 있다.In operation 865, the memory controller 40 can detect data bits that do not coincide if the read pattern and the self-stored reference pattern do not coincide with each other.

동작 870에서, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 홀드 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 지연시켜 홀드 마진을 확보할 수 있다.In operation 870, the memory controller 40 may adjust the delay of the detected data bits in the direction of increasing the hold margin. For example, the memory controller 40 can delay the delay of the detected data bits to secure a hold margin.

동작 875에서, 메모리 컨트롤러(40)는 동작 840 및 동작 870 중 적어도 하나를 통해서 조정된 데이터 스트로브 클럭을 센터링할 수 있다.In operation 875, the memory controller 40 may center the adjusted data strobe clock through at least one of operations 840 and 870.

도 8에서는 메모리 컨트롤러(40)가 쓰기 동작의 셋업 마진을 테스트한 후에 쓰기 동작의 홀드 마진을 테스트하는 경우를 예로 들어 설명하였다. 본 발명의 다른 실시예에서는 쓰기 동작의 홀드 마진을 테스트한 이후에 쓰기 동작의 셋업 마진을 테스트할 수도 있다.In FIG. 8, the case where the memory controller 40 tests the setup margin of the write operation and then tests the hold margin of the write operation has been described as an example. In another embodiment of the present invention, the setup margin of the write operation may be tested after testing the hold margin of the write operation.

도 8에서는 한 번의 쓰기 테스트에서 셋업 마진과 홀드 마진을 동시에 테스트하는 경우를 예로 들어 설명하였다. 이와 달리, 본 발명의 다른 실시예에 따르면, 메모리 컨트롤러(40)는 한 번의 쓰기 테스트에서 셋업 마진과 홀드 마진을 교대로 테스트할 수도 있다. 예를 들어, 메모리 컨트롤러(40)는 홀수 주기에는 쓰기 동작의 셋업 마진을 테스트하고, 짝수 주기에는 쓰기 동작의 홀드 마진을 테스트할 수 있다.In FIG. 8, the setup margin and the hold margin are simultaneously tested in one write test. Alternatively, according to another embodiment of the present invention, the memory controller 40 may alternately test the setup margin and the hold margin in a single write test. For example, the memory controller 40 may test the setup margin of the write operation in the odd period and the hold margin of the write operation in the even period.

본 발명의 일 실시예에서, 메모리 컨트롤러(40)는 한 번의 쓰기 테스트에서 셋업 마진과 홀드 마진의 확인을 위해 기준 패턴을 쓰는 주소는 각기 다를 수 있다. 본 발명의 실시예에서는 셋업 마진과 홀드 마진의 확인 시에 이전 테스트 과정에서 쓰여진 기준 패턴을 잘못 확인하여 쓰기 테스트를 잘못 수행하는 것을 방지할 수 있다. 본 발명의 다른 실시예에서, 한 번의 쓰기 테스트 후에 기준 패턴은 지워질(erase) 수 있다.In one embodiment of the present invention, the address at which the memory controller 40 writes the reference pattern for verification of the setup margin and the hold margin in one write test may be different. In the embodiment of the present invention, it is possible to prevent the erroneous execution of the write test by erroneously checking the reference pattern written in the previous test process at the time of confirming the setup margin and the hold margin. In another embodiment of the present invention, after one write test, the reference pattern may be erased.

본 발명의 일 실시예에서, 메모리 컨트롤러(40)는 읽기 테스트와 쓰기 테스트에 각기 다른 기준 패턴을 사용할 수 있다. 메모리 컨트롤러(40)는 읽기 테스트와 쓰기 테스트에 각기 다른 주소를 사용할 수 있다.In an embodiment of the present invention, the memory controller 40 may use different reference patterns for the read test and the write test. The memory controller 40 can use different addresses for the read test and the write test.

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. As used herein, the term "module " includes units comprised of hardware, software, or firmware and may be used interchangeably with terms such as, for example, logic, logic blocks, components, or circuits. A "module" may be an integrally constructed component or a minimum unit or part thereof that performs one or more functions. "Module" may be implemented either mechanically or electronically, for example, by application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs) And may include programmable logic devices.

다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. At least some of the devices (e.g., modules or functions thereof) or methods (e.g., operations) according to various embodiments may be implemented with instructions stored in a computer-readable storage medium in the form of program modules. When the instruction is executed by the processor, the processor may perform a function corresponding to the instruction. The computer-readable recording medium may be a hard disk, a floppy disk, a magnetic medium such as a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, a magnetic-optical medium such as a floppy disk, The instructions may include code that is generated by the compiler or code that may be executed by the interpreter. Modules or program modules according to various embodiments may include at least one or more of the components described above Some of which may be omitted, or may further include other components.

다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. 그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 문서에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 문서의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.Operations performed by modules, program modules, or other components, in accordance with various embodiments, may be performed sequentially, in parallel, repetitively, or heuristically, or at least some operations may be performed in a different order, . And the embodiments disclosed in this document are presented for the purpose of explanation and understanding of the disclosed technology and do not limit the scope of the technology described in this document. Accordingly, the scope of this document should be interpreted to include all modifications based on the technical idea of this document or various other embodiments.

Claims (20)

메모리 디바이스; 및
데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 상기 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하고, 복수의 데이터 비트 중에서 셋업 마진(setup margin) 및 홀드 마진(hold margin) 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하고, 감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 메모리 컨트롤러;
를 포함하는 메모리 시스템.
A memory device; And
Wherein the control circuit controls at least one of a read test and a write test for the memory device and controls at least one of a setup margin and a hold margin among a plurality of data bits, A memory controller that detects at least one data bit that reduces the margin of the at least one bit and adjusts the delay of the at least one bit to increase the at least one marginal decrease;
≪ / RTI >
제1항에서, 상기 메모리 컨트롤러는,
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하고, 상기 복수의 데이터 비트 중에서 상기 셋업 마진을 감소시키는 상기 적어도 하나의 비트를 검출하는 것인 메모리 시스템.
The memory controller according to claim 1,
Adjust the data strobe clock to a designated set-up margin position to perform the read test or the write test, and detect the at least one bit to reduce the setup margin from the plurality of data bits.
제1항에서, 상기 메모리 컨트롤러는,
상기 데이터 스트로브 클럭을 지정된 홀드 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하고, 상기 복수의 데이터 비트 중에서 상기 홀드 마진을 감소시키는 상기 적어도 하나의 비트를 검출하는 것인 메모리 시스템.
The memory controller according to claim 1,
Wherein the data strobe clock is adjusted to a specified hold margin position to perform the read test or the write test and the at least one bit to reduce the hold margin from the plurality of data bits.
제1항에서, 상기 메모리 컨트롤러는,
상기 읽기 테스트를 수행할 때 내부 메모리에 저장된 기준 패턴을 상기 메모리 디바이스에 저장시키고, 상기 메모리 디바이스로부터 기준 패턴을 읽어와 상기 내부 메모리의 기준 패턴과 비교하며, 비교 결과 읽어온 상기 기준 패턴과 상기 저장된 기준 패턴의 각 비트에서 일치하지 않는 비트를 상기 적어도 하나의 비트로 결정하는 것인 메모리 시스템.
The memory controller according to claim 1,
A reference pattern stored in an internal memory is stored in the memory device when the read test is performed, a reference pattern is read from the memory device and is compared with a reference pattern of the internal memory, And determines a bit that does not match in each bit of the reference pattern as the at least one bit.
제4항에서, 상기 메모리 컨트롤러는,
상기 데이터 스트로브 클럭의 딜레이를 조절하기 전에 상기 내부 메모리의 기준 패턴을 상기 메모리 디바이스에 저장시키고, 상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스로부터 기준 패턴을 읽어오는 것인 메모리 시스템.
The memory controller according to claim 4,
Storing a reference pattern of the internal memory in the memory device before adjusting the delay of the data strobe clock, adjusting the data strobe clock to a specified setup margin position or a designated hold margin position, and then reading the reference pattern from the memory device .
제1항에서, 상기 메모리 컨트롤러는,
상기 쓰기 테스트를 수행할 때 내부 메모리의 기준 패턴을 상기 메모리 디바이스에 쓰기(write)하고, 상기 메모리 디바이스에 저장된 기준 패턴을 읽어와 상기 내부 메모리의 기준 패턴과 비교하고, 두 패턴의 각 비트에서 상호 일치하지 않는 비트를 상기 적어도 하나의 비트로 결정하는 것인 메모리 시스템.
The memory controller according to claim 1,
Wherein the reference pattern of the internal memory is written to the memory device when the write test is performed, the reference pattern stored in the memory device is read and compared with the reference pattern of the internal memory, And determines the mismatched bit as the at least one bit.
제6항에서, 상기 메모리 컨트롤러는,
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스에 상기 기준 패턴을 쓰기(wirte)하고, 상기 데이터 스트로브 클럭을 상기 셋업 마진 위치 또는 상기 홀드 마진 위치를 조절하기 이전 상태로 복원하여 상기 메모리 디바이스에 저장된 기준 패턴을 읽어오는 것인 메모리 시스템.
The memory controller according to claim 6,
The data strobe clock is wired to the memory device after the data strobe clock is adjusted to a specified setup margin position or a designated hold margin position and the data strobe clock is adjusted before the setup margin position or the hold margin position is adjusted And reads the reference pattern stored in the memory device.
제1항에서, 상기 메모리 컨트롤러는,
상기 메모리 디바이스의 초기화 이후에 상기 메모리 디바이스에 대한 읽기 동작과 쓰기 동작이 수행되지 않을 때 상기 읽기 테스트 및 쓰기 테스트 중 적어도 하나를 수행하는 것인 메모리 시스템.
The memory controller according to claim 1,
And performs at least one of the read test and the write test when a read operation and a write operation to the memory device are not performed after initialization of the memory device.
제8항에서, 상기 메모리 컨트롤러는,
제1 임계횟수 이상의 읽기 동작 또는 제2 임계횟수 이상의 쓰기 동작의 수행 후에 상기 읽기 테스트 및 쓰기 테스트 중 적어도 하나를 수행하는 것인 메모리 시스템.
The memory controller according to claim 8,
And performs at least one of the read test and the write test after a read operation of a first threshold number of times or more or a write operation of a second threshold number of times or more.
제1항에서, 상기 메모리 컨트롤러는,
상기 적어도 하나의 비트의 딜레이가 조절되면, 상기 데이터 스트로브 클럭의 딜레이를 조절하여 상기 데이터 스트로브 클럭을 데이터 마진의 중간에 위치시키는 것인 메모리 시스템.
The memory controller according to claim 1,
And adjusts the delay of the data strobe clock to place the data strobe clock in the middle of a data margin when the delay of the at least one bit is adjusted.
적어도 하나의 프로세서에 의한 메모리 제어 방법으로서,
데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하는 동작;
복수의 데이터 비트 중에서 셋업 마진 및 홀드 마진 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하는 동작; 및
감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 동작
를 포함하는 메모리 제어 방법.
A memory control method by at least one processor,
Adjusting a delay of a data strobe clock and performing at least one of a read test and a write test for the memory device;
Detecting at least one data bit that reduces at least one of a setup margin and a hold margin among the plurality of data bits; And
Adjusting the delay of said at least one bit to increase said at least one margin reduced
≪ / RTI >
제11항에서, 상기 수행하는 동작은,
상기 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하는 동작;
상기 데이터 스트로브 클럭의 동기 에지를 지정된 홀드 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하는 동작
를 포함하는 것인 메모리 제어 방법.
12. The method of claim 11,
Adjusting the sync edge of the data strobe clock to a designated setup margin position to perform the read test or the write test;
Adjusting the sync edge of the data strobe clock to a designated hold margin position to perform the read test or the write test
/ RTI >
제11항에서, 상기 읽기 테스트를 수행하는 동작은,
상기 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치 또는 홀드 마진 위치로 조절하여 상기 메모리 디바이스로부터 상기 메모리 디바이스의 제1 주소에 저장된 패턴을 읽어오는 동작
을 포함하는 것인 메모리 제어 방법.
12. The method of claim 11, wherein the act of performing the read test comprises:
An operation of reading the pattern stored in the first address of the memory device from the memory device by adjusting the synchronous edge of the data strobe clock to a designated setup margin position or a hold margin position
/ RTI >
제13항에서, 상기 읽기 테스트를 수행하는 동작은,
상기 데이터 스트로브 클럭의 딜레이를 조절하기 전에 상기 적어도 하나의 프로세서의 내부 메모리에 저장된 기준 패턴을 상기 메모리 디바이스의 상기 제1 주소에 저장시키는 동작을 포함하는 것인 메모리 제어 방법.
14. The method of claim 13, wherein the act of performing the read test comprises:
Storing the reference pattern stored in the internal memory of the at least one processor at the first address of the memory device before adjusting the delay of the data strobe clock.
제11항에서, 상기 쓰기 테스트를 수행하는 동작은,
상기 데이터 스트로브 클럭의 딜레이를 조절하여 상기 메모리 디바이스의 제1 주소에 상기 프로세서의 기준 패턴을 쓰는(write) 동작; 및
상기 메모리 디바이스로부터 상기 제1 주소에 저장된 기준 패턴을 읽어오는 동작
을 포함하는 것인 메모리 제어 방법.
12. The method of claim 11, wherein the act of performing the write test comprises:
Writing the reference pattern of the processor to a first address of the memory device by adjusting a delay of the data strobe clock; And
Reading the reference pattern stored in the first address from the memory device
/ RTI >
제15항에서, 상기 쓰는 동작은,
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스에 상기 기준 패턴을 쓰기(wirte)하는 동작을 포함하는 것인 메모리 제어 방법.
16. The method of claim 15,
And adjusting the data strobe clock to a specified setup margin position or a specified hold margin position and then writing (wirte) the reference pattern to the memory device.
제16항에서, 상기 읽어오는 동작은,
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치를 조절하기 이전 상태로 복원하여 상기 메모리 디바이스로부터 기준 패턴을 읽어오는 것인 메모리 제어 방법.
17. The method of claim 16,
And restores the data strobe clock to a state prior to the adjustment of the specified setup margin position or the specified hold margin position, thereby reading the reference pattern from the memory device.
제11항에서, 상기 검출하는 동작은,
상기 쓰기 테스트 또는 읽기 테스트를 통해 상기 메모리 디바이스에서 읽어온 상기 기준 패턴과 내부 저장된 기준 패턴과 비교하는 동작; 및 비교 결과 두 패턴에서 상호 일치하지 않는 비트를 상기 적어도 하나의 비트로 검출하는 동작을 포함하는 것인 메모리 제어 방법.
12. The method of claim 11,
Comparing the reference pattern read from the memory device with an internally stored reference pattern through the write test or the read test; And detecting, as the comparison, a bit that does not coincide in the two patterns with the at least one bit.
제11항에서, 상기 수행하는 동작은,
상기 메모리 디바이스의 초기화 이후에 제1 임계횟수 이상의 읽기 동작 또는 제2 임계횟수 이상의 쓰기 동작이 수행된 경우 중 적어도 하나에 수행되는 것인 메모리 제어 방법.
12. The method of claim 11,
Wherein at least one of a read operation of a first threshold number or more or a write operation of a second threshold number or more is performed after initialization of the memory device.
셋업 마진 및 홀드 마진을 저장하는 저장부; 및
데이터 스트로브 클럭의 딜레이(delay)를 조절하며, 메모리 디바이스에 대한 읽기 테스트와 쓰기 테스트 중 적어도 하나를 수행하고, 복수의 데이터 비트 중에서 상기 셋업 마진 및 상기 홀드 마진 중 적어도 하나의 마진을 감소시키는 적어도 하나의 데이터 비트를 검출하고, 감소된 상기 적어도 하나의 마진을 증가시키도록 상기 적어도 하나의 비트의 딜레이를 조절하는 프로세서
를 포함하는 메모리 컨트롤러.
A storage unit for storing a setup margin and a hold margin; And
At least one of a read test and a write test for the memory device is performed, and at least one of the plurality of data bits, which reduces the margin of at least one of the setup margin and the hold margin, A processor for adjusting the delay of the at least one bit to detect a data bit of the at least one bit,
.
KR1020160116117A 2016-09-09 2016-09-09 Memory System and Memory Control Method KR20180028613A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160116117A KR20180028613A (en) 2016-09-09 2016-09-09 Memory System and Memory Control Method
US15/648,909 US10388402B2 (en) 2016-09-09 2017-07-13 Memory system and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160116117A KR20180028613A (en) 2016-09-09 2016-09-09 Memory System and Memory Control Method

Publications (1)

Publication Number Publication Date
KR20180028613A true KR20180028613A (en) 2018-03-19

Family

ID=61559146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160116117A KR20180028613A (en) 2016-09-09 2016-09-09 Memory System and Memory Control Method

Country Status (2)

Country Link
US (1) US10388402B2 (en)
KR (1) KR20180028613A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088702A (en) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 Semiconductor device and semiconductor system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110660445B (en) * 2018-06-29 2021-07-30 华邦电子股份有限公司 Method for repairing outlier and memory device
KR20200055267A (en) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 Memory system and test system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466491B2 (en) * 2000-05-19 2002-10-15 Fujitsu Limited Memory system and memory controller with reliable data latch operation
KR100382736B1 (en) * 2001-03-09 2003-05-09 삼성전자주식회사 Semiconductor memory device having different data rates in read operation and write operation
US6918048B2 (en) * 2001-06-28 2005-07-12 Intel Corporation System and method for delaying a strobe signal based on a slave delay base and a master delay adjustment
JP4795032B2 (en) * 2006-01-30 2011-10-19 エルピーダメモリ株式会社 Timing adjustment circuit and semiconductor device
KR20090026939A (en) * 2007-09-11 2009-03-16 삼성전자주식회사 Apparatus and method for controlling data strobe signal
US20140181429A1 (en) * 2012-12-26 2014-06-26 Nvidia Corporation Multi-dimensional hardware data training between memory controller and memory
US8902693B2 (en) * 2013-04-25 2014-12-02 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for per-bit de-skew for datamask in a double data-rate memory device interface
US9568542B2 (en) * 2013-09-25 2017-02-14 Cavium, Inc. Memory interface with integrated tester
US9437326B2 (en) 2014-06-12 2016-09-06 Freescale Semiconductor, Inc. Margin tool for double data rate memory systems
US9209961B1 (en) * 2014-09-29 2015-12-08 Apple Inc. Method and apparatus for delay compensation in data transmission

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088702A (en) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 Semiconductor device and semiconductor system

Also Published As

Publication number Publication date
US20180075928A1 (en) 2018-03-15
US10388402B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
US10482936B2 (en) Signal training for prevention of metastability due to clocking indeterminacy
KR100942953B1 (en) Data transmission circuit and semiconductor memory device including the same
EP3625800B1 (en) Systems and methods for frequency mode detection and implementation
US10482946B2 (en) Management of strobe/clock phase tolerances during extended write preambles
US7808849B2 (en) Read leveling of memory units designed to receive access requests in a sequential chained topology
CN101446841B (en) Method for confirming memory controller clock calibration value and system thereof
CN108874686B (en) Memory parameter adjusting method, device and equipment
KR102130494B1 (en) Memory device, memory system and operation method for memory device
US7796465B2 (en) Write leveling of memory units designed to receive access requests in a sequential chained topology
KR20180028613A (en) Memory System and Memory Control Method
KR20120113478A (en) Method for testing semiconductor memory device
KR20090071893A (en) Data input circuit of semiconductor memory apparatus and control method of the same
KR20160121270A (en) Semiconductor apparatus and test method thereof
JP2005310345A (en) Device and method for inputting data of ddrsdram
KR102115457B1 (en) Semiconductor device and semiconductor system with the same
KR20180050816A (en) Semiconductor device and system including the same
US9362005B2 (en) Semiconductor device for parallel bit test and test method thereof
US10019170B2 (en) Controlling timing and edge transition of a delayed clock signal and data latching methods using such a delayed clock signal
KR20130119170A (en) Pipe register circuit and semiconductor memory apparatus comprising the same
KR101034036B1 (en) Semiconductor memory test board, semiconductor memory test system including the same and method of testing a semiconductor memory
US8677053B2 (en) Nonvolatile memory device and method for operating the same
KR100911199B1 (en) Circuit for Controlling Precharge in Semiconductor Memory Apparatus
US9601184B2 (en) Semiconductor memory and method for operating the same
KR100792367B1 (en) Semiconductor memory device
TWI556252B (en) Memory test system and method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application
E801 Decision on dismissal of amendment
X701 Decision to grant (after re-examination)