DE102008062692B4 - Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus - Google Patents

Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus Download PDF

Info

Publication number
DE102008062692B4
DE102008062692B4 DE102008062692A DE102008062692A DE102008062692B4 DE 102008062692 B4 DE102008062692 B4 DE 102008062692B4 DE 102008062692 A DE102008062692 A DE 102008062692A DE 102008062692 A DE102008062692 A DE 102008062692A DE 102008062692 B4 DE102008062692 B4 DE 102008062692B4
Authority
DE
Germany
Prior art keywords
register
interrupt
entity
system data
data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
DE102008062692A
Other languages
English (en)
Other versions
DE102008062692A1 (de
Inventor
Johann Zipperer
Horst Diewald
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Deutschland GmbH
Original Assignee
Texas Instruments Deutschland GmbH
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 Texas Instruments Deutschland GmbH filed Critical Texas Instruments Deutschland GmbH
Priority to DE102008062692A priority Critical patent/DE102008062692B4/de
Priority to US12/640,605 priority patent/US8234430B2/en
Publication of DE102008062692A1 publication Critical patent/DE102008062692A1/de
Application granted granted Critical
Publication of DE102008062692B4 publication Critical patent/DE102008062692B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Eingebettetes Mikrocontrollersystem, mit: einer zentralen Recheneinheit (6); einem Systemcontroller (1) zum Empfangen und Behandeln eines Interrupt; einem dediziertes Hardware-Register (11), das Speicherstellen aufweist, die eine Mehrzahl von den Interrupts zugeordneten Sätzen (12) vorgegebener Systemdaten für unterschiedliche Betriebsbedingungen des Systems enthalten, und das so gekoppelt ist, dass es basierend auf den Systemdaten eine Systemkonfiguration einstellt, wobei die Systemdaten im Register (11) definiert und gespeichert werden, bevor ein den Systemdaten im Register (11) zugeordnetes Interrupt empfangen wird, und der Systemcontroller (1) an das Register (11) gekoppelt ist, um basierend auf dem empfangenen Interrupt ein Auswahlsignal zum Register (11) zu senden und eine vorgegebene Speicherstelle des Registers (11) aus einer Mehrzahl von Speicherstellen auszuwählen und zu aktivieren, die dem empfangenen Interrupt zugeordnet ist, so dass unter Verwendung der ausgewählten vorgegebenen Systemdaten im Register (11) die entsprechende Systemkonfiguration direkt und unterbrechungsfrei eingestellt wird, sodass jeder weitere Eingriff eines Betriebssystems des eingebetteten Mikrocontrollersystems zum Einstellen der Betriebsbedingungen vermieden wird, wobei die Betriebsbedingungen mindestens das Konfigurieren eines Versorgungsspannungspegels eines spezifischen Versorgungsspannungsbereichs oder das Konfigurieren einer Frequenz eines Taktes des Systems umfasst und im Register (11) ein Datenfeld zur Steuerung der Zugriffsrechte auf die Ressourcen vorgesehen ist und die Systemdaten für die Verfügbarkeit einer Ressource des Systems für eine Entität sorgen und die Systemdaten eine Kennung zur Identifizierung einer Entität enthalten, die eine von dem Interrupt ausgelöste Anforderung bearbeitet, und ein Registerinhalt oder ein Teil des Registerinhalts des Registers (11) gesperrt wird, um den Registerinhalt oder den Teil davon vor einer Änderung zu schützen.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein eingebettetes Mikrocontrollersystem mit einer zentralen Recheneinheit (CPU), einem Systemcontroller und Verschaltung sowie ein Verfahren zur Konfiguration des eingebetteten Mikrocontrollersystems.
  • HINTERGRUND
  • Controller und Computerprogramme verwenden Betriebssysteme (engl. Operating System – OS) oder spezifische Abwandlungen von Betriebssystemen, um auf Anforderungen für Systemkonfigurationen in Bezug auf Hardware- und Softwareressourcen der Systeme zu reagieren. Viele Anwendungen, insbesondere bei eingebetteter Datenverarbeitung, müssen präzise und in einer genau vorgegebenen Art und auf deterministische Weise auf Anforderungen von Hardware und Software reagieren. Diese Anforderungen können von einer Kommunikationsschnittstelle, analogen Komponenten oder einfach von einem Zeitgeber gesendet werden, der die Software zum Ausführen aktiviert. Betriebssysteme, die derartige deterministische Merkmale benötigen, sind gewöhnlich Echtzeitbetriebssysteme (engl. Real-Time Operating System – RTOS).
  • Das OS oder RTOS behandelt alle empfangenen Anforderungen, steuert die Speicherzuweisung und die Aufhebung der Zuweisung, aktiviert die Software zum Auslösen der Behandlungsroutine für diese Anforderung und organisiert die Rückmeldungen usw. Das OS oder RTOS ist flexibel und kann an verschiedene Architekturen der eingebetteten Controller oder Verarbeitungseinheiten angepasst werden. Der Preis für die Flexibilität durch die Software eines OS ist, dass sie wichtige Ressourcen des Systems verbraucht. Das OS oder RTOS braucht Zeit, Taktzyklen, benötigt Speicher und somit Zugriffe und andere Aktivitäten, die über die tatsächliche auszuführende Aufgabe hinausgehen. Das übliche OS verbraucht somit Leistung (z. B. von einer Batterie) und Ausführungszeit, um eine zuverlässige Softwareausführung zu organisieren.
  • Eine Anforderung wird durch ein Interrupt ausgelöst und über das Weiterleiten der Anforderung zum OS vom OS gesteuert, das als Überwacher wirkt. Das OS stellt die benötigten Ressourcen für die angeforderte Aufgabe ein, überträgt die Ausführung an die Behandlungsroutine der Anforderung, sendet die Rückkehrdaten zurück zum OS, setzt (falls erforderlich) die Ressourcenzuordnung zurück und kehrt in den vorherigen oder in einen beliebigen anderen Zustand zurück. Zusätzlich beginnt das OS bei jeder empfangenen Aufgabe mit der Bereitstellung einer Liste über alle anhängigen und aktiven Aufgaben und deren Ressourcenzuordnung.
  • Aus der US 2007/0198759 A1 ist eine zentrale Recheneinheit und ein Systemcontroller sowie ein Speicher mit Vektoradressen für Interrupts bekannt. Hier wird ein Risk-Prozessor verwendet, der einen Programmcode ausführt, um eine Vorbehandlung einer eintreffenden Interrupt-Anforderung auszuführen. Diese Vorbehandlung soll den Hauptprozessor entlasten. Insgesamt wird das Systemverhalten jedoch nicht ausreichend effizient eingerichtet. Vielmehr handelt es sich hierbei um traditionelles Zwei-Controllersystem, wobei ein Controller für die Interrupt-Steuerung bzw. Interrupt-Vorbehandlung eingesetzt wird und der andere die weitere Programmverarbeitung durchführt.
  • Aus dem Tricore Users Manual, V1.3.5, February 2005, S. 6-1–6-16, http://www.4.informatik.uni-rlangen.de/Lehre/SS08/V_EZS2/Doc/pdfs/hardware/Infineon/TC1_um_Vol1_CoreArchitecture_v135b.pfd ist ferner bekannt, dass unterschiedliche Systemkonfigurationen bzw. Interruptvektortabellen einstellbar sind.
  • Aus der EP 0 685 798 B1 ist ein Destination CPU Register als ein einem Interrupt zugeordneten Interrupt-Konfigurationsregister für die ID einer CPU in einem Multiprozessor bekannt, der einen Interrupt ausführen soll. Weiter ist aus diesem Dokument ein Feld EOI bekannt, dass beim Ausführen des Interrupts einen EOI Latency Timer aktiviert. Durch ein RMI Flag in einem Interrupt-Konfigurationsregister wird ein Interrupt nicht im Protected Mode der CPU sondern im Real Mode ausgeführt. Eine MMU wird dabei in einer Interpretation deaktiviert. Diese Konfiguration des Systems wird beim Ausführen des Interrupts unmittelbar und unterbrechungsfrei ausgeführt. Auch in diesem Dokument geht es jedoch lediglich um das Umschalten der Verhaltensweise einer CPU, wie sie bereits von den X86-Prozessoren bekannt ist.
  • Aus der US 6,665,802 A ist eine in Hardware ausgebildete Zustandsmaschine bekannt, die auf einen Interrupt hin über ein Buspowermanagement Kommandos an eine Peripherie sendet. Die spezifischen Kommandos an die Peripheriegeräte können individuell durch ein Betriebssystem in Registern der Zustandsmaschine vorkonfiguriert werden, sodass im Falle eines Interrupts eine Systemkonfiguration direkt und unterbrechungsfrei eingestellt wird.
  • Aus der US 5,758,169 A ist zu entnehmen, dass ein Registerinhalt oder ein Teil des Registerinhalts gesperrt werden kann, um den Registerinhalt oder den Teil davon vor einer Änderung zu schützen.
  • Aus der US 5,774,734 ist eine integrierte CPU mit einem geschalteten Spannungsregler bekannt, der einen Read-Only-Speicher aufweist, in dem Referenzkoeffizienten zur Steuerung enthalten sind. Diese können dazu genutzt werden, beim Auftreten eines Interrupts auf eine bevorstehende höhere Leistungsaufnahme anzupassen.
  • Insgesamt sind die bekannten Lösungen jedoch entweder noch zu aufwändig und benötigen zu viel Leistung und Zeit für die Konfiguration der Systeme oder sie sind nicht flexibel, leistungsfähig und sicher genug.
  • KURZZUSAMMENFASSUNG
  • Eine Aufgabe der Erfindung besteht darin, ein eingebettetes Mikrocontrollersystem bereitzustellen, das so konfiguriert sein kann, dass es eine Aufgabenanforderung von Hardware oder Software mit geringerem Mehraufwand, d. h. mit geringerem Leistungsverbrauch und innerhalb von weniger Zeit als herkömmliche auf OS basierende Systeme behandelt.
  • Die Aufgabe wird durch die Gegenstände der Ansprüche 1 und 5 gelöst.
  • Gemäß wichtigen Aspekten der Erfindung ist ein eingebettetes Mikrocontrollersystem vorgesehen, das eine zentrale Recheneinheit und einen Systemcontroller zum Empfangen und Behandeln von Interrupts aufweist. Das eingebettete Mikrocontrollersystem weist auch ein Register mit Speicherstellen auf, die den Interrupts zugeordnete Sätze vorgegebener Systemdaten für unterschiedliche Betriebsbedingungen des Systems enthalten. Das Register ist so gekoppelt, dass es unter Verwendung des Registerinhalts Systemkonfigurationen einstellt. Die Systemdaten im Register werden definiert und gespeichert, bevor ein den Systemdaten im Register zugeordnetes Interrupt empfangen wird. Der Systemcontroller ist an das Register gekoppelt, um ein Auswahlsignal zum Register zu senden und eine vorgegebene Speicherstelle des Registers auszuwählen und zu aktivieren, die dem empfangenen Interrupt zugeordnet ist. Dadurch wird die entsprechende Systemkonfiguration mit den vorgegebenen Systemdaten im Register eingestellt. Der vorgegebene Registerinhalt ist so konfiguriert, dass jeder weitere Eingriff eines Betriebssystems des eingebetteten Mikrocontrollersystems zum Einstellen der Betriebsbedingungen vermieden wird, die herkömmlicherweise durch das Ausführen von Softwareroutinen des Betriebssystems nach dem Empfangen eines entsprechenden Interrupt eingestellt werden.
  • Das eingebettete Mikrocontrollersystem gemäß diesen Aspekten der Erfindung weist mindestens ein zusätzliches Register auf, das spezifische Systemdaten enthält. Das Register kann vorteilhafterweise ein dediziertes Halbleiter-Hardwareregister sein. Die Systemdaten im Register können durch frühes Aushandeln zwischen dem OS und einer Anwendung oder einem Treiber bestimmt werden. Die Ergebnisse des Aushandelns ermöglichen es beispielsweise einer Hardware, Software oder einem Treiber, Anforderungen ohne Eingreifen des OS direkt zu behandeln. Eine Anforderung wird gewöhnlich von einem Hardware- oder Software-Interrupt oder von einer Ausnahmebedingung ausgelöst. Das Interrupt aktiviert jedoch nicht nur einen Mikrocontroller (MCU-Kernsystem), der die Anforderung ausführen oder behandeln soll. Gemäß Aspekten der Erfindung gibt das Interrupt, sobald es empfangen wurde, auch ein Register oder insbesondere einen Satz von Registern frei. In Reaktion auf das Interrupt werden die Betriebsbedingungen und das Verhalten des Systems von den systembedingenden Daten, die in den Registern gespeichert sind, eingestellt und gesteuert, wenn ein Teil oder die komplette Steuerung schließlich zur Software und Hardware oder Hardware-Software-Kombination, die die Aufgabe behandelt, übergegangen ist, d. h. nachdem das System die neuen Systembedingungen oder die neue Systeminstallation angenommen hat. Das erfindungsgemäße Register unterscheidet sich von einem herkömmlichen Zustandsregister eines eingebetteten Mikrocontrollersystems dadurch, dass der Registerinhalt ein weiteres OS-Aushandeln vermeidet. Dies ist möglich, da die Systemdaten im Register die Entität oder Instanz (z. B. eine CPU oder einen beliebigen anderen Master), die die Ausführung übernimmt, identifiziert und die Steuerung an die neue Entität oder Instanz übergibt. Die in den Systemdaten des Registers definierte Systemkonfiguration bezieht sich auf die identifizierte Entität oder Instanz. Das Definieren der neuen Entität oder Instanz im Register senkt den Leistungsverbrauch (direktes Umschalten ohne Aushandeln) und erhöht die Sicherheit des Systems. Konflikte bei der Verwendung gemeinsamer Ressourcen werden ebenfalls vermieden. Darüber hinaus kann die Systemfrequenz verringert werden, da die Aufgaben im gleichen Zeitrahmen bei einer niedrigeren Frequenz ausgeführt werden können.
  • Der Systemcontroller kann ein Interrupt-Controller sein, der Hardware- oder Softwareanforderungen empfangen kann. Der Systemcontroller kann vorteilhaft eine integrierte Halbleiterschaltung sein. Der Systemcontroller kann das Register mit Speicherstellen aufweisen, die Sätze vorgegebener Systemdaten für unterschiedliche Betriebsbedingungen des Systems enthalten, die einzelnen Interrupts oder Anforderungen zugeordnet sind. Das Register kann so konfiguriert sein, dass Systemkonfigurationen unter Verwendung des Registerinhalts eingestellt werden. Die Systemdaten im Register werden definiert und gespeichert, bevor ein den Systemdaten im Register zugeordnetes Interrupt empfangen wird. Der Systemcontroller, der das Register enthält, kann ein Auswahlsignal zum Register senden, um eine vorgegebene Speicherstelle des Registers, die dem empfangenen Interrupt zugeordnet ist, auszuwählen und zu aktivieren. Dadurch wird die entsprechende Systemkonfiguration mit den vorgegebenen Systemdaten im Register eingestellt. Der vorgegebene Registerinhalt ist so konfiguriert, dass jeder weitere Eingriff eines Betriebssystems des eingebetteten Mikrocontrollersystems zum Einstellen der Betriebsbedingungen vermieden wird, die gewöhnlich durch die Ausführung von Softwareroutinen des Betriebssystems nach dem Empfangen eines entsprechenden Interrupt eingestellt werden.
  • Die Hardwareanforderungen können Interrupt-Anforderungen oder Interrupt-Anforderungen mit Bedingungen oder Parametern sein. Der Interrupt-Controller kann auch Softwareanforderungen in Form von Software-Interrupts oder TRAPs oder in Form von Software-Interrupts oder TRAPs mit Bedingungen oder Parametern empfangen. Der Systemcontroller kann zur Behandlung unterschiedlicher Arten von Ausnahmen ausgelegt sein. Ausnahmen können in Abhängigkeit von der Art, wie sie gemeldet werden, und davon, ob die Instruktion, die die Ausnahme verursacht hat, ohne Verlust der Programm- oder Aufgabenkontinuität erneut gestartet werden kann, in Fehler, Traps oder Abbrüchen klassifiziert werden. Ein Fehler ist eine Ausnahme, die im Allgemeinen korrigiert werden kann und den Neustart des Programms ohne Kontinuitätsverlust ermöglicht, sobald sie korrigiert wurde. Wenn ein Fehler gemeldet wird, führt der Prozessor den Maschinenzustand auf den Zustand vor Beginn der Ausführung der fehlerauslösenden Instruktion zurück. Die Rückkehradresse für die Fehler-Behandlungsroutine verweist auf die fehlerauslösende Instruktion statt auf die Instruktion, die auf die fehlerauslösende Instruktion folgt. Ein Trap ist eine Ausnahme, die unmittelbar nach der Ausführung der trapauslösenden Instruktion gemeldet wird. Traps erlauben das Fortsetzen der Ausführung eines Programms oder einer Aufgabe ohne Verlust der Programmkontinuität. Die Rückkehradresse für die Trap-Behandlungsroutine verweist auf die Instruktion, die nach der trapauslösenden Instruktion auszuführen ist. Ein Abbruch ist eine Ausnahme, die nicht immer die genaue Stelle der die Ausnahme verursachenden Instruktion meldet und keinen Neustart des Programms oder der Aufgabe, das/die die Ausnahmesituation verursacht hat, erlaubt. Abbrüche werden verwendet, um schwerwiegende Fehler zu melden, wie etwa Hardwarefehler oder inkonsistente oder unzulässige Werte in Systemtabellen.
  • Es kann ein einziges Register vorhanden sein, das allen Interrupt-Ressourcen zugeordnet ist, oder ein spezifisches Register für jede Interrupt-Ressource oder sogar für eine Gruppe von Ressourcen.
  • Das Register kann gesperrt oder teilweise gesperrt sein. Die Sperrinformation kann den Inhalt des Registers vor einer Änderung durch eine beliebige Ressource schützen. Die Sperrinformation kann es einer Ressource oder mehreren Ressourcen oder Gruppen von Ressourcen gestatten, die Registerdaten zu modifizieren, schützt sie jedoch vor Änderungen durch jede andere Ressourcen.
  • Das gesamte Register für eine spezifische Anforderung (Interrupt) kann gesperrt oder freigegeben sein. Das Register kann mehrere Kontrollfelder aufweisen. Es ist möglich, lediglich ein Kontrollfeld oder mehrere Kontrollfelder des Registers zu verwenden. Das Register kann ein Datenfeld aufweisen, das die Funktion einer Kennung hat, um die Ausführung auf eine dedizierte Hardware oder Software zu übertragen. Das Register kann auch ein Feld für Daten aufweisen, das eine Subkennung darstellt.
  • Das Register kann auch ein Feld enthalten, das definiert, welcher Stackzeiger verwendet wird. Das Register kann ein Datenfeld zur Steuerung der Zugriffsrechte auf die Ressourcen des Systems aufweisen. Es kann beispielsweise definiert sein, ob ein Emulationstool Zugriff auf Ressourcen der aktiven Entität haben kann oder nicht. Die aktive Entität ist die Einheit oder das System (beispielsweise ein eingebettetes Mikrocontroller-/CPU-System), die/das den aktuellen Vorgang ausführt. Es können unterschiedliche Modi, wie etwa ein Kernmodus, ein Überwachungsmodus oder ein Benutzermodus definiert sein. Das Kopieren des Registerinhalts kann über eine spezifische Einstellung im Register freigegeben oder blockiert werden. Insbesondere kann das Kopieren von Registerinhalt von einem Register in ein anderes gesteuert werden. Ferner kann über ein Registerfeld ein Sicherheitsmodus mit Bedingungen für den sicheren Betrieb eingestellt werden. Der Zugriff über vorgegebene Adressräume (Schutz der Speicherverwaltungseinheit (MMU) ist aktiviert oder deaktiviert) kann über ein spezifisches Registerfeld eingestellt werden, oder es kann ein geschützter Adressraum direkt definiert werden. Eine Ressource kann Hardware oder Software sein, d. h. eine einzelne CPU, eine virtuelle CPU oder mehrere CPUs oder virtuelle CPUs, verschiedene Anwendungen, Treiber usw. Registerfelder im Register können optional sein.
  • Das einzige Feld, das zwingend erforderlich ist, um die Ausführung zu steuern und zumindest auf dedizierte Hardware, Software oder Hardware-Software-Kombination zu übertragen, ist das Kennungsfeld. Die Kennung kann definieren, welche Hardware (eine erste oder zweite CPU oder ein erster oder zweiter DMA, verschiedene virtuelle CPUs usw.) die Ausführung des Programms übernimmt. Eine Subkennung kann virtuell sein oder ein bestimmter DMA-Kanal in einem Multi-DMA-System sein. Eine Entität kann über das Kennungsfeld im Register identifiziert werden, und die Entität kann eine spezifische Hardware, eine Software oder eine Hardware-Software-Kombination sein.
  • Das Register kann ein Feld zur Bestimmung eines Sicherheitsmodus haben. Der Sicherheitsmodus kann dazu verwendet werden, Zugriffsfähigkeiten, die Verschlüsselung oder Entschlüsselung und weitere Schutzmerkmale zu beschränken.
  • Das Register kann ein oder mehrere Felder von Daten zur Steuerung der Ressourcen des Systems haben. Eine Ressource kann die Zeit sein, in der eine Entität (z. B. ein System-/Bus-Master wie eine CPU) Zugriff auf das eingebettete System hat. Die Ausführungszeit von zwei (virtuellen) CPUs ist beispielsweise nach dem Prozentanteil der Taktzyklen aufgeteilt, in denen jede einzelne (virtuelle) CPU Zugriff auf die Systemressourcen, den Code- und Datenspeicher, die Systemkomponenten und andere periphere Vorrichtungen hat. Eine Entität oder eine Ressource kann auch ein DMA, ein DTC usw. sein. Das Register kann ein Datenfeld zur Steuerung der Ressourcen des Systems während der inaktiven Zeit von Teilen des Systems haben. Das Register kann auch ein Datenfeld zur Steuerung der Ressourcen des Systems während Interrupt-Situationen haben. Das Register kann ein Datenfeld zur Steuerung der Behandlung der Ressourcen haben und die Verantwortung auf ein anderes Teil des Systems übertragen. Die Steuerungsfähigkeiten können beispielsweise auf ein Takterzeugungsmodul übertragen werden. Das Takterzeugungsmodul kann dazu berechtigt werden, die gesamte Takt- oder Systemzeit auf eine CPU zu schalten, während die andere sich in einem Modus mit niedrigerem Leistungsverbrauch befindet. Wenn nicht die gesamte Takt- und Systemzeit auf eine CPU geschaltet ist, kann es auch die Takt- und Systemzeit um einen bestimmten Betrag erhöhen. Über ein Feld des Registers ist es möglich zu konfigurieren, welche Teile des Systems eingeschaltet oder ausgeschaltet werden können und/oder wie der Systemtakt auf verschiedene Ressourcen und/oder Aufgaben verteilt wird. Ein anderes Feld des Registers kann dazu dienen, eine Frequenz eines Takts des Systems oder einen Versorgungsspannungspegel eines spezifischen Versorgungsspannungsbereichs des Systems zu konfigurieren. Ferner können Felder des Registers dazu dienen, sichere Betriebssituationen auszuwählen, wie etwa Überwachungsbetrieb, ablaufende Zeit, Taktbereiche, Kontrolle und Überwachung der Versorgungsspannung, eine Abfolge sich ändernder Betriebsbedingungen wie etwa dynamische oder adaptive Spannungsskalierung (dies kann bei Logikblöcken im Vergleich zu Speicherblöcken anders sein), Energiesparbedingungen mit verringerter Betriebsfrequenz, Sequentialisierung und Eintreten in oder Verlassen des aktiven (Vollbetriebs-)Modus.
  • Eine im Register gespeicherte Kennung kann auf eine Entität hinweisen, die hinsichtlich der Anforderung, die von dem empfangenen Interrupt ausgelöst wurde, eine Operation ausführen sollte. Wenn die „aufgerufene” oder „Ziel-„ Entität sich von der aktuellen Entität unterscheidet, ist eine Änderung der Entitäten erforderlich. Die Kennung der Entität, die gegenwärtig aktiv ist, wenn das Interrupt eingeht, kann als gegenwärtige Kennung betrachtet werden, und die neue Entität kann als Zielkennung bezeichnet werden. Um eine Entitätsübergabe zu behandeln, kann die Vorrichtung gemäß einer Ausführungsform der Erfindung eine Speicherstelle aufweisen, in der aktuelle Kennungen, vorhergehende Kennungen und Zielkennungen (Entitäten) gespeichert sind. Dies kann vorteilhafterweise ein Stack- oder Zustandsregister sein, das in der Zielentität vorgesehen ist. Die Kennung (d. h. die Daten, die die Kennung darstellen) können dann auf den Stack geschoben werden, wenn die Änderung der Entitäten erfolgt. Ein solcher Stack oder eine solche Speicherstelle für Kennungen kann vorteilhaft in jeder Entität vorgesehen sein, so dass jede Entität Informationen über die vorherige Entität oder eine Zielentität besitzt. Es kann ein unterbrechungsfreier Block vorgesehen sein, der als Ablaufsteuerung zur Bearbeitung einer Interrupt-Anforderung bezeichnet werden kann. Dieser Block kann aktuelle, vorherige und/oder Zielentitäten auf einem Stack speichern.
  • Die vorliegende Erfindung sieht auch ein Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems vor. Ein Satz vorgegebener Systemdaten für eine Betriebsbedingung des Systems wird einem Interrupt zugeordnet. Der Satz vorgegebener Systemdaten wird in einem Register gespeichert, bevor das Interrupt empfangen wird. Wenn das Interrupt empfangen wird, wird ein Auswahlsignal zum Register gesendet, und eine vorgegebene Speicherstelle des Registers, die den Satz vorgegebener Systemdaten enthält, wird ausgewählt und aktiviert, und die entsprechende Systemkonfiguration wird unter Verwendung der vorgegebenen Systemdaten im Register eingestellt. Der Inhalt bezüglich der spezifischen Methoden zum Konfigurieren des Systems kann die oben erläuterten Merkmale haben.
  • Bei einer anderen Ausführungsform kann ein eingebettetes Mikrocontrollersystem eine zentrale Recheneinheit, einen Systemcontroller zum Empfangen und Behandeln eines Interrupt, ein Register mit Speicherstellen, die wenigstens eine aktuelle Entitätskennung enthalten, die den aktuellen Master angibt, und eine an das Register gekoppelte Ressource aufweisen. Die Ressource kann eine Entitätskennung einer Entität speichern, die die Ressource nutzen kann, und die Ressource kann eine Logikschaltung umfassen, um die gegenwärtige Entitätskennung von dem Register mit der gespeicherten Entitätskennung zu vergleichen und zu entscheiden, ob die gegenwärtige Entität die Ressourcen nutzen kann oder nicht. Bei dieser Ausführungsform enthält das zuvor beschriebene Register zumindest die gegenwärtige Entität (oder auch die aufrufende und die Zielentität, wie oben beschrieben), und die Entscheidung bezüglich einer Ressource, die von einer Entität genutzt werden soll, wird in der Ressource getroffen. Die Systemdaten, die im Register gespeichert sein können, um den Eingriff des Betriebssystems nach dem Empfangen einer Anforderung oder eines Interrupt zu vermeiden, werden dann in den Ressourcen verteilt. Jede Ressource muss ein Register oder eine Speicherstelle aufweisen, um mindestens eine Entitätskennung (d. h. beispielsweise einen entsprechenden Code usw.) zu speichern. Eine Ressource kann auch mehrere Entitätskennungen speichern. Die Ressource kann ein USB-Anschluss, ein ADC, ein UART oder eine CPU sein. Die Ressource kann dann so ausgelegt sein, dass es die benötigten Informationen und eine Logikschaltung aufweist, die den Vergleich durchführt und die Entscheidung trifft.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Aspekte der Erfindung ergeben sich aus der nachfolgenden Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung anhand der beigefügten Zeichnungen. Darin zeigen
  • 1 ein vereinfachtes Schaubild eines herkömmlichen eingebetteten Mikrocontrollersystems,
  • 2 ein vereinfachtes Schaubild einer Ausführungsform eines eingebetteten Mikrocontrollersystems gemäß Aspekten der Erfindung,
  • 3 ein vereinfachtes Schaubild einer Ausführungsform eines Interrupt-Controllers und eines Steuerschaltmodus-Registers gemäß einer Ausführungsform der Erfindung,
  • 4 ein vereinfachtes Schaubild einer Ausführungsform eines Steuerschaltmodus-Registers gemäß einer Ausführungsform der Erfindung,
  • 5 ein vereinfachtes Zustandsdiagramm einer Ausführungsform der Erfindung,
  • 6 ein vereinfachtes Zustandsdiagramm einer Ausführungsform der Erfindung,
  • 7 ein vereinfachtes Zustandsdiagramm einer Ausführungsform der Erfindung,
  • 8 Register bei einer Ausführungsform der Erfindung,
  • 9 Register bei einer Ausführungsform der Erfindung, und
  • 10 Register bei einer Ausführungsform der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • 1 zeigt ein vereinfachtes Schaubild eines eingebetteten Mikrocontrollersystems 10 gemäß dem Stand der Technik. Die Systemsteuerung erfolgt über einen Interrupt-Controller 1, der Interrupts oder Aufwecksignale von anderen Systeminstanzen empfangen kann, die in Hardware oder Software oder Kombinationen aus Hardware und Software implementiert sind. Der Interrupt-Controller 1 ist mit einem Leistungsversorgungsmanager 2, einem Taktsystem 3, peripheren Modulen (analog oder digital) 4 und einem Kernsystem 5 verbunden, das eine CPU 6 mit virtuellen CPUs vCPU0, vCPU1 und Speicherbanken 7, 8 aufweist. Der Interrupt-Controller 1 kann variable Interrupt-Prioritäten, Verschachtelungsfähigkeit oder andere Merkmale besitzen. Nur sehr einfache Anwendungen laufen bei eingebetteten Steuerungsanwendungen weiterhin unter derselben Umgebung ohne Aufgabentrennung, doch bei den meisten Anwendungen werden Betriebssysteme (OS) verwendet. Das OS ist üblicherweise im Kernsystem 5 aus 1 implementiert, vCPU0 erhält beispielsweise die Interrupts, und das OS wird in vCPU0 ausgeführt. Das OS behandelt alle Schaltbedingungen zwischen den verschiedenen Softwareteilen gemäß der vorliegenden Hardware und/oder Software. Das OS empfängt die Interrupt-Anforderung, bereitet deren Ausführung vor, leitet den Vorgang an die Interrupt-Behandlungsroutine weiter, erhält die Ausführungsbefähigung zurück (es kann sich um Daten und Zustandsinformationen handeln) und vollendet die Interruptanforderungssituation. All dies benötigt Zeit und verbraucht Leistung.
  • 2 zeigt ein vereinfachtes Schaubild einer Ausführungsform, die gemäß Aspekten der Erfindung implementiert ist. Die gezeigte Ausführungsform kann vorteilhaft als integrierte Halbleiterschaltung in Hardware implementiert sein. Jede der in 2 gezeigten Stufen kann eine getrennte Hardwarestufe sein (integrierte Halbleiterschaltung), die zumindest das gezeigte Eingangs- und Ausgangssignal empfängt und sendet. Das eingebettete Mikrocontrollersystem 10 weist eine Systemsteuerstufe 1 und ein Kernsystem 5 mit CPU 6, virtuellen CPUs vCPU0, vCPU1 und Speicherbanken 7 und 8 auf. Lediglich als Beispiel für einen möglichen Systemaufbau sind eine Leistungsversorgungsverwaltungsstufe 2, ein Taktsystem 3 und periphere Module 4 vorhanden. Es gibt ferner Register mit gesteuertem Schaltmodus 11 (CSM_Reg). Diese CSM-Register 11 können mit dem Auswahlsignal SELX von der Systemsteuerstufe 1 direkt adressiert und ausgewählt werden. Die Systemsteuerstufe 1 kann ein Interrupt-Controller sein. Die Einstellungen im CSM-Register 11 werden entweder über das Kernsystem 5 in einem separaten Aushandlungsschritt vor dem Empfangen eines Interrupt oder über einen externen Eingang, der durch den Pin EXT_IN angegeben ist, geschrieben. Das vorgeschlagene „Steuerschaltmodus”-Konzept vermeidet einen Mehraufwand bei Zeit und Leistung zum Definieren der Bedingungen für eine spezifische Hardware- oder Softwareanforderung und ermöglicht es, unmittelbar auf eine Hardware- oder Softwareanforderung (d. h. ein Interrupt) zu reagieren. Die Systemkonfiguration für eine spezifische Anforderung (die beispielsweise durch ein Interrupt-Signal signalisiert wird) wird vorgegeben und unmittelbar nach der Anforderung zwischen der Software mit höherer Priorität (üblicherweise das OS oder RTOS) und der Anwendung ausgehandelt, die eine Reaktion fordert. Nachdem die Systemdaten vorgegeben wurden, werden die Daten im registrierten CSM_Reg 11 gespeichert. Das System läuft gewöhnlich unter einer voreingestellten Betriebsbedingungsumgebung. Dies kann beispielsweise ein MSP430-Kern und ein entsprechender MSP430-ISA-Code sein. Eine Änderung der Ausführungssequenz oder der Konfiguration der Ressourcen des Systems erfolgt durch ein Interrupt, das ein Software-Interrupt oder Hardware-Interrupt sein kann, das über Pins INTERRUPT/AUFWECKEN oder von Instanzen LEISTUNGSVERSORGUNG 2, TAKTSYSTEM 3, PERIPHERE MODULE 4 oder von dem KERNSYSTEM 5 selbst empfangen wird. Ein Software-Interrupt (SWI) kann zum Setzen eines Interrupt-Flags verwendet werden. Eine weitere Art von Interrupt, die auftreten kann, ist ein TRAP, der eine Instruktion ist, in der normalerweise Informationen zu Parameter- oder Instruktionsebenen vorhanden sind. Die zusätzlichen Informationen können in einem Feld im Befehlswort vorhanden oder in verknüpften aufeinanderfolgenden Wörtern (Mehrwortbefehl) vorgesehen sein. Es ist eine wichtige Bedingung, dass jede Verletzung oder jeder Verstoß gegen die Systemintegrität verhindert wird. Somit dürfen jegliche Parameter- oder Instruktionsübergaben und Auslöser nicht unterbrochen werden. Nachdem das Interrupt (SWI oder TRAP) empfangen wurde, muss der gesamte Vorgang vollendet werden, bevor die Steuerung auf eine andere Instanz, beispielsweise eine andere Interrupt-Behandlungsroutine, übertragen werden kann. In Reaktion auf das Signal SELX liefert ein ausgewähltes CSM-Register (CSM_REG kann eine Bank individueller CSM-Register enthalten, die jeweils eine spezifische Konfiguration haben) seine gespeicherten Systemdaten an den Ausgang OUT (kann eine gesperrte Ausgangsstufe sein), und das System wird dementsprechend konfiguriert, d. h. die Stufen 2, 3 und 4 (Spannungsversorgung, Taktsignal, Taktfrequenz usw.) können in Übereinstimmung mit der Anforderung hinter dem Interrupt eingestellt werden.
  • Bei einer alternativen Ausführungsform können die CSM-Register 11 Teil der Systemsteuerstufe 1 sein (d. h. die Systemsteuerstufe oder der Interrupt-Controller kann den CSM-Register 11 aufweisen). Somit stellt die vorliegende Erfindung auch einen Systemcontroller (insbesondere als integrierte Halbleiterschaltung) mit einem CSM-Register gemäß Aspekten der Erfindung bereit.
  • 3 zeigt ein vereinfachtes Schaubild eines Interrupt-Controllers (Systemsteuerung 1) und eines Steuerschaltmodus-Registers (CSM_REG 11 aus 2) gemäß Aspekten der Erfindung. Bei der in 3 gezeigten Ausführungsform ist das Steuerschaltmodus-Register CSM_Register 11 im Interrupt-Controller 1 integriert oder mit diesem verbunden. Die Systemeinstellungen sind zu Sätzen von Systemdaten zusammengefasst (die im jeweiligen CSM-Register enthalten sind) und werden als Agenten bezeichnet. Es gibt Interrupt-Agenten Agent0.ISPH bis Agentn.ISPH (ISPH = engl. Interrupt Selecting Priority Handling – interrupt-auswählende Prioritätsbehandlung). Üblicherweise wird ein Agent (es ist jedoch mehr als ein Agent möglich) ausgelöst, wobei jedoch nur ein Interrupt-Agent angenommen wird und auf ein empfangenes Interrupt reagiert. Jeder Agent Agent0.ISPH bis Agentn.ISPH wird einem spezifischen Satz von Systemdaten zugeordnet, der im CSM-Register 12 gespeichert ist. Dieser Satz von Systemdaten wird als Agent0.REG_x bis Agentn.Reg_x bezeichnet. Jeder Satz von Systemdaten Agent0.Reg_x bis Agentn.Reg_x weist spezifische Felder auf, beispielsweise Kennung/Entität, Subkennung, Stackzeiger, Sperrsteuerung, Versorgung an/aus usw. Jeder Interrupt-Agent Agent0.ISPH bis Agentn.ISPH besitzt sein eigenes CSM-Register 12 mit zugeordneten Steuerbits in der Registerbank CSM_Register 11. Die ausgewählten Steuerbits des ausgewählten CSM_Registers können für die Verwendung gesperrt sein, während das Register eines Agenten (Agentx.ISPH oder Agentx.Reg_x) aktualisiert wird. Bei einigen Modi kann lediglich die aktive Entität (d. h. das System, das momentan den aktuellen Vorgang bearbeitet) in der Lage sein, die Daten zu aktualisieren. Wenn die Systemdaten am Ausgang gesperrt sind, bleibt der gesperrte Ausgang stabil, bis eine neue Steuerungssituation in den Registern des Agenten hergestellt ist (beispielsweise ein neues Interrupt empfangen wird). Der gesperrte Ausgang ist optional. Es gibt mindestens zwei Situationen, in denen der gesperrte Ausgang erforderlich sein kann: das Register zum Laden von Steuerinformationen kann nur durch sequentiellen Zugriff aktualisiert werden, was üblicherweise bei der Aktualisierung des Registers mit Software der Fall ist, oder die Steuerinformationen verändern die gegenwärtigen Betriebsbedingungen derart, dass die Aktualisierungssequenz durch die Software nicht ordnungsgemäß beendet werden kann.
  • Der Interrupt-Controller 1 befasst sich mit allen empfangenen Interrupt-Ereignissen und überprüft die Prioritätssituation. Bei einer vorteilhaften Ausführungsform sind die Interrupt-Agenten Agent0.ISPH bis Agentn.ISPH alle nach dem gleichen Grundprinzip konfiguriert und implementiert oder können sogar hinsichtlich der Felder des CSM-Registers 11 identisch sein. Ein Interrupt-Agent (Agentx.ISPH) stellt die gesamte Schaltung des Systemcontrollers 1 dar, der aktiv ist, wenn ein Interrupt-Ereignis verarbeitet werden muss oder aktiv ist. Bei einer alternativen Ausführungsform kann das Register 11 im Systemcontroller 1 enthalten sein.
  • 4 zeigt zwei Beispiele für ein CSM_Register 12 der Bank der CSM-Register 11 aus 3. Agent0 kann den Registerstellen Agent0.Reg_0, Agent0.Reg_1, Agent0.Reg_2, Agent0.Reg_3, Agent0.Reg_4 bis Agent0.Reg_n zugeordnet sein. Ein beliebiger weiterer Agent, beispielsweise Agentn, kann Registerstellen Agentn.Reg_0, Agentn.Reg_1, Agentn.Reg_2, Agentn.Reg_3, Agentn.Reg_4 bis Agentn.Reg_n zugeordnet sein. Die verschiedenen Felder jedes CSM_Registers für einen spezifischen Agenten können nach dem gleichen Prinzip organisiert sein. Die Felder können eine Kennung für eine Entität (d. h. eine CPU, ein eingebettetes Mikrocontrollersystem usw.), eine Unterkennung und einen Stackzeiger enthalten. Es gibt Felder für einen Versorgungsspannungszustand (kann ein oder aus sein), beispielsweise für einen Flashspeicher FLASH0 oder FLASH1 während eines Energiesparmodus 3 LPM3. Es kann ein Feld für einen Verriegelungszustand oder für allgemeine Konfigurationen und Taktfrequenzen von Versorgungsspannungsbereichen (VCC, F(System)) vorgesehen sein. Der Zugriff auf die Steuerbits im CSM-Register kann über Software erfolgen. Die Zugriffsrechte für unterschiedliche Entitäten oder Subentitäten können individuell zugewiesen werden. Alle oder einige Felder können bis zur nächsten Boot-Situation gesperrt sein, wodurch Softwareunterbrechungen, Angriffe usw. vermieden werden.
  • 5 zeigt ein vereinfachtes Zustandsdiagramm eines sanften Umschaltens zwischen Entitäten unter Verwendung der FSM (engl. Finite State Machine – Maschine endlicher Zustände) zur unterbrechungsfreien Interrupt-Behandlung. Ein grundlegender Vorteil liegt im unterbrechungsfreien Betrieb in den Schritten S2, S3 und S4, was bedeutet, dass innerhalb der gestrichelten Linie die Daten nicht verfälscht und der Vorgang nicht unterbrochen werden können. Mit anderen Worten vollendet das System die Konfigurationsänderung bevor die Behandlung der Anforderung gestartet oder die Steuerung der nächsten Behandlung auf eine andere Instanz übertragen wird. Zu Beginn kann sich das System in Schritt 1 in einem beliebigen Betriebsmodus befinden. Nach dem Empfangen eines Interrupt (SIR_in) in Schritt 2 werden Rückkehrdaten, beispielsweise der Programmzähler und das Zustandsregister, gespeichert. Nach einer gewissen Anzahl von Taktzyklen (x-Mal Systemtakt) wird Schritt S3 erreicht, d. h. dass die neuen Betriebsbedingungen durch die (Bank der) CSM-Register 11 freigegeben werden, die in 2 gezeigt sind. SIR ist eine Anforderung zur Interrupt-Behandlung. In Schritt S4 werden der Interrupt-Vektor oder andere Instruktionen mit einem neuen Systemtakt abgerufen, es werden Informationen vom Stack abgerufen, die Anforderung zur Behandlung des Interrupt wird verlassen (SIR_out), und das System kehrt in den aktiven Modus zur Interrupt-Behandlungsroutine zurück.
  • Die Rückkehrdaten können vorteilhaft auf einem Stack gespeichert werden, der aktiv ist, wenn die Anforderung zur Interrupt-Behandlung in Schritt S2 begonnen wird (SIR_in). Die neuen Bedingungen werden nur freigegeben, wenn die Rückkehrdaten gespeichert sind oder der Speichermechanismus zumindest irreversibel ist. Das Abrufen des Interrupt-Vektors in Schritt S4 wird üblicherweise unter den neuen Betriebsbedingungen ausgeführt. Der Abruf des Interrupt-Vektors kann nur bei bestimmen Ausnahmen später ausgeführt werden, aber gewöhnlich vor dem Abrufen der ersten Instruktion der aufgerufenen Behandlungsroutine. Die Freigabe der Betriebsbedingungen, die für die Programmfortführung ausgewählt werden, erfordert keine zusätzlichen Taktzyklen. Es können alle zusätzlichen Taktzyklen für spezifische Architekturen oder Funktionen oder jede weitere Verzögerung (beispielsweise zur Stabilisierung der Betriebsbedingungen vor ihrer Nutzung) vorgesehen werden. Sie können auch für eine individuelle Situation oder eine spezifische Funktion beim Schalten zu einer anderen Betriebsbedingung vorgesehen werden.
  • 6 zeigt ein vereinfachtes Zustandsdiagramm einer Erweiterung von 5. Zusätzlich zu 5 umfasst 6 einen Wartezustand in Schritt S3 und eine spezifische Entitätsbehandlung in Schritt S4. Mit Bezug auf 5 umfasst die in 6 angegebene Prozedur einen Wartezustand in Schritt S3 nach der Freigabe der neuen Betriebsbedingungen und eine Möglichkeit der Speicherung der aktuellen Entität in Schritt S4 beim Abrufen des Interrupt-Vektors oder der Instruktion. Mit der in 6 veranschaulichten Konfiguration ist es möglich, dass Systeme mit niedrigem Leistungsverbrauch und mit ultraniedrigem Leistungsverbrauch einen Mehraufwand beim Leistungsverbrauch vermeiden. Bei einer Änderung (keine Zyklusschaltung) von vorhergehenden zu aktuellen Betriebsbedingungen ohne Eingreifen eines OS werden keine Zyklen benötigt, oder es wird dabei genau über eine Mindestdauer gewartet, die von der Wartebedingung gefordert wird. Dies ist besonders wichtig, wenn der Software-Mehraufwand einen akzeptablen Teil der Aktivität im System bildet.
  • 7 zeigt ein vereinfachtes Zustandsdiagramm, das die Rückkehr von dem Interrupt auf Grundlage der in 5 gezeigten Grundprinzipien veranschaulicht. Die Rückkehr von dem Interrupt (RETI) in Schritt S5 dient dazu, die vorhergehenden Bedingungen auf unterbrechungsfreie Weise wiederherzustellen. Durch die Schritte S6 und S7 werden zwei optionale Varianten bereitgestellt: entweder können die aktuellen Systembedingungen dazu verwendet werden, die vorhergehenden (Antwort-)Daten (SIR_out (optional) und Schritt S8) wiederherzustellen, oder die Systembedingungen können in Schritt S7 gemäß der vorhergehenden Entität angewendet werden (nicht wahrscheinlich), was zu Schritt S9 führt. In Schritt S9 wird die Kennung im vorhergehenden Entitätsfeld dazu verwendet, die Daten vom korrekten Stack zurückzubekommen. Eine optionale Methode weiter fortzufahren besteht darin, einen Hinweis zu erhalten, dass keine Rückkehr erforderlich ist und dass das Programm an einer anderen Stelle fortfährt, beispielsweise mit Betriebssystemdiensten.
  • Die 8, 9 und 10 zeigen Speicherstellen, beispielsweise Zustandsregister SR von zwei Entitäten (z. B. zwei unterschiedliche Master), bei einer Ausführungsform der Erfindung. Eine Entität (z. B. ein eingebettetes Mikrocontrollersystem oder eine CPU) wird durch ihre Kennung identifiziert. Die Kennung kann, wie oben erläutert, im CSM-Register gespeichert sein. Die Kennung im Register kann auf eine Entität hinweisen, die eine Operation in Bezug auf die Anforderung ausführen sollte, die vom empfangenen Interrupt ausgelöst wird. Wenn die „aufgerufene” oder „Ziel-”Entität sich von der aktuellen Entität unterscheidet, ist eine Änderung der Entitäten erforderlich. Die Kennung der Entität, die gegenwärtig aktiv ist, wenn das Interrupt empfangen wird, kann als gegenwärtige Kennung betrachtet werden, und die neue Entität kann als Zielkennung bezeichnet werden. Aus der Perspektive der Zielentität gibt es eine vorhergehende Entität und die gegenwärtige Entität.
  • Um eine Änderung der Entitäten zu behandeln, kann die Vorrichtung gemäß einer Ausführungsform der Erfindung eine Speicherstelle enthalten, an der gegenwärtige, vorhergehende und Zielkennungen (Entitäten) gespeichert sind. In 8 sind als Alternativen (a) und (b) zwei mögliche Speicherstellen oder Register zum Speichern von Entitätsinformationen gezeigt. Es kann sich um eine beliebige Speicherstelle (a), um ein beliebiges Register (z. B. einen CPU-Register), doch vorteilhafterweise um ein Zustandsregister SR (b) handeln, wo auch Zustandsinformationen gespeichert sind. Das Register enthält die gegenwärtige Entität (auch aktive Entität) und die vorhergehende Entität, d. h. das Register enthält die jeweiligen Kennungen für die Entitäten.
  • 9 zeigt, wie sich der Registerinhalt der Zustandsregister in der ersten Entität (dadurch identifiziert, das 0xA aktiv ist, wenn das Interrupt ankommt) und der zweiten Entität (dadurch identifiziert, dass 0x3 die Zielentität des Interrupt/der Anforderung ist) ändert. Bevor ein Interrupt ankommt, gibt der Registerinhalt die aktuelle Entität mit 0xA und eine vorhergehende Entität mit Vorhergehende Entität (X) an (für das vorliegende Beispiel nicht weiter identifiziert). Wenn das Interrupt ankommt, wird der Zustandsregisterinhalt der ersten Entität 0xA auf einen Stack der ersten Entität geschoben und die Kennung der ersten Entität in den Zustandsregister der zweiten Entität 0x3 kopiert. Der Zustandsregister SR der zweiten Entität 0x3 enthält dann die Kennung 0x3 der zweiten Entität (aktive Entität nach dem Interrupt), die Kennung 0xA der ersten Entität (vorhergehende Entität nach dem Interrupt) und Zustandsinformationen.
  • 10 zeigt den Zustandsregisterinhalt bei der Rückkehr von dem Interrupt (RTI). Das Zustandsregister der zweiten Entität enthält die gegenwärtige Kennung 0x3, die vorhergehende Kennung 0xA und Zustandsinformationen. Diese Informationen über die vorhergehende Kennung (0xA) werden dazu verwendet, die Zustandsregisterdaten von dem Stack der ersten Entität 0xA zu „holen”. Die Zustandsregisterinformationen auf dem Stack der ersten Entität, die nach der Rückkehr von dem Interrupt den Vorgang übernimmt, enthalten die gegenwärtige Kennung 0xA, die vorhergehende Kennung (Vorhergehende Kennung (X)) und Zustandsinformationen. Diese Informationen werden dann in eine Speicherstelle (z. B. in den Zustandsregister des Beispiels aus 10) der ersten Entität 0xA kopiert.
  • Die Entitätskennungen können gegen Softwareänderungen SCHREIB-geschützt sein. Es kann eine Ablaufsteuerung zur unterbrechungsfreien Behandlung der Interrupt-Anforderung vorgesehen sein, die die Zielentität auf dem Zustandsregister der Zielentität und die Entitätskennung der Entität, die aktiv war, d. h. die letzte aktive Entität, speichern kann. Das Speichern der Zielentität ist nützlich, da die Entität Hardware, Software oder eine spezielle Softwareaufgabe sein kann, die auf einer bestimmten Hardware läuft. Die Informationen (d. h. ein entsprechendes Signal oder entsprechende Daten), die den Teil des Systems (z. B. vCPU0) angeben, der den gegenwärtigen gültigen Master bildet, können von dem CSM-Register oder einer Sperre am Ausgang des CSM-Registers abgerufen werden. Sie können auch von einem Zustandsregister der Zielentität oder einem Zustandsregister der aufrufenden Entität abgerufen werden. Wenn die Entitätskennung von dem Zustandsregister abgerufen wird, ist jedoch der richtige Augenblick für die Änderung der Systemeigenschaften (Betriebsbedingungen) gleichzeitig mit der FSM-Sequenz erreicht. Unter normalen Bedingungen kann der Vorgang des Änderns von Betriebsbedingungen nach dem Auslösen nicht angehalten werden, wie oben beschrieben und als unterbrechungsfreie Prozedur bezeichnet.
  • Darüber hinaus kann jede Entität ihre eigene Kennung speichern. Die Kennung kann an jeder Stelle im Adressraum gespeichert werden. Die Kennung kann auch in jedem CPU-Register oder in einem spezifischen CPU-Register, wie etwa einem Zustandsregister, gespeichert werden. Die Entitätskennung kann vorteilhaft eine einzigartige Nummer sein und eine oder mehr Subentitätskennungen haben. Diese Subentitätskennungen können mehr Subentitätskennungen haben.
  • Die gegenwärtige Entität kann so ausgelegt sein, das sie entscheidet, ob sie von einer vorhergehenden Entität aufgerufen werden kann oder nicht. Die Kennung der gegenwärtigen Entität, wie sie an einer Speicherstelle oder einem Zustandsregister gespeichert ist, kann von jeder Hardware-Ressource dahingehend bewertet werden, ob die gegenwärtige Entität die Ressource nutzen kann oder nicht.
  • Bei einer Ausführungsform können verschiedene USB-(Universal Serial Bus-)Anschlüsse vorgesehen sein. Diese USB-Anschlüsse können (z. B. ausschließlich) unterschiedlichen Entitäten zugeordnet sein. Jeder USB-Anschluss kann dann eine oder mehr gespeicherte Entitätskennungen haben. Sobald die Entität (Master) bestimmt ist, die den gegenwärtigen gültigen Master bilden soll, kann an einem USB-Anschluss entschieden werden, ob sie genutzt werden kann, indem die Entitätskennung der gegenwärtigen Entität mit der gespeicherten Entitätskennung verglichen wird. Gemäß diesem Aspekt der Erfindung ist ein eingebettetes Mikrocontrollersystem vorgesehen, bei dem jede Ressource (USB, UART, ADC, CPU usw.) an eine Speicherstelle gekoppelt sein kann, an der die gegenwärtige Entität gespeichert ist. Jede Ressource kann dann eine Speicherstelle und einen Komparator zum Vergleichen der gespeicherten Entitätskennung mit der gegenwärtigen Entitätskennung aufweisen. Jede Ressource kann dann so ausgelegt sein, dass von dieser selbst entschieden wird, ob auf eine spezifische Entität reagiert wird oder nicht. Es kann ein USB-Anschluss, ein UART, eine CPU, ein ADC mit einer Speicherstelle zum Speichern einer Entitätskennung (Masterkennung) vorhanden sein. Der USB-Anschluss, der UART, die CPU, der ADC usw. kann eine Schaltung oder Logikstufe aufweisen, um zu entscheiden, ob die empfangene gegenwärtige Entitätskennung mit der gespeicherten Entitätskennung übereinstimmt. Darüber hinaus ist ein Register vorhanden, das zumindest die gegenwärtige Entität oder die gegenwärtige und eine Zielentität enthält. Das Register oder der Registerinhalt wird in Reaktion auf eine Anforderung, die eine Änderung der Entitäten fordert, an die Ressourcen, wie etwa USB-Anschluss, UART, CPU, ADC, gekoppelt oder diesen zugewiesen, so dass den Ressourcen die neue gültige Entitätskennung angeben wird.

Claims (5)

  1. Eingebettetes Mikrocontrollersystem, mit: einer zentralen Recheneinheit (6); einem Systemcontroller (1) zum Empfangen und Behandeln eines Interrupt; einem dediziertes Hardware-Register (11), das Speicherstellen aufweist, die eine Mehrzahl von den Interrupts zugeordneten Sätzen (12) vorgegebener Systemdaten für unterschiedliche Betriebsbedingungen des Systems enthalten, und das so gekoppelt ist, dass es basierend auf den Systemdaten eine Systemkonfiguration einstellt, wobei die Systemdaten im Register (11) definiert und gespeichert werden, bevor ein den Systemdaten im Register (11) zugeordnetes Interrupt empfangen wird, und der Systemcontroller (1) an das Register (11) gekoppelt ist, um basierend auf dem empfangenen Interrupt ein Auswahlsignal zum Register (11) zu senden und eine vorgegebene Speicherstelle des Registers (11) aus einer Mehrzahl von Speicherstellen auszuwählen und zu aktivieren, die dem empfangenen Interrupt zugeordnet ist, so dass unter Verwendung der ausgewählten vorgegebenen Systemdaten im Register (11) die entsprechende Systemkonfiguration direkt und unterbrechungsfrei eingestellt wird, sodass jeder weitere Eingriff eines Betriebssystems des eingebetteten Mikrocontrollersystems zum Einstellen der Betriebsbedingungen vermieden wird, wobei die Betriebsbedingungen mindestens das Konfigurieren eines Versorgungsspannungspegels eines spezifischen Versorgungsspannungsbereichs oder das Konfigurieren einer Frequenz eines Taktes des Systems umfasst und im Register (11) ein Datenfeld zur Steuerung der Zugriffsrechte auf die Ressourcen vorgesehen ist und die Systemdaten für die Verfügbarkeit einer Ressource des Systems für eine Entität sorgen und die Systemdaten eine Kennung zur Identifizierung einer Entität enthalten, die eine von dem Interrupt ausgelöste Anforderung bearbeitet, und ein Registerinhalt oder ein Teil des Registerinhalts des Registers (11) gesperrt wird, um den Registerinhalt oder den Teil davon vor einer Änderung zu schützen.
  2. Vorrichtung nach Anspruch 1, bei der die Systemdaten so konfiguriert sind, dass eine Systemtaktverteilung für Ressourcen und/oder Aufgaben des Systems eingestellt wird.
  3. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Systemdaten so konfiguriert sind, dass Bedingungen für einen sicheren Betrieb eingestellt werden.
  4. Vorrichtung nach Anspruch 1, mit einer Speicherstelle für eine aktuelle und eine vorhergehende Kennung.
  5. Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems, wobei das Verfahren umfasst: Zuordnen eines Satzes vorgegebener Systemdaten für eine Betriebsbedingung des Systems zu einem Interrupt, Speichern des Satzes vorgegebener Systemdaten in einem dedizierten Hardware-Register (11) vor dem Empfangen des Interrupt, Empfangen des Interrupt, Senden eines Auswahlsignals zum Register (11) in Reaktion auf das Empfangen des Interrupt, um eine vorgegebene Speicherstelle des Registers (11), die den dem empfangenen Interrupt zugeordneten Satz vorgegebener Systemdaten enthält, auszuwählen und zu aktivieren, und direktes und unterbrechungsfreies Einstellen der auf den gespeicherten und ausgewählten Systemdaten basierenden Systemkonfiguration unter Verwendung der vorgegebenen Systemdaten im Register (11), wobei jeder weitere Eingriff eines Betriebssystems des eingebetteten Mikrocontrollersystems zum Einstellen der Betriebsbedingung vermieden wird und die Betriebsbedingung das Konfigurieren mindestens eines Versorgungsspannungspegels einer Versorgungsspannung des Systems oder das Einstellen eines Taktes des Systems umfasst und die Zugriffsrechte auf die Ressourcen des eingebetteten Mikrocontrollersystems durch ein Datenfeld im Register gesteuert werden und die Systemdaten für die Verfügbarkeit einer Ressource des Systems für eine Entität sorgen, und die Systemdaten eine Kennung zur Identifizierung einer Entität enthalten, die eine von dem Interrupt ausgelöste Anforderung bearbeitet, und ein Registerinhalt oder ein Teil des Registerinhalts des Registers (11) gesperrt wird, um den Registerinhalt oder den Teil davon vor einer Änderung zu schützen.
DE102008062692A 2008-12-17 2008-12-17 Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus Active DE102008062692B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008062692A DE102008062692B4 (de) 2008-12-17 2008-12-17 Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
US12/640,605 US8234430B2 (en) 2008-12-17 2009-12-17 Apparatus and method with controlled switch method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008062692A DE102008062692B4 (de) 2008-12-17 2008-12-17 Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus

Publications (2)

Publication Number Publication Date
DE102008062692A1 DE102008062692A1 (de) 2010-07-01
DE102008062692B4 true DE102008062692B4 (de) 2013-11-14

Family

ID=42220679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008062692A Active DE102008062692B4 (de) 2008-12-17 2008-12-17 Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus

Country Status (2)

Country Link
US (1) US8234430B2 (de)
DE (1) DE102008062692B4 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US9317844B2 (en) 2010-03-02 2016-04-19 Shopkeep.Com, Inc. System and method for remote management of sale transaction data
US9965755B2 (en) * 2011-02-28 2018-05-08 Shopkeep.Com, Inc. System and method for remote management of sale transaction data
US10699261B2 (en) * 2010-03-02 2020-06-30 Shopkeep Inc. System and method for remote management of sale transaction data
US11030598B2 (en) 2010-03-02 2021-06-08 Lightspeed Commerce Usa Inc. System and method for remote management of sale transaction data
US20150278789A1 (en) * 2010-03-02 2015-10-01 Shopkeep.Com, Inc. System and method for remote management of sale transaction data
US10735304B2 (en) 2011-02-28 2020-08-04 Shopkeep Inc. System and method for remote management of sale transaction data
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US9817791B2 (en) 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US9952865B2 (en) 2015-04-04 2018-04-24 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file
WO2016184525A1 (en) 2015-05-21 2016-11-24 Projoule Gmbh Apparatus and method for configuring a microcontroller system
US10997119B2 (en) * 2015-10-23 2021-05-04 Nutanix, Inc. Reduced size extent identification
US10503474B2 (en) 2015-12-31 2019-12-10 Texas Instruments Incorporated Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US10133341B2 (en) * 2016-06-06 2018-11-20 Arm Limited Delegating component power control
WO2017215765A1 (en) * 2016-06-17 2017-12-21 Projoule Gmbh Apparatus and method for coordinating a configuration of a microcontroller system
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis
LU100947B1 (en) * 2018-09-27 2020-03-27 Nanopower As Device connection system and method of operation
JP2022134510A (ja) * 2021-03-03 2022-09-15 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム、および記憶媒体

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758169A (en) * 1990-12-21 1998-05-26 Intel Corporation Protocol for interrupt bus arbitration in a multi-processor system
US5774734A (en) * 1994-10-07 1998-06-30 Elonex I.P. Holdings, Ltd. Variable-voltage CPU voltage regulator
EP0685798B1 (de) * 1994-05-31 2003-07-16 Advanced Micro Devices, Inc. Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
US6665802B1 (en) * 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
US20070198759A1 (en) * 2005-12-30 2007-08-23 Stmicroelectronics Pvt. Ltd. Advanced interrupt processor in embedded systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982404A (en) * 1988-10-12 1991-01-01 American Standard Inc. Method and apparatus for insuring operation of a multiple part system controller
US6378065B1 (en) * 1998-04-27 2002-04-23 Infineon Technologies North America Corp. Apparatus with context switching capability
US6499078B1 (en) * 1999-07-19 2002-12-24 Microsoft Corporation Interrupt handler with prioritized interrupt vector generator
JP3600095B2 (ja) * 1999-12-07 2004-12-08 松下電器産業株式会社 割り込み管理装置及び割り込み管理方法
US6968411B2 (en) * 2002-03-19 2005-11-22 Intel Corporation Interrupt processing apparatus, system, and method
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
DE20302484U1 (de) * 2003-01-23 2003-09-04 Elitegroup Comp Systems Co Bedienungsfeld zum Einstellen der Betriebsfrequenz eines Computers und zum Anzeigen von Systeminformationen
JP4241462B2 (ja) * 2004-03-26 2009-03-18 株式会社デンソー 制御ユニットおよびマイクロコンピュータ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758169A (en) * 1990-12-21 1998-05-26 Intel Corporation Protocol for interrupt bus arbitration in a multi-processor system
EP0685798B1 (de) * 1994-05-31 2003-07-16 Advanced Micro Devices, Inc. Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
US5774734A (en) * 1994-10-07 1998-06-30 Elonex I.P. Holdings, Ltd. Variable-voltage CPU voltage regulator
US6665802B1 (en) * 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
US20070198759A1 (en) * 2005-12-30 2007-08-23 Stmicroelectronics Pvt. Ltd. Advanced interrupt processor in embedded systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Tricore User's Manual, V1.3.5, February 2005, S.6-1 - 6-16, <http ://www4.informatik.uni-erlangen.de/Lehre/SS08/V_EZS2/Doc/pdfs/ hardware/ Infineon/TC1_um_Vol1_CoreArchitecture_v135b.pdf> (recherchiert am 27.07.09) *

Also Published As

Publication number Publication date
US20100191979A1 (en) 2010-07-29
US8234430B2 (en) 2012-07-31
DE102008062692A1 (de) 2010-07-01

Similar Documents

Publication Publication Date Title
DE102008062692B4 (de) Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
DE60306952T2 (de) Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
DE60304602T2 (de) Ausnahmearten innerhalb eines sicheren verarbeitungssystems
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE60217394T2 (de) Methode und system zur parallelen ausführung von interrupt-routinen in einer smi- und pmi-basierten verteilungs- und ausführungsumgebung
DE69933515T2 (de) Peripherieprozessor
DE112005002305B4 (de) Thread-Livelock-Einheit
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE60308215T2 (de) Prozessorschaltung zwischen sicheren und nicht sicheren modi
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
EP2807558B1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem-kern zur exklusiven bereitstellung an virutelle maschinen
DE112013000654T5 (de) Verzweigungsvorhersagelogik
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112010005821T5 (de) Kontextwechsel
DE112005002672T5 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112011100715T5 (de) Hardware-hilfs-thread
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
DE112013004065B4 (de) Integrierte Schaltung
DE102013104329A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
WO2016102055A2 (de) Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente
DE112017001700T5 (de) Prozessoren, Verfahren, Systeme und Anweisungen zum Abruf von Daten auf der angegebenen Cache-Ebene mit garantiertem Abschluss

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20140215

R082 Change of representative

Representative=s name: ZELLER, ANDREAS, DE