วันอาทิตย์ที่ 8 เมษายน พ.ศ. 2555

CPU คอร์แท้ กับคอร์เทียมของ Intel กับ AMD นั้นต่างกันอย่างไร ที่นี่มีคำตอบ...

บทความนี้ที่เขียนขึ้นมานั้นก็สืบเนื่องมาจากที่ ผมได้ไปเข้าเล่นเว็บบอร์ดอยู่ที่หนึ่ง และผมก็ไปสะดุดตาเข้าเกี่ยวกับคำถามที่ถามว่า "คอร์แท้ กับคอร์เทียมของ CPU ต่างกันยังไงครับ" ผมก็เลยเข้าไปลองอ่านลองชม ซึ่งเค้าถามว่าทำไม AMD FX-8150 มีจำนวน Core "แท้" 8 Core ถึงช้ากว่า Intel i7-2600K ซึ่งมี 4 Core แต่มี 8 Thread ซึ่งก็ยังรู้สึกว่ามีคนเข้าใจผิดอยู่พอสมควร วันนี้ผมจึงขอมาอธิบายเรื่องนี้ให้ฟังครับผม

เข้าใจความหมายของ "คอร์แท้"

มาเข้าใจคำว่า Core กันก่อน Core ของ CPU นั้นก็หมายถึงหน่วยประมวลผลในตัว CPU ซึ่งสมัยก่อนนั้น CPU นั้น CPU หนึ่งตัวจะมีหน่วยประมวลผลเพียงแค่ Core เดียวเท่านั้น ซึ่งต่างจากปัจจุบันที่เทคโนโลยีการผลิตนั้นลดลงจนเหลือเพียง 32nm และกำลังจะกลายเป็น 22nm ในไม่ช้า จึงทำให้ CPU นั้นสามารถที่จะใส่ Core เข้าไปได้มากยิ่งขึ้น อยากให้เข้าใจกันง่ายๆว่า 1 คอร์แท้จะสามารถทำงานได้ทีละ 1 คำสั่ง จะได้ง่ายต่อการเปรียบเทียบ


เข้าใจความหมายของ "คอร์เทียม"

ต่อไปเรามาเข้าใจคำว่าคอร์เทียมกันบ้าง คอร์เทียมนั้นมันมาจากที่ว่าทาง Intel นั้นได้คิดค้นเทคโนโลยีที่มีชื่อว่า Hyper-Threading ขึ้นมา ถ้าจำไม่ผิดน่าจะตั้งแต่สมัย Pentium4 ที่มีแถบสีส้มๆตรงโลโก้ว่า "HT" ซึ่งลักษณะของ Hyper-Threading นั้นก็คือมันจะทำการจำลอง Core ของ CPU เพื่อหลอก OS(หรือ Windows ตามภาษาชาวบ้านนั่นแหละ) ว่ามีจำนวน Core มากขึ้นอีกเท่าตัว เพื่อที่มันจะสามารถรับงาน หรือคำสั่งต่างๆได้มากขึ้นทั้งที่มีจำนวน Core เท่าเดิม

ด้วยเหตุผลนี้แหละครับจึงทำให้เกิดข้อสงสัยเกี่ยวกับคำว่า "คอร์แท้ vs คอร์เทียม" แบบไหนดีกว่ากัน การที่ Intel มาทำแบบนี้ถือว่าหลอกขายของรึเปล่า มี 4 Core แต่ทำเป็นทำงาน 8 Thread ซึ่งผมขอบอกว่าไม่ใช่แน่นอน ถ้าอยากรู้ว่าเพราะอะไรอ่านต่อเลยครับ

เปรียบเทียบ AMD FX-8150 , AMD Phenom II X6 และ Intel Core i7(Sandy-Bridge)
ในระดับสถาปัตยกรรม


ผมขอเริ่มจากทางฝั่ง AMD กันก่อน กับเจ้า FX-8150 ตัวใหม่ล่าสุดที่มาพร้อม Core แบบ Bulldozer ซึ่งทาง AMD นั้นเคลมว่า CPU ตัวนี้นั้นเป็น 8 Core แท้ตัวแรกของโลก แต่เอาเข้าจริงแล้ว Core ของ FX มันทำงานอย่างกับ 4 Core 8 Thread เนื่องจากว่ามันมีแค่ 4 Module ในการทำงานหลักๆ ซึ่งแต่ละ Module ก็มี Core จิ๋ว 2 ตัวทำงานโดยใช้ทรัพยากรร่วมกันดังรูปด้านล่าง
ซึ่งถ้าดูจากรูปแล้ว ฝั่งซ้ายนั้นเป็น Algorithm ภายในของ Core Bulldozer 1 Module และฝั่งขวานั้นเป็น Core ของ i7 ที่เปิดใช้งาน Hyper-Threading จำนวน 1 Module เช่นกัน ดูตามเนื้อผ้าแล้วยังไง Bulldozer ก็กินขาด เพราะว่ามันมีถึง 2 Core ช่วยกันทำงานอย่างอิสระต่อกัน ประสิทธิภาพนั้นน่าจะเพิ่มขึ้นอีกเท่าตัว ต่างจากของ Core i7 ที่จะต้องทำงานแบบสลับไปสลับมา ประสิทธิภาพน่าจะหายไปถึง 50% เลยทีเดียวเพราะว่าคอร์น้อยกว่า(ในกรณีที่ต้องทำสองงานพร้อมกัน)

    จากรูปด้านบนจะเห็นว่า FX-8150 นั้นมีคอร์ Bulldozer อยู่ 4 Module ซึ่งรวมแล้วมันก็จะมีคอร์ภายในทั้งหมด 8 Core เพียงแต่ว่าประเด็นคือ มันดันกลายเป็น Core จิ๋วครับ ประสิทธิภาพต่อ Core มันค่อนข้างต่ำ ลองนึกสภาพถ้ามีงานเข้ามา 4 งาน ทั้ง 4 งานมันก็จะกระจายไปหา Bulldozer ทั้ง 4 คอร์ซึ่งจะทำให้มีคอร์ภายในของ Bulldozer หนึ่งคอร์ที่ไม่ได้ใช้งาน มันแทบไม่ต่างจาก 4 Core 8 Thread เลยนะเนี่ย = ="



 ซึ่งแตกต่างจากรุ่นเก่าอย่าง AMD Phenom II X6 ซึ่งตัวนี้มันมาแบบ 6 Core แท้ชัวๆ และเป็น Core ขนาดปกติไม่ได้ถูกซอยให้ทำงานได้หลาย Thread จึงทำให้หลายๆการทดสอบของ AMD Phenom II X6 นั้นมีผลคะแนนดีกว่า FX-8150 เสียอีก นอกเสียจากว่าไปทำงานที่ใช้คำสั่งใหม่จากใน FX-8150 ก็จะทำให้งานนั้น FX-8150 ก็จะเร็วกว่า

ส่วน Core i7 Sandy-Bridge เค้าก็ใช้เพียงแค่ 4 Core แท้ๆ จะว่าเป็น 4 Module นี่ก็ได้ แต่ Hyper-Threading มันเสมือนเป็นถนนสายพิเศษที่เพิ่มช่องทางให้ 4 Module แท้ๆที่มีอยู่ สามารถติดต่อเพื่อรับคำสั่งจาก OS ได้ทั้งหมดถึง 8 ช่องทาง ต่างจาก i5 ที่มันติดต่อกับคำสั่งจาก OS ได้เพียง 4 ช่องทางเท่านั้น เพราะ i5 ไม่มี Hyper-Threading

ซึ่งถ้าเกิด 4 ช่องทางนั้นถูกจองด้วยคำสั่งต่างๆไว้หมดแล้ว แต่ดันเหลือคำสั่งเบาๆค้างอยู่ใน Task แทนที่จะทำให้เสร็จๆไป ก็ทำให้งานที่เหลือไม่สามารถเข้ามาแทรกได้ กลับกัน i7 มันสามารถรับคำสั่งใหม่เข้ามาทำงานได้เลย ซึ่ง OS นั้นก็จะจัดสรรให้เอง นี่แหละประโยชน์ของ Hyper-Threading หรือคอร์เทียมที่เพื่อนๆเข้าใจกัน

แต่ว่าถ้าเกิดกรณีที่ CPU ทั้ง i7 และ i5 ได้รับคำสั่งจากทั้ง 4 ช่องทางแบบ 100% เต็มหมดแล้ว Hyper-Threading ก็จะหมดประโยชน์ไปทันที ดังจะเห็นได้ว่าบางการทดสอบนั้นตัว i7 กับ i5 มีคะแนนที่เท่าๆกัน

ทำไมคอร์แท้ใน FX-8150 ถึงช้ากว่า Phenom II และ Core i7(Sandy Bridge)

เหตุผลที่ Core i7 มันแรงกว่า FX ในหลายๆการทดสอบก็เพราะว่า แต่ละ Core ของ i7 มันทำงานเสร็จไวเหมือนเอาคนที่มีรอยหยักในสมองเยอะ บวกกับมีเนื้อสมองที่ใหญ่ด้วยมาคำนวนอะไรต่างๆที่มันเยอะๆยากๆมันก็เร็ว ซึ่งต่างกับ Core จิ๋วบน FX ที่เอาคนที่มีรอยหยักในสมองเยอะ แต่เนื้อสมองมันน้อย พอมาคำนวนอะไรต่างๆที่มันเยอะๆมันก็ช้ากว่า ต้องค่อยๆทำ แต่ถ้ากรณี
คำนวนอะไรง่ายๆ น้อยๆ เช่นบวกเลขลบเลข มันก็ทำงานได้เร็วเท่าๆกันเพราะมันก็ฉลาดทั้งคู่ หรือไปเจองานที่ถนัดกว่าก็ย่อมทำได้ดีกว่า และเร็วกว่าเสมอ
สรุปง่ายๆว่า
Hyper-Threading หรือคอร์เทียมก็คือการทำให้ CPU ตัวนั้นใช้งานได้มีประสิทธิภาพสูงที่สุดนั่นเอง Core ไม่ต้องเยอะ แต่ใช้ให้คุ้มๆ ส่วนอีกค่ายนั้นงานน้อยๆใช้ไม่คุ้ม แต่งานเยอะๆคุ้มแน่นอน ไม่ต้องไปคิดมากว่าสเปคเจ้าไหนจะยัดมาให้เยอะ เพียงแค่ขอให้ไปดูว่า CPU ที่จะซื้อนั้นมันตรงกับงานที่เราจะใช้หรือไม่ก็พอ สวัสดีครับ
 
 

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