ARM กับ X86, RISC กับ CISC มหาอำนาจต่างขั้วบนโลกของซีพียู

10,748 views

 

กลับมาพบกันอีกครั้งนะครับ แล้วก็ไม่ลืมที่จะทำตามสัญญาอย่างที่ได้บอกไปคราวที่แล้วว่า ในบทความครั้งนี้ผมจะมาแจกแจงรายละเอียดเกี่ยวกับที่มาที่ไปของคำว่า สถาปัตยกรรมซีพียูในแบบ ARM และ X86 ให้ฟัง ว่าไอ้เจ้าสถาปัตยกรรมที่พูดถึงนี้ มันคืออะไร แตกต่างกันยังไง และมันเกี่ยวข้องกับชิปประมวลผลบนสมาร์ทโฟนอย่างไรบ้าง อ้าวววว! พร้อมยางง.ง.ง หนายยยไหนใครนั่งหลับ (แปรงลบกระดานปลิว…ฟิ้วววว!) …อ้าวววว! ถ้าพร้อมแล้วงั้นไปกันเล๊ยยยย!

 

สถาปัตยกรรมซีพียูในแบบ ARM และ X86

 

 

armx86สถาปัตยกรรม (Architecture) ในที่นี้หมายถึง การออกแบบในส่วนต่างๆที่สำคัญของซีพียู ไม่ว่าจะเป็นโครงสร้าง จำนวนรีจิสเตอร์ที่จำเป็น หน้าที่ที่จำเป็นของหน่วยประมวลผลตัวเลขและหน่วยควบคุม ฯลฯ แรกเริ่มเดิมทีนับตั้งแต่ซีพียูในยุค 32 บิต จนมาถึงยุค 64 บิตในปัจจุบัน การออกแบบโครงสร้างทางสถาปัตยกรรมของซีพียูได้ถูกแบ่งแยกออกเป็น 2 แบบ

 

ARM-Chipsแบบแรกคือ ARM ที่ถูกพัฒนาขึ้นโดยบริษัท ARM Holding ซึ่งการออกแบบโครงสร้างชุดคำสั่งของ ARM จะอาศัยแนวคิดเดียวกันกับสถาปัตยกรรม RISC ที่ออกแบบให้ซีพียูทำงานในวงรอบสัญญาณนาฬิกา (Cycle) ที่แน่นอน คือ 1 Cycle ต่อ 1 คำสั่ง ซึ่งจะเป็นเวลาโดยรวมเมื่อเฉลี่ยออกมาแล้ว โดยจะพยายามลดจำนวนคำสั่งต่างๆลงให้เหลือเป็นคำสั่งพื้นฐานให้มากที่สุด แล้วอาศัยหลักการของไปป์ไลน์ (pipeline) มาช่วยทำให้เกิดการทำงานในแบบคู่ขนานเหลื่อมกัน (overlap) หรือให้มีการทำงานในลักษณะเป็นแถว (pipe)ในแต่ละสถานีตามลำดับเรียงกันไปอย่างต่อเนื่องตลอดเวลา อีกทั้งยังได้มีการพัฒนาในส่วนอื่นๆเพิ่มเติมอีก อาทิ เข้าควบคุมการทำงานของหน่วยประมวลผลตัวเลขและหน่วยควบคุมได้ในทุกๆคำสั่ง ทำให้การทำงานลดความซับซ้อนและลดขนาดของโปรแกรมลง เพิ่มจำนวนผลลัพธ์ของข้อมูลและการทำงานของคำสั่ง เป็นต้น

 

ผลที่ได้ก็คือ ทำให้ซีพียูบนสถาปัตยกรรม ARM มีประสิทธิภาพสูงขึ้น กินไฟน้อยหรือใช้พลังงานที่ต่ำมากและราคาถูก อีกทั้งยังสามารถลดขนาดของ die ให้เล็กลงมากๆได้ ดังนั้นซีพียูบนสถาปัตยกรรม ARM จึงมักถูกนำไปใช้บนมือถือและอุปกรณ์อิเล็กทรอนิกส์แบบพกพาหลากหลายชนิดทั้ง สมาร์ทโฟน, แท็บเล็ต, โน้ตบุ๊ค หรือแม้แต่คอมพิวเตอร์ตั้งแต่ระดับ Desktop ขึ้นไปของ IBM และ Apple ในบางรุ่นที่มุ่งเน้นใช้งานในแบบประหยัดพลังงานเป็นหลักด้วย

 

44976-apu_teaserแบบต่อมาก็คือ X86 ที่เป็นสถาปัตยกรรมแบบดั้งเดิมของ Intel มาตั้งแต่ยุคถือกำเนิดซีพียูหรือไมโครโพรเซสเซอร์รุ่นแรกๆเมื่อ 30 กว่าปีก่อน โดยสังเกตได้จากที่มาของชื่อ X86 ถ้าใครอายุราวๆ 40 หรือมากกว่า ก็น่าที่จะทราบดีว่ามันคือ เลข 2 ตัวท้ายของซีพียูหรือไมโครโพรเซสเซอร์ยุคแรกในตระกูล 8086 ไปจนถึง 80486 ที่เราคุ้นเคย และ 80586 หรือชื่อใหม่ที่ได้รับการจดทะเบียนการค้าในตอนนั้นว่า Pentuim นั่นเอง ที่ผ่านมาตลอดจนถึงปัจจุบันถ้ายังนึกภาพคอมพิวเตอร์ที่ใช้ซีพียูบนสถาปัตยกรรม X86 ไม่ออก ให้นึกถึงคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows รุ่นต่างๆ น่านนนนแหละ….ซีพียูในเครื่องคุณนั่นแหละใช้สถาปัตยกรรม X86 เค้าแหละ แล้วถ้าถามว่าไอ้เจ้า X86 เนี่ย มันต่างยังไงกับ ARM ที่พูดถึงไปก่อนหน้านี้แล้วบ้าง อันนี้จะค่อยๆละเมียดให้ฟังนะครับ ^^

 

amd64 (1)เริ่มแรก X86 ถูกพัฒนาขึ้นโดยบริษัท Intel นับตั้งแต่ยุค 16 และ 32 บิต เรื่อยมา จนมาถึงยุค 64 บิต เนื่องจาก AMD ได้พัฒนาซีพียูตัวใหม่อย่าง Athlon 64 จึงได้มีการปรับปรุงโครงสร้างชุดคำสั่งของ X86 เสียใหม่ให้รองรับการทำงานในแบบ 64 บิต ด้วย โดยให้ชื่อชุดคำสั่งว่า AMD64 ส่วน Intel ก็ได้ปรับปรุงให้รองรับการทำงานในแบบ 64 บิต นี้ด้วยเช่นกัน โดยให้ชื่อว่า EM64T การออกแบบโครงสร้างชุดคำสั่งของ X86 จะเป็นไปตามแนวคิดเดียวกันกับสถาปัตยกรรม CISC คือ การจะเพิ่มประสิทธิภาพของซีพียูจำเป็นที่จะต้องอาศัยวิธีการเพิ่มขีดความสามารถของคำสั่งแต่ละคำสั่งให้ทำงานเพิ่มขึ้นและซับซ้อนมากยิ่งขึ้น นั่นจึงทำให้สถาปัตยกรรมซีพียูในแบบ x86 นี้ จำเป็นที่จะต้องสนับสนุนชุดคำสั่งใหม่ๆที่จะเพิ่มขึ้นอยู่ตลอดเวลา อีกทั้งซีพียูก็ยังทำงานในวงรอบสัญญาณนาฬิกา (Cycle) ที่ไม่แน่นอน บางครั้งอาจทำ 1 คำสั่งเสร็จภายใน Cycle เดียว แต่ในบางครั้งอาจต้องใช้หลายๆ Cycle ต่อ 1 คำสั่ง

advertisements

 

“อ้าว…แล้วถ้างั้น X86 มันดียังไง ที่ผ่านมาจนทุกวันนี้ถึงยังเห็นใช้กันอยู่อย่างแพร่หลายกว่า ARM ตั้งเยอะ”

 

คำตอบมันอยู่ที่ความแรงครับ นั่นเพราะซีพียูบนสถาปัตยกรรม x86 จะได้รับการปรับปรุงให้สนับสนุนชุดคำสั่งใหม่ๆที่เพิ่มเข้ามาอยู่เสมอ จึงสามารถเร่งความเร็วในการทำงานให้สูงยิ่งขึ้นไปได้ เพราะฉะนั้นที่ผ่านมาจนถึงปัจจุบันเราจึงมักเห็นซีพียูบนสถาปัตยกรรม x86 นี้ ถูกนำไปใช้บนคอมพิวเตอร์แทบจะทุกระดับ แต่ถ้าถามว่า…แล้วจะเอาไปใช้บนมือถือหรืออุปกรณ์อิเล็กทรอนิกส์แบบพกพาอื่นๆเหมือนกับซีพียูบนสถาปัตยกรรม ARM ได้มั๊ย!

 

intel-atom-x-3-600x338ที่ผ่านมาก็เป็นปัญหาและจุดบอดของ Intel มาโดยตลอด โดยเฉพาะอย่างยิ่งเมื่อก้าวเข้าสู่ยุคของสมาร์ทโฟนและแท็บเล็ต เนื่องจากซีพียูบนสถาปัตยกรรม x86 ถึงแม้จะมีข้อดีในเรื่องของความแรง แต่ก็มีข้อเสียและถือเป็นจุดอ่อนที่สำคัญอย่างยิ่งต่อการแข่งขันกับซีพียูจาก ARM บนตลาดอุปกรณ์สมาร์ทโฟนและแท็บเล็ต นั่นก็คือ ความร้อนและการบริโภคพลังงาน เนื่องจากซีพียู x86 มีความเร็วในการทำงานสูง ดังนั้นจึงหลีกเลี่ยงการกินไฟและความร้อนไปไม่ได้ ดังจะเห็นได้จากซีพียูบนคอมพิวเตอร์ Desktop รุ่นใหม่ๆในปัจจุบัน ผู้ใช้มักจะนิยมหาชุดระบายความร้อนขนาดใหญ่หรือชุดระบายความร้อนด้วยน้ำมาติดตั้งนั่นเอง แต่ปัจจุบัน Intel ก็เริ่มที่จะตั้งตัวได้และมองเห็นช่องทาง โดยได้ทยอยจัดส่งซีพียูประหยัดไฟสำหรับตลาดสมาร์ทโฟน, แท็บเล็ต และอุปกรณ์อิเล็กทรอนิกส์แบบพกพาอื่นๆ อย่าง Atom ในตระกูล Zxxx ต่างๆลงมาชิมลางบ้างแล้วในสมาร์ทโฟนราคาประหยัดอย่าง Asus ZenFone รุ่นต่างๆ และล่าสุดก็ได้ทยอยส่งซีพียูประหยัดไฟรุ่นใหม่ๆอย่าง Atom x3 มาแล้ว และกำลังเตรียมตัวส่ง x5 และ x7 มาลุยตลาดแท็บเล็ตและโน้ตบุ๊คบางเบาในไม่ช้า

 

“สรุปว่าทั้งสถาปัตยกรรมซีพียูในแบบ ARM และ X86 ทั้ง 2 ต่างก็มีข้อดีและข้อเสียแตกต่างกันไป”
RISC

 

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

 

CISC

 

ส่วนซีพียู X86 จุดเด่นก็คงหนีไม่พ้นในเรื่องของความเร็วหรือประสิทธิภาพในการทำงานที่สูง ซึ่งคงต้องยกให้ X86 เหนือกว่าหากมองที่ความเร็วและจำนวนบิตเท่าๆกัน แต่ข้อเสียที่เห็นได้ชัดก็คงเป็นเรื่องของความร้อนและการบริโภคพลังงานนั่นแหละ เพราะฉะนั้นเนื่องจากทั้งสถาปัตยกรรมซีพียูในแบบ ARM และ X86 มีหลายสิ่งหลายอย่างที่แตกต่างกันโดยสิ้นเชิง ทั้งโครงสร้าง ชุดคำสั่ง และอื่นๆ ดังนั้นจึงเป็นไปไม่ได้ที่จะนำเอาซอฟต์แวร์หรือแม้แต่ฮาร์ดแวร์ของอย่างหนึ่งอย่างใดมาใช้งานร่วมกัน ก็คงต้องเลือกใช้อย่างหนึ่งอย่างใดเอานะครับ หรือแม้ปัจจุบันจะมีทางเลือกให้รันผ่านโปรแกรมจำลองอื่นๆ ก็คงฟันธงได้ว่าใช้งานได้ไม่สมบูรณ์ราบรื่นเหมือนกับที่ออกแบบมาให้ใช้กับสถาปัตยกรรมซีพียูของมันเอง ว่างั้นเหอะ!

 

 

“เทคโนโลยีสมาร์ทโฟน”ตอนต่อไป

1-2-3-4 มือถือ Gen ไหนคุณทันใช้บ้าง [ดักแก่!]

โทรศัพท์มือถือยุคใหม่ หัวใจอยู่ที่ “ชิปประมวลผล”

ชิปประมวลผล ARM และ Intel (x86) บนสมาร์ทโฟน

(ต่อ) ชิปประมวลผล ARM และ Intel (x86) บนสมาร์ทโฟน