DE2230102C2 - Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung - Google Patents
Mikroprogrammierter Prozessor mit bitparalleler DatenübertragungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction 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
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-
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.
Claims (2)
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
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) | GB1390387A (de) |
Families Citing this family (45)
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 |
WO1979000959A1 (en) * | 1978-04-21 | 1979-11-15 | Ncr Co | A computer system having enhancement circuitry for memory accessing |
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 |
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 |
US4467443A (en) * | 1979-07-30 | 1984-08-21 | Burroughs Corporation | Bit addressable variable length memory system |
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 |
ATE10142T1 (de) * | 1980-02-28 | 1984-11-15 | Intel Corporation | Steuervorrichtung fuer eine mikroprozessorschnittstelle. |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
USRE32493E (en) * | 1980-05-19 | 1987-09-01 | Hitachi, Ltd. | 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 |
US4893235A (en) * | 1983-10-03 | 1990-01-09 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4812971A (en) * | 1983-10-03 | 1989-03-14 | 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 |
WO2010057167A2 (en) * | 2008-11-17 | 2010-05-20 | Hall Inc. | Rigging, rigging terminals, and methods of assembling rigging and rigging terminals for a sailboat |
US9977619B2 (en) | 2015-11-06 | 2018-05-22 | Vivante Corporation | Transfer descriptor for memory access commands |
Family Cites Families (4)
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 |
-
1971
- 1971-06-28 US US00157297A patent/US3739352A/en not_active Expired - Lifetime
-
1972
- 1972-06-13 JP JP5893272A patent/JPS5549336B1/ja active Pending
- 1972-06-14 GB GB2932074A patent/GB1390387A/en not_active Expired
- 1972-06-14 GB GB2932374A patent/GB1390390A/en not_active Expired
- 1972-06-14 GB GB2932274A patent/GB1390389A/en not_active Expired
- 1972-06-14 GB GB2931974A patent/GB1390386A/en not_active Expired
- 1972-06-14 GB GB2784172A patent/GB1390384A/en not_active Expired
- 1972-06-14 BE BE784859A patent/BE784859A/xx not_active IP Right Cessation
- 1972-06-14 GB GB2932174A patent/GB1390388A/en not_active Expired
- 1972-06-21 DE DE2230102A patent/DE2230102C2/de not_active Expired
- 1972-06-26 FR FR7222994A patent/FR2144307A5/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB1390389A (en) | 1975-04-09 |
FR2144307A5 (de) | 1973-02-09 |
GB1390390A (en) | 1975-04-09 |
BE784859A (fr) | 1972-10-02 |
GB1390386A (en) | 1975-04-09 |
GB1390388A (en) | 1975-04-09 |
GB1390387A (en) | 1975-04-09 |
GB1390384A (en) | 1975-04-09 |
JPS5549336B1 (de) | 1980-12-11 |
US3739352A (en) | 1973-06-12 |
DE2230102A1 (de) | 1973-01-11 |
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 | |
DE2813128C2 (de) | Steuereinrichtung für Mikroprogrammspeicher | |
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 | |
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) | ||
DE2715073B2 (de) | Mikroprogranunierte Rechner-Steuervorrichtung | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE3900246C2 (de) | ||
DE69231237T2 (de) | Datenverarbeitungsvorrichtung | |
DE3114921A1 (de) | Datenverarbeitungssystem | |
DE2358593A1 (de) | Datenverarbeitungsanordnung und bei dieser verwendbare steuerschaltung | |
DE69807412T2 (de) | Prozessorarchitekturschema und Befehlssatz zur Maximierung verfügbarer Opcodes und zum Einsetzen verschiedener Adressierungsmodi |
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 |