KR20070022090A - Interrupt scheme for bus controller - Google Patents

Interrupt scheme for bus controller Download PDF

Info

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
Application number
KR1020067026381A
Other languages
Korean (ko)
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 KR1020067026381A priority Critical patent/KR20070022090A/en
Publication of KR20070022090A publication Critical patent/KR20070022090A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling 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 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되는 경우, 트랜잭션 완료시에 인터럽트 요청이 생성될 때에만 프로세서로 인터럽트 요청이 전송된다.

Figure 112006092798241-PCT00001

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.

Figure 112006092798241-PCT00001

Description

버스 컨트롤러용 인터럽트 기법{INTERRUPT SCHEME FOR BUS CONTROLLER}Interrupt technique for bus controllers {INTERRUPT SCHEME FOR BUS CONTROLLER}

본 발명은 버스 컨트롤러에 관한 것으로, 보다 상세하게는, 전자 장치에 포함되어 다른 전자 장치로/로부터의 데이터 이송을 외부 버스를 사용하여 제어하는 디바이스에 관한 것이다.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 electronic device item 10 operating as a USB host. The present invention is particularly applicable to devices in which the functional limitations of microprocessors and system memory, such as cameras, set-top boxes, mobile phones, or PDAs, are more relevant than personal computers (PCs). However, the present invention is applicable to any device that can operate as a USB host.

디바이스(10)는 많은 특징들을 가질 것이라는 것은 자명하며, 이들 많은 특징들이 본 발명의 이해와 관련이 없기 때문에, 도 1에는 도시되어 있지 않다.It is apparent that device 10 will have many features, and many of these features are not shown in FIG. 1 because they are not relevant to the understanding of the present invention.

디바이스(10)는 프로세서 코어를 포함하는 호스트 마이크로프로세서(CPU; 20)를 구비한다. CPU(20)는 주변 버스(32)에 의해 시스템 메모리(30)에 접속된다.Device 10 has a host microprocessor (CPU) 20 that includes a processor core. The CPU 20 is connected to the system memory 30 by the peripheral bus 32.

호스트 컨트롤러(40)는 또한 주변 버스 또는 메모리 버스(32)에 의해 호스트 마이크로프로세서(20)와 시스템 메모리(30)에도 접속된다. 호스트 컨트롤러(40)는 다수의 USB 디바이스에 접속될 수 있는 USB 버스(42)용의 인터페이스를 구비한다. 예시된 실시예에서, 호스트 컨트롤러(40)는 USB 컨트롤러이고, 호스트 컨트롤러의 특징들은 USB 2.0 명세에 상세하게 설명되어 있으므로 본 명세서에서는 설명되지 않는다.The host controller 40 is also connected to the host microprocessor 20 and the system memory 30 by a peripheral bus or memory bus 32. The host controller 40 has an interface for the USB bus 42 that can be connected to a number of USB devices. In the illustrated embodiment, the host controller 40 is a USB controller and the features of the host controller are not described herein because they are described in detail in the USB 2.0 specification.

종래와 같이, 호스트 컨트롤러(40)는 적절한 포맷으로 프로세서(20)에 의해 마련된 데이터를 검색하고, 버스 인터페이스를 통해 그 데이터를 전송하도록 적응되어 있다. USB 통신에서, 데이터 전송의 두개의 카테고리, 즉, 비동기 전송 및 주기 전송이 있다. 제어 및 벌크(bulk) 데이터는 비동기 전송을 사용하여 전송되고, 등시적 및 인터럽트 데이터는 주기 전송을 통해 전송된다. qTD(Queue Transaction descriptor) 데이터 구조는 비동기 전송용으로 사용되고, iTD(Isochronous Transaction Descriptor) 데이터 구조는 주기 전송용으로 사용된다.As is conventional, the host controller 40 is adapted to retrieve the data provided by the processor 20 in an appropriate format and to transmit the data over the bus interface. In USB communication, there are two categories of data transfer: asynchronous transfer and periodic transfer. Control and bulk data are transmitted using asynchronous transmissions, while isochronous and interrupt data are transmitted via periodic transmissions. The qTD (Queue Transaction Descriptor) data structure is used for asynchronous transmission and the iTD (Isochronous Transaction Descriptor) data structure is used for periodic transmission.

프로세서(20)는 적절한 구조에서 데이터를 준비하여, 시스템 메모리(30)에 저장하고, 다음에 호스트 컨트롤러(40)는 시스템 메모리(30)로부터 데이터를 검색해야 한다.The processor 20 prepares data in an appropriate structure, stores it in the system memory 30, and then the host controller 40 needs to retrieve data from the system memory 30.

도 2는 임베디드 USB 호스트 컨트롤러(40)의 보다 상세한 구조를 도시한다.2 shows a more detailed structure of the embedded USB host controller 40.

전술한 바와 같이, 호스트 컨트롤러(40)는 메모리 관리 유닛, 슬레이브 DMA 컨트롤러, 인터럽트 제어 유닛 및 하드웨어 구성 레지스터를 포함하는 인터페이 스(44)에 접속된 메모리 버스(32)에 대한 접속을 구비한다. 인터페이스(44)는 또한 제어 및 인터럽트 신호에 대한 접속(46) 및 호스트 컨트롤러(40)의 연산 레지스터 및 RAM 구조를 지원하는 레지스터(48)를 구비한다.As mentioned above, the host controller 40 has a connection to a memory bus 32 connected to an interface 44 that includes a memory management unit, a slave DMA controller, an interrupt control unit, and a hardware configuration register. The interface 44 also has a connection 46 for control and interrupt signals and a register 48 that supports the operational registers and RAM structures of the host controller 40.

인터페이스(44)는 바람직한 실시예에서 메모리로/로부터 데이터가 동시에 기록/판독되도록 하는 듀얼 포트 RAM인 호스트 컨트롤러의 온칩 RAM(50)에 접속되어 있다. 메모리(50)는 USB 버스(42)용의 인터페이스를 또한 포함하는 호스트 컨트롤러 논리 유닛(52)에 접속된다. 제어 신호는 레지스터(48)로부터 내부 버스(54) 상에서 논리 유닛(52)으로 전송될 수 있다.The interface 44 is connected to the on-chip RAM 50 of the host controller, which is a dual port RAM that allows data to be simultaneously written / read to / from memory in the preferred embodiment. The memory 50 is connected to a host controller logic unit 52 that also includes an interface for the USB bus 42. The control signal may be sent from the register 48 to the logic unit 52 on the internal bus 54.

도 3은 본 발명에 따른 디바이스의 동작 방법을 설명하기 위해 호스트 컨트롤러(40) 상에서 동작하는 소프트웨어의 일부를 도시한 개략도이다.3 is a schematic diagram showing a part of the software operating on the host controller 40 to explain a method of operating the device according to the present invention.

호스트 컨트롤러(40)는 USB 드라이버 소프트웨어(80) 및 USB 인핸스트 호스트 컨트롤러 인터페이스(Enhanced Host controller Interface; EHCI) 소프트웨어(82)를 실행하며, 이들 모두는 일반적으로 종래에도 있었다.The host controller 40 executes the USB driver software 80 and the USB Enhanced Host Controller Interface (EHCI) software 82, all of which have generally existed in the past.

호스트 컨트롤러(40)는 또한 USB EHCI 인터페이스 소프트웨어(84)를 실행하며, 이 소프트웨어는 데이터가 전송될 모든 종점에 대한 전송-기반 전송 기술자를 마련한다.The host controller 40 also executes the USB EHCI interface software 84, which provides a transfer-based transfer descriptor for every endpoint to which data is to be transferred.

EHCI 인터페이스 소프트웨어(84)는 기존 주기 및 동기식 헤더용의 EHCI 호스트 스택(82)에 의해 생성된 파라미터를 사용하도록 기록되고, 모두 전혀 다른 형태의 USB 전송, 특히 고속 등시적, 벌크, 인터럽트 및 제어 및 시작/정지 분할 트랜잭션과 같은 고속 USB 전송용으로 사용될 수 있다.The EHCI interface software 84 is written to use parameters generated by the EHCI host stack 82 for existing periodic and synchronous headers, all of which are entirely different types of USB transfers, particularly high speed isochronous, bulk, interrupt and control and Can be used for high speed USB transfers such as start / stop split transactions.

호스트 마이크로프로세서(20)는, 호스트 컨트롤러(40)가 버스(32)를 마스터하는 것을 요구하지 않으면서, 주변 버스(32)를 통해 호스트 컨트롤러(40)의 RAM(50)으로 전송-기반 전송 기술자를 기록한다. 환언하면, 호스트 컨트롤러(40)는 단지 슬레이브로서 동작한다. 그러면, 전송-기반 전송 기술자는 호스트 컨트롤러(40)의 RAM(50)으로 메모리 매핑될 수 있다.The host microprocessor 20 transfers through the peripheral bus 32 to the RAM 50 of the host controller 40 via the peripheral bus 32 without requiring the host controller 40 to master the bus 32. Record it. In other words, the host controller 40 only acts as a slave. The transfer-based transfer descriptor may then be memory mapped to the RAM 50 of the host controller 40.

이롭게도, 호스트 컨트롤러940)의 빌트인 메모리는 트랜잭션이 호스트 마이크로프로세서(20)로부터 스케줄링되는 것을 용이하게 향상시키면서 호스트 마이크로프로세서(20)에 매핑된다.Advantageously, the built-in memory of the host controller 940 is mapped to the host microprocessor 20 while facilitating the transaction being scheduled from the host microprocessor 20.

듀얼 포트 RAM(50)의 사용은, 전송-기반 전송 기술자가 호스트 컨트롤러(40)에 의해 실행되고, 호스트 마이크로프로세서(20)가 데이터를 또 다른 블록 공간으로 기록할 수 있다는 것을 의미한다.The use of dual port RAM 50 means that the transfer-based transfer descriptor is executed by the host controller 40 and the host microprocessor 20 can write data to another block space.

종래와 같이, 데이터 트랜잭션은 등시 전송, 인터럽트 전송, 및 벌크 및 제어 전송을 포함할 수 있다. 또 다른 종래와 같이, 패킷 전송 기술자에 의해 정의되는 바와 같이, 전송이 완료되었을 때, 호스트 컨트롤러는 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 20. However, the CPU does not know when each transaction will complete and when many devices are connected to the system and there will be many interrupt requests.

본 발명은 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 gates 210 and the series of 32 second AND gates 220, and inverted to the series of 32 third AND gates 230.

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 gates 210.

또한, 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 gates 220 and to the second input of the series of 32 third AND gates 230.

따라서, 패킷 전송 기술자로부터 인터럽트 요청이 생성되고 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 gate 210 generates a logic "1" as an output, and the OR gates 215, 240 are OR A logic "1" appears at the output of the gate 240, and an interrupt request is sent to the CPU 20.

패킷 전달 기술자로부터 인터럽트 요청이 생성되고 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 gate 220 is applied to each input of OR gate 225. The output of AND gate 230 is applied to each input of OR gate 235. The output of the OR gate 225 is applied to the first input of the AND gate 245, and the output of the OR gate 235 is applied inverted to the second input of the AND gate 245. The output of AND gate 245 is applied to OR gate 240.

상기 논리의 효과는, 논리 "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 20 only when logic " 1 " appears at the output of the OR gate 240 and an interrupt request is generated from all packet transfer descriptors, for which The bit is set high. For example, if bits 2, 4, and 10 are set in the AND mask register, an interrupt request is sent to the CPU only if bits 2, 4, and 10 of the PTD Done map are set high. If only one of bits 2, 4, or 10 of the PTD Done map is set high, it will not send an interrupt to the CPU.

시스템 소프트웨어는 인터럽트 요청을 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 CPU 20 to change the frequency at which to receive the interrupt request.

Claims (7)

프로세서의 제어 하에, 버스 통신 시스템을 통해 데이터를 전송하는 호스트 컨트롤러로서 - 상기 데이터는 복수의 개별 트랜잭션으로 전송되고 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성됨 -,Under the control of a processor, a host controller transmitting data via a bus communication system, the data being transmitted in a plurality of individual transactions and upon completion of the transaction a processor interrupt request is generated; 상기 호스트 컨트롤러는, 상기 복수의 개별 트랜잭션의 제1 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성될 때, 인터럽트 요청이 상기 프로세서로 전송되도록 하는 반면에 상기 복수의 개별 트랜잭션의 제2 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 상기 생성될 때는 인터럽트 요청이 프로세서로 전송되지 않도록 하는 로직(logic)을 포함하는 The host controller causes an interrupt request to be sent to the processor when a processor interrupt request is generated upon completion of a transaction from the first group of the plurality of individual transactions, while the transaction from the second group of the plurality of individual transactions is Includes logic to prevent an interrupt request from being sent to the processor when the processor interrupt request is generated upon completion 호스트 컨트롤러.Host controller. 제 1 항에 있어서,The method of claim 1, 상기 호스트 컨트롤러는, 상기 복수의 개별 트랜잭션의 제3 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되는 경우, 상기 복수의 개별 트랜잭션의 상기 제3 그룹 모두로부터의 트랜잭션 완료시에 인터럽트 요청이 생성될 때에만 상기 프로세서로 인터럽트 요청이 전송되도록 하는 로직을 더 포함하는 호스트 컨트롤러.The host controller is only configured when an interrupt request is generated upon completion of a transaction from all of the third group of the plurality of individual transactions, if a processor interrupt request is generated upon completion of a transaction from the third group of the plurality of individual transactions. And logic to cause an interrupt request to be sent to the processor. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 프로세서와 시스템 메모리를 상호접속하는 메모리 버스로의 접속을 위한 제1 인터페이스, 및A first interface for connection to a memory bus interconnecting the processor and system memory, and 상기 버스 통신 시스템으로의 접속을 위한 제2 인터페이스를 더 포함하는 호스트 컨트롤러.And a second interface for connecting to the bus communication system. 버스 통신 디바이스로서,As a bus communication device, 프로세서,Processor, 시스템 메모리,System memory, 호스트 컨트롤러, 및A host controller, and 상기 프로세서, 상기 시스템 메모리 및 상기 호스트 컨트롤러를 상호접속하는 메모리 버스를 포함하고,A memory bus interconnecting said processor, said system memory and said host controller, 상기 호스트 컨트롤러는 상기 프로세서의 제어 하에 버스 통신 시스템을 통해 데이터를 전송하도록 구성되고, 상기 데이터는 복수의 개별 트랜잭션으로 전송되고, 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되며,The host controller is configured to transmit data through a bus communication system under control of the processor, the data is transmitted in a plurality of individual transactions, a processor interrupt request is generated upon completion of the transaction, 상기 호스트 컨트롤러는, 상기 복수의 개별 트랜잭션의 제1 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성될 때, 인터럽트 요청이 상기 프로세서로 전송되는 반면에, 상기 복수의 개별 트랜잭션의 제2 그룹으로부터의 트랜 잭션 완료시에 프로세서 인터럽트 요청이 생성될 때는 인터럽트 요청이 상기 프로세서로 전송되지 않도록 하는 로직을 포함하는 The host controller is further configured to transmit a interrupt from the second group of the plurality of individual transactions, while an interrupt request is sent to the processor when a processor interrupt request is generated upon completion of the transaction from the first group of the plurality of individual transactions. And logic to prevent an interrupt request from being sent to the processor when a processor interrupt request is generated upon completion of the transaction. 버스 통신 디바이스.Bus communication device. 제 4 항에 있어서,The method of claim 4, wherein 상기 호스트 컨트롤러는, 상기 복수의 개별 트랜잭션의 제3 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되는 경우, 상기 복수의 개별 트랜잭션의 상기 제3 그룹 모두로부터의 트랜잭션 완료시에 인터럽트 요청이 생성될 때에만 상기 프로세서로 인터럽트 요청이 전송되도록 하는 로직을 더 포함하는 논리를 더 포함하는 버스 통신 디바이스.The host controller is only configured when an interrupt request is generated upon completion of a transaction from all of the third group of the plurality of individual transactions, if a processor interrupt request is generated upon completion of a transaction from the third group of the plurality of individual transactions. And logic further including logic to cause an interrupt request to be sent to the processor. 프로세서의 제어 하에, 버스 통신 시스템을 통해 데이터를 전송하는 호스트 컨트롤러의 동작 방법으로서 - 상기 데이터는 복수의 개별 트랜잭션으로 전송되고, 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성됨 -,A method of operation of a host controller that transmits data through a bus communication system, under the control of a processor, the data being transmitted in a plurality of individual transactions, upon completion of the transaction a processor interrupt request is generated; 상기 방법은, 상기 복수의 개별 트랜잭션의 제1 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성될 때, 프로세서로 인터럽트 요청을 전송하는 단계를 포함하고,The method includes sending an interrupt request to a processor when a processor interrupt request is generated upon completion of a transaction from the first group of the plurality of individual transactions, 반면, 상기 방법은, 상기 복수의 개별 트랜잭션의 제2 그룹으로부터의 트랜 잭션 완료시에 프로세서 인터럽트 요청이 생성될 때는 프로세서로 인터럽트 요청을 전송하지 않는 단계를 포함하는 방법. In contrast, the method includes not sending an interrupt request to the processor when a processor interrupt request is generated upon completion of a transaction from the second group of the plurality of individual transactions. 제 6 항에 있어서,The method of claim 6, 상기 방법은, 상기 복수의 개별 트랜잭션의 제3 그룹으로부터의 트랜잭션 완료시에 프로세서 인터럽트 요청이 생성되는 경우, 상기 복수의 개별 트랜잭션의 상기 제3 그룹 모두로부터의 트랜잭션 완료시에 인터럽트 요청이 생성될 때에만 상기 프로세서로 인터럽트 요청을 전송하는 단계를 더 포함하는 방법.The method further comprises: when a processor interrupt request is generated upon completion of a transaction from a third group of the plurality of individual transactions, only when the interrupt request is generated upon completion of a transaction from all of the third group of the plurality of individual transactions. Sending an interrupt request to the processor.
KR1020067026381A 2004-06-15 2005-06-09 Interrupt scheme for bus controller KR20070022090A (en)

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)

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