-
Diese Erfindung bezieht sich auf
Mikrocomputervorrichtungen und insbesondere auf das Übertragen von Datenblöcken
innerhalb eines Speicherplatzes einer solchen Vorrichtung.
Es ist die Hauptaufgabe dieser Erfindung, verbesserte
Merkmale einer Mikrocomputervorrichtung und eines
Mikrocomputersystems zu schaffen, insbesondere von der Art, die für
digitale Signalverarbeitung in Echtzeit oder dergleichen angepaßt
ist. Eine weitere Aufgabe ist es, einen schnellen Mikrocomputer
mit verbesserten Fähigkeiten zu schaffen.
-
Die Erfindung schafft eine Mikrocomputervorrichtung, die
abhängig von aus einem Befehlssatz ausgewählten und an einem
adressierbaren Speicherplatz abgespeicherten Befehlswörtern
arbeitet, in einer einzigen integrierten Schaltung gebildet
ist, Dateneingangs- und -ausgangsanschlüsse aufweist und
innerhalb der integrierten Schaltung die folgenden Elemente umfaßt:
eine Rechen- und Logikeinheit mit einem Dateneingang und einem
Datenausgang, eine Steuerschaltung, die abhängig von den
gespeicherten Befehlswörtern arbeitet und Ausgänge besitzt, die
mit der Rechen- und Logikeinheit verbunden sind, wobei die
Steuerschaltung an dem Ausgang Mikrosteuersignale erzeugt, die
die Rechen- und Logikeinheit veranlassen, Befehle auszuführen,
die durch die Befehlswörter repräsentiert werden, einen einen
Teil des Speicherplatzes bildenden Lese-/Schreib-Datenspeicher
mit einem Adresseneingang sowie einem Dateneingang und einem
Datenausgang, einem einen Teil des Speicherplatzes bildenden
Programmspeicher mit einem Adresseneingang und wenigstens einem
Programmausgang, und internen Daten- und Adressenbussen, die
die Rechen- und Logikeinheit, die Steuerschaltung und die
Speicher miteinander verbinden und an die Dateneingangs- und
Datenausgangsanschlüsse sowie die Adressenausgangsanschlüsse
angeschlossen sind; wobei die Vorrichtung dadurch gekennzeichnet
ist, daß der Befehlssatz ein Übertragungsbefehlswort enthält,
und die Steuerschaltung einen Wiederholungszähler enthält, der
so angelegt ist, daß der Übertragungsbefehl von der
Steuer
schaltung eine Anzahl von Malen ausgeführt wird, die durch die
in dem Wiederholungszähler gespeicherte Zahl definiert ist, die
bei jeder Ausführung des Übertragungsbefehls um eins vermindert
wird, wodurch das Übertragungsbefehlswort die Übertragung eines
Datenblocks, der sich an Stellen befindet, die mit einer ersten
Adresse des Speicherplatzes beginnen, zu Stellen veranlaßt, die
mit einer zweiten Adresse des Speicherplatzes beginnen, wobei
die Anzahl an Datenelementen in dem Block durch die in dem
Wiederholungszähler gespeicherte Zahl definiert wird.
-
Gemäß einer Ausführungsform sind Merkmale der Erfindung in
einem System zur digitalen Signalverarbeitung in Echtzeit
enthalten, das eine Ein-Chip-Mikrocomputervorrichtung mit
separatem, chipinternem Programm-ROM und Daten-RAM enthält, wobei
getrennte Adressen- und Datenwege für Programme und Daten
verwendet werden. Ein externer Programm-Adressenbus erlaubt
chipexternen Programmabruf in einer erweiterten Betriebsart, wobei
der Operationscode von einem externen Datenbus rückübertragen
wird. Ein Buswechselmodul erlaubt unter bestimmten Umständen
die Übertragung zwischen den getrennten internen Programm- und
Datenbussen. Die internen Busse sind 16 Bit breit, während der
ALU und der Akkumulator 32 Bit breit sind. Eine
Multiplizierschaltung erzeugt eine einstufige 16 · 16 Multiplizierfunktion,
die vom ALU getrennt ist und einen 32 Bit breiten Ausgang zum
ALU aufweist. Ein Eingang zum ALU verläuft über einen 0 bis 15
Bit-Verschieber mit Vorzeichenerweiterung.
-
Bei einer weiteren Ausführungsform wird ein Prozessor-Chip
wie oben beschrieben hergestellt, jedoch ohne chipinternen
Programm-ROM. Stattdessen ist ein weiterer chipinterner RAM
enthalten, und dieser zusätzliche RAM kann als Programm- oder
Datenspeicher konfiguriert werden. Auf diese Weise kann der
Prozessor mit einem vollständig chipexternen Programmspeicher und
einem großen chipinternen Datenspeicher arbeiten oder mit einer
Programmausführung von einem chipinternen RAM (heruntergeladen
aus einem chipexternen Programmspeicher).
-
Die Erfindung kann, ebenso wie ihre weiteren Merkmale und
Vorteile, am besten durch Bezugnahme auf die folgende
detaillierte Beschreibung verstanden werden, wenn diese in Verbindung
mit den begleitenden Zeichnungen gelesen wird, in denen
Fig.
1 ein elektrisches Blockdiagramm eines
Mikrocomputersystems ist, in dem Merkmale der Erfindung verwendet werden;
-
Fig. 2 ein elektrisches Blockdiagramm einer
MOS/LSI-Mikrocomputervorrichtung (einschließlich einer CPU oder
Zentralverarbeitungseinheit) ist, die in dem in der Fig. 1
dargestellten System verwendet wird und Merkmale der Erfindung
verwendet;
-
Fig. 3 ein elektrisches Blockdiagramm einer
Mikrocomputervorrichtung ähnlich der Fig. 2 ist, die jedoch Merkmale
einer weiteren Ausführungsform der Erfindung enthält; und
-
Fig. 4a und 4b jeweils Speicherbelegungspläne für die
in den Fig. 2 und 3 dargestellten Vorrichtungen sind.
DETAILIERTE BESCHREIBUNG DER SPEZIELLEN AUSFÜHRUNGSFORM:
MIKROPROZESSORSYSTEM
-
Die hier im folgenden beschriebene
Mikrocomputervorrichtung wird in erster Linie zur Signalverarbeitung benutzt,
jedoch können die ihr zugrundeliegenden Gedanken auch auf
Prozessorvorrichtungen unterschiedlicher Konfigurationen
angewendet werden und diese Vorrichtungen können in vielen
unterschiedlichen Systemen verwendet werden; in einer
Ausführungsform wird der Mikrocomputer in einem System verwendet, das in
verallgemeinerter Form in Fig. 1 dargestellt ist. Das System
kann beispielsweise ein Sprachübertragungssystem, ein
Sprachanalysesystem, ein kleiner "Personalcomputer" oder
"Heimcomputer", ein Mikrocomputer mit einer einzigen Platine
für allgemeine Anwendungen, ein Textverarbeitungssystem, ein
Computerendgerät mit lokaler Datenverarbeitungsfähigkeit, einer
Bildschirmanzeige und einer Tastatur oder irgendeine von vielen
Anwendungen unterschiedlicher Art sein. Das System enthält eine
Einchip-MOS/LSI-Zentralverarbeitungseinheit oder einen
Mikrocomputer 10, der im folgenden im einzelnen beschrieben wird,
sowie einen Programm- oder Datenspeicher 11 und Ein-/Ausgabe-
oder E/A-Vorrichtungen 12. Gewöhnlich enthalten die
E/A-Vorrichtungen 12 für das typische System Analog/Digital- und/oder
Digital/Analog-Umsetzer, ein Modem, eine Tastatur, eine
Kathodenstrahlbildröhre, ein Plattenlaufwerk usw.. Häufig enthält
die E/A-Vorrichtung 12 eine Verbindung zu einem Prozessor für
allgemeine Anwendungen; das heißt, daß der Mikrocomputer 10 ein
angeschlossener Prozessor in einem größeren System ist, wobei
die Verbindung über die E/A-Vorrichtung 12 erfolgt. Der
Mikrocomputer 10, der Programmoder Datenspeicher 11 und die E/A-
Vorrichtung 12 tauschen über zwei parallele Mehrbit-Adressen-
und Datenbusse D und RA sowie einen Steuerbus 13 Daten aus.
Allgemein ausgedrückt, arbeitet das in Fig. 1 dargestellte
System folgendermaßen: der Mikrocomputer 10 ruft entweder
intern durch Zugriff auf den ROM 14 oder extern durch Aussenden
einer Adresse über den ROM-Adressenbus RA zum Speicher 11 (und
von RCLK- auf dem Steuerbus 13) ein Befehlswort ab. Wenn dies
extern geschieht, wird das Befehlswort über den Datenbus D von
der adressierten Stelle im Speicher 11 zurückerhalten. Dieser
Befehl wird im folgenden Maschinenzyklus (mit einer Länge von
200 ns, die von einem 20 MHz-Taktgeber oder Quarz X1, X2
festgelegt ist) ausgeführt, während ein neuer Befehl abgerufen
wird; die Ausführung eines Befehles kann den Zugriff auf den
chipinternen RAM 15 zum Abrufen eines Operanden enthalten oder
das Schreiben eines Ergebnisses in den Daten-RAM 15 sowie eine
arithmetische oder logische Operation in der ALU.
-
In dem im folgenden detailliert beschriebenen Beispiel
adressiert eine 12-Bit-Befehlsadresse, die intern an dem ROM 14
oder extern an dem RA-Bus anliegt, direkt 2¹² oder 4K Wörter an
Programmbefehlen oder Konstanten an den ROM 14 und den Speicher
11. Wenn aus dem Speicher 11 gelesen wird, wird ein Befehl DEN-
(Datenbusfreigabesignal invertiert) an den Steuerbus 13
angelegt. Es ist auch möglich, in den Speicher 11 zu schreiben, und
zu diesem Zweck wird ein Befehl WE-Schreibfreigabesignal
invertiert) durch die Vorrichtung 10 an eine der Leitungen des
Steuerbusses 13 angelegt; der Speicher 11 kann
Lese-/Schreibspeichervorrichtungen in einem Teil des Adressenbereichs oder
dem gesamten Adressenbereich enthalten, so daß der WE-Befehl
eine Schreibfunktion ermöglicht.
-
Die E/A-Vorrichtungen 12 werden als Datenanschlüsse
adressiert; diese Schnittstelle zu externen Vorrichtungen 12 wird
unter Verwendung der Adressen- und Datenbusse RA und D sowie
des Steuerbusses 13 verwirklicht, jedoch belegen die
E/A-Vor
richtungen 12 keine Plätze im logischen Adressenbereich, wie es
beim Speicher 11 der Fall ist. Dies steht im Gegensatz zur
herkömmlichen speicherorientierten Ein-/Ausgabe.
-
Bei der Datenein-/ausgabe über E/A-Vorrichtungen oder
Peripheriegeräte 12 wird ein 3 Bit breites Feld RAp aus dem Bus
RA verwendet, um einen von acht 16 Bit breiten Datenkanälen PO-
P7 in den peripheren Schaltungsanordnungen 12 auszuwählen.
Jeder Datenanschluß kann durch DEN- oder WE als Eingang oder
Ausgang festgelegt werden, so daß diese tatsächlich sechzehn 16
Bit breite Teile sind, wobei acht für die Eingabe und acht für
die Ausgabe verwendet werden. Der ausgewählte 16 Bit breite
Datenkanal wird durch RAp und DEN- oder WE- adressiert und
daraufhin wird auf ihn über den Bus D zum Lesen oder Schreiben
zugegriffen. Bei dieser Operation wird einer der beiden Befehle
EIN oder AUS verwendet; auf dem Steuerbus 13 ist WE- bei
Schreib- oder Out-Operationen aktiv, oder DEN- ist bei Lese-
oder IN-Operationen aktiv. Ein ROM-Takt RCLK ist bei jedem
Maschinenzyklus auf dem Steuerbus 13 aktiv, ausgenommen, wenn
entweder DEN- oder WE- aktiv ist; das heißt, daß der Speicher
11 in jedem Maschinenzyklus für einen möglichen chipexternen
Zugriff auf ein Befehlswort durch RCLK- aktiviert wird, daß
aber, wenn auf ein Peripheriegerät 12 unter Verwendung von DEN-
oder WE- zugegriffen wird, kein RCLK- auftritt.
DER MIKROCOMPUTER-CHIP
-
Der interne Aufbau des Mikrocomputers 10 ist in Fig. 2 in
einem detaillierten Blockdiagramm dargestellt. Diese
Vorrichtung ist eine integrierte Einchip-Halbleiterschaltung, die in
ein Standard-DIL-Gehäuse mit 40 Anschlußstiften oder einen
Chipträger eingesetzt ist. Sechzehn Anschlußstifte oder
Anschlüsse des Gehäuses werden für den 16 Bit breiten Datenbus D
benötigt, zwölf werden für den Adressenbus RA verwendet, und
die übrigen Anschlüsse werden für die Versorgungsspannungen Vdd
und Vss, den Quarz X1, X2 und den Steuerbus 13 verwendet.
-
Zusätzlich zum Programm- und Datenspeicher 14 und 15
enthält der Mikrocomputer 10 für das in Fig. 1 dargestellte System
eine Zentralverarbeitungseinheit oder CPU, und diese CPU
ent
hält eine 32-Bit-Rechen- und Logikeinheit oder ALU, einen 32-
Bit-Akkumulator Acc zum Aufnehmen der Operanden und Ergebnisse,
einen vom ALU getrennten Multiplizierer M, eine
Verschiebeeinrichtung 5, die einen Eingang des ALU darstellt, einen Status-
oder Flag-Decodierer SD, und einen Befehlsdecodierer ID1, der
das aktuelle Befehlswort empfängt und die Steuerbits für die
CPU und die Datenspeicherbereiche der Vorrichtung 10 erzeugt.
-
Dem Programmspeicher 14 sind zugeordnet: ein
Programmzähler PC zum Aufnehmen der Befehlsadresse für den Zugriff auf den
ROM 14 oder zum Abgeben auf den Bus RA zum Speicher 11, ein
Befehlsregister IR zum Empfangen des Befehlsworts vom ROM 14, ein
Stapelspeicher ST zum Sichern von Programmspeicheradressen und
ein Befehlsdecodierer ID2, der das aktuelle Befehlswort
empfängt und Steuerbits für den Programmspeicherbereich des
Mikrocomputers erzeugt. Die Befehlsdecodierer IDj und ID2 können
natürlich zu einem größeren Steuer-ROM zusammengefaßt werden oder
aber in kleinere PLAs oder eine wahlfreie Logik aufgeteilt
werden.
-
Dem Datenspeicher 15 sind zugeordnet: zwei
Hilfsadressenregister AR0 und AR1 für den Datenspeicher 15, ein
Seitenregister ARP, um zwischen den Registern AR0 und AR1 zu wählen, die
für die Datenspeicheradresse verwendet werden, und ein
Datenseiten-Pufferspeicher DP, um bestimmte Bits der
Datenspeicheradresse aufzunehmen.
-
Die CPU ist um zwei interne Busse herum angeordnet, einen
16 Bit breiten Programmbus (P-Bus) und einen 16 Bit breiten
Datenbus (D-Bus). Der Programm- und der Datenzugriff können daher
gleichzeitig geschehen, und die Adressenbereiche sind
voneinander getrennt. Der Mikrocomputer hat daher die
Harvard-Architektur, wenn auch ein Busaustauschmodul BIM beispielsweise das
Laden des Programmzählers PC von Acc oder den Zugriff auf den ROM
14 zum Abrufen von Konstanten über den P-Bus, das BIM und den
D-Bus ermöglicht.
-
Die beiden wichtigsten Anforderungen an einen
Signalverarbeitungs-Mikrocomputer sind hohe Rechengeschwindigkeit und
Flexibilität. Die Leistungsfähigkeit wird durch die Verwendung
getrennter, im wesentlichen chipinterner Programm- und
Datenspeicher 14 und 15, einen großen einzelnen Akkumulator Acc und
einen parallelen Multiplizierer M erreicht. Eine Operation mit
einem bestimmten Zweck, die Datenübertragung, ist innerhalb des
Datenspeichers 15 festgelegt, was die Leistungsfähigkeit bei
Faltungsoperationen weiter erhöht. Flexibilität wurde durch
Festlegung eines Befehlssatzes erreicht, der in bezug auf
Tabelle A beschrieben wird und der eine Speichererweiterung und
eine einzige Unterbrechungsebene aufweist.
-
Die Vorrichtung kann mit beispielsweise weniger als 2K
oder 2¹¹ Wörtern an chipinternem Programmspeicher 14 ausgelegt
werden, wenngleich der Aufbau eine Speichererweiterung bis zu
4K oder 2¹² Worten durch die Hinzufügung von externem
Programmspeicher im Speicher 11 erlaubt. Darüber hinaus ermöglicht eine
eigene Betriebsart, daß die Vorrichtung 10 als
System-Emulations-Vorrichtung ausgelegt wird. Bei dieser "System-Emulations"-
Betriebsart ist der gesamte 4K-Speicherplatz extern, und der
ROM 14 wird nicht verwendet.
SPEICHERBELEGUNGSPLÄNE
-
Ein Speicherbelegungsplan der in den Fig. 1 und 2
dargestellten Ausführungsform ist in Fig. 4a dargestellt, und ein
Speicherbelegungsplan des Ausführungsbeispiels der Fig. 3 ist
in Fig. 4b dargestellt. Da der Prozessor 10 in Fig. 2 einen 12
Bit breiten Adressenbus RA hat, umfaßt der
Programmspeicherbereich 4K oder 4.096 Wörter; der ROM 14 nimmt weniger als 2K
dieses Platzes ein. Gleichermaßen wird ein 4K umfassender
Datenspeicher-Adressenbereich zugelassen, in dem sich die 288
Wörter des RAM 15 befinden. Der E/A-Adressenbereich besteht aus
8 Wörtern, die durch eine 3-Bit-Adresse auf den Leitungen RAI
von Fig. 2 festgelegt sind. In ähnlicher Weise hat das Bauteil
in Fig. 3 drei getrennte Adressenbereiche für den
Programmspeicher, den Datenspeicher und die Ein-/Ausgabe, wie in Fig. 4b
gezeigt ist. Diese Bereiche werden extern durch die
Programmübernahme-, Datenübernahme- und E/A-Übernahmesignale auf
dem Steuerbus 13 unterschieden. Die chipinternen Speicherblöcke
bestehen aus insgesamt 544 Wörtern, die aus dem RAM 15 und dem
RAM 15P bestehen. Der Programm-/Daten-RAM-Block (256 Worte)
befindet sich auf den Seiten 4 und 5 des
Daten-Speicherbelegungs
plans, wenn er als Daten-RAM ausgelegt ist und auf den Seiten
510 und 511, wenn er als Programm-RAM ausgelegt ist. Der aus
dem RAM 15 (stets Daten-RAM) bestehende Block befindet sich auf
den Seiten 6 und 7 und in den oberen 32 Wörtern von Seite 0. Es
sei bemerkt, daß der Rest des Daten-Speicherbelegungsplans aus
bestimmten speicherzugeordneten Registern und reservierten
Speicherplätzen besteht. Reservierte Speicherplätze können
nicht für die Speicherung benutzt werden, und ihre Inhalte sind
undefiniert, wenn sie ausgelesen werden.
-
Die CNFD- und CNFP-Konfigurationsbefehle werden verwendet,
um den RAM 15P entweder als Daten- oder als Programmspeicher zu
konfigurieren. Ein BLKP-Befehl (Blockübertragung vom
Programmspeicher zum Datenspeicher) kann verwendet werden, um
Programminformationen zum RAM 15P zu übertragen, wenn er als Daten-RAM
konfiguriert ist und daraufhin kann ein Befehl CNFP
(konfiguriere einen Block als Programmspeicher) verwendet
werden, um ihn in Programm-RAM umzuwandeln. Es sei bemerkt, daß
der erste Befehlsaufruf nach einem CNFD- oder CNFP-Befehl aus
der vorausgehenden Speicherkonfiguration genommen wird. Es sei
weiterhin bemerkt, daß ein Rücksetzen den RAM 15P als Daten-RAM
konffiguriert.
-
Der Prozessor von Fig. 3 weist sechs Register auf, die an
den Datenspeicherplatzadressen 0 bis 5 in den
Datenspeicherbereich abgebildet sind. Dies sind die mit DRR, DXR, TIM, PRD,
IMR und GREG bezeichneten Register. Das DRR-Register ist ein
16-Bit-Datensenderegister mit einem seriellen Port. Das TIM-
Register ist ein 16-Bit-Zeitgeberregister, während PRD ein 16-
Bit-Perioden-Register ist, das in Zeitgeberfunktionen verwendet
wird. Ein Unterbrechungs-Maskenregister IMR enthält eine 6-Bit-
Unterbrechungsmaske. Der GREG-Speicherplatz ist ein globales 8-
Bit-Speicherzuweisungsregister. Auf diese Register kann in
derselben Weise zugegriffen werden, wie auf jeglichen anderen
Datenspeicherplatz, abgesehen davon, daß Blockverschiebungen
unter Verwendung von BLKD von diesen speicherzugeordneten Plätzen
nicht zulässig sind.
-
Der Prozessor liefert Befehle für Daten- und Programm-
Blockverschiebungen und Datenverschiebungsfunktionen, die den
konfigurierbaren chipinternen RAM 15P effizient nutzen. Der
BLKD-Befehl verschiebt einen Block innerhalb der
Datenspeicherbereiche und der BLKP-Befehl verschiebt einen Block vom
Programmspeicherbereich zum Datenspeicherbereich. Diese Befehle
bewirken Blockverschiebungen vom chipinternen oder chipexternen
Speicher.
-
Der Datenverschiebungsbefehl DMOV ist zur Verwirklichung
von Algorithmen nützlich, bei denen die sogenannte
z-Verzögerungsoperation verwendet wird, wie bei Faltungen und digitalen
Filteroperationen, wo Daten durch ein Zeitfenster
weitergeleitet werden. Die Datenverschiebungsfunktion ist über die Grenze
der chipinternen Datenspeicherblöcke stetig, sie kann jedoch
nicht verwendet werden, wenn chipexterner Datenspeicher
angesprochen wird. Die DMOV-Funktion ist im chipinternen RAM 15
oder 15P verwirklicht und äquivalent zu der der Vorrichtung aus
Fig. 2. DMOV erlaubt das Kopieren eines Wortes aus dem momentan
adressierten Datenspeicherplatz im chipinternen RAM in den
nächsthöheren Speicherplatz, während die Daten des adressierten
Speicherplatzes im selben Zyklus anschließend bearbeitet werden
(beispielsweise durch das ALU). Eine Operation in der
Hilfsrecheneinheit ARU kann ebenfalls im selben Zyklus ausgeführt
werden, wenn die indirekte Adressierungsart verwendet wird. Der
Befehl MACD (multipliziere und akkumuliere zusammen mit einer
Datenverschiebung) und der Befehl LTD (lade das T-Register,
akkumuliere das vorige Produkt und verschiebe die Daten) können
ebenfalls die Datenverschiebungsfunktion verwenden.
Programmzähler und Stapelspeicher
-
Der Prozessor von Fig. 3 enthält einen 16-Bit-Programmzähler PC
und einen Hardware-Stapelspeicher ST mit vier Speicherplätzen
zum Speichern der Inhalte des PC. Der Programmzähler PC
addressiert (über den P-Bus) den internen und externen
Programmspeicher durch Abrufen von Befehlen. Der Stapelspeicher-PC wird bei
Unterbrechungen, Aufrufen, Rücksprüngen und einigen Befehlen
für besondere Zwecke, wie BLKP/BLKD (Blockverschiebung vom
Programm/Datenspeicher zum Datenspeicher) und TBLR/TBLW (Tabellen-
Lesen/Schreiben) zum Übertragen von Daten zwischen den
Programm- und Datenspeicherplätzen verwendet. Der Programmzähler
PC adressiert entweder den chipinternen oder chipexternen
Programmspeicher über den Programm-Adressenbus P-Bus, über den ein
Befehl vom Programmspeicher abgerufen und in das
Befehlsregister übertragen wird. Wenn das IR geladen ist, ist der
Programmzähler PC bereit, den nächsten Befehlsabrufszyklus zu
beginnen. Der PC adressiert den chipinternen RAM 15P, wenn er als
Programmspeicher konfiguriert ist, oder er adressiert
chipexternen Programmspeicher über den 16 Bit breiten Adressenbus RA
und den externen Datenbus D. Der Programmzähler adressiert
weiterhin den Datenspeicher während eines BLKD-Befehls, der
Datenblöcke von einem Bereich des Datenspeichers zu einem anderen
überträgt. Der Inhalt des Akkumulators Acc kann in den
Programmzähler PC geladen werden, um "computed go to"-Befehle
unter Verwendung des BIM wie zuvor zu verwirklichen.
-
Der PC wird entweder mit PC + I oder mit einer
Verzweigungsadresse (für Befehle wie Verzweigungen, Aufrufe oder
Unterbrechungen) geladen, um einen neuen Abrufzyklus zu beginnen.
Im Falle von bedingten Verzweigungen, bei denen die Verzweigung
nicht ausgeführt wird, wird der PC nach dem Speicherplatz der
Verzweigungsadresse noch einmal inkrementiert, d. h. auf PC + 2.
Der Prozessor weist weiterhin ein Befehlswiederholungsmerkmal
auf, das die (N + 1)-fache Durchführung des nachfolgenden
einzelnen Befehls zuläßt, wobei N durch Laden eines
8-Bit-Wiederholungszählers RPTC festgelegt wird. Wenn dieses
Wiederholungsmerkmal verwendet wird, wird der Befehl ausgeführt und der RPTC
dekrementiert, bis der RPTC den Wert 0 annimmt. Dieses Merkmal
ist bei vielen Befehlen, wie NORM (normiere die Inhalte des
Akkumulators), MACD (multipliziere und akkumuliere zusammen mit
einer Datenverschiebung) und SUBC (bedingte Subtraktion)
nützlich.
SYSTEMSTEUERUNG UND SCHNITTSTELLE
-
Auf dem Prozessorchip sind Systemsteueroperationen durch einen
chipinternen Zeitgeber, einen Wiederholungszähler, externe und
interne Unterbrechungen und ein externes Rücksetzsignal
vorgesehen.
-
Der speicherzugeordnete 16-Bit-Zeitgeber, der für externe
Steueroperationen verwendet wird, ist ein Abwärtszähler, der
von einem internen Takt stetig getaktet wird. Dieser Takt wird
durch Teilen der CLKOUT1-Frequenz durch vier abgeleitet. Ein
Rücksetzsignal setzt den Zeitgeber auf seinen Maximalwert
(FFFF), initialisiert jedoch nicht das Periodenregister PRD.
Nach dem Auslösen eines Rücksetzbefehls beginnt der Zeitgeber
zu dekrementieren. Hierauf können der Zeitgeber oder das
Periodenregister PRD programmgesteuert durch einen Befehl wieder
geladen werden.
-
Eine Zeitgeberunterbrechung TINT wird jedesmal erzeugt,
wenn der Zeitgeber auf Null dekrementiert. Der Zeitgeber wird
mit dem im Periodenregister PRD enthaltenen Wert innerhalb
desselben Zyklus, in dem er Null erreicht, wieder geladen, so daß
programmiert werden kann, daß Unterbrechungen in regelmäßigen
Abständen von 4x(PRD) CLKOUT1-Zyklen stattfinden. Dieses
Merkmal ist für synchrones Abtasten oder Schreiben auf
Peripheriegeräte nützlich. Auf das Zeitgeberregister TIM und das
Periodenregister PRD kann zu jeder Zeit durch einen Befehl
zugegriffen werden. Ein Wert des Periodenregisters von Null ist nicht
zulässig. Wenn der Zeitgeber nicht verwendet wird, sollte die
Zeitgeber-Unterbrechung maskiert werden oder alle maskierbaren
Unterbrechungen durch einen DINT-Befehl gesperrt werden.
-
Ein Wiederholungsmerkmal erlaubt es, daß ein einzelner
Befehl bis zu 256 mal durchgeführt wird. Der Wiederholungszähler
RPTC wird entweder mit einem Wert des Datenspeichers (über
einen RPT-Befehl) oder einen Direktbefehl (RPTK-Befehl) geladen.
Der Wert dieses Operanden ist um eins kleiner als die Anzahl
mit der der darauffolgende Befehl ausgeführt wird. Das
Wiederholungsmerkmal kann zusammen mit Befehlen wie
Multiplizieren/Akkumulieren/Blockverschiebungen, E/A-Übertragungen und
Tabellen-Lese/Schreib-Operationen verwendet werden. Solche
Befehle, die normalerweise in mehreren Zyklen ablaufen, werden
bei Verwendung des Wiederholungsmerkmals überlappend ausgeführt
und werden effektiv zu Befehlen, die in einem Einzelzyklus
ablaufen. Beispielsweise benötigt der Tabellenlesebefehl
gewöhnlich drei Zyklen, aber wenn er wiederholt ausgeführt wird, kann
infolge der Überlappung in jedem Zyklus ein Tabellenplatz
ausgelesen werden.
-
Der Prozessorchip weist drei extern maskierbare Anwender-
Unterbrechungen INT2-INTO auf, die für externe Geräte zur
Verfügung stehen, die den Prozessor unterbrechen. Interne
Unterbrechungen werden durch den seriellen Anschluß (RINT und XINT),
durch den Zeitgeber (TINT) und durch den
Softwareunterbrechungsbefehl (TRAP) erzeugt. Die Unterbrechungen werden mit
Prioritäten versehen, wobei das Rücksetzen die höchste
Priorität hat und die Unterbrechung des Sendens über den seriellen
Anschluß die niedrigste Priorität hat. Alle
Unterbrechungsspeicherplätze im Speicherplan befinden sich in
Zweiwortabgrenzungen, so daß Verzweigungsbefehle, falls gewünscht, an diesen
Speicherplätzen angepaßt werden können. Eine Steuerschaltung
schützt Mehrzyklen-Befehle vor Unterbrechungen; wenn eine
Unterbrechung während eines Mehrzyklen-Befehls auftritt, wird die
Unterbrechung nicht durchgeführt, bevor der Befehl beendet ist.
Dieser Mechanismus betrifft Befehle, die wiederholt werden,
oder die infolge des READY-Signals zu Mehrzyklen-Befehlen
werden.
-
Die Verwendung des RS-Signals auf dem Steuerbus bewirkt
taktunabhängig, daß der Prozessor die Arbeit beendet und setzt
den Programmzähler PC auf Null. Für den Betrieb des Systems
beim Einschalten der Versorgungsspannung muß ein Rücksetzsignal
(RS) während wenigstens fünf Taktzyklen angelegt werden, um ein
Rücksetzen der Vorrichtung sicherzustellen. Die Abarbeitung
durch den Prozessor beginnt am Speicherplatz 0 des in Fig. 7b
dargestellten Belegungsplans, der normalerweise einen
Verzweigungsbefehl enthält, um die Programmausführung zu der
Initialisierungsroutine des Systems zu leiten.
-
Die Daten-, Programm- und Ein-/Ausgabe-Adressenbereiche
von Fig. 7b bieten eine Schnittstelle zum Speicher- und zur
Ein-/Ausgabe. Die lokale Speicherschnittstelle besteht aus
einem 16 Bit breiten parallelen Datenbus D, einem 16 Bit
breiten Adressenbus RA, Speicherplatz-Auswahlsignalen für
Daten, Programme und Ein-/Ausgabe (DA, PS und IS) und weitere
Systemsteuersignale. Das R/W-Signal steuert die Richtung der
Übertragung und STRB liefert ein Zeitgebersignal zur Steuerung
der Übertragung. Das Konzept der Ein-/Ausgabe wird dadurch
vereinfacht, daß die Ein-/Ausgabe in derselben Weise behandelt
wird wie der Speicher. Ein-/Ausgabevorrichtungen werden unter
Verwendung der externen Adressen- und Datenbusse des Prozessors
in derselben Weise wie speicherzugeordnete Vorrichtungen dem
Ein-/Ausgabe-Adressenbereich zugeordnet, jedoch unter
Verwendung der Auswahlsignale. Die Schnittstelle zum Speicher und zu
Ein-/Ausgabevorrichtungen unterschiedlicher Geschwindigkeiten
wird unter Verwendung der READY-Leitung verwirklicht. Wenn
Transaktionen mit langsameren Vorrichtungen ausgeführt werden,
wartet der Prozessor, bis die andere Vorrichtung ihre Funktion
ausgeführt hat und benachrichtigt den Prozessor über die READY-
Leitung. Daraufhin fährt der Prozessorchip mit der Abarbeitung
fort.
-
Ein serieller Anschluß erlaubt den Datenaustausch mit
seriellen Vorrichtungen wie Codecs, seriellen A/D-Wandlern und
anderen seriellen Systemen mit einem Minimum an externer
Hardware. Der serielle Port kann auch für den Datenaustausch
zwischen Prozessoren bei Mehrprozessoranwendungen verwendet
werden. Der serielle Anschluß hat die folgenden zwei
speicherzugeordneten Register: das Datensenderegister DXR und das
Datenempfangsregister DRR. Da diese Register speicherzugeordnet sind,
kann auf sie in derselben Weise zugegriffen werden, wie auf
jeden anderen Datenspeicherplatz. Das DRR-Register und das DXR-
Register haben angegliederte Schieberegister, die das zu
empfangende oder sendende Bit festlegen (beginnend mit dem MSB).
Ein externer Taktgeber CLKX ist mit dem DXR verbunden und ein
Betriebszustandsbit TXM bestimmt, ob der einrahmende Impuls
(FSX) chipintern erzeugt wird oder von außerhalb des Chips
kommt. Das DRR weist einen Taktgeber mit einem seriellen
Anschluß CLKR und einen FSR-Impuls auf, die mit ihm gekoppelt
sind. Der serielle Anschluß arbeitet entweder in der
Byte-Betriebsart oder in der 16-Bit-Wort-Betriebsart.
-
Die Flexibilität dieses Aufbaus ermöglicht
Konfigurationen, die einen weiten Bereich von Systemerfordernissen
erfüllen, einschließlich Systemen, bei denen der Prozessorchip: ein
selbständig arbeitender Prozessor; ein Mehrfachprozessor mit
parallel angeordneten Bauteilen; ein
Slave/Host-Mehrfachprozes
sor mit globalem Speicherplatz; oder ein peripherer Prozessor
ist, der über prozessorgesteuerte Signale mit einer anderen
Vorrichtung verbunden ist. Die verschiedenen Konfigurationen
mit Mehrprozessorbetrieb sind nachfolgend beschrieben.
-
Zur Verwirklichung von Mehrprozessoranwendungen weist der
Prozessorchip die Fähigkeit auf, globalen Datenspeicherplatz
zuzuweisen und über die BR-(Busanforderung) und
READY-Steuersignale mit diesem Speicherplatz zu kommunizieren. Globaler
Speicher ist Datenspeicher, der von mehr als einem Prozessor
genutzt wird. Globaler Datenspeicherzugriff muß zugewiesen
werden. Das speicherzugeordnete 8-Bit-Speicherzuordnungsregister
GREG weist einen Teil des Datenspeicherplatzes als globalen
externen Speicher aus. Die Inhalte des GREGRegisters bestimmt die
Größe des globalen Speicherplatzes. Falls der laufende Befehl
einen Operanden innerhalb dieses Speicherplatzes adressiert,
wird die Busanforderung BR aktiviert, um die Steuerung des
Busses anzufordern. Die Länge des Speicherzyklus wird durch die
READY-Leitung gesteuert.
-
Der Prozessor unterstützt DMA (direkten Speicherzugriff)
auf seinen externen Programm-/Datenspeicher unter Verwendung
der HOLD- und HOLDA-Signale. Ein anderer Prozessor kann eine
vollständige Steuerung des externen Speichers übernehmen, indem
HOLD auf L-Pegel gesetzt wird, wodurch bewirkt wird, daß der
Prozessor seine Adressen-Daten- und Steuerleitungen in den
Tristate-Modus versetzt.
Speicherverwaltung
-
Die Struktur des Speicherbelegungsplans von Fig. 4b ist
programmierbar und kann bei jeder Aufgabe des Prozessors
wechseln. Es werden Befehle zum Verschieben von Blocks von externem
Datenspeicher oder Programmspeicher in den Datenspeicher
bereitgestellt, wobei ein Block des chipinternen DatenRAM als
Programmspeicher konfiguriert wird und ein Teil des externen
Datenspeichers als global festgelegt wird. Beispiele für das
Verschieben, Konfigurieren und Manipulieren von Speicher werden
nun kurz beschrieben.
-
Da der Prozessor zwei Bereiche mit 64K Speicherplatz
direkt adressiert, können Blöcke von Daten- oder Programmcode
chipextern in langsamen speichern gespeichert und dann für eine
schnellere Abarbeitung auf den Chip geladen werden. Die BLKD-
und BLKP-Befehle erleichtern
Speicher-zu-Speicher-Blockübertragungen auf dem Prozessor TMS32020. Der BLKD-Befehl überträgt
einen Block innerhalb des Datenspeichers, wobei ihm gewöhnlich
ein RPTK-Befehl vorangestellt wird, der eine Zahl, wie
beispielsweise 255 enthält, um 256 Wörter zu übertragen.
-
Die Konfigurierbarkeit des chipinternen RAMs und der große
externe Speicher erleichtern das Übertragen von Daten- oder
Programmspeicher auf den Chip 10. Weiterhin kann der RAM 15P
sowohl für Daten- als auch für Programmspeicher dynamisch
konfiguriert werden, da die Daten im RAM 15 beim Umdefinieren des
chipinternen RAMs erhalten bleiben. Fig. 4 stellt die
Änderungen im chipinternen RAM dar, wenn die Konfigurationen
gewechselt werden: insbesondere ändern die CONFD- und CONFP-
Befehle die effektive Adresse des RAM 15P und ändern dessen
Adressen- und Datenbusse. Der chipinterne Speicher wird durch
ein Rücksetzen oder durch die CNFD- und CNFPBefehle
konfiguriert. Der RAM 15P wird durch Ausführen von CNFD oder
Rücksetzen als Datenspeicher konfiguriert oder ein CNFP-Befehl
konfiguriert diesen Block als Programmspeicher. Beispielsweise kann
Programm-Code unter Verwendung von BLKD in den RAM 15P geladen
werden, daraufhin ein CNFP-Befehl ausgeführt werden, um zu
rekonfigurieren und daraufhin der Code vom RAM 15P ausgeführt
werden. Der erste Befehlsabruf nach einem CNFP- oder
CNFD-Befehl wird aus der vorangegangenen Speicherkonfiguration
entnommen; dies bedeutet, daß ein CNFP-Befehl an der externen
Programmspeicherstelle 65.278 angeordnet werden muß, wenn die
Ausführung mit dem ersten Wort des RAM 15P an der Stelle 65.280
nach einem weiteren externen Befehlsabruf beginnen soll. Wenn
der an der Speicherstelle 65 279 untergebrachte Befehl ein
Zwei-Wort-Befehl ist, wird das zweite Wort dann von der ersten
Speicherstelle im RAM 15P abgerufen. Wahlweise kann der
Anwender vom externen Programmspeicher 12 aus arbeiten, wenn der
gesamte chipinterne RAM als Datenspeicher verwendet werden soll.
Der RAM 15 wird stets in den Datenspeicherbereich abgebildet.
-
Für fast alle Befehle ist die Ausführungszeit für Programme im
chipinternen RAM die gleiche wie für Programme im externen
Speicher, der ohne Wartezustände arbeitet, unter der Annahme,
daß sich die Daten im internen RAM befinden. Eine Ausnahme
hiervon sind die IN- und OUT-Befehle. Wenn sie vom chipinternen
RAM ausgeführt werden, werden diese Befehle in einem Zyklus
ausgeführt.
-
Globaler Speicher ist Speicher, der auf mehr als einen
Prozessor aufgeteilt ist, deshalb muß der Zugriff auf ihn
zugeteilt werden. Wenn globaler Speicher verwendet wird, wird der
Adressenbereich des Prozessors in einen lokalen und einen
globalen Abschnitt eingeteilt. Der lokale Abschnitt wird vom
Prozessor benutzt, um seine eigene Arbeit durchzuführen und der
globale Abschnitt wird für die Kommunikation mit anderen
Prozessoren verwendet. Im Prozessor wird ein speicherzugeordnetes
GREG-Register bereitgestellt, das es erlaubt, einen Teil des
Datenspeichers als globalen externen Speicher zu spezifizieren.
GREG, das an der Datenspeicheradressenstelle 5
speicherzugeordnet wird, ist ein 8-Bit-Register, das mit den acht LSBs des
internen D-Busses verbunden ist. Die Inhalte von GREG bestimmen
die Größe des globalen Speicherplatzes. Die zulässigen Werte
von GREG und die entsprechenden globalen Speicherplätze sind
unten dargestellt:
-
Wenn ein Befehl Daten im globalen Speicher adressiert, wird das
Busanforderungssignal BR auf dem Steuerbus 13 aktiviert, um die
Verwendung von globalem Speicher anzufordern. Bevor der
Speicherzugriff vorgenommen wird, prüft die Steuerschaltung, ob
READY aktiviert ist. Wenn READY aktiviert ist, wird der Zugriff
auf den globalen Speicher durchgeführt. Nach Beendigung des
Zyklus des globalen Speicherzugriffs und unter der Bedingung, daß
die Buszuweisungslogik weiterhin READY aktiviert, führt der
Prozessor in jedem Systemzyklus einen globalen Speicherzugriff
durch, bis READY entfernt ist.