KR101740679B1 - 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템 - Google Patents

양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템 Download PDF

Info

Publication number
KR101740679B1
KR101740679B1 KR1020100075062A KR20100075062A KR101740679B1 KR 101740679 B1 KR101740679 B1 KR 101740679B1 KR 1020100075062 A KR1020100075062 A KR 1020100075062A KR 20100075062 A KR20100075062 A KR 20100075062A KR 101740679 B1 KR101740679 B1 KR 101740679B1
Authority
KR
South Korea
Prior art keywords
command
storage device
ring buffer
host
information structure
Prior art date
Application number
KR1020100075062A
Other languages
English (en)
Other versions
KR20120021490A (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 KR1020100075062A priority Critical patent/KR101740679B1/ko
Priority to US13/178,131 priority patent/US8631166B2/en
Publication of KR20120021490A publication Critical patent/KR20120021490A/ko
Application granted granted Critical
Publication of KR101740679B1 publication Critical patent/KR101740679B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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
    • 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/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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

양방향 통신 계층의 구현에 필요한 정보 구조체가 저장된 저장 매체와; 그리고 정보 구조체 읽기/쓰기 명령에 따라 상기 정보 구조체를 외부 장치로 제공하도록 구성된 제어기를 포함하는 저장 장치가 제공되며, 상기 외부 장치와의 양방향 통신을 위한 계층은 상기 정보 구조체에 의거하여 구현된다.

Description

양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템{STORAGE DEVICE WIHH BI-DIRECTIONAL COMMUNICATION TECHNIQUES AND SYSTEM INCLUDING THE SAME}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 저장 장치 및 그것을 포함한 시스템에 관한 것이다.
이 분야에 잘 알려진 바와 같이, 컴퓨터 시스템은 일반적으로 다양한 형태의 메모리 시스템들을 사용한다. 예를 들면, 컴퓨터 시스템은 반도체 장치들로 구성된 소위 메인 메모리를 사용한다. 이 반도체 장치들은 일반적으로 다음과 같은 속성을 갖는다. 반도체 장치들은 상당히 빠른 액세스 속도로 랜덤하게 쓰여지거나 읽혀지며, 일반적으로 랜덤 액세스 메모리라 불린다. 하지만, 반도체 메모리가 비교적 고가이기 때문에, 다른 고밀도 및 저가 메모리가 종종 사용된다. 예를 들면, 다른 메모리 시스템은 마그네틱 디스크 저장 시스템을 포함한다. 마그네틱 디스크 저장 시스템의 경우 액세스 속도가 수십㎳인 반면에 메인 메모리의 경우 액세스 속도는 수백㎱이다. 디스크 저장 장치는 필요시 메인 메모리로 순차적으로 읽혀지는 대용량 데이터를 저장하는 데 사용된다. 다른 형태의 디스크와 같은 저장 장치는 반도체 디스크(solid state disk/drive: 이하, SSD라 칭함)(또는 반도체 드라이브라 불림)이다. SSD는 일반적인 하드 디스크 드라이브에서 사용되는 회전 접시 대신에 데이터를 저장하는 데 SDRAM과 같은 메모리 칩들을 사용한 데이터 저장 장치이다.
"SSD"라는 용어는 2가지 다른 종류의 제품들에 사용된다. SDRAM과 같은 고속 및 휘발성 메모리에 근거를 둔 첫 번째 형태의 SSD는 상당히 빠른 데이터 액세스에 의해서 특징지어 지며, 디스크 드라이브의 레이턴시에 의해서 지연되었던 어플리케이션의 속도를 늘리는 데 주로 사용된다. 이러한 SSD가 휘발성 메모리를 사용하기 때문에, 데이터 지속성을 보장하기 위해서 내부 배터리 및 백업 디스크 시스템이 일반적으로 SSD 내에 포함된다. 만약 전원이 어떤 이유로 인해 차단되면, 배터리는 모든 데이터를 램에서 백업 디스크로 복사하기에 충분히 긴 시간 동안 유니트로 전원을 공급한다. 전원이 복구됨에 따라, 데이터는 백업 디스크에서 램으로 다시 복사되고 SSD는 정상 동작을 재개한다. 이러한 장치들은 특히 많은 양의 램을 갖는 컴퓨터에서 특히 유용하다. 두 번째 타입의 SSD는 데이터를 저장하는 데 불 휘발성 메모리를 사용한다. 이러한 SSD는 하드 드라이브의 대체를 위해서 일반적으로 사용된다.
본 발명의 목적은 호스트와 메세지를 주고 받을 수 있는 저장 장치 및 그것을 포함한 시스템을 제공하는 것이다.
본 발명의 예시적인 실시예들은 양방향 통신 계층의 구현에 필요한 정보 구조체가 저장된 저장 매체와; 그리고 정보 구조체 읽기/쓰기 명령에 따라 상기 정보 구조체를 외부 장치로 제공하도록 구성된 제어기를 포함하는 저장 장치를 제공하며, 상기 외부 장치와의 양방향 통신을 위한 계층은 상기 정보 구조체에 의거하여 구현된다.
본 발명의 예시적인 실시예들에 따르면, 링크 계층으로서 새롭게 정의되는 양방향 통신 계층을 통해 저장 장치와 호스트 사이에 양방향으로 메시지 전송을 수행하는 것이 가능하다.
도 1은 본 발명의 예시적인 실시예에 따른 저장 장치를 포함한 시스템을 개략적으로 보여주는 블록도이다.
도 2는 본 발명의 예시적인 실시예에 따른 도 1에 도시된 저장 장치를 개략적으로 보여주는 블록도이다.
도 3은 본 발명의 예시적인 실시예에 따른 도 2에 도시된 저장 매체를 개략적으로 보여주는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 시스템의 계층 구조를 개략적으로 보여주는 도면이다.
도 5는 본 발명의 예시적인 실시예에 따른 저장 장치를 포함하는 시스템의 식별 동작 및 양방향 메세지 전송 동작을 설명하기 위한 흐름도이다.
도 6는 도 5에 도시된 메세징 정보 구조체 읽기/쓰기 절차를 설명하기 위한 흐름도이다.
도 7은 도 5에 도시된 메세지 전송 절차를 설명하기 위한 흐름도이다.
도 8은 호스트와 저장 장치 사이에 통지 기능이 정의되어 있는 경우 호스트로의 메세지 전송 절차를 설명하기 위한 흐름도이다.
도 9는 본 발명의 다른 예시적인 실시예에 따른 저장 장치를 포함하는 시스템의 식별 동작 및 양방향 메세지 전송 동작을 설명하기 위한 흐름도이다.
도 10은 본 발명의 예시적인 실시예에 따른 시스템에 적용된 예약된 LBA 명령/어드레스 방식을 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명의 예시적인 실시예에 따른 저장 장치를 포함한 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 시스템(1)은 호스트(100)와 저장 장치(200)를 포함할 것이다. 저장 장치(200)는 호스트(100)에 직접 연결되는 저장 장치일 것이다. 예를 들면, 저장 장치(200)는 PATA/SATA/SCSI/SAS 인터페이스 방식을 통해 호스트(100)에 직접 연결되는 저장 장치일 것이다. 본 발명의 예시적인 실시예에 따르면, 호스트(100)는 PATA/SATA/SCSI/SAS 인터페이스 방식을 통해 저장 장치(200)에 유저 데이터를 저장하거나 저장 장치(200)로부터 유저 데이터를 읽을 것이다. 즉, 호스트(100)와 저장 장치(200) 사이의 유저 데이터 전송은 잘 알려진 단방향 통신 방식에 따라 행해질 것이다. 또한, 본 발명의 예시적인 실시예에 따른 저장 장치(200)는 양방향 통신 방식에 따라 호스트(100)와 메세지를 주고 받도록 구성될 것이다. 다시 말해서, 저장 장치(200)는 호스트(100)로부터 메세지를 수신하도록 그리고 호스트(100)로 메세지를 전송하도록 구성될 것이다. 이는 호스트(100)와 저장 장치(200) 사이에 임의의 프로토콜(또는, 양방향 통신 프로토콜)을 정의함으로써 행해지며, 이는 이후 상세히 설명될 것이다.
본 발명의 예시적인 실시예에 따르면, 호스트(100)에 구현된 응용의 일부 기능('응용 에이전트/프록시'라 불림)이 저장 장치(200)에 구현되는 경우, 임의의 프로토콜에 따라 정의된 양방향 통신 채널을 이용하여 응용과 응용 에이전트/프록시 사이에 양향향 통신(즉, 양방향 메시지 전송)을 제공하는 것이 가능하다. 즉, 임의의 프로토콜에 따라 양방향 통신 채널을 정의함으로써 응용-인식 스토리지(application-aware storage)를 구현하는 데 용이하다.
도 2는 본 발명의 예시적인 실시예에 따른 도 1에 도시된 저장 장치를 개략적으로 보여주는 블록도이다.
도 2를 참조하면, 저장 장치(200)는, 예를 들면, 불 휘발성 메모리들을 이용하는 반도체 드라이브(Solid State Drive: SSD)일 것이다. 하지만, 저장 장치(200)가 SSD에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 저장 장치(200)는 하드 디스크 드라이브(Hard Disk Drive: HDD)일 것이다. 저장 장치(200)는 호스트 인터페이스(210), 스토리지 인터페이스(220), 처리 장치(230), 램(240), 그리고 저장 매체(250)를 포함할 것이다. 호스트 인터페이스(210), 스토리지 인터페이스(220), 처리 장치(230), 그리고 램(240)은 저장 매체(250)를 제어하기 위한 제어기(260)를 구성할 것이다.
호스트 인터페이스(210)는 주어진 인터페이스 방식(예를 들면, PATA/SATA/SCSI/SAS 인터페이스 방식)에 따라 호스트(100)와 인터페이스하도록 구성될 것이다. 스토리지 인터페이스(220)는 저장 매체(250)와 인터페이스하도록 구성될 것이다. 처리 장치(230)는 저장 장치(200)의 전반적인 동작을 제어하도록 구성될 것이다. 예를 들면, 처리 장치(230)는 램(240)에 로딩된 펌웨어를 운용하여 저장 장치(200)의 전반적인 동작을 제어할 것이다. 램(240)은 저장 매체(250)에 저장될 데이터를 임시 저장하는 그리고 저장 매체(250)로부터 읽혀진 데이터를 임시 저장하는 버퍼로서 사용될 것이다. 램(240)은, 또한, 처리 장치(230)의 워킹 메모리(working memory)로서 사용될 것이다. 램(240)은, 예를 들면, DRAM으로 구성될 수 있다. 하지만, 램(240)은 DRAM과 SRAM의 조합으로 구성될 수 있다.
저장 매체(250)는 제어기(260)의 제어 하에 동작하며, 데이터를 저장하는 데 사용될 것이다. 저장 매체(250)는 유저 데이터 뿐만 아니라 처리 장치(230)에 의해서 운용되는 펌웨어(FW) 및 양방향 통신을 위해 필요한 메세징 정보 구조체(messaging information structure)(IS)을 저장할 것이다. 펌웨어(FW)와 메세징 정보 구조체(IS)는 파워-업시 램(240)에 로드될 것이다. 유저 데이터, 펌웨어(FW), 메세징 정보 구조체(IS)가 저장되는 저장 매체(250)의 공간을 '유저 공간' 또는 '유저 데이터 공간'이라 칭한다.
예시적인 실시예에 있어서, 펌웨어(FW)는 명령 처리를 위한 프로그램, 응용 에이전트/프록시의 다운로드 및 설치를 위한 프로그램, 데이터 관리를 위한 프로그램(예를 들면, FTL), 등을 포함할 것이다. 메세징 정보 구조체(IS)는 양방향 통신에 필요한 파라미터들과 설정값들을 포함할 것이다. 양방향 통신에 필요한 파라미터들과 설정값들은 식별 과정을 통해 호스트(100)로 전송되며, 양방향 통신 채널/계층은 양방향 통신에 필요한 파라미터들과 설정값들에 따라 호스트(100)와 저장 장치(200) 사이에 정의될 것이다. 양방향 통신에 필요한 파라미터들과 설정값들은 이후 설명될 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 도 2에 도시된 저장 매체를 개략적으로 보여주는 블록도이다.
도 3을 참조하면, 저장 매체(250)는 복수의 채널들(CH0∼CHn)을 통해 제어기(260)의 스토리지 인터페이스(220)와 연결될 것이다. 채널들(CH0∼CHn) 각각에는 복수의 불 휘발성 메모리들(NVM)이 연결될 것이다. 불 휘발성 메모리(NVM)는, 예를 들면, 플래시 메모리일 것이다. 하지만, 불 휘발성 메모리(NVM)가 플래시 메모리에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불 휘발성 메모리(NVM)는 상변화 메모리 장치(PRAM), 강유전체 메모리 장치(FeRAM), 자기 저항램 장치(MRAM), 또는 그와 같은 것으로 구성될 수 있다.
도 4는 본 발명의 예시적인 실시예에 따른 시스템의 계층 구조를 개략적으로 보여주는 도면이다.
도 4에 도시된 바와 같이, 본 발명의 예시적인 실시예에 따른 시스템의 계층 구조는 ISO에서 제정한 네트워크 통신 모델인 OSI(Open System Interconnection) 7 계층 구조의 링크 계층에 포함되는 양방향 통신 계층을 더 포함할 것이다. 호스트(100)와 저장 장치(200) 사이에 임의로 정의된 프로토콜을 이용하는 양방향 통신 계층을 기반으로 응용과 응용 에이전트/프록시 사이에서 양방향으로 메세지가 전송될 것이다. 비록 도면에는 도시되지 않았지만, 원활하고 편리한 통신을 위해서, OSI 7 계층 구조에 포함되는 계층(예를 들면, TCP/IP)이 시스템에 추가적으로 제공될 수 있다. 계층들의 추가는 양방향 통신 계층을 기반으로 행해질 것이다.
본 발명의 예시적인 실시예에 따른 양방향 통신 계층은 저장 장치(200)가 메세지 기능을 지원하는 장치인 지의 여부를 구분하기 위해 설정된 메세징 기능 셋(messaging feature set)를 포함한 메세징 정보 구조체가 장치(예를 들면, 저장 장치(200))로부터 호스트(100)로 전송됨에 따라 구현될 것이다. 메세징 정보 구조체의 파라미터 값들은 양방향 통신 계층이 구현된 후 재구성될 수 있다. 양방향 통신 채널/계층의 구현 및 메세징 정보 구조체(IS)의 재구성은 식별 메커니즘(identify mechanism)을 통해 행해질 것이다. 또한, 본 발명의 예시적인 실시예에 따른 양방향 통신 계층을 이용하여 메세지를 전송하기 위한 메세지 전송 메커니즘(message transfer mechanism)과 장치(예를 들면, 저장 장치)에서 호스트로의 메세지 전송에 사용되는 시그널링 메커니즘(signaling mechanism)을 이용하여 호스트(100)와 저장 장치(200) 사이에서 양방향 통신이 수행될 것이다.
식별 메커니즘(Identify Mechanism)
호스트(100)는 저장 장치(200)에 저장된 메세징 정보 구조체(IS)를 읽어옴으로써 저장 장치(200)가 양방향 통신이 가능한 장치인 지의 여부를 판별하며, 이러한 메커니즘은 2가지 방식들, 즉, 예약된 명령과 예약된 LBA 중 어느 하나를 사용함으로써 달성될 것이다. 예약된 명령은 2개의 명령들, 즉, 메세징 정보 구조체(IS)를 읽기 위한 명령어와 설정값들을 전송하기 위한 벤더 확장 명령어로 구성될 것이다. 설명의 편의상, 이러한 명령들은 '정보 구조체 읽기/쓰기 명령'이라 칭할 것이다. 예약된 LBA의 경우, 표현 가능한 LBA 공간에서 유저 LBA 공간을 뺀 나머지 LBA 공간에 속한 LBA 값들이 메세징 정보 구조체(IS)를 읽고 파라미터 값들을 설정하기 위한 명령으로서 사용될 것이다. 그러한 LBA 값들 역시 '정보 구조체 읽기/쓰기 명령'이라 칭할 것이다.
호스트(100)는 예약된 명령/LBA를 통해 저장 장치(200)로부터 양방향 통신을 위한 메세징 정보 구조체(IS)를 읽음으로써 저장 장치(200)를 양방향 통신이 가능한 장치로서 인식할 것이다. 또한, 호스트(100)는 정보 구조체 읽기/쓰기 명령어를 이용하여 메세징 정보 구조체(IS)의 설정값들을 재구성할 수 있다. 정보 구조체 읽기/쓰기 명령이 호스트(100)에 정의되어 있음은 잘 이해될 것이다. 정보 구조체 읽기/쓰기 명령의 정의는, 예를 들면, 호스트(100)의 일반적인 디바이스 드라이버의 갱신을 통해 행해질 수 있다. 또는, 정보 구조체 읽기/쓰기 명령의 정의는 호스트(100)의 새로운 디바이스 드라이버의 구현을 통해 행해질 수 있다.
메세지 전송 메커니즘(Message transfer Mechanism)
양방향 통신은 호스트(100)에서 저장 장치(200)로의 메세지 전송뿐만 아니라 저장 장치(200)에서 호스트(100)로의 메세지 전송을 포함할 것이다. 메세지 전송 메커니즘은 전송될 메세지를 저장하기 위한 버퍼들(링 버퍼를 구성함)을 할당하는 방법에 따라 2가지로 나누어 질 것이다. 하나는 각 버퍼에 매핑되는 특정/예약된 LBA를 이용하는 것이고, 다른 하나는 각 버퍼에 매핑되는 NCQ(Native Command Quening)(또는, TCQ(Tagged Command Queuing)) 태그를 이용하는 것이다.
예약된 LBA 방식이 사용되는 경우, 링 버퍼를 구성하는 버퍼들 각각에는 고유의 LBA 값이 할당될 것이다. 이때, 각 버퍼에 할당되는 고유의 LBA 값은 사용자 데이터를 위해서 사용되지 않는 영역에서 할당될 것이다. 예시적인 실시예에 있어서, 각 버퍼의 고유한 LBA 값은 유저 LBA의 최대값과 표현 가능한 최대 LBA 값 사이에 존재하며, 최대 LBA 값 직전에 순차적으로 할당될 것이다. 링 버퍼의 버퍼 수, 각 버퍼의 크기, 할당된 LBA 값들, 링 버퍼의 헤드와 테일 포인터는 메세징 정보 구조체(IS)에 기록될 것이다. NCQ 방식이 이용되는 경우, 각 버퍼에 고유의 NCQ 태그가 할당될 것이다. 예약된 LBA 방식과 마찬가지로, 링 버퍼의 버퍼 수, 각 버퍼의 크기, 할당된 태그 값들, 링 버퍼의 헤드와 테일 포인터는 메세징 정보 구조체(IS)에 기록될 것이다.
시그널링 메커니즘(Signaling Mechanism)
저장 장치(200)에 준비된 메시지(예를 들면, 링 버퍼에 저장됨)를 호스트(100)로 전송하기 위해서 통지(notification) 또는 인터럽트(interrupt) 기능을 이용한 시그널링 메커니즘이 제공될 것이다. 통지 기능이란 저장 장치(200)의 상태 변경을 호스트(100)에 이벤트 방식으로 알려줄 수 있는 기능으로, 호스트(100)는 통지를 받으면 장치의 상태를 읽고 어떤 이벤트가 발생하였는 지의 여부를 검출할 것이다. 시그널링 메커니즘 대신, NCQ 방식을 이용하여 저장 장치(200)에서 호스트(100)로 메세지가 전송될 수 있다.
이상의 설명으로부터 이해되는 바와 같이, 식별 메커니즘을 통해 저장 장치(200)와 호스트(100) 사이에 양방향 통신 계층이 형성되고, 양방향 통신 계층을 기반으로 메세지 전송 메커니즘과 시그널링 메커니즘을 통해 호스트(100)와 저장 장치(200) 사이에 양방향으로 메시지가 전송될 것이다.
도 5는 본 발명의 예시적인 실시예에 따른 저장 장치를 포함하는 시스템의 식별 동작 및 양방향 메세지 전송 동작을 설명하기 위한 흐름도이고, 도 6는 도 5에 도시된 메세징 정보 구조체 읽기/쓰기 절차를 설명하기 위한 흐름도이다. 도 7은 도 5에 도시된 메세지 전송 절차를 설명하기 위한 흐름도이고, 도 8은 호스트와 저장 장치 사이에 통지 기능이 정의되어 있는 경우 호스트로의 메세지 전송 절차를 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예에 따른 저장 장치를 포함하는 시스템의 식별 동작 및 양방향 메세지 전송 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 호스트(100)와 저장 장치(200)는 앞서 설명된 통지 기능을 지원한다고 가정할 것이다. 저장 장치(200)가 호스트(100)에 전기적으로 연결될 때, 호스트(100)는 저장 장치(200)가 양방향 통신 가능한 장치인 지의 여부를 판별하고, 판별 결과에 따라 양방향 통신 계층을 형성할 것이다. 만약 저장 장치(200)가 양방향 통신 가능한 장치가 아닌 것으로 판별되면, 호스트(100)는 잘 알려진 단방향 통신 방식에 따라 저장 장치(200)와 통신할 것이다. 양방향 통신 계층이 형성되는 과정이 이하 설명될 것이다. 호스트(100)의 연결을 통해 파워-업된 저장 장치(200)의 램(240)에는 저장 매체(250)에 저장된 펌웨어(FW) 및 메세징 정보 구조체(IS)가 로드될 것이다. 로드된 펌웨어(FW)은 처리 장치(230)에 의해서 운용될 것이다. 이후, 저장 장치(200)는 호스트(100)로부터 제공되는 명령에 응답하여 동작할 것이다. 저장 장치(200)에서 수행되는 동작들은 처리 장치(230)에 의해서 운용되는 펌웨어(예를 들면, 메인 프로그램 및 서브 프로그램들로 구성됨)에 의해서 행해질 것이다.
먼저, S110 단계에서, 호스트(100)로부터 명령이 수신되었는 지의 여부가 판별될 것이다. 만약 명령이 수신되지 않은 것으로 판별되면, 절차는 메인 루프의 시작 단계로 진행할 것이다. 만약 명령이 수신된 것으로 판별되면, 절차는 S120 단계로 진행할 것이다. S120 단계에서, 입력된 명령이 정보 구조체 읽기/쓰기 명령인 지의 여부가 판별될 것이다. 앞서 언급된 바와 같이, 정보 구조체 읽기/쓰기 명령은 예약된 명령(또는, 명령의 예약된 기능) 또는 예약된 LBA를 이용하여 구현될 수 있다. 입력된 명령이 정보 구조체 읽기/쓰기 명령인 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. S130 단계에서는 메세징 정보 구조체(IS)가 호스트(100)로 전송되거나, 램(240)에 로드된 메세징 정보 구조체(IS)의 설정값들이 호스트(100)의 요청에 따라 재구성될 것이다. 이는 도 6을 참조하여 상세히 설명될 것이다.
도 6에 도시된 바와 같이, S131 단계에서, 입력된 정보 구조체 읽기/쓰기 명령이 읽기 명령인 지 또는 쓰기 명령인 지의 여부가 판별될 것이다. 만약 정보 구조체 읽기 명령이 읽기 명령인 것으로 판별되면, 램(240)에 로드된 메세징 정보 구조체(IS)가 호스트(100)로 전송될 것이다. 여기서, 메세징 정보 구조체(IS)는 링 버퍼를 구성하는 버퍼들의 수, 각 버퍼의 크기, 각 버퍼의 어드레스로서 사용될 LBA/태그 값들, 링 버퍼의 헤드와 테일 포인터들, 메시지 송신/수신 명령, 등을 포함할 것이다. 메세징 정보 구조체(IS)가 호스트(100)로 전송됨에 따라, 호스트(100)는 저장 장치(200)를 양방향 통신 가능한 장치인 것으로 인식할 것이다. 즉, 메세징 정보 구조체(IS)의 설정값들에 따라 호스트(100)와 저장 장치(200) 사이에는 양방향 통신 계층이 구현될 것이다. 이후, 절차는 메인 루프로 진행할 것이다. 양방향 통신 계층이 구현된 후, 메세징 정보 구조체(IS)의 설정값들은 호스트(100)의 요청에 따라 재구성될 수 있다. 메세징 정보 구조체(IS)의 재구성은 S133 단계에서 행해질 것이다. 즉, 만약 정보 구조체 읽기/쓰기 명령이 쓰기 명령인 것으로 판별되면, 절차는 S133 단계로 진행하며, 이 단계는 양방향 통신 계층이 구현된 후 호스트(100)의 요청에 따라 수행될 것이다. 즉, 양방향 통신 계층의 구현 이후 호스트(100)로부터 정보 구조체 쓰기 명령이 입력될 때 메세징 정보 구조체(IS)의 설정값들이 재구성될 수 있다. 이후 절차는 메인 루프의 시작 단계로 진행할 것이다.
다시 S120 단계로 돌아가면, 만약 입력된 명령이 정보 구조체 읽기/쓰기 명령이 아닌 것으로 판별되면, 절차는 S140 단계로 진행할 것이다. S140 단계에서는 입력된 명령이 메세지 송신/수신 명령인 지의 여부가 판별될 것이다. 입력된 명령이 메세지 송신/수신 명령이 아닌 것으로 판별되면, 절차는 S150 단계로 진행할 것이다. S150 단계에서는 단방향 통신 방식을 통해 행해지는 일반적인 동작들(예를 들면, 유저 데이터 읽기/쓰기 동작, 에러 처리 동작, 전원 관리 동작, 등)이 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.
예시적인 실시예에 있어서, 메세지 송신/수신 명령은 예약된 LBA를 이용하여 구현될 수 있다. 예를 들면, 앞서 설명된 바와 같이, 표현 가능한 LBA 공간에서 유저 LBA 공간을 뺀 나머지 LBA 공간의 LBA 값들이 메세지 송신/수신 명령으로 사용될 수 있다. 이러한 메세지 송신/수신 명령 역시 메세징 정보 구조체(IS)에 저장됨은 잘 이해될 것이다. 메세지 송신/수신 명령이 예약된 LBA를 이용하여 구현되는 예에 본 발명이 국한되지 않음은 잘 이해될 것이다. 예를 들면, 메세지 송신/수신 명령은 예약된 명령(또는, 명령의 예약된 기능(feature))을 이용하여 구현될 수 있다.
S140 단계에서 입력된 명령이 메세지 송신/수신 명령인 것으로 판별되면, 절차는 S160 단계로 진행할 것이다. S160 단계에서는 입력된 명령이 메세지 수신 명령인 지의 여부가 판별될 것이다. 만약 입력된 메세지 수신 명령이 수신 명령인 것으로 판별되면, S170 단계에서, 호스트(100)로부터 제공되는 메세지는 링 버퍼의 지정된 버퍼(들)에 저장될 것이다. 예를 들면, 호스트(100)의 응용은 응용 에이전트/프록시에 의해서 수행될 기능을 나타내는 데이터와 그러한 데이터가 저장될 버퍼의 어드레스(예를 들면, LBA 값)를 저장 장치(200)로 송신할 것이다. 그렇게 송신된 데이터는 호스트(100)의 응용에 의해서 지정된 버퍼(들)에 저장될 것이다. 여기서, 링 버퍼는 램(240)의 일부를 이용하여 구현될 것이다. 램(240)의 일부 영역은 쓰기 버퍼들과 읽기 버퍼들로 구성되며, 각 버퍼는 예약된 LBA/태그 값을 어드레스로 사용하여 지정될 것이다.
만약 입력된 메세지 송신/수신 명령이 수신 명령이 아닌 것으로 판별되면, S180 단계에서, 입력된 메세지 송신/수신 명령이 읽기 명령인 지의 여부가 판별될 것이다. 입력된 메세지 송신/수신 명령이 읽기 명령인 것으로 판별되면, 절차는 S190 단계로 진행할 것이다. S190 단계에서는 링 버퍼에 저장된 메세지가 호스트(100)로 전송될 것이다. 이는 도 7을 참조하여 설명될 것이다.
도 7을 참조하면, S191 단계에서, 전송될 메세지가 준비되어 있는 지의 여부가 판별될 것이다. 만약 전송될 메세지가 준비되어 있는 것으로 판별되면, 절차는 S192 단계로 진행할 것이다. S192 단계에서는 준비된 메세지가 호스트(100)로 전송될 것이다. 예를 들면, 앞서의 설명에 따르면, 그러한 메세지는 응용에 의해서 정의된 기능이 수행됨에 따라 생성되는 데이터를 포함할 것이다. 또는, 그러한 메세지는 응용의 요청에 대한 응답, 응용으로부터 받고자 하는 정보, 등을 포함할 것이다. 만약 전송될 메세지가 준비되어 있지 않은 것으로 판별되면, 절차는 S193 단계로 진행할 것이다. S193 단계에서는 무효한 데이터가 호스트(100)로 전송될 것이다. 이후, 절차는 도 5의 메인 루프로 진행할 것이다. 다시 S180 단계를 참조하면, 만약 입력된 메세지 송신/수신 명령이 읽기 명령이 아닌 것으로 판별되면, S200 단계에서, 에러 처리 절차가 진행될 것이다. 이후, 절차는 메인 루프로 진행할 것이다.
호스트(100)로의 메세지 전송은 앞서 설명된 절차(S190)를 통해 행해질 수 있다. 이러한 메세지 전송 방식은 폴링 방식이라 불린다. 이와 더불어, 호스트(100)와 저장 장치(200) 사이에 통지 기능이 정의되어 있는 경우, 통지 기능을 이용하여 호스트(100)로의 메세지 전송이 행해질 수 있다. 이는 도 8을 참조하여 상세히 설명될 것이다. 통지 기능이 폴링 방식에 사용됨에 따라, 폴링 방식에 따라 메시지를 전송하는 데 필요한 시간이 단축될 수 있다.
도 8를 참조하면, S201 단계에서, 데이터가 생성되고 전송될 데이터가 준비되었음이 마크될 것이다. 여기서, 전송될 데이터 즉, 메세시는 응용에 의해서 정의된 기능이 수행됨에 따라 생성되는 데이터를 포함하거나, 응용의 요청에 대한 응답, 응용으로부터 받고자 하는 정보, 등을 포함할 것이다. S202 단계에서, 통지 기능이 지원되는 지의 여부가 판별될 것이다. 만약 통지 기능이 지원되지 않는 것으로 판별되면, 절차는 메인 루프로 진행할 것이다. 만약 통지 기능이 지원되는 것으로 판별되면, 절차는 S203 단계로 진행할 것이다. S203 단계에서는 호스트(100)로 통지가 전송될 것이다. 이후, 절차는 메인 루프로 진행할 것이다. 호스트(100)는 통지에 응답하여 준비된 데이터를 가져오기 위해서 명령(예를 들면, 메세지 송신 명령)을 저장 장치(200)로 전송할 것이다. 메세지 송신 명령의 입력에 따른 호스트(100)로의 메세지 전송은 앞서 설명된 S190 단계에서 설명된 것과 실질적으로 동일하게 행해지며, 그것에 대한 설명은 그러므로 생략될 것이다.
이상의 설명을 통해 이해되는 바와 같이, 호스트(100)는 메세징 정보 구조체(IS)를 포함한 저장 장치(200)가 양방향 통신 가능한 장치인 지의 여부를 식별하고, 식별 결과에 따라 양방향 통신 채널/계층이 형성될 것이다. 이후, 호스트(100)와 저장 장치(200) 사이에 임의로 정의된 프로토콜을 이용하여 메세지 전송이 행해질 것이다.
도 9는 본 발명의 다른 예시적인 실시예에 따른 저장 장치를 포함하는 시스템의 식별 동작 및 양방향 메세지 전송 동작을 설명하기 위한 흐름도이다.
NCQ 기능이 지원되는 경우, 통지 기능이 사용되지 않음에 유의해야 한다. NCQ 기능에 따르면, 호스트(100)는 일련의 명령들을 저장 장치(200)로 전송하고, 저장 장치(200)는 임의의 순서에 따라 입력된 명령들을 각각 수행할 것이다. 특히, NCQ 기능을 사용하는 시스템에 있어서, 호스트(100)는 저장 장치(200)의 읽기 버퍼에 대한 읽기 명령을 미리 전송하며, 저장 장치(200)는 전송할 데이터가 생성되었을 때 원하는 시점에 데이터(즉, 메시지)를 호스트(100)로 전송할 것이다.
먼저, S300 단계에서는 호스트(100)로 전송될 데이터가 준비되어 있는 지의 여부가 판별될 것이다. 만약 호스트(100)로 전송될 데이터가 준비되어 있지 않은 것으로 판별되면, 절차는 S320 단계로 진행할 것이다. 이에 반해서, 호스트(100)로 전송될 데이터가 준비되어 있는 것으로 판별되면, 절차는 S310 단계로 진행할 것이다. S310 단계에서는 준비된 데이터가 호스트(100)로 전송될 것이다. 전송될 데이터는 양방향 통신 계층이 구성된 이후에 생성된 데이터일 것이다. 호스트(100)로의 메시지 전송이 행해진 후, 절차는 우선 순위(priority)에 따라 메인 루프 또는 S320 단계로 진행할 것이다.
만약 S300 단계에서 데이터가 준비되지 않은 것으로 판별되면, 절차는 S320 단계로 진행할 것이다. S320 단계에서는 호스트(100)로부터 명령이 수신되었는 지의 여부가 판별될 것이다. 만약 명령이 수신되지 않은 것으로 판별되면, 절차는 메인 루프의 시작 단계로 진행할 것이다. 만약 명령이 수신된 것으로 판별되면, 절차는 S330 단계로 진행할 것이다. S330 단계에서, 입력된 명령이 정보 구조체 읽기/쓰기 명령인 지의 여부가 판별될 것이다. 입력된 명령이 정보 구조체 읽기/쓰기 명령인 것으로 판별되면, 절차는 S340 단계로 진행할 것이다. S340 단계에서는 메세징 정보 구조체(IS)가 호스트(100)로 전송되거나, 램(240)에 로드된 메세징 정보 구조체(IS)의 설정값들이 호스트(100)의 요청에 따라 재구성될 것이다. 이는 도 6에서 설명될 것과 실질적으로 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.
만약 S330 단계에서 입력된 명령이 정보 구조체 읽기/쓰기 명령이 아닌 것으로 판별되면, 절차는 S350 단계로 진행할 것이다. S350 단계에서는 입력된 명령이 메세지 수신 명령인 지의 여부가 판별될 것이다. 입력된 명령이 메세지 수신 명령이 아닌 것으로 판별되면, 절차는 S360 단계로 진행할 것이다. S360 단계에서는 단방향 통신 방식을 통해 행해지는 일반적인 동작들(예를 들면, 유저 데이터 읽기/쓰기 동작, 에러 처리 동작, 전원 관리 동작, 등)이 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.
S350 단계에서 입력된 명령이 메세지 수신 명령인 것으로 판별되면, 절차는 S370 단계로 진행할 것이다. S370 단계에서, 호스트(100)로부터 제공되는 메세지는 링 버퍼의 지정된 버퍼(들)에 저장될 것이다. 예를 들면, 호스트(100)의 응용은 응용 에이전트/프록시에 의해서 수행될 기능을 나타내는 데이터와 그러한 데이터가 저장될 버퍼의 어드레스(예를 들면, LBA 값)를 저장 장치(200)로 송신할 것이다. 그렇게 송신된 데이터는 호스트(100)의 응용에 의해서 지정된 버퍼(들)에 저장될 것이다. 수신된 메시지는 정해진 순서에 따라 처리될 것이다. 수신된 메시지가 처리된 후, 처리 결과는 링 버퍼의 읽기 버퍼에 저장되고 전송될 데이터가 준비되었음이 마크될 것이다. 이후, 절차는 메인 루프로 진행할 것이다. 전송될 데이터가 준비되었음이 마크되었기 때문에, 링 버퍼의 읽기 버퍼에 저장된 처리 결과는 호스트(100)로 전송될 것이다.
도 10은 본 발명의 예시적인 실시예에 따른 시스템에 적용된 예약된 LBA 명령/어드레스 방식을 설명하기 위한 도면이다.
잘 알려진 바와 같이, 호스트(100)는 논리 블록주소 지정(LBA) 방식에 따라 저장 매체(250)의 저장 공간을 관리할 것이다. 유저 데이터가 저장되는 공간(유저 공간/유저 데이터 공간)은 유저 LBA의 최대값으로 제한되며, 나머지 공간은 사용되지 않는다. 본 발명의 경우, 표현 가능한 LBA의 최대값과 유저 LBA의 최대값 사이의 공간에 속한 LBA 값들이 정보 구조체 읽기/쓰기 명령들(301), 읽기 버퍼들의 어드레스들(302), 그리고 쓰기 버퍼들의 어드레스들(303)로서 사용될 것이다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 호스트
200: 저장 장치

Claims (10)

  1. 양방향 통신 계층의 구현에 필요한 정보 구조체가 저장된 저장 매체; 그리고
    정보 구조체 읽기/쓰기 명령에 따라 상기 정보 구조체를 외부 장치로 제공하도록 구성된 제어기를 포함하되,
    상기 외부 장치와의 양방향 통신을 위한 계층은 상기 정보 구조체에 의거하여 구현되고,
    상기 제어기는 상기 양방향 통신 계층을 통해 행해지는 메시지 전송을 위한 링 버퍼를 포함하고,
    상기 정보 구조체는 상기 링 버퍼의 버퍼들의 수, 상기 링 버퍼의 크기, 상기 링 버퍼의 버퍼들에 각각 할당된 LBA 값, 상기 링 버퍼의 헤드 및 테일 포인터들, 그리고 메시지 송신/수신 명령을 포함하는 저장 장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 외부 장치로부터 제공되는 메시지 송신/수신 명령이 수신 명령일 때, 상기 제어기는 상기 수신 명령에 포함된 버퍼 어드레스에 대응하는 상기 링 버퍼의 버퍼에 메시지를 저장하는 저장 장치.
  5. 제 4 항에 있어서,
    상기 링 버퍼에 저장된 메시지는 상기 외부 장치의 응용의 일부 기능을 수행하는 응용 프락시에 대한 명령을 포함하며, 상기 응용 프락시는 상기 양방향 통신 계층의 구현 이전에 또는 이후에 상기 저장 장치에 설치되는 저장 장치.
  6. 제 5 항에 있어서,
    상기 응용 프락시에 대한 명령이 수행됨에 따라 생성되는 데이터는 상기 링 버퍼에 저장되며, 상기 링 버퍼에 저장된 데이터는 상기 외부 장치로부터 제공되는 메시지 송신/수신 명령이 송신 명령일 때 상기 외부 장치로 전송되는 저장 장치.
  7. 제 6 항에 있어서,
    상기 제어기는 상기 외부 장치로부터 받고자 하는 정보를 요청하는 상기 응용 프락시의 명령 그리고 상기 응용 프락시에 대한 명령의 응답 중 어느 하나를 상기 외부 장치로 전송될 메시지로서 상기 링 버퍼에 저장하는 저장 장치.
  8. 제 7 항에 있어서,
    상기 외부 장치로 전송될 메시지로서 상기 링 버퍼에 저장된 정보는 상기 외부 장치로부터 제공되는 메시지 송신/수신 명령이 송신 명령일 때 상기 외부 장치로 전송되는 저장 장치.
  9. 제 6 항에 있어서,
    상기 응용 프락시에 대한 명령이 수행됨에 따라 생성되는 데이터가 상기 링 버퍼에 저장된 후, 상기 제어기는 전송될 데이터가 준비되었음을 마크하는 저장 장치.
  10. 제 9 항에 있어서,
    상기 링 버퍼에 저장된 정보를 상기 외부 장치로 전송되기에 앞서, 상기 제어기는 상기 마크에 의거하여, 상기 외부 장치로 전송될 데이터가 준비되어 있는 지의 여부를 판별하는 저장 장치.
KR1020100075062A 2010-08-03 2010-08-03 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템 KR101740679B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100075062A KR101740679B1 (ko) 2010-08-03 2010-08-03 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템
US13/178,131 US8631166B2 (en) 2010-08-03 2011-07-07 Storage devices with bi-directional communication techniques and method of forming bi-directional communication layer between them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100075062A KR101740679B1 (ko) 2010-08-03 2010-08-03 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템

Publications (2)

Publication Number Publication Date
KR20120021490A KR20120021490A (ko) 2012-03-09
KR101740679B1 true KR101740679B1 (ko) 2017-05-26

Family

ID=45556939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100075062A KR101740679B1 (ko) 2010-08-03 2010-08-03 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템

Country Status (2)

Country Link
US (1) US8631166B2 (ko)
KR (1) KR101740679B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095573A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
KR101986355B1 (ko) 2012-09-14 2019-06-05 삼성전자주식회사 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US10289547B2 (en) * 2014-02-14 2019-05-14 Western Digital Technologies, Inc. Method and apparatus for a network connected storage system
US9621653B2 (en) 2014-02-14 2017-04-11 Western Digital Technologies, Inc. Method and apparatus for a network connected storage system
CN109542346A (zh) * 2018-11-19 2019-03-29 深圳忆联信息***有限公司 动态数据缓存分配方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200344A1 (en) 2002-04-19 2003-10-23 Toshiyuki Fukushima Vehicular communication device exchanging reception and transmission with external tool

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06102968A (ja) 1992-09-22 1994-04-15 Nec Gumma Ltd 補助記憶装置用拡張ボックス
US5809332A (en) 1996-06-03 1998-09-15 Emc Corporation Supplemental communication between host processor and mass storage controller using modified diagnostic commands
JP2001147885A (ja) 1999-11-19 2001-05-29 Sony Corp ディスクデバイスインターフェース装置
JP2008527496A (ja) 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
US7818404B2 (en) * 2007-03-30 2010-10-19 International Business Machines Corporation Dynamic run-time configuration information provision and retrieval
US7882249B2 (en) * 2008-01-07 2011-02-01 Sandisk Il Ltd. Methods and systems for communicating with storage systems using slim IP stacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200344A1 (en) 2002-04-19 2003-10-23 Toshiyuki Fukushima Vehicular communication device exchanging reception and transmission with external tool

Also Published As

Publication number Publication date
KR20120021490A (ko) 2012-03-09
US8631166B2 (en) 2014-01-14
US20120036287A1 (en) 2012-02-09

Similar Documents

Publication Publication Date Title
US20210182166A1 (en) Zoned namespace management of non-volatile storage devices
EP2631916B1 (en) Data deletion method and apparatus
US9690493B2 (en) Two-level system main memory
CN108804023B (zh) 数据存储装置及其操作方法
US10761982B2 (en) Data storage device and method for operating non-volatile memory
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
KR20100113083A (ko) 셀당 단일 비트 nand 플래시 메모리를 에뮬레이팅하기 위한 셀당 다수 비트 nand 플래시 메모리에 대한 제어기
US8411526B2 (en) Storage device, electronic device, and storage device control method
CN109213441A (zh) 能够管理工作而无需处理器干预的存储装置
KR101740679B1 (ko) 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템
JP2007011522A (ja) データの消去方法、ストレージ・デバイス及び計算機システム
WO2019090493A1 (zh) 内存块回收方法和装置
CN104205229A (zh) 功率损耗恢复中的固态驱动器管理
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP7430482B2 (ja) ライト動作方法
KR20150041873A (ko) 데이터 처리 시스템
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US11687263B2 (en) Full die recovery in ZNS SSD
KR20210083941A (ko) 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
US11550506B2 (en) Systems and methods for accessing hybrid storage devices
JP5216719B2 (ja) 情報処理装置および制御装置
US11586508B2 (en) Systems and methods for backing up volatile storage devices
US20220100403A1 (en) Systems for modular hybrid storage devices
KR20220108342A (ko) 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법

Legal Events

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