Viele Prozessorfehler bleiben geheim (Update)

Während die sogenannten Errata von AMD- und Intel-Prozessoren immer wieder zu Diskussionen anregen, erfährt die Öffentlichkeit über Fehler einiger anderer CPUs wenig.

In Pocket speichern vorlesen Druckansicht 116 Kommentare lesen
Lesezeit: 5 Min.

Halbleiterbauelemente, die aus Hunderttausenden oder Millionen von Transistoren bestehen, funktionieren niemals exakt so, wie es ihre Entwickler vorgesehen haben. Als vertrauensbildende Maßnahme veröffentlicht Intel seit dem weltberühmten FDIV-Bug des Pentium im Jahr 1995 recht ausführliche "Specification Updates" mit Prozessorfehlern. Auch AMD verrät CPU-Bugs nicht nur ausgewählten Entwicklern, sondern in Form von "Revision Guides" auch der Öffentlichkeit.

Viele Fehler der letztlich ausgelieferten Prozessorversionen treten ausschließlich unter sehr speziellen Bedingungen auf oder lassen sich durch sogenannte Microcode-Updates oder "Workarounds" in BIOS, Firmware, Betriebssystem oder Software vermeiden. Die Fehlerlisten sind also vorrangig für die Entwickler von Betriebssystemen, Compilern, Firmwares oder BIOS-Code interessant sowie für Programmierer systemnaher Software. Die meisten Laien können mangels Kenntnis des (kompilierten) Software-Codes, der auf ihren Systemen läuft, die Relevanz von CPU-Bugs auch kaum einschätzen.

Mit den Veröffentlichungen der zahlreichen Prozessorfehler setzen sich AMD und Intel trotzdem immer wieder Diskussionen um die Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeit ihrer Produkte aus, die teils hitzig geführt werden. Viele andere Prozessor- und Chiphersteller vermeiden solche Kritik, indem sie Fehlerlisten nur einem kleinen Kreis von Kunden und Entwicklern zugänglich machen und mit Geheimhaltungsvereinbarungen von Presse und Öffentlichkeit fernhalten.

Zwar weiß man auch bei den x86-CPUs von AMD und Intel nicht, wie schnell nach ihrer jeweiligen Entdeckung Fehler dokumentiert werden und ob die veröffentlichten "Errata"-Tabellen vollständig sind. Doch zu vielen weit verbreiteten Prozessoren fehlt jegliche öffentliche Fehlerdokumentation, oft gibt es nicht einmal Datenblätter mit Basisangaben zu Betriebsspannung, Leistungsaufnahme, Taktfrequenz, Grenztemperatur oder Produktvarianten. Damit vermeiden die jeweiligen Hersteller nicht nur Diskussionen, sondern auch die juristisch bindende Zusicherung bestimmter Produkteigenschaften. Embedded-Prozessoren kommen allerdings oft in kundenspezifischen Versionen zum Einsatz, so dass letztlich nur der jeweilige Hersteller des fertigen Produkts eine vollständige Dokumentation anfertigen könnte.

Beispiele für lückenhafte öffentliche Dokumentation sind Grafikprozessoren (GPUs) von AMD oder Nvidia, auch über x86-Prozessoren von VIA Technologies oder die Vortex86-CPUs erfahren Neugierige wenig. Dasselbe gilt für einige (aber nicht alle) Serverprozessoren von IBM und Sun sowie für viele Embedded-Prozessoren, darunter auch zahlreiche Systems-on-Chip (SoCs) mit ARM- oder MIPS-Rechenkernen. Selbst wenn eine umfangreiche Dokumentation vorhanden ist – etwa bei ARM oder MIPS selbst, aber unter anderem auch bei Freescale, NXP oder Texas Instruments (TI) –, so bekommen Endkunden letztlich kaum heraus, ob die in ihren Geräten jeweils eingebauten Prozessorkerne betroffen sind: Viele Fehler treten nur in bestimmten Chip-Versionen (Steppings) auf, die sich bei x86-Prozessoren recht einfach herausfinden lassen, aber bei Embedded-Kernen eher selten. Der weltweit sechstgrößte Halbleiterhersteller Qualcomm, dessen SoCs mit ARM-Kernen in zahlreichen Smartphones zum Einsatz kommen, stellt der Öffentlichkeit kaum Detailinformationen zur Verfügung; zu den aktuellen Snapdragon-SoCs mit den ARMv7-(Cortex-A8/9-)kompatiblen, aber von Qualcomm selbst entwickelten Scorpion-Kernen fehlen selbst einfache Datenblattangaben. Marvell bietet registrierten Entwicklern Zugang zu einem sogenannten Extranet, aber erst nach Unterzeichnung eines Non-Disclosure Agreements (NDAs), also einer Geheimhaltungsvereinbarung. Bei Samsung finden sich keine öffentlichen Fehlerlisten zu aktuellen ARM-SoCs. (Update:) Unter mangelhafter (öffentlicher) Dokumentation leiden immer wieder auch Open-Source-Projekte. Darüber beklagen sich beispielsweise OpenBSD-Entwickler, die das Betriebssystem auf den MIPS-kompatiblen Loongson-2 portieren (/Update).

Weil viele Embedded-Prozessorkerne wesentlich einfacher aufgebaut sind als aktuelle x86-Rechenkerne und bei gleicher Fertigungsstrukturgröße nur einen Bruchteil der Siliziumfläche belegen, dürften Fehler in den eigentlichen Rechenwerken wesentlich seltener auftreten. Andererseits wiederum werden die als Funktionsblöcke zugekauften Kerne von vielen Herstellern modifiziert und in unterschiedlichen Fertigungsverfahren produziert. Anscheinend dürfen die Hersteller kompletter SoCs ihrerseits keine geheimen Informationen zu den von ihnen verwendeten IP-Cores veröffentlichen; so verweist etwa TI in der Fehlerliste der OMAP3-Chips (PDF-Datei) darauf, dass Bugs des PowerVR-SGX-Grafikkerns ausschließlich von dessen Hersteller Imagination Technologies für API- und Code-Entwickler dokumentiert werden: "SGX is considered as a black box for most users; therefore, no detailed information about SGX bugs is provided in this document". Im gleichen Dokument verweist TI (ebenso wie auch Freescale) auch auf eine "Cortex-A8 (AT400/AT401) Errata Notice", die ARM anscheinend nicht öffentlich bereitstellt. Einige Cortex-A8-Bugs listet TI aber auch gleich selbst auf.

Während viele Prozessorfehler "nur" Abstürze oder Fehlfunktionen auslösen, gelten einige als sicherheitskritisch, weil Schadcode dadurch beispielsweise Zugriff auf Daten anderer laufender Applikationen erhalten kann, die etwa im RAM oder in Pufferspeichern (Caches) stehen. Es ist allerdings fraglich, wie relevant solche theoretisch möglichen Angriffe im Vergleich zu wesentlich einfacher realisierbaren Attacken mittels Trojanern, Phising-Webseiten oder Schadapplikationen sind. Auch die große Vielfalt unterschiedlicher Implementierungen von ARM-Kernen, die zudem unter vielen verschiedenen Betriebssystemen laufen, reduziert deren Attraktivität für Schadcode-Programmierer. Wenn aber einzelne, weitgehend identische Plattformen große Verbreitung erreichen, könnte sich das ändern – immerhin werden pro Jahr ungefähr viermal so viele Handys und Smartphones wie PCs verkauft. (ciw)