KR20110001882A - 메모리 리맵 정보를 저장하는 비휘발성 메모리 - Google Patents
메모리 리맵 정보를 저장하는 비휘발성 메모리 Download PDFInfo
- Publication number
- KR20110001882A KR20110001882A KR1020100050111A KR20100050111A KR20110001882A KR 20110001882 A KR20110001882 A KR 20110001882A KR 1020100050111 A KR1020100050111 A KR 1020100050111A KR 20100050111 A KR20100050111 A KR 20100050111A KR 20110001882 A KR20110001882 A KR 20110001882A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- read
- remap
- addressable memory
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
본 발명은 메모리 장치를 리맵핑(remapping)하는 것과 관련된 것이다. 본 발명의 일 태양에 따른 시스템은 메모리 장치에 관한 리맵 정보(remap information)를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)에 저장하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보가 업데이트될 경우, 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보의 적어도 일부를 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 저장하도록 적용된다.
Description
본 발명은 메모리 장치를 리맵핑(remapping)하는 것과 관련된 것이다.
메모리 장치는 예를 들어, 컴퓨터, 휴대폰, PDA, 데이터이력기록기(data logger), 항법장치 등과 같은 많은 유형의 전자 장치들에 적용된다. 전술한 전자 장치들 가운데, 다양한 유형의 비휘발성 메모리 장치들, 예를 들어, NAND 플래시 메모리나 NOR 플래시 메모리, SRAM, DRAM, 상변화 메모리(PCM: Phase Change Memory) 등이 적용된다. 일반적으로, 쓰기 프로세스(writing process) 또는 프로그래밍 프로세스(programming process)는 상기 메모리 장치들에 정보를 저장하기 위해 사용되며, 읽기 프로세스(read process)는 저장된 정보를 검색(retieve)하기 위해 사용된다.
전술한 비휘발성 메모리 장치들은 메모리 셀들(memory cells)을 포함할 수 있고, 상기 메모리 셀들은 시간이 지남에 따라 점차 악화되어, 그에 따라 상기 메모리 셀에 접속할 때, 읽기 에러(read error) 및/또는 쓰기 에러(write error)가 발생할 가능성을 증가시키는 결과를 초래할 수 있다. 또한, 예를 들어, 제조 결함 및/또는 메모리 장치 제조의 한계로 인한 에러들이 발생될 수 있다. 전술한 에러들은 나중에 메모리 장치 내에서 정정(correct)될 수도 있지만, 예를 들어, 에러들의 숫자가 증가함에 따라 그와 같은 에러의 정정이 어려워지거나 불가능해질 수 있다.
본 발명은 전술한 종래 기술의 문제점을 해소하기 위한 것이다.
본 발명의 일 태양에 따른 시스템은 메모리 장치에 관한 리맵 정보(remap information)를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)에 저장하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보가 업데이트될 경우, 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보의 적어도 일부를 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 저장하도록 적용될 수 있다.
상기 시스템은, 상기 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들을 수신하고, 상기 데이터를 대표하는 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 ECC 디코더(Error Correction Coding decoder)를 더 포함할 수 있고, 상기 컨트롤러는 적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부를 기초로 상기 리맵 정보를 저장하도록 적용될 수 있다.
상기 비휘발성, 이산-어드레서블 메모리는 상-변화 메모리(PCM: Phase-Change Memory)를 포함할 수 있다.
상기 리맵 정보는 하나 또는 그 이상의 리맵 어드레스들(remap addresses)의 테이블들을 포함할 수 있다.
상기 비휘발성, 이산-어드레서블 메모리는 읽기/쓰기 프로세스 동안, 실시간(on-the-fly)으로 새로운 리맵 정보에 대해 업데이트될 수 있다.
상기 콘텐트 어드레서블 메모리(CAM) 및 상기 비휘발성, 이산-어드레서블 메모리는 실질적으로 서로 동시성을 가질 수 있다.
상기 비휘발성, 이산-어드레서블 메모리는 제2의 콘텐트 어드레서블 메모리(CAM)를 포함할 수 있다.
본 발명의 다른 태양에 따른 시스템은 하나 또는 그 이상의 애플리케이션(system application)을 실행하고, 메모리 장치로부터의/메모리 장치에의 읽기/쓰기를 위한 호스트(host); 상기 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들을 수신하고, 상기 데이터를 대표하는 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 ECC 디코더(Error Correction Coding decoder); 및 적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부를 기초로 상기 메모리 장치의 리맵핑된 어드레스를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)에 저장하는 리맵 컨트롤러(remap controller)를 포함하며, 상기 콘텐트 어드레서블 메모리(CAM)는 상-변화 메모리(PCM: Phase-Change Memory)를 포함할 수 있다.
본 발명의 또 다른 태양에 따른 방법은 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 단계; 및 상기 메모리 장치에 관한 리맵 정보(remap information)를 대표하는 디지털 신호들을 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 저장하는 단계를 포함하며, 상기 리맵 정보는 적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부에 기초한다.
전술한 바와 같은 본 발명은 예를 들어, 현재 외면되고 있는, 신뢰성이 부족한 테스트 결과를 갖는 다이(die) 또는 상변화 메모리 다이(PCM die)와 같이, 상대적으로 신뢰성이 덜한 기술들을 수반하는 저장 장치들의 성공적인 이용을 제공한다. 또한, 본 발명은 저장 장치의 수명을 상대적으로 적은 메모리 셀들의 수명이 아니라, 대부분의 메모리 셀들의 수명으로 연장할 수 있다.
전술한 구성적 특징 및 그에 따른 작용효과나 그 이외의 본 발명의 다른 특징들 및 이점들은 첨부된 도면들을 참조로 한 이하의 설명을 통해 더욱 명확해질 것이다.
이하, 첨부된 도면들에 대해 간략히 설명하며, 따로 명기하지 않는 한, 도면들 전체에 걸쳐 동일 도면부호들은 동일 요소들을 나타낸다.
도 1은 본 발명의 일 실시예에 따른 메모리 구성의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 읽기 프로세스(memory read process)의 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(computing system) 및 메모리 장치의 개략적 블록 다이어그램이다.
도 5는 본 발명의 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 벡터 리맵 테이블(vector remap table)의 개략도이다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템의 개략적 블록 다이어그램이다.
도 9는 본 발명의 다른 실시예에 따른 컴퓨팅 시스템 및 메모리 장치의 개략적 블록 다이어그램이다.
도 1은 본 발명의 일 실시예에 따른 메모리 구성의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 읽기 프로세스(memory read process)의 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(computing system) 및 메모리 장치의 개략적 블록 다이어그램이다.
도 5는 본 발명의 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 메모리 읽기 프로세스의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 벡터 리맵 테이블(vector remap table)의 개략도이다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템의 개략적 블록 다이어그램이다.
도 9는 본 발명의 다른 실시예에 따른 컴퓨팅 시스템 및 메모리 장치의 개략적 블록 다이어그램이다.
일 실시예에 있어서, 메모리 장치에 관한 리맵 정보(remap information)는 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 보전될 수 있다. 전술한 리맵 정보는 예를 들어, 읽기/쓰기 요청(read/write request)의 일부로서 프로세서에 의해 제공되는 어드레스를 대체하도록 리맵 어드레스를 제공하는 리맵 벡터들(remap vectors)을 포함할 수 있다. 여기서, 이산-어드레서블 메모리는 예를 들어, 동시에 블록들(blocks) 및/또는 섹터들(sectors)에 쓰여질 필요가 없으며, 개별적으로 어드레스되거나 비교적 작은 그룹들로 어드레스될 수 있는 메모리 셀들을 포함할 수 있다. 예를 들어, NOR 플래시-타입 메모리(NOR flash-type memory)에 데이터를 쓰는(writing) 것은, 쓰여지게 될 데이터가 오직 하나 또는 두 개의 메모리 셀들의 메모리 공간을 필요로 하는 경우라도, 많은 블록의 메모리 셀들에 쓰는 것을 수반할 수 있다. 다른 실시예에 있어서, 전술한 리맵 정보와 같은 데이터를 상-변화 메모리(PCM: phase-change memory)에 쓰는 것은 단순히, 쓰여지게 될 데이터의 메모리 사이즈와 실질적으로 일치하는 메모리 셀들에 쓰는 것을 수반할 수 있다.
리맵 정보를 전술한 바와 같은 비휘발성, 이산-어드레서블 메모리에 보전(maintaining)하는 것은 리맵핑될 메모리의 특정 영역들의 더 세밀한 제어(finer-grained control)를 제공할 수 있다. 예를 들어, 전술한 비휘발성, 이산-어드레서블 메모리는 메모리 공간의 상대적으로 작은 부분들에 리맵 벡터들을 저장하는 이산 어드레싱(discrete addressing)을 허용한다. 반대로, 비 이산-어드레서블 메모리(non discretely-addressable memory)는 예를 들어, 단순히 단일의 리맵 벡터를 저장하는 것이 메모리 장치의 상대적으로 큰 부분을 차지하도록 하는 블록 및/또는 섹터 어드레싱(block and/or sector addressing)을 이용할 수 있다. 또한, 블록 및/또는 섹터 어드레싱을 이용하는 메모리는 이산-어드레서블 메모리와 비교하여 증가된 쓰기-시간(write-time)의 양을 초래하는 이후의 쓰기 프로세스를 위해 메모리 블록 및/또는 섹터를 비교하는 삭제 프로세스를 수반할 수 있다. 따라서, 리맵 정보를 비휘발성, 이산-어드레서블 메모리에 저장 및 보전하는 것은 메모리 장치의 메모리 공간 활용을 향상시키고, 쓰기 프로세스에 수반되는 시간의 양을 줄이는 한 가지 방법을 제공할 수 있다. 일 실행에 있어서, 전술한 바와 같은 비휘발성 메모리는 전원이 꺼지는 경우에도 리맵 정보를 저장할 수 있기 때문에, 리맵 정보를 비휘발성, 이산-어드레서블 메모리에 보전하는 것은 전술한 리맵 정보에 적합한 휘발성 메모리 장치의 이용을 허용할 수 있다. 따라서 리맵 정보를 비휘발성, 이산-어드레서블 메모리에 저장 및 보전하는 것은 예를 들어, NAND 플래시 메모리나 NOR 플래시 메모리, SRAM, DRAM, 상변화 메모리(PCM) 등과 같은 메모리의 타입을 선택함에 있어서 증진된 유연성을 허용할 수 있다.
일 실행에 있어서, 리맵 정보에 적합한 메모리 장치는 물리적으로 비휘발성, 이산-어드레서블 메모리를 포함할 수 있어, 단일의 다이(die) 또는 집적회로칩이 메모리 장치 및 비휘발성, 이산-어드레서블 메모리를 모두 포함할 수 있게 된다. 그러나, 전술한 실행에 있어서, 메모리 장치는 비휘발성, 이산-어드레서블 메모리와 구별되며, 전술한 메모리 장치와 비휘발성, 이산-어드레서블 메모리는 프로세서 및/또는 메모리 컨트롤러를 통해 별개로 액세스(access)될 수 있다. 예를 들어, 메모리 장치에 관한 리맵 정보를 저장하기 위해 이용되는 비휘발성, 이산-어드레서블 메모리는 상기 메모리 장치에 마련될 수 있지만, 여전히 상기 메모리 장치와는 구별된다. 전술한 바와 같은 실시예에 있어서의 메모리 장치는 다중 메모리 다이(multiple memory die)를 포함하는 메모리 모듈을 포함할 수 있다. 상기 메모리 다이는 단일 프로세서 및/또는 메모리 컨트롤러를 통해 액세스될 수 있는 반면, 리맵 정보를 저장하기 위해 이용되는 비휘발성, 이산-어드레서블 메모리는 분리된 프로세서 및/또는 메모리 컨트롤러를 통해 액세스될 수 있다. 물론, 전술한 바와 같이, 비휘발성, 이산-어드레서블 메모리에 리맵 정보를 보전(maintaining)하는 것의 상세내용 및 이점들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
메모리 장치에 관한 리맵 정보를 비휘발성, 이산-어드레서블 메모리에 저장 및 보전하는 것은 또한 예를 들어, 상기 리맵 정보를 메모리 장치 내에 보전하는 것과 비교하여 감소된 레이턴시(latency) 및/또는 증가된 가용 메모리 용량의 이용을 가능하게 한다. 일 실행에 있어서, 전술한 리맵 정보는 예를 들어, 프로세서에 의해 개시된 읽기/쓰기 프로세스들과 같은 런-타임 프로세스들(run-time processes)이 수행되는 동안, 실시간(on-the-fly)으로 생성될 수 있고, 메모리 장치로부터 읽혀진 데이터는 전술한 바와 같이, 에러들에 대한 검사가 이루어질 수 있다. 다른 실행에 있어서, 메모리 장치의 에러가 발생되기 쉬운 부분들에 대한 스캐닝(scanning)을 포함하는 초기화 프로세스가 시스템에 의해 수행될 수 있다. 물론, 전술한 바와 같이, 비휘발성, 이산-어드레서블 메모리에 리맵 정보를 보전하는 것의 상세내용 및 이점들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
일 실시예에 있어서, 메모리 장치는 메모리 셀들(memory cells)을 포함할 수 있고, 상기 메모리 셀들은 시간이 지남에 따라 점차 악화되어, 그에 따라 상기 메모리 장치를 읽을 때, 하나 또는 그 이상의 에러들이 발생할 가능성을 증가시키는 결과를 초래할 수 있다. 메모리 장치는 또한 제조 결과로서 결함이 있는 메모리 셀들 및/또는 미미한 기능의 메모리 셀들을 포함할 수 있다. 전술한 에러들은 예를 들어, 에러 정정 코드(ECC: Error Correction Code) 또는 다른 알고리즘을 이용하는 컴퓨팅 시스템 내부의 몇몇 구역에서 정정될 수 있다. 시스템 관점에서, 에러가 발생되기 쉬운 셀들을 계속 이용할 것인지 여부에 대한 결정이 이루어질 수 있다. 이하에서 상세히 설명되는 바와 같이, 전술한 결정은 예를 들면, 적어도 부분적으로 메모리 장치의 설계 단계에서 정해지는 에러 임계값(error threshold)과 전술한 에러들의 개수에 대한 비교 결과에 기초하여 이루어질 수 있다. 일 실행에 있어서, 특정 메모리 셀들의 이용은 그러한 셀들이 과도한 개수의 에러들을 보이기 전에 중단될 수 있다. 즉, 메모리 셀들이 에러 임계값에 도달하는 에러들의 개수를 유발할 경우, 그와 같이 에러들이 발생되기 쉬운 메모리 셀들은 그 이용이 중단될 수 있다. 예를 들어, 메모리 셀들의 이용을 중단할 것인지 여부를 결정하기 위해, 전술한 에러 임계값에 도달할 필요는 없다. 따라서, 에러들의 개수가 에러 임계값에 도달하는지를 관찰하는 것은, 특정 메모리 셀들이 곧 과도한 에러들을 발생시켜, 예를 들어 실제 제대로 작동하지 않게 되기 전에, 그와 같이 에러들이 발생되기 쉬운 메모리 셀들의 이용이 중단될 것을 예측하는 한 방법이 될 수 있다. 특정 메모리 셀들의 사용이 중단될 경우, 메모리 셀들의 교체는 메모리 장치의 전체 용량을 유지하는 방식으로 이루어질 수 있다.
따라서, 일 실시예에 있어서, 메모리 장치의 용량 크기를 유지하는 프로세스는 전체 시스템 메모리 공간(예를 들면, 저장 장치 용량)의 손실없이, 에러가 발생되기 쉬운 메모리 위치(memory location)를 올바르게 작동하는 메모리 위치로 리맵핑(remapping)하는 것을 포함할 수 있다. 전술한 리맵핑은 적어도 부분적으로, 에러가 발생되기 쉬운 메모리 위치로부터의 읽기 결과로 발생되는 에러들의 양 및/또는 빈도수에 관한 정보에 기초하여 이루어질 수 있다. 여기서, 메모리 위치는 예를 들어, 읽기 및/또는 쓰기 프로세스를 통해, 메모리 위치 및/또는 메모리 부분(memory portion)을 식별하는 어드레스를 이용하여 액세스될 수 있는 메모리 장치의 일 부분을 가리킨다. 이하에서 상세히 설명되는 바와 같이, 예를 들어, ECC 디코더(ECC(Error Correction Coding) decoder)는 메모리의 특정 부분을 읽는 것과 연관된 비트 에러율(BER: bit error rate) 및/또는 비트 에러들의 개수를 판별하는데 이용될 수 있다. 그 후, 상기 비트 에러율(BER) 및/또는 비트 에러들의 개수는 예를 들어, 수용가능한 에러들의 개수에 대한 실질적인 한계를 포함하는 에러 임계값과 비교되어질 수 있다. 전술한 비교의 결과에 따라, 에러들을 발생시키는 메모리의 특정 부분을 폐기(retire)할지 여부에 관한 결정이 이루어질 수 있다.
특정 실시예에 있어서, 메모리 장치의 일 부분을 폐기하는 프로세스는 메모리 장치의 폐기될 부분에 저장된 데이터를 대표하는 디지털 신호들을 상기 메모리 장치의 다른 부분으로 이동시키거나 옮기는 것을 포함할 수 있다. 일 실행(implementation)에 있어서, 전술한 바와 같이, 메모리 장치의 폐기될 부분에 저장된 데이터를 대표하는 디지털 신호들을 상기 메모리 장치의 스페어 부분(spare portion)으로 이동될 수 있다. 예를 들면, 상기 스페어 부분은, 이하에서 더욱 상세히 설명되는 바와 같이, 초기에 상기 메모리 장치의 전체 용량의 일부로 여겨지거나 인식된 것은 아닌 메모리 장치의 물리적 위치(physical location)를 포함할 수 있다. 메모리 장치의 일 부분을 폐기하는 프로세스는 또한 상기 메모리 장치의 폐기될 부분의 어드레스를 대응하는 상기 메모리 장치의 새로운 스페어 부분의 어드레스로 리맵핑(remapping)하는 것을 포함할 수 있다. 전술한 바와 같이 리맵핑된 어드레스들은 예를 들어, 비휘발성, 이산-어드레서블 메모리에 저장될 수 있다. 물론, 전술한 바와 같은 프로세스들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
일 실시예에 있어서, 전술한 바와 같은 프로세스는 상-변화 메모리 장치(phase-change memory(PCM) device)를 포함하는 메모리 장치를 수반할 수 있다. 따라서, 상기 상-변화 메모리(PCM)의 부분들에 의해 발생된 비트 에러율(BER) 및/또는 비트 에러들의 개수가 증가할 수 있다. 전술한 에러들은 어느 정도는 예를 들어, 전술한 ECC 디코더 및/또는 다른 에러 정정 알고리즘을 이용하여 정정될 수 있다. 그러나, 많은 에러들이 증가하여 전술한 에러 정정 기술의 역량을 초과할 수 있다. 따라서, 전술한 메모리 부분들이 과도한 개수의 에러들을 발생시켰거나 발생시키기 시작하는 조짐이 보이면, 즉시 그러한 메모리 부분들을 폐기할 수 있게 하는 것이 바람직하다.
전술한 바와 같은 실시예들은 예를 들어, 현재 외면되고 있는, 신뢰성이 부족한 테스트 결과를 갖는 다이(die) 또는 상변화 메모리 다이(PCM die)와 같이, 상대적으로 신뢰성이 덜한 기술들을 수반하는 저장 장치들의 성공적인 이용을 제공한다. 또한, 본 발명은 저장 장치의 수명을 상대적으로 적은 메모리 셀들의 수명이 아니라, 대부분의 메모리 셀들의 수명으로 연장할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 구성의 개략도이다. 메모리 장치(100)는 메인 메모리(main memory: 110)와 스페어 메모리(spare memory: 120)로 분할될 수 있다. 상기 메모리 장치(100)는 예를 들어, NAND 플래시 메모리나 NOR 플래시 메모리, SRAM, DRAM 또는 상-변화 메모리(PCM)를 포함할 수 있다. 상기 메모리 장치(100)는 사용자-어드레서블 메모리 공간(user-addressable momory space)을 포함할 수 있고, 상기 사용자-어드레서블 메모리 공간은 전술한 메인 및 스페어 메모리 부분들 및/또는 서로 인접하거나 그렇지 않을 수 있으며, 하나의 장치에 존재하거나 그렇지 않을 수 있는 하나 또는 그 이상의 다른 메모리 부분들을 포함한다. 상기 메인 메모리(110)와 스페어 메모리(120)는 예를 들어, 읽기 프로세스, 쓰기 프로세스 및/또는 삭제 프로세스에 의해 액세스(access)될 수 있는 독립된 어드레서블 공간(addressable space)을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 메모리 장치(100)의 하나 또는 그 이상의 부분들은 상기 메모리 장치(100)의 특정 상태(particular state)에 의해 표현되는 데이터 및/또는 정보를 나타내는 신호들을 저장할 수 있다. 예를 들어, 데이터 및/또는 정보를 나타내는 전자 신호는 데이터 및/또는 정보를 2진수 정보(1 및 0)로 표시하도록 상기 메모리 장치(100)의 전술한 부분들의 상태를 변화시킴으로써 메모리 장치의 일 부분에 "저장"될 수 있다. 따라서 특정 실행에 있어서, 데이터 및/또는 정보를 나타내는 신호들을 저장하기 위한 전술한 바와 같은 메모리의 일 부분의 상태 변화는 메모리 장치(100)의 다른 상태로의 변환(transformation)을 구성한다.
상기 메모리 장치(100)는 초기에 상기 메모리 장치(100)의 완전한 가용 용량에 대응하는 메인 메모리(110)를 포함하도록 구성될 수 있다. 그와 같은 초기 구성은 메모리 장치 용량을 판별하는데 있어서 포함될 필요가 없는 스페어 메모리(120)를 추가로 포함할 수 있다. 그러나, 예를 들어, 읽기/쓰기 프로세스 과정 중, 메인 메모리 부분들이 무용하게 되거나 과잉의 에러들을 초래하는 경우, 상기 스페어 메모리(120)가 상기 메인 메모리(110)의 부분들을 대체하도록 이용될 수 있다. 물론, 전술한 바와 같은 메모리 장치 구성은 단지 일 예에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 메모리 읽기/쓰기 프로세스(memory read/write process: 200)의 흐름도이다. 단계 220에서는, 예를 들어, 저장된 데이터가 읽혀지거나 쓰여질 수 있는 하나 또는 그 이상의 메모리 위치들을 각각 식별하는 하나 또는 그 이상의 읽기/쓰기 어드레스들(read/write addresses)을 제공하는 프로세서(미도시)에 의해 실행되는 시스템 애플리케이션(system application)에 의해, 메모리 장치의 일 부분을 읽거나 그 일 부분에 쓰기 위한 읽기/쓰기 프로세스가 개시될 수 있다. 단계 230에서, 전술한 바와 같은 읽기/쓰기 어드레스는 적어도 부분적으로, 상기 읽기/쓰기 어드레스가 폐기되는 메모리 위치에 대응하는지 여부를 기초로 하여 미리 선택된 데이터 경로를 따라 데이터 읽기/쓰기 프로세스를 안내할 수 있다. 상기 실시예에 있어서, 메모리 장치는 예를 들어, 도 1에 도시된 메모리 장치(100)와 같이, 메인 메모리 부분과 스페어 메모리 부분을 포함할 수 있다. 특정 실행에 있어서, 스페어 메모리 부분은 폐기되는 메인 메모리 부분 대신에 이용될 수 있다. 전술한 메모리 위치가 폐기되지 않는 경우에 있어서, 데이터 경로는 단계 240에서, 프로세서에 의해 전송된 어드레스에 대응하는 메인 메모리 부분에 있는 위치로 데이터 읽기/쓰기 프로세스를 향하게 할 수 있다. 전술한 바와 같은 프로세스의 경로 설정(directing)은 예를 들어, 멀티플렉서(multiplexer)와 같이, 적절히 스위칭된 하드웨어 스위칭 요소(hardware switching component)에 의해 수행될 수 있다. 예를 들면, 상기 프로세서에 의해 전송된 어드레스에 대응하는 메인 메모리 부분으로 이끄는 데이터 경로를 선택하기 위한 일 신호가 상기 하드웨어 스위칭 요소에 적용될 수 있다. 상기 하드웨어 스위칭 요소에 의해 선택된 다른 데이터 경로들은 예를 들어, 스페어 메모리 부분과 같은 메모리 장치의 다른 부분들로 이끄는 개개의 데이터 경로들을 포함할 수 있다.
그 결과, 단계 250에서, 상기 프로세서에 의해 전송된 읽기/쓰기 어드레스는 메모리 장치의 메인 메모리 부분으로부터의 읽기 또는 거기에의 쓰기를 위해 이용될 수 있다. 그 후, 단계 260에서, 상기 메모리 장치의 읽기 어드레스로부터 읽혀진 데이터는 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어(error-checking hardware) 및/또는 소프트웨어로 제공될 수 있다. 상기 메모리 장치에 데이터를 쓰는 경우에 있어서는, 성공적인 쓰기 작업(write operation)을 확인하기 위한 이후의 읽기 프로세스가 수행될 수 있다: 전술한 읽기 데이터는 이후에 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어 및/또는 소프트웨어로 제공될 수 있다.
메모리 위치가 폐기된 경우에 있어서, 데이터 경로는 단계 245에서, 프로세서에 의해 전송된 어드레스에 대응하는 메모리 위치를 대신하여 스페어 메모리 부분에 있는 위치로 데이터 읽기/쓰기 프로세스를 향하게 할 수 있다. 전술한 바와 같은 프로세스의 경로 설정(directing)은 예를 들어, 멀티플렉서와 같이, 적절히 스위칭된 하드웨어 스위칭 요소(hardware switching component)에 의해 수행될 수 있다. 특히, 상기 프로세서에 의해 전송된 어드레스에 대응하는 스페어 메모리 부분으로 이끄는 데이터 경로를 선택하기 위한 일 신호가 상기 하드웨어 스위칭 요소에 적용될 수 있다. 상기 하드웨어 스위칭 요소에 의해 선택된 다른 데이터 경로들은 예를 들어, 메인 메모리 부분 및/또는 다른 스페어 메모리 부분들과 같은 메모리 장치의 다른 부분들로 이끄는 개개의 데이터 경로들을 포함할 수 있다.
그 결과, 단계 255에서, 상기 프로세서에 의해 전송된 읽기/쓰기 어드레스는, 비록 원래 메인 메모리 부분의 어드레스로 향한 것이지만, 상기 메모리 장치의 스페어 메모리 부분으로 방향이 바뀌어질 수 있다. 그 후, 단계 260에서, 상기 스페어 메모리 부분으로부터 읽혀진 또는 거기에 쓰여진 데이터는 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어 및/또는 소프트웨어로 제공될 수 있다. 상기 메모리 장치에 데이터를 쓰는 경우에 있어서는, 성공적인 쓰기 작업을 확인하기 위한 이후의 읽기 프로세스가 수행될 수 있다: 전술한 읽기 데이터는 이후에 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어 및/또는 소프트웨어로 제공될 수 있다. 물론, 전술한 바와 같은 메모리 읽기 프로세스들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 3은 본 발명의 일 실시예에 따른 메모리 읽기/쓰기 프로세스(300)의 흐름도이다. 단계 310에서는, 예를 들어, 저장된 데이터가 읽혀지거나 쓰여지게 될 하나 또는 그 이상의 메모리 위치들을 각각 식별하도록 하나 또는 그 이상의 읽기/쓰기 어드레스들을 제공하는 시스템 애플리케이션에 의해, 메모리 장치의 일 부분에 대한 읽기 또는 쓰기를 위한 읽기/쓰기 프로세스가 개시될 수 있다. 예를 들어, 읽기 데이터를 패리티 검사(parity checking)하는 것에 의해, ECC 하드웨어 및/또는 소프트웨어가 읽기 데이터에 있는 에러들의 검사 및/또는 정정에 이용될 수 있다. 그 후, 단계 320에서와 같이, 메모리 읽기/쓰기 프로세스에서 발생된 에러들의 개수가 판별하도록, 처음의 읽기 데이터는 정정된 읽기 데이터와 비교될 수 있다. 전술한 에러들의 개수는 비트 에러율(BER: bit error rate)로 표현될 수 있으며, 이것은 예를 들면, 읽기 비트(read bits)의 총 개수에 대한 에러 비트(error bits) 개수의 비율을 포함할 수 있다. 메모리 장치의 일 부분으로부터의 읽기(reading)에 기인하는 비트 에러율(BER) 또는 에러들의 개수는, 용인될 수 있는 최대 비트 에러율(BER) 또는 용인될 수 있는 최대 에러들의 개수를 나타내는 값을 포함하는 에러 임계값과 비교될 수 있고, 예를 들어, 상기 에러 임계값을 초과하는 추가적인 에러들은 성공적으로 정정되지 않을 수 있다: 전술한 바와 같은 에러 임계값은, 예를 들어, 도 1에 도시된 메모리 장치(100)와 같은 특정 메모리 장치에서 정정될 수 있는 비트 에러율(BER) 또는 에러들의 개수의 상한(upper limit)을 실질적으로 대표하는 수(number)를 포함할 수 있다. 전술한 바와 같은 에러 임계값 이하에서는, ECC 하드웨어 및/또는 소프트웨어를 통해 읽기 에러들(read errors)을 정정할 수 있다. 그러나, 전술한 바와 같은 에러 임계값을 초과하는 경우, 읽기 에러들이 모두 정정되지는 못할 가능성이 비교적 높다.
단계 330에서는, 적어도 부분적으로, 메모리의 일 부분으로부터 읽은 결과가 과도한 에러들을 포함하는지 여부에 기초하여, 메모리의 일 부분을 폐기(retire)할지 여부에 대한 결정이 이루어진다. 에러들의 개수가 에러 임계값 이하인 경우, 전술한 메모리의 일 부분을 폐기하지 않는 것으로 결정이 나고, 읽기/쓰기 프로세스(300)는 단계 335로 넘어간다. 여기서, 일 신호가 하드웨어 스위칭 요소(hardware switching component)에 제공될 수 있고, 그에 따라 상기 읽기/쓰기 프로세스를 위해 데이터가 전송되는 루트(route) 또는 경로는 원래의 메인 메모리 부분으로 향하게 될 수 있다. 다음, 단계 340에서는, 예를 들어, 원래의 메인 메모리 부분에 쓰여지게 될 읽기 데이터 또는 쓰기 데이터를 요청한 애플리케이션(application)에 읽기 데이터가 제공될 수 있다.
반면, 에러들의 개수가 에러 임계값을 초과하는 경우, 전술한 메모리의 일 부분을 폐기하는 것으로 결정이 나고, 읽기/쓰기 프로세스(300)는 단계 350으로 넘어가게 되며, 그 단계에서는, 예를 들면, 과도한 에러들을 초래하는 메모리의 일 부분을 폐기하기 위한 프로세스가 시작될 수 있다. 특정 실행(implementation)에 있어서, 전술한 바와 같이 폐기될 메모리 부분에 저장된 데이터는, 상기 읽기/쓰기 프로세스를 위해 이용된 데이터 루트가 원래의 메인 메모리 부분으로 향하게 될 수 있도록, 하드웨어 스위칭 요소에 일 신호를 제공하는 것에 의해 한 번 더 읽혀질 수 있다. 다음, 단계 360에서는, 일 신호가 하드웨어 스위칭 요소에 제공될 수 있고, 그에 따라 후속의 읽기 및/또는 쓰기 프로세스들을 위해 이용되는 데이터 루트는 원래의 메인 메모리 부분을 대신하기 위해 이용되는 스페어 메모리 부분으로 향하게 될 수 있다. 다음, 단계 340에서는, 예를 들어, 스페어 메모리 부분에 쓰여지게 될 읽기 데이터 또는 쓰기 데이터를 요청한 애플리케이션(application)에 읽기 데이터가 제공될 수 있다. 물론, 전술한 바와 같은 메모리 읽기 프로세스들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 4는 예를 들어, 도 1을 통해 설명한 바와 같이, 메인 메모리 부분(450)과 스페어 메모리 부분(460)으로 분할될 수 있는 메모리 장치(455)를 포함하는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(computing system: 400)의 실시예를 설명하는 개략적 다이어그램이다. 상기 컴퓨팅 시스템(400)은 상기 메모리 장치(455)를 운영관리하도록 구성될 수 있는 장치, 기구(appliance) 및/또는 기계를 대표하는 것일 수 있다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 컴퓨팅 시스템(400)은 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 워크스테이션(workstation), 서버 장치(server device) 등과 같은 하나 또는 그 이상의 컴퓨팅 장치들 및/또는 플랫폼들; PDA(Personal Digital Assistant), 이동통신장치 등과 같은 하나 또는 그 이상의 개인 컴퓨팅 또는 통신 장치들이나 기구들; 데이터베이스 또는 데이터 저장 서비스 제공자/시스템 등과 같은 컴퓨팅 시스템 및/또는 관련 서비스 제공자; 및/또는 이들의 조합을 포함할 수 있다. 상기 컴퓨팅 시스템(400)에 있는 다양한 장치들의 일부나 모두 및 추가로 설명될 프로세스들 및 방법들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 이들의 조합을 포함하거나 또는 이용함으로써 실행될 수 있다. 따라서, 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 컴퓨팅 시스템(400)은 하드웨어 스위칭 요소(470), 메모리 컨트롤러(435), 에러 검출 및 메모리 폐기 결정 요소(440)(이하, 편의상 '에러 검출 요소')를 통해 메모리(455)와 작동적으로 연결되는 적어도 하나의 프로세싱 유닛(410)을 포함할 수 있다. 상기 프로세싱 유닛(410)은 데이터 컴퓨팅 처리나 프로세스의 적어도 일부를 수행하도록 구성될 수 있는 하나 또는 그 이상의 회로들을 대표한다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 프로세싱 유닛(410)은 하나 또는 그 이상의 프로세서, 컨트롤러, 마이크로프로세서, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuit), 디지털 신호 프로세서, PLD(Programmable Logic Device), FPGA(Field Programmable Gate Array) 등이나 이들의 조합을 포함할 수 있다. 상기 프로세싱 유닛(410)은 예를 들어, 읽기, 쓰기 및/또는 삭제와 같은 메모리 관련 작업들에 대한 프로세스를 수행하기 위해 메모리 컨트롤러(435)와 통신할 수 있다. 상기 프로세싱 유닛(410)은 메모리 컨트롤러(435)와 통신할 수 있도록 구성된 운영 체제를 포함할 수 있다. 예를 들어, 전술한 운영 체제는 어드레스 출력 포트(415) 및/또는 데이터 읽기/쓰기 포트(420)를 통해 메모리 컨트롤러(435)로 보내어지는 명령들(commands)을 생성할 수 있다. 전술한 명령들은 예를 들면, 메모리(455)에 대응하는 메모리 어드레스를 포함할 수 있다.
상기 컴퓨팅 시스템(400)은 예를 들어, 사람 및/또는 기계 입력들을 받아들이거나 도입하도록 구성될 수 있는 하나 또는 그 이상의 장치들이나 특징들 및/또는 사람 및/또는 기계 출력들을 넘겨주거나 제공하도록 구성될 수 있는 하나 또는 그 이상의 장치들이나 특징들을 대표하는 입/출력부(480)를 포함할 수 있다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 입/출력부(480)는 디스플레이, 스피커, 키보드, 마우스, 트랙볼(trackball), 터치 스크린, 데이터 포트 등을 포함할 수 있다.
상기 메모리 컨트롤러(435)는 하드웨어 스위칭 요소(470)를 통해 메모리(455)의 다양한 부분들로 이끄는 다중 데이터 경로들(475) 가운데서 선택하기 위해 이용되는 정보를 유지하는 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory: 430)를 포함할 수 있다. 일 실시예에 있어서, 상기 비휘발성, 이산-어드레서블 메모리는 상-변화 메모리(PCM)를 포함할 수 있다. 전술한 정보는 예를 들면, 특정 데이터 경로들(475)을 선택하기 위한 특정 메모리 선택 값들과 관련된 메모리 어드레스들의 테이블을 포함할 수 있다. 상기 프로세싱 유닛(410)이 읽기/쓰기 작업의 부분으로서의 어드레스를 제공하는 경우, 상기 비휘발성, 이산-어드레서블 메모리(430)는 상기 어드레스를 특정 데이터 경로를 선택하기 위한 특정 메모리 선택 값과 연관시키는데 이용될 수 있다. 여기서, 예를 들어, 메인 메모리(450) 또는 스페어 메모리(460) 어느 하나로의 데이터 경로를 선정하는 선택이 이루어질 수 있다. 전술한 선택은 앞서 설명한 바와 같이, 적어도 부분적으로, 읽기/쓰기 프로세스에서 제공된 어드레스와 연관된 메모리(455)의 위치가 폐기되었는지 여부에 기초하여 이루어질 수 있다. 특정 실시예에서, 상기 프로세싱 유닛(410)은 읽기 작업의 부분으로서의 어드레스를 제공할 수 있다. 메모리 컨트롤러(435)에 의해 수신된 상기 어드레스는 상기 비휘발성, 이산-어드레서블 메모리(430)에 보전된 특정 메모리 선택 값과 연관될 수 있다. 후술되는 바와 같이, 전술한 메모리 선택 값은 적어도 부분적으로, 상기 에러 검출 요소(440)에 의해 제공된 정보를 기초로 수립될 수 있다. 전술한 메모리 선택 값은 이후 다중 데이터 경로들(475) 가운데서 메모리로 이끄는 일 데이터 경로를 선택하도록 하드웨어 스위칭 요소(470)로 제공될 수 있다. 상기 실시예에서, 전술한 어드레스는 이전에 폐기된 메모리(455)의 위치에 대응한다. 따라서, 비휘발성, 이산-어드레서블 메모리(430)는 상기 어드레스를, 하드웨어 스위칭 요소(470)로 제공될 경우 스페어 메모리(460)에 있는 위치로 이끄는 데이터 경로를 선택하게 하는 메모리 선택 값과 연관시킨다. 비록, 도 4에는 다중 데이터 경로들(475)을 대표하는 두 개의 데이터 경로들이 도시되어 있지만, 데이터 경로들의 개수는 달라질 수 있다. 또한, 상기 하드웨어 스위칭 요소(470) 역시 한 번에 하나의 데이터 경로만을 선택하는 것으로 제한될 필요가 없다. 마찬가지로, 상기 메모리(455)의 다른 부분으로 이어지는 다양한 개수의 데이터 경로들의 조합이 가능하며, 상기 메모리(455)는 예를 들어, 함께 또는 개별적으로 패키징된 하나 또는 그 이상의 메모리 장치들을 포함할 수 있다. 상기 메모리(455)는 데이터 저장 장치를 대표한다. 상기 메모리(455)는 예를 들어, 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 고체상태 메모리 드라이브(solid state memory drive) 등을 포함할 수 있다. 따라서, 전술한 구성들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
전술한 바와 같이, 상-변화 메모리(PCM)와 같은 비휘발성, 이산-어드레서블 메모리(430)는 적어도 부분적으로, 상기 에러 검출 요소(440)에 의해 제공된 정보를 기초로 정보를 수립 및 보전할 수 있다. 일 실시예에 있어서, 상기 메모리(455)로부터 읽혀진 데이터는 상기 메모리(455)의 특정 부분을 읽는 것과 연관된 비트 에러율 및/또는 비트 에러들의 개수를 결정하도록 에러들을 검사할 수 있는 에러 검출 요소(440)로 제공될 수 있다. 그와 같은 에러 정보는 이후 예를 들어, 상기 비트 에러율 및/또는 비트 에러들의 개수를 에러 임계값과 비교하는 메모리 컨트롤러(435)로 제공될 수 있다. 전술한 비교 결과에 따라, 메모리의 특정 부분을 폐기할지 여부에 대한 결정이 이루어질 수 있다. 따라서, 메모리의 특정 부분의 어드레스는, 상기 하드웨어 스위칭 요소(470)로 제공될 경우 메모리의 적절한 부분으로 이끄는 데이터 경로를 선택하기 위해 이용될 수 있는 메모리 선택 값과 연관될 수 있다. 전술한 바와 같이, 상기 비휘발성, 이산-어드레서블 메모리(430)는 특정 메모리 어드레스들과 연관된 메모리 선택 값들을 보전할 수 있다.
도 4에 도시된 바와 같이, 상기 컴퓨팅 시스템(400)은 예를 들어, 메모리 컨트롤러(435), 비휘발성, 이산-어드레서블 메모리(430), 하드웨어 스위칭 요소(470) 및/또는 메모리(455)를 포함하는 하드웨어부(490)를 포함할 수 있다. 특정 실시예에 있어서, 메모리 장치의 일 부분에 대한 폐기 및/또는 메인 또는 스페어 메모리로부터의 읽기나 메인 또는 스페어 메모리에의 쓰기에 대한 결정은 읽기/쓰기 명령들을 내리는 프로세싱 유닛(410)에 관하여 투과성인(transparent) 프로세스를 포함할 수 있다. 따라서 상기 프로세싱 유닛(410)은 에러들을 유발하는 메모리의 특정 부분으로부터 읽혀진 데이터를 수신하거나 처리할 필요가 없다. 대신, 그와 같은 에러들은 에러 검출 요소(440)에 의해 수신 및 검출될 수 있고, 이후 상기 에러 검출 요소(440)는 그와 같은 에러 정보를 전술한 바와 같이 메모리 컨트롤러(435)에 제공할 수 있다. 그 후, 상기 메모리 컨트롤러(435)는 메모리(455)의 특정 부분을 폐기할지 여부에 대해 결정할 수 있고, 그와 같은 결정은 예를 들어, 프로세싱 유닛(410)의 관여 없이, 상기 하드웨어부(490) 내에서 이루어질 수 있다. 또한, 상기 메모리 컨트롤러(435)는 적어도 부분적으로, 상기 비휘발성, 이산-어드레서블 메모리(430)에 저장된 정보를 대표하는 신호들에 따라 메인 또는 스페어 메모리로부터의 읽기나 메인 또는 스페어 메모리에의 쓰기에 대해 결정할 수 있다. 전술한 결정 역시, 프로세싱 유닛(410)의 관여 없이, 상기 하드웨어부(490) 내에서 이루어질 수 있다. 따라서, 전술한 바와 같이, 프로세서는 예를 들어, 읽기/쓰기 명령들을 처리할 때, 메모리 맵(memory maps)의 인지 및/또는 메모리 맵과의 공동 작업을 위한 소프트웨어 프로세스들로 인한 부담을 받을 필요가 없다. 물론, 전술한 바와 같은 프로세스들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 5는 본 발명의 다른 실시예에 따른 메모리 읽기/쓰기 프로세스(500)의 흐름도이다. 단계 505에서, 예를 들어, 저장된 데이터가 읽혀지거나 쓰여질 수 있는 하나 또는 그 이상의 메모리 위치들을 각각 식별하도록 하나 또는 그 이상의 읽기/쓰기 어드레스들(read/write addresses)을 제공하는 시스템 애플리케이션(system application)에 의해, 메모리 장치의 일 부분으로부터의 읽기 또는 거기에의 쓰기를 위한 읽기/쓰기 프로세스가 개시될 수 있다. 단계 510에서, 전술한 하나 또는 그 이상의 읽기/쓰기 어드레스들은 예를 들어, 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)로 제공될 수 있고, 거기에서 상기 읽기/쓰기 어드레스들에 대응하는 가능한 리맵핑된 어드레스들(possible remapped addresses)을 위한 조사(search)가 수행될 수 있다. 일 실행에 있어서, 상기 콘텐트 어드레서블 메모리(CAM)는 상-변화 메모리(PCM)와 같은 비휘발성, 이산-어드레서블 메모리를 포함할 수 있다. 전술한 콘텐트 어드레서블 메모리(CAM)는 원래의 어드레스들을 대응하는 리맵핑된 어드레스들과 연관시키는 데이터베이스 및/또는 테이블을 대표하는 디지털 신호들을 저장할 수 있다. 따라서, 단계 530에서, 전술한 콘텐트 어드레서블 메모리(CAM)를 조사(search)하는 것에 의해, 들어오는 원래의 읽기/쓰기 어드레스가 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 대응하는 리맵핑된 어드레스와 연관된 것인지 여부에 대한 판별이 이루어질 수 있다. 원래의 특정 읽기/쓰기 어드레스와 연관된 리맵핑된 어드레스가 없는 것으로 판별될 경우, 상기 읽기/쓰기 프로세스(500)는 단계 540으로 넘어가며, 원래의 읽기/쓰기 어드레스가 출력된다. 그 결과, 단계 550에서, 상기 원래의 읽기/쓰기 어드레스가 메모리 장치로부터의 읽기 또는 거기에의 쓰기를 위해 이용될 수 있다. 그 후, 단계 560에서, 상기 메모리 장치의 원래의 읽기/쓰기 어드레스로부터 읽혀지거나 거기에 쓰여진 데이터는 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어 및/또는 소프트웨어로 제공될 수 있다.
반대로, 단계 530에서, 들어오는 원래의 읽기/쓰기 어드레스가 대응하는 리맵핑된 어드레스를 갖는 것으로 판별될 경우, 상기 읽기/쓰기 프로세스(500)는 단계 545로 넘어가며, 원래의 특정 읽기/쓰기 어드레스에 대응하는 리맵핑된 어드레스가 전송될 수 있다. 그 결과, 단계 555에서, 리맵핑된 읽기/쓰기 어드레스가 메모리 장치로부터의 읽기 또는 거기에의 쓰기를 위해 이용될 수 있다. 일 실행에 있어서, 리맵핑된 어드레스가 이용될 경우, 상기 메모리 장치의 스페어 부분이 읽혀지거나 쓰여지게 될 수 있으나, 그러한 제한은 단지 일 예에 불과하다. 그 후, 단계 560에서, 상기 메모리 장치의 리맵핑된 읽기/쓰기 어드레스로부터 읽혀지거나 거기에 쓰여진 데이터는 예를 들어, ECC 디코더 및/또는 다른 에러 정정 기술들과 같은 에러-검사 하드웨어 및/또는 소프트웨어로 제공될 수 있다. 물론, 전술한 바와 같은 메모리 읽기/쓰기 프로세스들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 6은 본 발명의 일 실시예에 따른 메모리 읽기 프로세스(memory read process: 600)의 흐름도이다. 단계 605에서는, 예를 들어, 데이터를 대표하는 저장된 신호들이 읽혀질 수 있는 하나 또는 그 이상의 메모리 위치들을 각각 식별하도록 하나 또는 그 이상의 읽기 어드레스들(read addresses)을 제공하는 시스템 애플리케이션(system application)에 의해, 메모리 장치의 일 부분에 저장된 정보를 나타내는 신호들을 읽는 읽기 프로세스가 개시될 수 있다. 예를 들어, 읽기 데이터를 패리티 검사(parity checking)하는 것에 의해, ECC 하드웨어 및/또는 소프트웨어가 읽기 데이터에 있는 에러들의 검사 및/또는 정정에 이용될 수 있다. 그 후, 단계 610에서와 같이, 처음의 읽기 데이터는 정정된 읽기 데이터와 비교될 수 있고, 그에 따라 메모리 읽기 프로세스에서 발생된 에러들의 개수가 판별된다. 전술한 에러들의 개수는 비트 에러율(BER)로 표현될 수 있으며, 이것은 예를 들면, 읽기 비트(read bits)의 총 개수에 대한 에러 비트(error bits) 개수의 비율을 포함할 수 있다. 단계 620에서는, 메모리 장치의 일 부분으로부터의 정보를 나타내는 신호에서 기인하는 비트 에러율(BER) 또는 에러들의 개수는 용인될 수 있는 최대 비트 에러율(BER) 또는 용인될 수 있는 최대 에러들의 개수를 나타내는 값을 포함하는 에러 임계값과 비교될 수 있고, 예를 들어, 상기 에러 임계값을 초과하는 추가적인 에러들은 성공적으로 정정되지 않을 수 있다. 전술한 바와 같은 에러 임계값은, 예를 들어, 도 1에 도시된 메모리 장치(100)와 같은 특정 메모리 장치에서 용인될 수 있는 비트 에러율(BER) 또는 에러들의 개수의 상한(upper limit)을 실질적으로 대표하는 수(number)를 포함할 수 있다. 전술한 바와 같은 에러 임계값 이하에서는, ECC 하드웨어 및/또는 소프트웨어를 통해 읽기 에러들(read errors)을 정정할 수 있다. 그러나, 전술한 바와 같은 에러 임계값을 초과하는 경우, 읽기 에러들이 모두 정정되지는 못할 가능성이 비교적 높다.
단계 630에서는, 적어도 부분적으로, 메모리의 일 부분으로부터 읽은 결과가 과도한 에러들을 포함하는지 여부에 기초하여, 메모리 장치의 일 부분을 폐기(retire)할지 여부에 대한 결정이 이루어진다. 에러들의 개수가 에러 임계값 이하인 경우, 읽기 프로세스(600)는 단계 640으로 넘어가며, 그 단계에서, 예를 들어, 읽기 데이터는 상기 읽기 데이터를 요청한 애플리케이션(application)으로 제공될 수 있다. 반면, 에러들의 개수가 에러 임계값을 초과하는 경우, 읽기 프로세스(600)는 단계 650으로 넘어가며, 그 단계에서는, 예를 들면, 과도한 에러들을 초래한 메모리의 일 부분을 폐기하기 위한 프로세스가 시작될 수 있다. 특정 실행(particular implementation)에 있어서, 에러가 발생되기 쉬운 메모리 부분에 초기 저장된 데이터는 기능적이고 건전한 것으로 알려진 다른 메모리 부분으로 이동될 수 있다. 전술한 새 메모리 부분은 예를 들어, 도 1에 도시된 스페어 메모리(120)와 같은 스페어 메모리의 일 부분을 포함할 수 있다. 단계 660에서는, 상기 데이터의 원래 메모리 위치를 식별하도록 하기 위한 일 메모리 어드레스(memory address) 또는 복수의 메모리 어드레스가 리맵핑되어, 상기 데이터가 새로 위치된 새 메모리 부분이 식별될 수 있도록 한다. 일 실행에 있어서, 상기 리맵핑(remapping)은 예를 들어, 벡터(vector)를 매개로 원래의 어드레스에 대응하는 새 어드레스를 할당하는 것을 포함할 수 있고, 그에 따라 원래의 어드레스에 대한 콜(call)은 새로 위치된 데이터의 위치를 명시하는 새 어드레스로 돌려질 수 있다. 단계 670에서, 전술한 리맵핑된 어드레스들에 관한 정보는 이후, 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보(remap information)의 업데이트를 위해 콘텐트 어드레서블 메모리(CAM)로 제공될 수 있으며, 전술한 정보는 후술되는 벡터 리맵 테이블(vector remap table)로서 저장될 수 있다. 단계 680에서는, 상기 콘텐트 어드레서블 메모리(CAM)로 제공되는 하나 또는 그 이상의 리맵핑된 어드레스들에 대응하여 업데이트된 정보가 상-변화 메모리(PCM)와 같은 비휘발성, 이산-어드레서블 메모리로 제공될 수 있다. 예를 들어, 메모리 컨트롤러는 메모리 장치에 관한 리맵 정보를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM)로 제공할 수 있고, 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보가 업데이트된 것인 경우, 전술한 메모리 컨트롤러는 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보의 적어도 일부를 비휘발성, 이산-어드레서블 메모리에 복사할 수 있다. 일 실행에 있어서, 상기 업데이트된 정보는 예를 들어, 프로세서에 의해 개시된 전술한 읽기/쓰기 프로세스들과 같은 런-타임 프로세스들(run-time processes)이 수행되는 동안, 실시간(on-the-fly)으로 비휘발성, 이산-어드레서블 메모리로 제공될 수 있다. 다른 실행에 있어서, 메모리 장치의 에러가 발생되기 쉬운 부분들에 대한 스캐닝(scanning)을 포함하는 초기화 프로세스가 시스템에 의해 수행될 수 있다.
특정 실행에 있어서, 상-변화 메모리(PCM) 또는 다른 비휘발성, 이산-어드레서블 메모리는 이하에서 더욱 상세히 설명되는 바와 같이, 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보 및/또는 다른 콘텐트들에 대하여 주기적으로 업데이트될 수 있다. 에러가 발생되기 쉬운 메모리 부분의 리맵핑 후, 상기 읽기 프로세스(600)는 단계 640으로 넘어가게 되며, 그 단계에서, 예를 들어, 읽기 데이터는 상기 읽기 데이터를 요청한 애플리케이션(application)으로 제공될 수 있다. 물론, 전술한 바와 같은 메모리 읽기 프로세스는 단지 일 예에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 7은 본 발명의 일 실시예에 따른 벡터 리맵 테이블(700)의 개략도이다. 상기 테이블(700)에 포함된 정보는, 다른 실행들에 있어서는, 테이블에 포팻될 필요가 없다. 전술한 정보는 예를 들면, 그러한 정보를 조직(organizing)하기 위한 어레이(array) 또는 다른 수단을 포함할 수 있다. 전술한 정보 및 그에 관한 조직화는 예를 들어, 상-변화 메모리(PCM)와 같은 비휘발성, 이산-어드레서블 메모리에 전술한 정보를 대표하는 디지털 신호들로서 저장될 수 있다. 세로행(column: 710)은 addr1, addr2, addr3 등과 같은 원래 어드레스들(original addresses: 740)의 리스트를 포함할 수 있고; 세로행(720)은 상기 세로행(710)의 목록에 기재된 대응되는 원래 어드레스들이 리맵핑되었는지 여부에 관한 정보를 포함할 수 있으며; 세로행(730)은 addr1', addr2', addr3' 등과 같이, 상기 세로행(710)의 목록에 기재된 원래 어드레스들(740)에 대응하는 리맵핑된 어드레스들(750)의 리스트를 포함할 수 있다.
일 실행에 있어서, 상기 원래 어드레스들(740)은 하나 또는 그 이상의 어드레스들의 위치에서 메모리 장치(100)에 저장된 정보에 대해 묻는(inquiring) 애플리케이션 및/또는 시스템에 의한 읽기/쓰기 요청(read/write request)에 포함된 하나 또는 그 이상의 어드레스들을 포함할 수 있다. 상기 세로행(720)은 상기 원래 어드레스(740)가 리맵핑되었는지 여부를 설명하는 메타데이터(metadata)를 포함할 수 있다. 전술한 리맵핑이 이루어진 경우, 상기 세로행(730)은 원래 어드레스(740)에 대응하는 리맵핑된 어드레스(750)를 포함할 수 있다. 도 1에 따른 예로 설명하면, addr1, addr5, addr7 및 addr8은 각각 addr1', addr5', addr7' 및 addr8'로 리맵핑된 반면, addr2, addr3, addr4 및 addr6은 리맵핑되지 않았다. 여기서, 리맵핑되지 않은 원래 어드레스들은 상기 세로행(730)에 리맵핑된 대응되는 어드레스를 갖지 않는다. 다른 실행에 있어서, 리맵핑된 어드레스(750)의 존재는 예를 들면, 특정의 원래 어드레스(740)에 대한 리맵핑이 이루어졌음을 나타내기에 충분하기 때문에, 상태를 나타내는 상기 세로행(720)은 상기 테이블(700)에 포함될 필요가 없다. 물론, 전술한 바와 같은 벡터 리맵 테이블 및 리맵 정보를 저장하는 기타 포맷들은 단지 예들에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템(800)의 개략적 블록 다이어그램이다. 컨트롤러(810)는 데이터를 읽을 수 있는 메모리 장치(825)의 위치를 명시하는 어드레스를 포함하는 읽기 요청(read request: 805)을 가리키는 하나 또는 그 이상의 신호들을 수신하도록 구성될 수 있다. 상기 메모리 장치(825)는 예를 들어, 전술한 바와 같은 메인 메모리(820)와 스페어 메모리(830)를 포함할 수 있다. 전술한 읽기 요청들을 수반하여 들어오는 어드레스들은 콘텐트 어드레서블 메모리(815)를 통과할 수 있고, 상기 콘텐트 어드레서블 메모리(815)에서, 상기 어드레스들은 원래의 어드레스들과 연관된 리맵핑된 어드레스들을 포함하는 콘텐트 어드레서블 메모리(815)에 저장된 콘텐트들과 비교되어질 수 있다. 특정 실행에 있어서, 리맵핑 프로세스들은 사용자에 의해 시스템 레벨에서 생성된 특정 명령들 및/또는 신호들 없이 진행되며, 그에 따라 전술한 읽기 요청들을 수반하여 들어오는 어드레스들은 항상 원래의 어드레스들을 포함할 수 있다. 전술한 어드레스들은 오직 콘텐트 어드레서블 메모리의 조사 이후의 리맵핑된 어드레스들과 연관될 수 있다. 즉, 상기 콘텐트 어드레서블 메모리(815)는 원래의 어드레스 공간으로부터 리맵핑된 어드레스 공간으로의 이전(translation)을 제공한다. 그와 같은 방식으로, 컨트롤러(810)는 읽기 요청(805)이 리맵핑된 어드레스를 포함하는지 여부를 판별할 수 있다. 전술한 판별 결과에 따라, 상기 컨트롤러(810)는 데이터를 읽도록 상기 읽기 요청(805)을 메인 메모리(820) 또는 스페어 메모리(830) 중 어느 하나로 보낼 수 있다. 예를 들어, 읽기 요청(805)의 어드레스가 리맵핑되지 않았다면, 상기 컨트롤러(810)는 읽기 요청(805)을 메인 메모리(820)로 보내지만, 읽기 요청(805)의 어드레스가 리맵핑되었다면, 상기 컨트롤러(810)는 읽기 요청(805)을 수정하여 스페어 메모리(830)로 보내지게 될 리맵핑된 어드레스를 포함하게 할 수 있다. 그 후, 메인 메모리(820) 또는 스페어 메모리(830)는 예를 들어, 에러 카운터(error counter) 또는 ECC 디코더를 포함할 수 있는 에러 검출 블록(error detection block: 840)으로 읽기 데이터(835)를 제공할 수 있다. 일 실시예에서, ECC 디코더를 포함하는 에러 검출 블록(840)은 메모리 장치(825)의 다이 요소(die element)에 배치될 수 있다. 다른 실시예에서, ECC 디코더를 포함하는 에러 검출 블록(840)은 예를 들어, 애플리케이션(application)과 같은 시스템 레벨(system level)로 제공될 수 있다. 상기 에러 검출 블록(840)은 읽기 데이터(835)에 존재하는 에러들의 검출 및/또는 정정을 수행할 수 있고, 그와 같이 검출된 에러들을 비트 에러율(BER) 및/또는 비트 에러들의 개수로 표시할 수 있다. 따라서, 상기 에러 검출 블록(840)은 읽기 요청(805)을 들여온 애플리케이션 및/또는 호스트 시스템(host system)과 같은 엔티티(entity)에 정정된 읽기 데이터(845)를 제공할 수 있다. 상기 에러 검출 블록(840)은 또한 읽기 데이터(835)에 존재하는 에러들의 개수에 관한 정보를 비교 엔진(compare engine: 850)에 제공할 수 있다. 상기 에러 검출 블록(840)이 메모리 장치(825)의 다이 요소(die element)에 배치된 ECC 디코더를 포함하는 경우에 있어서, 에러 정보는 시스템 레벨에서 비교 엔진 애플리케이션에 의해 이용될 수 있다. 일 실행에 있어서, 예를 들어, ECC 디코더는 검출된 에러들의 개수를 에러 임계값과 비교할 수 있는 비교 엔진(850)에 의한 액세스(access)를 이용할 수 있는 에러 정보 기록장치(error information register)를 포함할 수 있다.
앞서 설명한 바와 같이, 전술한 에러 임계값은 수용가능한 비트 에러율(BER) 또는 에러들의 개수에 대한 한계(limit)를 포함할 수 있다. 상기 비교 엔진(850)은 전술한 비교의 결과(860)를 컨트롤러(810)에 제공할 수 있다. 적어도 부분적으로 전술한 비교 결과에 기초하여, 상기 컨트롤러(810)는 메모리 장치(825)의 특정 부분을 폐기(retire)할지 여부를 결정할 수 있다. 예를 들어, 전술한 비교 결과가 읽기 프로세스 동안 메모리 장치(825)의 특정 부분이 과도한 개수의 비트 에러들을 유발한 것으로 나타난 경우, 상기 컨트롤러(810)는 에러가 발생되기 쉬운 메모리 부분을 폐기하는 프로세스를 시작할 수 있다. 전술한 폐기 프로세스는 폐기될 메모리 부분에 저장된 데이터를 메모리의 다른 부분으로 이동시키는 것을 포함할 수 있다. 예를 들면, 데이터를 대표하는 디지털 신호들은 메인 메모리(820)의 특정 부분으로부터 이동되어 스페어 메모리(830)에 저장될 수 있다. 따라서, 상기 컨트롤러(810)는 폐기될 메모리 부분을 식별시켰던 어드레스를 이동된 데이터를 수용하는 새로운 메모리 부분을 식별시키는 어드레스로 수정할 수 있다. 전술한 바와 같이 수정된, 리맵핑된 어드레스는 이후 콘텐트 어드레서블 메모리(815)에 쓰여질 수 있고, 전술한 바와 같이, 원래의 어드레스와 연관될 수 있다. 전술한 바와 같은 메모리 폐기 프로세스는 예를 들어, 읽기 요청(805)을 들여온 애플리케이션 및/또는 호스트 시스템에 대하여 매끄럽게(seamlessly) 일어날 수 있다. 일 실행에 있어서, 예를 들어, 상-변화 메모리(PCM)와 같은 비휘발성, 이산-어드레서블 메모리(818)는 콘텐트 어드레서블 메모리(815)에 저장된 리맵 정보를 지원(back up)하기 위해 이용될 수 있다. 예를 들어, 상기 비휘발성, 이산-어드레서블 메모리(818)는 때때로, 가끔, 주기적으로 및/또는 매시간 업데이트될 수 있고, 상기 콘텐트 어드레서블 메모리(815)는 새로운 리맵 정보로 업데이트될 수 있다. 일 실시예에 있어서, 상기 비휘발성, 이산-어드레서블 메모리(818)는 예를 들어, 읽기 요청(805)에 의해 개시된 읽기 프로세스와 같은 런-타임 프로세스들(run-time processes) 동안, 실시간(on-the-fly)으로 업데이트될 수 있다. 전술한 바와 같은 비휘발성, 이산-어드레서블 메모리(818)의 업데이트가 실질적으로 상기 콘텐트 어드레서블 메모리(815)의 모든 업데이트를 위해 실행되는 경우에 있어서, 상기 비휘발성, 이산-어드레서블 메모리와 콘텐트 어드레서블 메모리는 서로 실질적으로 동시성을 갖는다. 즉, 전술한 각 메모리는 실질적으로 유사한 리맵 정보를 포함하게 된다. 전술한 동시성은 메모리 시스템(800)에 공급되는 전력이 차단되는 경우에 유용하며, 휘발성인 상기 콘텐트 어드레서블 메모리(815)가 리맵 정보를 잃게 되더라도, 상기 비휘발성, 이산-어드레서블 메모리(818)는 그와 같은 리맵 정보를 보전할 수 있다. 물론, 전술한 바와 같은 메모리 시스템의 실행은 단지 일 예에 불과하며, 본 발명의 특허청구범위를 제한하는 것은 아니다.
도 9는 예를 들어, 전술한 바와 같이 메인 부분과 스페어 부분으로 분할될 수 있는 메모리 장치(910)를 포함하는 컴퓨팅 시스템(computing system: 900)의 일 실시예를 설명하는 개략적 다이어그램이다. 컴퓨팅 장치(904)는 메모리 장치(910)를 운영관리하도록 구성될 수 있는 기구(appliance) 및/또는 기계와 같은 장치를 대표하는 것일 수 있다. 메모리 장치(910)는 메모리 컨트롤러(915) 및 메모리(922)를 포함할 수 있다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 컴퓨팅 장치(904)는 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 워크스테이션(workstation), 서버 장치(server device) 등과 같은 하나 또는 그 이상의 컴퓨팅 장치들 및/또는 플랫폼들; PDA(Personal Digital Assistant), 이동통신장치 등과 같은 하나 또는 그 이상의 개인 컴퓨팅 또는 통신 장치들이나 기구들; 데이터베이스 또는 데이터 저장 서비스 제공자/시스템 등과 같은 컴퓨팅 시스템 및/또는 관련 서비스 제공자; 및/또는 이들의 조합을 포함할 수 있다.
상기 컴퓨팅 시스템(900)에 있는 다양한 장치들의 일부나 모두 및 추가로 설명될 프로세스들 및 방법들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 이들의 조합을 포함하거나 또는 이용함으로써 실행될 수 있다. 따라서, 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 컴퓨팅 장치(904)는 버스(bus: 940)를 통해 메모리(922) 및 호스트나 메모리 컨트롤러(915)와 작동적으로 연결되는 적어도 하나의 프로세싱 유닛(920)을 포함할 수 있다. 상기 프로세싱 유닛(920)은 데이터 컴퓨팅 처리나 프로세스의 적어도 일부를 수행하도록 구성될 수 있는 하나 또는 그 이상의 회로들을 대표한다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 프로세싱 유닛(920)은 하나 또는 그 이상의 프로세서, 컨트롤러, 마이크로프로세서, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuit), 디지털 신호 프로세서, PLD(Programmable Logic Device), FPGA(Field Programmable Gate Array) 등이나 이들의 조합을 포함할 수 있다. 상기 프로세싱 유닛(920)은 예를 들어, 전술한 메모리 분할 프로세스뿐만 아니라, 읽기, 쓰기 및/또는 삭제와 같은 메모리 관련 작업들에 대한 프로세스를 수행하기 위해 메모리 컨트롤러(915)와 통신할 수 있다. 상기 프로세싱 유닛(920)은 메모리 컨트롤러(915)와 통신할 수 있도록 구성된 운영 체제를 포함할 수 있다. 예를 들어, 전술한 운영 체제는 버스(bus: 940)를 통해 메모리 컨트롤러(915)로 보내어지는 명령들(commands)을 생성할 수 있다. 전술한 명령들은 예를 들면, 메모리(922)의 적어도 일부를 분할하는 명령, 분할된 특정 부분들에 하나 또는 그 이상의 특성들(attributes)을 결부시키는 명령 및 적어도 부분적으로, 프로그램되거나 저장될 데이터의 유형에 따라 분할된 특정 부분을 프로그램하는 명령을 포함할 수 있다.
상기 메모리(922)는 데이터 저장 장치를 대표한다. 상기 메모리(922)는 예를 들어, 주 메모리(primary memory: 924) 및/또는 부 메모리(secondary memory: 926)를 포함할 수 있다. 특정 실시예에 있어서, 상기 메모리(922)는 적어도 부분적으로 하나 또는 그 이상의 메모리 특성들 및/또는 전술한 바와 같은 메모리 운영관리 프로세스에 따라 분할될 수 있는 메모리를 포함한다. 상기 주 메모리(924)는 예를 들어, 랜덤 액세스 메모리(random access memory), 읽기전용 메모리(read only memory) 등을 포함할 수 있다. 상기 실시예에서 프로세싱 유닛(920)으로부터 분리된 것으로 설명되었으나, 상기 주 메모리(924)의 모두 또는 일부는 상기 프로세싱 유닛(920) 내에 마련되거나 또는 상기 프로세싱 유닛(920)과 연결될 수 있음에 유의해야 한다.
상기 부 메모리(926)는 예를 들어, 상기 주 메모리와 동일 또는 유사한 유형의 메모리 및/또는 예를 들어, 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 고체상태 메모리 드라이브(solid state memory drive) 등과 같은 하나 또는 그 이상의 데이터 저장 장치들이나 시스템들을 포함할 수 있다. 특정 실행에 있어서, 상기 부 메모리(926)는 컴퓨터-판독가능 매체(computer-readable medium: 928)를 운영상 잘 받아들이거나 상기 컴퓨터-판독가능 매체(928)에 연결되도록 구성될 수 있다. 상기 컴퓨터-판독가능 매체(928)는 예를 들어, 상기 컴퓨팅 시스템(900)에 있는 하나 또는 그 이상의 장치들을 위한 접근가능한 데이터, 코드 및/또는 명령어들을 만들거나 가질 수 있는 매체를 포함할 수 있다.
상기 컴퓨팅 장치(904)는 예를 들어, 입/출력 장치(932)를 포함할 수 있다. 상기 입/출력 장치(932)는 사람 및/또는 기계 입력들을 받아들이거나 도입하도록 구성될 수 있는 하나 또는 그 이상의 장치들이나 특징들 및/또는 사람 및/또는 기계 출력들을 넘겨주거나 제공하도록 구성될 수 있는 하나 또는 그 이상의 장치들이나 특징들을 대표한다. 일 예(그러나 이것으로 제한되는 것은 아님)로서, 상기 입/출력 장치(932)는 디스플레이, 스피커, 키보드, 마우스, 트랙볼(trackball), 터치 스크린, 데이터 포트 등을 포함할 수 있다.
전술한 상세한 설명에 있어서, 본 발명의 완전한 이해를 돕기 위해 상세한 다양한 실시예들이 설명되었다. 그러나, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자(이하, '당업자')라면, 전술한 상세한 다양한 실시예들 없이도 본 명세서의 특허청구범위에 기재된 발명들을 실시할 수 있을 것이다. 본 발명을 흐리게 하지 않도록 당업자가 파악할 수 있는 다른 예들, 방법들, 장치들 또는 시스템들은 상세히 설명하지 않았다.
전술한 상세한 설명의 몇몇 부분들은 특정 장치나 특수한 목적의 컴퓨팅 장치 또는 플랫폼의 메모리에 저장된 2진법의 디지털 신호들에 기초한 연산(operation)의 알고리즘이나 기호적 표현(symbolic representation)의 관점에서 표현되었다. 상기 특정 장치 등은 그것이 프로그램 소프트웨어로부터의 명령에 따라 특정 연산을 수행하도록 프로그램된 것이기만 하면, 일반 목적의 컴퓨터를 포함한다. 알고리즘 기술(algorithmic description) 또는 기호적 표현은 신호 프로세싱 또는 그와 관련된 기술분야의 당업자에 의해 이용되는 기술들(techniques)의 예이다. 여기서, 알고리즘은 일반적으로 원하는 결과를 가져오는 연산 또는 유사한 신호 프로세싱의 일관된 시퀀스(self-consistent sequence)인 것으로 간주된다. 문맥에서, 연산 또는 프로세싱은 물리량(physical quantities)의 물리적 조작(physical manipulation)을 수반한다. 반드시 그런 것은 아니지만, 일반적으로, 상기 물리량은 저장, 전송, 결합, 비교 또는 다른 조작이 이루어질 수 있는 전기신호나 자기신호의 형태를 취할 수 있다. 대체로 일반적인 용법의 이유 때문에, 때때로 전술한 신호들을 비트(bits), 데이터, 값(values), 요소(elements), 기호(symbols), 문자(characters), 용어(terms), 숫자(numbers) 등으로 부르는 것이 편리하다는 것이 증명되었다. 그러나, 전술한 모든 용어들이나 그와 유사한 용어들은 적절한 물리량들과 연관되어야 하며, 단지 편리한 라벨(label)에 불과하는 것에 유념해야 한다. 특별히 다르게 언급되지 않는 한, 이하의 논의로부터 명확한 바와 같이, "프로세싱", "컴퓨팅(computing)", "계산(calculating)", "판별(또는 결정)(determining)" 등과 같은 용어들은 특수 목적의 컴퓨터나 그와 유사한 특수 목적의 컴퓨팅 장치와 같은 특정 장치의 작용이나 프로세스를 가리킨다. 일 실시예에 있어서, 전술한 특수 목적의 컴퓨터나 특수 목적의 컴퓨팅 장치는 하나 또는 그 이상의 특수 기능들을 수행하기 위한 명령들로 프로그램된 일반 목적의 컴퓨터를 포함할 수 있다. 따라서, 본 명세서의 문맥에서, 전술한 특수 목적의 컴퓨터나 그와 유사한 특수 목적의 컴퓨팅 장치는 그와 같은 특수 목적의 컴퓨터나 그와 유사한 특수 목적의 컴퓨팅 장치의 메모리, 기록장치(register), 다른 정보 저장장치, 전송장치, 디스플레이 장치 등에 있는 전자 또는 자기 물리량으로 대표되는 신호들을 조작 또는 변형할 수 있다.
본 명세서에서 사용된 "및", "및/또는", "또는"은 적어도 부분적으로 그것이 사용된 문맥에 따라 다양한 의미를 포함할 수 있다. 일반적으로, A, B 또는 C와 같이, 어떤 리스트를 상기시키기 위해 사용되는 경우, "또는" 뿐만 아니라 "및/또는"은 포함적인 의미로 사용되어 A, B 및 C를 의미하도록 의도된 것일 뿐만 아니라, 배타적인 의미로 사용되어 A, B 또는 C를 의미하도록 의도된 것이다. "일 실시예"는 그 실시예와 관련하여 설명된 특수한 특징, 구조, 또는 특성이 청구된 청구항에 따른 발명의 적어도 일 실시예에 포함됨을 의미한다. 따라서, "일 실시예에 있어서" 또는 "일 실시예"라는 어구가 모두 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 상기 특수한 특징들, 구조들, 또는 특성들은 하나 또는 그 이상의 실시예들에서 조합될 수 있다. 전술한 실시예들은 디지털 신호들을 이용하여 운영되는 기계들, 장치들, 엔진들, 또는 기구들을 포함할 수 있다. 상기 신호들은 전자 신호들, 광학 신호들, 전자기 신호들, 또는 서로 다른 위치들 사이에서 정보를 제공하는 다른 형태의 에너지를 포함할 수 있다.
지금까지 본 발명의 다양한 실시예들이 상세히 설명되었지만, 당업자라면 본 발명으로부터 벗어나지 않는 다양한 다른 변형들이 만들어질 수 있음을 이해할 수 있을 것이다. 또한, 전술한 본 발명의 중심 개념으로부터 벗어나는 일 없이, 특수한 상황을 본 발명의 가르침에 조화시키는 많은 수정들이 만들어질 수 있다. 따라서, 본 발명은 전술한 특정 실시예들로 제한되지 않으며, 오히려 청구된 청구항에 따른 발명 및 그와 동등한 것들의 범위 내에 속하는 모든 실시예들을 포함하는 것으로 해석되어야 할 것이다.
Claims (20)
- 메모리 장치에 관한 리맵 정보(remap information)를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)에 저장하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보가 업데이트될 경우, 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵 정보의 적어도 일부를 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 저장하도록 적용되는 것을 특징으로 하는 시스템.
- 제1항에 있어서,
상기 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들을 수신하고, 상기 데이터를 대표하는 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 ECC 디코더(Error Correction Coding decoder)를 더 포함하고, 상기 컨트롤러는 적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부를 기초로 상기 리맵 정보를 저장하도록 적용되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 상-변화 메모리(PCM: Phase-Change Memory)를 포함하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 리맵 정보는 하나 또는 그 이상의 리맵 어드레스들(remap addresses)의 테이블들을 포함하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 읽기/쓰기 프로세스 동안, 실시간(on-the-fly)으로 새로운 리맵 정보에 대해 업데이트될 수 있는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 콘텐트 어드레서블 메모리(CAM) 및 상기 비휘발성, 이산-어드레서블 메모리는 실질적으로 서로 동시성을 갖는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 제2의 콘텐트 어드레서블 메모리(CAM)를 포함하는 것을 특징으로 하는 시스템. - 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 단계; 및
상기 메모리 장치에 관한 리맵 정보(remap information)를 대표하는 디지털 신호들을 비휘발성, 이산-어드레서블 메모리(nonvolatile, discretely-addressable memory)에 저장하는 단계를 포함하며,
상기 리맵 정보는 적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부에 기초한 것인 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 상-변화 메모리(PCM: Phase-Change Memory)를 포함하는 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 리맵 정보는 하나 또는 그 이상의 리맵 어드레스들(remap addresses)의 테이블들을 포함하는 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 읽기/쓰기 프로세스 동안, 실시간(on-the-fly)으로 새로운 리맵 정보에 대해 업데이트될 수 있는 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 비휘발성, 이산-어드레서블 메모리는 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)를 포함하는 것을 특징으로 하는 방법. - 제10항에 있어서,
상기 메모리 장치는 메인 메모리 부분과 스페어 메모리 부분을 포함하며, 상기 리맵 어드레스들은 상기 스페어 메모리 부분에 있는 메모리 위치에 대응하는 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 저장 단계는 상기 비휘발성, 이산-어드레서블 메모리의 일 부분에 상기 리맵 정보를 쓰는(writing) 것을 더 포함하며, 상기 일 부분은 실질적으로 상기 리맵 정보와 동일한 사이즈인 것을 특징으로 하는 방법. - 하나 또는 그 이상의 애플리케이션(system application)을 실행하고, 메모리 장치로부터의/메모리 장치에의 읽기/쓰기를 위한 호스트(host);
상기 메모리 장치로부터 읽혀진 데이터를 대표하는 디지털 신호들을 수신하고, 상기 데이터를 대표하는 신호들과 연관된 비트 에러율(bit error rate) 및/또는 비트 에러들의 개수를 판별하는 ECC 디코더(Error Correction Coding decoder); 및
적어도 부분적으로 상기 비트 에러율 및/또는 비트 에러들의 개수가 에러 임계값(error threshold)을 충족하는지 아니면 초과하는지 여부를 기초로 상기 메모리 장치의 리맵핑된 어드레스를 대표하는 디지털 신호들을 콘텐트 어드레서블 메모리(CAM: Content Addressable Memory)에 저장하는 리맵 컨트롤러(remap controller)를 포함하며,
상기 콘텐트 어드레서블 메모리(CAM)는 상-변화 메모리(PCM: Phase-Change Memory)를 포함하는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 콘텐트 어드레서블 메모리(CAM)는 읽기 어드레스(read address)를 대표하는 디지털 신호들을 수신하고, 상기 읽기 어드레스가 상기 콘텐트 어드레서블 메모리(CAM)에 저장된 리맵핑된 어드레스에 대응하는지 여부에 반응하는 신호를 대표하는 디지털 신호들을 전송하도록 적용되는 것을 특징으로 하는 시스템. - 제16항에 있어서,
상기 메모리 장치로부터의 읽기를 위해 이용되는 어드레스로 상기 읽기 어드레스 또는 상기 리맵핑된 어드레스를 선택하는 선택부를 더 포함하며, 상기 선택은 적어도 부분적으로 전송되는 상기 디지털 신호를 기초로 하는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 메모리 장치는 메인 메모리 부분과 스페어 메모리 부분을 포함하며, 상기 리맵핑된 어드레스는 상기 스페어 메모리 부분에 있는 메모리 위치에 대응하는 것을 특징으로 하는 시스템. - 제18항에 있어서,
상기 메모리 장치는 상기 ECC 디코더 및 상-변화 메모리를 더 포함하는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 비트 에러율 및/또는 상기 비트 에러들의 개수는 적어도 부분적으로 메모리의 물리적 저하(physical degradation)와 밀접하게 관련되는 것을 특징으로 하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/494,994 US8412987B2 (en) | 2009-06-30 | 2009-06-30 | Non-volatile memory to store memory remap information |
US12/494,994 | 2009-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110001882A true KR20110001882A (ko) | 2011-01-06 |
KR101647845B1 KR101647845B1 (ko) | 2016-08-11 |
Family
ID=43299312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100050111A KR101647845B1 (ko) | 2009-06-30 | 2010-05-28 | 메모리 리맵 정보를 저장하는 비휘발성 메모리 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8412987B2 (ko) |
JP (1) | JP5996838B2 (ko) |
KR (1) | KR101647845B1 (ko) |
CN (1) | CN101937374B (ko) |
DE (1) | DE102010030745B4 (ko) |
TW (1) | TWI484330B (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140103755A (ko) * | 2013-02-19 | 2014-08-27 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템 |
KR20190059431A (ko) * | 2017-11-23 | 2019-05-31 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
Families Citing this family (214)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370712B2 (en) * | 2009-07-23 | 2013-02-05 | International Business Machines Corporation | Memory management in a non-volatile solid state memory device |
WO2011159805A2 (en) * | 2010-06-15 | 2011-12-22 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
US8533538B2 (en) * | 2010-06-28 | 2013-09-10 | Intel Corporation | Method and apparatus for training a memory signal via an error signal of a memory |
US9003247B2 (en) * | 2011-04-28 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Remapping data with pointer |
US20120311262A1 (en) * | 2011-06-01 | 2012-12-06 | International Business Machines Corporation | Memory cell presetting for improved memory performance |
US8996955B2 (en) | 2011-11-16 | 2015-03-31 | HGST Netherlands B.V. | Techniques for storing data in stuck and unstable memory cells |
CN102567213B (zh) * | 2011-11-30 | 2014-09-24 | 华中科技大学 | 相变存储器的写均衡方法 |
US9070483B2 (en) | 2012-10-10 | 2015-06-30 | HGST Netherlands B.V. | Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults |
US9274884B2 (en) | 2012-10-10 | 2016-03-01 | HGST Netherlands B.V. | Encoding and decoding data to accommodate memory cells having stuck-at faults |
US9257203B2 (en) * | 2012-12-06 | 2016-02-09 | Micron Technology, Inc. | Setting a default read signal based on error correction |
US8943388B2 (en) | 2012-12-12 | 2015-01-27 | HGST Netherlands B.V. | Techniques for encoding and decoding using a combinatorial number system |
US8812934B2 (en) | 2012-12-12 | 2014-08-19 | HGST Netherlands B.V. | Techniques for storing bits in memory cells having stuck-at faults |
KR101545512B1 (ko) * | 2012-12-26 | 2015-08-24 | 성균관대학교산학협력단 | 반도체 메모리 장치, 검증 독출 방법 및 시스템 |
CN103076996B (zh) * | 2013-01-08 | 2016-08-03 | 深圳市硅格半导体有限公司 | Pcram控制方法及系统 |
US9349476B2 (en) * | 2013-02-21 | 2016-05-24 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US20140282478A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Tcp server bootloader |
US10198314B2 (en) * | 2013-05-23 | 2019-02-05 | Rambus Inc. | Memory device with in-system repair capability |
JP6102515B2 (ja) * | 2013-05-24 | 2017-03-29 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9678689B2 (en) * | 2013-05-29 | 2017-06-13 | Microsoft Technology Licensing, Llc | Storage systems and aliased memory |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US9274715B2 (en) * | 2013-08-02 | 2016-03-01 | Qualcomm Incorporated | Methods and apparatuses for in-system field repair and recovery from memory failures |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9153305B2 (en) | 2013-08-30 | 2015-10-06 | Micron Technology, Inc. | Independently addressable memory array address spaces |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) * | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9019785B2 (en) | 2013-09-19 | 2015-04-28 | Micron Technology, Inc. | Data shifting via a number of isolation devices |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
US9378081B2 (en) * | 2014-01-02 | 2016-06-28 | Qualcomm Incorporated | Bit remapping system |
KR20150084244A (ko) * | 2014-01-13 | 2015-07-22 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
US20150270015A1 (en) * | 2014-03-19 | 2015-09-24 | Micron Technology, Inc. | Memory mapping |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
US9292380B2 (en) | 2014-04-06 | 2016-03-22 | Freescale Semiconductor,Inc. | Memory access scheme for system on chip |
US20150286529A1 (en) * | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Memory device having controller with local memory |
KR20150130888A (ko) * | 2014-05-14 | 2015-11-24 | 에스케이하이닉스 주식회사 | 셀프 리페어 동작을 수행하는 반도체 메모리 장치 |
KR102321501B1 (ko) * | 2014-05-14 | 2021-11-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 스토리지 장치의 동작 방법 |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9711206B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination using sensing circuitry |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9455020B2 (en) | 2014-06-05 | 2016-09-27 | Micron Technology, Inc. | Apparatuses and methods for performing an exclusive or operation using sensing circuitry |
US9652153B2 (en) | 2014-09-02 | 2017-05-16 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses |
US9582203B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses |
US9524105B2 (en) | 2014-09-02 | 2016-12-20 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by altering an encoding format |
US9582202B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by moving data |
US9519427B2 (en) | 2014-09-02 | 2016-12-13 | Sandisk Technologies Llc | Triggering, at a host system, a process to reduce declared capacity of a storage device |
US9552166B2 (en) | 2014-09-02 | 2017-01-24 | Sandisk Technologies Llc. | Process and apparatus to reduce declared capacity of a storage device by deleting data |
US9563370B2 (en) | 2014-09-02 | 2017-02-07 | Sandisk Technologies Llc | Triggering a process to reduce declared capacity of a storage device |
US9665311B2 (en) | 2014-09-02 | 2017-05-30 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable |
US9158681B1 (en) | 2014-09-02 | 2015-10-13 | Sandisk Technologies Inc. | Process and apparatus to reduce declared capacity of a storage device by conditionally trimming |
US9524112B2 (en) | 2014-09-02 | 2016-12-20 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by trimming |
US9582193B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system |
US9582212B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Notification of trigger condition to reduce declared capacity of a storage device |
US9563362B2 (en) | 2014-09-02 | 2017-02-07 | Sandisk Technologies Llc | Host system and process to reduce declared capacity of a storage device by trimming |
US9582220B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9847110B2 (en) | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
US9836218B2 (en) | 2014-10-03 | 2017-12-05 | Micron Technology, Inc. | Computing reduction and prefix sum operations in memory |
US9940026B2 (en) | 2014-10-03 | 2018-04-10 | Micron Technology, Inc. | Multidimensional contiguous memory allocation |
US10163467B2 (en) | 2014-10-16 | 2018-12-25 | Micron Technology, Inc. | Multiple endianness compatibility |
US10147480B2 (en) | 2014-10-24 | 2018-12-04 | Micron Technology, Inc. | Sort operation in memory |
US9779784B2 (en) | 2014-10-29 | 2017-10-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US10073635B2 (en) | 2014-12-01 | 2018-09-11 | Micron Technology, Inc. | Multiple endianness compatibility |
US10032493B2 (en) | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
US10061590B2 (en) | 2015-01-07 | 2018-08-28 | Micron Technology, Inc. | Generating and executing a control flow |
US9558064B2 (en) * | 2015-01-28 | 2017-01-31 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US9583163B2 (en) | 2015-02-03 | 2017-02-28 | Micron Technology, Inc. | Loop structure for operations in memory |
WO2016126474A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for parallel writing to multiple memory device locations |
WO2016126478A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for memory device as a store for program instructions |
WO2016126472A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
US10522212B2 (en) | 2015-03-10 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for shift decisions |
US9898253B2 (en) | 2015-03-11 | 2018-02-20 | Micron Technology, Inc. | Division operations on variable length elements in memory |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
CN107430874B (zh) | 2015-03-12 | 2021-02-02 | 美光科技公司 | 用于数据移动的设备及方法 |
US10146537B2 (en) | 2015-03-13 | 2018-12-04 | Micron Technology, Inc. | Vector population count determination in memory |
US10049054B2 (en) | 2015-04-01 | 2018-08-14 | Micron Technology, Inc. | Virtual register file |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9959923B2 (en) | 2015-04-16 | 2018-05-01 | Micron Technology, Inc. | Apparatuses and methods to reverse data stored in memory |
US9606737B2 (en) | 2015-05-20 | 2017-03-28 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning |
US9639282B2 (en) | 2015-05-20 | 2017-05-02 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
US9704541B2 (en) | 2015-06-12 | 2017-07-11 | Micron Technology, Inc. | Simulating access lines |
US9921777B2 (en) | 2015-06-22 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for data transfer from sensing circuitry to a controller |
US9996479B2 (en) | 2015-08-17 | 2018-06-12 | Micron Technology, Inc. | Encryption of executables in computational memory |
US10228990B2 (en) * | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
US9946483B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
US9946473B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive |
US9905276B2 (en) | 2015-12-21 | 2018-02-27 | Micron Technology, Inc. | Control of sensing components in association with performing operations |
US9952925B2 (en) | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US10048888B2 (en) | 2016-02-10 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for partitioned parallel data movement |
US9892767B2 (en) | 2016-02-12 | 2018-02-13 | Micron Technology, Inc. | Data gathering in memory |
US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10956439B2 (en) | 2016-02-19 | 2021-03-23 | Micron Technology, Inc. | Data transfer with a bit vector operation device |
US9899070B2 (en) | 2016-02-19 | 2018-02-20 | Micron Technology, Inc. | Modified decode for corner turn |
US9697876B1 (en) | 2016-03-01 | 2017-07-04 | Micron Technology, Inc. | Vertical bit vector shift in memory |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
US10432232B2 (en) * | 2016-03-04 | 2019-10-01 | Sandisk Technologies Llc | Multi-type parity bit generation for encoding and decoding |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10379772B2 (en) | 2016-03-16 | 2019-08-13 | Micron Technology, Inc. | Apparatuses and methods for operations using compressed and decompressed data |
US9910637B2 (en) | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10388393B2 (en) | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10120740B2 (en) | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US10074416B2 (en) | 2016-03-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10607665B2 (en) | 2016-04-07 | 2020-03-31 | Micron Technology, Inc. | Span mask generation |
US9818459B2 (en) | 2016-04-19 | 2017-11-14 | Micron Technology, Inc. | Invert operations using sensing circuitry |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10042608B2 (en) | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
US9659610B1 (en) | 2016-05-18 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for shifting data |
US10049707B2 (en) | 2016-06-03 | 2018-08-14 | Micron Technology, Inc. | Shifting data |
US10387046B2 (en) | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US9679661B1 (en) * | 2016-06-28 | 2017-06-13 | Sandisk Technologies Llc | Non-volatile storage system with self-test for read performance enhancement feature setup |
US10037785B2 (en) | 2016-07-08 | 2018-07-31 | Micron Technology, Inc. | Scan chain operation in sensing circuitry |
US10388360B2 (en) | 2016-07-19 | 2019-08-20 | Micron Technology, Inc. | Utilization of data stored in an edge section of an array |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
US9767864B1 (en) | 2016-07-21 | 2017-09-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in a sensing circuitry element |
US9972367B2 (en) | 2016-07-21 | 2018-05-15 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10303632B2 (en) | 2016-07-26 | 2019-05-28 | Micron Technology, Inc. | Accessing status information |
US10468087B2 (en) | 2016-07-28 | 2019-11-05 | Micron Technology, Inc. | Apparatuses and methods for operations in a self-refresh state |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US11029951B2 (en) | 2016-08-15 | 2021-06-08 | Micron Technology, Inc. | Smallest or largest value element determination |
US9672940B1 (en) | 2016-08-18 | 2017-06-06 | Sandisk Technologies Llc | Non-volatile memory with fast read process |
US10606587B2 (en) | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
US10466928B2 (en) | 2016-09-15 | 2019-11-05 | Micron Technology, Inc. | Updating a register in memory |
US10387058B2 (en) | 2016-09-29 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods to change data category values |
US10014034B2 (en) | 2016-10-06 | 2018-07-03 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10529409B2 (en) | 2016-10-13 | 2020-01-07 | Micron Technology, Inc. | Apparatuses and methods to perform logical operations using sensing circuitry |
US9805772B1 (en) | 2016-10-20 | 2017-10-31 | Micron Technology, Inc. | Apparatuses and methods to selectively perform logical operations |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10423353B2 (en) | 2016-11-11 | 2019-09-24 | Micron Technology, Inc. | Apparatuses and methods for memory alignment |
US9761300B1 (en) | 2016-11-22 | 2017-09-12 | Micron Technology, Inc. | Data shift apparatuses and methods |
US10402340B2 (en) | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10268389B2 (en) | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
US10838899B2 (en) | 2017-03-21 | 2020-11-17 | Micron Technology, Inc. | Apparatuses and methods for in-memory data switching networks |
US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
US11222260B2 (en) | 2017-03-22 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for operating neural networks |
US10049721B1 (en) | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10318381B2 (en) * | 2017-03-29 | 2019-06-11 | Micron Technology, Inc. | Selective error rate information for multidimensional memory |
US10043570B1 (en) | 2017-04-17 | 2018-08-07 | Micron Technology, Inc. | Signed element compare in memory |
US10147467B2 (en) | 2017-04-17 | 2018-12-04 | Micron Technology, Inc. | Element value comparison in memory |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10942843B2 (en) | 2017-04-25 | 2021-03-09 | Micron Technology, Inc. | Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10013197B1 (en) | 2017-06-01 | 2018-07-03 | Micron Technology, Inc. | Shift skip |
US10152271B1 (en) | 2017-06-07 | 2018-12-11 | Micron Technology, Inc. | Data replication |
US10262701B2 (en) | 2017-06-07 | 2019-04-16 | Micron Technology, Inc. | Data transfer between subarrays in memory |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
KR20190001417A (ko) * | 2017-06-27 | 2019-01-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
KR102326659B1 (ko) * | 2017-07-19 | 2021-11-16 | 삼성전자주식회사 | 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템 |
US10162005B1 (en) | 2017-08-09 | 2018-12-25 | Micron Technology, Inc. | Scan chain operations |
US10534553B2 (en) | 2017-08-30 | 2020-01-14 | Micron Technology, Inc. | Memory array accessibility |
US10416927B2 (en) | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10346092B2 (en) | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
US10409739B2 (en) | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
KR20190053646A (ko) * | 2017-11-10 | 2019-05-20 | 에스케이하이닉스 주식회사 | 메모리 콘트롤러, 이를 포함하는 반도체 메모리 시스템 및 그 구동 방법 |
US10522210B2 (en) | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US10614875B2 (en) | 2018-01-30 | 2020-04-07 | Micron Technology, Inc. | Logical operations using memory cells |
US11194477B2 (en) | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
US10437557B2 (en) | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US10725696B2 (en) | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
US10440341B1 (en) | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US10795810B2 (en) * | 2018-09-10 | 2020-10-06 | Micron Technology, Inc. | Wear-leveling scheme for memory subsystems |
US10978028B2 (en) * | 2018-09-17 | 2021-04-13 | Apple Inc. | Correction for defective memory of a memory-in-pixel display |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10769071B2 (en) | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US10483978B1 (en) | 2018-10-16 | 2019-11-19 | Micron Technology, Inc. | Memory device processing |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
US11237902B2 (en) * | 2019-03-15 | 2022-02-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ECC architecture with memory mapping |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
US11360768B2 (en) | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
US11436071B2 (en) * | 2019-08-28 | 2022-09-06 | Micron Technology, Inc. | Error control for content-addressable memory |
KR20210051803A (ko) | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 컨트롤러 |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
CN113297014B (zh) * | 2020-02-22 | 2024-03-08 | 广州希姆半导体科技有限公司 | 待测内存容量的识别方法及装置、电子设备及存储介质 |
DE102020202632A1 (de) | 2020-03-02 | 2021-09-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | Inferenzberechnung für neuronale Netzwerke mit Schutz gegen Speicherfehler |
CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
CN113495677B (zh) * | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
CN113495674B (zh) | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
CN113495672B (zh) * | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495675B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
US11656938B2 (en) * | 2020-09-28 | 2023-05-23 | Micron Technology, Inc. | Preemptive read verification after hardware write back |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974564A (en) * | 1997-07-31 | 1999-10-26 | Micron Electronics, Inc. | Method for remapping defective memory bit sets to non-defective memory bit sets |
US6006306A (en) * | 1997-07-02 | 1999-12-21 | Xylan Corporation | Integrated circuit with stage-implemented content-addressable memory cell |
US6525966B1 (en) * | 2000-12-06 | 2003-02-25 | Advanced Micro Devices, Inc. | Method and apparatus for adjusting on-chip current reference for EEPROM sensing |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4335459A (en) | 1980-05-20 | 1982-06-15 | Miller Richard L | Single chip random access memory with increased yield and reliability |
JP2617026B2 (ja) | 1989-12-22 | 1997-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 障害余裕性メモリ・システム |
JP2575557B2 (ja) | 1990-11-13 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパーコンピユータシステム |
US5418796A (en) | 1991-03-26 | 1995-05-23 | International Business Machines Corporation | Synergistic multiple bit error correction for memory of array chips |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
US5465262A (en) | 1994-01-28 | 1995-11-07 | International Business Machines Corporation | Method and structure for providing error correction code and automatic parity sensing |
JPH0916479A (ja) * | 1995-06-29 | 1997-01-17 | Fuji Electric Co Ltd | 多機能保護リレー |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US5867642A (en) | 1995-08-10 | 1999-02-02 | Dell Usa, L.P. | System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas |
JPH09128302A (ja) * | 1995-11-01 | 1997-05-16 | Fujitsu Ltd | 不揮発性メモリへのデータアクセス方法 |
US5764878A (en) | 1996-02-07 | 1998-06-09 | Lsi Logic Corporation | Built-in self repair system for embedded memories |
US5706292A (en) | 1996-04-25 | 1998-01-06 | Micron Technology, Inc. | Layout for a semiconductor memory device having redundant elements |
TW446955B (en) | 1998-10-30 | 2001-07-21 | Siemens Ag | The read/write memory with self-testing device and its associated test method |
US6067262A (en) | 1998-12-11 | 2000-05-23 | Lsi Logic Corporation | Redundancy analysis for embedded memories with built-in self test and built-in self repair |
US6651202B1 (en) | 1999-01-26 | 2003-11-18 | Lsi Logic Corporation | Built-in self repair circuitry utilizing permanent record of defects |
AU7313600A (en) | 1999-09-17 | 2001-04-24 | Hitachi Limited | Storage where the number of error corrections is recorded |
US6467048B1 (en) | 1999-10-07 | 2002-10-15 | Compaq Information Technologies Group, L.P. | Apparatus, method and system for using cache memory as fail-over memory |
US6848070B1 (en) | 1999-11-24 | 2005-01-25 | Intel Corporation | Error correcting code scheme |
JP4165990B2 (ja) * | 1999-12-20 | 2008-10-15 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法 |
US6236602B1 (en) * | 2000-05-25 | 2001-05-22 | Robert Patti | Dynamic configuration of storage arrays |
US6941505B2 (en) | 2000-09-12 | 2005-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
JP4059472B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
US7120068B2 (en) | 2002-07-29 | 2006-10-10 | Micron Technology, Inc. | Column/row redundancy architecture using latches programmed from a look up table |
US6907505B2 (en) * | 2002-07-31 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Immediately available, statically allocated, full-logical-unit copy with a transient, snapshot-copy-like intermediate stage |
DE60222891T2 (de) * | 2002-08-13 | 2008-07-24 | Stmicroelectronics S.R.L., Agrate Brianza | Nichtflüchtige Speichervorrichtung und Selbstreparatur-Verfahren |
US7174440B2 (en) * | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
US20050120265A1 (en) | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
DE102004027423A1 (de) | 2004-06-04 | 2006-07-20 | Infineon Technologies Ag | Speicherschaltung mit redundanten Speicherbereichen |
KR100622349B1 (ko) | 2004-08-04 | 2006-09-14 | 삼성전자주식회사 | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. |
US7519875B2 (en) | 2004-08-20 | 2009-04-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and apparatus for enabling a user to determine whether a defective location in a memory device has been remapped to a redundant memory portion |
US7644323B2 (en) | 2004-11-30 | 2010-01-05 | Industrial Technology Research Institute | Method and apparatus of build-in self-diagnosis and repair in a memory with syndrome identification |
JP2006179101A (ja) | 2004-12-22 | 2006-07-06 | Fujitsu Ltd | 半導体記憶装置 |
KR100725390B1 (ko) * | 2005-01-06 | 2007-06-07 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
US7346815B2 (en) | 2005-03-31 | 2008-03-18 | Intel Corporation | Mechanism for implementing redundancy to mask failing SRAM |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US20070006048A1 (en) | 2005-06-29 | 2007-01-04 | Intel Corporation | Method and apparatus for predicting memory failure in a memory system |
US7233054B1 (en) | 2005-11-29 | 2007-06-19 | Korea Institute Of Science And Technology | Phase change material and non-volatile memory device using the same |
EP1881505A1 (en) * | 2006-07-20 | 2008-01-23 | STMicroelectronics S.r.l. | Memory device with embedded microprocessor for autonomously searching and repairing failures |
US7757135B2 (en) | 2006-09-11 | 2010-07-13 | Mentor Graphics Corporation | Method and apparatus for storing and distributing memory repair information |
US7661004B2 (en) | 2006-10-30 | 2010-02-09 | Research In Motion Limited | Automatic power-up portable electronic device based on time-dependent event |
WO2008061558A1 (en) * | 2006-11-21 | 2008-05-29 | Freescale Semiconductor, Inc. | Memory system with ecc-unit and further processing arrangement |
JP4301301B2 (ja) * | 2007-02-05 | 2009-07-22 | ソニー株式会社 | 不揮発性半導体記憶装置およびその管理方法 |
US8028125B2 (en) * | 2007-08-27 | 2011-09-27 | Comtech Ef Data Corp. | Content-addressable memories and state machines for performing three-byte matches and for providing error protection |
US7515469B1 (en) * | 2007-09-27 | 2009-04-07 | Atmel Corporation | Column redundancy RAM for dynamic bit replacement in FLASH memory |
US20090132876A1 (en) | 2007-11-19 | 2009-05-21 | Ronald Ernest Freking | Maintaining Error Statistics Concurrently Across Multiple Memory Ranks |
US8195978B2 (en) | 2008-05-16 | 2012-06-05 | Fusion-IO. Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
KR20100016987A (ko) * | 2008-08-05 | 2010-02-16 | 삼성전자주식회사 | 상 변화 메모리를 포함하는 컴퓨팅 시스템 |
KR101019986B1 (ko) | 2008-10-10 | 2011-03-09 | 주식회사 하이닉스반도체 | 성장 방식에 의해 형성되는 콘택 구조를 절연시키는 절연막을 포함하는 상변화 메모리 소자, 이를 포함하는 반도체 소자, 및 그들의 제조방법 |
US7996736B2 (en) | 2008-10-26 | 2011-08-09 | Sandisk 3D Llc | Bad page marking strategy for fast readout in memory |
US7908530B2 (en) | 2009-03-16 | 2011-03-15 | Faraday Technology Corp. | Memory module and on-line build-in self-test method thereof for enhancing memory system reliability |
-
2009
- 2009-06-30 US US12/494,994 patent/US8412987B2/en active Active
-
2010
- 2010-05-28 KR KR1020100050111A patent/KR101647845B1/ko active IP Right Grant
- 2010-06-15 TW TW099119459A patent/TWI484330B/zh active
- 2010-06-29 CN CN201010219745.9A patent/CN101937374B/zh active Active
- 2010-06-29 JP JP2010148353A patent/JP5996838B2/ja active Active
- 2010-06-30 DE DE102010030745.9A patent/DE102010030745B4/de active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006306A (en) * | 1997-07-02 | 1999-12-21 | Xylan Corporation | Integrated circuit with stage-implemented content-addressable memory cell |
US5974564A (en) * | 1997-07-31 | 1999-10-26 | Micron Electronics, Inc. | Method for remapping defective memory bit sets to non-defective memory bit sets |
US6525966B1 (en) * | 2000-12-06 | 2003-02-25 | Advanced Micro Devices, Inc. | Method and apparatus for adjusting on-chip current reference for EEPROM sensing |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140103755A (ko) * | 2013-02-19 | 2014-08-27 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템 |
KR20190059431A (ko) * | 2017-11-23 | 2019-05-31 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US8412987B2 (en) | 2013-04-02 |
TW201126329A (en) | 2011-08-01 |
CN101937374A (zh) | 2011-01-05 |
KR101647845B1 (ko) | 2016-08-11 |
JP5996838B2 (ja) | 2016-09-21 |
TWI484330B (zh) | 2015-05-11 |
DE102010030745A1 (de) | 2011-01-05 |
US20100332895A1 (en) | 2010-12-30 |
CN101937374B (zh) | 2015-07-01 |
JP2011040051A (ja) | 2011-02-24 |
DE102010030745B4 (de) | 2015-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101647845B1 (ko) | 메모리 리맵 정보를 저장하는 비휘발성 메모리 | |
KR20110001883A (ko) | 리맵핑된 메모리 장치를 어드레스하기 위한 비트 에러 임계값 및 콘텐트 어드레서블 메모리 | |
KR20110001881A (ko) | 비트 에러 임계값 및 메모리 장치의 리맵핑 | |
US8799717B2 (en) | Hardwired remapped memory | |
US8275928B2 (en) | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US8392797B2 (en) | Error correcting controller, flash memory chip system, and error correcting method thereof | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
JP2011040051A5 (ko) | ||
KR20200018999A (ko) | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US8572466B2 (en) | Apparatuses, systems, devices, and methods of replacing at least partially non-functional portions of memory | |
US20140372668A1 (en) | Data writing method, memory controller and memory storage apparatus | |
US8161334B1 (en) | Externally maintained remap information | |
US20110320689A1 (en) | Data Storage Devices and Data Management Methods for Processing Mapping Tables | |
US20080222371A1 (en) | Method for Managing Memory Access and Task Distribution on a Multi-Processor Storage Device | |
US20130054877A1 (en) | Data writing method, memory controller and memory storage apparatus | |
KR20210141156A (ko) | 페이지 장애에 기초하여 메모리 고장을 예견하고, 예견되는 메모리 고장을 관리하는 시스템의 운영 체계 핸들링 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20090138656A1 (en) | Method of skipping synchronization process for initialization of RAID1 device | |
CN113515466B (zh) | 用于多内核之间动态逻辑块地址分布的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190806 Year of fee payment: 4 |