KR102025341B1 - 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 - Google Patents

메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR102025341B1
KR102025341B1 KR1020120139827A KR20120139827A KR102025341B1 KR 102025341 B1 KR102025341 B1 KR 102025341B1 KR 1020120139827 A KR1020120139827 A KR 1020120139827A KR 20120139827 A KR20120139827 A KR 20120139827A KR 102025341 B1 KR102025341 B1 KR 102025341B1
Authority
KR
South Korea
Prior art keywords
address
command
defective
memory
cell
Prior art date
Application number
KR1020120139827A
Other languages
English (en)
Other versions
KR20140071811A (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 KR1020120139827A priority Critical patent/KR102025341B1/ko
Priority to US14/096,824 priority patent/US9324458B2/en
Priority to CN201310648003.1A priority patent/CN103853668B/zh
Publication of KR20140071811A publication Critical patent/KR20140071811A/ko
Application granted granted Critical
Publication of KR102025341B1 publication Critical patent/KR102025341B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법이 개시된다. 본 발명의 일 실시 예에 따른 메모리 컨트롤러의 동작 방법은, 제 1 커맨드를 커맨드 대기부에 큐잉(Queuing)하는 단계와, 상기 제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하는 단계와, 상기 1 어드레스가 결함 어드레스로 검출되면, 상기 제 1 어드레스를 리맵핑 한 제 2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 상기 커맨드 대기부에 큐잉하는 단계 및 상기 제2 커맨드 및 제2 어드레스를 출력하는 단계를 구비하는 것을 특징으로 한다.

Description

메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법{Memory controller, Memory system including the memory controller and Method of operating the memory controller}
본 발명은 메모리 컨트롤러 및 메모리 시스템에 관한 것으로, 특히 결함이 발생한 메모리 셀을 리페어(repair) 할 수 있는 메모리 컨트롤러 및 메모리 시스템에 관한 것이다.
컴퓨터나 모바일 장비 등이 발전하면서 반도체 장치의 고집적 및 고성능화가 요구 되고 있다. 반도체 장치의 일 예로서 메모리 셀을 포함하는 반도체 메모리 장치는 그 용량 및 속도가 증가하고 있으며, 더 작은 반도체 메모리 장치 안에 더 많은 용량의 메모리 셀을 포함하고, 반도체 메모리 장치를 더 빠르게 동작시키기 위한 다양한 시도가 이루어지고 있다.
그러나 반도체 메모리 장치가 점차 고집적화 및 대용량화, 그리고 고기능화 됨에 따라서 회로 선폭 감소, 공정의 증가 및 복잡도 증가 등이 수반된다. 이러한 조건들은 칩의 수율을 감소 시키는 요인이 된다. 따라서, 이를 극복하기 위한 방법이 문제된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 메모리 컨트롤러가 결함 셀을 포함하는 반도체 메모리 셀을 제어함에 있어서 결함 셀에 대한 리페어 동작을 수행하면서도 빠른 데이터 처리 속도를 유지시키는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시 예에 따른 메모리 컨트롤러의 동작 방법은, 제 1 커맨드를 커맨드 대기부에 큐잉(Queuing)하는 단계와, 상기 제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하는 단계와, 상기 1 어드레스가 결함 어드레스로 검출되면, 상기 제 1 어드레스를 리맵핑 한 제 2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 상기 커맨드 대기부에 큐잉하는 단계 및 상기 제2 커맨드 및 제2 어드레스를 출력하는 단계를 구비하는 것을 특징으로 한다.
실시 예로서, 상기 제2 커맨드를 큐잉하는 단계는, 제 1 커맨드가 상기 커맨드 대기부에 존재할 때, 상기 제 1 커맨드 및 제1 어드레스를 상기 제 2 커맨드 및 제2 어드레스로 대체하는 것을 특징으로 한다.
실시 예로서, 상기 제 1 커맨드가 리드 커맨드인 경우, 상기 제 1 커맨드에 응답하여 수신된 제 1 데이터의 외부로의 출력을 블로킹하고, 상기 제 2 커맨드에 응답하여 수신된 제 2 데이터를 외부로 출력하는 것을 특징으로 한다.
실시 예로서, 상기 제 1 데이터와 상기 제 2 데이터를 비교함에 의하여, 상기 제 1 어드레스의 결함 여부를 판정하는 단계를 더 구비하는 것을 특징으로 한다.
실시 예로서, 상기 제 1 커맨드가 라이트 커맨드인 경우, 상기 제 1 커맨드 및 제1 어드레스의 출력 여부와 무관하게, 상기 제2 커맨드 및 제2 어드레스를 출력하는 것을 특징으로 한다.
실시 예로서, 외부로부터 입력 받은 패킷을 디코딩 하여 상기 제1 커맨드를 생성하는 단계를 더 구비하는 것을 특징으로 한다.
실시 예로서, 상기 메모리 컨트롤러는 메모리 장치의 셀 어레이의 결함 셀의 어드레스 정보를 저장하는 저장부를 포함하고, 상기 제 1 어드레스의 결함 여부를 검출하는 단계는, 상기 저장부에 저장된 어드레스 정보와 상기 제 1 어드레스의 동일한지 여부를 비교하는 것을 특징으로 한다.
실시 예로서, 상기 제 2 커맨드에 대응하는 액세스 시간이 상기 제 1 커맨드에 대응하는 액세스 시간보다 더 적게 소요되도록 상기 제2 어드레스가 생성되는 것을 특징으로 한다.
실시 예로서, 상기 제 2 커맨드는 상기 커맨드 대기부에 큐잉 된 다른 커맨드들보다 우선적으로 출력되도록 제어되는 것을 특징으로 한다.
실시 예로서, 상기 제 1 어드레스가 정상 어드레스로 검출되면, 상기 커맨드 대기부에 큐잉 된 순서에 따라 상기 제1 커맨드 및 제1 어드레스가 출력되는 것을 특징으로 한다.
실시 예로서, 상기 제1 커맨드는 외부 패킷을 디코딩하여 생성된 커맨드이며, 상기 제2 커맨드는 상기 제1 커맨드와 동일한 메모리 동작을 요청하는 것을 특징으로 한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 검출 동작을 수행하기 위한 내용 주소화 기억 장치를 구비하고, 상기 내용 주소화 기억 장치는 상기 제1 커맨드를 수신하여 일시 저장하고, 상기 일시 저장된 제1 커맨드가 상기 제2 커맨드로서 상기 커맨드 대기부로 제공되는 것을 특징으로 한다.
실시 예로서, 상기 제 1 어드레스의 결함 여부를 판정하는 동작은, 상기 제1 커맨드를 큐잉하는 동작과 실질적으로 동시에 수행되거나, 상기 제1 커맨드 및 제1 어드레스를 출력하는 동작과 실질적으로 동시에 수행되는 것을 특징으로 한다.
한편, 본 발명의 일 실시 예에 따른 메모리 컨트롤러는, 패킷을 디코딩하여 커맨드 및 이에 대응하는 어드레스를 생성하는 디코더와, 상기 커맨드 및 어드레스를 큐잉하는 커맨드 대기부와, 제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하고, 상기 제 1 어드레스가 결함 어드레스에 해당되면, 상기 제 1 어드레스를 리맵핑 한 제 2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 상기 커맨드 대기부로 출력하는 내용 주소화 기억 장치 및 상기 커맨드 대기부에 큐잉된 커맨드 및 어드레스를 출력하는 컨트롤러 입출력부를 구비하는 것을 특징으로 한다.
한편, 본 발명의 일 실시 예에 따른 메모리 시스템은, 데이터를 저장하는 반도체 메모리 장치 및 제1 커맨드를 큐잉하고, 상기 제1 커맨드를 출력하는 동작과 병렬하게 상기 제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하고, 상기 1 어드레스가 결함 셀로 검출되면, 상기 제 1 어드레스를 리맵핑한 제 2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 출력하는 메모리 컨트롤러를 구비하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시 예에 따른 메모리 컨트롤러는, 패킷을 디코딩하여 커맨드 및 이에 대응하는 어드레스를 생성하는 디코더와, 반도체 메모리 장치의 결함 셀의 어드레스 정보를 저장하고, 상기 어드레스와 상기 결함 셀의 어드레스 정보를 비교하여 상기 어드레스의 결함 어드레스 여부를 검출하며, 검출 결과에 따라 리맵핑 어드레스를 출력하는 내용 주소화 기억 장치 및 상기 검출 결과와 무관하게 상기 커맨드 및 이에 대응하는 어드레스를 큐잉하고, 상기 어드레스가 결함 어드레스에 해당될 때 상기 리맵핑 어드레스를 추가로 큐잉하는 커맨드 대기부를 구비하는 것을 특징으로 한다.
본 발명의 일 실시 예에 따른 메모리 컨트롤러는 커맨드 큐잉 동작과 결함 어드레스를 검출하는 동작을 병렬적으로 처리함으로써 메모리 장치의 결함 셀에 대한 리페어 동작을 수행하면서도 데이터 처리 속도를 증가시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 메모리 시스템은 나타내는 블록도이다.
도 2는 도 1의 반도체 메모리 장치의 일 구현예를 나타내는 블록도이다.
도 3은 도 2의 셀 어레이 영역의 일 구현예를 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 5는 본 발명의 일 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 7a는 비휘발성 메모리가 메모리 컨트롤러에 구비되는 실시예를 나타내는 블록도이다.
도 7b는 패킷 디코더에서 생성되는 커맨드/어드레스 및 출력되는 커맨드/어드레스의 리스트의 일예를 나타내는 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 9는 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 10은 도 6의 데이터 블로킹 로직의 다른 실시 예를 나타내는 블록도이다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 12는 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 13은 본 발명의 다른 실시예에 따른 메모리 컨트롤러의 일 구현예를 나타내는 블록도이다.
도 14는 본 발명의 다른 실시예에 따른 메모리 시스템의 일 구현예를 나타내는 블록도이다.
도 15 본 발명의 다른 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 16은 본 발명의 일 실시 예에 따른 메모리 컨트롤러를 포함하는 컴퓨터 시스템을 나타내는 블록도이다.
도 17은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러를 포함하는 컴퓨터 시스템을 나타내는 블록도이다.
도 18a,b은 본 발명의 일 실시 예에 따른 메모리 컨트롤러 및 메모리 모듈을 나타내는 블록도이다.
도 19는 본 발명의 일 실시 예에 따른 메모리 컨트롤러를 포함하는 메모리 모듈을 나타내는 블록도이다.
도 20은 복수의 반도체 레이어들을 구비하는 적층 구조의 반도체 메모리 장치를 도시한 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시 예에 따른 메모리 시스템은 나타내는 블록도이다. 도 1을 참조하면, 반도체 메모리 시스템(100)은 메모리 컨트롤러(1100) 및 반도체 메모리 장치(1200)를 포함한다. 메모리 컨트롤러(1100)는 반도체 메모리 장치(1200)에 커맨드 신호(CMD) 및 어드레스 신호(ADD)을 전송하거나, 데이터(DATA)를 주고 받는다.
도 1의 반도체 메모리 장치(1200)는 빠른 처리 속도가 요구되는 랜덤 액세스 메모리가 적용될 수 있다. 랜덤 액세스 메모리로서, 반도체 메모리 장치(1200)는 DRAM 셀을 포함할 수 있다. 또는, 반도체 메모리 장치(1200)는 MRAM 셀, STT-MRAM 셀, PRAM 셀, RRAM 셀 등 랜덤 액세스가 가능한 다른 메모리 셀을 포함할 수도 있다. 반도체 메모리 장치(1200)는 적어도 하나의 결함 셀을 포함할 수 있으며, 이를 극복하기 위해 메모리 컨트롤러(1100)는 결함 셀을 검출하여 다른 정상 셀로 대체할 수 있다. 상기 결함 셀은 하드 에러 또는 소프트 에러가 발생한 셀을 지칭할 수 있으며, 또는 데이터 리텐션 특성 등 메모리 특성이 상대적으로 낮은 셀을 지칭하여도 무방하다. 또한, 본 발명의 실시예를 설명함에 있어서, 결함 셀이라는 용어는 기타 다른 용어, 예컨대 불량 셀, 페일 셀 등으로 지칭되어도 무방하다.
메모리 컨트롤러(1100)는 DRAM컨트롤러와 동일 또는 유사하게 구현될 수 있다. 또한 반도체 메모리 시스템(1000)은 DRAM 인터페이스와 동일 또는 유사한 인터페이스를 가질 수 있다. 본 발명의 실시예는 이에 국한될 필요는 없으며, 반도체 메모리 장치(1200)의 종류에 따라 이에 대응하여 메모리 컨트롤러(1100)의 구현, 반도체 메모리 시스템(1000)의 인터페이스 구조 등이 변경될 수 있다.
도 2는 도 1의 반도체 메모리 장치의 일 구현예를 나타내는 블록도이다. 도 1 및 도 2를 참조하면, 반도체 메모리 장치(1200)는 커맨드 디코더(1210), 어드레스 버퍼(1220), 로우 디코더(1230), 컬럼 디코더(1240), 셀 어레이(1250), 라이트 드라이버/센스 앰프(1260), 입출력 드라이버부(1270) 및 데이터 출력부(1280)을 포함한다.
커맨드 디코더(1210)는 메모리 컨트롤러(1100)로부터 수신되는 칩 선택 신호(chip select; /CS), 로우 어드레스 스트로브(Row Address Strobe; /RAS), 컬럼 어드레스 스트로브(Column Address strobe; /CAS), 라이트 인에이블 신호(Write enable; /WE) 및 클록 인에이블 신호(Clock enable; CKE)를 입력 받아 디코딩 동작을 수행한다. 디코딩 결과에 따라 반도체 메모리 장치(1200)는 메모리 컨트롤러(1100)의 명령을 수행한다.
메모리 컨트롤러(1100)에서 수신된 어드레스 신호(ADD)는 어드레스 버퍼(1220)에 저장된다. 이후, 어드레스 버퍼(1220)는 로우 어드레스(X-ADD)를 로우 디코더(1230)에 전달하고, 컬럼 어드레스(Y-ADD)를 컬럼 디코더(1240)에 전달한다.
로우 디코더(1230) 및 컬럼 디코더(1240)는 각각 다수의 스위치들을 포함한다. 로우 디코더(1230)는 로우 어드레스에 응답하여 워드라인(WL)을 선택하며, 컬럼 디코더(1240)는 컬럼 어드레스에 응답하여 비트라인(BL)을 선택한다. 셀 어레이(1250)는 워드라인(WL) 및 비트라인(BL)의 교차점 영역에 위치하는 메모리 셀을 포함한다.
라이트 드라이버/센스 앰프(1260)는 비트라인(BL)에 인가되는 데이터 전압을 센싱/증폭하는 다수 개의 센스 앰프 회로들을 포함한다. 라이트 드라이버/센스 앰프(1260)에서 센싱/증폭된 데이터 신호는 입출력 드라이버부(1270)를 거쳐 데이터 입출력부(1280)로 전달된다. 데이터 입출력부(1280)는 입출력 드라이버부(1270)로부터 전달받은 데이터를 메모리 컨트롤러(1100)로 출력하거나, 메모리 컨트롤러(1100)로부터 전달된 데이터를 입출력 드라이버부(1270)로 출력한다.
도 3은 도 2의 셀 어레이 영역의 일 구현예를 나타내는 블록도이다. 도 3을 참조하면, 셀 어레이(1250)는 메모리 영역(Memory area, 1251)과 리던던시 영역(Redundancy area, 1252)을 포함한다. 메모리 영역(1251)에는 데이터가 저장되며, 리던던시 영역(1252)에는 메모리 영역(1251)에서 결함이 발생된 메모리 셀을 대체하기 위한 여분의 메모리 셀들이 포함된다. 결함이 발생한 메모리 셀을 리던던시 메모리 셀로 대체하는 리페어 방법으로서, 반도체 메모리 장치를 패키지 하기 전에 퓨즈 컷팅을 하거나 내용 주소화 기억 장치(Content addressable memory, CAM)를 이용하여 결함 셀의 어드레스 정보를 저장하고, 액세스 요청되는 셀의 어드레스와 상기 저장된 어드레스 정보를 비교함에 의하여 리페어가 수행될 수 있다.
도 4 내지 도 5는 본 발명의 일 실시 예에 따른 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법을 나타내는 도면이다. 메모리 컨트롤러는 결함이 발생한 메모리 셀을 리페어(Repair) 하기 위한 내용 주소화 기억 장치(Code Addressable Memory; CAM)를 포함할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 메모리 컨트롤러를 나타내는 블록도이다. 도 4를 참조하면, 메모리 컨트롤러(Memory controller, 2000)는 패킷 입력부(packet input unit, 2110), 패킷 디코더(packet decoder, 2120), 내용 주소화 기억 장치(CAM, 2130), 커맨드 대기부(CMD queue, 2140), 아비터(Arbiter, 2150), 라이트 데이터 대기부(Write data queue, 2160), 컨트롤러 입출력부(Controller I/O. 2170), 패킷 생성부(Packet generator, 2180) 및 패킷 출력부(Packet output unit, 2190)를 포함한다.
패킷 입력부(2110)는 외부 장치, 예컨대 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷(RX_Packet)을 입력 받는다. 패킷 디코더(2120)는 패킷을 디코딩하여 커맨드(CMD) 및 이에 대응되는 어드레스(ADD)를 생성한다. 일예로서, 수신되는 하나의 패킷 당 하나의 커맨드(CMD) 및 어드레스(ADD)가 생성될 수 있다. 또는, 하나의 패킷 당 두 개 이상의 커맨드(CMD) 및 어드레스(ADD)가 생성될 수도 있다.
내용 주소화 기억 장치(2130, 이하 CAM)는 결함 어드레스 저장부(Fail Address List, 2131) 및 결함 어드레스 검출부(Fail Address Detector, 2132)를 포함한다. 결함 어드레스 저장부(2131)는 반도체 메모리 장치의 셀 어레이에 포함된 결함 셀의 어드레스 정보를 저장한다. 결함 어드레스 검출부(2132)는 어드레스(ADD)와 결함 어드레스 저장부(2131)에 저장된 어드레스 정보와 동일성 여부를 비교하여 어드레스(ADD)가 결함 어드레스에 해당하는 지 여부를 검출한다. 결함 어드레스는 결함 셀을 지시하는 어드레스로 정의될 수 있으며, 어드레스(ADD)가 결함 어드레스가 아닌 경우 상기 어드레스(ADD)는 정상 셀을 지시하는 정상 어드레스로 지칭될 수 있다. 또한, 상기 어드레스(ADD)가 결함 셀을 지시하는 경우, 결함 어드레스 검출부(2132)는 결함 셀을 리페어하기 위하여 어드레스 리맵핑(remapping) 동작을 수행하고, 리맵핑된 어드레스를 커맨드 대기부(2140)로 출력한다.
커맨드 대기부(2140)는 다수의 커맨드 및 어드레스를 저장하기 위한 공간을 포함하며, 커맨드 및 어드레스를 입력 받은 순서대로 큐잉하고 이를 아비터(2150)에 전송한다. 커맨드 대기부(2140)는 가장 먼저 리스트에 삽입된 정보가 가장 먼저 삭제되는 선입 선처리 제어 방식(First In First Out; FIFO)으로 동작할 수 있다. 아비터(2150)는 복수의 입력 신호들 중에서 일정한 규칙 하에 차례대로 하나씩 신호를 선택하고 다른 것을 대기시키도록 제어하는 회로이다. 따라서, 아비터(2150)는 커맨드 대기부(2140)에 큐잉되어 있는 복수의 커맨드(CMD)들 및 이에 대응하는 어드레스(ADD)들을 입력받으며, 우선 순위에 따라 커맨드(CMD) 및 어드레스(ADD)가 실행되도록 제어한다. 커맨드(CMD) 및 어드레스(ADD)의 실행이라 함은, 우선 순위에 따라 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치로 출력하는 동작을 나타낼 수 있다.
라이트 데이터 대기부(2160)는 아비터(2150)로부터 라이트 제어신호(Ctrl_WR)를 입력 받으며, 라이트 제어신호(Ctrl_WR)에 응답하여 패킷 디코더(2120)에서 전송된 데이터를 컨트롤러 입출력부(2170)로 출력한다.
컨트롤러 입출력부(2170)는 물리 계층 영역으로 구현될 수 있다. 따라서, 컨트롤러 입출력부(2170)는 전송 매체 사이의 인터페이스를 정의하고, 데이터 링크 계층 간의 신호 전송을 위한 기계적, 전기적, 기능적 절차적인 수단을 제공한다. 컨트롤러 입출력부(2170)는 메모리 컨트롤러(2000) 내에서 생성된 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA) 등을 반도체 메모리 장치에 전송한다.
패킷 생성부(2180)는 반도체 메모리 장치로부터 리드된 데이터를 입력 받아 패킷을 생성하고, 패킷 출력부(2190)는 패킷 생성부(2180)에서 생성된 패킷(TX_Packet)을 외부 장치, 예컨대 중앙 처리 장치(미도시)로 출력한다.
도 5는 본 발명의 일 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 4 및 도 5를 참조하면, 메모리 컨트롤러(2000)는 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다(S110). 그리고, 패킷을 디코딩하여 커맨드(CMD) 및 이에 대응되는 어드레스(ADD)를 생성한다(S120). 중앙 처리 장치로부터 복수의 패킷들이 입력됨에 따라, 이로부터 복수의 커맨드(CMD)들 및 어드레스(ADD)들이 생성될 수 있다.
CAM(2130)은 입력된 어드레스(ADD)와 결함 어드레스 저장부(2131)에 저장된 어드레스 정보를 비교하는 동작을 수행하며, 예컨대 입력된 어드레스(ADD)와 저장된 어드레스 정보와의 동일성 여부를 비교한다(S130). 이를 통해, 어드레스(ADD)가 결함 셀을 지시하는 결함 어드레스인지를 판정한다(S140). 어드레스(ADD)가 결함 어드레스에 해당되면, 어드레스(ADD)를 리맵핑(Remapped)함으로써 정상 셀을 지시하는 리맵핑 어드레스를 생성하며, 또한 리맵핑 어드레스에 대응하는 새로운 커맨드(CMD)를 생성한다(S150). 생성된 새로운 커맨드 및 리맵핑 어드레스가 커맨드 대기부(2140)로 제공된다.
한편, 어드레스(ADD)가 결함 어드레스에 해당되지 않으면, 별도의 리맵핑 어드레스의 생성 과정 없이 어드레스(ADD)와 커맨드(CMD)가 커맨드 대기부(2140)로 제공된다.
커맨드 대기부(2140)에 제공된 커맨드(CMD) 및 어드레스(ADD)들은 커맨드 대기부(2140)에서 순차적으로 큐잉된다(S160). 이후, 커맨드(CMD) 및 어드레스(ADD)들은 큐잉된 순서대로 아비터(2150)로 전송된다. 아비터(2150)의 제어 하에 커맨드(CMD) 및 어드레스(ADD)들이 실행된다(S170). 상기 커맨드(CMD) 및 어드레스(ADD)들이 실행은 커맨드(CMD) 및 어드레스(ADD)들의 반도체 메모리 장치로의 출력 동작을 나타낼 수 있다.
전술한 동작에서, 커맨드 대기부(2140)는 다수의 커맨드(CMD)들 및 어드레스(ADD)들을 저장하기 위한 공간을 포함할 수 있으며, CAM(2130)으로부터 입력되는 순서에 따라 커맨드(CMD)들 및 어드레스(ADD)들을 저장한다. 또한, CAM(2130)에는 반도체 메모리 장치의 셀 어레이의 결함 셀을 나타내는 어드레스 정보와 함께 결함 셀을 대체할 정상 셀을 지시하는 어드레스 정보가 더 저장될 수 있다. 액세스 요청되는 메모리 셀이 결함 셀에 해당하는 경우, 패킷 디코딩에 의해 생성된 어드레스(ADD)를 리맵핑하여 정상 셀을 지시하는 어드레스를 생성한다.
또한, 리맵핑 어드레스에 대응하는 커맨드(CMD)를 생성하는 동작은, 패킷 디코딩에 의해 생성된 커맨드(CMD)를 CAM(2130) 내에 일시 저장하고, 리맵핑 어드레스의 출력과 함께 커맨드(CMD)를 함께 출력하는 동작에 해당할 수 있다. 즉, 커맨드(CMD)와 어드레스(ADD)가 CAM(2130)으로 제공되고, CAM(2130)은 어드레스(ADD)를 결함 셀에 관련된 어드레스 정보와 비교하며, 어드레스(ADD)가 결함 셀을 지시하는 경우 CAM(2130)은 커맨드(CMD)와 리맵핑 어드레스를 출력한다. 상기 CAM(2130)으로부터 리맵핑 어드레스에 대응하는 커맨드(CMD)가 출력되는 동작은 상기 CAM(2130)에 의해 리맵핑 어드레스에 대응하는 커맨드(CMD)가 생성되는 동작으로 설명되어도 무방하다.
도 6 내지 도 9는 본 발명의 다른 실시 예에 따른 메모리 컨트롤러 및 그 동작 방법의 순서도들을 나타낸다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러를 나타내는 블록도이다. 도 6을 참조하면, 메모리 컨트롤러(3000)는 패킷 입력부(packet input unit, 3110), 패킷 디코더(packet decoder, 3120), 내용 주소화 기억 장치(CAM, 3130), 커맨드 대기부(CMD queue, 3150), 아비터(Arbiter, 3160), 라이트 데이터 대기부(Write data queue, 3170), 컨트롤러 입출력부(Controller I/O. 3180), 데이터 블로킹 로직(Data Blocking logic, 3190), 패킷 생성부(Packet generator, 3210) 및 패킷 출력부(Packet output unit, 3220)를 포함한다.
패킷 입력부(3110)는 외부 장치, 예컨대 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다. 패킷 디코더(3120)는 패킷을 디코딩하여 커맨드(CMD) 및 이에 대응하는 어드레스(ADD)를 생성한다. 다수의 패킷이 디코딩됨에 따라 복수의 커맨드(CMD)들 및 어드레스(ADD)들이 생성된다.
CAM(3130)는 결함 어드레스 저장부(Fail Address List, 3131) 및 결함 어드레스 검출부(Fail Address Detector, 3132)를 포함한다. 결함 어드레스 저장부(3131)는 반도체 메모리 장치의 셀 어레이에 포함된 결함 셀의 어드레스 정보(이하, 결함 어드레스 정보로 지칭함)를 저장한다. 결함 어드레스 저장부(3131)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있으며, 예컨대 빠른 처리 속도가 요구되는 경우 결함 어드레스 저장부(3131)는 SRAM과 같은 메모리를 포함할 수 있다. SRAM 등의 휘발성 메모리가 적용되는 경우, 메모리 컨트롤러(3000) 내부의 별도의 비휘발성 메모리(미도시)에 결함 셀과 관련된 어드레스 정보가 저장되고, 시스템 구동시 비휘발성 메모리에 저장된 정보가 어드레스 저장부(3131)로 로드될 수 있다. 또는, 결함 셀과 관련된 어드레스 정보는 반도체 메모리 장치 내부에 저장되고, 시스템 구동시 반도체 메모리 장치로부터 전송된 결함 어드레스 정보가 어드레스 저장부(3131)에 저장될 수 있다 또는, 결함 어드레스 저장부(3131)는 비휘발성 메모리를 포함할 수 있으며, 비휘발성 메모리에 저장된 결함 어드레스 정보를 이용하여 어드레스 비교 동작이 수행될 수도 있다.
도 7a는 결함 어드레스 정보를 저장하는 비휘발성 메모리(3140, NVM)가 메모리 컨트롤러(3000)에 더 구비되는 예가 도시되며, 도 7a에 도시된 바와 같이 비휘발성 메모리(3140)에 저장된 결함 어드레스 정보가 어드레스 저장부(3131)로 로드된다. 이 때, 비휘발성 메모리(3140)는 프로그래밍 동작의 횟수에 따라 원 타임 프로그래머블(OTP; One-Time Programmable, 이하 'OTP'라 한다)과 멀티 타임 프로그래머블(MTP; Multi-Time Programmable) 중 어느 하나가 적용될 수 있다. 일 실시 예에 따르면, 비휘발성 메모리(3140)는 단 한번의 프로그래밍만이 가능한 OTP 소자를 포함할 수 있으며, 반도체 메모리 장치의 결함 어드레스가 정보가 업데이트 됨에 따라 더 많은 정보를 추가하여 저장할 수 있다.
다시 도 6을 참조하면, 결함 어드레스 검출부(3132)는 어드레스(ADD)와 결함 어드레스 저장부(3131)에 저장된 어드레스 정보와 동일성 여부를 비교하여 어드레스(ADD)가 결함 어드레스에 해당하는지 여부를 검출한다.
예를 들어, 제 1 커맨드(CMD) 및 이에 대응하는 제 1 어드레스(ADD)가 입력된 경우에, 결함 어드레스 검출부(3132)는 제 1 어드레스(ADD)를 결함 어드레스 저장부(3131)에 저장된 어드레스 정보와 비교하고, 그 비교 결과에 따라 제 1 어드레스(ADD)를 결함 어드레스로 검출할 수 있다. 검출 결과에 따라, 결함 어드레스 검출부(3132)는 제 1 어드레스(ADD)를 리맵핑한 제 2 어드레스(ADD')를 출력함과 함께, 제2 어드레스(ADD')에 대응하는 제2 커맨드(CMD')를 커맨드 대기부(3150)로 출력한다. 이 때, 제2 커맨드(CMD')는 제1 커맨드(CMD)와 동일한 메모리 동작을 요청하는 커맨드로서, 패킷 디코더(3120)에서 생성된 제1 커맨드(CMD)와 동일한 커맨드일 수 있다.
즉, 결함 어드레스 검출부(3132)는 제1 커맨드(CMD)를 수신하여 일시 저장하고, 일시 저장된 제1 커맨드(CMD)를 제2 커맨드(CMD')로서 커맨드 대기부(3150)로 제공할 수 있다. 또한, 결함 셀의 어드레스를 정상 셀로 대체하기 위한 리맵핑 어드레스가 결함 어드레스 저장부(3131)에 더 저장될 수 있으며, 제 1 어드레스(ADD)에 대응하는 리맵핑 어드레스를 상기 제2 어드레스(ADD')로서 커맨드 대기부(3150)로 제공할 수 있다.
커맨드 대기부(3150)는 커맨드 및 어드레스를 입력 받은 순서대로 큐잉하고 이를 아비터(3160)에 전송한다. 커맨드 대기부(3150)는 가장 먼저 리스트에 삽입된 정보가 가장 먼저 삭제되는 선입 선처리 제어 방식(First In First Out; FIFO)으로 동작할 수 있다.
아비터(3160)는 복수 입력 신호 중에서 일정한 규칙 하에 차례대로 하나씩 신호를 선택하고 다른 것을 대기시키도록 제어하는 회로이다. 따라서, 아비터(3160)는 커맨드 대기부(3150)에 큐잉되어 있는 복수의 커맨드(CMD)들 및 이에 대응하는 어드레스(ADD)들을 입력 받으며, 우선 순위에 따라 커맨드(CMD) 및 어드레스(ADD)가 실행되도록 제어한다.
도 6의 실시예에 따르면, CAM(3130)과 커맨드 대기부(3150)는 커맨드(CMD) 및 어드레스(ADD)가 전송되는 경로에 대해 병렬하게 위치한다. 따라서, CAM(3130)에서 어드레스의 결함 여부를 검출하는 동작은, 커맨드 대기부(3150)에서 커맨드를 큐잉하는 동작과 실질적으로 동시에 수행될 수 있다. 즉, 어드레스(ADD)의 결함 여부 검출 결과에 무관하게 커맨드(CMD) 및 어드레스(ADD)가 커맨드 대기부(3150)에 큐잉되고, 아비터(3160)의 우선 순위 동작에 따라 커맨드(CMD) 및 어드레스(ADD)가 반도체 메모리 장치로 제공될 수 있다. 이에 따라, 커맨드(CMD)/어드레스(ADD)가 전송되는 메인 경로 상에 CAM(3130)이 배치되지 않으며, CAM(3130)의 결함 어드레스 검출 동작에 의한 레이턴시(Latency)의 증가를 최소화할 수 있다. 또는, 상기 CAM(3130)에서의 결함 어드레스 검출 동작은, 아비터(3160)에 의해 커맨드(CMD)가 실행되는 것과 함께 수행되거나, 또는 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치로 출력하고 그 응답을 기다리는 동안에 수행되도록 구현될 수도 있다.
라이트 데이터 대기부(3170)는 아비터(3160)로부터 라이트 제어신호(Ctrl_WR)를 입력 받으며, 라이트 제어신호(Ctrl_WR)에 응답하여 패킷 디코더(3120)에서 전송된 데이터를 컨트롤러 입출력부(3180)로 출력한다.
컨트롤러 입출력부(3180)는 물리 계층 영역으로 구현될 수 있다. 따라서, 컨트롤러 입출력부(3180)는 전송 매체 사이의 인터페이스를 정의하고, 데이터 링크 계층 간의 신호 전송을 위한 기계적, 전기적, 기능적 절차적인 수단을 제공한다. 컨트롤러 입출력부(3180)는 메모리 컨트롤러(3000)로부터 생성된 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA) 등을 반도체 메모리 장치에 전송한다.
한편, 전술한 바와 같이 결함 어드레스 검출 결과와 무관하게 커맨드(CMD) 및 어드레스(ADD)가 출력되므로, 결함 셀에 대한 데이터 액세스 동작이 이루어질 수 있다. 일예로서, 결함 셀에 대해 리드가 수행된 경우, 결함 셀의 데이터가 외부 장치(예컨대, 중앙 처리 장치)로 제공되는 것이 차단될 필요가 있다. 아비터(3160)는 어드레스(ADD)가 결함 셀로 검출되고, 결함 셀에 대한 리드 동작이 실행된 경우에, 반도체 메모리 장치로부터 리드된 데이터가 중앙 처리 장치로 전송되는 것을 블로킹 하기 위한 제어 신호(BID)를 데이터 블로킹 로직(3190)으로 출력한다.
데이터 블로킹 로직(3190)은 아비터(3160)로부터의 제어 신호(BID)를 수신하고, 결함 셀로부터 리드된 데이터를 블로킹한다. 이후, 리맵핑된 어드레스 따라 정상 셀에서 리드된 데이터를 수신하고 이를 패킷 생성부(3210)로 출력한다.
패킷 생성부(3210)는 반도체 메모리 장치로부터 리드된 데이터를 입력 받아 패킷을 생성하고, 패킷 출력부(3220)는 패킷 생성부(3210)에서 생성된 패킷을 중앙 처리 장치(미도시)로 출력한다.
도 7b은 도 6의 패킷 디코더에서 생성되는 커맨드/어드레스 및 콘트롤러 I/O로 입력되는 커맨드/어드레스의 리스트의 일예를 나타내는 도면이다. 도 6 및 도 7b을 참조하면, 패킷 디코더(3210)는 외부로부터 입력 받은 패킷을 디코딩하여 커맨드(CMD) 및 이에 대응되는 어드레스(ADD)를 생성한다.
예를 들어, 생성되는 커맨드/어드레스 리스트 중에서 4번째의 커맨드/어드레스(11)는, b뱅크의 k번째 행(row)과 q번째 열(column)이 교차하는 지점의 위치의 메모리 셀의 리드(read)를 요청함을 나타낸다. 그리고, 생성되는 커맨드/어드레스들은 커맨드 대기부(3150)에 순차적으로 큐잉된다. 상기 k번째 행(row)과 q번째 열(column)에 대응하는 메모리 셀은 결함 셀에 해당할 수 있다. 패킷 디코더(3210)에서 생성된 커맨드/어드레스들 이외에도, 아비터(3160)에서 액티브 커맨드(active) 및 프리차지 커맨드(Pre-charge) 등이 생성될 수 있다. 커맨드 대기부(3150)에 큐잉된 커맨드/어드레스들 및 상기 아비터(3160)에서 생성된 액티브 커맨드(active) 및 프리차지 커맨드(Pre-charge) 등이 콘트롤러 I/O(3180)로 입력될 수 있다.
커맨드 대기부(3150)는 패킷 디코더(3210)로부터 입력받은 커맨드/어드레스(11)를 제1 커맨드/제1 어드레스(21)로서 큐잉한다. 제1 커맨드/제1 어드레스(21)가 커맨드 대기부(3150)에 큐잉되어 출력을 기다리는 동안, CAM(3130)에서는 결함 어드레스 정보와의 비교 동작에 기반하여 제1 어드레스의 결함 여부를 검출할 수 있다.
제 1 어드레스가 정상 셀로 검출되면, 커맨드 대기부(3150)에 큐잉된 순서에 따라 제1 커맨드/제1 어드레스(21)가 반도체 메모리 장치로 출력될 것이다. 그러나, 제 1 어드레스가 결함 셀로 검출되면, CAM(3130)은 어드레스 리맵핑 동작에 기반하여 제 2 어드레스를 생성함과 함께, 이에 대응되는 제 2 커맨드를 커맨드 대기부(3150)로 전송한다. 도 7b를 참조하면, 제2 커맨드/제2 어드레스(22)는 d뱅크 내의 y번째 열(row)과 z번째 행(column)이 교차하는 지점에 위치하는 메모리 셀(정상 셀)의 리드를 요청함을 나타낸다.
제 2 어드레스에 대응하는 메모리 셀은 반도체 메모리 장치의 리던던시 영역에 위치하는 셀을 지시할 수 있다. 또는 반도체 메모리 장치의 셀 어레이의 일정 영역을 결함 셀을 대체하는 영역으로 이용할 수 있으며, 제2 어드레스에 대응하는 메모리 셀은 상기 일정 영역의 메모리 셀을 지시하도록 할 수 있다. 반도체 메모리 장치의 메모리 셀의 위치에 따라 그 액세스 속도가 달라질 수 있으며, 제 2 커맨드에 대응하는 액세스 시간이 상대적으로 작은 메모리 셀을 지시하도록 제2 어드레스가 생성될 수 있다. 또는, 도시되지는 않았으나, 메모리 컨트롤러(3000) 내부에 별도의 저장 수단(임베디드 DRAM 또는 SRAM 등)이 구비되고, 제2 어드레스는 메모리 컨트롤러(3000) 내부의 별도의 저장 수단의 셀을 지시하도록 생성될 수도 있다.
다른 실시 예에 따르면, 제1 어드레스가 결함 어드레스로 검출되고, 제2 커맨드/제2 어드레스(22)가 커맨드 대기부(3150)로 큐잉되는 시점에 제1 커맨드/제1 어드레스(21)가 커맨드 대기부(3150)에 존재하는 경우(또는, 반도체 메모리 장치로 출력되지 않은 경우), 제1 커맨드/제1 어드레스(21)는 제2 커맨드/제2 어드레스(22)로 대체될 수 있다. 예컨대, 제1 커맨드/제1 어드레스(21)가 저장된 위치의 정보가 제2 커맨드/제2 어드레스(22)로 갱신될 수 있다. 즉, 제2 커맨드/제2 어드레스(22)는 커맨드 대기부에 큐잉된 다른 커맨드들보다 우선적으로 출력되도록 제어될 수 있다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 8에서는 데이터 라이트에 관련된 동작 방법의 예가 도시된다.
도 6 및 도 8을 참조하면, 메모리 컨트롤러(3000)는 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다(S210). 패킷 디코딩 동작에 따라 제1 커맨드(CMD) 및 제 1 커맨드에 대응하는 제 1 어드레스(ADD)를 생성한다(S220). 이 때, 제1 커맨드(CMD)는 라이트 커맨드(write command)를 의미한다.
CAM(3130)는 제 1 어드레스(ADD)와 결함 어드레스 저장부(3131)에 저장된 어드레스 정보의 동일성 여부를 비교한다(S230). 이 때, 제 1 어드레스의 결함 여부를 검출하는 동작은, 제1 커맨드를 큐잉하는 동작과 실질적으로 동시에 수행될 수 있다. 도 8에는 도시되지 않았으나, 제 1 어드레스의 결함 여부를 검출하는 동작 시점은 변경이 가능하며, 예컨대 제1 커맨드 및 제1 어드레스를 반도체 메모리 장치로 출력하는 동작과 실질적으로 동시에 수행될 수 있다.
CAM(3130)는 상기 비교 결과에 기반하여 제 1 어드레스(ADD)가 결함 어드레스인지를 검출한다(S240). 제 1 어드레스(ADD)가 정상 어드레스로 검출되면, 커맨드 대기부(3150)에 큐잉된 순서에 따라 제1 커맨드(CMD) 및 제1 어드레스(ADD)가 실행되어 반도체 메모리 장치로 출력된다(S241).
반면에, 제 1 어드레스(ADD)가 결함 어드레스로 검출되면, 제 1 어드레스(ADD)를 리맵핑한 제 2 어드레스(ADD') 및 제2 어드레스(ADD')에 대응하는 제2 커맨드(CMD')를 생성한다(S250). 이 때, 제1 커맨드(CMD)는 CAM(3130)에 수신되어 일시 저장되었다가 제 2 커맨드(CMD')로서 CAM(3130)로부터 출력될 수 있다.
그리고, 커맨드 대기부(3150)에 제1 커맨드(CMD)가 아직 큐잉되어 있는지 확인한다(S260). 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하는 경우, 제 1 커맨드(CMD) 및 제1 어드레스(ADD)를 제 2 커맨드(CMD') 및 제2 어드레스(ADD')로 대체할 수 있다(S270).
반면에, 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하지 않고 이미 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된 경우에는, 커맨드 대기부(3150)로 입력되는 커맨드/어드레스 순서에 따라 제 2 커맨드(CMD') 및 제2 어드레스(ADD')를 큐잉한다(S271). 이후, 커맨드 대기부(3150)에 큐잉된 제2 커맨드(CMD') 및 제2 어드레스(ADD')가 실행되어 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된다(S280).
전술한 실시예에 따르면, 제1 어드레스(ADD)의 결함 여부 검출과 무관하게 제 1 커맨드(CMD)와 제1 어드레스(ADD)가 커맨드 대기부(3150)에 큐잉되고, 제1 어드레스(ADD)의 결함 검출 결과에 따라 선택적으로 제2 커맨드(CMD') 및 제2 어드레스(ADD')가 커맨드 대기부(3150)에 다시 큐잉된다. 만약, 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하지 않는 경우에는 이미 제 1 커맨드(CMD)가 반도체 메모리 장치로 출력되어 제1 어드레스(ADD)에 대응하는 메모리 셀(결함 셀)에 데이터가 라이트 되었음을 나타낸다. 이 경우, 결함 셀의 데이터 라이트와 무관하게, 다시 제2 어드레스(ADD')에 대응하는 메모리 셀(정상 셀)에 동일한 데이터를 다시 라이트할 수 있다. 이후, 제1 어드레스(ADD)의 리드 동작이 요청되는 경우, 상기 제1 어드레스(ADD)는 결함 어드레스인 것으로 판정될 것이므로 제1 어드레스(ADD)에 대응하는 결함 셀에 데이터가 기록이 되어 있어도 무방하다.
또한, 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하는 경우에는 제 1 커맨드(CMD)가 반도체 메모리 장치로 출력되지 않았음을 나타내며, 이에 따라 커맨드 대기부(3150)에 존재하는 제 1 커맨드(CMD) 및 제1 어드레스(ADD)를 제2 커맨드(CMD') 및 제2 어드레스(ADD')로 대체하는 방식에 따라 제2 커맨드(CMD') 및 제2 어드레스(ADD')를 큐잉할 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 9에서는 데이터 리드 동작과 관련된 동작 방법의 일예가 도시된다.
도 6 및 도 9를 참조하면, 메모리 컨트롤러(3000)는 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다(S310). 패킷 디코더(3120)는 패킷을 디코딩 하여 제1 커맨드(CMD) 및 제 1 커맨드에 대응하는 제 1 어드레스(ADD)를 생성한다(S320). 이 때, 제1 커맨드(CMD)는 리드 커맨드(read command)를 의미한다.
CAM(3130)은 제 1 어드레스(ADD)와 결함 어드레스 저장부(3131)에 저장된 어드레스 정보의 동일성 여부를 비교한다. 이 때, 제 1 어드레스(ADD)의 결함 여부를 검출하는 동작은, 제1 커맨드(CMD)를 큐잉하는 동작과 실질적으로 동시에 수행되거나, 제1 커맨드(CMD) 및 제1 어드레스(ADD)를 출력하는 동작과 실질적으로 동시에 수행될 수 있다(S330).
CAM(3130)는 제 1 어드레스(ADD)가 결함 어드레스인지를 검출한다(S340). 제 1 어드레스(ADD)가 정상 셀을 지시하는 어드레스로 판정되면, 커맨드 대기부(3150)에 큐잉된 제1 커맨드(CMD) 및 제1 어드레스(ADD)가 실행되어 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된다(S341).
반면에, 제1 어드레스(ADD)가 결함 셀을 지시하는 어드레스로 판정되면, 제 1 어드레스(ADD)를 리맵핑한 제 2 어드레스(ADD') 및 제2 어드레스(ADD')에 대응하는 제2 커맨드(CMD')가 생성된다(S350). 이 때, 제1 커맨드(CMD)는 CAM(3130)에 수신되어 일시 저장되었다가 제 2 커맨드(CMD')로서 CAM(3130)으로부터 출력될 수 있다.
커맨드 대기부(3150)에 제1 커맨드(CMD)가 아직 큐잉되어 있는지 확인한다(S360). 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하는 경우, 제 1 커맨드(CMD) 및 제1 어드레스(ADD)를 제 2 커맨드(CMD') 및 제2 어드레스(ADD')로 대체할 수 있다(S370).
그러나, 제 1 커맨드(CMD)가 커맨드 대기부(3150)에 존재하지 않고 이미 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된 경우에는, 제 1 커맨드(CMD)에 응답하여 수신된 제 1 데이터의 외부(예컨대, 중앙 처리 장치)로의 출력을 블로킹한다(S371). 더불어, 커맨드 대기부(3150)에 제 2 커맨드(CMD') 및 제2 어드레스(ADD')를 큐잉한다(S372).
커맨드 대기부(3150)에 큐잉된 제2 커맨드(CMD') 및 제2 어드레스(ADD')가 실행되어 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된다(S380).
도 9의 실시예에 따르면, 리드 요청된 메모리 셀이 결함 셀인 경우에도 이에 대한 제 1 커맨드(CMD) 및 제1 어드레스(ADD)가 출력될 수 있다. 만약, 제 1 커맨드(CMD) 및 제1 어드레스(ADD)가 커맨드 대기부(3150)에 존재하는 경우에는, 제 1 커맨드(CMD) 및 제1 어드레스(ADD)가 저장된 위치의 정보를 제 2 커맨드(CMD') 및 제2 어드레스(ADD')로 대체함으로써 결함 셀로부터 데이터가 리드되는 것을 방지할 수 있다. 또한, 제 1 커맨드(CMD) 및 제1 어드레스(ADD)가 커맨드 대기부(3150)에 존재하지 않는 경우에는, 결함 셀로부터 리드된 데이터(제1 데이터)의 외부로의 출력을 블로킹할 수 있으며, 커맨드 대기부(3150)에 큐잉된 제2 커맨드(CMD') 및 제2 어드레스(ADD')를 반도체 메모리 장치로 출력함으로써 정상 셀로부터 데이터를 리드할 수 있다.
도 10 내지 도 12는 본 발명의 또 다른 실시 예 따른 메모리 컨트롤러의 동작 방법을 나타내는 도면이다. 본 발명의 일 실시 예에 의하면, 데이터 리드 동작 시, 제1 커맨드(CMD)에 대응되는 제1 어드레스(ADD)가 결함 어드레스로 검출되어, 리맵핑된 제 2 어드레스 및 이에 대응하는 제 2 커맨드가 출력될 수 있다. 이 때, 제 1 커맨드에 응답하여 수신된 제 1 데이터와 제 2 커맨드에 응답하여 수신된 제 2 데이터를 비교하여 제 1 어드레스의 결함 여부를 판정(또는, 판정 및 변경)하는 단계가 더 추가될 수 있다.
도 10은 도 6의 데이터 블로킹 로직의 다른 실시 예를 나타내는 블록도이다. 도 6 및 도 10의 (a)를 참조하면, 데이터 블로킹 로직(3190A)은 블로킹 회로(3191A), 결함 데이터 비교기(invalid data comparator, 3192A) 및 CAM 제어기(3193A)를 포함할 수 있다. 블로킹 회로(3191A)는 아비터(3160)로부터 입력 받은 제어신호(BID) 및 반도체 메모리 장치로부터 리드 된 데이터(Read data)를 입력 받는다. 이 때, CAM(3130)은 제 1 커맨드(CMD)에 대응하는 제 1 어드레스(ADD)가 결함 셀로 검출되는 경우, 제 2 어드레스(ADD')로 리맵핑 된 제 2 커맨드(CMD')를 출력한다. 블로킹 회로(3191A)는 제어신호(BID)에 응답하여 리드 데이터(Read data)의 블로킹 여부를 제어한다.
한편, 결함 데이터 비교기(3192A)는 제 1 커맨드(CMD)에 응답하여 수신된 제 1 데이터와 제 2 커맨드(CMD')에 응답하여 수신된 제 2 데이터를 비교하여 제 1 어드레스의 결함 여부를 다시 판정할 수 있다. 제 1 데이터와 제 2 데이터가 동일하지 않으면, 제 1 어드레스(ADD)가 계속적으로 결함 어드레스에 해당되는 것으로 판정하고 그 판정 결과를 CAM 제어기(3193A)로 제공한다. CAM 제어기(3193A)는 판정 결과에 기반하여 CAM(3130)에 저장된 정보를 변경할 수 있다. 그러나, 제 1 데이터와 제 2 데이터가 동일하면, 결함 데이터 비교기(3192A)는 제 1 어드레스(ADD)가 더 이상 결함 어드레스에 해당하지 않는 것으로 판정한 결과를 CAM 제어기(3193A)로 제공한다.
CAM 제어기(3193A)는 판정 결과에 기반하여 CAM(3130)을 제어하기 위한 신호(Ctrl_CAM)를 출력할 수 있다. 예컨대, 제 1 어드레스(ADD)가 더 이상 결함 어드레스에 해당하지 않는 경우 CAM(3130)에 저장된 결함 어드레스 정보를 변경할 수 있다. 이에 따라, 이후의 제 1 어드레스(ADD)에 대응하는 메모리 셀의 액세스시에는 해당 메모리 셀이 정상 셀로 판별된다.
한편, 도 6 및 도 10의 (b)를 참조하면, 데이터 블로킹 로직(3190B)은 ECC(error Correction code, 3191B) 회로 및 CAM 제어기(3192B)를 포함할 수 있다. 데이터 블로킹 로직(3190B)은 ECC회로(3191B)를 이용하여 입력된 데이터의 비트 에러를 검출하고 정정할 수 있다. 만약, 제 1 어드레스(ADD)에 의해 액세스된 결함 셀로부터의 리드 데이터(Read data)의 에러 정정 가능 여부를 나타내는 정보가 CAM 제어기(3192B)로 제공될 수 있으며, CAM 제어기(3192B)는 해당 정보에 근거하여 CAM(3130)을 제어하기 위한 신호(Ctrl_CAM)를 출력할 수 있다. 예컨대, 리드 데이터(Read data)의 에러가 정정 가능한 경우, 제 1 어드레스(ADD)는 결함 어드레스가 아닌 것으로 판정될 수 있으며, 이에 따라 CAM(3130)에 저장된 결함 어드레스 정보가 변경될 수 있다. 또한, ECC회로(3191B) 내부, 또는 ECC회로(3191B) 외부에 데이터 블로킹 수단(미도시)이 포함될 수 있으며, 상기 에러 정정 결과에 따라 리드 데이터(Read data)를 출력하거나 리드 데이터(Read data)의 출력을 블로킹할 수 있다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 8에서는 데이터 라이트에 관련된 동작 방법의 예가 도시된다.
도 6 및 도 11을 참조하면, 메모리 컨트롤러(3000)는 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다(S410). 패킷 디코더(3120)는 패킷을 디코딩 하여 제1 커맨드(CMD) 및 제 1 커맨드(CMD)에 대응하는 제 1 어드레스(ADD)를 생성한다(S420). 이 때, 제1 커맨드(CMD)는 라이트 커맨드(write command)를 의미한다.
CAM(3130)은 제 1 어드레스(ADD)와 결함 어드레스 저장부(3131)에 저장된 어드레스 정보의 동일성 여부를 비교한다. 이 때, 제 1 어드레스(ADD)의 결함 여부를 검출하는 동작은, 제1 커맨드(CMD)를 큐잉하는 동작과 실질적으로 동시에 수행되거나, 제1 커맨드(CMD) 및 제1 어드레스(ADD)를 반도체 메모리 장치로 출력하는 동작과 실질적으로 동시에 수행될 수 있다(S430).
CAM(3130)은 상기 비교 결과에 따라 제 1 어드레스(ADD)가 결함 어드레스인지를 검출한다(S440). 제 1 어드레스(ADD)가 정상 셀을 지시하는 어드레스로 판정되면, 커맨드 대기부(3150)에 큐잉된 제1 커맨드(CMD) 및 제1 어드레스(ADD)가 실행되어 반도체 메모리 장치(1200)로 출력된다(S441).
그러나, 제1어드레스(ADD)가 결함 셀을 지시하는 어드레스에 해당되면, 제 1 어드레스(ADD)를 리맵핑한 제 2 어드레스(ADD') 및 제2 어드레스(ADD')에 대응하는 제2 커맨드(CMD')를 생성한다(S450). 이 때, 제1 커맨드(CMD)는 내용 주소화 기억 장치(3130)에 수신되어 일시 저장되었다가 제 2 커맨드(CMD')로서 커맨드 대기부(3150)로 출력될 수 있다.
커맨드 대기부(3150)에 제 2 커맨드(CMD') 및 제2 어드레스(ADD')를 입력한다(S460). 그리고 커맨드 대기부(3150)에 큐잉된 제1 커맨드(CMD) 및 제 2 커맨드(CMD')가 각각 실행되어 반도체 메모리 장치로 출력된다(S470).
도 12는 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 9에서는 데이터 리드 동작과 관련된 동작 방법의 일예가 도시된다.
도 6 및 도 12를 참조하면, 메모리 컨트롤러(3000)는 중앙 처리 장치(미도시)로부터 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 입력 받는다(S511). 패킷 디코더(3120)는 패킷을 디코딩 하여 제1 커맨드(CMD) 및 제 1 커맨드에 대응하는 제 1 어드레스(ADD)를 생성한다(S512). 이 때, 제1 커맨드(CMD)는 리드 커맨드(Read command)를 의미한다.
CAM(3130)은 제 1 어드레스(ADD)와 결함 어드레스 저장부(3131)에 저장된 어드레스 정보의 동일성 여부를 비교한다. 이 때, 제 1 어드레스의 결함 여부를 검출하는 동작은, 제1 커맨드(CMD)를 큐잉하는 동작과 실질적으로 동시에 수행되거나, 제1 커맨드(CMD)및 제1 어드레스(ADD)를 반도체 메모리 장치로 출력하는 동작과 실질적으로 동시에 수행될 수 있다(S513).
CAM(3130)은 제 1 어드레스(ADD)가 결함 셀을 지시하는 어드레스인지를 검출한다(S514). 제 1 어드레스(ADD)가 정상 셀을 지시하는 어드레스로 검출되면, 커맨드 대기부(3150)에 큐잉된 제1 커맨드(CMD) 및 제1 어드레스(ADD)가 실행되어 반도체 메모리 장치로 출력된다(S523).
그러나, 제1어드레스(ADD)가 결함 셀을 지시하는 어드레스에 해당되면, 제 1 어드레스(ADD)를 리맵핑한 제 2 어드레스(ADD') 및 제2 어드레스(ADD')에 대응하는 제2 커맨드(CMD')를 생성한다(S515). 이 때, 제1 커맨드(CMD)는 CAM(3130)에 수신되어 일시 저장되었다가 제 2 커맨드(CMD')로서 커맨드 대기부(3150)로 출력될 수 있다.
커맨드 대기부(3150)에 제 2 커맨드(CMD') 및 제2 어드레스(ADD')를 입력한다(S516). 그리고 커맨드 대기부(3150)에 큐잉된 제1 커맨드(CMD) 및 제 2 커맨드(CMD')가 각각 실행되어 메모리 컨트롤러(3000)에서 반도체 메모리 장치로 출력된다(S517).
한편, 데이터 블로킹 로직(3190)에서 제 1 커맨드(CMD)에 응답하여 수신된 제 1 데이터 및 제 2 커맨드(CMD')에 응답하여 수신된 제 2 데이터를 비교하여, 제 1 어드레스(ADD)의 결함 어드레스 여부를 다시 판정할 수 있다(S518). 제 1 데이터와 제 2 데이터의 동일 여부에 따라 제 1 어드레스(ADD)에 의해 리드된 데이터의 에러 존재 여부가 판단될 수 있다.
리드된 데이터에 에러가 존재하는 경우, 제 1 어드레스(ADD)가 계속적으로 결함 셀을 지시하는 어드레스에 해당되는 것으로 판정하고, CAM을 제어하기 위한 신호로서 페일(fail)을 의미하는 판정 결과 신호를 전송한다(S520). 반면에, 리드된 데이터에 에러가 존재하지 않는 경우, 제 1 어드레스(ADD)가 더 이상 결함 셀을 지시하는 어드레스에 해당하지 않는 것으로 판정하고, CAM을 제어하기 위한 신호로서 석세스(Success)를 의미하는 판정 결과 신호를 전송한다(S521). CAM(3130)은 판정 결과에 따라 결함 어드레스 정보를 갱신할 수 있다.
도 6내지 도 12의 실시 예에 따르면, 결함 어드레스를 검출하는 장치와 커맨드/어드레스를 큐잉하는 장치가 커맨드 및 어드레스가 전송되는 메인 경로에 대해 병렬적으로 위치하므로, 결함 검출 동작과 큐잉 동작을 순차적으로 진행할 때보다 메모리 컨트롤러의 처리속도를 증가시킬 수 있다.
즉, 반도체 메모리 장치에 1% 의 결함 셀이 존재하는 경우에 99%의 어드레스는 결함 셀을 리페어 하는 동작을 지원하지 않는 메모리 컨트롤러와 동일한 레이턴시(Latency)를 가질 수 있는 이점이 있다. 더불어, 결함 셀 어드레스에 대해서도 지속적으로 액세스 동작을 수행하여 결함 극복 여부를 판정할 수 있는 장점이 있다.
도 13은 본 발명의 다른 실시예에 따른 메모리 컨트롤러의 일 구현예를 나타내는 블록도이다. 도 13의 메모리 컨트롤러(4100)는 다수의 뱅크(BANK)들을 포함하는 반도체 메모리 장치를 제어하며, 메모리 컨트롤러(4100)는 전술한 실시예에서와 같이 CAM(4110), 커맨드 대기부(4120), 아비터(4150), 컨트롤러 입출력부(4160)와 함께, 뱅크 제어부(4130) 및 뱅크 상태 저장부(4140)를 더 구비할 수 있다. 도 13의 실시예에 따른 메모리 컨트롤러(4100)의 커맨드/어드레스 큐잉 동작 및 결함 어드레스 검출 동작은 이전 실시예에서와 동일 또는 유사하게 수행되므로, 이에 대한 자세한 설명은 생략한다.
어드레스(ADD)는 반도체 메모리 장치의 다수의 뱅크들을 선택하기 위한 뱅크 어드레스를 포함할 수 있으며, 뱅크 제어부(4130)는 뱅크 어드레스에 기반하여 메모리 동작을 제어할 수 있다. 예컨대, 소정의 뱅크에 대해 액세스가 요청되는 경우, 뱅크 상태 저장부(4140)에 저장된 정보를 참조하여 반도체 메모리 장치의 뱅크 상태를 판별하고 그 판별 결과를 아비터(4150)로 제공한다. 아비터(4150)는 커맨드 대기부(4120)에 저장된 다수의 커맨드들의 실행 우선 순위를 설정함에 있어서, 뱅크 상태 판별 결과를 이용하여 실행 우선 순위를 설정할 수 있다. 일예로서, 동일한 뱅크에 대해 연속적으로 액세스가 이루어지는지, 또는 다른 뱅크에 대해 연속적으로 액세스가 이루어지는지에 따라 커맨드 출력의 우선 순위가 달리 설정될 수 있다.
또한, 본 발명의 실시예에 따라 라이트 데이터 대기부(4170) 및 데이터 블로킹 로직(4180)이 메모리 컨트롤러(4100)에 더 구비될 수 있으며, 라이트 데이터 대기부(4170)는 아비터(4150)로부터의 라이트 제어신호(Ctrl_WR)에 응답하여 라이트 데이터(WR_DATA)를 컨트롤러 입출력부(4160)로 출력한다. 또한, 데이터 리드 동작시, 데이터 블로킹 로직(4180)은 아비터(4150)로부터의 제어 신호(BID)에 응답하여 리드 데이터(READ DATA)의 블로킹 여부를 제어한다. 이외에도, 전술한 실시예에서 설명된 기타 다른 구성들이 메모리 컨트롤러(4100)에 더 구비될 수 있음은 자명하다.
도 14는 본 발명의 다른 실시예에 따른 메모리 시스템의 일 구현예를 나타내는 블록도이다. 도 14의 실시예에서는 결함 어드레스 정보 저장 및 결함 어드레스 검출 동작의 적어도 일부가 반도체 메모리 장치에서 수행되는 예가 도시되며, 예컨대 결함 어드레스 정보 저장 및 결함 어드레스 검출 동작이 반도체 메모리 장치(4220)에서 수행되는 예가 도시된다.
도 14에 도시된 바와 같이, 메모리 시스템(4200)은 메모리 컨트롤러(4210) 및 반도체 메모리 장치(4220)를 포함한다. 메모리 컨트롤러(4210)는 패킷 디코더(4211), 커맨드 대기부(4212) 및 정상 어드레스 생성기(4213)를 포함할 수 있다. 또한 반도체 메모리 장치(4220)는 셀 어레이(4221), 결함 어드레스 저장부(4222) 및 결함 어드레스 검출부(4223)를 포함할 수 있다.
메모리 컨트롤러(4210)는 액세스 요청하는 어드레스의 결함 어드레스 여부와 무관하게 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치(4220)로 출력한다. 반도체 메모리 장치(4220)의 결함 어드레스 검출부(4223)는 수신된 어드레스(ADD)와 결함 어드레스 저장부(4222)에 저장된 정보를 비교함에 의하여 결함 셀에 대한 액세스 여부를 검출한다. 검출 결과, 정상 셀에 대한 액세스 요청인 경우 해당 메모리 셀에 데이터를 라이트하거나, 해당 메모리 셀로부터 리드된 데이터를 출력한다. 반면에, 결함 셀에 대한 액세스 요청인 것으로 판별된 경우, 이를 나타내는 판별 신호(Res_Det)를 메모리 컨트롤러(4210)로 출력한다.
정상 어드레스 생성기(4213)는 반도체 메모리 장치(4220)의 결함 셀을 대체할 정상 셀에 관계된 어드레스 정보를 저장할 수 있다. 정상 어드레스 생성기(4213)는 커맨드(CMD) 및 어드레스(ADD)를 일시 저장하고, 판별 신호(Res_Det)에 응답하여 정상 어드레스 및 이에 대응하는 커맨드를 생성하고 이를 커맨드 대기부(4212)로 제공한다. 커맨드 대기부(4212)는 정상 어드레스 및 이에 대응하는 커맨드를 추가로 큐잉하고, 큐잉된 순서에 따라 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치(4220)로 제공함으로써 정상 셀이 액세스되도록 한다.
도 14의 예에서는 결함 어드레스 정보 저장 및 결함 어드레스 검출 동작이 반도체 메모리 장치(4220)에서 수행되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, 결함 어드레스 검출 동작은 메모리 컨트롤러(4210)에서 수행될 수 있으며, 반도체 메모리 장치(4220)에 저장된 결함 어드레스 정보가 메모리 컨트롤러(4210)로 제공될 수 있다.
도 15 본 발명의 다른 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 15를 참조하면, 메모리 시스템(4300)은 메모리 컨트롤러(4210)와 반도체 메모리 장치(4220)를 포함하며, 메모리 컨트롤러(4210)는 전술한 실시예에서와 같은 결함 어드레스 검출 동작 및 큐잉 동작을 수행할 수 있다.
광 연결 장치들(4331, 4332)과 메모리 컨트롤러(4210)와 반도체 메모리 장치(4310) 사이에 연결된다. 메모리 컨트롤러(4210)는 컨트롤 유닛(4321), 제1 송신부(4322) 및 제1 수신부(4323)를 포함한다. 컨트롤 유닛(4321)은 제1 전기 신호(SN1)를 제1 송신부(4322)로 전송한다. 제1 전기 신호(SN1)는 반도체 메모리 장치(4220)로 전송되는 커맨드, 클록 신호, 어드레스 및 데이터 등을 포함할 수 있다. 본 발명의 실시예에 따르면, 제1 송신부(4322) 및 제1 수신부(4323)는 컨트롤러 입출력부에 포함되는 구성일 수 있으며, 컨트롤 유닛(4321)은 커맨드/어드레스 등의 생성에 관련된 각종 구성들을 포함할 수 있으며, 예컨대 전술한 실시예에서 패킷 디코더, CAM, 커맨드 대기부 등 각종 구성들의 적어도 일부가 컨트롤 유닛(4321)에 포함될 수 있다.
제1 송신부(4322)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제1 전기 신호(SN1)를 제1 광 송신 신호(OTP1EC)로 변환하여 광 연결 장치(4331)로 전송한다. 제1 광 송신 신호(OTP1EC)는 광 연결 장치(4331)를 통하여 시리얼 통신으로 전송된다. 제1 수신부(4323)는 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(4332)로부터 수신된 제2 광 수신 신호(OPT2OC)를 제2 전기 신호(SN2)로 변환하여 컨트롤 유닛(4321)으로 전송한다.
반도체 메모리 장치(4310)는 제2 수신부(4311), 셀 어레이(4312) 및 제2 송신부(4313)를 포함한다. 제2 수신부(4311)은 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(4331)로부터 제1 광 수신 신호(OPT1OC)를 제1 전기 신호(SN1)로 변환하여 셀 어레이(4312)로 전송한다.
셀 어레이(4312)에서는 제1 전기 신호(SN1)에 응답하여 라이트 데이터를 메모리 셀에 기입하거나 셀 어레이(4312)로부터 리드된 데이터를 제2 전기 신호(SN2)로서 제2 송신부(4313)로 전송한다. 제2 전기 신호(SN2)는 메모리 콘트롤러(4320)로 전송되는 클록 신호, 리드 데이터 등을 포함할 수 있다. 제2 송신부(4313)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제2 전기 신호(SN2)를 제2 광 송신 신호(OPT2EC)로 변환하여 광 연결 장치(4332)로 전송한다. 제2 광 송신 신호(OTP2EC)는 광 연결 장치(4332)를 통하여 시리얼 통신으로 전송된다.
도 16은 본 발명의 일 실시예에 따른 메모리 컨트롤러를 포함하는 컴퓨터 시스템을 나타내는 블록도이다. 도 16을 참조하면, 컴퓨터 시스템(5000)은 프로세서(5100), 시스템 컨트롤러(5200) 및 메모리 시스템(5300)을 포함한다. 컴퓨터 시스템(5000)은 프로세서 버스(5510), 확장 버스(5520), 입력 장치(5410), 출력 장치(5420) 및 저장 장치(5430)을 더 포함할 수 있다. 메모리 시스템(5300)은 적어도 하나의 반도체 메모리 장치(5320) 및 메모리 컨트롤러(5310)를 포함한다. 메모리 컨트롤러(5310)는 시스템 컨트롤러(5200)에 포함될 수 있다.
프로세서(5100)는 특정 계산들 또는 태스크들을 실행하는 특정 소프트웨어를 실행하는 것과 같이 다양한 컴퓨팅 시스템을 실행할 수 있다. 예를 들어, 프로세서(5100)는 마이크로 프로세서 또는 중앙 처리 장치일 수 있다. 프로세서(5100)는 어드레스 버스, 제어 버스 및/또는 데이터 버스를 포함하는 프로세서 버스(5510)를 통하여 시스템 컨트롤러(5200)에 연결될 수 있다. 시스템 컨트롤러(5200)는 주변 구성 요소 상호 연결(Peripheral component interconnection, PCI) 버스와 같은 확장 버스(5520)에 연결된다. 이에 따라, 프로세서(5100)는 시스템 컨트롤러(5200)를 통하여 키보드 또는 마우스와 같은 하나 이상의 입력 장치(5410), 프린터 또는 디스플레이 장치와 같은 하나 이상의 출력 장치(5420) 또는 하드 디스크 드라이브, 솔리드 스테이트 드라이브 또는 CD-ROM과 같은 하나 이상의 저장 장치(5430)를 제어할 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러(5310)는 프로세서(5100)에 의해 제공된 명령을 수행하도록 반도체 메모리 장치(5320)를 제어할 수 있다. 반도체 메모리 장치(5320)는 메모리 컨트롤러(5310)로부터 제공된 데이터를 저장하고, 저장된 데이터를 메모리 컨트롤러(5310)에 제공할 수 있다. 메모리 컨트롤러(5310)는 반도체 메모리 장치(5320)의 결함 셀을 리페어 하기 위해 본 발명의 일 실시 예에 따른 내용 주소화 기억 장치(CAM)를 포함할 수 있다.
반도체 메모리 장치(5320)는 복수의 메모리 칩들, 예를 들어, 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 비 휘발성 메모리 칩을 포함할 수 있다.
컴퓨터 시스템(5000)은 데스크 톱 컴퓨터, 노트북 컴퓨터, 워크 스테이션, 핸드 헬스 디바이스 등일 수 있다.
도 17은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러를 포함하는 컴퓨터 시스템을 나타내는 블록도이다. 도 17을 참조하면, 컴퓨터 시스템(6000)은 시스템 버스(6100)에 전기적으로 연결되는 중앙 처리장치(6200), 모뎀(6300), 유저 인터페이스(6400) 및 메모리 시스템(6500)을 구비할 수 있다. 반도체 메모리 장치(6520)는 DRAM 셀과 같은 휘발성 메모리 셀 또는 STT-MRAM 셀과 같은 비휘발성 메모리 셀을 포함할 수 있다.
메모리 시스템(6500)은 반도체 메모리 장치(6520)와 메모리 컨트롤러(6510)를 포함할 수 있다. 반도체 메모리 장치(6520)에는 중앙 처리 장치(6200)에 의해서 처리된 데이터 또는 외부에서 입력된 데이터가 저장될 수 있다. 메모리 컨트롤러(6510)는 반도체 메모리 장치(6520)의 결함 셀을 리페어 하기 위해 본 발명의 일 실시 예에 따른 내용 주소화 기억 장치(CAM)를 포함할 수 있다.
반도체 메모리 장치(6520)는 컴퓨터 시스템(6000)에 요구되는 대용량의 데이터를 저장하기 위한 스토리지 또는 시스템 데이터 등의 빠른 액세스를 요하는 데이터를 저장하는 메인 메모리 용도로 적용될 수 있다. 도 17에는 도시되지 않았으나, 컴퓨터 시스템(6000)에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 입출력 장치 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 18a,b은 본 발명의 일 실시 예에 따른 메모리 컨트롤러 및 메모리 모듈을 나타내는 블록도이다.
도 18a를 참조하면, 메모리 시스템(7000A)은 메모리 모듈(7100A) 및 메모리 컨트롤러(7200A)를 포함한다. 메모리 모듈(7100A)은 인쇄 회로 기판(7110A), 복수의 메모리 칩들(7120A) 및 커넥터(7130A)를 포함한다. 복수의 메모리 칩들(7120A)은 인쇄 회로 기판(7110A)의 상면과 하면에 결합될 수 있다. 커넥터(7130A)는 도전선들(미도시)을 통해 복수의 메모리 칩들(7120A)과 전기적으로 연결된다. 또한, 커넥터(7130A)는 외부 호스트의 슬롯에 연결될 수 있다.
복수의 메모리 칩(7120A)들은 DRAM 셀과 같은 휘발성 메모리 또는 STT-MRAM 셀과 같은 비 휘발성 메모리 셀을 포함할 수 있다. 이 때, 메모리 칩(7120A)들은 동작 메모리, 캐시 메모리 등과 같이 컴퓨터 시스템의 데이터를 단기적으로 또는 임시로 저장할 수 있다. 메모리 컨트롤러(7200A)는 커맨드를 큐잉하거나, 커맨드를 출력하는 동작과 병렬적으로 커맨드에 대응하는 어드레스의 결함 여부를 검출하는 동작을 수행할 수 있다. 더불어, 메모리 시스템에서 메모리 컨트롤러(7200A)와 메모리 모듈(7100A) 사이에 디램 인터페이스가 적용될 수 있다.
한편, 도 18b에 도시된 바와 같이, 메모리 시스템(7000B)은 메모리 모듈(7100B) 및 메모리 컨트롤러(7200B)를 포함하며, 메모리 모듈(7100B)은 셀 어레이를 각각 포함하는 하나 이상의 반도체 칩과, 셀 어레이에 대한 메모리 동작을 관리하기 위한 관리 칩(7110B)을 포함할 수 있다. 메모리 컨트롤러(7200B)의 기능의 일부가 관리 칩(7110B)에서 수행될 수 있으며, 예컨대 본 발명의 실시예에 따른 결함 어드레스 검출 동작 및 커맨드 큐잉 동작이 관리 칩(7110B)에서 수행될 수 있다.
도 18b의 예에서는 메모리 컨트롤러의 기능의 일부가 LRDIMM 형태의 메모리 모듈에서 수행되는 예가 도시되었으나 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, FBDIMM 형태의 메모리 모듈이 적용됨에 따라 관리 칩으로서 AMB(Advanced Memory Buffer) 칩이 메모리 모듈에 장착될 수도 있다. 이외에도, 다른 형태의 메모리 모듈이 적용되고, 전술한 메모리 컨트롤러의 기능의 적어도 일부가 메모리 모듈에서 수행되도록 구현될 수 있다.
도 19는 본 발명의 일 실시 예에 따른 메모리 컨트롤러를 포함하는 메모리 모듈을 나타내는 블록도이다.
도 19를 참조하면, 메모리 모듈(8000)은 인쇄 회로 기판(8100), 복수의 메모리 칩들(8200), 커넥터(8300) 및 메모리 컨트롤러(8400)를 포함한다. 메모리 칩들(8200)은 인쇄 회로 기판(8100)의 상면 및 하면에 제공될 수 있다. 인쇄 회로 기판(8100)의 상면 및 하면에 형성되는 메모리 칩들(8200)은 복수의 비아 홀들을 통해 연결될 수 있다. 복수의 메모리 칩(8120)들은 DRAM 셀과 같은 휘발성 메모리 또는 STT-MRAM 셀과 같은 비 휘발성 메모리 셀을 포함할 수 있다. 이 때, 메모리 칩(8200)들은 동작 메모리, 캐시 메모리 등과 같이 컴퓨터 시스템의 데이터를 단기적으로 또는 임시로 저장할 수 있다.
메모리 컨트롤러(8400)는 메모리 칩들(8200)과 통신하고, 메모리 칩들(8200)의 동작 모드를 제어한다. 메모리 컨트롤러(8400)는 메모리 칩들(8200)의 모드 레지스터를 이용하여 다양한 기능들, 특성들 그리고 모드들을 제어할 수 있다. 또한, 메모리 컨트롤러(8400)는 커맨드를 큐잉하거나, 커맨드를 출력하는 동작과 병렬적으로 커맨드에 대응하는 어드레스의 결함 여부를 검출하는 동작을 수행할 수 있다.
도 20은 복수의 반도체 레이어들을 구비하는 적층 구조의 반도체 메모리 장치를 도시한 블록도이다.
반도체 메모리 장치(9000)는 복수의 반도체 레이어(LA1 ~ LAn)를 구비할 수 있다. 반도체 레이어들(LA1 ~ LAn) 각각은 메모리 셀을 포함하는 셀 어레이들(9100)을 포함하는 메모리 칩일 수 있다. 또는, 반도체 레이어들(LA1 내지 LAn) 중 일부는 메모리 칩이고 다른 일부(또는, 어느 하나의 레이어)는 메모리 칩과 인터페이싱을 수행하는 컨트롤러 칩일 수 있다. 도 20의 예에서는 제n 레이어(LAn)가 컨트롤러 칩인 것으로 가정한다.
도 20을 참조하면, 컨트롤러 칩(LAn)은 메모리 칩을 컨트롤하기 위한 컨트롤러부(9210)를 포함하며, 또한 메모리 동작에 관련된 각종 정보를 일시 저장하기 위한 SRAM(9220)을 포함할 수 있다. 이 때, SRAM(9210)은 임베디드 DRAM으로 대체될 수 있다. 컨트롤러부(9210)와 SRAM(9210)이 별도의 구성으로 도시되었으나, SRAM(9210)가 컨트롤러부(9210)에 구비되는 것으로 도시되어도 무방하다.
컨트롤러부(9210)는 메모리 칩들(LA1 내지 LA n-1)과 통신하고, 메모리 칩들(LA1 내지 LA n-1)의 동작 모드를 제어한다. 컨트롤러부(9210)는 메모리 칩들(LA1 내지 LA n-1)의 모드 레지스터를 이용하여 다양한 기능들, 특성들 그리고 모드들을 제어할 수 있다. 또한, 컨트롤러부(9210)는 커맨드를 큐잉하거나, 커맨드를 출력하는 동작과 병렬적으로 커맨드에 대응하는 어드레스의 결함 여부를 검출하는 동작을 수행할 수 있다. 전술한 실시예에서도 언급되었던 바와 같이, 메모리 칩들(LA1 내지 LA n-1)에 포함된 결함 셀을 대체함에 있어서, 컨트롤러 칩(LAn)에 구비된 SRAM(9210)을 이용하여 결함 셀을 대체할 수 있을 것이다.
반도체 메모리 장치(9000)에서 적층 구조의 복수의 반도체 레이어들(LA1~LAn)은 관통 전극(Through Silicon Via; TSV, 9300)을 통해 상호 연결될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (20)

  1. 제 1 커맨드를 커맨드 대기부에 큐잉(Queuing)하는 단계;
    상기 제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하는 단계;
    상기 제1 어드레스가 결함 어드레스로 검출되면, 상기 제 1 어드레스를 리맵핑 한 제2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 상기 커맨드 대기부에 큐잉하는 단계; 및
    상기 제2 커맨드 및 제2 어드레스를 출력하는 단계를 구비하고,
    상기 제1 어드레스 및 상기 제1 커맨드가 상기 커맨드 대기부에 존재할 때, 상기 커맨드 대기부 내의 상기 제1 어드레스 및 상기 제1 커맨드가 상기 제2 어드레스 및 상기 제2 커맨드로 대체되거나, 상기 제2 어드레스 및 상기 제2 커맨드가 상기 제1 어드레스 및 상기 제1 커맨드와 함께 상기 커맨드 대기부에 추가로 큐잉되는 메모리 컨트롤러의 동작 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제 1 커맨드가 리드 커맨드인 경우,
    상기 제 1 커맨드에 응답하여 수신된 제 1 데이터의 외부로의 출력을 블로킹하고, 상기 제 2 커맨드에 응답하여 수신된 제 2 데이터를 외부로 출력하는 단계를 더 구비하는 메모리 컨트롤러의 동작 방법.
  4. 제 3 항에 있어서,
    상기 제 1 데이터와 상기 제 2 데이터를 비교함에 의하여, 상기 제 1 어드레스의 결함 여부를 판정하는 단계를 더 구비하는 메모리 컨트롤러의 동작 방법.
  5. 제 1 항에 있어서,
    상기 제 1 커맨드가 라이트 커맨드인 경우,
    상기 제 1 커맨드 및 제1 어드레스의 출력 여부와 무관하게, 상기 제2 커맨드 및 제2 어드레스를 출력하는 메모리 컨트롤러의 동작 방법.
  6. 제 1 항에 있어서,
    외부로부터 입력 받은 패킷을 디코딩하여 상기 제1 커맨드 및 제1 어드레스를 생성하는 단계를 더 구비하는 메모리 컨트롤러의 동작 방법.
  7. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 반도체 메모리 장치의 결함 셀의 어드레스 정보를 저장하는 저장부를 포함하고,
    상기 제 1 어드레스의 결함 여부를 검출하는 단계는, 상기 저장부에 저장된 어드레스 정보와 상기 제 1 어드레스가 동일한지 여부를 비교하는 메모리 컨트롤러의 동작 방법.
  8. 제 1 항에 있어서,
    상기 제 2 커맨드에 대응하는 액세스 시간이 상기 제 1 커맨드에 대응하는 액세스 시간보다 더 적게 소요되도록 상기 제2 어드레스가 생성되는 메모리 컨트롤러의 동작 방법.
  9. 제 1 항에 있어서,
    상기 제 2 커맨드는 상기 커맨드 대기부에 큐잉된 다른 커맨드들보다 우선적으로 출력되도록 제어되는 메모리 컨트롤러의 동작 방법.
  10. 제 1 항에 있어서,
    상기 제 1 어드레스가 정상 어드레스로 검출되면, 상기 커맨드 대기부에 큐잉된 순서에 따라 상기 제1 커맨드 및 제1 어드레스가 출력되는 메모리 컨트롤러의 동작 방법.
  11. 제 1 항에 있어서,
    상기 제1 커맨드는 외부 패킷을 디코딩하여 생성된 커맨드이며, 상기 제2 커맨드는 상기 제1 커맨드와 동일한 메모리 동작을 요청하는 커맨드인 메모리 컨트롤러의 동작 방법.
  12. 제 11 항에 있어서,
    상기 메모리 컨트롤러는 상기 검출하는 단계를 수행하기 위한 내용 주소화 기억 장치를 구비하고,
    상기 내용 주소화 기억 장치는 상기 제1 커맨드를 수신하여 일시 저장하고, 상기 일시 저장된 제1 커맨드가 상기 제2 커맨드로서 상기 커맨드 대기부로 제공되는 메모리 컨트롤러의 동작 방법.
  13. 제 1 항에 있어서,
    상기 제 1 어드레스의 결함 여부를 검출하는 동작은, 상기 제1 커맨드를 큐잉하는 동작과 실질적으로 동시에 수행되거나, 상기 제1 커맨드 및 제1 어드레스를 출력하는 동작과 실질적으로 동시에 수행되는 메모리 컨트롤러의 동작 방법.
  14. 패킷을 디코딩하여 커맨드 및 이에 대응하는 어드레스를 생성하는 디코더;
    상기 커맨드 및 어드레스를 큐잉하는 커맨드 대기부;
    제 1 커맨드에 대응하는 제 1 어드레스의 결함 여부를 검출하고, 상기 제 1 어드레스가 결함 어드레스에 해당되면, 상기 제 1 어드레스를 리맵핑 한 제 2 어드레스 및 상기 제2 어드레스에 대응하는 제2 커맨드를 상기 커맨드 대기부로 출력하는 내용 주소화 기억 장치; 및
    상기 커맨드 대기부에 큐잉된 커맨드 및 어드레스를 출력하는 컨트롤러 입출력부를 구비하고,
    상기 제1 어드레스 및 상기 제1 커맨드가 상기 커맨드 대기부에 존재할 때, 상기 커맨드 대기부 내의 상기 제1 어드레스 및 상기 제1 커맨드가 상기 제2 어드레스 및 상기 제2 커맨드로 대체되거나, 상기 제2 어드레스 및 상기 제2 커맨드가 상기 제1 어드레스 및 상기 제1 커맨드와 함께 상기 커맨드 대기부에 추가로 큐잉되는 메모리 컨트롤러.
  15. 제 14항에 있어서,
    상기 디코더는 상기 커맨드 대기부와 상기 내용 주소화 기억 장치에 각각 연결되며, 상기 커맨드 및 어드레스는 상기 커맨드 대기부와 상기 내용 주소화 기억 장치로 병렬하게 제공되는 메모리 컨트롤러.
  16. 제 14 항에 있어서, 상기 내용 주소화 기억 장치는,
    반도체 메모리 장치의 결함 셀의 어드레스 정보를 저장하는 결함 어드레스 저장부; 및
    상기 제1 어드레스와 상기 결함 셀의 어드레스 정보의 동일성 여부를 비교함에 의해 상기 제1 어드레스의 결함 여부를 검출하는 결함 어드레스 검출부를 포함하는 메모리 컨트롤러.
  17. 제 16 항에 있어서,
    상기 결함 어드레스 저장부는, 결함 셀의 어드레스 정보에 대응하는 리맵핑 어드레스 정보를 더 저장하고,
    상기 결함 어드레스 검출부는, 상기 제1 어드레스에 대응하는 리맵핑 어드레스 정보를 상기 제2 어드레스로서 출력하는 메모리 컨트롤러.
  18. 삭제
  19. 삭제
  20. 패킷을 디코딩하여 제1 커맨드 및 이에 대응하는 제1 어드레스를 생성하는 디코더;
    반도체 메모리 장치의 결함 셀의 어드레스 정보를 저장하고, 상기 제1 어드레스와 상기 결함 셀의 어드레스 정보를 비교하여 상기 제1 어드레스의 결함 어드레스 여부를 검출하며, 검출 결과에 따라 리맵핑 어드레스를 출력하는 내용 주소화 기억 장치; 및
    상기 검출 결과와 무관하게 상기 제1 커맨드 및 상기 제1 어드레스를 큐잉하고, 상기 제1 어드레스가 결함 어드레스에 해당될 때 상기 리맵핑 어드레스 및 이에 대응하는 제2 커맨드를 추가로 큐잉하는 커맨드 대기부를 구비하고,
    상기 제1 커맨드가 라이트 커맨드인 경우, 상기 제 1 커맨드 및 상기 제1 어드레스의 출력 여부와 무관하게, 상기 제2 커맨드 및 상기 리맵핑 어드레스를 출력하는 메모리 컨트롤러.
KR1020120139827A 2012-12-04 2012-12-04 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 KR102025341B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120139827A KR102025341B1 (ko) 2012-12-04 2012-12-04 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US14/096,824 US9324458B2 (en) 2012-12-04 2013-12-04 Method and controller for receiving and outputting commands and addresses using a queue
CN201310648003.1A CN103853668B (zh) 2012-12-04 2013-12-04 存储器控制器及其执行的操作方法、以及存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120139827A KR102025341B1 (ko) 2012-12-04 2012-12-04 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법

Publications (2)

Publication Number Publication Date
KR20140071811A KR20140071811A (ko) 2014-06-12
KR102025341B1 true KR102025341B1 (ko) 2019-09-25

Family

ID=50826732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120139827A KR102025341B1 (ko) 2012-12-04 2012-12-04 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법

Country Status (3)

Country Link
US (1) US9324458B2 (ko)
KR (1) KR102025341B1 (ko)
CN (1) CN103853668B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600183B2 (en) * 2014-09-22 2017-03-21 Intel Corporation Apparatus, system and method for determining comparison information based on memory data
KR20160065468A (ko) * 2014-12-01 2016-06-09 삼성전자주식회사 솔리드 스테이트 드라이브의 동작 방법
KR20170007927A (ko) * 2015-07-13 2017-01-23 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US9927984B2 (en) * 2015-10-14 2018-03-27 Samsung Electronics Co., Ltd. Electronic system with interface control mechanism and method of operation thereof
KR20170047447A (ko) 2015-10-22 2017-05-08 에스케이하이닉스 주식회사 반도체 메모리 장치
KR20170059049A (ko) * 2015-11-19 2017-05-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102615659B1 (ko) * 2016-07-08 2023-12-20 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20180019791A (ko) * 2016-08-16 2018-02-27 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180045102A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 저장 장치의 동작 방법
CN108735268B (zh) * 2017-04-19 2024-01-30 恩智浦美国有限公司 非易失性存储器修复电路
US10489056B2 (en) 2017-11-09 2019-11-26 Nvidia Corporation Queue manager for streaming multiprocessor systems
KR20190090268A (ko) * 2018-01-24 2019-08-01 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102350644B1 (ko) * 2018-01-26 2022-01-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102468710B1 (ko) * 2018-03-26 2022-11-21 에스케이하이닉스 주식회사 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 동작방법
KR102587648B1 (ko) * 2018-07-23 2023-10-11 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 적층형 메모리 장치의 테스트 방법
CN110851374B (zh) * 2018-08-20 2023-04-14 旺宏电子股份有限公司 预比对系统及预比对方法
CN109388511B (zh) * 2018-09-14 2021-05-18 联想(北京)有限公司 一种信息处理方法、电子设备及计算机存储介质
CN111240581B (zh) * 2018-11-29 2023-08-08 北京地平线机器人技术研发有限公司 存储器访问控制方法、装置和电子设备
CN112055440B (zh) * 2019-05-20 2022-09-02 矽诚科技股份有限公司 具有定序功能的发光二极管灯串系统及定序方法
CN113742132B (zh) * 2021-07-28 2023-08-11 苏州浪潮智能科技有限公司 一种存储系统故障修复方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072768A1 (en) * 2010-09-22 2012-03-22 Morris Tonia G Dynamic physical memory replacement through address swapping

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958065A (en) * 1997-02-18 1999-09-28 Micron Electronics, Inc. Content addressable bit replacement memory
US6993679B2 (en) * 2002-02-28 2006-01-31 Sun Microsystems, Inc. System and method for inhibiting reads to non-guaranteed data in remapped portions of a storage medium
EP1435625A1 (en) * 2002-12-30 2004-07-07 STMicroelectronics S.r.l. Non volatile memory device including a predetermined number of sectors
US7221603B2 (en) 2005-05-12 2007-05-22 Micron Technology, Inc. Defective block handling in a flash memory device
KR100845526B1 (ko) 2006-10-19 2008-07-10 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법
US7916540B2 (en) 2007-05-17 2011-03-29 Samsung Electronics Co., Ltd. Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
KR101091844B1 (ko) 2007-05-17 2011-12-12 삼성전자주식회사 고속으로 배드 블록을 검색하는 플래시 메모리 시스템 및그것의 배드 블록 관리 방법
KR100923989B1 (ko) 2007-06-01 2009-10-28 삼성전자주식회사 배드 블록을 리맵핑하는 플래시 메모리 장치 및 그것의배드 블록의 리맵핑 방법
US7984329B2 (en) * 2007-09-04 2011-07-19 International Business Machines Corporation System and method for providing DRAM device-level repair via address remappings external to the device
US7770077B2 (en) * 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US7768847B2 (en) 2008-04-09 2010-08-03 Rambus Inc. Programmable memory repair scheme
US8214579B2 (en) 2008-09-30 2012-07-03 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US8254191B2 (en) * 2008-10-30 2012-08-28 Micron Technology, Inc. Switched interface stacked-die memory architecture
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP5127737B2 (ja) 2009-02-04 2013-01-23 株式会社東芝 半導体装置
TWI409820B (zh) 2009-02-18 2013-09-21 King Yuan Electronics Co Ltd Semiconductor Test System with Self - Test for Memory Repair Analysis
KR20110099564A (ko) 2010-03-02 2011-09-08 삼성전자주식회사 리페어 효율을 향상하기 위한 플래시 메모리 장치 및 그것의 동작 방법
KR101131569B1 (ko) 2010-10-29 2012-04-04 주식회사 하이닉스반도체 비휘발성 메모리 장치, 이를 위한 리페어 회로 및 캠 데이터 독출 방법
KR20120070408A (ko) 2010-12-21 2012-06-29 에스케이하이닉스 주식회사 블록을 관리하는 비휘발성 메모리 장치의 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072768A1 (en) * 2010-09-22 2012-03-22 Morris Tonia G Dynamic physical memory replacement through address swapping

Also Published As

Publication number Publication date
KR20140071811A (ko) 2014-06-12
CN103853668A (zh) 2014-06-11
US9324458B2 (en) 2016-04-26
US20140157045A1 (en) 2014-06-05
CN103853668B (zh) 2018-04-10

Similar Documents

Publication Publication Date Title
KR102025341B1 (ko) 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
CN108320764B (zh) 半导体设备、存储器模块及其操作方法
US11482278B2 (en) Method of performing internal processing operation of memory device
US10002668B2 (en) Memory device, memory module, and memory system
US9921961B2 (en) Multi-level memory management
US20160203091A1 (en) Memory controller and memory system including the same
US11789808B2 (en) Memory devices for performing repair operation, memory systems including the same, and operating methods thereof
US10853254B2 (en) Memory system having a memory controller and a memory device having a page buffer
US20210064535A1 (en) Memory system including heterogeneous memories, computer system including the memory system, and data management method thereof
US11664083B2 (en) Memory, memory system having the same and operating method thereof
US10976368B2 (en) Memory apparatus relating to determination of a failed region and test method thereof, memory module and system using the same
KR102334739B1 (ko) 메모리 모듈, 시스템, 및 그것의 에러 정정 방법
US9176906B2 (en) Memory controller and memory system including the same
US10402325B2 (en) Memory system
US10628322B2 (en) Memory system and operating method thereof
US20240168896A1 (en) Memory controller, electric system including the same and method of controlling memory access
US20230110110A1 (en) Starvation mitigation for associative cache designs
KR20240014950A (ko) 메모리 시스템, 메모리 시스템의 동작 방법 및 메모리 장치의 컨트롤러

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant