An audio/video renderer peripheral with dual interrupt lines for staggered interrupts
Abstract
This record has no abstract on file.
Term
Projected expiry 21 December 2026.
- Priority
- Filed
- Published
- Today
- Projected expiry
7 claims: 3 independent, 4 dependent
- 1Claims of equivalent WO 2007072457 A2 CLAIMS What is claimed is:1. A rendering peripheral device 300 for use in an audio-video (AV) playback chain, comprising: an AV renderer 302 for processing an input datastream;a first interrupt service request (IRQ-I) 306 output connected to be generated by a predetermined event occurring in the AV renderer 302, and providing for a first processor 310 to begin a first interrupt service routine (ISR-I) 312 to service a first task for the AV renderer 302;a second interrupt service request (IRQ-2) 308 output, and providing for a second processor 314 to begin a second interrupt service routine (ISR-2) 316 to service a second task for the AV renderer 302;and a programmable delay timer 304 connected to be triggered by the IRQ-I 306 output and to generate the IRQ-2 308 output after a delay that depends on a programmed register value.
- 2The rendering peripheral device 300 of Claim 1, wherein:the programmable delay timer 304 uses the programmed register value to count down peripheral clock ticks.
- 3The rendering peripheral device 300 of Claim 1, wherein:the programmable delay timer 304 uses the programmed register value to count down bytes in an AV-data buffer.
- 4A method of AV-rendering in a SoC with at least two processor cores 202, 204, comprising:causing a first interrupt service request (IRQ-l)306 to be generated by a predetermined event occurring in an AV renderer and provides for a first processor 202 to begin a first interrupt service routine (ISR-I) 312 to service a first task for said AV renderer;and timing a second interrupt service request (IRQ-2)308 to a second processor 204 to begin a second interrupt service routine (ISR-2) 316 to service a second task for said AV renderer with a delay that depends on a programmed register value;wherein race conditions are controlled and limited.
- 5The method of Claim 4, further comprising:dividing the tasks of tuning, decoding, post-processing, and rendering 206, 208, 210, 212 between said first and second processors 202, 204.
- 6The method of Claim 4, wherein:the timing provides for an interlacing of accesses from said first and second processors 202, 204 through a MMIO register 320 structure to memory.
- 7A system-on-chip (SoC), comprising:a first core processor 310 providing for execution of a first interrupt service routine (ISR- 1)312;a second core processor 314 providing for execution of a second interrupt service routine (ISR-2) 316;and an AV- rendering peripheral 302 providing for management of the first and second processors 310, 314 with a first interrupt service request (IRQ- 1)306 generated by a predetermined event occurring in an AV renderer and provides for the first processor 310 to begin executing said ISR-I 312 which services a first task for said AV renderer, and a second interrupt service request (IRQ-2) 308 to the second processor 314 to begin said ISR-2 316 which services a second task for the AV renderer with a delay 304 that depends on a programmed register value.
Independent claims7
23 paragraphs in 2 sections, as filed
Description of equivalent WO 2007072457 A2
AN AV RENDERER PERIPHERAL WITH DUAL INTERRUPT LINES FOR
STAGGERED INTERRUPTS
0003The present invention relates to audio-video (AV) playback chains and rendering peripheral devices, and more particularly to methods and circuits for generating two or more interrupts with a programmable delay between them to prevent two processors from racing to access the same resources in their respective interrupt service routines.
0004The S arnoff (Princeton, NJ) DVD Audio/Video Decoder accepts unscrambled DVD Streams, MPEG-I System Streams, or MPEG-2 Program Streams, decodes the audio and video payloads, and automatically synchronizes the decoded audio and video outputs without requiring host software intervention. It also accepts and decodes sequences of audio and video PES packets, for use with external Digital Broadcast System (DBS) transport stream demultiplexers. The system processor is designed to operate with a minimum of 4 Mbytes of external SDRAM. It supports an input data rate of 64 MBits/sec and a video bit rate of 15 MBits/sec. The host initializes the decoder by resetting it and configuring the desired audio and video options. During operation, the decoder issues interrupts to notify the host that video user data, audio ancillary data, or system-level PSI data are available for retrieval from SDRAM, that specific data buffers are empty or full, or that bitstream errors have been detected. The host reads an interrupt status register to determine the nature of each interrupt.
0005Audio-video (AV) playback chains are often split up to be processed by more than one processor. So it is important for the peripheral devices to provide periodic interrupts and to be accessible by all these processors. If such access to the renderer peripheral is through common memory-mapped input-out (MMIO) registers, then the renderer peripheral access to the processor directly controlling it should be staggered with the other processors to avoid race conditions and stalls.
0006Conventional circuits and methods provide only one hardwired interrupt output from the AV renderer peripheral. The processors assigned to service the interrupt with their interrupt service routine (ISR) software can race each other to the single interrupt. Even processors that are not triggered by hardwired interrupts to service AV renderer peripheral can nevertheless get into races and collide causing stalls. What is needed, and what has been missed so far, is an AV renderer peripheral that can issue multiple lines of interrupts to non- simultaneously involve more than one independent processor.
0007This invention provides a circuit for an audio-video renderer peripheral device with multiple interrupt outputs.
0008Briefly, a circuit embodiment of the present invention comprises an audio-video renderer peripheral device with two processor interrupt outputs. A heartbeat interrupt output is a primary one, while a second interrupt output can be programmed to follow the primary heartbeat interrupt by a variable time delay. An advantage of the present invention is that a circuit and method are provided to ensure multiple processors will be able to meet their respective processing deadlines for an audio-video renderer peripheral device.
0009Another advantage of the present invention is that a circuit and method are provided that allow virtual-renderers to be implemented in software by processors not having direct access to an audio-video renderer peripheral device.
0010A further advantage of the present invention is that time-stamp translation schemes can be used to convert presentation time stamps from the source clock domain to the renderer clock domain when the renderer clock is accessible via registers.
0011These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
0012Fig. 1 is a functional block diagram of an audio-video playback chain embodiment of the present invention; Fig. 2 is a functional block diagram of a system-on-chip implementation with two core processors divided for AV decoding and rendering;
0013Fig. 3 is a functional block diagram of an AV-rendering system embodiment of the present invention; and
0014Fig. 4 is a graph showing the relative timing between ISR-I, ISR-2, IRQ-I, and IRQ-2, and to illustrate how races and stalls causes by collisions at the MMIO are avoided by interlacing memory accesses.
0015Fig. 1 represents the dataflow for an audio-video (AV) playback chain embodiment of the present invention, and is referred to herein by the general reference numeral 100. AV playback chain 100 comprises an AV source 102 that is selected by a tuner 104. It deposits a datastream in a memory 106. A stream decoder 108 recovers the original data, and puts the decoded data in memory 106. An AV post-processor 110 operates on the decoded data, and places its output in memory 106. An AV-renderer 112 outputs AV-presentations 114 for a user.
0016The Philips TriMedia Streaming Software Architecture (TSSA) is an example of an implementation similar to Fig. 1. The audio system for a television receiver is constructed within TSSA and is optimized for streaming multimedia data. Software modules are represented by tuner 104, stream decoder 108, AV post-processor 110, and AV-renderer 112. The software modules can be developed independently because the interfaces are clearly defined between components. A programmer integrate diverse modules as they connect in a common way. Many TSSA components are commercially available to build a complete Advanced Television System Committee (ATSC) receiver. TSSA uses a data- driven design. The real-time operating system (RTOS) provides a foundation that allows the system to be factored into independent tasks that communicate using queues, pointers, and semaphores that are passed by interrupts. A given task will sleep until data is available, process the data, send it along, and sleep again. The connection between tasks is implemented using an operating system's queue construct. Each connection is made up of a pair of queues, with packets full of data carried in one queue, and empty packets in the other. The empty packets signal to the sender that the associated data memory can be recycled. The number of packets that circulate in this pair of queues determines the amount of buffering between the two tasks. Data passes between tasks in packets, and packets use a standard structure defined by the architecture. Packets are passed by reference, so that data is not copied unnecessarily. Packets may also be time stamped to facilitate synchronization. These data packets may pass audio, video, and other data.
0017Most of the interactions between processors and AV-renderer peripherals occur in the context of a renderer heartbeat interrupt service routine (ISR). The heartbeat periodic interrupt conventionally signals the completion of rendering of an AV data buffer. It triggers a next data transfer to the AV renderer, and subsequent data processing upstream. If two or more processors are connected to the same AV-renderer interrupt line, racing and temporary execution lock-up can occur. Embodiments of the present invention provide at least a second interrupt line from the AV-renderer peripheral. In one instance, a second interrupt output is skewed by a fixed programmable time interval relative to a primary heartbeat interrupt.
0018Fig. 2 represents a system-on-chip (SoC) embodiment of the present invention, and is referred to herein by the general reference numeral 200. The SoC 200 uses at least two core processors (processor- 1) 202 and (processor-2) 204 to implement audio-video (AV) playback chain. Processor- 1 202 includes a tuner 206, a stream decoder 208, and a virtual AV renderer 210. Processor-2 204 has an AV post-processor 212 and an AV renderer 214. For AV playback systems, it is common to transfer data between processors via shared memory at regular intervals equal to that of the rendering heartbeat. At the same time, the data transfer itself must be staggered with regard to the renderer interrupt so that any further processing via software can be accomplished prior to rendering. If the renderer clock domain is distinct from the decoder clock domain, any presentation time stamp (PTS) values from the stream decoder should be translated into a corresponding PTS value for the renderer. The PTS translation process typically needs access to a renderer clock. For example, SoC 200 could be part of a system-on-chip like the Philips (Amsterdam, The Netherlands) Nexperia™ PNX8550 home entertainment engine. Such is a highly integrated SoC incorporating a control processor, two programmable media processors, high definition video decoders, a sealer, renderer and numerous other on-chip functions. The SoC supports analog and digital TV broadcast standards, deinterlacing and other picture improvement features, and multi- format audio/video decoding and rendering and other advanced features. A TV based on the Philips SoC can decode and display digital photographs, MPEG-4 and DV video clips directly from a flash memory card or Memory Stick. Dedicated MPEG-2 decoders can process up to two high definition program streams simultaneously for simultaneous display on the screen, e.g., picture-in-picture or side-by- side. Or they can be used to convert an HD video program for recording on a standard definition recorder.
0019Most of the interactions between a processor and an AV renderer peripheral occur in the context of what is commonly termed as the renderer heartbeat ISR (interrupt service routine) context. The heartbeat periodic interrupt signals the end of rendering of an AV data buffer, and thereby triggers further data transfer to the AV renderer, and consequently, further data processing upstream. If two or more processors are connected to the AV renderer interrupt line, however, the problems previously mentioned crop up. Fig. 3 represents an AV-rendering system embodiment of the present invention, and is referred to herein by the general reference numeral 300. System 300 comprises an AV renderer peripheral 302 with a programmable interrupt delay timer 304. A register inside the programmable interrupt delay timer 304 can be used, e.g., to count clock ticks or data bytes remaining in an AV-data buffer.
0020A first interrupt request (IRQ-I) 306 triggers the programmable interrupt delay timer 304 to produce a second interrupt request (IRQ-2) 308. This allows a first core processor 310 to execute a first interrupt service routine (ISR-I) access 312. After a fixed time, a second core processor 314 is triggered by IRQ-2 308 to produce a second interrupt service routine (ISR-2) access 316. All these accesses, and direct AV-data peripheral accesses 318 must funnel through a memory-mapped input-output (MMIO) register 320. An external memory 322, e.g., SDRAM, provides storage for the video and audio programs.
0021Fig. 4 illustrates how the special construction of AV-rendering system 300 helps avoid race conditions and stalls. If stream decoding were assigned to by done by processor- 1 310 in its ISR-I accesses 312, and post-processing and rendering were assigned to be done by processor-2 314 in its ISR-2 accesses 316, then Fig. 4 shows how these accesses would interleave through MMIO register 320. A first ISR-I 401 is triggered by IRQ-I. After enough time to execute ISR-I 401 has passed, the programmable delay timer 304 issues IRQ-2. Then ISR-2 begins 402,404. The AVE-renderer peripheral will then issue a subsequent IRQ-I, and the interlaced ISR accesses continue 403, 405.
0022IRQ-I 306 can be used to signal to processor- 1 310 that a portion of an AV-data buffer currently being rendered has been used. IRQ-2 308 can be used to signal processor-2 314 that a the AV-data buffer has been completely emptied. This implies that the IRQ-I interrupt leads the IRQ-2 by a definite interval. Such interval is programmable for clock ticks or in buffer bytes emptied, e.g., through a register setting in the AV renderer peripheral.
0023Embodiments of the present invention simplify SoC implementations of embedded audio-video playback chains with software modules executing on different processors. For example, the audio/video stream decoder processing and effects processing can be divided between two core processors. The benefits of the present invention accrue to both audio and video rendering hardware.
0024Although the present invention has been described in terms of the presently preferred embodiments, it is to be understood that the disclosure is not to be interpreted as limiting. Various alterations and modifications will no doubt become apparent to those skilled in the art after having read the above disclosure. Accordingly, it is intended that the appended claims be interpreted as covering all alterations and modifications as fall within the true spirit and scope of the invention.
Contents2
Every citation, both ways
| Reference | Relation | Cited during |
|---|---|---|
| See references of WO 2007072457A3 | Non-patent | Search report |
9 members in 6 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 75385005 | United States of America | P | |
| 753850P | United States of America | – | |
| 2006055012 | International Bureau of the World Intellectual Property Organization (WIPO) | W | |
| WO2006IB55012 | – | – | – |
| US20050753850P | – | – | – |
| IB2006055012 | – | – | – |
| 753850P | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| WO2007072457A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2007072457A3 | World Intellectual Property Organization (WIPO) | A3 | |
| TW200810523A | Taiwan Province of China | A | |
| EP1966993A2This record | European Patent Office (EPO) | A2 | |
| US2008317119A1 | United States of America | A1 | |
| CN101341736A | China | A | |
| JP2009521055A | Japan | A | |
| CN101341736B | China | B | |
| US8484389B2 | United States of America | B2 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application withdrawnWithdrawn18W | 18W | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION HAS BEEN WITHDRAWNSTAA | STAA | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Request for extension of the european patentAX | AX | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 1966993
- Publication, DOCDB
- 1966993
- Publication, EPODOC
- EP1966993
- Application
- 6842665
- Application, DOCDB
- 06842665
- Application, EPODOC
- EP20060842665
Titles3
- German
- PERIPHERIEGERÄT ZUR AUDIO-/VIDEO-DARSTELLUNG MIT DOPPELTEN INTERRUPT-LEITUNGEN FÜR VERSETZTE INTERRUPTS
- English
- AN AUDIO/VIDEO RENDERER PERIPHERAL WITH DUAL INTERRUPT LINES FOR STAGGERED INTERRUPTS
- French
- SYSTEME DE RENDU AV PERIPHERIQUE AVEC LIGNES D'INTERRUPTION POUR DES INTERRUPTIONS PAR ETAPES
Classification
- CPC, 1
- G06F9/4825
- IPC, 2
- H04N5 00
- G06F9 46
Designated states36
- Contracting states, 31
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Hungary
- Ireland
- Iceland
- Italy
- Liechtenstein
- Lithuania
- Luxembourg
- Latvia
- Monaco
- Netherlands (Kingdom of the)
and 7 moreShow fewer
- Poland
- Portugal
- Romania
- Sweden
- Slovenia
- Slovakia
- Türkiye
- Extension states, 5
- Albania
- Bosnia and Herzegovina
- Croatia
- North Macedonia
- Serbia