-
Hintergrund der Erfindung
-
Bereich der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Recheneinheit mit reduzierter
Startzeit. Insbesondere bezieht sich die vorliegende Erfindung auf ein
Verfahren zum Laden von Daten in einer Recheneinheit, umfassend
eine Zentraleinheit (CPU).
-
Beschreibung des Stands der
Technik
-
Konventionell
greift die CPU in einer Recheneinheit, umfassend eine CPU, einen
Cache, einen RAM und einen ROM, auf gewünschte Daten zu, indem sie
diese vom Cache liest, wenn die gewünschten Daten im Cache sind,
oder indem sie diese aus dem RAM liest, wenn die gewünschten
Daten nicht im Cache sondern im RAM sind. Wenn die gewünschten
Daten weder im Cache noch im RAM sind, kopiert die CPU die gewünschten
Daten vom ROM in den RAM, und liest dann die Daten aus dem RAM (siehe
z. B. Seite 2,
1 der offen gelegten
japanischen Patentpublikation Nr.
05-242057 ).
-
3 ist
ein Ablaufdiagramm, das ein Startverfahren für ein Betriebssystem (OS) zeigt.
-
Wenn
das Systemstartverfahren durch Einschalten des Stroms (S101) ausgelöst wird,
bestimmt die CPU eine den Daten zugeordnete Adresse (S102), um gewünschte Daten
zu lesen, und ermittelt dann folgerichtig, ob die Daten im Cache
oder im RAM sind, indem sie diese beiden Elemente in dieser Reihenfolge
(S103 und S105) überprüft. Wenn
die gewünschten
Daten im Cache sind, liest sie die CPU aus dem Cache (S104). Wenn
die gewünschten
Daten nicht im Cache sondern im RAM sind, liest sie die CPU aus
dem RAM (S108).
-
Wenn
die gewünschten
Daten weder im Cache noch im RAM sind, beginnt die CPU, notwendige Daten
(welche wenigstens gewünschte
Daten enthalten) aus dem ROM in den RAM (S106) zu kopieren, und
wartet, bis die Kopie abgeschlossen ist (S107). Nach Abschluss der
Kopie liest die CPU die gewünschten
Daten vom RAM (S108). Die CPU verarbeitet dann die gelesenen Daten
(S109).
-
Es
werden keine Daten in einem flüchtigen Speicher,
wie z. B. einem Cache oder einem RAM, zum Zeitpunkt des Startverfahrens
zurückgelassen, und
daher erfordert ein konventionelles System, dass jedes Mal das System
gestartet wird, wenn der RAM durch Kopieren von Daten aus dem ROM
in den RAM initialisiert wird (wie hierin verwendet, bedeutet „Initialisierung", für das Startverfahren
notwendige Daten in den RAM zu schreiben). Nach der Initialisierung des
RAM's führt die
CPU das Startverfahren durch Lesen der für das Startverfahren notwendigen
Daten aus dem RAM aus. Mit anderen Worten ist eine CPU in einem
konventionellen System unfähig,
mit dem Startverfahren fortzufahren, bis das Kopieren der Daten
aus dem ROM in den RAM abgeschlossen ist, und konsequenterweise
benötigt
das Startverfahren eine beachtliche Zeit.
-
Es
könnte
möglich
sein, Daten im RAM in einem nicht-flüchtigen Speicher zeitweise
zum Zeitpunkt des Aufhängens
zu speichern, und die Daten beim Fortsetzen aus einem aufgehängten Zustand zurück in den
RAM zu schreiben.
-
Allerdings
tritt auch in diesem Fall das gleiche wie das mit dem Startverfahren
verbundene Problem auf. Dies ist, dass die CPU unfähig ist,
irgendein solche Daten verwendendes Verfah ren auszuführen, bis
die im nicht-flüchtigen
Speicher gespeicherten Daten zurück
in den RAM geschrieben wurden.
-
Das
Dokument „Methode
zum Testen eines einen statischen RAM verwendenden PCs" (IBM technische
amtliche Offenlegung, IBM Corp. New York, US, Band 37, Nr. 7, 1
Juli 1994 (1994-07-01), Seite 107–108) beschreibt ein System,
in welchem der auf dem Chip angebrachte Cache als ein Speicher während des
Startverfahrens verwendet wird. Der Cacheinhalt wird nach der RAM-Initialisierung in den
RAM kopiert.
-
Zusammenfassung der Erfindung
-
Daher
ist es eine Aufgabe der vorliegenden Erfindung, die für das Startverfahren
erforderliche Zeit und die für
ein Fortsetzungsverfahren aus dem Aufhängen erforderliche Zeit in
einer Recheneinheit zu reduzieren, welche eine CPU, einen Cache,
einen RAM und einen nicht-flüchtigen
Speicher umfasst.
-
Die
vorliegende Erfindung hat die folgenden Funktionen, um die oben
erwähnte
Aufgabe zu lösen. Ein
Aspekt der vorliegenden Erfindung ist auf eine Recheneinheit mit
einer reduzierten Startzeit gerichtet, welche ein Ermittlungsmittel,
eine Schaltvorrichtung und einen Cache-Controller umfasst. Das Ermittlungsmittel
ermittelt, ob durch eine CPU zu lesende Daten im RAM sind. Abhängig von
einem Ergebnis der Ermittlung durch das Ermittlungsmittel, erlaubt
die Schaltvorrichtung der CPU, die gewünschten Daten direkt aus einem
nicht-flüchtigen
Speicher zu lesen. Der Cache-Controller steuert einen Cache so,
dass der RAM gestützt
auf den im Cache gespeicherten Cachedaten bezüglich der gewünschten
Daten initialisiert wird.
-
Gemäß dieses
Aspekts der vorliegenden Erfindung kann die CPU direkt zum Zeitpunkt
eines Starts oder zum Zeitpunkts einer Fortsetzung aus einem aufgehängten Zustand
für das
Startver fahren notwendige Daten aus dem nicht-flüchtigen Speicher beziehen und
dann unverzüglich
das Verfahren starten, ohne dass es erforderlich ist zu warten,
bis eine Kopie der Daten aus einem nicht-flüchtigen Speicher in den RAM
abgeschlossen ist. Daher kann die für ein Startverfahren oder ein
Fortsetzungsverfahren nach dem Aufhängen erforderliche Zeit reduziert
werden.
-
Darüber hinaus
wird die Ladezeit zu Zeiten reduziert, wenn die direkt aus dem nicht-flüchtigen Speicher
gelesenen Daten wieder abgerufen werden, weil der RAM gestützt auf
Cachedaten bezüglich
Daten, welche direkt durch die CPU aus dem nicht-flüchtigen
Speicher gelesen wurden, initialisiert wird. Dementsprechend kann
nicht nur die für
ein Startverfahren oder ein Fortsetzungsverfahren nach dem Aufhängen erforderliche
Zeit reduziert werden, sondern auch die für Verfahren erforderliche Zeit kann
reduziert werden, welche auf das Startverfahren oder das Fortsetzungsverfahren
folgen.
-
Diese
und andere Aufgaben, Funktionen, Aspekte und Vorteile der vorliegenden
Erfindung werden aus der folgenden detaillierten Beschreibung der
vorliegenden Erfindung ersichtlicher werden, wenn sie in Verbindung
mit den beiliegenden Zeichnungen gebracht werden.
-
Kurzbeschreibung der Zeichnungen
-
1 ist
ein Blockdiagramm, das die Konfiguration einer Recheneinheit gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
2 ist
ein Ablaufdiagramm, das den Betrieb der Recheneinheit gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt; und
-
3 ist
ein Ablaufdiagramm, das den Betrieb eines konventionellen Systems
zeigt.
-
Beschreibung der bevorzugten
Ausführungsformen
-
Eine
Ausführungsform
der vorliegenden Erfindung wird im Folgenden beschrieben.
-
1 ist
ein Blockdiagramm, das die Konfiguration einer Recheneinheit gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt. Die Recheneinheit enthält eine
CPU 11, einen Cache 12, einen ROM 13,
einen RAM 14, eine Schaltvorrichtung 16 und einen
Cache-Controller 19. Diese einzelnen Elemente sind miteinander
z. B. durch einen Bus verbunden.
-
Zuerst
werden die Aufgaben der einzelnen Elemente zum Startzeitpunkt beschrieben.
-
Um
ein Startverfahren auszuführen,
greift die CPU 11 auf Daten für ein Startverfahren zu. Dieser Zugriff
wird durch Ausstellen einer Adresse im RAM 14 ausgeführt.
-
Der
Cache 12 ist ein flüchtiger
Speicher, so dass alle darin gehaltenen Daten verloren sind, wenn der
Strom ausgeschaltet wird. Der Cache 12 ist im Allgemeinen
in der Speicherkapazität
kleiner als der RAM 14, hat aber eine schnellere Zugriffsrate
als der RAM 14. Die durch die CPU 11 aus dem RAM 14, etc.,
gelesenen Daten werden zeitweise im Cache 12 gespeichert,
und die CPU 11 greift erst auf den Cache zu, wenn sie Daten
erhält.
-
Der
Cache 12 speichert Cache-Kennzeichnungen 17 mit
zugehörigen
Cachedaten, welche zeitweise gespeicherte Daten sind. Die Cache-Kennzeichnung 17 enthält ein dirty
bit zum Angeben, ob Cachedaten aktualisiert wurden oder nicht. Wenn Daten über eine
vorgegebene Adresse im RAM 14 im Cache 12 als
Cachedaten gespeichert werden, wird die Adresse im RAM 14 in
einer Cache-Kennzeichnung 17 mit solchen zugeordneten Cachedaten
gespeichert. Zusätzlich
wird das dirty bit 18 der Cache-Kennzeichnung 17 mit den zugehörigen Cachedaten
auf „dirty" gesetzt, wenn diese
Cachedaten durch die CPU 11 aktualisiert werden. Wenn Daten im
Cache 12 ersetzt werden, muss eine auf Cachedaten ausgeführte Aktualisierung
an den Originaldaten im RAM 14 wiedergegeben werden. Zu
diesem Zweck schreibt die CPU 11 für jeden Teil der Cachedaten,
dessen dirty bit 18 auf „dirty" gesetzt ist, die Daten zur Adresse
im RAM 14 mit den aktualisierten Cachedaten zurück, wie
durch die Cache-Kennzeichnung 17 angegeben.
-
Der
ROM 13 hat eine langsamere Zugriffsrate als der RAM 14,
aber da der ROM 13 ein nicht-flüchtiger Speicher ist, der Daten
speichern kann, auch wenn der Strom ausgeschaltet wird, wird der
ROM 13 verwendet, um für
ein Startverfahren notwendige Daten zu speichern. In der vorliegenden Ausführungsform
werden für
das Startverfahren notwendige Daten, die im ROM 13 gespeichert
sind, direkt der CPU 11 durch die Funktion der Schaltvorrichtung 16 zur
Verfügung
gestellt, ohne zuerst in den RAM 14 kopiert zu werden,
wie später
beschrieben werden wird.
-
Der
RAM 14 ist ein flüchtiger
Speicher, so dass darin gespeicherte Daten verloren gehen, wenn der
Strom ausgeschaltet wird, und hat im Allgemeinen eine größere Speicherkapazität als der
Cache 12. Zusätzlich
ist die Zugriffsrate des RAM's 14 langsamer
als die des Caches 12 und schneller als die des ROM's 13. Wenn
die CPU 11 Daten verarbeitet, wird ein Teil der Daten aus
dem ROM 13 in den RAM 14 kopiert, und die CPU 11 greift
auf die Daten zu, die in den RAM 14 kopiert wurden. Es
ist zu beachten, dass die Initialisierung des RAM's 14 (d.h.,
für das Startverfahren
notwendige Daten werden in den RAM geschrieben) erforderlich ist,
da keine Daten im RAM 14 zum Zeitpunkt eines Systemstarts
gespeichert sind, und daher für
das Startverfahren notwendige Daten aus dem ROM 13 in den
RAM 14 kopiert werden.
-
Eine
RAM-Datenfeststell-Bittabelle 15 ist im RAM 14 gespeichert,
um zu ermitteln, ob Daten im RAM 14 gespeichert sind. Ein
Bit der RAM-Datenfeststell-Bittabelle 15 (im Folgenden
als „RAM-Datenermittlungsbit" bezeichnet) korrespondiert
zu allen 32 Bytes des Speicherbereichs des RAM's 14. Wenn keine Daten in einem
zugeordnetem Speicherbereich des RAM's 14 gespeichert sind, ist
das RAM-Datenermittlungsbit „0". Sobald Daten in
solch einen Bereich geschrieben werden, wechselt das RAM-Datenermittlungsbit
auf „1". Zum Zeitpunkt eines
Systemstarts sind keine Daten im RAM 14 gespeichert, und daher
sind alle Bits der RAM-Datenfeststell-Bittabelle 15 „0". Durch Bezugnahme
auf die RAM-Datenfeststell-Bittabelle 15 kann ohne Verzögerung ermittelt werden,
ob Daten im RAM 14 gespeichert sind oder nicht.
-
Wenn
die CPU 11 versucht, auf eine festgelegte Adresse im RAM 14 zu
zugreifen, ermittelt die Schaltvorrichtung 16 durch Bezugnahme
auf die RAM-Datenfeststell-Bittabelle 15, ob Daten in der Adresse
im durch die CPU 11 gekennzeichnetem RAM 14 vorliegen.
Wenn alle Daten vorliegen, erlaubt die Schaltvorrichtung 16 der
CPU 11, die Daten aus dem RAM 14 zu lesen. Wenn
keine Daten vorliegen, erlaubt die Schaltvorrichtung 16 der
CPU 11, die zur Adresse im durch die CPU 11 gekennzeichnetem RAM 14 zugeordneten
Daten im ROM 13 direkt zu lesen. In dem Fall, wenn die
Adresse im durch die CPU 11 gekennzeichnetem RAM 14 nicht
identisch mit einer Adresse im ROM 13 ist, über die
zur Adresse im RAM 14 zugeordnete Daten gespeichert sind,
könnte die
Schaltvorrichtung 16 eine Adresse im ROM 13 ermitteln,
die mit der Adresse im durch die CPU 11 gekennzeichnetem
RAM 14 korrespondiert, und erlaubt der CPU 11,
auf diese Adresse im ROM 13 zuzugreifen. Die Daten, die
direkt durch die CPU 11 aus dem ROM 13 gelesen
werden, werden zeitweise im Cache 12 gespeichert.
-
Wenn
es die Schaltvorrichtung 16 der CPU 11 erlaubt
hat, Daten direkt aus dem ROM 13 zu lesen, kontrolliert
der Cache-Controller 19 eine
Cache-Kennzeichnung 17 im Cache 12 wie folgt.
Besonders der Cache-Controller 19 registriert in einer Cache-Kennzeichnung 17 die
Adresse im RAM 14, auf welche die CPU 11 ursprünglich beabsichtigte,
zu zugreifen, und setzt auch ein dirty bit 18 der Cache-Kennzeichnung 17 auf „dirty". Diese Funktion des
Cache-Controllers 19 und des Mechanismuses des Caches 12 realisiert
zusammen eine Initialisierung des RAM's 14 wie im Folgenden beschrieben.
-
Besonders
das Prinzip der Initialisierung des RAM's 14 der vorliegenden Ausführungsform
ist beschrieben. In einem konventionellen System wird die Initialisierung
des RAM's 14 durch
Kopieren der für ein
Startverfahren notwendigen Daten aus dem ROM 13 in den
RAM 14 ausgeführt.
Andererseits wird die Initialisierung des RAM's 14 in der vorliegenden Ausführungsform
nicht zum Zeitpunkt eines Startverfahrens ausgeführt, da für ein Startverfahren notwendige
Daten direkt durch die CPU 11 aus dem ROM 13 gelesen
werden. Währenddessen,
gemäß des Mechanismuses
eines bestehenden Caches, wird das zu den Cachedaten zugeordnete
dirty bit auf „dirty" gesetzt, wenn Cachedaten
aktualisiert werden. Wenn Daten im Cache ersetzt werden, werden
für jeden
Teil der Cachedaten, dessen dirty bit auf „dirty" gesetzt ist, die im RAM gespeicherten
Originaldaten mit den aktualisierten Cachedaten zurück geschrieben.
In der vorliegenden Ausführungsform
realisiert der Cache-Controller 19 eine Initialisierung
des RAM's 14 durch
effektives Anwenden des Mechanismuses eines bestehenden Caches durch
Kontrollieren der Cache-Kennzeichnung 17 in der oben beschriebenen Art
und Weise. Das heißt,
dass in der vorliegenden Ausführungsform
direkt durch die CPU 11 aus dem ROM 13 gelesene
Daten zuerst im Cache 12 gespeichert werden, und danach
werden alle solche Daten (ungeachtet, ob die Daten überhaupt
aktualisiert wurden oder nicht) über
ihre zugehörigen
Originaladressen im RAM 14 gespeichert, wodurch eine Initialisierung
des RAM's 14 ausgeführt wird.
-
Als
Nächstes,
mit Bezug auf das in 2 gezeigte Ablaufdiagramm, wird
der Betrieb der Recheneinheit zum Startzeitpunkt beschrieben.
-
Wenn
das Systemstartverfahren durch Einschalten des Stroms (S201) initialisiert
wird, bestimmt die CPU 11 eine den gewünschten Daten (S202) zugeordnete
Adresse, um gewünschte
Daten zu lesen, und ermittelt dann, ob die Daten im Cache 12 (S203)
sind. Wenn die Daten im Cache 12 wären, würde die CPU 11 sie
lesen (S204), aber es gibt keine Daten im Cache 12 zum
Startzeitpunkt. Wenn daher die CPU 11 versucht, auf eine
festgelegte Adresse im RAM 14 zu zugreifen, ermittelt die
Schaltvorrichtung 16 durch Bezugnahme auf die RAM-Datenfeststell-Bittabelle 15,
ob Daten über
die festgelegte Adresse im RAM 14 (S205) vorliegen. Wenn
Daten im RAM 14 vorliegen würden, würde die Schaltvorrichtung 16 der
CPU 11 erlauben, sie zu lesen (S206), aber es gibt zum
Startzeitpunkt keine Daten im RAM 14. Daher erlaubt die
Schaltvorrichtung 16 der CPU 11 stattdessen die
Daten direkt aus dem ROM 13 zu lesen (S207). Die an diesem
Punkt gelesenen Daten werden im Cache 12 als Cachedaten gespeichert,
und daher kontrolliert der Cache-Controller 19 eine
zu solchen im Cache 12 (S208) gespeicherten Cachedaten
zugeordnete Cache-Kennzeichnung 17. Die CPU 11 verarbeitet
dann die gelesenen Daten (S209).
-
Wie
oben gemäß der vorliegenden
Ausführungsform
beschrieben, wird die Startzeit zum Zeitpunkt des Systemstartverfahrens,
das Verfahren zum Kopieren von Daten aus dem ROM 13 in
den RAM 14, reduziert, da die CPU 11 fähig ist,
das Startverfahren ohne Notwendigkeit des Ausführens zu initialisieren. Zusätzlich,
da die direkt durch die CPU 11 aus dem ROM 13 gelesenen
Daten zeitweise im Cache 12 gespeichert werden und danach über ihre
zugehörigen
Originaladressen im RAM 14 gespeichert werden, ist es möglich, eine
Initialisierung des RAM's 14 zu
realisieren und auch die Zugriffsrate auf Daten nach dem Startverfahren
zu verbessern.
-
Oben
ist der Betrieb einer Recheneinheit zum Zeitpunkt eines Systemstarts
beschrieben, der unverzüglich
nach dem Einschalten des Stroms erfolgt, aber die vorliegende Erfindung
kann auch in ähnlicher
Weise zum Zeitpunkt des Startens eines Anwendungsprogramms oder
zum Zeitpunkt des Ausführens
eines Fortsetzungsverfahrens nach dem Aufhängen Anwendung finden. In solchen
Fällen kann
auch das Verfahren zum Kopieren von Daten aus einem nicht-flüchtigem
Speicher in den RAM 14 weggelassen werden, und daher ist
es möglich,
die Startzeit eines Anwendungsprogramms und die Fortsetzungszeit
nach dem Aufhängen
zu reduzieren. Im Fall des Startens einer Anwendung ist es vorzuziehen,
Bits der RAM-Datenfeststell-Bittabelle 15 im Voraus zu
säubern,
die Bereichen im RAM 14 zugeordnet sind, in die Daten solch
einer Anwendung zu laden sind.
-
Ferner
führt die
CPU 11 in der vorliegenden Ausführungsform ein Startverfahren
durch Verwenden der im ROM 13 gespeicherten Daten aus,
aber die vorliegende Erfindung ist nicht darauf beschränkt. Die
Erfindung kann auch in dem Fall angewendet werden, bei dem die CPU 11 ein
Startverfahren durch Verwenden der in irgendeinem nicht-flüchtigen
Speicher gespeicherten Daten ausführt. Z. B. können dieselben
vorteilhaften Effekte erreicht werden, auch wenn die Erfindung in
dem Fall angewendet wird, bei dem die CPU 11 ein in einer
Speicherkarte gespeichertes Anwendungsprogramm startet.
-
In
der vorliegenden Ausführungsform
ermittelt die Schaltvorrichtung 16, ob durch die CPU 11 zu lesende
Daten im RAM 14 sind, aber die vorliegende Ausführungsform
ist nicht darauf beschränkt.
Mittel zum Ermitteln, ob durch die CPU 11 zu lesende Daten
im RAM 14 sind, können
unabhängig
von der Schaltvorrichtung 16 zur Verfügung gestellt werden. Ferner
kann ein Mittel zum Ermitteln, ob durch die CPU 11 zu lesende
Daten im RAM 14 sind, die CPU 11 sein.
-
In
der vorliegenden Ausführungsform
ermittelt die Schaltvorrichtung 16 durch Bezugnahme auf die
RAM-Datenfeststell-Bittabelle 15,
ob durch die CPU 11 zu lesende Daten im RAM 14 sind,
aber die Ermittlung kann auf andere Arten erfolgen. Z. B. kann durch
Vorbereiten und durch Bezugnahme auf eine Ein-Bit-Kennzeichnung zum Angeben, ob alle
Daten in einen Bereich im RAM 14 geschrieben werden, ermittelt
werden, ob Daten im RAM 14 vorliegen oder nicht. Ferner
kann die CPU 11 in der Praxis auf den Speicherbereich des
RAM's 14 zugreifen,
um zu ermitteln, ob Daten im RAM 14 sind.
-
In
der vorliegenden Ausführungsform
wird die Initialisierung des RAM's 14 in
einer Art und Weise realisiert, so dass der Cache-Controller 19 die
dirty bits 18 der Cache-Kennzeichnung 17 kontrolliert, aber
die vorliegende Erfindung ist nicht darauf beschränkt. Z.
B. kann der Cache-Controller 19 alle Cachedaten, die aus
dem Cache 12 zum Zeitpunkt des Ersetzens der Cachedaten
gelöscht
werden, in den RAM 14 schreiben.
-
In
der vorliegenden Ausführungsform
ist die RAM-Datenfeststell-Bittabelle 15 im RAM 14 gespeichert,
aber die RAM-Datenfeststell-Bittabelle 15 kann in jeder
von der RAM 14 verschiedenen Speichervorrichtung gespeichert
werden.
-
Die
Schaltvorrichtung 16 kann realisiert werden, indem es der
CPU 11 erlaubt wird, ein Programm auszuführen, das
es der CPU 11 erlaubt, wie eine Schaltvorrichtung 16 zu
funktionieren, oder ein Teil oder alle der Funktionen der Schaltvorrichtung 16 können durch
Hardware realisiert werden. Dasselbe trifft auf den Cache-Controller 19 zu.
-
Während die
Erfindung im Detail beschrieben wurde, ist die vorangehende Beschreibung
in allen Aspekten veranschaulichend und nicht einschränkend. Es
ist verständlich,
dass zahlreiche andere Modifikationen und Variationen entworfen
werden können,
ohne vom Anwendungsbereich der Erfindung abzuweichen, wie in den
angehängten
Ansprüchen
definiert.