DE2855722A1 - Einrichtung zur berechnung von produktsummen - Google Patents

Einrichtung zur berechnung von produktsummen

Info

Publication number
DE2855722A1
DE2855722A1 DE19782855722 DE2855722A DE2855722A1 DE 2855722 A1 DE2855722 A1 DE 2855722A1 DE 19782855722 DE19782855722 DE 19782855722 DE 2855722 A DE2855722 A DE 2855722A DE 2855722 A1 DE2855722 A1 DE 2855722A1
Authority
DE
Germany
Prior art keywords
bit
bits
accumulator
input
multiplier
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.)
Withdrawn
Application number
DE19782855722
Other languages
English (en)
Inventor
Gabriel Irenee Epenoy
Roland Kuhne
Bernard Laurent
Philippe Thirion
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2855722A1 publication Critical patent/DE2855722A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • G06F7/4812Complex multiplication

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
te/ms
linrichtung zur Berechnung von Produktsummen
Die Erfindung betrifft eine Einrichtung zur Berechnung von Produktsummen nach dem Oberbegriff des Hauptanspruchs.
Die Signalverarbeitung, wie sie in der Zeichenerkennung, der Datenübertragung und der Spektralanalyse auftritt, verlangt die Verarbeitung einer großen Anzahl von Datenelementen in kurzer Zeit. Mit einem herkömmlichen Computer ist das in Realzeit nicht möglich. Früher wurden die Signale in analogen und digitalen Spezialschaltungen verarbeitet, die auf besondere Anwendungen zugeschnitten waren. Das erste Digitalsystem für die Signalverarbeitung nahm die Form von relativ preiswerten Mikroprozessoren an.
In der französischen Patentschrift Nr. 2 296 221 und der entsprechenden deutschen Offenlegungsschrift 2 554 652 wird ein nodulares Signalverarbeitungssystem beschrieben, das nach dem Master-Slave-Prinzip (Steuergerät mit abhängigem Gerät) arbeitet. Das Grundsystem besteht aus einem als Steuereinheit dienenden Mikroprozessor und einem spezialisierten Mikroprozessor, der als Multiplikator-Akkumulator dient. Wenn die Verarbeitung des Signals eine größere Rechenleistung verlangt,
rd ein als Multiplikator-Akkumulator dienender zweiter mikroprozessor zu dem ersten Mikroprozessor dazugeschaltet.
Em Bereich der Spektralanalyse und der Hochgeschwindigkeitslatenverarbeitung gehört zur Signalverarbeitung im wesentlichen die Berechnung der Produkte von Konvolutionen und Korre-Lationen komplexer Zahlen (digitale Filterung, Berechnung äiskreter Fourier-Transformationen), d.h., die Summe der
fr 976 013 909828/0723
Produkte zweier komplexer Operanden ist zu errechnen. Das verlangt offensichtlich eine sehr große Rechenleistung, da zur Berechnung nur eines Produktes zweier komplexer Operanden vier Multiplikationen ausgeführt werden müssen, von denen zwei den Realteil des Produktes und die anderen beiden den imaginären Teil bestimmen. Diese vier Multiplikationen könnten hintereinander ausgeführt werden, das ist jedoch in den zugeordneten kurzen Zeitabschnitten kaum möglich. Sie könnten parallel ausgeführt werden, dann müßten aber in einem System der oben beschriebenen Art wenigstens zwei Mikroprozessoren vorgesehen werden, die als Multiplikator-Akkumulator in Verbindung mit einem Algorithmus verwendet werden, der die realen und imaginären Teile der Ergebnisse der vier Multiplikationen zusammensetzt.
Die vorliegende Erfindung stellt sich daher die Aufgabe, eine Einrichtung anzugeben, die die Produktsummen zweier komplexer Operanden berechnen kann, worin der reale und der imaginäre Teil des Produktes zweier komplexer Operanden gleichzeitig in einer Multiplikations- und Akkumulationseinrichtung berechnet werden.
Diese Aufgabe wird durch die im Hauptansprüch gekennzeichnete Irfindung gelöst; Ausgestaltungen der Erfindung sind in den ünteransprüchen gekennzeichnet.
Die vorliegende Erfindung betrifft einen spezialisierten Prozessor zur Berechnung der Summe von Produkten S =Σ +Pi, worin jedes Produkt Pi das Produkt zweier jeweils n-Bit großer komplexer Operanden Ai + J Bi (der Multiplikator) und Ci + j DI (der Multiplikand:) ist und worin j =>^ ist. Der Prozessor enthält einen Befehlsspeicher, Einrichtungen zur Decodierung der aus besagten Speicher ausgelesenen Befehle und zur Steuerung der Operation des Prozessors, einen Datenspeicher und eine Multiplikations- und Akkumulatoreinheit. Diese besteht aus zwei Multiplikations-Akkumulatoren und mehreren Puffern zum Speichern der Operanden Ai, TU, CA und ΤΉ , cite
fr 976 013 909828/0723
sequentiell aus dem Datenspeicher ausgelesen werden. Der Realteil Ai und der Imaginärteil Bi des Multiplikators werden entsprechend an die Multiplikatoreingänge des Multiplikator-Akkumulators angelegt und der Realteil Ci des Multiplikanden an die Multiplikandeneingänge dieses Gerätes, die gleichzeitig die Produkte Ai, Ci und Bi, Ci errechnen. Der imaginäre Teil Di des Multiplikanden wird dann an die Multiplikandeneingänge der Multiplikator-Akkumulatoren angelegt. Der erste Multiplikator-Akkumulator berechnet dann das Produkt -Bi χ Di und addiert es zu dem Produkt Ai Ci, während der zweite Multiplikator-Akkumulator das Produkt Ai Di berechnet und es zum Produkt Bi Ci addiert. So liefern die beiden Multiplikator-Akkumulatoren gleichzeitig den realen und den imaginären Teil des Produktes Pi.
in Ausführungsbeispiel der Erfindung ist in den beigefügten Zeichnungen dargestellt und wird anschließend näher beschrieben . Es zeigen:
Fig. 1 schematisch ein Signalverarbeitungssystem mit einem Mikroprozessor nach der Erfindung,
Fig. 2 mit den Fign. 2A bis 2E im einzelnen den erfindungsgemäßen Mikroprozessor, .
Fig. 3 das Format eines Mikrobefehles,
Fig. 4 die Bildung einer RAM-Adresse in indirekter Adress ierung,
?ig. 5 die Bildung einer ROS-Adresse aus dem Feld "nächste Befehlsadresse" des laufenden Befehles,
i"ig. 6 das Format eines Steuerwortes (CW),
fr 976 013 909828/0723
Fig. 7 ein Grundbestandteil des Multiplikator-Akkumulators 14,
Fig. 8 schematisch eine Addier-Subtrahierzelle,
Fig. 9 in einem Zeitdiagramm die Arbeitsweise des erfindungsgemäßen Prozessors und
Fig. 10 das Abschneiden des Ergebnisses in einem Multiplikator-Akkumulator .
In Fig. 1 ist ein Signalverarbeitungssystem gezeigt, das den erfindungsgemäßen Mikroprozessor enthält. Das System besteht aus zwei komplementären mikroprogrammierten Mikroprozessoren. Einer davon ist ein erfindungsgemäßer Mikroprozessor, der eine spezialisierte Multiplikations- und Akkumulationseinheit darstellt, die im Fließbandverfahren Produktsummen "zweier komplexer Operanden errechnet und hier mit PMAU bezeichnet ist. Der andere Mikroprozessor ist ein Vielzweck-Mikroprozessor, der als Steuereinheit für die PMAü dient und hier mit CU bezeichne ist. Die PMAU enthält eine Multiplikations- und Akkumulatorein heit, die aus zwei 16 χ 16 Bits großen Multiplikator-Akkumula toren besteht, die überlappt arbeiten und gleichzeitig den realen Teil und den imaginären Teil des Produktes zweier komplexer Operanden errechnen und diese Produkte akkumulieren können. Die CU kann aus einem Vielzweck-Mikroprozessor des in der französischen Patentschrift Nr. 2 296 221 beschriebenen Typs bestehen.
Das zu verarbeitende Analogsignal wird über die Leitung 1 an den Eingang eines Analog/Digitalwandlers 2 angelegt und dort abgefragt und zu bestimmten Zeitpunkten unter Steuerung eines phasensynchronisierten Oszillators (PLO) quantifiziert. Die vom Analog/Digitalwandler 2 gelieferten digitalen Abtastwerte
976 013 909828/0723
werden der PMAU über eine Sammelleitung 3 zugeführt. Der Datenaustausch zwischen der PMAU und der CU erfolgt über die bidirektionale Sammelleitung 4. Die CU kann auch unabhängige Aufgaben in Verbindung mit verschiedenen Eingabe-Geräten ausführen. Bei der Datenübertragung beispielsweise wird das analoge Eingangssignal zu bestimmten Zeitpunkten abgefragt, die von der Verarbeitung des Eingangssignales selbst abhängen. In dem in Fig. 1 gezeigten System stellt die Leitung 5 die Tatsache dar, daß die PMAU den PLO steuert. In dem in Fig. 1 gezeigten System ist die Verarbeitung des Signales aufgeteilt in eine Folge von zeitabhängigen Grundaufgaben, die in geeigneter Reihenfolge ausgeführt werden. Diese Grundaufgaben, die eine große Rechenleistung verlangen, werden in der PMAU ausgeführt, während die Aufgaben, die nur Additionen oder logische Operationen betreffen (UND, ODER, antivalente Verbindung usw.), in der CU ausgeführt werden.
In den Fign. 2A bis 2E ist die erfindungsgemäße PMAU im Blockdiagramm dargestellt. Diese Einheit besteht hauptsächlich aus einem Befehlsspeicher 10 und der zugehörigen Adressierschaltung 11, einem Datenspeicher 12 und der zugehörigen Adressierschaltung 13, einer Multiplikations- und Akkumulatoreinheit 14 und einer Schnittstelle 15.
Der Befehlsspeicher 10 ist ein Festwertspeicher (ROS), der im gezeigten Beispiel 2K Mikrobefehle enthält, von denen jeder 36 Bits lang ist und durch eine Adresse angesteuert wird, die von den Befehlsspeicher-Adreßschaltungen 11 geliefert wird. Eine Mikrobefehlsadresse ist 10 Bits lang und ermöglicht so eine Adressierung von 4K Mikrobefehlen. Die Adresse des nächsten Mikrobefehles erhält man entweder aus dem laufenden Mikro befehl oder von einem von der CU empfangenen Steuerwort.
Der Datenspeicher 12 ist ein Random-Speicher (RAM), der im gezeigten Beispiel 1024 Datenwörter mit je 18 Bits speichern
fr 976 013 90 9828/072 3
kann. Jedes Datenwort besteht aus 16 Datenbits, einem Markierungsbit und einem Steuerbit. Die Datenspeicher-Adreßschaltungen 13 bestehen aus drei Indexregistern zur indirekten Adressierung des Datenspeichers 12.
Die Multiplikation- und Akkumulatoreinheit 14 besteht aus zwei 16 χ 16 Bits großen Multiplikator-Akkumulatoren MAC und MAC 2, die überlappt arbeiten.
Die Schnittstelle 15 gestattet den Datenaustausch zwischen der CU (Fig. 1) und der PMAU über eine acht Bit große bidirektionale Sammelleitung 4. Diese Schnittstelle empfängt auch die digitalen Abtastwerte des zu verarbeitenden Signales vom Analog/Digitalwandler 2 über die 13 Bit große Sammelleitung 3 (Fig. 1).
Bevor das in Fig. 2 gezeigte Gerät genau beschrieben wird, wird zuerst das Format eines Mikrobefehles beschrieben.
Mikrobefehlsformat
(Die verschiedenen in diesem Abschnitt erwähnten Geräte und Referenzen werden später genauer beschrieben)
Jeder Mikrobefehl ist 36 Bits lang und enthält die nachstehenden Felder:
Paritätsfeld 2 Bits
Feld für ürsprungs-/Bestimmungsort 6 Bits
Operationscodefeld (ΘΡ-Code) 2 Bits
RAM-Adreßfeld 10 Bits
Indexfeld 1 Bit Steuerfeld für Multiplikationseinheit 6 Bits
Verzweigungsfeld 2 Bits
Feld für nächste Befehlsadresse 7 Bits (Siehe Fig. 3).
FR 976 013 909828/0723
Paritätsfeld (Bits O und 35)
Dieses Feld dient dazu, den Befehlsspeicher 10 zu steuern.
Bit 0 steuert die erste Hälfte des Befehlsspeichers 10. Sein Wert ist so, daß die ersten 18 Bits des Mikrobefehles eine ungerade Zahl von Einsen enthalten.
Bit 35 steuert die zweite Hälfte des Befehlsspeichers 10. Sein Wert ist so, daß die letzten 18 Bits des Mikrobefehles eine ungerade Zahl von Einsen enthalten.
Feld für Ursprungs-/Bestimmungsort (Bits 2-7)
Die sechs Bits dieses Feldes bezeichnen das Gerät, an das Dater zu senden sind oder von dem Daten zu empfangen sind, während ein Mikrobefehl ausgeführt wird. Das betroffene Gerät kann irgendeine Serialisierungseinrichtung, ein Akkumulator, Ausgaberegister der Multiplikations- und Akkumulatoreinheit 14 die Eingabe/Ausgaberegister oder die A/D-Register der Schnittstelle 15 oder eines der Indexregister sein. Die nachstehende Tabelle gibt die Werte der Bits 2 bis 7 des Feldes für den Ursprungs-/Bestimmungsort nach dem jeweils angesteuerten Gerät an.
fr 976 013 909828/0723
2865722
Adressiertes Gerät Feld für Ursprungs-/
Bestimmungsort
Akkumulatoren Serialisierungseinheit SER Serialisierungseinheit SER Ausgaberegister REG Ausgaberegister REG E/A-Register Lesen E/A-Register Schreiben Indexregister IR 1 Indexregister IR 2 Indexregister IR 3 A/D-Register
(X = ignoriert)
Operationscodefeld und Verzweigungsfeld (Bits 8-9) und 26 - 27
Diese vier Bits geben die Richtung an, in der Daten relativ zum Datenspeicher 12 bewegt werden sollen und gegebenenfalls die Verzweigungsbedingungen. Außerdem geben sie an, ob das Markierungsbit in den Datenspeicher 12 zu schreiben ist und sie steuern die an die CU gesendeten Unterbrechungsanforderungen .
Die verschiedenen Operationen und Verzweigungsbedingungen sind wie folgt definiert:
2 3 4 5 6 7
1 0 0 0 X X
0 1 X 0 0 0
0 X 1 0 0 0
X 0 0 0 1 0
X 0 0 0 0 1
0 0 0 1 1 0
0 0 0 1 0 1
0 0 1 1 0 0
0 1 0 1 0 0
0 1 1 1 0 0
0 0 0 1 1 1
FR 976 013 909828/0723
RAM 0 O Indexfeld 12 - 2855722 1 0 1 1 - ,Unter (direkte Adressierung). Wenn (indirekte Adres-
Opera Feld gibt 0 1 brechung auf 1 steht, bekommt man die RAM-Adresse von dem
Bits tion im RAM-Adreßfeld angegebenen Indexregister
26 - sierung).
Bits 27 keine Verzweigen
8-9 Opera Verzweigen, wenn A/D ,Unter
O O tion wenn Unter Anforde brechung
brechungs rung = 1
endeleitung (Test A/D)
Lesen keine hoch Verzweigen
Verzwei Verzweigen, wenn A/D ,Unter
O 1 gung wenn Kenn Anforde brechung
zeichenbit rung = 1
= 1 Test (A/D)
Schrei keine Verzweigen
ben Verzwei Verzweigen, wenn A/D , Unter
gung wenn Ergeb Anforde brechung
nis von MAC1 rung = 1
positiv ist (Rest A/D)
Schrei keine Verzweigen,
ben + Verzwei- Verzweigen, wenn A/D
1 1 Kennzei-gung wenn Ergeb Anforde für den Daten-
chenbit nis von MAC1 rung = 1 das Indexbit auf O steht, wird die RAM-
setzen positiv ist geliefert
Bit große (Bit 20)
an. Wenn die Adreßart
Dieses ein RAM-Feld
speicher 12
Adresse vom
dieses Bit
FR 976 013
909828/0723
RAM-Adreßfeld (Bits 10 - 19)
Die zehn Bits dieses Feldes geben entweder eine direkte Adresse im RAM oder die Adresse eines Indexregisters und den Erhöhungswert an, der zu dem Inhalt des Indexregisters nach der laufenden Operation zu addieren ist. Dieses Feld erzeugt auch direkte Befehle für das Statusregister, den PLO oder andere an den Mikroprozessor angeschlossene Geräte.
Stfenn das Indexbit (Bit 20) auf 0 gesetzt ist, gibt dieses Feld eine direkte Adresse im RAM an. Wenn es auf 1 gesetzt ist, haben die zehn Bits des RAM-Adreßfeldes folgende Bedeutung
Bit
18
Bit
19
0 0
0 1
Bits 10-17 sind Steuerbits
Die RAM-Adresse wird vom Indexregister IR 1 geliefert.
Die RAM-Adresse wird vom Indexregister IR 2 geliefert.
Die RAM-Adresse wird vom Indexregister IR 3 geliefert.
Bits 15-17 Diese Bits definieren den Erhöhungswert, der zu dem Inhalt des durch die Bits 18-19 bezeichneten Indexregisters zu addieren ist. Dieser Wert wird zu dem Inhalt des angegebenen Indexregisters nach einem RAM-Zugriff addiert.
Bits 10-14 Diese Bits werden mit dem Inhalt des durch die Bits 18 und 19 angegebenen Indexregisters kombiniert. Wenn die Bits 10-14 mit dem Indexregister IR 1 oder IR 2 benutzt werden (sechs Bit große Register), liefern die Bits 10-13 die werthöchsten Bits der RAM-Adresse und das Bit 14 wird mit dem werthöchsten Bit des Indexregisters ODER-verknüpft (s. Fig. 4).
fr 976 013 909828/0723
Wenn diese Bits mit dem Indexregister IR 3 benutzt werden (zehn Bit großes Register), werden die Bits 10-14 mit den werthöchsten Bits des IR 3 ODER-verknüpft (s. Fig. 4).
Wenn die Bits 18 und 19 beide auf 0 stehen, sind die Bits 10-17 Steuerbits und haben folgende Bedeutung:
Bit 10 Durch dieses Steuerbit wir die Frequenz des PLO erhöht.
Bit 11 Durch dieses Steuerbit wird die Frequenz des PLO heruntergesetzt.
Bit 12 Durch dieses Bit wird der Anzeiger (IND) zurückgestellt.
Bits 13-17 Mit diesen Bits werden Einsen in die Bits
11 - 15 des acht Bit großen PMAU-Steuerbytes gesetzt.
Feld für nächste Befehlsadresse (NIA) (Bits 28 - 34)
Dieses Feld enthält die gesamte oder einen Teil der nächsten Mikrobefehlsadresse. Im Eingabebetrieb (Später zu definieren) wird das Eingabeadreßregister betätigt. Die Bits 28 bis 33 des NIA-Feldes werden in das Eingabeadreßregister geschrieben und Bit 34 wird ignoriert. Im Verarbeitungsbetrieb (später zu definieren) werden die Bits 28-33 links- oder rechtsbündig bezogen auf die Bits der Adresse für den Befehlsspeicher 10 gesetzt, abhängig von der Stellung des Bit 34. Wenn Bit 34 auf 0 steht, werden die Bits 28 bis 33 linksbündig gesetzt, wenn es auf 1 steht, rechtsbündig (s. Fig. 5).
Die Bits 28-33 werden in die Eingaberegister oder in die Verarbeitungsregister geladen, während ein Mikrobefehl ausgeführt wird.
976 °13 909828/0723
Steuerfeld für Multiplikationseinheit (Bits 1 und 21 - 25)
Dieses Feld steuert den Betrieb der Multiplikation- und Akkumulatoreinheit 14.
Bit 1 Dieses Bit steuert die Querverbindung zwischen
MAC 1 und MAC 2. Wenn das Bit 1 auf 0 gesetzt ist speist die Serialisierungseinrichtung SER 1 in RAC 1 oder LAC 1 ein und die Serialisierungseinrichtung SER 2 speist RAC 2 oder LAC 2. Wenn das Bit 1 auf 1 gesetzt ist, speist die Serialisierungseinrichtung SER 1 ein in RAC 2 oder LAC 2 und die Serialisierungseinrichtung SAR 2 speist RAC 1 oder LAC 1.
Bit 21 Dieses Bit steuert die Datenverschiebungen innerhalb von MAC 1 und MAC 2. Wenn Bit 21 auf 0 gesetzt ist, erfolgen keine Verschiebungen, wenn Bit 21 auf 1 gesetzt ist, wird eine Verschiebung ausgeführt.
Bit 22 Dieses Bit steuert das Laden der Ausgaberegister von den durch Bit 23 angegebenen Akkumulatoren. Nachdem diese Register geladen sind, setzt Bit 22 die Akkumulatoren auf 0, stellt das Abrundungswort ein und bereitet die nächste Operation vor. Wenn Bit 22 auf 0 gesetzt ist, wird keine Aktion eingeleitet. Wenn Bit 22 auf 1 gesetzt ist, werden die Ausgaberegister geladen und dann die Einheit zurückgestellt und das Abrundungswort eingestellt.
Bit 23 Dieses Bit zeigt an, welche Akkumulatoren die
Ausgabe der Serialisierungseinrichtungen empfangen sollten oder ihren Inhalt in die Ausgaberegister laden sollten. Auf 0 gesetzt gibt das
PR976013 909828/0723
Bit 23 die rechten Akkumulatoren und auf 1 gesetzjt die linken Akkumulatoren an.
Bits 24/ 25 Diese Bits geben die Form des in den durch das
S/D-Feld angegebenen Akkumulator oder die Serialisierungseinrichtung geladenen Operanden an. Wenn in eine Serialisierungseinrichtung geladen wird, bedeuten:
Operand in Normalform
Operand in invertierter Form
Operand im absoluten Wert
Operand im invertierten absoluten Wert
Beim Laden in einen Akkumulator bedeuten:
Bit Bit
24 25
Bit
24
Bit
25
0 0
O 1
1 0
1 1
0 0 Operanden in Normalform 0 1 Operanden in RAC 2 und LAC 2 in Normalform
Operanden in RAC 1 und LAC 1 in invertierter Form
0 Operanden in RAC 1 und LAC 1 in Normalform
Operanden in RAC 2 und LAC 2 in invertierter Form
1 Operanden in invertierter Form
RAM-Adre ß s ehaltungen
In den Fign. 2A - 2E ist gezeigt, wie zwei Paritätsbits des aus dem Befehlsspeicher 10 ausgelesenen Mikrobefehles über die Leitungen 20 an herkömmliche ParitätsSteuerschaltungen PTY angelegt werden, die aus drei Antivalenzschaltungen bestehen. Die Paritätssteuerschaltungen 21 empfangen natürlich auch die anderen 34 Bits des Mikrobefehles, im Interesse der
FR 976 013
Klarheit sind jedoch die Leitungen weggelassen, durch die diese 34 Bits an die Paritätssteuerschaltung 21 angelegt werden. Die Paritätssteuerschaltungen 21 liefern zwei Bits, die die Ergebnisse der auf jeder Hälfte des Befehlsspeichers ausgeführten Prüfungen angeben und über die Leitungen 22 an die Schnittstelle 15 geleitet werden.
Die zehn Bits des RAM-Adreßfeldes (Bits 10 - 19) und das Indexbit (Bit 20) des Mikrobefehles werden über eine elf Bit große Sammelleitung 23 an ein Befehlsregister 24 gegeben. Die im Befehlsregister 24 gespeicherten Bits 18-20 werden an eine Decodierschaltung 25 geleitet, während die Bits 10 - 17 an einen Eingang eines Sammelleitungsschalters mit zwei Ausgängen 26 gegeben werden. Einer der Ausgänge des Sammelleitungsschalters 26 ist über die Sammelleitung 27 mit der Schnittstelle 15 verbunden und der andere Ausgang über die Sammelleitung 28 mit dem Eingang eines Speicheradreßregisters RAR Der Ausgang eines Erhöhungsregisters 30 ist über das IR 1-Tor nit dem Indexregister IR 1, über das IR 2-Tor 32 mit dem Indexregister IR 2 und über das IR 3-Tor 33 mit dem Indexregister verbunden. Die Ausgaben von den Indexregistern IR 1, IR 2 und IR 3 werden über das RAR 1-Tor 34, das RAR 2-Tor 35 und das RAR 3-Tor 36 an das Speicheradreßregister 29 und außerdem an den Eingang eines ODER-Gliedes 37 durch die Quellentore 38, und 40 angelegt. Der Ausgang des ODER-Gliedes 37 ist über eine Sammelleitung 41 mit einer 18 Bit großen bidirektionalen internen Sammelleitung 42 verbunden, die an den Eingang der Indexregister IR 1, IR 2 und IR 3 über eine Sammelleitung und die Bestimmungstore 44, 45 bzw. 46 angeschlossen ist. Die interne Sammelleitung 42 ist außerdem über eine Sammelleitung 48 mit einer Decodierschaltung 47 verbunden.
Im Betrieb decodiert die Decodierschaltung 25 während der Ausführung eines Mikrobefehles die Bits 18 - 20. Wenn die Bits 18 und 19 beide auf 0 stehen und das Bit 20 auf 1, dann
fr 976 013 909828/0723
sind die im Befehlsregister 24 gespeicherten Bits 10-17 teuerbits, die über den Sammellextungsschalter 26 und die Sammelleitung 27 an die Schnittstelle 15 geleitet werden. Wenn das Indexbit 20 auf 0 steht, dann geben die Bits 10 17 eine Datenspeicheradresse an, die dann über den Sammelleitungsschalter 26 und die Sammelleitung 28 im Speicheradreßregister 29 gespeichert wird. Wenn eines der Bits 18 und 19 auf 0 steht und das Indexbit 20 auf 1 gesetzt wird, heißt das, daß der Datenspeicher 12 indirekt adressiert wird. Die Decodierschaltung 25 betätigt abhängig davon, welches der Indexregister IR 1, IR 2 oder IR 3 durch die Bits 18 und 19 bezeichnet werden, das RAR 1-Tor 34, da? RAR 2-Tor 35 oder das RAR 3-Tor 36. Die im Befehlsregister 24 gespeicherten Bits 10 bis 14 werden über die Sammelleitung 28 an das Speicheradreßregister 29 geleitet, wo sie mit dem Inhalt des durch die Bits 18 und 19 bezeichneten Indexregisters gemäß Darstellung in Fig. 4 kombiniert werden. Die so im Speicheradreßregister 29 erhaltene Adresse wird über die RAM-Adreßsammelleitung 49 an den Datenspeicher 12 gegeben. Die im Datenspeicher 12 ausgeführten Lese- und Schreiboperationen werden später beschrieben. Nachdem das Adreßregister 29 geladen wurde, wird der Inhalt des angegebenen Indexregisters um einen Wert erhöht, der durch die in das Erhöhungsregister 30 über eine Sammelleitung 28 und eine Sammelleitung 50 geladenen Bits 15 bis 17 definiert ist. Der im Erhöhungsregister 30 gespeicherte Wert wird durch eines der Tore 31, oder 33, das durch die Decodierschaltung 25 entsprechende Decodierung der Bits 18 und 19 betätigt wurde, in das angegebene Indexregister geleitet. Der klareren Darstellung halber wurden die Schaltungen in der Zeichnung nicht gezeigt, die die Addition des Erhöhungswertes zum Inhalt des Indexregisters ermöglichen. Die Indexregister IR 1 bis IR 3 können ebenfalls über die interne Sammelleitung 42 während der Ausführung eines Mikrobefehles oder eines später zu definierenden Steuerwortes geladen werden. Das Laden der Indexregister
fr 976 013 909828/0723
fahrend der Ausführung eines Mikrobefehles wird gesteuert .urch die Bits 3 bis 5 des Feldes für Ursprungs-ZBestimmungsrt des betreffenden Mikrobefehles. Die Bits 3 bis 5 kommen /on der Sammelleitung 51, auf der die aus dem Befehlsspeicher O ausgelesenen sechs Bits 2 bis 7 des Feldes für Ursprungs-/ 5estimmungsort des Mikrobefehles zur Verfügung stehen, und werden über eine Sammelleitung 52 in ein Befehlsregister 53 geladen. Eine Decodierschaltung 54 betätigt über nicht dargeteilte Steuerleitungen eines der Bestimmungstore 44 bis 46, abhängig davon, welches der Indexregister IR 1 bis IR 3 durch die Bits 3 bis 5 angegeben wurde. Die auf der internen Samnelleitung 42 liegenden Daten werden dann in das angegebene Indexregister über die Sammelleitung 43 und das betätigte Bestimmungstor 44, 45 oder 46 geladen. Die Indexregister werden während der Ausführung eines auf der internen Sammelleitung 42 liegenden Steuerwortes unter Steuerung der Bits 3 bis
des Steuerwortes geladen. Die Decodierschaltung 47 decodiert die Bits 3 bis 5 des Steuerwortes und betätigt eines der Bestimmungstore 44 bis 46, abhängig davon, welches Indexregister IR 1 bis IR 3 durch die Bits 3 bis 5 bezeichnet wurde. Die Bits 6 bis 17 des Steuerwortes werden dann in das angegebene Indexregister über die Sammelleitung 43 und das betätigte Bestimmungstor 44, 45 oder 46 geladen. Der Inhalt des Indexregisters kann während der Ausführung eines Mikrobefehles unter Steuerung der Bits 3 bis 5 des Feldes für Ursprungs-/ Bestimmungsort des betroffenen Befehles im Datenspeicher 12 gespeichert werden. Die Decodierschaltung 54 betätigt eines der 2uellentore 38 bis 40, abhängig davon, welches der Indexregister IR 1 bis IR 3 durch die Bits 3 bis 5 angegeben wurde. Der Inhalt des angegebenen Indexregisters wird über das betätigte Quellentor, das ODER-Glied 37 und die Sammelleitung
41 auf die interne Sammelleitung 42 gesetzt. In Verbindung nit der Arbeitsweise der Schnittstelle 15 wird später noch beschrieben, wie ein Steuerwort auf die interne Sammelleitung
42 gesetzt wird.
909828/0723
FR 976 013
- 20 Lese-ZSchreiboperationen im RAM
Datenübertragungen von und zum Datenspeicher 12 werden anschließend beschrieben. Die Dateneingabe zum Datenspeicher 12 ist mit der internen Sammelleitung über die Dateneingabeleitung 60 verbunden. Die Datenausgabe des Datenspeichers 12 ist mit einer Datenausgabesammelleitung 61 verbunden und diese mit einem Sammelleitungsschalter 62, der aus den drei Toren 63, 64 und 65 besteht. Die Sammelleitung 61 ist mit dem Eingang des Tores 63 verbunden, dessen Ausgang über eine Leitung 66 mit der internen Sammelleitung 42 verbunden ist. Der Eingang des Tores 64 ist an die AusgangsSammelleitung 67 der Multiplikationsund Akkumulatoreinheit 14 und ihr Ausgang über die Sammelleitung 66 an die interne Sammelleitung 42 angeschlossen. Die Sammelleitung 42 ist außerdem mit dem Eingang des Tores 65 verbunden, dessen Ausgang an die Eingangssammelleitung 68 der MuItiplikations- und Akkumulatoreinheit 14 angeschlossen ist. Während der Ausführung eines Mikrobefehles im Datenspeicher durchgeführte Lese- und Schreiboperationen werden durch die Bits 8 und 9 des Operationscodefeldes des Mikrobefehles gesteuert. Diese auf der Sammelleitung 69 am Ausgang des Befehlsspeichers 10 verfügbaren Bits werden in einem Befehlsregister 70 gespeichert und durch eine Decodierschaltung 71 decodiert, die selektiv eine Lese/Schreib-Steuerleitung 72 entsprechend dem Wert der Bits 8 und 9 aktiviert, wie es im Kapitel "Mikrobefehlsformat11 beschrieben wurde. Die Leitung 72 ist mit dem Datenspeicher 12 verbunden.
Wenn eine Schreiboperation auszuführen ist, ist das Signal auf der Lese-/Schreib-Steuerleitung 72 hoch und die auf der internen Sammelleitung 42 liegenden Daten werden über die Dateneingabeleitung 60 in den Datenspeicher 12 übertragen und dort an der auf der RAM-Adreßsammelleitung 49 angegebenen Adresse gespe chert. Die Daten auf der internen Sammelleitung 42 kommen von
fr 976 013 9 0 9828/0723
einem der Indexregister gemäß obiger Beschreibung oder von der Datenausgabesammelleitung 67 der Multiplikation- und Akkumulatoreinheit 14 oder von der Schnittstelle 15, wie später noch zu sehen sein wird. Die Daten auf der Ausgabedatensammelleitung 67 werden über die interne Sammelleitung 42 durch das Tor 64 übertragen, das durch eine Decodierschaltung 73 betätigt wird, an die die Bits 2 bis 7 des Feldes für ürsprungs-/Bestimmungsort über die Sammelleitung 51 und eine Sammelleitung 74 angelegt werden. Das Tor 64 wird durch die Decodierschaltung 73 betätigt, wenn die Bits 2 bis 7 das Ausgaberegister REG 1 oder REG 2 als Datenquelle angeben.
Wenn eine Leseoperation auszuführen ist, ist das Signal auf der Lese-/Schreib-Steuerleitung 72 niedrig und die im Datenspeicher 12 an der auf der RAM-Adreßsammelleitung angegebenen Adresse stehenden Daten werden über die Ausgabedatensammelleitung 67 und das über die Lese-/Schreib-Steuerleitung 72 betätigte Tor 63 auf die interne Sammelleitung 42 gegeben.
ROS-Adressierschaltungen (Fig. 2E)
Die Speicheradreßschaltungen 11 bestehen aus zwei Adreßregistern, nämlich einem sechs Bit großen Eingaberegister (EINGABE) über das nur die 64 wertniederen Bitpositionen des Befehlsspeichers 10 adressiert werden können, und einem 12 Bit großen Verarbeitungsregister (VERARBEITUNG), über das der gesamte Inhalt des BefehlsSpeichers 10 adressiert werden kann. Diese beiäen Register können entweder aus dem Feld "nächste Befehlsadresse" des laufenden Mikrobefehles oder aus einem von der teuereinheit (CU) empfangenen Steuerwort geladen werden. Die Bits 28 bis 34 des NIA-Feldes, die am Ausgang des Befehlsspeichers 10 auf der Sammelleitung 80 zur Verfügung stehen, werden in einen Sammelleitungsschalter 81 eingegeben, der sie entweder in das Eingaberegister oder in das Verarbeitungsregister lädt.
fr 976 013 909828/0723
Die Steuerung dieses Schalters 81 wird später beschrieben. Das ingabe- und das Verarbeitungsregister können auch von der internen Sammelleitung 42 durch das Tor 65, einer Eingabeleitung 68 (Fig. 2C), einer Sammelleitung 82 und einem Sammelleitungsschalter 83 geladen werden, der diese Register selektiv speist. Die Steuerung des Schalters 83 wird später beschrieben. Die Ausgaben des Eingabe- und des Verarbeitungsregisters werden in die Eingänge des ODER-Gliedes 84 über die beiden Tore 85 bzw. 86 angelegt. Die Tore 85 und 86 werden entsprechend durch den wahren und den komplementären Ausgang einer Verriegelung 87 gesteuert, die ihrerseits wieder durch eine A/D-Anforderungsleitung 88 von der Schnittstelle 15 und durch eine A/D-Prüfleitung 89 von einer Decodierschaltung 71 (Fig. 2A) gesteuert wird (später noch genauer zu beschreiben).
Die Decodierschaltung 71 decodiert die Bits des Operationscodefeldes gemäß obiger Erklärung sowie die Bits 26 bis 27 des Verzweigungsfeldes, die im Befehlsregister 70 gespeichert sind, wohin sie über eine Leitung 90 geladen wurden. Die Decodierschaltung 71 betätigt die A/D-Prüfleitung 89, wenn die Bits 26 und 27 des Verzweigungsfeldes auf 1 bzw. 0 stehen. Die k/D-Prüfleitung 89 ist mit einem ersten Eingang von 2 UND-liedern 91 und 92 verbunden, deren Ausgänge entsprechend an den Einschalt- und Rückstelleingang der.Verriegelung 87 angeschlossen sind. Die A/D-Anforderungsleitung 88 ist direkt nit dem anderen Eingang des UND-Gliedes 91 und über einen Inverter 93 mit dem anderen Eingang des UND-Gliedes 92 verbunäen. Der Ausgang vom ODER-Glied 84 ist ein 12 Bit großes Wort. Das wertniederste Bit dieses Wortes wird dem ersten Einjang einer Antivalenzschaltung 94 zugeführt, deren anderer Eingang mit der Verzweigungsbedingungsleitung von einer Verzweigungsschaltung 95 verbunden ist. Die 11 werthohen Bits äes Ausgabewortes vom ODER-Glied 84 bilden zusammen mit der Ausgabe von der Antivalenzschaltung 94 die 12 Bit große Adresse les vom Befehlsspeicher 10 zu holenden Mikrobefehles. Diese
Adresse wird über die 12 Bit große Sammelleitung 96 an den
fr 976 013 909828/0723
Jefehlsspeicher ROS 10 gegeben. Die Verzweigungsschaltung 95 aktiviert die Verzwexgungsbedxngungsleitung selektiv entsprechend der oben als Teil der Beschreibung des Mikrobefehls-"ormates gelieferten Tabelle. Die Verzweigungsschaltung 95 ist mit der A/D-Prüfleitung 89 und der A/D-Anforderungsleitung 8 verbunden und aktiviert die Verzweigungsbedingungsleitung, f/enn beide Leitungen 88 und 89 ein hohes Signal führen, was der Bedingung "Verzweigen wenn A/D-Anforderung =1" entspricht.
Die Verzweigungsschaltung 95 ist außerdem mit einer Prüfunterbrechungsendleitung (nicht dargestellt) und einer Unterbrechungsendleitung (nicht dargestellt) verbunden: wenn diese beiden Leitungen ein hohes Signal führen, aktiviert sie die Verzweigungsbedingungsleitungen, was der Bedingung "Verzweigung bei Unterbrechungsende" entspricht. Die Leitung für das Signal Prüfunterbrechungsende kommt von der Decodierschaltung 71, die das Signal auf dieser Leitung hochgehen läßt, wenn die Bits 8, 9, 26 und 27 entsprechend auf 0, 0,' 0 und 1 stehen. Die Unterbrechungsendleitung kommt von einer Unterbrechungssteuerung 115 in der Schnittstelle 15.
Die Verzweigungsschaltung 95 ist weiterhin mit einer Prüftennzeichenbitleitung (nicht dargestellt) verbunden und empfängt das Kennzeichenbit des aus dem Datenspeicher gelesenen Wortes und aktiviert die Verzweigungsbedingungsleitung, wenn besagte Leitung hoch ist und das Kennzeichenbit auf 1 steht. Das entspricht der Bedingung "Verzweigen wenn Kennzeichenbit = 1". Die Leitung für das Prüfkennzeichenbit kommt von der Decodierschaltung 71, die das Signal auf dieser Leitung aniebt, wenn die Bits 8, 9, 26 und 27 entsprechend auf 0, 1, D und 1 stehen. Das Kennzeichenbit wird an die Verzweigungsschaltung 95 über die Leitung 97 gegeben, die dieses Bit von äer internen Sammelleitung 42 empfängt. Die Verzweigungsschaltung 95 ist außerdem an eine nicht dargestellte Prüfleitung für REG 1 Vorzeichen angeschlossen und empfängt das zum Inhalt
fr 976 013 909828/0723
des Ausgaberegisters REG 1 der Multiplikations- und Akkumulatoreinheit 14 gehörende Vorzeichenbit und aktiviert die Verzweigungsbedingungsleitung, wenn die Prüfleitung für das REG 1-Vorzeichen ein hohes Signal führt und das Vorzeichenbit auf 0 steht. Das entspricht der Bedingung "Verzweigen wenn MAC 1 Ergebnis positiv ist". Das Vorzeichenbit von REG 1 wird über die Leitung 98 an die Verzweigungsschaltung 95 angelegt. Die Vorzeichenprüfleitung für REG 1 kommt von der Decodierschaltung 71, die das Signal auf dieser Leitung hochgehen läßt, wenn die Bits 2, 9, 26 und 27 entsprechend auf 1,0, 0 1 oder auf 1, 1, 0, 1 gesetzt sind. Die Verzweigungsschaltung 95 empfängt schließlich noch über die Leitung 124 den von der Schnittstelle 15 gelieferten Anzeiger (IND) und aktiviert die Verzweigungsbedingungsleitung, wenn die A/D-Prüfleitung 89 hoch ist und der Anzeiger auf 1 steht. Wenn die Verzweigungsbedingungsleitung aktiviert wird, werden ein Einerbit und das wertniedrigste Bit des vom ODER-Glied 84 gelieferten Ausgabewortes modulo-2-addiert. Dadurch kann zu dem Mikrobefehl verzweigt werden, dessen Adresse direkt der im Adreßregister enthaltenen Adresse folgt, wenn diese Adresse geradzahlig ist (ihr wertniederstes Bit steht auf 0). Es kann aber auch zu dem Mikrobefehl verzweigt werden, dessen Adresse unmittelbar vor der im Adreßregister stehenden Adresse steht, wenn die Adresse im Adreßregister ungeradzahlig ist (ihr wertniederstes Bit steht auf 1).
Schnittstelle 15 (Fig. 2B)
Die Schnittstelle 15 enthält ein 18 Bit großes Eingabe-/ Ausgaberegister 100, das an eine 8 Bit große bidirektionale
ammelleitung 4 angeschlossen ist und in dem die zwischen der PMAü und der CU ausgetauschten Daten gespeichert werden.
fr 976 013 909828/0723
Das Eingabe-/Ausgaberegister 100 ist mit einem Ausgang über eine Leitung 101 an die interne Sammelleitung 42 angeschlossen, die mit einem Eingang dieses Registers über eine Leitung 102 und ein Tor 103 verbunden ist. Die Schnittstelle 15 enthält auch ein 16 Bit großes Statusregister 104, das über die interne Sammelleitung 42 und eine Leitung 105 geladen werden kann. Der Inhalt des Statusregisters 104 kann direkt über eine Leitung 106 auf die bidirektionale Sammelleitung 4 gesetzt werden. Das Statusregister 104 enthält ein 8 Bit großes PLO-Steuerbyte und ein 8 Bit großes PMAU-Steuerbyte.
PLO-Steuerbyte
Bit 0 das ist das Steuerwortbit.
Bit 1 das ist das Kennzeichenbit.
Bit 2-6 diese Bits definieren verschiedene Signalverarbeitungsraten. Bei einer Modemanwendung des in Fig. 1 gezeigten Systems haben die Bits 2-6 folgende Bedeutung: ,
Bits 2-4 definieren die Bitrate Bits 5-6 definieren die Signalrate.
Bit 7 dieses Bit definiert die Abfragerate.
Die Bits 0 und 1 erhält man von der internen Sammelleitung über die Leitung 105. Die Bits 2-7 werden über eine Leitung 107 an einen PLO-Zähler 108 angelegt. In dem in den Fign. 1 und 2 gezeigten Ausführungsbeispiel enthält der externe PLO (Fig. 1) nur den eigentlichen Oszillator. Die üblichen Teilerketten, die eine Variation von Phase und Frequenz der vom PLO gelieferten Impulse gestatten, sind in der Schnittstelle 15 enthalten und durch den PLO-Zähler 108 dargestellt. Der PLO-Zähler 108 empfängt die vom externen Oszillator gelieferten Impulse über die Leitung 109 und liefert Abfrageimpulse für den Analog/Digitalkonverter über die Leitung 110 und Impulse für die CU in der Bit- und Signalrate über die Leitungen
fr 976 013 90 9828/072 3
bzw. 112. Der PLU-Zähler 108 wird von den Bits 2-7 des acht Bit großen, über die Leitung 107 empfangenen PLO-Steuerbyte und von den Bits 10 bis 11 des RAM-Adreßfeldes des ausgeführten Mikrobefehles gesteuert, wenn dieser Mikrobefehl ein Steuerwort ist, d.h. wenn die Bits 18, 19 des RAM-Adreßfeldes beide auf 0 stehen. Diese Bits 10 bis 11 werden an den PLU-Zähler 108 über die Leitungen 27 und 113 geleitet.
PMAU-S teuerbyte
Das acht Bit große PMAU-Steuerbyte enthält unter Hardwareoder Software-Steuerung geschriebene Information.
Bit 8 dieses Bit gibt das Ergebnis der auf der
ersten Hälfte des ROS 10 ausgeführten Paritätsprüfung an.
Bit 9 dieses Bit gibt das Ergebnis der auf der
zweiten Hälfte des ROS 10 ausgeführten Paritätsprüfung an.
Bit 10 dieses Bit bezeichnet einen Lese- oder Schreibfehler durch die CU.
Bits 11 - 15 diese Bits sind nicht zugeordnet und können vom Programmierer für Softwareprüfungen verwendet werden.
Die Bits 8-9 werden über die Leitungen 22 von den Paritätssteuerschaltungen 21 in das Statusregister 104 geladen. Die 3its 11 - 15 werden über die Leitung 27 in das Register 104 jeladen durch die Bits 13-17 des RAM-Adreßfeldes eines Mikro-Defehles, in dem die Bits 18, 19 beide auf 0 stehen und Bit 20 iuf 1 steht. Bit 10 wird auf 1 gesetzt, sobald von der CU sine Leseoperation ausgeführt wird, wogegen von der PMAU eine Bchreiboperation erwartet wurde oder umgekehrt. Die von der fr 976 013 9 0 9 82 8 /072 3
CU ausgeführten Lese- und Schreiboperationen werden später beschrieben. In dem 8 Bit großen PMAU-Steuerbyte genügt ein einziges Einerbit, um eine Unterbrechungsausnahmeanforderung einzuleiten und an die CU zu führen. Dazu werden die Bits im 'MAU-Steuerbyte ODER-verknüpft und das Ergebnis über eine Leitung 114 an eine Unterbrechungssteuerung 115 gegeben, die eine mit der CU verbundene Unterbrechungsausnahmeleitung 116 aktiiert, wenn besagtes Ergebnis ein Einerbit ist. Die Unterbrechungssteuerung 115 empfängt auch über die Leitung 117 eine normale Unterbrechungsanforderung von der Decodierschaltung 1 (Fig. 2A), wenn die Bits des Operationscodefeldes und des /erzweigungsfeldes des laufenden Mikrobefehles decodiert werden. Die Unterbrechungssteuerung 115 spricht auf einen hohen Signalpegel auf der Leitung 117 an durch Aktivierung der normalen Unterbrechungsleitung 118, die mit der CU verbunden ist. Die Unterbrechungssteuerung 115 ist mit einer Unterbrechungshalteleitung 119 verbunden, auf die das Bit 2 des im Eingabe-/ Ausgaberegister 100 gespeicherten Steuerwortes geleitet wird (später zu beschreiben).
Die Schnittstelle 15 enthält auch ein 13 Bit großes A/D-Register 120, in dem die digitale Probe des zu verarbeitenden Signales gespeichert wird, wie sie vom Analog/Digital-Wandler (Fig. 1) über die Sammelleitung 3 empfangen wurde. Diese Probe wird über die interne Sammelleitung 42 durch ein Tor 121 und sine Leitung 122 übertragen. Eine A/D-Anforderungsschaltung 123 gibt eine A/D-Anforderungsanzeige auf die Leitung 88, wenn las A/D-Register 120 geladen ist. Eine Decodierschaltung 126 steuert den Datenaustausch zwischen der PMAU und der CU und iie übertragung der zu verarbeitenden Probe vom A/D-Register 120 an die interne Sammelleitung 42. Die Decodierschaltung 126 empfängt die Bits 3-5 des S/D-Feldes des ausgeführten Ylikrobefehles über die Leitungen 51 und 127 und die Bits des Operationscodefeldes dieses Mikrobefehles über die Leitungen 69 und 128 und liefert über die Leitung 124 den Anzeiger IND, der durch das Bit 12 des RAM-Adreßfeldes des ausgeführten
fr 976 013 909828/0723
4ikrobefehl.es auf 0 zurückgestellt wird, wenn die Bits 18 bis 9 dieses Feldes beide auf 0 und das Bit 20 auf 1 stehen. Dieses Bit 12 wird über die Leitung 27 und eine Leitung 125 an die Decodierschaltung 126 geleitet.
Eine Decodierschaltung 129 gestattet die Decodierung der zwischen der PMAU und der CU ausgetauschten Markierungen. Diese Markierungen sind folgende:
TD Diese von der CU empfangene Markierung gibt an, ob die von dort über die Leitung 4 gelieferten Daten gültig sind.
VT Diese Markierung ist eine Bestätigung der Markierung TD und wird von der PMAU an die CU gesendet.
PMAU Mit dieser von der CU empfangenen Markierung wird SELECT die PMAU gewählt, wenn die CU an mehrere Verarbeitungseinheiten angeschlossen ist.
TA 1 Diese zwischen der PMAU und der CU ausgetauschte Markierung steuert die Datenübertragungen von und zum Eingabe-/Ausgaberegister 100.
TA 2 Diese zwischen der PMAU und der CU ausgetauschte Markierung wird als Datenbit verwendet.
R/W Diese von der CU empfangene Markierung steuert die Richtung des Datenaustausches zwischen der PMAU und der CU.
Steuerwort (CW)
)ie CU kann die PMAU mittels Steuerwörtern überwachen. Ein ran der CU empfangenes Steuerwort wird in das Eingabe-/Ausgaberegister 100 eingeschrieben und anschließend im Datenspeicher O gespeichert oder direkt ausgeführt. Es hat eine Länge von 8 Bits und wird von der CU nach einer von der PMAU angefor-Werten Unterbrechung übertragen. Das Format des Steuerwortes .st in Fig. 6 dargestellt.
FR 976 013
Bit O Dieses Steuerbit zeigt an, ob das Wort ein Steuerwort oder ein Datenwort ist. Wenn das Bit 0 auf 0 steht, sind die Bits 2-17 Datenbits. Das Wort (Bits 0-17) ist im RAM zu speichern. Wenn Bit 0 auf 1 steht, bilden die Bits 0-17 ein Steuerwort.
Bit 1 Dieses Bit zeigt an, ob das Steuerwort direkt auszuführen oder im RAM zu speichern ist. Wenn das Bit auf 0 steht, ist das Steuerwort in den RAM zu schreiben, wenn es auf 1 steht, ist es direkt auszuführen.
Bit 2 Dieses Bit gestattet der CU eine Unterbrechungsanforderung oder die Aufrechterhaltung einer angeforderten Unterbrechung. Wenn Bit 2 auf 0 steht, erfolgt keine Unterbrechung, wenn Bit 2 auf 1 steht, ist von der PMAU eine Unterbrechung angefordert (nur im Falle einer direkten Ausführung, d.h. wenn Bit 1 auf 1 steht).
Diese Bits geben das Bestimmungsregister an, in das die Bits 6 - 17 zu laden sind.
Bit
5
0 0 Keines
0 1 Indexregister IR 1
1 0 Indexregister IR 2
11 Indexregister IR 3
0 Eintragung ROS-Adreßregister 1 Verarbeitung ROS-Adreßregister 1 0 PLO-Zähler
1 Statusregister
Bits Das sind die in das Bestimmungsregister zu ladenden 6-17 Datenbits. Diese Bits stehen rechtsbündig im Format des Bestiiranungsregisters.
- 30 PMAU/CU-Datenübertragungen
Die CU kann keinen Datenaustausch mit der PMAU einleiten. Vor jeder Datenübertragung fordert die PMAU eine Unterbrechung an. Die Datenübertragung wird dann durch die CU eingeleitet, die die PMAU direkt durch Aktivierung der Markierung PMAU SELECT ansteuert. Die PMAU trennt sich von der CU, wenn diese Markierung verschwindet.
Von der CU ausgeführte Schreiboperationen (von CU nach PMAU)
Die Daten von der Steuereinheit werden in Einheiten von jeweils 9 Bits in das Eingabe-/Ausgaberegister 100 geladen.
Die Markierung R/W wird auf 0 gesetzt.
Die Markierung TA 1 gibt an, ob die von der CU auf die Leitung 4 gesetzten 8 Bits in die werthöchsten Bitpositionen (MSB) oder in die wertniederen Bitpositionen (LSB) des Eingabe- !lusgaberegisters 100 zu laden sind. Wenn die Markierung TA 1 auf 0 steht, sind die 8 Bits in die MSB-Positionen zu laden, und wenn die Markierung auf 1 steht, in die LSB-Positionen.
Die Markierung TA 2 wird wie folgt als"Datenbit benutzt. Em allgemeinen werden bei einer CU-Schreiboperation die LSB-Positionen zuerst geladen. Die 8 Bits von der Leitung 4 werden in die Positionen 10-17 des Eingabe-/Ausgaberegisters 100 und die Markierung TA 2 in die Position 1 (Kennzeichen) des Registers geladen. Die hinterher von der CU auf die Leitung jesetzten 8 Bits werden in die Positionen 2-9 und die nächste Markierung TA 2 in die Position 0 (Steuerbit) des Eingabe-/Ausjaberegisters 100 gesetzt.
976 °13 S09828/0723
fenn die beiden Positionen 0 und 1 des Eingabe-/Ausgaberegisters 100 auf 1 stehen, dann ist das in diesem Register enthaltene Wort ein Steuerwort, das sofort ausgeführt werden muß. In diesem Fall kann die Position 2 auf eins gesetzt sein, um die laufende Unterbrechung zu halten. Wenn eine der Positionen 0 oder 1 nicht auf 1 steht, dann wird das im Eingabe-/Ausgaberegister 100 enthaltene Wort auf die interne Sammelleitung 42 gesetzt, um im Datenspeicher gespeichert zu werden. In diesem all geht am Ende der Schreiboperation das Signal auf der Unterbrechungsanforderungsleitung herunter, soweit keine Unterbrechungsausnahme vom Statusregister 104 angefordert wird.
Das Steuerwort gestattet ein Laden der Eingabe- und Verarbeitungs-ROS-Adreßregister. Die Decodierschaltung 47 (Fig. 2A) decodiert die Bits 3 - 5 des auf der internen Sammelleitung 42 stehenden Steuerwortes und aktiviert selektiv zwei Steuerleitungen 129, die das Tor 83 steuern (Fig. 2E). Die "Leitungen sperren entweder das Tor 83, wenn keines der ROS-Adreßregister sin Bestimmungsregister ist, oder sie lassen das Tor 83 selektiv den Inhalt der Leitung 82 an die Eingabe- und Verarbeitungs-ROS-Adreßregister übertragen. Wenn ein ROS-Adreßregister, z.B. das Verarbeitungsregister, das Bestimmungsregister ist, werden die Bits 6-17 des auf der internen Sammelleitung 42 liegenden Steuerwortes an das Verarbeitungsregister durch das Tor 65 (Fig. 2C), die Leitungen 68 und 82 und das Tor 83 übertragen. Das Tor 65 wird von der Decodierschaltung 73 entsprechend den Bits 3-5 des auf der internen Sammelleitung 42 stehenden Steuerwortes aktiviert.
Von der CU ausgeführte Leseoperationen (von der PMAU zur CU)
Die CU kann den Inhalt des Statusregisters 104 oder des Eingabe-/Ausgaberegisters 100 lesen. Im letzteren Fall muß das iingabe-Ausgaberegister 100 vorher von der PMAU geladen worden sein.
fr 976 013 909828/0723
- 32 Die Markierung R/W wird auf 1 gesetzt.
Die Markierung TA 1 zeigt an, ob die auf die Leitung 4 gegebenen Bits von den MSB- oder von den LSB-Positionen des Eingabe Ausgaberegisters 100 oder vom Statusregister 104 kommen müssen. Wenn diese Markierung auf 0 gesetzt ist, sind die Bits von den MSB-Positionen zu laden, und wenn sie auf 1 steht von den LSB-Positionen.
Die Markierung TA 2 gibt an, ob der Inhalt des Eingabe-/Ausgaberegisters 100 oder der des Statusregisters 104 zu lesen ist. Wenn diese Markierung auf 0 steht, zeigt sie an, daß der Inhalt des Eingabe-/Ausgaberegisters 100 auszulesen ist, und wenn sie auf 1 steht zeigt sie an, daß der Inhalt des Statusregisters 104 auszulesen ist.
In letzterem Fall wird der Inhalt des Statusregisters 104 direkt über die Leitung 106 auf die Leitung 4 gegeben. Das Statusregister 104 kann jederzeit ausgelesen werden, auch wenn keine Unterbrechungsanforderung von der PMAU eingeleitet ist.
MuItiplikations- und Akkumulatoreinheit 14
Die Multiplikations- und Akkumulatoreinheit 14 besteht aus zwei identischen 16x16 Bits großen Multiplikator-Akkumulatoren mit den Bezeichnungen MAC 1 und MAC 2, die in diesem Fall identisch sind mit dem Multiplikator-Akkumulator, der in der deutschen Patentanmeldung P 27 50 212.1 vom 10. Nov. 1977 beschrieben ist. Der Multiplikator-Akkumulator MAC 1 enthält eine 16 Bit große Serialisxerungseinrxchtung SER 1, zwei 16 Bit große Akkumulatoren LAC 1 für die linke und RAC 1 für die rechte Seite und ein 16 Bit großes Ausgaberegister REG 1. In ähnlicher Weise enthält der MAC 2 eine 16 Bit große Serialisxerungseinrxchtung SER 2, zwei 16 Bit große Akkumulatoren LAC 2 für die linke und RAC 2 für die rechte Seite sowie ein
fr 976 013 909828/0723
16 Bit großes Ausgaberegister REG 2. Jede Serialisierungseinrichtung und jeder Akkumulator ist eindeutig einem Eingabepuffer mit dem Vorsatzbuchstaben B zugeordnet. So enthalten also die Einheiten MAC 1 und MAC 2 Eingabepuffer B SER 1, B LAC 1, B RAC 1, B SER 2, B LAC 2 und B RAC 2. Die Eingangsleitung 68 zur Multiplikation- und Akkumulatoreinheit 14 ist mit dem Eingang eines Sammelleitungsschalters 130 verbunden. Die beiden Ausgänge des Sammelleitungsschalters sind mit der Eingangsleitung 132 zum MAC 1 und über einen Inverter 131 mit der Eingangsleitung 133 zum MAC 2 verbunden, der über die Leitung 160 ein komplementäres Signal empfängt. Der Sammelleitungsschalter 130 wird durch die Bits 3-5 des S/D-Feldes des laufenden Mikrobefehles gesteuert, die über die Leitung und eine Leitung 134 dorthingeleitet werden. Die über die Eingangsleitung 132 übertragenen Bits werden parallel an die Eingabepuffer B SER 1, B LAC 1 und B RAC 1 angelegt. Der serielle Ausgang der SER 1 ist mit den Multiplikatoreingängen des LAC 1 und des RAC 1 über die UND-Glieder 135 bzw. 136 verbunden Der serielle Ausgang des LAC 1 ist mit dem seriellen Eingang des RAC 1 verbunden, dessen serieller Ausgang über die Leitung 137 mit dem seriellen Ausgang des LAC 1 verbunden ist. Die parallelen Ausgänge vom LAC 1 und RAC 1 werden dem Ausgaberegister REG 1 zugeführt, dessen Ausgang mit der Ausgangssammelleitung 138 vom MAC 1 verbunden ist. Die über die Eingangsleitung 1 33 übertragenen Bits werden parallel an die Eingabepuffer B SER 2, B LAC 2 und B RAC 2 angelegt. Der serielle Ausgang der SER 2 ist über die UND-Glieder 139 bzw. 140 mit den Multiplikatoreingängen des LAC 2 bzw. RAC 2 verbunden.
Der serielle Ausgang des LAC 2 ist mit dem seriellen Eingang des RAC 2 verbunden, dessen serieller Ausgang über die Leitung 141 mit dem seriellen Eingang des LAC 2 verbunden ist. Die parallelen Ausgänge vom LAC 2 und RAC 2 werden dem Ausgangsregister REG 2 zugeführt, dessen Ausgang mit der Ausgangsleitung 142 vom MAC 2 verbunden ist. Der serielle Ausgang der
FR 976 013 909828/0723
SER 1 ist auch mit den Multiplikatoreingängen des LAC 2 und des RAC 2 über die Leitung 143 und die UND-Glieder 144 bzw. 145 verbunden. Der serielle Ausgang der SER 2 ist auch an die Multiplikatoreingänge des LAC 1 und des RAC 1 über die Leitung 146 und die UND-Glieder 147 bzw. 148 angeschlossen. Die Ausgangsleitungen 138 und 142 sind mit den Eingängen eines Sammelleitungsschalters 149 verbunden, dessen Ausgang an die Ausgabedatensammelleitung 67 von der Multiplikation- und Akkumulatoreinheit 14 angeschlossen ist. Der Sammelleitungsschalter 149 wird durch die Bits 5-7 des S/D-Feldes des laufenden Mikrobefehles gesteuert, die über die Leitung 51 angelegt werden. Die Multiplikations- und Akkumulatoreinheit 14 enthält weiterhin eine Decodierschaltung 150, die über die Leitung 51 und eine Leitung 151 die Bits 2-5 des S/D-Feldes des laufenden Mikrobefehles und über eine Leitung 152 die 6 Bits des Steuerfeldes für die Multiplikationseinheit des laufenden Mikrobefehles empfängt. Die Decodierschaltung 150 steuert den Betrieb der Multiplikations- und Akkumulatoreinheit 14 über nicht dargestellte Steuerleitungen. Dieser Vorgang wird später im einzelnen beschrieben. Die Decodierschaltung 150 gibt auf die Leitung 160 außerdem ein an den Inverter 131 anzulegendes Komplementärsignal aufgrund der Decodierung der Bits 24, 25 des Steuerfeldes für die Multiplikationseinheit .
Die aus den Serialisierungseinrichtungen, den Akkumulatoren und den zugehörigen Puffern zusammengesetzten Blöcke, d.h. die Blöcke B SER 1 + SER 1, B LAC 1 + LAC 1, B RAC 1 + RAC 1, B SER 2 + SER 2, B LAC 2 + LAC 2, B RAC 2 + RAC 2 bestehen aus identischen 16 Bit großen Einheiten. Jede dieser Einheiten enthält zwei jeweils 8 Bit große Grundkomponenten, nämlich eine Komponente mit der Bezeichnung M, die die acht werthöchsten Bits enthält, und eine Komponente mit der Bezeichnung L, die die acht wertniedrigsten Bits enthält. In Fig. 7 ist eine solche acht Bit große Grundkomponente gezeigt. Sie hat die acht Eingänge XO - X7, an die 8 Bits von der Ein-
fr 976 013 9Ϊ9828/07 2 3
gangsleitung 132 oder 133 parallel angelegt werden. Diese können die werthöchsten oder die wertniedrigsten Bits sein, abhängig davon, ob die Grundkomponente als M-Komponente oder als L-Komponente benutzt wird. Die Eingänge XO - X7 sind entsprechend mit den Eingängen von 8 Verriegelungen PHO - PH7 verbunden, die den 8 Bit großen Eingabepuffer der Komponente bilden. Die Ausgänge der Verriegelungen PHO - PH7 sind entsprechend an einen der Eingänge von 8 UND-Gliedern 160 bis 167 angeschlossen, deren anderer Eingang mit einer Multiplikatorleitung verbunden ist. Die Ausgänge der UND-Glieder 160 sind entsprechend an einen ersten Summeneingang von 8 Zellen mit der Bezeichnung ZELLE 0 - ZELLE 7 verbunden. Hierbei handel es sich um Addierer- oder Subtrahiererzellen, die im einzelnen noch im Zusammenhang mit Fig. 8 beschrieben werden und jeweils einen zweiten Summeneingang und einen Summenausgang haben. Jede der Zellen 1-7 ist mit ihrem zweiten Summeneingang an den Summenausgang der vorhergehenden Zelle angeschlossen, während der zweite Summeneingang der Zelle 0 mit dem seriellen Eingang Sx der Grundkomponente verbunden ist. Die Summenausgänge der Zellen 1-6 sind entsprechend mit einem Eingang der sechs UND-Glieder 169 - 174 verbunden, deren Ausgänge an die sechs Ausgänge S1 - S6 angeschlossen sind. Der Summenausgang der Zelle 0 ist mit einem Eingang einer Antivalenzschaltung 175 verbunden, deren anderer Eingang an den Übertragsausgang der Zelle 1 angeschlossen ist. Der Ausgang der Antivalenzschaltung 175 ist mit einem der Eingänge des UND-Gliedes 168 verbunden. Der andere Eingang der UND-Glieder 168 - 174 ist nit der Ausgangstorleitung verbunden. Der Ausgang des UND-Gliedes 168 ist an einen Ausgang SO angeschlossen. Der Summenausgang der Zelle 7 ist direkt mit einem Ausgang S7 verbunden. Die Ausgänge SO - S7 bilden den acht Bit großen parallelen Ausgang der Grundkomponente. Der Summenausgang der Zelle 7 ist auch mit dem seriellen Ausgang der Komponente verbunden. Eine Taktleitung ist parallel an alle Zellen 0-7 der Komponente
fr 976 013 909828/0723
angeschlossen. Eine Decodierschaltung 176 empfängt als Eingänge drei Steuerleitungen CTRL 0, CTRL 1 und CTRL 2 von der Decodierschaltung 150 (Fig. 2D) und aktiviert wahlweise die Leitung "S1 auf Einsetzen", die mit der Zelle 1 verbunden ist; die Leitung "LSB Addieren", die mit der Zelle 7 verbunden ist; die Leitung "S1 auf 0 setzen", die mit der Zelle 1 verbunden ist; die Leitung "MSB Subtrahieren", die mit der Zelle 0 verbunden ist; die Leitung "Ausgabe" zu den UND-Gliedern 168 bis 174; die Leitung "Eingabe X" zu den Verriegelungen PHO PH7 und die Leitung "auf 0 setzen" zu den Zellen 0 und 2-7. Die Befehle auf diesen Leitungen werden gemäß der nachfolgenden Tabelle von den Steuerleitungen CTRL 0, CTRL 1 und CTRL 2 erzeugt .
- 36 -
CTRL 0 CTRL 1 CTRL 2
Ausgabe
Auf 0 setzen S1 auf "0" setzen S1 auf "1" setzen Eingabe X LSB Addieren MSB Subtrahieren
(X = ignorieren)
1 1 1
0 0 X
0 0 0
0 X 1
0 1 X
X X 1
X 1 X
Ausgabe
Auf 0 setzen
S1 auf 0 setzen S1 auf 1 setzen Eingabe X
FR 976 013
Beschreibung der Befehle
Durch diesen Befehl wird der Inhalt der Zellen 0 - 6 an die Ausgänge SO - S6 übertragen. Mit diesem Befehl werden alle Zellen mit Ausnahme der Zelle 1 auf 0 gesetzt. Dieser Befehl setzt die Zelle 1 auf 0. Dieser Befehl setzt die Zelle 1 auf 1 . Durch diesen Befehl werden die Bits an den Eingängen XO - X7 in die Verriegelungen PHO - PH7 geladen.
909828/0723
LSB Addieren Durch diesen Befehl wird + 1 zum Inhalt der
Zelle 7 addiert. Er ist nur in einer L-Komponente wirksam (+ 1 wird zum wertniedersten Bit des 16 Bit großen Wortes addiert).
MSB Subtrahieren Dieser Befehl dreht die Zelle 0 in eine Subtrahiererzelle und ist nur in M-Komponenten des Akkumulators aktiv.
In den Serialisierungseinrichtungen SER 1 und SER 2 sind die
ingänge XO - X7 mit der Eingangssammelleitung verbunden. Der Ausgang 7 der Komponente M ist mit dem seriellen Eingang SX der Komponente L verbunden. Der Ausgang S7 der Komponente L ist der serielle Ausgang der Serialisierungseinrichtung und die Ausgänge SO - S6 sind nicht benutzt. Die Multiplikatorleitungen der Komponenten L und M sind miteinander verbunden. In jedem Akkumulator sind die Eingänge XO - X7 und die Ausgänge SO - S7 der Komponenten M und L entsprechend mit den Eingangs- und Ausgangssammelleitungen verbunden. Die Multiplikatorleitung der Komponente M ist mit dem Multiplikatoreingang des Akkumulators, ihr serieller Eingang SX mit dem seriellen Eingang SX des Akkumulators und ihr Ausgang S7 mit dem seriellen Eingang SX der Komponente L verbunden. Die Multiplikatorleitung der Komponente L ist mit dem Multiplikatoreingang des Akkumulators und ihr serieller Ausgang SX mit dem seriellen Ausgang SX des Akkumulators verbunden.
Bevor die Arbeitsweise der Einheit 14 beschrieben wird, wird zuerst eine Addierer-Subtrahiererzelle beschrieben.
Die herkömmlichen Addiererzellen 1-6 haben drei Eingänge und zwei Ausgänge. Einer der beiden Ausgänge, der sogenannte Summenausgang, liefert ein Bit, das gleich einer Modulo-Zweiaddition der drei an die Eingänge angelegten Bits ist, während der andere, der sogenannte Übertragsausgang, ein Übertragsbit
fr 976 013 909828/0723
liefert, das aus der Addition der drei Eingangsbits resultiert, Der erste Eingang empfängt ein sogenanntes Operandenbit von den zu der jeweiligen Zelle gehörenden UND-Gliedern 161 - 167. Der zweite Sumraeneingang empfängt das auf dem Summenausgang der linken Zelle liegende Bit und der dritte Übertragseingang empfängt das Übertragsbit von der genannten linken Zelle um eine Taktzeit verzögert. Nachstehend ist die Wahrheitstabelle aufgeführt.
Operand Summe übertrag Summe Übertrag
O O O O O
Tabelle I O O 1 1 O
O 1 O 1 O
O 1 1 O 1
1 0 O 1 O
Eingabebits Ausgabebits 1 O 1 O 1
1 1 O O 1
1 1 1 1 1
Die Subtraktionszelle O hat ebenfalls drfei Eingänge (Operand, Summe und übertrag) und zwei Ausgänge (Summe und übertrag), die genauso angeschlossen sind, wie Eingänge und Ausgänge der Addiererzellen. In den Subtraktionszellen werden die Eingangsbits "Operand" und "Übertrag", die negativ sind, von dem positiven Summenbit subtrahiert, entsprechend der nachstehenden Wahrheitstabelle.
FR 976 013
909828/0723
- 39 Tabelle II
Eingangsbits
Ausgangsbits
Operand
O
O
O
O
1
1
1
1
Summe
O O 1 1 O O 1 1
Übertrag
O 1 O 1 O 1 O 1
Summe
O
1
1
O
1
O
O
1
Übertrag
O 1 O O 1 1 O 1
Im Zusammenhang mit Fig. 8 wird anschließend eine beispielhafte Zelle beschrieben, die als Addiererzelle oder Subtraktionszelle verwendet werden kann.
Diese Zelle besteht aus einer Antivalenzschaltung 180, die das früher definierte Operandenbit über die Eingangsleitung OP 181, das Summenbit von der vorhergehenden Zelle über die Eingangsleitung S 182 und das Übertragsbit über die Eingangsleitung C 183 empfängt. Die Ausgabe der Antivalenzschaltung 180 wird in eine Verriegelung 184 eingegeben, die das Summenausgangsbit speichert und es an den Summenausgang 185 der Zelle gibt, sobald ein Taktimpuls über die Taktleitung angelegt wird. Die Leitung "auf O setzen" ist mit der Verriegelung 184 verbunden, wenn die Zelle die Zelle 0 ist oder eine der Zellen 2-6; wenn die Zelle die Zelle 1 ist, ist die Leitung "S1 auf 0 setzen" mit der Verriegelung 184 verbunden. Eine Majoritätsschaltung 186 empfängt das Operandenbit über die Leitung 181, das Übertragsbit über die Leitung 183 und das Operandenbit, das eventuell durch eine Antivalenzschaltung 187 invertiert ist, über die Leitung 188 und erzeugt ein Einerbit, sobald die Anzahl der an den drei Eingängen anliegenden Einsen
FR 976 013
909828/0723
b 5 7 2 2
die Anzahl der Nullen übersteigt. Der Ausgang der Schaltung ; 186 ist mit einer Verriegelung 189 verbunden, die das als Ergebnis der Addition erzeugte Übertragsbit an die Schaltungen · 180 und 186 leitet, sobald Taktimpulse empfangen werden. Die Taktleitung und die Leitung "auf 0 setzen" (oder "S1 auf 0 ! setzen") sind mit der Verriegelung 189 verbunden. Die MSB- ι Subtraktionsleitung ist ebenfalls mit dem Eingang einer Antivalenzschaltung 187 verbunden.
'Wenn die MSB-Subtraktionsleitung einen Signalpegel für eine logische 0 führt, ändert die Antivalenzschaltung 187 das von !der vorhergehenden Zelle empfangene Summenbit nicht und gibt ;es an den Eingang der Schaltung 186 weiter. Dann wirkt die Zelle als Addiererzelle und es kann geprüft werden, ob die in ■der Fig. gezeigte Zelle die Summen- und Übertragsbit gemäß der Wahrheitstabelle I liefert. Wenn die MSB-Leitung auf einem logischen 1-Signalpegel steht, invertiert die Antivalenzschaltung 187 das von der vorhergehenden Zelle empfangene Summenbit, und dieses invertierte Bit wird an die Schaltung 186 gegeben. jDie Zelle wirkt dann als Subtraktionszelle und es kann geprüft werden, ob sie die Summenbits nach der Wahrheitstabelle II liefert.
Die Zelle 7 unterscheidet sich von den Zellen 0-6 nur dadurch, daß die Zelle 7 einen Halbaddierer enthält, der das Operandenbit zu dem Bit auf der Leitung LSB addiert. Die Ausgabe des Halbaddierers wird an die OP-Leitung 181 gegeben, wie es in Fig. 8 gezeigt ist. Wenn das Signal zu der Leitung LSB Addieren eine logische 0 ist, ist die Zelle 7 eine normale Addiererzelle, und wenn das Signal eine logische 1 ist, wird der Inhalt der Zelle 7 um +1 erhöht.
fr 976 013 9 09828/072 3
- 41 Arbeitsweise
Anschließend wird die Arbeitsweise einer der Multiplikator-Akkumulatoren, beispielsweise des MAC 1, beschrieben.
Der MAC 1 ermöglicht die Errechnung der algebraischen Summe S der Produkte der beiden 16 Bit großen Operanden Ai, Bi, also
S = Σ + A. B..
Die Produkte erhält man durch Anwendung wohlbekannter Multiplikationsalgorithmen, die durch aufeinanderfolgende Additionen und Verschiebungen der Teilprodukte in einem 32 Bit großen Akkumulator ausgeführt werden, der aus dem in Reihe geschalteten linken Akkumulator LAC 1 und dem rechten Akkumulator RAC 1 besteht. Außerdem ist die äußerste rechte Position des RAC 1 mit der äußersten linken Position des LAC 1 verbunden. Unter Steuerung der Taktimpulse wird der Inhalt einer jeden Position in den Akkumulatoren LAC 1 und RAC 1 auf die unmittelbar rechts liegende Position verschobein. Der Inhalt deir äußersten reichten Position wird in die äußerstei linke Position geschobem.
Die Teilsummen eier Produkte weirden abweichseilnd in LAC 1 und RAC 1 gesammelt. Wenn z.B. folgernde Summe; e;rreic:hnet werdem soll
S = A.B. A3B2 A,B. ... f- Λ ,B l· A B
werden die Teilprodukte deir eirstem Multiplikation im LAC I gesammelt und nach rechts verschoben, so daß beil Beendigung der Multiplikation das weirtniedeirstei Bit dun e;rsten Produktes A1B1 in der äußersten rechten Position im RAC I .steht. Die; Teilprodukte der zweiten Multiplikation we;rden im RAC I geisammelt und nach rechts verschoben, so daß sie zu den Bits des ersten Produktes addiert werden, die dasselbe Gewicht haben. Die Teilprodukte der dritten Multiplikation werden im LAC 1 gesammelt usw.
fr 976 013 909828/0723
Als allgemeine Regel kann man sagen, daß die Teilprodukte der ungeradzahligen Multiplikationen im LAC 1 und die Teilprodukte der geradzahligen Multiplikationen im RAC 1 gesammelt werden. Diese Anordnung kann jedoch auch umgekehrt werden, und dann würden die ungeradzahligen Multiplikationsergebnisse links und die geradzahligen rechts gesammelt. Die Operanden sind 16 Bit große binäre Zahlen im Zweierkomplementcode. Das äußerste linke Bit ist das Vorzeichenbit, das für positive Zahlen = 0 und für negative Zahlen = 1 ist. Um das Zweierkomplement einer in diesem Code ausgedrückten Zahl zu erhalten, braucht man nur alle ihre Bits zu invertieren und zur Ergebniszahl f 1 zu addieren.
Bevor die Operanden multipliziert und gesammelt werden, kann man das Zweierkomplement zur Erfüllung folgender Forderungen bekommen:
1. der Multiplikator muß immer positiv sein;
2. das Vorzeichen vor dem Produkt muß immer positiv sein.
Die* nachstehende Tabelle gibt an, ob das Zweierkomplement des Operanden gebraucht wird, abhängig von dem dem Produkt vorhergehenden Signal und dem Vorzeichen dtm Multiplikator«. Es wird angenommen, daß der Multiplikator der erste Operand des Produktes A. und der Multiplikant der zweite Operand B. i:;t.
Tabelle ΠΙ
Vorzeichen Vorzeichen 2 er Komplement 2c» r Kc nip 1 eimern t
(UiEJ Produkten von A. von A. benötigt? von B. I)(1UC)LLcJt
t- Nein ΓΙ-.Ϊ Ln
- Ja Ja
- + Nein Ja
- - Ja Ne Ln
FR 976 013
909828/0723
28b5722
Das Zweierkomplement einer binären Zahl wird bestimmt durch
!Invertierung ihrer Bits und Addition einer 1 zur resultierenden :binären Zahl.
Die Inversion wird im Inverter 131 der in Fig. 2C gezeigten ' Schaltung ausgeführt, der Antivalenzschaltungeri enthält, deren erster Eingang das Vorzeichenbit oder ein aus der Decodierung , der Bits 24, 25 des Multiplikatorsteuerfeldes resultierendes Komplementierungssignal empfängt. Der andere Eingang der Anti- j valenzschaltungen empfängt ein Bit des zu invertierenden Ope- ; randen. Das am Ausgang der Antivalenzschaltung erhaltene Bit ist die Umkehrung des Eingabebits, wenn der Operand zu invertieren ist, und ist gleich dem Eingabebit, wenn keine Inversion erforderlich ist.
JDie Addition von +1 erfolgt in den Serialisierungseinrichtungen !und Akkumulatoren und wird eingeleitet durch den Befehl "LSB > Addieren", durch den +1 zum wertniedersten Bit addiert wird. j
In Zweierkomplementdarstellung erhält man den Wert eines Operaniden durch Zuordnung eines positiven Gewichtes zu allen Bits nit Ausnahme des werthöchsten Bit, das einen negativen Wert bekommt. Die Stelle des werthöchsten Bits in jedem Akkumulator nuß eine subtraktive Position sein. Demzufolge wird die Zelle 0 in den Komponenten M des Akkumulators subtraktiv gemacht durch .
äen Befehl "MSB Subtrahieren". '
In den Fign. 2D und 7 ist angenommen worden, daß der MAC 1 Ider einzige in Betrieb befindliche Multiplikator-Akkumulator (ist. Die UND-Glieder 144, 145, 147 und 148 sind gesperrt, damit' jäer MAC 2 den MAC 1 nicht stören kann.
Die Einheit 14 arbeitet in Zyklen von jeweils T Sekunden.
Jeder Zyklus umfaßt:
::-]in S teuer zeitintervall, in dem die Eingabepuffer geladen werdet; sin Additions- und Schiebeintervall, in dem acht Taktimpulse £m die Taktleitungen der Serialisierungseinrichtungen und
fr 976 013 9 0 9828/0723
- 44 und Akkumulatoren angelegt werden (s. Fig. 9).
Die Operanden werden sequentiell auf der Eingangssammelleitung zur Multiplikations- und Akkumulatoreinheit 14 während der nachfolgenden Steuerzeitintervalle zur Verfügung gestellt.
BEISPIEL I
S = A1 B1 + A2 B2
Zyklus 1
Steuerzeitintervall
Der Multiplikator A1 steht auf der Eingangsleitung 68 zur Multi plikations- und Akkumulatoreinheit 14 zur Verfügung. A1 wird über die Eingangsleitung 132 durch das Tor 130 unter Steuerung der Bits 2 bis 5 des S/D-Feldes an den MAC 1 übertragen. Das Vorzeichen von A1 wird abgefragt und wenn es negativ ist, wird A1 im Inverter 131 invertiert. In der wahren oder invertierten Form wird A1 dann unter Steuerung der Signale auf der X-Eingabeleitung des SER 1 in B SER 1 geladen.
Additions- und Schiebeintervall In diesem Zeitintervall geschieht nichts. Zyklus 2
Steuerzeitintervall
Der Multiplikator B1 steht auf der Eingangsleitung 68 zur Multiplikations- und Akkumulatoreinheit 14 zur Verfügung. Der Multiplikant B1 wird über die Eingangsleitung 132 unter Steuerung der Bits 3 bis 5 des S/D-Feldes an den MAC 1 übertragen. B1 wird im Inverter 131 abhängig von dem Vorzeichen von A1 und
fr 976 013 909828/0723
den Bits 24 - 25 des Steuerfeldes für die Multiplikationseinheit, die das Vorzeichen vor dem Produkt liefern, gemäß der obigen Tabelle III invertiert. B1 wird dann unter Steuerung des Signales auf der X-Eingabeleitung des LAC 1 in den B LAC 1 geladen.
Der Multiplikator A1 wird vom B SER 1 nach SER 1 (d.h. in die Zellen des SER 1) übertragen durch Aktivierung der Multiplikatorleitung der Komponenten M und L im SER 1. Wenn A1 invertiert wurde, wird das äußerste rechte Bit im SER 1 unter Steuerung des Signales auf der Leitung LSB Addieren des SER 1 um + 1 erhöht und so das Zweierkomplement von A1 fertig gebildet.
Additions- und Schiebeintervall
Es beginnt der Prozeß der Multiplikation von A1 und B1. Bit des Steuerfeldes für die Multiplikationseinheit aktiviert den Taktgeber, der daraufhin acht Taktimpulse liefert. Beim Auftreten eines ersten Taktimpulses wird das wertniederste Bit von A1 an den Multiplikatoreingang des LAC 1 gegeben und der yiultiplikant B1 oder 16 Nullen zum Inhalt der Zellen des LAC addiert, abhängig davon, ob dieses Bit auf 1 oder 0 steht. Das so erhaltene Teilprodukt wird um eine Position nach rechts verschoben. Beim Auftreten des nächsten Taktimpulses werden B1 oder 16 Nullen zum Inhalt des R1 addiert, abhängig vom Wert des zweiten Bits von A1 und das neue Teilprodukt wird verschoben. Während des Additions- und Schiebeintervalles erfolgen acht ikkumulationen und Schiebungen. Wenn B1 durch den Inverter 131 invertiert wurde, vervollständigt die Komponente L des EAC 1 den Bestimmungsprozeß des Zweierkomplementes von B1 unter Steuerung von LSB Addieren.
fr 976 013 909828/0723
- 46 Zyklus 3
Steuerzeitintervall
Der Multiplikator A2 wird in B SER 1 geladen wie im Zyklus Addidions- und Schiebezeitintervall. Acht Taktimpulse vervollständigen den Multiplikationsprozeß von A1 mit B1.
Zyklus 4
Steuerzeitintervall
B2 wird in B RAC 1 geladen.
Additions- und Schiebezeitintervall. Acht Taktimpulse beginnen
den Multiplikationsprozeß von A1 mit B1.
Zyklus 5
Steuerzeitintervall
Keine Aktion.
Additions- und Schiebezeitintervall. Acht Taktimpulse vervollständigen den Multiplikationsprozeß von A1 mit B1. Zyklus 6
Dies ist ein Löschzyklus. Während des Additions- und Schiebezeitintervalles können die Überträge in acht Impulsen weitergeleitet werden.
Zyklus 7 Dies ist ein Löschzyklus,
fr 976 013 909828/0723
Zyklus 8
Das Ergebnis S steht am Ausgang des RAC 1 zur Verfügung. Durch den an den RAC 1 angelegten Ausleitbefehl wird S in das Ausgaberegister REG 1 geladen.
Anmerkung: Das Multiplikationsprodukt von zwei 16 Bit großen Operanden ist natürlich als ein Wort mit 32 Bits definiert. Die nachfolgende Verarbeitung dieses Produktes verlangt eine Beschneidung auf 16 Bits. Das geschieht in dem AC 1 so, daß das 16 Bit große Ergebnis aus den 15 wertniederen Bitpositionen des RAC 1 + der werthöchsten Bitposition des LAC 1 oder den 15 wertniederen Bitpositionen des LAC 1 + der höchsten Bitposition des RAC 1 besteht, wie es in Fig. 10 gezeigt ist. In der obigen Beschreibung und der Darstellung in Fig. 2D wurde das Ergebnis im Interesse der Einfachheit als entweder im RAC oder im LAC 1 verfügbar beschrieben.
Wegen der Beschneidung wird in Zyklus 8 der in der nächsten Operation zu ladende Akkumulator, d.h. in diesem Beispiel der Akkumulator LAC 1, auf den nachfolgenden Wert zurückgestellt, nachdem das Ergebnis S in REG 1 geladen wurde:
0100 0000 0000 0000
Dieses Wort ermöglicht die durch die Beschneidung notwendig gewordene Abrundung anstelle der Rückstellung auf 0. Das hier Abrundungswort genannte Wort wird in den Akkumulator geladen, der den Multiplikanten aufnimmt, bevor eine Multiplikation ausgeführt wird.
Damit man nicht auf einen durch das Einerbit im Abrundungswort erzeugten möglichen Übertrag warten muß, wird der Übertragsausgang der Zelle 1 an den Eingang der Antivalenzschaltung (Fig. 7) angelegt und so der Übertrag vorweg genommen.
fr 976 013 909828/0723
Im Zyklus 8 dieses Beispieles wird nach dem Laden von S in das REG 1 der LAC 1 durch das Abrundungswort zurückgestellt und der RAC 1 auf O gestellt. Dazu werden die Befehle "auf 0 stellen" und "S1 auf 0 stellen" an die Komponente L des LAC 1 und die Komponenten M und L des RAC 1 und die Befehle "auf 0 stellen" und "S1 auf 1 stellen" an die Komponente M des LAC 1 geleitet.
Anschließend wird die Arbeitsweise der Multiplikations- und Akkumulatoreinheit 14 bei der Multiplikation zweier komplexer Operanden miteinander beschrieben.
BEISPIEL II
Es wird angenommen, daß das Produkt P1 der komplexen Operanden A1 + j B1 und C1 + j D1 errechnet werden soll:
P1 = (A1 + j B1) (C1 + j D1) worin j = "V-"T* "
Das Produkt P1 kann man auch schreiben als
P1 = A1 C1 - B1 D1 + j (A1 D1 + B1 C1) worin
A1 C1 - B1 D1 = realer Teil von P1 und A1 D1 + B1 C1 = imaginärer Teil von P1 sind.
Der reale und der imaginäre Teil von P1 werden parallel errechnet. Die Operationsreihenfolge ist in der nachstehenden Tabelle aufgeführt.
fr 976 013 909828/0723
Zyklus RAM
Opera
tion
Operation Querver
bindung
MAC 1 C1 MAC 2 C1
1 Lesen A1 + SER 1 C1 C1
2 Lesen B1 -J- SER 2 D1 D1
3 Lesen C1 D1 D1
Nein A1 B1
4 Lesen Nein A1 B1
5 Ja -B1 A1
6 Ja -D1 A1
7 ■*· LAC 1 , LAC 2 Überträge
δ DT ·*■ RAC 1 Überträge
9
Ergebnisse
REG 1 und ]
rRAC 2
nach
REG 2
Zyklus 1
Steuerzeitintervall
Der Multiplikator A1 steht an der Eingangsleitung 6δ der Multiplikations- und Akkumulatoreinheit 14 zur Verfügung und wird zur Eingangsleitung 132 des MAC 1 unter Steuerung der Bits 3-5 des S/D-Feldes weitergeführt und bei Bedarf im Inverter 131 invertiert. Dann wird A1 geladen in B SER 1. Dazu decodiert die Decodierschaltung 150 die Bits 2-5 des SB-Feldes, die SER 1 angeben, und aktiviert die Eingabeleitung X in den Komponenten M und L der SER 1. Die Decodierschaltung 150 aktiviert außerdem die Leitung LSB Addieren in der Komponente L der SER 1, wenn A1 vom Inverter 131 invertiert wurde.
Additions- und Schiebezeitintervall . Keine Aktion.
Zyklus 2
FR 976 013
909828/0723
- 50 Steuerzeitintervall
Der Multiplikator B1 steht auf der Eingangsleitung 68 zur Verfügung und wird wie im Zyklus 1 geladen nach B SER 2.
Additions- und Schiebeintervall Keine Aktion.
Zyklus 3
Steuerzeitintervall
Der Multiplikant C1 steht auf der Eingangsleitung 68 der Multiplikations- und Akkumulatoreinheit 14 zur Verfügung. Der Samnelleitungsschalter 130 decodiert die Bits 2-5 des SB-Feldes und gibt C1 auf die Eingangsleitung 132 des MAC 1 und die Eingangsleitung 133 des MAC 2. Abhängig vom Vorzeichen von A1 und dem Vorzeichen vor dem Produkt (in diesem Beispiel ist äas ein +-Zeichen) und den Angaben durch die Bits 24, 25 des Steuerfeldes für die Multipliziereinheit wird C1 im Inverter 131 gemäß der Tabelle III invertiert.
1 wird dann in B LAC 1 und B LAC 2 geladen und dazu deco-3iert die Decodierschaltung 150 die Bits 2-5 des SD-PeI-äes, die die Akkumulatoren 1 und 2 bezeichnen sowie Bit 23 äes Steuerfeldes für die Multiplikationseinheit, das die linken akkumulatoren angibt. Außerdem aktiviert die Decodierschaltung 3ie X-Eingabeleitung in den Komponenten M und L von LAC 1 und LAC 2 sowie die Leitung LSB Addieren in den Komponenten L des CAC 1 und LAC 2, wenn C1 invertiert wurde.
Die Multiplikatoren A1 und B1 werden in die Zellen von SER bzw. SER 2 geladen durch Aktivierung der Multiplikatoreinjänge von SER 1 und SER 2. Diese Eingänge werden dann abgeschaltet. A1 und B1 bleiben jedoch in B SER 1 bzw. B SER 2 gespeichert. Die Decodierschaltung 150 aktiviert die UND-Glieder 135 und 139 aufgrund der Bits 1 und 23 des Steuer-
PR 976 013 9Q9828/0723
- 51 feldes für die Multiplikationseinheit.
Additions- und Schiebezeitintervall
Bit 21 des Steuerfeldes für die Multiplikationseinheit wird auf 1 gesetzt und der Taktgeber liefert 8 Impulse an MAC 1 und MAC 2, die mit der Multiplikation von A1 mit C1 bzw. B1 mit C1 beginnen. Sobald ein Taktimpuls auftritt, wird der entsprechende Inhalt von SER 1 und SER 2 um eine Position nach rechts verschoben und das äußerste rechte Bit steuert selektiv das Laden von B1 oder von Nullen in LAC 1 bzw. LAC 2 und der entsprechende Inhalt von LAC 1 und LAC 2 wird um eine Position nach rechts verschoben.
Zyklus 4
Steuerzeitintervall
Der Multiplikant D1 liegt auf der Eingangsleitung 68 zur tfultiplikations- und Akkumulatoreinheit 14. Er wird über die Eingangsleitung 132 des MAC 1 durch den Sammelleitungsschalter 130 übertragen und abhängig vom Vorzeichen von B1 und den Zeichen vor dem Produkt B1, D1 (in diesem Beispiel das -Zeichen) in Übereinstimmung mit Tabelle III im Inverter 131 invertiert oder nicht. D1 wird ebenfalls über die Eingangsleitung 133 des MAC 2 übertragen und abhängig von dem Vor- ;eichen von A1 und dem Vorzeichen vor dem Produkt A1 D1 gemäß Tabelle III invertiert oder nicht. D1 wird dann in BRAC und BRAC 2 unter Steuerung der Bits 2-5 des S/D-Feldes und des Bit 23 des Steuerfeldes für die Multiplikationseinheit geladen. Die Decodierschaltung 150 aktiviert die Leitung LSB Addieren in der Komponente L des RAC 1, wenn der Ylultiplikant für RAC 1 invertiert wurde und die Leitung LSB Addieren in der Komponente L des RAC 2, wenn der Multiplikant für RAC 2 invertiert wurde.
fr 976 013 909828/0723
- 52 Additions- und Schiebeintervall
Acht Taktimpulse werden an MAC 1 und MAC 2 angelegt, die dann die Multiplikation A1 χ C1 und B1 χ C1 beenden.
Zyklus 5
Steuerzeitintervall
Die Multiplikatoren A1 und B1 werden wieder in die Zellen von SER 1 bzw. SER 2 geladen. (Die während des Zyklus 4 geladenen Zellen des SER 1 und SER 2 werden nach 16 Taktimpulsen wieder gelöscht.) A1 und B1 werden geladen durch Aktivierung der Multi plikanteneingänge des SER 1 und SER 2. Die Leitung LSB Addieren in den Komponenten L des SER 1 und SER 2 werden aktiviert, wenn A1 und B1 invertiert wurden. Die Decodierschaltung 150 aktiviert die UND-Glieder 145 und 148 (die Serialisierungseinrichtungen und die Akkumulatoren sind somit über Kreuz verbunden) entsprechend den Bits 1 und 23 des Steuerfeldes für die Multiplikationseinheit.
Additions- und Schiebeintervall
Bit 21 des Steuerfeldes für die Multiplikationseinheit wird auf 1 gesetzt und 8 Taktimpulse an MAC 1 und MAC 2 angelegt, um die Multiplikation -B1 χ D1 bzw. A1 χ D1 zu starten. Sobald ein Taktimpuls auftritt, wird der entsprechende Inhalt des SER 1 und SER 2 um eine Position nach rechts verschoben und das äußerste rechte Bit steuert selektiv das Laden von D1 oder von Nullen in RAC 2 bzw. RAC 1. Der entsprechende Inhalt von RAC 2 oder RAC 1 wird um eine Position nach rechts verschoben .
fr 976 013 909828/072 3
- 53 Zyklus 6
Steuerzeitintervall Keine Aktion.
Additions- und Schiebezeitintervall
Acht Taktimpulse werden an MAC 1 und MAC 2 angelegt, die dann die Multiplikation von -B1 χ D1 und A1 χ D1 beenden.
Zyklus 7 Dies ist ein Löschzyklus.
Steuerzeitintervall Keine Aktion.
Additions- und Schiebezeitintervall
Acht Taktimpulse werden an MAC 1 und MAC 2 angelegt, um die Überträge weiterleiten zu können. β
Zyklus 8 Das ist ein weiterer Löschzyklus.
Am Ende dieses Zyklus steht der reale Teil von P1, nämlich A1 C1 - B1 D1 im RAC 1 zur Verfügung und der imaginäre Teil von P1, nämlich A1 D1 + B1 C1 im RAC 2 (s. Anmerkung im Beispiel 1).
909828/0723
FR 976
Zyklus 9
Steuerzeitintervall
Der Inhalt von RAC 1 und RAC 2 wird entsprechend in die Ausgaberegister REG 1 und REG 2 geladen. Dazu decodiert die Decodierschaltung 150 die Bits 22, 23 des Steuerfeldes für die Multiplikationseinheit und aktiviert die Ausgabe-Leitung in den Komponenten M und L vom RAC 1 und RAC
BEISPIEL III
Anschließend wird kurz beschrieben, wie man die Summe zweier Produkte zweier komplexer Operanden erhält:
P1 = (A1 + j B1) (C1 + j D1) P2 = (A2 + j B2) (C2 + j D2)
Die Summe S von P1 und P2 wird geschrieben als
S = (A1 + j B1) (C1 + j D1) + (A2 + j B2) (C2+JD2)
Der reale Teil von S ist
Re S = A1 C1 - B1 D1 + A2 C2 - B2 D2
Der imaginäre Teil von S ist
Im S = A1 D1 + B1 C1 + A2 D2 + B2 D2
Die nachstehende Operationsreihenfolge faßt die Berechnung von S zusammen.
fr 976 013 9 0 9828/07TT
Zyklus RAM
Opera
tion
Operation -»■ SER 1 2 Querver
verbindung
MAC 1 C1 MAC 2
1 Lesen A1 ■*■ SER 2 C1
2 Lesen B1 D1
3 Lesen C1 LAC 1, LAC 2 2 D1
-}- -»· RAC 1 , RAC 2 Nein A1 C2 B1 C1
4 Lesen D1 -> SER 2 Nein A1 C2 B1 C1
5 Lesen A2 ·»■ SER 2 Ja -B1 D2 A1 D1
6 Lesen B2 -*· LAC 1 , LAC Ja -B1 D2 A1 D1
7 Lesen C2 + RAC 1 , RAC Nein A2 B2 C2
8 Lesen D2 Nein A2 B2 C2
9 Ja -B2 A2 D2
10 Ergebnisse
nach REG 1
und REG 2
Ja -B2 A2 D2
11
12
13
Überträge
Überträge
Arbeitsweise im allgemeinen
Taktierung: Der PMAU-Zyklus hat eine Dauer von T Sekunden und während jedes Zyklus wird ein Mikrobefehl aus dem Befehlsspeicher 10 ausgelesen, während der vorhergehende Mikrobefehl ausgeführt wird (s. Fig. 9).
Die PMAU hat zwei Hauptfunktionen:
Sie speichert die digitalen Abtastwerte des zu verarbeitenden Signales, die vom Analog/Digitalwandler 2 empfangen werden:
Das ist der Eingabebetrieb, und
sie verarbeitet die digitalen Abtastwerte des zu verarbeitenden Signales: Das ist der Verarbeitungsbetrieb.
909828/0723
FR 976 013
- 56 Arbeitsweise im Eingabebetrieb
Wenn der Analog-Digitalwandler 2 fertig umgewandelt hat, wird ein digitaler Abtastwert über die Sammelleitung 3 an die PMAU geleitet. Sobald das A/D-Register 120 voll ist, gibt die A/D-Anforderungsschaltung 123 einen Einersignalpegel als A/D-Anforderungssignal auf die Leitung 88. Es wird angenommen, daß die PMAU im Augenblick im Verarbeitungsbetrieb läuft. Während der Ausführung eines Mikroprogrammes setzt ein Mikrobefehl, beispielsweise der Befehl, dessen vereinfachte Adresse 1000 lautet und dessen Adreßfeld für den nächsten Befehl dieselbe Adresse 1000 enthält, das A/D-Abfragesignal auf der Leitung 89 über die Bits im Verzweigungsfeld auf 1. Da die Signale A/D-Anforderung und A/D-Abfrage beide auf 1 stehen, wird die Torschaltung 85 (Fig. 2E) aktiviert, die Torschaltung 86 gesperrt und die Adresse des ersten Mikrobefehles, die in der Eingaberoutine im ROS-Eingabeadreßregister gespeichert wurde, wird in den Befehlsspeicher 10 eingegeben. Die Eingangsroutine ist somit initialisiert und veranlaßt das Laden der im A/D-Register 120 enthaltenen Adresse in den Datenspeicher RAM 12. Dazu decodiert die Decodierschaltung 126 die Bits des S/D-Feldes, die das A/D-Register 120 als Quellenregister angebe^ und betätigt die Torschaltung 121, die den Abtastwert, die in den RAM zu laden ist, über die interne Sammelleitung 42 überträgt. Gleichzeitig setzt die Decodierschaltung den Anzeiger IND auf der Leitung 124 auf 1. Sobald der Abtastwert das A/D-Register 120 verlassen hat, setzt die A/D-Anforderungsschaltung 123 das A/D-Anforderungssignal auf 0. Während der Ausführung der Eingangsroutine wird das ROS-Eingangsadreßregister durch das Adreßfeld des nächsten Befehles über die Leitung 80 und das Tor 81, das den Inhalt der Leitung 80 an das Register gibt, solange der wahre Ausgang von der Verriegelung 87 hoch ist, auf dem neuesten Stand gehalten. Die Eingangsroutine endet mit einem Mikrobefehl, der das A/D-Abfragesignal auf 1 setzt. Da das A/D-Anforderungssignal auf 0 steht, wird die Torschaltung 85 gesperrt und die Torschal-
fr 976 013 909828/0723
tung 86 aktiviert, so daß die im Verarbeitungsadreßregister enthaltene Adresse an das ODER-Glied 84 gegeben werden kann. Die im ROS-Verarbextungsadreßregxster enthaltene Adresse ist die Adresse 1000, die durch das Adreßfeld des nächsten Befehles des Mikrobefehles 1000 geladen wurde, der die Operation im Eingabebetrieb einleitete. Da das A/D-Abfragesignal und der Anzeiger IND beide auf 1 stehen, gibt die Verzweigungsschaltung 95 ein logisches Einersignal auf die Verzweigungsbedingungsleitung. Die vom Verarbextungsadreßregxster an das ODER-Glied 84 gegebene Adresse 1000 wird durch die Antivalenzschaltung 94 modifiziert und die Adresse 1001 in den Befehlsspeicher eingegeben, damit die Arbeit im Verarbeitungsbetrieb wieder aufgenommen werden kann. Das Programm kann den Verarbeitungsbetrieb unter Benutzung der durch das Adreßfeld des nächsten Befehles desjenigen Mikrobefehles, der den Eintritt in die Eingabeoperation ermöglichte, an jeder gewünschten Adresse wieder aufnehmen.
Arbeitsweise im Verarbeitungsbetrieb
Die Arbeitsweise wird durch die im Befehlsspeicher 10 gespeicherten Mikrobefehle gesteuert. Die verschiedenen Operationen wurden bereits oben beschrieben. Im Verarbeitungsbetrieb wird das Adreßregister des Befehlsspeichers durch das Adreßfeld für den nächsten Befehl des ausgeführten Mikrobefehles auf dem neuesten Stand gehalten. Dieses Adreßfeld wird über die Leitung 80 und das Tor 81 solange an dieses Adreßregister gegeben, wie der wahre Ausgang des Tores 87 niedrig ist.
Im Verarbeitungsbetrieb werden Daten zwischen der PMAU und der CU übertragen.
IM das Mikroprogramm der PMAU mit der Rate zu synchronisieren, in der digitale Abtastwerte des zu verarbeitenden Signales empfangen werden, sind in Mikroprogrammbefehle "warten auf Abtastwert" vorgesehen. Jeder dieser Mikrobefehle stellt
FR 976 013
eine geschlossene Schleife dar und seine Operationscode- und Verzweigungsfeider geben an "keine Operation" und "A/D abfragen". Die PMAU schaltet in den Eingangsbetrieb, sobald ein digitaler Abtastwert empfangen ist.
Das Wort "Mikro" als Zusatz zu den Wörtern Prozessor und Befehle stellt hier keinerlei Einschränkung des Rahmens der Erfindung dar und die Erfindung gilt im allgemeinen Sinne für einen Prozessor, der Befehle benutzt.
PR 976 013
9W8T8 /0723

Claims (1)

  1. PATENTANSPRÜCHE
    Einrichtung zur Berechnung von Produktsummen der Form Σ-AiAj, wobei Ai, Aj zwei aus η Bits bestehende Zahlen sind/ dadurch gekennzeichnet, daß eine Multiplikationsund Akkumulatoreinheit (14, Fig. 2) mit zwei Multiplikator-Akkumulatoren (MAC1, MAC2) vorgesehen ist, daß jeder Multiplikator-Akkumulator eine Serilialisierungseinrichtung (SER) mit zugehörigem Eingangspuffer (BSER) aufweist sowie mindestens einen Akkumulator (LAC) mit zugehörigem Eingangspuffer (BLAC), daß der Ausgang des Akkumulators mit einem Ausgangsregister (REG) verbunden ist und daß die Ausgangsleitungen der Serialisierungseinrichtungen über Torschaltungen (z. B. 135, 139, 144, 147) mit allen Akkumulatoren (LAC1, LAC2) beider Multiplikator-Akkumulatoren verbunden sind.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß jeder Multiplikator-Akkumulator zwei Akkumulatoren (LAC, RAC) aufweist, die neben parallelen Ein- und ; Ausgängen für Puffer bzw. Ausgangsregister jeweils einen seriellen Ein- und Ausgang besitzen, daß der serielle i
    Eingang des ersten Akkumulators (LAC) mit den seriellen
    ; Ausgängen der Serialisierungseinrichtungen (SER) und des zugehörigen zweiten Akkumulators (RAC) verbunden ist und daß der serielle Ausgang des ersten Akkumulators (LAC) mit dem seriellen Eingang des zweiten Akkumulators (RAC) verbunden ist.
    3. Einrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß Steuereinrichtungen (z. B. ROS 10, Decoder 150) die Schrittfolge der Produktsummenbildung steuern.
    976013 9 098 29/072 3 'ohminal wepr-
    4. Einrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Ausgänge der Register (REG) beider Multiplikator-Akkumulatoren (MAC1, MAC2) über Sammelleitungen (z. B. 67, 132, 133) und Sammelleitungsschalter (149, 131) mit den Eingangspuffern beider Multiplikator-Akkumulatoren verbindbar sind.
    5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß einer der Sammelleitungsschalter (z. B. 130) eine Invertiereinrichtung (131) nachgeschaltet hat.
    Einrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß zur Bildung des Produkts zweier komplexer Operanden, eines Multiplikators Ai + JBi und eines Multiplikanden Ci + jDi in einem ersten Schritt der Realteil Ai des Multiplikators in den Eingangspuffer (BSER1) der Serialisierungseinrichtung des ersten Multiplikator-Akkumulators (MAC1) eingegeben wird, daß in einem zweiten Schritt der Imaginärteil Bi des Multiplikators in den Eingangspuffer (BSER2) der Serialisierungseinrichtung (SER2) des zweiten Multiplikator-Akkumulators (MAC2) zugegeben wird, daß in einem dritten Schritt der Realteil Ci des Multiplikanden in die Eingangspuffer (BLAC1, BLAC2) der ersten Akkumulatoren (LAC1, LAC2) beider Multiplikator-Akkumulatoren eingegeben wird, daß in einem vierten Schritt die ersten Akkumulatoren (LAC1, LAC2) das Produkt Ai χ Ci bzw. Bi χ Ci bilden, daß in einem fünften Schritt den Eingangspuffern (BRAC1, BRAC2) der zwciiten Akkumulatoren (RAC1 , RAC2) der Imaginärteil· Di des Multiplikanden zugeführt wird, daß in einem sechsten Schritt der zweite Akkumulator des ersten Multiplikator-Akkumulators das Produkt -Bi χ Di bildet und zum Produkt Ai >c Ci addiert, während gleichzeitig der zweite? Akkumulator des zweiten Multiplikator-
    λ 076 013 90 9828/072 3
    Akkumulators das Produkt Ai χ Di bildet und zum Produkt Bi χ Ci addiert und daß in einem siebten Schritt die Ergebnisse in die Ausgangsregister (REG) gegeben werden.
    7. Einrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Einrichtung über eine Datensammelleitung (4, Fig. 1) mit einer Steuereinheit (CU) verbunden ist und von dieser gesteuert wird.
    8. Einrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Einrichtung zur Verarbeitung komplexer analoger Signale dient, die über einen Analog-/Digitalwandler (2) in einem Datenspeicher (12) zur Weiterverarbeitung eingegeben werden.
    fr 976 013 90 9828/07 2 3
DE19782855722 1977-12-30 1978-12-22 Einrichtung zur berechnung von produktsummen Withdrawn DE2855722A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7739966A FR2413712A1 (fr) 1977-12-30 1977-12-30 Microprocesseur specialise pour le calcul de la somme de produits de deux operandes complexes

Publications (1)

Publication Number Publication Date
DE2855722A1 true DE2855722A1 (de) 1979-07-12

Family

ID=9199635

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782855722 Withdrawn DE2855722A1 (de) 1977-12-30 1978-12-22 Einrichtung zur berechnung von produktsummen

Country Status (6)

Country Link
US (1) US4202039A (de)
JP (1) JPS5947346B2 (de)
DE (1) DE2855722A1 (de)
FR (1) FR2413712A1 (de)
GB (1) GB2011672A (de)
IT (1) IT1160374B (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4354249A (en) * 1980-03-24 1982-10-12 Motorola Inc. Processing unit for multiplying two mathematical quantities including at least one complex multiplier
EP0042452B1 (de) * 1980-06-24 1984-03-14 International Business Machines Corporation Signalprozessorrechneranordnung und Verfahren zum Betrieb der Anordnung
US4511987A (en) * 1982-03-25 1985-04-16 Texas Instruments Incorporated Method of entering and performing operations on complex numbers on calculators
US4528641A (en) * 1982-11-16 1985-07-09 The United States Of America As Represented By The Secretary Of The Air Force Variable radix processor
US4589085A (en) * 1983-04-26 1986-05-13 The United States Of America As Represented By The United States Department Of Energy Hardware multiplier processor
US4561066A (en) * 1983-06-20 1985-12-24 Gti Corporation Cross product calculator with normalized output
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
KR860700300A (ko) * 1984-09-28 1986-08-01 빈센트 죠셉로너 입력 기억 회로 수단 및 그 분배 사용방법
US4779218A (en) * 1985-09-04 1988-10-18 Jauch Jeremy P Complex arithmetic unit
GB8715184D0 (en) * 1987-06-29 1987-10-21 Gec Avionics Stereoscopic presentation of data
US5349676A (en) * 1991-02-11 1994-09-20 General Electric Company Data acquisition systems with programmable bit-serial digital signal processors
US5808927A (en) * 1994-10-18 1998-09-15 International Business Machines Corporation Apparatus for performing two's complement and unsigned multiply accumulate
US5771186A (en) * 1995-06-07 1998-06-23 International Business Machines System and method for multiplying in a data processing system
US5939693A (en) * 1998-02-02 1999-08-17 Motorola Inc. Polynomial calculator device, and method therefor
US11243765B2 (en) 2017-09-29 2022-02-08 Intel Corporation Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements
US10514924B2 (en) 2017-09-29 2019-12-24 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US10664277B2 (en) 2017-09-29 2020-05-26 Intel Corporation Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words
US10795676B2 (en) 2017-09-29 2020-10-06 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US10552154B2 (en) * 2017-09-29 2020-02-04 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US10795677B2 (en) 2017-09-29 2020-10-06 Intel Corporation Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values
US10534838B2 (en) 2017-09-29 2020-01-14 Intel Corporation Bit matrix multiplication
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10802826B2 (en) 2017-09-29 2020-10-13 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US11074073B2 (en) 2017-09-29 2021-07-27 Intel Corporation Apparatus and method for multiply, add/subtract, and accumulate of packed data elements

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1037737A (en) * 1964-07-01 1966-08-03 Ampex Improvements in or relating to computer systems
GB1151302A (en) * 1967-05-18 1969-05-07 Tesla Np Improvements in and relating to Computer Equipment for Numerical Solution of Complex Number Problems
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3725686A (en) * 1971-01-29 1973-04-03 Hughes Aircraft Co Polyphasor generation by vector addition and scalar multiplication
CH530643A (de) * 1971-04-22 1972-11-15 Hasler Ag Verfahren und Einrichtung zum Erkennen einer vorbestimmten Frequenz in einem Frequenzgemisch
US3800130A (en) * 1973-07-09 1974-03-26 Rca Corp Fast fourier transform stage using floating point numbers
US3926367A (en) * 1974-09-27 1975-12-16 Us Navy Complex filters, convolvers, and multipliers
US4086657A (en) * 1976-08-18 1978-04-25 The United States Of America As Represented By The Secretary Of The Air Force Five-stage four-bit complex multiplier

Also Published As

Publication number Publication date
IT7831079A0 (it) 1978-12-21
JPS5947346B2 (ja) 1984-11-19
FR2413712A1 (fr) 1979-07-27
IT1160374B (it) 1987-03-11
FR2413712B1 (de) 1980-08-22
GB2011672A (en) 1979-07-11
JPS5494849A (en) 1979-07-26
US4202039A (en) 1980-05-06

Similar Documents

Publication Publication Date Title
DE2855722A1 (de) Einrichtung zur berechnung von produktsummen
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3424962C2 (de)
DE2724125C2 (de)
DE3303488C2 (de) Digitales Signalverarbeitungssystem
DE3689923T2 (de) Dreiphasen-Pipeline-Signalprozessor.
DE3687666T2 (de) Verzweigungssteuerung in einem dreiphasen-pipeline-signalprozessor.
DE19839627B4 (de) Digitaler Signalprozessor
DE68928519T2 (de) Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen
DE3851746T2 (de) Sprungvorhersage.
DE2758830A1 (de) Rechenvorrichtung
CH644461A5 (de) Digitale multipliziereinrichtung.
DE3114921A1 (de) Datenverarbeitungssystem
DE1549478B1 (de) Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE2830334C2 (de)
DE2906685C2 (de)
DE2310553A1 (de) Vorrichtung zur durchfuehrung arithmetischer und logischer operationen
DE2746355A1 (de) Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE2658950A1 (de) Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE69930893T2 (de) Digitaler Signalprozessor für Daten mit grosser Bitlänge
DE1184122B (de) Addiervorrichtung
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee