-
Diese Erfindung bezieht sich auf
Datenverarbeitungsvorrichtungen, auf elektronische Verarbeitungs- und
Steuerungssysteme und auf Verfahren ihrer Herstellung und ihres
Betriebs.
-
HINTERGRUND
DER ERFINDUNG
-
Eine Mikroprozessorvorrichtung ist
eine zentrale Verarbeitungseinheit oder CPU für einen Digitalprozessor, die üblicherweise
in einer einzelnen integrierten Halbleiterschaltung oder in einem "Chip" enthalten ist, der
mit der MOS/LSI-Technik
hergestellt wird, wie sie in dem US-Patent Nr. 3.757.306, erteilt
an Gary W. Boone und übertragen
auf Texas Instruments Incorporated, gezeigt ist. Das Patent an Boone
zeigt eine Einchip-8-Bit-CPU mit einer parallelen ALU, mit Registern
für Daten
und Adressen, mit einem Befehlsregister und mit einem Steuerdecodierer,
die sämtlich
unter Verwendung der Von-Neumann-Architektur verbunden sind und
einen bidirektionalen, parallelen Bus für Daten, Adressen und Befehle
verwenden. Das US-Patent Nr. 4.074.351, erteilt an Gary W. Boone
und Michael J. Cochran, überrragen
auf Texas Instruments Incorporated, zeigt eine in der Harvard-Architektur
konstruierte Einchip-"Mikrocomputer"-Vorrichtung, die
eine parallele 4-Bit-ALU und ihre Steuerschaltungsanordnung mit
einem auf dem Chip befindlichen ROM für die Programmspeicherung und
einem auf dem Chip befindlichen RAM für die Datenspeicherung enthält. Der
Begriff Mikroprozessor bezieht sich üblicherweise auf eine Vorrichtung,
die für
die Programm- und Datenspeicherung einen externen Speicher verwendet,
während
sich der Begriff Mikrocomputer auf eine Vorrichtung mit auf dem
Chip befindlichem ROM und RAM für
die Programm- und Datenspeicherung bezieht. In der Beschreibung
der vorliegenden Erfindung wird der Begriff "Mikrocomputer" in der Weise verwendet, daß er beide
Arten von Vorrichtungen umfaßt,
während
der Begriff "Mikroprozessor" in erster Linie
zur Bezugnahme auf Mikrocomputer ohne auf dem Chip befindlichen
ROM verwendet wird. Da die Begriffe auf dem Gebiet häufig austauschbar
verwendet werden, ist jedoch selbstverständlich, daß die Verwendung eines dieser
beiden Begriffe in dieser Beschreibung bezüglich der Merkmale dieser Erfindung
nicht als einschränkend
betrachtet werden sollte.
-
Moderne Mikrocomputer können in
zwei allgemeine Klassen, und zwar Universal-Mikroprozessoren und
Spezial-Mikrocomputer/Mikroprozessoren, gruppiert werden. Universal-Mikroprozessoren
wie etwa der von Motorola, Inc., hergestellte M68020 sind so beschaffen,
daß sie
von dem Anwender zum Ausführen
irgendeiner Aufgabe aus einem weiten Bereich von Aufgaben programmiert
werden können,
und werden somit häufig
als die Zentraleinheit in Geräten
wie etwa Personal Computern verwendet. Während solche Universal-Mikroprozessoren
eine gute Leistung für
einen weiten Bereich von Arithmetik- und Logikfunktionen haben, sind
sie natürlich
nicht spezifisch für
irgendeine besondere dieser Funktionen bestimmt oder an diese angepaßt. Spezial-Mikrocomputer
sind im Gegensatz dazu dafür
bestimmt, eine Leistungsverbesserung für spezifische vorgegebene Arithmetik-
und Logikfunktionen, für
die der Anwender den Mikrocomputer verwenden möchte, zu schaffen. Durch Kenntnis
der primären
Funktion des Mikrocomputers kann der Konstrukteur den Mikrocomputer
in der Weise konstruieren, daß die
Leistung der spezifischen Funktion des Spezial-Mikrocomputers die
Leistung der gleichen Funktion des Universal-Mikroprozessors unabhängig von
dem durch den Anwender erzeugten Programm bedeutend übersteigt.
-
Eine solche Funktion, die von einem
Spezial-Mikrocomputer mit einer bedeutend verbesserten Geschwindigkeit
ausgeführt
werden kann, ist die digitale Signalverarbeitung, genauer die für die Verwirklichung von
Digitalfiltern und für
die Ausführung
schneller Fourier-Transformationen erforderlichen Berechnungen.
Da solche Berechnungen zu einem hohen Grad aus sich wiederholenden
Operationen wie etwa der Ganzzahlmultiplikation, der Mehrbitverschiebung
und der kombinierten Multiplikation und Addition bestehen, kann
ein Spezial-Mikrocomputer konstruiert werden, der an diese sich
wiederholenden Funktionen speziell angepaßt ist. Ein solcher Spezial-Mikrocomputer
ist in dem US-Patent Nr. 4.577.282, übertragen auf Texas Instruments
Incorporated, beschrieben. Die spezifische Konstruktion eines Mikrocomputers
für diese
Berechnungen hat zu einer hinreichenden Leistungssteigerung gegenüber Universal-Mikroprozessoren
geführt,
um die Verwendung solcher Spezial-Mikrocomputer in Echtzeitanwendungen
wie etwa der Sprach- und Bildverarbeitung zu ermöglichen.
-
Wegen ihres rechenintensiven Wesens
sind digitale Signalverarbeitungsanwendungen auch recht intensiv
in Bezug auf Speicherzugriffsoperationen. Dementsprechend ist die
Gesamtleistung des Mikrocomputers beim Ausführen einer digitalen Signalverarbeitungsfunktion
nicht nur durch die Anzahl der pro Zeiteinheit ausgeführten spezifischen
Berechnungen, sondern auch durch die Geschwindigkeit, mit der der
Mikrocomputer Daten aus dem Systemspeicher auslesen und in diesem
speichern kann, bestimmt. Frühere
Spezial-Mikrocomputer, wie etwa der in der US-A-4 577 282 beschriebene
Mikrocomputer, haben modifizierte Versionen einer Harvard-Architektur
verwendet, so daß der
Zugriff auf den Datenspeicher unabhängig von und gleichzeitig mit
dem Zugriff auf den Programmspeicher erfolgen kann. Natürlich hat
eine solche Architektur eine zusätzliche
Leistungssteigerung geschaffen.
-
Die wachsenden Anforderungen der
Technik und des Marktes machen noch weitere Struktur- und Prozeßverbesserungen
der Verarbeitungsvorrichtungen, Anwendungssysteme und Betriebs-
und Herstellungsverfahren wünschenswert.
-
US-A-4 467 444 offenbart einen Mikroprozessor
mit einer Dreieingangs-Arithmetik-Logik-Einheit.
Jeder Eingang besitzt einen Multiplexer, um die Daten für diesen
Eingang auszuwählen.
Der erste wählt
zwischen einem 32-Wort-RAM, dem Akkumulator und einem Zwischenspeicher
zum Empfangen von Daten von einem externen Datenbus; der zweite
wählt zwischen
dem RAM, dem Befehlsbus und dem Akkumulator; und der dritte wählt zwischen
dem RAM, dem Akkumulator und dem Zwischenspeicher. Das Ausgangssignal
der Arithmetik-Logik-Einheit kann an den RAM, an den Akkumulator
oder an den Ausgang des externen Datenbusses gesendet werden.
-
US-A-4 396 979 offenbart einen Mikroprozessor
mit einer Zweieingangs-Arithmetik-Logik-Einheit.
Jeder Eingang besitzt einen Multiplexer, um die Daten für diesen
Eingang auszuwählen.
Der erste wählt
zwischen einer Registerdatei (die vier Register enthält), einem
Zähler
und einem Busregister. Der zweite wählt zwischen diesen dreien
und außerdem
dem Programmzähler.
Das Ausgangssignal der Arithmetik-Logik-Einheit kann über einen
Schieber übergeben
werden und daraufhin an den Zähler,
an die Registerdatei oder an das Busregister gesendet werden. Außerdem kann
es über
einen Informationsbus an den externen Speicher gesendet werden.
Die Daten von dem externen Speicher können über den Informationsbus an
das Busregister übertragen
werden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung
wird eine Datenverarbeitungsvorrichtung geschaffen, mit:
- A. einer Arithmetik-Logik-Einheit, die Ausgangsleitungen,
die Ausgangssignale transportieren, und zwei Gruppen von Eingangsleitungen,
die Eingangssignale transportieren, besitzt;
- B. einem Akkumulator, der Eingangsleitungen, die Eingangssignale
transportieren und wahlweise mit den Ausgangsleitungen der Arithmetik-Logik-Einheit
verbunden sind, sowie Ausgangsleitungen, die Ausgangssignale transportieren
und wahlweise mit einer Gruppe von Eingangsleitungen der Arithmetik-Logik-Einheit verbunden
sind, besitzt; und
- C. einem parallelen Register, das Ausgangsleitungen besitzt,
die Ausgangssignale transportieren und wahlweise mit der anderen
Gruppe von Eingangsleitungen der Arithmetik-Logik-Einheit verbunden
sind;
dadurch gekennzeichnet, daß die Vorrichtung ferner eine
direkte bidirektionale Verbindung zwischen dem Akkumulator und dem
parallelen Register umfaßt,
um die Inhalte des Akkumulators an das parallele Register zu übertragen
und um die Inhalte des parallelen Registers an den Akkumulator zu übertragen.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Die für die Erfindung für charakteristisch
gehaltenen neuen Merkmale sind in den beigefügten Ansprüchen dargestellt. Die zweckmäßigen Ausführungen
der Erfindung sowie weitere ihrer Merkmale und Vorteile können am
besten mit Bezug auf die folgende ausführliche Beschreibung verstanden
werden, wenn diese in Verbindung mit der beigefügten Zeichnung gelesen wird,
worin:
-
1A und 1B zwei Hälften eines Blockschaltplans
einer verbesserten Mikrocomputervorrichtung mit einer auf einem
einzigen Halbleiterchip gebildeten CPU oder Zentraleinheit sind;
-
2 ein
Blockschaltplan eines verbesserten industriellen Prozesses und eines
Schutzsteuersystems ist;
-
3 eine
teilweise als Prinzipdiagramm und teilweise als Blockschaltplan
ausgeführte
Darstellung eines verbesserten Kraftfahrzeugsystems ist;
-
4 ein
Blockschaltplan eines verbesserten Motorsteuersystems ist;
-
5 ein
Blockschaltplan eines weiteren verbesserten Motorsteuersystems ist;
-
6 ein
Blockschaltplan eines nochmals weiteren verbesserten Motorsteuersystemsist;
-
7 ein
Blockschaltplan eines verbesserten Robotersteuersystems ist;
-
8 ein
Blockschaltplan eines verbesserten Satelliten-Telekommunikationssystems
ist;
-
9 ein
Blockschaltplan eines verbesserten Echokompensatorsystems für das System
nach 8 ist;
-
10 ein
Blockschaltplan eines verbesserten Modemsenders ist;
-
11 ein
Blockschaltplan ist, der in gleicher Weise die Hardwareblöcke wie
die Prozeßblöcke für den verbesserten
Modemsender nach 10 darstellt;
-
12 ein
Blockschaltplan ist, der in gleicher Weise die Hardwareblöcke wie
die Prozeßblöcke für einen
verbesserten Modemempfänger
darstellt;
-
13 ein
Blockschaltplan eines verbesserten Systems mit einem Host-Computer und mit
einem für PCM-Kommunikationen
(Pulscode-Modulations-Kommunikationen)
angeschlossenen digitalen Signalprozessor ist;
-
14 ein
Blockschaltplan eines verbesserten Videobild-Darstellungssystems
mit einer Verarbeitung mehrdimensionaler Matrizen ist;
-
15 ein
Blockschaltplan ist, der in gleicher Weise die Hardwareblöcke wie
die Prozeßblöcke für die verbesserte
Graphik-, Bild- und Videoverarbeitung darstellt;
-
16 ein
Blockschaltplan eines Systems für
die verbesserte Graphik-, Bild- und Videoverarbeitung ist;
-
17 ein
Blockschaltplan eines verbesserten automatischen Spracherkennungssystems
ist;
-
18 ein
Blockschaltplan eines verbesserten Vocoder-Modem-Systems mit Verschlüsselung
ist;
-
19 eine
Reihe von sieben Darstellungen eines elektronischen Registers, das
Informationsbits hält,
ist und die Bitmanipulationsoperationen einer Verbesserung der parallelen
Logikeinheit nach 1B zeigt;
-
20 ein
Blockschaltplan eines verbesserten Systems für die digitale Signalverarbeitung
mit einer hohen Abtastrate ist;
-
21 ein
Blockschaltplan einer Architektur für eine verbesserte Datenverarbeitungsvorrichtung
mit der CPU aus den 1A und 1B ist;
-
22 ein
Stromlaufplan einer Schaltung für
die organisationsaufwandfreie Unterbrechungskontextumschaltung ist;
-
23 ein
Stromlaufplan einer alternativen Schaltung für die organisationsaufwandfreie
Unterbrechungskontextumschaltung ist;
-
24 ein
Stromlaufplan einer weiteren alternativen Schaltung für die organisationsaufwandfreie
Unterbrechungskontextumschaltung ist;
-
25 ein
Ablaufplan eines Verfahrens zum Betreiben der Schaltung nach 24 ist;
-
26 ein
Prozeßablaufplan
ist, der die Befehle für
das automatische Berechnen eines Maximums oder eines Minimums in
der Datenverarbeitungsvorrichtung nach den 1A und 1B zeigt.
-
Wo im Kontext nicht anders angegeben,
beziehen sich entsprechende Bezugszeichen und weitere Symbole auf
die entsprechenden Teile in den verschiedenen Figuren der Zeichnung.
-
AUSFÜHRLICHE
BESCHREIBUNG ZWECKMÄSSIGER
AUSFÜHRUNGEN
-
Eine Architekturübersicht beschreibt zunächst eine
zweckmäßige Ausführung der
digitalen Signalverarbeitungsvorrichtung 11.
-
Die bevorzugte Ausführung der
digitalen Signalverarbeitungsvorrichtung 11 nach den 1A und 1B implementiert eine Harvard-Architektur,
die für
eine Hochgeschwindigkeitsausführung
durch Unterhalten zweier getrennter Speicherbusstrukturen, einer
Programm- und einer Datenspeicherbusstruktur, die Verarbeitungsleistung
maximiert. Es werden Befehle zur Schaffung von Datenübertragungen
zwischen den zwei Räumen aufgenommen.
-
Die Vorrichtung 11 verfügt über eine
Programmadressierungsschaltung 13 und über eine elektronische Berechnungsschaltung 15 mit
einem Prozessor. Die Berechnungsschaltung 15 führt unter
Verwendung einer 32 Bit-ALU 21 und eines Akkumulators 23 eine
Zweierkomplement-Arithmetik aus. Die ALU 21 ist eine Universal-Arithmetik-Logik-Einheit,
die unter Verwendung von aus einem Datenspeicher 25 nach 1B entnommenen oder aus
Sofortbefehlen abgeleiteten 16 Bit-Wörtern oder unter Verwendung
des 32 Bit-Ergebnisses eines Multi plizierers 27 arbeitet.
Zusätzlich
zur Ausführung
der Arithmetikbefehle kann die ALU 21 Boolesche Operationen
ausführen.
Der Akkumulator 23 speichert die Ausgangsgröße von der
ALU 21 und stellt über den
Pfad 29 eine zweite Eingangsgröße in die ALU 21 bereit.
Der Akkumulator 23 hat zur Veranschaulichung eine Länge von
32 Bits und ist in ein höherwertiges
Wort (die Bits 31 bis 16) und in ein niederwertiges Wort (die Bits
15 bis 0) unterteilt. Es werden Befehle zum Speichern der höherwertigen
und niederwertigen Akkumulatorwörter
in dem Datenspeicher 25 bereitgestellt. Für die schnelle,
temporäre
Speicherung des Akkumulators 23 gibt es einen 32 Bit-Akkumulatorpuffer
ACCB 31.
-
Zusätzlich zu der Haupt-ALU 21 gibt
es in 1B eine Peripherie-Logikeinheit
(PLU) 41, die Logikoperationen an Speicherbereichen bereitstellt,
ohne den Inhalt des Akkumulator 23 zu beeinflussen. Die
PLU 41 schafft eine umfassende Bitmanipulationsfähigkeit
für Hochgeschwindigkeits-Steuerzwecke
und vereinfacht das Setzen, Löschen
und Prüfen
von Bits im Zusammenhang mit Steuer- und Zustandsregisteroperationen.
-
Der Multiplizierer 27 aus 1A führt eine 16 × 16 Bit-Zweierkomp
ement-Multiplikation
mit einem 32 Bit-Ergebnis in einem einzigen Befehlszyklus aus. Der
Multiplizierer besteht aus drei Elementen: einem temporären TREGO-Register 49,
einem Produktregister PREG 51 und der Multiplizierermatrix 53.
Das 16 Bit-TREGO-Register 49 speichert temporär den Multiplikanden;
das PREG-Register 51 speichert
das 32 Bit-Produkt. Die Multiplikatorwerte kommen entweder aus dem
Datenspeicher 25, bei Verwendung der MAC/MACD-Befehle aus
einem Programmspeicher 61, oder sie werden sofort aus dem
MPYK-Befehlswort (Sofortmultiplikations-Befehlswort) abgeleitet.
-
Der Programmspeicher 61 ist
an den Adressierungseingängen
an einen Programmadressenbus 101A angeschlossen. Der Speicher 61 ist
an seinem Lese/Schreib-Eingang/Ausgang an einen Programmdatenbus 101D angeschlossen.
Der schnelle auf dem Chip befindliche Multiplizierer 27 ermöglicht,
daß die
Vorrichtung 11 die Grund-DSP-Operationen wie etwa die Faltung,
die Korrelation und die Filterung effizient ausführt.
-
Ein Prozessorskalierungsschieber 65 besitzt
einen über
einen Multiplexer (MUX) 73 an einen Datenbus 111D angeschlossenen
16 Bit-Eingang und einen über
einen Multiplexer 77 an die ALU 21 angeschlossenen
32 Bit-Ausgang. Wie durch einen Befehl programmiert oder in einem
Schiebezählungsregister
(TREG1) 81 definiert ist, erzeugt der Skalierungsschieber 65 eine
Linksverschiebung der Eingangsdaten von 0 bis 16 Bits. Die LSBs
(niedrigstwertigsten Bits) der Ausgangsgröße werden mit Nullen gefüllt, während die
MSBs (die höchstwertigen
Bits) in Abhängigkeit
von dem Zustand des Vorzeichenerweiterungs-Modusbits SXM des Zustandsregisters
ST1 in einem Registersatz 85 aus 1B entweder mit Nullen gefüllt oder
vorzeichenerweitert werden können.
Zusätzliche
Schiebefähigkeiten
ermöglichen,
daß der
Prozessor 11 eine numerische Skalierung, eine Bitextraktion,
eine erweiterte Arithmetik und eine Überlaufverhinderung ausführt.
-
Zum Speichern des Inhalts eines Programmzählers 93 während Unterbrechungen
und Unterprogrammaufrufen werden bis zu acht Ebenen eines Hardware-Stapels 91 bereitgestellt.
Bei einer Kontextänderung
wird der Programmzähler 93 über einen
MUX 95 wahlweise vom Programmadressenbus 101A oder
vom Programmdatenbus 101D geladen. Der PC 93 wird
auf den Adressenbus 101A geschrieben oder auf den Stapel 91 geschoben.
Bei Unterbrechungen werden bestimmte strategische Register (der
Akkumulator 23, das Produktregister 51, TREGO 49,
TREG1, TREG2 und im Register 113: ST0, ST1, PMST, ARCR,
INDX und CMPR) auf einen Stapel der Tiefe eins geschoben und bei
der Unterbrechungsrückkehr
abgehoben; somit wird eine organisationsaufwandfreie Unter brechungskontextumschaltung
geschaffen. Die zum Sichern des Inhalts dieser Register wirksamen
Unterbrechungen sind maskierbar.
-
Das in den 1A und 1B gezeigte
Funktionsblockdiagramm skizziert die Hauptblöcke und Datenpfade in dem Prozessor.
Weitere Einzelheiten der Funktionsblöcke werden nachfolgend geliefert.
Wegen der Definitionen der in den 1A und 1B verwendeten Symbole wird
auf Tabelle A-1, die interne Hardware-Zusammenfassung, verwiesen.
-
Die Prozessorarchitektur ist um zwei
Hauptbusse (Paare) gebaut: den Programmbus 101A und 101D und
den Datenbus 111A und 111D. Der Programmbus überträgt den Befehlscode
und die Sofortoperanden aus dem Programmspeicher an den Programmdatenbus 101D.
Die Adressen für
den Programmspeicher 61 werden auf dem Programmadressenbus 101A geliefert.
Der Datenbus umfaßt
den Datenadressenbus 111A und den Datenbus 111D.
Der letztere Bus 111D verbindet verschiedene Elemente wie
etwa die Zentral-Arithmetik-Logik-Einheit (CALU) 15 und
eine Hilfsregisterdatei 115 und die Register 85 mit
dem Datenspeicher 25. Für Multiplikations/Akkumulations-Operationen
können
die Programm- und Datenbusse 101 und 111 in einem
einzigen Zyklus zusammen Daten aus dem auf dem Chip befindlichen
Datenspeicher 25 und aus dem internen oder externen Programmspeicher 61 an
den Multiplizierer 27 übertragen.
Der Datenspeicher 25 und die Register 85 werden über den
Datenadressenbus 111A adressiert. An den Datenadressenbus 111A ist
ein Kernregister-Adressendecodierer 121 zum Adressieren
der Register 85 und aller anderen adressierbaren CPU-Kernregister
angeschlossen.
-
Der Prozessor 13, 15 besitzt
einen hohen Grad von Parallelität;
z. B. werden Arithmetikoperationen vorteilhaft während des Bearbeitens der Daten
durch die CALU 15 in einer Hilfsregister-Arithmetikeinheit (ARAU) 123 realisiert.
Eine solche Parallelität
führt zu
einem leistungsfähigen
Satz von Arithmetik-Logik- und Bitmanipulationsoperationen,
die alle in einem einzigen Maschinenzyklus ausgeführt werden
können.
-
Die prozessorinterne Hardware umfaßt Hardware
für die
Einzyklus-16 × 16
Bit-Multiplikation, für
die Datenverschiebung und für
die Adressenmanipulation.
-
Die Tabelle A-1 bietet eine Zusammenfassung
der internen Hardware. Diese zusammenfassende Tabelle, die die internen
Verarbeitungselemente, die Register und die Busse umfaßt, ist
in jeder Funktionsgruppe alphabetisch geordnet.
-
Tabelle
A-1 Interne Hardware
-
-
-
-
-
-
Tabelle
A-2 Auf den Speicher abgebildete Register
-
-
Der Prozessor 13, 15 adressiert
insgesamt 64 K Wörter
des Datenspeichers 25. Der Datenspeicher 25 wird
in den 96 K-Datenspeicherraum abgebildet, während der auf dem Chip befindliche
Programmspeicher in einen 64 K-Programmspeicherraum abgebildet wird.
-
Der 16 Bit-Datenadressenbus 111A adressiert
den Datenspeicher 25 auf eine der folgenden zwei Arten:
- 1) mittels eines Direktadressenbusses (DAB)
unter Verwendung des direkten Adressierungsmodus (z. B. ADD 010h),
oder
- 2) mittels eines Hilfsregisterdatei-Busses (AFB) unter Verwendung
des indirekten Adressierungsmodus (z. B. ADD*).
- 3) Operanden werden außerdem
durch den Inhalt des Programmzählers
in einem Sofortadressierungsmodus adressiert.
-
In dem Direktadressierungsmodus zeigt
ein 9 Bit-Datenspeicher-Seitenzeiger (DP) 125 auf eine von 512 (128
Wörter-)
Seiten. Ein MUX 126 wählt
auf einen Befehl entweder den Bus 101D oder den Bus 111D für den DP-Zeigerregisterabschnitt 125.
Die von dem Programmdatenbus 101D durch sieben LSBs 127 des
Befehls spezifizierte Datenspeicheradresse (dma) zeigt auf das gewünschte Wort
in der Seite. Die Adresse auf dem DAB wird durch Verketten des 9
Bit-DP mit der 7 Bit-dma gebildet. Ein MUX 129 liefert
auf Befehl wahlweise entweder die Ausgangsgröße der ARAU 123 oder
die verkettete (DP, dma) Ausgangsgröße an den Datenadressenbus 111A.
-
In dem indirekten Adressierungsmodus
adressiert das momentan in den Registern 115 gewählte 16 Bit-Hilfsregister
AR(ARP) über
den AFB den Datenspeicher. Während
das gewählte
Hilfsregister die Datenspeicheradresse liefert und die Daten von
der CALU 15 manipuliert werden, kann der Inhalt des Hilfsregisters durch
die ARAU 123 manipuliert werden.
-
Die Datenspeicher-Adressenabbildung
kann durch Seitenwechsel in zusätzlichen
32 K Wörtern über die
globale Speicherschnittstelle über
den 64 K-Wort Adressenbereich des 16 Bit-Adressenbusses hinaus erweitert
werden. Durch Laden des GREG-Registers mit dem richtigen Wert kann
dem lokalen Datenspeicher beginnend bei der höchsten Adresse und abwärts fortschreitend
zusätzlicher
Speicher überlagert
werden. Dieser zusätzliche
Speicher unterscheidet sich von dem lokalen Speicher dadurch, daß das BR-Pin
aktiv tief ist.
-
Wenn ein Sofortoperand verwendet
wird, ist er entweder in dem Befehlswort selbst oder, im Fall der 16
Bit-Sofortoperanden, in dem Wort, das dem Befehlswort folgt, enthalten.
-
Für
die indirekte Adressierung des Datenspeichers 25 oder für die temporäre Datenspeicherung
werden acht Hilfsregister (AR0–AR7)
in den Hilfsregistern 115 verwendet. Die indirekte Hilfsregisteradressierung erlaubt,
die Datenspeicheradresse eines Befehlsoperanden in einem der Hilfsregister
anzuordnen. Auf diese Register zeigt ein Dreibit-Hilfsregisterzeiger
(ARP) 141, der mit einem jeweils mit AR0 bis AR7 bezeichneten Wert
von 0 bis 7 geladen wird. Die Eingänge eines MUX 144 sind
mit dem Datenbus 111D und mit dem Programmdatenbus 101D verbunden.
Der MUX 144 wird durch einen Befehl zum Erhalten eines
Werts für
den ARP 141 von einem der zwei Busse 111D und 101D betrieben.
Die Hilfsregister 115 und der ARP 141 können entweder
aus dem Datenspeicher 25, aus dem Akkumulator 23,
aus dem Produktregister 51 oder durch einen in dem Befehl
definierten Sofortoperanden geladen werden. Die Inhalte dieser Register
können
außerdem
im Datenspeicher 25 gespeichert oder als Eingangsgrößen in die
Haupt-CPU verwendet werden.
-
Die Hilfsregisterdatei (AR0–AR7) 115 ist
an die in 1B gezeigte
Hilfsregister-Arithmetikeinheit (ARAU) 123 angeschlossen.
Die ARAU 123 kann das momentane Hilfsregister in den Registern 115 während des
Adressierens des Datenspeicherbereichs selbstindizieren. Es kann
ein Indizieren mit entweder +/–1
oder mit dem Inhalt eines Indexregisters 143 oder AR0 ausgeführt werden.
Als Ergebnis erfordert das Zugreifen auf Informationstabellen durch
Zeilen oder Spalten für
die Adressenmanipulation nicht die Zentral-Arithmetik-Logik-Einheit
(CALU) 15, wobei diese für andere Operationen entlastet
wird.
-
Das Indexregister 143 oder
die acht LSBs eines Befehlsregisters IR werden über einen MUX 145 wahlweise
mit einem der Eingänge
der ARAU 123 verbunden. Der andere Eingang der ARAU 123 wird
durch einen MUX 147 von dem momentanen Hilfsregister AR
(auf das der ARP zeigt) gespeist.
-
Wie oben beschrieben ist, enthält die Zentral-Arithmetik-Logik-Einheit
(CALU) 15 einen 16 Bit Vorskalierungs-Skalierungschieber 65,
einen 16 × 16
Bit-Parallelmultiplizierer 27, eine 32 Bit Arithmetik-Logik-Einheit (ALU) 21,
einen 32 Bit-Akkumulator (ACC) 23 und zusätzliche
Schieber 169 und 181 an den Ausgängen sowohl
des Akkumulators 23 als auch des Multiplizierers 27.
Dieser Abschnitt beschreibt die Komponenten der CALU und ihre Funktionen.
-
Bei der Verwirklichung eines typischen
ALU-Befehls finden die folgenden Schritte statt:
- 1)
Auf dem Datenbus werden Daten von dem RAM 25 abgerufen.
- 2) Die Daten werden durch den Skalierungsschieber 65 und
durch die ALU 21 geleitet, wo die Arithmetik ausgeführt wird,
und
- 3) das Ergebnis wird in den Akkumulator 23 verschoben.
-
Eine Eingangsgröße in die ALU 21 wird
von dem Akkumulator 23 bereitgestellt, während die
andere Eingangsgröße von dem
Produktregister (PREG) 51 des Multiplizierers 27,
einem Produktregisterpuffer (BPR) 185, dem Akkumulatorpuffer
(ACCB) 31 oder von den Skalierungsschiebern 65 und 181,
die aus dem Datenspeicher 25 oder aus dem Akkumulator 23 geladen
werden, gewählt
wird.
-
Vorteilhaft besitzt der Skalierungsschieber 65 einen über den
MUX 73 an den Datenbus 111D angeschlossenen 16
Bit-Eingang und einen über
den MUX 77 an die ALU 21 angeschlossenen 32 Bit-Ausgang.
Der Skalierungsschieber-Vorskalierer 65 erzeugt an den
Eingangsdaten eine durch Laden eines COUNT-Registers 199 programmierte
Linksverschiebung von 0 bis 16 Bits. Die Schiebezählung wird
durch eine in das Befehlswort eingebettete Konstante oder durch
einen Wert in dem Register TREG1 spezifiziert. Die LSBs der Ausgangsgröße des Vorskalierers 65 werden
mit Nullen gefüllt,
während
die MSBs in Abhängigkeit
von dem in dem SXM-Bit (Vorzeichenerweiterungs-Modusbit) des Zustandsregisters
ST1 programmierten Zustand entweder mit Nullen gefüllt oder
vorzeichenerweitert werden können.
-
Der gleiche Schieber 65 besitzt
einen weiteren Eingangspfad von dem Akkumulator 23 über den
MUX 73. Bei Verwendung dieses Pfads wirkt der Schieber 65 als
ein 0 bis 16 Bit-Rechtsschieber. Dies ermöglicht, den Inhalt des ACC
in einem einzigen Zyklus 0 bis 16 Bits nach rechts zu schieben.
Die herausgescho benen Bits gehen verloren, während die hereingeschobenen
Bits in Abhängigkeit
von dem Wert des SXM-Zustandsbits entweder Nullen oder Kopien des
ursprünglichen
Vorzeichenbits sind.
-
Die verschiedenen Schieber 65, 169 und 181 ermöglichen
das numerische Skalieren, die Bitextraktion, die Arithmetik mit
erweiterter Genauigkeit und die Überlaufverhinderung.
-
Die 32 Bit-ALU 21 und der
Akkumulator 23 realisieren einen weiten Bereich von Arithmetik-
und Logikfunktionen, wobei in der bevorzugten Ausführung die
Mehrzahl von ihnen in einem einzigen Taktzyklus ausgeführt wird.
Sobald in der ALU 21 eine Operation ausgeführt ist,
wird das Ergebnis in den Akkumulator 23 übertragen,
wo zusätzliche
Operationen wie etwa das Schieben stattfinden können. Daten, die in die ALU
eingegeben werden, können
durch den Skalierungsschieber 181 skaliert werden.
-
Die ALU 21 ist eine Universal-Arithmetikeinheit,
die aus dem Daten-RAM genommene oder aus Sofortbefehlen abgeleitete
16 Bit-Wörter
bearbeitet. Zusätzlich
zu den üblichen
Arithmetikbefehlen kann die ALU selbst Boolesche Operationen ausführen. Wie
oben erwähnt
wurde, wird eine Eingangsgröße in die
ALU von dem Akkumulator 23 bereitgestellt, während die
andere Eingangsgröße wahlweise
von dem MUX 77 gespeist wird. Der MUX 77 wählt den
Akkumulatorpuffer (ACCB) 31 oder zweitens die (aus dem
Daten-RAM oder aus dem ACC gelesene) Ausgangsgröße des Skalierungsschiebers 65 oder
drittens die Ausgangsgröße des Produktskalierers 169.
Der Produktskalierer 169 wird von einem MUX 191 gespeist.
Der MUX 191 wählt
für den Skalierer 169 entweder
das Produktregister PREG 51 oder den Produktregisterpuffer 185.
-
Der 32 Bit-Akkumulator 23 ist
für die
Speicherung in dem Datenspeicher 25 über den Datenbus 111D in
zwei 16 Bit-Segmente gespalten. Der Schieber 181 am Ausgang
des Akkumulators erzeugt eine Linksverschiebung von 0 bis 7 Stellen.
Diese Verschiebung wird ausgeführt,
während
die Daten für
die Speicherung an den Datenbus 111D übertragen werden. Der Inhalt
des Akkumulator 23 bleibt ungeändert. Wenn der Nachskalierungsschieber 181 auf
das hohe Wort (die Bits 16–31)
des Akkumulators 23 angewendet wird, gehen die MSBs verloren,
während
die LSBs mit von dem tiefen Wort (den Bits 0–15) hereingeschobenen Bits
gefüllt
werden. Wenn der Nachskalierungsschieber 181 auf das tiefe
Wort angewendet wird, werden die LSBs mit Nullen gefüllt.
-
Für
Anwendungen, die einen weiten dynamischen Bereich benötigen, werden
Gleitkommaoperationen bereitgestellt. Der NORM- (Normierungs-) Befehl
wird verwendet, um in dem Akkumulator 21 enthaltene Festkommazahlen
durch Ausführen
von Linksverschiebungen zu normieren. Die vier Bits des temporären Registers
TREG1 81 definieren für
die LACT/ADDT/SUBT-Befehle (Lade/Addiere zu/Subtrahiere-Befehle
aus dem Akkumulator mit einer durch TREG1 spezifizierten Verschiebung)
eine Variablenverschiebung durch den Skalierungsschieber 65.
Diese Befehle können
bei der Gleitkommaarithmetik genutzt werden, wo eine Zahl denormiert,
d. h. eine Gleitkomma-Festkomma-Umsetzung ausgeführt werden muß. Sie können außerdem in
Anwendungen wie etwa der Ausführung
einer in ein Filter führenden
automatischen Verstärkungsregelung
(AGC) genutzt werden. Der BITT-Befehl (Bitprüfbefehl) stellt das Prüfen eines
einzelnen Bits eines Worts im Datenspeicher auf der Grundlage des
in den vier LSBs eines temporären
Registers TREG2 195 enthaltenen Werts bereit.
-
Die Register TREG1 und TREG2 werden
vom Datenbus 111D gespeist. Ein MUX 197 wählt Werte
aus TREG1, TREG2 oder vom Programmdatenbus 101D und speist
einen von ihnen in ein COUNT-Register 199. Um den Betrag
der Verschiebung zu bestimmen, ist das COUNT-Register 199 an
den Skalierungsschieber 65 angeschlossen.
-
Die Einzyklus-Rechtsverschiebung
des Akkumulators 23 um 0 bis 16 Bits ermöglicht ein
wirksames Ausrichten des Akkumulators für eine mehrfachgenaue Arithmetik.
Gepaart mit den temporären
32 Bit-Puffern ACCB in dem Akkumulator und BPR in dem Produktregister
verbessert dies die Effektivität
der CALU in der mehrfachgenauen Arithmetik. Das Akkumulatorpuffer-Register
(ACCB) schafft einen temporären
Speicherraum für
ein schnelles Sichern des Akkumula tors. Das ACCB kann außerdem als
ein Eingang in die ALU verwendet werden. ACC und ACCB können ineinander
gespeichert werden. Der Inhalt des ACCB kann von der ALU mit dem
ACC vergleichen werden, wobei der größere/kleinere Wert zur Verwendung
bei Mustererkennungsalgorithmen in dem ACCB (oder sowohl im ACC
als auch im ACCB) gespeichert wird. Zum Beispiel kann der maximale
oder minimale Wert in einer Zahlen-Zeichenkette vorteilhaft durch
Vergleichen des Inhalts des ACCB und des ACC gefunden werden, wobei
das Minimum oder Maximum, wenn die Bedingung erfüllt ist, in eines der beiden
Register gegeben wird. Der Produktregisterpuffer (BPR) schafft einen
temporären
Speicherraum für
ein schnelles Sichern des Produktregisters. Außerdem kann der in dem BPR
gespeicherte Wert zu dem Akkumulator addiert oder von diesem subtrahiert
werden, wobei die Verschiebung für
den bereitgestellten Schieber 169 spezifiziert wird.
-
Die Systemsteuerung wird durch den
Programmzähler 93,
den Hardwarestapel 91, die PC-bezogene Hardware, das externe
Rücksetzsignal
RS-, die Unterbrechungen an eine Unterbrechungssteuerung 231,
die Zustandsregister und die Wiederholungszähler geschaffen. Die folgenden
Abschnitte beschreiben die Funktion jeder dieser Komponenten bei
der Systemsteuerung und beim Pipeline-Betrieb.
-
Der Prozessor besitzt einen 16 Bit-Programmzähler (PC) 93,
während
ein Hardwarestapel 91 der Tiefe acht die Speicherung des
PC schafft. Der Programmzähler 93 adressiert
beim Abrufen von Befehlen den internen und den externen Programmspeicher 61.
Der Stapel 91 wird während
Unterbrechungen und Unterprogrammen verwendet.
-
Der Programmzähler 93 adressiert über den
Programmadressenbus (PAB) 101A den entweder auf dem Chip
oder außerhalb
des Chips befindlichen Programmspeicher 61. Über den
PAB wird ein Befehl im Programmspeicher 61 adressiert und
für eine
Decodierer-PLA 221 über
den Programmdatenbus 101D in das Befehlsregister (IR) geladen.
Wenn das IR geladen ist, ist der PC 93 zum Starten des
nächsten
Befehlsabrufzyklus bereit. Die Decodierer-PLA (programmierbare Logikanordnung
des Decodierers) 221 besitzt zahlreiche Ausgänge zum Steuern
der MUXs und aller Prozessorelemente zum Ausführen der Befehle in dem Prozessorbefehlssatz.
Zum Beispiel speist die Decodierer-PLA 221 Befehlssignale
in einen Pipeline-Controller 225, der ebenfalls verschiedene
Ausgänge
zum Realisieren der Pipeline-Verarbeitungsoperationen besitzt, so
daß die
Prozessorelemente zeitlich synchronisiert werden. Die Ausgänge des
Pipeline-Controllers 225 umfassen außerdem CALL, RET (RETURN),
IAQ (Unterbrechungserfassung) und IACK (Unterbrechungsquittung).
-
Der Datenspeicher 25 wird
von dem Programmzähler 93 während eines
BLKD-Befehls, der Datenblöcke
aus einem Abschnitt des Datenspeichers in einen anderen verschiebt,
adressiert. Der Inhalt des Akkumulators 23 kann in den
PC 93 geladen werden, um "berechnete GOTO"-Operationen zu realisieren. Dies kann unter
Verwendung des BACC- (Verzweigung zur Adresse im Akkumulator) oder
CALA- (indirekter Unterprogrammaufruf) Befehls erreicht werden.
-
Um einen neuen Abrufzyklus zu starten,
wird der PC 93 entweder mit PC + 1 oder (für Befehle
wie etwa Verzweigungen, Aufrufe oder Unterbrechungen) mit einer
Verzweigungsadresse geladen. Im Fall besonderer bedingter Verzweigungen,
in denen die Verzweigung nicht genommen wird, wird der PC nach der
Stelle der Sofortverzweigung nochmals inkrementiert. Zusätzlich zu
den bedingten Verzweigungen besitzt der Prozessor ein vollständiges Komplement
bedingter Aufrufe und Rückkehren.
-
Der Prozessor 13, 15 arbeitet
mit einer Pipeline der Tiefe vier.
-
Die Peripherie-Logikeinheit (PLU) 41 nach 1B wird zum direkten Setzen,
Löschen,
Umschalten oder Prüfen
mehrerer Bits in einem Steuer/Zustands-Register oder in irgendeinem
Datenspeicherbereich verwendet. Die PLU schafft einen direkten Logikoperationspfad
zu Datenspeicherwerten, ohne den Inhalt des Akkumulators oder des
Produktregisters zu beeinflussen. Sie wird zum Setzen oder zum Löschen mehrerer
Steuerbits in einem Register oder zum Prüfen mehrerer Bits in einem
Merkerregister verwendet.
-
Die PLU 41 arbeitet in der
Weise, daß sie über den
Datenbus 111D einen Operanden aus dem Speicherraum abruft,
während
sie den zweiten über
einen MUX 225 entweder aus einem langen Sofortwert auf dem
Programmbus 101D oder aus dem DBMR (dynamischen Bitmanipulationsregister) 223 abruft.
Zuvor wird das DBMR von dem Datenbus 111D geladen. Dann
führt die
PLU an den zwei Operanden ihre durch den Befehl definierte Logikoperation
aus. Schließlich
wird das Ergebnis über
den Datenbus 111D in den gleichen Speicherbereich, aus
dem der erste Operand abgerufen wurde, geschrieben.
-
Die PLU ermöglicht die direkte Manipulation
von Bits in irgendeinem Bereich im Datenspeicherraum. Diese direkte
Bitmanipulation erfolgt durch UND-, ODER-, XOR-Verknüpfungen
oder durch das Laden eines 16 Bit langen Sofortwerts in einen Datenbereich.
Um z. B. das CBCR (Zirkulärpuffer-Steuerregister)
für die
Verwendung von AR1 für
den Zirkulärpuffer 1 und
von AR2 für
den Zirkulärpuffer 2 zu
initialisieren, die Zirkulärpuffer
aber nicht freizugeben, wird:
SPLK 021h, CBCR Speichere langen
Peripheriesofortwert ausgeführt.
Um die Zirkulärpuffer 1 und 2 später freizugeben,
wird:
OPLK 088h, CBCR Setze Bit 7 und Bit 3 in CBCR ausgeführt.
-
Das Prüfen auf einzelne Bits in einem
spezifischen Register oder Datenwort erfolgt dennoch über den BIT-Befehl,
wobei jedoch ein Datenwort mit dem CPLK-Befehl (Vergleiche langen
Peripheriesofortwert) gegenüber
einem besonderen Muster geprüft
werden kann. Falls der Datenwert mit dem langen Sofortwert übereinstimmt,
wird das TC-Bit auf eins gesetzt. Falls das Ergebnis irgendeines
PLU-Befehls null ist, wird das TC-Bit gesetzt.
-
Die Bit-Setz-, -Lösch- und -Umschaltfunktionen
können
ebenfalls mit einem dynamischen 16 Bit-Register-DBMR-Wert anstelle
des langen Sofortwerts ausgeführt
werden. Dies erfolgt mit den folgenden drei Befehlen: XPL (XOR-verknüpfe DBMR-Register
zu Daten); OPL (ODER-verknüpfe
DBMR-Register zu Daten); und APL (UND-verknüpfe DBMR-Register zu Daten).
-
Der Prozessor verfügt über sechzehn
extern maskierbare Anwenderunterbrechungen (INT16–INT1), die
für externe
Vorrichtungen, die den Prozessor unterbrechen, verfügbar sind.
Interne Unterbrechungen werden von dem seriellen Port (RINT und
XINT), von dem Zeitgeber (TINT), von den Paritätsprüfern (PNTL und PNTH) und von
dem Software-Unterbrechungsbefehl (TRAP-Befehl bzw. Nichtprogrammierter-Programmsprung-Befehl)
erzeugt. Die Unterbrechungen sind priorisiert, wobei das Rücksetzen
(RS-) die höchste
Priorität
und der INT15 die niedrigste Priorität hat.
-
Ein Unterbrechungssteuerblock 231 speist
den Programmdatenbus 101D. Die Tabelle A-5 zeigt alle Vektorbereiche
und Prioritäten
für alle
internen und externen Unterbrechungen. Der für die Software-Unterbrechungen
verwendete TRAP-Befehl
ist nicht priorisiert, sondern ist hier aufgenommen, da er seinen
eigenen Vektorbereich besitzt. Jede Unterbrechungsadresse ist durch
zwei Stellen räumlich
getrennt, so daß an
diesen Bereichen Verzweigungsbefehle untergebracht werden können.
-
Tabelle
A-5 Unterbrechungsbereiche und Prioritäten
-
-
In 1B ist
zwischen dem Datenbus 111D und dem Programmdatenbus 101D ein
Bus-Schnittstellenmodul BIM 241 angeschlossen. Auf Befehl
ermöglicht
das BIM 241 Datenübertragungen
zwischen den Bussen 101D und 111D und erhöht die Flexibilität der Architektur
des Systems entweder im Vergleich zur klassischen Harvard-Architektur
oder zur Von-Neumann-Architektur.
-
Als nächstes werden erfindungsgemäße Systeme
mit durch die Verbesserungen des Prozessors 13, 15 ermöglichten
Verarbeitungsanordnungen und Komponentenschaltungsanordnungen diskutiert.
Bei digitalen Universal-Signalverarbeitungsanwendungen führen diese
Systeme vorteilhaft eine Faltung, eine Korrelation, Hilbert-Transformationen,
schnelle Fourier-Transformationen, eine adaptive Filterung, eine
Fenstertechnik und eine Signalformerzeugung aus. Weitere Anwendungen,
die in einigen Fällen
die gerade aufgelisteten allgemeinen Algorithmen umfassen, sind
Sprachkommunikationssysteme, die Sprach-Vocodierung, die Spracherkennung,
die Sprecherüberprüfung, die
Sprachverbesserung, die Sprachsynthese und Text-Sprache-Umsetzungssysteme.
-
Das Instrumentarium gemäß der Erfindung
schafft verbesserte Spektrumanalysatoren, Funktionsgeneratoren,
Musteranpassungssysteme, seismische Verarbeitungssysteme, Transientenanalysesysteme,
Digitalfilter und Phasenregelschleifen für Anwendungen, in denen die
Erfindung geeignet verwendet werden kann.
-
Kraftfahrzeugsteuerungen und -systeme
gemäß der Erfindung
schaffen eine geeignete Motorsteuerung, Schwingungsanalyse, Antiblockier-Bremssteuerung,
adaptive Geschwindigkeitssteuerung, Sprachbefehle und eine Kraftfahrzeug-Übersetzungssteuerung.
-
Auf dem Gebiet der Marine, des Flugwesens
und des Militärs
werden erfindungsgemäße Systeme
geschaffen und verbessert, um gemäß der Erfindung Satelliten-Navigationssysteme,
prozessorgestützte
Navigationssysteme, Radarzielverfolgungssysteme, Plattform-Stabilisierungssysteme,
Systeme für
die Fernlenkung von Flugkörpern,
Sicherheits-Kommunikationssysteme, Radarverarbeitungssysteme und
weitere Verarbeitungssysteme zu schaffen.
-
Weitere Systeme gemäß der Erfindung
umfassen Computerplatten-Antriebsmotor-Controller, Drucker, Plotter,
Controller für
optische Plattenspeicher, servomechanische Steuersysteme, Roboter-Steuersysteme, Laserdruckersteuerungen
und Motorsteuerungen allgemein. Einige dieser Steuersysteme wie
Robotersteuerungen, Automontagevorrichtungen und Qualitätsprüfungs-Ausrüstungen,
industrielle Antriebe, numerische Controller, computergestützte Elektrowerkzeuge,
Sicherheitszugangssysteme und Kraftstromnetz-Überwachungseinrichtungen sind
in der Industrieumgebung anwendbar.
-
Gemäß den hier offenbarten Lehren
und Prinzipien betrachtete Telekommunikationsanwendungen umfassen
Echokompensatoren, ADPCM-Codeumsetzer, digitale PBXs, Leitungsverstärker, Kanalmultiplexer, Modems,
lernfähige
Entzerrer, DTMF-Codierer und DTMF-Decodierer, Datenverschlüsselungsvorrichtungen, Digitalfunk,
Mobilfunk, Faxmaschinen, Lautsprecher-Telephone, digitale Sprachinterpolationssysteme (DSI-Systeme),
Paketvermittlungssysteme, Videokonferenzsysteme und Breitspektrum-Kommunikationssysteme.
-
Auf dem Gebiet der graphischen Bilddarstellung
umfassen weitere Erfindungen auf der Grundlage der hier offenbarten
Prinzipien und Vorrichtungen und Systeme optische Zeichenerkennungsvorrichtungen, 3D-Rotationsvorrichtungen,
Roboter-Sehsysteme, Bildübertragungs-
und -komprimierungsvorrichtungen, Mustererkennungssysteme, Bildverbesserungsausrüstungen,
homomorphe Verarbeitungssysteme, Workstations und Animationssysteme
und digitale Abbildungssysteme.
-
Weiter betrachtete medizinische Erfindungen
gemäß der vorliegenden
Erfindung umfassen z. B. Hörhilfen,
Patientenüberwachungsvorrichtungen,
Ultraschallausrüstungen,
Diagnosehilfsmittel, Automatikprothesen und Fötus-Überwachungseinrichtungen. Konsumgüter gemäß der Erfindung
umfassen hochauflösende Fernsehsysteme
wie etwa hochauflösende
Fernsehempfänger
und in Studios und Fernsehstationen verwendete Übertragungsausrüstungen.
Verbrauchererfindungen umfassen weiter Musik-Synthesizer, Festkörper-Antwortmaschinen,
Radar-Auswerteschaltungen, Elektrowerkzeuge sowie Spielzeuge und
Spiele.
-
Es wird hervorgehoben, daß die Systemaspekte
der hier betrachteten Erfindung Vorteile der verbesserten Systemarchitektur,
Systemleistung, Systemzuverlässigkeit
und Wirtschaftlichkeit schaffen.
-
Zum Beispiel umfaßt in 2 ein erfindungsgemäßer industrieller Prozeß und ein
Schutzsteuersystem 300 gemäß der Erfindung industrielle
Sensoren 301 und 303 zum Abtasten für eine besondere
Industrieumgebung relevanter physikalischer Variablen. Die Signale
von den Sensoren 301 und 303 werden an eine Signalprozessorvorrichtung 11 nach
den 1A und 1B mit der Verbesserung der
PLU (parallelen Logikeinheit) 41 nach 1B geliefert. Eine Schnittstelle 305 umfaßt die Registerbereiche
A, B, C, D, E, F, G und H und (nicht gezeigte) Treiber. Die Registerbereiche
sind über
die Treiber und über
die jeweiligen Leitungen 307 mit einer von einem Motor 311 angetriebenen
industriellen Prozeßvorrichtung,
mit einer von dem Relais 313 angesteuerten Vorrichtung
und mit verschiedenen Ventilen einschließlich eines Magnetventils 315 verbunden.
-
In dem industriellen Prozeß und in
der Schutzsteuerumgebung arbeiten verschiedene technologische und
wirtschaftliche Betrachtungen im Widerspruch zueinander. Falls die
Geschwindigkeit oder der Durchsatz des industriellen Prozesses hoch
sein soll, wird die Verarbeitungskapazität der Vorrichtung 11 zum
Interpretieren der Bedeutung der von den Sensoren 301 und 303 abgetasteten
relativ schnellen, in Echtzeit auftretenden Änderungen stark belastet. Andererseits
müssen
die Steuerfunktionen, die zum Reagieren auf die von den Sensoren 301 und 303 abgetasteten
Bedingungen der wahren Welt erforderlich sind, auch schnell ausgeführt werden.
Wenn die Vorrichtung 11 in einem einzelnen Halbleiterchip
hergestellt wird, löst
das Hinzufügen
der PLU 41 die widersprechenden Anforderungen an die Vorrichtung 11 vorteilhaft
mit vernachlässigbaren
zusätzlichen
Kosten. Auf diese Weise werden die industrielle Verarbeitungsrate,
die Geschwindigkeit der Schutzsteuerung und die Präzision der
Steuerung beträchtlich
verbessert.
-
In 3 enthält ein erfindungsgemäßes Kraftfahrzeug 321 ein
Fahrgestell 323, an dem Räder und Achsen, ein Motor 325,
eine Federung 327 und Bremsen 329 angebracht sind.
Eine Kraftfahrzeugkarosserie 331 definiert einen Fahrgastraum,
der relativ zu dem Fahrgestell 323 vorteilhaft mit einer
Federung ausgestattet ist.
-
Eine aktive Federung 335 erweitert
das Feder-Stoßdämpfer-Federungsverfahren
und wird über
eine Schnittstelle 341 mit Stellen für die Bits A, B, C, D, E, F,
G, H, I, J, K, L, M und N gesteuert. Ein Parallelrechenprozessor 343 verwendet
Recheneinheiten des in den 1A und 1B offenbarten Typs und enthält wenigstens eine
an den Datenbus 351D und an den Programmdatenbus 361D angeschlossene
parallele Logikeinheit 41. Zu den zahlreichen Sensoren
gehören
die Sensoren 371, 373 und 375, die die
Funktion der Federung 335, des Motorbetriebs bzw. des Antiblockierbremsens überwachen.
-
Ein Motorsteuersystem 381 ist
an mehrere Stellen der Schnittstelle 341 angeschlossen.
Außerdem
ist ein Antiblockier-Bremssteuersystem 383 an weitere Bits
der Schnittstelle 341 angeschlossen. Zahlreiche Betrachtungen
der Zuverlässigkeit,
der Sicherheit, des Fahrgastkomforts und der Wirtschaftlichkeit
von Kraftfahrzeugen stellen starke Anforderungen an herkömmliche
Kraftfahrzeugsysteme.
-
In der Erfindung nach 3 wird das Kraftfahrzeug 321 aufgrund
der äußerst flexiblen
Parallelität
und der Steuerungsvorteile der Erfindung auf irgendeinem oder auf
allen diesen Gebieten verbessert.
-
Die in den Systemen der 2 und 3 und in weiteren hier beschriebenen
Systemen verwendeten Vorrichtungen wie etwa die Vorrichtung 11 richten
sich nicht nur auf Probleme einer erhöhten Leistung der Vorrichtung,
sondern lösen
außer dem
Probleme von industriellen Systemen, die die Gesamtsystemleistung
und die Kosten des Anwenders bestimmen.
-
Eine Vorrichtung 11 gemäß der zweckmäßigen Ausführung führt einen
Befehl in 50 Nanosekunden aus, wobei weitere Verbesserungen der
Halbleiterherstellung noch höhere
Befehlsraten möglich
machen. Der auf dem Chip befindliche Programmspeicher beruht auf
RAM und erleichtert das Boot-Laden eines Programms aus dem preisgünstigen
externen Speicher. Andere Versionen beruhen wegen einer weiteren
Kostenreduzierung zweckmäßig auf
ROM.
-
Ein erfindungsgemäßes digital gesteuertes Motorsystem 400 nach 4 umfaßt einen digitalen Controller 401 mit
einer Vorrichtung 11 nach den 1A und 1B.
Der digitale Controller 401 liefert eine Ausgangsgröße u(n)
an ein Halteglied nullter Ordnung ZOH 403. Das ZOH 403 liefert
in einer Systemumgebung einer industriellen Maschinerie, in Heimanwendungen,
in militärischen
Ausrüstungen
oder in der Umgebung eines anderen Anwendungssystems eine Steuerausgangsgröße u(t)
an einen Gleichstrom-Servomotor 405. In 4 ist der Anschluß des Motors 405 an
ein Plattenlaufwerk 406 gezeigt.
-
Die Betriebsantwort des Servomotors 405 auf
die Eingangsgröße u(t)
wird als y(t) bezeichnet. Ein Sensor 407 ist ein Wandler
für die
Motor-Ausgangsgröße y(t)
und speist einen Abtaster 409, der seinerseits eine abgetastete
digitalisierte Ausgangsgröße y(t)
an einen Subtrahierer 411 liefert. Der Abtaster 409 signalisiert außerdem dem
digitalen Controller 401 über eine Unterbrechungsleitung
INT-. Extern wird als eine weitere Eingangsgröße in den Subtrahierer 411 eine
Bezugs-Eingangsgröße r(n)
von einer menschlichen oder automatischen Fernsteuerung geliefert.
Um die Schleife zu schließen,
wird dann eine Fehlerdifferenz e(n) in den digitalen Controller 401 gespeist.
Die Vorrichtung 11 stattet den Controller 401 mit
einer hohen Schleifenbandbreite und mit einer mehrfachen Funktionalität für die Verarbeitung
und Steuerung anderer Elemente neben den Servomotoren wie in 2 aus. Die organisationsaufwandfreie
Unterbrechungskontextumschaltung in der Vorrichtung 11 erhöht zusätzlich die
Bandbreite und schafft eine attraktive Alternative zur Abrufarchitektur.
-
In 5 führt ein
Mehrvariablen-Zustandscontroller 421 unter Verwendung des
Prozessors der Vorrichtung 11 fortgeschrittene Algorithmen
aus. Der Zustandscontroller 421 empfängt eine Bezugseingangsgröße r(n)
und liefert an einen Motor 423 eine Ausgangsgröße u(n).
An den Zustandscontroller 421 werden mehrere elektrische
Variablen (die Position x1, die Geschwindigkeit x2, der Strom x3
und das Drehmoment x4) rückgekoppelt.
Irgendeine oder mehrere der vier Variablen x1–x4 werden (z. B. in einer
Linearkombination) für verschiedene
Betriebszwecke geeignet gesteuert. Das System kann Anwendungen mit
einer geregelten Geschwindigkeit oder mit einem geregelten Drehmoment
betreiben und kann Schrittmotoren und Umkehrmotoren ansteuern.
-
In 6 wird
der Betrieb eines Motors 431 mit einem Abtaster 433 gefühlt und
abgetastet. Ein Prozessor 435 mit einer Vorrichtung 11 wird
durch einen Abtaster 433 unterbrechungsgesteuert. Wie in
Verbindung mit den 1A und 1B beschrieben ist, werden
die durch die Einheit 433 bestimmten Geschwindigkeitsinformationen
an den Prozessor 435 verbessert rückgekoppelt. Die Software im
Programmspeicher 61 nach 1A wird
als ein Abschätzungsalgorithmenprozeß 437 ausgeführt. Der
Prozeß 437 erzeugt
Geschwindigkeits-, Positions- und Strominformationen für den Zustandscontrollerprozeß 439 des
Prozessors 435. Eine digitale Ausgangsgröße u(n)
wird als Ausgangsgröße von dem
Zustandscontroller 439 an ein Halteglied nullter Ordnung 441 geliefert,
das seinerseits den Motor 431 ansteuert.
-
Der Motor ist zweckmäßig ein
Gleichstrom-Stromrichtermotor mit dem Kern, den Spulen und dem Rotor
im Block 431 zugeordneten Halbleiterelektronikschaltern.
Die Drehgeber, die optische und die Hall-Effekt-Rotorpositionsabtastung
und die Abtastung der Gegen-EMK (gegenelektromotorischen Kraft)
der Position von den Windungen sind in den Systemen der 4–6 untergebracht.
-
In 7 besitzt
das Robotersteuerungssystem 451 einen motorgetriebenen
Greifmechanismus 453 am Ende eines Roboterarms 455.
Der Roboterarm 455 ist mit Drehachsen 457.1, 457.2, 457.3 und 457.4 konstruiert.
An dem Arm 455 sind an den Gelenkknoten 459.1, 459.2, 459.3 und 459.4 Sensoren
und hochansprechende, genau steuerbare Motoren angebracht.
-
Für
eine genaue Positionierung und Verwendung des Roboterarmmechanismus 455 ist
die Bereitstellung zahlreicher solcher Motoren und Sensoren wünschenswert.
Die zahlreichen Sensoren und Motoren stellen jedoch widersprechende
Anforderungen an das System als Ganzes und an einen Controller 461.
Der Controller 461 löst
diese Systemanforderungen durch Einbeziehung der Vorrichtung 11 nach
den 1A und 1B und der unterbrechungsgesteuerten
Architektur des Systems 451. Der Controller 461 kommuniziert
mit einer E/A-Schnittstelle 463, die durch die parallele
Logikeinheit 41 für
den Roboterarm 455 eine Analog-Digital- und Digital-Analog-Umsetzung
sowie eine Bitmanipulation schafft. Die Schnittstelle 463 empfängt Positions-
und Druckantworten von den dem Roboterarm 455 und dem Greifmechanismus 453 zugeordneten
Navigationsmotoren 467 und Sensoren. Außerdem liefert die Schnittstelle 463 über die
Regelverstärker 465 Steuerbefehle an
die jeweiligen Motoren 467 des Roboterarms 455.
-
Der Controller 461 besitzt
einen Assoziativspeicher 467 mit statischem RAM (SRAM)
und mit einem programmierbaren Nur-Lese-Speicher (PROM). Dem Controller 471 sind
die langsameren Peripherieeinrichtungen 469 zugeordnet,
wobei diese wirksam durch die seitengrenzensensitive Wartezustandsmerkmale
des Controllers 461 versorgt werden. Außerdem spricht der Controller 461 auf
Befehle höherer
Ordnung an, die eine auf die Sicherheitssteuervorrichtung 475 ansprechende
Systemmanager-CPU 473 an ihn liefert. Der Systemmanager 473 kommuniziert
mit dem Controller 461 über
die E/A-Einrichtung und über
die RS 232-Treiber 475.
-
Das digitale Steuersystem gemäß der Erfindung
macht zuvor nicht verfügbare
Leistungsvorteile der Präzision,
der Geschwindigkeit und der Wirtschaftlichkeit der Steuerung möglich. Um
ein weiteres Beispiel zu geben, enthalten Plattenantriebe Informationsspeicherplatten,
die von Spindelmotoreinheiten mit einer hohen Geschwindigkeit gedreht
werden. Zusätzliche,
Stellantrieb genannte Steue rungen richten die Lese- und Schreibkopfelemente
relativ zu den Informationsspeicherplatten aus.
-
Die bevorzugte Ausführung kann
selbst eine Einchiplösung
sowohl für
die Stellantriebssteuerung als auch für die Spindelmotorsteuerung
sowie für
die Systemverarbeitungs- und Diagnoseoperationen schaffen. Es werden
anspruchsvolle Funktionen untergebracht, ohne den Controller 461 unangemessen
hoch zu belasten. Um mechanische Resonanzen auszulöschen, kann
in dem Controller 461 ein digitales Sperrfilter realisiert werden.
Ein Zustandsschätzer
kann die Geschwindigkeit und den Strom abschätzen. Ein Kalman-Filter reduziert
das Sensorrauschen. Eine adaptive Steuerung kompensiert Temperaturschwankungen
und mechanische Schwankungen. Die Vorrichtung 11 schafft
außerdem
eine auf dem Chip befindliche PWM-Pulsbreitenmodulations-Ausgangsgröße für die Geschwindigkeitssteuerung
des Spindelmotors. Ähnliche
Funktionen lassen sich leicht in Bandlaufwerken, Druckern, Plottern
und optischen Plattensystemen unterbringen. Die erfindungsgemäßen Digitalsteuerungen
schaffen eine höhere
Geschwindigkeit, eine genauere Geschwindigkeitssteuerung und einen
schnelleren Datenzugriff in der E/A-Technik allgemein zu vergleichbaren
Kosten, wobei sie somit den Stand der Technik vorantreiben.
-
In Raketenleitsystemen schaffen die
verbesserten Betriebsmöglichkeiten
der Erfindung eine genauere Leitung der Raketensysteme, wobei die
zum Erreichen der Einsatzziele erforderliche Anzahl der teuren Raketen
reduziert wird. Abgesehen davon kann eine entsprechende Leistung
mit weniger Prozessorchips erhalten werden, wodurch das Gewicht
reduziert wird und zusätzliche
Merkmale und Nutzlasterhöhungen
ermöglicht werden
können.
-
In 8 besitzt
ein Satelliten-Telekommunikationssystem gemäß der Erfindung erste Stationen 501 und 503,
die über
einen Satellitenübertragungspfad
mit einer Verzögerung
von 250 Millisekunden kommunizieren. Ein Ferntelephon 505 und
ein Nahtelephon 507 sind über die Gabeln 509 und 511 jeweils
mit Erdstationen 501 und 503 verbunden. Die Gabeln 509 und 511 werden
im Verhältnis
zu den jeweiligen Erdstationen 501 und 503 um
acht Millisekunden verzögert.
Um ausreichende Telekommunikationen zwischen dem Ferntelephon 505 und
dem Nahtelephon 507 zu schaffen, ist dementsprechend eine
Echokompensation erforderlich. Darüber hinaus ist die Fähigkeit
des gleichzeitigen Bedienens zahlreicher Telephongesprächsschaltungen
erforderlich. Dies stellt eine äußerste Verarbeitungsbelastung
für die
Telekommunikationsanlage dar.
-
Um die Übertragung der Kommunikationsschaltung
zu verbessern, ist in 9 jeder
Gabel wie etwa 511 ein Echokompensator 515 der
bevorzugten Ausführung
zugeordnet. Die Vorrichtung 11 führt nicht nur Echokompensationsalgorithmen
mit einer hohen Geschwindigkeit aus, sondern bedient auch wirtschaftlich mehrere
Satellitenkommunikationsschaltungen pro Chip.
-
Eine weitere Systemausführung ist
ein verbessertes Modem. In 10 enthält ein Prozeßdiagramm der
Operationen in der als ein Modemsender programmierten Vorrichtung 11 einen
Schritt 525 des Verwürfelns,
auf den ein Schritt 527 des Codierens folgt, der für die Interpolationsverfahren 529 bzw. 531 Quadratur-Digitalsignale
I[nTb] und Q[nTb]
schafft. Die Digitalmodulator-Berechnungen 533 und 535 multiplizieren
die interpolierten Quadratursignale mit vorgespeicherten Konstanten
aus dem Nur-Lese-Speicher (ROM), die trigonometrische Kosinusbzw.
Sinuswerte bereitstellen. Die modulierten Signale werden dann in
einem Summationsschritt 537 summiert. Ein an die Vorrichtung 11 angeschlossener
D/A-Umsetzer setzt die modulierten Signale in einem Schritt 539 aus
der digitalen in die analoge Form um. Dann wird in der Modemübertragung
die Verstärkungsregelung
durch einen Faktor G1 ausgeführt
und an eine DAA gesendet.
-
In 11 empfängt ein
Modemempfänger
unter Verwendung einer weiteren Vorrichtung 11 analoge Kommunikationssignale
von der DAA. Ein Analog-Digital-Umsetzer A/D 521 digitalisiert
die Informationen unter Verwendung der Vorrichtung 11 für einen
digitalen Signalprozessor. Hohe Geschwindigkeiten oder die Digitalumsetzung
stellen eine starke Belastung für
die Eingangsverarbeitung früherer
Prozessoren dar. Zweckmäßig schafft
der DSP 11 eine organisationsaufwandfreie Unterbrechungskontextumschaltung
für eine äußerst effiziente
Bedienung der Unterbrechungen von den Digitalisierelementen wie
etwa von dem A/D
521 und besitzt gleichzeitig eine leistungsfähige digitale
Signalverarbeitungs-Recheneinrichtung für die Ausführung der Modemalgorithmen.
Die Ausgangsgröße der Vorrichtung 11 wird
an einen universellen synchronen/asynchronen Empfänger/Sender
(USART) 523 geliefert, der eine Ausgangsgröße D[nT]
liefert.
-
In 12 umfaßt ein Prozeßdiagramm
des Modemempfangs durch das System nach 11 eine automatische Verstärkungsregelung
mit einem Faktor G2 beim Empfang von der DAA, die ein Signal s(t)
für die Analog-Digital-Umsetzung
mit einer Abtastrate fs liefert. Das digitalisierte Signal ist s[nTs],
wobei es für
die digitale Verarbeitung mit durch digitale Filterstufen BPF1 und
BPF2 realisierten ersten und zweiten Bandpaßfiltern bereitgestellt wird,
worauf die anwenderbezogene automatische Verstärkungsregelung folgt. Ein Demodulationsalgorithmus
erzeugt zwei demodulierte Signale I'[nTs] und Q'[nTs]. Diese zwei für die Trägerrückgewinnung verwendeten Signale
I' und Q' werden an den Demodulationsalgorithmus
rückgekoppelt.
Außerdem werden
I' und Q' an einen Entscheidungsalgorithmus
geliefert und als Antwort auf die Taktrückgewinnung betrieben. Auf
den Entscheidungsalgorithmus folgt ein Decodierprozeß 551.
Auf das Decodieren 551 folgt ein Entwürfelungs-Algorithmus 555,
der eine intensive Bitmanipulation durch die PLU 41 zum
Rückgewinnen
des Eingangssignals d[nT] umfaßt.
-
Wie in 12 gezeigt
ist, werden die zahlreichen Schritte des Modemempfangsalgorithmus
aufgrund der von der PLU 41 geschaffenen intensiven numerischen
Rechenfähigkeiten
und der Bitmanipulation vorteilhaft mit einer einzigen digitalen
Signalprozessorvorrichtung 11 erreicht.
-
In 13 arbeitet
die Computervorrichtung 561, die die Vorrichtung 11 enthält, über eine
Schnittstelle 565 mit einem Host-Computer 563 zusammen.
Der externe Speicher 567 mit einer hohen Kapazität ist mit
einer Schnittstelle 569 an den Computer 561 angeschlossen.
Vorteilhaft unterstützt
der Computer 561 über
die Peripherie-Zwischenspeicher 571 und 573 eine
Zweiweg-Pulscodemodulations-Kommunikation (Zweiweg-PCM-Kommunikation).
Der Zwischenspeicher 571 ist an einen Seriell-Parallel-Umsetzer 575 für den Empfang
der PCM-Kom munikationen von der externen Vorrichtung 577 gekoppelt.
Der Computer 561 kommuniziert über den Zwischenspeicher 573 und über eine
Parallel-Seriell-Einheit 579, um einen seriellen PCM-Datenstrom
an die externe Vorrichtung 577 zu liefern.
-
In 14 enthält ein Videobild-Darstellungssystem 601 eine
Vorrichtung 11, die durch den ROM 603 und durch
den RAM 605 unterstützt
wird. Die Datenerfassungssensoren 607.1 bis 607.n speisen
Eingangsgrößen in einen
Umsetzer 609, der dann umfangreiche digitale Daten an die
Vorrichtung 11 liefert. In der 14 sind die ALU 21, der Akkumulator 23,
die Multiplizierermatrix 53, das Produktregister 51 hervorgehoben
und ist eine Adressierungseinheit mit der ARAU 123 gezeigt.
Ein Steuerelement 615 stellt allgemein die Decodierer-PLA 221 und
den Pipeline-Controller 225 aus 1A dar. Auf dem Chip befindliche (nicht
gezeigte) E/A-Peripheriegeräte
kommunizieren mit einem Bus 617, der ein Ausgangssignal
mit einer außergewöhnlich hohen
Qualität
an eine Videoanzeigeeinheit 619 liefert. Außerdem wird
für die
Vorrichtung 11 eine Überwachungseingangs-
und -ausgangs-E/A-Einrichtung 621 bereitgestellt.
-
Infolge der fortgeschrittenen Adressierungsfähigkeiten
in der Vorrichtung 11 kann die Steuerung 615 auf
Befehl in der Weise betrieben werden, daß das Produkt aus dem Produktregister 51 direkt
in die Adressierungsschaltung 123 übertragen und irgendwelche
Speicherbereiche während
der Übertragung
umgangen werden. Um die Speicherumgehungsübertragungen dazwischen über den
Datenbus 111D unabhängig
von den Pfeilrichtungen zu den Registern in diesen Figuren auszuführen, wird
wegen der Speicherabbildung vorteilhaft auf irgendein Paar der Computer-Kern-Register
der 1A und 1B zugegriffen. Da die Multiplikationsfähigkeiten
der Vorrichtung 11 bei der Adressierungsfunktion verwendet
werden, stellt die Schaltungsanordnung eine Matrix in dem elektronischen
Speicher 605 dar, wobei die Matrix Einträge besitzt,
auf die in dem Speicher mit einer Dimensionalität von wenigstens drei zugegriffen
werden kann. Die Videoanzeige 619 zeigt die aus der Verarbeitung
der mehrdimensionalen Matrix durch die Vorrichtung 11 resultierende
Ausgangsgröße an. Natürlich ist
selbstverständlich,
daß der Speicher 605 an
und für
sich nicht notwendig mehrdimensional ist, sondern daß die Adressierung
mit der Vorrichtung 11 schnell ausgeführt wird, so daß auf die
Informationen bei Bedarf so zugegriffen werden kann, als könnte auf
sie durch Variablen, die jeweils die mehreren Matrixdimensionen
darstellen, direkt zugegriffen werden. Zum Beispiel kann eine dreidimensionale
kubische Matrix mit den Adressendimensionen A1, A2 und A3 geeignet
gemäß der Gleichung
N2 × A3
+ N × A2
+ A1 adressiert werden. In einer zweidimensionalen Matrix ist eine
einfache wiederholte Addition gemäß einer Indexzählung vom
Register 199 aus 1A für Adressierungszwecke
ausreichend. Um jedoch die dritte und höhere Dimensionen zu versorgen,
wird der Prozeß durch
Einführen
der Produktfähigkeiten
des Multiplizierers 53 beträchtlich beschleunigt.
-
Die 15 bzw. 16 zeigen funktionsorientierte
und Hardwareblock-orientierte Diagramme von Videoverarbeitungssystemen
gemäß der Erfindung.
Anwendungen für
diese erfindungsgemäßen Systeme
schaffen neue Workstations, Computerschnittstellen, Fernseherzeugnisse
und hochauflösende
Fernsehprodukte (HDTV-Produkte).
-
In 15 schafft
ein Host-Computer 631 einen Dateneingang in die numerische
Verarbeitung durch die Vorrichtung 11. Auf die Videopixel-Verarbeitungsoperationen 633 folgen
die Speichersteueroperationen 635. Die CRT-Steuerfunktionen 637 für die Videoanzeige
werden mit der numerischen Verarbeitung 639, mit der Pixelverarbeitung 633 und
mit der Speichersteuerung 635 koordiniert. Die Ausgangsgröße von den
Operationen der Speichersteuerung 635 wird an den Bildpufferspeicher 641 und
dann an ein Schieberegister 643 geliefert. Der Bildpufferspeicher
und das Schieberegister 641 und 643 werden geeignet
durch eine Vorrichtung TMS 4161 von Texas Instruments realisiert.
Ein weiteres Schieberegister 645 liefert Videoinformationen
von dem Schieberegister 643 an eine Farbpalette 647.
Die Farbpalette 647 steuert eine durch die CRT-Steuerung 637 gesteuerte
Anzeige 649 an. Die Farbpalette 647 ist zweckmäßig ein
TMS 34070.
-
In 16 liefert
der Host 631 Signale an eine erste, als ein DSP-Mikroprozessor 653 arbeitende
Vorrichtung 11. Der DSP 653 wird durch den Speicher 651 unterstützt, der
PROM-, EPROM- und statischen SRAM-Speicher umfaßt. Die Steuerungs-, Adressen-
und Dateninformationen werden durch Zweiweg-Kommunikationspfade
zwischen dem DSP 653 und einer zweiten Vorrichtung 11,
die als ein GSP (Graphiksignalprozessor) 655 arbeitet,
geliefert. Der GSP 655 steuert sowohl die Farbpalette 647 als
auch die Anzeigeschnittstelle 657 an. Die Schnittstelle 657 wird
weiter von der Farbpalette 647 angesteuert. Die Anzeige-CRT 659 wird von
einer Anzeigeschnittstelle 657 angesteuert. Es ist selbstverständlich,
daß die
Vorrichtungen 11 und das System nach 16 im allgemeinen bei einer entsprechenden,
für die
geforderten Funktionen geeigneten Taktrate betrieben werden. Um
für besondere
Anwendungen benötigte
Verarbeitungsgeschwindigkeiten zu unterstützen, wird die Vorrichtung 11 in
Mikrometerniveau- und Submikrometerniveau-Ausführungen hergestellt. Es wird
davon ausgegangen, daß die
Anforderungen hochauflösender
Fernsehgeräte
an eine erhöhte
Verarbeitungsleistung nicht nur durch die Verwendung höherer Taktraten,
sondern auch durch Konstruktionsverbesserungen der hier offenbarten
Schaltungsanordnung erfüllt
werden.
-
In 17 besitzt
ein automatisches Spracherkennungssystem gemäß der Erfindung ein Mikrophon 701,
dessen Ausgangsgröße von einer
Abtast-Halte-Schaltung
(S/H-Schaltung) 703 abgetastet und dann mit einer A/D-Schaltung 705 digital
umgesetzt wird. Ein unterbrechungsgesteuerter schneller Fourier-Transformationsprozessor 707 setzt
die abgetastete Zeitbereichs-Eingangsgröße von dem Mikrophon 701 unter
Verwendung der Vorrichtung 11 in eine für ein Frequenzspektrum des
Schalls repräsentative
digitale Ausgangsgröße um. Wie
zuvor diskutiert wurde, ist dieser Prozessor 707 teilweise
infolge des organisationsaufwandfreien Unterbrechungskontextumschaltungs-Merkmals,
teilweise infolge der bedingten Befehle und der in den Speicheradressenraum
abgebildeten Hilfsadressenregister sehr effizient.
-
Der Prozessor 707 stellt
jedes Spektrum für
einen Spracherkennungs-DSP 709 bereit, die eine weitere Vorrichtung 11 enthält. Der
Erkennungs-DSP 709 führt
irgendeinen jetzt geeignet bekannten oder später entwickelten Spracherkennungs algorithmus
aus. Zum Beispiel werden in einem Schablonenanpassungsalgorithmus
zahlreiche Berechnungen mit Multiplikationen, Additionen und Maximum- oder Minimumbestimmungen ausgeführt. Aufgrund
ihrer seriellen Maximum/Minimum-Funktionsarchitektur ist die Vorrichtung 11 für die rasche
Ausführung
solcher Algorithmen ideal geeignet. Der Erkennungs-DSP 709 liefert
eine Ausgangsgröße an einen
Systembus 711. Der ROM 713 und der RAM 715 unterstützen das
System wirksam wegen der von dem Erkennungs-DSP 709 bereitgestellten
Software-Wartezustände
an den Seitengrenzen. Die Ausgangsgröße von einem auf den Spracherkennungs-DSP 709 ansprechenden
Sprachsynthesizer 717 wird an einen Lautsprecher oder an
einen anderen geeigneten Wandler 719 geliefert.
-
Die System-E/A-Einrichtung 721 lädt auf Dokumentherstellungsvorrichtungen 723 wie
etwa auf Drucker, Bänder,
Festplatten und dergleichen herunter. Eine Video-Katodenstrahlröhren-Anzeige
(Video-CRT-Anzeige) 725 wird, wie in Verbindung mit den 15 und 16 beschrieben ist, von dem Bus 711 gespeist.
Wie in den 15 und 16 beschrieben ist, stellt
eine Tastatur 727 eine gelegentliche menschliche Kontrolleingabe
an den Bus 711 bereit. In industriellen und anderen Prozeßsteuerungsanwendungen
der Spracherkennung ist eine Steuerschnittstelle 729 mit
einer weiteren Vorrichtung 11 an den Bus 711 angeschlossen
und liefert in Übereinstimmung
mit der Bitmanipulation und mit den obigen Prinzipien und der obigen
Beschreibung der 2, 3, 4, 5, 6 und 7 ihrerseits Ausgangsgrößen für Motoren,
Ventile und andere Servomechanismus-Elemente 731.
-
In Digitalfilter-Hörhilfen
auf der Grundlage der Spracherkennung wird die umgewandelte Sprache
von dem Erkennungs-DSP 709 mit einem D/A-Umsetzer 735 aus
der digitalen in die analoge Form umgesetzt und durch einen Lautsprecher 737 ausgegeben.
Die gleiche Kette der Blöcke 701, 703, 705, 707, 709, 735, 737 kann
auch in Telekommunikationen für
die Entzerrung, Filterung und Bandbreitenkompression auf der Grundlage
der Spracherkennung angewendet werden.
-
In fortgeschrittenen Spracherkennungssystemen
führt ein
lexikalischer Zugriffsprozessor 739 an aus der Ausgangsgröße der Spracherkennung
DSP 709 abgeleiteten Darstellungen phonetischer Elemente
symbolische Manipulationen aus und formuliert gemäß irgendeinem
geeigneten lexikalischen Zugriffsalgorithmus Silben, Wörter und
Sätze.
-
Ein Top-Down-Prozessor 741 führt einen
Top-Down-Verarbeitungsalgorithmus auf der Grundlage des Prinzips,
daß in
einigen Fällen
eine Auflösung
der Mehrdeutigkeiten in der Sprache über die in der akustischen Eingangsgröße enthaltenen
Informationen hinausgeht, aus. Dementsprechend werden nichtakustische
Sensoren wie etwa ein optischer Sensor 743 und ein Drucksensor 745 in
ein Eingabesystem 747 gespeist, das dann den Mustererkennungsgenerator 749 unterbrechungssteuert.
Der Prozessor 749 speist direkt den Systembus 711 und
greift außerdem
für eine
verbesserte Spracherkennung, für
eine verbesserte Mustererkennung und für Anwendungen der künstlichen
Intelligenz auf den Top-Down-Prozessor 741 zu.
-
Die Vorrichtung 11 verbessert
wesentlich die Fähigkeiten
der Verarbeitung der Spracherkennungsvorrichtung nach 17 auf jeder Ebene, z. B.
der Blöcke 707, 709, 717, 721, 725, 729, 739, 741, 747 und 749.
-
18 zeigt
ein Vocoder-Modemsystem mit einer Verschlüsselung für sichere Kommunikationen.
Ein Telephon 771 kommuniziert in einem sicheren Modus über eine
Telephonleitung 773. An das Telephon 771 ist ein
DSP-Mikrocomputer 773 angeschlossen, um serielle Daten
an einen Block 775 zu liefern. Der Block 775 führt in einem
Abschnitt 777 Digitalisierungs-Vocoder-Funktionen und im
Block 781 die Verschlüsselungsverarbeitung
aus. Die Modemalgorithmenverarbeitung in den Blöcken 779 und 783 ist
oben in Verbindung mit den 10 und 12 beschrieben. Der Block 783 liefert
serielle Daten an die A/D-D/A-Einheit 785 und empfängt serielle
Daten von ihr. Die Einheit 785 schafft eine analoge Kommunikation
zur DAA 787. Die wesentlich verbesserten Verarbeitungsmerkmale
der Vorrichtung 11 nach den 1A und 1B machen eine Reduzierung
der Anzahl der im Block 775 erforderlichen Chips möglich, so
daß in
Vorrichtungen gemäß 18 eine Kostenreduzierung
ermöglicht
wird. In einigen Ausführungen
werden durch die bemerkenswerte Verarbeitungsleistung der Vorrichtung 11 leicht
fortgeschrittenere Verschlüsselungsverfahren
ausgeführt.
Dementsprechend wird die Vorrichtung 11 in 18 entweder zum Verbessern der Funktionalität jedes
Funktionsblocks oder zur Schaffung einer vergleichbaren Funktionalität mit weniger
Chips und somit mit geringeren Gesamtproduktkosten verwendet.
-
In der Anwenderdokumentation des
TMS 320C1x und in der Anwenderdokumentation des TMS 320C2x und in
der Anwenderdokumentation des TMS 320 der dritten Generation,
die hier alle durch Literaturhinweis eingefügt sind, sind drei Texas Instruments-DSPs
beschrieben. Außerdem
sind hier die gleichzeitig auf den Anmelder übertragenen US-Patente 4.577.282
und 4.713.748 durch Literaturhinweis eingefügt.
-
19 zeigt
die Operationen der parallelen Logikeinheit 41 nach 1B. Die parallele Logikeinheit (PLU)
ermöglicht,
daß die
CPU logische Operationen direkt auf in dem Speicher gespeicherten
Werten ausführt,
ohne irgendeines der Register wie etwa den Akkumulator in der Berechnungseinheit 15 zu
beeinflussen. Die logischen Operationen umfassen das Setzen, das
Löschen
oder das Umschalten irgendeiner Anzahl von Bits in einem einzigen
Befehl. In der bevorzugten Ausführung
führt die
PLU einen Lese-Modifiziere-Schreib-Befehl in zwei Befehlszyklen
aus. Genauer greift die PLU 41 auf einen Speicherbereich
im entweder auf dem Chip oder außerhalb des Chips befindlichen
RAM 25 zu, führt
in ihm eine Bitmanipulationsoperation aus und gibt dann das Ergebnis
an den Bereich im RAM, aus dem die Daten erhalten wurden, zurück. Der Akkumulator
wird in allen diesen Operationen nicht beeinflußt. Das Produktregister wird
nicht beeinflußt.
Der Akkumulatorpuffer und der Produktregisterpuffer ACCB und BPR
werden nicht beeinflußt.
Dementsprechend werden durch die Schaffung dieser wichtigen parallelen
Logikeinheit PLU 41 zeitaufwendige Operationen, die die
Berechnungseinheit 15 wesentlich verlangsamen würden, vermieden.
Baulich ist die PLU von ihren Eingängen zu ihren Ausgängen eine
Geradeauslogik, die durch die Decodierer-PLA 221 gesteuert
wird, der zum Ausführen
der unten gezeigten Befehle besondere Gatter in der Logik der PLU 41 freigibt
und sperrt.
APL,K Und-verknüpfe
das DBMR oder eine Konstante mit dem Datenspeicherwert
CPL,K
Vergleiche DBMR oder eine Konstante mit dem Datenspeicherwert
OPL,K
Oder-verknüpfe
DBMR oder eine Konstante mit dem Datenspeicherwert
SPLK,K Speichere
eine lange Sofortgröße in dem
Datenspeicherbereich
XPL,K XOR-verknüpfe DBMR oder eine Konstante
mit dem Datenspeicherwert
-
Die Bitmanipulation umfaßt die Operationen
des: 1) Setzens eines Bits; 2) Löschens
eines Bits; 3) Umschaltens eines Bits; und 4) Prüfens eines Bits und des dementsprechenden
Verzweigens. Außerdem
unterstützt
die PLU diese Bitmanipulationsoperationen, ohne den Inhalt irgendeines
der CPU-Register oder der Zustandsbits zu beeinflussen. Außerdem führt die
PLU Logikoperationen an Datenspeicherbereichen mit langen Sofortwerten
aus.
-
19,
Teil A zeigt einen Speicherbereich mit einer beliebigen Anzahl von
Bits X. In Teil B ermöglicht der
SPLK-Befehl, irgendeine Anzahl von Bits in einem Speicherwort in
irgendeinen Speicherbereich zu schreiben. In Teil C ermöglicht der
OPL-Befehl, irgendeine Anzahl von Bits in einem Speicherwort auf
Eins zu setzen, ohne die anderen Bits in dem Wort zu beeinflussen.
In Teil D ermöglicht
der APL-Befehl, irgendeine Anzahl von Bits in einem Speicherwort
zu löschen
oder auf Null zu setzen, ohne die anderen Bits in dem Wort zu beeinflussen.
In Teil E ermöglicht
der XPL-Befehl, irgendeine Anzahl von Bits in einem Speicherwort
umzuschalten, ohne die anderen Bits in dem Wort zu beeinflussen.
In Teil F vergleicht der CPL-Befehl ein gegebenes Wort (z. B. ein
16 Bit-Wort) mit dem Inhalt eines adressierten Speicherbereichs,
ohne den adressierten Speicherbereich zu modifizieren. Die Vergleichsfunktion
kann außerdem
als ein nicht zerstörendes
Exklusiv-ODER (XOR) für
einen Vergleich in einem besonderen Spei cherbereich angesehen werden.
Falls der Vergleich angibt, daß das
gegebene Wort gleich dem adressierten Speicherwort ist, wird ein
TC-Bit auf eins gesetzt. Das TC-Bit ist das Bit 11 des ST1-Registers
in den Registern 85 aus 1B.
Durch den BIT- und den BITT-Befehl wird eine Prüfung eines einzelnen Bits ausgeführt.
-
Konstruktiv bedeutet das Vorhandensein
der PLU-Befehle, daß die
Decodierer-PLA 221 aus 1A und
die Logik der PLU 41 eine spezifische Schaltungsanordnung
beinhalten. Wenn die verschiedenen PLU-Befehle in das Befehlsregister
(IR) geladen werden, werden sie von der Decodierer-PLA 221 in
Signale zum Freigeben und zum Sperren von Gattern in der Logik der
PLU 41 so decodiert, daß die von den Befehlen angewiesenen
Operationen tatsächlich
ausgeführt
werden.
-
Um die dynamische Anordnung von Bitmustern
zu unterstützen,
führen
die Befehle grundlegende Bitoperationen auf einem Speicherwort mit
Bezug auf den Registerwert in dem dynamischen Bitmanipulationsregister
DBMR 223 anstelle der Verwendung eines langen Sofortwerts
aus. Das DBMR ist auf den Speicher abgebildet, was konstruktiv bedeutet,
daß eine
Decodier-Schaltungsanordnung 121 vorhanden ist (1B), die das Adressieren
des DBMR 223 von dem Datenadressenbus 111A ermöglicht.
Um anzugeben, daß der Befehl
auf einen langen Sofortwert anstelle des DMBR wirkt, wird an den
Befehl (z. B. APLK) ein Suffix K angehängt. Die Abwesenheit des Suffix
(z. B. APL) gibt an, daß der
Befehl auf das DBMR wirkt. Die Auswahl des DBMR wird durch den MUX 225 aus 1B bewirkt, dessen Auswahl-Eingang
von der Decodierer-PLA 221 gesteuert wird, wobei der Zeitablauf
der Pipeline von dem Pipeline-Controller 225 gesteuert
wird.
-
Ein langer Sofortwert ist ein Wert,
der als Teil eines Befehls von dem Programmdatenbus kommt. "Sofortwert" bedeutet, daß der Wert
von dem Programmdatenbus kommt. "Langer
Sofortwert" bedeutet,
daß ein Wert
mit der vollen Breite eines Worts geliefert wird.
-
Ein langer Sofortwert wird häufig aus
dem Nur-Lese-Speicher (ROM) erhalten und kann somit nicht geändert werden.
Wenn aber erwünscht
ist, daß die
logische Operation in einer Befehlsfolge geändert werden kann, wird für diesen
Zweck das dynamische Bitmanipulations-Bitregister bereitgestellt.
-
Die PLU 41 ermöglicht eine
parallele Bitmanipulation in irgendeinem Bereich im Datenspeicherraum. Dies
gestattet eine sehr hocheffiziente Bitmanipulation, die an die intensiven
Bitmanipulationsanforderungen des Steuerfelds angepaßt ist.
Neben weiteren Anwendungen kann die Bitmanipulation der Erfindung
leicht auf die Kraftfahrzeugsteuerung wie etwa auf die Motorsteuerung,
auf die Federungssteuerung, auf die Antiblockier-Bremsung und auf
die Prozeßsteuerung
angewendet werden. Die Bitmanipulationen können ein Relais ein- und ausschalten,
indem ein Bit ein oder aus gesetzt wird, sie können einen Motor einschalten,
einen Motor beschleunigen, Magnetspulen schließen und ein Signal verstärken, indem
sie eine Verstärkungsstufe
zu einem Motor in einer Servoschaltung durchschreiten. Komplizierte,
für fortgeschrittene
Mikrosteuerungsanwendungen erforderliche arithmetische Operationen
werden in der Vorrichtung 11 ausgeführt, ohne mit Bitmanipulationsoperationen
in Konkurrenz zu stehen.
-
Weitere Anwendungen der Bitmanipulation
umfassen das Verwürfeln
in Modems. Falls bestimmte Bitmuster in dem Modem häufig genug
keine Frequenzoder Phasenänderungen
liefern, ist es in Phasenregelschleifen und Modemempfängern schwer
oder unmöglich,
einen Träger
zu behalten. Um zu erzwingen, daß sich die Bits häufig genug ändern, werden
die Bitmuster verwürfelt.
Auf diese Weise werden der Baud-Takt und die Trägerfrequenz-Phasenregelschleife
in dem Modem in der Weise konfiguriert, daß sich in jedem Digitalfilter ausreichend
Energie, aber keine überschüssige Energie
befindet. Das Verwürfeln
umfaßt
XOR-Operationen an einem seriellen Bitstrom. Die PLU 41 führt diese
Operation äußerst effizient
aus. Da die anderen CPU-Register der Vorrichtung 11 von
den PLU-Operationen nicht betroffen sind, brauchen diese Register,
wenn die PLU mit dem Ausführen
ihrer Befehle beginnt, nicht gesichert zu werden. Im Fall der Verwürfelungsoperation sind
die in Datenmustern XOR-verknüpften
Bits eine Funktion anderer Bits, so daß die tatsächliche Ausführung der
in irgendeiner gegebenen Baud-Periode erforderlichen XORs mehr als
eine Operation dauert. Bei der parallelen Logikeinheit können diese
Operationen gleichzeitig mit den Rechenoperationen ausgeführt werden, ohne
daß die
Register-Betriebsmittel genutzt werden müßten.
-
Wie somit beschrieben wurde, wirkt
die PLU zusammen mit dem Befehlsdecodierer 221 als ein
Beispiel einer Logikschaltung, die für das Empfangen der Befehle
an den Programmbus angeschlossen ist und die für das Ausführen der Logikoperationen in Übereinstimmung
mit wenigstens einem Befehl an den Datenbus angeschlossen ist. Die
Logikoperationen beeinflussen wenigstens einen der von der elektronischen
Berechnungseinheit unabhängigen
Datenspeicherbereiche, ohne den Akkumulator zu beeinflussen. In
einigen Befehlen umfassen die Logikoperationen eine Operation des
Setzens, Löschens
oder Umschaltens eines besonderen Bits auf Eins in einem Datenwort
an einem ausgewählten
Datenspeicherbereich, ohne die anderen Bits in dem Datenwort an
dem ausgewählten
Datenspeicherbereich zu beeinflussen.
-
Mit dem DBMR 223 wird eine
weitere Verbesserung der Logikschaltung geschaffen, so daß die PLU 41 einen
ersten, für
das Empfangen von Daten von dem Datenbus angeschlossenen Eingang,
einen Ausgang für
das Senden von Daten an den Datenbus und einen zweiten Eingang,
der wahlweise für
das Empfangen eines Wort entweder von dem Datenbus oder von dem
Programmbus betrieben werden kann, besitzt. Der Multiplexer 225 wirkt
als ein wahlweise betreibbares Element. Zum Beispiel kann in dem
DBMR der Inhalt irgendeines adressierbaren Registers oder Speicherbereichs
gespeichert werden. Wenn der MUX 275 das DBMR auswählt, sendet
die PLU an den Datenbus 111D den Inhalt eines durch eine
Logikoperation auf der Grundlage des DBMR wie etwa durch Setzen,
Löschen
oder Umschalten modifizierten Worts von dem Datenbus 111D. Wenn
der MUX 225 den Programmdatenbus 101D wählt, wird
eine lange Sofortkonstante, auf der die Logikoperation beruhen soll,
gewählt.
-
Es wird nun zu dem Gegenstand des
Unterbrechungsmanagements und der Kontextumschaltung übergegangen. 20 zeigt ein System mit
einer DSP-Vorrichtung 11 mit vier Schnittstellen 801, 803, 805 und 807.
Ein Analogsignal von einem Sensor oder von einem Wandler wird von
einem A/D-Umsetzer 809 in die digitale Form umgesetzt und über die
Schnittstelle 801 an den DSP 11 geliefert. Wenn
jede Umsetzung abgeschlossen ist, wird ein Unterbrechungssignal
INT1-von dem Analog-Digital-Umsetzer 809 an
den DSP 11 geliefert. Der DSP 11 wird über die
Schnittstelle 803 von dem internen SRAM 811, von
dem ROM und dem EPROM 813 und von dem externen Speicher 815 unterstützt. Die
Ausgangsgröße des DSPs 11 wird
für Ausgabe-
und Steuerzwecke über
die Schnittstelle 807 an einen Digital-Analog-Umsetzer 817 geliefert.
An einen Unterbrechungseingang INT2- des DSP 11 ist ein
optionaler Host-Computer 819 angeschlossen, wobei dieser über die
Schnittstelle 805 Daten kommuniziert. Andere unterbrechungsbasierte
Systeme sind in den 4, 6, 11, 14 und 17 gezeigt.
-
Es werden nun Operationen der Vorrichtung 11 bei
einer Unterbrechung oder bei einer anderen Kontextänderung
diskutiert. Mit Bezug auf die 1A und 1B wird angemerkt, daß mehrere
Register mit einem Rechteck im Hintergrund gezeichnet sind. Es sind
dies die Register TREG2 195, TREG1 81, TREGO 49,
BPR 185, PREG 51, ACC 23, ACCB 31,
INDX 143, ARCR 159, ST0, ST1 und PMST. Diesen
Registern sind hier Gegenregister genannte Register zugeordnet.
Jedesmal, wenn eine Unterbrechung oder eine andere Kontextänderung
stattfindet, werden alle obenerwähnten
Register automatisch auf einen Stapel der Tiefe eins geschoben.
Bei einer Rückkehr
von der Unterbrechung oder bei einer Rückkehr von der Kontextänderung
werden die gleichen Register durch Abheben des Stapels der Tiefe
eins automatisch wiederhergestellt.
-
Vorteilhaft werden die Unterbrechungsdienstroutinen
bei der Kontextsicherung oder Kontextumschaltung ohne zeitlichen
Organisationsaufwand behandelt. Die auf diese Weise gesicherten
Register werden als "strategische
Register" bezeichnet.
Dies sind die Register, die in einer Unterbrechungs-Dienstroutine
und bevorzugt vor der Verwendung irgendeines anderen Registers an
ihrer Stelle verwendet würden.
-
Falls zum Schutz der zahlreichen
strategischen Register eine registerweise Kontextsicherung in den Speicher
ausgeführt
würde,
würden
viele Befehlszyklen verbraucht. Weiterhin hängt die relative Frequenz,
mit der diese Kontextsicherungsoperationen stattfinden, von der
Anwendung ab. In einigen Anwendungen mit Abtastraten von 100 KHz
in 20 ist die Frequenz
der Unterbrechungen sehr hoch, wobei die Zyklen des Unterbrechungskontextsicherungs-Organisationsaufwands
ohne die organisationsaufwandlose Verbesserung wesentlich sein könnten. Durch
die Schaffung des organisationsaufwandlosen Kontextumschaltungsmerkmals der
bevorzugten Ausführung
kann die Unterbrechungs-Dienstroutinen-Zykluszählung bei Erhalten der gleichen
Funktionalität
auf weniger als die Hälfte
reduziert werden. Vorteilhaft werden in Mehrkanalanwendungen eines
DSPs oder zum Verarbeiten eines einzelnen Kanals mit einer sehr
hohen Abtastrate wie etwa 50 KHz oder mehr größenordnungsmäßig mehr
als 100.000 Abtastungen pro Sekunde ausgeführt. Das eben Gesagte gilt
auch für
Unterprogrammaufrufe, Funktionsaufrufe und andere Kontextumschaltungen.
-
Wenn eine Unterbrechung stattfindet,
werden die Zustandsregister automatisch auf den Stapel der Tiefe
eins geschoben. Zur Unterstützung
dieses Merkmals gibt es einen zusätzlichen Befehl, Rückkehr von
der Unterbrechung (RETI), der die Stapel automatisch abhebt, um
den Zustand der Hauptroutine wiederherzustellen. Außerdem besitzt
die bevorzugte Ausführung
einen zusätzlichen
Rückkehrbefehl
(RETE), der automatisch ein globales Unterbrechungsfreigabebit setzt,
das somit Unterbrechungen während
des Abhebens des Zustandsstapels ermöglicht. Ein als verzögerte Rückkehr mit
Freigabe (RETED) konstruierter Befehl schützt die drei der Rückkehr folgenden
Befehle davor, selbst unterbrochen zu werden.
-
Die bevorzugte Ausführung besitzt
ein in den Speicherraum abgebildetes Unterbrechungsmerkerregister
(IFR-Register). Der Anwender kann das IFR durch einen Softwareabruf
lesen, um aktive Unterbrechungen zu bestimmen, wobei er Unterbrechungen
durch Schreiben in das IFR löschen
kann.
-
Als nächstes werden einige Anwendungen
angemerkt, in denen die organisationsaufwandfreie Kontextumschaltung
für besonders
vorteilhaft gehalten wird. Verbesserte Plattenlaufwerke werden damit
schneller gemacht und passen sich mit einer höheren Beschleunigung und Verzögerung und
mit einer schnelleren Leseausrichtungs-Nachstellung an eine höhere Informationsdichte
an. In Robotern kann der Prozessor mehr Rückkopplungspunkte bedienen.
In Modems wird infolge der Software-Abfrage der Unterbrechungen
eine geringere Bitfehlerrate ermöglicht.
Vocoder werden bei der Codierung mit einer höheren Genauigkeit und mit weniger
Bitfehlern hergestellt. Raketenleitsysteme verfügen über eine genauere Steuerung
und benötigen
weniger Prozessoren. Digitale Mobiltelephone werden ähnlich verbessert.
-
Das Merkmal der organisationsaufwandfreien
Kontextsicherung sichert, wenn eine Unterbrechung genommen wird,
alle strategischen CPU-Register und stellt sie bei der Rückkehr von
der Dienstroutine wieder her, ohne daß dies irgendeinen Maschinenzyklen-Organisationsaufwand
erfordert. Dies entlastet die Unterbrechungsdienstroutine, indem
alle CPU-Betriebsmittel verwendet werden, ohne den unterbrochenen
Code zu beeinflussen.
-
21 zeigt
einen Blockschaltplan der Vorrichtung 11, in der der Gegenstand
der 1A und 1B als der CPU-Block 13, 15 in 21 gezeigt ist. Ein Satz
von Registern ist aus dem CPU-Block herausgebrochen gezeigt, wobei
dies die strategischen Register sind, die, wie oben beschrieben,
einen Stapel der Tiefe eins besitzen.
-
21 kann
bei der Diskussion der Gesamtsystemarchitektur des Halbleiterchips
genutzt werden. Im Programmspeicherraum liegt eine Menge von Unterbrechungs-Traps
und Vektorbereichen 821. Wenn eine Unterbrechungsroutine
im Programmspeicher 61 der 1A und 21 ausgeführt werden soll, bewirkt die
Unterbrechungssteuerlogik 231 aus 21, daß der Programmzähler 93 aus 1A mit dem richtigen Vektor
in den Unterbrechungsbereichen 821 geladen wird, um zu
der richtigen Unterbrechungsdienstroutine zu verzweigen. Zwei Kernregister
IFR und IMR sind ein Unterbrechungsmerkerregister bzw. ein Unterbrechungsmaskenregister.
Das Unterbrechungsmerkerregister liefert eine Angabe darüber, welche
spezifischen Unterbrechungen aktiv sind. Das Unterbrechungsmaskenregister
ist ein Satz von Bits, durch den Unterbrechungen für die CPU
gesperrt werden können,
indem diese maskiert werden. Falls es z. B. unter den Unterbrechungen
INT2-, INT1- und INT0- eine aktive Unterbrechung gibt, gibt es ein
entsprechendes Bit in dem IFR, das auf eine "1" gesetzt
ist. Der Merker wird gelöscht,
indem ein Unterbrechungs-Trap genommen wird, durch den er automatisch
gelöscht
wird. Andernfalls wird die Unterbrechung gelöscht, indem eine ODER-Verknüpfung mit
einer Eins in dem jeweiligen Unterbrechungsmerkerregister, das die
Unterbrechung löscht,
genommen wird. Außerdem
können
alle aktiven Unterbrechungsmerker gleichzeitig gelöscht werden.
-
In 21 sind
die Programm- und Datenbusse 101 und 111 graphisch
verbunden und schließen
in peripheren Ports 831 und 833 ab. Der periphere
Port 833 schafft eine parallele Schnittstelle. Der Port 831 schafft
eine Schnittstelle zu dem TI-Bus und serielle Ports für die Vorrichtung 11.
-
Die 22, 23 und 24 zeigen
drei alternative Schaltungen zum Ausführen der organisationsaufwandfreien
Unterbrechungskontextumschaltung. Es ist selbstverständlich,
daß alle
strategischen Register gleichzeitig parallel kontextumgeschaltet
werden und daß die
Darstellung aller Register durch einzelne Flipflops somit ein graphisches
Verfahren ist.
-
In den 22 und 23 stellen das obere Register
und das untere Register die Vordergrund- und Hintergrund-Rechtecke
jedes strategischen Registers aus den 1A und 1B dar. 24 zeigt
den Parallelismus explizit.
-
In 22 wird
der Daten-D-Eingang eines Hauptregisters 851 wahlweise
von einem MUX 853 geliefert. Der MUX 853 verbindet
wahlweise den D-Eingang des Registers 851 entweder mit
den parallelen Datenleitungen A oder mit den parallelen Datenleitungen
B. Die Leitungen B sind an den Q-Ausgang eines Gegenregisters 855 angeschlossen.
Das Hauptregister 851 besitzt einen Satz von Q-Ausgangsleitungen,
die jeweils an die entsprechenden D-Eingänge des Gegenregisters 855 angeschlossen
sind.
-
In einem erklärenden Beispiel stellt der
durch einen Pfeil gekennzeichnete Eingang für die Leitung A das Ergebnis
von Berechnungen durch die ALU 21 dar, während der
Akkumulator 23 die Register 851 und 855 umfaßt. Der
als Akkumu lator 23 interpretierte Ausgang des Hauptregisters 851 aus 22 wird z. B. an den Nachskalierer 181 aus 1A angelegt. Es ist jedoch
selbstverständlich,
daß das
Register 851 sooft wiederholt ist, wie es entsprechend
jedem strategischen Register, für
das in 1A und 1B Doppelrechtecke angegeben
sind, erforderlich ist.
-
In 22 besitzt
jedes der Register 851 und 855 einen Ausgangsfreigabe-Anschlußpunkt (OE-Anschlußpunkt).
Ein ODER-Gatter 857 liefert eine Takteingabe des Hauptregisters 851.
Das ODER-Gatter 857 besitzt Eingänge für CPU WRITE und für RETE.
RETE speist außerdem
einen Auswahleingang des MUXs 853 und außerdem den
OE-Ausgangsfreigabe-Anschlußpunkt
des Gegenregisters 855. Der OE-Anschlußpunkt des Hauptregisters 851 ist
an den Ausgang eines ODER-Gatters 859 angeschlossen, dessen
Eingänge
an die Unterbrechungsquittung IACK und an CPU READ angeschlossen
sind. Wie durch die Punkte angegeben ist, taktet IACK außerdem das
Gegenregister 855 und alle anderen Gegenregister.
-
Im Betrieb wählt der MUX 853 in
Abwesenheit einer Rückkehr
von der Unterbrechung (RETE tief) eine Eingangsleitung A für das Hauptregister 851.
Beim Auftreten von CPU WRITE taktet das Hauptregister 851 den
Eingang von dem CPU-Kern in seinen D-Eingang. Wenn an dem ODER-Gatter 859 ein
CPU READ auftritt und OE aktiviert, greift die CPU auf den Inhalt
des Registers 851 zu.
-
Wenn eine Unterbrechung auftritt
und von der Vorrichtung 11 quittiert wird (IACK), wird
der Ausgang Q des Registers 851 freigegeben und das Gegenregister 855 getaktet,
während
die Q-Ausgangsgröße des Hauptregisters
in dem Register 855 gespeichert wird. Während des Ausführens der
Unterbrechungsdienstroutine werden die Eingangsleitungen A weiter
durch CPU WRITE in das Hauptregister 851 getaktet. Wenn
die Unterbrechung abgeschlossen ist, wird RETE tief, wobei der MUX 853 auf
die Auswahlleitungen B und auf die Aktivierungsleitung OE des Gegenregisters 855 geschaltet
wird. Außerdem
taktet RETE das Register 851 über das ODER-Gatter 857,
um die Übertragung
abzuschließen
und die Hauptroutineninformationen in dem Hauptregister 851 wiederherzustellen.
Dann wird RETE beim Abschluß der
Rückkehr
von der Unterbrechung tief, wobei das Hauptregister 851 über den
MUX 853 wieder mit den Eingangsleitungen A verbunden wird.
Auf diese Weise wird die organisationsaufwandfreie Kontextumschaltung
abgeschlossen.
-
22 zeigt
somit an einen elektronischen Prozessor angeschlossene erste und
zweite Register. Die Register nehmen an einem Verarbeitungskontext
(z. B. an einer Unterbrechung oder an einem Unterprogramm) teil,
während
sie Informationen von einem anderen Bearbeitungskontext bis zu einer
Rückkehr
dahin behalten. Der MUX 853 und die Gatter 857 und 859 schaffen
ein Beispiel einer an die ersten und zweiten Register angeschlossenen
Kontextumschaltschaltung, die in der Weise arbeitet, daß sie in
Abhängigkeit
von dem Verarbeitungkontext wahlweise Eingangs- und Ausgangsoperationen
der Register zu und von dem elektronischen Prozessor steuert. Der
elektronische Prozessor wie etwa der Kern der CPU 13, 15 aus
den 1A und 1B spricht auf ein Kontextsignal
wie etwa auf eine Unterbrechung INT- an und kann in dem durch das
Kontextsignal identifizierten alternativen Verarbeitungskontext
betrieben werden.
-
23 zeigt
einen Bankumschaltzugang zur organisationsaufwandfreien Kontextumschaltung.
Die D-Eingänge
eines Hauptregisters 861 und eines Gegenregisters 863 sind
an einen Demultiplexer DMUX 865 angeschlossen. Die Q-Ausgänge der
Register 861 und 863 sind an jeweilige Eingänge eines
MUX 867 angeschlossen. Der Eingang von dem CPU-Kern ist
an den DMUX 865 angeschlossen. Der Ausgang zurück zu dem
CPU-Kern wird vom MUX 867 bereitgestellt. Die beiden Auswahlleitungen
von den MUXs 865 und 867 sind an eine Leitung
angeschlossen, die aktiv wird, wenn eine Unterbrechungsdienstroutine
ISR im Gange ist.
-
Auf diese Weise ist in einer Hauptroutine
nur das Register 861 in Betrieb. Während der Unterbrechungsdienstroutine
wird das Register 863 betrieben, während das Register 861 den
Inhalt, zu dem die Operationen zurückkehren sollen, hält. Ein
Paar UND-Gatter 871 und 873 wirkt außerdem in
der Weise, daß es
die Register 861 und 863 aktiviert und deaktiviert.
Ein CPU WRITE bezeichnet einen Eingang jedes UND-Gatters 871 und 873.
Die Ausgänge
der UND-Gatter 871 und 873 sind an die Takteingänge der
Register 863 bzw. 861 angeschlossen. In einer Hauptroutine
mit ISR tief wird das Register 873 bezeichnet, wobei CPU
WRITE das Register 861 taktet. Das UND-Gatter 871 wird
in der Hauptroutine gesperrt. Wenn ISR während der Unterbrechung hoch
ist, taktet CPU WRITE das Register 863 über das bezeichnete UND-Gatter 871,
wobei das UND-Gatter 873 gesperrt ist.
-
In 24 sind
beide D-Eingänge
der zwei Register 881 und 883 in der Weise angeschlossen,
daß sie die
Informationen von dem Prozessor (z. B. der ALU 21) gleichzeitig
empfangen. Um den Parallelismus dieses Kontextumschaltbefehls zu
zeigen, sind die Register in dem Diagramm explizit wiederholt, so
daß die
ALU 21 z. B. beide D-Eingänge der Register 881 und 883 speist,
wobei die Register 881 und 883 anschaulich als
Akkumulator ACC 23 wirken. Dementsprechend speist der Multiplizierer 53 z.
B. das P-Register 51 einschließlich der Register 891 und 893.
(Das Register 893 ist nicht mit dem BPR 185 aus 1A zu verwechseln.) Die
Eingänge
eines MUX 895 sind jeweils an die Q-Ausgänge der
Register 881 und 883 angeschlossen. Die Eingänge eines
MUX 897 sind jeweils an die Q-Ausgänge
der Register 891 und 893 angeschlossen. Die Takteingänge der
Register 881 und 891 sind parallel an einen A-Ausgang
eines elektronischen Umkehrschalters 901 angeschlossen.
Die Takteingänge
der Register 883 und 893 sind parallel an einen
B-Ausgang des Umkehrschalters 901 angeschlossen. Wenn die
Unterbrechungsdienstroutine im Gange ist, reagiert die Unterbrechungshardware 903 auf
die Unterbrechungsquittung IACK, um einen tief aktiven Ausgang ISRzu
erzeugen. Die Unterbrechungshardware 903 steuert den Umschalter-T-Eingang
eines Flipflops 905. Ein Q-Ausgang des Flipflops 905 ist
sowohl an einen Auswahleingang des Schalters 901 als auch
an den Auswahleingang beider MUXs 895 und 897 sowie
an die MUXs für
alle strategischen Register angeschlossen.
-
Eine CPU WRITE-Leitung ist an einen
X-Eingang des Schalters 901 und an einen Eingang eines UND-Gatters 907 angeschlossen.
Der tief aktive Ausgang ISR- der Unterbrechungshardware 903 ist
an einen zweiten Eingang des UND-Gatters 907 angeschlossen,
dessen Ausgang an einen Y-Eingang des Schalters 901 angeschlossen
ist.
-
Im Betrieb initialisiert ein hohes
Rücksetzen
den Setzeingang des Flipflops 905, was den Q-Ausgang hoch
zieht und bewirkt, daß der
MUX 895 das Register 881 auswählt. Außerdem wird dabei bewirkt,
daß der Schalter 901 X
mit A und Y mit B verbindet. In einer Hauptroutine ist ISR- inaktiv
hoch, wodurch das UND-Gatter 907 bezeichnet
wird. Dementsprechend taktet die Aktivität auf der CPU WRITE-Leitung
in einer Hauptroutine alle Register 881, 883, 891 und 893.
Zum Beispiel bedeutet dies, daß Informationen
von der ALU 21 in beide Register 881 und 883 gleichzeitig
getaktet werden und daß die
Informationen von dem Multiplizierer 53 in beide Register 891 und 893 gleichzeitig
getaktet werden.
-
Bei einer Kontextänderung, für die die Unterbrechungsdienstroutine
ein Beispiel ist, wird dann ISR- tief und sperrt das UND-Gatter 907.
Für die
Zwecke der Unterbrechungsroutine taktet die nachfolgende CPU WRITE-Aktivität weiter
die Register 881 und 891, setzt aber mit dem Takten
der Register 883 und 893 aus, wobei sie den Inhalt
der Hauptroutine durch die Inaktivität in diesen zwei letzteren
Registern speichert. Somit findet eine Kontextumschaltung mit keinerlei
zeitlichem Organisationsaufwand statt. Bei einer Rückkehr zu
dem ursprünglichen
Kontext wie etwa zu der Hauptroutine wird ISR erneut hoch, wodurch
das UND-Gatter 907 freigegeben
wird. Der Tief-Hoch-Übergang
schaltet das Flipflop 905 um, was eine Änderung des Zustands der MUXs 895 und 897 bewirkt
und automatisch die Register 883 und 893 auswählt. Dies
führt wiederum
eine automatische organisationsaufwandfreie Kontextumschaltung aus.
Da das Flipflop 905 umgeschaltet wird, ändert der Schalter 901 den
Zustand, um X mit B und Y mit A zu verbinden. Dann taktet die Aktivität beim CPU-Schreiben
beide Flipflops gleichzeitig, wobei die Register 883 und 893 aktive
Register sind. Eine weitere Unterbrechung (ISR- tief) sperrt die
Register 881 und 891, während die Register 883 und 893 aktiv
bleiben. Somit gibt es in 24 kein
Hauptregister oder Ge genregister, wobei die Registerpaare statt
dessen diese Funktionen alternativ gemeinsam nutzen.
-
Auf diese Weise schafft 24 eine Schaltschaltung, die die Arithmetik-Logik-Schaltung
bis zum Auftreten des Unterbrechungssignals mit beiden von zwei
Registern verbindet. Als Antwort auf das Unterbrechungssignal sperrt
die Schaltschaltung temporär
das Speichern weiterer Informationen von der Arithmetik-Logik-Einheit
durch ein Register. Anders ausgedrückt, kann diese Kontextumschaltschaltung
wie die der 22 und 23 in der Weise betrieben
werden, daß sie
wahlweise die ersten und zweiten Register taktet. Im Gegensatz zu
den Schaltungen der 22 und 23 besitzt die Schaltung
nach 24 erste und zweite Register,
deren Eingänge
beide in der Weise angeschlossen sind, daß sie die Informationen von
dem Prozessor gleichzeitig empfangen. Wie bereits diskutiert wurde,
besitzt der Prozessor einen Programmzähler, wobei er an diese Register
in der Weise angeschlossen ist, daß er eine erste Routine und
eine zweite Routine ausführt,
die eine Unstetigkeit des Programmzählers mit sich bringen.
-
In den 22–24 ist einem Registersatz gültig ein
Stapel zugeordnet, wobei der Prozessor bei einer Aufgabenänderung
zu der zweiten Routine in der Weise betrieben wird, daß er die
Inhalte der mehreren Register auf den Stapel schiebt. Ähnlich hebt
der Prozessor bei der Rückkehr
von der Unterbrechung den Stapel ab, um eine im wesentlichen gleichzeitige
Wiederaufnahme der ersten Routine zu ermöglichen. Die zweite Routine
kann eine Unterbrechungsdienstroutine, eine Software-Trap, ein Unterprogramm,
ein Verfahren, eine Funktion oder irgendeine andere kontextändernde
Routine sein.
-
In 25 initialisiert
ein Verfahren zum Betreiben der Schaltung nach 24 in
einem Schritt 911 den Q-Ausgang des Flipflops 905.
Die Operationen werden in einem Schritt 913 fortgeführt, um
den Ausgang der MUXs 895 und 897 auf der Grundlage
des Zustands des Q-Ausgangs des Flipflops 905 zu betreiben.
Dann bestimmt ein Entscheidungsschritt 915, ob der Inhalt
z. B. als Antwort auf das Signal ISR- umgeschaltet werden soll.
Falls das nicht der Fall ist, takten die Operationen in einem Schritt 917 alle
Register 881, 883, 891 und 893 und
schleifen zu Schritt 913 zurück, von wo die Operationen
bis zum Stattfinden einer Kontextumschaltung in Schritt 915 unbeschränkt fortgeführt werden.
In einem solchen Fall führt
eine Verzweigung von Schritt 915 zu einem Schritt 919,
um nur die wahlweise von den MUXs (z. B. 895 und 897)
ausgewählten
Register zu takten. Wenn eine Rückkehr
stattfindet, wird Q an dem Flipflop 905 umgeschaltet, von
wo die Operationen zu Schritt 913 zurückgeschleift und wie beschrieben
unbeschränkt
fortgeführt
werden.
-
26 ist
ein Prozeßablaufplan
zum Beschreiben des Betriebs der zwei Befehle CRGT und CRLT. Diese
zwei Befehle umfassen eine schnelle Größer-als- und Kleiner-als-Berechnung, die bei
wiederholtem Gebrauch leicht Maxima und Minima berechnet. Die Operationen
beginnen mit einem Start 981 und werden fortgeführt, um
zu bestimmen, ob der CRGT- oder der CRLT-Befehl vorhanden ist. Wenn
das der Fall ist, gehen die Operationen weiter zu einem Schritt 985,
um die ALU 21 in dem Akkumulator 23 in 1A zu speichern. In Schritt 987 wählt dann
die ALU über
den MUX 77 aus 1A den
Inhalt des ACCB 31. In einem Schritt 989 wird
die ALU gleichzeitig aktiv betrieben, um durch Subtraktion den Inhalt
des Akkumulators 23 mit dem ACCB 31 zu vergleichen,
um z. B. das Vorzeichen der arithmetischen Differenz zu erhalten.
In Schritt 991 wird in Abhängigkeit von dem Befehl CRGT
oder CRLT der größere bzw.
der kleinere Wert in Abhängigkeit
von dem Zustand des Vergleichs entweder durch Speichern des ACC 23 in
den ACCB 31 oder durch Weglassen des Speicherns an den
ACCB 31 geliefert. Hat z. B. der ACC 23 einen
größeren Wert
als der ACCB 31 und lautet der Befehl CRGT, wird der ACC
in dem ACCB gespeichert, während
dies andernfalls nicht der Fall ist. Falls der ACC 23 einen
kleineren Wert als der ACCB hat und der Befehl CRLT ist, wird der
ACC in dem ACCB gespeichert. In einigen Ausführungen schreibt eine Übertragung
den ACCB in den ACC, wenn der ACCB den gewünschten Wert bereits hält. Nachfolgend
bestimmt ein Test 993, ob eine Reihe von Werten abgeschlossen ist.
Falls das nicht der Fall ist, werden die Operationen zu Schritt 983 zurückgeschleift.
Falls die Reihe in Schritt 993 abgeschlossen ist, verzweigen
die Operationen zu einem Schritt 995, um den berechneten
Maximal- oder Minimalwert der Reihe zu speichern.
-
Die Kapazität für das schnelle Berechnen des
Maximums einer Reihe von Zahlen ist besonders nützlich in einem automatischen
Verstärkungsregelungssystem,
in dem ein Multiplikator oder Verstärkungsfaktor auf einem Maximalwert
beruht, um die Verstärkung
eines Eingangssignals so zu erhöhen
oder zu verringern, daß es
wirksamer verarbeitet werden kann. Solche automatischen Verstärkungsregelungen
werden in Radioempfängern,
Tonverstärkern,
Modems und außerdem
in Steuersystemen, die Algorithmen wie etwa den PID-Algorithmus
verwenden, eingesetzt. Das PID ist ein Proportional-Integral- und
Differential-Rückkopplungssteuersystem.
Eine nochmals weitere Anwendung gibt es in der Mustererkennung.
Zum Beispiel werden in einem Sprach- oder Erkennungssystem feste
Treffer der Erkennung durch Vergleich vorgespeicherter Sprachmuster
mit ankommenden Daten durch Betrachten eines Maximums in einem Schablonenvergleichsprozeß bestimmt.
Außerdem
analysiert die Kantenerfassung bei der Bildverarbeitung mit einem
Prozessor die Helligkeits- und Farbintensitäten. Wenn die Intensitäten wachsen
und dann plötzlich
fallen, wird ein Maximum erfaßt,
das für
die Zwecke der Bildverarbeitung eine Kante bezeichnet.
-
Auf diese Weise werden eine Arithmetik-Logik-Einheit,
ein Befehlsdecodierer, ein Akkumulator und ein Hilfsregister verbunden.
Das Hilfsregister ist an die Arithmetik-Logik-Einheit so angeschlossen,
daß die
Arithmetik-Logik-Einheit einen ersten arithmetischen Wert an den
Akkumulator liefert und dann an das Register als Anwort auf einen
Befehl von dem Befehlsdecodierer den kleineren oder größeren Wert
des Inhalts des Zusatzregisters und des Inhalts des Akkumulators
liefert. Die wiederholte Ausführung
des Befehls bei einer Reihe während
der Zeit an den Akkumulator gelieferter arithmetischer Werte liefert
an das Register einen Minimal- oder Maximalwert in der Reihe der
arithmetischen Werte.
-
In vielen Echtzeitsystemen ist es
von kritischer Bedeutung, ein Maximum oder Minimum mit so wenig Maschinenzyklen
an Organisationsaufwand wie möglich
zu finden. Das Problem verkompliziert sich, wenn temporäre Ergebnisse
des Algorithmus in Akkumulatoren gespeichert werden, die mehr Bits
als die Wortbreite eines Datenspeicherbereichs, in dem das momentane
Minimum oder Maximum gespeichert werden könnte, haben. Es verkompliziert
sich außerdem
durch Prozessoren mit einem starken Pipeline-Betrieb, wenn das Prüfen von
Bedingungen eine Verzweigung erfordert. Beide Fälle verwenden zusätzliche
Maschinenzyklen. Weitere Maschinenzyklen können beim Einrichten der Adressen
in Datenübertragungsoperationen
verbraucht werden.
-
In der bevorzugten Ausführung hat
die Schaltung jedoch den ACCB 31 als ein paralleles Register
der gleichen Bitbreite wie der Akkumulator ACC 23. Wenn
die Minimum- oder Maximumfunktion ausgeführt wird, vergleicht der Prozessor
die neuesten Werte in dem Akkumulator mit dem Wert in dem parallelen
Register ACCB und schreibt den Akkumulatorwert, wenn er in Abhängigkeit
von dem Befehl kleiner als das Minimum oder größer als das Maximum ist, in
das parallele Register oder umgekehrt. Dies alles wird bei einem
einzigen Befehlswort in einem einzigen Maschinenzyklus ausgeführt, wobei
somit sowohl Coderaum als auch Programmausführungszeit gespart wird. Außerdem sind
dabei keine Speicheradressierungsoperationen erforderlich und werden
keine weiteren Register in der ALU beeinflußt.
-
Während
diese Erfindung mit Bezug auf erläuternde Ausführungen
beschrieben wurde, soll diese Beschreibung nicht als einschränkend ausgelegt
werden. Verschiedene Modifikationen der erläuternden Ausführungen
sowie weitere Ausführungen
der Erfindung gehen für
den Fachmann auf dem Gebiet unter Bezug auf diese Beschreibung hervor.