KR20220090794A - 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법 - Google Patents
메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 메모리 시스템 및 그것의 동작 방법 Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 187
- 238000011017 operating method Methods 0.000 title description 3
- 238000005201 scrubbing Methods 0.000 claims abstract description 90
- 238000012937 correction Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 34
- 230000002441 reversible effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 36
- 230000004044 response Effects 0.000 description 20
- 239000004065 semiconductor Substances 0.000 description 19
- 238000007726 management method Methods 0.000 description 14
- 238000003491 array Methods 0.000 description 12
- 208000011580 syndromic disease Diseases 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 102100035954 Choline transporter-like protein 2 Human genes 0.000 description 2
- 102100039497 Choline transporter-like protein 3 Human genes 0.000 description 2
- 101000948115 Homo sapiens Choline transporter-like protein 2 Proteins 0.000 description 2
- 101000889279 Homo sapiens Choline transporter-like protein 3 Proteins 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100031699 Choline transporter-like protein 1 Human genes 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101000940912 Homo sapiens Choline transporter-like protein 1 Proteins 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
본 발명에 따른 메모리 장치는, 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이, 상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로, 및 ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고, 상기 ECS 회로는, 상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터, 및 외부의 장치로부터 수신된 페이지 오프라인(page offline) 어드레스를 저장하는 제 2 레지스터를 포함한다.
Description
본 발명은 메모리 장치, 그것을 제어하는 제어기, 및 그것을 갖는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.
일반적으로, 메모리 장치로서 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는 본 발명의 실시 예에 따른 메모리 장치가 적용된 데이터 센터를 예시적으로 보여주는 도면이다.
도 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: 맵 관리 장치
100: 메모리 장치
170: 에러 정정 회로
180: ECS 회로
200: 제어기
202: ECS 모드 관리 장치
204: 맵 관리 장치
Claims (20)
- 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이;
상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및
ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고,
상기 ECS 회로는,
상기 스크러빙 동작에 따른 에러 어드레스를 저장하는 제 1 레지스터; 및
외부의 장치로부터 수신된 페이지 오프라인(page offline) 어드레스를 저장하는 제 2 레지스터를 포함하는 메모리 장치. - 제 1 항에 있어서,
상기 ECS 회로는 사전에 결정된 방식에 따라 상기 스크러빙 동작을 수행하는 ECS 로직을 더 포함하는 것을 특징으로 하는 메모리 장치. - 제 2 항에 있어서,
상기 ECS 로직은 상기 스크러빙 동작에서 검출된 에러 어드레스들 중에서 상기 페이지 오프라인 어드레스를 제외하는 것을 특징으로 하는 메모리 장치. - 워드라인들과 비트라인들이 교차한 곳에 배치된 복수의 메모리 셀들을 갖는 메모리 셀 어레이;
상기 메모리 셀 어레이로부터 데이터를 읽고, 상기 읽혀진 데이터의 에러를 정정하는 에러 정정 회로; 및
ECS(Error Check and Scrub) 모드에서 상기 메모리 셀 어레이에 대한 스크러빙 동작을 수행하는 ECS 회로를 포함하고,
상기 ECS 회로는,
에러 어드레스를 저장하는 제 1 레지스터; 및
상기 에러 어드레스로부터 ECS 어드레스 카운터를 순방향 혹은 역방향으로 진행하면서 상기 스크러빙 동작을 수행하는 ECS 로직을 포함하는 메모리 장치. - 제 4 항에 있어서,
상기 ECS 로직은 상기 스크러빙 동작을 ECS 어드레스 카운터를 카운트-업 하면서 진행할 지 혹은 카운트-다운 하면서 진행할 지 결정하는 스크러빙 방향 로직을 더 포함하는 메모리 장치. - 제 4 항에 있어서,
상기 ECS 로직은, 상기 스크러빙 동작에 따른 복수의 에러 어드레스들 중에서 랜덤하게 제 1 레지스터에 저장하는 것을 특징으로 하는 메모리 장치. - 제 6 항에 있어서,
상기 ECS 로직은 상기 복수의 에러 어드레스들 중에서 어느 하나는 랜덤하게 선택하는 랜덤 선택 로직을 더 포함하는 메모리 장치. - 제 4 항에 있어서,
상기 ECS 로직은 상기 스크러빙 동작에서 상기 에러 어드레스를 검출하면 상기 스크러빙 동작을 멈추고, 외부의 장치로 상기 에러 어드레스를 리포팅 한 후에 상기 스크러빙 동작을 재개하는 것을 특징으로 하는 메모리 장치. - 제 8 항에 있어서,
상기 ECS 로직은 상기 스크러빙 동작을 멈추기 전의 ECS 어드레스 카운터부터 상기 스크러빙을 동작을 재개하는 리쥬밍 로직을 더 포함하는 메모리 장치. - 메모리 장치의 동작 방법에 있어서,
제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계; 및
스크러빙 동작을 수행하기 위하여 상기 ECS 모드 정보에 의해 활성화된 ECS 어드레스 카운터를 역방향으로 진행하는 단계를 포함하는 방법. - 제 10 항에 있어서,
상기 스크러빙 동작에 따른 에러 어드레스들 중에서 어느 하나를 랜덤하게 선택하는 단계; 및
상기 선택된 에러 어드레스를 상기 제어기로 리포팅하는 단계를 더 포함하는 방법. - 제 11 항에 있어서,
상기 에러 어드레스를 리포팅하기 직전의 ECS 어드레스 카운터부터 상기 스크러빙 동작을 재개하는 단계를 더 포함하는 방법. - 제 11 항에 있어서,
상기 ECS 어드레스 카운터를 순방향으로 진행하는 단계를 더 포함하는 방법. - 메모리 장치의 동작 방법에 있어서,
제어기로부터 ECS(Error Check and Scrub) 모드 정보를 수신하는 단계;
상기 제어기로부터 페이지 오프라인 어드레스를 수신하는 단계;
ECS 모드 정보에 따라 스크러빙 동작을 수행하는 단계; 및
상기 스크러빙 동작에서 검출된 에러 어드레스들 중에서 상기 페이지 오프라인 어드레스를 제외한 에러 어드레스를 상기 제어기로 리포팅하는 단계를 포함하는 방법. - 제 14 항에 있어서,
상기 스크러빙 동작은 상기 페이지 오프라인 어드레스에 대응하는 범위를 제외하고 진행되는 것을 특징으로 하는 방법. - 논리 어드레스와 메모리 장치의 물리 어드레스 사이의 맵핑 관계를 관리하고, 상기 메모리 장치로부터 수신된 에러 어드레스를 이용하여 페이지 오프라인 어드레스를 발생하는 맵 관리 장치; 및
상기 메모리 장치의 ECS(Error Check and Scrub) 모드를 관리하는 ECS 모드 관리 장치를 포함하고,
상기 ECS 모드 관리 장치는, 상기 메모리 장치로 ECS 모드 정보 및 페이지 오프라인 어드레스를 전송하는 것을 특징으로 하는 제어기. - 제 16 항에 있어서,
상기 ECS 모드 정보 및 상기 페이지 오프라인 어드레스는 적어도 하나의 데이터 라인을 통하여 전송되는 것을 특징으로 하는 제어기. - 제 16 항에 있어서,
상기 에러 어드레스는 상기 메모리 장치와 상기 제어기 사이의 에러 어드레스 전용 라인을 통하여 전송되는 것을 특징으로 하는 제어기. - 제 18 항에 있어서,
상기 에러 어드레스 전용 라인은 메모리 칩마다 하나씩 배치되는 것을 특징으로 하는 제어기. - 제 18 항에 있어서,
상기 에러 어드레스 전용 라인은 하나의 의사 채널(Pseudo Channel)마다 하나씩 배치되는 것을 특징으로 하는 제어기.
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)
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)
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 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
-
2020
- 2020-12-23 KR KR1020200181670A patent/KR20220090794A/ko active Search and Examination
-
2021
- 2021-07-29 US US17/388,243 patent/US11604693B2/en active Active
- 2021-11-29 CN CN202111431156.1A patent/CN114664368A/zh active Pending
-
2023
- 2023-01-12 US US18/096,053 patent/US20230144712A1/en active Pending
- 2023-11-20 US US18/513,730 patent/US20240095122A1/en active Pending
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 |