KR102181210B1 - 저장 장치의 데이터 처리 방법 및 저장 장치 - Google Patents

저장 장치의 데이터 처리 방법 및 저장 장치 Download PDF

Info

Publication number
KR102181210B1
KR102181210B1 KR1020140003245A KR20140003245A KR102181210B1 KR 102181210 B1 KR102181210 B1 KR 102181210B1 KR 1020140003245 A KR1020140003245 A KR 1020140003245A KR 20140003245 A KR20140003245 A KR 20140003245A KR 102181210 B1 KR102181210 B1 KR 102181210B1
Authority
KR
South Korea
Prior art keywords
write
storage device
processor
data
time
Prior art date
Application number
KR1020140003245A
Other languages
English (en)
Other versions
KR20150083558A (ko
Inventor
이우성
신동준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140003245A priority Critical patent/KR102181210B1/ko
Priority to EP14877690.9A priority patent/EP3092570B1/en
Priority to PCT/KR2014/006438 priority patent/WO2015105250A1/en
Priority to US14/586,660 priority patent/US9965183B2/en
Publication of KR20150083558A publication Critical patent/KR20150083558A/ko
Application granted granted Critical
Publication of KR102181210B1 publication Critical patent/KR102181210B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 일 실시 예에 따른 저장 장치의 데이터 처리 방법은, 프로세서의 쓰기 명령에 따라 데이터를 기록하는 과정; 미리 설정된 데이터 쓰기 제한 시간의 경과 여부를 확인하는 과정; 및 상기 확인 결과 상기 데이터 쓰기 제한 시간이 경과한 경우 상기 데이터를 기록하는 과정을 중단시키는 과정;을 포함할 수 있다.
또한, 본 발명은 다른 실시 예들이 가능하다.

Description

저장 장치의 데이터 처리 방법 및 저장 장치{METHOD FOR PROCESSING DATA ON STORAGE DEVICE AND STORAGE DEVICE}
본 발명의 다양한 실시 예들은 데이터의 쓰기 또는 읽기 동작을 처리하기 위한 저장 장치 및 저장 장치의 데이터 처리 방법에 관한 것이다.
프로세서(예컨대, 호스트 프로세서(host processor))와 저장 장치(예컨대, 메모리(memory))는 입출력 인터페이스(I/O interface)로 연결되어 있으며, 상기 입출력 인터페이스를 통해 프로세서에서 저장 장치에 데이터를 기록(write)하거나, 저장 장치에 기록된 데이터를 프로세서에서 읽어들이게(read) 된다.
이때, 상기 프로세서와 저장 장치 사이의 데이터 입출력 방식은 동기식 입출력 방식과 비동기식 입출력 방식으로 구분될 수 있다.
동기식 입출력 방식은 프로세서가 저장 장치로 명령(command)을 내린 다음, 실행이 완료되어 저장 장치로부터 응답 메시지를 수신할 때까지 다음 명령을 대기하는 방식으로서, 임베디드 멀티미디어 카드(eMMC), SD(Secure Digital) 카드 등의 저장 장치들이 이에 해당될 수 있으며, 이러한 방식의 저장 장치를 동기식 저장 장치라 한다.
비동기식 입출력 방식은 프로세서가 저장 장치로 명령을 내린 다음, 저장 장치로부터 실행 완료에 따른 응답 메시지를 수신하기 전에 다른 명령의 처리가 가능한 방식으로서, SSD(Solid State Drive) 등의 저장 장치들이 이에 해당될 수 있으며, 이러한 방식의 저장 장치를 비동기식 저장 장치라 한다.
저장 장치는 쓰기 요청을 처리하는 과정에서 쓰기 동작 이외에도 플래쉬 메모리의 가비지 콜렉션(Garbage Collection), 마모도 관리(Wear-leveling) 등과 같은 관리 동작(housekeeping operation)들을 수행할 수 있으며, 이로 인해 프로세서의 쓰기 요청에 대한 처리 시간이 증가할 수 있다.
비동기식 입출력 방식의 저장 장치는 내부적으로 명령어 대기열(command queuing)의 버퍼 및 명령순서 재조정(command reordering) 등의 기능으로 읽기 요청을 우선적으로 처리할 수 있다. 그러나 동기식 저장 장치는 명령어 대기열이 없기 때문에 선행 요청의 처리가 완료되어야 다음 요청을 처리할 수 있으며, 이는 전자 장치 사용자의 체감 속도를 저감시키는 중요한 요인으로 작용할 수 있다.
본 발명의 다양한 실시 예들은, 입출력 방식의 저장 장치에서 쓰기 동작의 처리 방법을 개선함으로써 읽기 동작의 응답성을 향상시킬 수 있는 저장 장치의 데이터 처리 방법 및 저장 장치를 제공할 수 있다.
본 발명의 일 실시 예에 따르면, 저장 장치의 데이터 처리 방법은, 프로세서의 쓰기 명령에 따라 데이터를 기록하는 과정; 미리 설정된 데이터 쓰기 제한 시간의 경과 여부를 확인하는 과정; 및 상기 확인 결과 상기 데이터 쓰기 제한 시간이 경과한 경우 상기 데이터를 기록하는 과정을 중단시키는 과정;을 포함할 수 있다.
본 발명의 다른 실시 예에 따르면, 저장 장치의 데이터 처리 방법은, 프로세서의 쓰기 요청에 따라 메모리에 데이터를 기록하는 과정; 기록 시간의 제한이 설정되었는지 확인하는 과정; 기록 시간의 제한이 설정된 경우, 미리 설정된 쓰기 제한 시간의 경과 여부를 확인하는 과정; 및 상기 확인 결과 상기 쓰기 제한 시간이 경과한 경우 상기 기록하는 과정을 중단시키는 과정;을 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 저장 장치는, 프로세서의 쓰기 명령에 따라 데이터를 기록하는 저장부; 및 미리 설정된 데이터 쓰기 제한 시간의 경과 여부를 확인하고, 상기 확인 결과 상기 데이터 쓰기 제한 시간이 경과한 경우 상기 데이터를 기록하는 과정을 중단시키도록 제어하는 제어부;를 포함할 수 있다.
본 발명의 다른 실시 예에 따르면, 저장 장치는, 프로세서의 쓰기 요청에 따라 메모리에 데이터를 기록하는 저장부; 및 기록 시간의 제한이 설정되었는지 확인하고, 기록 시간의 제한이 설정된 경우 미리 설정된 쓰기 제한 시간의 경과 여부를 확인하며, 상기 확인 결과 상기 쓰기 제한 시간이 경과한 경우 상기 기록하는 과정을 중단시키도록 제어하는 제어부;를 포함할 수 있다.
본 발명의 다양한 실시 예에 따르면, 입출력 방식의 저장 장치에서 쓰기 동작의 처리 방법을 개선함으로써 읽기 동작의 응답성을 향상시킬 수 있다.
예컨대, 본 발명의 일 실시 예에 따르면, 호스트의 빠른 읽기 응답속도가 필요한 상황을 별도의 명령을 통해 저장 장치에 알려 줄 수 있으며, 저장 장치는 비동기식 저장 장치에 채용되는 명령어 대기열(command queuing) 기능 없이도 실시간 응답성이 필요한 읽기 요청을 처리할 수 있다.
도 1은 본 발명의 실시 예에 따른 호스트 장치와 저장 장치의 구조를 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 저장 장치의 입출력 과정을 나타내는 도면이다.
도 3은 본 발명의 실시 예에 따른 저장 장치의 반이중 전송 방식을 나타내는 도면이다.
도 4는 본 발명의 실시 예에 따른 동기식 저장 장치에서의 처리 지연을 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따른 동기식 저장 장치의 세부 구조를 나타내는 블록도이다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 데이터 처리 절차를 나타내는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 호스트 장치와 저장 장치의 데이터 처리 절차를 나타내는 신호 흐름도이다.
본 발명의 실시 예들은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하여 상세하게 설명한다. 그러나 이는 본 발명의 실시 예들을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 실시 예들의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 발명의 실시 예들에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명의 실시 예들을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명의 실시 예들에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 실시 예들이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 포함하고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 발명의 실시 예들에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명의 실시 예들이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 실시 예들을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
먼저, 도 1 내지 도 4를 참조하여 본 발명의 실시 예들이 적용되는 저장 장치의 입출력 방식들을 설명하며, 다음으로 도 5 내지 도 7을 참조하여 본 발명의 실시 예들에 따른 장치 및 방법을 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 호스트 장치와 저장 장치의 구조를 나타내는 도면이다. 도 1을 참조하면, 호스트 장치(110)는 프로세서(111). 저장 장치 제어부(Host side storage controller)(112), 적어도 하나의 모듈(113)을 포함하여 구성될 수 있으며, 저장 장치(120)는 제어부(121), 저장부(122), 적어도 하나의 모듈(123)을 포함하여 구성될 수 있다.
호스트 장치(120)의 각 구성부는 내부 버스(internal bus)에 의해 통신할 수 있다. 또한, 저장 장치(120)의 각 구성부도 내부 버스(internal bus)에 의해 통신할 수 있다.
상기 호스트 장치(110)와 저장 장치(120)는 입출력 인터페이스(I/O interface)로 연결될 수 있다. 예컨대, 도 1에 도시된 바와 같이 호스트 장치(110)의 저장 장치 제어부(112)와 저장 장치(120)의 제어부(121)가 입출력 인터페이스로 연결될 수 있다. 따라서, 호스트 장치(110)의 저장 장치 제어부(112)와 저장 장치(120)의 제어부(121)는 서로 인터페이스와 관련된 동작을 수행할 수 있다.
상기 호스트 장치(110)와 저장 장치(120) 간의 입출력 인터페이스(I/O interface)가 본 발명의 실시 예들이 적용되는 입출력 인터페이스일 경우, 하기 도 2 내지 도 4와 같은 방식으로 동작할 수 있다.
도 2는 본 발명의 실시 예에 따른 저장 장치의 입출력 과정을 나타내는 도면이다. 도 2를 참조하면, 호스트 장치(110)에서 저장 장치(120)로 쓰기(write) 명령(command)이 전송되고, 기록할 데이터가 전송되면, 저장 장치(120)에서는 상기 호스트 장치(110)로부터 전송된 데이터를 저장 영역에 기록한다. 상기 데이터의 쓰기 동작이 완료되면, 저장 장치(120)에서는 호스트 장치(110)로 명령어 처리 완료에 따른 응답(response) 메시지를 전송할 수 있다.
호스트 장치(110)에서는 상기와 같이 이전 명령어 처리 완료에 따른 응답 메시지를 수신한 후, 다음 명령(예컨대, 읽기(read) 명령(command))을 전송할 수 있다. 예컨대, 읽기 명령이 전송되고, 읽어올 데이터의 주소(address) 정보가 전송되면, 저장 장치(120)에서는 전성된 주소에 해당하는 데이터를 호스트 장치(110)로 전송한다. 상기 데이터의 읽기 동작이 완료되면, 저장 장치(120)에서는 호스트 장치(110)로 명령어 처리 완료에 따른 응답(response) 메시지를 전송할 수 있다.
도 2에 도시된 바와 같이, 저장 장치의 입출력 처리 방식에 따르면, 이전 명령어 처리의 완료에 대한 응답이 필요하다.
도 3은 본 발명의 실시 예에 따른 저장 장치의 반이중 전송 방식을 나타내는 도면이다. 호스트 장치(110)와 저장 장치(120) 간에 양 방향으로 데이터 전송이 가능하지만, 경우에 따라 반드시 한쪽 방향으로만 전송이 이루어지기 때문에 입출력 처리를 동시에 수행할 수는 없다. 도 2에서 전술한 방법은 도 3과 같은 반이중 전송 방식을 기반으로 한다.
도 4는 본 발명의 실시 예에 따른 동기식 저장 장치에서의 처리 지연을 나타내는 도면이다. 호스트 장치로부터 읽기 요청에 선행한 쓰기 요청이 있다면(예컨대, 호스트 장치에서 쓰기 명령 이후 읽기 명령을 저장 장치에 요청하였다면), 동기식 저장 장치의 내부에서는 먼저 데이터 쓰기 동작과 내부 관리동작을 처리한다. 이때, 상기 읽기 요청은 쓰기 연산 시간과 내부 관리동작의 소요 시간만큼 처리가 지연될 수 있다. 예컨대, 도 4에 도시된 바와 같이 긴 쓰기 처리 시간에 의해 읽기 처리가 지연되는 경우가 발생할 수 있다.
이와 같은 읽기 지연 현상으로 인해 발생할 수 있는 성능 저하는 사용자가 실제로 쉽게 체감할 수 있다. 예컨대, eMMC나 SD 카드 등과 같은 동기식 저장 장치에 데이터를 복사하면서 미리 저장되어 있던 고해상도 동영상을 재생하는 경우 이와 같은 성능 저하가 발생할 수 있다. 상기 예에 따르면, 저장 장치 내부에서 데이터 복사는 쓰기 연산, 동영상 재생은 읽기 연산으로 환원될 수 있다. 예컨대, 일반적으로 초당 30 프레임으로 재생되는 동영상의 경우, 프레임(읽기 데이터) 사이의 시간 간격이 1/30≒33ms이라고 가정할 수 있다. 이때, eMMC나 SD 카드의 쓰기 처리가 33ms 이내로 들어오면 읽기 지연이 발생하지 않지만, 실제로 쓰기 처리 시간은 제품군 및 제조사별로 10ms ~ 350ms 정도의 분포를 나타낼 수 있다. 따라서 상당 수의 eMMC, SD 카드 등과 같은 동기식 저장 장치에서는 읽기 지연에 따른 프레임 유실이 발생할 수 있다.
상술한 바와 같이 동기식 저장 장치는 명령어 대기열이 없기 때문에 선행 요청의 처리가 완료되어야 다음 요청을 처리할 수 있으며, 이는 전자 장치 사용자의 체감 성능을 저감시키는 중요한 요인으로 작용할 수 있다.
따라서, 본 발명의 다양한 실시 예들에서는 이하 도 5 내지 도 7에서 설명하는 바와 같이 동기식 입출력 방식의 저장 장치에서 쓰기 동작의 처리 방법을 개선함으로써 쓰기 명령 이후에 요청된 읽기 동작의 응답성을 향상시킬 수 있다.
도 5는 본 발명의 실시 예에 따른 동기식 저장 장치의 세부 구조를 나타내는 블록도이다. 도 5를 참조하면, 본 발명의 실시 예에 따른 저장 장치(500)는 제어부(controller)(510), 저장부(memory)(520)를 포함하여 구성될 수 있으며, 본 발명의 다양한 실시 예에 따라 레지스터(register)(530) 또는 타이머(timer)(540)를 더 포함할 수도 있다.
본 발명의 실시 예에 따른 저장 장치(500)는 프로세서로부터의 명령에 따라 설정된 또는 미리 설정된 쓰기 요청 처리에 대한 처리 시간(이하, 설명에서는 편의상 '쓰기 제한 시간'이라 한다)을 상수값 또는 변수값으로 관리하고, 상기 쓰기 제한 시간 설정에 따라 타이머를 동작하여 쓰기 요청 바로 다음의 읽기 요청에 대해 일정한 응답 시간을 보장할 수 있다. 이를 위한 각 기능부의 세부 기능들은 다음과 같다.
제어부(510)는 상기 저장 장치(500)의 전체적인 동작을 제어할 수 있다. 예컨대, 프로세서로부터 쓰기 명령을 수신하면 동기식 입출력 방식에 따라 수신된 데이터가 저장부(520)에 기록되도록 제어하며, 수신된 쓰기 명령에 따른 쓰기 동작이 완료되면, 완료 메시지를 생성하여 프로세서로 전송할 수 있다.
이때, 본 발명의 실시 예에 따라, 상기 제어부(510)는 프로세서로부터 쓰기 명령을 수신할 때, 레지스터(530)에 저장된 모드 상태를 확인하고, 현재 설정된 모드가 쓰기 제한 시간을 설정한 모드(이를, 편의상 '선점형 읽기 응답 모드(preemptive read response mode)'라고도 칭한다)일 경우, 설정된 시간 값에 따라 타이머(540)를 동작시킬 수 있다.
따라서, 상기 쓰기 동작이 완료되기 전이라도, 타이머(540)의 동작에 따라 상기 설정된 쓰기 제한 시간이 만료되면, 본 발명의 실시 예에 따라 상기 쓰기 동작을 강제로 종료 또는 중단시킬 수 있다. 이때, 상기 제어부(510)는 상기 쓰기 명령에 따라 기록해야할 데이터 중 상기 쓰기 동작이 중단될 때까지 저장부(520)에 기록된 데이터의 크기를 상기 레지스터(530)에 저장할 수도 있다. 또한, 상기 제어부(510)는 상기 타이머(540)의 설정에 따른 강제 종료를 비정상 상태가 아닌 정상 상태로 간주할 수 있다.
또한, 본 발명의 실시 예에 따라, 상기 제어부(510)는 상기 쓰기 동작이 중단된 상태, 부분적으로 쓰기 완료된 데이터의 크기, 쓰기 동작의 완료 여부 등을 포함하는 응답 메시지(response message)를 쓰기 요청한 프로세서로 전송할 수 있다.
상기 레지스터(530)는 전술한 바와 같이 동기식 저장 장치의 동작 방식을 설정하는 모드 정보(예컨대, 선점형 읽기 응답 모드 설정 여부 정보), 선점형 읽기 응답 모드 설정에 따른 쓰기 제한 시간의 설정값, 저장 장치(500)의 동작 상태 정보 등을 저장할 수 있다.
저장부(520)는 실제 데이터가 저장되는 매체로서 비휘발성 메모리(Non-Volatile Memory; NVM)일 수 있으며, 예컨대, NAND 플래시 메모리가 될 수도 있다. 상기 타이머(540)는 본 발명의 실시 예에 따라 저장 장치(500)의 모드가 선점형 읽기 응답 모드로 설정될 경우 전술한 바와 같이 내부 데이터 쓰기 동작 시간을 관리하기 위해 사용될 수 있다.
상기 저장 장치(500)의 각 구성요소는 임의의 버스 구조로 연결될 수 있으며, 상기 제어부(510)는 호스트 장치와 입출력 인터페이스로 연결될 수 있다.
상기 실시 예의 설명에서 상기 제어부(510)는 저장 장치 내부에 포함되는 경우를 가정하여 설명하였으나, 다른 실시 예(예컨대, 메모리 제어부를 포함하지 않는 비휘발성 저장 장치의 예)에 따라 상기 제어부는 시스템 버스에 연계된 호스트 장치 내에 배치될 수도 있다. 추가적으로, 저장 장치의 제어부 포함 여부에 상관 없이, 호스트 장치 내의 주 프로세서는 메모리 시스템의 메모리 제어 기능부로서 동작될 수 있다.
한편, 본 발명의 실시 예에서 각 기능부 및 모듈이라 함은, 본 발명의 실시 예의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 각 기능부는 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 실시 예의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 데이터 처리 절차를 나타내는 흐름도이다. 도 6을 참조하면, 동작 601에서, 저장 장치는 프로세서로부터 쓰기 명령을 수신할 수 있다. 동작 603에서, 저장 장치는 본 발명의 실시 예에 따라 쓰기 요청된 데이터의 쓰기 제한 시간을 설정할 수 있다. 상기 쓰기 제한 시간의 설정은 상기 쓰기 명령을 수신하기 전에 저장 장치에서 미리 설정될 수도 있으며, 프로세서로부터 쓰기 제한 시간 정보를 수신하여 설정할 수도 있다.
동작 605에서, 저장 장치의 제어부는 쓰기 요청된 데이터를 저장부에 기록하고, 동작 607의 판단에 따라 쓰기 요청된 데이터의 기록이 완료되기 전에, 동작 609의 판단에서 데이터 쓰기 제한 시간이 만료된 것으로 판단하면, 본 발명의 실시 예에 따라 동작 611에서 진행 중인 쓰기 작업을 강제로 중단(또는 종료)시킬 수 있다.
동작 613에서, 전자 장치의 제어부는 부분적으로 쓰기 완료된 데이터의 크기를 레지스터에 저장할 수 있으며, 동작 615에서 상기 쓰기 요청한 프로세서로 응답 메시지를 전송할 수 있다.
상기 응답 메시지에는 본 발명의 실시 예에 따라 상기 레지스터에 저장된 상기 쓰기 동작이 중단된 상태, 부분적으로 쓰기 완료된 데이터의 크기, 쓰기 동작의 완료 여부 중에서 적어도 하나의 정보가 포함될 수 있다.
상기 도 6에서는 본 발명의 실시 예에 따라 도 5에서 전술한 쓰기 제한 시간을 설정한 모드(선점형 읽기 응답 모드)가 저장 장치에 설정된 상태로 동작하는 것으로 설명하였으나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며 후술하는 다양한 실시 예들로 변형될 수도 있다.
예를 들면, 호스트 장치에서는 저장 장치로 선점형 읽기 응답 모드 설정 명령을 전달할 수 있다. 저장 장치의 제어부는 상기 명령에 따라 레지스터를 읽어서 현재의 모드 상태를 확인할 수 있다. 만약, 상기 레지스터의 모드 확인에 따라 현재 저장 장치에 설정된 모드가 선점형 읽기 응답 모드가 아니라면, 제어부는 레지스터에 별도의 설정값(예컨대, 데이터 쓰기 제한 시간 설정값)을 기록하고 선점형 읽기 응답 모드로 전환시킬 수 있다. 반면, 상기 레지스터의 모드 확인에 따라 현재 저장 장치에 설정된 모드가 선점형 읽기 응답 모드로 기설정되어 있을 경우, 별도의 모드 전환 과정 없이 현재 설정된 모드로 동작할 수 있다.
상기 선점형 읽기 응답 모드 설정에 따라 저장 장치는 프로세서로부터 쓰기 명령을 수신할 때마다 타이머를 구동시킬 수 있다. 이때, 상기 타이머에 대한 쓰기 제한 시간 설정 값은 모든 쓰기 요청에 대해서 동일한 값을 갖도록 설정할 수도 있으며, 개별적인 쓰기 요청 건에 대해서 별도의 값을 갖도록 설정할 수도 있다.
상기 타이머에 설정된 제한 시간(쓰기 제한 시간) 내에 저장 장치가 쓰기 동작을 완료하지 못했다면, 쓰기 완료된 데이터 용량을 레지스터에 기록하고 현재의 쓰기 동작을 강제로 종료시킬 수 있다. 이때, 저장 장치는 타이머 설정에 따른 시간 만료(timeout)를 불량 발생 상태가 아니라 정상 상태로 간주하여 처리할 수 있다.
또한, 저장 장치는 상기 선점형 읽기 응답 모드 설정에 따라 강제 종료된 상태에서 현재 상태와 관련된 정보(예컨대, 부분적으로 쓰기 완료된 데이터의 크기, 쓰기 작업의 완료 유무 등)가 포함된 응답 메시지릍 호스트 장치(프로세서)로 전송할 수 있다.
또한, 저장 장치의 제어부는 예컨대 레지스터의 특정 필드에 플래그를 표시함으로써 선점형 읽기 응답 모드를 해제시킬 수 있다.
상기 타이머 설정값(데이터 쓰기 제한 시간 설정값)의 변경은 본 발명의 다양한 실시 예들에 따라 다음과 같은 상황에서 발생될 수 있다.
예컨대, 동일한 저장 장치에서 입출력 멀티태스킹이 불필요한 단말기와 입출력 멀티태스킹이 필요한 단말기에 대해 각각 타이머 설정값을 다르게 설정할 수 있다. 보다 구체적인 예를 들면, CCTV 또는 캠코더 등 같이 사용 중에 쓰기/읽기 동작 중 한 가지만 반복적으로 일어나는 응용 시나리오에서는 선점 읽기 처리의 필요성이 없기 때문에 쓰기 제한 시간을 상대적으로 길게 설정할 수 있다. 반면 스마트 폰이나 PC 등과 같이 멀티태스킹에서 사용되는 경우에는 읽기 연산의 선점 처리를 위해 쓰기 제한 시간을 상대적으로 짧게 설정할 수 있다.
또한, 다른 예로서 입출력 멀티태스킹이 필요한 시나리오에서도 운영 체제의 입출력 요청 대기열(I/O request queue)에 읽기 요청이 없고 쓰기 요청만 대기 중이라면, 쓰기 성능의 최적화를 위해 쓰기 제한 시간을 상대적으로 더 길게 설정할 수도 있다.
본 발명의 실시 예에 따라 상기와 같이 쓰기 제한 시간 만료에 따라 완료되지 않은 쓰기 요청은 응답 메시지의 결과를 토대로 운영 체제의 입출력 스케줄러가 추후 재시도하도록 구현할 수도 있다.
도 7은 본 발명의 실시 예에 따른 호스트 장치와 저장 장치의 데이터 처리 절차를 나타내는 신호 흐름도이다. 도 7을 참조하면, 동작 701에서, 본 발명의 실시 예에 따라 호스트 장치(110)에서는 저장 장치(120)로 데이터 쓰기 제한 시간 설정을 요청할 수 있다. 동작 703에서, 저장 장치는 레지스터의 모드 설정을 확인하고 설정값(예컨대, 쓰기 제한 시간 설정값)을 기록할 수 있다.
동작 705에서, 호스트 장치(110)에서 저장 장치(120)로 데이터 쓰기 명령이 전송되면, 동작 707에서 저장 장치(120)는 설정된 쓰기 제한 시간 설정값에 따라 타이머를 동작시킬 수 있다.
이후, 동작 709에서, 호스트 장치(110)로부터 저장 장치(120)로 데이터가 전송되면, 동작 711에서 저장 장치(120)에서는 수신된 데이터를 저장부에 기록한다.
상기 동작 709 및 동작 711의 데이터 기록 동작이 완료되기 전, 동작 713에서 타이머가 만료되면, 동작 715에서 현재까지 쓰기 완료된 데이터의 크기를 레지스터에 저장할 수 있다. 또한, 동작 717에서 본 발명의 실시 예에 따라 쓰기 동작을 강제로 종료할 수 있다.
다음으로, 동작 719에서 저장 장치(120)는 호스트 장치(110)로 응답 메시지를 전송할 수 있으며, 동작 721에서 레지스터의 설정된 모드(예컨대, 선점형 읽기 응답 모드)를 해제시킬 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110 : 호스트 장치 111 : 프로세서
112 : 저장 장치 제어부 113 : 모듈
120 : 저장 장치 121 : 제어부
122 : 저장부 123 : 모듈
500 : 저장 장치 510 : 제어부
520 : 저장부 530 : 레지스터
540 : 타이머

Claims (30)

  1. 저장 장치에서, 호스트 장치의 프로세서로부터 쓰기 명령을 수신하는 과정;
    상기 저장 장치에서, 상기 쓰기 명령을 수신함에 따라, 미리 설정된 쓰기 제한 시간에 대한 타이머를 구동하는 과정;
    상기 쓰기 명령에 따라 상기 호스트 장치의 프로세서로부터 수신된 데이터를 기록하는 과정;
    상기 저장 장치에서, 상기 미리 설정된 쓰기 제한 시간의 경과 여부를 확인하는 과정;
    상기 저장 장치에서, 상기 확인 결과 상기 쓰기 제한 시간이 경과한 경우 상기 데이터를 기록하는 과정을 중단시키는 과정; 및
    상기 데이터를 기록하는 과정의 중단에 따라, 상기 호스트 장치의 프로세서로 상기 데이터의 기록이 중단된 시점까지 기록된 데이터와 관련된 정보를 포함하는 응답 메시지를 전송하는 과정;을 포함하며,
    상기 호스트 장치의 프로세서의 각 쓰기 명령에 대한 상기 쓰기 제한 시간은 상기 호스트 장치의 입출력 멀티태스킹이 요구되는지에 기반하여 설정되는, 저장 장치의 데이터 처리 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 응답 메시지는,
    상기 중단된 시점까지 기록된 데이터의 크기 정보를 포함하는, 저장 장치의 데이터 처리 방법.
  4. 제1항에 있어서, 상기 응답 메시지는,
    상기 쓰기 명령에 대한 완료 여부에 대한 정보를 포함하는, 저장 장치의 데이터 처리 방법.
  5. 제1항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서에 의해 설정되는, 저장 장치의 데이터 처리 방법.
  6. 제1항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서의 각 쓰기 명령마다 동일한 값으로 설정되는, 저장 장치의 데이터 처리 방법.
  7. 제1항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서의 각 쓰기 명령마다 상이한 값으로 설정될 수 있는, 저장 장치의 데이터 처리 방법.
  8. 삭제
  9. 제1항에 있어서, 상기 쓰기 제한 시간의 경과 후 상기 프로세서의 쓰기 요청에 따른 데이터 기록이 완료되지 않은 경우,
    상기 중단된 시점까지 기록된 데이터의 크기를 저장하는 과정;을 더 포함하는, 저장 장치의 데이터 처리 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 저장 장치에 있어서,
    저장부; 및
    호스트 장치의 프로세서로부터 쓰기 명령을 수신하고,
    상기 쓰기 명령을 수신함에 따라, 미리 설정된 쓰기 제한 시간에 대한 타이머를 구동하고,
    상기 쓰기 명령에 따라 상기 호스트 장치의 프로세서로부터 수신된 데이터를 상기 저장부에 기록하고,
    상기 미리 설정된 쓰기 제한 시간의 경과 여부를 확인하고,
    상기 확인 결과 상기 쓰기 제한 시간이 경과한 경우 상기 데이터를 기록하는 과정을 중단시키고,
    상기 데이터를 기록하는 과정의 중단에 따라, 상기 호스트 장치의 프로세서로 상기 데이터의 기록이 중단된 시점까지 기록된 데이터와 관련된 정보를 포함하는 응답 메시지를 전송하도록 제어하는 제어부;를 포함하며,
    상기 호스트 장치의 프로세서의 각 쓰기 명령에 대한 상기 쓰기 제한 시간은 상기 호스트 장치의 입출력 멀티태스킹이 요구되는지에 기반하여 설정되는, 저장 장치.
  17. 삭제
  18. 제16항에 있어서, 상기 응답 메시지는,
    상기 중단된 시점까지 기록된 데이터의 크기 정보를 포함하는, 저장 장치.
  19. 제16항에 있어서, 상기 응답 메시지는,
    상기 쓰기 명령에 대한 완료 여부에 대한 정보를 포함하는, 저장 장치.
  20. 제16항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서에 의해 설정되는, 저장 장치.
  21. 제16항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서의 각 쓰기 명령마다 동일한 값으로 설정되는, 저장 장치.
  22. 제16항에 있어서, 상기 쓰기 제한 시간은 상기 프로세서의 각 쓰기 명령마다 상이한 값으로 설정될 수 있는, 저장 장치.
  23. 삭제
  24. 제16항에 있어서, 상기 제어부는,
    상기 쓰기 제한 시간의 경과 후 상기 프로세서의 쓰기 요청에 따른 데이터 기록이 완료되지 않은 경우, 상기 중단된 시점까지 기록된 데이터의 크기를 상기 저장부에 저장하는, 저장 장치.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020140003245A 2014-01-10 2014-01-10 저장 장치의 데이터 처리 방법 및 저장 장치 KR102181210B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140003245A KR102181210B1 (ko) 2014-01-10 2014-01-10 저장 장치의 데이터 처리 방법 및 저장 장치
EP14877690.9A EP3092570B1 (en) 2014-01-10 2014-07-16 Method for processing data in storage device and storage device
PCT/KR2014/006438 WO2015105250A1 (en) 2014-01-10 2014-07-16 Method for processing data in storage device and storage device
US14/586,660 US9965183B2 (en) 2014-01-10 2014-12-30 Method for processing data in storage device and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140003245A KR102181210B1 (ko) 2014-01-10 2014-01-10 저장 장치의 데이터 처리 방법 및 저장 장치

Publications (2)

Publication Number Publication Date
KR20150083558A KR20150083558A (ko) 2015-07-20
KR102181210B1 true KR102181210B1 (ko) 2020-11-23

Family

ID=53521398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140003245A KR102181210B1 (ko) 2014-01-10 2014-01-10 저장 장치의 데이터 처리 방법 및 저장 장치

Country Status (4)

Country Link
US (1) US9965183B2 (ko)
EP (1) EP3092570B1 (ko)
KR (1) KR102181210B1 (ko)
WO (1) WO2015105250A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
US10990315B2 (en) 2018-12-03 2021-04-27 International Business Machines Corporation Write transfer resource management in a data storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030026138A1 (en) * 2001-08-01 2003-02-06 Samsung Electronics, Co., Ltd. Semiconductor memory device having write latency operation and method thereof
US20070256032A1 (en) * 2006-04-28 2007-11-01 Petri John E Presenting identifiers and states of processes in a stacked cursor
US20120017038A1 (en) * 2003-12-30 2012-01-19 Sergey Anatolievich Gorobets Non-Volatile Memory And Method With Control Data Management
US20130246670A1 (en) * 2010-11-15 2013-09-19 Fujitsu Limited Information processing system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001319485A (ja) * 2000-05-09 2001-11-16 Mitsubishi Electric Corp 半導体記憶装置
US6347276B1 (en) * 2000-09-13 2002-02-12 Detroit Diesel Corporation Method and system for reducing the time required to power down engine controller with faulty EEPROM
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8112566B2 (en) * 2007-06-06 2012-02-07 Intel Corporation Methods and apparatuses for processing I/O requests of data storage devices
US9594679B2 (en) 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
JP5349897B2 (ja) * 2008-10-21 2013-11-20 株式会社日立製作所 ストレージシステム
JP2010157130A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP5039079B2 (ja) * 2009-03-23 2012-10-03 株式会社東芝 不揮発性半導体記憶装置
US8683148B2 (en) * 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
JP2012063871A (ja) * 2010-09-14 2012-03-29 Univ Of Tokyo 制御装置およびデータ記憶装置
US9158461B1 (en) * 2012-01-18 2015-10-13 Western Digital Technologies, Inc. Measuring performance of data storage systems
KR101949671B1 (ko) * 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030026138A1 (en) * 2001-08-01 2003-02-06 Samsung Electronics, Co., Ltd. Semiconductor memory device having write latency operation and method thereof
US20120017038A1 (en) * 2003-12-30 2012-01-19 Sergey Anatolievich Gorobets Non-Volatile Memory And Method With Control Data Management
US20070256032A1 (en) * 2006-04-28 2007-11-01 Petri John E Presenting identifiers and states of processes in a stacked cursor
US20130246670A1 (en) * 2010-11-15 2013-09-19 Fujitsu Limited Information processing system

Also Published As

Publication number Publication date
EP3092570A4 (en) 2017-09-13
EP3092570B1 (en) 2020-01-15
EP3092570A1 (en) 2016-11-16
KR20150083558A (ko) 2015-07-20
WO2015105250A1 (en) 2015-07-16
US9965183B2 (en) 2018-05-08
US20150199130A1 (en) 2015-07-16

Similar Documents

Publication Publication Date Title
US10846000B2 (en) Geometry-aware command scheduling
US10445228B2 (en) Methods and apparatuses for requesting ready status information from a memory
EP3436922B1 (en) Methods and apparatus to perform erase-suspend operations in memory devices
US9021158B2 (en) Program suspend/resume for memory
US9110669B2 (en) Power management of a storage device including multiple processing cores
TWI512476B (zh) 用以控制非依電性記憶體裝置中之操作之方法以及相關電腦程式產品、電腦可讀儲存媒體、記憶體裝置、及主機裝置
JP5638069B2 (ja) メモリデバイスによりホストメモリアクセスを制御するための方法およびシステム
US20150006794A1 (en) Apparatus and method for controlling multi-way nand flashes by using input-output pins
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
US10089266B2 (en) Power saving feature for storage subsystems
JP5414656B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
US10416907B2 (en) Storage system, storage control apparatus, and method of controlling a storage device
US20150149741A1 (en) Storage System and Control Method Thereof
US20190155765A1 (en) Operation method of host system including storage device and operation method of storage device controller
US9971546B2 (en) Methods for scheduling read and write commands and apparatuses using the same
US8572307B2 (en) Memory controller, memory card, and nonvolatile memory system
CN109213439B (zh) 用于减少写入延时的系统和方法
US9377966B2 (en) Method and apparatus for efficiently processing storage commands
KR102181210B1 (ko) 저장 장치의 데이터 처리 방법 및 저장 장치
KR102462048B1 (ko) 이중 slc/qlc 프로그래밍 및 리소스 해제
KR102471151B1 (ko) 메모리 시스템 및 그것을 제어하는 방법
JP2011509443A5 (ko)
TWI490696B (zh) 週邊裝置與其資料存取控制方法
TW201426314A (zh) 資料傳輸方法、記憶體控制器、資料傳輸系統
US9507702B2 (en) Method of performing write access by distributing control rights to threads, memory controller and flash memory storage device using the same

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant