KR20230069794A - Otp 블록을 포함하는 메모리 장치 - Google Patents
Otp 블록을 포함하는 메모리 장치 Download PDFInfo
- Publication number
- KR20230069794A KR20230069794A KR1020220056017A KR20220056017A KR20230069794A KR 20230069794 A KR20230069794 A KR 20230069794A KR 1020220056017 A KR1020220056017 A KR 1020220056017A KR 20220056017 A KR20220056017 A KR 20220056017A KR 20230069794 A KR20230069794 A KR 20230069794A
- Authority
- KR
- South Korea
- Prior art keywords
- otp
- block
- memory
- user
- blocks
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 205
- 230000004913 activation Effects 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 abstract description 55
- 238000013507 mapping Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 41
- 230000007547 defect Effects 0.000 description 30
- 239000000872 buffer Substances 0.000 description 12
- 238000012360 testing method Methods 0.000 description 12
- 230000002950 deficient Effects 0.000 description 7
- 101000641216 Aquareovirus G (isolate American grass carp/USA/PB01-155/-) Non-structural protein 4 Proteins 0.000 description 6
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 102100040428 Chitobiosyldiphosphodolichol beta-mannosyltransferase Human genes 0.000 description 6
- 101000891557 Homo sapiens Chitobiosyldiphosphodolichol beta-mannosyltransferase Proteins 0.000 description 6
- 101000927946 Homo sapiens LisH domain-containing protein ARMC9 Proteins 0.000 description 6
- 102100036882 LisH domain-containing protein ARMC9 Human genes 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 5
- 101100076569 Euplotes raikovi MAT3 gene Proteins 0.000 description 5
- 102100037478 Glutathione S-transferase A2 Human genes 0.000 description 5
- 101001026115 Homo sapiens Glutathione S-transferase A2 Proteins 0.000 description 5
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 4
- 102100030851 Cortistatin Human genes 0.000 description 4
- 101000906005 Fasciola hepatica Glutathione S-transferase class-mu 26 kDa isozyme 1 Proteins 0.000 description 4
- 102100036534 Glutathione S-transferase Mu 1 Human genes 0.000 description 4
- 101000851788 Homo sapiens Eukaryotic peptide chain release factor GTP-binding subunit ERF3A Proteins 0.000 description 4
- 101001071694 Homo sapiens Glutathione S-transferase Mu 1 Proteins 0.000 description 4
- 102100029563 Somatostatin Human genes 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 1
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 1
- 102100030943 Glutathione S-transferase P Human genes 0.000 description 1
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 1
- 101001010139 Homo sapiens Glutathione S-transferase P Proteins 0.000 description 1
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 1
- 101100237293 Leishmania infantum METK gene Proteins 0.000 description 1
- 101150108651 MAT2 gene Proteins 0.000 description 1
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 1
- 101710176296 Switch 2 Proteins 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 101150064834 ssl1 gene Proteins 0.000 description 1
- 101150062870 ssl3 gene Proteins 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/08—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/785—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
- G11C29/787—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using a fuse hierarchy
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 메모리 장치에 대한 것으로, 좀 더 구체적으로는 OTP 블록을 포함하는 메모리 장치에 대한 것이다. 본 발명의 실시 예에 따른 복수의 사용자 블록들 및 적어도 하나의 OTP 블록을 포함하는 메모리 셀 어레이, 상기 적어도 하나의 OTP 블록에 대응하는 어드레스 정보 및 OTP 커맨드 정보를 저장하는 어드레스 레지스터를 포함하며, 상기 적어도 하나의 OTP 블록은 상기 메모리 셀 어레이에서 랜덤하게 배치될 수 있다. 본 발명에 따른 메모리 장치는 데이터 저장 공간을 효율적으로 사용할 수 있으며, OTP 블록에 저장된 데이터를 안정적으로 보호할 수 있다.
Description
본 발명은 메모리 장치에 대한 것으로, 좀 더 구체적으로는 OTP 블록을 포함하는 메모리 장치에 대한 것이다.
일반적으로 메모리 장치는 복수의 메모리 블록들을 포함하며, 메모리 블록들은 사용자 데이터를 저장하기 위한 사용자 블록들, 사용자 블록의 페일 시에 이를 대체하기 위한 리던던시 블록들, OTP(One Time Programmable) 블록 및 OTP 리던던시 블록들로 구분될 수 있다.
이 중, OTP 블록에는 메모리 장치의 보안과 관련된 데이터와 같이 한번 프로그램 되면 변경될 수 없는 중요 데이터가 저장된다. 일반적인 메모리 장치는 OTP 블록에 저장된 데이터의 페일(fail)에 대비하여 OTP 리던던시 블록을 별도로 구비한다. 그러나, 만약 OTP 블록 및 이를 대체하기 위한 OTP 리던던시 블록이 모두 페일(fail)이라면, 해당 메모리 장치는 칩 페일(chip fail)로 판단되어 폐기되며, 이는 반도체 수율(yield) 하락의 요인이 된다. 또한, 만약 이러한 문제를 해결하기 위하여 OTP 리던던시 블록을 다수 구비한다면, 이는 저장 공간의 낭비를 초래하게 된다.
본 발명의 목적은 데이터 저장 공간을 효율적으로 사용하면서, OTP 블록에 저장된 데이터를 안정적으로 보호할 수 있는 메모리 장치를 제공하는데 있다.
본 발명의 실시 예에 따른 메모리 패키지는 인쇄 회로 기판; 상기 인쇄 회로 기판 상에 적층된 제1 메모리 장치; 및 상기 제1 메모리 장치 상에 적층된 제2 메모리 장치를 포함하며, 상기 제1 메모리 장치는 제1 OTP 블록을 포함하고, 상기 제2 메모리 장치는 상기 제1 OTP 블록과 다른 제2 OTP 블록을 포함하며, 상기 제1 메모리 장치의 일 측에서 상기 제1 OTP 블록까지의 수평 거리는 상기 제2 메모리 장치의 일 측에서 상기 제2 OTP 블록까지의 수평 거리와 다르다.
본 발명의 실시 예에 따른 메모리 장치는 복수의 사용자 블록들 및 적어도 하나의 OTP 블록을 포함하는 메모리 셀 어레이; 상기 적어도 하나의 OTP 블록에 대응하는 어드레스 정보 및 OTP 커맨드 정보를 저장하는 어드레스 레지스터를 포함하며, 상기 적어도 하나의 OTP 블록은 상기 메모리 셀 어레이에서 랜덤하게 배치된 다.
본 발명의 실시 예에 따른 메모리 장치의 동작 방법은 복수의 사용자 블록들 중 에러 비트의 개수가 기준 개수 이하인 사용자 블록을 선택하는 단계; 상기 선택된 사용자 블록을 OTP 블록으로 할당하는 단계: 상기 OTP 블록에 데이터를 저장하는 단계; 및 상기 OTP 블록에 대응하는 OTP 어드레스 및 상기 OTP 어드레스와 관련된 OTP 커맨드를 어드레스 레지스터에 저장하는 단계를 포함한다.
본 발명에 따른 메모리 장치는 데이터 저장 공간을 효율적으로 사용할 수 있으며, OTP 블록에 저장된 데이터를 안정적으로 보호할 수 있다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 메모리 장치의 일 예를 보여주는 블록도이다.
도 3a는 일반적인 메모리 셀 어레이를 보여주는 도면이다.
도 3b는 도 2의 메모리 셀 어레이의 일 예를 보여주는 도면이다.
도 4는 도 2의 컨트롤 로직의 일 예를 보여주는 블록도이다.
도 5는 도 1의 데이터 저장 장치의 OTP 블록 할당 동작의 일 예를 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 배드 블록 테이블의 일 예를 보여주는 도면이다.
도 8은 호스트로부터 소거 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 9는 호스트로부터 프로그램 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 10은 호스트로부터 읽기 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 OTP 블록에 대한 읽기 동작의 일 예를 보여주는 도면이다.
도 12a는 일반적인 메모리 셀 어레이를 보여주는 도면이다.
도 12b는 본 발명의 일 실시 예에 따른 메모리 셀 어레이를 보여주는 도면이다.
도 13은 도 12b의 메모리 셀 어레이의 OTP 블록의 일 예를 보여주는 도면이다.
도 14a는 워드 라인을 기준으로 도 13의 메모리 블록을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 14b는 스트링 선택 라인을 기준으로 도 13의 메모리 블록을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 16은 도 15의 데이터 저장 장치의 OTP 블록 재할당 동작의 일 예를 보여주는 순서도이다.
도 17 및 도 18은 본 발명의 실시 예에 따른 업데이트된 OTP 맵핑 테이블 및 업데이트된 배드 블록 테이블의 일 예를 보여주는 도면이다.
도 19는 본 발명의 실시 예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 20은 도 19의 워킹 메모리에 저장된 맵핑 테이블의 일 예를 보여주는 도면이다.
도 21a는 일반적인 메모리 패키지를 보여주는 도면이다.
도 21b는 본 발명의 실시 예에 따른 메모리 패키지의 일 예를 보여주는 도면이다.
도 2는 도 1의 메모리 장치의 일 예를 보여주는 블록도이다.
도 3a는 일반적인 메모리 셀 어레이를 보여주는 도면이다.
도 3b는 도 2의 메모리 셀 어레이의 일 예를 보여주는 도면이다.
도 4는 도 2의 컨트롤 로직의 일 예를 보여주는 블록도이다.
도 5는 도 1의 데이터 저장 장치의 OTP 블록 할당 동작의 일 예를 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 배드 블록 테이블의 일 예를 보여주는 도면이다.
도 8은 호스트로부터 소거 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 9는 호스트로부터 프로그램 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 10은 호스트로부터 읽기 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 OTP 블록에 대한 읽기 동작의 일 예를 보여주는 도면이다.
도 12a는 일반적인 메모리 셀 어레이를 보여주는 도면이다.
도 12b는 본 발명의 일 실시 예에 따른 메모리 셀 어레이를 보여주는 도면이다.
도 13은 도 12b의 메모리 셀 어레이의 OTP 블록의 일 예를 보여주는 도면이다.
도 14a는 워드 라인을 기준으로 도 13의 메모리 블록을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 14b는 스트링 선택 라인을 기준으로 도 13의 메모리 블록을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 16은 도 15의 데이터 저장 장치의 OTP 블록 재할당 동작의 일 예를 보여주는 순서도이다.
도 17 및 도 18은 본 발명의 실시 예에 따른 업데이트된 OTP 맵핑 테이블 및 업데이트된 배드 블록 테이블의 일 예를 보여주는 도면이다.
도 19는 본 발명의 실시 예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 20은 도 19의 워킹 메모리에 저장된 맵핑 테이블의 일 예를 보여주는 도면이다.
도 21a는 일반적인 메모리 패키지를 보여주는 도면이다.
도 21b는 본 발명의 실시 예에 따른 메모리 패키지의 일 예를 보여주는 도면이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)를 보여주는 블록도이다.
본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 복수의 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록을 선택하여 OTP 블록으로 할당한다. 이에 따라, 데이터 저장 장치(1000A)는 OTP 블록의 페일(fail)에 대비한 OTP 리던던시 블록을 구비할 필요가 없어, 데이터 저장 공간을 효율적으로 사용할 수 있다.
아울러, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 OTP 블록으로 할당된 사용자 블록을 배드 블록으로 관리한다. 호스트로부터 소거 요청, 프로그램 요청 또는 활성화 옵션을 만족하지 않는 읽기 요청이 수신되는 경우, 데이터 저장 장치(1000A)는 해당 블록이 배드 블록이라고 호스트에 회신할 수 있다. 이에 따라, 활성화 옵션을 만족하는 읽기 요청을 제외하고는 OTP 블록으로 할당된 사용자 블록에 대한 접근이 차단되며, 결과적으로 OTP 블록에 저장된 데이터가 안정적으로 보호될 수 있다.
도 1을 참조하여 좀 더 자세히 설명하면, 데이터 저장 장치(1000A)는 메모리 장치(1100) 및 메모리 컨트롤러(1200)를 포함한다.
메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 어드레스 신호(ADDR), 커맨드 신호(CMD) 및 사용자 데이터(DATA)를 수신한다. 메모리 장치(1100)는 어드레스 신호(ADDR) 및 커맨드 신호(CMD)에 기초하여, 사용자 데이터(DATA)를 메모리 셀 어레이(1110)의 사용자 블록들(User BLKs)에 저장한다.
메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 특수 데이터(SDATA)를 수신한다. 여기서, 특수 데이터(SDATA)는 한번 메모리 장치(1100)에 저장되면 변경할 수 없는 종류의 데이터일 수 있다. 예를 들어, 특수 데이터(SDATA)는 메모리 장치(1100)와 관련된 보안 데이터, 메모리 장치(1100)의 테스트 결과에 따른 특성 데이터 및/또는 메모리 장치(1100)의 제품 스펙에 대한 데이터일 수 있다. 다만, 이에 한정되는 것은 아니며, 특수 데이터(SDATA)는 메모리 장치(1100)의 동작에 필요한 설정 데이터일 수도 있다.
메모리 장치(1100)는 복수의 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 사용자 블록(User BLK i)을 선택하고, 선택된 사용자 블록(User BLK i)을 OTP 블록(One Time Programmable Block)으로 할당한다. 메모리 장치(1100)는 특수 데이터(SDATA)를 OTP 블록으로 할당된 사용자 블록에 저장한다.
메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 OTP 커맨드 신호(OTP_CMD)를 수신한다. 여기서, OTP 커맨드 신호(OTP_CMD)는 읽기 요청 시에 OTP 블록에 접근하기 위한 활성화 옵션(Enable Option)으로 기능할 수 있다. 즉, 메모리 장치(1100)는 OTP 커맨드 신호(OTP_CMD)가 수신된 경우에만 OTP 블록에 접근하여 읽기 동작을 수행할 수 있다.
OTP 블록에 접근하기 위한 활성화 옵션 정보 및 해당 OTP 블록의 어드레스 정보는 어드레스 레지스터(1160)에 저장된다. 예를 들어, 어드레스 레지스터(1160)은 OTP 맵핑 테이블(OTP Mapping Table)을 저장할 수 있으며, OTP 맵핑 테이블에는 활성화 옵션(Enable Option) 및 메모리 어드레스(MA)가 포함될 수 있다.
계속해서 도 1을 참조하면, 메모리 컨트롤러(1200)는 배드 블록 매니저(1210)를 포함한다. 배드 블록 매니저(1210)는 OTP 블록으로 할당된 사용자 블록을 배드 블록으로 별도로 관리한다. 이를 위하여, 배드 블록 매니저(1210)는 메모리 장치(1100)로부터 OTP 블록으로 할당된 사용자 블록에 대한 정보를 수신하며, 해당 정보를 이용하여 배드 블록 테이블(Bad Block Table)을 구성한다.
호스트로부터 OTP 블록으로 지정된 사용자 블록에 대한 접근 요청이 있는 경우, 메모리 컨트롤러(1200)는 배드 블록 매니저(1210)의 배드 블록 테이블을 참조하여 동작할 수 있다.
예를 들어, OTP 블록으로 할당된 사용자 블록에 대한 소거 또는 프로그램 요청이 호스토로부터 수신되거나, 활성화 옵션을 만족하지 않는 읽기 요청이 호스트로부터 수신된 경우, 메모리 컨트롤러(1200)는 배드 블록 매니저(1210)의 배드 블록 테이블을 참조하여 해당 블록은 배드 블록임을 호스트에 회신할 수 있다.
다른 예로, 활성화 옵션을 만족하는 읽기 요청이 호스트로부터 수신된 경우, 메모리 컨트롤러(1200)는 배드 블록 매니저(1210)의 배드 블록 테이블을 참조하여 해당 블록은 OTP 블록이라고 판단하고, OTP 커맨드 신호(OTP_CMD)를 메모리 장치(100)에 전송할 수 있다. 이 경우, 메모리 장치(1100)는 OTP 커맨드 신호(OTP_CMD)에 대응하는 OTP 블록에 접근하여, 해당 OTP 블록에 저장된 특수 데이터(SDATA)에 대한 읽기 동작을 수행할 수 있다.
이상에서 설명된 바와 같이, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 사용자 블록을 OTP 블록으로 할당하기 때문에, OTP 블록의 페일에 대비한 OTP 리던던시 블록을 구비할 필요가 없다. 따라서, 데이터 저장 공간이 효율적으로 사용될 수 있다. 아울러, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 활성화 옵션을 만족하는 읽기 요청을 제외하고는 OTP 블록으로 접근을 차단한다. 따라서, OTP 블록에 저장된 데이터가 안정적으로 보호될 수 있다.
도 2는 도 1의 메모리 장치(1100)의 일 예를 보여주는 블록도이다. 도 2를 참조하면, 메모리 장치(1100)는 메모리 셀 어레이(1110)와 주변 회로(1120)를 포함하며, 주변 회로(1120)는 어드레스 디코더(1125), 페이지 버퍼 회로(1130), 데이터 입출력 회로(1140), 컨트롤 로직(1150), 어드레스 레지스터(1160) 및 퓨즈 블록(1170)을 포함한다.
메모리 셀 어레이(1110)는 복수의 메모리 블록들을 포함한다. 각각의 메모리 블록은 2차원 구조 또는 3차원 구조를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조 (또는 수직 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다.
메모리 셀 어레이(1110)는 사용자 영역과 리던던시 영역으로 구분될 수 있다. 사용자 영역은 사용자에 의하여 프로그램 요청된 데이터를 저장하기 위하여 할당된 영역이다. 따라서, 사용자 영역에 포함된 메모리 블록들은 사용자 블록으로 지칭될 수 있다. 리던던시 영역은 페일(fail)이 발생한 사용자 블록을 대체하기 위하여 할당된 영역이다. 따라서, 리던던시 영역에 포함된 메모리 블록들은 리던던시 블록으로 지칭될 수 있다.
본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 고정된 위치에 할당된 OTP 영역을 구비하지 않는다. 즉, 메모리 셀 어레이(1110)는 OTP 블록 및 OTP 리던던시 블록을 고정된 위치에 할당하지 않는다. 고정된 위치에 할당된 OTP 영역을 구비하지 않는 대신, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 사용자 영역으로 할당된 메모리 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록을 OTP 블록으로 할당한다. 이에 따라, 본 발명의 실시 예에 따른 OTP 블록은 사용자 영역에서 랜덤(random)하게 배치될 수 있다.
어드레스 디코더(1125)는 선택 라인(SSL, GSL) 또는 워드 라인(WLs)을 통해 메모리 셀 어레이(1110)와 연결된다. 어드레스 디코더(1125)는 메모리 어드레스(MA)에 응답하여 복수의 메모리 블록들 중 어느 하나를 선택할 수 있다. 또한, 어드레스 디코더(1125)는 선택된 워드 라인들(WLs) 중 어느 하나를 선택할 수 있다.
페이지 버퍼 회로(1130)는 비트 라인(BLs)을 통해 메모리 셀 어레이(1110)와 연결된다. 페이지 버퍼 회로(1130)는 선택된 페이지에 프로그램될 데이터나 선택된 페이지로부터 읽은 데이터를 임시로 저장할 수 있다.
입출력 회로(1140)는 내부적으로는 데이터 라인들(DLs)을 통해 페이지 버퍼 회로(1130)와 연결되고, 외부적으로는 입출력 라인을 통해 메모리 컨트롤러(도 1 참조, 1200)와 연결될 수 있다. 입출력 회로(1140)는 프로그램 동작 시 메모리 컨트롤러(1200)로부터 메모리 셀 어레이(1110)의 선택된 메모리 셀에 프로그램 될 데이터를 입력받고, 읽기 동작 시 선택된 메모리 셀로부터 독출된 데이터를 메모리 컨트롤러(1200)로 제공할 수 있다.
컨트롤 로직(1150)은 메모리 컨트롤러(1200)로부터 제공되는 커맨드(CMD) 및 어드레스(ADDR)에 응답하여, 메모리 장치(1100)의 전반적인 동작을 제어한다. 컨트롤 로직(1150)은 어드레스 레지스터(1160)를 포함할 수 있다.
어드레스 레지스터(1160)는 OTP 블록에 접근하기 위한 활성화 옵션 정보 및 해당 OTP 블록의 어드레스 정보를 저장한다. 어드레스 레지스터(1160)는 OTP 맵핑 테이블(OTP Mapping Table)을 포함하며, OTP 맵핑 테이블에는 활성화 옵션(Enable Option) 및 메모리 어드레스(MA)에 대한 정보가 저장될 수 있다.
예를 들어, OTP 커맨드 신호(OTP_CMD)가 활성화 옵션을 만족하는 커맨드 신호라고 가정하자. 어드레스 레지스터(1160)가 OTP 커맨드 신호(OTP_CMD)를 수신하면, 어드레스 레지스터(1160)는 OTP 맵핑 테이블에 기초하여 OTP 블록에 대응하는 메모리 어드레스(MA)를 출력한다. 해당 메모리 어드레스(MA)는 어드레스 디코더(1125)에 제공되며, 이에 따라 메모리 셀 어레이(1110)의 OTP 블록이 선택될 수 있다. 이후, 해당 OTP 블록에 저장된 특수 데이터에 대한 읽기 동작이 수행될 수 있다.
퓨즈 블록(1170)은 페이지 버퍼 회로(1130)에 연결된다. 퓨즈 블록(1170)은, 예를 들어, E-Fuse(Electrical Fuse) 방식으로 메모리 셀 어레이(OTP)의 OTP 블록에 저장된 데이터를 처리하는데 사용될 수 있다. 이를 위해, 퓨즈 블록(1170)은 적어도 하나의 래치 및 적어도 하나의 스위치를 포함할 수 있다.
예를 들어, OTP 블록에 저장된 특수 데이터에 대한 읽기 동작의 수행 시, OTP 블록에 저장된 데이터는 페이지 버퍼 회로(1130)를 통하여 퓨즈 블록(1170)의 래치에 저장될 수 있다. 이후, 퓨즈 블록(1170)의 스위치들 중 해당하는 스위치의 온/오프 제어를 통해서 래치에 저장된 특수 데이터가 외부로 전송될 수 있다.
도 3은 도 2의 메모리 셀 어레이(1110)을 좀 더 자세히 설명하기 위한 도면들이다. 구체적으로, 도 3a는 일반적인 메모리 셀 어레이(110)를 보여주는 도면이고, 도 3b는 도 2의 메모리 셀 어레이(1110)의 일 예를 보여주는 도면이다. 설명의 편의상, 메모리 셀 어레이 각각은 하나의 메모리 블록을 OTP 블록으로 할당한다고 가정된다.
도 3a를 참조하면, 일반적인 메모리 셀 어레이(110)는 사용자 영역(User Area), 리던던시 영역(Redundancy Area) 및 OTP 영역(OTP Area)를 포함한다. 사용자 영역은 복수의 사용자 블록들(User BLK 1~User BLK n)을 포함하고, 리던던시 블록은 복수의 리던던시 블록들(Redundancy BLK 1~Redundancy BLK m)하며, OTP 영역은 OTP 블록(OTP BLK)과 OTP 리던던시 블록(OTP Redundancy BLK)을 포함한다.
도 3a에 도시된 바와 같이, 일반적인 메모리 장치는 메모리 셀 어레이(110)의 특정 위치의 영역을 OTP 영역으로 할당한다. 즉, 메모리 셀 어레이(110)의 특정 영역에 위치하는 메모리 블록들이 OTP 블록 및 OTP 리던던시 블록으로 할당되며, 이에 따라 OTP 블록 및 OTP 리던던시 블록의 위치는 메모리 셀 어레이(110)의 특정 위치로 고정되게 된다.
일반적인 메모리 장치에 있어서, 만약 OTP 블록 및 이를 대체하기 위한 OTP 리던던시 블록이 모두 페일(fail)이라면, 해당 메모리 장치는 칩 페일(chip fail)로 판단되고, 폐기된다. 일반적으로 OTP 블록 및 OPT 리던던시 블록으로 할당되는 메모리 블록들의 개수가 많지 않음을 고려할 때에, 이는 반도체 수율(yield) 하락의 큰 요인이 된다.
도 3b를 참조하면, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 사용자 영역(User Area) 및 리던던시 영역(Redundancy Area)을 구비할 뿐, 고정된 위치에 할당된 OTP 영역을 별도로 구비하지 않는다. 고정된 위치에 할당된 OTP 영역을 구비하지 않는 대신, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 사용자 영역으로 할당된 메모리 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록들 중 임의의 블록을 OTP 블록으로 할당한다. 이에 따라, OTP 블록은 사용자 영역에서 랜덤(random)하게 위치할 수 있다.
또한, 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 사용자 블록들 중에서 OTP 블록을 할당하였기 때문에, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 제품 테스트 시에 OTP 블록 페일이 발생할 가능성이 현저히 낮다. 아울러, 제품 테스트 시에 OTP 블록 페일로 판단되거나 제품 사용 중에 OTP 블록 페일이 발생할 가능성이 있는 경우, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록을 OTP 블록으로 다시 할당할 수 있다. 따라서, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 일반적인 메모리 셀 어레이와 달리 OTP 리던던시 블록을 구비할 필요가 없다. 결과적으로 메모리 셀 어레이(1110)의 저장 공간이 효율적으로 사용될 수 있음은 물론 반도체 수율도 향상될 수 있다.
도 4는 도 2의 컨트롤 로직(1150)의 일 예를 보여주는 블록도이다.
도 4를 참조하면, 컨트롤 로직(1150)은 제어 회로(1151), 커맨드 레지스터(1152) 및 어드레스 레지스터(1160)를 포함한다.
제어 회로(1151)는 컨트롤 로직(1150)의 전반적인 동작을 제어한다. 제어 회로(1151)는 메모리 컨트롤러(1120, 도 1 참조)로부터 OTP 커맨드 신호(OTP_CMD) 및 어드레스(ADDR)를 수신한다. 제어 회로(1151)는 OTP 커맨드 신호(OTP_CMD)를 커맨드 레지스터(1152)에 전송하고, 어드레스(ADDR)를 어드레스 레지스터(1160)에 전송한다.
커맨드 레지스터(1152)는 OTP 커맨드 신호(OTP_CMD) 신호를 수신하고, 이를 저장한다. 커맨드 레지스터(1152)는 OTP 커맨드 신호(OTP_CMD)를 어드레스 레지스터(1160)에 전송한다.
어드레스 레지스터(1160)는 OTP 맵핑 스토리지(1161), 사용자 블록 어드레스 디코더(1162) 및 블록 어드레스 리맵퍼(1163)을 포함한다.
OTP 맵핑 스토리지(1161)는 OTP 블록에 접근하기 위한 활성화 옵션 정보인 OTP 커맨드 신호(OTP_CMD)를 저장하고, 해당 OTP 커맨드 신호(OTP_CMD)에 대응하는 OTP 블록의 어드레스인 메모리 어드레스(MA)를 저장한다. OTP 맵핑 스토리지(1161)는 OTP 커맨드 신호(OTP_CMD) 및 메모리 어드레스(MA)를 이용하여 OTP 맵핑 테이블을 구성한다.
사용자 블록 어드레스 디코더(1162)는 어드레스(ADDR)를 사용자 블록에 대응하는 메모리 어드레스(MA)로 디코딩한다. 예를 들어, 프로그램 동작, 읽기 동작 또는 소거 동작의 요청이 있는 경우, 사용자 블록 어드레스 디코더(162)는 어드레스(ADDR)를 수신하고, 이를 디코딩하여 사용자 블록에 대응하는 메모리 어드레스(MA)를 출력할 수 있다. 사용자 블록 어드레스 디코더(1162)는 사용자 블록에 메모리 어드레스(MA)를 블록 어드레스 리맵퍼(1163)에 전송한다.
블록 어드레스 리맵퍼(1163)는 커맨드 레지스터(1152)로부터 OTP 커맨드 신호(OTP_CMD) 신호를 수신하고, 사용자 블록 어드레스 디코더(1162)로부터 사용자 블록에 대응하는 메모리 어드레스(MA)를 수신한다. 블록 어드레스 리맵퍼(1163)는 활성화 옵션인 OTP 커맨드 신호(OTP_CMD) 신호의 수신 여부에 따라, 사용자 블록에 대응하는 메모리 어드레스(MA)를 출력하거나, OTP 블록에 대응하는 메모리 어드레스(MA)를 출력할 수 있다.
예를 들어, OTP 커맨드 신호(OTP_CMD)가 수신되면, 블록 어드레스 리맵퍼(1163)는 OTP 맵핑 테이블을 참조할 수 있다. OTP 커맨드 신호(OTP_CMD)가 OTP 맵핑 테이블에서 관리되는 신호와 일치하면, 블록 어드레스 리맵퍼(1163)는 해당 OTP 커맨드 신호(OTP_CMD)에 대응하는 OTP 블록의 메모리 어드레스(MA)를 출력할 수 있다.
예를 들어, OTP 커맨드 신호(OTP_CMD)가 수신되지 않은 상태에서는, 블록 어드레스 리맵퍼(163)는 OTP 맵핑 테이블을 참조하지 않는다. 이 경우, 블록 어드레스 리맵퍼(163)는 사용자 블록 어드레스 디코더(1162)로부터 수신된 사용자 블록에 대응하는 메모리 어드레스(MA)를 출력할 수 있다.
한편, OTP 맵핑 스토리지(1161)의 OTP 맵핑 테이블에서 관리되는 정보는 메모리 컨트롤러(1200, 도 1 참조)에 제공될 수 있다. 메모리 컨트롤러(1200)의 배드 블록 매니저(1210, 도1 참조)는 OTP 블록으로 할당된 사용자 블록에 대한 활성화 옵션 정보 및 메모리 어드레스 정보를 이용하여, 배드 블록 테이블을 구성할 수 있다. 이에 따라, OTP 블록으로 할당된 사용자 블록이 배드 블록으로 별도로 관리될 수 있다.
이상에서 설명된 바와 같이, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 복수의 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록을 선택하여 OTP 블록으로 할당한다. 이에 따라, 데이터 저장 장치(1000A)는 OTP 블록의 페일(fail)에 대비한 OTP 리던던시 블록을 구비할 필요가 없어, 데이터 저장 공간을 효율적으로 사용할 수 있다. 아울러, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)는 활성화 옵션을 만족하는 읽기 요청을 제외하고는 OTP 블록으로 할당된 사용자 블록에 대한 접근을 차단할 수 있으며, 이에 따라 OTP 블록에 저장된 데이터가 안정적으로 보호될 수 있다.
이하에서는, 본 발명의 실시 예에 따른 데이터 저장 장치(1000A)의 OTP 블록 할당 동작, 소거 및 프로그램 요청 시의 처리 동작, 그리고 읽기 요청 시의 처리 동작이 좀 더 자세히 설명될 것이다.
[OPT 블록의 할당]
도 5는 도 1의 데이터 저장 장치의 OTP 블록 할당 동작의 일 예를 보여주는 순서도이다.
S110 단계에서, 메모리 셀 어레이(1110)의 사용자 블록들에 대한 테스트 동작이 수행된다.
S120 단계에서, 메모리 셀 어레이(1110)의 사용자 블록들 중 결함이 없는 블록이 있는지 판단된다.
만약 사용자 블록들 모두에 결함이 있다면, 해당 메모리 장치(1100)는 칩 페일로 판단된다(S130 단계). 이 경우, 해당 메모리 장치(1100)는 불량품으로 간주될 수 있다.
만약 사용자 블록들 중 결함이 없는 블록이 존재한다면, 결함이 없는 블록들 중 임의의 블록이 선택되고, 선택된 블록이 OTP블록으로 할당된다(S140 단계).
S150 단계에서, OTP 블록으로 할당된 블록에 특수 데이터가 저장된다. 일 실시 예에 있어서, 특수 데이터는 E-fuse 형태로 OTP 블록에 저장될 수 있다.
S155 단계에서, OTP 블록에 저장된 특수 데이터가 에러 없이 정확하게 기입되었는지를 확인하는 검증 읽기 동작이 수행된다.
만약 OTP 블록에 특수 데이터가 정확하게 기입되지 않았다면, 결함이 없는 다른 사용자 블록이 있는지를 판단하는 S120 단계가 다시 수행될 수 있다.
만약 OTP 블록에 특수 데이터가 정확하게 기입되었다면, 해당 OTP 블록에 대응하는 활성화 옵션 정보 및 메모리 어드레스 정보를 이용하여 OTP 맵핑 테이블이 생성된다(S160 단계). 생성된 OTP 맵핑 테이블은 어드레스 레지스터(1160)에 저장될 수 있다.
이후, OTP 블록에 대응하는 활성화 옵션 정보 메모리 어드레스 정보가 메모리 컨트롤러(1200)로 전송되고, 메모리 컨트롤러(1200)는 배드 블록 테이블을 업데이트한다(S170 단계). 즉, 메모리 컨트롤러(1200)는 OTP 블록을 다른 일반적인 배드 블록들과 함께 배드 블록으로 간주하여 관리할 수 있다.
한편, 도 5 에서는, 결함이 없는 사용자 블록이 OTP 블록으로 할당되는 것으로 설명되었다. 다만, 이는 예시적인 것이며, 에러 비트의 개수가 기준 개수 이하인 사용자 블록이 OTP 블록으로 할당될 수도 있다.
도 6은 본 발명의 실시 예에 따른 OTP 맵핑 테이블의 일 예를 보여주는 도면이다. 설명의 편의상, 도 6에서는, 메모리 셀 어레이(1110)가 제1 내지 제3 매트(MAT1~MAT3)를 포함하며, 각 매트 당 하나의 사용자 블록이 OTP 블록으로 할당된다고 가정된다.
도 6을 참조하면, 제1 매트(MAT1)에서는 제i 사용자 블록(User BLK i)이 결함이 없는 블록으로 판단되어 OTP 블록으로 할당된다. 제2 매트(MAT)에서는 제j 사용자 블록(User BLK j)이 결함이 없는 블록으로 판단되어 OTP 블록으로 할당된다. 제3 매트(MAT3)에서는 제k 사용자 블록(User BLK k)이 결함이 없는 블록으로 판단되어 OTP 블록으로 할당된다. 결함이 없는 사용자 블록들 중에서 OTP 블록을 임의로 할당하기 때문에, 도 6에 도시된 바와 같이 OTP 블록들은 메모리 셀 어레이(1110)에서 랜덤하게 위치할 수 있다.
OTP 블록으로 할당된 블록의 메모리 어드레스 정보 및 해당 OTP 블록으로 접근하기 위한 활성화 옵션 정보는 어드레스 레지스터(1160)에 맵핑 테이블 형태로 저장된다.
예를 들어, 제i 사용자 블록(User BLK i)에 대응하는 OTP 블록에는 특수 데이터 중 보안 데이터가 저장되고, 제j 사용자 블록(User BLK j)에 대응하는 OTP 블록에는 특수 데이터 중 테스트 결과에 따른 특성 데이터가 저장되며, 제k 사용자 블록(User BLK k)에 대응하는 OTP 블록에는 특수 데이터 중 제품 스펙 데이터가 저장된다고 가정된다.
또한, 제i 사용자 블록(User BLK i)에 대응하는 OTP 블록에 접근하기 위한 활성화 옵션은 보안 OTP 커맨드 신호(OTP_CMD_SEC)이고, 제j 사용자 블록(User BLK j)에 대응하는 OTP 블록에 접근하기 위한 활성화 옵션은 테스트 OTP 커맨드 신호(OTP_CMD_TEST)이며, 제k 사용자 블록(User BLK k)에 대응하는 OTP 블록에 접근하기 위한 활성화 옵션은 스펙 OTP 커맨드 신호(OTP_CMD_SPEC)라고 가정된다.
이 경우, 어드레스 레지스터(1160)는 도 6에 도시된 바와 같이 활성화 옵션으로 OTP 커맨드 신호들(OTP_CMD_SEC, OTP_CMD_TEST, OTP_CMD_SPEC)을 포함하고, 각 OTP 커맨드 신호에 대응하는 메모리 어드레스들(User BLK i, USER BLK j, User BLK k)을 포함하도록 OTP 맵핑 테이블을 구성할 수 있다.
도 7은 본 발명의 실시 예에 따른 배드 블록 테이블의 일 예를 보여주는 도면이다. 설명의 편의상, 도 7에서는 도 6과 같이 OTP 블록들이 할당된다고 가정된다.
도 7을 참조하면, 배드 블록 매니저(1210)는 OTP 블록들로 할당된 블록들에 대한 활성화 옵션 정보 및 메모리 어드레스 정보를 수신하고, 수신된 정보를 이용하여 배드 블록 테이블을 구성할 수 있다.
예를 들어, 활성화 옵션이 보안 OTP 커맨드 신호(OTP_CMD_SEC)인 OTP 블록의 논리 어드레스(LA)는 '0000'이고, 활성화 옵션이 테스트 OTP 커맨드 신호(OTP_CMD_TEST)인 OTP 블록의 논리 어드레스(LA)는 '0001'이며, 활성화 옵션이 스펙 OTP 커맨드 신호(OTP_CMD_SPEC)인 OTP 블록의 논리 어드레스(LA)는 '0002'라고 가정된다.
이 경우, 배드 블록 매니저(1210)는 도 7에 도시된 바와 같이, 각 활성화 옵션 및 이에 대응하는 논리 어드레스(LA) 및 물리 어드레스(PA)를 포함하도록 배드 블록 테이블을 구성할 수 있다.
또한, 배드 블록 매니저(1210)는 OTP 블록으로 할당된 블록들 이외에, 일반적인 배드 블록을 함께 관리할 수 있다. 여기서, 일반적인 배드 블록은, 예를 들어, 에러 비트의 개수가 기준 개수를 초과하는 블록일 수 있다. 예를 들어, 논리 어드레스(LA)가 '0010' 및 '0032'인 블록이 일반적인 배드 블록이라고 가정된다. 이 경우, 도 7에 도시된 바와 같이, 배드 블록 매니저(1210)는 일반적인 배드 블록의 논리 어드레스(LA) 및 물리 어드레스(PA)에 대한 정보를 배드 블록 테이블에 저장하며, 활성화 옵션에 대한 정보는 별도로 저장되지 않는다. 따라서, 배드 블록 매니저(1210)는 배드 블록 테이블을 통하여 일반적인 배드 블록과 OTP 블록으로 할당된 블록을 구분할 수 있다.
한편, 도 7에서, 배드 블록 테이블에는 물리 어드레스(PA)를 저장하는 것으로 설명되었다. 다만, 이는 예시적인 것이며, 배드 블록 테이블에는 논리 어드레스(LA) 및 활성화 옵션에 대한 정보만을 저장할 수도 있다.
또한, 도 7에서, 메모리 블록에 대응하는 물리 어드레스(PA)는 도 4의 유저 블록 어드레스 디코더(1162)가 수신하는 어드레스(ADDR)일 수 있다. 다만, 이는 예시적인 것이며, 물리 어드레스(PA)는 유저 블록 어드레스 디코더(1150)에 의하여 디코딩된 메모리 어드레스(MA)와 동일하도록 구현될 수도 있다.
[OTP 블록에 대한 소거 또는 프로그램 요청]
도 8은 호스트로부터 소거 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
S210 단계에서, 데이터 저장 장치(1000A)는 호스트로부터 소거 요청을 수신한다.
S215 단계에서, 메모리 컨트롤러(1200)는 배드 블록 테이블을 참조하여 소거 요청된 블록이 배드 블록인지 여부를 확인한다. 예를 들어, 메모리 컨트롤러(1200)는 소거 요청된 블록의 논리 어드레스(LA)를 확인함으로써, 소거 요청된 블록이 배드 블록 테이블에 존재하는지 여부를 확인할 수 있다.
만약 소거 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재한다면, 메모리 컨트롤러(1200)는 해당 블록은 배드 블록으로 판단한다(S220 단계). 특히, 본 발명의 실시 예에 따른 OTP 블록은 배드 블록 테이블에 존재하기 때문에, 메모리 컨트롤러(1200)는 OTP 블록을 배드 블록으로 판단하게 된다. 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 소거 요청 신호를 전송하지 않으며, 호스트에 해당 블록은 배드 블록임을 회신할 수 있다(S230 단계).
만약 소거 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재하지 않는다면, 메모리 컨트롤러(1200)는 해당 블록은 일반 블록으로 판단한다(S240 단계). 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 소거 요청 신호를 전송하고, 이에 따라 해당 블록에 대한 소거 동작이 수행될 수 있다(S250 단계).
이상에서 설명된 바와 같이, OTP 블록에 대한 소거 요청이 있는 경우, 메모리 컨트롤러(1200)는 해당 블록은 배드 블록이라고 판단하고, 이를 호스트에 회신할 수 있다. 따라서, OTP 블록에 대한 접근이 차단되어, OTP 블록에 저장된 특수 데이터가 안정적으로 보호될 수 있다.
도 9는 호스트로부터 프로그램 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다.
S310 단계에서, 데이터 저장 장치(1000A)는 호스트로부터 프로그램 요청을 수신한다.
S315 단계에서, 메모리 컨트롤러(1200)는 배드 블록 테이블을 참조하여 프로그램 요청된 블록이 배드 블록인지 여부를 확인한다.
만약 프로그램 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재한다면, 메모리 컨트롤러(1200)는 해당 블록을 배드 블록으로 판단한다(S320 단계). 특히, 본 발명의 실시 예에 따르면, OTP 블록이 배드 블록 테이블에서 관리되기 때문에, 메모리 컨트롤러(1200)는 OTP 블록을 배드 블록으로 판단하게 된다.
이 경우, 메모리 컨트롤러(1200)는 배드 블록을 일반 블록으로 교체한다(S330 단계). 예를 들어, 메모리 컨트롤러(1200)는 플래시 변환 계층(FTL)에서 관리되는 맵핑 테이블에 기초하여, 프로그램 요청된 논리 어드레스(LA)를 사용자 블록의 물리 어드레스(PA)로 재-맵핑 할 수 있다. 이후, 재-맵핑된 사용자 블록에 대하여 프로그램 동작이 수행된다(S340 단계).
만약 프로그램 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재하지 않는다면, 메모리 컨트롤러(1200)는 해당 블록은 일반 블록으로 판단한다(S350 단계). 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 프로그램 요청 신호를 전송하고, 이에 따라 해당 블록에 대한 프로그램 동작이 수행될 수 있다(S360 단계).
이상에서 설명된 바와 같이, OTP 블록에 대한 프로그램 요청이 있는 경우, 메모리 컨트롤러(1200)는 해당 블록은 배드 블록이라고 판단하고, 다른 사용자 블록에 프로그램 동작이 수행되도록 어드레스를 재-맵핑 한다. 따라서, OTP 블록에 대한 접근이 차단되어, OTP 블록에 저장된 특수 데이터가 안정적으로 보호될 수 있다.
[OTP 블록에 대한 읽기 요청]
도 10은 호스트로부터 읽기 요청이 있을 시의 도 1의 데이터 저장 장치의 동작의 일 예를 보여주는 순서도이다. 설명의 편의상, OTP 맵핑 테이블 및 배드 블록 테이블은 도 6 및 도 7과 같이 구성된다고 가정된다.
S410 단계에서, 데이터 저장 장치(1000A)는 호스트로부터 읽기 요청을 수신한다.
S415 단계에서, 메모리 컨트롤러(1200)는 배드 블록 테이블을 참조하여 읽기 요청된 블록이 배드 블록인지 여부를 확인한다. 예를 들어, 메모리 컨트롤러(1200)는 읽기 요청된 블록의 논리 어드레스(LA)를 확인함으로써, 읽기 요청된 블록이 배드 블록 테이블에 존재하는지 여부를 확인할 수 있다.
만약 읽기 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재하지 않는다면, 메모리 컨트롤러(1200)는 해당 블록은 일반 블록으로 판단한다(S420 단계). 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 읽기 요청 신호를 전송하고, 이에 따라 해당 블록에 대한 읽기 동작이 수행될 수 있다(S430 단계).
만약 읽기 요청된 블록의 논리 어드레스(LA)가 배드 블록 테이블에 존재한다면, 메모리 컨트롤러(1200)는 배드 블록 테이블의 활성화 옵션과 일치하는 커맨드가 수신되었는지 확인한다(S435 단계). 예를 들어, 도 7에 도시된 바와 같이, 활성화 옵션은 보안 OTP 커맨드 신호(OTP_CMD_SEC), 테스트 OTP 커맨드 신호(OTP_CMD_TEST) 또는 스펙 OTP 커맨드 신호(OTP_CMD_SPEC)일 수 있다.
만약 활성화 옵션과 일치하는 커맨드 신호가 수신되지 않았다면, 메모리 컨트롤러(1200)는 해당 블록을 일반 배드 블록으로 판단한다(S440 단계). 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 읽기 요청 신호를 전송하지 않으며, 호스트에 해당 블록은 배드 블록임을 회신할 수 있다(S450 단계).
만약 활성화 옵션과 일치하는 커맨드 신호가 수신되었다면, 메모리 컨트롤러(1200)는 해당 블록을 OTP 블록으로 판단한다(S460 단계). 이 경우, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 활성화 옵션과 일치하는 OTP 커맨드 신호를 전송한다(S470 단계). 메모리 장치(1100)는 OTP 맵핑 테이블을 참조하여 해당 OTP 커맨드 신호에 대응하는 OTP 블록의 메모리 어드레스를 확인하고, OTP 블록에 접근한다(S480 단계). 이후, OTP 블록에 저장된 특수 데이터에 대한 읽기 동작이 수행된다(S490 단계).
이상에서 설명된 바와 같이, 읽기 요청이 있는 경우, 메모리 컨트롤러(1200)는 일반 블록에 대한 읽기 요청인지 또는 배드 블록에 대한 읽기 요청인지 확인한다. 배드 블록에 대한 읽기 요청인 경우, 메모리 컨트롤러(1200)는 일반 배드 블록에 대한 읽기 요청인지 또는 OTP 블록에 대한 읽기 요청인지 다시 확인하고, OTP 블록에 대한 읽기 요청인 경우에만, OTP 커맨드 신호를 메모리 장치(1100)에 전송한다. 따라서, 활성화 옵션을 만족하는 읽기 요청이 수신된 경우에만 OTP 블록으로의 접근이 허용되어, OTP 블록에 저장된 특수 데이터가 안정적으로 보호될 수 있다.
도 11은 본 발명의 실시 예에 따른 OTP 블록에 대한 읽기 동작의 일 예를 보여주는 도면이다.
설명의 편의상, 도 6과 같이 도 11의 메모리 셀 어레이(1110)는 제1 내지 제3 매트(MAT1~MAT3)를 포함하며, 제1 내지 제3 매트(MAT1~MAT3)에는 하나의 OTP 블록이 할당된다고 가정된다. 제1 내지 제3 매트(MAT1~MAT3)의 OTP 블록에는 제1 내지 제3 특수데이터들(SDATA1~SDATA3)이 각각 저장되며, 제1 특수 데이터(SDATA1)는 보안 데이터이고, 제2 특수 데이터(SDATA2)는 테스트 결과에 따른 특성 데이터이며, 제3 특수 데이터(SDATA3)는 제품 스펙 데이터라고 가정된다.
특수 데이터들(SDATA1~SDATA3)은 E-Fuse 방식으로 OTP 블록에 저장될 수 있다. E-Fuse 방식으로 저장된 특수 데이터들(SDATA1~SDATA3)은 읽기 동작 시에 퓨즈 블록(1170)을 통하여 외부로 독출될 수 있다. 이를 위하여, 도 11을 참조하면, 퓨즈 블록(1170)은 래치 회로(1171) 및 스위치 회로(1172)를 포함할 수 있다.
래치 회로(1171)는 페이지 버퍼 회로(1130)를 통하여 메모리 셀 어레이(1110)에 연결된다. OTP 블록에 대한 읽기 동작 시에, 래치 회로(1171)는 각 매트에 저장된 특수 데이터들(SDATA1~SDATA3)을 대응하는 페이지 버퍼들(Page Buffer1~Page Buffer3)을 통하여 수신하고, 이를 저장한다.
스위치 회로(1172)는 특수 데이터들(SDATA1~SDATA3) 각각에 대응하는 스위치들(Switch1~Switch3)을 포함하며, 각 스위치는 대응하는 활성화 옵션에 응답하여 턴-온 된다.
예를 들어, 제1 스위치(Switch1)는 읽기 동작 시에 어드레스 레지스터(1160, 도 6 참조)로부터 보안 OTP 커맨드(OTP_CMD_SEC)를 수신하며, 이에 응답하여 래치 회로(1171)에 저장된 제1 특수 데이터(SDATA1)를 외부로 독출할 수 있다. 이와 유사하게, 제2 및 제3 스위치(Switch2, Switch3)는 읽기 동작 시에 어드레스 레지스터(1160)로부터 테스트 OTP 커맨드(OTP_CMD_TEST) 및 스펙 OTP 커맨드(OTP_CMD_SPEC)를 각각 수신하며, 이에 응답하여 래치 회로(1171)에 저장된 제2 및 제3 특수 데이터(SDATA2, SDATA3)를 외부로 독출할 수 있다.
이상에서 설명된 바와 같이, OTP 블록에 저장된 특수 데이터는 E-Fuse 방식으로 저장될 수 있다. 그리고, 특수 데이터는 활성화 옵션을 만족하는 커맨드 신호가 수신된 경우에만 퓨즈 블록(1170)을 통하여 외부로 독출될 수 있다. 이에 따라, OTP 블록에 저장된 특수 데이터가 더욱 안정적으로 보호될 수 있다.
한편, 상술한 설명은 본 발명을 실시하기 위한 구체적인 실시 예이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 이하에서는, 본 발명의 기술적 사상에 따른 다양한 변형 예들 및 적용 예들이 설명될 것이다.
[특수 데이터를 통합하여 저장하는 OTP 블록]
도 12는 본 발명의 일 실시 예에 따른 메모리 셀 어레이를 설명하기 위한 도면들이다. 구체적으로, 도 12a는 일반적인 메모리 셀 어레이(110)를 보여주는 도면이고, 도 12b는 본 발명의 일 실시 예에 따른 메모리 셀 어레이(1110_1)를 보여주는 도면이다. 설명의 편의상, 제1 특수 데이터(SDATA1)는 보안 데이터이고, 제2 특수 데이터(SDATA2)는 테스트 결과에 따른 특성 데이터이며, 제3 특수 데이터(SDATA3)는 제품 스펙 데이터라고 가정된다. 도 12의 메모리 셀 어레이는 도 3의 메모리 셀 어레이와 유사하다. 따라서, 간략한 설명을 위하여, 중복되는 설명은 이하 생략될 것이다.
도 12a에 도시된 바와 같이, 일반적인 메모리 장치는 메모리 셀 어레이(110)의 서로 다른 OTP 블록들에 서로 다른 특수 데이터들을 분할하여 저장한다. 예를 들어, 제1 특수 데이터(SDATA1)는 제1 OTP 블록(OTP BLK1)에 저장되고, 제2 특수 데이터(SDATA2)는 제2 OTP 블록(OTP BLK2)에 저장되며, 제3 특수 데이터(SDATA3)는 제3 OTP 블록(OTP BLK3)에 저장될 수 있다.
일반적으로, 특수 데이터를 저장하기 위하여 필요한 저장 용량이 크지 않다는 점을 고려하면, 이와 같은 특수 데이터들을 서로 다른 블록에 분할하여 저장하는 방식은 데이터 저장 공간의 낭비를 초래한다. 특히, 3차원 구조를 갖는 메모리 블록의 경우에 데이터 저장 용량이 매우 크다는 점을 감안하면, 이는 매우 큰 데이터 저장 공간의 낭비일 수 있다.
도 12b를 참조하면, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110_1)는 적어도 하나의 OTP 블록에 특수 데이터들을 통합하여 저장한다. 구체적으로, 메모리 셀 어레이(1110_1)는 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록을 OTP 블록으로 할당하고, 해당 OTP 블록을 복수의 OTP 서브 블록들로 구분한다. 이 경우, 하나의 OTP 블록은 워드 라인 또는 스트링 선택 라인을 기준으로 복수의 OTP 서브 블록들로 구분될 수 있다.
예를 들어, 하나의 OTP 블록은 워드 라인을 기준으로 제1 내지 제3 서브 OTP 블록(OTP Sub BLK1~OTP Sub BLK3)으로 구분될 수 있다. 그리고, 제1 특수 데이터(SDATA1)는 제1 OTP 서브 블록(OTP Sub BLK1)에 저장되고, 제2 특수 데이터(SDATA2)는 제2 OTP 서브 블록(OTP Sub BLK2)에 저장되며, 제3 특수 데이터(SDATA3)는 제3 OTP 서브 블록(OTP Sub BLK3)에 저장될 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110_1)는 서로 다른 특수 데이터들을 적어도 하나의 OTP 블록에 통합하여 저장할 수 있다. 따라서, 일반적인 메모리 셀 어레이에 비하여 데이터 저장 공간이 효율적으로 사용될 수 있다.
아울러, 본 발명의 실시 예에 따른 메모리 셀 어레이(1110)는 일반적인 메모리 셀 어레이와 달리 OTP 리던던시 블록을 구비할 필요가 없다. 따라서, 메모리 셀 어레이(1110)의 저장 공간이 더욱 효율적으로 사용될 수 있다.
도 13은 도 12b의 메모리 셀 어레이(1110_1)의 OTP 블록의 일 예를 보여주는 도면이다. 예시적으로, 도 13에서는, 3차원 구조의 메모리 블록이 도시되어 있다.
도 13을 참조하면, 메모리 블록(BLKa)은 수직 구조를 갖는 복수의 낸드 스트링들(NS11~NS13, NS21~23, NS31~NS33)이 행렬로 배열된다. 각각의 낸드 스트링은 적어도 한 쌍의 스트링 선택 트랜지스터들(SST1, SST2), 복수의 메모리 셀들(MC1~MC5) 및 적어도 한 쌍의 접지 선택 트랜지스터들(GST1, GST2)을 포함한다. 여기서, 각각의 메모리 셀들(MC1~MC5)은 서로 다른 층들에 구현된다.
제 1 비트 라인(BL1)은 제 1 열에 배열된 낸드 스트링들(NS11, NS21, NS31)의 일측에 공통으로 연결되고, 제 2 비트 라인(BL2)은 제 2 열에 배열된 낸드 스트링들(NS12, NS22, NS23)의 일측에 공통으로 연결되고, 제 3 비트 라인(BL3)은 제 3 열에 배열된 낸드 스트링들(NS13, NS23, NS33)의 일측에 공통으로 연결된다.
공통 소스 라인(CSL)은 제 1 내지 제 3 비트 라인들(BL1, BL2, BL3) 반대편, 즉, 낸드 스트링들(NS11~NS13, NS21~23, NS31~NS33)의 타측에 공통으로 연결된다.
워드 라인들(WL0~WL5)은 같은 층에 배열된 메모리 셀들에 공통으로 연결된다.
제 1 스트링 선택 라인(SSL1)은 제 1 행에 배열된 낸드 스트링들(NS11, NS12, NS13)의 스트링 선택 트랜지스터들(SST1, SST2)에 공통으로 연결된다. 제 2 스트링 선택 라인(SSL2)은 제 2 행에 배열된 낸드 스트링들(NS21, NS22, NS23)의 스트링 선택 트랜지스터들(SST1, SST2)에 공통으로 연결된다. 제 3 스트링 선택 라인(SSL3)은 제3 행에 배열된 낸드 스트링들(NS31, NS32, NS33)의 스트링 선택 트랜지스터들(SST1, SST2)에 공통으로 연결된다.
제 1 접지 선택 라인(GSL1)은 제 1 행에 배열된 낸드 스트링들(NS11, NS12, NS13)의 접지 선택 트랜지스터들(GST1, GST2)에 공통으로 연결된다. 제 2 접지 선택 라인(GST2)은 제 2 행에 배열된 낸드 스트링들(NS21, NS22, NS23)의 접지 선택 트랜지스터들(GST1, GST2)에 공통으로 연결된다. 제 3 접지 선택 라인(GST3)은 제 3행에 배열된 낸드 스트링들(NS31, NS32, NS33)의 접지 선택 트랜지스터들(GST1, GST2)에 공통으로 연결된다.
메모리 블록(BLKa)의 낸드 스트링들(NS11~NS13, NS21~23, NS31~NS33)의 개수, 워드라인들(WL1~WL5)의 개수, 및 비트라인들(BL1~BL3)의 개수는 예시적으로 도시된 것이다. 그러나 본 발명의 메모리 블록(BLKa)의 낸드 스트링들의 개수 및 비트라인들의 개수는 반드시 여기에 국한되지 않는다.
본 발명의 실시 예에 있어서, 메모리 블록(BLKa)은 OTP 블록으로 할당될 수 있다. 그리고, OTP 블록으로 할당된 메모리 블록(BLKa)은 워드 라인(WL) 또는 스트링 선택 라인(SSL)을 기준으로 복수의 OTP 서브 블록들로 구분될 수 있다.
도 14a는 워드 라인을 기준으로 도 13의 메모리 블록(BLKa)을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다.
도 14a를 참조하면, 메모리 블록(BLKa)은 워드 라인(WL)을 기준으로 3개의 OTP 서브 블록들로 구분될 수 있다. 예를 들어, 제1 및 제2 워드 라인들(WL1, WL2)에 연결된 메모리 셀들은 제1 OTP 서브 블록(OTP Sub BLK1)으로 설정되고, 제3 워드 라인들(WL3)에 연결된 메모리 셀들은 제2 OTP 서브 블록(OTP Sub BLK2)으로 설정되며, 제4 및 제5 워드 라인들(WL4, WL5)에 연결된 메모리 셀들은 제3 OTP 서브 블록(OTP Sub BLK3)으로 설정될 수 있다.
제1 OTP 서브 블록(OTP Sub BLK1)에는 제1 특수 데이터(SDATA1)가 저장되며, 제1 OTP 서브 블록(OTP Sub BLK1)에 대응하는 활성화 옵션으로는 OTP 보안 커맨드 신호(OTP_CMD_SEC)가 설정될 수 있다. 이와 유사하게, 제2 및 제3 OTP 서브 블록들(OTP Sub BLK2, OTP Sub BLK3)에는 제2 및 제3 특수 데이터(SDATA2, SDATA3)가 각각 저장되며, 활성화 옵션으로는 OTP 테스트 커맨드 신호(OTP_CMD_TEST) 및 OTP 스펙 커맨드 신호(OTP_CMD_SPEC)가 각각 설정될 수 있다. 이에 따라, 도 14a에 도시된 것과 같은 OTP 맵핑 테이블이 구성될 수 있다.
도 14b는 스트링 선택 라인을 기준으로 도 13의 메모리 블록(BLKa)을 복수의 OTP 서브 블록들로 구분한 경우에 구성되는 OTP 맵핑 테이블의 일 예를 보여주는 도면이다. 도 14b의 OTP 맵핑 테이블은 도 14a의 OTP 맵핑 테이블과 유사하다. 간략한 설명을 위하여, 중복되는 설명은 이하 생략될 것이다.
도 14b를 참조하면, 메모리 블록(BLKa)은 스트링 선택 라인(SSL)을 기준으로 3개의 OTP 서브 블록들로 구분될 수 있다. 서로 다른 OTP 서브 블록에는 서로 다른 특수 데이터가 각각 저장되며, 서로 다른 활성화 옵션이 각각 설정될 수 있다. 이에 따라, 도 14b에 도시된 것과 같은 OTP 맵핑 테이블이 구성될 수 있다.
이상에서 살펴본 바와 같이, 메모리 블록이 3차원 구조로 형성된 경우에, 본 발명의 실시 예에 따른 OTP 블록은 워드 라인 또는 스트링 선택 라인을 기준으로 복수의 OTP 서브 블록들로 구분되고, 각각의 OTP 서브 블록에는 고유의 메모리 어드레스 및 활성화 옵션 정보가 설정될 수 있다. 따라서, 서로 다른 특수 데이터들이 적어도 하나의 OTP 블록에 통합하여 저장할 수 있다. 결과적으로, 일반적인 메모리 셀 어레이에 비하여 데이터 저장 공간이 효율적으로 사용될 수 있다.
한편, 도시되지는 않았으나, 메모리 블록이 2차원 구조로 형성된 경우, 본 발명의 실시 예에 따른 OTP 블록은 워드 라인을 기준으로 하나의 OTP 블록을 복수의 OTP 서브 블록들로 구분할 수도 있다.
[OTP 블록의 재할당]
도 15는 본 발명의 실시 예에 따른 데이터 저장 장치(1000B)를 보여주는 블록도이다. 도 15의 데이터 저장 장치(1000B)는 도 1의 데이터 저장 장치(1000A)와 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 이용하여 표기되며, 중복되는 설명은 이하 생략될 것이다.
본 발명의 실시 예에 따른 데이터 저장 장치(1000B)는 OTP 블록으로 할당된 블록에 결함이 발생할 가능성이 있는 경우에 해당 OTP 블록을 다른 OTP 블록으로 재할당하는 기능을 지원할 수 있다. 이를 위하여, 메모리 컨트롤러(1200_1)의 배드 블록 매니저(1210_1)는 OTP 모니터(1211)를 추가로 구비할 수 있다.
OTP 모니터(1211)는 메모리 장치(1100)의 OTP 블록의 상태를 모니터링한다. 예를 들어, OTP 모니터(1211)는 OTP 블록에 대한 읽기 동작의 횟수를 카운트하고, 읽기 동작 횟수가 기준 횟수 이상이라면 OTP 블록에 결함이 발생할 가능성이 있다고 판단할 수 있다. 다른 예로, OTP 모니터(1211)는 OTP 블록의 온도를 모니터링 하고, OTP 블록의 온도가 기준 온도 이상이라면 OTP 블록에 결함이 발생할 가능성이 있다고 판단할 수 있다.
OTP 블록에 결함이 발생할 가능성이 있는 경우, 메모리 컨트롤러(1200_1)는 메모리 장치(1100)에 OTP 재할당 커맨드 신호(OTP_ReCMD)를 전송할 수 있다. 메모리 장치(1100)는 OTP 재할당 커맨드 신호(OTP_ReCMD)에 응답하여 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 사용자 블록을 다시 선택하고, 해당 사용자 블록을 새로운 OTP 블록으로 다시 할당할 수 있다. 이후, 새로운 OTP 블록에 특수 데이터들이 저장되며, OTP 맵핑 테이블 및 배드 블록 테이블이 갱신될 수 있다.
이상에서 살펴본 바와 같이, OTP 블록에 결함이 발생할 가능성이 있는 경우에, 본 발명의 실시 예에 따른 데이터 저장 장치(1000B)는 사용자 블록들 중 새로운 OTP 블록을 다시 할당할 수 있다. 이에 따라, OTP 블록에 저장된 특수 데이터들이 더욱 안정적으로 보호될 수 있다.
도 16은 도 15의 데이터 저장 장치의 OTP 블록 재할당 동작의 일 예를 보여주는 순서도이다.
S510 단계에서, 배드 블록 매니저(1210_1)의 OTP 모니터(1211)는 OTP 블록을 모니터링한다.
S515 단계에서, 배드 블록 매니저(1210_1)는 OTP 블록을 재할당할 필요성이 있는지 판단한다. 예를 들어, OTP 블록에 대한 결함 발생 가능성을 기준으로, OTP 블록을 재할당할 필요성이 있는지 판단할 수 있다.
S516 단계에서, 만약 OTP 블록을 재할당할 필요성이 있다면, 메모리 셀 어레이(1110)의 사용자 블록들 중 결함이 없는 블록이 있는지 판단된다.
만약 사용자 블록들 모두에 결함이 있다면, 해당 메모리 장치(1100)는 칩 페일로 판단된다(S520 단계). 이 경우, 해당 메모리 장치(1100)는 불량품으로 간주될 수 있다.
만약 사용자 블록들 중 결함이 없는 블록이 존재한다면, 결함이 없는 블록들 중 임의의 블록이 선택되고, 선택된 블록이 새로운 OTP블록으로 할당된다(S530 단계).
S540 단계에서, 새로운 OTP 블록으로 할당된 블록에 특수 데이터가 다시 저장된다. 예를 들어, 기존 OTP 블록에 저장된 특수 데이터가 독출되고, 독출된 특수 데이터가 다시 새로운 OTP 블록에 프로그램될 수 있다.
S550 단계에서, 새로운 OTP 블록에 저장된 특수 데이터가 에러 없이 정확하게 기입되었는지를 확인하는 검증 읽기 동작이 수행된다.
만약 OTP 블록에 특수 데이터가 정확하게 기입되지 않았다면, 결함이 없는 다른 사용자 블록이 있는지를 판단하는 S516 단계가 다시 수행될 수 있다.
만약 OTP 블록에 특수 데이터가 정확하게 기입되었다면, 새로운 OTP 블록에 대응하는 활성화 옵션 정보 및 메모리 어드레스 정보를 이용하여 맵핑 테이블이 업데이트된다(S550 단계).
이후, 새로운 OTP 블록에 대응하는 활성화 옵션 정보 메모리 어드레스 정보가 메모리 컨트롤러(1200_1)로 전송되고, 메모리 컨트롤러(1200_1)는 배드 블록 테이블을 업데이트한다(S560 단계).
도 17 및 도 18은 본 발명의 실시 예에 따른 업데이트된 OTP 맵핑 테이블 및 업데이트된 배드 블록 테이블의 일 예를 보여주는 도면이다. 설명의 편의상, 도 7 및 도 8의 OTP 맵핑 테이블 및 배드 블록 테이블이 업데이트 된다고 가정된다. 또한, 제1 매트(MAT1)의 제i 사용자 블록(User BLK i)에 대응하는 OTP 블록에 결함이 발생할 가능성이 있다고 가정된다.
도 17을 참조하면, 제i 사용자 블록(User BLK i)에 대응하는 OTP 블록에 결함이 발생할 가능성이 있는 경우, 사용자 블록들 중 결함이 없거나 에러 비트의 개수가 기준 개수 이하인 블록이 새로운 OTP 블록으로 할당될 수 있다. 예를 들어, 도 17에 도시된 바와 같이, 제2 매트(MAT2)의 제r 사용자 블록(USER BLK r)이 새로운 OTP 블록으로 할당될 수 있다.
이 경우, 제i 사용자 블록(User BLK i)에 대응하는 OTP 블록에 저장된 특수 데이터들은 페이지 버퍼(Page Buffer 1)를 통해 독출되고, 독출된 데이터는 페이지 버퍼(Page Buffer 2)를 통해 제r 사용자 블록(User BLK r)에 대응하는 새로운 OTP 블록에 다시 저장될 수 있다.
이후, 어드레스 레지스터(1160)에 저장된 OTP 맵핑 테이블은 새로운 OTP 블록의 정보를 반영하도록 업데이트 되며, 기존 OTP 블록의 정보는 삭제될 수 있다.
도 18을 참조하면, 배드 블록 매니저(1210_1)는 새로운 OTP 블록에 대한 활성화 옵션 정보 및 메모리 어드레스 정보를 수신하고, 수신된 정보를 이용하여 배드 블록 테이블을 업데이트할 수 있다. 이 경우, 도 18에 도시된 바와 같이, 새로운 OTP 블록에 대응하는 활성화 옵션 정보, 논리 어드레스(LA) 및 물리 어드레스(PA)가 배드 블록 테이블에 추가될 수 있다. 기존 OTP 블록의 정보는 삭제되거나, 일반적인 배드 블록으로 관리될 수 있다.
이상에서 설명된 바와 같이, OTP 블록에 결함이 발생할 가능성이 있는 경우에, 본 발명의 실시 예에 따른 데이터 저장 장치(1000B)는 사용자 블록들 중 새로운 OTP 블록을 다시 할당하고, OTP 맵핑 테이블 및 배드 블록 테이블을 업데이트할 수 있다. 이에 따라, OTP 블록에 저장된 특수 데이터들이 더욱 안정적으로 보호될 수 있다.
[배드 블록 테이블을 포함하지 않는 데이터 저장 장치]
도 19는 본 발명의 실시 예에 따른 데이터 저장 장치(1000C)를 보여주는 블록도이다. 도 19의 데이터 저장 장치(1000C)는 도 1의 데이터 저장 장치(1000A)와 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 이용하여 표기되며, 중복되는 설명은 이하 생략될 것이다.
본 발명의 실시 예에 따른 데이터 저장 장치(1000C)는 배드 블록 매니저(1210) 및 배드 블록 테이블을 포함하지 않는다. 배드 블록 테이블을 포함하지 않는 대신, 데이터 저장 장치(1000C)는 워킹 메모리(1220)에 저장된 맵핑 테이블(Mapping Table)을 통하여 통합적으로 사용자 블록, 일반 배드 블록 및 OTP 블록을 관리할 수 있다.
도 19를 참조하면, 데이터 저장 장치(1000C)의 동작 시에, 메모리 장치(1100)는 메모리 셀 어레이(1110)의 배드 블록을 스캔하고, 배드 블록에 대한 정보를 메모리 컨트롤러(1200_2)에 전송한다. 또한, 메모리 장치(1100)의 어드레스 레지스터(1160)에 저장된 OTP 블록으로 할당된 사용자 블록에 대한 정보를 메모리 컨트롤러(1200_2)에 전송한다.
메모리 컨트롤러(1200_2)는 배드 블록에 대한 정보 및 OTP 블록으로 할당된 사용자 블록에 대한 정보를 수신하고, 이를 이용하여 맵핑 테이블을 구성할 수 있다. 맵핑 테이블은, 예를 들어, 워킹 메모리(1220)에 저장될 수 있다.
도 20은 도 19의 워킹 메모리(1220)에 저장된 맵핑 테이블의 일 예를 보여주는 도면이다.
도 20을 참조하면, 맵핑 테이블은 사용자 블록, 일반 배드 블록 및 OTP 블록을 통합적으로 관리한다. 일반 배드 블록 및 OTP 블록에는 상태 마크(State Mark)가 무효(invalid)로 표기될 수 있다. 또한, OTP 블록에는 활성화 옵션에 대한 정보가 추가적으로 포함될 수 있다.
호스트로부터 OTP 블록에 대한 소거 요청이나 프로그램 요청이 수신되는 경우, 메모리 컨트롤러(1200_2)는 상태 마크를 참조하여 해당 블록은 무효임을 확인할 수 있다. 이 경우, 메모리 컨트롤러(1200_2)는 해당 블록은 배드 블록임을 호스트에 회신할 수 있다.
호스트로부터 OTP 블록에 대한 읽기 요청이 수신되는 경우, 메모리 컨트롤러(1200_2)는 활성화 옵션 정보를 추가로 확인할 수 있다. 만약 활성화 옵션을 만족하는 OTP 커맨드 신호가 수신되지 않았다면, 메모리 컨트롤러(1200_2)는 해당 블록은 배드 블록임을 호스트에 회신할 수 있다. 만약 활성화 옵션을 만족하는 OTP 커맨드 신호가 수신되었다면, 메모리 컨트롤러(1200_2)는 활성화 옵션을 만족하는 OTP 커맨드 신호를 메모리 장치(1100)에 전송할 수 있다.
결과적으로, 활성화 옵션을 만족하는 읽기 요청을 제외하고는 OTP 블록으로 할당된 사용자 블록에 대한 접근이 차단되며, OTP 블록에 저장된 특수 데이터가 안정적으로 보호될 수 있다.
[OTP 블록이 랜덤하게 배치된 메모리 패키지]
도 21은 본 발명의 실시 예에 따른 메모리 장치들을 포함하는 메모리 패키지를 설명하기 위한 도면들이다. 구체적으로, 도 21a는 일반적인 메모리 패키지를 보여주는 도면이며, 도 21b는 본 발명의 실시 예에 따른 메모리 패키지의 일 예를 보여주는 도면이다.
도 21a 및 도 21b를 참조하면, 메모리 장치들은 인쇄회로기판(PCB) 상에 적층되며, 배선을 통하여 인쇄회로기판(PCB)에 연결될 수 있다. 도 21a 및 도 21b에 도시된 바와 같이 메모리 장치들은 계단형으로 적층될 수 있으나, 이에 한정되는 것은 아니다.
앞서 설명된 바와 같이, 일반적인 메모리 장치의 경우, OTP 블록은 메모리 셀 어레이의 고정된 영역에 할당된다. 따라서, 복수의 메모리 장치들로 메모리 패키지를 구성하는 경우, OTP 블록들은 메모리 패키지에서 규칙적으로 배치될 수 있다. 예를 들어, 도 21a를 참조하면, 각 메모리 장치의 일 측면에서 OTP 블록까지의 수평 거리들(d1, d2, d3, d4)은 모두 동일할 수 있다.
이와 달리, 본 발명의 실시 예에 따른 메모리 장치의 경우, OTP 블록은 메모리 셀 어레이에서 랜덤하게 배치된다. 즉, 메모리 셀 어레이 내의 OTP 블록은 그 물리적 위치가 각 메모리 장치마다 서로 다르게 배치된다. 따라서, 복수의 메모리 장치들로 메모리 패키지를 구성하는 경우, OTP 블록들은 각 메모리 장치마다 서로 다른 물리적 위치에 배치될 수 있다.
예를 들어, 도 21b를 참조하면, 제1 메모리 장치(1100_1)의 일 측면에서 OTP 블록까지의 수평 거리는 'd1'이고, 제2 메모리 장치(1100_2)의 일 측면에서 OTP 블록까지의 수평 거리는 'd2'이며, 제3 메모리 장치(1100_3)의 일 측면에서 OTP 블록까지의 수평 거리는 'd3'이고, 제4 메모리 장치(1100_4)의 일 측면에서 OTP 블록까지의 수평 거리는 'd4'라고 가정된다. 이 경우, 수평 거리들(d1, d2, d3, d4) 중 적어도 두 개는 서로 다를 수 있다.
상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 도 1 및 도 11에서, 특수 데이터는 E-Fuse 방식으로 저장되고 독출되는 것으로 설명되었다. 다만, 이는 예시적인 것이며, 특수 데이터는 일반적인 데이터 저장 방식으로 OTP 블록에 저장될 수도 있다. 이 경우, 도 1의 데이터 저장 장치는 퓨즈 블록을 포함하지 않을 수 있으며, 이는 당업자라면 쉽게 이해할 수 있을 것이다.
상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 본 발명에 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000: 데이터 저장 장치
1100: 메모리 장치
1200: 메모리 컨트롤러
ADDR: 어드레스
CMD: 커맨드
DATA: 데이터
1100: 메모리 장치
1200: 메모리 컨트롤러
ADDR: 어드레스
CMD: 커맨드
DATA: 데이터
Claims (20)
- 인쇄 회로 기판;
상기 인쇄 회로 기판 상에 적층된 제1 메모리 장치; 및
상기 제1 메모리 장치 상에 적층된 제2 메모리 장치를 포함하며,
상기 제1 메모리 장치는 제1 OTP 블록을 포함하고,
상기 제2 메모리 장치는 상기 제1 OTP 블록과 다른 제2 OTP 블록을 포함하며,
상기 제1 메모리 장치의 일 측에서 상기 제1 OTP 블록까지의 수평 거리는 상기 제2 메모리 장치의 일 측에서 상기 제2 OTP 블록까지의 수평 거리와 다른 메모리 패키지. - 제1 항에 있어서,
상기 제1 메모리 장치는,
복수의 사용자 블록들 및 상기 제1 OTP 블록을 포함하는 메모리 셀 어레이;
상기 제1 OTP 블록에 대응하는 어드레스 및 OTP 커맨드를 저장하는 어드레스 레지스터를 포함하며,
상기 제1 OTP 블록은 상기 메모리 셀 어레이에서 랜덤하게 배치된 메모리 패키지. - 제2 항에 있어서,
상기 OTP 커맨드는 상기 제1 OTP 블록에 접근하기 위한 활성화 옵션으로 작용하는 메모리 패키지. - 제3 항에 있어서,
상기 OTP 커맨드가 수신되지 않은 상태에서는, 상기 제1 OTP 블록에 대한 읽기 요청은 배드 블록에 대한 읽기 요청으로 처리되는 메모리 장치. - 제1 항에 있어서,
상기 제1 OTP 블록 및 상기 제2 OTP 블록 중 어느 하나는 에러 비트의 개수가 기준 개수 이하인 메모리 블록들로부터 선택된 블록인 메모리 패키지. - 복수의 사용자 블록들 및 적어도 하나의 OTP 블록을 포함하는 메모리 셀 어레이;
상기 적어도 하나의 OTP 블록에 대응하는 어드레스 정보 및 OTP 커맨드 정보를 저장하는 어드레스 레지스터를 포함하며,
상기 적어도 하나의 OTP 블록은 상기 메모리 셀 어레이에서 랜덤하게 배치된 메모리 장치. - 제6 항에 있어서,
상기 적어도 하나의 OTP 블록은 에러 비트의 개수가 기준 개수 이하인 메모리 블록들로부터 선택된 블록인 메모리 장치. - 제6 항에 있어서,
상기 OTP 커맨드는 상기 적어도 하나의 OTP 블록에 접근하기 위한 활성화 옵션인 메모리 장치. - 제8 항에 있어서,
상기 OTP 커맨드가 수신되지 않은 상태에서는, 상기 OTP 블록에 대한 읽기 요청은 배드 블록에 대한 읽기 요청으로 처리되는 메모리 장치. - 제6 항에 있어서,
상기 적어도 하나의 OTP 블록 중 어느 하나는 제1 OTP 서브 블록 및 상기 제1 OTP 서브 블록과 다른 제2 OTP 서브 블록을 포함하고,
상기 어드레스 레지스터는 상기 제1 및 제2 OTP 서브 블록 각각에 대한 어드레스 정보 및 OTP 커맨드 정보를 저장하는 메모리 장치. - 제10 항에 있어서,
상기 제1 OTP 서브 블록에는 제1 워드 라인이 대응하고, 상기 제2 OTP 서브 블록에는 상기 제1 워드 라인과 다른 제2 워드 라인이 대응하는 메모리 장치. - 제10 항에 있어서,
상기 제1 OTP 서브 블록에는 제1 스트링 선택 라인이 대응하고, 상기 제2 OTP 서브 블록에는 상기 제1 스트링 선택 라인과 다른 제2 스트링 선택 라인이 대응하는 메모리 장치. - 제6 항에 있어서,
상기 적어도 하나의 OTP 블록에 저장되는 데이터는 E-Fuse 형태로 저장되는 메모리 장치. - 제13 항에 있어서,
상기 적어도 하나의 OTP 블록에 저장된 데이터를 임시로 저장하는 래치 회로; 및
상기 래치 회로에 연결되며, 상기 OTP 커맨드 정보에 기초하여 턴 온 또는 턴 오프 되는 스위치 회로를 포함하는 메모리 장치. - 제6 항에 있어서,
상기 적어도 하나의 OTP 블록 중 읽기 요청된 횟수가 기준 횟수 이상인 OTP 블록이 존재하는 경우, 상기 읽기 요청된 횟수가 기준 횟수 이상인 OTP 블록을 에러 비트의 개수가 기준 개수 이하인 메모리 블록으로 교체하는 메모리 장치. - 복수의 사용자 블록들 중 에러 비트의 개수가 기준 개수 이하인 사용자 블록을 선택하는 단계;
상기 선택된 사용자 블록을 OTP 블록으로 할당하는 단계:
상기 OTP 블록에 데이터를 저장하는 단계; 및
상기 OTP 블록에 대응하는 OTP 어드레스 및 상기 OTP 어드레스와 관련된 OTP 커맨드를 어드레스 레지스터에 저장하는 단계를 포함하는 메모리 장치의 동작 방법. - 제16 항에 있어서,
상기 OTP 커맨드는 상기 OTP 블록에 접근하기 위한 활성화 옵션인 메모리 장치의 동작 방법. - 제16 항에 있어서,
상기 OTP 블록에 대한 읽기 요청을 수신하는 단계; 및
상기 OTP 커맨드의 수신 여부를 확인하는 단계를 포함하고,
상기 OTP 커맨드가 수신되지 않은 때에는, 상기 OTP 블록에 대한 접근이 차단되는 메모리 장치의 동작 방법. - 제18 항에 있어서,
상기 OTP 커맨드가 수신된 때에는, 상기 OTP 블록에 대한 읽기 요청을 수행하는 메모리 장치의 동작 방법. - 제16 항에 있어서,
상기 OTP 블록에 대한 읽기 요청의 횟수가 기준 횟수 이상인 경우에, 상기 복수의 사용자 블록들 중 에러 비트의 개수가 기준 개수 이하인 사용자 블록을 다시 선택하고, 선택된 사용자 블록을 새로운 OTP 블록으로 할당하는 단계를 더 포함하는 메모리 장치의 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/052,285 US20230153000A1 (en) | 2021-11-12 | 2022-11-03 | Memory device including one-time programmable block and operation method thereof |
CN202211389817.3A CN116129954A (zh) | 2021-11-12 | 2022-11-08 | 存储器封装件、存储器装置及其操作方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210156057 | 2021-11-12 | ||
KR20210156057 | 2021-11-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230069794A true KR20230069794A (ko) | 2023-05-19 |
Family
ID=86546709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220056017A KR20230069794A (ko) | 2021-11-12 | 2022-05-06 | Otp 블록을 포함하는 메모리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230069794A (ko) |
-
2022
- 2022-05-06 KR KR1020220056017A patent/KR20230069794A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5297195B2 (ja) | 再対象化可能なメモリセル冗長性を備えたメモリ | |
US5844910A (en) | Flash-erase-type nonvolatile semiconductor storage device | |
EP2058820A1 (en) | Semiconductor memory having segmented row repair | |
CN101331554A (zh) | 具有可重定目标的存储器单元冗余的存储器 | |
CN108628757B (zh) | 非易失性存储器设备和包括其的存储系统 | |
US11348654B2 (en) | Memory device and method for reducing bad block test time | |
KR102336458B1 (ko) | 고속으로 결함 비트 라인을 검출하는 불휘발성 메모리 장치 및 그것의 테스트 시스템 | |
WO2009054272A1 (en) | Memory system | |
KR102460526B1 (ko) | 불휘발성 메모리 장치를 포함하는 스토리지 장치, 불휘발성 메모리 장치, 그리고 스토리지 장치의 동작 방법 | |
US20160266955A1 (en) | Memory system | |
KR20220094990A (ko) | 불량 워드라인의 리페어를 위한 메모리 장치, 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 | |
JP4034947B2 (ja) | 不揮発性記憶システム | |
US9230692B2 (en) | Apparatuses and methods for mapping memory addresses to redundant memory | |
KR20230069794A (ko) | Otp 블록을 포함하는 메모리 장치 | |
KR102054272B1 (ko) | 칩 테스터, 그것을 포함하는 테스트 시스템, 그리고 그것의 테스트 방법 | |
US20230153000A1 (en) | Memory device including one-time programmable block and operation method thereof | |
CN115938422A (zh) | 刷新数据的数据存储装置及其操作方法 | |
KR102530327B1 (ko) | 비휘발성 메모리 장치 및 그 동작 방법 | |
JP4641034B2 (ja) | 不揮発性記憶システム | |
WO2002056183A1 (en) | Semiconductor memory device and method for accessing the same | |
US12026092B2 (en) | Data storage device and method of operating the same | |
US20230418743A1 (en) | Data storage device and method of operating the same | |
KR20190036381A (ko) | 스페어 컬럼 리맵 스토리지를 갖는 메모리 장치 및 그 메모리 장치의 컬럼 어드레스 리맵핑 방법 | |
KR20230135279A (ko) | 스토리지 장치, 및 스토리지 장치의 구동 방법 | |
KR20230071699A (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 |