KR20230021409A - 트레이닝동작을 수행하기 위한 반도체시스템 - Google Patents

트레이닝동작을 수행하기 위한 반도체시스템 Download PDF

Info

Publication number
KR20230021409A
KR20230021409A KR1020210103247A KR20210103247A KR20230021409A KR 20230021409 A KR20230021409 A KR 20230021409A KR 1020210103247 A KR1020210103247 A KR 1020210103247A KR 20210103247 A KR20210103247 A KR 20210103247A KR 20230021409 A KR20230021409 A KR 20230021409A
Authority
KR
South Korea
Prior art keywords
signal
circuit
data
read
delay
Prior art date
Application number
KR1020210103247A
Other languages
English (en)
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 KR1020210103247A priority Critical patent/KR20230021409A/ko
Priority to US17/523,644 priority patent/US11579966B1/en
Priority to CN202210193816.5A priority patent/CN115705264A/zh
Priority to TW111112423A priority patent/TW202321916A/zh
Priority to DE102022208116.1A priority patent/DE102022208116A1/de
Publication of KR20230021409A publication Critical patent/KR20230021409A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Neurology (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

반도체시스템은 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 지연셀의 지연량을 조절하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 지연량을 조절하는 프로세스제어회로, 호스트로부터 커맨드와 어드레스를 수신하고, 노멀동작을 수행하기 위한 라이트신호, 리드신호 및 내부어드레스를 생성하여 다수의 메모리회로로 출력하며, 스크럽제어신호를 수신하여 리드모디파이라이트동작을 수행하는 동작제어회로, 상기 어드레스들을 다수 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 스크럽제어신호를 생성하는 스크럽제어회로 및 상기 리드모디파이라이트동작 시 상기 대상 메모리회로로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함한다.

Description

트레이닝동작을 수행하기 위한 반도체시스템{SEMICONDUCTOR SYSTEM FOR PERFORMING TRAINING OPERATION}
본 발명은 컨트롤러와 메모리회로를 연결하는 신호전송회로의 트레이닝동작을 수행하기 위한 반도체시스템에 관한 것이다.
최근 반도체장치의 동작속도를 증가시키기 위해 클럭 사이클(cycle)마다 다수 비트를 포함하는 데이터를 입/출력하는 다양한 방식 등이 사용되고 있다. 데이터의 입/출력 속도가 빨라지는 경우 데이터가 전송되는 과정 중 발생되는 오류의 발생 확률도 증가 되므로, 데이터 전송의 신뢰성을 보장하기 위한 별도의 장치와 방법이 추가적으로 요구되고 있다.
예를 들어, 데이터 전송 시마다 오류 발생 여부를 확인할 수 있는 오류코드를 생성하여 데이터와 함께 전송함으로써, 데이터 전송의 신뢰성을 보장하는 방법을 사용하고 있다. 오류코드에는 발생한 오류를 검출할 수 있는 오류검출코드(Error Detection Code, EDC)와, 오류 발생시 이를 자체적으로 정정할 수 있는 오류정정코드(Error Correction Code, ECC) 등이 있다.
한편, 반도체장치의 고집적화 및 고속화가 진행될수록 반도체시스템에 구비되는 메모리회로들의 위치가 다양하게 설정되어 신호가 전송되는 라인들의 길이가 다양하게 설정된다. 이와 같은 신호가 전송되는 라인들의 지연량을 동일하게 유지하기 위한 다양한 트레이닝방법들이 요구되고 있다.
본 발명은 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하기 위한 패트롤트레이닝동작을 수행하는 반도체시스템을 제공한다.
이를 위해 본 발명은 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 지연셀의 지연량을 조절하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 지연량을 조절하는 프로세스제어회로, 호스트로부터 커맨드와 어드레스를 수신하고, 노멀동작을 수행하기 위한 라이트신호, 리드신호 및 내부어드레스를 생성하여 다수의 메모리회로로 출력하며, 스크럽제어신호를 수신하여 리드모디파이라이트동작을 수행하는 동작제어회로, 상기 어드레스들을 다수 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 스크럽제어신호를 생성하는 스크럽제어회로 및 상기 리드모디파이라이트동작 시 상기 대상 메모리회로로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템을 제공한다.
또한, 본 발명은 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 지연셀의 지연량을 조절하며, 상기 대상 메모리에 대한 불량정보신호를 토대로 상기 지연량을 조절하는 프로세스제어회로, 호스트로부터 커맨드와 어드레스를 수신하고, 상기 커맨드로부터 노멀동작을 수행하기 위한 라이트신호 및 리드신호를 생성하며, 상기 어드레스로부터 상기 노멀동작을 수행하기 위한 내부어드레스를 생성하는 동작제어회로 및 상기 대상 메모리회로로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 전자장치를 제공한다.
또한, 본 발명은 패트롤트레이닝동작을 결정하고, 대상 메모리회로에서 데이터의 로직레벨을 결정하는 기준전압의 레벨을 조절하기 위한 전압코드신호를 생성하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 전압코드신호를 조절하는 프로세스제어회로, 호스트로부터 커맨드와 어드레스를 수신하고, 상기 커맨드로부터 노멀동작을 수행하기 위한 라이트신호 및 리드신호를 생성하며, 상기 어드레스로부터 상기 노멀동작을 수행하기 위한 내부어드레스를 생성하는 동작제어회로 및 상기 대상 메모리회로로부터 상기 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템을 제공한다.
또한, 본 발명은 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 버퍼의 인에이블 시점을 조절하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 버퍼회로의 인에이블 시점을 조절하는 프로세스제어회로, 호스트로부터 커맨드와 어드레스를 수신하고, 노멀동작을 수행하기 위한 라이트신호, 리드신호 및 내부어드레스를 생성하여 다수의 메모리로 출력하며, 스크럽제어신호를 수신하여 리드모디파이라이트동작을 수행하는 동작제어회로, 상기 어드레스들을 다수 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 스크럽제어신호를 생성하는 스크럽제어회로 및 상기 리드모디파이라이트동작 시 상기 대상 메모리로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템을 제공한다.
본 발명에 의하면 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행할 수 있다.
또한, 본 발명에 의하면 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행함으로써 신호전송회로를 통해 입출력되는 데이터의 신뢰성을 확보할 수 있다.
또한, 본 발명에 의하면 라이트동작 및 리드동작 중 메모리회로에서 데이터의 로직레벨을 결정하기 위한 기준전압의 레벨을 조절하는 패트롤트레이닝동작을 수행할 수 있다.
또한, 본 발명에 의하면 라이트동작 및 리드동작 중 메모리회로에서 데이터의 로직레벨을 결정하기 위한 기준전압의 레벨을 조절하는 패트롤트레이닝동작을 수행함으로써 신호전송회로를 통해 입출력되는 데이터의 신뢰성을 확보할 수 있다.
도 1은 본 발명의 일 실시예에 따른 반도체시스템의 구성을 도시한 블럭도이다.
도 2는 도 1에 도시된 반도체시스템에 포함된 컨트롤러의 구성을 도시한 블럭도이다.
도 3은 도 2에 도시된 컨트롤러에 포함된 프로세스제어회로의 구성을 도시한 블럭도이다.
도 4는 도 2에 도시된 컨트롤러에 포함된 동작제어회로의 구성을 도시한 블럭도이다.
도 5는 도 2에 도시된 컨트롤러에 포함된 스크럽제어회로의 구성을 도시한 블럭도이다.
도 6은 도 2에 도시된 컨트롤러에 포함된 에러검출회로의 구성을 도시한 블럭도이다.
도 7은 본 발명의 일 실시예에 따른 신호전송회로를 통해 입출력되는 데이터를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 지연코드를 생성하기 위한 동작을 설명하기 위한 도면이다.
도 9는 도 2에 도시된 신호전송회로에 포함된 제1 입출력회로의 구성을 도시한 블럭도이다.
도 10은 본 발명의 일 실시예에 따른 패트롤트레이닝동작을 설명하기 위한 타이밍도이다.
도 11은 본 발명의 다른 실시예에 따른 컨트롤러 및 메모리회로들의 구성을 도시한 블럭도이다.
도 12는 도 11에 도시된 제1 메모리회로의 구성을 도시한 블럭도이다.
도 13은 본 발명의 다른 실시예에 따른 전압코드를 생성하기 위한 동작을 설명하기 위한 도면이다.
도 14는 본 발명의 다른 실시예에 따른 반도체시스템의 구성을 도시한 블럭도이다.
도 15는 도 14에 도시된 반도체시스템에 포함된 컨트롤러의 구성을 도시한 블럭도이다.
도 16은 도 15에 도시된 제1 버퍼회로의 구성을 도시한 블럭도이다.
도 17은 본 발명의 다른 실시예에 따른 패트롤트레이닝동작을 설명하기 위한 타이밍도이다.
"기 설정된"이라는 용어는 프로세스나 알고리즘에서 매개변수를 사용할 때 매개변수의 수치가 미리 결정되어 있음을 의미한다. 매개변수의 수치는 실시예에 따라서 프로세스나 알고리즘이 시작할 때 설정되거나 프로세스나 알고리즘이 수행되는 구간 동안 설정될 수 있다.
다양한 구성요소들을 구별하는데 사용되는 "제1" 및 "제2" 등의 용어는 구성요소들에 의해 한정되지 않는다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소는 제1 구성요소로 명명될 수 있다.
하나의 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 할 때 직접적으로 연결되거나 중간에 다른 구성요소를 매개로 연결될 수도 있다고 이해되어야 한다. 반면 "직접 연결되어" 및 "직접 접속되어"라는 기재는 하나의 구성요소가 다른 구성요소에 또 다른 구성요소를 사이에 두지 않고 직접 연결된다고 이해되어야 한다.
"로직하이레벨" 및 "로직로우레벨"은 신호들의 로직레벨들을 설명하기 위해 사용된다. "로직하이레벨"을 갖는 신호는 "로직로우레벨"을 갖는 신호와 구별된다. 예를 들어, 제1 전압을 갖는 신호가 "로직하이레벨"에 대응할 때 제2 전압을 갖는 신호는 "로직로우레벨"에 대응할 수 있다. 일 실시예에 따라 "로직하이레벨"은 "로직로우레벨"보다 큰 전압으로 설정될 수 있다. 한편, 신호들의 로직레벨들은 실시예에 따라서 다른 로직레벨 또는 반대의 로직레벨로 설정될 수 있다. 예를 들어, 로직하이레벨을 갖는 신호는 실시예에 따라서 로직로우레벨을 갖도록 설정될 수 있고, 로직로우레벨을 갖는 신호는 실시예에 따라서 로직하이레벨을 갖도록 설정될 수 있다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체시스템(1)은 호스트(10), 컨트롤러(20) 및 제1 내지 제20 메모리회로들(DRAM1~DRAM20)을 포함할 수 있다.
호스트(10)는 라이트동작을 수행하기 위한 커맨드(CMD), 어드레스(ADD) 및 라이트데이터(WDA)를 컨트롤러(20)로 출력할 수 있다. 호스트(10)는 리드동작을 수행하기 위한 커맨드(CMD) 및 어드레스(ADD)를 컨트롤러(20)로 출력하고, 컨트롤러(20)로부터 리드데이터(RDA)를 수신할 수 있다. 커맨드(CMD), 어드레스(ADD), 라이트데이터(WDA) 및 리드데이터(RDA)는 하나의 신호로 도시되어 있지만 실시예에 따라 다수의 비트를 포함하는 신호로 설정될 수 있다.
컨트롤러(20)는 호스트(10)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 라이트동작을 제어할 수 있다. 컨트롤러(20)는 호스트(10)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 리드동작을 제어할 수 있다. 컨트롤러(20)는 호스트(10)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 패트롤트레이닝동작을 제어할 수 있다. 컨트롤러(20)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 리드모디파이라이트동작을 제어할 수 있다. 커맨드(CMD)는 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 라이트동작, 리드동작 및 리드모디파이라이트동작을 수행하기 위한 커맨드로 설정될 수 있고, 다수의 비트를 포함하도록 설정될 수 있다. 어드레스(ADD)는 라이트동작, 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)을 선택하기 위한 신호로 설정될 수 있고, 다수의 비트를 포함하도록 설정될 수 있다. 컨트롤러(20)는 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 동작을 제어하기 위한 컨트롤러로 구현되어 있지만 실시예에 따라 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 동작을 제어하기 위한 테스트장치 및 전자장치 중 어느 하나로 구현될 수 있다.
컨트롤러(20)는 프로세스제어회로(210), 동작제어회로(220), 스크럽제어회로(230), 에러검출회로(240) 및 신호전송회로(250)를 포함할 수 있다.
프로세스제어회로(210)는 라이트동작 및 리드동작 중 패트롤트레이닝동작을 결정할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에 연결된 지연셀들의 지연량을 조절할 수 있다.
동작제어회로(220)는 호스트(10)로부터 커맨드(CMD)와 어드레스(ADD)를 수신할 수 있다. 동작제어회로(220)는 커맨드(CMD) 및 어드레스(ADD)를 토대로 노멀동작의 라이트동작 및 리드동작을 제어할 수 있다. 동작제어회로(220)는 커맨드(CMD) 및 어드레스(ADD)를 토대로 리드모디파이라이트동작을 제어할 수 있다. 동작제어회로(220)는 스크럽제어회로(230)로부터 스크럽어드레스(도 2의 SADD)를 전달받아 트레이닝어드레스(도 2의 TADD)를 생성할 수 있다.
스크럽제어회로(230)는 호스트(10)로부터 어드레스(ADD)를 수신할 수 있다. 스크럽제어회로(230)는 어드레스(ADD)로부터 리드모디파이라이트동작을 수행하기 위한 스크럽어드레스(도 2의 SADD)를 생성할 수 있다.
에러검출회로(240)는 노멀동작의 라이트동작 시 호스트(10)로부터 라이트데이터(WDA)를 수신할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 데이터(DA1~DA20)를 수신할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 제1 내지 제20 데이터(DA1~DA20)에 포함된 에러를 정정하여 리드데이터(RDA)를 생성할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 리드데이터(RDA)를 호스트(10)로 출력할 수 있다. 에러검출회로(240)는 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)의 에러 발생여부에 따라 불량정보신호(도 2의 FA_IF<1:M>)를 생성할 수 있다. 제1 내지 제20 데이터(DA1~DA20)는 하나의 신호로 도시되어 있지만 실시예에 따라 다양한 비트를 포함하는 신호로 설정될 수 있다.
신호전송회로(250)는 제1 내지 제20 입출력회로들(I/O1~I/O20)을 포함할 수 있다. 신호전송회로(250)는 노멀동작의 라이트동작 및 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)과 제1 내지 제20 데이터(DA1~DA20)를 입출력할 수 있다. 신호전송회로(250)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 스트로브신호들(DQS1~DQS20)을 수신할 수 있다. 신호전송회로(250)는 패트롤트레이닝동작 시 조절된 지연량으로 제1 내지 제20 스트로브신호들(DQS1~DQS20)을 지연할 수 있다. 신호전송회로(250)는 패트롤트레이닝동작 시 지연된 제1 내지 제20 스트로브신호들(DQS1~DQS20)에 동기 되어 제1 내지 제20 데이터(DA1~DA20)를 샘플링 할 수 있다.
제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 라이트동작 및 리드모디파이라이트동작 시 제1 내지 제20 입출력회로들(I/O1~I/O20)로부터 제1 내지 제20 데이터(DA1~DA20)를 수신할 수 있다. 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 라이트동작 및 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)를 저장할 수 있다. 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 리드동작 및 리드모디파이라이트동작 시 내부에 저장된 제1 내지 제20 데이터(DA1~DA20)를 제1 내지 제20 입출력회로들(I/O1~I/O20)로 출력할 수 있다.
컨트롤러(20)와 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 DIMM(Dual In-line Memory Module)로 구현될 수 있다.
도 2는 컨트롤러(20)의 일 실시예에 따른 블럭도이다. 도 2에 도시된 바와 같이, 컨트롤러(20)는 프로세스제어회로(210), 동작제어회로(220), 스크럽제어회로(230), 에러검출회로(240) 및 신호전송회로(250)를 포함할 수 있다.
프로세스제어회로(210)는 라이트동작 및 리드동작 중 패트롤트레이닝동작을 결정할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에 연결된 지연셀들(도 9의 251)의 지연량을 조절할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작 중 제1 내지 제20 입출력회로들(I/O1~I/O20)에 포함된 지연셀(도 9의 251)의 지연량을 각각 조절하기 위한 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 조절할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작 중 제1 내지 제20 입출력회로들(I/O1~I/O20)에 포함된 지연셀(도 9의 251)의 지연량을 각각 조절하기 위한 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 다운카운팅하거나 업카운팅 한 이후 불량정보신호(FA_IF<1:M>)를 토대로 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 고정할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작 중 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 다운카운팅할 때 불량정보신호(FA_IF<1:M>)를 토대로 2회의 리드모디파이라이트동작을 수행한 이후 1회 다운카운팅할 수 있다. 이는, 리드모디파이라이트동작 중 제1 내지 제20 데이터(DA1~DA20)에 에러가 발생하는 경우와 신호전송회로(250)에서 에러가 발생한 경우를 구분하기 위해서이다. 예를 들어, 제1 데이터(DA1)에서 에러가 발생한 경우 신호전송회로(250)에서 에러가 발생한 경우가 아니므로 프로세스제어회로(210)는 제1 지연코드(DCD1<1:L>)를 유지한 이후 리드모디파이라이트동작을 다시 수행하여 불량정보신호(FA_IF<1:M>)를 토대로 에러가 없는 경우 제1 지연코드(DCD1<1:L>)를 1회 다운카운팅할 수 있다. 프로세스제어회로(210)는 패트롤트레이닝동작 중 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 업카운팅할 때 불량정보신호(FA_IF<1:M>)를 토대로 2회의 리드모디파이라이트동작을 수행한 이후 1회 업카운팅할 수 있다. 이는, 리드모디파이라이트동작 중 제1 내지 제20 데이터(DA1~DA20)에 에러가 발생하는 경우와 신호전송회로(250)에서 에러가 발생한 경우를 구분하기 위해서이다. 예를 들어, 제1 데이터(DA1)에서 에러가 발생한 경우 신호전송회로(250)에서 에러가 발생한 경우가 아니므로 프로세스제어회로(210)는 제1 지연코드(DCD1<1:L>)를 유지한 이후 리드모디파이라이트 동작을 다시 수행하여 불량정보신호(FA_IF<1:M>)를 토대로 에러가 없는 경우 제1 지연코드(DCD1<1:L>)를 1회 업카운팅할 수 있다. 프로세스제어회로(210)는 반도체시스템에서 사용되는 중앙연산처리장치(CPU:Central Processing Unit)으로 구현될 수 있다.
동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합일 때 라이트신호(WT)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합일 때 리드신호(RD)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작을 수행하기 위한 조합이고, 패트롤트레이닝동작이 수행될 때 커맨드(CMD)로부터 순차적으로 발생하는 트레이닝리드신호(TRD) 및 트레이닝라이트신호(TWT)를 생성할 수 있다. 동작제어회로(220)는 스크럽제어회로(230)로부터 스크럽어드레스(SADD)를 전달받아 트레이닝어드레스(TADD)를 생성할 수 있다. 동작제어회로(220)는 라이트신호(WT), 리드신호(RD), 내부어드레스(IADD), 트레이닝리드신호(TRD) 트레이닝라이트신호(TWT) 및 트레이닝어드레스(TADD)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다.
스크럽제어회로(230)는 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 생성할 수 있다. 스크럽제어회로(230)는 노멀동작 중 패트롤트레이닝동작이 수행될 때 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 생성할 수 있다. 스크럽제어회로(230)는 노멀동작 중 패트롤트레이닝동작이 수행될 때 기 설정된 개수의 어드레스(ADD)를 순차적으로 저장하고, 순차적으로 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 순차적으로 생성할 수 있다. 예를 들어, 스크럽제어회로(230)는 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 어드레스(ADD)를 순차적으로 저장한 이후 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 스크럽어드레스(SADD)를 순차적으로 생성할 수 있다. 스크럽제어회로(230)는 리드모디파이라이트동작 시 리드동작과 라이트동작을 위해 동일한 로직레벨 조합의 스크럽어드레스(SADD)를 출력할 수 있다. 스크럽제어회로(230)는 노멀동작 중 패트롤트레이닝동작 시 저장된 어드레스(ADD)의 개수가 기 설정된 값에 도달할 경우 스크럽제어신호(SC_CTR)를 생성할 수 있다. 예를 들어, 스크럽제어회로(230)는 기 설정된 값이 4개의 어드레스(ADD)를 저장하도록 구현되는 경우 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 어드레스(ADD)가 저장될 때 스크럽제어신호(SC_CTR)를 생성할 수 있다.
에러검출회로(240)는 노멀동작의 라이트동작 시 라이트데이터(WDA)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다. 에러검출회로(240)는 노멀동작의 라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 수신되는 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 검출할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 제1 내지 제20 전달데이터(TD<1:20>)에 포함된 에러를 정정하여 리드데이터(RDA)를 생성할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 시 리드데이터(RDA)를 호스트(10)로 출력할 수 있다. 에러검출회로(240)는 리드모디파이라이트동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 수신하여 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 검출할 수 있다. 에러검출회로(240)는 리드모디파이라이트동작 시 에러가 정정된 제1 내지 제20 전달데이터(TD<1:20>)를 제1 내지 제20 데이터(DA1~DA20)로 출력할 수 있다. 에러검출회로(240)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러 발생여부에 따라 불량정보신호(도 2의 FA_IF<1:M>)를 생성할 수 있다. 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성될 수 있다.
신호전송회로(250)는 제1 내지 제20 입출력회로들(I/O1~I/O20)을 포함할 수 있다.
제1 입출력회로(I/O1)는 제1 지연코드(DCD1<1:L>)에 따라 조절되는 지연량으로 제1 스트로브신호(DQS1)를 지연할 수 있다. 제1 입출력회로(I/O1)는 리드동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 지연량으로 제1 스트로브신호(DQS1)를 지연할 수 있다. 제1 입출력회로(I/O1)는 리드동작 중 패트롤트레이닝동작 시 지연된 제1 스트로브신호(DQS1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD1)를 생성할 수 있다. 제1 입출력회로(I/O1)는 라이트동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 지연량으로 제1 스트로브신호(DQS1)를 지연할 수 있다. 제1 입출력회로(I/O1)는 라이트동작 중 지연된 제1 스트로브신호(DQS1)에 동기 되어 제1 전달데이터(TD1)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 제1 입출력회로(I/O1)는 리드모디파이라이트동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 지연량으로 제1 스트로브신호(DQS1)를 지연할 수 있다. 제1 입출력회로(I/O1)는 리드모디파이라이트동작 중 패트롤트레이닝동작 시 지연된 제1 스트로브신호(DQS1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD1)를 생성할 수 있다. 제1 입출력회로(I/O1)는 리드모디파이라이트동작 중 패트롤트레이닝동작 시 지연된 제1 스트로브신호(DQS1)에 동기 되어 제1 전달데이터(TD1)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 제2 내지 제20 입출력회로들(I/O2~I/O20)은 제1 입출력회로(I/O1)와 입출력신호만 상이할 뿐 동일한 동작을 수행하므로 구체적인 설명은 생략한다. 제1 내지 제20 입출력회로들(I/O1~I/O20)는 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)에 따라 조절되는 지연량으로 제1 내지 제20 스트로브신호(DQS1~DQS20)를 지연하도록 구현되어 있지만, 실시예에 따라 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)에 따라 조절되는 지연량으로 제1 내지 제20 데이터(DA1~DA20)를 지연하도록 구현될 수 있다.
신호전송회로(250)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)로부터 생성되는 제1 내지 제20 데이터(DA1~DA20)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 신호전송회로(250)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 조절된 지연량으로 제1 내지 제20 스트로브신호(DQS1~DQS20)를 지연할 수 있다. 신호전송회로(250)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 지연된 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 전달데이터(TD<1:20>)를 샘플링하여 제1 내지 제20 데이터(DA1~DA20)를 생성할 수 있다. 신호전송회로(250)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)로부터 생성되는 제1 내지 제20 전달데이터(TD<1:20>)을 에러검출회로(240)로 출력할 수 있다. 신호전송회로(250)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 조절된 지연량으로 제1 내지 제20 스트로브신호(DQS1~DQS20)를 지연할 수 있다. 신호전송회로(250)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 지연된 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 데이터(DA1~DA20)를 샘플링하여 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다.
한편, 컨트롤러(20)는 프로세스제어회로(210), 동작제어회로(220), 스크럽제어회로(230), 에러검출회로(240) 및 신호전송회로(250)를 포함하도록 구현되어 있지만, 실시예에 따라 호스트(10)가 프로세스제어회로(210), 동작제어회로(220), 스크럽제어회로(230), 에러검출회로(240) 및 신호전송회로(250)를 포함하도록 구현될 수 있다.
도 3은 프로세스제어회로(210)의 일 실시예에 따른 블럭도이다. 도 3에 도시된 바와 같이, 프로세스제어회로(210)는 불량분석회로(211), 트레이닝제어신호생성회로(212) 및 코드생성회로(213)를 포함할 수 있다.
불량분석회로(211)는 스크럽제어신호(SC_CTR)가 입력될 때 불량정보신호(FA_IF<1:M>)를 토대로 트레이닝어드레스(TADD)에서 불량이 발생했는지 분석할 수 있다. 불량분석회로(211)는 불량정보신호(FA_IF<1:M>)가 발생할 때 트레이닝어드레스(TADD)에 의해 생성되는 제1 내지 제20 전달데이터(TD<1:20>)에 불량이 발생한 경우를 감지할 수 있다. 불량분석회로(211)는 불량정보신호(FA_IF<1:M>)가 발생하지 않을 때 트레이닝어드레스(TADD)에 의해 생성되는 제1 내지 제20 전달데이터(TD<1:20>)에 불량이 없음을 감지할 수 있다. 불량분석회로(211)는 스크럽제어신호(SC_CTR)가 입력될 때 불량정보신호(FA_IF<1:M>)가 발생하는 경우 인에이블되는 불량분석결과신호(FA_RLT)를 생성할 수 있다. 불량분석회로(211)는 스크럽제어신호(SC_CTR)가 입력될 때 불량정보신호(FA_IF<1:M>)가 발생하지 않는 경우 디스에이블되는 불량분석결과신호(FA_RLT)를 생성할 수 있다. 불량분석회로(211)는 리드지연신호(RD_DLY)가 입력될 때 불량정보신호(FA_IF<1:M>)를 토대로 트레이닝어드레스(TADD)에서 불량이 발생했는지 분석할 수 있다. 불량분석회로(211)는 리드지연신호(RD_DLY)가 입력될 때 불량정보신호(FA_IF<1:M>)가 발생하는 경우 인에이블되는 불량분석결과신호(FA_RLT)를 생성할 수 있다. 불량분석회로(211)는 리드지연신호(RD_DLY)가 입력될 때 불량정보신호(FA_IF<1:M>)가 발생하지 않는 경우 디스에이블되는 불량분석결과신호(FA_RLT)를 생성할 수 있다. 리드지연신호(RD_DLY)는 리드동작을 위한 리드신호(RD)가 지연된 신호이다. 리드지연신호(RD_DLY)가 지연되는 지연량은 리드신호(RD)가 생성된 시점부터 리드동작이 완료되는 시점까지로 설정될 수 있다.
트레이닝제어신호생성회로(212)는 패트톨트레이닝을 수행하기 위한 트레이닝시작신호(TRA_STT)를 생성할 수 있다. 트레이닝제어신호생성회로(212)는 불량분석결과신호(FA_RLT)를 수신하여 다운제어신호(DW_CTR) 및 업제어신호(UP_CTR)를 생성할 수 있다. 트레이닝제어신호생성회로(212)는 불량분석결과신호(FA_RLT)가 인에이블될 때 다운제어신호(DW_CTR) 및 업제어신호(UP_CTR)를 생성할 수 있다. 트레이닝제어신호생성회로(212)는 불량분석결과신호(FA_RLT)가 인에이블될 때 다운제어신호(DW_CTR)를 생성한 이후 업제어신호(UP_CTR)를 생성할 수 있다. 트레이닝제어신호생성회로(212)는 실시예에 따라 불량분석결과신호(FA_RLT)가 인에이블될 때 업제어신호(UP_CTR)를 생성한 이후 다운제어신호(DW_CTR)를 생성하도록 구현될 수 있다. 트레이닝제어신호생성회로(212)는 불량분석결과신호(FA_RLT)가 디스에이블될 때 코드출력제어신호(CO_CTR)를 생성할 수 있다.
코드생성회로(213)는 초기화신호(INIT)가 입력될 때 초기값을 갖는 제1 내지 제20 지연코드신호(DCD1<1:L>~DCD20<1:L>)를 생성할 수 있다. 초기값을 갖는 제1 내지 제20 지연코드신호(DCD1<1:L>~DCD20<1:L>)는 제1 내지 제20 입출력회로들(I/O1~I/O20)의 지연량을 중간값으로 조절하기 위한 로직레벨 조합을 가질 수 있다. 코드생성회로(213)는 다운제어신호(DW_CTR)가 입력될 때 제1 지연코드신호(DCD1<1:L>)를 순차적으로 다운카운팅할 수 있다. 코드생성회로(213)는 업제어신호(UP_CTR)가 입력될 때 제1 지연코드신호(DCD1<1:L>)를 순차적으로 업카운팅할 수 있다. 코드생성회로(213)는 코드출력제어신호(CO_CTR)가 입력될 때 제1 지연코드신호(DCD1<1:L>)가 다운카운팅된 최소값과 제1 지연코드신호(DCD1<1:L>)가 업카운팅된 최대값의 중간값으로 제1 지연코드신호(DCD1<1:L>)를 고정할 수 있다. 코드생성회로(213)는 제1 지연코드신호(DCD1<1:L>)를 고정한 이후 제2 내지 제20 지연코드신호(DCD2<1:L>~DCD20<1:L>)를 다운카운팅 및 업카운팅동작을 수행하고, 제2 내지 제20 지연코드신호(DCD2<1:L>~DCD20<1:L>)를 고정할 수 있다.
한편, 코드생성회로(213)는 반도체시스템(1)이 동작을 시작하는 초기화동작 및 부트업동작을 수행하는 동작에서 초기값을 갖는 제1 내지 제20 지연코드신호(DCD1<1:L>~DCD20<1:L>)를 생성할 수 있다. 제1 내지 제20 지연코드신호(DCD1<1:L>~DCD20<1:L>)의 초기값은 반도체시스템(1)의 부트업동작(boot-up) 시 퓨즈회로를 통해 생성될 수 있다. 예를 들어, 4 비트의 제1 지연코드신호가 생성되는 경우 제1 지연코드신호(DCD1<1:4>)의 모든 비트가 로직로우레밸인 조합(L,L,L,L)과 제1 지연코드신호(DCD1<1:4>)의 모든 비트가 로직하이레벨인 조합(H,H,H,H)의 중간값인 조합(L,H,H,H)으로 설정될 수 있다. 제1 지연코드신호(DCD1<1:4>)의 조합(L,L,L,L)은 제1 지연코드신호의 제1 비트(DCD1<1>)가 로직로우레벨(L)이고, 제1 지연코드신호의 제2 비트(DCD1<2>)가 로직로우레벨(L)이며, 제1 지연코드신호의 제3 비트(DCD1<3>)가 로직로우레벨(L)이고, 제1 지연코드신호의 제4 비트(DCD1<4>)가 로직로우레벨(L)인 경우를 의미한다. 제1 지연코드신호(DCD1<1:4>)의 조합(H,H,H,H)은 제1 지연코드신호의 제1 비트(DCD1<1>)가 로직하이레벨(H)이고, 제1 지연코드신호의 제2 비트(DCD1<2>)가 로직하이레벨(H)이며, 제1 지연코드신호의 제3 비트(DCD1<3>)가 로직하이레벨(H)이고, 제1 지연코드신호의 제4 비트(DCD1<4>)가 로직하이레벨(H)인 경우를 의미한다. 제1 지연코드신호(DCD1<1:4>)의 조합(L,H,H,H)은 제1 지연코드신호의 제1 비트(DCD1<1>)가 로직하이레벨(H)이고, 제1 지연코드신호의 제2 비트(DCD1<2>)가 로직하이레벨(H)이며, 제1 지연코드신호의 제3 비트(DCD1<3>)가 로직하이레벨(H)이고, 제1 지연코드신호의 제4 비트(DCD1<4>)가 로직로우레벨(L)인 경우를 의미한다. 도 4는 동작제어회로(220)의 일 실시예에 따른 블럭도이다. 도 4에 도시된 바와 같이, 동작제어회로(220)는 트레이닝제어회로(221) 및 리드라이트제어회로(222)를 포함할 수 있다.
트레이닝제어회로(221)는 노멀동작 중 패트롤트레이닝동작 시 리드모디파이라이트동작을 수행하기 위한 트레이닝리드신호(TRD) 및 트레이닝라이트신호(TWT)를 생성할 수 있다. 트레이닝제어회로(221)는 커맨드(CMD)가 노멀동작을 수행하기 위한 로직레벨 조합이고, 스크럽제어신호(SC_CTR)가 입력될 때 리드모디파이라이트동작을 수행하기 위해 순차적으로 발생하는 트레이닝리드신호(TRD) 및 트레이닝라이트신호(TWT)를 생성할 수 있다. 트레이닝제어회로(221)는 스크럽제어신호(SC_CTR)가 입력될 때 스크럽어드레스(SADD)를 전달받아 트레이닝어드레스(TADD)를 생성할 수 있다. 트레이닝제어회로(221)는 스크럽제어신호(SC_CTR)가 입력될 때 스크럽어드레스(SADD)를 트레이닝어드레스(TADD)로 출력할 수 있다. 트레이닝제어회로(221)는 트레이닝리드신호(TRD), 트레이닝라이트신호(TWT) 및 트레이닝어드레스(TADD)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다.
리드라이트제어회로(222)는 노멀동작 시 라이트동작을 수행하기 위한 라이트신호(WT) 및 내부어드레스(IADD)를 생성할 수 있다. 리드라이트제어회로(222)는 노멀동작 시 리드동작을 수행하기 위한 리드신호(RD) 및 내부어드레스(IADD)를 생성할 수 있다. 리드라이트제어회로(222)는 커맨드(CMD)가 노멀동작 중 라이트동작을 수행하기 위한 로직레벨 조합일 때 라이트신호(WT)를 생성할 수 있다. 리드라이트제어회로(222)는 커맨드(CMD)가 노멀동작 중 라이트동작을 수행하기 위한 로직레벨 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 리드라이트제어회로(222)는 커맨드(CMD)가 노멀동작 중 리드동작을 수행하기 위한 로직레벨 조합일 때 리드신호(RD)를 생성할 수 있다. 리드라이트제어회로(222)는 커맨드(CMD)가 노멀동작 중 리드동작을 수행하기 위한 로직레벨 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 리드라이트제어회로(222)는 라이트신호(WT), 리드신호(RD) 및 내부어드레스(IADD)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다.
도 5는 스크럽제어회로(230)의 일 실시예에 따른 블럭도이다. 도 5에 도시된 바와 같이, 스크럽제어회로(230)는 스크럽제어신호생성회로(231) 및 스크럽어드레스생성회로(232)를 포함할 수 있다.
스크럽제어신호생성회로(231)는 노멀동작 중 어드레스저장완료신호(ADC)가 입력될 때 발생하는 스크럽제어신호(SC_CTR)를 생성할 수 있다. 스크럽제어신호생성회로(231)는 어드레스저장완료신호(ADC)가 입력될 때 발생하는 초기화신호(INIT)를 생성할 수 있다.
스크럽어드레스생성회로(232)는 다수의 래치회로(미도시)로 구현될 수 있다. 스크럽어드레스생성회로(232)는 트레이닝시작신호(TRA_STT)가 입력될 때 어드레스(ADD)를 저장할 수 있다. 스크럽어드레스생성회로(232)는 노멀동작 중 서로 다른 로직레벨 조합의 어드레스(ADD)들의 개수가 기 설정된 값에 도달하는 경우 어드레스저장완료신호(ADC)를 생성할 수 있다. 스크럽어드레스생성회로(232)는 저장된 어드레스(ADD)들을 스크럽어드레스(SADD)로 출력할 수 있다. 스크럽어드레스생성회로(232)에 저장되는 서로 다른 로직레벨 조합의 어드레스(ADD)는 제1 내지 제20 메모리회로들(DRAM1~DRAM20) 중 리드모디파이라이트동작을 수행하기 위한 대상 메모리회로를 선택하기 위한 어드레스(ADD)로 설정될 수 있다. 예를 들어, 스크럽어드레스생성회로(232)는 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 4개의 어드레스(ADD)를 저장할 수 있다. 스크럽어드레스생성회로(232)는 4개의 어드레스(ADD)의 저장이 완료될 때 어드레스저장완료신호(ADC)를 생성할 수 있다. 스크럽어드레스생성회로(232)는 리드모디파이라이트동작 시 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 생성할 수 있다. 예를 들어, 스크럽어드레스생성회로(232)는 리드모디파이라이트동작 시 제1 메모리회로(DRAM1)를 선택하기 위한 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)를 스크럽어드레스(SADD)로 출력할 수 있다. 스크럽어드레스생성회로(232)는 리드모디파이라이트동작 시 제1 메모리회로(DRAM1)를 선택하기 위한 어드레스(ADD)를 스크럽어드레스(SADD)로 출력한 이후, 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 어드레스(ADD)를 스크럽어드레스(SADD)로 순차적으로 출력할 수 있다. 스크럽어드레스생성회로(232)는 리드모디파이라이트동작 시 동일한 메모리회로에 대한 리드동작과 라이트동작을 수행 위해 동일한 로직레벨 조합의 스크럽어드레스(SADD)를 출력할 수 있다.
도 6은 에러검출회로(240)의 일 실시예에 따른 블럭도이다. 도 6에 도시된 바와 같이, 에러검출회로(240)는 패리티생성회로(241), 신드롬생성회로(242), 정정데이터생성회로(243), 데이터출력회로(244) 및 에러정보신호생성회로(245)를 포함할 수 있다.
패리티생성회로(241)는 노멀동작 중 라이트동작 시 라이트데이터(WDA)에 대한 ECC 인코딩동작을 수행하여 패리티(PRT)를 생성할 수 있다. 패리티생성회로(241)는 노멀동작 중 라이트동작 시 라이트데이터(WDA)에 대한 ECC 인코딩동작을 수행하여 라이트데이터(WDA)에 포함된 에러 정보를 포함하는 패리티(PRT)를 생성할 수 있다. 패리티(PRT)는 하나의 신호로 도시되어 있지만 실시예에 따라 다양한 비트를 포함하는 신호로 생성될 수 있다.
신드롬생성회로(242)는 노멀동작 중 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)에 포함된 패리티에 대한 ECC 디코딩동작을 수행하여 신드롬(SYN)를 생성할 수 있다. 신드롬(SYN)은 하나의 신호로 도시되어 있지만 실시예에 따라 다양한 비트를 포함하는 신호로 생성될 수 있다.
정정데이터생성회로(130)는 노멀동작 중 리드동작 및 리드모디파이라이트동작 시 신드롬(SYN)을 토대로 ECC 디코딩동작을 수행하여 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 정정하여 정정데이터(CD)를 생성할 수 있다.
한편, ECC 인코딩동작은 일반적인 ECC회로(Error Correction Circuit)에서 다수 비트를 포함하는 데이터들을 비교하여 패리티(Parity)를 생성하는 동작을 포함한다. ECC 디코딩동작은 일반적인 ECC회로(Error Correction Circuit)에서 이전에 생성된 패리티(Parity)와 다수 비트를 포함하는 데이터들을 비교하여 생성되는 패리티(Parity)를 비교하여 신드롬(Syndrome)을 생성하고, 생성된 신드롬(Syndrome)을 이용하여 데이터의 에러 위치를 파악하며, 위치가 파악된 에러를 정정하는 동작을 포함한다.
데이터출력회로(244)는 노멀동작 중 라이트동작 시 라이트데이터(WDA)와 및 라이트데이터(WDA)로부터 생성된 패리티(PRT)를 합성하여 제1 내지 제20 전달데이터(TD<1:20>)로 출력할 수 있다. 데이터출력회로(244)는 노멀동작 중 리드동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러가 정정된 정정데이터(CD)를 리드데이터(RDA)로 출력할 수 있다. 데이터출력회로(244)는 노멀동작 중 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러가 정정된 정정데이터(CD)를 제1 내지 제20 전달데이터(TD<1:20>)로 재 출력할 수 있다. 데이터출력회로(244)에서 노멀동작 중 라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)를 생성하는 동작은 후술하는 도 7을 통해 구체적으로 설명하도록 한다.
에러정보신호생성회로(245)는 노멀동작 중 리드동작 및 리드모디파이라이트동작 시 신드롬(SYN)를 토대로 에러정보신호(FA_IF<1:M>)를 생성할 수 있다. 에러정보신호생성회로(245)는 노멀동작 중 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러가 없는 경우 로직하이레벨의 신호를 에러정보신호(FA_IF<1:M>)로 순차적으로 저장할 수 있다. 에러정보신호생성회로(245)는 노멀동작 중 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러가 있는 경우 로직로우레벨의 신호를 에러정보신호(FA_IF<1:M>)로 순차적으로 저장할 수 있다. 에러정보신호생성회로(245)에서 에러정보신호(FA_IF<1:M>)를 생성하는 동작은 후술하는 도 8을 통해 구체적으로 설명하도록 한다.
도 7은 본 발명의 일 실시예에 따른 신호전송회로를 통해 입출력되는 데이터를 설명하기 위한 도면이다.
라이트데이터(WDA)는 512 bits를 포함하여 호스트(10)로부터 입력될 수 있다.
컨트롤러(20)의 에러검출회로(240)는 라이트데이터(WDA) 512 bits와 미리 약속된 "0"비트의 62bits를 포함하여 574bits의 데이터를 생성하고, 이를 7bits로 나누어 82개의 심볼(Symbol)로 정의한다. 에러검출회로(240)는 82개의 심볼(Symbol)과 리드솔로몬(Read Solomon code) 알고리즘을 사용하여 생성되는 다항식 X(n)을 연산하여 119bits의 패리티(parity)를 생성하고, 9bits의 더미비트를 생성한다. 즉, 에러검출회로(240)는 128 bits 의 패리티(parity)를 생성한다. 에러검출회로(240)는 128 bits 의 패리티(parity)와 라이트데이터(WDA) 를 합성하여 640 bits의 제1 내지 제20 전달데이터(TD<1:20>)를 생성한다. 라이트데이터(WDA)와 제1 내지 제20 전달데이터(TD<1:20>)의 비트수는 실시예에 따라 다양한 수로 설정될 수 있다.
도 8은 본 발명의 일 실시예에 따른 제1 지연코드를 생성하기 위한 동작을 설명하기 위한 도면이다.
에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)에서 제1 지연코드(D_CD1<1:L>)는 제1 지연코드신호(DCD1<1:L>)가 다운카운팅된 최소값(Minimum)인 제6 비트와 제1 지연코드신호(DCD1<1:L>)가 업운카운팅된 최대값(Maximum)인 제16 비트의 중간값인 11비트가 생성되는 시점의 로직레벨 조합으로 생성된다. 제1 지연코드(D_CD1<1:L>)는 에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)의 중간값일 때의 로직레벨 조합으로 생성된다. 이때 제1 지연코드(D_CD1<1:L>)는 최적값으로 설정된다.
도 9는 제1 입출력회로(I/O1)의 일 실시예에 따른 블럭도이다. 도 9에 도시된 바와 같이, 제1 입출력회로(I/O1)는 지연셀(251) 및 데이터샘플링회로(252)를 포함할 수 있다.
지연셀(251)은 제1 지연코드(D_CD1<1:L>)의 로직레벨 조합에 따라 지연량이 조절될 수 있다. 지연셀(251)은 제1 지연코드(D_CD1<1:L>)에 의해 조절된 지연량으로 제1 스트로브신호(DQS1)를 지연하여 제1 샘플링신호(DSP1)를 생성할 수 있다. 지연셀(251)은 제1 지연코드(D_CD1<1:L>)가 다운카운팅될 때마다 지연량이 순차적으로 감소할 수 있다. 지연셀(251)은 제1 지연코드(D_CD1<1:L>)가 업운카운팅될 때마다 지연량이 순차적으로 증가할 수 있다.
데이터샘플링회로(252)는 노멀동작의 라이트동작 및 리드모디파이라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 전달데이터(TD<1>)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 데이터샘플링회로(252)는 노멀동작의 라이트동작 및 리드모디파이라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 에러검출회로(240)로부터 입력되는 제1 전달데이터(TD<1>)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 데이터샘플링회로(252)는 노멀동작의 라이트동작 및 리드모디파이라이트동작 시 제1 데이터(DA1)를 제1 메모리회로(DRAM1)로 출력할 수 있다.
데이터샘플링회로(252)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD<1>)를 생성할 수 있다. 데이터샘플링회로(252)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 메모리회로(DRAM1)으로부터 입력되는 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD<1>)를 생성할 수 있다. 데이터샘플링회로(252)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 전달데이터(TD<1>)를 에러검출회로(240)로 출력할 수 있다.
도 2에 도시된 제2 내지 제20 입출력회로들(I/O2~I/O20)은 도 9에 도시된 제1 입출력회로(I/O1)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
도 10을 참고하여 본 발명의 일 실시예에 따른 패트롤트레이닝동작을 설명하되, 노멀동작 중 제1 메모리회로(DRAM1)에 대한 리드동작을 예를 들어 설명하면 다음과 같다.
패트롤트레이닝동작 이전(Before Training)에 제1 데이터(DA1)와 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)의 에지를 살펴보면, 제1 샘플링신호(DSP1)의 에지에 제1 데이터(DA1)의 로직레벨이 천이되는 시점임을 알 수 있다. 이때, 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)는 에러가 발생한다.
패트롤트레이닝동작 중(During Training)에 제1 지연코드(DCD1<1:L>)가 다운카운팅될 때 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)는 발생시점이 순차적으로 빠르게 생성되고, 제1 지연코드(DCD1<1:L>)가 업카운팅될 때 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)는 발생시점이 순차적으로 느리게 생성됨을 알 수 있다.
패트롤트레이닝동작 중(During Training) 에러검출회로(240)는 제1 지연코드(DCD1<1:L>)가 다운카운팅될 때 지연량이 순차적으로 감소되는 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)의 에러 발생여부에 따라 불량정보신호(FA_IF<1:M>)를 순차적으로 생성할 수 있다. 제1 전달데이터(TD<1>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 전달데이터(TD<1>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성된다.
패트롤트레이닝동작 중(During Training) 에러검출회로(240)는 제1 지연코드(DCD1<1:L>)가 업운카운팅될 때 지연량이 순차적으로 증가되는 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)의 에러 발생여부에 따라 불량정보신호(FA_IF<1:M>)를 순차적으로 생성할 수 있다. 제1 전달데이터(TD<1>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 전달데이터(TD<1>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성된다.
패트롤트레이닝동작 이후(After Training)에 제1 데이터(DA1)와 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)의 에지를 살펴보면, 제1 샘플링신호(DSP1)의 에지에 제1 데이터(DA1)의 로직레벨이 유지되는 시점임을 알 수 있다. 이때, 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)는 에러가 발생하지 않는다. 여기서, 제1 지연코드(DCD1<1:L>)는 앞서 도 8에 설명한 바와 같이 에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)의 중간값일 때의 로직레벨 조합으로 생성된다. 이때, 제1 지연코드(D_CD1<1:L>)는 최적값으로 설정된다.
이와 같은 본 발명의 일 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행할 수 있다. 본 발명의 일 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행함으로써 신호전송회로를 통해 입출력되는 데이터의 신뢰성을 확보할 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 컨트롤러(20A)와 제1 내지 제20 메모리회로들(DRAM1~DRAM20)을 도시한 블럭도이다.
컨트롤러(20A)는 프로세스제어회로(210A), 동작제어회로(220A), 에러검출회로(230A) 및 신호전송회로(240A)를 포함할 수 있다.
프로세스제어회로(210A)는 라이트동작 및 리드동작 중 패트롤트레이닝동작을 결정할 수 있다. 프로세스제어회로(210A)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에서 사용되는 기준전압(도 12의 VREF)의 레벨을 조절할 수 있다. 프로세스제어회로(210A)는 패트롤트레이닝동작 중 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에서 사용되는 기준전압(도 12의 VREF)의 레벨을 각각 조절하기 위한 제1 내지 제20 전압코드(VCD1<1:L>~VCD20<1:L>)를 조절할 수 있다. 프로세스제어회로(210A)는 패트롤트레이닝동작 중 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에서 사용되는 기준전압(도 12의 VREF)의 레벨을 각각 조절하기 위한 제1 내지 제20 전압코드(VCD1<1:L>~VCD20<1:L>)를 다운카운팅하거나 업카운팅 한 이후 불량정보신호(FA_IF<1:M>)를 토대로 제1 내지 제20 전압코드(VCD1<1:L>~VCD20<1:L>)를 고정할 수 있다. 프로세스제어회로(210A)는 도 2에 도시된 프로세스제어회로(210)와 달리 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>) 대신 제1 내지 제20 전압코드(VCD1<1:L>~VCD20<1:L>)를 생성할 뿐 유사한 회로로 구현되도록 당업자가 용이하게 도출할 수 있으므로 구체적인 설명은 생략한다.
동작제어회로(220A)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합일 때 라이트신호(WT)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합일 때 리드신호(RD)를 생성할 수 있다. 동작제어회로(220)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합일 때 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(220A)는 라이트신호(WT), 리드신호(RD) 및 내부어드레스(IADD)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 동작제어회로(220A)는 도 4에 도시된 리드라이트제어회로(222)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
에러검출회로(230A)는 노멀동작의 라이트동작 시 라이트데이터(WDA)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다. 에러검출회로(230A)는 노멀동작의 라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 에러검출회로(230A)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 수신하여 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 검출할 수 있다. 에러검출회로(230A)는 노멀동작의 리드동작 시 제1 내지 제20 전달데이터(TD<1:20>)에 포함된 에러를 정정하여 리드데이터(RDA)를 생성할 수 있다. 에러검출회로(230A)는 노멀동작의 리드동작 시 리드데이터(RDA)를 호스트(10)로 출력할 수 있다. 에러검출회로(230A)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러 발생여부에 따라 불량정보신호(FA_IF<1:M>)를 생성할 수 있다. 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성될 수 있다. 에러검출회로(230A)는 도 2에 도시된 에러검출회로(240)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
신호전송회로(240A)는 제1 내지 제20 입출력회로들(I/O1~I/O20)을 포함할 수 있다.
제1 입출력회로(I/O1)는 리드동작 중 제1 스트로브신호(DQS1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD1)를 생성할 수 있다. 제1 입출력회로(I/O1)는 라이트동작 중 제1 스트로브신호(DQS1)에 동기 되어 제1 전달데이터(TD1)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 제2 내지 제20 입출력회로들(I/O2~I/O20)은 제1 입출력회로(I/O1)와 입출력신호만 상이할 뿐 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
신호전송회로(240A)는 노멀동작의 라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)로부터 생성되는 제1 내지 제20 데이터(DA1~DA20)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 신호전송회로(240A)는 노멀동작의 라이트동작 시 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 전달데이터(TD<1:20>)를 샘플링하여 제1 내지 제20 데이터(DA1~DA20)를 생성할 수 있다. 신호전송회로(240A)는 노멀동작의 리드동작 시 제1 내지 제20 데이터(DA1~DA20)로부터 생성되는 제1 내지 제20 전달데이터(TD<1:20>)를 에러검출회로(230A)로 출력할 수 있다. 신호전송회로(240A)는 노멀동작의 리드동작 시 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 데이터(DA1~DA20)를 샘플링하여 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다.
제1 메모리회로(DRAM1)는 노멀동작의 라이트동작 시 제1 입출력회로(I/O1)로부터 제1 데이터(DA1)를 수신할 수 있다. 제1 메모리회로(DRAM1)는 노멀동작의 라이트동작 시 제1 데이터(DA1)를 제1 내부데이터(도 12의 ID1)로 저장할 수 있다. 제1 메모리회로(DRAM1)는 노멀동작의 리드동작 시 제1 전압코드(VCD1<1:L>)의 로직레벨 조합에 따라 기준전압(도 12의 VREF)의 레벨을 조절할 수 있다. 제1 메모리회로(DRAM1)는 노멀동작의 리드동작 시 레벨이 조절된 기준전압(도 12의 VREF)과 제1 내부데이터(도 12의 ID1)를 비교하여 제1 데이터(DA1)를 생성할 수 있다. 제1 메모리회로(DRAM1)는 노멀동작의 리드동작 시 제1 데이터(DA1)를 출력할 수 있다.
한편, 제2 내지 제20 메모리회로들(DRAM2~DRAM20)은 제1 메모리회로(DRAM1)와 입출력 신호만 상이할 뿐 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
도 12는 제1 메모리회로(DRAM1)의 일 실시예에 따른 블럭도이다. 도 12에 도시된 바와 같이, 제1 메모리회로(DRAM1)는 메모리영역(310), 전압생성기(320) 및 데이터처리회로(330)를 포함할 수 있다.
메모리영역(310)은 노멀동작 중 라이트동작 시 제1 내부데이터(ID1)을 저장할 수 있다. 메모리영역(310)은 라이트신호(WT)가 입력될 때 내부어드레스(IADD)에 의해 선택되는 위치에 제1 내부데이터(ID1)를 저장할 수 있다. 메모리영역(310)은 노멀동작 중 리드동작 시 내부에 저장된 제1 내부데이터(ID1)를 출력할 수 있다. 메모리영역(310)은 리드신호(RD)가 입력될 때 내부어드레스(IADD)에 의해 선택되는 위치에 저장된 제1 내부데이터(ID1)를 출력할 수 있다.
전압생성기(320)는 데이터의 로직레벨을 결정하기 위한 기준전압(VREF)을 생성할 수 있다. 전압생성기(320)는 노멀동작 중 리드동작 시 제1 전압코드(VCD1<1:L>)의 로직레벨 조합에 따라 레벨이 조절되는 기준전압(VREF)을 생성할 수 있다. 전압생성기(320)에서 제1 전압코드(VCD1<1:L>)의 로직레벨 조합에 따라 기준전압(VREF)의 레벨을 조절하는 동작은 후술하는 도 13에서 구체적으로 설명하도록 한다.
데이터처리회로(330)는 노멀동작 중 라이트동작 시 제1 데이터(DA1)로부터 제1 내부데이터(ID1)를 생성할 수 있다. 데이터처리회로(330)는 노멀동작 중 라이트동작 시 기준전압(VREF)과 제1 데이터(DA1)를 비교하여 제1 내부데이터(ID1)를 생성할 수 있다. 데이터처리회로(330)는 노멀동작 중 리드동작 시 제1 내부데이터(ID1)로부터 제1 데이터(DA1)를 생성할 수 있다. 데이터처리회로(330)는 노멀동작 중 리드동작 시 기준전압(VREF)과 제1 내부데이터(ID1)를 비교하여 제1 데이터(DA1)를 생성할 수 있다.
도 11에 도시된 제2 내지 제20 메모리회로들(DARM2~DARM20)은 도 12에 도시된 제1 메모리회로(DRAM1)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
도 13은 본 발명의 다른 실시예에 따른 제1 데이터(DA1)와 제1 전압코드(VCD1<1:L>)에 따라 레벨이 조절되는 기준전압(VREF) 및 제1 전압코드(VCD1<1:L>)를 생성하기 위한 동작을 설명하기 위한 도면이다.
에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)에서 제1 전압코드(VCD1<1:L>)는 제1 전압코드(VCD1<1:L>)가 다운카운팅된 최소값(Minimum)과 제1 전압코드(VCD1<1:L>)가 업운카운팅된 최대값(Maximum)의 중간값으로 로직레벨 조합으로 생성된다. 제1 전압코드(VCD1<1:L>)는 에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간의 중간값일 때의 로직레벨 조합으로 생성된다.
제1 전압코드(VCD1<1:L>)에 따라 레벨이 조절되는 기준전압(VREF)은 제1 데이터(DA1)의 로직하이레벨과 로직로우레벨 사이의 레벨로 조절된다. 제1 전압코드(VCD1<1:L>)가 다운카운팅될 때 마다 기준전압(VREF)의 레벨은 감소하고, 제1 전압코드(VCD1<1:L>)가 업카운팅될 때 마다 기준전압(VREF)의 레벨은 증가한다. 패트롤트레이닝동작 시 기준전압(VREF)은 제1 데이터(DA1)의 로직하이레벨과 로직로우레벨의 중간 레벨로 조절된다. 여기서, 제1 전압코드(VCD1<1:L>)는 에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)의 중간값일 때의 로직레벨 조합으로 생성된다. 이때, 제1 전압코드(VCD1<1:L>)는 최적값으로 설정된다.
이와 같은 본 발명의 다른 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 메모리회로에서 데이터의 로직레벨을 결정하기 위해 사용되는 기준전압의 레벨을 조절하는 패트롤트레이닝동작을 수행할 수 있다. 본 발명의 다른 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 메모리회로에서 데이터의 로직레벨을 결정하기 위해 사용되는 기준전압의 레벨을 조절하는 패트롤트레이닝동작을 수행함으로써 신호전송회로를 통해 입출력되는 데이터의 신뢰성을 확보할 수 있다.
도 14에 도시된 바와 같이, 본 발명의 다른 실시 예에 따른 반도체시스템(2)은 호스트(30), 컨트롤러(40) 및 제1 내지 제20 메모리회로들(DRAM1~DRAM20)을 포함할 수 있다.
호스트(30)는 라이트동작을 수행하기 위한 커맨드(CMD), 어드레스(ADD) 및 라이트데이터(WDA)를 컨트롤러(40)로 출력할 수 있다. 호스트(30)는 리드동작을 수행하기 위한 커맨드(CMD) 및 어드레스(ADD)를 컨트롤러(40)로 출력하고, 컨트롤러(40)로부터 리드데이터(RDA)를 수신할 수 있다. 커맨드(CMD), 어드레스(ADD), 라이트데이터(WDA) 및 리드데이터(RDA)는 하나의 신호로 도시되어 있지만 실시예에 따라 다수의 비트를 포함하는 신호로 설정될 수 있다.
컨트롤러(40)는 호스트(30)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 라이트동작을 제어할 수 있다. 컨트롤러(40)는 호스트(30)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 리드동작을 제어할 수 있다. 컨트롤러(40)는 호스트(30)로부터 커맨드(CMD) 및 어드레스(ADD)를 수신하여 패트롤트레이닝동작을 제어할 수 있다. 컨트롤러(40)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 리드모디파이라이트동작을 제어할 수 있다. 커맨드(CMD)는 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 라이트동작, 리드동작 및 리드모디파이라이트동작을 수행하기 위한 커맨드로 설정될 수 있고, 다수의 비트를 포함하도록 설정될 수 있다. 어드레스(ADD)는 라이트동작, 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)을 선택하기 위한 신호로 설정될 수 있고, 다수의 비트를 포함하도록 설정될 수 있다. 컨트롤러(40)는 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 동작을 제어하기 위한 컨트롤러로 구현되어 있지만 실시예에 따라 제1 내지 제20 메모리회로들(DRAM1~DRAM20)의 동작을 제어하기 위한 테스트장치 및 전자장치 중 어느 하나로 구현될 수 있다.
컨트롤러(40)는 프로세스제어회로(410), 동작제어회로(420), 스크럽제어회로(430), 에러검출회로(440) 및 신호전송회로(450)를 포함할 수 있다.
프로세스제어회로(410)는 라이트동작 및 리드동작 중 패트롤트레이닝동작을 결정할 수 있다. 프로세스제어회로(410)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에 연결된 버퍼(도 16의 452)의 인에이블 시점을 조절할 수 있다.
동작제어회로(420)는 호스트(30)로부터 커맨드(CMD)와 어드레스(ADD)를 수신할 수 있다. 동작제어회로(420)는 커맨드(CMD) 및 어드레스(ADD)를 토대로 노멀동작의 라이트동작 및 리드동작을 제어할 수 있다. 동작제어회로(420)는 커맨드(CMD) 및 어드레스(ADD)를 토대로 리드모디파이라이트동작을 제어할 수 있다. 동작제어회로(420)는 스크럽제어회로(430)로부터 스크럽어드레스(도 15의 SADD)를 전달받아 트레이닝어드레스(도 15의 TADD)를 생성할 수 있다.
스크럽제어회로(430)는 호스트(30)로부터 어드레스(ADD)를 수신할 수 있다. 스크럽제어회로(430)는 어드레스(ADD)로부터 리드모디파이라이트동작을 수행하기 위한 스크럽어드레스(도 15의 SADD)를 생성할 수 있다.
에러검출회로(440)는 노멀동작의 라이트동작 시 호스트(30)로부터 라이트데이터(WDA)를 수신할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 시 제1 내지 제20 데이터(DA1~DA20)에 포함된 에러를 정정하여 리드데이터(RDA)를 생성할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 시 리드데이터(RDA)를 호스트(30)로 출력할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)의 에러 발생여부에 따라 불량정보신호(도 15의 FA_IF<1:M>)를 생성할 수 있다. 제1 내지 제20 데이터(DA1~DA20)는 하나의 신호로 도시되어 있지만 실시예에 따라 다수의 비트를 포함하는 신호로 설정될 수 있다.
신호전송회로(450)는 제1 내지 제20 버퍼회로들(BUF1 ~ BUF20)을 포함할 수 있다. 신호전송회로(450)는 노멀동작의 라이트동작 및 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)과 제1 내지 제20 데이터(DA1~DA20)를 입출력할 수 있다. 신호전송회로(450)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 스트로브신호(DQS1~DQS20)를 수신할 수 있다. 신호전송회로(450)는 패트롤트레이닝동작 시 조절된 인에이블시점에 제1 내지 제20 스트로브신호(DQS1~DQS20)를 수신할 수 있다. 신호전송회로(450)는 패트롤트레이닝동작 시 지연된 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 데이터(DA1~DA20)를 샘플링 할 수 있다.
제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 라이트동작 및 리드모디파이라이트동작 시 제1 내지 제20 버퍼회로들(BUF1~BUF20)로부터 제1 내지 제20 데이터(DA1~DA20)를 수신할 수 있다. 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 라이트동작 및 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)를 저장할 수 있다. 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 리드동작 및 리드모디파이라이트동작 시 내부에 저장된 제1 내지 제20 데이터(DA1~DA20)를 제1 내지 제20 버퍼회로들(BUF1~BUF20)로 출력할 수 있다.
컨트롤러(40)와 제1 내지 제20 메모리회로들(DRAM1~DRAM20)은 DIMM(Dual In-line Memory Module)로 구현될 수 있다.
도 15는 컨트롤러(40)의 일 실시예에 따른 블럭도이다. 도 15에 도시된 바와 같이, 컨트롤러(40)는 프로세스제어회로(410), 동작제어회로(420), 스크럽제어회로(430), 에러검출회로(440) 및 신호전송회로(450)를 포함할 수 있다.
프로세스제어회로(510)는 라이트동작 및 리드동작 중 패트롤트레이닝동작을 결정할 수 있다. 프로세스제어회로(510)는 패트롤트레이닝동작에서 제1 내지 제20 메모리회로들(DRAM1~DRAM20)에 연결된 버퍼(도 16의 452)의 인에이블시점을 조절할 수 있다. 프로세스제어회로(510)는 패트롤트레이닝동작 중 제1 내지 제20 버퍼회로들(BUF1~BUF20)에 포함된 버퍼(도 16의 452)의 인에이블시점을 각각 조절하기 위한 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 조절할 수 있다. 프로세스제어회로(510)는 패트롤트레이닝동작 중 제1 내지 제20 버퍼회로들(BUF1~BUF20)에 포함된 버퍼(도 16의 452)의 인에이블시점을 각각 조절하기 위한 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 다운카운팅하거나 업카운팅 한 이후 스크럽제어신호(SC_CTR) 및 불량정보신호(FA_IF<1:M>)를 토대로 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 고정할 수 있다. 프로세스제어회로(510)는 패트롤트레이닝동작 중 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 다운카운팅할 때 불량정보신호(FA_IF<1:M>)를 토대로 2회의 리드모디파이라이트동작을 수행한 이후 1회 다운카운팅할 수 있다. 이는, 리드모디파이라이트동작 중 제1 내지 제20 데이터(DA1~DA20)에 에러가 발생하는 경우와 신호전송회로(450)에서 에러가 발생한 경우를 구분하기 위해서이다. 예를 들어, 제1 데이터(DA1)에서 에러가 발생한 경우 신호전송회로(450)에서 에러가 발생한 경우가 아니므로 프로세스제어회로(510)는 제1 지연코드(DCD1<1:L>)를 유지한 이후 리드모디파이라이트 동작을 다시 수행하여 불량정보신호(FA_IF<1:M>)를 토대로 에러가 없는 경우 제1 지연코드(DCD1<1:L>)를 1회 다운카운팅할 수 있다. 프로세스제어회로(510)는 패트롤트레이닝동작 중 제1 내지 제20 지연코드(DCD1<1:L>~DCD20<1:L>)를 업카운팅할 때 불량정보신호(FA_IF<1:M>)를 토대로 2회의 리드모디파이라이트동작을 수행한 이후 1회 업카운팅할 수 있다. 이는, 리드모디파이라이트동작 중 제1 내지 제20 데이터(DA1~DA20)에 에러가 발생하는 경우와 신호전송회로(450)에서 에러가 발생한 경우를 구분하기 위해서이다. 예를 들어, 제1 데이터(DA1)에서 에러가 발생한 경우 신호전송회로(450)에서 에러가 발생한 경우가 아니므로 프로세스제어회로(410)는 제1 지연코드(DCD1<1:L>)를 유지한 이후 리드모디파이라이트 동작을 다시 수행하여 불량정보신호(FA_IF<1:M>)를 토대로 에러가 없는 경우 제1 지연코드(DCD1<1:L>)를 1회 업카운팅할 수 있다. 프로세스제어회로(510)는 도 3에 도시된 프로세스제어회로(210)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다. 프로세스제어회로(410)는 반도체시스템에서 사용되는 중앙연산처리장치(CPU:Central Processing Unit)으로 구현될 수 있다.
동작제어회로(420)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합인 경우 라이트신호(WT)를 생성할 수 있다. 동작제어회로(420)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 라이트동작을 수행하기 위한 조합인 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(420)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합인 경우 리드신호(RD)를 생성할 수 있다. 동작제어회로(420)는 커맨드(CMD)의 로직레벨 조합이 노멀동작의 리드동작을 수행하기 위한 조합인 어드레스(ADD)로부터 내부어드레스(IADD)를 생성할 수 있다. 동작제어회로(420)는 커맨드(CMD)의 로직레벨 조합이 노멀동작을 수행하기 위한 조합이고, 패트롤트레이닝동작을 수행하는 경우 커맨드(CMD)로부터 순차적으로 발생하는 트레이닝리드신호(TRD) 및 트레이닝라이트신호(TWT)를 생성할 수 있다. 동작제어회로(420)는 스크럽제어회로(430)로부터 스크럽어드레스(SADD)를 전달받아 트레이닝어드레스(TADD)를 생성할 수 있다. 동작제어회로(420)는 라이트신호(WT), 리드신호(RD), 내부어드레스(IADD), 트레이닝리드신호(TRD), 트레이닝라이트신호(TWT) 및 트레이닝어드레스(TADD)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 동작제어회로(420)는 도 4에 도시된 동작제어회로(220)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
스크럽제어회로(430)는 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 생성할 수 있다. 스크럽제어회로(430)는 노멀동작 중 패트롤트레이닝동작을 수행될 때 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 생성할 수 있다. 스크럽제어회로(430)는 노멀동작 중 패트롤트레이닝동작을 수행될 때 기 설정된 개수의 어드레스(ADD)를 순차적으로 저장하고, 순차적으로 저장된 어드레스(ADD)로부터 스크럽어드레스(SADD)를 순차적으로 생성할 수 있다. 예를 들어, 스크럽제어회로(430)는 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5)를 선택하기 위한 어드레스(ADD)를 순차적으로 저장한 이후 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 스크럽어드레스(SADD)를 순차적으로 생성할 수 있다. 스크럽제어회로(430)는 리드모디파이라이트동작 시 리드동작과 라이트동작을 위해 동일한 로직레벨 조합의 스크럽어드레스(SADD)를 출력할 수 있다. 스크럽제어회로(430)는 노멀동작 중 패트롤트레이닝동작 시 저장된 어드레스(ADD)의 개수가 기 설정된 값에 도달할 경우 스크럽제어신호(SC_CTR)를 생성할 수 있다. 예를 들어, 스크럽제어회로(430)는 기 설정된 값이 4개의 어드레스(ADD)를 저장하도록 구현되는 경우 제1 메모리회로(DRAM1), 제3 메모리회로(DRAM3), 제5 메모리회로(DRAM5) 및 제7 메모리회로(DRAM7)를 선택하기 위한 어드레스(ADD)가 저장될 때 스크럽제어신호(SC_CTR)를 생성할 수 있다. 스크럽제어회로(430)는 도 5에 도시된 스크럽제어회로(230)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
에러검출회로(440)는 노멀동작의 라이트동작 시 라이트데이터(WDA)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다. 에러검출회로(440)는 노멀동작의 라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 수신하여 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 검출할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 시 제1 내지 제20 전달데이터(TD<1:20>)에 포함된 에러를 정정하여 리드데이터(RDA)를 생성할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 시 리드데이터(RDA)를 호스트(30)로 출력할 수 있다. 에러검출회로(440)는 리드모디파이라이트동작 시 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로부터 제1 내지 제20 전달데이터(TD<1:20>)를 수신하여 제1 내지 제20 전달데이터(TD<1:20>)의 에러를 검출할 수 있다. 에러검출회로(440)는 노멀동작의 리드동작 및 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)의 에러 발생여부에 따라 불량정보신호(도 2의 FA_IF<1:M>)를 생성할 수 있다. 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 내지 제 20 전달데이터(TD<1:20>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성될 수 있다. 에러검출회로(440)는 도 6에 도시된 에러검출회로(240)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
신호전송회로(450)는 제1 내지 제20 버퍼회로들(BUF1~BUF20)을 포함할 수 있다.
제1 버퍼회로(BUF1)는 제1 지연코드(DCD1<1:L>)에 따라 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 스트로브신호(DQS1)를 수신할 수 있다. 제1 버퍼회로(BUF1)는 리드동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 스트로브신호(DQS1)를 수신할 수 있다. 제1 버퍼회로(BUF1)는 리드동작 중 패트롤트레이닝동작 시 수신된 제1 스트로브신호(DQS1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD1)를 생성할 수 있다. 제1 버퍼회로(BUF1)는 라이트동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 스트로브신호(DQS1)를 수신할 수 있다. 제1 버퍼회로(BUF1)는 라이트동작 중 수신된 제1 스트로브신호(DQS1)에 동기 되어 제1 전달데이터(TD1)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 제1 버퍼회로(BUF1)는 리드모디파이라이트동작 중 패트롤트레이닝동작 시 제1 지연코드(DCD1<1:L>)에 따라 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 스트로브신호(DQS1)를 수신할 수 있다. 제1 버퍼회로(BUF1)는 리드모디파이라이트동작 중 패트롤트레이닝동작 시 수신된 제1 스트로브신호(DQS1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD1)를 생성할 수 있다. 제2 내지 제20 버퍼회로들(BUF2~BUF20)은 제1 버퍼회로(BUF1)와 입출력신호만 상이할 뿐 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
신호전송회로(450)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 제1 내지 제20 전달데이터(TD<1:20>)로부터 생성되는 제1 내지 제20 데이터(DA1~DA20)를 제1 내지 제20 메모리회로들(DRAM1~DRAM20)로 출력할 수 있다. 신호전송회로(450)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 내지 제20 스트로브신호(DQS1~DQS20)를 수신할 수 있다. 신호전송회로(450)는 노멀동작의 라이트동작 또는 리드모디파이라이트동작 시 수신된 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 전달데이터(TD<1:20>)를 샘플링하여 제1 내지 제20 데이터(DA1~DA20)를 생성할 수 있다. 신호전송회로(450)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 제1 내지 제20 데이터(DA1~DA20)로부터 생성되는 제1 내지 제20 전달데이터(TD<1:20>)를 에러검출회로(440)로 출력할 수 있다. 신호전송회로(450)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 조절되는 버퍼(도 16의 452)의 인에이블시점에 제1 내지 제20 스트로브신호(DQS1~DQS20)를 수신할 수 있다. 신호전송회로(450)는 노멀동작의 리드동작 또는 리드모디파이라이트동작 시 수신된 제1 내지 제20 스트로브신호(DQS1~DQS20)에 동기 되어 제1 내지 제20 데이터(DA1~DA20)를 샘플링하여 제1 내지 제20 전달데이터(TD<1:20>)를 생성할 수 있다.
한편, 컨트롤러(40)는 프로세스제어회로(410), 동작제어회로(420), 스크럽제어회로(430), 에러검출회로(440) 및 신호전송회로(450)를 포함하도록 구현되어 있지만, 실시예에 따라 호스트(30)가 프로세스제어회로(410), 동작제어회로(420), 스크럽제어회로(430), 에러검출회로(440) 및 신호전송회로(450)를 포함하도록 구현될 수 있다.
도 16은 제1 버퍼회로(BUF1)의 일 실시예에 따른 블럭도이다. 도 16에 도시된 바와 같이, 제1 버퍼회로(BUF1)는 인에이블신호생성회로(451), 버퍼(452) 및 데이터입출력회로(453)를 포함할 수 있다.
인에이블신호생성회로(451)는 제1 지연코드(D_CD1<1:L>)의 로직레벨 조합에 따라 지연량이 조절될 수 있다. 인에이블신호생성회로(451)는 제1 지연코드(D_CD1<1:L>)에 의해 조절된 지연량으로 인에이블시점이 조절되는 제1 버퍼인에이블신호(BUF_EN1)를 생성할 수 있다. 인에이블신호생성회로(451)는 제1 지연코드(D_CD1<1:L>)가 다운카운팅될 때마다 지연량이 순차적으로 감소할 수 있다. 인에이블신호생성회로(451)는 제1 지연코드(D_CD1<1:L>)가 업운카운팅될 때마다 지연량이 순차적으로 증가할 수 있다.
버퍼(452)는 제1 버퍼인에이블신호(BUF_EN1)가 인에이블되는 시점에 동기 되어 제1 스트로브신호(DQS1)를 수신할 수 있다. 버퍼(452)는 제1 버퍼인에이블신호(BUF_EN1)가 인에이블되는 시점에 동기 되어 제1 스트로브신호(DQS1)를 제1 샘플링신호(DSP1)로 출력할 수 있다. 버퍼(452)는 제1 버퍼인에이블신호(BUF_EN1)가 인에이블되는 구간 동안 제1 스트로브신호(DQS1)를 제1 샘플링신호(DSP1)로 출력할 수 있다.
데이터입출력회로(453)는 노멀동작의 리드동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD<1>)를 생성할 수 있다. 데이터입출력회로(453)는 노멀동작의 리드동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 메모리회로(DRAM1)으로부터 입력되는 제1 데이터(DA1)를 샘플링하여 제1 전달데이터(TD<1>)를 생성할 수 있다. 데이터입출력회로(453)는 노멀동작의 리드동작 시 제1 전달데이터(TD<1>)를 에러검출회로(240)로 출력할 수 있다. 데이터입출력회로(453)는 노멀동작의 라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 제1 전달데이터(TD<1>)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 데이터입출력회로(453)는 노멀동작의 라이트동작 시 제1 샘플링신호(DSP1)에 동기 되어 에러검출회로(440)로부터 입력되는 제1 전달데이터(TD<1>)를 샘플링하여 제1 데이터(DA1)를 생성할 수 있다. 데이터입출력회로(453)는 노멀동작의 라이트동작 시 제1 데이터(DA1)를 제1 메모리회로(DRAM1)로 출력할 수 있다.
도 17을 참고하여 본 발명의 다른 실시예에 따른 패트롤트레이닝동작을 설명하되, 노멀동작 중 제1 메모리회로(DRAM1)에 대한 리드동작을 예를 들어 설명하면 다음과 같다.
패트롤트레이닝동작 이전(Before Training)에 제1 버퍼인에이블신호(BUF_EN)는 제1 데이터(DA1)를 스트로빙하기 위한 제1 스트로브신호(DQS1)의 펄스가 생성된 이후 인에이블된다. 제1 버퍼인에이블신호(BUF_EN)의 인에이블 구간 동안 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)는 제1 데이터(DA1)가 출력된 이후 발생함을 알 수 있다. 이때, 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)는 에러가 발생한다.
패트롤트레이닝동작 중(During Training)에 제1 지연코드(DCD1<1:L>)가 다운카운팅될 때 제1 버퍼인에이블신호(BUF_EN)는 순차적으로 빠르게 생성되고, 제1 지연코드(DCD1<1:L>)가 업카운팅될 때 제1 버퍼인에이블신호(BUF_EN)는 순차적으로 느리게 생성됨을 알 수 있다.
패트롤트레이닝동작 중(During Training)에 제1 지연코드(DCD1<1:L>)가 다운카운팅될 때 제1 버퍼인에이블신호(BUF_EN)에 의해 순차적으로 빠르게 생성되는 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)의 에러 발생여부에 따라 에러검출회로(240)는 불량정보신호(FA_IF<1:M>)를 순차적으로 생성할 수 있다. 제1 전달데이터(TD<1>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 전달데이터(TD<1>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성된다.
패트롤트레이닝동작 중(During Training)에 제1 지연코드(DCD1<1:L>)가 업운카운팅될 때 제1 버퍼인에이블신호(BUF_EN)에 의해 순차적으로 빠르게 생성되는 제1 샘플링신호(DSP1)에 동기 되어 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)의 에러 발생여부에 따라 에러검출회로(240)는 불량정보신호(FA_IF<1:M>)를 순차적으로 생성할 수 있다. 제1 전달데이터(TD<1>)에 에러가 발생하지 않을때 불량정보신호(FA_IF<1:M>)의 비트들은 로직하이레벨로 생성되고, 제1 전달데이터(TD<1>)에 에러가 발생할 때 불량정보신호(FA_IF<1:M>)의 비트들은 로직로우레벨로 생성된다.
패트롤트레이닝동작 이후(After Training)에 제1 데이터(DA1)와 제1 버퍼인에이블신호(BUF_EN1)의 인에이블 구간 동안 제1 스트로브신호(DQS1)로부터 생성되는 제1 샘플링신호(DSP1)의 에지를 살펴보면, 제1 샘플링신호(DSP1)의 에지에 제1 데이터(DA1)의 로직레벨이 유지되는 시점임을 알 수 있다. 이때, 제1 데이터(DA1)로부터 생성되는 제1 전달데이터(TD<1>)는 에러가 발생하지 않는다. 여기서, 제1 지연코드(DCD1<1:L>)는 앞서 도 8에 설명한 바와 같이 에러정보신호(FA_IF<1:M>)가 로직하이레벨로 인에이블되는 구간(PASS)의 중간값일 때의 로직레벨 조합으로 생성되된다. 이때, 제1 지연코드(DCD1<1:L>)는 최적값으로 설정된다.
이와 같은 본 발명의 다른 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행할 수 있다. 본 발명의 다른 실시예에 따른 반도체시스템은 라이트동작 및 리드동작 중 컨트롤러와 메모리회로를 연결하는 신호전송회로의 지연량을 조절하는 패트롤트레이닝동작을 수행함으로써 신호전송회로를 통해 입출력되는 데이터의 신뢰성을 확보할 수 있다.
제1 실시예
1. 반도체시스템 10. 호스트
20. 컨트롤러
DRAM1 ~ DARM20: 제1 내지 제20 메모리회로
210. 프로세스제어회로 211. 불량분석회로
212. 트레이닝제어신호생성회로 213. 코드생성회로
220. 동작제어회로 221. 트레이닝제어회로
222. 리드라이트제어회로 230. 스크럽제어회로
231. 스크럽제어신호생성회로 232. 스크럽어드레스생성회로
240. 에러검출회로 241. 패리티생성회로
242. 신드롬생성회로 243. 정정데이터생성회로
244. 데이터출력회로 245. 에러정보신호생성회로
250. 신호전송회로 251. 지연셀
252. 데이터샘플링회로
제2 실시예
20A. 컨트롤러
DRAM1 ~ DARM20: 제1 내지 제20 메모리회로
210A. 프로세스제어회로 220A. 동작제어회로
230A. 에러검출회로 240A. 신호전송회로
310. 메모리영역 320. 전압생성기
330. 데이터처리회로
제3 실시예
2. 반도체시스템 30. 호스트
40. 컨트롤러
DRAM1 ~ DARM20: 제1 내지 제20 메모리회로
410. 프로세스제어회로 420. 동작제어회로
430. 스크럽제어회로 440. 에러검출회로
450. 신호전송회로 451. 인에이블신호생성회로
452. 버퍼 453. 데이터입출력회로

Claims (26)

  1. 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 지연셀의 지연량을 조절하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 지연량을 조절하는 프로세스제어회로;
    호스트로부터 커맨드와 어드레스를 수신하고, 노멀동작을 수행하기 위한 라이트신호, 리드신호 및 내부어드레스를 생성하여 다수의 메모리회로로 출력하며, 스크럽제어신호를 수신하여 리드모디파이라이트동작을 수행하는 동작제어회로;
    상기 어드레스들을 다수 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 스크럽제어신호를 생성하는 스크럽제어회로; 및
    상기 리드모디파이라이트동작 시 상기 대상 메모리회로로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템.
  2. 제 1 항에 있어서,
    상기 프로세스제어회로는 상기 노멀동작 중 상기 패트롤트레이닝동작을 수행하도록 결정하는 반도체시스템.
  3. 제 1 항에 있어서,
    상기 프로세스제어회로는 상기 패트롤트레이닝동작 중 상기 대상 메모리회로에 연결된 지연셀의 지연량을 조절하기 위한 지연코드신호를 다운카운팅하거나 업카운팅한 이후 상기 불량정보신호를 토대로 상기 지연코드신호를 고정하는 반도체시스템.
  4. 제 1 항에 있어서, 상기 프로세스제어회로는
    상기 스크럽제어신호가 입력될 때 상기 불량정보신호를 토대로 트레이닝어드레스에서 불량이 발생했는지 분석하고 불량분석결과신호를 출력하는 불량분석회로;
    트레이닝시작신호를 생성하고, 상기 불량분석결과신호를 토대로 다운제어신호, 업제어신호 및 코드출력제어신호를 생성하는 트레이닝제어신호생성회로; 및
    상기 다운제어신호가 입력될 때 상기 지연코드신호를 순차적으로 다운카운팅하고, 상기 업제어신호가 입력될 때 상기 지연코드신호를 순차적으로 업카운팅하되, 상기 코드출력제어신호가 입력될 때 상기 지연코드신호를 고정하는 코드생성회로를 포함하는 반도체시스템.
  5. 제 4 항에 있어서, 상기 코드생성회로는
    상기 코드출력제어신호가 입력될 때 상기 지연코드신호가 다운카운팅된 최소값과 상기 지연코드신호가 업카운팅된 최대값의 중간값으로 상기 지연코드신호를 고정하는 반도체시스템.
  6. 제 1 항에 있어서, 상기 동작제어회로는
    상기 스크럽제어신호가 입력될 때 상기 스크럽제어회로로부터 스크럽어드레스를 전달받아 트레이닝어드레스를 생성하고, 상기 리드모디파이라이트동작을 수행하기 위한 트레이닝리드신호 및 트레이닝라이트신호를 생성하는 트레이닝제어회로; 및
    상기 노멀동작을 수행할 때 라이트동작을 수행하기 위한 상기 라이트신호 및 리드동작을 수행하기 위한 상기 리드신호를 생성하고, 상기 어드레스로부터 상기 내부어드레스를 생성하는 리드라이트제어회로를 포함하는 반도체시스템.
  7. 제 1 항에 있어서, 상기 스크럽제어회로는
    어드레스저장완료신호가 입력될 때 상기 스크럽제어신호를 생성하는 스크럽제어신호생성회로; 및
    트레이닝시작신호가 입력되면 상기 어드레스를 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 어드레스저장완료신호를 생성하며, 저장된 상기 어드레스들을 스크럽어드레스로 출력하는 스크럽어드레스생성회로를 포함하는 반도체시스템.
  8. 제 7 항에 있어서,
    상기 프로세스제어회로는 상기 어드레스저장완료신호가 생성될 때 상기 지연셀의 상기 지연량을 초기화하는 반도체시스템.
  9. 제 1 항에 있어서, 상기 에러검출회로는
    상기 노멀동작의 라이트동작 시 상기 호스트로부터 출력되는 라이트데이터를 토대로 ECC 인코딩동작을 수행하여 상기 라이트데이터의 에러정보인 패리티를 생성하는 패리티생성회로;
    상기 노멀동작의 리드동작 시 상기 데이터로부터 생성되는 상기 전달데이터를 토대로 상기 전달데이터의 에러를 정정하기 위한 신드롬을 생성하는 신드롬생성회로;
    상기 신드롬을 토대로 ECC 디코딩동작을 수행하여 상기 전달데이터의 에러를 정정하여 정정데이터를 생성하는 정정데이터생성회로;
    상기 노멀동작의 상기 라이트동작 시 상기 라이트데이터 및 상기 라이트의 에러정보인 상기 패리티를 합성하여 상기 전달데이터로 출력하고, 상기 노멀동작의 상기 리드동작 시 상기 정정데이터를 리드데이터로 출력하는 데이터출력회로; 및
    상기 신드롬을 토대로 상기 전달데이터의 에러를 감지하여 상기 불량정보신호를 생성하는 불량정보신호생성회로를 포함하는 반도체시스템.
  10. 제 1 항에 있어서,
    상기 대상 메모리에 연결되는 입출력회로를 더 포함하고,
    상기 입출력회로는
    상기 지연코드신호에 의해 조절되는 지연량으로 스트로브신호를 지연하여 샘플링신호를 생성하는 상기 지연셀; 및
    상기 샘플링신호에 동기 되어 상기 대상 메모리로부터 입력되는 데이터를 샘플링하여 전달데이터를 생성하는 데이터샘플링회로를 포함하는 반도체시스템.
  11. 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 지연셀의 지연량을 조절하며, 상기 대상 메모리에 대한 불량정보신호를 토대로 상기 지연량을 조절하는 프로세스제어회로;
    호스트로부터 커맨드와 어드레스를 수신하고, 상기 커맨드로부터 노멀동작을 수행하기 위한 라이트신호 및 리드신호를 생성하며, 상기 어드레스로부터 상기 노멀동작을 수행하기 위한 내부어드레스를 생성하는 동작제어회로; 및
    상기 대상 메모리회로로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 전자장치.
  12. 제 11 항에 있어서,
    상기 프로세스제어회로는 상기 노멀동작 중 상기 패트롤트레이닝동작을 수행하도록 결정하는 전자장치.
  13. 제 11 항에 있어서,
    상기 프로세스제어회로는 상기 패트롤트레이닝동작 중 상기 대상 메모리회로에 연결된 지연셀의 지연량을 조절하기 위한 지연코드신호를 다운카운팅하거나 업카운팅한 이후 상기 불량정보신호를 토대로 상기 지연코드신호를 고정하는 전자장치.
  14. 제 11 항에 있어서, 상기 프로세스제어회로는
    상기 불량정보신호를 토대로 상기 어드레스에서 불량이 발생했는지 분석하고 불량분석결과신호를 출력하는 불량분석회로;
    상기 불량분석결과신호를 토대로 다운제어신호, 업제어신호 및 코드출력제어신호를 생성하는 트레이닝제어신호생성회로; 및
    상기 다운제어신호가 입력될 때 상기 지연코드신호를 순차적으로 다운카운팅하고, 상기 업제어신호가 입력될 때 상기 지연코드신호를 순차적으로 업카운팅하되, 상기 코드출력제어신호가 입력될 때 상기 지연코드신호를 고정하는 코드생성회로를 포함하는 전자장치.
  15. 제 14 항에 있어서, 상기 코드생성회로는
    상기 코드출력제어신호가 입력될 때 상기 지연코드신호가 다운카운팅된 최소값과 상기 지연코드신호가 업카운팅된 최대값의 중간값으로 상기 지연코드신호를 고정하는 전자장치.
  16. 제 14 항에 있어서,
    상기 불량분석회로는 상기 리드신호가 생성된 후 상기 불량정보신호를 토대로 상기 불량분석결과신호를 생성하는 것을 더 포함하는 전자장치.
  17. 제 11 항에 있어서, 상기 에러검출회로는
    상기 노멀동작의 라이트동작 시 상기 호스트로부터 출력되는 라이트데이터를 토대로 ECC 인코딩동작을 수행하여 상기 라이트데이터의 에러정보인 상기 패리티를 생성하는 패리티생성회로;
    상기 노멀동작의 리드동작 시 상기 데이터로부터 생성되는 상기 전달데이터를 토대로 상기 전달데이터의 에러를 정정하기 위한 신드롬을 생성하는 신드롬생성회로;
    상기 신드롬을 토대로 ECC 디코딩동작을 수행하여 상기 전달데이터의 에러를 정정하여 정정데이터를 생성하는 정정데이터생성회로;
    상기 노멀동작의 상기 리드동작 시 상기 정정데이터를 리드데이터로 출력하는 데이터출력회로; 및
    상기 신드롬을 토대로 상기 전달데이터의 에러를 감지하여 상기 불량정보신호를 생성하는 불량정보신호생성회로를 포함하는 전자장치.
  18. 제 11 항에 있어서,
    상기 대상 메모리회로에 연결되는 입출력회로를 더 포함하고,
    상기 입출력회로는
    상기 지연코드신호에 의해 조절되는 지연량으로 스트로브신호를 지연하여 샘플링신호를 생성하는 상기 지연셀; 및
    상기 샘플링신호에 동기 되어 상기 대상 메모리회로로부터 입력되는 데이터를 샘플링하여 전달데이터를 생성하는 데이터샘플링회로를 포함하는 반도체시스템.
  19. 패트롤트레이닝동작을 결정하고, 대상 메모리회로에서 데이터의 로직레벨을 결정하는 기준전압의 레벨을 조절하기 위한 전압코드신호를 생성하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 전압코드신호를 조절하는 프로세스제어회로;
    호스트로부터 커맨드와 어드레스를 수신하고, 상기 커맨드로부터 노멀동작을 수행하기 위한 라이트신호 및 리드신호를 생성하며, 상기 어드레스로부터 상기 노멀동작을 수행하기 위한 내부어드레스를 생성하는 동작제어회로; 및
    상기 대상 메모리회로로부터 상기 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템.
  20. 제 19 항에 있어서,
    상기 프로세스제어회로는 상기 노멀동작 중 리드동작 시 상기 패트롤트레이닝동작을 수행하도록 결정하는 반도체시스템.
  21. 제 19 항에 있어서, 상기 프로세스제어회로는
    상기 불량정보신호를 토대로 상기 어드레스에서 불량이 발생했는지 분석하고 불량분석결과신호를 출력하는 불량분석회로;
    상기 불량분석결과신호를 토대로 다운제어신호, 업제어신호 및 코드출력제어신호를 생성하는 트레이닝제어신호생성회로; 및
    상기 다운제어신호가 입력될 때 상기 전압코드신호를 순차적으로 다운카운팅하고, 상기 업제어신호가 입력될 때 상기 전압코드신호를 순차적으로 업카운팅하되, 상기 코드출력제어신호가 입력될 때 상기 전압코드신호를 고정하는 코드생성회로를 포함하는 전자장치.
  22. 제 21 항에 있어서, 상기 코드생성회로는
    상기 코드출력제어신호가 입력될 때 상기 전압코드신호가 다운카운팅된 최소값과 상기 전압코드신호가 업카운팅된 최대값의 중간값으로 상기 전압코드신호를 고정하는 반도체시스템.
  23. 제 19 항에 있어서, 상기 대상 메모리회로는
    상기 리드신호 및 상기 내부어드레스를 토대로 내부에 저장된 내부데이터를 출력하는 메모리영역;
    상기 전압코드신호의 로직레벨 조합에 따라 전압레벨이 조절되는 상기 기준전압을 생성하는 전압생성기; 및
    상기 기준전압과 상기 내부데이터의 레벨을 비교하여 상기 데이터를 생성하는 데이터처리회로를 포함하는 반도체시스템.
  24. 패트롤트레이닝동작을 결정하고, 대상 메모리회로에 연결된 버퍼의 인에이블 시점을 조절하며, 상기 대상 메모리회로에 대한 불량정보신호를 토대로 상기 버퍼회로의 인에이블 시점을 조절하는 프로세스제어회로;
    호스트로부터 커맨드와 어드레스를 수신하고, 노멀동작을 수행하기 위한 라이트신호, 리드신호 및 내부어드레스를 생성하여 다수의 메모리로 출력하며, 스크럽제어신호를 수신하여 리드모디파이라이트동작을 수행하는 동작제어회로;
    상기 어드레스들을 다수 저장하고, 저장된 상기 어드레스들의 개수가 기 설정된 값에 도달할 경우 상기 스크럽제어신호를 생성하는 스크럽제어회로; 및
    상기 리드모디파이라이트동작 시 상기 대상 메모리로부터 데이터를 수신하여 상기 데이터의 에러를 검출하고, 상기 데이터의 에러 발생여부에 따라 상기 불량정보신호를 생성하는 에러검출회로를 포함하는 반도체시스템.
  25. 제 24 항에 있어서,
    상기 프로세스제어회로는 상기 패트롤트레이닝동작 중 상기 대상 메모리회로에 연결된 상기 버퍼의 인에이블 시점을 조절하기 위한 지연코드신호를 다운카운팅하거나 업카운팅한 이후 상기 불량정보신호를 토대로 상기 지연코드신호를 고정하는 반도체시스템.
  26. 제 24 항에 있어서,
    버퍼회로를 더 포함하고,
    상기 버퍼회로는
    상기 지연코드에 의해 조절되는 지연량으로 인에이블시점이 조절되는 버퍼인에이블신호를 생성하는 인에이블신호생성회로;
    상기 버퍼인에이블신호가 인에이블되는 시점에 동기 되어 스트로브신호를 샘플링신호로 출력하는 상기 버퍼; 및
    상기 샘플링신호에 동기 되어 상기 대상 메모리로부터 입력되는 데이터를 샘플링하여 전달데이터를 생성하는 데이터입출력회로를 포함하는 반도체시스템.
KR1020210103247A 2021-08-05 2021-08-05 트레이닝동작을 수행하기 위한 반도체시스템 KR20230021409A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210103247A KR20230021409A (ko) 2021-08-05 2021-08-05 트레이닝동작을 수행하기 위한 반도체시스템
US17/523,644 US11579966B1 (en) 2021-08-05 2021-11-10 Semiconductor system related to performing a training operation
CN202210193816.5A CN115705264A (zh) 2021-08-05 2022-03-01 与执行训练操作相关的半导体系统和电子器件
TW111112423A TW202321916A (zh) 2021-08-05 2022-03-31 與執行訓練操作相關的半導體系統和電子裝置
DE102022208116.1A DE102022208116A1 (de) 2021-08-05 2022-08-04 Halbleitersystem für die durchführung eines trainingsbetriebs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210103247A KR20230021409A (ko) 2021-08-05 2021-08-05 트레이닝동작을 수행하기 위한 반도체시스템

Publications (1)

Publication Number Publication Date
KR20230021409A true KR20230021409A (ko) 2023-02-14

Family

ID=84975178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210103247A KR20230021409A (ko) 2021-08-05 2021-08-05 트레이닝동작을 수행하기 위한 반도체시스템

Country Status (5)

Country Link
US (1) US11579966B1 (ko)
KR (1) KR20230021409A (ko)
CN (1) CN115705264A (ko)
DE (1) DE102022208116A1 (ko)
TW (1) TW202321916A (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002216481A (ja) * 2001-01-19 2002-08-02 Hitachi Ltd 半導体集積回路装置
US8527836B2 (en) 2011-07-01 2013-09-03 Intel Corporation Rank-specific cyclic redundancy check
KR102647418B1 (ko) * 2016-06-23 2024-03-13 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10331517B2 (en) 2016-08-26 2019-06-25 Qualcomm Incorporated Link error correction in memory system
KR20180083975A (ko) 2017-01-13 2018-07-24 삼성전자주식회사 트레이닝 동작을 수행하는 메모리 시스템
KR102658230B1 (ko) * 2018-06-01 2024-04-17 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20210029616A (ko) * 2019-09-06 2021-03-16 에스케이하이닉스 주식회사 반도체장치
KR20210088917A (ko) * 2020-01-07 2021-07-15 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20220021097A (ko) * 2020-08-13 2022-02-22 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Also Published As

Publication number Publication date
DE102022208116A1 (de) 2023-02-09
US11579966B1 (en) 2023-02-14
TW202321916A (zh) 2023-06-01
US20230043623A1 (en) 2023-02-09
CN115705264A (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
US10803971B2 (en) Device for supporting error correction code and test method thereof
US20090319864A1 (en) Method and apparatus for dynamically configurable multi level error correction
US20070086252A1 (en) Semiconductor memory device
US10445176B2 (en) Memory system, memory device and operating method thereof
US20220004457A1 (en) Nonvolatile memory device and memory system including nonvolatile memory device
US10658064B2 (en) Memory device and test method thereof
US10936409B2 (en) Memory system and operating method of the memory system
US20180165151A1 (en) Memory system and error correcting method of the same
TWI808098B (zh) 用於支持錯誤更正碼的裝置及其測試方法
KR20180029803A (ko) 반도체장치 및 반도체시스템
CN109102836B (zh) 半导体存储装置
JP2006268971A (ja) 半導体記憶装置及びそのテスト方法
JP6387883B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法
KR20190069805A (ko) 반도체시스템
US20040160853A1 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
KR20230021409A (ko) 트레이닝동작을 수행하기 위한 반도체시스템
US20170344422A1 (en) Semiconductor devices and semiconductor systems
US10310939B2 (en) Semiconductor memory system and data writing method
US9053772B2 (en) Method for conducting reference voltage training
KR100803373B1 (ko) 반도체 메모리 장치의 데이터 에러 측정 회로
KR20170130684A (ko) 반도체장치
US11681580B2 (en) Semiconductor system related to performing an error correction operation using an error correction method
TW202147325A (zh) 資料存取系統及操作資料存取系統的方法
US11599413B2 (en) Electronic system including error calculation circuit for performing error correction operation
US11921578B2 (en) Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices