1 điểm bởi GN⁺ 2024-04-08 | 1 bình luận | Chia sẻ qua WhatsApp

Đã từng có bộ xử lý nào triển khai lệnh căn bậc hai số nguyên không?

  • Harris RTX 2000 Forth CPU cung cấp lệnh căn bậc hai số nguyên nhiều bước.
  • ENIAC sử dụng một bộ chia/bộ tính căn bậc hai chuyên dụng để thực hiện tối đa 3 phép tính căn bậc hai mỗi giây.
  • Cách hiệu quả nhất để tính căn bậc hai số nguyên là dùng phép lặp Newton-Raphson để tính nghịch đảo (1/√x), sau đó nhân với số ban đầu.
  • Các lệnh được dùng trên CPU và GPU hiện đại như frsqrtefrsqrts của ARMv8 được sử dụng để tính ước lượng ban đầu và lặp lại nhằm tăng dần độ chính xác.
  • Để tính căn bậc hai số nguyên cần một bộ nhân số nguyên chính xác trên dải rộng, nhưng phần lớn CPU không có phần cứng này.
  • Độ chính xác là một yếu tố quan trọng, và các lệnh được tách riêng để lập trình viên có thể cân bằng giữa độ chính xác và tốc độ.

Ý kiến của GN⁺

  • Lệnh căn bậc hai số nguyên có thể hữu ích trong các lĩnh vực ứng dụng cụ thể, đặc biệt quan trọng trong các phép tính đồ họa 3D.
  • Những bộ xử lý có lệnh này có thể cho phép tính toán tốc độ cao thông qua các thuật toán chuyên biệt, từ đó giảm bớt các phép tính phức tạp ở mức phần mềm.
  • Tuy nhiên, nhiều bộ xử lý hiện đại không tích hợp sẵn các lệnh như vậy, mà thay vào đó triển khai chúng thông qua thư viện phần mềm hoặc microcode.
  • Việc cân bằng giữa độ chính xác và tốc độ là rất quan trọng, và lập trình viên cần có khả năng điều chỉnh điều này tùy theo tình huống.
  • Bài viết này mang lại thông tin thú vị cho những ai quan tâm đến lịch sử máy tính, đặc biệt hữu ích với người thích lập trình mức thấp hoặc thiết kế hệ thống.

1 bình luận

 
GN⁺ 2024-04-08
Ý kiến trên Hacker News
  • Lệnh URSQRTE của AArch64 NEON

    • Tính gần đúng nghịch đảo căn bậc hai cho một giá trị được xem là số nguyên fixed-point 32 bit, sau đó giảm một nửa giá trị đó và giới hạn trong phạm vi từ 0 đến 1-ε.
    • Lệnh FRSQRTE thực hiện phép toán tương tự với số dấu phẩy động 32 bit.
  • Khả năng tính toán trong một chu kỳ xung nhịp duy nhất

    • Có thể nếu dùng một bảng tra cứu rất lớn.
    • Có thể giảm kích thước bảng tùy theo số lượng cổng logic nối tiếp có thể thực hiện trong một chu kỳ xung nhịp.
  • Vi mã VAX

    • Có suy đoán rằng VAX hẳn đã có khả năng tính căn bậc hai.
  • Tính căn bậc hai bằng thiết bị điện cơ

    • Friden SRQ tính căn bậc hai chỉ bằng phép cộng và dịch bit, không cần linh kiện điện tử.
    • Vì phải chỉnh dấu thập phân bằng tay nên về mặt kỹ thuật có thể xem đây là phép toán số nguyên.
  • Cách tính căn bậc hai số nguyên

    • Có thể tìm căn bậc hai số nguyên bằng dãy số 1 + 3 + 5 + ... + (2k + 1).
  • Câu trả lời mang tính hài hước về ENIAC

    • Có nhắc rằng câu trả lời "ENIAC" khá buồn cười.
  • Cách tính gần đúng căn bậc hai

    • Có thể tính gần đúng căn bậc hai bằng cách thay Log2(x) bằng "số lượng leading zeroes".
  • Phân tích thuật toán căn bậc hai cho người hâm mộ vi xử lý 6502

    • Có một bài phân tích rất kỹ về thuật toán căn bậc hai cho vi xử lý 6502.
  • Lệnh VSQRT của ARM VFP

    • ARM VFP có lệnh tính căn bậc hai tên là VSQRT.
  • Cách tính căn bậc hai rất thô

    • Có thể lấy gần đúng căn bậc hai bằng cách dịch bit sang phải một lượng bằng một nửa vị trí của bit 1 đầu tiên.
    • Cách này hữu ích như một giá trị ước lượng ban đầu cho các phép tính chính xác hơn như lặp Newton-Raphson.