KR20070022090A - Interrupt scheme for bus controller - Google Patents
Interrupt scheme for bus controller Download PDFInfo
- Publication number
- KR20070022090A KR20070022090A KR1020067026381A KR20067026381A KR20070022090A KR 20070022090 A KR20070022090 A KR 20070022090A KR 1020067026381 A KR1020067026381 A KR 1020067026381A KR 20067026381 A KR20067026381 A KR 20067026381A KR 20070022090 A KR20070022090 A KR 20070022090A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- interrupt request
- transaction
- generated
- completion
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
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)
Abstract
호스트 컨트롤러는, 프로세서의 제어 하에, 버스 통신 시스템을 통해 데이터를 개별 트랜잭션으로 전송한다. 프로세서 인터럽트 요청은 트랜잭션 완료시에 생성된다. 호스트 컨트롤러는, 개별 트랜잭션의 제1 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성될 때, 인터럽트 요청이 프로세서로 전송되고, 반면, 개별 트랜잭션의 제2 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성될 때는 인터럽트 요청이 프로세서로 전송되지 않도록 하는 논리를 포함한다. 또한 호스트 컨트롤러는, 개별 트랜잭션의 제3 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되는 경우, 트랜잭션 완료시에 인터럽트 요청이 생성될 때에만 프로세서로 인터럽트 요청이 전송된다.
The host controller, under the control of the processor, transmits data in separate transactions via the bus communication system. Processor interrupt requests are generated upon transaction completion. The host controller is configured to send an interrupt request to a processor when a processor interrupt request is generated upon completion of a transaction from a first group of individual transactions, while a processor interrupt request is generated upon completion of a transaction from a second group of individual transactions. It includes logic to prevent interrupt requests from being sent to the processor. The host controller also sends an interrupt request to the processor only when an interrupt request is generated upon transaction completion, if a processor interrupt request is generated upon completion of a transaction from the third group of individual transactions.
Description
본 발명은 버스 컨트롤러에 관한 것으로, 보다 상세하게는, 전자 장치에 포함되어 다른 전자 장치로/로부터의 데이터 이송을 외부 버스를 사용하여 제어하는 디바이스에 관한 것이다.The present invention relates to a bus controller, and more particularly, to a device included in an electronic device for controlling data transfer to / from another electronic device by using an external bus.
USB(Univeral Serial Bus)를 사용하여 데이터 전송을 가능하게 하는 인터페이스가 전자 장치에 제공되는 것이 보편적이다.It is common for an electronic device to provide an interface that enables data transfer using a universal serial bus (USB).
전자 장치의 아이템들이 USB 시스템을 사용하여 상호접속될 때, 장치의 한 아이템은 USB 호스트로서 지정되지만, 다른 아이템은 USB 디바이스로서 지정된다. USB를 통하여 통신을 개시하고 스케쥴링하는 것은 USB 호스트이다. 예를 들면, USB 호스트는 개인용 컴퓨터(PC)일 수 있고, 프린터, 디지털 카메라 및 개인 휴대 정보 단말 장치(PDA) 같은 다양한 USB 디바이스에 접속될 수 있다.When items of an electronic device are interconnected using a USB system, one item of the device is designated as the USB host, while the other item is designated as the USB device. It is the USB host that initiates and schedules communication via USB. For example, the USB host may be a personal computer (PC) and may be connected to various USB devices such as printers, digital cameras, and personal digital assistants (PDAs).
그러나, 예를 들면, PC를 통한 접속을 요구하지 않고 카메라를 프린터에 직접 접속하기 위해 USB 접속을 사용하는 것도 가능하다. USB 호스트로서 기능할 수 있도록 하기 위해, 본 예에서는 카메라일 수 있는 장치의 한 아이템에 요구되는 기 능성이 제공되어야 하고, 본 발명은 특히 그러한 기능성을 제공하기 위해 장치의 한 아이템에 포함될 수 있는 집적회로 형태의 디바이스에 관한 것이다. 그러나, 장치의 아이템이 다른 기능을 구비하고, 그의 USB 상호접속성은 단지 그 기능의 일부라는 것이 이해될 것이다. 또한, 특히 강력한 프로세서를 구비하기 위해 장치의 아이템들을 요구하지 않고, USB 호스트로서 동작하기 위한 능력을 그 아이템에 제공하기 위해, 장치의 아이템에 디바이스를 포함할 수 있는 것이 바람직하다.However, it is also possible to use a USB connection, for example, to connect the camera directly to a printer without requiring a connection via a PC. In order to be able to function as a USB host, in this example, the functionality required for an item of the device, which may be a camera, must be provided, and the present invention is particularly integrated that can be included in an item of the device to provide such functionality. It relates to a device in the form of a circuit. However, it will be understood that an item of device has other functionality, and its USB interconnectivity is only part of that functionality. It is also desirable to be able to include a device in an item of the device to provide the item with the ability to operate as a USB host without requiring items of the device to have a particularly powerful processor.
따라서, 채용될 수 있는 장치의 아이템의 중앙 처리 유닛(CPU)에 최소한의 가능한 의존성으로 상기 디바이스가 동작할 수 있는 것이 바람직하다. 예를 들면, 디바이스는 CPU가 버스 마스터로서 남아 있게 하면서, 장치의 아이템의 버스 시스템에 슬레이브로서 동작하는 것이 바람직하다. 또한, 디바이스가 CPU에게 최소한의 가능한 프로세싱 부담을 지우는 것이 바람직하고, 특히, CPU로의 인터럽트 요청의 수를 최소화하는 것이 바람직하다. 또한, 디바이스는 임의의 특정 운영 체제를 사용하는 CPU에 의존하지 않고, 따라서 디바이스는 장치의 아이템의 가장 넓은 가능한 범위에서 채용될 수 있다.Thus, it is desirable for the device to be able to operate with minimal possible dependence on the central processing unit (CPU) of the item of apparatus that can be employed. For example, the device preferably operates as a slave to the bus system of the item of the device, while the CPU remains as the bus master. It is also desirable for the device to place the least possible processing burden on the CPU, and in particular, to minimize the number of interrupt requests to the CPU. Furthermore, the device does not depend on the CPU using any particular operating system, so the device can be employed in the widest possible range of items of the device.
본 발명에 따라, 예를 들면, 트랜잭션(transaction) 완료의 결과로서 생성되는 인터럽트 요청이 시스템 CPU에 제어 방식으로 전송될 수 있는 호스트 컨트롤러가 제공된다. 예를 들면, 상이한 인터럽트 요청이 상이한 우선 순위로 주어질 수 있거나, 또는 CPU로의 혼란을 줄이기 위해 인터럽트 요청들이 CPU에 함께 전송될 수 있다.According to the present invention, a host controller is provided in which an interrupt request, for example generated as a result of a transaction completion, can be sent to the system CPU in a controlled manner. For example, different interrupt requests may be given at different priorities, or interrupt requests may be sent together to the CPU to reduce confusion to the CPU.
도 1은 본 발명에 따른 호스트 컨트롤러를 채용하는 전자 장치 아이템의 개략적인 블록도.1 is a schematic block diagram of an electronic device item employing a host controller in accordance with the present invention.
도 2는 본 발명에 따른 호스트 컨트롤러의 개략적인 블록도.2 is a schematic block diagram of a host controller according to the present invention;
도 3은 도 2의 호스트 컨트롤러에서 소프트웨어의 구조를 도시한 도면.3 illustrates the structure of software in the host controller of FIG.
도 4는 전자 장치 아이템의 CPU로 인터럽트 요청이 전송되는 방식을 제어하는데 사용될 수 있는 논리 회로를 도시한 도면. 4 illustrates a logic circuit that can be used to control how an interrupt request is sent to the CPU of an electronic device item.
도 1은 USB 호스트로서 동작하는 전자 장치 아이템(10)의 관련 부분의 개략적인 블록도이다. 본 발명은 카메라, 셋톱 박스, 모바일 전화, 또는 PDA 같은 시스템 메모리 및 마이크로프로세서의 기능 제한이 개인용 컴퓨터(PC)보다는 오히려 더 관련이 있는 디바이스에 특히 적용가능하다. 그러나, 본 발명은 USB 호스트로서 동작할 수 있는 임의의 디바이스에도 적용가능하다. 1 is a schematic block diagram of a relevant portion of an
디바이스(10)는 많은 특징들을 가질 것이라는 것은 자명하며, 이들 많은 특징들이 본 발명의 이해와 관련이 없기 때문에, 도 1에는 도시되어 있지 않다.It is apparent that
디바이스(10)는 프로세서 코어를 포함하는 호스트 마이크로프로세서(CPU; 20)를 구비한다. CPU(20)는 주변 버스(32)에 의해 시스템 메모리(30)에 접속된다.
호스트 컨트롤러(40)는 또한 주변 버스 또는 메모리 버스(32)에 의해 호스트 마이크로프로세서(20)와 시스템 메모리(30)에도 접속된다. 호스트 컨트롤러(40)는 다수의 USB 디바이스에 접속될 수 있는 USB 버스(42)용의 인터페이스를 구비한다. 예시된 실시예에서, 호스트 컨트롤러(40)는 USB 컨트롤러이고, 호스트 컨트롤러의 특징들은 USB 2.0 명세에 상세하게 설명되어 있으므로 본 명세서에서는 설명되지 않는다.The
종래와 같이, 호스트 컨트롤러(40)는 적절한 포맷으로 프로세서(20)에 의해 마련된 데이터를 검색하고, 버스 인터페이스를 통해 그 데이터를 전송하도록 적응되어 있다. USB 통신에서, 데이터 전송의 두개의 카테고리, 즉, 비동기 전송 및 주기 전송이 있다. 제어 및 벌크(bulk) 데이터는 비동기 전송을 사용하여 전송되고, 등시적 및 인터럽트 데이터는 주기 전송을 통해 전송된다. qTD(Queue Transaction descriptor) 데이터 구조는 비동기 전송용으로 사용되고, iTD(Isochronous Transaction Descriptor) 데이터 구조는 주기 전송용으로 사용된다.As is conventional, the
프로세서(20)는 적절한 구조에서 데이터를 준비하여, 시스템 메모리(30)에 저장하고, 다음에 호스트 컨트롤러(40)는 시스템 메모리(30)로부터 데이터를 검색해야 한다.The
도 2는 임베디드 USB 호스트 컨트롤러(40)의 보다 상세한 구조를 도시한다.2 shows a more detailed structure of the embedded
전술한 바와 같이, 호스트 컨트롤러(40)는 메모리 관리 유닛, 슬레이브 DMA 컨트롤러, 인터럽트 제어 유닛 및 하드웨어 구성 레지스터를 포함하는 인터페이 스(44)에 접속된 메모리 버스(32)에 대한 접속을 구비한다. 인터페이스(44)는 또한 제어 및 인터럽트 신호에 대한 접속(46) 및 호스트 컨트롤러(40)의 연산 레지스터 및 RAM 구조를 지원하는 레지스터(48)를 구비한다.As mentioned above, the
인터페이스(44)는 바람직한 실시예에서 메모리로/로부터 데이터가 동시에 기록/판독되도록 하는 듀얼 포트 RAM인 호스트 컨트롤러의 온칩 RAM(50)에 접속되어 있다. 메모리(50)는 USB 버스(42)용의 인터페이스를 또한 포함하는 호스트 컨트롤러 논리 유닛(52)에 접속된다. 제어 신호는 레지스터(48)로부터 내부 버스(54) 상에서 논리 유닛(52)으로 전송될 수 있다.The
도 3은 본 발명에 따른 디바이스의 동작 방법을 설명하기 위해 호스트 컨트롤러(40) 상에서 동작하는 소프트웨어의 일부를 도시한 개략도이다.3 is a schematic diagram showing a part of the software operating on the
호스트 컨트롤러(40)는 USB 드라이버 소프트웨어(80) 및 USB 인핸스트 호스트 컨트롤러 인터페이스(Enhanced Host controller Interface; EHCI) 소프트웨어(82)를 실행하며, 이들 모두는 일반적으로 종래에도 있었다.The
호스트 컨트롤러(40)는 또한 USB EHCI 인터페이스 소프트웨어(84)를 실행하며, 이 소프트웨어는 데이터가 전송될 모든 종점에 대한 전송-기반 전송 기술자를 마련한다.The
EHCI 인터페이스 소프트웨어(84)는 기존 주기 및 동기식 헤더용의 EHCI 호스트 스택(82)에 의해 생성된 파라미터를 사용하도록 기록되고, 모두 전혀 다른 형태의 USB 전송, 특히 고속 등시적, 벌크, 인터럽트 및 제어 및 시작/정지 분할 트랜잭션과 같은 고속 USB 전송용으로 사용될 수 있다.The EHCI
호스트 마이크로프로세서(20)는, 호스트 컨트롤러(40)가 버스(32)를 마스터하는 것을 요구하지 않으면서, 주변 버스(32)를 통해 호스트 컨트롤러(40)의 RAM(50)으로 전송-기반 전송 기술자를 기록한다. 환언하면, 호스트 컨트롤러(40)는 단지 슬레이브로서 동작한다. 그러면, 전송-기반 전송 기술자는 호스트 컨트롤러(40)의 RAM(50)으로 메모리 매핑될 수 있다.The
이롭게도, 호스트 컨트롤러940)의 빌트인 메모리는 트랜잭션이 호스트 마이크로프로세서(20)로부터 스케줄링되는 것을 용이하게 향상시키면서 호스트 마이크로프로세서(20)에 매핑된다.Advantageously, the built-in memory of the host controller 940 is mapped to the
듀얼 포트 RAM(50)의 사용은, 전송-기반 전송 기술자가 호스트 컨트롤러(40)에 의해 실행되고, 호스트 마이크로프로세서(20)가 데이터를 또 다른 블록 공간으로 기록할 수 있다는 것을 의미한다.The use of
종래와 같이, 데이터 트랜잭션은 등시 전송, 인터럽트 전송, 및 벌크 및 제어 전송을 포함할 수 있다. 또 다른 종래와 같이, 패킷 전송 기술자에 의해 정의되는 바와 같이, 전송이 완료되었을 때, 호스트 컨트롤러는 CPU(20)에 전송하기 위한 인터럽트 요청을 생성한다. 그러나, CPU는 각 트랜잭션이 언제 완료될 것인지, 그리고 시스템에 언제 많은 디바이스들이 접속되어 많은 인터럽트 요청이 있을지를 알지 못한다.As conventional, data transactions can include isochronous transfers, interrupt transfers, and bulk and control transfers. As is still another conventional case, as defined by the packet transfer descriptor, when the transfer is complete, the host controller generates an interrupt request for transfer to the
본 발명은 CPU가, 예를 들면, 특정 종점에 대하여 전송 기술자에게 우선 순위를 정하게 되어, 그들 인터럽트 요청이 바로 핸들링된다. 다른 경우에, CPU는 그들 모두 완료될 때만 전송 기술자 그룹으로부터의 다른 인터럽트 요청을 핸들링 할 수 있다. 전송 기술자 및 페이로드(payload)가 임의의 다른 USB 트랜잭션을 정지하거나 RAM 데이터를 손상시키지 않고 즉시(on-the-fly) 갱신될 수 있다. 또한, 인터럽트 요청은 타임아웃에 기인하여, 특히 벌크 및 등시적 트랜잭션의 경우에 발생할 수 있다는 것이 언급된다.The present invention allows the CPU to, for example, prioritize the transfer descriptor for a particular endpoint so that those interrupt requests are handled immediately. In other cases, the CPU can handle other interrupt requests from the group of transfer descriptors only when they are all completed. The transfer descriptor and payload can be updated on-the-fly without stopping any other USB transactions or corrupting RAM data. It is also mentioned that interrupt requests can occur due to timeouts, especially in the case of bulk and isochronous transactions.
도 4는 트랜잭션이 완료된 때 생성되는 인터럽트 요청에 적용되는 논리 구조를 도시한다. 이 논리 구조는 하드웨어의 논리 게이트에 의해 또는 소프트웨어에 의해 이루어질 수 있다.4 illustrates a logical structure applied to an interrupt request generated when a transaction is completed. This logical structure can be made by logic gates in hardware or by software.
PTD(packet transfer descriptor) Done 맵은 32 비트를 갖는다. 즉, 본 예에서, 대응하는 트랜잭션이 완료된다는 것을 지시하기 위해, 논리는 32개의 PTD까지 도착하는 인터럽트 요청을 핸들링할 수 있다. 트랜잭션이 완료될 때, PTD Done 맵의 관련 비트는 하이(high)로 설정된다. PTD Done 맵의 비트는 일련의 32개의 제1 AND 게이트(210), 일련의 32개의 제2 AND 게이트(220)에 적용되고, 일련의 32개의 제3 AND 게이트(230)에 반전되어 적용된다.A packet transfer descriptor (PTD) Done map has 32 bits. That is, in this example, the logic can handle interrupt requests arriving up to 32 PTDs to indicate that the corresponding transaction is complete. When the transaction completes, the relevant bit of the PTD Done map is set high. The bits of the PTD Done map are applied to the series of 32 first AND
OR 마스크는 또한 32 비트를 갖고, 특정 패킷 전송 기술자에 우선 순위를 부여하기 위해 상용된다. 특정 패킷 전송 기술자에게 특정 우선 순위를 부여하기 위해, OR 마스크의 대응 비트는 하이로 설정된다. OR 마스크의 비트는 일련의 32개의 제1 AND 게이트(210)의 제2 입력에 적용된다.OR masks also have 32 bits and are commonly used to prioritize specific packet transmission descriptors. To give a particular priority to a particular packet transmission descriptor, the corresponding bit of the OR mask is set high. The bits of the OR mask are applied to the second input of the series of 32 first AND
또한, AND 마스크는 또한 32 비트를 갖고, 특정 패킷 전송 기술자들 간의 관계를 소개하기 위해 적용된다. AND 마스크의 비트는 일련의 32개의 제2 AND 게이트(220)의 제2 입력에 적용되고, 일련의 32개의 제3 AND 게이트(230)의 제2 입력에 적용된다. In addition, the AND mask also has 32 bits and is applied to introduce a relationship between specific packet transmission descriptors. The bits of the AND mask are applied to the second input of the series of 32 second AND
따라서, 패킷 전송 기술자로부터 인터럽트 요청이 생성되고 OR 마스크의 대응 비트가 하이로 설정될 때, 대응하는 AND 게이트(210)는 출력으로 논리 "1"을 생성하고, OR 게이트(215, 240)는 OR 게이트(240)의 출력에 논리 "1"이 나타나도록 동작하며, 인터럽트 요청이 CPU(20)로 전송된다.Thus, when an interrupt request is generated from a packet transfer descriptor and the corresponding bit of the OR mask is set high, the corresponding AND
패킷 전달 기술자로부터 인터럽트 요청이 생성되고 OR 마스크의 대응 비트가 로우(low)로 설정될 때, AND 마스크가 관련이 있게 된다. AND 게이트(220)의 출력은 OR 게이트(225)의 각 입력에 적용된다. AND 게이트(230)의 출력은 OR 게이트(235)의 각 입력에 적용된다. OR 게이트(225)의 출력은 AND 게이트(245)의 제1 입력에 적용되고, OR 게이트(235)의 출력은 AND 게이트(245)의 제2 입력에 반전되어 적용된다. AND 게이트(245)의 출력은 OR 게이트(240)에 적용된다.When an interrupt request is generated from the packet forwarding descriptor and the corresponding bit of the OR mask is set low, the AND mask becomes relevant. The output of AND
상기 논리의 효과는, 논리 "1"이 OR 게이트(240)의 출력에 나타나고, 인터럽트 요청이 모든 패킷 전송 기술자로부터 생성될 때에만 인터럽트 요청이 CPU(20)로 전송되고, 이를 위해 AND 마스크의 대응 비트는 하이로 설정된다. 예를 들면, 비트 2, 4 및 10이 AND 마스크 레지스터에 설정되면, 인터럽트 요청은 PTD Done 맵의 비트 2, 4 및 10이 하이로 설정된 경우에만 CPU로 전송된다. PTD Done 맵의 비트 2, 4, 10 중 단지 하나만이 하이로 설정되면, 이것은 인터럽트를 CPU로 전송하지 못할 것이다.The effect of this logic is that an interrupt request is sent to the
시스템 소프트웨어는 인터럽트 요청을 CPU로 전송하기 위한 능력과 관련한 우선 순위를 어느 전송 기술자가 부여받는지를 결정하고, 다른 트랜잭션 또한 완료 될 때까지 어떤 것이 대기해야하며, 인터럽트 요청들을 CPU로 함께 전송하기 위해 OR 마스크 비트 및 AND 마스크 비트를 요구에 따라 변경할 수 있다.The system software determines which transfer descriptors are given priority regarding the ability to send interrupt requests to the CPU, which waits for other transactions to complete, and ORs to send the interrupt requests together to the CPU. The mask bit and the AND mask bit can be changed as required.
실제로, 이것은 인터럽트 요청을 수신할 주파수를 CPU(20)가 변경할 수 있게 한다.In practice, this allows the
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020067026381A KR20070022090A (en) | 2004-06-15 | 2005-06-09 | Interrupt scheme for bus controller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04102727.7 | 2004-06-15 | ||
KR1020067026381A KR20070022090A (en) | 2004-06-15 | 2005-06-09 | Interrupt scheme for bus controller |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070022090A true KR20070022090A (en) | 2007-02-23 |
Family
ID=43653892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067026381A KR20070022090A (en) | 2004-06-15 | 2005-06-09 | Interrupt scheme for bus controller |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070022090A (en) |
-
2005
- 2005-06-09 KR KR1020067026381A patent/KR20070022090A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198382B2 (en) | 12C bus controller slave address register and command FIFO buffer | |
EP1759299B1 (en) | Bus controller for handling split transactions | |
US6687769B2 (en) | Serial peripheral interface with high performance buffering scheme | |
US6088752A (en) | Method and apparatus for exchanging information between buses in a portable computer and docking station through a bridge employing a serial link | |
EP1276045A2 (en) | Cluster system, computer and program | |
US20110238869A1 (en) | Autonomous Multi-Packet Transfer for Universal Serial Bus | |
EP1625506B1 (en) | Usb host controller with memory for transfer descriptors | |
EP1759297B1 (en) | Interrupt scheme for bus controller | |
US6799231B2 (en) | Virtual I/O device coupled to memory controller | |
EP1759298B1 (en) | Bus controller for transferring data | |
KR20070022090A (en) | Interrupt scheme for bus controller | |
WO2004003757A2 (en) | Direct transaction mode for peripheral devices | |
AU751826B2 (en) | Linked Bridge | |
WO2022124083A1 (en) | Communication device, communication method, and program | |
JP5033228B2 (en) | Link bridge | |
JP2948380B2 (en) | Data communication device | |
EP1594066A2 (en) | Computer docking system and method | |
JPH1141297A (en) | Dma controller using programmable sequencer | |
EP1653373A2 (en) | Bus bridge | |
JP2008305232A (en) | Pc card system | |
JPH05134968A (en) | Peripheral processor | |
JP2011198314A (en) | Data receiver and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Withdrawal due to no request for examination |