KR20130098642A - 저장 장치 - Google Patents
저장 장치 Download PDFInfo
- Publication number
- KR20130098642A KR20130098642A KR1020120020325A KR20120020325A KR20130098642A KR 20130098642 A KR20130098642 A KR 20130098642A KR 1020120020325 A KR1020120020325 A KR 1020120020325A KR 20120020325 A KR20120020325 A KR 20120020325A KR 20130098642 A KR20130098642 A KR 20130098642A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- buffer memory
- host
- unit
- memory
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1014—One time programmable [OTP] memory, e.g. PROM, WORM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
본 발명은 저장 장치에 관한 것으로, 좀더 자세하게는 불휘발성 메모리 장치를 저장 매체로 사용하는 저장 장치에 관한 것이다. 본 발명의 실시 예에 따른 저장 장치는 불휘발성 메모리 장치, 상기 불휘발성 메모리 장치로부터 전송되는 데이터를 임시로 저장하는 버퍼 메모리, 및 상기 데이터를 구성하는 단위 데이터가 상기 불휘발성 메모리로부터 상기 버퍼 메모리에 입력될 때, 상기 단위 데이터가 입력되었음에 대한 메타 정보를 상기 버퍼 메모리에 기입하는 제어 유닛을 포함한다. 본 발명의 실시 예에 따른 저장 장치는 적어도 하나의 섹터가 버퍼 메모리에 입력되면, 해당 섹터를 호스트 또는 불휘발성 메모리로 전송할 수 있다. 따라서, 읽기 또는 쓰기 속도가 향상될 수 있다.
Description
본 발명은 저장 장치에 관한 것으로, 좀더 자세하게는 불휘발성 메모리 장치를 저장 매체로 사용하는 저장 장치에 관한 것이다.
저장 장치로 주로 사용되는 반도체 메모리 장치에는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리 등이 있다. 휘발성 메모리는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다.
최근 들어 불휘발성 메모리를 사용하는 장치들이 증가하고 있다. 예를 들면 MP3 플레이어, 디지털 카메라, 휴대전화, 캠코더, 플래시 카드 및 SSD(Solid State Disk) 등은 저장장치로 불휘발성 메모리를 사용하고 있다. 불휘발성 메모리들 중에서도 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능을 가지기 때문에, 하드디스크를 대신하여 플래시 메모리가 저장장치로 널리 사용되고 있다.
본 발명은 빠른 속도로 읽기 또는 쓰기 동작을 수행할 수 있는 저장 장치를 제공하는데 목적이 있다.
본 발명의 실시 예에 따른 저장 장치는 불휘발성 메모리 장치; 상기 불휘발성 메모리 장치로부터 전송되는 데이터를 임시로 저장하는 버퍼 메모리; 및 상기 데이터를 구성하는 단위 데이터가 상기 불휘발성 메모리로부터 상기 버퍼 메모리에 입력될 때, 상기 단위 데이터가 입력되었음에 대한 메타 정보를 상기 버퍼 메모리에 기입하는 제어 유닛을 포함한다.
실시 예로써, 상기 제어 유닛은 상기 메타 정보를 통하여 상기 단위 데이터가 상기 버퍼 메모리에 저장되어 있음을 확인한 후에, 상기 단위 데이터의 호스트로의 전송을 시작한다.
실시 예로써, 상기 제어 유닛은 미리 정해진 시간 간격으로 상기 메타 정보를 확인한다.
실시 예로써, 상기 제어 유닛은 상기 메타 정보를 상기 버퍼 메모리에 중복적으로 기입한다.
실시 예로써, 상기 제어 유닛은 호스트와 데이터를 교환하며, 상기 단위 데이터는 상기 제어 유닛과 상기 호스트 사이의 데이터 교환 단위인 섹터 단위이다.
실시 예로써, 상기 제어 유닛은 호스트로부터 쓰기 요청된 데이터가 전송될 때, 상기 쓰기 요청된 데이터를 구성하는 단위 데이터가 상기 호스트로부터 상기 버퍼 메모리에 입력될 때, 상기 쓰기 요청된 데이터의 단위 데이터가 입력되었음에 대한 메타 정보를 상기 버퍼 메모리에 기입한다.
본 발명의 실시 예에 따른 저장 장치는 불휘발성 메모리 장치; 상기 불휘발성 메모리 장치로부터 전송되는 데이터를 임시로 저장하는 버퍼 메모리; 및 상기 불휘발성 메모리 장치와 상기 버퍼 메모리 사이에 데이터 교환을 담당하는 불휘발성 메모리 DMA를 포함하며, 상기 불휘발성 메모리 DMA는 상기 불휘발성 메모리 장치로부터 전송되는 데이터를 구성하는 단위 데이터가 상기 버퍼 메모리에 저장될 때, 상기 단위 데이터가 상기 버퍼 메모리에 입력되었음에 관한 전송 완료 정보를 상기 버퍼 메모리의 메타 영역에 기입한다.
실시 예로써, 상기 버퍼 메모리와 호스트 사이의 데이터 교환을 담당하는 호스트 DMA를 더 포함하며, 상기 호스트 DMA는 소정 시간 간격으로 상기 버퍼 메모리의 상기 메타 영역에 기록된 정보를 확인한다.
실시 예로써, 상기 호스트 DMA는 상기 메타 영역에 기록된 정보를 통하여 상기 버퍼 메모리에 적어도 하나의 단위 데이터가 저장되어 있음을 확인한 후에 상기 버퍼 메모리에 저장된 상기 적어도 하나의 단위 데이터를 상기 호스트로 전송 시작한다.
실시 예로써, 상기 단위 데이터는 상기 호스트 DMA와 상기 호스트 사이의 데이터 교환 단위인 섹터 단위이다.
실시 예로써, 상기 호스트 DMA는 상기 호스트로부터 쓰기 요청된 데이터를 상기 버퍼 메모리에 입력하며, 상기 쓰기 요청된 데이터가 상기 섹터 단위로 상기 버퍼 메모리에 입력될 때마다, 상기 섹터 단위의 데이터가 상기 버퍼 메모리에 입력되었음에 대한 정보를 상기 메타 영역에 기입한다.
실시 예로써, 상기 저장 장치의 전반적인 동작을 제어하는 중앙 처리 장치를 더 포함하며, 상기 호스트 DMA 및 상기 불휘발성 메모리 DMA는 읽기 동작 또는 쓰기 동작 시에 상기 중앙 처리 장치로부터 데이터 교환에 관한 권한을 제공받는다.
실시 예로써, 상기 불휘발성 메모리 장치로부터 상기 버퍼 메모리에 전송된 데이터에 대한 에러 정정 기능을 제공하는 ECC 회로를 더 포함하며, 상기 불휘발성 메모리 DMA는 상기 ECC 회로의 에러 정정 결과에 기초하여, 상기 전송 완료 정보를 상기 메타 영역에 기입한다.
실시 예로써, 상기 ECC 회로는 상기 단위 데이터의 크기의 정수 배를 에러 정정 단위로 하여 에러 정정 동작을 수행하며, 상기 불휘발성 메모리 DMA는 상기 에러 정정 단위에 해당하는 데이터가 상기 버퍼 메모리에 입력될 때마다, 상기 전송 완료 정보를 상기 메타 영역에 기입한다.
실시 예로써, 상기 불휘발성 메모리 DMA는 상기 전송 완료 정보를 중복적으로 상기 메타 영역에 기입한다.
본 발명의 실시 예에 따른 저장 장치는 적어도 하나의 섹터가 버퍼 메모리에 입력되면, 해당 섹터를 호스트 또는 불휘발성 메모리로 전송할 수 있다. 따라서, 읽기 또는 쓰기 속도가 향상될 수 있다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 저장 장치를 좀더 자세히 보여주는 블록도이다.
도 3은 도 2의 버퍼 메모리 및 메타 영역을 설명하기 위한 예시적인 도면이다.
도 4는 도 2의 저장 장치의 동작을 설명하는 순서도이다.
도 5 및 도 6은 도 2의 저장 장치의 읽기 동작의 성능향상을 보여주는 도면이다.
도 7은 본 발명의 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 8은 본 발명의 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 9는 도 8의 에러 정정 기능을 제공하는 저장 장치의 메타 영역을 보여주는 도면이다.
도 10은 도 9의 메타 영역에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 11은 메타 영역에 저장된 데이터의 무결성을 보장하기 위한 일 실시 예를 보여주는 도면이다.
도 12는 도 11의 메타 영역에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 저장 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 저자 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
도 15는 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 16은 도 15에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 17은 도 16에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
도 2는 도 1의 저장 장치를 좀더 자세히 보여주는 블록도이다.
도 3은 도 2의 버퍼 메모리 및 메타 영역을 설명하기 위한 예시적인 도면이다.
도 4는 도 2의 저장 장치의 동작을 설명하는 순서도이다.
도 5 및 도 6은 도 2의 저장 장치의 읽기 동작의 성능향상을 보여주는 도면이다.
도 7은 본 발명의 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 8은 본 발명의 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 9는 도 8의 에러 정정 기능을 제공하는 저장 장치의 메타 영역을 보여주는 도면이다.
도 10은 도 9의 메타 영역에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 11은 메타 영역에 저장된 데이터의 무결성을 보장하기 위한 일 실시 예를 보여주는 도면이다.
도 12는 도 11의 메타 영역에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 저장 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 저자 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
도 15는 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 16은 도 15에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 17은 도 16에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일 또는 유사한 참조번호들이 동일 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 본 발명의 특징 및 기능을 설명하기 위한 메모리 시스템으로 불휘발성 메모리를 사용하는 저장 장치를 한 예로 사용할 것이다. 또한, 이동되는 데이터 단위를 섹터 단위로 가정하여 본 발명의 특징이 설명될 것이나, 데이터 단위가 섹터 단위에만 국한되지 않는다. 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 또한, 저장 매체로서 불휘발성 메모리로서 플래시 메모리가 사용될 수 있으며, MRAM, ReRAM, FRAM, PRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되어 사용될 수도 있다.
본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상, 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명의 기술적 사상에 따른 실시 예들이 첨부된 도면을 참조하여 좀더 자세히 설명된다.
도 1은 본 발명의 실시 예에 따른 저장 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 저장 장치(100)는 제어 유닛(110) 및 불휘발성 메모리 장치(120)를 포함한다.
제어 유닛(110)은 호스트와 데이터를 교환하며, 호스트로부터 쓰기 요청된 데이터를 불휘발성 메모리 장치(120)에 전달한다. 또한, 제어 유닛(110)은 불휘발성 메모리 장치(120)와 데이터를 교환하며, 호스트로부터 읽기 요청된 데이터를 호스트에 전달한다. 제어 유닛(110)은 버퍼 메모리(116) 및 메타 영역(117)을 더 포함한다.
버퍼 메모리(116)는 호스트로부터 전송받은 데이터를 불휘발성 메모리 장치(120)에 전달하기 전에 임시로 저장한다. 버퍼 메모리(116)는 불휘발성 메모리 장치(120)로부터 읽어낸 데이터를 호스트에 전달하기 전에 임시로 저장한다. 버퍼 메모리(116)는 DRAM, SRAM 등의 휘발성 메모리로 구현될 수 있으나, 이에 국한되는 것은 아니다. 예를 들어, 버퍼 메모리(116)는 플래시 메모리 등의 불휘발성 메모리로 구현될 수도 있다.
메타 영역(117)은 읽기 요청된 데이터에 관한 섹터들 중 불휘발성 메모리 장치(120)로부터 버퍼 메모리(116)로 전송된 섹터의 전송 완료 여부에 관한 정보를 저장한다. 즉, 읽기 요청된 데이터에 관한 섹터들 중 소정 섹터가 불휘발성 메모리 장치(120)로부터 버퍼 영역(116)에 전송되면, 제어 유닛(110)은 "해당 섹터가 전송 완료되었음"에 대한 정보를 메터 영역(117)에 기록한다. 따라서, 제어 유닛(110)은 소정 시간 간격으로 메타 영역(116)에 저장된 정보를 확인하는 방법으로, 버퍼 메모리(116)에 저장된 섹터를 확인할 수 있다. 한편, 도 1에 도시된 바와 같이, 버퍼 메모리(116)의 일부분이 메타 영역(117)으로 설정될 수 있으나, 이에 국한되는 것은 아니다. 예를 들어, 메타 영역(117)은 버퍼 메모리(116)와 다른 별도의 휘발성 메모리로 구현될 수도 있다.
불휘발성 메모리 장치(120)는 제어 유닛(110)의 제어에 따라 호스트로부터 전송받은 데이터를 저장한다. 또한, 불휘발성 메모리 장치(120)는 제어 유닛(110)의 제어에 따라 저장된 데이터를 호스트에 전송한다. 불휘발성 메모리 장치(120)는 낸드 플래시 메모리를 저장 매체로 사용할 수 있으며, PRAM, ReRAM, FRAM, PRAM, NOR 플래시 메모리 등을 저장 매체로 사용할 수도 있다.
호스트로부터 유저 데이터에 대한 읽기 요청이 있는 경우, 본 발명의 실시 예에 따른 제어 유닛(110)은 읽기 요청된 데이터에 해당하는 섹터들 중 하나의 섹터만이라도 불휘발성 메모리 장치(120)로부터 버퍼 메모리(116)로 전송되면, 해당 섹터가 전송되었음에 관한 정보를 메타 영역(117)에 기록한다.
따라서, 제어 유닛(110)은 소정 시간 간격으로 메타 영역(117)에 기록된 정보를 확인하는 방법으로, 읽기 요청된 데이터에 대응하는 섹터들이 버퍼 메모리(116)에 전송 완료되었는 지를 확인할 수 있다. 또한, 읽기 요청된 데이터에 해당하는 섹터들 중 하나의 섹터만이라도 버퍼 메모리(116)에 전송된 경우, 제어 유닛(110)은 하나의 섹터만이라도 호스트에 전송할 수 있다.
종래의 경우, 버퍼 메모리(116)에 임시로 저장되는 데이터가 적어도 하나의 페이지가 충족되어야, 버퍼 메모리(116)로부터 호스트로의 전송이 시작되었다. 그러나, 본 발명의 실시 예에 따른 저장 장치(110)는 섹터 단위로 버퍼 메모리(116)로부터 호스트로 데이터를 전송함으로써, 최대한 신속하게 읽기 동작을 수행할 수 있다.
도 2는 도 1의 저장 장치를 좀더 자세히 보여주는 블록도이다. 도 2를 참조하면, 저장 장치(100)는 제어 유닛(110) 및 불휘발성 메모리 장치(120)를 포함하며, 제어 유닛(110)은 호스트 컨트롤러(111), 호스트 다이렉트 메모리 엑세스(Host Direct Memory Access, 이하 호스트 DMA)(112), 불휘발성 메모리 다이렉트 메모리 엑세스(NVM Direct Memory Access, 이하 불휘발성 메모리 DMA)(113), 불휘발성 메모리 컨트롤러(114), 중앙 처리 장치(115), 그리고 버퍼 메모리(116)를 포함한다.
호스트 컨트롤러(111)는 호스트와 저장 장치(100) 사이의 물리적 연결을 제공한다. 즉, 호스트 컨트롤러(111)는 호스트의 버스 포맷(Bus format)에 대응하여 저장 장치(100)와의 인터페이싱을 제공한다. 호스트의 버스 포맷으로 USB(Universal Serial Bus), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA) 등이 사용될 수 있다. 예를 들어, 호스트의 버스 포맷으로 ATA 계열(ATA, SATA, PATA)이 사용되는 경우, 호스트 컨트롤러(111)는 섹터(Sector) 단위로 호스트와 데이터 교환을 수행할 수 있다. 섹터 단위는, 예를 들어, 512 바이트(byte) 단위일 수 있다.
또한, 호스트 컨트롤러(111)는 호스트가 저장 장치(100)를 하드 디스크 드라이버(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 지원할 수 있다. 예를 들어, 호스트 컨트롤러(111)는 삭제 연산을 숨기기 위한 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 기능을 제공할 수 있다.
호스트 DMA(112)는 호스트 컨트롤러(111)와 버퍼 메모리(116) 사이의 데이터 전송을 담당한다. 예를 들어, 읽기 동작 시에, 호스트 DMA(112)는 중앙 처리 장치(115)로부터 호스트 컨트롤러(111)와 버퍼 메모리(116) 사이의 데이터 전송을 요청받는다. 호스트 DMA(112)는 소정 시간 간격으로 메타 영역(117)에 접근하며, 읽기 요청된 데이터에 해당하는 적어도 하나의 섹터가 버퍼 메모리(116)에 저장되어 있는지를 확인한다. 적어도 하나의 섹터가 버퍼 메모리(116)에 저장되어 있는 경우, 호스트 DMA(112)는 해당 섹터를 호스트 컨트롤러(111)를 통하여 호스트에 전송한다.
불휘발성 메모리 DMA(113)는 버퍼 메모리(116)와 불휘발성 메모리 컨트롤러(114) 사이의 데이터 전송을 담당한다. 예를 들어, 읽기 동작 시에, 불휘발성 메모리 DMA(113)는 불휘발성 메모리 장치(120)에 저장된 읽기 요청된 데이터를 버퍼 메모리(116)에 전송한다. 이 경우, 불휘발성 메모리 DMA(113)는 불휘발성 메모리 장치(120)로부터 읽어낸 데이터를 버퍼 메모리(116)에 전송함과 동시에, 해당 데이터에 대응하는 섹터들에 대하여 "해당 섹터가 버퍼 메모리에 전송되었음"에 대한 정보를 메타 영역(117)에 기록한다.
불휘발성 메모리 컨트롤러(114)는 제어 유닛(110)과 불휘발성 메모리 장치(120) 사이의 인터페이싱을 담당한다. 불휘발성 메모리 컨트롤러(114)는 복수의 채널들(CH1~CHn)을 통하여 불휘발성 메모리 장치(120)에 연결되며, 쓰기 동작 시 호스트로부터 전송된 데이터를 불휘발성 메모리들(121~12n)로 스캐터링(scattering)한다. 또한, 불휘발성 메모리 컨트롤러(114)는 읽기 동작 시에 불휘발성 메모리들(121~12n)에 저장된 데이터를 채널들(CH1~CHn)을 통하여 전송받고, 이를 버퍼 메모리(116)에 전송한다.
중앙 처리 장치(115)는 저장 장치(100)의 전반적인 동작을 제어한다. 그러나, 읽기 동작 시에, 중앙 처리 장치(115)는 불휘발성 메모리 장치(120)와 버퍼 메모리(116) 사이의 데이터 교환에 관한 플로우 컨트롤(flow control)을 불휘발성 메모리 DMA(113)에 일임하고, 버퍼 메모리(116)와 호스트 사이의 데이터 교환에 관한 플로우 컨트롤을 호스트 DMA에 일임한다. 따라서, 중앙 처리 장치(115)에 대한 과도한 오버헤드(overhead)가 제거될 수 있다.
버퍼 메모리(116)는 호스트로부터 전송되는 데이터 또는 불휘발성 메모리 장치(120)로부터 읽어낸 데이터를 임시로 저장한다. 도 1에 설명된 바와 같이, 버퍼 메모리(116)는 DRAM, SRAM 등의 휘발성 메모리로 구현될 수 있으며, 플래시 메모리, PRAM, ReRAM, FRAM 등의 불휘발성 메모리로도 구현될 수 있다. 또한, 버퍼 메모리(116)의 일정 영역은 메타 영역(117)으로 할당될 수 있다.
메타 영역(117)은 불휘발성 메모리 장치(120)로부터 버퍼 메모리(116)에 전송된 데이터에 대한 메타 정보(meta information)를 임시로 저장한다. 구체적으로, 메타 영역(117)에는 "읽기 요청된 데이터에 해당하는 섹터가 버퍼 메모리에 저장되어 있음"에 관한 정보를 저장한다. 버퍼 메모리(116) 및 메타 영역(117)은 도 3을 참조하여 좀더 자세히 설명된다.
계속해서 도 2를 참조하면, 불휘발성 메모리 장치(120)는 복수의 불휘발성 메모리들(121~12n)을 포함하며, 복수의 불휘발성 메모리들(121~12n)은 각각 복수의 채널들(CH1~CHn)을 통하여 제어 유닛(110)에 연결된다. 복수의 불휘발성 메모리들(121~12n)은 플래시 메모리, PRAM, ReRAM, FRAM 등이 사용될 수 있으며, 이종의 불휘발성 메모리들이 혼용되어 사용될 수도 있다.
불휘발성 메모리로 플래시 메모리가 사용되는 경우, 플래시 메모리는 페이지(page) 단위, 또는 수퍼 페이지(super page) 단위로 읽기 동작을 수행한다. 여기서, 페이지 단위는, 예를 들어, 2 킬로 바이트(KB), 4KB 등이 될 수 있으며, 수퍼 페이지 단위는 복수의 페이지들의 집합을 한 단위로 하는 것을 의미한다.
호스트로부터 유저 데이터에 대한 쓰기 요청이 있는 경우, 유저 데이터는 복수의 채널들(CH1~CHn)을 통하여 복수의 불휘발성 메모리들(121~12n)에 분산되어 저장된다. 또한, 호스트로부터 해당 유저 데이터에 대한 읽기 요청이 있는 경우, 해당 유저 데이터는 복수의 불휘발성 메모리들(121~12n)로부터 페이지 단위 또는 수퍼 페이지 단위로 복수의 읽혀지며, 읽혀진 유저 데이터는 복수의 채널들(CH1~CHn)을 통하여 버퍼 메모리(116)로 전송된다.
종래의 경우, 각 채널을 통하여 버퍼 메모리로 전송된 데이터가 적어도 하나의 페이지를 충족하면, 해당 페이지의 전송이 완료되었음에 관한 신호가 중앙 처리 장치(115)에 전달한다. 중앙 처리 장치는 버퍼 메모리에 저장된 데이터를 페이지 단위로 호스트로의 전송을 시작한다. 이는 페이지 단위로 버퍼 메모리에 데이터를 모은 후 호스트에 전송하는 것이 시간을 단축할 수 있기 때문이다.
구체적으로, 각 채널을 통하여 버퍼 메모리로 하나의 섹터가 전송되는 시간이 1μs이고, 전송이 완료되었음에 관한 신호(이하, 콜 백(Call Back:CB) 신호)가 중앙 처리 장치에 전달되는 시간이 1μs라고 가정하자. 이 경우, 섹터 단위로 콜 백 신호(CB)가 발생한다면, 하나의 섹터에 대한 콜 백 신호가 중앙 처리 장치에 전송되기 위해서는 2μs의 시간이 필요하다. 하나의 섹터가 512KB이고 하나의 페이지가 4KB라면, 하나의 페이지에 대하여는 16μs의 시간이 필요하다.
반면, 하나의 페이지에 해당하는 데이터가 버퍼 메모리에 수집된 후 콜 백 신호를 중앙 처리 장치에 전달하는 경우, 9μs의 시간이 필요하다. 따라서, 종래의 경우, 이러한 시간 소모를 줄이기 위하여, 적어도 하나의 페이지의 데이터를 버퍼 메모리에 수집하고, 페이지 단위로 데이터를 호스트로 전송하였다. 그러나, 이러한 방식은 하나의 페이지에 해당하는 데이터가 버퍼 메모리에 수집될 때까지 대기(wait)하여야 함으로써, 읽기 레이턴시(read latency)에 의한 시간 낭비가 초래된다.
이에 반하여, 본 발명의 실시 예에 따른 저장 장치(100)는 버퍼 메모리(116)에 전송되는 데이터를 섹터 단위로 즉시 호스트로 전송한다. 따라서, 읽기 레이턴시로 인한 시간 소모가 최소화될 수 있다. 또한, 본 발명의 실시 예에 따른 저장 장치(100)는 콜 백 신호를 사용하는 대신에, 불휘발성 메모리 DMA(113)가 메타 영역(117)에 해당 섹터가 전송되었음에 관한 정보를 기록한다. 따라서, 종래 기술과 같은 콜 백 신호로 인한 시간 지연의 문제가 발생하지 않는다.
도 3은 도 2의 버퍼 메모리(116) 및 메타 영역(117)을 설명하기 위한 예시적인 도면이다. 도 3을 참조하면, 버퍼 메모리(116)는 읽기 영역(118), 메타 영역(117), 그리고 기타 영역(119)으로 구분된다.
읽기 영역(118)에는 불휘발성 메모리 장치(120)로부터 전달된 데이터가 섹터 단위로 임시로 저장된다. 메타 영역(117)에는 저장 장치(100)의 엑세스를 위한 정보, 제어 정보들이 저장된다. 메타 영역(117)의 전송 정보 영역(117a)에는 읽기 영역(118)에 저장된 섹터에 대한 전송 완료 정보가 저장된다.
좀더 자세히 설명하면, 불휘발성 메모리 장치(120, 도 2 참조)로부터 읽기 요청된 데이터 중 제 1 섹터(Sector_1)의 데이터가 읽기 영역(118)에 전송되었다고 가정하자. 이 경우, 불휘발성 메모리 DMA(114, 도 2 참조)는 메타 영역(117)의 전송 정보 영역(117a)에 제 1 섹터(Sector_1)가 전송되었음을 표시한다. 예를 들어, 전송 정보 영역(117a)의 "V1~Vn"이 각각 읽기 영역(118)의 "Sector_1~Sector_n"에 대응하는 경우, 불휘발성 메모리 DMA(114)는 "V1"의 값을 "0"에서 "1"로 변경함으로써, 제 1 섹터(Sector_1)의 데이터가 읽기 영역에 전송 완료되었음을 표시할 수 있다.
이 경우, 호스트 DMA(112, 도 2 참조)는 소정 시간 간격으로 메타 영역(117)의 전송 정보 영역(117a)에 접근하며, 전송 정보 영역(117a)의 값이 "1"인 경우에 대한 섹터의 데이터를 호스트로 즉시 전송한다. 따라서, 본 발명의 실시 예에 따른 저장 장치(100)는 버퍼 메모리(116)에 저장되는 데이터가 페이지 단위를 구성하기 이전에, 신속하게 호스트로 전송할 수 있다.
한편, 계속해서 도 3을 참조하면, 기타 영역(119)는 읽기 영역(118) 및 메타 영역(117)을 포함한 모든 영역을 포함할 수 있다. 예를 들어, 기타 영역(119)은 호스트로부터 불휘발성 메모리 장치(120)로 전송될 데이터를 임시로 저장하는 쓰기 영역을 포함할 수 있다.
도 4는 도 2의 저장 장치(100)의 동작을 설명하는 순서도이다. 이하에서는 도 2를 참조하여, 저장 장치(100)의 읽기 동작이 설명된다.
S110 단계에서, 호스트로부터 불휘발성 메모리 장치(120)에 저장된 데이터에 대한 읽기 요청이 수신된다.
S120 단계에서, 제어 유닛(110)의 제어에 응답하여, 불휘발성 메모리 장치(120)에 저장된 데이터에 대한 읽기 동작이 수행된다.
S130 단계에서, 불휘발성 메모리 DMA(113)는 불휘발성 메모리 장치(120)로부터 읽어낸 데이터를 버퍼 메모리(116)로 전송한다. 동시에, 불휘발성 메모리 DMA(113)는 버퍼 메모리(116)에 데이터가 전송되었음에 관한 정보를 섹터 단위로 메타 영역(117)에 기입한다.
S140 단계에서, 호스트 DMA(112)가 메타 영역(117)에 접근하고, 적어도 하나의 섹터에 해당하는 데이터가 버퍼 메모리(116)에 저장되어 있음을 확인한다.
S150 단계에서, 호스트 DMA(112)는 버퍼 영역(116)에 저장된 데이터를 섹터 단위로 호스트에 전송한다.
도 5 및 도 6은 도 2의 저장 장치(100)의 읽기 동작의 성능향상을 보여주는 도면이다. 구체적으로, 도 5는 종래의 페이지 단위로 버퍼 메모리에서 호스트로 데이터가 전송되는 경우를 보여주며, 도 6은 도 2의 저장 장치(100)의 섹터 단위로 버퍼 메모리(116)에서 호스트로 데이터가 전송되는 경우를 보여준다.
설명의 편의상, 읽기 요청된 데이터는 제 1 내지 제 8 섹터에 해당하는 데이터이며, 하나의 페이지는 4개의 섹터에 대응한다고 가정된다. 또한, 제 1 채널(CH1)을 통하여 제 1 내지 제 4 섹터들이 불휘발성 메모리 장치로부터 버퍼 메모리로 전송되고, 제 2 채널(CH2)을 통하여 제 5 내지 제 8 섹터들이 불휘발성 메모리 장치로부터 버퍼 메모리로 전송된다고 가정된다.
도 5를 참조하면, 종래의 경우에는 페이지 단위로 버퍼 메모리에서 호스트로 데이터가 전송된다. 따라서, 제 2 시간(t2)에 하나의 페이지를 충족하는 제 1 내지 제 4 섹터들이 버퍼 메모리에 전송되면, 제 1 콜 백 신호(CB1)가 발생한다. 중앙 처리 장치는 제 1 콜 백 신호에 응답하여, 버퍼 메모리에 저장된 제 1 내지 제 4 섹터들의 데이터를 호스트로 전송하기 시작한다. 이 경우, 제 1 섹터의 데이터가 전송 완료된 시점(제 1 시간(t1))부터 제 1 섹터가 전송 시작된 시점(제 2 시간(t2))까지의 읽기 레이턴시(read latency)가 발생한다.
한편, 하나의 페이지를 충족하는 제 5 내지 제 8 섹터들에 대한 전송은 제 3 시간(t3)에 완료되며, 제 2 콜 백 신호(CB2)가 발생한다. 중앙 처리 장치는 제 1 내지 제 4 섹터들의 호스트로의 전송이 완료된 후인 제 4 시간(t4)에, 제 5 내지 제 8 섹터들을 호스트로 전송하기 시작한다.
이에 반하여, 도 2의 저장 장치(100)는 버퍼 메모리에 하나의 섹터라도 전송되면, 해당 섹터를 즉시 호스트로 전송한다. 구체적으로, 도 6을 참조하면, 제 1 시간(t1)에 버퍼 메모리(116, 도 2 참조)에 제 1 섹터의 데이터가 전송되면, 호스트 DMA(112, 도 2 참조)는 메타 영역(117, 도 2 참조)을 참조하여 제 1 섹터가 버퍼 메모리(116)에 저장되어 있음을 인식한다. 호스트 DMA(112)는 제 1 시간(t1)에 제 1 섹터를 호스트로 즉시 전송하기 시작한다. 따라서, 도 2의 저장 장치(100)는 도 5의 읽기 레이턴시를 야기하지 않는다. 결국, 저장 장치(100)는 종래에 비하여 읽기 레이턴시로 인한 시간 소모를 최소화할 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 저장 장치(200)를 보여주는 블록도이다. 도 7의 저장 장치(200)는 도 2의 저장 장치(100)와 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 사용하여 설명되며, 유사한 설명은 이하 생략된다.
도 7을 참조하면, 저장 장치(200)는 제어 유닛(210) 및 불휘발성 메모리 장치(220)를 포함하며, 제어 유닛(210)은 호스트 인터페이스(211), 불휘발성 메모리 인터페이스(214), 중앙 처리 장치(215), 버퍼 메모리(216) 그리고 메타 영역(217)을 포함한다.
도 7의 저장 장치(200)는 도 2의 저장 장치(100)와 달리 중앙 집중 방식을 사용한다. 즉, 도 2의 저장 장치(100)가 읽기 동작 또는 쓰기 동작 시의 데이터 전송을 호스트 DMA(112, 도 2 참조) 및 불휘발성 메모리 DMA(114)가 담당하도록 함으로써 중앙 처리 장치(115, 도 2 참조)의 기능을 분산함에 비하여, 도 7의 저장 장치(200)는 중앙 처리 장치(215)가 읽기 동작 또는 쓰기 동작 시의 데이터 전송을 담당한다. 한편, 도 7의 호스트 인터페이스(211) 및 불휘발성 메모리 인터페이스(214)는 각각 호스트 및 불휘발성 메모리 장치(200)의 인터페이싱을 제공하며, 자세한 설명은 생략된다.
도 8은 본 발명의 다른 실시 예에 따른 저장 장치(300)를 보여주는 블록도이다. 도 8의 저장 장치(300)는 도 2의 저장 장치(100)와 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 사용하여 설명되며, 유사한 설명은 이하 생략된다.
도 8의 저장 장치(300)는 불휘발성 메모리 장치(320)에 저장된 데이터의 무결성을 보장하기 위하여, 에러 정정(error correction) 기능을 제공한다. 이를 위하여, 도 8의 저장 장치(300)는 도 2의 저장 장치(100)에 비하여 ECC 회로(318)를 더 포함한다.
ECC 회로(318)는 불휘발성 메모리 장치(320)로부터 수신한 데이터의 에러 비트를 정정하기 위한 에러 정정 코드(ECC)를 생성한다. ECC 회로(318)는 불휘발성 메모리 장치(320)로 제공되는 데이터의 오류 정정 인코딩을 수행하여, ECC 비트(또는, 패리티(parity) 비트)가 부가된 데이터를 형성한다. 또한, ECC 회로(318)는 출력된 데이터에 대하여 에러 정정 디코딩을 수행하고, 수행 결과에 따라 에러 정정 디코딩의 성공 여부를 판단할 수 있다. ECC 회로(318)는 판단 결과에 따라 지시 신호를 출력하고, ECC 비트를 사용하여 데이터의 에러 비트를 정정할 수 있다.
ECC 회로(318)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있다. ECC 회로(318)는 오류 정정을 위한 회로, 시스템 또는 장치를 모두 포함할 수 있다.
불휘발성 메모리 장치(320)로부터 버퍼 메모리(316)에 전송된 데이터에 대하여 에러 정정(error correction) 동작이 수행되는 경우, 불휘발성 메모리 DMA(313)는 데이터의 전송 결과 및 에러 정정 결과에 따라, 해당 데이터의 상태를 메타 영역(317)에 기록한다. 에러 정정 결과에 따른 불휘발성 메모리 DMA(313)의 기입 방식은 도 9 및 도 10을 참조하여 좀더 자세히 설명된다.
도 9는 도 8의 에러 정정 기능을 제공하는 저장 장치(300)의 메타 영역(317)을 보여주는 도면이며, 도 10은 도 9의 메타 영역(317)에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 9를 참조하면, 메타 영역(317)은 읽기 요청된 데이터에 대응하는 각 섹터에 대한 정보가 기록되는 전송 정보 영역(317a)을 포함한다. 각 섹터에 대한 정보는 최소 2 비트로 구성되며, 각각 에러 정정 여부에 관한 정보 및 전송 완료 여부에 관한 정보를 나타낸다.
버퍼 메모리(316, 도 8 참조)에 소정 섹터(S)가 전송된 경우, 불휘발성 메모리 DMA(313, 도 8 참조)는 전송 결과 및 에러 정정 결과에 따라 전송 정보 영역(317a)의 "U" 및 "V"에 데이터를 기입한다. 예를 들어, 제 1 섹터(S1)가 버퍼 메모리(316)에 전송된 경우, 불휘발성 메모리 DMA(313)는 전송 정보 영역(317a)의 "U1" 및 "V1"에 데이터를 기입한다. 여기서, "U"는 "에러 정정에 대한 정보"를 나타내며, "V"는 "데이터 전송에 대한 정보"를 나타낸다.
예를 들어, 도 10을 참조하면, "U" 및 "V"가 각각 "0" 및 "0"인 경우, 이는 불휘발성 메모리 DMA(113)에 의하여 아직 데이터가 기입되지 않은 상태를 의미할 수 있다. 즉, 이는 버퍼 메모리(316)로 아직 해당 섹터가 전송되지 않은 상태를 의미할 수 있다. "U" 및 "V"가 각각 "0" 및 "1"인 경우, 해당 섹터에 데이터의 전송이 완료되었으며, 해당 섹터에 에러가 없거나 에러 정정 동작에 의하여 에러가 수정되었음을 나타낼 수 있다. "U" 및 "V"가 각각 "1" 및 "0"인 경우, 해당 섹터에 대한 에러 정정 동작이 수행 중임을 나타낼 수 있다. "U" 및 "V"가 각각 "1" 및 "1"인 경우, 해당 섹터에 대한 데이터가 전송되었으나, 치유 불가능한 에러가 있음을 나타낼 수 있다.
도 8 내지 도 10을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 저장 장치는 불휘발성 메모리 장치에 저장된 데이터의 무결성을 보장하기 위한 에러 정정 기능을 제공할 수 있다.
한편, ECC 회로(318)의 에러 정정 단위가 호스트로의 전송 단위(즉, 섹터 단위)와 상이할 수 있다. 예를 들어, ECC 회로(318)는 두 개의 섹터를 하나의 단위로 하여 에러 정정 동작을 수행할 수 있다. 이 경우, 불휘발성 메모리 DMA(313)는 에러 정정 단위에 따라 전송 정보 영역(317a)에 데이터를 기입할 수 있다. 예를 들어, 두 개의 섹터를 하나의 단위로 에러 정정 동작이 수행되는 경우, 불휘발성 메모리 DMA(313)는 두 개의 섹터를 하나의 단위로 하여 전송 결과 및 에러 정정 결과를 전송 정보 영역(317a)에 기입하고, 호스트 DMA(312)는 두 개의 섹터를 하나의 단위로 하여 해당 데이터를 호스트로 전송할 수 있다.
한편, 이러한 에러 정정 기능은 버퍼 메모리의 메타 영역에 저장된 데이터에 대하여도 제공될 수 있다. 구체적으로, 메타 영역의 전송 정보 영역에 저장된 데이터에 대한 무결성을 보장하기 위하여, ECC 회로에 의한 에러 정정 기능이 제공될 수 있다.
한편, 본 발명의 다른 실시 예에 의하면, 메타 영역에 저장된 데이터는 동일한 데이터를 중복 기입하는 방식으로 무결성이 보장될 수 있다. 이는 이하의 도 11 및 도 12를 참조하여 좀더 자세히 설명된다.
도 11은 메타 영역(417)에 저장된 데이터의 무결성을 보장하기 위한 일 실시 예를 보여주는 도면이며, 도 12는 도 11의 메타 영역(417)에 기록될 수 있는 정보의 일 예를 보여주는 도면이다.
도 11을 참조하면, 메타 영역(417)은 읽기 요청된 데이터에 대응하는 각 섹터에 대한 정보가 기록되는 전송 정보 영역(417a)을 포함한다. 각 섹터에 대한 정보는 최소 3 비트로 구성되며, 각 섹터의 전송 결과에 대한 동일한 데이터가 최소 3번 중복하여 기입된다. 예를 들어, 제 1 섹터(S1)가 버퍼 메모리(416)에 전송된 경우, 불휘발성 메모리 DMA(113, 도 2 참조)는 전송 정보 영역(417a)의 3개의 "V1"들에 "1"을 3번 기입한다. 따라서, 하나의 "V1"에 대한 데이터가 변경되더라도, 해당 데이터가 안전하게 보호될 수 있다.
예를 들어, 도 12를 참조하면, 3개의 "V"들이 두 개 이상의 "1"을 포함하는 경우, 이는 해당 섹터가 버퍼 메모리(116, 도 2 참조)에 저장되어 있음을 나타낼 수 있다. 반대로, 3개의 "V"들이 두 개 이상의 "0"을 포함하는 경우, 이는 해당 섹터가 버퍼 메모리(116)에 저장되어 있지 않음을 나타낸 수 있다.
전송 정보 영역의 메타 데이터를 중복 기입하는 방식을 사용함으로써, 본 발명의 실시 예에 따른 저장 장치는 버퍼 메모리에 전송된 섹터에 대한 메타 정보를 ECC 알고리즘을 사용하지 않고도 안전하게 보호할 수 있다.
도 13은 본 발명의 실시 예에 따른 저장 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(1000)은 호스트(1100)와 메모리 카드(1200)를 포함한다. 호스트(1100)는 호스트 컨트롤러(1110), 호스트 접속 유닛(1120), 그리고 디램(1130)을 포함한다.
호스트(1100)는 메모리 카드(1200)에 데이터를 쓰거나, 메모리 카드(1200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(1110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(1100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(1120)을 통해 메모리 카드(1200)로 전송한다. 디램(1130)은 호스트(1100)의 메인 메모리이다.
메모리 카드(1200)는 카드 접속 유닛(1210), 카드 컨트롤러(1220), 그리고 플래시 메모리(1230)를 포함한다. 카드 컨트롤러(1220)는 카드 접속 유닛(1210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(1220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(1230)에 저장한다. 플래시 메모리(1230)는 호스트(1100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(1100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 13에 도시된 메모리 카드 시스템(1000)은 카드 컨트롤러(1220) 내에 버퍼 메모리 및 메타 영역을 포함할 수 있다. 호스트로부터 유저 데이터에 대한 읽기 요청이 있는 경우, 읽기 요청된 데이터에 해당하는 섹터들 중 하나의 섹터만이라도 버퍼 메모리로 전송되면, 해당 섹터가 전송되었음에 관한 정보를 메타 영역에 기록할 수 있다. 따라서, 섹터 단위로 호스트로의 전송이 가능하여, 읽기 레이턴시로 인한 전송 시간의 증가를 방지할 수 있다.
한편, 본 발명의 실시 예에 따른 저장 장치는 메모리 카드 외에 SSD(Solid State Drive or Solid State Disk)로 사용될 수 있으며, 이 경우 제어 유닛(110)은 SSD 컨트롤러로 불휘발성 메모리 장치(120)는 SSD의 저장 매체로 각각 사용될 수 있다.
도 14는 본 발명의 실시 예에 따른 저자 장치를 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(2000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 14를 참조하면, 전자 장치(2000)는 저장 장치(2100), 전원 장치(2200), 보조 전원 장치(2250), 중앙처리장치(2300), 디램(2400), 그리고 사용자 인터페이스(2500)를 포함한다. 저장 장치(2100)는 플래시 메모리(2110) 및 메모리 컨트롤러(2120)를 포함한다. 저장 장치(2100)는 전자 장치(2000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(2000)는 호스트로부터 유저 데이터에 대한 읽기 요청이 있는 경우, 읽기 요청된 데이터에 해당하는 섹터들 중 하나의 섹터만이라도 버퍼 메모리로 전송되면, 해당 섹터가 전송되었음에 관한 정보를 메타 영역에 기록할 수 있다. 따라서, 섹터 단위로 호스트로의 전송이 가능하여, 읽기 레이턴시로 인한 전송 시간의 증가를 방지할 수 있다.
한편, 본 발명의 실시 예에 따른 메모리 시스템은 2차원 구조를 갖는 플래시 메모리뿐만 아니라, 3차원 구조를 갖는 플래시 메모리에도 적용될 수 있다.
도 15는 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 15를 참조하면, 플래시 메모리(3000)는 3차원 셀 어레이(3110), 데이터 입출력 회로(3120), 어드레스 디코더(3130), 그리고 제어 로직(3140)을 포함한다.
3차원 셀 어레이(3110)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 플래시 메모리(6100)의 소거 단위를 이룬다.
데이터 입출력 회로(3120)는 복수의 비트 라인(BLs)을 통해 3차원 셀 어레이(3110)와 연결된다. 데이터 입출력 회로(3120)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(3110)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(3130)는 복수의 워드 라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(3110)와 연결된다. 어드레스 디코더(3130)는 어드레스(ADDR)를 입력받고 워드 라인을 선택한다.
제어 로직(3140)은 플래시 메모리(3000)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(3140)은 프로그램 동작 시에, 어드레스 디코더(3130)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(3120)를 제어함으로 데이터가 프로그램되도록 할 수 있다.
도 16은 도 15에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 16을 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 16을 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트 라인(BL1~BL3)과 연결될 수 있다. 도 16에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드 라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
도 17은 도 16에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 17를 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11~NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL1~GSL3)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 17을 참조하면, 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 분리되어 있다. 제 1 워드 라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램하는 경우에는, 제 1 워드 라인(WL1)과 제 1 선택 라인(SSL1, GSL1)이 선택된다.
한편, 도 1 내지 도 17을 참조한 설명에서, 본 발명의 기술적 사상을 설명하기 위하여 제공된 실시 예들은 읽기 동작이 수행되는 경우로 한정되었다. 그러나 이는 예시적인 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다.
예를 들어, 본 발명의 기술적 사상은 읽기 동작이 수행되는 경우뿐만 아니라, 쓰기 동작이 수행되는 경우에도 적용될 수 있다. 도 2를 참조하여 좀더 자세히 설명하면, 호스트로부터 유저 데이터에 대한 쓰기 요청이 있는 경우, 호스트 DMA(116)는 해당 데이터를 버퍼 메모리(116)에 기입하고, 각 섹터에 대한 전송 완료 여부에 대한 정보를 메타 영역(117)에 기입할 수 있다. 불휘발성 메모리 DMA(113)는 메타 영역(117)에 기입된 정보를 기초로, 버퍼 메모리(116)에 저장된 데이터를 확인할 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100, 200, 300: 저장 장치
110, 210, 310: 제어 유닛
120, 220, 320: 불휘발성 메모리 장치
111, 311: 호스트 컨트롤러
112, 312: 호스트 다이렉트 메모리 엑세스
113, 313: 불휘발성 메모리 다이렉트 메모리 엑세스
114, 314: 불휘발성 메모리 컨트롤러
116, 216, 316: 버퍼 메모리
117, 217, 317: 메타 영역
115, 215, 315: 중앙 처리 장치
110, 210, 310: 제어 유닛
120, 220, 320: 불휘발성 메모리 장치
111, 311: 호스트 컨트롤러
112, 312: 호스트 다이렉트 메모리 엑세스
113, 313: 불휘발성 메모리 다이렉트 메모리 엑세스
114, 314: 불휘발성 메모리 컨트롤러
116, 216, 316: 버퍼 메모리
117, 217, 317: 메타 영역
115, 215, 315: 중앙 처리 장치
Claims (10)
- 불휘발성 메모리 장치;
상기 불휘발성 메모리 장치로부터 전송되는 데이터를 임시로 저장하는 버퍼 메모리; 및
상기 데이터를 구성하는 단위 데이터가 상기 불휘발성 메모리로부터 상기 버퍼 메모리에 입력될 때, 상기 단위 데이터가 입력되었음에 대한 메타 정보를 상기 버퍼 메모리에 기입하는 제어 유닛을 포함하는 저장 장치. - 제 1 항에 있어서,
상기 제어 유닛은 상기 메타 정보를 통하여 상기 단위 데이터가 상기 버퍼 메모리에 저장되어 있음을 확인한 후에, 상기 단위 데이터의 호스트로의 전송을 시작하는 저장 장치. - 제 2 항에 있어서,
상기 제어 유닛은 미리 정해진 시간 간격으로 상기 메타 정보를 확인하는 저장 장치. - 제 1 항에 있어서,
상기 제어 유닛은 상기 메타 정보를 상기 버퍼 메모리에 중복적으로 기입하는 저장 장치. - 제 1 항에 있어서,
상기 제어 유닛은 호스트와 데이터를 교환하며, 상기 단위 데이터는 상기 제어 유닛과 상기 호스트 사이의 데이터 교환 단위인 섹터 단위인 저장 장치. - 제 1 항에 있어서,
상기 제어 유닛은 호스트로부터 쓰기 요청된 데이터가 전송될 때, 상기 쓰기 요청된 데이터를 구성하는 단위 데이터가 상기 호스트로부터 상기 버퍼 메모리에 입력될 때, 상기 쓰기 요청된 데이터의 단위 데이터가 입력되었음에 대한 메타 정보를 상기 버퍼 메모리에 기입하는 저장 장치. - 불휘발성 메모리 장치;
상기 불휘발성 메모리 장치로부터 전송되는 데이터를 임시로 저장하는 버퍼 메모리; 및
상기 불휘발성 메모리 장치와 상기 버퍼 메모리 사이에 데이터 교환을 담당하는 불휘발성 메모리 DMA를 포함하며,
상기 불휘발성 메모리 DMA는 상기 불휘발성 메모리 장치로부터 전송되는 데이터를 구성하는 단위 데이터가 상기 버퍼 메모리에 저장될 때, 상기 단위 데이터가 상기 버퍼 메모리에 입력되었음에 관한 전송 완료 정보를 상기 버퍼 메모리의 메타 영역에 기입하는 저장 장치. - 제 7 항에 있어서,
상기 버퍼 메모리와 호스트 사이의 데이터 교환을 담당하는 호스트 DMA를 더 포함하며, 상기 호스트 DMA는 소정 시간 간격으로 상기 버퍼 메모리의 상기 메타 영역에 기록된 정보를 확인하는 저장 장치. - 제 8 항에 있어서,
상기 호스트 DMA는 상기 메타 영역에 기록된 정보를 통하여 상기 버퍼 메모리에 적어도 하나의 단위 데이터가 저장되어 있음을 확인한 후에 상기 버퍼 메모리에 저장된 상기 적어도 하나의 단위 데이터를 상기 호스트로 전송 시작하는 저장 장치. - 제 8 항에 있어서,
상기 단위 데이터는 상기 호스트 DMA와 상기 호스트 사이의 데이터 교환 단위인 섹터 단위이며,
상기 호스트 DMA는 상기 호스트로부터 쓰기 요청된 데이터를 상기 버퍼 메모리에 입력하며,
상기 쓰기 요청된 데이터가 상기 섹터 단위로 상기 버퍼 메모리에 입력될 때마다, 상기 섹터 단위의 데이터가 상기 버퍼 메모리에 입력되었음에 대한 정보를 상기 메타 영역에 기입하는 저장 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120020325A KR101888009B1 (ko) | 2012-02-28 | 2012-02-28 | 저장 장치 |
US13/716,752 US8898352B2 (en) | 2012-02-28 | 2012-12-17 | Storage device |
US14/515,217 US9075531B2 (en) | 2012-02-28 | 2014-10-15 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120020325A KR101888009B1 (ko) | 2012-02-28 | 2012-02-28 | 저장 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130098642A true KR20130098642A (ko) | 2013-09-05 |
KR101888009B1 KR101888009B1 (ko) | 2018-09-07 |
Family
ID=49004635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120020325A KR101888009B1 (ko) | 2012-02-28 | 2012-02-28 | 저장 장치 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8898352B2 (ko) |
KR (1) | KR101888009B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160144557A (ko) * | 2015-06-08 | 2016-12-19 | 삼성전자주식회사 | 읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치 |
US9690698B2 (en) | 2014-12-10 | 2017-06-27 | SK Hynix Inc. | Controller including map table, memory system including semiconductor memory device, and method of operating the same |
US10496281B2 (en) | 2014-11-12 | 2019-12-03 | Samsung Electronics Co., Ltd. | Data storage device, data processing system and method of operation |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016103112A (ja) * | 2014-11-27 | 2016-06-02 | 株式会社リコー | データ転送制御装置、情報処理装置、画像形成装置 |
CN106326142B (zh) * | 2015-06-17 | 2019-05-21 | 群联电子股份有限公司 | 缓冲存储器存取方法、存储器控制器与存储器存储装置 |
KR20170008339A (ko) * | 2015-07-13 | 2017-01-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9880783B2 (en) | 2015-10-28 | 2018-01-30 | Sandisk Technologies Llc | System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller |
WO2017074571A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Llc | System and method for utilization of a data buffer |
KR102491651B1 (ko) * | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
KR102473209B1 (ko) | 2015-12-14 | 2022-12-02 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20170094674A (ko) * | 2016-02-11 | 2017-08-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
US10853233B2 (en) * | 2016-10-18 | 2020-12-01 | Toshiba Memory Corporation | Reconstruction of address mapping in a host of a storage system |
KR102392844B1 (ko) * | 2017-03-10 | 2022-05-03 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
KR102507302B1 (ko) * | 2018-01-22 | 2023-03-07 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
CN109032505A (zh) * | 2018-06-26 | 2018-12-18 | 深圳忆联信息系统有限公司 | 带时效的数据读写方法、装置、计算机设备及存储介质 |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11500559B2 (en) * | 2020-06-10 | 2022-11-15 | Western Digital Technologies, Inc. | Systems and methods for configuring a data storage device |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016267A1 (en) * | 2006-06-30 | 2008-01-17 | Tdk Corporation | Memory controller, flash memory system having memory controller, and method for controlling flash memory |
KR20100037874A (ko) * | 2008-10-02 | 2010-04-12 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 데이터 처리 방법 |
US20130019051A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Meta data handling within a flash media controller |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260082B1 (en) | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
JP2001014266A (ja) | 1999-06-29 | 2001-01-19 | Nec Yonezawa Ltd | Dma転送回路およびdma転送方法 |
KR20030072525A (ko) | 2002-03-04 | 2003-09-15 | 주식회사 엘지이아이 | 직접 메모리 접근 제어 장치 및 그 제어 방법 |
KR20070060854A (ko) | 2005-12-09 | 2007-06-13 | 엠텍비젼 주식회사 | 멀티 채널 직접 메모리 접근 제어기 |
-
2012
- 2012-02-28 KR KR1020120020325A patent/KR101888009B1/ko active IP Right Grant
- 2012-12-17 US US13/716,752 patent/US8898352B2/en not_active Expired - Fee Related
-
2014
- 2014-10-15 US US14/515,217 patent/US9075531B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016267A1 (en) * | 2006-06-30 | 2008-01-17 | Tdk Corporation | Memory controller, flash memory system having memory controller, and method for controlling flash memory |
KR20100037874A (ko) * | 2008-10-02 | 2010-04-12 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 데이터 처리 방법 |
US20130019051A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Meta data handling within a flash media controller |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496281B2 (en) | 2014-11-12 | 2019-12-03 | Samsung Electronics Co., Ltd. | Data storage device, data processing system and method of operation |
US9690698B2 (en) | 2014-12-10 | 2017-06-27 | SK Hynix Inc. | Controller including map table, memory system including semiconductor memory device, and method of operating the same |
KR20160144557A (ko) * | 2015-06-08 | 2016-12-19 | 삼성전자주식회사 | 읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치 |
Also Published As
Publication number | Publication date |
---|---|
US8898352B2 (en) | 2014-11-25 |
US20130227347A1 (en) | 2013-08-29 |
US20150033097A1 (en) | 2015-01-29 |
US9075531B2 (en) | 2015-07-07 |
KR101888009B1 (ko) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101888009B1 (ko) | 저장 장치 | |
KR101888074B1 (ko) | 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 | |
KR102094334B1 (ko) | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 | |
US8904090B2 (en) | Non-volatile memory device, devices having the same, and method of operating the same | |
KR102664674B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20170064992A (ko) | 중복제거를 위한 어드레스 매핑을 포함하는 플래시 메모리 장치 및 그 동작 방법 | |
CN107957959B (zh) | 具有文件级安全擦除的存储器系统及其操作方法 | |
US20170109276A1 (en) | Memory system and operation method thereof | |
KR20150138528A (ko) | 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법 | |
JP2013114679A (ja) | ウェアレベル制御ロジックを含むメモリシステム | |
US9257192B2 (en) | Memory system performing multi-step erase operation based on stored metadata | |
KR20130084846A (ko) | 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법 | |
KR20170050953A (ko) | 메모리 시스템 및 그의 동작방법 | |
KR20170059658A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20170061218A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20140001535A (ko) | 스토리지 시스템 및 그것의 데이터 관리 방법 | |
TW201724118A (zh) | 記憶體系統及記憶體系統的操作方法 | |
TW201723852A (zh) | 記憶體系統及其操作方法 | |
TWI716381B (zh) | 資料處理系統 | |
KR20180111158A (ko) | 메모리 시스템 및 그의 동작 방법 | |
KR20180008966A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200113990A (ko) | 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치 | |
KR20240057337A (ko) | 쓰기 데이터를 복수의 메모리 영역에 분산 저장하는 장치 및 방법 | |
CN114968856B (zh) | 存储器系统及其操作方法 | |
CN116126222A (zh) | 包括非易失性存储器装置的存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |