KR102022446B1 - 데이터 저장 장치 및 이의 동작 방법 - Google Patents
데이터 저장 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR102022446B1 KR102022446B1 KR1020120141273A KR20120141273A KR102022446B1 KR 102022446 B1 KR102022446 B1 KR 102022446B1 KR 1020120141273 A KR1020120141273 A KR 1020120141273A KR 20120141273 A KR20120141273 A KR 20120141273A KR 102022446 B1 KR102022446 B1 KR 102022446B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- input data
- size
- aligned
- semiconductor memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Abstract
데이터 저장 장치 및 이의 동작 방법은 호스트로부터 입력되는 데이터가 반도체 메모리에 기저장된 데이터와 정렬되지 않는 경우 입력데이터가 수신되는 동안 기저장된 데이터 중 입력데이터로 갱신되지 않는 미갱신 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.
Description
본 발명은 데이터 저장 장치 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 동작 시간을 감소시킬 수 있는 데이터 저장 장치 및 이의 동작 방법에 관한 것이다.
불휘발성 메모리는 전원이 꺼지더라도 저장된 정보가 사라지지 않는 특성을 갖는다. 불휘발성 메모리 중 특히 플래시 메모리는 소비전력이 적고 하드디스크와 같은 종래의 디스크에 비해 데이터 접근 성능이 빠르고 크기가 작다. 또한 물리적인 충격에 강하고 무게가 가볍다는 장점을 갖는다. 이러한 특성으로 인해서, 플래시 메모리는 최근에 MP3 플레이어, 휴대전화기, 개인정보단말기(PDA), 디지털 카메라/캠코더 등의 휴대용 정보기기들의 보조기억장치로 많이 사용되고 있다.
그런데 플래시 메모리는 하드 디스크와 달리 특정 섹터(sector)에 쓰기연산(write)을 하기 위해서 해당 섹터가 비어 있어야 한다. 즉, 데이터가 쓰여 있는 섹터에 대해 덮어쓰기(overwrite)가 허용되지 않는다. 따라서 이런 경우에는 섹터를 포함하는 블록 전체를 소거연산(erase)을 통해서 지운 후에 쓰기연산을 수행해야 한다. 그러나 블록의 소거연산을 수행하는데 걸리는 시간은 쓰기연산과 읽기연산(read)에 비해 훨씬 크다. 이러한 플래시 메모리의 특징은 플래시 메모리가 종래의 하드디스크를 대체하는 것을 어렵게 하고, 플래시 메모리 시스템의 전체 성능의 저하를 초래한다.
이러한 플래시 메모리의 문제점을 해결하기 위해서 플래시 변환 계층(Flash Translation Layer, 이하 FTL)과 같은 시스템 소프트웨어를 사용한다. FTL은 플래시 메모리와 파일시스템 사이에 위치하여 파일시스템이 플래시 메모리를 하드디스크처럼 블록 디바이스로 사용할 수 있게 한다. FTL을 사용하면 별도의 파일시스템 없이도 종래의 하드디스크에서 사용되는 파일시스템을 사용할 수 있다. FTL은 메모리 컨트롤러와 별개로 저장 장치 내에 포함될 수 있다.
FTL은 매핑 테이블(mapping table)을 통해 논리적 어드레스(logical address)를 물리적 어드레스(physical address)로 변환한다. 그런데 플래시 메모리 특히, NAND 플래시 메모리의 경우에는 쓰기 동작의 최소 단위가 페이지(page)이기 때문에 섹터 단위의 쓰기 요청에 대해서는 데이터 부정렬(misalign)이 발생할 수 있다.
데이터 부정렬이 발생하면 NAND 플래시 메모리에 기저장된 데이터를 리드해야 한다. 따라서 이러한 리드 동작을 효율적으로 수행할 필요가 있다.
본 발명의 실시예는 호스트로부터 입력되는 데이터가 반도체 메모리에 기저장된 데이터와 정렬되지 않는 경우 입력데이터가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있는 데이터 저장 장치 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법은 호스트로부터 프로그램 명령이 입력되는 단계, 상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계, 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우, 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하는 단계, 및 상기 기저장된 데이터를 상기 입력데이터로 갱신하여 프로그램하는 단계를 포함할 수 있다.
상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계는 상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하는 단계, 및 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계를 포함한다.
상기 시작 어드레스가 페이지 시작 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단한다.
상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계에서, 상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단한다.
데이터 저장 장치의 동작 방법은 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하는 단계, 및 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하는 단계를 더 포함한다.
본 발명의 실시예에 따른 데이터 저장 장치는 반도체 메모리, 및 호스트로부터 프로그램 명령이 입력되면 상기 프로그램 명령으로부터 입력데이터가 상기 반도체 메모리에 기저장된 데이터와 정렬되는지 판단하도록 구성된 컨트롤러를 포함하고, 상기 컨트롤러는 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하기 위해 상기 반도체 메모리에 리드 요청을 전송하고, 리드된 상기 기저장된 데이터를 상기 입력데이터로 갱신하여 상기 반도체 메모리에 프로그램하기 위해 상기 반도체 메모리에 프로그램 요청을 전송한다.
상기 컨트롤러는 상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하고 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하도록 구성된다.
상기 컨트롤러는 상기 시작 어드레스가 페이지 시작 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된다.
상기 컨트롤러는 상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된다.
상기 컨트롤러는 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하고 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하도록 구성된다.
본 발명의 실시예는 호스트로부터 입력되는 데이터가 반도체 메모리에 기저장된 데이터와 정렬되지 않는 경우 입력데이터가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.
도 1은 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 2는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시예에 따른 데이터 저장 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 5 및 도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 5의 단계 330의 세부 동작을 설명하기 위한 흐름도이다.
도 8 및 도 9는 도 7의 단계 334의 세부 동작을 설명하기 위한 흐름도이다.
도 10은 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 2는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시예에 따른 데이터 저장 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 5 및 도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 5의 단계 330의 세부 동작을 설명하기 위한 흐름도이다.
도 8 및 도 9는 도 7의 단계 334의 세부 동작을 설명하기 위한 흐름도이다.
도 10은 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범위는 본원의 특허 청구 범위에 의해서 이해되어야 한다.
도 1은 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 2는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
호스트로부터의 쓰기요청은 페이지 크기보다 작은 크기의 쓰기 요청의 비율이 높다. 예를 들어, 반도체 메모리의 페이지 크기가 8KB 또는 16KB라고 하면, 기저장된 데이터가 8KB 또는 16KB이다. 이 중 갱신하고자 하는 데이터의 크기가 예를 들어 페이지 크기보다 작은 4KB라고 하면, 기저장된 데이터를 리드 동작을 통해 반도체 메모리로부터 읽어온다. 반도체 메모리의 페이지 크기는 설명의 편의를 위해 예시적으로 기재한 것이고, 이에 한정되는 것은 아니다.
도 1 및 도 2를 참조하면, 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법에서는 우선 호스트로부터 프로그램 명령(CMD)을 수신한다(S110). 데이터 저장 장치가 호스트로부터 프로그램 명령(CMD)을 수신했다는 응답신호(RS)을 호스트로 출력하면, 호스트는 응답신호(RS)에 따라 데이터 저장 장치로 데이터를 출력하고, 데이터 저장 장치는 입력데이터를 수신한다(S120).
그 다음, 데이터 저장 장치는 입력데이터가 기저장된 데이터와 정렬되는지를 판단한다(S130).
예를 들어 입력데이터가 4KB이고 페이지 크기가 8KB라고 가정하면, 입력데이터는 기저장된 데이터와 정렬되지 않는다.
입력데이터가 기저장된 데이터와 정렬되지 않으면 반도체 메모리로부터 기저장된 데이터를 리드한다(S140).
그 다음 리드한 데이터 중 갱신하고자 하는 부분을 입력데이터로 갱신한 후에 갱신된 데이터를 반도체 메모리에 프로그램한다(S150).
이와 같이, 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법에서는 호스트로부터 입력데이터를 수신한 후에 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 반도체 메모리로부터 기저장된 데이터를 리드한다.
도 3은 본 발명의 실시예에 따른 데이터 저장 장치를 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 데이터 저장 장치(220)는 반도체 메모리(222)와 컨트롤러(224)를 포함한다.
반도체 메모리(222)는 메모리 어레이를 포함하여 쓰기 요청에 따라 호스트(210)로부터 수신되는 데이터를 저장하고, 읽기 요청에 따라 저장된 데이터를 호스트(210)로 출력한다.
FTL(미도시)은 호스트(210)로부터 입력되는 데이터가 저장될 논리적 어드레스(섹터 어드레스)를 물리적 어드레스(페이지 어드레스)로 변환한다.
컨트롤러(224)는 호스트(210)로부터의 프로그램 명령(CMD)에 따라 반도체 메모리(222)에 쓰기 요청을 출력하여 입력데이터를 반도체 메모리(222)에 프로그램(WRITE)한다. 또한 컨트롤러(224)는 반도체 메모리(222)에 읽기 요청을 출력하여 저장된 데이터를 리드(READ)한다.
컨트롤러(224)는 예를 들면 SRAM과 같은 램(225)을 포함하여 호스트로부터 입력되는 데이터 또는 반도체 메모리로부터 리드한 데이터를 저장한다.
컨트롤러(224)는 호스트(210)로부터 프로그램 명령(CMD)가 입력되면 호스트(210)에 응답신호(RS)를 출력한다. 호스트(210)가 응답신호(RS)에 따라 데이터(DATA)를 출력하면 컨트롤러(224)는 데이터(DATA)를 수신한다.
한편, 컨트롤러(224)는 호스트(210)로부터 프로그램 명령(CMD)가 입력되면 프로그램 명령(CMD)으로부터 입력될 데이터(DATA)가 반도체 메모리(222)에 기저장된 데이터와 정렬되는지를 판단한다. 컨트롤러(224)는 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 경우 기저장된 데이터를 리드하기 위해 반도체 메모리(222)에 리드 요청을 전송한다.
프로그램 명령(CMD)에는 프로그램 시작 어드레스와 섹터 크기가 포함된다. 컨트롤러(224)는 프로그램 명령(CMD)에 포함된 프로그램 시작 어드레스와 섹터 크기로부터 종료 어드레스를 결정하고, 시작 어드레스와 종료 어드레스로부터 입력데이터(DATA)가 기저장된 데이터와 정렬되는지를 판단한다.
실시예로서, 컨트롤러(224)는 시작 어드레스가 페이지 내에서의 첫 번째 섹터의 어드레스가 아닌 경우(예: 시작 어드레스가 '0'가 아닌 경우) 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 것으로 판단한다.
다른 실시예로서, 컨트롤러(224)는 입력데이터(DATA)의 크기가 페이지 크기와 일치하지 않는 경우 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 것으로 판단한다.
이하에, 상기 구성을 갖는 데이터 저장 장치의 동작 방법을 설명하기로 한다.
도 4는 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 5 및 도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 4 내지 도 6을 참조하면, 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법에서는 우선 호스트로부터 프로그램 명령(CMD)을 수신한다(S310).
데이터 저장 장치는 호스트로부터 프로그램 명령(CMD)을 수신했다는 응답신호(RS)을 호스트로 출력하고(S320), 호스트가 응답신호(RS)에 따라 데이터를 출력하면 입력되는 데이터를 수신한다(S340).
한편, 데이터 저장 장치는 프로그램 명령(CMD)로부터 입력데이터가 기저장된 데이터와 정렬되는지를 판단한다(S330). 입력데이터(DATA)가 예를 들어 4KB이고 페이지 크기가 예를 들어 8KB라고 가정하면, 입력데이터는 기저장된 데이터와 정렬되지 않는다. 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 데이터 저장 장치의 컨트롤러는 반도체 메모리에 기저장된 데이터를 리드하기 위한 리드 요청을 전송한다.
데이터 저장 장치는 호스트로부터 입력데이터(DATA)를 수신하는 동안 반도체 메모리로부터 기저장된 데이터를 리드한다(S350).
그 다음 리드한 데이터 중 갱신하고자 하는 부분을 입력데이터로 갱신한 후에 갱신된 데이터를 반도체 메모리에 프로그램한다(S370).
이와 같이, 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법에서는 입력데이터를 수신하기 전에 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지를 확인하고 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 기저장된 데이터를 리드하기 위한 리드 요청을 전송한다. 따라서 호스트로부터 입력데이터를 수신하는 동안 반도체 메모리로부터 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.
도 7은 도 5의 단계 330의 세부 동작을 설명하기 위한 흐름도이고, 도 8 및 도 9는 도 7의 단계 334의 세부 동작을 설명하기 위한 흐름도이다.
도 7을 참조하면, 데이터 저장 장치는 프로그램 명령(CMD)에 포함된 시작 어드레스와 섹터 크기로부터 종료 어드레스를 결정하고(S332), 시작 어드레스와 종료 어드레스로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단할 수 있다(S334).
도 8을 참조하면, 실시예로서, 데이터 저장 장치는 시작 어드레스가 페이지 내에서의 첫 번째 섹터의 어드레스가 아닌 경우 입력데이터가 기저장된 데이터와 정렬되지 않는 것으로 판단할 수 있다.
도 9를 참조하면, 다른 실시예로서, 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 입력데이터가 기저장된 데이터와 정렬되지 않는 것으로 판단할 수 있다.
도 10은 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 10 및 도 11을 참조하면, 페이지 크기가 예를 들면 8KB인 경우에, 호스트로부터 입력되는 데이터(DATA)의 크기가 예를 들면, 16KB 또는 32KB와 같이 페이지 크기를 초과하는 경우에도 본 발명의 적용이 가능하다. 즉, 호스트로부터 입력되는 데이터(DATA)의 크기가 16KB 또는 32KB와 같이 페이지 크기를 초과하는 경우에도 본 발명의 제1 실시예에서와 같이 입력데이터(DATA)가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
210: 호스트
220: 데이터 저장 장치
222: 반도체 메모리
224: 컨트롤러
225: 램
220: 데이터 저장 장치
222: 반도체 메모리
224: 컨트롤러
225: 램
Claims (10)
- 호스트로부터 프로그램 명령이 입력되는 단계;
상기 프로그램 명령을 기초로 입력데이터의 크기를 판단하는 단계;
상기 입력데이터의 크기 및 반도체 메모리에 기저장된 데이터의 크기를 비교하여 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계;
상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우, 상기 입력데이터가 수신되는 동안 상기 반도체 메모리로부터 상기 기저장된 데이터를 리드하는 단계; 및
상기 리드된 데이터 중 갱신하고자 하는 부분을 상기 입력데이터로 갱신하여 상기 반도체 메모리에 프로그램하는 단계;를 포함하는 데이터 저장 장치의 동작 방법.
- ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서, 상기 입력데이터의 크기 및 상기 반도체 메모리에 기저장된 데이터의 크기를 비교하여 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계는,
상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하는 단계; 및
상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
- ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈제2항에 있어서, 상기 시작 어드레스가 페이지 내의 첫 번째 섹터의 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하는 데이터 저장 장치의 동작 방법.
- ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서, 상기 입력데이터의 크기 및 상기 반도체 메모리에 기저장된 데이터의 크기를 비교하여 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계에서,
상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하는 데이터 저장 장치의 동작 방법.
- ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서, 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하는 단계; 및
상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
- 반도체 메모리;
호스트로부터 프로그램 명령이 입력되면 상기 프로그램 명령을 기초로 입력데이터의 크기를 판단하고, 상기 입력데이터의 크기 및 상기 반도체 메모리에 기저장된 데이터의 크기를 비교하여 상기 입력데이터가 상기 반도체 메모리에 기저장된 데이터와 정렬되는지 판단하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하기 위해 상기 반도체 메모리에 리드 요청을 전송하고, 상기 반도체 메모리로부터 상기 컨트롤러로 리드된 상기 기저장된 데이터 중 갱신하고자 하는 부분을 상기 입력데이터로 갱신하여 상기 반도체 메모리에 프로그램하기 위해 상기 반도체 메모리에 프로그램 요청을 전송하는 데이터 저장 장치.
- ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제6항에 있어서, 상기 컨트롤러는
상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하고 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하도록 구성된 데이터 저장 장치.
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈제7항에 있어서, 상기 컨트롤러는
상기 시작 어드레스가 페이지 내의 첫 번째 섹터의 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된 데이터 저장 장치.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제6항에 있어서, 상기 컨트롤러는
상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된 데이터 저장 장치.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제6항에 있어서, 상기 컨트롤러는
상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하고 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하도록 구성된 데이터 저장 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120141273A KR102022446B1 (ko) | 2012-12-06 | 2012-12-06 | 데이터 저장 장치 및 이의 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120141273A KR102022446B1 (ko) | 2012-12-06 | 2012-12-06 | 데이터 저장 장치 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140073712A KR20140073712A (ko) | 2014-06-17 |
KR102022446B1 true KR102022446B1 (ko) | 2019-09-19 |
Family
ID=51127079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120141273A KR102022446B1 (ko) | 2012-12-06 | 2012-12-06 | 데이터 저장 장치 및 이의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102022446B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101083683B1 (ko) | 2011-03-25 | 2011-11-16 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070060301A (ko) * | 2005-12-08 | 2007-06-13 | 삼성전자주식회사 | 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 |
KR101893897B1 (ko) * | 2010-10-29 | 2018-08-31 | 삼성전자주식회사 | 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법 |
KR101747791B1 (ko) * | 2010-10-29 | 2017-06-16 | 삼성전자주식회사 | 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법 |
KR101936311B1 (ko) * | 2010-12-03 | 2019-01-09 | 삼성전자주식회사 | 데이터 처리 방법 |
-
2012
- 2012-12-06 KR KR1020120141273A patent/KR102022446B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101083683B1 (ko) | 2011-03-25 | 2011-11-16 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20140073712A (ko) | 2014-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891236B2 (en) | Data storage device and operating method thereof | |
US9400744B2 (en) | Magnetic random access memory journal for multi-level cell flash memory | |
CN103324443B (zh) | 存储控制装置、存储装置、信息处理系统及其处理方法 | |
US9043549B2 (en) | Memory storage apparatus, memory controller, and method for transmitting and identifying data stream | |
US8484409B2 (en) | Nonvolatile memory controller with logical defective cluster table | |
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
US11294814B2 (en) | Memory system having a memory controller and a memory device having a page buffer | |
US9508400B1 (en) | Storage device and operating method thereof | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US20190095117A1 (en) | Storage device | |
KR20190087072A (ko) | 데이터 저장 장치, 그것의 동작 방법 및 비휘발성 메모리 장치 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US11055020B2 (en) | Data storage device sharing operations with another data storage device and method of operating the same | |
KR20050076156A (ko) | 플래시 메모리의 데이터 복구 장치 및 방법 | |
KR102516539B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20210060867A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102022446B1 (ko) | 데이터 저장 장치 및 이의 동작 방법 | |
KR20170031311A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US9922687B2 (en) | Memory system, semiconductor device and methods of operating the same | |
US11366736B2 (en) | Memory system using SRAM with flag information to identify unmapped addresses | |
US20160266823A1 (en) | Data storage device and operating method thereof | |
KR101165966B1 (ko) | 커맨드에 의해 동기 모드 또는 비동기 모드로 액세스 가능한 메모리 시스템 | |
KR102246843B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US9684352B2 (en) | Memory system and operating method thereof | |
KR101175250B1 (ko) | 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법 |
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 |