KR20150071946A - 데이터 처리 장치 및 데이터 처리 방법 - Google Patents

데이터 처리 장치 및 데이터 처리 방법 Download PDF

Info

Publication number
KR20150071946A
KR20150071946A KR1020130159090A KR20130159090A KR20150071946A KR 20150071946 A KR20150071946 A KR 20150071946A KR 1020130159090 A KR1020130159090 A KR 1020130159090A KR 20130159090 A KR20130159090 A KR 20130159090A KR 20150071946 A KR20150071946 A KR 20150071946A
Authority
KR
South Korea
Prior art keywords
packet
data
unit
status
command
Prior art date
Application number
KR1020130159090A
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 한국전자통신연구원
Priority to KR1020130159090A priority Critical patent/KR20150071946A/ko
Priority to US14/560,554 priority patent/US20150180777A1/en
Publication of KR20150071946A publication Critical patent/KR20150071946A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

본 발명의 실시예에 따른 데이터 전송 장치는 단말 통신부, 명령어 블록 래퍼 패킷에 기초하여 명령어 패킷을 추출하는 제1 제어부, 명령어 패킷을 제2 유닛으로 전송하는 제1 유닛 통신부, 제1 유닛 통신부가 제2 유닛으로부터 명령어 패킷에 대응한 하나 이상의 데이터 패킷에 기초하여 생성된 데이터 스테이터스 패킷을 수신하는 경우, 제1 제어부는 호스트 단말기의 데이터 전송 요청에 관한 패킷에 대응하여, 데이터 스테이터스 패킷에서 데이터 패킷을 추출하고, 단말 통신부는 데이터 스테이터스 패팃에서 추출된 데이터 패킷을 호스트 단말기로 전송한다.

Description

데이터 처리 장치 및 데이터 처리 방법{APPARATUS FOR PROCESSING DATA AND METHOD THEREOF}
본 발명은 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다. 보다 상세하게는 USB 디바이스와 호스트간의 데이터를 처리하는 장치 및 방법에 관한 것이다.
범용 직렬 버스(Universal Serial Bus. USB)는 컴퓨터와 근거리에서 키보드, 프린터 또는 이동식 하드와 같은 디바이스를 연결하기 위해 사용되는 인터페이스이다. 또한 USB는 마이크로소프트, 컴팩, DEC, IBM, 캐나다 노텔, NEC 등 7개사가 공동으로 제안하고 있는 새로운 주변 기기 접속 인터페이스 규격이다.
USB를 이용할 경우 마우스, 프린터, 모뎀, 스피커 등을 비롯한 주변 기기 등을 개인용 컴퓨터(PC)에 접속하기 위한 인터페이스의 공동화를 할 수 있다. 또한 주변 기기 등을 PC와 연결할 때 소프트웨어나 하드웨어를 별도로 설정할 필요 없이 모든 주변 기기를 동일한 접속기로 접속하기 때문에 포트의 수를 획기적으로 줄일 수 있을 뿐만 아니라 설치가 간편하고, 휴대형 PC의 소형화가 가능하게 되는 장점이 있다.
근래에는 호스트 단말기와 USB를 이용하는 USB 디바이스간 통신을 함에 있어서, 중간에 별도의 데이터 처리 장치를 거쳐 통신을 하고 있다. 특히 데이터 처리 장치를 이용하는 경우는 호스트 단말기와 USB 디바이스간 거리가 어느 정도 떨어져 있는 경우이다.
그런데 호스트 단말기와 USB 디바이스간 거리가 떨어져 통신하는 경우, 라운드 트립 딜레이 등으로 인하여, 통신 속도가 저하되는 문제가 있었다.
선행문헌1: 한국 공개특허: 제10-2013-0122339호(발명의 명칭: 무선 USB 네트워크에서 무선 USB 장치 이동시 자원 예약 분쟁을 회피하는 예약 방법)
본 발명이 해결하고자 하는 과제는 USB 디바이스간 거리가 떨어져 통신하는 경우에도 라운드 트립 딜레이 등이 발생하지 않아, 통신 속도가 저하되는 문제를 해결하는 것이다.
본 발명의 실시예에 따른 데이터 전송 장치는 단말 통신부; 명령어 블록 래퍼 패킷에 기초하여 명령어 패킷을 추출하는 제1 제어부; 상기 명령어 패킷을 제2 유닛으로 전송하는 제1 유닛 통신부; 상기 제1 유닛 통신부가 상기 제2 유닛으로부터 상기 명령어 패킷에 대응한 하나 이상의 데이터 패킷에 기초하여 생성된 데이터 스테이터스 패킷을 수신하는 경우, 상기 제1 제어부는 호스트 단말기의 데이터 전송 요청에 관한 패킷에 대응하여, 상기 데이터 스테이터스 패킷에서 데이터 패킷을 추출하고, 상기 단말 통신부는 상기 데이터 스테이터스 패팃에서 추출된 데이터 패킷을 상기 호스트 단말기로 전송한다.
상기 제1 제어부는 상기 제1 유닛 통신부가 상기 호스트 단말로부터 하나 이상의 데이터 패킷을 수신하는 경우, 상기 호스트 단말기로부터 수신된 하나 이상의 데이터 패킷에 기초하여 통합 데이터 패킷을 생성하고, 상기 제1 유닛 통신부는 상기 통합 데이터 패킷을 상기 제2 유닛으로 전송할 수 있다.
상기 명령어 패킷은 상기 호스트 단말기로부터의 데이터의 패킷의 전송, 상기 호스트 단말기로의 데이터 송신 또는 계산에 관한 정보에 관한 명령어 패킷이고, 상기 명령어 패킷의 식별자 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 및 상기 명령어 블록 래퍼 패킷 내부의 명령어 블록을 포함할 수 있다.
상기 통합 데이터 패킷은 디바이스에서 상기 호스트 단말기로 하나 이상의 데이터를 전송하고자 할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 데이터를 담고 있는 데이터 필드를 포함할 수 있다.
상기 통합 데이터 패킷에 포함되는 데이터의 크기는 통신 환경에 따라 가변적일 수 있다.
상기 제1 제어부는 상기 제1 유닛 통신부가 상기 제2 유닛으로부터 스테이터스 패킷을 수신하는 경우, 상기 스테이터스 패킷에 기초하여 명령어 상태 래퍼 패킷으로 재구성하고, 상기 단말 통신부는 상기 호스트 단말기의 데이터 전송 요청에 관한 패킷에 기초하여 명령어 상태 래퍼 패킷을 전송할 수 있다.
본 발명의 실시예에 따른 데이터 전송 장치는 명령어 패킷을 수신하는 제2 유닛 통신부; 상기 명령어 패킷을 명령어 블록 래퍼 패킷으로 재구성하는 제2 제어부; 및 상기 명령어 블록 래퍼 패킷을 디바이스로 전송하는 디바이스 통신부를 포함하고, 상기 제2 제어부는 상기 디바이스 통신부로 하나 이상의 데이터 패킷이 수신되는 경우, 상기 디바이스 통신부로 수신된 하나 이상의 데이터 패킷에 기초하여 데이터 스테이터스 패킷을 생성하고, 상기 제2 유닛 통신부는 상기 테이터 스테이터스 패킷을 제1 유닛에 전송한다.
상기 제2 제어부는 상기 제2 유닛 통신부가 상기 제1 유닛으로부터 통합 데이터 패킷을 수신하는 경우, 상기 상기 통합 데이터 패킷에서 데이터 패킷을 추출하고, 상기 디바이스 통신부는 상기 제2 제어부에 의해 추출된 데이터 패킷을 상기 디바이스로 전송할 수 있다.
상기 디바이스 통신부는 상기 제2 제어부에 의해 추출된 데이터 패킷의 전송이 종료된 경우, 상기 디바이스로부터 명령어 상태 래퍼 패킷을 수신하고, 상기 제어부는 상기 명령어 상태 래퍼 패킷에서 스테이터스 패킷을 추출하고, 상기 제2 유닛 통신부는 상기 스테이터스 패킷을 상기 제1 유닛으로 전송할 수 있다.
상기 데이터 스테이터스 패킷은 상기 디바이스에서 호스트 단말기로 하나 이상의 데이터 패킷 및 상태 정보를 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 데이터를 담고 있는 데이터 필드 및 상기 상태 정보를 담고 있는 상태 필드를 포함할 수 있다.
상기 데이터 스테이터스 패킷에 포함되는 데이터의 크기는 통신 환경에 따라 가변적일 수 있다.
상기 데이터 스테이터스 패킷은 상기 호스트 단말기가 예측한 수신 받을 데이터 양과 상기 디바이스가 보낼 데이터 양의 차이가 발생할 경우, 상기 호스트 단말기가 예측한 수신 받을 데이터 양 및 상기 디바이스가 보낼 데이터 양의 차를 포함하는 데이터레지두 필드를 더 포함할 수 있다.
상기 스테이터스 패킷은 상기 디바이스에서 상기 호스트 단말기로 상기 명령어 상태 래퍼 패킷과 상태정보를 함께 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 상기 상태 정보 포함할 수 있다.
상기 스테이터스 패킷은 데이터레지두 필드를 더 포함할 수 있다.
본 발명의 실시예에 따른 데이터 전송 방법은 제1 유닛이 전송받은 명령어 블록 래퍼 패킷에 기초하여 추출된 명령어 패킷을 제2 유닛으로 전송하는 단계; 상기 제2 유닛이 상기 명령어 패킷에 기초하여 재구성한 명령어 블록 래퍼 패킷을 디바이스로 전송하는 단계; 상기 디바이스가 하나 이상의 데이터를 상기 제2 유닛으로 전송하는 경우, 상기 제2 유닛이 상기 하나 이상의 데이터를 모아 데이터 스테이터스 패킷으로 제1 유닛에 전송하는 단계; 및 상기 제1 유닛이 상기 호스트 단말기로 상기 데이터 스테이터스 패킷에서 데이터 패킷을 추출하여 전송하는 단계를 포함한다.
상기 호스트 단말기가 하나 이상의 데이터를 상기 제1 유닛으로 전송하는 경우, 상기 제1 유닛이 상기 하나 이상의 데이터를 모아 통합 데이터 패킷으로 제2 유닛에 전송하는 단계; 및 상기 제2 유닛이 상기 디바이스로 상기 통합 데이터 패킷에서 데이터 패킷을 추출하여 전송하는 단계를 더 포함할 수 있다.
상기 제2 유닛의 상기 디바이스로 상기 통합 데이터 패킷에서 추출된 데이터 패킷 전송이 종료된 경우, 상기 제2 유닛이 상기 디바이스로부터 명령어 상태 래퍼 패킷을 수신하는 단계; 상기 제2 유닛이 명령어 상태 래퍼 패킷에서 스테이터스 패킷을 추출하여 상기 호스트 단말기로 전송하는 단계를 더 포함할 수 있다.
상기 명령어 패킷은 상기 호스트 단말기로부터의 데이터의 패킷의 전송, 상기 호스트 단말기로의 데이터 송신 또는 계산에 관한 정보에 관한 명령어 패킷이고, 상기 명령어 패킷의 식별자 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 및 상기 명령어 블록 래퍼 패킷 내부의 명령어 블록을 포함할 수 있다.
상기 데이터 스테이터스 패킷은 상기 디바이스에서 호스트 단말기로 하나 이상의 데이터 패킷 및 상태 정보를 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 데이터를 담고 있는 데이터 필드 및 상기 상태 정보를 담고 있는 상태 필드를 포함할 수 있다.
상기 통합 데이터 패킷은 디바이스에서 상기 호스트 단말기로 하나 이상의 데이터를 전송하고자 할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 데이터를 담고 있는 데이터 필드를 포함할 수 있다.
본 발명의 실시예에 따르면, 제1 유닛 또는 제2 유닛이 데이터를 모아서 별도의 패킷을 구성하여 전송함에 따라서, 제1 유닛 및 제2 유닛간 데이터 전송횟수를 줄여 유닛간 데이터 전송속도를 증가시킨다.
본 발명의 실시예에 다르면, 제1 유닛이 아웃 패킷과 데이터 패킷에 기초한 패킷을 생성함으로써, 라운드 트립 딜레이가 발생하지 않게 한다.
도 1은 본 발명의 실시예에 따른 데이터 통신 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 USB Mass Storage Protocol Layer이다.
도 3은 본 발명의 실시예에 따른 USB Mass Storage transport에 따른 흐름을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 제1 유닛의 블록도이다.
도 5는 본 발명의 실시예에 따른 제2 유닛의 블록도이다.
도 6은 본 발명의 실시예에 따른 디바이스의 데이터 수신시의 흐름을 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 디바이스의 데이터 전송시의 흐름을 나타낸 도면이다.
도 8은 본 발명의 실시예에 따른 이더넷 환경에서 데이터 전송 패킷 포맷을 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 USB over Network 환경에서 데이터 전송 패킷 포맷을 나타낸 제1 참조도면이다.
도 10 및 도 11은 명령어 블록 래퍼에 관한 도면이다.
도 12는 본 발명의 실시예에 따른 USB over Network환경에서 데이터 전송 패킷 포맷을 나타낸 제2 참조도면이다.
도 13은 비교예에 따른 호스트 단말기의 데이터 수신시의 흐름을 나타낸 도면이다.
도 14는 비교예에 따른 호스트 단말기의 데이터 전송시의 흐름을 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 데이터 처리 장치 및 데이터 처리 방법에 대하여 도면을 참고로 하여 상세하게 설명한다.
먼져 도 1을 참조하여, 데이터 통신 시스템에 대하여 설명한다.
도 1은 본 발명의 실시예에 따른 데이터 통신 시스템의 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 데이터 통신 시스템은 호스트(Host) 단말기(100), 제1 유닛(200), 제2 유닛(300) 및 디바이스(400)을 포함한다.
호스트(Host) 단말기(100)는 제1 유닛(200)과 데이터를 통신한다. 또한 본 발명의 실시예에 따른 호스트 단말기(100)는 단말기는 이동 가능 여부에 따라 이동 단말기(mobile/portable terminal) 및 고정 단말기(stationary terminal)로 나뉠 수 있다. 다시 이동 단말기는 사용자의 직접 휴대 가능 여부에 따라 휴대(형) 단말기(handheld terminal) 및 거치형 단말기(vehicle mount terminal)로 나뉠 수 있다.
본 명세서에서 설명되는 호스트 단말기(100)에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 디지털 TV, 데스크탑 컴퓨터 중 어느 하나 일 수 있다. 그러나 본 발명은 이에 한정되지 않고, 제1 유닛(200)과 데이터를 통신하는 단말기에 적용 가능하다.
제1 유닛(200)은 호스트 단말기(100) 또는 제2 유닛(300)과 통신한다.
본 발명의 실시예에 따른 제1 유닛(200)은 호스트 단말기(100)와 USB로 통신할 수 있다. 또한 제1 유닛(200)은 제2 유닛(300)과 렌(LAN), IP 네트워트, 또는 유선 케이블 이용하여 통신할 수도 있다. 그러나 본 발명은 이에 한정되지 않는다. 제1 유닛(200)은 제2 유닛(300)과 통신 방법에 상관 없이 데이터 통신할 수 있다. 본 발명의 실시예에 따른 제1 유닛(200)은 호스트 단말기(100)와 USB로 연결되어 통신을 수행할 수 있게 한다.
제2 유닛(300)는 제1 유닛(200) 또는 디바이스(400)와 통신한다. 본 발명의 실시예에 따른 제2 유닛(300)은 디바이스(400)와 USB로 통신할 수 있다. 또한 제2 유닛(300)은 제1 유닛(200)과 렌(LAN), IP 네트워트, 또는 유선 케이블 이용하여 통신할 수도 있다. 그러나 본 발명은 이에 한정되지 않는다. 제2 유닛(300)은 제1 유닛(200)과 통신 방법에 상관 없이 데이터 통신할 수 있다. 본 발명의 실시예에 따른 제2 유닛(300)은 디바이스(400)와 USB로 연결되어 통신을 수행할 수 있게 한다.
디바이스(400)는 USB로 통신 가능한 디바이스 일 수 있다. 이하에서는 디바이스(400)가 USB 저장 매체(USB Mass Storage)인 것을 예를 들어 설명하겠다.
도 2는 본 발명의 실시예에 따른 USB Mass Storage Protocol Layer이다.
USB Mass Storage 디바이스(400)가 데이터를 주고 받기 위해서는 총 3계의 프로토콜 레이어를 거쳐야 한다. 도 2를 참조하면, 본 발명의 실시예에 따른 USB Mass Storage 디바이스(400)의 USB 통신은 기본적인 USB 프로토콜 위에 USB Mass Storage Class Transport 프로토콜이 적용되고, 다시 그 위에 SCSI Primary and Block Commands-2 (SPC-2, SBC-2)가 적용된다. 이는 호스트 단말기(100)에도 적용 가능하다.
또한 본 발명의 실시예에 따른 USB Mass Storage 디바이스(400)는 USB Mass Storage Class Bulk-Only Transport specification을 따른다. 이 specification이 제시하는 프로토콜은 [도 3]에 제시된 대로 세 단계로 구분된다.
도 3은 본 발명의 실시예에 따른 USB Mass Storage transport에 따른 흐름을 나타낸 도면이다.
도 3을 참조하면, 명령어 블록 래퍼(Command Block Wrapper, CBW, 이하 CBW라고 함.)는 데이터 전송에 대한 명령을 포함한다. 예를 들어 CBW는 명령어 블록(command block)에 대한 정보를 포함할 수 있다. 본 발명의 실시예에 따르면 CBW의 포함된 정보에 따라 디바이스(400)의 데이터가 디바이스(400)에서 호스트 단말기(100)로 전송될 수 있다(Data In from host).
또한 호스트 단말기의 데이터가 호스트 단말기(100)에서 디바이스(400)로 데이터 전송이 이뤄질 수도 있다(Data Out from host).
CBW가 디바이스로 전달된 후 Command Block Wrapper (CBW)의 내용에 따라 데이터 트랜잭션이 이뤄진다. 이후 디바이스(400)는 전송결과상태정보를 명령어 상태 래퍼(Command Status Wrapper, CSW, 이하 CSW라고 함)에 실어 보낸다.
도 4는 본 발명의 실시예에 따른 제1 유닛의 블록도이다.
본 발명의 실시예에 따른 제1 유닛(200)는 단말 통신부(210), 제1 유닛 통신부(220), 제1 저장부(230) 및 제1 제어부(240)를 포함한다. 그러나 도 4에 도시된 구성이 필수적인 구성이 아니라, 본 발명은 얼마든지 적거나 많은 구성을 포함하는 제1 유닛(200)에도 적용이 가능하다.
단말 통신부(210)는 호스트 단말기(100)와 통신한다. 단말 통신부(210)는 USB로 호스트 단말기(100)와 통신할 수도 있다.
제1 유닛 통신부(220)는 제2 유닛(300)의 제2 유닛 통신부(320)와 통신한다. 제1 유닛 통신부(220)는 제2 유닛(300)의 제2 유닛 통신부(320)와 유선 또는 무선 통신을 한다. 본 발명은 제1 유닛 통신부(220)와 제2 유닛 통신부(320)의 통신 방식에 상관없이 적용 가능하다.
제1 저장부(230)는 제1 유닛(200)으로 수신된 각종 데이터를 저장한다. 또한 제1 유닛(200)을 동작시키기 위한 알고리즘 또는 프로그램이 저장될 수도 있다.
제1 제어부(240)는 제1 유닛(200)의 전반적인 동작을 제어한다.
도 5는 본 발명의 실시예에 따른 제2 유닛의 블록도이다.
본 발명의 실시예에 따른 제2 유닛(300)는 디바이스 통신부(310), 제2 유닛 통신부(320), 제2 저장부(330) 및 제2 제어부(340)를 포함한다. 그러나 도 4에 도시된 구성이 필수적인 구성이 아니라, 본 발명은 얼마든지 적거나 많은 구성을 포함하는 제1 유닛(200)에도 적용이 가능하다.
디바이스 통신부(310)는 디바이스(400)와 통신한다. 디바이스 통신부(310)는 USB로 디바이스(400)와 통신할 수도 있다.
제2 유닛 통신부(320)는 제1 유닛(200)의 제1 유닛 통신부(220)와 통신한다. 제2 유닛 통신부(320)는 제1 유닛(200)의 제1 유닛 통신부(220)와 유선 또는 무선 통신을 한다. 본 발명은 제1 유닛 통신부(220)와 제2 유닛 통신부(320)의 통신 방식에 상관없이 적용가능하다.
제2 저장부(330)는 제2 유닛(300)으로 수신된 각종 데이터를 저장한다. 또한 제2 유닛(300)을 동작시키기 위한 알고리즘 또는 프로그램이 저장될 수도 있다.
제2 제어부(340)는 제2 유닛(300)의 전반적인 동작을 제어한다.
다음은 도 6을 참조하여 본 발명의 실시예에 따른 디바이스(400)에서 데이터 수신하는 방법을 설명한다.
도 6은 본 발명의 실시예에 따른 디바이스의 데이터 수신시의 흐름을 나타낸 도면이다.
도 6을 참조하면, 호스트 단말기(100)는 제1 유닛(200)의 제1 단말 통신부(210)로 제1 아웃(OUT) 패킷을 전송한다(S101).
이후 호스트 단말기(100)는 제1 유닛(200)의 단말 통신부(210)로 CBW 패킷을 전달한다(S103). 본 발명의 실시예에 따른 CBW 패킷은 데이터 전송에 대한 명령을 포함한다. 예를 들어 CBW 패킷은 명령어 블록(command block)에 대한 정보를 포함할 수 있다. 본 발명의 실시예에 따르면 CBW 패킷에 포함된 정보에 따라 디바이스(400)에서 호스트 단말기(100)로 데이터 전송이 이뤄질 수 있다.
제1 유닛(200)의 제1 유닛 통신부(220)는 제2 유닛(300)의 제2 유닛 통신부(320)로 명령어 패킷(COMMAND Packet)을 전송한다(S105). 본 발명의 실시예에 따르면 제1 유닛(200)의 제1 제어부(240)는 전송받은 CBW 패킷 및 제1 아웃 패킷에 기초하여 명령어 패킷(COMMAND Packet)을 추출한다. 명령어 패킷의 구성에 대하여는 뒤에서 설명하겠다.
제1 유닛(200)의 단말 통신부(210)는 호스트 단말기(100)로 ACK 패킷을 전송한다(S107).
이후 제2 유닛(300)이 명령어 패킷을 전달 받으면, 제2 유닛(300)의 디바이스 통신부(310)는 디바이스(400)로 제2 아웃(OUT) 패킷을 전송한다(S109).
제2 유닛(300)의 디바이스 통신부(310)는 디바이스(400)로 CBW 패킷을 전송한다(S111).
본 발명의 실시예에 따르면 제2 유닛(300)의 제2 제어부(340)는 전송받은 명령어 패킷에 기초하여 CBW 패킷을 재구성한다.
이후 디바이스(400)는 제2 유닛(300)의 디바이스 통신부(310)에 확인(ACK) 패킷을 전송한다(S113).
제2 유닛(300)의 디바이스 통신부(310)는 제1 인 패킷을 디바이스(400)에 전송한다(S115).
디바이스(400)는 제1 인 패킷에 대응하여 제1 데이터 패킷을 전송한다(S116).
제2 유닛(300)의 디바이스 통신부(310)는 ACK 패킷을 디바이스(400)에 전송한다(S117).
제2 유닛(300)의 디바이스 통신부(310)는 제2 인(IN) 패킷을 디바이스(400)에 전송한다(S118).
디바이스(400)는 제2 인 패킷에 대응하여 제2 데이터 패킷을 전송한다(S119).
제2 유닛(300)의 디바이스 통신부(310)는 ACK 패킷을 디바이스(400)에 전송한다(S121).
제2 유닛(300)의 디바이스 통신부(310)는 제3 인(IN) 패킷을 디바이스(400)에 전송한다(S123).
디바이스(400)는 제3 인 패킷에 대응하여 CSW 패킷을 전송한다(S125).
호스트 단말기(100)는 데이터 전송 요청에 관한 데이터 요청 IN 패킷을 제1 유닛(200)의 단말 통신부(210)에 전송한다(S127).
단말 통신부(210)는 호스트 단말기(100)에 나크(NAK)패킷을 전송한다(S129).
이때 호스트 단말기(100)가 전송하는 데이터 전송에 관한 IN 패킷 및 제1 유닛(200)이 전송하는 나크 패킷은 제2 유닛(300)이 디바이스(400)로부터 CSW 패킷을 전송 받기 전에 전송될 수도 있다.
본 발명의 실시예에 따른 제1 유닛(200)의 단말 통신부(210) 호스트 단말기(100)가 전송하는 데이터 전송에 관한 IN 패킷을 전송 받았음에도 불구하고, 나크 패킷을 전송한다. 보통 나크 패킷은 패킷의 수신 실패 등 특정 기능의 수행 실패를 알리기 위한 패킷이다. 그러나 본 발명의 실시예에 따르면 단말 통신부(210)가 임의로 나크 패킷을 호스트 단말기(100)에 보냄으로써 다시 데이터 전송에 관한 IN 패킷을 받을 수 있다.
단말 통신부(210)가 임의로 나크 패킷을 송신하지 않는 경우, 제2 유닛이 디바이스(400)로부터 데이터를 전부 수신하지 않았음에도 불구하고, 호스트 단말기(100)는 데이터를 전송할 것을 요청한다. 이러한 문제를 해결하기 위하여 제1 유닛(200)은 호스트 단말기(100)로 나크 패킷을 전송한다. 즉 단말 통신부(210)는 나크 패킷을 호스트 단말기(100)로 보냄에 따라, 제2 유닛(300)으로부터 데이터 스테이터스 패킷을 전송 받을 시간을 벌 수 있다.
제2 유닛(300)의 디바이스 통신부(310)는 ACK 패킷을 디바이스(400)에 전송한다(S131).
제2 유닛(300)의 제2 유닛 통신부(320)는 제1 유닛(200)의 제1 유닛 통신부(310)에 데이터 스테이터스 패킷(DATA STATUS Packet)을 전송한다(S133).
본 발명의 실시예 제2 제어부(340) 제1 데이터 패킷, 제2 데이터 패킷 및 CSW 패킷에 기초하여 데이터 스테이터스 패킷을 생성한다. 즉 제2 제어부(300)는 전송 받은 데이터를 즉시 제1 유닛(200)으로 전송하지 않는다. 제2 제어부(300)는 디바이스(400)가 전송하는 데이터를 모아서 데이터 스테이터스 패킷을 생성하고, 제2 유닛 통신부(320)는 생성된 데이터 스테이터스 패킷을 전송한다.
호스트 단말기(100)는 나크 패킷에 대응하여 제4 인(IN) 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S135).
단말 통신부(210)는 제4 인 패킷에 대응하여, 데이터 스테이터스 패킷에 기초한 제1 데이터 패킷을 전송한다(S137).
호스트 단말기(100)는 ACK 패킷을 단말 통신부(210)로 전송한다(S139)..
호스트 단말기(100)는 제5 인(IN) 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S141).
단말 통신부(210)는 제5 인 패킷에 대응하여, 데이터 스테이터스 패킷에 기초한 제2 데이터 패킷 전송한다(S143).
호스트 단말기(100)는 ACK 패킷을 단말 통신부(210)로 전송한다(S145).
호스트 단말기(100)는 제6 인(IN) 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S147).
단말 통신부(210)는 제6 인 패킷에 대응하여, 데이터 스테이터스 패킷에 기초한 CSW 패킷을 전송한다(S149).
호스트 단말기(100)는 ACK 패킷을 단말 통신부(210)로 전송한다(S151).
즉 본 발명의 실시예에 따른 제1 유닛(200)은 데이터 스테이터스 패킷을 수신하면 제1 저장부(240)에 저장한다. 그 후 제1 제어부(240)는 데이터 스테이터스 패킷에서 각각의 인 패킷에 대응한 데이터 패킷를 추출한다. 그 후 단말 통신부(210)는 추출된 데이터 패킷를 호스트 단말기(100)로 전송한다. 또한 본 발명의 실시예에 따른 제4 내지 6 인 패킷은 데이터 전송 요청에 관한 패킷일 수 있다.
다음은 도 7을 참조하여 본 발명의 실시예에 따른 디바이스(400)에서 데이터를 전송하는 방법을 설명한다.
도 7은 본 발명의 실시예에 따른 디바이스의 데이터 전송시의 흐름을 나타낸 도면이다.
도 7을 참조하면, 호스트 단말기(100)는 제1 유닛(200)의 단말 통신부(210)로 제1 아웃(OUT) 패킷을 전송한다(S201).
이후 호스트 단말기(100)는 제1 유닛(200)의 단말 통신부(210)로 CBW 패킷을 전달한다(S203). 본 발명의 실시예에 따른 CBW 패킷은 데이터 전송에 대한 명령을 포함한다. 예를 들어 CBW 패킷은 명령어 블록(command block)에 대한 정보를 포함할 수 있다. 본 발명의 실시예에 따르면 CBW 패킷에 포함된 정보에 따라 호스트 단말기(100)에서 디바이스(400)로 데이터 전송이 이뤄질 수 있다.
제1 유닛(200)의 제1 유닛 통신부(220)는 제2 유닛(300)의 제2 유닛 통신부(320)로 명령어 패킷(COMMAND Packet)을 전송한다(S205). 본 발명의 실시예에 따르면 제1 유닛(200)의 제1 제어부(240)는 전송받은 CBW 패킷 및 제1 아웃 패킷에 기초하여 명령어 패킷(COMMAND Packet)을 추출한다. 명령어 패킷의 구성에 대하여는 뒤에서 설명하겠다.
제1 유닛(200)의 단말 통신부(210)는 호스트 단말기(100)로 ACK 패킷을 전송한다(S207).
이후 제2 유닛(300)이 명령어 패킷을 전달 받으면, 제2 유닛(300)의 디바이스 통신부(310)는 디바이스(400)로 제2 아웃(OUT) 패킷을 전송한다(S209).
제2 유닛(300)의 디바이스 통신부(310)는 디바이스(400)로 CBW 패킷을 전송한다(S211).
본 발명의 실시예에 따르면 제2 유닛(300)의 제2 제어부(340)는 전송받은 명령어 패킷에 기초하여 CBW 패킷을 재구성한다.
이후 디바이스(400)는 제2 유닛(300)의 디바이스 통신부(310)에 확인(ACK) 패킷을 전송한다(S213).
호스트 단말기(100)는 제3 아웃(OUT) 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S215).
호스트 단말기(100)는 제3 데이터 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S217).
제1 유닛(200)의 단말 통신부(210)는 ACK 패킷을 호스트 단말기(100)로 전송한다(S219).
호스트 단말기(100)는 제4 아웃(OUT) 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S221).
호스트 단말기(100)는 제4 데이터 패킷을 제1 유닛(200)의 단말 통신부(210)로 전송한다(S223).
제1 유닛(200)의 제1 유닛 통신부(220)는 제2 유닛 통시부(320)에 통합 데이터 패킷을 전송한다. 제1 유닛(200)의 제1 제어부(240)는 제3 데이터 패킷 또는 제4 데이터 패킷에 기초하여 통합 데이터 패킷을 생성한다. 통합 데이터 패킷은 제3 데이터 패킷 및 제4 데이터 패킷이 합쳐진 것 일 수 있다. 본 발명의 실시예에 따른 제1 유닛(200)은 호스트 단말기(100)에서 데이터가 전송되는 즉시 제2 유닛(300)으로 전송하는 것이 아니라, 호스트 단말기(100)가 전송할 데이터를 모아서 통합 데이터 패킷으로 전송한다.
제1 유닛(200)의 단말 통신부(210)는 ACK 패킷을 호스트 단말기(100)로 전송한다(S227).
디바이스 통신부(310)는 제5 아웃(OUT) 패킷을 디바이스(400)로 전송한다(S229).
디바이스 통신부(310)는 제3 데이터 패킷을 디바이스(400)로 전송한다(S231).
디바이스 통신부(310)는 ACK 패킷을 디바이스(400)로 전송한다(S233).
디바이스 통신부(310)는 제6 아웃(OUT) 패킷을 디바이스(400)로 전송한다(S235).
디바이스 통신부(310)는 제4 데이터 패킷을 디바이스(400)로 전송한다(S237).
디바이스 통신부(310)는 ACK 패킷을 디바이스(400)로 전송한다(S239).
위에 설명한 단계S229 내지 S239를 다시 설명하면, 본 발명의 실시예에 따르면 제2 유닛(300)은 통합 데이터 패킷을 수신하면 제2 저장부(340)에 저장한다. 그 후 제2 제어부(340)는 통합 데이터 패킷에서 각각의 아웃 패킷 전송에 대응하여 데이터를 추출한다. 그 후 디바이스 통신부(310)는 추출된 데이터를 디바이스(400)로 전송한다.
디바이스 통신부(310)는 테이터 송신 완료에 관한 인(IN) 패킷을 디바이스(400)로 전송한다(S241).
디바이스(400)는 테이터 송신 완료에 관한 인(IN) 패킷에 대응하여 CSW 패킷을 디바이스 통신부(310)로 전송한다(S245).
제2 유닛 통신부(320)는 스테이터스 패킷을 제1 유닛 통신부(220)으로 전송한다(S247). 제2 제어부는 CSW 패킷에서 스테이터스 패킷을 추출한다. 스테이터스 패킷에 대해서는 후술 하겠다.
디바이스 통신부(310)는 ACK 신호를 디바이스(400)에 전송한다(S249).
호스트 단말기(100)는 단말 통신부(210)로 데이터 수신 요청에 대한 제7 인(IN) 패킷을 전송한다(S251).
제7 IN 패킷에 대응하여 단말 통신부(210)는 CSW 패킷을 호스트 단말기(100)로 전송한다(S253). 제1 저장부(240)는 제2 유닛 통신부(320)로부터 전송된 스테이터스 패킷을 저장한다. 제1 제어부(240)는 제7 인 패킷이 단말 통신부(210)에 수신되면, 스테이터스 패킷을 CSW 패킷으로 재구성한다. 이후 단말 통신부(210)는 재구성된 CSW 패킷을 호스트 단말기(100)에 전송한다. 즉 제1 유닛은 전송받은 스테이터스 패킷을 전송받은 즉시 호스트 단말기(100)로 전송하는 것이아니라. 제7 인 패킷에 대응하여, CSW 패킷으로 재구성하여 전송한다. 본 발명의 실시예에 따른 제7 인 패킷은 데이터 전송 요청에 관한 패킷일 수도 있다.
호스트 단말기(100)는 ACK 패킷을 단말 통신부(210)로 전송한다(S255).
제1 유닛(200)의 단말 통신부(210)는 ACK 패킷을 호스트 단말기(100)로 전송한다(S227).
다음은 도 8 및 도 12을 참조하여 본 발명의 실시예에 따른 각 패킷에 대하여 설명한다.
도 8은 본 발명의 실시예에 따른 이더넷 환경에서 데이터 전송 패킷 포맷을 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 USB over Network 환경에서 데이터 전송 패킷 포맷을 나타낸 제1 참조도면이다.
이하에서는 이더넷(Ethernet) 환경에서 데이터 통신이 이루어 지는 것을 예로 들어 설명하겠다. 그러나 본 발명은 이에 한정되지 않는다.
도 8 및 도 9를 참조하면, 본 발명의 실시예에 따른 제1 유닛(200) 및 제2 유닛(300)간 데이터 통신에 사용되는 패킷은 CRC을 생략하였다. 그러나 본 발명은 이에 한정되지 않는다. 즉 본 발명은 패킷에 CRC가 생략된 경우에도 그렇지 않은 경우에도 적용 가능하다.
본 발명의 실시예에 따른 패킷이 포함하는 UNID는 USB PID (4 bit)의 reserved 값인 0000으로 시작되어 Mass storage 용이 아닌 다른 USB 패킷과 구분할 수도 있다. UNID를 포함하는 패킷의 종류와 역할 및 구성은 다음과 같다.
본 발명의 실시예에 따른 명령어 패킷(COMMAND Packe)은 Data의 읽기(read), 쓰기(write) 또는 계산(enumeration)에 필요한 정보에 관한 명령어 패킷이다. 본 발명의 실시예에 따른 명령어 패킷은 명령어 패킷의 식별자 (UNID) 필드, 디바이스(400)의 USB 포트 정보를 담고 있는 데스티네이션(DESTINATION) 필드, 및 호스트 단말기(100)에서 전송된 CBW 패킷 내부에서 가져온 명령어 블록인 CBWCB(Command Block Wrapper Command Block)를 포함한다. 본 발명의 실시예에 따른 CBWCB는 명령어의 Type에 따라 6bytes 혹은 10bytes 일 수 있다.
본 발명의 실시예에 따른 제1 유닛(200)는 도 10 또는 도 11의 dCBWSignature 필드를 해석하여 CBW 패킷을 식별할 수 있고, bCBWCBLength 필드를 통해 6 혹은 10bytes 길이를 구별할 수 있다.
도 10 및 도 11는 명령어 블록 래퍼에 관한 도면이다.
도 10 및 도 11를 참조하면, dCBWDataTransferLength는 전송하거나 받을 데이터의 길이를 나타내는 필드인데, CBWCB 내부에도 데이터의 길이를 나타내는 값이 있으므로 굳이 DEVICE Unit에 보낼 필요가 없다
다시 도 8 및 도 9를 설명한다.
본 발명의 실시예에 따른 데이터 스테이터스 패킷(DATA STATUS Packet)은 디바이스(400)에서 호스트 단말기(100)로 데이터와 함께 상태정보를 함께 전달할 때 쓰이는 패킷이다. 종래의 실시예에 따른 디바이스(400)는 호스트 단말기(100)로부터 데이터 전송 요청에 대해 데이터를 전송하고, 확인 패킷(ACK)를 받은 후, 호스트 단말기(100)로부터 상태 IN 요청을 받고 상태 정보를 보냈다.
본 발명 실시예에 따르면, 제2 유닛(300)은 위에서 설명한 각종 신호 또는 트랜젝션(Transaction)을 생성하고, 제1 유닛(200)으로 데이터 및 상태 정보를 묶어서 보낼 수 있다. 제2 유닛(300)에서 제1 유닛(200)으로 전송하는 데이터가 여러 패킷에 나뉘어진 경우, 제2 유닛(300)은 마지막 패킷에만 상태정보를 실어 보낸다. 본 발명의 실시예에 따른 데이터 스테이터스 패킷(DATA STATUS Packet)은 명령어 패킷의 식별자(UNID) 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션(DESTINATION) 필드, 데이터를 담고 있는 Data 필드 및 상태 정보를 담고 있는 상태(Status) 필드를 포함한다. 데이터는 Network의 조건에 따라 가변적이며 본 명세서에 예로 제시한 Ethernet의 경우에 있어서, payload 크기 제한이 일반적인 경우 데이터는 1500bytes 이고, jumbo frame의 경우 데이터는 9000bytes 이다. 또한 USB mass storage data 단위가 512bytes 인 경우 한번에 보낼 수 있는 maximum Data의 크기는 512bytes 짜리 USB mass storage packet 두 개 또는 jumbo frame일 경우 17개이다. 즉 1024 또는 8704 bytes의 데이터가 송수신 될 수 있다. 또한 상태(Status) 필드는 도 12에 도시된 값과 같은 값을 가질 수 있다.
도 12는 본 발명의 실시예에 따른 USB over Network환경에서 USB mass storage data 전송 packet 포맷을 나타낸 제2 참조도면이다.
본 발명의 실시예에 따르면 호스트 단말기(100)가 예측한 데이터 양과 디바이스(400)가 보낼 데이터 양의 차이가 발생할 경우, 상태 정보의 값은 도 12에 도시된 바와 같이 01b가 된다. 데이터 양의 차이는 별도의 데이터 스테이터스 패킷의 데이터레지두(DataResidue)필드에 포함되어 호스트 단말기(100)에 전송된다. 본 발명의 실시예에 따른 데이터레지두(DataResidue)필드는 필요시에만 option으로 데이터 스테이터스 패킷의 상태패킷 뒤에 붙을 수 있다.
통합 데이터 패킷(도 8 및 도 9의 DATA Packet)은 디바이스(400)에서 호스트 단말기(100)로 데이터를 전송할 때 쓰이는 패킷이다. 종래의 실시예에 따른 디바이스(400)는 호스트 단말기(100)로부터 데이터 전송 또는 수신 요청에 대해 제1 유닛(200) 및 제2 유닛(300)간 데이터를 전송하거나 받고, ACK 패킷을 주고 받는 과정을 거쳐, 데이터를 전송하였다.
본 발명에서는 여러 데이터를 하나로 묶고 ACK 패킷에 대한 트랜잭션을 제1 유닛(200) 또는 제2 유닛(300)이 대신한다. 그에 따라서 전송속도를 높임과 동시에 데이터 전송량을 줄이게 된다. 통합 데이터 패킷 명령어 패킷의 식별자(UNID) 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션(DESTINATION) 필드, 데이터를 담고 있는 데이터(Data) 필드로 이뤄져 있다. Data의 크키는 Network 또는 통신 조건에 따라 가변적이다. 본 명세서에 예로 제시한 Ethernet의 경우에 있어서, payload 크기 제한이 일반적인 경우 데이터는 1500bytes 이고, jumbo frame의 경우 데이터는 9000bytes 이다. 또한 USB mass storage data 단위가 512bytes 인 경우 한번에 보낼 수 있는 maximum Data의 크기는 512bytes 짜리 USB mass storage packet 두 개 또는 jumbo frame일 경우 17개이다. 즉 1024 또는 8704 bytes의 데이터가 송수신 될 수 있다.
본 발명의 실시예에 따른 정지 패킷(STOP Packet)는 제1 유닛(200)과 제2 유닛(300) 사이에 위치한 버퍼들 사이에서 데이터를 주고 받을 때 수신 측의 버퍼가 다 차거나 데이터를 받지 못하는 경우 송신 측의 버퍼에 데이터 전송을 멈추게 하는 간단한 플로우 제어(Flow control)를 가능케 해주는 패킷이다.
특정 버파가 중지를 요청할 때 데이터를 받기 시작한 이후 몇 번째 데이터까지 받았는지를 COUNT 필드에 기록해 보내면, 송신측 버퍼는 COUNT 값 이후의 패킷에 대해 버퍼에 저장해두고 RESUME Packet이 오면 저장된 패킷부터 꺼내어 전송한다.
본 발명의 실시예에 따른 재개 패킷(RESUME Packet)는 제1 유닛(200)과 제2 유닛(300)에 사이에 위치한 버퍼들 사이에서 데이터를 주고 받을 때 수신 측의 버퍼가 다 차거나 데이터를 받지 못하는 경우 송신 측의 버퍼에 데이터 전송을 멈춘 경우 전송을 재개할 수 있게 해주는 패킷이다. STOP 명령을 발행한 수신 버퍼가 다시 데이터를 수신할 수 있는 상태가 되었을 때 송신 측 Unit으로 RESUME 패킷을 전송하여 송신을 재개토록 한다.
본 발명의 실시예에 따른 스테이터스 패킷(STATUS Packet)은 디바이스(400)에서 호스트 단말기(100)로 CSW 패킷과 상태정보를 함께 전달할 때 쓰이는 패킷이다. 종래의 실시예에 따른 디바이스(400)는 호스트 단말기(100)로 CSW 패킷만을 전달하였다.
본 발명 실시예에 따른 스테이터스 패킷(STATUS Packet)은 명령어 패킷의 식별자(UNID) 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션(DESTINATION) 필드, 및 상태 정보를 담고 있는 상태(Status) 필드를 포함한다. 스테이터스 패킷은 데이터레지두(DataResidue)필드를 더 포함할 수도 있다.
다음은 도 13 및 도 14을 참조하여 비교예를 설명한다.
도 13은 비교예에 따른 호스트 단말기의 데이터 수신시의 흐름을 나타낸 도면이다.
도 13을 참조하면, 비교예의 A1 및 A2에서는 라운드 트립 딜레이가 나타난다. 다시 도 6을 참조하면, 본 발명에서는 라운드 트립 딜레이가 발생하지 않음을 알 수 있다. 또한 비교예의 A3에서는 제2 유닛(300)이 제1 유닛(200)으로 데이터를 여러 번 송신하나, 본 발명은 도 6에 도시된 바와 같이 제2 유닛(300)인 제1 유닛(200)으로 데이터 스테이터스 패킷을 통해 한번만 전송한다. 따라서 본 발명의 제2 유닛(300)은 비교예의 제2 유닛(300)보다 데이터 전송을 빨리 할 수 있다.
도 14는 비교예에 따른 호스트 단말기의 데이터 전송시의 흐름을 나타낸 도면이다.
도 14를 참조하면, 비교예의 B1 에서는 라운드 트립 딜레이가 나타난다. 다시 도 7을 참조하면, 본 발명에서는 라운드 트립 딜레이가 발생하지 않음을 알 수 있다. 또한 비교예의 B2에서는 제1 유닛(200)이 제2 유닛(300)으로 데이터를 여러 번 송신하나, 본 발명은 도 7에 도시된 바와 같이 제1 유닛(200)인 제2 유닛(300)으로 통합 데이터 패킷을 통해 한번만 전송한다. 따라서 본 발명의 제1 유닛(200)은 비교예의 제1 유닛(200)보다 데이터 전송을 빨리 할 수 있다.
도 7에 도시된 본 발명의 제2 유닛(300)은 제1 유닛(200)에 스테이터스 패킷 을 전송하나, 도 14의 B3에서는 제2 유닛(300)이 CSW 패킷을 전송함을 알 수 있다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 호스트 단말기 200: 제1 유닛
210: 단말 통신부 220: 제1 유닛 통신부
230: 제1 저장부 240: 제1 제어부
310: 디바이스 통신부 320: 제2 유닛 통신부
330: 제1 저장부 340: 제2 제어부
400: 디바이스
170: 복조부

Claims (20)

  1. 단말 통신부;
    명령어 블록 래퍼 패킷에 기초하여 명령어 패킷을 추출하는 제1 제어부;
    상기 명령어 패킷을 제2 유닛으로 전송하는 제1 유닛 통신부;
    상기 제1 유닛 통신부가 상기 제2 유닛으로부터 상기 명령어 패킷에 대응한 하나 이상의 데이터 패킷에 기초하여 생성된 데이터 스테이터스 패킷을 수신하는 경우, 상기 제1 제어부는 호스트 단말기의 데이터 전송 요청에 관한 패킷에 대응하여, 상기 데이터 스테이터스 패킷에서 데이터 패킷을 추출하고,
    상기 단말 통신부는 상기 데이터 스테이터스 패팃에서 추출된 데이터 패킷을 상기 호스트 단말기로 전송하는 데이터 전송 장치.
  2. 제1항에 있어서,
    상기 제1 제어부는 상기 제1 유닛 통신부가 상기 호스트 단말로부터 하나 이상의 데이터 패킷을 수신하는 경우, 상기 호스트 단말기로부터 수신된 하나 이상의 데이터 패킷에 기초하여 통합 데이터 패킷을 생성하고,
    상기 제1 유닛 통신부는 상기 통합 데이터 패킷을 상기 제2 유닛으로 전송하는 데이터 전송 장치.
  3. 제2항에 있어서,
    상기 명령어 패킷은 상기 호스트 단말기로부터의 데이터의 패킷의 전송, 상기 호스트 단말기로의 데이터 송신 또는 계산에 관한 정보에 관한 명령어 패킷이고, 상기 명령어 패킷의 식별자 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 및 상기 명령어 블록 래퍼 패킷 내부의 명령어 블록을 포함하는 데이터 전송 장치.
  4. 제2항에 있어서,
    상기 통합 데이터 패킷은 디바이스에서 상기 호스트 단말기로 하나 이상의 데이터를 전송하고자 할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 데이터를 담고 있는 데이터 필드를 포함하는 데이터 전송 장치.
  5. 제4항에 있어서,
    상기 통합 데이터 패킷에 포함되는 데이터의 크기는 통신 환경에 따라 가변적인 데이터 전송 장치.
  6. 제1항에 있어서,
    상기 제1 제어부는 상기 제1 유닛 통신부가 상기 제2 유닛으로부터 스테이터스 패킷을 수신하는 경우, 상기 스테이터스 패킷에 기초하여 명령어 상태 래퍼 패킷으로 재구성하고,
    상기 단말 통신부는 상기 호스트 단말기의 데이터 전송 요청에 관한 패킷에 기초하여 명령어 상태 래퍼 패킷을 전송하는 데이터 전송 장치.
  7. 명령어 패킷을 수신하는 제2 유닛 통신부;
    상기 명령어 패킷을 명령어 블록 래퍼 패킷으로 재구성하는 제2 제어부; 및
    상기 명령어 블록 래퍼 패킷을 디바이스로 전송하는 디바이스 통신부를 포함하고,
    상기 제2 제어부는 상기 디바이스 통신부로 하나 이상의 데이터 패킷이 수신되는 경우, 상기 디바이스 통신부로 수신된 하나 이상의 데이터 패킷에 기초하여 데이터 스테이터스 패킷을 생성하고,
    상기 제2 유닛 통신부는 상기 테이터 스테이터스 패킷을 제1 유닛에 전송하는 데이터 전송 장치.
  8. 제7항에 있어서,
    상기 제2 제어부는 상기 제2 유닛 통신부가 상기 제1 유닛으로부터 통합 데이터 패킷을 수신하는 경우, 상기 상기 통합 데이터 패킷에서 데이터 패킷을 추출하고,
    상기 디바이스 통신부는 상기 제2 제어부에 의해 추출된 데이터 패킷을 상기 디바이스로 전송하는 데이터 전송 장치.
  9. 제8항에 있어서,
    상기 디바이스 통신부는 상기 제2 제어부에 의해 추출된 데이터 패킷의 전송이 종료된 경우, 상기 디바이스로부터 명령어 상태 래퍼 패킷을 수신하고,
    상기 제어부는 상기 명령어 상태 래퍼 패킷에서 스테이터스 패킷을 추출하고,
    상기 제2 유닛 통신부는 상기 스테이터스 패킷을 상기 제1 유닛으로 전송하는 데이터 전송 장치.
  10. 제7항에 있어서,
    상기 데이터 스테이터스 패킷은 상기 디바이스에서 호스트 단말기로 하나 이상의 데이터 패킷 및 상태 정보를 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 데이터를 담고 있는 데이터 필드 및 상기 상태 정보를 담고 있는 상태 필드를 포함하는 데이터 전송 장치.
  11. 제10항에 있어서,
    상기 데이터 스테이터스 패킷에 포함되는 데이터의 크기는 통신 환경에 따라 가변적인 데이터 전송 장치.
  12. 제10항에 있어서,
    상기 데이터 스테이터스 패킷은 상기 호스트 단말기가 예측한 수신 받을 데이터 양과 상기 디바이스가 보낼 데이터 양의 차이가 발생할 경우, 상기 호스트 단말기가 예측한 수신 받을 데이터 양 및 상기 디바이스가 보낼 데이터 양의 차를 포함하는 데이터레지두 필드를 더 포함하는 데이터 전송 장치.
  13. 제9항에 있어서,
    상기 스테이터스 패킷은 상기 디바이스에서 상기 호스트 단말기로 상기 명령어 상태 래퍼 패킷과 상태정보를 함께 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 상기 상태 정보 포함하는 데이터 전송 장치.
  14. 제13항에 있어서,
    상기 스테이터스 패킷은 데이터레지두 필드를 더 포함하는 데이터 전송 장치.
  15. 제1 유닛이 전송받은 명령어 블록 래퍼 패킷에 기초하여 추출된 명령어 패킷을 제2 유닛으로 전송하는 단계;
    상기 제2 유닛이 상기 명령어 패킷에 기초하여 재구성한 명령어 블록 래퍼 패킷을 디바이스로 전송하는 단계;
    상기 디바이스가 하나 이상의 데이터를 상기 제2 유닛으로 전송하는 경우, 상기 제2 유닛이 상기 하나 이상의 데이터를 모아 데이터 스테이터스 패킷으로 제1 유닛에 전송하는 단계; 및
    상기 제1 유닛이 상기 호스트 단말기로 상기 데이터 스테이터스 패킷에서 데이터 패킷을 추출하여 전송하는 단계를 포함하는 데이터 전송 방법.
  16. 제15항에 있어서,
    상기 호스트 단말기가 하나 이상의 데이터를 상기 제1 유닛으로 전송하는 경우, 상기 제1 유닛이 상기 하나 이상의 데이터를 모아 통합 데이터 패킷으로 제2 유닛에 전송하는 단계; 및
    상기 제2 유닛이 상기 디바이스로 상기 통합 데이터 패킷에서 데이터 패킷을 추출하여 전송하는 단계를 더 포함하는 데이터 전송 방법.
  17. 제16항에 있어서,
    상기 제2 유닛의 상기 디바이스로 상기 통합 데이터 패킷에서 추출된 데이터 패킷 전송이 종료된 경우,
    상기 제2 유닛이 상기 디바이스로부터 명령어 상태 래퍼 패킷을 수신하는 단계; 및
    상기 제2 유닛이 명령어 상태 래퍼 패킷에서 스테이터스 패킷을 추출하여 상기 호스트 단말기로 전송하는 단계를 더 포함하는 데이터 전송 방법.
  18. 제15항에 있어서,
    상기 명령어 패킷은 상기 호스트 단말기로부터의 데이터의 패킷의 전송, 상기 호스트 단말기로의 데이터 송신 또는 계산에 관한 정보에 관한 명령어 패킷이고, 상기 명령어 패킷의 식별자 필드, 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 및 상기 명령어 블록 래퍼 패킷 내부의 명령어 블록을 포함하는 데이터 전송 방법
  19. 제15항에 있어서,
    상기 데이터 스테이터스 패킷은 상기 디바이스에서 호스트 단말기로 하나 이상의 데이터 패킷 및 상태 정보를 전달할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드, 데이터를 담고 있는 데이터 필드 및 상기 상태 정보를 담고 있는 상태 필드를 포함하는 데이터 전송 방법.
  20. 제16항에 있어서,
    상기 통합 데이터 패킷은 디바이스에서 상기 호스트 단말기로 하나 이상의 데이터를 전송하고자 할 때 사용되는 패킷이고, 상기 명령어 패킷의 식별자 필드, 상기 디바이스의 USB 포트 정보를 담고 있는 데스티네이션 필드 및 데이터를 담고 있는 데이터 필드를 포함하는 데이터 전송 방법.
KR1020130159090A 2013-12-19 2013-12-19 데이터 처리 장치 및 데이터 처리 방법 KR20150071946A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130159090A KR20150071946A (ko) 2013-12-19 2013-12-19 데이터 처리 장치 및 데이터 처리 방법
US14/560,554 US20150180777A1 (en) 2013-12-19 2014-12-04 Data processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130159090A KR20150071946A (ko) 2013-12-19 2013-12-19 데이터 처리 장치 및 데이터 처리 방법

Publications (1)

Publication Number Publication Date
KR20150071946A true KR20150071946A (ko) 2015-06-29

Family

ID=53401357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130159090A KR20150071946A (ko) 2013-12-19 2013-12-19 데이터 처리 장치 및 데이터 처리 방법

Country Status (2)

Country Link
US (1) US20150180777A1 (ko)
KR (1) KR20150071946A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102126218B1 (ko) 2015-11-04 2020-06-24 한국전자통신연구원 동적 명령어 처리 장치 및 방법

Also Published As

Publication number Publication date
US20150180777A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP5103371B2 (ja) 長い伝送遅延の存在下でusb大容量記憶装置の性能を改善する方法及び装置
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
CN102866971B (zh) 传输数据的装置、系统及方法
EP3720019A1 (en) Internet of things data transmission method, device and system
US9129064B2 (en) USB 3.0 link layer timer adjustment to extend distance
EP3035171A1 (en) Apparatus, system and method for communication of touch sensor information
KR20140143793A (ko) 유니버셜 직렬 버스 디바이스들에 대한 데이터 재지향
EP2423822B1 (en) Methods and apparatus for improved serial advanced technology attachment performance
US20210240650A1 (en) Methods and devices for extending usb 3.0-compliant communication over an extension medium
EP2568665A1 (en) Method, device, and system for transmitting packet on pcie bus
US8856407B2 (en) USB redirection for write streams
US8788734B2 (en) Methods and devices for universal serial bus port event extension
US8521943B2 (en) Data transmission system and method of reading data
KR20150071946A (ko) 데이터 처리 장치 및 데이터 처리 방법
US20200341653A1 (en) Method, network adapter and computer program product for processing data
US8639836B2 (en) Smart nagling in a TCP connection
JP2008015856A (ja) データ転送制御装置及び電子機器
JPWO2014156020A1 (ja) イニシエータ端末、ターゲット端末、イニシエータ端末のアクセス中断方法およびターゲット端末のアクセス中断方法
CN115203102A (zh) 预测usb扩展环境中的空闲缓冲区空间
US20050273541A1 (en) Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
JP2012098885A (ja) データ転送方法
CN114443533A (zh) 扩展环境中usb设备的移除和ping干预
JP2008017250A (ja) データ転送制御装置及び電子機器
JP5120188B2 (ja) パケット制御装置、パケット制御方法、及びパケット制御プログラム
JP2010044537A (ja) コンピュータプログラム、コンピュータ装置、及び標識付加方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid