Ein adaptiver Zwei-Ebenen-Prädiktor mit global gemeinsam genutztem Verlaufspuffer und Musterverlaufstabelle wird als “gshare”-Prädiktor bezeichnet, wenn er die globale Historie und den Zweig-PC xors, und “gselect”, wenn er sie verkettet. Globale Zweigvorhersage wird in AMD-Prozessoren und in Intel Pentium M-, Core-, Core-2- und Silvermont-basierten Atom-Prozessoren verwendet. [15] Der Missbrauch von intravenös verabreichten Amphetaminen hat sich zu einer etablierten und umfangreichen Form des Drogenmissbrauchs. Das Missbrauchspotenzial dieser Drogen, wenn sie auf dem intravenösen Weg eingenommen werden, ist größer als bei oraler Aufnahme und mit dem von Heroin oder Kokain vergleichbar. Toleranz baut sich schnell auf und es entwickelt sich ein Abstinenzsyndrom, das zu einem typischen Muster führt, bei dem der Benutzer das Medikament kontinuierlich und in immensen Dosen für etwa fünf Tage nimmt, während derer er nicht schläft. Während dieser Zeit wird er allmählich paranoider und unorganisierter. Er untergibt dann für ein oder zwei Tage und fällt in einen verlängerten semikomatose Zustand. Nach dem Erwachen ist er immer noch lethargisch und fühlt das Bedürfnis, seine Droge für eine neue Runde wieder aufzunehmen. Die Intel Pentium MMX, Pentium II und Pentium III verfügen über lokale Zweigprädiktoren mit einer lokalen 4-Bit-Historie und einer lokalen Musterverlaufstabelle mit 16 Einträgen für jeden bedingten Sprung. Der Vorteil des adaptiven Zwei-Ebenen-Prädiktors besteht darin, dass er schnell lernen kann, ein beliebiges sich wiederholendes Muster vorherzusagen. Diese Methode wurde von T.-Y.
erfunden. Yeh und Yale Patt an der University of Michigan. [14] Seit der erstmaligen Veröffentlichung im Jahr 1991 ist diese Methode sehr populär geworden. Varianten dieser Vorhersagemethode werden in den meisten modernen Mikroprozessoren verwendet. [Zitat erforderlich] Betrachten Sie das Beispiel von n = 2. Dies bedeutet, dass die letzten beiden Vorkommen der Verzweigung in einem Zwei-Bit-Schichtregister gespeichert werden. Dieses Zweigverlaufsregister kann vier verschiedene Binärwerte haben, 00, 01, 10 und 11, wobei Null “nicht genommen” und einer “genommen” bedeutet. Eine Musterverlaufstabelle enthält vier Einträge pro Zweig, einen für jeden der 22 = 4 möglichen Verzweigungshistorien, und jeder Eintrag in der Tabelle enthält einen Zwei-Bit-Saturating-Zähler vom gleichen Typ wie in Abbildung 2 für jeden Zweig. Das Branchenverlaufsregister wird verwendet, um auszuwählen, welcher der vier sättlichen Zähler verwendet werden soll. Wenn die Historie 00 ist, wird der erste Zähler verwendet.
Wenn die Historie 11 ist, dann wird der letzte der vier Zähler verwendet. Ein lokaler Zweigvorhersager verfügt über einen separaten Verlaufspuffer für jede bedingte Sprunganweisung. Es kann einen zweistufigen adaptiven Prädiktor verwenden. Der Verlaufspuffer ist für jede bedingte Sprunganweisung getrennt, während die Musterverlaufstabelle ebenfalls getrennt oder von allen bedingten Sprüngen gemeinsam genutzt werden kann. Ein vereinbarter Prädiktor ist ein adaptiver Prädiktor mit einem global gemeinsam genutzten Verlaufspuffer und einer Musterverlaufstabelle und einem zusätzlichen lokalen Saturating-Zähler. Die Ergebnisse der lokalen und der globalen Prädiktoren sind XORed miteinander, um die endgültige Vorhersage zu geben. Der Zweck besteht darin, Konflikte in der Musterverlaufstabelle zu reduzieren, in der zwei Zweige mit entgegengesetzter Vorhersage den gleichen Eintrag in der Musterverlaufstabelle verwenden. [17] Angenommen, es wird z. B. jedes dritte Mal ein bedingter Sprung gemacht.