KR20080096572A - 부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체 - Google Patents

부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20080096572A
KR20080096572A KR1020087020679A KR20087020679A KR20080096572A KR 20080096572 A KR20080096572 A KR 20080096572A KR 1020087020679 A KR1020087020679 A KR 1020087020679A KR 20087020679 A KR20087020679 A KR 20087020679A KR 20080096572 A KR20080096572 A KR 20080096572A
Authority
KR
South Korea
Prior art keywords
protocol
host computer
mtp
successful
index
Prior art date
Application number
KR1020087020679A
Other languages
English (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 KR20080096572A publication Critical patent/KR20080096572A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)

Abstract

호스트 컴퓨터와의 정보를 교환하기 위해 통신 프로토콜을 자동으로 선택하는 이동식 저장 디바이스는, 물리층 인터페이스, 프로토콜 실패 검출 모듈, 접속 및 접속해제 에뮬레이터, 삽입 및 제거 검출기 및 내부 제어 로직을 포함한다. 내부 제어 로직은 타겟 호스트 컴퓨터로의 디바이스의 부착을 검출하는 것과 타겟 호스트 컴퓨터와의 통신을 위해 초기 프로토콜을 시도하는 것을 조정한다. 또한, 로직은 프로토콜 실패 검출기가 초기 프로토콜이 실패하였다는 것을 나타내는 경우에 타겟 호스트 컴퓨터로 논리적으로 접속해제 및 재접속하며, 타겟 호스트 컴퓨터와의 통신을 위해 제2 프로토콜을 시도한다. 성공적이라면, 디바이스는 어떠한 프로토콜이 타겟 호스트 컴퓨터와의 통신을 위해 최종적으로 성공적이었나를 기록하도록 성공 표시자를 설정한다. 성공 표시자는, 디바이스가 호스트 컴퓨터로 재접속될 때 어떠한 프로토콜을 처음에 시도할지를 나타내는 데 후속적으로 이용된다.
데이터 전송 프로토콜, MSC, MTP

Description

부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체{MULTI-PROTOCOL REMOVABLE STORAGE DEVICE}
USB(Universal Serial Bus) MSC(Mass Storage Class)는 USB 임플리멘터 포럼(Implementors Forum)에 의해 규정된 컴퓨팅 통신 프로토콜의 세트이다. 이 표준은 각종 저장 디바이스에 인터페이스를 제공한다. 호스트 컴퓨터에 접속하고 이러한 표준을 포함하는 통상적인 저장 디바이스들은 CD 및 DVD 리더(reader) 및 라이터(writer) 드라이브를 포함하는 외부 자기 하드 드라이브, 외부 광 드라이브, USB 플래시 메모리 디바이스를 포함하는 휴대용 플래시 메모리 디바이스, 표준 플래시 메모리 카드와 USB 접속 간을 브리징(bridging)하는 어댑터, 디지털 카메라, MP3 플레이어와 같은 디지털 오디오 플레이어 및 음악, 비디오 및 그림을 위한 고급형 디지털 미디어 플레이어를 포함한다.
USB MSC는 그것만으로는 어떠한 파일 시스템이 USB MSC를 이용하는 디바이스 상에서 사용될지를 규정하지 않는다; 대신에, USB MSC는 임의의 하드 디스크 디바이스 상에서 섹터들을 판독하는 방식을 주로 제공한다. 운영 체제들은 FAT(File Allocation Table) 파일 시스템과 같이, 운영 체제들에 대해 이용가능한 임의의 파일 시스템으로 이러한 저장 영역을 자유롭게 포맷할 수 있다. MSC를 이용하는 것의 하나의 불리한 면은, USB 부착가능 디바이스가 USB 인터페이스를 통하여 그것의 실제 기능적 동작을 용이하게 표현할 수 없게 한다는 것이다.
MTP(Media Transfer Protocol)는 워싱턴 주 레드몬드의 마이크로소프트 사에 의해 개발된 새로운 프로토콜 및 이에 수반되는 드라이버들의 세트이며, 휴대용 디바이스들을 Windows® XP PC(personal computer)에 접속시키고 이러한 디바이스들과 PC 간에 디지털 미디어 컨텐트를 동기화한다. MTP는 하드 드라이브를 갖는 휴대용 디바이스에 연동된다(geared). MTP의 이점들은 이하와 같다. 모든 MTP-호환가능 디바이스들에는 Windows Media PlayerTM 10(MP 10) 이상이 탑재되며, 사용자들은 플레이어 제어 소프트웨어 내로부터 모든 전송 및 동기화 기능을 수행할 수 있을 것이다. 모든 MTP 호환가능 디바이스들은 AutoSync라 하는 특징을 지원하는데, 이는 지원 PC에 접속할 때마다 새롭게 획득되거나 리핑된(ripped) 모든 컨텐트를 자동으로 디바이스에 전송하도록 사용자들이 MP10을 구성하게 한다. 디바이스가 접속해제된 후에 재접속될 때, MTP 호환가능 디바이스들은 PC에 다시 전파되도록 디바이스에 대한 (사용자 등급과 같은) 파일 속성에 변화를 허용하는 파일 속성 동기화를 갖는다.
따라서, MTP 디바이스들은 USB MSC 디바이스들을 넘어서는 추가적인 기능을 제공한다. 그러나, MTP 프로토콜은 MSC 프로토콜처럼 많은 호스트 디바이스들에 대해서 지원되지는 않는다. MP10을 실행하는 호스트 디바이스들은 MTP를 지원하는 반면, MP10이 없는 디바이스들 또는 Linux, MacOS 또는 Windows 95, Windows ME, 또는 Windows CE와 같은 다른 운영 체제들은 MTP를 지원하지 않는다. 이러한 모든 운영 체제들 및 그보다 많은 것들은 MSC를 지원한다. 더 오래된 MSC 지원 PC에 대한 MTP 디바이스의 동작가능성은, 소정의 종류의 프로토콜 유연성(flexibility)이 존재하지 않는다면 불확실하다. 다른 프로토콜들에도 유사한 문제점이 존재한다. 문제는 MTP 및 MSC에 제한되지 않는다.
MTP 및 MSC에 특정된 하나의 문제점은, MTP 디바이스들은, 앨범, 아티스트, 쟝르와 같은 (이에 제한되지는 않음) 많은 속성에 대해 빠른 브라우즈(browse), 소트(sort) 및 액세스를 허용하는, 저장 장치 내의 모든 객체들/파일들에 대한 데이터베이스 인덱스를 보유한다는 사실이다. MSC는 모든 객체들에 대한 데이터베이스 인덱스를 보유하지는 않는다. 따라서, MSC를 이용하여 이동식 저장 디바이스가 액세스될 때, MTP에 의해 사용되는 데이터베이스 인덱스는 객체들과 동기가 맞지 않게 될 것이다.
또한, MSC가, MTP 데이터베이스가 동기가 맞지 않게 되도록 하는 방식으로 사용되었는지를 검출하는 표준 방법이 현재로서는 없다. 따라서, 호스트 또는 디바이스는 접속 또는 재접속할 때마다 데이터베이스가 동기가 맞지 않음을 가정하고 MTP 데이터베이스를 고치거나 재창설해야만 할 것이다. 이러한 동작은 상당한 지연을 추가한다. 바람직한 특성은 호스트 PC에 의해 지원되는 프로토콜에 의존하는 프로토콜을 선택하고 그러한 프로토콜에서의 업그레이드된 변화를 수용하는 능력이 될 것이다.
<개요>
본 개요는 상세한 설명에서 더욱 자세히 설명되는 개념들의 선택을 단순화된 형태로 소개하기 위해 제공된다. 본 개요는 청구된 청구물의 핵심 특징 또는 본질적인 특징을 식별하려는 것이 아니며 청구된 청구물의 범위를 제한하는 데 이용되려는 것도 아니다.
본 발명의 일 양태에서, 이동식 저장 디바이스는 하나 이상의 프로토콜을 지원할 수 있는 호스트 컴퓨터들에서 사용하기 위한 우선 프로토콜(prioritized protocol)들의 리스트를 보유할 수 있다. 일 실시예에서, 하나의 프로토콜은 MTP 프로토콜일 있고 다른 것은 MSC 프로토콜일 수 있다. MTP 프로토콜이 우선 프로토콜로 간주될 수 있다. 저장 디바이스는 프로토콜들을 우선 순서로 시도한다. 프로토콜이 호스트에 의해 성공적으로 검출되고 지원된다면, 디바이스는 그 포로토콜만으로 기능하는 것처럼 동작이 계속된다. 프로토콜이 호스트에 의해 검출되지 않거나 지원되지 않는다면, 디바이스는 접속해제를 에뮬레이팅(emulating)하고, 리스트 내의 다음 프로토콜로 재접속한다.
디바이스가 MSC 프로토콜로 접속한다면, 디바이스는 모든 저장 영역에 대하여 기입(write) 검출기들을 활성화한다. 호스트에 의한 저장 영역으로의 매 기입에 대하여, 디바이스는 인덱스 플래그를 트루(true)로 설정한다. 디바이스가 MTP로서 접속한다면, 디바이스는 각 저장 영역의 인덱스 플래그를 체크한다. 영역의 인덱스 플래그가 트루라면, 디바이스는 그 영역에 대한 데이터베이스 인덱스를 고치고 인덱스 플래그를 폴스(false)로 클리어할 것이다. 디지털 미디어가 인덱싱(indexing)을 지원하지 않는 MSC 프로토콜을 이용하여 디바이스에 저장된다고 할지라도, 업데이트된 인덱스는 디바이스에 저장된 디지털 미디어를 분류하고 검색하는 MTP 프로토콜의 능력의 사용을 허용할 것이다.
도 1은 본 발명의 양태들을 갖는 예시적인 미디어 저장 디바이스를 도시하는 도면이다.
도 2는 본 발명의 양태들을 설명하는 예시적인 흐름도이다.
도 3은 예시적인 호스트 컴퓨팅 환경을 도시하는 블록도이다.
삽입가능한 저장 미디어와 관련된 하나의 이슈는 사용된 인터페이스와 프로토콜이다. 2개의 동작 프로토콜이 사용될 수 있는 상황에서, 사용될 프로토콜은 사용자에게 알려지지 않을 수 있다. 예를 들어, USB(universal serial bus) 호환가능 저장 디바이스의 사용자는 어떠한 프로토콜이 디바이스 또는 퍼스널 컴퓨터와 같은 호스트 컴퓨터에 의해 지원될지 모를 수 있다. 하나의 해결책은, 사용자가 USB 호환가능 디바이스에 접속 및 접속해제할 필요가 없게 하거나 다른 프로토콜에 대해 하나의 프로토콜을 선택하기 위하여 수동 스위치를 움직일 필요가 없게 하도록 USB 호환가능 디바이스에 선택적인 프로토콜들 간에 스위칭하는 기능을 장착하는 것이다. 이하 제시될 본 발명 및 그 구체적인 실시예들과 관련하여 임의의 세트의 프로토콜들이 사용될 수 있지만 이에 제한되지는 않음에 유의해야 한다.
도 1은 호스트 PC 또는 사용자에 의한 개입 없이도 복수의 프로토콜들을 실행할 수 있는 USB 호환가능 저장 디바이스에 대한 아키텍쳐를 도시한다. 도 1은 적어도 2개의 프로토콜들과 호환가능한 미디어 저장 디바이스(120)가 제1, 제2 또는 제3 호스트 중 하나에 접속될 수 있는 시스템을 도시한다. 제1 호스트(105)에 접속되었다면, 지원되는 프로토콜은 더 새로운 MTP 프로토콜이거나 통상적인 MSC 프로토콜일 수 있다. 제2 호스트(110)에 접속된다면, 지원되는 프로토콜은 MSC 프로토콜이다. 제3 호스트(115)에 접속된다면, 지원되는 프로토콜은 MTP 프로토콜이다.
미디어 저장 디바이스(120)는 통상적인 인터페이스의 전기적 및 하드웨어 양태들을 포함하는 물리층(130)을 포함한다. 이러한 인터페이스는 USB 인터페이스, 파이어와이어(firewire) 인터페이스, 와이파이(WiFi) 인터페이스, 이더넷(Ethernet), 광(소넷(Sonet)) 인터페이스, 또는 통상적으로 이용가능한 PC 인터페이스 중 임의의 것일 수 있다. 또한, 디바이스(120)는 PC 또는 다른 컴퓨팅 디바이스에 대해 동작하는 인터페이스의 존재를 검출할 수 있는 삽입 및 제거 검출 모듈(125)을 기능적으로 포함한다. 삽입 및 제거 검출 블록은, 저장 디바이스(120)가 PC 또는 다른 외부 호스트에 접속되었는지 또는 접속해제되었는지를 결정한다.
디바이스(120)의 프로토콜 실패 검출 기능(135)은 지원되는 프로토콜들 중 하나와 동작하거나 동작하기를 시도하는 동안 에러들을 검출할 수 있도록 디바이스 내에서 이용가능한 프로토콜들의 양태들을 저장할 수 있다. 접속 및 접속해제 에뮬레이터(140)는, 디바이스(120)가 하나의 프로토콜에서 다른 하나로 변할 원인을 가지는 경우에 디바이스로 하여금 접속해제 및 재접속을 할 수 있게 한다. 프로토 콜 실패 검출 기능(135)과 접속/접속해제 에뮬레이터(140)의 결합은 디바이스(120)로 하여금 하나보다 많은 프로토콜로 동작할 수 있게 한다. 제1 프로토콜이 시도되고 실패한 경우에, 프로토콜 실패 기능(135)은 그 실패를 검출하고, 만일 적절하다면 접속/접속해제 에뮬레이터(140)를 활성화시키는 트리거(trigger)로서 사용될 수 있다. 프로토콜 실패 시에, 내부 로직(170)으로부터의 제어 하의 에뮬레이터(140)는 호스트로부터 디바이스(120)의 접속해제를 에뮬레이팅할 수 있다. 그러면, 에뮬레이터(140)는 호스트 컴퓨터에 디바이스의 논리적 접속을 제공할 수 있어 제2 프로토콜이 시도될 수 있게 한다. 에뮬레이터(140)는 로직 제어(170)가 허용하는 만큼 자주 디바이스(120)에 접속해제 및 접속 서비스들을 제공할 수 있다.
본 발명의 일 양태에서, 내부 로직 제어는 로직 상태 머신 또는 프로그래머블 컨트롤러로서 구현될 수 있다. 프로그래머블 컨트롤러는 CD, 플로피와 같은 컴퓨터 판독가능 매체로부터 미디어 저장 디바이스(120)로의 인터페이스를 통해 다운로드되는 프로그램을 이용하여 프로그램될 수 있다. 프로그래머블 미디어는 디바이스(120) 에 대한 동작을 지시하는 명령어를 포함할 수 있다. 디바이스(120)에 대한 전력은, 디바이스가 USB 호환가능인 것처럼 버스 인터페이스로부터 유도될 수 있다. 또한, 이와 함께, 디바이스(120)는 유지 및/또는 동작 전력을 위해 필요한 바이어스(bias)를 제공하는 배터리를 포함할 수 있다.
디바이스(120)는 MTP 프로토콜을 지원한다. 따라서, 디바이스(120)가 그 디바이스에 저장된 파일들의 카탈로그 양태들을 저장할 수 있도록 데이터베이스(165)가 제공된다. 예를 들어, 디바이스가 디지털 뮤직 디바이스인 경우에, 모든 특정 파일은, 이름, 사이즈, 아티스트, 앨범, 쟝르, 타이틀 및 기타 태그들 또는 속성들을 포함하는 양태들을 가질 수 있다. 이러한 속성들 및 정보는 데이터베이스(165)에 저장될 수 있다. 또한, MTP 프로토콜은 사용자로 하여금 노래에 대한 디바이스의 컨텐츠를 소팅(sorting) 또는 검색할 수 있게 한다. 검색을 구현하는 하나의 방식은 노래가 액세스가능한 저장 장치에서의 위치를 지시할 수 있는 데이터베이스에 대한 인덱스들로 구현하는 것이다. 따라서, 데이터베이스 정보에 대한 인덱스들은 MTP에서 지원된다. 인덱스 열(column) 및 행(row)은 데이터베이스(165)에 저장될 수 있다. 일 실시예에서, MTP 데이터베이스는 작은 디스크 드라이브 또는 반도체 메모리에 의해 지원될 수 있다.
1 내지 N의 저장 영역(160a 및 160b)이 도 1에 도시되어 있다. 디바이스 데이터베이스(165)는 디지털 음악과 같은 미디어를 위한 저장으로서 이용될 수 있다. 따라서, 구체적인 예에서, 160a 및 160b와 같은 저장 영역의 표시는 데이터베이스(165) 에 저장된 음악 파일들 또는 음악 파일들의 그룹을 연관시키는 데 이용될 수 있다. 각각의 저장 영역은 연관된 인덱스 플래그 및 기입 검출 요소를 갖는다. 인덱스 플래그들(145a 및 145b)은 저장 영역들(160a 및 160b)과 각각 연관되고, 기입 검출 모듈들(150a 및 150b)은 저장 영역 표시자(160a 및 160b)와 각각 연관된다.
본 발명의 일 양태에서, 디바이스(120)는 MTP 호환가능 호스트 PC뿐만 아니라 MSC와 함께 이용될 수도 있다. MTP 호환가능 호스트가 디바이스에 접속되는 경우에, 사용자는 검색 기준에 따라 노래들을 검색하기 위해 인덱스들을 사용할 수 있다. 새로운 노래가 추가된 경우에는 인덱스가 업데이트될 수 있다. 그러나, 디지털 음악 컨텐트가 MSC 프로토콜을 이용하여 추가된 경우에는, 파일은 추가되지만, MSC 프로토콜이 파일들의 인덱싱을 지원하지는 않으므로 인덱스는 업데이트되지 않을 것이다. 본 발명의 일 양태에서, 인덱싱된 검색의 사용을 지원하지 않는 MSC 호스트에 디바이스가 접속된 경우에, 그 노래는 저장 영역(160a)과 같은 메모리 내의 저장 영역에 위치될 수 있다. 만일 이것이 발생한다면, 기입 검출 모듈(150a)은 저장 영역(160a)으로의 기입이 MSC 동작 모드에서 발생했다는 것을 검출하고 인덱스 플래그(145a)가 설정된다.
그 후에, MTP 프로토콜이 후속하는 세션동안 사용된다면, 디바이스(120)는 인덱스 플래그를 검출하여, 디지털 컨텐트가 추가되었지만 인덱싱되지는 않았다는 것을 표시할 수 있다. 그러면, MTP 프로토콜이 인덱스를 사용하여 새로운 디지털 음악 컨텐트의 검색을 허용할 수 있도록, 디바이스(120)는 새롭게 추가된 음악 컨텐트가 인덱스될 수 있게 한다.
본 발명의 다른 양태에서, 새로운 디지털 음악이 디바이스 상에 로딩될 때, 새롭게 추가된 디지털 컨텐트에 대한 인덱스가 업데이트된다. 복수의 인덱스들은 이러한 추가의 결과로서 업데이트될 수 있다. 인덱스를 업데이트하는 하나의 접근법은 MTP 접속이 이루어질 때마다 전체 저장 영역을 업데이트하는 것이다. 그러나, 디바이스는 각각 10,000개까지의 인덱스가능한 디지털 컨텐트 항목들을 보유할 수 있으므로, 이는 많은 시간이 걸릴 수 있다. 저장 영역별로 구획된(partitioned) 인덱스 플래그를 이용하여, 활성화된 인덱스 플래그에 의해 나타 내어진 저장 섹션에 대한 인덱스만이 업데이트될 필요가 있다. 따라서, 전체 인덱스의 재구축(rebuild)이 불필요할 수 있으며, 업데이트는 보다 적은 시간에 이루어질 수 있다. 따라서, 디바이스(120)는 사용자에게 보다 신속하게 이용가능해질 수 있다. 본 발명의 이러한 양태는 디바이스 메모리의 데이터베이스 인덱스들의 재구축을 회피한다. 디바이스에 대해 사용된 메모리는 디스크 또는 비휘발성 또는 휘발성 메모리와 같은 반도체 메모리일 수 있다.
본 발명의 또 다른 양태에서, 디바이스가 MTP 프로토콜 하에서 동작하고 있고 부분적인 파일이 인지되었다면, 데이터베이스는 그 부분적인 파일을 제거하기 위하여 임의의 다른 데이터베이스로서 롤백(roll back)될 수 있다. 부분적인 파일은 기입 동작 동안에 사용자에 의해 제거되고 있는 디바이스의 결과일 수 있으며, 또는 이와는 달리 손상된 파일일 수도 있다. 따라서, 본 발명은, 그 파일들이 디바이스의 전력의 손실의 결과로써 불완전한 데이터베이스의 복구 및 롤백을 허용한다.
도 2는 본 발명의 양태들을 사용하는 하나의 가능한 방법 실시예(200)이다. 본 방법(200)은 도 1의 디바이스(120)와 유사한 미디어 저장 디바이스가 사용자에 의해 호스트에 물리적으로 접속될 수 있다고 가정하며, 그 호스트는 MTP 프로토콜, MSC 프로토콜, 또는 MTP 및 MSC 프로토콜 둘 다를 지원한다. 프로세스(200)가 시작하면, 디바이스는 호스트에 물리적으로 접속되기를 기다린다(단계 210). 물리적 접속 후에, 디바이스가 MTP 호환가능 호스트에 최근에 성공적으로 접속되었는지 또는 구성가능한 시간 주기(카운트)가 경과되었는지를 알아보기 위하여 성공 플래그 가 체크된다(단계 215). 일 실시예에서, 디바이스가 이전에 접속된 적이 없었다 하더라도 단계(215)에서의 성공 플래그가 최근의 접속 시도에 대한 성공적인 MTP 초기화를 나타내게 설정되도록, 디바이스는 초기 설정될 수 있다. 이러한 선호도는, 디바이스가 가장 개선된 프로토콜 즉, MTP를 이용하여 최초에 접속 시도하는 것을 선택하도록 설정될 수 있다.
성공 플래그가 성공적인 마지막 MTP 시도를 나타내도록 설정된다고 가정하면, 프로세스는 다시 MTP 호환가능 호스트에 접속하기 위해 이동한다(단계 220). 또한, 카운트가 초과되었다면, MTP 프로토콜 개시를 이루기 위한 시도가 이루어진다(단계 220). 카운트를 초과하는 것은 구성가능한 클럭 카운터 또는 성공적인 접속 카운트를 초과하는 것과 같은 카운터 이벤트일 수 있다. 클럭 카운트는 24시간 주기와 같은, 디바이스 부착 간의 시간량일 수 있는데, 이러한 시간량은 타임아웃 주기로서 기능하며, 미디어 디바이스는 그 타임아웃 주기 이후에 다음 회의 부착 이벤트에 대해 MTP 프로토콜을 재시도하도록 지시를 받는다. 또한, 카운트를 초과하는 것은 디바이스에 의해 이루어진 특정 (구성가능한) 횟수의 성공적인 접속들, MTP 또는 MSC일 수 있다. 다수의 접속들이 이루어진 후에, 디바이스는 높은 순위의 MTP 프로토콜을 시도하도록 지시받을 수 있다. MTP 시도가 이루어지는 것을 가정할 때(단계 220), 접속이 성공적이라면(단계 225), 성공 플래그는, 최근의 성공 시도가 MTP 호환가능 호스트로 이루어졌음을 기억하도록 설정된다(단계 230). 단계 230에서, 상술한 클럭 카운트 또는 성공적인 접속 카운트와 같은 카운트가 개시될 수 있다. 다음으로, 설정되었는지를 알아보기 위해 인덱스 플래그가 체크된다 (단계 245). 인덱스 플래그가 설정되었다면(트루), 이는 이전의 MSC 세션이 발생하였고 적절하게 인덱싱되지 않았던 미디어 저장 데이터가 존재한다는 것을 나타낸다. 단계(245)에서 인덱스 플래그가 트루로서 검출된다면, 인덱스는 고쳐지고 인덱스 플래그는 클리어된다(단계 260). 그 후에, MTP 디바이스로서의 최후의 접속이 이루어질 수 있다(단계 275). 그 후에, 미디어 저장 디바이스는 접속해제를 기다릴 수 있다(단계 280). 디바이스가 접속해제된다면, 프로세스는 다음 접속을 기다리기 위해(단계 210) 복귀한다.
프로세스(200)의 단계(225)로 복귀하여서, MTP 프로토콜을 개시하려는 시도가 성공적이지 않다면, MSC 프로토콜에서의 시도가 이루어진다(단계 235). 본 발명의 하나의 실제 양태에서, 또 다른 프로토콜에서의 시도는 접속이 후속하는 접속해제의 에뮬레이션(an emulation of a disconnection followed by a connection)을 호출(invoke)할 수 있다. MTP 호스트로 접속하려는 개시 시도가 성공적이라면(단계 240), 미디어 저장 디바이스는 MSC 프로토콜 접속으로서 최근의 성공적인 프로토콜 초기화를 기억(remember)한다(단계 250). 마지막으로, 전체 프로토콜이 호출되고 미디어 저장 디바이스는 MSC 프로토콜을 이용하여 호스트 디바이스에 접속된다(단계 265). 그 후에, 미디어 저장 디바이스는 접속해제 표시를 기다리면서(단계 280) MSC 프로토콜의 동작을 지원하고, 그에 뒤이어 재접속을 기다린다(단계 210).
미디어 저장 디바이스가 MSC 디바이스에 후속적으로 부착되면, 프로세스(200)는 그 유닛이 신속하게 접속될 수 있게 한다. 디바이스 부착이 이루어지 고(단계 210), 최근의 성공은 MSC 접속을 나타낼 것이고(단계 215), 여기에서 저장 디바이스는 MSC 프로토콜 하에서 호스트와의 접속을 개시할 것이다. MSC 프로토콜 호스트 PC와의 초기화 접속은 성공적일 것이고, 방법(200)은 이전처럼 단계들(250 및 265)에 진입한다.
미디어 저장 디바이스가 MTP만을 지원하는 호스트에 후속적으로 접속된다면, 디바이스는 대기(단계 210) 후에 접속 상태에 진입할 것이고 성공 플래그를 체크할 것이다. 디바이스가 최근의 접속 프로토콜로서 MSC 성공을 가졌으므로, 프로세스는 단계(215)에서 단계(235)로 진행하고, MSC 프로토콜 개시가 발생할 것이다. 그러나, 디바이스가 MTP 전용 호스트에 접속되므로, MSC 시도는 실패할 것이다(단계 240). 그러면, 프로세스는 현재의 세션동안 MTP 프로토콜 시도가 있었는지를 조회한다(단계 255). 본 예에서는, 이전의 MTP 시도가 없었다. 따라서, 프로세스는 단계(255)에서 단계(220)로 진행하는데, 여기에서 MTP 프로토콜에서의 시도가 이루어진다. 성공적인 접속 시에(단계 225), 성공 플래그는 MTP 성공을 나타내도록 설정되고, 따라서 호스트에 대한 임의의 후속적인 접속은 MTP 호환가능 프로토콜로 우선 시도될 것이다(단계 230). 다시 한번, 성공적인 MTP 초기화 후에, 인덱스 플래그가 테스트된다(단계 245). 인덱스 플래그가 설정된다면, MTP 프로토콜과의 전체 접속(단계 275) 전에 인덱스는 고쳐질 것이다.
MSC 접속 시도가 실패한 단계(255)로 되돌아가서, MTP 프로토콜이 이전에 시도되었고 실패되었다면, 프로세스(200)는, 미디어 저장 디바이스가 MSC 프로토콜 또는 MTP를 이용한 접속에 실패하였다고(단계 270) 결론을 짓고, 따라서 또 다른 재접속을 기다리기 위해(210) 진행한다.
본 방법(200)은 본 발명의 유연성(flexibility)을 설명한다. 일단 디바이스가 하나의 프로토콜로 접속되었다면, 디바이스는 그 성공을 기억하고, 호스트에 재접속되었을 때 그 동일한 성공적인 프로토콜을 사용하려고 한다. 그러나, 저장 미디어 디바이스가 상이한 프로토콜을 지원하는 호스트에 접속된다면, 우선 최근에 성공되었던 프로토콜을 시도하고, 만약 실패한다면 저장 디바이스는 또 다른 프로토콜을 시도한다. 2개의 프로토콜이 모두 실패한다면, 디바이스는 후속하는 재접속을 기다린다. 따라서, 미디어 저장 디바이스는 MTP 프로토콜, MSC 프로토콜, 및 둘 중 하나의 프로토콜을 지원하는 호스트 중 임의의 것을 지원하는 호스트에 접속될 수 있다. 디바이스는 하나의 호스트로부터 다른 호스트로 이동될 수 있으며, 호스트가 디바이스에 의해 지원되는 프로토콜들 중 임의의 것을 지원한다면, 디바이스는 성공적으로 접속할 것이다. 디바이스가 MSC 디바이스 상에서 사용되고 후속적으로 MTP 디바이스에 접속된다면, 디지털 컨텐트가 MSC 프로토콜을 이용하여 다운로드되었다고 하더라도 전체 MTP 프로토콜 기능이 사용될 수 있도록 자동 인덱스 고침이 수행된다.
본 발명의 일 실시예에서, 호스트 컴퓨터는 MSC 또는 MTP 프로토콜을 지원할 수 있다. 따라서, 디바이스가 이전에 MSC 전용 호스트와 연계되어 사용되었다면, 저장 디바이스는 성공적인 접속을 기억할 것이며 언제나 MSC 프로토콜을 이용하여 접속을 시도할 것이다. 따라서, 미디어 저장 디바이스가 MSC 및 MTP 프로토콜 둘 다를 지원하는 호스트에 접속된다면, 성공 플래그의 MSC 설정으로 인해 MSC 프로토 콜이 선호될 것이다. 일 실시예에서, 최근의 성공 플래그가 MSC를 시도하도록 설정되었다면, MTP 프로토콜은 소정 횟수의 카운트 이후에 시도될 것이다. 카운트는 클럭에 의해 제공되는 정기(timed) 카운트일 수 있거나, 미디어 저장 디바이스가 호스트 컴퓨터에 접속된 횟수를 나타내는 카운터일 수 있다. 클럭, 어큐뮬레이터(accumulator), 플래그 또는 레지스터가 제어 로직(170)에 포함될 수 있다. 예를 들어, 성공 플래그가 MSC 프로토콜 시도를 선호하도록 설정되었다면, 소정 횟수의 접속마다(예를 들어, 호스트로의 3 또는 4회의 접속), 저장 디바이스는 최초 MTP 프로토콜 시도를 선호하도록 스위칭할 것이다. 이는 디바이스로 하여금 개선된 MTP 프로토콜과 상향으로 호환될 수 있게 하고, 저장 디바이스의 사용자가 디바이스를 MTP 또는 MSC 호환가능 호스트에 접속할 수 있는 가능성을 수용할 것이다.
일 실시예에서, 초과된 소정의 카운트는 성공 플래그를 선호되는 MTP 프로토콜로 설정할 것이다. 다른 실시예에서, 초과된 소정의 카운트는 성공 플래그를 단지 오버라이드(override)하고, 최초 시도 프로토콜로서 선호되는 MTP 프로토콜을 사용할 것이다.
청구물이 구조적 특징 및/또는 방법론적 동작(act)에 특정된 언어로 서술되었지만, 첨부된 청구항에 규정된 청구물은 상술된 구체적 특징 또는 동작에 반드시 제한되지는 않는다라는 것이 이해되어야 한다. 오히려, 상술한 구체적인 특징 및 동작은 청구항을 구현하는 예시적인 형태로서 개시된다.
<예시적인 컴퓨팅 디바이스>
도 3 및 이하의 논의는 미디어 저장 디바이스와 인터페이싱하기에 적절한 호 스트 컴퓨터의 간략하고 일반적인 설명을 제공하려는 것이다. 범용 컴퓨터가 이하 설명되지만, 이는 단지 하나의 단일 프로세서 예이고, 복수의 프로세서들을 갖는 호스트 컴퓨터의 실시예들이 네트워크/버스 상호동작 및 상호작용을 갖는 클라이언트와 같은 기타 컴퓨팅 디바이스와 함께 구현될 수 있다.
도 3과 관련하여, 예시적인 호스트 컴퓨터를 구현하는 예시적인 시스템은 컴퓨터 시스템(310) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터 시스템(310)의 컴포넌트들은 처리 장치(320), 시스템 메모리(330), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(320)에 연결시키는 시스템 버스(321)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(321)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다.
컴퓨터 시스템(310)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 시스템(310)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, CDRW(compact disc-rewritable), DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터 시스템(310)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다.
시스템 메모리(330)는 판독 전용 메모리(ROM)(331) 및 랜덤 액세스 메모리(RAM)(332)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터 시스템(310) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(333)은 통상적으로 ROM(331)에 저장되어 있다. RAM(332)은 통상적으로 처리 장치(320)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 3은 운영 체제(333), 애플리케이션 프로그램(335), 기타 프로그램 모듈(336) 및 프로그램 데이터(337)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터 시스템(310)은 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 3은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(331), 이동식·비휘발성 자기 디스크(352)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(351), CD ROM, CDRW, DVD 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(356)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(355)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘 발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(341)는 통상적으로 인터페이스(340)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(321)에 접속되고, 자기 디스크 드라이브(351) 및 광 디스크 드라이브(355)는 통상적으로 인터페이스(350)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(321)에 접속된다. 시스템 버스(321)로의 기타 접속은 직렬 인터페이스 접속(357)을 포함하며, 이 접속은 직렬 인터페이스 디바이스(358)에 전력 및 데이터 접속 서비스들을 제공한다. 직렬 접속(357)의 예들은 파이어와이어, USB 및 광 인터페이스를 포함한다. 직렬 인터페이스 디바이스의 예들은 플래시 메모리 디바이스, 미디어 디바이스 및 스캐너 및 결합 장치와 같은 기타 주변 장치를 포함한다.
위에서 설명되고 도 3에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터 시스템(310)을 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 3에서, 예를 들어, 하드 디스크 드라이브(341)는 운영 체제(344), 애플리케이션 프로그램(345), 기타 프로그램 모듈(346), 및 프로그램 데이터(347)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(344), 애플리케이션 프로그램(345), 기타 프로그램 모듈(346), 및 프로그램 데이터(347)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(344), 애플리케이션 프로그램(345), 기타 프로그램 모듈(346) 및 프로그램 데이터(347)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(362), 및 통상적으로 마우스, 트랙볼(trackball) 또는 터치 패드라 하는 포인팅 장치(361) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터 시스템(310)에 입력할 수 있다. 다른 입력 장치(도시 생략)으로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(321)에 결합된 사용자 입력 인터페이스(360)를 통해 처리 장치(320)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(391) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(390) 등의 인터페이스를 통해 시스템 버스(321)에 접속될 수 있으며, 비디오 인터페이스는 그 후에 비디오 메모리(도시 생략)와 통신할 수 있다. 모니터(391) 외에, 컴퓨터 시스템은 스피커(397) 및 프린터(396) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(395)를 통해 접속될 수 있다.
컴퓨터 시스템(310)은 원격 컴퓨터(380)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화되거나 분산된 환경에서 동작할 수 있다. 원격 컴퓨터(380)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 메모리 저장 장치(381)만이 도 3에 도시되었지만 통상적으로 컴퓨터 시스템(310)과 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 3에 도시된 논리적 접속으로는 LAN(371) 및 WAN(373)이 있지만, 기타 네트워크들/버스들을 포함할 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터 시스템(310)은 네트워크 인터페이스 또는 어댑터(370)를 통해 LAN(371)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터 시스템(310)은 통상적으로 인터넷과 같은 WAN(373)을 통해 통신을 설정하기 위한 모뎀(372) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(372)은 사용자 입력 인터페이스(360) 또는 기타 적절한 메커니즘을 통해 시스템 버스(321)에 접속된다. 네트워크화된 환경에서, 컴퓨터 시스템(310) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 3은 원격 애플리케이션 프로그램(385)이 메모리 장치(381)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
본 명세서에서 설명한 각종 기술들은 하드웨어 또는 소프트웨어 또는 적절하다면 이들의 결합과 연계되어 구현될 수 있다. 따라서, 본 발명의 방법들 및 장치들 또는 그 특정 양태들 또는 부분들은, 플로피 디스켓, CD-ROM, 하드 드라이브 또는 임의의 기타 머신 판독가능 저장 매체와 같은 유형의 매체에 구현된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 프로그램 코드가 컴퓨터와 같은 머신에 의해 로딩되고 실행될 때 머신은 본 발명을 실행하는 장치가 된다.
본 발명의 양태들이 각종 도면의 바람직한 실시예와 관련하여 설명되었지만, 기타 유사한 실시예들이 사용될 수 있으며, 본 발명으로부터 벗어나지 않고도 본 발명의 동일한 기능을 수행하기 위한 추가사항이 설명된 실시예에 더해질 수 있다는 것이 이해되어야 한다. 또한, 특히 무선 네트워크화된 디바이스들의 개수가 계속하여 증가하면서, 핸드헬드 디바이스 운영 체제 및 기타 애플리케이션 특정 운영 체제를 포함하여 각종 컴퓨터 플랫폼들이 고려된다는 것이 강조되어야 한다. 따라서, 청구된 본 발명은 임의의 단일 실시예에 한정되어서는 안되며, 첨부된 청구항에 따른 폭과 범위로 해석되어야 한다.

Claims (20)

  1. 부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법으로서,
    호스트 컴퓨터로의 디바이스의 물리적 부착을 검출하는 단계 -상기 디바이스는 적어도 2개의 데이터 전송 프로토콜을 이용할 수 있음- ;
    상기 디바이스에 의해 초기 시도 프로토콜을 포함하는 제1 데이터 전송 프로토콜의 이용을 시도하는 단계;
    상기 제1 데이터 전송 프로토콜이 상기 호스트 컴퓨터와의 통신을 개시하는 데에 실패하면, 상기 디바이스를 논리적으로 접속해제한 후에 상기 디바이스를 논리적으로 재접속하는 단계;
    상기 디바이스에 의해 제2 데이터 전송 프로토콜의 이용을 시도하는 단계 -상기 제2 데이터 전송 프로토콜은 상기 호스트 컴퓨터와의 통신을 개시하는 데 있어 성공적인 프로토콜임-; 및
    상기 성공적인 프로토콜의 표시자를 저장하는 단계 -상기 표시자는 상기 디바이스의 호스트 컴퓨터로의 후속적인 물리적 부착에서 초기 시도 프로토콜을 선택하기 위해 이용됨-
    를 포함하는 데이터 전송 프로토콜 선택 방법.
  2. 제1항에 있어서,
    상기 성공적인 프로토콜의 표시자를 저장하는 단계는, 성공 플래그를 설정하 는 단계를 포함하고,
    상기 성공 플래그는 호스트 컴퓨터와의 통신을 개시하는 데 이용된 최근의 성공적인 프로토콜을 나타내는, 데이터 전송 프로토콜 선택 방법.
  3. 제2항에 있어서,
    상기 성공 플래그는 USB MSC(mass storage class) 프로토콜 또는 USB MTP(media transfer protocol)를 나타내는, 데이터 전송 프로토콜 선택 방법.
  4. 제3항에 있어서,
    상기 디바이스가 상기 MSC 프로토콜을 이용하여 동작되었을 때 메모리로의 기입(write)이 수행되었는지를 결정하기 위해 인덱스 플래그를 테스트하는 단계를 더 포함하는, 데이터 전송 프로토콜 선택 방법.
  5. 제4항에 있어서,
    상기 인덱스 플래그와 연관된 메모리 영역의 인덱스를 업데이트하는 단계를 더 포함하고,
    상기 인덱스는, 상기 디바이스가 MTP 프로토콜을 이용하여 호스트 컴퓨터에 성공적으로 접속되는 경우에 유용한, 데이터 전송 프로토콜 선택 방법.
  6. 제1항에 있어서,
    상기 디바이스의 상기 호스트 컴퓨터로부터 물리적 접속해제를 감지하는 단계;
    상기 디바이스의 상기 호스트 컴퓨터로의 후속하는 물리적 부착을 검출하는 단계;
    소정의 카운트가 초과되지 않은 경우에, 상기 표시자에 의해 식별되는 성공적인 프로토콜의 이용을 시도하는 단계; 및
    상기 소정의 카운트가 초과되는 경우에, 호스트 컴퓨터와의 통신을 설정하기 위하여 상기 표시자에 의해 식별되는 성공적인 프로토콜 외의 다른 프로토콜의 이용을 시도하는 단계를 더 포함하는, 데이터 전송 프로토콜 선택 방법.
  7. 제6항에 있어서,
    상기 다른 프로토콜은 선호되는(preferred) 프로토콜이며, 상기 방법은,
    상기 선호되는 프로토콜이 호스트 컴퓨터와의 접촉을 개시하는 데 성공적으로 이용되는 경우에, 상기 선호되는 프로토콜을 나타내기 위하여 상기 성공적인 프로토콜의 표시자를 업데이트하는 단계를 더 포함하는, 데이터 전송 프로토콜 선택 방법.
  8. 제7항에 있어서,
    상기 선호되는 프로토콜은 MTP 프로토콜인, 데이터 전송 프로토콜 선택 방법.
  9. 제6항에 있어서,
    상기 카운트는 상기 디바이스가 겪은 임의의 호스트 컴퓨터로의 물리적 부착의 횟수의 표시(indication)인, 데이터 전송 프로토콜 선택 방법.
  10. 적어도 2개의 프로토콜들 중 하나를 자동으로 선택하기 위한 미디어 저장 디바이스로서,
    임의의 호환가능 호스트 컴퓨터로의 접속을 위한 물리적 인터페이스;
    상기 디바이스의 상기 임의의 호환가능 호스트 컴퓨터와의 부착 및 제거의 검출을 위한 삽입 및 제거 검출기;
    접속된 호스트 컴퓨터와의 통신을 개시하는 데 이용되고 있는 프로토콜이 실패하였는지를 결정하는 프로토콜 실패 검출기;
    상기 접속된 호스트 컴퓨터와의 통신을 만들고 중단하는 것을 논리적으로 시뮬레이팅(simulating)하는 접속 및 접속해제 에뮬레이터(emulator);
    임의의 호환가능 호스트 컴퓨터와의 통신을 설정하는 데 있어서 어느 프로토콜이 최근에 성공적이었나를 나타내는 성공 표시자; 및
    상기 디바이스의 타겟 호스트 컴퓨터로의 부착을 검출하는 것, 상기 타겟 호스트 컴퓨터와의 통신을 위해 초기 프로토콜을 시도하는 것, 상기 프로토콜 실패 검출기가, 상기 초기 프로토콜이 상기 타겟 호스트 컴퓨터와의 통신을 개시하는 데 실패하였음을 나타내는 경우에 상기 타겟 호스트 컴퓨터에 대해 논리적으로 접속해 제 및 재접속하는 것, 상기 타겟 호스트 컴퓨터와의 통신을 위해 제2 프로토콜을 시도하는 것, 및 상기 타겟 호스트 컴퓨터와의 통신에 대해 어느 프로토콜이 성공적이었는지를 기록하도록 상기 성공 표시자를 설정하는 것을 조정하는 내부 제어 로직 -상기 성공 표시자는 상기 디바이스의 후속하는 물리적 부착에서 데이터 프로토콜을 선택하기 위해 이용됨-
    을 포함하는 미디어 저장 디바이스.
  11. 제10항에 있어서,
    상기 디바이스에 디지털 미디어를 저장하는 데이터베이스; 및
    다수의 인덱스 플래그 -각각의 인덱스 플래그는 상기 데이터베이스의 다수의 저장 영역의 각각과 연관되며, 설정된 경우에, 연관된 저장 영역에 저장된 디지털 미디어의 인덱스가 업데이트되지 않았다는 것을 나타냄-
    를 더 포함하는 미디어 저장 디바이스.
  12. 제11항에 있어서,
    상기 적어도 2개의 프로토콜들은 USB MSD(mass storage device) 프로토콜 및 USB MTP를 포함하는 미디어 저장 디바이스.
  13. 제12항에 있어서,
    상기 디바이스가 MTP를 이용하여 접속되고, 이전의 부착에서는 MSC 프로토콜 을 이용하였으며, 그 때 상기 데이터베이스로의 디지털 컨텐트의 기입이 이루어진 경우, 저장된 디지털 미디어의 인덱스가 업데이트되는 미디어 저장 디바이스.
  14. 제10항에 있어서,
    상기 데이터베이스로의 저장 영역과 연관된 기입 검출기를 더 포함하고,
    상기 기입 검출기는 상기 데이터베이스의 저장 영역으로의 기입을 검출하고 관련 인덱스 플래그를 설정하는 미디어 저장 디바이스.
  15. 제10항에 있어서,
    상기 물리적 인터페이스는 USB 인터페이스, 파이어와이어(firewire) 인터페이스, WiFi 인터페이스, 이더넷(Ethernet) 인터페이스 및 소넷(Sonet) 인터페이스 중 하나를 포함하는 미디어 저장 디바이스.
  16. 제10항에 있어서,
    임의의 호스트 컴퓨터로의 물리적 접속이 이루어진 횟수를 카운트하는 접속 카운트를 더 포함하고,
    상기 카운트가 소정의 값을 초과하는 경우에, 상기 카운터는 상기 디바이스로 하여금 상기 MTP의 이용을 시도하게 하는 데 이용되는 미디어 저장 디바이스.
  17. 제10항에 있어서,
    임의의 호스트 컴퓨터에 대해 이루어진 물리적 접속들 간의 시간량을 카운트하는 클럭 카운터를 더 포함하고,
    상기 카운트가 소정의 값을 초과하는 경우에, 상기 카운터는 상기 디바이스로 하여금 상기 MTP의 이용을 시도하게 하는 데 이용되는 미디어 저장 디바이스.
  18. 데이터베이스를 포함하는 미디어 저장 디바이스에 대한 컨트롤러에 대한 명령어들을 갖는 컴퓨터 판독가능 매체로서, 상기 미디어 저장 디바이스는 프로토콜을 선택하는 방법을 수행하고, 상기 방법은,
    디바이스의 호스트 컴퓨터로의 물리적 부착을 검출하는 단계 -상기 디바이스는 적어도 2개의 데이터 전송 프로토콜을 이용할 수 있으며, 상기 프로토콜은 MSC 프로토콜 및 MTP를 포함함-;
    상기 디바이스에 의해 초기 시도 프로토콜을 포함하는 제1 데이터 전송 프로토콜의 이용을 시도하는 단계;
    상기 제1 데이터 전송 프로토콜이 상기 호스트 컴퓨터와의 통신을 개시하는 데에 실패하면, 상기 디바이스를 논리적으로 접속해제한 후에 상기 디바이스를 논리적으로 재접속하는 단계;
    상기 디바이스에 의해 제2 데이터 전송 프로토콜의 이용을 시도하는 단계 -상기 제2 데이터 전송 프로토콜은 상기 호스트 컴퓨터와의 통신을 개시하는 데 있어 성공적인 프로토콜임-; 및
    성공 플래그를 상기 성공적인 프로토콜의 표시자가 되게 설정하는 단계 -상 기 성공 플래그는 상기 디바이스의 호스트 컴퓨터로의 후속적인 물리적 부착에서 초기 시도 프로토콜을 선택하기 위해 이용됨-
    를 포함하는 컴퓨터 판독가능 매체.
  19. 제18항에 있어서,
    상기 방법은,
    상기 디바이스가 상기 MSC 프로토콜을 이용하여 동작되고 있을 때 메모리로의 기입이 수행되었는지를 결정하기 위해 인덱스 플래그를 테스트하고, 만일 트루(true)라면, 상기 MTP 프로토콜을 이용하여 동작하는 동안 상기 데이터베이스 상의 디지털 미디어의 인덱스를 업데이트하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  20. 제18항에 있어서,
    상기 방법은,
    상기 디바이스의 상기 호스트 컴퓨터로부터의 물리적 접속해제를 감지하는 단계;
    상기 디바이스의 호스트 컴퓨터로의 후속적인 물리적 부착을 검출하는 단계;
    소정의 카운트가 초과되지 않은 경우에, 상기 성공 플래그에 의해 식별된 성공 프로토콜의 이용을 시도하는 단계; 및
    소정의 카운트가 초과된 경우에, 호스트 컴퓨터와의 통신을 설정하기 위하여 상기 MTP 프로토콜의 이용을 시도하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
KR1020087020679A 2006-02-27 2007-01-20 부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체 KR20080096572A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/364,772 US20070204089A1 (en) 2006-02-27 2006-02-27 Multi-protocol removable storage device
US11/364,772 2006-02-27

Publications (1)

Publication Number Publication Date
KR20080096572A true KR20080096572A (ko) 2008-10-30

Family

ID=38445377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087020679A KR20080096572A (ko) 2006-02-27 2007-01-20 부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체

Country Status (11)

Country Link
US (1) US20070204089A1 (ko)
EP (1) EP1989857B1 (ko)
JP (1) JP5021685B2 (ko)
KR (1) KR20080096572A (ko)
CN (1) CN101589592B (ko)
AU (1) AU2007221429B2 (ko)
BR (1) BRPI0707564A2 (ko)
CA (1) CA2636649A1 (ko)
IL (1) IL192624A (ko)
RU (1) RU2434269C2 (ko)
WO (1) WO2007100424A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024757A1 (en) * 2004-07-30 2009-01-22 Proctor David W Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
JP4241681B2 (ja) * 2005-07-05 2009-03-18 ブラザー工業株式会社 情報処理装置、およびプログラム
FR2896884A1 (fr) * 2006-01-27 2007-08-03 St Microelectronics Sa Test de scan
US8190658B2 (en) * 2006-03-14 2012-05-29 Korea Institute Of Science And Technology Intelligent computing device agent system for automatic recognition of multi user computing environment and information sharing setup
US7562159B2 (en) * 2006-04-28 2009-07-14 Mediatek Inc. Systems and methods for selectively activating functions provided by a mobile phone
US8793390B2 (en) * 2006-05-23 2014-07-29 Blue Coat Systems, Inc. Systems and methods for protocol detection in a proxy
KR100784975B1 (ko) * 2006-10-09 2007-12-11 삼성전자주식회사 이동통신 단말기의 데이터베이스 운용 방법 및 장치
WO2008075361A2 (en) * 2006-12-20 2008-06-26 Sandisk Il Ltd. Apparatus, method and computer readable medium for disambiguating commands with respect to logical protocols
KR100877065B1 (ko) * 2007-01-12 2009-01-09 삼성전자주식회사 통신 프로토콜 결정 방법 및 장치
US20080288099A1 (en) * 2007-05-18 2008-11-20 William Thanos Digital media player with improved user experience
US20080288096A1 (en) * 2007-05-18 2008-11-20 William Thanos Digital media player with circuitry for avoiding refreshing a database of metadata associated with digital media content
US8655463B2 (en) * 2007-05-18 2014-02-18 Sandisk Technologies Inc. Method for avoiding refreshing a database of metadata associated with digital media content
US20080288097A1 (en) * 2007-05-18 2008-11-20 William Thanos Method for improving a digital media player experience
US8892767B1 (en) * 2007-09-26 2014-11-18 Qualcomm Incorporated Method and apparatus for communication of a target over point-to-point interface with a host managing wireless LAN services and target resources
US20090193153A1 (en) * 2007-12-26 2009-07-30 Thanos William N MTP-capable USB device and methods for use therewith
US8959188B2 (en) * 2008-10-01 2015-02-17 Nokia Corporation Method, system, and apparatus for configuring network accounts on devices for use therewith
JP5319238B2 (ja) * 2008-10-29 2013-10-16 真二 栗本 情報処理システム、情報処理装置、情報処理方法、および情報処理プログラム
US8631284B2 (en) 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US8762682B1 (en) 2010-07-02 2014-06-24 Western Digital Technologies, Inc. Data storage apparatus providing host full duplex operations using half duplex storage devices
KR20130056539A (ko) * 2011-11-22 2013-05-30 삼성전자주식회사 미디어 전송 프로토콜을 지원하는 디바이스와 통신을 수행하기 위한 휴대용 단말기의 장치 및 방법
US9537899B2 (en) * 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
CN102981990B (zh) * 2012-11-09 2015-07-22 青岛海信移动通信技术股份有限公司 采用Android平台终端设备的数据传输方法及装置
WO2014087844A1 (ja) * 2012-12-06 2014-06-12 コニカミノルタ株式会社 パルスオキシメトリーシステム、その構築のためのサブシステムおよび通信変換装置
US20140256286A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Intelligent Protocol Selection
CN103995943A (zh) * 2014-06-09 2014-08-20 上海华力微电子有限公司 电路后仿真方法
CN105589657A (zh) * 2014-10-23 2016-05-18 中兴通讯股份有限公司 一种实现移动存储挂载的方法及装置
FR3038407B1 (fr) * 2015-07-02 2017-07-21 Peugeot Citroen Automobiles Sa Organe maitre a moyens d’analyse de defaut de la couche physique d’un reseau video bidirectionnel
US10013181B2 (en) * 2015-12-07 2018-07-03 International Business Machines Corporation Distributed storage of data in a local storage and a heterogeneous cloud
US10171585B2 (en) 2015-12-07 2019-01-01 International Business Machines Corporation Method, system, and computer program product for distributed storage of data in a heterogeneous cloud
US10122832B2 (en) 2015-12-07 2018-11-06 International Business Machines Corporation Communications of usernames and passwords to a plurality of cloud storages via a plurality of communications protocols that change over time
CN106778321B (zh) * 2016-11-18 2020-06-05 东软集团股份有限公司 权限控制方法和装置
EP3811592A1 (en) * 2018-06-25 2021-04-28 Telefonaktiebolaget LM Ericsson (publ) Communication protocol discover method in constrained application protocol (coap)
CN109298956B (zh) * 2018-10-09 2020-07-28 Oppo广东移动通信有限公司 文件传输方法、装置及终端设备
CN109271266B (zh) * 2018-10-09 2020-07-28 Oppo广东移动通信有限公司 文件传输方法、装置及终端设备
CN111414322B (zh) * 2020-03-19 2021-10-22 江苏芯盛智能科技有限公司 一种Nand flash接口工作协议自适应方法、系统、设备及存储介质
CN111800403A (zh) * 2020-06-29 2020-10-20 南京酷开智慧屏科技有限公司 一种用于触点通信的多协议通信方法及系统
CN112731875B (zh) * 2020-12-21 2022-09-13 珠海格力电器股份有限公司 目标设备控制方法及装置、非易失性存储介质和处理器
WO2023065162A1 (zh) * 2021-10-20 2023-04-27 深圳市大疆创新科技有限公司 移动存储装置的数据传输方法、装置和存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3161910B2 (ja) * 1994-07-26 2001-04-25 シャープ株式会社 通信装置
JPH098946A (ja) * 1995-06-21 1997-01-10 Hitachi Ltd 情報処理装置
US6721859B1 (en) * 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
US6484219B1 (en) * 2000-02-04 2002-11-19 Microsoft Corporation Host-specified USB device requests
JP2001222503A (ja) * 2000-02-08 2001-08-17 Ricoh Co Ltd 周辺機器制御システム
JP4659175B2 (ja) * 2000-04-25 2011-03-30 富士通東芝モバイルコミュニケーションズ株式会社 携帯通信端末
US7039727B2 (en) * 2000-10-17 2006-05-02 Microsoft Corporation System and method for controlling mass storage class digital imaging devices
EP1241857A1 (en) * 2001-03-15 2002-09-18 Nokia Corporation Method for accessing files stored in a mobile terminal device supporting an internet protocol
CN1122281C (zh) * 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
JP2004094514A (ja) * 2002-08-30 2004-03-25 Japan Radio Co Ltd 初期化方法及びusbドライバ
US8028078B2 (en) * 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
JP4318075B2 (ja) * 2003-08-29 2009-08-19 富士フイルム株式会社 Usbファンクション装置
JP4539115B2 (ja) * 2004-02-25 2010-09-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100647370B1 (ko) * 2004-04-20 2006-11-23 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템
CN1331037C (zh) * 2004-06-03 2007-08-08 旺玖科技股份有限公司 一种具有多重接口功能的存储卡及其传输模式选择方法
US7668404B2 (en) 2004-06-30 2010-02-23 Lexmark International, Inc. Method and system of deskewing an image using monochrome conversion to separate foreground from background
US7536486B2 (en) * 2004-07-30 2009-05-19 Microsoft Corporation Automatic protocol determination for portable devices supporting multiple protocols
US7555554B2 (en) * 2004-08-06 2009-06-30 Microsoft Corporation System and method for generating selectable extension to media transport protocol
JP4907900B2 (ja) * 2005-04-27 2012-04-04 京セラ株式会社 接続装置及び接続方法
JP2007179332A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに、記録媒体
JP2007179410A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理システム、情報処理装置、および、情報処理方法、プログラム、並びに、記録媒体

Also Published As

Publication number Publication date
CN101589592B (zh) 2013-03-27
AU2007221429B2 (en) 2010-09-16
IL192624A (en) 2012-05-31
JP5021685B2 (ja) 2012-09-12
CA2636649A1 (en) 2007-09-07
EP1989857A1 (en) 2008-11-12
EP1989857A4 (en) 2014-08-20
AU2007221429A1 (en) 2007-09-07
RU2434269C2 (ru) 2011-11-20
RU2008134885A (ru) 2010-03-10
IL192624A0 (en) 2009-02-11
JP2009528616A (ja) 2009-08-06
US20070204089A1 (en) 2007-08-30
BRPI0707564A2 (pt) 2011-05-10
CN101589592A (zh) 2009-11-25
EP1989857B1 (en) 2015-12-02
WO2007100424A1 (en) 2007-09-07

Similar Documents

Publication Publication Date Title
KR20080096572A (ko) 부착된 디바이스에 의해 데이터 전송 프로토콜을 선택하는 방법, 미디어 저장 디바이스 및 컴퓨터 판독가능 매체
US20090024757A1 (en) Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
CN100407151C (zh) 用于管理多个热插拔操作的系统和方法
US20120272095A1 (en) Computer booting method and computer system
US8185673B2 (en) Information processing apparatus, and method for controlling the same
JP2012508932A (ja) キャッシュデータおよびメタデータを管理すること
US10754737B2 (en) Boot assist metadata tables for persistent memory device updates during a hardware fault
EP2650781A2 (en) Method for detecting hardware
CN109960678B (zh) 一种命名处理方法及计算机处理装置
CN108829619A (zh) 一种硬盘id连续拓扑结构及硬盘id定位方法
CN106484719B (zh) 一种扩展手机存储的方法及终端
CN110399168B (zh) 多数据盘存储服务器的系统启动方法、装置及设备
CN106775485B (zh) 一种基于移动终端的sd卡格式化的方法及系统
US20070198822A1 (en) Method for changing booting sources of a computer system and a related backup/restore method thereof
US20090019211A1 (en) Establishing A Redundant Array Of Inexpensive Drives
US7409519B2 (en) Synchronizing logical systems
US10911259B1 (en) Server with master-slave architecture and method for reading and writing information thereof
TWI461904B (zh) Linux FAT檔案系統修復方法及裝置
US7421574B2 (en) Method for auto-executing and booting-host computer through semiconductor storage device
CN100541432C (zh) 一种电脑系统的加载方法
US20080281992A1 (en) Method for detecting order of attached devices and computer readable storage media storing program thereof
MX2008009872A (en) Multi-protocol removable storage device
CN116881001B (zh) 多dpu宿主机的云平台的管控方法、装置、设备及介质
JP5056567B2 (ja) 情報処理装置
EP1914628A1 (en) Method for changing booting sources of computer system and related backup/restore method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application