Abstract:
A system, method, and a computer readable for inserting data into a cache memory based on information in a semi-synchronous memory copy instruction are disclosed. The method comprises determining a start of a semi-synchronous memory copy operation. The semi-synchronous memory copy operation is checked for a given value in at least one cache injection bit. In response to the given value in the cache injection bit, a predefined number of lines of destination data is copied into at least one level of cache memory.
Abstract:
Verarbeitungseinheit zum Ausführen einer oder mehrerer Anweisungen, wobei die Verarbeitungseinheit aufweist:eine Lade-Speicher-Einheit (LSU), die dazu ausgebildet ist, eine Mehrzahl von Anweisungen in einem Out-of-Order(OoO)-Fenster mithilfe mehrerer LSU-Pipes auszuführen durch:Auswählen einer Anweisung aus dem OoO-Fenster, wobei die Anweisung eine erste effektive Adresse verwendet; undin Reaktion darauf, dass es sich bei der Anweisung um eine Ladeanweisung handelt:in Reaktion darauf, dass die Verarbeitungseinheit in einem Einzel-Thread-Modus arbeitet, Erstellen eines Eintrags in einer ersten Unterteilung einer Ladeneuordnungs-Warteschlange auf Grundlage dessen, dass die Anweisung in einer ersten Lade-Pipe ausgegeben wird, und Erstellen des Eintrags in einer zweiten Unterteilung der Ladeneuordnungs-Warteschlange auf Grundlage dessen, dass die Anweisung in einer zweiten Lade-Pipe ausgegeben wird; undin Reaktion darauf, dass die Verarbeitungseinheit in einem Multi-Thread-Modus arbeitet, in dem mehrere Threads gleichzeitig verarbeitet werden, Erstellen des Eintrags in einem ersten vorgegebenen Abschnitt der ersten Unterteilung der Ladeneuordnungs-Warteschlange auf Grundlage dessen, dass die Anweisung in der ersten Lade-Pipe und durch einen ersten Thread der Verarbeitungseinheit ausgegeben wird,wobei die LSU ausgebildet ist zu einem:Erzeugen einer realen Adresse auf der Grundlage der ersten effektiven Adresse in der Anweisung;in Reaktion auf das Erkennen, dass eine Effektiv-Real-Tabelle (ERT) keinen Eintrag für die reale Adresse enthält, Einfügen eines Eintrags in die ERT, der die reale Adresse und mindestens einen Teil der ersten effektiven Adresse umfasst, wobei zum Zeitpunkt der Ausführung der Anweisung auf die reale Adresse aus dem Eintrag in der ERT zugegriffen wird;in Reaktion auf das Erkennen, dass die ERT bereits einen Eintrag für die reale Adresse mit einer zweiten effektiven Adresse enthält: in Reaktion darauf, dass eine der ersten effektiven Adresse zugeordnete Seitengröße größer ist als eine der zweiten effektiven Adresse zugeordnete Seitengröße, Entfernen des Eintrags für die reale Adresse mit der zweiten effektiven Adresse und Einfügen eines neuen Eintrags in die ERT für die erste effektive Adresse, andernfalls Einfügen eines Eintrags in eine Synonymerkennungstabelle (SDT), die das Auflösen von Fällen erleichtert, in denen zwei oder mehr verschiedene effektive Adressen derselben realen Adresse zugeordnet sind, wobei der Eintrag in der SDT eine Kennung des Eintrags in der ERT und den mindestens einen Teil der ersten effektiven Adresse enthält.
Abstract:
An accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor provides a mechanism for accounting for processor resource usage by programs and thread s within programs. Relative resource use is determined by detecting instructio n dispatches for multiple threads active within the processor, which may inclu de idle threads that are still occupying processor resources. If instructions a re dispatched for all threads or no threads, the processor cycle is accounted equally to all threads. Alternatively if no threads are in a dispatch state, the accounting may be made using a prior state, or in conformity with ratios of the threads' priority levels. If only one thread is dispatching, that thread is accounted the entire processor cycle. If multiple threads are dispatching, but less than all threads are dispatching (in processors supporting more than two threads), the processor cycle is billed evenly acro ss the dispatching threads. Multiple dispatches may be detected for the threads and a fractional resource usage determined for each thread and the counters may be updated in accordance with their fractional usage.
Abstract:
Un método para contabilizar el tiempo de uso de un procesador que da soporte a la ejecución concurrente de una pluralidad de hilos de hardware y que tiene una pluralidad de recursos usados por dicha pluralidad de hilos de hardware, comprendiendo el método: en cada ciclo de reloj de procesador, determinar el uso relativo de recursos en base a si cada hilo de hardware está o no en un estado particular de ciclo de procesador; y en respuesta a dicha determinación, actualizar una pluralidad de cuentas de uso de recursos de procesador, cada una de ellas asociada a un hilo particular de los hilos de hardware en conformidad con dicho uso relativo de recursos, caracterizado porque dicha actualización se realiza por igual en cada una de dicha pluralidad de dichas cuentas de uso de recursos de procesador en respuesta a la determinación de que ninguno de dicha pluralidad de hilos de hardware se encuentra en dicho estado particular de ciclo.
Abstract:
A superscalar processor and method are disclosed for improving the accuracy of predictions of a destination of a branch instruction utilizing a cache. The cache is established including multiple entries. Each of multiple branch instructions are associated with one of the entries of the cache. One of the entries of the cache includes a stored predicted destination for the branch instruction associated with this entry of the cache. The predicted destination is a destination the branch instruction is of predicted to branch to upon execution of the branch instruction. The stored predicted destination is updated in the one of the entries of the cache only in response to two consecutive mispredictions of the destination of the branch instruction, wherein the two consecutive mispredictions were made utilizing the one of the entries of the cache.
Abstract:
Technische Lösungen werden für eine Lade-Speicher-Einheit (LSU) beschrieben, die eine Mehrzahl von Anweisungen in einem Out-of-Order(OoO)-Fenster mithilfe mehrerer LSU-Pipes ausführt. Die Ausführung enthält ein Auswählen einer Anweisung aus dem OoO-Fenster, wobei die Anweisung eine effektive Adresse verwendet; und wenn es sich bei der Anweisung um eine Ladeanweisung handelt: und wenn die Verarbeitungseinheit in einem Einzel-Thread-Modus arbeitet, Erstellen eines Eintrags in einer ersten Unterteilung einer Ladeneuordnungs-Warteschlange (LRQ), wenn die Anweisung in einer ersten Lade-Pipe ausgegeben wird, und Erstellen des Eintrags in einer zweiten Unterteilung der LRQ, wenn die Anweisung in einer zweiten Lade-Pipe ausgegeben wird. Wenn die Verarbeitungseinheit des Weiteren in einem Multi-Thread-Modus arbeitet, Erstellen des Eintrags in einem ersten vorgegebenen Abschnitt der ersten Unterteilung der LRQ, wenn die Anweisung in der ersten Lade-Pipe und durch einen ersten Thread der Verarbeitungseinheit ausgegeben wird.
Abstract:
An accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor provides a mechanism for accounting for processor resource usage by programs and thread s within programs. Relative resource use is determined by detecting instructio n dispatches for multiple threads active within the processor, which may inclu de idle threads that are still occupying processor resources. If instructions a re dispatched for all threads or no threads, the processor cycle is accounted equally to all threads. Alternatively if no threads are in a dispatch state, the accounting may be made using a prior state, or in conformity with ratios of the threads' priority levels. If only one thread is dispatching, that thread is accounted the entire processor cycle. If multiple threads are dispatching, but less than all threads are dispatching (in processors supporting more than two threads), the processor cycle is billed evenly acro ss the dispatching threads. Multiple dispatches may be detected for the threads and a fractional resource usage determined for each thread and the counters may be updated in accordance with their fractional usage.
Abstract:
Processor time accounting is enhanced by per-thread internal resource usage counter circuits that account for usage of processor core resources to the threads that use them. Relative resource use can be determined by detecting events such as instruction dispatches for multiple threads active within the processor, which may include idle threads that are still occupying processor resources. The values of the resource usage counters are used periodically to determine relative usage of the processor core by the multiple threads. If all of the events are for a single thread during a given period, the processor time is allocated to the single thread. If no events occur in the given period, then the processor time can be equally allocated among threads. If multiple threads are generating events, a fractional resource usage can be determined for each thread and the counters may be updated in accordance with their fractional usage.
Abstract:
Auf einem Computer implementiertes Verfahren, das aufweist:Erkennen in einer Anweisungssequenzbildungseinheit (ISU) eines Out-of-Order(OoO)-Prozessors, dass sämtliche Anweisungen in einer ersten Gruppe von momentan ausgeführten Anweisungen einen Status beendet aufweisen, wobei die erste Gruppe einem Eintrag in einer globalen Abschlusstabelle (GCT) zugehörig ist, die eine Zuteilungsreihenfolge und einen Status von Gruppen von momentan ausgeführten Anweisungen verfolgt; wobei die Zuteilungsreihenfolge angibt, dass es sich bei der ersten Gruppe von momentan ausgeführten Anweisungen um die älteste der GCT zugehörige Gruppe handelt;Ermitteln, dass es sich bei dem Eintrag in der GCT um einen zusammengefügten Eintrag handelt, der sowohl der ersten Gruppe von momentan ausgeführten Anweisungen als auch einer zweiten Gruppe von momentan ausgeführten Anweisungen zugehörig ist, die unmittelbar im Anschluss an die erste Gruppe von momentan ausgeführten Anweisungen zugeteilt worden ist, wobei die zweite Gruppe der momentan ausgeführten Anweisungen vor dem Zusammenführen der ersten Gruppe von momentan ausgeführten Anweisungen und der zweiten Gruppe von momentan ausgeführten Anweisungen einen eigenen Eintrag in der GCT hatte, wobei jeder GCT-Eintrag ein erstes Gruppenkennzeichen (GTAG = Group Tag) aufweist von dem ausgehend bei jedem Leeren alle jüngeren GTAGs eliminiert werden, und wobei der zweite GCT-Eintrag ein zweites Gruppenkennzeichen (GTAG = Group Tag) aufweist, von dem beim Abschließen einer Gruppe von Anweisungen ältere GTAGs festgeschrieben werden, und;Abschließen der ersten Gruppe von momentan ausgeführten Anweisungen und der zweiten Gruppe von momentan ausgeführten Anweisungen in einem einzigen Prozessorzyklus, wobei das Abschließen zumindest zum Teil auf einem Erkennen beruht, dass sämtliche Anweisungen des zusammengefügten Eintrags den Status beendet aufweisen, wobei das Abschließen ein Anfordern einer Freigabe von Ressourcen aufweist, die sowohl durch die erste als auch durch die zweite Gruppe von momentan ausgeführten Anweisungen genutzt wurden,wobei Felder jedes GCT-Eintrages zur Anzahl von Lade- und Speicheroperationen nach dem Zusammenführen eine Summe der entsprechenden Einträge vor dem Zusammenführen aufweisen, undwobei beim Festschreiben einer zusammengeführten Gruppe ausgehend vom ältesten GTAG alle Einträge in der zugehörigen GCT bis zu dem in dem zusammengeführten GCT-Eintrag angegebenen Abgeschlossen-Eintrag (Cmpl) festgeschrieben werden, undwobei das Abschließen ein Aktualisieren von Abschlussdaten bei dem entsprechenden GCT-Eintrag aufweist, wobei die Abschussdaten mindestens eines ausgewählt aus der nachfolgenden Gruppe aufweisen:eine Gesamtanzahl von Anweisungen in beiden Gruppen von Anweisungen,eine Gesamtanzahl von Ladevorgängen in beiden Gruppen von Anweisungen,eine Gesamtzahl von Speichervorgängen in beiden Gruppen von Anweisungen, unddas/die GTAG(s) für die zusammengefügte Gruppe.
Abstract:
Technische Lösungen zum Ausgeben einer Mehrzahl von Anweisungen aus einem Out-of-Order(OoO)-Fenster durch eine Lade-Speicher-Einheit (LSU) werden beschrieben. Das Ausgeben enthält in Reaktion auf ein Ermitteln, dass eine erste effektive Adresse durch eine erste Anweisung verwendet wird, wobei die erste effektive Adresse einer ersten realen Adresse entspricht, ein Erstellen eines Eintrags einer Effektiv-Real-Tabelle (ERT) in einer ERT, wobei der ERT-Eintrag die erste effektive Adresse der ersten realen Adresse zuordnet. Des Weiteren enthält die Ausführung in Reaktion auf ein Ermitteln eines Synonyms einer effektiven Adresse, das durch eine zweite Anweisung verwendet wird, wobei es sich bei dem Synonym der effektiven Adresse um eine zweite effektive Adresse handelt, die auch der ersten realen Adresse entspricht: ein Erstellen eines Eintrags einer Synonymerkennungstabelle (SDT) in einer SDT, wobei der SDT-Eintrag die zweite effektive Adresse dem ERT-Eintrag zuordnet, und ein Neustarten der zweiten Anweisung durch Ersetzen der zweiten effektiven Adresse in der zweiten Anweisung durch die erste effektive Adresse.