Hintergrund der Erfindung
-
Die Erfindung betrifft einen Mikrocomputer und speziell
einen Mikrocomputer mit einer Zentralprozessoreinheit (CPU)
und zumindest eine auf demselben Halbleiterchip
ausgebildeten Eingabe-/Ausgabeeinheit.
Beschreibung bekannter Technik
-
Als eine Technik zur Miniaturisierung und Gewichtsreduktion
eines Computersystems, das bislang aus einem CPU-Chip,
einem Zeitgeber-/Zähler-Chip, einem
Unterbrechungs-Steuereinheit-Chip und andere periphere Einheiten zusammengesetzt
ist, wurden Hochintegrationsverfahren entwickelt, die CPU-
und periphere Funktionen wie Zeitgeberfunktionen und
Unterbrecherfunktionen auf einem Chip integrieren. Bei einem
konventionellen Mikroprozessor mit (peripheren) Eingangs-
Ausgangs-Einheiten zusammen mit einer CPU auf einem
einzigen Halbleiterchip sind jedoch die I/O-Adressen, die jeder
Eingangs-Ausgangs-Einheit zugeordnet sind, fixiert. Im
allgemeinen umfaßt jede Eingangs-Ausgangs-Einheit eine
Vielzahl von Registern, die durch vorgegebene Adressen benannt
werden. In diesem Fall, wenn eine Datenübertragung zwischen
der CPU und einem Register in einer
Eingangs-Ausgangs-Einheit durchgeführt wird, sendet die CPU eine dem
auszuwählenden Register zugewiesene Adresse an einen Decoder. Der
Decoder decodiert die Adresse von der CPU und erzeugt ein
Auswahlsignal, das direkt durch eine
Dekoder-Ausgangsleitung dem Register zugeführt wird. Auf diese Weise wird das
durch die CPU ausgewiesene Register ausgewählt.
-
Da jedoch die I/O-Adressen die den Registern in den
Eingangs-Ausgangs-Einheiten zugewiesen sind, vorgegeben und
durch eine Hardware-Logikschaltung fixiert sind, ist eine
Änderung der I/O-Adressen, die peripheren
Eingangs-Ausgangs-Einheiten zugewiesen sind, nicht möglich.
Aufgrunddessen kann eine Software, die I/O-Adressen verwendet, die
sich von denen im Chip zur Zuweisung der Adressen der
Register in den Eingangs-Ausgangs-Einheiten unterscheiden, bei
einem konventionellen Ein-Chip-Mikroprozessor nicht
verwendet werden.
-
Desweiteren wird im allgemeinen ein Adressraum mit einer
Vielzahl von aufeinanderfolgenden Adressen als I/O-Adressen
verwendet. Aufgrund dessen sind beim praktischen Gebrauch
einige Adressen vorhanden, die nicht im Adressenraum als
I/O-Adressen verwendet werden. Da jedoch alle I/O-Adressen
im zugewiesenen Adressraum fixiert sind, können Adressen,
die nicht im Adressraum verwendet werden, nicht für andere
Zwecke verwendet werden. Das bedeutet, daß ein
konventioneller Mikrocomputer den Nachteil aufweist, daß ein
Benutzer den Adressraum nicht effektiv verwenden kann.
-
Aus der GB-A-2125594 ist ein Mikrocomputer gemäß dem
Oberbegriff des Anspruchs 1 bekannt. Bei diesem Mikrocomputer
ist die Adresse eines Datenregisters, das in jeder
Eingangs-Ausgangs-Einheit vorgesehen ist, programmierbar. Wenn
jedoch jede Eingangs-Ausgangs-Einheit eine Anzahl von
Registern aufweist, ist eine große Anzahl von Adressregistern
und Auswahlleitungen erforderlich, was zu einer aufwendigen
internen Struktur des Mikrocomputers führt.
-
Die US-A-4 188670 beschreibt eine
Assoziativ-Speichereinrichtung zum Vergleich von dazu zugeführten Daten mit
vorher darin gespeicherten Daten.
-
Es ist die Aufgabe der Erfindung, einen Mikrocomputer gemäß
dem Oberbegriff des Anspruchs 1 zu schaffen, bei dem auf
jedes Register, das in den einzelnen
Eingangs-Ausgangs-Einheiten vorgesehen ist, über eine programmierbare Adresse
zugegriffen werden kann, wobei die interne Struktur des
Computers einfach ist.
-
Diese Ausgabe wird durch einen Mikrocomputer gelöst, der in
Anspruch 1 definiert ist; die abhängigen Ansprüche
betreffen weitere Entwicklungen der Erfindung.
-
In dem Mikrocomputer gemäß Anspruch 1 sind die Eingangs-
Ausgangs-Adressen änderbar, ohne daß die interne Struktur
verkompliziert ist. Desweiteren kann der Adressraum
effektiv verwendet werden, und die Adressen der Register der
Eingangs-Ausgangs-Einheiten können leicht durch Software
geändert werden.
-
Erfindungsgemäß kann die CPU eine Adresse, die durch ein
Programm bestimmt ist, in die erste Schaltung unter
Verwendung der zweiten Schaltung einschreiben, bevor das Programm
ausgeführt wird. Anschließend, wenn ein Zugriff auf die
Eingangs-Ausgangs-Einheit während der Programmausführung
erforderlich ist, fügt die CPU eine I/O-Adresse zur Auswahl
des Registers an die dritte Schaltung zu. Die dritte
Schaltung vergleicht die von der CPU abgegebene I/O-Adresse mit
der in der ersten Schaltung gespeicherten Adresse. Falls
zwei Adressen gleich sind, führt die dritte Schaltung ein
Auswahlsignal an das Register in der Eingangs-Ausgangs-
Schaltung unter Verwendung der vierten Schaltung. Auf diese
Weise kommt das Register in einen Zugriffszustand.
Andererseits, wenn ein anderes Programm mit einer anderen I/O-
Adresse ausgeführt wird, ändert die CPU den Inhalt der
ersten Schaltung, bevor das unterschiedliche Programm
durchgeführt wird. Auf diese Weise können alle unterschiedlichen
Programme durch den erfindungsgemäßen Mikrocomputer
durchgeführt
werden. Desweiteren, falls eine Adresse in der CPU
verwendet wird, die sich von der in der ersten Schaltung
gespeicherten Adresse unterscheidet, wird das Register
nicht durch diese unterschiedliche Adresse ausgewählt und
aufgrund dessen kann die unterschiedliche Adresse für andere
Zwecke verwendet werden, beispielsweise als Speicher oder
als externe Eingangs-Ausgangs-Einheit. Erfindungsgemäß wird
der Ausgang der ersten Schaltung vorzugsweise mit einem von
zwei Eingängen der dritten Schaltung gekoppelt, und die
I/O-Adresse von der CPU wird vorzugsweise den anderen
Eingängen der dritten Schaltung zugeführt.
-
Die vierte Schaltung ist vorzugsweise eine Auswahlleitung,
die zwischen den Ausgang der dritten Schaltung und einen
Auswahlanschluß der Eingangs-Ausgangs-Schaltung geschaltet
ist. Falls die beiden Eingänge der dritten Schaltung
koinzidieren, wird somit das Vergleichssignal direkt der
Eingangs-Ausgangs-Schaltung als Auswahlsignal zugeführt. Ein
Assoziativspeicher kann in Kombination für die erste und
die dritte Schaltung verwendet werden.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 ist ein Blockdiagramm eines Beispiels eines
konventionellen Mikrocomputers;
-
Fig. 2 ist eine Darstellung einer Registerkonfiguration für
die interne I/O104-107 der Fig. 1;
-
Fig. 3 ist ein I/O-Adressplan der Register der Fig. 2;
-
Fig. 4 ist ein Blockdiagramm eines Mikrocomputers gemäß
einer Ausführungsform der Erfindung;
-
Fig. 5 ist eine Zeichnung zur Erläuterung einer
Registerkonfiguration der internen I/O-404-407 der Fig. 4;
-
Fig. 6 ist ein Schaltungsdiagramm zur Erläuterung eines
Arbeitsbeispiels für den Dekoder 403 der Fig. 4;
-
Fig. 7 ist ein I/O-Plan der Assoziativspeicher DMAUR, ICUR,
TCUR, SCUR der Fig. 6;
-
Fig. 8 ist eine Darstellung zur binären Wiedergabe der I/O-
Adressen der Assoziativspeicher DMAUR, ICUR, TCUR, SCUR der
Fig. 6;
-
Fig. 9 ist eine Darstellung zur Erläuterung einer
Speicherzellenkonfiguration der Assoziativspeicher DMAUR, ICUR,
TCUR, SCUR der Fig. 6;
-
Fig. 10 ist ein Schaltungsdiagramm des Grundaufbaus der
Assoziativspeicherzellen;
-
Fig. 11 ist ein I/O-Plan einer Ausführungsform der
Erfindung; und
-
Fig. 12 ist ein I/O-Plan der Ausführungsform.
Beschreibung bekannter Technik
-
Fig. 1 ist ein Blockdiagramm eines Mikrocomputers 101 mit
einem internen A/D-Konverter 104, einem Zeitgeber 105,
einer Unterbrechungssteuerung 106, und einer seriellen
Schnittstelle 107 als periphere Eingangs-Ausgangs-Einheiten
(im folgenden I/O genannt), zusammen mit einer CPU 102 auf
einem einzigen Halbleiterchip. Die CPU 102 kann Daten von
und an einen externen Bus über einen Bus 108 übertragen.
Die interne I/O wie der A/D-Konverter 104, Zeitgeber 105,
Unterbrechungssteuerung 106, die serielle Schnittstelle 107
werden entsprechend eines Befehls für einen
Eingabe/Ausgabevorgang der CPU 102 initialisiert, bevor ein
Programm ausgeführt wird. Wenn die CPU 102 den
Eingangs-Ausgangs-Befehl ausführt, wird eine vorgegebene Adresse der
angesprochenen internen I/O an einen Dekoder 103 über einen
Adressbus 109 ausgegeben. Hier haben die internen I/O 104
bis 107 eine Registergruppe, die jeweils wie in Fig. 2
dargestellt ist, und eine I/O-Adresse ist jedem Register, wie
in Fig. 3 dargestellt ist, zugewiesen. Beispielsweise sind
zwei Register MKH, MKL in der Unterbrechungssteuerung 106
vorgesehen, und Adressen 6H und 7H sind dem Register NKH
bzw. dem Register MKL als I/O-Adressen zugewiesen. Der
Dekoder 103 dekodiert eine über den Adressbus 109 angegebene
Adresse und erzeugt ein Auswahlsignal für das
korrespondierende
Register gemäß der I/O-Adresse, wie in Fig. 3
dargestellt. Das Auswahlsignal wird der Unterbrechungssteuerung
106 durch eine von zwei Signalleitungen 111 zugeführt.
Hinsichtlich der anderen I/O-Einheiten sind fünf
Signalleitungen 113 zu den Registern ANM, CR0, CR1, CR2, CR3 in der
A/D-Konvertereinheit 104 vorgesehen. Fünf Signalleitungen
114 sind zu fünf Registern EOM, ETMM, TMM, TM0, TM1 in der
Zeitgebereinheit 105 vorgesehen, zwei Signalleitungen 112
sind zu zwei Registern SMH, SML in der seriellen
Schnittstelleneinheit 107 vorgesehen, wobei Register in den vier
I/O-Einheiten direkt mit dem Dekoder über 14
Signalleitungen verbunden sind. Das bedeutet, daß die 14 I/O-Adressen
(6H-9H, 1AH-1BH, 20H-23H) zugewiesen und durch
Hardwarelogik festgelegt sind und somit nicht durch Software
geändert werden. H bedeutet hier die hexadezimale
Darstellung.
-
Wie oben beschrieben wurde, sind in dem bekannten
Mikroprozessor die I/O-Adressen vorgegeben und fixiert, so daß sie
nicht in andere Adressen geändert werden können. Aufgrund
dessen kann ein Programm, das Adressen IAH und IBH als
Adressen für die Unterbrechungssteuereinheit 106 aufweist,
nicht auf dem in Fig. 1 dargestellten Mikrocomputer
ausgeführt werden. Aufgrund dessen muß ein I/O-Treiber
(Eingabe/Ausgabe-Einheit-Steuerprogramm) des Programms modifiziert
werden. Desweiteren, wie in Fig. 3 dargestellt ist, sind
der interne I/O-Adressenraum und der externe I/O-Adressraum
im konventionellen Prozessor fixiert, so daß die
Adressräume SP1, SP2 und SP3 nicht als, beispielsweise,
externer Adressraum verwendet werden können, selbst wenn
diese Räume SP1, SP2 und SP3 nicht als interner
I/O-Adressraum verwendet werden.
-
Der konventionelle Mikroprozessor ist nicht
zufriedenstellend, da er die Nachteile aufweist, daß
-
1) die interne I/O-Adresse nicht willkürlich geändert
werden kann,
-
2) der Adressraum nicht effektiv genutzt werden kann, da
die externe I/O-Adresse nicht in den internen
I/O-Adressraum eingefügt werden kann,
-
3) ein unbenutzter Adressraum im internen I/O-Adressraum
verbleibt usw.
Detaillierte Beschreibung der Ausführungsformen der
Erfindung
-
Ausführungsformen der Erfindung werden nun im einzelnen mit
Bezug auf die beigefügten Zeichnungen erläutert.
-
Fig. 4 ist ein Blockdiagramm eines Mikrocomputers 401, mit
einer CPU 402, einem Dekoder 403 und vier I/O-Einheiten
(eine DMA-Einheit 404, eine Unterbrechungssteuereinheit
405, eine serielle Kommunikationseinheit 406 und eine
Zeitgeber-/Zähler-Einheit 407) auf einem einzigen
Halbleiterchip. Diese DMA-Einheit 404, eine
Unterbrechungssteuereinheit 405, eine serielle Kommunikationseinheit 406 und eine
Zeitgeber-/Zähler-Einheit 407 sind mit der CPU 402 mittels
eines internen Datenbusses 412 und eines internen
Adressbusses 413 verbunden. Der Dekoder 403 umfaßt einen
Assoziativspeicher wie im folgenden im einzelnen
beschrieben wird. Der Dekoder 403 empfängt eine Adresse von der CPU
402 und dekodiert sie. Als Ergebnis erzeugt der Dekoder 403
eins von Auswahlsignalen 408 bis 412 zur Auswahl der
entsprechenden I/O-Einheit. In diesem Fall soll festgestellt
werden, daß die Auswahlsignale 408 bis 412 nicht zur
Auswahl von Registern in jeder I/O-Einheit verwendet werden,
sondern zur Auswahl der I/O-Einheit selbst.
-
Desweiteren, wie in Fig. 5 dargestellt ist, besitzen die
internen I/O-Einheiten 404 bis 407 interne Registergruppen
DMAU, ICU, TSCU und TCU. In dieser Ausführungsform umfassen
DMAU, ICU, SCU und TCU 16 Register, 2 Register bzw. 4
Register. Die Register werden durch untere Adressen ausgewählt,
die durch den internen Adressbus 413 übertragen werden, der
Signalleitungen mit vier Bit aufweist.
-
Fig. 6 ist ein Schaltungsdiagramm einer Ausführungsform des
Dekoders 403 der Fig. 4. DMAUR ist ein Assoziativspeicher,
der I/O-Adressen speichert, die der DMA-Einheit 404
zuzuweisen sind, ICUR ist ein Assoziativspeicher, der die der
Unterbrechungs-Steuereinheit 405 zuzuweisenden I/O-Adressen
speichert, TCUR ist ein Assoziativspeicher, der die der
Zeitgeber-/Zähler-Einheit 7 zuzuweisenden I/O-Adressen
speichert, SCUR ist ein Assoziativspeicher, der die der
seriellen Kommunikationseinheit 406 zuzuweisenden
I/O-Adressen speichert, wobei alle 8 Bit aufweisen. Einer der
Assoziativspeicher DMAUR, ICUR, TCUR und SCUR wird gemäß
zwei Adressbits S0 und S1, die von der CPU abgegeben
werden, ausgewählt. Dann wird dem ausgewählten Speicher
ermöglicht, in einen Schreibfreigabezustand zu kommen,
durch die Ausgänge 610, 611, 612 oder 613 eines Selektors
601, der einen Dekodiervorgang entsprechend den empfangenen
zwei Adressbits S0 und S1 durchführt. Die CPU 402 sendet
eine Information hinsichtlich der einer Eingabe-Ausgabe-
Einheit zuzuweisenden Adresse gemeinsam an die Speicher.
Auf diese Weise wird die von der CPU 402 abgegebene
Information in den ausgewählten Speicher eingeschrieben. Dabei
wird der Selektor 601 durch den Ausgang 602 eines UND-Tores
619 aktiviert, dem ein Signal S2 und ein Signal 621
zugeführt werden. Das Signal S2 wird erzeugt, wenn die CPU 402
eine Adresse ausgibt, die die vier Assoziativspeicher
DMAUR, ICUR, TCUR und SCUR bezeichnet, während das Signal
621 erzeugt wird, wenn eine Information in die
Assoziativspeicher eingeschrieben wird. Auf diese Weise wird nur
dann, wenn die Adresse zur Bezeichnung eines der
Assoziativspeicher von der CPU 402 in einem Schreibbetriebsmodus
ausgegeben wird, der Selektor 601 aktiviert, um den
Dekodiervorgang entsprechend den angegebenen zwei Adressbits 50
und S1 durchzuführen. In diesem Zustand kann die CPU 402
eine beliebige Information hinsichtlich den I/O-Einheiten
404 bis 407 zuzuweisenden Adresse in die Assoziativspeicher
einschreiben. Im allgemeinen wird dieser Schreibvorgang
durchgeführt, bevor ein Programm durch den Mikrocomputer
ausgeführt wird.
-
Nachdem der Schreibvorgang für die vier Assoziativspeicher
beendet ist, wird die Ausführung des Programms erlaubt. Bei
der Programmausführung wird eine von der CPU 402
ausgegebene Adresse an Eingangsanschlüsse 10 bis 17 über den Bus
414 abgegeben und mit der in jeden Assoziativspeicher
eingeschriebenen Information verglichen. Falls die den
Assoziativspeichern zugeführte Adresse mit einer der
Informationen, die in den Assoziativspeichern gespeichert sind,
übereinstimmt, wird ein Auswahlsignal 408, 409, 410 oder
411 von dem Assoziativspeicher erzeugt, der die mit der
zugeführten Adresse übereinstimmende Information speichert.
Dieses Auswahlsignal (d. h. Signalpegel 1) wird der
entsprechenden I/O-Einheit 404, 405, 406 oder 407 zugeführt. Auf
diese Weise wird eine der I/O-Einheiten in Abhängigkeit von
dem Auswahlsignal, das vom entsprechenden
Assoziativspeicher abgegeben wird, ausgewählt. Andererseits, wenn die
zugeführte Adresse nicht mit einer Information übereinstimmt,
die in einem der vier Speicher gespeichert ist, wird kein
Auswahlsignal erzeugt. Das bedeutet, daß Signale mit dem
Pegel "0" auf allen Signalleitungen 408 bis 411 vorhanden
sind, und aufgrund dessen wird der Ausgang eines ODER-Tores
623 zu dem Pegel "0". Dies bedeutet, daß keine I/O-Einheit
entsprechend der von der CPU 402 abgeleiteten Adresse
ausgewählt ist. Aufgrund dessen kann diese Adresse verwendet
werden, um einen Speicher oder eine externe I/O-Einheit,
die eine andere als die vier internen I/O-Einheiten 404 bis
407 ist, zu bezeichnen.
-
Bei der obigen Erläuterung kann ein Ausgabebefehl verwendet
werden, um die Information in den Assoziativspeichern
einzuschreiben,
die Assoziativspeicher DMAUR, ICUR, TCUR, SCUR
sind den oberen vier Bytes eines 64k Bytes 0000H bis
FFFFH) I/O-Adressraum wie in Fig. 7 dargestellt ist.
-
Beispielsweise ist der Assoziativspeicher DMAUR bei FFFFH
angeordnet, der Assoziativspeicher ICUR bei FFFEH, der
Assoziativspeicher TCUR bei FFFDH und der Assoziativspeicher
SCUR bei FFFCH. Falls diese Adressen FFFCH bis FFFFH in
Binärform dargestellt sind, sind die oberen Bits D2 bis D15
alle auf "1", wie in Fig. 8 dargestellt ist, und falls es
durch S2 angegeben ist, dann ist S2 = "1". Falls nun ein
unteres Bit D0 auf S0 ist, und ein unteres Bit D1 auf S1,
werden die Assoziativspeicher DMAUR, ICUR, TCUR, SCUR gemäß
der folgenden Tabelle 1 ausgewählt:
TABELLE 1
-
Gemäß Tabelle 1 wird die Information hinsichtlich der DMA-
Einheit 404 in DMAUR eingeschrieben, bezeichnet durch die
Adresse FFFFH. Das bedeutet, wenn der Ausgabebefehl
ausgeführt wird und die Adresse FFFFH dem Dekoder 403 zugeführt
wird, daß der Assoziativspeicher DMAUR ausgewählt wird.
Bezugnehmend auf den Vorgang gemäß Fig. 6 in der Adresse
FFFFH, ist S2 = "1", und das Signal 621 wird zu "1", so daß
das Ausgangssignal 620 des UND-Tores 619 auch zu "1" wird,
wenn das Signal 620 zu "1" wird, wird der Dekoder 601
aktiviert, und eins der Signale 610 bis 613 wird zu "1" gemäß
der Information von S0 und S1. Wenn die Adresse FFFFH ist,
da S1 = "1" und S0 = "1" aus Tabelle 1, wird der
Assoziativspeicher DMAUR durch das Signal 610 auf "1" ausgewählt
und somit werden Informationen in DMAUR in einem
Schreibfreigabezustand eingeschrieben. Das Einstellen der
Information der DMA-Einheit 404 ist somit beendet. Der gleiche
Vorgang wird wiederholt, um Informationen hinsichtlich der
verbleibenden Assoziativspeicher einzuschreiben.
-
Bei der Programmausführung, wenn die Adresse zur Auswahl
von DMAUR durch die Anschlüsse 10 bis 17 eingegeben wird,
wird jede Information, die den Assoziativspeicher DMAUR,
ICUR, TCUR und SCUR gespeichert sind, mit der eingegebenen
Adresse verglichen. In diesem Zustand stimmt die
Information im Assoziativspeicher DMAUR mit der eingegebenen
Adresse überein. Aufgrund dessen wird das Signal 606 zu "1",
und dann ist die DMA-Einheit 409 ausgewählt. In diesem
Moment wird der Ausgang des ODER-Tores 623 zu "1", um
anzuzeigen, daß die interne I/O-Einheit ausgewählt ist.
-
Ein Schaltungsdiagramm einer bevorzugten Ausführungsform
einer Speicherzelle der Assoziativspeicher DMAUR, ICUR,
TCUR, SCUR. Eine Speicherzelle 1201, die in Fig. 10
dargestellt ist, ist die am weitesten links liegende Zelle von
DMAUR. Eine Signalleitung 1202 ist direkt mit dem Anschluß
17 gekoppelt, während eine Signalleitung 1203 mit einem
Inverter gekoppelt ist, der mit dem Anschluß 17 verbunden
ist. Aufgrund dessen, falls die Signalleitung 1202 auf "1"
ist, wird die Signalleitung 1203 zu "0" und falls die
Signalleitung 1202 auf "0" ist, wird die Signalleitung 1203
zu "1". Die Signalleitung 610 ist mit den Eingangsgates
zweier Schalttransistoren 1207 und 1208 verbunden. Ein
Schreibdatum kommt durch die Signalleitungen 1202 und 1203
herein. Wenn die Signalleitung 610 auf "1" ist, werden
beide Transistoren 1207 und 1208 eingeschaltet, und das
Schreibdatum wird in eine Speicherschaltung 1206 über die
Signalleitung 1202 und 1203 eingeschrieben. Wenn das Datum
einmal in die Speicherschaltung 1206 eingeschrieben ist,
hält die Speicherschaltung 1206 das eingeschriebene Datum,
bis der nächste neue Schreibvorgang durchgeführt wird.
Andererseits, wenn ein Vergleichsvorgang durchgeführt wird,
ist das Signal 610 auf "0", da der Selektor 601 inaktiv
ist, und die Transistoren 1207 und 1208 sind beide
ausgeschaltet. Wenn eine die DMA-Einheit auszuwählende Adresse
dem Assoziativspeicher übertragen wird, wird sie der
Signalleitung 1202 zugeführt, die mit einem Exklusiv-ODER-Tor
1210 mit zwei Eingängen verbunden ist. Eine Signalleitung
1209 von der Speicherschaltung 1206 wird mit dem anderen
Eingang des EX-OR-Tores 1210 verbunden. Wenn ein Datum auf
der Signalleitung 1202 nicht mit einem Datum auf der
Signalleitung 1209 übereinstimmt, ist die Situation so, daß
die Adresse mit einer Speicherinformation übereinstimmt,
und das Ausgangssignal 1212 des Exklusiv-ODER-Tores 1210
mit zwei Eingängen wird zu "0". Wenn ein Datum auf der
Signalleitung 1202 mit einem Datum auf der Signalleitung 1209
übereinstimmt, ist die Situation derart, daß die Adresse
nicht mit der Speicherinformation übereinstimmt, und das
Ausgangssignal 1212 des Exklusiv-ODER-Tores 1210 mit zwei
Eingängen wird zu "1". Da eine Signalleitung 1205 vorher
auf "1" vorgeladen wird durch den Hochziehwiederstand 1211,
wenn ein Transistor 1213 eingeschaltet wird, wobei die
Ausgangssignalleitung 1212 auf "1" ist, wird die Signalleitung
1205 zu "0". Unterdessen ist die Signalleitung 1205 auf
"1", wenn das Eingangsdatum mit dem Speicherdatum
übereinstimmt, da die Signalleitung 1205 auf "0" ist. Der
Grundaufbau der Assoziativspeicherzellen, der oben beschrieben
wurde, ist durch eine Signalleitung 610 und die
Signalleitung 1205 parallel verbunden.
-
In diesem Ausführungsbeispiel umfaßt die DMA-Einheit 404 16
Register DMAU01 bis DMAU16, wie in Fig. 5 dargestellt ist,
und aufgrund dessen werden die unteren vier Bit der durch
die CPU erzeugten Adresse der DMA-Einheit über den internen
Adressbus 413 der Fig. 4 zugeführt, um eins dieser 16
Register auszuwählen. Aufgrund dessen können die oberen vier Bit
der Adresse dem Assoziativspeicher DMAUR zugeführt werden.
Das bedeutet, daß der Assoziativspeicher DMAUR vier
Speicherzellen entsprechend den oberen vier Adressbits
aufweisen kann. In gleicher Weise umfaßt die
Unterbrechungssteuereinheit (ICU 405) nur ein Register ICUR, und
dementsprechend werden die oberen sieben Adressbit zum Zugriff
auf den Assoziativspeicher ICUR verwendet. Die
Zeitgeber/Zähler-Einheit 407 und die serielle Kommunikationseinheit
406 umfassen zwei Register, wobei die oberen sechs
Adressbits zur Auswahl dieser I/O-Einheiten 406 und 407
verwendet werden. Aufgrund dessen, wie in Fig. 9 dargestellt
ist, umfassen die Assoziativspeicher ICUR, TCUR, SCUR 7, 6
bzw. 6 Register. In Fig. 9 bedeutet das Zeichen X, daß
keine Speicherzelle erforderlich ist.
-
Ein I/O-Adressraum in dem Ausführungsbeispiel umfaßt 64 K-
Byte (0-FFFFH), jedoch ist in einem gebräuchlichen
Mikrocomputersystem der Adressraum für 256 Byte (0-FFH)
fertig, wodurch die Adressbitlänge der Assoziativspeicher auf
die unteren acht Bit festgelegt ist und die oberen acht Bit
werden auf 00H fixiert, wodurch eine Verminderung der
Hardware ermöglicht wird.
-
Im folgenden werden detailliert die Teile beschrieben, in
denen die Speicherzellen C0 bis C3 des Assoziativspeichers
DMAUR, C0 des Assoziativspeichers ICUR, C0 und C1 des
Assoziativspeichers TCUR und C0, C1 des Assoziativspeichers
SCUR nicht vorhanden sind. Wie in Fig. 11 dargestellt ist,
wurde dem Register in jeder der internen IO-Einheit 404 bis
407 seine Adresse vorher in den I/O-Einheiten 404 bis 407
zugewiesen. Es ist selbstverständlich, daß das System so
hoch im Adresspegel der Register jeder der I/O-Einheiten
404 bis 407 programmierbar gestaltet werden kann, jedoch
muß der Assoziativspeicher zum Speichern der Adressen in
der gleichen Anzahl vorgesehen sein, um mit einem Ansteigen
der Anzahl der I/O-Register zu handeln, und folglich steigt
die Hardware entsprechend an und die Arbeit zum Einstellen
der I/O-Adresse für jedes I/O-Register wird kompliziert.
Hier hat die geltende I/O die internen Register regelmäßig
angeordnet wie in Fig. 11 dargestellt ist. Das bedeutet,
daß die I/O-Adresse des internen Registers gemeinsam für
die oberen Bits pro I/O sind, und durch Dekodieren der
unteren wenigen Bits wird die Adresse regulär von der unteren
Adresse bis zur oberen Adresse zugewiesen. In Fig. 11 sind
Bits mit einem Zeichen V der Adressen DMAU01 bis DMAU16
Bits mit einem Zeichen Z von TCU1 bis TCU4, Bits mit einem
Zeichen Y von SCU1 bis SCU4 und Bits mit einem Zeichen X
von ICU 1 und ICU 2 einander gemeinsam und so
programmierbar. Das bedeutet, daß die Bereiche mit den Zeichen V, Z,
Y, X durch Einstellen von DMAUR, TCUR, SCUR, ICUR in Fig.
6 auf beliebige Adressen eingestellt werden können, und das
desweiteren das auszuwählende Register durch Dekodieren der
unteren Bits innerhalb jeder der I/O-Einheiten 404 bis 407
bestimmt sind. Das bedeutet, daß die Bereiche, bei denen
Speicherzellen der unteren Bits nicht vorhanden sind, der
Eingangsbit-Anzahl der internen I/O-Adressen entsprechen,
die jeder der I/O-Einheiten 404 bis 407 der Fig. 4
eingegeben werden.
-
Im Dekoder 403 der Fig. 4 wird eine über den Adressbus 414
eingegebene Adressinformation dekodiert, ein Auswahlsignal
wird für die zugegriffene interne I/O-Einheit erzeugt und
das Auswahlsignal wird an eine der Auswahlsignalleitungen
408 bis 411 ausgegeben. Falls beispielsweise auf DMAU1 in
der DMA-Einheit 404 zugegriffen wird, gibt der Dekoder 403
ein Auswahlsignal an die Auswahlsignalleitung 409. Falls
auf DMAU16 zugegriffen wird, gibt der Dekoder 403
entsprechend ein Auswahlsignal an die Auswahlsignalleitung 409 und
wählt die DMA-Einheit 404. Das bedeutet, wenn entweder das
Register DMAU01 oder DMAU16 in der DMA-Einheit 404
ausgewählt wird, daß das Auswahlsignal nur auf die eine
Auswahlsignalleitung 409 ausgegeben wird. Andererseits, wie in
Fig. 11 dargestellt ist, ist den Registern DMAU01 und
DMAU16 eine unterschiedliche I/O-Adresse zugewiesen, so daß
beide Register DMAU01 und DMAU16 definitiv identifiziert
werden müssen. Dementsprechend werden die unteren vier Bit
der Adresse, wie in Fig. 4 dargestellt ist, der DMA-Einheit
404 über den internen Adressbus 413 eingegeben. Wenn die
unteren vier Bit zu "0000" eingegeben werden, wird DMAU01
ausgewählt, und wenn die unteren vier Bit zu "1111"
eingegeben werden, wird DMAU16 ausgewählt. Das untere eine Bit
wird entsprechend der Unterbrechungssteuerung 405 über den
internen Adressbus 413 eingegeben, die unteren beiden Bit
werden der seriellen Kommunikationseinheit 406 eingegeben,
die unteren zwei Bit werden der Zeitgeber-/Zähler-Einheit
407 eingegeben, und auf diese Weise ist das auszuwählende
interne Register bestimmt.
-
Desweiteren ist ein I/O-Plan der Ausführungsform in Fig. 12
dargestellt. Fig. 12 (A) zeigt ein Beispiel, bei dem I/O-
Einheiten 404 bis 407 aufeinanderfolgend programmiert sind
und Fig. 12 (B) zeigt ein Beispiel, in dem die internen
I/O-Einheiten 404 bis 407 in Intervallen programmiert sind.
-
I/O-Adressräume SP11, SP12, SP13 der Fig. 12 (B) werden
nicht als interne verwendet, sondern können als externe I/O
verwendet werden. Das bedeutet in Fig. 4, daß die vier
Auswahlsignalleitungen 408 bis 411 alle als "0" erfaßt werden,
so daß auf externe 10 zugegriffen wird. Mit anderen Worten
kann die Systemkonfiguration frei eingestellt werden,
unabhängig von internen 10 und externen 10, so daß die
Beweglichkeit von einem existierenden System elastisch
sichergestellt wird.
-
Erfindungsgemäß wird die I/O-Adresse einer internen I/O
willkürlich in einem Mikrocomputer über Software
eingestellt, so daß die Software auf einem existierenden System
ohne Kodifizierung der I/O-Adresse übertragen werden kann
und so daß die Miniaturisierung und die Erfordernisse der
Leichtgewichtigkeit in einer kurzen Zeitspanne erfüllt
werden können.
-
Ferner gemäß der Erfindung ist keine spezielle
Unterscheidung vorgesehen für den internen I/O-Raum und den externen
I/O-Raum, und ein I/O-Adressraum, der als interner I/O-
Adressraum nicht verwendet wird, kann als externer I/O
verwendet werden. I/O-Adressen von
Eingangs-Ausgangs-Einheiten, die im Chip eingefügt sind, und externe
Eingangs-Ausgangs-Einheiten können somit willkürlich gewählt werden,
und somit ist der Freiheitsgrad für eine
Systemkonfiguration extrem hoch.