นับจาก Apple เปิดตัว iPhone 5s ในปีที่ 2013 ที่ผ่านมา ครั้งนั้นนับเป็นอีกหนึ่งการเขย่าโลกมือถือแบบเบาๆ ด้วยการประกาศว่าชิป Apple A7 เป็นชิปประมวลผลตระกูล ARM ที่ทำงานด้วยระบบ 64 บิท ทำให้ iPhone 5s กลายเป็นสมาร์ทโฟนรุ่นแรกของโลกที่ทำงานในระบบ 64 บิทอย่างเต็มตัว ซึ่งในตอนนั้นผู้ที่เกี่ยวข้องกับวงการมือถือหลายรายก็ออกมาเย้ยหยันกันเต็มที่ว่าจะรีบออกมาทำไม แต่หลังจากนั้นไม่นาน กลับกลายเป็นว่าวงการมือถือต่างก็ต้องเริ่มเดินทางมาตามแนว 64 บิทกันหมด จนล่าสุดถึงเริ่มมีมือถือ Android ที่ใช้ชิปประมวลผลแบบ 64 บิทออกมาวางจำหน่าย ส่วนหนึ่งก็เป็นเพราะมันหลีกเลี่ยงไม่ได้นั่นเอง เพราะยังไงเทคโนโลยีและโลกก็ต้องเดินไปข้างหน้า จะมัวหยุดอยู่กับที่ก็ไม่ทันกินพอดี (แถมจะได้มีจุดเด่นไปโฆษณาเพิ่มด้วย)
แต่ถ้าเรามองถึงปัจจัยในการทำงานจริงๆ ของระบบ 64 บิท จะพบกว่าในปัจจุบันเรายังไม่พร้อมที่จะเดินไปถึงจุดนั้นกันซักเท่าไร เพราะปัจจัยที่จะทำให้ระบบการประมวลผลแบบ 64 บิทแสดงประสิทธิภาพได้ 100% มันต้องเกิดจากทั้งฮาร์ดแวร์ที่สามารถประมวลผลได้ และซอฟต์แวร์ที่เขียนออกมารองรับ 64 บิท ทั้งในส่วนของระบบปฏิบัติการและแอพพลิเคชัน แต่ในปัจจุบัน จะมีก็แต่ฝั่ง Apple เท่านั้นที่เพียบพร้อมที่สุด ด้วยตัวของ iOS เองได้รองรับการทำงานแบบ 64 บิทมาตั้งแต่ iOS 7 แล้ว เหล่าแอพพลิเคชันก็ได้รับการดัดแปลงให้ทำงานร่วมกับการประมวลผลแบบ 64 บิทมากขึ้น ด้วยการสนับสนุนนักพัฒนาที่ค่อนข้างดีของ Apple ส่วนของฝั่ง Android นั้นก็มีความเคลื่อนไหวเช่นกันครับ กับการเปิดตัว Android L ที่ประกาศว่าจะเป็นระบบปฏิบัติการที่รองรับการประมวลผล 64 บิทด้วยเช่นกัน แต่ก็ถือว่าล่าช้ากว่า iOS เป็นปีอยู่เหมือนกัน คงต้องรอดูกันต่อไปทั้งในส่วนของ Android L และการสนับสนุนนักพัฒนาให้เขียนแอพที่รองรับ 64 บิท ว่าจะออกมาดีขนาดไหน เชื่อว่า Google ก็คงจะผลักดันเต็มที่อยู่เหมือนกัน เพราะการประมวลผล 64 บิทดูจะเป็นอนาคตอันใกล้ของวงการมือถือที่หลีกเลี่ยงไม่ได้อีกต่อไปแล้ว เช่นเดียวกับที่เคยเกิดมาก่อนในวงการคอมพิวเตอร์พีซี
ในบทความนี้ เราจะมาดูประโยชน์ 3 ข้อหลักๆ ของระบบประมวลผลแบบ 64 บิทกันซักหน่อยครับ ไหนๆ มันก็เข้ามาใกล้ตัวเราแล้ว
1. ทำงานเร็วขึ้น
ข้อนี้ต้องลงลึกไปถึงส่วนเทคโนโลยีภายใน CPU เลยครับ ส่วนที่จะมีผลกับด้านนี้โดยตรงคือหน่วยความจำขนาดเล็กภายใน CPU ที่มีชื่อว่ารีจิสเตอร์ (Register) ซึ่งจะมีอยู่ใน CPU ทุกรุ่น หน้าที่ของมันก็เปรียบได้เหมือนกระดาษทดสำหรับ CPU คอยเก็บข้อมูลที่ได้จากการประมวลผล หรือเก็บข้อมูลสำหรับรอใช้งานประมวลผลในลำดับต่อๆ ไป มีจุดเด่นคือความเร็วในการทำงานที่สูงมากๆ สูงกว่าแรมเสียอีก ทำให้ในส่วนนี้ยิ่งมีมากก็ยิ่งดี เพราะจะทำให้ CPU สามารถทำงานต่อเนื่องได้อย่างรวดเร็ว (ขอข้าม cache ไปนะครับ เพราะไม่ได้มีส่วนสร้างความแตกต่างด้านความเร็วโดยตรง)?แต่อย่างไรก็ตาม หน่วยความจำรีจิสเตอร์ก็สามารถใช้งานจนเต็มได้ เมื่อเต็ม ก็จะมีการดันข้อมูลที่เก่าสุดในรีจิสเตอร์ออกไปเก็บยังแคชและแรมในลำดับถัดไป ซึ่งการย้ายข้อมูลนี้ก็ต้องใช้เวลาอยู่เหมือนกัน ตรงจุดนี้ล่ะครับที่ทำให้ค่อนข้างเสียเวลาในการทำงานโดยรวมไป ดูจากแผนภาพอย่างง่ายด้านบนได้เลย (ในแผนภาพ มีการตัดไปหลายส่วน อันที่จริงภายใน CPU จะมีรายละเอียดซับซ้อนกว่านี้มากๆ)
สำหรับ CPU มือถือระดับ 32 บิทที่เราใช้กันนี้จะเป็นสถาปัตยกรรม ARMv7 ที่มีหน่วยความจำรีจิสเตอร์แบบใช้เก็บข้อมูลทั่วไป 15 ตัว แต่ละตัวมีความกว้างของการเก็บข้อมูลได้ 32 บิท ส่วน CPU มือถือระดับ 64 บิท ที่เป็นสถาปัตยกรรม ARMv8 จะมีหน่วยความจำรีจิสเตอร์แบบใช้เก็บข้อมูลทั่วไปอยู่ 31 ตัว แต่ละตัวมีความกว้างการเก็บข้อมูลได้ 64 บิท
จากภาพด้านบนที่เปรียบเทียบกันระหว่างแบบ 32 กับ 64 บิท จะเห็นได้ชัดเลยว่า CPU แบบ 64 บิท จะมีหน่วยความจำรีจิสเตอร์ที่มากกว่าทั้งจำนวน (มากกว่ากันเท่าตัว) และความกว้างในการเก็บข้อมูล (มากกว่าเท่าตัวเช่นกัน) เปรียบเสมือนว่าเป็นกล่อง แบบ 32 บิทมีแค่ 15 กล่องเท่านั้น แต่แบบ 64 บิทมีตั้ง 32 กล่อง แถมแต่ละกล่องยังมีขนาดใหญ่กว่าเป็นเท่าตัวอีก ซึ่งก็ตามที่กล่าวไปในข้างต้นครับ ว่ายิ่งมีรีจิสเตอร์ให้ใช้งานได้เยอะ การทำงานโดยรวมของกระบวนการประมวลผลก็ยิ่งเร็วขึ้น เพราะไม่ต้องรอข้อมูลวิ่งไปวิ่งมาเข้าออกระหว่าง CPU กับแรม สามารถใช้ข้อมูลจากรีจิสเตอร์ที่เร็วกว่า แรงกว่า อยู่ใกล้ CPU กว่าได้เลย จะดึงข้อมูลจากแรมมาสำรองไว้ก็ทำได้มากกว่าเดิม?จุดนี้นี่เองที่ทำให้ CPU 64 บิททำงานโดยรวมได้เร็วกว่า 32 บิท
แต่ก็ใช่ว่าแค่เปลี่ยน CPU แล้วจะสามารถใช้งานรีจิสเตอร์ที่เพิ่มขึ้นมาได้ทันที เพราะต้องขึ้นอยู่กับโค้ดโปรแกรมของทั้งระบบปฏิบัติการและแอพพลิเคชันด้วย ว่าได้เขียนมาให้รองรับและสามารถเรียกใช้งานรีจิสเตอร์ส่วนที่เพิ่มมาได้หรือเปล่า ถ้าเขียนโค้ดมารองรับแค่ 32 บิท ก็สามารถใช้งานรีจิสเตอร์ได้เท่าๆ กับที่มีใน CPU 32 บิทนั่นเอง ซึ่งจุดนี้จะถือเป็นข้อยืดหยุ่นก็ได้อยู่เหมือนกัน คือโค้ดสำหรับ 32 บิท จะสามารถนำไปใช้ได้ทั้งบน CPU 32 และ 64 บิท แต่โค้ดโปรแกรมแบบ 64 บิท จะสามารถทำงานได้เฉพาะบน CPU 64 บิทได้อย่างเดียว นอกจากจะมีชุดคำสั่งช่วยแปลงให้เข้ากับ 32 บิทได้ (ส่วนใหญ่ก็อำนวยความสะดวกมาให้ตั้งแต่ OS แล้ว)?ดังนั้น ถ้าเราใช้ CPU 64 บิท ก็ไม่ต้องกลัวอะไรเลยครับ สามารถใช้งานแอพได้ทุกตัวเหมือนเดิม?เพียงแต่ในตอนนี้อาจจะยังไม่เต็มที่มากนักเท่านั้นเอง ต้องรอแอพพลิเคชันเข้าสู่ยุค 64 บิทเต็มตัวเสียก่อน
2. ใช้แรมได้มากขึ้น
ประโยชน์ข้อต่อมาก็คือเรื่องของแรม ซึ่งน่าจะเป็นข้อที่เห็นผลเป็นรูปธรรมที่สุด ข้อนี้ถ้าใครที่ใช้งานหรือศึกษาวงการคอมพิวเตอร์พีซีในช่วงยุคเปลี่ยนถ่ายจาก 32 มาเป็น 64 บิทน่าจะเข้าใจกันเป็นอย่างดีว่ามันเป็นเรื่องของการทลายข้อจำกัดด้านการใช้งานแรม จากเดิมในระบบ 32 บิท ซอฟต์แวร์ทั้งระบบปฏิบัติการและโปรแกรมหรือแอพพลิเคชัน จะมองเห็นแรมให้ใช้งานได้สูงสุดแค่ไม่เกิน 4 GB (เอาจริงๆ สูงสุดอยู่ที่ประมาณ 3 GB ปลายๆ) เนื่องด้วยข้อจำกัดทางด้านทฤษฎี แต่ก็ใช่ว่าจะหมดหนทางซะทีเดียว เพราะได้มีการคิดค้นชุดคำสั่ง PAE (Physical Address Extensions) ช่วยทำให้ระบบสามารถมองเห็นแรมมากกว่า 4 GB ได้
เช่นเดียวกับในชิปประมวลผลแบบ ARM ของมือถือครับ ข้อจำกัดก็เป็นแบบเดียวกัน มีชุดคำสั่งช่วยขยายการมองเห็นแรมเหมือนกัน (ใช้ชื่อเป็น LPAE) แต่ก็มีจำกัดอยู่ใน CPU บางรุ่นเท่านั้น และไม่ใช่รุ่นที่เราใช้งานกันทั่วไปด้วย ดังนั้นเราจึงได้เห็น CPU แบบ 64 บิทออกมาในตลาดนั่นเอง สำหรับในสถาปัตยกรรม ARMv8 นี้ ระบบจะสามารถมองเห็นและใช้งานแรมได้สูงสุดถึง 256 TB เลยทีเดียว ซึ่งการที่ใช้งานแรมได้มากขึ้นนี้ ทำให้ระบบมีแรมเหลือให้ใช้งานมากขึ้น ถ้ามีแรมมาให้เยอะๆ ซึ่งก็คงน่าจะเป็นในอีกปีสองปีเลยล่ะครับ เราถึงจะได้เห็นมือถือที่แรมมากกว่า 4 GB ลงวางขายในตลาด
3. ประหยัดพลังงานลง
ข้อสุดท้ายนี้ นับเป็นข้อที่ได้จากผลพวงของสองข้อข้างต้นครับ คือจากรีจิสเตอร์ที่มากขึ้น ทำให้กระบวนการทำงานเสร็จเร็วขึ้น กินพลังงานน้อยลง พึ่งการรับส่งข้อมูลกับแรมน้อยลง ส่วนการที่มีแรมให้ใช้งานมากขึ้น ก็ช่วยให้กระบวนการทำงานเสร็จเร็วขึ้นด้วยเช่นกัน เพราะไปพึ่งการรับส่งข้อมูลกับหน่วยความจำ (รอม/MicroSD) น้อยลง ถ้าให้ไล่ลำดับการเรียกข้อมูลแบบง่ายๆ ไล่จากเร็วสุดไปช้าสุดก็คือ
CPU (รีจิสเตอร์ <–> แคช) <–> แรม <–> รอม <–> MicroSD
เมื่อการทำงานเสร็จเร็วขึ้น ก็ช่วยทำให้การทำงานใช้พลังงานน้อยลง ถ้ามองในมือถือ เราอาจจะไม่เห็นความแตกต่างกันมากนัก แต่อย่าลืมว่าชิปประมวลผลแบบ ARM ไม่ได้มีใช้แค่ในมือถืออย่างเดียว แต่มันยังถูกนำไปใช้อย่างกว้างขวาง โดยเฉพาะในวงการเครื่องเซิฟเวอร์ที่เริ่มนำชิป ARM มาใช้บ้างแล้ว ซึ่งระดับเครื่องเซิฟเวอร์ ก็จะใช้ CPU ทำงานร่วมกันเป็นจำนวนมากพร้อมๆ กัน ถ้าสมมติว่า CPU สามารถประหยัดพลังงานได้ตัวละนิดละหน่อย เมื่อรวมกันหลายๆ ตัว ก็จะประหยัดพลังงานโดยรวมได้ไม่น้อยเลยทีเดียว ความร้อนของระบบก็ไม่สูง ทำให้ไม่จำเป็นต้องลงเงินไปกับระบบระบายความร้อนมากเท่ากับที่ผ่านๆ มา ถือว่าเป็นการประหยัดได้ทั้งพลังงานและเงินในกระเป๋าเลยก็ว่าได้
เนื้อหาต้นฉบับ: Android Authority