KR20140070441A - 스마트 메모리 아키텍쳐를 제공하기 위한 방법 및 시스템 - Google Patents
스마트 메모리 아키텍쳐를 제공하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20140070441A KR20140070441A KR1020130146387A KR20130146387A KR20140070441A KR 20140070441 A KR20140070441 A KR 20140070441A KR 1020130146387 A KR1020130146387 A KR 1020130146387A KR 20130146387 A KR20130146387 A KR 20130146387A KR 20140070441 A KR20140070441 A KR 20140070441A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- error rate
- test
- write
- read
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 511
- 238000000034 method Methods 0.000 title claims description 79
- 238000012360 testing method Methods 0.000 claims abstract description 215
- 230000004044 response Effects 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 60
- 239000000872 buffer Substances 0.000 description 32
- 230000008439 repair process Effects 0.000 description 28
- 230000005291 magnetic effect Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 230000005415 magnetization Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 230000002950 deficient Effects 0.000 description 9
- 230000014759 maintenance of location Effects 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000005641 tunneling Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 108050008316 DNA endonuclease RBBP8 Proteins 0.000 description 3
- 102100035250 SUMO-activating enzyme subunit 2 Human genes 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 101001075561 Homo sapiens Rho GTPase-activating protein 32 Proteins 0.000 description 2
- 102100020900 Rho GTPase-activating protein 32 Human genes 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000090 raster image correlation spectroscopy Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 244000144992 flock Species 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 208000017972 multifocal atrial tachycardia Diseases 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/14—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements
- G11C11/15—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements using multiple magnetic layers
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- 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/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Semiconductor Memories (AREA)
- Hall/Mr Elements (AREA)
Abstract
스마트 메모리 컨트롤러는 하나 또는 그 이상의 메모리 칩들을 포함하는 메모리, 및 하나 또는 그 이상의 메모리 프로세서 칩들을 포함하는 프로세서를 포함한다. 상기 시스템은 비트 에러율 자가 내장 테스트를 실행할 수 있는 스마트 메모리 컨트롤러를 포함할 수 있다. 상기 스마트 메모리 컨트롤러는 상기 비트 에러율 자가 내장 테스트를 제어하는 비트 에러율 컨트롤러 로직을 포함할 수 있다. 쓰기 에러율 테스트 패턴 발생기는 상기 비트 에러율 자가 내장 테스트를 위한 쓰기 에러 테스트 패턴을 발생시킬 수 있다. 읽기 에러율 테스트 패턴 발생기는 상기 자가 내장 테스트를 위한 읽기 에러 테스트 패턴을 발생시킬 수 있다. 상기 스마트 메모리 컨트롤러는 내부적으로 에러율 타이밍 패턴을 발생시킬 수 있고, 자가 내장 테스트를 실행할 수 있고, 상기 결과로 초래된 에러율을 측정할 수 있고, 상기 측정된 에러율에 기초하여 하나 또는 그 이상의 테스트 파라미터들을 자동적으로 조정할 수 있고, 그리고 상기 조정된 파라미터들을 사용하여 상기 자가 내장 테스트를 반복할 수 있다.
Description
본 발명은 스마트 메모리 아키텍쳐에 관한 것으로써, 좀 더 자세하게는 저항성 메모리를 위한 스마트 메모리 아키텍쳐를 제공하는 방법 및 시스템에 관한 것이다.
본 발명은 정보를 저장하거나 스태틱 랜덤 억세스 메모리(static random access memory; SRAM), 다이나믹 랜덤 억세스 메모리(dynamic random access memory; DRAM), 플래시 메모리(flash memory), 상 변화 랜덤 억세스 메모리(phase-change random access memory; PCRAM), 스핀-변환 토크 랜덤 억세스 메모리(spin-transfer torque random access memory; STT-RAM), 자기 랜덤 억세스 메모리(magnetic random access memory; MRAM), 저항 랜덤 억세스 메모리(resistive random access memory; RRAM), 및 차세대 메모리 장치(future memory device)들을 포함하는 메모리 집적 회로(memory integrated circuits)로부터 정보를 검색하기 위한 메모리 시스템과 관련된다.
본 명세서에서 설명되는 발명은 개연론에 의거한 타입의 특성들(probabilistic-type characteristic) 및 상대적으로 높은 에러율을 갖는 STT-RAM, MRAM 및 RRAM과 같은 메모리에 특히 적합하다.
반도체 메모리 장치는 데이터를 저장하기 위한 전기적 시스템에 넓게 사용되어 왔다. 반도체 메모리에는 일반적으로 두 가지 타입, 불휘발성 및 휘발성 메모리가 있다. SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리 장치는 전원이 끊기면 데이터를 잃는다. 그러나, 플래시 메모리, 이레이저블 프로그래머블 리드 온리 메모리(erasable programmable read only memory; EPROM) 또는 자기 랜덤 억세스 메모리(magnetic random access memory; MRAM)와 같은 불휘발성 메모리 장치는 전원이 끊기더라도 데이터를 유지한다. 따라서, 전원 고장 또는 정전이 허용되지 않는 곳에서, 데이터를 저장하기 위해 불휘발성 메모리 장치가 사용된다.
도 1a 내지 1d는 스핀 변환 토크(spin transfer torque; STT) MRAM 셀에 사용되는 자기 터널 접합(magnetic tunnel junction; MTJ)(10)의 단면도이다. 도 1a 내지 1d를 참조하여, MTJ(10)가 기준 층(reference layer)(12), 터널링 층(tunneling layer)(14), 및 자유 층(free layer)(16)을 포함하도록 도시된다. 기준 층(12) 및 자유 층(16)은 강자성 층들일 수 있다. 반면에, 터널링 층(14)는 비자성 층일 수 있다. 기준 층(120)의 자화의 방향은 제조 과정에서 고정되고, 따라서, STT-RAM 메모리 장치의 동작시에 변하지 않는다. 그러나, 자유 층(16)의 자화의 방향은 동작시에 MTJ 구조를 통하여 필요한 세기의 전류를 흐르게 함으로써 변할 수 있다.
도 1a에서, 기준 층(12) 및 자유 층(16)은 동일한 자화의 방향, 예컨대 평행한 자기 상태 방향을 갖도록 도시된다. 도 1b에서, 기준 층(12) 및 자유 층(16)은 반대의 자화 방향, 예컨대, 반-평행(anti-parallel) 상태를 갖도록 도시된다. 도 1c에서, 기준 층(12) 및 자유 층(16)은 자유 층(16)과 터널링 층(14)이 접하는 면에 수직인 자화 방향인, 같은 자화 방향(평행 상태)을 갖도록 도시된다. 도 1d에서, 기준 층(12) 및 자유 층(14)은, 자화 방향이 자유 층(16)과 터널링 층(14)이 접하는 면에 수직인, 반대의 자화 방향(반-평행 상태)을 갖도록 도시된다.
도 1a 및 1c에 도시된 바와 같은 평행 상태로부터 도 1b 및 1d에 도시된 바와 같은 반평행 상태로 전환시키기 위해, 기준 층(12)의 전압 포텐셜(voltage potential)이 자유 층(16)의 전압 포텐셜에 비해 증가 된다. 이 전압 차이는 그들의 각도 모멘텀(angular momentum) 및 자유 층(16)의 자화 방향을 반-평행(anti-parallel) 상태로 변환시키는, 자유 층(16)으로부터 기준 층(12)으로 스핀 편극화된 전자 흐름(spin polarized electrons flowing)을 일으킨다. 반-평행 상태로부터 평행 상태로 변환시키기 위해, 기준 층(16)의 전압 포텐셜은 기준 층(12)의 전압 포텐셜에 비해 증가 된다. 이 전압 차이는 그들의 각도 모멘텀 및 자유 층(16)의 자화 방향을 평행 상태로 변환시키는, 기준 층(12)으로부터 자유 층(16)으로 스핀 편극화된 전자 흐름을 일으킨다.
평행 상태로부터 비-평행(non-parallel) 상태로 또는 그 반대로 전환시키기 위해, MTJ(10)으로 인가되는 전압 및 MTJ를 통과하는 대응하는 전류 흐름은 각각 문턱 값들의 각각의 쌍보다 커야 한다. 발생하도록 스위칭하기 위해 문턱 전압을 초과해야하는 전압을 스위칭 전압(switching voltage) Vc라 칭한다. 마찬가지로, 발생하도록 스위칭하기 위해 문턱 전류를 초과해야 하는 전류를 스위칭 전류(switching current) Ic라 칭한다.
잘 알려진 바와 같이, 자유 층(16) 및 기준 층(12)는 같은 자화 방향(예컨대, 평행 방향)을 갖고, MTJ(10)는 상대적으로 작은 저항을 갖는다. 반대로, 자유 층(16) 및 기준 층(12)이 반대의 자화 방향(예컨대, 반-평행 상태)을 가질 때, MTJ(10)는 상대적으로 큰 저항을 갖는다. 저항값에 있어서 이 차이는 MTJ(10)가 메모리 저장 장치로써 행동할 수 있는 능력을 제공한다. MTJ(10)의 물리적인 속성들로 인하여, MTJ가 평행 상태로부터 반-평행 상태로 변하도록 요구하는 임계 전류는 종종 MTJ가 반-평행 상태로부터 평행 상태로 변하도록 요구하는 임계 전류보다 더 클 수 있다.
도 2a는 STT-MRAM 타입의 메모리 셀 및 관련된 선택 트랜지스터(20)가 만나 형성하는 STT-MRAM 셀(30)에서 다양한 저항을 형성하는 MTJ(10)를 보여준다. MTJ(10)는 기준 또는 피고정 층(reference or pinned layer)(12), 자유 층(free layer)(16) 및 기준 층(reference layer)(12)과 자유 층(free layer)(16) 사이에 배치된 터널링 층(tunneling layer)(14)를 포함한다. 트랜지스터(20)는 PMOS 트랜지스터에 비하여, 그것의 본질적으로 높은 전류 구동, 낮은 문턱 전압, 및 적은 면적 때문에 NMOS 트랜지스터일 수 있다. MRAM(30)에 "1"을 기록하는데 사용되는 전류는 "0"을 기록하는데 사용되는 전류와 다를 수 있다. 이 두 가지 상태들 동안 전류 흐름의 방향의 비대칭성은 트랜지스터(20)의 게이트-소스 전압에 있어서 비대칭성에 의해 유발된다.
이하, MRAM 셀은 그것의 연관된 MTJ의 자유 층 및 기준 층들이 평행(P) 상태, 예컨대, MTJ가 낮은 저항 상태에 있을 때, 논리 "0" 상태인 것으로 정의된다. 반대로, MRAM 셀은 그것의 연관된 MTJ의 자유 층 및 기준 층들이 반-평행(AP) 상태, 예컨대, MTJ가 높은 저항 상태에 있을 때, 논리 "1" 상태인 것으로 정의된다. 다른 실시 예에서, MRAM 셀은 AP 상태에 있을 때 논리 "0" 상태인 것으로 정의될 수 있고, P 상태에 있을 때 논리 "1" 상태인 것으로 정의될 수도 있다. 게다가, MTJ(10)의 기준 층은 도 2a에 도시된 바와 같이 그것의 관련된 선택 트랜지스터와 맞닿아 있는 것으로 가정한다.
따라서, 상기 설명된 바와 같이, 화살표 35 방향(예컨대, 위쪽 방향)의 전류 흐름은 (i) P 상태로부터 AP 상태로 변화를 유발하여 "1"을 기록하거나, 또는 (ii) 이전에 형성된 관련된 MTJ의 AP 상태를 안정화시킬 수 있다. 유사하게, 화살표 40 방향(예컨대, 아래쪽 방향)의 전류 흐름은 (i) AP 상태로부터 P 상태로 변화를 유발하여 "0"을 기록하거나, 또한 (ii) 이전에 형성된 관련된 MTJ의 P 상태를 안정화시킬 수 있다. 그러나, 다른 실시 예에서, MTJ의 자유 층이 그것의 관련된 트랜지스터와 맞닿을 수 있도록 이 방향이 반대로 될 수 있음은 잘 이해될 것이다. 그러한 실시 예에서(미도시), 화살표 35 방향(예컨대, 위쪽 방향)의 전류 흐름은 (i) AP 상태로부터 P 상태로 변화를 유발하거나, 또는 (ii) 이전에 형성된 관련된 MTJ의 P 상태를 안정화시킬 수 있다. 유사하게, 화살표 40 방향(예컨대, 아래쪽 방향)의 전류 흐름은 (i) P 상태로부터 AP 상태로 변화를 유발하거나, 또는 (ii) 이전에 형성된 관련된 MTJ의 AP 상태를 안정화시킬 수 있다.
도 2b는 도 2a의 MRAM(30)을 도시한 회로도인데, 그것 안에 저장된 데이터에 의존하여 저항이 변하는 저장 소자가 MRAM 안에 도시되었다. MTJ(10)는 그것의 상태를 (i) 전류가 화살표 35 방향으로 흐를 때 P로부터 AP로 변화시키거나, (ii) 전류가 화살표 40 방향으로 흐를 때 AP로부터 P로 변화시킬 수 있다.
반대로, MTJ(10)를 AP 상태로부터 P 상태로 전환시키는데 필요한 전압은 임계 스위칭 전압(critical switching voltage) Vc0을 초과해야 한다. 이 전압에 대응하는 전류는 임계 또는 스위칭 전류(critical or switching current) IcO라 칭한다. 특정한 임계 값 Vc0 및 관련된 임계 스위칭 전류 Ic0가 다양한 방법으로 정의될 수 있는 반면, 그러한 값들은 특정한 시간 내에 메모리 셀의 50% 스위칭 확률에 기초하여 선택될 수 있다. 다시 말해서, 임계 스위칭 전류 Ic0는 선택되거나 그렇지 않으면, MTJ(10)의 디자인에 기초하여, 또는 특정한 임계값 Vc0 또는 스위칭 전류 Ic0에서의 스위칭의 가능성의 측정치에 기초하여 판단될 수 있다. 문턱 임계 스위칭 전류 Ic0가 만족되었을 때, 저장된 메모리 비트가 값(예컨대, "1"로부터 "0"으로 또는 "1"로부터 "0"으로)들을 변화시키는 확률은 50%일 수 있다. 표준 신뢰성 예상(standard reliability expectation)을 충족시키기에 수긍할만한 에러 비율에서 스위칭이 발생하는 것을 보장하기 위해 오버 드라이브 전류(overdrive current)가 적용될 수 있다. 이 오버드라이브 전류 또는 스위칭 전류 Isw는 Ic0 값의 1.3배, 1.5배, 2배, 또는 2배 이상일 수 있다. 예를 들어, 만약 MTJ 장치를 위한 Ic0가 20 나노초 기록 펄스 폭(write pulse width)에서 7 마이크로 암페어(μA)라면, MTJ의 상태를 신뢰할만하게 전환시키는데 사용되는 Isw는 11 마이크로 암페어이거나 그보다 더 클 수 있다.
어떤 경우에, "안전한(safe)" 쓰기 전류(예컨대, 기록 에러 비율이 10의 -9제곱보다 작은 경우)는 특정한 시간(예컨대, 10 나노초)동안, 임계 스위칭 전류 Ic0의 1.5배 내지 2배일 수 있다. 메모리 셀로부터 비트 값을 읽기 위해, 상대적으로 "안전한" 쓰기 전류가 (예컨대, 일기 에러 비율이 10의 -9 제곱보다 작을 때) 적용될 수 있다. 예를 들어, "안전한" 읽기 전류는 임계 스위칭 전류 Ic0의 0.2배(즉, 20%)일 수 있다. 다른 예에서, 만일 임계 스위칭 전류 Ic0가 6 마이크로 암페어라면, 노말 동작 모드(normal operation mode) 하에서의 쓰기 전류는 적어도 12 마이크로 암페어이거나 대략 그 즈음의 값일 수 있고, 노말 동작 모드 하에서의 읽기 전류는 1.2 마이크로 암페어이거나 대략 그 즈음의 값일 수 있다. 이런 방법에서, 노말 읽기 조건하에서 적절하게 스위칭하는 메모리 셀의 확률은 매우 높다(어떤 경우에서는 거의 100%). 유사하게, 노말 읽기 조건 하에서 메모리 셀의 값을 우연히 스위칭하는 확률은 매우 낮을 수 있다(어떤 경우에서는 거의 0).
일단 AP 상태가 되면, 인가된 전압을 제거하는 것은 MTJ(10)에 영향을 미치지 않는다. 유사하게, 노말 동작 모드 하에서 AP 상태로부터 P 상태로 전환시키기 위해, 적어도 음의 전압 Vc0가, 적어도 스위칭 전류 Ic0의 전압 레벨이 반대 방향에 있는 메모리 셀을 통하여 흐를 수 있도록 인가된다. 일단 P 상태가 되면, 인가된 전압을 제거하는 것은 MTJ(10)의 상태에 영향을 미치지 않는다.
다시 말하면, MTJ(10)은 반-평행 상태(즉, 높은 저항 상태, 또는 논리 "1" 상태)에서 평행 상태(즉, 낮은 저항 상태, 또는 논리 "1" 상태)로 전환될 수 있다. MTJ(10)가 초기에 논리 "1" 또는 AP 상태에 있다고 가정하면, "0"을 저장하기 위해, 노말 동작 모드 하에서 적어도 임계 전류 Ic0보다 큰 전류가 화살표 40 방향으로 트랜지스터(20)을 통하여 흐를 수 있도록 유기될 수 있다. 이것을 실현하기 위해, 트랜지스터(20)의 소스 노드(SL 또는 소스 라인)가 저항성 통로(resistive path)(미도시)를 통하여 그라운드 포텐셜(ground potential)로 커플(couple)되고, 양의 전압이 트랜지스터(20)의 게이트 노드 (WL 또는 워드 라인)로 인가되고, 그리고 양의 전압이 트랜지스터(20)의 드레인 노드 (BL 또는 비트 라인)로 인가될 수 있다.
앞서 설명된 바와 같이, MTJ(10)는 "1"을 저장하기 위해 평행 상태에서 반-평행 상태로 전환될 수 있다. MTJ(10)가 초기에 논리 "0" 또는 P 상태에 있다고 가정하면, "1"을 저장하기 위해, 노말 동작 모드 하에서 적어도 임계 전류 Ic0보다 큰 전류가 화살표 35 방향으로 트랜지스터(20)를 통하여 흐를 수 있도록 유기된다. 이것을 실현하기 위해, 양의 전압이 저항성 통로(미도시)를 통하여 노드 SL으로 인가되고, 양의 전압이 노드 WL으로 인가되고, 그리고 노드 BL은 저항성 통로(미도시)를 통하여 그라운드 포텐셜로 연결 될 수 있다.
도 3은 다양한 쓰기 사이클 동안 MTJ 상태(또는 그것의 저항)에서의 변화를 보여준다. P 상태(낮은 저항 상태)에서 AP 상태(높은 저항 상태)로 전환시키기 위해, 적어도 임계 스위칭 전압 Vc0보다 큰 양의 전압이 인가될 수 있다. 일단 AP 상태가 되면, 인가되는 전압을 제거하는 것은 MTJ의 상태에 영향을 미치지 않는다. 마찬가지로, AP 상태로부터 P 상태로 전환시키기 위해, 적어도 임계 스위칭 전압 Vc0보다 작은 음의 전압이 인가된다. 일단 P 상태가 되면, 인가되는 전압을 제거하는 것은 MTJ의 상태에 영향을 미치지 않는다. AP 상태일 때 MTJ의 저항은 Rhigh이다. 마찬가지로, AP 상태일 때 MTJ의 저항은 Rlow이다.
도 4a는 "0"(즉, 낮은 저항 상태, 또는 논리 "0" 상태)을 저장하기 위해, 반-평행 상태(즉, 높은 저항 상태, 또는 논리 "1" 상태)로부터 평행 상태로 전환시키기 위해 프로그램되는 MTJ(10)를 보여준다. 이 그림에서, MTJ(10)는 초기에 논리 "1" 상태 또는 AP 상태라고 가정한다. 앞서 설명된 바와 같이, "0"을 저장하기 위해, 적어도 임계 전류 Ic0보다 큰 전류가 화살표 40 방향으로 트랜지스터(20)을 통하여 흐를 수 있도록 유기된다. 이것을 실현하기 위해, 트랜지스터(20)의 소스 노드(SL 또는 소스 라인)가 저항성 통로(resistive path)(미도시)를 통하여 그라운드 포텐셜(ground potential)로 연결(couple)되고, 양의 전압(VPP)이 트랜지스터(20)의 게이트 노드(WL 또는 워드 라인)으로 인가되고, 그리고 양의 전압(VCC)이 트랜지스터(20)의 드레인 노드(BL 또는 비트 라인)으로 인가될 수 있다.
도 5는 도 4a 및 4b에 도시된 MTJ(10)과 같은 일반적인 MTJ에 있어서, 대략 25 나노초와 25 나노초 사이에 발생하는 "0"을 쓰는 동안, 그리고 대략 45 나노초와 45 나노초 사이에 발생하는 "1"을 쓰는 동안, 노드 WL, SL, BL에서의 전압 레벨을 보여주는 타이밍도이다. 공급 전압 VCC는 약 1.8 볼트라고 가정한다. 열 선택 신호 CS 뿐만 아니라 워드 라인 신호 WL이 3 볼트의 프로그램 전압 VPP까지 부스팅된 것으로 도시된다. "0"을 쓰는 동작 동안, 노드 BL, SL, 및 SN에서의 전압들은 대략 각각 1.43V, 0.34V, 및 0.88V인 것으로 도시된다. "1"을 쓰는 동작 동안, 노드 BL, SL, 및 SN에서의 전압들은 대략 각각 0.23V, 1.43V, 및 0.84V인 것으로 도시된다. 비록 도시되지는 않았지만, 이 예시적인 컴퓨터 시뮬레이션에 있어서, "0" 쓰기 및 "1" 쓰기 동작 동안 MTJ를 통과하는 전류 흐름은 각각 121 마이크로 암페어 및 99.2 마이크로 암페어일 수 있다.
도 4b는 "1"을 저장하기 위해 평행 상태로부터 반-평행 상태로 전환시키기 위해 프로그램되는 MTJ(10)를 보여준다. MTJ(10)는 초기에 논리 "0" 상태 또는 AP 상태라고 가정한다. "1"을 저장하기 위해, 임계 전류 Ic0보다 큰 전류 ISW가 화살표 35 방향으로 트랜지스터(20)을 통하여 흐를 수 있도록 유기된다. 이것을 실현하기 위해, 전압 VCC가 저항성 통로(resistive path)(미도시)를 통하여 트랜지스터(20)의 노드 SL로 인가되고, 전압 VPP가 노드 WL로 인가되고, 그리고 노드 BL은 저항성 통로(미도시)를 통하여 그라운드 포텐셜로 연결될 수 있다. 따라서, "1"을 쓰는 동작 동안, 트랜지스터(20)의 게이트-소스 전압은 (VWL-VSN)으로 세팅되고, 트랜지스터(20)의 드레인-소스 전압은 (VSL-VSN)으로 세팅될 수 있다. 이 STT-RAM 타입의 메모리 셀은 훌륭한 불휘발성 메모리 솔루션을 제공할 수 있다.
불행하게도, STT-RAM 또는 다른 어떤 타입의 메모리 칩에 있어서, 제조 또는 다른 결함들은 메모리 칩 상의 모든 메모리 셀들이 제대로 작동하지 않게 할 수 있다. 메모리 수리 동안, 메모리 칩은 테스트 될 수 있고, 페일(fail)된 메모리 소자들은 다른 메모리 소자들로 대체될 수 있다. 레이저 수리(laser repair)라고 일반적으로 불리는 이 메모리 수리는 첫 웨이퍼 분류 테스트 이후에 일반적으로 실행된다. 레이저는 메모리 퓨즈 뱅크(memory fuse bank)를 날려버려 흠 있는 메모리 소자들을 망가뜨리고, 그들을 다른 소자들로 대체한다. 메모리 수리는 메모리의 최종 소비자가 이용할 수 있도록 만들어지지는 않는다.
메모리 억세스, 안전한 데이터 저장, 데이터 검증 및 데이터 복구, 데이터 테스트, 그리고 메모리 수리를 제공하기 위한 다양한 타입의 메모리 시스템이 제안되어 왔다. 예를 들어, 이들 시스템들에는 U.S. Patent No. 6,657,914 (CONFIGURABLE ADDRESSING FOR MULTIPLE CHIPS IN A PACKAGE); U.S. Patent No. 6,754,866 (TESTING OF INTEGRATED CIRCUIT DEVICE); U.S. Patent No. 7,365,557 (INTEGRATED TESTING MODULE INCLUDING DATA GENERATOR); U.S. Patent No. 7,466,160 (SHARED MEMORY BUS ARCHITECTURE FOR SYSTEM WITH PROCESSOR AND MEMORY UNITS); U.S. Patent No. 7,466,603 (MEMORY ACCESSING CIRCUIT SYSTEM); U.S. Patent No. 7,673,193 (PROCESSOR-MEMORY UNIT FOR USE IN SYSTEM-IN-PACKAGE AND SYSTEM-IN-MODULE DEVICES); U.S. Patent No. 7,768,847 (PROGRAMMABLE MEMORY REPAIR SCHEME); 및 U.S. Patent No. 7,779,311 (TESTING AND RECOVERY OF MULTILAYER DEVICE) 등이 있고, 그들 각각의 내용은 전체적으로 참조함으로써 여기에 포함될 것이다.
비록 이들 및 다른 시스템들이 제시된 발명의 원리에 의해 유사한 문제들을 다루어 왔으나, 그들은 PCRAM, MRAM 및 PRAM 장치들과 같은 높은 에러율을 갖는 메모리 및 개연론에 근거한 경향(probabilistic tendencies)을 위해 설계되거나, 그들로 명확하게 적용되지 않았다. 특히, U.S. Patent No. 7,673,193은 프로세싱 모듈, 메모리 모듈, 및 프로그램 가능한 시스템 모듈을 포함하는 시스템-인-패키지(system-in-package; SiP) 및 시스템 인 모듈(system in module; SiM)에서 사용되는 프로세서 메모리 유닛을 위한 장치 및 방법을 설명하고 있다. 프로그램 가능한 시스템 모듈은 다른 통신 규약(protocol)을 갖는 기능적인 요소들을 포함하는 프로세서-메모리 유닛의 통합 및 테스트를 가능하게 하는 메모리 모듈 및 테스트 장치 사이에서의 인터페이스로써 작용하도록 구성된다. 인터페이스 층(시스템 모듈)(120)은 수율 개선, 데이터 압축, 테스트 알고리즘, 전원 관리 등등을 위한 프로세스 스페시픽 신호 처리 알고리즘(process specific signal processing algorithms)을 포함할 수 있다. 이 시스템은 플러스 로직 인터페이스 제품(plus logic interface product) 뿐만 아니라 멀티-칩(multi-chip) DRAM에 특히 유용하다. 그러나, 발명의 원리의 추가적인 특징들 및 실시 예들에 따라서, 이러한 타입의 시스템의 유용성은 플래시 메모리, PCRAM, MRAM, RRAM 및 다른 메모리 장치들로 확장될 수 있다.
본 발명의 특징 및 원리에 따르면, 스마트 메모리 시스템은 논리 프로세서(logic processor)에 비해 상대적으로 높은 에러율 및 느린 읽기/쓰기 횟수를 갖는 메모리가 신뢰할 수 있게 그리고 균일하게 동작하도록 한다. 본 발명의 특징은 개연론에 근거한 경향(probabilistic tendency) 및 높은 에러율을 겪는 메모리를 위한 유용한 이익을 제공할 수 있다. 무엇보다도, 본 발명의 원리를 포함하는 스마트 메모리 시스템은 높은 쓰기 에러율을 갖는 불휘발성 메모리 장치가 페일(fail)된 위치 및 대응하는 데이터를 표시함으로써, 그리고 그때까지 편리한 시간에 다시 쓰기(re-writing)를 실행하거나 또는 단순히 페일된 위치를 마스킹하거나(mask) 다른 위치로 데이터를 다시 쓰기 함으로써 사용될 수 있도록 한다.
본 발명의 하나 또는 그 이상의 특징들을 포함하는 어떤 실시 예들은 쓰기 및 읽기 성공을 보장하는 확인 응답 시그널링(acknowledge signaling)을 갖는 공통의 비동기식 메모리 버스를 포함할 수 있다. 핸드셰이킹 메모리 인터페이스(handshaking memory interface)는 내부 읽기 및 쓰기 추적(internal read and write tracking), 그리고 검증 스킴(verifying scheme)을 사용함으로써 프로세스-독립성, 전압-독립성, 그리고 온도-독립성 동작을 참작할 수 있다.
시스템은 메모리 컨트롤러 불휘발성 메모리에서 메모리 시스템 페일 및 기록 페일 위치를 저장함으로써 동적으로 그들을 모니터링하는 동작을 더 실행할 수 있다. 시스템은 불휘발성 메모리 테이블로부터 페일 위치 및 페일의 타입을 소환하고 페일의 타입에 기초하여 적절한 수리를 더 실행할 수 있다. 예를 들어, 이 수리는 데이터 다시 쓰기, 메모리 수리, 페일 메모리 영역의 고립, 또는 다른 적당한 수리를 포함할 수 있다.
시스템은 빈약한 보유 특성(retention characteristic)을 지닌 메모리로 리프레시 사이클(refresh cycle)을 제공하는 것을 더 실행할 수 있다. 초기 스트레스 테스트는 메모리에서 결점을 스크린하는 스마트 컨트롤러에 의해 제공될 수 있다. 페일 모드 및 스트레스 레벨(전압, 전류, 온도 등) 통계 데이터에 기초하여, 스마트 메모리는 특정한 수리 리프레시 간격(fix refresh interval)을 제공하는 것을 더 실행할 수 있다. 예를 들어, 리프레시 간격은 3초, 10일, 5주, 2달 또는 그 이상일 수 있다. 시간은 내부의 저전력 시계(low power clock)에 의해 정해질 수 있다. 리프레시 사이클은 전체의 메모리 읽기 및 같은 데이터를 다시 쓰기 하는 것을 포함할 수 있다. 회로망은 쓰기-검증 및 다시 쓰기 회로망과 유사한 읽기 및 다시 쓰기 동작을 구현하기 위해 메모리의 내부에 있을 수 있다.
스마트 메모리 시스템은 외부의 자동 검사기(Automated Test Equipment; ATE)가 직접적으로 시스템 메모리로 접근하도록 허락함으로써 최종 소비자의 장치(end-user device)에서 실행한 후에라도 온-칩(on-chip) 테스트를 허락하는 것을 더 실행할 수 있다. 예를 들어, ATE는 사용자 요청(user request), 자동 테스트 스케쥴(automatic test schedule), 또는 감지된 메모리 에러에 대한 반응에 기초하여 메모리 시스템을 테스트하기 위한 테스트 패턴을 관리하거나 실행할 수 있다.
스마트 메모리 시스템은 전원 관리 기술을 구현하도록 구성될 수 있다. 예를 들어, 전원 관리 기술은 준비하는 동안의 SA 읽기 전류, SA 클램프(clamp) 전압, SA 읽기 지연, 쓰기 전압, 주변의 전압을 관리하거나, 메모리 장치의 필요 동력들을 관리할 수 있다.
RISC 프로세서 또는 다른 타입의 프로세서들은 메인 시스템 메모리로 데이터를 저장하기 전에 데이터에 대한 간단한 또는 복잡한 계산을 실행하는 메모리 컨트롤러와 같은 스마트 메모리 시스템 안에 포함될 수 있다. 이것은 장치 프로세서가 메모리 컨트롤러 프로세서에 대한 다양한 작업을 떠넘김(offload)으로써 스마트 메모리 시스템에 향상된 가치를 제공할 수 있고, 그리고 그렇게 함으로써 장치 리소스들을 해소(free up)시킬 수 있다.
본 발명의 원리를 포함하는 한 실시 예에 따르면, 스마트 메모리 시스템은 메모리 프로세스를 사용하여 제조된 하나 또는 그 이상의 메모리 프로세서 칩들을 포함하는 메모리, 및 논리 프로세스(logic process)를 사용하여 제조된 하나 또는 그 이상의 메모리 프로세서 칩들을 포함하는 메모리를 포함할 수 있다. 예를 들어, 프로세서는 메모리 어레이와 메모리 프로세서 사이에서 비동기식 핸드셰이킹 인터페이스(asynchronous handshaking interface)를 제공하도록 구성된 공통 어드레스/데이터/컨트롤 메모리 버스(common address/data/control memory bus)를 포함할 수 있다. 프로세서는 분석을 위해 메모리 칩으로부터 쓰기 에러 태그(Write Error Tag) 메모리 데이터를 제거하기 위한 메커니즘을 포함할 수 있다. 전원 관리 로직 뿐만 아니라 메모리 어드레스 재구성을 위한 프로그램 로직도 포함될 수 있다.
메모리는 메모리 어레이와 메모리 프로세서 사이에서 비동기식 핸드셰이킹 인터페이스(asynchronous handshaking interface)를 제공하는 공통 어드레스/데이터/컨트롤 메모리 버스(common address/data/control memory bus)를 포함할 수 있다. 쓰기 에러 태그(Write Error Tag) 및 쓰기/검증 쓰기 회로는 빠른 평행 보유 테스트(parallel retention test)를 실행하기 위해 테스트 디자인(Design for Test; DFT) 회로에 덧붙여 메모리에 포함될 수 있다. 테스트 인터페이스도 SiP 메모리 테스트에 포함될 수 있다. 제어 레지스터 및 멀티플렉싱 회로망도 어드레스 재구성을 위해 제공되거나, 전원 플레인(power planes) 및 게이팅 회로망(gating circuitry)이 전원 관리에 포함될 수 있다.
본 발명은 복수의 시스템들로 호환 가능하게 하는 것을 포함하여 다양한 이익을 제공할 수 있다. 설정가능한 어드레스 스킴(Configurable address scheme)이 프로그램 가능하고 메모리-타입의 독립적인 I/O 인터페이스, 복수의 프로세서들 및 주변부를 지원하는데 사용될 수 있다.
본 발명의 확실한 특징은 그것들을 시스템-인-패키지(System-in-Package; SiP) 또는 시스템-온-칩(System-on-Chip; SoC)에 구현함으로써 가장 잘 실현될 수 있다. 그러한 구현들은 메모리 어레이와 메모리 프로세서 침들 사이에 좋은 연관성을 필요로 한다. 예를 들어, 이것은 트루 실리콘 비아(True Silicon Via; TSV) 또는 다른 SiP 기술들을 사용하여 실현될 수 있다. 낮은 레이턴시(latency) 및 높은 쓰루풋(throughput) SiP 연결은 향상된 시스템 동작을 제공할 수 있다. SiP 연결 기술 비용은 계속 감소하므로, 그러한 시스템의 비용 약점은 최소화될 수 있다.
본 발명의 원리는 클럭-레스(clock-less) 메모리 동작을 제공함으로써, 그리고/또는 사용되지 않는 메모리 영역을 닫음으로써, SiP 솔루션을 사용하여 I/O 부하를 감소시켜 전력 소모를 감소시킬 수 있다. 전압 제어, 온도 보상, 및 비동기식 타이밍 회로망은 전력 소모를 줄이고 좀 더 효율적인 동작을 제공하도록 도울 수 있다.
다른 원리들은 디바이스 프로세서가 반복적인 계산 또는 다른 작업들을 스마트 메모리 시스템으로 떠넘길 수 있도록 한다(offload). 예를 들어, ARM, MIPs 또는 다른 바람직한 프로프라이어테리 프로세서(proprietary processor) 조합은 다양한 프로세싱 작업들을 실행하여 장치 리소스들을 해소할 수 있도록 메모리 컨트롤러, 또는 스마트 메모리 시스템의 다른 영역에 제공될 수 있다.
메모리 모니터링, 수리, 정정, 및 재배열은 본 발명의 원리에 따라서 스마트 메모리 컨트롤러에 의해 실행될 수 있다. ECC, 안티-퓨즈 리페어(anti-fuse repair), 에러 마스킹(error masking), 읽기-쓰기 비교(read-compare-write), 위크 비트 교체(weak bit replacement), 및 다른 에러 정정 기술들이 데이터 안정성을 강화시키고 에러율을 감소시키기 위해 스마트 메모리 시스템 내에 구현될 수 있다.
본 발명의 원리를 포함하는 한 실시 예에 따라, 메모리 회로는 메모리 셀에 저장되도록 채택된 제 1 데이터를, 앞서 메모리 셀에 앞서 저장된 제 2 데이터와 비교하도록 구성된 비교 블록을 부분적으로 포함할 수 있다. 비교 블록은 메모리 셀의 어드레스를 저장하도록 더 구성될 수 있는데, 제 2 데이터가 제 1 데이터와 매치되지 않으면 메모리 셀 내에 제 2 데이터가 저장된다. 메모리 셀은 순차적인 쓰기 사이클 동안 기록된다. 어드레스는 태그 메모리에 저장될 수 있다. 예를 들어, 메모리 셀은 DRAM, SRAM, ROM, PROM,EEPROM, FLASH, FeRAM, PCRAM, RRAM, MRAM 또는 STT-MRAM 셀일 수 있다.
어떤 실시 예에서, 메모리 회로는 메모리 어레이, 쓰기 블록 및 읽기 블록을 더 포함할 수 있다. 쓰기 블록은 메모리 어레이와 비교 블록 사이에 연결될 수 있다. 읽기 블록은 메모리 어레이와 비교 블록 사이에 연결되어 읽기 블록은 제 2 데이터를 감지할 수 있도록 채택될 수 있다. 메모리 블록은, 메모리 셀이 메모리 외부에 있는 장치에 의해 노멀 쓰기 동작 동안 억세스 되지 않을 때, 반전된 제 2 데이터를 메모리 셀로 저장하도록 구성된 제어 로직을 더 포함할 수 있다.
한 실시 예에서, 메모리 어레이는 복수의 메모리 셀들에 연결된 적어도 하나의 열을 포함할 수 있다. 열은 제 1 신호 라인 및 제 2 신호 라인을 포함할 수 있다. 메모리 셀은 제 1 신호 라인에 연결된 제 1 전류 운반 단자(current carrying terminal), 제 2 신호 라인에 연결된 제 2 전류 운반 단자 및 워드 라인에 연결된 제어 단자를 포함할 수 있다. 메모리 셀은 자기 터널 접합(magnetic tunnel junction; MTJ) 및 제 1 트랜지스터를 더 포함할 수 있다. 자기 접합 터미널은 메모리 셀의 제 1 전류 운반 단자에 연결된 제 1 단자를 가질 수 있다. 제 1 트랜지스터는 불휘발성 메모리 셀의 제 2 전류 운반 단자에 연결된 제 1 전류 운반 단자, 불휘발성 메모리 셀의 제 2 전류 운반 단자에 연결된 게이트 단자, 및 자기 터널 접합의 제 2 터미널에 연결된 제 2 전류 운반 단자를 가질 수 있다.
한 실시 예에 따라서, 메모리 회로에서 쓰기 동작 동안 쓰기 에러를 정정하는 방법은 메모리 셀에 저장되도록 채택된 제 1 데이터를 쓰기 동작 동안 메모리 셀에 앞서 저장된 제 2 데이터와 비교하는 것, 만약 제 2 데이터가 제 1 데이터와 매치되지 않는다면, 그것 안에 데이터가 저장된 메모리 셀의 어드레스를 저장하는 것, 및 쓰기 에러를 정정하기 위해 연속적인 쓰기 사이클 동안 메모리 셀로 쓰는 것을 포함할 수 있다.
다른 실시 예에 따라서, 메모리 회로에서 쓰기 동작 동안 쓰기 에러를 정정하는 방법은 메모리 셀에 저장되도록 채택된 제 1 데이터를 쓰기 동작 동안 메모리 셀에 앞서 저장된 제 2 데이터와 비교하는 것, 만일 제 2 데이터가 제 1 데이터와 매치되지 않는다면 제 2 데이터를 반전하는 것, 및 만일 제 2 데이터가 쓰기 에러를 정정하기 위한 제 1 데이터와 매치 되지 않으면 반전된 제 2 데이터를 그것 안에 제 2 데이터가 저장된 메모리 셀의 어드레스로 쓰는 것을 포함할 수 있다. 방법은 메모리 셀의 어드레스를 래치하는 것, 제 1 데이터를 래치하는 것, 제 1 데이터를 메모리 셀의 어드레스에 있는 메모리 어레이로 쓰는 것, 및 쓰기 동작 동안 제 2 데이터를 감지하는 것을 더 포함할 수 있다.
또 다른 실시 예에 따라서, 메모리 회로에서 쓰기 동작 이후 쓰기 에러를 정정하는 방법은 만일 쓰기 동작 이후 제 2 데이터가 제 1 데이터와 매칭되지 않는다면 그것 안에 제 2 데이터가 저장된 메모리 셀의 어드레스를 로딩하고, 제 2 데이터를 감지하고, 쓰기 에러를 정정하기 위해 그것 안에 제 2 데이터가 저장된 메모리 셀의 어드레스로 반전된 제 2 데이터를 쓰는 것을 포함할 수 있다.
어떤 실시 예는 메모리 장치에 에러율 자가 내장 테스트(built-in self test)를 제공하는 방법을 포함할 수 있다. 예를 들어, 방법은 테스트 모드로 진입하고, 메모리 장치에 의해 에러율 타이밍 패턴을 내부적으로 생성하고, 메모리 장치에 의해 내부적으로 생성된 에러율 타이밍 패턴에 기초하여 비트 에러율 자가 내장 테스트(built-in self test)를 실행하고, 에러율 자가 내장 테스트로부터 기인하는 에러율을 측정하고, 측정된 에러율에 기초하여 하나 또는 그 이상의 테스트 파라미터들을 조정하고, 그리고 조정된 파라미터들을 사용하여 비트 에러율 자가 내장 테스트를 반복하는 것을 포함할 수 있다.
다른 실시 예는 메모리 장치에 비트 에러율 자가 내장 테스트를 제공하는 방법을 포함할 수 있다. 방법은 메모리 장치에 의해 쓰기 에러율 자가 내장 테스트(write error rate built-in self test) 및 읽기 에러율 자가 내장 테스트(read error rate built-in self test) 중 적어도 하나를 실행하고, 쓰기 에러율 자가 내장 테스트 및 읽기 에러율 자가 내장 테스트 중 적어도 하나의 결과를 분석하고, 그리고 상기 분석에 응답하여 하나 또는 그 이상의 테스트 파라미터들을 자동적으로 조정하는 것을 포함할 수 있다.
한 실시 예에 따르면, 메모리 장치는 비트 에러율 자가 내장 테스트를 제어하도록 구성된 비트 에러율 제어 로직(bit error rate control logic), 비트 에러율 제어 로직에 결합된 어드레스 및 데이터 생성기(address and data generator), 비트 에러율 자가 내장 테스트를 위해 내부의 기준 클럭을 생성하도록 구성된 온-칩 오실레이터(on-chip oscillator), 비트 에러율 자가 내장 테스트를 위한 쓰기 에러 테스트 패턴을 생성하도록 구성된 쓰기 에러율 테스트 패턴 생성기(write error rate test pattern generator), 및 비트 에러율 자가 내장 테스트를 위한 읽기 테스트 패턴을 생성하도록 구성된 읽기 에러율 테스트 패턴 생성기(read error rate test pattern generator)를 포함할 수 있다.
다른 실시 예에서, 불휘발성 메모리 장치(non-volatile memory; NVM) 프로그램 메모리는 페일(fail) 어드레스 위치 및 에러의 타입과 관련된 정보를 저장하는데 이용될 수 있다. NVM 프로그램 메모리는 페일 메모리 위치의 어드레스를 새로운 메모리 위치로 재배열하는데 더 사용될 수 있다. 스마트 메모리 시스템의 메모리 컨트롤러는 NVM 프로그램 메모리에 저장된 에러 정보에 기초하여 메모리를 테스트하거나, 메모리 어드레스를 재배치하거나, 메모리 리프레시를 실행하거나, 또는 다른 적절한 동작을 실행하기 위해 NVM 프로그램 메모리와 인터페이스할 수 있다.
본 발명의 실시 예에 따르면, 메모리 시스템의 신뢰성을 향상시킬 수 있다.
도 1a는 관련 분야에서 잘 알려진, 평행 자화 상태에 있을 때의 자기 랜덤 억세스 메모리 셀의 자기 터널 접합 구조를 보여주는 단면도이다.
도 1b는 관련 분야에서 잘 알려진, 반-평행 자화 상태에 있을 때의 도 1a의 자기 터널 접합 구조를 보여주는 단면도이다.
도 1c는 관련 분야에서 잘 알려진, 평행 자화 상태에 있을 때의 자기 랜덤 억세스 메모리 셀의 자기 터널 접합 구조를 보여주는 단면도이다.
도 1d는 관련 분야에서 잘 알려진, 반-평행 자화 상태에 있을 때의 도 1c의 자기 터널 접합 구조를 보여주는 단면도이다.
도 2a는 관련 분야에서 잘 알려진, 관련된 선택 트랜지스터에 연결된 자기 터널 접합 구조의 층들을 보여주는 도면이다.
도 2b는 관련 분야에서 잘 알려진, 도 2의 자기 터널 접합 구조 및 관련된 선택 트랜지스터를 도식화한 도면이다.
도 3은 관련 분야에서 잘 알려진, 인가된 전압에 응답하여, 도 2a의 자기 터널 접합 구조의 저항에 있어서의 변화를 보여주는 그래프이다.
도 4a는 관련 분야에서 잘 알려진, 반-평행 상태로부터 평행 상태로 전환시키기 위해 프로그램되는 자기 터널 접합 구조를 보여주는 도면이다.
도 4b는 관련 분야에서 잘 알려진, 평행 상태로부터 반-평행 상태로 전환시키기 위해 프로그램되는 자기 터널 접합 구조를 보여주는 도면이다.
도 5는 관련 분야에서 잘 알려진, "0" 및 "1"을 쓰는 동작 동안 자기 랜덤 억세스 메모리와 관련된 복수의 신호들을 보여주는 타이밍도이다.
도 6a는 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 회로망을 보여주는 블록도이다.
도 6b는 본 발명의 실시 예에 따른 불휘발성 메모리(NVM) 프로그램 메모리 및 메모리 컨트롤러를 포함하는 스마트 메모리 시스템 및 관련된 회로망을 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 쓰기 및 읽기 회로망의 추가적인 부분을 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 쓰기 회로망의 추가적인 부분을 보여주는 도면이다.
도 9a는 본 발명의 실시 예에 따른 메모리 시스템의 쓰기 방법의 단계를 보여주는 흐름도이다.
도 9b는 본 발명의 실시 예에 따른 메모리 시스템의 쓰기 방법의 단계를 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템의 다시 쓰기 방법의 단계를 보여주는 흐름도이다.
도 11은 일반적인 메모리 시스템의 블록도이다.
도 12는 본 발명의 실시 예에 따른 스마트 메모리 시스템의 블록도이다.
도 13은 본 발명의 실시 예에 따른 지능적인 메모리 및 로직 인터페이스를 갖는 메모리 컨트롤러의 블록도이다.
도 14a 및 14b는 본 발명의 실시 예에 따른 스마트 메모리 시스템을 포함하는 실시 예를 보여주는 블록도이다.
도 15a 및 15b는 각각 본 발명의 실시 예에 따른 핀 아웃 테이블 및 커맨드 테이블이다.
도 15c는 본 발명의 실시 예에 따른 도 15a 및 15b의 테이블에 관련된 읽기/쓰기 동작 핸드셰이킹(handshaking) 회로망을 보여주는 도면이다.
도 16a는 본 발명의 실시 예에 따른 신호 테이블이다.
도 16b는 본 발명의 실시 예에 따른, 도 16a의 테이블과 관련된 확인 응답(acknowledgement)을 이용하는 비동기식 읽기 동작의 타이밍도이다.
도 17a는 본 발명의 실시 예에 따른 신호 테이블이다.
도 17b는 본 발명의 실시 예에 따른 도 17a의 테이블과 관련된 확인 응답(acknowledgement)을 이용하는 비동기식 쓰기 동작의 타이밍도이다.
도 18a는 도 16a 및 17b에 나타난 비동기식 읽기 및 쓰기 동작을 제어하기 위한 메모리 제어 회로를 보여주는 도면이다.
도 18b는 도 18a의 제어 회로를 위한 신호의 타이밍을 보여주는 타이밍도이다.
도 19는 도 16a 내지 17b에 나타난 읽기 및 쓰기 동작에 사용될 수 있는 읽기/쓰기 구조를 보여주는 도면이다.
도 20a는 본 발명의 실시 예에 따른 메모리 어레이 및 제어 로직을 보여주는 도면이다.
도 20b는 본 발명의 실시 예에 따른 쓰기 확인 회로를 보여주는 도면이다.
도 21은 본 발명의 실시 예에 따른 읽기 트래킹(tracking) 회로를 보여주는 도면이다.
도 22는 본 발명의 실시 예에 따른 전류-전압 컨버터 및 증폭기를 보여주는 도면이다.
도 23a 및 23b는 본 발명의 실시 예에 따른 SAE 타이밍 트래킹 및 제어 회로를 보여주는 블록도이다.
도 24는 본 발명의 실시 예에 따른 아날로그-디지털 컨버터를 보여주는 도면이다.
도 25a는 본 발명의 실시 예에 따른 온도 보상 전압 발생기를 보여주는 도면이다.
도 25b는 도 25a에 나타난 회로를 포함하는 시스템 블록도이다.
도 26a 및 26b는 본 발명의 실시 예에 따른 시스템-인-패키지(SiP) 스마트 메모리 시스템을 보여주는 블록도이다.
도 27은 본 발명의 실시 예에 따른 블록도이다.
도 28a, 28b, 29-30, 31a, 및 31b는 본 발명의 실시 예에 따른 도 27의 메모리 블록도의 비트 에러율 제어 로직을 보여주는 블록도이다.
도 32는 본 발명의 실시 예에 따른 쓰기 에러율 자가 내장 테스트(write error rate built-in self test)를 실행하는 단계를 보여주는 흐름도이다.
도 33은 본 발명의 실시 예에 따른 읽기 에러율 자가 내장 테스트(read error rate built-in self test)를 실행하는 단계를 보여주는 흐름도이다.
도 34는 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트를 실행하는 단계를 보여주는 흐름도이다.
도 35는 본 발명의 실시 예에 따른 데이터 "1" 쓰기 에러율 자가 내장 테스트의 파형을 보여주는 타이밍도이다.
도 36은 본 발명의 실시 예에 따른 데이터 "0" 쓰기 에러율 자가 내장 테스트의 파형을 보여주는 타이밍도이다.
도 37은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트를 실행하는 단계를 보여주는 흐름도이다.
도 38은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트 생성기 및 제어 로직을 포함하는 시스템 보여주는 도면이다.
도 1b는 관련 분야에서 잘 알려진, 반-평행 자화 상태에 있을 때의 도 1a의 자기 터널 접합 구조를 보여주는 단면도이다.
도 1c는 관련 분야에서 잘 알려진, 평행 자화 상태에 있을 때의 자기 랜덤 억세스 메모리 셀의 자기 터널 접합 구조를 보여주는 단면도이다.
도 1d는 관련 분야에서 잘 알려진, 반-평행 자화 상태에 있을 때의 도 1c의 자기 터널 접합 구조를 보여주는 단면도이다.
도 2a는 관련 분야에서 잘 알려진, 관련된 선택 트랜지스터에 연결된 자기 터널 접합 구조의 층들을 보여주는 도면이다.
도 2b는 관련 분야에서 잘 알려진, 도 2의 자기 터널 접합 구조 및 관련된 선택 트랜지스터를 도식화한 도면이다.
도 3은 관련 분야에서 잘 알려진, 인가된 전압에 응답하여, 도 2a의 자기 터널 접합 구조의 저항에 있어서의 변화를 보여주는 그래프이다.
도 4a는 관련 분야에서 잘 알려진, 반-평행 상태로부터 평행 상태로 전환시키기 위해 프로그램되는 자기 터널 접합 구조를 보여주는 도면이다.
도 4b는 관련 분야에서 잘 알려진, 평행 상태로부터 반-평행 상태로 전환시키기 위해 프로그램되는 자기 터널 접합 구조를 보여주는 도면이다.
도 5는 관련 분야에서 잘 알려진, "0" 및 "1"을 쓰는 동작 동안 자기 랜덤 억세스 메모리와 관련된 복수의 신호들을 보여주는 타이밍도이다.
도 6a는 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 회로망을 보여주는 블록도이다.
도 6b는 본 발명의 실시 예에 따른 불휘발성 메모리(NVM) 프로그램 메모리 및 메모리 컨트롤러를 포함하는 스마트 메모리 시스템 및 관련된 회로망을 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 쓰기 및 읽기 회로망의 추가적인 부분을 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 쓰기 회로망의 추가적인 부분을 보여주는 도면이다.
도 9a는 본 발명의 실시 예에 따른 메모리 시스템의 쓰기 방법의 단계를 보여주는 흐름도이다.
도 9b는 본 발명의 실시 예에 따른 메모리 시스템의 쓰기 방법의 단계를 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템의 다시 쓰기 방법의 단계를 보여주는 흐름도이다.
도 11은 일반적인 메모리 시스템의 블록도이다.
도 12는 본 발명의 실시 예에 따른 스마트 메모리 시스템의 블록도이다.
도 13은 본 발명의 실시 예에 따른 지능적인 메모리 및 로직 인터페이스를 갖는 메모리 컨트롤러의 블록도이다.
도 14a 및 14b는 본 발명의 실시 예에 따른 스마트 메모리 시스템을 포함하는 실시 예를 보여주는 블록도이다.
도 15a 및 15b는 각각 본 발명의 실시 예에 따른 핀 아웃 테이블 및 커맨드 테이블이다.
도 15c는 본 발명의 실시 예에 따른 도 15a 및 15b의 테이블에 관련된 읽기/쓰기 동작 핸드셰이킹(handshaking) 회로망을 보여주는 도면이다.
도 16a는 본 발명의 실시 예에 따른 신호 테이블이다.
도 16b는 본 발명의 실시 예에 따른, 도 16a의 테이블과 관련된 확인 응답(acknowledgement)을 이용하는 비동기식 읽기 동작의 타이밍도이다.
도 17a는 본 발명의 실시 예에 따른 신호 테이블이다.
도 17b는 본 발명의 실시 예에 따른 도 17a의 테이블과 관련된 확인 응답(acknowledgement)을 이용하는 비동기식 쓰기 동작의 타이밍도이다.
도 18a는 도 16a 및 17b에 나타난 비동기식 읽기 및 쓰기 동작을 제어하기 위한 메모리 제어 회로를 보여주는 도면이다.
도 18b는 도 18a의 제어 회로를 위한 신호의 타이밍을 보여주는 타이밍도이다.
도 19는 도 16a 내지 17b에 나타난 읽기 및 쓰기 동작에 사용될 수 있는 읽기/쓰기 구조를 보여주는 도면이다.
도 20a는 본 발명의 실시 예에 따른 메모리 어레이 및 제어 로직을 보여주는 도면이다.
도 20b는 본 발명의 실시 예에 따른 쓰기 확인 회로를 보여주는 도면이다.
도 21은 본 발명의 실시 예에 따른 읽기 트래킹(tracking) 회로를 보여주는 도면이다.
도 22는 본 발명의 실시 예에 따른 전류-전압 컨버터 및 증폭기를 보여주는 도면이다.
도 23a 및 23b는 본 발명의 실시 예에 따른 SAE 타이밍 트래킹 및 제어 회로를 보여주는 블록도이다.
도 24는 본 발명의 실시 예에 따른 아날로그-디지털 컨버터를 보여주는 도면이다.
도 25a는 본 발명의 실시 예에 따른 온도 보상 전압 발생기를 보여주는 도면이다.
도 25b는 도 25a에 나타난 회로를 포함하는 시스템 블록도이다.
도 26a 및 26b는 본 발명의 실시 예에 따른 시스템-인-패키지(SiP) 스마트 메모리 시스템을 보여주는 블록도이다.
도 27은 본 발명의 실시 예에 따른 블록도이다.
도 28a, 28b, 29-30, 31a, 및 31b는 본 발명의 실시 예에 따른 도 27의 메모리 블록도의 비트 에러율 제어 로직을 보여주는 블록도이다.
도 32는 본 발명의 실시 예에 따른 쓰기 에러율 자가 내장 테스트(write error rate built-in self test)를 실행하는 단계를 보여주는 흐름도이다.
도 33은 본 발명의 실시 예에 따른 읽기 에러율 자가 내장 테스트(read error rate built-in self test)를 실행하는 단계를 보여주는 흐름도이다.
도 34는 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트를 실행하는 단계를 보여주는 흐름도이다.
도 35는 본 발명의 실시 예에 따른 데이터 "1" 쓰기 에러율 자가 내장 테스트의 파형을 보여주는 타이밍도이다.
도 36은 본 발명의 실시 예에 따른 데이터 "0" 쓰기 에러율 자가 내장 테스트의 파형을 보여주는 타이밍도이다.
도 37은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트를 실행하는 단계를 보여주는 흐름도이다.
도 38은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트 생성기 및 제어 로직을 포함하는 시스템 보여주는 도면이다.
도면과 함께 설명되는 본 발명의 사상에 따른 실시 예들이 참조 부호를 통하여 자세히 설명된다. 후술하는 상세한 설명에서, 다양한 실시 예들이 발명의 이해를 돕기 위해 설명된다. 그러나, 본 기술이 속하는 분야에서 통상의 지식을 지닌 자는 이 상세한 설명들 없이도 발명을 실시할 수 있을 것이다. 어떤 사례에서는, 잘 알려진 방법, 과정, 요소, 회로, 및 네트워크들은 발명의 실시 예들을 불필요하게 모호하지 않게 하기 위해 설명되지 않을 수 있다.
비록 "제 1", "제 2" 등의 용어가 여기서 다양한 요소를 설명하기 위해 사용될 수 있다 하더라도, 이들 요소는 이 용어들에 의해 한정되어서는 안될 것이다. 이 용어들은 단지 다른 것들로부터 하나의 구성요소를 구별하기 위해 사용될 수 있다. 예를 들어, 본 발명의 범위를 벗어나지 않는 범위 내에서 제 1 회로는 제 2 회로라 일컬어질 수 있고, 유사하게, 제 2 회로는 제 1 회로라 일컬어질 수 있다.
본 발명의 상세한 설명에서 사용되는 용어는 단지 특정한 실시 예를 상세히 설명하고자 하는 목적일 뿐, 그 실시 예에 한정하기 위한 것이 아니다. 상세한 설명에서 사용되는 "a", "an", 및 "the"와 같은 용어는 명백하게 다른 것들을 가리키지 않는 한, 복수의 형태를 포함하도록 의도된 것이다. "and/or"와 같은 용어는 관련된 열거된 목록의 하나 또는 그 이상의 조합을 포함하기 위해 사용된 것임은 잘 이해될 것이다. 본 발명의 상세한 설명에서 사용되는 "comprises" 및/또는 "comprising"과 같은 용어는 설명된 특징, 정수, 단계, 동작, 성분, 및/또는 구성요소의 존재를 명시하나, 추가적인 하나 또는 그 이상의 특징, 정수, 단계, 동작, 성분, 구성요소 및/또는 그들의 그룹의 존재를 불가능하게 하지는 않는다. 도면들의 구성요소 및 특징들은 축적에 맞게 그려진 것은 아니다.
쓰기 동작 동안, 불휘발성 메모리 셀은 동일하고 안정적인 상태들 하에서조차 서로 다른 때에 다른 쓰기 시간을 무작위로 나타낼 수 있다. 그러한 동작은 제품 출하시 테스트 동안 차단될 수 있던 웨어-아웃 메카니즘(wear-our mechanism)의 결과는 아닐 수 있으나, 대신에 메모리 셀의 쓰기 특징의 확률적 행동(probabilistic behavior)으로부터 기인하는 것일 수 있다. 확률에 근거하지 않은 이유로 인해 불량으로 판단되는 메모리 셀들은 제품 출하시 테스트 및 수리 동작 동안 셀 집단(cell population)으로부터 제거될 수 있다. 예를 들어, 어떤 결함들은 리던던시 동작(redundancy operation) 동안 결함 있는 셀들을 온-칩 리던던트 셀들로 대체함으로써 수리될 수 있다. 결함들이 수리될 수 없을 때, 불량 칩들은 폐기될 수 있다. 그러나, 테스트 및 수리 동작들이 행하여진 이후라도, 남겨진 메모리 셀 집단은 메모리 칩의 신뢰성에 영향을 줄 수 있는 확률적 행동들을 보유할 수 있다.
제품 출하시의 테스트 및 수리가 행하여진 후, 칩은 최종 소비자에 의한 사용을 위해 선적되고 장치로 결합 될 수 있다. 칩이 최종 소비자에 의해 일반적으로 사용될 때, 메모리 시스템은 느린 쓰기 동작과 같은 결함 있는 셀들을 사용 가능한 어드레스 공간에 매핑함으로써, 결함 있는 셀들에 대응하는 어드레스 위치들을 표시하고 수리할 수 있다. 그러나, 패핑된 셀들은 보통의 상태로 회복되지 않고, 그 결과 그들의 어드레스 위치들은 영구적으로 리라우팅되기(rerouted) 때문에, 그들의 위치는 느린 쓰기 동작과 같은 결함 있는 셀들을 매핑하는 과정은 사용 가능한 어드레스 위치들의 감소를 초래할 수 있다. 따라서, 확률적(probabilistic) 셀 행동으로부터 기인하는 결함 있는 메모리 동작들은 제한된 리던던트 요소들의 고갈에 기인하는 낮은 수율, 또는 최종 소비자에 의해 사용 가능한 어드레스 공간의 고갈을 초래할 수 있다.
특히, 쓰기 동작 동안, 메모리 셀은 안정한 환경 조건들 하에서도 다른 상황에서 불규칙하게 서로 다른 쓰기 시간을 가질 수 있다. 따라서, 여러 경우에, 셀 집단이 결함으로부터 자유로운 경우에조차, 이 행동은 데이터를 메모리 시스템으로 쓰는 동안에 에러를 발생시킬 수 있다. 새로운 메모리 회로 솔루션은 이 확률적 셀 행동 문제점(probabilistic cell behavior problem)을 극복하는 것을 필요로 한다.
본 발명의 일 실시 예에 따르면, 태그 메모리(tag memory) 또는 불휘발성 메모리(NVM)는 확률적 행동에 기인하는, 쓰기에 실패한 데이터의 어드레스 위치들을 저장할 수 있다. 저장된 태그 어드레스 위치들은 사용자가 보통의 쓰기 동작을 초기화한 후에, 데이터를 다시 쓰기(rewrite)하고 수정하는데 사용될 수 있다. 대신에, 사용자로부터 숨겨진 쓰기는, 셀이 확률적 행동에 기인하여 할당된 시간에 쓰기에 실패한 때에, 사용자에 의해 초기화된 보통의 쓰기 동작 동안 실행될 수 있다.
도 6a는 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 회로(100)를 보여주는 블록도이다. 도 6을 참조하여, 메모리 시스템(100)은 메모리 어레이(memory array)(102), 로우 디코더(row decoder)(110), 컬럼 디코더(column decoder)(120), 어드레싱 회로(addressing circuit)(130), 제어 로직(control logic)(140), 감지 및 쓰기 드라이버(sensing and write drivers)(150), 숨겨진 읽기 비교 영역(hidden read compare section)(160), 쓰기 에러 어드레스 태그 메모리(memory array)(170)(이하, 태그 메모리로 언급될 수 있음), 및 데이터 입출력 영역(data input output section)(180)을 포함할 수 있다.
어드레싱 회로(130)는 어드레스 버퍼 및 래치(132), 및 프리-디코더(134)를 더 포함할 수 있다. 데이터 입출력(I/O) 영역(180)은 입력 버퍼 데이터-인-래치(input buffer data-in latch)(182) 및 데이터-아웃-래치 출력 버퍼(data-out latch output buffer)(184)를 더 포함할 수 있다. 여기서 감지하는(sensing) 및 읽는(reading)이라는 용어는 감지(sense) 및 읽기(read)로 대체될 수 있다.
메모리 어레이(102)는 복수의 컬럼들, 워드 라인들, 및 컬럼들과 워드 라인들이 교차하는 곳에 배치된 메모리 셀들을 포함할 수 있다. 각각의 메모리 셀들은 데이터 비트(data bit)를 저장할 수 있다. 예를 들어 메모리 셀은 DRAM, SRAM, ROM, PROM, EEPROM, FLASH, FeRAM, PCRAM, MRAM, STT-MRAM, RRAM, 또는 기술에 의존하는 다른 타입의 메모리 셀일 수 있다. 그러나, 상기 실시 예에 한정되지 않으며, 이하 후술될 실시 예들은 STT-MRAM 셀들을 이용하여 설명될 것이다.
로우 디코더(110)는 프리-디코더(pre-decoder)(134)에 의해 구동되는 그것의 입력 버스에 의해 결정되는 워드 라인들 중 하나를 선택하고 구동할 수 있다. 유사하게, 컬럼 디코더(120)는 프리-디코더(134)에 의해 구동되는 그것의 입력 버스에 의해 결정되는 컬럼들 중 하나를 선택하고 구동할 수 있다. 프리-디코더(134)는 어드레스 버퍼 및 래치(132)로부터의 어드레스 버스 신호들에 응답하는, 그리고 제어 로직으로부터의 어드레스(ADDR) 인에이블 신호(135)에 응답하는 로우 및 컬럼 디코더 입력 버스 신호들을 구동할 수 있다. 어드레스 버퍼 및 래치(132)는 어드레스 버스 A(n:0)으로부터의 신호들에 응답하여 동작할 수 있고, 원하는 데이터 비트의 위치에 대응하는 메모리 시스템 외부로부터 수신된 n+1 개의 어드레스 신호들을 래치할 수 있다. 또한, 어드레스 버퍼 및 래치(132)는 제어 로직(140)에 응답하여 동작할 수 있다.
제어 로직(140)은 메모리 시스템 외부로부터 신호들을 커맨드 버스 CMD(m:0)로 수신하고, 숨겨진 읽기 비교 영역(hidden read compare section)(160)으로부터의 에러 플래그(error flag)(165)에 응답하여 동작할 수 있다. 제어 로직은 메모리 시스템의 동작을 제어하는데 사용되는 다양한 신호들을 전송한다. 예를 들어, 신호들은 감지 및 쓰기 드라이버(150)로 전송되는 읽기 쓰기(R/W) 제어 신호(142), 데이터 I/O(180)으로 전송되는 데이터 래치 제어(DQ 제어) 신호(144), 및 쓰기 에러 어드레스 태그 메모리(170)로 전송되는 제어 신호(146)를 포함할 수 있다.
쓰기 에러 어드레스 태그 메모리(170)는 쌍방향 버스(172)를 통하여 제어 신호(140) 및 에러 플래그(165)에 응답하여 어드레스 버퍼 및 래치(132)로부터 어드레스 신호들을 송수신할 수 있다. 이에 대해서는 상세하게 후술 될 것이다. 쓰기 에러 어드레스 태그 메모리(170)는 확률적 행동들을 보유하는 메모리 셀들의 어드레스들을 저장할 수 있고, 따라서, 메모리 시스템의 쓰기 사이클 동안 성공적으로 쓰기 동작을 수행하지 못할 수 있다. 쓰기 에러 어드레스 태그 메모리(170)에 저장된 어드레스들은 최초에 메모리 시스템에 입력되는 데이터를 적정하게 나타내기 위해 논리적으로 변환될 수 있는 메모리에 저장된 데이터 비트들을 나타낼 수 있다.
예를 들어, 본 발명의 실시 예에 따른 쓰기 에러 어드레스 태그 메모리는 불휘발성 메모리, FIFO, SRAM, 또는 D 플립-플롭 레지스터(D flip-flop register)일 수 있다. 쓰기 에러 어드레스 태그 메모리(write error address tag memory)(170)에 있는 메모리 셀들은 메모리 어레이(102)에 있는 메모리 셀들과 동일한 타입의 기술에 기초하거나 그와 같이 디자인될 수 있고, 또는 다른 타입의 기술이거나 그와 같이 디자인될 수 있다. 쓰기 에러 어드레스 태그 메모리(170)에 있는 메모리의 폭(width)은 어드레스 신호들(즉, n+1)의 개수에 대응할 수 있다. 쓰기 에러 어드레스 태그 메모리(170)에 있는 메모리의 깊이(depth)는 각각의 다시 쓰기(rewrite) 동작을 위해 필요로 하거나 요구되는 에러 정정가능한 비트들의 개수에 의존할 수 있다. 예를 들어, 만일 확률적 쓰기 에러율이 평균적인 메모리 셀 집단에 비해 높다면, 쓰기 에러 주소 태그 메모리 깊이는 에러율이 작은 때 보다 크게 선택될 수 있다.
입력 버퍼 데이터-인 래치(data-in latch)(182)는 메모리 시스템의 외부로부터 양방향 버스 DQ(x:0)에 데이터를 수신 및 래치할 수 있고, 감지 회로 및 쓰기 드라이버 사이에 통합될 수 있는 숨겨진 읽기 비교 영역(hidden read compare section)(160)으로 별도의 양방향 버스를 통하여 데이터를 전송할 수 있는데, 이에 대해서는 상세하게 후술 될 것이다. 데이터-아웃 래치(data-out latch) 출력 버퍼(184)는 감지 및 쓰기 드라이버(150)로부터 양방향 버스(186)에 데이터를 수신 및 래치할 수 있고, 양방향 버스 DQ(x:0)를 통하여 메모리 시스템 외부로 데이터를 전송할 수 있다.
도 6b는 도 6a에 도시된 것과 유사한 에러 검출 및 어드레스 테이블 생성 회로(error detection and address table generation circuit)를 보여주는 블록도이다. 그러나, 이는 발명의 실시 예에 따라 다른 구성요소를 더 포함할 수 있다. 특히, 도 6a에 도시된 것과는 다르게, 도 6b의 에러 검출 및 어드레스 테이블 생성 회로는 외부의 스마트 메모리 컨트롤러(190) 및 불휘발성 메모리(NVM) 프로그램 메모리(195)를 더 포함할 수 있다. 스마트 메모리 컨트롤러(190)는 본 명세서에서 스마트 메모리 프로세서(smart memory processor), 메모리 프로세서(memory processor), 또는 스마트 컨트롤러(smart controller) 등으로 표현될 수 있다. 이 경우에, NVM 프로그램 메모리(195)는 앞선 실시 예의 쓰기 에러 태그 메모리(170)에 더하여 FIFO일 수 있다. NVM 프로그램 메모리(195)는 본 명세서에서 불휘발성 에러 보유 메모리(error retention)로 일컬어질 수 있다.
도 6b를 참조하여, 스마트 메모리 컨트롤러(190)는 메모리 컨트롤러(191), 메모리 컨피규레이터(memory configurator)(192), 및 전원 관리자(power manager)(193)를 포함할 수 있다. 스마트 메모리 컨트롤러(190)는 메모리 버스(194)를 통하여 스마트 메모리(100) 및 NVM 메모리(195)와 통신할 수 있다. 시스템은 메모리 시스템 페일(failures)을 동적으로 모니터링하고, 불휘발성 메모리(196)에 그것들을 저장함으로써 페일/에러 형태뿐만 아니라 페일 위치들도 기록할 수 있다. 특히, FIFO(170)에 일시적으로 저장된 쓰기 에러 어드레스 태그 정보는 메모리 컨트롤러(190)의 제어 하에 메모리 버스(194)를 통하여 NVM 프로그램 메모리(195) 전송될 수 있다. NVM 프로그램 메모리(195)는 스마트 메모리 컨트롤러(190)로부터 에러 포인터(error pointer)(199)를 수신할 수 있다. NVM 프로그램 메모리(195)는 에러 타입의 작성(tabulation)(197)뿐만 아니라, 페일된 메모리 어드레스들의 데이터베이스(196)를 축적할 수 있다. 시스템은 NVM 테이블로부터 페일된 위치를 소환할 수 있고(즉, RACALL(198)), 페일 타입에 기초하여 개략적인 수리 동작(fix operation)을 실행할 수 있다. 메모리 컨피규레이터(193)는 어드레스 위치들을 수리 불가능한 에러들로 매핑(mapping)하는데 사용될 수 있다.
데이터 에러의 형태(197)에 따라 페일 메모리 어드레스를 태그 메모리(170) 또는 NVM 프로그램 메모리(195)에 저장될 수 있게 함으로써, 메모리 컨트롤러(190)는 태그 또는 NVM 프로그램 메모리에 억세스하도록 구성될 수 있고, 지시된 에러의 타입에 기초한 어드레스 위치를 위한 개략적인 수리 동작(fix operation)을 실행하도록 구성될 수 있다. 예를 들어, 수리 동작은 메모리 다시 쓰기(rewrite), 페일된 메모리 위치를 고립시키기 위한 어드레스 재구성(reconfiguration), 또는 다른 개략적인 수리들을 포함할 수 있다. 메모리 모니터링(Memory monitoring), 수리(repair), 정정(correction), 그리고 재배열(re-assignment)은 본 발명의 실시 예에 따라 스마트 메모리 컨트롤러에 의해 실행될 수 있다. 데이터 안정성을 강화시키고 에러율을 줄이기 위해 ECC, 안티-퓨즈 수리(anti-fuse repair), 에러 마스킹(error masking), 읽기-쓰기 비교(read-compare-write), 위크 비트 리프레시(weak bit refresh), 및 다른 에러 정정 기술들이 스마트 메모리 시스템 안에 구현될 수 있다.
도 7은 본 발명의 실시 예에 따라 메모리 시스템(100)의 일부분(200) 및 관련된 쓰기 및 읽기 회로를 도시한 회로도이다. 회로(200)는 메모리 어레이 타일(MAT)(102), 로컬 컬럼 선택 회로(local column select circuit; LCS)(104), 감지 및 쓰기 드라이버(150), 및 숨겨진 읽기 비교 영역(160)을 포함할 수 있다. 비록 본 실시 예는 STT-MRAM 셀들을 포함하는 것으로 설명되어 있으나, 이에 한정되지 않고, 앞서 설명된 다른 타입의 메모리들을 포함할 수 있다.
도 7을 참조하면, MAT(200)는 그것의 선택 트랜지스터들이 워드 라인들(WL0-WLn)에 연결되어 있고, 워드 라인들은 앞서 도 6a 및 6b와 관련하여 설명된 바와 같이 로우 디코더(110)에 의해 구동되는 복수의 STT-MRAM 셀들을 포함할 수 있다. STT-MRAM 셀들은 메모리 어레이(102)의 컬럼들 중 하나에 대응하는 소스 라인(SL)(210) 및 비트 라인(BL)(212) 쌍에 연결될 수 있다. MAT(102)는 LCS(104)에 의해 선택 가능한 복수의 SL 및 BL 쌍들을 포함할 수 있다. LCS(104)는 MAT(102)의 선택된 SL 및 BL 쌍을 컬럼 선택 신호(CS)(215)의 제어 하에 LCS(104)의 소스 라인 및 비트 라인 쌍(예컨대, MSL(220) 및 MBL(230))에 연결시키는 n-채널 선택 트랜지스터들의 쌍들, 프리차지 신호(PRE)(235), 아이솔레이션 상부 신호(isolation top signal; ISOT), 및 아이솔레이션 하부 신호(isolation bottom signal; ISOB)를 포함할 수 있다.
LCS(104)의 상부, 하부에 각각 배치된 두 개의 별개의 메모리 어레이들(102)이 본 실시 예에 도시되었다. LCS(104)는 각각의 ISOT 또는 ISOB 신호들 중 하나를 인에이블(enable) 시킴으로써, 인접한 MAT들(102) 중 어느 것이 선택할 것인지 여부를 판단할 수 있다. 도 7a에 도시된 실시 예에서, 상부 MAT는 ISOT를 인에이블 시키고 ISOB를 디스에이블(disable) 시킴으로써 선택될 수 있다. 그리고, SL 및 BL 쌍들 중 하나는 상부 MAT 어레이의 선택된 SL 및 BL 쌍을 각각의 MSL 및 MBL 라인들에 연결시키기 위해 (컬럼 디코더에 의해 구동됨으로써) CS 신호에 의해 선택될 수 있다. 그러면, SL/BL 쌍 및 대응하는 MSL/MBL 쌍은 프리차지 신호 PRE가 디스에이블 될 때, 선택된 메모리 셀을 위해 쓰기 또는 읽기 동작을 실행할 준비가 된다.
MSL(220) 및 MBL(230)은 LCS(104)로부터 (본 명세서에서 읽기 블록으로 언급될 수 있는) 감지 회로(255) 및 (본 명세서에서 쓰기 블록으로 언급될 수 있는) 쓰기 드라이버(250)까지 연결될 수 있다. 다른 실시 예(미도시)에서, SL 및 MSL 신호들은 작용을 하는 상보적인 컬럼을 필요로 하지 않는, 그리고 그것의 소스들이 (기술 분야에서 잘 알려져 있는 ROM, PROM, EPROM, EEPROM, 및 플래시와 같은) MAT 내의 접지에 연결되어 있는 메모리 셀들을 위한 싱글 라인 컬럼을 제공하는 컬럼 및 관련된 회로로부터 생략될 수 있다.
도 7에 도시된 바와 같이, 쓰기 드라이버(250)는 제어 로직에 의해 구동되는 인에이블 쓰기 신호(ENW)(260), 및 쓰기 드라이버의 데이터(D) 출력에 연결되는 숨겨진 읽기 비교 영역(160)의 출력(Y)에 연결될 수 있다. 쓰기 모드 동작 동안, 쓰기 드라이버(250)는 ENW의 제어 하에 상보적인 방법으로 MSL 및 MBL 라인들을 구동하는데, 이에 대해서는 상세하게 후술 될 것이다. ENW가 디스에이블 될 때, 쓰기 드라이버(250)는 MSL 및 MBL 라인들을 구동하지 않는다.
감지 회로(즉, 읽기 블록)(255)는 인에이블 읽기(ENR)(240) 신호에 의해 인에이블 될 수 있고, 전원 공급 장치에 연결된 트랜지스터 M5 및 접지에 연결된 트랜지스터 M3를 포함할 수 있다. M5 및 M3는 ENR 신호 및 그것의 상보적인 것(complement)에 각각 연결될 수 있다. ENR 및 ENW 신호들은 동시에 인에이블 되지 않을 수 있다. ENR이 인에이블 하이(enabled high) 될 때, 트랜지스터 M3는 턴 오프(turn off) 되고, 반면에, ENR에 의해 제어되는 트랜지스터 M4는 턴 온(turn on) 되고 MBL 신호를 커런트 미러(current mirror) M1 및 M2로 통과시키고, 트랜지스터 M5는 MSL(220)을 전원 공급 장치에 연결시킨다. 전류 ID1은 MBL에서 트랜지스터 M4로부터 커런트 미러의 트랜지스터 M1을 통하여 흐를 수 있다.
센스 앰프(sense amplifier; SA)(245)는 전류 기준 신호(current reference signal; IREF), 및 커런트 미러의 제 2 트랜지스터 M2를 통해 흐르는 제 2 전류(ID2)에 연결될 수 있다. SA는 두 전류들(ID2 및 IREF)을 비교하고, 데이터-아웃 신호(DR)를 읽기 라인(285)으로 이슈(issue)할 수 있다. 데이터 읽기 라인(285)은 양방향 버스(도 6a 및 6b 참조)를 통하여 데이터-아웃 래치 출력 버퍼(data-out latch output buffer)(184) 및 숨겨진 읽기 비교 영역(hidden read compare)(160)으로 연결될 수 있다. ENR이 디스에이블 로우(disabled low) 될 때, M4는 MBL(230)을 커런트 미러 및 M3로부터 고립시키고, 커런트 미러 입력을 접지 전압으로 연결t시킬 수 있다. 또한, SA(245)는 MAT(102)내에 배치되거나, 글로벌 센스 앰프 및 글로벌 쓰기 드라이버(미도시)와 함께 배치될 수 있다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템 및 관련된 쓰기 회로(100)의 쓰기 드라이버(300)의 실시 예를 보여주는 도면이다. 예를 들어, 도 7의 쓰기 드라이버(250)는 도 8의 쓰기 회로(300)로써 구현될 수 있다. 도 7 및 도 8을 참조하여, 쓰기 드라이버(250 및 300)는 ENW(260)의 제어 하에 각각 SL 및 BL 신호들을 구동하는 두 개의 인버터 드라이버들(351 및 352)을 포함할 수 있다. 싱글 라인(SL)은 MSL에 연결될 수 있는 반면, 반전된 비트 라인 신호(BL)는 MBL에 연결될 수 있다. EN(ENW)이 인에이블 하이(enabled high) 될 때, 숨겨진 읽기 비교 영역(160)으로부터의 입력(D)의 반전된 버전은 BL 신호로 연결될 수 있는 반면, 입력(D)의 반전되지 않은 버전은 SL 신호로 연결될 수 있는 것이어서, BL 및 SL 신호들은 논리적으로 상보적일 수 있다. EN(ENW)가 디스에이블 로우(disabled low) 될 때, 인버터 드라이버들(351 및 352)의 트랜지스터들은 입력(D)의 상태와 무관하게 오프(off)될 수 있고, MSL 및 MBL의 제어는 감지 회로로 되돌아갈 수 있다.
각각의 쓰기 사이클은 동일한 메모리 위치의 숨겨진 읽기 사이클을 따를 수 있다. 그리고, 숨겨진 읽기 동작(데이터-아웃)으로부터의 데이터는 기록되고 있는 데이터 비트 값에 비교될 수 있다. 만일, 데이터가 일치한다면, 쓰기 사이클은 종료된다. 만일, 데이터가 일치하지 않는다면, XNOR의 출력은 액티브 로우(active low)로 가고, ERROW 플래그가 생성될 수 있다. 이 위치를 위한 메모리 어드레스는 "태그(tag)"되거나, 이후의 다시 쓰기(rewrite) 동작을 위한 쓰기 에러 어드레스 태그 메모리에 저장될 수 있다.
본 발명의 실시 예에 따라, 전술된 메모리 어레이는 다음의 동작들을 실행하기 위한 회로를 포함할 수 있다: 데이터 비트의 어드레스를 어드레싱 회로로 래치하는 단계; 데이터 비트를 데이터 입출력 회로로 래치하는 단계; 데이터를 데이터 비트의 어드레스에서 메모리 어레이로 쓰는 단계; 데이터-아웃 비트를 상기 비트의 어드레스에서 메모리 어레이로부터 읽는 단계; 데이터 비트가 데이터-아웃 비트와 일치하는지 여부를 판단하기 위해 데이터 비트를 데이터-아웃 비트와 비교하는 단계; 만일 비교 단계에서 데이터 비트가 데이터-아웃 비트와 일치하지 않는다고 판단되면, 데이터 비트의 어드레스를 쓰기 에러 어드레스 태그 메모리(write error address tag memory)로 쓰는 단계; 그리고, 비교 단계에서 데이터 비트가 데이터-아웃 비트와 일치한다고 판단되면, 데이터 비트의 어드레스를 쓰기 에러 어드레스 태그 메모리로 쓰지 않는 단계.
도 9a는 메모리 시스템의 쓰기 방법의 다양한 단계들을 보여주는 흐름도(400)이다. 도 7 내지 도 9a를 참조하여, 쓰기 동작(410)의 시작 후, 어드레스 및 데이터를 래치하는 동작(420) 동안, 데이터(또는 제 1 데이터로 언급될 수 있음)는 입력 버퍼 데이터-인 래치(input buffer data-in latch)(182)에 래치될 수 있고, 숨겨진 읽기 비교 영역(160)에 있는 멀티플렉서(270)로부터 쓰기 드라이버(250)의 입력(D)를 통하여 전송될 수 있다. 또한, 어드레스 및 데이터를 래치하는 단계(420) 동안, 데이터 비트의 어드레스는 어드레스 버퍼 및 래치(132)에 래치될 수 있고, 메모리 어레이에서 워드 라인 및 컬럼을 차례로 선택하는 로우 및 컬럼 디코더들을 위한 입력 버스들을 구동하는 프리-디코더(134)를 통하여 전송될 수 있다. 데이터를 쓰는 단계(430)는 ENW를 인에이블 시킴으로써 데이터를 메모리 어레이의 선택된 어드레스에서 메모리 셀로 쓴다.
데이터를 쓰는 단계(430) 이후, 숨겨진 읽기 데이터 단계(440)는 같은 어드레스 위치에서 데이터-아웃 비트를 숨겨진 읽기 비교 영역(160)으로 전송하는 것을 실행할 수 있다. 읽기는 CMD 버스를 통하여 메모리 시스템에 지시해야하는 것 없이 쓰기 동작의 일부로써 자동적으로 실행되기 때문에, 읽기는 숨겨진 것으로 고려될 수 있다. 이후, 비교 단계(450) 동안, 제 1 데이터 비트가 제 2 데이터 비트와 일치하는지 여부를 판단하기 위해, 입력 버퍼 데이터-인 래치(182)로부터의 데이터 비트(즉, "참(true)" 또는 제 1 데이터 비트)는 SA(245)로부터의 데이터 비트(즉, 성공적으로 기록되거나 기록되지 않을 수 있고, 본 명세서에서 제 2 데이터로 언급될 수 있는, 메모리에 쓰여진 데이터 비트)와 비교될 수 있다. 논리적 비교는 숨겨진 읽기 비교 영역(160)에서 배타적 논리합 또는 XNOR 게이트(275)에 의해 실행될 수 있다. 만일, 제 1 데이터 비트가 제 2 데이터 비트와 동일하다면, 쓰기 동작은 성공하고, 다음 동작(470)이 진행될 수 있다. 그러나 제 1 데이터 비트가 제 2 데이터 비트와 동일하지 않다면, 배타적 논리합 또는 XNOR 게이트는 에러 플래그(ERR)(165)를 세팅할 수 있는데, 이때, 에러 플래그(165)는 컨트롤러(140)가 "태그된(tagged)" 어드레스를 양방향 버스를 통하여 어드레스 버퍼 및 래치로부터 쓰기 에러 어드레스 태그 메모리(write error address tag memory)(170)로 신호를 보내도록 하고, 어드레스는 다시 쓰기 동작이 실행될 때까지 쓰여지고(단계 460) 그곳에 저장될 수 있다. 이에 대해서는 추후 자세히 설명할 것이다. 태그 메모리 저장 동작(460)은 명료한 동작이고 다은 메모리 사이클이 시작하는 시점에서 쉽게 실행될 수 있는 것이므로, 그것은 다음 메모리 동작(470)을 지연시키지 않는다.
본 발명의 또 다른 실시 예에 따라, 총 쓰기 사이클은 추가적인 숨겨진 쓰기 동작을 포함하도록 확장될 수 있다. 이 경우, 쓰기 정정 동작(다시 쓰기)은 사용자에게 명료하다. 쓰기 타이밍 설명은 이 명료한 다시 쓰기 시간(transparent re-write time)을 포함하도록 만들어질 수 있다. 따라서, 쓰기 사이클 시간은 다시 쓰기가 요구되는지 여부에 상관없이 같을 수 있다.
도 9b는 본 발명의 실시 예에 따른 메모리 시스템의 쓰기 방법의 단계들을 보여주는 흐름도(500)이다. 도 9b의 단계 510 내지 550은 도 9a의 단계 410 내지 450과 같으므로, 자세한 설명은 생략될 것이다. 그러나, 단계 560에서, 메모리 어레이의 현재의 어드레스 위치에서의 데이터-아웃은 SA 출력 DR(285)을 통과할 것이다. 그리고, 읽혀진 데이터를 반전시키는 단계(560)는 데이터-아웃 비트를 반전시키기 위해 숨겨진 읽기 비교 영역(160)에서 인버터에 의해 실행될 수 있다. 반전된 데이터-아웃 비트는 제어 로직으로부터의 REW 신호(290)에 응답하여 멀티플렉서(270)를 통하여 쓰기 드라이버(250)의 입력 D로 향할 수 있다. 반전된 데이터를 쓰는 단계(570)에서 메모리 어레이의 현재의 어드레스로 정정된 반전된 데이터-아웃 비트를 쓰는 동작이 실행될 수 있다. 그리고, 다음 단계(580)가 실행될 수 있다.
다시 쓰기 동작은 상세하게 후술 될 것이다. 메모리 시스템의 사양(specification)에 의존하여, 흠 있는 쓰기 동작으로부터 태그된 어드레스는 프로세서나 시스템 주변부가 메모리에 억세스하지 않는 임의의 시간에, 태그된 어드레스에 위치하는 메모리 셀을 다시 쓰기 하는데 사용될 수 있다. 다시 쓰기 사이클 동안, 태그된 어드레스에 있는 데이터는 간단히 반전될 수 있다. 데이터를 반전시키기 위해 메모리 비트는 숨겨진 읽기 특성을 이용하여 먼저 읽혀져야 하고, 반대편의 데이터(opposite data)는 셀에 쓰여질 수 있다. 그리고 난 후, 셀의 이전의 확률적 긴 쓰기 동작(previous probabilistic lengthy write behavior)에 의해 야기되는 원래의 쓰기 에러는 정정될 수 있다.
나중에 다시 쓰기 동작을 실행하기 위해 기다리기보다는, 차라리 다시 쓰기 사이클이 진행 중일 때 메모리가 "정지 억세스(halt access)" 신호를 프로세서 또는 마스터 시스템으로 전달하는 핸드셰이킹 시스템(handshaking system)에서 데이터는 즉시 정정될 수 있다. 다시 쓰기 동작이 완료되자마자, "다시 쓰기 완료" 신호(re-write complete signal)는 마스터 시스템으로 전송될 수 있다. 적절한 쓰기 동작을 확보하기 위한 추가적인 핸드셰이킹 시스템은 상세하게 후술 될 것이다.
본 발명의 다른 실시 예에 따라, 전술된 메모리 어레이는 다음의 동작들을 실행하기 위한 회로를 포함할 수 있다: 데이터 비트의 어드레스를 쓰기 에러 어드레스 태그 메모리로부터 어드레싱 회로로 로딩하는 단계; 데이터 비트의 어드레스에서 메모리 어레이에 있는 데이터-아웃 비트를 읽는 단계; 숨겨진 읽기 비교 회로에서 데이터-아웃 비트를 반전시키는 단계; 그리고, 반전된 데이터-아웃 비트를 데이터 비트의 어드레스에 있는 메모리 어레이로 쓰는 단계.
도 10은 본 발명의 실시 예에 따른 메모리 시스템의 다시 쓰기 방법의 단계들을 보여주는 흐름도(600)이다. 도 10을 참조하여, 다시 쓰기 동작(610)을 시작한 후에, 쓰기 어드레스 태그 메모리로부터 어드레싱 회로로 에러 어드레스를 로딩하는 단계(620) 동안, 쓰기 에러 어드레스 태그 메모리(170)로부터 "태그된" 어드레스는 양방향 버스를 통하여 어드레스 버퍼 및 래치(132)로 로딩될 수 있다. 그리고, 이전에 "태그된" 어드레스에 있는 데이터는 읽기 단계(630) 동안 읽혀질 수 있다. 메모리 어레이의 "태그된" 어드레스 위치에 있는 데이터-아웃은 SA 출력 DR(285)을 지날 수 있다. 그 후, 데이터를 반전시키는 단계(640)는 데이터-아웃 비트를 반전시키기 위한 숨겨진 읽기 비교 영역(160)에 의해 실행될 수 있다. 그리고, 반전된 데이터-아웃 비트는 제어 로직으로부터의 REW 신호에 응답하여 멀티플렉서(270)를 통하여 쓰기 드라이버(250)의 입력 D로 향할 수 있다. 그 후, 반전된 데이터를 쓰는 단계(650)가 메모리 어레이에서 정정된 반전된 데이터-아웃 비트를 앞서 "태그된" 어드레스로 쓰는 동작이 실행될 수 있다. 그리고, 다음 메모리 동작이 단계(660)에서 실행될 수 있다. 쓰기 에러 어드레스 태그 메모리에 저장된 앞서 "태그된" 어드레스에 의해 채워진 메모리 공간은 순차적인 쓰기 사이클에서 새로운 "태그된" 어드레스들로 이용가능하도록 만들어질 수 있다.
도 11은 일반적인 메모리 시스템(700)을 보여주는 블록도이다. 도 11을 참조하면, 일반적인 메모리 시스템(700)은 스페시피케이션(specification)(702), 및 소프트웨어 기능(functionality)(706)을 프로세서 코어(730)로 분배하고 하드웨어 기능(708)을 합성화된(synthesized) 하드웨어 영역(712)으로 분배하는 하드웨어/소프트웨어 구분 영역(hardware/software partitioning section)(704)을 사용하여 제공될 수 있다. 메모리 시스템(700)은 임베드된 지시 메모리(embedded instruction memory)(705) 및 데이터 메모리(710)와 같은 소량의 임베드된 메모리, 및 별도의 RAM(740) 또는 플래시 메모리 칩(745) 또는 칩 패키지와 같은 대량의 독립된 메모리 장치(715)를 포함할 수 있다. 임베드된 메모리는 프로세서로의 프로그램 지시들을 제공하는 지시 메모리(705), 및 장치와 독립된 메모리(715) 사이에서 전송되거나 또는 프로세서 코어(730)에 의해 실행되는 다른 과정들의 계산을 위해 사용되는 소량의 데이터를 저장하는 (데이터 캐쉬(720) 및 스크래치 패드 메모리(scratch pad memory)(725)를 포함할 수 있는) 데이터 메모리를 포함할 수 있다.
일반적인 메모리 시스템은 최종 소비자 단계에서 실행되기 전에 메모리 에러를 감지하고 수리하기 위한 공장(생산자)에 의해 실행되는 에러 정정 과정들에 의존해 왔다. 따라서, 그러한 시스템은 높은 에러율 및 느린 읽기/쓰기 시간을 초래하는 확률적 특성들(probabilistic characteristics)을 보유하는 메모리들(예를 들어, PCRAM, MRAM, 및 RRAM)과 함께 사용하는데에는 잘 부합하지 못하였다.
본 발명의 실시 예에 따른 스마트 메모리 시스템은 논리 프로세서와 관련된 높은 에러율 및 느린 읽기/쓰기 시간을 갖는 메모리들이 신뢰성 있게 그리고 균일하게 작동할 수 있게 한다. 도 12는 본 발명의 실시 예에 따른 스마트 메모리 시스템(800)을 보여주는 블록도이다. 도 12를 참조하여, 스마트 메모리 시스템(800)은 성공적인 읽기 및 쓰기 동작들을 보장하기 위해 메모리(815) 및 스마트 메모리 컨트롤러(820) 사이에서 초광대역 입출력(I/O)을 갖는 핸드셰이킹 인터페이스(850)를 제공하도록 구성될 수 있는 스마트 메모리(802)를 포함할 수 있다. 더 자세히 설명하면, 공통의 비동기식 메모리 버스(common asynchronous memory bus)(810)는 쓰기 및 읽기 동작의 성공을 보장하기 위한 응답 신호(acknowledge signaling)와 함께 제공될 수 있다. 공통의 비동기식 메모리 버스는 원하는 데이터가 메인 시스템 메모리(815)로부터 성공적으로 읽혀졌는지 또는 메인 시스템 메모리(815)로 성공적으로 쓰여졌는지를 보장하기 위해 읽기 및 쓰기 동작 동안 핸드셰이킹 처리를 구현할 수 있다. 게다가, 핸드셰이킹 메모리 인터페이스(850)는 병목현상을 방지할 수 있고, 리라우팅(re-routing) 능력을 제공할 수 있다. 비록 본 명세서에서는 차세대 메모리(emerging memory)(예를 들어, STT-MRAM, RRAM)(815)로써 설명되었지만, 메인 시스템 메모리(815)는 DRAM, SRAM, ROM, PROM, EEPROM, FLASH, FeRAM, PCRAM, RRAM, MRAM, STT-MRAM, RRAM 또는 다른 다양한 형태의 메모리들 포함할 수 있다.
스마트 메모리 시스템(800)은 다양한 추가적인 에러율 감소 스킴들, 예를 들어, 빈약한 보유 특성을 보유한 불휘발성 메모리 비트들 또는 섹터들이 그곳에 저장된 데이터를 유지하기 위해 그들을 태그(tag)하거나 리프레시 동작들을 실행함으로써 사용되도록 허용하는 것을 더 제공할 수 있다. 에러-정정 코드(ECC), 신호 처리, 및 프로그램 가능한 수리 동작들이 시스템 에러들을 수리하고 정정하기 위해 제공될 수 있다. 스마트 메모리 컨트롤러(820)는 적절한 메모리 보유 및 읽기/쓰기 동작들을 보장하기 위해 재구성(re-configuration) 및 최적화(optimization) 과정들을 실행할 수 있다. 고속 인터페이스(825)는 논리 프로세스들의 속도를 일치시키기 위해 스마트 컨트롤러(820) 및 시스템 버스(810) 사이에 포함될 수 있다.
예를 들어, 스마트 메모리(802)는 하나 또는 그 이상의 복수의 논리 프로세서들 또는 다른 장치들을 갖는 장치에 구현되거나 이에 연관될 수 있다. 본 실시 예에서, 장치 로직(device logic)(830)은 어플리케이션 로직(application logic)(835), 프로세서(processors)(840), 내부 메모리 플러스 컨트롤러(internal memory plus controller)(845), 및 아날로그 장치(analog device functions)(850)를 포함할 수 있다. 스마트 메모리(802)는 시스템 버스(810)를 통하여 논리 요소들(logic components) 중 하나 또는 그 이상과 통신하도록 구성될 수 있다. 본 실시 예는 복수의 시스템들로 호환 가능하게 구성될 수 있다. 예들 들어, 설정 가능한 어드레스 스킴들은 프로그램 가능한 그리고 메모리-타입의 독립된 I/O 인터페이스를 따라, 복수의 프로세서들 및 주변부들을 지원하는데 사용될 수 있다.
도 13은 본 발명의 실시 예에 따른 지능형 메모리(intelligent memory) 및 논리 인터페이스를 포함하는 메모리 시스템(900)을 보여주는 블록도이다. 도 13을 참조하여, 스마트 메모리 컨트롤러(190)는 스마트 컨트롤러의 다른 동작들을 제어할 뿐만 아니라, 사용자 장치 및 메모리 사이의 통신을 감독(oversee)하는 메모리 컨트롤러(191)를 포함할 수 있다. 메모리 컨피규레이터(configurator)(192)는 사용 중의 에러들에 기초한 사용 가능한 어드레스 공간을 재구성하고, 다른 메모리에 구성 과정들(configuration processes)을 제공하기 위해 제공될 수 있다. 전원 관리자(193)가 메모리 동작들을 위한 안정된 전압을 공급하기 위해 온도 변화 및 다른 전원 변수들을 보상하기 위해 더 포함될 수 있다.
시스템(900)은 그들을 메모리 컨트롤러 불휘발성 메모리(NVM)(195)에 저장함으로써 메모리 시스템의 페일(failure)을 동적으로 모니터링하고 페일 위치들을 기록하도록 더 구성될 수 있다. 그 후, 시스템은 NVM 테이블(196)로부터 페일 위치를 소환할 수 있고, 페일의 타입(197)에 기초하여 적절한 수리 동작을 실행할 수 있다. 예를 들어, 수리 동작들은 데이터 다시 쓰기(re-writing the data), 메모리 수리(repairing the memory), 페일된 메모리 위치 격리(isolating the failed memory location), 또는 다른 적절한 수리들을 포함할 수 있다. 예를 들어, 스마트 메모리 컨트롤러(190)는 메모리 문제들의 원인을 진단하고 감지된 에러들의 타입에 의존하는 적절한 수리 방법을 제공하기 위해 영역 내의 메모리 모니터링 및 복구 시스템 능력(memory monitoring and recovery system capabilities in section)(905)을 포함하거나 이와 연관될 수 있다. NVM 프로그램 메모리(195)는 감지된 에러들의 형태에 따라서, 결함 있는 메모리 셀들의 어드레스 위치들을 저장하도록 구성될 수 있다. 본 실시 예에서, NVM 프로그램 메모리(195)는 에러의 형태(197)에 따라서, 페일된 어드레스 위치들(196)과 관련된 정보를 저장하는데 이용될 수 있다. NVM 프로그램 메모리(195)는 새로운 메모리 위치들로 페일된 메모리 위치들의 주소들을 재할당하는데 더 사용될 수 있다. 스마트 메모리 시스템(900)의 스마트 메모리 컨트롤러(190)는 NVM 프로그램 메모리(195)에 저장된 에러 정보에 기초하여 메모리 테스트, 메모리 어드레스들의 재할당, 메모리 리프레시의 실행, 또는 다른 적절한 동작들을 실행하기 위해 NVM 프로그램 메모리(195)와 인터페이싱(interface)할 수 있다.
다른 원리들은 장치 프로세서들이 반복적인 계산들 또는 스마트 메모리 시스템(900)으로 다른 작업들을 떠넘기는 것(offload)을 허용하도록 하는 기능을 갖는 스마트 메모리 컨트롤러(190)를 제공할 수 있다. 예를 들어, ARM, MIPs, 또는 다른 바람직한 프로세서들의 조합(예를 들어, 32-비트 RICS 프로세서)(910)이 장치 리소스들을 해소하는 다양한 프로세싱 작업들을 실행하기 위해 스마트 메모리 시스템(900)의 스마트 컨트롤러(190)에 포함되거나 또는 이에 연관될 수 있다.
좀 더 구체적으로 설명하면, ARM, MIPs, 또는 다른 RICS 프로세서들 또는 CPU(910)의 다른 형태들은 메모리 인터페이스(194)를 통해 메인 시스템 메모리로 그것들을 저장하기 전에, 데이터에 대한 단순한 또는 복잡한 계산들을 실행하기 위해 메모리 시스템(900)에 포함될 수 있고, 그 결과 스마트 메모리 컨트롤러(190)에 포함될 수 있다. 이것은 장치 프로세서가 다양한 작업들을 메모리 컨트롤러 프로세서(910)로 떠넘기고 그 결과 다른 처리들을 위한 시스템 리소스들을 해소하도록 허용함으로써 스마트 메모리 시스템의 향상된 유용성(added value)을 제공할 수 있다. 스마트 메모리 시스템 버스(935)는 스마트 메모리 컨트롤러(190), 오프-로드 프로세서(off-load processor)(910), 메모리 모니터 및 복구 영역(905), NVM 프로그램 메모리(195), 메모리 인터페이스(194), 및/또는 FIFO/SRAM 영역(915)과 같은, 스마트 메모리 시스템의 다양한 구성요소들을 함께 연결할 수 있다.
스마트 메모리 컨트롤러(190)는 장치 및/또는 논리 구성요소들(920)로부터 스마트 메모리 컨트롤러(190)로 전달하는 버퍼 메모리로의 FIFO 및/또는 SRAM 메모리 영역(915)을 포함하거나 또는 이와 관련될 수 있다. ASIC (로직 및/또는 아날로그) 인터페이스(920)는 스마트 메모리 컨트롤러(190)와 ASIC (로직 및/또는 아날로그) 구성요소들(925) 사이에서 인터페이스를 제공하도록 구성될 수 있다. 메모리 버스 및/또는 인터페이스(194)는 스마트 메모리 컨트롤러(190)와 메모리 어레이 및/또는 메모리 구성요소들(930) 사이를 연결할 수 있다.
도 14a 및 도 14b는 본 발명의 실시 예에 따른 스마트 메모리 시스템을 포함하는 장치들을 보여주는 블록도이다. 도 14a를 참조하여, 본 발명의 일 실시 예에 따라, 스마트 메모리 시스템(1000)은 다양한 메모리 처리 과정들을 사용하여 제작된 하나 또는 그 이상의 메모리 칩들(예를 들어, 1005, 1015, 및/또는 1010)을 포함하는 메모리(1002), 다양한 논리적 처리 과정들을 사용하여 제작된 하나 또는 그 이상의 메모리 프로세서 칩들(미도시)을 포함하는 스마트 메모리 컨트롤러(190)를 포함할 수 있다. 예를 들어, 스마트 메모리 컨트롤러(190)는 메모리 어레이(1002)와 스마트 메모리 컨트롤러(190) 사이에서 비동기식 핸드셰이킹 인터페이스를 제공하도록 구성되는 공통 어드레스, 데이터, 및/또는 컨트롤 메모리 버스(1020)를 포함하거나 이와 관련될 수 있다. 스마트 메모리 컨트롤러(190)는, 전술한 바와 같이, 분석을 위해 메모리 칩(1002)으로부터 쓰기 에러 태그 메모리 데이터를 떠넘기는 메커니즘, 그리고 리프레싱을 위하여 빈약한 보유 어드레스 테이블(poor retention address table; PRAT) 내의 빈약한 보유 비트 어드레스 정보를 저장하기 위한 메커니즘을 제공할 수 있다. 전술한 바와 같이, 프로그램 로직이 전원 관리 로직 뿐만 아니라 메모리 어드레스 재구성을 위해 포함될 수 있다.
메모리 시스템은 메모리 어레이(1002) 및 스마트 메모리 컨트롤러(190) 사이에서 비동기식 핸드셰이킹 인터페이스를 제공하는 공통의 어드레스, 데이터, 및/또는 컨트롤 메모리 버스(1020)를 포함할 수 있다. 쓰기 에러 태그 및 쓰기/검증 회로(1003)는 빠른 병렬 보유 테스트(fast parallel retention test)를 실행하기 위한 테스트를 위한 디자인(Design for Test; DFT) 회로(1006)를 따라 메모리에 포함될 수 있다. 테스트 인터페이스(1008)가 SiP 메모리 테스트를 위해 포함될 수 있다. 컨트롤 레지스터들 및 멀티플렉싱 회로들 역시 어드레스 재구성을 위해 제공될 수 있고, 별도의 전원 플레인(power planes) 및 게이팅 회로(gating circuitry)가 전원 관리를 위해 포함될 수 있다. 본 발명의 실시 예에 따르면, SiP 솔루션을 사용하여 I/O 로딩을 감소시킴으로써, 클럭-레스 메모리 동작(clock-less memory operation)을 제공함으로써, 그리고, 사용되지 않는 메모리 영역들을 정지시킴으로써 전력 소모를 감소시킬 수 있다. 전원 제어, 온도 보상, 및 비동기식 타이밍 회로는 전력 소모를 감소시키고 더 효율적인 동작을 제공할 수 있게 한다.
좀 더 자세히 설명하면, 도 14a에 도시된 바와 같이, 스마트 메모리 프로세서는 다양한 타입의 메모리 솔루션들(1004)(예를 들어, DRAM(1005), STT-RAM(1015), 및 MLC NAND 메모리(1010)) 사이에서 인터페이스로써 제공될 수 있는데, 이들 각각은 다른 이익들, 능력들, 및 다양한 장치 로직(device logic) 및 프로세싱 요소들(processing component)(예를 들어, ASIC 멀티-코어 프로세서(1030), 필드-프로그래머블 게이트 어레이(Field-Programmable Gate Array; FPGA)(1035), 아날로그 RF 전원 관리 및 오디오/비디오 프로세서(1040), 그리고 다양한 입력/출력(I/O) 장치들(1045)을 가지고 있다. 스마트 메모리 컨트롤러(190)는 읽기 및 쓰기 성공을 보장하기 위해 핸드셰이킹 회로(1012)를 제공하는 메모리 버스(1020)를 통하여 다양한 메모리 장치들과 통신할 수 있다. 메모리 컨트롤러(190)는 시스템 버스(1025)를 통하여 다양한 장치 로직 및 프로세싱 요소들(1004)과 통신할 수 있다. 스마트 메모리 컨트롤러는 더 나은 에러 감소 및 정정 능력과 시스템에 대한 다른 가치를 제공하는, 앞서 도 12 및 13에서 설명된 것과 같은 구성요소들을 포함할 수 있다.
도 14b를 참조하여, 컴퓨터 시스템(1105)은 SATA, SCSI, USB, 또는 다른 인터페이스(1112)를 통하여, 하드 드라이브 또는 다른 대용량 저장 매체 장치(SSD/HDD)와 같은 데이터 저장 시스템(1110)과 통신할 수 있다. 본 발명의 실시 예에 따르면, 컴퓨터 시스템(1105)은, 예를 들어, 고속 메모리 버스(1125)를 통하여, SiP 내에 제공된 워킹 메모리(1120)(예를 들어, 스마트 메모리 시스템)와 통신하도록 더 구성될 수 있다. 워킹 메모리(1120) 내에서, 스마트 메모리 컨트롤러(190)(본 명세서에서, STT-MRAM 컨트롤러)는 비동기식 핸드셰이킹 인터페이스(1130)를 통하여 메모리(1115)(불휘발성 워킹 메모리, 예를 들어, STT-MRAM, RRAM)와 통신하도록 더 구성될 수 있다. 핸드셰이킹 인터페이스(1130)는 쓰기 에러 태깅(write error tagging) 및 다시 쓰기 능력뿐만 아니라, 읽기/쓰기 확인 응답 (acknowledgement)을 제공할 수 있다. 일정한 전압 및/또는 전류 제어 시스템이 빠른 에러율 스크린 능력과 함께 제공될 수 있다.
도 15a 및 15b는 각각 본 발명의 실시 예에 따른 핀 아웃 테이블(pin out table) 및 커맨드 테이블이다. 도 15c는 본 발명의 실시 예에 따라, 도 15a 및 15b의 테이블과 관련된 읽기/쓰기 동작 핸드셰이킹 회로를 보여주는 도면이다. 오 16a는 본 발명의 실시 예에 따른 테이블이다. 도 16b는 본 발명의 실시 예에 따라, 도 16a의 테이블과 관련된 확인 응답(acknowledgement)과 함께 비동기식 읽기 동작을 보여주는 타이밍도이다. 도 17a는 본 발명의 실시 예에 따른 테이블이다. 도 17b는 본 발명의 실시 예에 따라, 도 17a의 테이블과 관련된 확인 응답(acknowledgement)과 함께 비동기식 쓰기 동작을 보여주는 타이밍도이다.
도 15a 내 15c 및 17a 내지 17b를 참조하여, 스마트 메모리 컨트롤러는 적절한 읽기 및/또는 쓰기 동작을 보장하기 위해 확인 응답(acknowledgement)과 함께 핸드셰이킹 인터페이스를 포함할 수 있고, 그렇게 함으로써 메모리 에러를 감소시킬 수 있다. 도 15a 내지 15c, 그리고 16a 내지 16b를 참조하여, 핸드셰이킹과 함께 비동기식 읽기 동작 동안, 어드레스(예를 들어, A0 내지 Aj)는 어드레스 라인(1505)에 배치될 수 있고, 읽기 신호(RD)(1510)는 읽기 동작을 인에이블시키기 위해 제어 로직(140)으로 전송될 수 있다. 유효 어드레스(예를 들어, 유효 어드레스(1605))가 어드레스 라인(1505)에 나타날 때, 확인 응답 신호(acknowledgement signal; ACK)(1515)는 하이(high)에서 로우(low)로 전이될 수 있다. 일단 데이터가 지시된 어드레스 위치로부터 성공적으로 읽혀지면, 확인 응답 신호(ACK)(1515)는 데이터가 유효하다는 것을 지시하기 위해 로우에서 하이로 다시 전이될 수 있다. 그 후, 데이터는 데이터 I/O(1520)를 통하여 출력될 수 있다.
도 15a 내지 15c 및 17a 내지 17b를 참조하여, 핸드셰이킹과 함께 비동기식 쓰기 동작 동안, 메모리에 쓰여지는 데이터는 데이터 I/O 라인(1520)에 배치되고, 어드레스는 어드레스 라인(1505)에 배치될 수 있다. 쓰기 신호(WR)(1525)가 어드레스 라인(1505)에 명시된 어드레스 위치에서 메모리 셀로의 쓰기 동작을 초기화시키기 위해 전송될 수 있다. 확인 응답 신호(ACK)(1515)는 일단 쓰기 과정이 시작되면 하이에서 로우 상태로 떨어질 수 있다. 일단 쓰기 동작이 완료되고 데이터가 선택된 메모리 셀로 적절하게 쓰여짐으로써 검증되면, 쓰기 동작이 성공적이라는 것을 나타내기 위해 확인 응답 신호(ACK)(1515)가 로우에서 하이 상태로 다시 전이된다.
I/O 읽기/쓰기 평가 영역(1530)은 제어 로직(140)으로부터 RD 및/또는 WR 신호를 수신할 수 있고 읽기 및 쓰기 신호를 처리할 수 있다. 영역(1530)은 처리 과정에 기초하여 제어 로직(140)으로 리턴 신호(1540)를 전송할 수 있다. DQ 입력/출력 영역(1520)은 제어 신호(1540)을 통하여 제어 로직(140)에 의하여 제어될 수 있다. 확인 응답(acknowledgement)과 함께 읽기 및 쓰기 동작들을 제공함으로써, 확률적 경향들(exhibiting probabilistic tendencies) 또는 느린 읽기/쓰기 시간을 보유하는 메모리들은 낮은 에러율로 구현될 수 있다.
도 18a는 앞서 도 15a 내지 18b에서 설명된 것과 같은 확인 응답(acknowledgement)과 함께 읽기 및 쓰기 동작들을 제어하기 위해 사용될 수 있는 메모리 제어 회로를 보여주는 블록도이다. 도 18b는 도 18a의 회로에 의해 사용되고 생성될 수 있는 신호들을 보여주는 타이밍도이다. 도 18a 내지 18b를 참조하여, 읽기(RD) 신호(1510) 및/또는 쓰기(WR) 신호(1525)가 사용자 지시에 응답 하여 장치에 의해 생성될 수 있다. RD 또는 WR 신호가 활성화 되었을 때, 회로는 그것을 하이에서 로우 상태로 떨어뜨림으로써 확인 응답(ACK) 신호(1515)를 차례로 초기화 시키는 신호 펄스(PRW)를 생성할 수 있다.
좀 더 자세히 설명하면, 활성 쓰기 신호(active write signal; WR)(1525)는 쓰기 인에이블 신호(WEN)를 제공하기 위해 입력 버퍼(IB)를 통해 흐를 수 있다. 유사하게, 활성 읽기 신호(active read signal; RD)(1510)는 읽기 인에이블 신호(REN)를 제공하기 위해 입력 버퍼(IB)를 통해 흐를 수 있다. 인에이블 신호 WEN 또는 REN이 OR 게이트(1805)를 통해 흐를 때, 하이 RW 신호(1810)를 생성할 것이고, 낸드 게이트(1820)에서 지연된 보완(delayed complement)(1815)과 함께 결합되었을 때 그리고 인버터(1825)에 의해 반전되었을 때, 펄스 PRW를 생성할 것이다.
읽기 사이클에서, RD 신호(1510)는 읽기 경로 및 읽기 트래킹 회로(read tracking circuit)(1830) 를 턴 온(turn on) 시킬 수 있다(이하, 도 21에서 상세히 설명될 것이다.). 메모리 셀로부터 읽혀진 데이터가 데이터 출력 래치에 성공적으로 검색되고 래치될 때, 읽기 ok(RD_OK) 신호(1835)는 (이하 도 23a에서 상세하게 설명될) SAE 타이밍 트래킹 및 제어 회로(SAE timing tracking and control circuitry)(1840)에 의해 생성될 수 있는데, 이는 OR 게이트(1850)로부터 OK 신호(1845)를 생성하고, 읽기 사이클이 성공적으로 완료되었다는 것을 나타내기 위해 확인 응답(acknowledge; ACK) 신호(1515)를 하이 상태로 다시 가져올 수 있다.
유사하게, 쓰기 사이클 동안, 쓰기(WR) 신호(1525)는 (이하, 도 20b에서 상세하게 설명될) 쓰기 경로 및 쓰기 확인 회로(write path and the write confirmation circuit)(1855)를 턴 온(turn on) 시킬 수 있다. 일단 쓰기 검증 회로(1855)를 사용하여 데이터가 쓰여지고 검증되면, 쓰기 ok(WR_OK) 신호(1860)가 생성되고, 이것은 OR 게이트(1850)로부터 OK 신호(1845)를 생성하고, 쓰기 사이클이 성공적으로 완료되었다는 것을 나타내기 위해 확인 응답(ACK) 신호(1515)를 하이(high) 상태로 다시 가져올 수 있다.
좀 더 자세히 설명하면, OR 게이트(1850)를 통과하였을 때, 쓰기 확인 회로(write confirm circuit)(1855)로부터의 WR_OK 신호(1860) 및 읽기 트래킹 회로(read tracking circuit)(1830)로부터의 RD_OK 신호(1835)는 OK 신호(1845)를 생성할 수 있다. 그 후, OK 신호(1845)는 확인 응답 트리거링 신호(acknowledge triggering signal; ACTB)(1870)를 출력하는 래치(1865)로 전송될 수 있다. 그리고, ACTB 신호(1870)는 ACK 신호를 하이 상태로 다시 가져오기 위해 프로그램 가능한 지연(programmable delay)(1875)을 통하여 출력 버퍼(OB)로 흐를 수 있다.
도 19는 도 16a 내지 17b의 읽기 및 쓰기 동작들에서 사용될 수 있는 확장성을 가진 계층적(scalable hierarchical) 읽기/쓰기 구조를 보여주는 도면이다. 도 19를 참조하여, 메모리 장치의 읽기 또는 쓰기 동작은 워드 라인들 및 비트 라인들/선택 라인들을 사용하여 메모리 어레이로부터 선택된 메모리 셀들과 관련하여 계속 진행할 수 있다. 선택된 메모리 셀로부터 검색된 데이터는 셀로부터 출력된 데이터를 읽기 위해 글로벌 센스 앰프(global sense amplifier; SA)(예를 들어, 1905)로 전송될 수 있다. 선택된 메모리 셀로 쓰여질 데이터는 글로벌 쓰기 회로(예를 들어, 1905)에 의해 셀로 제공될 수 있다.
도 20a는 메모리 어레이 및 제어 회로를 보여주는 도면이다. 도 20b는 쓰기 확인 회로(write confirmation circuit)(1855)를 보여주는 도면이다. 도 20b를 참조하여, 쓰기 검증 및 다시 쓰기 동작이 상세하게 설명될 것이다. 쓰기 동작 동안, 메모리 어레이 타일(Memory Array Tile; MAT) 영역 내의 메모리 셀은 그것의 대응하는 워드 라인(WL) 및 비트 라인(BL)을 활성화함으로써 선택될 수 있다. 그 후, 데이터는 선택된 메모리 셀로 쓰여질 수 있다. 필요한 쓰기 펄스 폭(tWP)(예를 들어, 5ns) 후에, 쓰기 제어 회로는 로컬 쓰기 인에이블 신호(local write enable signal; ENW)를 디스에이블 시킬 수 있다. 그 후, 로컬 쓰기 인에이블 신호(ENR)는 쓰기 동작 동안 쓰여진 같은 어드레스 위치로부터의 데이터를 읽기 위해 생성될 수 있다. 데이터-인(DW) 라인은 유효한 상태를 유지하고, XNOR 게이트(2005)를 통하여 데이터-아웃(DR) 라인과 비교될 수 있다. 만일, 두 데이터 신호들(DW 및 DR)이 다르면, 쓰기 ok(WR_OK) 신호(1860)는 로우(low) 상태를 유지하고, 쓰기 동작이 성공적이지 못했다는 것을 나타낼 수 있다. 만일, 두 데이터 신호들(DW 및 DR)이 같으면(메모리 셀로 쓰여질 데이터가 셀로부터 읽혀진 데이터와 같다는 것을 나타냄), WR_OK 신호(1860)는 하이(high) 상태로 될 수 있고, 쓰기 동작이 성공했다는 것을 나타낼 수 있다. 앞서 설명된 바와 같이, 그 후, WR_OK 신호(1860)는 메모리 컨트롤러로 쓰기 동작이 성공적이라는 것을 나타내는 확인 응답 신호(acknowledgement signal)(1515)를 생성하는데 사용될 수 있다. 아니면, 쓰기 동작 시작 및 DR이 유효하게 된 후에, 다시 세팅 가능한(re-settable) 레지스터 또는 인에이블 회로(미도시)가, WR_OK가 로우 상태로 리셋되고 유지되는 것을 보장하기 위해 사용될 수 있다.
읽기 트래킹은 쓰기-검증 읽기 동작을 완료하고 비교 출력(WR_OK) 신호(1860)를 스트로브(strobe)하기 위해 사용될 수 있다. WR_OK 신호(1860)가 하이 상태로 될 때, 쓰기 사이클이 완성될 수 있다. 만일 로우 신호가 WR_OK 신호(1860)로 향하면, 쓰기 제어 회로는 데이터를 다시 쓰기 위해 같은 어드레스 위치에서 새로운 쓰기 사이클을 생성할 수 있고, 검증 과정이 반복될 수 있다. 이 과정은 쓰기 동작이 성공할 때까지, 또는 셀이 흠결이 있는 것으로 판명되어 그것의 주소가 NVM 프로그램 메모리(195)로 전송될 때까지 계속될 수 있다.
도 21은 읽기 트래킹 회로(read tracking circuit)(1830)를 보여주는 도면이다. 도 22는 전류-전압 컨버터 및 증폭 회로를 보여주는 도면이다. 도 23a 및 23b는 SAE 타이밍 트랭킹 및 제어 회로를 보여주는 블록도이다. 도 24는 아날로그-디지털 컨버터 회로를 보여주는 도면이다.
도 20a, 20b, 21, 22, 23a, 23b 및 24를 참조하여, 읽기 트래킹 회로(1830)에서, 더미 읽기 경로(dummy read path)는 읽기 회로(RC) 지연(delay)을 추적하는데 사용될 수 있다. 읽기 트래킹 회로(1830)는 (도 7에서 도시된 것과 유사한) 전류 미터 프리-앰플리파이어 회로(current meter pre-amplifier circuits)와 마찬가지로, 전류-전압 컨버터 및 증폭 회로를 포함할 수 있다. 로컬 컬럼 선택(LCS) 회로(2105)는 MAT 영역(2110)과 통신할 수 있고, 선택된 트루 및 상보의 비트 라인들(true and complement bit lines) TBLH(2120) 및 TBLL(2125)에서 감지된 데이터를 따라서 비트 라인 프리차지 신호(BLPR)(2115)를 읽기 트래킹 회로(1830)로 통과시킬 수 있다.
더미 읽기 경로(dummy read path)는 비트 라인들(BLs), 컬럼 선택 트랜지스터들, 프리-앰프들(pre-amps) 및 글로벌 센스 앰프들(global sense amps)을 포함할 수 있다. 트루 및 상보의 더미 BLs(Rhigh, TBLH, Rlow, and TBLL)은 지연 감지(sensing delay)를 발생시키는데 사용될 수 있다. 제 1 단계(TDX/TDXB)로부터 충분한 분리가 생성되었을 때, 더미 센스 앰프의 출력 트래킹 센스 앰프 신호(예를 들어, 도 24의 TSAE2)는 활성화될 수 있다. 활성의 TSAE2 신호는 일반 센스 앰프(SA)(2315)에 일반 데이터를 래치시키고 각각의 SA 단계의 전류 경로를 고립시키기 위해 (도 23a 및 23b의) SAE2 신호를 작동시킬 수 있다.
읽기 인에이블 신호(REN) 및 TSAE2는 (도 23의) 센스 앰프 타이밍 제어 회로(2305)로 입력될 수 있다. 센스 앰프 타이밍 제어 회로(2305)는 비트 라인 프리차지(BLPR) 신호(2115) 및 센스 앰프 인에이블 신호들(예를 들어, SAE 및 SAE2)를 발생시킬 수 있다. 비트 라인 프리차지(BLPR) 신호(2115)는 읽기 동작이 실행되는 시간까지 하이(high) 상태로 머무를 수 있다. 그것이 방출된 후(예를 들어, 셧 오프(shut off)), 읽기가 실행될 수 있다. 좀 더 자세하게 설명하면, REN 또는 WEN은 읽기 또는 쓰기를 위한 비트 라인들을 방출시키는 BLPR을 불활성화시킬 수 있다. 센스 앰프 인에이블 신호(SAE)는 RD_OK 신호(1835)를 생성하기 위해 (도 23a의) 프로그램 가능한 지연(programmable delay)(2310)을 통하여 전송될 수 있다. (도 23b의) 센스 앰프(SA)(2315)는 센스 앰프 인에이블 신호들(SAE 및 SAE2)과 (도 19의) 글로벌 비트 라인 전압들(GBL 및 GRBL)을 수신하고 읽기 데이터 신호 DR(2320)을 출력할 수 있다.
도 25a는 본 발명의 실시 예에 따른, 온도 보상 전압 생성 회로(temperature compensation voltage generation circuitry)(2505)를 보여주는 도면이다. 도 25b는 도 25a의 회로를 포함하는 시스템을 보여주는 블록도이다. 이하 도 25a 및 25b를 참조하여 설명될 것이다.
예를 들어, 낮은 읽기 전압 및 전류는 읽기 동작 동안의 읽기 디스터브(read disturbances)를 방지하는데 도움될 수 있으므로, 전원 관리 시스템은 STT-RAM 메모리 어플리케이션에서 중요할 수 있다. 예를 들어, 너무 높은 읽기 전류는 데이터를 "1"로부터 "0"으로 변화시킴으로써 데이터 변형(corruption)을 초래할 수 있다.
스마트 메모리 컨트롤러(190)는 전원 관리자(193)를 포함할 수 있다. 전원 관리자(193)는 프로세스-전압-온도(PVT) 보상 전압 발생기(2505)를 포함할 수 있다. PVT 보상 전압 발생기(2505)는 M1 트랜지스터를 통하여 안정하고 일정한 읽기 전압을 제공하기 위해 인에이블 읽기(ENR) 신호의 전압 레벨을 제어할 수 있다. PVT 보상 전압 발생기(2505)는 메모리 동작들을 위한 안정한 공급 전압을 제공하기 위해 전압 변동들 및 다른 전압 변수들을 보상할 수 있다. PVT 보상 전압 발생기(2505)는 MOS 트랜지스터들(예를 들어, M1, M2, M3, 및 M4)의 복수의 그룹들(예를 들어, 2510,2515, 및 2520)에 연결될 수 있다. PVT 보상 전압 발생기(2505)는 전압 레벨에 의해 제어되는 ENR(voltage-level-controlled ENR) 신호를 MOS 트랜지스터들의 그룹들로 전송할 수 있다. ENR 및 ENRB 신호들은 MOS 트랜지스터들을 통하여 흐르는 안정하고 일정한 읽기 전류들을 야기할 수 있다. 예를 들어, 전류들 IRL1 및 IRL2는 그룹(2510)과 관련되고, 전류 IRH1 및 IRH2는 그룹(2520)과 관련되고, 전류 IR1 및 IR2는 그룹(2515)와 관련될 수 있다.
본 발명의 다른 실시 예에 따른 스마트 메모리 시스템은 센스 앰프(SA) 읽기 전류, SA 클램프 전압(clamp voltages), SA 읽기 지연(read delay), 쓰기 전압(write voltage), 준비 상태 동안의 주변부 전압, 및/또는 메모리 장치(2515)에 있어서 다른 전원 요구사항들을 제어할 수 있는 전원 관리 기술들을 구현하도록 구성될 수 있다. 전원 관리 시스템은 온도에 근거한 보상(temperature-based compensation)을 전압 레벨들로 더 제공할 수 있다.
도 26a 및 26b는 본 발명의 실시 예에 따른 시스템-인-패키지(System-in-Package; SiP) 스마트 메모리 시스템(2605)을 보여주는 블록도이다. 스마트 메모리 시스템(2605)은 메모리 스택(memory stack)(2610), 스마트 메모리 컨트롤러(190), 및 하나 또는 그 이상의 범용 프로세서들(general purpose processors)(2620)을 포함할 수 있다. 예를 들어, 본 발명의 실시 예에 따른 특정한 특징들 및 이득들이 시스템 인 패키지(System in Package; SiP) 또는 시스템 온 칩(System on Chip; SoC) 디자인에 있어서 스마트 메모리 시스템에 결합됨으로써 실현될 수 있다.
SiP에 있어서의 본 발명의 실시 예에 따른 특징들은 향상된 시스템 동작들을 제공하기 위한 메모리 어레이 및 메모리 프로세서들 사이의 향상된 결합으로부터 이익을 얻을 수 있음을 상기해야 한다. 예를 들어, 이것은 트루 실리콘 비아(True Silicon Via; TSV) 또는 다른 시스템-인-패키지(System in-Package; SiP) 기술과 같은 로우 레이턴시 및 하이 쓰루풋 SiP 인터코넥트(low latency and high throughput SiP interconnects)를 이용함으로써 실현될 수 있다. 예를 들어, TSV 인터코넥트(2625)는 메모리 스택(2610) 및 스마트 메모리 컨트롤러(190)를 연결시킬 수 있다. 유사하게, TSV 인터코넥트(2630)는 스마트 메모리 컨트롤러(190)와 하나 또는 그 이상의 arm 프로세서들(2620)을 연결시킬 수 있다. 그러한 시스템에서의 비용 손실은 인터코넥트 기술 비용이 감소함으로써 최소화될 수 있다.
도 26b를 참조하여, 본 발명의 실시 예에 따른 스마트 메모리 시스템이 SiP 장치로써 구현될 수 있다. SiP 장치는 스마트 메모리 컨트롤러(190)에 배치된 (예를 들어, STT-MRAM 메모리 스택(2610)과 같은) 메모리 스택을 포함할 수 있는데, 메모리 스택은 (예를 들어, 범용 ARM 프로세서들 (2620)과 같은) 하나 또는 그 이상의 RISC 프로세서들에 순서대로 배치될 수 있다. 메모리 스택은 각각 트루 실리콘 비아들(True Silicon Vias; TSVs)(2625 및 2630)을 통하여 스마트 메모리 컨트롤러(190), 및 프로세서들(2620)을 갖춘 스마트 메모리 컨트롤러(190)와 통신할 수 있다.
도 27b는 본 발명의 실시 예에 따른 메모리의 블록도(2705)이다. 도 28a, 28b, 29 내지 30, 31a, 및 31b는 본 발명의 실시 예에 따른 도 27의 메모리 블록의 비트 에러율 제어 로직(2740)을 보여주는 블록도이다.
이들 도면들과 관련하여 설명되는 발명의 사상들은 메모리 장치에서 비트 에러율(BER) 자가 내장 테스트(built-in self test)를 실행하는 능력을 제공할 수 있다. 테스트 모드에 진입한 후, 에러율 타이밍 패턴들이 내부적으로 생성될 수 있다. BER 자가 내장 테스트는 내부적으로 생성된 에러율 타이밍 패턴에 기초하여 실행될 수 있다. BER 자가 내장 테스트로부터 기인하는 에러율이 측정될 수 있다. 측정된 에러율에 기초하여, 하나 또는 그 이상의 테스트 파라미터들(parameters)이 자동적으로 조정될 수 있고, 비트 에러율 자가 내장 테스트는 조정된 파라미터들을 사용하여 반복될 수 있다. 전압 레벨들 및/또는 펄스 폭들이 어드레스 위치, 어드레스 세그먼트(segment)를 위해, 또는 메모리 장치와 관련된 전체의 칩을 위해 자동적으로 조정될 수 있다. 그 다음의 테스트들은 자가 내장 테스트를 개선하고 향상시킬 수 있는 조정된 전압 레벨들 및/또는 펄스 폭들을 포함할 수 있다. 이에 대해서는 이하 자세하게 설명될 것이다.
본 발명의 사상은 높은 에러율을 갖는 메모리 비트들을 차단하기 위한 STTMRAM, PCM 및 ReRAM 메모리 제품들과 같은 저항성 메모리에 구현될 수 있다. 본 발명의 사상은 간단한 기능 테스트, 안정성 테스트, 및/또는 보유 특성 테스트로 확장될 수 있다. 하나 또는 복수의 테스트 모드들은 WER 및 RER 을 자동적으로 평가하기 위해 사용될 수 있고, 결과들은 테스트가 완료되거나 각각의 전압 단계 및 어드레스 위치 후에 읽혀질 수 있다. 예를 들어, 스마트 메모리 컨트롤러는 BER이 시스템 에러 정정 코드(error correcting code; ECC) 능력을 벗어나 증가할 때 필드 내의 메모리 비트들의 상태를 모니터링하고 메모리 공간을 자동적으로 재배치할 수 있다. 스마트 메모리 컨트롤러는 각각의 어드레스 위치, 어드레스 세그먼트들을 위해, 또는 전체의 메모리 칩을 위해, 쓰기 또는 읽기 전압 및 펄스 폭들을 조정하기 위한 WER 및/또는 RER 결과들을 사용할 수 있다. 하나의 스마트 메모리 컨트롤러 또는 ATE는 복수의 칩들에 있어서 테스트들을 초기화시킬 수 있다. 웨이퍼 및 패키지 레벨 테스트에 있어서, ATE는 테스트 모드를 초기화시킬 수 있고, 메모리 칩들은 자가 테스트를 완료할 수 있고, 그리고, ATE는 최종 결과들을 읽을 수 있다. 어떤 실시 예에서, 특히 메모리 칩들이 이미 필드에서 효율적으로 사용되었을 때, 메모리 칩에 저장된 데이터는 테스트에 앞서 다른 모듈로 오프-로드될 수 있고(off-loaded), 테스트 동안 어떤 데이터의 변형도 발생하지 않는 것을 보장하기 위해 테스트 후에 복구될 수 있다. 어떤 실시 예에서, 테스트 동안 인가된 전압은 제어되거나 외부로 공급될 수 있다. 따라서, 페일된 메모리 위치들은 확인될 수 있고, 수리되거나 고립될 수 있다. 게다가, RER 및 WER 자가 내장 테스트(built-in self test)는 메모리 칩을 위한 쉬운 테스트 발생 및 데이터 수집을 허락할 수 있다.
도 27의 메모리 블록도(2705)를 참조하여, 메모리 장치는 하나 또는 그 이상의 메모리 코어(memory core)(2710), 하나 또는 그 이상의 로우 컬럼 드라이버(row column driver)(2715), 및 하나 또는 그 이상의 데이터 읽기/쓰기 로직 영역(data read/write logic section)(2720)을 포함할 수 있다. 그러한 메모리 코어(2710), 드라이버(2715), 및 로직 영역(2720)은 블록(즉, BK[0:i]) 내에 배치될 수 있다. 비트 에러율(BER) 제어 로직(2740)은 비트 에러율 내장 자가 테스트를 제어할 수 있다. 스마트 메모리 컨트롤러 및/또는 ATE는 메모리(2705)를 BER 테스트 모드로 놓기 위해 코드를 전송할 수 있다. BER 제어 로직(2740)은 하나 또는 그 이상의 입력 어드레스(예를 들어, IA[0:k]) 신호들을 수신할 수 있다. BER 제어 로직(2740)은 도시된 바와 같이 다양한 메모리 구성요소들(2705)로 기여될 수 있는 읽기/쓰기 전압 조정(즉, Vrd 및 Vwr)을 위한 전압 레귤레이터 제어 신호(voltage regulator control signal)들을 생성할 수 있다. 어드레스 및 데이터 발생기(2780)는 BER 제어 로직(2740)에 연결될 수 있다. 어드레스 및 데이터 발생기(2780)는 하나 또는 그 이상의 입력 어드레스들(예를 들어, IA[0:k])을 수신할 수 있고, BER 내장 자가 테스트에서의 사용을 위해 내부에서 하나 또는 그 이상의 어드레스들 및/또는 데이터를 발생시킬 수 있다. 어드레스 및 데이터 발생기(2780)는 비트 에러율 내장 자가 테스트(bit error rate built-in self test)를 위한 쓰기 에러 테스트 패턴을 생성하는 쓰기 에러율 테스트 패턴 발생기, 및 비트 에러율 내장 자가 테스트를 위한 읽기 에러 테스트 패턴을 생성하는 읽기 에러율 테스트 패턴 발생기를 포함할 수 있다.
BER 제어 로직(2740)은 커맨드 제어 및 테스트 모드 로직(command control and test mode logic)(2745)에 연결될 수 있다. 커맨드 제어 및 테스트 모드 로직(2745)은 테스트 모드 레지스터들을 셋팅하기 위해 입력 어드레스 버퍼(2750)로부터 하나 또는 그 이상의 외부 명령 XCMD[0:n] 신호들, 및 입력 어드레스를 수신할 수 있다. 입력 어드레스 버퍼는 BER 테스트 모드에서 노말 동작시 외부 어드레스 신호 XA[0:k]로부터, 또는 내부적으로 생성된 어드레스 IA[0:k]로부터 입력 어드레스들을 수신할 수 있다. 커맨드 제어 및 테스트 모드 로직(2745)은 쓰기 리셋(RSTW), 쓰기(WR), 읽기(RD), 및/또는 테스트 완료(EXTST) 신호를 포함할 수 있고, BER 제어 신호(2740)에 의해 수신될 수 있는 하나 또는 그 이상의 테스트 신호들(2742)을 발생시킬 수 있다. BER 제어 로직(2740)은 테스트(TEST), 테스트 와이어 에러율(test wire error rate; TWER), 테스트 펄스 폭(TPWS), 및/또는 테스트 전압 레귤레이터(TVRG) 신호를 포함할 수 있고, 커맨드 제어 및 테스트 모드 로직(2745)에 의해 수신될 수 있는 하나 또는 그 이상의 신호들(2743)을 발생시킬 수 있다. BER 제어 신호(2740)는 데이터 I/O 버퍼 및 레지스터 테스트 출력 직렬 변환기(data I/O buffers and registers test output serializer)(2735)에 의해 수신될 수 있는 하나 또는 그 이상의 테스트 데이터 아웃(예를 들어, TDO[0:x]) 신호들도 발생시킬 수 있다.
메모리(2705)는 커맨드 제어 및 테스트 모드 로직(2745) 및 BER 제어 로직(2740)에 연결될 수 있는 읽기 및/또는 쓰기 타이밍 제어 로직(2775)을 포함할 수 있다. 읽기 및/또는 쓰기 타이밍 제어 로직(2775)은 대응하는 데이터 읽기/쓰기 로직(2720)에 연결될 수 있다.
어드레스 및 데이터 발생기(2780)는 멀티플렉서와 같은 선택기(2790)에 삽입될 수 있는(fed to) 하나 또는 그 이상의 테스트 데이터 인(test data in)(예를 들어, TDIN[0:m]) 신호들을 발생시킬 수 있다. 선택기(2790)는 하나 또는 그 이상의 데이터 인(예를 들어, TDIN[0:m]) 신호들을 수신하고, 선택된 신호들을 데이터 경로 로직(data path logic)(2725)으로 전송할 수 있다. 데이터 경로 로직(2725)은 하나 또는 그 이상의 데이터 읽기(예를 들어, DR[0:m]) 신호들을 생성하고, 이들을 데이터 I/O 버퍼 및 레지스터 테스트 출력 직렬 변환기(data I/O buffers and registers test output serializer)(2735)로 전송할 수 있다. 데이터 I/O 버퍼 및 레지스터 테스트 출력 직렬 변환기(2735)는 하나 또는 그 이상의 외부 데이터 I/O(예를 들어, XDQ[0:m]) 신호들, 프로세서 신호들을 수신할 수 있고, 하나 또는 그 이상의 데이터 인(예를 들어, DIN[0:m]) 신호들을 발생시킬 수 있다.
입력 어드레스 버퍼(2750)는 하나 또는 그 이상의 외부 어드레스(예를 들어, XA[0:k]) 신호들뿐만 아니라 하나 또는 그 이상의 내부적으로 생성된 어드레스(예를 들어, IA[0:k]) 신호들도 수신할 수 있다. 입력 어드레스 버퍼(2750)는 커맨드 컨트롤 및 테스트 모드 로직(2745) 및 어드레스 디코더(2770)와 연결될 수 있다. 어드레스 디코더(2770)는 어드레스들을 디코딩할 수 있고, 로우 컬럼 드라이버들(2715)과 인터페이싱할 수 있다.
입력 클럭 버퍼(input clock buffer)(2755)는 테스트 클럭 신호(예를 들어, TCK), XCLK 클럭 신호, 및/또는 TEST 신호를 수신할 수 있다. 입력 클럭 버퍼(2775)는 입력 어드레스 버퍼(2750), 어드레스 디코더(2770), 커맨드 컨트롤 및 테스트 모드 로직(2745), 읽기/쓰기 타이밍 제어 로직(2775), BER 제어 로직(2740), 및/또는 어드레스 및 데이터 생성기(2780)로 입력될 수 있는(fed to) 클럭 신호 CLK를 출력할 수 있다.
온-칩 오실레이터 클럭 발생기(on-chip oscillator clock generator)(2760)는 TEST 신호를 수신할 수 있고 내부 테스트 클럭(예를 들어, TCK)을 발생시킬 수 있다. TCK 클럭 신호는 업/다운 카운터(2765)로 입력될 수 있는데(fed to), 그것의 출력은 전압 발생기(2730) 및 읽기/쓰기 타이밍 제어 로직(2775)에 연결될 수 있다. 전압 발생기(2730)는 BER 제어 로직(2740)으로부터 VRG[0;j] 신호들뿐만 아니라 업/다운 카운터(2765)의 출력을 수신할 수 있다. VRG[0;j] 신호들은 j+1 전압 레벨들을 선택할 수 있다. 전압 발생기(2730)는 데이터 읽기/쓰기 로직(2720)에 의해 수신될 수 있는 별도의 (j+1) 읽기 전압(Vrd) 레벨들 및 (j+1) 쓰기 전압(Vwr) 레벨들을 출력할 수 있다. Vrd 파워 버스(power bus)는 센스 앰프(amplifier), 특히 읽기 전류 바이어스 회로를 구동할 수 있다. Vwr 파워 버스는 쓰기 드라이버들을 구동할 수 있다.
도 28a, 28b, 29 내지 30, 31a, 및 31b는 본 발명의 실시 예에 따른 도 27의 메모리(2705)의 BER 제어 로직(2740)의 회로도를 보여주는 블록도이다.
도 28a를 참조하여, 시퀀스 카운터(sequence counter)(2810)는 TEST 신호 및 클럭 신호 CLK)를 수신할 수 있고, 쓰기 에러율(write error rate; WER) 커맨드 레지스터(command register)(2815), 읽기 에러율(read error rate; RER) 커맨드 레지스터(2820), WER 사이클 카운트 레지스터(cycle count register)(2825), 및/또는 RER 사이클 카운트 레지스터(2830)로 전송될 수 있는 시퀀스 신호(2850)를 발생시킬 수 있다. WER 커맨드 레지스터(2815) 및 WER 사이클 카운트 레지스터(2825)는 TWER 신호를 수신할 수 있다. RER 커맨드 레지스터(2820) 및 RER 사이클 카운트 레지스터(2830)는 각각 TRER 신호를 수신할 수 있다. 선택기(2845)는 WER 커맨드 레지스터(2815) 및 RER 커맨드 레지스터의 출력 사이에서 선택할 수 있다. 선택기(2845)는 RSTW 신호, WR 신호, 및/또는 RD 신호를 출력할 수 있다. 선택기(2855)는 WER 사이클 카운트 레지스터(2825) 및 RER 사이클 카운트 레지스터(2830)의 출력 사이에서 선택할 수 있다. 선택기(2855)는 다음의 전압 및/또는 펄스 폭(next voltage and/or pulse width)으로의 이동을 위해 NXT 신호를 출력할 수 있다.
1eN 사이클 비교기(cycle comparator)(2840)는 WER 사이클 카운트 레지스터(2825) 또는 RER 사이클 카운트 레지스터(2830)의 출력들을 수신할 수 있고, 다음의 어드레스(예를 들어, NXADR) 펄스 신호를 다음의 메모리 어드레스 위치로의 증분(increment)으로 생성할 수 있다. WER 테스트에서, 쓰기 전압들은 VSW0로부터 시작할 수 있고 1eN WER 사이클들 마다 dV 씩 증가할 수 있다. 하나의 WER 사이클은 리셋-검증-쓰기-검증 시퀀스(reset-verify-write-verify sequence)를 포함할 수 있다. 리셋은 최대 쓰기 전압에서 실행될 수 있다. 검증은 보통의(nominal) 읽기 전압에서 실행될 수 있다. 그 후, 비트(bit)의 스위칭이 체크될 수 있다. 예를 들어, VSW0은 0.5V 또는 그 부근의 값일 수 있는 시작 쓰기(즉, 셋) 전압일 수 있다. 예를 들어, dV는 0.1V 또는 그 부근의 값일 수 있는 쓰기 전압에서의 증분 변화량(incremental change)일 수 있다. 쓰기 전압(ending write voltage)은 프로그램 가능하다. 예를 들어, 종료 쓰기 전압은 VSW0+(N×dV)에서 종료되도록 구성될 수 있다. 예를 들어, 종료 쓰기 전압은 0.5V+(10×0.1V)=1.5V에서 종료되도록 구성될 수 있다.
RER 테스트에서, 읽기 전압은 Vrd0으로부터 시작할 수 있고 1eM 읽기 사이클들 마다 dV 씩 증가할 수 있다. 일 실시 예에서, 각각의 RER 패턴은 1eK 읽기 사이클DP 의해 뒤따르는 리셋-검증 시퀀스(reset-verify sequence)를 포함할 수 있다. 어떤 실시 예에서, M = K 패턴들 × 반복횟수 N 일 수 있다. 어떤 실시 예에서, RER = 1e-(K+N) 일 수 있다.
어떤 실시 예에서, 데이터 출력은 일반적으로 읽혀질 수 있고 스마트 메모리 컨트롤러 또는 ATE에 의해 캡쳐될 수 있다. 다른 실시 예에서, WER 및/또는 RER 결과들은 각각의 전압 단계(voltage step) 후에, 페일된 어드레스 위치들과 연관될 수 있을 뿐만 아니라 읽혀질 수 있다. 그러한 결과들 및 어드레스 위치들은 미리-할당된 DQ 핀들(pre-assigned DQ pins)을 통하여 읽혀질 수 있다.
도 28b를 참조하여, 마지막 어드레스 비교기(last address comparator)(2835)는 TEST 신호, IA[0:k] 신호들, 및 CLK 신호를 수신할 수 있고, EXTST 신호를 생성할 수 있다.
도 29를 참조하여, 카운터(2905)는 리셋 에러들, 쓰기 에러들, 및/또는 읽기 에러들을 카운팅할 수 있다. 카운터(2905)는 XOR 게이트(2925)를 포함할 수 있다. XOR 게이트(2925)는 DR[0:m] 및 TDIN[0:m] 신호들을 수신할 수 있다. XOR 게이트(2925)의 출력은 리셋 에러 카운터(reset error counter)(2910), 쓰기 에러 카운터(write error counter)(2915), 및 읽기 에러 카운터(read error counter)(2920)로 입력될 수 있다. 리셋 에러 카운터(2910)는 자가 내장 테스트(built-in self test)의 리셋 에러들의 횟수를 카운팅할 수 있다. 쓰기 에러 카운터(2915)는 자가 내장 테스트의 쓰기 에러들의 횟수를 카운팅할 수 있다. 읽기 에러 카운터(2920)는 자가 내장 테스트의 읽기 에러들의 횟수를 카운팅할 수 있다.
리셋 에러 카운터(2910)는 RSTW 신호를 수신할 수 있다. 쓰기 에러 카운터(2915)는 WR 신호를 카운팅할 수 있다. 그리고, 읽기 카운터(2920)는 RD 신호를 수신할 수 있다. 리셋 에러 카운터(2910)는 리셋 에러 카운트(예를 들어, RSERC[0:x]) 신호를 생성할 수 있다. 쓰기 에러 카운터(2915)는 쓰기 에러 카운트(예를 들어, WRERC[0:x]) 신호를 생성할 수 있다. 읽기 에러 카운터(2920)는 읽기 에러 카운트(예를 들어, RDERC[0:x]) 신호를 생성할 수 있다. 예를 들어, 40-비트 카운터는 1.1e-12까지 카운팅할 수 있다. 그러한 경우에, x=39; 예를 들어, RSERC[0:39], WRERC[0:39], 및 RDERC[0:39] 일 수 있다. 면적을 줄이기 위해, 단지 하나의 카운터가 리셋 에러들, 쓰기 에러들, 및 읽기 에러들을 위해 사용될 수 있다. 그러한 실시 예에서, 도 3에 도시된 3 개를 하나로 통합하는 멀티플렉서(3-to-1 multiplexor)는 필요하지 않을 수 있고, 제거될 수 있다.
도 30을 참조하여, 선택기(3010)는 RSERC[0:x], WRERC[0:x], 및 RDERC[0:x] 신호들 사이에서 선택할 수 있다. 선택된 신호는 테스트 데이터 출력(예를 들어, TDO[0:x]) 신호로써 선택기(3010)에 의해 출력될 수 있다. 예를 들어, 선택기(3010)는 멀티플렉서(multiplexer)일 수 있다.
도 31a를 참조하여, 펄스-폭 레지스터(pulse-width register)(3105)는 펄스-폭을 저장할 수 있다. 펄스-폭 레지스터(3105)는 TPWS 신호, CLK 신호, IA[0:k] 신호, 및/또는 NXT 신호를 수신할 수 있다. 펄스-폭 레지스터(3105)는 하나 또는 그 이상의 펄스 폭(예를 들어, PWS[0:j]) 신호들을 생성할 수 있다. 펄스-폭 레지스터(3105)는 펄스 폭 발생 회로에서 의도된 펄스 폭 지연(intended pulse width delay)을 선택하기 위한 코드를 제공할 수 있다. 예를 들어, 4-비트 코드, PWS[0:3]는 16개의 다른 펄스 폭들을 선택할 수 있다. 쓰기 에러율들 및 읽기 에러율들은 메모리 셀들을 통하여 흐르는 전류의 양에 의존할 수 있다. 본 발명의 실시 예는 프로그램 가능한 펄스 폭들 및 프로그램 가능한 Vbias 전압들을 제공할 수 있다.
도 31b를 참조하여, 전압 레귤레이터 레지스터(voltage regulator register)(3110)는 전압 레벨 선택기 신호들 VRG[0:j]를 생성할 수 있다. 전압 레귤레이터 레지스터(3110)는 TVRG 신호, CLK 신호, IA[0:k] 신호, 및/또는 NXT 신호를 수신할 수 있다. 전압 레귤레이터 레지스터(3110)는 전압 발생기에서 전압 바이어스 레벨을 선택하기 위한 코드를 생성할 수 있다. 예를 들어, 4-비트 코드, VRG[0:3]는 16개의 다른 레벨들을 선택할 수 있다. 저장된 또는 전압 레귤레이터 레지스터(3110)에 의해 생성된 값은 리셋 에러 카운트, 쓰기 에러 카운트, 및/또는 읽기 에러 카운트에 기초할 수 있다.
도 32는 본 발명의 실시 예에 따른 쓰기 에러율 자가 내장 테스트(built-in self test)를 실행하는 단계를 보여주는 흐름도이다. 흐름은 경로들(3210 및 3215) 중 하나를 따라 시작 단계(3207)에서 시작할 수 있는데, 그곳에서 모드 레지스터 셋 커맨드(mode register set command)가 "1"들을 기록하기 위한 WER 테스트를 위해 로딩되거나(즉, 경로 3210), 모드 레지스터 셋 커맨드가 "0"들을 기록하기 위한 WER 테스트를 위해 로딩될 수 있다(즉, 경로 3215). 3220 단계에서, 내부 클럭이 시작될 수 있다. 흐름은 3225로 진행할 수 있는데, 그곳에서 에러 카운터는 리셋된다. 모든 에러 카운터들 및 사이클 카운터들은 테스트의 시작에서 리셋되어야 한다. 시작 단계(3207) 이후에, 다음의 어드레스 및 데이터는 3230 단계에서 생성되고, 그리고/또는 업데이트 될 수 있다. 2335 단계에서, 시퀀서(sequencer)는 WER 타이밍 패턴을 생성할 수 있다. 그 후, 3240, 3245, 3250, 및 3255 단계에서, 각각 메모리는 리셋되고, 리셋이 검증되고, 데이터는 기록되고, 그리고 데이터는 검증될 수 있다. 예를 들어, "1" 데이터를 기록하기 위해, 메모리는 처음에 "0"으로 리셋될 수 있다(초기에 저장되었는지 여부와 관계없이 "0"을 기록). 그 후, 메모리는 "0"들이 기록되었는지 검증하기 위해 읽혀질 수 있다. 그리고, 실제로 "1"을 기록하는 것이 시작된다. 그리고, 데이터는 "1"들이 기록되었는지 검증하기 위해 다시 읽혀질 수 있다. 만일, 첫 번째 리셋이 페일(fail)되면, 그것은 양쪽의 비트는 "1"에 스턱(stuck)되어 있는 것을 의미하거나, 또는 백-호핑 현상(back-hopping phenomenon)으로 알려진, 초기 데이터는 "0"이고 "1"로 플립(flip)될 수 있다. 백-호핑이 발생하였는지 여부를 판단하기 위해, 스턱 비트(stuck bit)들이 우선 확인되어야 한다.
3245 단계에서 리셋이 검증된 후, 3247 단계에서 리셋이 페일되었는지 여부가 체크될 수 있다. 만일 "아니오"라고 판단되면, 흐름은 쓰기/검증 동작들을 위해 3250으로 흐를 수 있다. 만일 리셋이 실패하였음을 의미하는 "예"라고 판단되면, 흐름은 리셋 에러 카운트 레지스터(reset error count register)가 업데이트되는 곳인 3260으로 바로 진행할 수 있다.
3265 단계에서, 결과 데이터가 평가될 수 있고, 쓰기 동작이 실패하였는지 여부가 판단될 수 있다. 만일 쓰기 동작이 페일되면, 흐름은 사이클 카운트 레지스터(cycle count register)가 업데이트되는 3275 단계로 진행하는, 쓰기 에러 카운트 레지스터(write error count register)가 업데이트되는 3270 단계로 흐를 수 있다. 그렇지 않으면, 만일 쓰기 동작이 성공하면, 흐름은 사이클 카운트 레지스터가 업데이트되는 3275 단계로 진행할 수 있다.
3280 단계에서, 사이클의 횟수가 1eN에 이르렀는지 여부가 판단된다. 예를 들어, N의 값은 15일 수 있다. 만일 "아니오"라고 판단되면, 흐름은 셀 위치(즉, 메모리 어드레스) 및 에러 카운트가 읽혀지는 3290 단계로 진행할 수 있고, 그 후, 추가적인 레셋-검증-쓰기-검증 시퀀스 테스팅(reset-verify-write-verify sequence testing)을 위한 3240 단계로 진행할 수 있다. 대부분의 경우, 복수의 셀들은 복수의 DQ 배치(DQ configuration)(예를 들어, X8, X16, 또는 X32 등등)와 함께 동시에 테스트될 수 있다. 어드레스 비교와 함께, DQ 마다의 복수의 비트들은 동시에 테스트될 수 있다. 배치(configuration)에 의존하여, 결과적인 에러율(resulting error rate)은 정확하지 않을 수 있고, 테스트 시간은 대체로 감소할 수 있다. 예를 들어, 결과들은 미리 할당된 DQ 핀(pre-assigned DQ pin)들을 통하여 순차적으로, 동시에, 또는 그것들의 조합으로 읽혀질 수 있다. 블록(3290)이 테스트 시간을 절약하기 위해 생략될 수 있도록, 또는 각각의 단계에서 테스트 결과들을 디버깅하거나 분석할 수 있도록 추가적으로 구성될 수 있다. 그렇지 않으면, 만일 사이클 횟수는 1eN 보다 적은 것을 의미하는 "예"라고 판단되면, 흐름은 마지막 어드레스에 이르렀는지 여부가 판단되는 3285 단계로 진행할 수 있다. 만일 "예"라고 판단되면, 테스트가 완료된 이후, 흐름은 3295 단계로 진행하고 1e-N(즉, 페일된 비트들의 숫자를 읽어내는) 이상의 WER을 갖는 비트들의 갯수 및 그들의 관련된 어드레스들이 읽혀질 수 있다. 앞서 설명한 바와 같이, 예를 들어, 결과들이 미리 할당된 DQ 핀(pre-assigned DQ pin)들을 통하여 순차적으로, 동시에, 또는 그것들의 조합으로 읽혀질 수 있다. 그렇지 않으면, 만일 마지막 어드레스에 도달하지 않았다는 것을 의미할 수 있는 "아니오"라고 판단되는 경우, 흐름은 에러 카운터들이 리셋되고 테스트가 계속되는 곳인 3225 단계로 되돌아갈 수 있다.
도 33은 본 발명의 실시 예에 따른 읽기 에러율 자가 내장 테스트(built-in self test)를 실행하는 단계를 보여주는 흐름도(3305)이다. 흐름은 경로들(3310 및 3315) 중 하나를 따라 시작 단계(3307)에서 시작할 수 있는데, 그곳에서 모드 레지스터 셋 커맨드(mode register set command)가 "1"들을 읽기 위한 RER 테스트를 위해 로딩되거나(즉, 경로 3310), 모드 레지스터 셋 커맨드가 "0"들을 기록하기 위한 RER 테스트를 위해 로딩될 수 있다(즉, 경로 3315). 3320 단계에서, 내부 클럭이 시작될 수 있다. 흐름은 K 값이 프리-셋(pre-set) 되는 3340 단계로 진행할 수 있고, 그 후에, 에러 카운터가 리셋되는 3325 단계로 진행할 수 있다. 모든 에러 카운터들 및 사이클 카운터들은 테스트의 시작시 리셋될 수 있다.
시작 단계 3307 후, 다음의 어드레스 및 데이터는 3330 단계에서 생성되고, 그리고/또는 업데이트 될 수 있다. 3335 단계에서, 시퀀서(sequencer)는 RER 타이밍 패턴을 생성할 수 있다. 그 후, 3345 단계에서, 쓰기-검증 동작이 실행될 수 있다.
3345 단계에서의 쓰기-검증 동작 이후, 3347 단계에서 쓰기가 실패하였는지 여부가 판단될 수 있다. 만일 "예"라고 판단되는 경우, 흐름은 쓰기 에러 카운트 레지스터가 업데이트 되는 곳인 3365 단계로 진행할 수 있고, 그 후, 흐름은 3367 단계로 진행할 수 있는데, 그것은 다음의 어드레스 처리를 위한 3330 단계로 진행하거나, 또는 대신하여 (예를 들어, J회 다시 쓰기 동작들 동안 반복될 수 있고, J는 5-20 사이 또는 그 부근 사이에 있는) 다른 쓰기-검증 동작을 위한 3345 단계로 진행할 수 있다. 그렇지 않으면, 만일 쓰기가 페일되지 않았음을 의미할 수 있는 "아니오"라고 판단되면, 흐름은 저장된 비트가 K 회 읽혀질 수 있는 3350 단계로 진행할 수 있다.
3355 단계에서, 결과 데이터는 평가될 수 있고, 읽기 동작이 실패하였는지 여부가 판단될 수 있다. 만일 읽기 동작이 실패한다면, 흐름은 읽기 에러 카운트 레지스터가 업데이트되는 3360 단계로 진행할 수 있다. 그렇지 않으면, 만일 읽기 동작이 성공하면, 흐름은 패턴 카운트 레지스터가 업데이트되는 3270 단계로 흐를 수 있다.
3375 단계에서, 패턴들의 숫자가 1eN에 이르렀는지 여부가 판단될 수 있다. 예를 들어, N의 값은 15일 수 있다. 예를 들어, 총 읽기 사이클들은 N×K일 수 있다. 만일 "아니오"라고 판단되면, 흐름은 셀 위치들 및 읽기 에러 카운트 레지스터들이 읽혀질 수 있는 3385 단계로 진행할 수 있고, 그 후, 흐름은 쓰기-검증 시퀀스 테스팅(write-verify sequence testing)을 하는 3345 단계로 되돌아갈 수 있다. 예를 들어, 결과들은 미리 할당된 DQ 핀(pre-assigned DQ pin)들을 통하여 순차적으로, 동시에, 또는 그것들의 조합으로 읽혀질 수 있다. 그렇지 않으면, 만일 패턴들의 숫자가 1eN보다 적은 것을 의미할 수 있는 "예"라고 판단되면, 흐름은 마지막 어드레스에 이르렀는지 여부를 판단하는 3380 단계로 진행할 수 있다. 만일 "예"라고 판단되면, 흐름은 3390 단계로 진행할 수 있고, 1e-(N+K) 이상의 RER을 갖는 비트들의 숫자(즉, 페일된 비트들의 숫자를 읽어내는) 및 그들의 연관된 어드레스들에 다다르면, 그 후, 테스트는 종료될 수 있다. 앞서 설명된 바와 같이, 예를 들어, 결과들은 미리 할당된 DQ 핀(pre-assigned DQ pin)들을 통하여 순차적으로, 동시에, 또는 그것들의 조합으로 읽혀질 수 있다. 그렇지 않으면, 만일 마지막 어드레스에 이르지 않았음을 의미할 수 있는 "아니오"라고 판단되면, 흐름은 에러 카운터들이 리셋되는 3225 단계로 진행할 수 있고, 그리고 다음 어드레스 및 데이터가 생성되고 그리고/또는 업데이트될 수 있는 3330 단계로 흐를 수 있고, 테스트는 계속될 수 있다.
도 34는 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트(built-in self test)의 단계들을 보여주는 흐름도(3405)이다. 흐름은 테스트 모드로 진입하는 3410 단계에서 시작할 수 있고, 데이터 "0" 또는 "1"을 위한 WER 테스트 중 어느 하나가 초기화되거나 또는 데이터 "0" 또는 "1"을 위한 RER 테스트 중 어느 하나가 초기화될 수 있다. 흐름은 쓰기 및 읽기 펄스 폭이 세팅되는 3415 단계로 진행할 수 있다. 3420 단계에서, 전압 범위 및 단계가 세팅될 수 있다. 달리 말하면, 읽기/쓰기 전압 범위 및 전압 단계를 위한 레지스터들이 설정(configure)될 수 있다. 34235 단계에서, 시작 전압 및 방향이 세팅될 수 있다. 예를 들어, 시작 전압 및 증가(increment) 또는 감소 플래그(decrement flag)가 설정될 수 있다. 3430 단계에서, 테스트가 시작될 수 있다. 3435 단계에서, WER 및/또는 RER 테스트 단계가 도 32 및 33에서 설명된 것과 같이 실행될 수 있다. 예를 들어, 3440 단계에서 결과들은 미리 할당된 DQ 핀(pre-assigned DQ pin)들을 통하여 순차적으로, 동시에, 또는 그것들의 조합으로 읽혀질 수 있다. 3445 단계에서, 완전한 전압 범위가 테스트 되었는지 또는 완전한 펄스 폭의 범위가 테스트 되었는지 여부에 대해 판단될 수 있다. 만일 "예"라고 판단되면, 테스트는 완성된다. 그렇지 않으면, 만일 전압 범위 내의 추가적인 전압들이 아직 테스트되지 않았다는 것을 의미하거나 또는 추가적인 펄스 폭이 아직 테스트되지 않았다는 것을 의미할 수 있는 "아니오"라고 판단되면, 흐름은 테스트 전압이 다음의 프로그램된 전압 레벨로 세팅될 수 있거나 또는 펄스 폭이 다음의 프로그램된 펄스 폭으로 세팅될 수 있는 3450 단계로 진행할 수 있다. 그 후, 흐름은 추가적인 WER 및/또는 RER 테스팅을 계속하거나 또는 반복하기 위한 3435 단계로 되돌아갈 수 있다.
어떤 실시 예에서, WER 데이터는 스위칭되지 않을 확률(probability of not switching)(1/p) 대 쓰기 전압(또는 1/p 대 쓰기 펄스 폭)으로서 플로팅(plot)될 수 있다(p는 스위칭 확률, 미도시). 에러 카운트는 이전의 에러 카운트에 상관 없이 각각의 전압 또는 펄스 폭에서 행하여질 수 있다. 쓰기 에러율은 전체 유효 쓰기 시도 횟수(total valid write attempts)로 나눠진 쓰기 에러 카운트와 같을 수있다. 이 경우, 유효하지 않은 쓰기 시도는 리셋이 페일된 경우일 수 있다. 리셋 페일은 (1) 비트가 스턱(stuck)되거나, 또는 (2) 백-호핑(back-hopping)이 발생한 것을 의미할 수 있다. 예를 들어, WER "0" 이 실행되는 경우, "1"은 처음 기록되고(즉, 리셋 동작), 그 후, 검증되고(즉, "1"을 읽는 것이 예상되고), 그 후, "0"이 기록되고, 그리고 "0"이 읽혀질 것이 예상될 수 있다. 만일 리셋이 페일되면, "0"은 "1"이 예상되는 곳에서 읽혀질 수 있다. 리셋이 페일된 사이클은 WER 계산들로부터 배제될 수 있다. 만일 비트의 초기 상태가 "0"이면, 그것은 스위치하지 않음을(또는 "0"에 스턱 됨을) 의미할 수 있다. 만일 비트의 초기 상태가 "1"이면, 그것은 비록 "1"이 기록되고 있을지라도 "0"으로 스위칭 됨을 의미할 수 있다. 이를 대개 높은 쓰기 전압에서 발생할 수 있는 백-호핑(back-hopping)이라 일컫는다. 게다가, 백-호핑은 리셋 및 쓰기 사이클들이 동시에 페일 되었을 때 발생한다는 것을 추론할 수 있다. RER의 경우는, 비록 스위칭 확률 대 전압 또는 펄스 폭으로써 플로팅 될 수 있는 RER 데이터에 있어서 어느 정도 차이가 있다 하더라도 유사할 수 있다. 본 발명의 실시 예들은 모든 미가공 데이터(raw data)가 테스터 또는 마이크로 컨트롤러로 읽혀질 수 있도록 허용한다. 엔지니어 또는 기술자가 분석하는 데이터는 어느 데이터가 사용되는지 결정할 수 있다.
도 35는 본 발명의 실시 예에 따라, 데이터 "1" WER 자가 내장 테스트(built-in self test)의 파형을 보여주는 타이밍도(3505)이다. 보여지는 바와 같이, 읽기 명령은 쓰기 명령을 뒤따를 수 있고, 그 순서가 반복될 수 있다. 보여지는 바와 같이, IOx가 낮은 상태일 때, 비트 라인(BLx)은 3510에서 상대적으로 높은 전압 레벨에 있고, WR0(즉, "0")이 기록되고 있음을 알 수 있다. BLx는 3525에서 상대적으로 낮은 전압 레벨에 있고, 데이터는 3515에서 읽혀지고 있음을 알 수 있다. 3520에서, 소스 라인 SLx는 상대적으로 높은 전압 레벨에 있고, WR1(즉, "1")은 기록되고 있음을 알 수 있다. 그 후, BLx는 3535에서 상대적으로 낮은 전압 레벨에 있고, 데이터는 3530에서 읽혀지고 있음을 알 수 있다.
비록 도시되지 않았다 하더라도, 데이터 "1" RER 자가 내장 테스트는 초기 쓰기 후의 상태에 있을 수 있는 초기의 차이(primary difference)와 유사할 수 있고, 읽기 동작(예를 들어, 3525, 3535에서의)은 복수 회(예를 들어, 1000회, 10000회) 반복될 수 있다. 다른 패턴들이 테스트될 수 있다. 예를 들어, 각각의 패턴은 10000 회의 사이클 동안 테스트될 수 있다. 마지막 사이클 후, 데이터가 디스터브(disturb) 되었는지 여부를 판단하기 위해 메모리 셀에서의 데이터 값이 평가될 수 있다. 예를 들어, 그러한 테스트는 오랫동안 실행되고 결과들을 검토하고 분석하기 위해 체크될 수 있다.
도 36은 본 발명의 실시 예에 따라, 데이터 "0" WER 자가 내장 테스트(built-in self test)의 파형을 보여주는 타이밍도(3505)이다. 보여지는 바와 같이, 읽기 명령은 쓰기 명령을 뒤따를 수 있고, 그 순서가 반복될 수 있다. 보여지는 바와 같이, IOx가 높은 상태일 때, 소스 라인(SLx)은 3610에서 상대적으로 높은 전압 레벨에 있고, WR1(즉, "1")이 기록되고 있음을 알 수 있다. BLx는 3625에서 상대적으로 낮은 전압 레벨에 있고, 데이터는 3615에서 읽혀지고 있음을 알 수 있다. 3620에서, 비트 라인 BLx는 상대적으로 높은 전압 레벨에 있고, WR0(즉, "0")이 기록되고 있음을 알 수 있다. 그 후, BLx는 3635에서 상대적으로 낮은 전압 레벨에 있고, 데이터는 3630에서 읽혀지고 있음을 알 수 있다.
비록 도시되지 않았다 하더라도, 데이터 "0" RER 자가 내장 테스트는 초기 쓰기 후의 상태에 있을 수 있는 초기의 차이(primary difference)와 유사할 수 있고, 읽기 동작(예를 들어, 3625, 3635에서의)은 복수 회(예를 들어, 1000회, 10000회) 반복될 수 있다. 다른 패턴들이 테스트될 수 있다. 예를 들어, 각각의 패턴은 10000 회의 사이클 동안 테스트될 수 있다. 마지막 사이클 후, 데이터가 디스터브(disturb) 되었는지 여부를 판단하기 위해 메모리 셀에서의 데이터 값이 평가될 수 있다. 예를 들어, 그러한 테스트는 오랫동안 실행되고 결과들을 검토하고 분석하기 위해 체크될 수 있다.
도 37은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트를 실행하는 단계를 보여주는 흐름도(3705)이다. 흐름은 WER 테스트가 실행되는지 여부가 판단되는 3710 단계에서 시작할 수 있다. 만일 "예"라고 판단되면, 흐름은WER 테스트 결과가 분석되는 3715 단계로 진행할 수 있다. 그 후, 전압 레벨들 및/또는 펄스 폭들은 어드레스 위치를 위해 3720 단계에서 조정될 수 있다. 다른 실시 예에서, 전압 레벨들 및/또는 펄스 폭들은 어드레스 세그먼트(address segment)를 위해 3725 단계에서 조정될 수 있다. 또 다른 실시 예에서, 전압 레벨들 및/또는 펄스 폭들은 전체의 칩을 위해 3730 단계에서 조정될 수 있다.
그렇지 않으면, 만일 WER 테스트가 아직 실행되지 않았음을 의미할 수 있는 "아니오"라고 판단되면, 흐름은 RER 테스트가 실행되었는지 여부가 판단되는 3735 단계로 진행할 수 있다. 만일 "아니오"라고 판단되면, 흐름은 더 나아간 결정들 및 처리를 위해 3710 단계로 되돌아갈 수 있다. 그렇지 않으면, 만일 "예"라고 판단되면, 흐름은 RER 테스트 결과들이 분석되는 3740 단계로 진행할 수 있다. 그 후, 전압 레벨들 및/또는 펄스 폭들은 어드레스 위치를 위해 3745 단계에서 조정될 수 있다. 다른 실시 예에서, 전압 레벨들 및/또는 펄스 폭들은 어드레스 세그먼트를 위해 3750 단계에서 조정될 수 있다. 또 다른 실시 예에서, 전압 레벨들 및/또는 펄스 폭들은 전체의 칩을 위해 3755 단계에서 조정될 수 있다. WER 또는 RER 데이터를 분석하는 것은 적절한 분석적인 소프트웨어 프로그램(appropriate analytical software program)을 구동하는 충분한 프로세싱 파워를 필요로 할 수 있다. 분석 오프 칩(analysis off chip)을 실행하는 것이 더 효율적일 수 있다. 그러한 오프 칩 분석(off chip analysis)은 (SiP의 경우에) 메모리에 연결된 이러한 능력을 갖춘 SoC에서 행해질 수 있거나, 또는 테스터 컴퓨터(예를 들어, PC)에서 행해질 수 있다. 예를 들어, 분석의 결과들은 3720, 3725, 3730, 3745, 3750, 및 3755 단계를 실행하는데 사용될 수 있다. 게다가, 메모리 칩은 그러한 내장 특성(features built-in)을 갖도록 설계될 수 있다.
본 명세서에서 도시되거나 설명된 흐름도에서의 구성요소들 및 판단들은 설명된 바와 같은 특정한 순서대로 실행될 필요는 없고, 차라리 그러한 구성요소들 및 판단들은 다른 시간에 또는 다른 순서로 실행될 수 있는 것으로 이해되어야 할 것이다.
도 38은 본 발명의 실시 예에 따른 비트 에러율 자가 내장 테스트 발생기 및 제어 로직(3830)을 포함하는 시스템(3800)을 보여주는 도면이다. BER 제어 로직(3830)은 시스템 버스(3805)와 전기적으로 연결될 수 있다. 컴퓨팅 시스템(3800)은 클럭(clock)(3810), 랜덤 억세스 메모리(random access memory; RAM), 플래시 메모리(flash memory), 또는 MTT 메모리(3815), 스마트 메모리 컨트롤러(smart memory controller)(3845), 유저 인터페이스(user interface)(3820), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(modem)(3825), 및/또는 자동 검사기(automated test equipment; ATE)(3835)를 포함할 수 있고, 그들 중 어느 것이라도 또는 모든 것은 시스템 버스(3805)로 전기적으로 연결될 수 있다.
만일 컴퓨팅 시스템(3800)이 모바일 장치라면, 그것은 컴퓨팅 시스템(3800)에 전원을 공급하는 배터리(3840)를 더 포함할 수 있다. 비록 도 38에 도시되지 않았다 하더라도, 컴퓨팅 시스템(3800)은 어플리케이션 칩셋(application chipset), 카메라 이미지 센서(camera image sensor; CIS), 모바일 DRAM(mobile DRAM), 및 그와 같은 것들을 더 포함할 수 있다. 스마트 메모리 컨트롤러(3845) 및 메모리(3815)는 데이터를 저장하기 위한 불휘발성 메모리를 사용하는 솔리드 스테이드 디스크/드라이브(solid state drive/disk; SSD)를 포함할 수 있다.
예시적인 실시 예에서, 컴퓨팅 시스템(3800)은 컴퓨터, 포터블 컴퓨터(portable computer), 울트라 모바일 PC(ultra mobile PC; UMPC), 워크스테이션(workstation), 넷-북(net-book), PDA, 웹 태블릿(web tablet), 무선 폰(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), PMP(portable multimedia player), 디지털 카메라(digital camera), 디지털 오디오 레코더/플레이어(digital audio recorder/player), 디지털 픽쳐/비디오 레코더/플레이어(digital picture/video recorder/player), 포터블 게임 머신(portable game machine), 내비게이션 시스템(navigation system), 블랙 박스(black box), 3-D 텔레비젼(3-dimensional television), 무선 환경에서 정보를 송수신할 수 있는 장치, 홈 네트워크를 포함하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 포함하는 다양한 전자 장치들 중 하나, 텔레매틱스(telematics) 네트워크를 포함하는 다양한 전자 장치들 중 하나, RFID, 또는 컴퓨팅 시스템을 포함하는 다양한 전자 장치들 중 하나로써 사용될 수 있다.
이하의 설명은 본 발명의 내용이 적용된 적당한 머신(machine or machines)의 간단하고, 일반적인 설명을 제공하기 위한 것이다. 일반적으로, 머신은 프로세서(processors), 메모리(memory), 예를 들어, 랜덤 억세스 메모리(random access memory; RAM), 리드-온리 메모리(read-only memory; ROM), 또는 다른 상태 보존 매체(state preserving medium), 저장 장치(storage devices), 비디오 인터페이스(video interface), 및 입/출력 인터페이스 포트(input/output interface ports)에 연결된 시스템 버스를 포함할 수 있다. 이 머신은 적어도 부분적으로 다른 장치, 가상 현실(virtual reality; VR) 환경, 바이오메트릭 피드백(biometric feedback), 또는 다른 입력 신호들과의 상호작용으로부터 수신된 지시에 의해서뿐만 아니라, 키보드, 마우스 등과 같은 입력 일반적인 입력 장치들로부터의 입력에 의해 제어될 수 있다. 여기서 사용된 것과 같은 "머신(machine)" 이라는 용어는 넓게 단일의 머신(single machine), 가상 머신(virtual machine), 또는 머신들, 가상 머신들 또는 함께 동작하는 장치들과 통신할 수 있게끔 연결된 시스템을 포함하는 것으로 의도될 수 있다. 예시적인 머신들은 개인용 또는 공용 운송 수단(예를 들어, 자동차, 기차, 택시 등)과 운송 장치(transportation devices)뿐만 아니라 퍼스널 컴퓨터(personalcomputers), 워크스테이션(workstations), 서버(servers), 포터블 컴퓨터(portable computers), 핸드헬드 장치(handheld devices), 전화기(telephones), 태블렛(tablets)과 같은 컴퓨팅 장치들을 포함할 수 있다.
머신은 프로그램 가능한 또는 프로그램 가능하지 않은 로직 장치 또는 어레이(programmable or non-programmable logic devices or arrays), 응용 주문형 집적 회로(Application Specific Integrated Circuits; ASICs), 임베디드 컴퓨터(embedded computers), 스마트 카드(smart cards), 및 그와 유사한 것들과 같은 임베드된 컨트롤러(embedded controllers)를 포함할 수 있다. 머신은 네트워크 인터페이스, 모뎀, 또는 다른 통신 가능한 연결 수단을 통하여 하나 또는 그 이상의 원격 머신들로 하나 또는 그 이상의 연결을 사용할 수 있다. 머신은 인트라넷(intranet), 인터넷(internet), 로컬 에어리어 네트워크(local area networks), 와이드 에어리어 네트워크(wide area networks) 등과 같은 물리적 및/또는 로지컬 네트워크(logical network)의 방법에 의해 연결될 수 있다. 본 기술 분야에서의 통상을 지식을 지닌 자는 네트워크 통신이 라디오 프리퀀시(radio frequency; RF), 위성(satellite), 마이크로웨이브(microwave), IEEE(Institute of Electrical and Electronics Engineers) 545.11, 블루투스(Bluetooth®), 광(optical), 적외선(infrared), 케이블(cable), 레이저(laser) 등을 포함하는 다양한 유선의 그리고/또는 무선의 숏 레인 레인지 또는 롱 레인지 캐리어(short range or long range carriers) 및 프로토콜(protocols)을 이용할 수 있다는 것을 알 수 있다.
본 발명의 실시 예들은 작업들을 실행하거나 요약 데이터 타입들 또는 로우-레벨 하드웨어 콘텍스트(low-level hardware contexts)를 정의하는 머신들에서의 결과들에 의해 억세스 될 수 있는 함수, 절차, 데이터 구조, 어플리케이션 프로그램, 등을 포함하는 관련된 데이터를 참조하여 설명될 수 있다. 예를 들어, 관련된 데이터는 휘발성 및/또는 불휘발성 메모리(예를 들어, RAM, ROM, 등) 또는 다른 저장 장치들에 저장될 수 있고, 그들의 관련된 저장 매체는 하드-드라이브(hard-drives), 플로피-디스크(floppy-disks), 광학 저장매체(optical storage), 테이프(tapes), 플래시 메모리(flash memory), 메모리 스틱(memory sticks), 디지털 비디오 디스크(digital video disks), 바이올로지컬 저장매체(biological storage) 등을 포함할 수 있다. 관련된 데이터는 패킷(packets), 시리얼 데이터(serial data), 패럴렐 데이터(parallel data), 전파된 신호(propagated signals)의 형태로, 물리적인 그리고/또는 논리적 네트워크를 포함하는 전송 환경을 통하여 전달될 수 있고, 압축된 또는 암호화된 형태로 사용될 수 있다. 관련된 데이터는 열악한 환경(distributed environment)에서 사용될 수 있고, 머신 억세스를 위해 국부적으로 그리고/또는 원격으로 저장될 수 있다.
설명된 실시 예들을 참조하여 본 발명의 원리가 설명되었는데, 설명된 실시 예들은 그러한 원리를 배제하지 않고 정연하게 그리고 상세하게 변형될 수 있고, 어떠한 바람직한 방법으로 조합될 수 있다. 그리고, 비록 앞서 설명된 것들이 특정한 실시 예들에 초점이 맞춰졌다 하더라도, 다른 구성들이 고려될 수 있다. 특히, "본 발명의 실시 예에 따른"과 같은 표현과 이와 유사한 것들이 본 명세서에서 사용되었다 하더라도, 이들은 일반적으로 실시 예 가능성을 언급하도록 의도된 것이고, 특정한 실시 예의 구성에 본 발명을 한정하도록 의도된 것은 아니다. 여기서 사용된 바와 같이, 이들 용어들은 다른 실시 예들로 조합 가능한 같은 또는 다른 실세 예들을 의미할 수 있다.
발명의 실시 예들은 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령들을 포함하는 일시적이지 않은 머신-리더블 매체(non-transitory machine-readable medium)를 포함할 수 있고, 명령들은 본 명세서에서 설명된 것 과 같은 발명의 구성요소들을 실행하기 위한 명령들을 포함할 수 있다.
본 발명의 사상은 앞서 설명된 요약에서 설명된 특정한 실시 예들에 의해 제한되어서는 안되고, 본 발명의 사상을 이용하는 실시 예들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자들에게 쉽게 이해될 수 있을 것이다. 이들 그리고 다른 실시 예들의 상세한 사항은 발명의 상세한 설명 및 도면에 포함된다.
앞서 설명된 실시 예들은 그것들에 본 발명을 한정하는 것으로 이해되어서는 안된다. 비록 적은 실시 예들이 설명되었다 하더라도, 본 발명의 사상을 이용하는 실시 예들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자들은, 많은 변형이 개시된 것들의 설시(novel teaching) 및 이익을 배제하지 않고 이들 실시 예들로 가능하다는 것을 알 수 있을 것이다. 따라서, 모든 그러한 변형 예들은 청구항에서 정의되는 것과 같은 발명의 사상의 범위 내에 포함되는 것으로 의도된다.
Claims (30)
- 메모리 장치에 비트 에러율 자가 내장 테스트(built-in self test)를 제공하는 방법에 있어서:
테스트 모드에 진입하는 단계;
상기 메모리 장치에 의해 에러율 타이밍 패턴을 내부적으로 생성하는 단계;
상기 메모리 장치에 의해 상기 내부적으로 생성된 에러율 타이밍 패턴에 기초하여 상기 비트 에러율 자가 내장 테스트를 실행하는 단계;
상기 비트 에러율 자가 내장 테스트로부터 기인하는 에러율을 측정하는 단계; 그리고
상기 비트 에러율 자가 내장 테스트를 반복하는 단계를 포함하는 방법. - 제 1 항에 있어서,
상기 측정된 에러율에 기초하여 하나 또는 그 이상의 테스트 파라미터들을 조정하는 단계를 더 포함하되,
상기 반복하는 단계는 상기 조정된 파라미터들을 사용하여 상기 비트 에러율 자가 내장 테스트를 반복하는 것을 포함하는 방법. - 제 2 항에 있어서,
상기 비트 에러율 자가 내장 테스트를 실행하는 단계는 쓰기 에러율 테스트를 실행하는 단계를 포함하고;
상기 측정하는 단계는 쓰기 에러율을 측정하는 단계를 포함하고;
상기 조정하는 단계는 상기 측정된 쓰기 에러율에 기초하여 상기 하나 또는 그 이상의 파라미터들을 조정하는 단계를 포함하고; 그리고
상기 반복하는 단계는 상기 조정된 파라미터들을 사용하여 상기 쓰기 에러율 테스트를 반복하는 단계를 포함하는 방법. - 제 2 항에 있어서,
상기 비트 에러율 자가 내장 테스트를 실행하는 단계는 읽기 에러율 테스트를 실행하는 단계를 포함하고;
상기 측정하는 단계는 읽기 에러율을 측정하는 단계를 포함하고;
상기 조정하는 단계는 상기 측정된 읽기 에러율에 기초하여 상기 하나 또는 그 이상의 테스트 파라미터들을 조정하는 단계를 포함하고; 그리고
상기 반복하는 단계는 상기 조정된 파라미터들을 사용하여 상기 읽기 에러율 테스트를 반복하는 단계를 포함하는 방법. - 제 1 항에 있어서,
상기 테스트 모드에 진입하는 단계는:
하나 또는 그 이상의 모드 레지스터 셋 커맨드들을 수신하는 단계; 그리고
상기 하나 또는 그 이상의 모드 레지스터 셋 커맨드들에 응답하여 상기 테스트 모드로 진입하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
하나 또는 그 이상의 모드 레지스터 셋 커맨드들을 수신하는 단계; 그리고
상기 하나 또는 그 이상의 모드 레지스터 셋 커맨드들에 응답하여 상기 하나 또는 그 이상의 테스트 파라미터들을 설정(configure)하는 단계를 더 포함하는 방법. - 제 6 항에 있어서,
상기 하나 또는 그 이상의 테스트 파라미터들을 설정하는 단계는:
시작 전압, 전압 범위, 및 전압 단계 중 적어도 하나를 세팅하는 단계를 더 포함하는 방법. - 제 6 항에 있어서,
상기 하나 또는 그 이상의 테스트 파라미터들을 설정하는 단계는:
읽기 펄스 폭 및 쓰기 펄스 폭 중 적어도 하나를 세팅하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 테스트 파라미터들을 조정하는 단계는:
다음의 프로그램된 전압 레벨로 읽기 전압을 자동적으로 세팅하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 테스트 파라미터들을 조정하는 단계는:
다음의 프로그램된 전압 레벨로 쓰기 전압을 자동적으로 세팅하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
상기 측정된 에러율이 소정의 임계치를 초과하였을 때, 상기 메모리 장치 내에서 자동적으로 메모리 공간을 재할당하는 단계를 더 포함하는 방법. - 메모리 장치에서 비트 에러율 자가 내장 테스트(built-in self test)를 제공하는 방법에 있어서:
상기 메모리 장치에 의해 쓰기 에러율 자가 내장 테스트 및 읽기 에러율 자가 내장 테스트 중 적어도 하나를 실행하는 단계;
상기 쓰기 에러율 자가 내장 테스트 및 읽기 에러율 자가 내장 테스트 중 상기 적어도 하나의 결과들을 분석하는 단계; 그리고
상기 분석에 응답하여 하나 또는 그 이상의 테스트 파라미터들을 자동적으로 조정하는 단계를 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
어드레스 위치를 위한 전압 레벨을 자동적으로 조정하는 단계를 더 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
어드레스 세그먼트를 위한 전압 레벨을 자동적으로 조정하는 단계를 더 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
상기 메모리 장치와 연관된 전체의 칩을 위한 전압 레벨을 자동적으로 조정하는 단계를 더 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
어드레스 위치를 위한 펄스 폭을 자동적으로 조정하는 단계를 더 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
어드레스 세그먼트를 위한 펄스 폭을 자동적으로 조정하는 단계를 더 포함하는 방법. - 제 12 항에 있어서,
상기 자동적으로 조정하는 단계는:
상기 메모리 장치와 연관된 전체의 칩을 위한 펄스 폭을 자동적으로 조정하는 단계를 더 포함하는 방법. - 비트 에러율 자가 내장 테스트(bit error rate built-in self test)를 제어하는 비트 에러율 제어 로직;
상기 비트 에러율 자가 내장 테스트를 위한 내부의 기준 클럭을 발생시키는 온-칩 오실레이터;
상기 비트 에러율 자가 내장 테스트를 위한 쓰기 에러 테스트 패턴을 발생시키는 쓰기 에러율 테스트 패턴 발생기; 그리고
상기 비트 에러율 자가 내장 테스트를 위한 읽기 에러 테스트 패턴을 발생시키는 읽기 에러율 테스트 패턴 발생기를 포함하는 메모리 장치. - 제 19 항에 있어서,
상기 비트 에러율 자가 내장 테스트의 사이클들을 카운팅하는 로직을 더 포함하는 메모리 장치. - 제 19 항에 있어서,
쓰기 사이클의 횟수를 저장하는 쓰기 에러율 사이클 카운트 레지스터; 그리고
읽기 사이클의 횟수를 저장하는 읽기 에러율 사이클 카운트 레지스터를 더 포함하는 메모리 장치. - 제 19 항에 있어서,
펄스 폭 발생기 회로; 그리고
상기 펄스 폭 발생기 회로 내에서 대상 펄스 폭 딜레이를 선택하는 코드를 제공하는 펄스 폭 레지스터를 더 포함하는 메모리 장치. - 제 19 항에 있어서,
전압 발생기; 그리고
상기 전압 발생기 내에서 전압 바이어스 레벨을 선택하는 코드를 생성하는 전압 레귤레이터 레지스터를 더 포함하는 메모리 장치. - 제 23 항에 있어서,
상기 비트 에러율 자가 내장 테스트의 쓰기 에러 횟수를 카운팅하는 쓰기 에러 카운터; 그리고
상기 비트 에러율 자가 내장 테스트의 읽기 에러 횟수를 카운팅하는 읽기 에러 카운터를 더 포함하는 메모리 장치. - 비트 에러율 자가 내장 테스트(built-in self test)를 제공하는 시스템에 있어서:
버스;
상기 버스에 연결된 메모리; 그리고
스마트 메모리 컨트롤러를 포함하되,
상기 스마트 메모리 컨트롤러는:
비트 에러율 자가 내장 테스트를 제어하는 비트 에러율 제어 로직;
상기 비트 에러율 자가 내장 테스트를 위한 내부 기준 클럭을 발생시키는 온-칩 오실레이터;
상기 비트 에러율 자가 내장 테스트를 위한 쓰기 에러 테스트 패턴을 발생시키는 쓰기 에러율 테스트 패턴 발생기; 그리고
상기 비트 에러율 자가 내장 테스트를 위한 읽기 에러 테스트 패턴을 발생시키는 읽기 에러율 테스트 패턴 발생기를 포함하는 시스템. - 제 25 항에 있어서,
상기 스마트 메모리 컨트롤러는:
상기 비트 에러율 자가 내장 테스트의 사이클들을 카운팅하는 로직을 더 포함하는 시스템. - 제 25 항에 있어서,
상기 스마트 메모리 컨트롤러는:
쓰기 사이클들의 횟수를 저장하는 쓰기 에러율 사이클 카운트 레지스터; 그리고
읽기 사이클들의 횟수를 저장하는 읽기 에러율 사이클 카운트 레지스터를 더 포함하는 시스템. - 제 25 항에 있어서,
상기 스마트 메모리 컨트롤러는:
펄스 폭 발생기 회로; 그리고
상기 펄스 폭 발생기 회로 내에서 대상 펄스 폭 딜레이를 선택하는 코드를 제공하는 펄스 폭 레지스터를 더 포함하는 시스템. - 제 25 항에 있어서,
상기 스마트 메모리 컨트롤러는:
전압 발생기; 그리고
상기 전압 발생기 내에서 전압 바이어스 레벨을 선택하는 코드를 생성하는 전압 레귤레이터 레지스터를 더 포함하는 시스템. - 제 29 항에 있어서,
상기 스마트 메모리 컨트롤러는:
상기 비트 에러율 자가 내장 테스트의 쓰기 에러 횟수를 카운팅하는 쓰기 에러 카운터; 그리고
상기 비트 에러율 자가 내장 테스트의 읽기 에러 횟수를 카운팅하는 읽기 에러 카운터를 더 포함하는 시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/691,639 US9069719B2 (en) | 2012-02-11 | 2012-11-30 | Method and system for providing a smart memory architecture |
US13/691,639 | 2012-11-30 | ||
US13/936,134 | 2013-07-05 | ||
US13/936,134 US9679664B2 (en) | 2012-02-11 | 2013-07-05 | Method and system for providing a smart memory architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140070441A true KR20140070441A (ko) | 2014-06-10 |
KR101898885B1 KR101898885B1 (ko) | 2018-09-14 |
Family
ID=50726152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130146387A KR101898885B1 (ko) | 2012-11-30 | 2013-11-28 | 스마트 메모리 아키텍쳐를 제공하기 위한 방법 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9679664B2 (ko) |
JP (1) | JP6320008B2 (ko) |
KR (1) | KR101898885B1 (ko) |
CN (1) | CN103854705B (ko) |
DE (1) | DE102013112900A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9570008B2 (en) | 2013-09-09 | 2017-02-14 | Samsung Display Co., Ltd. | Pixel circuit, organic light emitting display device having the same, and method of driving an organic light emitting display device |
US9965005B2 (en) | 2016-02-26 | 2018-05-08 | Samsung Electronics Co., Ltd. | Memory diagnosis system |
KR20190079264A (ko) * | 2017-12-27 | 2019-07-05 | 삼성전자주식회사 | 타겟 게이트 라인의 전압 강하를 보상하는 비휘발성 메모리 장치 |
US11605427B2 (en) | 2021-01-04 | 2023-03-14 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory device with write pulse trimming |
Families Citing this family (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
FR2992466A1 (fr) | 2012-06-22 | 2013-12-27 | Soitec Silicon On Insulator | Procede de realisation de contact pour led et structure resultante |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9076499B2 (en) * | 2012-12-28 | 2015-07-07 | Intel Corporation | Refresh rate performance based on in-system weak bit detection |
US9196384B2 (en) * | 2012-12-28 | 2015-11-24 | Intel Corporation | Memory subsystem performance based on in-system weak bit detection |
US9536626B2 (en) | 2013-02-08 | 2017-01-03 | Intel Corporation | Memory subsystem I/O performance based on in-system empirical testing |
US9281079B2 (en) * | 2013-02-12 | 2016-03-08 | International Business Machines Corporation | Dynamic hard error detection |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
CN104243222A (zh) * | 2013-06-06 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | 网络设备性能测试方法及测试装置和测试系统 |
US20150026528A1 (en) * | 2013-07-16 | 2015-01-22 | Manuel A. d'Abreu | Controller based memory evaluation |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9461242B2 (en) | 2013-09-13 | 2016-10-04 | Micron Technology, Inc. | Magnetic memory cells, methods of fabrication, semiconductor devices, memory systems, and electronic systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9494647B1 (en) * | 2013-12-31 | 2016-11-15 | Gsi Technology, Inc. | Systems and methods involving data inversion devices, circuitry, schemes and/or related aspects |
US10454024B2 (en) | 2014-02-28 | 2019-10-22 | Micron Technology, Inc. | Memory cells, methods of fabrication, and memory devices |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
JP6027567B2 (ja) * | 2014-03-07 | 2016-11-16 | 株式会社東芝 | キャッシュメモリおよびプロセッサシステム |
US9448876B2 (en) * | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) * | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
JP2015185179A (ja) | 2014-03-20 | 2015-10-22 | 株式会社東芝 | 抵抗変化メモリ |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9281466B2 (en) | 2014-04-09 | 2016-03-08 | Micron Technology, Inc. | Memory cells, semiconductor structures, semiconductor devices, and methods of fabrication |
US9859013B2 (en) * | 2014-05-06 | 2018-01-02 | Sandisk Technologies Llc | Data operations in non-volatile memory |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
KR102249810B1 (ko) * | 2014-07-23 | 2021-05-11 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
SG11201701901UA (en) * | 2014-09-12 | 2017-04-27 | Toshiba Kk | Non-volatile semiconductor storage device |
US9349945B2 (en) | 2014-10-16 | 2016-05-24 | Micron Technology, Inc. | Memory cells, semiconductor devices, and methods of fabrication |
US9768377B2 (en) * | 2014-12-02 | 2017-09-19 | Micron Technology, Inc. | Magnetic cell structures, and methods of fabrication |
KR102239755B1 (ko) * | 2014-12-05 | 2021-04-14 | 에스케이하이닉스 주식회사 | 리페어 정보 저장 회로 및 이를 포함하는 반도체 장치 |
US10439131B2 (en) | 2015-01-15 | 2019-10-08 | Micron Technology, Inc. | Methods of forming semiconductor devices including tunnel barrier materials |
US9606851B2 (en) * | 2015-02-02 | 2017-03-28 | International Business Machines Corporation | Error monitoring of a memory device containing embedded error correction |
US9940457B2 (en) | 2015-02-13 | 2018-04-10 | International Business Machines Corporation | Detecting a cryogenic attack on a memory device with embedded error correction |
RU2682843C1 (ru) | 2015-03-10 | 2019-03-21 | Тосиба Мемори Корпорейшн | Устройство памяти и система памяти |
US9455014B1 (en) | 2015-03-19 | 2016-09-27 | Qualcomm Incorporated | Adjusting resistive memory write driver strength based on write error rate (WER) to improve WER yield, and related methods and systems |
US9495000B1 (en) * | 2015-04-30 | 2016-11-15 | Qualcomm Technologies International, Ltd. | Power management of a wireless device |
JP6749021B2 (ja) * | 2015-05-15 | 2020-09-02 | 国立大学法人東北大学 | 抵抗変化型素子を備えた記憶回路 |
US10063263B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Extended error correction coding data storage |
US10020031B2 (en) * | 2015-05-21 | 2018-07-10 | Arm Limited | Location-based optimization for memory systems |
CN106484557B (zh) * | 2015-08-31 | 2019-06-18 | 联芯科技有限公司 | 选择读参数的方法及装置 |
KR20170034176A (ko) | 2015-09-18 | 2017-03-28 | 에스케이하이닉스 주식회사 | 반도체 장치 |
KR20170051039A (ko) | 2015-11-02 | 2017-05-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 구동 방법 |
US10105189B2 (en) * | 2015-11-10 | 2018-10-23 | Mako Surgical Corp. | Techniques for correcting an error in a nonvolatile memory of an embedded component for an end effector in a robotic surgical system |
US9928924B2 (en) * | 2015-12-15 | 2018-03-27 | Qualcomm Incorporated | Systems, methods, and computer programs for resolving dram defects |
US9916195B2 (en) * | 2016-01-12 | 2018-03-13 | International Business Machines Corporation | Performing a repair operation in arrays |
US9767878B1 (en) * | 2016-03-25 | 2017-09-19 | Taiwan Semiconductor Manufacturing Compant Ltd. | Semiconductor memory device and method for controlling the same |
US11538857B2 (en) | 2016-05-18 | 2022-12-27 | Avalanche Technology, Inc. | Bidirectional selector device for memory applications |
US11848039B2 (en) | 2016-05-18 | 2023-12-19 | Avalanche Technology, Inc. | Cross-point MRAM including self-compliance selector |
US10593727B2 (en) | 2016-05-18 | 2020-03-17 | Avalanche Technology, Inc. | Magnetic memory cell including two-terminal selector device |
JP2017224372A (ja) * | 2016-06-16 | 2017-12-21 | 東芝メモリ株式会社 | 磁気メモリ装置 |
US9812499B1 (en) * | 2016-07-27 | 2017-11-07 | Avalanche Technology, Inc. | Memory device incorporating selector element with multiple thresholds |
FR3055062B1 (fr) * | 2016-08-11 | 2018-08-31 | Stmicroelectronics Sa | Procede d'ecriture autocorrective d'un dispositif de memoire vive statique multiports, et dispositif correspondant |
TWI645400B (zh) | 2016-09-13 | 2018-12-21 | 東芝記憶體股份有限公司 | Semiconductor memory device |
JP2018049672A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリシステムおよびプロセッサシステム |
US10283212B2 (en) * | 2016-11-29 | 2019-05-07 | International Business Machines Corporation | Built-in self-test for embedded spin-transfer torque magnetic random access memory |
US9997257B1 (en) * | 2016-12-13 | 2018-06-12 | SK Hynix Inc. | Semiconductor device and semiconductor system including the same |
KR102646755B1 (ko) * | 2017-01-06 | 2024-03-11 | 삼성전자주식회사 | 저항 변화 물질을 포함하는 메모리 장치 및 그 구동 방법 |
JP2018156978A (ja) | 2017-03-15 | 2018-10-04 | 東芝メモリ株式会社 | 磁気記憶装置のスクリーニング方法、そのスクリーニング装置及び磁気記憶装置の製造方法 |
CN107068188A (zh) * | 2017-03-22 | 2017-08-18 | 合肥仁德电子科技有限公司 | 电子存储调试设备 |
US10452480B2 (en) | 2017-05-25 | 2019-10-22 | Micron Technology, Inc. | Memory device with dynamic processing level calibration |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
US10242750B2 (en) * | 2017-05-31 | 2019-03-26 | Sandisk Technologies Llc | High-speed data path testing techniques for non-volatile memory |
CN107301024B (zh) * | 2017-06-09 | 2020-07-17 | 珠海艾派克微电子有限公司 | 成像盒芯片、成像盒及数据处理方法 |
US10394647B2 (en) | 2017-06-22 | 2019-08-27 | International Business Machines Corporation | Bad bit register for memory |
US10978896B2 (en) | 2017-06-23 | 2021-04-13 | Dell Products L.P. | High efficiency power storage adapter |
US10928880B2 (en) | 2017-06-23 | 2021-02-23 | Dell Products L.P. | Power storage adapter for communicating battery data with a portable information handling system |
US10389154B2 (en) | 2017-06-23 | 2019-08-20 | Dell Products L.P. | Power storage adapter using a high efficiency charging method |
US10452102B2 (en) | 2017-06-23 | 2019-10-22 | Dell Products L.P. | Power delivery contract establishment in a power storage adapter |
US10476288B2 (en) | 2017-06-23 | 2019-11-12 | Dell Products L.P. | Power storage adapter for peak shift operation with a portable information handling system |
US10381844B2 (en) | 2017-06-23 | 2019-08-13 | Dell Products L.P. | Sourcing power from a battery or AC-DC converter of a power storage adapter |
CN109213624B (zh) * | 2017-06-30 | 2022-04-05 | 慧荣科技股份有限公司 | 降低快闪储存介面中传收数据错误方法及装置 |
US10403385B2 (en) * | 2017-06-30 | 2019-09-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Apparatus for memory device testing and field applications |
US10608443B2 (en) | 2017-08-15 | 2020-03-31 | Dell Products L.P. | Battery management using battery temperature distribution |
US10642333B2 (en) | 2017-08-24 | 2020-05-05 | Dell Products L.P. | Power storage adapter for efficient supply of power of multiple portable information handling systems |
US10620679B2 (en) | 2017-09-01 | 2020-04-14 | Dell Products L.P. | Prioritizing supplying electrical power by a power storage adapter to connected devices |
US10673271B2 (en) | 2017-09-01 | 2020-06-02 | Dell Products L.P. | Efficient charging of multiple portable information handling systems based on learned charging characteristics |
CN107729229B (zh) * | 2017-09-01 | 2020-04-24 | 北京东土军悦科技有限公司 | 一种设计代码中替换单元的验证方法、装置和设备 |
JP2019053794A (ja) | 2017-09-13 | 2019-04-04 | 東芝メモリ株式会社 | 半導体記憶装置 |
US10404105B2 (en) | 2017-09-14 | 2019-09-03 | Dell Products L.P. | Power storage adapter for wireless power transmission |
US11513928B2 (en) * | 2017-09-18 | 2022-11-29 | Dell Products L.P. | Power storage adapter with power cable validation |
US10714797B2 (en) | 2017-09-18 | 2020-07-14 | Dell Products L.P. | Multilayer thermal laminate with aerogel for battery cell enclosures |
US10488906B2 (en) | 2017-09-26 | 2019-11-26 | Dell Products L.P. | Power delivery based on temperature and other factors in a power storage adapter |
CN107911158B (zh) * | 2017-09-27 | 2020-05-08 | 西安空间无线电技术研究所 | 一种基于虚拟数据平面的服务系统以及提供服务的方法 |
US11290110B2 (en) * | 2017-10-26 | 2022-03-29 | Samsung Electronics Co., Ltd. | Method and system for providing a variation resistant magnetic junction-based XNOR cell usable in neuromorphic computing |
JP2019082897A (ja) * | 2017-10-31 | 2019-05-30 | 富士通株式会社 | 情報処理装置、情報処理システム及びプログラム |
KR102388803B1 (ko) * | 2017-11-02 | 2022-04-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
KR102401182B1 (ko) * | 2018-01-19 | 2022-05-24 | 삼성전자주식회사 | 메모리 장치 및 메모리 패키지 |
US10777295B2 (en) * | 2018-04-12 | 2020-09-15 | Micron Technology, Inc. | Defective memory unit screening in a memory system |
US10664194B2 (en) | 2018-05-16 | 2020-05-26 | Micron Technology, Inc. | Memory system with dynamic calibration using a variable adjustment mechanism |
US10990466B2 (en) | 2018-06-20 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
CN110658977B (zh) * | 2018-06-28 | 2023-02-24 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
US11188416B2 (en) | 2018-07-12 | 2021-11-30 | Micron Technology, Inc. | Enhanced block management for a memory sub-system |
US11113129B2 (en) * | 2018-07-13 | 2021-09-07 | Micron Technology, Inc. | Real time block failure analysis for a memory sub-system |
CN109256173A (zh) * | 2018-08-13 | 2019-01-22 | 中国航空无线电电子研究所 | 机载存储设备测试系统 |
US10991425B2 (en) | 2018-08-13 | 2021-04-27 | Micron Technology, Inc. | Access line grain modulation in a memory device |
US11189662B2 (en) | 2018-08-13 | 2021-11-30 | Micron Technology | Memory cell stack and via formation for a memory device |
US10936246B2 (en) | 2018-10-10 | 2021-03-02 | Micron Technology, Inc. | Dynamic background scan optimization in a memory sub-system |
US10990524B2 (en) | 2018-10-11 | 2021-04-27 | Powerchip Semiconductor Manufacturing Corporation | Memory with processing in memory architecture and operating method thereof |
WO2020079321A1 (en) * | 2018-10-16 | 2020-04-23 | Minima Processor Oy | Applications of adaptive microelectronic circuits that are designed for testability |
JP2020087491A (ja) * | 2018-11-21 | 2020-06-04 | キオクシア株式会社 | 半導体記憶装置 |
CN109814525B (zh) * | 2018-12-29 | 2022-03-22 | 惠州市德赛西威汽车电子股份有限公司 | 一种检测汽车ecu can总线通信电压范围的自动化测试方法 |
JP6989541B2 (ja) * | 2019-01-30 | 2022-01-05 | 株式会社東芝 | 演算デバイス |
US11010234B2 (en) | 2019-02-01 | 2021-05-18 | Winbond Electronics Corp. | Memory device and error detection method thereof |
KR20200126178A (ko) * | 2019-04-29 | 2020-11-06 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US10937495B2 (en) * | 2019-07-02 | 2021-03-02 | Winbond Electronics Corp. | Resistive memory apparatus and method for writing data thereof |
KR102651229B1 (ko) | 2019-07-22 | 2024-03-25 | 삼성전자주식회사 | 자기접합 메모리 장치 및 자기접합 메모리 장치의 데이터 라이트 방법 |
KR20210024311A (ko) * | 2019-08-21 | 2021-03-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 이를 포함하는 반도체 메모리 시스템, 및 반도체 메모리 시스템의 구동방법 |
CN115066728A (zh) | 2019-12-09 | 2022-09-16 | 西门子工业软件有限公司 | 具有自动化多步参考微调的存储器内建自测试 |
US11373695B2 (en) * | 2019-12-18 | 2022-06-28 | Micron Technology, Inc. | Memory accessing with auto-precharge |
US11042432B1 (en) | 2019-12-20 | 2021-06-22 | Western Digital Technologies, Inc. | Data storage device with dynamic stripe length manager |
CN113051199A (zh) | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 数据传输方法及装置 |
CN113284533B (zh) * | 2020-02-20 | 2023-10-13 | 华邦电子股份有限公司 | 存储器装置和调整用于存储器装置的参数的方法 |
TWI714475B (zh) * | 2020-03-17 | 2020-12-21 | 華邦電子股份有限公司 | 控制裝置以及記憶體系統 |
CN113448424B (zh) * | 2020-03-27 | 2023-12-08 | 华邦电子股份有限公司 | 控制装置以及存储器系统 |
TWI747231B (zh) * | 2020-04-08 | 2021-11-21 | 慧榮科技股份有限公司 | 閃存裝置的開卡電腦程式產品及方法以及裝置 |
CN111797033A (zh) * | 2020-06-23 | 2020-10-20 | 山东华芯半导体有限公司 | 一种SSD中处理NAND Flash读干扰的方法 |
KR20220033146A (ko) * | 2020-09-09 | 2022-03-16 | 삼성전자주식회사 | 저항성 메모리 장치 및 저항성 메모리 장치의 데이터 리드 방법 |
US12027223B2 (en) * | 2020-11-05 | 2024-07-02 | Changxin Memory Technologies, Inc. | Method, device, apparatus and storage medium for repairing failed bits |
KR20220070997A (ko) | 2020-11-23 | 2022-05-31 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN112614536A (zh) * | 2020-12-09 | 2021-04-06 | 北京智芯微电子科技有限公司 | Mram存储阵列温度自检测方法、存储控制方法和系统 |
CN114694704A (zh) * | 2020-12-29 | 2022-07-01 | 长鑫存储技术有限公司 | 磁性存储器及其读写方法 |
FR3131426B1 (fr) * | 2021-12-23 | 2024-09-06 | Commissariat Energie Atomique | Procédé d’écriture pour des mémoires résistives différentielles. |
US11977778B2 (en) * | 2022-03-09 | 2024-05-07 | Micron Technology, Inc. | Workload-based scan optimization |
TWI819608B (zh) * | 2022-05-17 | 2023-10-21 | 瑞昱半導體股份有限公司 | 具有電源穩定測試機制的多核處理電路及其測試方法 |
WO2023235216A1 (en) * | 2022-06-02 | 2023-12-07 | Rambus Inc. | 3d memory device with local column decoding |
US20230403011A1 (en) * | 2022-06-09 | 2023-12-14 | Everspin Technologies, Inc. | Mram device with integrated controller for fpga system and methods therefor |
US20240069764A1 (en) * | 2022-08-24 | 2024-02-29 | Micron Technology, Inc. | Single-bit error indication for a memory built-in self-test |
WO2024196372A1 (en) * | 2023-03-23 | 2024-09-26 | Siemens Industry Software Inc. | Memory built-in self-test with automated write trim tuning |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006065922A (ja) * | 2004-08-25 | 2006-03-09 | Toshiba Corp | 半導体記憶装置 |
KR20060048431A (ko) * | 2004-06-18 | 2006-05-18 | 엘피다 메모리 가부시키가이샤 | 반도체 기억장치 및 리프레시 주기 제어 방법 |
KR20070086643A (ko) * | 2004-11-26 | 2007-08-27 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | Sram 테스트 장치 및 방법 |
KR20080090135A (ko) * | 2007-04-04 | 2008-10-08 | 주식회사 루프 | Prbs 패턴에서 비트 에러율 테스트 방법 |
JP2012221545A (ja) * | 2011-04-14 | 2012-11-12 | Elpida Memory Inc | 半導体装置 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272588B1 (en) * | 1997-05-30 | 2001-08-07 | Motorola Inc. | Method and apparatus for verifying and characterizing data retention time in a DRAM using built-in test circuitry |
US6138249A (en) | 1997-12-11 | 2000-10-24 | Emc Corporation | Method and apparatus for monitoring computer systems during manufacturing, testing and in the field |
US6480972B1 (en) | 1999-02-24 | 2002-11-12 | International Business Machines Corporation | Data processing system and method for permitting a server to remotely perform diagnostics on a malfunctioning client computer system |
US6584589B1 (en) | 2000-02-04 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Self-testing of magneto-resistive memory arrays |
US6754866B1 (en) | 2001-09-28 | 2004-06-22 | Inapac Technology, Inc. | Testing of integrated circuit devices |
US6904389B2 (en) | 2001-03-06 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Remote computer testing |
US6760865B2 (en) | 2001-05-16 | 2004-07-06 | Freescale Semiconductor, Inc. | Multiple level built-in self-test controller and method therefor |
US6657914B1 (en) | 2001-07-19 | 2003-12-02 | Inapac Technology, Inc. | Configurable addressing for multiple chips in a package |
US7365557B1 (en) | 2001-09-28 | 2008-04-29 | Inapac Technology, Inc. | Integrated circuit testing module including data generator |
US7466160B2 (en) | 2002-11-27 | 2008-12-16 | Inapac Technology, Inc. | Shared memory bus architecture for system with processor and memory units |
US7673193B1 (en) | 2005-08-18 | 2010-03-02 | Rambus Inc. | Processor-memory unit for use in system-in-package and system-in-module devices |
US7409621B2 (en) * | 2002-12-26 | 2008-08-05 | Intel Corporation | On-chip jitter testing |
JP3866701B2 (ja) | 2003-08-25 | 2007-01-10 | 株式会社東芝 | 磁気ランダムアクセスメモリ及びそのテスト方法 |
US7533309B2 (en) * | 2004-02-26 | 2009-05-12 | Nilanjan Mukherjee | Testing memories using algorithm selection |
US7356744B2 (en) | 2005-05-12 | 2008-04-08 | Pc-Doctor, Inc. | Method and system for optimizing testing of memory stores |
US7779311B2 (en) | 2005-10-24 | 2010-08-17 | Rambus Inc. | Testing and recovery in a multilayer device |
WO2007063264A1 (en) * | 2005-12-02 | 2007-06-07 | Arm Limited | Data processing system |
US7466603B2 (en) | 2006-10-03 | 2008-12-16 | Inapac Technology, Inc. | Memory accessing circuit system |
US7733686B2 (en) * | 2006-12-30 | 2010-06-08 | Texas Instruments Incorporated | Pulse width control for read and write assist for SRAM circuits |
US7945840B2 (en) | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
US7664993B2 (en) | 2007-02-27 | 2010-02-16 | Microsoft Corporation | Automation of testing in remote sessions |
US7818638B2 (en) | 2007-06-15 | 2010-10-19 | Micron Technology, Inc. | Systems and devices including memory with built-in self test and methods of making and using the same |
US7768847B2 (en) | 2008-04-09 | 2010-08-03 | Rambus Inc. | Programmable memory repair scheme |
US20100332942A1 (en) * | 2008-09-10 | 2010-12-30 | Arm Limited | Memory controller for NAND memory using forward error correction |
US8718574B2 (en) * | 2008-11-25 | 2014-05-06 | Qualcomm Incorporated | Duty cycle adjustment for a local oscillator signal |
JP5314491B2 (ja) * | 2009-05-08 | 2013-10-16 | 株式会社アドバンテスト | 試験装置、試験方法、および、デバイス |
US8456926B2 (en) * | 2010-11-18 | 2013-06-04 | Grandis, Inc. | Memory write error correction circuit |
KR101792868B1 (ko) | 2010-11-25 | 2017-11-02 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 읽기 방법 |
KR20120065840A (ko) * | 2010-12-13 | 2012-06-21 | 삼성전자주식회사 | 디스플레이 구동 회로, 그것의 동작 방법, 및 그것을 포함하는 사용자 장치 |
-
2013
- 2013-07-05 US US13/936,134 patent/US9679664B2/en active Active
- 2013-11-22 DE DE102013112900.5A patent/DE102013112900A1/de active Pending
- 2013-11-28 KR KR1020130146387A patent/KR101898885B1/ko active IP Right Grant
- 2013-11-29 CN CN201310629755.3A patent/CN103854705B/zh active Active
- 2013-12-02 JP JP2013248988A patent/JP6320008B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060048431A (ko) * | 2004-06-18 | 2006-05-18 | 엘피다 메모리 가부시키가이샤 | 반도체 기억장치 및 리프레시 주기 제어 방법 |
JP2006065922A (ja) * | 2004-08-25 | 2006-03-09 | Toshiba Corp | 半導体記憶装置 |
KR20070086643A (ko) * | 2004-11-26 | 2007-08-27 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | Sram 테스트 장치 및 방법 |
KR20080090135A (ko) * | 2007-04-04 | 2008-10-08 | 주식회사 루프 | Prbs 패턴에서 비트 에러율 테스트 방법 |
JP2012221545A (ja) * | 2011-04-14 | 2012-11-12 | Elpida Memory Inc | 半導体装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9570008B2 (en) | 2013-09-09 | 2017-02-14 | Samsung Display Co., Ltd. | Pixel circuit, organic light emitting display device having the same, and method of driving an organic light emitting display device |
US9965005B2 (en) | 2016-02-26 | 2018-05-08 | Samsung Electronics Co., Ltd. | Memory diagnosis system |
KR20190079264A (ko) * | 2017-12-27 | 2019-07-05 | 삼성전자주식회사 | 타겟 게이트 라인의 전압 강하를 보상하는 비휘발성 메모리 장치 |
US11605427B2 (en) | 2021-01-04 | 2023-03-14 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory device with write pulse trimming |
US11742021B2 (en) | 2021-01-04 | 2023-08-29 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory device with write pulse trimming |
Also Published As
Publication number | Publication date |
---|---|
US20140157065A1 (en) | 2014-06-05 |
US9679664B2 (en) | 2017-06-13 |
CN103854705A (zh) | 2014-06-11 |
JP2014110073A (ja) | 2014-06-12 |
JP6320008B2 (ja) | 2018-05-09 |
US20160284422A9 (en) | 2016-09-29 |
DE102013112900A1 (de) | 2014-06-05 |
CN103854705B (zh) | 2018-10-19 |
KR101898885B1 (ko) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101898885B1 (ko) | 스마트 메모리 아키텍쳐를 제공하기 위한 방법 및 시스템 | |
KR102060835B1 (ko) | 메모리 시스템 및 그것의 쓰기 방법 | |
US9953725B2 (en) | Semiconductor memory devices and methods of operating the same | |
US11438016B2 (en) | Error detection code generation circuits of semiconductor devices, memory controllers including the same and semiconductor memory devices including the same | |
CN107437435B (zh) | 半导体存储器件及其操作方法 | |
US9870293B2 (en) | Memory device performing post package repair (PPR) operation | |
KR101863552B1 (ko) | 메모리 쓰기 에러 정정 회로 | |
US11755412B2 (en) | Semiconductor device with modified command and associated methods and systems | |
US20160155515A1 (en) | Semiconductor memory devices, memory systems including the same and methods of operating the same | |
CN103247347A (zh) | 提供智能存储器架构的方法和系统 | |
US20210064461A1 (en) | Semiconductor device with user defined operations and associated methods and systems | |
US12003252B2 (en) | Error correcting code poisoning for memory devices and associated methods and systems | |
US20240304269A1 (en) | Semiconductor device with selective command delay and associated methods and systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |