Browse Prior Art Database

Global Interrupt Signaling for Cores with a de-central / local Interrupt Mechanism (as used in the C 166 CBC uController of the E-Gold + family)

IP.com Disclosure Number: IPCOM000017953D
Original Publication Date: 2001-Oct-01
Included in the Prior Art Database: 2003-Jul-23
Document File: 2 page(s) / 160K

Publishing Venue

Siemens

Related People

Gerhard Forster: AUTHOR

Abstract

The technical problem refers to the global signaling of locally generated interrupts. Until now, the prob- lem was solved by polling with global barriers of interrupts. The new idea allows a universal interrupt handling. It is also possible to save code for one-chip module- drivers. Beside of the present possibility of switching the global interrupt control on or off, the new solution reports appearing interrupts during a global barrier phase.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 39% of the total text.

Global Interrupt Signaling forCores with a de-central / local In-terrupt Mechanism (as used in theC 166 CBC uController of the E-Gold + family)

Idee: Gerhard Forster, München

Information / Kommunikation

•� � For making critical tasks (e.g. modifying Flashcontents to avoid� that� code� is� executed� fromFlash) not interruptible

•� � For proper task scheduling in general.

The technical problem refers to the global signalingof locally generated interrupts. Until now, the prob-lem was solved� by� polling� with� global� barriers� ofinterrupts.

The new idea allows a universal interrupt handling. Itis also possible to save code for one-chip module-drivers. Beside of the present possibility of switchingthe global interrupt control on or off, the new solutionreports appearing interrupts during a global barrierphase.

The following description informs the reader aboutthe functional� and� principal� realization� of� the� newidea:

Brief description of the C166CBC Interrupt handlingscheme:

Each� peripheral’s� Interrupt� source� is� individuallyconfigurable through an own Interrupt Control regis-ter (xxIC) in which the Interrupt source can (1) belocally enabled / disabled by setting / resetting theInterrupt Enable (IE) bit in the xxIC register and (2)an occurred Interrupt� of� the� Interrupt� source� canlocally� be� indicated� through� the� Interrupt� Request(IR) flag in the xxIC register.

All available� Interrupts� –� for� the� C166CBC� thereexist in total 64 different Interrupt sources includingthe core (Software and Hardware) traps – can glob-ally be enabled / disabled by setting / resetting theIEN bit in the Processor Status Word (PSW)

However,� no� mechanism� for� global indication ofoccurred Interrupts exists - regardless which of the 64potential sources the Interrupt stems from. Addition-ally, if Interrupts are� globally� disabled,� only� onepending (local) Interrupt per Interrupt line / source is‘stored’ – any further Interrupt would be lost!

Disadvantage of this Interrupt handling scheme forGSM applications:

Typically a Real-Time (RT)-OS (such as Nucleus orOSE) is used in the mobile GSM application. TheseRT-OS tend to globally enable / disable Interrupts –very frequently even under certain application-specific circumstances

•� � As a prevention for unintentionally overwritingcertain registers or the stack

Even if no RT-OS is used, task scheduling must behandled by a Software control layer in the applicationitself. This could be realized by

•� � Interrupt status tracking in the application. Thisrequires the� knowledge� when� Interrupts� can‘safely’ be globally disabled without the risk tolose pending Interrupts. This controlling strategyleads to far more complex code.

•� � Polling instead of Interrupt processing, at leastwhile Interrupts are� globally� disabled.� In� thiscase module driver state-machines and additionalcontrol instances in the GSM application, as wellas� the� polling� process� in� general lead to in-creas...