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)
Original Publication Date: 2001-Oct-01
Included in the Prior Art Database: 2003-Jul-23
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.
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...