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