KR20150123827A - Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법 - Google Patents

Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20150123827A
KR20150123827A KR1020157024235A KR20157024235A KR20150123827A KR 20150123827 A KR20150123827 A KR 20150123827A KR 1020157024235 A KR1020157024235 A KR 1020157024235A KR 20157024235 A KR20157024235 A KR 20157024235A KR 20150123827 A KR20150123827 A KR 20150123827A
Authority
KR
South Korea
Prior art keywords
storage device
database
host system
media
removable
Prior art date
Application number
KR1020157024235A
Other languages
English (en)
Other versions
KR102219218B1 (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 KR1020217004722A priority Critical patent/KR102270531B1/ko
Publication of KR20150123827A publication Critical patent/KR20150123827A/ko
Application granted granted Critical
Publication of KR102219218B1 publication Critical patent/KR102219218B1/ko

Links

Images

Classifications

    • G06F17/30377
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • Y02B60/1228
    • Y02B60/1235
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

자신들이 이동식 매체를 가지고 있음을 호스트 시스템에 거짓으로 및/또는 부정확하게 보고할 수 있는 레거시 저장 장치들을 검출하는 시스템 및 방법이 개시된다. 이러한 거짓 또는 부정확한 보고는 호스트 시스템으로 하여금 저장 장치가 I/O 처리에 준비가 되어 있는지에 대해 그 저장 장치를 주기적으로 폴링하게 할 수 있다. 이러한 폴링은 불필요할 수 있고 호스트 시스템에 의해 소비되는 전력 낭비를 나타낼 수 있다. 일 실시예에서, 본 시스템은 주기적으로 저장 매체를 폴링하고 데이터베이스를 업데이트하는 프로세스를 구현할 수 있다. 데이터베이스는 저장 장치들이 실제로 이동식 매체를 가지고 있는지 또는 이들이 이동식 매체를 가지고 있음을 거짓으로 보고하는지를 나타내는 저장 장치들의 목록일 수 있다. 또 다른 실시예에서, 본 시스템은 저장 장치가 거짓으로 이동식 매체를 나타내는지를 판정하기 위해 소정의 발견적 테스팅(some heuristically testing)을 적용할 수 있다. 또 다른 실시예에서, 이러한 저장 장치와 관련하여 데이터를 공유하기 위해 원격 측정 서비스가 호스트들의 그룹에 의해 사용될 수 있다.

Description

USB 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR HOST DETECTION OF USB ASYNCHRONOUS NOTIFICATION CAPABILITY}
최소 전력 소비는 보다 새로운 컴퓨팅 플랫폼에서 주목을 받는 점점 중요해지는 특징이다. 최초의 범용 직렬 버스(USB) 대용량 저장소- 예를 들어, BOT(Bulk-Only Transport) 및 UASP(USB Attached SCSI Protocol) - 규격의 몇몇 측면은 이러한 경향과 상충되는 경향이 있다. USB 대용량 저장 장치에 연결된 호스트 시스템의 전체적인 전력 소비는 이들 기존 규격의 작은 수정만으로 개선될 수 있다.
이제, USB 3.0 규격의 일부로서, 버스 활용 및 전력 효율을 개선하기 위한 새로운 기능이 추가되었다. USB 3.0을 통해 연결되는 소정의 장치들은 이제 (비동기식으로) 그 장치의 준비상태를 호스트에 알릴 수 있는 기능을 가질 수 있어, 연결된 각각의 모든 장치를 폴링할 필요는 없다. 또한, BOT 및 UASP 규격의 수정은 이동식 매체를 가진 장치에서의 매체 상태 변화를 검출하는 또 다른 유형의 폴링을 필요없게 하는 경향이 있다.
이하에서는 본 명세서에 기술된 몇몇 측면들의 기본적인 이해를 제공하기 위해 본 발명의 간단한 개요가 제공된다. 본 개요는 청구 대상의 광범위한 개요는 아니다. 청구 대상의 핵심 요소 또는 중요 사항을 확인하거나 본 발명의 범주를 기술하려는 것도 아니다. 본 개요의 단 하나의 목적은 이후에 제시되는 보다 상세한 설명에 대한 서두로서 청구 대상의 몇몇 개념들을 간단한 형식으로 제공하려는 것이다.
자신들이 이동식 매체를 가지고 있음을 호스트 시스템에 거짓으로 및/또는 부정확하게 보고할 수 있는 레거시 저장 장치들을 검출하는 시스템 및 방법이 개시된다. 이러한 거짓 또는 부정확한 보고는 호스트 시스템으로 하여금 저장 장치가 I/O 처리를 위한 준비가 되어 있는지에 대해 그 저장 장치를 주기적으로 폴링하게 할 수 있다. 이러한 폴링은 불필요할 수 있고 호스트 시스템에 의해 소비되는 전력 낭비를 나타낼 수 있다. 일 실시예에서, 본 시스템은 주기적으로 저장 매체를 폴링하고 데이터베이스를 업데이트하는 프로세스를 구현할 수 있다. 데이터베이스는 저장 장치들이 실제로 이동식 매체를 가지고 있는지 또는 이동식 매체를 가지고 있는 것으로 거짓으로 보고하는지를 나타내는 저장 장치들의 목록일 수 있다. 또 다른 실시예에서, 본 시스템은 저장 장치가 거짓으로 이동식 매체를 나타내는지를 판정하기 위해 소정의 발견적 테스팅(some heuristically testing)을 적용할 수 있다. 또 다른 실시예에서, 이러한 저장 장치와 관련하여 데이터를 공유하기 위해 원격 측정 서비스(telemetry service)가 호스트들의 그룹에 의해 사용될 수 있다.
일 실시예에서, 저장 장치를 검출하는 방법이 개시되는데, 이 저장 장치는 호스트 시스템에 연결되어, 상기 저장 장치는 연관된 메타데이터를 포함하며, 상기 연관된 메타데이터는 이러한 저장 장치가 이동식 매체를 가지고 있음을 거짓으로 나타낼 수 있고, 상기 방법은 상기 호스트 시스템으로부터 매체 폴링 메시지를 제1 저장 장치로 전송하는 단계- 상기 매체 폴링 메시지는 상기 제1 저장 장치가 준비되어 있는지 여부를 질의함 -와, 상기 제1 저장 장치가 준비되어 있지 않은 것으로 응답하는 경우, 상기 제1 저장 장치가 실제로 이동식 매체를 가지고 있는 것으로 데이터베이스를 업데이트하는 단계를 포함한다.
또 다른 실시예에서, 호스트 시스템에서 저장 장치를 검출하는 시스템이 개시되는데, 이 저장 장치는 연관된 메타데이터를 더 포함하고, 연관된 메타데이터는 상기 저장 장치가 이동식 저장 매체를 포함하고 있는 것으로 거짓으로 나타낼 수 있고, 상기 시스템은 대용량 저장 드라이버- 상기 대용량 저장 드라이버는 상기 저장 장치에 연결될 수 있고 상기 저장 장치로 메시지를 전송할 수 있고 그로부터 메시지를 수신할 수 있음 -와, 블록 저장 드라이버- 상기 블록 저장 드라이버는 상기 대용량 저장 드라이버에 연결되고 상기 저장 장치로 메시지를 전송하고 그로부터 메시지를 수신할 수 있음 -와, 프로세서- 상기 프로세서는 매체 폴링 메시지를 상기 저장 장치로 전송할 수 있고 실제로 이동식 매체를 가지고 있지 않은 상기 저장 장치로의 추가적인 매체 폴링 메시지를 차단할 수 있음 -를 포함한다.
본 시스템의 다른 특징 및 측면은 본 출원 내의 도면과 연계하여 이하의 상세한 설명에서 제시된다.
도면을 참조하여 예시적인 실시예들이 설명된다. 본 명세서에서 개시된 실시예 및 도면은 제한적이 아닌 예시적인 것으로 간주되어야 한다.
도 1은 전형적인 호스트/허브/주변 장치 구성 환경의 일 실시예를 나타낸다.
도 2는 개정된 BOS 규격 하에서 이루어질 수 있는 처리의 하나의 예시적인 실시예를 나타낸다.
도 3은 본 출원의 원리에 따라 행해진 본 시스템의 하나의 예시적인 실시예를 나타낸다.
도 4는 이동식 매체를 가지고 있거나 가지고 있지 않을 수 있는 레거시 장치들 간을 식별 및/또는 구별하는 프로세스의 하나의 흐름도를 나타낸다.
도 5는 자신들의 이동식 매체 상태를 잘못 보고할 수 있는 장치들을 식별하고 전력 절약을 구현하는데 도움을 주는 프로세스의 또 다른 흐름도를 나타낸다.
도 6은 참가 호스트 시스템으로부터 원격측정 데이터를 수집 및 취합하는 프로세스의 또 다른 흐름도를 나타낸다.
본 명세서에서 사용되는 "컴포넌트", "시스템", "인터페이스", "컨트롤러" 등의 용어는 컴퓨터 관련 엔티티, 즉 하드웨어, (예를 들어, 실행) 소프트웨어, 및/또는 펌웨어를 지칭하려 한다. 예를 들어, 이들 용어 중 어떠한 용어도 프로세서에서 실행되는 프로세스, 프로세서, 객체, 실행가능한 것, 프로그램 및/또는 컴퓨터일 수 있다. 예를 들어, 서버에서 실행되는 애플리케이션 및 서버 모두는 컴포넌트 및/또는 컨트롤러일 수 있다. 하나 이상의 컴포넌트/컨트롤러는 프로세스 내에 상주할 수 있고 컴포넌트/컨트롤러는 하나의 컴퓨터 상에 로컬화될 수 있고 및/또는 둘 이상의 컴퓨터 간에 분배될 수 있다.
본 발명은 도면을 참조하여 설명되며, 전반에 걸쳐 유사한 요소를 나타내기 위해 유사한 참조 번호가 사용된다. 이하의 설명에서, 설명을 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부사항이 설명된다. 그러나, 본 발명은 이러한 특정 세부사항없이도 구현될 수 있음은 자명하다. 다른 예로, 잘 알려져 있는 구조 및 장치는 본 발명의 설명을 용이하게 하기 위해 블록도 형태로 도시되어 있다.
도입부
일 실시예에서, 전력은 USB 플래시 드라이브에 대한 매체 상태의 폴링을 제거함으로서 절약될 수 있다. 그러나, 이를 안전하게 행하는 것은 다음과 같은 이유로 불가능할 수 있다. 즉, (1) 대다수의 USB 플래시 드라이브(UFD)는 이동식 매체를 부정확하게 보고하고, (2) 실제로 이동식 매체를 포함하는 장치(예를 들어, USB 플래시 카드 리더 장치)로부터 이들 UFD를 명확하게 구별할 수 있는 방법이 현재 존재하지 않기 때문이다. 이것은 특히 레거시 UFD가 사실은 이러한 이동식 매체를 가지고 있지 않은 경우에도 이들이 이동식 매체를 포함한 것으로 (그러나, 거짓으로) 표현한 경우에 그러하다.
이제, 보다 새로운 비-레거시 장치는 새로운 비동기식 통지 메카니즘을 구현할 수 있는데, 이 비동기식 통지 메카니즘을 통해 호스트는 어떠한 기능 장애 또는 데이터 손실을 감수하지 않고도 매체 폴링을 명확하게 그리고 안전하게 제거할 수 있다. 그러나, 이것은 현재 사용되고 있는 모든 레거시 장치들에 대해 (현재 및 가까운 장래에도) 해당되지 않는다.
이 상황을 이해하기 위해, 도 1은 전형적인 USB 3.0 호스트/허브/주변 장치 구성의 하나의 아키텍처 다이아그램(100)의 하나의 예시적인 실시예이다. 도 1에서 알 수 있는 바와 같이, 새로운 초고속 버스는 종래의 USB 2.0 버스와 함께 동작하는 듀얼 버스 아키텍처의 일부이다. 컨트롤러(102)는 I/O 처리 및/또는 기능을 제공하기 위해 USB 3.0 호스트(104)와 통신할 수 있다. USB 3.0 호스트(104)는 레거시 USB 2.0 호스트(106)에 대한 호환가능 지원을 제공할 뿐만 아니라, 새로운 초고속 호스트 성능(108)도 제공할 수 있다. 컨트롤러(102)는 시스템의 CPU, I/O 컨트롤러, 또는 이러한 컨트롤러 하드웨어 및/또는 소프트웨어 컴포넌트의 조합일 수 있다.
호스트는 다수의 포트(예를 들어, 110a,110b)를 포함할 수 있다. 포트는 복수의 허브(112)에 연결될 수 있다. 허브(112)는 레거시 허브(114) 및 새로운(예를 들어, 초고속) 허브(116)를 더 포함할 수 있다. 이어서 이러한 허브는 비-초고속 기능(122) 및 초고속 기능(124)의 집합을 포함할 수 있는 복수의 USB 주변 장치(120)에 연결될 수 있다.
이러한 주변 장치는 다양한 유형의 레거시 장치, 예를 들어, (이동식 매체를 가지고 있음을 호스트에게 거짓으로 보고할 수 있는) 이동식 매체를 가지지 않는 USB 플래시 드라이버(126), 또는 실제 이동식 매체 컴포넌트(예를 들어, 메모리 카드(130))를 가진 카메라(128)를 포함할 수 있다.
도 2는 개정된 BOT 또는 UASP 규격 하에서 발생할 수 있는 처리에 대한 예시적인 실시예(200)를 나타낸다. USB 대용량 저장 장치(208)는 이동식일 수 있거나 그렇지 않을 수 있는 저장 매체(216), 처리 장치(214) 및 인터페이스 번들(210)을 포함할 수 있다. 인터페이스 번들(210)은 레거시(예를 들어, 기존 BOT 및 UASP 규격의) 인터페이스 IN 엔드 포인트(EP)(210a) 및 OUT EP(210b), 및 상태의 비동기식 통보를 위해 새롭게 도입된 인터럽트 엔드 포인트(INT EP(212))를 더 포함할 수 있다.
예를 들어, 이동식 저장소가 제거되었는지 또는 대체되었는지에 대한 상태의 변경은 통지 프로세스(206a)에서 호스트 시스템에게, 예를 들어 US 대용량 저장 드라이버(206)에게 비동기식으로 알려질 수 있다. 이러한 통지는 비동기식으로 블록 저장 드라이버(204)에, 구체적으로 매체 변경 프로세스(204a)에 더 전달될 수 있다. 끝으로, 이러한 상태의 변경은 상위 레벨 파일 시스템 스택(202)에 보고될 수 있다.
앞서 설명한 바와 같이, 레거시 장치들은 새로운 규격에 따라 구현되지 않기 때문에 이들 장치는 이러한 상태의 변경을 비동기식으로 보고하지 않을 것이다. 사실, 레거시 장치는 BOT/UASP 규격에 대해 새롭게 제안된 변경 이전의 장치이거나 이들 변경을 구현하지 않도록 선택된 장치일 수 있다. 또한, 레거시 장치들은 이들이 이동식 매체를 가지고 있지 않은 경우에도 이러한 이동식 매체를 가지고 있는 것으로 거짓으로 보고할 수 있다(따라서, 지속적인 폴링이 요구된다). 잠재적인 전력 절약을 위한 다양한 측면을 보다 잘 이해하기 위해, 다양한 컴포넌트들에 대한 영향을 고려하는 것이 바람직할 수 있다.
허브 및 컨트롤러 고려사항
USB 장치 트리의 각 노드에 대한 전력을 관리하는 동안, 특정 노드 그 자체가 중지(suspend)될 수 있기 전에 그 특정 노드의 모든 자식이 중지되어야 한다. 그런 다음, 호스트 컨트롤러에 연결된 장치들의 전체 트리가 중지된 경우, 컨트롤러 그 자신이 중지될 수 있다. 중지된 컨트롤러는 그 자신의 회로를 활성 상태로 유지시키는 것과 연관된 전력을 절약할 수 있을 뿐만 아니라, 컨트롤러가 발생시킬 수 있는 인터럽트의 중단으로 인해 호스트 CPU 전력 소비를 줄일 수 있다.
CPU 고려사항
이동식 매체를 갖는 장치의 현재 매체 상태에 대해 호스트를 최신으로 유지하기 위해, 시스템은 TEST UNIT READY(TUR) 커맨드(예를 들어, 매체 폴링 메시지)를 이용하여 주기적인 폴링을 행할 수 있다. 이것은 이러한 활동으로 인해 CPU가 보다 높은 전력 상태로 유지되게 하는 경향이 있게 하는 타이머 절차 호출의 상황에서의 코드의 주기적인 실행에 대응한다. 전체적인 시스템 전력 소비를 최소화하도록 시도하기 위해, 다음과 같은 사항을 고려하는 것이 바람직할 수 있다.
(1) 이동식 매체를 보고하는 장치는 매체 상태의 임의의 변화를 검출하기 위해 TEST UNIT READY 커맨드를 통해 호스트에 의해 연속적으로 폴링된다. 이것은 실제 데이터 I/O의 부재시에도 불필요하게 USB 장치 트리, 호스트 컨트롤러 및 호스트 CPU를 활성 상태로 유지시키기 위한 추가의 전력을 소비하는 경향이 있다.
(2) 보다 많은 전력 최적화된 호스트에 연결된 경우, 버스를 통해 전력공급되는 대용량 저장 장치는 이전의 호스트 버전에서보다 긴 시간 동안 중지 상태로 있는 자신을 발견할 수 있다. 중지 상태로 있는 이러한 기간은 장치가 강건한 동작을 유지하는데 요구되는 기간을 초과할 수 있다. 이러한 환경에서, 장치는 가끔의 포트 재개를 요구할 수 있는데, 포트는 장치가 소정 집합의 내부 하우스키핑 태스크를 완료할 수 있도록 하는 시간 동안 활성 상태로 유지된다.
주변장치/장치 유형
본 명세서에 개시된 실시예에서, 기술된 메카니즘을 구현함으로써 그 보상으로 얻어지는 이점은 장치의 유형에 따라 달라질 수 있다. 결과에 영향을 미칠 수 있는 두 가지 유형의 이동성, 즉 장치 이동성 및 매체 이동성을 폭넓게 고려하는 것이 유익할 수 있다. 이하의 표 1은 이들 두 가지 속성의 순열을 나타내는 다양한 장치 유형의 예를 보여준다.
Figure pct00001
카테고리 1 및 3의 장치는 TEST UNIT READY 폴링의 제거로부터 이득을 명확히 얻는 경향이 있는 반면, 카테고리 2 및 4의 장치는 대체로 포트를 원격으로 기동시키는 기능으로부터 이득을 얻을 수 있다. 또한, 카테고리 1 장치의 사용자는 전력을 보존하기 위해 단순히 장치들의 플러그를 뽑을 수 있는 반면, 카테고리 3 장치의 사용자는 동일한 선택을 할 수 있는 여건이 안될 수도 있다는 것을 고려하는 것이 바람직할 수 있다. 카테고리 3 장치는 이동식 매체 슬롯이 비어있는지 여부와 상관없이 시스템 전력을 소비한다는 것도 이해할 수 있다. 또한, 정규 USB 플래시 드라이브는 카테고리 1 및 2 모두에 속하는 것으로 나타난다는 것도 이해할 수 있다. 이것이 참인 이유는 대부분의 기존 플래시 드라이브가 (이동식 저장 매체의 진정한 탑재부가 아님에도 불구하고) 이동식 매체 비트(RMB)에 대해 비트 값 1(TRUE)을 지정하고 따라서 TEST UNIT READY 폴링을 야기하기 때문이다. 그러나, 몇몇 플래시 드라이브는 (예를 들어, 이동식 매체 비트(RMB)를 0으로 설정(즉, RMB=0)함으로써) 그들의 비-이동식 매체를 정확히 나타내고 (부정확한 값(RMB=1)을 보고하는 장치에 비해) 부착된 호스트 시스템에 대해 보다 많은 전력을 보존하는데 효과적인 도움을 준다.
실시예
설명한 바와 같이, USB 플래시 드라이브의 이러한 불필요한 매체 폴링을 안전하게 제거함으로써 얻어지는 이점은 여러가지가 있다.
(1) 연속적인 폴링은 장치를 활성 상태로 유지시키는 경향이 있으며, 그에 따라 선택적 중지를 하지 못하게 한다. 폴링의 제거는 장치 자체가 유휴 상태에 도달할 수 있게 해주며 따라서 저전력 비활성 상태에 놓이게 할 수 있다.
(2) 이것은 장치뿐만 아니라 전체 USB 장치 트리에 영향을 미칠 수 있는데, 그 이유는 USB 호스트 컨트롤러 외에도 모든 중간 허브 장치는 활성 상태로 유지되는 경향이 있기 때문이다.
(3) 연속적인 폴링 DPC 타이머는 CPU를 불필요하게 활성 상태로 유지시키는 경향이 있을 수 있다.
따라서, 실제로 이동가능한 판독기 장치 대 USB 플래시 드라이브의 정확한 식별을 행함으로써 폴링을 안전하게 제거하는 것이 바람직할 수 있다. 또한, 부정확한 식별은 매체 변경을 놓치게 할 수 있고, 따라서 아마도 저하된 기능 및 데이터 손상을 야기할 수 있다.
도 3은 (USB 3.0 표준 등에 영향을 미칠 수 있는) 본 시스템(300)의 하나의 예시적인 실시예를 나타낸다. 레거시 USB 대용량 저장 장치(308)는 저장 매체(316), 처리 컴포넌트(314) 및 인터페이스 번들(310)(레거시 인터페이스 IN EP(310a) 및 OUT EP(310b)를 더 포함할 수 있음)을 포함한다.
이 경우, 레거시 장치가 자신이 이동식 매체를 가지고 있는지 여부에 대해 부정확하게 지정할지라도, 시스템은 (도달하지 않을) 비동기식 통지를 기대하는 USB 대용량 저장 드라이버(306)에 대해 이러한 비동기식 통지를 여전히 이용할 수 있다. 시스템이 저장 장치로부터 비동기식 통지 메시지를 수신하는 경우, 그 시스템은 저장 장치가 레거시 장치가 아닌 것으로 나타내는 경향이 있으며, 시스템은 그에 따라 그 장치를 취급할 수 있는데, 이러한 취급은, 이러한 통지 메시지를 수신하는 경우, 시스템이 저장 장치의 ID 또는 저장 장치와 연관된 다른 메타데이터를 이용하여 그 저장 장치가 실제로 이동식 매체를 가지고 있는 것으로 메타데이터를 업데이트하는 것을 포함할 수 있다. 이러한 데이터 및/또는 데이터베이스는 원격 측정(telemetry)을 통해 또는 그와 다른 방식을 통해 다른 호스트 시스템과 더 공유될 수 있다.
상태는 매체 변경 프로세스(304a)를 통해 블록 저장 드라이버(304)로 비동기식으로 전달될 수 있다. 끝으로, 이러한 상태는 상위 레벨 파일 시스템 드라이버 스택(302)으로 더 전달될 수 있다. 블록 저장 드라이버(304)는 매체 변경 프로세스를 실행하거나 또는 연결된 저장 장치의 상태를 검출하고 I/O 처리를 위한 그들의 준비 상태 또는 RMB 상태에 대해 질의하기 위한 몇몇 충분한 프로세스를 실행하기 위한 프로세서를 더 포함할 수 있다(또는 충분한 처리 능력에 대한 액세스를 가질 수 있다).
이러한 전력 절약 비동기식 상태 업데이트를 행하기 위해, 본 시스템에 대한 몇몇 실시예는 이동식 매체의 정확한 지정 및/또는 검출을 개선하기 위한 다양한 기법 및/또는 방법을 이용할 수 있다.
단지 하나의 예로서, 제품을 선적하기 전에 데이터를 수집할 수 있다. 먼저, 가능한 많은 공지된(레거시 또는 그와 다른 방식의) USB 플래시 드라이브 대 판독기 장치를 식별할 수 있다. 이들 판독기 및 장치에 관한 메타데이터는 탐색가능 테이블 또는 다른 적절한 데이터베이스에 배치될 수 있다. 이 데이터베이스는 (예를 들어, 초기 테이블로서) 참조될 수 있고 시스템은 정확한 폴링 행위를 적절히 적용할 수 있다.
그러나, 이러한 초기 테이블/데이터베이스는 완전하지 않을 뿐만 아니라 진보적이지도 않아 제한을 받을 수 있기 때문에, 호스트 시스템이 아래와 같이 그것을 더 정제(refine)하기 위한 소정의 추종(follow on) 휴리스틱 프로시저 및/또는 방법을 사용할 수 있다.
(1) 초기화 동안, RMB=1를 보고하는 몇몇 또는 모든 레거시 장치(LUN)에 TUR 커맨드(또는 장치가 I/O 처리를 할 준비가 되어 있음을 나타내는 몇몇 다른 "준비" 커맨드)를 한번 발행한다. 적어도 하나의 LUN이 NOT READY - MEDIA NOT PRESENT로 TUR에 응답하는 경우, 이것은 실제로 이동식 매체를 가진 플래시 카드 판독기 또는 다른 장치이다. 이 후 시스템 또는 호스트는 그것을 그에 따라 처리할 수 있는데, 이러한 처리는 그 장치에 대한 폴링을 비활성화하고 및/또는 장치가 실제로 이동식 매체를 가지고 있는 것으로 테이블/데이터베이스를 업데이트하는 것을 포함한다.
(2) 모두가 READY를 보고하는 경우, 정확한 확인을 위해 추가의 증거가 바람직할 수 있다. 원격 측정 보고시, 장치의 하드웨어 ID(VID 및 PID), LUN의 개수 및 각 LUN이 READY 대 NOT READY를 보고한 횟수를 포함하도록 데이터를 업로드, 공유할 수 있다(예를 들어, 다른 호스트와 장치 에러터 데이터베이스를 업데이트할 수 있다)(이것이 바람직한 이유는 RMB=0 장치들 중 몇몇 적은 일부는 가끔 및 간헐적으로 NOT READY를 보고하기 때문이다).
(3) 원격 측정 샘플 데이터를 수집하고 초기 테이블/데이터베이스에 포함되지 않을 수 있는 매우 가능성이 있는 UFD 대 플래시 카드 판독기 장치를 식별한다. 이러한 검토 프로세스는 고려사항으로부터 임의의 곤란 상황 또는 변칙 사항을 제거하는데 도움을 줄 수 있다.
(4) 이러한 새로운 정보를 주기적으로 적용하여 테이블/데이터베이스를 업데이트하고 드라이버를 동적으로 업데이트한다.
설명한 바와 같이, 비동기식 통지를 구현하는 새로운 USB 대용량 저장 장치는 호스트에 노출된 인터페이스 디스크립터 번들(interface descriptor bundle)에 삽입된 추가의 인터럽트 엔드포인트를 통해 그와 같이 행할 수 있다. 이러한 새로운 비동기식 통지 기능을 알지 못하는 레거시(또는 다운 레벨) 호스트는 추가의 인터럽트 엔드포인트를 단순히 무시할 수 있고 이 새로운 기능의 이점을 이용하지 못할 수 있다.
그러나, 보다 새로운 호스트 시스템만이 이러한 새로운 비동기식 통지 메카니즘을 인식 및 이용할 수 있다. 이 호스트 시스템은 새로운 인터럽트 엔드포인트를 선택하고 장치가 활성 D0 전력 상태로 유지되는 한 이 엔드포인트에 대해 영속적이고 미해결된 요청을 유지함으로써 그와 같이 행한다. 이 요청은 장치에 의해 임의의 매체 변경 이벤트가 있을 시 장치에 의해 해결된다. 이 후, 호스트는 최근에 해결된 요청을 대체하기 위한 또 다른 인터럽트 엔드포인트 요청을 재발행한다. 장치가 D3 전력 상태로 천이함에 따라, 호스트 시스템은 인터럽트 엔드포인트에 대한 이러한 미해결된 요청을 취소한다. 이어서, 장치에서 로컬로 검출된 매체 변경에 대응하는 장치 가동 시그널링으로 인해 또는 호스트 개시 천이로 인해, 장치가 활성 D0 전력 상태로 재개함에 따라, 호스트는 영속적인 인터럽트 엔드포인트 비동기식 통지 요청을 다시 설정한다.
몇몇 처리 실시예
도 4는 이동식 매체를 가질 수 있거나 가지지 않을 수 있는 레거시 장치들 간을 식별 및/또는 구별하는데 도움을 주고 또한 전력을 절약하는데 도움을 줄 수 있는 처리의 하나의 흐름도 실시예(400)를 나타낸다.
402에서, 장치는 허브에 삽입될 수 있고, 이후, 404에서 시스템은 인쿼리(Inquiry) 커맨드(즉, 몇몇 준비 커맨드)를 발행할 수 있다. 장치가 자신은 이동식 매체를 가지고 있지 않는 것으로 보고하는 경우(RMB=0), 414에서 시스템은 전력 절약 경로로 천이할 수 있는데, 이 경우 장치 유휴 타이머는 재설정될 수 있다. 시스템은 장치가 연결해제된다는 보고를 수신할 수 있는데, 이 경우 424에서 장치는 더 이상 고려되지 않고 제거될 수 있다.
그러나, 시스템으로부터 I/O 요청이 있는 경우, 414에서 장치 유휴 타이머는 요청이 서빙되는 동안 재설정될 수 있다. 이러한 I/O 요청이 없는 경우, 420에서 장치의 유휴 타이머는 만료될 수 있다. 그런 경우, 422에서 전력을 절약하기 위해 장치 포트를 중지시킬 수 있다.
그러나, 406에서, 장치가 RMB=1를 보고하는 경우(즉, 장치가 이동식 매체를 가지고 있는 것으로 보고하는 경우), 시스템은 장치가 실제로 이동식 매체를 가지고 있는지 여부를 확인하기 위해 몇몇 휴리스틱 테스팅을 적용할 수 있다. 일 실시예에서, 이러한 휴리스틱 테스팅은 전술한 바와 같이 진행될 수 있다. 휴리스틱에 따르면 장치가 비이동식 매체를 가지는 경우, 프로세스는 414로 천이될 수 있고 그에 따라 진행될 수 있다.
그와 달리, 시스템은 장치가 (예를 들어, BOT/UASP 규격 확장 또는 이러한 비동기식 통지를 지원할 수 있는 임의의 다른 규격에 따라) 비동기식 매체 통지를 구현하는지 여부에 대해 더 문의할 수 있다. 그러한 경우, 시스템은 414로 천이할 수 있다. 그와 달리, 시스템은 주기적인 TUR 폴링을 구현할 수 있고 장치는 유휴 상태가 되지 않을 수 있다.
도 5는 전력 절약을 구현하는데(또한 자신들의 이동식 매체 상태를 잘못 보고할 수 있는 장치들에 대한 메타데이터를 업데이트 및 정제하는데) 도움이 될 수 있는 다른 프로세스(예를 들어, 도 4 등)를 보완할 수 있는 또 다른 흐름 실시예(500)이다. 502에서, 장치가 삽입될 수 있다. 504에서 시스템은 특정 장치의 상태를 확인하기 위해 테이블/데이터베이스를 참조할 수 있다. 506에서 장치가 이동식 매체를 가지지 않는 것으로 나열된 경우, 508에서 시스템은 그 장치에 대한 TUR 폴링을 비활성할 수 있다.
이와 달리, 데이터베이스 엔트리가 없는 경우, 시스템은 510으로 천이할 수 있고 장치가 연결해제되는지 여부를 검출할 수 있다. 그러한 경우, 시스템은 장치 제거된 상태(518)로 천이할 수 있다. 그와 달리, 시스템은 TUR 폴링에 대한 장치의 응답을 모니터링할 수 있다. 매체가 없다는 것을 나타내는 응답이 있는 경우, 516에서 시스템은 장치에 대한 데이터를 수집할 수 있고 원격 측정을 통해 장치에 대해 보고할 수 있다. 그렇지 않으면, 시스템은 TUR 폴링에 대한 장치의 응답을 계속 모니터링할 수 있고 그에 따라 진행할 수 있다.
도 6은 참가 호스트 시스템으로부터 데이터를 수집 및 취합하는 (예를 들어, 아마도 서버 시스템에서 오프라인으로 실행되는) 프로세스의 또 다른 흐름도 실시예(600)이다. 이것은 자신의 이동식 매체 상태를 잘못 식별할 수 있는 장치들을 적절히 확인하기 위해 테이블/데이터베이스를 업데이트하는데 사용될 수 있다. 이 프로세스는 오프라인으로 또는 다른 방식으로 진행될 수 있다. 602에서, 시스템은 원격 측정 데이터를 검토하여 장치 데이터베이스를 업데이트할 수 있다. 그와 같이 업데이트된 데이터베이스를 통해, 604에서 시스템은 임의의 비이동식 매체가 있는지 여부를 확인할 수 있다. 그러한 경우, 606에서 시스템은 특정 장치의 조작에 대해 모든 업데이트가능 호스트 시스템에 알리기 위한 목적으로 데이터베이스를 업데이트할 수 있다. 보고할 새로운 장치가 있는 경우, 시스템은 이러한 정보를 데이터베이스에 전달할 수 있다. 소정의 시간 이후, 이 데이터베이스는 적절한 업데이트 프로세스(예를 들어, 윈도우 업데이트®컴퓨터 서비스)를 통해 모든 업데이트가능 호스트 시스템과 공유될 수 있다.
앞서 설명한 것들은 본 발명의 예를 포함한다. 물론, 청구대상을 설명하기 위해 컴포넌트들 또는 방법들의 모든 인지가능한 조합을 설명할 수는 없지만, 당업자라면 본 발명의 다수의 추가의 조합 및 대체 실시예들이 가능함을 알 수 있을 것이다. 따라서, 청구대상은 첨부된 청구항의 사상 및 범주 내에 속하는 이러한 모든 변경, 수정 및 변형을 포함하려 한다.
특히 전술한 컴포넌트, 장치, 회로, 시스템 등에 의해 수행되는 다양한 기능과 관련하여, 이러한 컴포넌트를 설명하기 위해 사용되는 ("수단"을 비롯하여) 용어는 달리 특별히 나타내지 않는다면, 본 명세서에서 예시되어 있는 청구대상의 측면에서의 기능을 수행하는 (비록 개시되어 있는 구조와 구조적으로 등가이지 않더라도) 개시된 컴포넌트의 특정 기능(예를 들어, 기능적으로는 등가임)을 수행하는 임의의 컴포넌트에 대응하려 한다. 이와 관련하여, 본 발명은 청구대상의 다양한 방법의 액트 및/또는 인벤트를 수행하는 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체 및 시스템을 포함함을 알 수 있을 것이다.
또한, 본 발명의 특정 특징은 몇몇 실시예들 중 하나의 실시예에 대해서만 설명될 수 있지만, 이러한 특징은 임의의 주어진 또는 특정 애플리케이션에 바람직하고 유리할 수 있도록 다른 실시예의 하나 이상의 다른 특징과 결합될 수 있다. 또한, "포함한다(includes)" 및 "포함하는"라는 용어 및 이들의 변형예가 상세한 설명 또는 청구항에 사용되는 경우, 이들 용어는 "포함하는(comprising)"라는 용어와 유사한 포함범위를 가지려 한다.

Claims (10)

  1. 호스트 시스템에 연결되어 있는 저장 장치를 검출하는 방법- 상기 저장 장치는 연관된 메타데이터를 포함하고, 상기 연관된 메타데이터는 이러한 저장 장치가 이동식 매체를 가지고 있는 것으로 잘못 나타낼 수 있음 -으로서,
    상기 호스트 시스템으로부터 매체 폴링 메시지(media polling message)를 제1 저장 장치로 전송하는 단계- 상기 매체 폴링 메시지는 상기 제1 저장 장치가 준비되어 있는지 여부에 대해 질의함 -와,
    상기 제1 저장 장치가 준비되어 있지 않은 것으로 응답하는 경우, 상기 제1 저장 장치는 실제로 이동식 매체를 가지고 있는 것으로 데이터베이스를 업데이트하는 단계
    를 포함하는 저장 장치 검출 방법.
  2. 제1항에 있어서,
    상기 연관된 메타데이터는 (RMB=0) 상태 및 (RMB=1) 상태 중 하나를 포함하는
    저장 장치 검출 방법.
  3. 제1항에 있어서,
    상기 저장 장치로부터 비동기식 통지 메시지를 수신하는 단계와,
    비동기식 통지 메시지 수신시, 상기 제1 저장 장치는 실제로 이동식 매체를 가지고 있는 것으로 데이터베이스를 업데이트하는 단계
    를 더 포함하는 저장 장치 검출 방법.
  4. 제1항에 있어서,
    상기 제1 저장 장치가 실제로 이동식 매체를 가지고 있지 않은 경우 상기 호스트 시스템에 의한 상기 제1 저장 장치로의 추가 매체 폴링을 디스에이블링하는 단계를 더 포함하는
    저장 장치 검출 방법.
  5. 제1항에 있어서,
    상기 제1 저장 장치에 대한 엔트리에 대해 이동식 매체를 잘못 나타내는 연관된 메타데이터를 포함하는 공지된 저장 장치의 데이터베이스를 탐색하는 단계- 상기 제1 저장 장치는 상기 호스트 시스템에 연결됨 -와,
    상기 데이터베이스에서 상기 제1 저장 장치에 대한 엔트리가 존재하는 경우, 상기 호스트에 의한 상기 제1 저장 장치에 대한 폴링을 디스에이블링하는 단계
    를 더 포함하는 저장 장치 검출 방법.
  6. 제1항에 있어서,
    이동식 매체를 잘못 나타내는 연관된 메타데이터를 포함하는 저장 장치에 대한 데이터를 제2 호스트 시스템과 공유하는 단계를 더 포함하는 저장 장치 검출 방법.
  7. 제6항에 있어서,
    상기 데이터를 공유하는 단계는
    상기 데이터를 원격 측정 서버에 보고하는 단계와,
    장치 에러터 데이터베이스(device errata database)를 업데이트하는 단계와,
    업데이트 프로세스를 통해 상기 장치 에러터 데이터베이스를 호스트 시스템에 푸싱하는 단계
    를 더 포함하는 저장 장치 검출 방법.
  8. 호스트 시스템에서 저장 장치를 검출하는 시스템으로서,
    상기 저장 장치는 연관된 메타데이터를 더 포함하고, 상기 연관된 메타데이터는 상기 저장 장치가 이동식 저장 매체를 포함하는 것으로 잘못 나타낼 수 있고,
    상기 시스템은
    대용량 저장 드라이버- 상기 대용량 저장 드라이버는 상기 저장 장치에 연결될 수 있고 메시지를 상기 저장 장치로 전송할 수 있고 또한 그로부터 수신할 수 있음 -와,
    블록 저장 드라이버- 상기 블록 저장 드라이버는 상기 대용량 저장 드라이버에 연결되고 메시지를 상기 저장 장치로 전송할 수 있고 또한 그로부터 수신할 수 있음 -와,
    프로세서- 상기 프로세서는 매체 폴링 메시지를 상기 저장 장치로 전송할 수 있고 실제로 이동식 매체를 가지지 않은 상기 저장 장치로의 추가 매체 폴링 메시지를 디스에이블링함 -
    를 포함하는 시스템.
  9. 제8항에 있어서,
    상기 프로세서는
    상기 저장 장치에 대한 엔트리에 대해 이동식 매체를 잘못 나타내는 연관된 메타데이터를 포함하는 공지된 저장 장치의 데이터베이스를 탐색할 수 있고- 상기 저장 장치는 상기 호스트 시스템에 연결됨 -,
    상기 데이터베이스에서 실제로 이동식 매체를 가지고 있지 않는 상기 저장 장치에 대한 엔트리가 존재하는 경우, 상기 호스트에 의한 상기 저장 장치에 대한 폴링을 디스에이블링할 수 있는
    시스템.
  10. 제9항에 있어서,
    상기 프로세서는
    이동식 매체를 잘못 나타내는 연관된 메타데이터를 포함하는 저장 장치에 대한 데이터를 제2 호스트 시스템과 공유할 수 있고,
    상기 데이터를 원격 측정 서버에 보고할 수 있고,
    장치 에러터 데이터베이스(device errata database)를 업데이트할 수 있으며,
    업데이트 프로세스를 통해 상기 장치 에러터 데이터베이스를 호스트 시스템에 푸싱할 수 있는
    시스템.
KR1020157024235A 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법 KR102219218B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217004722A KR102270531B1 (ko) 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/789,088 2013-03-07
US13/789,088 US9589010B2 (en) 2013-03-07 2013-03-07 Systems and methods for host detection of USB asynchronous notification capability
PCT/US2014/020060 WO2014137959A1 (en) 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004722A Division KR102270531B1 (ko) 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150123827A true KR20150123827A (ko) 2015-11-04
KR102219218B1 KR102219218B1 (ko) 2021-02-23

Family

ID=50382614

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217004722A KR102270531B1 (ko) 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법
KR1020157024235A KR102219218B1 (ko) 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217004722A KR102270531B1 (ko) 2013-03-07 2014-03-04 Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법

Country Status (11)

Country Link
US (2) US9589010B2 (ko)
EP (1) EP2965215B1 (ko)
JP (1) JP6293798B2 (ko)
KR (2) KR102270531B1 (ko)
CN (1) CN105264511B (ko)
AU (1) AU2014226091B2 (ko)
BR (1) BR112015020052B1 (ko)
CA (1) CA2898753C (ko)
MX (1) MX348640B (ko)
RU (1) RU2667033C2 (ko)
WO (1) WO2014137959A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589010B2 (en) 2013-03-07 2017-03-07 Microsoft Technology Licensing, Llc Systems and methods for host detection of USB asynchronous notification capability
CN106168903A (zh) * 2016-06-30 2016-11-30 国云科技股份有限公司 一种管理usb和自动挂载到虚拟机的方法
US10725939B2 (en) * 2017-02-13 2020-07-28 Microchip Technology Incorporated Host-detecting USB hub
US10705157B2 (en) * 2017-08-09 2020-07-07 Microsoft Technology Licensing, Llc Testing system for an electrical cable
RU2685063C1 (ru) * 2018-10-09 2019-04-16 Акционерное общество "Актив-софт" (АО "Актив-софт") Система для программирования и тестирования usb устройств
RU187402U1 (ru) * 2018-11-27 2019-03-05 Акционерное общество "Актив-софт" (АО "Актив-софт") Аппарат для маркировки и тестирования usb-устройств
RU2694143C1 (ru) * 2018-11-27 2019-07-09 Акционерное общество "Актив-софт" (АО "Актив-софт") Аппарат для маркировки и тестирования usb-устройств
CN111431952B (zh) * 2019-01-09 2022-06-03 阿里巴巴集团控股有限公司 消息推送方法、装置及系统,计算机存储介质和电子设备
CN111813727B (zh) * 2020-08-21 2020-12-08 南京沁恒微电子股份有限公司 一种实时高效的usb数据传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050061336A1 (en) * 2003-09-24 2005-03-24 Goetz Steven M. Apparatus and method for serving medical device application content to a remote computing device
US20060112018A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Synchronizing contents of removable storage devices with a multimedia network
US8285909B2 (en) * 2007-12-07 2012-10-09 Intel Corporation Hardware assisted endpoint idleness detection for USB host controllers

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532535B1 (en) * 1998-02-24 2003-03-11 Adaptec, Inc. Method for managing primary and secondary storage devices in an intelligent backup and restoring system
US6567921B1 (en) 1999-01-25 2003-05-20 Agere Systems, Inc. Asynchronous low power mode bus controller circuit and method of low power mode operation
US6546437B1 (en) * 1999-03-18 2003-04-08 Intel Corporation Communication between a computer and a peripheral with legacy failure control mechanism
US7707321B2 (en) 1999-08-04 2010-04-27 Super Talent Electronics, Inc. Chained DMA for low-power extended USB flash device without polling
US7819750B2 (en) * 1999-10-06 2010-10-26 Igt USB software architecture in a gaming machine
CN100418341C (zh) * 2003-06-30 2008-09-10 汤姆森特许公司 用于视频记录或再现设备的可移除介质存储设备
US7124248B2 (en) * 2003-10-20 2006-10-17 Intel Corporation Current media status determination for a storage device
US20080071963A1 (en) 2003-11-22 2008-03-20 Super Talent Electronics Inc. Express card with extended USB interface
JP3792230B2 (ja) * 2004-01-23 2006-07-05 松下電器産業株式会社 メディアドライブおよびコンピュータシステムとメディアドライブ制御方法
US8200862B2 (en) 2004-03-17 2012-06-12 Super Talent Electronics, Inc. Low-power USB flash card reader using bulk-pipe streaming with UAS command re-ordering and channel separation
DE602005013514D1 (de) 2004-05-28 2009-05-07 Thomson Licensing Verfahren zur verwaltung des einsteckens oder entfernens einer speicherkarte in oder aus einem kartenleser und vorrichtung zum gebrauch bei besagtem verfahren
RU2348992C2 (ru) * 2004-07-12 2009-03-10 Кабусики Кайся Тосиба Запоминающее устройство и ведущее устройство
US8478860B2 (en) * 2006-03-14 2013-07-02 Strong Bear L.L.C. Device detection system for monitoring use of removable media in networked computers
US20080189554A1 (en) 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US8655463B2 (en) 2007-05-18 2014-02-18 Sandisk Technologies Inc. Method for avoiding refreshing a database of metadata associated with digital media content
US8510494B2 (en) 2009-12-24 2013-08-13 St-Ericsson Sa USB 3.0 support in mobile platform with USB 2.0 interface
JP2012008846A (ja) * 2010-06-25 2012-01-12 Yokogawa Electric Corp 記憶装置を備えたデバイス
US9589010B2 (en) * 2013-03-07 2017-03-07 Microsoft Technology Licensing, Llc Systems and methods for host detection of USB asynchronous notification capability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050061336A1 (en) * 2003-09-24 2005-03-24 Goetz Steven M. Apparatus and method for serving medical device application content to a remote computing device
US20060112018A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Synchronizing contents of removable storage devices with a multimedia network
US8285909B2 (en) * 2007-12-07 2012-10-09 Intel Corporation Hardware assisted endpoint idleness detection for USB host controllers

Also Published As

Publication number Publication date
CA2898753C (en) 2021-03-16
US20170177659A1 (en) 2017-06-22
US20140258225A1 (en) 2014-09-11
US10366077B2 (en) 2019-07-30
MX348640B (es) 2017-06-22
JP6293798B2 (ja) 2018-03-14
KR102270531B1 (ko) 2021-06-28
MX2015011836A (es) 2016-01-08
KR20210021136A (ko) 2021-02-24
AU2014226091A1 (en) 2015-08-06
BR112015020052A8 (pt) 2019-11-12
CN105264511B (zh) 2018-03-30
BR112015020052A2 (pt) 2017-07-18
RU2015137806A (ru) 2017-03-10
JP2016510920A (ja) 2016-04-11
CN105264511A (zh) 2016-01-20
CA2898753A1 (en) 2014-09-12
BR112015020052B1 (pt) 2021-12-21
US9589010B2 (en) 2017-03-07
AU2014226091B2 (en) 2019-01-17
EP2965215B1 (en) 2017-05-03
WO2014137959A1 (en) 2014-09-12
RU2015137806A3 (ko) 2018-03-07
KR102219218B1 (ko) 2021-02-23
EP2965215A1 (en) 2016-01-13
RU2667033C2 (ru) 2018-09-13

Similar Documents

Publication Publication Date Title
KR102219218B1 (ko) Usb 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법
CN1194281C (zh) 用于监视和控制电源管理资源的系统和方法
CN100361087C (zh) 确定操作系统状态的方法和系统
JP5585654B2 (ja) 情報処理システム、管理装置、および情報処理装置の管理方法
CN102959502A (zh) 在系统中提供异步事件通知的方法
EP2479679A2 (en) Computer system and method for inheriting HBA identifier of PCI card
US8255928B2 (en) Automated termination of selected software applications in response system events
CN102098182B (zh) 分布式设备的配置恢复方法及分布式设备
JP5418134B2 (ja) 情報端末およびコンピュータプログラム
CN101814280A (zh) 一种电子设备及其显示面板的驱动方法
US7124248B2 (en) Current media status determination for a storage device
CN105900067A (zh) 指示储存器装置的重建状态
CN204044694U (zh) 一种低成本扩展式gpu刀片服务器
CN105094715A (zh) 电子设备
JP2004334535A (ja) ストレージシステムの制御方法、ストレージシステム、及びストレージ装置
CN115599617B (zh) 总线检测方法、装置、服务器及电子设备
EP2674833A1 (en) Method, system and device for a usb data card with u disk function to enter sleep state
CN115756619A (zh) 硬盘启动方法、装置、设备、介质及程序产品
CN108234804B (zh) 打印装置及其控制方法
US9678557B2 (en) Electricity saving method for USB data transmission system and host device
CN117785744A (zh) 设备驱动程序的实现方法及装置
CN105786743A (zh) 一种数据通信系统通用usb接口
JP2018097758A (ja) デバイス制御装置、デバイス制御方法およびプログラム

Legal Events

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