KR20220090794A - 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법 - Google Patents

메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20220090794A
KR20220090794A KR1020200181670A KR20200181670A KR20220090794A KR 20220090794 A KR20220090794 A KR 20220090794A KR 1020200181670 A KR1020200181670 A KR 1020200181670A KR 20200181670 A KR20200181670 A KR 20200181670A KR 20220090794 A KR20220090794 A KR 20220090794A
Authority
KR
South Korea
Prior art keywords
address
ecs
error
memory
controller
Prior art date
Application number
KR1020200181670A
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 KR1020200181670A priority Critical patent/KR20220090794A/ko
Priority to US17/388,243 priority patent/US11604693B2/en
Priority to CN202111431156.1A priority patent/CN114664368A/zh
Publication of KR20220090794A publication Critical patent/KR20220090794A/ko
Priority to US18/096,053 priority patent/US20230144712A1/en
Priority to US18/513,730 priority patent/US20240095122A1/en

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/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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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
    • 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
    • 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
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • 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
    • G11C2029/0411Online error correction

Abstract

본 발명에 따른 메모리 장치는, 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이, 상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로, 및 ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고, 상기 ECS 회로는, 상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터, 및 외부의 장치로부터 수신된 페이지 오프라인(page offline) 어드레스를 저장하는 제 2 레지스터를 포함한다.

Description

메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법{MEMORY DEVICE, CONTROLLER FOR CONTROLLING THE SAME, MEMORY SYSTEM HAVING THE SAME, AND OPERATING METHOD THEREOF}
본 발명은 메모리 장치, 그것을 제어하는 제어기, 및 그것을 갖는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.
일반적으로, 메모리 장치로서 DRAM(Dynamic Random Access Memory)은, 휘발성 데이터 특성을 가지므로, 정상적인 셀의 경우도 정한 시간이 지나면 데이터의 유효성을 보장할 수 없다. 이에 사전에 결정된 리프레쉬 주기마다 DRAM 셀에 저장된 데이터를 리프레쉬 하고 있다. DRAM 셀이 점차 작아짐에 따라 데이터 보유 특성이 저하될 수 있다. 이 경우 리프레쉬를 더 자주 수행하게 되므로 전력 소모가 증가된다. 또한, DRAM 셀이 점차 작아짐에 따라 싱글 비트(single bit) 이상의 에러들이 발생하여 에러 정정 회로에 의해 에러 정정이 불가하거나, 물리적인 에러(예를 들어, 하드 페일(hard fail))가 발생할 확률이 증가한다.
본 발명의 목적은, 이미 리포팅된 어드레스 혹은 맵-아웃된 어드레스를 제외하고 에러 어드레스를 리포팅하는 메모리 장치, 그것을 제어하는 제어기, 및 그것을 갖는 메모리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 장치는, 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이; 상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및 ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고, 상기 ECS 회로는, 상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터; 및 외부의 장치로부터 수신된 페이지 오프라인(page offline) 어드레스를 저장하는 제 2 레지스터를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 장치는, 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이; 상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및 ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고, 상기 ECS 회로는, 에러 어드레스를 저장하는 제 1 레지스터; 및 상기 에러 어드레스로부터 ECS 어드레스 카운터를 순방향 혹은 역방향으로 진행하면서 상기 스크러빙 동작을 수행하는 ECS 로직을 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 장치의 동작 방법은, 제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계; 및 스크러빙 동작을 수행하기 위하여 상기 ECS 모드 정보에 의해 활성화된 ECS 어드레스 카운터를 역방향으로 진행하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 장치의 동작 방법은, 제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계; 상기 제어기로부터 페이지 오프라인 어드레스를 수신하는 단계; ECS 모드 정보에 따라 스크러빙 동작을 수행하는 단계; 및 상기 스크러빙 동작에서 검출된 에러 어드레스들 중에서 상기 페이지 오프라인 어드레스를 제외한 에러 어드레스를 상기 제어기로 리포팅하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 제어기는, 논리 어드레스와 메모리 장치의 물리 어드레스 사이의 맵핑 관계를 관리하고, 상기 메모리 장치로부터 수신된 에러 어드레스를 이용하여 페이지 오프라인 어드레스를 발생하는 맵 관리 장치; 및 상기 메모리 장치의 ECS(Error Check and Scrub) 모드를 관리하는 ECS 모드 관리 장치를 포함하고, 상기 ECS 모드 관리 장치는, 상기 메모리 장치로 ECS 모드 정보 및 페이지 오프라인 어드레스를 전송하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 메모리 시스템은, 메모리 장치; 및 상기 메모리 장치를 제어하고, 상기 메모리 장치로부터 에러 어드레스를 수신하고, 맵-아웃된 페이지 오프라인 어드레스를 상기 메모리 장치로 전송하는 제어기를 포함하고, 상기 메모리 장치는, 메모리 셀 어레이; 상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및 ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하고, 상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터; 및 상기 제어기로부터 상기 페이지 오프라인 어드레스를 저장하는 제 2 레지스터를 포함하는 ECS 회로를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 메모리 장치, 그것을 제어하는 제어기, 및 그것을 갖는 메모리 시스템 및 그것의 동작 방법은, 제어기로부터 페이지 오프라인 어드레스를 수신하고, 스크러빙 동작에 따른 에러 어드레스들 중에서 페이지 오프라인 어드레스를 제외하여 리포팅 함으로써, 반복하여 동일 어드레스가 리포팅 되는 것을 방지할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다.
도 1은 일반적인 호스트 시스템의 에러 정보의 리포팅 과정을 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 시스템(10)을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 메모리 장치(100)를 예시적으로 보여주는 도면이다.
도 4a, 도 4b, 및 도 4c는 본 발명의 실시 예에 따른 메모리 장치(100)의 에러 정정 회로(170)를 설명하기 위한 도면들이다.
도 5a 내지 도 5e는 본 발명의 실시 예에 따른 ECS 회로(180)를 실시 예들을 예시적으로 보여주는 도면들이다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다.
도 7a, 도 7b, 및 도 7c는 본 발명의 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면들이다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다.
도 9는 본 발명의 다른 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면이다.
도 10은 본 발명의 또 다른 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 메모리 장치(100)의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 반도체 메모리 장치가 적용된 메모리 시스템 나타내는 블록도이다.
도 14는 본 발명의 실시 예에 따른 반도체 메모리 장치가 적용된 메모리 시스템 나타내는 블록도이다.
도 15는 본 발명의 실시 예에 따른 반도체 메모리 장치를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
도 16은 본 발명의 실시 예에 따른 적어도 하나의 커맨드/어드레스 캘리브레이션을 수행하는 메모리 시스템을 예시적으로 보여주는 도면이다.
도 17은 본 발명의 실시 예에 따른 그래픽 카드 시스템(3000)을 예시적으로 보여주는 도면이다.
도 18은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(4000)을 예시적으로 보여주는 도면이다.
도 19는 본 발명의 실시 예에 따른 메모리 장치가 적용된 데이터 센터를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시 할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
일반적으로, 메모리 장치의 에러를 해결하기 위하여 온-다이(On-Die) ECC(Error Correction Code) 기술이 적용되고 있다. 여기서 온-다이 ECC는 메모리 장치의 어레이에 존재하는 에러를 감지하고 수정하는 것을 의미한다. 그런데, 온-다이 ECC로 메모리 장치 내부적으로 에러가 처리되고 있지만, 시스템에 이러한 에러 정보가 전달되지 않은 상태로 에러가 누적될 가능성이 있다. 최근 메모리 장치에 ECS(Error Check and Scrub) 모드가 도입되고 있다. ESC 모드에서 메모리 장치는 내부적으로 메모리 셀 어레이의 에러 비트를 정정할 뿐 아니라, 에러 정보(예를 들어, 에러 어드레스)를 저장하고, 외부의 시스템에 저장된 에러 정보를 리포팅 한다. 이러한 ECS 기능은 시스템 내에서 안정성과 서비스 가능성을 크게 향상시키고, 잠재적인 오류를 조기에 감지하고 다운 타임을 방지할 수 있다.
도 1은 일반적인 호스트 시스템의 에러 정보의 리포팅 과정을 보여주는 도면이다. 도 1을 참조하면, 메모리 장치(1, DRAM)는 ECS 모드에서 셀 어레이에 대한 스크러빙 동작을 수행할 수 있다.
메모리 장치(1)는 스크러빙 동작에 따른 최종적인 에러 어드레스(예, C)를 ECS 로그 레지스터를 저장한다. 예를 들어, DDR5 Specification에 따르면, 메모리 칩마다 하나의 에러 어드레스가 저장되고 있다. 또한, HBM3 Specification에 따르면, 하나의 의사 채널마다 하나의 에러 어드레스 저장되고 있다.
호스트(2, HOST)는 메모리 장치(1)로부터 ECS 로그 레지스터에 접근하여 에러 어드레스(C)를 획득한다. 호스트(2)는 ECS 로그 레지스터에 저장된 에러 어드레스(C)를 이용하여 맵핑 테이블에서 획득된 에러 어드레스(C)에 대응하는 엔트리를 삭제한다(mapout). 그런데, 일반적인 호스트 시스템은, 에러 어드레스(C)에 대하여 페이지 리타이어먼트(page retirement)를 처리하고 있지만, 호스트(2)는 이러한 정보를 메모리 장치(1)로 전달하지 않는다. 이로써, 메모리 장치(1)는 ECS 모드에서 반복적으로 이미 페이지 리타이어먼트 처리된 에러 어드레스(C)를 호스트(2)로 전달한다. 도 1에 도시된 바와 같이, 다른 에러 어드레스(예를 들어, A 혹은 B)에 대하여 에러 처리 가능성이 높지 않다.
본 발명의 실시 예에 따른 메모리 시스템 및 그것의 동작 방법은, 맵-아웃된 정보를 호스트에서 메모리 장치로 전달하며, ECS 모드에서 스크러빙 동작의 스케쥴링을 다양하게 함으로써, 에러 정보 리포팅의 자유도를 높일 수 있다.
도 2는 본 발명의 실시 예에 따른 메모리 시스템(10)을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 메모리 시스템(10)은 메모리 장치(100, MEM) 및 그것을 제어하는 제어기(200, CNTL)를 포함할 수 있다.
메모리 장치(100)는 제어기(200)로부터 수신된 데이터를 저장하거나, 읽혀진 데이터를 제어기(200)로 출력하도록 구현될 수 있다. 메모리 장치(100)는, 컴퓨팅 시스템에서 연산 메모리(operation memory), 워킹 메모리(working memory) 혹은 버퍼 메모리(buffer memory)로써 이용될 수 있다. 실시 예에 있어서, 메모리 장치(100)는 SIMM(Single In-line Memory Module), DIMM(Dual In-line Memory Module), SODIMM(Small-Outline DIMM), UDIMM(Unbuffered DIMM), FBDIMM(Fully-Buffered DIMM), RBDIMM(Rank-Buffered DIMM), mini-DIMM, micro-DIMM, RDIMM(Registered DIMM) 혹은 LRDIMM(Load-Reduced DIMM)으로 구현될 수 있다.
실시 예에 있어서, 메모리 장치(100)는 휘발성 메모리로 구현될 수 있다. 예를 들어, 휘발성 메모리는, DRAM(Dynamic Random Access Memory), SDRAM(Synchronous DRAM), DDR SDRAM(Double Data Rate SDRAM), LPDDR SDRAM(Low Power Double Data Rate SDRAM), GDDR SDRAM(Graphics Double Data Rate SDRAM), RDRAM(Rambus DRAM) 및 SRAM(Static RAM)에서 적어도 하나를 포함할 수 있다. 다른 실시 예에 있어서, 메모리 장치(100)는 비휘발성 메모리로 구현될 수 있다. 예를 들어, 비휘발성 메모리는, 낸드 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM), 및 노아 플래시 메모리 중에서 어느 하나를 포함할 수 있다.
또한, 메모리 장치(100)는 SPD(Serial Presence Detection) 칩을 포함할 수 있다. SPD칩은 메모리 장치(100)의 특성에 관한 정보를 저장하도록 구현될 수 있다. 실시 예에 있어서, SPD 칩은 메모리 장치(100)의 모듈 유형, 동작 환경, 선로 배열, 모듈 구성, 저장 용량 등과 같은 메모리 장치 정보를 저장할 수 있다. 실시 예에 있어서, SPD 칩은 프로그램 가능한 읽기 전용 메모리(Programmable Read-only Memory), 예를 들어, EEPROM(Electrically Erasable Programmable Read Only Memory) 등을 포함할 수 있다.
또한, 메모리 장치(100, MEM)는 메모리 셀 어레이(110, MCA), 에러 정정 회로(170, ECC), 및 ECS 회로(180)를 포함할 수 있다.
메모리 셀 어레이(110, MCA)는 데이터를 저장하는 복수의 메모리 셀들을 포함할 수 있다. 실시 예에 있어서, 복수의 메모리 셀들의 각각은, DRAM(dynamic random access memory) 등과 같은 휘발성 메모리 셀을 포함할 수 있다. 다른 실시 예에 있어서, 복수의 메모리 셀들의 각각은, 플래시 메모리, PRAM(Phase change Random Access Memory), RRAM(Resistive Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성 메모리 셀을 포함할 수 있다.
에러 정정 회로(170, ECC)는 메모리 셀 어레이(110)로부터 데이터를 읽고, 읽혀진 데이터의 에러를 정정하도록 구현될 수 있다.
ECS 회로(180)는 ECS 모드에서 사전에 결정된 스케쥴링 방식에 따라 스크러빙 동작을 수행하도록 구현될 수 있다. 예를 들어, ECS 회로(180)는 수신된 어드레스에 대응하는 페이지부터 순차적으로 메모리 셀 어레이(110)로부터 데이터를 읽고, 읽혀진 데이터의 에러를 정정하고, 정정된 데이터를 메모리 셀 어레이(110)에 저장하도록 구현될 수 있다.
실시 예에 있어서, 사전에 결정된 스케쥴링은, 수신된 어드레스로부터 카운트-업 하면서 순방향으로 메모리 셀 어레이(110)에서 진행될 수 있다. 다른 실시 예에 있어서, 사전에 결정된 스케쥴링은, 수신된 어드레스부터 카운트-다운 하면서 역방향으로 메모리 셀 어레이(110)에서 진행될 수 있다. 실시 예에 있어서, 사전에 결정된 스케쥴링은, 수신된 어드레스로부터 랜덤하게 카운트-업 함으로써 메모리 셀 어레이(110)에서 진행될 수 있다. 실시 예에 있어서, 사전에 결정된 스케쥴링은 특정 어드레스에 대응하는 페이지에서 스크러빙 동작을 중단한 이후에 다음 어드레스부터 스크러빙 동작이 재개될 수 있다.
또한, ECS 회로(180)는 에러 정정된 어드레스(ERR_ADDR)를 저장하고, 제어기(200)의 요청에 따라 저장된 에러 어드레스(ERR_ADDR)를 제어기(200)로 출력하도록 구현될 수 있다.
또한, ECS 회로(180)는 제어기(200)로부터 맵-아웃된(혹은, 페이지 오프라인된) 어드레스(POFFL_ADDR, 아래에서는 '페이지 오프라인 어드레스'라고 함)를 수신하고, 스크러빙 동작에서 검출된 에러 어드레스를 제어기(200)로부터 수신된 어드레스(POFFL_ADDR)와 비교하고, 비교 결과로써 동일한 어드레스일 때 에러 어드레스를 저장하지 않을 수 있다. 즉, 제어기(200)에서 전달된 페이지 오프라인 어드레스(POFFL_ADDR)는 ECS 모드에서 제거될 수 있다.
제어기(200)는 메모리 장치(100)를 제어하도록 구현될 수 있다. 또한, 제어기(200)는 ECS 모드 관리 장치(202) 및 맵 관리 장치(204)를 포함할 수 있다.
ECS 모드 관리 장치(202)는 메모리 장치(100)에 ECS 모드를 전송하거나, ECS 모드에 따른 에러 어드레스(ECS)의 출력을 메모리 장치(100)에 요청하거나, 페이지 오프라인 어드레스(POFFL_ADDR)를 메모리 장치(100)에 전송하도록 구현될 수 있다.
맵 관리 장치(204)는 논리 어드레스와 메모리 장치(100)의 대응하는 물리 어드레스를 맵핑하는 맵 테이블을 관리하도록 구현될 수 있다. 특히, 맵 관리 장치(204)는 메모리 장치(100)로부터 수신된 에러 어드레스(ERR_ADDR)를 이용하여 대응하는 어드레스를 페이지 오프라인 시키거나, PPR(Post Package Repair, Soft PPR 혹은 Hard PPR)에 이용할 수 있다.
실시 예에 있어서, 제어기(200)는 별도의 칩으로 구성되거나 메모리 장치(100)와 통합될 수 있다. 예를 들어, 제어기(200)는 마더보드 상에 구현될 수 있다. 또한, 제어기(200)는 마이크로프로세서에 포함된 집적 메모리 제어기(Integrated Memory Controller; IMC)로 구현될 수 있다. 또한, 제어기(200)는 입출력 허브 내에 위치할 수 있다. 또한, 제어기(200)를 포함하는 입출력 허브는 MCH(Memory Controller Hub)라 불릴 수 있다.
일반적인, 메모리 시스템은 메모리 장치의 에러 정보를 호스트에 전달하지만, 호스트가 페이지 오프라인 어드레스(혹은, 페이지 리타이어먼트된 어드레스)를 메모리 장치에 전달하지 않기 때문에 메모리 장치에서 동일한 에러 어드레스를 반복해서 리포팅 할 수 있다.
반면에, 본 발명의 실시 예에 따른 메모리 시스템(10)은, 제어기(200)에서 페이지 오프라인 어드레스(POFFL_ADDR)를 메모리 장치(100)에 전송하고, 메모리 장치(100)에서 페이지 오프라인 어드레스(POFFL_ADDR)와 다양한 스케쥴링 방식에 따라 스크러빙 동작을 수행함으로써 이미 페이지 오프라인 어드레스를 중복하여 제어기(200)로 전달하지 않을 수 있다.
본 발명의 실시 예에 따른 메모리 시스템(10)은 메모리 장치(100)에서 페일 비트 및 페일 어드레스를 리포팅 할 때, 이미 리포팅된 어드레스 혹은 제어기(200)에서 리타이어먼트 처리된 어드레스를 제거하여 리포팅 할 수 있다. 이로써, 에러 어드레스의 리포팅의 신뢰성 및 이용성이 극대화 될 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 장치(100)를 예시적으로 보여주는 도면이다. 도 3을 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(120), 컬럼 디코더(130), 입출력 게이팅 회로(135), 센스 앰프 회로(140), 어드레스 레지스터(150), 뱅크 제어 로직(152), 리프레쉬 카운터(156), 컬럼 어드레스 래치(158), 제어 회로(160), 에러 정정 회로(170), ECS 회로(180), 및 데이터 입출력 버퍼(190)를 포함할 수 있다.
메모리 셀 어레이(110)는 제 1 내지 제 4 뱅크 어레이들(110a~110d)을 포함할 수 있다. 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)의 각각은 워드라인(WL)각각에 연결되는 메모리 셀 로우로 구성되는 복수의 페이지들을 포함할 수 있다.
제 1 내지 제 4 뱅크 어레이들(110a ~ 110d), 제 1 내지 제 4 뱅크 센스 앰프들(140a ~ 140d), 제 1 내지 제 4 뱅크 칼럼 디코더들(130a ~ 130d) 및 제 1 내지 제 4 뱅크 로우 디코더들(160a ~ 160d)은 제 1 내지 제 4 뱅크들을 각각 구성할 수 있다. 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d) 각각은 복수의 워드라인(WL)들과 복수의 비트라인(BL)들 및 워드라인(WL)들과 비트라인(BL)들이 교차하는 지점에 형성되는 복수의 메모리 셀(MC)들을 포함할 수 있다. 한편, 도 3에는 4개의 뱅크들을 포함하는 메모리 장치(100)의 도시되어 있으나, 본 발명의 메모리 장치(100)의 뱅크의 개수는 여기에 제한되지 않는다고 이해되어야 할 것이다.
또한, 로우 디코더(120)는 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)에 각각 연결된 제 1 내지 제 4 뱅크 로우 디코더들(120a ~ 120d)을 포함할 수 있다.
컬럼 디코더(130)는 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)에 각각 연결된 제 1 내지 제 4 뱅크 컬럼 디코더들(130a ~ 130d)을 포함할 수 있다.
센스 앰프 회로(140)는 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)에 각각 연결된 제 1 내지 제 4 뱅크 센스 앰프들(140a~240d)을 포함할 수 있다.
어드레스 레지스터(150)는 제어기(100, 도 2 참조)로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 컬럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 어드레스 레지스터(150)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(152)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(154)에 제공하며, 수신된 컬럼 어드레스(COL_ADDR)를 컬럼 어드레스 래치(158)에 제공할 수 있다.
뱅크 제어 로직(152)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 뱅크 제어 신호들에 응답하여, 제 1 내지 제 4 뱅크 로우 디코더들(120a ~ 120d) 중 뱅크 어드레스(BANK_ADDR)에 대응하는 뱅크 로우 디코더가 활성화되고, 제 1 내지 제 4 뱅크 컬럼 디코더들(130a ~ 130d) 중 뱅크 어드레스(BANK_ADDR)에 대응하는 뱅크 컬럼 디코더가 활성화될 수 있다.
리프레쉬 카운터(156)는 제어 회로(160)의 제어에 따라 메모리 셀 어레이(110)에 포함되는 메모리 셀 로우들을 리프레쉬 하기 위한 리프레쉬 로우 어드레스(REF_ADDR)를 생성할 수 있다. 또한, 리프레쉬 카운터(156)는 메모리 장치(100)에 포함되지 않을 수도 있다. 즉 메모리 셀 어레이(110)가 복수의 저항성 메모리 셀들로 구현되는 경우, 리프레쉬 카운터(156)는 반도체 메모리 장치(100)에 포함되지 않을 수도 있다. 리프레쉬 카운터(156)는 메모리 셀 어레이(110)의 메모리 셀(MC)들이 동적 메모리 셀들로 구성되는 경우에 메모리 장치(100)에 포함될 수 있다.
로우 어드레스 멀티플렉서(154)는 어드레스 레지스터(150)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 카운터(156)로부터 리프레쉬 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(154)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 로우 어드레스(REF_ADDR)를 로우 어드레스(RA)로서 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(145)로부터 출력된 로우 어드레스(RA)는 제 1 내지 제 4 뱅크 로우 디코더들(160a ~ 160d)에 각각 인가될 수 있다.
제 1 내지 제 4 뱅크 로우 디코더들(160a ~ 160d) 중 뱅크 제어 로직(152)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(154)로부터 출력된 로우 어드레스(RA)를 디코딩 하여 로우 어드레스에 대응하는 워드 라인을 활성화할 수 있다. 예를 들어, 활성화된 뱅크 로우 디코더는 로우 어드레스에 대응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
컬럼 어드레스 래치(158)는 어드레스 레지스터(150)로부터 컬럼 어드레스(COL_ADDR)를 수신하고, 수신된 컬럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 또한, 컬럼 어드레스 래치(158)는, 버스트 모드에서, 수신된 컬럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 컬럼 어드레스 래치(158)는 일시적으로 저장된 또는 점진적으로 증가된 컬럼 어드레스(COL_ADDR)를 제 1 내지 제 4 뱅크 컬럼 디코더들(130a ~ 130d)에 각각 인가할 수 있다.
입출력 게이팅 회로(135)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)로부터 출력된 데이터를 저장하기 위한 읽기 데이터 래치들, 및 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d)에 데이터를 쓰기 위한 쓰기 드라이버들을 포함할 수 있다. 제 1 내지 제 4 뱅크 컬럼 디코더들(130a ~ 130d) 중 뱅크 제어 로직(152)에 의해 활성화된 뱅크 컬럼 디코더는 입출력 게이팅 회로(135)를 통하여 뱅크 어드레스(BANK_ADDR) 및 컬럼 어드레스(COL_ADDR)에 대응하는 센스 앰프를 활성화시킬 수 있다.
제어 회로(160)는 제 1 유닛의 데이터가 에러를 포함하는 경우, 에러를 정정하고, 정정된 제 1 유닛의 데이터를 해당하는 서브 페이지에 다시 쓰는 스크러빙 동작을 수행하도록 에러 정정 회로(170)를 제어할 수 있다. 제어 회로(160)는 에러 발생 신호(EGS)를 카운팅 함으로써 일부 페이지들 각각에 대한 에러 발생 횟수를 적어도 포함하는 에러 정보(EINF)를 ECS 회로(180)에 기록하는 에러 로깅 동작을 수행할 수 있다.
제어 회로(160)는 메모리 장치(100)의 동작을 제어할 수 있다. 예를 들어, 제어 회로(160)는 메모리 장치(100)가 쓰기 동작 또는 읽기 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 회로(160)는 제어기(200)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(161) 및 메모리 장치(100)의 동작 모드를 설정하기 위한 모드 레지스터(162)를 포함할 수 있다.
제어 회로(160)는 에러 정정 회로(170)로부터의 에러 발생 신호(EGS)를 카운팅하는 카운터를 더 포함할 수 있다. 예를 들어, 커맨드 디코더(161)는 쓰기 인에이블 신호(/WE), 로우 어드레스 스트로브 신호(/RAS), 컬럼 어드레스 스트로브 신호(/CAS), 칩 선택 신호(/CS) 등을 디코딩하여 커맨드(CMD)에 대응하는 제어 신호들을 생성할 수 있다. 특히 제어 회로(160)는 커맨드(CMD)를 디코딩하여 입출력 게이팅 회로(135)를 제어하는 제 1 제어신호(CTL1)와 에러 정정 회로(170)를 제 2 제어 신호(CTL2) 및 ECS 회로(180)를 제어하는 제 3 제어 신호(CTL3)를 생성할 수 있다.
제어 회로(160)는 커맨드(CMD)가 ECS 모드를 지시하는 경우에, 입출력 게이팅 회로(135)와 에러 정정 회로(400)가 상술한 스크러빙 동작과 에러 로깅 동작을 수행하도록 제 1 제어 신호(CTL1), 제 2 제어 신호(CTL2) 및 제 3 제어 신호(CTL3)를 생성할 수 있다.
또한 제어 회로(160)는 ECS 모드에서 일부 페이지들 중 하나의 페이지의 에러 발생 횟수가 문턱 값에 도달하는 제 1 상황이 발생한 경우, 경고 신호(ALRT)를 이용하여 제어기(200)에 제 1 상황을 통지할 수 있다.
에러 정정 회로(170)는 쓰기 동작에서 데이터 입출력 버퍼(190)로부터 제공되는 메인 데이터(MD)에 기초하여 패리티 데이터를 생성하고, 메인 데이터(MD)와 패리티 데이터를 포함하는 코드워드(CW)를 입출력 게이팅 회로(135)에 제공하고, 입출력 게이팅 회로(135)는 코드워드(CW)를 뱅크 어레이에 쓸 수 있다.
또한 에러 정정 회로(170)는 읽기 동작에서 하나의 뱅크 어레이에서 읽혀진 코드워드(CW)를 입출력 게이팅 회로(135)로부터 제공받을 수 있다. 에러 정정 회로(170)는 읽혀진 코드워드(CW)에 포함되는 패리티 데이터를 메인 데이터(MD)에 대한 디코딩을 수행하여 메인 데이터(MD)에 포함되는 싱글 비트 에러를 정정하여 데이터 입출력 버퍼(190)에 제공할 수 있다.
또한 에러 정정 회로(170)는 ECS 모드에서 메모리 셀 어레이(110)의 일부 페이지들 각각을 구성하는 복수의 서브 페이지들 각각으로부터 메인 데이터와 패리티 데이터를 구비하는 제 1 유닛의 데이터를 읽고 ECC 디코딩을 순차적으로 수행할 수 있다. 에러 정정 회로(170)는 1 유닛의 데이터에 대하여 ECC 디코딩을 수행한 후 제 1 유닛의 데이터가 에러를 포함하는 경우, 에러 발생 신호(EGS)를 제어 회로(160)에 제공할 수 있다.
데이터 입출력 버퍼(190)는 쓰기 동작에서는 제어기(200)로부터 제공되는 메인 데이터(MD)를 에러 정정 회로(170)에 제공하고, 읽기 동작에서는 에러 정정 회로(170)로부터 제공되는 메인 데이터(MD)를 제어기(200)에 제공할 수 있다. 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d) 중 하나의 뱅크 어레이에서 읽혀질 데이터는 하나의 뱅크 어레이에 대응하는 센스 앰프에 의해 감지되고, 읽기 데이터 래치들에 저장될 수 있다. 제 1 내지 제 4 뱅크 어레이들(110a ~ 110d) 중 하나의 뱅크 어레이에 쓰여질 메인 데이터(MD)는 제어기(200)로부터 데이터 입출력 버퍼(190)에 제공될 수 있다. 데이터 입출력 버퍼(190)에 제공된 메인 데이터(MD)는 에러 정정 회로(170)에서 코드워드(CW)로 인코딩 되어 입출력 게이팅 회로(135)에 제공된다. 코드워드(CW)는 쓰기 드라이버들을 통하여 하나의 뱅크 어레이에 쓰여질 수 있다.
도 4a, 도 4b, 및 도 4c는 본 발명의 실시 예에 따른 메모리 장치(100)의 에러 정정 회로(170)를 설명하기 위한 도면들이다.
도 4a을 참조하면, 에러 정정 회로(170)는 ECC 인코딩 회로(171)와 ECC 디코딩 회로(172)를 포함할 수 있다. ECC 인코딩 회로(171)는 ECC 제어 신호(ECC_CON)에 응답하여 메모리 셀 어레이(111)의 메모리 셀들에 쓰여질 데이터(WData[0:63])에 대한 패리티 비트들(ECCP[0:7])을 생성할 수 있다. 패리티 비트들(ECCP[0:7])은 ECC 셀 어레이(112)에 저장될 수 있다. 실시 예에 있어서, ECC 인코딩 회로(171)는 ECC 제어 신호(ECC_CON)에 응답하여 불량 셀을 포함하는 메모리 셀들에 쓰여질 데이터(WData[0:63])에 대한 패리티 비트들(ECCP[0:7])을 생성할 수 있다.
ECC 디코딩 회로(172)는 ECC 제어 신호(ECC_CON)에 응답하여 메모리 셀 어레이(111)의 메모리 셀들로부터 읽혀진 데이터(RData[0:63])와 ECC 셀 어레이(112)에서 읽혀진 패리티 비트들(ECCP[0:7])을 이용하여 에러 비트 데이터를 정정하고, 에러 정정된 데이터(Data[0:63])를 출력할 수 있다. 실시 예에 있어서, ECC 디코딩 회로(172)는 ECC 제어 신호(ECC_CON)에 응답하여 불량 셀을 포함하는 메모리 셀들로부터 읽혀진 데이터(RData[0:63])와 ECC 셀 어레이(112)에서 읽혀진 패리티 비트들(ECCP[0:7])을 이용하여 에러 비트 데이터를 정정하고, 에러 정정된 데이터(Data[0:63])를 출력할 수 있다.
도 4b를 참조하면, ECC 인코딩 회로(171)는 ECC 제어 신호(ECC_CON)에 응답하여 64 비트 기입 데이터(WData[0:63])와 베이시스 비트(Basis Bit, B[0:7])를 수신하고, XOR 어레이 연산을 이용하여 패리티 비트들(ECCP[0:7]), 즉, 신드롬을 발생하는 신드롬 발생기(171-1)를 포함할 수 있다. 베이시스 비트(B[0:7])는 64 비트 기입 데이터(WData[0:63])에 대한 패리티 비트들(ECCP[0:7])을 발생시키기 위한 비트들로서, 예컨대, b'00000000 비트들로 구성될 수 있다. 베이시스 비트(B[0:7])는 b'00000000 비트들 대신에 다른 특정 비트들을 이용할 수 있다.
도 4c를 참조하면, ECC 디코딩 회로(172)는 신드롬 발생기(172-1), 계수 계산기(172-2), 1 비트 에러 위치 검출기(172-3), 및 에러 정정기(172-4)를 포함할 수 있다. 신드롬 발생기(172-1)는 ECC 제어 신호(ECC_CON)에 응답하여 64 비트 리드 데이터와 8 비트의 패리티 비트(ECCP[0:7])를 수신하고, XOR 어레이 연산을 이용하여 신드롬 데이터(S[0:7])를 발생할 수 있다. 계수 계산기(172-2)는 신드롬 데이터(S[0:7])를 이용하여 오류 위치 방정식의 계수를 산출할 수 있다. 여기서 오류 위치 방정식은 에러 비트의 역수를 근으로 하는 방정식이다. 1 비트 에러 위치 검출기(172-3)는 산출된 오류 위치 방정식을 이용하여 1 비트 에러의 위치를 계산할 수 있다. 에러 정정기(172-4)는 1 비트 에러 위치 검출기(172-3)의 검출 결과에 기초하여 1 비트 에러 위치를 결정할 수 있다. 에러 정정기(172-4)는 결정된 1 비트 에러 위치 정보에 따라 64 비트 리드 데이터(RData[0:63]) 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정하고, 에러 정정된 64 비트 데이터(Data[0:63])를 출력할 수 있다.
도 5a 내지 도 5e는 본 발명의 실시 예에 따른 ECS 회로(180)를 실시 예들을 예시적으로 보여주는 도면들이다.
도 5a를 참조하면, ECS 회로(180)는 스크러빙 동작을 수행하는 ECS 로직(181), 스크러빙 동작의 결과에 따른 에러 어드레스를 저장하는 ECS 레지스터(182), 및 스크러빙 동작의 방향을 결정하는 스크러빙 방향 로직(183)을 포함할 수 있다.
ECS 로직(181)은 ECS 모드에서 활성화되고, 수신된 어드레스에 대응하는 메모리 셀 어레이(MCA, 110)부터 데이터를 읽고, 읽혀진 데이터에 대하여 ECC 회로(170)를 통하여 에러 정정하고, 에러 정정된 데이터를 다시 대응하는 메모리 셀 어레이에 쓰고, 수신된 어드레스를 사전에 결정된 단위만큼 카운트-업 혹은 카운트-다운하면서 상술된 과정을 반복할 수 있다. 스크러빙 방향 로직(183)은 메모리 셀 어레이(110, 도 참조)의 스크러빙 동작을 순방향으로 진행할 지 혹은 역방향으로 진행할 지를 결정할 수 있다. 예를 들어, 순방향은 어드레스가 증가하는 방향(예를 들어, 어드레스 카운트-업 방향)이고, 역방향은 반대로 어드레스가 감소하는 방향(예를 들어, 어드레스 카운트-다운 방향)일 수 있다.
도 5b를 참조하면, ECS 회로(180a)는 ECS 로직(181a), ECS 레지스터(182a), 및 랜덤 선택 로직(184)을 포함할 수 있다. ECS 로직(181a)은 스크러빙 동작에서 검출된 복수의 에러 어드레스들 중에서 랜덤하게 선택하여, 선택된 에러 어드레스를 제어기(200, 도 2 참조)로 출력할 수 있다. ECS 레지스터(182a)는 스크러빙 동작에 따른 복수의 에러 어드레스들을 저장할 수 있다. 랜덤 선택 로직(184)은 ECS 레지스터(182a)에 저장된 복수의 에러 어드레스들 중에서 랜덤하게 어느 하나를 선택하도록 구현될 수 있다. 여기서 랜덤 선택 로직(184)은 랜덤 넘버 발생기 혹은 의사 랜덤 넘버 발생기를 포함할 수 있다.
도 5c를 참조하면, ECS 회로(180b)는 ECS 로직(181a), ECS 레지스터(182a), 및 리쥬밍 로직(185)을 포함할 수 있다. ECS 로직(181b)은 에러 발생시 스크러빙 동작을 중지하였다가, 에러 어드레스를 제어기(200)으로 리포팅 한 후에 스크러빙 동작을 재개할 수 있다. ECS 레지스터(182b)는 스크러빙 동작에 따른 실시간 에러 어드레스를 저장할 수 있다. 리쥬밍 로직(185)은 스크러빙 동작을 종료한 어드레스를 저장해 두었다가, 스크러빙 동작을 재개할 어드레스를 ECS 로직(181b)으로 전송하도록 구현될 수 있다. 리쥬밍 로직(185)의 제어에 따라 ECS 로직(181b)은 스크러빙 동작을 종료하거나 재개할 수 있다.
한편, ECS 회로는 상술된 스크러빙 방향 로직, 랜덤 선택 로직 및 리쥬밍 로직의 조합으로 구현될 수 있다.
도 5d를 참조하면, ECS 회로(180c)는 ECS 로직(181c), ECS 레지스터(182c), 스크러빙 방향 로직(183), 랜덤 선택 로직(184), 및 리쥬밍 로직(185)을 포함할 수 있다. ECS 로직(181c)은 스크러빙 방향 로직(183)에 의해 스크러빙 동작의 방향을 결정하고, 랜덤 선택 로직(184)에 의해 검출된 에러 어드레스들 중에서 어느 하나를 리포팅하고, 리쥬밍 로직(185)에 의해 리포팅 이후에 스크러빙 동작을 재개할 수 있다.
도 5e를 참조하면, ECS 회로(180d)는 ECS 로직(181d), ECS 레지스터(182d, 제 1 레지스터) 및 POFFL 레지스터(186, 제 2 레지스터)를 포함할 수 있다. POFFL 레지스터(186)는 제어기(200)로부터 수신된 맵-아웃된 페이지 오프라인 어드레스(POFFL_ADDR)를 저장할 수 있다. ECS 로직(181d)은 스크러빙 동작을 수행함으로써 검출된 에러 어드레스를 POFFL 레지스터(186)에 저장된 페이지 오프라인 어드레스(POFFL_ADDR)와 비교하고, 비교 결과 동일하지 않은 에러 어드레스만 ECS 레지스터(182d)에 저장하도록 구현될 수 있다. 즉, ESC 레지스터(182d)는 제어기(200)에서 맵-아웃된 어드레스를 제거하여 에러 어드레스에 저장될 수 있다. 실시 예에 있어서, POFFL 레지스터(186)의 크기는 ECS 레지스터(182d)의 크기보다 클 수 있다.
한편, ECS 로직은 POFFL 레지스터, 스크러빙 방향 로직, 랜덤 선택 로직 및 리쥬밍 로직의 다양한 조합에 의해 구현될 수 있다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다. 도 2 내지 도 6을 참조하면, ECS 동작은 다음과 같이 진행될 수 있다. 제어기(CNTL, 200 도 2 참조)는 ECS 모드 정보 및 어드레스를 메모리 장치(MEM, 도 2 참조)으로 전송할 수 있다(S10). 메모리 장치(MEM)는 ECS 모드에 응답하여 ECS 회로(180)를 활성화시킬 수 있다. ECS 회로(180)는 수신된 어드레스부터 스크러빙 동작을 수행할 수 있다. 이때 스크러빙 동작은 ECS 카운터의 역방향으로 진행될 수 있다. 즉, 어드레스는 카운트-다운되면서 스크러빙 도작이 수행될 수 있다(S11). 스크러빙 동작에 따른 복수의 에러 어드레스들이 저장될 수 있다. ECS 회로(180)는 저장된 복수의 에러 어드레스들 중에서 어느 하나를 랜덤하게 선택할 수 있다(S12). 선택된 에러 어드레스는 제어기(200)의 요청에 따라 ECS 결과로써 리포팅 될 수 있다(S130). 이러한 에러 정보 리포팅 이후에, ECS 회로(180)는 ECS 카운터 직전 리포트한 어드레스부터 스크러빙 동작을 재개할 수 있다(S14). 이후에, 검출된 에러 어드레스는 제어기(200)의 요청에 따라 ECS 결과로써 리포팅 될 수 있다(S15).
도 7a, 도 7b, 및 도 7c는 본 발명의 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면들이다. 도 7a를 참조하면, 스크러빙 동작은 역방향으로 진행되고, 최종 에러 어드레스(A)가 ECS 레지스터에 저장될 수 있다. 도 7b를 참조하면, 스크러빙 동작은 순방향으로 진행되고, 복수의 에러 어드레스들(A, B, C) 중에서 랜덤하게 선택된 어드레스(B)가 ECS 레지스터에 저장될 수 있다. 도 7c를 참조하면, 스크러빙 동작은 순방향으로 진행되거나 에러 어드레스(B)를 검출한 뒤 에러 어드레스(B)를 리포팅 할 때까지 중지되었다가, 이후에 다시 재개될 수 있다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다. 도 2 내지 도 8를 참조하면, ECS 동작은 다음과 같이 진행될 수 있다. 제어기(CNTL, 200)는 맵-아웃된 어드레스, 즉, 페이지 오프라인 어드레스(POFFL_ADDR)를 메모리 장치(MEM, 100)로 전송할 수 있다(S20). 메모리 장치(100)의 ECS 회로(180)는 수신된 페이지 오프라인 어드레스(POFFL_ADDR)를 저장할 수 있다. ECS 회로(180)는 카운트-업 혹은 카운트-다운 하면서 스크러빙 동작을 수행할 수 있다(S21). ECS 회로(180)는 검출된 에러 어드레스들 중에서 페이지 오프라인 어드레스(POFFL_ADDR)를 제외하여 ECS 레지스터에 저장할 수 있다(S22). 제어기(200)의 요청에 응답하여 메모리 장치(100)는 ECS 레지스터에 저장된 ECS 결과, 즉 에러 어드레스를 제어기(200)로 리포팅 할 수 있다(S23).
도 9는 본 발명의 다른 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면이다. 도 9를 참조하면, 스크러빙 동작에서 어드레스(C)가 검출되었지만, 어드레스(C)가 페이지 오프라인 어드레스이기 때문에 에러 어드레스에서 제외되고, 대신하여 검출된 어드레스(B)가 에러 어드레스로 저장될 수 있다. 이렇게 저장된 에러 어드레스(B)는 제어기(200)의 요청에 응답하여 리포팅 될 수 있다.
한편, 본 발명의 실시 예에 따른 메모리 장치는 페이지 오프라인 어드레스를 이용하여 스크러빙 동작의 범위를 설정할 수도 있다.
도 10은 본 발명의 또 다른 실시 예에 따른 메모리 시스템(10)의 ECS 동작을 예시적으로 보여주는 래더다이어그램이다. 도 2 내지 도 10를 참조하면, ECS 동작은 다음과 같이 진행될 수 있다.
제어기(CNTL, 200)는 페이지 오프라인 어드레스(POFFL_ADDR, 도 2 참조)을 메모리 장치(MEM, 100)로 전송할 수 있다(S30). 메모리 장치(100)의 ECS 회로(180)는 페이지 오프라인 어드레스(POFFL_ADDR)를 저장할 수 있다. ECS 회로(180)는 페이지 오프라인 어드레스(POFFL_ADDR)에 대응하는 범위를 제외하고 스크러빙 동작을 수행할 수 있다(S31). 제어기(200)의 요청에 응답하여 메모리 장치(100)는 ECS 레지스터에 저장된 ECS 결과, 즉 에러 어드레스를 제어기(200)로 리포팅 할 수 있다(S32).
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 장치(MEM)에서 스크러빙 동작의 스케쥴링을 개념적으로 보여주는 도면이다. 도 10 및 도 11을 참조하면, 페이지 오프라인 어드레스(POFFL_ADDR)가 어드레스(C)라고 할 때, 스크러빙 동작은 어드레스(C)에 대응하는 범위를 제외하고 진행될 수 있다. 따라서, 최종적으로 에러 레지스터에 저장될 어드레스는 도 11에 도시된 바와 같이 B이다.
도 12는 본 발명의 실시 예에 따른 메모리 장치(100)의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 2 내지 도 12를 참조하면, 메모리 장치(100)는 다음과 같이 동작할 수 있다.
메모리 장치(100)는 제어기(200, 도 2 참조)로부터 ECS 커맨드를 수신할 수 있다(S110). 메모리 장치(100)는 제어기(200)로부터 페이지 오프라인 어드레스(POFFL_ADDR)를 수신할 수 있다(S120). 메모리 장치(100)는 어드레스 카운터를 증가하거나 감소시키면서 스크러빙 동작을 수행할 수 있다(S130). 실시 예에 있어서, 스크러빙 동작에 따른 에러 어드레스는 저장될 수 있다. 다른 실시 예에 있어서, 스크러빙 동작에 따른 에러 어드레스는 페이지 오프라인 어드레스(POFFL_ADDR)를 제외하고 저장될 수 있다. 메모리 장치(100)는 저장된 에러 어드레스들 중에서 페이지 오프라인 어드레스를 제외하여 제어기(200)로 리포팅 하거나, 저장된 에러 어드레스들 중에서 어느 하나를 랜덤하게 선택하여 리포팅 할 수 있다(S140).
도 13은 본 발명의 실시 예에 따른 반도체 메모리 장치가 적용된 메모리 시스템 나타내는 블록도이다. 도 13를 참조하면, 메모리 시스템(700)은 메모리 모듈(710) 및 메모리 제어기(720)를 포함할 수 있다. 메모리 모듈(710)은 모듈 보드(Module Board) 상에 장착되는 복수의 반도체 메모리 장치(730)들을 포함할 수 있다.
반도체 메모리 장치(730)들 각각은 도 2의 메모리 장치(100)로 구현될 수 있다. 즉 반도체 메모리 장치(730)들 각각은 메모리 셀 어레이(731), 에러 정정 회로(732) 및 에러 로그 레지스터(733)를 포함하고, ECS 모드에서 메모리 셀 어레이(731)의 일부 페이지들에 대하여 ECS 동작을 수행하고, 일부 페이지들 각각의 에러 정보를 에러 정보 신호(EIS)로서 메모리 제어기(720)에 제공하고, 일부 페이지들 중 하나의 페이지의 에러 발생 횟수가 문턱 값에 도달하는 경우, 경고 신호(ART)를 이용하여 이를 메모리 제어기(720)에 통지할 수 있다.
메모리 제어기(720)는 에러 정보 신호(EIS)에 기초하여 반도체 메모리 장치(730)들 각각에서 다른 페이지들보다 에러를 많이 포함하는 폴티(faulty) 페이지들의 에러 관리 정책을 결정할 수 있다.
또한 메모리 제어기(720)는 경고 신호(ALRT)에 응답하여 스크러빙 커맨드를 해당하는 반도체 메모리 장치에 인가하여 해당 반도체 메모리 장치의 상기 하나의 페이지에 대한 스크러빙 동작이 즉시 수행되도록 할 수 있다.
또한, 반도체 메모리 장치(730)들 각각에는 3차원 메모리 어레이가 제공될 수 있다. 상기 3차원 메모리 어레이는 실리콘 기판 상에 배치된 액티브 영역을 구비하는 하나 이상의 물리적 레벨의 메모리 셀 어레이들 및 상기 메모리 셀들의 동작과 관련된 회로들이 모놀리딕(monolithic) 방식으로 형성될 수 있다. 여기서 'monolithic'이라는 용어는 복수의 레이어들로 구성된 어레이의 각 레벨이 하위 레이어 위에 직접적으로 적층 되는 것을 의미한다.
메모리 모듈(710)은 시스템 버스를 통해 메모리 제어기(720)와 통신할 수 있다. 시스템 버스를 통하며 메인 데이터(MD), 커맨드/어드레스(CMD/ADDR) 및 클럭 신호(CLK) 등이 메모리 모듈(710)과 메모리 제어기(720) 사이에서 송수신될 수 있다. 또한 반도체 메모리 장치(730)들 각각은 상기 시스템 버스를 통하여 에러 정보 신호(EIS) 및 경고 신호(ALRT)를 메모리 제어기(720)에 전송할 수 있다.
도 14는 본 발명의 실시 예에 따른 반도체 메모리 장치가 적용된 메모리 시스템 나타내는 블록도이다. 도 14을 참조하면, 메모리 시스템(800)은 메모리 모듈(810) 및 메모리 제어기(820)를 포함할 수 있다.
메모리 모듈(810)은 메모리 칩들(840) 및 제어 칩(830)을 포함할 수 있다. 메모리 칩들(840) 각각은 커맨드(CMD), 어드레스(ADDR) 및 클럭 신호(CLK)에 기초하여 데이터(MD)를 저장하고, 저장된 데이터(MD)를 메모리 제어기(820)에 제공할 수 있다. 메모리 칩들(840) 각각은 도 2의 메모리 장치(100)로 구현될 수 있다.
제어 칩(830)은 메모리 제어기(820)로부터 전송되는 각종 신호에 응답하여, 메모리 칩들(840)을 제어할 수 있다. 예를 들어, 제어 칩(830)은 메모리 제어기(820)로부터 전송되는 칩 선택 신호에 대응되는 메모리 칩을 활성화할 수 있다. 또한, 제어 칩(830)은 에러 정정 회로(831) 및 에러 로그 레지스터(833)를 포함할 수 있다. 제어 칩(830)은 각 메모리 칩들(840)에서 읽혀진 데이터에 대한 ECC 디코딩 동작을 수행할 수 있다. 또한 제어 칩(830)은 ECS 모드에서 메모리 칩들(840) 중 선택된 메모리 칩의 일부 페이지들에 대하여 상술한 ECS 동작을 수행하고, 상기 일부 페이지들의 각각의 에러 정보를 에러 로그 레지스터(833)에 기록할 수 있다. 실시 예에 있어서, 에러 로그 레지스터(833)는 메모리 칩들(840) 각각에 대하여 구비될 수 있다. 실시 예에 있어서, 에러 로그 레지스터(833)는 메모리 칩들(840)에 대하여 하나만 구비될 수도 있다. 에러 로그 레지스터(833)가 하나만 구비되는 경우에, 에러 로그 레지스터(833)는 에러 로그 레지스터(460)에 추가하여 선택된 메모리 칩을 나타내는 메모리 식별 정보가 기록되는 칼럼을 더 포함할 수 있다.
제어 칩(830)은 에러 로그 레지스터(833)에 기록된 메모리 칩들(840) 각각의 에러 정보를 에러 정보 신호(EIS)로서 메모리 제어기(820)에 제공할 수 있다. 또한 제어 칩(830)은 선택된 메모리 칩의 에러 발생 횟수가 문턱값에 도달하는 경우, 경고 신호(ALRT)를 이용하여 즉시 이를 통지할 수 있고, 메모리 제어기(820)는 경고 신호(ALRT)에 응답하여 상기 메모리 칩에 스크러빙 커맨드를 즉시 인가할 수 있다.
메모리 제어기(820)는 에러 정보 신호(EIS)에 기초하여 메모리 칩들(840)의 에러 관리 정책을 결정할 수 있다. 예를 들어, 메모리 제어기(820)는 메모리 칩들(840) 중 하나의 메모리 칩의 에러가 관리할 수 없을 정도로 증가하는 경우에, 상기 메모리 칩을 칩-킬(chip-kill)할 수 있다.
도 15는 본 발명의 실시 예에 따른 반도체 메모리 장치를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다. 도 15를 참조하면, 컴퓨팅 시스템(900)은 프로세서(910), 입출력 허브(920), 입출력 제어기 허브(930), 적어도 하나의 메모리 모듈(940) 및 그래픽 카드(950)를 포함한다. 실시 예에 따라, 컴퓨팅 시스템(900)은 개인용 컴퓨터(Personal Computer; PC), 서버 컴퓨터(Server Computer), 워크스테이션(Workstation), 노트북(Laptop), 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 디지털 TV(Digital Television), 셋-탑 박스(Set-Top Box), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 시스템 등과 같은 임의의 컴퓨팅 시스템일 수 있다.
프로세서(910)는 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(910)는 마이크로프로세서 또는 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 실시 예에 따라, 프로세서(910)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(910)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 도 15에는 하나의 프로세서(910)를 포함하는 컴퓨팅 시스템(900)이 도시되어 있으나, 실시 예에 따라, 컴퓨팅 시스템(900)은 복수의 프로세서들을 포함할 수 있다. 또한, 실시 예에 따라, 프로세서(910)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
프로세서(910)는 메모리 모듈(940)의 동작을 제어하는 메모리 제어기(911)를 포함할 수 있다. 프로세서(910)에 포함된 메모리 제어기(911)는 집적 메모리 제어기(Integrated Memory Controller; IMC)라 불릴 수 있다. 메모리 제어기(911)와 메모리 모듈(940) 사이의 메모리 인터페이스는 복수의 신호 라인들을 포함하는 하나의 채널로 구현되거나, 복수의 채널들로 구현될 수 있다. 또한, 각 채널에는 하나 이상의 메모리 모듈(940)이 연결될 수 있다. 실시 예에 따라, 메모리 제어기(911)는 입출력 허브(920) 내에 위치할 수 있다. 메모리 제어기(911)를 포함하는 입출력 허브(1520)는 메모리 제어기 허브(Memory Controller Hub; MCH)라 불릴 수 있다.
메모리 모듈(940)은 메모리 제어기(911)로부터 제공된 데이터를 저장하는 반도체 메모리 장치들을 포함할 수 있다. 반도체 메모리 장치들 각각은 도 2 내지 도 13를 참조하여 설명한 바와 같이, 제어 회로, 에러정정 회로 및 에러 로그 레지스터를 포함하여 전술한 ECS 동작과 에러 로깅 동작을 수행하여 에러 정보 신호(EIS)와 경고 신호(ALRT)를 메모리 제어기(911)에 제공할 수 있다. 메모리 제어기(911)는 에러 정보 신호(EIS)에 기초하여 반도체 메모리 장치들에 대한 에러 관리 정책을 결정할 수 있다.
입출력 허브(920)는 그래픽 카드(950)와 같은 장치들과 프로세서(910) 사이의 데이터 전송을 관리할 수 있다. 입출력 허브(920)는 다양한 방식의 인터페이스를 통하여 프로세서(910)에 연결될 수 있다. 예를 들어, 입출력 허브(920)와 프로세서(910)는, 프론트 사이드 버스(Front Side Bus; FSB), 시스템 버스(System Bus), 하이퍼트랜스포트(HyperTransport), 라이트닝 데이터 트랜스포트(Lightning Data Transport; LDT), 퀵패스 인터커넥트(QuickPath Interconnect; QPI), 공통 시스템 인터페이스(Common System Interface; CSI) 등의 다양한 표준의 인터페이스로 연결될 수 있다. 도 15에는 하나의 입출력 허브(920)를 포함하는 컴퓨팅 시스템(900)이 도시되어 있으나, 실시 예에 따라, 컴퓨팅 시스템(900)은 복수의 입출력 허브들을 포함할 수 있다.
입출력 허브(920)는 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 허브(920)는 가속그래픽 포트(Accelerated Graphics Port; AGP) 인터페이스, 주변 구성요소 인터페이스-익스프레스(Peripheral Component Interface-Express; PCIe), 통신 스트리밍 구조(Communications Streaming Architecture; CSA) 인터페이스 등을 제공할 수 있다.
그래픽 카드(950)는 AGP 또는 PCIe를 통하여 입출력 허브(1520)와 연결될 수 있다. 그래픽 카드(950)는 영상을 표시하기 위한 디스플레이 장치를 제어할 수 있다. 그래픽 카드(950)는 이미지 데이터 처리를 위한 내부 프로세서 및 내부 반도체 메모리 장치를 포함할 수 있다. 실시 예에 따라, 입출력 허브(920)는, 입출력 허브(920)의 외부에 위치한 그래픽 카드(950)와 함께, 또는 그래픽 카드(950) 대신에 입출력 허브(920)의 내부에 그래픽 장치를 포함할 수 있다. 입출력 허브(920)에 포함된 그래픽 장치는 집적 그래픽(Integrated Graphics)이라 불릴 수 있다. 또한, 메모리 제어기 및 그래픽 장치를 포함하는 입출력 허브(920)는 그래픽 및 메모리 제어기 허브(Graphics and Memory Controller Hub; GMCH)라 불릴 수 있다.
입출력 제어기 허브(930)는 다양한 시스템 인터페이스들이 효율적으로 동작하도록 데이터 버퍼링 및 인터페이스 중재를 수행할 수 있다. 입출력 제어기 허브(930)는 내부 버스를 통하여 입출력 허브(920)와 연결될 수 있다. 예를 들어, 입출력 허브(920)와 입출력 제어기 허브(930)는 다이렉트 미디어 인터페이스(Direct Media Interface; DMI), 허브 인터페이스, 엔터프라이즈 사우스브릿지 인터페이스(Enterprise Southbridge Interface; ESI), PCIe 등을 통하여 연결될 수 있다.
입출력 제어기 허브(1530)는 주변 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 제어기 허브(930)는 범용 직렬 버스(Universal Serial Bus; USB) 포트, 직렬 ATA(Serial Advanced Technology Attachment; SATA) 포트, 범용 입출력(General Purpose Input/Output; GPIO), 로우 핀 카운트(Low Pin Count; LPC) 버스, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI), PCI, PCIe 등을 제공할 수 있다.
실시 예에 따라, 프로세서(910), 입출력 허브(920) 및 입출력 제어기 허브(930)는 각각 분리된 칩셋들 또는 집적 회로들로 구현되거나, 프로세서(910), 입출력 허브(920) 또는 입출력 제어기 허브(930) 중 2 이상의 구성요소들이 하나의 칩셋으로 구현될 수 있다.
도 16은 본 발명의 실시 예에 따른 적어도 하나의 커맨드/어드레스 캘리브레이션을 수행하는 메모리 시스템을 예시적으로 보여주는 도면이다. 도 16을 참조하면, 메모리 시스템(1000)은 제어기(1800)와 메모리 장치(1900)를 포함할 수 있다. 제어기(1800)는 클럭 발생기(1801), 커맨드/어드레스(CA) 발생기(1802), 커맨드/어드레스 레퍼런스 발생기(1803), 레지스터(1804), 비교기(1806), 위상/타이밍 제어기(1808), 및 데이터 입출력기(1810, 1812)를 포함할 수 있다. 제어기(1800)는 클럭 발생기(1801)에서 생성되는 클럭 신호(CK)를 클럭 신호 라인을 통해 메모리 장치(1900)로 제공할 수 있다.
실시 예에 있어서, 메모리 시스템(1000)은 인터페이스에 별도로 커맨드/어드레스의 레퍼런스 신호(CA_Ref) 라인을 포함하고 있다. 커맨드/어드레스의 레퍼런스 신호(CA_Ref) 라인은 캘리브레이션 모드에서 커맨드/어드레스의 기준값인 커맨드/어드레스의 레퍼런스 신호(CA_Ref)를 송수신 하는 역할을 수행할 수 있다. 이러한 커맨드/어드레스의 기준값을 이용한 캘리브레이션 결과값을 위상/타이밍 제어기(1808)에 제공해서 커맨드/어드레스 신호(CA)의 위상/타이밍을 조정할 수 있다. 별도의 커맨드/어드레스의 레퍼런스 신호(CA_Ref) 라인이 있으므로 커맨드/어드레스(CA) 신호를 전송하는 동작을 하면서 동시에 커맨드/어드레스(CA) 신호의 위상/타이밍을 조정할 수 있는 캘리브레이션 동작을 수행할 수 있는 장점이 있다.
CA 발생기(1802)는 위상/타이밍 제어기(1808)의 제어 신호(CTR)에 응답하여 위상 혹은 타이밍을 조정된 커맨드/어드레스 신호(CA)를 발생하고, CA 버스를 통해 메모리 장치(1900)로 전송할 수 있다.
커맨드/어드레스 레퍼런스 발생기(1803)는 커맨드/어드레스 발생기(1802)와 동일하게 구성되며, 커맨드/어드레스 발생기(1802)에서 발생되는 커맨드/어드레스 신호(CA)와 동일한 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 발생할 수 있다.
제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)는 레지스터(1804)로 제공된다. 또한, 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)는 데이터 출력기(1812)를 통해 CA 레퍼런스 버스로 전송되고, CA 레퍼런스 버스(16)를 통해 메모리 장치(1900)로 제공된다.
레지스터(1804)는 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 저장할 수 있다. 비교기(1806)는 레지스터(1804)에 저장된 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)와 데이터 입력기(1810)로부터 출력되는 제3 커맨드/어드레스 레퍼런스 신호(CA_Ref3)를 비교할 수 있다. 비교기(1804)는 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)와 제3 커맨드/어드레스 레퍼런스 신호(CA_Ref3)의 데이터를 비교하여 패스 혹은 페일 신호(P/F)를 발생할 수 있다.
위상/타이밍 제어기(1808)는 비교기(1806)의 패스 혹은 페일 신호(P/F)에 따라 커맨드/어드레스 신호(CA)의 위상 변이(shift)를 지시하는 제어 신호(CTR)를 발생할 수 있다. 제어 신호(CTR)는 커맨드/어드레스 신호(CA)의 위상 혹은 타이밍을 조정하여, 위상 조정된 커맨드/어드레스 신호(CA)를 발생시킬 수 있다.
데이터 입력기(1810)는, 메모리 장치(1900)로부터 CA 레퍼런스 버스를 통해 전달되는 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)를 수신하여 제 3 커맨드/어드레스 레퍼런스 신호(CA_Ref3)로서 비교기(1806)로 전달할 수 있다. 데이터 출력기(1812)는 커맨드/어드레스 레퍼런스 발생기(1803)에서 발생된 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 수신하여 CA 레퍼런스 버스(12)로 전송할 수 있다.
메모리 장치(1900)는 클럭 버퍼(1902), 커맨드/어드레스(CA) 수신기(1904), 커맨드/어드레스 레퍼런스 수신기(1906), 및 데이터 입출력기(1908, 940)를 포함할 수 있다. 클럭 버퍼(1902)는 클럭 신호 라인을 통해 전달되는 클럭 신호(CK)를 수신하여 내부 클럭 신호(ICK)를 발생할 수 있다. CA 수신기(1904)는 내부 클럭 신호(ICK)에 응답하여 칩 선택 신호(/CS), 클럭 인에이블 신호(CKE) 및 CA 버스를 통해 전달되는 커맨드/어드레스 신호(CA)를 수신할 수 있다.
클럭 인에이블 신호(CKE)는 CA 버스를 통해 전달되는 커맨드/어드레스 신호(CA)의 리드 커맨드로 작용하는 의사 커맨드(pseudo command)로 사용될 수 있다. CA 수신기(1904)는 클럭 인에이블 신호(CKE)가 활성화일 때에 커맨드/어드레스 신호(CA)를 수신할 수 있다.
데이터 입력기(1908)는 제어기(1800)로부터 CA 레퍼런스 버스를 통해 전달되는 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 수신하여 커맨드/어드레스 레퍼런스 수신기(1906)로 전달할 수 있다. 커맨드/어드레스 레퍼런스 수신기(1906)는 CA 수신기(1904)와 동일하게 구성될 수 있다. 커맨드/어드레스 레퍼런스 수신기(1906)는 내부 클럭 신호(ICK)에 응답하여 칩 선택 신호(/CS), 클럭 인에이블 신호(CKE) 및 CA 레퍼런스 버스를 통해 전달되는 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 수신하여 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)를 발생할 수 있다.
제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)는, CA 수신기(1904)에서 내부 클럭 신호(ICK)에 응답하여 칩 선택 신호(/CS), 클럭 인에이블 신호(CKE) 및 CA 버스를 통해 전달되는 커맨드/어드레스 신호(CA)를 수신하여 출력하는 신호와 동일할 수 있다. 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)는 데이터 출력기(1940)를 통해 CA 레퍼런스 버스로 전달될 수 있다.
메모리 시스템(1000)에서 이루어지는 CA 캘리브레이션은 다음과 같다. 제어기(1800)의 CA 발생기(1802)는 위상/타이밍 제어기(1808)의 제어 신호(CTR)에 응답하여 커맨드/어드레스 신호(CA)의 위상 혹은 타이밍을 조정하여 커맨드/어드레스 신호(CA)를 CA 버스로 전송할 수 있다. 커맨드/어드레스 레퍼런스 발생기(1803)는 커맨드/어드레스 신호(CA)와 동일한 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 발생하여 CA 레퍼런스 버스로 전달할 수 있다.
메모리 장치(1900)의 CA 레퍼런스 수신기(1906)는 내부 클럭 신호(ICK)와 클럭 인에이블 신호(CKE)에 따라 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)를 수신하여 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)를 발생할 수 있다. 메모리 장치(1900)의 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)는 CA 레퍼런스 버스로 전송될 수 있다.
제어기(1800)는 CA 레퍼런스 버스를 통해 전송되는 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)를 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)로써 비교기(1806)로 전송할 수 있다. 비교기(1806)는 제 1 커맨드/어드레스 레퍼런스 신호(CA_Ref1)와 제 2 커맨드/어드레스 레퍼런스 신호(CA_Ref2)의 데이터를 비교하여 패스 혹은 페일 신호(P/F)를 발생할 수 있다. 위상/타이밍 제어기(1808)는 비교기(1806)의 패스 혹은 페일 신호(P/F)에 따라 커맨드/어드레스 신호(CA)의 위상 변이(shift)를 지시하는 제어 신호(CTR)를 발생할 수 있다. CA 발생기(1802)는 제어 신호(CTR)에 따라 위상 조정된 커맨드/어드레스 신호(CA)를 발생시킬 수 있다.
이러한 CA 캘리브레이션 동작의 반복으로, 제어기(1800)의 위상/타이밍 제어기(1808)는 패스(P)된 위치들의 중간을 커맨드/어드레스 신호(CA) 윈도우의 중간으로 판별하고, 클럭 신호(CK)의 엣지에 커맨드/어드레스 신호(CA) 윈도우의 중간이 오도록 커맨드/어드레스 신호(CA)를 발생하여 메모리 장치(1900)로 제공할 수 있다. 이에 따라, 메모리 장치(1900)는 클럭 신호(CK)의 상승/하강 엣지에서 클럭 신호 쌍(CK, CKB)의 상승/하강 엣지에 유효 윈도우의 중간이 위치하는 커맨드/어드레스 신호(CA)를 수신할 수 있다.
한편, 메모리 시스템(1000)은 제어기(1800) 및 메모리 장치(1900)에서 데이터를 송수신 하기 위한 듀얼-모드 트랜시버(1820, 1920)을 포함할 수 있다. 실시 예에 있어서, 듀얼-모드 트랜시버들(1820, 1920)의 각각은, 실시간으로 복수의 데이터 채널(DQ)을 통해 NRZ(Non-to-Zero) 모드 혹은 PAM4(Pulse Amplitude Modulation Level-4) 모드 중에서 어느 하나를 선택하고, 선택된 모드로 데이터를 전송할 수 있다.
한편, 본 발명의 실시 예에 따른 메모리 장치는 컴퓨팅 시스템에 적용 가능하다.
도 17은 본 발명의 실시 예에 따른 그래픽 카드 시스템(3000)을 예시적으로 보여주는 도면이다. 도 17을 참조하면, 그래픽 카드(3600)는 패키지 기판(3100)에 실리콘 인터포저(3200)를 통하여 GPU(3500)와 스택된 DRAM(3300)이 연결될 수 있다. DRAM은 HBM 제어기 위해 TSV를 통하여 연결될 수 있다. HBM 제어기(3400)는 GPU(3500)에 인터포저(3200)를 통하여 연결될 수 있다. DRAM(3300)과 HBM 제어기(3400)의 각각은 도 2 내지 도 12에서 설명된 바와 같이 스크러빙 동작을 수행하고, 에러 정보를 리포팅 하도록 구현될 수 있다.
도 18은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(4000)을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 컴퓨팅 시스템(4000)은 호스트 프로세서(4100), 및 호스트 프로세서(4100)에 의해 제어되는 적어도 하나의 메모리 패키지 칩(4210)을 포함할 수 있다. 실시 예에 있어서, 채널(4001)을 통하여 호스트 프로세서(4100)와 메모리 패키지 칩(4210)은 데이터를 송수신할 수 있다. 메모리 패키지 칩(4210)은 스택된 메모리 칩들과 제어기 칩을 포함할 수 있다. 도 18에 도시된 바와 같이, 메모리 패키지 칩(4210)은 DRAM 제어기 칩에 형성된 복수의 DRAM 칩들을 포함할 수 있다. 메모리 패키지 칩(4210)의 메모리 칩들과 제어기 칩 사이에는 도 2 내지 도 12에서 설명된 바와 같이 ECS 모드 동작에 따른 스크러빙 동작과 그에 따른 에러 어드레스의 리포팅 동작이 구현될 수 있다.
한편, 본 발명의 메모리 패키지 칩의 구성에 여기에 제한되지 않는다고 이해되어야 할 것이다.
한편, 본 발명의 실시 예에 따른 데이터 통신 방식은 데이터 센터에 적용 가능하다.
도 19는 본 발명의 실시 예에 따른 메모리 장치가 적용된 데이터 센터를 예시적으로 보여주는 도면이다. 도 19를 참조하면, 데이터 센터(7000)는 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 저장 센터라고 지칭될 수도 있다. 데이터 센터(7000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 혹은 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(7000)는 어플리케이션 서버들(7100 내지 7100n) 및 저장 서버들(7200 내지 7200m)을 포함할 수 있다. 어플리케이션 서버들(7100 내지 7100n)의 개수 및 저장 서버들(7200 내지 7200m)의 개수는 실시 예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(7100 내지 7100n)의 개수 및 저장 서버들(7200 내지 7200m)의 개수는 서로 다를 수 있다.
어플리케이션 서버(7100) 혹은 저장 서버(7200)는 프로세서(7110, 7210) 및 메모리(7120, 7220) 중 적어도 하나를 포함할 수 있다. 저장 서버(7200)를 예시로 설명하면, 프로세서(7210)는 저장 서버(7200)의 전반적인 동작을 제어할 수 있고, 메모리(7220)에 액세스하여 메모리(7220)에 로딩된 커맨드 혹은 데이터를 실행할 수 있다. 메모리(7220)는 DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 혹은 NVMDIMM(Non-Volatile DIMM)일 수 있다. 실시 예에 따라, 저장 서버(7200)에 포함되는 프로세서(7210)의 개수 및 메모리(7220)의 개수는 다양하게 선택될 수 있다.
실시 예에 있어서, 프로세서(7210)와 메모리(7220)는 프로세서-메모리 페어를 제공할 수 있다. 실시 예에 있어서, 프로세서(7210)와 메모리(7220)의 개수는 서로 다를 수도 있다. 프로세서(7210)는 단일 코어 프로세서 혹은 다중 코어 프로세서를 포함할 수 있다. 저장 서버(7200)에 대한 설명은, 어플리케이션 서버(7100)에도 유사하게 적용될 수 있다. 실시 예에 따라, 어플리케이션 서버(7100)는 저장 장치(7150)를 포함하지 않을 수도 있다. 저장 서버(7200)는 적어도 하나 이상의 저장 장치(7250)를 포함할 수 있다. 저장 장치(7250)는 도 2 내지 도 12에 설명된 바와 같이 ECS 모드를 진행할 수 있다.
어플리케이션 서버들(7100 내지 7100n) 및 저장 서버들(7200 내지 7200m)은 네트워크(7300)를 통해 서로 통신할 수 있다. 네트워크(7300)는 FC(Fiber Channel) 혹은 Ethernet 등을 이용하여 구현될 수 있다. 이 때, FC는 상대적으로 고속의 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(7300)의 액세스 방식에 따라 저장 서버들(7200 내지 7200m)은 파일 저장, 블록 저장, 혹은 오브젝트 저장으로서 제공될 수 있다.
실시 예에 있어서, 네트워크(7300)는 SAN(Storage Area Network)와 같은 저장 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용하고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 또 다른 예를 들어, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 혹은 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 다른 실시 예에 있어서, 네트워크(7300)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들어, 네트워크(7300)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.
아래에서는, 어플리케이션 서버(7100) 및 저장 서버(7200)를 중심으로 설명하기로 한다. 어플리케이션 서버(7100)에 대한 설명은 다른 어플리케이션 서버(7100n)에도 적용될 수 있고, 저장 서버(7200)에 대한 설명은 다른 저장 서버(7200m)에도 적용될 수 있다.
어플리케이션 서버(7100)는 사용자 혹은 클라이언트가 저장 요청한 데이터를 네트워크(7300)를 통해 저장 서버들(7200 내지 7200m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(7100)는 사용자 혹은 클라이언트가 리드 요청한 데이터를 저장 서버들(7200 내지 7200m) 중 하나로부터 네트워크(7300)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(7100)는 웹 서버 혹은 DBMS(Database Management System) 등으로 구현될 수 있다.
어플리케이션 서버(7100)는 네트워크(7300)를 통해 다른 어플리케이션 서버(7100n)에 포함된 메모리(7120n) 혹은 저장 장치(7150n)에 액세스할 수 있고, 혹은 네트워크(7300)를 통해 저장 서버(7200 ~ 7200m)에 포함된 메모리(7220 ~ 7220m) 혹은 저장 장치(7250 ~ 7250m)에 액세스할 수 있다. 이로써, 어플리케이션 서버(7100)는 어플리케이션 서버들(7100 ~ 7100n) 혹은 저장 서버들(7200 ~ 7200m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(7100)는 어플리케이션 서버들(7100 ~ 7100n) 혹은 저장 서버들(7200 ~ 7200m) 사이에서 데이터를 이동 혹은 카피(copy)하기 위한 커맨드를 실행할 수 있다. 이 때 데이터는 저장 서버들(7200 ~ 7200m)의 저장 장치로(7250 ~ 7250m)부터 저장 서버들(7200 ~ 7200m)의 메모리들(7220 ~ 7220m)을 거쳐서, 혹은 바로 어플리케이션 서버들(7100 ~ 7100n)의 메모리(7120 ~ 7120n)로 이동될 수 있다. 네트워크(7300)를 통해 이동하는 데이터는 보안 혹은 프라이버시를 위해 암호화된 데이터일 수 있다.
저장 서버(7200)를 예시로 설명하면, 인터페이스(7254)는 프로세서(7210)와 제어기(7251)의 물리적 연결 및 NIC(7240)와 제어기(7251)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(7254)는 저장 장치(7250)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(1254)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
저장 서버(7200)는 스위치(7230) 및 NIC(7240)을 더 포함할 수 있다. 스위치(7230)는 프로세서(7210)의 제어에 따라 프로세서(7210)와 저장 장치(7250)를 선택적으로 연결시키거나, NIC(7240)과 저장 장치(7250)를 선택적으로 연결시킬 수 있다.
실시 예에 있어서, NIC(7240)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(7240)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(7300)에 연결될 수 있다. NIC(7240)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(7210) 혹은 스위치(7230) 등과 연결될 수 있다. 호스트 버스 인터페이스는, 앞서 설명한 인터페이스(7254)의 예시들 중 하나로 구현될 수도 있다. 실시 예에 있어서, NIC(7240)는 프로세서(7210), 스위치(7230), 저장 장치(7250) 중 적어도 하나와 통합될 수도 있다.
저장 서버(7200 ~ 7200m) 혹은 어플리케이션 서버(7100 ~ 7100n)에서 프로세서는 저장 장치(7130 ~ 7130n, 7250 ~ 7250m) 혹은 메모리(7120 ~ 7120n, 7220 ~ 7220m)로 커맨드를 전송하여 데이터를 프로그램 하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 혹은 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 혹은 프라이버시를 위해 암호화된 데이터일 수 있다.
저장 장치(7150 ~ 7150m, 7250 ~ 7250m)는 프로세서로부터 수신된 리드 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 NAND 플래시 메모리 장치(7252-7252m)로 전송할 수 있다. 이에 따라 NAND 플래시 메모리 장치(7252-7252m)로부터 데이터를 리드하는 경우, RE(Read Enable) 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. RE 신호를 이용하여 DQS(Data Strobe)를 생성할 수 있다. 커맨드와 어드레스 신호는 WE(Write Enable) 신호의 상승 엣지 혹은 하강 엣지에 따라 페이지 버퍼에 래치 될 수 있다.
제어기(7251)는 저장 장치(7250)의 동작을 전반적으로 제어할 수 있다. 실시 예에 있어서, 제어기(7251)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 제어기(7251)는 라이트 커맨드에 응답하여 낸드 플래시(7252)에 데이터를 쓸 수 있고, 혹은 리드 커맨드에 응답하여 낸드 플래시(7252)로부터 데이터를 리드할 수 있다. 예를 들어, 라이트 커맨드 혹은 리드 커맨드는 저장 서버(7200) 내의 프로세서(7210), 다른 저장 서버(7200m) 내의 프로세서(7210m) 혹은 어플리케이션 서버(7100, 7100n) 내의 프로세서(7110, 7110n)로부터 제공될 수 있다. DRAM(7253)은 낸드 플래시(7252)에 쓰여질 데이터 혹은 낸드 플래시(7252)로부터 리드된 데이터를 임시 저장(버퍼링)할 수 있다. 또한, DRAM(7253)은 메타 데이터를 저장할 수 있다. 여기서, 메타 데이터는 사용자 데이터 혹은 낸드 플래시(7252)를 관리하기 위해 제어기(7251)에서 생성된 데이터이다. 저장 장치(7250)는 보안 혹은 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.
한편, 상술된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용 할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함 할 것이다.
10: 메모리 시스템
100: 메모리 장치
170: 에러 정정 회로
180: ECS 회로
200: 제어기
202: ECS 모드 관리 장치
204: 맵 관리 장치

Claims (20)

  1. 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및
    ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고,
    상기 ECS 회로는,
    상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터; 및
    외부의 장치로부터 수신된 페이지 오프라인(page offline) 어드레스를 저장하는 제 2 레지스터를 포함하는 메모리 장치.
  2. 제 1 항에 있어서,
    상기 ECS 회로는 사전에 결정된 방식에 따라 상기 스크러빙 동작을 수행하는 ECS 로직을 더 포함하는 것을 특징으로 하는 메모리 장치.
  3. 제 2 항에 있어서,
    상기 ECS 로직은 상기 스크러빙 동작에서 검출된 에러 어드레스들 중에서 상기 페이지 오프라인 어드레스를 제외하는 것을 특징으로 하는 메모리 장치.
  4. 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및
    ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고,
    상기 ECS 회로는,
    에러 어드레스를 저장하는 제 1 레지스터; 및
    상기 에러 어드레스로부터 ECS 어드레스 카운터를 순방향 혹은 역방향으로 진행하면서 상기 스크러빙 동작을 수행하는 ECS 로직을 포함하는 메모리 장치.
  5. 제 4 항에 있어서,
    상기 ECS 로직은 상기 스크러빙 동작을 ECS 어드레스 카운터를 카운트-업 하면서 진행할 지 혹은 카운트-다운 하면서 진행할 지 결정하는 스크러빙 방향 로직을 더 포함하는 메모리 장치.
  6. 제 4 항에 있어서,
    상기 ECS 로직은, 상기 스크러빙 동작에 따른 복수의 에러 어드레스들 중에서 랜덤하게 제 1 레지스터에 저장하는 것을 특징으로 하는 메모리 장치.
  7. 제 6 항에 있어서,
    상기 ECS 로직은 상기 복수의 에러 어드레스들 중에서 어느 하나는 랜덤하게 선택하는 랜덤 선택 로직을 더 포함하는 메모리 장치.
  8. 제 4 항에 있어서,
    상기 ECS 로직은 상기 스크러빙 동작에서 상기 에러 어드레스를 검출하면 상기 스크러빙 동작을 멈추고, 외부의 장치로 상기 에러 어드레스를 리포팅 한 후에 상기 스크러빙 동작을 재개하는 것을 특징으로 하는 메모리 장치.
  9. 제 8 항에 있어서,
    상기 ECS 로직은 상기 스크러빙 동작을 멈추기 전의 ECS 어드레스 카운터부터 상기 스크러빙을 동작을 재개하는 리쥬밍 로직을 더 포함하는 메모리 장치.
  10. 메모리 장치의 동작 방법에 있어서,
    제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계; 및
    스크러빙 동작을 수행하기 위하여 상기 ECS 모드 정보에 의해 활성화된 ECS 어드레스 카운터를 역방향으로 진행하는 단계를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 스크러빙 동작에 따른 에러 어드레스들 중에서 어느 하나를 랜덤하게 선택하는 단계; 및
    상기 선택된 에러 어드레스를 상기 제어기로 리포팅하는 단계를 더 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 에러 어드레스를 리포팅하기 직전의 ECS 어드레스 카운터부터 상기 스크러빙 동작을 재개하는 단계를 더 포함하는 방법.
  13. 제 11 항에 있어서,
    상기 ECS 어드레스 카운터를 순방향으로 진행하는 단계를 더 포함하는 방법.
  14. 메모리 장치의 동작 방법에 있어서,
    제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계;
    상기 제어기로부터 페이지 오프라인 어드레스를 수신하는 단계;
    ECS 모드 정보에 따라 스크러빙 동작을 수행하는 단계; 및
    상기 스크러빙 동작에서 검출된 에러 어드레스들 중에서 상기 페이지 오프라인 어드레스를 제외한 에러 어드레스를 상기 제어기로 리포팅하는 단계를 포함하는 방법.
  15. 제 14 항에 있어서,
    상기 스크러빙 동작은 상기 페이지 오프라인 어드레스에 대응하는 범위를 제외하고 진행되는 것을 특징으로 하는 방법.
  16. 논리 어드레스와 메모리 장치의 물리 어드레스 사이의 맵핑 관계를 관리하고, 상기 메모리 장치로부터 수신된 에러 어드레스를 이용하여 페이지 오프라인 어드레스를 발생하는 맵 관리 장치; 및
    상기 메모리 장치의 ECS(Error Check and Scrub) 모드를 관리하는 ECS 모드 관리 장치를 포함하고,
    상기 ECS 모드 관리 장치는, 상기 메모리 장치로 ECS 모드 정보 및 페이지 오프라인 어드레스를 전송하는 것을 특징으로 하는 제어기.
  17. 제 16 항에 있어서,
    상기 ECS 모드 정보 및 상기 페이지 오프라인 어드레스는 적어도 하나의 데이터 라인을 통하여 전송되는 것을 특징으로 하는 제어기.
  18. 제 16 항에 있어서,
    상기 에러 어드레스는 상기 메모리 장치와 상기 제어기 사이의 에러 어드레스 전용 라인을 통하여 전송되는 것을 특징으로 하는 제어기.
  19. 제 18 항에 있어서,
    상기 에러 어드레스 전용 라인은 메모리 칩마다 하나씩 배치되는 것을 특징으로 하는 제어기.
  20. 제 18 항에 있어서,
    상기 에러 어드레스 전용 라인은 하나의 의사 채널(Pseudo Channel)마다 하나씩 배치되는 것을 특징으로 하는 제어기.
KR1020200181670A 2020-12-23 2020-12-23 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법 KR20220090794A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200181670A KR20220090794A (ko) 2020-12-23 2020-12-23 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법
US17/388,243 US11604693B2 (en) 2020-12-23 2021-07-29 Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same
CN202111431156.1A CN114664368A (zh) 2020-12-23 2021-11-29 存储器件、用于控制存储器件的控制器、包括存储器件的存储系统以及存储器件的操作方法
US18/096,053 US20230144712A1 (en) 2020-12-23 2023-01-12 Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same
US18/513,730 US20240095122A1 (en) 2020-12-23 2023-11-20 Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200181670A KR20220090794A (ko) 2020-12-23 2020-12-23 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220090794A true KR20220090794A (ko) 2022-06-30

Family

ID=82023375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200181670A KR20220090794A (ko) 2020-12-23 2020-12-23 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법

Country Status (3)

Country Link
US (3) US11604693B2 (ko)
KR (1) KR20220090794A (ko)
CN (1) CN114664368A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579971B2 (en) * 2021-07-14 2023-02-14 Micron Technology, Inc. Apparatuses, systems, and methods for forced error check and scrub readouts
CN115223615B (zh) * 2022-09-20 2022-12-09 睿力集成电路有限公司 一种译码电路、译码方法和半导体存储器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313740B2 (en) * 2002-07-25 2007-12-25 Inapac Technology, Inc. Internally generating patterns for testing in an integrated circuit device
US20070022244A1 (en) 2005-07-25 2007-01-25 Honeywell International Inc. Methods and systems for refresh and error scrubbing of dynamic memory devices
US8103900B2 (en) * 2009-07-28 2012-01-24 International Business Machines Corporation Implementing enhanced memory reliability using memory scrub operations
US9170639B2 (en) * 2013-04-09 2015-10-27 International Business Machines Corporation Method and apparatus for mitigating effects of memory scrub operations on idle time power savings modes
WO2014205600A1 (en) 2013-06-25 2014-12-31 Micron Technology, Inc. On demand block management
US9612908B2 (en) * 2015-02-20 2017-04-04 Qualcomm Incorporated Performing memory data scrubbing operations in processor-based memory in response to periodic memory controller wake-up periods
JP2017010273A (ja) * 2015-06-22 2017-01-12 株式会社東芝 半導体故障検出装置
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
KR102435181B1 (ko) 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10346244B2 (en) * 2017-08-10 2019-07-09 Micron Technology, Inc. Shared address counters for multiple modes of operation in a memory device
US11074126B2 (en) 2018-07-12 2021-07-27 Micron Technology, Inc. Methods for error count reporting with scaled error count information, and memory devices employing the same
US11200105B2 (en) 2018-12-31 2021-12-14 Micron Technology, Inc. Normalization of detecting and reporting failures for a memory device
US10817371B2 (en) 2018-12-31 2020-10-27 Micron Technology, Inc. Error correction in row hammer mitigation and target row refresh
KR20210055865A (ko) * 2019-11-07 2021-05-18 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템

Also Published As

Publication number Publication date
CN114664368A (zh) 2022-06-24
US20220197739A1 (en) 2022-06-23
US11604693B2 (en) 2023-03-14
US20240095122A1 (en) 2024-03-21
US20230144712A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
US11869571B2 (en) Memory device, a controller for controlling the same, a memory system including the same, and a method of operating the same
US11094364B2 (en) Data storage device and operating method thereof
US20240095122A1 (en) Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same
US11614869B2 (en) Controller for preventing uncorrectable error in memory device, memory device having the same, and operating method thereof
US11449274B2 (en) Memory device, data outputting method thereof, and memory system having the same
KR20210041655A (ko) 메모리 칩, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US11657859B2 (en) Memory device, controller controlling the same, memory system including the same, and operating method thereof
KR20230099477A (ko) 로우 해머 카운터 칩을 포함하는 메모리 모듈들, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10917111B2 (en) Error correction code unit and error correction method
US11688453B2 (en) Memory device, memory system and operating method
US11610624B2 (en) Memory device skipping refresh operation and operation method thereof
US11789815B2 (en) Memory controller and memory device including the same
US20230112776A1 (en) Operation method of memory module, operation method of memory controller, and operation method of memory system
US20230137339A1 (en) Memory device, memory module including the memory device, and operating method of memory controller
KR20230169885A (ko) 영구 메모리 장치 및 컴퓨팅 시스템
KR20230064674A (ko) 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination