1 Punkte von GN⁺ 2024-04-08 | 1 Kommentare | Auf WhatsApp teilen

Gab es Prozessoren mit einem Befehl für die ganzzahlige Quadratwurzel?

  • Die Harris RTX 2000 Forth CPU bot einen mehrstufigen Befehl für die ganzzahlige Quadratwurzel.
  • ENIAC führte mit einem speziellen Divider-/Quadratwurzel-Rechner bis zu 3 Quadratwurzel-Operationen pro Sekunde aus.
  • Die effizienteste Methode zur Berechnung der ganzzahligen Quadratwurzel besteht darin, mit der Newton-Raphson-Iteration den Kehrwert (1/√x) zu berechnen und ihn dann mit der ursprünglichen Zahl zu multiplizieren.
  • Befehle, wie sie in modernen CPUs und GPUs verwendet werden, etwa frsqrte und frsqrts in ARMv8, dienen dazu, eine anfängliche Schätzung zu berechnen und die Genauigkeit iterativ zu erhöhen.
  • Für die Berechnung einer ganzzahligen Quadratwurzel ist ein präziser Integer-Multiplizierer mit großem Wertebereich erforderlich, den die meisten CPUs nicht besitzen.
  • Genauigkeit ist ein wichtiger Faktor, und die Befehle sind getrennt, damit Programmierer den Kompromiss zwischen Genauigkeit und Geschwindigkeit steuern können.

Meinung von GN⁺

  • Ein Befehl für die ganzzahlige Quadratwurzel kann in bestimmten Anwendungsfeldern nützlich sein, insbesondere bei Bereichen wie 3D-Grafikberechnungen.
  • Prozessoren mit einem solchen Befehl können durch spezielle Algorithmen Hochgeschwindigkeitsberechnungen ermöglichen und so komplexe Berechnungen auf Software-Ebene reduzieren.
  • Viele moderne Prozessoren haben solche Befehle jedoch nicht integriert und setzen stattdessen auf Softwarebibliotheken oder Mikrocode.
  • Der Ausgleich zwischen Genauigkeit und Geschwindigkeit ist wichtig, und Programmierer sollten ihn je nach Situation anpassen können.
  • Der Artikel bietet interessante Informationen für Menschen, die sich für Computergeschichte interessieren, insbesondere für diejenigen mit Interesse an Low-Level-Programmierung oder Systemdesign.

1 Kommentare

 
GN⁺ 2024-04-08
Hacker News-Kommentar
  • Der URSQRTE-Befehl von AArch64 NEON

    • Berechnet eine angenäherte inverse Quadratwurzel für einen Wert, der als 32-Bit-Festkomma-Ganzzahl interpretiert wird, halbiert diesen Wert und begrenzt ihn dann auf den Bereich von 0 bis 1-ε.
    • Der FRSQRTE-Befehl führt eine ähnliche Operation für 32-Bit-Gleitkommazahlen aus.
  • Möglichkeit der Berechnung innerhalb eines einzelnen Taktzyklus

    • Mit einer sehr großen Lookup-Tabelle ist das möglich.
    • Je nach Anzahl der seriellen Logikgatter, die innerhalb eines Taktzyklus durchlaufen werden können, lässt sich die Tabellengröße reduzieren.
  • VAX-Mikrocode

    • Spekulation, dass VAX vermutlich eine Quadratwurzel-Berechnungsfunktion hatte.
  • Berechnung von Quadratwurzeln mit elektromechanischen Geräten

    • Der Friden SRQ berechnet Quadratwurzeln nur mit Addition und Shifts, ganz ohne elektronische Bauteile.
    • Da der Dezimalpunkt manuell angepasst werden muss, kann man das technisch als Ganzzahlarithmetik betrachten.
  • Methode zur Berechnung der ganzzahligen Quadratwurzel

    • Mit der Zahlenfolge 1 + 3 + 5 + ... + (2k + 1) lässt sich die ganzzahlige Quadratwurzel bestimmen.
  • Humorvolle Antwort zu ENIAC

    • Es wird erwähnt, dass die Antwort „ENIAC“ witzig sei.
  • Methode zur angenäherten Berechnung der Quadratwurzel

    • Man kann eine ungefähre Quadratwurzel berechnen, indem man Log2(x) durch die „Anzahl führender Nullen“ ersetzt.
  • Analyse eines Quadratwurzel-Algorithmus für Fans des 6502-Mikroprozessors

    • Es gibt eine gründliche Analyse eines Quadratwurzel-Algorithmus für den 6502-Mikroprozessor.
  • Der VSQRT-Befehl von ARM VFP

    • ARM VFP verfügt mit VSQRT über einen Befehl zur Quadratwurzelberechnung.
  • Sehr grobe Methode zur Berechnung der Quadratwurzel

    • Man kann eine grobe Quadratwurzel erhalten, indem man um die Hälfte der Position der führenden 1 nach rechts schiebt.
    • Diese Methode ist als Anfangsschätzung für genauere Berechnungen wie das Newton-Raphson-Verfahren nützlich.