KR20180051706A - 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 - Google Patents

어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 Download PDF

Info

Publication number
KR20180051706A
KR20180051706A KR1020160147679A KR20160147679A KR20180051706A KR 20180051706 A KR20180051706 A KR 20180051706A KR 1020160147679 A KR1020160147679 A KR 1020160147679A KR 20160147679 A KR20160147679 A KR 20160147679A KR 20180051706 A KR20180051706 A KR 20180051706A
Authority
KR
South Korea
Prior art keywords
address
target
address mapping
mapping table
mapping data
Prior art date
Application number
KR1020160147679A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020160147679A priority Critical patent/KR20180051706A/ko
Priority to US15/718,143 priority patent/US10635530B2/en
Priority to CN201710970039.XA priority patent/CN108073470B/zh
Publication of KR20180051706A publication Critical patent/KR20180051706A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

본 발명에 따른 메모리 시스템은 불휘발성 메모리 장치, 상기 불휘발성 메모리 장치의 어드레스 맵핑 테이블을 저장하는 동적 랜덤 액세스 메모리, 그리고 상기 동적 랜덤 액세스 메모리의 입출력 단위 크기를 가지는 어드레스 맵핑 데이터 단위로 상기 어드레스 맵핑 테이블을 구분하여 상기 동적 랜덤 액세스 메모리에 저장하는 컨트롤러를 포함하되, 상기 컨트롤러는 호스트로부터 수신된 논리 어드레스에 대응하는 목표 어드레스 맵핑 데이터를 독출하여 상기 목표 어드레스 맵핑 데이터에 포함된 목표 패리티를 이용하여 상기 목표 어드레스 맵핑 데이터의 에러 정정 동작을 수행하고, 상기 목표 어드레스 맵핑 데이터는 상기 불휘발성 메모리 장치의 복수의 물리 어드레스들 및 상기 목표 패리티를 포함한다.

Description

어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템{MEMORY SYSTEM PERFORMING ERROR CORRECTION OF ADDRESS MAPPING TABLE}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치(Semiconductor Memory Device)는 크게 휘발성 메모리 장치(Volatile Memory Device)와 불 휘발성 메모리 장치(Non-volatile Memory Device)로 구분된다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불 휘발성 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 불 휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 특히, 불 휘발성 메모리 중에서 플래시 메모리(Flash memory)는 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다.
기술의 진보와 플래시 메모리 장치의 가격 인하에 따라 플래시 메모리를 하드 디스크 드라이브(HDD)를 대체하기 위한 저장 매체로 사용되고 있다. 플래시 메모리를 이용한 저장 장치는 다양하게 제조되고 있다. 이러한 저장 장치는 솔리드 스테이트 드라이브(Solid State Drive: SSD), SD카드 등으로 다양하게 제조되고 있다. 저장 장치는 플래시 메모리를 제어하기 위한 컨트롤러를 포함한다.
컨트롤러는 호스트에서 사용되는 논리 어드레스와 플래시 메모리에서 사용되는 물리 어드레스를 관리하는 플래시 변환 계층을 포함한다. 플래시 변환 계층은 논리 어드레스를 물리 어드레스로 변환하기 위해 어드레스 맵핑 테이블을 관리한다. 컨트롤러는 보통 저장 장치에 저장되는 데이터의 에러 검출 및 정정을 수행할 수 있다. 또한, 컨트롤러는 중요한 어드레스 맵핑 테이블의 에러 검출 및 정정을 수행할 필요가 있다.
본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 동적 랜덤 액세스 메모리에 저장되는 불휘발성 메모리 장치의 어드레스 맵핑 테이블의 에러 검출 및 정정을 신속하게 수행하는 메모리 시스템을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 불휘발성 메모리 장치, 상기 불휘발성 메모리 장치의 어드레스 맵핑 테이블을 저장하는 동적 랜덤 액세스 메모리, 그리고 상기 동적 랜덤 액세스 메모리의 입출력 단위 크기를 가지는 어드레스 맵핑 데이터 단위로 상기 어드레스 맵핑 테이블을 구분하여 상기 동적 랜덤 액세스 메모리에 저장하는 컨트롤러를 포함하되, 상기 컨트롤러는 호스트로부터 수신된 논리 어드레스에 대응하는 목표 어드레스 맵핑 데이터를 독출하여 상기 목표 어드레스 맵핑 데이터에 포함된 목표 패리티를 이용하여 상기 목표 어드레스 맵핑 데이터의 에러 정정 동작을 수행하고, 상기 목표 어드레스 맵핑 데이터는 상기 불휘발성 메모리 장치의 복수의 물리 어드레스들 및 상기 목표 패리티를 포함한다.
본 발명에 따른 메모리 시스템은 불휘발성 메모리 장치, 상기 불휘발성 메모리 장치의 어드레스 맵핑 테이블을 저장하는 동적 랜덤 액세스 메모리, 그리고 상기 동적 랜덤 액세스 메모리의 입출력 단위 크기를 가지는 어드레스 맵핑 데이터 단위로 상기 어드레스 맵핑 테이블을 구분하여 저장하고, 상기 불휘발성 메모리 장치를 액세스하는 경우 상기 액세스에 대응하는 목표 어드레스 맵핑 데이터의 에러 검출 및 정정 동작을 수행하는 컨트롤러를 포함하되, 상기 목표 어드레스 맵핑 데이터는 상기 불휘발성 메모리 장치의 복수의 물리 어드레스들 및 상기 물리 어드레스들에 대응하는 목표 패리티를 포함한다.
본 발명의 실시 예에 따르면, 메모리 시스템은 동적 랜덤 액세스 메모리에 저장되는 불휘발성 메모리 장치의 어드레스 맵핑 테이블의 에러 검출 및 정정을 수행하여 신뢰성을 확보할 수 있다. 또한, 메모리 시스템은 한번의 읽기 동작을 통해 어드레스 맵핑 테이블의 에러 검출 및 정정을 신속하게 수행할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 맵핑 테이블 에러 정정 회로의 동작을 보여주는 블록도이다.
도 3은 도 2의 맵핑 테이블 에러 정정 회로를 자세히 보여주는 블록도이다.
도 4는 하나의 어드레스 맵핑 데이터를 예시적으로 보여주는 도면이다.
도 5는 동적 랜덤 액세스 메모리에 저장된 어드레스 맵핑 테이블을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 어드레스 변환 동작을 보여주는 순서도이다.
도 7은 도 6의 어드레스 변환 동작을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 어드레스 쓰기 동작을 보여주는 순서도이다.
도 9는 도 8의 어드레스 쓰기 동작을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 SSD를 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 컨트롤러(110), 불휘발성 메모리 장치(120) 및 동적 랜덤 액세스 메모리(130)를 포함할 수 있다. 메모리 시스템(100)은 입출력 포트를 통해 호스트(Host)와 데이터를 교환할 수 있다. 메모리 시스템(100)은 호스트로부터 수신된 읽기/쓰기 요청에 응답하여 불휘발성 메모리 장치(120)에 데이터를 저장하거나 독출할 수 있다.
컨트롤러(110)는 호스트(Host)와 메모리 시스템(100) 사이의 물리적 연결을 제공한다. 즉, 컨트롤러(110)는 호스트(Host)의 버스 포맷(Bus Format)에 대응하여 메모리 시스템(100)과의 인터페이싱을 제공할 수 있다. 컨트롤러(110)는 펌웨어(Firmware)를 구동하여 메모리 시스템(100)을 제어할 수 있다. 컨트롤러(110)는 중앙 처리 장치(111), 동작 메모리(112), 불휘발성 메모리 에러 정정 회로(113), 호스트 인터페이스(114), 맵핑 테이블 에러 정정 회로(115) 및 불휘발성 메모리 인터페이스(116)를 포함할 수 있다.
중앙 처리 장치(111)는 컨트롤러(110)의 동작을 전반적으로 제어할 수 있다. 중앙 처리 장치(111)는 컨트롤러(110)를 제어하기 위한 펌웨어(Firmware)를 구동하도록 구성될 수 있다. 이러한 펌웨어(Firmware)는 동작 메모리(112)에 로딩되어 구동될 수 있다. 중앙 처리 장치(111)는 호스트(Host)로부터 전달되는 명령어를 디코딩할 수 있다. 중앙 처리 장치(111)는 명령어에 포함된 읽기나 쓰기와 같은 액세스 명령을 수행하도록 불휘발성 메모리 에러 정정 회로(113), 맵핑 테이블 에러 정정 회로(115) 또는 불휘발성 메모리 인터페이스(116)를 제어할 수 있다.
동작 메모리(112)에는 컨트롤러(110)를 제어하기 위한 펌웨어(Firmware) 및 데이터가 저장된다. 저장된 펌웨어(Firmware) 및 데이터는 중앙 처리 장치(111)에 의해 구동된다. 동작 메모리(112)는 캐시(Cache), DRAM, SRAM, PRAM, ROM, 플래시 메모리 장치들 중 적어도 하나를 포함할 수 있다. 동작 메모리(112)에는 플래시 변환 계층(Flash Translation Layer : FTL)이 저장될 수 있다.
불휘발성 메모리 장치(120)의 읽기/쓰기 동작은 페이지(Page) 단위로 수행되고, 소거 동작은 블록(Block) 단위로 수행된다. 이러한 불휘발성 메모리 장치(120)의 특징 때문에, 불휘발성 메모리 장치(120)의 읽기/쓰기/소거 동작에 대한 관리가 필요하다. 플래시 변환 계층(FTL)은 이러한 목적으로 개발된 시스템 소프트웨어(또는, 펌웨어)이다. 플래시 변환 계층(FTL)은 호스트로부터 요청되는 액세스(예를 들면, 읽기/쓰기 동작)에 응답하여 불휘발성 메모리 장치(120)가 동작될 수 있도록 관리한다. 예를 들어, 플래시 변환 계층(FTL)은 호스트에서 사용되는 논리 어드레스와 불휘발성 메모리 장치(120)에서 사용되는 물리 어드레스를 매치하는 어드레스 맵핑 테이블(Address Mapping Table; AMT)을 관리한다. 어드레스 맵핑 테이블(AMT)은 동적 랜덤 액세스 메모리(130)에 저장될 수 있다. 이러한 플래시 변환 계층(FTL)은 동작 메모리(112)에 로딩되어, 중앙 처리 장치(111)에 의해서 구동된다.
불휘발성 메모리 에러 정정 회로(113)는 쓰기 요청 시 동적 랜덤 액세스 메모리(130)에 저장된 데이터를 에러정정코드에 의해 디코딩할 수 있다. 이때, 디코딩된 데이터 및 이용된 에러정정코드 값은 불휘발성 메모리 장치(120)에 저장될 수 있다. 한편, 불휘발성 메모리 에러 정정 회로(113)는 읽기 요청 시 불휘발성 메모리 장치(120)로부터 읽혀진 데이터를 에러정정코드 값을 이용하여 복원시킬 수 있다. 여기서 에러정정코드 값은 읽혀진 데이터에 포함될 수 있다.
호스트 인터페이스(114)는 호스트와 메모리 시스템(100) 사이의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(114)는 호스트의 버스 포맷(Bus Format)에 대응하여 메모리 시스템(100)과의 인터페이싱을 제공할 수 있다. 예를 들면, 호스트의 버스 포맷은 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 하나 구성될 수 있다.
맵핑 테이블 에러 정정 회로(115)는 동적 랜덤 액세스 메모리(130)의 읽기 및 쓰기 동작들을 제어할 수 있다. 예를 들면, 맵핑 테이블 에러 정정 회로(115)는 호스트(Host)로부터 수신한 쓰기 데이터(Write data)를 동적 랜덤 액세스 메모리(130)에 일시 저장할 수 있다. 또한, 맵핑 테이블 에러 정정 회로(115)는 불휘발성 메모리 장치(120)로부터 독출한 읽기 데이터(Read data)를 동적 랜덤 액세스 메모리(130)에 일시 저장할 수 있다.
한편, 맵핑 테이블 에러 정정 회로(115)는 동적 랜덤 액세스 메모리(130)에 저장되는 어드레스 맵핑 테이블(AMT)의 에러 정정 동작을 수행할 수 있다. 예를 들면, 플래시 변환 계층(FTL)은 호스트에서 사용되는 논리 어드레스와 불휘발성 메모리 장치(120)에서 사용되는 물리 어드레스를 매치하는 어드레스 맵핑 테이블(AMT)을 관리할 수 있다. 어드레스 맵핑 테이블(AMT)은 호스트에서 사용되는 논리 어드레스를 불휘발성 메모리 장치(120)에서 사용되는 물리 어드레스로 변환하기 위해 사용될 수 있다. 어드레스 맵핑 테이블(AMT)은 불휘발성 메모리 장치(120)에 보관되고, 메모리 시스템(100)에 전원이 공급되면 동적 랜덤 액세스 메모리(130)에 로딩될 수 있다. 어드레스 맵핑 테이블(AMT)의 크기는 불휘발성 메모리 장치(120)의 용량에 비례하여 증가한다. 어드레스 맵핑 테이블(AMT)의 크기는 보통 동적 랜덤 액세스 메모리(130)의 용량의 80%를 차지할 수 있다. 따라서, 어드레스 맵핑 테이블(AMT)에 대한 에러 관리는 중요하고, 불휘발성 메모리 장치(120)에 저장되는 데이터와 별도로 어드레스 맵핑 테이블(AMT)에 대한 에러 정정 동작이 필요하다.
맵핑 테이블 에러 정정 회로(115)는 중앙 처리 장치(111)로부터 어드레스 변환 요청 또는 어드레스 쓰기 요청을 수신할 수 있다. 예를 들면, 중앙 처리 장치(111)가 호스트로부터 불휘발성 메모리 장치(120)에 저장된 데이터의 읽기 요청을 수신한 경우, 중앙 처리 장치(111)는 맵핑 테이블 에러 정정 회로(115)로 호스트의 읽기 요청에 대응하는 논리 어드레스에 대한 어드레스 변환 요청을 전송할 수 있다. 어드레스 변환 요청을 수신하면, 맵핑 테이블 에러 정정 회로(115)는 수신된 논리 어드레스에 대응하는 불휘발성 메모리 장치(120)의 물리 어드레스를 어드레스 맵핑 테이블(AMT)을 이용하여 획득할 수 있다. 이때 맵핑 테이블 에러 정정 회로(115)는 어드레스 맵핑 테이블(AMT)에서 요청된 물리 어드레스가 포함되는 부분의 에러 정정 동작을 수행할 수 있다.
한편, 중앙 처리 장치(111)가 호스트로부터 불휘발성 메모리 장치(120)에 대한 데이터의 쓰기 요청 또는 소거 요청을 수신한 경우, 중앙 처리 장치(111)는 맵핑 테이블 에러 정정 회로(115)로 호스트의 쓰기 또는 소거 요청에 대응하는 논리 어드레스에 대한 어드레스 쓰기 요청을 전송할 수 있다. 어드레스 쓰기 요청을 수신하면, 맵핑 테이블 에러 정정 회로(115)는 수신된 논리 어드레스에 대응하는 불휘발성 메모리 장치(120)의 물리 어드레스를 다른 물리 어드레스로 변경하거나 어드레스 맵핑을 삭제할 수 있다. 이때 맵핑 테이블 에러 정정 회로(115)는 어드레스 맵핑 테이블(AMT)에서 요청된 물리 어드레스가 포함되는 부분의 에러 정정 동작을 수행할 수 있다.
예를 들면, 맵핑 테이블 에러 정정 회로(115)는 1비트의 에러를 정정하고, 2비트의 에러를 검출할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 해밍 코드(Hamming Code)를 사용하여 에러를 정정할 수 있다. 하지만, 맵핑 테이블 에러 정정 회로(115)는 이것에 한정되지 않는다.
불휘발성 메모리 인터페이스(116)는 불휘발성 메모리 장치(120)와 데이터를 주고받는다. 예를 들면, 불휘발성 메모리 인터페이스(116)는 동적 랜덤 액세스 메모리(130)로부터 전달되는 데이터를 불휘발성 메모리 장치(120)로 전달할 수 있다. 그리고 불휘발성 메모리 장치(120)로부터 읽혀진 데이터는 불휘발성 메모리 인터페이스(116)에 의해서 동적 랜덤 액세스 메모리(130)로 전달될 수 있다.
불휘발성 메모리 장치(120)는 메모리 시스템(100)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(120)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 또한, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)가 포함될 수도 있다.
동적 랜덤 액세스 메모리(130)에는 호스트(Host)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리로부터 읽혀진 데이터가 일시 저장될 수 있다. 호스트의 읽기 요청 시에 불휘발성 메모리 장치(120)에 존재하는 데이터가 캐시되어 있는 경우에는, 동적 랜덤 액세스 메모리(130)는 캐시된 데이터를 직접 호스트로 제공하는 캐시 기능을 지원할 수 있다. 이때, 불휘발성 메모리 장치(120)로의 액세스는 발생하지 않는다. 일반적으로, 호스트의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 메모리 시스템(120)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트의 인터페이스 속도가 월등히 높은 경우, 대용량의 동적 랜덤 액세스 메모리(130)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다. 동적 랜덤 액세스 메모리(130)는 대용량의 보조 기억 장치로 사용되는 메모리 시스템(100)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 동적 랜덤 액세스 메모리(130)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
한편, 동적 랜덤 액세스 메모리(130)는 어드레스 맵핑 테이블(AMT)을 저장할 수 있다. 예를 들면, 어드레스 맵핑 테이블(AMT)은 호스트에서 사용되는 논리 어드레스를 불휘발성 메모리 장치(120)에서 사용되는 물리 어드레스로 변환하기 위해 사용될 수 있다. 어드레스 맵핑 테이블(AMT)은 불휘발성 메모리 장치(120)에 보관되고, 메모리 시스템(100)에 전원이 공급되면 동적 랜덤 액세스 메모리(130)에 로딩될 수 있다. 어드레스 맵핑 테이블(AMT)의 크기는 불휘발성 메모리 장치(120)의 용량에 비례하여 증가한다. 어드레스 맵핑 테이블(AMT)의 크기는 보통 동적 랜덤 액세스 메모리(130)의 용량의 80%를 차지할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템(100)는 불휘발성 메모리 장치(120)에 저장되는 데이터의 에러 정정 동작을 수행하는 불휘발성 메모리 에러 정정 회로(113)와 별도로 동적 랜덤 액세스 메모리(130)에 저장되어 플래시 변환 계층(FTL)에 의해 관리되는 어드레스 맵핑 테이블(AMT)의 에러 정정 동작을 수행하는 맵핑 테이블 에러 정정 회로(115)를 포함할 수 있다. 따라서, 메모리 시스템(100)는 불휘발성 메모리 장치(120)의 운영에 중요한 어드레스 맵핑 테이블(AMT)의 에러를 검출 및 정정할 수 있다. 따라서, 메모리 시스템(100)은 불휘발성 메모리 장치(120)의 액세스에 대한 신뢰성을 확보할 수 있다.
도 2는 본 발명의 실시 예에 따른 맵핑 테이블 에러 정정 회로의 동작을 보여주는 블록도이다. 도 2를 참조하면, 중앙 처리 장치(111)는 호스트로부터 불휘발성 메모리 장치(120)에 대한 액세스 요청을 수신할 수 있다. 예를 들면, 중앙 처리 장치(111)는 읽기 요청과 함께 논리 어드레스(Logical Address; LA)을 수신할 수 있다. 또는 중앙 처리 장치(111)는 쓰기 요청과 함께 논리 어드레스 및 물리 어드레스(Physical Address; PA)를 수신할 수 있다.
호스트로부터 읽기 요청을 수신한 경우, 중앙 처리 장치(111)는 수신된 논리 어드레스를 맵핑 테이블 에러 정정 회로(115)에 전송할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 동적 랜덤 액세스 메모리(130)로부터 수신된 논리 어드레스에 대응하는 어드레스 맵핑 데이터(Address Mapping Data; AM Data)를 읽어올 수 있다. 맵핑 테이블 에러 정정 회로(115)는 어드레스 맵핑 데이터에 포함된 패리티(Parity)를 이용하여 어드레스 맵핑 데이터의 에러 정정 동작을 수행할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 에러 정정 동작을 수행한 후 논리 어드레스에 대응하는 물리 어드레스를 어드레스 맵핑 데이터로부터 획득할 수 있다.
예를 들어, 어드레스 맵핑 데이터는 물리 어드레스 청크(Physical Address Chunk; PA Chunk) 및 패리티(Parity)를 포함할 수 있다. 물리 어드레스 청크는 불휘발성 메모리 장치(120)의 물리 어드레스들의 집합이다. 패리티는 물리 어드레스 청크에 따라 생성되고, 물리 어드레스 청크와 함께 하나의 어드레스 맵핑 데이터에 포함될 수 있다. 일 실시 예로서, 어드레스 맵핑 데이터의 크기는 동적 랜덤 액세스 메모리(130)의 입출력 단위 크기와 동일하게 정해질 수 있다. 또한, 어드레스 맵핑 데이터의 크기는 동적 랜덤 액세스 메모리(130)의 입출력 단위 크기보다 작게 정해질 수 있다. 하지만, 어드레스 맵핑 데이터의 크기는 이것에 한정되지 않는다. 어드레스 맵핑 데이터의 크기는 실시 예에 따라 가변적으로 설정될 수 있다. 어드레스 맵핑 테이블(AMT)은 복수의 어드레스 맵핑 데이터를 포함할 수 있다.
한편, 호스트로부터 쓰기 요청을 수신한 경우, 중앙 처리 장치(111)는 수신된 논리 어드레스 및 새로운 물리 어드레스를 맵핑 테이블 에러 정정 회로(115)에 전송할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 동적 랜덤 액세스 메모리(130)로부터 수신된 논리 어드레스에 대응하는 어드레스 맵핑 데이터를 읽어올 수 있다. 맵핑 테이블 에러 정정 회로(115)는 어드레스 맵핑 데이터에 포함된 패리티를 이용하여 어드레스 맵핑 데이터의 에러 정정 동작을 수행할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 에러 정정 동작을 수행한 후 논리 어드레스에 대응하는 물리 어드레스를 새로운 물리 어드레스로 변경할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 새로운 물리 어드레스를 포함하는 새로운 물리 어드레스 청크에 대응하는 새로운 패리티를 생성할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 새로운 물리 어드레스 청크 및 새로운 패리티를 결합하여 새로운 어드레스 맵핑 데이터를 동적 랜덤 액세스 메모리(130)에 저장할 수 있다. 맵핑 테이블 에러 정정 회로(115)는 새로운 어드레스 맵핑 데이터를 이전의 어드레스 맵핑 데이터에 덮어 쓸 수 있다.
도 3은 도 2의 맵핑 테이블 에러 정정 회로(115)를 자세히 보여주는 블록도이다. 도 3을 참조하면, 맵핑 테이블 에러 정정 회로(115)는 어드레스 처리 유닛(115_1), 맵핑 테이블 에러 정정 인코더(115_2) 및 맵핑 테이블 에러 정정 디코더(115_2)를 포함할 수 있다.
물리 어드레스를 인코딩하는 경우, 어드레스 처리 유닛(115_1)은 복수의 물리 어드레스들 수신하여 물리 어드레스 청크를 생성하거나 기존의 물리 어드레스 청크에서 수신된 물리 어드레스를 교체할 수 있다. 맵핑 테이블 에러 정정 인코더(115_2)는 이러한 물리 어드레스 청크에 대응하는 패리티를 생성할 수 있다. 또한, 맵핑 테이블 에러 정정 인코더(115_2)는 물리 어드레스 청크 및 패리티를 결합하여 어드레스 맵핑 데이터를 생성할 수 있다. 맵핑 테이블 에러 정정 인코더(115_2)는 생성된 어드레스 맵핑 데이터를 동적 랜덤 액세스 메모리(130)에 저장할 수 있다.
물리 어드레스를 디코딩하는 경우, 맵핑 테이블 에러 정정 디코더(115_3)는 동적 랜덤 액세스 메모리(130)에서 수신된 논리 어드레스에 대응하는 어드레스 맵핑 데이터를 읽을 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 어드레스 맵핑 데이터를 물리 어드레스 청크 및 패리티로 분리할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 패리티를 이용하여 물리 어드레스 청크의 에러 정정 동작을 수행할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 물리 어드레스 청크에 대하여 1비트 에러 정정하거나 2비트 에러를 검출할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 에러가 정정된 물리 어드레스 청크를 어드레스 처리 유닛(115_1)으로 전송할 수 있다. 어드레스 처리 유닛(115_1)은 물리 어드레스 청크에서 수신된 논리 어드레스에 대응하는 물리 어드레스를 획득할 수 있다. 어드레스 처리 유닛(115_1)는 획득된 물리 어드레스를 중앙 처리 장치(111)로 전송할 수 있다.
예시적으로, 물리 어드레스 및 패리티는 4바이트(byte)의 크기를 가질 수 있다. 물리 어드레스 청크는 7개의 물리 어드레스들을 포함하여 28바이트의 크기를 가질 수 있다. 어드레스 맵핑 데이터는 28바이트의 물리 어드레스 청크 및 4바이트의 패리티를 결합하여 32바이트의 크기를 가질 수 있다. 32바이트의 크기는 동적 랜덤 액세스 메모리(130)의 입출력 단위 크기와 동일할 수 있다. 하지만, 이는 예시적인 것으로 동적 랜덤 액세스 메모리(130)의 입출력 단위 크기에 따라 어드레스 맵핑 데이터의 크기는 변경될 수 있다. 또한, 하나의 물리 어드레스 청크에 포함되는 물리 어드레스들의 개수도 변경될 수 있다.
도 4는 하나의 어드레스 맵핑 데이터를 예시적으로 보여주는 도면이다. 도 4를 참조하면, 하나의 어드레스 맵핑 데이터(AM Data)는 제 1 내지 제 7 물리 어드레스들(PA1~PA7) 및 하나의 패리티를 포함할 수 있다. 예를 들면, 제 1 내지 제 7 물리 어드레스들(PA1~PA7)는 하나의 물리 어드레스 청크(PA Chunk)를 구성할 수 있다. 제 1 내지 제 7 물리 어드레스들(PA1~PA7) 각각과 패리티는 4바이트의 크기를 가질 수 있다. 따라서, 하나의 어드레스 맵핑 데이터는 32바이트의 크기를 가질 수 있고, 이것은 동적 랜덤 액세스 메모리(130)의 버스트 길이(burst length)와 동일할 수 있다. 즉, 동적 랜덤 액세스 메모리(130)의 입출력 단위 크기는 32바이트일 수 있다.
제 1 내지 제 7 물리 어드레스들(PA1~PA7)는 동적 랜덤 액세스 메모리(130)의 어드레스들(0x0 ~ 0x1C)에 할당되어 저장될 수 있다. 동적 랜덤 액세스 메모리(130)의 어드레스들(0x0 ~ 0x1C)은 제 1 내지 제 7 물리 어드레스들(PA1~PA7)의 논리 어드레스로서 사용될 수 있다.
도 5는 동적 랜덤 액세스 메모리에 저장된 어드레스 맵핑 테이블을 예시적으로 보여주는 도면이다. 도 5를 참조하면, 동적 랜덤 액세스 메모리(130)는 어드레스 맵핑 테이블(AMT)을 저장할 수 있다. 예를 들면, 어드레스 맵핑 테이블(AMT)은 어드레스 맵핑 데이터 단위로 저장될 수 있다. 즉, 어드레스 맵핑 테이블은 제 1 내지 제 N 어드레스 맵핑 데이터(AM Data 1 ~ AM Data N)를 포함할 수 있다. 제 1 내지 제 N 어드레스 맵핑 데이터(AM Data 1 ~ AM Data N) 각각은 물리 어드레스 청크(PA Chunk 1 ~ PA Chunk N) 및 패리티(Parity 1 ~ Parity N)를 포함할 수 있다.
도 6은 본 발명의 실시 예에 따른 어드레스 변환 동작을 보여주는 순서도이다. 도 6을 참조하면, 컨트롤러(110)가 불휘발성 메모리 장치(120)에 대한 읽기 요청을 수신한 경우, 어드레스 변환 동작은 수행될 수 있다.
S110 단계에서, 맵핑 테이블 에러 정정 회로(115)는 중앙 처리 장치(111)로부터 논리 어드레스에 대한 어드레스 변환 요청을 수신할 수 있다. 예를 들면, 논리 어드레스는 호스트로부터 수신된 어드레스이다. 맵핑 테이블 에러 정정 회로(115)는 중앙 처리 장치(111)로부터 논리 어드레스를 수신할 수 있다.
S120 단계에서, 맵핑 테이블 에러 정정 회로(115)는 논리 어드레스에 대응하는 어드레스 맵핑 데이터를 동적 랜덤 액세스 메모리(130)로부터 읽을 수 있다. 예를 들면, 맵핑 테이블 에러 정정 디코더(115_3)는 패리티를 포함하는 어드레스 맵핑 데이터를 읽을 수 있다.
S130 단계에서, 맵핑 테이블 에러 정정 회로(115)는 어드레스 맵핑 데이터에 대한 에러 정정 디코딩 동작을 수행할 수 있다. 예를 들면, 맵핑 테이블 에러 정정 디코더(115_3)는 어드레스 맵핑 데이터에 포함된 물리 어드레스 청크 및 패리티를 분리할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 패리티를 이용하여 물리 어드레스 청크의 에러를 검출 및 정정할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 1비트의 에러를 정정하고, 2비트의 에러를 검출할 수 있다. 에러 정정된 물리 어드레스 청크는 어드레스 처리 유닛(115_1)으로 전송된다.
S140 단계에서, 맵핑 테이블 에러 정정 회로(115)는 논리 어드레스에 대응하는 물리 어드레스를 출력할 수 있다. 예를 들면, 어드레스 처리 유닛(115_1)은 에러 정정된 물리 어드레스 청크에서 논리 어드레스에 대응하는 물리 어드레스를 획득할 수 있다. 어드레스 처리 유닛(115_1)은 획득된 물리 어드레스를 중앙 처리 장치(111)에 전송할 수 있다.
본 발명에 따른 컨트롤러(110)는 동적 랜덤 액세스 메모리(130)에 저장된 어드레스 맵핑 테이블을 읽을 때 에러 정정 동작을 수행할 수 있다. 또한, 어드레스 맵핑 테이블은 물리 어드레스 청크 및 패리티로 구성된 어드레스 맵핑 데이터 단위로 저장될 수 있다. 따라서, 컨트롤러(110)는 한번의 읽기 동작으로 논리 어드레스에 대응하는 물리 어드레스의 에러 정정 동작을 수행할 수 있다. 따라서, 컨트롤러(110)는 어드레스 맵핑 테이블에 대한 신뢰성을 확보할 수 있고, 어드레스 맵핑 테이블의 에러 정정 시간을 단축할 수 있다.
도 7은 도 6의 어드레스 변환 동작을 예시적으로 보여주는 도면이다. 도 7을 참조하면, 중앙 처리 장치(111)로부터 제 2 물리 어드레스(PA2)에 대응하는 논리 어드레스의 어드레스 변환 요청을 수신하면, 맵핑 테이블 에러 정정 디코더(115_3)는 제 1 내지 제 7 물리 어드레스들(PA1~PA7) 및 패리티를 포함하는 어드레스 맵핑 데이터(AM Data)를 동적 랜덤 액세스 메모리(130)로부터 읽을 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 어드레스 맵핑 데이터를 제 1 내지 제 7 물리 어드레스들(PA1~PA7)를 포함하는 물리 어드레스 청크 및 패리티로 분리할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 패리티를 이용하여 물리 어드레스 청크의 에러를 검출 및 정정할 수 있다. 어드레스 처리 유닛(115_1)은 물리 어드레스 청크에서 수신된 논리 어드레스에 대응하는 제 2 물리 어드레스(PA2)를 획득할 수 있다.
도 8은 본 발명의 실시 예에 따른 어드레스 쓰기 동작을 보여주는 순서도이다. 도 8을 참조하면, 컨트롤러(110)가 불휘발성 메모리 장치(120)에 대한 쓰기 요청을 수신한 경우, 어드레스 쓰기 동작은 수행될 수 있다.
S210 단계에서, 맵핑 테이블 에러 정정 회로(115)는 중앙 처리 장치(111)로부터 논리 어드레스 및 논리 어드레스에 대응하는 새로운 물리 어드레스를 수신할 수 있다. 예를 들면, 불휘발성 메모리 장치(120)는 덮어쓰기가 불가능하기 때문에, 새로운 데이터를 불휘발성 메모리 장치(120)에 쓰기 위해 논리 어드레스는 새로운 물리 어드레스에 맵핑되어야 한다.
S220 단계에서, 맵핑 테이블 에러 정정 회로(115)는 논리 어드레스에 대응하는 제 1 어드레스 맵핑 데이터를 동적 랜덤 액세스 메모리(130)로부터 읽을 수 있다. 예를 들면, 맵핑 테이블 에러 정정 디코더(115_3)는 이전 물리 어드레스 및 제 1 패리티를 포함하는 제 1 어드레스 맵핑 데이터를 읽을 수 있다.
S230 단계에서, 맵핑 테이블 에러 정정 회로(115)는 제 1 어드레스 맵핑 데이터에 대한 에러 정정 디코딩 동작을 수행할 수 있다. 예를 들면, 맵핑 테이블 에러 정정 디코더(115_3)는 제 1 어드레스 맵핑 데이터에 포함된 제 1 물리 어드레스 청크 및 제 1 패리티를 분리할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 제 1 패리티를 이용하여 제 1 물리 어드레스 청크의 에러를 검출 및 정정할 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 1비트의 에러를 정정하고, 2비트의 에러를 검출할 수 있다. 에러 정정된 제 1 물리 어드레스 청크는 어드레스 처리 유닛(115_1)으로 전송된다.
S240 단계에서, 맵핑 테이블 에러 정정 회로(115)는 이전 물리 어드레스를 새로운 물리 어드레스로 변경할 수 있다. 예를 들면, 어드레스 처리 유닛(115_1)은 제 1 물리 어드레스 청크에서 이전 물리 어드레스를 새로운 물리 어드레스로 교체하고, 새로운 물리 어드레스를 포함하는 제 2 물리 어드레스 청크를 생성할 수 있다. 제 2 물리 어드레스 청크는 맵핑 테이블 에러 정정 인코더(115_2)로 전송된다.
S250 단계에서, 맵핑 테이블 에러 정정 회로(115)는 새로운 물리 어드레스 및 제 2 패리티를 포함하는 제 2 어드레스 맵핑 데이터에 대한 에러 정정 인코딩 동작을 수행할 수 있다. 예를 들면, 맵핑 테이블 에러 정정 인코더(115_2)는 제 2 물리 어드레스 청크에 대응하는 제 2 패리티를 생성할 수 있다. 맵핑 테이블 에러 정정 인코더(115_2)는 제 2 물리 어드레스 청크 및 제 2 패리티를 결합하여 제 2 어드레스 맵핑 데이터를 생성할 수 있다.
S260 단계에서, 맵핑 테이블 에러 정정 회로(115)는 제 2 어드레스 맵핑 데이터를 동적 랜덤 액세스 메모리(130)에 저장할 수 있다. 예를 들면, 맵핑 테이블 에러 정정 인코더(115_2)는 제 2 어드레스 맵핑 데이터를 제 1 어드레스 맵핑 데이터에 덮어 쓸 수 있다.
본 발명에 따른 컨트롤러(110)는 동적 랜덤 액세스 메모리(130)에 저장된 어드레스 맵핑 테이블을 변경할 때 에러 정정 동작을 수행할 수 있다. 어드레스 맵핑 테이블을 변경할 때, 컨트롤러(110)는 이전 어드레스 맵핑 데이터를 읽은 후 새로운 어드레스 맵핑 데이터를 생성할 수 있다. 이전 어드레스 맵핑 데이터를 읽을 때, 어드레스 맵핑 테이블의 에러는 정정될 수 있다.
도 9는 도 8의 어드레스 쓰기 동작을 예시적으로 보여주는 도면이다. 도 9를 참조하면, 맵핑 테이블 에러 정정 회로(115)는 중앙 처리 장치(111)로부터 제 2 물리 어드레스(PA2)에 대응하는 논리 어드레스에 대한 어드레스 쓰기 요청 및 새로운 제 2' 물리 어드레스(PA2')를 수신할 수 있다. 중앙 처리 장치(111)로부터 제 2 물리 어드레스(PA2)에 대응하는 논리 어드레스의 어드레스 쓰기 요청을 수신하면, 맵핑 테이블 에러 정정 디코더(115_3)는 제 1 내지 제 7 물리 어드레스들(PA1~PA7) 및 제 1 패리티를 포함하는 제 1 어드레스 맵핑 데이터(First AM Data)를 동적 랜덤 액세스 메모리(130)로부터 읽을 수 있다. 맵핑 테이블 에러 정정 디코더(115_3)는 제 1 어드레스 맵핑 데이터를 제 1 내지 제 7 물리 어드레스들(PA1~PA7)를 포함하는 제 1 물리 어드레스 청크 및 제 1 패리티로 분리할 수 있다. 맵핑 테이블 에러 정정 인코더(115_3)는 제 1 패리티를 이용하여 제 1 물리 어드레스 청크의 에러를 검출 및 정정할 수 있다.
한편, 어드레스 처리 유닛(115_1)은 제 1 물리 어드레스 청크에서 제 2 물리 어드레스(PA2)를 제거하고 제 2' 물리 어드레스를 삽입할 수 있다. 어드레스 처리 유닛(115_1)은 제 2' 물리 어드레스를 포함하는 제 2 물리 어드레스 청크를 맵핑 테이블 에러 정정 인코더(115_2)로 전송할 수 있다. 맵핑 테이블 에러 정정 인코더(115_2)는 제 2 물리 어드레스 청크에 기초하여 제 2 패리티를 생성할 수 있다. 맵핑 테이블 에러 정정 인코더(115_2)는 제 2 물리 어드레스 청크 및 제 2 패리티를 결합하여 제 2 어드레스 맵핑 데이터를 생성할 수 있다. 생성된 제 2 어드레스 맵핑 데이터는 동적 랜덤 액세스 메모리(130)에서 제 1 어드레스 맵핑 데이터에 덮어 쓰일 수 있다.
도 10은 본 발명의 실시 예에 따른 SSD를 보여주는 블록도이다. 도 10을 참조하면, SSD 시스템(1000)은 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치들(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치들(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
또한, SSD 컨트롤러(1210)는 도 1 내지 도 9에서 설명된 맵핑 테이블 에러 정정 회로(115)를 포함할 수 있다. 따라서, SSD 컨트롤러(1210)는 한번의 읽기 동작을 통해 버퍼 메모리(1220)에 저장된 어드레스 맵핑 테이블에 대한 에러 정정 동작을 수행할 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치들(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청 시에 불휘발성 메모리 장치들(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다. 또한, 버퍼 메모리(1220)는 불휘발성 메모리 장치들(1230)의 어드레스 맵핑 테이블을 저장할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치들(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치들(1230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치들(1230)는 복수의 채널을 통해 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치들(1230)이 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)이 포함될 수도 있다.
도 11은 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다. 도 11을 참조하면, UFS 시스템(2000)은 UFS 호스트(2100)와 UFS 장치(2200)를 포함할 수 있다.
UFS 호스트(2100)는 애플리케이션(2110), 장치 드라이버(2120), 호스트 컨트롤러(2130), 그리고 버퍼 램(2140)을 포함할 수 있다. 그리고 호스트 컨트롤러(2130)는 커맨드 큐(CMD queue, 2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)를 포함할 수 있다. 커맨드 큐(2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)는 호스트 컨트롤러(2130) 내에서 알고리즘, 소프트웨어, 또는 펌웨어로 동작할 수 있다.
UFS 호스트(2100)의 애플리케이션(2110)과 장치 드라이버(2120)에서 생성된 커맨드(예를 들면, 쓰기 커맨드)는 호스트 컨트롤러(2130)의 커맨드 큐(2131)에 입력될 수 있다. 커맨드 큐(2131)는 UFS 장치(2200)로 제공될 커맨드를 순서대로 저장할 수 있다. 커맨드 큐(2131)에 저장된 커맨드는 호스트 DMA(2132)로 제공될 수 있다. 호스트 DMA(2132)는 커맨드를 호스트 인터페이스(2101)를 통해 UFS 장치(2200)로 보낸다.
계속해서 도 11을 참조하면, UFS 장치(2200)는 플래시 메모리(2210), 장치 컨트롤러(2230), 그리고 버퍼 램(2240)을 포함할 수 있다. 그리고 장치 컨트롤러(2230)는 중앙처리장치(CPU, 2231), 커맨드 관리자(CMD manager, 2232), 플래시 DMA(2233), 보안 관리자(security manager, 2234), 버퍼 관리자(2235), 플래시 변환 계층(FTL; Flash Translation Layer, 2236), 그리고 플래시 관리자(2237)를 포함할 수 있다. 여기에서, 커맨드 관리자(2232), 보안 관리자(2234), 버퍼 관리자(2235), 플래시 변환 계층(2236), 그리고 플래시 관리자(2237)는 장치 컨트롤러(2230) 내에서 알고리즘, 소프트웨어, 또는 펌웨어로 동작할 수 있다.
UFS 호스트(2100)로부터 UFS 장치(2200)로 입력된 커맨드는 장치 인터페이스(2201)를 통해 커맨드 관리자(2232)로 제공될 수 있다. 커맨드 관리자(2232)는 UFS 호스트(2100)로부터 제공된 커맨드를 해석하고, 보안 관리자(2234)를 이용하여 입력된 커맨드를 인증할 수 있다. 커맨드 관리자(2232)는 버퍼 관리자(2235)를 통해 데이터를 입력받을 수 있도록 버퍼 램(2240)을 할당할 수 있다. 커맨드 관리자(2232)는 데이터 전송 준비가 완료되면, UFS 호스트(2100)로 RTT(READY_TO_TRANSFER) UPIU를 보낸다.
버퍼 관리자(2235)는 도 1 내지 도 9에서 설명된 맵핑 테이블 에러 정정 회로(115)를 포함할 수 있다. 따라서, 버퍼 관리자(2235)는 한번의 읽기 동작을 통해 버퍼 램(2240)에 저장된 어드레스 맵핑 테이블에 대한 에러 정정 동작을 수행할 수 있다.
UFS 호스트(2100)는 RTT UPIU에 응답하여 데이터를 UFS 장치(2200)로 전송할 수 있다. 데이터는 호스트 DMA(2132)와 호스트 인터페이스(2101)를 통해 UFS 장치(2200)로 전송될 수 있다. UFS 장치(2200)는 제공받은 데이터를 버퍼 관리자(2235)를 통해 버퍼 램(3240)에 저장할 수 있다. 버퍼 램(2240)에 저장된 데이터는 플래시 DMA(2233)를 통해 플래시 관리자(2237)로 제공될 수 있다. 또한, 버퍼 램(2240)은 어드레스 맵핑 테이블을 저장할 수 있다. 플래시 관리자(2237)는 플래시 변환 계층(2236)을 통해 어드레스 맵핑 테이블을 참조하여, 플래시 메모리(2210)의 선택된 어드레스에 데이터를 저장할 수 있다.
UFS 장치(2200)는 커맨드에 필요한 데이터 전송과 프로그램이 완료되면, 인터페이스를 통해 UFS 호스트(2100)로 응답 신호(response)를 보내고, 커맨드 완료를 알린다. UFS 호스트(2100)는 응답 신호를 전달받은 커맨드에 대한 완료 여부를 장치 드라이버(2120)와 애플리케이션(2110)에 알려주고, 해당 커맨드에 대한 동작을 종료할 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100: 메모리 시스템
110: 컨트롤러
111: 중앙 처리 장치
112: 동작 메모리
113: 불휘발성 메모리 에러 정정 회로
114: 호스트 인터페이스
115: 맵핑 테이블 에러 정정 회로
116: 불휘발성 메모리 인터페이스
120: 불휘발성 메모리 장치
130: 동적 랜덤 액세스 메모리
1000: SSD 시스템
2000: UFS 시스템

Claims (10)

  1. 불휘발성 메모리 장치;
    상기 불휘발성 메모리 장치에 액세스하기 위하여 플래시 변환 계층에 의해 관리되는 어드레스 맵핑 테이블을 저장하는 동적 랜덤 액세스 메모리; 그리고
    상기 어드레스 맵핑 테이블을 상기 동적 랜덤 액세스 메모리의 입출력 단위 크기를 가지는 어드레스 맵핑 데이터의 단위로 구분하여 상기 동적 랜덤 액세스 메모리에 저장하는 컨트롤러를 포함하되,
    상기 컨트롤러는 호스트로부터 수신된 논리 어드레스에 대응하는 목표 어드레스 맵핑 데이터를 독출하여 상기 목표 어드레스 맵핑 데이터에 포함된 목표 패리티를 이용하여 상기 목표 어드레스 맵핑 데이터의 에러 정정 동작을 수행하고,
    상기 목표 어드레스 맵핑 데이터는 상기 불휘발성 메모리 장치의 복수의 물리 어드레스들 및 상기 목표 패리티를 포함하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 목표 어드레스 맵핑 데이터는 목표 물리 어드레스 청크 및 상기 목표 패리티를 포함하고,
    상기 목표 패리티는 상기 목표 물리 어드레스 청크에 기초하여 생성되는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 목표 물리 어드레스 청크는 상기 논리 어드레스에 대응하는 목표 물리 어드레스를 포함하는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 에러 정정 동작은,
    상기 목표 어드레스 맵핑 데이터를 상기 논리 어드레스에 대응하는 목표 물리 어드레스를 포함하는 목표 물리 어드레스 청크 및 상기 목표 패리티로 분리하는 단계; 그리고
    상기 목표 패리티를 이용하여 상기 목표 물리 어드레스 청크의 에러를 검출 및 정정하는 단계를 포함하는 메모리 시스템.
  5. 제 1 항에 있어서,
    상기 컨트롤러는 상기 에러 정정 동작을 수행한 후 상기 목표 어드레스 맵핑 데이터로부터 분리된 목표 물리 어드레스 청크에서 상기 논리 어드레스에 대응하는 새로운 물리 어드레스를 대체하여 새로운 물리 어드레스 청크를 생성하고, 상기 새로운 물리 어드레스 청크에 기초하여 새로운 패리티를 생성하고, 상기 새로운 물리 어드레스 청크 및 상기 새로운 패리티를 결합하여 새로운 어드레스 맵핑 데이터를 상기 동적 랜덤 액세스 메모리에 저장하는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 목표 어드레스 맵핑 데이터는 상기 새로운 어드레스 맵핑 데이터로 교체되는 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 어드레스 맵핑 테이블은 상기 불휘발성 메모리 장치의 용량에 비례하는 복수의 어드레스 맵핑 데이터를 포함하는 메모리 시스템.
  8. 불휘발성 메모리 장치;
    상기 불휘발성 메모리 장치에 액세스하기 위하여 플래시 변환 계층에 의해 관리되는 어드레스 맵핑 테이블을 저장하는 동적 랜덤 액세스 메모리; 그리고
    상기 어드레스 맵핑 테이블을 상기 동적 랜덤 액세스 메모리의 입출력 단위 크기를 가지는 어드레스 맵핑 데이터 단위로 구분하여 저장하고, 상기 불휘발성 메모리 장치를 액세스하는 경우 상기 액세스에 대응하는 목표 어드레스 맵핑 데이터의 에러 검출 및 정정 동작을 수행하는 컨트롤러를 포함하되,
    상기 목표 어드레스 맵핑 데이터는 상기 불휘발성 메모리 장치의 복수의 물리 어드레스들 및 상기 물리 어드레스들에 대응하는 목표 패리티를 포함하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 컨트롤러는 상기 동적 랜덤 액세스 메모리에 연결되어 상기 목표 어드레스 맵핑 데이터의 에러 검출 및 정정 동작을 수행하는 맵핑 테이블 에러 정정 회로를 포함하는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 맵핑 테이블 에러 정정 회로는 상기 목표 어드레스 맵핑 데이터를 목표 물리 어드레스 청크 및 상기 목표 패리티로 분리하며, 상기 목표 패리티를 이용하여 상기 목표 물리 어드레스 청크의 에러를 검출 및 정정하는 맵핑 테이블 에러 정정 디코더를 포함하는 메모리 시스템.
KR1020160147679A 2016-11-07 2016-11-07 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 KR20180051706A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160147679A KR20180051706A (ko) 2016-11-07 2016-11-07 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템
US15/718,143 US10635530B2 (en) 2016-11-07 2017-09-28 Memory system performing error correction of address mapping table
CN201710970039.XA CN108073470B (zh) 2016-11-07 2017-10-18 执行地址映射表的纠错的存储器系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160147679A KR20180051706A (ko) 2016-11-07 2016-11-07 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20180051706A true KR20180051706A (ko) 2018-05-17

Family

ID=62064672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160147679A KR20180051706A (ko) 2016-11-07 2016-11-07 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템

Country Status (3)

Country Link
US (1) US10635530B2 (ko)
KR (1) KR20180051706A (ko)
CN (1) CN108073470B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003709A (ko) * 2018-07-02 2020-01-10 삼성전자주식회사 고-대역폭 메모리 신뢰성, 접근성 및 유용성(ras) 캐시 구조
US11249844B2 (en) 2018-12-24 2022-02-15 SK Hynix Inc. Memory system and memory module
US11422889B2 (en) 2020-10-15 2022-08-23 SK Hynix Inc. Memory system and controller for storing map data of volatile memory into nonvolatile memory device during power off operation

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392844B1 (ko) 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
US20190179540A1 (en) * 2017-12-11 2019-06-13 Qualcomm Incorporated Concurrent access for multiple storage devices
US10810078B2 (en) * 2018-07-03 2020-10-20 Mediatek Inc. Method of parity training for a DRAM supporting a link error checking and correcting functionality
KR20200006378A (ko) * 2018-07-10 2020-01-20 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
KR20200033625A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
CN109491593B (zh) * 2018-09-28 2020-11-17 方一信息科技(上海)有限公司 一种数据存储管理系统及方法
KR20200044308A (ko) * 2018-10-19 2020-04-29 삼성전자주식회사 스토리지 장치 및 서버 장치
KR20200046264A (ko) * 2018-10-24 2020-05-07 삼성전자주식회사 호스트 메모리 버퍼를 이용하는 데이터 스토리지 장치 및 그 동작 방법
KR20200059780A (ko) * 2018-11-21 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200074647A (ko) * 2018-12-17 2020-06-25 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200078101A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200078047A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200085510A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러
CN109800179B (zh) * 2019-01-31 2021-06-22 维沃移动通信有限公司 获取数据的方法、发送数据的方法、主机和内嵌式存储器
US20200264953A1 (en) * 2019-02-20 2020-08-20 Western Digital Technologies, Inc. Error correction in data storage devices
KR20200108650A (ko) * 2019-03-11 2020-09-21 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11237902B2 (en) * 2019-03-15 2022-02-01 Innogrit Technologies Co., Ltd. Systems and methods for an ECC architecture with memory mapping
CN110083481A (zh) * 2019-04-28 2019-08-02 深圳忆联信息系统有限公司 基于hmb的逻辑物理映射表保护方法、装置及固态硬盘
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device
KR20210038753A (ko) * 2019-09-30 2021-04-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN112988449B (zh) * 2019-12-16 2023-08-15 慧荣科技股份有限公司 写入页面群组的数据到闪存模块的装置及方法
KR20210079894A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN113127378B (zh) * 2020-07-16 2024-04-26 长江存储科技有限责任公司 数据读取方法、装置及数据存储设备
KR20220021186A (ko) * 2020-08-13 2022-02-22 에스케이하이닉스 주식회사 데이터 처리 시스템 내 데이터를 공유하는 장치 및 방법
CN112540723B (zh) * 2020-11-06 2023-02-03 深圳市民德电子科技股份有限公司 一种NOR Flash坏点补偿的方法
CN113590502B (zh) * 2021-07-23 2024-03-22 合肥康芯威存储技术有限公司 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
CN113555057A (zh) * 2021-07-26 2021-10-26 成都储迅科技有限责任公司 一种扩大固态硬盘映射表单元的实现方法
US20230333990A1 (en) * 2022-04-18 2023-10-19 Samsung Electronics Co., Ltd. Systems and methods for address translation
CN117112289B (zh) * 2023-10-17 2024-02-02 北京开源芯片研究院 内存纠错方法、装置、设备及可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10236796B4 (de) * 2002-08-08 2004-12-02 Christian Dr. Scheideler Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
CN101727976B (zh) * 2008-10-15 2012-09-19 晶天电子(深圳)有限公司 一种多层闪存装置、固态硬盘和分割非易失性存储器系统
KR101042197B1 (ko) 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
US8250333B2 (en) 2009-01-05 2012-08-21 Sandisk Technologies Inc. Mapping address table maintenance in a memory device
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
JP4901987B1 (ja) * 2010-09-14 2012-03-21 株式会社東芝 記憶装置、電子機器及び誤りデータの訂正方法
JP2012084127A (ja) * 2010-09-15 2012-04-26 Toshiba Corp 半導体装置
KR101732030B1 (ko) 2010-12-22 2017-05-04 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US20130019057A1 (en) 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US20150046772A1 (en) * 2013-08-06 2015-02-12 Sandisk Technologies Inc. Method and device for error correcting code (ecc) error handling
US8838936B1 (en) 2013-11-27 2014-09-16 NXGN Data, Inc. System and method for efficient flash translation layer
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
KR102398213B1 (ko) * 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법
US9946463B2 (en) * 2016-07-12 2018-04-17 Western Digital Technologies, Inc. Compression of indirection tables
US20180173419A1 (en) * 2016-12-21 2018-06-21 Western Digital Technologies, Inc. Hybrid ssd with delta encoding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003709A (ko) * 2018-07-02 2020-01-10 삼성전자주식회사 고-대역폭 메모리 신뢰성, 접근성 및 유용성(ras) 캐시 구조
US11249844B2 (en) 2018-12-24 2022-02-15 SK Hynix Inc. Memory system and memory module
US11422889B2 (en) 2020-10-15 2022-08-23 SK Hynix Inc. Memory system and controller for storing map data of volatile memory into nonvolatile memory device during power off operation

Also Published As

Publication number Publication date
CN108073470A (zh) 2018-05-25
CN108073470B (zh) 2023-04-07
US20180129563A1 (en) 2018-05-10
US10635530B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
KR20180051706A (ko) 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템
US20180341606A1 (en) Offloaded Disaggregated Storage Architecture
KR101856506B1 (ko) 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US11336305B2 (en) Memory system
US9817752B2 (en) Data integrity enhancement to protect against returning old versions of data
US9824007B2 (en) Data integrity enhancement to protect against returning old versions of data
US11301393B2 (en) Data storage device, operation method thereof, and storage system including the same
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
KR102107723B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US11340986B1 (en) Host-assisted storage device error correction
US9372741B2 (en) Data storage device and operating method thereof
KR20220001222A (ko) 베드 블록을 처리하는 메모리 시스템 및 동작 방법
CN111880749A (zh) 数据读取方法、存储器存储装置及存储器控制电路单元
KR20220049027A (ko) 가비지 수집을 위한 메모리 컴포넌트에 대한 에러 제어 동작 수행
KR20210124705A (ko) 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법
US20200125285A1 (en) Memory system and operating method thereof
TWI797464B (zh) 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
KR20210131058A (ko) 메모리 시스템 내 데이터를 보호하는 장치 및 방법
US10642758B2 (en) Storage drive and method of executing a compare command
US11281381B2 (en) Storage node of distributed storage system and method of operating the same
KR20220049230A (ko) 메모리 시스템에서 비휘발성 메모리 장치 내 오류를 확인하는 장치 및 방법
KR20220032826A (ko) 메모리 시스템 내 맵 정보를 제어 및 저장하는 장치 및 방법
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
US20230401148A1 (en) Storage device
US11886741B2 (en) Method and storage device for improving NAND flash memory performance for intensive read workloads

Legal Events

Date Code Title Description
A201 Request for examination