-
Die
Erfindung betrifft ein nichtflüchtiges Speicherbauelement,
eine Informationsverarbeitungsvorrichtung und ein zugehöriges Steuerverfahren.
-
Informationsverarbeitungsschaltungen,
welche einen Prozessor umfassen, können für den Betrieb einen Programmcode
erfordern. Der Programmcode kann in einem Speicher gespeichert sein.
Herkömmliche
Speichertypen, welche Programmcodes speichern, umfassen Nur-Lesespeicher (ROM)
und Speicher mit direktem Zugriff (RAM). Daten können aus dem ROM nur gelesen
werden und nicht in das ROM geschrieben werden. Daten können in
das RAM-Bauelement geschrieben und aus dem RAM-Bauelement gelesen
werden. Im Gegensatz zu Daten, welche im ROM gespeichert sind, können im RAM-Bauelement
gespeicherte Daten verloren gehen, wenn die Energieversorgung für das RAM
unterbrochen wird, z.B. durch Abschalten der Informationsverarbeitungsschaltung.
-
Nichtflüchtige Speicherbauelemente
können die
Vorteile der RAM-Bauelemente
und der ROM-Bauelemente dadurch kombinieren, dass das Schreiben
von Daten in das nichtflüchtige
Speicherbauelement und/oder das Lesen von Daten aus dem nichtflüchtigen
Speicherbauelement erlaubt wird, während das nichtflüchtige Speicherbauelement
seinen gespeicherten Inhalt auch behält, wenn die Energieversorgung
beendet wird.
-
In
einem herkömmlichen
nichtflüchtigen Speicher,
z.B. einem NOR-Typ-Flashspeicher,
kann ein Lesevorgang ungefähr
100ns dauern, ein Programmiervorgang kann einige Hundert Mikrosekunden
erfordern und eine Löschperiode
für einen
Block, d.h. einen Sektor, kann einige Millisekunden dauern.
-
Ein
Typ herkömmlicher
Informationsverarbeitungsvorrichtungen umfasst einen Prozessor mit Pipelineverarbeitungsfunktionalität. Es kann
für den Prozessor
schwierig sein, Aufgaben in einer einzigen Taktsignalperiode abzuschließen, da
ein Schreibvorgang oder ein Löschvorgang
für ein
nichtflüchtiges Speicherbauelement,
welches Programmcode umfasst, eine längere Verarbeitungszeit als
eine einzelne Taktperiode benötigt.
In anderen Worten ausgedrückt,
es kann eine Pipelineblockade auftreten, wenn der Prozessor auf
Speicherplatz von einem Speicherbauelement, z.B. einem nichtflüchtigen Speicherbauelement,
warten muss, was einem Fortschreiten der Pipelineanweisungen ohne
Blockade steht.
-
Benötigt der
Prozessor einen Speicher, um Lesevorgänge oder Schreivorgänge auszuführen, während der
Speicher einen Schreibvorgang ausführt, dann kann ein korrekter
Betrieb des Prozessors nicht sichergestellt werden, da der Speicher
die Anforderung vom Prozessor nicht quittieren kann. Solche Verarbeitungsfehler
können
auch als Datenstörungen
bezeichnet werden.
-
Herkömmliche
Speicherbauelemente können
die Fähigkeit
umfassen, einen Lesevorgang und einen Schreibvorgang gleichzeitig
auszuführen,
was als Lesen-während-Schreiben-Modus
bezeichnet wird. Ein Speicher mit einem Lesen-während-Schreiben-Modus kann
einen Lesevorgang gleichzeitig mit einem Schreibvorgang ausführen, wodurch
die erforderliche Zeitdauer, um den Lesevorgang und den Schreibvorgang
auszuführen,
reduziert werden kann. Die Implementierung des Lesen-während-Schreiben-Modus kann
verschiedene periphere Schaltungen erfordern, welche in das Speicherbauelement, z.B.
das nichtflüchtige
Speicherbauelement, eingebaut werden, und die Layoutstruktur des
Speicherbauelements kann Modifikationen erfordern, z.B. um die erforderlichen
peripheren Schaltungen zu adaptieren. Zudem können die zusätzlichen
peripheren Schaltungen zusätzliche
Energie benötigen,
verglichen mit Speicherbauelementen ohne diese zusätzlichen
Schaltungen, und ein Lesevorgang und/oder ein Schreibvorgang können durch
Rauschen beeinflusst werden, z.B. von der zusätzlich benötigten Energie, welches die
Speicherfunktionen negativ beeinflussen kann, z.B. durch ein zunehmendes
Risiko von Datenstörungen.
-
Es
ist Aufgabe der Erfindung, ein nichtflüchtiges Speicherbauelement,
eine Informationsverarbeitungsvorrichtung und ein zugehöriges Steuerverfahren
anzugeben, welche die genannten Unzulänglichkeiten des Standes der
Technik ganz oder teilweise vermeiden.
-
Die
Erfindung löst
diese Aufgabe durch ein nichtflüchtiges
Speicherbauelement mit den Merkmalen des Patentanspruchs 1 oder
52 und durch eine Informationsverarbeitungsvorrichtung mit den Merkmalen
des Patentanspruchs 11, 25 oder 51 sowie durch ein zugehöriges Steuerverfahren
mit den Merkmalen des Patentanspruchs 26 oder 37.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend
beschrieben. Es zeigen:
-
1 ein
Blockschaltbild einer Informationsverarbeitungsvorrichtung,
-
2 ein
Schaltbild eines Ausführungsbeispiels
einer Modussteuerschaltung aus 1,
-
3 ein
Zeitablaufdiagramm für
Signale der Informationsverarbeitungsvorrichtung gemäß 1,
-
4 ein
weiteres Zeitablaufdiagramm für Signale
der Informationsverarbeitungsvorrichtung gemäß 1,
-
5 ein
Blockschaltbild einer weiteren Informationsverarbeitungsvorrichtung,
-
6 ein
Flussdiagramm eines Steuerverfahrens und
-
7 ein
Flussdiagramm eines weiteren Steuerverfahrens.
-
1 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
einer Informationsverarbeitungsvorrichtung 100 mit einer
Prozessoreinheit 110 und einem nichtflüchtigen Speicherbauelement 120.
Erfindungsgemäß kann die
Informationsverarbeitungsvorrichtung 100 als ein beliebiges
Bauelement mit einer Prozessoreinheit und einem nichtflüchtigen Speicherbauelement
ausgeführt
sein. Die Informationsverarbeitungsvorrichtung 100 kann
beispielsweise ein Computersystem, eine Smartcard, einen persönlichen
digitalen Assistenten (PDA), ein Mobiltelefon usw. umfassen.
-
In
erfindungsgemäßen Ausführungsformen kann
das nichtflüchtige
Speicherbauelement 120 einen elektrisch löschbaren
und programmierbaren Nur-Lesespeicher (EEPROM), ein EPROM und/oder einen
Flashspeicher umfassen. Nichtflüchtige Speicherbauelemente
verlieren keine im Speicher gespeicherten Daten, wenn die elektrische
Energieversorgung unterbrochen und/oder abgeschaltet wird.
-
Die
Prozessoreinheit 110 kann einen Codespeicher 111,
eine Modussteuerschaltung 112, einen Prozessor 113 und
einen Taktgenerator 114 umfassen, welche über einen
Datenbus und/oder einen Adressenbus miteinander verbunden sind.
-
Der
Codespeicher 111 kann Programmcode speichern, welcher im
Prozessor 113 verarbeitet wird. Die Modussteuerschaltung 112 kann
einen Programmierbefehl PGM zwischenspeichern, welcher vom Prozessor 113 basierend
auf einem Betriebsstatus des nichtflüchtigen Speicherbauelements 120 ausgegeben
wird, z.B. ob eine Anweisungsausführung verfügbar ist.
-
Bei
einer anderen erfindungsgemäßen Ausführungsform
kann die Modussteuerschaltung 112 auch Speichersteuerbefehle
zwischenspeichern, z.B. einen Löschbefehl,
welche innerhalb einer Taktperiode ausgeführt werden.
-
2 zeigt
ein Schaltbild eines Ausführungsbeispiels
der Modussteuerschaltung 112 aus 1. Wie aus 2 ersichtlich
ist, kann die Modussteuerschaltung 112 eine erste und einen
zweite Flip-Flopschaltung 150 und 151, eine Logikschaltung 152 und
ein UND-Gatter 153 umfassen. Das UND-Gatter 153 kann
ein Taktsignal CLK, ein Beschäftigt-Signal
WBUSY, ein Schreibsignal BWRITE und ein Steuersignal M_CTRL empfangen
und ein Taktsignal M_CLK ausgeben. Die erste Flip- Flopschaltung 150 kann
in Reaktion auf ein Rücksetzsignal
RESET zurückgesetzt
werden. Die Logikschaltung 152 kann in Reaktion auf das
Taktsignal CLK, das Beschäftigt-Signal
WBUSY, das Schreibsignal BWRITE und/oder das Steuersignal M_CTRL
ein Impulssignal ausgeben. Das Steuersignal M_CTRL kann aktiviert
werden, wenn die Modussteuerschaltung 112 vom Prozessor 113 ausgewählt wird.
Die zweite Flip-Flopschaltung 151 kann in Reaktion auf das
von der Logikschaltung 152 ausgegebene Impulssignal eine
Ausgabe der ersten Flip-Flopschaltung 150 zwischenspeichern
und das Programmierbefehlsignal PGM ausgeben. Die Flip-Flopschaltung 151 kann
von einer abfallenden Flanke des Beschäftigt-Signals WBUSY zurückgesetzt
werden, welches vom nichtflüchtigen
Speicherbauelement 120 empfangen werden kann. Das von der
Modussteuerschaltung 112 gelieferte Programmierbefehlsignal PGM
kann an das nichtflüchtige
Speicherbauelement 120 ausgegeben werden.
-
Wie
aus 1 ersichtlich ist, kann der Prozessor 113 in
weiterer Ausgestaltung sequentiell Programmcode lesen und ausführen, welcher
im Codespeicher 111 gespeichert ist. Der Taktgenerator 114 kann
das Taktsignal CLK erzeugen, welches vom Codespeicher 111,
der Modussteuerschaltung 112, dem Prozessor 113 und/oder
jedem anderen Bauelement verwendet wird, an welches er angeschlossen ist.
Der Taktgenerator 114 kann die Erzeugung des Taktsignals
CLK anhalten, wenn ein Taktsperrsignal CLK_DSAB vom nichtflüchtigen
Speicherbauelement 120 aktiviert wird, d.h. auf einen ersten
logischen Pegel gesetzt wird. Der Taktgenerator 114 kann
das Taktsignal CLK wieder erzeugen, wenn ein Taktwecksignal CLK_WK
aktiviert wird.
-
In
weiterer erfindungsgemäßer Ausgestaltung
kann die Prozessoreinheit 110 Befehlssignale PGM, ERA,
BWRITE, das Taktsignal CLK und/oder ein Chipauswahlsignal CS an
das nichtflüchtige Speicherbauelement 120 ausgeben.
-
In
weiterer erfindungsgemäßer Ausgestaltung
kann das nichtflüchtige
Speicherbauelement 120 Lese-/Schreib-/Löschvorgänge basierend auf einem Steuersignal
ausführen,
z.B. auf dem Programmierbefehlsignal PGM, auf einem Löschbefehl
ERA, auf dem Taktsignal CLK, auf dem Chipauswahlsignal CS, auf dem
Schreibsignal BWRITE, auf einem Datensignal DAT, auf einem Adressensignal
ADR von der Prozessoreinheit 110 usw.
-
Obwohl
das beschriebene nichtflüchtige Speicherbauelement 120 im
gezeigten Beispiel zwei Speicherbänke 121 und 122 umfasst,
kann es in anderen Ausführungsformen
auch eine andere Anzahl von Speicherbänken umfassen.
-
In
weiterer Ausgestaltung der Erfindung kann, wie aus 1 weiter
ersichtlich ist, jede der Speicherbänke 121 und 122 Daten-
und Speicherzellen umfassen, welche in Zeilen und Spalten angeordnet
sind. Das nichtflüchtige
Speicherbauelement 120 kann einen ersten X-Decoder 128 zum
Auswählen von
Zeilen einer Bank-0 121, einen ersten Y-Decoder 123 zum Auswählen von
Spalten der Bank-0 121 und einen ersten Abtastverstärker 125 zum
Abtasten und Verstärken
von Daten umfassen, welche in einer Speicherzelle der Bank-0 121 gespeichert
sind, die vom ersten X-Decoder 128 und vom ersten Y-Decoder 125 ausgewählt wird,
wobei die Bank-0 alternativ als Datenspeicher 121 und/oder
Speicherbank 121 bezeichnet werden kann. Zudem kann das
nichtflüchtige
Speicherbauelement 120 einen zweiten X-Decoder 131 zum
Auswählen
von Zeilen einer Bank-1 122, welche alternativ als Datenspeicher 122 und/oder
Speicherbank 122 bezeichnet werden kann, einen zweiten
Y-Decoder 124 zum Auswählen von
Spalten der Bank-1 122 und einen zweiten Abtastverstärker 127 zum
Abtasten und Verstärken
von Daten umfassen, welche in einer Speicherzelle der Bank-1 122 gespeichert
sind, die vom zweiten X-Decoder 131 und vom zweiten Y-Decoder 127 ausgewählt wird.
-
In
weiterer Ausgestaltung der Erfindung kann ein Generator 130 zum
Erzeugen höherer Spannungen
vorgesehen sein, die er an die Speicherbänke 121 und 122 ausgibt
und über
einem Schwellwert liegen, der für
bestimmte Vorgänge
erforderlich ist, wie z.B. zum Schreiben von Daten, zum Lesen von
Daten, zum Löschen
von Daten usw. Ein Schreibpuffer 126 kann temporär in die
Speicherbänke 121 und 122 zu
schreibende Daten speichern. Wenn ein einziger Generator für höhere Spannungen und
ein einziger Schreibpuffer im nichtflüchtigen Speicherbauelement 120 enthalten
sind, können
beide Speicherbänke 121 und 122 den
Generator für
höhere
Spannungen und den Schreibpuffer benutzen.
-
In
weiterer Ausgestaltung der Erfindung kann eine erste Steuerschaltung 129 den
ersten X-Decoder 128, den ersten Y-Decoder 123,
den Schreibpuffer 126 und den Generator 130 für höhere Spannungen
in Reaktion auf ein Steuersignal von einer Schreibsequenzsteuerschaltung 139 und/oder eine
Adresse von einer ersten Adressenauswahlschaltung 133 so
steuern, dass Daten DAT von der Prozessoreinheit 110 in
der Bank-0 121 gespeichert werden. Eine zweite Steuerschaltung 132 kann
den zweiten X-Decoder 131, den zweiten Y-Decoder 124, den
Schreibpuffer 126 und den Generator 130 für höhere Spannungen
in Reaktion auf ein Steuersignal von der Schreibsequenzsteuerschaltung 139 und/oder
eine Adresse von einer zweiten Adressenauswahlschaltung 138 so
steuern, dass Daten DAT von der Prozessoreinheit 110 in
der Bank-1 122 gespeichert werden.
-
In
weiterer Ausgestaltung der Erfindung können, wie aus 1 ersichtlich
ist, erste und zweite Leseadressenpuffer 134 und 136 und
erste und zweite Schreibadressenpuffer 135 und 137 ein
Adressensignal ADR speichern, welches von der Prozessoreinheit 110 empfangen
wird. Die erste Adressenauswahlschaltung 133 kann das im
ersten Leseadressenpuffer 134 und im ersten Schreibadressenpuffer 135 gespeicherte
Adressensignal an die erste Steuerschaltung 129 ausgeben.
Die zweite Adressenauswahlschaltung 138 kann das im zweiten
Leseadressenpuffer 136 und im zweiten Schreibadressenpuffer 137 gespeicherte
Adressensignal der zweiten Steuerschaltung 132 zur Verfügung stellen.
-
In
weiterer Ausgestaltung der Erfindung kann die Schreibsequenzsteuerschaltung 139 Steuersignale
zum Steuern der ersten und zweiten Adressenauswahlschaltung 133 und 138 und/oder
der ersten und zweiten Steuerschaltung 129 und 132 in
Reaktion auf wenigstens ein Steuersignal erzeugen, z.B. in Reaktion
auf die Signale PGM, ERA und BWRITE, das Chipauswahlsignal CS, ein
Bestätigungssignal
CONF, das Taktsignal CLK von der Prozessoreinheit 110 usw.
Zudem kann die Schreibsequenzsteuerschaltung 139 das Beschäftigt-Signal WBUSY
aktivieren, d.h. auf den ersten logischen Pegel setzen, während Daten
in die Bank-0 121 und/oder
in die Bank-1 122 geschrieben werden. Das Beschäftigt-Signal WBUSY kann
von einer Zustandssteuerschaltung 140 und/oder von der
Modussteuerschaltung 112 der Prozessoreinheit 110 empfangen werden.
-
Die
Zustandssteuerschaltung 140 kann das Taktsperrsignal CLK_DSAB
und/oder das Taktwecksignal CLK_WK zum Steuern des Taktgenerators 114 der
Prozessoreinheit 110 in Reaktion auf wenigstens ein Steuersignal
erzeugen, z.B. in Reaktion auf die Signale PGM, ERA und BWRITE von
der Prozessoreinheit 110, auf das Beschäftigt-Signal WBUSY von der
Schreibsequenzsteuerschaltung 139 usw.
-
3 zeigt
ein beispielhaftes Zeitablaufdiagramm für die Informationsverarbeitungsvorrichtung 100 gemäß 1.
Gemäß diesem
Ausführungsbeispiel
kann die Prozessoreinheit 110 einen Programmierbefehl an
das nichtflüchtige
Speicherbauelement 120 während eines Pro grammiervorgangs
im nichtflüchtigen
Speicherbauelement 120 ausgeben.
-
In
weiterer Ausgestaltung der Erfindung kann, wie aus 3 ersichtlich
ist, der Prozessor 113 ein Adressensignal für die Modussteuerschaltung 112 an
den Adressbus ausgeben, wenn detektiert wird, dass ein aus dem Codespeicher 111 ausgelesener
Befehl ein Programmierbefehl P_PGM ist. Wird die Modussteuerschaltung 112 vom
Prozessor 113 ausgewählt,
dann kann das Steuersignal M_CLK aktiviert werden. Ist das Steuersignal
M_CLK aktiviert, dann kann die Logikschaltung 152 das Impulssignal ausgeben,
da das Beschäftigt-Signal
WBUSY beispielsweise auf einem zweiten logischen Pegel ist. Die
zweite Flip-Flopschaltung 151 kann
in Reaktion auf das Impulssignal von der Logikschaltung 152 ein in
der Flip-Flopschaltung 150 zwischengespeichertes Signal
an der abfallenden Flanke des Taktsignals CLK als Programmiersignal
PGM ausgeben.
-
In
weiterer Ausgestaltung der Erfindung können eine Schreibadresse und
Daten auf den Adressbus bzw. den Datenbus geladen werden, so dass darauf über die
entsprechenden Busse das nichtflüchtige
Speicherbauelement 120 Zugriff erhält, wenn das Chipauswahlsignal
CS aktiviert ist. Die Schreibadresse kann zur Bestimmung einer Speicherbank
benutzt werden, z.B. der Bank-0 121. Das Adressensignal
ADR von der Prozessoreinheit 110 kann im Schreibadressenpuffer 135 des
nichtflüchtigen
Speicherbauelements 120 gespeichert werden.
-
Programmcode
und Daten können
auf den Adressbus und den Datenbus geladen werden, wodurch der Prozessor 113 zur
Ausführung
des nächsten
Befehls freigegeben wird. Der Prozessor 113 kann wiederum
das Adressensignal zum Auswählen der
Modussteuerschaltung 112 ausgeben. Die Modussteuerschaltung 112 kann
das Bestätigungssignal CONF
in Reaktion auf das Adressensignal des Prozessors 113 an
das nichtflüchtige
Speicherbauelement 120 ausgeben.
-
Wie
aus 3 ersichtlich ist, kann zu einem Zeitpunkt A,
wenn das Bestätigungssignal
CONF von der Prozessoreinheit 110 an das nichtflüchtige Speicherbauelement 120 angelegt
wird, ein Programmiervorgang beginnen. Die Schreibsequenzsteuerschaltung 139 kann
das Beschäftigt-Signal WBUSY
aktivieren. Die erste Adressenauswahlschaltung 133 kann
die Adresse an die erste Steuerschaltung 129 ausgeben,
welche im ersten Schreibadressenpuffer 135 gespeichert
ist. Entsprechend wird gesteuert von der ersten Steuerschaltung 129 ein Programmiervorgang
für die
Bank-0 121 ausgeführt. Ist
das Beschäftigt-Signal
WBUSY in einem aktivierten Zustand, dann kann die Modussteuerschaltung 112 die
Ausgabe des nächsten
Programmcodes vom Prozessor 113 verzögern. Nachdem das nichtflüchtige Speicherbauelement 120 den
Programmiervorgang ausgeführt
hat, kann die Prozessoreinheit 110 den nächsten Programmcode
vom Codespeicher 111 empfangen und ausführen.
-
Wie
aus 3 ersichtlich ist, kann zu einem Zeitpunkt B,
wenn das nichtflüchtige
Speicherbauelement 120 den Programmiervorgang für die Bank-0 121 ausführt, z.B.
einen Schreib-/Lesevorgang, der nächste Programmierbefehl P_PGM
vom Prozessor 113 in der ersten Flip-Flopschaltung 150 aus 2 zwischengespeichert
werden.
-
Im
Intervall zwischen dem Zeitpunkt B und einem Zeitpunkt C kann der
Prozessor 113 eine Schreibadresse an das nichtflüchtige Speicherbauelement 120 ausgeben
und das Chipauswahlsignal CS freigeben.
-
Zum
Zeitpunkt C kann die Zustandssteuerschaltung 140 das Beschäftigt-Signal
WBUSY aktivieren, wenn das Chipauswahlsignal CS aktiviert ist. Ist
das Schreibsignal BWRITE auf dem ersten logischen Pegel, z.B. einem
niedrigen logischen Pegel oder einem hohen logischen Pegel, dann
kann die Zustandssteuerschaltung 140 das Taktsperrsignal CLK_DSAB
aktivieren. Führt
das nichtflüchtige Speicherbauelement 120 einen
Schreibvorgang aus und sind das Chipauswahlsignal CS und das Schreibsignal
BWRITE aktiviert, dann kann das Taktsperrsignal CLK_DSAB, welches
den Betrieb des Prozessors 113 sperren kann, unabhängig davon,
ob eine Schreibadresse ADR die Bank-0 121 oder die Bank-1 122 bestimmt,
aktiviert werden.
-
Im
Intervall zwischen dem Zeitpunkt C und einem Zeitpunkt D kann die
Schreibsequenzsteuerschaltung 139 das Beschäftigt-Signal
WBUSY auf den zweiten logischen Pegel setzen, z.B. auf einen hohen
logischen Pegel oder einen niedrigen logischen Pegel, wenn der Programmiervorgang
für die Bank-0 121 abgeschlossen
ist. Zudem kann die Schreibsequenzsteuerschaltung 139 das
Taktwecksignal CLK_WK aktivieren. Die zweite Flip-Flopschaltung 151 der
Modussteuerschaltung 112 kann in Reaktion auf das Beschäftigt-Signal
WBUSY zurückgesetzt
werden. Daraus resultiert, dass das Programmiersignal PGM auf dem
zweiten logischen Pegel sein kann.
-
Zum
Zeitpunkt D kann die Zustandssteuerschaltung 140 zum Zeitpunkt
der abfallenden Flanke des Taktsignals CLK auf dem zweiten logischen
Pegel sein. Da das Beschäftigt-Signal
WBUSY auf dem zweiten logischen Pegel sein kann, kann die Modussteuerschaltung 112 das
in der ersten Flip-Flopschaltung 150 zwischengespeicherte
Signal als Programmiersignal PGM ausgeben. Anschließend kann
das nichtflüchtige
Speicherbauelement 120 den Programmiervorgang ausführen.
-
Während das
nichtflüchtige
Speicherbauelement 120 einen Schreibvorgang ausführt, kann
das nichtflüchtige
Speicherbauelement 120 ein Informationssignal CLK_DSAB,
welches anzeigt, ob ein empfangener Befehl ausgeführt werden
kann, z.B. an ein externes Bauelement ausgeben. Ist das Informationssignal
CLK_DSAB freigegeben, z.B. entweder auf den ersten logischen Pegel
oder den zweiten logischen Pegel gesetzt, dann kann die Verarbeitungseinheit 110 der
Informationsverarbeitungsvorrichtung einen Vorgang des Prozessors 113 anhalten,
wodurch ein Fehler des Prozessors 113, z.B. durch eine Datenstörung, verhindert
wird. In einem Ausführungsbeispiel
kann die Modussteuerschaltung 112 der Prozessoreinheit 110 den
empfangenen Schreibbefehl zwischenspeichern, wenn der empfangene Befehl
ein Schreibbefehl ist. Das nichtflüchtige Speicherbauelement 120 kann
die Ausführung
des ersten Schreibvorgangs abschließen und die Modussteuerschaltung 112 kann
den empfangenen Schreibbefehl an das nichtflüchtige Speicherbauelement 120 übertragen.
Die Modussteuerschaltung 112 kann den zweiten Schreibbefehl
zwischenspeichern, um zu verhindern, dass der zweite Befehl einer
Pipelinesequenz verloren geht, wenn der Betrieb des Prozessors 113 angehalten
wird.
-
4 zeigt
ein weiteres Zeitablaufdiagramm für Signale der Informationsverarbeitungsvorrichtung 100 gemäß 1.
In diesem Ausführungsbeispiel kann
die Prozessoreinheit sequentiell einen Schreibbefehl und einen Lesebefehl
an die Speicherbank-0 121 des nichtflüchtigen Speicherbauelements 120 ausgeben.
Des Weiteren ist in diesem Ausführungsbeispiel
das Zeitablaufdiagramm bis zu einem Zeitpunkt E in 4 und/oder
bis zum Zeitpunkt A mit dem Zeitablaufdiagramm gemäß 3 identisch. Daher
wird das Zeitablaufdiagramm gemäß 4 nur
anhand der Vorgänge
nach dem Zeitpunkt E beschrieben. Es sei zudem vorausgesetzt, dass
in diesem Ausführungsbeispiel
die Schreibadresse einen Speicherplatz der Bank-0 121 bestimmt.
-
Wie
aus 4 ersichtlich ist, kann zu einem Zeitpunkt F das
Chipauswahlsignal CS auf den ersten logischen Pegel gesetzt werden.
Ist das Beschäftigt-Signal
WBUSY von der Schreibsequenzsteuerschaltung 139 auf dem
ersten logischen Pegel und das Schreibsignal BWRITE auf dem zweiten
logischen Pegel, dann kann die Zustandssteuerschaltung 140 eine
eingegebene Leseadresse ADR bestätigen.
Da die Speicherzelle der Bank-0 121 einen vorherigen Programmierbefehl
speichern kann, kann die Zustandssteuerschaltung 140 das
Taktsperrsignal CLK_DSAB aktivieren, um den Betrieb des Prozessors 113 auszusetzen,
wenn die Leseadresse ADR die Bank-0 121 bestimmt. Alternativ
kann das nichtflüchtige
Speicherbauelement 120 einen Lesevorgang für die Bank-1 122 gleichzeitig
mit einem Programmiervorgang, z.B. einem Schreib-/Lese-/Löschvorgang, für die Bank-0 121 ausführen, wenn
die Leseadresse ADR die Bank-1 122 bestimmt.
-
Im
Intervall zwischen dem Zeitpunkt F und einem Zeitpunkt G kann der
Programmiervorgang für die
Bank-0 121 die Ausführung
abschließen.
Die Schreibsequenzsteuerschaltung 139 kann das Beschäftigt-Signal
WBUSY auf den zweiten logischen Pegel setzen und das Taktwecksignal
CLK_WK auf den ersten logischen Pegel setzen. Die zweite Flip-Flopschaltung 151 der
Modussteuerschaltung 112 kann in Reaktion auf das Beschäftigt-Signal WBUSY
zurückgesetzt
werden. Das Programmiersignal PGM kann auf den zweiten Pegel gesetzt
werden. Die Leseadresse ADR, welche z.B. vom Adressenbus empfangen
wird, kann im ersten Leseadressenpuffer 134 gespeichert
werden.
-
Zum
Zeitpunkt G kann die Zustandssteuerschaltung 140 das Taktsperrsignal
CLK_DSAB an der abfallenden Flanke des Taktsignals CLK auf den zweiten
logischen Pegel setzen. Der Taktgenerator 114 kann das
Taktsignal CLK wieder erzeugen. Der Prozessor 113 kann
synchron in Bezug auf das Taktsignal CLK betrieben werden.
-
Die
Schreibsequenzsteuerschaltung 139 kann die erste Adressenauswahlschaltung 133 über einen
Abschluss eines Schreibvorgangs informieren und die erste Adressenauswahlschaltung 133 kann die
im ersten Leseadressenpuffer 134 gespeicherte Leseadresse
an die erste Steuerschaltung 129 ausgeben. Die erste Steuerschaltung 129 kann
den ers ten Abtastverstärker 125 setzen,
um die Daten abzutasten, die in der Speicherzelle gespeichert sind,
die von der Leseadresse bestimmt wird, welche von der ersten Adressenauswahlschaltung 133 empfangen wird.
Die vom ersten Abtastverstärker 125 abgetasteten
Daten können
an die Prozessoreinheit 110 ausgegeben werden.
-
Zudem
kann das nichtflüchtige
Speicherbauelement 120 in Reaktion auf einen Schreibbefehl
der Prozessoreinheit 110 die Taktsignalerzeugung des Taktgenerators 114 anhalten,
z.B. wenn eine Leseadresse zum Ausführen eines Lesevorgangs für die Bank-0 121 an
das nichtflüchtige
Speicherbauelement 120 übertragen
wird, während
das nichtflüchtige
Speicherbauelement 120 einen Schreibvorgang für die Bank-0 121 ausführt, wodurch
der Betrieb des Prozessors 113 ausgesetzt wird. Wird der
Schreibvorgang abgeschlossen, dann liest das nichtflüchtige Speicherbauelement 120 in
einer Leseadresse gespeicherte Daten aus und kann die Daten an die
Prozessoreinheit 110 ausgeben.
-
Das
nichtflüchtige
Speicherbauelement 120 kann einen Schreibvorgang für die Bank-0 121,
beispielsweise in Reaktion auf einen Schreibbefehl der Prozessoreinheit 110,
und/oder einen Lesevorgang für
die Bank-1 122 ausführen.
Daher kann das nichtflüchtige
Speicherbauelement 120 einen Lesevorgang für die Bank-1 122 gleichzeitig
mit einem Schreibvorgang für
die Bank-0 121 ausführen,
ohne den Betrieb des Prozessors 113 anzuhalten.
-
Im
oben beschriebenen Ausführungsbeispiel wird
ein Schreibvorgang mit der Bank-0 121 und ein Lesevorgang
mit der Bank-1 122 ausgeführt. Der Schreibvorgang und
der Lesevorgang können
jedoch auch gleichzeitig in einem der Speicherbänke ausgeführt werden. Dazu kann das nichtflüchtige Speicherbauelement 120,
wenn ein Schreibbefehl und ein Lesebefehl für die gleiche Bank vorliegen,
den Betrieb des Prozessors 113 aussetzen. Alternativ können der Schreibbefehl
und der Lesebefehl gleichzeitig ausgeführt werden, wenn der Schreibbefehl
und der Lesebefehl für
verschiedene Bänke
vorliegen.
-
In
weiterer Ausgestaltung der Erfindung kann unter Bezugnahme auf die
Informationsverarbeitungsvorrichtung 100 gemäß 1 ein
Programmcode im Codespeicher der Prozessoreinheit 110 gespeichert
sein und Daten können
in den Bänken 121 und 122 des
nichtflüchtigen
Speicherbauelements 120 gespeichert sein. 4 zeigt
eine alternative Ausführungsform
im Zeitablaufdiagramm, welches Signale einschließt, die in der Informationsverarbeitungsvorrichtung 100 benutzt
werden, wobei kein Speicher in der Prozessoreinheit 110 enthalten sein
muss. Entsprechend können
gemäß dem alternativen
Ausführungsbeispiel
die Bank-0 und die Bank-1 des nichtflüchtigen Speicherbauelements
benutzt werden, um Daten und/oder Programmcode zu speichern.
-
5 zeigt
ein Blockschaltbild eines weiteren Ausführungsbeispiels einer Informationsverarbeitungsvorrichtung 200.
Wie aus 5 ersichtlich ist, kann die
Informationsverarbeitungsvorrichtung 200 ähnlich wie
die oben beschriebene Informationsverarbeitungsvorrichtung 100 gemäß 1 funktionieren,
mit der Ausnahme, dass eine Prozessoreinheit 210 den Codespeicher 111 nicht
umfasst. In diesem Ausführungsbeispiel
kann Programmcode in einer Bank-1 222 eines nichtflüchtigen
Speicherbauelements 220 gespeichert werden. Der Prozessor 113 kann
einen Programmcode aus dem Codespeicher 222 auslesen und
Daten können
in einem Datenspeicher 221 gespeichert werden.
-
In
weiterer Ausgestaltung der Erfindung kann, unter Bezugnahme auf 5,
eine nächste Anweisung
des Programmcodes ohne Anhaltevorgang für den Prozessor 113 abgerufen
werden, da der Programmcode nicht im Prozessor gespeichert ist.
Auf diese Weise kann die Effizienz der Pipelineausführung von
Befehlen für
den Prozessor 113 erhöht
werden.
-
6 zeigt
ein Flussdiagramm eines Ausführungsbeispiels
eines erfindungsgemäßen Steuerverfahrens.
Obwohl das in 6 dargestellte Verfahren unter
Bezugnahme auf das nichtflüchtige Speicherbauelement 120 gemäß 1 beschrieben wird,
kann das Verfahren auf beliebige nichtflüchtige Speicherbauelemente
angewendet werden, z.B. auch auf das nichtflüchtige Speicherbauelement 220 gemäß 5.
-
Wie
aus 6 ersichtlich ist, kann das nichtflüchtige Speicherbauelement 120 im
Schritt S300 einen zweiten Befehl von der Prozessoreinheit 110 empfangen,
während
ein erster Befehl ausgeführt wird,
z.B. ein Schreibbefehl, ein Lesebefehl usw. Da die Prozessoreinheit 110 den
zweiten Befehl ausführt,
z.B. einen Schreibbefehl, einen Lesebefehl usw., kann die Schreibsequenzsteuerschaltung 139 das
Beschäftigt-Signal WBUSY aktivieren.
-
Im
Schritt S301 kann die Zustandssteuerschaltung 140 des nichtflüchtigen
Speicherbauelements 120 bestimmen, ob der zweite Befehl
ausgeführt
wird. Wie oben ausgeführt,
können
nicht zwei Schreibbefehle gleichzeitig mit der gleichen Bank ausgeführt werden.
Daher wird das Verfahren mit dem Schritt S302 fortgesetzt, wenn
der erste Befehl und der zweite Befehl Schreibbefehle für die gleiche Bank
sind. Im Schritt S302 kann die erste Steuerschaltung 129 aktiviert
werden, um beispielsweise ein Signal mit dem ersten logischen Pegel
oder dem zweiten logischen Pegel zu aktivieren, d.h. das Taktsperrsignal
CLK_DSAB, welches anzeigt, dass der zweite Schreibbefehl nicht ausgeführt wird.
Das Verfahren fährt
dann mit dem Schritt S304 fort.
-
Alternativ
kann, wenn im Schritt S301 festgestellt wird, dass der zweite Befehl
ausgeführt
werden kann, da der erste und der zweite Befehl beispielsweise keine
Schreib- und/oder Lesebefehle für
die gleiche Bank sind, mit dem Schritt S303 fortgesetzt werden.
Im Schritt S303 kann das nichtflüchtige Speicherbauelement 120 den
zweiten Befehl gleichzeitig mit dem ersten Befehl ausführen. Das
Verfahren fährt
dann mit dem Schritt 304 fort.
-
Im
Schritt S304 kann die Schreibsequenzsteuerschaltung 139 des
nichtflüchtigen
Speicherbauelements 120 bestimmen, ob ein Schreibvorgang,
z.B. der erste Befehl, der zweite Befehl usw., für die Bank-0 121 abgeschlossen
ist. Ist der Schreibvorgang für
die Bank-0 121 abgeschlossen, dann fährt das Verfahren mit dem Schritt
S305 fort.
-
Im
Schritt S305 kann die Schreibsequenzsteuerschaltung 139 des
nichtflüchtigen
Speicherbauelements 120 das Beschäftigt-Signal WBUSY auf den
zweiten logischen Pegel setzen. Die Zustandssteuerschaltung 140 kann
das Taktwecksignal CLK_WK basierend auf dem Zustand des Beschäftigt-Signals
WBUSY aktivieren, wenn das Taktsperrsignal CLK_DSAB auf dem ersten
logischen Pegel ist.
-
7 zeigt
ein Flussdiagramm eines weiteren Ausführungsbeispiels eines erfindungsgemäßen Steuerverfahrens.
Obwohl das in 7 dargestellte Verfahren unter
Bezugnahme auf das nichtflüchtige Speicherbauelement 120 gemäß 1 beschrieben wird,
kann das Verfahren auf beliebige nichtflüchtige Speicherbauelemente
angewendet werden, z.B. auch auf das nichtflüchtige Speicherbauelement 220 gemäß 5.
-
Im
Schritt S400 kann das nichtflüchtige Speicherbauelement 120 einen
ersten Befehl von der Prozessoreinheit 110 empfangen. Im
Schritt S401 bestimmt die Schreibsequenzsteuerschaltung 139, ob
der erste Befehl ein Schreibbefehl ist, beispielsweise basierend
auf einem logischen Pegel des Schreibsignals BWRITE. Ist das Schreibsignal BWRITE
auf dem ersten logischen Pegel, wenn das Chipauswahlsignal CS aktiviert
wird, dann kann die Schreibsequenzsteuerschaltung 139 bestimmen, dass
der erste Befehl ein Schreibbefehl ist. Alternativ kann die Schreibse quenzsteuerschaltung 139 bestimmen,
dass der erste Befehl ein Lesebefehl ist, wenn das Schreibsignal
BWRITE auf dem zweiten logischen Pegel ist.
-
Wird
im Schritt S401 bestimmt, dass der erste Befehl ein Lesebefehl ist,
dann wird das Verfahren mit dem Schritt S402 fortgesetzt. Im Schritt
S402 kann die Schreibsequenzsteuerschaltung 139 das Bestätigungssignal
CONF vom Prozessor 113 empfangen. Die Schreibsequenzsteuerschaltung 139 kann
die erste Adressenauswahlschaltung 133 und die erste Steuerschaltung 129 setzen,
um den ersten Befehl auszuführen,
d.h. den Lesebefehl auszuführen.
-
Wird
im Schritt S401 bestimmt, dass der erste Befehl ein Schreibbefehl
ist, dann wird das Verfahren mit dem Schritt S403 fortgesetzt. Im
Schritt S403 kann die Schreibsequenzsteuerschaltung 139 das Beschäftigt-Signal WBUSY auf
den ersten Pegel setzen und die erste Adressenauswahlschaltung 133 und
die erste Steuerschaltung 129 setzen, um den empfangenen
Schreibbefehl auszuführen.
Das Beschäftigt-Signal
WBUSY kann an die Zustandssteuerschaltung 140 und/oder
die Modussteuerschaltung 112 der Prozessoreinheit 110 ausgegeben
werden.
-
Im
Schritt S404 empfängt
das nichtflüchtige Speicherbauelement 120 einen
zweiten Befehl, während
der erste Befehl ausgeführt
wird. Im Schritt S405 kann die Schreibsequenzsteuerschaltung 139 bestimmen,
ob der zweite Befehl einen Bankzugriff erfordert, z.B. ein Schreibbefehl,
ein Löschbefehl,
ein Lesebefehl usw. Bestimmt das Adressensignal ADR, welches mit
dem zweiten Befehl assoziiert ist, eine Bank, welche einen Schreibbefehl
ausführt,
dann wird das Verfahren mit Schritt S407 fortgesetzt. Bestimmt das
Adressensignal ADR, welches mit dem zweiten Befehl assoziiert ist,
nicht die Bank, welche einen Schreibbefehl ausführt, dann wird das Verfahren
mit dem Schritt S406 fortgesetzt.
-
Im
Schritt S406 kann die Schreibsequenzsteuerschaltung 139 bestimmen,
ob der zweite Befehl ein Schreibbefehl ist. Beispielhafte Verfahren
zu Bestimmung, ob ein Befehl ein Schreibbefehl ist, sind oben beschrieben.
Ist der zweite Befehl kein Schreibbefehl, dann fährt das Verfahren mit Schritt
S411 fort. Im Schritt S411 kann der zweite Befehl ausgeführt werden.
Alternativ wird, wenn der zweite Befehl ein Schreibbefehl ist, das
Verfahren mit dem Schritt S407 fortgesetzt.
-
Im
Schritt S407 wird der zweite Befehl in der ersten Flip-Flopschaltung 150 zwischengespeichert. Im
Schritt S408 kann die Zustandssteuerschaltung 140 das Taktsperrsignal
CLK_DSAB aktivieren, d.h. auf den ersten logischen Pegel setzen,
um die Taktsignalerzeugung des Taktgenerators 114 anzuhalten, wodurch
der Betrieb des Prozessors 113 angehalten wird. Der erste
Befehl kann dann ausgeführt
werden.
-
Im
Schritt S409 kann die Schreibsequenzsteuerschaltung 139 bestimmen,
wann der erste Befehl vollständig
ausgeführt
ist. Ist der erste Befehl vollständig
ausgeführt,
dann kann die Schreibsequenzsteuerschaltung 139 das Beschäftigt-Signal WBUSY
auf den zweiten logischen Pegel setzen.
-
Im
Schritt S410 kann die Zustandssteuerschaltung 140, nach
dem Setzen des Beschäftigt-Signals
WBUSY auf den zweiten logischen Pegel, das Taktwecksignal CLK_WK
setzen, um den Taktgenerator 114 zum Wiedererzeugen des
Taktsignals zu aktivieren. Der Prozessor 113 kann dann
das wiedererzeugte Taktsignal CLK empfangen.
-
Im
Schritt S411 kann die Modussteuerschaltung 112 den in der
ersten Flip-Flopschaltung 150 zwischengespeicherten zweiten
Befehl an das nichtflüchtige
Speicherbauelement 120 ausgeben. Das nichtflüchtige Speicherbauelement 120 kann
dann den zweiten Befehl ausführen.
-
In
einem anderen erfindungsgemäßen Ausführungsbeispiel
kann das nichtflüchtige
Speicherbauelement in Reaktion auf den ersten Befehl im ersten Speicherfeld
einen Schreibvorgang ausführen. Empfängt das
nichtflüchtige
Speicherbauelement einen zweiten Befehl mit einer Zugriffsanforderung
für das
erste Speicherfeld, z.B. einen Schreibbefehl, einen Lesebefehl,
einen Löschbefehl
usw., oder einen Schreibbefehl für
das zweite Speicherfeld, dann kann der Betrieb des Prozessors 113 ausgesetzt
werden, d.h. angehalten oder temporär unterbrochen werden. Ist
der zweite Befehl ein Schreibbefehl, dann wird der zweite Befehl
in der Modussteuerschaltung zwischengespeichert. Ist die Ausführung des
ersten Befehls beendet, dann wird der Betrieb des angehaltenen Prozessors
wieder aufgenommen und der zweite Befehl kann ausgeführt werden.
Daher fordert der Prozessor einen Zugriff auf das nichtflüchtige Speicherbauelement
an, wenn das nichtflüchtige Speicherbauelement
einen Schreibvorgang ausführt, wodurch
ein Fehler des Prozessors verhindert wird.