KR101563482B1 - 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지 - Google Patents
스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지 Download PDFInfo
- 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
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0007—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0064—Verifying circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- 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/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
Abstract
데이터를 메모리에서 관리하는 방법 및 장치가 개시된다. 일부 실시예들에 따르면, 비휘발성(NV) 버퍼는 선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응된다. 기록 회로는 저장된 입력 기록 데이터를 NV 버퍼에서 유지하면서 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하도록 적응된다. 검증 회로는 NV 메인 메모리에 대한 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하도록 적응된다. 입력 기록 데이터는 성공적인 전송이 검증될 때까지 NV 버퍼에서 유지된다.
Description
본 개시의 다양한 실시예들은 일반적으로 데이터를 데이터 저장 장치에서 관리하는 것에 관한 것이다.
일부 실시예들에 따르면, 비휘발성(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은 본 개시의 다양한 실시예들에 따라 수행될 수 있는 단계들을 일반적으로 나타내는 데이터 기록 루틴이다.
도 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)
- 장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법으로서,
입력 기록 데이터를 비휘발성(NV) 버퍼에 저장하는 단계 ― 상기 입력 기록 데이터는 연관된 논리 어드레스를 가짐 ―;
저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하는 단계; 및
상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하는 단계를 포함하고,
상기 수행하는 단계의 검증 동작은 상기 NV 버퍼 내의 입력 기록 데이터와 연관되는 개재 기록 요청의 부재에 대응하여 수행되고, 상기 NV 버퍼 내의 입력 기록 데이터와 연관되는 개재 기록 요청의 존재에 대응하여, 상기 검증 동작은 수행되지 않는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 1 항에 있어서,
상기 NV 버퍼는 재기록가능 고체 상태 메모리이고 상기 NV 메인 메모리는 소거가능 고체 상태 메모리인,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 2 항에 있어서,
상기 재기록가능 고체 상태 메모리는 스핀 토크 랜덤 액세스 메모리(STRAM), 저항 랜덤 액세스 메모리(RRAM) 또는 상 변화 랜덤 액세스 메모리(PCRAM) 중 선택된 하나이고, 상기 소거가능 고체 상태 메모리는 플래시 메모리인,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 삭제
- 제 1 항에 있어서,
상기 경과 시간 간격 동안 및 상기 검증 동작 전에 수신되는 판독 요청에 대응하여 상기 입력 기록 데이터의 카피를 상기 NV 버퍼로부터 호스트 디바이스로 전송하는 단계, 및 상기 검증 동작이 성공적으로 종료된 후에 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하기 위해 캐시 유지 정책의 변경을 구현하는 단계를 더 포함하는 방법. - 제 5 항에 있어서,
상기 구현하는 단계는 상기 판독 요청에 대응하여 상기 입력 기록 데이터와 공간적으로 및/또는 시간적으로 관련된 제 2 데이터 세트를 상기 NV 버퍼에 전송하는 단계를 포함하는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 1 항에 있어서,
상기 미리 결정된 경과 시간 간격의 마지막 전에, 상기 NV 버퍼 내의 입력 기록 데이터와 상이한 연관된 논리 어드레스를 갖는 제 2 입력 기록 데이터 세트를 수신하는 단계, 및 상기 제 2 입력 기록 데이터 세트에 대한 저장, 전송, 개시 및 수행하는 단계들을 반복하는 단계를 더 포함하며, 상기 검증 동작은 상기 NV 버퍼 내의 입력 기록 데이터를 위해 수행되지 않는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 1 항에 있어서,
상기 입력 기록 데이터에 대응하는 선택된 해시 함수를 사용하여 해시 값을 발생시키는 단계, 상기 해시 값을 상기 NV 메인 메모리에 저장하는 단계, 및 상기 연관된 논리 어드레스를 공유하는 제 2 입력 기록 데이터 세트의 수신을 수반하는 후속 기록 거부 프로세스에서 저장된 상기 해시 값을 사용하는 단계를 더 포함하는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 1 항에 있어서,
상기 전송하는 단계는 상기 연관된 논리 어드레스를 공유하는 입력 기록 데이터 세트의 수신 빈도에 대응하는 슬로피 기록 프로세스를 사용하여 상기 입력 기록 데이터를 전송하는 단계를 포함하는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 1 항에 있어서,
상기 미리 결정된 경과 시간 간격을 미리 선택된 양의 경과 시간에 대해 표시하는 타이머를 개시하는 단계를 더 포함하는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 10 항에 있어서,
상기 미리 선택된 양의 경과 시간은 상기 비휘발성 메인 메모리와 연관되는 완화 시간 간격을 초과하기 위해 선택되는,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 제 10 항에 있어서,
상기 타이머는 호스트 디바이스로부터의 X개의 액세스 커맨드들의 수신에 대응하여 상기 미리 결정된 경과 시간 간격을 종료시키며, X는 복수의 정수인,
장치에 의해 수행되는, 데이터 저장 디바이스에서 데이터를 관리하기 위한 방법. - 데이터 저장 디바이스에서 데이터를 관리하기 위한 장치로서,
선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응되는 비휘발성(NV) 버퍼;
저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 NV 메인 메모리에 전송하도록 적응되는 기록 회로;
상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 미리 결정된 경과 시간 간격의 마지막에 수행하도록 적응되는 검증 회로; 및
갱신된 상기 입력 기록 데이터에 대응하여 해시 값을 발생시키는 해시 발생기를 포함하며,
상기 기록 회로는 발생된 상기 해시 값을 상기 NV 메인 메모리에 저장하고,
상기 선택된 논리 어드레스를 갖는 갱신된 입력 기록 데이터의 경과 시간 간격 동안의 수신에 대응하여, 상기 검증 회로는 상기 검증 동작을 취소하고, 상기 NV 버퍼는 상기 갱신된 입력 기록 데이터를 저장하며, 상기 기록 회로는 상기 갱신된 입력 기록 데이터의 카피를 상기 NV 메인 메모리에 전송하며, 그리고 상기 검증 회로는 상기 NV 메인 메모리 내의 발생된 해시 값과 상기 NV 버퍼 내의 갱신된 입력 기록 데이터에 대응하여 발생되는 제 2 발생된 해시 값의 비교의 대응하여 상기 갱신된 입력 기록 데이터에 따라 검증 동작을 수행하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 삭제
- 삭제
- 삭제
- 제 13 항에 있어서,
상기 선택된 논리 어드레스를 갖는 데이터를 요청하는 판독 요청의 수신에 대응하여, 상기 입력 기록 데이터의 카피를 출력을 위해 상기 NV 버퍼로부터 호스트로 전송하고 상기 검증 동작의 성공적인 종료 후에 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하기 위해 캐시 유지 정책을 구현하는 판독 회로를 더 포함하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 17 항에 있어서,
상기 판독 회로는 상기 판독 요청에 대응하여 상기 입력 기록 데이터와 공간적으로 및/또는 시간적으로 관련된 제 2 데이터 세트의 카피를 상기 NV 버퍼에 더 전송하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 13 항에 있어서,
상기 NV 메인 메모리는 복수의 플래시 메모리 셀들을 포함하는 플래시 메모리를 포함하고, 상기 기록 회로는 축적된 전하를 상기 플래시 메모리 셀들의 선택된 세트의 부동 게이트 구조 상에 저장함으로써 상기 입력 기록 데이터의 카피를 상기 플래시 메모리 셀들의 선택된 세트에 저장하는 차지펌프를 더 포함하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 19 항에 있어서,
상기 차지펌프는 빠른 슬로피 기록 프로세스에 따라 및 느린 정상 기록 프로세스에 따라 상기 축적된 전하를 대안적으로 저장하도록 적응되고, 상기 차지펌프는 핫 데이터로서의 상기 입력 기록 데이터의 분류를 표시하는 제어 신호에 대응하는 상기 빠른 슬로피 기록 프로세스를 사용하여 상기 축적된 전하를 저장하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 13 항에 있어서,
상기 NV 메인 메모리로의 상기 입력 기록 데이터의 카피의 전송에 대응하여 상기 미리 결정된 경과 시간 간격을 표시하기 위해 카운트를 개시하도록 적응되는 타이머 회로를 더 포함하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 21 항에 있어서,
상기 타이머 회로는 상기 미리 결정된 경과 시간 간격을 미리 선택된 양의 경과 시간의 흐름에 대해 표시하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 21 항에 있어서,
상기 타이머 회로는 호스트 디바이스로부터의 X개의 액세스 커맨드들의 수신에 대응하여 상기 미리 결정된 경과 시간 간격을 종료시키며, X는 복수의 정수인,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 제 13 항에 있어서,
상기 미리 결정된 경과 시간 간격은 수신된 액세스 커맨드들의 워크로드 비율(rate)에 대해 변화되는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치. - 데이터 저장 디바이스에서 데이터를 관리하기 위한 장치로서,
CAM(content addressable memory)으로 배열되는 복수의 재기록가능 비휘발성 메모리 셀들을 포함하고 선택된 논리 어드레스를 갖는 입력 기록 데이터를 저장하도록 적응되는 비휘발성(NV) 버퍼;
복수의 소거가능 플래시 메모리 셀들을 포함하는 NV 메인 메모리;
저장된 상기 입력 기록 데이터를 상기 NV 버퍼에서 유지하는 동안 상기 입력 기록 데이터의 카피를 상기 NV 메인 메모리에 전송하도록 적응되는 기록 회로;
미리 결정된 경과 시간 간격을 디마킹하는(demarking) 것을 개시하도록 적응되는 타이머 회로; 및
상기 선택된 논리 어드레스를 갖는 갱신된 기록 데이터의 미리 결정된 경과 시간 간격 동안의 수신에 대응하여, 상기 타이머 회로에게 상기 미리 결정된 경과 시간 간격의 디마킹을 중단하라고 명령하고 상기 갱신된 기록 데이터에 대한 제 2 미리 결정된 경과 시간 간격을 디마킹하는 것을 개시하기 위해 상기 타이머 회로를 재초기화하는 검증 회로를 포함하고,
상기 검증 회로는, 상기 선택된 논리 어드레스를 갖는 갱신된 기록 데이터의 미리 결정된 경과 시간 간격 동안의 부재에 대응하여, 상기 NV 메인 메모리에 대한 상기 입력 기록 데이터의 카피의 성공적인 전송을 검증하기 위해 검증 동작을 상기 미리 결정된 경과 시간 간격의 마지막에 수행하는,
데이터 저장 디바이스에서 데이터를 관리하기 위한 장치.
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)
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)
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)
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 |
-
2013
- 2013-02-07 US US13/762,033 patent/US9076530B2/en not_active Expired - Fee Related
-
2014
- 2014-02-04 KR KR1020140012586A patent/KR101563482B1/ko not_active IP Right Cessation
- 2014-02-06 JP JP2014021698A patent/JP5778807B2/ja not_active Expired - Fee Related
- 2014-02-07 CN CN201410045411.2A patent/CN103985411B/zh not_active Expired - Fee Related
Patent Citations (4)
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 |