Anonim

เมื่อคอมพิวเตอร์ส่วนบุคคลถูกคิดค้นครั้งแรกหน่วยประมวลผลกลาง (CPU) ของพวกเขายืนอยู่คนเดียวและมีหน่วยประมวลผลหลักเพียงหนึ่งเดียว ตัวประมวลผล เป็น แกนหลัก แนวคิดของการมีหน่วยประมวลผลหลายคอร์นั้นยังไม่เคยได้ยินมาก่อน ทุกวันนี้ไม่ใช่เรื่องแปลกที่จะเห็นคอมพิวเตอร์โทรศัพท์และอุปกรณ์อื่น ๆ ที่มีหลายคอร์ - จริง ๆ แล้วคอมพิวเตอร์ทุกเครื่องที่มีจำหน่ายทั่วไปมีหลายคอร์ แกนประมวลผลเหล่านี้อยู่ในหน่วยประมวลผลกลางเดี่ยวหรือหน่วยประมวลผลกลาง

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

ก่อนที่จะดำดิ่งลงไปว่าโปรเซสเซอร์แบบมัลติคอร์ทำงานอย่างไรมันเป็นเรื่องสำคัญที่จะต้องพูดคุยเล็กน้อยเกี่ยวกับเบื้องหลังของเทคโนโลยีการประมวลผลหลังจากนั้นเราจะพูดถึงสิ่งที่ตัวประมวลผลแบบมัลติคอร์ทำ

ประวัติความเป็นมา

ก่อนที่จะสร้างตัวประมวลผลที่มีหลายคอร์ผู้คนและ บริษัท เช่น Intel และ AMD พยายามสร้างคอมพิวเตอร์ที่มี CPU หลายตัว สิ่งนี้หมายถึงว่าต้องการเมนบอร์ดที่มีซ็อกเก็ต CPU มากกว่าหนึ่งซ็อกเก็ต ไม่เพียงแค่นี้มีราคาแพงกว่าเพราะฮาร์ดแวร์ทางกายภาพที่จำเป็นสำหรับซ็อกเก็ตซีพียูอื่น แต่มันก็เพิ่มความล่าช้าในการสื่อสารที่เพิ่มขึ้นที่จำเป็นต้องใช้ระหว่างสองโปรเซสเซอร์ มาเธอร์บอร์ดต้องแยกข้อมูลระหว่างสองตำแหน่งที่แยกจากกันอย่างสมบูรณ์ในคอมพิวเตอร์แทนที่จะส่งข้อมูลทั้งหมดไปยังโปรเซสเซอร์ ในความเป็นจริงแล้วระยะทางกายภาพหมายความว่ากระบวนการช้าลง การวางกระบวนการเหล่านี้บนชิปตัวเดียวที่มีหลายคอร์ไม่เพียง แต่หมายความว่ามีระยะทางในการเดินทางน้อยลง แต่ยังหมายความว่าคอร์ที่แตกต่างกันสามารถแชร์ทรัพยากรเพื่อทำงานหนักเป็นพิเศษ ตัวอย่างเช่นชิป Pentium II และ Pentium III ของ Intel ได้รับการติดตั้งในรุ่นที่มีโปรเซสเซอร์สองตัวบนเมนบอร์ดตัวเดียว

หลังจากนั้นไม่นานโปรเซสเซอร์จำเป็นต้องมีประสิทธิภาพมากขึ้นดังนั้นผู้ผลิตคอมพิวเตอร์จึงเกิดแนวคิดไฮเปอร์เธรด แนวคิดดังกล่าวมาจาก Intel และเป็นครั้งแรกที่เกิดขึ้นในปี 2545 กับโปรเซสเซอร์เซิร์ฟเวอร์ Xeon ของ บริษัท และต่อมาใช้โปรเซสเซอร์ Pentium 4 สำหรับเดสก์ท็อป Hyper-threading ยังคงใช้อยู่ในปัจจุบันในโปรเซสเซอร์และยังเป็นความแตกต่างที่สำคัญระหว่างชิป i5 ของ Intel และชิป i7 โดยทั่วไปใช้ประโยชน์จากความจริงที่ว่ามีทรัพยากรที่ไม่ได้ใช้บ่อยในโปรเซสเซอร์โดยเฉพาะเมื่องานไม่ต้องการพลังการประมวลผลมากซึ่งสามารถนำไปใช้สำหรับโปรแกรมอื่น ๆ โปรเซสเซอร์ที่ใช้ไฮเปอร์เธรดนำเสนอตัวเองไปยังระบบปฏิบัติการราวกับว่ามีสองคอร์ แน่นอนมันไม่ได้มีสองคอร์ แต่สำหรับสองโปรแกรมที่ใช้ครึ่งหนึ่งของกำลังการประมวลผลที่มีอยู่หรือน้อยกว่านั้นอาจมีสองคอร์เนื่องจากความจริงที่ว่าพวกเขาสามารถใช้ประโยชน์จากพลังงานทั้งหมดที่ โปรเซสเซอร์มีให้ อย่างไรก็ตาม Hyper-threading จะช้ากว่าโปรเซสเซอร์ที่มีสองคอร์เล็กน้อยเมื่อไม่มีพลังการประมวลผลเพียงพอที่จะแชร์ระหว่างสองโปรแกรมโดยใช้แกนประมวลผล

คุณสามารถค้นหาวิดีโอที่ลึกซึ้งซึ่งให้คำอธิบายสั้น ๆ และละเอียดยิ่งขึ้นเกี่ยวกับการทำไฮเปอร์เธรดที่นี่

หลายหน่วยประมวลผล

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

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

เนื่องจากความจริงที่ว่าความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์นั้นเชื่อมโยงกับจำนวนทรานซิสเตอร์ที่พอดีกับชิปเมื่อเทคโนโลยีการหดตัวของทรานซิสเตอร์เริ่มช้าลงการพัฒนาความเร็วโปรเซสเซอร์เพิ่มขึ้นก็เริ่มช้าลงเช่นกัน แม้ว่านี่ไม่ใช่ครั้งแรกที่ บริษัท ต่างๆรู้เกี่ยวกับโปรเซสเซอร์แบบมัลติคอร์ แต่เมื่อพวกเขาเริ่มทำการทดลองกับโปรเซสเซอร์แบบมัลติคอร์เพื่อวัตถุประสงค์ทางการค้า ในขณะที่ตัวประมวลผลแบบมัลติคอร์ได้รับการพัฒนาเป็นครั้งแรกในช่วงกลางทศวรรษ 1980 พวกเขาได้รับการออกแบบมาสำหรับองค์กรขนาดใหญ่และไม่ได้กลับมาเยี่ยมชมอีกต่อไปจนกระทั่งเทคโนโลยีแบบคอร์เริ่มช้าลง โปรเซสเซอร์แบบมัลติคอร์ตัวแรกได้รับการพัฒนาโดย Rockwell International และเป็นรุ่นของชิป 6501 ที่มีโปรเซสเซอร์ 6502 สองตัวในหนึ่งชิป (รายละเอียดเพิ่มเติมมีอยู่ที่นี่ในรายการ Wikipedia นี้)

โปรเซสเซอร์แบบมัลติคอร์ทำอะไรได้บ้าง?

มันตรงไปตรงมาจริงๆ การมีหลายแกนทำให้สามารถทำได้หลายอย่างพร้อมกัน ตัวอย่างเช่นหากคุณกำลังทำงานกับอีเมลเปิดอินเทอร์เน็ตเบราว์เซอร์กำลังทำงานบนสเปรดชีต excel และกำลังฟังเพลงใน iTunes โปรเซสเซอร์แบบ quad-core สามารถทำงานกับสิ่งเหล่านี้ทั้งหมดในครั้งเดียว หรือหากผู้ใช้มีงานที่ต้องทำให้เสร็จในทันทีผู้ใช้สามารถแยกงานออกเป็นงานที่เล็กลงง่ายขึ้น

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

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

ระบบปฏิบัติการเองทำสิ่งที่คล้ายกันกับกระบวนการของตัวเอง - มันไม่ได้ จำกัด อยู่แค่แอพพลิเคชั่น กระบวนการของระบบปฏิบัติการเป็นสิ่งที่ระบบปฏิบัติการมักทำในพื้นหลังโดยที่ผู้ใช้ไม่จำเป็นต้องรู้ เนื่องจากความจริงที่ว่ากระบวนการเหล่านี้มักจะเกิดขึ้นการมีการทำไฮเปอร์เธรดและ / หรือหลายคอร์อาจเป็นประโยชน์อย่างมากเพราะมันทำให้หน่วยประมวลผลอิสระสามารถทำงานได้ในสิ่งอื่น ๆ เช่นสิ่งที่เกิดขึ้นในแอพ

โปรเซสเซอร์แบบมัลติคอร์ทำงานอย่างไร

ก่อนอื่นมาเธอร์บอร์ดและระบบปฏิบัติการจำเป็นต้องรู้จักโปรเซสเซอร์และมีหลายคอร์ คอมพิวเตอร์รุ่นเก่ามีเพียงแกนเดียวดังนั้นระบบปฏิบัติการรุ่นเก่าอาจทำงานได้ไม่ดีนักหากผู้ใช้พยายามติดตั้งลงในคอมพิวเตอร์รุ่นใหม่ที่มีหลายคอร์ ตัวอย่างเช่น Windows 95 ไม่รองรับไฮเปอร์เธรดหรือหลายคอร์ ระบบปฏิบัติการล่าสุดทั้งหมดสนับสนุนโปรเซสเซอร์แบบมัลติคอร์รวมถึงไลค์ของ Windows 7, 8, 10 ที่เพิ่งเปิดตัวใหม่และ OS X 10.10 ของ Apple

กล่าวโดยทั่วไประบบปฏิบัติการจะบอกเมนบอร์ดว่าต้องทำกระบวนการใด เมนบอร์ดจะบอกโปรเซสเซอร์ ในโปรเซสเซอร์แบบมัลติคอร์ระบบปฏิบัติการสามารถบอกให้โปรเซสเซอร์ดำเนินการหลายอย่างพร้อมกันได้ โดยพื้นฐานแล้วผ่านทิศทางของระบบปฏิบัติการข้อมูลจะถูกย้ายจากฮาร์ดไดรฟ์หรือ RAM ผ่านเมนบอร์ดไปยังโปรเซสเซอร์

หน่วยประมวลผล Multi-Core

ภายในหน่วยประมวลผลมีหน่วยความจำแคชหลายระดับที่เก็บข้อมูลสำหรับการดำเนินการหรือการดำเนินงานต่อไปของโปรเซสเซอร์ หน่วยความจำแคชระดับเหล่านี้ทำให้มั่นใจได้ว่าโปรเซสเซอร์ไม่ต้องมองไกลเพื่อค้นหากระบวนการถัดไปประหยัดเวลาได้มาก ระดับแรกของหน่วยความจำแคชคือแคช L1 หากหน่วยประมวลผลไม่พบข้อมูลที่ต้องการสำหรับกระบวนการถัดไปในแคช L1 จะมองไปที่แคช L2 แคช L2 มีขนาดใหญ่กว่าในหน่วยความจำ แต่ช้ากว่าแคช L1

หน่วยประมวลผลหลักเดียว

หากโปรเซสเซอร์ไม่พบสิ่งที่ต้องการในแคช L2 จะยังคงดำเนินต่อไปจนถึงบรรทัด L3 และหากโปรเซสเซอร์มี L4 หลังจากนั้นมันจะดูในหน่วยความจำหลักหรือ RAM ของคอมพิวเตอร์

นอกจากนี้ยังมีวิธีที่แตกต่างกันซึ่งโปรเซสเซอร์ที่แตกต่างกันจัดการแคชที่แตกต่าง ตัวอย่างเช่นบางข้อมูลที่ซ้ำกันในแคช L1 ในแคช L2 ซึ่งโดยทั่วไปเป็นวิธีที่ทำให้มั่นใจได้ว่าโปรเซสเซอร์สามารถค้นหาสิ่งที่ต้องการได้ แน่นอนว่าใช้หน่วยความจำมากขึ้นในแคช L2

ระดับของแคชที่ต่างกันยังมีอยู่ในโปรเซสเซอร์แบบมัลติคอร์ โดยปกติแต่ละคอร์จะมีแคช L1 ของตัวเอง แต่พวกเขาจะแชร์แคช L2 สิ่งนี้แตกต่างจากหากมีโปรเซสเซอร์หลายตัวเนื่องจากแต่ละโปรเซสเซอร์มี L1, L2 และแคชระดับอื่น ๆ ของตัวเอง ด้วยโปรเซสเซอร์แบบ Single-Core หลายตัวการแบ่งปันแคชจึงเป็นไปไม่ได้ ข้อดีอย่างหนึ่งของการมีแคชที่ใช้ร่วมกันคือความสามารถในการใช้แคชให้เต็มที่เนื่องจากข้อเท็จจริงที่ว่าหากคอร์หนึ่งไม่ได้ใช้แคช

ในตัวประมวลผลแบบมัลติคอร์เมื่อค้นหาข้อมูลคอร์สามารถดูผ่านแคช L1 ที่เป็นเอกลักษณ์ของตัวเองและจากนั้นจะแตกออกเป็นแคช L2 ที่ใช้ร่วมกัน RAM และฮาร์ดไดรฟ์ในที่สุด

มีโอกาสที่เราจะยังคงเห็นการพัฒนาของแกนเพิ่มเติม ความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์จะยังคงดีขึ้นอย่างต่อเนื่องแม้ว่าจะช้ากว่า แต่ก่อน แม้ว่าตอนนี้ไม่ใช่เรื่องแปลกที่จะเห็นโปรเซสเซอร์ octa-core ในสิ่งต่าง ๆ เช่นสมาร์ทโฟนในไม่ช้าเราก็จะเห็นโปรเซสเซอร์ที่มีหลายคอร์

คุณคิดว่าเทคโนโลยีการประมวลผลแบบมัลติคอร์จะเป็นอย่างไรต่อไป แจ้งให้เราทราบในความคิดเห็นด้านล่างหรือโดยการเริ่มหัวข้อใหม่ในฟอรัมชุมชนของเรา

ทุกอย่างเกี่ยวกับโปรเซสเซอร์แบบมัลติคอร์: พวกมันคืออะไร, ทำงานอย่างไรและมาจากไหน