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.

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