เรื่องน่ารู้ของซีพียู: รู้จัก Ryzen, Threadripper และ Epyc – 3 ทหารเสือแห่งสถาปัตยกรรม Zen
แม้ว่าจะเปิดตัวมาได้สักพักใหญ่แล้ว แต่ก็ยังได้รับความนิยมจากผู้ใช้งานอยู่ต่อเนื่อง สำหรับซีพียูสถาปัตยกรรม Zen จากทาง AMD ซึ่งบอกได้เลยว่า ปีนี้ AMD จัดเต็มจริงๆ ครับ สำหรับนวัตกรรมที่ออกแบบมาเพื่อซีพียูเหล่านี้โดยเฉพาะ
แต่เนื่องจากซีพียูในสถาปัตยกรรม Zen นี้ มีอยู่ถึง 3 กลุ่ม ได้แก่ Ryzen, Threadripper และ Epyc เพราะฉะนั้น วันนี้ผมจะพาเพื่อนๆ ไปทำความรู้จักซีพียูทั้ง 3 กลุ่มนี้ ว่ามันมีความเหมือนหรือแตกต่างกันอย่างไรบ้าง
ความรู้พื้นฐาน
CCX
แต่ก่อนที่เราจะไปดูว่า ซีพียูแต่ละกลุ่มมีความแตกต่างกันอย่างไร เราจะต้องมาทำความรู้จัก CPU-Complex หรือ CCX กันก่อนนะครับ เพราะ CCX นี้ คือสิ่งสำคัญที่ทำให้ซีพียูทั้ง 3 กลุ่ม มีความแตกต่างกันนั่นเอง
ถ้าเพื่อนๆ คนไหน เคยอ่านบทความเรื่อง Core และ Thread ของซีพียู (สามารถอ่านบทความได้ที่ “เรื่องน่ารู้ของซีพียู: ทำความรู้จักกับ Core และ Thread หัวใจสำคัญของซีพียู“) ก็จะพอทราบว่า Zen ได้มีการปรับเปลี่ยนการนับจำนวนคอร์ของซีพียูใหม่ ที่แตกต่างออกไปจาก Excavator (Bulldozer) รวมถึงส่วนประกอบภายในที่มีการปรับปรุงใหม่ได้
CCX คือ ส่วนประกอบหนึ่ง ที่อยู่ใน Die หรือชิปของซีพียู โดยเป็นชื่อเรียกของชุดคอร์ประมวลผล ที่ทำงานร่วมกัน – 1 CCX จะประกอบไปด้วยคอร์ประมวลผล 4 แกน แต่ละแกนจะมี Integer unit และ Floating point unit ที่ทำงานแยกกัน ทำให้คอร์เหล่านั้น รองรับ Simultaneous multithreading (SMT หรือ Hyper-Threading ใน Intel) ครับ
ใน 1 CCX จะมีแคช L3 ทั้งสิ้น 8 MB โดยมีการตัดแบ่งออกเป็น 4 ส่วน ได้เป็นส่วนละ 2 MB แต่ทั้งนี้ ทุกคอร์ใน CCX จะสามารถเข้าถึงแคช L3 ได้ทุกชิ้นด้วย Latency เฉลี่ยเท่าๆ กัน กล่าวคือ เมื่อประผลแล้ว ข้อมูลจากแคช L2 ที่จะส่งไปยังแคช L3 มันจะหาเส้นทางของมัน เพื่อไปที่แคช L3 ส่วนใดๆ ก็ตาม ใน CCX นั้นครับ
ทีนี้ ใน 1 Die จะประกอบไปด้วย 2 CCX แสดงว่าคอร์ประมวลผลใน Die ดังกล่าว จะมีลักษณะเป็น 4+4 ซึ่งมันจะต้องมีตัวเชื่อม ให้มันสามารถทำงานร่วมกันได้ และนี่คือสิ่งที่ผมจะกล่าวในหัวข้อถัดไป
Zeppelin และ Infinity Fabric
AMD มีการนำชิปประมวลผลหลายส่วนมาเชื่อมต่อกัน เพื่อให้ซีพียูมีจำนวนคอร์ที่มากขึ้น การออกแบบดังกล่าว จะคล้ายลักษณะโมดูลใน Bulldozer โดย AMD เรียกมันว่า “Zeppelin Configuration” สำหรับ 1 Zeppelin จะประกอบไปด้วย 1 Die หรือมี 2 CCX ครับ
และที่ผมค้างไว้จากข้อที่แล้วคือ ในเมื่อ 1 Die มี 2 CCX แล้วมันจะทำงานเชื่อมกันได้อย่างไร ตรงนี้คำตอบคือ ใช้ Infinity Fabric ซึ่งเป็นเทคโนโลยีของทาง AMD ครับ
Infinity Fabric จะคล้ายกับ HyperTransport Link Controller ที่ใช้ใน Bulldozer ซึ่งเจ้า Infinity Fabric จะประกอบไปด้วย 2 ส่วนคือ Scalable control fabric และ Scalable data fabric โดยจะช่วยกันรับผิดชอบแต่ละส่วนของข้อมูลที่เข้า-ออกระหว่าง CCX รวมถึงใช้เชื่อมต่อระหว่าง Die เพื่อใช้ส่งข้อมูลไปมา ในกรณีที่ต้องการเพิ่มจำนวนคอร์ของซีพียู (ด้วยการเพิ่มจำนวน Zeppelin) นั่นเอง
อย่างไรก็ตาม Infinity Fabric นี้ แม้จะทำงานด้วยความเร็วสูง แต่ยังไม่อาจเทียบเท่ากับส่วนที่เชื่อมต่อภายใน CCX เดียวกัน ดังนั้น เมื่อเชื่อมต่อ CCX 2 ส่วนเข้าด้วยกันผ่าน Infinity Fabric ภายนอก จะเพิ่มระยะเวลาในการส่งผ่านข้อมูลมากขึ้นพอสมควร เมื่อลองทดสอบการทำงานของแคช L3 ผ่านคอร์ซีพียูที่มากกว่า 4 คอร์ (เมื่อมากกว่า 4 คอร์ ก็มีแนวโน้มที่จะต้องเลือกใช้คอร์ใน CCX ที่อยู่ติดกัน) จะพบว่ามี Latency สูงขึ้นพอสมควร
Multi-chip Module
จาก Zeppelin Configuration ทำให้เกิดการนำ Die ของซีพียูมาเชื่อมต่อกัน เพื่อให้ทำงานร่วมกัน และเพิ่มจำนวนคอร์ของซีพียู แทนที่จะออกแบบมาให้มีเพียง 1 Die
Single-Zeppelin Configuration พบในซีพียู Ryzen
ในชิปประมวลผลของซีพียู Ryzen นั้น จะประกอบไปด้วย Zeppelin หรือ Die เพียง 1 ชิ้น ภายในนั้น ก็จะมี CCX อยู่ 2 ส่วน ที่ทำงานเชื่อมกันด้วย Infinity Fabric ดังนั้น ในซีพียู Ryzen จะมีจำนวนคอร์สูงสุดคือ 8 คอร์ และมีแคช L3 สูงสุด 16 MB ครับ
ในกรณีที่ต้องการลดจำนวนคอร์ อย่างเช่น ในซีพียู Ryzen 3 ที่มี 4 คอร์ จะมีการเลเซอร์เพื่อปิดการทำงานของคอร์อื่นๆ ใน Die ให้เหลือคอร์ที่สามารถทำงานได้เพียง 4 คอร์ แคชที่เชื่อมติดกับคอร์ดังกล่าวก็จะลดลงด้วย
Quad-Zeppelin Configuration พบในซีพียู Threadripper และ Epyc
ในชิปประมวลผลของ Threadripper และ Epyc จะประกอบไปด้วย Zeppelin หรือ Die 4 ชิ้น นั่นหมายความว่า จะมีจำนวนคอร์สูงสุดที่ 32 คอร์ และแคช L3 สูงสุด 64 MB
แต่ในความเป็นจริง ในซีพียู Threadripper จะมี Die เพียง 2 ชิ้นที่สามารถทำงานได้อย่างสมบูรณ์ ดังนั้น จึงเปรียบเสมือนว่า Threadripper มี Zeppelin อยู่ 2 หน่วยเท่านั้น ทำให้มีจำนวนคอร์สูงสุด 16 คอร์ และมีแคช L3 สูงสุด 32 MB
เอาล่ะ คิดว่าเท่านี้น่าจะพอทราบถึงส่วนพื้นฐาน ที่ทำให้ซีพียูทั้ง 3 กลุ่มมันแตกต่างกันละ ในหัวข้อถัดมา ผมจะพาไปดูว่าส่วนประกอบจาก 3 ข้อด้านบน มันเกี่ยวข้องกับความแตกต่างของซีพียู 3 กลุ่มนี้อย่างไร
ความแตกต่าง
PCIe Lanes
PCIe Lane เป็นคุณสมบัติของซีพียู ที่จะรอบรับการเชื่อมต่ออุปกรณ์ต่างๆ ไม่ว่าจะเป็นแรม, การ์ดจอ, การ์ดเสียง หรืออุปกรณ์อื่นๆ ถ้ามี PCIe Lane เยอะขึ้น ก็จะรองรับการทำงานร่วมกับอุปกรณ์เหล่านี้ได้เยอะขึ้น โดยเฉพาะแรม และการ์ดจอ
จากภาพทางด้านบน จะเห็น Ryzen 1800X ตัวท็อปของ Ryzen และซีพียูจาก Threadripper ทั้ง 3 รุ่น ซึ่งสิ่งที่แตกต่างกันอย่างเห็นได้ชัดคือเรื่องของจำนวนนคอร์, ขนาดของแคช, การรองรับแรมที่มากขึ้น และ PCIe Lanes (ขอพูดถึงแค่นี้ละกัน เอาคร่าวๆ)
ซึ่งสาเหตุที่ทำให้พวกมันมี PCIe Lane แตกต่างกันก็คือ จำนวน Zeppelin Configuration ของซีพียูทั้ง 2 กลุ่มนี้ โดยใน 1 Die จะมี PCIe Lane สูงสุด 32 เลน แต่จากที่ทราบกันว่า Ryzen มี 1 Die ก็ควรจะมี 32 PCIe lanes สิ ทำไมเหลือแค่ 24 ? ตรงนี้ผมได้ลองสืบค้นข้อมูลเพิ่มเติม ปรากฏว่ามันเกี่ยวข้องกับเรื่องขาพินที่จำกัดบนซีพียู ทำให้ PCIe Lane ลดลงเหลือ 24 แต่ทั้งนี้ ชิปเซตที่ดี ยังสามารถเพิ่ม PCIe Lane อื่นๆ ขึ้นได้ด้วย
ส่วนทางด้าน Threadripper ที่มีจำนวน Die มากกว่า ทำให้มี PCIe Lanes ถึง 64 เลน (Threadripper มี 2 Die ที่ทำงานได้) นั่นทำให้ Threadripper ทำงานร่วมกับแรมแบบ Quad-channel ได้ และสามารถใส่การ์ดจอได้ถึง 4 ใบ (x16, x16, x8, x8)
ในซีพียู Epyc จะมีจำนวน Die 4 ชิ้นที่สามารถทำงานได้อย่างสมบูรณ์ (อาจมีการเลเซอร์ เพื่อปิดการใช้งานบางคอร์ แต่ยังมี PCIe Lane ครบถ้วน) ทำให้ซีพียู Epyc นั้น มี PCIe Lane สูงถึง 128 เลน เพื่อรองรับการประมวลผลในงานที่เฉพาะเจาะจง เช่น เครื่องเซิร์ฟเวอร์ หรืองานทางวิทยาศาสตร์
การนำไปใช้งาน
Epyc
เรามาดูในส่วนของซีพียูกลุ่ม Epyc กันก่อนนะครับ ซีพียู Epyc ถูกออกแบบมาเพื่อใช้ในงานประมวลผลระดับสูง ที่ต้องการซีพียูที่มีประสิทธิภาพมาก มีจำนวนคอร์ที่ช่วยในการทำงานหลายๆ อย่างพร้อมกัน หรือทำงานที่ซับซ้อนได้เป็นอย่างดี
ดังนั้น ทาง AMD จึงได้ออกแบบให้ Epyc มี Zeppelin Configuration ถึง 4 ส่วน ทำให้มีจำนวนคอร์สูงสุดถึง 32 คอร์ 64 เทรด และนั่นหมายความว่า ซีพียู Epyc จะมี PCIe lane สูงถึง 128 เลน เพื่อรองรับการทำงานร่วมกับอุปกรณ์ชิ้นอื่นๆ บนเมนบอร์ดในจำนวนที่เพิ่มขึ้น โดยเฉพาะการ์ดจอและแรม
Epyc ยังมีรุ่นที่รองรับการทำงานแบบ Multiprocessors ในรุ่น 2P จะมีการนำซีพียู Epyc (ที่รองรับ) 2 ตัว มาใส่ลงบนเมนบอร์บอร์ดที่รองรับ เพื่อให้ช่วยกันประมวลผล นั่นหมายความว่า ระบบการประมวลผลที่เราจะได้นั้น จะมีคอร์ประมวลผลถึง 64 คอร์ 128 เทรด!
แต่ทั้งนี้ ในการใช้งานซีพียูแบบ Multiprocessors จะไม่เพิ่ม PCIe lane เป็น 2 เท่า (256) นะครับ เพราะซีพียู Epyc 2 ตัว จะต้องแบ่ง PCIe มา 64 เลน เพื่อให้สามารถส่งข้อมูลหากันได้นั่นเอง ผลสุดท้ายจึงมี PCIe lane อยู่ 64+64 = 128 เลนครับ
นอกจากนี้ AMD Epyc ยังมีคุณสมบัติอื่นๆ ที่เป็นประโยชน์ในงานเซิร์ฟเวอร์ เช่น AMD Secure Processor และ Memory Encryption ที่ช่วยในการเข้ารหัสข้อมูลของโปรแกรม และหน่วยความจำ (อ่านเพิ่มเติมได้ที่นี่)
Ryzen & Threadripper
ถัดมาจะเป็นซีพียูในกลุ่มคอมพิวเตอร์ Desktop นะครับ ทั้ง Ryzen และ Threadripper สามารถนำมาใช้งานกับเครื่องเดสก์ทอปได้ทั้งสิ้น แต่ขึ้นอยู่กับลักษณะของการนำไปใช้ครับ
– เล่นเกม
มาดูกันที่ส่วนแรก สำหรับผู้ใช้งานทั่วไปคงให้ความสนใจกับเรื่องของการเล่นเกมพอสมควร ซีพียูทั้ง 2 กลุ่ม รองรับการเล่นเกม และรองรับการทำ Overclock ด้วยกันทั้งคู่ แต่แน่นอนครับของซื้อของขาย มันก็ต้องมีตัวที่เล่นเกมได้ดีกว่ากันอยู่แล้ว
เกมในปัจจุบัน ถ้าให้เต็มที่เลย ผมคิดว่าใช้งานคอ์ซีพียูได้ไม่เกิน 8 คอร์ แถมต้องเป็นเกมที่มียูนิตเยอะด้วย ถึงจะใช้งานได้อย่างเต็มที่ ดังนั้น เมื่อเปรียบเทียบเฉพาะในส่วนนี้ ซีพียู Ryzen ที่มีคอร์น้อยกว่า น่าจะเล่นเกมได้ดีและคุ้มค่ากว่า (สมมุติว่ามีแรม และการ์ดจอเหมือนกันนะ)
แต่ถ้าใครอยากใช้ Threadripper เล่นเกม ก็สามารถทำได้เช่นกัน เพราะสามารถเปิดใช้ Game Mode เพื่อการเล่นเกมได้
ตรงนี้ผมจะขออธิบายสั้นๆ นะ ในโหมดปกติ จะมีการเปิดใช้คอร์ทั้งหมดที่มีบนซีพียู และมีการเข้าถึงแรมทั้งหมดในระบบ ด้วย Latency เฉลี่ย
แต่เมื่อเปิดใช้ Game Mode จะมีการปิดการใช้งาน Die ไป1 ชิ้น ทำให้จำนวนคอร์ของซีพียูลดลงครึ่งหนึ่ง และมีการเข้าถึงแรมที่อยู่ใกล้ที่สุดก่อน ทำให้ค่า Latency ที่ได้นั้น เป็นค่า Latency ที่น้อยกว่าในโหมดปกติ นั่นหมายถึง ซีพียูสามารถเข้าถึงแรมได้รวดเร็วกว่าใน Game Mode นี้
อย่างไรก็ตาม แม้ประสิทธิภาพในการเล่นเกม เมื่อเปิด Game Mode จะเพิ่มขึ้นพอสมควร แต่ผลการทดสอบโดยส่วนใหญ่ Ryzen ยังทำคะแนนได้ดีกว่านะครับ เพราะฉะนั้น ในส่วนของการเล่นเกมเลือก Ryzen ดีกว่าครับ
– การทำงาน
ตรงนี้ผมหมายถึงในงานที่โหลดหนักๆ ประมวลผลเยอะๆ นะครับ แน่นอนว่าการทีซีพียูมีคอร์มากกว่า ย่อมสามารถประมวลผลได้ดีกว่า ไม่ว่าจะเป็นการตัดต่อวิดีโอ การทำอะนิเมชันต่างๆ ดังนั้น ซีพียู Threadripper ที่มีจำนวนคอร์ซีพียูมากกว่า Ryzen จึงได้เปรียบในเรื่องนี้
นอกจากนี้ เนื่องจาก Threadripper มีจำนวน Die มากกว่า Ryzen นั่นหมายความว่า มันจะมี PCIe Lane ที่มากกว่า จึงรองรับแรมแบบ Quad-channel และการต่อการ์ดจอแบบ SLI/multi-GPU ได้ดีกว่า Ryzen ด้วยครับ
เพราะฉะนั้นในด้านการทำงานโหดนี่ ผมให้ Threadripper ชนะไป
– ราคา
อันนี้พิจารณาตามความเหมาะสมนะครับ ถ้าเน้นในเรื่องของการเล่นเกม หรือการทำงานทั่วไป Ryzen จะตอบโจทย์ทางด้านนี้มากกว่า เพราะมีราคาที่ไม่แพงมาก แต่ถ้าต้องทำงานที่ต้องใช้พลังงานจากซีพียู เช่น การตัดต่อวิดีโอ การทำอะนิเมชัน ก็ให้เลือกใช้ Threadripper จะเหมาะสมกว่าครับ
ส่วนตารางทางด้านล่างคือราคาของ Ryzen และ Threadripper รุ่นต่างๆ
เลือกใช้ซีพียูให้ถูกกับงาน คือสิ่งที่เราต้องพิจารณาเสมอนะครับ บทความในวันนี้ของผมคงจบลงเพียงเท่านี้ หากมีเนื้อหาใดบกพร่องไป ต้องขอภัยมา ณ ที่นี้ด้วย ส่วนใครที่สงสัยในส่วนไหนนะครับ สามารถคอมเมนต์สอบถามกันได้เลยนะครับ สวัสดีครับ
ขอขอบคุณข้อมูลจาก https://en.wikichip.org/wiki/amd/microarchitectures/zen
You must be logged in to post a comment.