ผู้สอน: ในบทเรียนนี้
เราจะพูดถึงคุณสมบัติของ CPU
ซึ่งรวมถึงสิ่งต่าง ๆ เช่น มัลติเธรด,
การประมวลผลหลายส่วนแบบสมมาตร,
คอร์เดี่ยวและมัลติคอร์ และการสนับสนุนเวอร์ชวลไลเซชัน
ตอนนี้ สิ่งแรกที่เราจะพูดถึงคือ
มัลติเธรด หรือที่เรียกว่า SMT หรือมัลติเธรดพร้อมกันหรือไฮเปอร์เธรด ขึ้นอยู่กับ CPU ที่คุณซื้อ
Hyper-threading เป็นคำที่
Intel ใช้สำหรับกระบวนการนี้
และคำทั่วไปคือ SMT หรือมัลติเธรดพร้อมกัน
ตอนนี้ เมื่อคุณจัดการกับเธรด
นี่เป็นแนวคิดของชุดคำสั่งเดียวที่ส่งโดยแอปพลิเคชันซอฟต์แวร์ไปยังโปรเซสเซอร์
ปัจจุบัน แอปพลิเคชันส่วนใหญ่ได้รับการออกแบบให้เรียกใช้กระบวนการเดียวในเธรดเดียว
และนั่นหมายความว่าซอฟต์แวร์นั้นทำทุกอย่างในลักษณะอนุกรม
ดังนั้น ถ้าฉันสั่งให้คุณทำ
5 อย่างที่แตกต่างกัน คุณจะทำสิ่งเหล่านั้นตามลำดับ
หนึ่ง สอง สาม สี่ และห้า
และถ้าแต่ละอันใช้เวลา
10 นาที ก็จะรวมเป็น 50 นาที
แต่ถ้าฉันอนุญาตให้คุณทำมัลติเธรดและทำสิ่งเหล่านั้นโดยไม่เป็นระเบียบหรือทำพร้อมกันได้
คุณก็สามารถทำได้มากกว่าหนึ่งสิ่งพร้อมกันโดยส่งสิ่งเหล่านี้ไปยังเธรดต่างๆ หรือสตรีมต่างๆ
ตัวอย่างเช่น สมมติว่าฉันบอกคุณว่าฉันต้องการให้คุณเขียนบางอย่างด้วยมือขวา
และในขณะเดียวกัน ฉันอยากให้คุณแตะโต๊ะด้วยมือซ้าย
คุณสามารถทำทั้งสองอย่างพร้อมกันได้
เพราะคุณมีสองเธรดหรือสองมือในการดำเนินการเหล่านั้น
นี่คือแนวคิดของมัลติเธรด
ดังนั้น สิ่งที่ Intel และผู้ผลิตรายอื่นทำคือพัฒนาวิธีการอนุญาตให้ซอฟต์แวร์พูดคุยกับโปรเซสเซอร์ของตนและเรียกใช้เธรดแบบขนานหลายเธรดพร้อมกันภายในโปรเซสเซอร์ตัวเดียว
สิ่งนี้ทำให้สามารถรันเธรดเหล่านี้ผ่านโปรเซสเซอร์นั้นและลดระยะเวลา
เวลาที่ CPU นั่งรอการดำเนินการถัดไป
โดยการทำเช่นนี้ เราจะสามารถพยายามเพิ่มความสามารถของเราและรับสิ่งต่างๆ
ได้มากขึ้นผ่านโปรเซสเซอร์
และพยายามทำสิ่งต่างๆ ให้เสร็จมากขึ้นในช่วงเวลาที่เท่ากัน
ตอนนี้มันเยี่ยมมาก แต่มันใช้งานได้ถึงจุดหนึ่งเท่านั้น
และซอฟต์แวร์จะต้องสามารถใช้มันได้และเข้าใจว่าจะสามารถบอกระบบได้ว่าคุณต้องการใช้หลายเธรดในเวลาเดียวกัน
นี่เป็นข้อจำกัดใหญ่เมื่อคุณต้องจัดการกับไฮเปอร์เธรด
อีกวิธีหนึ่งในการข้ามขั้นตอนนี้คือสิ่งที่เรียกว่าการทำการประมวลผลหลายส่วนแบบสมมาตรหรือ
SMP
ตอนนี้ SMP เป็นวิธีดั้งเดิมที่เวิร์กสเตชันและเซิร์ฟเวอร์ทำสิ่งนี้
เพราะจริงๆ แล้วพวกเขามีโปรเซสเซอร์หลายตัว
ในการทำเช่นนี้ คุณต้องมีเมนบอร์ดที่มีซ็อกเก็ตโปรเซสเซอร์สองซ็อกเก็ตหรือซ็อกเก็ตโปรเซสเซอร์สี่ซ็อกเก็ต
จากนั้นคุณจะต้องติดตั้งโปรเซสเซอร์สองหรือสี่ตัวในเมนบอร์ดนั้น
เมื่อคุณดำเนินการนี้ ตัวประมวลผลเหล่านั้นทั้งหมดต้องเป็นประเภทและความเร็วเดียวกันเพื่อให้สามารถทำงานร่วมกันได้
และระบบปฏิบัติการพื้นฐานของคุณต้องเข้าใจวิธีใช้โปรเซสเซอร์มากกว่าหนึ่งตัว
ตามค่าเริ่มต้น ระบบปฏิบัติการส่วนใหญ่ไม่ทำเช่นนั้น
ดังนั้น คุณต้องมีระบบปฏิบัติการที่ใช้เซิร์ฟเวอร์
เช่น Windows Server 2019 เพื่อให้สามารถรองรับโปรเซสเซอร์หลายตัวได้
ด้วยเหตุนี้ SMP หรือการประมวลผลหลายส่วนแบบสมมาตรจึงไม่ค่อยมีประโยชน์ในเดสก์ท็อปและแล็ปท็อป
เดสก์ท็อปและแล็ปท็อปส่วนใหญ่ต้องพึ่งพาไฮเปอร์เธรดจากโปรเซสเซอร์
Intel หรือมัลติเธรดพร้อมกันหรือ SMT
หากคุณใช้โปรเซสเซอร์ AMD
ดังนั้น ไฮเปอร์เธรดดิ้งและ SMT จึงทำงานได้ดีเป็นเวลานาน
แต่ในที่สุดเราก็ยังถึงขีดจำกัดว่าเราต้องการประมวลผลข้อมูลมากน้อยเพียงใด
และมีเพียงแค่โปรเซสเซอร์ตัวเดียวเท่านั้นที่จะดำเนินการดังกล่าว
ขณะนี้ เนื่องจากระบบปฏิบัติการส่วนใหญ่ไม่ทราบวิธีจัดการกับซ็อกเก็ตหลายตัวหรือโปรเซสเซอร์หลายตัวบนเมนบอร์ดที่กำหนด
ผู้ผลิตจึงเริ่มสร้างสิ่งที่เรียกว่าแพ็คเกจมัลติคอร์
ตอนนี้ เมื่อฉันพูดถึงแพ็คเกจ
ฉันกำลังพูดถึง CPU ซึ่งเป็นชิปที่มีอยู่จริง
ตอนนี้ แทนที่จะมีแพ็คเกจจริงสองแพ็คเกจหรือชิปจริงสองตัวบนซ็อกเก็ตสองซ็อกเก็ตที่แตกต่างกันบนเมนบอร์ดของคุณ
สิ่งที่ผู้ผลิตเหล่านี้ตัดสินใจทำคือสร้างแพ็คเกจเดียวที่ทำงานเป็น
CPU ตัวเดียว
แต่ภายในแพ็คเกจนั้นมีซีพียูหลายตัวหรือโปรเซสเซอร์หลายตัว
ซึ่งหมายความว่าสำหรับเมนบอร์ดแล้ว
ดูเหมือน CPU จริงเพียงตัวเดียวเพราะเป็นอย่างนั้น แต่ภายในมีแกนประมวลผลหลายแกนหรือแกนกลางของหน่วยประมวลผลกลางอยู่ข้างใน
ตอนนี้ สิ่งนี้ทำให้ระบบปฏิบัติการใดๆ
สามารถพูดคุยกับโปรเซสเซอร์เดี่ยวหรือแพ็คเกจโปรเซสเซอร์นั้น
จากนั้นแพ็คเกจโปรเซสเซอร์เองก็สามารถแบ่งคำสั่งเหล่านั้นออกเป็นหลายคอร์ภายในภายใน
CPU นั้น
คิดเกี่ยวกับมันด้วยวิธีนี้
คุณมีบ้านที่มีสี่ห้องนอน
ถ้ามีคนมาที่ประตูหน้าบ้านแล้วพูดว่า ฉันต้องการที่นอนสำหรับคืนนี้
พวกเขาไม่สนใจหรอกว่าคนสี่คนนี้จะนอนห้องไหน
ตราบใดที่พวกเขามีที่นอนสำหรับคืนนี้
ดังนั้น คุณเข้าประตูหน้า พาพวกเขาเข้าไปในห้องเดี่ยว
และแสดงให้พวกเขาเห็นเพียงห้องเดียวเท่านั้น
นั่นคือสิ่งที่โปรเซสเซอร์แบบมัลติคอร์นี้กำลังทำอยู่
เมื่อมีคนเข้ามาใหม่ มันจะพาพวกเขาไปที่ห้องเดี่ยวและปล่อยให้พวกเขานอนที่นั่นหนึ่งคืน
หรือทำการประมวลผล จากนั้นมันก็ส่งพวกเขาออกไปอีกครั้ง
ทั้งหมดนี้จะถูกจัดการโดยบุคคลที่ประตูหน้า
ซึ่งในกรณีนี้ก็คือแพ็คเกจแบบมัลติคอร์นั่นเอง
จากนั้นจะใส่ลงในช่องแต่ละช่องหรือตัวประมวลผลย่อยแต่ละตัวที่จำเป็นในการทำงานนั้น
นั่นคือแนวคิดของแพ็คเกจมัลติคอร์
ตอนนี้ พวกเราส่วนใหญ่เคยได้ยินเรื่องนี้มาก่อน
เพราะในระบบของคุณ คุณอาจมีโปรเซสเซอร์แบบมัลติคอร์
คุณอาจมีโปรเซสเซอร์ดูอัลคอร์ ซึ่งหมายความว่าคุณมีซีพียูสองตัวในชิปตัวเดียว
หรือคุณมีโปรเซสเซอร์สี่คอร์ ซึ่งหมายความว่าคุณมีโปรเซสเซอร์สี่ตัวในชิปตัวเดียว
หรือคุณมีโปรเซสเซอร์ hexa ซึ่งหมายความว่าคุณมีหกคอร์ภายในชิปตัวเดียว
หรือคุณมีโปรเซสเซอร์ octa ซึ่งหมายความว่าคุณมีแปดคอร์ในชิปตัวเดียว
ตัวอย่างเช่น บน CPU ของฉัน ฉันมีโปรเซสเซอร์ 8 คอร์ในคอมพิวเตอร์เดสก์ท็อป
และมันเป็นชิปจริงเพียงตัวเดียว แต่มีโปรเซสเซอร์ย่อย
8 ตัวอยู่ภายใน
สิ่งนี้เรียกว่าแปดคอร์หรือโปรเซสเซอร์มัลติคอร์
ตอนนี้ นอกเหนือจากการมีมัลติคอร์และไฮเปอร์เธรดดิ้งแล้ว
คุณยังสามารถรวมทั้งสองเข้าด้วยกันเพื่อให้แต่ละโปรเซสเซอร์เหล่านั้นอยู่ในแพ็คเกจได้ ตัวอย่างเช่น
ในระบบของฉัน ฉันมี octa-core ซึ่งมีโปรเซสเซอร์แปดตัว
ตอนนี้ ภายในหนึ่งแพ็คเกจมีโปรเซสเซอร์แปดตัว
และโปรเซสเซอร์แปดตัวแต่ละตัวสามารถรองรับไฮเปอร์เธรดได้
ซึ่งหมายความว่าฉันมี 16 เธรดกับแปดซีพียู ทำให้ฉันมีความสามารถในการประมวลผลมากมายบนเครื่องนั้น
เอาล่ะ ณ จุดนี้ เราได้พูดถึงสามในสี่สิ่งที่เราต้องการจะกล่าวถึงในบทเรียนนี้
เราได้พูดคุยเกี่ยวกับไฮเปอร์เธรดและมัลติเธรดพร้อมกันหรือที่เรียกว่า
SMT
เราได้พูดคุยเกี่ยวกับการประมวลผลหลายตัวแบบสมมาตรหรือการมี
CPU หลายตัวในซ็อกเก็ต และจากนั้นเราได้พูดถึงแนวคิดของโปรเซสเซอร์แบบมัลติคอร์ ซึ่งคุณมี
CPU ตัวเดียวซึ่งมีโปรเซสเซอร์หลายตัวอยู่ภายใน ไม่ว่าจะเป็นสอง
สี่ หก หรือแปดในนั้น
ตอนนี้สิ่งสุดท้ายที่เราต้องพูดถึงคือการจำลองเสมือน
ในตอนนี้ การจำลองเสมือนเป็นอีกคุณสมบัติหนึ่งของ CPU แต่มันไม่เกี่ยวข้องกับสามอย่างที่เราเพิ่งพูดถึงไป
ทั้งสามข้อที่เราเพิ่งพูดถึงคือวิธีที่คุณได้รับประสิทธิภาพมากขึ้นจากชิปตัวเดียวหรือหลายชิป
แต่เมื่อเราพูดถึงเวอร์ชวลไลเซชัน
สิ่งที่เรากำลังพูดถึงคือการจำลองว่ามีฮาร์ดแวร์ที่ไม่มีอยู่จริง
ขณะนี้ สามารถทำได้จริงผ่านเทคโนโลยีเวอร์ชวลไลเซชันของ
Intel หรือที่เรียกว่า VT หรือเวอร์ชวลไลเซชันของ
AMD ซึ่งรู้จักกันในชื่อ AMD-V
ตอนนี้ ทั้งสองอย่างนี้มีส่วนขยายโปรเซสเซอร์เพื่อรองรับการจำลองเสมือน
ซึ่งเรียกว่าการจำลองเสมือนโดยใช้ฮาร์ดแวร์ช่วย
และนี่อาจเป็นประเด็นที่ว่า
virtualization คืออะไร?
การจำลองเสมือนคือความสามารถในการให้คอมพิวเตอร์แสร้งทำเป็นว่ากำลังเรียกใช้คอมพิวเตอร์เครื่องอื่นหลายเครื่องภายในตัวมันเอง
ทีนี้ ดูเหมือนว่าฉันอาจจะมีแล็ปท็อปเครื่องเดียวอย่าง
MacBook ของฉัน
และใน MacBook เครื่องนั้น ฉันมีระบบปฏิบัติการเดียวคือ macOS
ตอนนี้ ถ้าฉันต้องการใช้ Windows หรือ Linux
ฉันจะต้องฟอร์แมตเครื่องใหม่และติดตั้งซอฟต์แวร์นั้น
นั่นจะไม่สะดวกจริงๆ
แต่ด้วยการจำลองเสมือน ฉันไม่ต้องทำเช่นนั้น
แต่ฉันสามารถเรียกใช้โปรแกรมเช่น
VMware หรือ Virtualbox หรือ Parallels และภายในซอฟต์แวร์นั้น
ฉันสามารถสร้างคอมพิวเตอร์เสมือนได้
ฉันสามารถบอกได้ว่าฉันต้องการให้มีหนึ่งโปรเซสเซอร์หรือสองโปรเซสเซอร์หรือสี่โปรเซสเซอร์
และฉันสามารถบอกได้ว่าฉันต้องการหน่วยความจำเท่าใดและต้องการพื้นที่เก็บข้อมูลเท่าใด
และจะสร้างคอมพิวเตอร์เสมือนนี้ซึ่งมีอยู่ในซอฟต์แวร์เท่านั้น
ตอนนี้ เมื่อฉันรันระบบปฏิบัติการใหม่
เช่น Windows ข้างใน ฉันอาจบอกว่านี่คือโปรเซสเซอร์สองคอร์
มี RAM สี่กิกะไบต์และฮาร์ดไดรฟ์ 50 กิกะไบต์
ทั้งหมดที่มีอยู่ในซอฟต์แวร์เท่านั้น
แต่เมื่อฉันติดตั้ง Windows ลงในเครื่องเสมือนนั้น
Windows จะคิดว่าเป็นคอมพิวเตอร์เต็มรูปแบบ
มันคิดว่ามีโปรเซสเซอร์สองตัวเต็ม หน่วยความจำสี่กิกะไบต์เต็ม
และฮาร์ดไดรฟ์เต็ม 50 กิกะไบต์
ดังนั้น สำหรับ Windows
แล้ว Windows คิดว่ามีฮาร์ดแวร์จริงทั้งหมด และนั่นคือสิ่งที่ระบบเสมือนจริงช่วยให้เราทำได้
ช่วยให้เราสามารถจำลองเสมือนคอมพิวเตอร์และให้ฮาร์ดแวร์เสมือนและสามารถเรียกใช้ระบบปฏิบัติการหลายระบบภายในโฮสต์จริงเดียว
ขณะนี้ นอกจาก VT และ AMD-V แล้ว ยังมีการรองรับฮาร์ดแวร์เวอร์ชวลไลเซชันระดับที่สองที่คุณสามารถมองหาได้ในโปรเซสเซอร์สมัยใหม่บางรุ่น
ในระบบ Intel สิ่งนี้เรียกว่า EPT หรือตารางหน้าขยาย
และเมื่อคุณจัดการกับโปรเซสเซอร์ AMD
พวกเขาเรียกสิ่งนี้ว่าการทำดัชนีการจำลองเสมือนอย่างรวดเร็วหรือ RVI
ทั้งสองอย่างนี้ถือเป็นการแปลแอดเดรสระดับสองหรือคุณลักษณะ
SLAT ของซอฟต์แวร์การจำลองเสมือนที่อยู่ภายใต้และสนับสนุนโดยโปรเซสเซอร์ฮาร์ดแวร์นั้น เพื่อให้สามารถจัดการหน่วยความจำเสมือนได้ดีขึ้น
และให้ประสิทธิภาพที่เพิ่มขึ้นเมื่อใช้หน่วยความจำภายในเครื่องเสมือน
เราจะพูดกันมากขึ้นเกี่ยวกับ virtualization
ในบทเรียนของตัวเอง แต่สำหรับตอนนี้
ฉันแค่อยากให้คุณเข้าใจว่า
CPU บางตัวมีความสามารถที่จะทำสิ่งนี้ได้ภายในชุดโปรเซสเซอร์ของพวกเขา และโปรเซสเซอร์ที่มีความสามารถดังกล่าว เช่น
เนื่องจากผู้ที่สนับสนุน VT โดย Intel หรือ AMD-V จาก AMD จะให้ประสิทธิภาพที่ดีกว่าเมื่อคุณทำเวอร์ชวลไลเซชันมากกว่าที่ไม่รองรับ
ดังนั้น หากคุณกำลังจะสร้างเครื่องและต้องการใช้สำหรับการจำลองเสมือน
เช่น เซิร์ฟเวอร์ที่จะเรียกใช้เซิร์ฟเวอร์เสมือนอื่นๆ จำนวนมาก
คุณต้องแน่ใจว่าโปรเซสเซอร์ที่คุณเลือกมี
VT หรือ AMD-V เพื่อให้สามารถสนับสนุนการจำลองเสมือนด้วยฮาร์ดแวร์ที่เร่งความเร็วได้โดยตรง
เพราะนั่นจะทำให้คุณได้รับประสบการณ์ที่ดีขึ้นมากและประสิทธิภาพที่ดีกว่าถ้าคุณต้องทำการจำลองเสมือนด้วยซอฟต์แวร์แทน