A method and apparatus for fault handling in computer systems. In one
embodiment, a first register is used to store an address which points to
the top of a stack. The address stored in the first register may be
updated during the execution of an instruction. A second register may be
used to store an address previously first register. The contents of the
second register may be kept unchanged until the retirement of the
instruction that is currently executing. If a fault occurs during
execution of the instruction, a microcode fault handler may perform
routines that may clear the fault or those conditions which led to the
fault. The microcode fault handler may also copy the contents of the
second register back into the first register. Execution of the instruction
may be restarted from the operation just prior to when the fault occurred.
The program from which the instruction originated may then continue to
run. The first and second registers may be general purpose registers in
some embodiments, while special purpose registers may be used in other
embodiments.
Une méthode et un appareil pour le défaut manipulant dans les systèmes informatiques. Dans une incorporation, un premier registre est utilisé pour stocker une adresse qui se dirige au dessus d'une pile. L'adresse stockée dans le premier registre peut être mise à jour pendant l'exécution d'une instruction. Un deuxième registre peut être utilisé pour stocker un premier registre d'adresse précédemment. Le contenu du deuxième registre peut être maintenu inchangé jusqu'à la retraite de l'instruction qui s'exécute actuellement. Si un défaut se produit pendant l'exécution de l'instruction, un traiteur de défaut de microcode peut exécuter les routines qui peuvent dégager le défaut ou ces conditions qui ont mené au défaut. Le traiteur de défaut de microcode peut également copier le contenu du deuxième registre de nouveau dans le premier registre. L'exécution de l'instruction peut être remise en marche de l'opération juste avant quand le défaut s'est produit. Le programme dont l'instruction lancée peut alors continuer à fonctionner. Les premiers et deuxièmes registres peuvent être les registres tout usage dans quelques incorporations, alors que des registres spéciaux de but peuvent être utilisés dans d'autres incorporations.