KR20180028613A - Memory System and Memory Control Method - Google Patents
Memory System and Memory Control Method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012360 testing method Methods 0.000 claims abstract description 181
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2832—Specific tests of electronic circuits not provided for elsewhere
- G01R31/2834—Automated test systems [ATE]; using microprocessors or computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/023—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56012—Timing aspects, clock generation, synchronisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/229—Timing 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
Description
본 발명의 실시예는 메모리 시스템 및 메모리 제어 방법에 관한 것이다.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
본 발명의 일 실시예에 따르면, 메모리 디바이스(20)는 메모리 컨트롤러(40)의 제어에 따라 데이터를 저장할 수 있다. 예를 들어, 메모리 디바이스(20)는 DDR(Double Data Rate) 메모리, Flash 메모리, SSD(Single Data Rate) 메모리, 하드디스크(hard disk) 등 다양한 메모리 장치일 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 메모리 디바이스(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
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(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
도 2 또는 도 3을 참조하면, 본 발명의 일 실시예에 따른 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지에 동기를 맞추어 메모리 디바이스(20)의 특정 주소를 지정하여 복수의 데이터 비트를 쓰거나, 메모리 디바이스(20)로부터 복수의 데이터 비트를 읽을 수 있다. 예를 들어, 동기 에지는 상승 에지(rising edge) 및 하강 에지(falling edge) 중 적어도 하나일 수 있다. 2 or 3, the
도 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
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 읽기 테스트를 수행할 때 데이터 스트로브 클럭의 딜레이를 셋업 마진 또는 홀드 마진 위치로 조절한 후 메모리 디바이스(20)에 저장된 기준 패턴(또는 기준 데이터)을 읽어올 수 있다. 예를 들어, 메모리 디바이스(20)에 저장된 기준 패턴은 메모리 컨트롤러(40)가 데이터 스트로브 클럭의 딜레이를 조절하기 전 또는 읽기 테스트를 수행하기 전에 내부 메모리에 저장된 기준 패턴을 메모리 디바이스(20)에 쓰여진 패턴일 수 있다. 메모리 컨트롤러(40)는 읽어온 기준 패턴과 내부 저장된 기준 패턴을 비교하여 상호 일치하는지를 확인하고, 일치하지 않는 비트를 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트로 결정할 수 있다. 일 실시예에서, 기준 패턴은 복수의 동기 에지에서 복수의 데이터 비트를 상태 천이할 수 있는 데이터일 수 있다. 예를 들어, 복수의 데이터 비트가 8비트일 경우에 기준 패턴의 각 비트는 01010101과 10101010일 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 쓰기 테스트를 수행할 때 데이터 스트로브 클럭의 딜레이를 셋업 마진 또는 홀드 마진 위치로 조절한 후 내부 메모리에 저장된 기준 패턴을 메모리 디바이스(20)에 쓰기(write)할 수 있다. 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 딜레이를 위치 조절 전으로 복원시킨 후 메모리 디바이스(20)에 쓰여진 패턴을 읽어올 수 있다. 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 읽어온 패턴과 내부 메모리의 기준 패턴과 비교함에 따라 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트를 검출할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 내부 메모리의 기준 패턴과 읽어온 패턴이 상호 일치하지 않는 경우, 두 패턴의 비트 중 일치하지 않는 비트를 셋업 마진 또는 홀드 마진을 감소시키는 데이터 비트로 결정할 수 있다.According to an embodiment of the present invention, when performing a write test, the
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 과정에서 데이터 스트로브 클럭을 기준으로 복수의 데이터 비트의 딜레이를 각기 조절하면서, 읽기 동작(또는 읽기 테스트) 또는 쓰기 동작(또는 쓰기 테스트)을 수행하여 각 데이터 비트에 대해 설정 가능한 모든 딜레이 중에서 타이밍 마진이 가장 크게 확보되는 딜레이를 설정할 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 초기화된 메모리 디바이스(20)의 사용 중에 메모리 디바이스(20)에 대한 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 주기적으로 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 메모리 컨트롤러(40)는 읽기 테스트 또는 쓰기 테스트의 수행 중에 프로세서로부터 읽기 동작 또는 쓰기 동작이 지시되면, 지시된 동작을 잠시 대기시킬 수 있다. 메모리 컨트롤러(40)는 읽기 테스트 또는 쓰기 테스트를 수행 완료한 다음에 대기시킨 동작을 수행할 수 있다. According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 이후 임계시간이 경과한 후에 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 임계시간은 메모리 디바이스(20)의 초기화 이후에 시간 지연 등에 의해서 PI 및 SI 영향이 발생하는 시점을 이용하여 결정될 수 있다. 메모리 컨트롤러(40)는 메모리 디바이스(20)의 초기화 이후에 읽기 동작 및 쓰기 동작 중 적어도 하나가 지정된 임계횟수 이상 수행된 이후에 읽기 테스트와 쓰기 테스트를 수행할 수 있다. 예를 들어, 임계횟수는 메모리 디바이스(20)의 초기화 이후에 동작 반복 등에 의해서 PI 및 SI 영향이 발생하는 동작횟수를 이용하여 결정될 수 있다.According to one embodiment of the present invention, the
본 발명의 다양한 실시예들은 타이밍 마진을 축소한 원인이 되는 데이터 비트의 딜레이를 조절할 수 있어, 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
본 발명의 일 실시예에 따르면, 저장 모듈(410)은 읽기 및 쓰기 테스트에 사용되는 테스트 정보를 저장할 수 있다. 예를 들어, 테스트 정보는 기준 패턴, 셋업 마진 위치, 홀드 마진 위치, 각 테스트에 사용되는 메모리 디바스의 주소 등을 포함할 수 있다. 일 실시예에서, 기준 패턴은 복수의 데이터 비트의 타이밍 마진 확인을 위한 데이터로서, 복수의 동작 주기에 상태천이되는 데이터일 수 있다. 예를 들어, 복수의 데이터가 8비트일 경우에 기준 패턴은 첫 번째 데이터의 각 비트가 01010101이고 두 번째 데이터의 각 비트가 10101010인 데이터일 수 있다. 본 발명의 일 실시예에 따르면, 저장 모듈(410)은 메모리 컨트롤러(40)의 내장 메모리일 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 트레이닝 모듈(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
본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)는 프로세서의 지시에 따라 메모리 디바이스(20)에 대한 읽기 동작을 수행할 수 있다. 쓰기 컨트롤러(430)는 프로세서의 지시에 따라 메모리 디바이스(20)에 대한 읽기 동작을 수행할 수 있다. According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)는 복수의 데이터 비트의 읽기 동작의 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 읽기 컨트롤러(450)는 트레이닝 모듈(420) 및 읽기 마진 테스트 모듈(460) 중 적어도 하나의 요청에 따라 복수의 데이터 비트의 읽기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 복수의 데이터 비트의 쓰기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 쓰기 컨트롤러(430)는 트레이닝 모듈(420) 및 쓰기 마진 테스트 모듈(440) 중 적어도 하나의 요청에 따라 복수의 데이터 비트의 쓰기 동작에 대한 인터페이스 딜레이를 조절할 수 있다. 예를 들어, 각 인터페이스 딜레이는 지정된 시간단위(예컨대, 1ms)로 앞당겨지나, 지연될 수 있다. 예를 들어, 지정된 시간단위는 데이터 스트로브 클럭의 1/n배수일 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)의 읽기 동작의 타이밍 마진을 확인하기 위한 읽기 테스트를 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 데이터 스트로브 클럭의 딜레이를 지정된 셋업 마진 위치 또는 홀드 마진 위치로 조절하며, 메모리 디바이스(20)에 대한 읽기 테스트를 수행할 수 있다. 읽기 마진 테스트 모듈(460)은 읽기 테스트 결과 셋업 마진 또는 홀드 마진을 감소시킨 비트를 검출할 수 있다.According to one embodiment of the present invention, the read
도 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
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(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
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 읽기 동작의 셋업 마진 또는 홀드 마진을 감소시킨 데이터 비트에 대한 딜레이가 조절되면, 다시 읽기 테스트를 수행하여 셋업 마진 또는 홀드 마진이 확보되었는지를 확인할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 딜레이가 조절된 후 바로 이어서 읽기 테스트를 수행할 수 있다. 본 발명의 다른 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 다음 읽기 테스트를 통해서 읽기 동작의 셋업 마진 또는 홀드 마진이 증가되었는지를 확인할 수도 있다. According to one embodiment of the present invention, the read
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 1회의 읽기 테스트에 셋업 마진과 홀드 마진을 둘 다 확인할 수 있으며, 둘 중 하나만 확인할 수도 있다.According to an embodiment of the present invention, the read
본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 수행할 때 데이터 스트로브 클럭을 셋업 마진 위치로 조절하고, 메모리 디바이스(20)에 기준 패턴을 쓰기할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴을 쓰기한 후 데이터 스트로브 클럭을 원래 위치로 복원시켜 메모리 디바이스(20)로부터 메모리 디바이스(20)에 저장된 패턴을 읽어올 수 있다. 쓰기 마진 테스트 모듈(440)은 읽어온 제2 패턴과 저장 모듈(410)에 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 셋업 마진 실패 플래그를 출력할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴과 읽어온 패턴의 각 비트를 비교하고, 상호 일치하지 않는 비트를 셋업 마진을 감소시킨 비트로 검출할 수 있다. 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 통해 검출된 셋업 마진을 감소시킨 데이터 비트 정보를 쓰기 컨트롤러(430)에 전달할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 셋업 마진을 감소시킨 데이터 비트(예: DQ5)의 딜레이를 데이터 스트로브 클럭을 기준으로 왼쪽으로 적어도 1 시간단위 쉬프트하여 쓰기 동작의 셋업 마진을 확보할 수 있다.According to one embodiment of the present invention, the write
본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 수행할 때 데이터 스트로브 클럭을 홀드 마진 위치로 조절하고, 메모리 디바이스(20)에 기준 패턴을 저장시킬 수 있다. 쓰기 마진 테스트 모듈(440)은 데이터 스트로브 클럭을 딜레이를 조절하기 이전으로 복원시켜 메모리 디바이스(20)에 저장된 패턴을 읽어올 수 있다. 쓰기 마진 테스트 모듈(440)은 읽어온 제2 패턴과 저장 모듈(410)에 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인하고, 상호 일치하지 않으면 홀드 마진 실패 플래그를 출력할 수 있다. 쓰기 마진 테스트 모듈(440)은 기준 패턴과 읽어온 제2 패턴의 각 비트를 비교하고, 상호 일치하지 않는 비트를 홀드 마진을 감소시킨 비트로 검출할 수 있다. 쓰기 마진 테스트 모듈(440)은 쓰기 테스트를 통해 검출된 홀드 마진을 감소시킨 데이터 정보를 쓰기 컨트롤러(430)에 전달할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 컨트롤러(430)는 홀드 마진을 감소시킨 데이터 비트(예: DQ5)의 딜레이를 데이터 스트로브 클럭의 동기 에지를 기준으로 오른쪽으로 적어도 1 시간단위 이동(예: 쉬프트)시켜 쓰기 동작의 홀드 마진을 확보할 수 있다.According to one embodiment of the present invention, the write
본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 1회의 쓰기 테스트에 셋업 마진과 홀드 마진을 둘 다 확인할 수 있으며, 둘 중 하나만 확인할 수도 있다.According to an embodiment of the present invention, the write
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)에 대한 읽기 동작 및 쓰기 동작이 없을 때 메모리 디바이스(20)에 대한 읽기 테스트를 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 주기적으로 읽기 동작 및 쓰기 동작이 있는지를 확인하고, 확인 결과 읽기 동작 및 쓰기 동작이 없는 경우에 읽기 테스트를 수행할 수 있다. 읽기 마진 테스트 모듈(460)은 읽기 동작 및 쓰기 동작이 발생하지 않는 프로세서의 특정 상태(예: 슬립 상태)일 때 읽기 테스트를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)도 특정 주기에서 메모리 디바이스(20)에 대한 동작(예: 읽기 동작 및 쓰기 동작)이 없을 때나, 프로세서의 특정 상태에 메모리 디바이스(20)에 대한 쓰기 테스트를 수행할 수 있다.According to one embodiment of the present invention, the read
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 각 테스트 진행 시 충돌이 발생하지 않도록 둘 중 하나가 우선순위를 가질 수 있다. 예를 들어, 메모리 컨트롤러(40)가 초기화 과정 등에 미리 기준 패턴을 메모리 디바이스(20)에 저장시킨 경우에 읽기 마진 테스트 모듈(460)이 우선순위를 가질 수 있다. 읽기 테스트는 기준 패턴이 쓰여진 이후에 가능하므로, 쓰기 마진 테스트 모듈(440)이 우선순위를 가질 수도 있다.According to an embodiment of the present invention, one of the read
본 발명의 일 실시예에 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 메모리 디바이스(20)의 초기화 이후에 임계시간이 경과한 후 또는 각 동작이 임계횟수 수행된 후에 읽기 테스트와 쓰기 테스트를 각기 수행할 수 있다. 예를 들어, 읽기 마진 테스트 모듈(460)은 메모리 디바이스(20)의 초기화 시점에서 임계시간이 경과되거나, 또는 읽기 동작이 임계횟수 수행된 후에 읽기 테스트를 수행할 수 있다. 쓰기 마진 테스트 모듈(440)은 메모리 디바이스(20)의 초기화 시점에서 임계시간이 경과되거나, 쓰기 동작이 임계횟수 수행된 후에 쓰기 테스트를 수행할 수 있다. 본 발명의 일 실시예에서는 메모리 디바이스(20)를 사용함에 따라 SI 및 PI 영향이 발생하는 시점부터 읽기 테스트 및 쓰기 테스트를 수행함에 따라 효율적으로 테스트를 진행할 수 있다.According to one embodiment of the present invention, the read
본 발명의 일 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 각 쓰기 테스트에서 셋업 마진과 홀드 마진 확인을 위해 기준 패턴을 쓰기하는 주소는 상호 다를 수 있다. 본 발명의 다른 실시예에 따르면, 쓰기 마진 테스트 모듈(440)은 한 번의 쓰기 테스트 후에 기준 패턴을 지울(erase) 수 있다. 본 발명의 실시예에서는 쓰기 테스트 시에 이전 테스트에서 쓰여진 기준 패턴을 잘못 확인하여 잘못된 쓰기 테스트를 수행하는 것을 방지할 수 있다. According to an embodiment of the present invention, the writing
본 발명의 일 실시예 따르면, 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440)은 읽기 테스트와 쓰기 테스트에 각기 다른 기준 패턴을 사용할 수 있다. 읽기 마진 테스트 모듈(460)과 쓰기 마진 테스트 모듈(440) 중 적어도 하나는 각 테스트에 각기 다른 주소를 사용할 수 있다. 예를 들어, 쓰기 마진 테스트 모듈(440)는 메모리 디바이스(20)의 데이터가 저장되지 않은 다음 번 주소에 기준 패턴을 저장하여 쓰기 테스트를 수행할 수 있다.According to one embodiment of the present invention, the read
본 발명의 일 실시예에 따르면, 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 데이터 비트의 딜레이를 조절한 경우에 데이터 스트로브 클럭을 타이밍 마진의 중간 위치로 조절(centering)할 수 있다. 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 데이터 비트의 딜레이를 조절함에 따라 확보된 셋업 마진과 홀드 마진을 종합적으로 고려하여 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. 예를 들어, 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 셋업 마진을 확보하기 위해서 데이터 비트의 딜레이를 앞당긴 경우에는 앞당겨진 데이터 비트의 딜레이의 절반만큼 데이터 스트로브 클럭을 앞당길 수 있다. 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 홀드 마진을 확보하기 위해서 데이터 비트의 딜레이를 지연시킨 경우에는 지연된 데이터 비트의 딜레이의 절반만큼 데이터 스트로브 클럭을 지연시킬 수 있다. 만약, 데이터 비트의 딜레이가 홀수 시간단위만큼 조절된 경우에는 읽기 컨트롤러(450)와 쓰기 컨트롤러(430)는 조절된 딜레이를 2로 나눈 몫만큼 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. According to an embodiment of the present invention, the
본 발명의 다양한 실시예들은 메모리 디바이스의 보드 환경에서 메모리 디바이스의 사용 중에 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
동작 715에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지가 셋업 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. In
동작 720에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소에 저장된 기준 패턴을 읽어올 수 있다. 일 실시예에서, 기준 패턴은 메모리 디바이스(20)의 초기화 과정에 저장될 수 있다. 다른 실시예에서, 기준 패턴은 데이터 스트로브 클럭의 딜레이를 조절하기 직전에 저장될 수 있다.In
동작 725에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.At
동작 730에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 비트를 셋업 마진을 감소시키는 비트로 검출할 수 있다.In operation 730, if the read pattern and the self-stored reference pattern do not coincide with each other, the
동작 735에서, 메모리 컨트롤러(40)는 셋업 마진을 감소시키는 비트의 딜레이를 셋업 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 앞당겨 셋업 마진을 확보할 수 있다.In
동작 740에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭의 동기 에지가 홀드 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다. In
동작 745에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소로부터 기준 패턴을 읽어올 수 있다.At
동작 750에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.At
동작 755에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 데이터 비트를 홀드 마진을 감소시키는 비트로 검출할 수 있다.In operation 755, if the read pattern and the self-stored reference pattern do not coincide with each other, the
동작 760에서, 메모리 컨트롤러(40)는 검출된 비트의 딜레이를 홀드 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 지연시켜 홀드 마진을 확보할 수 있다.In
동작 765에서, 메모리 컨트롤러(40)는 읽기 테스트를 완료한 다음 데이터 스트로브 클럭의 딜레이를 타이밍 마진의 중심 위치로 센터링할 수 있다.At
도 7에서는 메모리 컨트롤러(40)가 읽기 동작의 셋업 마진을 테스트한 후에 읽기 동작의 홀드 마진을 테스트하는 경우를 예로 들어 설명하였다. 본 발명의 다른 실시예에서는 읽기 동작의 홀드 마진을 테스트한 이후에 읽기 동작의 셋업 마진을 테스트할 수도 있다.In FIG. 7, the
도 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
도 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
동작 815에서, 메모리 컨트롤러(40)는 쓰기 셋업 마진을 테스트하기 위해서 데이터 스트로브 클럭의 동기 에지가 셋업 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.At operation 815, the
동작 820에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제1 주소에 기준 패턴을 쓰기할 수 있다. 일 실시예에서, 제1 주소는 고정 주소일 수 있으며, 가변 주소일 수 있다. 예를 들어, 제1 주소는 메모리 디바이스(20)의 데이터가 저장되지 않은 영역의 첫 번째 주소일 수 있다.At
동작 825에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭을 이전 위치로 복원시키고, 읽기 동작을 수행하여 메모리 디바이스(20)의 제1 주소로부터 기준 패턴을 읽어올 수 있다. 예를 들어, 메모리 컨트롤러(40)는 동작 815에서 조절된 딜레이에 반대되도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.At
동작 830에서, 메모리 컨트롤러(40)는 읽어온 패턴과 내부 저장된 기준 패턴의 각 비트가 상호 일치하는지를 확인할 수 있다.In
동작 835에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 두 패턴의 각 비트 중에서 상호 일치하지 않는 비트를 셋업 마진을 감소시키는 비트로 검출할 수 있다.In operation 835, if the read pattern and the self-stored reference pattern do not coincide with each other, the
동작 840에서, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 셋업 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 앞당겨 셋업 마진을 확보할 수 있다.In
동작 845에서, 메모리 컨트롤러(40)는 쓰기 홀드 마진을 테스트하기 위해서 데이터 스트로브 클럭의 동기 에지가 홀드 마진 위치에서 발생하도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.In
동작 850에서, 메모리 컨트롤러(40)는 메모리 디바이스(20)로부터 메모리 디바이스(20)의 제2 주소에 저장된 기준 패턴을 쓰기할 수 있다. 일 실시예에서, 제2 주소는 고정 주소일 수 있으며, 가변 주소일 수 있다. 예를 들어, 제2 주소는 메모리 디바이스(20)의 데이터가 저장되지 않은 영역의 첫 번째 주소일 수 있다.At
동작 855에서, 메모리 컨트롤러(40)는 데이터 스트로브 클럭을 원래 위치로 복원시키고, 메모리 디바이스(20)의 제2 주소로부터 기준 패턴을 읽어올 수 있다. 일 실시예에서, 메모리 컨트롤러(40)는 동작 845에서 조절된 딜레이에 반대되도록 데이터 스트로브 클럭의 딜레이를 조절할 수 있다.In
동작 860에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하는지를 확인할 수 있다.In
동작 865에서, 메모리 컨트롤러(40)는 읽어온 패턴과 자체 저장된 기준 패턴이 상호 일치하지 않으면, 상호 일치하지 않는 데이터 비트를 검출할 수 있다.In operation 865, the
동작 870에서, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 홀드 마진을 증가시키는 방향으로 조절할 수 있다. 예를 들어, 메모리 컨트롤러(40)는 검출된 데이터 비트의 딜레이를 지연시켜 홀드 마진을 확보할 수 있다.In
동작 875에서, 메모리 컨트롤러(40)는 동작 840 및 동작 870 중 적어도 하나를 통해서 조정된 데이터 스트로브 클럭을 센터링할 수 있다.In
도 8에서는 메모리 컨트롤러(40)가 쓰기 동작의 셋업 마진을 테스트한 후에 쓰기 동작의 홀드 마진을 테스트하는 경우를 예로 들어 설명하였다. 본 발명의 다른 실시예에서는 쓰기 동작의 홀드 마진을 테스트한 이후에 쓰기 동작의 셋업 마진을 테스트할 수도 있다.In FIG. 8, the case where the
도 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
본 발명의 일 실시예에서, 메모리 컨트롤러(40)는 한 번의 쓰기 테스트에서 셋업 마진과 홀드 마진의 확인을 위해 기준 패턴을 쓰는 주소는 각기 다를 수 있다. 본 발명의 실시예에서는 셋업 마진과 홀드 마진의 확인 시에 이전 테스트 과정에서 쓰여진 기준 패턴을 잘못 확인하여 쓰기 테스트를 잘못 수행하는 것을 방지할 수 있다. 본 발명의 다른 실시예에서, 한 번의 쓰기 테스트 후에 기준 패턴은 지워질(erase) 수 있다.In one embodiment of the present invention, the address at which the
본 발명의 일 실시예에서, 메모리 컨트롤러(40)는 읽기 테스트와 쓰기 테스트에 각기 다른 기준 패턴을 사용할 수 있다. 메모리 컨트롤러(40)는 읽기 테스트와 쓰기 테스트에 각기 다른 주소를 사용할 수 있다.In an embodiment of the present invention, the
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, 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 >
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하고, 상기 복수의 데이터 비트 중에서 상기 셋업 마진을 감소시키는 상기 적어도 하나의 비트를 검출하는 것인 메모리 시스템.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.
상기 데이터 스트로브 클럭을 지정된 홀드 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하고, 상기 복수의 데이터 비트 중에서 상기 홀드 마진을 감소시키는 상기 적어도 하나의 비트를 검출하는 것인 메모리 시스템.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.
상기 읽기 테스트를 수행할 때 내부 메모리에 저장된 기준 패턴을 상기 메모리 디바이스에 저장시키고, 상기 메모리 디바이스로부터 기준 패턴을 읽어와 상기 내부 메모리의 기준 패턴과 비교하며, 비교 결과 읽어온 상기 기준 패턴과 상기 저장된 기준 패턴의 각 비트에서 일치하지 않는 비트를 상기 적어도 하나의 비트로 결정하는 것인 메모리 시스템.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.
상기 데이터 스트로브 클럭의 딜레이를 조절하기 전에 상기 내부 메모리의 기준 패턴을 상기 메모리 디바이스에 저장시키고, 상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스로부터 기준 패턴을 읽어오는 것인 메모리 시스템.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 .
상기 쓰기 테스트를 수행할 때 내부 메모리의 기준 패턴을 상기 메모리 디바이스에 쓰기(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.
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스에 상기 기준 패턴을 쓰기(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.
상기 메모리 디바이스의 초기화 이후에 상기 메모리 디바이스에 대한 읽기 동작과 쓰기 동작이 수행되지 않을 때 상기 읽기 테스트 및 쓰기 테스트 중 적어도 하나를 수행하는 것인 메모리 시스템.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.
제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.
상기 적어도 하나의 비트의 딜레이가 조절되면, 상기 데이터 스트로브 클럭의 딜레이를 조절하여 상기 데이터 스트로브 클럭을 데이터 마진의 중간에 위치시키는 것인 메모리 시스템.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 >
상기 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하는 동작;
상기 데이터 스트로브 클럭의 동기 에지를 지정된 홀드 마진 위치로 조절하여 상기 읽기 테스트 또는 상기 쓰기 테스트를 수행하는 동작
를 포함하는 것인 메모리 제어 방법.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 >
상기 데이터 스트로브 클럭의 동기 에지를 지정된 셋업 마진 위치 또는 홀드 마진 위치로 조절하여 상기 메모리 디바이스로부터 상기 메모리 디바이스의 제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 >
상기 데이터 스트로브 클럭의 딜레이를 조절하기 전에 상기 적어도 하나의 프로세서의 내부 메모리에 저장된 기준 패턴을 상기 메모리 디바이스의 상기 제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.
상기 데이터 스트로브 클럭의 딜레이를 조절하여 상기 메모리 디바이스의 제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 >
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치로 조절한 후 상기 메모리 디바이스에 상기 기준 패턴을 쓰기(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.
상기 데이터 스트로브 클럭을 지정된 셋업 마진 위치 또는 지정된 홀드 마진 위치를 조절하기 이전 상태로 복원하여 상기 메모리 디바이스로부터 기준 패턴을 읽어오는 것인 메모리 제어 방법.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.
상기 쓰기 테스트 또는 읽기 테스트를 통해 상기 메모리 디바이스에서 읽어온 상기 기준 패턴과 내부 저장된 기준 패턴과 비교하는 동작; 및 비교 결과 두 패턴에서 상호 일치하지 않는 비트를 상기 적어도 하나의 비트로 검출하는 동작을 포함하는 것인 메모리 제어 방법.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.
상기 메모리 디바이스의 초기화 이후에 제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,
.
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)
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)
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)
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 |
-
2016
- 2016-09-09 KR KR1020160116117A patent/KR20180028613A/en active IP Right Grant
-
2017
- 2017-07-13 US US15/648,909 patent/US10388402B2/en not_active Expired - Fee Related
Cited By (1)
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) |