DE68926063T2 - Method and device for controlling processors by predicting exceptions to floating point arithmetic - Google Patents

Method and device for controlling processors by predicting exceptions to floating point arithmetic

Info

Publication number
DE68926063T2
DE68926063T2 DE68926063T DE68926063T DE68926063T2 DE 68926063 T2 DE68926063 T2 DE 68926063T2 DE 68926063 T DE68926063 T DE 68926063T DE 68926063 T DE68926063 T DE 68926063T DE 68926063 T2 DE68926063 T2 DE 68926063T2
Authority
DE
Germany
Prior art keywords
floating point
exception
floating
operands
calculation
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 - Lifetime
Application number
DE68926063T
Other languages
German (de)
Other versions
DE68926063D1 (en
Inventor
Craig C Hansen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MIPS Tech LLC
Original Assignee
Silicon Graphics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of DE68926063D1 publication Critical patent/DE68926063D1/en
Application granted granted Critical
Publication of DE68926063T2 publication Critical patent/DE68926063T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

In data processing systems operable to perform floating point computations there is provided a method, and apparatus implementing that method, for predicting, in advance of the floating point computation, whether or not the computation will produce a floating point exception (e.g., overflow, underflow, etc.). The prediction method includes the steps of combining the exponent fields of the operands of the computation in a manner dictated by the type of operation (i.e., add, subtract, multiply, etc.), and comparing that combination, together with an indication of the computation to be performed (e.g., add, subtract, multiply, or divide), to obtain an indication of the possibility of the computation ending in a floating point exception. If an exception is predicted, the indication can be used to halt other data processing operations until completuion of the computation so that, in the event the computation actually results in a floating point exception, the handling of the exception can be accomplished with a minimum of effort.

Description

Die Erfindung betrifft allgemein ein Verfahren zum genauen Vorhersagen oder Handhaben von Gleitkommaausnahmen und insbesondere die Umsetzung eines derartigen Verfahrens in Systeme, die die Form einer Parallel- oder Pipelinearchitektur haben.The invention relates generally to a method for accurately predicting or handling floating point exceptions and more particularly to the implementation of such a method in systems having the form of a parallel or pipelined architecture.

Heutige Rechner insbesondere diejenigen für wissenschaftlich und technische Anwendungen führen desöfteren Berechnungen mit Gleitkommazahlen durch. Ein Vorteil der Gleitkommazahlen besteht darin, daß sie Rechenvorgänge erlauben, bei denen der Größenbereich der Zahlen sehr groß ist und zwar größer, als er, abgesehen von großen Schwierigkeiten, mit Festkommazahlen gehandhabt werden kann. Die Gleitkommadarstellung von Zahlen kommt dem sehr nahe, was oft als "wissenschaftliche Schreibweise" bezeichnet wird, indem jede Zahl als Produkt aus einer normalen Zahl und einer Basis und der Potenz der Basis dargestellt wird. Eine Zahl kann beispielweise in der folgenden Weise dargestellt werden:Today's computers, especially those for scientific and technical applications, often perform calculations using floating point numbers. One advantage of floating point numbers is that they allow calculations in which the range of numbers is very large, larger than can be handled with fixed point numbers, apart from great difficulty. The floating point representation of numbers comes very close to what is often referred to as "scientific notation" in that each number is represented as a product of a normal number and a base and the power of the base. For example, a number can be represented in the following way:

6318 x 10².6318x10².

Die Zahl 6318 wird als der Teil hinter dem Komma bezeichnet und die Zahl 2 ist der Exponent. In einer digitalen Darstellung:The number 6318 is called the part after the decimal point and the number 2 is the exponent. In a digital representation:

∅0∅0.11∅∅∅1∅1∅111∅∅0∅0.11∅∅∅1∅1∅111∅

in der das höchstwertige Bit das Vorzeichen ist, bilden die nächsten 3 Bit das Exponentenfeld und bilden die übrigen Bit das Feld des Teils hinter dem Komma.in which the most significant bit is the sign, the next 3 bits form the exponent field and the remaining bits form the field of the part after the decimal point.

Gleitkommazahlen und Gleitkommaberechnungen haben zwar bezeichnende Vorteile gegenüber Festkommazahlen und Festkommaberechnungen, sie sind jedoch nicht ohne Probleme. Ein derartiges Problem kann dann auftreten, wenn die Größe des Ergebnisses einer Gleitkommaberechnung die Kapazität des Gleitkommazahlensystems überschreitet oder überläuft. Dieses Problem, das üblicherweise als Gleitkommaausnahme bezeichnet wird, macht dann, wenn es entdeckt wird, eine spezielle Handhabung erforderlich ( beispielweise das Setzen einer Anzeige, die ein Programmierer prüfen kann, um die Berechnung mit einer passenden Fehlermeldung zu unterbrechen).Although floating-point numbers and floating-point calculations have significant advantages over fixed-point numbers and fixed-point calculations, they are not without problems. One such problem can occur when the size of the result of a floating-point calculation exceeds or overflows the capacity of the floating-point number system. This problem, commonly referred to as a floating-point exception, requires special handling when discovered (such as setting an indicator that a programmer can check to interrupt the calculation with an appropriate error message).

Andere Ausnahmen schließen das Unterlaufen, das aus dem Versuch resultiert, ein von Null verschiedenes Ergebnis zu erzeugen, das zu klein (in seiner Größe) ist, um erfaßt zu werden, oder die Ungenauigkeitsausnahme ein, bei der aufgrund der Größe des Ergebnisses Abrundungen erfolgen müssen, die mögliche Ungenauigkeiten erzeugen.Other exceptions include undercutting, which results from attempting to produce a non-zero result that is too small (in size) to be detected, or the inaccuracy exception, where the size of the result requires rounding off, creating possible inaccuracies.

Es gibt gegenwärtig viele Verfahren und Techniken eine Gleitkommaausnahme zu handhaben, wenn diese auftritt, wobei alle diese Verfahren und Techniken bekannt sind. Spezielle Probleme treten jedoch dann auf, wenn Gleitkommaberechnungen in Datenverarbeitungsystemen verwandt werden, die eine Art Parallelverarbeitung ausführen können, wie es bei einer Pipelinearchitektur anzutreffen ist. Eine Pipelinearchitektur umfaßt üblicherweise Prozessorausbildungen, bei denen es zum gleichem Zeitpunkt mehrere Befehle in verschiedenen Stufen der Ausführung gibt. Wenn ein Gleitkommabefehl in einer Gleichkommaausnahme gipfelt, macht es die erforderliche spezielle Handhabung notwendig, daß der Gleitkommabefehl erneut ausgeführt wird&sub1; jedoch nur nachdem die Operanden so angepaßt sind, daß das erneute Auftreten der Ausnahme vermieden wird. Um den Gleitkommabefehl erneut auszuführen, muß die Datenverarbeitungsvorrichtung jedoch sozusagen gesichert werden , was bedeutet, daß die Ergebnisse von Befehlen, die während der Ausführung des Gleitkommabefehls ausgeführt oder teilweise ausgeführt wurden, für später gesichert oder weggeworfen werden müssen. Das wiederum macht es erforderlich, daß der Status der Datenverarbeitungsvorrichtung auf denjenigen zurückgeführt wird, den ursprünglich der Befehl angetroffen hatte.There are currently many methods and techniques for handling a floating-point exception when it occurs, all of which are well known. However, special problems arise when floating-point calculations are used in data processing systems capable of performing some form of parallel processing, as is found in a pipelined architecture. A pipelined architecture typically involves processor designs in which there are several instructions in different stages of execution at the same time. When a floating-point instruction culminates in an equal-point exception, the special handling required requires that the floating-point instruction be re-executed, but only after the operands are adjusted to avoid re-occurrence of the exception. However, in order to re-execute the floating-point instruction, the computing device must be saved, so to speak, which means that the results of instructions that were executed or partially executed during the execution of the floating-point instruction must be saved for later or discarded. This in turn requires that the state of the computing device be returned to that originally encountered by the instruction.

Das Problem verschlimmert sich dann, wenn verschiedene Befehle verschiedene Ausführungszeiten benötigen, das heißt, wenn gewisse Befehle in zwei, vier oder in einer kleinen Anzahl von Prozessorarbeitszyklen ausgeführt werden können, während andere Befehle, insbesondere die Gleitkommabefehle, zur Ausführung wesentlich mehr Prozessorarbeitszyklen benötigen. In diesem Fall ist eine Gleitkommaberechnung, die zu einer Ausnahme führt, noch viel schwieriger zu vermeiden. Das heißt, daß es noch viel schwieriger ist, den Status der Datenverarbeitungsvorrichtung wiederherzustellen, den der Befehl ursprünglich angetroffen hatte, um eine Gleitkommaausnahme zu vermeiden.The problem is exacerbated when different instructions require different execution times, that is, when certain instructions can be executed in two, four, or a small number of processor cycles, while other instructions, particularly floating-point instructions, require significantly more processor cycles to execute. In this case, a floating-point calculation that results in an exception is even more difficult to avoid. That is, it is even more difficult to restore the state of the computing device that the instruction originally encountered in order to avoid a floating-point exception.

Eine Lösung dieses Problems würde darin bestehen, die Verarbeitung eines folgenden Befehls anzuhalten, wenn zum ersten Mal auf eine Gleitkommaberechnung gestoßen wird, und nur die Gleitkommaberechnung ablaufen zu lassen. Eine Prüfung des Ergebnisses kann dann erfolgen, um festzustellen, ob eine Ausnahme aufgetreten ist. Wenn nicht, kann die normale Verarbeitung wieder aufgenommen werden; wenn eine Ausnahme aufgetreten ist, kann die Berechnung erneut durchgeführt werden, ohne daß die Pipeline durchgespült werden muß (das heißt, Ergebnise der Pipeline, was Befehle anbetrifft, die auf den Gleitkommabefehl folgen, weggeworfen oder gespeichert werden). Dieses Arbeitsschema kann jedoch bezeichnend die Leistung des Datenverarbeitungssystems beeinträchtigen.A solution to this problem would be to halt processing of a subsequent instruction when a floating-point calculation is first encountered and to allow only the floating-point calculation to proceed. An examination of the result can then be made to determine whether an exception has occurred. If not, normal processing can resume; if an exception has occurred, the calculation can be performed again without flushing the pipeline (that is, discarding or storing pipeline results relating to instructions following the floating-point instruction). However, this scheme of operation can significantly degrade the performance of the data processing system.

In der EP-A-0 256 358 sind ein Verfahren und eine entsprechende Vorrichtung beschrieben, die die Leistung eines Gleitkommaprozessors dadurch verbessern, daß die Plausibilitätsantwort von einer Gleitkommaeinheit unter bestimmten Bedingunggen beschleunigt wird, so daß das Plausibilitätssignal zur Verfügung steht, bevor der arithmetische Gleitkommabefehl ausgeführt ist. Dieses beschleunigte Plausibilitätssignal wird dadurch erzeugt, daß eine Kombination der Exponentenfelder von zwei Operanden mit einer Gleitkommaausnahmen hervorrufenden Kriterien insbesondere dadurch verglichen wird, daß die Exponenten, die Vorzeichen und die Teile nach dem Komma in den Operanden bewertet werden. In Abhängigkeit von bestimmten Umständen erfolgt effektiv eine Vorhersage, wann das Nichtauftreten einer Ausnahme garantiert werden kann.EP-A-0 256 358 describes a method and a corresponding device which improve the performance of a floating point processor by accelerating the plausibility response from a floating point unit under certain conditions so that the plausibility signal is available before the floating point arithmetic instruction is executed. This accelerated plausibility signal is generated by comparing a combination of the exponent fields of two operands with a floating point exception-causing criteria, in particular by evaluating the exponents, the signs and the parts after the decimal point in the operands. Depending on certain circumstances, a prediction is effectively made as to when the non-occurrence of an exception can be guaranteed.

Die vorliegende Erfindung nach dem Anspruch 1 nutzt den Vorteil des Verfahrens und der Vorrichtung, die in der EP-A- 0 256 358 beschrieben sind, indem ein Verfahren geschaffen wird, bei dem das die Ausnahme vorhersagende Signal dazu benutzt wird, eine Universaldatenprozessoreinheit, die parallel zu einer Gleitkommaprozessoreinheit arbeitet, kurzzeitig anzuhalten. Die Gleitkommaberechnung wird durchgeführt und die Arbeit der Universaldatenprozessoreinheit wird wieder aufgenommen, wenn die Gleitkommaberechnung nicht zu einer tatsächlichen Gleitkommaausnahme geführt hat.The present invention according to claim 1 takes advantage of the method and apparatus disclosed in EP-A- 0 256 358 by providing a method in which the exception predicting signal is used to temporarily stop a general purpose data processing unit operating in parallel with a floating point processing unit. The floating point calculation is performed and the operation of the general purpose data processing unit is resumed if the floating point calculation did not result in an actual floating point exception.

Es wird auch eine vorrichtung nach dem Anspruch 3 geschaffen, bei der eine zweite Prozessoreinheit vorgesehen ist, um Universaldatenverarbeitungsaufgaben parallel zu Gleitkommaberechnungen auszuführen, die vom ersten Prozessor durchgeführt werden, und bei der Einrichtungen vorgesehen sind, um kurzzeitig auf das Vorliegen eines eine Gleitkommaausnahme vorhersagenden Signals die zweite Prozessoreinheit anzuhalten und die Arbeit wieder aufzunehmen, wenn die Gleitkommaberechnung nicht zu einer tetsächlichen Gleitkommaausnahme geführt hat.There is also provided an apparatus according to claim 3, in which a second processor unit is provided to perform general purpose data processing tasks in parallel with floating point calculations performed by the first processor, and in which means are provided to temporarily stop the second processor unit in response to a signal predicting a floating point exception and to resume operation if the floating point calculation did not result in an actual floating point exception.

Die Erfindung benutzt die frühe Vorhersage des Standes der Technik, ob eine Gleitkommaausnahme auftreten könnte oder nicht. Wenn die Vorhersage angibt, daß eine Ausnahme auftreten wird, wird diese dazu benutzt, alle anderen Verarbeitungsvorgänge anzuhalten, während die Gleitkommaberechnung bis zum Abschluß ablaufen gelassen wird. Wenn die Berechnung in einer Ausnahme endet, werden die Operanden angepaßt und wird die Berechnung erneut gestartet. Wenn andererseits die Vorhersage angibt, daß keine Ausnahme auftreten wird, dann setzt sich der Arbeitsablauf normal fort.The invention uses the prior art's early prediction of whether or not a floating point exception might occur. If the prediction indicates that an exception will occur, it is used to halt all other processing while the floating point calculation is allowed to run to completion. If the calculation ends in an exception, the operands are adjusted and the calculation is started again. On the other hand, if the prediction indicates that no exception will occur, then the operation continues normally.

Vorzugsweise werden die Exponentenfelder der Operanden, die im Gleitkommamultiplikations- (oder -divisions) -berechnungen verwandt werden, zueinander addiert (oder voneinander subtrahiert) und wird das Ergebnis zusammen mit einer Anzeige der Operation (beispielsweise Multiplikation oder Division) an ein programmierbares logisches Datenfeld gelegt. Das programmierbare logische Datenfeld wird so programmiert, daß es ein Gleitkommaausnahmesignal erzeugt, wenn der Ergebniswert, der durch diese Kombination der Exponentenfelder der Operanden erzeugt wird, angibt, daß die Gleitkommaberechnung zu einer Gleitkommaausnahme führen wird oder könnte. Das Gleitkommaausnahmesignal führt dazu, daß alle anderen parallelen Verarbeitungsfunktionen kurzzeitig unterbrochen werden, damit die Gleitkommaberechnung bis zum Abschluß ablaufen kann. Wenn jedoch die Vorhersage so ist, daß keine Ausnahme auftreten wird, dann können die parallelen Verarbeitungsvorgänge ohne Rücksicht darauf, daß eine Gleitkommaausnahme auftreten könnte, fortgesetzt werden. Die Vorhersage für Gleitkommaadditionen und -subtraktionen ist mit der Ausnahme ähnlich, daß die Exponentenfelder lediglich miteinander verglichen werden, um zu bestimmen, ob der Wert eines der Exponentenfelder ausreichend größer als der des anderen ist, um eine Garantie abzugeben, was das Auftreten einer Ausnahme anbetrifft.Preferably, the exponent fields of the operands used in floating point multiplication (or division) calculations are added to (or subtracted from) each other and the result is applied to a programmable logic array together with an indication of the operation (e.g., multiplication or division). The programmable logic array is programmed to be a Floating-point exception signal is generated when the result value produced by this combination of the exponent fields of the operands indicates that the floating-point calculation will or could result in a floating-point exception. The floating-point exception signal causes all other parallel processing functions to be temporarily suspended to allow the floating-point calculation to complete. However, if the prediction is that no exception will occur, then the parallel processing operations can continue without regard to whether a floating-point exception might occur. The prediction for floating-point additions and subtractions is similar except that the exponent fields are simply compared to each other to determine whether the value of one of the exponent fields is sufficiently larger than that of the other to provide a guarantee that an exception will occur.

Wenn eine Ausnahmevorhersage gemacht worden ist und die Berechnung schließlich dazu führt, daß eine Ausnahme auftritt, dann wird ein Unterbrechungssignal erzeugt, das das im System laufende Programm über dieses Auftreten informiert. Die Ausnahme wird gehandhabt, und die Gleitkommaberechnung wird erneut ausgeführt.If an exception prediction has been made and the calculation eventually results in an exception occurring, then an interrupt signal is generated informing the program running in the system of this occurrence. The exception is handled and the floating point calculation is re-executed.

Die Erfindung wird im folgenden anhand eines Beispiels unter Bezug auf die zugehörigen Zeichnungen beschrieben, in denenThe invention is described below by way of example with reference to the accompanying drawings in which

Fig. 1 eine schematische Darstellung eines Datenverarbeitungssystems zeigt, das Gleitkommaberechnungen ausführen kann und gemäß der vorliegenden Erfindung konfiguriert ist,Fig. 1 shows a schematic representation of a data processing system capable of performing floating point calculations and configured in accordance with the present invention,

die Fig. 2A bis 2D graphische Darstellungen möglicher eine Ausnahme bewirkender Situationen für Multiplikationen, Divisionen, Aditionen/Subtraktionen und unäre Gleitkommaoperationen zeigen undFigures 2A to 2D show graphical representations of possible exception-causing situations for multiplications, divisions, additions/subtractions and unary floating point operations, and

Fig. 3 in einem schematischen Schaltbild eine Vorrichtung zeigt, die dazu benutzt wird, die eine Ausnahme vorhersagende Schaltung zu bilden.Fig. 3 shows a schematic diagram of a device used to predict the exception to form a circuit.

Die vorliegende Erfindung ist in einer Datenverarbeitungssystemarchitektur ausgeführt, die allgemein in Fig. 1 mit dem Bezugszeichen 10 bezeichnet ist und zwei Prozessoreinheiten umfaßt: eine Zentralprozessoreinheit (CPU) 12 und eine Gleitkommaprozessoreinheit (FPU) 14. Die CPU und FPU 12 und 14 empfangen ein periodisches Taktsignal, das von einer Taktquelle (CLK) 16 entwickelt wird, und beide sind mit einem Speichersystem 18 über eine Datensammelleitung 20 verbunden. Allein die CPU 12 ist über eine Adressensammelleitung 22 mit dem Speichersystem 18 verbunden.The present invention is embodied in a data processing system architecture, generally indicated in Figure 1 by the reference numeral 10, comprising two processor units: a central processing unit (CPU) 12 and a floating point processing unit (FPU) 14. The CPU and FPU 12 and 14 receive a periodic clock signal developed by a clock source (CLK) 16 and are both connected to a memory system 18 via a data bus 20. The CPU 12 alone is connected to the memory system 18 via an address bus 22.

Die CPU 12 lenkt die Arbeit des Systems, indem auf Befehle der Reihe nach vom Speicher 18 über Adressen zugegriffen wird, die von einem Programmzähler (PC) 24 der CPU 12 gebildet werden. Es wird sich zeigen, daß Adressen auch im Speichersystem 18 durch den Ausnahmeprogrammzähler (EPC) 26 geliefert werden, der über irgendeine herkömmliche Technik zur Adressensammelleitung multiplexed ist. Jeder zugegriffene Befehl wird jedoch durch die FPU 14 geprüft, wobei jedoch nur Gleitkommaberechnungsbefehle durch die FPU 14 behandelt werden, während alle andere Befehle durch die CPU 12 ausgeführt werden. Der Grund für diese spezielle Ausbildung der Architektur wird sich im folgenden deutlicher zeigen.The CPU 12 directs the operation of the system by accessing instructions in sequence from the memory 18 via addresses provided by a program counter (PC) 24 of the CPU 12. It will be seen that addresses are also provided in the memory system 18 by the exception program counter (EPC) 26, which is multiplexed to the address bus via some conventional technique. Each accessed instruction is, however, checked by the FPU 14, but only floating point calculation instructions are handled by the FPU 14, all other instructions being executed by the CPU 12. The reason for this special architectural design will become more apparent hereinafter.

In Fig. 1 ist nicht im einzelnen die Tatsache dargestellt, daß die Architektur des Datenverarbeitungssystems 10 und insbesondere die der CPU 12 eine Form hat, die typischerweise auf dem Gebiet der Technik als Pipelinearchitektur bezeichnet wird. Diese erlaubt es, daß eine Anzahl von sequentiellen Befehlen, auf die vom Speicher 18 zugegriffen wird, gleichzeitig in verschiedenen Stufen der Ausführung vorliegt. Während jeder Befehl in einer Stufe der Ausführung ist, wird die Speicheradresse dieses Befehls kurzzeitig in einer Warteschlange 28 des Programmzählers (PC) der CPU 12 gehalten. Die verschiedenen Parameter werden während der Ausführung in einer Parameterregisterdatei 30 gehalten.Not shown in detail in Fig. 1 is the fact that the architecture of the data processing system 10, and in particular that of the CPU 12, takes a form typically referred to in the art as a pipeline architecture. This allows a number of sequential instructions accessed from the memory 18 to be in different stages of execution simultaneously. While each instruction is in a stage of execution, the memory address of that instruction is temporarily held in a queue 28 of the program counter (PC) of the CPU 12. The various parameters are stored in a parameter register file during execution. 30 held.

Wie es in Fig. 1 dargestellt ist, ist die FPU 14 mit der Datensammelleitung 20 verbunden, um Befehle und Operanden an der Befehlsdekodiereinheit 34 und an den Operandenregistern 36 jeweils zu empfangen. Die Exponentenfelder der Operanden kommen von den Operandenregistern zu einer Ausnahmevorhersageeinheit 38 über Signalleitungen 40. Die vollständigen Operanden (Exponentenfeld und Feld für den Teil nach dem Komma) liegen an einer Gleitkommaausführungseinheit 42. Die Ausnahmevorhersageeinheit 38 arbeitet, wie ihr Name sagt&sub1; so, daß sie ermittelt, ob die sich ergebende Gleitkommaberechnung möglicherweise zu einer Ausnahme führen kann. Wenn das der Fall ist, wird ein CP BUSY Signal erzeugt, das an der CPU 14 liegt. Die Gleitkommaausführungseinheit 42 führt die tatsächliche Berechnung durch und erzeugt dann, wenn die Berechnung dazu führt, daß eine Ausnahme auftritt, ein INTERRUPT Signal, das an der CPU 14 liegt. Eine Angabe der jeweiligen Berechnung, die auszuführen ist, liegt in Form eines Operationscodesignals (OP) an der Ausnahmevorhersageeinheit 38 und an der Gleitkommaausführungseinheit 42. Im zuerst genannten Fall bewirken die OP Signale, daß Kriterien gewählt werden, gegenüber denen die Operandenexponentenfelder geprüft werden, um Ausnahmen vorherzusagen, im zuletzt genannten Fall steuern die OP Signale den Rechenvorgang.As shown in Figure 1, the FPU 14 is connected to the data bus 20 to receive instructions and operands at the instruction decode unit 34 and the operand registers 36, respectively. The exponent fields of the operands come from the operand registers to an exception prediction unit 38 via signal lines 40. The complete operands (exponent field and post-decimal field) are applied to a floating point execution unit 42. The exception prediction unit 38, as its name suggests, operates to determine whether the resulting floating point calculation has the potential to result in an exception. If so, a CP BUSY signal is generated and applied to the CPU 14. The floating point execution unit 42 performs the actual computation and then, if the computation results in an exception occurring, generates an INTERRUPT signal which is applied to the CPU 14. An indication of the particular computation to be performed is applied in the form of an operation code (OP) signal to the exception prediction unit 38 and to the floating point execution unit 42. In the former case, the OP signals cause criteria to be selected against which the operand exponent fields are checked to predict exceptions; in the latter case, the OP signals control the computational process.

Die Pipeline des vorliegenden Ausführungsbeispiels des Datenverarbeitungssystems 10 ist 5 Befehle tief, das heißt, daß bis zu 5 Befehle gleichzeitig in den verschiedenen Stufen der Ausführung vorliegen können. Die 5 definierbaren Ausführungsstufen sindThe pipeline of the present embodiment of the data processing system 10 is 5 instructions deep, which means that up to 5 instructions can be present simultaneously in the various stages of execution. The 5 definable execution stages are

1. Eine Befehlsabrufstufe (1), während der auf den Befehl zugegriffen wird, indem eine Adresse, die im PC 24 enthalten ist, vom Speicher 18 zum Dekodieren benutzt wird;1. An instruction fetch stage (1) during which the instruction is accessed using an address contained in the PC 24 from the memory 18 for decoding;

2. Eine Dekodier- und Registerzugriffstufe (R), während der eine anfängliche Dekodierung des Befehls stattfindet und auf die Register zugegriffen wird,die die Operanden enthalten, wie es durch den Befehl bezeichnet ist;2. A decode and register access stage (R), during which an initial decode of the instruction takes place and the registers containing the operands are accessed as specified by the instruction;

3. Eine arithmetische Ausführungsstufe (A), die die verschiedenen arithmetischen Operationen, wie beispielweise eine Gleitkommaberechnung auslöst;3. An arithmetic execution stage (A) which triggers the various arithmetic operations, such as a floating point calculation;

4. Eine Speicherbetriebsstufe (M)4. A storage operating stage (M)

5. Eine Schreibstufe (W), in der die Ergebnisse der Operation in ein Register (nicht dargestellt) des Systems 10 (das heißt die CPU 12 oder die FPU 14) oder in den Speicher 18 geschrieben werden.5. A write stage (W) in which the results of the operation are written to a register (not shown) of the system 10 (i.e., the CPU 12 or the FPU 14) or to the memory 18.

Die Befehle, auf die der Reihe nach von Speicher 18 zugegriffen wird, können auf einer dieser Stufen (I, R, A, M und/oder W) zu irgendeinem Zeitpunkt während des Betriebes sein.The instructions accessed sequentially from memory 18 may be at any of these levels (I, R, A, M and/or W) at any time during operation.

Wie es bekannt ist, benötigen verschiedene Befehle zur Ausführung verschiedene Zeiten. Ein Festkommaganzzahlbefehl benötigt beispielweise zur Ausführung nur einen Zyklus. Die Lade- und Speicheroperationen benötigen 2 Zyklen, wohingegen Gleitkommaoperationen (-berechnungen) bis zu 19 Zyklen benötigen können.As is known, different instructions require different times to execute. For example, a fixed-point integer instruction requires only one cycle to execute. The load and store operations require 2 cycles, whereas floating-point operations (calculations) can require up to 19 cycles.

Man betrachte eine Gleitkommaberechnung, die schließlich zu einer Ausnahme führt. Auf den Befehl wird vom Speicher 18 zugegriffen und der Befehl wird sowohl durch die CPU 12 als auch die FPU 14 geprüft. Der Befehl wird jedoch nur durch die FPU 14 ausgeführt und geht daher durch die Stufe 1, die Stufe R und die Stufe A, während der die Operanden gesammelt und so festgelegt werden, daß der tatsächlicher Rechenvorgang beginnen kann. Der Abschluß der Stufe A setzt die Gleitkommaausführungseinheit 42 in Bewegung, wobei das Ergebnis 1 bis 19 Zyklen später in Abhängigkeit von der Operation (das heißt Addition/Subtraktion oder Multiplikation/Division) vorliegt. In Abhängigkeit von dem jeweiligen Rechenvorgang, den der Befehl fordert (das heißt Addition, Subtraktion, Multiplikation oder Division), wird daher ein gewisses Zeitintervall ablaufen, bevor das Ergebnis des Rechenvorganges verfügbar ist. Während der Rechenvorgang erfolgt, hat die CPU 12 jedoch auf andere Befehle zugegriffen und diese in der Pipeline angeordnet, so daß dann, wenn der Gleitkommabefehl die Stufe M der Ausführung erreicht, die ihm nacheinander folgenden Befehle wenigstens ihre jeweiligen Stufen I, R, A der Ausführung abgeschlossen haben. In Abhängigkeit davon, wie lange der Gleitkommarechenvorgang dauert, werden einige sogar die Stufe M abgeschlossen haben.Consider a floating point calculation that ultimately results in an exception. The instruction is accessed from memory 18 and the instruction is checked by both CPU 12 and FPU 14. However, the instruction is only executed by FPU 14 and therefore goes through stage 1, stage R and stage A during which the operands are collected and set so that the actual calculation can begin. The completion of stage A sets floating point execution unit 42 in motion with the result available 1 to 19 cycles later depending on the operation (i.e., addition/subtraction or multiplication/division). Therefore, depending on the particular calculation required by the instruction (i.e., addition, subtraction, multiplication or division), a certain time interval will elapse before the result of the arithmetic operation. However, while the arithmetic operation is taking place, the CPU 12 has accessed other instructions and placed them in the pipeline so that by the time the floating point instruction reaches the M stage of execution, the instructions following it have at least completed their respective I, R, A stages of execution. Depending on how long the floating point arithmetic operation takes, some will even have completed the M stage.

Wenn sich herausstellt, daß das Ergebnis des Gleitkommabefehls zu einer Ausnahme führt, muß der Befehl angepaßt und erneut ausgeführt werden. Was passiert jedoch mit den Befehlen, die dem Gleitkommabefehl folgen? In der vorliegenden Pipelinearchitektur muß das System 10 entweder die Ergebnisse der folgenden Befehle kurzzeitig speichern oder sie vollständig wegwerfen, während der Ausnahmefall gehandhabt wird (beispielsweise die Operanden angepaßt werden, um eine Ausnahme zu vermeiden), und muß der Gleitkommabefehl erneut ausgeführt werden, indem die modifizierten Operanden benutzt werden. Die Probleme bestehen natürlich darin, daß diese Techniken das System entweder erheblich zeitlich belasten oder zusätzliche und komplizierte Schaltungen zusätzlich am System erforderlich machen.If the result of the floating point instruction turns out to result in an exception, the instruction must be modified and re-executed. But what happens to the instructions that follow the floating point instruction? In the present pipeline architecture, the system 10 must either temporarily store the results of the following instructions or discard them entirely while the exception is handled (e.g., modifying the operands to avoid an exception), and the floating point instruction must be re-executed using the modified operands. The problems, of course, are that these techniques either impose significant time burdens on the system or require additional and complicated circuitry on the system.

Die vorliegende Erfindung ist darauf gerichtet vorab vorherzusagen, ob es möglich ist, einen Ausnahmefall einzufangen. Am Abschluß der arithmetischen Ausführungsstufe A, jedoch vor dem Beginn des tatsächlichen Rechenvorganges wird dementsprechend eine Vorhersage getroffen, um festzustellen, ob es möglich ist, daß tatsächlich ein Ausnahmefall auftreten wird.The present invention is directed to predicting in advance whether it is possible to catch an exception. At the end of the arithmetic execution stage A, but before the start of the actual calculation process, a prediction is accordingly made to determine whether it is possible that an exception will actually occur.

Bei der vorliegenden Erfindung können die Gleitkommaoperationen in einfache Genauigkeit (unter Verwedung von Operanden einfacher Genauigkeit) oder in doppelten Genauigkeit (unter Verwendung von Operanden in doppelter Genauigkeit) vorliegen. Operanden mit einfacher Genauigkeit haben eine Länge von 32 Bit, wobei das höchstwertige Bit (MSB) das Vorzeichen bildet, die nächsten 8 MSB das Exponentenfeld bilden und die restlichen 23 Bit den Teil nach dem Komma des Operanden bilden. Bei doppelter Genauigkeit bildet das MSP wiederum das Vorzeichen, während die nächsten 11 MSB das Exponentenfeld und die restlichen 52 Bit den Teil nach dem Komma bei insgesamt 64 Bit bilden.In the present invention, the floating point operations may be in single precision (using single precision operands) or in double precision (using double precision operands). Single precision operands are 32 bits long, with the most significant bit (MSB) forming the sign, the next 8 MSBs forming the exponent field, and the remaining 23 bits form the part after the decimal point of the operand. In double precision, the MSP forms the sign, while the next 11 MSB form the exponent field and the remaining 52 bits form the part after the decimal point, for a total of 64 bits.

Die vorliegende Erfindung hängt jedoch nicht notwendigerweise von der Größe der Operanden ab. Aus Gründen der Einfachheit wird daher angenommen, daß die Operanden ein Exponentenfeld mit nur 3 Bit haben. In den Fig. 2A bis 2D sind graphische Darstellungen der Exponentenfelder der Operanden relativ zueinander für Multiplikations-, Divisions-, Additions-/Subtraktionsoperationen oder unäre Berechnungen/Operationen dargestellt (eine unäre Operation ist eine Operation, bei der nur ein Operand involviert ist, wie es beispielweise bei der Komplementbildung, bei der Inkrementbildung, bei der Absolutwertbildung und ähnlichen Operationen der Fall ist).However, the present invention does not necessarily depend on the size of the operands. Therefore, for simplicity, the operands are assumed to have an exponent field of only 3 bits. Figures 2A through 2D show graphical representations of the exponent fields of the operands relative to each other for multiplication, division, addition/subtraction, or unary operations (a unary operation is an operation involving only one operand, such as complement, increment, absolute value, and similar operations).

Die Fig. 2A bis 2C zeigen graphische Darstellungen in rechtwinkligen kartesischen Koordinaten der Exponentenfelder von zwei Operanden von Gleichtkommaberechnungen. Die Zeichen x bei gewissen Koordinaten geben die Exponentenfeldwerte an, die zu einer Gleitkommaausnahme führen werden oder möglicherweise eine derartige Ausnahme hervorrufen werden und zwar für die jeweilige Operation der graphischen Darstellung (beispielweise eine Multiplikation in Fig. 2A). Diejenigen Exponentenfeldwerte, die entlang der gestrichelten Linien 50 (50a bis 50c) liegen, geben Vorhersagen an, bei denen es möglich ist, daß während der entsprechenden Operation dieser Figur ein Ausnahmefall auftreten wird.Figures 2A through 2C show graphs in rectangular Cartesian coordinates of the exponent fields of two operands of floating point calculations. The x symbols at certain coordinates indicate the exponent field values that will result in or are likely to cause a floating point exception for the particular operation of the graph (for example, multiplication in Figure 2A). Those exponent field values that lie along the dashed lines 50 (50a through 50c) indicate predictions for which it is possible that an exception will occur during the corresponding operation of that figure.

Eine Möglichkeit der Betrachtung der Fig. 2A bis 2D besteht darin, daß diese für jede Gleitkommaoperation (das heißt Multiplikation, Division, Addition, Subtraktion oder unäre Operation) Kriterien wiedergeben, die durch die auszuführende Operation gewählt werden und gegenüber denen eine Kombination von Exponentenfelder verglichen wird.One way of looking at Figures 2A through 2D is that they represent, for each floating point operation (i.e., multiplication, division, addition, subtraction, or unary operation), criteria that are chosen by the operation being performed and against which a combination of exponent fields are compared.

Die Operandenexponentenfelder für eine Gleitkommamultiplikation werden addiert und die Operandenexponentenfelder für eine Gleitkommadivision werden voneinander abgezogen, bevor sie mit den Kriterien verglichen werden, die in den Fig. 2A und 2B angegeben sind. Wenn somit beispielsweise ein Gleitkommamultiplikationsbefehl mit Operanden auszuführen ist, die Exponentenfelder "100" und "110" haben, würde ihre Summe ("1010") in Kombination mit der Anzeige der auszuführenden Operation (Multiplikation) Anlaß für eine Vorhersage einer Rechenoperation geben, die zu einer Gleitkommaausnahme führt.The operand exponent fields for a floating point multiplication are added and the operand exponent fields for a floating point division are subtracted from each other before being compared to the criteria specified in Figures 2A and 2B. Thus, for example, if a floating point multiplication instruction is to be executed with operands having exponent fields "100" and "110", their sum ("1010") in combination with the indication of the operation to be performed (multiplication) would give rise to a prediction of an arithmetic operation that results in a floating point exception.

Bei Gleitkommaadditionen oder -subtraktionen werden die Operandenexponentenfelder miteinander verglichen, um zu ermitteln, ob eines wesentlich größer als das andere ist, wie es durch die Kriterien angegeben ist, die in Fig. 2C dargestellt sind. Unäre Operationen machen es lediglich erforderlich, auf das Exponentenfeld des Operanden zu schauen, um festzustellen, ob es unter die mögliche Ausnahmefälle verursachenden Kriterien fällt, die in Fig. 2D dargestellt sind.In floating-point additions or subtractions, the operand exponent fields are compared to determine if one is significantly larger than the other, as indicated by the criteria shown in Fig. 2C. Unary operations only require looking at the exponent field of the operand to determine if it falls under the possible exception-causing criteria shown in Fig. 2D.

Die Ausnahmevorhersageeinheit 38 ist mehr im einzelnen in Fig. 3 dargestellt. Wie es dargestellt ist, werden die Operandenexponentenfelder (E1, E2) vom Operandenregister 36 (Fig. 1) über ein programmierbares logisches Datenfeld (PLA) 51 empfangen. Das PLA 51, das auch die OP Signale von der Befehlsdekodiereinheit 34 empfängt, arbeitet so, daß es Ausnahmefälle für Additions- und Subtraktionsoperationen vorhersagt und zwar nach Maßgabe der Kriterien, die in Fig. 2C dargestellt sind. Der Ausgang (0) des PLA 51 ist mit einer Ausnahmevorhersageverriegelungsschaltung 52 über ein ODER-Glied 54 mit zwei Eingängen verbunden. Die Ausnahmevorhersageverriegelungsschaltung 52 erzeugt das CP BUSY Signal, das an der CPU 12 liegt.The exception prediction unit 38 is shown in more detail in Fig. 3. As shown, the operand exponent fields (E1, E2) are received from the operand register 36 (Fig. 1) via a programmable logic array (PLA) 51. The PLA 51, which also receives the OP signals from the instruction decode unit 34, operates to predict exceptions for addition and subtraction operations according to the criteria shown in Fig. 2C. The output (0) of the PLA 51 is connected to an exception prediction latch circuit 52 via a two-input OR gate 54. The exception prediction latch circuit 52 generates the CP BUSY signal which is applied to the CPU 12.

Die Operandenexponentenfelder (E&sub1;, E&sub2;) werden für Multiplikations- und Divisionsoperationen etwas anders behandelt, als es im obigen bezüglich der Additions- und Subtraktionsoperationen beschrieben wurde. Die bei Multiplikationen oder Divisionen benutzten Operanden liegen an einer Addierschaltung 16, wo sie addiert werden oder voneinander subtrahiert werden, was davon abhängt, ob die OP Signale eine Multiplikation oder Division jeweils angeben. Das Ergebnis liegt an einem PLA 62, das so arbeitet, daß es dieses Ergebnis mit den Kriterien (Fig 2A, 2B) vergleicht, die durch die OP Signale festgelegt oder gewählt sind&sub1; die durch das PLA 62 von der Befehlsdekodierschaltung 34 (Fig. 1) empfangen werden. Das Ausgangssignal (O) des PLA 62 wird am anderen der beiden Eingänge des ODER-Gliedes 45 empfangen, so daß dann&sub1; wenn die gewählten Kriterien und das Ergebnis der Kombination der Exponentenfelder einen Ausnahmefall anzeigen, was durch das PLA 62 bestimmt wird, daß CP BUSY Signal aktiv wird. Aus Gründen, die sich aus der folgenden Erläuterung ergeben werden, wird sich zeigen, daß das CP BUSY Signal bewirkt, daß die CPU 12 kurzzeitig in einem Wartezustand gehalten wird, bis die Gleitkommaberechnung abgeschlossen ist.The operand exponent fields (E₁, E₂) are treated slightly differently for multiplication and division operations than described above for addition and subtraction operations. The values used for multiplication or The operands used for multiplication and division are applied to an adder 16 where they are added or subtracted from one another depending on whether the OP signals indicate multiplication or division respectively. The result is applied to a PLA 62 which operates to compare this result with the criteria (Figs. 2A, 2B) specified or selected by the OP signals received by the PLA 62 from the instruction decode circuit 34 (Fig. 1). The output signal (O) of the PLA 62 is received at the other of the two inputs of the OR gate 45 so that if the selected criteria and the result of the combination of the exponent fields indicate an exception as determined by the PLA 62, the CP BUSY signal becomes active. For reasons which will become apparent from the following discussion, it will be seen that the CP BUSY signal causes the CPU 12 to be temporarily held in a wait state until the floating point calculation is completed.

Während des Arbeitsablaufes führt die CPU 12 Zugriffe zum Speichersystem 18 (für Befehle und Operanden oder zum Speichern vom Daten, wie es bei normalen Datenverarbeitungsoperationen üblich ist) unter Verwendung von Adressen durch, die durch den PC 24 geliefert werden (Fig. 1). Jeder zugegriffene Befehl liegt sowohl an der CPU 12 als auch an der FPU 14, wobei jedoch nur die FPU 14 Gleitkommabefehle erkennt und ausführt, während alle anderen Befehle durch die CPU 12 ausgeführt werden. Jeder Befehl läuft durch die 5 Decodierstufen (I, R, A, M und W) wie es oben beschrieben wurde. Zu irgendeinem Zeitpunkt wird es daher 5 Befehle in verschiedenen Ausführungsstufen im System 10 geben.During operation, the CPU 12 makes accesses to the memory system 18 (for instructions and operands or to store data as is common in normal data processing operations) using addresses provided by the PC 24 (Fig. 1). Each accessed instruction is accessible to both the CPU 12 and the FPU 14, however, only the FPU 14 recognizes and executes floating point instructions, while all other instructions are executed by the CPU 12. Each instruction passes through the 5 decoding stages (I, R, A, M and W) as described above. At any one time, therefore, there will be 5 instructions in various stages of execution in the system 10.

Es sei angenommen, daß während dieses Arbeitsablaufes des Datenverarbeitungssystems 10 vom Speichersystem 18 auf einen Gleitkommabefehl zugegriffen wird. Der Befehl wird am Anfang sowohl durch die CPU 12 als auch durch die FPU 14 inspiziert, wobei jedoch, wie oben angegeben, nur die FPU 14 den Befehl verarbeiten wird. Nachdem die FPU 14 den Gleitkommabefehl über die Stufe I bis zur Stufe R verarbeitet hat, ist die Stufe A erreicht und hat das Datenverarbeitungssystem 10 einen Befehl (derjenige, der unmittelbar auf den Gleitkommabefehl bei diesem Beispiel folgt), der die Stufe R der Ausführung erreicht, und greift das System auf einen weiteren Befehl für die Stufe I zu.Suppose that during this operation of the data processing system 10, a floating point instruction is accessed from the storage system 18. The instruction is initially inspected by both the CPU 12 and the FPU 14, but as stated above, only the FPU 14 will process the instruction. After the FPU 14 has processed the floating point instruction via the Stage I through Stage R, Stage A is reached and the data processing system 10 has an instruction (the one immediately following the floating point instruction in this example) that reaches Stage R of execution, and the system accesses another instruction for Stage I.

Während der Ausführungstufe A des Gleitkommabefehls liegen die Exponentenfelder (E&sub1; und E&sub2;) der Operanden für diesen Befehl an der Ausnahmevorhersageeinheit 38 der FPU 14 (Fig. 1). Wenn der Rechenvorgang ein Multiplikations- oder Divisionsbefehl ist, führen die OP Signale dazu, daß (1) die Additions- oder Subtraktionsfunktion des Addierers 60 gewählt wird, (2) die Kriterien gewählt werden, gegenüber denen das durch den Addierer 60 erzeugte Ergebnis über das PLA 62 zu vergleichen ist, und (3) das Ausgangssignal (O) des PLA 62 freigegeben wird, während gleichzeitig das Ausgangssignal (O) des PLA 51 gesperrt wird. Wenn umgekehrt der auszuführende Rechenvorgang eine Additions- oder Subtraktionsoperation ist, dann wird das Ausgangssignal des PLA 62 gesperrt und wird das Ausgangsignal des PLA 51 freigegeben, um das Ergebnis des PLA 51 zur Ausnahmeverriegelungsschaltung 52 (über das ODER-Glied 54) gehen zu lassen.During the execution stage A of the floating point instruction, the exponent fields (E1 and E2) of the operands for that instruction are applied to the exception prediction unit 38 of the FPU 14 (Fig. 1). If the operation is a multiplication or division instruction, the OP signals result in (1) selecting the addition or subtraction function of the adder 60, (2) selecting the criteria against which the result produced by the adder 60 is to be compared via the PLA 62, and (3) enabling the output signal (O) of the PLA 62 while simultaneously disabling the output signal (O) of the PLA 51. Conversely, if the arithmetic operation to be performed is an addition or subtraction operation, then the output of the PLA 62 is disabled and the output of the PLA 51 is enabled to allow the result of the PLA 51 to go to the exception latch circuit 52 (via the OR gate 54).

Am Ende der Ausführungsstufe A des Gleitkommabefehls steht eine Vorhersage über den Ausnahmefall zur Verfügung. Wenn diese Vorhersage derart ist, daß die Gleitkommaberechnung nicht zu einem Ausnahmefall führen wird, dann bleibt die Leitung für das CP BUSY Signal inaktiv, setzt die CPU 12 ihren Arbeitsablauf fort und wird die Gleitkommaausführungseinheit den Rechenvorgang abschließen.At the end of execution stage A of the floating point instruction, a prediction of the exception is available. If this prediction is such that the floating point calculation will not result in an exception, then the line for the CP BUSY signal remains inactive, the CPU 12 continues its operation, and the floating point execution unit will complete the calculation.

Vom größerem Interesse ist der Fall, daß das PLA 51 oder 62 (in Abhängigkeit natürlich von der jeweiligen Operation) vorhersagt, daß ein Ausnahmefall auftreten wird. Diese Vorhersage aktiviert das CP BUSY Signal, das dann, wenn es von der Ausnahmeverriegelungsschaltung 52 an der CPU 12 liegt (Fig. 3), kurzzeitig den Arbeitsablauf der CPU 12 anhält. Für den jetzigen Zeitpunkt erfolgen keine weiteren Zugriffe an das Speichersystem 18 und wird die Ausführung der beiden Befehle, die auf den Gleittkommabefehl folgen, in der Schwebe gehalten; sie bleiben in ihren jeweiligen Stufen I und R der Ausführung. Der Gleitkommabefehl geht jedoch weiter bis zum Abschluß: die Gleitkomaausführungseinheit 42 (Fig.1) setzt die Ausführung des Rechenvorganges (beispielsweise Addition, Subtraktion, Multiplikation u.s.w.) fort, die vom Gleitkommabefehl gefordert wird.Of greater interest is the case where the PLA 51 or 62 (depending of course on the particular operation) predicts that an exception will occur. This prediction activates the CP BUSY signal which, when applied to the CPU 12 by the exception latch circuit 52 (Fig. 3), temporarily halts the operation of the CPU 12. No further accesses to the memory system are made at this time. 18 and the execution of the two instructions following the floating point instruction is held in abeyance; they remain in their respective stages I and R of execution. The floating point instruction, however, continues to completion: the floating point execution unit 42 (Fig. 1) continues to execute the arithmetic operation (e.g. addition, subtraction, multiplication, etc.) required by the floating point instruction.

Wenn am Ende des Rechenvorganges eine Gleitkommaausnahme auftritt, wie es vorhergesagt wurde, dann wird die Gleitkommaausführungseinheit 42 das INTERRUPT Signal aktivieren. Das INTERRUPT Signal liegt von der FPU 14 an der CPU 12, wodurch die CPU 12 dazu gebracht wird, aus ihrem kurzzeitig angehaltenen Zustand auf zuwachen und zwar mit der Kenntnis, daß eine Gleitkommaausnahme aufgetreten ist. Die Handhabung des Ausnahmefalles liegt nun bei der Software oder genauer beim Programmierer, um die notwendigen Schritte zur Handhabung des Ausnahmefalles zu ergreifen.If a floating point exception occurs at the end of the computation, as predicted, then the floating point execution unit 42 will assert the INTERRUPT signal. The INTERRUPT signal is provided from the FPU 14 to the CPU 12, causing the CPU 12 to wake up from its temporarily suspended state with the knowledge that a floating point exception has occurred. The handling of the exception now rests with the software, or more precisely, the programmer, to take the necessary steps to handle the exception.

Zu dem Zeitpunkt, zu dem das INTERRUPT Signal von der CPU 12 empfangen wird, wird die Adresse des Gleitkommabefehls, der die Unterbrechung hervorgerufen hat, von der PC Warteschlange 28 zum EPC 26 bewegt und dazu benutzt, auf das Speichersystem 18 zuzugreifen, um den Platz der Operanden (im System 10) zu bestimmen, die Gegenstand des Gleitkommabefehls sind. Das Softwareprogramm, in das als Folge des Auftretens des INTERRUPT Signals eingetreten wurde, führt nun die Modifikationen durch, die für die Operanden notwendig sind, wobei irgendeines der vielen bekannten technischen Verfahrens benutzt wird, die nun Teil der vorliegenden Erfindung sind. Der letzte Teil der Software setzt den Inhalt des PC 24 auf die Adresse des Befehls, der unmittelbar auf den Gleitkommabefehl folgt, und stellt die Steuerung des Systems auf den normalen Betrieb zurück. Das System 10 arbeitet nun wie bisher, indem es den Gleitkommabefehl mit angepaßten Operanden ausführt und auf die folgenden Befehle zugreift, um diese in die Pipeline zur Ausführung zu bringen.At the time the INTERRUPT signal is received by the CPU 12, the address of the floating point instruction which caused the interrupt is moved from the PC queue 28 to the EPC 26 and used to access the memory system 18 to determine the location of the operands (in the system 10) which are the subject of the floating point instruction. The software program entered as a result of the occurrence of the INTERRUPT signal now makes the modifications necessary to the operands using any of the many known techniques which now form part of the present invention. The last part of the software sets the contents of the PC 24 to the address of the instruction which immediately follows the floating point instruction and returns control of the system to normal operation. The system 10 now operates as before by executing the floating point instruction with adapted operands and accessing the following instructions to bring them into the pipeline for execution.

Claims (6)

1. Verfahren zur Durchführung von Berechnungen in einem Datenverarbeitungssystem (10) der Art mit einer ersten Prozessoreinheit (14) zur Durchführung von Gleitkommaberechnungen an ersten und zweiten Operanden jeweils mit einem Hochzahlfeld und einem Bruchzahlfeld, wobei das Verfahren die folgenden Schritte umfaßt:1. Method for performing calculations in a data processing system (10) of the type having a first processor unit (14) for performing floating point calculations on first and second operands each having an exponent field and a fractional field, wherein the method comprises the following steps: Speichern der eine Gleitkommaausnahme verursachenden Kriterien für jeden unterschiedlichen Typ von Gleitkommaberechnung, die mit der ersten Prozessoreinheit durchzuführen ist;storing the criteria for causing a floating point exception for each different type of floating point calculation to be performed by the first processing unit; Vergleichen einer Kombination der Hochzahlfelder der ersten und zweiten Operanden mit den eine Gleitkommaausnahme verursachenden Kriterien für die durchzuführende Gleitkommaberechnung;Comparing a combination of the exponent fields of the first and second operands with the criteria causing a floating point exception for the floating point calculation to be performed; Generieren eines Gleitkommaausnahme-Vorhersagesignals, wenn der Vergleichsschritt auf Grund der benutzten eine Gleitkommaausnahme verursachenden Kriterien die Möglichkeit des Auftretens einer Ausnahme anzeigt;generating a floating point exception prediction signal if the comparison step indicates the possibility of an exception occurring based on the floating point exception causing criteria used; wobei das Verfahren durch eine zweite Prozessoreinheit (12) gekennzeichnet ist, die parallel zu der von der einen Prozessoreinheit (14) durchgeführten Gleitpunktberechnung allgemeine Datenverarbeitungs aufgaben durchführt, sowie durch die folgenden Schritte:the method being characterized by a second processor unit (12) which performs general data processing tasks in parallel to the floating point calculation performed by the one processor unit (14), and by the following steps: vorübergehendes Anhalten der zweiten Prozessoreinheit in Reaktion auf das Vorliegen des Gleitkommaausnahmen- Vorhersagesignals;temporarily stopping the second processor unit in response to the presence of the floating point exception prediction signal; Durchführen der Gleitkommaberechnung; undPerforming the floating point calculation; and Wiederaufnahme des Betriebs der zweiten Prozessoreinheit, wenn die Gleitkommaberechnung nicht zu einer tatsächlichen Gleitkommaausnahme führt.Resume operation of the second processor unit if the floating-point calculation does not result in an actual floating-point exception. 2. Verfahren nach Anspruch 1, das die folgenden Schritte umfaßt:2. A method according to claim 1, comprising the following steps: Generieren eines Unterbrechungssignals, wenn der Abschluß der Berechnung zu der tatsächlichen Gleitkoinmaausnahme führt;Generate an interrupt signal when the completion of the calculation is too close to the actual floating point exception; Wiederaufnahme des Betriebs der anderen prozessoreinheit in Reaktion auf die Unterbrechung, um die Gleitkommaausnahme durch eine teilweise Abgleichung der die Ausnahme verursachenden Gleitkommaoperanden zu bearbeiten; undresuming operation of the other processing unit in response to the interrupt to handle the floating-point exception by partially matching the floating-point operands causing the exception; and erneute Durchführung der Gleitkommaberechnung mit den abgeglichenen Gleitkommaoperanden.re-execute the floating point calculation with the adjusted floating point operands. 3. Vorrichtung zur Durchführung von Berechnungen in einem Datenverarbeitungssystem (10) der Art mit einer ersten prozessoreinheit (14) zur Durchführung von Gleitkommaberechnungen an ersten und zweiten Operanden jeweils mit einem Hochzahlfeld und einem Bruchzahlfeld, wobei die erste Prozessoreinheit (14) folgendes umfaßt: ein Mittel zum Speichern der eine Gleitkommaausnahme verursachenden Kriterien für jeden unterschiedlichen Typ von Gleitkommaberechnung, die mit der ersten Prozessoreinheit durchzuführen ist; einen Komparator (50, 60, 62) zum Vergleichen einer Kombination der Hochzahlfelder der ersten und zweiten Operanden mit den eine Gleitkommaausnahme verursachenden Kriterien für die durchzuführende Gleitkommaberechnung; und einen Generator (52, 54) zur Erzeugung eines Gleitkommaausnahmen- Vorhersagesignals in Reaktion darauf, daß der Komparator auf Grund der benutzten eine Gleitkommaausnahme verursachenden Kriterien die Möglichkeit des Auftretens einer Ausnahme anzeigt; gekennzeichnet durch eine zweite Prozessoreinheit (12), die parallel zu der von der ersten Prozessoreinheit (14) durchgeführten Gleitpunktberechnungen allgemeine Datenverarbeitungsaufgaben durchführt, wobei die Vorrichtung weiter gekennzeichnet ist durch ein Mittel zum vorübergehenden Anhalten der zweiten Prozessoreinheit in Reaktion auf das Vorliegen des Gleitkommaausnahmen- Vorhersagesignals und zur Wiederaufnahme des Betriebs, wenn die Gleitkoinmaberechnung nicht zu einer tatsächlichen Gleitkommaausnahme führt.3. Apparatus for performing calculations in a data processing system (10) of the type having a first processor unit (14) for performing floating point calculations on first and second operands each having an exponential field and a fractional field, the first processor unit (14) comprising: means for storing the floating point exception causing criteria for each different type of floating point calculation to be performed by the first processor unit; a comparator (50, 60, 62) for comparing a combination of the exponential fields of the first and second operands with the floating point exception causing criteria for the floating point calculation to be performed; and a generator (52, 54) for generating a floating point exception prediction signal in response to the comparator indicating the possibility of an exception occurring based on the floating point exception causing criteria used; characterized by a second processor unit (12) which performs general data processing tasks in parallel with the floating point calculations performed by the first processor unit (14), the apparatus being further characterized by means for temporarily stopping the second processor unit in response to the presence of the floating point exception prediction signal and for resuming operation if the floating point calculation does not result in an actual floating point exception. 4. Vorrichtung nach Anspruch 31 wobei der Komparator eine erste Schaltung (38, 50) zum Vergleichen der Gleitkommaoperanden mit ersten vorbestimmten Kriterien zum Addieren, Subtrahieren und für unäre Berechnungen und zum Erzeugen eines ersten Signals, wenn der Vergleich die Möglichkeit des Auftretens einer Gleitkommaausnahme anzeigt, und eine zweite Schaltung (38, 60, 62) zum Vergleichen einer Kombination der Hochzahlfelder der ersten und zweiten Operanden mit zweiten vorbestimmten Kriterien für Gleitkomma-Multiplikations- und Divisionsberechnungen und zum Generieren eines zweiten Signals umfaßt, wenn der Vergleich die Möglichkeit des Auftretens einer Gleitkommaausnahme anzeigt; und wobei das Generierungsmittel (52, 54) ein Gleitkommaausnahmen- Vorhersagesignal (CP Busy) sendet, wenn das erste oder das zweite Signal generiert wird.4. Apparatus according to claim 31, wherein the comparator comprises a first circuit (38, 50) for comparing the floating point operands with first predetermined criteria for addition, subtraction and unary calculations and for generating a first signal when the comparison indicates the possibility of a floating point exception occurring, and a second circuit (38, 60, 62) for comparing a combination of the exponent fields of the first and second operands with second predetermined criteria for floating point multiplication and division calculations and for generating a second signal when the comparison indicates the possibility of a floating point exception occurring; and wherein the generating means (52, 54) sends a floating point exception prediction signal (CP Busy) when the first or second signal is generated. 5. Vorrichtung nach Anspruch 3 oder 4 mit einem Mittel (42) zum Generieren eines Unterbrechungssignals bei Abschluß der Gleitkommaberechnung, wenn die Berechnung zu einer Gleitkommaausnahme führt, und ein Mittel zum Bearbeiten der Ausnahme.5. Apparatus according to claim 3 or 4, comprising means (42) for generating an interrupt signal upon completion of the floating point calculation if the calculation results in a floating point exception, and means for handling the exception. 6. Vorrichtung nach Anspruch 5, wobei das Mittel zum Bearbeiten der Ausnahme ein Mittel zum Abgleichen der Operanden sowie ein Mittel zur Wiederaufnahme des Betriebs der anderen Prozessoreinheit mit einer Gleitkommaberechnung mit den abgeglichenen Operanden beinhaltet.6. The apparatus of claim 5, wherein the means for handling the exception includes means for matching the operands and means for resuming operation of the other processor unit with a floating point calculation with the matched operands.
DE68926063T 1988-02-29 1989-02-24 Method and device for controlling processors by predicting exceptions to floating point arithmetic Expired - Lifetime DE68926063T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/161,543 US4879676A (en) 1988-02-29 1988-02-29 Method and apparatus for precise floating point exceptions

Publications (2)

Publication Number Publication Date
DE68926063D1 DE68926063D1 (en) 1996-05-02
DE68926063T2 true DE68926063T2 (en) 1996-11-28

Family

ID=22581611

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68926063T Expired - Lifetime DE68926063T2 (en) 1988-02-29 1989-02-24 Method and device for controlling processors by predicting exceptions to floating point arithmetic

Country Status (8)

Country Link
US (1) US4879676A (en)
EP (1) EP0331372B1 (en)
JP (1) JP3025776B2 (en)
KR (1) KR950003200B1 (en)
AU (1) AU603973B2 (en)
CA (1) CA1295742C (en)
DE (1) DE68926063T2 (en)
IL (1) IL89262A (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JPS63259727A (en) * 1987-04-17 1988-10-26 Hitachi Ltd Interface system for coprocessor
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
JP2858140B2 (en) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド Pipeline processor device and method
US4943941A (en) * 1989-01-13 1990-07-24 Bolt Beranek And Newman Inc. Floating point processor employing counter controlled shifting
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
US5093908A (en) * 1989-04-17 1992-03-03 International Business Machines Corporation Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5058048A (en) * 1990-04-02 1991-10-15 Advanced Micro Devices, Inc. Normalizing pipelined floating point processing unit
JP3089427B2 (en) * 1990-09-20 2000-09-18 松下電器産業株式会社 Data processing device
JP2682232B2 (en) * 1990-11-21 1997-11-26 松下電器産業株式会社 Floating point processor
JP2925818B2 (en) * 1991-04-05 1999-07-28 株式会社東芝 Parallel processing controller
DE69231720T2 (en) * 1991-12-10 2001-06-21 Fujitsu Ltd., Kawasaki Memory access device with address pipeline
US5257216A (en) * 1992-06-10 1993-10-26 Intel Corporation Floating point safe instruction recognition apparatus
US5559977A (en) * 1992-08-04 1996-09-24 Intel Corporation Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5481275A (en) 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
JP2847688B2 (en) * 1993-05-27 1999-01-20 松下電器産業株式会社 Program conversion device and processor
US5752013A (en) * 1993-06-30 1998-05-12 Intel Corporation Method and apparatus for providing precise fault tracing in a superscalar microprocessor
WO1995016955A1 (en) * 1993-12-15 1995-06-22 Silicon Graphics, Inc. Load latency of zero for floating point load instructions using a load data queue
US5537538A (en) * 1993-12-15 1996-07-16 Silicon Graphics, Inc. Debug mode for a superscalar RISC processor
KR0175116B1 (en) * 1993-12-15 1999-04-01 윌리엄 더블유. 켈리 Superscalar microprocessor instruction pipeline including in struction dispatch and release control
DE4434895C2 (en) * 1993-12-23 1998-12-24 Hewlett Packard Co Method and device for handling exceptional conditions
TW260765B (en) * 1994-03-31 1995-10-21 Ibm
US5530663A (en) * 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
US5548545A (en) * 1995-01-19 1996-08-20 Exponential Technology, Inc. Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
US5812439A (en) * 1995-10-10 1998-09-22 Microunity Systems Engineering, Inc. Technique of incorporating floating point information into processor instructions
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6275838B1 (en) 1997-12-03 2001-08-14 Intrinsity, Inc. Method and apparatus for an enhanced floating point unit with graphics and integer capabilities
US6460134B1 (en) 1997-12-03 2002-10-01 Intrinsity, Inc. Method and apparatus for a late pipeline enhanced floating point unit
US6044454A (en) * 1998-02-19 2000-03-28 International Business Machines Corporation IEEE compliant floating point unit
US6216222B1 (en) * 1998-05-14 2001-04-10 Arm Limited Handling exceptions in a pipelined data processing apparatus
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
JP2001092662A (en) 1999-09-22 2001-04-06 Toshiba Corp Processor core and processor using the same
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7373489B1 (en) * 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7437538B1 (en) 2004-06-30 2008-10-14 Sun Microsystems, Inc. Apparatus and method for reducing execution latency of floating point operations having special case operands
JP4500183B2 (en) 2005-02-25 2010-07-14 東芝機械株式会社 Transfer device
US7451171B1 (en) * 2008-03-31 2008-11-11 International Business Machines Corporation Systems, methods and computer program products for hardware assists for microcoded floating point divide and square root
US10514913B2 (en) 2017-06-23 2019-12-24 International Business Machines Corporation Compiler controls for program regions
US10379851B2 (en) 2017-06-23 2019-08-13 International Business Machines Corporation Fine-grained management of exception enablement of floating point controls
US10684852B2 (en) 2017-06-23 2020-06-16 International Business Machines Corporation Employing prefixes to control floating point operations
DE102022104815A1 (en) 2022-03-01 2023-09-07 Schaeffler Technologies AG & Co. KG Hybrid powertrain control method
DE102022111312A1 (en) 2022-05-06 2023-11-09 Schaeffler Technologies AG & Co. KG Dedicated hybrid powertrain and method for controlling the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53135531A (en) * 1977-05-02 1978-11-27 Hitachi Ltd Data processor
AU549632B2 (en) * 1981-04-23 1986-02-06 Data General Corporation Floating point notation
JPS5892041A (en) * 1981-11-27 1983-06-01 Hitachi Ltd Data processor
JPS5943440A (en) * 1982-09-03 1984-03-10 Toshiba Corp Arithmetic control system
US4587612A (en) * 1982-10-22 1986-05-06 International Business Machines Corporation Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
JPS59139448A (en) * 1983-01-28 1984-08-10 Matsushita Electric Ind Co Ltd Floating-point multiplying device
US4773035A (en) * 1984-10-19 1988-09-20 Amdahl Corporation Pipelined data processing system utilizing ideal floating point execution condition detection
JPS61288226A (en) * 1985-06-17 1986-12-18 Panafacom Ltd External condition control system
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations

Also Published As

Publication number Publication date
EP0331372B1 (en) 1996-03-27
JPH0210427A (en) 1990-01-16
KR890013553A (en) 1989-09-23
KR950003200B1 (en) 1995-04-04
DE68926063D1 (en) 1996-05-02
IL89262A (en) 1992-08-18
JP3025776B2 (en) 2000-03-27
CA1295742C (en) 1992-02-11
EP0331372A2 (en) 1989-09-06
EP0331372A3 (en) 1990-07-04
AU603973B2 (en) 1990-11-29
IL89262A0 (en) 1989-09-10
US4879676A (en) 1989-11-07
AU3076589A (en) 1989-08-31

Similar Documents

Publication Publication Date Title
DE68926063T2 (en) Method and device for controlling processors by predicting exceptions to floating point arithmetic
DE3650413T2 (en) Method and device for canceling a command.
DE69028138T2 (en) Mechanism for the precise handling of exceptions in a processor with paired instructions
DE68927911T2 (en) Data processing system
DE69033443T2 (en) Branch reset mechanism in a paired instruction processor
DE19983860B4 (en) A method and apparatus for improved predicate prediction
DE69033398T2 (en) Computer architecture with multiple command output
DE68927371T2 (en) Method and device for processing multiple status codes as for a parallel pipeline computer
DE69430838T2 (en) Circuit and method for parallel shifting and addition
DE69308548T2 (en) DEVICE AND METHOD FOR COMPLETING THE COMMAND IN A SUPER-SCALAR PROCESSOR.
DE69032635T2 (en) Method and device for identifying resource conflicts in a pipeline processing unit
DE69327637T2 (en) Superscalar computer system
DE69031991T2 (en) Method and device for accelerating branch instructions
DE69622305T2 (en) Process and device for an optimizing compiler
DE4434895C2 (en) Method and device for handling exceptional conditions
DE102020120019A1 (en) PROACTIVE DI / DT VOLTAGE ROOF DESCENT ATTENUATION
DE69131544T2 (en) Floating point arithmetic unit
DE4211245B4 (en) Processor system in parallel processing type and method for its control
DE68924400T2 (en) Assembly line data processing device.
DE19506435C2 (en) Method and apparatus for avoiding write-back conflicts between execution units using a common writeback path
DE102009030525A1 (en) Efficient Parallel Handling of Floating Point Exceptions in a Processor
DE69130757T2 (en) Execution device for conditional branch instructions
DE112011103195T5 (en) Function unit for calculating leading zeros of vectors, trailing zeros of vectors, the number of ones of vector operands and the vector parity
DE112004001040B4 (en) Method and data processor with reduced operation interruption due to operand dependencies
DE69901338T2 (en) MICROPROCESSOR WITH SEVERAL REGISTER SETS THAT HAVE THE SAME LOGICAL SPACE

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MIPS TECHNOLOGIES,INC., MOUNTAIN VIEW,CALIF.,, US