1 คะแนน โดย GN⁺ 2024-04-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

เคยมีคำสั่งคำนวณรากที่สองของจำนวนเต็มหรือไม่?

  • Harris RTX 2000 Forth CPU มีคำสั่งคำนวณรากที่สองของจำนวนเต็มแบบหลายขั้นตอน
  • ENIAC ใช้ตัวหาร/เครื่องคำนวณรากที่สองแบบพิเศษ ทำให้คำนวณรากที่สองได้สูงสุด 3 ครั้งต่อวินาที
  • วิธีที่มีประสิทธิภาพที่สุดในการคำนวณรากที่สองของจำนวนเต็มคือใช้การวนซ้ำแบบนิวตัน-แรปสันเพื่อคำนวณค่ากลับกัน (1/√x) แล้วจึงคูณกลับกับจำนวนเดิม
  • คำสั่งที่ใช้ใน CPU และ GPU สมัยใหม่ เช่น frsqrte และ frsqrts ของ ARMv8 ถูกใช้เพื่อคำนวณค่าประมาณเริ่มต้นและเพิ่มความแม่นยำแบบวนซ้ำ
  • การคำนวณรากที่สองของจำนวนเต็มต้องใช้หน่วยคูณจำนวนเต็มที่แม่นยำและรองรับช่วงกว้าง แต่ CPU ส่วนใหญ่ไม่มีสิ่งนี้
  • ความแม่นยำเป็นปัจจัยสำคัญ และคำสั่งถูกแยกออกจากกันเพื่อให้โปรแกรมเมอร์สามารถปรับสมดุลระหว่างความแม่นยำกับความเร็วได้

ความเห็นของ GN⁺

  • คำสั่งคำนวณรากที่สองของจำนวนเต็มอาจมีประโยชน์ในงานเฉพาะทาง โดยเฉพาะงานอย่างการคำนวณกราฟิก 3 มิติ
  • โปรเซสเซอร์ที่มีคำสั่งลักษณะนี้สามารถทำงานได้รวดเร็วผ่านอัลกอริทึมเฉพาะ ช่วยลดความซับซ้อนของการคำนวณในระดับซอฟต์แวร์
  • อย่างไรก็ตาม โปรเซสเซอร์สมัยใหม่จำนวนมากไม่ได้ฝังคำสั่งนี้มาในตัว แต่เลือกใช้ไลบรารีซอฟต์แวร์หรือไมโครโค้ดเพื่อทำงานแทน
  • การรักษาสมดุลระหว่างความแม่นยำกับความเร็วเป็นเรื่องสำคัญ และโปรแกรมเมอร์ควรสามารถปรับได้ตามสถานการณ์
  • บทความนี้ให้ข้อมูลที่น่าสนใจสำหรับผู้ที่สนใจประวัติศาสตร์คอมพิวเตอร์ และเป็นประโยชน์อย่างยิ่งต่อผู้ที่สนใจการเขียนโปรแกรมระดับล่างหรือการออกแบบระบบ

1 ความคิดเห็น

 
GN⁺ 2024-04-08
ความเห็นจาก Hacker News
  • คำสั่ง URSQRTE ของ AArch64 NEON

    • คำนวณค่า inverse square root แบบประมาณสำหรับค่าที่ถือเป็นจำนวนเต็ม fixed-point 32 บิต จากนั้นหารครึ่งค่า และจำกัดให้อยู่ในช่วง 0 ถึง 1-ε
    • คำสั่ง FRSQRTE ทำงานคล้ายกันสำหรับจำนวน floating-point 32 บิต
  • ความเป็นไปได้ในการคำนวณภายในสัญญาณนาฬิกาเพียงรอบเดียว

    • เป็นไปได้หากใช้ lookup table ที่มีขนาดใหญ่มาก
    • ขนาดของตารางสามารถลดลงได้ตามจำนวน logic gate แบบอนุกรมที่ทำงานได้ภายในหนึ่งรอบสัญญาณนาฬิกา
  • ไมโครโค้ดของ VAX

    • มีการคาดเดาว่า VAX น่าจะมีความสามารถในการคำนวณ square root
  • การคำนวณ square root ด้วยอุปกรณ์ไฟฟ้าเชิงกล

    • Friden SRQ คำนวณ square root ได้โดยใช้เพียงการบวกและการเลื่อนบิต โดยไม่มีชิ้นส่วนอิเล็กทรอนิกส์
    • เนื่องจากต้องปรับจุดทศนิยมด้วยตนเอง จึงอาจมองได้ว่าในทางเทคนิคเป็นการคำนวณแบบจำนวนเต็ม
  • วิธีคำนวณ square root ของจำนวนเต็ม

    • สามารถหาค่า square root ของจำนวนเต็มได้โดยใช้ลำดับ 1 + 3 + 5 + ... + (2k + 1)
  • คำตอบเชิงขำขันเกี่ยวกับ ENIAC

    • มีการกล่าวว่าคำตอบว่า "ENIAC" นั้นชวนขำ
  • วิธีคำนวณ square root แบบประมาณ

    • สามารถคำนวณ square root แบบคร่าว ๆ ได้โดยแทนที่ Log2(x) ด้วย 'จำนวน leading zeroes'
  • บทวิเคราะห์อัลกอริทึม square root สำหรับแฟน ๆ ไมโครโปรเซสเซอร์ 6502

    • มีบทวิเคราะห์อย่างละเอียดของอัลกอริทึม square root สำหรับไมโครโปรเซสเซอร์ 6502
  • คำสั่ง VSQRT ของ ARM VFP

    • ARM VFP มีคำสั่งคำนวณ square root ชื่อ VSQRT
  • วิธีคำนวณ square root แบบหยาบมาก

    • สามารถหาค่า square root แบบคร่าว ๆ ได้ด้วยการเลื่อนบิตไปทางขวาเป็นจำนวนครึ่งหนึ่งของตำแหน่ง leading 1
    • วิธีนี้มีประโยชน์ในฐานะค่าเริ่มต้นสำหรับการคำนวณที่แม่นยำขึ้น เช่น การทำซ้ำแบบนิวตัน-แรฟสัน