KR102270531B1 - Systems and methods for host detection of usb asynchronous notification capability - Google Patents

Systems and methods for host detection of usb asynchronous notification capability Download PDF

Info

Publication number
KR102270531B1
KR102270531B1 KR1020217004722A KR20217004722A KR102270531B1 KR 102270531 B1 KR102270531 B1 KR 102270531B1 KR 1020217004722 A KR1020217004722 A KR 1020217004722A KR 20217004722 A KR20217004722 A KR 20217004722A KR 102270531 B1 KR102270531 B1 KR 102270531B1
Authority
KR
South Korea
Prior art keywords
storage device
media
storage devices
falsely
storage
Prior art date
Application number
KR1020217004722A
Other languages
Korean (ko)
Other versions
KR20210021136A (en
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20210021136A publication Critical patent/KR20210021136A/en
Application granted granted Critical
Publication of KR102270531B1 publication Critical patent/KR102270531B1/en

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/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
    • 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
    • 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
    • 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

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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

자신들이 이동식 매체를 가지고 있음을 호스트 시스템에 거짓으로 및/또는 부정확하게 보고할 수 있는 레거시 저장 장치들을 검출하는 시스템 및 방법이 개시된다. 이러한 거짓 또는 부정확한 보고는 호스트 시스템으로 하여금 저장 장치가 I/O 처리에 준비가 되어 있는지에 대해 그 저장 장치를 주기적으로 폴링하게 할 수 있다. 이러한 폴링은 불필요할 수 있고 호스트 시스템에 의해 소비되는 전력 낭비를 나타낼 수 있다. 일 실시예에서, 본 시스템은 주기적으로 저장 매체를 폴링하고 데이터베이스를 업데이트하는 프로세스를 구현할 수 있다. 데이터베이스는 저장 장치들이 진실로 이동식 매체를 가지고 있는지 또는 이들이 이동식 매체를 가지고 있음을 거짓으로 보고하는지를 나타내는 저장 장치들의 목록일 수 있다. 또 다른 실시예에서, 본 시스템은 저장 장치가 거짓으로 이동식 매체를 나타내는지를 판정하기 위해 소정의 발견적 테스팅(some heuristically testing)을 적용할 수 있다. 또 다른 실시예에서, 이러한 저장 장치와 관련하여 데이터를 공유하기 위해 원격 측정 서비스가 호스트들의 그룹에 의해 사용될 수 있다.A system and method are disclosed for detecting legacy storage devices that may falsely and/or inaccurately report to a host system that they have removable media. Such false or inaccurate reports can cause the host system to periodically poll the storage device to see if it is ready for I/O processing. Such polling may be unnecessary and may indicate a waste of power consumed by the host system. In one embodiment, the system may implement a process for periodically polling the storage medium and updating the database. The database may be a list of storage devices indicating whether the storage devices truly have removable media or falsely report that they have removable media. In another embodiment, the system may apply some heuristically testing to determine if a storage device falsely represents a removable medium. In another embodiment, a telemetry service may be used by a group of hosts to share data related to such storage devices.

Description

USB 비동기식 통지 기능의 호스트 검출을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR HOST DETECTION OF USB ASYNCHRONOUS NOTIFICATION CAPABILITY}SYSTEMS AND METHODS FOR HOST DETECTION OF USB ASYNCHRONOUS NOTIFICATION CAPABILITY

최소 전력 소비는 보다 새로운 컴퓨팅 플랫폼에서 주목을 받는 점점 중요해지는 특징이다. 최초의 범용 직렬 버스(USB) 대용량 저장소- 예를 들어, BOT(Bulk-Only Transport) 및 UASP(USB Attached SCSI Protocol) - 규격의 몇몇 측면은 이러한 경향과 상충되는 경향이 있다. USB 대용량 저장 장치에 연결된 호스트 시스템의 전체적인 전력 소비는 이들 기존 규격의 작은 수정만으로 개선될 수 있다.Minimal power consumption is an increasingly important feature that is gaining attention in newer computing platforms. Some aspects of the first Universal Serial Bus (USB) mass storage - such as Bulk-Only Transport (BOT) and USB Attached SCSI Protocol (UASP) - tend to conflict with this trend. The overall power consumption of a host system connected to a USB mass storage device can be improved with only minor modifications to these existing specifications.

이제, USB 3.0 규격의 일부로서, 버스 활용 및 전력 효율을 개선하기 위한 새로운 기능이 추가되었다. USB 3.0을 통해 연결되는 소정의 장치들은 이제 (비동기식으로) 그 장치의 준비상태를 호스트에 알릴 수 있는 기능을 가질 수 있어, 연결된 각각의 모든 장치를 폴링할 필요는 없다. 또한, BOT 및 UASP 규격의 수정은 이동식 매체를 가진 장치에서의 매체 상태 변화를 검출하는 또 다른 유형의 폴링을 필요없게 하는 경향이 있다.Now, as part of the USB 3.0 specification, new features have been added to improve bus utilization and power efficiency. Certain devices connected via USB 3.0 may now have the ability to (asynchronously) notify the host of the device's readiness, eliminating the need to poll each and every connected device. Also, modifications to the BOT and UASP specifications tend to obviate the need for another type of polling to detect media state changes in devices with removable media.

이하에서는 본 명세서에 기술된 몇몇 측면들의 기본적인 이해를 제공하기 위해 본 발명의 간단한 개요가 제공된다. 본 개요는 청구 대상의 광범위한 개요는 아니다. 청구 대상의 핵심 요소 또는 중요 사항을 확인하거나 본 발명의 범주를 기술하려는 것도 아니다. 본 개요의 단 하나의 목적은 이후에 제시되는 보다 상세한 설명에 대한 서두로서 청구 대상의 몇몇 개념들을 간단한 형식으로 제공하려는 것이다.A brief summary of the invention is provided below in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the claimed subject matter. It is not intended to identify key elements or critical points of the claimed subject matter or to delineate the scope of the invention. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.

자신들이 이동식 매체를 가지고 있음을 호스트 시스템에 거짓으로 및/또는 부정확하게 보고할 수 있는 레거시 저장 장치들을 검출하는 시스템 및 방법이 개시된다. 이러한 거짓 또는 부정확한 보고는 호스트 시스템으로 하여금 저장 장치가 I/O 처리를 위한 준비가 되어 있는지에 대해 그 저장 장치를 주기적으로 폴링하게 할 수 있다. 이러한 폴링은 불필요할 수 있고 호스트 시스템에 의해 소비되는 전력 낭비를 나타낼 수 있다. 일 실시예에서, 본 시스템은 주기적으로 저장 매체를 폴링하고 데이터베이스를 업데이트하는 프로세스를 구현할 수 있다. 데이터베이스는 저장 장치들이 진실로 이동식 매체를 가지고 있는지 또는 이동식 매체를 가지고 있는 것으로 거짓으로 보고하는지를 나타내는 저장 장치들의 목록일 수 있다. 또 다른 실시예에서, 본 시스템은 저장 장치가 거짓으로 이동식 매체를 나타내는지를 판정하기 위해 소정의 발견적 테스팅(some heuristically testing)을 적용할 수 있다. 또 다른 실시예에서, 이러한 저장 장치와 관련하여 데이터를 공유하기 위해 원격 측정 서비스(telemetry service)가 호스트들의 그룹에 의해 사용될 수 있다.A system and method are disclosed for detecting legacy storage devices that may falsely and/or inaccurately report to a host system that they have removable media. Such false or inaccurate reports may cause the host system to periodically poll the storage device to see if the storage device is ready for I/O processing. Such polling may be unnecessary and may indicate a waste of power consumed by the host system. In one embodiment, the system may implement a process for periodically polling the storage medium and updating the database. The database may be a list of storage devices indicating whether the storage devices truly have removable media or falsely report that they have removable media. In another embodiment, the system may apply some heuristically testing to determine if a storage device falsely represents a removable medium. In another embodiment, a telemetry service may be used by a group of hosts to share data related to such storage devices.

일 실시예에서, 저장 장치를 검출하는 방법이 개시되는데, 이 저장 장치는 호스트 시스템에 연결되어, 상기 저장 장치는 연관된 메타데이터를 포함하며, 상기 연관된 메타데이터는 이러한 저장 장치가 이동식 매체를 가지고 있음을 거짓으로 나타낼 수 있고, 상기 방법은 상기 호스트 시스템으로부터 매체 폴링 메시지를 제1 저장 장치로 전송하는 단계- 상기 매체 폴링 메시지는 상기 제1 저장 장치가 준비되어 있는지 여부를 질의함 -와, 상기 제1 저장 장치가 준비되어 있지 않은 것으로 응답하는 경우, 상기 제1 저장 장치가 진실로 이동식 매체를 가지고 있는 것으로 데이터베이스를 업데이트하는 단계를 포함한다. In one embodiment, a method of detecting a storage device is disclosed, wherein the storage device is coupled to a host system, wherein the storage device includes associated metadata, wherein the storage device has a removable medium. , the method includes sending a media polling message from the host system to a first storage device, the media polling message querying whether the first storage device is ready; 1 if the storage device responds that it is not ready, then updating the database that the first storage device does indeed have a removable medium.

또 다른 실시예에서, 호스트 시스템에서 저장 장치를 검출하는 시스템이 개시되는데, 이 저장 장치는 연관된 메타데이터를 더 포함하고, 연관된 메타데이터는 상기 저장 장치가 이동식 저장 매체를 포함하고 있는 것으로 거짓으로 나타낼 수 있고, 상기 시스템은 대용량 저장 드라이버- 상기 대용량 저장 드라이버는 상기 저장 장치에 연결될 수 있고 상기 저장 장치로 메시지를 전송할 수 있고 그로부터 메시지를 수신할 수 있음 -와, 블록 저장 드라이버- 상기 블록 저장 드라이버는 상기 대용량 저장 드라이버에 연결되고 상기 저장 장치로 메시지를 전송하고 그로부터 메시지를 수신할 수 있음 -와, 프로세서- 상기 프로세서는 매체 폴링 메시지를 상기 저장 장치로 전송할 수 있고 진실로 이동식 매체를 가지고 있지 않은 상기 저장 장치로의 추가적인 매체 폴링 메시지를 차단할 수 있음 -를 포함한다.In yet another embodiment, a system for detecting a storage device in a host system is disclosed, the storage device further comprising associated metadata, the associated metadata falsely indicating that the storage device comprises a removable storage medium. wherein the system comprises a mass storage driver, the mass storage driver capable of being coupled to the storage device and capable of sending messages to and receiving messages from the storage device, and a block storage driver, the block storage driver comprising: a processor coupled to the mass storage driver and capable of sending messages to and receiving messages from the storage device, wherein the processor is capable of sending a media poll message to the storage device and is capable of sending messages to the storage device and not having truly removable media. may block additional media polling messages to the device.

본 시스템의 다른 특징 및 측면은 본 출원 내의 도면과 연계하여 이하의 상세한 설명에서 제시된다. Other features and aspects of the system are set forth in the detailed description below in connection with the drawings within this application.

도면을 참조하여 예시적인 실시예들이 설명된다. 본 명세서에서 개시된 실시예 및 도면은 제한적이 아닌 예시적인 것으로 간주되어야 한다.Exemplary embodiments are described with reference to the drawings. The embodiments and drawings disclosed herein are to be regarded as illustrative and not restrictive.

도 1은 전형적인 호스트/허브/주변 장치 구성 환경의 일 실시예를 나타낸다.
도 2는 개정된 BOS 규격 하에서 이루어질 수 있는 처리의 하나의 예시적인 실시예를 나타낸다.
도 3은 본 출원의 원리에 따라 행해진 본 시스템의 하나의 예시적인 실시예를 나타낸다.
도 4는 이동식 매체를 가지고 있거나 가지고 있지 않을 수 있는 레거시 장치들 간을 식별 및/또는 구별하는 프로세스의 하나의 흐름도를 나타낸다.
도 5는 자신들의 이동식 매체 상태를 잘못 보고할 수 있는 장치들을 식별하고 전력 절약을 구현하는데 도움을 주는 프로세스의 또 다른 흐름도를 나타낸다.
도 6은 참가 호스트 시스템으로부터 원격측정 데이터를 수집 및 취합하는 프로세스의 또 다른 흐름도를 나타낸다.
1 illustrates one embodiment of a typical host/hub/peripheral configuration environment.
2 shows one exemplary embodiment of the processing that may occur under the revised BOS specification.
3 shows one exemplary embodiment of the present system made in accordance with the principles of the present application.
4 depicts one flow diagram of a process for identifying and/or discriminating between legacy devices that may or may not have removable media.
5 shows another flow diagram of a process to help implement power savings and identify devices that may misreport their removable media status.
6 shows another flow diagram of a process for collecting and aggregating telemetry data from participating host systems.

본 명세서에서 사용되는 "컴포넌트", "시스템", "인터페이스", "컨트롤러" 등의 용어는 컴퓨터 관련 엔티티, 즉 하드웨어, (예를 들어, 실행) 소프트웨어, 및/또는 펌웨어를 지칭하려 한다. 예를 들어, 이들 용어 중 어떠한 용어도 프로세서에서 실행되는 프로세스, 프로세서, 객체, 실행가능한 것, 프로그램 및/또는 컴퓨터일 수 있다. 예를 들어, 서버에서 실행되는 애플리케이션 및 서버 모두는 컴포넌트 및/또는 컨트롤러일 수 있다. 하나 이상의 컴포넌트/컨트롤러는 프로세스 내에 상주할 수 있고 컴포넌트/컨트롤러는 하나의 컴퓨터 상에 로컬화될 수 있고 및/또는 둘 이상의 컴퓨터 간에 분배될 수 있다.As used herein, the terms “component,” “system,” “interface,” “controller,” and the like, are intended to refer to computer-related entities: hardware, (eg, executable) software, and/or firmware. For example, any of these terms may refer to a process running on a processor, a processor, an object, an executable, a program, and/or a computer. For example, both an application running on a server and a server may be a component and/or a controller. One or more components/controllers may reside within a process and components/controllers may be localized on one computer and/or distributed between two or more computers.

본 발명은 도면을 참조하여 설명되며, 전반에 걸쳐 유사한 요소를 나타내기 위해 유사한 참조 번호가 사용된다. 이하의 설명에서, 설명을 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부사항이 설명된다. 그러나, 본 발명은 이러한 특정 세부사항없이도 구현될 수 있음은 자명하다. 다른 예로, 잘 알려져 있는 구조 및 장치는 본 발명의 설명을 용이하게 하기 위해 블록도 형태로 도시되어 있다.BRIEF DESCRIPTION OF THE DRAWINGS The invention is described with reference to the drawings, wherein like reference numerals are used to denote like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the present invention.

도입부intro

일 실시예에서, 전력은 USB 플래시 드라이브에 대한 매체 상태의 폴링을 제거함으로서 절약될 수 있다. 그러나, 이를 안전하게 행하는 것은 다음과 같은 이유로 불가능할 수 있다. 즉, (1) 대다수의 USB 플래시 드라이브(UFD)는 이동식 매체를 부정확하게 보고하고, (2) 진실로 이동식 매체를 포함하는 장치(예를 들어, USB 플래시 카드 리더 장치)로부터 이들 UFD를 명확하게 구별할 수 있는 방법이 현재 존재하지 않기 때문이다. 이것은 특히 레거시 UFD가 사실은 이러한 이동식 매체를 가지고 있지 않은 경우에도 이들이 이동식 매체를 포함한 것으로 (그러나, 거짓으로) 표현한 경우에 그러하다.In one embodiment, power may be saved by eliminating polling of media status to the USB flash drive. However, doing this safely may be impossible for the following reasons. That is, (1) the majority of USB flash drives (UFDs) report removable media incorrectly, and (2) clearly distinguish these UFDs from devices that do indeed contain removable media (eg, USB flash card reader devices). Because there is currently no way to do it. This is especially true where legacy UFDs are represented (but falsely) as containing removable media even when they do not actually have such removable media.

이제, 보다 새로운 비-레거시 장치는 새로운 비동기식 통지 메카니즘을 구현할 수 있는데, 이 비동기식 통지 메카니즘을 통해 호스트는 어떠한 기능 장애 또는 데이터 손실을 감수하지 않고도 매체 폴링을 명확하게 그리고 안전하게 제거할 수 있다. 그러나, 이것은 현재 사용되고 있는 모든 레거시 장치들에 대해 (현재 및 가까운 장래에도) 해당되지 않는다.Now, newer non-legacy devices can implement a new asynchronous notification mechanism, which allows the host to explicitly and safely eliminate media polling without risking any malfunction or data loss. However, this is not the case (now and in the near future) for all legacy devices currently in use.

이 상황을 이해하기 위해, 도 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 컨트롤러, 또는 이러한 컨트롤러 하드웨어 및/또는 소프트웨어 컴포넌트의 조합일 수 있다.To understand this situation, Figure 1 is one exemplary embodiment of one architecture diagram 100 of a typical USB 3.0 host/hub/peripheral configuration. As can be seen in Figure 1, the new high-speed bus is part of a dual-bus architecture that works with the conventional USB 2.0 bus. The controller 102 may communicate with a USB 3.0 host 104 to provide I/O processing and/or functionality. The USB 3.0 host 104 may provide compatible support for legacy USB 2.0 hosts 106 as well as new ultra-fast host capabilities 108 . The controller 102 may be a CPU, an I/O controller of the system, or a combination of such controller hardware and/or software components.

호스트는 다수의 포트(예를 들어, 110a,110b)를 포함할 수 있다. 포트는 복수의 허브(112)에 연결될 수 있다. 허브(112)는 레거시 허브(114) 및 새로운(예를 들어, 초고속) 허브(116)를 더 포함할 수 있다. 이어서 이러한 허브는 비-초고속 기능(122) 및 초고속 기능(124)의 집합을 포함할 수 있는 복수의 USB 주변 장치(120)에 연결될 수 있다.A host may include multiple ports (eg, 110a, 110b). The ports may be connected to a plurality of hubs 112 . Hub 112 may further include legacy hub 114 and new (eg, ultra-fast) hub 116 . This hub may then be connected to a plurality of USB peripherals 120 , which may include a set of non-ultra-high-speed functions 122 and ultra-high-speed functions 124 .

이러한 주변 장치는 다양한 유형의 레거시 장치, 예를 들어, (이동식 매체를 가지고 있음을 호스트에게 거짓으로 보고할 수 있는) 이동식 매체를 가지지 않는 USB 플래시 드라이버(126), 또는 실제 이동식 매체 컴포넌트(예를 들어, 메모리 카드(130))를 가진 카메라(128)를 포함할 수 있다. These peripherals may be various types of legacy devices, such as USB flash drivers 126 that do not have removable media (which may falsely report to the host that they have removable media), or actual removable media components (e.g. For example, it may include a camera 128 with a memory card 130 ).

도 2는 개정된 BOT 또는 UASP 규격 하에서 발생할 수 있는 처리에 대한 예시적인 실시예(200)를 나타낸다. USB 대용량 저장 장치(208)는 이동식일 수 있거나 그렇지 않을 수 있는 저장 매체(216), 처리 장치(214) 및 인터페이스 번들(210)을 포함할 수 있다. 인터페이스 번들(210)은 레거시(예를 들어, 기존 BOT 및 UASP 규격의) 인터페이스 IN 엔드 포인트(EP)(210a) 및 OUT EP(210b), 및 상태의 비동기식 통보를 위해 새롭게 도입된 인터럽트 엔드 포인트(INT EP(212))를 더 포함할 수 있다. 2 shows an exemplary embodiment 200 of processing that may occur under the revised BOT or UASP specification. The USB mass storage device 208 may include a storage medium 216 , a processing unit 214 , and an interface bundle 210 , which may or may not be removable. Interface bundle 210 includes legacy (e.g., existing BOT and UASP specifications) interfaces IN endpoints (EPs) 210a and OUT EPs 210b, and newly introduced interrupt endpoints for asynchronous notification of status ( INT EP 212).

예를 들어, 이동식 저장소가 제거되었는지 또는 대체되었는지에 대한 상태의 변경은 통지 프로세스(206a)에서 호스트 시스템에게, 예를 들어 US 대용량 저장 드라이버(206)에게 비동기식으로 알려질 수 있다. 이러한 통지는 비동기식으로 블록 저장 드라이버(204)에, 구체적으로 매체 변경 프로세스(204a)에 더 전달될 수 있다. 끝으로, 이러한 상태의 변경은 상위 레벨 파일 시스템 스택(202)에 보고될 수 있다.For example, a change in state as to whether removable storage has been removed or replaced can be asynchronously notified to the host system in the notification process 206a, such as to the US mass storage driver 206 . This notification may be further communicated asynchronously to the block storage driver 204 , specifically to the media change process 204a. Finally, this change of state may be reported to the higher level file system stack 202 .

앞서 설명한 바와 같이, 레거시 장치들은 새로운 규격에 따라 구현되지 않기 때문에 이들 장치는 이러한 상태의 변경을 비동기식으로 보고하지 않을 것이다. 사실, 레거시 장치는 BOT/UASP 규격에 대해 새롭게 제안된 변경 이전의 장치이거나 이들 변경을 구현하지 않도록 선택된 장치일 수 있다. 또한, 레거시 장치들은 이들이 이동식 매체를 가지고 있지 않은 경우에도 이러한 이동식 매체를 가지고 있는 것으로 거짓으로 보고할 수 있다(따라서, 지속적인 폴링이 요구된다). 잠재적인 전력 절약을 위한 다양한 측면을 보다 잘 이해하기 위해, 다양한 컴포넌트들에 대한 영향을 고려하는 것이 바람직할 수 있다.As previously discussed, legacy devices will not asynchronously report this change of state because they are not implemented according to the new specification. In fact, a legacy device may be a device prior to the newly proposed changes to the BOT/UASP specification, or a device chosen not to implement these changes. Also, legacy devices may falsely report that they have removable media even if they do not (thus requiring constant polling). To better understand the various aspects for potential power savings, it may be desirable to consider the impact on the various components.

허브 및 컨트롤러 고려사항Hub and Controller Considerations

USB 장치 트리의 각 노드에 대한 전력을 관리하는 동안, 특정 노드 그 자체가 중지(suspend)될 수 있기 전에 그 특정 노드의 모든 자식이 중지되어야 한다. 그런 다음, 호스트 컨트롤러에 연결된 장치들의 전체 트리가 중지된 경우, 컨트롤러 그 자신이 중지될 수 있다. 중지된 컨트롤러는 그 자신의 회로를 활성 상태로 유지시키는 것과 연관된 전력을 절약할 수 있을 뿐만 아니라, 컨트롤러가 발생시킬 수 있는 인터럽트의 중단으로 인해 호스트 CPU 전력 소비를 줄일 수 있다.While managing power for each node in the USB device tree, all children of that specific node must be stopped before the specific node itself can be suspended. Then, if the entire tree of devices connected to the host controller is stopped, the controller itself can be stopped. A stopped controller may not only conserve power associated with keeping its own circuitry active, but may also reduce host CPU power consumption due to interruption of interrupts that the controller may generate.

CPU 고려사항CPU Considerations

이동식 매체를 갖는 장치의 현재 매체 상태에 대해 호스트를 최신으로 유지하기 위해, 시스템은 TEST UNIT READY(TUR) 커맨드(예를 들어, 매체 폴링 메시지)를 이용하여 주기적인 폴링을 행할 수 있다. 이것은 이러한 활동으로 인해 CPU가 보다 높은 전력 상태로 유지되게 하는 경향이 있게 하는 타이머 절차 호출의 상황에서의 코드의 주기적인 실행에 대응한다. 전체적인 시스템 전력 소비를 최소화하도록 시도하기 위해, 다음과 같은 사항을 고려하는 것이 바람직할 수 있다.To keep the host up-to-date with the current media status of devices with removable media, the system may perform periodic polling using a TEST UNIT READY (TUR) command (eg, a media poll message). This corresponds to the periodic execution of code in the context of timer procedure calls, which tends to cause the CPU to remain in a higher power state due to this activity. In an attempt to minimize overall system power consumption, it may be desirable to consider the following:

(1) 이동식 매체를 보고하는 장치는 매체 상태의 임의의 변화를 검출하기 위해 TEST UNIT READY 커맨드를 통해 호스트에 의해 연속적으로 폴링된다. 이것은 실제 데이터 I/O의 부재시에도 불필요하게 USB 장치 트리, 호스트 컨트롤러 및 호스트 CPU를 활성 상태로 유지시키기 위한 추가의 전력을 소비하는 경향이 있다.(1) Devices reporting removable media are continuously polled by the host via the TEST UNIT READY command to detect any change in media status. This tends to consume extra power to keep the USB device tree, host controller, and host CPU alive unnecessarily, even in the absence of actual data I/O.

(2) 보다 많은 전력 최적화된 호스트에 연결된 경우, 버스를 통해 전력공급되는 대용량 저장 장치는 이전의 호스트 버전에서보다 긴 시간 동안 중지 상태로 있는 자신을 발견할 수 있다. 중지 상태로 있는 이러한 기간은 장치가 강건한 동작을 유지하는데 요구되는 기간을 초과할 수 있다. 이러한 환경에서, 장치는 가끔의 포트 재개를 요구할 수 있는데, 포트는 장치가 소정 집합의 내부 하우스키핑 태스크를 완료할 수 있도록 하는 시간 동안 활성 상태로 유지된다.(2) When connected to a more power-optimized host, a mass storage device powered over the bus may find itself in a quiescent state for a longer period of time than in previous host versions. This period of inactivity may exceed the period required for the device to maintain robust operation. In such circumstances, the device may require occasional port resumption, where the port remains active for a period of time that allows the device to complete a set set of internal housekeeping tasks.

주변장치/장치 유형Peripheral/Device Type

본 명세서에 개시된 실시예에서, 기술된 메카니즘을 구현함으로써 그 보상으로 얻어지는 이점은 장치의 유형에 따라 달라질 수 있다. 결과에 영향을 미칠 수 있는 두 가지 유형의 이동성, 즉 장치 이동성 및 매체 이동성을 폭넓게 고려하는 것이 유익할 수 있다. 이하의 표 1은 이들 두 가지 속성의 순열을 나타내는 다양한 장치 유형의 예를 보여준다.In the embodiments disclosed herein, the benefits obtained as a reward for implementing the described mechanism may vary depending on the type of device. It may be beneficial to broadly consider the two types of mobility that may affect the outcome: device mobility and media mobility. Table 1 below shows examples of various device types representing permutations of these two properties.

Figure 112021019201796-pat00001
Figure 112021019201796-pat00001

카테고리 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)을 보고하는 장치에 비해) 부착된 호스트 시스템에 대해 보다 많은 전력을 보존하는데 효과적인 도움을 준다.Devices in categories 1 and 3 clearly tend to benefit from the elimination of TEST UNIT READY polling, while devices in categories 2 and 4 can generally benefit from the ability to remotely wake up ports. Also, it may be desirable to consider that a user of a Category 1 device may simply unplug the devices to conserve power, whereas a user of a Category 3 device may not be able to make the same choice. It is also understandable that Category 3 devices consume system power regardless of whether the removable media slot is empty. It is also understandable that regular USB flash drives appear to belong to both categories 1 and 2. The reason this is true is that most existing flash drives specify a bit value of 1 (TRUE) for the Removable Media bit (RMB) (even though it is not a true mount for removable storage media), thus causing a TEST UNIT READY poll. . However, some flash drives correctly represent their non-removable media (eg, by setting the removable media bit (RMB) to 0 (ie RMB=0)) and report an incorrect value (RMB=1). It effectively helps conserve more power for the attached host system (compared to the device).

일 실시예one embodiment

설명한 바와 같이, USB 플래시 드라이브의 이러한 불필요한 매체 폴링을 안전하게 제거함으로써 얻어지는 이점은 여러가지가 있다.As discussed, there are a number of benefits to be gained by safely removing this unnecessary media polling of a USB flash drive.

(1) 연속적인 폴링은 장치를 활성 상태로 유지시키는 경향이 있으며, 그에 따라 선택적 중지를 하지 못하게 한다. 폴링의 제거는 장치 자체가 유휴 상태에 도달할 수 있게 해주며 따라서 저전력 비활성 상태에 놓이게 할 수 있다.(1) Continuous polling tends to keep the device active, thus preventing selective quiescing. Elimination of polling allows the device itself to reach an idle state and thus put it into a low-power inactive state.

(2) 이것은 장치뿐만 아니라 전체 USB 장치 트리에 영향을 미칠 수 있는데, 그 이유는 USB 호스트 컨트롤러 외에도 모든 중간 허브 장치는 활성 상태로 유지되는 경향이 있기 때문이다.(2) This can affect not only devices, but the entire USB device tree, since all intermediate hub devices besides the USB host controller tend to remain active.

(3) 연속적인 폴링 DPC 타이머는 CPU를 불필요하게 활성 상태로 유지시키는 경향이 있을 수 있다.(3) Continuously polling DPC timers may tend to keep the CPU unnecessarily active.

따라서, 진실로 이동가능한 판독기 장치 대 USB 플래시 드라이브의 정확한 식별을 행함으로써 폴링을 안전하게 제거하는 것이 바람직할 수 있다. 또한, 부정확한 식별은 매체 변경을 놓치게 할 수 있고, 따라서 아마도 저하된 기능 및 데이터 손상을 야기할 수 있다.Thus, it may be desirable to safely eliminate polling by making an accurate identification of a truly removable reader device versus a USB flash drive. Also, incorrect identification may result in missed media changes, thus possibly resulting in degraded functionality and data corruption.

도 3은 (USB 3.0 표준 등에 영향을 미칠 수 있는) 본 시스템(300)의 하나의 예시적인 실시예를 나타낸다. 레거시 USB 대용량 저장 장치(308)는 저장 매체(316), 처리 컴포넌트(314) 및 인터페이스 번들(310)(레거시 인터페이스 IN EP(310a) 및 OUT EP(310b)를 더 포함할 수 있음)을 포함한다.3 shows one exemplary embodiment of the present system 300 (which may affect the USB 3.0 standard, etc.). The legacy USB mass storage device 308 includes a storage medium 316 , a processing component 314 , and an interface bundle 310 (which may further include legacy interfaces IN EP 310a and OUT EP 310b ). .

이 경우, 레거시 장치가 자신이 이동식 매체를 가지고 있는지 여부에 대해 부정확하게 지정할지라도, 시스템은 (도달하지 않을) 비동기식 통지를 기대하는 USB 대용량 저장 드라이버(306)에 대해 이러한 비동기식 통지를 여전히 이용할 수 있다. 시스템이 저장 장치로부터 비동기식 통지 메시지를 수신하는 경우, 그 시스템은 저장 장치가 레거시 장치가 아닌 것으로 나타내는 경향이 있으며, 시스템은 그에 따라 그 장치를 취급할 수 있는데, 이러한 취급은, 이러한 통지 메시지를 수신하는 경우, 시스템이 저장 장치의 ID 또는 저장 장치와 연관된 다른 메타데이터를 이용하여 그 저장 장치가 진실로 이동식 매체를 가지고 있는 것으로 메타데이터를 업데이트하는 것을 포함할 수 있다. 이러한 데이터 및/또는 데이터베이스는 원격 측정(telemetry)을 통해 또는 그와 다른 방식을 통해 다른 호스트 시스템과 더 공유될 수 있다. In this case, even if the legacy device incorrectly specifies whether it has removable media or not, the system can still use this asynchronous notification for the USB mass storage driver 306 expecting an asynchronous notification (which will not be reached). . When a system receives an asynchronous notification message from a storage device, the system tends to indicate that the storage device is not a legacy device, and the system can treat the device accordingly, such that it receives this notification message. If so, the system may use the storage device's ID or other metadata associated with the storage device to update the metadata so that the storage device truly has the removable medium. Such data and/or databases may be further shared with other host systems via telemetry or otherwise.

상태는 매체 변경 프로세스(304a)를 통해 블록 저장 드라이버(304)로 비동기식으로 전달될 수 있다. 끝으로, 이러한 상태는 상위 레벨 파일 시스템 드라이버 스택(302)으로 더 전달될 수 있다. 블록 저장 드라이버(304)는 매체 변경 프로세스를 실행하거나 또는 연결된 저장 장치의 상태를 검출하고 I/O 처리를 위한 그들의 준비 상태 또는 RMB 상태에 대해 질의하기 위한 몇몇 충분한 프로세스를 실행하기 위한 프로세서를 더 포함할 수 있다(또는 충분한 처리 능력에 대한 액세스를 가질 수 있다).The state may be passed asynchronously to the block storage driver 304 via the media change process 304a. Finally, this state may be further passed to the higher level file system driver stack 302 . The block storage driver 304 further includes a processor for executing a medium change process or executing some sufficient process to detect the state of the attached storage device and query for their ready state or RMB state for I/O processing. may (or have access to sufficient processing power).

이러한 전력 절약 비동기식 상태 업데이트를 행하기 위해, 본 시스템에 대한 몇몇 실시예는 이동식 매체의 정확한 지정 및/또는 검출을 개선하기 위한 다양한 기법 및/또는 방법을 이용할 수 있다.To perform such power saving asynchronous state updates, some embodiments of the present system may utilize various techniques and/or methods to improve accurate designation and/or detection of removable media.

단지 하나의 예로서, 제품을 선적하기 전에 데이터를 수집할 수 있다. 먼저, 가능한 많은 공지된(레거시 또는 그와 다른 방식의) USB 플래시 드라이브 대 판독기 장치를 식별할 수 있다. 이들 판독기 및 장치에 관한 메타데이터는 탐색가능 테이블 또는 다른 적절한 데이터베이스에 배치될 수 있다. 이 데이터베이스는 (예를 들어, 초기 테이블로서) 참조될 수 있고 시스템은 정확한 폴링 행위를 적절히 적용할 수 있다. As just one example, data may be collected prior to shipping a product. First, you can identify as many known (legacy or otherwise) USB flash drives versus reader devices as possible. Metadata regarding these readers and devices may be placed in a searchable table or other suitable database. This database can be referenced (eg, as an initial table) and the system can apply the correct polling behavior as appropriate.

그러나, 이러한 초기 테이블/데이터베이스는 완전하지 않을 뿐만 아니라 진보적이지도 않아 제한을 받을 수 있기 때문에, 호스트 시스템이 아래와 같이 그것을 더 정제(refine)하기 위한 소정의 추종(follow on) 휴리스틱 프로시저 및/또는 방법을 사용할 수 있다.However, since this initial table/database may be limited by not being complete as well as not being advanced, some follow on heuristic procedures and/or methods for the host system to further refine it as follows: can be used

(1) 초기화 동안, RMB=1를 보고하는 몇몇 또는 모든 레거시 유닛(LUN)에 TUR 커맨드(또는 장치가 I/O 처리를 할 준비가 되어 있음을 나타내는 몇몇 다른 "준비" 커맨드)를 한번 발행한다. 적어도 하나의 LUN이 NOT READY - MEDIA NOT PRESENT로 TUR에 응답하는 경우, 이것은 진실로 이동식 매체를 가진 플래시 카드 판독기 또는 다른 장치이다. 이 후 시스템 또는 호스트는 그것을 그에 따라 처리할 수 있는데, 이러한 처리는 그 장치에 대한 폴링을 비활성화하고 및/또는 장치가 진실로 이동식 매체를 가지고 있는 것으로 테이블/데이터베이스를 업데이트하는 것을 포함한다.(1) During initialization, issue a TUR command (or some other "ready" command to indicate that the device is ready to do I/O processing) once to some or all legacy units (LUNs) reporting RMB=1 . If at least one LUN responds to TUR with NOT READY - MEDIA NOT PRESENT, then this is truly a flash card reader or other device with removable media. The system or host can then process it accordingly, including disabling polling for that device and/or updating the table/database that the device does indeed have removable media.

(2) 모두가 READY를 보고하는 경우, 정확한 확인을 위해 추가의 증거가 바람직할 수 있다. 원격 측정 보고시, 장치의 하드웨어 ID(제조사 ID(VID) 및 제품 ID(PID)), LUN의 개수 및 각 LUN이 READY 대 NOT READY를 보고한 횟수를 포함하도록 데이터를 업로드, 공유할 수 있다(예를 들어, 다른 호스트와 장치 에러터 데이터베이스를 업데이트할 수 있다)(이것이 바람직한 이유는 RMB=0 장치들 중 몇몇 적은 일부는 가끔 및 간헐적으로 NOT READY를 보고하기 때문이다).(2) If everyone reports READY, additional evidence may be desirable for accurate confirmation. When reporting telemetry, data can be uploaded and shared to include the device's hardware ID (manufacturer ID (VID) and product ID (PID)), number of LUNs, and the number of times each LUN reported READY versus NOT READY ( For example, you can update the device errorer database with other hosts) (this is desirable because some small fractions of RMB=0 devices occasionally and intermittently report NOT READY).

(3) 원격 측정 샘플 데이터를 수집하고 초기 테이블/데이터베이스에 포함되지 않을 수 있는 매우 가능성이 있는 UFD 대 플래시 카드 판독기 장치를 식별한다. 이러한 검토 프로세스는 고려사항으로부터 임의의 곤란 상황 또는 변칙 사항을 제거하는데 도움을 줄 수 있다.(3) Collect telemetry sample data and identify highly probable UFD vs. flash card reader devices that may not be included in the initial table/database. This review process can help remove any anomalies or anomalies from consideration.

(4) 이러한 새로운 정보를 주기적으로 적용하여 테이블/데이터베이스를 업데이트하고 드라이버를 동적으로 업데이트한다.(4) Apply these new information periodically to update tables/databases and dynamically update drivers.

설명한 바와 같이, 비동기식 통지를 구현하는 새로운 USB 대용량 저장 장치는 호스트에 노출된 인터페이스 디스크립터 번들(interface descriptor bundle)에 삽입된 추가의 인터럽트 엔드포인트를 통해 그와 같이 행할 수 있다. 이러한 새로운 비동기식 통지 기능을 알지 못하는 레거시(또는 다운 레벨) 호스트는 추가의 인터럽트 엔드포인트를 단순히 무시할 수 있고 이 새로운 기능의 이점을 이용하지 못할 수 있다.As described, new USB mass storage devices that implement asynchronous notifications can do so via an additional interrupt endpoint inserted into an interface descriptor bundle exposed to the host. Legacy (or down-level) hosts that are not aware of this new asynchronous notification feature may simply ignore the additional interrupt endpoints and may not benefit from this new feature.

그러나, 보다 새로운 호스트 시스템만이 이러한 새로운 비동기식 통지 메카니즘을 인식 및 이용할 수 있다. 이 호스트 시스템은 새로운 인터럽트 엔드포인트를 선택하고 장치가 활성 D0 전력 상태로 유지되는 한 이 엔드포인트에 대해 영속적이고 미해결된 요청을 유지함으로써 그와 같이 행한다. 이 요청은 장치에 의해 임의의 매체 변경 이벤트가 있을 시 장치에 의해 해결된다. 이 후, 호스트는 최근에 해결된 요청을 대체하기 위한 또 다른 인터럽트 엔드포인트 요청을 재발행한다. 장치가 D3 전력 상태로 천이함에 따라, 호스트 시스템은 인터럽트 엔드포인트에 대한 이러한 미해결된 요청을 취소한다. 이어서, 장치에서 로컬로 검출된 매체 변경에 대응하는 장치 가동 시그널링으로 인해 또는 호스트 개시 천이로 인해, 장치가 활성 D0 전력 상태로 재개함에 따라, 호스트는 영속적인 인터럽트 엔드포인트 비동기식 통지 요청을 다시 설정한다.However, only newer host systems can recognize and use this new asynchronous notification mechanism. The host system does so by selecting a new interrupt endpoint and maintaining persistent and outstanding requests to this endpoint as long as the device remains in the active DO power state. This request is resolved by the device upon any media change event by the device. After this, the host reissues another interrupt endpoint request to replace the recently resolved request. As the device transitions to the D3 power state, the host system cancels these outstanding requests to the interrupt endpoint. The host then re-establishes a persistent interrupt endpoint asynchronous notification request as the device resumes to the active DO power state, either due to device wake signaling corresponding to a locally detected media change at the device or due to a host-initiated transition. .

몇몇 처리 실시예some processing examples

도 4는 이동식 매체를 가질 수 있거나 가지지 않을 수 있는 레거시 장치들 간을 식별 및/또는 구별하는데 도움을 주고 또한 전력을 절약하는데 도움을 줄 수 있는 처리의 하나의 흐름도 실시예(400)를 나타낸다.4 illustrates one flow diagram embodiment 400 of a process that may help identify and/or differentiate between legacy devices that may or may not have removable media and may also help conserve power.

402에서, 장치는 허브에 삽입될 수 있고, 이후, 404에서 시스템은 인쿼리(Inquiry) 커맨드(즉, 몇몇 준비 커맨드)를 발행할 수 있다. 장치가 자신은 이동식 매체를 가지고 있지 않는 것으로 보고하는 경우(RMB=0), 414에서 시스템은 전력 절약 경로로 천이할 수 있는데, 이 경우 장치 유휴 타이머는 재설정될 수 있다. 시스템은 장치가 연결해제된다는 보고를 수신할 수 있는데, 이 경우 424에서 장치는 더 이상 고려되지 않고 제거될 수 있다.At 402 , the device may be inserted into the hub, and then, at 404 , the system may issue an Inquiry command (ie, some prepare commands). If the device reports that it does not have removable media (RMB=0), then at 414 the system may transition to a power saving path, in which case the device idle timer may be reset. The system may receive a report that the device is disconnected, in which case at 424 the device is no longer considered and may be removed.

그러나, 시스템으로부터 I/O 요청이 있는 경우, 414에서 장치 유휴 타이머는 요청이 서빙되는 동안 재설정될 수 있다. 이러한 I/O 요청이 없는 경우, 420에서 장치의 유휴 타이머는 만료될 수 있다. 그런 경우, 422에서 전력을 절약하기 위해 장치 포트를 중지시킬 수 있다.However, if there is an I/O request from the system, at 414 the device idle timer may be reset while the request is being served. If there is no such I/O request, the device's idle timer may expire at 420 . In that case, the device port can be stopped at 422 to save power.

그러나, 406에서, 장치가 RMB=1를 보고하는 경우(즉, 장치가 이동식 매체를 가지고 있는 것으로 보고하는 경우), 시스템은 장치가 진실로 이동식 매체를 가지고 있는지 여부를 확인하기 위해 몇몇 휴리스틱 테스팅을 적용할 수 있다. 일 실시예에서, 이러한 휴리스틱 테스팅은 전술한 바와 같이 진행될 수 있다. 휴리스틱에 따르면 장치가 비이동식 매체를 가지는 경우, 프로세스는 414로 천이될 수 있고 그에 따라 진행될 수 있다.However, at 406, if the device reports RMB=1 (i.e., the device reports that it has removable media), the system applies some heuristic testing to determine whether the device truly has removable media. can do. In one embodiment, such heuristic testing may proceed as described above. According to the heuristic, if the device has a non-removable medium, the process may transition to 414 and proceed accordingly.

그와 달리, 시스템은 장치가 (예를 들어, BOT/UASP 규격 확장 또는 이러한 비동기식 통지를 지원할 수 있는 임의의 다른 규격에 따라) 비동기식 매체 통지를 구현하는지 여부에 대해 더 문의할 수 있다. 그러한 경우, 시스템은 414로 천이할 수 있다. 그와 달리, 시스템은 주기적인 TUR 폴링을 구현할 수 있고 장치는 유휴 상태가 되지 않을 수 있다.Alternatively, the system may further inquire as to whether the device implements asynchronous media notification (eg, according to a BOT/UASP specification extension or any other specification capable of supporting such asynchronous notification). In such case, the system may transition to 414 . Alternatively, the system may implement periodic TUR polling and the device may not be idle.

도 5는 전력 절약을 구현하는데(또한 자신들의 이동식 매체 상태를 거짓 보고할 수 있는 장치들에 대한 메타데이터를 업데이트 및 정제하는데) 도움이 될 수 있는 다른 프로세스(예를 들어, 도 4 등)를 보완할 수 있는 또 다른 흐름 실시예(500)이다. 502에서, 장치가 삽입될 수 있다. 504에서 시스템은 특정 장치의 상태를 확인하기 위해 테이블/데이터베이스를 참조할 수 있다. 506에서 장치가 이동식 매체를 가지지 않는 것으로 나열된 경우, 508에서 시스템은 그 장치에 대한 TUR 폴링을 비활성할 수 있다.5 illustrates another process (eg, FIG. 4 , etc.) that may help implement power savings (and also update and refine metadata for devices that may falsely report their removable media status); Another flow embodiment 500 that can be complemented. At 502 , a device may be inserted. At 504, the system may refer to a table/database to ascertain the state of a particular device. If at 506 the device is listed as not having removable media, then at 508 the system may disable TUR polling for that device.

이와 달리, 데이터베이스 엔트리가 없는 경우, 시스템은 510으로 천이할 수 있고 장치가 연결해제되는지 여부를 검출할 수 있다. 그러한 경우, 시스템은 장치 제거된 상태(518)로 천이할 수 있다. 그와 달리, 시스템은 TUR 폴링에 대한 장치의 응답을 모니터링할 수 있다. 매체가 없다는 것을 나타내는 응답이 있는 경우, 516에서 시스템은 장치에 대한 데이터를 수집할 수 있고 원격 측정을 통해 장치에 대해 보고할 수 있다. 그렇지 않으면, 시스템은 TUR 폴링에 대한 장치의 응답을 계속 모니터링할 수 있고 그에 따라 진행할 수 있다.Alternatively, if there is no database entry, the system may transition to 510 and detect whether the device is disconnected. In such a case, the system may transition to the device removed state 518 . Alternatively, the system may monitor the device's response to the TUR poll. If there is a response indicating that there is no medium, at 516 the system can collect data about the device and report on the device via telemetry. Otherwise, the system may continue to monitor the device's response to the TUR poll and may proceed accordingly.

도 6은 참가 호스트 시스템으로부터 데이터를 수집 및 취합하는 (예를 들어, 아마도 서버 시스템에서 오프라인으로 실행되는) 프로세스의 또 다른 흐름도 실시예(600)이다. 이것은 자신의 이동식 매체 상태를 잘못 식별할 수 있는 장치들을 적절히 확인하기 위해 테이블/데이터베이스를 업데이트하는데 사용될 수 있다. 이 프로세스는 오프라인으로 또는 다른 방식으로 진행될 수 있다. 602에서, 시스템은 원격 측정 데이터를 검토하여 장치 데이터베이스를 업데이트할 수 있다. 그와 같이 업데이트된 데이터베이스를 통해, 604에서 시스템은 임의의 비이동식 매체가 있는지 여부를 확인할 수 있다. 그러한 경우, 606에서 시스템은 특정 장치의 조작에 대해 모든 업데이트가능 호스트 시스템에 알리기 위한 목적으로 데이터베이스를 업데이트할 수 있다. 보고할 새로운 장치가 있는 경우, 시스템은 이러한 정보를 데이터베이스에 전달할 수 있다. 소정의 시간 이후, 이 데이터베이스는 적절한 업데이트 프로세스(예를 들어, 윈도우 업데이트®컴퓨터 서비스)를 통해 모든 업데이트가능 호스트 시스템과 공유될 수 있다.6 is another flow diagram embodiment 600 of a process for collecting and aggregating data from participating host systems (eg, possibly executed offline on a server system). This can be used to update tables/databases to properly identify devices that may misidentify their removable media status. This process may proceed offline or otherwise. At 602 , the system may review the telemetry data to update the device database. With such an updated database, at 604 the system can ascertain whether any non-removable media is present. In such a case, at 606 the system may update the database for the purpose of notifying all updatable host systems about operation of a particular device. When there are new devices to report, the system can pass this information to the database. After a certain amount of time, this database can be shared with all updatable host systems via an appropriate update process (eg Windows Update ® computer service).

앞서 설명한 것들은 본 발명의 예를 포함한다. 물론, 청구대상을 설명하기 위해 컴포넌트들 또는 방법들의 모든 인지가능한 조합을 설명할 수는 없지만, 당업자라면 본 발명의 다수의 추가의 조합 및 대체 실시예들이 가능함을 알 수 있을 것이다. 따라서, 청구대상은 첨부된 청구항의 사상 및 범주 내에 속하는 이러한 모든 변경, 수정 및 변형을 포함하려 한다.What has been described above includes examples of the invention. Of course, it is not possible to describe every conceivable combination of components or methodologies for the purposes of describing claimed subject matter, but those skilled in the art will recognize that many further combinations and alternative embodiments of the invention are possible. Accordingly, the claimed subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.

특히 전술한 컴포넌트, 장치, 회로, 시스템 등에 의해 수행되는 다양한 기능과 관련하여, 이러한 컴포넌트를 설명하기 위해 사용되는 ("수단"을 비롯하여) 용어는 달리 특별히 나타내지 않는다면, 본 명세서에서 예시되어 있는 청구대상의 측면에서의 기능을 수행하는 (비록 개시되어 있는 구조와 구조적으로 등가이지 않더라도) 개시된 컴포넌트의 특정 기능(예를 들어, 기능적으로는 등가임)을 수행하는 임의의 컴포넌트에 대응하려 한다. 이와 관련하여, 본 발명은 청구대상의 다양한 방법의 액트 및/또는 인벤트를 수행하는 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체 및 시스템을 포함함을 알 수 있을 것이다.In particular with respect to the various functions performed by the aforementioned components, apparatus, circuits, systems, etc., the terminology (including "means") used to describe such components, unless otherwise specifically indicated, refers to the subject matter illustrated herein It is intended to correspond to any component that performs a particular function (eg, functionally equivalent) of the disclosed component (even if it is not structurally equivalent to the disclosed structure) that performs the function in terms of . In this regard, it will be appreciated that the present invention includes computer-readable media and systems having computer-executable instructions for performing the acts and/or inventions of the various methods of the claimed subject matter.

또한, 본 발명의 특정 특징은 몇몇 실시예들 중 하나의 실시예에 대해서만 설명될 수 있지만, 이러한 특징은 임의의 주어진 또는 특정 애플리케이션에 바람직하고 유리할 수 있도록 다른 실시예의 하나 이상의 다른 특징과 결합될 수 있다. 또한, "포함한다(includes)" 및 "포함하는"라는 용어 및 이들의 변형예가 상세한 설명 또는 청구항에 사용되는 경우, 이들 용어는 "포함하는(comprising)"라는 용어와 유사한 포함범위를 가지려 한다.Further, while certain features of the invention may be described with respect to only one of several embodiments, such features may be combined with one or more other features of other embodiments as may be desirable and advantageous for any given or particular application. have. Also, when the terms "includes" and "comprising" and variations thereof are used in the specification or claims, these terms are intended to have a similar scope to the term "comprising". .

Claims (20)

저장 장치를 관리하는 방법으로서,
호스트 시스템으로부터 매체 폴링 메시지(media polling message)를 제1 저장 장치로 전송하는 단계 - 상기 매체 폴링 메시지는 상기 제1 저장 장치가 준비되어 있는지 여부에 대해 질의함 - 와,
상기 제1 저장 장치가 준비되어 있지 않은 것으로 응답하는 경우, 상기 제1 저장 장치는 이동식 매체를 가지고 있다는 표시와 함께 데이터베이스를 업데이트하는 단계와,
상기 호스트 시스템으로부터 다른 매체 폴링 메시지를 제2 저장 장치로 전송하는 단계 - 상기 다른 매체 폴링 메시지는 상기 제2 저장 장치가 준비되어 있는지 여부에 대해 질의함 - 와,
상기 제2 저장 장치는 이동식 매체를 가지고 있지 않다는 표시를 수신하는 단계와,
상기 제2 저장 장치는 이동식 매체를 가지고 있지 않다는 표시에 응답하여, 상기 호스트 시스템에 의한 상기 제2 저장 장치에 대한 폴링을 디스에이블링하는 단계를 포함하는,
저장 장치 관리 방법.
A method of managing a storage device, comprising:
sending a media polling message from the host system to a first storage device, the media polling message querying whether the first storage device is ready;
if the first storage device responds that it is not ready, updating the database with an indication that the first storage device has removable media;
sending another media polling message from the host system to a second storage device, the other media polling message querying whether the second storage device is ready;
receiving an indication that the second storage device does not have removable media;
in response to an indication that the second storage device does not have removable media, disabling polling by the host system for the second storage device;
How to manage storage devices.
제1항에 있어서,
상기 매체 폴링 메시지에 대한 응답은, 상기 제1 저장 장치가 이동식 저장 매체인지 여부의 표시를 포함하는,
저장 장치 관리 방법.
According to claim 1,
wherein the response to the media poll message includes an indication of whether the first storage device is a removable storage medium;
How to manage storage devices.
제1항에 있어서,
제3 저장 장치로부터 비동기식 통지 메시지를 수신하는 단계와,
상기 제3 저장 장치로부터의 상기 비동기식 통지 메시지에 응답하여, 상기 제3 저장 장치는 이동식 매체를 가지고 있다는 표시와 함께 상기 데이터베이스를 업데이트하는 단계를 더 포함하는,
저장 장치 관리 방법.
According to claim 1,
receiving an asynchronous notification message from a third storage device;
in response to the asynchronous notification message from the third storage device, further comprising updating the database with an indication that the third storage device has removable media.
How to manage storage devices.
제1항에 있어서,
상기 데이터베이스는. 저장 장치들을 상기 저장 장치들에 대한 미디어의 이동성(removability)에 연관시키는,
저장 장치 관리 방법.
According to claim 1,
said database. associating storage devices with the mobility of media relative to the storage devices;
How to manage storage devices.
제4항에 있어서,
제3 저장 장치에 대응하는 엔트리를 상기 데이터베이스에서 탐색하는 단계와,
상기 제3 저장 장치에 대응하는 엔트리의 위치를 찾는 단계와,
상기 데이터베이스에서 상기 제3 저장 장치에 대응하는 엔트리의 위치를 찾는 것에 응답하여, 상기 호스트 시스템에 의한 상기 제3 저장 장치에 대한 폴링을 디스에이블링하는 단계를 더 포함하는,
저장 장치 관리 방법.
5. The method of claim 4,
searching the database for an entry corresponding to a third storage device;
locating an entry corresponding to the third storage device;
in response to locating an entry corresponding to the third storage device in the database, disabling polling by the host system for the third storage device;
How to manage storage devices.
제4항에 있어서,
상기 저장 장치들은 적어도 플래시 메모리 드라이브를 포함하는,
저장 장치 관리 방법.
5. The method of claim 4,
wherein the storage devices include at least a flash memory drive;
How to manage storage devices.
제1항에 있어서,
매체의 이동성을 거짓으로 나타내는 메타데이터를 제공하는 저장 장치들에 관한 데이터를 제2 호스트 시스템과 공유하는 단계를 더 포함하는,
저장 장치 관리 방법.
According to claim 1,
and sharing with a second host system data pertaining to storage devices that provide metadata falsely indicating the mobility of the medium.
How to manage storage devices.
제7항에 있어서,
상기 데이터를 공유하는 단계는, 상기 제2 호스트 시스템에, 하드웨어 ID, 제조사 ID(VID), 제품 ID(PID), 및 레거시 유닛(LUN) 중 적어도 하나를 업로드하는 단계를 포함하는,
저장 장치 관리 방법.
8. The method of claim 7,
The sharing of the data includes uploading to the second host system at least one of a hardware ID, a manufacturer ID (VID), a product ID (PID), and a legacy unit (LUN)
How to manage storage devices.
제7항에 있어서,
상기 데이터를 공유하는 단계는, 상기 데이터를 원격 측정 서버에 보고하는 단계를 포함하는,
저장 장치 관리 방법.
8. The method of claim 7,
Sharing the data includes reporting the data to a telemetry server.
How to manage storage devices.
제1항에 있어서,
제2 호스트 시스템로부터, 매체의 이동성을 거짓으로 나타내는 메타데이터를 제공하는 저장 장치들에 관한 데이터를 수신하는 단계를 더 포함하는,
저장 장치 관리 방법.
According to claim 1,
further comprising receiving, from a second host system, data relating to the storage devices providing metadata falsely indicative of the mobility of the medium.
How to manage storage devices.
컴퓨팅 장치로서,
메모리와 프로세서를 포함하되,
상기 메모리와 상기 프로세서는, 상기 컴퓨팅 장치로 하여금 동작들을 수행하게 하는 명령어를 저장 및 실행하도록 각각 구성되고,
상기 동작들은,
상기 컴퓨팅 장치를 적어도 하나의 저장 장치에 인터페이스하는 것과,
상기 적어도 하나의 저장 장치에 매체 폴링 메시지를 전송하는 것과,
상기 적어도 하나의 저장 장치로부터 상기 매체 폴링 메시지에 대한 응답을 수신하는 것 - 상기 응답은 상기 적어도 하나의 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타냄 - 과,
상기 응답이 상기 적어도 하나의 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타내고 있음을 판정하는 것과,
상기 판정에 응답하여, 상기 적어도 하나의 저장 장치에 대한 매체 폴링을 디스에이블링하는 것을 포함하는,
컴퓨팅 장치.
A computing device comprising:
including memory and processor;
The memory and the processor are each configured to store and execute instructions that cause the computing device to perform operations,
The actions are
interface the computing device to at least one storage device;
sending a media polling message to the at least one storage device;
receiving a response to the media poll message from the at least one storage device, the response falsely indicating that the at least one storage device has removable media;
determining that the response falsely indicates that the at least one storage device has removable media;
in response to the determination, disabling media polling for the at least one storage device;
computing device.
제11항에 있어서,
상기 동작들은,
상기 판정에 응답하여, 상기 적어도 하나의 저장 장치에 대응하는 엔트리를 데이터베이스에 추가하는 것 - 상기 엔트리는 상기 적어도 하나의 저장 장치가 이동식 매체 표시를 거짓으로 제공한다는 것을 나타냄 - 을 더 포함하는,
컴퓨팅 장치.
12. The method of claim 11,
The actions are
responsive to the determination, further comprising adding to a database an entry corresponding to the at least one storage device, the entry indicating that the at least one storage device falsely provides a removable media indication;
computing device.
제11항에 있어서,
상기 응답이 상기 적어도 하나의 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타내고 있음을 판정하는 것은,
매체의 이동성을 거짓으로 나타내는 것으로 알려진 저장 장치들의 데이터베이스를 탐색하는 것을 포함하는,
컴퓨팅 장치.
12. The method of claim 11,
Determining that the response falsely indicates that the at least one storage device has removable media comprises:
comprising searching a database of storage devices known to falsely represent the mobility of the medium;
computing device.
제13항에 있어서,
상기 동작들은, 매체의 이동성을 거짓으로 나타내는 것으로 알려진 저장 장치들에 관한 데이터를 다른 컴퓨팅 장치와 공유하는 것을 또한 포함하는,
컴퓨팅 장치.
14. The method of claim 13,
The operations also include sharing with another computing device data pertaining to storage devices that are known to falsely indicate the mobility of the medium.
computing device.
제14항에 있어서,
상기 데이터를 공유하는 것은,
상기 데이터를 원격 측정 서버에 보고하는 것을 포함하는,
컴퓨팅 장치.
15. The method of claim 14,
Sharing the data is
reporting the data to a telemetry server;
computing device.
제15항에 있어서,
상기 동작들은,
다른 컴퓨팅 장치로부터, 매체의 이동성을 거짓으로 나타내는 것으로 알려진 저장 장치들에 관한 데이터를 수신하는 것을 더 포함하는,
컴퓨팅 장치.
16. The method of claim 15,
The actions are
further comprising receiving, from another computing device, data relating to storage devices known to falsely indicate the mobility of the medium;
computing device.
저장 장치와 상호작용하는 방법으로서,
매체 폴링 메시지를 상기 저장 장치로 전송하는 단계와,
상기 저장 장치로부터 상기 매체 폴링 메시지에 대한 응답을 수신하는 단계 - 상기 응답은 상기 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타냄 - 와,
상기 응답이 상기 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타내고 있음을 판정하는 단계와,
상기 판정에 응답하여, 상기 저장 장치에 대한 매체 폴링을 디스에이블링하는 단계를 포함하는,
저장 장치와 상호작용하는 방법.
A method of interacting with a storage device, comprising:
sending a media polling message to the storage device;
receiving a response to the media poll message from the storage device, the response falsely indicating that the storage device has removable media;
determining that the response falsely indicates that the storage device has removable media;
in response to the determination, disabling media polling for the storage device;
How to interact with the storage device.
제17항에 있어서,
상기 판정에 응답하여, 상기 저장 장치에 대응하는 엔트리를 데이터베이스에 추가하는 단계 - 상기 엔트리는 상기 저장 장치가 이동식 매체 표시를 거짓으로 제공한다는 것을 나타냄 - 를 더 포함하는,
저장 장치와 상호작용하는 방법.
18. The method of claim 17,
responsive to the determination, adding to a database an entry corresponding to the storage device, the entry indicating that the storage device falsely provides a removable media indication;
How to interact with the storage device.
제17항에 있어서,
상기 응답이 상기 저장 장치가 이동식 매체를 가지고 있다고 거짓으로 나타내고 있음을 판정하는 단계는,
매체의 이동성을 거짓으로 나타내는 것으로 알려진 저장 장치들의 데이터베이스를 탐색하는 단계와,
상기 데이터베이스에서, 상기 저장 장치에 대응하는 엔트리의 위치를 찾는 단계를 포함하는,
저장 장치와 상호작용하는 방법.
18. The method of claim 17,
Determining that the response falsely indicates that the storage device has removable media comprises:
searching a database of storage devices known to falsely represent the mobility of the medium;
locating, in the database, an entry corresponding to the storage device;
How to interact with the storage device.
제19항에 있어서,
상기 방법은 제1 컴퓨팅 장치에서 수행되고,
상기 방법은,
다른 컴퓨팅 장치로부터, 매체의 이동성을 거짓으로 나타내는 것으로 알려진 저장 장치들에 관한 데이터를 수신하는 단계와,
상기 수신된 데이터에 기초하여 상기 데이터베이스를 업데이트하는 단계를 더 포함하는,
저장 장치와 상호작용하는 방법.
20. The method of claim 19,
The method is performed on a first computing device,
The method is
receiving, from another computing device, data relating to storage devices known to falsely indicate the mobility of the medium;
and updating the database based on the received data.
How to interact with the storage device.
KR1020217004722A 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability KR102270531B1 (en)

Applications Claiming Priority (4)

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
KR1020157024235A KR102219218B1 (en) 2013-03-07 2014-03-04 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 Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157024235A Division KR102219218B1 (en) 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability

Publications (2)

Publication Number Publication Date
KR20210021136A KR20210021136A (en) 2021-02-24
KR102270531B1 true KR102270531B1 (en) 2021-06-28

Family

ID=50382614

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157024235A KR102219218B1 (en) 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability
KR1020217004722A KR102270531B1 (en) 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157024235A KR102219218B1 (en) 2013-03-07 2014-03-04 Systems and methods for host detection of usb asynchronous notification capability

Country Status (11)

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

Families Citing this family (10)

* 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 (en) * 2016-06-30 2016-11-30 国云科技股份有限公司 A kind of USB of management and the method being automatically mounted to virtual machine
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 (en) * 2018-10-09 2019-04-16 Акционерное общество "Актив-софт" (АО "Актив-софт") System for programming and testing usb devices
RU2694143C1 (en) * 2018-11-27 2019-07-09 Акционерное общество "Актив-софт" (АО "Актив-софт") Device for marking and testing usb devices
RU187402U1 (en) * 2018-11-27 2019-03-05 Акционерное общество "Актив-софт" (АО "Актив-софт") MACHINE FOR MARKING AND TESTING USB DEVICES
CN111431952B (en) * 2019-01-09 2022-06-03 阿里巴巴集团控股有限公司 Message pushing method, device and system, computer storage medium and electronic equipment
CN111813727B (en) * 2020-08-21 2020-12-08 南京沁恒微电子股份有限公司 Real-time and efficient USB data transmission method
WO2022126578A1 (en) * 2020-12-18 2022-06-23 Micron Technology, Inc. Dynamic interval for memory device to enter low power state

Citations (2)

* 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

Family Cites Families (19)

* 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
KR101050248B1 (en) * 2003-06-30 2011-07-19 톰슨 라이센싱 Removable media storage device or playback device for video recording
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 (en) * 2004-01-23 2006-07-05 松下電器産業株式会社 Media drive, computer system, and media drive control method
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
WO2005119469A2 (en) 2004-05-28 2005-12-15 Thomson Licensing Method for managing the plug-in or removal of a memory card into or from a card reader and apparatus for use in said method
RU2348992C2 (en) * 2004-07-12 2009-03-10 Кабусики Кайся Тосиба Storage device and leading device
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
US7849251B2 (en) * 2007-12-07 2010-12-07 Intel Corporation Hardware assisted endpoint idleness detection for USB host controllers
US8510494B2 (en) 2009-12-24 2013-08-13 St-Ericsson Sa USB 3.0 support in mobile platform with USB 2.0 interface
JP2012008846A (en) * 2010-06-25 2012-01-12 Yokogawa Electric Corp Device equipped with storage unit
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 (2)

* 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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102270531B1 (en) Systems and methods for host detection of usb asynchronous notification capability
EP1340135B1 (en) System and method for monitoring and controlling a power manageable resource
US6460143B1 (en) Apparatus and method for awakening bus circuitry from a low power state
TW321739B (en) dynamic hibernation time in a computer system
US20150355651A1 (en) Thermal watchdog process in host computer management and monitoring
US8255928B2 (en) Automated termination of selected software applications in response system events
US20100241889A1 (en) Power management system and method
CN104137077B (en) Processor system
US20120131371A1 (en) Method for obtaining power states of a computer
US9395799B2 (en) Power management techniques for USB interfaces
US20210141438A1 (en) Systems, apparatus, and methods for transitioning between multiple operating states
US20090276647A1 (en) Storage device power consumption state
US7124248B2 (en) Current media status determination for a storage device
CN204044694U (en) A kind of low cost expanded type GPU blade server
US8510583B2 (en) Asynchronous sleep mode for host controller
US7337338B2 (en) Information handling system capable of operation in reduced power states
US20140215247A1 (en) Power saving operating method for and electronic device
US8312126B2 (en) Managing at least one computer node
CN115129516B (en) PCIe device I2C hanging and dying problem processing method and related components
CN108234804B (en) Printing apparatus and control method thereof
CN1355479A (en) Method for hot switching of peripherals in single IDE interface

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant