[go: up one dir, main page]

DE2338469A1 - Programmierbares digitales datenverarbeitungsgeraet - Google Patents

Programmierbares digitales datenverarbeitungsgeraet

Info

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
Application number
DE19732338469
Other languages
English (en)
Inventor
John C Murtha
James A Ross
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CBS Corp
Original Assignee
Westinghouse Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Westinghouse Electric Corp filed Critical Westinghouse Electric Corp
Publication of DE2338469A1 publication Critical patent/DE2338469A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex 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
Düsseldorf, 26. Juli 1973
Westinghouse Electric Corporation
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 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.
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
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.
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
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
Verwendung
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
(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
Verwendung
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
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
Verwendung
10 11 12 13 14 15 16
3 4
Ordnungstyp
Elockgröße
gibt benötigte
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
Verwendung
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
Verwendung
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
Verwendung
Anreis ungs-Typ Blockgröße
Verwendung der Speicher
Verschiebung
Register
(0)
Komplexe Multiplikation u.Akkumulier. Dlockgrößen-Speicher-
Konstanten Eingang
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)

  1. Patentansprüche
    Programmierbares 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. 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. 3. Digitales Datenverarbeitungsgerät nach Anspruch 2, gekennzeichnet durch eine Einrichtung zur Skalierung der Daten in Abhängigkeit von den Sättigungssignalen.
  4. 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. 5. Digitales Datenverarbeitungsgerät nach einem oder mehreren der Ansprüche 1-4, gekennzeichnet durch eine Mehrzahl Speicherelemente mit direktem Zugriff und eine Mehr ζ aiii
    409808/1059
    2338459
    Adressenzähler, die wählfrei oder systematisch inkrementierbar oder dekrementierbar sind, um jedes oder jede Kombination der Speicherelemente wahlfrei oder systematisch zu adressieren. '
  6. 6. Digitales Datenverarbeitungsgerät nach Anspruch 5, gekennzeichnet durch eine Mikroprogramm-Einrichtung zur selektiven Kopplung der Adressenzähler mit den Speicherelementen.
  7. 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.
  8. G. Digitales Datenverarbeitungsgerät nach Anspruch 7, dadurch gekennzeichnet, daß es eine Mikroprogramm-Einrichtung zur .Bestimmung der Ädressenfolge aufweist.
  9. 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. 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. 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/10
    richtung 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. 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. 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. 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 3
    409808/1053
    Leerseite
DE19732338469 1972-07-31 1973-07-28 Programmierbares digitales datenverarbeitungsgeraet Pending DE2338469A1 (de)

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)

* Cited by examiner, † Cited by third party
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

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