A7-, A8- und A8x-Chips betroffen Apple verliert Patentstreit gegen Universität – darum geht es

Apple wurde verurteilt, der University of Wisconsin-Madison 506 Mio. Dollar wegen Patentverletzungen an einem Schaltkreis, der in iPhone- und iPad-Prozessoren zum Einsatz kommt, zu bezahlen. Damit wurde die bisher festgelegte Summe mehr als verdoppelt.

Im Dezember 1996 reichte die University of Wisconsin-Madison, konkret ihr Ableger Wisconsin Alumni Research Foundation, ein Patent für einen spezifischen Schaltkreis (dazu später mehr) ein, im Jahr 1998 wurde das Patent erteilt. Im Herbst 2015 wurde Apple zu einer Strafe von 234 Mio. Dollar verurteilt, weil er den Schaltkreis in seinen SoCs A7 (iPhone 5s), A8 (iPhone 6) und A8X (iPads mehrerer Generationen) benutzt hat. Nunmehr wurde Apple verurteilt, eine Zahlung von 1,61 Dollar pro betroffenes Gerät, das bis zum Urteil im Oktober 2015 verkauft wurde, und jeweils 2,74 Dollar für später verkaufte, an die Universität zu bezahlen. Apple war mit dem Versuch gescheitert, das Patent für ungültig zu erklären und ging gegen das Urteil in Berufung.

Im Jahr 2008 hatte die Uni wegen des gleichen Patents den Chip-Giganten Intel verklagt. Dort wurde allerdings eine außergerichtliche Einigung erzielt, über die beide Seiten Stillschweigen vereinbarten.

Bilder: 6

Schaltkreis der Wisconsin Alumni Research Foundation

Diesen Schaltkreis verwendet Apple in seinen A7-, A8- und A8X-Prozessoren für iPhone und iPad. Er reduziert die Daten-Fehlspekulationen und erhöht damit den Durchsatz der CPU.

Darum geht es in dem Patentstreit

Eine der größten Herausforderungen für Multi-Core-Prozessoren, die eine Out-of-Order-Befehlsausführung haben, sind nicht erkannte Datenabhängigkeiten und daraus resultierende Daten-Fehlspekulationen, die am Ende der CPU-Pipeline dazu führen, daß Instruktionen „gesquascht“ werden müssen, d.h. sie müssen aus der Pipeline entfernt werden, ohne daß Register- oder Speicherinhalte verändert worden wären. Eine Fehl-Spekulation bedeutet, daß Befehle Out-of-Order auf einer oder mehreren CPUs ausgeführt wurden, de facto aber von anderen früheren Befehlen in der Programmreihenfolge abhängen und damit ein fehlerhaftes Ergebnis liefern.

Tatsächlich ist es so, daß ein Prozessor ab einer bestimmten Prozentzahl von Daten-Fehlspekulationen einen geringeren Datendurchsatz hat als ein Prozessor, der überhaupt nicht auf Daten spekuliert. Das folgende kurze C-Codebeispiel zeigt die Problematik auf:

FOR i=0, i<N, i++

   A[i+1] = A[i] * 10

In Maschinencode umgesetzt ergibt sich das Ganze so:

LD A[1]

MUL 10

ST A[2]

LD A[2]

MUL 10

ST A[3]

u.s.w.

In diesem Fall darf auf keinen Fall die Instruktion LD A[2] ausgeführt werden, bevor ST A[2] abgeschlossen ist.

Die Forscher von der Uni Wisconsin haben nun herausgefunden, daß die Mehrzahl der Fehl-Spekulationen in einem Programmcode in der Regel nur einige wenige STORE/LOAD-Befehls-Paare betreffen. Weiterhin wurde festgestellt, daß für den Fall, daß ein bestimmtes Paar eine Daten-Fehlspekulation verursacht hat, es sehr wahrscheinlich ist, daß eine spätere Instanz desselben Paars zu einem späteren Zeitpunkt eine weitere Fehl-Spekulation verursachen wird.

Die Idee, diese Erkenntnisse auszunutzen, mündeten schließlich einem tabellenbasierten Ansatz für einen Daten-Spekulations-Schaltkreis, bei dem in einem kleinen Hochgeschwindigkeits-Speicher dynamisch Informationen über vorherige Fehl-Spekulationen abgelegt und vor Ausführung einer LOAD-Instruktion ausgewertet werden.

Falls es keine Historie über eine Fehlspekulation gibt, wird die (vermutlich datenunabhängige) Instruktion einfach ausgeführt. Falls es eine Fehl-Spekulation gab, wird basierend aus der Historie (wann und wieviele Fehl-Spekulationen gab es für die LOAD-Anweisung) entschieden, ob der Befehl ausgeführt oder erst einmal gewartet wird. Eine weitere Synchronisations-Tabelle, in welcher abhängige Lade- und Speicherbefehle abgelegt werden, legt dann fest, wann der Befehl tatsächlich zur Ausführung kommt.

In unserer Bilderstrecke ist der Schaltkreis in Gänze dargestellt. Die textlichen Erklärungen finden sich in der englischsprachigen Patentschrift, die Sie als PDF herunterladen können.