Hat das RPi also eine Unterstützung für harte Posen?
Ja, speziell (auf dem Original-Pi) VFPv2.
Wenn ja, ist es schneller, dass weiche Schwimmer?
Ja
Es gibt einige Artikel, die besagen, dass es am besten ist, Soft-Float-Algorithmen auf ARM-Geräten zu verwenden, da nur sehr wenige ARM-Chips über Hard-Float-Coprozessoren verfügen.
Im Jahr 2007 war Floating Point on Arm ein Chaos, viele Chips hatten überhaupt keine FPU. Diejenigen, die dies taten, hatten oft eine von mehreren verschiedenen und inkompatiblen. Der schlechtere Debian-Arm (einer der wichtigsten Linux-Distributionen zu dieser Zeit) wurde aus historischen Gründen für eine FPU namens FPA gebaut, die nur sehr wenige Chips hatte und sich hauptsächlich auf die Kernel-Emulation für Gleitkommazahlen stützte (Software-Gleitkommazahlen sind langsame, kernel-emulierte Gleitkommazahlen) ist langsamer). Ich denke, die Situation in anderen Distributionen war ähnlich, aber das sehe ich nicht positiv.
Angesichts der Unordnung zu der Zeit wurde entschieden, dass die beste Option darin bestand, einen EABI-Port unter Verwendung der Basisversion (Soft-Float-Version) von EABI zu erstellen. Dieses ABI wurde so konzipiert, dass der Code das Basis-ABI verwenden und optional die FPU verwenden kann. Die Idee zu dieser Zeit war, dass der Kern der Distribution mit Software-Fließkommazahlen erstellt werden sollte und dass dann spezifischer Code, der stark mit Fließkommazahlen verwendet wurde, mit Hardware-Fließkommazahlen erstellt werden konnte, aber immer noch die Basis-ABI (soft float) verwendet. Dieser Hafen war in der Debian-Welt als "Armel" bekannt.
Das Bit "Spezifische Pakete, die mit Hardware-Gleitkommazahlen erstellt wurden" hat jedoch nicht wirklich funktioniert. In der Praxis machten sich nur wenige Pakete die Mühe, so etwas zu tun, und es gab auch den Aufwand für das Umstellen von Werten zwischen Ganzzahl- und Gleitkommaregistern.
Schneller Vorlauf bis 2011 und die Situation hatte sich erheblich geändert. Arm hatte VFP aggressiv vorangetrieben, und die große Mehrheit der "Anwendungsprozessoren" (wie man sie in Mobilfunktelefonen und ähnlichen Geräten findet) hatte es übernommen. Eine Reihe von großen Linux-Distributionen (zumindest Debian, Ubuntu und Fedora anfangs, später) entschieden sich dafür, Ports mit Hardware-Fließkommazahlen und dem Hard-Float-ABI zu erstellen. Unglücklicherweise für den Pi stellten diese Distributionen (die zu dem Zeitpunkt, als der Pi veröffentlicht wurde, die Vollendung erreichten) ihre minimalen Hardwareanforderungen als ARMv7 mit VFPv3_d16 ein, so dass sie nicht auf dem Pi liefen.
Also begannen Pi-Fans damit, an pi-spezifischen Distributionsvarianten zu arbeiten, die Hardware-Fließkommazahlen und das Hard-Float-ABI verwendeten, aber mit Compiler-Einstellungen erstellt wurden, die auf dem pi laufen würden.