KR102192198B1 - 전자 장치 및 그것의 통신 방법 - Google Patents

전자 장치 및 그것의 통신 방법 Download PDF

Info

Publication number
KR102192198B1
KR102192198B1 KR1020140021414A KR20140021414A KR102192198B1 KR 102192198 B1 KR102192198 B1 KR 102192198B1 KR 1020140021414 A KR1020140021414 A KR 1020140021414A KR 20140021414 A KR20140021414 A KR 20140021414A KR 102192198 B1 KR102192198 B1 KR 102192198B1
Authority
KR
South Korea
Prior art keywords
files
host
file set
input
storage device
Prior art date
Application number
KR1020140021414A
Other languages
English (en)
Other versions
KR20150100071A (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 KR1020140021414A priority Critical patent/KR102192198B1/ko
Priority to CN201510086487.4A priority patent/CN104866456B/zh
Priority to US14/628,598 priority patent/US9582217B2/en
Publication of KR20150100071A publication Critical patent/KR20150100071A/ko
Priority to US15/432,286 priority patent/US9864543B2/en
Application granted granted Critical
Publication of KR102192198B1 publication Critical patent/KR102192198B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

본 발명에 따른 어플리케이션 프로세서의 통신 방법은: 복수의 파일들을 발생하는 단계; 상기 복수의 파일들에 대한 특정 패턴의 입출력 요청들을 상기 저장 장치로 전송함으로써 파일 셋 채널을 발생하는 단계; 및 상기 파일 셋 채널을 통하여 파일 셋 시그널링을 이용한 비트 데이터를 상기 저장 장치로 전송하는 단계를 포함하고, 상기 파일 셋 시그널링은 상기 복수의 파일들 각각의 입출력 요청을 적어도 하나의 비트로 해석한다.

Description

전자 장치 및 그것의 통신 방법{ELECTRONIC DEVICE AND COMMUNICATION METHOD}
본 발명은 전자 장치 및 그것의 비표준 통신 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 사용자 데이터 저장, 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
본 발명의 목적은 파일 셋을 이용한 비표준 통신 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 어플리케이션 프로세서의 통신 방법은: 복수의 파일들을 발생하는 단계; 상기 복수의 파일들에 대한 특정 패턴의 입출력 요청들을 상기 저장 장치로 전송함으로써 파일 셋 채널을 발생하는 단계; 및 상기 파일 셋 채널을 통하여 파일 셋 시그널링을 이용한 비트 데이터를 상기 저장 장치로 전송하는 단계를 포함하고, 상기 파일 셋 시그널링은 상기 복수의 파일들 각각의 입출력 요청을 적어도 하나의 비트로 해석한다.
실시 예에 있어서, 상기 어플리케이션 프로세서는 비표준 통신이 필요할 때 파일 시스템에 상기 복수의 파일들을 발생하도록 파일 입출력을 요청하는 어플리케이션을 포함한다.
실시 예에 있어서, 상기 파일 시스템은 상기 파일 입출력 요청을 상기 저장 장치가 인식할 수 있도록 디스크 입출력 요청으로 변경한다.
실시 예에 있어서, 상기 파일 시스템은 클러스터 단위로 상기 복수의 파일들을 발생한다.
실시 예에 있어서, 상기 입출력 요청들을 읽기 요청들을 포함한다.
실시 예에 있어서, 상기 비트 데이터를 상기 저장 장치로 전송하는 단계는, 상기 읽기 요청들을 이용하여 제 1 파일 셋 시그널링 송신하는 단계를 포함하고, 상기 제 1 파일 셋 시그널링은 상기 복수의 파일들 각각에 대한 읽기 요청 여부에 대응하는 비트를 전송한다.
실시 예에 있어서, 상기 제 1 파일 셋 시그널링 송신하는 단계는, Ready 파일에 대한 읽기 요청을 통하여 상기 저장 장치에 송신 준비를 알리는 단계; 및 Tx 파일에 대한 읽기 요청을 통하여 상기 저장 장치에 상기 비트 데이터 송신을 알리는 단계를 더 포함한다.
실시 예에 있어서, 상기 저장 장치로부터 상기 읽기 요청들을 이용하여 제 2 파일 셋 시그널링 수신하는 단계를 더 포함하고, 상기 제 2 파일 셋 시그널링은 상기 복수의 파일들 각각에 대한 읽기 요청의 성공 여부에 대응하는 비트를 전송한다.
실시 예에 있어서, 상기 제 2 파일 셋 시그널링 수신하는 단계는, Ready 파일에 대한 읽기 요청의 성공 여부를 통하여 상기 어플리케이션 프로세서에 수신 준비를 알리는 단계; 및 Rx 파일에 대한 읽기 요청의 성공 여부를 통하여 상기 어플리케이션 프로세서에 비트 데이터 수신을 알리는 단계를 더 포함한다.
실시 예에 있어서, 상기 입출력 요청들은 쓰기 요청들을 포함한다.
실시 예에 있어서, 상기 비트 데이터를 상기 저장 장치로 전송하는 단계는, 상기 쓰기 요청들을 이용하여 파일 셋 시그널링 송신하는 단계를 포함하고, 상기 파일 셋 시그널링은 상기 복수의 파일들 각각에 대한 업데이트 요청 여부에 대응하는 비트를 전송하고, 상기 복수의 파일들 각각에 대한 업데이트 요청은 클러스터 단위로 발생된다.
실시 예에 있어서, 상기 비트 데이터를 상기 저장 장치로 전송하는 단계는, 상기 쓰기 요청들을 이용하여 파일 셋 시그널링 송신하는 단계를 포함하고, 상기 파일 셋 시그널링은 상기 복수의 파일들 각각에 대한 업데이트 요청 여부에 대응하는 비트를 전송하고, 상기 복수의 파일들 각각에 대한 업데이트 요청은 섹터 단위로 발생된다.
실시 예에 있어서, 상기 비트 데이터를 상기 저장 장치로 전송하는 단계는, 상기 쓰기 요청들을 이용하여 파일 셋 시그널링 송신하는 단계를 포함하고, 상기 파일 셋 시그널링은 상기 복수의 파일들 각각에 대한 업데이트 요청 여부에 대응하는 적어도 2 비트를 전송하고, 상기 복수의 파일들 각각은 연속한 복수의 섹터들로 구성된 클러스터 단위로 발생되고, 상기 복수의 파일들 각각에 대한 업데이트 요청은 상기 복수의 섹터들 중 상기 적어도 2 비트에 대응하는 섹터에 대한 업데이트 요청을 포함한다.
실시 예에 있어서, 상기 파일 셋 시그널링과 다른 방식의 파일 셋 시그널링을 이용한 비트 데이터를 상기 저장 장치로부터 수신하는 단계를 포함한다.
실시 예에 있어서, 상기 저장 장치와 비표준 통신이 필요한 지를 판별하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 저장 장치의 통신 방법은: 호스트로부터 복수의 파이들에 대한 제 1 입출력 요청들을 입력 받는 단계; 상기 입력된 제 1 입출력 요청들을 근거로 하여 비표준 통신을 인식하는 단계; 상기 비표준 통신을 인식한 뒤, 상기 호스트로부터 상기 복수의 파일들에 대한 제 2 입출력 요청들을 입력 받는 단계; 및 상기 입력된 제 2 입출력 요청들을 상기 호스트로부터 전송된 비트 데이터로 해석하는 단계를 포함한다.
실시 예에 있어서, 상기 비표준 통신 인식 후에, 파일 셋 채널이 형성되었다고 상기 호스트로 알리는 단계를 더 포함한다.
실시 예에 있어서, 상기 비트 데이터를 해석한 뒤에 상기 비표준 통신이 완료되었다고 상기 호스트로 알리는 단계를 더 포함한다.
실시 예에 있어서, 상기 호스트로 상기 복수의 파일들에 대한 입출력 요청들을 이용한 파일 셋 시그널링 송신 단계를 더 포함하고, 상기 파일 셋 시그널링은 상기 입출력 요청들에 각각에 대한 입출력 요청의 성공 여부에 대응하는 비트를 전송한다.
본 발명의 실시 예에 따른 전자 장치는, 파일 셋 채널을 인식하는 저장 장치; 및 상기 저장 장치와 상기 파일 셋 채널을 통하여 파일 셋 시그널링을 이용한 비표준 통신을 수행하는 호스트를 포함하고, 상기 파일 셋 시그널링은 복수의 파일들 각각의 입출력 요청을 적어도 하나의 비트로 해석한다.
실시 예에 있어서, 상기 비표준 통신은 상기 호스트의 파일 시스템을 이용하고, 상기 호스트는 상기 파일 시스템을 이용하지 않고 상기 비표준 통신과 다른 비표준 통신을 수행한다.
실시 예에 있어서, 상기 저장 장치와 상기 호스트 사이에서 상기 파일 시스템을 이용하지 않는 비표준 통신을 이용하지 못할 때, 상기 호스트는 상기 파일 시스템을 이용하는 상기 비표준 통신을 이용하여 상기 저장 장치와 통신한다.
실시 예에 있어서, 상기 호스트는 어플리케이션 프로세서를 포함한다.
실시 예에 있어서, 상기 저장 장치는 마이크로 SD(secure digital) 카드를 포함한다.
실시 예에 있어서, 상기 저장 장치는 UFS(universal flash storage) 장치를 포함한다.
본 발명의 실시 예에 따른 저장 장치는, 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 외부로부터 복수의 파일들에 대한 특정 패턴의 제 1 입출력 요청들을 감지함으로써 파일 셋 채널을 형성하고, 상기 파일 셋 채널을 통하여 입력된 상기 복수의 파일들에 대한 제 2 입출력 요청들을 상기 외부로부터 입력된 비트 데이터로 해석한다.
상술한 바와 같이 본 발명에 따른 전자 장치 및 그것의 통신 방법은 복수의 파일들에 대한 입출력 요청들을 이용한 파일 셋 시그널링 비표준 통신을 수행할 수 있다.
또한, 본 발명의 실시 예에 따른 전자 장치 및 통신 방법은 저장 장치의 표준 인터페이스의 통신 규약에 정의되지 않은 하드웨어적인 제약과, 표준 규약이 존재하더라도 통신 하는 어플리케이션의 권한이 부족하여 표준 규약을 사용하지 못하는 소프트웨어적으로 제약이 있더라도, 파일 셋 시그널링을 이용하여 비표준 통신을 수행할 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 전자 장치를 예시적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 비표준 통신을 설명하기 위한 소프트웨어 계층을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 다른 실시 예에 따른 소프트웨어 계층을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 파일 셋 채널을 이용한 비표준 통신 프로토콜을 개략적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 채널 발생 과정을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 시그널링 송신 과정을 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 시그널링 수신 방법을 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 1 실시 예를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 2 실시 예를 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 3 실시 예를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 1 실시 예를 예시적으로 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 2 실시 예를 예시적으로 보여주는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 3 실시 예를 예시적으로 보여주는 흐름도이다.
도 14는 본 발명의 실시 예에 따른 저장 장치의 비표준 통신 방법에 대한 실시 예를 보여주는 흐름도이다.
도 15는 본 발명의 실시 예에 따른 파일 셋 시그널링을 이용하는 벤더 커맨드 실행 방법을 예시적으로 보여주는 흐름도이다.
도 16은 본 발명의 실시 예에 따른 모바일 장치를 설명하는 도면이다.
도 17은 본 발명의 다른 실시 예에 따른 모바일 장치를 설명하는 도면이다.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 설명하는 도면이다.
도 19 내지 도 22는 본 발명의 응용 예들을 보여주는 도면들이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 실시 예에 따른 전자 장치 및 통신 방법은, 저장 장치의 표준 인터페이스의 통신 규약에 정의되지 않은 하드웨어적인 제약과, 표준 규약이 존재하더라도 통신하는 어플리케이션의 권한이 부족하여 표준 규약을 사용하지 못하는 소프트웨어적으로 제약이 있더라도, 파일 셋 시그널링(file set signaling)을 이용하여 비표준(non-standard) 통신을 수행할 수 있다. 파일 셋 시그널링에 대한 자세한 것은 아래에서 설명하겠다.
도 1은 본 발명의 개념을 설명하기 위한 전자 장치(10)을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 전자 장치(10)은 저장 장치(100) 및 호스트(200)를 포함한다.
저장 장치(100)는 호스트(200)에 사용될 데이터를 저장할 수 있다. 저장 장치(100)는 호스트(200)로부터 전송된 복수의 파일들, 즉, 파일 셋(file set)에 대한 입출력 요청들(쓰기/읽기 요청)을 근거로 하여 비표준 통신(non-standard communication)을 판별하는 비표준 통신 판별기(120)를 포함한다. 여기서 비표준 통신 판별기(120)는 하드웨어/소프트웨어/펌웨어 형태로 구현될 수 있다.
비표준 통신 판별기(120)는 비표준 통신 개시를 인식할 뿐 아니라, 비표준 통신 개시 이후에 입력된 파일 셋에 대한 입출력 요청들을 비트 데이터로 변환할 수 있다. 또한, 비표준 통신 판별기(120)는 비표준 통신 개시 이후에 호스트(200)로 전송될 비트 데이터를 파일 셋에 대한 입출력 요청의 성공/실패로 변환할 수 있다.
호스트(200)는 저장 장치(100)와 비표준 통신을 수행하기 위한 어플리케이션(220)을 포함한다. 예를 들어, 어플리케이션(220)은 저장 장치(100)를 관리하는 마법사 프로그램(magician program)일 수 있다. 어플리케이션(220)은 비표준 통신을 위한 파일 셋 채널(file set channel)을 형성/발생하기 위하여 복수의 파일들을 발생하고, 발생된 복수의 파일들, 즉 파일 셋에 대한 특정 패턴의 입출력 요청들을 저장 장치(100)로 전송할 수 있다. 비표준 통신 판별기(120)에서 특정 패턴의 입출력 요청들을 인식하면 파일 셋 채널이 형성된 것이다.
정리하면, 전자 장치(10)은 파일 셋 시그널링(file set signaling)을 이용하여 비표준 통신을 수행할 수 있다. 여기서 파일 셋 시그널링이란 파일 셋을 구성하는 파일들 각각을 적어도 하나의 비트를 송수신하도록 이용한다는 의미이다. 즉, 호스트(200)는 파일 셋 채널을 통하여 저장 장치(100)로 비트 데이터를 전송할 수 있으며, 또한, 저장 장치(100)는 파일 셋 채널을 통하여 호스트(200)로 비트 데이터를 전송할 수 있다.
도 2는 본 발명의 실시 예에 따른 비표준 통신을 설명하기 위한 소프트웨어 계층을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 호스트(200)는 파일 시스템(210), 어플리케이션(220), 및 디바이스 드라이버(230)를 포함한다.
파일 시스템(210)은 어플리케이션 프로그램 인터페이스(application programming interface; API), 파일 시스템 매니저(file system manager), 디바이스 인터페이스(device interface)를 포함할 수 있다. 파일 시스템(210)은 비표준 통신을 수행하고자 할 때 어플리케이션(220)의 요청에 따라 파일 셋 채널을 발생하기 위한 복수의 파일들을 발생하거나, 복수의 파일들에 대한 입출력 요청들을 발생할 수 있다.
디바이스 드라이버(230)는 파일 시스템(210)을 위한 API를 제공하고, 파일 시스템(210)에 의해 발생되는 하드웨어에 대한 접근 요청(입출력 요청)을 하드웨어(예를 들어, 저장 장치(100))에서 식별 가능한 명령으로 변환할 수 있다.
실시 예에 있어서, 파일 시스템(210)과 디바이스 드라이버(230)는 OS(operating system) 안에 포함되고, 어플리케이션(220)은 OS 상에 설치될 수 있다.
본 발명의 비표준 통신 과정은 다음과 같이 진행된다. 첫째로, 어플리케이션(220)이 구현되는 OS의 file io api는 저장 장치(100)에 디스크 입출력 요청(disk io)를 발생시킨다. 예를 들어, file io api는, Windows의 경우 CreateFile/ReadFile/WriteFile 등의 api이고, linux의 경우는 open/read/write 등의 api일 수 있다.
둘째로, 복수의 파일들(파일 셋)을 발생함으로써 어플리케이션(220)과 저장 장치(100) 사이에 통신 채널(communication channel)을 확보한 후, 어플리케이션(220)이 발생한 파일 셋 중에 일부에 파일 입출력 요청(file io)를 발생시키고, 파일 입출력 요청(file io)을 OS 와 파일 시스템(210)에 의하여 디스크 입출력 요청(disk io)으로 변환시킨 후, 디스크 입출력 요청(disk io)이 저장 장치(100)에 전송된다. 저장 장치(100)는 전송된 디스크 입출력 요청(disk io)를 감지하고, 비표준 통신에 대한 의미를 판별한다.
셋째로, 파일 셋이 발생된 후 일반적인 상황에서는 해당 파일들의 주소가 변경되지 않는다. 디스크 조각 모음 (defrag) 와 같은 특수한 작업은 파일의 LBA 주소 변경을 하지만, 파일 핸들(handle or descriptor)이 어플리케이션(220)에 의해 열려 있는 상태에서는 이러한 작업이 수행되지 않는다. 여기서 파일 셋이 발생된 후 주소가 변경되지 않는다는 것은, 해당 LBA(logical block address)가 영구적으로 바뀌지 않는 것이 아니라, 어플리케이션(220)과 저장 장치(100)의 파일 셋 시그널링 사용되는 동안 변경되지 않는다는 것을 의미한다.
파일 셋 시그널링에 사용될 파일들은 서로 연관성이 없는 위치를 갖고 있어도 상관 없고, 미리 지정되어 있는 것이 아니라 필요시 발생되고, 비표준 통신 이후에는 삭제될 수 있다. 파일 시스템(210)에 따라 파일 셋을 구성하는 파일들이 하나의 인접한(contiguous) 영역에 존재하지 않을 수도 있다. 파일 시스템(210)은 파일 셋을 구성하는 파일들 각각을 클러스터(cluster) 단위로 발생함으로써, 파일 들 각각을 연속성이 보장되는 섹터(sector)의 개수로 할당시킬 수 있다.
파일 셋 채널의 발생 목적은 어플리케이션(220)과 저장 장치(100) 사이에 동일한 LBA에 대한 정보를 얻기 위함이다. 어플리케이션(220)은 파일 시스템(210) 을 통해 파일 명은 알 수 있지만, LBA 주소를 직접적으로 알 필요는 없다. 저장 장치(100)는 디스크 입출력 요청(disk io)이 발생하는 LBA 주소는 알 수 있으며, 파일 시스템 분석을 통하여 해당 파일 명을 알 수는 있다.
파일 셋 채널을 발생하는 방식은 통신 채널을 구성하기 위한 N 개의 파일들에 대하여 어플리케이션(220)에서 특정 패턴으로 파일 입출력 요청(file io)를 발생시키고, 이 패턴이 미리 약속되어 있어 저장 장치(100)에서 감지하는 방식이다.
본 발명은 어플리케이션(220)과 저장 장치(100) 사이에서 파일 셋 시그널링을 이용한 비표준 통신을 수행할 수 있다.
도 2에서는 어플리케이션(220)은 파일 시스템(210)을 경유하는 비표준 통신을 수행하였다. 하지만, 본 발명의 어플리케이션은 여기에 제한되지 않고, 파일 시스템을 경유하지 않고 비표준 통신을 수행하는 것을 더 추가하도록 구현될 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 소프트웨어 계층을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 어플리케이션(220a)은 저장 장치(100)와 파일 셋 채널을 이용하는 파일 시스템(210)을 경유하는 제 1 비표준 통신을 수행하거나 파일 셋 채널을 이용하지 않는 파일 시스템(210)을 경유하지 않는 제 2 비표준 통신을 수행할 수 있다. 제 1 비표준 통신은 도 2에서 설명된 비표준 통신과 동일함으로 아래에서는 자세한 설명을 생략하겠다.
제 2 비표준 통신은 어플리케이션(220a)에서 디바이스 드라이버(230a)에 전달한 명령을 디바이스 드라이버(230a)에 의해 저장 장치(100)로 전송됨으로써 수행될 수 있다. 실시 예에 있어서, 디바이스 드라이버(230a)는 OS(operating system; windows, linux, MAC, android 등)에 종속적일 수 있다.
어플리케이션(220a)은 제 1 비표준 통신과 제 2 비표준 통신 중 어느 하나를 선택적으로 수행하도록 구현될 수 있다. 예를 들어, 제 2 비표준 통신을 디폴트로 수행하고, 제 2 비표준 통신이 수행되지 않을 때 제 1 비표준 통신이 수행될 수 있다. 이와 반대로 제 1 비표준 통신을 디폴트로 수행하고, 제 1 비표준 통신이 수행되지 않을 때 제 2 비표준 통신이 수행될 수 있다.
본 발명의 실시 예에 따른 전자 장치(10)은 파일 시스템(210)을 이용하는 제 1 비표준 통신과 파일 시스템(210)을 이용하지 않는 제 2 비표준 통신을 모두 수행할 수 있다.
도 4는 본 발명의 실시 예에 따른 파일 셋 채널을 이용한 비표준 통신 프로토콜을 개략적으로 보여주는 도면이다. 도 1 내지 도 3을 참조하면, 비표준 통신이 요구될 때, 호스트(200)는 복수의 파일들을 발생하고, 발생된 파일들을 저장 장치(100)에 저장한다. 호스트(200)는 복수의 파일들에 대한 사전에 결정된 패턴의 복수의 입출력 요청들을 저장 장치(100)에 전송하고, 저장 장치(100)는 사전에 결정된 패턴의 복수의 입출력 요청들을 인지함으로써, 비표준 통신을 위한 파일 셋 채널이 형성된다(S10).
파일 셋 채널 형성 후에, 호스트(200)와 저장 장치(100)는 제 1 및 제 2 파일 셋 시그널링을 송수신함으로써 통신한다. 예를 들어, 호스트(200)는 전송할 비트 데이터를 제 1 파일 셋 시그널링(file set signaling)으로 저장 장치(100)에 전송할 수 있다(S20). 여기서 제 1 파일 셋 시그널링은 복수의 파일들에 대한 입출력 요청들(읽기/쓰기 요청)로 구성될 수 있다. 예를 들어, 제 1 파일 셋 시그널링에서 어느 하나의 파일에 대한 읽기 요청 혹은 업데이트(쓰기) 요청이 하나의 비트로 간주 될 수 있다. 또한, 저장 장치(100)는 호스트(200)으로부터 전송된 제 1 파일 셋 시그널링을 분석하여 비트 데이터를 해석한다. 즉, 호스트(200)로부터 전송된 복수의 파일들에 대한 입출력 요청들이 호스트(200)로부터 전송된 비트 데이터로 해석된다.
저장 장치(100)는 전송할 비트 데이터를 제 2 파일 셋 시그널링으로 호스트(200)에 전송할 수 있다(S30). 여기서 제 2 파일 셋 시그널링은 복수의 파일들에 대한 입출력 요청들의 성공/실패 정보로 구성될 수 있다. 한편, 제 2 파일 셋 시그널링이 입출력 요청들의 성공/실패 정보에 제한되지 않으며, 각각의 파일과 관련된 정보로 다양하게 구현될 수 있다. 또한, 호스트(200)는 저장 장치(100)로부터 전송된 제 2 파일 셋 시그널링을 분석하여 비트 데이터를 해석한다. 즉, 저장 장치(100)로부터 전송된 복수의 파일들에 대한 입출력 요청들의 성공/실패 정보들이 저장 장치(100)로부터 전송된 비트 데이터로 해석된다.
아래의 도 5 내지도 7은 읽기 요청을 이용한 비표준 통신 방법을 설명하겠다.
도 5는 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 채널 발생 과정을 예시적으로 보여주는 도면이다. 도 5를 참조하면, 파일 셋 채널 발생 과정은 다음과 같이 진행된다.
저장 장치(100)는 N개 파일들(F1 ~ FN)의 LBA (OxXX, OxYY, OxAB, ... OxQQ)와 LAB 각각에 에 대응하는 디스크 입출력 요청(disk io), 즉, 읽기 요청이 발생한 개수를 그룹으로 저장한다.
예를 들어, 제 1 시퀀스(Seq1) 동안에 저장 장치(100)는 (LBA1, 1), (LBA2, 1), ... (LBAN, 1)을 저장한다. 제 2 시퀀스(Seq2) 동안에는 저장 장치(100)는 (LBA1, 1, 2), (LBA2, 1, 2), ... (LBAN, 1, 2)를 저장한다. 제 3 시퀀스(Seq3)동안에 저장 장치(100)는 (LBA1, 1, 2, 3), (LBA2, 1, 2, 3), ... (LBAN, 1, 2, 3)을 저장한다.
저장 장치(100)의 비표준 통신 판별기(120, 도 1 참조)는 제 3 시퀀스(Seq3)까지 성공적으로 인지가 되는 파일 셋이 존재한다면, 파일 셋 채널이 발생된 것이다.
또한, 어플리케이션(220, 도 1 참조)는 시퀀스들(Seq1, Seq2, Seq3)을 수행한 뒤 파일 셋 채널이 성공적으로 발생되었는 지를 체크할 수 있다. 여기서 파일 셋 채널의 성공 여부에 대한 체크는 아래에 설명된 파일 셋 시그널링 송수신 방식에 따라 진행될 수 있다.
본 발명은 파일 셋에 대한 특정한 패턴의 읽기 요청들을 인지함으로써, 파일 셋 채널을 형성/발생할 수 있다.
도 6은 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 시그널링 송신 과정을 보여주는 도면이다. 도 6을 참조하면 파일 셋 시그널링 송신 과정은 다음과 같다.
데이터 송신의 경우, 어플리케이션(220)에서 N+2개의 파일들을 발생하고, 어플리케이션(220)과 저장 장치(100)는 발생된 N+2개의 파이들에 대한 주소를 서로 인지하고 있는 상태이다. 여기서 발생된 파일들은 연속적으로 위치할 필요 없으며 존재하는 위치에 대한 제약 또한 없다.
N개의 파일들(F1 ~ FN)은 비트 데이터를 전송하기 위한 비트라인(bit line)으로 사용하고, 나머지 2개의 파일들(Ready, Tx)은 비트라인에 설정된 데이터 전송을 위하여 사용할 수 있다. 어플리케이션(220)은 각 파일에 대하여 읽기 요청(read)를 수행하여 디스크 입출력 요청(disk io)를 발생시킨다.
예를 들어, Ready 파일에 입출력 요청(disk io)로 신호 송신 준비를 알린다. 파일들(F1, F2, ... FN)중 비트 셋(bit set)을 하고자 하는 파일들에 디스크 입출력 요청(disk io), 즉 읽기 요청을 발생시킨다. 이때 저장 장치(100)는 디스크 입출력 요청(disk io)이 발생된 파일들을 저장한다. Tx 파일에 디스크 입출력 요청(disk io)를 발생시켜 신호 송신을 알린다. 저장 장치(100)는 디스크 입출력 요청(disk io)이 발생된 파일들 각각을 비트로 여기고 바이너리 데이터(b101...1, b000...0, b111...1)로 해석한다. 이때 파일 셋에 대한 한 번의 디스크 입출력 요청(disk io)에 전송으로 N 비트 데이터가 전송될 수 있다.
예를 들어, 도 6에 도시된 바와 같이 첫 번째 비트 데이터(b101...1) 을 전송하기 위하여, 파일들(Ready, F1 ~ FN, Tx)에 읽기 요청(read)이 발생될 수 있다. 비트 '0'으로 설정하는 것은 읽기 요청(read)의 부재로 표현될 수 있다. 예를 들어, 두 번째 비트 데이터(b000...0)을 전송하기 위하여, Ready, Tx 파일들에 대한 읽기 요청(read)이 발생 될 수 있다. 비트 '1"으로 설정하는 것은 읽기 요청(read)으로 표현될 수 있다. 예를 들어, 세 번째 비트 데이터(b111...1)을 전송하기 위하여 파일들(Ready, F1 ~ FN, Tx)에 읽기 요청(read)이 발생될 수 있다.
한편, 도 6에 도시된 비트 '1'와 '0' 설정 방법은 예시에 불과하다. 읽기 요청된 파일에 대하여 비트 '0'이 설정되고 읽기 요청의 부재된 파일에 대하여 비트 '1'이 설정될 수도 있다.
본 발명의 실시 예에 따른 파일 셋 시그널링 송신 방법은 파일 셋에 대한 읽기 요청의 존재 여부를 하나의 비트로 표현함으로써 데이터를 전송할 수 있다.
도 7은 본 발명의 실시 예에 따른 읽기 요청을 이용한 파일 셋 시그널링 수신 방법을 보여주는 도면이다. 도 7을 참조하면, 파일 셋 시그널링 수신 방법은 다음과 같이 진행된다.
Ready 파일에 대응하는 LBA에 디스크 입출력 요청(disk io) 즉, 읽기 요청의 성공을 지시하는 신호가 어플리케이션(220)에 전송됨으로써 파일 셋 시그널링 수신이 시작이 알려진다.
어플리케이션(220)은 저장 장치(100)로부터 파일들(F1, F2, F3, ... FN)에 대한 읽기 요청의 성공 여부를 지시하는 신호들을 입력 받는다. 즉, 저장 장치(100)는 비트 셋을 알려 주어야 할 경우에는 읽기 요청이 성공 했다고 어플리케이션(220) 알려주고, 비트 언셋(unset)을 알려 주어야 할 경우에는 읽기 요청이 실패했다고 어플리케이션(220)에 알려줄 수 있다. 어플리케이션(220)은 OS의 file io api의 반환 값을 사용하여 디스크 입출력 요청(disk io) 성공/실패 여부를 판별할 수 있다. 실시 예에 있어서, 어플리케이션(220)은 도 7에 도시된 바와 같이, 파일 입출력 요청(file io)이 성공한 파일의 인덱스(index)를 조합함으로써 수신된 비트 데이터(b101...1, b000..0)를 구성할 수 있다. 이 후에, Rx 파일에 디스크 입출력 요청(disk io)의 성공을 지시하는 신호를 어플리케이션(220) 수신함으로써, 파일 셋 시그널링 수신 동작이 완료된다.
본 발명의 실시 예에 따른 파일 셋 시그널링 수신 방법은 파일 셋에 대한 읽기 요청의 성공 여부를 하나의 비트로 표현함으로써 데이터를 수신할 수 있다.
한편, 도 5 내지 7은 읽기 요청을 이용한 비표준 통신을 설명하였다. 본 발명은 쓰기 요청을 이용한 비표준 통신을 구현할 수도 있다.
도 8은 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 1 실시 예를 예시적으로 보여주는 도면이다. 도 8에 도시된 비표준 통신에서는 설명의 편의를 위하여 3개의 텍스트 파일들(1.txt, 2.txt, 3.txt)을 이용되고, 파일들(1.txt, 2.txt, 3.txt) 각각은 클러스터 단위로 저장 장치(100)에 저장된다. 여기서 클러스터는 복수의 섹터들(S1 ~ S3)로 구성된다. 도 8에서는 설명의 편의를 위하여 하나의 클러스터가 4개의 섹터들로 구성된다고 하겠다.
도 8을 다시 참조하면, 쓰기 요청을 이용한 비표준 통신은 복수의 파일들(1.txt, 2.txt, 3.txt)을 저장한 뒤 제 1 업데이트 동작을 수행함으로써 파일 셋 채널을 형성하고, 제 2 업데이트 동작을 수행함으로써 파일 셋 시그널링 송신을 수행할 수 있다.
아래에서는 파일 셋 시그널링 송신에 대하여 설명하도록 하겠다. 호스트(200, 도 1 참조)의 어플리케이션(220)이 저장 장치(100)와 비표준 통신을 원할 때, 어플리케이션(220)은 복수의 파일들(1.txt, 2.txt, 3.txt) 발생을 파일 시스템(210, 도 2 참조)에 요청한다. 파일 시스템(210)은 어플리케이션(220)의 파일들(1.txt, 2.txt, 3.txt) 요청에 근거로 하여 파일들(1.txt, 2.txt, 3.txt)을 발생하고, 디바이스 드라이버(230, 도 2참조)에 대응하는 쓰기 요청들을 발생시키도록 요청한다. 파일들(1.txt, 2.txt, 3.txt) 발생은 파일들(1.txt, 2.txt, 3.txt) 각각에 대한 논리 주소의 할당을 포함한다. 디바이스 드라이버(230)는 파일 시스템(210)의 요청에 근거로 하여 저장 장치(100)가 인식할 수 있는 쓰기 요청들을 발생 및 전송한다. 이로써, 디바이스 드라이버(230)로부터 파일들(1.txt, 2.txt, 3.txt) 각각에 대한 쓰기 요청을 입력 받은 저장 장치(100)도 파일들(1.txt, 2.txt, 3.txt)에 대한 논리 주소를 인식하고 있다.
이후, 파일 셋 채널을 발생하기 위한 제 1 업데이트 동작이 수행된다. 제 1 업데이트 동작에서 어플리케이션(220)은 특정 패턴으로 파일들(1.txt, 2.txt, 3.txt) 각각에 대한 업데이트 요청을 수행한다. 저장 장치(100)는 이러한 어플리케이션(220)의 제 1 업데이트 요청을 인지함으로써 파일 셋 채널을 통한 비표준 통신을 개시하게 된다. 여기서 파일 셋 채널은 파일들(1.txt, 2.txt, 3.txt)을 포함할 것이다.
이후, 파일 셋 시그널링 전송을 위하여 제 2 업데이트 동작이 수행된다. 파일의 업데이트 여부에 따라 비트를 정의한다. 예를 들어, 업데이트가 수행되는 파일은 비트 '1'이 설정되고, 업데이트가 수행되지 않는 파일은 비트 '0'이 설정된다.
도 8에서는 발생된 파일들(1.txt, 2.txt, 3.txt)의 확장자는 txt이다. 하지만 본 발명의 실시 예에 따른 파일의 확장자는 여기에 제한되지 않을 것이다.
본 발명은 파일 셋에 대한 업데이트 동작의 여부를 하나의 비트로 이용함으로써 파일 셋 시그널링을 전송할 수 있다.
한편, 도 8에서는 파일 셋 시그널링 전송을 위하여 파일들(1.txt, 2.txt, 3.txt)을 구성하는 클러스터 단위에 대한 업데이트 동작이 수행되었다. 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명은 파일 셋 시그널링 전송을 위하여 파일들(1.txt, 2.txt, 3.txt)을 구성하는 클러스터 중 일부의 적어도 하나의 섹터에 대한 업데이트 동작을 수행할 수도 있다.
도 9는 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 2 실시 예를 예시적으로 보여주는 도면이다. 도 9를 참조하면, 비표준 통신 방법은, 도 8에 도시된 그것과 비교하여 파일 셋 시그널링 전송을 위하여 파일들(1.txt, 2.txt, 3.txt)을 구성하는 클러스터 중 하나의 섹터에 대한 제 2 업데이트 동작을 수행한다는 차이점을 갖는다.
한편, 도 8 및 도 9에서는 파일들(1.txt, 2.txt, 3.txt) 각각을 통하여 한 비트의 데이터가 전송되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명은 파일들(1.txt, 2.txt, 3.txt) 각각을 통하여 복수의 비트들의 데이터를 전송할 수도 있다.
도 10은 본 발명의 실시 예에 따른 쓰기 요청을 이용한 비표준 통신에 대한 제 3 실시 예를 예시적으로 보여주는 도면이다. 도 10을 참조하면, 비표준 통신 방법은, 도 8 및 도 9에 도시된 그것들과 비교하여 파일들(1.txt, 2.txt, 3.txt) 각각을 통하여 2 비트의 데이터를 전송하는 제 2 업데이트 동작을 수행한다는 차이점을 갖는다.
도 10에 도시된 바와 같이, 클러스터는 연속한 4개의 섹터들(S1 ~ S4)로 구성된다. 또한, 섹터들(S1 ~ S4) 각각은 업데이트 동작 시 대응하는 2 비트가 서로 다르게 정의될 수 있다. 예를 들어, 제 1 섹터(S1)의 업데이트 동작은 '11'로 설정되고, 제 2 섹터(S2)의 업데이트 동작은 '01'로 설정되고, 제 3 섹터(S3)의 업데이트 동작은 '10'로 설정되고, 제 4 섹터(S4)의 업데이트 동작은 '00'로 설정될 수 있다.
본 발명의 실시 예에 비표준 통신은 파일들(1.txt, 2.txt, 3.txt) 각각을 통하여 2 비트의 데이터를 전송할 수 있다.
상술 된 바와 같이, 도 5 내지 도 10은 disk io(읽기 요청 혹은 쓰기 요청)을 이용한 비표준 통신에 대한 실시 예들에 불과하다. 본 발명은 읽기 요청 혹은 쓰기 요청의 다양한 방법과 조합에 의해 파일 셋 채널을 형성하고, 파일 셋 시그널링을 송수신할 수 있다. 한편, 본 발명의 파일 셋 시그널링은 하나의 비트를 전송하는 단위에 따라 클러스터 셋 시그널링 혹은 섹터 셋 시그널링이라고 불릴 수도 있다.
도 11은 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 1 실시 예를 예시적으로 보여주는 흐름도이다. 도 1 내지 도 11을 참조하면, 비표준 통신 방법은 다음과 같다.
호스트(200)과 저장 장치(100) 사이에 비표준 통신을 수행할 필요가 있다면, 호스트(200)의 어플리케이션(220)은 비표준 통신을 위한 복수의 파일들 발생을 파일 시스템(210)에 요청한다. 호스트(200)의 파일 시스템(210)은 어플리케이션(220)의 요청에 응답하여 파일들의 집합(set of files)을 발생한다(S110).
호스트(200)는 이후, 파일 셋 채널을 발생하기 위하여 특정 패턴으로 파일들의 집합에 대응하는 입출력 요청들(Disk IOs)을 전송한다(S120). 여기서 입출력 요청들(Disk IOs)은 쓰기 요청 혹은 읽기 요청으로 구성될 수 있다. 저장 장치(100)가 호스트(200)로부터 전송된 특정 패턴의 입출력 요청들(Disk IOs) 인식하면, 파일 셋 채널이 발생된 것이다(S120).
파일 셋 채널 발생 이후에, 호스트(200)는 비트 데이터를 전송하기 위하여 파일들의 집합에 대응하는 입출력 요청들(Disk IOs)을 저장 장치(100)에 전송한다(S130). 여기서 파일들 각각에 대응하는 입출력 요청은 전송될 적어도 하나의 비트로 간주 될 것이다. 파일 셋 채널 발생 후에는 비트 데이터를 전송을 위하여 S130 단계가 반복 수행될 수 있다.
본 발명의 실시 예에 따른 비표준 통신 방법은 파일들의 집합의 입출력 요청들(Disk IOs)을 이용하여 비트 데이터를 전송할 수 있다.
도 12는 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 2 실시 예를 예시적으로 보여주는 흐름도이다. 도 1 내지 도 10 및 도 12을 참조하면, 비표준 통신 방법은 다음과 같다.
호스트(200)는 비표준 통신을 위하여 파일들의 집합(set of files)을 발생한다(S210). 호스트(200)는 이후, 파일 셋 채널을 발생하기 위하여 특정 패턴으로 파일들의 집합에 대응하는 읽기 요청들을 전송한다(S220). 저장 장치(100)가 호스트(200)로부터 전송된 특정 패턴의 읽기 요청들을 인식하면, 파일 셋 채널이 발생된 것이다(S220). 파일 셋 채널 발생 이후에, 호스트(200)는 비트 데이터를 전송하기 위하여 파일들의 집합에 대응하는 읽기 요청들을 저장 장치(100)에 전송한다(S230). 여기서 파일들 각각에 대응하는 읽기 요청은 전송될 적어도 하나의 비트로 간주 될 것이다. 파일 셋 채널 발생 후에는 비트 데이터를 전송을 위하여 S230 단계가 반복 수행될 수 있다.
본 발명의 실시 예에 따른 비표준 통신 방법은 파일들의 집합의 읽기 요청들을 이용하여 비트 데이터를 전송할 수 있다.
도 13은 본 발명의 실시 예에 따른 호스트의 비표준 통신 방법에 대한 제 3 실시 예를 예시적으로 보여주는 흐름도이다. 도 1 내지 도 10 및 도 13을 참조하면, 비표준 통신 방법은 다음과 같다.
호스트(200)는 비표준 통신을 위하여 파일들의 집합(set of files)을 발생한다(S310). 클러스터 단위로 저장 장치에 파일들의 집합이 쓰여진다(S320). 이로써, 파일들의 집합에 대한 논리 주소들을 호스트(200) 및 저장 장치(100)가 인식할 수 있다. 호스트(200)는 이후, 파일 셋 채널을 발생하기 위하여 특정 패턴으로 파일들의 집합에 대응하는 업데이트 요청들(혹은 쓰기 요청)을 전송한다(S330). 저장 장치(100)가 호스트(200)로부터 전송된 특정 패턴의 업데이트 요청들을 인식하면, 비표준 통신을 위한 파일 셋 채널이 발생된 것이다(S330). 파일 셋 채널 발생 이후에, 호스트(200)는 비트 데이터를 전송하기 위하여 파일들의 집합에 대응하는 업데이트 요청들을 저장 장치(100)에 전송한다(S340). 여기서 파일들 각각에 대응하는 업데이트 요청은 전송될 적어도 하나의 비트로 간주 될 것이다. 파일 셋 채널 발생 후에는 비트 데이터를 전송을 위하여 S340 단계가 반복 수행될 수 있다.
본 발명의 실시 예에 따른 비표준 통신 방법은 파일들의 집합의 쓰기 요청들을 이용하여 비트 데이터를 전송할 수 있다.
도 14는 본 발명의 실시 예에 따른 저장 장치의 비표준 통신 방법에 대한 실시 예를 보여주는 흐름도이다. 도 1 내지 도 10 및 도 14를 참조하면, 비표준 통신 방법은 다음과 같다.
저장 장치(100)는 파일 셋 채널을 위하여 파일들의 집합에 대응하는 제 1 입출력 요청들(first Disk IOs)을 입력 받는다(S410). 저장 장치(100)는 입력된 제 1 입출력 요청들(first Disk IOs)이 사전에 약속된 패턴으로 입력되었는 지를 판별하고, 만일 사전에 약속된 패턴으로 제 1 입출력 요청들(first Disk IOs)이 입력되었다면 비표준 통신을 수행하도록 결정한다(S420). 이때 비표준 통신은 위한 파일 셋 채널이 형성된 것으로 본다.
이후, 저장 장치(100)는 파일 셋 시그널링을 통하여 비트 데이터를 입력 받기 위하여 파일들의 집합에 대응하는 제 2 입출력 요청들(Second Disk IOs)을 입력 받는다(S430). 저장 장치(100)는 파일 셋 채널을 통하여 입력된 제 2 입출력 요청들(second Disk IOs)을 호스트(200)로부터 전송된 비트 데이터로 해석한다(S440).
본 발명의 실시 예에 따른 비표준 통신 방법은 파이들의 집합의 입출력 요청들을 근거로 하여 비트 데이터를 수신할 수 있다.
한편, 도 12 내지 도 14는 파일 셋 시그널링을 이용한 비표준 통신 방법에 대하여 설명하였다. 이러한 본 발명의 비표준 통신 방법은 벤더 커맨드(vendor command)를 발행하는데 이용될 수 있다.
도 15는 본 발명의 실시 예에 따른 파일 셋 시그널링을 이용하는 벤더 커맨드 실행 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 15를 참조하면, 벤더 커맨드 실행 방법은 다음과 같다. 저장 장치(100)와 호스트(200) 사이에 파일 셋 채널을 이용하여 비표준 통신 채널이 오픈된다(S510). 호스트(200)는 저장 장치(100)를 관리하기 위한 벤더 커맨드를 발행하고, 발행된 벤더 커맨드를 파일 셋 시그널링에 의해 저장 장치(100)으로 전송한다(S520). 저장 장치(100)는 파일 셋 시그널링에 의해 전송된 벤더 커맨드를 해석하고, 해석된 벤더 커맨드에 대응하는 동작을 수행한다(S530). 벤더 커맨드에 대한 동작이 완료된 후, 저장 장치(100)는 파일 셋 시그널링에 의하여 벤더 커맨드 완료 정보를 호스트(200)으로 전송한다.
본 발명의 실시 예에 따른 벤더 커맨드 실행 방법은 파일 셋 시그널링을 위하여 벤더 커맨드를 전송할 수 있다.
아래에서는 본 발명이 응용되는 장치들을 개시한다. 본 발명은 마이크로 SD 카드를 사용하는 어떠한 종류의 전자 장치에 적용 가능하다.
도 16은 본 발명의 실시 예에 따른 모바일 장치(20)를 설명하는 도면이다. 도 16을 참조하면, 모바일 장치(20)는 마이크로 SD 카드(22)를 내장 혹은 삽입할 수 있는 어플리케이션 프로세서(24)를 포함할 수 있다. 여기서 마이크로 SD 카드(22)는 도 1에 도시된 저장 장치(100)로 구현되고, 어플리케이션 프로세서(24)는 도 1에 도시된 호스트(200)로 구현될 수 있다. 마이크로 SD 카드(22)과 어플리케이션 프로세서(24)는 파일 셋 시그널링을 이용한 비표준 통신을 수행할 수 있다.
일반적인 모바일 장치에 설치된 OS는 어플리케이션에 루트 권한을 부여하지 않는 경우가 많다. 이 경우 펌웨어 업데이트가 메모리 카드(SD 카드, micro SD 카드, MMC, eMMC, 등)에 제공되어도, 어플리케이션은 펌웨어 업데이트를 실행하기 위한 커맨드를 발행할 수 없다.
반면에, 본 발명의 실시 예에 따른 모바일 장치(20)는 정상적인 입출력 요청을 기반으로 파일 셋 시그널링을 이용한 비표준 통신을 수행함으로써, 메모리 카드(22)에 대한 펌웨어 업데이트를 제약없이 수행할 수 있다.
한편, 본 발명은 UFS(universal flash storage)를 인식하는 어떠한 종류의 전자 장치에 적용 가능하다.
도 17은 본 발명의 다른 실시 예에 따른 모바일 장치(30)를 설명하는 도면이다. 도 17를 참조하면, 모바일 장치(30)는 적어도 하나의 UFS 장치(32) 및 어플리케이션 프로세서(34)를 포함한다. 여기서 UFS 장치(32)는 도 1에 도시된 저장 장치(100)로 구현되고, 어플리케이션 프로세서(34)는 도 1에 도시된 호스트(200)로 구현될 수 있다. UFS 장치(32)와 어플리케이션 프로세서(34) 각각은 표준 통신을 수행하기 위한 모바일 물리 계층(M-PHY)을 포함한다. UFS 장치(32)과 어플리케이션 프로세서(34)는 파일 셋 시그널링을 이용한 비표준 통신을 수행할 수 있다.
본 발명의 실시 예에 따른 모바일 장치(30)는 파일 셋 시그널링을 이용한 비표준 통신을 통하여 UFS 장치(32)를 통신 제약없이 관리할 수 있다.
한편, 본 발명은 메인 메모리를 사용하는 어떠한 종류의 전자 장치에 적용 가능하다.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템(40)을 설명하는 도면이다. 도 18을 참조하면, 컴퓨팅 시스템(40)은 중앙 처리 장치(41), 메모리 모듈(42), 메모리 제어기(43) 및 저장 장치(44)를 포함한다. 중앙 처리 장치(41)는 컴퓨팅 시스템(40)의 전반적인 동작을 제어할 수 있다. 메모리 모듈(42)은 복수의 메모리 칩들(41-1 ~ 42-n)로 구성될 수 있다. 복수의 메모리 칩들(41-1 ~ 42-n) 각각은 도 18에 도시된 바와 같이 복수의 DRAM(혹은 PRAM) 칩들이 적층된 구조로 구현될 수 있다. 여기서 복수의 DRAM 칩들은 적어도 하나의 마스터 칩 및 적어도 하나의 슬레이브 칩을 포함할 수 있다.
적어도 하나의 마스터 칩 및 적어도 하나의 슬레이브 칩은 슬루 실리콘 비아(through silicon via, TSV)을 통해서 신호를 송수신 할 수 있다. 마스터 칩은 메모리 제어기(43)와 클록 신호(CLK), 커맨드/어드레스 신호(CA) 및 데이터(DQ) 등을 송수신하고, 외부로부터 신호를 TSV를 통해 슬레이브 칩으로 전송하거나, 슬레이브 칩으로부터 출력된 신호를 메모리 제어기(43)로 제공할 수 있다.
중앙 처리 장치(41)와 메모리 제어기(43)는 본 발명의 실시 예에 따른 파일 셋 시그널링을 이용한 비표준 통신을 수행할 수 있도록 구현될 수 있다. 또한, 중앙 처리 장치(41)와 저장 장치(44)는 본 발명의 실시 예에 따른 파일셋 시그널링을 이용한 비표준 통신을 수행할 수 있도록 구현될 수 있다.
본 발명은 SSD(solid state drive)에 적용 가능하다.
도 19는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다. 도 19를 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다.
비휘발성 메모리 장치들(1100) 각각은, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND;VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치(NVM)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다. SSD 제어기(1200)는 외부의 호스트와 파일 셋 시그널링을 이용한 비표준 통신을 수행하도록 구현될 수 있다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 또한, 도 19에서 버퍼 메모리(1220)는 SSD 제어기(1200) 내부에 존재하지만, 반드시 여기에 제한되지 않을 것이다. 버퍼 메모리는 SSD 제어기(1200)의 외부에 별도로 존재할 수도 있다. 에러 정정 회로(1230)는 입출력 동작시 사용되는 데이터의 에러를 정정하도록 구현될 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.
본 발명의 실시 예에 따른 SSD(1000)는 호스트의 제약없이 비표준 통신을 수행할 수 있다.
본 발명은 eMMC(embedded multimedia card, moviNAND, iNAND)에도 적용 가능하다.
도 20은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 메모리 블록도이다. 도 20을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.
낸드 플래시 메모리 장치(2100)는 SLC/MLC/TLC/QLC로 가질 수 있다. 또한 낸드 플래시 메모리 장치(2100)는 VNAND(vertical nand flash memory)로 구현될 수 잇다.
모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
메모리 제어기(2200)는 도 1 내지 도 17에서 설명된 바와 같이 호스트와 파일 셋 시그널링을 이용하여 비표준 통신을 수행하도록 구현될 수 있다. 메모리 제어기(2200)는 이러한 비표준 통신을 수행하기 위한 하드웨어 구성, 소프트웨어 구성, 및 펌웨어 구성 중 적어도 하나로 구현될 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(2000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(2000)는 호스트에 요청에 따라 파일 셋 시그널링을 이용한 비표준 통신을 제약없이 자유롭게 수행함으로써, 편리하게 관리할 수 있다.
본 발명은 UFS(uiversal flash storage)에도 적용 가능하다.
도 21은 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 메모리 블록도이다. 도 21을 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 착탈형 UFS 카드(3400)를 포함할 수 있다. UFS 호스트(3100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(3100)는 도 1에 도시된 호스트(200)와 동일하게 구현될 수 있다. UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 중 적어도 하나는 도 1에 도시된 저장 장치(10)를 포함할 수 있다.
한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다.
도 22는 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 메모리 블록도이다. 도 22를 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)를 포함한다.
어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 어플리케이션 프로세서(4100)는 도 1에 도시된 호스트(200)에 동일하게 구현될 수 있다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 것이다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 1에 도시된 저장 장치(10)로 구현될 수 있다.
모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 파일 셋을 이용한 비표준 통신을 수행함으로써 전체적인 시스템 성능 향상을 꾀할 수 있다.
본 발명은 disk io를 발생시킴을 통하여 저장 장치(storage device)와 비표준 방식으로 통신을 수행한다. 저장 장치의 표준 인터페이스의 통신 규약에 정의되지 않은 하드웨어적인 제약과, 표준 규약이 존재하더라도 통신 하는 어플리케이션의 권한이 부족하여 이를 사용하지 못하는 것과 같은 소프트웨어적으로 제약이 있을 경우에도, 본 발명은 사용이 가능하다.
파일 셋 시그널링 방식(file set signaling method)의 사용 조건들로는, 어플리케이션에서 저장 장치에 정보를 전달, 저장 장치에서 정보를 취득, 그리고 어플리케이션에서 저장 장치에 custom feature 를 수행 요청 등과 같은 경우를 포함한다.
본 발명은 어플리케이션과 저장 장치로 구성될 수 있다. 여기서 저장 장치는 HDD(hard disk drive), SSD(solid state drive), Flash Thumb drive 등 io 를 발생시킬 수 있는 모든 storage medium 에 적용이 가능하다. 또한 어플리케이션에서는 해당 OS file io api 를 사용하여 파일에 대한 입출력을 수행하면, 해당 OS 파일 시스템이 이를 섹터 어드레스(sector address)로 변경해 주는 특징을 사용한다. 또한, 어플리케이션이 io를 발생시킬 섹터 어드레스를 직접 지정이 가능하거나, 섹터 어드레스를 명시할 수 있다면, 이러한 섹터 어드레스가 비표준 통신에 그대로 사용될 수 있다.
본 발명은 저장 장치의 표준 인터페이스와 저장 장치에 설치된 파일 시스템의 종류와 무관하게 저장 장치와 통신을 할 수 있는 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10: 전자 장치
20, 30: 모바일 장치
40: 컴퓨팅 시스템
100: 저장 장치
200: 호스트
220, 24, 34: 어플리케이션
120: 비표준 통신 판별기
22: 마이크로 SD 카드
34: UFS 장치

Claims (26)

  1. 호스트와 통신하도록 구성된 스토리지 장치의 동작 방법에 있어서,
    파일 셋 채널을 사용하여 상기 스토리지 장치 및 상기 호스트 사이의 비표준 통신 채널을 오픈하는 단계;
    상기 파일 셋 채널을 통해 상기 호스트로부터 제1 파일 셋 시그널링을 사용하여 전송되는 벤더 커맨드를 수신하는 단계;
    상기 벤더 커맨드를 해석하여 상기 해석된 벤더 커맨드에 대응하는 동작을 실행하는 단계; 및
    상기 해석된 벤더 커맨드에 대응하는 상기 동작을 종료한 이후에, 제2 파일 셋 시그널링을 사용하여 상기 호스트로 벤더 커맨드 완료 정보를 제공하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 비표준 통신 채널을 오픈하는 단계는:
    상기 호스트로부터 복수의 파일들에 대한 제1 패턴의 입출력 요청들을 수신하는 단계; 및
    상기 제1 패턴의 입출력 요청들이 미리 정해진 패턴인 경우, 상기 파일 셋 채널을 생성하는 단계를 포함하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 제1 패턴의 입출력 요청들은 미리 정해진 패턴의 읽기 요청들, 미리 정해진 패턴의 쓰기 요청들, 및 미리 정해진 패턴의 업데이트 요청들 중 하나인 동작 방법.
  4. 제 2 항에 있어서,
    상기 벤더 커맨드를 수신하는 단계는:
    상기 복수의 파일들 중 제1 파일들에 대한 제2 패턴의 입출력 요청들을 상기 호스트로부터 수신하는 단계; 및
    상기 호스트로부터 수신된 상기 제2 패턴의 입출력 요청들을 상기 벤더 커맨드로서 해석하는 단계를 포함하는 동작 방법.
  5. 제 4 항에 있어서,
    상기 제2 패턴의 입출력 요청들은 상기 제1 파일들에 대한 요청들을 포함하고, 상기 복수의 파일들 중 제2 파일들에 대한 요청들을 포함하지 않고,
    상기 제1 파일들 각각은 제1 비트 값을 가리키고, 상기 제2 파일들 각각은 상기 제1 비트 값과 다른 제2 비트 값을 가리키는 동작 방법.
  6. 제 2 항에 있어서,
    상기 벤더 커맨드 완료 정보를 상기 호스트로 제공하는 단계는:
    상기 복수의 파일들 각각의 요청에 대한 패스/페일에 대한 정보를 제공하는 단계를 포함하고,
    상기 패스/페일에 대한 정보는 상기 벤더 커맨드 완료 정보를 포함하는 동작 방법.
  7. 제 1 항에 있어서,
    상기 벤더 커맨드는 특정 제조사, 또는 상기 호스트 또는 상기 스토리지 장치의 모델에 특정된 커맨드인 동작 방법.
  8. 스토리지 시스템에 있어서:
    파일 셋 채널에 대한 복수의 파일들을 생성하고, 상기 복수의 파일들에 대응하는 제1 패턴의 입출력 요청들을 전송하도록 구성된 프로세서를 포함하는 호스트; 및
    상기 호스트로부터의 상기 제1 패턴의 입출력 요청이 미리 정해진 패턴인지 식별하도록 구성된 비표준 통신 판별기를 포함하는 스토리지 장치를 포함하고,
    상기 파일 셋 채널은 상기 제1 패턴이 상기 미리 정해진 패턴인 경우 형성되는 스토리지 시스템.
  9. 제 8 항에 있어서,
    상기 파일 셋 채널이 형성된 이후에, 상기 프로세서는 상기 파일 셋 채널을 통해 제1 데이터 비트들을 상기 스토리지 장치로 전송하도록 구성되고,
    상기 제1 데이터 비트들은 제1 파일 셋 시그널링을 사용하여 전송되고,
    상기 제1 파일 셋 시그널링은 상기 복수의 파일들 중 제1 파일들에 대응하는 제2 패턴의 입출력 요청들을 포함하는 스토리지 시스템.
  10. 제 9 항에 있어서,
    상기 비표준 통신 판별기는 상기 제2 패턴들이 상기 제1 데이터 비트들의 각 비트를 나타내도록 상기 제2 패턴의 입출력 요청들을 대응하는 데이터 비트들로 변환하도록 구성된 스토리지 시스템.
  11. 제 10 항에 있어서,
    상기 비표준 통신 판별기는 상기 파일 셋 채널을 통해 상기 호스트로 제2 데이터 비트들을 전송하도록 구성되고,
    상기 제2 데이터 비트들은 제2 파일 셋 시그널링을 사용하여 전송되고,
    상기 제2 파일 셋 시그널링은 상기 복수의 파일들 각각의 요청에 대한 패스 또는 페일에 대한 정보를 포함하는 스토리지 시스템.
  12. 제 9 항에 있어서,
    상기 호스트는:
    상기 제2 패턴의 입출력 요청들을 디스크 입출력 요청들로 변환하도록 구성된 파일 시스템; 및
    상기 디스크 입출력 요청들을 상기 스토리지 장치가 식별하는 커맨드로 변환하도록 구성된 장치 드라이버를 더 포함하는 스토리지 시스템.
  13. 제 12 항에 있어서,
    상기 파일 시스템은 API(application programming interface), 파일 시스템 관리자, 및 장치 인터페이스 중 적어도 하나를 포함하는 스토리지 시스템.
  14. 제 8 항에 있어서,
    상기 호스트는 상기 스토리지 장치를 관리하고, 모니터링하고, 또는 최적화하는 프로그램인 어플리케이션을 더 포함하는 스토리지 시스템.
  15. 제 8 항에 있어서,
    상기 호스트 및 상기 스토리지 장치는 파일 셋 시그널링을 사용하여 비표준 통신을 수행하는 스토리지 시스템.
  16. 호스트 및 상기 호스트와 통신하는 스토리지 장치를 포함하는 스토리지 시스템의 통신 방법에 있어서,
    상기 호스트에 의해, 복수의 파일들을 생성하는 단계;
    상기 호스트에 의해, 상기 복수의 파일들에 대한 제1 패턴의 입출력 요청들을 상기 스토리지 장치로 전송하는 단계;
    상기 스토리지 장치에 의해, 상기 제1 패턴의 입출력 요청들이 미리 정해진 패턴임을 인식하고, 파일 셋 채널을 생성하는 단계;
    상기 호스트에 의해 상기 파일 셋 채널을 통해 상기 스토리지 장치로 제1 비트 데이터를 전송하는 단계, 단 상기 제1 비트 데이터는 제1 파일 셋 시그널링을 사용하여 전송되고, 상기 제1 파일 셋 시그널링은 상기 복수의 파일들의 각 파일이 상기 제1 비트 데이터의 각 비트를 나타내도록 상기 복수의 파일들 중 제1 파일들에 대응하는 제2 패턴의 입출력 요청들을 포함하고; 및
    상기 스토리지 장치에 의해, 상기 제2 패턴의 입출력 요청들을 상기 호스트로부터 전송된 상기 제1 비트 데이터로서 해석하는 단계를 포함하는 통신 방법.
  17. 제 16 항에 있어서,
    상기 제1 패턴의 입출력 요청들 및 상기 제2 패턴의 입출력 요청들은 읽기 요청을 포함하는 통신 방법.
  18. 제 17 항에 있어서,
    상기 제2 패턴의 입출력 요청들은 상기 복수의 파일들 중 상기 제1 파일들에 대한 읽기 요청들을 포함하고, 상기 복수의 파일들 중 제2 파일들에 대한 읽기 요청들을 포함하지 않고,
    상기 제1 파일들 각각은 제1 비트 값을 가리키고, 상기 제2 파일들 각각은 상기 제1 비트 값과 다른 제2 비트 값을 가리키는 통신 방법.
  19. 제 16 항에 있어서,
    상기 스토리지 장치에 의해, 상기 파일 셋 채널을 통해 상기 호스트로 제2 비트 데이터를 전송하는 단계를 더 포함하고,
    상기 제2 비트 데이터는 제2 파일 셋 시그널링을 사용하여 전송되고,
    상기 제2 파일 셋 시그널링은 상기 복수의 파일들의 입출력 요청들에 대한 패스 또는 페일에 대한 정보를 포함하는 통신 방법.
  20. 제 16 항에 있어서,
    상기 스토리지 장치에 의해, 상기 제1 패턴의 입출력 요청들이 상기 미리 정해진 패턴임을 인식한 이후에, 상기 파일 셋 채널이 생성되었음을 상기 호스트로 알리는 단계; 및
    상기 스토리지 장치에 의해, 상기 제2 패턴의 입출력 요청들이 상기 제1 비트 데이터로 해석된 이후에, 상기 통신이 완료되었음을 상기 호스트로 알리는 단계를 더 포함하는 통신 방법.



  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020140021414A 2014-02-24 2014-02-24 전자 장치 및 그것의 통신 방법 KR102192198B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140021414A KR102192198B1 (ko) 2014-02-24 2014-02-24 전자 장치 및 그것의 통신 방법
CN201510086487.4A CN104866456B (zh) 2014-02-24 2015-02-17 电子装置和通信方法
US14/628,598 US9582217B2 (en) 2014-02-24 2015-02-23 Electronic device and communication method
US15/432,286 US9864543B2 (en) 2014-02-24 2017-02-14 Electronic device and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140021414A KR102192198B1 (ko) 2014-02-24 2014-02-24 전자 장치 및 그것의 통신 방법

Publications (2)

Publication Number Publication Date
KR20150100071A KR20150100071A (ko) 2015-09-02
KR102192198B1 true KR102192198B1 (ko) 2020-12-17

Family

ID=53882248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140021414A KR102192198B1 (ko) 2014-02-24 2014-02-24 전자 장치 및 그것의 통신 방법

Country Status (3)

Country Link
US (2) US9582217B2 (ko)
KR (1) KR102192198B1 (ko)
CN (1) CN104866456B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037163B2 (en) * 2015-07-29 2018-07-31 Sandisk Technologies Llc Self-describing cluster association
US10437483B2 (en) * 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
KR102276912B1 (ko) * 2017-06-07 2021-07-13 삼성전자주식회사 스토리지 시스템 및 이의 동작 방법
KR20200075565A (ko) * 2018-12-18 2020-06-26 에스케이하이닉스 주식회사 스마트 카 시스템
JP2021136665A (ja) * 2020-02-28 2021-09-13 キヤノン株式会社 撮像装置、デバイス、制御方法、及びプログラム
JP2021136664A (ja) 2020-02-28 2021-09-13 キヤノン株式会社 デバイス、制御方法、およびプログラム
JP2021136666A (ja) 2020-02-28 2021-09-13 キヤノン株式会社 撮像装置、デバイス、制御方法、およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145106A1 (en) 2008-08-06 2013-06-06 Western Digital Technologies, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3051972B2 (ja) * 1995-08-24 2000-06-12 日本アイ・ビー・エム株式会社 並列計算機のプロセッサ間通信方法
US6832273B2 (en) 2000-12-21 2004-12-14 Microsoft Corporation System and method to specify extended configuration descriptor information in USB devices
US7610348B2 (en) * 2003-05-07 2009-10-27 International Business Machines Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US20050044330A1 (en) * 2003-07-28 2005-02-24 Gidon Elazar System, apparatus and method for controlling a storage device
JP4575219B2 (ja) * 2005-04-12 2010-11-04 株式会社東芝 セキュリティゲートウェイシステムとその方法およびプログラム
TWI275944B (en) 2005-08-31 2007-03-11 Etrovision Technology Data access based storage device communicating method
US7634585B2 (en) 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
EP1796369A1 (en) * 2005-12-07 2007-06-13 Murata Kikai Kabushiki Kaisha Communication terminal device and communication method
US20080010326A1 (en) 2006-06-15 2008-01-10 Carpenter Troy A Method and system for securely deleting files from a computer storage device
US7558907B2 (en) 2006-10-13 2009-07-07 Spansion Llc Virtual memory card controller
CN101383017B (zh) 2007-09-06 2012-07-04 中国银联股份有限公司 一种智能sd卡及访问智能sd卡的方法
EP2207308B1 (en) * 2007-11-02 2018-03-14 Cypress Semiconductor Corporation Signal processor unit and communication device
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
KR101535226B1 (ko) 2008-12-16 2015-07-27 삼성전자주식회사 중간 변환 장치를 통해 연결된 저장 장치 인증 방법 및 시스템
US8429395B2 (en) 2009-06-12 2013-04-23 Microsoft Corporation Controlling access to software component state
CN101763437B (zh) 2010-02-10 2013-03-27 华为数字技术(成都)有限公司 高速缓冲存储实现方法及装置
US8290994B2 (en) * 2010-05-05 2012-10-16 International Business Machines Corporation Obtaining file system view in block-level data storage systems
CN102665237B (zh) * 2012-04-24 2014-09-10 北京邮电大学 Ir接口协议一致性仿真测试装置及互联互通测试方法
KR101986355B1 (ko) * 2012-09-14 2019-06-05 삼성전자주식회사 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US9251083B2 (en) * 2013-03-11 2016-02-02 Via Technologies, Inc. Communicating prefetchers in a microprocessor
CN103455463B (zh) * 2013-09-06 2015-10-28 北京四方继保自动化股份有限公司 一种主控单元通信接入和转出方法
US9411521B2 (en) * 2014-05-30 2016-08-09 Macronix International Co., Ltd. Method and apparatus for improving sequential memory read preformance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145106A1 (en) 2008-08-06 2013-06-06 Western Digital Technologies, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands

Also Published As

Publication number Publication date
US9582217B2 (en) 2017-02-28
US9864543B2 (en) 2018-01-09
KR20150100071A (ko) 2015-09-02
CN104866456A (zh) 2015-08-26
CN104866456B (zh) 2019-04-26
US20170153841A1 (en) 2017-06-01
US20150242149A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
KR102192198B1 (ko) 전자 장치 및 그것의 통신 방법
US9804801B2 (en) Hybrid memory device for storing write data based on attribution of data stored therein
KR100923990B1 (ko) 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템
KR102387935B1 (ko) 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치
KR20210111527A (ko) 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
KR20130043445A (ko) 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법
KR20210112548A (ko) 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법
KR20210051921A (ko) 메모리 시스템 및 그것의 동작방법
KR20220043432A (ko) 메모리 시스템에서 읽기 전압을 제어하는 장치 및 방법
KR20170110810A (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN114328303A (zh) 存储设备、其操作方法及包括其的计算设备的操作方法
US8266328B2 (en) Disk device assigned ID codes for storage areas of external storage device
US20130275652A1 (en) Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features
US20180364946A1 (en) Data storage device
US11573732B2 (en) Storage device, memory system comprising the same, and operation method thereof
TW201504937A (zh) 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
CN117130544A (zh) 用于控制操作速度的存储器系统和数据处理系统
KR20220090020A (ko) 비휘발성 메모리 시스템이 생성한 메타데이터를 전송하는 장치 및 방법
CN112732170A (zh) 控制器和具有该控制器的数据存储系统
CN109753311B (zh) 包括命令优先级策略管理的半导体设备和相关系统
KR102609473B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11194510B2 (en) Storage device and method of operating the same
KR20220049230A (ko) 메모리 시스템에서 비휘발성 메모리 장치 내 오류를 확인하는 장치 및 방법
KR20220032816A (ko) 메모리 시스템에서 데이터 통신을 보정하는 장치 및 방법
KR102496678B1 (ko) 반도체 메모리 장치 및 이의 동작 방법

Legal Events

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