DE3650374T2 - Mikroprozessor mit einer Blockübertragungsinstruktion. - Google Patents

Mikroprozessor mit einer Blockübertragungsinstruktion.

Info

Publication number
DE3650374T2
DE3650374T2 DE19863650374 DE3650374T DE3650374T2 DE 3650374 T2 DE3650374 T2 DE 3650374T2 DE 19863650374 DE19863650374 DE 19863650374 DE 3650374 T DE3650374 T DE 3650374T DE 3650374 T2 DE3650374 T2 DE 3650374T2
Authority
DE
Germany
Prior art keywords
data
memory
instruction
address
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19863650374
Other languages
English (en)
Other versions
DE3650374D1 (de
Inventor
Edward R. Caudel, Deceased
Daniel L. Houston Texas 77042 Essig
Surendar S. C/O Honeywell Inc. Colorado Springs Co 80906 Magar
Stephen P. Missouri City Tx 77489 Marshall
Kevin C. Houston Tx 77077 Mcdonough
Richard D. Houston Tx 77036 Simpson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/701,829 external-priority patent/US4713749A/en
Priority claimed from US06/701,827 external-priority patent/US4713748A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE3650374D1 publication Critical patent/DE3650374D1/de
Publication of DE3650374T2 publication Critical patent/DE3650374T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Complex Calculations (AREA)

Description

  • Diese Erfindung bezieht sich auf einen Mikroprozessor mit einem Blockübertragungsbefehl.
  • Die Figuren 1 und 2, die diese Beschreibung begleiten, sind in EP-A-0 086 307 und US-A-4 491 910 enthalten.
  • In EP-A-0 073 419 wird ein dynamisch programmierbares Verarbeitungselement für die Verwendung zusammen mit einem Mikroprozessor zur Ausführung komplizierter Rechenvorgänge, wie sie insbesondere zur Sprachverarbeitung erforderlich sind, beschrieben. Der Mikroprozessor bewirkt die Übertragung von Programmen und Daten zum dynamisch programmierbaren Verarbeitungselement für die Aufgaben, die es ausführen muß.
  • In RADIO-FERNSEHEN-ELEKTRONIK, Bd. 33, Nr. 12, Dez. 1984, S. 773-776, offenbart ein Artikel mit dem Titel "Multimikrorechnersysteme 9" von W. Mathes die Übertragung eines gesamten Programms durch einen Blockbefehl von einem externen Speicher zum internen Speicher eines Mikroprozessors.
  • Im IBM DISCLOSURE BULLETIN, Bd. 26, Nr. 11, April 1984, S. 5.794-5.795, offenbart ein Artikel mit dem Titel: "Loadable Program Storage Feature for an Existing Fixed Program Device" von M. N. Day et al, die Hinzufügung von RAM- zum ROM-Befehlsspeicher, der üblicherweise in dem betroffenen Prozessor bereitgestellt ist, so daß die Befehle erweitert werden können. Das Laden des RAMS und eines Adressenzählers für den RAM wird über den E/A-Bus unter Verwendung weiterer in einem zusätzlichen ROM gespeicherter Befehle ausgeführt. Der Befehlsspeicher des RAMs ist so angelegt, daß er für die Befehls-Abrufoperation des Prozessors zugängig ist.
  • EP-A-0 086 307 offenbart ein Mikrocomputersystem für die digitale Signalverarbeitung, das eine Mikroprozessorvorrichtung enthält, die in einer einzigen integrierten Schaltung ausgebildet ist, und das Dateneingangs- und Datenausgangsanschlüsse sowie Adressenausgangsanschlüsse aufweist, wobei die Mikroprozessorvorrichtung eine Rechen- und Logikeinheit, einen Lese-/Schreib-Datenspeicher, einen Festspeicher für Programme, Steuermittel zum Steuern der Arbeit der Rechen- und Logikeinheit abhängig von Befehlswörtern und interne Busmittel, die die Bestandteile der Vorrichtung verbinden und die mit den Anschlüssen der Vorrichtung verbunden sind, enthält.
  • 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.
  • Gemäß der vorliegenden Erfindung wird eine in einer einzigen integrierten Schaltung ausgebildete Mikrocomputervorrichtung mit Dateneingangs- und Datenausgangsanschlüssen und mit Adressenausgangsanschlüssen geschaffen, wobei die Vorrichtung in der integrierten Schaltung enthält
  • eine Rechen- und Logikeinheit mit einem Dateneingang und einem Datenausgang,
  • eine Steuerschaltung, die abhängig von aus einem Befehlssatz ausgewählten Befehlswörtern arbeitet und mit der Rechen- und Logikeinheit verbundene Ausgänge aufweist, 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 Lese-/Schreib-Datenspeicher mit einem Adresseneingang sowie einem Dateneingang und einem Datenausgang,
  • einen Programmspeicher mit einem Adresseneingang und wenigstens einem Programmausgang, und
  • interne Daten- und Adressenbusse, 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,
  • dadurch gekennzeichnet, daß
  • die Steuerschaltung einen Wiederholungszähler enthält, und der Befehlssatz ein "Wiederholungs"- Befehlswort enthält, in dem eine Nummer enthalten ist, wobei auf das "Wiederholungs"-Befehlswort ein weiteres aus dem Befehlssatz ausgewähltes Befehlswort folgt, und wobei sie so ausgebildet ist, daß der von dem ausgewählten Befehlswort repräsentierte Befehl von der Steuerschaltung so oft ausgeführt wird, wie durch die in dem "Wiederholungs"- Befehlswort enthaltene Nummer festgelegt ist, wobei die Nummer in dem Wiederholungsspeicher gespeichert ist, der mit jeder Ausführung des ausgewählten Befehls dekrementiert wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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 Programmabrufin 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 16x16-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.
  • In einer weiteren Ausführungsform wird ein Prozessor-Chip wie oben beschrieben hergestellt, jedoch ohne chipinternem Programm-ROM. Statt dessen 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).
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen Merkmale, die als charakteristisch für die Erfindung angesehen werden, sind in den beigefügten Ansprüchen dargelegt. Die Erfindung selbst kann jedoch, ebenso wie ihre weiteren Merkmale und Vorteile am besten durch Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den begleitenden Zeichnungen beim Lesen verstanden werden, in der
  • Figur 1 ein elektrisches Blockdiagramm eines Mikrocomputersystems ist, in dem Merkmale der Erfindung verwendet werden;
  • Figur 2 ein elektrisches Blockdiagramm einer MOS/LSI- Mikrocomputervorrichtung (einschließlich einer CPU oder Zentralverarbeitungseinheit) ist, die in dem in Fig. 1 dargestellten System verwendet wird und Merkmale der Erfindung verwendet;
  • Figur 3 ein elektrisches Blockdiagramm einer Mikrocomputervorrichtung ähnlich Fig. 2 ist, die jedoch Merkmale einer weiteren Ausführungsform der Erfindung enthält;
  • Figuren 4a und 4b jeweils Speicherbelegungspläne für die in den Fign. 2 und 3 dargestellten Geräte sind.
  • DETAILLIERTE 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 großeren System ist, wobei die Verbindung über die E/A-Vorrichtung 12 erfolgt. Der Mikrocomputer 10, der Programm- oder 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 0peranden 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 212 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- Vorrichtungen 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 P0-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 aufihn ü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 enthält eine 32-Bit-Rechen- und Logikeinheit oder ALU, einen 32-Bit-Akkumulator Acc zum Aufnehmen der 0peranden und Ergebnisse, einen vom ALU getrennten Multiplizierer M, eine Verschiebeeinrichtung S, 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 für den Empfang des aktuellen Befehlsworts empfängt und Steuerbits für den Programmspeicherbereich des Mikrocomputers erzeugt. Die Befehlsdecodierer IDj und 1D2 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.
  • SIGNALPROZESSOR MIT DUAL-RAM
  • Eine weitere Ausführungsform des Prozessors aus den Fign. 1 bis 2 wird unter Bezugnahme auf Fig. 3 beschrieben. Die Vorrichtung in Fig. 3 gleicht in den meisten Beziehungen dem Chip 10 aus Fig. 2 und führt auch wirklich den Befehlssatz aus Tabelle A des US-Patents 4 491 910 (mit gewissen Ausnahmen, wie erläutert werden wird) aus, aber auch wichtige zusätzliche Befehle. Der Prozessor aus Fig. 3 enthält einen Datenbus D-Bus und einen Programmbus P-Bus wie zuvor zusammen mit einer Rechen- und Logikeinheit ALU, einem Multiplizierer M, einem Akkumulator Acc, einem Bitstellenverschieber S mit Vorzeichenerweiterung, einem Programmzähler PC, einem Stapelspeicher ST, Hilfsregistern AR0 und AR1 und einem Daten-RAM 15; getrennte Programm- und Datenpfade sind wie zuvor bei der sogenannten Harvard-Architektur vorgesehen.
  • Im Unterschied zur Ausführungsform aus Fig. 2 jedoch hat der Prozessor aus Fig. 3 keinen chipinternen ROM 14, sondern statt dessen einen zweiten RAM 15P, welcher entweder für Daten oder für Programme verwendet wird. Auch werden drei weitere Hilfsregister AR2, AR3 und AR4 verwendet.
  • Ein wichtiges Merkmal ist, daß die zwei RAMS 15 und 15 P unter Verwendung der Konfigurations-Befehle dynamisch umkonfigurierbar sind, wie beschrieben wird, das heißt, der Speicher 15P kann wie der RAM 15 wahlweise zur Verwendung als Datenspeicher oder als Programmspeicher (wie der ROM 14 aus Fig. 2) geschaltet werden. Der Prozessor kann ohne chipinternen Programmspeicher arbeiten, indem das Ausgangssignal des Programmzählers PC an den externen Adressenbus RA angelegt wird und der adressierte Befehl über den externen Datenbus D von einem chipexternen Speicher empfangen wird, oder es kann ein Block von Befehlswörtern von einer chipexternen Quelle unter Verwendung von Übertragungsbefehlen in den RAM 15P geladen werden und daraufhin der RAM 15P als Programmspeicher für die schnelle Ausführung wiederholter Programme verwendet werden. In einem Beispiel enthält der RAM 15 288 Wörter (16 Bit pro Wort), die permanent im Datenspeicherplatz abgebildet sind, während der RAM 15P 256 Wörter enthält, die vom Programm gesteuert entweder im Datenspeicherraum oder im Programmspeicherplatz abgebildet werden können. Es können demnach alle 544 Wörter am Datenbus D der chipinternen RAMS 15 und 15 P als Datenspeicher verwendet werden, und Befehle von chipexternen Bauteilen (Speicher 11 aus Fig. 1) können mit voller Geschwindigkeit geliefert werden; in der anderen Konfiguration können die 288 Wörter des RAM 15 als Datenspeicher und die 256 Wörter des RAM 15P als Programm-Cache-Speicher verwendet werden, so daß demnach Befehlswörter von langsameren chipexternen Speichervorrichtungen auf den chipinternen RAM geladen werden und mit voller Geschwindigkeit ausgeführt werden. Mehrere Blockübertragungsbefehle sind zu einer effizienten Verwaltung dieser Speicherplätze zusammengefügt; diese Befehle können Befehlswörter, Daten oder E/A-Informationen bei einer Rate von bis zu einem Wort pro Maschinenzyklus durch die chipinternen oder chipexternen Adressenplätze verschieben.
  • Die Dual-RAM-Architektur ermöglicht weiterhin die Ausführung eines Multiplizier-/Akkumulier-Befehls in einem einzigen Zyklus (des unten beschriebene MAC-Befehls). In diesem Fall werden sowohl der Datenbus D-Bus als auch der Programmbus P- Bus zum Übertragen der Operanden auf den Multiplizierer M verwendet, während der MAC-Befehl wiederholt wird. Eine Daten-Verschiebefunktion, die im chipinternen RAM 15 ausgeführt wird, um die Verzögerungsoperation zu erzeugen, die für digitale Filter-Algorithmen verwendet werden; ein "Multiplizier/Akkumulier- und Datenverschiebe"-Befehl MACD bietet alle Funktionen, die zur Ausführung eines Transversalfilter-Zugriffs in einem einzigen Maschinenzyklus erforderlich sind. Der häufig als Ergebnis einer Multiplikation auftretende Überlauf kann durch Verwendung einer Rechts-Verschiebung des 32-Bit-Ergebnisses am ALU-Ausgang, einer Sättigungsbetriebsart für den ALU-Ausgang ähnlich wie in Fig. 2 behandelt werden.
  • Der Prozessor aus Fig. 3 hat drei hauptsächliche Speicher- Adressierungsarten: direkte, indirekte und unmittelbare Adressierung. Bei der direkten Adressierungsart wird eine Adresse im Befehl festgelegt. Bei der indirekten Adressierungsart wird eine Adresse durch eine der fünf 16-Bit- Hilfsregister AR0 bis AR4 erzeugt. Diese Hilfsregisterdatei AR0 - AR4 wird durch eine 16-Bit-Hilfsregister-Recheneinheit ARA unterstützt, die so programmiert werden kann, daß sie eine Adresse parallel mit den Datenoperationen aufwärts oder abwärts indexiert. Der Prozessor kann auch so programmiert werden, daß er bei einem Vergleich der Inhalte ausgewählter Hilfsregister AR0 bis AR4 unter Verwendung der Recheneinheit ARA verzweigt. Der Prozessor hat einen Bereich unmittelbarer Befehle, in dem im Programm Daten als Konstanten verwendet werden, was häufig bei Filter-Algorithmen verwendet wird. Eine Tabelle von Konstanten kann auch unter Verwendung von Tabellen-Lesebefehlen bei einer Rate von einem Wort pro Maschinenzyklus in den externen Programmspeicher (Speicher 11 aus Fig. 1) zum Einlesen in den Datenspeicherplatz (d. h. in den RAM 15P) während der Programmausführung sortiert werden. Daten können auch mit derselben Rate vom Datenspeicherplatz zum Programmspeicherplatz verschoben werden. Ein Wiederholungsbefehl RPT sorgt für eine Komprimierung des Codes und für eine Verminderung des Aufwands für Verzweigungen; der Befehl RPTK n erlaubt die (n+1)-fache Ausführung des nachfolgenden Befehls. Beispielsweise kann ein Transversalfilter-Code mit 50-fachem Abgriff durch zwei Befehle, RPTK 49 und MACD, festgelegt werden.
  • Der Prozessor von Fig. 3 tauscht über seinen einzigen externen Datenbus D und den Adressenbus RA den Steuerbus 13 Daten mit chipexternen Programmen, E/A-Vorrichtungen oder anderen Prozessoren aus. Abhängig von den Systemerfordernissen können die externen Vorrichtungen (Speicher 11 oder E/A in Fig. 1) unterschiedliche Zugriffszeiten haben, da Wartezustände in die Speicherzyklen eingefügt werden können. Der Prozessor hat auch mehrere zusätzliche Einrichtungen zum Unterstützen einer Mehrprozessor-Schnittstelle, bei der ein Teil des externen Datenspeichers von mehreren Prozessoren geteilt werden kann; d. h. zwei oder mehrere Prozessoren von Fig. 6 können in einem einzigen System verbunden werden. Ein Halteanschluß und drei Unterbrechungsanschlüsse am Steuerbus 13 bewirken Host/Slave-Systemkonfigurationen und Mehrprozeßbetrieb. Weiterhin können mehrere dieser Prozessoren auf dem Taktpegel über einen Synchronisierungsanschluß miteinander synchronisiert werden.
  • SPEICHERBELEGUNGSPLÄNE
  • Ein Speicherbelegungsplan des Ausführungsbeispiels der in den Figuren 1 und 2 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übernahmeund 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 lsP bestehen. Der Programm-/Daten-RAM-Block (256 Worte) befindet sich auf den Seiten 4 und 5 des Daten-Speicherbelegungsplans, 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 konfiguriert.
  • 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 + 1 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.
  • Der Stapelspeicher ST ist durch Verwendung der Befehle PUSH und POP erreichbar. Jedesmal, wenn die Inhalte des PC in den obersten Bereich des Stapelspeichers geschoben werden, werden die vorherigen Inhalte jeder Ebene nach unten verschoben, und der vierte Speicherplatz des Stapelspeichers geht verloren. Daher gehen Daten verloren, falls mehr als vier aufeinanderfolgende PUSH-Operationen vor einer POP- Operation stattfinden. Das Umgekehrte geschieht bei POP- Operationen. Jeder POP-Befehl, der drei aufeinanderfolgenden POP-Befehlen folgt, liefert wiederholt den Wert der vierten Ebene des Stapelspeichers. Alle vier Ebenen des Stapelspeichers enthalten dann denselben Wert. Zwei weitere Befehle, PSHD und POPD übertragen einen Wert des Datenspeichers beispielsweise aus dem RAM 15 auf den Stapelspeicher ST oder übertragen einen Wert vom Stapelspeicher zum Datenspeicher. Diese Befehle erlauben den Aufbau eines Stapelspeichers im Datenspeicher-RAM 15 unter Verwendung von Software zum Verschachteln von Unterprogrammen/Unterbrechungen über vier Ebenen hinaus.
  • Die Schnittstelle zum lokalen Speicher besteht aus einem externen 16 Bit breiten parallelen Datenbus D, einem 16 Bit breiten Programm-Adressenbus RA, drei Anschlußstiften im Steuerbus 13 für die Speicherplatzauswahl PS, DS und IS sowie verschiedenen anderen Systemsteuersignalen. Das R/W- Signal steuert die Richtung der Übertragung und STRB liefert ein Taktsignal zur Steuerung der Übertragung. Die Verwendung eines BEREIT-Signals erlaubt die Erzeugung von Wartezuständen für den Datenaustausch mit langsameren chipexternen Speichern.
  • CPU
  • Die CPU enthält eine skalierende 16-Bit-Verschiebeeinrichtung S, einen 32 Bit breiten Pfad der Rechen- und Logikeinheit (ALU), einen 32-Bit-Akkumulator Acc und zusätzliche Verschiebeeinrichtungen, die an den Ausgängen des Akkumulators und des Multiplizierers verfügbar sind.
  • Bei der Verwirklichung eines typischen ALU-Befehls finden die folgenden Schritte statt: (1) Daten werden auf dem Datenbus D-Bus vom RAM 15 abgerufen; (2) die Daten durchlaufen die skalierende Verschiebeeinrichtung S und das ALU, wo die Rechenoperationen ausgeführt wird; und (3) das Ergebnis wird auf den Akkumulator Acc übertragen. Eine Eingabe in die ALU wird stets vom Akkumulator Acc übertragen, und die andere Eingabe kann vom Produktregister P des Multiplizierers M oder von der skalierenden Verschiebeeinrichtung S zugeführt werden, die über den D-Bus vom Datenspeicher geladen wird.
  • Die skalierende Verschiebeeinrichtung S weist einen 16-Bit- Eingang auf, der mit dem Datenbus D-Bus verbunden ist und einen 32-Bit-Ausgang, der mit dem ALU verbunden ist, und erzeugt eine Linksverschiebung von 0 bis 15 Bits auf den Eingabedaten, wie in bestimmten Bits des Befehls programmiert ist. Die LSBs des Ausgangs werden mit Nullen gefüllt und die MSBs können entweder mit Nullen gefüllt oder um Vorzeichen erweitert werden, abhängig von dem Status, der in das Bit SXM für die Vorzeichenerweiterungs-Betriebsart des statusregisters STO programmiert ist.
  • Die 32 Bit breite Rechen- und Logikeinheit ALU und der Akkumulator Acc führen einen weiten Bereich von Rechen- und Logikbefehlen aus, wobei die Mehrzahl davon in einem einzigen Taktzyklus abläuft. Die Überlaufsättigungs-Betriebsart kann durch die Befehle SOVM und ROVM (setze die Überlauf-Betriebsart oder setze sie zurück) programmiert werden. Wenn der Akkumulator sich in der Überlauf-Sättigungs-Betriebsart befindet und ein Überlauf stattfindet, wird der Akkumulator Acc mit der positivsten oder der negativsten Zahl geladen, was von der Richtung des Überlaufs abhängt. Daten, die in die ALU eingegeben werden, können durch die skalierende Verschiebeeinrichtung S skaliert werden.
  • Der Prozessor führt Verzweigungsbefehle aus, die vom Status der ALU abhängen. Der BACC-Befehl (verzweige zu einer Adresse im Akkumulator) bietet die Möglichkeit, zu einer durch den Akkumulator festgelegten Adresse zu verzweigen. Die BIT- (teste ein Bit) und BITT- (teste ein durch das T-Register festgelegtes Bit) Befehle ermöglichen das Testen eines festgelegten Bits eines Wortes im Datenspeicher, beispielsweise im RAM 15.
  • Der Prozessor unterstützt Gleitpunkt-Operationen für Anwendungen, die einen großen Dynamikbereich erfordern. Ein Normierungs (NORM)-Befehl wird verwendet, um im Akkumulator enthaltene Festpunkt-Zahlen durch Ausführung von Linksverschiebungen zu normieren. Der LACT-Befehl (lade den Akkumulator mit einer durch das T-Register festgelegten Verschiebung) denormiert eine Gleitpunktzahl, indem die Mantisse arithmetisch durch die skalierende Eingangs-Verschiebeeinrichtung linksverschoben wird. Die Anzahl der Verschiebungen ist in diesem Fall der Wert des Exponenten, der durch die vier niedrigwertigen Bits des T-Registers festgelegt ist. Die ADDT- und SUBT-Befehle (addiere zum oder subtrahiere vom Akkumulator zusammen mit einer durch das T-Register festgelegten Verschiebung) wurden ebenfalls vorgesehen, um zusätzliche Rechenoperationen zu ermöglichen. Auf diese Weise können Gleitpunktzahlen mit 16-Bit-Mantissen und 4-Bit-Exponenten bearbeitet werden.
  • Der 32-Bit-Akkumulator Acc ist für die Speicherung im Datenspeicher in zwei 16-Bit-Segmente aufgeteilt: in ACCH (hoher Bereich des Akkumulators) und ACCL (niedriger Bereich des Akkumulators). Zusätzliche Verschiebeeinrichtungen am Ausgang des Akkumulators liefern eine Verschiebung um 0, 1 oder 4 Stellen nach links. Diese Verschiebung wird ausgeführt, während die Daten zur Speicherung auf den Datenbus D-Bus übertragen werden; die Inhalte des Akkumulators Acc bleiben unverändert. Wenn die ACCH-Daten nach links verschoben werden, werden die LSBs vom ACCL übertragen und die MSBs gehen verloren. Wenn ACCL linksverschoben wird, werden die LSBs mit Nullen angefüllt und die MSBs gehen verloren.
  • Der Akkumulator Acc weist weiterhin eine interne Verschiebung um ein Bit nach links oder rechts (SFL- oder SFR-Befehle) zum Verschieben des Inhalts des Akkumulators auf. Das SXM-Bit beeinflußt auch die Festlegung des SFR-Befehls (verschiebe den Akkumulator nach rechts). Wenn SXM = 1 ist, bewirkt SFR eine arithmetische Rechtsverschiebung, wobei das Vorzeichen der Daten des Akkumulators erhalten bleibt. Wenn SXM = 0 ist, bewirkt SFR eine logische Verschiebung, wobei das LSB herausgeschoben wird und eine Null für das MSB hineingeschoben wird. Der SFL-Befehl (verschiebe den Akkumulator nach links) wird durch das SXM-Bit nicht beeinflußt und verhält sich in beiden Fällen gleich, wobei das MSB herausgeschoben wird und eine Null hineingeschoben wird. RPT oder RPTC kann mit diesen Befehlen zur Durchführung mehrfacher Verschiebungen verwendet werden.
  • Der Zweierkomplement-16x16-Bit-Hardware-Multiplizierer M kann in einem einzigen Maschinenzyklus ein 32-Bit-Produkt erzeugen. Zwei Register sind mit dem Multiplizierer verbunden: ein 16-Bit-Zwischenregister TR, das einen der Operanden für den Multiplizierer festhält und ein 32-Bit-Produktregister P, das das Produkt festhält, das sich aus der Multiplikation ergibt. Normalerweise bewirkt ein LT-Befehl (lade das T-Register) T das Laden eines Operanden (vom Datenbus), und der MPY-Befehl (multipliziere) liefert den zweiten Operanden (ebenfalls vom Datenbus). In diesem Fall kann in jeweils zwei Zyklen ein Produkt erhalten werden (einer für das Laden von T, einer für das Multiplizieren).
  • Zwei Multiplizier-/Akkumulier-Befehle (MAC und MACD) nutzen die Bandbreite des Multiplizierers M voll aus, was es ermöglicht, daß die beiden Operanden gleichzeitig verarbeitet werden. Für MAC und MACD werden die beiden Operanden in jedem Zyklus über die Programm- und Datenbusse P-Bus und D-Bus zu dem Multiplizierer M übertragen. Dies sieht in einem Zyklus ablaufende Multiplizier-/Akkumulier-Schritte vor, wenn sie mit dem RPT- oder RPTK-Befehl angewendet werden. Die SQRA-(quadriere/addiere) und SQRS-(quadriere/subtrahiere)- Befehle übertragen denselben Wert auf beide Eingänge des Multiplizierers, wenn ein Wert des Datenspeichers quadriert wird.
  • Nach der Multiplikation zweier 16-Bit-Zweierkomplementzahlen wird das 32-Bit-Produkt in das 32-Bit-Produktregister P geladen. Das Produkt kann direkt in die ALU übertragen werden oder wahlweise verschoben werden, bevor es zum Eingang der ALU übertragen wird. Vier Verschiebungsarten sind für den Ausgang des Produktregisters P verfügbar. Das PM-Feld des Statusregisters ST1 legt diese Verschiebungsart P fest: bei 00 erfolgt keine Verschiebung; bei 01 erfolgt eine Linksverschiebung um 1 Bit; bei 10 erfolgt eine Linksverschiebung um 4 Bits, und bei 11 erfolgt eine Rechtsverschiebung um 6 Bits. Durch den Pm-Wert festgelegte Linksverschiebungen sind für die Ausführung von Bruchrechnungen nützlich. Die Verwendung des PM-Werts zum Rechtsverschieben ermöglicht die Durchführung von 127 Multiplizier-/Akkumulierschritten (oder mehr), ohne daß ein Akkumulator-Überlauf stattfindet. Die vier niedrigstwertigen Bits des T-Registers legen auch eine variable Verschiebung durch die skalierende Verschiebeeinrichtung S für die LACT-/ADDT-/SUBT-Befehle (lade den Akkumulator / addiere zum Akkumulator / subtrahiere vom Akkumulator mit einer durch das T-Register festgelegten Verschiebung) fest. Diese Befehle sind bei Gleitpunkt-Rechenoperationen nützlich, wo eine Zahl denormiert werden muß, d.h. wo eine Umwandlung einer Gleitpunktzahl in eine Festpunkt-Zahl durchgeführt werden muß. Ein Bit-Testbefehl (BITT) ermöglicht das Testen eines Einzelbits eines Wortes in einem Datenspeicher auf der Basis des Werts, der in den vier LSBs des T-Registers enthalten ist.
  • Die CPU weist zwei Statusregister ST0 und ST1 auf, die den Status verschiedener Zustände und Betriebsarten enthalten. Die SST- und SST1-Befehle erlauben das Einspeichern des Statusregisters in den Datenspeicher. Die LST- und LST1-Befehle laden die Statusregister des Datenspeichers. Auf diese Weise kann der laufende Status der Vorrichtung bei Unterbrechungen und Aufrufen gesichert werden. Siehe unten für Informationen über die Organisation der Statusregister und die Funktion der Statusbits.
  • 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-INT0 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 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-Mehrfachprozessor 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 GREG- Registers 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.
  • UNTERBRECHUNGEN
  • Der Prozessor 10 von Fig. 3 weist sieben mit Prioritäten versehene gerichtete Unterbrechungen auf (die in der Reihenfolge der höchsten zur niedrigsten Priorität angeführt sind): Rücksetzen; Anwender-Interrupts # 0, #1 und #2; Unterbrechung des internen Zeitgebers; Unterbrechung des Empfangs über den seriellen Anschluß und Unterbrechung des Sendens über den seriellen Anschluß. Alle Unterbrechungen außer dem Rücksetzen sind maskierbar.
  • Das Rücksetzen ist eine nicht maskierbare externe Unterbrechung, die zu jedem Zeitpunkt verwendet werden kann, um den Chip in einen bekannten Zustand zu versetzen. Das Rücksetzen wird typischerweise nach dem Einschalten der Versorgungsspannung ausgeführt, wenn sich das System in einem unbestimmten Zustand befindet. Wenn das Rücksetzen durch Anlegen eines L-Pegels an den RA-Eingangsanschluß (reset) am Steuerbus 13 aktiviert wird, endet die Ausführung eines laufenden Befehls taktunabhängig und setzt den Programmzähler PC auf Null. Die Programmspeicherstelle Null enthält normalerweise einen Verzweigungsbefehl, um die Programmausführung auf die Initialisierungsroutine des Systems zu lenken. Das Rücksetzen initialisiert verschiedene Register und Statusbits.
  • Beim Empfangen eines RS-Signals finden die folgenden Maßnahmen statt: Eine logische Null wird in das CNF-Bit im Statusregister ST1 geladen, was bewirkt, daß der gesamte RAM als Datenspeicher konfiguriert wird; der Programmzähler PC wird auf Null gesetzt, und der Adressenbus RA wird ausschließlich mit Nullen angesteuert, während RA auf L-Pegel liegt; der Datenbus D wird von den Ein-/Ausgabe-Zwischenspeichern mit drei Zuständen versehen; alle Steuersignale für den Speicher und den Ein-/Ausgabe-Speicherplatz (PS, DS, IS, R/W, STRB und BR) werden rückgesetzt, indem sie auf hohe Pegel gelegt werden, während RS auf L-Pegel liegt; alle Unterbrechungen werden durch Setzen des INTM-Bits auf H-Pegel gesperrt (es sei bemerkt, daß RS nicht maskierbar ist und daß auch das IFR vollständig auf Null zurückgesetzt wird; das Statusbit wird auf Null zurückgesetzt, XF wird auf Eins gesetzt, GREG wird gelöscht, um den gesamten Speicher lokal zu machen, RPTC wird gelöscht, der DX-Anschluß wird mit drei Zuständen belegt und alle Sende-/Fmpfangsoperationen auf dem seriellen Anschluß werden beendet, und das TXM-Bit wird auf einen L- Pegel zurückgesetzt, um den RSX-Anschluß als Eingang zu konfigurieren; das Zeitgeberregister TIM wird auf FFFF gesetzt und beginnt nicht mit dem Dekrementieren, bevor RS rückgesetzt ist, jedoch bleibt das Periodenregister unbeeinflußt; das IACK-Signal wird auf dieselbe Weise erzeugt wie eine maskierbare Unterbrechung und das Bit FO für das Format des seriellen Anschlusses wird auf eine logische Null zurückgesetzt.
  • Die Abarbeitung beginnt bei der Speicherstelle Null des externen Programmspeichers, wenn das RS-Signal auf H-Pegel gesetzt wird. Es sei bemerkt, daß wenn RS im Haltemodus gesetzt wird, eine normale Rücksetzoperation intern geschieht, aber alle Busse und Steuerleitungen im Tristate-Modus verbleiben. Nach dem Freigeben von HOLD und RS beginnt die Abarbeitung von der Speicherstelle Null an.
  • Vektorspeicherstellen und Prioritäten für alle internen und externen Unterbrechungen sind unten dargestellt. Wie in dieser Tabelle gezeigt, hat das Rücksetzen die höchste Priorität und die Unterbrechung für das Senden auf dem seriellen Anschluß hat die niedrigste Priorität. Der TRAP-Befehl, der für Software-Unterbrechungen verwendet wird, ist nicht mit einer Priorität versehen, ist hier aber dennoch aufgeführt, weil er seine eigene Vektor-Speicherstelle hat. Alle Unterbrechungsadressen wurden mit einem Abstand von zwei Speicherstellen angeordnet, so daß Verzweigungsbefehle in den dazwischenliegenden unnumerierten Speicherstellen eingerichtet werden können. UNTERBRECHUNGSNAME SPEICHERSTELLE PRIORITÄT FUNKTION 1(höchste) 7(niedrigste) Externes Rücksetzsignal Externe Benutzerunterbrechung Interne Zeitgeberunterbrechung Unterbrechung des Empfangs über den seriellen Anschluß Unterbrechung des Sendens über den seriellen Anschluß TRAP-Befehlsadresse
  • Wenn eine Unterbrechung auftritt, wird sie in dem 6-Bit- Unterbrechungs-Flag-Register IFR gespeichert. Dieses Register wird von den externen Benutzer-Unterbrechungen INT (2-0) und den internen Unterbrechungen RINT, XINT und TINT gesetzt. Jede Unterbrechung wird gespeichert, bis sie erkannt wird und dann durch das Unterbrechungsquittierungssignal IACK oder das RS-Signal auf dem Steuerbus 13 gelöscht wird. Das RS-Signal wird nicht in dem IFR gespeichert. Es werden keine Befehle für das Lesen vom IFR oder das Schreiben ins IFR vorgesehen.
  • Der Prozessor weist ein speicherzugeordnetes Unterbrechungsmaskierungsregister IMR für das Maskieren von externen und internen Unterbrechungen auf. Nur die 6 LSBs des 16-Bit- Speicherplatzes werden im IMR benutzt. Eine "1" in den Bitpositionen 5 bis 0 des IMR ermöglicht die entsprechende Unterbrechung vorausgesetzt, daß INTM = 0 ist. Das IMR ist für den D-Bus sowohl durch Lese- als auch durch Schreiboperationen zugänglich, kann jedoch nicht unter Verwendung von BLKD gelesen werden. RS ist nicht im IMR enthalten, und daher hat das IMR keinen Einfluß auf das Rücksetzen.
  • Der Unterbrechungsmodus INTM entsprechend Bit 9 des Statusregisters STO aktiviert oder deaktiviert alle maskierbaren Unterbrechungen. Eine "0" im INTM aktiviert alle unmaskierten Unterbrechungen, und eine "1" deaktiviert diese Unterbrechungen. Der INTM wird durch das Unterbrechungsquittierungssignal IACK, den DINT-Befehl oder ein Rücksetzen auf "1" gesetzt. Dieses Bit wird auf "0" gesetzt, wenn durch einen EINT-Befehl zurückgesetzt wird. INTM verändert das IMR oder das Unterbrechungs-Flag-Register IFR nicht wirklich.
  • Die Steuerschaltung ID schützt Mehrzyklen-Befehle; wenn eine Unterbrechung während eines Mehrzyklenbefehls auftritt, wird die Unterbrechung nicht ausgeführt, bevor der Befehl beendet ist. Die Steuerschaltung läßt weiterhin das Abarbeiten von Unterbrechungen nicht zu, wenn ein Befehl durch die RPT- oder RPTK-Befehle wiederholt wird. Die Unterbrechung wird im IFR gespeichert, bis der Wiederholungszähler RPTC auf Null dekrementiert hat und die Unterbrechung wird daraufhin abgearbeitet. Selbst wenn die Unterbrechung während der Ausführung des RPT- oder RPTK-Befehls deaktiviert wird, wird die Unterbrechung dennoch durch IFR zwischengespeichert und bleibt anstehend, bis RPTC auf Null dekrementiert hat. Unterbrechungen können nicht in einer Programmfolge zwischen EINT und dem nächsten Befehl abgearbeitet werden. Beispielsweise beendet die Vorrichtung stets EINT ebenso wie den folgenden Befehl, bevor die anstehende Unterbrechung abgearbeitet wird, falls eine Unterbrechung während der Ausführung eines EINT-Befehls auftritt. Dies stellt sicher, daß ein RET ausgeführt werden kann, bevor die nächste Unterbrechung abgearbeitet wird, wobei angenommen wird, daß auf EINT ein RET-Befehl folgt. Der Zustand des Systems beim Empfangen einer Unterbrechung kann gespeichert und wiederhergestellt werden.
  • Status-Register
  • Der Prozessor weist zwei Statusregister ST0 und ST1 auf, die den Status verschiedener Bedingungen und Betriebsarten enthalten. Es sei bemerkt, daß die DP-, ARP- und ARB-Register im Prozessor-Blockdiagramm von Figur 3 als getrennte Register dargestellt sind. Da diesen Registern keine speziellen Befehle zugeordnet sind, um sie in den RAM abzuspeichern, sind sie in den Status-Registern enthalten. Die Möglichkeit, die Status-Register in den Datenspeicher abzuspeichern und sie vom Datenspeicher zu laden, ermöglicht, daß der Zustand des Systems für Unterbrechungen und Unterprogramme gesichert und wiederhergestellt wird. Alle Statusbits werden unter Verwendung von LST-, LST1-, SST- und SST1-Befehlen ausgelesen oder übertragen (mit Ausnahme von INTM, welches nicht über einen LST-Befehl geladen werden kann). Jedoch können, wie in der Tabelle angedeutet ist, einige weitere Befehle oder Funktionen diese Bits beeinflussen.
  • Kontextumschaltung
  • Eine Kontextumschaltung ist üblicherweise erforderlich, wenn ein Unterprogrammaufruf oder eine Unterbrechung abgearbeitet wird. Bei einer Kontextumschaltung beim Prozessor von Figur 3 werden verschiedene Mechanismen verwendet, um den aktuellen Zustand des Prozessors zu sichern. Beispielsweise wird der Programmzähler PC automatisch in dem Hardware-Stapelspeicher ST gespeichert. Wenn es irgendwelche wichtigen Informationen in den anderen Registern wie den Status- oder Hilfsregistern gibt, müssen diese durch einen Software-Befehl gesichert werden. Ein Stapelspeicher im Datenspeicher- RAM 15, der durch ein Hilfsregister AR0 bis AR4 gekennzeichnet ist, ist zum Speichern des Zustands des Systems nützlich, wenn Unterbrechungen bearbeitet werden. Das gewählte AR wirkt als Stapelzeiger. Die Register des Systems werden im RAM 15 gesichert und in derselben Reihenfolge wiederhergestellt: die gesicherten Register sind ACCH, ACCL, AR0 bis AR3, PR, ST0, ST1, TR und die vier Ebenen des Hardware-Stapelspeichers ST.
  • 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 Daten- RAM 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 TM532020. 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. Figur 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 CNFP- Befehle konfiguriert. Der RAM lsp 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: LOKALER SPEICHER GLOBALER SPEICHER GREG-WERT BEREICH # WÖRTER
  • 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 Bedingungen, daß die Buszuweisungslogik weiterhin READY aktiviert, führt der Prozessor in jedem Systemzyklus einen globalen Speicherzugriff durch, bis READY entfernt ist.
  • Zeitgeber-Operation
  • Der Prozessor verwendet einen chipinternen Zeitgeber und seine zugeordnete Unterbrechung, um verschiedene Funktionen in regelmäßen Zeitabständen durchzuführen. Durch Laden des Periodenregisters PRD mit einem Wert zwischen 1 und 65.535 (FFFF) kann eine Zeitgeberunterbrechung TINT jeweils alle 4 bis 262.144 Zyklen erzeugt werden. Zwei speicherkonforme Register werden verwendet, um den Zeitgeber zu betreiben. Das Zeitgeberregister TIM an der Datenspeicherstelle 2 hält den aktuellen Zählerstand des Zeitgebers fest. Bei jedem vierten CLKOUT1-Zyklus wird der TIM um Eins dekrementiert. Das PRD-Register an der Datenspeicherstelle 3 hält den Anfangs-Zählwert für den Zeitgeber fest. Wenn TIM auf Null dekrementiert, wird eine Zeitgeberunterbrechung TINT erzeugt. Im selben Zyklus wird der Inhalt des PRD-Registers in das TIM-Register geladen. Auf diese Weise wird ein TINT alle vier (PRD)-Zyklen von CLKOUT1 erzeugt. Das Zeitgeber- und das Perioden-Register können in jedem Zyklus über den D-Bus ausgelesen oder beschrieben werden. Der Zählerstand kann durch Auslesen des TIM-Registers überwacht werden. Eine neue Periode des Zählers kann in das Perioden-Register geschrieben werden, ohne den aktuellen Zählerstand des Zeitgebers zu stören. Der Zeitgeber wird diese neue Periode dann beginnen, wenn die aktuelle Zahlung ausgeführt ist. Wenn sowohl das PRD- als auch das TIM-Register mit einer neuen Periode geladen werden, beginnt der Zeitgeber, die neue Periode zu dekrementieren, ohne eine Unterbrechung zu erzeugen. Auf diese Weise hat der Programmierer eine vollständige Kontrolle über die aktuellen und folgenden Perioden des Zeitgebers. Das TIM-Register wird beim Rücksetzen auf seinen maximalen Wert (FFFF) gesetzt und beginnt erst mit dem Dekrementieren, nachdem RS rückgesetzt ist. Das Perioden-Register wird während des Rücksetzens nicht gesetzt. Wenn der Zeitgeber nicht verwendet wird, sollte TINT maskiert werden. Das PRD kann dann als eine Datenspeicherstelle für allgemeine Zwecke verwendet werden. Falls TINT verwendet wird, sollten die Register PRD und TIM programmiert werden, bevor TINT demaskiert wird.
  • Einzelbefehlsschleifen
  • Bei der Programmierung von zeitkritischen Aufgaben mit hohem Rechenaufwand ist es häufig erforderlich, dieselbe Operation viele Male zu wiederholen. Da der Prozessor einen hohen Grad an Parallelität aufweist, führen viele der Befehle eine vollständige Operation durch (so wie der MACD-Befehl). Für diese Fälle ist ein Wiederholungsbefehl vorgesehen, der es ermöglicht, die Ausführung des folgenden Einzelbefehls (N+1)-mal durchzuführen. N wird durch einen Acht-Bit-Wiederholungszähler RPTC definiert, der über den D-Bus durch die Befehle RPT oder RPTK geladen wird. Daraufhin wird der unmittelbar folgende Befehl ausgeführt und das RPTC-Register wird dekrementiert, bis es Null erreicht. Wenn das Wiederholungsmerkmal verwendet wird, wird der zu wiederholende Befehl nur einmal abgerufen. Folglich werden viele Mehrzyklen- Befehlen zu einem oder zwei Zyklen, wenn sie wiederholt werden. Dies ist besonders bei Ein-/Ausgabe-Befehlen wie TBLR, TBLW, IN, oder OUT nützlich. Programme wie beispielsweise die Verwirklichung eines Filters erfordern Schleifen, die in möglichst kurzer Zeit gesteuert werden können.
  • Externe Verzweigungssteuerung
  • Der Prozessor weist einen extern gesteuerten Verzweigungsbefehl auf, der dem Systementwickler eine Alternative zur Verwendung von Unterbrechungen zum Überwachen externer Bedingungen gibt. Ein mit BIO (verzweige bei Ein-/Ausgabe) bezeichneter externer Anschluß wird durch den BIOZ-Befehl geprüft, der eine Verzweigung bewirkt, wenn der Anschluß auf L-Pegel liegt. Das Merkmal des Verzweigens bei der Ein- /Ausgabe ist für das Abfragen einer einzelnen Unterbrechung unabhängig vom Unterbrechungsregister nützlich. Darüber hinaus ist der BIO-Anschluß nicht gesperrt. Dies macht die BIO- Funktion für das Überprüfen von Vorrichtungen nützlich, die nur dann bedient werden müssen, wenn gewisse Bedingungen erfüllt sind oder erfüllt werden.
  • Externe Lese-/Schreib-Operationen
  • Der Prozessor weist Programm-, Daten- und Ein-/Ausgabe- Adressenbereiche für den Anschluß an externen Speicher- und externe Ein-/Ausgabe auf. Der Zugriff auf diese Adressenbereiche wird durch die PS-, DS- und IS-Signale (Programm-, Daten- und Ein-/Ausgabe-Auswahl) des Prozessors auf dem Steuerbus 13 gesteuert. Das System ist unkompliziert, da der Prozessor jeden Adressenbereich in derselben Weise behandelt.
  • Die Reihenfolge der Ereignisse bei einem externen Lesezyklus ist nachfolgend aufgeführt:
  • 1) Während der Viertel-Taktphase 3 beginnt der Prozessor, den Adressenbus und eines der Auswahlsignale für den Speicherplatz anzusteuern. R/W wird auf H-Pegel gesetzt, um ein externes Auslesen des Speichers anzuzeigen.
  • 2) Zu Beginn der 4. Viertel-Phase wird STRB aktiviert, um anzuzeigen, daß der Adressenbus gültig ist. STRB kann zusammen mit R/W verwendet werden, um ein Lesefreigabesignal zu setzen.
  • 3) Nach dem Decodieren des adressierten Speicherbereiches muß die Speicherschnittstelle des Anwenders während der 4. Viertel-Phase das geeignete READY-Signal erzeugen. READY wird zu Beginn der 1. Viertel-Phase durch den Prozessor abgefragt.
  • 4) Falls READY zur richtigen Zeit auf H-Pegel lag, werden die Daten am Ende der 1. Viertel-Phase eingelesen.
  • 5) STRB wird zu Beginn der 2. Viertel-Phase rückgesetzt. Der Prozessor beendet den Speicherzugriff durch Deaktivieren des Adressenbusses und PS, DS oder IS.
  • Die Steuersignale PS, DS, IS, STRB und R/W werden nur aktiviert, wenn auf eine externe Adressenspeicherstelle zugegriffen wird.
  • Die Reihenfolge der Ereignisse bei einem externen Schreibzyklus wird im folgenden aufgelistet, und Figur 9b zeigt die Zeiteinteilung des Schreibzyklus:
  • 1) Während der 3. Viertel-Phase des Taktzyklus beginnt der Prozessor den Adressenbus PA und eines der Auswahlsignale für den Speicherplatz anzusteuern. R/W wird auf L-Pegel gesetzt, um das Schreiben auf einen externen Speicher anzuzeigen.
  • 2) Zu Beginn der 4. Viertel-Phase wird STRB aktiviert, um anzuzeigen, daß der Adressenbus gültig ist. STRB kann zusammen mit R/W verwendet werden, um ein Schreibfreigabesignal zu setzen.
  • 3) Nach dem Decodieren des adressierten Speicherbereiches muß die Speicherschnittstelle 12 des Anwenders während der 4. Viertel-Phase dem READY-Signaleingang den geeigneten logischen Pegel liefern. READY wird durch den Prozessor zu Beginn der 1. Viertel-Phase abgefragt.
  • 4) Der Datenbus wird vom Beginn der 4. Viertel-Phase an angesteuert.
  • 5) STRB wird daraufhin zu Beginn der 2. Viertel-Phase rückgesetzt. Der Prozessor beendet den Speicherzugriff durch Deaktivieren des Adressenbusses sowie PS, DS oder IS.
  • Die Anzahl der Zyklen bei einem Speicher- oder Ein-/Ausgabe- Zugriff wird durch den Zustand der READY-Eingabe bestimmt.
  • Zu Beginn der 1. Viertel-Phase fragt der Prozessor die READY-Eingabe ab. Falls READY auf H-Pegel liegt, endet der Speicherzugriff bei der nächsten Hinterflanke von CLKOUT1. Wenn READY auf L-Pegel liegt, wird der Speicherzyklus um einen Maschinenzyklus erweitert, und alle anderen Signale bleiben gültig. Zu Beginn der folgenden 1. Viertel-Phase wird diese Abfolge wiederholt.

Claims (3)

1. In einer einzigen integrierten Schaltung gebildete Mikrocomputervorrichtung mit Dateneingangs- und Datenausgangsanschlüssen und mit Adressenausgangsanschlüssen (RA), wobei die Vorrichtung in der integrierten Schaltung enthält
eine Rechen- und Logikeinheit (ALU) mit einem Dateneingang und einem Datenausgang,
eine Steuerschaltung (ID), die abhängig von aus einem Befehlssatz ausgewählten Befehlswörtern arbeitet und mit der Rechen- und Logikeinheit verbundene Ausgänge aufweist, 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 Lese/Schreib-Datenspeicher (15) mit einem Adresseneingang sowie einem Dateneingang und einem Datenausgang,
einen Programmspeicher (10, 15P) mit einem Adresseneingang und wenigstens einem Programmausgang, und
interne Daten- und Adressenbusse (D-BUS, P-PUS), 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,
dadurch gekennzeichnet,
daß die Steuerschaltung (ID) einen Wiederholungszähler enthält und der Befehlssatz ein "Wiederholungs"-Befehlswort enthält, in dem eine Nummer enthalten ist, wobei auf das "Wiederholungs"-Befehlswort ein weiteres aus dem Befehlssatz ausgewähltes Befehlswort folgt, und wobei sie so ausgebildet ist, daß der von dem ausgewählten Befehlswort repräsentierende Befehl von der Steuerschaltung so oft ausgeführt wird, wie durch die in dem "Wiederholungs"-Befehlswort enthaltene Nummer festgelegt ist, wobei die Nummer in dem Wiederholungsspeicher gespeichert ist, der mit jeder Ausführung des ausgewählten Befehls dekrementiert wird.
2. Mikrocomputervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das ausgewählte Befehlswort die Übertragung eines Datenpostens aus dem Speicherplatz an einer ersten Adresse zu dem Speicherplatz an einer zweiten Adresse repräsentiert, und das "Wiederholungs"-Befehlswort, auf das das ausgewählte Befehlswort folgt, die Übertragung eines Datenblocks in mit der ersten Adresse beginnenden Speicherplätzen zu mit der zweiten Adresse beginnenden Speicherplätzen verursacht, wobei die Anzahl der Datenposten in dem Block durch die in dem "Wiederholungs"-Befehlswort enthaltene Nummer festgelegt ist.
3. Mikrocomputersystem enthaltend eine Mikrocomputervorrichtung nach Anspruch 1 oder Anspruch 2, einen externen Lese/Schreib-Speicher (11) mit einem Adresseneingang und einem Dateneingang sowie einem Datenausgang, einem externen Adressenbus, der an die Adressenausgangsanschlüsse der Mikrocomputervorrichtung und an dem Adresseneingang des externen Speichers angeschlossen ist, und einen externen Datenbus, der mit den Dateneingangs- Datenausgangsanschlüssen der Mikrocomputervorrichtung und mit dem Dateneingang und dem Datenausgang des externen Speichers verbunden ist.
DE19863650374 1985-02-12 1986-02-11 Mikroprozessor mit einer Blockübertragungsinstruktion. Expired - Lifetime DE3650374T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US70182585A 1985-02-12 1985-02-12
US70182485A 1985-02-12 1985-02-12
US70182685A 1985-02-12 1985-02-12
US70182885A 1985-02-12 1985-02-12
US06/701,829 US4713749A (en) 1985-02-12 1985-02-12 Microprocessor with repeat instruction
US06/701,827 US4713748A (en) 1985-02-12 1985-02-12 Microprocessor with block move instruction

Publications (2)

Publication Number Publication Date
DE3650374D1 DE3650374D1 (de) 1995-09-28
DE3650374T2 true DE3650374T2 (de) 1996-02-22

Family

ID=27560238

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19863650374 Expired - Lifetime DE3650374T2 (de) 1985-02-12 1986-02-11 Mikroprozessor mit einer Blockübertragungsinstruktion.
DE19863650703 Expired - Lifetime DE3650703T2 (de) 1985-02-12 1986-02-11 Mikroprozessor mit einer Blockübertragungsinstruktion

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE19863650703 Expired - Lifetime DE3650703T2 (de) 1985-02-12 1986-02-11 Mikroprozessor mit einer Blockübertragungsinstruktion

Country Status (3)

Country Link
EP (2) EP0196751B1 (de)
JP (1) JPH0749854A (de)
DE (2) DE3650374T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
US6727903B1 (en) 1989-04-20 2004-04-27 Hitachi, Ltd. Microprocessor, and graphics processing apparatus and method using the same
DE4022365C2 (de) * 1989-07-20 2000-02-24 Nippon Telegraph & Telephone Datenübertragungssystem
US5381504A (en) * 1993-11-15 1995-01-10 Minnesota Mining And Manufacturing Company Optical fiber element having a permanent protective coating with a Shore D hardness value of 65 or more
US5600674A (en) * 1995-03-02 1997-02-04 Motorola Inc. Method and apparatus of an enhanced digital signal processor
DE19948100A1 (de) * 1999-10-06 2001-04-12 Infineon Technologies Ag Prozessorsystem

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665402A (en) * 1970-02-16 1972-05-23 Sanders Associates Inc Computer addressing apparatus
US4159520A (en) * 1977-01-03 1979-06-26 Motorola, Inc. Memory address control device with extender bus
US4379328A (en) * 1979-06-27 1983-04-05 Burroughs Corporation Linear sequencing microprocessor facilitating
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
JPS57117055A (en) * 1981-01-14 1982-07-21 Sharp Corp Memory extension system of microcomputer
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
EP0377466B1 (de) * 1982-02-11 2000-03-08 Texas Instruments Incorporated Mikrorechnersystem für digitale Signalprozessoren
US4491910A (en) 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory

Also Published As

Publication number Publication date
EP0652508A3 (de) 1995-07-05
DE3650703T2 (de) 1999-04-01
EP0196751B1 (de) 1995-08-23
EP0196751A2 (de) 1986-10-08
DE3650703D1 (de) 1998-12-10
DE3650374D1 (de) 1995-09-28
EP0196751A3 (en) 1990-03-28
EP0652508A2 (de) 1995-05-10
EP0652508B1 (de) 1998-11-04
JPH0749854A (ja) 1995-02-21

Similar Documents

Publication Publication Date Title
DE69033568T2 (de) Preisgünstiger Hochleistungsmikroprozessor
US4713749A (en) Microprocessor with repeat instruction
DE2716369C2 (de)
DE68927907T2 (de) Einchipmikrorechner
DE3587591T2 (de) Mikroprozessor für Forth-ähnliche Sprache.
DE3650602T2 (de) Datenverarbeitungssystem
US4713748A (en) Microprocessor with block move instruction
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE69130138T2 (de) Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE69233412T2 (de) Vorrichtung und Rechnerprogrammprodukt zur Ausführung von Verzweigungsbefehlen
DE19735350B4 (de) Vektorprozessor zum Ausführen paralleler Operationen und Verfahren hierfür
DE69130519T2 (de) Hochleistungsfähiger Multiprozessor mit Gleitkommaeinheit und Verfahren zu seinem Betrieb
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE3485929T2 (de) Bedingungsregisterarchitektur fuer eine maschine mit primitivem befehlssatz.
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE2756768A1 (de) Mikroprozessor-architektur
DE2948668A1 (de) Puffereinheit
DE2835095A1 (de) Gekoppeltes, mikroprogrammiertes prozessorsystem
DE69513113T2 (de) Verfahren zum synchronen Speicherzugriff
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE69525129T2 (de) Verfahren und Datenprozessor zum durchsichtigem Betrieb in einem Hintergrundmodus
DE2533737C2 (de) Mikroprozessor mit aufteilbarer Adressenschiene
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE69421107T2 (de) Systemverwaltungsunterbrechungsadressenbitkorrekturschaltung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition