QoS (คุณภาพของบริการ) บน CPU: ส่งผลต่อประสิทธิภาพอย่างไร

QoS (คุณภาพของบริการ) บน CPU

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

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

เราเข้าใจอะไรในฐานะคุณภาพของบริการหรือ QoS ใน CPU?

การสลับการตอกบัตรของตัวประมวลผล Velocidad

คำว่าคุณภาพของบริการในซีพียูมาจากโลกของโทรคมนาคม ซึ่งหมายถึงประสิทธิภาพทั่วไปของเครือข่ายโทรศัพท์ และด้วยเหตุนี้จึงสามารถให้บริการที่เพียงพอแก่เทอร์มินัลต่างๆ ที่เข้าร่วมในเครือข่ายดังกล่าว คำจำกัดความนี้ได้รับการอนุมานให้เข้ากับโลกของ CPU และ APU แบบมัลติคอร์ ซึ่งหมายถึงการสื่อสารขององค์ประกอบต่างๆ ของโปรเซสเซอร์ระหว่างกันและกับ แรม หน่วยความจำผ่านศูนย์กลางส่วนกลางทั่วไป ซึ่งเรารู้จักกันในนาม Northbridge และด้วยเหตุนี้ QoS ของ CPU แบบมัลติคอร์จึงขึ้นอยู่กับประสิทธิภาพของฮับกลาง ไม่ว่าจะเป็นสวิตช์แบบ Crossbar แบบคลาสสิกของสวิตช์ หรือ NIC หรือ SmartNIC ของ NoC

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

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

กฎของพาร์กินสันและ QoS ของ CPU

เคอร์วา เลย์ พาร์กินสัน

เนื่องจากโปรเซสเซอร์แบบมัลติคอร์สามารถนำเสนอคุณภาพของบริการได้อย่างชัดเจน เราต้องแน่ใจว่าแบนด์วิดท์และเวลาแฝงของแต่ละองค์ประกอบนั้นเพียงพอเพื่อให้ได้รับประสิทธิภาพสูงสุด ในปัจจุบัน คอร์ต่างๆ อาศัย Northbridge แบบบูรณาการเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดในเรื่องนี้ เราจะวัดประสิทธิภาพนี้ได้อย่างไร ตรงกันข้ามกับกฎหมายว่าด้วยประสิทธิภาพในการคำนวณ เช่น กฎของแอมดาห์ลในการคำนวณ กฎของพาร์กินสันถูกนำมาใช้ ซึ่งมีข้อความทั่วไปดังนี้:

งานที่ต้องทำขยายเวลาให้เสร็จ

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

อย่างไรก็ตาม เมื่อออกแบบโปรเซสเซอร์ใหม่ องค์ประกอบบางอย่างที่ให้คุณภาพของการบริการขึ้นอยู่กับฮาร์ดแวร์

คุณภาพของการบริการของ CPU ไม่สามารถมั่นใจได้

ประสิทธิภาพ CPU QoS

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

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

ซอฟต์แวร์ฮาร์ดแวร์ QoS

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

เราไม่สามารถลืมคุณภาพของโค้ดที่ใช้ในการพัฒนาโปรแกรมได้ เราสามารถเขียนโปรแกรมต่างๆ ได้หลายล้านโปรแกรมเพื่อทำงานเฉพาะ แต่ไม่ใช่ทุกโปรแกรมที่ใช้อัลกอริธึมและโครงสร้างข้อมูลที่มีประสิทธิภาพเท่าเทียมกัน และไลบรารีของบุคคลที่สามและ API ภายนอกที่โปรแกรมเหล่านี้ใช้อยู่จะไม่ดีเช่นกัน ทั้งหมดนี้ทำให้คุณภาพการบริการใน CPU ในปัจจุบันไม่สามารถทำได้และเป็นยูโทเปียจริงๆ

มี QoS CPU ในอุดมคติหรือไม่?

ซีพียู? Interrogante

ประการแรก เราต้องจำไว้ว่าคุณภาพการบริการในอุดมคตินั้นไม่มีอยู่จริง เนื่องจากเป็นไปไม่ได้ที่จะบรรลุค่าสูงสุดตามทฤษฎีที่จำเป็น เพื่อให้มีประสิทธิภาพการสื่อสาร 100% ระหว่างฝ่ายต่างๆ CPU ที่มีคุณภาพการบริการที่สมบูรณ์แบบจะต้องมีอะไรบ้าง? องค์ประกอบต่อไปนี้:

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

ดังนั้น QoS CPU ในอุดมคติจึงไม่มีอยู่จริง แต่ในขณะเดียวกัน ก็เป็นความท้าทายสำหรับวิศวกรในการได้รับประสิทธิภาพที่ดีที่สุดเท่าที่จะเป็นไปได้