1 poin oleh GN⁺ 2024-04-08 | 1 komentar | Bagikan ke WhatsApp

Apakah pernah ada prosesor yang mengimplementasikan instruksi akar kuadrat bilangan bulat?

  • Harris RTX 2000 Forth CPU menyediakan instruksi akar kuadrat bilangan bulat multilangkah.
  • ENIAC menggunakan pembagi/kalkulator akar kuadrat khusus untuk melakukan hingga 3 operasi akar kuadrat per detik.
  • Cara paling efisien untuk menghitung akar kuadrat bilangan bulat adalah menggunakan iterasi Newton-Raphson untuk menghitung nilai resiprokal (1/√x), lalu mengalikannya dengan bilangan asal.
  • Instruksi yang digunakan pada CPU dan GPU modern seperti frsqrte dan frsqrts di ARMv8 dipakai untuk menghitung perkiraan awal dan secara iteratif meningkatkan presisi.
  • Untuk menghitung akar kuadrat bilangan bulat, dibutuhkan pengganda bilangan bulat presisi tinggi dengan rentang lebar, tetapi sebagian besar CPU tidak memilikinya.
  • Presisi adalah faktor penting, dan instruksinya dipisahkan agar programmer dapat menyeimbangkan presisi dan kecepatan.

Opini GN⁺

  • Instruksi akar kuadrat bilangan bulat dapat berguna pada bidang aplikasi tertentu, terutama pada area seperti komputasi grafis 3D.
  • Prosesor yang memiliki instruksi semacam ini dapat memungkinkan operasi berkecepatan tinggi melalui algoritma khusus, sehingga mengurangi perhitungan kompleks di level perangkat lunak.
  • Namun, banyak prosesor modern tidak menanamkan instruksi semacam ini dan sebagai gantinya mengimplementasikannya melalui pustaka perangkat lunak atau mikrokode.
  • Keseimbangan antara presisi dan kecepatan itu penting, dan programmer harus bisa menyesuaikannya sesuai situasi.
  • Artikel ini menawarkan informasi menarik bagi orang-orang yang tertarik pada sejarah komputer, terutama mereka yang berminat pada pemrograman tingkat rendah atau perancangan sistem.

1 komentar

 
GN⁺ 2024-04-08
Komentar Hacker News
  • Instruksi URSQRTE pada AArch64 NEON

    • Menghitung perkiraan inverse square root untuk nilai yang dianggap sebagai integer fixed-point 32-bit, lalu membagi hasilnya menjadi setengah dan membatasinya ke rentang 0 hingga 1-ε.
    • Instruksi FRSQRTE melakukan operasi serupa untuk bilangan floating-point 32-bit.
  • Kemungkinan perhitungan dalam satu siklus clock

    • Hal itu dimungkinkan dengan menggunakan lookup table yang sangat besar.
    • Ukuran tabel dapat dikurangi tergantung pada jumlah gerbang logika serial yang bisa dijalankan dalam satu siklus clock.
  • Mikrokode VAX

    • Ada dugaan bahwa VAX memiliki kemampuan menghitung square root.
  • Menghitung square root dengan perangkat elektromekanis

    • Friden SRQ menghitung square root hanya dengan penjumlahan dan shift, tanpa komponen elektronik.
    • Karena titik desimal harus disesuaikan secara manual, secara teknis ini bisa dianggap sebagai operasi integer.
  • Metode menghitung integer square root

    • Integer square root dapat dihitung menggunakan deret 1 + 3 + 5 + ... + (2k + 1).
  • Jawaban bercanda tentang ENIAC

    • Disebutkan bahwa jawaban "ENIAC" terasa lucu.
  • Cara menghitung square root secara perkiraan

    • Perkiraan square root bisa dihitung dengan mengganti Log2(x) menjadi 'jumlah leading zeroes'.
  • Analisis algoritme square root untuk penggemar mikroprosesor 6502

    • Ada analisis mendalam tentang algoritme square root untuk mikroprosesor 6502.
  • Instruksi VSQRT pada ARM VFP

    • ARM VFP memiliki instruksi perhitungan square root bernama VSQRT.
  • Cara yang sangat kasar untuk menghitung square root

    • Perkiraan square root dapat diperoleh dengan menggeser bit ke kanan sebesar setengah dari posisi leading 1.
    • Metode ini berguna sebagai estimasi awal untuk perhitungan yang lebih akurat, seperti iterasi Newton-Raphson.