DE2338469A1 - Programmierbares digitales datenverarbeitungsgeraet - Google Patents
Programmierbares digitales datenverarbeitungsgeraetInfo
- Publication number
- DE2338469A1 DE2338469A1 DE19732338469 DE2338469A DE2338469A1 DE 2338469 A1 DE2338469 A1 DE 2338469A1 DE 19732338469 DE19732338469 DE 19732338469 DE 2338469 A DE2338469 A DE 2338469A DE 2338469 A1 DE2338469 A1 DE 2338469A1
- Authority
- DE
- Germany
- Prior art keywords
- data processing
- processing device
- data
- digital data
- arithmetic unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Description
DiPL-ING. KLAUS NE1JBECKER
Patentanwalt
4 Düsseldorf 1 · Schadowplatz 9
4 Düsseldorf 1 · Schadowplatz 9
Düsseldorf, 26. Juli 1973
Westinghouse Electric Corporation
Pittsburgh, Pa., V. St. A.
Pittsburgh, Pa., V. St. A.
- Programmierbares digitales Datenverarbeitungsgerät
Die Erfindung bezieht sich auf digitale Systeme und insbesondere auf digitale Datenverarbeitungsgeräte zur wirksamen Durchführung
komplexer arithmetischer Berechnungen wie einer Schnellen Fourier-Transformation.
Wie allgemein bekannt, haben sich digitale Datenverarbeitungsgeräte
oder allgemeiner digitale Computer seit ihrer Einführung stark verbreitet. Wenngleich hier nicht davon auszugehen ist,
daß die vorliegende kurze Untersuchung des einschlägigen Standes der Technik alle bekannten Konstruktionsmerkmale für solche
Datenverarbeitungsgeräte oder auch nur einige früher geforderte optimale Untergruppen solche Merkmale, gegenüber denen die vorliegende
Erfindung in jeder Efinsicht eine Verbesserung darstellt,
umfaßt, so gelten gewisse hier angestellte Überlegungen doch ganz allgemein für das einschlägige Gebiet. Ändere Merkmale sind
repräsentativ für jüngere Entwicklungen und dienen als Grundlage für dia Behauptungen, daß in Hinblick auf bestimmte evolutionäre
Eigenschaften solcher Datenverarbeitungsgeräte das Bedürfnis zur
fortlaufenden Verbesserung iia Hinblick auf dynamische Anforderungen
besteht und es keine einheitliche, übereinstimmende Auf-
409808/1059
Telefon (O211) 32O8 58
Telegramme Custopat
fassung gibt, Vie solche Verbesserungen zu verwirklichen sind.
Der Aufbau des zum allgemeinen Einsatz dienenden digitalen
Computers ist bekannt. Nachdem hier keine allgemeinen Betrachtungen notwendig sind, kann das Augenmerk zunächst auf eine
Forderung gerichtet werden. Es muß eine Möglichkeit geben, Instruktionen zu interpretieren, die die Operation des Computers
bei der Durchführung dessen bestimmen, was zu einem" bestimmten Zeitpunkt geschehen soll, wobei die Gesamtheit solcher
Instruktionen, die sich auf eine einheitliche Arbeit beziehen, allgemein als ein Programm bezeichnet wird. Ebenso läßt sich
sagen, daß auch die Interpretation der Instruktionen ein Programm darstellt, das in hohem Maße spezialisiert und im Hinblick
auf die Möglichkeiten des speziellen digitalen Computers allgemein optimiert ist. Ein Programm dieser letztgenannten Art wird
allgemein als Mikroprogramm bezeichnet.
Historisch gesehen wurden Mikroprogramme durch den Hersteller in dem Herstellerwerk festgelegt, etwa durch Festverdrahtung
oder durch Speicherung in einem bestimmten Teil des Computer-Speichers, im allgemeinen in einem Festwertspeicher-Teil (ROM)
davon, oder das Mikroprogramm wurde in sonstiger Weise für das produktive (oder kreative) Verhalten des Computers definiert.
Es wurde allgemein als nicht-produktiv, unsinnig oder ungeschickt angesehen, dieses Mikroprogramm zu ändern oder den Versuch
zu machen, dieses Mikroprogramm zu ändern. In jüngerer Zeit ist es dagegen als lobenswert, wünschenswert und sogar
mutig angesehen worden, das Mikroprogramm zu ändern. Die Verwirklichung einer solchen Maßnahme ist durch eine neue Kategorie
von Computern erleichtert worden, die allgemein als "mikroprogrammierbar" bezeichnet werden.
Zur Zeit können mit Rücksicht auf das vorstehend Gesagte einzelne Benutzer den Betrieb des Computers durch Instruktionen bestimmen,
die sie selbst geschaffen haben. Das legt es nahe, daß der ße-
409808/10 6*
3 2338463
trieb des Computers im Hinblick auf bestimmten Anwendungen oder Kategorien davon optimiert werden kann. Das stellt, allgemein
gesehen, ein neues Konzept dar, nachdem noch keine allgemein akzeptierte Theorie aufgestellt worden ist, in welcher Weise
eine optimale Instruktionsserie in Einklang mit einem bestimmten
Anwendungsfall gebracht wird. Man findet in den Katalogen der Hersteller Richtlinien, die auf bestimmte Situationen zutreffen.
Sie bleiben jedoch notwendigerweise allgemein. Die Anwendbarkeit bekannter Richtlinien nimmt in Abhängigkeit von der Komplexität
des Anwendungsfalls ab.
Allgemein arbeiten Mikroprogramme - unabhängig davon, ob sie
vom Hersteller oder vom endgültigen Benutzer entwickelt wurden zu einem bestimmten Zeitpunkt mit einer Instruktion oder Anweisung.
Ein bestimmtes Segment des Mikroprogramms betrifft eine bestimmte Anweisung. Bestimmte Anweisungen können die Durchführung
von nehr als einera Teil des Mikroprogramms auslösen, so daß man sagen kann, daß diese Teile auf diese Anweisungen aufgeteilt
werden. Eine optimale Aufteilung wird gefordert. Sie wird sogar behauptet. Eine solche Forderung und Behauptung kommt ·
jedoch Optimismus näher als der Realität.
Die Ausführung des Mikroprogramms - gleich in welcher Form steht in so engem Zusammenhang mit dem Steuer-Schaltungsaufbau,
der verschiedentlich auch als Steuer-Einheit, Steuereinheit-Logik oder lediglich Steuer-Logik bezeichnet wird, mit der
Steuer-Zeitvorgabe (charakteristischerweise bestimmt durch einen "Takt", der zur Festlegung von Operations-Zyklen dient)
sowie dein funktioneilen und/oder räumlichen Aufbau zumindest der arithmetischen Dinheit, daß es denkbar ist, den Versuch zu
machen, das Mikroprogramm, die Mikroprogrammier-Einrichtung
oder beides durch Konzentrieren auf einen dieser Punkte zu optimieren. Insbesondere beim Aufbau eines Datenverarbeitungsgerätes für einen Spezialzweck ist es wünschenswert, sich auf
409808/10S9
SAO ORIQIMAL
dan Aufbau der arithmetischen einheit zu konzentrieren.
Lin optimaler Aufbau läßt sich im vorstehenden Rahmen sehr
schwer festlegen, weil er von dem letztlich vorgesehenen Zweck
abhängt, dein das Datenverarbeitungsgerät dienen soll. Es erfolgt mehr oder weniger intuitiv, daß die Definition zunehmend
umfangreich wird, wenn jede Spezial-Anweisung formuliert wird. Sollten Makroinstruktionen vorgeschlagen v/erden, so bewegt man
sich auf den ungünstigäben Fall zu. Ein verschlechtertes Gesamtverhalten
hat sich aus mehr als einigen wenigen Versuchen der gleichzeitigen Optimierung des Aufbaus der arithmetischen Einheit
im Hinblick auf die Festlegung der Anweisungs-Reihe, der Anweisungsreihen-Definition im Hinblick auf die Probleinformulierung
sowie die Makroinstruktionen-Verwirklichung in Hinblick
auf eine oder beide ergeben.
Programme, gleich welcher Beschaffenheit, erfordern in wesentlichen
unmittelbaren Zugang zu den Daten, mit denen sie z. Z. arbeiten, damit ihre Ausführung mit der maximalen periodischen
Geschwindigkeit fortschreitet, die durch die Instruktionsreihen-Zusaimaenstellung
möglich ist, aus der jedes Programm sich aufbaut. Diese Daten müssen eindeutig in dem Speicher enthalten
sein, wenn die Ausführung einer bestimmten Anweisung, die in irgendeiner Weise diese Daten verarbeiten soll, beginnt. Es ist
hier beabsichtigt, einen Unterschied zu definieren, in der vorliegenden
Untersuchung wird kein Versuch gemacht, einen externen Speicherzugang mittels eines allgemeinen Programms einzuschließen.
Unter Zugang ist stets die Unterbringung in einem Speicher
und allgemein das "Herausholen" aus diesem Speicher in ein Register verhältnismäßig hoher Geschwindigkeit, beispielsweise
einen Akkumulator, zu verstehen. Die Unterbringung der Daten wird stark durch das grundlegende Konstruktions-Kriterium erleichtert,
welches vorschlägt, daß ein bestimmter Datenwert individuell in mehr oder weniger beliebiger, zufälliger Reihen-
409 8t) 8/1059
~5~ 233846S
folge zugänglich sein soll. Wahlfreier oder beliebiger Zugriff (Random Access) soll im vorliegenden Rahmen.bedeuten, daß jede
während der Dekodierung einer Anweisung vorgegebene Operation sich im wesentlichen unverzüglich ausführen läßt, nachdem die
Adresse der Daten, auf die die Anweisung einwirkt, bestimmt (Dekodiert) worden ist. Wahlfreier Zugriff ist in einer Anweisungsfolge
entsprechend diesem Kriterium nicht schwieriger als für eine besondere Anweisung.
Es mag nun zunächst absurd erscheinen vorzuschlagen, daß das, was idealerweise wahlfrei ist, plötzlich eingegrenzt, be-
schränkt oder in sonstiger Weise systematisiert werden sollte. Unter bestimmten Umständen ist dies aber in der Tat anzustreben,
angestrebt worden und wird auch weiter unter ähnlichen Umständen angestrebt werden. Ein Beispiel ergibt sich unmittelbar,
wenn man berücksichtigt, das es häufig wünschenswert ist, daß innerhalb einer bestimmten Anweisungsreihe - die im Hinblick
auf den funktioneilen und/oder räumlichen Aufbau eines bestimmten Computers optimiert ist - bestimmte Anweisungen dafür
sorgen sollten, daß eine Adressenangabe außerhalb der Anweisung gesucht wird. Die Bestimmung der Adresse kann so einfach sein
wie sie innerhalb einer gegebenen, vordefinierten Stelle, beispielsweise einem Register, zu ermitteln, jedoch auch eine
recht aufwendige, zeitraubende Berechnung erfordern. Der erstgenannte Fall ist naturgemäß der üblichere, der letztere dagegen
selten.
Es ist klar, daß im Hinblick auf jene unmittelbar vorstehend dargelegten Weisungen wahlfreier Zugriff für eine Anweisungsfolge schwieriger als für eine bestimmte Anweisung ist (wobei
"schwierig" im vorliegenden Rahmen relativ zu sehen ist, d. h. insbesondere im Hinblick auf den Zeitbedarf). Um Zeit einsparen
zu können, was stets wünschenswert ist, sollten aufgeschobene Adressenbestimmungen, d. h. jene, die bis zur Anweisungs-Ausführung
verschoben werden, im Gegensatz zur Erzeugung durch
409808/1089
"Zusammensetzung" (assembly) ο. dgl., so einfach oder trivial
wie möglich sein. Das gilt insbesondere, wenn eine verschobene Adressenbestimmung erfordernde Weisungen iterativ ausgeführt
werden sollen. Es besteht kein einziges Kriterium, das dafür maßgeblich ist, wie dies für einen besonderen Spezialzweck-Computer
erzielt werden sollte.
Es ist allgemein bekannt, daß Computer arithmetische Operationen
durch Verarbeitung von durch Gruppierungen von binären Bits repräsentierten Binärzahlen ausführen. Es ist üblich, eine bestimmte
Anzahl Bits als eine Einheit für die Durchführung von Berechnungen zu definieren und eine solche Einheit dann in Er?
mangelung eines besseren Ausdrucks als "Wort" zu bezeichnen. Sobald man nun das definiert, was nicht überschritten werden
sollte, treten sogleich Situationen auf, wo es zu einer solchen Überschreitung routinemäßig kommt. Es existiert eine Vielzahl
von Lösungen, um solche Situationen zu handhaben, die in unterschiedlicher Weise als überlauf, Fest»-überlauf oder verlorener
übertrag bezeichnet werden. Es 1st darauf hinzuweisen, daß - wie mit einem in dem vorstehenden Satz eingeführten Ausdruck
angedeutet - die hier behandelten Berechnungen der Festkomma-Gruppe angehören. Es wird kein Versuch gemacht, den Unterschied
zwischen Festkomma- und Gleitkomma-Arithmetik zu entwickeln, da davon ausgegangen wird, daß der Leser weiß, daß Computer so eingestellt
werden können, daß sie den Unterschied zwischen Zahlen erkennen können, wie sie im kaufmännischen Bereich auftreten
oder aber bei der Berechnung von translunaren Flugbahnen, wobei im ersten Fall von Festkomma-, im letztgenannten Fall von Gleitkomma-Berechnungen
gesprochen wird. Man betrachte Beispiele im dezimalen Zahlensystem und nehme an, daß für alle anderen Analo-
gien existieren, beispielsweise 0,10 gegenüber 0,98641285 χ 10 .
In vielen Fällen ist es wünschenswert, eine Möglichkeit zu haben, um sehr komplizierte Berechnungen unter Verwendung von Festkomma-Binärzahlen
durchzuführen. Nicht der unwesentlichste Faktor ist
409808/1069
" 7 " 2338463
dabei Geschwindigkeit. Ein zweiter Faktor ist Wirtschaftlichkeit. Es werden nachstehend bestimmte Merkmale der vorliegenden'. Erfindung
erläutert/ die sich auf die Wiedergabe und Verarbeitung dieser Zahlen beziehen. Es soll an dieser Stelle*angedeutet
werden, daß - im Gegensatz zu dem, was man erwarten würde verhältnismäßig wenig unternommen wurde f um eine Verbesserung
der wenigen Grundgedanken betreffend entweder die Wiedergabe oder aber die Handhabung von Festkomma-Zahlen zu erzielen, selbst
nicht in Verbindung mit raffinierteren Spezialzweck-Datenverarbeitungsgeräten.
Insbesondere sind wenige wirklich zufriedenstellende Festkomma-Hardware-Neuerungen vorgeschlagen worden,
um entweder Universal- oder aber Spezial-Digital-Datenverarbeitungsgeräte
für uirifangreichere statistische Berechnungen einzusetzen.
Diese drei sowie weitere Gesichtspunkte werden in den nachstehenden
Abschnitten behandelt werden., die zumindest teilweise zur Erläuterung der allgeneinen Grundlagen der Erfindung
und in gewissem Umfang als Einführung spezieller Merkmale einer
solchen Erfin=dung dienen sollen.
Entsprechend dam vorstehend Gesagten wird ein digitales Datenverarbeitungsgerät
gesucht, das speziell so ausgelegt ist, daß es eine besti; i>nte Gruppe von Berechnungen gestattet. Es wird
ein Aufbau offenbart, der es ermöglicht, komplexe arithmetische Funktionen leicht zu verwirklichen. Daß das Datenverarbeitungsgerät die Möglichkeit hat, nachstehend zu beschreibende Makroinstruktionen
auszufahren, die vergleichweise iiu Verhältnis zu
den iiikroprogramm-Konstruktions-nerkmalen optimiert sind, ist
wünschenswert. Das Mikroprogramm läßt sich in der vorliegenden Ausführung einfacher bestimmen, wenn das Datenverarbeitungsgerät hergestellt und erst dann in einem Festspeicher, gespeichert
wird. Sine Xnuerung des Mikroprogramms ermöglicht eine Umgestaltung
des D3.tenverarbeitungsgeräts derart, daß entweder neue
409808/1059
Anweisungen hinzubegeben oder aber bestehende Anweisungen gelöscht
bzw. abgewandelt werden.
Das Datenverarbeitungsgerät v/eist auch eine Mehrzahl Speicher-Moduln
auf, in denen Daten von einer externen Quelle gespeichert,
werden können, in die Daten aus anderen Systemen durch das Datenverarbeitungsgerät übertragen v/erden können, die als Daten-Speicherquelle
für arithmetische Anweisungen dienen können oder die verwendet werden können, um die Ergebnisse arithmetischer
Operationen zu speichern. Jeder dieser Speicher enthält eine vollständig getrennte Adressen- und Steuer-Logik, so daß die
Speicher im wesentlichen unabhängig voneinander arbeiten können. Beispielsweise können bei einer arithmetischen Operation von
der Anweisung benötigte Daten aus einem Speicher ausgelesen und die Ergebnisse in einem zweiten Speicher gespeichert werden,
so daß die arithmetischen Operationen mit der Grund-Speichergeschwindigkeit
fortschreiten können.
Ebenso sind in dem Datenverarbeitungsgerät mehrere Adressenzähler enthalten, um Adressen-Folgen zu ermöglichen, die sich
in besonderer Weise für die Verwendung in Verbindung mit zu erzeugenden komplexen Operationen eigenen. In Verbindung mit diesen
Adressen-Zählern sind Maßnahmen getroffen, die Adressen-Folgen ermöglichen, die mit einer vorgegebenen, zu erzeugenden Adresse
beginnen und enden. Weiter sind Umkehr-üit-Zähler und Dit-Dreh-2ähler
vorgesehen, um Adressen-Folgen zu erzeugen, die besonders in Verbindung mit zu erzeugenden Schnellen Fourisr-Transfor^iationen
nützlich sind. Ebenso können durch außerhalb des Datenverarbeitungsgerätes liegende Systeme erzeugte Adressen-Folgen
verwendet werden. Diese Maßnahme ist besonders bei der Urzcujang
von Frequenzspektrurt—Verschiebungen und anderen ähnlichen arithmetischen
Vorgängen nützlich.
409808/1059 BAD ORIGINAL
Ferner sind -laßnahnen vorgesehen, die es gestatten, die Zähler
zur Erzeugung von Adressen-Gruppen einzusetzen, die mit speziellen
Werten beginnen und enden. Der Zählerschritt kann dabei auch so gewählt v/erden, daß ein Überspringen bestimmter Adressen
möglich ist.
Das digitale Datenverarbeitungsgerät ist von besonderem Nutzen,
v/enn es in Verbindung mit einem Universal-Digital-Computer
oder einem ähnlichen System eingesetzt wird, um Daten und Programme für die Steuerung des Datenverarbeitungsgeräts zu liefern.
Zur Unterstützung ist in einem solchen Fall ein Zähler vorgesehen, der automatisch die /anzahl arithmetischer -Operationen
zählt, die einen Überlauf (overflow) erzeugen. Ein Überlauf ergibt sich, wenn eine arithmetische Operation eine Zahl liefert,
deren Größe die maximale Größe überschreitet, die durch das Datenverarbeitungsgerät-Wort wiedergegeben werden kann.
Die Anzahl der von diesem Zähler akkumulierten Zählungen kann durch das das Datenverarbeitungsgerät steuernde System gelesen
werden, und die dem Datenverarbeitungsgerät zugeführten Daten können einen neuen Maßstab oder eine neue Skala erhalten, so daß
die kumulative Zählung auf einem annehmbaren Wert gehalten werden kann. Diese Eigenschaft ist besonders nützlich, wenn bestimmte
Arten statistischer Datenverarbeitungydurchgeführt werden, weil
eine bestimmte Anzahl "Überläufe" hingenommen werden kann, ohne einen unzulässigen Fehler bezüglich des endgültig berechneten
Ergebnisses hervorzurufen. Das nachstehend erläuterte System für die Wiedergabe von Zahlen reduziert auch den Fehler, der
in das Endergebnis durch einen solchen Überlauf eingeführt wird.
Das Datenverarbeitungsgerät arbeitet mit einer 2-er-Komplement-Arithmetik
und einem selbstsättigenden Zahlensystem. Die 2-er-Komplement-Arithmetik
ist herkömmlich und wird von den meisten digitalen Computern angewendet. Dieses Zahlensystem hat den Vorteil,
daß die Addition und die Subtraktion mittels derselben Hardware mittels einer einfachen Änderung in der Wiedergabe
409808/1059
233846S
positiver und negativer Zahlen durchgeführt werden können. Bei
Anwendung dieses Systems wird die negative Wiedergabe einer Zahl durch Inversion jedes Bits der positiven Zahl und Addition
des Wertes Sins (binäre Addition) erzeugt. Wird bei^pielsvreise
die positive Zahl durch 1001 wiedergegeben, so ist der negative Wert 0111. Dieses System gestattet es auch, das höchstwertige
Bit des digitalen Wortes als Vorzeichen-Bit zu verwenden, ohne speziellen Maßnahmen zu erfordern/ um sicherzustellen, daß das
Vorzeichen-Bit einen richtigen Wert hat. Beispielsweise ist es allgemein bekannt, daß bei diesem System das Vorzeichen-Bit als
ein weiteres Daten-Bit des digitalen Wortes behandelt uncl durch
die Addierer der arithmetischen Einheit verarbeitet werden kann, wobei das richtige Vorzeichen immer zu dem Fehlen eines Überlaufs
führt. Das Verfahren der Handhabung von Überläufen steht im Zusammenhang mit der sättigbaren Zahlenwiedergabe, wie sie in dem
Datenverarbeitungsgerät verwendet wird, und wird nachstehend weiter ins einzelne gehend beschrieben. Jedoch hat dieses Zahlensystem
das Merkmal, daß bei Addition zweier positiver Zahlen, die dann im Ergebnis die Größe übersteigen, die durch das digitale
Datenverarbeitungsgerät-Wort wiedergegeben werden kann, das erhaltene Ergebnis als negative Zahl erscheint, weil das Vorzeichen-Bit
durch denjauftretenden Überlauf geändert wird. Die Größe
dieser Zahl hängt von der Größe der addierten Zahlen ab, kann jedoch im ungünstigsteh Fall gleich der maximalen negativen Größe
sein, die durch das digitale Datenwort des Datenverarbeitungsgeräts wiedergegeben werden kann. Entsprechend kann die Addition zweier
negativer Zahlen zu einer scheinbar positiven Zahl führen, deren Fehler ähnlich den zuvor erläuterten ist.
Die vorstehend erwähnten Eigenschaften können zu unzulässigen Fehlern führen, wenn es erwünscht ist, eine erhebliche Anzahl
Überläufe in statistischen Datenverarbeitungsproblemen ignorieren zu können. Dieses Problem wird in dem erläuterten Datenverarbeitungsgerät
durch die Verwendung eines selbstsättigenden Zahlensystems erheblich verringert. In diesem System wird das Vorzeichen
409308/1059
233846S
bei Erzeugung eines Überlaufs festgehalten und die Größe auf den größten T<7ert eingestellt, der durch das digitale Batenwort
wiedergegeben werden kann. Bei der Anwendung dieser Wiedergabe ist es günstig, die negativen Werte auf die gleiche Größe wie
die positiven *7erte zu beschränken, wenngleich es allgemein bekannt ist, daß bei dieser Art der arithmetischen Wiedergäbe
die maximal darstellbare negative Zahl größer als die maximale
positive Zahl ist. Dieses Zahlenwiedergabesystem verringert die
Fehler erheblich, die durch jeden einzelnen Überlauf hervorgerufen
werden können, weil der Fehler, der maximal auftreten kann, der Wert des Überlaufs ist.
r,s können mehrere der vorstehend beschriebenen Datenverarbeitungsgerate
in einer! Multi-Datenverarbeitungsgeräteaufbau zusammengeschlossen
werden, um Prob leine zu lösen, die die Rechenkapazität eines einzelnen Datenverarbeitungsgeräts überstaigen. In dieser.
7iUfoau brauchen nicht alle Datenverarbeitungsgerate identisch
zu sein. Vielmehr können einige der Datenverarbeitungsgerate Universal-Digitol-IRecIiner sein.
?3 sollen nicht alia eier oben aufgeführten Gesichtspunkte als
wesentlich für ^en weiteren Rahmen der Erfindung angesehen
werden. Viie zuvor angedeutet, stellt die Einführung an dieser
Stelle lediglich eine breitere Erläuterung s.owohl der wesentlichen
als auch der wünschens ?erten Gesichtspunkte car, ohne da£ darnit
eine ibgrenzunc vorgenommen, werden soll.
i'.uf gäbe vorliegender Xirf incung ist es, ein digitales Datenverarbeitungsgerät
zu schaffen, Jas bei der Verarbeitung von Spezialjjroiy
ranzen mit einer besonders σχ-oßen An ζ aal von Berechnungen
eine verbesserte Genauigkeit aufweist o-fer, anders ausgedrückt,
für eine solche Genauigkeit durch Zuverlässigkeit auf GrünJl veroesserter
oinHrzahl-Kisdergabe und Landhabung sorgt.
409808/1059 . 8AD
Zur Lösung dieser Aufgabe ist ein programmierbares digitales Datenverarbeitungsgerät erfindungsgemäß gekennzeichnet durch
eine arithmetische Einheit zur Durchführung arithmetischer Operationen an Daten mit Fest *"£rxthmetik und. einer sättigbaren
Zahlenv/iedergabe in Abhängigkeit von vorgegebenen Steuersignalen;
eine Einrichtung zur Erzeugung und Kopplung der Daten mit der arithmetischen Einheit; eine Steuereinrichtung zur Erzeugung
und Kopplung der Steuersignale mit der arithmetischen Einheit; sowie durch eine der arithmetischen Einheit operativ zugeordnete
Einrichtung zur Erzeugung eines Sättigungssignals jedesmal,
wenn eine arithmetische Operation eine Zahl erzeugt, deren Größe das durch sättigbare Zahlenwiedergabe darstellbare Maximum
üb e r s ehre itet.
Vorzugsweise ist eine Einrichtung zur Zählung der Sättigungssignale und zur Akkumulierung dieser Zählung für spätere Berechnung
oder ^iaßstabsänderung vorgesehen.
Das bevorzugte digitale Datenverarbeitung^gerät ist zusätzlich
mit einer Einrichtung zur Festlegung von ^akro-Anweisungen
sollte einer weiteren Einrichtung versehen, um diese Anweisungen
in Form von rdkroprogrammen zu verarbeiten.
Die Erfindung wird nachstehend anhand eines l·us führungsheispieIs
in Verbindung mit der zugehörigen Zeichnung erläutert. In der Zeichnung zeigen:
Fig. 1 ein Funktions-Blockäiagramm des digitalen Datenverarbeituncfsgeräts;
Fig. 2 ein Blockschaltbild, das veranschaulicht, wie mehrere digitale Datenverarbeitungsgeriite in einem **ulti~
Datenverarbeitungs-Aufbau zusammengeschlossen werden können;
409808/1059 BADORiQlNAL
Fig. 3 ein Blockschaltbild der durch Speicher-Eingangs- und Ausgangs-Schalter gekoppelten arithmetischen und
Speicher-Einheiten;
Fig. 4 ein Blockschaltbild des Datenverarbeitungsgerät-*
Speicheradressen-Generators;
Fig. 5 ein Funktions-Blockschaltbi'ld der arithmetischen Einheit;
Fig. 6 ein Diagramm, das das von dem Datenverarbeitungsgerät verwendete l^ikro-Anweisungs-Wart veranschaulicht;
Fig. 7 ein Flußdiagramm, das den Datenfluß durch die arithmetische
Einheit während der Ausführung einer Anweisung entsprechend einer Schnellen Fourier-Transformation
veranschaulicht;
Fig. 3 ein den Datenfluß durch die arithmetische Einheit während der Ausführung einer komplexen ."!ultiplizier-Anweisung
veranschaulichendes Flußdiagramm;
Fig. 9 den Datenfluß durch die arithmetische Einheit bei
Ausführung ainer reellen Multiplizier-Anweisung;
Fig. 10 den Datenfluß durch die arithmetische Einheit bei
Ausführung einer Erfassungs-i^nweisung;
Fig. 11 den Datenfluß durch die arithmetische Einheit bei
Ausführung einer Speicherlösch-Anweisung;
Fig. 12 den Datenfluß durch die arithmetische Einheit bei Ausführung einer gesonderten Anweisung;
409808/1059
Fig. 13 den Datenfluß durch die arithmetische Einheit bei
Ausführung eines Konjugations-Befehls;
Fig. 14 den Datenfluß durch die arithmetische Einheit bei
Ausführung einer Multiplizier-Anweisung; und
Fig. 15 ein Diagramm des in Verbindung mit dem Datenverar-,
beitungsgerät verwendeten selbstsHttigenden Zahlensystems.
Fig. 1 ist ein Funktions-Blockschaltbild des digitalen E>atenverarbeitungsgerätes.
Das Datenverarbeitungsgerät weist ein Steuerwerk oder eine Speichereinheit 10, eine arithmetische Einheit
11 sowie eine Speiehereinheit 12 auf. Die Speichereinheit 12
dient zur Speicherung der bei der Datenverarbeitung verwendeten Daten und zur Speicherung der dabei erzeugten Ergebnisse. Die
arithmetische Einheit 12 enthält die gesamte Logik, die notwendig ist, um komplexe arithmetische Berechnungen und andere
Datenverarbeitungsvorgänge auszuführen. Die arithmetische Einheit
enthält vier Multiplikatoren und sechs Addierer. Diese werden durch Multiplexer oder andere Logik (in Fig. 1 nicht dargestellt)
so zusammengeschaltet, daß eine Mehrzahl komplexer arithemtischer
Datenverarbeitungs-Operationen ausgeführt werden können, wie das weiter unten genauer erläutert wird.
Die Steuereinheit 10 erzeugt alle Steuersignale, die notwendig sind, um die arithmetische Einheit 11 und die Speiehereinheit 12
in Abhängigkeit von Makroprogramm-Anweisungs-Wörtern zu steuern, die in einem Programmspeicher 13 gespeichert sind.
Die Mikroprogramm-Anweisungs-Wörter, die in dem Programmspeicher
13 gespeichert sind, werden durch die Steuerlogik 14 ausgelesen. In einem Mikro-Programmspeicher 15 gespeicherte Mikroprogramm-Anweisungs-Wörter
werden ebenfalls durch die Steuerlogik 14 ausgelesen. Die Makroprogramm-Anweisungs-Wörter werden durch die
Mikroprogramm-Anweisungs-Wörter interpretiert, so daß die Steuer-
409808/1059
logik 14 die notwendigen Signale erzeugt, um die arithraetische
Einheit 11 und den Speicheradressengenerator 20 so zu steuern,
"daß die richtigen Steuer- und Ädressensignale für die arithmetische
Einheit 11 und die Speichereinheit 12 erzeugt werden.
Die Speichereinheit 12 enthält sechs mit "10 bis M5 bezeichnete
Speichermodulen 21, von. denen nur drei viiedergegeben sind (wobei
mehr oder weniger als sechs Speichermodul&n 21 verwendet werden
können, je nach dem speziellen Aufbau des Datenverarbeitungsgeräts) . Die Daten von der arithmetischen Einheit 11 und von einer
externen Dateneingabe 22 werden über einen Eingangsdatenschalter 23 selektiv mit dem Eingang der Speichermodulen 21 (mit wahlfreiem
Zugriff) gekoppelt. Der Ausgang der Speichermodul-en 21 wird
selektiv über einen Ausganysdatenschalter 24 mit der arithmetischen
Einheit 11 und :lem Einyangsdatenschalter 23 gekoppelt. Der
riingangsdatenscaalter 23 nn€ der Äuso-angsdatenschälter 24 werden
äurch ■ die "likroprograTun-An'veisungs-'vorter gesteuert, vie das
■ .lurch die ausgeführte T"akro-2\nv/eisung gefordert wird.
Die riakroprogra^xa-AnweisunyG-Worter werden in äen, Programmspeicher
13 wie zuvor beschrieben gespeichert, ein Anveisungszähler 25
spezifiziert die; Adressen, von denen die T'akroanweisungen auszulesen
sind.
!line Reihe Adressenmodifizierungs- oder Indexregister 26 sind
mit I, 11, 0 bzw. ii bezeichnet. Für jedes dieser Register sind
in einem Speicher (nicht dargestellt) sechzehn T"Terte gespeichert.
Diese VJerte werden gelesen, so daß die Register auf den durch
die "Iakroprogre;r"ja-Anweisun.jS-v;örter spezifizierten V7ert gesetzt
v-.'erdan. üie Funkton dieser Register nachstehend genauer erläutert.
ν ie zuvor dargelegt, macht das digitale Datenverarbeitungsgerät
von einer selbstsättigenden Sahlenviedergabe Gebrauch, bei der
jede arithmetische Operation, die einen Überlauf erzeugt, automatisch
den Ausgang auf einen ivert setzt, der cas richtige Vor-
409808/1089
zeichen und eine Größe hat, die gleich dem maximalen Wert ist,
den das digitale Datenwort wiedergeben kann. Ein Zähler wird weitergeschaltet, um anzuzeigen, wie häufig dies geschehen ist.
Der diese Überläufe zählende Zähler wird als Sättigungszähler
bezeichnet und ist in Fig. 1 mit dem Bezugszeichen 30 versehen.
Die Häufigkeit, mit der Überläufe auftreten, hängt von der
Skalierung der Daten ab, weil das Datenverarbeitungsgerät mit einer Festkomma-Arithmetik arbeitet. Der Maßstab oder die
Skalierung aller von dem Datenverarbeitungsgerät verwendeten Daten kann durch Speicherung einer Zahl in einem Skalierungs-Register
geändert werden. Das Skalierungs- oder Skalenregister ist in Fig. 1 mit 31 bezeichnet.
Das digitale Datenverarbeitungsgerät wird mit Makroinstruktions-Wörtern
und Daten durch ein Steuersystem (nicht dargestellt) ge-. speist. Jedes Wort von dem Steuersystem kann Informations- oder
Daten-Bits zusammen mit Steuerbits enthalten. Das erfordert, dafi
das Wort so interpretiert wird, daß die Daten in der richtigen Anordnung gespeichert oder die richtigen Steuersignale erzeugt
werden. Die Interpretierung oder Auswertung dieser Wörter erfolgt durch eine Interface-Einheit 32.
über die Interface-Einheit 32 hat das Haupt-Steuersystem Zugang
oder Zugriff zu dem Sättigungszähler 30, dem Makro-Anweisungszähler 25, dem Makroprogramm-Speicher, dem Speicher für die
Speicherung der Werte für die I-, 0-, N- und R-Register 26 sowie zu den Speichermodulen 21. Zusätzlich kann das Steuersystem
mittels der Haltesignal-Eingangsleitungen 33 Haltesignale an die Steuer logik 14 liefern. Dieses Signale veranlassen das liakroprogramm,
an vorgegebenen Stellen für die Dauer dieser Signale anzuhalten.
Dem digitalen Datenverarbeitungsgerät werden Signale von den
Steuersystem (nicht dargestellt) über die System-Steuer-Samrael-
409808/1059
_ 17 _ 2338463
leitung 34 und die Interface-Einheit 32 zugeführt. Su Beginn
eines jeden Programms wird eine Reihe Makroprogramm-Anweisungen
in dem Makroprogramm-Speicher 13 gespeichert, der Makro-Anweisungs-Zähler
25 wird auf seinen Änfangswert gesetzt, der Sättigungszähler 30 wird auf Null gesetzt, Anfangswerte für die
I-, O-, N- und R-Register 26 v/erden in einera Speicher (nicht
gezeigt) gespeichert, und das Skalierun<jsregister 31 wird auf seinen richtigen Wert durch Daten gesetzt, die von dem Steuersystem
über die Interface-Einheit 32 übertragen werden. Das
Programm beginnt dann und wird vollständig ausgeführt, sofern es nicht durch über die Haltesignale-Eingangsleitung 33 eingekoppelte
Haltesignale eine Verzögerung erfährt.
Fig. 2 zeigt, wie eine Hehrzahl digitaler Datenverarbeitungsgeräte 35 in einem Hulti-Datenverarbeitungs-Äufbau mittels einer
gemeinsamen Steuereinheit 36 in Reihe geschaltet werden können.
Dieser spezielle Aufbau kann als "Pipeline"-Aufbau bezeichnet wiöKäen. Jede Stufe des IIPipeline"-Aufbaus kann mehr als ein
Öätenverarbeitungsgerät enthalten. In diesem Aufbau führt jedes Datenverarbeitungsgerät nur einen kleinen Teil des insgesamt
zu lösenden Datenverarbeitungsproblems durch, so daß die Durchgangsleistung
des Systems erheblich erhöht werden kann. Für zusätzliche Speichermöglichkeiten sorgt ein Sp.eichermodul 37 für
große Datenmengen, wobei der Zugang zu diesem Speicher durch eine Speicher-Steuereinheit 40 gesteuert wird. Jedem der einzelnen
Datenverarbeitungsgeräte 35 werden durch einen Referenzadressen-Generator 41 externe Referenzadressen zugeführt. Diese Adressen
können zur Ausführung von Anweisungen verwendet v/erden. Wenngleich hier nur drei Datenverarbeitung^geräte 35 gezeigt worden
sind, so versteht es sich doch, daß je nach Anwendungsfall mehr
oder weniger solche Datenverarbeitungsgeräte Einsatz finden können.
Fig. 3 ist ein weiter detailliertes Funktions-Blockschaltbild der Speichermodulen 21 mit wahlfreiem bzw. direktem Zugriff sowie
der Eingangs- bzw. Ausgangsdatenschalter 23, 24. Aus diesem
409308/1059
233846S
Blockschaltbild ist ersichtlich, daß Daten zu den einzelnen Speichermodulen 21 über den Bingangsdatenschalter 23 zugeführt
werden. Die Eingangsdaten für den Eingangsdatenschalter 23 stammen von der arithmetischen Einheit 11 und der Interface-Einheit
32. Durch Dekodierung der Bits des Mikroprogramms erzeugte Steuersignale wählen aus, welche der dem Eingangsdatenschalter
23 zugeführten Eingangsdaten selektiv mit den Speichermodulen 21 gekoppelt v/erden sollen. Den einzelnen Speichermodul««.
21 werden Adressen durch den Speicheradressengenerator 2O (MAG) der Fig. 1 zugeführt. Die Adressen werden durch den Adressen-
e
genrator in Abhängigkeit von Steuersignalen erzeugt, die durch Dekodierung der Mikroprogramm-Anweisungs-Wörter erhalten wurden. Die Daten-Ausgangssignale der einzelnen Speichermodul«! 21 werden mit dem Ausgangsdatenschalter 24 gekoppelt. Die Ausgangssignale des Ausgangsdatenschalters 24 werden mit der arithmetischen Einheit 11 gekoppelt. Es führen außerdem zwei Datenleitungen von dem Ausgangsdatenschalter 24 zu der Datenverarbeitungsgerät-Ausgangsdaten-Sammelleitung. Vier getrennte Datenleitungen verbinden den Ausgangsdatenschalter 24 mit der arithmetischen Einheit 11. Bei komplexen Berechnungen überträgt jede dieser Datenleitungen sowohl den reellen als auch den imaginären Anteil einer komplexen Zahl an die arithmetische Einheit 11. Der Ausgangsdatenschalter erhält Steuersignale, die bestimmen, welche Eingangsdatenleitung mit welcher Datenausgangsleitung von der Steuerlogik 14 (Fig. 1) gekoppelt werden soll. Diese Signale werden durch Dekodierung der Ausgangsdaten-Sammelleitungs-Teile des Mikroprogramm-Anweisungs-Wortes gewonnen.
genrator in Abhängigkeit von Steuersignalen erzeugt, die durch Dekodierung der Mikroprogramm-Anweisungs-Wörter erhalten wurden. Die Daten-Ausgangssignale der einzelnen Speichermodul«! 21 werden mit dem Ausgangsdatenschalter 24 gekoppelt. Die Ausgangssignale des Ausgangsdatenschalters 24 werden mit der arithmetischen Einheit 11 gekoppelt. Es führen außerdem zwei Datenleitungen von dem Ausgangsdatenschalter 24 zu der Datenverarbeitungsgerät-Ausgangsdaten-Sammelleitung. Vier getrennte Datenleitungen verbinden den Ausgangsdatenschalter 24 mit der arithmetischen Einheit 11. Bei komplexen Berechnungen überträgt jede dieser Datenleitungen sowohl den reellen als auch den imaginären Anteil einer komplexen Zahl an die arithmetische Einheit 11. Der Ausgangsdatenschalter erhält Steuersignale, die bestimmen, welche Eingangsdatenleitung mit welcher Datenausgangsleitung von der Steuerlogik 14 (Fig. 1) gekoppelt werden soll. Diese Signale werden durch Dekodierung der Ausgangsdaten-Sammelleitungs-Teile des Mikroprogramm-Anweisungs-Wortes gewonnen.
Der Eingangsdatenschalter 23 erhält auch einen Eingang von der Interface-Einheit 32. über diese Interface-Einheit 32 führt das
Steuersystem dem Datenverarbeitungsgerät Programme und Daten zu.
Fig. 4 ist ein Funktions-Blockschaltbild des Speicheradressengenerators
20 (Fig. T). Dieser Speicheradressengenerator 2O enthält Zähler C1 bis C5, die in Fig. 4 mit den Bezugszeichen
409808/1059
233846S
- 19
50 und 50a bis 50c sowie 51 bis 54 bezeichnet sind, eine Zähler-.
Wähllogik 56 sowie eine weitere Logik 55 für Verschiebungs (offset)-, Schritt (increments)- und Blockformat (block size)
-Betrieb. Die Funktion des Speicheradressengenrat'ors, wie er mit Fig. 4 wiedergegeben ist, besteht darin, Adressenfolgen für die
Speichermodul^n 21 zu erzeugen, wie das durch die Ausführung der ilakroprogramm-Anwoisungs-Worter gefordert wird. Diese Adressen
werden durch die Zähler-Wähllogik 56 in Abhängigkeit von durch die Steuerlogik 14 (Fig. 1) in Abhängigkeit von der Dekodierung
der Mikroprogramm-Anweisungs-Wörter erzeugten Signalen mit Speicheradressen-Sammleleitungen 42 bis 45 gekoppelt.
Die mit den Bezugszeichen 50 und 50a bis 50c versehenen Zähler
C1 sind Binärzähler für die Erzeugung von Adressen, die die richtige Bitzahl haben, um alle Stellen in den Speichermodulen
21 mit direktem Zugriff (Fig. 1) zu adressieren. Die" von diesem
Zähler erzeugte normale binäre Adressenfolge kann in dreierlei Hinsicht modifiziert werden. Jede dieser Modifikationen erfolgt
durch DAtenwörter, die dem Datenverarbeitungsgerät als Teil der normalen Programme zugeführt v/erden. x
Jede dieser Modifikationen wird gesondert behandelt, jedoch versteht
es sich, daß eine bestimmte Adressenfolge durch eine, Alle oder jede Kombination dieser Modifikationen modifiziert
wexdsa 3camx,
Die erste und wohl einfachste Modifikation der Adriessenfolge
ist eine Verschiebung. Eine Verschiebung (offset) ist einfach ein digitales Datenwort, das die erste von einem Adressenzähler
zu erzeugende Adresse spezifiziert. Jeder der Zähler 50, 50a 5oc kann in dieser Weise modifiziert werden. Wenn beispielsweise
die
die erste Adresse durch den Adressenzähler C1 (Adressenzähler 5O) zu erzeugende Adresse 128 ist, so wird eine Verschiebungs-Zahl 123 in einem den Ci-Zählern zugeordneten Speicher gespeichert, und diese Zahl v/ird aus dem Speicher ausgelesen und bei Beginn
die erste Adresse durch den Adressenzähler C1 (Adressenzähler 5O) zu erzeugende Adresse 128 ist, so wird eine Verschiebungs-Zahl 123 in einem den Ci-Zählern zugeordneten Speicher gespeichert, und diese Zahl v/ird aus dem Speicher ausgelesen und bei Beginn
409808/1059
2338463
der Ausführung der diesen Zähler verwendenden Anweisung in diesen Zähler geleitet, so daß die von diesem Zähler erzeugte Adressenfolge
mit diesem Wert beginnt.
Die zweite den Zählern C1 bis C5 einprägbare ?"odifikatlon ist
eine "Blockformat" (block size)-Modifikation. "Blockformat"
entspricht dabei einfach einer Zahl, die in einem Speicher gespeichert ist, der die Anzahl von dem Zähler zu erzeugender
unterschiedlicher Adressen bestimmt. Wenn beispielsweise hundert aufeinanderfolgende Adressen von dem Zähler 50 erzeugt
werden sollen,so wird eine Blockformat- oder Blockgrößen-Zahl
100 in einem diesem Zähler zugeordneten Speicher gespeichert. Diese Zahl wird der Verschiebungszahl zugeschlagen, und die
Summe wird fortlaufend mit dem Inhalt des Zählers verglichen. Wenn der Vergleich anzeigt, daß die beiden Werte gleich sind,
so wird ein Signal erzeugt, das anzeigt, daß die Adressenfolge komplett ist.
Die dritte Modifikation, mit der die Zähler C1 bis C5 beaufschlagt
werden können, 1st eine Schritt- oder Inkrementzahl. Das ist eine Digitalzahl, die in einem Speicher gespeichert
wird und angibt, wie oft der Zähler zwischen aufeinanderfolgenden,
unterschiedlichen Adressen weitergeschaltet werden soll. Wenn beispielsweise die ausgeführte Anweisung verlangt, daß Adressenfolgen
erzeugt werden, so daß jede zweite Folgeadresse Übersprungen wird, so wird die Schritt- oder Inkrementzahl auf
Zwei eingestellt. Jedesmal, wenn eine Speicheradresse erzeugt wird, wird dann der Adreesenzähler um zwei binäre Zählungen
weitergeschaltet, um die nächste Adresse der Folge zu erzeugen. Das erzeugt Adressen wie etwa Null, Zwei, Vier, Sechs, Acht,
Zehn etc. Ungerade Adressenfolgen wie Eins, Drei, Fünf, Sieben, Neun, Elf etc. können erzeugt werden, indem die Verschiebung
auf Eins und das Inkrement auf Zwei eingestellt wird. Es sind sechzehn Speicherstellen vorgesehen, um Werte für jedes der
vorstehend erläuterten Modifikationen zu speichern. Die Speicher-
409808/1059
_21_ 2338463
stelle für jede Modifikation wird durch die Makro-Anweisung angewählt.
Die bei den Adressen-Modifikationen zu verwendenden Werte werden in diesen Speichern durch das Steuersystem gespeichert,
bevor die Ausführung eines speziellen Programms beginnt.
In Fällen, wo große Schritt- oder Inkrement-Werte verwendet
werden sollen, kann die Operationsgeschwindigkeit erhöht werden, indem die Inkrementzahl dem Inhalt des modifizierten Zählers
unterVerwendung eines herkömmlichen parallelen Digitaladdierers hinzugefügt wird.
Der mit Fig. 4 wiedergegebene Speicheradressengenerator hat
vier zusätzliche Zähler C2 - C5 mit den Bezugszeichen 51 Jeder dieser Zähler ist in der Lage, spezielle Adressenfolgen
zu erzeugen, die für komplizierte Datenverarbeitungsprobleme
verwertbar sind.
Der Zähler C2 (51) ist ein Bitreihenfolge-Umkehr-Zähler. Dieser Zähler läßt sich am besten als einfache Inversion der Reihenfolge
der Bits eines normalen binäten Zählers verstehen. Der
Klarheit wegen sind alle Zählungen eines 3-Bit-Binärzählers und die umgekehrten Bit-Gegenstücke nachstehend aufgeführt:
ti4*>y~ >7«ί,ιΛ^ Bitreihenfolge-ümkehr-Binar-Zähler zähler
000 000
001 100
010 010
011 110
100 001
101 101
110 011
111 111
409808/1059
Der mit 52 bezeichnete Zähler C3 ist ein Bit-Verdreh-Zähler♦
•Dieser Zähler läßt sich am besten als eine Adressenfolge beschreiben,
die durch die Inversion des höchstv/ertigen Bits eines normalen Binär-Zählers erhalten wird. Der Deutlichkeit
wegen sind die Bits eines normalen Binär-Zählers und die Gegenstücke eines Bit-Verdreh-Zählers nachstehend aufgeführt:
Binär-Zähler | Bit-Verdreh-Zähler |
000 | loo |
001 | 1O1 |
010 | ' 110 |
011 | 111 |
100 | 000 - |
101 | 001 |
110 | 010 |
111 | on |
Der Umkehr-Zähler und der Bit-Verdreh-Zähler erweisen sich als besonders günstig, wenn Schnelle Fourier-Transformations-Makro-Anweisungen
implementiert werden sollen.
Der mit 53 bezeichnete. Zähler C4 stellt normalerweise keinen
Bestandteil der eigentlichen Datenverarbeitungs-Hardware dar. Er bildet vorzugsweise Hardware zur Erzeugung von Adressenfolgen
außerhalb des Datenverarbeitungsgerätes. Dieses Merkmal ist besonders nützlich bei der Erzeugung von Frequenzverschiebungen
in Verbindung mit digitalen Filter- und ähnlichen Problemen.
Der mit 54 bezeichnete Zähler C5 kann entweder der Komplement-,
der ümgekehrte-Reihenfolge- oder der Normale-Reihenfolge-Zähler
sein.
Alle vorstehend erläuterten Zähler lassen sich höchst einfach durch einen normalen Binärzähler verwirklichen, dessen Ausgang
zunächst durch die Inkrementzahl, die Verschiebung, die Block-
409808/1059
~23~ 2338465
größe lind dann verbleibende Modifikationen, je nach Bedarf,
modifiziert wird. Jeder dieser Zähler Cl bis C5 kann auf diese
Weise unabhängig, modifiziert werden.
Fig. 5 ist ein Funktions-BlockschaltbiId der arithmetischen Einheit
11 (Fig. 1). Die arithmetische Einheit weist vier Multiplikatoren 60 bis 63 und sechs Addierer 64 bis 69 auf. Die Eingänge
zu diesen Multiplikatoren und Addierern sind mit einer Reihe Multiplexern versehen, so daß diese Einheit die arithmetischen
Datenverarbeitungs-Operationen ausführen kann, die während der Ausführung der arithmetischen und Datenverarbeitungs-Anweisungen
notwendig sind. Die arithmetische Einheit ist speziell so aufgebaut,
daß die Durchführung der Schnellen Fourier-Transformation vereinfacht werden kann, weil dies eine der komplizierteren Berechnungen
ist, die das Datenverarbeitungsgerät durchführen können soll. Es ist allgemein bekannt, daß jede Stufe dieses
Algorithmus zwei komplexe Multiplikationen und zwei komplexe Additionen erfordert, um sowohl die reellen als auch die imaginären
Koeffizienten zu berechnen. Dafür wird mittels der oben erwähnten Multiplikatoren und Addierer in der ari£hemtischen Einheit
11 gesorgt.
Die arithmetische Einheit weist ferner vier Datenregistefc, die
nicht weiter ins einzelne gehend gezeigt sind, für diö SSahlenzufuhr
zu der arithmetischen Einheit auf. Die arithmetische Einheit ist so ausgelegt, daß alle Bits eines gewählten Registers
als ein einzelnes digitales Wort oder als zwei digitale Wörter behandelt werden können, wobei jedes Wort die gleiche Anzahl Bits
hat. Diese Register sind willkürlich als Register a, b, c und d bezeichnet worden. Die Dateneingänge von diesen Registern zu der
arithmetischen Einheit,, wie sie in Fig. 5 gezeigt ist, sind mit Legenden versehen, die den Ursprung des Datenworts anzeigen.
Beispielsweise f üiirt einer der Eingänge zu dem mit MPXMO bezeichneten
Multiplexer 75 die oberen Bits des Registers c, wobei dieser Eingang mit RCU bezeichnet ist. In gleicher Weise führt
409808/1059
einer der Eingänge zu dem mit MPXM3 bezeichneten Multiplexer 76
die unteren Bits des Registers c, so daß dieser Eingang mit RCL bezeichnet ist. Bei jeder dieser Bezeichnungen bezieht sich der
Buchstabe R auf "Register", der mittlere Buchstabe - im vorliegenden Fall c - auf das Register, von dem die Zahl stammt, und der
letzte Buchstabe darauf, ob es sich um die unteren oder die oberen Bits in diesem Register handelt, wobei "U" für die oberen
und "L" für die unteren Bits steht. Alle weiteren Dateneingänge zu den Ilultiplexern der ari tarne tischen Einheit der Fig. 5 sind
mit entsprechenden identifizierenden Legenden versehen.
Der mit üeia Bezugszeichen 60 versehene Multiplikator 0 ist so
angeschlossen, daß er die oberen Bits des Registers "a" entweder mit den oberen Bits des Registers "c" oder mit den oberen
Bits des Registers "b"'multiplizieren kann. Ob die oberen Bits des Registers "b" oder die oberen Bits des Registers "c" mit den
oberen Bits des Registers "a" multipliziert werden, wird durch ein Logik-Signal bestimmt, das mit einem Vorbereitungs-Singang
des Multiplexers 75 gekoppelt ist. Für einen Wert des mit dem Eingang 77 gekoppelten Signals gelangen die oberen Bits des
Registers "b" zu dem Multiplikator 60, während für den anderen Wert des Logik-Signals die oberen Bits des Registers "c" mit
diesem Multiplikator gekoppelt werden. Der Multiplikator 60 weist außerdem einen Skalier-Eingang 78 auf. Ein mit diesem Eingang gekoppeltes
logisches "EINS"-Signal verschiebt die Daten um ein Bit nach rechts, um Überläufe zu verringern, die infolge anschließender
Additionen auftreten können, die von den Addierern der arithmetischen Einheit durchgeführt werden. Diese logischen
Signale werden durch Dekodierung von Skalier-Zahlen erhalten, die in dem Skalierregister 31 (vgl. Fig. 1) gespeichert sind.
Der mit dem Bezugszeichen 60 versehene Multiplikator 0 ist identisch
mit den mit Bezugszeichen 61, 62 bzw, 63 versehenen Multiplikatoren 1, 2 bzw. 3. Mit Bezugszeichen 80, 9 8 bzw. 76 versehene
Multiplexer MPXMl, MPXM2 bzw. MPXM3 sind identisch mit de;n
409808/1059
zuvor erläuterten, mit dem Bezugszeichen 75 versehenen Multiplexer
MPXMO. Jedoch erhalten diese letztgenannten Multiplexer, wie mit den Legenden angedeutet, Eingangsdaten von unterschiedlichen
Quellen. Im Hinblick auf ihre Identität mit dem Multiplexer 75 werden die Multiplexer 80, 9 8 bzw. 76 jedoch nicht
weiter beschrieben.
Ein mit dem Bezugszeichen 64 versehener Addierer 0 hat zwei Dateneingänge. Einer dieser Eingänge ist der Produktausgang des
Multiplikators 0 (60), während der andere Eingang das Ausgarigssignal
des mit dem Bezugszeichen 79 versehenen Multiplexers M=PXAO führt. Die Dateneingänge des Multiplexers MPXAO führen die
oberen Bits der Register "b", "c" und "d" sowie den Produktausgang
des Multiplikators 1. Mit dem Vorbereitungs-Eingang 85 dieses Multiplexers gekoppelte Vorbereitungs-Signale bestimmen, welches
der Dateneingangssignale mit dem Ausgang dieses Multiplexers gekoppelt wird. Es versteht sich, daß der Vorbereitungs-Eingang
dieses Multiplexers sowie weiterer Multiplexer zwar als Einzelleitung
wiedergegeben ist, daß es sich dabei irc allgemeinen aber um Multi-Bit-Signale handelt.
Der Ausgang des Addierers 0 (64) ist mit einem Dateneingang der
/lultiplexer MPXA2B bzw. MPXA4B gekoppelt, die mit den Bezugszeichen 86 bzw. 87 versehen sind. Es führen drei weitere Eingänge
zu dera Multiplexer MPXA2B (86) von den oberen Bits der Register "b", "c" und "d". Der Ausgang dieses Multiplexers ist mit dem
Eingang des mit dem Bezugszeichen 66 versehenen Addierers 2 gekoppelt.
Sin i'lultibit-Vorbereitungssignal ist mit dem VorbereituncjS-Eingang
88 dieses _'lultiple:cers 86 gekoppelt. Dieses
Signal ist ixa allgemeinen ein Multi-Bit-Signal und bestimmt,
welcher der Dateneingänge mit dem Datenausgang dieses Multiplexers gekoppelt wird. Der andere Eingang des Addierers 2 (66)
ist der Datenausgang des Multiplexers MPXA2A. Die Eingänge des i.Iultiplexers MPXA2A sind der Ausgang eines Spei eher registers O
(iait R0OU bezeichnet) , der Ausgang des Addierers 4 (Bezugs-
409808/1059
zeichen 67) und die oberen Bits der Register "b" bzw. "c". Der
Ausgang des Addierers 2 ist mit einem Dateneingang eines mit dem Bezugszeichen 90 versehenen Multiplexers MPX0OÜ gekoppelt. Der
andere Eingang dieses Multiplexers ist eine Sättigungszahl (mit
SAT) bezeichnet), um den Ausgang dieses Multiplexers auf die Maximal-Große zu setzen, die repräsentiert werden kann, wenn
während einer arithmetischen Operation ein überlauf aufgetreten ist. Der Ausgang dieses Multiplexers ist zu den Speicherregistern
zurückgekoppelt, die einen Bestandteil des Datenverarbeitungsgeräts bilden, oder aber zu den Speichermoduln 21 (Fig. 1), und
zwar über den Eingangsdatenschalter 23 im Einklang mit den Forderungen bei der Ausführung der Anweisungen. Adressen für die
Speichermoduln werden von dem Speicheradressengenerator der Fig.4 geliefert.
Der Ausgang des Addierers 0 (64) und derAusgang des Multiplexers 0 (60) bilden zwei Dateneingänge für den Multiplexer MPXA4B. Ein
Vorbereitungssignal ist mit dem Datenwähl-Eingang 95 dieses Multiplexers gekoppelt und bestimmt, welches dieser Signale mit
dem Ausgang gekoppelt wird.
Der mit dem Bezugszeichen 97 versehene Multiplexer MPXA4A erhält
Eingangsdaten von dem Addierer 2 (66) und den oberen Bits der Register "b" und "d". Der Ausgang dieses Multiplexers 9 7
bildet zusammen mit dem Ausgang des mit dem Bezugszeichen 87 versehenen Multiplexers MPXA4B die Dateneingänge für den Addierer
4 (Bezugszeichen 67). Das Datenausgangssignal des Addierers 4,
das Datenausgangssignal des Addierers 3 (Bezugszeichen 6 8) und.
ein Sättigungssignal bilden den Dateneingang des mit dem öezugszeichen
97' versehenen Multiplexers MPX01U. Ein mit dem Vorbereitungs-Eingang 98 gekoppeltes Vorbereitungssignal wählt,
welches dieser Signale mit dem Ausgang dieses Multiplexers 97' gekoppelt wird. Der Ausgang des Multiplexers 97' ist zu den
arithmetischen Registern der arithmetischen Einheit 11 oder zu den Speichermoduln 21 in Übereinstimmung mit den Forderungen der
409808/1059
ausgeführten Anweisungen über den Eingangsdatenschalter 23 zurückgeführt.
Der Multiplikator 2 (Bezugszeichen 62) erhält als Dateneingangssignale
die oberen Bits des Registers "a" und die unteren Bits des Registers "b" über den Multiplexer MPXM2 (Bezugszeichen 9 8).
Der Ausgang des Multiplikators 2 (62) bildet einen Eingang des Addierers 1 (65) , während der andere Eingang dieses Addierers
das Ausgangssignal des irdt dem Bezugs zeichen 99 versehenen Multiplexers MPXAl ist.
das Ausgangssignal des irdt dem Bezugs zeichen 99 versehenen Multiplexers MPXAl ist.
Der Multiplexer MPXAl (99) erhält als Datenexngangssignale die
unteren Bits der Register "b", "c" und "d" sowie das Ausgangssignal
des Multiplikators 3 (Bezugszeichen 63). Ein Eingang des
Multiplikators 3 sind die unteren Bits des Registers "a"tund der
andere Eingang sind entweder die oberen Bits des Registers "b" oder die unteren Bits des Registers "c", wie das durch das mit
dem Vorbereitungs-Cingang 105 des Multiplexers MPXM3 gekoppelte
Vorbereitungssignal bestimmt wird. Der andere Eingang des Multiplikators
3 (63) sind die"unteren Bits des Registers "a".
Der Ausgang des Multiplikators 3 (63) und die unteren Bits der Register "b", "c" und "d" bilden die Eingangssignale des Multiplexers
MPXAl. Das Ausgangssignal dieses Multiplexers MPXAl und
das Ausgangssignale des 24ultiplikators 2 (62) bilden zwei Eingangssignale,
des Addierers 1 (65).
Dcis Ausgangssignal des Addierers 1 bildet eines der Eingangssignale des mit de:ä Bezugszeichen 106 versehenen Multiplexers
MPXA33'. Die weiteren Eingänge dieses Multiplexers sind die
unteren Bits der Datenregister "b", "c" und "d", wobei ein mit dem Vorbereitungseingang 107 dieses Multiplexers gekoppeltes
Vorbareitungssignal bestimmt, welches dieser Eingangssignal
mit dem Ausgang dies Multiplexers 106 gekoppelt wird. Das Aus-9angssiynal dieses Multiplexers bildet einen der Eingänge des
MPXA33'. Die weiteren Eingänge dieses Multiplexers sind die
unteren Bits der Datenregister "b", "c" und "d", wobei ein mit dem Vorbereitungseingang 107 dieses Multiplexers gekoppeltes
Vorbareitungssignal bestimmt, welches dieser Eingangssignal
mit dem Ausgang dies Multiplexers 106 gekoppelt wird. Das Aus-9angssiynal dieses Multiplexers bildet einen der Eingänge des
409808/1059
233846
— Zo — . '
Addierers 3 (68). Der anäere Dateneingang des Addierers 3 ist
der.Datenausgang des mit dem Bezugszeichen 108 versehenen Multiplexers
MPXA3A. Die Dateneinyangssignale dieses Multiplexers sind das Ausgangssignal des Addierers 5 (69) und die unteren
Bits der Register "b", "d" und "0". Das mit dem Ausgang dieses Multiplexers gekoppelte Signal wird durch ein Vorbereitungssignal
bestimmt, das mit dem Vorbereitungs-Eingang 109 dieses Multiplexers gekoppelt ist.
Das Ausgangssignal des Addierers 3 ist mit dem Multiplexer MPX0OL
gekoppelt, der mit dem Bezugszeichen 110 versehen ist. Der andere
Eingang dieses Multiplexers MPX0OL ist ein Sättigungssignal, dass eine Addition durchgeführt wurde, die mit einem überlauf verbunden
ist. pas mit dem Ausgang dieses Multiplexers gekoppelte Signal wird durch ein Vorbereitungssignal bestimmt, das mit dem Vorbereitungs-Eingang
115 dieses Multiplexers gekoppelt ist.
Der mit dem Bezugszeichen 116 versehene Multiplexer MPXA5A erhält
als Eingangssignale das Ausgangssignal des Multiplikators (63) bzw. des Addierers 1 (65). Der Ausgang dieses Multiplexers
ist mit einem Eingang des Addierers 5 (69) gekoppelt. Der andere Dateneingang des Addierers 5 ist der Ausgang des mit dem Bezugs-zeichen
117 versehenen Multiplexers MPXA5B. Die Eingänge dieses Multiplexers sind der Ausgang des Addierers 3 (68) und die
unteren Bits der Register "b" und "d". Welches dieser Eingangssignale mit dem Ausgang dieses Multiplexers und dann wiederum mit
dem Eingang des Addierers 5 gekoppelt wird, wird durch ein Wählsignal bestimmt, das mit dem entsprechenden Eingang 118 dieses
Multiplexers gekoppelt ist. Der Ausgang des Addierers 5 ist - gemeinsam mit einem Sättigungssignal - mit den Dateneingängen
eines mit dem Bezugszeicheh 119 versehenen Multiplexers MPX01L
gekoppelt. Welches dieser Signale mit.dem Ausgang dieses Multiplexers
gekoppelt wird, wird durch ein mit dem Vorbereitungs-Eingang
120 dieses Ilultiplexers gekoppeltes Vorbereitungs-Signal
£09808/1059
2338A6S
bestimmt. Das Ausgangssignal dieses Multiplexers wird wieder über den Dateneingangsschalter 23 in Übereinstiinmung mit den
Forderungen der Ausführung der Anweisung zu den Datenregistern oder aber den Speichermoduln 21- zurückgeführt.
Wie zuvor erläutert, wird das digitale Datenverarbeitungsgerät durch ein Mikroprogramm gesteuert, das es ermöglicht, die von
den Datenverarbeitungsgerät ausgeführten Anweisungen während der
Zeit des Aufbaus des Datenverarbeitungsgerätes zu ändern, ohne den grundlegenden Aufbau des Datenverarbeitungsgerätes im wesentlichen
abzuwandeln. Um dieses Ergebnis zu erzielen, werden Mikroprogramm-Anweisungs-Wörter
in dera Mikroprogrammsp'eicher 15 (Pig. 1) gespeichert, und diese Wörter werden durch die Steuerlogik
14 ausgelesen, um die Signale zu erzeugen, die für die Steuerung der arithmetischen und Speichereinheiten benötigt
werden. Ein Mikroprogramm-Aufbau, der sich als sehr brauchbar erwiesen hat, ist mit Fig. 6 veranschaulicht. Das grundlegende
Mikroprogramm-Anweisungs-Wort enthält ein digitales 186-ßit-Datenwort
126. Das grundlegende Mikro-Anweisungs-Wort ist ferner
■in zwei Abschnitte unterteilt, von denen jeder einer Einzelfunktion
zugeordnet ist. Beispielsweise sind zehn Bits dieses Mikro-Anweisungs-Worts als Folge-Bits bezeichnet und in Fig. 6
mit dem Bezugszeichen 127 versehen worden. Neun der der Folge zugeordneten
Bits geben die Adresse in dem Mikroprogrammspeicher an, aus dem das nächste Ilikro-Anweisungs-Wort 126 ausgelesen wird.
Dadurch können die in diesem Speicher gespeicherten Programmwörter in jeder Reihenfolge ausgelesen werden, wie sie durch das aufgeführte
Programm gefordert wird. Die Folge- oder Sequenz-Bits 127 des Mikro-Anweisunga-Wortes enthalten außerdem ein Bit 128
für verzögerte Auslesung, Dieses Bit ermöglicht es, dag nachfolgende
Mikro-Anweisungs-Programm auszulesen, wenn Teile der beiden Anweisungen gleichzeitig ohne gegenseitige Beeinträchtigung durch
das Datenverarbeitungsgerät ausgeführt werden können* Wenn beispielsweise
die laufende Anweisung eine arithmetische Operation durchführt, bei der von einem der Speicheifmoduln 21 Gebrauch ge-
^09308/1059
233848.$
macht wird, und die nachfolgende Anweisung eine Ausgangs-Anweisung
ist, die von einem anderen Speichermodul 21 Gebrauch macht, so können die beiden Anweisungen ohne gegenseitige Beeinträchtigung
überlappt werden. In diesem Fall würde das Bit 128 für verzögerte Ablesung auf den Wert einer logischen EINS gesetzt und
die Auslösung der nachfolgenden Anweisung ermöglichen, während die laufende arithmetische Anweisung ausgeführt wird. Der Wert dieses
Merkmals hängt offensichtlich in gewissem Umfang von dem speziellen
Aufbau der arithmetischen und Speichereinheiten ab. Ein Gesichtspunkt, der eine weitgehende Ausnutzung dieses Merkmals
ermöglicht, ist die Herstellung der Speichermoduln 21 (Fig. 1) in Form unabhängiger Speicher, so daß die oben erläuterten arithmetischen
Eingangs- und Ausgangsfunktionen gleichzeitig ausgeführt
werden können. Vier Bits der Mikro-Anweisung sind der Steuerung des Speicheradressengenerators zugeordnet. Diese
Steuerbits sind in Fig. 6 mit dem Bezugszeichen 129 versehen. Diese Steuerbits 129 dienen zur Steuerung der Zähler-Wähllogik
(Fig. 4), um zu bestimmen, welcher der Zähler Cl bis C5 mit den Speicheradressen-Sammelleitungen 42 bis 45 gekoppelt werden soll,
um Adressen zu erzeugen. In dem wiedergegebenen Beispiel sind nur zwei Wahlmöglichkeiten für jede der Speicheradressen-Sammelleitungen
42 bis 45 vorgesehen, so daß ein Bit dieses Wortes jeder Speicheradressen-Sammelleitung 42 bis 45 zugeordnet werden
kann, wobei der logische Wert dieses Signals anzeigt, welcher Adressen-Zähler verwendet werden soll.
Zwölf Bits der Mikro-Anweisung sind der Speicheradressen-Sammelleitung-Steuerung
zugeordnet. Diese Wörter sind mit dem Bezugszeichenl30 versehen» Das Speicheradressen-Sammelleitungs-Steuer-Wort
130 bestimmt, welche der Speicheradressen-Sammelleitungen 42 bis 45 mit den einzelnen Speichermoduln 21 der Fig. 3 gekoppelt
wird. In Fig. 3 ist jeder der Speichermoduln 21 aufeinanderfolgend mit den Bezeichnungen MO bis M5 versehen worden,
um zu verdeutlichen, daß es sich dabei um unabhängige Speichermoduln handelt» Das Speicheradressen-Sammelleitungs-Steuerfoort
409808/1059
233846
der Fig. 6 1st ebenfalls in sechs Zwei-Bit-Teile unterteilt worden, die mit den Bezeichnungen MO bis M5 versehen wurden.
Diese Bezeichnungen zeigen an, welcher Teil dieses Wortes eine Speicheradressen-Sammelleitung für einen speziellen Speichermodul
wählt. Beispielsweise wählt der Zwei-Bit-Teil des Speicheradressen-Steuerworts 130, der mit MO bezeichnet ist, welche der
Speicheradressen-Sammelleitungen 42 bis 45 der Fig. 4 mit aera
Speichermodul MO der Fig. 3 für die Ausführung einer speziellen Anweisung gekoppelt wird. In gleicher Weise wählen die mit Ml
bis H5 bezeichneten Teile des Steuerworts 130 die Speicheradressen-Sammelleitung,
die in Verbindung mit entsprechenden Speichermoduln Ml bis M5 verwendet werden soll.
Weitere 32 Bits des Mikro-Anweisungs-Wortes sind der Steuerung
des Ausgangsdatenschalters 24 der Fig. 3 zugeordnet,. so daß der
gewählte Speichermodul 21 oder externe Eingangsdaten mit der gewählten Daten-Sammelleitung gekoppelt werden. Dieser Teil des
Mikro-Anweisungs-Wortes 126 ist mit 136 bezeichnet.
Wie aus Fig. 3 ersichtlich, hat der Ausgangsdatenschalter 24 sechs Ausgangs-Sammelleitungen. Vier dieser Sammelleitungen
führen zu der arithmetischen Einheit und sind mit den Registern "a", "b", "c" sowie "d" gekoppelt. Diese Register wurden zuvor
in Verbindung mit dem Funktions-Blockschaltbild der arithmetischen
Einheit erläutert. Der Eingang des Ausgangsdatenschalters 24
stammt von den Speichermoduln 21 sowie von einer externen Eingangsdaten-Sammelleitung.
Das Ausgangsdaten-Steuerwort 131 ist in Vier-Bit-Segmente unterteilt worden, die jeweils einem dieser
Eingänge zugeordnet sind. Beispielsweise ist das mit MO bezeichnete Segment dem Eingang vom Speicnenaodul MO der Fig. 3 zugeordnet.
Jedes Segment dieses Ausgangsdaten-Sammelleitungs-Steuerwortes enthält vier Bits. Drei der Bits werden dekodiert,
um zu bestimmen, mit welcher der Ausgangs-Sainmelleitungen der
zugeordnete Eingang gekoppelt werden soll, und das andere Bit ist ein Vorbereitungs-Bit, das die Einheit, mit eier der Ausgang
409808/10 59
233846t
gekoppelt wird, vorbereitet, so daß die Daten in diese Einheit geschrieben werden können.
Die Teile des Ausgangsdaten-Sainmelleitungs-Steuerwortes 131,
die mit T-II bis M5 bezeichnet sind, sind den Speichermoduln M1
bis M5 zugeordnet und verhalten sich identisch wie der HO-Teil,
der oben im Hinblick auf den Speichermodül MO erläutert wurde.
In gleicher Weise entspricht der Teil des Steuerwortes 131, der mit DE bezeichnet ist, dem externen Dateneingang des Ausgangsdatenschalters
24, und auch dieser Teil DE verhält sich ähnlich wie die den Speichermoduln 21 zugeordneten Teile.
Aus der vorstehenden Erläuterung ergibt sich, daß die Bits des Steuerwortes 131 des ""ikro-Änweisungs-Wortes 126 so gewählt
werden können, daß jeder bestimmte Dateneingang des Ausgangsdatenschalters 24 mit jeder der Ausgangsdaten-Samraelleitungen
dieses Schalters so gekoppelt v/erden kann, wie die Ausführung der speziellen Anweisung dies erfordert.
Ein weiterer 22-Bit-Teil des Mikro-Anweisungs-Wortes ist der
Steuerung des Eingangsdaterischalters 23 in ähnlicher T'Teise
zugeordnet, wie das oben im Hinblick auf den Ausgangsdatenschalter
24 erläutert wurde. Dieser Teil des Wortes ist mit dem Bezugszeichen 135 versehen.
In Fig. 6 ist der Eingangsdaten-Sammelleitungs-Steuerteil des Mikro-Anweisungs-Wortes in sechs Drei-Bit-Teile unterteilt worden,
die mit den Bezeichnungen MO bis ?15 versehen wurden, wobei diese Bezeichnungen den Speichermoduln ·τ0 bis M5 der Fig. 3 entsprechen.
Sines der drei Bits ist ein Vorbereitungs-Bit, das den gewählten Speichermodul so vorbereitet, daß ira die Information
eingeschrieben werden kann, während die beiden anderen Bits dekodiert werden, um zu wählen, welcher der vier Dateneingänge
des Eingangsdatenschalters 23 mit dein gewählten Speichermodul
21 gekoppelt werden soll.
409808/1059 Bad oh{q,nal
2338481
"Si Fig. 7 ist ein Blockschaltbild des arithmetischen Teils mit
dem durch starke Linien angedeuteten Datenverlauf wiedergegeben, von den bei der Ausführung der Anweisung für die Schnelle
Fourier-Tr ans formation Gebrauch gemacht wird. Jeder Pfad oder
Kanal durch die arithmetische Einheit führt alle Berechnungen durch, die für eine Iteration der Schnelle Fourier-Transforma
tion- Berechnung notwendig sind. D. h. , es werden alle Berechnungen
durchgeführt, um die folgende Gleichung zu lösen:.
X0R = X0R + X16R COS ° " X16I Sin "
X0I = SCI + X16L CoS" + X16R3in "
X16R = X0R - X16R COSU + X16I Sin ω
X16I = X0I - X16I COS(J ~ X16E Sin <°
In Fig. 7 werden die Register af b, c und d von einem Speichermodul
wie folgt gespeist:
Es wird X-I61 in das Register RBU eingeleitet;
. X-igR wird in das Register RBL eingeleitet;
X wird in das Register RDL eingeleitet; Sin μ wird in das Register RATi eingeleitet; und
C oder *i wird in das Register RAL eingeleitet.
Die Adressen für die Speisung oder Beschickung der Register sind folgende:
A. Zähler C1 erzeugt Adressen zur Beschickung des Registers
i. Zähler C2 erzeugt Adressen zur Beschickung des Registers
C. Zähler C3 erzeugt Adressen zur Speicherung der Ergebnisse dieser Berechnung.
409808/1059 BAD
2338491
Bei jedem Durchgang durch die arithmetische Einheit v/erden alle oben erwähnten Berechnungen durchgeführt. Die Ergebnisse dieser
Berechnungen sind wie folgt verfügbar;
A. XQR steht am Ausgang des Multiplexers HPX0OU 90 zur
Verfügung;
B. X1 c steht am Ausgang des Multiplexers MPX01U98 zur Verfügung;
C. X-I61 steht am Ausgang des Multiplexers MPX0OL 11O zur
Verfügung; und
D. X01 steht am Ausgang des Multiplexers MPX01C 119 zur Verfugung
.
Die Schnelle Fourier-Transformation (SFT) ist wie folgt definiert:
Die SFT-Anweisung führt eine Schnelle Fourier-Transformation auf der Basis 2 für die gewählte Anzahl Datenstellen durch, wie
das durch den Inhalt des "Blockgrößen"-Registers festgelegt ist.
Die elementare Operation ist der "Komplexe Schmetterling" ae
ie
+b, worin a, e und b komplex sind. Für eine n-Stelle-SFT gibt
es log2N-Stufen für die SFT. Für jede Stufe wird die "Schmetterling"
-Operation n/2 mal durchgeführt. Somit werden insgesamt n/2 log2n Operationen für die volle SFT durchgeführt. Die SFT
v/ird mikroprogrammiert mit einer Reihe von 12 Mikroprogramm-Befehlen, einer für jede Stufe für eine 4.096-Stellen-Transformation.
Kleinere Schnelle Fourier-Transformationen werden durch
Eintritt an der richtigen Stelle weiter unten im Mikroprogramm ausgeführt. Ein Feld η-Stufe der SFT-Anweisung bestimmt, wieviele
Stufen ausgeführt werden, was gestattet, eine teilweise SFT durchzuführen. Das SFT-Skalierregister enthält 12 Bits, eines für
jede Stufe. Eine 1 führt zu einer Verschiebung nach rechts um 1 Bit aller komplexen Austastungen für diese Stufe, während eine
0 zu keiner Verschiebung führt.
409808/1059
2338499
Für jede Stufe werden die Funktionen der Eingangs- und Ausgangs-, speicher intern für den Mikroprogramm-Speicher umgekehrt. Somit
erscheint die Transformation für eine gerade Anzahl Stufen in dem für den Eingang verwendeten Speicher. Für eine ungerade
Anzahl Stufen erscheint die Transformation in dem mit Ausgang bezeichneten Speicher.
Koeffizienten werden in dem Konstanten-Speicher gespeichert.
JQ
Die Koeffizienten müssen als komplexe Zahl c = e = cos θ +
i sin θ gespeichert werden. Sie werden in aufsteigender Ordnung zwischen θ = O und θ = 7Γ/2 gespeichert. Die Zahl der zu speichernden
Koeffizienten ist n/4/ wobei η die Blockgröße (block size) der größten SFT in dem Programm ist. Die gleichen Koeffizienten
können für jede SFT geringerer Größe verwendet werden.
Das riakroprogramm für dieSchnellen Fourier-Tr ans förmätionen
ist wie folgt: ■
Speicher-Markierungen .
A, ·
Ordnungs- Typ |
Block größe |
Konstanten- Speicher |
Daten Ein-1 |
Daten Sin—2 |
Daten Aus-1 |
Daten Aus-2 |
Nicht ge braucht |
Felder
Daten-Sammelleitungs-Vers chiebung
Inkrement-.'■iarkierungen
/ | Eingang | Ausgang | \ | Nicht gebraucht |
/ | \ |
Konstanten | 10 | 11 | 12 | Nicht gebraucht |
Zahl der Leerräume |
|
\ 9 | 13-15 | 16 s | ||||
Felder
Das "iakro-Anweisungs-^ort wird in sechzehn Felder unterteilt,
die Vie folgenden Funktionen durchführen:
409808/1059
ßAD
2338461
Zahl der Bits
Funktion
10 11 12 13 1/1
15 16
Ordnungstyp
Blockgröße
gibt benötigte Speicher an
Verschiebung
Register
(0)
Inkrenent-Ilarkierumjen
n-Stufe
SFT
n-Eegister-:*arkierung Konstanten
Daten Ein (1.HKIfte) Daten Ein
Daten Aus
Daten Aus
Daten Aus
Daten Aus
(2.ITiIf te) (1.HM If te)"
(2.HSIfte)
Konstanten
Eingang
Ausgang
Zahl der Stufen e'er SFT
Fig. 3 zeigt die arithmetische Einheit des Datenverarbeitungsgeräts
rcit den durch die arithmetische Einheit verlaufenden, nit
stark ausgezogenen Linien 'tfiedergegebenen Kanälen bei Durchführung
der komplexen Multiplikation.
Der Komplexe-Multiplikation-Befehl ist wie folgt festgelegt:
Zwei η-Stellen komplexe Vektoren, X., Y. (i = 1, , n)
werden Element für Element miteinander multipliziert, um einen
resultierenden Vektor Z. = (X.) (Y.) (i = 1, . ,n) zu bilden.
Die Operation dient zur Spektruras-Verschiebung des komplexen
Datenstroms.
Das Makro-Anweisungs-Format für die komplexe Multiplikation
stimmt mit dem Format für die zuvor erläuterte Schnelle Fourier-Transformation
überein.
Die Anwendung der Felder 1 - 16 dieser Anweisung erfolgt T-*ie
nachstehend angegeben:
Λ09808/10 59
ORIGINAL
2338461
Zahl der Bits
Funktion
Ordnungstyp Blockgröße
gibt benötigte Speicher an für
Vers ch ieb ung
Register
(0)
Inkrement-Register für
CMPY
Blockgrößen-Speicher ■ Adresse Konstanten
Eingang Ausgang
{Konstanten J Eingang j Ausgang
{Konstanten Eingang Ausgang
Fig. 9 zeigt ein Blockschaltbild der arithmetischen Einheit mit nit stark ausgezogenen Linien wiedergegebenen Inforrnationskanälen
bei Durchführung einer reellen Multiplikation im Rahinen eines Befehls
zur Durchführung einer Multiplikation einer reellen Komponente mit einer komplexen Komponente, in Übereinstimmung mit der
folgenden Definition der reellen .Multiplikation:
Die Anweisung ist so aufgebaut, daß für, eine Zeitbereich-Gewichtung,
eine Zuwachskontrolle und eine Rechtsverschiebung zur Skalierung gesorgt wird. Eingänge sind zwei unabhängige komplexe
Vektoren (X. = a. + b.i und Y. = c. + d.i (i = 1,...vn) sowie
ein komplexer Vektor C. = r.. + r_.i, der aus zwei unabhängigen
reellen Vektoren zusammengesetzt ist, von denen der eine im Realteil, der andere im Imaginärteil liegt. Als Ausgang erhält
i?n zwei unabhängige komplexe Vektoren U. und V., wobei U. =
r-a. + r.,b.i und V. = roc. +-rod.i. Somit v/erden zwei gesonderte
ι 3 Ij j ^j ^j
komplexe Vektoren unabhängig voneinander gerichtet. Gewöhnlich
ist X die erste Hälfte des SFT-Blocks, während Y die zweite
Il'ilfte ist, wobei r- die erste Hälfte der reellen Gewichtungsfunktion
und r2 die zweite Hälfte davon bilc'en.
409808/1059
BAD ORIGINAL
2338495
Das Format der TTakro-Anweisung ist identisch dem Format der
zuvor erläuterten komplexen Multiplikations-Anweisung. Der Einsatz der Felder des Anweisungs-TFortes ist nachstehend angegeben
:
Feld | 2ahl der | Bits | 3 | Funktion | Verwendung |
1 | 4 | Ordn ungs typ | p:ipy | ||
2 | Blockgröße | Blockgrößan-Speicher | |||
3 * | Adresse | ||||
3 | 3 | 'Konstanten | |||
4 | 3 | gibt benötigte | Eingang 1 | ||
5 | 3 | Speicher an für ^ | Eingang 2 | ||
5 | 3 | Ausgang 1 | |||
7 | 3 ) | Ausgang 2 | |||
8 | — | ||||
'Konstanten | |||||
1.0 | Verschiebung | Eingang | |||
11 | Register < | Ausgang | |||
12 | (0) | - | |||
13 | Inkrement— | Konstanten | |||
14 15 16 |
4Ί | Register < (D |
Eingang Ausgang |
||
4 L | |||||
4 r | |||||
4J | |||||
i1 | |||||
4 4 4 |
|||||
Fig. 10 ist ein Blockschaltbild der arithmetischen Einheit,
wobei die bei der Ausführung eines Erfassungs-Befehls verwendeten Informationskanäle mit stark ausgezogenen Linie wiedergegeben sind.
Der Erfassungsbefehl findet die maximale Amplitude einer gegebenen
Funktion in Übereinstimmung mit folgender Definition:
3.17 DET - ElNfVELOPER LINEAR DETECT
a. Definition
a. Definition
Die Anweisung liefert eine grundlegende lineare Erfassungs-Operation,
die bis auf drei Prozent Mittelwert oder etwa 0,25 dB genau ist. Der Algorithmus ist S = MAX (|l|, (Q | )
+ 3/8 MIN (11| , |Q| ).
Das Format der Makro-Anweisung ist identisch mit dem zuvor in Verbindung mit der SFT-Anweisung Erläuterten. Die Ver-
409808/1059
2338461
■·;-■■ * - 39 -
; ' wendung der Felder der Anweisung ist nachstehend angegeben:
j Feld Zahl der Bits Funktion Verwendung
1 8 Ordnungstyp Erfassung
2 4 Blockgröße Blockgrößen-Speicher-
■ . ■ ' Adresse
gibt benötigte Speicher an für
Eingang Ausgang
3 3
4 3
5 3
6 3
7 3
16 4 I (I)
Fig. 11 zeigt die arithmetische Einheit mit mit stark ausgezogenen
Linien wiedergegebenen Informationskanälen bei Ausführung eines
Speicherlöschbefehls.
Die Definition des Speicher löschbefehls ist v?ie folgt:
Die3e Anweisung bringt Null-Werte in die angegebenen Speicherstellen.
Die Anweisung ist so aufgebaut, daß ein Speicher gelöscht oder auf Null „gesetzt v/erden kann.
Das Format des Makro-Anweisungs-Wortes ist identisch mit dem
zuvor in Verbindung mit der Schnelle Fourier-Transformation erläuterten Format.
Die verschiedenen Fehlder der Makro-Anvieisung führen die folgenden
Funktionen aus i
409808/1059
Feld
Zahl der Bits
Funktion
10 11 12 13 14 15 16
3 4
Ordnungstyp
Elockgröße
Elockgröße
gibt benötigte
Speicher an für
Speicher an für
Vers chiebung
Register
(0)
Inkrement
Register
(D
auf Pull löschen
Blockgrößen-Speicher-
, Adresse
Ausgang 1
Ausgang 2
Ausgang 3
Ausgang 4
Ausgang 5
Ausgang 6
'Ausgang 1,2,3
7msgang 4, 5 , -6
Ausgang 1,2,3
Ausgang 4, 5 ,
zulassen
6 Bit verwendet
Fig. 12 zeigt ein Blockschaltbild der arithmetischen Einheit,
wobei der bei Aus führung einer gesonderten Anweisung verwendete
Daten-3efehl im "einzelnen veranschaulicht ist. Liese Anweisung ist so aufgebaut, daß eine SFT der Blockgröße η verwendet werden
kann, um 2n reelle Daten-Austastungen oder 2 unabhängige η reelle
Austastungen zu verarbeiten.
^in reeller Satz von zwei η /..us tastungen kann durch die F-1 and art!
oFT der L:;„nge η trans formiert werden, indan abwechselnde Paare
von Ii entsprechend
211+1
für η = 0, 1, 2 , η-1
ii korrplere Wörter C eingegeben werden.
ie :-5ach-Tr?nsformations-0peration besteht aus zT-rei Operationen:
(1) oxide A., un-7: E.,,
'•rooai
= 1/2 (C,T + C*- ,.)
= 1/2 (Cr. - C* ,-_ J
409808/10 5
OFUQUNAL
für .M = O, 1, 2
- 41 -
, η-1, wobei C. = C.,,..
von
und wobei CM die Transforraation C ist. Diese Operation wird
durch den Sonder-Befehl durchgeführt.
(2) Bilde die endgültige Nach-Transformation, die die
komplexe Transformation der 2n-Stellen χ erzeugt, wobei
Xn= 1/2 ^,+-
Die Koeffizienten in der zv/eiten Operation werden als cos/sin-Tabelle
von θ = 0 bis θ = IF"/2 in aufsteigender Reihenfolge
gespeichert. Diese Operation wird durchgeführt unter Verwendung der Stufe 1 einer n-Stellen-SFT.
Zwei unabhängige Eeal-Daten-Gruppen a und b können in einer
n-Stellen-SFT transformiert werden, indem die beiden Gruppen in die Real- und Imaginär-Teile des komplexen Wortes eingegeben
werden. Die resultierenden Spektren sind Ä.^ und B,,, die unter
Verwendung des oben beschriebenen Sonder-Befehls er zeugt vier den.
Das Format der Makro-Anweisung ist id'entisch dera zuvor in Verbindung
mit der SFT-Anweisung erläuterten Formats. Die Funktionen der Felder sind wie folgt definiert:
Zahl der Bits
Funktion
1 | 3 |
2 | 4 |
3 | 3 |
4 | 3 |
5 | 3 |
6 | 3 |
7 | 3 |
8 | 3 |
9 | 4 |
10 | 4 |
11 | 4 |
12 | * ■.* |
Ordnungstyp
3lockgröße
gibt benötigte Speicher an für
Verschiebung
Register
(0)
gesondert
BlockgröBen-Speieher-,/Adresse
Eingang Eingang Ausgang Ausgang
Eingang Ausgang
409808/1059
SAD
Zaiii der Pits
Funktion
2338459
Inkrement
Register
(D
Eingang Ausgang
Fig. 13 ist ein Blockschaltbild der arithmetischen Einheit, in
der die bei der Ausführung eines Konjugations-Befehls maßgeblichen Informationskanäle mit starken durchgehenden Linien
wiedergegeben sind.
Diese Anweisung erzeugt die komplexe Konjugation zweier komplexer Vektoren x. = a. + b.i und y.= c. + d.i (j = 1, ....,η),
wobei χ.*= a. - b.i und y. * = c- - d.i.
Das Format des Makro-Anweisungs-Wortes ist identisch mit dem zuvor
in Verbindung mit der SFT in diesem Anweisungs-Wort erläuterten Format. Die Funktionen der Felder sind wie folgt definiert!
Feld | Zahl der | Bits | 8 | V | U) U) Ul | Funktion | Verwendung |
1 | 4 | 3 | Ordnungstyp | Konjugation | |||
2 | 3 | Blockgröße | Blockgrößen-Speicher | ||||
3 „ | Adresse | ||||||
3 4 5 |
gibt benötigte Speicher an für 4 |
Eingang 1 Eingang 2 Ausgang 1 |
|||||
6 | Ausgang 2 | ||||||
7 | - | ||||||
8 | |||||||
9 | Eingang | ||||||
10 | 4 I | Verschiebung ^ | Ausgang | ||||
11 | 4 f | Register j | — | ||||
12 | 4 J | (0) I | |||||
13 | 4I | I | "Eingang | ||||
14 | 4 L | Inkrement J | Ausgang | ||||
15 | 4 Γ | Register ] | — | ||||
16 | 4 J | (I) I | |||||
Fig. 14 ist ein Blockschaltbild der arithmetischen Einheit, in
der die Informationskanäle in starken schwarzen Linien wiedergegeben sind, wie sie sich bei der Ausführung einer Anweisung zur
komplexen Multiplikation und zur Akkumulierung ergeben.
409808/1059
2338489
Diese Anweisung ist so ausgelegt, daß die Funktion eines Integrations-
und Absehalt- oder Transversal-Filters durchgeführt wird. Den Eingang bilden zwei komplexe Vektoren X±, Y. (i = 1,..,n)
die multipliziert und summiert v/erden, so daß sich Z =33'("X. ).(Y.)
ergibt. Das Resultat ist eine einzelne komplexe Größe, nämlich Z. Einer der beiden Vektoren X. und Y. kann als Hingangs- oder Referenz
(oder Konstanten-)Vektor dienen. D. h., das Datenverarheitungsgerät
unterscheidet nicht zwischen Konstanten- und Hingangs-Vektoren.
Das Format dieser Anweisung ist identisch den Format der zuvor
erläuterten SFT. In dieser Anweisung führen die verschiednen Felder folgende Funktionen durch:
b. Verwendete Felder
Feld
Zahl der Bits
Funktion
Anreis ungs-Typ Blockgröße
Verwendung der Speicher
Verschiebung
Register
(0)
Komplexe Multiplikation u.Akkumulier.
Dlockgrößen-Speicher-
Konstanten Eingang
Ausgang · .
Ausgang · .
Konstanten Eingang
Ausgang
Die vorstehenden erläuterten Anweisungen sind nur Beispiele für di'3 komplexen Daten-Verarbeitungs-Befehle, die bei ^erwendung
des beschriebenen Daten-Verarbeitungs-Gerätes implementiert werden können. In jeder der obigen Anweisungen - und jeder
weiteren Anweisung, die inplententiert werden kann - wir·] Cex
"Anweisungs -Typ"-Teil der "'akro-Ärrreisunc; dekociert, im die
varsc'iiadenan Multiplexer der arithmetischen Finheit in lar
409808/1059
erforderlichen Weise vorzubereiten. Die zuvor untersuchten
Informationskanäle für die verschiedenen Anweisungen zeigen, welche Informationskanäle oder Datenkanäle für diese Anweisungen - ■
aktiviert werden müssen. Die Implementierung zusätzlicher Anweisungen kann es erforderlich machen, daß weitere Informations-
oder Datenkanäle durch die arithmetische Einheit definiert werden. Der grundsätzliche Aufbau des Datenverarbeitungsgeräts gestattet,.
daß dies in einfacher Weise geschehen kann. Die Adressenfehler
und die Speicheradressen-Sammelleitungen, die für andere Anweisungen
als die SFT verwendet werden, werden nicht im einzelnen untersucht, weil es sich dabei weitgehend um Entscheidungen des
Programmierers handelt. Diese Entscheidung wird jedoch durch die Flexibilität des Speicheradressengenerators leicht gemacht, dessen
Verwendung in der SFT erläutert wurde.
Fig. 15 ist ein Diagramm, das das Sättigbare-Zahl-System veranschaulicht,
wie es in Verbindung mit dem erläuterten Datenverarbeitungsge.rät verwendet wird. Beginnend mit einer Amplitude
Null entsprechend dem in Fig. 15 eingetragenen Nullpunkt 140 und anschließender Inkrementierung um plus Eins - wächst die
resultierende Zahl an, bis sie eine Amplitude von plus 0,3777 erreicht hat, wobei v/eitere Inkremente nach dieser Stelle den
Maximalwert nicht ändern. Dies ist so festgelegt, so daß überlaufe
in der arithmetischen Einheit zu der höchsten positiven Zaiii führen, die sich wiedergeben läßt, anstatt einen großen
Fehler und einen Vorzeichenwechsel einzuführen, wie das bei
herkömmlicher Zweier-Komplement-Arithmetik üblich ist. Entsprechend
nimmt der Viert beginnend mit dem Nullpunkt 140 und bei anschließender Verringerung der Amplitude um (-) 1-Inkremsnte
ab, bis er einen Punkt - 0,3777 erreicht, wonach er konstant bleibt. Das steht im Gegensatz zu der für die meisten
Datenverarbeitungsgeräte verwendeten herkömmlichen Lösung, bei der sich ein Überlauf bilden und die Amplitude entweder auf
KuIl oder ±n den positivsten Pert zurückkehren kann, der sich
durch den Computer vriedergeben l?ßt.
409808/1059
2338489
In der vorstehenden Erläuterung v/ird für die Zahlen die Basis B verwendet. Es können aber entweder größere oder kleinere Zahlennengen
verwendet v/erden, ohne das grundlegende Konzept zu ändern.
Das vorstehende Zahlensystem ist besonders vorteilhaft in einem digitalen Datenverarbeitungsgerät, mit dem statistische Berechnungen
durchgeführt werden, da ein überlauf infolge einer Addition einen kleineren Fehler ergibt und sich leichter vernachlässigen
läßt, nachdem dadurch die Genauigkeit der berechneten Ergebnisse nicht nennenswert beeinflußt wird.
Patentansprüche;
409308/1059
Claims (14)
- PatentansprücheProgrammierbares digitales Datenverarbeitungsgerät, gekennzeichnet durch eine arithmetische Einheit (11) zur Durchfüh-. rung arithmetischer Operationen an Daten mit Festkomma-Arithmetik und einer sättigbaren Zahlenwiedergabe in Abhängigkeit von vorgegebenen Steuersignalen; eine Einrichtung zur Erzeugung und Kopplung der Daten mit der arithmetischen Einheit; eine Steuereinrichtung zur Erzeugung und Kopplung der Steuersignale mit der arithmetischen Einheit; sowie durch eine der arithmeitschen Einheit operativ -geordnete Einrichtung zur Erzeugung eines Sättigungssignals jedesmal, wenn eine arithmetische Operation eine Zahl erzeugt, deren Größe das durch sättigbare Zahlenwiedergabe darstellbare Maximum überschreitet.
- 2. Digitales Datenverarbeitungsgerät nach Anspruch 1, gekennzeichnet durch eine der arithmetischen Einheit und der Einrichtung zur Erzeugung von Sättigungssignalen operativ zugeordnete Einrichtung zur Zählung der Sättigungssignale.
- 3. Digitales Datenverarbeitungsgerät nach Anspruch 2, gekennzeichnet durch eine Einrichtung zur Skalierung der Daten in Abhängigkeit von den Sättigungssignalen.
- 4. Digitales Datenverarbeitungsgerät nach Anspruch 1, 2 oder 3, mit einer Einrichtung zur Festlegung von Makro-Anweisungen für die Auslösung aufeinanderfolgender Ausführungen verschiedener vorgegebener Sequenzen mindestens der arithemtisehen Operationen, gekennzeichnet durch eine Einrichtung zur MikroProgrammierung jeder durch das digitale Datenverarbeitungsgerät auszuführenden Makro-Instruktion.
- 5. Digitales Datenverarbeitungsgerät nach einem oder mehreren der Ansprüche 1-4, gekennzeichnet durch eine Mehrzahl Speicherelemente mit direktem Zugriff und eine Mehr ζ aiii409808/10592338459Adressenzähler, die wählfrei oder systematisch inkrementierbar oder dekrementierbar sind, um jedes oder jede Kombination der Speicherelemente wahlfrei oder systematisch zu adressieren. '
- 6. Digitales Datenverarbeitungsgerät nach Anspruch 5, gekennzeichnet durch eine Mikroprogramm-Einrichtung zur selektiven Kopplung der Adressenzähler mit den Speicherelementen.
- 7. Digitales Datenverarbeitungsgerät nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß mindestens einer der Adressenzähler in der Lage ist, Adressenfolgen in ungekehrter Bit-Reihenfolge zu erzeugen.
- G. Digitales Datenverarbeitungsgerät nach Anspruch 7, dadurch gekennzeichnet, daß es eine Mikroprogramm-Einrichtung zur .Bestimmung der Ädressenfolge aufweist.
- 9. Digitales Datenverarbeitungsgerät nach einem oder mehreren der Ansprüche 1-8, gekennzeichnet durch eine Einrichtung zur Aufnahme und Speicherung von für komplexe Zahlen repräsentativen Daten-Mustern.
- 10. Digitales Datenverarbeitungsgerät nach Anspruch 9, gekennzeichnet durch eine Einrichtung in der arithmetischen Einheit zur unabhängigen Verarbeitung der reellen und komplexen Komponenten der komplexen Zahlen und zur Abgabe von einem oder mehreren Ausgängen mit einer bestimmten reellen und' einer bestimmten komplexen Komponente.
- 11. Digitales Datenverarbeitungsgerät nach Anspruch 10, gekennzeichnet durch eine Einrichtung zur Erzeugung eines Überlaufsignals, das repräsentativ für einen bei der Verarbeitung der Realkomponente der Datenmuster auftretenden überlaufzustand ist, sowie durch eine dazu operativ zugeordnete Ein-09 808/10richtung zur Einstellung der zugeordneten Realkoraponente des Ausgangs der arithmetischen Einheit auf einen Wert, der gleich der maximalen Amplitude ist, die in dem Datenverarbeitungsgerät wiedergegeben werden kann, ohne die imaginären Komponenten des Ausgangssignals der arithmetischen Einheit zu beeinflussen.
- 12. Digitales Datenverarbeitungsgerät nach Anspruch 10, gekennzeichnet durch eine Einrichtung zur Erzeugung eines Uberlaufsignals, das repräsentativ für einen bei/der Verarbeitung der Imaginärkomponente der Datenmuster auftretenden überlaufzustand ist, sowie durch eine dazu operativ zugeordnete Einrichtung zur Einstellung der zugeordneten Imaginärkomponente des Ausgangs der arithmetischen Einheit auf einen Wert, der gleich der maximalen Amplitude ist, die in dem Datenverarbeitungsgerät wiedergegeben werden kann, ohne die reellen Komponenten des Ausgangssignals der arithmetischen Einheit zu beeinflussen.
- 13. Digitales Datenverarbeitungsgerät nach einem oder mehreren der Ansprüche 1 - 12, dadurch gekennzeichnet, daß er Bestandteil eines digitalen Multi-Datenverarbeitungsgerätes mit einer System-Steuereinrichtung zur Erzeugung und Kopplung von Daten und Steuersignalen für jeden unter einer Mehrzahl digitaler Datenverarbeitungsgeräte ist, so daß jedes digitale Datenverarbeitungsgerät so gesteuert wird, daP- es sequentiell einen ausgewählten Abschnitt eines komplexen Datenverarbeitungsproblems durchführt.
- 14. Digitales Datenverarbeitunasc-er"t nach Anspruch 13, gekennzeichnet durch eine L'peichereinheit für grof-a Informationsmengen und einen Speicher-Steuereinheit, über die jee^s digitalen Datenverarbeitunrsger-äte in V2rbindung *nit <T!er Speichereinheit für große Infornationsmen jer. ste-it.KA /s-v 3409808/1053Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00276639A US3812470A (en) | 1972-07-31 | 1972-07-31 | Programmable digital signal processor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2338469A1 true DE2338469A1 (de) | 1974-02-21 |
Family
ID=23057497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19732338469 Pending DE2338469A1 (de) | 1972-07-31 | 1973-07-28 | Programmierbares digitales datenverarbeitungsgeraet |
Country Status (7)
Country | Link |
---|---|
US (1) | US3812470A (de) |
JP (1) | JPS50130333A (de) |
DE (1) | DE2338469A1 (de) |
FR (1) | FR2195005B1 (de) |
GB (1) | GB1412053A (de) |
IT (1) | IT997384B (de) |
NL (1) | NL7310517A (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
US4171537A (en) * | 1978-01-09 | 1979-10-16 | National Semiconductor | Number oriented processor |
GB2026740B (en) * | 1978-07-24 | 1983-03-30 | Intel Corp | Digital processor for processing analog signals |
JPS55164961A (en) * | 1979-06-11 | 1980-12-23 | Canon Inc | Calculator |
GB2084362B (en) * | 1980-09-19 | 1984-07-11 | Solartron Electronic Group | Apparatus for performing the discrete fourier transform |
US4393468A (en) * | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
JPS58144272A (ja) * | 1982-02-19 | 1983-08-27 | Sony Corp | デイジタル信号処理装置 |
US4575814A (en) * | 1982-05-26 | 1986-03-11 | Westinghouse Electric Corp. | Programmable interface memory |
US4627026A (en) * | 1982-10-21 | 1986-12-02 | I.R.C.A.M. (Institut De Recherche Et De Coordination Accoustique/Misique | Digital real-time signal processor |
US4554629A (en) * | 1983-02-22 | 1985-11-19 | Smith Jr Winthrop W | Programmable transform processor |
JPS60144872A (ja) * | 1983-12-30 | 1985-07-31 | Sony Corp | デイジタルデ−タ演算回路 |
US5036453A (en) * | 1985-12-12 | 1991-07-30 | Texas Instruments Incorporated | Master/slave sequencing processor |
DE3733772C2 (de) * | 1987-10-06 | 1993-09-30 | Fraunhofer Ges Forschung | Multi-Signalprozessorsystem |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
JPH0797313B2 (ja) * | 1989-08-30 | 1995-10-18 | 株式会社東芝 | 計算機及びこの計算機に用いられる演算方法 |
US5956494A (en) * | 1996-03-21 | 1999-09-21 | Motorola Inc. | Method, apparatus, and computer instruction for enabling gain control in a digital signal processor |
JP2000242489A (ja) * | 1998-12-21 | 2000-09-08 | Casio Comput Co Ltd | 信号処理装置の資源管理装置、プログラム転送方法、及び記録媒体 |
DE19906559C1 (de) * | 1999-02-15 | 2000-04-20 | Karlsruhe Forschzent | Digital-elektronisches Verfahren zur Steigerung der Berechnungsgenauigkeit bei nichtlinearen Funktionen und ein System zur Durchführung des Verfahrens |
JP2002351858A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | 処理装置 |
US8209366B2 (en) * | 2005-02-28 | 2012-06-26 | Hitachi Global Storage Technologies Netherlands B.V. | Method, apparatus and program storage device that provides a shift process with saturation for digital signal processor operations |
-
1972
- 1972-07-31 US US00276639A patent/US3812470A/en not_active Expired - Lifetime
-
1973
- 1973-07-11 GB GB3301573A patent/GB1412053A/en not_active Expired
- 1973-07-28 DE DE19732338469 patent/DE2338469A1/de active Pending
- 1973-07-30 NL NL7310517A patent/NL7310517A/xx unknown
- 1973-07-30 JP JP48085053A patent/JPS50130333A/ja active Pending
- 1973-07-30 IT IT41623/73A patent/IT997384B/it active
- 1973-07-31 FR FR7328049A patent/FR2195005B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
AU5811673A (en) | 1975-01-16 |
FR2195005A1 (de) | 1974-03-01 |
FR2195005B1 (de) | 1974-11-08 |
GB1412053A (en) | 1975-10-29 |
NL7310517A (de) | 1974-02-04 |
JPS50130333A (de) | 1975-10-15 |
US3812470A (en) | 1974-05-21 |
IT997384B (it) | 1975-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2338469A1 (de) | Programmierbares digitales datenverarbeitungsgeraet | |
DE69130581T2 (de) | Verfahren zur Berechnung einer Operation des Typus A.X modulo N, in einem Kodierverfahren gemäss der RSA-Methode | |
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE3882772T2 (de) | Vektorprozessor angepasst zum Sortieren von Vektordaten. | |
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE2735814A1 (de) | Datenverarbeitungseinrichtung | |
DE3326583C2 (de) | ||
DE2934971A1 (de) | Datenverarbeitungssystem | |
DE112008002158T5 (de) | Verfahren und System zur Multiplikation großer Zahlen | |
DE19504864C2 (de) | Rechenwerk zum Ausführen einer Division | |
DE1549477B1 (de) | Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE1549584A1 (de) | Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten | |
DE69830474T2 (de) | Verfahren und gerät zur fft-berechnung | |
DE112020000748T5 (de) | Adresserzeugung zur hochleistungsverarbeitung von vektoren | |
DE3400723A1 (de) | Vektorprozessor | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE102007056104A1 (de) | Verfahren und Vorrichtung zur Multiplikation von Binäroperanden | |
DE2644506A1 (de) | Rechner zur berechnung der diskreten fourier-transformierten | |
DE69521464T2 (de) | Paralleler Prozessor | |
DE2357654A1 (de) | Assoziativspeicher | |
DE69112434T2 (de) | Kurvengenerator. | |
DE2612665A1 (de) | Konvolutionsfunktionsgenerator und dessen anwendung in digitalfiltern | |
DE2704641A1 (de) | Digitalfilter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHJ | Non-payment of the annual fee |