DE2758830A1 - Rechenvorrichtung - Google Patents
RechenvorrichtungInfo
- Publication number
- DE2758830A1 DE2758830A1 DE19772758830 DE2758830A DE2758830A1 DE 2758830 A1 DE2758830 A1 DE 2758830A1 DE 19772758830 DE19772758830 DE 19772758830 DE 2758830 A DE2758830 A DE 2758830A DE 2758830 A1 DE2758830 A1 DE 2758830A1
- Authority
- DE
- Germany
- Prior art keywords
- lines
- computing device
- data
- bus
- register
- 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
Links
- 230000015654 memory Effects 0.000 claims description 71
- 230000006870 function Effects 0.000 claims description 50
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000007792 addition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 102100028735 Dachshund homolog 1 Human genes 0.000 description 1
- 101000915055 Homo sapiens Dachshund homolog 1 Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- SSJXIUAHEKJCMH-UHFFFAOYSA-N cyclohexane-1,2-diamine Chemical compound NC1CCCCC1N SSJXIUAHEKJCMH-UHFFFAOYSA-N 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Bus Control (AREA)
Description
OR.-ING. DtPL.-ING. M. SC. UiF-L.-HHYS. DR. U If-1L - t- M VS.
HÖGER - STELLRECHT - GRIF.3f.DACH - HAECKER
PATENTANWÄLTE IN STUTTGART
A 42 703 b Anmelder: Dialog Systems, Inc.
k - 163 32 Locust Street
29.Dezember 1977 Belmont, Mass. USA
Beschreibung
Rechenvorr ichtung
Die Erfindung betrifft eine Rechenvorrichtung , und zwar speziell einen Datenprozessor, der für eine sehr schnelle
Verarbeitung von Datenfeldern vorgesehen ist.
Auf dem Gebiet der Computertechnologie sind grosse Fortschritte gemacht worden, um die Befehlsausführungsgeschwindigkeit
für kleine, mittlere und grosse Rechner-Datenverarbeitungsanlagen zu erhöhen. Fortschritte haben sich dabei sowohl
hinsichtlich der Bauelemente und des Aufbaus als auch hinsichtlich der Programmierung ergeben. Ausserdem hat die Einführung
des Mikroprozessors in Verbindung mit umfangreichen integrierten Schaltungen dazu geführt, dass Datenverarbeitungsgeräte
geschaffen werden konnten, die komplizierter und raffinierter arbeiten und die somit in der Lage sind, sowohl
generelle als auch sehr spezielle Probleme zu lösen.
Die Anwendung der Computertechnologie bei Spezialrechnern
hat die Geschwindigkeit und die Einsatzmöglichkeiten von Rechnern für spezielle Anwendungen erhöht. Zu diesem Zweck
wurden viele Rechnersysteme entwickelt, die speziell für Spezialgebiete wie Strukturerkennung, statistische Abschätzung,
Geschäfts- und Buchhaltungsprobleme usw., geeignet sind. Häufig sind bei den bekannten Rechenanlagen die letzten
technologischen Fortschritte ausgenutzt, wobei komplizierte
- 11 -
909816/0591
A 42 703 b Λ^ΠΛΛΛΛ
29.Dezember 1977 - 11 -
Wechselwirkungen zwischen den Bauelementen ausgenutzt werden und wobei mit Maschinenzyklen gearbeitet wird, von denen jeder
mehrere Taktimpulse umfasst, um so die wirksame Arbeitsgeschwindigkeit der Maschine bzw. Rechenanlage zu verbessern.
Es sind auch ältere Verfahren zur Erhöhung der effektiven
Arbeitsgeschwindigkeit einer Maschine bekannt. Beispielsweise wurde häufig eine Datenverarbeitung auf mehreren parallelen
Kanälen vorgenommen (parallel processing), um gleichzeitig mehrere verschiedene Rechenaufgaben und sonstige Bearbeitungsvorgänge durchzuführen. Typischerweise führt die Organisation
von Parallelprozessoren zu mehreren einzelnen Prozessoren oder Funktionseinheiten, die ständig parallelgeschaltet sind. Jede
Einheit bzw. jeder Prozessor bearbeitet dabei ein bestimmtes und häufig abtrennbares "Teilstück" eines Problems, und zwar
üblicherweise im Simultanbetrieb. Eine andere Möglichkeit besteht darin, dass mehrere Einheiten oder Prozessoren so
aufgebaut oder verdrahtet sind, dass sich ein sogenannter Pipeline-Effekt ergibt, so dass Zwischenergebnisse der Rechenoperation
nachfolgenden Prozessoren zugeführt werden, um ein gewünschtes Endergebnis zu ermitteln. Die Prozessoren oder
Recheneinheiten sind dabei jedoch gewöhnlich komplizierte Elemente, die häufig selbst als komplette Rechner arbeiten
können. Selbst dann, wenn die Einheiten oder Prozessoren nur Baugruppen bilden (also nicht vollständig selbständig sind),
ist die Konfiguration und der Datenfluss im wesentlichen festgelegt
und starr. Der Aufbau von Recheneinrichtungen unter Verwendung der derzeit zur Verfügung stehenden Schaltungen
kann anhand der Standardunterlagen erfolgen; die bisher zur Verfügung stehenden Rechenvorrichtungen sind jedoch nicht in
- 12 -
809816/0591
29.Dezember 1977 - 12 -
der Lage, grosse Mengen von Daten im Echtzeitbetrieb zu verarbeiten,
wie dies beispielsweise bei Vorrichtungen zur Sprachanalyse erforderlich ist, wie sie in der US-PS
4 038 503 beschrieben sind.
Ausgehend vom Stande der Technik liegt der Erfindung die Aufgabe zugrunde, eine Rechen- bzw. Datenverarbeitungsvorrichtung
anzugeben, die mit erhöhter Geschwindigkeit arbeitet und die insbesondere für die Verarbeitung von Sprachdatenfeldern und
von mit der Sprache zusammenhängenden Daten im Echtzeitbetrieb geeignet ist.
Diese Aufgabe wird durch Rechenvorrichtungen der in den Ansprüchen
angegebenen Art gelöst.
Es ist ein besonderer Vorteil der Rechenvorrichtungen gemäss der Erfindung, dass sie einfach und flexibel aufgebaut sind,
zuverlässig arbeiten, mehrere verschiedene Maschinenoperationen in einem einzigen Befehlszyklus ausführen und mit dem "Pipeline1
Effekt arbeiten, wobei sie unter Verwendung schneller handelsüblicher Bausteine aufgebaut sein können.
Rechenvorrichtungen gemäss der Erfindung sind ferner für die Echtzeitverarbeitung von grossen Datenfeldern geeignet und
können bei flexibler Konfiguration unter Steuerung durch ein Programm mit einem Wirtsrechner in Wechselwirkung treten, wobei
mehrere elementare Funktionsmoduln zur Datenverarbeitung zur Verfügung stehen.
- 13 -
909816/0591
29.Dezember 1977 - 13 -
Bei einer Rechenvorrichtung gemäss der Erfindung sind mehrere
Funktionsmoduln und mindestens drei Sammelleitungen vorgesehen, wobei jeder Funktionsmodul mit mindestens einer der
Sammelleitungen verbunden ist und wobei mindestens einer der Funktionsmoduln mit mindestens drei der Sammelleitungen verbunden
ist. Jede Sammelleitung umfasst dabei mehrere Einzelleitungen, wobei die Einzelleitungen zu mindestens drei Gruppen
zusammengefasst sind, und zwar zu einer Gruppe von Ursprungsadressenleitungen, zu einer Gruppe von Zieladressenleitungen
und zu einer Gruppe von datentragenden Leitungen. Ausserdem weist die Rechenvorrichtung Steuereinrichtungen auf,
die mit jeder der Sammelleitungen verbunden sind, um die Arbeitsweise der Vorrichtung zu steuern und um Ursprungs- und
Zieladressensignale an die Ursprungs- bzw. Zieladressenleitungen anzulegen, so dass die Funktionsmoduln effektiv zu
einer ausgewählten programmgesteuerten Konfiguration verbunden werden.
Bei einer bevorzugten Rechenvorrichtung gemäss der Erfindung
zur Ausführung mehrerer elementarer Maschinenoperationen während eines einzigen Maschinenbefehlszyklus sind mehrere
elementare Funktionsmoduln vorgesehen, wobei jeder Funktionsmodul mit mindestens einer von mehreren Sammelleitungen verbunden
ist und wobei mindestens einer der Funktionsmoduln mit mindestens drei Sammelleitungen verbunden ist. Jede Sammelleitung
besitzt dabei mehrere Einzelleitungen, wobei die Einzelleitungen zu Gruppen zusammengefasst sind, nämlich zu
einer Gruppe von Ursprungsadressenleitungen, zu einer Gruppe von Zieladressenleitungen und zu einer Gruppe von datentragenden
Leitungen. Mit jeder der Sammelleitungen sind dabei ferner
- 14 -
909816/0891
29.Dezember 1977 - 14 -
Steuereinrichtungen verbunden, mit deren Hilfe die Arbeitsweise der Vorrichtung in Abhängigkeit von einem gespeicherten
Programm gesteuert wird. Die Steuereinrichtungen besitzen dabei auch die Fähigkeit, eine solche Konfiguration der
Rechenvorrichtung herbeizuführen, dass mindestens vier elementare Operationen innerhalb eines Maschinenbefehlszyklus ausgeführt
werden können.
Bei einem bevorzugten Ausführungsbeispiel der Erfindung umfasst jede Sammelleitung eine Sammelleitungsfreigabeleitung
zur Steuerung der Arbeitsweise der betreffenden Sammelleitung. Jede Sammelleitungsfreigabeleitung ist dabei mit den Steuereinrichtungen
verbunden und wird durch diese gesteuert. Vorzugsweise sind dabei drei Sammelleitungen, mindestens drei
Speicheranordnungen und ein Rechenmodul vorgesehen. Bei diesem Ausführungsbeispiel haben die Steuereinrichtungen dann die
Fähigkeit, die Rechenvorrichtung so zu steuern, dass im Verlauf eines Maschinenbefehlszyklus mindestens vier elementare
Maschinenoperationen ausgeführt werden.
Bei einem bevorzugten Ausführungsbeispiel einer Rechenvorrichtung gemäss der Erfindung sind ferner Steuereinrichtungen
vorgesehen, welche einen Haupttaktgeber zur Erzeugung eines Taktsignals aufweisen, welches zumindest den Anfang jedes
Maschinenzyklus markiert. Die Steuereinrichtungen besitzen dabei ferner eine Programmsteuereinheit, die in Abhängigkeit
von den Taktsignalen aufeinanderfolgende Befehle für die Rechenvorrichtung entsprechend einem gespeicherten Programm
abruft. Weiterhin sind Einrichtungen vorgesehen, die in Abhängigkeit von der Programmsteuereinheit Ursprungs- und Ziel-
- 15 -
909816/0591
A 42 703 b 97CQQQO
k - 163 Z/00030
29.Dezember 1977 - 15 -
adressen an die Sammelleitungen legen sowie Einrichtungen, die
in Abhängigkeit von der Steuereinheit die Sammelleitungsfreigabeleitungen "setzen".
Gemäss einer bevorzugten Ausführungsform der Erfindung ist
der Haupttaktgenerator ferner so ausgebildet, dass die Erzeugung eines Taktsignals in Abhängigkeit von einem ausgewählten
Zustanc. an einem Taktgeberfreigabeausgang mindestens eines
Funktionsmoduls unterbindbar ist.
Weitere Einzelheiten und Vorteile der Erfindung werden nachstehend
in Verbindung mit einer Zeichnung noch näher erläutert und/oder sind Gegenstand der Schutzanspräche. Es zeigen:
Fig. 1 ein schematisches Blockschaltbild einer bevorzugten Ausführungsform einer Rechenvorrichtung gemäss
der Erfindung;
Fig. 2 eine schematische Darstellung des taktgesteuerten Signalverlaufs an verschiedenen Punkten der Schaltung
gemäss Fig. 1;
Fig. 3 ein schematisches Blockschaltbild einer typischen Verbindung zwischen einem Funktionsmodul und den
Datensammelleitungen;
Fig. 4 ein schematisches Blockschaltbild einer bevorzugten Ausführungsform für die Funktionsmoduln, die bei
einer erfindungsgemassen Rechenvorrichtung mit den Sammelleitungen in Verbindung stehen;
- 16 -
909816/0591
k - 163
29.Dezember 1977 - 16 -
Fig. 5 ein detailliertes elektrisches Schaltbild eines Rechenmoduls für eine bevorzugte Ausführungsform
einer Rechenvorrichtung gemäss der Erfindung und
Fig. 6 eine schematische Darstellung der Funktion der Logik-bits, die einen Rechenbefehl für die
Steuerung des Rechenmoduls bilden.
- 17-
909816/0591
29. Dezember 1977 - 17 -
Im einzelnen zeigt Fig. 1 eine Rechenvorrichtung bzw. einen Rechner, die bzw. der in Aufbau und Funktion erfindungsgemäss
ausgebildet ist. Der Rechner besitzt einen Steuerteil 12 und mehrere elementare Funktionsmoduln 14a, 14b .... sowie eine
Anzahl von Sammelleitungen 16a, 16b, 16c. Jede Sammelleitung
umfasst mehrere einzelne elektrische Leitungen, wobei die Leitungen zu Gruppen zusammengefasst sind.Jede Sammelleitung
umfasst beim Ausführungsbeispiel eine Gruppe von 32 Datenleitungen 18a, 18b, 18c, ...., eine Gruppe von vier Ursprungsadressenleitungen
20a, 20b, 20c ...., eine Gruppe von vier Zieladressenleitungen 22a, 22b, 22c, .... und eine Gruppe mit
einer einzigen Leitung zum Freigeben einer zugeordneten Sammelleitung, nämlich die Sammelleitungsfreigabeleitungen 24a, 24b,
24c...Bei anderen Ausführungsbeispielen der Erfindung kann jede Gruppe,je nach dem jeweiligen Anwendungszweck, für den der
Rechner bestimmt ist, mehr oder weniger Leitungen umfassen. Um eine übersichtlichere zeichnerische Darstellung zu erhalten,
bei der ein einziger Leitungszug mehr als eine elektrische Leitung darstellen soll, ist an jedem Leitungszug ein Schrägstrich
angebracht, bei dem die Anzahl der Einzelleitungen vermerkt ist.
Weiterhin sind zur Verbesserung der Übersichtlichkeit Einzelheiten
des Leitungsaufbaus beim Ausführungsbeispiel weggelassen, um die wesentlichen Merkmale der Erfindung klarer hervorheben
zu können.
Der betrachtete Rechner besitzt ferner mehrere äussere Steuerregister
26, über die er mit einem Wirtsrechner 28 in Verbindung steht und über die er durch diesen steuerbar ist, beispiels-
- 18 -
909816/0591
29.Dezember 1977 _ 18 _
weise zum Einspeichern eines Rechenprogramms in den Steuerteil 2, zum Übertragen eines Rechenergebnisses von dem Rechner zum Wirtsrechner
28, wobei die Steuerregister auch andere unten noch zu beschreibende Wechselwirkungen zwischen dem erfindungsgemässen
Rechner und dem Wirtsrechner 28 ermöglichen.
Der Rechner arbeitet synchron mit dem Sammelleitungs-Takt-Ausgangssignal
eines Haupt-Sammelleitungs-Oszillators 3Of die über
eine Sammel-Taktleitung 32 zugeführt werden. Typischerweise ist das Taktsignal auf der Leitung 32 eine Rechteckimpulsfolge
(Fig. 2a) mit einer Grund-Impulsfolgefrequenz von etwa 8 MHz.
Die Impulsfolge auf der Leitung 32 wird beim Ausführungsbeispiel allen Funktionsmoduln 14 zugeführt, wobei die ansteigende
Vorderflanke der Taktimpulse die Zeitgrenze zwischen der Ausführung aufeinanderfolgender Rechenbefehle bildet. Ein vollständiger
Zyklus des Taktsignals ist also mit einem "Befehlszyklus" des Rechners identisch. Wie unten noch erläutert wird,
kann das Taktsignal verzögert oder stillgesetzt werden, wenn beispielsweise ein adressenmässig aufgerufener Funktionsmodul
bei der nächsten normalerweise auftretenden Vorderflanke der Taktimpulse noch nicht bereit ist, auf diese anzusprechen, wenn
er dies tun sollte.
Wie die Fig. 1 und 2 zeigen, bezeichnet jede Ursprungsadresse auf den Leitungen 20a, den Funktionsmodul bzw. die Funktionsmoduln,
welcher bzw. welche den Ursprung bzw. die Quellen für die Daten bilden, die auf die betreffenden Datensammelleitungen
übergeben werden sollen, während jede Zieladresse auf den Leitungen 22a den Funktionsmodul bzw. die Funktionsmoduln bezeichnet, welcher bzw. welche die Daten auf den be-
- 19 -
909816/0591
Λ 42 703 b
k - 163
29.Dezember 1977 - 19 -
treffenden Datensammelleitungen empfangen. Die Ursprungs- und Zieladressen werden auf die einzelnen Sammelleitungen durch ein
Sammelleitungsadressenregister 34 des Steuerteils ausgegeben und die Adressen sind in einem Zeitintervall "gültig", welches
zumindest nahe am Beginn eines Befehlszyklus beginnt, und zv/ar kurz nach dem Auftreten der Vorderflanke des Taktimpulses und
welches bis zum Ende eines Befehlszyklus dauert, wie dies im einzelnen in Verbindung mit der Erläuterung der Befehle der
"Sammel'.eitungsklasse" dargelegt werden wird. Die Ursprungsund
Zieladressen-Signale werden an die Funktionsmoduln 14 angelegt, die mit den betreffenden Sammelleitungen verbunden sind
und von diesen decodiert, beispielsweise wie nachstehend beschrieben.
Wie Fig. 3 zeigt, ist ein typischer Funktionsmodul 14 mit den
Sammelleitungen 16a und 16b verbunden. Der Funktionsmodul 14 enthält einen Zieladressendecoder 40, einen Ursprungsadressendecoder
42, Torschaltungen 44a, 44b, ein Sammelleitungs-Eingangsregister 46, eine Sammelleitungsausgangs-Treiberschaltung 48
und eine Funktionsschaltung 50. Wenn der Funktionsmodul 14 als Zielmodul aufgerufen wird, dann wird das Signal auf der
Ausgangsleitung 52 des Zieladressendecoders 40 wahr, der beispielsweise ein 1-aus-16-Decoder sein kann, wenn die Sanunelleitungsfreigabeleitung
24a, welche der Zisladresse entspricht, angesteuert ist, dann ist das Ausgangssignal der Torschaltung
44a "wahr" und bei der nächsten Vorderflanke des Taktsignals auf der Leitung 32 wird das Sammelleitungseingangsregister 4
mit den Daten auf den üatensammelleitungen 18a geladen. Das
Ausgangssignal der Funktionsschaltung 50 wird, wenn der L'unktionsmodul
14 auf den Leitungen 20b als Ursprungsadresse be-
- 20 -
909816/0591
29.Dezember 1977 - 20 -
zeichnet ist, auf die üatenleitungen 18b durchgeschaltet. Im
Betrieb wird das auf der Leitung 54 auftretende Ausgangssignal des Ursprungsadressendecoders 42, der ein 1-aus-16-Decoder
sein kann, "wahr", wenn der Funktionsmodul als Ursprungsadresse bezeichnet ist. Wenn die betreffende Sammelleitungsfreigabeleitung
24b "wahr" ist, liefert die Torschaltung 44b ein Ausgangssignal "wahr" über die Leitung 56 und das Ausgangssignal
der Funktionsschaltung 50 auf den Leitungen 57 wird über die Sammelleitungsausgangs-Treiberschaltung 48 weitergeleitet und
über die Ausgangsleitungen 58 an die Datenleitungen 18b angelegt.
Die dargestellten Funktionsmoduln sind ferner mit Einrichtungen zum zeitweiligen Verhindern der Erzeugung der nächsten
Vorderflanke eines Taktimpulses ausgerüstet. Dies ist beispielsweise dann wichtig, wenn der betreffende Modul (noch)
nicht bereit ist, bei der nächsten normalerweise auftretenden Vorderflanke Daten zu empfangen oder auszusenden. Das Arbeiten
des Taktoszillators wird durch den Signalpegel auf der Sammelleitungstaktfreigabeleitung 59 gesteuert. Jeder Funktionsmodul
14 ist mit dieser Taktfreigabeleitung 59 vorzugsweise über eine Torschaltung 60 verbunden, die einen entsprechenden
Ausgangssignalpegel auf der Taktfreigabeleitung 59 immer dann erzwingt, wenn die Funktionsschaltung 50 nicht
bereit ist, Daten am Register 46 zu empfangen oder an den Torschaltungen 48 zu übertragen (was durch den Signalpegel
"wahr" auf einer Leitung 61 angedeutet wird) und wenn ein entsprechendes Leitungsfreigabeausgangssignal von einer der Torschaltungen
44a oder 44b "wahr" ist. Das Ausgangssignal der
- 21 -
909818/0591
29.Dezember 1977 - 21 -
Torschaltung 6O gibt die Taktfreigabeleitung 59 dann frei,
wodurch die Takterzeugung erneut eingeleitet wird, wenn die Funktionsschaltung ihre Aufgaben ausgeführt hat (was durch den
Signalpegel "falsch" auf der Leitung 61 angezeigt wird).
Wie Fig. 2 zeigt, ist es wegen der Gleichlaufanforderungen für
die verschiedenen Saitunelleitungs- und Datensignale erforderlich,
dass die Sammel-Datenleitungen nur während des Zeitintervalls "gültig" sind, welches die positive Vorderflanke eines Taktimpulses
unmittelbar umgibt (Fig. 2c). Dementsprechend ist das Ausgangssignal des Sammelleitungseingangsregisters 46
jederzeit "gültig", mit Ausnahme eines kurzen Zeitintervalls, welches unmittelbar auf die positive Vorderflanke auf der
Sammeltaktleitung 32 folgt, wobei in diesem kurzen Zeitintervall das Sammelleitungseingangsregister geladen, d.h. mit zu
speichernden Daten beschickt wird (Fig. 2d).
Wie Fig. 4 zeigt, ist der betrachtete Rechner gemäss der Erfindung
so aufgebaut, dass er eine Echtzeitanalyse von Sprachsignalen ausführen kann, und zwar gemäss der Vorrichtung gemäss
der US-PS 4 038 503 (erteilt am 26.JuIi 1977). Der Rechner besitzt drei Sammelleitungen 16a, 16b und 16c, mit
denen die verschiedenen Funktionsmoduln und typischerweise der Wirtsrechner verbunden ist.
Für einen Rechner gemäss der Erfindung ist es typisch, dass er mit einem Wirtsrechner 28 verbunden ist und mit diesem
zusammenarbeitet, wobei der Wirtsrechner beispielsweise ein Rechner des Typs PDP-11 mit einem Standard-PDP-11-Interface
62 bzw. einer Schnittstellenschaltung 62 sein kann. Der PDP-11
- 22 -
909816/0691
A 42 703 b
29.Dezember 1977 - 22 -
ist mit der Sammelleitung 16c verbunden und kann entweder der
Ursprung oder das Ziel der Daten auf der Sammelleitung sein. Der PDP-11 ist ferner über seine Hauptsammelleitung bzw. seinen
Unibus 64 und Ladeleitungen 66 mit einem Befehls- oder Programmspeicher 68 verbunden, in den das Programm für die Steuerung
des Rechners eingegeben und in dem dieses Programm gespeichert wird. Der Befehlsspeicher 68 kann beispielsweise ein Speicher
mit wahlfreiem Zugriff sein, in dem 1024 Worte mit je 23 bit speicherbar sind und der mit der Sammelleitung 16a über die
Leitungen 69 verbunden ist.
Der Steuerteil 12 umfasst den Programmspeicher 68 und eine Befehlsdecoder- und Steuerschaltung 70 (Fig. 1 und 4). Die
Steuerschaltung 70 ist mit dem Befehlsspeicher 68 direkt und mit dem PDP-11 über das externe Steuerregister 26 (Fig. 1)
verbunden.
Beim betrachteten bevorzugten Ausführungsbeispiel der Erfindung sind zusätzlich zum Befehlsspeicher 68 drei weitere
Speicher vorgesehen, nämlich zwei schnelle HilfsSpeicher 74 und 76 (Speicher A und Speicher B) und ein größerer Speicher
78. Die Hilfsspeicher 74 und 76 können Speicher mit wahlfreiem Zugriff (RAM) mit einer Speicherkapazität von je 256 Wörter
zu je 32 bit sein, während der grössere Speicher 78, beispielsweise eine Kapazität von 65536 Wörtern von je 32 bit aufweist.
Die Hilfsspeicher 74 und 76 können jeweils für eine automatische
schrittweise Adressenfortschaltung eingerichtet sein und wahlweise so eingestellt werden, dass sie bei jedem Einspeichern
oder Auslesen eines Speicherdatenv/ortes (genauer gesagt
- 23 -
909816/0591
a 42 703, b
k - 163
29.Dezember 1977 --M23--
275883Q
der einem solchen Datenwort zugeordneten Speicherplätze) vom Speicheradressenregister eine 1 subtrahieren oder dazuaddieren.
Der Hilfsspeicher 74 kann mit den Daten von der Datenleitung
18c der Sammelleitung 16c über Leitungen 8Ö geladen werden.
Die Speicheradresse, unter der die Daten eingeschrieben werden, wird von den Datenleitungen 18a der Sammelleitung 16a über
Leitungen 81 eingegeben. Die Ausgangssignale des Hilfsspeichers 74 werden über die Leitungen 82 hur zur Datenleituhg 18a der
Sammelleitung 16a übertragen. In ähnlicher Weise kann der
Hilfsspeicher 76 über die Sammelleitung 16c und Leitungen 84
geladen werden, während die Speicheradresse, unter der die Daten einzuschreiben sind, von der Sammelleitung 16a über
Leitungen 86 eingegeben wird. Die Ausgangssignale des Hilfsspeichers
76 sind über Leitungen 88 nur auf der Sammelleitung 16b zugänglich.
Der grössere Speicher 78 wird mit den Daten der Datenleitungen
18c der Sammelleitung 16c über Leitungen 90 geladen und liefert
Ausgangssignale über Leitungen 92 nur an die Sammelleitung 16c. Die Speicheradresse, an der die Daten in den grösseren
Speicher 78 geladen werden, wird über Leitungen 94 von der Sammelleitung 16a geliefert. Ferner wird in den grösseren
Speicher 78 eine "Speicherfunktion" von der Sammelleitung 16a
über Leitungen 96 eingegeben, wobei die Speicherfunktion die gewünschte Speicherdatenwortlänge in 8 bit-bytes anzeigt;
ausserdem wird, wenn dies erwünscht ist, eine automatische Adressenfortschaltfunktion eingegeben.
- 24 -
909816/0591
A 42 7O3 b
k - 163
29.Dezember 1977 - 24 -
Der Rechner weist ferner einen arithmetischen Modul 100 auf, welcher Daten von den Datenleitungen 18a der Sammelleitung 16a
über Leitungen 102 und von den Datenleitungen 18b der Sammelleitung
16b über Leitungen 104 empfängt und dessen Ausgangssignale auf der Sammelleitung 16c über Leitungen 106 zur Verfügung
stehen.
Die Speicher 74,76 und 78 sowie der arithmetische Modul bzw. Rechenmodul 100 bilden das Herz des Rechners. Zusätzlich
können, je nach den Erfordernissen, beliebig viele weitere
Funktionsmoduln vorgesehen sein. Ein für die Analyse und
Verknüpfung von Datenfeldern besonders nützlicher Funktionsmodul ist ein 16x16-bit-Multiplizierer 110, der Eingangsdaten über Leitungen 112 von der Sammelleitung 16b und über Leitungen 114 von der Sammelleitung 16c empfängt. Die Ausgangssignale des Multiplizierers 110 stehen über Leitungen 116
auf der Sammelleitung 16a zur Verfügung. In ähnlicher Weise
ist ein 32-bit-Schiebemodul 120 vorgesehen, dem Eingangssteuerdaten über Leitungen 122 von der Sammelleitung 16a zuführbar sind und dem Eingangsdaten ferner über Leitungen 124 von der Sammelleitung 16c zuführbar sind. Die Ausgangssignale des
Schiebemoduls 120 stehen über Leitungen 126 auf der Sammelleitung 16b und über Leitungen 123 auf der Sammelleitung 16a zur Verfügung. Typischerweise besitzt der betrachtete Rechner, welcher, wie erwähnt, für die Sprachanalyse eingesetzt wird, einen Autokorrelationsmodul 13O mit einem Analogeingang über eine Leitung 132 und digitalen Datencingängen von der Leitung 16c über Leitungen 134. Die Ausgangssignale des Autokorrelationsmoduls 130 stehen über Leitungen 13C auf der Sammelleitung 16c zur Verfügung.
können, je nach den Erfordernissen, beliebig viele weitere
Funktionsmoduln vorgesehen sein. Ein für die Analyse und
Verknüpfung von Datenfeldern besonders nützlicher Funktionsmodul ist ein 16x16-bit-Multiplizierer 110, der Eingangsdaten über Leitungen 112 von der Sammelleitung 16b und über Leitungen 114 von der Sammelleitung 16c empfängt. Die Ausgangssignale des Multiplizierers 110 stehen über Leitungen 116
auf der Sammelleitung 16a zur Verfügung. In ähnlicher Weise
ist ein 32-bit-Schiebemodul 120 vorgesehen, dem Eingangssteuerdaten über Leitungen 122 von der Sammelleitung 16a zuführbar sind und dem Eingangsdaten ferner über Leitungen 124 von der Sammelleitung 16c zuführbar sind. Die Ausgangssignale des
Schiebemoduls 120 stehen über Leitungen 126 auf der Sammelleitung 16b und über Leitungen 123 auf der Sammelleitung 16a zur Verfügung. Typischerweise besitzt der betrachtete Rechner, welcher, wie erwähnt, für die Sprachanalyse eingesetzt wird, einen Autokorrelationsmodul 13O mit einem Analogeingang über eine Leitung 132 und digitalen Datencingängen von der Leitung 16c über Leitungen 134. Die Ausgangssignale des Autokorrelationsmoduls 130 stehen über Leitungen 13C auf der Sammelleitung 16c zur Verfügung.
- 25 -
909816/0591
29.Dezember 1977 - 25 -
Die Flexibilität des Rechners wird dadurch noch weiter erhöht, dass die Datenleitungen der Sammelleitung 16c über Torschaltungen
138 bzw. 140 mit den Datenleitungen der Sammelleitungen 16a bzw. 16b verbunden sind. Die Torschaltungen 138,140
verhalten sich wie Funktionsmoduln mit der Ausnahme, dass keine getakteten Register vorhanden sind und sind mit der
Sammelleitung 16c über Leitungen 142 bzw. 144 verbunden und liefern Ausgangssignale über Leitungen 146 und 148 an die
Sammelleitungen 16a bzw. 16b.
Gemäss Fig. 1 werden in dem Programm- bzw. Befehlsspeicher 68
Programmbefehle gespeichert, welche beim Ausführungsbeispiel von der Steuerschaltung 7O des Rechners nicht verändert werden
können. Eine Folge von Programmbefehlen wird in den Befehlsspeicher 68 von dem Wirtsrechner 28,beispielsweise dem PDP-11,
eingespeichert. Die Programmbefehle werden über eine spezielle Steuer-Interface-Schaltung 152 eingegeben. Der Befehlsspeicher
68 enthält eine ausreichende Anzahl von 32-bit-Befehlsworten, um ein vollständiges Rechnerprogramm zu speichern.
Der Rechner wird gestartet, indem man einen Programmadressenzähler
158 ansteuert, wodurch ein einziges Speicherwort, welches der Speicheradresse entspricht, von dem Zähler 158 über
eine Leitung 154 abgegeben wird, welches einem bestimmten Befehl entspricht, der dann auf Programmausgangssammelleitungen
156 des Befehlsspeichers zur Verfügung steht. Das Speicherwort, welches den nächsten auszuführenden Programmbefehl enthält,
- 26 -
909816/0501
A 42 703 b
29.Dezember 1977 °
wird also vom Programmadressenzähler 158 über Leitungen 154
aufgerufen. Anschliessend führt der Rechner, welcher läuft, wenn die Taktfreigabeleitung 59 freigegeben wird, das gespeicherte
Programm aus, indem er die Befehle in der Reihenfolge des Programms ausführt.
Wenn die Taktfreigabeleitung 59 freigegeben wird, schwingt der Taktoszillator 30 und erzeugt Sammelleitungstaktsignale auf
der Sammeltaktleitung 32. Jede positive Vorderflanke des Taktsignals führt dazu, dass der Befehl, der in diesem Moment
auf der Programmausgangssammelleitung 156 ansteht (oder eine davon abgeleitete oder abhängige Information) in ein Befehlsregister
eingegeben wird, welches durch 2 bit niederer Ordnung (bits Nr. 0 und 1) des Befehlswortes auf den Leitungen 156
ausgewählt wird. Diese 2 bit der "Operationscode", identifizieren die "Klasse" bzw. den Typ des Befehls und das Befehlsregister,
in den die Information, die einen Teil des Befehls trägt, eingespeichert wird. Durch die zwei, den Operationscode bildenden bits v/erden vier Klassen von Befehlen unterschieden,
nämlich Befehle der "Rechenklasse" (Code OO) , der "Datenklasse" (Code 01), der "Sammelleitungsklasse" (Code 10)
und der "Unterprogrammsklasse" (Code 11). Der Operationscode wird durch einen Befehlsklassendecoder 162 decodiert, der ein
Ausgangssignal "wahr" auf der Ausgangsleitung erzeugt, die der Klasse des zu diesem Zeitpunkt auf den Leitungen 156 anstehenden
Befehls entspricht.
Wie erläutert, enthält jedes Befehlswort zwei bit, die bit Nr.0
und 1, welche die Klasse bzw. den Typ des Befehls bezeichnen.
- 27 -
909816/0591
A 42 703 b
k - 163
29.Dezember 1977 - 27 -
k - 163 2758&30
Ausserdem sind vier weitere bit vorhanden, welche bei allen Befehlsworten eine unveränderliche Bedeutung haben. Drei dieser
bits, die bits Nr. 3 bis 5, entsprechen den drei Sanunelleitungsfreigabesignalen
auf den Sammelleitungsfreigabeleitungen 24a bis c der Sammelleitungen 16a bis c. Diese drei bit
werden von einem Sammelleitungsfreigaberegister 168 überwacht. Am Beginn jedes Maschinen-Befehlszyklus - dieser Beginn wird
durch eine positive Vorderflanke des Taktimpulses angezeigt, der über eine Leitung 170 von einer Torschaltung 172 eintrifft,
speichert das Register 168 die drei Sammelleitungsfreigabe-bit des Befehlswortes, welche über Leitungen 173
zur Verfügung stehen und liefert an seinen Ausgängen 174a bis c die Treibersignale zum Freigeben der betreffenden Sammelleitungsfreigabeleitungen.
Auf diese Weise bestimmt das Register 168, ob über eine bestimmte Sammelleitung während eines
Befehlszyklus Daten übertragen werden können oder nicht.
Dem bit Nr. 4 kommt ebenfalls bei jedem Befehl die gleiche Bedeutung
zu; es handelt sich um das "Wiederholungsbit", welches veranlasst, dass der zugehörige Befehl mehrfach wiederholt
wird, bis ein "Wiederholungszähler" (nicht dargestellt) in den in Abhängigkeit vom Wiederholungsbit von einem zugeordneten
Wiederholungsregister (ebenfalls nicht dargestellt) eine Zahl eingespeichert wird, rückwärts bis auf Null gezählt
hat. In das Wiederholungsregister wurde zuvor eine entsprechend dem Programm ausgewählte Zahl eingegeben. Wenn das Wiederholungsbit
"wahr" ist und der Zählerstand des Wiederholungszählers nicht Null ist, was durch den Signalpegel "flasch"
auf einer Leitung 176 angezeigt wird, dann kann die Programmadresse nicht wechseln und die verschiedenen Befehlsregister
- 28 -
909818/0591
29.Dezember 1977 - 28 -
können nicht geladen werden. Der Taktoszillator 30 läuft jedoch weiter, um eine Datenübertragung auf den Sammelleitungen
zu ermöglichen, die durch die Inhalte der Befehlsregister, deren Inhalt während dieser Zeit nicht geändert wird, vorgegeben
sind.
Befehlsklassen
Befehlsklassen
Wenn der Operationscode, der vom Befehlsklassendecoder 162 über die Leitungen 178 empfangen wird, der Code 10 ist, dann wird
eine Leitung 180 gesetzt, so dass die 24 bit höherer Ordnung des Befehlswortes über Leitungen 182 am Beginn des nächsten
Maschinenzyklus in das Sammelleitungsadressenregister 34 eingegeben werden. Die über die Leitungen 182 eintreffenden
Daten werden gespeichert und stehen dann zur Verfügung, um die Ursprungs- und die Zieladressenleitungen 20a,... bzw.
22a festzulegen. Jede Adresse besteht beim Ausführungsbeispiel aus einem Wort mit vier bit, so dass mittels der
Ursprungs- oder Zieladressen jeder Sammelleitung bis zu 16 verschiedene
Funktionsmoduln angeschaltet und aufgerufen werden können. Die Inhalte des Sammelleitungsadressenregisters 34
können nur verändert werden, indem eine andere Befehlsklasse
ausgeführt wird, und werden im übrigen für alle aufeinanderfolgenden Befehlszyklen unverändert beibehalten. Das Sammelleitungsadressenregister
kann dann am Beginn einer Befehlsfolge gesetzt werden, um die Struktur des Rechners bzw. des
Befehlsablaufs festzulegen und somit den Datenfluss in vorgegebener
Weise zu bestimmen.
- 29 -
909816/0591
A 42 703 b
29.Dezember 1977 . - 29 -
Wenn der Operationscode eines Befehlswortes auf den Leitungen 156 der Code 01 ist, wird eine Ausgangsleitung 183 des Befehlsklassendecoders
162 gesetzt und zeigt an, dass ein Befehl der Datenklasse vorliegt. Hierdurch werden ein Datenbefehlsregister
184 und ein Befehlsadressenregister 186 freigegeben, und am Beginn des nächsten Maschinenbefehlszyklus v/erden die
bits Nr. 8 bis 31 vom Ausgang des Befehlsspeichers 68 über die Sammelleitungen 156 in das Datenbefehlsregister eingespeichert,
während die von den bits Nr. 6 und 7 des Befehls abgeleiteten Daten in das Datenadressenregister 186 eingespeichert
werden.
Die bits Nr. 6 und 7 des Befehls setzen eine der Ausgangsleitungen
190 bis 196 des Decoders 188 (in Abhängigkeit von dem entsprechenden zweistelligen Code), um den Typ des betreffenden
Befehls der Datenklasse festzulegen. So wird beispielsweise, wenn die bits Nr. 6 und 7 beide "0" sind, die Leitung
190 gesetzt und die Sammelleitungszieladresse für die Sammelleitung 16a auf den Leitungen 22a, welche normalerweise vom
Sammelleitungsadressenregister 34 geliefert- wird, wird zeitweilig
durch die vier bits aus dem Datenbefehlswort ersetzt.
Diese vier bits, die die Sammelleitungszieladresse angeben, stehen über Leitungen 198 des Datenbefehlsregisters 184 zur
Verfugung und werden an die Sammelleitungszieladressenleitungen 22a über einen Multiplexer 199 angelegt. Die Ausgangssignale
des Multiplexers 199 über Leitungen 199a werden durch einen Signalpegel ausgewählt, der von dem Register 186 auf
einer Leitung 200 erzeugt wird. Die restlichen 20 bit des
- 30 -
909816/0591
29.Dezember 19 77 - 30 -
Befehlsv/ortes stehen über Leitungen 201 zur Verfügung und
werden für die Sammelleitung 16a als Daten zur Verfügung gestellt, wenn diese durch das Sammelleitungsfreigaberegister
168 freigegeben wird. Wenn andererseits das bit Nr. 6 eine "1" ist und das bit Nr. 7 eine 11O", dann wird den Zieladressenleitungen
22a der Sammelleitung 16a vorübergehend von dem Multiplexer 199, der mit dem Datenadressenregister 186 über
Leitungen 202 verbunden ist, ein spezieller Adressencode aufgedrückt. Gleichzeitig stehen 24 Daten-bits aus einem Datenbefehlsregister
184 über Leitungen 201 auf den Datenleitungen 18a zur Verfügung, wenn die Sammelleitung 16a freigegeben ist.
Wenn die ausgewählten bits des Befehls, wie unten angegeben, "wahr" sind, bezeichnet diese Spezialadresse bis zu drei
Funktionsmoduln, denen Teile der Daten auf den Datenleitungen 18a zugeführt werden. Die Spezialadresse wird von einem Adressenwertgenerator
204 erzeugt und steht über Leitungen 206 am Datenadressenregister 186 zur Verfügung.
Als Ergebnis werden in das Wiederholungsregister (nicht dargestellt)
zum Zeitpunkt des Auftretens des nächsten positiven Taktimpulses die bits Nr. 26 bis 31 des Befehlswortes, d.h.
eine sechsstellige Binärzahl eingespeichert. Wenn das bit Nr. 24 des Befehlswortes ebenfalls "wahr" ist, werden die bits
8 bis 15 des Befehlswortes als eine Binärzahl in den Hilfsspeicher
74 eingespeichert; wenn das bit 25 des Befehlswortes "wahr" ist, werden die übrigen 8 bit, d.h. die bits Nr. 16
bis 23 des Befehlswortes als achtstellige Binärzahl in die Hilfsspeicher 76 eingespeichert. Dieser Befehl der Datenklasse
(bei dem die Operationscodebits 6 und 7 "0" bzw. "1" sind) vereinigt also beim Ausführungsbeispiel drei häufig
- 31 -
909816/0591
A 42 703 b
k - 163
29.Dezember 1977 - 31 -
benutzte Befehle der Datenklasse zu einem einzigen Befehl,
wodurch häufig beträchtliche Einsparungen sowohl an Zeit als
auch an Speicherplatz erreicht werden.
Wenn die bits Nr. 6 und 7 den Code 11 bilden, dann wird ein
ausgewählter Teil des Befehlswortes zum Zwecke der Signalgabe oder zur Einleitung einer Unterbrechung im Wirtsrechner 28
in das externe Steuerregister 26 eingespeichert.
Beim Ausführungsbeispiel wird der Operationscode 01 aus den bits Nr. 6 und 7 nicht verwendet.
Die nächste Klasse von Befehlen sind die Befehle der Abzweigklasse,
die durch den Operationscode 11 bezeichnet sind. Ein Befehl dieser Klasse ermöglicht es, die normale Folge der Ausführung
der programmierten Befehle zu ändern, und zwar in Abhängigkeit davon, ob ein oder mehrere Konditionscodebits
in dem Befehlswort gesetzt sind.
Am Ende jedes Befehlszyklus verursacht die Vorderflanke eines
positiven Taktimpulses auf der Leitung 32 normalerweise das Fortschreiten des Programmadressenzählers 158 um 1 und damit
eine Änderung der numerischen Eingangsadresse für den Programmbzw. Befehlsspeicher 68 über die Leitungen 154. Nachdem also
das Befehlswort am Ausgang des Speichers im Augenblick der Vorderflanke des TaktImpulses in die betreffenden Befehlsregister
eingegeben ist, wird also aus dem Programmspeicher das Befehlswort mit der nächstfolgenden Adresse aufgerufen.
- 32 -
909816/0591
A 42 703 b
29.Dezember 1977 - 32 -
Wenn das nächste Befehlswort ein Befehl der Abzweigklasse ist, dann wird vor der nächsten positiven Vorderflanke eines Taktimpulses
und in Abhängigkeit vom Zustand der Codebits, die im Befehlswort gesetzt sind, die Entscheidung getroffen, ob
abgezweigt wird oder nicht. Wenn die Entscheidung für einen Abzweigvorgang getroffen wird - dies wird durch den Signalpegel
"hoch" oder "wahr" auf einer Leitung 212 angezeigt dann wird anstelle einer Fortschaltung des Programmadressenzählers
158 bei der nächsten Taktimpulsvorderflanke das numerische Adressensignal, welches über die Leitungen 210 an den
Eingang des Programmadressenzählers angelegt ist, in den Adressenzähler eingespeichert und ersetzt den gegenwärtigen
Inhalt des Programmadressenzählers. Anschliessend werden dann die Befehlsworte unter der neuen Adresse abgerufen und nacheinander
ausgeführt, vorausgesetzt, dass kein weiterer Befehl der Abzweigklasse auftritt.
Die Adressensignale, die an die Eingänge des Programmadressenzählers
über die Leitungen 210 angelegt werden, können aus einer von vier verschiedenen Quellen ausgewählt werden, und
zwar durch zwei Steuereingangssignale, die an einen Programmadressenmultiplexer 214 über Leitungen 215 angelegt werden.
Die Steuereingangssignale auf den Leitungen 215 entsprechen den bits Nr. 20 und 21 des Befehlswortes, welches auf den
Programmsammelleitungen 156 des Befehlsspeichers 68 zur Verfügung steht.
Die vier möglichen Quellen für die neue Adresseninformation sind: die bits Nr. 22 bis 31 des Befehlswortes auf den Leitungen
156; die Daten in den bits 0 bis 9 der Datenleitungen 18c
- 33 -
909816/0591
29.Dezember 1977 - 33 -
der Sammelleitung 16c; die Ausgangssignale eines Unterprogrammrückkehradressenregisters
und die Ausgangssignale eines externen Steuer-Interface-Registers 26, wobei die Eingangssignale
über Leitungen 216, 218, 220 bzw. 222 zur Verfügung stehen.
Die Entscheidung für oder gegen einen Abzweigvorgang wird durch eine Torschaltung 226 gesteuert, in der jedes der Befehlsbits
8 bis 18 auf den Leitungen 228 von den Leitungen 156, nämlich die Bedingungscodebits mit einem entsprechenden
1-bit-Signal (über Leitungen 230) verglichen wird, welches einem entsprechenden Maschinenzustand entspricht, der zu überprüfen
ist. Wenn ein Befehlsbit und das entsprechende Maschinenzustandsbit
beide "wahr" sind und wenn der empfangene Befehl ein Abzweigbefehl ist, dann wird ein Abzweigvorgang ausgeführt,
indem die Programmadressenladeleitung 212 über die Torschaltung 226 zum Einspeichern der neuen Adresse auf den
Leitungen 210 gesetzt wird, und zwar bei der nächsten Vorderflanke eines Taktimpulses. Andernfalls wird der Programmadressenzähler
in normaler-. Weise fortgeschaltet und es wird das nächstfolgende Befehlswort abgerufen.
Der Einfachheit halber entspricht das bit Nr. 9 des Abzweigbefehlswortes
einem Maschinenzustandsbit, welches immer "wahr" ist, so dass ein Abzweigbefehl, bei dem dieses Bedingungs- bzw.
Zustandsbit gesetzt ist, ein unbedingter Abzweig- bzw. Sprungbefehl ist.
Das Unterprogrammrückkehradressenregister 224, welches oben
erwähnt wurde, ermöglicht dem Rechner die Ausführung von Unterprogrammen. In das Register 224 wird immer dann, wenn das bit
- 34 -
909816/0591
29.Dezember 1977 - 34 -
eines Abzweigbefehls "wahr" ist, der gegenwärtige Zählerstand des Progranunzählers +1 eingespeichert; das bit 19 entspricht
also einem Befehl "Springen zu Unterprogramm".
Zusätzlich zu den bedingten Abzweig- oder Sprungbefehlen gehören zur Klasse der Abzweigbefehle also auch unbedingte
Sprungbefehle. Am Ende des Unterprogramms wird der ursprüngliche Inhalt des Progranunzählers in den Adressenzähler zurückgespeichert,
so dass der nächste Befehl, der auf den Befehl "Springen zum Unterprogramm" folgt, ausgeführt werden kann.
Das Rückkehradressenregister 224 ist vorzugsweise für die Speicherung mehrerer Adressenwerte geeignet und als Stapelregister
mit der Organisation "Letzter rein/Erster raus" organisiert, so dass auch verschachtelte Unterprogramme ausgeführt
werden können.
Der als Beispiel betrachtete erfindungsgemässe Rechner enthält
auch zwei Schleifenzähler (nicht dargestellt), welche den Vorteil bieten, dass sie es möglich machen, eine Gruppe
von Befehlen wiederholt auszuführen, und zwar für eine vorgegebene Anzahl von Malen. In den ausgewählten Schleifenzähler
wird eine vorgegebene Zahl eingespeichert, wozu vor dem übergang zu Befehlen der Wiederholungsklasse ein Befehl der Datenklasse
verwendet wird. Anschliessend wird am Ende der Durchführung der Gruppe von Befehlen ein Befehl der Abzweigklasse
verwendet, um eine erneute Rückkehr zum Beginn der Gruppe von Befehlen herbeizuführen, sofern der Schleifenzähler noch nicht
auf Null steht. Wenn ein Abzweigschritt durchgeführt wird, zählt der Schleifenzähler jeweils um 1 rückwärts. Wenn der
- 35 -
909816/0591
29.Dezember 1977 - 35 -
Schleifenzähler den Zählerstand Null erreicht, dann wird zum Zeitpunkt der Vorderflanke eines positiven Taktimpulses kein
Abzweigschritt durchgeführt und stattdessen der nächstfolgende Befehl der Befehlsliste abgerufen und ausgeführt.
Die letzte Befehlsklasse entspricht dem Operationscode OO und ist ein Befehl der Rechenklasse. Beim Ausführungsbeispiel
wird dann, wenn ein Befehl der Rechenklasse auf den Leitungen 156 vorliegt, eine Leitung 232 des Befehlsklassendecoders
162 gesetzt, und bei der nächsten Taktimpulsvorderflanke werden die bits 6 bis 31 des Befehls in ein Rechenbefehlsregister
234 eingespeichert. Die Ausgangssignale des Rechenbefehlsregisters 234 auf Leitungen 236 steuern die Arbeitsweise des
Rechenmoduls 100. Die bit-Zuordnung für Befehle der Rechenklasse ist in Fig. 6 dargestellt.
Wie Fig. 5 zeigt, ist der Rechenmodul 1OO das Hauptelement für die Durchführung von arithmetischen und logischen Operationen
im Rechner und besitzt als Kernstück eine duale 16-bit-Rechen-und-Logikeinheit (ALU) 238. Die ALU-Einheit 238
ist über die betrachtete Schaltungsanordnung mit den anderen Funktionsmoduln an den Sammelleitungen 16a bis c verbunden.
Die einzelnen Operationen des Rechenmoduls 100 werden von dem Rechenbefehlsregister 234 über Leitungen 236 gesteuert. Die
Befehlsbits im Register 234 steuern den Signalfluss in dem Rechenmodul 100 (sowie dessen Funktion und Aufbau).
- 36 -
909818/0591
29.Dezember 1977 - 36 -
Der Rechenmodul 100 umfasst ferner ein A-Eingangsregister mit einem 32-bit-Dateneingang von der Sammelleitung 16a und
ein B-Eingangsregister 242 mit einem 32-bit-Dateneingang von der Sammelleitung 16b. Die Ausgangssignale des A-Registers
240 werden über Leitungen 244 als erste Eingangssignale einem A-Multiplexer 246 zugeführt. Die Ausgangssignale des B-Registers
242 werden über Leitungen 248 als erste Eingangssignale einem B-Multiplexer 250 zugeführt. Die Multiplexer 246 und
250 haben jeweils vier mögliche Eingänge, von denen einer durch Steuersignale über Leitungen 252a, 252b und 254a, 254b
vom Rechenbefehlsregister 234 ausgewählt wird.
Die Ausgangssignale der Multiplexer 246 und 250 werden an die ALU-Einheit 238 angelegt, deren Funktion durch die Signale
auf Steuerleitungen 256 des Rechenbefehlsregisters 234 gesteuert wird. Die Ausgangssignale der ALU-Einheit 238 stehen
über eine Torschaltung 258 an der Sammelleitung 16c zur Verfügung und werden ferner als erste Eingangssignale an einen
dritten Multiplexer 260 angelegt, dessen ausgewählter Ausgang durch die Signale auf den Steuerleitungen 262a, 262b von dem
Rechenbefehlsregister 234 gesteuert wird. Die Ausgangssignale des Multiplexers 260 werden einem F-Verxiegelujigssciialtuxig-Speicherregister
264 zugeführt.
Wie oben erv/ähnt, wird die Arbeitsweise des Rechenmoduls durch die Ausführung von Befehlen der Rechenklasse bestimmt. Anschliessend
fährt der Rechenmodul fort, die gleiche Funktion auszuüben (mit gewissen Ausnahmen, auf die unten noch eingegangen
wird) bis der Inhalt des Rechenbefehlsregisters bei der Ausführung eines anderen Befehls der Rechenklasse geändert
- 37 -
909816/0591
29.Dezember 1977 - 37 -
wird. Wie erwähnt, bestimmen die Rechenklasse-Befehlsbits, die im Rechenbefehlsregister gespeichert sind, die arithmetische
oder logische Funktion, die von der ALU-Einheit 238 auszuführen ist und ausserdem die Eingangsquelle für die Multiplexer
246, 25O und 26O sowie - gegebenenfalls - die unten beschriebenen Operationen der Register 240, 242 und 264.
Das A-Register 240 und das B-Register 242 sind jeweils 4-Funktions-2-Richtungs-Schieberegister, welche unabhängig
über Leitungen 264a, 264b und 264c, 264d gesteuert werden, um eine arithmetische Vorwärtsverschiebung, eine arithmetische
Rückwärtsverschiebung, eine Halte- oder eine Ladeoperation durchzuführen. Alle 32 bits des A-Registers 240 werden durch
die Lade-, Halte- oder Schiebeoperationen beeinflusst.
Im B-Register werden jedoch alle 32 bits bei jeder Operation
nur dann beeinflusst, wenn das "Teilerbit11 (bit 15) des
Rechenbefehls nicht gesetzt ist. Wenn dieses bit gesetzt ist, dann geht bei einer Vorwärtsschiebeoperation dasjenige bit,
welches von dem bit 15 vorgeschoben wird, im B-Register verloren und es wird ein Quotientenbit an die bit-Stelle 16 geschoben.
Die Register 240, 242 werden nur dann von den Sammelleitungen 16a bzw. 16b geladen, wenn im Feld des Rechenbefehls
der Code "Laden" erscheint. Die Register können geladen werden, wenn ein Befehl der Rechenklasse ausgeführt wird, oder wenn
der Rechenmodul bei der Durchführung eines Befehls der Datenklasse als die Zieladresse bezeichnet ist.
Das F-Verriegelungsschaltung-Register 264 ist ein getaktetes
- 38 -
909816/0591
Λ 42 703 b
29.Dezember 1977 - 38 -
32-bit-Verriegelungsschaltungsregister, welches über den
Multiplexer 260 den Ausgang der ALU-Einheit 238 mit einer arithmetischen Verschiebung von +1,0 oder -1 bits beaufschlagen
kann und welches mit seinem eigenen um 1 bit arithmetisch verschobenen Ausgangssignal geladen werden kann. Die
oberen 16 bits (bits Nr. 16 bis 31) und die unteren 16 bits (bits 0 bis 15) auf den Eingangsleitungen 265 werden durch
unabhängige Befehls-bits (bits 24 bzw. 19) des Rechenbefehls
in dem F-Verriegelungsschaltungs-Register 264 "verriegelt".
Der Zustand des Registers 264 kann sich nicht ändern, wenn der jeweilige Befehl nicht gerade ein Befehl der Rechenklasse
ist und wenn nicht ein oder beide Registerfreigabe-bits über die Leitungen 266 anstehen, nämlich das Hoch-Freigabe-bit
oder das Nieder-Freigabe-bit 19 des Rechenbefehls.
Zum F-Verriegelungsschaltungs-Register 264 besteht kein direkter
Zugriff von irgendeiner der Datensammelleitungen.
Die an den Eingängen des Registers 264 und der ALU-Einheit 238 empfangene Information wird durch die drei 4-Stellungs-Multiplexer
246,250 und 260 gesteuert, wobei, wie oben erwähnt, mit Ausnahme der Eingangssignale vom Register 242 über
eine Leitung 268, alle 32 Eingangs-bits für jede Eingangsleitung in gleicher Weise durch den Zustand der Multiplexer
beeinflusst werden. Die Steuerleitungen für die Multiplexer werden am Rechenbefehlsregister gesetzt, wenn der Rechenbefehl
eingespeichert wird.
Wie oben erwähnt, werden der ALU-Einheit 238 zwei Eingangssignale von den Multiplexern 246 bzw. 250 zugeführt. Das Ein-
- 39 -
909816/0591
29.Dezember 1977 - 39 -
gangssignal vom Multiplexer 246, welches durch die Steuer-bits
des Rechenbefehlsregisters bestimmt wird, 1st entweder das Ausgangssignal des A-Registers 240, das Ausgangssignal des
B-Registers 242, das Ausgangssignal des F-Verriegelungsschaltungs-Registers
264 oder das um 1 bit nach hinten verschobene Ausgangssignal des F-Verriegelungsschaltungs-Registers 264.
In entsprechender Weise ist das Eingangssignal von dem Multiplexer 250 zu der ALU-Einheit 238 entweder das Ausgangssignal
des B-Registers 242, das Ausgangssignal des A-Registers 240, das Ausgangssignal des F-Verriegelungsschaltungs-Registers
264 oder die Folge der oberen 16 bits des B-Registers, und zwar um 2 bits nach oben verschoben, wobei diese Folge die
ALU-Eingangs-bits 16 bis 31 bildet, die mit den oberen 16 bits vom F-Verriegelungsschaltungs-Register 264 als ALU-Eingangsbits
O bis 15 zusammengefasst werden, was einer effektiven
Abwärtsverschiebung um 16 bits entspricht. Die letztgenannte Fähigkeit ist nützlich, wenn ein 32-bit-Rechnerwort in zwei
16-bit-Worte aufgespalten wird, die nacheinander an eine externe Einrichtung, wie z.B. den Wirtsrechner, übertragen
werden.
Wie oben erwähnt, kann das Ausgangssignal der ALU-Einheit beim Ausführungsbeispiel über eine Torschaltung auf die Sammelleitung
16c durchgeschaltet werden, wenn der Rechenmodul 100 als Ursprungsadresse angegeben ist. Dieses Ausgangssignal
spiegelt die Funktion wider, die durch den letzten Befehl der Rechenklasse vorgegeben ist, der an dem F-Verriegelungsschaltungs-Register
264 wirksam ist, wie es zu diesem Zeitpunkt geladen ist und an den zuletzt geladenen Daten in den A/B-Registern
240,242, beispielsweise aufgrund eines Daten-Lade-
- 40 -
909818/0591
29.Dezember 19 77 - 40 -
Befehls.(Die Inhalte der Register 240,242 und 264 bleiben erhalten,
selbst wenn der Rechner nicht läuft; das Rechenbefehlsregister wird jedoch gelöscht (auf Null gestellt), wenn der
Rechner stillgesetzt wird.)
Die ALU-Einheit 238 kann eine Einheit des Typs 74S181 der
Firma Texas Instruments sein. Die Funktion der ALU-Einheit 2 38 wird durch die 8 bits des Rechenbefehls gesteuert, welche
eine Bearbeitung der bits höherer Ordnung, d.h. der bits 16 bis 31, unabhängig von der Bearbeitung der bits niederer
Ordnung, d.h. der bits O bis 15, ermöglichen.
Die Befehle der Rechenklasse enthalten auch verschiedene Funktions-bits für Spezialzwecke. Wenn das bit 25 gesetzt ist,
dann werden alle 32 bits des F-Registers gelöscht (auf Null gesetzt), sobald das Rechenregister am Beginn des Maschinenzyklus
geladen ist, und zwar durch einen Signalpegel über die Leitung 270 des Rechenbefehlsregisters. Dies tritt nur dann
ein, wenn ein Befehl der Rechenklasse vorliegt. Wenn das bit 17 des Rechenbefehls gesetzt ist, dann werden alle 32 bits
des A-Registers 240 gelöscht (auf Null gestellt), nachdem das Rechenregister am Anfang eines Maschinenzyklus geladen ist
und die Rechensteuersignale sind so ausgebildet, dass sie das Zweierkomplement des Absolutwertes des Inhalts des B-Registers
242 darstellen.
Wenn das bit 18 des Rechenbefehls gesetzt ist, dann werden die
bits 16 bis 31 des B-Registers gelöscht (auf Null gestellt) und die Steuersignale werden so bestimmt, dass sich in den bits
0 bis 15 des B-Registers die gleiche Nummer ergibt, wie wenn
- 41 -
909816/0591
29.Dezember 1977 - 41 -
es sich um eine mit einem Vorzeichen ergänzte 32-bit-Nummer handeln würde.
Das bit 15 des Befehls wird für die arithmetische Teilung von nicht negativen Zahlen verwendet. Der volle Befehlscode für
einen 32-bit-Divisionsschritt ist in Oktalnotation 03522166704. Dieser Code befiehlt der ALU-Einheit 238 normalerweise seine
Eingangssignale vom Multiplexer 250 und vom F-Register 264 (welches den Zähler enthält) von den Eingangssignalen abzuziehen,
die ihm vom A-Register 240 (welches den Nenner enthält) über den Multiplexer 246 zugeführt werden. Gleichzeitig
befähigt dieser Code das Laden des F-Verriegelungsschaltungs-Registers
264 mit seinem eigenen um 1 nach vorn verschobenen Eingang. Das Teilerbit setzt eine Torschaltung (nicht dargestellt)
, um das Steuerbit auf der Leitung 262a zum Multiplexer 260 derart abzufangen, dass das bit dann, wenn das
Ergebnis der Subtraktion Null oder positiv ist, auf 1 gesetzt wird, wodurch das Ausgangssignal der ALU-Einheit 238 zu einer
Aufwärtsverschiebung um 1 bit veranlasst wird, welches durch den Multiplexer 260 zu dem F-Register-Eingang gelangt. Wenn
die Subtraktion dagegen zu einer negativen Zahl führt, was anzeigt, dass der Nenner nicht im Zähler enthalten ist, dann
besteht die Wirkung des Befehls darin, den Inhalt des F-Registers 264 um 1 bit nach oben zu verschieben. In der Zwischenzeit
sind die B-Register-Steuerleitungen gesetzt worden, um
dessen Inhalt um 1 bit nach oben zu verschieben und bei gesetztem Teilerbit wird das Komplement des ALU-Ausgangsvorzeichenbits
an die bit-Stelle 16 des B-Registers 242 geschoben. Somit wird bei der Ausführung des Befehls zweimal der jeweilige
Rest in das F-Register geladen und das jeweilige bit des
- 42 -
909816/0591
29.Dezember 1977 - 42 -
Quotienten wird in Richtung auf das Ende höherer Ordnung des Registers 242 vorgeschoben. Der Befehl muss wiederholt werden,
um die gewünschte Anzahl von Quotienten-bits in dem B-Register 242 zu erzeugen.
Das bit 16 des Befehls der Rechenklasse wird verwendet, um in analoger Weise Schritt für Schritt eine Multiplikation durchzuführen.
Der Befehlscode für die schrittweise Multiplikation (d.h. Addieren und nach unten Verschieben) ist 16512273004.
Diese Operation ist dem Rechnerfachmann bekannt und wird daher hier nicht näher beschrieben.
Das Verfahren der sogenannten Pipeline-Verarbeitung (Pipelineprocessing)
, welches mit dem erfindungsgemässen Rechner durchgeführt werden kann, wird aus dem nachfolgenden Beispiel verständlich,
bei dem verschiedene Funktionsmoduln verwendet werden, um eine Folge von arithmetischen Additionen durchzuführen.
Die Summanden werden der Reihe nach aus den Hilfsspeichern 74 und 76 erhalten und die Folge von Summen wird
in den grösseren Speicher 78 eingeschrieben. Während des gesamten Rechenvorganges werden die HilfsSpeicher 74 und 76 auf
den Sammelleitungen 16a bzw. 16b als Datenursprungsadressen
bezeichnet. Der grössere Speicher 78 ist auf der Sammelleitung 16c als Zieladresse angegeben. Die Eingangsregister 140,142
des Rechenmoduls 100 sind als Zieladressen für die Daten auf den Sammelleitungen 16a bzw. 16b angegeben und der Ausgang
der ALU-Einheit 238 ist als Ursprungsadresse auf der Sammelleitung 16c angegeben.
- 43 -
909816/0591
k - 163
29.Dezember 1977 - 43 -
Der erste Befehl nach dem Aktivieren der Speicheradressen und des Rechenbefehlsregisters veranlasst, dass während des ersten
Maschinenzyklus des Rechenvorgangs die ersten beiden Summanden aus den Hilfsspeichern 74 bzw. 76 abgerufen werden. Am
Ende dieses ersten Zyklus werden diesen ersten Summanden entsprechende Eingangswerte in dem Rechenmodul 100 eingespeichert.
Da vom Rechenmodul am Ende des ersten Maschinenzyklus vom Rechenmodul kein "gültiges" Ergebnis erhältlich ist, wird die
Freigabeleitung 24c für die Sammelleitung 16c während des ersten Zyklus auf dem Zustand "falsch" gehalten, um zu verhindern,
dass Daten in den grösseren Speicher 78 eingeschrieben werden. Während des zweiten Befehlszyklus errechnet der Rechenmodul
die Summe der beiden ersten Summanden (die nunmehr in die Register 140 und 142 eingespeichert sind); die Freigabeleitung
24c wird im Zustand "wahr" gehalten, um die Übertragung dieser
Summe zum Eingang des grösseren Speichers 78 am Beginn des nächsten (dritten) Maschinenzyklus zu ermöglichen. Ausserdem
wird das zweite Paar von Summanden aus den Hilfsspeichern und 76 abgerufen und für die Sammelleitungen 16a, 16b zugänglich
gemacht. (Das schrittweise Abrufen bzw. "Holen" aus den Hilfsspeichern 74 und 76 und das schrittweise Einschreiben
in den grösseren Speicher 78 wird dadurch erreicht, dass man mit dem oben erläuterten automatischen schrittweisen Fortschalten
für die Speicher 74,76 und 78 arbeitet). Auf diese Weise wird am Ende des ersten Befehlszyklus die erste Summe
in den grösseren Speicher 78 übergeben und das zweite Paar von Summanden in die Eingangsregister 240,242 des Rechenmoduls
100 eingespeichert. Am Ende jedes weiteren Befehlszyklus erscheint die Summe der Summanden, die im Verlauf des vorangegangenen
Zyklus übertragen wurden, am Ausgang des Rechen-
- 44 -
909816/0591
29.Dezember 1977 - 44 -
moduls und wird über die Sammelleitung 16c zum grösseren
Speicher 78 übertragen, während ein Paar von neuen Summanden aus den Hilfsspeichern 74 und 76 in den Rechenmodul eingespeichert
wird. Beim letzten Befehlszyklus werden keine Summanden benötigt, so dass die Sammelleitungsfreigabeleitungen
24a und 24b im Zustand "falsch" bzw. in gesperrtem Zustand gehalten werden, während die letzte Summe in den grösseren
Speicher 78 eingeschrieben wird. Bei einer Folge von Additionen, die in der beschriebenen Weise durchgeführt wird, ist es
nach dem Einstellen der Systemkonfiguration lediglich erforderlich,N+1
Befehlszyklen auszuführen, obwohl bei jeder einzelnen Addition zwei Befehlszyklen erforderlich sind (nämlich das
Abrufen aus den Hilfsspeichern und die anschliessende Addition und Datenspeicherung). Die Zeitersparnis, welche sich
dem Faktor 2 annähert, wird durch die "Pipeline"-Anordnung von Rechenmodul-Eingangsregistern und Speicher(78-Eingangsregistern
erreicht. Bei anderen Rechenvorgängen können mehrere Funktionsmoduln mit den drei Sammelleitungen verbunden werden,
um von den vier Grundrechenoperationen, beispielsweise den Operationen:"Lies den Operanden", "Rechne", "Rechne", und
"Speichere das Ergebnis", während sich wiederholender Rechenschritte soviele wie möglich in einem einzigen Befehlszyklus
zu komprimieren.
Wie oben erwähnt, besitzt beim betrachteten Ausführungsbeispiel jede Sammelleitung die Möglichkeiten für die Verbindung
mit bis zu 16 Datenquellen und 16 Datenzielen. Die Quelle(n) und das Ziel (die Ziele) der Daten sind nicht starr strukturiert.
Es kann also ein einziger Funktionsmodul auf ein oder mehrere Ursprungs- und/oder Ziel-Adressen ansprechen. Typisch
- 45 -
909816/0591
A 42 7O3 b **-.^ΛΑΛ
29.Dezember 1977 - 45 -
hierfür ist der Rechenmodul 1OO , der zwei Zieladressen, jedoch nur eine Ursprungsadresse hat. In ähnlicher Weise sind die
Funktionsraoduln nicht starr strukturiert und können irgendeine von einer Vielzahl von verschiedenen Einheiten sein, welche
für die Durchführung der elementaren Operationen geeignet ist.
Wie beim Ausführungsbeispiel gezeigt, können die Funktionsmoduln Vielzweckspeicher, Schieberegister, arithmetische
Elemente oder Spezialschaltungen sein, wie z.B. die Autokorrelationsschaltung
oder der 16-bitx16-bit-Multiplizierer 110. In den Fällen, in denen der Funktionsmodul mehr als einen
Maschinenzyklus benötigt, um seine Operation zu beenden, wie dies beim Multiplizierer 11O der Fall ist, kann dieser Modul
den Haupttakt zeitweilig stoppen, um seine Funktion vor dem Auftreten des nächsten positiven Taktimpulses bzw. der Vorderflanke
desselben zu beenden.
Der vorstehend beschriebene Rechner ist somit bezüglich seiner programmierten Konfiguration im wesentlichen vollständig
flexibel, was bedeutet, dass hinsichtlich der Richtung und der Wege für den Datenfluss keine Beschränkungen bestehen mit
der Ausnahme, dass die Fähigkeit der einzelnen Moduln, Daten auf die verschiedenen Sammelleitungen auszusenden oder von
diesen zu empfangen, dadurch vorgegeben ist, dass sie als Ursprungsadresse bzw. als Zieladresse genannt sind. Der erfindungsgemässe
Rechner bietet somit ein maximales Mass an Flexibilität für eine Pipeline-Verarbeitung, bei dem die Information
programmgesteuert von einem Modul zum nächsten weitergeleitet wird, so dass sich beträchtliche Zeiteinsparungen
erreichen lassen.
- 46 -
809816/0591
29.Dezember 1977 - 4 6 -
Zusätzlich zu der Flexibilität bei der Schaffung vieler Datenflusskanäle
zwischen den Moduln bietet die Erfindung insofern zusätzliche Flexibilität, dass nach der Errichtung der Datenflusskanäle
diese nicht alle in jedem Augenblick oder während jedes einzelnen Befehlsschrittes benutzt werden müssen.
Folglich ist der zugeordnete Datenkanal längs einer bestimmten Sammelleitung nicht freigegeben, solange das Signal auf
der betreffenden Sammelleitungsfreigabeleitung 24 nicht "wahr" ist.
Es versteht sich, dass dem Fachmann, ausgehend von dem vorstehend beschriebenen Ausführungsbeispiel, zahlreiche Möglichkeiten
für Änderungen und/oder Ergänzungen zu Gebote stehen, ohne dass er dabei den Grundgedanken der Erfindung verlassen
müsste. Beispielsweise können mehr als drei Datensammelleitungen eingesetzt werden, ferner kann die Länge des Befehlswortes
und die bit-Zuordnung geändert werden, um den Rechner an bestimmte Anwendungszwecke optimal anzupassen. Ausserdem können
mehr oder weniger oder verschiedene Funktionsmoduln je nach Verwendungszweck vorgesehen werden, und es können verschiedene
Befehle oder Befehlssätze verwendet werden. Weiterhin kann auch der spezielle Aufbau des Steuerteils 12 geändert werden,
um eine Anpassung an die geänderten Befehlssätze zu erreichen.
909816/0691
Leerseite
Claims (4)
- OR.-ING. OIPL.-ING. M. SC. ÜlP'l.-Ch'S. DR. CyIi-I KHYS.HÖGER - STELLRECHT - GPIF3SQAOH - HAECKERPATENTANWÄLTE IN STUTTGARTA 42 703 b Anmelders Dialog Systems, Inc.k " 163 32 Locust Street29.Dezember 1977 Belmont, Mass. USAPatentansprüche :Rechenvorrichtung, gekennzeichnet durch folgende Merkmale:(a) Es sind mehrere elementare Funktionsmoduln vorgesehen;(b) es sind mindestens drei Sammelleitungen vorgesehen, von denen jede mehrere Einzelleitungen aufweist, wobei die Einzelleitungen organisationsmässig zumindest in drei Gruppen unterteilt sind, nämlicheine Gruppe von Ursprungsadressenleitungen, eine Gruppe von Zieladressenleitungen und eine Gruppe von Datenleitungen;(c) jeder der Funktionsmoduln ist mit mindestens einer der Sammelleitungen verbunden und mindestens einer der Funktionsmodüln ist mit mindestens drei Sammelleitungen verbunden und(d) es sind Steuereinrichtungen vorgesehen, die mit jeder der drei Sammelleitungen zur Steuerung der Arbeitsweise der Rechenvorrichtung verbunden sind und mit deren Hilfe Ursprungs- und Zieladressensignale an die Ursprungsadressen- bzw. Zieladressenleitungen der Sammelleitungen anlegbar sind,909816/059129.Dezember 1977 - 2 -um die Funktionsmoduln gemäss einer ausgewählten, programmgesteuerten Konfiguration zu verbinden.
- 2. Rechenvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass jede Sammelleitung ausserdem eine Sammelleitungsfreigabeleitung zur Steuerung der Arbeitsweise der zugeordneten Sammelleitung aufweist und dass jede Sammelleitungsfreigabeleitung mit den Steuereinrichtungen verbunden und durch diese gesteuert ist.
- 3. Rechenvorrichtung zur Durchführung mehrerer elementarer Maschinenoperationen im Verlauf eines einzigen Maschinenbefehlszyklus, gekennzeichnet durch folgende Merkmale:(a) Es sind mehrere elementare Funktionsmoduln vorgesehen;(b) es sind mindestens drei Sammelleitungen vorgesehen, von denen jede mehrere Einzelleitungen aufweist, wobei die Einzelleitungen organisationsmässig zumindest in drei Gruppen unterteilt sind, nämlicheine Gruppe von Ursprungsadressenleitungen, eine Gruppe von Zieladressenleitungen und eine Gruppe von Datenleitungen;(c) jeder der Funktionsmoduln ist mit mindestens einer der Sammelleitungen verbunden und mindestens einer der Funktionsmoduln ist mit mindestens drei Sammelleitungen verbunden und909616/069129.Dezember 1977 - 3 -(d) es sind Steuereinrichtungen vorgesehen, die mit jeder der Sammelleitungen zur Steuerung der Arbeitsweise der Rechenvorrichtung verbunden sind und mit deren Hilfe eine solche Konfiguration der Rechenvorrichtung herbeiführbar ist, dass diese innerhalb eines Maschinenbefehlszyklus mindestens vier elementare Maschinenoperationen ausführen kann.
- 4. Rechenvorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass jede Sammelleitung ausserdem eine Sammelleitungsfreigabeleitung zur Steuerung der Arbeitsweise der zugeordneten Sammelleitungen aufweist und dass jede Sammelleitungsfreigabeleitung mit den Steuereinrichtungen verbunden und durch diese gesteuert ist.5. Rechenvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass drei Sammelleitungen vorgesehen sind, dass zu den Funktionsmoduln mindestens drei Speicher und ein Rechenmodul gehören und dass die Steuereinrichtungen die Arbeitsweise der Rechenvorrichtung derart steuern, dass diese im Verlauf eines Maschinenbefehlszyklus höchstens vier elementare Maschinenoperationen durchführen kann.6. Rechenvorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass mindestens zwei der Speicher automatisch schrittweise fortschaltbare Speicher sind.909816/059129.Dezember 1977 - 4 -7. Rechenvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass jeder Funktionsmodul ein Eingangsspeicherregister zur Einspeicherung der Daten von einer Sammelleitung und Ausgangseinrichtungen aufweist, über die Daten für eine Sammelleitung zur Verfügung stellbar sind.8. Rechenvorrichtung nach Anspruch 4, gekennzeichnet durch Steuereinrichtungen mit folgenden Merkmalen:(a) Es ist ein Haupttaktgeber zur Erzeugung eines Taktsignals zur Markierung zumindest des Anfangs jedes Maschinenbefehlszyklus vorgesehen;(b) es ist eine Programmsteuereinheit vorgesehen, mit deren Hilfe in Abhängigkeit von dem Taktsignal nacheinander Befehle für die Rechenvorrichtung gemäss einem gespeicherten Programm abrufbar sind;(c) es sind Einrichtungen vorgesehen, mit deren Hilfe in Abhängigkeit von der Funktion der Programmsteuereinheit Ursprungsadressen und Zieladressen für die Sammelleitungen erzeugbar sind und(d) es sind Freigabeeinrichtungen vorgesehen, mit deren Hilfe in Abhängigkeit von der Funktion der Programmsteuereinheit die Sammelleitungsfreigabeleitungen mit einem Freigabesignal beaufschlagbar sind.909816/0591k - 16329.Dezember 1977 - 5 -9. Rechenvorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass das Taktsignal diejenigen Zeitintervalle bestimmt, in denen die auf den Sammelleitungen verfügbare Information "gültig" ist.10. Rechenvorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Funktionsmoduln mindestens einen Rechenmodul und drei automatisch schrittweise fortschaltbare Speicher aufweisen und dass Einrichtungen vorgesehen sind, welche im Verlauf eines einzigen Befehlszyklus derart betätigbar sind, dass sie gleichzeitig Daten aus zweien der Speicher in den Rechenmodul laden, dass sie ein Rechenergebnis für die in den Rechenmodul eingegebenen Daten erzeugen und dass sie das Rechenergebnis in einem dritten Speicher speichern.11. Rechenvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass einer der Funktionsmoduln ein Rechenmodul ist, welcher ein erstes Eingangsregister aufweist, das mit einer ersten Sammelleitung verbunden ist, welche ein zweites Eingangsregister aufweist, das mit einer zweiten Sammelleitung verbunden ist und welcher einen ersten mehrere Eingänge aufweisenden Multiplexer aufweist, der einen Eingang besitzt, der mit dem Ausgang des ersten Registers verbunden ist und der einen Ausgang besitzt, der mit einer Rechen- und -Logik-Einheit verbunden ist, dass ein zweiter mehrere Eingänge aufweisender Multiplexer vorgesehen ist, welcher einen Eingang aufweist, der mit dem Ausgang des zweiten Eingangs-909816/059129.Dezember 1977 - 6 -registers verbunden ist und der einen Ausgang aufweist, der mit der Rechen-und-Logik-Einheit verbunden ist, dass der Rechenmodul mit einer dritten Sammelleitung verbunden ist und dass die Rechen-und-Logik-Einheit einen Ausgang aufweist, dessen Ausgangssignale auf der dritten Sammelleitung zur Verfugung stellbar sind, dass der Ausgang der Rechen-und-Logik-Einheit einen Eingang für einen dritten mehrere Eingänge aufweisenden Multiplexer darstellt, dessen Ausgang mit einem Verriegelungs-Speicher-Register verbunden ist, dessen Ausgangssignale einem Eingang des ersten und/oder zweiten Multiplexers zuführbar sind.12. . Rechenvorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass die Rechen-und-Logik-Einheit Einrichtungen aufweist, mit deren Hilfe sowohl Rechenfunktionen als auch binäre Logikfunktionen ausführbar sind, wobei die Ausgangssignale des ersten und zweiten Multiplexers die Eingangsdaten der Rechen-und-Logik-Einheit bilden.13. Rechenvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Steuereinrichtungen Einrichtungen für eine n-malige Ausführung eines ausgewählten Befehls aufweisen, wobei η eine vorgegebene ganze Zahl ist.14. Rechenvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Steuereinrichtungen Einrichtungen aufweisen, mit deren Hilfe einem Wirtsrechner der Zugriff zu mehreren Datenspeicherregistern ermöglicht werden kann und dass die Steuereinrichtyngen und der Wirts-909816/0691k - 16329.Dezember 1977 - 7 -rechner beide mit mindestens einem der Datenspeicherregister verbindbar sind, um in dieses Daten einzuschreiben und Daten aus diesem auszulesen.15. Rechenvorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass der Haupttaktgeber Einrichtungen aufweist, die in Abhängigkeit von einem vorgegebenen Zustand eines Taktfreigabeausgangs mindestens eines Funktionsmoduls die Erzeugung des Taktsignals verhindern.16. Rechenvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass mindestens ein Haupttaktgeber zur Erzeugung eines sich wiederholenden Taktsignals zur Markierung zumindest des Beginns jedes Maschinenbefehlszyklus vorgesehen sind und dass der Haupttaktgeber auf ein Taktsteuersignal von mindestens einem der Funktionsmoduln anspricht, um die Erzeugung des Taktsignals zu verhindern17. Rechenvorrichtung zur Ausführung mehrerer elementarer Maschinenfunktionen während eines einzigen Maschinenbefehlszyklus zur Sprachanalyse und Spracherkennung, gekennzeichnet durch folgende Merkmale:(a) Es sind mehrere elementare Funktionsmoduln vorgesehen;(b) es sind drei Sammelleitungen vorgesehen, von denen jede mehrere Einzelleitungen aufweist, wobei die Einzelleitungen zu Gruppen organisiert sind, nämlich809816/051129.Dezember 1977 - 8 -zu einer Gruppe von Ursprungsadressenleitungen, zu einer Gruppe von Zieladressenleitungen, zu einer Gruppe von datentragenden Leitungen und zu einer Gruppe mit mindestens einei/Sammelleitungsfreigabeleitung;(c) jeder der Funktionsmoduln ist mit mindestens einer der Sammelleitungen verbunden und mindestens einer der Funktionsmoduln ist mit mindestens drei der Sammelleitungen verbunden;(d) jeder Funktionsmodul weist ein Eingangsspeicherregister zur Einspeicherung von Daten von einer Sammelleitung und Ausgangseinrichtungen auf, über die Daten auf einer Sammelleitung zur Verfügung stellbar sind;(e) es sind Steuereinrichtungen vorgesehen, die mit jeder der Sammelleitungen zur Steuerung der Arbeitsweise der Rechenvorrichtung verbunden sind und die die Fähigkeit haben, der Rechenvorrichtung eine Konfiguration für die Durchführung mehrerer elementarer Operationen innerhalb eines Maschinenbefehlszyklus zu erteilen;(f) die Steuereinrichtungen weisen folgende Merkmale auf:1. Es ist ein Haupttaktgeber vorgesehen, mit dessen Hilfe ein Taktsignal zur Markierung909816/0591A 42 703 bk - 16329.Dezember 1977 -9-des Beginns jedes Maschinenzyklus erzeugbar ist;2. es ist eine Progranunsteuereinheit vorgesehen, mit deren Hilfe in Abhängigkeit von dem Taktsignal Befehle nacheinander aus einem Programmspeicher abrufbar sind;3. es sind Einrichtungen vorgesehen, mit deren Hilfe in Abhängigkeit von der Programmsteuereinheit Ursprungs- und Zieladressensignalean die Sammelleitungen anlegbar sind und4. es sind Einrichtungen vorgesehen, mit deren Hilfe in Abhängigkeit von der Programmsteuereinheit selektiv ein Freigabesignal an die Sammelleitungsfreigabeleitungen anlegbar ist.- 10 -909816/0501
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/841,390 US4228498A (en) | 1977-10-12 | 1977-10-12 | Multibus processor for increasing execution speed using a pipeline effect |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2758830A1 true DE2758830A1 (de) | 1979-04-19 |
Family
ID=25284752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772758830 Withdrawn DE2758830A1 (de) | 1977-10-12 | 1977-12-30 | Rechenvorrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US4228498A (de) |
JP (1) | JPS5490946A (de) |
CA (1) | CA1119731A (de) |
DE (1) | DE2758830A1 (de) |
GB (1) | GB1576000A (de) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521858A (en) * | 1980-05-20 | 1985-06-04 | Technology Marketing, Inc. | Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu |
US4422143A (en) * | 1980-11-24 | 1983-12-20 | Texas Instruments Incorporated | Microprocessor ALU with absolute value function |
US4646236A (en) * | 1981-04-17 | 1987-02-24 | International Business Machines Corp. | Pipelined control apparatus with multi-process address storage |
JPS57196357A (en) * | 1981-05-29 | 1982-12-02 | Toshiba Corp | Data processor |
US4489435A (en) * | 1981-10-05 | 1984-12-18 | Exxon Corporation | Method and apparatus for continuous word string recognition |
US4481593A (en) * | 1981-10-05 | 1984-11-06 | Exxon Corporation | Continuous speech recognition |
US4489434A (en) * | 1981-10-05 | 1984-12-18 | Exxon Corporation | Speech recognition method and apparatus |
US5854907A (en) * | 1982-02-22 | 1998-12-29 | Texas Instruments Incorporated | Microcomputer for digital signal processing having on-chip memory and external memory access |
US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
US4654786A (en) * | 1984-04-11 | 1987-03-31 | Texas Instruments Incorporated | Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle |
US4631662A (en) * | 1984-07-05 | 1986-12-23 | The United States Of America As Represented By The Secretary Of The Navy | Scanning alarm electronic processor |
NL8500571A (nl) * | 1985-03-01 | 1986-10-01 | Hollandse Signaalapparaten Bv | Locaal data-communicatienetwerk volgens het multiple-bus-systeem. |
US5199106A (en) * | 1986-09-19 | 1993-03-30 | International Business Machines Corporation | Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus |
JPS63170736A (ja) * | 1987-01-09 | 1988-07-14 | Toshiba Corp | マイクロプロセツサ |
US4805228A (en) * | 1987-05-04 | 1989-02-14 | The Johns Hopkins University | Cellular logic processor |
US5138703A (en) * | 1988-03-31 | 1992-08-11 | Kabushiki Kaisha Toshiba | Method of and apparatus for expanding system bus |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
US5253349A (en) * | 1991-01-30 | 1993-10-12 | International Business Machines Corporation | Decreasing processing time for type 1 dyadic instructions |
EP0586057B1 (de) | 1992-08-31 | 2000-03-01 | Sun Microsystems, Inc. | Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten |
US6526518B1 (en) * | 1997-05-22 | 2003-02-25 | Creative Technology, Ltd. | Programmable bus |
EP1113626B1 (de) * | 1999-12-30 | 2009-04-22 | Sony Deutschland GmbH | Schnittstellenverbindungsschicht- Einrichtung zum Aufbau eines verteilten Netzwerks |
US7013398B2 (en) * | 2001-11-15 | 2006-03-14 | Nokia Corporation | Data processor architecture employing segregated data, program and control buses |
EP1500994A1 (de) * | 2003-07-22 | 2005-01-26 | Siemens Aktiengesellschaft | Kopplungsvorrichtung für drei Bussysteme |
US8484441B2 (en) * | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths |
US9047094B2 (en) | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
US7949856B2 (en) * | 2004-03-31 | 2011-05-24 | Icera Inc. | Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit |
US8230252B2 (en) * | 2004-07-20 | 2012-07-24 | Hewlett-Packard Development Company, L.P. | Time of day response |
CN113377441B (zh) * | 2021-06-16 | 2023-07-11 | 南方科技大学 | 用于量子物理实验平台的通用时序控制器架构 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3793631A (en) * | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3462742A (en) * | 1966-12-21 | 1969-08-19 | Rca Corp | Computer system adapted to be constructed of large integrated circuit arrays |
US4060848A (en) * | 1970-12-28 | 1977-11-29 | Gilbert Peter Hyatt | Electronic calculator system having audio messages for operator interaction |
US3938098A (en) * | 1973-12-26 | 1976-02-10 | Xerox Corporation | Input/output connection arrangement for microprogrammable computer |
-
1977
- 1977-10-12 US US05/841,390 patent/US4228498A/en not_active Expired - Lifetime
- 1977-12-30 DE DE19772758830 patent/DE2758830A1/de not_active Withdrawn
-
1978
- 1978-05-30 GB GB23910/78A patent/GB1576000A/en not_active Expired
- 1978-10-11 CA CA000313111A patent/CA1119731A/en not_active Expired
- 1978-10-12 JP JP12469178A patent/JPS5490946A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3793631A (en) * | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
Non-Patent Citations (1)
Title |
---|
US-IBM Technical Disclosure Bullentin, Vol. 13, No. 9, Febr. 1971, S. 2777-2778 * |
Also Published As
Publication number | Publication date |
---|---|
US4228498A (en) | 1980-10-14 |
GB1576000A (en) | 1980-10-01 |
CA1119731A (en) | 1982-03-09 |
JPS5490946A (en) | 1979-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2758830A1 (de) | Rechenvorrichtung | |
DE3210816C2 (de) | ||
DE2724125C2 (de) | ||
DE2457612C3 (de) | Mikroprogrammier-Steuereinrichtung | |
DE2714805C2 (de) | ||
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE2934971A1 (de) | Datenverarbeitungssystem | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE3116100A1 (de) | Sprungabschaetz-zentraleinheit | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE2234867A1 (de) | Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme | |
DE1915818B2 (de) | Steuerschaltung für ein elektronisches Datenverarbeitungssystem | |
DE1424732A1 (de) | Elektronische Ziffernrechenmaschine | |
DE1499206B2 (de) | Rechenanlage | |
DE3507584C2 (de) | ||
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2310553A1 (de) | Vorrichtung zur durchfuehrung arithmetischer und logischer operationen | |
DE1180171B (de) | Zahlenrechner | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP0272723B1 (de) | Verfahren zur Bestimmung des zeitlichen Verlaufs eines Sprachparameters und Anordnung zur Durchführung des Verfahrens | |
DE3853137T2 (de) | Abfragevorrichtung. | |
DE2644180C3 (de) | Datenverarbeitungssystem | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |