-
Die
Erfindung geht aus von einer Speicherbankumschalteinrichtung nach
der Gattung des Hauptanspruchs.
-
Es
ist schon eine Speicherbankumschalteinrichtung aus dem- Fachbuch
Herwig Feichtinger "Arbeitsbuch
Mikrocomputer",
Franzis-Verlag, 2. Auflage, 1987, Seite 244 und 245 bekannt. Darin
wird beschrieben, daß bei
einem Mikroprozessor, der 16 Adressleitungen besitzt, nur 64 kByte
Speicher angesprochen werden können.
Für den
Fall, daß der Rechner
mehr Speicher ansprechen soll, wird vorgeschlagen, eine zweite Speicherbank
mit beispielsweise nochmals 32 kBbyte zu implementieren und die Auswahl
der Speicherbänke
mit Hilfe einer I/O-Port-Leitung zu treffen.
-
Die
Unterscheidung von Speicherbänken
mit Hilfe der Port-Umschaltung besitzt jedoch den Nachteil, daß die I/O-Port-Umschaltung
entweder nur sehr langsam vonstatten geht oder aber nicht mit einer
genau vorhersehbaren Zeit abgeschlossen ist, so daß eine längere Wartezeit
für den
Mikroprozessor entsteht, bis sichergestellt ist, daß die Port-Umschaltung auch
erfolgt ist. In diesem Fall kann der Mikroprozessor also nicht sofort
nach Umschaltung des Ports auf die neue Speicherbank zugreifen und
muß daher
einige Wartezyklen einlegen.
-
Weiterhin
zeigt die
US 5,255,382 eine
Programmspeichererweiterung, bei der ein gemultiplexter Daten-/Adressbus
mit einem Speicher verbunden ist. Die Speichererweiterung wird dadurch
erreicht, dass ein ursprünglich
bei dem Mikrocontroller vorgesehener 16Bit-Adressbus mit einem 16Bit-Programmcounter
durch einen 19Bit-Adressbus mit einem virtuellen 19Bit Programmzähler ersetzt
wird. Durch Einsatz der 19Bit-Programmspeicheradressen wird der
Programmspeicher von ursprünglich 64kByte
auf 512kByte erweitert. Damit kann eine Programmspeichererweiterung
erzielt werden und zwar ohne Segmentregister oder Speicherbankregister
zu verwenden. Zusätzlich
wird ein Kontrollsignal ALE eingesetzt, wobei angezeigt wird, zu
welcher Zeit das Lowbyte der Adresse auf dem Adress-/Datenbus erscheint.
-
Es
ist Aufgabe der Erfindung, die Funktionssicherheit im Rahmen einer
Speicherbankumschaltung zu erhöhen.
-
Die
erfindungsgemäße Speicherbankumschalteinrichtung
mit den kennzeichnenden Merkmalen des Hauptanspruchs hat demgegenüber den
Vorteil, daß eine
funktionssichere, vom Mikrorechner-Timing gesteuerte Speicherbankumschaltung
möglich wird.
Nach der Umschaltung sind keine zusätzlichen Warte-Zyklen erforderlich.
Als weiterer Vorteil ist anzusehen, daß die erfindungsgemäße Speicherbank-Umschalteinrichtung
eine Vielzahl von Speicherbänken
in den vom Mikrorechner ansprechbaren Adressbereich einblenden kann,
ohne daß ein allzu
großer
Schaltungsaufwand entsteht.
-
Durch
die in den Unteransprüchen
aufgeführten
Maßnahmen
sind vorteilhafte Weiterbildungen und Verbesserungen der im Hauptanspruch
angegebenen Speicherbankumschalteinrichtung möglich. Besonders vorteilhaft
ist, daß die
Speicherbankumschalteinrichtung eine Schaltlogik aufweist, die mindestens
eine Adressleitung des Adressbus überwacht. Sie gibt ein Signal
ab, wenn ein bestimmter Buspegel an der mindestens einen Adressleitung
anliegt. Das Signal dient zur Betätigung einer Umschalteinrichtung,
die daraufhin zur Auswahl einer anderen Speicherbank bestimmte Adressleitungen
des Speichers mit jeweils einem vordefinierten Bitpegel belegen.
Dadurch ist eine einfache Erkennung des Zugriffs des Mikrorechners
auf den Bank-Adressbereich des Speichers möglich.
-
Weiterhin
vorteilhaft ist, daß der
Schaltlogik ein Zwischenspeicher vorgeschaltet ist, indem der Zustand
der mindestens einen überwachten
Adressleitung synchronisiert mit dem Auftreten eines Adressengültigkeitssignals
eingespeichert wird. Dadurch wird auf einfache Art eine Synchronisierung
des Umschaltvorgangs der Umschalteinrichtung mit dem Auftreten des
Adressengültigkeitssignals
erreicht.
-
Ebenfalls
vorteilhaft ist, daß die
vordefinierten Bitpegel in einem mit der Umschalteinrichtung in Verbindung
stehenden Register eingespeichert sind, wobei die Einspeicherung
in das Register vor dem eigentlichen Zugriff auf den Bankadressbereich
in einem separaten Schreibvorgang erfolgt. Dieser Schreibvorgang
in das Register läuft
wie bei einem normalen Speicherzugriff ab, es existiert somit ein festes
Timing für
diesen Speichervorgang. Der Mikrorechner kann nach dem Schreibvorgang
ohne die Einlegung von Wartezyklen direkt auf den Bank-Adressbereich
zugreifen.
-
Darüber hinaus
vorteilhaft ist, daß zwischen dem
Register und der Umschalteinrichtung ein Zwischenspeicher vorgesehen
ist, der mit Auftreten des Adressengültigkeitssignals bei dem Zugriff
auf den Bank-Adressbereich des Speichers die Speicherzustände des
Registers übernimmt
und der Umschalteinrichtung zur Verfügung stellt. Hierdurch ist
auf einfache Art gewährleistet,
daß die
neue Speicherbank synchronisiert mit dem Auftreten des Adressengültigkeitssignals über die
Umschalteinrichtung angewählt wird.
-
Ein
Ausführungsbeispiel
der Erfindung ist in der Zeichnung dargestellt und in der nachfolgenden Beschreibung
näher erläutert. Es
zeigen.
-
1 den
Adressraum eines Mikrorechners, der 16 Adressleitungen aufweist
und die Aufteilung dieses Adressraums in einen direkten Zugriffsbereich und
einen Bank-Zugriffsbereich und
-
2 ein
Blockschaltbild der erfindungsgemäßen Speicherbankumschalteinrichtung
und deren Anschluß an
einen Mikrorechner und einen zugehörigen Speicher.
-
Sehr
häufig
besitzen Mikrorechner 16 Adressleitungen. Sie können damit
65 536 verschiedene Speicherplätze
ansprechen. Im folgenden wird davon ausgegangen, daß ein Mikrorechner
mit 16 Adressleitungen vorhanden ist, der Speicherworte mit einer
Wortbreite von 8 Bit (1 Byte) verarbeiten kann. Für solch
einen Mikrorechner ist in 1 der Adressraum
dargestellt. Die niederwertigste Adresse beträgt in hexadezimaler Schreibweise
0000H und die höchstwertige
Adresse beträgt
in hexadezimaler Schreibweise FFFFH. Mit Hilfe dieses Adressraums kann
der Mikrorechner also einen 64 kByte großen Speicher adressieren. Für das hier
betrachtete Ausführungsbeispiel
ist der Adressraum in einen direkten Adressbereich 1 und
einen Bankadressbereich 2 eingeteilt. In hexadezimaler
Schreibweise reicht der direkte Adressbereich von 0000H bis BFFFH.
Der Bank-Adressbereich 2 wird durch die Adressen C000H
bis FFFFH angesprochen. Der direkte Adressbereich weist damit eine
Größe von 48
kByte Speicherplatz auf, während
der Bank-Adressbereich eine Größe von 16
kByte Speicherplatz aufweist.
-
Der
erwähnte
Mikrorechner arbeitet im Ausführungsbeispiel
mit einem Speicher zusammen, der über 256 kBbyte Speicherplatz
verfügt.
Somit weist der Speicher 18 Speicheradressanschlüsse auf.
Damit der Mikrorechner mit einem so großen Speicher zusammenarbeiten
kann, ist eine Speicherbankumschalteinrichtung erforderlich. Durch
die Speicherbankumschalteinrichtung können verschiedene 16 kBbyte
große
Speicherbänke
in den Adressbereich C000H bis FFFFH eingeblendet werden. Bei einem 256
kByte großen
Speicher können
dann somit 13 unterschiedliche 16 Kilobyte große Speicherbänke in diesen
Adressbereich eingeblendet werden.
-
In 2 bezeichnet
die Bezugszahl 10 den Mikrorechner. Die Bezugszahl 11 bezeichnet
den Speicher und die Bezugszahl 14 die Speicherbankumschalteinrichtung.
Im Ausführungsbeispiel
ist daran gedacht, daß der
Speicher 11 als einzelnes EPROM ausgeführt ist. Selbstverständlich könnte jedoch
der Speicher auch teilweise als ROM, RAM, und EPROM ausgebildet
sein. Der Mikrorechner ist ein handelsüblicher Mikrorechner, der z.
B. für
den Einsatz in Kraftfahrzeugsteuergeräten ausgelegt ist. Als Beispiel
solcher Mikrorechner werden die Typen 8096 und 80C196 der Firma
Intel genannt. Als Besonderheit weist der Mikrorechner 10 einen
gemultiplexten Daten/Adress-Bus auf. Es werden also Daten und Adressen über denselben
Bus zu dem Speicher übertragen.
Dazu weist der Mikrorechner eine besondere Steuerleitung ALE auf.
Wenn über
diese Leitung ein High-Impuls übertragen
wird, bedeutet dies, daß die
an dem Daten/Adress-Bus anliegenden Signale gültige Adressen darstellen.
Die Steuerleitung ALE wird nachfolgend als Adressengültigkeitssteuerleitung
bezeichnet.
-
Mit
der Bezugszahl 12 ist ein Teil des Daten/Adress-Bus bezeichnet.
Und zwar handelt es sich um die Daten/Adress-Leitungen AD0 ... AD7
und A8 ... A13. Der Teil 12 des Daten/Adress-Bus ist mit den
Speicheradresseingängen
E0 ... E13 des Speichers 11 verbunden. Die Daten/Adress-Leitungen AD0
... AD7 sind zusätzlich
mit den Dateneingängen D0
... D7 des Speichers 11 verbunden. Der Teil 12 des
Daten/Adress-Bus ist aber auch an die Speicherbankumschalteinrichtung 14 angeschlossen.
Und zwar führt
der Teil 12 des Daten/Adress-Bus zu einem Register 17.
Zu dem Register 17 führen
zusätzlich
die Adressleitungen A14 und A15 des Mikrorechners 10 sowie
die Adressengültigkeitssteuerleitung ALE
und die Schreibzugriffs-Steuerleitung WR des Mikrorechners 10.
Die beiden Steuerleitungen ALE und WR sind Teil des Steuerbus 13,
der von dem Mikrorechner 10 zum Speicher 11 geschaltet
ist.
-
Von
dem Register 17 führen
vier Verbindungsleitungen zu einem Zwischenspeicher 18.
An den Zwischenspeicher 18 ist ebenfalls die Adressengültigkeitssteuerleitung
ALE herangeführt.
Von dem Zwischenspeicher 18 gehen seinerseits vier Verbindungsleitungen
zu einer Umschalteinrichtung 19. Die Verbindungsleitungen
sind dabei an die Eingänge
I5 ... I8 der Umschalteinrichtung 19 angeschlossen. An die
Eingänge
I3 und I4 der Umschalteinrichtung 19 sind die Adressleitungen
A15 und A14 herangeführt. Die
Eingänge
I1 und I2 der Umschalteinrichtung 19 sind mit einem festen
Low-Potential beaufschlagt. Die Umschalteinrichtung 19 weist
vier Ausgänge O1...O4
auf. Von diesen führen
Verbindungsleitungen zu den Speicheradresseingängen E17 ... E14 des Speichers 11.
Die Adressleitungen A14 und A15 des Mikrorechners 10 sind
mit einem zweiten Zwischenspeicher 15 verbunden. An den
Zwischenspeicher 15 ist ebenfalls die Adressengültigkeitssteuerleitung
ALE herangeführt.
Der Zwischenspeicher 15 ist über zwei Verbindungsleitungen
mit einer Schaltlogik 16 verbunden. Von der Schaltlogik 16 führt eine
Ausgangsleitung CSBI zu der Umschalteinrichtung 19. Die
Umschalteinrichtung 19 ist als Vierkanal-Multiplexer ausgebildet.
Solange an dem Steuereingang S1 der Umschalteinrichtung 19 kein
High-Pegel anliegt, ist der Eingang I1 der Umschalteinrichtung 19 mit dem
Ausgang O1, der Eingang I2 mit dem Ausgang O2, der Eingang I3 mit
dem Ausgang O3 und der Eingang I4 mit dem Ausgang O4 der Umschalteinrichtung 19 verbunden.
Sobald über
die Schaltlogik 16 ein High-Signal an den Steuereingang
S1 der Umschalteinrichtung 19 angelegt wird, wird der Eingang I5
mit dem Ausgang O1, der Eingang I6 mit dem Ausgang O2, der Eingang
I7 mit dem Ausgang O3 und der Eingang I8 mit dem Ausgang O4 verbunden.
Diese Umschaltung erfolgt immer dann, wenn der Mikrorechner 10 auf
den Bank-Adressbereich 2 zugreift. Nur in diesem Fall liegt
dann nämlich
an den Adressleitungen A14 und A15 gleichzeitig High-Potential an. Der
Pegel der Adressleitungen A14 und A15 wird mit dem Auftreten eines
High-Signals auf der Adressengültigkeitsleitung
ALE in den zweiten Zwischenspeicher 15 übernommen. Er steht dann gleichzeitig
auch der Schaltlogik 16 zur Verfügung. Die Schaltlogik 16 ist
im einfachsten Fall als UND-Gatter ausgeführt. Sie liefert nur dann an
ihrem Ausgang High-Pegel, wenn beide Adressleitungen A14 und A15
High-Pegel führen.
In diesem Fall wird die Umschalteinrichtung 19 betätigt und
die Verbindung der Eingänge
I5 ... I8 mit den Ausgängen
O1...O4 hergestellt. Mit dem Auftreten des Adressengültigkeitssignals
ALE bei dem gleichen Speicherzugriff werden die Einträge in dem
Register 17 in den Zwischenspeicher 18 übernommen und
stehen damit an den Eingängen
I5 ... I8 der Umschalteinrichtung 19 an und werden damit
zu den Speicheradresseingängen
E17 ... E14 durchgelassen. Je nach Eintragung in dem vier Bit breiten
Register 17 wird damit eine der 16 möglichen 16 kByte großen Speicherbänke adressiert.
Der eigentliche Speicherplatz innerhalb der einzelnen Speicherbänke wird
dann über
die an den Speicheradresseingängen
E0 ... E13 anliegenden Pegel ausgewählt. Zur Speicherbankumschaltung
muß also
zuerst in das Register 17 über einen separaten Schreibzugriff
eine der gewünschten
Speicherbank entsprechende Bitkombination eingetragen werden. Erst
mit dem nächsten
Zugriff auf den Bank-Adressbereich 2 erfolgt dann die eigentliche
Umschaltung der Speicherbank. Das Register 17 wird über eine
bestimmte Adresse des Adressraums des Mikroprozessors angesprochen.
Zweckmäßigerweise
wird diese Adresse aus dem direkten Adressbereich ausgewählt. Die zugehörige Adresse
darf dann nicht anderweitig verwendet werden, d. h., das Einträge unter
dieser Adresse in den Speicher 11 unterbleiben müssen. Der
Speicherraum im Speicher 11 wird damit um ein Byte verringert.
-
Die
Komponenten der Speicherbankumschalteinrichtung 14 können auf
einem separaten Mikrochip, z. B. auf einem kundenspezifischen Schaltkreis
untergebracht sein.
-
Die
erfindungsgemäße Speicherbankumschalteinrichtung 14 ist
nicht auf das hier vorgestellte Ausführungsbeispiel beschränkt. Es
kann z. B. eine andere Einteilung des Adressraumes des Mikrorechners 10 vorgenommen
werden. Der Bank-Adressbereich kann dabei an anderer Stelle innerhalb
des Adressraumes eingerichtet sein. Auch die Größe des Bank-Adressbereiches
kann variiert sein. Dementsprechend müssen dann auch die Komponenten
der Speicherbankumschalteinrichtung 14 angepaßt werden.