DE3750014T2 - Datenprozessor mit der Fähigkeit, die Verzweigungsadresse sofort zu berechnen in einer Relativadressenverzweigung. - Google Patents
Datenprozessor mit der Fähigkeit, die Verzweigungsadresse sofort zu berechnen in einer Relativadressenverzweigung.Info
- Publication number
- DE3750014T2 DE3750014T2 DE3750014T DE3750014T DE3750014T2 DE 3750014 T2 DE3750014 T2 DE 3750014T2 DE 3750014 T DE3750014 T DE 3750014T DE 3750014 T DE3750014 T DE 3750014T DE 3750014 T2 DE3750014 T2 DE 3750014T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- signal
- branch
- register
- input
- 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 - Fee Related
Links
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000018109 developmental process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Description
- Die Erfindung betrifft einen Digitalcomputer mit gespeichertem Programm und insbesondere einen Datenprozessor zur Verwendung in kleinen Digitalcomputern wie Mikrocomputern.
- Im Allgemeinen sind Digitalcomputer mit gespeichertem Programm in der Lage, notwendige Befehle und Daten aus einem zugeordneten Speicher zu holen und einen notwendigen Betrieb durchzuführen. Heutzutage ist ein Programmzähler als Einrichtung zur Bezeichnung der Adresse von Befehlen, die aus dem Speicher auszulesen sind, weit gebräuchlich. Jedesmal, wenn ein Befehl ausgeführt wird, wird der Programmzähler inkrementiert, um die Adresse eines als nächstes auszuführenden Befehls zu bezeichnen, so daß eine Folge von Befehlen entsprechend den Adressen, die durch den Programmzähler angezeigt werden, ausgelesen werden. Bei diesem Verfahren ist jedoch zur Änderung des Ablaufs aufeinanderfolgender Operationen ein sog. Zweigbefehl erforderlich.
- Der Zweigbefehl ist in einen Absolutadreß-Zweigbefehl und einen Relativadreß-Zweigbefehl unterteilt. Die meisten klein ausgelegten Mikrocomputer der Anfangsphase arbeiteten mit nur den Absolutadreß-Zweigbefehlen. Ein erster Grund liegt darin, daß die Mikrocomputer der Anfangsphase nur Arbeiten von einigen Kilobytes oder weniger Programmanteil handhaben können, und auf Grund dessen hat die Verwendung des Absolutadressenzweigs nicht viel Schwierigkeiten in der Programmentwicklung verursacht. Ein zweiter Grund liegt darin, daß eine aufwendige Steuerung für die Hardware erforderlich ist, um Relativadresszweige auszuführen.
- Das Auftreten von Mikrocomputern, die einen Speicherraum von 64 Kilobytes oder mehr aufweisen, erfordert als eine notwendige Minimalbedingung, daß ein Programm im Zuge der Entwicklung im Hinblick auf die Einfachheit der Edition und Modifikation des Programmes verschieblich (relocatable) ist. Um dieser Anforderung zu genügen, sollte der Zweigbefehl der Relativadreß-Zweigbefehl sein.
- Bislang wurde der Relativadreß-Zweigbefehl durch Berechnung der Zweigadresse unter Verwendung einer arithmetisch und logischen Einheit für Datenverarbeitung ausgeführt und anschließend durch Einstellen der berechneten Zweigadresse am Programmzähler.
- Bei allgemeinen Mikrocomputern hat jedoch die Adreßinformation für den Speicherzugriff eine größere Bitlänge als die der in dem Mikrocomputer verarbeiteten Daten. Aufgrunddessen kann die arithmetisch und logische Einheit die Bestimmungsadresse des Relativadreßzweiges nicht nur mit einer Operation berechnen. Auf Grund dessen muß eine Anzahl von Operationen durchgeführt werden. Dies ist ein Hinderungsgrund für den Hochgeschwindigkeitsbetrieb des Computers.
- Eine Betrachtung der Relativadreßzweigbefehle in gebräuchlichen Computerprogrammen vom statistischen Gesichtspunkt zeigt, daß die Zweigbestimmungsadressen in einem begrenzten Bereich nahe der aktuellen Adresse verteilt sind, und es ist ein seltener Fall, daß die Zweigbestimmungsadressen in einem weiten Bereich, der durch den Mikrocomputer zugreifbar ist, verteilt sind. Dies bedeutet für den Fall der Relativadreßzweigbefehle, daß es ausreichend ist, wenn der Mikrocomputer eine Funktion zum Verzweigen zu einer Adresse aufweist, die in einem begrenzten Bereich enthalten ist.
- In jedem Fall sind eine Anzahl von Operationen für die Berechnung der Zweigbestimmungsadresse noch erforderlich, selbst wenn der Relativadreßzweig das obengenannte Merkmal aufweist. Zur Beschleunigung der Berechnung der Zweigbestimmungsadresse war es somit bei der bekannten Technik erforderlich, eine unabhängige Betriebseinheit nur für die Zweigbestimmungsadreßberechnung vorzusehen, so daß die arithmetisch und logische Einheit für die Datenverarbeitung nicht für die Adreßberechnung verwendet wird.
- Eine Technik zur Hochgeschwindigkeitsverarbeitung von Relativsprungbefehlen ist in IBM Technical Disclusure Bulletin, Ausgabe 20, Nummer 4, September 1977, Seiten 1284-1285 beschrieben. Bei dieser Technik berechnet der Assembler die niedrigsten vier Bit der Bestimmungsadresse und fügt sie anstatt der tatsächlichen Verschiebung in den Befehl ein, und abhängig von der Sprungrichtung und eines Vergleichs der vier niedrigsten Bits der Bestimmungsadresse mit den niedrigsten vier Bit des Programmzählers werden die verbleibenden zwölf Bit entweder inkrementiert oder dekrementiert. Die Inkrementierung wird durch eine gewöhnliche 16- Bit-Inkrementlogik durchgeführt und die Dekrementierung wird unter Verwendung einer Acht-Bit-ALU und einem zusätzlichen Vier-Bit-Dekrementer durchgeführt.
- Dementsprechend ist es eine Aufgabe der Erfindung, einen Mikrocomputer zu schaffen, der die oben beschriebenen Nachteile der bekannten vermeidet.
- Eine weitere Aufgabe der Erfindung liegt in der Schaffung eines Datenprozessors, der in der Lage ist, eine Zweigbestimmungsadresse eines Relativadressenzweiges mit hoher Geschwindigkeit und mit einer einfachen Zusatzschaltung zu berechnen.
- Diese Aufgaben werden durch einen Datenprozessor gemäß Anspruch 1 gelöst; die abhängigen Ansprüche betreffen weitere Entwicklungen der Erfindung.
- Die obengenannten und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung der bevorzugten Ausführungsform der Erfindung mit Bezug auf die beigefügten Zeichnungen deutlich.
- Fig. 1 ist ein Blockdiagramm einer Ausführungsform des Datenprozessors gemäß der Erfindung;
- Fig. 2 ist ein Schaltungsdiagramm der Steuerschaltung von Fig. 1; und
- Fig. 3 zeigt die Struktur der Maschinensprache des Relativadresszweigbefehls, die in der Ausführungsform gemäß Fig. 2 verwendet wird.
- Bezugnehmend auf Fig. 1 umfaßt ein erfindungsgemäßer Datenprozessor einen Adreßbus 10, der zur Übertragung einer Adreßinformation zum Zugriff auf einen Speicher 12, der mit dem Adreßbus 10 gekoppelt ist, verwendet wird. In diesem Ausführungsbeispiel ist der Adreßbus 10 vom Paralleltyp mit einer Breite von 16 Bit. Der Speicher 12 ist ebenfalls mit einem Datenbus 20 verbunden, der zur Übertragung verschiedener Punkte von Daten innerhalb des Computers verwendet wird. In diesem Ausführungsbeispiel ist der Datenbus 20 vom Paralleltyp mit einer Breite von 8 Bit.
- Ein Paar Befehlsadreßregister 30 und 31 mit 8 Bit sind mit ihren Ausgängen mit dem Datenbus 20 verbunden. Des weiteren sind ein Paar Inkrementer/Dekrementer 40 und 41 mit 8 Bit mit ihren einen Eingängen mit dem Datenbus 20 und mit ihren anderen Eingängen mit den Ausgängen der Befehlsadreßregister 30 bzw. 31 verbunden. Die Ausgänge der Inkrementer/Dekrementer 40 und 41 sind mit entsprechenden Eingängen eines Paars von Adreßhalteeinrichtungen 50 und 51 mit 8 Bit verbunden. Diese Adresshalteeinrichtungen 50 und 51 sind mit ihren Ausgängen mit den acht niederwertigen Bits bzw. mit den acht höherwertigen Bits des Adreßbusses 10 verbunden und ferner mit den Eingängen der Befehlsregister 30 bzw. 31.
- Des weiteren umfaßt der dargestellte Datenprozessor eine arithmetisch und logische Einheit (ALU) 60 mit einem Paar von 8-Bit-Eingängen, die mit den Ausgängen eines Paars temporärer Eingangsregister 61 und 62 mit acht Bit verbunden sind, die ihrerseits mit ihren Eingängen mit dem Datenbus 20 verbunden sind. Die ALU 60 hat einen Acht-Bit-Ausgang, der mit dem Eingang eines temporären Ausgangsregisters 63 mit 8 Bit verbunden ist, dessen Ausgang mit dem Datenbus 20 verbunden ist.
- Das höchstwertige Bit (MSB) 64 des Temporärregisters 61 wird einer Steuerschaltung 70 zugeführt, die ferner ein Übertragsignal 62 von der ALU 60 erhält, ein weiteres Übertragsignal 66 vom Inkrementer/Dekrementer 40 und ein Steuersignal 67, das einen Relativadreßzweigbefehl anzeigt. Die Steuerschaltung 70 kann auf die obengenannten vier Signale antworten zur Erzeugung eines Inkrementsignals 71 oder eines Dekrementsignals 72 für den Inkrementer/Dekrementer 41.
- Insbesondere speichern die Befehlsadreßregister 30 und 31 die Adresse eines im Speicher 12 gespeicherten und aus dem Speicher 12 zu lesenden Befehls derart, daß das Register 30 die niederwertigen acht Bit der Adresse und das Register 31 die höherwertigen acht Bit derselben Adresse speichern. Andererseits erhalten die temporären Eingangsregister 61 und 62 jeweils über den Datenbus 20 die in die Alu 60 einzugebenden Daten und geben dann die temporär gehaltenen Daten an die Alu 60. Gleichzeitig wird das Signal 64 des höchstwertigen Bits (MSB) der Steuerschaltung 70 vom Temporärregister 61 zugeführt. Beispielsweise addiert die ALU 60 das von den Temporärregistern 61 und 62 zugeführte Datenpaar und gibt ein Datensignal bezüglich des Resultates der Addition durch das Temporär-Ausgangsregister 63 an den Datenbus 20 aus. Gleichzeitig mit der Additionsoperation erzeugt die ALU 60 ein Übertragssignal 65 für die Steuerschaltung 70, falls ein Übertrag aufgetreten ist.
- Die Inkrementer/Dekrementer 40 und 41 erhalten jeweils die auf den Datenbus 20 ausgegebenen Daten und geben dann die Daten an die Adresshalteeinrichtungen 50 bzw. 51 aus. Wenn desweiteren das Inkrementsignal 71 durch die Steuerschaltung 70 erzeugt wird, inkrementiert der Inkrementer/Dekrementer 41, der die höherwertige Hälfte der Daten erhält, den Inhalt des höherwertigen Befehlsadreßregisters 31, um eine Inkrement-Adreßinformation an die Adreßhalteeinrichtung 51 auszugeben.
- Wenn durch die Steuerschaltung 70 das Dekrementsignal 72 erzeugt wird, dekrementiert der Inkrementer/Dekrementer 41 den Inhalt des Registers 31, um eine Dekrement-Adreßinformation an die Adreßhalteeinrichtung 51 auszugeben. Diese Adreßhalteeinrichtungen 50 und 51 halten jeweils die Eingangsadreßinformation von 8 Bit und geben dann die gehaltene Adresse an den Adreßbus 10 in Form von 16 Bit aus.
- Bezugnehmend auf Fig. 2 ist dort ein Schaltungsdiagramm der Steuerschaltung 70 dargestellt. Die dargestellte Steuerschaltung 70 umfaßt eine UND-Schaltung 74 mit drei Eingängen, die so geschaltet ist, daß sie an ihrem ersten Eingang das Steuersignal 67 erhält, das die Relativadreßzweigbefehle angibt, an ihrem zweiten Eingang das Übertragsignal 65, das von der ALU 60 ausgegeben wurde, und an ihrem dritten Eingang über einen Inverter 76 das MSB-Signal 64, das vom Temporäreingangsregister 61 zugeführt wird. Ein Ausgang der UND-Schaltung 74 ist mit einem Eingang einer ODER- Schaltung 73 verbunden, deren anderer Eingang zum Empfang des Übertragsignals 66, das vom Inkrementer/Dekrementer 40 ausgegeben wird, geschaltet ist. Die ODER-Schaltung 73 erzeugt das Inkrementsignal 71, das dem Inkremter/Dekrementer 41 zugeführt wird. Die Steuerschaltung 70 umfaßt ferner eine weitere UND-Schaltung 75 mit drei Eingängen, die das Steuersignal 67 und das MSB-Signal 64 und ferner das Übertragsignal 65 über einen weiteren Inverter 77 erhält. Diese UND-Schaltung 75 erzeugt das Dekrementsignal 72 für den Inkrementer/Dekrementer 41.
- Bezugnehmend auf Fig. 3 ist dort ein Beispiel einer Maschinensprache der Relativadreßzweigbefehle dargestellt. Der Zweigbefehl umfaßt zwei Bytes, wobei das erste Byte aus einem Operationscode (OPC) besteht. Das zweite Byte bezeichnet eine Zweigrelativadresse, die in ein höchstwertiges Bit (MSB) und andere sieben Bit unterteilt ist und wie folgt definiert ist: wenn das MSB "0" ist, wird befohlen, zu der Adresse zu verzweigen, die durch Addition der aktuellen Adresse mit den unteren sieben Bit des zweiten Byte erhalten wird. Wenn das MSB "1" ist, wird befohlen, zu der Adresse zu verzweigen, die durch Addition des Datums in Komplementform der unteren sieben Bit des zweiten Byte zu der aktuellen Adresse erhalten wird (d. h. durch Subtraktion des Datums der unteren sieben Bit des zweiten Byte von der aktuellen Adresse). Diese Operation für den Zweigbefehl wird unter Steuerung eines Sequenzkontrollers (nicht dargestellt) als Resultat der Dekodierung des Operationskodes, der im ersten Byte enthalten ist, durchgeführt.
- Im Folgenden wird der Betrieb erläutert. Wenn der Relativadresszweigbefehl erfaßt wird, wird das Steuersignal 67 auf den hohen Pegel "1" gebracht. Des weiteren wird das Datum des zweiten Bytes des Relativadreßbefehls, wie in Fig. 3 dargestellt ist, im Temporäreingangsregister 61 gespeichert, und das niedrigstwertige Byte der Befehlsadresse, die im Befehlsadreßregister 30 enthalten ist, wird über den Datenbus 20 im Temporär-Eingangsregister 62 gespeichert. Das in den Temporärregistern 61 und 62 gespeicherte Datenpaar wird der ALU 60 zugeführt, wo das Paar der Daten addiert wird. Das Resultat der Addition wird an das Temporär-Ausgangsregister 63 ausgegeben und dort gehalten und anschließend über den Datenbus 20 dem niedrigerwertigen Inkrementer/Dekrementer 40 zugeführt. Zu diesem Zeitpunkt führt der Inkrementer/Dekrementer 40 weder den Inkrementvorgang noch den Dekrementvorgang durch, so daß das Ergebnis der Addition der Adreßhalteeinrichtung 50 so wie es ist eingegeben wird. Gleichzeitig mit dieser Operation erzeugt die die Signale 64 und 65 erhaltende Steuerschaltung 70 das Inkrementsignal 71 oder das Dekrementsignal 72 für den höherwertigen Inkrementer/Dekrementer 41. Falls insbesondere das MSB-Signal 64 des Temporär-Eingangsregisters 61 auf "0" ist, wenn das Übertragsignal 65 durch die ALU 60 erzeugt wird, wird das Inkrementsignal 71 erzeugt, da das Steuersignal 67 auf dem hohen Pegel "1" ist. Andererseits, falls das MSB-Signal 64 des Temporär-Eingangsregisters 61 auf "1" ist, wenn das Übertragsignal 65 nicht durch die ALU 60 erzeugt wird, wird das Dekrementsignal 72 erzeugt.
- Falls das Inkrementsignal 71 dem höherwertigen Inkrementer/Dekrementer 41 eingegeben wird, wird der Inhalt des höherwertigen Befehlsadreßregisters 31 durch den höherwertigen Inkrementer/Dekrementer 41 inkrementiert, so daß das inkrementierte Datum der Adreßhalteeinrichtung 51 ausgegeben wird. Andererseits, wenn das Dekrementsignal 72 dem höherwertigen Inkrementer/Dekrementer 41 eingegeben wird, wird der Inhalt des höherwertigen Befehlsadreßregisters 31 durch den Inkrementer/Dekrementer 41 dekrementiert, und das dekrementierte Datum wird der Adreßhalteeinrichtung 51 ausgegeben. In den anderen Fällen als den oben beschriebenen, da das Ergebnis der durch die ALU 60 durchgeführten Adreßberechnung für die unteren acht Bit der Adresse die oberen acht Bit der Adresse nicht beeinflußt, werden weder das Inkrementsignal 71 noch das Dekrementsignal 72 erzeugt. Insbesondere wird der Inhalt des höherwertigen Befehlsadreßregisters 31 der Adreßhalteeinrichtung 51 ohne Veränderung eingegeben.
- Wenn somit das MSB-Signal 64 auf "0" ist, wird die absolute Zweigbestimmungsadresse von 16 Bit erhalten durch Addieren des gesamten 16-Bit-Inhalts der Befehlsadreßregister 30 und 31 mit den unteren sieben Bit des zweiten Byte des Relativadreß-Zweigbefehls und dann in den Adreßhalteeinrichtungen 50 und 51 in geteilter Form gehalten. Die Adresse mit insgesamt 16 Bit, die in den Adreßhalteeinrichtungen 50 und 51 gehalten ist, wird dem Adreßbus 10 und somit dem Speicher 12 ausgegeben. Falls des weiteren das MSB-Signal 64 auf "1" ist, wird die absolute Zweigbestimmungsadresse von 16 Bit durch Subtrahieren der unteren sieben Bit des zweiten Byte des Relativadreßbefehls von dem 16-Bit-Inhalt der Befehlsadreß-Register 30 und 31 erhalten und dann in den Adreßhalteeinrichtungen 50 und 51 gehalten, so daß sie zum Adreßbus 10 übertragen werden.
- Wenn das Steuersignal 67 auf dem unteren Pegel "0" ist, der eine nichtverzweigte Operation anzeigt, werden die UND-Tore 74 und 75 geschlossen, so daß weder das Inkrementsignal noch das Dekrementsignal durch die UND-Tore 74 und 75 erzeugt werden. In diesem Fall erhöht bei jeder Operation, die durch die ALU 60 durchgeführt wird, der niedrigerwertige Inkrementer/Dekrementer 40 den Inhalt des niedrigerwertigen Adreßregisters 30 und gibt das inkrementierte Datum an die Adreßhalteeinrichtung 50. Als Ergebnis der Inkrementierung, falls das Übertragsignal 66 durch den niedrigerwertigen Inkrementer/Dekrementer 40 erzeugt wird, wird das Übertragsignal 66 über eine ODER-Schaltung 73 als das inkrementierte Signal 71 dem höherwertigen Inkrementer/Dekrementer 41 zugeführt. Zu diesem Zeitpunkt inkrementiert dieser Inkrementer/Dekrementer 41 den Inhalt des höherwertigen Befehlsadreßregisters 31 und gibt das inkrementierte Datum der Adreßhalteeinrichtung 51 aus. Sofern das Inkrementsignal 71 nicht eingegeben wird, liefert der Inkrementer/Dekrementer 41 den Inhalt des Registers 31 der Adreßhalteeinrichtung 51 ohne Änderung. Dementsprechend arbeiten die Schaltungen 30, 31, 40, 41, 50 und 51 als Programmzähler mit 16 Bit in einem normalen sequentiellen Programmbetrieb.
Claims (9)
1. Datenprozessor, bei dem eine
Speicherzugriffs-Adreßinformation eine größere Bitlänge als die im Prozessor
verarbeiteten Daten aufweist, mit einem Adreßbus (10), einem
Datenbus (20), einem ersten und einem zweiten
Befehlsadreßregister (31, 30), die mit dem Adreßbus (10) und dem
Datenbus (20) verbunden sind und für das jeweilige
Speichern eines höherwertigen Teils und eines niederwertigen
Teils der Adresse eines zu lesenden Befehls verwendet
werden, einer arithmetischen und logischen Einheit (60) die
mit dem Datenbus (20) verbunden ist und eine Berechnung
aufgrund des Inhaltes des zweiten Befehlsadreßregisters
und eines Offset, der in einem
Relativadreß-Verzweigungsbefehl enthalten ist, durchführen kann, einer
Steuerschaltung (70), die mit der arithmetischen und logischen Einheit
derart verbunden ist, um ein Inkrementierungssignal (71)
oder ein Dekrementierungssignal (72) aufgrund des
Ergebnisses der Berechnung durch die arithmetische und logische
Einheit zu erzeugen, einem Inkrementer/Dekrementer (41),
der über den Datenbus mit dem ersten Befehlsadreßregister
(31) verbunden ist und durch das Inkrementsignal (71) und
das Dekrementsignal (72) derart gesteuert wird, daß der
Inhalt des ersten Befehlsadreßregisters (31) erhöht wird,
wenn das Inkrementsignal empfangen wird, und der Inhalt des
ersten Befehlsadreßregisters (31) vermindert wird, wenn
das Dekrementsignal empfangen wird.
2. Datenprozessor nach Anspruch 1,
mit ferner einem Speicher (12), der mit dem Adreßbus
gekoppelt ist, so daß erforderliche Informationen von einer
Position, die durch die über den Adreßbus übertragene
Adresse angegeben wird, ausgelesen werden kann.
3. Datenprozessor nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß der Datenbus
(20) und jedes der ersten und zweiten Befehlsadreßregister
(30, 31) N Bits aufweist.
4. Datenprozessor nach Anspruch 3,
mit ferner einem zweiten Inkrementer/Dekrementer (40), der
mit dem zweiten Befehlsadreßregister (30) verbunden ist,
wobei der erste und der zweite Inkrementer/Dekrementer (41,
40) mit ihren Ausgängen mit einer ersten und einer zweiten
Adreßhalteeinrichtungen (51, 50) mit N Bits verbunden ist,
die ihrerseits mit ihren Ausgängen mit den höherwertigen N
Bits und den niedrigerwertigen N Bits des Adreßbusses (10)
verbunden sind und die ferner mit dem ersten bzw. dem
zweiten Befehlsadreßregister (31, 30) verbunden sind.
5. Datenprozessor nach Anspruch 3,
wobei die arithmetische und logische Einheit (60) einen
ersten Eingang mit N Bit aufweist, der über ein erstes
Temporär-Eingangsregister (60) mit dem Datenbus verbunden ist,
so daß er einen N Bit-Teil des
Relativadressen-Verzweigungsbefehls erhält, einschließlich des Offsets, und einen
N Bit-Eingang, der über ein zweites
Temporär-Eingangsregister (62) mit dem Datenbus verbunden ist, so daß er den
Inhalt des zweiten Befehlsadressenregisters (30) erhält.
6. Datenprozessor nach Anspruch 5,
wobei der N Bit-Teil, der im ersten
Temporär-Eingangsregister (61) gehalten wird, das höchstwertige Bit (MSB)
umfaßt, das angibt, ob eine Addition oder eine Subtraktion
durchgeführt werden soll, um die
Verzweigungsbestimmungsadresse aus der Relativ-Verzweigungsadresse zu erhalten,
und die anderen (N-1) Bit die relative Verzweigungsadresse
angeben, und wobei die Steuerschaltung (70) ein
Übertragssignal (65) erhält, das durch die arithmetische und
logische Einheit (60) erzeugt wird, und das Signal (64) mit dem
höchstwertigen Bit des ersten Temporär-Eingangsregisters,
wobei die Steuerschaltung selektiv das Inkrementsignal (71)
oder das Dekrementsignal (72) in Abhängigkeit von einer
Logikkombination der beiden Eingangssignale erzeugt.
7. Datenprozessor nach Anspruch 6,
wobei die Steuerschaltung (70) eine erste UND-Schaltung
(74) aufweist, die an ihrem ersten Eingang ein
Übertragssignal (65) von der arithmetischen und logischen Schaltung
(60) erhält und an ihrem zweiten Eingang über einen
Inverter (76) das Signal (64) des höchstwertigen Bits des ersten
Temporär-Eingangsregisters (61) erhält zur Erzeugung des
Inkrementsignals (71), und eine zweite UND-Schaltung (75),
die an ihrem ersten Eingang über einen weiteren Inverter
(77) das Übertragssignal (65) von der arithmetischen und
logischen Einheit (60) und an ihrem zweiten Eingang das
Signal (64) des höchstwertigen Bits des ersten
Temporär-Eingangsregisters (61) erhält zum Zweck der Erzeugung des
Dekrementsignals (72).
8. Datenprozessor nach Anspruch 7,
wobei jede der ersten und zweiten UND-Schaltungen (74, 75)
einen dritten Eingang aufweist, der ein Steuersignal (67)
erhält, das den Relativadressen-Verzweigungsbefehl angibt.
9. Datenprozessor nach Anspruch 3,
wobei die arithmetische und logische Einheit (60) den
Inhalt des zweiten Befehlsadreßregisters (30) und den
Offset, der in einem Relativadressen-Verzweigungsbefehl
enthalten ist, addieren kann, so daß das Additionsresultat an
den Adreßbus (10) als die niedrigeren N Bits der
Verzweigungs-Bestimmungsadresse ausgegeben wird, und wobei der
Inkrementer/Dekrementer (41) das
inkrementierte/dekrementierte Signal an den Adreßbus als die höheren N Bits der
Verzweigungs-Bestimmungsadresse ausgibt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61258917A JPH0831033B2 (ja) | 1986-10-29 | 1986-10-29 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3750014D1 DE3750014D1 (de) | 1994-07-14 |
DE3750014T2 true DE3750014T2 (de) | 1995-01-12 |
Family
ID=17326823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3750014T Expired - Fee Related DE3750014T2 (de) | 1986-10-29 | 1987-10-29 | Datenprozessor mit der Fähigkeit, die Verzweigungsadresse sofort zu berechnen in einer Relativadressenverzweigung. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0265948B1 (de) |
JP (1) | JPH0831033B2 (de) |
DE (1) | DE3750014T2 (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4340551A1 (de) * | 1993-11-29 | 1995-06-01 | Philips Patentverwaltung | Programmspeichererweiterung für einen Mikroprozessor |
EP0730220A3 (de) * | 1995-03-03 | 1997-01-08 | Hal Computer Systems Inc | Verfahren und Vorrichtung zur schnellen Ausführung von Verzweigungsbefehlen |
US5958039A (en) * | 1997-10-28 | 1999-09-28 | Microchip Technology Incorporated | Master-slave latches and post increment/decrement operations |
JP4920960B2 (ja) * | 2005-11-24 | 2012-04-18 | 朝日ウッドテック株式会社 | 木質床構造および木質床の施工方法 |
JP2007327290A (ja) * | 2006-06-09 | 2007-12-20 | Yuka Sansho Kenzai Kk | 床構造の構築方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3774166A (en) * | 1963-09-30 | 1973-11-20 | F Vigliante | Short-range data processing transfers |
JPS5343448A (en) * | 1976-10-01 | 1978-04-19 | Hitachi Ltd | Lsi sequence control circuit |
JPS5563442A (en) * | 1978-11-07 | 1980-05-13 | Fujitsu Ltd | Address set control system |
JPS55103653A (en) * | 1979-01-31 | 1980-08-08 | Nec Corp | Data processing unit |
US4449185A (en) * | 1981-11-30 | 1984-05-15 | Rca Corporation | Implementation of instruction for a branch which can cross one page boundary |
JPS5911451A (ja) * | 1982-07-13 | 1984-01-21 | Nec Corp | 分岐制御方式 |
JPS617945A (ja) * | 1984-06-22 | 1986-01-14 | Usac Electronics Ind Co Ltd | 実効アドレス計算方式 |
-
1986
- 1986-10-29 JP JP61258917A patent/JPH0831033B2/ja not_active Expired - Lifetime
-
1987
- 1987-10-29 DE DE3750014T patent/DE3750014T2/de not_active Expired - Fee Related
- 1987-10-29 EP EP87115910A patent/EP0265948B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0265948A2 (de) | 1988-05-04 |
DE3750014D1 (de) | 1994-07-14 |
JPH0831033B2 (ja) | 1996-03-27 |
EP0265948A3 (en) | 1990-05-02 |
JPS63111535A (ja) | 1988-05-16 |
EP0265948B1 (de) | 1994-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3687724T2 (de) | Digitalprozessorsteuerung. | |
DE3785897T2 (de) | Steuervorrichtung zum vorabruf von befehlen. | |
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE69613071T2 (de) | Prozessor und Kontrollverfahren zur Ausführung richtiger Saturationsoperation | |
DE3688802T2 (de) | Arithmetische Einheit mit einfachem Überlaufdetektionssystem. | |
DE3688824T2 (de) | Datenverarbeitungssystem. | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE2835095C2 (de) | Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren | |
DE2948285A1 (de) | Adressensteuersystem fuer softwaresimulation | |
DE1549480A1 (de) | Datenverarbeitungsanlage | |
DE3751108T2 (de) | Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. | |
DE69231237T2 (de) | Datenverarbeitungsvorrichtung | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE3856139T2 (de) | Mikroprozessor | |
DE3788290T2 (de) | Arithmetische Schaltung, welche Gleitkommaoperationen und Festkommaoperationen ausführen kann. | |
DE68927652T2 (de) | Dividierschaltung für ganze Zahlen, versehen mit einer Überlaufdetektionsschaltung | |
DE2533737A1 (de) | Datenprozessor | |
DE3852196T2 (de) | Gruppenbezogenes Adressierungssystem. | |
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE3307194C2 (de) | ||
DE3750014T2 (de) | Datenprozessor mit der Fähigkeit, die Verzweigungsadresse sofort zu berechnen in einer Relativadressenverzweigung. | |
DE3882425T2 (de) | Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |