KR101563482B1 - 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지 - Google Patents

스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지 Download PDF

Info

Publication number
KR101563482B1
KR101563482B1 KR1020140012586A KR20140012586A KR101563482B1 KR 101563482 B1 KR101563482 B1 KR 101563482B1 KR 1020140012586 A KR1020140012586 A KR 1020140012586A KR 20140012586 A KR20140012586 A KR 20140012586A KR 101563482 B1 KR101563482 B1 KR 101563482B1
Authority
KR
South Korea
Prior art keywords
data
buffer
input
write
storage device
Prior art date
Application number
KR1020140012586A
Other languages
English (en)
Other versions
KR20140100899A (ko
Inventor
케빈 아터 고메즈
라이언 제임스 고스
안토인 크하우이어
데이비드 스코트 엡센
존 디. 트랜탬
Original Assignee
시게이트 테크놀로지 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시게이트 테크놀로지 엘엘씨 filed Critical 시게이트 테크놀로지 엘엘씨
Publication of KR20140100899A publication Critical patent/KR20140100899A/ko
Application granted granted Critical
Publication of KR101563482B1 publication Critical patent/KR101563482B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Abstract

데이터를 메모리에서 관리하는 방법 및 장치가 개시된다. 일부 실시예들에 따르면, 비휘발성(NV) 버퍼는 선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응된다. 기록 회로는 저장된 입력 기록 데이터를 NV 버퍼에서 유지하면서 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하도록 적응된다. 검증 회로는 NV 메인 메모리에 대한 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하도록 적응된다. 입력 기록 데이터는 성공적인 전송이 검증될 때까지 NV 버퍼에서 유지된다.

Description

스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지{NON-VOLATILE WRITE BUFFER DATA RETENTION PENDING SCHEDULED VERIFICATION}
본 개시의 다양한 실시예들은 일반적으로 데이터를 데이터 저장 장치에서 관리하는 것에 관한 것이다.
일부 실시예들에 따르면, 비휘발성(NV) 버퍼는 선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응된다. 기록 회로는 저장된 입력 기록 데이터를 NV 버퍼에서 유지하는 동안 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하도록 적응된다. 검증 회로는 NV 메인 메모리에 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하도록 적응된다.
본 발명의 다양한 실시예들을 특징짓는 이들 및 다른 특징들 및 양상들은 이하의 상세한 논의 및 첨부 도면들을 고려하여 이해될 수 있다.
도 1은 본 개시의 다양한 실시예들에 따른 데이터 저장 장치의 기능 블록 표현이다.
도 2는 일부 실시예들에 따른 도 1의 장치의 양상들을 예시한다.
도 3은 도 2의 플래시 메모리로부터 플래시 메모리 셀을 도시한다.
도 4는 일부 실시예들에 따른 플래시 메모리 셀들의 어레이의 일부를 개략적으로 도시한다.
도 5는 도 2의 플래시 메모리 어레이의 소거 블록을 도시한다.
도 6은 도 2의 비휘발성(NV) 기록 버퍼에 유용한 스핀 토크 전달 랜덤 액세스 메모리(STRAM) 셀을 도시한다.
도 7은 도 2의 비휘발성(NV) 기록 버퍼에 유용한 저항 랜덤 액세스 메모리(RRAM) 셀을 예시한다.
도 8은 도 2의 비휘발성(NV) 기록 버퍼에 유용한 상 변화 랜덤 액세스 메모리(PCRAM) 셀을 도시한다.
도 9는 일부 실시예들에 따른 NV 버퍼의 재기록가능 비휘발성 메모리 셀들에 대한 배열의 개략적 표현이다.
도 10은 도 9에 배열된 바와 같은 재기록가능 메모리 셀들을 사용하는 NV 버퍼에 대한 예시적 포맷을 제공한다.
도 11은 일부 실시예들에 따른 도 2의 장치에 의해 수행되는 예시적 검증 동작을 예시한다.
도 12는 일부 실시예들에 따른 도 2의 장치에 의해 수행되는 비교 동작을 예시한다.
도 13은 추가 실시예들에 따른 장치에 의한 해시 값들의 발생을 도시한다.
도 14는 일부 실시예들에 따른 도 13의 회로조직에 의해 발생되는 해시 값들의 사용을 도시한다.
도 15는 일부 실시예들에 따른 데이터에 대한 상이한 기록 모드들의 사용을 도시한다.
도 16은 본 개시의 다양한 실시예들에 따라 수행될 수 있는 단계들을 일반적으로 나타내는 데이터 기록 루틴이다.
본 개시는 일반적으로 데이터 저장 장치 내의 데이터의 관리에 관한 것이다.
비휘발성(NV) 메모리들은 전력이 메모리 장치로부터 제거된 후와 같이, 데이터 상태를 유지시키는 리프레시 동작들의 요구 없이 저장된 데이터가 메모리에서 지속되는 그러한 방식으로 데이터를 저장하는 경향이 있다.
기록 검증 동작(때때로 기록/판독 검증 동작 또는 간단히 검증 동작으로 지칭됨)은 데이터가 기록 동작 동안 비휘발성 메모리에 성공적으로 기록되는 것을보장하기 위해 수행될 수 있다.
일반적으로, 검증 동작은 데이터를 로컬 버퍼 메모리에 일시적으로 버퍼링하는 것, 데이터가 로컬 버퍼로부터 메인 메모리로 카피되도록 데이터를 메인 메모리에 기록하는 것, 메인 메모리로부터 데이터 세트를 판독하는 것, 및 메인 메모리로부터 재판독되는 데이터를 로컬 버퍼 내의 원래의 데이터 세트와 비교하는 것을 수반할 수 있다. 2개의 데이터 세트가 일치하면, 기록 동작은 성공된 것으로 검증될 수 있고, 로컬 버퍼 내의 원래의 데이터 세트는 다른 데이터의 공간을 확보하기 위해 폐기되거나 그렇지 않으면 버려질 수 있다.
전력 공급 정지 또는 다른 장애 사건이 검증 동작의 완료 전에 발생하면, 또는 데이터가 검증 동작 전에 로컬 버퍼로부터 손상되거나 폐기되면, 데이터는 기록 동작이 성공된 경우 손실될 수 있다. 이러한 위험들 때문에, 데이터를 NV 메인 메모리에 전송하기 전에 높은 우선순위 기록 데이터를 일시적으로 저장하기 위해 비휘발성(NV) 로컬 버퍼를 이용하는 것이 일반적이다.
입력 데이터를 NV 버퍼에서 버퍼링하는 것은 데이터가 항상 NV 메모리에 저장되는 것을 본래 보장하며, 이는 데이터 손실의 위험을 감소시키는 경향이 있다. 더욱이, 입력 데이터를 NV 버퍼에서 버퍼링하는 것은 데이터가 호스트에 의해 수신되면 커맨드 완료 상태가 호스트 장치에 안전하게 발행되는 것을 허용하여, 후속 기록 동작이 데이터를 NV 메인 메모리로 이동시켜 기록 동작이 즉시 서비스되는 것을 필요로 하는 대신에 더 적절한 시간에 수행되는 것을 허용한다.
동작되는 동안, 기록 데이터가 NV 메인 메모리에 전송되는 방식으로 개선들을 위한 지속적인 요구가 남는다. 따라서, 본 개시의 다양한 실시예들은 일반적으로 데이터 무결성 및 시스템 신뢰성을 데이터 저장 시스템에서 향상시키는 것에 관한 것이다.
후술되는 바와 같이, 다양한 실시예들은 일반적으로 호스트 장치로부터의 사용자 데이터가 저장되는, 플래시 메모리와 같은 NV 메인 메모리를 이용한다. NV 기록 버퍼는 메인 메모리에 전송을 보류하는 기록 데이터를 일시적으로 버퍼링하기 위해 사용된다. NV 기록 버퍼는 자기 랜덤 액세스 메모리(MRAM), 스핀 토크 전달 랜덤 액세스 메모리(STRAM), 저항 랜덤 액세스 메모리(RRAM), 상 변화 랜덤 액세스 메모리(PCRAM) 등과 같은 비플래시 NV 구성을 취할 수 있다.
착신 기록 데이터는 NV 기록 버퍼에 저장되고, 기록 동작은 기록 데이터를 NV 버퍼로부터 NV 메인 메모리로 카피하기 위해 스케줄링되어 수행된다. 데이터가 NV 메인 메모리에 전송되었다면, 미리 결정된 경과 시간 간격이 개시된다.
하나의 접근법에서, 미리 결정된 경과 시간 간격은 시간 간격을 개시하고 선택된 양의 시간이 지났다면(예를 들어, 30 초 등) 그의 완료를 시그널링하는 타이머 회로의 사용을 통해 설정될 수 있다. 다른 접근법에서, 미리 결정된 경과 시간 간격은 선택된 수의 X개의 액세스 커맨드(예를 들어, 10개의 커맨드 등)이 시간 간격을 표시하기 위해 수신되도록 후속 액세스 커맨드들(예를 들어, 판독 및/또는 기록 커맨드들)의 카운트에 대해 측정된다. 이러한 후자의 경우에, 간격 동안 지나가는 측정된 시간은 장치 워크로드에 대해 변할 것이다.
경과 시간 간격의 마지막에서, 어떤 개재 갱신 기록 요청들도 연관된 데이터를 위해 수신되지 않았다면, 검증 동작은 데이터가 NV 메인 메모리에 성공적으로 기록된 것을 검증하기 위해 수행된다. 기록 동작이 성공되었다면, NV 버퍼 내의 데이터는 다른 데이터를 위한 공간을 해방시키기 위해 폐기될 수 있다. 검증 동작이 실패되었다면, 다른 기록 동작이 수행될 수 있거나, 다른 정정 동작들이 취해질 수 있다.
개재 기록 요청이 경과 시간 간격 동안 수신되면, 시스템은 새로운 기록 요청이 갱신된 기록 데이터 세트를 제공하는지 확인할 수 있다. 그렇다면, 이전에 수신된 데이터 세트에 대한 스케줄링된 검증 동작은 취소될 수 있고, 상술한 프로세스는 새로운 기록 데이터를 위해 재시작될 수 있다.
개재 판독 요청이 보류 기록 데이터에 대한 시간 간격 동안 수신되면, 판독 요청은 캐시 히트로서 NV 버퍼로부터 빠르게 서비스될 수 있다. 개재 판독 및/또는 기록 요청들의 발생은 캐시 전략의 변경들, 기록 증폭 완화, 빠른("슬로피(sloppy)") 기록들의 사용 등과 같은 다수의 후처리 활동들을 개시할 수 있다.
다양한 실시예들의 이들 및 다른 특징들 및 장점들은 다양한 실시예들에 따라 구성되고 동작되는 데이터 저장 장치(100)를 제공하는 도 1의 검토부터 시작하면 이해될 수 있다. 데이터 저장 장치(100)는 일반적으로 컨트롤러(102) 및 메모리 모듈(104)을 포함한다. 컨트롤러(102)는 장치(100)의 최고 레벨 제어를 제공한다. 메모리 모듈(104)은 외부 호스트 장치(분리적으로 도시되지 않음)와 같은 리퀘스터 엔티티로부터/로 사용자 데이터를 저장하고 검색한다. 일부 실시예들에서, 컨트롤러 기능성은 분리 컨트롤러가 불필요하도록 메모리 모듈(104)에 통합될 수 있다.
구체적인 예를 제공할 목적들을 위해, 시스템(100)은 SSD(solid state drive), 휴대용 썸 드라이브, 메모리 스틱, 메모리 카드 등과 플래시 메모리 기반 저장 장치로 고려된다. 이것은 메모리 모듈(104)이 대안적으로 임의의 수의 상이한 타입들의 비휘발성 메모리를 통합할 수 있으므로, 단지 예시적이고 제한되지 않는다는 점이 이해될 것이다.
도 2는 일부 실시예들에 따른 도 1의 장치(100)의 부분들을 예시한다. 컨트롤러(102)는 데이터 전송 동작들을 호스트 장치로 명령하기 위해 로컬 메모리에 저장된 적절한 프로그래밍을 갖는 프로그램가능 프로세서로 도시된다. 메모리 모듈(104)은 I/F(인터페이스) 회로(106), R/W/E(read/write/erase) 채널(108), 플래시 메모리 어레이(110), 로컬 휘발성 버퍼(112), 및 비휘발성(NV) 버퍼(114)를 포함한다.
I/F 회로(106)는 커맨드들, 상태 제어 정보 및 데이터를 수신 및 송신하기 위해 1차 인터페이스 통신들을 호스트에 제공한다. R/W/E 채널(108)은 플래시 메모리 어레이(110)로부터 데이터를 인코딩하고, 기록하며 재판독하기 위해 적절한 행 및 열 드라이버들 및 다른 디코딩 회로를 포함한다. 채널(108)은 또한 가비지 수집, 캐시 관리 및 검증 동작들과 같은 다른 동작들을 컨트롤러(102)의 지휘 하에 수행한다.
로컬 버퍼(112)는 동적 랜덤 액세스 메모리(DRAM) 또는 유사한 구성의 형태를 취하고 플래시 메모리(110)와 연관되는 사용자 데이터 및 메타데이터를 저장할 수 있다. 메타데이터는 다양한 액세스(판독 및 기록) 동작들을 지원하기 위해 필요에 따라 플래시 메모리 어레이(110)에 저장되고 로컬 버퍼(112)에 전송될 수 있다.
NV 버퍼는 아래에 논의되는 바와 같이, 데이터가 플래시 메모리(110)에 카피될 시에 검증 동작들을 보류하는 기록 데이터를 일시적으로 저장한다. NV 버퍼(112)는 데이터가 버퍼에 기록된 다음에 필요에 따라 중복 기재될 수 있도록 재기록가능한 것이 고려된다.
도 3은 플래시 메모리 어레이(110)로부터 플래시 메모리 셀(120)을 도시한다. 반도체 기판(124) 내의 도핑된 영역들(122)은 게이트 구조(126)에 의해 걸쳐 있는 소스 및 드레인 영역들을 형성한다. 게이트 구조는 개재 장벽 층들(132, 134)에 의해 분리되는 부동 게이트(FG)(128) 및 제어 게이트(CG)(130)를 포함한다. 데이터는 부동 게이트(128) 상의 전기 전하의 축적에 대한 셀(120)에 저장된다.
도 4는 열들(136) 및 행들(138)로 배열되는 복수의 셀들(120)을 도시한다. 각각의 열(136) 내의 셀들(120)은 NAND 구성으로 상호 연결되고 분리 비트 라인(BL)(140)에 의해 액세스된다. 각각의 행(138)을 따르는 셀들(120)은 연관된 행을 따르는 각각의 셀의 제어 게이트(CG)(130)를 상호 연결하는 분리 워드 라인(WL)(142)에 연결된다.
셀들은 전하를 채널로부터 각각의 부동 게이트들(128)로 이동시키기 위해 적절한 전압들을 비트 라인들(140) 및 워드 라인들(142)에 인가함으로써 기록(프로그램)된다. 셀(120)의 부동 게이트(128) 상의 전하의 존재는 셀을 드레인-소스 전도 상태에 배치하기 위해 제어 게이트(130) 상에 배치될 필요가 있는 임계 전압을 증가시킨다. 프로그램된 상태들은 셀들이 전도 상태로 전이되는 임계값을 검출하기 위해 일련의 전압들을 각각의 비트 라인들(140) 및 워드 라인들(142)에 인가함으로써 판독(감지)된다.
특정 소거 동작은 축적된 전하를 제거하고 셀(120)을 미소거 초기화 상태로 리턴하기 위해 요구된다. 도 5는 도 4에 설명된 바와 같은 메모리 셀들(120)로 형성된 소거 블록(144)을 도시한다. 소거 블록(144)은 소거 동작을 한 번에 받을 수 있는 메모리 셀들의 가장 작은 그룹화를 나타낸다.
데이터는 페이지들(146)의 형태로 저장된다. 소거 블록(144)은 각각의 페이지가 선택된 양의 데이터(예를 들어, 4096 비트 등)를 저장하는 상태에서, 전체 N개의 페이지를 갖는다. 페이지들(146)은 메모리 셀들의 행들(136)에 대응하며; SLC(single level cell) 레코딩에서, 선택된 행을 따르는 각각의 셀(120)은 단일 페이지의 데이터를 저장한다. MLC(multi-level cell) 레코딩에서, 선택된 행을 따르는 각각의 셀(120)은 2개의(또는 그 이상의) 페이지의 데이터를 저장한다. 일반적으로, 각각의 셀은 2N의 다른 축적 전하 레벨들을 제공함으로써 N 비트의 데이터까지 저장할 수 있다.
데이터는 우선 셀들을 소거 동작에 종속시키는 것 없이 플래시 메모리 셀들(120)의 그룹에 통상 중복 기재될 수 없기 때문에, 선택된 논리 어드레스(예를 들어, 논리 블록 어드레스, LBA 등)와 연관되는 각각의 데이터 세트는 통상 어레이 내의 새로운 위치에 기록된다. 예를 들어, LBA X로 식별되는 데이터 블록은 도 5의 페이지 1에 기록될 수 있다. 나중에 제공된 버전의 데이터 블록(LBA X)이 기록을 위해 제공되면, 그것은 새로운 위치(예를 들어, 페이지 3 등)에 기록될 수 있다. 일반적으로, 어레이(110) 내의 다음 이용가능 위치는 각각의 새로운 버전의 주어진 LBA를 기록하기 위해 선택된다. 다음 이용가능 위치는 동일한 소거 블록(144)에 있거나, 더 최근에 할당된 소거 블록(144)에 있을 가능성이 더 높을 수 있다.
메타데이터는 다양한 버전들의 각각의 LBA의 위치들을 추적하기 위해 장치(100)에 의해 유지된다. 메타데이터는 가장 통용되는 버전의 각각의 LBA의 위치를 관리하기 위해 일련의 전방향 포인터들을 포함할 수 있다. 이전 버전들은 스테일(stale)로 마킹될 수 있다. 충분한 레벨들의 데이터는 소거 블록에 또는 다수의 그러한 블록들로 구성된 더 큰 GCU(garbage collecition unit)에 스테일될 때, 소거 블록 또는 GCU는 가비지 수집 프로세스를 받을 수 있으며 그것에 의해 현재 버전 데이터는 새로운 위치로 이동되고, 소거 블록 또는 GCU는 소거되며, 소거된 블록 또는 GCU는 사용자 데이터를 저장할 시에 후속 사용을 위한 할당을 보류하는 할당 풀에 리턴된다.
상기 언급된 바와 같이, 도 2의 NV 버퍼(114)는 어레이(110)에서 하나 이상의 페이지들(146)에 기록될 입력 기록 데이터를 일시적으로 버퍼링하기 위해 사용된다. 요구되지 않지만, NV 버퍼(114)는 상이한 타입의 고체 상태 비휘발성 메모리 셀 구성을 사용하는 것이 고려된다. 도 6-도 8에 설명된 것들과 같지만, 이들에 제한되지 않는 다양한 구성들이 사용될 수 있다.
도 6은 스핀 토크 전달 랜덤 액세스 메모리(STRAM) 구성을 갖는 메모리 셀(150)을 도시한다. 메모리 셀은 스위칭 장치(154)와 직렬인 MTJ(magnetic tunneling junction)(152)를 포함한다. 스위칭 장치(154)는 MOSFET(metal oxide semiconductor field effect transistor)를 구성하는 것으로 도시되지만, 다이오드들 등과 같은 단방향 장치들을 포함하는 다른 형태들의 스위칭 장치들가 사용될 수 있다.
MTJ(152)는 상단 및 하단 전도성 전극들(156 및 158), 자유 층(160), 기준 층(162) 및 개재 장벽 층(164)을 포함한다. 다른 MTJ 구성들이 사용될 수 있다. 자유 층(160)은 가변 자기 배향을 갖는 자기적 반응 재료의 하나 이상의 층들을 포함한다. 기준 층은 고정 자기 배향을 갖는 자기적 반응 재료의 하나 이상의 층들을 포함한다. 기준 층은 영구 자석, SAF(synthetic antiferromagnetic) 층 등과 같은 피닝 층, 및 피닝 층에 의해 자기적으로 배향되는 강자성 층과 같은 피닝된 층을 포함할 수 있다. 자기 배향의 방향(들)은 MTJ(152)를 통한 전류의 방향과 수직 또는 평행할 수 있다.
MTJ는 기준 층(162)에 대한 자유 층(160)의 배향에 대해 상이한 전기 저항들을 나타낸다. 비교적 낮은 저항은 평행 배향으로 제공되며, 자유 층(160)은 기준 층(162)과 동일한 방향으로 배향된다. 비교적 높은 저항은 역평행 배향으로 제공되며, 자유 층(160)은 기준 층(162)과 반대 방향으로 배향된다. 스핀 토크 전류들은 평행 및 역평행 배향들 사이의 자유 층을 전이시키기 위해 인가될 수 있다.
메모리 셀(150)은 비트 라인(BL)(166), 소스 라인(SL)(167) 및 워드 라인(WL)(168)을 포함하는 복수의 제어 라인들에 의해 상호 연결된다. 워드 라인(168)은 선택 라인으로 동작하여, 전류가 원하는 방향으로 비트 라인(166)과 소스 라인(167) 사이의 MTJ(152)를 통과할 수 있게 한다.
도 7은 저항 랜덤 액세스 메모리(RRAM) 셀(170)을 제공한다. 셀(170)은 도 6으로부터의 스위칭 장치(154)와 결합하는 RRAM 프로그램가능 요소(172)를 포함한다. 상단 및 하단 전도성 전극들(174, 176)은 산화물 층 또는 전해질 층을 구성할 수 있는 개재 층을 분리시킨다. 개재 층(178)은 통상 비교적 높은 전기 저항을 갖는다.
프로그래밍 동작 동안, RRAM 요소(172)를 통해 전기 저항을 낮추는 필라멘트(179)의 형성을 야기할 수 있는 이온 이동이 개시된다. 필라멘트(179)는 프로그래밍 현재 시퀀스를 각각의 워드, 비트 및 소스 라인들(166, 167 및 168)에 인가함으로써 형성된다. RRAM 셀(170)은 상이한 조합의 전압들을 셀에 인가함으로써 그것의 초기 상태로 리셋될 수 있다. 상태의 변경을 이온들 또는 정공들의 이동에 의해 장벽에 걸쳐 경험하는 구조들 또는 요소(182)에 대한 제어된 저항 변경을 야기하는 중간 구조와 같은, 전도성 필라멘트를 반드시 형성하는 것은 아닌 다른 RRAM 구성들이 고려된다.
도 8은 상 변화 랜덤 액세스 메모리(PCRAM) 셀(180)을 도시한다. 전과 같이, 셀(180)은 도 6-도 7로부터의 스위칭 장치(154)와 직렬인 프로그램가능 요소(182)를 갖는다. 상단 및 하단 전극들(184, 186)은 상 변화 재료(188)를 분리한다. 상 변화 재료는 열 반응하고 그것의 유리 전이 온도 이상의 온도로 가열될 때 전이(용융)된다. 층(188)이 나중에 냉각되는 비율에 따라, 재료의 적어도 일부는 각각의 더 높은 또는 더 낮은 저항들을 갖는 비정질 또는 결정질 상태를 취할 수 있다. 도 8은 셀(180)이 높은 저항 상태로 프로그램되는 것을 표시하는 비정질 구역(189)을 도시한다.
다른 형태들의 비휘발성 고체 상태 메모리 셀들은 도 6-도 8에 예시된 것들 외에 이용될 수 있다는 점이 이해될 것이다. 도 9는 RSE(resistive sense element)(192)를 각각 갖는 NV 메모리 셀들(190)의 일반적 사용을 도시하며, RSE는 장치(154)와 같은 스위칭 장치와 결합하는, 도 6-도 8의 요소들(152, 172 및 182) 중 선택된 하나에 대응할 수 있다. 셀들은 행들 및 열들로 배열되고 상술한 비트, 소스 및 워드 라인들(166, 167 및 168)을 통해 상호 연결된다.
요구되지 않지만, 도 2의 NV 버퍼(114)는 도 9에 설명된 것과 같은 구성을 취하는 것이 고려된다. NV 버퍼(114)는 메인 플래시 메모리(110)에 전송을 보류하는 데이터를 저장하기 위해 각각의 워드 라인(168)을 따르는 각각의 셀 세트가 배열된 다음에, 메모리를 소거 동작에 종속시킬 필요 없이 새로운 데이터로 중복 기재될 수 있도록 본래 재기록가능할 것이다.
NV 버퍼(114)는 플래시 메모리(110)보다 더 빠른 데이터 I/O 속도를 가질 수 있어, 데이터는 액세스 동작들을 플래시 메모리로 지원하기 위해 필요에 따라 데이터가 NV 버퍼(114)에 빠르게 기록되고 NV 버퍼로부터 판독될 수 있다. NV 버퍼(114)는 CAM(content addressable memory) 또는 유사한 캐시 구조의 형태로 배열될 수 있다. 도 10은 NV 버퍼(114)에 대한 예시적 CAM 구조를 도시한다. CAM 구조는 N개의 엔트리(194)까지 저장할 수 있다. 각각의 엔트리는 태그 필드(196) 내의 식별자 태그 및 워드 필드(198) 내의 워드 페이로드를 포함한다. 식별자 태그들은 LBA 어드레스들일 수 있고, 워드 페이로드들은 LBA 어드레스와 연관되는 대응하는 페이지 데이터일 수 있다.
도 11은 본 개시의 데이터 기록 관리 회로(200)의 양상들을 예시한다. 회로(200)는 검증 및 다른 관련 동작들을 수행하기 위해 앞서 논의된 다양한 양상들의 메모리 모듈(104)에 통합될 수 있다. 본 논의의 목적들을 위해, 기록 데이터 세트는 메인 플래시 메모리 어레이(110)에 기록하기 위해 호스트로부터 장치(100)로 제공되는 것이 고려될 것이다. 기록 데이터에는 선택된 논리 블록 어드레스, 예를 들어 LBA(1001)가 제공될 것이다. 실제로, 플래시 메모리에 많은 LBA들의 데이터의 기록을 수반하는 단일 기록 요청(기록 커맨드)이 발행될 수 있다는 점이 이해될 것이다.
도 11에 도시된 바와 같이, 호스트로부터 수신되는 기록 데이터는 NV 버퍼(114)의 이용가능 엔트리(194)(도 10)에 일시적으로 저장되고, 입력 기록 데이터의 카피는 플래시 메모리 어레이(110)의 다음 이용가능 페이지(146)(도 5)에 기록된다. 이 단계들은 상기 논의된 바와 같이 수행되고 LBA 번호(1001)를 연관된 엔트리에 대한 필드(196) 내의 태그 엔트리 및 워드 필드(198) 내의 사용자 데이터로 사용하는 것을 포함한다. 인코딩은 NV 버퍼(114)에 기록 데이터의 로딩 전에 또는 후에 적용될 수 있다. 플래시 메모리 어레이(110)에 데이터의 기록은 데이터가 기록될 물리적 어드레스(예를 들어, 페이지 등)를 식별하도록, 및 데이터를 저장하기 위해 적절한 인코딩 또는 다른 처리를 데이터에 적용하도록 메타데이터를 참조하는 것을 포함한다. 데이터는 셀들의 연관된 부동 게이트들(128) 상의 축적된 전하의 양에 대한 플래시 메모리 셀들(120)의 선택된 행(138)에 저장될 것이다.
데이터가 기록되었다면, 타이머 회로(202)는 미리 결정된 경과 시간 간격에 대한 카운트를 개시한다. 간격의 길이는 적절한 값일 수 있고, 대략 몇 초(예를 들어, 3-5 초 등) 또는 그 이상일 수 있다. 상이한 우선순위 레벨들의 데이터에 대한 상이한 지속 기간들을 포함하는 다른 지속 기간들이 선택될 수 있다. 지속 기간(들)은 또한 장치(100)의 동작 로딩에 기초한 동작 동안 적응적으로 변경될 수 있다. 데이터 관리 회로(200)는 경과 시간 간격의 마지막에 수행될 검증 동작을 더 스케줄링한다.
일부 실시예들에서, 경과 시간의 흐름에 관한 간격의 길이는 메인 메모리(예를 들어, 플래시(110))의 완화 시간을 초과하기 위해 선택될 수 있다. 데이터를 플래시 메모리에 기록하는 것은 메모리의 부동 게이트 구조에 전하의 전송을 수반하고, 전하의 전송의 완료에 따라, 플래시 셀이 최종 축적된 전하 상태로 안정시키는 시간의 비교적 짧은 지속 기간이 존재한다는 점이 인식될 것이다. 플래시 메모리 셀들의 전류 발생을 위해 지속 기간이 대략 30 초 이상일 수 있는 이러한 시간 간격은 본 명세서에서 완화 시간으로 지칭된다. 다른 구성들의 메모리 셀들은 상이한 연관된 완화 시간들을 가질 수 있다. 완화 시간을 초과하는 경과 시간 간격의 지속 기간을 선택함으로써, 검증 동작은 셀의 최종 프로그램된 상태가 안정된 후의 시점에 수행될 수 있다.
다른 실시예들에서, 타이머 회로는 시간 경과 대신에 액세스 커맨드들(예를 들어, 판독 및/또는 기록 커맨드들)을 메트릭으로서 카운트할 수 있다. 다시 말하면, 미리 결정된 시간 간격은 호스트 장치로부터 X개의 새로운 액세스 커맨드의 수신에 대해 정의될 수 있어, 검증 동작은 X개의 커맨드가 수신되었을(그리고, 일부 경우들에서, 서비스되었을) 때까지 수행되지 않는다. 번호 X는 10, 20, 50 등과 같은 임의의 복수의 정수일 수 있다. 이 경우에 간격 동안 지나가는 경과 시간의 실제 양은 워크로드에 기초하여 변하며; 비교적 더 높은 수의 I/O 액세스 커맨드들이 서비스되는 더 높은 워크로드 환경에서, 간격 동안 지나가는 시간의 실제 전체 양은 비교적 더 낮은 수의 I/O 액세스 커맨드들을 갖는 더 낮은 워크로드 환경에서보다 더 작다는 점이 이해될 것이다.
시간 간격 동안, 장치(100)는 정상 동작 모드에서 동작하고 필요에 따라 부가 액세스 요청들을 서비스한다. 타이머 회로(202)가 경과 시간 간격의 종료를 시그널링하면, 스케줄링된 검증 동작이 시작된다(아래에 논의된 것을 제외함). R/W/E 채널(108)은 시간 간격의 시작에 기록된 기록 데이터를 플래시 메모리 어레이(110)로부터 재판독한다. 재판독 데이터는 원하는 대로 NV 버퍼를 포함하는 로컬 버퍼(112) 또는 일부 다른 적절한 위치에 일시적으로 저장될 수 있다. 인코딩이 기록 동작 동안 데이터에 적용되면, 적절한 디코딩은 데이터가 통상 NV 버퍼(114)에 여전히 보류되는 기록 데이터와 동일한 상태에 있도록 적용된다(예를 들어, 에러 검출 및 정정 등).
비교 회로(204)는 XOR(exclusive-or) 동작의 적용을 포함하는, 임의의 수의 공지된 기술들을 사용하여 NV 버퍼(114) 내의 원래의 기록 데이터를 재판독 데이터와 비교한다.
다수의 상이한 처리 경로들은 검증 동작의 결과들 뿐만 아니라, 추가 이벤트들이 경과 시간 간격 동안 발생되었는지에 따라 도 11에 도시된다.
비교 회로(204)는 2개의 데이터 세트가 일치하는 것을 결정하면, 단계 206에 도시된 바와 같이, 기록 동작은 성공적인 것으로 검증되고 그 후에 기록 데이터는 NV 버퍼(112)로부터 제거(폐기)된다. NV 버퍼(112)에 이용가능 캐시 라인들(194)이 존재하면, 데이터는 반드시 즉시 제거되거나 중복 기재되는 것은 아닐 수 있지만, 그 대신에 새로운 데이터를 수용하기 위해 캐시 라인이 나중에 요구될 때 중복 기재되도록 선택될 수 있다는 점이 이해될 것이다. 기록 데이터를 NV 버퍼에 남기는 것은 본래 어떤 처리 비용도 추가하지 않고 후속 판독 캐시 히트들을 중간에 가능하게 할 수 있다.
비교 회로(204)는 2개의 데이터 세트가 일치하지 않는 것을 결정하면, 이 때 에러는 발생된 것으로 추정되고 정정 동작들은 단계 208로 나타낸 바와 같이 취해진다. 정정 동작들은 데이터를 플래시 메모리 어레이(110) 내의 새로운 위치에 재기록하는 것 및 상기 단계들을 반복하는 것을 포함할 수 있다. 실패는 플래시 메모리 내의 결함 또는 다른 비정상 조건으로 인한 것일 수 있으므로, 다른 단계들이 또한 취해질 수 있다. 예를 들어, 데이터가 기록되는 위치는 가능한 할당 해제 등에 대해 평가될 수 있다.
도 11은 NV 버퍼(114)에 저장된 기록 데이터(예를 들어, LBA(1001))를 위해 호스트 장치로부터의 판독 요청이 장치(100)에 의해 수신되는 상황을 나타내는 부가 처리 경로를 210에 도시한다. 그렇다면, 기록 데이터의 카피는 경로 211에 의해 나타낸 바와 같이 재판독 데이터로서 NV 버퍼(114)로부터 출력된다. 이것은 캐시 히트를 구성한다.
판독 요청이 데이터를 위해 즉시 수신되었다는 사실은 "핫" 데이터로서의 데이터, 즉 호스트가 관심 있는 비교적 높은 레벨을 현재 입증하고 있는 데이터의 분류를 또한 초래한다. 따라서, LBA(1001)에 대한 핫 기록 데이터는 후속 캐시 히트들을 예상하여 NV 버퍼(114)에 유지된다. 이해되는 바와 같이, 캐시 히트는 일반적으로 플래시 메모리 어레이(110)로부터 데이터를 판독할 필요 없이 연관된 판독 요청이 만족될 수 있으므로 바람직하며, 그것에 의해 시간 및 시스템 자원들을 절약한다.
잠재적 캐시 히트들을 더 지원하는 추론적 판독 동작으로서 LBA(1001)에 대한 기록 데이터와 공간적으로 또는 시간적으로 관련된 다른 데이터 NV 버퍼(114)로 이동시키는 것과 같은 다른 단계들이 또한 이 시점에 취해질 수 있다. 공간적(스페이스) 관련 데이터는 LBA 시퀀스 내의 인근의 LBA들(예를 들어, LBA들(1002, 1003) 등)일 수 있다. 시간적(타임) 관련 데이터는 LBA(1001)와 동일한 시간 주위에 기록된 LBA들일 수 있다.
도 12는 데이터 관리 회로(200)에 의해 수행될 수 있는 동작들의 관련된 시퀀스를 도시한다. 전과 같이, LBA(1001)에 대한 기록 데이터는 호스트로부터 수신되고, NV 버퍼(114)에 저장되며 메인 플래시 메모리 어레이(110)에 카피된다. 이 시점에 타이머 회로(202)는 경과 시간 간격을 카운트하기 시작하고 검증 동작은 시간 간격이 완료되면 발생하도록 스케줄링된다.
그러나, 경과 시간 간격의 완료 전에, 새로운 기록 요청은 경로(214)에 의해 나타낸 바와 같이, LBA(1001)와 연관되는 데이터를 위해 호스트로부터 수신된다. 이 시점에서, 회로(200)는 새로운 기록 데이터가 NV 버퍼 내의 기존 기록 데이터와 상이한지를 판단한다. 비교 회로(204)는 도 11에서 앞서 논의된 비교와 유사한 방식으로 2개의 데이터 세트를 비교한다. 다수의 다른 가능한 처리 경로들이 취해질 수 있다.
단계 216에 의해 도시된 바와 같이, 2개의 데이터 세트가 일치하면, 이 때 호스트 장치는 다른 기록 요청을 동일한 데이터에 간단히 제공했고, 새로운 데이터가 무시될 수 있다. 동일한 데이터(기록 증폭)의 복사 세트의 기록을 회피하는 것은 시간 및 시스템 자원들의 소비를 유리하게 감소시킬 수 있고, 웨어(wear)를 감소시킬 수 있다.
2개의 데이터 세트가 일치하지 않으면, 단계 218에 의해 도시된 바와 같이 LBA(1001)에 대한 더 오래된 버전의 기록 데이터는 NV 버퍼(114)로부터 폐기되고, 타이머 회로 카운트다운은 중단되며, 검증 동작은 취소된다. 그 후, LBA(1001)에 대한 새로운 기록 데이터 세트는 앞서 논의된 바와 같이 처리된다(새로운 시간 간격 및 스케줄링된 검증 동작을 포함함).
부가 처리는 단계 220에 적용될 수 있다. 다수의 기록 요청들은 비교적 짧은 시간 기간에 호스트로부터 수신되었기 때문에, 데이터는 전과 같이 "핫" 데이터로 분류될 수 있다. 이 경우에, 나중에 수신된 핫 기록 데이터 세트는 해시들 및/또는 빠른(슬로피) 기록들을 사용하여 처리될 수 있다.
해시 발생기(222)는 도 13에 도시된다. 일반적으로, 해시 발생기(222)는 입력 데이터 세트로부터 해시 값 세트를 발생시키기 위해 해시 함수를 사용한다. 해시 함수는 선택된 길이의 제 1 데이터 세트("키")를 선택된 길이의 제 2 데이터 세트("해시 값")에 맵핑하는 임의의 수의 상이한 타입들의 알고리즘들을 특징으로 할 수 있다. 많은 경우들에서, 제 2 데이터 세트는 제 1 데이터 세트보다 더 짧을 수 있을 것이다. 해시 발생기(22)에 의해 사용되는 해시 함수들은 변형되고, 투명하게 참조되며(referentially transparent), 충돌 회피되어야 한다.
변형은 입력 값(키)의 내용들이 출력 해시 값의 형식적인 검사를 통해 복구될 수 없다는 방식으로 해시 함수에 의해 입력 값의 변경에 관한 것이다. 참조적 투명성은 동일한 입력 값이 제공될 때마다 동일한 출력 해시 값이 발생되도록 하는 해시 함수의 특성이다. 충돌 저항은 상이한 비트 값들을 갖는 2개의 입력이 동일한 출력 해시 값에 매핑되지 않는 정도를 나타내는 특성이다. 해시 발생기(222)에 의해 사용되는 해시 함수 또는 함수들은 체크섬들, 체크 디지트들, 핑거프린트들, 암호 기능들, 패리티 값들 등을 포함하는 임의의 수의 형태들을 취할 수 있다.
일부 실시예들에서, Sha 256 해시와 같은 Sha 시리즈 해시 함수가 적용된다. Sha 해시 값 등의 최하위 비트들과 같은 Sha 256 해시의 선택된 비트들은 해시 값으로 사용될 수도 있다.
해시 발생기(222)는 시스템에 의해 요구되는 바와 같은 해시 값들을 발생시키도록 구성될 수 있다. 도 13에 도시된 바와 같이, 도 12로부터 갱신된 기록 데이터의 후속 기록 동안, 해시 값은 플래시 메모리 어레이(110) 내의 갱신된 기록 데이터의 카피로 발생되어 저장된다. 후속 검증 동작 동안, 비교는 도 11에서 앞서 논의된 바와 같이 발생한다. 그러나, 완전한 입력 기록 데이터 및 재판독 데이터를 비교하지 않고, 연관된 해시 값들은 그 대신에 비교 회로(204)에 의해 비교된다. 이러한 방법으로, 효율적인 비교는 플래시 메모리 어레이(110)에 데이터의 성공적인 기록을 검증하기 위해 수행될 수 있다.
해시 값들은 기록 거부 처리 동안 도 14에 설명된 바와 같은 기록 증폭을 감소시키기 위해 사용될 수도 있다. 도 14에서, 선택된 LBA(즉, LBA(1001))에 대한 새로운 버전의 기록 데이터는 플래시 메모리 어레이(110)에 기록을 위해 수신되고, NV 버퍼(114)에 일시적으로 버퍼링된다. 메타데이터 디코드 회로(224)는 선택된 LBA에 대한 이전에 저장된 데이터의 위치를 식별하기 위해 플래시 메모리 어레이(110)에 저장된 메타데이터에 액세스하고 이전에 저장된(오래된) 해시 값을 리턴시킨다.
해시 발생기(222)는 입력 기록 데이터에 대한 새로운 해시 값을 발생시키고, 비교 회로(204)는 새로운 해시 값을 오래된 해시 값과 비교한다. 해시 값들이 일치하면, 새로운 버전의 기록 데이터가 단지 기존 데이터의 카피라는 통계적으로 중요한 확률이 존재한다. 이 시점에서, 새로운 기록 데이터는 동일한 데이터의 새로운 복사 카피를 저장할 필요가 없으므로 전과 같이 폐기될 수 있다. 추가 보증 레벨들이 기록 거부 프로세스 동안 요구되면, 동작은 도 11에서 앞서 논의된 바와 같이, 이전에 저장된 데이터를 검색하고 XOR 함수 또는 유사한 것을 사용하는 완전한 비트 바이 비트 비교를 수행함으로써 계속될 수 있다.
핫 기록 데이터(기록 요청들이 검증 동작의 보류 동안 수신되는 데이터)에 대한 해시 값들을 구현함으로써, 복사 데이터의 빠른 거절들이 수행될 수 있고 기록 증폭이 감소될 수 있다.
도 15는 후속 기록 동작들 동안 핫 기록 데이터에 대해 더 구현될 수 있는 슬로피의 사용을 예시한다. 도 15에 도시된 바와 같이, R/W/E 회로(108)는 경로(228)를 통한 빠른(슬로피) 기록 선택 신호 및 경로(230)를 통한 느린(정상) 기록 선택 신호를 포함하는, 다수의 입력들을 수신하도록 적응되는 제어 회로(226)를 포함한다. 이 신호들은 필요에 따라 데이터 관리 회로(200)에 의해 발생되어 출력될 수 있다. 디폴트 설정은 기록 프로세스이다.
차지펌프 회로(232) 및 프로그램 검증 회로(234)를 포함하는 회로(108)는 도 15에 더 도시된다. 이 회로들(232, 234)은 제어 회로(226)의 제어 하에 있다. 차지펌프 회로(232)는 일반적으로 프로그램되는 연관된 플래시 메모리 셀(120)에 전하의 양자들을 전송하기 위해 동작한다. 프로그램 검증 회로(234)는 셀(120)의 부동 게이트(128)(도 3) 상에 축적되었던 전하의 전체 양을 평가하기 위해 판독 검증 임계값을 주기적으로 적용한다.
느린(정상) 기록 선택 모드에서, 회로들(232, 234)은 전하를 플래시 메모리 셀에 적용하는 정상 방식으로 동작한다. 일부 경우들에서, 이것은 전압원으로부터 커패시터와 같은 저장 장치 상으로의 전하의 축적, 및 축적된 전하의 양을 부동 게이트 상에 증분적으로 증가시키기 위해 연관된 비트 및 워드 라인들(도 4)을 통한 셀(120)로의 전하의 전송을 포함할 수 있다. 프로그램 검증 회로는 셀(120)에 의한 축적된 전하의 전체 양을 평가하기 위해 각각의 전하 전송 동작의 마지막에 동작할 수 있다. 임계값들과 같은 프로세스 파라미터들의 제 1 정상 세트는 프로그램된 셀 상의 전하의 전체 양이 선택된 범위 내에 있는 것을 보장하기 위해 적용될 수 있다.
빠른(슬로피) 기록 선택 모드 동안, 회로들(232, 234)은 더 빠르고 덜 제어된 방식을 제외하고, 상술한 바와 같이 동작한다. 다수의 기술들은 정밀성의 희생으로 프로그래밍 프로세스의 속도를 높이기 위해 적용될 수 있다. 차지펌프 회로는 예를 들어 정상 동작 동안보다 각각의 전송 동안 더 많은 양의 전하를 전송하도록 구성될 수 있으며/있거나, 프로그램 검증 회로(234)에 의해 평가되기 전에 다수의 전하 세트를 계속해서 전송할 수 있다.
더욱이, 프로그램 검증 회로(234)는 프로그래밍 동작이 완료되었는지를 판단할 때 완화된 파라미터 임계값들의 제 2 세트를 사용할 수 있다. 슬로피 기록 프로세스는 정상 기록 프로세스보다 더 빠르게, 그리고 잠재적으로 전체 전력의 더 낮은 인출로 데이터를 기록하는 경향이 있지만, 최종적으로 프로그램된 셀들은 정상 프로세스를 사용하여 프로그램되는 동일한 셀들과 비교하여 더 많은 전하 분배 변화들을 나타내는 경향이 있는 것이 고려된다.
핫 기록 데이터에 대한 슬로피 기록들을 사용하는 하나의 기초는 플래시 메모리 어레이(110) 내의 데이터의 지속 기간이 정상 데이터에 대한 것보다 실질적으로 더 짧을 수 있는 예상이 있다는 점이 이해될 것이다. 따라서, 시스템은 더 많은 전하 분배 변화들을 갖는 데이터의 단기 저장을 받아들일 수 있다.
도 16은 데이터 기록 루틴(300), 일반적으로 기록 데이터의 처리 동안 이전 논의에 따른 장치(100)에 의해 수행될 수 있는 예시적 단계들을 제시한다. 앞서 논의된 LBA(1001)에 대한 기록 데이터와 같은 기록 데이터는 단계 302에서 호스트 장치로부터의 기록 요청(커맨드)과 함께 수신된다. 입력 기록 데이터는 단계 304에서 114와 같은 재기록가능 비휘발성(NV) 버퍼에 저장된다. 라이트백(writeback) 처리는 데이터가 이 시점에 성공적으로 기록되었다는 것을 호스트가 통지받기 위해 이용될 수 있다.
루틴은 기록 데이터가 NV 버퍼로부터 플래시 메모리 어레이(110)와 같은 NV 메인 메모리로 카피되는 단계 306으로 진행한다. 202와 같은 타이머 회로는 미리 결정된 경과 시간 간격을 개시하기 위해 단계 308에서 개시된다. 타이머 회로는 미리 선택된 양의 시간의 경과를 측정하는 카운터로서 동작할 수 있다는 점이 주목될 것이다. 대안적으로, 타이머 회로는 호스트로부터 장치에 의해 수신되는 개재 액세스 커맨드들을 카운트하고 미리 결정된 수(X)(X=10 등과 같은)의 액세스 커맨드들이 수신(그리고, 원하는 대로, 처리)되었다면 시간 간격을 종료할 수 있다. 검증 동작은 단계 306에 기록된 데이터를 위해 단계 310에서 스케줄링되며, 검증 동작은 경과 시간 간격이 종료되었다면 잠정적으로 발생한다.
루틴은 만약 있다면, 경과 시간 간격 동안에 발생하는 이벤트들을 다음에 처리한다. 결정 단계 312는 기록 데이터(예를 들어, LBA(1001))에 대한 판독 요청이 수신되었는지를 질의한다. 그렇다면, 프로세스는 판독 요청이 NV 버퍼(114)로부터의 캐시 히트로서 만족되고, 기록 데이터가 장래의 처리를 위한 핫 데이터로서 표시되는 단계 314로 이동한다. 프로세스의 이 시점에, 또는 나중에, 공간적으로 또는 시간적으로 인접한 데이터는 장래의 캐시 히트들을 위해 NV 버퍼(114)로 이동될 수 있다. 더욱이, 캐시 유지 정책은 데이터가 검증 동작의 성공적인 종료 후에 NV 버퍼(114)에 유지되도록 제정될 수 있다.
루틴을 계속하면, 흐름은 기록 요청이 시간 간격 동안 수신되는지를 질의하는 결정 단계 316으로 이동한다. 그렇다면, 루틴은 새로운 기록 요청이 (예를 들어, LBA(1001)에 대한) 동일한 데이터을 위한 것인지 또는 새로운 기록 요청이 상이한 데이터 세트를 위한 것인지를 판단하는 단계 318로 이동한다. 후자의 경우에, 루틴은 단계 306으로 이동하고 새로운 데이터 세트는 기록되고 새로운 경과 시간 간격은 새로운 데이터를 위해 개시된다. 타이밍 회로(202)는 임의의 수의 데이터 세트들에 대한 임의의 수의 상이한 중복 경과 시간 간격들을 동시에 관리할 수 있는 것이 고려된다.
새로운 기록 데이터가 동일한 논리 어드레스를 보류 기록 데이터로서 갖는다면(예를 들어, 둘 다는 LBA(1001)를 위한 것임), 루틴은 단계 318로부터 비교가 각각의 데이터 세트 사이에 이루어지는 단계 320으로 이동한다. 이것은 도 12에서 앞서 논의되었다. 2개의 데이터 세트가 일치하면, 결정 단계 222에서, 이 때 새로운 기록 데이터는 단계 324에서 불필요한 것으로 폐기될 수 있다.
기록 데이터 세트가 일치하지 않으면, 이 때 새로운 기록 데이터 세트는 갱신된 데이터, 또는 가장 통용되는 버전 데이터이고, 더 오래된 데이터 세트는 이제 스테일한 더 오래된 버전 데이터인 것이 추정될 수 있다. 그러한 경우에, 더 오래된 데이터의 기록 검증을 수행하기 위해 어떤 추가 요구도 존재하지 않는다. 루틴은 현재 시간 간격이 중단되고, 단계 310으로부터의 스케줄링된 검증 동작이 최소되며, 새로운 기록 데이터가 핫 데이터로서 표시되는 단계 326으로 이동한다. 이것은 도 13-도 15에서 앞서 논의된 바와 같이, 연관된 LBA(들)에 대한 후속 기록 동작들 동안 해시 값들 및/또는 슬로피 기록들의 사용을 수반할 수 있다.
다른 한편, 경과 시간 간격이 계속 이동할 때 어떤 판독 요청(단계 312) 및 어떤 기록 요청(단계 316)도 수신되지 않으면, 루틴은 경과 시간 간격이 완료되었는지를 판단하는 판단 단계 328로 이동한다. 그렇지 않으면, 루틴은 다시 돌아와서, 임의의 수신된 판독 및/또는 기록 요청들을 필요에 따라 처리한다.
일부 시점에 경과 시간 간격은 종료될 것이며, 어느 시점에 프로세스는 단계 328로부터 단계 330으로 진행하며, 스케줄링된 검증 단계는 일반적으로 도 11에 설명된 바와 같이, 수행된다. 기록 검증이 성공된 경우, 기록 데이터는 어떤 판독 요청들도 중간에 수신되지 않으면 NV 버퍼로부터 폐기될 수 있다. 그 다음, 프로세스는 단계 332에서 종료되지만, 다수의 보류 기록 데이터 세트는 도 16의 흐름을 동시에 받아서 적절히 처리될 수 있다는 점이 이해될 것이다.
본 명세서에 제공되는 다양한 실시예들은 다수의 이득들을 제공할 수 있다는 점이 이제 이해될 것이다. 입력 기록 데이터를 일시적으로 버퍼링하는 NV 버퍼의 사용은 전력 손실 또는 다른 비정상 사건의 경우에 데이터 손실을 감소시키는 것을 도울 수 있다. 기록 검증 프로세스를 지연시키는 타이머의 사용은 시스템이 검증 동작을 더 편리한 시간에 스케줄링할 뿐만 아니라, 개재 판독 및/또는 기록 요청들에 기초하여, 데이터의 상대 상태(예를 들어, 데이터가 핫 판독 데이터 및/또는 핫 기록 데이터로 간주될 수 있는지)를 결정할 수 있게 할 수 있다. 실제로, 지연은 주어진 논리 어드레스에 대한 갱신된 데이터가 시간 간격 동안 수신되면 불필요한 검증 동작들이 수행되는 것을 허용한다.
핫 데이터(핫 판독 데이터이든 핫 기록 데이터이든)로서 어떤 데이터의 표시는 또한 추론적 리드 풀들(read pulls), 해시 값들의 사용 및 빠른(슬로피) 기록들의 사용과 같은, 적절한 캐싱 정책들 및 기록 전략들의 구현을 허용한다. 기록 증폭이 감소될 수 있으며, 이는 유효 데이터 I/O 속도들을 증가시키고 웨어를 NV 메인 메모리 상에서 감소시키는 경향이 있을 수 있다.
반드시 제한적인 것은 아니지만, RRAM, STRAM, PCRAM 등과 같지만 이들에 제한되지 않는 재기록가능 NV 버퍼는 소거가능 플래시 메모리와 같은, 상이한 구성으로 이루어진 NV 메인 메모리의 동작 성능을 유리하게 확장시킬 수 있는 것이 고려된다. 다른 타입들의 버퍼 및 메인 메모리가 사용될 수 있다.
본 개시의 다양한 실시예들의 다수의 특성들 및 장점들은 구조적 및 기능적 상세들과 함께, 이전 설명에 진술되었다. 그럼에도 불구하고, 이 상세한 설명은 단지 예시적이고, 변경들은 특히 첨부된 청구항들이 표현되는 용어들의 넓은 일반적 의미에 의해 표시되는 전체 범위까지 본 개시의 원리들 내에서 부분들의 구조 및 배열들에 관하여, 상세히 이루어질 수 있다.

Claims (25)

  1. 장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법으로서,
    입력 기록 데이터를 비휘발성(NV) 버퍼에 저장하는 단계 ― 상기 입력 기록 데이터는 연관된 논리 어드레스를 가짐 ―;
    저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하는 단계; 및
    상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하는 단계를 포함하고,
    상기 수행하는 단계의 검증 동작은 상기 NV 버퍼 내의 입력 기록 데이터와 연관되는 개재 기록 요청의 부재에 대응하여 수행되고, 상기 NV 버퍼 내의 입력 기록 데이터와 연관되는 개재 기록 요청의 존재에 대응하여, 상기 검증 동작은 수행되지 않는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 NV 버퍼는 재기록가능 고체 상태 메모리이고 상기 NV 메인 메모리는 소거가능 고체 상태 메모리인,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 재기록가능 고체 상태 메모리는 스핀 토크 랜덤 액세스 메모리(STRAM), 저항 랜덤 액세스 메모리(RRAM) 또는 상 변화 랜덤 액세스 메모리(PCRAM) 중 선택된 하나이고, 상기 소거가능 고체 상태 메모리는 플래시 메모리인,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 경과 시간 간격 동안 및 상기 검증 동작 전에 수신되는 판독 요청에 대응하여 상기 입력 기록 데이터의 카피를 상기 NV 버퍼로부터 호스트 디바이스로 전송하는 단계, 및 상기 검증 동작이 성공적으로 종료된 후에 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하기 위해 캐시 유지 정책의 변경을 구현하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 구현하는 단계는 상기 판독 요청에 대응하여 상기 입력 기록 데이터와 공간적으로 및/또는 시간적으로 관련된 제 2 데이터 세트를 상기 NV 버퍼에 전송하는 단계를 포함하는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 미리 결정된 경과 시간 간격의 마지막 전에, 상기 NV 버퍼 내의 입력 기록 데이터와 상이한 연관된 논리 어드레스를 갖는 제 2 입력 기록 데이터 세트를 수신하는 단계, 및 상기 제 2 입력 기록 데이터 세트에 대한 저장, 전송, 개시 및 수행하는 단계들을 반복하는 단계를 더 포함하며, 상기 검증 동작은 상기 NV 버퍼 내의 입력 기록 데이터를 위해 수행되지 않는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 입력 기록 데이터에 대응하는 선택된 해시 함수를 사용하여 해시 값을 발생시키는 단계, 상기 해시 값을 상기 NV 메인 메모리에 저장하는 단계, 및 상기 연관된 논리 어드레스를 공유하는 제 2 입력 기록 데이터 세트의 수신을 수반하는 후속 기록 거부 프로세스에서 저장된 상기 해시 값을 사용하는 단계를 더 포함하는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  9. 제 1 항에 있어서,
    상기 전송하는 단계는 상기 연관된 논리 어드레스를 공유하는 입력 기록 데이터 세트의 수신 빈도에 대응하는 슬로피 기록 프로세스를 사용하여 상기 입력 기록 데이터를 전송하는 단계를 포함하는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  10. 제 1 항에 있어서,
    상기 미리 결정된 경과 시간 간격을 미리 선택된 양의 경과 시간에 대해 표시하는 타이머를 개시하는 단계를 더 포함하는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 미리 선택된 양의 경과 시간은 상기 비휘발성 메인 메모리와 연관되는 완화 시간 간격을 초과하기 위해 선택되는,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  12. 제 10 항에 있어서,
    상기 타이머는 호스트 디바이스로부터의 X개의 액세스 커맨드들의 수신에 대응하여 상기 미리 결정된 경과 시간 간격을 종료시키며, X는 복수의 정수인,
    장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법.
  13. 데이터 저장 디바이스에서 데이터를 관리하기 위한 장치로서,
    선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응되는 비휘발성(NV) 버퍼;
    저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하도록 적응되는 기록 회로;
    상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하도록 적응되는 검증 회로; 및
    갱신된 상기 입력 기록 데이터에 대응하여 해시 값을 발생시키는 해시 발생기를 포함하며,
    상기 기록 회로는 발생된 상기 해시 값을 상기 NV 메인 메모리에 저장하고,
    상기 선택된 논리 어드레스를 갖는 갱신된 입력 기록 데이터의 경과 시간 간격 동안의 수신에 대응하여, 상기 검증 회로는 상기 검증 동작을 취소하고, 상기 NV 버퍼는 상기 갱신된 입력 기록 데이터를 저장하며, 상기 기록 회로는 상기 갱신된 입력 기록 데이터의 카피를 상기 NV 메인 메모리에 전송하며, 그리고 상기 검증 회로는 상기 NV 메인 메모리 내의 발생된 해시 값과 상기 NV 버퍼 내의 갱신된 입력 기록 데이터에 대응하여 발생되는 제 2 발생된 해시 값의 비교의 대응하여 상기 갱신된 입력 기록 데이터에 따라 검증 동작을 수행하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 제 13 항에 있어서,
    상기 선택된 논리 어드레스를 갖는 데이터를 요청하는 판독 요청의 수신에 대응하여, 상기 입력 기록 데이터의 카피를 출력을 위해 상기 NV 버퍼로부터 호스트로 전송하고 상기 검증 동작의 성공적인 종료 후에 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하기 위해 캐시 유지 정책을 구현하는 판독 회로를 더 포함하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  18. 제 17 항에 있어서,
    상기 판독 회로는 상기 판독 요청에 대응하여 상기 입력 기록 데이터와 공간적으로 및/또는 시간적으로 관련된 제 2 데이터 세트의 카피를 상기 NV 버퍼에 더 전송하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  19. 제 13 항에 있어서,
    상기 NV 메인 메모리는 복수의 플래시 메모리 셀들을 포함하는 플래시 메모리를 포함하고, 상기 기록 회로는 축적된 전하를 상기 플래시 메모리 셀들의 선택된 세트의 부동 게이트 구조 상에 저장함으로써 상기 입력 기록 데이터의 카피를 상기 플래시 메모리 셀들의 선택된 세트에 저장하는 차지펌프를 더 포함하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 차지펌프는 빠른 슬로피 기록 프로세스에 따라 및 느린 정상 기록 프로세스에 따라 상기 축적된 전하를 대안적으로 저장하도록 적응되고, 상기 차지펌프는 핫 데이터로서의 상기 입력 기록 데이터의 분류를 표시하는 제어 신호에 대응하는 상기 빠른 슬로피 기록 프로세스를 사용하여 상기 축적된 전하를 저장하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  21. 제 13 항에 있어서,
    상기 NV 메인 메모리로의 상기 입력 기록 데이터의 카피의 전송에 대응하여 상기 미리 결정된 경과 시간 간격을 표시하기 위해 카운트를 개시하도록 적응되는 타이머 회로를 더 포함하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  22. 제 21 항에 있어서,
    상기 타이머 회로는 상기 미리 결정된 경과 시간 간격을 미리 선택된 양의 경과 시간의 흐름에 대해 표시하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  23. 제 21 항에 있어서,
    상기 타이머 회로는 호스트 디바이스로부터의 X개의 액세스 커맨드들의 수신에 대응하여 상기 미리 결정된 경과 시간 간격을 종료시키며, X는 복수의 정수인,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  24. 제 13 항에 있어서,
    상기 미리 결정된 경과 시간 간격은 수신된 액세스 커맨드들의 워크로드 비율(rate)에 대해 변화되는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
  25. 데이터 저장 디바이스에서 데이터를 관리하기 위한 장치로서,
    CAM(content addressable memory)으로 배열되는 복수의 재기록가능 비휘발성 메모리 셀들을 포함하고 선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응되는 비휘발성(NV) 버퍼;
    복수의 소거가능 플래시 메모리 셀들을 포함하는 NV 메인 메모리;
    저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 상기 NV 메인 메모리에 전송하도록 적응되는 기록 회로;
    미리 결정된 경과 시간 간격을 디마킹하는(demarking) 것을 개시하도록 적응되는 타이머 회로; 및
    상기 선택된 논리 어드레스를 갖는 갱신된 기록 데이터의 미리 결정된 경과 시간 간격 동안의 수신에 대응하여, 상기 타이머 회로에게 상기 미리 결정된 경과 시간 간격의 디마킹을 중단하라고 명령하고 상기 갱신된 기록 데이터에 대한 제 2 미리 결정된 경과 시간 간격을 디마킹하는 것을 개시하기 위해 상기 타이머 회로를 재초기화하는 검증 회로를 포함하고,
    상기 검증 회로는, 상기 선택된 논리 어드레스를 갖는 갱신된 기록 데이터의 미리 결정된 경과 시간 간격 동안의 부재에 대응하여, 상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 상기 미리 결정된 경과 시간 간격의 마지막에 수행하는,
    데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
KR1020140012586A 2013-02-07 2014-02-04 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지 KR101563482B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/762,033 US9076530B2 (en) 2013-02-07 2013-02-07 Non-volatile write buffer data retention pending scheduled verification
US13/762,033 2013-02-07

Publications (2)

Publication Number Publication Date
KR20140100899A KR20140100899A (ko) 2014-08-18
KR101563482B1 true KR101563482B1 (ko) 2015-10-27

Family

ID=51259105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012586A KR101563482B1 (ko) 2013-02-07 2014-02-04 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지

Country Status (4)

Country Link
US (1) US9076530B2 (ko)
JP (1) JP5778807B2 (ko)
KR (1) KR101563482B1 (ko)
CN (1) CN103985411B (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424946B2 (en) * 2013-02-08 2016-08-23 Seagate Technology Llc Non-volatile buffering to enable sloppy writes and fast write verification
TWI516927B (zh) * 2013-06-14 2016-01-11 群聯電子股份有限公司 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9208023B2 (en) * 2013-12-23 2015-12-08 Sandisk Technologies Inc. Systems and methods for scheduling post-write read in nonvolatile memory
US9978432B2 (en) * 2014-12-22 2018-05-22 Intel Corporation Write operations in spin transfer torque memory
WO2016101115A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种资源调度方法以及相关装置
KR102292217B1 (ko) * 2015-02-06 2021-08-24 삼성전자주식회사 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템
JP2016181312A (ja) * 2015-03-23 2016-10-13 ルネサスエレクトロニクス株式会社 半導体装置およびその動作方法
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
KR102535700B1 (ko) * 2016-02-01 2023-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10255208B2 (en) 2016-03-04 2019-04-09 Toshiba Memory Corporation Data transfer apparatus and data transfer system
KR102595233B1 (ko) * 2016-03-24 2023-10-30 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작 방법
US10007462B1 (en) 2016-03-31 2018-06-26 EMC IP Holding Company LLC Method and system for adaptive data migration in solid state memory
US10983704B1 (en) 2016-05-20 2021-04-20 Emc Corporation Method and system for adaptive wear leveling in solid state memory
US11348072B2 (en) 2016-09-26 2022-05-31 Microsoft Technology Licensing, Llc Techniques for sharing electronic calendars between mailboxes in an online application and collaboration service
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10366774B2 (en) * 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10622089B2 (en) 2016-10-18 2020-04-14 Toshiba Memory Corporation Storage system having a host that manages physical data locations of storage device
US10353601B2 (en) * 2016-11-28 2019-07-16 Arm Limited Data movement engine
CN109164976B (zh) * 2016-12-21 2021-12-31 北京忆恒创源科技股份有限公司 利用写缓存优化存储设备性能
US10416904B1 (en) 2016-12-30 2019-09-17 EMC IP Holding Company LLC Method and system for recovering storage object records in solid state memory
US10599342B2 (en) 2016-12-30 2020-03-24 EMC IP Holding Company LLC Method and system for offset mirroring in a storage system
KR102646755B1 (ko) * 2017-01-06 2024-03-11 삼성전자주식회사 저항 변화 물질을 포함하는 메모리 장치 및 그 구동 방법
US10922661B2 (en) * 2017-03-27 2021-02-16 Microsoft Technology Licensing, Llc Controlling a computing system to generate a pre-accept cache for calendar sharing
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
US10090067B1 (en) * 2017-05-30 2018-10-02 Seagate Technology Llc Data storage device with rewritable in-place memory
US10147501B1 (en) * 2017-05-30 2018-12-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
US10585800B2 (en) * 2017-06-16 2020-03-10 International Business Machines Corporation Reducing cache transfer overhead in a system
KR102398186B1 (ko) * 2017-07-03 2022-05-17 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법
JP2019029045A (ja) * 2017-07-26 2019-02-21 東芝メモリ株式会社 半導体記憶装置
US10572359B2 (en) 2017-09-05 2020-02-25 International Business Machines Corporation Validation of data written via two different bus interfaces to a dual server based storage controller
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
CN108491160B (zh) * 2018-03-13 2021-11-26 北京奇艺世纪科技有限公司 一种数据写入方法及装置
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10529915B2 (en) 2018-03-23 2020-01-07 Spin Memory, Inc. Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
JP2020021385A (ja) 2018-08-03 2020-02-06 キオクシア株式会社 メモリシステム
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
KR102564774B1 (ko) * 2018-09-18 2023-08-09 에스케이하이닉스 주식회사 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US11182090B2 (en) 2018-11-19 2021-11-23 Micron Technology, Inc. Systems, devices, and methods for data migration
US11163473B2 (en) 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
US11256437B2 (en) * 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation
CN109710452A (zh) * 2018-12-06 2019-05-03 天津津航计算技术研究所 带数据调试功能的ecc存储控制系统
US11822489B2 (en) * 2018-12-21 2023-11-21 Micron Technology, Inc. Data integrity protection for relocating data in a memory system
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN109799961A (zh) * 2019-01-24 2019-05-24 杭州嘉楠耘智信息科技有限公司 电路架构
CN112003815A (zh) * 2019-05-27 2020-11-27 阿里巴巴集团控股有限公司 通信系统、方法和装置、定位系统、计算设备和存储介质
EP3857371A1 (en) * 2019-12-19 2021-08-04 Google LLC Resource management unit for capturing operating system configuration states and memory management
WO2021126216A1 (en) 2019-12-19 2021-06-24 Google Llc Resource management unit for capturing operating system configuration states and offloading tasks
CN112071347B (zh) * 2020-09-08 2024-01-16 清华大学 阻变存储器的操作方法、存储装置的控制方法和存储装置
US11656938B2 (en) * 2020-09-28 2023-05-23 Micron Technology, Inc. Preemptive read verification after hardware write back
KR102351237B1 (ko) * 2021-04-29 2022-01-13 삼성전자주식회사 메모리 저장 장치 및 통신 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301591A (ja) 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
WO2007105688A1 (ja) 2006-03-16 2007-09-20 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2009043397A (ja) 2007-08-09 2009-02-26 Samsung Electronics Co Ltd Nandフラッシュメモリ装置及びそのプログラム方法
JP2009252294A (ja) 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203886A (ja) 1998-01-13 1999-07-30 Mitsubishi Electric Corp 不揮発性メモリおよびそれを具備する半導体装置
US20020029354A1 (en) 2000-08-23 2002-03-07 Seagate Technology Llc Non-volatile write cache, in a disc drive, using an alternate power source
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US20040128414A1 (en) 2002-12-30 2004-07-01 Rudelic John C. Using system memory as a write buffer for a non-volatile memory
KR100632944B1 (ko) * 2004-05-31 2006-10-12 삼성전자주식회사 동작 모드에 따라 프로그램 전압의 증가분을 가변할 수있는 불 휘발성 메모리 장치
KR100725390B1 (ko) 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
EP1901306A4 (en) 2005-05-30 2009-03-04 Seiko Epson Corp A VERIFY PROCESSING IN A SEQUENTIAL WRITING PROCESSING NON-VOLATILE MEMORY
JP2008134685A (ja) * 2006-11-27 2008-06-12 Konica Minolta Business Technologies Inc 不揮発メモリシステム及び不揮発メモリ制御方法
US9632561B2 (en) * 2007-06-28 2017-04-25 Apple Inc. Power-gating media decoders to reduce power consumption
KR101532529B1 (ko) 2007-12-21 2015-06-29 램버스 인코포레이티드 메모리 시스템 내 기록 타이밍을 교정하기 위한 방법 및 장치
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8769188B2 (en) * 2009-11-18 2014-07-01 Mediatek Inc. Nonvolatile memory controller and method for writing data to nonvolatile memory
US8745320B2 (en) * 2012-05-04 2014-06-03 Riverbed Technology, Inc. Ensuring write operation consistency using multiple storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301591A (ja) 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
WO2007105688A1 (ja) 2006-03-16 2007-09-20 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2009043397A (ja) 2007-08-09 2009-02-26 Samsung Electronics Co Ltd Nandフラッシュメモリ装置及びそのプログラム方法
JP2009252294A (ja) 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法

Also Published As

Publication number Publication date
US20140219034A1 (en) 2014-08-07
JP2014154168A (ja) 2014-08-25
US9076530B2 (en) 2015-07-07
CN103985411B (zh) 2017-04-12
JP5778807B2 (ja) 2015-09-16
KR20140100899A (ko) 2014-08-18
CN103985411A (zh) 2014-08-13

Similar Documents

Publication Publication Date Title
KR101563482B1 (ko) 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지
US9043668B2 (en) Using ECC data for write deduplication processing
KR102009003B1 (ko) 다중 계층 메모리 구조에 에러 정정 코드(ecc) 데이터의 저장
US9424946B2 (en) Non-volatile buffering to enable sloppy writes and fast write verification
JP6027059B2 (ja) メモリ内のデータを管理するための方法および装置
US9229644B2 (en) Targeted copy of data relocation
US20140229654A1 (en) Garbage Collection with Demotion of Valid Data to a Lower Memory Tier
US20140241071A1 (en) Fast Power Loss Recovery By Swapping Boot and Recovery Data Sets in a Memory
US20140244897A1 (en) Metadata Update Management In a Multi-Tiered Memory
CN103106149B (zh) 半导体器件
US9099185B2 (en) Using different programming modes to store data to a memory cell
CN109947663A (zh) 分布式编程操作
US20230039381A1 (en) Triggering a refresh for non-volatile memory
US20220301645A1 (en) Method and System for Improving Word Line Data Retention for Memory Blocks
US9053011B2 (en) Selective protection of lower page data during upper page write
US11755237B2 (en) Overwriting at a memory system
US11561725B2 (en) System and operating method thereof
CN113157486A (zh) 一种存储器的纠错方法及装置
US11605434B1 (en) Overwriting at a memory system
US11275524B2 (en) Memory system, memory controller, and operation method of memory system
US11579772B2 (en) Managing page retirement for non-volatile memory
US20240054037A1 (en) Common rain buffer for multiple cursors
US20220300187A1 (en) Memory system and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee