DE102004055051B3 - Schneller Systemstart für eingebettete Systeme - Google Patents

Schneller Systemstart für eingebettete Systeme Download PDF

Info

Publication number
DE102004055051B3
DE102004055051B3 DE200410055051 DE102004055051A DE102004055051B3 DE 102004055051 B3 DE102004055051 B3 DE 102004055051B3 DE 200410055051 DE200410055051 DE 200410055051 DE 102004055051 A DE102004055051 A DE 102004055051A DE 102004055051 B3 DE102004055051 B3 DE 102004055051B3
Authority
DE
Germany
Prior art keywords
memory
mmu
volatile
data
processor
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.)
Expired - Fee Related
Application number
DE200410055051
Other languages
English (en)
Inventor
Dietmar SCHÜTZ
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE200410055051 priority Critical patent/DE102004055051B3/de
Application granted granted Critical
Publication of DE102004055051B3 publication Critical patent/DE102004055051B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Es wird ein Verfahren zur Beschleunigung eines Startvorganges einer Applikation mit großem Softwareanteil auf einem Rechnersystem (1) beschrieben, wobei das Rechnersystem über einen Datenspeicher (20), der zumindest einen Arbeitsspeicher (22) umfasst, und über einen Prozessor (10) mit Prozessorregistern, einem Befehlsdecoder (11) und einer MMU (12) verfügt. In einem ersten Schritt werden alle erforderlichen Ladevorgänge und konfigurationsvorgänge der Applikation so vorgenommen, dass der Zustand von Datenspeicher (20) und von Prozessorregistern einen lauffähigen Zustand der Applikation beschreibt, worauf das so vorgeladene System angehalten wird und der Inhalt des Datenspeichers und die Prozessorregister nichtflüchtig gespeichert werden. Für zukünftige Startvorgänge werden lediglich ein Teil der nichtflüchtig gespeicherten Inhalte des Datenspeichers (20) und der Prozessorregister im Rechnersystem rekonstruiert. Das Laden weiterer Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers erfolgt auf Anforderung der MMU (12) des Prozessors.

Description

  • Die Erfindung betrifft ein Verfahren zur Beschleunigung eines Startvorganges einer Applikation mit großem Software-Anteil auf einem Rechnersystem, wobei das Rechnersystem über einen Datenspeicher, der zumindest einen Arbeitsspeicher umfasst, und über einen Prozessor mit Prozessorregistern, einem Befehlsdecoder und einer MMU (Memory Managing Unit) verfügt. Die Erfindung betrifft weiterhin ein korrespondierendes Rechnersystem mit schneller Startfunktion zur Ausführung einer Applikation.
  • Bei Entwicklungen heutiger eingebetteter Systeme, so genannter embedded Systeme, wächst der Software-Anteil in drastischer Weise. Durch Initialisierung und Laden dieser großen Software-Pakete wächst proportional zur Größe der Zeitbedarf, um diese Systeme zu starten.
  • Ein Ziel bei der Entwicklung derartiger eingebetteter Systeme ist die Realisierung einer möglichst kurzen Startzeit des Rechnersystems vom Zeitpunkt des Einschaltens aus dem stromlosen Zustand bis zur ersten Aktion bzw. Reaktion auf die erste Eingabe eines Benutzers. Dieses Erfordernis ist z.B. in Infotainment-Systemen im Automobilbereich erwünscht, in denen vom Einschalten des Rechnersystems, z.B. durch Betätigung der Schließanlage oder der Zündung, bis zur Wiedergabe der zuletzt eingestellten Audio-Quelle sowie zur Aktivierung sicherheitsrelevanter Funktionen, wie z.B. von Abstandssensoren oder Warnfunktionen, nur wenige Sekunden vergehen dürfen. In entsprechender Weise muss die Startzeit von rechnergestützten Systemen im Telekommunikations-Bereich gering sein, da dies für die Verfügbarkeit des Gesamtsystems von Bedeutung ist. Auch im Bereich von Computern (PC) ist ein schnelles Starten erwünscht, auch wenn die dort üblichen langen Boot-Zeiten weitgehend toleriert werden. Die immer größer werdende Kom plexität der Rechnersysteme, welche typischerweise ein vollwertiges Betriebssystem nutzen und Speichergrößen von 16 MB oder mehr aufweisen, steht einem schnellen Starten hindernd gegenüber.
  • Beim Start eines Rechnersystems beginnt ein Prozessor des selben nach einem Reset die Ausführung an einer fest eingestellten Adresse. Dort ist typischerweise ein Minimalprogramm, der so genannte „Loader" abgelegt, welcher in der Regel im ROM (Read Only Memory oder nichtflüchtiger Speicher) abgelegt ist. Dieses Minimalprogramm initialisiert erforderlichenfalls weitere in dem Rechnersystem vorhandene Schaltelemente, lädt den Betriebssystem-Code aus einem gegebenenfalls (anderen) nichtflüchtigen Speicher, wie z.B. einer Festplatte oder ähnlichem, in den Arbeitsspeicher (RAM, Random Access Memory) und setzt die Ausführung an dessen Startadresse fort. Das Betriebssystem seinerseits initialisiert seine internen Strukturen und Treiber, erzeugt die hierzu notwendigen Prozesse und startet dann anhand von Initialisierungsdateien die vorgegebenen Applikationen. Erst wenn diese sich ihrerseits initialisiert haben und die erforderlichen Datenstrukturen und Kommunikationsverbindungen aufgebaut sind, ist das Rechnersystem in der Lage, auf Anforderungen seitens eines Benutzers zu reagieren. Je nach Größe und Komplexität des Betriebssystems sowie der zu ladenden Applikationen, kann dieser Vorgang mehrere Minuten in Anspruch nehmen, was in den oben dargestellten Beispielen nicht tolerierbar ist.
  • Um den Startvorgang eines derartigen Rechnersystems zu verkürzen, schlägt die EP 1 235 148 A2 vor, das Rechnersystem nach einem normalen Start „einzufrieren" und ein Abbild des Datenspeichers sowie des Prozessor-Status zu erstellen. Beim nächsten Start wird dieses Abbild aus einem nichtflüchtigen Speicher, bei embedded Systemen typischerweise ein Flash-Speicher in den Arbeitsspeicher geladen, der Prozessor-Status wieder hergestellt und die Ausführung an der ursprünglichen Stelle fortgesetzt. Gegebenenfalls müssen dabei Treiber und Applikationsteile re-initialisiert werden, um eine Synchronisation mit externen Komponenten, wie z.B. anderen Schaltungsstrukturen oder anderen Kommunikationselementen, wieder herzustellen. Spätestens zu diesem Zeitpunkt ist das System reaktionsbereit. Der gesamte Vorgang des Startens benötigt hierdurch nur noch wenige Sekunden, wobei die Zeit üblicherweise durch die Geschwindigkeit beim Laden des Speicherabbilds bestimmt ist. Diese ist durch den Datendurchsatz beim Lesen aus dem nichtflüchtigen Speicher limitiert.
  • Eine weitere Beschleunigung des Startvorganges ergibt sich dadurch, dass das Speicherabbild komprimiert in den nichtflüchtigen Speicher abgelegt wird. Beim Laden durch den im Wesentlichen unausgelasteten Prozessor findet eine Dekomprimierung statt. Ein derartiges Vorgehen ist in der EP 1 233 522 A1 offenbart.
  • Es ist weiterhin bereits vorgeschlagen worden, das Rechnersystem nicht abzuschalten, sondern in einen „Schlaf-Modus" zu versetzen. Hierbei wird durch eine Reduktion der Taktrate sowie ein Umschalten des Arbeitsspeichers in den so genannten Erhaltungsmodus (Refresh-Modus) den Stromverbrauch deutlich reduziert, so dass beim Reaktivieren weder ein Laden noch eine Re-Initialisierung des Rechnersystems erforderlich ist. Aufgrund des verbleibenden Ruhestrombedarfs ist diese Vorgehensweise z.B. nicht im Umfeld automobiler Anwendungen möglich. Auch in Bereichen mit instabiler Spannungsversorgung ist dieser Lösungsansatz nicht einsetzbar.
  • Aus der US-Patentanmeldung US 2004/0068646 A1 ist ein System bekannt, bei dem ein Abbild eines Speichers und von Prozessorregistern gemacht wird und durch eine in einem ROM befindliche Routine im Bedarfsfall abgerufen und zur Restaurierung des Systems genutzt wird und durch die die Steuerung dann wieder an das Betriebssystem zurück gegeben wird.
  • Die Aufgabe der vorliegenden Erfindung ist es daher, eine Möglichkeit zu schaffen, den Zeitbedarf für einen Startvorgang einer Applikation mit großem Software-Anteil auf einem Rechnersystem weiter zu verringern.
  • Gemäß der Erfindung wird diese Aufgabe durch ein Verfahren mit den Merkmalen des Patenanspruches 1, durch ein Rechner system mit den Merkmalen des Patentanspruches 9 sowie mit einem mobilen Terminal mit den Merkmalen des Patentanspruches 12 gelöst. Vorteilhafte Ausgestaltungen ergeben sich jeweils aus den abhängigen Patentansprüchen.
  • Erfindungsgemäß ist ein Verfahren zur Beschleunigung eines Startvorganges einer Applikation mit großem Software-Anteil auf einem Rechnersystem vorgesehen, wobei das Rechnersystem über einen Datenspeicher, welcher zumindest einen Arbeitsspeicher umfasst und über einen Prozessor mit Prozessor-Registern, einem Befehlsdecoder und einer MMU (Memory Managing Unit) verfügt, wobei
    • a) alle erforderlichen Ladevorgänge und Konfigurationsvorgänge der Applikation so vorgenommen werden, dass der Zustand von Datenspeicher und von Prozessorregistern einen lauffähigen Zustand der Applikation beschreibt, worauf
    • b) das so vorgeladene System angehalten wird und der Inhalt des Datenspeichers und die Prozessorregister nichtflüchtig gespeichert werden,
    • c) für zukünftige Startvorgänge lediglich ein Teil der nichtflüchtig gespeicherten Inhalte des Datenspeichers und der Prozessorregister im Rechnersystem rekonstruiert werden an, und
    • d) das Laden weiterer Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers auf Anforderung der MMU des Prozessors erfolgt.
  • Erfindungsgemäß ist somit vorgesehen, die MMU in den Startvorgang des Rechnersystems einzubeziehen. Die MMU stellt eine Einheit zur Speicherorganisation dar und ist ein wesentlicher Bestandteil hochwertiger Prozessoren. Diese erlaubt den ablaufenden Programmen die Verwendung virtueller Adressen beim Zugriff auf Daten und Programmcode, indem sie vor dem Zugriff jede angesprochene virtuelle Adresse mittels einer Umsetztabelle in eine physikalische Adresse in dem Arbeitsspeicher umsetzt. Dadurch wird auch der Zugriff auf prozessfremde Da ten verhindert. Der virtuelle Adressraum kann dabei wesentlich größer sein als der tatsächlich vorhandene bzw. verfügbare Arbeitsspeicher. Zu diesem Zweck können Teile des Speichers, die auch als Seiten oder Kacheln bezeichnet werden und typischerweise eine Größe von 512 Byte bis 4 KB aufweisen, auf einen Sekundärspeicher, wie z.B. einen nichtflüchtigen Speicher (Festplatte oder Flash-Speicher) ausgelagert werden. Diese Technik wird auch als Paging bezeichnet. Bei einem derartigen Zugriff auf eine virtuelle Adresse wird zuerst geprüft, ob die zugehörige Seite tatsächlich im Arbeitsspeicher enthalten ist. Ist dies nicht der Fall, so löst die MMU einen Interrupt aus, infolge dessen die gewünschte Seite in den Arbeitsspeicher kopiert wird. Gegebenenfalls wird hierzu eine der anderen in dem Arbeitsspeicher befindlichen Seiten verdrängt. Die Nutzung der MMU beim Startvorgang des Rechnersystems ermöglicht es somit, Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers „bei Bedarf" zu laden. Hierzu ist es lediglich notwendig, einen Teil der nichtflüchtig gespeicherten Inhalte des Datenspeichers und der Prozessor-Register im Rechnersystem zu rekonstruieren, um den Prozessor und insbesondere die MMU in eine betriebsfähige Situation zu bringen.
  • Dabei reicht es im Extremfall aus, wenn die Schritte a) und b) nur einmal bei der Herstellung des Rechnersystems vorgenommen werden.
  • Bevorzugt erfolgt bei der Durchführung von Schritt c) ein Aktivieren der MMU, um das Laden weiterer Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers auf Anforderung zu ermöglichen.
  • In einer zweckmäßigen Ausgestaltung erfolgt bei der Durchführung von Schritt b) ein Speichern der nichtflüchtig zu speichernden Daten seitenweise in einer für die MMU-Behandlung geeigneten Form. Weiterhin erfolgt bei der Durchführung von Schritt d) ein Auslesen der nichtflüchtig gespeicherten Daten seitenweise auf Anforderung der MMU.
  • Vorzugsweise wird beim Zugriff auf eine noch nicht in den Arbeitsspeicher geladene Seite ein Interrupt durch die MMU ausgelöst, durch dessen Behandlung die benötigte Seite aus dem nichtflüchtigen Speicher in den Arbeitsspeicher geladen wird.
  • Hierbei ist es vorteilhaft, wenn bei geringer Auslastung des Prozessors dieser auf die in dem nichtflüchtigen Speicher abgelegten Inhalte zugreift und deren Laden in den Arbeitsspeicher veranlasst, um den vollständigen lauffähigen Zustand der Applikation herzustellen. Mit anderen Worten bedeutet dies, dass das Laden der weiteren Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers nicht ausschließlich durch Auslösen eines Interrupts der MMU erfolgt, sondern dass der Prozessor in der Lage ist, in Perioden mit geringer Auslastung ein weiteres Nachladen dieser Inhalte vorzunehmen, so dass nach einer gewissen Zeit sämtliche nichtflüchtig gespeicherten Inhalte des Datenspeichers in den Arbeitsspeicher kopiert sind.
  • Eine weitere Verbesserung im Hinblick auf die Dauer und den verbrauchten nichtflüchtigen Speicher eines erfindungsgemäßen Startvorganges lässt sich erreichen, indem bei der Durchführung von Schritt b) eine Komprimierung der nichtflüchtig zu speichernden Daten erfolgt und bei der Durchführung von Schritt c) oder d) eine Dekomprimierung der nichtflüchtig gespeicherten Daten erfolgt.
  • Gemäß einer zweckmäßigen Ausgestaltung der Erfindung werden bei der Durchführung von Schritt c) Grundroutinen in den Arbeitsspeicher geladen, die einen Zugriff der MMU auf die in dem nichtflüchtigen Speicher abgelegten Daten ermöglichen. Die Geschwindigkeit des erfindungsgemäßen Verfahrens resultiert im Wesentlichen daraus, dass zunächst lediglich solche Grundroutinen in den Arbeitsspeicher geladen werden, welche den Prozessor in die Lage versetzen, mit den bekannten Mechanismen der MMU weitere Daten aus dem nichtflüchtigen Speicher anzufordern. Der Startvorgang wird somit im Wesentlichen lediglich durch die Zeitdauer des Ladens der Grundroutinen in den Arbeitsspeicher bestimmt.
  • Das erfindungsgemäße Rechnersystem mit schneller Startfunktion zur Ausführung einer Applikation weist folgende Merkmale auf
    • – einen Prozessor mit Prozessorregistern und einer MMU,
    • – einen Datenspeicher, der zumindest einen Arbeitsspeicher und einen nichtflüchtigen Speicher umfasst, wobei der nichtflüchtige Speicher zumindest solche Inhalte von Arbeitsspeicher und Prozessorregistern umfasst, die einen lauffähigen Zustand der Applikation beschreiben,
    • – ein Mittel zum Anhalten des Systems, insbesondere durch Inaktivierung von Interrupts und/oder durch vorgesehene Systemaufrufe, und
    • – ein Mittel zur Rekonstruktion von Inhalten von Arbeitsspeicher und Prozessorregister aus den einen lauffähigen Zustand der Applikation beschreibenden Inhalten des nichtflüchtigen Speichers, wobei zunächst lediglich ein Teil der nichtflüchtig gespeicherten Inhalte in den Arbeitsspeicher geladen werden und die übrigen Daten kontinuierlich oder zeitlich verteilt unter Steuerung der MMU angefordert werden.
  • Auch hierbei ist es vorteilhaft, wenn die einen lauffähigen Zustand der Applikation beschreibenden Inhalte des nichtflüchtigen Speichers in komprimierter Form vorliegen und ein Mittel zur Dekomprimierung dieser Inhalte vorgesehen ist.
  • Ein solches Rechnersystem lässt sich zur Herstellung einer vollständigen Funktionsfähigkeit aus einem völlig ausgeschalteten Zustand verwenden, wobei eine Rekonstruktion von Inhalten von Arbeitsspeicher und Prozessor-Registern aus den einen lauffähigen Zustand der Applikation beschreibenden Inhalten des nichtflüchtigen Speichers im Zuge eines Einschaltvorganges des Rechners erfolgt, wobei zunächst lediglich ein Teil der den lauffähigen Zustand beschreibenden Inhalten des nichtflüchtigen Speichers in den Arbeitsspeicher geladen werden und das Herstellen der vollständigen Funktionsfähigkeit im weiteren unter Einbeziehung der MMU des Prozessors erfolgt.
  • Auf dieser Grundlage lassen sich besonders gut mobile Terminals konstruieren, insbesondere Telekommunikations-Endgeräte.
  • Weitere Vorteile und Details der vorliegenden Erfindung ergeben sich anhand der folgenden Erläuterungen und in Verbindung mit den Figuren. Es zeigt jeweils in Prinzipdarstellung:
  • 1 ein Zeitdiagramm zur Vorbereitung eines vorgeladenen Systems,
  • 2 ein Zeitdiagramm eines schnellen Startvorgangs durch Wiederherstellung eines vorgeladenen Systems gemäß der Erfindung,
  • 3 ein Zeitdiagramm eines gewöhnlichen Systemstarts nach dem Stand der Technik, und
  • 4 in schematischer Darstellung ein Rechnersystem zur Ausführung des erfindungsgemäßen Verfahrens.
  • Zur näheren Beschreibung der Erfindung soll zuerst geklärt werden, was es bedeutet eine Applikation zu starten, d.h. welche Schritte ausgeführt werden müssen. Dazu ist ein herkömmlicher Startvorgang einer Applikation in der Darstellung gemäß der 3 skizziert. Dazu ist auf der linken Seite die Zeit T in Sekunden aufgetragen. In der Mitte sind die verschiedenen Zeitpunkten zugeordneten Ereignisse E und rechts davon die daraufhin vorgenommenen Aktionen A aufgeführt.
  • Zum Zeitpunkt T = 0 wird das Rechnersystem eingeschaltet (Ereignis E1). In einem eingebetteten System (embedded system) liegt der Programmcode einer Applikation in der Regel im ROM (Read only memory oder nichtflüchtiger Speicher) des Rechnersystems vor. Es folgt auf E1 eine Initialisierung A1 und das Kopieren A2 einer Imagedatei in den RAM-Speicher.
  • Daraufhin, etwa bei T = 2, wird dem Betriebssystem des Rechners die Kontrolle übergeben (Ereignis E2). Dazu werden in A3 die Strukturen des Betriebssystem-Kernel initialisiert. Darauf werden in A4 Gerätetreiber initialisiert. Bei etwa T = 5 erfolgt dann der eigentliche Start E3 der Applikation.
  • Damit dieser Code jedoch lauffähig wird, müssen die Adressbereiche für Code-Daten und Stack alloziert und zugreifbar gemacht werden. Für Systeme mit virtuellem Speicher bedeutet dies, dass Systemtabellen für die MMU (Memory Management Unit) initialisiert werden müssen. Größere Applikationen bestehen oft aus einer Vielzahl von DLLs (Dynamic Link Libraries), die nacheinander geladen (A5) und in irgendeiner Form registriert und konfiguriert werden müssen. Dazu müssen Konfigurationsdaten (Registry-Daten) gelesen und durchsucht werden. Dieser Vorgang ist vergleichsweise zeitintensiv.
  • DLL steht dabei als Bezeichnung für Laufzeitbibliotheken oder als Bezeichnung für Dateien mit Unterroutinen in Form von bereits kompiliertem Code. Solche Routinen werden aber erst zur Laufzeit und, wenn benötigt, von dem zugehörigen Hauptprogramm aufgerufen und ausgeführt. Ferner können die Unterprogramme gleichzeitig von mehreren verschiedenen Programmen bzw. von mehreren Instanzen des gleichen Programms gleichzeitig genutzt werden, so dass dieses Unterprogramm nicht von jedem Hauptprogramm zusätzlich aufgerufen und in den Hauptspeicher des Rechnersystems geholt wird. Dies verringert die Größe des Hauptprogramms und damit den Platz, den dieses im Hauptspeicher benötigt.
  • Im weiteren Verlauf des Starts der Applikation werden dann Softwaretreiber initialisiert (A6) und Konfigurationsdaten gelesen (A7). Etwa nach 30 Sekunden, T = 30, ist das System dann bereit zur Verarbeitung erster Bedienereingaben (Ereignis E4).
  • Aus Sicht des Prozessors werden während dieser Lade- und Konfigurationsvorgänge Daten im Bereich des Arbeitsspeichers modifiziert. Es werden Tabellen vorbereitet, Code- und Datenbereiche initialisiert und geladen, Stacks und Heaps angelegt und globale Variablen initialisiert. Dieser Bereich wird in der folgenden Beschreibung als Datenspeicher bezeichnet.
  • Diese Aktionen, die während des Startens einer Applikation ablaufen, modifizieren typischerweise den Inhalt des Datenspeichers, nicht jedoch Codebereiche, die mitunter auch im Arbeitsspeicher liegen. Der Zustand des Datenspeichers beschreibt zusammen mit den Registerinhalten des Prozessors den Zustand der Applikation bzw. des ganzen Systems.
  • Die Erfindung beruht nun darauf, dass der Inhalt des Arbeitsspeichers und die Prozessorregister nach dem Starten der Applikation eingefroren und nichtflüchtig abgespeichert wird (vgl. 1). Die Verkürzung des Startvorgangs bzw. der Bootup-Zeit wird dadurch erreicht, dass bei dem beschleunigten Bootup die Applikation nicht auf herkömmlichem Wege gestartet werden muss, sondern dass lediglich ein Teil der Daten des Arbeitsspeichers und die Registerinhalte des Prozessors aus dem nichtflüchtigen Speicher rekonstruiert, also im einfachsten Falle kopiert werden müssen (vgl. 2).
  • Zunächst soll der Vorgang zur Vorbereitung eines vorgeladenen Systems gemäß der Erfindung anhand von 1 erläutert werden. Die 1 entspricht im Wesentlichen der voran stehend erläuterten 3 bis zur Aktion A5, dem Laden der DLLs und dadurch bedingten Folgeaktivitäten. Bei etwa T = 25 wird das System dann, wie weiter unten näher erläutert, eingefroren (Ereignis X). Erst anschließend werden die weiteren Aktionen A6 und A7 durchgeführt.
  • Zum Zeitpunkt der Abspeicherung muss sichergestellt sein, dass der Inhalt des Datenspeichers konsistent ist, also genau den momentanen Zustand des Systems beschreibt. Es wird darauf geachtet, dass zwischengespeicherte (Fachjargon „gecachte") Daten, die nicht dem Inhalt des Datenspeichers entsprechen, im Datenspeicher aktualisiert werden. Der Begriff „Cache" wird manchmal auch als Vorhaltespeicher bezeichnet. Darunter versteht man einen Zwischenspeicher, der zwischen zwei verschiedenen Speichersystemen angesiedelt ist und die Transfers zwischen ihnen beschleunigt bzw. vermindert. Das erfindungsgemäße Fast-Bootup-Konzept beruht im Wesentlichen auf den folgenden zwei Schritten.
    • A) Einfrieren und Abspeichern des Systemzustandes nach dem Starten aller relevanten Applikationen: – Benachrichtigung der Geräte-Treiber. – Anhalten des Systems durch Inaktivierung der Interrupts bzw. durch spezielle Systemaufrufe. – Auslesen und Abspeichern der Prozessorregister. – Zurückschreiben (Flush) der modifizierten Daten-Cache-Einträge. – Abspeichern des Datenspeichers und der Registerinhalte im nichtflüchtigen Speicher.
    • B) Rekonstruktion des Systemzustandes aus den nichtflüchtig gespeicherten Daten: – Rekonstruktion des Datenspeichers aus dem nichtflüchtigem Speicher – Zurückschreiben (Flush) der modifizierten Daten-Cache-Einträge und Invalidieren der TLB (Translation Lookaside Buffer)-Einträge – Laden der Prozessorregister mit den im nichtflüchtigen Speicher abgelegten Werten – Benachrichtigung der Geräte-Treiber
  • Die Darstellung gemäß der 2 zeigt einen solchen schnellen Startvorgang durch Wiederherstellung eines vorgeladenen Systems unter Einbeziehung der MMU des Prozessors. Das Rechnersystem 1 (4) weist hierzu einen Prozessor 10 mit einem Befehlsdecoder 11 und einer damit gekoppelten MMU 12 auf. Der Datenspeicher 20 verfügt über einen Boot-Speicher 21, einen Arbeitsspeicher 22 sowie einen nichtflüchtigen Speicher 23. Der Prozessor 10 und der Datenspeicher 20 können in bidirektionaler Richtung (Pfeil 30) Daten austauschen. Das Starten des Rechnersystems (Ereignis E1) erfolgt durch das Laden der initial benötigten Seiten aus dem nichtflüchtigen Speicher 23 in den Arbeitsspeicher 22 (Aktion A1), sowie durch eine Initialisierung der Umsetzungstabellen in der Art, dass aktuell in den Arbeitsspeicher geladene Seiten als „vorhanden" gekennzeichnet und noch nicht in den Arbeitsspeicher geladene, sondern im nichtflüchtigen Speicher befindliche Seiten, als "ausgelagert" gekennzeichnet werden (Aktion A2). Schließlich erfolgt ein Aktivieren der MMU (Aktion A3) Anschließend erfolgt eine Wiederherstellung des Prozessor-Status, worauf auf die dort angegebene Ausführungsadresse gesprungen wird (Ereignis E2).
  • Zum Zeitpunkt T = 1,5 (Ereignis E3) ist das Rechnersystem prinzipiell bereits bereit, Eingaben eines Benutzers zu empfangen und verarbeiten. Sobald auf eine noch nicht geladene Seite zugegriffen wird, welche einen Teil der nichtflüchtig gespeicherten Inhalte des Datenspeichers beinhaltet, löst die MMU 12 einen Interrupt aus (Bezugszeichen 31), durch dessen Behandlung die benötigte Seite aus dem nichtflüchtigen Speicher 23 in den Arbeitsspeicher 22 geladen wird (Bezugszeichen 32, 33). Durch dieses Vorgehen werden anfänglich nur genau diejenigen Seiten geladen, die zur Re-Initialisierung der Treiber und Applikationsteile sowie für die erste Reaktion durch einen Benutzer erforderlich sind. Die Anzahl der geladenen Seiten ist damit zunächst minimal. Insbesondere wird das Laden einer Seite und damit die benötigten Dateninhalte durch die Applikation selbst indirekt gesteuert, so dass keine zusätzlichen Kenntnisse über die zu ladenden Inhalte notwendig sind.
  • Das erfindungsgemäße Verfahren und das erfindungsgemäße Rechnersystem zeichnen sich somit dadurch aus, dass spätestens nach 1,5 Sekunden bereits Anfragen eines Benutzers entgegengenommen werden können, obwohl noch nicht sämtliche Daten der nichtflüchtig gespeicherten Inhalte des Datenspeichers in den Arbeitsspeicher geladen sind. Erfordert die Anfrage des Benutzers das Vorhandensein derartiger Daten, so werden diese auf Anforderung der MMU aus dem nichtflüchtigen Speicher 23 in den flüchtigen 22 nachgeladen (Aktion A4).
  • In Zeiten, in denen der Prozessor 10 eine nur geringe Auslastung aufweist, z.B. nach dem Ereignis E4, dessen Zeitpunkt T = x zwischen T = 1,5 und T = 35 liegen kann, kann der Prozessor 10 andererseits – ebenfalls unter Anforderung der MMU 12 – ein Nachladen der noch nicht im Arbeitsspeicher 22 befindlichen nichtflüchtig gespeicherten Inhalte vornehmen (Aktion A5). Zum Ereignis E5 (z.B. nach 35-40 sec) befindet sich das erfindungsgemäße Rechnersystem in einem Zustand, in dem die Applikation vollständig geladen ist. Die Zeitdauer bis zum vollständigen Laden der Applikation kann dabei zwar länger benötigen als dies bei Verfahren nach dem Stand der Technik der Fall ist. Der besondere Vorteil der Erfindung besteht jedoch darin, dass die Betriebsfähigkeit des Systems bereits zu einem Zeitpunkt T = 1,5 (Ereignis E3) zur Verfügung stellt, welche weit vor den bislang gekannten Zeiten liegt.
  • Die zum Laden der unbedingt notwendigen Seiten erforderliche Zeit kann Vorteilhafterweise durch bekannte Mechanismen weiter reduziert werden. So kann durch Komprimieren der Seiten im nichtflüchtigen Speicher 23 die Lesedauer reduziert werden. Dies ist insbesondere deshalb vorteilhaft, wenn als nichtflüchtige Speicher so genannte Flash-Speicher eingesetzt werden, bei welchen der Datendurchsatz physikalisch bedingt begrenzt ist. Andererseits können, sofern bekannt, die am Anfang benötigten Seiten vorgeladen werden, so dass die Interrupt-Behandlung durch die MMU entfällt. Hierbei ist abzuwägen, ob der bereits aktive Prozessor die Leistung zum Dekomprimieren bereitstellen kann, oder ob er bereits mit anderen Aufgaben beschäftigt ist bzw. andere Aufgaben frühest möglich anstoßen sollte.
  • Um nach Erreichen des Startzustandes die Performance-Einbußen durch Nachladen neuer Seiten auf eine möglichst geringe Zeitspanne zu beschränken, kann – wie vorgehend beschrieben – ein Prozess eingerichtet werden, der bei Leerlauf des Prozessors nach und nach auf alle Seiten im nichtflüchtigen Speicher zugreift und so deren Nachladen in den Arbeitsspeicher veranlasst.
  • Das Verfahren kann dabei nicht nur beim Starten eines Systems, sondern auch prinzipiell beim Laden beliebiger größerer Datenbereiche zur Effizienzsteigerung genutzt werden. Voraussetzung dafür ist, dass der Zugriff auf die zu ladenden Seiten selektiv erfolgt, so dass deren Verarbeitung früher gestartet werden kann.
  • Der wesentliche Aspekt der vorliegenden Erfindung liegt in der Einbeziehung der MMU in den Startvorgang eines Rechnersystems. Hierdurch wird erzielt, dass die bis zur ersten Aktivität des Systems geladene Anzahl von Seiten minimal ist. Gleichzeitig wird der zur Re-Initialisierung erforderliche Code deutlich früher ausgeführt, so dass auch länger andauernde Prozesse zeitig abgeschlossen werden können.
  • Für einen Speicherinhalt mit einer Größe von 32 MB ergibt sich folgende Abschätzung für das Startverhalten: Bei einem konventionellen Schnellstartverfahren, wie dies in der EP 1 235 148 A2 beschrieben ist, dauert das Laden eines komprimierten Speicherabbilds aus dem Flash-Speicher ca. 2 Sekunden. Der anschließend auszuführende Re-Initialisierungscode benötigt (je nach Applikation) ca. 1 Sekunde zur Ausführung, wodurch das System ca. 3 Sekunden nach dem Starten des Ladevorgangs aktiv ist.
  • In dem vorgestellten erfindungsgemäßen Verfahren werden weniger als 10 % der vorgenannten Zeit für den Anlauf benötigt, so dass die Ladedauer derjenigen Seiten, welche die Grundroutinen für ein ordnungsgemäßes Betreiben des Prozessors beinhalten, weniger als 0,5 Sekunden benötigt. Da der Prozessor bereits nach dieser Zeitspanne mit der Ausführung des Re-Initialisierungscodes beginnen kann und durch das Laden kaum belastet wird, ist ein erfindungsgemäßes Rechnersystem nach weniger als 1,5 Sekunden aktiv.
  • Für die Realisierung der Erfindung sind zwei Bestandteile von Bedeutung. Der von der MMU ausgelöste Interrupt-Befehl für einen Seitenfehler (so genannten „page fault") muss durch eine entsprechende Routine behandelt werden, welche die Ladefunktion und gegebenenfalls auch eine damit verknüpfte Dekomprimierung durchführt. Eine derartige Routine ist Bestandteil der als Grundroutinen bezeichneten Dateninhalte. Die Grundroutinen umfassen darüber hinaus den Code für die Seitenfehlerbehandlung sowie eine Initialisierung der MMU und deren Verwaltungsstrukturen. Hierbei wird insbesondere der Codebereich mit der Seitenfehlerbehandlung im Arbeitsspeicher speicherresident gemacht, so dass diese Dateninhalte durch das nachfolgend von der MMU ausgeführte Paging-Verfahren nicht verdrängt werden können.

Claims (12)

  1. Verfahren zur Beschleunigung eines Startvorganges einer Applikation mit großem Softwareanteil auf einem Rechnersystem (1), wobei das Rechnersystem über einen Datenspeicher (20), der zumindest einen Arbeitsspeicher (22) umfasst, und über einen Prozessor (10) mit Prozessorregistern, einem Befehlsdecoder (11) und einer MMU (12) verfügt, wobei a) alle erforderlichen Ladevorgänge und Konfigurationsvorgänge der Applikation so vorgenommen werden, dass der Zustand von Datenspeicher (20) und von Prozessorregistern einen lauffähigen Zustand der Applikation beschreibt, worauf b) das so vorgeladene System angehalten wird und der Inhalt des Datenspeichers und die Prozessorregister nichtflüchtig gespeichert werden, c) für zukünftige Startvorgänge lediglich ein Teil der nichtflüchtig gespeicherten Inhalte des Datenspeichers (20) und der Prozessorregister im Rechnersystem rekonstruiert werden, und d) das Laden weiterer Teile der nichtflüchtig gespeicherten Inhalte des Datenspeichers auf Anforderung der MMU (12) des Prozessors erfolgt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Schritte a) und b) nur einmal bei der Herstellung des Rechnersystems vorgenommen werden.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei der Durchführung von Schritt c) ein Aktivieren der MMU (12) erfolgt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass – bei der Durchführung von Schritt b) ein Speichern der nichtflüchtig zu speichernden Daten seitenweise in einer für die MMU (12) lesbaren Form erfolgt, – bei der Durchführung von Schritt d) ein Auslesen der nichtflüchtig gespeicherten Daten seitenweise auf Anforderung der MMU (12) erfolgt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass beim Zugriff auf eine noch nicht in den Arbeitsspeicher (22) geladene Seite ein Interrupt durch die MMU (12) ausgelöst wird, durch dessen Behandlung die benötigte Seite aus dem nichtflüchtigen Speicher in den Arbeitsspeicher geladen wird.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass bei geringer Auslastung des Prozessors (10) dieser auf die in dem nichtflüchtigen Speicher (23) abgelegten Inhalte zugreift und deren Laden in den Arbeitsspeicher veranlasst, um den vollständigen lauffähigen Zustand der Applikation herzustellen.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass – bei der Durchführung von Schritt b) eine Komprimierung der nichtflüchtig zu speichernden Daten erfolgt, und – bei der Durchführung von Schritt c) oder d) eine Dekomprimierung der nichtflüchtig gespeicherten Daten erfolgt.
  8. verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Durchführung von Schritt c) Grundroutinen in den Arbeitsspeicher (22) geladen werden, die einen Zugriff der MMU (12) auf die in dem nichtflüchtigen Speicher (23) abgelegten Daten ermöglichen.
  9. Rechnersystem mit schneller Startfunktion zur Ausführung einer Applikation mit – einen Prozessor (10) mit Prozessorregistern und einer MMU (12), – einem Datenspeicher (20), der zumindest einen Arbeitsspeicher (22) und einen nichtflüchtigen Speicher (23) umfasst, wobei der nichtflüchtige Speicher zumindest solche Inhalte von Arbeitsspeicher (22) und Prozessorregistern umfasst, die einen lauffähigen Zustand der Applikation beschreiben, – einem Mittel zum Anhalten des Systems, insbesondere durch Inaktivierung von Interrupts und/oder durch vorgesehene Systemaufrufe, und – einem Mittel zur Rekonstruktion von Inhalten von Arbeitsspeicher (22) und Prozessorregister aus den einen lauffähigen Zustand der Applikation beschreibenden Inhalten des nichtflüchtigen Speichers (23), wobei zunächst lediglich ein Teil der nichtflüchtig gespeicherten Inhalte in den Arbeitsspeicher (22) geladen werden und die übrigen Daten kontinuierlich oder zeitlich verteilt unter Steuerung der MMU (12) angefordert werden.
  10. Rechnersystem nach Anspruch 9, dadurch gekennzeichnet, dass die einen lauffähigen Zustand der Applikation beschreibenden Inhalte des nichtflüchtigen Speichers in komprimierter Form vorliegen und ein Mittel zur Dekomprimierung dieser Inhalte vorgesehen ist.
  11. Verwendung eines Rechnersystems nach Anspruch 9 oder 10 zur Herstellung einer vollständigen Funktionsfähigkeit aus einem völlig ausgeschalteten Zustand, wobei eine Rekonstruktion von Inhalten von Arbeitsspeicher und Prozessorregistern aus den einen lauffähigen Zustand der Applikation beschreibenden Inhalten des nichtflüchtigen Speichers im Zuge eines Einschaltvorganges des Rechners erfolgt, wobei zunächst lediglich ein Teil der den lauffähigen Zustand beschreibenden Inhalten des nichtflüchtigen Speichers in den Arbeitsspeicher geladen werden und das Herstellen der vollständigen Funktionsfähigkeit im weiteren unter Einbeziehung der MMU des Prozessors erfolgt.
  12. Mobiles Terminal, insbesondere Telekommunikationsendgerät, mit einem Rechnersystem nach einem der Ansprüche 9 oder 10.
DE200410055051 2004-11-15 2004-11-15 Schneller Systemstart für eingebettete Systeme Expired - Fee Related DE102004055051B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410055051 DE102004055051B3 (de) 2004-11-15 2004-11-15 Schneller Systemstart für eingebettete Systeme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410055051 DE102004055051B3 (de) 2004-11-15 2004-11-15 Schneller Systemstart für eingebettete Systeme

Publications (1)

Publication Number Publication Date
DE102004055051B3 true DE102004055051B3 (de) 2005-10-13

Family

ID=34983210

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410055051 Expired - Fee Related DE102004055051B3 (de) 2004-11-15 2004-11-15 Schneller Systemstart für eingebettete Systeme

Country Status (1)

Country Link
DE (1) DE102004055051B3 (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015171240A1 (en) * 2014-05-07 2015-11-12 Sandisk Technologies Inc. Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
DE102015205378A1 (de) 2015-03-25 2016-09-29 Volkswagen Aktiengesellschaft Informations- und Unterhaltungssystem für ein Fahrzeug
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
WO2023052166A1 (de) * 2021-09-28 2023-04-06 Mercedes-Benz Group AG Verfahren zum betrieb eines informationstechnischen systems, informationstechnisches system und fahrzeug

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068646A1 (en) * 1999-12-30 2004-04-08 Cardiac Pacemakers, Inc. Quick starting external programmer for implantable medical device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068646A1 (en) * 1999-12-30 2004-04-08 Cardiac Pacemakers, Inc. Quick starting external programmer for implantable medical device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015171240A1 (en) * 2014-05-07 2015-11-12 Sandisk Technologies Inc. Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US9665296B2 (en) 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
DE102015205378A1 (de) 2015-03-25 2016-09-29 Volkswagen Aktiengesellschaft Informations- und Unterhaltungssystem für ein Fahrzeug
WO2016150528A1 (de) 2015-03-25 2016-09-29 Volkswagen Aktiengesellschaft Informations- und unterhaltungssystem für ein fahrzeug
US10732985B2 (en) 2015-03-25 2020-08-04 Volkswagen Aktiengesellschaft Information and entertainment system for a vehicle
WO2023052166A1 (de) * 2021-09-28 2023-04-06 Mercedes-Benz Group AG Verfahren zum betrieb eines informationstechnischen systems, informationstechnisches system und fahrzeug

Similar Documents

Publication Publication Date Title
DE60008929T2 (de) Schnellstart eines mikroprozessorbasierten systems
EP1744236B1 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE4215063A1 (de) Einrichtung und verfahren zum seitenwechsel bei einem nicht-fluechtigen speicher
EP2881858B1 (de) Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
EP3128383A1 (de) Feldgerät
DE102004055051B3 (de) Schneller Systemstart für eingebettete Systeme
EP0698847A1 (de) Verfahren für einen Programmpaketaustausch in einem Mehrrechnersystem und Rechner dafür
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden
EP3218812A1 (de) Verfahren und speicherverwaltungsvorrichtung zum übertragen von daten innerhalb eines computer-systems, speichersystem und computer-system
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE10040267A1 (de) Prozessor-Speicher-System
WO2005038651A1 (de) Verfahren und einrichtung zum betreiben eines sekundär-betriebssystems neben einem primär-betriebssystem
DE10050604A1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
EP1235148A2 (de) Schneller Systemstart für eingebettete Systeme
DE102018132543A1 (de) System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten
DE10260103A1 (de) Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät
DE102006004599A1 (de) Endgerät und Verfahren zur Aktualisierung von Programmcode eines Endgeräts
DE102020208877A1 (de) Verfahren zum Aktualisieren einer auf einer Recheneinheit auszuführenden Anwendung
DE10200902A1 (de) Schneller Systemstart für eingebettete Systeme
DE102021002079B3 (de) Verfahren zum effizienten Ablegen von Daten
DE102005008246A1 (de) Verfahren zum Konfigurieren einer programmierbaren Schaltung bzw. konfigurierbare, programmierbare Schaltungsanordnung
WO2023052166A1 (de) Verfahren zum betrieb eines informationstechnischen systems, informationstechnisches system und fahrzeug
DE102005050288A1 (de) System zur Durchführung von Softwareupdates in Embeddded Systemen sowie ein Verfahren dazu

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee