Zwischenspeichern von optimierten internen Befehlen in einem Schleifenpuffer

    公开(公告)号:DE102013204420A1

    公开(公告)日:2013-10-02

    申请号:DE102013204420

    申请日:2013-03-14

    Applicant: IBM

    Abstract: Ausführungsformen der Erfindung beziehen sich auf ein Computersystem zum Speichern einer internen Befehlsschleife in einem Schleifenpuffer. Das Computersystem beinhaltet einen Schleifenpuffer und einen Prozessor. Das Computersystem ist so konfiguriert, dass es ein Verfahren durchführt, das beinhaltet: Abrufen von Befehlen aus einem Speicher, um einen internen Befehl zu erzeugen, der ausgeführt wird, sowie Erkennen eines Anfangs einer ersten internen Befehlsschleife in den Befehlen, Feststellen, dass eine erste interne Befehlsschleife, die der ersten Befehlsschleife entspricht, nicht in dem Schleifenpuffer gespeichert ist, Abrufen der ersten Befehlsschleife, Optimieren von einem oder mehreren Befehlen, die der ersten Befehlsschleife entsprechen, um eine erste optimierte interne Befehlsschleife zu erzeugen, sowie Speichern der ersten optimierten internen Befehlsschleife in dem Schleifenpuffer auf der Grundlage der Feststellung, dass die erste interne Befehlsschleife nicht in dem Schleifenpuffer gespeichert ist.

    Wiederherstellen von Hardware-Transaktionen

    公开(公告)号:DE112015000294T5

    公开(公告)日:2016-09-08

    申请号:DE112015000294

    申请日:2015-02-19

    Applicant: IBM

    Abstract: Ein Transaktionsspeichersystem stellt eine teilweise ausgeführte Hardware-Transaktion wieder her. Ein Prozessor des Transaktionsspeichersystems ermittelt Informationen über eine About-to-fail-Routine für die transaktionsorientierte Ausführung eines Codebereichs einer Hardware-Transaktion. Der Prozessor sichert Zustandsinformationen der Hardware-Transaktion, wobei die Zustandsinformationen verwendet werden können, um festzustellen, ob die Hardware-Transaktion wiederhergestellt oder abgebrochen werden soll. Der Prozessor erkennt während der transaktionsorientierten Ausführung der Hardware-Transaktion eine ”About-to-fail-Bedingung”. Der Prozessor führt auf der Grundlage des Erkennens die About-to-fail-Routine aus, wobei er die Informationen über die About-to-fail-Routine verwendet, wobei die About-to-fail-Routine feststellt, ob die Hardware-Transaktion wiederhergestellt oder abgebrochen werden soll.

    Bilden von Anweisungsgruppen basierend auf der Optimierung von Anweisungen bei der Dekodierung

    公开(公告)号:DE102014109083A1

    公开(公告)日:2014-12-31

    申请号:DE102014109083

    申请日:2014-06-27

    Applicant: IBM

    Abstract: Anweisungen werden in Anweisungsgruppen basierend auf durchführbaren Optimierungen gruppiert. Eine Anweisung wird erhalten, und es wird bestimmt, ob die Anweisung in eine aktuelle Anweisungsgruppe oder eine andere Anweisungsgruppe aufgenommen werden soll. Die Bestimmung erfolgt auf der Basis davon, ob die Anweisung ein Optimierungskandidat ist, wie eine Optimierung der Anweisung bei der Dekodierung. Wenn bestimmt wird, dass die Anweisung in eine andere Gruppe aufgenommen werden soll, dann wird die andere Gruppe zur Aufnahme der Anweisung gebildet.

    Vorhersageeinheiten-Datenstruktur zur Verwendung bei der Verarbeitung im Pipelinesystem

    公开(公告)号:DE102014108753A1

    公开(公告)日:2014-12-31

    申请号:DE102014108753

    申请日:2014-06-23

    Applicant: IBM

    Abstract: Eine Vorhersageeinheiten-Datenstruktur wird durch einen in einem Pipeline System arbeitenden Prozessor zur Verarbeitung in einem Pipelinesystem verwendet. Die Vorhersageeinheiten-Datenstruktur weist eine vorhergesagte Adresse auf, die bei der Rückkehr von der Ausführung einer ausgewählten Anweisung zu verwenden ist, und einen zu der vorhergesagten Adresse gehörenden vorhergesagten Betriebszustand. Auf der Grundlage des Feststellens, dass eine ausgewählte Rückkehranweisung auszuführen ist, wird die vorhergesagte Adresse, zu der die Verarbeitung zurückkehren soll, von der Vorhersageeinheiten-Datenstruktur empfangen. Ferner wird auf der Grundlage des Feststellens, dass die ausgewählte Rückkehranweisung auszuführen ist, ein Übergangs-Betriebszustand vorhergesagt, der auf dem vorhergesagten Betriebszustand beruht, der in der Vorhersageeinheiten-Datenstruktur gespeichert ist, wobei mindestens eines aus der vorhergesagten Adresse und dem vorhergesagten Übergangs-Betriebszustand zu verwenden ist, um die Ausführung der ausgewählten Rückkehranweisung zu validieren.

    DECODIERZEIT-COMPUTERANWEISUNGSOPTIMIERUNG

    公开(公告)号:DE102012216565A1

    公开(公告)日:2013-04-04

    申请号:DE102012216565

    申请日:2012-09-17

    Applicant: IBM

    Abstract: Zwei Computer-Maschinenanweisungen werden zur Ausführung abgerufen, aber durch eine auszuführende einzige optimierte Anweisung ersetzt, wobei ein von den beiden Anweisungen verwendetes temporäres Register als ein Letztverwendungs-Register identifiziert wird, wobei ein Letztverwendungs-Register einen Wert hat, auf welchen spätere Anweisungen nicht zugreifen sollen, wodurch die beiden Computer-Maschinenanweisungen durch eine einzige optimierte interne Anweisung zur Ausführung ersetzt werden, wobei die einzige optimierte Anweisung das Letztverwendungs-Register nicht enthält.

    METHOD AND APPARATUS FOR IMPLEMENTING EXECUTION PREDICATES IN A COMPUTER PROCESSING SYSTEM

    公开(公告)号:MY125518A

    公开(公告)日:2006-08-30

    申请号:MYPI20003468

    申请日:2000-07-28

    Applicant: IBM

    Abstract: THERE IS PROVIDED A METHOD FOR EXECUTING AN ORDERED SEQUENCE OF INSTRUCTIONS IN A COMPUTER PROCESSING SYSTEM (300).THE SEQUENCE OF INSTRUCTIONS IS STORED IN A MEMORY (305) OF THE SYSTEM. AT LEAST ONE OF THE INSTRUCTIONS INCLUDES A PREDICATED INSTRUCTION THAT REPRESENTS AT LEAST ONE OPERATION THAT IS TO BE CONDITIONALLY PERFORMED BASED UPON AN ASSOCIATED FLAG VALUE. THE METHOD INCLUDES THE STEP OF FETCHING A GROUP OF INSTRUCTIONS FROM THE MEMORY. EXECUTION OF INSTRUCTIONS ARE SCHEDULED WITHIN THE GROUP, WHEREIN THE PREDICATED INSTRUCTION IS MOVED FROM ITS ORIGINAL POSITION IN THE ORDERED SEQUENCE OF INSTRUCTIONS TO AN OUT-OF-ORDER POSITION IN THE SEQUENCE OF INSTRUCTIONS. THE INSTRUCTIONS ARE EXECUTED IN RESPONSE TO THE SCHEDULING. IN ONE EMBODIMENT OF THE INVENTION, THE METHOD FURTHER INCLUDES GENERATING A PREDICTED VALUE FOR THE ASSOCIATED FLAG VALUE, WHEN THE ASSOCIATED FLAG VALUE IS NOT AVAILBALE AT EXECUTION OF THE PREDICATED INSTRUCTION. IN ANOTHER EMBODIMENT, THE METHOD FURTHER INCLUDES MODIFYING EXCUTION OF THE OPERATIONS REPRESENTED BY THE PREDICATED INSTRUCTION BASED UPON THE PREDICTED VALUE. IN YET ANOTHER EMBODIMENT, THE MODIFYING STEP INCLUDES SELECTIVELY SUPPRESSING EITHER THE EXECUTION OR WRITE BACK OF RESULTS GENERATED BY THE OPERATIONS REPRESENTED BY THE PREDICATED INSTRUCTION BASED UPON THE PREDICTED VALUE. IN STILL ANOTHER EMBODIMENT, THE METHOD INCLUDES PREDICATING A DATA DEPENDENCE RELATIONSHIP OF AN INSTRUCTION WITH A PREVIOUS PREDICATED INSTRUCTION OR ANOTHER PREVIOUS INSTRUCTION. THE CORRECTNESS OF THE RELATIONSHIP PREDICTION MAY BE VERYFIED, AND A SELECTION MAY BE MADE FROM AMONG A NUMBER OF PREDICTED DEPENDENCES. (FIG. 3)

    VORAUSSCHAUENDES ABRUFEN UND DECODIEREN BEI AUSGEWÄHLTEN ANWEISUNGEN

    公开(公告)号:DE102014108785A1

    公开(公告)日:2014-12-31

    申请号:DE102014108785

    申请日:2014-06-24

    Applicant: IBM

    Abstract: Vorausschauendes Abrufen und Decodieren bei ausgewählten Anweisungen (z. B. Betriebssystemanweisungen, Hypervisor-Anweisungen und andere derartige Anweisungen). Es wird eine Feststellung getroffen, dass eine ausgewählte Anweisung wie zum Beispiel eine Systemaufrufanweisung, ein asynchroner Interrupt, eine Rückkehr von einer Systemaufrufanweisung oder eine Rückkehr von einem asynchronen Interrupt auszuführen ist. Auf der Grundlage des Feststellens, dass eine derartige Anweisung auszuführen ist, wird eine vorhergesagte Adresse für die ausgewählte Anweisung ermittelt, bei der es sich um die Adresse handelt, zu der die Verarbeitung übergeht, um die angeforderten Dienste bereitzustellen. Anschließend wird vor der Ausführung der ausgewählten Anweisung, beginnend an der vorhergesagten Adresse, mit dem Abrufen von Anweisungen begonnen. Ferner wird ein spekulativer Zustand in Bezug auf eine ausgewählte Anweisung, einschließlich zum Beispiel einer Anzeige der Berechtigungsstufe der ausgewählten Anweisung oder Anweisungen, die im Auftrag der ausgewählten Anweisung ausgeführt wird bzw. werden, vorhergesagt und aufrechterhalten.

    NUTZUNG EINER ARCHITEKTURDEFINIERTEN LETZTVERWENDUNGS-OPERANDENANGABE IN EINEM COMPUTERSYSTEM-OPERANDENRESSOURCENPOOL

    公开(公告)号:DE102012216571A1

    公开(公告)日:2013-04-04

    申请号:DE102012216571

    申请日:2012-09-17

    Applicant: IBM

    Abstract: Ein Pool von verfügbaren physischen Registern wird für architekturdefinierte Register bereitgestellt, wobei Operationen durchgeführt werden, die ausgewählte architekturdefinierte Register aktivieren und inaktivieren, so dass die inaktivierten ausgewählten architekturdefinierten Register keine Werte aufzubewahren brauchen und physische Register aus ihren Zuordnungen in den Pool entlassen werden können, wobei die physischen Register nach einer Letztverwendung durch eine bezeichnete Letztverwendungs-Anweisung von ihren Zuordnungen befreit werden, wobei die Letztverwendungs-Information entweder durch die Letztverwendungs-Anweisung oder durch eine Präfixanweisung bereitgestellt wird, wobei Vorgänge des Lesens der von ihren Zuordnungen befreiten Architekturregister einen architekturdefinierten Standardwert liefern.

    VERWALTEN EINES REGISTER-CACHESPEICHERS AUF GRUNDLAGE EINES ARCHITEKTURDEFINIERTEN COMPUTERANWEISUNGSSATZES

    公开(公告)号:DE102012216567A1

    公开(公告)日:2013-04-04

    申请号:DE102012216567

    申请日:2012-09-17

    Applicant: IBM

    Abstract: Eine Mehrebenen-Registerhierarchie wird beschrieben, die einen Registerpool der ersten Ebene zum Cachespeicher-Zwischenspeichern (caching) von Registern aus einem Registerpool der zweiten Ebene in einem System aufweist, in welchem Programme architekturdefinierte Register dynamisch freigeben und wieder aktivieren können, so dass freigegebene architekturdefinierte Register nicht vom Prozessor aufrechterhalten zu werden brauchen, wobei der Prozessor auf Operanden aus dem Registerpool der ersten Ebene zugreift, wobei eine Letztverwendungs-Anweisung als eine Letztverwendung eines architekturdefinierten Registers vor seiner Freigabe aufweisend identifiziert wird, wobei das freiwerdende, letztmals verwendete architekturdefinierte Register die Mehrebenen-Registerhierarchie veranlasst, jede Entsprechung eines Eintrags zum letztmals verwendeten architekturdefinierten Register zu löschen.

    Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations

    公开(公告)号:GB2491768A

    公开(公告)日:2012-12-12

    申请号:GB201217266

    申请日:2011-02-25

    Applicant: IBM

    Abstract: Mechanisms for aggressively optimizing computer code (415) are provided. With these mechanisms, executable code (415) is received having a portion of code for which an aggressively compiled code version (420) and a conservatively compiled code version (430) of the portion of code are provided. The aggressively compiled code version (420) of the portion of code is executed (610) in a processor (206) of the data processing system (450). A determination (620) is made as to whether an exception condition occurs during execution of the aggressively compiled code version (420). Changes to a state of the portion of code are rolled-back (630) in response to a determination (620) that an exception condition occurs. The conservatively compiled code version (430) in the processor (206) of the data processing system (450) is executed in response to rolling-back (630) changes to the state of the portion of code.

Patent Agency Ranking