WO1998043161A1 - Risc processor - Google Patents

Risc processor Download PDF

Info

Publication number
WO1998043161A1
WO1998043161A1 PCT/DE1998/000619 DE9800619W WO9843161A1 WO 1998043161 A1 WO1998043161 A1 WO 1998043161A1 DE 9800619 W DE9800619 W DE 9800619W WO 9843161 A1 WO9843161 A1 WO 9843161A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
data
alu
input
command
Prior art date
Application number
PCT/DE1998/000619
Other languages
German (de)
French (fr)
Inventor
Peter Haas
Original Assignee
Siemens Aktiengesellschaft
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 Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO1998043161A1 publication Critical patent/WO1998043161A1/en

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/30098Register arrangements
    • G06F9/30101Special purpose registers

Definitions

  • the invention relates to an arrangement of a reduced instruction set computer (RISC) processor according to the preamble of claim 1.
  • RISC reduced instruction set computer
  • Multi-layered and complex switching procedures or data protocols in switching systems require modules that are matched to their intended use. On these modules e.g. pure logic circuits or integrated circuits intended for multiple uses.
  • the switching procedures to be processed in the switching systems and in particular by the interface modules or the data protocols to be processed are subject to increased requirements with regard to the processing speed.
  • modules for example ISDN interface modules, reduced instruction set computer (RISC) processors are preferably used for short processing times.
  • RISC reduced instruction set computer
  • a further disadvantage when using the known RISC processors is that for each processor type a special high-level language compiler tailored to its respective architecture has to be used in order to be able to interleave processing pauses occurring with longer instruction sequences with instructions from subsequent or previous program units.
  • the invention is based on the object of specifying a further RISC processor architecture which does not have the disadvantages mentioned above.
  • the T ASK is solved by the features of claim 1 or the third
  • the invention has the advantage that commands can be processed faster in short programs.
  • the invention has the advantage that programming can be carried out more clearly, that is to say with less nesting, and assembly programming is thereby simplified.
  • FIG. 1 shows a conventional command sequence for processing partial programs
  • FIG. 2 shows a structure of a RISC processor
  • FIG. 3 shows a structure of an execute unit
  • FIG. 4 shows a command sequence.
  • FIG. 1 shows an instruction sequence as it must be processed in previously known RISC processors.
  • the individual stages SC, ID, RR, E, DT and RW of the pipeline of the RISC processor are listed in the lines. The individual stages and the interaction of these are explained in more detail in FIG. 2.
  • the "beginning" of the pipeline is shifted one column to the right in the second and the following lines.
  • the columns each represent the time period in which commands are executed in the individual units of the pipeline and the data / results are forwarded to the subsequent processing unit at the beginning of the next time period.
  • R0, Rl, R15; or R15, R3, R4 - the register RO should be linked with Rl logically "AND".
  • the intermediate result of the first instruction of the "first" program unit is Write unit RW stored in register file RF; at the same time, the second instruction of the "first" part program is decoded in the instruction decoder ID.
  • Clock 7 In the seventh clock period, the data for the second instruction is decoded by the register read RR.
  • FIG. 2 schematically shows a structure of a reduced instruction set computer (RISC) processor.
  • RISC reduced instruction set computer
  • the essential functional units arranged for a RISC processor in a pipeline structure are arranged. These functional units are, for example, a sequence controller SC, an instruction decoder ID, a register read unit RR, an execute unit E with a first unit ALU, a memory (eg accumulator) A, a data transfer unit DT, a register-write unit RW, an input and output unit I / O and a register file RF.
  • This architecture of the RISC processor is designed in such a way that a pipeline is formed with the functional units SC, ID, RR, DT and RW and a new command can be fed into it with each cycle.
  • the sequence controller essentially determines an address in order to read out an instruction code, for example disturb R0, Rl [R2], from an OPCODE memory (for example a ROM).
  • This command code means: store register content R0 in local random access memory RAM with address Rl indexed on register R2.
  • the command code is passed on to the instruction decoder ID.
  • the instruction decoder ID then provides commands for the individual functional units of the pipeline of the RISC processor.
  • the register read unit RR based on commands from the instruction decoder ID from the register file RF, three source registers (data (content of R0 in SPC); operand Rl (Rl 1 ". 1 1 TJ ⁇ . ⁇ 1
  • Accumulator A can be used to call up a temporarily stored result for a subsequent execution step from Execute unit E.
  • the ALU, the source and the result from a calculation that was carried out in the execute unit E are forwarded to the data transfer unit DT.
  • the command CMD is transfer-data-unit decided in the 'DT whether a result in local RAM, or a peripheral unit through the I / O inter- face is forwarded.
  • the I / O interface also represents the interface to other external functional units.
  • An I / O bus that is connected to the interface has addresses, read and write signals. Any peripheral units can be addressed to the I / O interface using read or write commands.
  • the result of the data transfer unit DT is forwarded to the read / write unit RW and is stored by it in the register file RF.
  • FIG. 3 shows the structure of the execute unit E.
  • the data sources CMD are on the input side.
  • SRC and SRC with a third changeover switch EM3 eg a multiplexer, CMD.
  • SRI and ALU.SRC1 connected to a first switch EMI eg multiplexer and CMD.SR2 and ALUSRC2 connected to a second switch multiplexer EM2.
  • ALU arithmetic and logic unit ALU, as described in FIG. 1, all arithmetic and logic operations are processed.
  • First data are passed on to the subsequent pipeline stage via an output register ROUT and a source register RSRC.
  • the ALU output is connected directly to the input of the memory A, which comprises at least one register or is an accumulator.
  • the memory A serves as a separate memory for the first data which are present at the output of the first unit ALU.
  • the first changeover switch EMI Via the first changeover switch EMI, with the help of a first command CMD.SRC1, either the first data from the accumulator A or that from the register File RF read out second data are forwarded to a first operand input OP1 of the first unit ALU.
  • either the second data from the ALU.SRC2 or the first data from the memory A can be forwarded to an operand input OP 2 by a second changeover switch EM2 when a second command CMD.SR2 is present.
  • the content of the accumulator A can also via the multiplexer EM3 depending on the control signal CMD.
  • SRC as the second data source via register RSRC to the output of Execute unit E.
  • the first data of the first unit ALU are stored in the accumulator A when the control signal CMD.DES is present.
  • FIG. 4 shows an instruction sequence within the pipeline of the RISC processor.
  • the individual stages SC, ID, RR, E, DT and RW of the pipeline are listed in the lines.
  • the "beginning" of the pipeline is shifted one column to the right in the second line.
  • the columns each represent the time period in which commands are executed in the individual units of the pipeline and the data / results are forwarded to the subsequent processing unit at the beginning of the next time period.
  • the register R0 is linked with Rl logically "AND”.
  • the result of the "AND" link with the register R3 is logically "OR” linked and the result is stored in register R4.
  • the partial program is read into the pipeline and processed as follows: Bar 1:
  • the logic operation is carried out in the execute unit E and the result is stored in the accumulator A; at the same time the data for the second command is read from the register file by the register read unit RR.
  • Clock 5 In the fifth clock period, the second unit is ORed with the contents of the accumulator and the data register in the execute unit E in the execute unit.
  • Cycle 6, 7 In the sixth cycle period, the result of the second command passes through the data transfer unit DT and in the seventh cycle period the result of the second command is stored in the register file RF via the register-write RW unit.

Abstract

The invention relates to an RISC processor with an accumulator which is directly connected to an execute unit. Said accumulator allows the intermediate results of arithmetic or logical operations to be processed further in the execute unit again, straightaway in the next processing procedure.

Description

Beschreibungdescription
RISC-ProzessorRISC processor
Die Erfindung betrifft eine Anordnung eines Reduced Instructuion Set Computer (RISC) -Prozessors gemäß dem Oberbegriff des Patentanspruchs 1.The invention relates to an arrangement of a reduced instruction set computer (RISC) processor according to the preamble of claim 1.
Vielschichtige und komplexe Vermittlungsprozeduren, bzw. Da- tenprotokolle in Vermittlungsanlagen erfordern jeweils auf ihren Verwendungszweck abgestimmte Baugruppen. Auf diesen Baugruppen sind z.B. reine Logikschaltkreise oder für Mehrfachausnutzungen bestimmte integrierte Schaltkreise angeordnet . An die in den Vermittlungsanlagen und insbesondere durch die Schnittstellenbaugruppen abzuarbeitenden Vermittlungsprozeduren bzw. abzuarbeitende Datenprotokolle werden erhöhte Anforderungen bezüglich der Verarbeitungsgeschwindigkeit gestellt. Für Baugruppen, beispielsweise ISDN Schnittstellenbaugruppen werden für einzuhaltende kurze Verarbeitungszeiten bevorzugt Reduced Instructuion Set Computer (RISC) -Prozessoren eingesetzt.Multi-layered and complex switching procedures or data protocols in switching systems require modules that are matched to their intended use. On these modules e.g. pure logic circuits or integrated circuits intended for multiple uses. The switching procedures to be processed in the switching systems and in particular by the interface modules or the data protocols to be processed are subject to increased requirements with regard to the processing speed. For modules, for example ISDN interface modules, reduced instruction set computer (RISC) processors are preferably used for short processing times.
Die bisher bekannten RISC-Prozessoren bringen einen Nachteil mit sich, daß bei kürzeren Programmabschnitten die Ergebnisse von logischen oder arithmetischen Operationen erst nach meh- reren Befehlen wieder zur Verfügung stehen.The previously known RISC processors have the disadvantage that, in the case of shorter program sections, the results of logical or arithmetic operations are only available again after several instructions.
Ein weiterer Nachteil bei der Verwendung der bekannten RISC- Prozessoren besteht darin, daß je Prozessortyp ein spezieller auf seine jeweilige Architektur zugeschnittener Hochsprachencompiler verwendet werden muß, um bei längeren Befehlssequen- zen auftretende Verarbeitungspausen mit Befehlen von nachfolgenden oder vorangegangenen Teilprogrammen verschachteln zu können.A further disadvantage when using the known RISC processors is that for each processor type a special high-level language compiler tailored to its respective architecture has to be used in order to be able to interleave processing pauses occurring with longer instruction sequences with instructions from subsequent or previous program units.
Der Erfindung liegt die Aufgabe zugrunde, eine weitere RISC- Prozessor Architektur anzugeben, die die oben angegebenen Nachteile nicht aufweisen. Die Aufgabe wird durch die Merkmale des Patentanspruchs 1 oder 3 gelöst .The invention is based on the object of specifying a further RISC processor architecture which does not have the disadvantages mentioned above. The T ASK is solved by the features of claim 1 or the third
Die Erfindung bringt den Vorteil mit sich, daß Befehle in kurzen Programmen schneller abgearbeitet werden. Die Erfindung bringt den Vorteil mit sich, daß eine Programmierung übersichtlicher, daß heißt mit einer geringeren Ver- schachtelung erfolgen kann und dadurch eine Assembler Programmierung vereinfacht wird.The invention has the advantage that commands can be processed faster in short programs. The invention has the advantage that programming can be carried out more clearly, that is to say with less nesting, and assembly programming is thereby simplified.
Weitere Besonderheiten der Erfindung werden aus der nachfolgenden näheren Erläuterung zu einem Ausführungsbeispiel anhand von Zeichnungen ersichtlich.Further special features of the invention will become apparent from the following detailed explanation of an exemplary embodiment with reference to drawings.
Es zeigen:Show it:
Figur 1 eine herkömmliche Befehlfolge zur Abarbeitung von Teilprogrammen, Figur 2 einen Aufbau eines RISC-Prozessors, Figur 3 einen Aufbau einer Execute-Einheit und Figur 4 einen Befehlsablauf.1 shows a conventional command sequence for processing partial programs, FIG. 2 shows a structure of a RISC processor, FIG. 3 shows a structure of an execute unit and FIG. 4 shows a command sequence.
In Figur 1 ist eine Befehlsfolge dargestellt, wie sie bei bisher bekannten RISC-Prozessoren abgearbeitet werden müssen. In dieser Darstellung sind jeweils in den Zeilen die einzel- nen Stufen SC, ID, RR, E, DT und RW der Pipeline des RISC- Prozessors aufgeführt . Die einzelnen Stufen und das Zusammenwirken dieser sind in Figur 2 näher erläutert. Der "Anfang" der Pipeline ist in der zweiten und den folgenden Zeilen jeweils um eine Spalte nach Rechts verschoben. Die Spalten re- präsentieren jeweils die Zeitperiode in denen Befehle in den einzelnen Einheiten der Pipeline ausgeführt werden und die Daten/Ergebnisse zu Beginn der nächsten Zeitperiode an die anschließende Verarbeitungseinheit weitertransportiert werden. Bei einem Teilprogramm - and R0, Rl, R15; or R15, R3, R4 - soll das Register RO mit Rl logisch "UND" verknüpft werden. In einem nachfolgend zweiten Verarbeitungsschritt wird das Ergebnis der "UND" Verknüpfung mit dem Register R3 logisch "ODER" verknüpft und das Ergebnis im Register R4 gespeichert. Dieser zweite Verarbeitungsschritt kann jedoch erst erfolgen wenn auf das Zwischenergebnis des ersten Verarbeitungsschrittes im Register-File RF zugegriffen werden kann. Das "erste" Teilprogramm wird in die Pipeline wie folgt ein- gelesen und bearbeitet : Takt 1:FIG. 1 shows an instruction sequence as it must be processed in previously known RISC processors. In this illustration, the individual stages SC, ID, RR, E, DT and RW of the pipeline of the RISC processor are listed in the lines. The individual stages and the interaction of these are explained in more detail in FIG. 2. The "beginning" of the pipeline is shifted one column to the right in the second and the following lines. The columns each represent the time period in which commands are executed in the individual units of the pipeline and the data / results are forwarded to the subsequent processing unit at the beginning of the next time period. With a partial program - and R0, Rl, R15; or R15, R3, R4 - the register RO should be linked with Rl logically "AND". In a subsequent second processing step, the result of the "AND" link with the register R3 is logically "OR" linked and the result is stored in the register R4. However, this second processing step can only take place if the intermediate result of the first processing step can be accessed in the register file RF. The "first" part program is read into the pipeline and processed as follows: Bar 1:
In der ersten Taktperiopde wird die Adresse des ersten Befehls des "ersten" Teilsprogramms vom Sequence-Controller SC generiert . Takt 2:In the first cycle period, the address of the first command of the "first" part program is generated by the sequence controller SC. Bar 2:
In der zweiten Taktperiode wird der erste Befehl im In- struction-Decoder ID decodiert; gleichzeitig kann eine Adresse eines anderes Teilprogramms (Zeile 2) in die Pipeline in den Sequence-Controller eingelesen werden. Takt 3:In the second clock period, the first command is decoded in the instruction decoder ID; At the same time, an address of another program unit (line 2) can be read into the pipeline in the sequence controller. Bar 3:
In der dritten Taktperiode werden die Daten für den ersten Befehl vom Register-Read RR decodiert; gleichzeitig kann eine neue Adresse eines weiteren Teilprogramms (Zeile 3) in die Pipeline in den Sequence-Controllers eingelesen werden. Takt 4:In the third clock period, the data for the first instruction is decoded by the register read RR; At the same time, a new address of another part program (line 3) can be read into the pipeline in the sequence controller. Measure 4:
In der vierten Taktperiode wird die logische Verknüpfung in der Execute-Einheit E ausgeführt; gleichzeitig kann eine weitere Adresse eines neuen Teilprogamms (Zeile 4) in die Pipeline in den Sequence-Controller eingelesen werden. Takt 5:In the fourth clock period, the logic operation is carried out in the execute unit E; At the same time, another address of a new sub-program (line 4) can be read into the pipeline in the sequence controller. Bar 5:
In der fünften Taktperiode wird das Ergebnis in die Data- Transfer-Einheit eingelesen; gleichzeitig wird die Adresse des zweiten Befehls des "ersten" Teilprogramms in dem Sequence-Controller SC generiert. Takt 6:In the fifth cycle period, the result is read into the data transfer unit; at the same time the address of the second command of the "first" program unit is generated in the sequence controller SC. Bar 6:
In der sechsten Taktperiode wird das Zwischenergebnis des ersten Befehls des "ersten" Teilprogramms über die Register- Write-Einheit RW im Register-File RF abgelegt; gleichzeitig wird der zweite Befehl des "ersten" Teilprogramms im In- struction-Decoder ID decodiert . Takt 7: In der siebten Taktperiode werden die Daten für den zweiten Befehl von dem Register-Read RR decodiert.In the sixth cycle period, the intermediate result of the first instruction of the "first" program unit is Write unit RW stored in register file RF; at the same time, the second instruction of the "first" part program is decoded in the instruction decoder ID. Clock 7: In the seventh clock period, the data for the second instruction is decoded by the register read RR.
In der siebten Taktperiode wird die logische Verknüpfung in der Execute-Einheit E durchgeführt. Der Übersicht halber wurden die in der Pipeline ausgeführten Verarbeitungsschritte in den Zeilen 2 bis 4 nur angedeutet.In the seventh clock period, the logic operation is carried out in the execution unit E. For the sake of clarity, the processing steps carried out in the pipeline were only indicated in lines 2 to 4.
In Figur 2 ist schematisch ein Aufbau eines Reduced In- struction Set Computer (RISC) -Prozessors dargestellt.FIG. 2 schematically shows a structure of a reduced instruction set computer (RISC) processor.
In dieser Darstellung sind die wesentlichen für einen RISC- Prozessor in einer Pipelinestruktur angeordneten Funktionseinheiten angeordnet. Diese Funktionseinheiten sind zum Beispiel ein Sequenz-Controller SC, ein Instruction-Decoder ID, eine Register-Read-Einheit RR, eine Execute-Einheit E mit einer ersten Einheit ALU, ein Speicher (z.B. Akkumulator) A, eine Data-Transfer-Einheit DT, eine Register-Write-Einheit RW, eine Eingabe- und Ausgabeeinheit I/O sowie ein Register- File RF. Diese Architektur des RISC-Prozessors ist so ausgelegt, daß mit den Funktionseinheiten SC, ID, RR, DT und RW eine Pipeline gebildet wird und mit jedem Takt ein neuer Be- fehl in diese eingespeist werden kann.In this representation, the essential functional units arranged for a RISC processor in a pipeline structure are arranged. These functional units are, for example, a sequence controller SC, an instruction decoder ID, a register read unit RR, an execute unit E with a first unit ALU, a memory (eg accumulator) A, a data transfer unit DT, a register-write unit RW, an input and output unit I / O and a register file RF. This architecture of the RISC processor is designed in such a way that a pipeline is formed with the functional units SC, ID, RR, DT and RW and a new command can be fed into it with each cycle.
Der Sequence-Controller ermittelt im wesentlichen eine Adresse, um aus einem OPCODE-Speicher (z.B. ein ROM) einen Befehlscode z.B. störe R0, Rl [R2] auszulesen. Dieser Befehls- code bedeutet: speichere Registerinhalt R0 in lokalem Random Access Memory RAM mit Adresse Rl indiziert auf Register R2. Der Befehlscode wird an den Instruction-Decoder ID weitergereicht. Der Instruction-Decoder ID liefert dann Kommandos für die einzelnen Funktionseinheiten der Pipeline des RISC- Prozessors. In der Register-Read-Einheit RR werden aufgrund von Kommandos aus dem Instruktion-Decoder ID aus dem Register-File RF drei Source-Register (Daten (Inhalt von R0 in SPC) ; Operand Rl (Rl 1 «. 1 1 TJ φ . Φ 1 | 4 1The sequence controller essentially determines an address in order to read out an instruction code, for example disturb R0, Rl [R2], from an OPCODE memory (for example a ROM). This command code means: store register content R0 in local random access memory RAM with address Rl indexed on register R2. The command code is passed on to the instruction decoder ID. The instruction decoder ID then provides commands for the individual functional units of the pipeline of the RISC processor. In the register read unit RR, based on commands from the instruction decoder ID from the register file RF, three source registers (data (content of R0 in SPC); operand Rl (Rl 1 ". 1 1 TJ φ. Φ 1 | 4 1
Φ J Φ rl rH 5H H 4J * -rl ß < -H cα -H •HΦ J Φ rl rH 5H H 4J * -rl ß <-H cα -H • H
Figure imgf000007_0001
Figure imgf000007_0001
Mit dem Akkumulator A kann ein zwischengespeichertes Ergebnis für einen nachfolgenden Ausführungsschritt von der Execute- Einheit E abgerufen werden.Accumulator A can be used to call up a temporarily stored result for a subsequent execution step from Execute unit E.
Aus der Execute-Einheit E werden über die ALU, die Source und das Ergebnis aus einer Berechnung, die in der Execute-Einheit E durchgeführt wurde, an die Daten-Transfer-Einheit DT weitergeleitet. Entsprechend der Kommandos CMD wird in der 'Daten-Transfer-Einheit DT entschieden, ob ein Ergebnis im lokalen RAM oder einer Peripherieeinheit über die I/O Schnitt- stelle weitergeleitet wird.From the execute unit E, the ALU, the source and the result from a calculation that was carried out in the execute unit E are forwarded to the data transfer unit DT. In accordance with the command CMD is transfer-data-unit decided in the 'DT whether a result in local RAM, or a peripheral unit through the I / O inter- face is forwarded.
Die I/O Schnittstelle stellt gleichzeitig die Schnittstelle zu anderen externen Funktionseinheiten dar. Ein I/O Bus der mit der Schnittstelle verbunden ist, weist Adressen, Read- und Writesignale auf. An die I/O Schnittstelle können belie- bige Peripherieeinheiten über Read- oder Write-Befehle angesprochen werden.The I / O interface also represents the interface to other external functional units. An I / O bus that is connected to the interface has addresses, read and write signals. Any peripheral units can be addressed to the I / O interface using read or write commands.
Das Ergebnis der Daten-Transfer-Einheit DT wird an die Read- Write-Einheit RW weitergeleitet und von dieser im Register- File RF abgelegt.The result of the data transfer unit DT is forwarded to the read / write unit RW and is stored by it in the register file RF.
Fig. 3 zeigt den Aufbau der Execute-Einheit E. In dieser Execute-Einheit E sind eingangsseitig die Datenquellen CMD. SRC und SRC mit einem dritten Umschalter EM3 z.B. einem Multiplexer, CMD. SRI und ALU.SRC1 mit einem ersten Umschalter EMI z.B. Multiplexer und CMD.SR2 und ALUSRC2 mit einem zweiten Umschalter Multiplexer EM2 verbunden. In der Arithmetic and Logic Unit ALU werden wie in Fig. 1 beschrieben, alle arithmetischen und logischen Verknüpfungen abgearbeitet . Über ein Output-Register ROUT und ein Source-Register RSRC werden erste Daten an die nachfolgende Pipelinestufe weitergegeben. Der ALU-Ausgang ist direkt mit dem Eingang des Speichers A, das mindestens ein Register umfaßt oder ein Akkumulator ist, verbunden. Der Speicher A dient neben dem Register-Files RF als separater Speicher für die ersten Daten, die am Ausgang der ersten Einheit ALU anliegen. Über den ersten Umschalter EMI können mit Hilfe eines ersten Kommandos CMD.SRC1 entweder die ersten Daten aus dem Akkumulator A oder die vom Register- File RF ausgelesenen zweiten Daten an einen ersten Operandeneingang OP1 der ersten Einheit ALU weitergeleitet werden. Entsprechend kann durch einen zweiten Umschalter EM2 bei Anliegen eines zweiten Kommandos CMD.SR2 entweder die zweiten Daten aus der ALU.SRC2 oder die ersten Daten aus dem Speicher A an einen Operandeneingang OP 2 weitergeleitet werden. Der Inhalt des Akkumulators A kann auch über den Multiplexer EM3 in Abhängigkeit von dem Steuersignal CMD. SRC als zweite Datenquelle über das Register RSRC zum Ausgang der Execute- Einheit E gelangen. Die ersten Daten der ersten Einheit ALU werden im Akkumulator A gespeichert wenn das Steuersignal CMD.DES anliegt.3 shows the structure of the execute unit E. In this execute unit E, the data sources CMD are on the input side. SRC and SRC with a third changeover switch EM3 eg a multiplexer, CMD. SRI and ALU.SRC1 connected to a first switch EMI eg multiplexer and CMD.SR2 and ALUSRC2 connected to a second switch multiplexer EM2. In the arithmetic and logic unit ALU, as described in FIG. 1, all arithmetic and logic operations are processed. First data are passed on to the subsequent pipeline stage via an output register ROUT and a source register RSRC. The ALU output is connected directly to the input of the memory A, which comprises at least one register or is an accumulator. In addition to the register files RF, the memory A serves as a separate memory for the first data which are present at the output of the first unit ALU. Via the first changeover switch EMI, with the help of a first command CMD.SRC1, either the first data from the accumulator A or that from the register File RF read out second data are forwarded to a first operand input OP1 of the first unit ALU. Accordingly, either the second data from the ALU.SRC2 or the first data from the memory A can be forwarded to an operand input OP 2 by a second changeover switch EM2 when a second command CMD.SR2 is present. The content of the accumulator A can also via the multiplexer EM3 depending on the control signal CMD. SRC as the second data source via register RSRC to the output of Execute unit E. The first data of the first unit ALU are stored in the accumulator A when the control signal CMD.DES is present.
In Figur 4 ist ein Befehlsablauf innerhalb der Pipeline des RISC-Prozessors dargestellt. In dieser Darstellung sind jeweils in den Zeilen die einzelnen Stufen SC, ID, RR, E, DT und RW der Pipeline aufgeführt. Der "Anfang" der Pipeline ist in der zweiten Zeile um eine Spalte nach Rechts verschoben. Die Spalten repräsentieren jeweils die Zeitperiode in denen Befehle in den einzelnen Einheiten der Pipeline ausgeführt werden und die Daten/Ergebnisse zu Beginn der nächsten Zeit- periode an die anschließende Verarbeitungseinheit weitertransportiert werden. Bei dem Teilprogramm - and R0, Rl, acc; or acc, R3, R4 - wird das Register R0 mit Rl logisch "UND" verknüpft. In einem zweiten Verarbeitungsschritt wird des Ergebnis der "UND" Verknüpfung mit dem Register R3 logisch "ODER" verknüpft und das Ergebnis in Register R4 ge- speichert. Das Teilprogramm wird in die Pipeline wie folgt eingelesen und bearbeitet : Takt 1:FIG. 4 shows an instruction sequence within the pipeline of the RISC processor. In this illustration, the individual stages SC, ID, RR, E, DT and RW of the pipeline are listed in the lines. The "beginning" of the pipeline is shifted one column to the right in the second line. The columns each represent the time period in which commands are executed in the individual units of the pipeline and the data / results are forwarded to the subsequent processing unit at the beginning of the next time period. With the sub-program - and R0, Rl, acc; or acc, R3, R4 - the register R0 is linked with Rl logically "AND". In a second processing step, the result of the "AND" link with the register R3 is logically "OR" linked and the result is stored in register R4. The partial program is read into the pipeline and processed as follows: Bar 1:
In der ersten Taktperiode wird die Adresse des ersten Befehls vom Sequence-Controller SC generiert. Takt 2:In the first clock period, the address of the first command is generated by the sequence controller SC. Bar 2:
In der zweiten Taktperiode wird der erste Befehl in den Instruction-Decoder ID decodiert; gleichzeitig wird eine weite- re Adresse (siehe Zeile 2) für den zweiten Befehl in den Sequence-Controller SC generiert. Takt 3:In the second clock period, the first instruction is decoded into the instruction decoder ID; at the same time Right address (see line 2) for the second command in the sequence controller SC generated. Bar 3:
In der dritten Taktperiode werden die Daten für den ersten Befehl von dem Register-Read RR decodiert; gleichzeitig wird in dem Instruction Decoder ID der zweite Befehl deCodiert . Takt 4:In the third clock period, the data for the first instruction is decoded by the register read RR; at the same time, the second command is decoded in the instruction decoder ID. Measure 4:
In der vierten Taktperiode wird die logische Verknüpfung in der Execute-Einheit E ausgeführt und das Ergebnis in dem Ak- kumulator A gespeichert; gleichzeitig die Daten für den zweiten Befehl von der Register-Read-Einheit RR aus dem Register- File gelesen. Takt 5: In der fünften Taktperiode wird in der Execute-Einheit die ODER-Verknüpfung des zweiten Befehls mit dem Inhalt des Akkumulators und dem Datenregister in der Execut-Einheit E durchgeführt . Takt 6, 7: In der sechsten Taktperiode durchläuft des Ergebnis des zwei- ten Befehls die Data-Transfer-Einheit DT und in der siebten Taktperiode wird das Ergebnis des zweiten Befehls über die Einheit Register-Write RW in das Register-File RF abgelegt. In the fourth cycle period, the logic operation is carried out in the execute unit E and the result is stored in the accumulator A; at the same time the data for the second command is read from the register file by the register read unit RR. Clock 5: In the fifth clock period, the second unit is ORed with the contents of the accumulator and the data register in the execute unit E in the execute unit. Cycle 6, 7: In the sixth cycle period, the result of the second command passes through the data transfer unit DT and in the seventh cycle period the result of the second command is stored in the register file RF via the register-write RW unit.

Claims

Patentansprüche claims
1.Reduced Instruction Set Computer (RISC) -Prozessor, mit mehreren in Serie angeordneten Funktionseinheiten (SC,1.Reduced Instruction Set Computer (RISC) processor, with several function units (SC,
ID, RR, E, DT, RW) , wobei mindestens eine Execute-Einheit (E)ID, RR, E, DT, RW), whereby at least one execute unit (E)
Rechenoperationen oder logische Operationen ausführende ersteArithmetic operations or logical operations performing first
Einheit (ALU) aufweist und erste Daten am Ausgang der erstenHas unit (ALU) and first data at the output of the first
Einheit (ALU) abgegeben werden, d a d u r c h g e k e n n z e i c h n e t, daß ein Speicher (A) für die ersten Daten mit einem Ausgang der ersten Einheit (ALU) verbunden ist, daß ein Ausgang des Speichers (A) jeweils mit einem Eingang mindestens eines Umschalters (EMI, EM2) verbunden ist, daß ein zweiter Eingang des Umschalters (EMI, EM2) mit einer der Execute-Einheit vorgeschalteten Einheit (RR) verbunden ist und daß ein Ausgang des Umschalters mit einem Eingang der erstenUnit (ALU) are delivered, characterized in that a memory (A) for the first data is connected to an output of the first unit (ALU), that an output of the memory (A) each with an input of at least one switch (EMI, EM2 ) is connected that a second input of the switch (EMI, EM2) is connected to a unit (RR) upstream of the execute unit and that an output of the switch is connected to an input of the first
Einheit verbunden ist .Unit is connected.
2. Anordnung nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß der Speicher (A) mindestens ein Register (RA) umfaßt .2. Arrangement according to claim 1, d a d u r c h g e k e n n z e i c h n e t that the memory (A) comprises at least one register (RA).
3. Verfahren zum Speichern und Auslesen von ersten Daten einer Rechenoperationen oder logische Operationen ausführenden ersten Einheit (ALU) eines Reduced Instruction Set Computer (RISC) -Prozessors, d a d u r c h g e k e n n z e i c h n e t, daß die von der ersten Einheit ermittelten ersten Daten jeweils in einem der Execute-Funktionseinheit zugeordneten separaten Speicher zwischengespeichert werden, daß wahlweise die zwischengespeicherten ersten Daten wieder ausgelesen und mindestens einem Eingang der ersten Einheit (ALU) zugeführt werden. 3. A method for storing and reading out first data of an arithmetic operations or first unit (ALU) executing logical operations of a reduced instruction set computer (RISC) processor, characterized in that the first data determined by the first unit are each in one of the execute functional units assigned separate memories are buffered so that the buffered first data can be read out again and fed to at least one input of the first unit (ALU).
4. Verfahren nach Anspruch 3 , d a d u r c h g e k e n n z e i c h n e t, daß durch ein Kommando an einem Steuereingang eines zweiten Umschalters erste oder zweite Daten an einen Eingang der ersten Einheit (ALU) weitergeleitet werden.4. The method of claim 3, d a d u r c h g e k e n n z e i c h n e t that first or second data are passed on to an input of the first unit (ALU) by a command at a control input of a second switch.
5. Verfahren nach Anspruch 4, d a d u r c h g e k e n n z e i c h n e t, daß bei Anliegen eines ersten Kommandos (CMD. SRI) an einem ersten Umschalter (EMI) die zwischengespeicherten ersten Daten an einen ersten Eingang (OP1) der ersten Einheit (ALU) weitergeleitet werden, daß bei Anliegen eines zweiten Kommandos (CMD.SR2) an einem zweiten Umschalter (EM2) die zwischengespeicherten Daten an einen zweiten Eingang (OP2) der ersten Einheit (ALU) weitergeleitet werden. 5. The method according to claim 4, characterized in that when a first command (CMD. SRI) is applied to a first changeover switch (EMI), the temporarily stored first data are forwarded to a first input (OP1) of the first unit (ALU), that when a request is made a second command (CMD.SR2) on a second changeover switch (EM2) the buffered data are forwarded to a second input (OP2) of the first unit (ALU).
PCT/DE1998/000619 1997-03-25 1998-03-03 Risc processor WO1998043161A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19712534 1997-03-25
DE19712534.4 1997-03-25

Publications (1)

Publication Number Publication Date
WO1998043161A1 true WO1998043161A1 (en) 1998-10-01

Family

ID=7824581

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1998/000619 WO1998043161A1 (en) 1997-03-25 1998-03-03 Risc processor

Country Status (1)

Country Link
WO (1) WO1998043161A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
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
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FUCCIO M L ET AL: "THE DSP32C: AT&T'S SECOND-GENERATION FLOATING-POINT DIGITAL SIGNAL PROCESSOR", IEEE MICRO, vol. 8, no. 6 + INDEX, 1 December 1988 (1988-12-01), pages 30 - 47, XP000118922 *

Similar Documents

Publication Publication Date Title
DE4035405C2 (en)
EP0689694B1 (en) Process for the machine-generation of parallel processable command groups from a program for super-scalar microprocessors
DE2714805C2 (en)
DE3210816C2 (en)
DE1931966C3 (en) Data processing system with associative memories
EP0097725B1 (en) Circuits in the control part of a microprogrammable processor for direct hardware execution of selected instructions
DE69133571T2 (en) Data processor with the ability to execute two instructions simultaneously
DE2715073A1 (en) MICROPROGRAMMED COMPUTER CONTROL DEVICE
DE19983098B4 (en) Multi-bit display for handling write-to-write errors and eliminating bypass comparators
DE69632655T2 (en) Pipeline data processing arrangement for performing a plurality of mutually data-dependent data processes
DE69732793T2 (en) EIGHT-BIT MICRO-CONTROLLER WITH RISC ARCHITECTURE
DE2533737C2 (en) Microprocessor with divisible address rail
DE3802025C1 (en)
DE4434529A1 (en) Method for processing an instruction having an application condition and apparatus therefor
DE19652290C2 (en) Microcomputer
DE3307194C2 (en)
DE2617485A1 (en) PROCEDURE AND CIRCUIT ARRANGEMENT FOR PROCESSING MICRO-COMMAND SEQUENCES IN DATA PROCESSING SYSTEMS
EP1117037B1 (en) Data processing apparatus for parallel processing of independent processes (threads)
DE4222275C2 (en) Parallel processor and operating procedure for this
CH635451A5 (en) ARRANGEMENT FOR SWITCHING BETWEEN PROGRAMS TO BE PROCESSED IN A DATA PROCESSING SYSTEM.
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE2702722A1 (en) INSTRUCTION INTERPRETATION IN ELECTRONIC DATA PROCESSING SYSTEMS
CH632349A5 (en) MICRO COMMAND CONTROL DEVICE.
DE1774421B1 (en) MORE PROGRAM DATA PROCESSING SYSTEM
DE10303053A1 (en) Data transmission method for use in a computer processor whereby data is transmitted between pipelines and a register file to minimize risk of data loss or corruption

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase