-
Die
Erfindung betrifft einen Mikroprozessor mit einem internen Bus mit
Daten-, Adressen- und Steuerleitungen.
-
Die
meisten Mikroprozessoren oder Mikrosteuerungen verwenden ähnliche
externe Buskonfigurationen zur Kommunikation mit externem Speicher
und Peripheriegeräten.
Diese Busse liefern die Möglichkeit,
byte- oder wortbreite Daten (8, 16, 32 und 64 Bit) über mehrere
Daten-, Adressen- und Steuerleitungen zu lesen und zu den Peripheriegeräten zu schreiben.
Diese sogenannten Busse representieren den primären Kommunikationsweg von Mikroprozessoren
oder Mikrosteuerungen. Im allgemeinen sind zwei Arten von Bussen üblich geworden.
-
Das
erste Buskonzept, gemultiplexte Busse, ermöglicht es einem einzigen Satz
Leitungen, sowohl Adressen- als auch Dateninformationen zwischen dem
Prozessor und der externen Einrichtung zu transferieren. Die Anzahl
der Leitungen ist normalerweise gleich der primären Datengröße oder der Anzahl von Bit,
die zur Darstellung des Adressenbereichs erforderlich ist. Zusätzlich werden
mehrere Steuersignale zur Steuerung der Kommunikation zwischen Mikroprozessor
und Peripheriegeräten
vorgesehen. Insbesondere gibt das ALE-Signal an, ob die den gemultiplexten
Bus bildenden Busleitungen für
Adressen verwendet werden. Die Lese-/Schreibleitungen spezifizieren,
ob der gemultiplexte Bus für
Daten verwendet wird, sowie die Richtung, in der der gemultiplexte
Bus angesteuert wird. In der Zeit, während das ALE-Signal vorhanden
ist, darf das Peripheriegerät
den Bus nicht ansteuern. Andernfalls würde das System zusammenbrechen, da
der gemultiplexte Bus in dieser Zeit Adressensignale transferiert
und ein Datentransfer deshalb unmöglich ist. Das Konzept des
gemultiplexten Busses wurde bei den ersten Einchipmikroprozessoren
oder -mikrosteuerungen aufgrund der niedrigen Anzahl von Anschlüssen und
Bordrouten, die erforderlich waren, sehr beliebt. Dieses Bussystem wurde
in vielen vergangenen Intel- und Intelkompatiblen Mikroprozessoren
oder Mikrosteuerungen verwendet (z.B. siehe zum Beispiel den Siemens
Mikrocomputer Components Data Catalogue, 1988, Seite 41ff).
-
Das
zweite Buskonzept, nicht gemultiplexte Busse, erfordert zwei unabhängige Busse,
wobei Adresse über
einen Bus und Daten auf einem zweiten Bus transferiert werden. Da
zwei Informationsstücke
gleichzeitig transferiert werden können, ist der nichtgemultiplexte
Bus normalerweise leistungsstärker.
Außerdem
werden bei diesem Buskonzept mehrere Steuersignale zur Steuerung
des Datentransfers vorgesehen. Ein ALE-Signal zum Trennen von Adressensignalen
von Datensignalen ist bei diesem Buskonzept nicht notwendig. Hier
ist nur ein Signal notwendig, um anzuzeigen, daß die Adressensignale auf dem
Bus stabil sind. Die Schnittstellenverzögerungen sind tendentiell besser,
da Adressenbusse Nur-Sende-Busse sind, während sich Daten- und gemultiplexte
Busse während
Lesezyklen im „tristate"-Zustand befinden
müssen,
wodurch „tristate"-Ein- und Aus-Verzögerungen entstehen. Diese Art
von Bus ist heutzutage aufgrund der erhöhten Leistungsfähigkeit
und der verringerten Kosten von Anschlüssen und Bordrouten üblicher
geworden. Bei vielen der Motorola-Mikroprozessoren wurde dieser Bustyp integriert.
Die
DE 25 604 74 zeigt
zum Beispiel einen Mikroprozessor, der diesen Bustyp verwendet.
-
Es
existieren jedoch viele verschiedene Schnittstellenchips, Speicher
und Peripheriegeräte, und
es ist im allgemeinen nicht möglich,
einen für
den ersten Bus ausgelegten Chip an den zweiten Bustyp anzupassen
und umgekehrt. Um Chips mit verschiedenen Schnittstellen zu verbinden,
sind einige Logikbausteine erforderlich, um eine Anpassung von Schnittstellensignalen
aneinander zu ermöglichen.
-
Im
allgemeinen stellt der größte Teil
der Peripheriechips heutzutage gemultiplexte Busschnittstellen bereit,
um Gehäusegröße und Kosten
zu verringern. In vielen Fällen
wird der Systementwickler dadurch nicht eingeschränkt, da
nur wenig Daten zu und von diesen Bausteinen transferiert werden.
Im Fall von Speicher können
die Kosten der Verwendung gemultiplexter Busse jedoch die Systemleistungsfähigkeit
stark verschlechtern, wenn eine große Menge an Daten transferiert
werden muß.
Dieser Bus ist in neueren Systemen beliebter geworden, in denen
die Anzahl interner Zyklen zur Durchführung einer Operation soweit
abgenommen hat, daß der
Bus der Begrenzungsfaktor werden kann. Außerdem hat der Maßstab von
Speichergeschwindigkeiten zugenommen, sodaß Zugriffszeiten den möglichen
Datendurchsatz nicht begrenzen.
-
In
vielen Fällen
haben Peripheriechips Mehrfachbusschnittstellenlogik bereitgestellt,
um den Marktanteil durch Verkauf in beiden Umgebungen zu vergrößern. Einer
dieser, der Siemens SAB 82 257, wird in dem Siemens Microcomputer
Components Data Catalogue, 1988, Seite 635, veröffentlicht. Diese habe sich
bei Einzelbussystemen als sehr effektiv erwiesen, wenn kein schneller
Zugriff verlangt wird, aber sogar diese Peripheriechips benötigen einige externe
Hardware, um zwei verschiedene Buskonfigurationen zu unterstützen.
-
In
Systemen, in denen der gemultiplexte Bus gegenüber der internen Systemarchitektur
zu dem Begrenzungsfaktor geworden ist, bevorzugen es viele Systementwickler
also, zu schnelleren nichtgemultiplexten Buskonfigurationen zu wechseln.
Da viele Produkte eine Anzahl von Subsystemen enthalten, wobei es
Systementwickler bevorzugen, nur Teile des Systems zu modifizieren,
um die Kosten und die Entwicklungszeiten bis zur Vermarktung zu
reduzieren, ist es vorteilhaft, auch ältere Subsysteme zu unterstützen, die
die Systemleistungsfähigkeit
mit neueren schnelleren Subsystemen nicht begrenzen.
-
Außerdem ist
es sehr oft notwendig, mehrere Steuersignale zu verlangsamen, und
zwar immer dann, wenn ein sehr schneller Mikroprozessor mit einem
langsamen Peripheriegerät
kommuniziert. Langsame Speicherbausteine, wie zum Beispiel EPROMs,
benötigen
das Einfügen
mehrerer „Wartezustände" für das Lesen
von Daten.
-
Die
heutigen Versionen von Mikrosteuerungen und Mikroprozessoren ermöglichen
es dem Benutzer nicht, Buskonfigurationen aktiv zu wechseln.
-
Aus
WO-A-8 600 436 ist ein Mikroprozessor bekannt, der einen internen
Bus mit Daten-, Adressen- und Steuerleitungen umfaßt, wobei
programmierbare Bussteuermittel vorgesehen sind, die mehrere externe
Leitungen mit dem internen Bus verbinden, sodaß in Reaktion auf die Programmierung
der Bussteuermittel ein externer Bus mit einer programmierbaren
Datenbreite gebildet wird. WO-A-8 600 436 lehrt jedoch keine programmierbare
Bussteuerung, die den Wechsel zwischen gemultiplexter und nichtgemultiplexter
Buskonfiguration ermöglicht.
-
In
Computer Design, Band 29, 01.03.90, Nr. 5, Tulsa, OK, US, Seiten
24–26,
W. Andrews, „Multibus
I stretches to 32 bits",
wird eine zusätzliche
Busschnittstelle für
einen Mikroprozessor bereitgestellt, die den Wechsel zwischen gemultiplexten
und nichtgemultiplexten Buskonfigurationen ermöglicht, obwohl diese Änderung
nicht programmierbar ist, sondern dergestalt dynamisch gesteuert
wird, daß immer der
schnellst mögliche
Buszyklus gewählt
wird.
-
Eine
Aufgabe der Erfindung ist folglich die Bereitstellung eines Mikroprozessors,
der einen externen Bus bereitstellt, der gemultiplexte und nichtgemultiplexte
Bustypen mit verschiedener Datenbusbreite für beide Bustypen ohne Notwendigkeit
zusätzlicher
Schnittstellenhardware zur Verbindung verschiedener Bustypeneinrichtungen
mit dem externen Bus des Mikroprozessors unterstützt.
-
Diese
Aufgabe wird mit einem Mikroprozessor gemäß Anspruch 1 gelöst. Weitere
Entwicklungen der Erfindung folgen aus den abhängigen Ansprüchen.
-
Die
Grundlage der Erfindung besteht darin, einem Mikroprozessor oder
einer Mikrosteuerung eine Bussteuereinheit zu geben, durch die Benutzer eine
beliebige Kombination gemultiplexter und nichtgemultiplexter Buszugriffe
ohne Änderungen
an Software oder Hardware durchführen
können.
Diese Bussteuereinheit verbindet die internen Adressen- und Datenleitungen
mit den externen Anschlüssen des
Prozessors auf eine solche Weise, daß entweder eine gemultiplexte
oder eine nicht gemultiplexte externe Buskonfiguration konstruiert
wird. Außerdem erzeugt
die Steuereinheit alle notwendigen Steuersignale für den jeweiligen
Bustyp und/oder verbindet eine Steuersignalleitung, die der Prozessor
bereits unterstützt,
mit dem jeweiligen Ausgangsanschluß des Mikroprozessors bzw.
der Mikrosteuerung.
-
Die
Erfindung wird nachfolgend mit Bezug auf die beigefügten Zeichnungen
weiter beschrieben. Es zeigen:
-
1 ein
Blockschaltbild einer Ausführungsform
der Erfindung.
-
2 eine
erste Anwendung eines Mikroprozessors gemäß der Erfindung.
-
3 eine
zweite Anwendung eines Mikroprozessors gemäß der Erfindung.
-
4 eine
dritte Anwendung eines Mikroprozessors gemäß der Erfindung.
-
5 ein
Diagramm von 3 Steuerregistern SYSCON, BUSCON, ADDRSEL eines Mikroprozessors
gemäß der Erfindung.
-
6 ein
Diagramm eines aufgeteilten Adressenraums, wobei jeder Adressenraum
eine verschiedene Busstruktur repräsentiert.
-
7 ein
Diagramm verschiedener Auswahlen für das ADDRESEL-Register.
-
8 ein
Impulsdiagramm für
einen gemultiplexten Buszugriff nach einem nichtgemultiplexten Buszugriff.
-
9 ein
Impulsdiagramm eines Peripheriezugriffs mit Signalen „wait-states" und „Ready".
-
Gemäß 1 besteht
ein Mikroprozessor oder eine Mikrosteuerung aus einer Prozessoreinheit 2 mit
einem internen Adressenbus 4, einem internen Datenbus 5 und
einem internen Steuerbus 6, die mit einer Bussteuereinheit 3 verbunden
sind. Die Datenbusbreite kann 8, 16, 32 oder mehr Bit betragen.
Gemäß dem Adressenraum
des Prozessors 2 wird die Breite des Adressen- und Steuerbusses 4, 6 gebildet. Weiterhin
wird angenommen, daß der
Datenbus 5 und der Adressenbus 4 16 Bit breit sind. Die
Bussteuereinheit 3 liefert ihrerseits zwei programmierbare Eingangs-/Ausgangsports 8, 9 und
einen zusätzlichen
Steuerport, die mit den externen Anschlüssen des Mikroprozessors oder
der Mikrosteuerung verbunden sind und den externen Bus aufbauen.
-
Gemäß der Erfindung
stellt der Mikroprozessor eine Bussteuereinheit 3 bereit,
die verschiedene externe Buskonfigurationen ermöglicht. Die internen Busse 4, 5, 6 liefern
eine optimale Verbindung zwischen der Prozessoreinheit 2 und
der Bussteuereinheit 3 auf der Basis der internen Zeitsteuerung
dieses Teils. Durch die Bussteuereinheit 3 können Transfers aus
der Prozessoreinheit 2 gepuffert und über Busse 7, 8, 9 mit
externen Peripheriegeräten
verbunden werden. Wichtig ist, daß die beiden Mengen von Bussen
(intern 4, 5, 6 und extern 7, 8, 9)
normalerweise sehr verschiedene Steuerstrukturen aufweisen. Die Bussteuereinheit 3 ist
programmierbar, und abhängig von
der programmierten Buskonfiguration verbindet die Bussteuereinheit 3 die
externen Busleitungen 7, 8, 9 mit den
jeweiligen internen Bussen 4, 5, 6, konvertiert
die Zeitsteuerung und führt
gegebenenfalls eine Haltespeicherung von Signalen der Busse durch.
Dies kann zum Beispiel über
verschiedene Multiplexer, Haltespeicher und Steuerlogik geschehen.
Zum Beispiel könnte
ein erfindungsgemäßer Mikroprozessor
mehrere externe Ports aufweisen. Die Bussteuereinheit verbindet
abhängig
von der Programmierung die externen Ports mit den jeweiligen internen
Adressen-, Daten- und Steuerleitungen. Zur Programmierung der Bussteuereinheit 3 sind
mehrere Register vorgesehen, die später erläutert werden. Die verschiedenen
Steuersignale, die für
den gemultiplexten oder den nicht gemultiplexten Bustyp notwendig
sind, werden ebenfalls durch in der Bussteuereinheit 3 enthaltene
Mittel erzeugt. Diese Steuersignale können durch einen zusätzlichen
Port unterstützt
werden.
-
Die
Bussteuereinheit 3 bestimmt, ob Steuersignale im Fall des
Wechsels von einem Bustyp zu einem anderen verlängert werden oder nicht. Weiterhin kann
die Steuereinheit 3 „wait-states", das „Read/Write"-Signal erzeugen,
ein „Ready"-Signal, das durch
ein Peripheriegerät
erzeugt wird, auswerten und die externen Busleitungen in einen „tristate"-Modus überführen. Ein
weiteres Merkmal des erfindungsgemäßen Mikroprozessors besteht
darin, daß zum
Beispiel in der Bussteuereinheit 3 ein erstes SYSCON-Register
und vier BUSCON-Register vorgesehen werden können. Das SYSCON-Register ermöglicht es
dem Benutzer, den Standardtyp vom externen Bus des Mikroprozessors
zu definieren. Die 4 BUSCON-Register definieren entsprechend
ihrer Programmierung 4 unabhängige Adressenbereiche für verschiedene
Bustypen und Busgrößen. Die
Bussteuereinheit kann darüber
hinaus „chip-select"-Signale für durch SYSCON- und BUSCON-Register
definierte Adressenbereiche erzeugen. Diese Register sind über die
Prozessoreinheit 2 durch den Benutzer progammierbar. Die
Menge an BUSCON-Registern ist nicht auf 4 begrenzt.
-
2 bis 4 sind
Anwendungsbeispiele für
die oben erwähnte
Ausführungsform
der Erfindung. 2 zeigt eine gemultiplexte Konfiguration mit
8 Bit breitem Datenbus. Der Mikroprozessor 1 ist über 8 Bit
des ersten Ports 8 mit einem Peripheriegerät 10 verbunden.
Dieselben 8 Leitungen des Ports 8 sind außerdem mit
einem Haltespeicher 11 verbunden, der seinerseits den ersten
Teil des Adressenbusses des Peripheriegeräts 10 mit dem Port 8 verbindet.
In bestimmten Fällen
wird der Haltespeicher in das Peripheriegerät 10 integriert. Der
zweite Teil des Adressenbusses des Peripheriegeräts 10 ist direkt mit
8 Bit des zweiten Ports 9 des Mikroprozessors 1 verbunden.
Da dieser zweite Bus ein nichtgemultiplexter Adressenbus ist, kann
Port 9 als ein unidirektionaler Port programmiert werden,
andernfalls muß der
erste Port 8 ein bidirektioner Port sein, da er dem Peripheriegerät Adressen-
und Dateninformationen zuführt.
Der Klarheit halber ist nur eine Steuerleitung 7 gezeigt,
die den Adressenhaltespeicher steuert.
-
3 zeigt
eine gemultiplexte Konfiguration mit 16 Bit breitem Datenbus. Alle
Verbindungen zwischen dem Mikroprozessor 1 und dem Peripheriegerät 10 sind
dieselben wie in 2 gezeigt, mit Ausnahme der Verbindung
zwischen dem zweiten Port 9 und dem Peripheriegerät 10.
Da 16 Datenleitungen benötigt
werden, verbindet dieser Port 9 die oberen 8 Datenleitungen
des Mikroprozessors 1 mit den jeweiligen Datenleitungen
des Peripheriegeräts 10.
Port 9 ist außerdem
mit dem Haltespeicher 11 verbunden, der nun 16-Bit-Adressensignale
hält. In
diesem Fall werden beide Ports 8, 9 des Mikroprozessors
gemultiplext. Wiederum ist der Klarheit halber der Steuerbus nicht
gezeigt, mit Ausnahme des Adressenhaltespeichersteuersignals 7.
-
Der
in 2, 3 gezeigte Haltespeicher 11 ist
normalerweise in Intel-kompatiblen Peripheriegeräten enthalten.
-
4 zeigt
eine Anwendung mit einer nichtgemultiplexten Buskonfiguration mit
demselben Mikroprozessor bzw. derselben Mikrosteuerung wie zuvor
in 2, 3 abgebildet. Der Mikroprozessor 1 ist über einen
ersten Port 8, der bidirektionale Dateninformationen transferiert,
mit einem Peripheriegerät 10 verbunden.
Es können
alternativ gemäß der Busbreite
8 oder 16 Bit des Ports 8 verwendet werden. Der zweite
16 Bit breite Port 9 verbindet die Adressenleitungen des
Prozessors 1 mit jeweiligen Eingängen des Peripheriegeräts 10.
Wiederum ist der Steuerbus in 4 nicht
abgebildet.
-
Die
Kernsteuerprozessoreinheit (CPU) erfordert einen Satz Spezialfunktionsregister,
um Systemzustandsinformationen zu führen, um Systemkonfigurationsoptionen
bereitzustellen, um die Codespeichersegmentierung und das Datenspeicher-Paging zu
steuern und so weiter. Diese Register können nicht nur explizit durch
den Programmierer modifiziert werden, sondern auch implizit während der
normalen Anweisungsverarbeitung durch die CPU aktualisiert werden.
-
5 zeigt
3 spezielle 16 Bit breite Register, die in der Bussteuereinheit
enthalten sind. Das erste, das SYSCON-Register, ist ein bitadressierbares
Register, das Systemkonfigurations- und Steuerfunktionen bereitstellt.
Dieses Register ist in mehrere Teile unterteilt . Das MCTC-Bitfeld
(Bit 0...2) und die Bit MTTC (Bit 5) und RWDC (Bit 4) in dem SYSCON-Register
sind vorgesehen, um wie folgt Zeitsteuerungsparameter des externen
Busses zu variieren. Der Speicherzyklus kann um die Prozessorzustandszeit in
einem Bereich von 0 bis 15 oder von 0 bis 7, wenn die Ready-Funktion
verwendet wird, mittels des MCTC-Bitfelds erweitert werden. Mittels
des MTTC-Bit kann die Speicher-tristate-Zeit um entweder ,1` oder
,0` zusätzliche
Zustandszeiten erweitert werden. Die Speicher-tristate-Zeit wird
zusätzlich
immer dann um eine Zustandszeit erweitert, wenn eine gemultiplexte
externe Buskonfiguration gewählt
wird. Über
das RWDC-Bit kann eine zusätzliche
Read/Write-Signalverzögerung
von der Hälfte
einer Zustandszeit programmiert werden. Das Zweibit-Feld BTYP (Bit
6, 7) gibt den gerade gewählten
Konfigurationsmodus des externen Busses wieder. Es sind vier verschiedene
Buskonfigurationen vorgesehen. Diese lauten: gemultiplexte Buskonfiguration
mit 8 oder 16 Bit und nichtgemultiplexte Buskonfiguration mit 8 oder
16 Bit. Die Taktausgangsfunktion wird durch Setzen des CLKEN-Bit
(Bit 8) des SYSCON-Registers auf ,1` freigegeben. Bei Freigabe nimmt
der jeweilige Portanschluß seine
alternative Funktion als CLKOUT des Ausgangsanschlusses an. Das
BYTDIS-Bit (Bit 9) ermöglicht
die Steuerung des low-aktiven Byte-High-Freigabeanschlusses des Mikroprozessors.
Die Funktion des Anschlusses wird freigegeben, wenn das BYTDIS-Bit
eine ,0` enthält.
Andernfalls wird sie gesperrt und der Anschluß kann als Standard-E/A-Anschluß verwendet
werden. Der Anschluß wird
implizit von der Bussteuereinheit zum Wählen eines von zwei byteorganisierten
Speicherchips verwendet, die über einen
wortbreiten externen Datenbus mit dem Mikroprozessor verbunden sind. Das
BUSACT-Bit (Bit 10) gibt das SYSCON- oder ein beliebiges BUSCON-Register
frei. Wenn es auf ,0` gesetzt ist, wird kein externer Bus konfiguriert.
Wenn nur 16 Adressenleitungen verwendet werden, ist der Speicherraum
im nichtsegmentierten Modus auf 64 K Byte begrenzt. Das SGTDIS-Bit
(Bit 11) ermöglicht die
Auswahl entweder eines segmentierten oder eines nicht segmentierten
Speichermodus. Im Fall eines nichtsegmentierten Speichermodus (SGTDIS
= „1") ist der gesamte
Adressenraum auf 64 K Byte beschränkt und somit sind nur 16-Bit-Adressen
erforderlich, um Speicherstellen in dem Segment 0 zu adressieren.
Im Fall eines segmentierten Speichermodus (SGTDIS = „0") werden zusätzliche
Portanschlüsse
verwendet, um eine physische 18-Bit-Adresse zu erzeugen. Es könnte natürlich eine beliebige
andere Adressenbusbreite implementiert werden. Das RDYEN-Bit (Bit
12) stellt über
den low-aktiven
Ready-Eingangsanschluß eine
optionale Data-Ready-Funktion
bereit, um einer externen Speichersteuerung oder einem externen
Peripheriegerät die
Bestimmung der Dauer eines externen Speicherzugriffs zu ermöglichen.
Bei Freigabe bedeutet ein low-aktives Signal an dem Ready-Eingangsanschluß, daß Daten
verfügbar
sind und durch die Bussteuereinheit zwischengespeichert werden müssen.
-
Zusätzlich bestimmt
das SRDY/ARDY-Bit (Bit 3), ob eine synchrone oder eine asynchrone
Ready-Funktion verwendet wird. Die beiden STKSZ-Bit bestimmen die
Größe des Systemstapels
von 32 Wörtern
bis herauf zu 256 Wörtern.
Bit 15 des SYSCON-Registers kann in zukünftigen Implementierungen verwendet
werden.
-
Das
zweite Register (BUSCON) ist viermal vorgesehen. Seine Struktur
stimmt fast mit der des SYSCON-Registers überein, mit Ausnahme der Bit
8, 9, 11, 13, 14. Alle anderen Bit steuern dieselben Funktionen
wie die ihrer jeweiligen Bit des SYSCON-Registers. Für jedes
BUSCON-Register
ist ein jeweiliges ADDRSEL-Register vorgesehen. Diese ADDRSEL-Register
definiert den gültigen
Adressenbereich des jeweiligen BUSCON-Registers. Die Bit 8, 11, 14, 15 der
BUSCON-Register können
für zukünftige Implementierungen
verwendet werden. Im Gegensatz zu dem SYSCON-Register bestimmt das
Bit 9 des BUSCON-Registers, ob ein verlängertes ADDRESS-Haltespeicherfreigabesignal
erzeugt wird oder nicht. Dies kann in einer gemultiplexten Buskonfiguration
immer dann relevant sein, wenn der Mikroprozessor einen Zugriff
auf langsamere Peripheriegeräte
durchführt.
Ein weiteres spezielles Merkmal des BUSCON-Registers zieht das CSEN-Bit
(Bit 13) vor. Wenn diese Funktion freigegeben ist, erzeugt die Bussteuereinheit
ein Chipauswahlsignal an dem jeweiligen Portanschluß für den in
dem jeweiligen ADDRSEL-Register definierten Adressenbereich.
-
Das
ADDRESEL-Register ermöglicht
es dem Benutzer, einen Adressenbereich zu definieren, der die Buskonfiguration,
die Zeitsteuerung und die anderen Merkmale, die durch das jeweilige BUSCON-Register
fixiert werden, definiert. Die ersten drei RS-Bit (Bit 0...2) definieren
die Bereichsgröße und die
folgenden sieben RSA-Bit (Bit 3...9) definieren die Bereichsstartadresse.
Die Bereichsstartadresse muß immer
ein Vielfaches der Bereichsgröße sein.
-
7 zeigt
ein Diagramm von 5 verschiedenen Auswahlen für das ADDRESEL-Register. Die Bereichsgröße liegt
in diesem Fall von 2K bis 128K Byte. Jeweils wird die Bereichsstartadresse
reduziert. Wenn zum Beispiel die Bereichsgröße in dem RS-Bitfeld auf 32K
eingestellt wird, sind nur drei weitere Bit notwendig, um die Bereichsstartadresse
in dem RSA-Bitfeld zu definieren, da der Gesamtadressenbereich in
diesem Beispiel 256K Byte beträgt.
Für andere
Adressenumfänge
müssen
die Auswahlgrößen korrigiert
werden.
-
6 zeigt
ein Beispiel für
einen unterteilten Adressenbereich mittels dreier BUSCON-Register. Als
erstes definiert das SYSCON-Register den Standard-Bustyp und Funktionen
des gesamten Adressenbereichs. Nach der Programmierung von 3 der vier
BUSCON-Register wird der Gesamtadressenbereich in 5 Teile 51...55
unterteilt. Der Teil S2 und der Teil S5 werden durch das SYSCON-Register
definiert, die anderen Teile S1, S3, S4 durch die jeweiligen BUSCON-Register.
Hierdurch ist es möglich, den
Adressenbereich in Teile mit verschiedenen Buskonfigurationen und
Busbreiten zu unterteilen. Zum Beispiel ist der Teil S1 als ein
nichtgemultiplexter 16 Bit breiter Bustyp adressierbar, Teil S3
als ein gemultiplexter 8 Bit breiter Bus, Teil S4 als ein nichtgemultiplexter
8 Bit breiter Bus und die Teile S2, S5 als gemultiplexter 16 Bit
breiter Bus.
-
Mit
einem solchen erfindungsgemäßen Mikroprozessor
werden Benutzer in der Lage sein, eine beliebige Kombination gemultiplexter
und nichtgemultiplexter Zugriffe ohne Änderungen an Software oder
Hardware durchzuführen.
Bustypen werden strikt nachdem die Adresse für die Lese-, Schreib- oder
Abrufzugriffsadresse zu der Bussteuereinheit gesendet wurde, bestimmt.
Es sind keine speziellen Anweisungen oder Adressenbetriebsarten
erforderlich. Nachdem die Adressenbereichsprüfungen der BUSCON-Register
vorgenommen wurden, wird einer ausgewählt, oder es wird das SYSCON-Register
gewählt,
wenn kein BUSCON-Register gewählt
ist.
-
In
den meisten Fällen
verursacht das Wechseln von einem Bus zum nächsten keine Zeitsteuerungsprobleme.
Dazu gehören
jeweils die folgenden Kombinationen:
- – MUX-MUX:
gemultiplexte Buszugriffe, gefolgt durch einen geliebigen anderen
gemultiplexten Buszugriff mit verschiedenen Wartezustandseigenschaften
oder verschiedenen Busbreiten.
- – NMUX-NMUX:
nichtgemultiplexte Buszugriffe, gefolgt durch einen beliebigen weiteren
nichtgemultiplexten Buszugriff mit verschiedenen Wartezustandseigenschaften
oder verschiedenen Busbreiten.
- – MUX-NMUX:
jedem nichtgemultiplexten Buszugriff kann unmittelbar ein beliebiger
weiterer gemultiplexter Buszugriff mit verschiedenen Wartezustandseigenschaften
oder verschiedenen Busbreiten folgen, da der Adressenbus immer sofort frei
ist.
-
Keiner
der obigen Fälle
verursacht irgendwelche Zeitsteuerungsprobleme, wenn zwischen diesen
Zugriffen Frei-Bus- oder Mehrfach-Bus-Masterzyklen auftreten.
-
Falls
ein gemultiplexter Buszugriff einem nichtgemultiplexten Buszugriff
folgt, ist ein zusätzlicher
Wartezustand erforderlich, um die abgehende gemultiplexte Adresse
zu halten, bis der nichtgemultiplexte Zugriff wirklich abgeschlossen
ist. Dieser Wartezustand kann immer durch die Bussteuereinheit eingefügt werden,
egal ob Frei-Bus oder Mehrfach-Bus-Masterzyklen zwischen diesen
Zugriffen auftreten. Dieser Leistungsverlust wird nur für den ersten
gemultiplexten Zugriff nach einem nicht gemultiplexten Zugriff sichtbar,
sodaß mehrere
folgende Zugriffe keinen Busänderungskostenfaktor
verursachen. Dadurch wird jegliches eine Buskollision verursachende
Zeitsteuerungsproblem, das auftreten könnte, vermieden.
-
8 ist
ein Impulsdiagramm eines gemultiplexten Buszugriffs nach einem demultiplexierten Buszugriff;
A steht für
das Prozessortaktsignal; B für das
Adressenfreigabesignal, das bei gemultiplexter und nicht gemultiplexter
Buskonfiguration verschiedene Bedeutungen hat; C steht für die Signale
des Ports 8 und D für
die Signale des Ports 9. Als letztes steht E für das low-aktive
Schreibsteuersignal. Der linke Teil des Diagramms zeigt einen nicht
gemultiplexten Buszugriff und der rechte Teil einen gemultiplexten
Buszugriff. Der Bereich zwischen den gestrichelten vertikalen Linien
zeigt die Einfügung
des zusätzlichen
Wartezustands. Bei einem nicht gemultiplexten Buszugriff steuert
Port 8 nur Datensignale an und Port 9 nur Adressensignale.
Bei dem folgenden gemultiplexten Buszugriff, der rechts der zweiten
gestrichelten Linie gezeigt ist, steuert Port 8 zuerst
die neuen Adressensignale an, und nach dem Zwischenspeichern dieser
geht der Port 8 zur Ansteuerung der jeweiligen Datensignale über.
-
Da
es viele verschiedene Peripheriegeräte gibt und die Zugriffszeitsteuerung
dieser von Typ zu Typ verschieden ist, liefert der erfindungsgemäße Prozessor
mehrere Möglichkeiten
zur Bewirkung der Zeitsteuerung der Bussteuereinheit. Wie oben beschrieben,
ermöglicht
es der neue Prozessor dem Benutzer, die Anzahl von Wartezuständen von
0 bis 15 oder von 0 bis 7 (wenn Ready freigegeben ist) für langsame
oder schnelle Peripheriegeräte
zu definieren. Ferner ist eine Read/Write-Verzögerungssteuerung vorgesehen,
und die Speicher-tristate-Zeit kann beeinflußt werden. Der neue Prozessor
ermöglicht
es dem Benutzer außerdem,
zwei bezüglich
der Zugriffszeitsteuerung verschiedene Speicher oder Peripheriegeräte zwischen
einem definierten Adressenbereich zu verbinden. Dies ist möglich, da
die Bussteuereinheit immer die programmierten Wartezustände einfügt und danach
den Ready-Eingangsanschluß prüft. Obwohl
die READY-Funktion über
das jeweilige RDYDEN-Bit des SYSCON- oder BUSCON-Registers implementiert wird, fügt die Bussteuereinheit
immer die Wartezustände
ein. Dadurch ist es möglich,
ein Peripheriegerät
zu verbinden, das bis zu 7 Wartezustände benötigt, und ein zweites langsameres
Peripheriegerät
wird über
den Ready-Eingang gesteuert. Also ist es nicht notwendig, für zwei solche
bezüglich Zeitsteuerung
verschiedene Peripheriegeräte
zwei Adressenbereiche zu definieren.
-
9 ist
ein Impulsdiagramm des Zugriffs zweier bezüglich Zeitsteuerung verschiedener
Peripheriegeräte.
In F und G steht das obere Signal für das low-aktive Lesesteuersignal
und das untere für das
low-aktive Ready-Eingangssignal. Es wird angenommen, daß das jeweilige
BUSCON oder SYSCON-Register so programmiert ist, daß 3 Wartezustände erzeugt
werden und eine asynchrone Ready-Funktion implementiert wird. F
steht für
den schnellen Peripheriezugriff und G für den langsamen Peripheriezugriff.
Der Ready-Eingangsanschluß wird nach
dem Ablaufen der programmierten Wartezustände immer geprüft. Im Fall
G werden aus Gründen eines
High-Ready-Pegels
also zusätzliche
Wartezustände
erzeugt.
-
Bei
gemultiplexten Busbetriebsarten ist es häufig für den Benutzer sehr kompliziert,
Entwurfsfehler einer Anwendung zu finden. Gemäß der Erfindung kann ein spezielles
Merkmal in einem Mikroprozessor implementiert werden. Wenn in einem
System ein gemultiplexter Buszugriff vorgenommen wird, wobei ein
beliebiges BUSCON oder SYSCON als ein nichtgemultiplexter Zugriff
gewählt
wurde, wird die Adresse auch an einem zusätzlichen Port mit ähnlicher
Zeitsteuerung wie bei einem nichtgemultiplexten Zugriff angesteuert.
Vorzugsweise könnte
dazu bei den oben erläuterten
Beispielen Port 9, der die Adressensignale im nichtgemultiplexten
Busmodus ansteuert, verwendet werden, es könnte aber auch jeder beliebige
andere Port, der in dem System nicht verwendet wird, für dieses
Debugging-Merkmal verwendet werden.
-
Das
oben erläuterte
Konzept für
einen Mehrfachbusmikroprozessor oder eine Mehrfachbusmikrosteuerung
kann auf vielerlei Weise realisiert werden. Es können mehrere Register in der
Bussteuereinheit installiert werden, die vielfältige Steuersignale und interne Funktionsblöcke steuern.
Die Erfindung ist für
einen beliebigen Einchip- oder Mehrchipprozessor oder eine beliebige
Einchip- oder Mehrchipmikrosteuerung anwendbar.