วันนี้เราทุกคนมีอุปกรณ์ที่อย่างน้อยก็มี SoC เป็นโปรเซสเซอร์หลัก ไม่ว่าจะเป็นสมาร์ทโฟน คอนโซลวิดีโอเกม หรือแม้แต่พีซี คุณรู้หรือไม่ว่าพวกเขาทั้งหมดมีโครงสร้างร่วมกันระหว่างพวกเขา? ในบทความนี้ เราจะแนะนำคุณเกี่ยวกับสถาปัตยกรรมที่ SoC มีเหมือนกัน
แม้ว่าจะใช้ในอุปกรณ์ที่แตกต่างกัน แต่สำหรับแอปพลิเคชันที่แตกต่างกัน แต่ก็ใช้งานไบนารีที่แตกต่างกันและมีจุดที่ทำให้แตกต่างกัน SoC ทั้งหมดมีสถาปัตยกรรมร่วมกันซึ่งส่งผลต่อประสิทธิภาพและลักษณะโดยรวม
SoC คืออะไร?
วันนี้โปรเซสเซอร์ทุกตัวเป็น SoC แต่เราเรียก SoC ที่รวบรวม a ซีพียู และ GPU ในพื้นที่เดียวกันเพื่อแยกความแตกต่างจาก SoC ที่ทำหน้าที่เป็นโปรเซสเซอร์กลางหรือชิปกราฟิกเท่านั้นที่ยังคงเรียกว่า CPU และ GPU ตามลำดับ
ปัจจุบัน SoC สามารถพบได้ในคอมพิวเตอร์ทุกประเภทและมีข้อได้เปรียบทางเศรษฐกิจจากการรวมส่วนประกอบต่างๆไว้ในชิปตัวเดียว เหตุผลก็คือกระบวนการนี้ไม่เพียงช่วยประหยัดการผลิตชิปหลายตัวโดยลดความซับซ้อนลงในชิปเดียว แต่ยังรวมถึงการทดสอบที่เกี่ยวข้องด้วย
SoCs จึงไม่มีอะไรมากไปกว่าผลิตภัณฑ์ของการผสานรวมส่วนประกอบอย่างต่อเนื่องซึ่งต้องขอบคุณกฎของมัวร์ซึ่งส่วนประกอบบนเมนบอร์ดลดลงทีละเล็กละน้อยเมื่อรวมเข้าด้วยกัน อย่างไรก็ตาม การผสานรวมดังกล่าวมีข้อแลกเปลี่ยนหลายประการที่ส่งผลต่อประสิทธิภาพและทำให้การออกแบบที่ใช้ SoC ทำงานน้อยลงโดยใช้ชิปแยก
สถาปัตยกรรมทั่วไปของ SoC
ไม่ว่าเรากำลังพูดถึง SoC ประเภทใด พวกเขาทั้งหมดมีชุดขององค์ประกอบที่เหมือนกันเกี่ยวกับองค์กรของพวกเขา เราหมายถึงอะไร? องค์กรหรือสถาปัตยกรรมคือวิธีที่ส่วนประกอบของโปรเซสเซอร์เชื่อมต่อถึงกันภายในชิปรวม
ใน SoCs องค์ประกอบทั้งหมดใช้การเข้าถึงหน่วยความจำเดียวกันร่วมกันซึ่งหมายความว่าใน SoC ทั้งหมดการเข้าถึงหน่วยความจำทำได้ผ่านองค์ประกอบเดียว ซึ่งอยู่ในสถาปัตยกรรมทั้งหมด Northbridge หรือ North Bridge ซึ่งสื่อสารส่วนประกอบทั้งหมดของ CPU ระหว่างพวกเขาและกับ แรม หน่วยความจำ
Northbridge ไม่ได้รันโปรแกรมใดๆ เลย แต่จะจัดระเบียบการส่งและรับข้อมูล ดังนั้น SoC ภายในจะประมวลผลข้อมูลจำนวนมากอย่างต่อเนื่อง และเป็นส่วนที่สำคัญที่สุดในการออกแบบ SoC.
มีตำนานในหมู่ผู้ใช้ว่าการสร้าง SoC เป็นการเชื่อมต่อชิ้นส่วนต่างๆเข้าด้วยกัน ความเป็นจริงนั้นแตกต่างกันมากเนื่องจากการเชื่อมต่อโครงข่ายระหว่างส่วนประกอบจำเป็นต้องมีการสร้างโครงสร้างพื้นฐานการสื่อสารระหว่างกันที่แตกต่างกันไปสำหรับแต่ละ SoC
สถาปัตยกรรมใน SoC และการเข้าถึงหน่วยความจำ
ใน SoCs ส่วนประกอบทั้งหมดแชร์การเข้าถึงหน่วยความจำ RAM สิ่งนี้ก่อให้เกิดปัญหาการโต้แย้ง ปัญหาการกักกันคืออะไร? เมื่อคำขอหน่วยความจำสูงมากจนเพิ่มเวลาแฝงมากกว่าปกติและทำให้ประสิทธิภาพของแต่ละองค์ประกอบใน SoC แย่กว่าแต่ละองค์ประกอบที่มีหน่วยความจำประเภทของตัวเอง
วิธีที่ดีที่สุดในการบรรเทาปัญหานี้คือการใช้ช่องหน่วยความจำหลายช่องในเวลาเดียวกันโดยปกติพีซีจะต้องใช้ช่องหน่วยความจำสองช่องต่อ SoC, เวิร์กสเตชัน 4 เครื่องและเซิร์ฟเวอร์ 8 เครื่อง ช่องหน่วยความจำแต่ละช่องสามารถใช้โดยส่วนประกอบฮาร์ดแวร์หนึ่งตัวในเวลาเดียวกันได้ แต่เนื่องจากการเข้าถึงรายการจำนวนมากในเวลาเดียวกันจึงไม่เพียงพอ
นอกจากนี้ การจัดการอินเทอร์เฟซหน่วยความจำแบบหลายช่องสัญญาณยังทำให้ Northbridge ซับซ้อนยิ่งขึ้น และทำให้ขนาด SoC เพิ่มขึ้นด้วย นั่นคือเหตุผลที่ SoC สำหรับเซิร์ฟเวอร์มีขนาดที่ใหญ่ที่สุด ไม่เพียงเพราะจำนวนคอร์ที่มากขึ้นเท่านั้น แต่เนื่องจากพื้นที่ที่มากขึ้นสำหรับ Northbridge ช่วยให้พวกเขาเพิ่มความซับซ้อนมากขึ้นในหน้าอินเทอร์เฟซหน่วยความจำ
หน่วยความจำที่เชื่อมโยงกับหน่วยความจำที่ไม่เชื่อมโยงกัน
ใน SoC แม้ว่าการเข้าถึงหน่วยความจำจะรวมเป็นหนึ่งเดียวในระดับกายภาพ แต่ก็ไม่ได้อยู่ที่ระดับการกำหนดแอดเดรส เมื่อเราพูดถึงส่วนประกอบของ SoC นั้นมีความสอดคล้องกันในแง่ของหน่วยความจำเราหมายความว่าทั้งหมดชี้ไปที่ที่อยู่หน่วยความจำเดียวกันและเมื่อมีการเปลี่ยนแปลงในแต่ละส่วนของหน่วยความจำ RAM องค์ประกอบที่เหลือจะรับรู้
ความสอดคล้องเกิดขึ้นกับ CPU แต่มีส่วนประกอบภายใน SoC ที่สามารถทำงานได้โดยไม่ต้องมีกลไกที่สอดคล้องกัน สิ่งนี้บังคับให้เกี่ยวกับหน่วยความจำภายนอกมีส่วนที่กำหนดให้กับส่วนที่เชื่อมโยงกันและอื่น ๆ ไปยังส่วนที่ไม่เชื่อมโยงกัน เมื่อ Northbridge ของ SoC ได้รับคำขอหน่วยความจำใน SoC ที่มีทั้งสองประเภท สิ่งที่ทำคือแบ่งที่อยู่หน่วยความจำในลักษณะที่ส่วนประกอบที่สอดคล้องกับ CPU เข้าถึงส่วนหนึ่งของหน่วยความจำและส่วนอื่นๆ ของหน่วยความจำ
วิธีที่ดีที่สุดในการบรรลุการเชื่อมโยงกันของหน่วยความจำคือการเพิ่มระดับแคชเพิ่มเติมซึ่งไม่พบในแต่ละองค์ประกอบ แต่ใน Northbridge ซึ่งเป็นองค์ประกอบที่พวกเขาทั้งหมดสื่อสารกัน วิธีนี้พบได้บ่อยใน SoC ของสมาร์ทโฟนและเป็นวิธีที่ง่ายที่สุดในการนำไปใช้เพื่อให้ได้ความสม่ำเสมอของหน่วยความจำ
การจมน้ำด้วยความร้อนใน SoCs
ปัญหาอีกประการหนึ่งใน SoC คือข้อเท็จจริงที่ว่าส่วนประกอบอยู่ใกล้กันมาก ซึ่งหมายความว่าสามารถเข้าถึงอุณหภูมิได้น้อยกว่าหากติดตั้งเป็นส่วนประกอบแยกต่างหาก ซึ่งหมายความว่าความเร็วสัญญาณนาฬิกาที่แต่ละองค์ประกอบสามารถทำได้นั้นต่ำกว่าที่แยกจากกัน ซึ่งส่งผลต่อประสิทธิภาพการทำงาน
ดังนั้นใน SoC หากคุณต้องการให้ส่วนประกอบถึงความเร็วสูงสุดก็จะทำให้ส่วนประกอบอื่น ๆ เป็นเท็จ แม้แต่ใน SoCs ที่มี multicore CPU ก็เกิดขึ้นระหว่างคอร์ต่างๆ โดยที่การออกแบบบางอย่างอนุญาตให้คอร์เดียวทำงานเร็วกว่าส่วนที่เหลือ
นี่เป็นสาเหตุที่ SoC จำนวนมากมีความสามารถในการเชื่อมต่อและตัดการเชื่อมต่อส่วนต่างๆ ของ GPU เมื่อไม่ได้ใช้งาน แต่สิ่งนี้จะต้องนำมาใช้ในสถาปัตยกรรมของ SoC เองและด้วยเหตุนี้ในการออกแบบ