KR20070024600A - 호스트 제어기 및 그 동작 방법 - Google Patents

호스트 제어기 및 그 동작 방법 Download PDF

Info

Publication number
KR20070024600A
KR20070024600A KR1020067026357A KR20067026357A KR20070024600A KR 20070024600 A KR20070024600 A KR 20070024600A KR 1020067026357 A KR1020067026357 A KR 1020067026357A KR 20067026357 A KR20067026357 A KR 20067026357A KR 20070024600 A KR20070024600 A KR 20070024600A
Authority
KR
South Korea
Prior art keywords
data
packet transfer
descriptor
host controller
transfer descriptor
Prior art date
Application number
KR1020067026357A
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 KR20070024600A publication Critical patent/KR20070024600A/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/10Program control for peripheral devices
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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)
  • Communication Control (AREA)
  • Selective Calling Equipment (AREA)

Abstract

호스트 제어기는 데이터를 프레임 및 마이크로 프레임으로 USB 버스 통신 시스템을 거쳐 전송하는데 사용 가능하다. 각 데이터의 전송은 패킷 전송 디스크립터로 나타낼 수 있고, 데이터 전송을 위한 패킷 전송 디스크립터는 비트맵을 포함하여, 데이터는 비트맵의 실행값으로 설정되어진 비트에 대응하는 프레임의 마이크로 프레임 도중에만 패킷 전송 디스크립터에 따라 전송된다.

Description

호스트 제어기 및 그 동작 방법{BUS CONTROLLER FOR TRANSFERRING DATA}
본 발명은 버스 제어기에 관한 것으로, 특히 외부 버스(external bus)를 사용하는 주변 전자기기 간에 데이터 전송을 제어하기 위하여 전자기기 내에 포함 가능한 장치에 관한 것이다.
USB(Universal Serial Bus)를 사용하여 데이터를 전송할 수 있는 인터페이스가 전자기기에 제공되는 것이 점점 보편화되고 있다.
USB 시스템을 사용하여 전자기기 제품들이 상호 접속될 때, 기기 중 한 제품은 USB 호스트(Host)로 지정되고, 다른 제품들은 USB 디바이스(devices)로 지정된다. USB 호스트는 USB를 거치는 통신의 초기화와 스케쥴링을 책임지고 있다. 예를 들어, USB 호스트는 PC(personal computer)일 수 있고 프린터, 디지털카메라 및 PDA(personal digital assistant) 등의 각종 USB 디바이스에 접속될 수 있다.
그러나, 예컨대 카메라를 PC를 통해 연결할 필요 없이 프린터로 직접 연결하기 위해 USB 접속을 사용할 수도 있다. USB 호스트로서의 기능을 할 수 있도록, 앞선 예의 카메라일 수 있는 전자기기 제품에 필요한 기능성이 제공되어야 한다. 또한, 본 발명은 특히 필요한 기능성을 제공하기 위해 전자기기의 제품 내에 포함 가능한 집적회로(integrated circuit: IC) 형태의 장치에 관한 것이다. 그러나, 기기의 제품이 이외에도 다른 기능을 하며 USB 상호연계성은 기능성 중 극히 일부분에 해당한다는 것을 이해한다. 또한, 기기의 제품이 특히 강력한 프로세서를 포함하지 않고도 USB 호스트로서 작동할 수 있도록 기기의 제품 내에 장치를 포함할 수 있는 것이 바람직하다.
따라서, 장치는 결합될 기기 제품의 중앙처리장치(central processing unit; CPU)에 가능한 한 최소한도로 의존하여 작동할 수 있는 것이 바람직하다. 장치는 예를 들어, CPU를 버스 마스터(bus master)로 남겨두면서 바람직하게는 기기 제품의 버스 시스템에서 슬레이브(slave)로 작동한다. 또한, 장치는 가능한 한 CPU의 처리부담을 최소화하고, 특히 CPU로의 인터럽트 요청숫자를 최소화하는 것이 바람직하다. 또한, 장치는 가능한 한 가장 넒은 범위의 기기 제품에 결합될 수 있도록 어느 특정한 운영시스템을 사용하는 CPU에 의존하지 않아야 한다.
USB 트랜잭션(transactions)을 정의하기 위해 USB 호스트 제어기에서 전송기반의 전송 디스크립터(descriptors)를 사용하는 것이 알려져 있다.
본 발명에 따르면, 각 전송 디스크립터에 대해 일련의 비트가 제공되되, 각 비트는 프레임의 서브 프레임에 대응하고, 대응하는 비트가 실행값(active value)으로 설정되는 서브프레임 동안에만 데이터가 전송되도록 하는 호스트 제어기가 제공된다.
도 1은 본 발명에 따른 호스트 제어기를 포함하는 전자기기 제품을 도시한 개략적인 블록도.
도 2는 본 발명에 따른 호스트 제어기의 개략적인 블록도.
도 3은 도 2의 호스트 제어기에 소프트웨어 구조를 나타내는 도면.
도 4 및 도 5는 호스트 제어기로부터 전송되는 USB 데이터의 포맷을 예시적으로 도시한 타이밍도.
도 6은 본 발명에 따른 고속의 등시성 패킷 전송 디스크립터의 개략도.
도 7 및 도 8은 호스트 제어기로부터 전송되는 USB 데이터의 포맷을 예시적으로 설명하는 타이밍도.
도 9는 엔드포인트의 폴링율이 어떻게 변화 가능한지를 나타낸 도면.
도 10은 본 발명에 따른 고속 인터럽트 패킷 전송 디스크립터의 개략도.
도 11 및 도 12는 호스트 제어기로부터 전송되는 USB 데이터의 포맷을 예시적으로 설명하는 타이밍도.
도 13은 본 발명에 따른 고속의 벌크 패킷 전송 디스크립터의 개략도.
도 1은 USB 호스트로서 동작하는 전자기기 제품(10)의 관련 부분들의 개략적인 블록도이다. 본 발명은 PCs(personal computers)에 비해 마이크로프로세서 및 시스템 메모리를 기능적으로 제한하는데 더 관련이 있는 카메라, 셋탑 박스, 휴대전화 또는 PDA 등의 장치에 특히 응용가능하다. 그러나, 본 발명은 USB 호스트로 동작 가능한 장치는 어느 것이든 응용가능하다.
장치(10)는 다수의 특징을 가지고 있음이 명백하나, 그 특징들이 본 발명을 이해하는데 관련이 없으므로 도 1에 도시하지 않는다.
장치(10)는 프로세서의 핵심을 포함하는 호스트 마이크로프로세서(CPU, 20)를 포함한다. CPU(20)는 주변장치 버스(peripheral bus, 32)를 통해 시스템 메모리(30)에 접속된다.
또한, 호스트 제어기(40)는 주변장치 버스(32) 또는 메모리 버스를 통해 호스트 마이크로프로세서(20) 및 시스템 메모리(30)에 접속된다. 호스트 제어기(40)는 USB 버스(42)에 대한 인터페이스를 포함하며, USB 버스(42)를 통해 다수의 USB 장치에 접속될 수 있다. 예시적으로 나타낸 본 실시예에 있어서, 호스트 제어기(40)는 USB 2.0 호스트 제어기이고, 본 명세서에 설명되지 않은 호스트 제어기의 특징들은 USB 2.0 규격에 상세히 기술된 바와 같을 것이다.
호스트 제어기(40)는 종래에서와 같이 프로세서(20)에 의해 적절한 포맷으로 마련된 데이터를 복원하여 버스 인터페이스를 거쳐 전송하는데 적합하다. USB 통신에는 두 가지 범주의 데이터 전송, 즉 비동기식 전송(asynchronous transfer)과 주기적 전송(periodic transfer)이 있다. 제어 데이터 및 벌크(bulk) 데이터는 비동기식 전송을 통하여 전송되고, 등시성(isochronous) 데이터 및 인터럽트 데이터는 주기적 전송을 통해 전송된다. qTD(Queue Transaction Descriptor) 데이터 구조는 비동기식 전송에 사용되고, iTD(Isochronous Transaction Descriptor) 데이터 구조는 주기적 전송에 사용된다.
프로세서(20)가 데이터를 적절한 구조로 마련하고 이를 시스템 메모리(30)에 저장하고 난 후, 호스트 제어기(40)는 데이터를 시스템 메모리(30)로부터 복원한다.
도 2는 임베디드 USB 호스트 제어기(40)의 구조를 보다 상세하게 나타낸다.
상술한 바와 같이, 호스트 제어기(40)는 메모리 버스(32) 연결선을 포함하여 MMU(Memory Management Unit), SDC(Slave DMA controller), 인터럽트 제어 장치 및 하드웨어 배치 레지스터(hardware configuration registers)를 포함하는 인터페이스(44)에 접속된다. 인터페이스(44)는 또한 제어 및 인터럽트 신호를 위한 연결(46)을 하고 호스트 제어기(40)의 RAM 구조 및 연산 레지스터(operational registers)를 지원하는 레지스터(48)를 포함한다.
인터페이스(44)는 본 실시예에서 듀얼포트 RAM인 호스트 제어기의 on-chip RAM(50)에 접속되어 메모리로부터 데이터를 동시에 기록하거나 판독할 수 있다. 그러나, 동등하게는 적절한 아비터(arbiter)를 포함하는 단일 포트의 RAM일 수도 있다. 메모리(50)는 USB 버스(42)에 대한 인터페이스도 포함하는 호스트 제어기 로직 유닛(52)에 접속된다. 제어 신호는 레지스터(48)로부터 내부 버스(54)의 논리 장치(logic unit, 52)로 전송될 수 있다.
도 3은 본 발명에 따른 장치의 동작 방법을 예시적으로 설명하기 위하여 호스트 제어기(40) 상의 소프트웨어 동작을 부분적으로 도시한 개략도이다.
호스트 제어기(40)는 일반적으로 종래의 USB 드라이버 소프트웨어(80) 및 USB EHCI(Enhanced Host Controller Interface) 소프트웨어(82)를 작동시킨다.
또한, 호스트 제어기(40)는 USB EHCI 인터페이스 소프트웨어(84)를 작동시켜, 전송될 데이터의 모든 엔드포인트(endpoint)를 위해 전송 기반의 전송 디스크립터의 목록을 마련한다.
USB EHCI 인터페이스 소프트웨어(84)는 기존의 주기적이고 비동기적인 헤더를 위해 EHCI 호스트 스택(stack)(82)에 의해 생성되는 파라미터를 사용하기 위해 기록된다. 또한, USB EHCI 인터페이스 소프트웨어(84)는 상이한 형태의 모든 USB 전송, 특히 고속의 등시성 전송, 벌크 전송, 인터럽트 전송과 제어 전송 및 시작/정지 분할 트랜잭션에 사용될 수 있다.
호스트 제어기(40)가 버스(32)를 통제할 필요 없이, 호스트 마이크로프로세서(20)는 주변장치 버스(32)를 통하여 전송 기반의 전송 디스크립터를 호스트 제어기(40)의 RAM(50)에 기록한다. 즉, 호스트 제어기(40)는 슬레이브(slave)로서만 동작하다. 전송 기반의 전송 디스크립터는 이후 호스트 제어기(40)의 RAM(50)으로 메모리-매핑될 수 있다.
바람직하게는, 호스트 제어기(40)의 내장형 메모리(50)는 호스트 마이크로프로세서(20)에 매핑되어, 트랜잭션이 호스트 마이크로프로세서(20)로부터 쉽게 스케줄링될 수 있다.
이중포트 RAM(50)을 사용함으로서, 하나의 전송 기반의 전송 디스크립터가 호스트 제어기(40)에 의해 실행되는 동안 호스트 마이크로프로세서(20)는 데이터를 다른 블록 공간에 기록할 수 있다.
도 4는 하나의 USB 프레임 포맷이 다수의 마이크로 프레임으로 분할되어 마이크로 프레임의 데이터가 USB 버스(42)를 지나 호스트 제어기(40)로부터 전송되는 것을 예시적으로 설명한다. 종래에서와 같이, 상이한 전송 형태의 트랜잭션을 포함하는 다수의 트랜잭션이 하나의 마이크로 프레임 내에서 전송된다. 또한, 종래에서와 같이 고속의 인터럽트 전송 및 전속력과 저속력의 SSCS(Start Split and Complete Split) 전송 다음으로, 고속의 벌크 데이터가 마이크로 프레임의 남은 시간을 차지하면서 고속의 등시성 전송이 항상 제일 먼저 이어진다. 도 4는 다수의 고속 등시성 트랜잭션이 하나 이상의 엔드포인트로 전송될 수 있는 방식을 나타낸다.
도 4에서 자세하게는 2개의 고속 등시성 전송 디스트립터가 1ms - 2ms 사이의 1 밀리초(millisecond)에 처리되고 있다. 이는 각각 uSOF0, uSOF1, … , uSOF7으로 시작하는 8개의 마이크로 프레임으로 이루어진 프레임을 나타낸다. 또한, 도 4는 각각의 IN 또는 OUT 트랜잭션에 대한 상이한 엔드포인트(endpt1, endpt2)에 관해 대응하는 패킷 전송 디스크립터(PTD1, PTD2)의 포맷을 보여준다. 패킷 전송 디스크립터(PTD1, PTD2) 각각은 usof(7-0)으로 라벨 표시된(labelled) 일련의 8비트를 포함한다. 또한 이들 비트는 실행값(즉, "1") 또는 비실행값(즉, "0")을 취할 수 있다. 이후, 패킷 전송 디스크립터의 모든 파라미터가 충족되면 즉, 적절한 Frame # 도중 또한 usof 비트 값이 높으면 마이크로 프레임 도중에, 페이로드(payload) 데이터는 전송된다.
따라서, 도 4에서 패킷 전송 디스크립터(PTD1)에 관련된 페이로드 데이터(HSISO1)는 8개의 모든 마이크로 프레임 도중에 전송되는 반면, 패킷 전송 디스크립터(PTD2)에 관한 페이로드 데이터(HSISO2)는 uSOF0, uSOF2, uSOF4 및 uSOF6로 시작하는 4개의 마이크로 프레임 도중에만 전송된다.
패킷 전송 디스크립터 파라미터(multi)가 1의 값을 취하는 경우, 오직 하나의 최대 패킷 데이터 크기(Max Packet Data Size)의 트랜잭션이 각각의 마이크로 프레임의 각 엔드포인트를 향해 원격 전송된다.
패킷 전송 디스크립터에 관한 페이로드 데이터가 완료되면, 하드웨어 인터럽트는 CPU(20)로 전송된다. 도 4의 140에 도시한 바와 같이 개별적인 패킷 전송 디스크립터가 완료될 시 또는 도 4의 142에 도시한 바와 같이 쌍방의 패킷 전송 디스크립터가 완료될 시에만 IRQ들은 실행(active) 상태로 설정될 수 있다.
도 5는 4개의 고속 등시성 전송 디스크립터가 1ms-5ms의 주기를 거쳐 처리되는 수 밀리초(multi-millisecond)의 전송 상황을 나타낸다. 이는 4개의 프레임을 나타내는데, 각 프레임은 8개의 마이크로 프레임으로 구성되지만 명료성을 위해 각 프레임에는 2개의 마이크로 프레임만이 도시되어 있다. 또한, 도 5는 대응하는 패킷 전송 디스크립터(PTD1-PTD8)의 포맷을 보여준다. 이 경우 8개의 패킷 전송 디스크립터(PTD1-PTD8) 각각은 동일한 엔드포인트(endpt1)에 관한 것이다. 또한, 각 패킷 전송 디스크립터(PTD1-PTD8)는 usof(7-0)로 라벨 표시가 된 일련의 8비트를 포함한다. 또한, 이 비트들은 실행값(즉, "1") 또는 비실행값(즉, "0")을 취할 수 있다. 이후, 페이로드 데이터는 패킷 전송 디스크립터의 모든 파라미터가 충족될 때, 즉 적절한 Frame # 도중 또한 usof 비트 값이 높을 때 마이크로 프레임 도중 전송된다.
따라서, 도 5에서 패킷 전송 디스크립터(PTD1)에 관한 페이로드 데이터(HSISO1)는 프레임(#01)의 8개의 모든 마이크로 프레임 도중 전송되는 반면, 패킷 전송 디스크립터(PTD2)에 관한 페이로드 데이터(HSISO2)는 프레임(#02)의 8개의 모든 마이크로 프레임 도중에 전송되는 등 전송과정이 진행된다. 따라서, 다수의 등시성 패킷 전송 디스크립터를 정의함으로써 수 밀리초의 트랜잭션이 가능하다.
또한, 이 경우 패킷 전송 디스크립터의 파라미터(multi)는 3의 값을 취하므로, Max Packet Data Size의 3개의 트랜잭션은 각 마이크로 프레임의 각 엔드포인트로 원격 전송된다.
따라서, 패킷 전송 디스크립터(PTD1 - PTD4)는 1ms - 5ms의 주기를 거쳐 처리된다. 패킷 전송 디스크립터(PTD1 - PTD4)가 전송되는 동안, 다음 4ms동안의 새로운 패킷 전송 디스크립터(PTD5-PTD8)가 마련될 수 있다. 패킷 전송 디스크립터(PTD5-PTD8)가 모두 마련될 때까지 SKIP 비트맵은 실행 상태로 설정될 수 있고 이후에는 비트맵을 건너뛸 수 없다.
IRQ는 처음 4ms가 완료되었음을 나타낼 때에만 발생한다. 이후, IN Token에 대한 데이터가 재판독(read back) 될 수 있다.
따라서, 최대 24KB/ms의 전송속도(즉, 트랜잭션 당 1024 바이트 x 각 마이크로 프레임 내 3개의 트랜잭션 x 밀리초 당 8개의 마이크로-프레임)로 USB 데이터를 지속적으로 전송할 수 있다.
도 6은 본 발명에 따른 고속의 등시성 패킷 전송 디스크립터의 개략도를 나타낸다.
도 7은 두 개의 고속의 인터럽트 전송 디스크립터가 1ms - 3ms의 2 밀리초 주기를 거쳐 처리되고 있는 상황을 나타낸다. 각 밀리초는 각기 uSOF0, uSOF1, …, uSOF7로 시작하는 8개의 마이크로 프레임으로 이루어진 프레임을 나타낸다. 또한, 도 7은 상이한 엔드포인트(endpt1, endpt2)에 관해 대응하는 패킷 전송 디스크립터(PTD1, PTD2)의 포맷을 보여준다. 패킷 전송 디스크립터(PTD1, PTD2) 각각은 usof(7-0)로 라벨 표시된 일련의 8비트를 포함한다. 또한, 이들 비트는 실행값(즉, "1") 또는 비실행값(즉, "0")을 취할 수 있다. 이후, usof 비트 값이 높을 때 페이로드 데이터는 마이크로 프레임 도중 전송된다.
따라서, 패킷 전송 디스크립터(PTD1)에 관한 페이로드 데이터(HSINT1)는 도 7에서 각 usof 비트 값이 높게 설정된 uSOF1, uSOF3, uSOF5 및 uSOF7로 시작하는 4개의 마이크로 프레임 도중에 전송된다. 한편, 패킷 전송 디스크립터(PTD2)에 관한 페이로드 데이터(HSINT2)는 각각의 usof 비트의 값은 높게 설정된 uSOF0, uSOF2, uSOF4 및 uSOF6으로 시작하는 4개의 마이크로 프레임 도중에만 전송된다.
또한, 각 패킷 전송 디스크립터(PTD1, PTD2)는 페이로드(PL)의 크기를 나타내며, PTD2의 페이로드는 PTD1의 페이로드 크기의 두 배임을 주의한다. 따라서, PTD1이 처음 밀리초 도중 완료되는 동안, 패킷 전송 디스크립터(PTD2)에 관한 페이로드 데이터(HSINT2)도 uSOF0, uSOF2, uSOF4 및 uSOF6으로 시작하는 2ms-3ms 사이 밀리초의 4개의 마이크로 프레임 동안에 전송된다.
패킷 전송 디스크립터에 관한 페이로드 데이터가 완료되었을 때, 하드웨어 인터럽트가 CPU(20)에 전송된다. 도 7의 170에 나타낸 바와 같이 개별적인 패킷 전송 디스크립터가 완료될 때 또는 도 4의 172에 나타낸 바와 같이 양쪽의 패킷 전송 디스크립터가 완료될 때에만, IRQ들은 실행 상태로 설정될 수 있다.
도 8은 고속의 인터럽트 전송 디스크립터가 2ms-23ms의 주기에 걸쳐 처리되고 있는 수 밀리초 동안의 전송 상황을 나타낸다. 전술한 바와 같이, 각 밀리초는 8개의 마이크로 프레임으로 이루어진 프레임을 나타낸다.
또한, 도 8은 대응하는 패킷 전송 디스크립터(PTD1-PTD4)의 포맷을 도시한다. 이 경우, 4개의 패킷 전송 디스크립터(PTD1-PTD4) 각각은 개개의 상이한 엔드포인트(endpt1, endpt2, endpt3, endpt4)에 관련된다. 또한, 패킷 전송 디스크립터(PTD1-PTD4) 각각은 usof(7-0)로 라벨 표시된 일련의 8비트를 포함한다. 또한 이들 비트는 실행값(즉, "1") 또는 비실행값(즉, "0")을 취할 수 있다. 페이로드 데이터는 이후 패킷 전송 디스크립터로 명시된 적절한 Frame # 동안에만 전송된다.
또한, 패킷 전송 디스크립터는 전송에 관해 페이로드(PL)의 크기, 최대 패킷 크기(MPS) 및 폴링율을 규정한다. 따라서, 폴링율은 본 예의 1 마이크로 프레임과 32 프레임 사이에서 요청한 바에 따라 변동 가능하다. 도 9는 이용 가능한 폴링율의 값을 나타내는 표이다. 두 개의 엔드포인트가 동일한 폴링율을 가질 때, 엔드포인트의 트랜잭션은 두 개의 상이한 프레임으로 나뉠 수 있다. 이는 프레임 번호의 마지막 2비트에 근거하여 트랜잭션을 실행하는 하드웨어에 의해 이루어질 수 있다.
도 8은 이 작업이 실제 수행되는 방법을 보여준다. 예를 들어, 패킷 전송 디스크립터(PTD3)에 의해 나타내는 엔드포인트(3)로 예정된 데이터에는 4ms에 프레임 내에서 NAK이 발생된다. 따라서, 폴링율이 8ms이므로 8ms에서 프레임에서 재전송된다. 이와 유사하게, 패킷 전송 디스크립터(PTD4)로 나타내는 엔드포인트(4)로 예정된 데이터에는 7ms에 프레임에서 NAK가 발생된다. 따라서, 폴링율이 16ms이므로 23ms에 프레임에서 재전송된다.
도 10은 본 발명에 따른 고속의 인터럽트 패킷 전송 디스크립터의 개략도이다.
도 11은 데이터의 벌크 전송을 위한 전송 메커니즘(mechanism)을 설명한다. 따라서, 도 11의 190에 나타낸 바와 같이 uSOF0-uSOF3으로 시작하는 첫 번째 4개의 마이크로 프레임의 주기 도중 1개의 프레임에서 제 1 패킷 전송 디스크립터(PTD1)에 따른 데이터가 전달되는 동안, 제 2 패킷 전송 디스크립터(PTD2)에 따른 데이터는 마련된다. 도 11의 192에 나타낸 바와 같이, uSOF4-uSOF7로 시작하는 두 번째 4개의 마이크로 프레임의 주기 도중 제 2 패킷 전송 디스크립터(PTD2)에 따른 데이터가 전달되는 동안 제 1 패킷 전송 디스크립터(PTD1)에 따른 데이터는 마련된다. 이로써 고속의 데이터 전송속도를 엔드포인트까지 허용하면서도, 밀리초 당 두 번의 인터럽트만이 요구된다.
벌크 데이터는 종래에서와 같이 등시성 데이터 및 인터럽트 데이터가 전송되고 난 후에야 마이크로 프레임에 전송된다. 도 12는 등시성 데이터(HSISO) 및 인터럽트 데이터(HSINT)가 마이크로 프레임에 전송되고 난 후에야, 4개의 고속 인터럽트 전송 디스크립터는 몇 개의 마이크로 프레임을 거쳐서 처리되고 있는 상황을 나타낸다.
도 12는 또한 대응하는 패킷 전송 디스크립터(PTD1 - PTD4)의 포맷을 나타낸다. 이 경우, 각 패킷 전송 디스크립터(PTD1 - PTD4)는 각기 상이한 엔드포인트(endpt1, endpt2, endpt3, endpt4)에 관한 것이다. 데이터가 다른 어떤 패킷 전송 디스크립터에 따라 어느 마이크로 프레임으로든 전송되기 전에, 파라미터(multi)는 패킷 전송 디스크립터에 따라 전송될 수 있는 벌크 데이터 패킷 수를 가리킨다. 따라서, 제 1의 패킷 전송 디스크립터(PTD1)는 3의 값의 파라미터(multi)를 포함하므로, 데이터가 다른 어떤 패킷 전송 디스크립터에 따라 전송되기 전에는 3개의 패킷이 1ms로 시작하는 마이크로 프레임으로 전송된다. 이 경우, 등시성 데이터도 인터럽트 데이터도 존재하지 않는다. 따라서, 벌크 데이터 전송 사이클이 마이크로 프레임으로 반복될 수 있다.
그러나, uSOF2로 시작하는 마이크로 프레임에 대량의 등시성 데이터가 있었으므로, 벌크 데이터 전송 사이클이 마이크로 프레임 내에서는 완료될 수 없었다는 것을 주의한다.
도 13은 본 발명에 따라 벌크 및 제어 엔드포인트에 대한 고속의 패킷 전송 디스크립터의 개략도를 보여준다.

Claims (7)

  1. 버스(bus) 통신 시스템을 거쳐 프레임 및 마이크로 프레임으로 데이터를 전송하는데 사용되며, 각 데이터의 전송을 패킷 전송 디스크립터(descriptor)에 의해 나타낼 수 있는 호스트 제어기로서,
    데이터 전송을 위한 패킷 전송 디스크립터는 비트맵을 포함하여, 실행값으로 설정되어진 상기 비트맵의 비트에 대응하는 프레임의 마이크로 프레임 도중에만 상기 패킷 전송 디스크립터에 따라 데이터가 전송되도록 하는
    호스트 제어기.
  2. 제 1 항에 있어서,
    상기 버스 통신 시스템을 거쳐 등시성 엔드포인트(isochronous endpoints) 또는 인터럽트 엔드포인트로 데이터를 전송하는데 사용되되, 등시성 엔드포인트 및 인터럽트 엔드포인트로의 데이터 전송을 위한 패킷 전송 디스크립터는 상기 비트맵을 포함하는
    호스트 제어기.
  3. 제 2 항에 있어서,
    상기 인터럽트 엔드포인트로의 데이터 전송을 위한 상기 패킷 전송 디스크립터는 가변의 폴링율(polling rate)을 더 규정하는
    호스트 제어기.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    호스트 마이크로프로세서 및 시스템 메모리를 구비하는 버스 통신 장치에 사용되되,
    상기 호스트 마이크로프로세서 및 상기 시스템 메모리를 연결하는 메모리 버스에 접속하여 상기 호스트 제어기가 상기 메모리 버스에서 슬레이브로서만 동작하도록 하기 위한 제 1 인터페이스와,
    상기 버스 통신 시스템과의 연결을 위한 제 2 인터페이스를 포함하는
    호스트 제어기.
  5. 버스 통신 시스템을 거쳐 프레임 및 마이크로 프레임으로 데이터를 전송하기 위한 호스트 제어기를 동작하는 방법으로서,
    패킷 전송 디스크립터에 의해 각 데이터 전송을 나타내되, 데이터 전송을 위한 패킷 전송 디스크립터는 비트맵을 포함하는 단계와,
    실행값으로 설정되어진 상기 비트맵의 비트에 대응하는 프레임의 마이크로 프레임 도중에만 상기 패킷 전송 디스크립터에 따라 데이터를 전송하는 단계를 포함하는
    방법.
  6. 제 5 항에서,
    상기 버스 통신 시스템을 거쳐 등시성 엔드포인트 또는 인터럽트 엔드포인트로 데이터를 전송하되, 상기 등시성 엔드포인트 및 인터럽트 엔드포인트로의 데이터 전송을 위한 패킷 전송 디스크립터는 상기 비트맵을 포함하는
    방법.
  7. 제 6 항에 있어서,
    인터럽트 엔드포인트로 데이터를 전송하는 상기 패킷 전송 디스크립터는 가변의 폴링율을 더 규정하는 방법.
KR1020067026357A 2004-06-15 2005-06-09 호스트 제어기 및 그 동작 방법 KR20070024600A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04102728.5 2004-06-15
EP04102728 2004-06-15

Publications (1)

Publication Number Publication Date
KR20070024600A true KR20070024600A (ko) 2007-03-02

Family

ID=34969902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067026357A KR20070024600A (ko) 2004-06-15 2005-06-09 호스트 제어기 및 그 동작 방법

Country Status (8)

Country Link
US (1) US20070143519A1 (ko)
EP (1) EP1759298B1 (ko)
JP (1) JP2008502980A (ko)
KR (1) KR20070024600A (ko)
CN (1) CN100583071C (ko)
AT (1) ATE424004T1 (ko)
DE (1) DE602005012952D1 (ko)
WO (1) WO2005124567A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266584B (zh) * 2008-05-13 2011-05-11 威盛电子股份有限公司 通用串行总线主机控制器及其控制方法
CN102063399B (zh) * 2011-01-10 2014-02-19 深圳市润天智数字设备股份有限公司 多通道数据传输方法和设备及系统
KR101832997B1 (ko) * 2013-07-16 2018-04-13 마벨 월드 트레이드 리미티드 Usb 데이터 전달들을 관리하기 위한 시스템들 및 방법들

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4371466B2 (ja) * 1999-04-15 2009-11-25 株式会社東芝 コンピュータシステム及びそのi/o装置の制御方法
TW463093B (en) * 1999-10-16 2001-11-11 Via Tech Inc Method for arbitrarily adjusting PCI compatible device access sequence
US7228366B2 (en) * 2001-06-29 2007-06-05 Intel Corporation Method and apparatus for deterministic removal and reclamation of work items from an expansion bus schedule
US6748466B2 (en) * 2001-06-29 2004-06-08 Intel Corporation Method and apparatus for high throughput short packet transfers with minimum memory footprint
US6721815B1 (en) * 2001-09-27 2004-04-13 Intel Corporation Method and apparatus for iTD scheduling
WO2003029998A1 (en) * 2001-09-28 2003-04-10 Koninklijke Philips Electronics N.V. Bus system and bus interface for connection to a bus

Also Published As

Publication number Publication date
WO2005124567A1 (en) 2005-12-29
DE602005012952D1 (de) 2009-04-09
CN1969269A (zh) 2007-05-23
EP1759298B1 (en) 2009-02-25
US20070143519A1 (en) 2007-06-21
JP2008502980A (ja) 2008-01-31
EP1759298A1 (en) 2007-03-07
ATE424004T1 (de) 2009-03-15
CN100583071C (zh) 2010-01-20

Similar Documents

Publication Publication Date Title
JP4837659B2 (ja) 分割トランザクションを処理するためのバス・コントローラ
US10198382B2 (en) 12C bus controller slave address register and command FIFO buffer
US7028109B2 (en) Data transfer control device including buffer controller with plurality of pipe regions allocated to plurality of endpoints
US20020009075A1 (en) System for reducing bus overhead for communication with a network interface
US8402180B2 (en) Autonomous multi-packet transfer for universal serial bus
JP4696199B2 (ja) 転送ディスクリプタ用メモリを備えるusbホストコントローラ
CN109992543A (zh) 一种基于zyzq-7000的pci-e数据高效传输方法
EP0772831B1 (en) Bidirectional parallel signal interface
US7469304B2 (en) Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation
US20060184708A1 (en) Host controller device and method
EP1759297B1 (en) Interrupt scheme for bus controller
US8074232B2 (en) Method for improving the communication of the human interface device
KR20070024600A (ko) 호스트 제어기 및 그 동작 방법
US6032204A (en) Microcontroller with a synchronous serial interface and a two-channel DMA unit configured together for providing DMA requests to the first and second DMA channel
US6799231B2 (en) Virtual I/O device coupled to memory controller
WO2004003757A2 (en) Direct transaction mode for peripheral devices
US7340554B2 (en) USB host controller with DMA capability
EP1627312B1 (en) Usb host controller with dma capability
KR20070022090A (ko) 버스 컨트롤러용 인터럽트 기법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL NUMBER: 2012101003374; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120410

Effective date: 20130417

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120410

Effective date: 20130417