KR102036124B1 - 저장 명령을 효율적으로 처리하는 방법 및 장치 - Google Patents

저장 명령을 효율적으로 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR102036124B1
KR102036124B1 KR1020140063084A KR20140063084A KR102036124B1 KR 102036124 B1 KR102036124 B1 KR 102036124B1 KR 1020140063084 A KR1020140063084 A KR 1020140063084A KR 20140063084 A KR20140063084 A KR 20140063084A KR 102036124 B1 KR102036124 B1 KR 102036124B1
Authority
KR
South Korea
Prior art keywords
command
storage
host device
storage command
processing
Prior art date
Application number
KR1020140063084A
Other languages
English (en)
Other versions
KR20150041733A (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 US14/510,204 priority Critical patent/US9377966B2/en
Publication of KR20150041733A publication Critical patent/KR20150041733A/ko
Application granted granted Critical
Publication of KR102036124B1 publication Critical patent/KR102036124B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 저장 명령을 효율적으로 처리하는 방법 및 시스템을 제공한다. 본 발명의 일 실시예에서, 호스트 장치는 반복 속도와 실행되는 명령의 수를 지시하는 저장 명령을 생성하고 송신한다. 저장 장치는, 저장 명령이 수신된 저장 명령에서 지시된 반복 속도에 기반하여 반복적으로 처리되어야 하는지를 판단한다. 저장 명령이 반복적으로 처리되어야 한다면, 저장 장치는 기 정의된 횟수만큼 기 결정된 시간 간격 후에 저장 명령을 반복적으로 처리한다. 저장 장치는 저장 명령의 실행에 기반하여 응답을 송신한다.

Description

저장 명령을 효율적으로 처리하는 방법 및 장치{METHOD AND APPARATUS FOR EFFICIENTLY PROCESSING STORAGE COMMANDS}
본 발명은 일반적으로 저장 장치 분야에 관한 것이고, 보다 구체적으로는 저장 명령의 효율적인 처리에 관한 것이다.
서로 접해있는 호스트 장치와 저장 장치 사이의 대부분의 트랜잭션(transaction)은 자연적으로 결정된다. 예를 들면, 미디어 플레이어(media player)는 일정한 속도로 메모리 카드로부터 데이터를 읽고, 네트워크 업로드(upload) 또는 다운로드(download)는 네트워크 및 인터페이스 능력(network and interface capabilities)에 따라 일정한 속도(constant rate)로 발생하고, 파일 복사(file copy)는 관련된 인터페이스/호스트/장치 능력(involved Interface/Host/Device capabilities)에 기반하여 일정한 속도로 일어난다. 결정적 시나리오(트랜잭션)의 발생 퍼센트(percentage of occurrence of deterministic scenarios(transactions))는 비결정적 시나리오(트랜잭션)의 발생을 압도적으로 초과한다.
호스트 장치와 저장 장치 사이의 명령(또는 패킷(packet))의 교환을 용이하게 하는 기존의 시스템에는 몇몇 문제가 있다. 첫번째로, 호스트 장치가 어플리케이션 데이터 속도(application data rate)에 기반하여 명령을 송신하기 때문에, 저장 장치로부터 읽어지는 데이터의 양은, 어플리케이션이 처리를 위해 얼마나 많은 데이터를 완충(buffer)할 수 있는지에 일반적으로 의존한다. 버퍼(buffer)가 제한되어 있기 때문에, 호스트 장치가 많은 읽기 명령(many read commands)을 송신하고 상당히 많은 양의 데이터(data in chunks)를 얻는 일이 있을 수 있고, 그 간격은 필요할 때마다 어플리케이션 데이터 소비 속도(application data consumption rate)에 의존한다. 이런 이유로, 많은 명령이 호스트 장치에 의해 송신될 필요가 있고, 이로 인해 저장 장치로 많은 방해(lot of interrupts)가 생긴다. 두번째로, 호스트 장치는 동일한 명령을 송신해야 하기 때문에, 저장 명령의 준비/처리를 위해 많은 시간과 자원(resource)을 들여야 한다. 세번째로, 모든 기정의된 시간 간격(every predefined interval of time) 후에 정해진 횟수(a given number of times)만큼 특정한 명령(particular command) 또는 연속적인 명령(a sequence of commands)을 실행할 가능성이 없다. 앞서 언급된 특징을 달성하기 위해, 호스트 장치는 필요할 때마다 동일한 명령을 반복해서 송신해야 한다. 마지막으로, 호스트 장치와 저장 장치 사이의 유일한 동기화 메커니즘(synchronization mechanism)은 버퍼링(buffering)과 방해(interrupt)이다. 호스트 장치는 명령이 실행될 필요가 있을 때를 판단할 수 없다. 게다가, 호스트 장치는 특정한 명령이 송신되거나 완료될 때를 알지 못하기에, 결정적 시나리오를 또한 비결정적으로 만든다.
본 발명이 해결하려는 과제는, 저장 명령을 효율적으로 처리하는 저장 명령 처리 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 저장 명령을 효율적으로 처리하는 장치를 제공하는 것이다.
본 발명이 해결하려는 또 다른 과제는, 저장 명령을 효율적으로 처리하는 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 저장 명령 처리 방법의 일 실시예는, 저장 장치에 의해 호스트 장치(host device)로부터 저장 명령(storage command)을 수신하되, 저장 명령은 저장 명령의 반복 속도(rate of repetition)을 지시하는 속도 정보(rate information)를 포함하고, 속도 정보에 기반하여 반복적으로 기 결정된 시간 간격(pre-determined time interval)으로 저장 명령을 처리하고, 상기 저장 명령이 반복적으로 처리될 때마다 상기 호스트 장치로 응답 메시지(response message)를 송신하는 것을 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 장치의 일 실시예는, 프로세서 및 프로세서와 접속된 메모리를 포함하되, 메모리는, 호스트 장치로부터 저장 명령을 수신하되, 저장 명령은 저장 명령의 반복 속도를 지시하는 속도 정보를 포함하고, 속도 정보에 기반하여 기 결정된 시간 간격으로 저장 명령을 반복적으로 처리하고, 저장 명령이 처리될 때마다 호스트 장치로 응답 메시지를 송신하는 명령 처리 모듈(command processing module)을 포함한다.
상기 또 다른 과제를 해결하기 위한 본 발명의 시스템의 일 실시예는, 저장 명령의 반복 속도를 지시하는 속도 정보를 포함하는 저장 명령을 생성하는 호스트 장치; 및 호스트 장치와 접속되고, 속도 정보에 기반하여 기 결정된 시간 간격으로 저장 명령을 반복적으로 처리하고, 저장 명령을 처리할 때마다 호스트 장치로 응답 메시지를 송신하는 저장 장치를 포함한다.
도 1은 본 발명의 일 실시예에 따른 저장 명령을 효율적으로 처리할 수 있는 저장 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 저장 명령을 반복적으로 처리하는 방법을 설명하는 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 저장 명령을 반복적으로 처리하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 UPIU 헤더(Universal Flash Storage Protocol Information Unit header)의 포맷(format)을 설명하는 개략도이다.
도 5는 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도이다.
도 7은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도이다.
도 8은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 UPIU를 처리하기 위해 요구되는 시간을 위한 요청을 포함하는 UPIU 헤더의 포맷을 설명하는 개략도이다.
도 10은 본 발명의 일 실시예에 따른 UPIU를 처리하기 위해 요구되는 시간을 지시하는 시간 정보 UPIU 패킷(time info UPIU packet)의 포맷을 설명하는 개략도이다.
도 11은 본 발명의 다른 실시예에 따른 UPIU를 처리하기 위해 요구되는 시간을 지시하는 응답 메시지의 포맷을 설명하는 개략도이다.
여기에서 설명된 도면들은 발명의 목적만을 설명하기 위한 것일 뿐 본 발명의 범위를 제한하려는 것은 아니다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
‘저장 명령’과 ‘명령’은 문서 전체에서 혼용된다.
도 1은 본 발명의 일 실시예에 따른 저장 명령을 효율적으로 처리할 수 있는 저장 시스템(100)의 블록도이다. 도 1에서, 시스템(100)은 호스트 장치(102)와 저장 장치(104)를 포함한다. 호스트 장치(102)는 퍼스널 컴퓨터(personal computer), 스마트 폰(smart phone), 모바일 폰(mobile phone), 디지털 카메라(digital camera), 비디오 레코더(video recorder), 태블릿 컴퓨터(tablet computer), 퍼스널 디지털 어시스턴트(personal digital assistant) 및 이와 유사한 것일 수 있다. 저장 장치(104)는 UFS(Universal Flash Storage), SSD 카드(Solid State Drive card), 메모리 카드(memory card) 및 USB 플래시 드라이브 (Universal Serial Bus flash drive) 등등이다. 호스트 장치(102)는 프로세서(processor)(106), 메모리 유닛(memory unit)(108) 및 호스트 인터페이스(host interface)(114)를 포함한다. 메모리 유닛(108)은 다수의 어플리케이션(110)(예를 들면, 미디어 플레이어 어플리케이션(media player application), 워드 프로세싱 어플리케이션(word processing application) 등등)과 명령 생성 모듈(112)을 포함한다. 저장 장치(104)는 저장 인터페이스(116), 명령 처리 모듈(command processing module)(120)을 포함하는 제어기(controller)(118) 및 물리적인 메모리(physical memory)(122)를 포함한다.
본 발명의 일 실시예에서, 명령 생성 모듈(112)은 저장 장치(104)로부터/저장 장치(104)로 데이터를 읽기/쓰기 위한 (저장 명령으로 보통 참조되는) 읽기/쓰기 명령(read/write command)을 생성한다. 명령 생성 모듈(112)은 반복 속도(rate of repetition)와 명령의 수(number of commands)를 지시하여 생성된 읽기/쓰기 명령에서 반복적으로 처리되도록 할 수 있다. 명령 생성 모듈(112)은 생성된 읽기/쓰기 명령을 호스트 인터페이스(114)를 통해 저장 장치(104)로 송신한다. 명령 처리 모듈(120)은, 호스트 장치(102)로부터 수신된 명령에서 지시된 횟수를 위해 프리셋 시간 간격 후에 명령을 자동적으로 처리한다. 명령 처리 모듈(120)은 명령을 처리한 후 매번 저장 인터페이스(116)를 통해 호스트 장치(102)로 응답을 송신한다. 호스트 장치가 횟수를 명시하지 않을 때 명령은 명령에서 반복적으로 처리되고, 기대 액션(desired action)(읽기/쓰기)이 완료될 때, 호스트 장치(102)는 요청을 송신하여 명령의 반복적인 처리를 정지시킨다. 그 때까지 명령 처리 모듈(120)은 프리셋 시간 간격 후에 명령을 반복적으로 처리한다.
본 발명의 다른 실시예에서, 명령 생성 모듈(112)은 프리셋 시간 간격(preset time period)을 가진 쓰기 명령을 생성하고, 쓰기 명령을 호스트 인터페이스(114)를 통해 저장 장치(104)로 송신한다. 명령 처리 모듈(120)은 쓰기 명령을 처리하고 호스트 장치(102)로 RTT를 송신한다. 명령 처리 모듈(120)은 데이터-출력 패킷이 쓰기 명령에서 지시된 프리셋 시간 간격 내에 호스트 장치(102)로부터 수신되는지를 판단한다. 데이터-출력 패킷이 프리셋 시간 간격 내에 수신되지 않는다면, 명령 처리 모듈(120)은 쓰기 동작을 종료하고 비가동 모드(idle mode)로 들어간다. 그 대신에, 명령 처리 모듈(120)은 쓰기 동작이 종료 하자마자 새로운 쓰기 명령을 처리할 수 있다.
본 발명의 또 다른 실시예에서, 명령 생성 모듈(112)은 관련된 시간 정보를 지시하는 읽기 명령을 생성하고 읽기 명령을 호스트 인터페이스(114)를 통해 저장 장치(104)로 송신한다. 명령 처리 모듈(120)은 관련된 시간 정보에 기반하여 읽기 명령의 처리를 연기한다. 명령 처리 모듈(120)은 예정된 시간에 각각의 읽기 명령을 처리하고, 저장 인터페이스(116)를 통해 호스트 장치(102)로 응답을 송신한다.
본 발명의 또 다른 실시예에서, 명령 생성 모듈(112)은 처리 시간에 대한 요청(a request for processing time)을 가진 명령을 생성하고, 저장 장치(104)로 명령을 송신한다. 명령 처리 모듈(120)은 요청에 기반하여 명령을 처리하기 위해 요구되는 시간을 판단하고, 명령을 처리하기 위해 요구되는 시간을 지시하는 응답 메시지를 저장 인터페이스(116)를 통해 호스트 장치(102)로 송신한다. 명령 생성 모듈(112)은 명령이 응답 메시지에서 지시된 시간보다 일찍 처리 되어야 하는지를 판단하고 판단에 기반하여 명령과 관련된 우선순위를 변경한다. 따라서, 명령 생성 모듈(112)은 저장 장치(104)로 명령의 변경된 우선순위를 송신한다. 이에 따라, 명령 처리 모듈(120)은 변경된 우선순위에 따라 명령을 처리한다.
도 2는 본 발명의 일 실시예에 따른 저장 명령을 반복적으로 처리하는 방법을 설명하는 흐름도(200)이다. 단계(202)에서, 호스트 장치(102)는 특정한 명령(particular command) 또는 명령 세트(set of commands)의 반복 속도를 판단한다. 예를 들면, 호스트 장치(102)가 장치 라이브 상태(device live status)를 체크하기를 원한다면, 호스트 장치는 저장 장치로 동일한 명령을 일정한 시간 간격으로 여러 번 송신할 필요가 있다. 이를 피하기 위해, 호스트 장치(102)는, 저장 장치(104)가 시간 간격에 따라 스스로 명령을 반복하도록 시간 간격에 기반하여 반복 속도를 판단한다. 예를 들면, 호스트 장치(102)가, 명령이 매 10 밀리세컨드(millisecond) 마다 반복적으로 처리되기를 원한다면, 반복 속도는 10 밀리세컨드(millisecond)일 수 있다. 단계(204)에서, 호스트 장치(102)는 저장 장치(104)에 의해 실행된 명령의 수를 계산한다. 예를 들면, 호스트 장치(102)는 하나의 읽기 유닛 명령(read unit command) 보다 큰 읽기 요청을 가질 수 있다. 이러한 경우에, 호스트 장치(102)는 횟수를 판단하고, 읽기 유닛 명령은 읽기 유닛 명령의 크기에 관한 읽기 요청의 크기에 기반하여 실행된다. 단계(206)에서, 호스트 장치(102)는 반복 속도와 실행되는 명령의 수를 지시하는 명령을 생성한다. 명령은 읽기 UPIU(Universal Flash Storage Protocol Information Unit) 또는 쓰기 UPIU일 수 있다.
단계(208)에서, 호스트 장치(102)는 반복 속도와, 저장 장치(104)로 실행되는 명령의 수를 지시하는 명령을 송신한다. 단계(210)에서, 저장 장치(104)는 수신된 명령으로부터 반복 속도와 명령의 수를 추출한다.
단계(212)에서, 저장 장치(102)는 명령이 수신된 명령에서 지시된 반복 속도에 기반하여 반복적으로 처리되는지를 판단한다. 명령이 단일 시간(single time) 동안 처리되어야 한다면, 단계(216)에서, 저장 장치(104)는 수신된 명령을 처리하고, 단계(218)에서, 처리된 명령에 기반하여 응답을 송신한다.
명령이 반복적으로 처리된다면, 단계(214)에서, 저장 장치(104)는 시간 간격이 명령을 처리하기 위해 경과되는지를 판단한다. 시간 간격이 경과된다면, 단계(216)에서, 저장 장치(104)는 명령을 반복하고 명령을 처리한다. 단계(218)에서, 저장 장치(104)는 명령의 실행에 기반하여 응답을 송신한다. 시간 간격이 경과되지 않는다면, 저장 장치(104)는 단계(214)를 반복한다.
단계(220)에서, 저장 장치(104)는, 수신된 명령이 수신된 명령에서 지시된 명령의 수에 기반하여 명시된 횟수(specified number of times)만큼 처리되는지를 판단한다. 수신된 명령이 명시된 횟수만큼 처리된다면, 단계(222)에서, 저장 장치(104)는 특정한 명령이 명시된 횟수만큼 실행되는 지를 지시하는 알림(notification)을 송신한다. 수신된 명령이 명시된 횟수만큼 처리되지 않는다면, 저장 장치(104)는 단계(214~222)를 반복한다. 상기 단계(202~222)를 수행하는 것에 의해, 호스트 장치(102)는 데이터가 요구될 때, 동일한 목적을 위해 다수의 명령을 송신할 필요가 없기에, 방해의 수를 감소하고, 결과적으로 문맥 전환(context switching)을 감소한다.
도 3은 본 발명의 다른 실시예에 따른 저장 명령을 반복적으로 처리하는 방법을 설명하는 흐름도(300)이다. 단계(302)에서, 호스트 장치(102)는 특정한 명령의 반복 속도를 판단한다. 단계(304)에서, 호스트 장치(102)는 반복 속도를 지시하는 명령을 생성한다. 단계(306)에서, 호스트 장치(102)는 반복 속도를 지시하는 명령을 저장 장치(104)로 송신한다.
단계(308)에서, 저장 장치(104)는 수신된 명령으로부터 반복 속도를 추출한다. 단계(310)에서, 저장 장치(102)는, 명령이 수신된 명령에서 지시된 반복 속도에 기반하여 반복적으로 처리되는지를 판단한다. 명령이 단일 시간 동안 처리된다면, 단계(314)에서, 저장 장치(104)는 수신된 명령을 처리하고, 단계(316)에서, 처리된 명령에 기반하여 응답을 송신한다.
명령이 반복적으로 처리된다면, 단계(312)에서, 저장 장치(104)는, 시간 간격이 명령을 처리하기 위해 경과되는지를 판단한다. 시간 간격이 경과된다면, 단계(314)에서, 저장 장치(104)는 명령을 반복하고 명령을 처리한다. 단계(316)에서, 저장 장치(104)는 명령의 실행에 기반하여 응답을 송신한다. 본 발명의 몇몇 실시예에서, 저장 장치(104)는 응답에서 호스트 장치(102)에 의해 명시된 하나 이상의 필드(one or more fields)를 변경할 수 있다. 예를 들면, 호스트 장치(102)는, (논리 블록 주소가 순차적일 때) 논리 블록 주소(LBA; Logical Block Address) 필드가, 읽기 명령이 반복되고 실행될 때마다 증가되어야 한다는 것을 지시한다. 따라서, 저장 장치(104)는 응답에서 논리 블록 주소(LBA) 필드를 증가시키고, 호스트 장치(102)로 응답을 송신한다.
시간 간격이 경과되지 않는다면, 저장 장치(104)는 단계(312)를 반복한다. 단계(316) 후에, 저장 장치(104)는 단계(312)로 돌아가고, 호스트 장치(102)로부터 명령의 실행을 정지하기 위한 요청이 있을 때까지 반복 속도에 기반하여 명령을 반복적으로 처리한다.
저장 장치(104)가 원하는 횟수만큼 반복적으로 명령을 처리했다는 것을 고려하라. 따라서, 단계(318)에서, 호스트 장치(102)는 명령의 반복된 실행을 정지하기 위한 요청을 송신한다. 단계(320)에서, 저장 장치(104)는 요청에 기반하여 명령의 반복된 실행을 정지한다.
도 4는 본 발명의 일 실시예에 따른 UPIU 헤더(Universal Flash Storage Protocol Information Unit header)의 포맷(format)(400)을 설명하는 개략도이다. 특히, UPIU 헤더(400)는 시간/속도 정보(Time/Rate Information)(TI) 필드(402), 시간 필드(404), 필드 식별(Field Identify)(FI) 필드(406), 변경 지시(Modification Direction)(MD) 필드(408) 및 벨류(value) 필드(410)를 포함한다.
시간/속도 정보 필드(402)는, 명령이 정해진 시간 간격으로 반복될 필요가 있다고 지시한다. 시간/속도 정보 필드(402)는 4비트 크기이다. 예를 들면, 시간 필드(404)가 UPIU 헤더(400)에 존재하지 않는다면, 시간/속도 정보 필드(402)는 벨류 ‘xx00b’로 설정된다. 시간 필드(404)가 명령이 실행되어야 하는 시간을 지시한다면, 시간/속도 정보 필드(402)는 벨류 ‘xx01b’로 설정된다. 시간 필드(404)가 명령의 타임 아웃(time out)을 지시한다면, 시간/속도 정보 필드(402)는 벨류 ‘xx10b’로 설정된다. 시간 필드(404)가, 2개의 연속적인 명령의 반복(two successive repetitions of the command) 사이의 시간 간격을 지시한다면, 시간/속도 정보 필드(402)는 벨류 ‘xx11b’로 설정된다. 시간/속도 정보 필드(402)가 ‘xx11b’로 설정되면, 호스트 장치(102)는 도 3에 도시된 바와 같이, 저장 장치(104)로 명령의 반복을 정지하기 위한 요청을 송신할 필요가 있다.
명령이 반복될 때, 시간 필드(404)는 2개의 연속적인 명령의 실행 사이의 시간 간격을 지시한다. 필드 식별 필드(406)는 명령이 실행된 후 매번 저장 장치(104)에 의해 변경되는 필드를 식별한다. 변경 지시 필드(408)는, 필드 식별 필드(406)에서 식별된 필드가 변경되어야 하는지를(예를 들면, 증가, 감소, 덧셈 또는 뺄셈) 지시한다. 벨류 필드(410)는, 필드 식별 필드(406)에 의해 지시된 필드가 변경되어야 하는 벨류를 포함한다. 본 발명의 몇몇 실시예에서, 시간/속도 정보 필드(402)가 벨류 ‘xx11b’로 설정되면, UPIU 헤더(400)는 필드 식별 필드(406), 변경 지시 필드(408) 및 벨류 필드(410)를 포함한다. UPIU 헤더(400)는 또한 특정한 명령이 반복되어야 하는 횟수를 포함하기 위한 필드를 포함할 수 있다는 것을 알 수 있다. 이러한 경우에, 호스트 장치(102)는 명령의 반복을 정지하기 위한 요청을 송신할 필요가 없고, 저장 장치(104)는 도 2에 도시된 바와 같이, 명시된 횟수만큼 명령을 처리 하자마자 명령의 반복을 자동으로 정지할 것이다.
도 5는 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도(500)이다. 단계(502)에서, 호스트 장치(102)는 저장 장치(104)에서 쓰기 동작을 수행하기 위해 (대기 타임 아웃(wait time out)으로 또한 알려진) 프리셋 시간 간격을 가진 쓰기 명령을 송신한다. 프리셋 시간 간격은, 저장 장치(104)가 비가동 모드로 들어가거나 다른 명령을 처리하기에 앞서서 데이터-출력 패킷을 기다릴 수 있기 위한 시간 간격이다. 단계(504)에서, 호스트 장치(102)는 프리셋 시간 간격을 가진 쓰기 명령을 저장 장치(104)로 송신한다. 그 대신에, 호스트 장치(102)는 프리셋 시간 간격을 가진 공통의 구성 디스크립터(common configuration descriptor)를 저장 장치(104)로 송신한다. 단계(506)에서, 저장 장치(104)는 쓰기 명령을 명령 큐(command queue)에 추가한다. 단계(508)에서, 저장 장치(104)는 명령 큐 내의 쓰기 명령을 처리한다. 단계(510)에서, 저장 장치(104)는 RTT를 호스트 장치(102)로 송신한다.
단계(512)에서, 저장 장치(104)는 임의의 데이터-출력 패킷이 프리셋 시간 간격 내에 수신되는지를 결정한다. 데이터-출력 패킷이 프리셋 시간 간격 내에 수신되지 않는다면, 단계(514)에서, 저장 장치(104)는 호스트 장치(102)로 실패 알림(failure notification)을 송신한다. 실패 알림은 프리셋 시간 간격 또는 구성 디스크립터 벨류를 포함할 수 있다. 단계(516)에서, 저장 장치(104)는 쓰기 동작을 종료하고, 단계(518)에서 비가동 모드로 이동하거나 다음 쓰기 명령을 처리한다.
도 6은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도(600)이다. 단계(602)에서, 호스트 장치(102)는 저장 장치(104)에서 읽기 동작을 수행하기 위한 읽기 명령을 생성한다. 단계(604)에서, 호스트 장치(102)는 각각의 읽기 명령이 처리되어야하는 시간을 결정한다. 단계(606)에서, 호스트 장치(102)는 저장 장치(104)로 시간 정보와 관련된 읽기 명령을 송신한다.
단계(608)에서, 저장 장치(104)는 시간 정보에 기반하여 읽기 명령을 연기한다. 예를 들면, 읽기 명령 1이 즉시(0초) 실행되어야 한다면, 저장 장치(104)는 즉시 읽기 명령 1을 실행한다. 읽기 명령2가 30초 후에 실행되어야 한다면, 저장 장치(104)는 30초까지 읽기 명령의 실행을 연기한다. 단계(610)에서, 저장 장치(104)는 임의의 연기된 읽기 명령이 처리될 예정인지를 지속적으로 판단한다. 연기된 읽기 명령이 처리될 예정이라면, 단계(612)에서, 저장 장치(104)는 처리될 예정인 연기된 읽기 명령을 처리한다. 단계(614)에서, 저장 장치(104)는 연기된 읽기 명령을 처리한 후 응답 메시지를 송신하고, 처리될 예정인 읽기 명령이 없을 때까지 단계(610~614)를 반복한다. 본 발명의 몇몇 실시예에서, 연기된 읽기 명령에 앞서 처리되어야 하는 읽기 명령이 없을 때, 저장 장치(104)는 지능적으로 예정보다 빨리 연기된 읽기 명령을 처리하고, 호스트 장치(102)로 각각의 응답 메시지를 송신할 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도(700)이다. 단계(702)에서, 호스트 장치(102)는 수행/처리 시간(attending/processing time)을 위한 요청을 가진 명령을 생성한다. 단계(704)에서, 호스트 장치(102)는 수행/처리 시간을 위한 요청을 가진 명령을 저장 장치(104)로 송신한다. 단계(706)에서, 저장 장치(104)는 수신된 명령을 명령 큐에 추가한다.
단계(708)에서, 저장 장치(104)는 수신된 명령을 수행/처리하기 위해 요구되는 시간을 판단한다. 예를 들면, 수신된 명령을 수행/처리하기 위해 요구되는 시간은, 명령 큐에서 처리되는 명령의 수와, 명령 큐에 앞서 대기 행렬을 이루는 명령(commands queued)을 처리하기 위해 요구되는 시간에 기반한다. 단계(710)에서, 저장 장치(104)는 명령을 수행/처리하기 위해 요구되는 시간을 지시하는 응답 메시지(예를 들면, 데이터-입력 패킷, 응답 UPIU 등등)를 송신한다. 단계(712)에서, 호스트 장치(102)는 명령과 관련된 우선 순위를 변경한다. 예를 들면, 호스트 장치(102)는 요청된 데이터가 요구될 때에 기반하여 오름차순으로(from low to high) 우선 순위를 변경할 수 있다. 단계(714)에서, 호스트 장치(102)는 저장 장치(104)로 명령의 변경된 우선 순위를 가진 메시지를 송신한다. 단계(716)에서, 저장 장치(104)는 변경된 우선 순위에 따라 명령 큐 내의 명령을 이동시키고, 명령을 처리한다.
도 8은 본 발명의 또 다른 실시예에 따른 저장 명령을 처리하는 방법을 설명하는 흐름도(800)이다. 단계(802)에서, 호스트 장치(102)는 제1 명령을 생성한다. 단계(804)에서, 호스트 장치(102)는 제1 명령을 저장 장치(104)로 송신한다. 단계(806)에서, 저장 장치(104)는 제1 명령을 명령 큐에 추가한다.
단계(808)에서, 호스트 장치(102)는 제1 명령을 처리하기 위해 요구되는 시간을 위한 요청을 가진 제2 명령을 생성한다. 단계(810)에서, 호스트 장치(102)는 제1 명령을 처리하기 위해 요구되는 시간을 위한 요청을 가진 제2 명령을 저장 장치(104)로 송신한다. 단계(812)에서, 저장 장치(104)는 제2 명령을 명령 큐에 추가한다.
단계(814)에서, 저장 장치(104)는 제1 명령을 처리하기 위해 요구되는 시간을 판단한다. 단계(816)에서, 저장 장치(104)는, 제1 명령을 처리하기 위해 요구되는 시간을 지시하는 응답 메시지(예를 들면, 데이터-입력 패킷, 응답 UPIU 등등)을 송신한다. 단계(818)에서, 호스트 장치(102)는 제1 명령과 관련된 우선 순위를 변경한다. 예를 들면, 호스트 장치(102)는, 명령이 다른 명령보다 일찍 실행 되어야 하는지에 기반하여 오름차순(from low to high)으로 우선 순위를 변경할 수 있다. 단계(820)에서, 호스트 장치(102)는 제1 명령의 변경된 우선 순위를 가진 메시지를 저장 장치(102)로 송신한다. 단계(822)에서, 저장 장치(104)는 호스트 장치(102)에 의해 변경된 우선 순위에 따라 제1 명령을 처리한다.
그 대신에, 호스트 장치(102)는 태스크 태그(task tag)를 이용하여, 특정한 명령을 위한 처리 시간 정보(processing time information)를 요청하는 태스크 관리 명령(task management command)를 송신할 수 있다. 이러한 이유로, 저장 장치(104)는 처리 시간 정보를 호스트 장치(102)로 송신한다.
도 9는 본 발명의 일 실시예에 따른 UPIU를 처리하기 위해 요구되는 시간을 위한 요청을 포함하는 UPIU 헤더의 포맷(900)을 설명하는 개략도이다. UPIU 헤더(900)는 태스크 태그 필드(902) 및 시간 정보(TI) 필드(904)를 포함한다.
태스크 태그 필드(902)는 UPIU를 처리하기 위해 요구되는 시간을 위한 요청을 지시한다. 시간 정보 필드(904)는 저장 장치(104)에 의해 수행되는 액션을 지시한다. 예를 들면, 저장 장치(104)가 처리 시간에 대한 정보를 송신할 필요가 없다면, 시간 정보 필드(904)는 벨류 ‘00xxb’로 설정된다. 인스턴트 UPIU(instant UPIU)를 처리하기 위해 요구되는 시간을 원한다면, 시간 정보 필드(904)는 벨류 ‘01xxb’로 설정된다. 시간 정보 필드는 도 7에 도시된 경우에서 ‘01xxb’로 설정된다. 마지막 UPIU를 처리하기 위해 요구되는 시간을 원한다면, 시간 정보 필드(904)는 벨류 ‘10xxb’로 설정된다. 그 대신에, 실행 완료 시간 필드(execution completion time field)는 태스크 태그 필드(902) 대신에 사용된다. 이러한 경우에, 태스크 태그는 UPIU 헤더(900)에서 요구되지 않을 수 있다.
도 9에 도시된 경우에서, 시간 정보 필드(904)는 ‘10xxb’로 설정된다. 본 발명의 일 실시예에서, 시간 정보 필드(904)의 처음 2 비트(first two bits)는, 처리 시간 정보가 호스트 장치(102)에 의해 요구될 때 저장 장치(104)에 의해 수행되는 액션을 지시하기 위해 사용된다. 도 4에 도시된 바와 같이, 시간 정보 필드(904)의 나머지 2 비트(the remaining two bits)는 UPIU가 반복적으로 처리될 필요가 있을 때 시간 필드(906)의 의미를 지시한다.
본 발명의 몇몇 실시예에서, 저장 장치(104)는 UPIU를 수신 하자마자 시간 정보 UPIU 패킷(time info UPIU packet)에 있는 UPIU를 즉시 처리하기 위해 요구되는 시간을 송신한다. 이러한 실시예들에서, 호스트 장치(102)는, 즉각적인 응답을 원한다면 UPIU에 있는 1과 동일한 비트를 설정한다. 예시적인 시간 정보 UPIU 패킷은 도 10에서 설명된다. 본 발명의 다른 실시예에서, 저장 장치(104)는 다른 명령의 실행에 대응하는 응답 메시지(예를 들면, 데이터-입력 응답, 응답 UPIU 등등)에서, UPIU를 처리하기 위해 요구되는 시간을 호스트 장치(102)로 송신할 수 있다. 실행된 명령에 대응하는 예시적인 응답 메시지는 도 11에서 설명된다.
도 10은 본 발명의 일 실시예에 따른 UPIU(900)를 처리하기 위해 요구되는 시간을 지시하는 시간 정보 UPIU 패킷(time info UPIU packet)의 포맷(1000)을 설명하는 개략도이다. 시간 정보 UPIU 패킷(1000)은 시간 정보(TI) 필드(1002), 시간 정보 패킷 필드(1004) 및 시간 필드(1006)를 포함한다. 시간 정보 필드(1002)는 UPIU의 시간 정보 필드(904)와 동일한 벨류를 지시한다. 시간 정보 패킷 필드(1004)는 UPIU 패킷이 시간 정보 UPIU 패킷과 대응한다는 것을 지시한다. 시간 필드(1006)는 UPIU(900)를 처리하기 위해 요구되는 시간을 지시한다.
도 11은 본 발명의 다른 실시예에 따른 UPIU(900)를 처리하기 위해 요구되는 시간을 지시하는 응답 메시지의 포맷(1100)을 설명하는 개략도이다. 응답 메시지(1100)는 호스트 장치(102)로부터 수신된 다른 UPIU를 처리한 후 송신된 예시적인 응답 메시지이다. 응답 메시지(1100)는 시간 정보(TI) 필드(1102), 태스크 태그(1104) 및 시간 필드(1106)를 포함할 수 있다. 시간 정보 필드(1102)는 UPIU의 시간 정보 필드(904)와 동일한 벨류를 지시한다. 태스크 태그 필드(1104)는 시간 정보를 요구한 UPIU(900)의 태스크 태그 필드(902) 내의 태스크 태그를 포함한다. 시간 필드(1106)는 UPIU(900)를 처리하기 위해 요구되는 시간을 지시한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 게다가 여기에서 설명된 다양한 장치, 모듈 및 이와 유사한 것은 하드웨어 전기 회로망(hardware circuitry), 예를 들면, 논리 전기 회로망(logic circuitry), 펌웨어(firmware), 소프트웨어(software) 및/또는 기계 판독 가능 매체(machine readable medium)에 구현된 하드웨어, 펌웨어 및/또는 소프트웨어의 조합에 기반한 CMOS(complementary metal oxide semiconductor)를 사용하여 작동될 수 있다. 예를 들면, 다양한 전기 공작물 및 방법(electrical structure and method)은 트랜지스터, 논리 게이트(logic gate) 및 ASIC(Application Specific Integrated Circuit)과 같은 전기 회로를 사용하여 구현될 수 있다.

Claims (21)

  1. 저장 장치에 의해 호스트 장치(host device)로부터 저장 명령(storage command)을 수신하되, 상기 저장 명령은 상기 저장 명령의 반복 속도(rate of repetition)를 지시하는 속도 정보(rate information)를 포함하고,
    상기 속도 정보에 기반하여 반복적으로 기 결정된 시간 간격(pre-determined time interval)으로 상기 저장 명령을 처리하고,
    상기 저장 명령이 반복적으로 처리될 때마다 상기 호스트 장치로 응답 메시지(response message)를 송신하는 것을 포함하는 저장 명령 처리 방법.
  2. 제 1항에 있어서,
    상기 저장 명령이 처리될 때마다 논리 블록 주소(logical block address)를 업데이트하는 것을 더 포함하는 저장 명령 처리 방법.
  3. 제 1항에 있어서,
    상기 저장 명령을 기 결정된 횟수만큼 처리 하자마자 상기 저장 명령의 상기 반복적인 처리를 종료하되, 상기 저장 명령은, 상기 저장 명령이 반복적으로 처리되어야 하는 상기 기 결정된 횟수(pre-determined number of times)를 지시하는 것을 더 포함하는 저장 명령 처리 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 프로세서; 및
    상기 프로세서와 접속된 메모리를 포함하되,
    상기 메모리는,
    호스트 장치로부터 저장 명령을 수신하되, 상기 저장 명령은 상기 저장 명령의 반복 속도를 지시하는 속도 정보를 포함하고,
    상기 속도 정보에 기반하여 기 결정된 시간 간격으로 상기 저장 명령을 반복적으로 처리하고,
    상기 저장 명령이 처리될 때마다 상기 호스트 장치로 응답 메시지를 송신하는 명령 처리 모듈(command processing module)을 포함하는 장치.
  9. 제 8항에 있어서,
    상기 명령 처리 모듈은, 상기 저장 명령을 처리할 때마다 논리 블록 주소를 업데이트 하는 장치.
  10. 제 8항에 있어서,
    상기 명령 처리 모듈은, 상기 저장 명령을 기 결정된 횟수만큼 처리 하자마자 상기 저장 명령의 상기 반복적인 처리를 종료하되, 상기 저장 명령은, 상기 저장 명령이 반복적으로 처리되어야 하는 상기 기 결정된 횟수를 지시하는 장치.
  11. 제 8항에 있어서,
    상기 명령 처리 모듈은, 상기 호스트 장치로부터 상기 저장 명령의 반복을 종료하기 위한 요청을 수신 하자마자 상기 저장 명령의 상기 반복적인 처리를 종료하는 장치.
  12. 제 8항에 있어서,
    상기 명령 처리 모듈은, 기 결정된 지속 시간 동안 상기 저장 명령을 연기하되, 상기 저장 명령은 상기 기 결정된 지속 시간을 지시하는 장치.
  13. 제 8항에 있어서,
    상기 명령 처리 모듈은,
    데이터-출력 패킷이 프리셋 시간 간격의 만료에 앞서 상기 호스트 장치로부터 수신되는지를 판단하고,
    상기 데이터-출력 패킷이 상기 프리셋 시간 간격의 만료에 앞서 수신되지 않는다면, 상기 저장 명령의 처리를 종료하고,
    상기 저장 명령의 처리를 종료 하자마자 새로운 상태로 변환하는 장치.
  14. 제 8항에 있어서,
    상기 명령 처리 모듈은,
    상기 저장 명령을 처리하기 위해 요구되는 시간을 판단하고,
    상기 저장 명령을 처리하기 위해 요구되는 시간을 지시하는 응답 메시지를 상기 호스트 장치로 송신하는 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020140063084A 2013-10-09 2014-05-26 저장 명령을 효율적으로 처리하는 방법 및 장치 KR102036124B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/510,204 US9377966B2 (en) 2013-10-09 2014-10-09 Method and apparatus for efficiently processing storage commands

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN4588/CHE/2013 2013-10-09
IN4588CH2013 IN2013CH04588A (ko) 2013-10-09 2013-10-09

Publications (2)

Publication Number Publication Date
KR20150041733A KR20150041733A (ko) 2015-04-17
KR102036124B1 true KR102036124B1 (ko) 2019-10-25

Family

ID=53035095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140063084A KR102036124B1 (ko) 2013-10-09 2014-05-26 저장 명령을 효율적으로 처리하는 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102036124B1 (ko)
IN (1) IN2013CH04588A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208901A1 (en) 2010-02-25 2011-08-25 Jung Wook Kim Memory Systems and Methods of Operating the Same
US20120179866A1 (en) 1997-10-10 2012-07-12 Davis Paul G Memory Component Having Write Operation with Multiple Time Periods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120179866A1 (en) 1997-10-10 2012-07-12 Davis Paul G Memory Component Having Write Operation with Multiple Time Periods
US20110208901A1 (en) 2010-02-25 2011-08-25 Jung Wook Kim Memory Systems and Methods of Operating the Same

Also Published As

Publication number Publication date
IN2013CH04588A (ko) 2015-04-10
KR20150041733A (ko) 2015-04-17

Similar Documents

Publication Publication Date Title
US10705974B2 (en) Data processing method and NVME storage device
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US9965014B2 (en) Techniques for tracing wakelock usage
CN111857838B (zh) 用于管理ufs装置与ufs主机之间的通信的方法和系统
US9377966B2 (en) Method and apparatus for efficiently processing storage commands
US10901624B1 (en) Dummy host command generation for supporting higher maximum data transfer sizes (MDTS)
US11010094B2 (en) Task management method and host for electronic storage device
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
CN102646446A (zh) 硬件动态高速缓存电源管理
US11199992B2 (en) Automatic host buffer pointer pattern detection
US20180024949A1 (en) Method of achieving low write latency in a data storage system
TWI507981B (zh) 指令執行方法、連接器與記憶體儲存裝置
TWI564809B (zh) 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置
CN111221757B (zh) 一种低延迟pcie dma数据传输方法及控制器
CN111984198A (zh) 消息队列实现方法、装置及电子设备
WO2015165055A1 (zh) 存储数据的方法、内存控制器和中央处理器
KR102036124B1 (ko) 저장 명령을 효율적으로 처리하는 방법 및 장치
US10409748B2 (en) Bridge device with DMA data transferring to upstream device with reset and clear feature command
CN113196225A (zh) 开放信道矢量命令执行
CN111857546A (zh) 用于处理数据的方法、网络适配器和计算机程序产品
US9965183B2 (en) Method for processing data in storage device and storage device
US7831741B2 (en) Indexing device and method for data storage system
TWI629638B (zh) 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
CN112825024A (zh) 命令融合、拆分方法与NVMe控制器

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right