DE2230102C2 - Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung - Google Patents

Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung

Info

Publication number
DE2230102C2
DE2230102C2 DE2230102A DE2230102A DE2230102C2 DE 2230102 C2 DE2230102 C2 DE 2230102C2 DE 2230102 A DE2230102 A DE 2230102A DE 2230102 A DE2230102 A DE 2230102A DE 2230102 C2 DE2230102 C2 DE 2230102C2
Authority
DE
Germany
Prior art keywords
bits
register
microinstruction
bit
width
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.)
Expired
Application number
DE2230102A
Other languages
English (en)
Other versions
DE2230102A1 (de
Inventor
Roger Erwin Santa Barbara Calif. Packard
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.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2230102A1 publication Critical patent/DE2230102A1/de
Application granted granted Critical
Publication of DE2230102C2 publication Critical patent/DE2230102C2/de
Expired 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

ten logischen Schaltung (60) der Inhalt eines die An- 25 bits möglich ist, mit höheren Geschwindigkeiten betrie-
zahl der Bits eines zweiten Operanden speichernden bcn werden. Sie bieten jedoch beim Programmieren
Zwischenspeichers (26) mit der Maximalzahl der im Schwierigkeiten, wsnn Datenbehandlungen erforder-
Prozessor gleichzeitig bearbeitbaren Bits verglichen lieh sind, die eine geringere oder größere Anzahl von
und die Vergleichsergebnisse der ersten logischen Bits betreffen als diejenige Breite, auf die der Rechner
Schaltung (46) und der zweiten logischen Schallung jo eingestellt ist. Wenn Operanden die normale Breite des
3r>
(60) in eine: dritten logischen Schaltung (64) miteinander verglichen werden.
3. Mikroprogrammierter Prozessor nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß an den Ausgang des Steuerregisters (22) sowie an den Eingang eines Bit-Adressen-Registers (7V\-Rcgisler 24) ein Addierer (37) angeschlossen ist. welcher den kleineren Vergleichswcrt zum Inhalt des Bit-Adressen-Registers fFA-Register 24) addiert und das Ergebnis in dieses speichert.
4. Mikroprogrammierter Prozessor nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß ein als Abschnitt des Steuerregisters (22) ausgebildetes, aus einem Bit bestehendes Übertragsspeicherregister (CYF in 22) über eine Über- 4r> traglogik (84) an einen Übertragsausgang (CYD. CYL) der arithmetisch-logischen Einheit (12) zum zeitweisen Speichern eines Übertrags angeschlossen ist.
Die Erfindung bezieht sich auf einen mikroprograinmierten Prozessor, in welchem eine arithmetisch-logische Einheit mit veränderlicher Vcrarbeitungsbrcite und ein frei adressierbarer Speicher für Operanden sowie eine Register enthaltende Steuereinrichtung über Datenübertragungsleitungen miteinander verbunden sind, über welche eine vorgegebene Anzahl von Bits parallel übertragen werden kann.
Elektronische Digitalrechner enthalten eine arithmetisch-logische Einheit, sowie Register und innere Leitungswegc, einen Speichcrlcitungsweg sowie eine Spcichcradresseneinrichtung, die eine Übertragung digitaler Information fester Breite ermöglichen. Dabei bedeutet Rechners überschreiten, sind Befehle von doppelter Genauigkeit vorgesehen. MASKIER-BeiMe können erforderlich werden, um mit einer geringeren Breite bei bestimmten Operationen zu arbeiten. Der Programmierer hat also bei dem Entwurf der Software vieles zu berücksichtigen, wenn er Informationen von anderer als der normalen Rechnerbreite zu behandeln wünscht.
Aus der l.itcralurstellc »Siemes:. — Halske AG, Datenvcrarbeitungsanlagc 3003, Befchlslistc NV Bs 107/1 Mai 1963. Seite 3« ist es bekannt, ein Befehlswort in einen allgemeinen Teil, eine Subsiitutionsslcllc. eine Untcrbrcchungsstcllc und einen die auszuführende Operation kennzeichnenden Operationsteil zu unterteilen. Beim allgemeinen Teil kann es sich dabei in Abhängigkeil vom Operationsteil um eine 16-stellige Zeichenadresse, um eine 14-stclligc Festwortadresse, um eine Endemodusadresse und/oder um eine Verschiebezahl bei logischen und arithmetischen Verschiebebefehlen handeln. Die Endcmodusadrcsc gibt dabei die Anzahl der zu übertragenden Informationseinheiten und die Art der Endebcslimmungcn an, d.h. in welcher Weise eine Datenübertragung beendet werden soll. Mit dieser bekannten Anordnung ist es daher auch möglich, Daten-
v> fclder unterschiedlicher Größe zu übertragen und zu bearbeiten.
Aufgabe der vorliegenden Erfindung ist es, bei einem auf konstante Übcrtragungsb-citc ausgelegten Prozessor mit bitpiiralleler Datenübertragung eine Übertra-
W) gung von Daten innerhalb bestimmter Grenzen in beliebig wählbarer Breite zu ermöglichen.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß der Inhalt eines Fcldliingenregisters fFL-Register 24). in welchem die Anzahl der Bits eines Operanden
h-> gespeichert ist, und eines Konstantcnrcgistcrs (48), in welchem «.lic Maximul/ahl der im Prozessor gleichzeitig bearbeilbaren Hits enthalten ist, in einer ersten logischen Schaltung (46) verglichen wird und der kleinere
K*
iss
der Vergleichswerte unier Steuerung eines in einem Mikrobefehlsregister (30) befindlichen Mikrobefehls in ein Steuerregister fCP-Register 22) zur Steuerung der Übertragungsbreite der Datenübertragungsleitungen übertragen wird.
Die erfindungsgemäße Lösung ermöglicht es, bei einem auf konstante Obertragungsbreite ausgelegten Prozessor mit bitparalleler Datenübertragung eine Übertragung vc^ Daten innerhalb bestimmter Grenzen in beliebig wählbarer Breite zu ermöglichen, wobei der Programmierer größtmögliche Flexibilität in der Verwendung von Operander, und Befehlen mit irgendeiner gewünschten Breite ohne Modifikation von Programmbefehlen zur Verfügung hat. Obgleich irgendeine Operandenlänge bis zur maximalen Speicherkapazität des Speichers von dem Inhalt des Adressenregisters bezeichnet werden kann, ist die Rechenwerk-Elektronik als eine Parallel-Maschine mit Registern und Datenübertragungsleitungen von fester Breite ausgelegt. Die Ausführung eines speziellen Programmbefehls geschieht unter Steuerung einer Fo'.gc vor. Mikrobefehlen, von denen der erste ein Vorgaberegister entv-eder auf die Maschinenbreite oder auf diejenige Operandenbreite setzt, die von dem Adressenregister angegeben wird, je nachdem, welcher Wert der kleinere ist. Der Befehl wird dann durch den Bestand an Mikrobefehlen in der Folge so ausgeführt, als hätte der Rechner diejenige Breite, die von dem Inhalt des Vorgaberegisters angegeben wird. Wenn die Operandenlänge größer atf die Maschinenbreite ist, wird die von dem Adressenregistcr bezeichnete Bitgrenze der Operandenlänge vergrößert oder verkleinert, um den von dem Vorgaberegistcr bezeichneten Betrag, und die Mikrobefehls-Folge wird so lange wiederholt, bis die von dem Vorgaberegister bezeichnete Breite auf Null reduziert ist, woraufhin das Rechenwerk die Befehlsfolge verläßt und den nächsten Programmbefehl holt.
Die Erfindung wird nachstehend an einem Ausführungsbeispiel unter Bezugnahme auf die Zeichnung beschrieben. Im einzelnen zeigt
F i g. 1 ein Blockdiagramm eines mit bitparallelcr Datenübertragung arbeitenden Rechenwerkes, F i g. 2 das Format eines Daten-Descriptors; Fig.3 eine Tabelle der Mikrobefehle zur Steuerung des Rechenwerkes;
Fig.4 und 5 verschiedene Bedingungen bestimmter Mikrobefehle aus F i g. 3; und
Fig.6 ein schematisches Blockdiagramm einer Auswahlschaltung 38 eines Teils der Rechenwerk-Schaltung gemäß F ig. 1.
Das Rechenwerk gemäß Fig. 1 arbeitet durch Ausführung von Mikrobefehlen, die eine Übertragung zwischen verschiedenen, noch zu beschreibenden Registern und einer Speichereinheit angeben. Die Speichereinheit weist einen Hauptspeicher 10 sowie eine Speicher-Nahtstelle 11 auf, die die Datenübertragung zwischen dem Hauptspeicher und einer Datenübertragungs-Sammelleitung steuert. Die Datenübertraguogs-Sammclleitung umfaßt 24 Parallel-Leitungen, die eine Parallelübertragung von bis zu 24 Bits zwischen dem Hauptspeicher 10 einer arithmetisch-logischen Einheil 12 und mehreren Registern ermöglicht. Diese Register umfassen ein X-Register 14 und ein V-Registcr 16, die eine Speichermöglichkeit für zwei auf die beiden Operanden-Eingänge der arithmetisch-logischen Einheit ^gegebenen Operanden darstellen. Weiterhin sind drei Operations-Register vorgesehen, ein /.-Register 18, ein T-Register 20 und ein CP-Register 22. Die Register L
und Tsind allgemeinen Zwecken dienende Register, die zusammen mit den Registern X und Y entweder als Quelle oder als Senke für alle Lese/Schreibe-Operationcn am Hauptspeicher 10 dienen. Das L-Register und das T-Register sind adressierbar als volle 24 Bitregister oder als sechs 4 Bitregister, bezeichnet durch die Buchstaben A bis F.
Das CP-Rcgisier 22 kann für die vorliegende Beschreibung als nur 8 Bits lang betrachtet werden und ist ίο nur an die 8 niedrigstwertigen Bitleitungen der Daten-Sammelleitung angeschlossen. Das CP-Register ist funktionell in dn·; Abschnitte gegliedert, die mit CPL von 5 Bits Länge, CPU von zwei Bits Länge und CYF von einem Bit Länge bezeichnet sind. Die funktioneile Kennzeichnung dieser drei Abschnitte wird weiter unten beschrieben.
Bei dem Hauptspeicher 10 handelt es sich um einen sogenannten »freiadressierbarcn«-Speicher. Die gesamte Adressierung geschieht durch ein Feld, in dem die den Beginn des Feldes markierende Bitgrenze und die Länge des Feldes von der Adresst bezeichnet sind. Während jedes Speicherzyklus werden maximal 24 Bits in den Speicher oder aus ihm heraus übertragen.
Das Rechenwerk umfaßt weiterhin einen Feldbtstimmungs-Absehnitt für das Speichern von Descriptoren, die in dem Hauptspeicher 10 Felder definieren. Der Feldbestimmungs-Abschnitt umfaßt ein F-Register 24, das ein 48 Bit Register ist. Das F-Register ist in zwei 24 Bitabschnitte FA und Fß unterteilt. Der Fß-Abschnitt hat seinerseits zwei weitere Abschnitte, nämlich einen FiAAbschnitt von 4 Bits und einen FL-Abschnitt von 20 Bits. Wie in F i g. 2 erläutert, enthält bei Anwesenheit eines Datendescriptors in dem F-Register 24 der FA-Abschnitt die Bitgrenzenadresse und der FL-Abschnitt speichert die Feldlänge eines Feldes in dem Speicher (bis zu 22" Bits an Länge). Der FL/-Abschnitt dient zur Bezeichnung der Einheitsgröße, z. B. des rein binären Codes (1 Biteinheit), des ßCD-Codes (4 Biteinheir) oder eines 8 Bit Codes.
Dem F-Register 24 ist ein Arbeitspuffer bzw. Zwischenspeicher 26 zugeordnet, der beispielsweise bis zu sechzehn 48 Bitwörter speichern kann. Die sechzehn Wortslcllen in dem Zwischenspeicher sind mit 0 bis 15 bezeichnet. Der Zwischenspeicher ist funktionell in zwei Abschnitte gegliedert, den Abschnitt A und B, jeder von einer Breite von 24 Bits. Die beiden Abschnitte des Zwischenspeichers wie auch die Abschnitte des F-Registers 24 sind einzeln adressierbar für Übertragungen über die Daten-Sammelleitung. Weiterhin können alle 48 Bits des F-Registers von irgendeiner der 16 Wortstellen in dem Zwischenspeicher geladen werden, können in irgendeiner Stelle in dem Zwischenspeicher gespeichelt oder 'ml irgendeiner Steile in dem Zwischenspeicher ausgetauscht werden.
Die Steuerung d^-> Rechenwerks geschieht durch Folgen von Mikrobefehlen, die in einem Mikrobefehls-Fol ge-Spcicher 28 gespeichert sind. Die Mikrobefehle in der Folge werden jeweils einzeln aus dem Mikrobefehls-Folge-Spciclier 28 in ein künftig M-Register bezeichnetes Mikrobefehls-Register 30 übertragen. Die Mikrobefehle haben eine Länge von 16 Bits, wobei die 16 Bits in dem M-Registcr auf eine Steuer-Sammelleitung gegeben werden, die zu der über das Rechenwerk verteilten und zu den verschiedenen Registern, der arithmctisch-logischtn Einheit 12, dem Zwischenspeicher 26 und der Speichernahtslelle 11 zugeordneten Stcuerlogik führt. Die Steuer-Sammelleitung weist 16 Leitungen für die Aufnahme von 16 parallelen Steu-
erbits auf. Der künftig M-Folge-Spcicher genannte Mikrobefehlsspeicher 28 wird durch ein /4-Rcgister 32 adressiert. Das /4-Register 32 enthält diejenige Anzahl von Bits, die zur Adressierung aller Zellen in dem M-Foige-Speicher 28 notwendig sind. Als Beispiel sind 20 Bits gezeigt. Normalerweise wird das ,4-Rcgisier 32 um einen Schritt bei jedem Taktimpuls weitergestellt, wodurch der nächste Mikrobefehl in der Folge von dem M-Folge-Speicher 28 in das Register 30 übertragen wird. Der gleiche Taktimpuls, der die Übertragung des neuen Mikrobefehls in das M-Rcgister 30 veranlaßt, bewirkt auch die Ausführung des laufenden Mikrobefehls in dem M-Register. Das /4-Register 32 kann auf irgendeine neue Adresse von der Daten-Sammelleitung her gesetzt werden, um eine Verzweigung in eine andere Mikrobfehl-Folge in dem M-Folge-Speicher 28 zu ermöglichen. Ein Stapel-Speicher 34 ist zweckmäßig vorgesehen, der als ein Rückstellstapel zum Speichern von Rückkehradressen arbeitet, u>Vi
sowie verschiedene logische Funktionen, wie etwa X UND Y. X ODER Y. X EXCLUSIV ODER Y, etc., von denen jede als Qiicllcnrcgister in dem REGISTER MO-V£-Mikrobcfchl durch die Codierung der sechs die Quelle bezeichnenden Bits angegeben sein kann.
Der nächste Befehl in der Liste der Fig.3 ist SCRATCY/P^D-MOVE-Mikrobcfehl. Dieser Mikrobefehl steuert Übertragungen zwischen irgendeinem Register, das von den Bits 6 bis Il angegeben ist. und
in irgendeiner der sechzehn Wortadressen in dem Zwischenspeicher der durch die Bits 0 bis 3 bezeichnet ist. Wenn über die Daten-Sammelleitung nur maximal 24 Bits übertragen weiden können, bezeichnet das Bit 4 des SCRATCHPAD MOKf-Mikrobefehls, ob der Abschnitt A oder der Abschnitt B des Zwischenspeichers an der Übertragung beteiligt ist. Das Bit des SCRATCHPAD MOVf-Mikrobcfehls gibt an. ob das bezeichnete Register der Ausgang (Quelle) oder der
bestimmten Mikrobefehlsfolgc nach dem Aufruf eines Unterprogramms von Mikrobefehlen zu ermöglichen.
F i g. 3 zeigt eine Teillistc von Mikrobefehlen, von denen jeder bei seiner Speicherung in dem M-Rcgister 30 Steuersignale über die Steuer-Sammelleitung /ur Einleitung bestimmter Operationen abgibt, leder Mikrobefehl besteht aus 16 Bits. Ein Teil dieser Bits, irgendwo zwischen dem dritten und zwölften Bit, ist als Bezeichnung des speziellen Mikrobefehls kodiert. Die restlichen Bits bezeichnen spezielle Register, einzelne Abschnitte von Registern, verschiedene Ausgangs-Funktionen der arithmetisch-logischen Einheit 12 und steuern verschiedene Modifikationen der von dem speziellen Mikrobefehl gelieferten Steuerfunktion. So wird beispielsweise der erste Mikrobefehl aus F i g. 3 ein REGISTER MO-VE-Befehl genannt und wird durch die Bits 0001 an den vier höchstwertigen Bitstellen des Mikrobefehls bezeichnet. Die nächsten sechs Bits bezeichnen das Qül1!- ienregister (Ausgangs-Register), aus dem Daten ausgegeben werden sollen, und die restlichen 6 Bits bezeichnen das Senkenregister (Eingangs-Register), das Daten von der Daten-Sammelleitung aufnehmen soll. Die Anzahl der über die Daten-Sammelleitung übertragenen Bits ist nicht notwendigerweise gleich dem Inhalt eines vollen 24-Bit-Registers. Wie oben bereits erwähnt, haben beispielsweise die Register L und Tsechs 4-Bit-Abschnitte. von denen jeder einzeln adressierbar ist. und zwar entweder als Queilenregister oder als .Senkenregister, in welchem Fall nur 4 Bits über die Daten-Sammelleitung übertragen werden würden. Wenn weniger als ein ganzes Wort von 24 Bits über die Daten-Sammelleitung übertragen wird, wird die entsprechende Anzahl der niedrigstwertigen Bitleitungen der Daten-Sammelleitung benutzt. Wenn beispielsweise die vier Bits des Abschnittes LA des L-Registers 18 als Quelle bezeichnet sind und der Abschnitt TF des /"-Registers 20 als Senkep.register bezeichnet ist, wurden die vier Bits über die vier niedrigstwertigen Leitungen der Daten-Sammelleitung von LA nach TFübertragen werden.
Die 16 den Mikrobefehl in dem M-Registcr 30 ausmachenden Bits werden auf die Steuer-Sammelleitung gegeben, die die Bits an die Steuerlogik in jedem aktiven Element des Rechenwerkes verteilt, wo die Bits zur Steuerung der geeigneten Tore decodiert werden und die angegebene Mikrooperation bewirken. Es sollte weiterhin bemerkt werden, daß die arithmetisch-logische Einheit 12 eine Anzahl von möglichen Ausgangsbedingungen erzeugt, wie etwa eine Summe, eine Differenz, das Komplement von X. das Komplement von Y.
Der dritte Mikrobefehl der Teilliste aus F i g. 3 ist der READ/WRITF MFMORY-Mikrobefehl. Das Bit 11 gibt an, ob eine Lese- oder .Schreiboperation erforderlich ist. Die Bits 6 und 7 geben das Register an, das die Quelle oder Senke für die Speichcropcration ist. Es sind
Λ nur zwei Bits notwendig, da die Speicherübertragungen auf nur vier Register beschränkt sind, nämlich das -Y-Registcr 14, das V-Regisicr 16, das /..-Register 18 und das Γ-Rcgi-.'.sr 20. Die ersten fünf Bits 0 und 4 dienen zur Angabe der Bitzahl des zu übertragenden Wortes und
jo können irgendeine Anzahl von Bits von 0 bis 24 spezifizieren. Wenn von dem READ/WRITE MEMORY-UV krobcfchl eine Breite 0 angegeben wird, wird die Zahl der übertragenen Bits durch die fünf Bits in dem CPL-Abschnitt des CP-Registers 22 gesteuert, was im cinzel-
j5 ncn noch weiter unten genauer erläutert wird.
Da jede Speicherübertragungsoperation eine Adressierung des Hauptspeichers von dem F-Register 24 erfordert, kann es erwünscht sein, die von dem Inhalt des M-Abschnittes des Registers 24 bezeichnete Bitgrenzenadrcsse zu vergrößern oder zu erniedrigen, und den /■"/..-Abschnitt des F-Rcgistcrs 24 zu vergrößern oder zu verkleinern. Diese Operationen werden von den COUNT M/rL-Bits 8, 9 und 10 des READ/WRITE M/fMO/fV-Mikrobcfehls angegeben. Die Kodierung
4r, dieser drei verschiedenen Bits ist in der Tabelle der Fig.4 eingetragen. Der Betrag, um den die FA und /•"/.-Register vergrößert und verkleinert werden, ist stets der gleiche wie die Anzahl der bei der Speicheroperation übertragenen Bits. Dies wird entweder durch die fünf Bits in CPL oder durch die ersten fünf Bits des READ/WRITE MEMORV-Mikrobefehls angegeben, wenn sie nicht 0 sind.
Die Vergrößerungs- und Verkleinerungsfunktion wird durch eine im ganzen mit 36 bezeichnete Einstellschaltung gesteuert. Diese Schaltung empfängt Steuerbits von dem M-Register 30 über die Steuer-Sammelleitung und wählt mit Hilfe einer nicht dargestellten Torschaltung entweder die fünf Bits aus CPL oder die fünf Bits (LIT) aus dem in dem M-Register 30 enthaltenen Mikrobefehl aus und gibt sie entweder auf einen oder auf beide Addierer 37 und 39. Die zwei Addierer sind an die Registcrabschnitte FA und FL angeschlossen. Die Addierer addieren oder subtrahieren von dem Inhalt des FA und FL-Abschnittes den von CPL oder LITbe-
h', stimmten. Betrag.
Der nächste Mikrobefehl aus der Liste in F i g. 3 ist der BRA NCH- Mikrobefehl. Er wird bezeichnet durch 110 in den ersten drei Bitsteilen des Wortes in dem
M-Register 30 und hai die Wirkung, daß die niedrigstwertigen Π Bits des Mikrobefehls in dem M Register JO in die niedrigstwertigen I S Bitposilioricn des /t-Rcgi sters 33 übertragen werden. Dadurch verzweigt sich der M-Folge-Speicher 28 zu einer neuen Stelle, bcispielv wci.se kehrt er zurück zu dem Anfang einer l-'olgc von Mikrobefehlen oder springt in dnc andere Folge von Mikrobefehlen in dem AM'olge-Spcichcr 28.
Der nächste Mikrobefehl aus Fig. 3 isl der COUNV M/FL-Mikrobefehl. Die Bits 5, b und 7 sind die COUNT FA/FL-Schlüsselbits und liefern il'.i: gleiche Funktion wie in dem Befehl RF.AD/WRITi: MF.MORY für die Vergrößerung oder Verkleinerung der Rcgisterabschniltc FA und Fl. entsprechend den Bedingungen, wie sie Tabelle F i g. 4 zeigl. Die ersten fünf Bits, wenn sie nicht gleich 0 sind, werden als Zeichen zur Bestimmung des Betrages benutzt, um welchen diese Register erhöht oder erniedrigt werden sollen. Andernfalls werden die fünf Bits im CPl. uc-mü/i.
Noch ein weiterer Mikrobefehl in der Liste gemäß F i g. 3 ist der in EXCHANGF.-Befehl. Er dient zum Austausch von 48 Bitwörtern zwischen den Zellen in dem Zwischenspeicher 26 und dem /'-Register 24. Zwei Zwisclhenspcichcrstcllen werden in dem Mikrobefehl bezeichnet, von denen eine die Quelle und eine die Senke in der Austauschoperation ist. Diese Adressen können auf die gleiche Zelle in dem Zwischenspeicher weisen. Die Ausführung dieses Mikrobefehls bewirkt, daß das 48-Bii-Wort in der durch die Quellenadresse bezeichneten Zelle im F-Registcr 24 und gleichzeitig das in dem F-Reguier 24 gespeicherte Wort in die von der Senkenadrcssc bezeichnete Zelle eingeheizt wird.
Der nächste Mikrobefehl in der Liste gemäß F i g. J ist der BIAS genannte Mikrobefehl und wird durch die zwölf Bits 4 bis 15 bezeichnet. Die Funktion des HIAS-Befehls besteht darin, die Abschnitte CTl. und Cl'l J des /^p_D„..jsi=rs 22 mit Hilfe einer Auswahlschaltung 38 zu setzen, die im einzelnen in F i g. 6 dargestellt isl. Die drei BMS-Schlüsselbits werden von der Auswahlschaltung
in
20 gang über eine ODER-Schaltung 56 gelangt.
Wenn der Ausgang des Dekodierers 40 auf 2 gesetzt ist, entsprechend der drillen Variante der in der Tabelle der 1· i μ. r> aufgeführten Bedingungen, aktiviert er ein Vor 58. das den Ausgang einer logischen Schallung 60 auf den ('/'/.-Abschnitt des CP-Registers 22 koppelt. Die logische Schallung 60. die mit der logischen Schaltung 46 identisch ist. vergleicht den S/.-Absehnitt der O-Adressenstelle des Zwischenspeichers 26 mit der Konstante K = 24 und bestimmt den kleineren Wert der beiden, wodurch Cl'l. auf die kleinere Feldlängc gesetzt wird, die von dem Deskriptor in der ersten Zelle des Zwischenspeichers oder von der Konstanten 24 geliefcri wird.
Wenn der Dekodicrer 40 auf 3 gesetzt wird, blendet ein Tor 62 in ähnlicher Weise den Ausgang einer identischen logischen Schaltung 64 auf CPL. Die zwei Eingänge der logischen Schaltung 64 werden von den Ausgän- •·εη der !;;gischen Schaltung?" 4fi und 60 abgeleitet, wodurch sich ein Ausgang ergibt, der dem kleinsten Wert von K. IL und SL entspricht. Ein Tor 66 blendet für den lall, dall der Decodierer 40 auf fünf gesetzt ist. den Ausgang einer logischen Schaltung 68 auf CPL Die beiden F.ingänge für die logische Schallung 68 sind der Inhalt des ('/'/.-Abschnittes des CP-Registers 22 und der Ausgang der logischen Schaltung 46. Der Ausgang der logischen Schaltung 68 entspricht demnach dem kleinsten der drei Werte K, Fl. und CPL Ein Tor 70 koppelt in ähnlicher Weise den Ausgang einer logischen Schal-1 tung 72 auf CPL, wenn der Dekodierer auf 7 gesetzt ist. Die F.ingänge zur logischen Schaltung 72 werden von dem Ausgang der logischen Schaltung 64 und dem Ausgang der logischen Schaltung 68 abgeleitet. Der Ausgang der logischen Schaltung 72 entspricht demnach > dem kleinsten der Werte K. FL, SL und CPL
Die Auswahlschaltung 38 gemäß F i g. fa setzt weiterhin den CPl/-Abschnitt des CP-Rcgisters 22 auf den in dem Fl/-Abschnitt des F-Regisiers 24 unter dem FU-Abschnitt der ersten Zelle des Zwischenspeichers 26
3il über die Steuer-Sammelleitung aus dem M-Registcr 4« gespeicherten Einheitswert. Dies wird durch zwei Tore 3(1 empfangen und auf einen Dekodiercr 40 gegeben. 74 und 76 erreicht, die beziehentlich FU und SU über dor einen von acht Ausgängen, 0 bis 7 aktiviert. Diese eine ODER-Schaltung 78 aui den CPU-Abschnitt des entsprechen den acht Bedingungen, wie sie in F i g. 5 für CP-Registers 22 koppeln. SU wird nur dann benutzt, die SMS-Variantcn notiert sind.
Bei der O-Bedingung des Dekodiererausganges überträgt ein Tor 42 den Einheilswert in dem Ff/-Abschnitt des Registers 24 in den CP/.-Abschniti des Registers wodurch der CPL-ßMS-Wert so gesetzt wird, daß er der Einheitengröße entspricht, die von dem in dem F-Rcgistcr gespeicherten Deskriptor bezeichnet isl. Wenn der Dekodiercr auf 1 gesetzt ist, wird CPI. über ein Tor 44 durch den Ausgang einer logischen Schaltung 46 gesetzt, die einen Ausgangswert liefert, der einem der beiden Eingänge entspricht, je nachdem, welcher den kleineren Wert besitzt. Im Falle der logischen Schaltung kommen die beiden Eingänge aus dem FL-Abschniit des F-Registers 24, das die Fcldlänge des von dem Deskriptor in dem F-Register adressierten Operanden bezeichnet, sowie von dem binär codierten Ausgang eines Kon
50 wenn die /JM.V-Varianten anzeigen, daß eine BIAS- Ar> durch-S/.-Opcration stattfinden soll. Somit wird der Ausgang 2 aus dem Decodierer 40 auf das Tor 76 gegeben. Der gleiche Ausgang wird über eine lnverterstufe 80 auf das Tor 74 gegeben, so daß FU auf CPU bei allen anderen BIAS- Variantenbedingungen als zwei gegeben wird.
Ein weiteres Merkmal des SMS-Mikrobefehls ist das rF.ST-Bit. das an der O-Bitsiellc des SMS-Mikrobefehls steh" (F i g. 3). Wenn das TEST-Bit gesetzt ist, läßt es die fünf Bits, die zu dem CPL-Abschnitt des CP-Registers gehen, durch ein Tor 81 (F i g. b) an eine Decodierschallung 86 gehen, die ein Ausgangssignal abgibt, welches anzeigt, wann CPL nicht gleich 0 ist (CPL * Q). Die Funktion des TESTS besteht darin, das Rechenwerk zum Überspringen des nächsten Mikrobefehls in der
stantenregisters die eine Konstante (K = 24) erzeugt, μ Folge zu veranlassen, wenn CPL nicht auf Null gesetzt die der Maximalzahl von Bits entspricht, die während ist. Während der Ausführung des SMS-Mikrobefehls in einer Operation über die Daten-Sammelleitung übertragen werden kann. Die logische Schaltung 46 weist einen Komparator 50 auf, der an die beiden Eingänge FL und K angeschlossen ist und eines der beiden Ausgangssi- tr> gnale K < FL oder K > FL erzeugt. Diese Ausgänge werden auf die Tore 52 bzw. 54 gegeben, wodurch der kleinere der beiden Eingänge K und Fl. auf den Aus-
dcm M- Register 30. wird dann, wenn der Ausgang der Deeodierschaltung 86 den Zustand CPL φ 0 anzeigt, das M- Register 30 während des Holens des nächsten Mikrobefehls insgesamt auf 0 gesetzt. Ein Λί-Register 30 mit sämtlichen Nullen befindet sich im NOOP (no operationJ-Zustand. Das führt dazu, daß während des nächsten Taklimpulses keine Operation stattfindet.
während der nächste Mikrobefehl in der l-'olgc von dein M-Folge-Speicher 28 geholt wird. Das zwangsweise auf Null Setzen des M-Registers 30 wird von einer NoOP-Schaltung 88 bewirkt, die auf den CPI. ¥= O-Ausgang der Decodierschaltung 86 während des I lolens des nächsten Mikrobsfehls hin aktiviert wird.
Mit dieser Anordnung kann der nächste auf den Bl- -AS-Mikrobefenl folgende Mikrobefehl in der l'rogrammfolge ein BRANCH-Befehl sein. Die Verzweigeoperation wird nur ausgeführt, wenn CPI. durch die ß/AS-Operation auf Null gesetzt worden ist. anderenfalls wird die Verzweigeoperation durch einen NoOP-Zustand ersetzt, und der nächste Mikrobefehl in der Folge nach dem BRANCH wird in das M-Register 30 geholt.
Zusätzlich zu dem oben beschriebenen READ/WRI TE MEMO/? V-Mikrobefehl benutzen andere Mikrobefehle den Inhalt des CPL-Abschnittcs des C'P-Rcgistcrs 22 in der Weise, wie er von dem SMS-Mikrobcfch! gesetzt worden ist, um die an der Mikroopcralion beteiligte Operandenbitzahl automatisch zu steuern. Eine derartige Operation führt mit SHIFT/ROTATE das T-Register aus. Dieser Mikrobefehl (F i g. 3) wird durch den Code 1010 in den höchsten vier Bitstcllcn bezeichnet. Der Befehl läßt den T-Register-lnhalt während der Übertragung in ein Senkenregister oder nach links zyklisch verschieben. Der Befehl bezeichnet ein Senkenregister durch die nächsten sechs Bits, die das T- Register selbst als eine Senke enthalten können. Das nächste Bit zeigt an, ob eine Verschiebe- oder eine Rotier-Operation stattfinden soll. Die letzten fünf Bits bezeichnen die Anzahl der Bitpositionen. Der Inhalt des T-Regislers wird verschoben oder nach links bei der Übertragung in das Senkenregister rotiert. Wenn das Senkenregister ein anderes als das T-Register selbst ist, verbleibt der Inhalt des Γ-Registers ungeändert. Die Linkszählung kann irgendeiner. Wert von 0 bis 23 haben. Ein. Wert von 0 zeigt an, daß die Linkszählung von dem Inhalt von CPL gesteuert werden soll. Somit wird die Linkszählung bei einer Verschiebe- oder Rotieroperation durch den Wert von CPL bestimmt, der von dem oben diskutierten BMS-Mikrobefehl gesetzt worden ist. Die Verschiebe/ Rotiere-Logik für das T-Rcgister 20 ist bei 82 in Fi g. 1 angedeutet.
Die Art und Weise, in der ein ß/AS-Mikrobcfchl beim Betrieb des Rechenwerkes nach F i g. 1 benutzt wird, kann am besten bei Betrachtung eines speziellen Beispiels, etwa in Form einer Addier-Operalion, verstanden werden. Man betrachte den Fall, daß zwei Operanden A und ß addiert werden sollen und daß die Summe der Operanden A und ß in dem Akkumulator ersetzen soll, d.h. der Löschen- und Addiere-Befehl bekannter Rechenwerke. Da das Rechenwerk mikroprogrammiert ist, sind die das Objektprogramm bildenden Befehle in dem Hauptspeicher 10 gespeichert. Jeder Befehl wird durch eine Folge von Mikrobefehlen ausgeführt, die in dem Λί-Speicher 28 gespeichert ist. In dem M-Speicher 28 ist weiterhin eine Folge von Mikrobefehlen gespeichert, die das Adressieren und Auslesen des nächsten Programmbefehls aus dem Hauptspeicher 10 mit Hilfe eines Deskriptors in dem Zwischenspeicher steuern, und aus dem OP-Codeabschnitt des Befehls die Anfangsadresse in dem M-Speicher für die Mikrobcfchlsfolgc bestimmen, die diesen Befehl in dem Rechenwerk ausführt, und die in Abhängigkeit von den Adressen det von dem Befehl gelieferten Operanden die [Miendeskriptoren in den Zwischenspeicher lädt. Dies alles wird ausgeführt voneinermikroprogrammicrtenHolrouiinc.
Bei der Ausführung eines /U-W//:'/?fi'-Bcfehls wird die Kolgc von Mikrobefehlen, die in Sequenz aus dem M-I"olge-Spcieher28in das M-Register 30 ausgelesen werden, wie folgt aussehen:
START Mit FL & TEST
BIAS Gehe zu
BRANCH NEXTROUTINE
Lies bis X,
READ/WRITE vergr. EA, verm. FL
S-0 —F
EXCHANGE F*-.5-0
Lies bis Y
READ/WRITE Biniirsummc nach T
MOVE CAF-CYL
CARRY Schreibe von T
WRITE vcrgr. FA, verm. FL
.9—0— F
EXCHANGE F-S-O
Gehe zu START
BRANCH
r> Weiterhin wird vor der Ausführung des ADDIERE-Befehls während der Holroutine ein Deskriptor in dem F-Register 24 gespeichert, der die Anfangsadresse und die Feldlärige des Operanden A bezeichnet, während ein die Anfanfjsadresse und Feldlänge des Operanden B bezeichnender Deskriptor in der Adressenstelle 0 des Zwischenspeichers 26 steht. Die Deskriptoren für die Operanden A und B haben beispielsweise ein in F i g. 2 dargestelltes Format; Fig.2 zeigt ein Daten-Deskriptorwort in dem F-Register 24.
Die Deskriptoren können beispielsweise anzeigen, daß der Operand .4 an der Adrcssengrenzstelle 1000 J5 (ΓΑ = 1000) beginnt, eine Feldlänge von 37 Bits (FL — 37) besitzt, und daß die Einheitsgröße ein Binärhit ist (FU = 0). Für den Operanden B, dessen Deskriptor in der Nullstellc des Zwischenspeichers 26 gespeichert «st. kann die Bitgrenzadresse im Hauptspeicher beispielsweise bei 2000 beginnen (SA—\ = 2000), die Feldlänge 37 Bits betragen (SL = 27) und die Einheitsgröße kann wiederum ein Binärbit sein (SU = 0).
Aus der Tabelle geht hervor, daß der erste Mikrobefehl ein BIAS- Befehl ist, bei dem vermöge der Variante 1 (F i g. 5) FL mit 24 verglichen und der kleinere Wert in den CPL-Abschnitt des CP-Registers 22 in der im Zusammenhang mit Fig.6 beschriebenen Weise gespeichert wird. Das CP-Register 22 ist somit mit den ersten fünf Bits, die CPL = 24 anzeigen, gesetzt, da 24 zu Beginn kleiner als 37 Bits ist, die durch FL und SL bezeichnet sind. Das Testbit des ßMS-Befehls ist anfänglich gesetzt und erfordert einen Test, um zu bestimmen, ob CPL auf Null gesetzt ist. Da es auf 24 gesetzt ist, wird ein NOOP in das M-Register 30 anstelle des nächsten Mikrobefehls gesetzt, der ein BRA NCH-Befehl ist. Aufgrund des NOOP passiert während des nächsten Taktes überhaupt nichts, so daß der nächste Mikrobefehl in der Folge in das M-Register 30 geholt wird.
Nach der vorstehenden Tabelle ist der nächste Mikrobcfehl ein READ/WWTE-Mikrobefehl, der die 24 am wenigsten signifikanten Bits des Operanden A in das X-Rcgistcr 14 übertragen läßt, wobei die Bitgrenzcnadrcssc in dem F/4-Abschnitt des F-Registers 24 und der Inhalt von CPL benutzt wird, um die Anzahl der zu übertragenden Bits, nämlich 24 Bits, zu bestimmen. Der READ-Mikrobefehl gibt weiterhin an, daß FA um CPL vergrößert und das Fl. um CPL vermindert werden soll. Man bemerke, daß die COiVA/T-Variante in dem RE-
4D-Mi(crobefehl auf 011 gesetzt ist, um das Vergrößern von FA und das Verkleinern von FL entsprechend den COUNT-Va-ianten von F i g. 4 zu bezeichnen. Die für.f niedrigsten Bits des Mikrobefehls entsprcQhend der Übertragungsbreite des /?E4D-Befehls sind auf Null gesetzt und zeigen an, daß die Anzahl der zu überira·· genden Bits und das Vergrößern und Verkleinern von FA und FL durch den Inhalt des CPL-Abschnittes des CP- Registers 22 gesteuert werden soll.
Der nächste Mikrobefehl in der Folge ist der EX CHANGE- Befehl, der dafür sorgt, daß die Descriptorcn in dsm F-Register 24 und an der Adressensielle 0 des Zwischenspeichers 26 ausgetauscht werden, wodurch der Descriptor des Operanden B in das F-Register 24 gesetzt wird. Daran anschließend folgt ein weiterer RE-ΛΟ-Befehl, in dem das Senkenregister (F.ingangsregister) als das Y-Register 16 bezeichnet ist. Die COUNT-Variante ist auf Null gesetzt und zeigt an, daß weder ein Vergrößern noch ein Verkleinern während der Ausfühtigen Bits der Summe der beiden Operanden an die Stelle der niedrigstwertigen Bits des Operanden B in dem Hauptspeicher 10 treten.
Zur gleichen Zeit wird die Bitgrenzadresse in FA durch CPL vergrößert und die Feldlänge FL wird um CPL verkleinert, um auf die restlichen Bits d;s Operanden B in dem Hauptspeicher 10 zu zeigen. Wiederum läßt ein EXCHA NGE- Befehl den Inhalt des F-Registers 24 mit dem Descriptor in der Adressenstelle 0 des Zwi-
iü schenspeichers 26 austauschen, wodurch der modifizierte Descriptor der verbleibenden Bits des Operanden A in das F-Register 24 zurückgespeichert wird. Der folgende ß/MNCH-Mikrobefehl läßt das /4-Register 32 auf die Anfangsadresse der /4DD/£/?E-Mikrobefehls-
Ii folge zurücksetzen, so daß mit dem ÖMS-Mikrobefehl begonnen wird.
Der S/AS-Mikrobefchl setzt bei erneuter Ausfünrung CPL auf den kleineren der erniedrigten Werte von FL und 24. Da in dem gegebenen Beispiel, wonach die
rung des /?£/.l>Befehls stattfinden soll. Wiederum ist 20 Operanden aus 37 Bits bestehen, FL auf 13 (= 37 — 24)
die Übertraf, yngsbreite auf Null gesetzt, so daß der Inhalt des CPL-Abschnittes des CP-Registers 22, wie er von dem ß/AS-Befehl gesetzt worden ist, dazu benutzt wird, die Anzahl der Bits, die von dem Hauptspeicher 10 in das V-Register 16 übertragen werden, zu steuern.
Mit den 24 niedrigstwertigen Bits des Operanden A in dem X-Register 14 und den 24 niedrigstwertigen Bits des Operanden B in dem V-Register 16 bildet die arithmethische und logische Einheit 12 einen Ausgang, der die Binärsumme der Operanden in den Registern X und Y ist. Die Anzahl paralleler Bits aus dem Ausgang der arithmetischen und logischen Einheit 12 wird gesteuert durch den augenblicklichen Wert CPL, nämlich 24.
Der nächste Mikrobefehl ist ein MOVE-Befehl, der erniedrigt wurde, wird CPL jetzt auf 13 von dem BIAS-Mikrobcfehl gesetzt. Da wiederum CPL ungleich Null war, führt der Test dazu, daß der folgende BRANCH-Befehl durch NoOP ersetzt wird und die Mikrobefehls-
2·) folge weiter ausgeführt wird. Da CPL auf 13 statt auf 24 gesetzt ist. haben der /?EAD/W/?/TE-Befehl und der MOVE-Befehl die Übertragung von lediglich 13 Bits über die Daten-Sammelleitung zwischen dem Hauptspeicher 10 und den Registern X und V, zwischen der
jo arithmetischen und logischen Einheit 12 und dem T-Register 20, sowie zwischen dem T-Register 20 und dem Hauptspeicher 10 zur Folge. Das Rechenwerk arbeitet also, als bestünde die Breite aus 13 parallelen Bits: die 13 Bits, die die Binärsumme der 13 Bits in den Registern
die Binärsumme am Ausgang der arithmetischen und js X und Y plus den Übertragwert in CYFrepräsentieren,
logischen Einheit 12 über die Daten-Sammelleitung in werden in den Hauptspeicher in dasjenige Feld des
das T-Register 20 überträgt. Wie bereits ausgeführt im Operanden B zurückgespeichert, das sich an die vorhe-
Zusammenhang mit dem in Fig.3 enthaltenen MOVE- rigen 24 Bits anschließt, so daß jetzt 37 Bits in dem
Befehl, können die verschiedenen arithmetischen und Hauptspeicher an der Stelle des Operanden B gespei-
logischen Ergebnisse, die von der arithmetischen und 40 chert sind.
logischen Einheit 12 erzeugt werden, einzeln als Quelle Wiederum wird das /4-Register 32 auf die Anfangs-
von dem MOVE-Befehl bezeichnet werden. In diesem adressc der Mikrobefehlsfolge in dem M-Folge-Spei-
FaIl wählen die Quellenbits des in dem M-Rcgistcr 30 eher 28 zurückgesetzt, jedoch ist jetzt FL gleich Null
vorhandenen MOVE-Befchls, die über die Steuer-Sam- und daher wird CPL auf Null gesetzt. Dies wird von dem
melleitung auf die arithmetische und logische Einheit 12 45 Test des ßMS-Mikrobefehls festgestellt und daher wird
gegeben sind, als Ausgang der Einheit 12 die Binärsum- der nächste Mikrobefehl in der Folge nicht übersprun-
me und geben sie auf die Daten-Sammelleitung. Zur gleichen Zeit bezeichnet der MOVE-Befehl mit Hilfe der Steuer-Sammelleitung das T-Register 20 als Senkenregister (Eingangsregister), wodurch die Binärsumme der niedrigstwertigen 24 Bits der Operanden A und B über die Daten-Sammelleitung in das T-Register geladen werden. Wenn die arithmetische und logische Einheit 12 als Ergebnis der Addition einen Übertrag gen. Folglich läßt der nachfolgende ßflAA/CH-Befehl das /4-Register 20 auf die Adresse der Holroutine setzen und der nächste Befehl wird aus dem Hauptspeicher geholt.
Während das obige Beispiel zeigt, in welcher Weise der BIAS- Befehl in Verbindung mit einer Folge von Mikrobefehlen zur Ausführung eines ADDlERE-Befehls benutzt wird, kann der BIAS-Be(M auch am An
erzeugt hat, dient er zum Setzen des Übertrags-Flip- 55 fang eines anderen Mikro-Umerprogramms benutzt Flops in dem CP-Register 22 mit Hilfe des folgenden werden, das sich irgendwelchen Mikrobefehlen bedient, CARR K-Befehls. Eine Übertraglogik 84 wählt das rieh- die mit dem CPL-Abschnitt des CP-Registers 22 arbeitige Übertragbit (CPL = Binärübertrag; CYD = dezi- ten.
maler Übertrag) aus dem Ausgang der Einheit 12 in Wie aus der vorstehenden Beschreibung hervorgeht.
Abhängigkeit von dem CA RR V-Mikrobefehl in dem M- m ist CPL implizit am MO VE-Befehl beteiligt, wo eine der Register 30 und speichert es in dem CVF-Abschnitt des möglichen Ausgangsfunktionen der arithmetischen und
logischen Einheit 12 als eine Quelle bezeichnet werden, da CPL zur Steuerung der Anzahl von Bits am Ausgang der Einheit 12 benutzt wird. Der Wert von CPL, wie er von dem ßMS-Befehl gesetzt wird, ist explizit beteiligt an dem READ/WRITE-Befehl, dem COUNT-FA/FL-Befehl und an dem SHIFT/ROTATE T-Register-Befehl, wenn die fünf niedrigstwertigen Bits dieser Befehle auf
CP-Registers 22.
Es schließt sich ein WWTE-Befehl an, der das T-Register 20 als Quellenregister (Ausgangsregister) und CPL als Übertragungsbreite bezeichnet, und FA als Grenzadresse in dem Hauptspeicher 10 benutzt. Da dies die gleiche Adresse ist wie diejenige, die zum Auslesen des Ooeranden B dieme, sieht man, daß die 24 niedrigstwer-
Null gesetzt sind, wie das oben in Verbindung mit F i g. 3 beschrieben wurde. Der ßMS-Befehl kann mit jedem Unterprogramm benutzt werden, das einen oder mehrere dieser Befehle verwendet
Die Varianten-Bedingungen des ß/AS-Befehls erlauben mehrere Arten von Speicherzugriffoperationen. Die Varianten-Bedingung 1 (F i g. 5) ermöglicht es durch das Setzen von CPL auf die von fUoder SLf bezeichnete Einheitsgröße, daß eine Einheit, d.h. ein einzelnes Binärbit, eine ßCZM-Bit-Zahl oder ein ßCD-8-Bitzeichen bei jeder Ausführung des folgenden READ/WR1-TE MEMORY-Betehls in oder aus dem Speicher übertragen wird. Somit kann das Rechenwerk als bitserielle oder zeichenserielle Maschine betrieben werden. Die Varianten-Bedingungen 5 und 7 des BIAS- Befehls ermöglichen die Übertragung eines Operanden in oder aus dem Speicher in Einheiten, die weniger als 24 Bits umfassen. Indem beispielsweise zu Beginn CPL auf acht und FL auf 40 gesetzt wird, werden unter Verwendung der Variante 5 jeweils 8 Bits des Operanden gleichzeitig übertragen, bis sämtliche 40 Bits des Operanden übertragen worden sind. Im Fall der Variante I werden in dem gleichen Beispiel 24 Operandenbits und dann 16 Operandenbits übertragen.
Mit dem vorstehend beschriebenen Prozessor kön- π nen Programmbefehle an Operanden beliebiger Länge ausgeführt werden. Der ßMS-Befehl ermöglicht da-'iurch, daß der CPL-Abschnitt des Steuerregisters auf den kleineren Wert von der Breite der Daten-Übertragungsleitung in dem Rechenwerk und der verbleiben- jo den Operandenlänge gesetzt wird, dem Rechenwerk so zu arbeiten, als wäre die innere Breite geringer als die Breite der Übertragungsleitungen innerhalb des Rechenwerkes. Wenn daher der Operand breiter ist als die Übertragungsleitungen innerhalb des Rechenwerks, kann der Operand abschnittweise behandelt werden, wobei jeder Abschnitt der Übertragungsbreite des Rechenwerks entspricht oder innerhalb der dadurch gegebenen Grenzen verbleibt Dabei wird das Rechenwerk automatisch auf eine geringere effektive Breite eingestellt wenn der letzte verbleibende Operandenabschnitt kleiner als die Übertragungsbreite der Maschine ist. Somit braucht der Benutzer bei der Aufstellung des Objektprogramms die Programmbefehle in keiner Weise zu modifizieren, um sie verschiedenen Operandenlängen anzupassen. Indem der ßMS-Mikrobefchl am Anfang jeder Mikrobefehlfolge zur Ausführung eines speziellen Befehls vorgesehen wira, paßt das Rechenwerk automatisch seine innere Operation den jeweiligen Erfordernissen im Hinblick auf eine spezielle Operanden- v> länge bei der Ausführung eines Programmbefchls an.
Zu diesem Zweck wird ein freiadressierbarer Speicher von einem Adressenregister adressiert, das auf die Grenze zwischen zwei beliebigen, in dem Speicher gespeicherten Bits als Fcldanfang zeigt und die Anzahl der Bits in dem Feld bis zur maximalen Bitkapazität des Speichers angibt Ein Steuerregister, als Vorgaberegister bezeichnet, bestimmt die Anzahl der parallelen Bils, bis zur Maximalzahl der bei einem Speicherzyklus möglichen parallelen Bits, die bei der Ausführung spezieller wi Mikrobefehle notwendig sind, jede Mikrobefehlsfolge, die eine Behandlung von Operanden vorsieht, beispielsweise eine arithmetische Operation oder eine Datenübertragung, umfaßt eine Vorgabeoperation, in der das Vorgaberegister auf den kleineren Wert von der durch b5 das Adressenregister bezeichneten Bitzahl und der Maximalzahl an während eines Speicherzyklus übertragenen Bits gesetzt wird. Wenn das Vorgabcrcgisler gc- setzt ist, dient es zur Steuerung innerer Operationen innerhalb des Rechenwerks und der Übertragungsvorgänge zwischen dem Rechenwerk und dem Speicher, die gerade so ablaufen, als wäre die Maschinenbreite geändert worden.
Hierzu 3 Blatt Zeichnungen

Claims (2)

Patentansprüche:
1. Mikroprogrammierter Prozessor, in welchem eine arithmetisch-logische Einheit mit veränderlicher Verarbeitungsbreite und ein frei adressierbarer Speicher für Operanden sowie eine Register enthaltende Steuereinrichtung über Daienübertragungsleitungen miteinander verbunden sind, über welche eine vorgegebene Anzahl von Bits parallel übertragen werden kann, dadurch gekennzeichnet, daß der Inhalt eines Feldlängenregisters (FL-Register 24), in welchem die Anzahl der Bits eines Operanden gespeichert ist, und eines Konstantenregisters (48), in welchem die Maximalzahl der im Prozessor gleichzeitig bearbeitbaren Bits enthalten ist. in einer ersten logischen Schaltung (46) verglichen wird und der kleinere der Vergleichswcrtc unter Steuerung eines in einem Mikrobefehlsregister (30) befindliche.! Mikrobefehls in ein Steuerregister (CP-Regisier 22) zur Steuerung der JJbertragungsbreite der Datenübertragungsleitungen übertragen wird.
2. Mikroprogrammierter Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß in einer zwei BREITE die Anzahl derjenigen Bits, die parallel übertragen werden können. Ein seriell arbeilender Rechner, in dem die Bits sequentiell übertragen werden, besitzt somit eine Breite von einem Bit. Andere Rechner arbeiten zcichenseriell, wobei jedes Zeichen binär codiert ist und eine Breite hat, die durch die Anzahl der Bits pro Zeichen bestimmt ist. Die meisten Hochgeschwindigkeits-Rechenwerke gehören jedoch zur Klasse der Parallel-Maschincn. in denen die ein Wort ausmachenden
ίο Bits parallel übertragen werden. Einzelne Wörter können aus bis zu 64 Bits bestehen. Die Breite ist natürlich ein Kompromiß zwischen der Anzahl derjenigen Bits, die normalerweise für die Übertragung von Befehlen und Operanden notwendig sind, und dem größeren Kostenaufwand, der mit der Zunahme von parallel übertragenen Bits verbunden ist.
Während bitsericlle Digitalrechner die Möglichkeit eröffnen, die Feldlänge von Operanden und Befehlen schnell und leicht zu verändern, wird die Arbeitsgeschwindigkeit derartiger Rechner im wesentlichen durch die relativ geringe Anzahl von Bits begrenzt, die pro Operation übertragen oder behandelt werden. Die Rechner mit größerer Wortbreite können dadurch, daß eine Parallelübertragung der Operanden- und Befehls-
20
DE2230102A 1971-06-28 1972-06-21 Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung Expired DE2230102C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15729771A 1971-06-28 1971-06-28

Publications (2)

Publication Number Publication Date
DE2230102A1 DE2230102A1 (de) 1973-01-11
DE2230102C2 true DE2230102C2 (de) 1984-10-18

Family

ID=22563140

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2230102A Expired DE2230102C2 (de) 1971-06-28 1972-06-21 Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung

Country Status (6)

Country Link
US (1) US3739352A (de)
JP (1) JPS5549336B1 (de)
BE (1) BE784859A (de)
DE (1) DE2230102C2 (de)
FR (1) FR2144307A5 (de)
GB (6) GB1390388A (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3858183A (en) * 1972-10-30 1974-12-31 Amdahl Corp Data processing system and method therefor
US3859636A (en) * 1973-03-22 1975-01-07 Bell Telephone Labor Inc Microprogram controlled data processor for executing microprogram instructions from microprogram memory or main memory
US3997878A (en) * 1973-07-27 1976-12-14 Rockwell International Corporation Serial data multiplexing apparatus
US3873976A (en) * 1973-07-30 1975-03-25 Burroughs Corp Memory access system
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4042972A (en) * 1974-09-25 1977-08-16 Data General Corporation Microprogram data processing technique and apparatus
US3990052A (en) * 1974-09-25 1976-11-02 Data General Corporation Central processing unit employing microprogrammable control for use in a data processing system
US4004281A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Microprocessor chip register bus structure
US3978456A (en) * 1974-12-16 1976-08-31 Bell Telephone Laboratories, Incorporated Byte-by-byte type processor circuit
US3969724A (en) * 1975-04-04 1976-07-13 The Warner & Swasey Company Central processing unit for use in a microprocessor
US4041471A (en) * 1975-04-14 1977-08-09 Scientific Micro Systems, Inc. Data processing system including a plurality of programmed machines and particularly including a supervisor machine and an object machine
JPS5217732A (en) * 1975-07-31 1977-02-09 Sharp Corp Integrated circuit unit
FR2337376A1 (fr) * 1975-12-31 1977-07-29 Honeywell Bull Soc Ind Appareil permettant le transfert de blocs de donnees de longueur variable entre deux interfaces de largeur differente
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations
US4047247A (en) * 1976-04-07 1977-09-06 Honeywell Information Systems Inc. Address formation in a microprogrammed data processing system
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4250560A (en) * 1978-01-16 1981-02-10 Jurgen Dethloff Text processing apparatus
JPS55500197A (de) * 1978-04-21 1980-04-03
US4291370A (en) * 1978-08-23 1981-09-22 Westinghouse Electric Corp. Core memory interface for coupling a processor to a memory having a differing word length
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
GB2039104B (en) * 1979-01-02 1983-09-01 Honeywell Inf Systems Data processing system
US4240144A (en) * 1979-01-02 1980-12-16 Honeywell Information Systems Inc. Long operand alignment and merge operation
US4467443A (en) * 1979-07-30 1984-08-21 Burroughs Corporation Bit addressable variable length memory system
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
US4346437A (en) * 1979-08-31 1982-08-24 Bell Telephone Laboratories, Incorporated Microcomputer using a double opcode instruction
US4388682A (en) * 1979-09-04 1983-06-14 Raytheon Company Microprogrammable instruction translator
JPH0119185B2 (de) * 1980-02-28 1989-04-10 Intel Corp
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4499535A (en) * 1981-05-22 1985-02-12 Data General Corporation Digital computer system having descriptors for variable length addressing for a plurality of instruction dialects
US4821184A (en) * 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US4667305A (en) * 1982-06-30 1987-05-19 International Business Machines Corporation Circuits for accessing a variable width data bus with a variable width data field
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US4893235A (en) * 1983-10-03 1990-01-09 Digital Equipment Corporation Central processing unit for a digital computer
US4847759A (en) * 1985-03-18 1989-07-11 International Business Machines Corp. Register selection mechanism and organization of an instruction prefetch buffer
US5442770A (en) * 1989-01-24 1995-08-15 Nec Electronics, Inc. Triple port cache memory
US5319769A (en) * 1989-09-11 1994-06-07 Sharp Kabushiki Kaisha Memory access circuit for handling data pockets including data having misaligned addresses and different widths
US5442769A (en) * 1990-03-13 1995-08-15 At&T Corp. Processor having general registers with subdivisions addressable in instructions by register number and subdivision type
US5465374A (en) * 1993-01-12 1995-11-07 International Business Machines Corporation Processor for processing data string by byte-by-byte
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
NZ593398A (en) * 2008-11-17 2013-06-28 Hall Inc Rigging, rigging terminals, and methods of assembling for a sailboat or yacht using composite fibres or yarns or threads
US9977619B2 (en) 2015-11-06 2018-05-22 Vivante Corporation Transfer descriptor for memory access commands

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377620A (en) * 1964-04-10 1968-04-09 Mohawk Data Science Corp Variable word length internally programmed information processing system
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
US3510847A (en) * 1967-09-25 1970-05-05 Burroughs Corp Address manipulation circuitry for a digital computer
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire

Also Published As

Publication number Publication date
FR2144307A5 (de) 1973-02-09
GB1390388A (en) 1975-04-09
GB1390389A (en) 1975-04-09
GB1390386A (en) 1975-04-09
GB1390384A (en) 1975-04-09
DE2230102A1 (de) 1973-01-11
US3739352A (en) 1973-06-12
JPS5549336B1 (de) 1980-12-11
BE784859A (fr) 1972-10-02
GB1390390A (en) 1975-04-09
GB1390387A (en) 1975-04-09

Similar Documents

Publication Publication Date Title
DE2230102C2 (de) Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung
DE3851746T2 (de) Sprungvorhersage.
DE2540975C2 (de) Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE2724125C2 (de)
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE2515696C2 (de) Datenverarbeitungssystem
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE3424962C2 (de)
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE1499193B2 (de) Speicher-adressierschaltung
DE2355993B2 (de) Programmierbare datenverarbeitungsanlage
DE2746505C2 (de)
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE3900246C2 (de)
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE3114921A1 (de) Datenverarbeitungssystem
DE2358593A1 (de) Datenverarbeitungsanordnung und bei dieser verwendbare steuerschaltung
DE2233193B2 (de) Stapel-Speichersystem
DE69111778T2 (de) Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits.

Legal Events

Date Code Title Description
OD Request for examination
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee