[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE2758830A1 - Rechenvorrichtung - Google Patents

Rechenvorrichtung

Info

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
Application number
DE19772758830
Other languages
English (en)
Inventor
Nichtnennung Beantragt
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.)
Dialog Systems Inc
Original Assignee
Dialog Systems Inc
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 Dialog Systems Inc filed Critical Dialog Systems Inc
Publication of DE2758830A1 publication Critical patent/DE2758830A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction 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.
- 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.
Arbeitsweise des Systems
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
Befehle der Sammelleitungsklasse
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 -
Befehle der Datenklasse
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.
Befehle der Abzweigklasse (Sprungbefehle)
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.
Befehle der Rechenklasse
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
A 42 7O3 b O'TEooon
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.
Arbeitsweise, allgemein
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)

  1. OR.-ING. OIPL.-ING. M. SC. ÜlP'l.-Ch'S. DR. CyIi-I KHYS.
    HÖGER - STELLRECHT - GPIF3SQAOH - HAECKER
    PATENTANWÄLTE IN STUTTGART
    A 42 703 b Anmelders Dialog Systems, Inc.
    k " 163 32 Locust Street
    29.Dezember 1977 Belmont, Mass. USA
    Patentansprü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ämlich
    eine 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/0591
    29.Dezember 1977 - 2 -
    um die Funktionsmoduln gemäss einer ausgewählten, programmgesteuerten Konfiguration zu verbinden.
  2. 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. 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ämlich
    eine 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 und
    909616/0691
    29.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. 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/0591
    29.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/0591
    k - 163
    29.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/0591
    29.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/0691
    k - 163
    29.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 verhindern
    17. 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ämlich
    809816/0511
    29.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 Markierung
    909816/0591
    A 42 703 b
    k - 163
    29.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 Zieladressensignale
    an die Sammelleitungen anlegbar sind und
    4. es sind Einrichtungen vorgesehen, mit deren Hilfe in Abhängigkeit von der Programmsteuereinheit selektiv ein Freigabesignal an die Sammelleitungsfreigabeleitungen anlegbar ist.
    - 10 -
    909816/0501
DE19772758830 1977-10-12 1977-12-30 Rechenvorrichtung Withdrawn DE2758830A1 (de)

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)

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

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

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

Patent Citations (1)

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

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