- โปรเซสเซอร์แบบมัลติคอร์รวมเอาคอร์ที่สมบูรณ์หลายคอร์ไว้ในชิปเดียว โดยใช้ส่วนวงจรบางส่วนร่วมกันเพื่อปรับปรุงต้นทุน การใช้พลังงาน และประสิทธิภาพ
- ระบบมัลติโปรเซสเซอร์ติดตั้งซีพียูทางกายภาพหลายตัวบนเมนบอร์ด ทำให้ได้ผลลัพธ์ที่คล้ายคลึงกันในระดับเธรด แต่มีความซับซ้อนและต้นทุนสูงกว่า
- เพื่อให้สามารถใช้ประโยชน์จากหลายคอร์ได้อย่างแท้จริง คุณจำเป็นต้องใช้ระบบปฏิบัติการและแอปพลิเคชันแบบขนาน รวมถึงเทคโนโลยีต่างๆ เช่น HyperThreading หรือ SMT เพื่อให้ได้ประโยชน์สูงสุดจากแต่ละคอร์
- การใช้พลังงาน การระบายความร้อน และการย่อขนาดของทรานซิสเตอร์ กำลังกำหนดทิศทางการพัฒนาของ CPU, GPU และชิปเฉพาะทางสำหรับ AI และการใช้งานที่ต้องการประสิทธิภาพสูงอื่นๆ
หากคุณเปิดคอมพิวเตอร์ตั้งโต๊ะ แล็ปท็อป หรือแม้แต่สมาร์ทโฟนในปัจจุบัน คุณจะพบโปรเซสเซอร์แบบมัลติคอร์ที่ออกแบบมาให้ทำงานแบบขนานถึงแม้เราจะใช้เทคโนโลยีนี้มาหลายปีแล้ว แต่ก็ยังมีความสับสนอยู่มากเกี่ยวกับความหมายของการมีหลายคอร์ ความแตกต่างระหว่างการมีมัลติคอร์กับการมีโปรเซสเซอร์ทางกายภาพหลายตัว และความเกี่ยวข้องของเทคโนโลยีเหล่านี้กับแนวคิดต่างๆ เช่น HyperThreading, SMT หรือ GPU
เพื่อคลายความสับสนทั้งหมดนี้ เรามาทบทวนอย่างใจเย็นแต่ตรงไปตรงมาเกี่ยวกับสถาปัตยกรรมของซีพียูแบบมัลติคอร์บทบาทของแต่ละส่วนประกอบ และวิธีการที่ระบบปฏิบัติการและซอฟต์แวร์ใช้ประโยชน์จากมันนอกจากนี้เราจะตรวจสอบความแตกต่างที่แท้จริงระหว่างระบบมัลติคอร์และระบบมัลติโปรเซสเซอร์ พูดคุยเกี่ยวกับการใช้พลังงานและการระบายความร้อน และปิดท้ายด้วยการดูบทบาทของจีพียูและชิปที่เชี่ยวชาญในงานต่างๆ เช่น AI และการตัดต่อวิดีโอ
หน้าที่พื้นฐานของ CPU ในคอมพิวเตอร์
หน่วย ประมวลผล หรือที่รู้จักกันในชื่อ CPU หรือหน่วยประมวลผลกลางคือวงจรไฟฟ้าที่ตีความและประมวลผลคำสั่งโปรแกรมมันถูกสร้างขึ้นจากทรานซิสเตอร์หลายล้านหรือหลายพันล้านตัว จัดเรียงเป็นเกตตรรกะและเส้นทางภายในซึ่งสัญญาณไฟฟ้าที่แสดงถึงข้อมูลและคำสั่งไหลเวียนผ่าน
หน่วยประมวลผลกลาง (CPU) นี่เองที่ทำให้คอมพิวเตอร์เปลี่ยนจากกองชิปและสายไฟไปเป็นเครื่องจักรที่สามารถแปลงสัญญาณไฟฟ้าเป็นการประมวลผลข้อมูล และในหลายกรณีก็แปลงเป็นการกระทำทางกายภาพในโลกแห่งความเป็นจริงได้หากไม่มีหน่วยประมวลผลกลาง คอมพิวเตอร์ส่วนบุคคล เครื่องเล่นเกม โทรศัพท์มือถือ หรือแม้แต่เครื่องใช้ไฟฟ้า "อัจฉริยะ" ก็คงเป็นเพียงของประดับราคาแพงเท่านั้น
เมื่อคุณใช้งานโปรแกรมสำนักงาน คอมไพล์โค้ด เรนเดอร์วิดีโอ หรือเพียงแค่ท่องอินเทอร์เน็ตCPU ของคุณจะอ่านคำสั่ง ย้ายข้อมูลระหว่างหน่วยความจำ รีจิสเตอร์ และอุปกรณ์ต่อพ่วงอย่างต่อเนื่อง และประสานงานการทำงานของส่วนที่เหลือของระบบการจัดการการทำงานเหล่านี้วัดได้ในหน่วยเฮิรตซ์ (Hz) ซึ่งบ่งบอกถึงจำนวนรอบสัญญาณนาฬิกาต่อวินาทีที่โปรเซสเซอร์สามารถดำเนินการได้
เป็นเวลาหลายปีที่อุตสาหกรรมมุ่งเน้นไปที่ความถี่เป็นหลักการแข่งขันเพื่อให้ได้ความถี่สูงกว่ากิกะเฮิร์ตซ์นำไปสู่สถาปัตยกรรมต่างๆ เช่น NetBurst ของ Intel ซึ่งออกแบบมาให้ทำงานที่ความถี่ระดับกิกะเฮิร์ตซ์ได้แต่ต่อมาพวกเขาก็พบกับอุปสรรค ความถี่ที่เพิ่มขึ้นแต่ละครั้งทำให้การใช้พลังงานและอุณหภูมิสูงขึ้นจนยากต่อการควบคุมด้วยฮีทซิงค์แบบเดิม
แกนประมวลผลคืออะไรกันแน่?
ภายในตัวซีพียูสมัยใหม่นั้น ไม่ได้มีหน่วยประมวลผลขนาดใหญ่เพียงหน่วยเดียว แต่ประกอบด้วยบล็อกที่ซ้ำกันหลายบล็อก: แต่ละคอร์นั้นโดยพื้นฐานแล้วคือซีพียูที่สมบูรณ์แบบซึ่งรวมอยู่ในชิปเดียวกันการรวมกันของคอร์ทั้งหมด แคช และบัสภายใน คือสิ่งที่เราเรียกกันโดยทั่วไปว่า สถาปัตยกรรมของโปรเซสเซอร์
ในตลาดพีซีสำหรับผู้บริโภค สถาปัตยกรรมที่โดดเด่นคือ x86 และส่วนขยาย 64 บิต สถาปัตยกรรมนี้กำหนดชุดคำสั่ง รีจิสเตอร์ โหมดการกำหนดแอดเดรส และพฤติกรรมโดยรวมของคอร์โปรเซสเซอร์ที่มี 2, 4, 8, 16 หรือมากกว่านั้นสร้างขึ้นบนสถาปัตยกรรมนี้ โดยทั้งหมดสามารถประมวลผลรหัสเครื่องประเภทเดียวกันได้
หากเราพิจารณารายละเอียด เราจะเห็นว่าแต่ละแกนประมวลผลประกอบด้วยบล็อกหลักหลายบล็อกที่ทำงานร่วมกันเพื่อประมวลผลคำสั่งอย่างรวดเร็วและเป็นระเบียบแม้ว่าการใช้งานเฉพาะจะแตกต่างกันไปตามผู้ผลิตและรุ่น แต่ส่วนประกอบพื้นฐานนั้นคล้ายคลึงกันมาก
โดยทั่วไปแล้ว แกนประมวลผลหลักจะประกอบด้วยส่วนประกอบต่างๆ ดังต่อไปนี้:
- ชุดควบคุม (UC): รับผิดชอบในเรื่อง ควบคุมการไหลของคำสั่งและประสานงานการทำงานของเคอร์เนลและการสื่อสารกับหน่วยความจำและอุปกรณ์ต่อพ่วงอย่างเป็นระบบมันสร้างสัญญาณควบคุมที่ระบุว่าต้องอ่าน เขียน หรือถอดรหัสอะไรในแต่ละรอบ
- หน่วยเลขคณิต-ลอจิคัล (ALU): คือส่วนที่ มันทำการคำนวณทางคณิตศาสตร์ (การบวก การลบ การเลื่อนบิต) และการคำนวณเชิงตรรกะ (AND, OR, XOR การเปรียบเทียบ) กับข้อมูลที่ได้รับโดยทั่วไปจะมีหน่วยประมวลผลคำนวณและตรรกะ (ALU) หลายตัวเพื่อประมวลผลไมโครโอเปอเรชั่นแบบขนาน
- ประวัติ: พวกมันคือเซลล์หน่วยความจำขนาดเล็กที่มีความเร็วสูงมาก ซึ่งเป็นที่เก็บข้อมูล ที่อยู่ และผลลัพธ์ชั่วคราวของการดำเนินการคำสั่งต่างๆพวกเขามีบทบาทเป็น "กลุ่มปฏิบัติงาน" โดยตรงของกลุ่มหลัก
ส่วนประกอบเหล่านี้ยังถูกล้อมรอบด้วยแคชระดับต่างๆ (L1, L2 และบางครั้งอาจใช้ L3 ร่วมกัน) คิวคำสั่ง ตรรกะการคาดการณ์การแตกแขนง และหน่วยประมวลผลเฉพาะทางด้านการคำนวณเลขทศนิยมหรือเวกเตอร์ทั้งหมดนี้ทำงานร่วมกันเพื่อประมวลผลคำสั่งที่ไหลเข้ามาอย่างต่อเนื่องด้วยประสิทธิภาพสูงสุด
ทำไมเราถึงเปลี่ยนจากการเพิ่มความเร็ว GHz มาเป็นการเพิ่มจำนวนคอร์?
ในยุคแรกเริ่มของคอมพิวเตอร์ส่วนบุคคล วิธีที่ง่ายที่สุดในการเพิ่มประสิทธิภาพคือการเพิ่มความเร็วสัญญาณนาฬิกา: ยิ่งมีรอบสัญญาณนาฬิกาต่อวินาทีมากเท่าไหร่ ก็ยิ่งสามารถประมวลผลคำสั่งได้มากขึ้นเท่านั้น โดยมีเงื่อนไขว่าสถาปัตยกรรมของระบบจะเอื้ออำนวยการสร้างโปรเซสเซอร์ความเร็ว 1 GHz ตัวแรกถือเป็นก้าวสำคัญสำหรับทั้งเซิร์ฟเวอร์และพีซีส่วนบุคคล
ชิปเชิงพาณิชย์ตัวแรกที่ทำความเร็วได้ถึงระดับกิกะเฮิร์ตซ์คือDEC Alpha ในช่วงต้นทศวรรษ 90 ซึ่งเป็นโปรเซสเซอร์ที่ออกแบบมาสำหรับเวิร์กสเตชันและเซิร์ฟเวอร์ในตลาดสำหรับใช้งานในบ้าน ประมาณปี 1999 Intel กับ Pentium III และ AMD กับ Athlon ก็สามารถทะลุขีดจำกัด GHz ได้เช่นกัน และในช่วงหนึ่ง การตลาดเน้นไปที่ "ยิ่ง GHz มาก ยิ่งดี"
อย่างไรก็ตาม เมื่อถึงจุดหนึ่ง ผู้ผลิตพบว่าการเพิ่มความถี่ขึ้นอีกจะทำให้เกิดความร้อนและการใช้พลังงานเพิ่มขึ้นอย่างมากแกนกลางได้รับความเครียดจากความร้อนอย่างมหาศาล และระบบระบายความร้อนที่จำเป็นก็ไม่เหมาะสมสำหรับผู้ใช้ทั่วไป
ในบริบทนั้น กลยุทธ์ที่เปลี่ยนไปจึงเกิดขึ้น: หากการเพิ่มความเร็วในระดับ MHz และ GHz เริ่มไม่คุ้มค่ามากขึ้นเรื่อยๆทางเลือกที่สมเหตุสมผลก็คือการนำเสนอซีพียูแบบหลายคอร์ที่สามารถทำงานพร้อมกันได้ในหลายๆ งานแทนที่จะใช้คอร์เดียวที่ความเร็ว 10 GHz อุตสาหกรรมจึงเปลี่ยนมาเน้นการนำเสนอซีพียูแบบสอง สี่ แปด หรือมากกว่านั้น ที่ทำงานที่ความถี่ต่ำกว่า
แนวคิดนี้ค่อนข้างง่าย: หากแกนประมวลผลหนึ่งแกนสามารถประมวลผลคำสั่งจำนวนหนึ่งต่อหน่วยเวลาได้ แกนประมวลผลหลายแกนสามารถกระจายภาระงานและเพิ่มประสิทธิภาพโดยรวมได้ โดยเฉพาะอย่างยิ่งหากซอฟต์แวร์ได้รับการออกแบบให้ทำงานแบบขนานนั่นคือพื้นฐานของสถาปัตยกรรมมัลติคอร์สมัยใหม่
โปรเซสเซอร์มัลติคอร์รุ่นแรกและการพัฒนาต่อยอด
แม้ว่าผู้ใช้งานตามบ้านจะเริ่มได้ยินเกี่ยวกับโปรเซสเซอร์แบบดูอัลคอร์ในช่วงกลางทศวรรษ 2000 แต่โปรเซสเซอร์แบบมัลติคอร์รุ่นแรกๆ นั้นถูกนำไปใช้ในสภาพแวดล้อมเซิร์ฟเวอร์และระบบขนาดใหญ่แล้วและเช่นเดียวกับกรณีส่วนใหญ่ เทคโนโลยีนี้มักค่อยๆ แพร่กระจายมาจากโลกธุรกิจก่อน
หนึ่งในความสำเร็จครั้งสำคัญในช่วงแรกคือIBM POWER4 ซึ่งถือเป็นโปรเซสเซอร์เชิงพาณิชย์ตัวแรกที่มีสองคอร์รวมอยู่ในชิปเดียวมันปรากฏตัวขึ้นราวปี 2000-2001 ด้วยความถี่ประมาณ 1,1 GHz และมุ่งเป้าไปที่เซิร์ฟเวอร์ระดับไฮเอนด์
ในตลาดผู้บริโภค การเปลี่ยนแปลงครั้งสำคัญเกิดขึ้นค่อนข้างช้า ในปี 2005 อินเทลได้เปิดตัว Pentium Extreme Edition 840 ซึ่งเป็นโปรเซสเซอร์เดสก์ท็อปแบบดูอัลคอร์ที่รวมเอาเทคโนโลยี HyperThreading เข้ามาด้วยทำให้ระบบปฏิบัติการสามารถมองเห็นโปรเซสเซอร์เชิงตรรกะได้ถึงสี่ตัว ไม่นานหลังจากนั้น AMD ก็ตอบโต้ด้วย Athlon X2
ในขณะเดียวกัน ก็มีการสำรวจแนวทางอื่น นั่นคือระบบมัลติโปรเซสเซอร์ ซึ่งเมนบอร์ดหนึ่งตัวจะบรรจุซีพียูทางกายภาพสองตัวขึ้นไปตัวเลือกนี้ให้ประสิทธิภาพสูง แต่ก็แลกมาด้วยความซับซ้อน การสิ้นเปลืองพลังงาน และราคาที่สูงขึ้น ดังนั้นจึงยังคงใช้เป็นหลักสำหรับเซิร์ฟเวอร์และเวิร์กสเตชันประสิทธิภาพสูง
เมื่อเวลาผ่านไป และด้วยความก้าวหน้าในการย่อขนาดของทรานซิสเตอร์ ทำให้สามารถรวมคอร์จำนวนมากขึ้นเรื่อยๆ ลงในวงจรรวมเดียวได้ ซึ่งช่วยลดขนาดและปริมาณการใช้พลังงานต่อหน่วยประสิทธิภาพกระบวนการผลิตที่ระดับประมาณ 7 นาโนเมตรหรือเล็กกว่านั้น ทำให้สามารถนำซีพียูขนาดมหึมาที่มีมากถึง 32 หรือ 64 คอร์เข้าสู่ตลาดระดับมืออาชีพได้
มัลติคอร์กับมัลติโปรเซสเซอร์: เหมือนกันหรือไม่?
ในเชิงแนวคิด ระบบมัลติคอร์และระบบมัลติโปรเซสเซอร์มีความคล้ายคลึงกันมาก กล่าวคือ ทั้งสองกรณีมี "สมองประมวลผล" หลายตัวที่สามารถประมวลผลเธรดพร้อมกันได้นั่นเป็นเหตุผลที่คำอธิบายหลายๆ อย่าง (เช่น คำอธิบายจาก Superuser ที่คุณกล่าวถึง) สรุปความแตกต่างว่าเป็นเรื่องทางกายภาพและเศรษฐกิจเป็นหลัก
ใน ระบบ มัลติโปรเซสเซอร์แบบคลาสสิกคุณจะมีซีพียูทางกายภาพหลายตัวติดตั้งอยู่ในซ็อกเก็ตต่างๆ บนเมนบอร์ด โดยแต่ละตัวจะมีคอร์ แคช และตัวควบคุมเป็นของตัวเองอย่างไรก็ตาม ในชิปมัลติคอร์สมัยใหม่ คอร์เหล่านั้นทั้งหมดจะอยู่ในแพ็กเกจเดียวกันและใช้ส่วนวงจรบางส่วนร่วมกัน เช่น แคชหรือการเข้าถึงหน่วยความจำบางส่วน
ในทางปฏิบัติแล้วหมายความว่าอย่างไร? หมายความว่าระบบมัลติคอร์มักจะมีประสิทธิภาพมากกว่าในแง่ของต้นทุน พื้นที่ และการใช้พลังงาน เมื่อเทียบกับการใช้โปรเซสเซอร์ทางกายภาพแยกกันหลายตัวเพื่อให้ได้จำนวนคอร์ที่ใกล้เคียงกัน เนื่องจากตรรกะการรักษาความสอดคล้องของแคชและบัสภายในนั้นถูกรวมเข้าด้วยกันและปรับให้เหมาะสมมากยิ่งขึ้น
อย่างไรก็ตาม จากมุมมองของระบบปฏิบัติการและแอปพลิเคชันส่วนใหญ่เคอร์เนลก็คือหน่วยประมวลผลที่สามารถรันเธรดได้ ไม่ว่ามันจะอยู่บนชิปเดียวกันกับเคอร์เนลอื่นๆ หรืออยู่บนซีพียูแยกต่างหากก็ตามนั่นเป็นเหตุผลที่คำอธิบายหลายๆ อย่างมักจะทำให้ง่ายขึ้นและบอกว่ามัลติคอร์และมัลติโปรเซสเซอร์ "ทำสิ่งเดียวกัน"
ตารางเปรียบเทียบในเว็บไซต์บางแห่ง (เช่น เว็บไซต์ที่คุณลิงก์มาจาก GeeksforGeeks หรือ Javatpoint) บางครั้งอาจกล่าวเกินจริงเกี่ยวกับความแตกต่าง โดยถึงขั้นอ้างว่า"ระบบมัลติคอร์เหมาะสำหรับการรันโปรแกรมเร็วๆ เพียงโปรแกรมเดียวเท่านั้น และมัลติโปรเซสเซอร์จำเป็นสำหรับการรันหลายโปรแกรม " ซึ่งไม่ถูกต้อง ระบบทั้งสองประเภทสามารถรันหลายกระบวนการและหลายเธรดได้ ความแตกต่างที่แท้จริงอยู่ที่วิธีการจัดการการใช้งานทางกายภาพ และความแตกต่างเล็กน้อยในเรื่องความสอดคล้องของหน่วยความจำ ความหน่วง และความสามารถในการขยายขนาด
ต้องทำอย่างไรจึงจะใช้ประโยชน์จากซีพียูหลายคอร์ได้อย่างแท้จริง?
การใส่แกนประมวลผลจำนวนมากไว้บนซิลิคอนเป็นเพียงครึ่งหนึ่งของเรื่องราวทั้งหมด เพื่อให้ได้ประโยชน์สูงสุดจากแกนประมวลผลเหล่านั้นระบบปฏิบัติการและโดยเฉพาะอย่างยิ่งแอปพลิเคชัน จำเป็นต้องได้รับการออกแบบให้สามารถกระจายภาระงานไปยังหลายเธรดพร้อมกันได้ ซึ่งในช่วงหนึ่ง นี่คืออุปสรรคสำคัญในการก้าวไปสู่โปรเซสเซอร์แบบมัลติคอร์
ระบบปฏิบัติการสมัยใหม่ (Windows, Linux, macOS ฯลฯ) รองรับการทำงานแบบมัลติโปรเซสอย่างสมบูรณ์ และสามารถกระจายโปรเซสและเธรดไปยังคอร์ทางกายภาพและตรรกะต่างๆ ที่ใช้งานได้ ตัวจัดตารางเวลา (Scheduler)มีหน้าที่ตัดสินใจว่าเธรดใดจะทำงานบนคอร์ใด และทำงานนานเท่าใด
ปัญหาในอดีตไม่ได้อยู่ที่ระบบปฏิบัติการมากนัก แต่เป็นซอฟต์แวร์ของผู้ใช้ โปรแกรมเก่าๆ หลายโปรแกรมถูกเขียนขึ้นโดยคำนึงถึงการทำงานแบบเธรดเดียว ดังนั้นแม้ว่าคอมพิวเตอร์จะมี 4 หรือ 8 คอร์ โปรแกรมนั้นๆ ก็จะใช้ทรัพยากรเพียงแค่คอร์เดียวเท่านั้นในกรณีเช่นนั้น การเพิ่มจำนวนคอร์แทบจะไม่ช่วยปรับปรุงประสิทธิภาพของงานนั้นๆ เลย
เมื่อเวลาผ่านไป ด้วยความจำเป็น (เช่น การตัดต่อวิดีโอ การออกแบบ 3 มิติ การจำลอง เซิร์ฟเวอร์ฐานข้อมูล ฯลฯ) นักพัฒนาเริ่มออกแบบแอปพลิเคชันที่รองรับการทำงานแบบมัลติคอร์อย่างแท้จริง โดยแบ่งงานออกเป็นเธรดที่สามารถทำงานแบบขนานได้ในบริบทนี้เองที่แนวคิดของเธรดกระบวนการ ซับโปรเซส หรือเธรดจึงมีความสำคัญมากขึ้น
ในปัจจุบัน โปรแกรมออกแบบ เรนเดอร์ภาพ ตัดต่อวิดีโอ หรือโปรแกรม CAD ระดับมืออาชีพมักจะทำงานได้ดีมากกับจำนวนคอร์และเธรดในขณะที่เกมวิดีโอหลายเกมยังคงมีข้อจำกัดอยู่ที่เธรดหนักเพียงหนึ่งหรือสองเธรด (แม้ว่าจะมีความก้าวหน้าอย่างมากในด้านการประมวลผลแบบขนานในเกมก็ตาม)
ไฮเปอร์เธรดดิ้ง, SMT และเธรดเชิงตรรกะ
นอกจากการเพิ่มจำนวนคอร์ทางกายภาพแล้ว ผู้ผลิตยังได้นำเสนอแนวคิดที่น่าสนใจอีกอย่างหนึ่ง นั่นคือการทำให้แต่ละคอร์ทางกายภาพสามารถจัดการเธรดได้มากกว่าหนึ่งเธรดพร้อมกันผ่านการประมวลผลแบบมัลติเธรดพร้อมกัน ( Simultaneous Multithreading ) ที่ Intel เทคโนโลยีนี้เป็นที่รู้จักกันในชื่อ HyperThreading ส่วนที่ AMD มักเรียกว่า SMT (Simultaneous Multi-Threading)
หลักการพื้นฐานของเทคนิคนี้คือภายในเคอร์เนลมีหน่วยประมวลผลจำนวนมากที่ไม่ถูกใช้งานเต็ม 100% ตลอดเวลาหากคุณจัดการเพียงเธรดเดียว จะมีบางช่วงเวลาที่เคอร์เนลกำลังรอข้อมูลจากหน่วยความจำหรือผลลัพธ์จากบล็อกภายในอื่น ซึ่งเป็นการสิ้นเปลืองศักยภาพ
การทำงานแบบมัลติเธรดพร้อมกันช่วยให้เธรดเชิงตรรกะสองเธรด (หรือมากกว่า) สามารถใช้แกนประมวลผลทางกายภาพเดียวกันและทรัพยากรภายในร่วมกันได้ ซึ่งช่วยเติมเต็มช่องว่างในไปป์ไลน์การประมวลผลสำหรับระบบปฏิบัติการแล้ว จะดูเหมือนว่ามี "โปรเซสเซอร์" เพิ่มขึ้น แต่ในความเป็นจริง สิ่งที่ทำคือการใช้ฮาร์ดแวร์ที่มีอยู่ให้เกิดประโยชน์สูงสุด
ตัวอย่างเช่น โปรเซสเซอร์แบบควอดคอร์ที่เปิดใช้งาน HyperThreading จะถูกระบบมองเห็นเป็นโปรเซสเซอร์เชิงตรรกะแปดตัว ซึ่งเป็นประโยชน์ในสถานการณ์ที่มีงานเบาๆ จำนวนมาก หรือมีการรอหน่วยความจำจำนวนมาก Intel นำเสนอเทคโนโลยีนี้ในผลิตภัณฑ์ Core และ Xeon หลายรุ่น ในขณะที่ AMD ใช้ในโปรเซสเซอร์ Ryzen และ EPYC ภายใต้ชื่อ SMT
ข้อสำคัญ: เธรดเชิงตรรกะไม่ได้ให้ประสิทธิภาพเท่ากับคอร์ทางกายภาพเพิ่มเติม แต่จะช่วยปรับปรุงประสิทธิภาพได้อย่างเห็นได้ชัดในงานบางประเภทนี่คือเหตุผลที่เราใช้คำว่า "คอร์จริง" แทน "โปรเซสเซอร์เชิงตรรกะ" เมื่อดูจากตัวจัดการงานของ Windows หรือเครื่องมือตรวจสอบอื่นๆ
วิธีตรวจสอบจำนวนคอร์และเธรดของ CPU ของคุณ
ในระบบ Windows หากคุณเปิดTask Manager แล้วไปที่แท็บ Performance คุณจะเห็นส่วนเฉพาะสำหรับ CPUตรงนั้นคุณจะพบข้อมูลเกี่ยวกับจำนวนคอร์ทางกายภาพและจำนวนโปรเซสเซอร์เชิงตรรกะ (เธรด) ที่ใช้งานได้
สิ่งสำคัญที่ควรทราบคือ โปรแกรมยูทิลิตี้ของระบบหรือเครื่องมือแบบคลาสสิกบางตัวอาจไม่แยกความแตกต่างระหว่างคอร์ทางกายภาพและเธรดเชิงตรรกะ และอาจเรียกทั้งสองอย่างว่า "โปรเซสเซอร์ " เฉยๆ นั่นเป็นเหตุผลที่โปรเซสเซอร์ 6 คอร์ที่เปิดใช้งาน SMT มักปรากฏเป็น 12 "ซีพียู" ในรายการบางรายการ
ในระบบปฏิบัติการอื่นๆ สถานการณ์ก็คล้ายกัน: Linux มีคำสั่งต่างๆ เช่น lscpu หรือ cat /proc/cpuinfo เพื่อดูรายละเอียดของคอร์และเธรดทางกายภาพและใน macOS คุณสามารถตรวจสอบข้อมูลระบบหรือใช้เครื่องมือบรรทัดคำสั่งได้
ความแตกต่างระหว่างคอร์และเธรดมีความสำคัญเมื่อคุณต้องการเข้าใจว่าคุณกำลังซื้ออะไรหรือคุณคาดหวังอะไรจากคอมพิวเตอร์ของคุณ: โปรเซสเซอร์ที่มี 4 คอร์และ 8 เธรดนั้นไม่เหมือนกับโปรเซสเซอร์ที่มี 8 คอร์และ 8 เธรด แม้ว่าทั้งสองจะโฆษณาว่าเป็น "8 เธรด " ก็ตาม โดยทั่วไปแล้วโปรเซสเซอร์ที่มี 8 คอร์และ 8 เธรดจะมีพลังประมวลผลมากกว่าสำหรับงานที่ต้องการการประมวลผลแบบขนานสูง
หน่วยประมวลผลกราฟิก (GPU), ไมโครโปรเซสเซอร์ และส่วนประกอบอื่นๆ ที่เกี่ยวข้อง
แม้ว่าเมื่อพูดถึงสถาปัตยกรรมมัลติคอร์ เรามักจะนึกถึง CPU เป็นหลัก แต่ก็ยังมีโปรเซสเซอร์เฉพาะทางอื่นๆ ที่ทำงานด้วยคอร์หลายสิบหรือหลายพันคอร์เพื่อเร่งความเร็วงานเฉพาะด้าน ตัวอย่างที่รู้จักกันดีที่สุดคือ GPU
หน่วยประมวลผลกราฟิก (GPU) คือหน่วยประมวลผลชนิดหนึ่งที่ออกแบบมาเพื่อประมวลผลการคำนวณง่ายๆ จำนวนมากพร้อมกันเดิมทีพัฒนาขึ้นเพื่อเร่งความเร็วในการแสดงผลกราฟิกบนพีซี คอนโซล และอุปกรณ์พกพา แต่ปัจจุบันมีการใช้งานอย่างแพร่หลายในปัญญาประดิษฐ์ การขุดคริปโตเคอร์เรนซี และการคำนวณทางวิทยาศาสตร์
เช่นเดียวกับ CPU, GPU ประกอบด้วยทรานซิสเตอร์และบล็อกตรรกะ แต่สถาปัตยกรรมภายในได้รับการปรับให้เหมาะสมสำหรับการประมวลผลแบบขนานจำนวนมาก โดยมีคอร์ขนาดเล็กจำนวนมากจัดเรียงเป็นกลุ่มที่สามารถประมวลผลข้อมูลปริมาณมากได้อย่างสม่ำเสมอนั่นเป็นเหตุผลที่ทำให้ GPU โดดเด่นในด้านกราฟิกและโครงข่ายประสาทเทียม
ในโลกของซีพียูแบบดั้งเดิม การย่อขนาดได้นำไปสู่ไมโครโปรเซสเซอร์: ซีพียูที่สมบูรณ์แบบซึ่งรวมอยู่ในชิปวงจรรวมเดียว โดยมีแกนประมวลผลทางกายภาพหนึ่งแกนขึ้นไปปัจจุบัน ซีพียูสำหรับผู้บริโภคเกือบทั้งหมดเป็นไมโครโปรเซสเซอร์แบบหลายแกน
ในไมโครโปรเซสเซอร์นี้ แต่ละคอร์ทางกายภาพอาศัยระบบนิเวศของแคช บัสภายใน และตัวควบคุมหน่วยความจำและอินพุต/เอาต์พุต ซึ่งทั้งหมดนี้บรรจุอยู่ในพื้นที่ขนาดเล็กมากทำให้สามารถประกอบระบบที่มีประสิทธิภาพสูงมากบนเมนบอร์ดขนาดกะทัดรัด ซึ่งเป็นสิ่งสำคัญสำหรับแล็ปท็อป มินิพีซี และอุปกรณ์ฝังตัว
การใช้พลังงาน ความร้อน และการออกแบบศูนย์ข้อมูล
การใช้พลังงานเป็นหนึ่งในปัจจัยที่มีอิทธิพลมากที่สุดต่อการพัฒนาซีพียูแบบมัลติคอร์ยิ่งเราเพิ่มจำนวนคอร์และยิ่งความเร็วสัญญาณนาฬิกาสูงขึ้นเท่าใด พลังงานที่ถูกปล่อยออกมาในรูปของความร้อนก็จะยิ่งมากขึ้นเท่านั้นความร้อนนี้จะต้องถูกระบายออกจากชิปเพื่อป้องกันไม่ให้ชิปเสียหาย
ในพีซีที่บ้าน การระบายความร้อนที่ดีหมายถึงการใช้ฮีทซิงค์ขนาดใหญ่ขึ้น พัดลมที่ทรงพลังกว่า หรือแม้แต่ระบบระบายความร้อนด้วยของเหลว แต่ในศูนย์ข้อมูลที่มีเซิร์ฟเวอร์หลายพันเครื่องทำงานเต็มประสิทธิภาพ สมการนี้มีความสำคัญอย่างยิ่ง เพราะค่าใช้จ่ายในการระบายความร้อนอาจสูงมาก
ดังนั้น ผู้ให้บริการคลาวด์รายใหญ่และศูนย์ข้อมูลขนาดใหญ่จึงออกแบบโครงสร้างพื้นฐานด้วยการวางแผนอย่างพิถีพิถันเกี่ยวกับการควบคุมอุณหภูมิ ทางเดินร้อนและเย็น และในบางกรณี การระบายความร้อนด้วยของเหลวโดยตรงไปยังส่วนประกอบต่างๆท้ายที่สุดแล้ว พลังงานทุกวัตต์ที่ประหยัดได้ต่อโปรเซสเซอร์จะถูกคูณเพิ่มให้กับเครื่องคอมพิวเตอร์หลายพันเครื่อง
ที่บ้าน ความยั่งยืนก็มีความสำคัญเช่นกัน: คอมพิวเตอร์ที่มีประสิทธิภาพสูงมากอาจใช้พลังงานมากหากใช้งานหนักอยู่ตลอดเวลาซึ่งอาจยอมรับได้สำหรับงานที่ต้องการประสิทธิภาพสูงเป็นครั้งคราว แต่ก็ไม่คุ้มค่าหากคุณใช้งานเพียงแค่ท่องอินเทอร์เน็ต ดูวิดีโอ และทำงานเอกสารพื้นฐานเท่านั้น
ด้วยเหตุนี้ ผู้ผลิตจึงให้ความสำคัญกับประสิทธิภาพมากขึ้นเรื่อยๆสถาปัตยกรรมแบบไฮบริดที่มีทั้งคอร์ประสิทธิภาพสูงและคอร์ประหยัดพลังงาน การปรับความถี่และแรงดันไฟฟ้าแบบไดนามิก และโหมดประหยัดพลังงานขั้นสูง ช่วยลดการใช้พลังงานเมื่อไม่จำเป็นต้องใช้พลังงานเต็มที่
ชิปเฉพาะทางและบทบาทของปัญญาประดิษฐ์
การพัฒนาอย่างรวดเร็วของปัญญาประดิษฐ์ในช่วงไม่กี่ปีที่ผ่านมา ส่งผลให้เกิดโปรเซสเซอร์และตัวเร่งความเร็วที่ออกแบบมาโดยเฉพาะสำหรับงานด้านการเรียนรู้ของเครื่องและโครงข่ายประสาทเทียมในที่นี้ เราไม่ได้พูดถึงแค่ CPU และ GPU เท่านั้น แต่ยังรวมถึงหน่วยประมวลผลต่างๆ เช่น หน่วยประมวลผลเทนเซอร์ (TPU) หรือหน่วยประมวลผลสตรีมมิ่งเทนเซอร์ (TSP) ด้วย
ชิปเหล่านี้มุ่งเน้นการให้ประสิทธิภาพที่ยอดเยี่ยมในการดำเนินการเมทริกซ์และเวกเตอร์ ซึ่งเป็นเรื่องปกติในการฝึกอบรมและการอนุมานโมเดล AIโดยทั่วไปแล้วจะประกอบด้วยหน่วยประมวลผลที่เรียบง่ายแต่มีการจัดระเบียบอย่างสูงหลายร้อยหรือหลายพันหน่วย เพื่อเพิ่มประสิทธิภาพการประมวลผลแบบขนานให้สูงสุด
ในกลุ่มซีพียูอเนกประสงค์นั้น ยังมีรุ่นที่ออกแบบมาโดยเฉพาะสำหรับงานเหล่านี้ด้วย ตัวอย่างเช่นโปรเซสเซอร์ที่มีคอร์จำนวนมาก เช่น โปรเซสเซอร์ AMD Threadripper บางรุ่น หรือ Intel Core และ Intel Xeon ระดับไฮเอนด์ ได้รับความนิยมอย่างมากสำหรับการตัดต่อวิดีโอ การเรนเดอร์ และงาน AI และงานสร้างสรรค์แบบผสมผสาน
ขึ้นอยู่กับว่าคุณตั้งใจจะใช้คอมพิวเตอร์อย่างไร การให้ความสำคัญกับคุณสมบัติบางอย่างจึงเป็นเรื่องสำคัญ: สำหรับการตัดต่อวิดีโอระดับมืออาชีพ คุณอาจต้องการซีพียูที่มีหลายคอร์และการ์ดจอที่ดี สำหรับการเล่นเกม ความหน่วงและประสิทธิภาพต่อคอร์มีความสำคัญมาก และสำหรับงานทั่วไป ซีพียูระดับกลางรุ่นใหม่ๆ เกือบทุกรุ่นก็เพียงพอแล้ว
ทั้งหมดนี้เกิดขึ้นควบคู่ไปกับการพัฒนาอย่างต่อเนื่องในด้านความหนาแน่นของทรานซิสเตอร์: กระบวนการผลิตรุ่นใหม่แต่ละรุ่นช่วยให้สามารถบรรจุวงจรตรรกะได้มากขึ้นในพื้นที่เท่าเดิม หรือลดการใช้พลังงานลงได้โดยยังคงประสิทธิภาพไว้ใกล้เคียงกันนี่จึงเป็นเหตุผลว่าทำไมเราจึงเห็นซีพียูรุ่นใหม่ๆ ที่มีประสิทธิภาพและประหยัดพลังงานเหนือกว่ารุ่นเมื่อไม่กี่ปีที่ผ่านมาอย่างมาก
ทรานซิสเตอร์: รากฐานของสถาปัตยกรรมทั้งหมดนี้
ภายใต้ศัพท์เทคนิคมากมายเกี่ยวกับคอร์ เธรด แคช และจีพียู นั้น มีส่วนประกอบที่เรียบง่ายแต่สำคัญอย่างยิ่งซ่อนอยู่ นั่นคือทรานซิสเตอร์ อุปกรณ์เซมิคอนดักเตอร์ขนาดเล็กที่ควบคุมการไหลของกระแสไฟฟ้าในวงจรชื่อของมันมาจากคำว่า "ตัวต้านทานถ่ายโอน" (transfer resistor)
ในด้านคอมพิวเตอร์ ทรานซิสเตอร์ถูกนำมาใช้สร้างวงจรลอจิกเกต รีจิสเตอร์ หน่วยความจำ และบล็อกดิจิทัลทุกชนิดพวกมันมีหน้าที่ในการแปลงภาษาไบนารีของ 0 และ 1 ที่คอมพิวเตอร์ใช้ในการแสดงข้อมูลและตรรกะบูลีนให้เป็นรูปธรรม
วิวัฒนาการของอุปกรณ์อิเล็กทรอนิกส์สมัยใหม่สามารถสรุปได้ว่าเป็นการแข่งขันเพื่อบรรจุทรานซิสเตอร์ให้มากขึ้นในพื้นที่ที่น้อยลง ในขณะเดียวกันก็ลดการใช้พลังงานต่อทรานซิสเตอร์ลงนี่คือแก่นแท้ของกระบวนการผลิตในแต่ละรุ่น ตั้งแต่ระดับไมโครเมตร (µm) ไปจนถึงระดับนาโนเมตร (nm) และขนาดก็ยังคงเล็กลงเรื่อยๆ
ในซีพียูแบบมัลติคอร์สมัยใหม่ สวิตช์อิเล็กทรอนิกส์ขนาดเล็กนับพันล้านตัวทำงานด้วยความเร็วเต็มที่ความน่าเชื่อถือ ขนาด และประสิทธิภาพของสวิตช์เหล่านี้เป็นตัวกำหนดประสิทธิภาพและข้อจำกัดของสถาปัตยกรรมโปรเซสเซอร์ใดๆ ในที่สุด
หากเรามองในมุมมองที่กว้างขึ้น ความมหัศจรรย์ของการทำงานหลายเธรด การประสานงานของหลายคอร์ การแชร์แคช หรือการย้ายข้อมูลระหว่าง CPU, GPU และตัวเร่งความเร็วเฉพาะทางนั้น ก็เป็นเพียงการประสานกันอย่างมหาศาลของทรานซิสเตอร์ที่เปิดและปิดตามรูปแบบที่กำหนดไว้อย่างชัดเจนเท่านั้น
เมื่อพิจารณาจากทั้งหมดข้างต้นแล้ว เราจะเข้าใจได้ชัดเจนยิ่งขึ้นว่าอะไรคือสิ่งที่อยู่เบื้องหลัง "โปรเซสเซอร์มัลติคอร์" นอกเหนือจากจำนวนคอร์จำนวนคอร์และความถี่ของคอร์นั้นสำคัญ แต่สถาปัตยกรรมภายใน การรองรับเทคโนโลยีต่างๆ เช่น HyperThreading หรือ SMT ประสิทธิภาพการใช้พลังงาน การออกแบบซอฟต์แวร์ที่ใช้ประโยชน์จากคอร์เหล่านั้น และวิธีการทำงานร่วมกับโปรเซสเซอร์อื่นๆ เช่น GPU ก็สำคัญเช่นกันการทำความเข้าใจส่วนประกอบเหล่านี้จะช่วยให้คุณเลือกฮาร์ดแวร์ได้อย่างมีประสิทธิภาพมากขึ้น และเหนือสิ่งอื่นใด จะช่วยให้คุณเข้าใจความหมายที่แท้จริงของข้อมูลจำเพาะต่างๆ ที่คุณเห็นในเอกสารข้อมูลทางเทคนิคได้ดียิ่งขึ้น