KR102929112B1 - 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템 - Google Patents

간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템

Info

Publication number
KR102929112B1
KR102929112B1 KR1020200126404A KR20200126404A KR102929112B1 KR 102929112 B1 KR102929112 B1 KR 102929112B1 KR 1020200126404 A KR1020200126404 A KR 1020200126404A KR 20200126404 A KR20200126404 A KR 20200126404A KR 102929112 B1 KR102929112 B1 KR 102929112B1
Authority
KR
South Korea
Prior art keywords
register
repair
logic
core processor
bisr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020200126404A
Other languages
English (en)
Other versions
KR20220042947A (ko
Inventor
김보라
우수해
임재일
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020200126404A priority Critical patent/KR102929112B1/ko
Priority to US17/203,605 priority patent/US11424003B2/en
Priority to CN202110651801.4A priority patent/CN114333969A/zh
Publication of KR20220042947A publication Critical patent/KR20220042947A/ko
Priority to US17/863,773 priority patent/US11804278B2/en
Application granted granted Critical
Publication of KR102929112B1 publication Critical patent/KR102929112B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/14Implementation of control logic, e.g. test mode decoders
    • 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/36Data generation devices, e.g. data inverters
    • 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/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/44Indication or identification of errors, e.g. for repair
    • 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
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

메모리 컨트롤러는, 메모리 장치의 셀프-리페어 동작을 제어하는 리페어 커맨드들에 대응하는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서와, 코어 프로세서로부터 복수의 레지스터 값들 중 적어도 하나 이상의 레지스터 값들을 전송받고, 전송된 레지스터 값들을 리페어 커맨드들로 변환하여 메모리 장치로 출력시키는 빌트-인 셀프-리페어(BISR) 로직을 포함한다. 코어 프로세서는, 외부의 펌웨어로부터 전송되는 펌웨어 지시에 응답하여 레지스터 값들을 BISR 로직으로 전송하도록 구성된다.

Description

간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템{Memory controller havig symplified BISR logic, method of operating the memory controller, and memroy system including the memory controller}
본 개시의 여러 실시예들은 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것으로서, 특히 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템에 관한 것이다.
반도체 기술이 진보함에 따라 자료를 저장하는 메모리 소자의 대용량화 및 고성능화가 빠르게 진행되고 있다. 최근의 메모리 소자의 양산에 있어서, 수율과 품질을 만족시키기 위해서는 고장 셀(faulty cell)을 정상적인 스페어 셀(spare cell)로 대체하여 리페어(repair)하는 방식의 채택이 불가피하다. 대부분의 SOC(System On Chip)의 내부에 사용되는 내장 메모리(embedded memory)에 대해서는 외부의 비싼 테스트 장치를 이용하여 테스트와 리페어를 진행하는 것이 많은 비용을 요구한다. 이에 따라 빌트-인 자체 테스트(Built-in Self Test; 이하 BIST)를 통한 고장 정보 취득과, 빌트-인 셀프-리페어(Built-in Self-Repair; 이하 BISR)를 이용한 리페어 방법이 많이 사용되고 있다. 통상적으로 BISR은, 복잡한 구성의 로직, 예컨대 유한 상태 머신(FSM; Finite State Machine)을 포함하는 로직으로 구성되며, 이에 따라 메모리 장치에 대한 정형화된 셀프-리페어 동작만을 지원하여, 메모리 시스템에 대한 하드웨어 변경, 예컨대 메모리 장치의 셀프-리페어 스킴(scheme) 변경 등에 유연하게 대처하기 어렵다.
본 출원이 해결하고자 하는 과제는, 로직 구성이 간단하고 메모리 시스템의 하드웨어 변경에 유연하게 대처할 수 있도록 하는 BISR 로직을 포함하는 메모리 컨트롤러를 제공하는 것이다.
본 출원이 해결하고자 하는 다른 과제는, 위와 같은 메모리 컨트롤러의 동작 방법을 제공하는 것이다.
본 출원이 해결하고자 하는 또 다른 과제는, 위와 같은 메모리 컨트롤러를 포함하는 메모리 시스템을 제공하는 것이다.
본 개시의 일 예에 따른 메모리 컨트롤러는, 메모리 장치의 셀프-리페어 동작을 제어하는 리페어 커맨드들에 대응하는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서와, 상기 코어 프로세서로부터 상기 복수의 레지스터 값들 중 적어도 하나 이상의 레지스터 값들을 전송받고, 전송된 상기 레지스터 값들을 상기 리페어 커맨드들로 변환하여 상기 메모리 장치로 출력시키는 빌트-인 셀프-리페어(BISR) 로직을 포함한다. 상기 코어 프로세서는, 외부의 펌웨어로부터 전송되는 펌웨어 지시에 응답하여 상기 레지스터 값들을 상기 BISR 로직으로 전송하도록 구성된다.
본 개시의 일 예에 따른 메모리 컨트롤러의 동작 방법은, 각각이 레지스터 어드레스에 의해 특정되는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서와, 메모리 장치의 셀프-리페어 동작을 제어하는 리페어 커맨드를 발생시키는 BISR 로직을 포함하는 메모리 컨트롤러의 동작 방법에 있어서, 상기 메모리 장치에 대한 테스트가 완료되면, 펌웨어 지시가 지정하는 시작 레지스터 어드레스의 레지스터 값을 상기 코어 프로세서로부터 상기 BISR 로직으로 전송하는 단계와, 그리고 상기 코어 프로세서로부터 상기 BISR 로직으로 전송된 레지스터 값을 상기 리페어 커맨드로 변환하여 상기 메모리 장치로 전송시키는 단계를 포함한다.
본 개시의 일 예에 따른 메모리 시스템은, 리페어 커맨드에 응답하여 셀프-리페어 동작을 수행하도록 구성된 메모리 장치와, 상기 메모리 장치에 대한 테스트를 수행한 후 상기 리페어 커맨드를 상기 메모리 장치로 전송하도록 구성된 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 각각이 상기 리페어 커맨드에 대응하는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서와, 그리고 상기 코어 프로세서로부터 상기 복수의 레지스터 값들 중 적어도 하나 이상의 레지스터 값들을 전송받고, 전송된 상기 레지스터 값들을 상기 리페어 커맨드들로 변환하여 상기 메모리 장치로 출력시키는 빌트-인 셀프-리페어(BISR) 로직을 포함한다. 상기 코어 프로세서는, 외부의 펌웨어로부터 전송되는 펌웨어 지시에 응답하여 상기 레지스터 값들을 상기 BISR 로직으로 전송하도록 구성된다.
여러 실시예들에 따르면, 로직 구성이 간단하고 메모리 시스템의 하드웨어 변경에 유연하게 대처할 수 있도록 하는 BISR 로직을 포함하는 메모리 컨트롤러와, 그 메모리 컨트롤러의 동작 방법과, 그리고 그 메모리 컨트롤러를 포함하는 메모리 시스템이 제공된다.
도 1은 본 개시의 일 예에 따른 메모리 컨트롤러를 나타내 보인 블록도이다.
도 2는 본 개시에 따른 메모리 컨트롤러의 코어 프로세서 내에 배치되는 레지스터 파일 구성의 일 예를 나타내 보인 도면이다.
도 3은 도 2의 레지스터 파일을 구성하는 레지스터 세그먼트 구성의 일 예를 나타내 보인 도면이다.
도 4는 본 개시에 따른 메모리 컨트롤러의 BISR 로직 구성의 일 예를 나타내 보인 도면이다.
도 5는 도 1의 메모리 컨트롤러의 코어 프로세서 및 BISR 로직 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 6은 도 1의 메모리 컨트롤러의 코어 프로세서 및 BISR 로직 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 7은 본 개시의 일 예에 따른 메모리 시스템을 나타내 보인 도면이다.
도 8은 도 7의 메모리 시스템의 테스트부 구성의 일 예를 나타내 보인 도면이다.
도 9는 도 8의 테스트부의 코어 프로세서 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 10은 도 8의 테스트부의 BISR 로직 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 11은 도 8의 테스트부의 코어 프로세서 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 12는 도 8의 테스트부의 BISR 로직 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 13은 본 개시의 다른 예에 따른 메모리 시스템을 나타내 보인 도면이다.
도 14는 본 개시의 또 다른 예에 따른 메모리 시스템을 나타내 보인 도면이다.
도 15는 본 개시의 또 다른 예에 따른 메모리 시스템을 나타내 보인 도면이다.
본 출원의 예의 기재에서 "제1" 및 "제2"와 같은 기재는 요소를 구분하기 위한 것이며, 부재 자체를 한정하거나 특정한 순서를 의미하는 것으로 사용된 것은 아니다. 어느 한 구성 요소가 다른 구성 요소에 "연결되어 있다"거나 "접속되어 있다"의 기재는, 다른 구성 요소에 전기적 또는 기계적으로 직접 연결되어 있거나 또는 접속되어 있을 수 있으며, 또는, 중간에 다른 별도의 구성 요소들이 개재되어 연결 관계 또는 접속 관계를 구성할 수도 있다. "기 설정된"이라는 용어는 프로세스나 알고리즘에서 매개변수를 사용할 때 매개변수의 수치가 미리 결정되어 있음을 의미한다. 매개변수의 수치는 실시예에 따라서 프로세스나 알고리즘이 시작할 때 설정되거나 프로세스나 알고리즘이 수행되는 구간 동안 설정될 수 있다. "로직하이레벨" 및 "로직로우레벨"은 신호들의 로직레벨들을 설명하기 위해 사용된다. "로직하이레벨"을 갖는 신호는 "로직로우레벨"을 갖는 신호와 구별된다. 예를 들어, 제1 전압을 갖는 신호가 "로직하이레벨"에 대응할 때 제2 전압을 갖는 신호는 "로직로우레벨"에 대응할 수 있다. 일 실시예에 따라 "로직하이레벨"은 "로직로우레벨"보다 큰 전압으로 설정될 수 있다. 한편, 신호들의 로직레벨들은 실시예에 따라서 다른 로직레벨 또는 반대의 로직레벨로 설정될 수 있다. 예를 들어, 로직하이레벨을 갖는 신호는 실시예에 따라서 로직로우레벨을 갖도록 설정될 수 있고, 로직로우레벨을 갖는 신호는 실시예에 따라서 로직하이레벨을 갖도록 설정될 수 있다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다.
도 1은 본 개시의 일 예에 따른 메모리 컨트롤러(100)를 나타내 보인 블록도이다. 도 1을 참조하면, 본 예에 따른 메모리 컨트롤러(100)는, 코어 프로세서(110) 및 BISR(Built-In Self-Repair) 로직(120)을 포함한다. 메모리 컨트롤러(100)는, 호스트(host)로부터의 요청에 응답하여 메모리 장치(memory device)를 제어한다. 메모리 컨트롤러(100)는, 외부의 펌웨어(firmware)와 통신할 수 있도록 구성된다. 일 예에서 코어 프로세서(110)는, 레지스터 파일(register file)(112)을 포함한다. 레지스터 파일(112)에는 복수의 레지스터값들이 저장된다. 복수의 레지스터값들 각각은, 메모리 장치의 셀프-리페어 동작을 위한 리페어 커맨드(command)들 각각에 대응된다. 레지스터 파일(112)에 대해서는 아래에서 보다 상세하게 설명하기로 한다. BISR 로직(120)은, 코어 프로세서(110)로부터 복수의 레지스터값들 중 적어도 하나 이상의 레지스터값들을 전송받는다. BISR 로직(120)은, 전송받은 레지스터값들을 메모리 장치의 셀프-리페어(self-repair) 동작, 예컨대 럽쳐(rupture) 동작을 요청하는 리페어 커맨드들로 변환한다. BISR 로직(120)은, 변환된 리페어 커맨드들 또는 그들에 대응하는 커맨드 신호들을 메모리 장치로 출력시킨다.
코어 프로세서(110)에 의한 레지스터 값들 출력은, 외부의 펌웨어로부터 전송되는 펌웨어 지시(firmware instruction)에 응답하여 이루어질 수 있다. 일 예에서 펌웨어는, 버스(bus)를 통해 코어 프로세서(110)와 통신할 수 있다. 다른 예에서 펌웨어는, 호스트 또는 호스트 컨트롤러 내에 배치될 수도 있다. 어느 경우이던지 코어 프로세서(110) 내의 레지스터 파일(112)에 저장된 레지스터 값들 중, 펌웨어로부터 전송되는 펌웨어 지시에 의해 선택된 레지스터 값들이 BISR 로직(120)으로 전송된다. 코어 프로세서(110) 내의 레지스터 파일(112)에 저장된 레지스터 값들 각각이 메모리 장치에서 셀프-리페어 동작, 예컨대 럽쳐 동작을 수행하기 위해 인식할 수 있는 리페어 커맨드(command)들 각각에 대응되므로, BISR 로직(120)은, 코어 프로세서(110)로부터 전송되는 레지스터 값을 리페어 커맨드로 변환 시켜주는 기능만 수행하는 것이 허용된다. 이에 따라 본 예에 따른 메모리 컨트롤러(100)에서의 BISR 로직(120)을 구현하는데 있어서, 메모리 장치에서의 럽쳐 동작을 위한 리페어 커맨드들을 직접 생성시키기 위한 로직, 예컨대 유한 상태 머신(Finite State Machine; FSM)이 요구되지 않는다. 따라서 본 예에 따른 메모리 컨트롤러(100)는, FSM을 포함하는 로직에 비하여 상대적으로 간단하게 구성되는 BISR 로직(120)을 갖는다.
도 2는 본 개시에 따른 메모리 컨트롤러(100)의 코어 프로세서(110) 내에 배치되는 레지스터 파일(112) 구성의 일 예를 나타내 보인 도면이다. 그리고 도 3은 도 2의 레지스터 파일(112)을 구성하는 두번째 레지스터 세그먼트(112-2) 구성의 일 예를 나타내 보인 도면이다. 먼저 도 2를 참조하면, 레지스터 파일(112)은, 복수개, 예컨대 (M+1)개("M"은 0보다 큰 정수)의 레지스터 세그먼트들(register segments)(112-0, 112-1, …, 112-M)로 구성되는 데이터 구조를 제공한다. 레지스터 파일(112)의 실제 사이즈(size)는, 조절 가능한 디자인 파라메터(scalable design parameter)이다. 레지스터 세그먼트들(112-0, 112-1, …, 112-M) 각각은, 각각이 특정 레지스터 값을 저장하는 복수의 물리적 레지스터들을 포함한다. 일 예에서 레지스터 세그먼트들(112-0, 112-1, …, 112-M) 중 적어도 두 개는 서로 다른 개수의 물리적 레지스터들을 포함할 수 있다.
복수의 물리적 레지스터들 각각은, 레지스터 어드레스(ADDR)에 의해 고유하게(uniquely) 주소 지정이 가능하다. 즉 복수의 물리적 레지스터들 각각에는 하나의 고유한 레지스터 어드레스(ADDR)가 할당된다. 이에 따라 각각의 레지스터 세그먼트를 구성하는 레지스터들의 개수는, 각각의 레지스터 세그먼트가 갖는 레지스터 어드레스들의 개수와 동일하다. 도면에 예시한 바와 같이, 첫번째 레지스터 세그먼트(112-0)는, 4개의 레지스터 어드레스들(ADDR_00, …, ADDR_03)을 포함한다. 이는 첫번째 레지스터 세그먼트(112-0)가 4개의 물리적 레지스터들로 구성되었다는 것을 의미한다. 두번째 레지스터 세그먼트(112-1)는, 8개의 레지스터 어드레스들(ADDR_10, …, ADDR_17)을 포함한다. 이는 두번째 레지스터 세그먼트(112-1)가 8개의 물리적 레지스터들로 구성되었다는 것을 의미한다. (M+1)번째 레지스터 세그먼트(112-M)는, 3개의 레지스터 어드레스들(ADDR_M0, …, ADDR_M2)을 포함한다. 이는 (M+1)번째 레지스터 세그먼트(112-M)가 3개의 물리적 레지스터들로 구성되었다는 것을 의미한다.
일 예에서 복수의 레지스터 세그먼트들(112-0, 112-1, …, 112-M) 각각은, 메모리 장치에서의 셀프-리페어 동작에 요구될 수 있는 하나의 리페어 커맨드 셋(repair command set)에 대응하는 레지스터 값들을 갖는다. 예컨대, 첫번째 레지스터 세그먼트(112-0)는, 메모리 장치에서의 럽쳐 동작에 요구되는 제1 커맨드 셋에 대응하는 레지스터 값들을 갖는다. 두번째 레지스터 세그먼트(112-1)는, 메모리 장치에서의 럽쳐 동작에 요구되는 제2 커맨드 셋에 대응하는 레지스터 값들을 갖는다. 마찬가지로 (M+1)번째 레지스터 세그먼트(112-M) 또한 메모리 장치에서의 럽쳐 동작에 요구되는 소정의 커맨드 셋에 대응하는 레지스터 값들을 갖는다.
도 3을 참조하면, 레지스터 파일(도 2의 112)의 두번째 레지스터 세그먼트(112-1)는, 8개의 레지스터들, 즉 제1 레지스터(112-10) 내지 제8 레지스터(112-17)로 구성된다. 제1 레지스터(112-10) 내지 제8 레지스터(112-17)에는 제1 레지스터 어드레스(ADDR_10) 내지 제8 레지스터 어드레스(ADDR_17)가 순차적으로 부여된다. 도 3에서 예시한 바와 같이, 제1 레지스터 어드레스(ADDR_10)에 의해 지정되는 제1 레지스터(112-10)는 제1 레지스터 값(REG_CMD_VAL_10)을 갖는다. 제2 레지스터 어드레스(ADDR_11)에 의해 지정되는 제2 레지스터(112-11)는 제2 레지스터 값(REG_CMD_VAL_11)을 갖는다. 제7 레지스터 어드레스(ADDR_16)에 의해 지정되는 제7 레지스터(112-16)는 제7 레지스터 값(REG_CMD_VAL_16)을 갖는다. 제8 레지스터 어드레스(ADDR_17)에 의해 지정되는 제8 레지스터(112-17)는 제8 레지스터 값(REG_CMD_VAL_17)을 갖는다. 도면상에서는 생략되어 있지만, 제2 레지스터(112-11)와 제7 레지스터(112-16) 사이에서 순차적으로 배치되는 제3 레지스터 내지 제6 레지스터도 각각 제3 레지스터 값 내지 제6 레지스터 값을 갖는다.
두번째 레지스터 세그먼트(112-1)의 레지스터들(112-10, …, 112-17) 각각에 저장되어 있는 제1 레지스터 값(REG_CMD_VAL_10) 내지 제8 레지스터 값(REG_CMD_VAL_17)은, 메모리 장치의 셀프-리페어 동작, 예컨대 럽쳐 동작에 요구되는 하나의 리페어 커맨드 셋(repair command set)에 대응될 수 있다. 예컨대 제1 레지스터 값(REG_CMD_VAL_10) 내지 제8 레지스터 값(REG_CMD_VAL_17)에 대응하는 리페어 커맨드 셋이, 메모리 장치에서 셀프-리페어를 수행하기 위해 모드 레지스터 셋(MRS; Mode Register Set)을 세팅시키기 위한 코드 전송을 위한 리페어 커맨드 셋인 경우를 전제한다. 이 경우, 제1 레지스터 값(REG_CMD_VAL_10)은, 코드 전송을 인에이블시키는 리페어 커맨드에 대응할 수 있다. 나머지 레지스터 값들은, 포스트 패키지 리페어를 위해 퓨즈(fuse)를 할당하는 리페어 커맨드, 액티브 정보를 ARE(Array Rupture Electrical Fuse) 어레이로 전달하기 위한 리페어 커맨드 등에 대응할 수 있다.
두번째 레지스터 세그먼트(112-1)의 레지스터들(112-10, …, 112-17) 각각에 저장되어 있는 제1 레지스터 값(REG_CMD_VAL_10) 내지 제8 레지스터 값(REG_CMD_VAL_17)은, 펌웨어로부터의 펌웨어 지시에 응답하여 순차적으로 코어 프로세서(110)로부터 BISR 로직(120)으로 전송된다. 즉 제1 레지스터 어드레스(ADDR_10)에 의해 지정되는 제1 레지스터(112-10)에 저장된 제1 레지스터 값(REG_CMD_VAL_10)이 펌웨어 지시에 응답하여 BISR 로직(120)으로 전송된다. 다음에 제2 레지스터 어드레스(ADDR_11)에 의해 지정되는 레지스터(112-11)에 저장된 제2 레지스터 값(REG_CMD_VAL_11)이 BISR 로직(120)으로 전송된다. 동일한 방식으로 제3 레지스터 어드레스에 의해 지정되는 레지스터에 저장된 제3 레지스터 값부터 마지만 제8 레지스터 어드레스(ADDR_17)에 의해 지정되는 레지스터(112-17)에 저장된 제8 레지스터 값(REG_CMD_VAL_17)이 마지막으로 BISR 로직(120)으로 전송된다.
도 4는 본 개시에 따른 메모리 컨트롤러(100)의 BISR 로직(120) 구성의 일 예를 나타내 보인 도면이다. 도 4를 참조하면, BISR 로직(120)은, 리페어 모드 신호 발생부(121)와, 레지스터 값-커맨드 변환부(122)와, 그리고 인터럽트 발생부(123)를 포함할 수 있다. 리페어 모드 신호 발생부(121)는 리페어 모드 제어신호(RM_CS)를 발생시킨다. 리페어 모드 제어신호(RM_CS)는, 메모리 컨트롤러(100)로부터 메모리 장치로의 신호 전송 경로를 BISR 로직(120)으로부터 메모리 장치로 설정되도록 한다. 이에 따라 리페어 모드 제어신호(RM_CS)가 발생되면, BISR 로직(120)으로부터 출력되는 커맨드가 메모리 장치로 전송될 수 있다. 레지스터 값-커맨드 변환부(122)는, 코어 프로세서(110)로부터 전송되는 레지스터 값을 리페어 커맨드로 변환시켜 출력시킨다. 리페어 커맨드는, 메모리 장치가 셀프-리페어 동작을 수행하는데 필요한 커맨드들 중 코어 프로세서(110)로부터 전송되는 레지스터 값에 대응되는 커맨드를 의미한다. 일 예에서 레지스터 값-커맨드 변환부(122)는, 레지스터 값을 리페어 커맨드로 디코딩하는 디코더로 구성될 수 있다. 인터럽트 발생부(123)는, 적절한 시점에 BISR 로직(120)의 상태를 알려주는 인터럽트 신호(INTERRUPT)를 발생시킨다. 인터럽트 발생부(123)로부터 발생된 인터럽트 신호(INTERRUPT)는 펌웨어로 전송될 수 있다.
도 5는 도 1의 메모리 컨트롤러(100)의 코어 프로세서(110) 및 BISR 로직(120) 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 5를 참조하면, 단계 201에서 메모리 장치에 대한 테스트가 완료되었는지의 여부를 판단한다. 단계 201에서의 판단은, 메모리 컨트롤러(100) 내의 테스트 회로로부터 코어 프로세서(110)로의 인터럽트 신호 전송 여부를 통해 수행될 수 있다. 예컨대 테스트 회로에서 메모리 장치에 대한 테스트가 완료되는 경우, 테스트 회로는 코어 프로세서(110)로 인터럽트 신호를 전송할 수 있다. 반면에 테스트 회로에서 메모리 장치에 대한 테스트가 완료되지 않은 경우, 테스트 회로는 코어 프로세서(110)로 인터럽트 신호를 전송하지 않는다. 단계 201에서 테스트가 완료되지 않는 경우, 즉 테스트 회로로부터 코어 프로세서(110)로 인터럽트 신호가 전송되지 않은 경우, 코어 프로세서(110)는 대기 상태를 유지한다.
단계 201에서 테스트가 완료되면, 단계 202에서 코어 프로세서(110)는 펌웨어로부터 시작 레지스터 어드레스(start register address)를 전송받는다. 시작 레지스터 어드레스는, 코어 프로세서(110) 내의 레지스터 파일(112)을 구성하는 복수의 레지스터 세그먼트들 중 어느 하나의 레지스터 세그먼트의 최하위의 레지스터 어드레스일 수 있다. 단계 203에서, 코어 프로세서(110)는, 시작 레지스터 어드레스로 시작하는 레지스터 세그먼트의 첫번째 레지스터 값을 BISR 로직(120)으로 전송한다. 단계 204에서 BISR 로직(120)은 코어 프로세서(110)로부터 전송된 첫번째 레지스터 값을 첫번째 리페어 커맨드로 변환하여 메모리 장치로 전송한다. BISR 로직(120)은 첫번째 리페어 커맨드를 메모리 장치로 전송한 후에 다음 레지스터 값을 전송받을 수 있는 상태를 알려주는 인터럽트 신호를 발생시킨다.
단계 205에서 레지스터 세그먼트의 모든 레지스터 값들이 BISR 로직(120)으로 전송되었는지를 판단한다. 단계 205의 판단에서 레지스터 세스먼트의 모든 레지스터 값들에 대한 전송이 완료되면 BISR 동작을 끝낸다. 단계 205의 판단에서 레지스터 세그먼트의 모든 레지스터 값들에 대한 전송이 완료되지 않은 경우, 단계 206에서 다음 레지스터 어드레스에 의해 지정되는 레지스터 값을 BISR 로직으로 전송하고, 단계 204로 피드백한다. 단계 204 내지 단계 206은, 레지스터 세그먼트의 모든 레지스터 값들이 BISR 로직(120)으로 전송되고, BISR 로직(120)에 의해 리페어 커맨드들로 변환되어 메모리 장치로 전송이 완료될 때까지 반복되어 수행된다.
도 6은 도 1의 메모리 컨트롤러(100)의 코어 프로세서(110) 및 BISR 로직(120) 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 6을 참조하면, 단계 211에서 메모리 장치에 대한 테스트가 완료되었는지의 여부를 판단한다. 단계 211에서의 판단은, 메모리 컨트롤러(100) 내의 테스트 회로로부터 코어 프로세서(110)로의 인터럽트 신호 전송 여부를 통해 수행될 수 있다. 예컨대 테스트 회로에서 메모리 장치에 대한 테스트가 완료되는 경우, 테스트 회로는 코어 프로세서(110)로 인터럽트 신호를 전송할 수 있다. 반면에 테스트 회로에서 메모리 장치에 대한 테스트가 완료되지 않은 경우, 테스트 회로는 코어 프로세서(110)로 인터럽트 신호를 전송하지 않는다. 단계 211에서 테스트가 완료되지 않는 경우, 즉 테스트 회로로부터 인터럽트 신호가 전송되지 않은 경우, 대기 상태를 유지한다.
단계 211에서 테스트가 완료되면, 단계 212에서 코어 프로세서(110)는 펌웨어로부터 시작 레지스터 어드레스(start register address)를 전송받는다. 시작 레지스터 어드레스는, 코어 프로세서(110) 내의 레지스터 파일(112)을 구성하는 복수의 레지스터 세그먼트들 중 어느 하나의 레지스터 세그먼트의 최하위의 레지스터 어드레스일 수 있다. 단계 213에서, 코어 프로세서(110)는, 시작 레지스터 어드레스로 시작하는 레지스터 세그먼트의 모든 레지스터 값들을 BISR 로직(120)으로 전송한다. 단계 213에서, 코어 프로세서(110)는 또한, 복수의 레지스터 값들과 함께 BISR 로직(120)으로 전송되는 레지스터 값들의 개수와, 메모리 장치로 전송되는 리페어 커맨드들의 전송 간격을 알려주는 신호를 함께 전송할 수 있다. 단계 214에서 BISR 로직(120)은 코어 프로세서(110)로부터 전송된 복수의 레지스터 값들을 순차적으로 리페어 커맨드로 변환하여 메모리 장치로 전송한다. BISR 로직(120)은, 모든 리페어 커맨드들을 메모리 장치로 전송한 후에 리페어 커맨드들의 전송이 완료되었음을 알려주는 인터럽트 신호를 발생시킬 수 있다.
도 7은 본 개시의 일 예에 따른 메모리 시스템(300)을 나타내 보인 도면이다. 도 7을 참조하면, 메모리 시스템(300)은, 모듈 컨트롤러(module controller)(310) 및 메모리 미디엄(memory medium)(320)을 포함하는 메모리 모듈일 수 있다. 도면상에는 하나의 메모리 미디엄(320)만 도시되어 있지만, 메모리 시스템(300)은 복수의 메모리 미디엄들을 포함할 수 있다. 메모리 시스템(300)은 외부의 펌웨어(330)와 통신할 수 있도록 구성된다. 모듈 컨트롤러(310)는, 호스트와의 인터페이싱을 수행하는 프론트 물리층(FPHY)(411)과 메모리 미디엄(320)과의 인터페이싱을 수행하는 백 물리층(BPHY)(412)을 포함할 수 있다. 모듈 컨트롤러(310)은 정상 동작부(normal operation part)(500)와, 테스트부(600)와, 신호 전송 선택부(413)를 더 포함할 수 있다.
신호 전송 선택부(413)는, 정상 동작부(500)로부터의 신호가 메모리 미디엄(320)으로 전송되도록 하거나, 또는 테스트부(500)로부터의 신호가 메모리 미디엄(320)으로 전송되도록 할 수 있다. 일 예에서 신호 전송 선택부(413)의 신호 경로 선택은 리페어 모드 제어신호(RM_CS)에 의해 이루어질 수 있다. 예컨대 로직로우레벨을 갖는 리페어 모드 제어신호(RM_CS)가 입력되면, 신호 전송 선택부(413)는 정상 동작부(500)로부터의 신호가 메모리 미디엄(320)으로 전송되도록 신호 경로를 설정한다. 이와 반대로, 로직하이레벨을 갖는 리페어 모드 제어신호(RM_CS)가 입력되면, 신호 전송 선택부(413)는 테스트부(600)로부터의 신호가 메모리 미디엄(320)으로 전송되도록 신호 경로를 설정한다. 정상 동작부(500)는, 메모리 미디엄(320)의 정상 동작, 예컨대 메모리 미디엄(320)의 리드(read) 동작 및 라이트(write) 동작을 제어하는 기능을 수행한다. 테스트부(600)는, 메모리 미디엄(320)에 대한 테스트을 수행하고, 그 결과에 따라 메모리 미디엄(320)이 셀프-리페어를 수행할 수 있도록 리페어 커맨드를 메모리 미디엄(320)으로 전송하는 기능을 수행한다.
도 8은 도 7의 메모리 시스템(300)의 테스트부(600) 구성의 일 예를 나타내 보인 도면이다. 도 8을 참조하면, 테스트부(600)는, 테스트 로직(700) 및 리페어 로직(800)을 포함할 수 있다. 테스트 로직(700)은, BIST(Built-In Self-Test) 로직(710) 및 BIRA(Built-In Redundancy Analysis) 로직(720)을 포함할 수 있다. BIST 로직(710)은, 메모리 미디엄(320)에 대한 테스트를 수행한다. 테스트 과정에서 고장 셀이 검출되면, BIST 로직(710)은 메모리 미디엄(320) 내의 고장 셀의 어드레스인 고장 어드레스(fault address)을 버퍼메모리 등에 저장시킨다. 테스트가 끝나면, BIST 로직(710)은 리페어 로직(800)의 코어 프로세서(810)로 테스트 종료를 알려주는 인터럽트 신호를 전송한다. BIRA 로직(720)은, 테스트 결과 검출된 고장 어드레스를 분석하여 리페어 솔루션(repair solution)을 구하는 리던던시 분석(redundancy analysis)를 수행한다.
리페어 로직(800)은, 코어 프로세서(810) 및 BISR 로직(820)을 포함할 수 있다. 코어 프로세서(810)는 레지스터 파일(812)을 포함한다. 레지스터 파일(812)은, 도 2를 참조하여 설명한 레지스터 파일(112)과 동일하게 구성될 수 있다. 이에 따라 레지스터 파일(812)은, 복수의 레지스터 세그먼트들을 갖는다. 복수의 레지스터 세그먼트들 각각은, 각각이 하나의 레지스터 값을 갖는 복수의 물리적 레지스터들을 포함한다. 물리적 레지스터들 각각은, 레지스터 어드레스에 의해 지정될 수 있다. 코어 프로세서(810)은, 펌웨어 지시(firmware instruction)에 응답하여, 레지스터 파일(812) 내의 복수의 레지스터 세그먼트들 중 하나의 레지스터 세그먼트가 갖는 적어도 하나의 레지스터 값을 출력시킨다. 일 예에서 코어 프로세서(810)은, 하나의 펌웨어 지시에 응답하여 하나의 레지스터 값을 출력시킬 수 있다. 다른 예에서 코어 프로세서(810)는, 하나의 펌웨어 지지에 응답하여 레지스터 세그먼트의 모든 레지스터 값들을 순차적으로 출력시킬 수도 있다. 코어 프로세서(810)로부터 출력된 레지스터 값들은 BISR 로직(820)으로 전송된다. BISR 로직(820)은, 코어 프로세서(810)로부터 전송된 레지스터 값들을 리페어 커맨드로 변환하여 메모리 미디엄(320)으로 전송한다. BISR 로직(820)은, 도 4를 참조하여 설명한 BISR 로직(120)과 동일하게 구성될 수 있다.
도 9는 도 8의 테스트부(800)의 코어 프로세서(810) 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 9를 참조하면, 단계 901에서, 코어 프로세서(810)는 테스트 로직, 즉 BIST 로직(710)으로부터 인터럽트 신호가 전송되는지를 체크한다. 단계 901에서 BIST 로직(710)으로부터 인터럽트 신호가 전송되면, 펌웨어는 코어 프로세서(810)로 펌웨어 지시를 전송한다. 펌웨어 지시는, 코어 프로세서(810)의 레지스터 파일(812) 내에 있는 복수의 레지스터 세그먼트들 중 어느 하나의 레지스터 세그먼트의 시작 레지스터 어드레스(start register address)를 포함한다. 단계 902에서 코어 프로세서(810)는 펌웨어로부터 펌웨어 지시가 전송되었는지의 여부를 판단한다. 단계 902의 판단에서 펌웨어 지시가 전송되면, 단계 903에서 BISR 로직(820)으로부터 제1 인터럽트 신호가 발생했는지의 여부를 판단한다. 제1 인터럽트 신호는, BISR 로직(820)으로부터 리페어 모드 제어신호(RM_CS)가 신호 전송 선택부(413)로 입력되어, BISR 로직(820)으로부터 출력되는 리페어 커맨드가 메모리 미디엄(320)으로 전송되도록 한 후에, BISR 로직(820)이 레지스터 값을 전송받을 준비가 완료된 상태임을 알리는 인터럽트 신호이다.
단계 903의 판단에서, BISR 로직(820)으로부터 제1 인터럽트 신호가 발생하면, 단계 904에서 코어 프로세서(810)는, 레지스터 파일(812)의 복수의 레지스터 세그먼트들 중 시작 레지스터 어드레스로 시작하는 레지스터 세그먼트의 첫번째 레지스터 값을 BISR 로직(820)으로 전송한다. 그리고 단계 905에서, BISR 로직(820)으로부터 제2 인터럽트 신호가 발생되었는지의 여부를 판단한다. 제2 인터럽트 신호는, BISR 로직(820)이 리페어 커맨드를 메모리 미디엄(320)으로 전송하는 동작을 완료한 상태임을 알려 주는 신호이다. 단계 905에서 제2 인터럽트 신호가 발생되면, 단계 906에서 레지스터 세그먼트의 모든 레지스터 값들이 전송되었는지의 여부를 판단한다. 단계 906의 판단에서 레지스터 세스먼트의 모든 레지스터 값들에 대한 전송이 완료되면 BISR 동작을 끝낸다. 단계 906의 판단에서 레지스터 세그먼트의 모든 레지스터 값들에 대한 전송이 완료되지 않은 경우, 단계 907에서 다음 레지스터 어드레스로 시작하는 레지스터 값을 BISR 로직(820)으로 전송하고, 단계 905로 피드백한다. 단계 905 내지 단계 907은, 펌웨어 지시에 의해 선택된 레지스터 세그먼트의 모든 레지스터 값들이 BISR 로직(820)으로 전송될 때까지 반복되어 수행된다.
도 10은 도 8의 테스트부(600)의 BISR 로직(820) 동작의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 10을 참조하면, 단계 911에서 BISR 로직(820)은, 테스트 로직, 즉 BIST 로직(710)으로부터 인터럽트 신호가 발생되는지를 체크한다. 단계 911에서 BIST 로직(710)으로부터 인터럽트 신호가 발생되면, 단계 912에서 리페어 모드 제어신호(RM_CS)를 발생시킨다. 리페어 모드 제어신호(RM_CS)가 발생됨에 따라, BISR 로직(820)으로부터 출력되는 리페어 커맨드는 메모리 미디엄(320)으로 전송될 수 있게 된다. 단계 913에서 BISR 로직(820)은, 레지스터 값을 전송받을 수 있는 상태임을 알려주는 제1 인터럽트 신호를 발생시킨다. 단계 914에서 BISR 로직(820)은 코어 프로세서(810)로부터 레지스터 값이 전송되는지를 판단한다. 단계 914에서 레지스터 값이 전송되면, 단계 915에서 BISR 로직(820)은 레지스터 값을 리페어 커맨드로 변환하여 메모리 미디엄(320)으로 전송한다. 리페어 커맨드 전송이 완료되면, 단계 916에서 BISR 로직(820)은, 리페어 커맨드 전송이 완료된 상태임을 알려주는 제2 인터럽트 신호를 발생시킨다.
도 11은 도 8의 테스트부(600)의 코어 프로세서(810) 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 11을 참조하면, 단계 921에서, 코어 프로세서(810)는 테스트 로직, 즉 BIST 로직(710)으로부터 인터럽트 신호가 전송되는지를 체크한다. 단계 921에서 BIST 로직(710)으로부터 인터럽트 신호가 전송되면, 펌웨어는 코어 프로세서(810)로 펌웨어 지시를 전송한다. 펌웨어 지시는, 코어 프로세서(810)의 레지스터 파일(812) 내에 있는 복수의 레지스터 세그먼트들 중 어느 하나의 레지스터 세그먼트의 시작 레지스터 어드레스(start register address)를 포함한다. 단계 922에서 코어 프로세서(810)는 펌웨어로부터 펌웨어 지시가 전송되었는지의 여부를 판단한다. 단계 922의 판단에서 펌웨어 지시가 전송되면, 단계 923에서 BISR 로직(820)으로부터 제1 인터럽트 신호가 발생했는지의 여부를 판단한다. 제1 인터럽트 신호는, BISR 로직(820)으로부터 리페어 모드 제어신호(RM_CS)가 신호 전송 선택부(413)로 입력되어, BISR 로직(820)으로부터 출력되는 리페어 커맨드가 메모리 미디엄(320)으로 전송되도록 한 후에 레지스터 값을 전송받을 준비가 완료된 상태임을 알리는 인터럽트 신호이다. 단계 923의 판단에서, BISR 로직(820)으로부터 제1 인터럽트 신호가 발생하면, 단계 924에서 코어 프로세서(810)는, 레지스터 파일(812)의 복수의 레지스터 세그먼트들 중 시작 레지스터 어드레스로 시작하는 레지스터 세그먼트의 모든 레지스터 값들을 BISR 로직(820)으로 순차적으로 전송한다. 코어 프로세서(810)는, 복수의 레지스터 값들과 함께 BISR 로직(820)으로 전송되는 레지스터 값들의 개수와, 메모리 미디엄(320)로 전송되는 리페어 커맨드들의 전송 간격을 알려주는 신호를 함께 전송할 수 있다.
도 12는 도 8의 테스트부(600)의 BISR 로직(820) 동작의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다. 도 12를 참조하면, 단계 931에서 BISR 로직(820)은, 테스트 로직, 즉 BIST 로직(710)으로부터 인터럽트 신호가 발생되는지를 체크한다. 단계 931에서 BIST 로직(710)으로부터 인터럽트 신호가 발생되면, 단계 932에서 리페어 모드 제어신호(RM_CS)를 발생시킨다. 리페어 모드 제어신호(RM_CS)가 발생됨에 따라, BISR 로직(820)으로부터 출력되는 리페어 커맨드는 메모리 미디엄(320)으로 전송될 수 있게 된다. 단계 933에서 BISR 로직(820)은, 레지스터 값을 전송받을 수 있는 상태임을 알려주는 제1 인터럽트 신호를 발생시킨다. 단계 934에서 BISR 로직(820)은 코어 프로세서(810)로부터 레지스터 값들이 전송되는지를 판단한다. 단계 934에서 레지스터 값들이 전송되면, 단계 935에서 BISR 로직(820)은 레지스터 값들을 순차적으로 리페어 커맨드로 변환하여 메모리 미디엄(320)으로 전송한다. 리페어 커맨드 전송이 완료되면, 단계 936에서 BISR 로직(820)은, 리페어 커맨드 전송이 완료된 상태임을 알려주는 제2 인터럽트 신호를 발생시킨다.
도 13은 본 개시의 다른 예에 따른 메모리 시스템(3000)을 나타내 보인 도면이다. 도 13을 참조하면, 본 예에 따른 메모리 시스템(3000)은 메모리 컨트롤러(3100), 메모리 미디엄(3200), 및 펌웨어(3300)을 포함한다. 메모리 컨트롤러(3100)는, 펌웨어(3300)와 통신할 수 있도록 구성된다. 메모리 컨트롤러(3100)는, 호스트와의 인터페이싱을 수행하는 프론트 물리층(FPHY)(4110)과 메모리 미디엄(3200)과의 인터페이싱을 수행하는 백 물리층(BPHY)(4120)을 포함할 수 있다. 메모리 컨트롤러(3100)은 정상 동작부(normal operation part)(5000)와, 테스트부(6000)와, 신호 전송 선택부(4130)를 포함할 수 있다. 본 예에 따른 메모리 시스템(3000)은, 메모리 컨트롤러(3100) 및 메모리 미디엄(3200)이 메모리 모듈을 구성하지 않고 독립적으로 배치된다는 점에서 도 7을 참조하여 설명한 메모리 시스템(300)과 차이가 있을 뿐, 그 구성 및 동작은 도 7 내지 도 12을 참조하여 설명한 바와 동일하다.
도 14는 본 개시의 또 다른 예에 따른 메모리 시스템을 나타내 보인 도면이다. 도 14를 참조하면, 본 예에 따른 메모리 시스템은, 호스트(8100)와, 펌웨어(8200)와, 메모리 모듈(8300)과, 버퍼 메모리(8400)가 시스템 버스(8000)를 통해 상호 통신할 수 있도록 구성된다. 메모리 모듈(8300)은, 도 7을 참조하여 설명한 메모리 모듈 구조의 메모리 시스템(300)과 동일하게 구성될 수 있다. 버퍼 메모리(8400)는, 메모리 모듈(8300)에서의 테스트 결과 검출된 고장 어드레스를 저장하는 기능을 수행할 수 있다.
도 15는 본 개시의 또 다른 예에 따른 메모리 시스템을 나타내 보인 도면이다. 도 15를 참조하면, 본 예에 따른 메모리 시스템은, 호스트(9100)와, 펌웨어(9200)와, 메모리 컨트롤러(9300)와, 버퍼 메모리(9400)와, 그리고 메모리 장치(9500)가 시스템 버스(9000)를 통해 상호 통신할 수 있도록 구성된다. 메모리 컨트롤러(9300)는, 도 13을 참조하여 설명한 메모리 컨트롤러(3100)와 동일하게 구성될 수 있다. 버퍼 메모리(9400)는, 메모리 컨트롤러(9300)에서 수행하는 메모리 장치(9500)에 대한 테스트 결과 검출된 고장 어드레스를 저장하는 기능을 수행할 수 있다.
이제까지 본 출원 기술에 대하여 실시예들을 중심으로 살펴보았다. 본 출원 기술이 속하는 기술분야에서 통상의 지식을 가진 자는 본 출원 기술이 본 출원 기술의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 출원 기술의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 출원 기술에 포함된 것으로 해석되어야 할 것이다.
100...메모리 컨트롤러 110...코어 프로세서
112...레지스터 파일 120...BISR 로직

Claims (34)

  1. 메모리 장치의 셀프-리페어 동작을 제어하는 리페어 커맨드들에 대응하는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서; 및
    상기 코어 프로세서로부터 상기 복수의 레지스터 값들 중 적어도 하나 이상의 레지스터 값들을 전송받고, 전송된 상기 레지스터 값들에 기초하여 상기 리페어 커맨드들을 결정하여 상기 메모리 장치로 출력시키는 빌트-인 셀프-리페어(BISR) 로직을 포함하되,
    상기 레지스터 파일은, 각각이 특정 레지스터 값을 저장하는 복수의 물리적 레지스터들을 포함하는 복수의 레지스터 세그먼트들로 구성되는 데이터 구조를 제공하도록 구성하며, 그리고
    상기 복수의 레지스터 세그먼트들의 각각에 저장된 상기 레지스터 값들은, 상기 메모리 장치에서의 상기 셀프-리페어 동작에 요구될 수 있는 하나의 리페어 커맨드 셋에 대응하는 메모리 컨트롤러.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 복수의 물리적 레지스터들 각각은, 레지스터 어드레스에 의해 공유하게 주소 지정이 가능하도록 구성되는 메모리 컨트롤러.
  6. 제5항에 있어서,
    상기 코어 프로세서는, 상기 복수의 레지스터 세그먼트들 중에서 펌웨어 지시에 의해 지정된 레지스터 어드레스로 시작하는 레지스터 세그먼트의 레지스터 값들을 순차적으로 상기 BISR 로직으로 전송하도록 구성되는 메모리 컨트롤러.
  7. 제1항에 있어서,
    상기 BISR 로직은, 상기 코어 프로세서로부터 전송되는 레지스터 값을 상기 리페어 커맨드로 변환시켜 출력시키는 레지스터 값-커맨드 변환부를 포함하는 메모리 컨트롤러.
  8. 제7항에 있어서, 상기 BISR 로직은,
    상기 BISR 로직으로부터 상기 메모리 장치로 상기 리페어 커맨드가 전송되는 신호 전송 경로를 지정하는 리페어 모드 제어신호를 발생시키는 리페어 모드 신호 발생부; 및
    상기 BISR 로직의 상태를 알려 주는 인터럽트 신호를 발생시키는 인터럽트 발생부를 더 포함하는 메모리 컨트롤러.
  9. 제8항에 있어서,
    상기 BISR 로직은, 상기 리페어 모드 제어신호를 발생시킨 후 상기 레지스터 값을 전송받을 준비가 완료되었다는 상태를 알려 주는 제1 인터럽트 신호를 발생시키도록 구성되는 메모리 컨트롤러.
  10. 제8항에 있어서,
    상기 BISR 로직은, 상기 메모리 장치로 상기 리페어 커맨드를 전송시킨 후 리페어 커맨드의 전송이 완료되었다는 상태를 알려 주는 제2 인터럽트 신호를 발생시키도록 구성되는 메모리 컨트롤러.
  11. 제1항에 있어서,
    상기 코어 프로세서는, 하나의 펌웨어 지시에 응답하여 상기 복수의 레지스터 값들 중 하나의 레지스터 값을 출력시키도록 구성되는 메모리 컨트롤러.
  12. 제1항에 있어서,
    상기 코어 프로세서는, 하나의 펌웨어 지시에 응답하여 상기 복수의 레지스터 값들을 출력시키도록 구성되는 메모리 컨트롤러.
  13. 제12항에 있어서,
    상기 코어 프로세서는, 상기 복수의 레지스터 값들과 함께 전송되는 레지스터 값들의 개수와, 그리고 상기 메모리 장치로 전송되는 리페어 커맨드들의 전송 간격을 알려주는 신호를 함께 전송하도록 구성되는 메모리 컨트롤러.
  14. 각각이 레지스터 어드레스에 의해 특정되는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서와, 메모리 장치의 셀프-리페어 동작을 제어하는 리페어 커맨드를 발생시키는 BISR 로직을 포함하는 메모리 컨트롤러의 동작 방법에 있어서,
    상기 메모리 장치에 대한 테스트가 완료되면, 펌웨어 지시가 지정하는 시작 레지스터 어드레스의 레지스터 값을 상기 코어 프로세서로부터 상기 BISR 로직으로 전송하는 단계; 및
    상기 코어 프로세서로부터 상기 BISR 로직으로 전송된 상기 레지스터 값에 기초하여 상기 리페어 커맨드를 결정하여 상기 메모리 장치로 전송시키는 단계를 포함하되,
    상기 레지스터 파일은, 각각이 특정 레지스터 값을 저장하는 복수의 물리적 레지스터들을 포함하는 복수의 레지스터 세그먼트들로 구성되는 데이터 구조를 제공하도록 구성하며, 그리고
    상기 복수의 레지스터 세그먼트들의 각각에 저장된 상기 레지스터 값들은, 상기 메모리 장치에서의 상기 셀프-리페어 동작에 요구될 수 있는 하나의 리페어 커맨드 셋에 대응하는 메모리 컨트롤러의 동작 방법.
  15. 제14항에 있어서,
    상기 펌웨어 지시는, 상기 메모리 장치에 대한 테스트 완료시 발생되는 인터럽트 신호에 응답하여 외부의 펌웨어로부터 상기 코어 프로세서로 전송되는 메모리 컨트롤러의 동작 방법.
  16. 제14항에 있어서,
    상기 시작 레지스터 어드레스로 시작되는 물리적 레지스터를 포함하는 레지스터 세그먼트의 모든 레지스터 값이 전송되지 않은 경우, 상기 레지스터 세그먼트의 마지막 레지스터 어드레스의 레지스터 값이 전송될 때까지 상기 레지스터 세그먼트의 레지스터 값들을 상기 코어 프로세서로부터 상기 BISR 로직으로 순차적으로 전송하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  17. 제16항에 있어서,
    상기 레지스터 값들의 각각은, 하나의 펌웨어 지시에 응답하여 상기 코어 프로세서로부터 상기 BISR로 전송되는 메모리 컨트롤러의 동작 방법.
  18. 제14항에 있어서,
    상기 시작 레지스터 어드레스로 시작되는 물리적 레지스터를 포함하는 레지스터 세그먼트의 모든 레지스터 값들은 하나의 펌웨어 지시에 응답하여 상기 코어 프로세서로부터 상기 BISR 로직으로 순차적으로 전송되는 메모리 컨트롤러의 동작 방법.
  19. 제18항에 있어서,
    전송되는 레지스터 값들의 개수와, 그리고 상기 메모리 장치로 전송되는 리페어 커맨드들의 전송 간격을 알려주는 신호를 상기 코어 프로세서로부터 상기 BISR 로직으로 전송하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  20. 리페어 커맨드에 응답하여 셀프-리페어 동작을 수행하도록 구성된 메모리 장치; 및
    상기 메모리 장치에 대한 테스트를 수행한 후 상기 리페어 커맨드를 상기 메모리 장치로 전송하도록 구성된 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러는,
    각각이 상기 리페어 커맨드에 대응하는 복수의 레지스터 값들을 갖는 레지스터 파일을 포함하는 코어 프로세서; 및
    상기 코어 프로세서로부터 상기 복수의 레지스터 값들 중 적어도 하나 이상의 레지스터 값들을 전송받고, 전송된 상기 레지스터 값들에 기초하여 상기 리페어 커맨드들을 결정하여 상기 메모리 장치로 출력시키는 빌트-인 셀프-리페어(BISR) 로직을 포함하며,
    상기 레지스터 파일은, 각각이 특정 레지스터 값을 저장하는 복수의 물리적 레지스터들을 포함하는 복수의 레지스터 세그먼트들로 구성되는 데이터 구조를 제공하도록 구성하며, 그리고
    상기 복수의 레지스터 세그먼트들의 각각에 저장된 상기 레지스터 값들은, 상기 메모리 장치에서의 상기 셀프-리페어 동작에 요구될 수 있는 하나의 리페어 커맨드 셋에 대응하는 메모리 시스템.
  21. 제20항에 있어서,
    상기 메모리 장치 및 메모리 컨트롤러는 하나의 메모리 모듈을 구성하는 메모리 시스템.
  22. 제20항에 있어서,
    상기 메모리 장치에 대한 테스트를 수행하는 테스트 로직을 더 포함하고,
    상기 테스트 로직은, 상기 메모리 장치에 대한 테스트를 종료한 후에 테스트 종료를 알리는 인터럽트 신호를 생성하여 상기 코어 프로세서로 전송하도록 구성되는 메모리 시스템.
  23. 제20항에 있어서,
    펌웨어 지시를 발생시키는 펌웨어를 더 포함하되,
    상기 펌웨어는 상기 메모리 장치에 대한 테스트 종료를 알리는 인터럽트 신호에 응답하여 상기 펌웨어 지시를 상기 코어 프로세서로 전송하도록 구성되는 메모리 시스템.
  24. 삭제
  25. 삭제
  26. 제20항에 있어서,
    상기 복수의 물리적 레지스터들 각각은, 레지스터 어드레스에 의해 공유하게 주소 지정이 가능하도록 구성되는 메모리 시스템.
  27. 제26항에 있어서,
    상기 코어 프로세서는, 상기 복수의 레지스터 세그먼트들 중에서 펌웨어 지시에 의해 지정된 레지스터 어드레스로 시작하는 레지스터 세그먼트의 레지스터 값들을 순차적으로 상기 BISR 로직으로 전송하도록 구성되는 메모리 시스템.
  28. 제20항에 있어서,
    상기 BISR 로직은, 상기 코어 프로세서로부터 전송되는 레지스터 값을 리페어 커맨드로 변환시켜 출력시키는 레지스터 값-커맨드 변환부를 포함하는 메모리 시스템.
  29. 제28항에 있어서, 상기 BISR 로직은,
    상기 BISR 로직으로부터 상기 메모리 장치로 상기 리페어 커맨드가 전송되는 신호 전송 경로를 지정하는 리페어 모드 제어신호를 발생시키는 리페어 모드 신호 발생부; 및
    상기 BISR 로직의 상태를 알려 주는 인터럽트 신호를 발생시키는 인터럽트 발생부를 더 포함하는 메모리 시스템.
  30. 제29항에 있어서,
    상기 BISR 로직은, 상기 리페어 모드 제어신호를 발생시킨 후 상기 레지스터 값을 전송받을 준비가 완료되었다는 상태를 알려 주는 제1 인터럽트 신호를 발생시키도록 구성되는 메모리 시스템.
  31. 제29항에 있어서,
    상기 BISR 로직은, 상기 메모리 장치로 상기 리페어 커맨드를 전송시킨 후 리페어 커맨드의 전송이 완료되었다는 상태를 알려 주는 제2 인터럽트 신호를 발생시키도록 구성되는 메모리 시스템.
  32. 제20항에 있어서,
    상기 코어 프로세서는, 하나의 펌웨어 지시에 응답하여 상기 복수의 레지스터 값들 중 하나의 레지스터 값을 출력시키도록 구성되는 메모리 시스템.
  33. 제20항에 있어서,
    상기 코어 프로세서는, 하나의 펌웨어 지시에 응답하여 상기 복수의 레지스터 값들을 출력시키도록 구성되는 메모리 시스템.
  34. 제33항에 있어서,
    상기 코어 프로세서는, 상기 복수의 레지스터 값들과 함께 전송되는 레지스터 값들의 개수와, 그리고 상기 메모리 장치로 전송되는 리페어 커맨드들의 전송 간격을 알려주는 신호를 함께 전송하도록 구성되는 메모리 시스템.
KR1020200126404A 2020-09-28 2020-09-28 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템 Active KR102929112B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200126404A KR102929112B1 (ko) 2020-09-28 2020-09-28 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템
US17/203,605 US11424003B2 (en) 2020-09-28 2021-03-16 Memory controllers having simplified BISR logic circuit, methods of operating the memory controller, and memory systems including the memory controller
CN202110651801.4A CN114333969A (zh) 2020-09-28 2021-06-11 具有bisr逻辑电路的存储器控制器、其操作方法及存储系统
US17/863,773 US11804278B2 (en) 2020-09-28 2022-07-13 Memory systems including simplified BISR logic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200126404A KR102929112B1 (ko) 2020-09-28 2020-09-28 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20220042947A KR20220042947A (ko) 2022-04-05
KR102929112B1 true KR102929112B1 (ko) 2026-02-20

Family

ID=80822956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200126404A Active KR102929112B1 (ko) 2020-09-28 2020-09-28 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (2) US11424003B2 (ko)
KR (1) KR102929112B1 (ko)
CN (1) CN114333969A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102929112B1 (ko) * 2020-09-28 2026-02-20 에스케이하이닉스 주식회사 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템
EP4030436B1 (en) * 2020-10-20 2024-05-29 Changxin Memory Technologies, Inc. Repair circuit and memory
US12040037B2 (en) * 2022-06-01 2024-07-16 Micron Technology, Inc. Interrupting a memory built-in self-test

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317460A1 (en) * 2012-01-01 2014-10-23 Mosys, Inc. Memory device with background built-in self-repair using background built-in self-testing
US20150074474A1 (en) 2013-09-06 2015-03-12 Broadcom Corporation System and method for on-the-fly incremental memory repair

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415641B1 (en) 2003-11-05 2008-08-19 Virage Logic Corp. System and method for repairing a memory
US8988956B2 (en) * 2012-09-18 2015-03-24 Mosys, Inc. Programmable memory built in self repair circuit
KR102135470B1 (ko) * 2019-06-17 2020-07-17 연세대학교 산학협력단 동적 고장 재배치에 따른 메모리 수리 솔루션 탐색 장치 및 방법
US11450401B2 (en) * 2020-05-29 2022-09-20 Taiwan Semiconductor Manufacturing Company, Ltd. Method, system and computer program product for memory repair
KR102929112B1 (ko) * 2020-09-28 2026-02-20 에스케이하이닉스 주식회사 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317460A1 (en) * 2012-01-01 2014-10-23 Mosys, Inc. Memory device with background built-in self-repair using background built-in self-testing
US20150074474A1 (en) 2013-09-06 2015-03-12 Broadcom Corporation System and method for on-the-fly incremental memory repair

Also Published As

Publication number Publication date
CN114333969A (zh) 2022-04-12
US11804278B2 (en) 2023-10-31
US11424003B2 (en) 2022-08-23
US20220351801A1 (en) 2022-11-03
KR20220042947A (ko) 2022-04-05
US20220101941A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
KR102117633B1 (ko) 셀프 리페어 장치
US8358548B2 (en) Methods for efficiently repairing embedded dynamic random-access memory having marginally failing cells
KR102929112B1 (ko) 간단해진 빌트-인 셀프-리페어 로직을 갖는 메모리 컨트롤러 및 그 동작 방법과, 그 메모리 컨트롤러를 포함하는 메모리 시스템
KR20020005960A (ko) 반도체 집적회로
US20050251728A1 (en) Method for testing a memory chip and test arrangement
US6198663B1 (en) Non-volatile semiconductor memory IC
US9640279B1 (en) Apparatus and method for built-in test and repair of 3D-IC memory
EP3896693B1 (en) Memory and addressing method therefor
KR19980041868A (ko) 데이터 프로세싱 시스템 및 그 동작 방법
KR20210117557A (ko) 반도체 메모리 장치 및 반도체 메모리 장치에서의 리페어 방법
US7512001B2 (en) Semiconductor memory device, test system including the same and repair method of semiconductor memory device
CN103310849B (zh) 测试电路、存储器系统以及存储器系统的测试方法
US6851078B2 (en) Data transfer apparatus, memory device testing apparatus, data transfer method, and memory device testing method
KR100399449B1 (ko) 메모리 셀 장치 및 메모리 셀의 기능 테스트 방법
EP1129454B1 (en) Method of testing a memory
US7038956B2 (en) Apparatus and method for reading out defect information items from an integrated chip
JP2001023396A (ja) メモリ試験装置
US6721911B1 (en) Method and apparatus for testing a memory array using compressed responses
EP0074305A2 (en) Fault isolating memory decoder
US7437627B2 (en) Method and test device for determining a repair solution for a memory module
US6175936B1 (en) Apparatus for detecting faults in multiple computer memories
US6430096B1 (en) Method for testing a memory device with redundancy
CN115565594A (zh) 测试电路、测试方法、半导体存储器和控制器
TW541539B (en) Manufacturing method for semiconductor device and the semiconductor device
CN119274629A (zh) 存储器

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11 Amendment of application requested

Free format text: ST27 STATUS EVENT CODE: A-2-2-P10-P11-NAP-X000 (AS PROVIDED BY THE NATIONAL OFFICE)

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)