ทำไมแรมไม่ใส่ชิปซีพียู


55

CPU สมัยใหม่นั้นเร็วมากเมื่อเทียบกับทุกสิ่งภายนอกรวมถึงหน่วยความจำ (RAM)

เป็นที่เข้าใจได้เนื่องจากความถี่สัญญาณนาฬิกาของ CPU มาถึงจุดที่ใช้สัญญาณนาฬิกาหลายเห็บสำหรับสัญญาณไฟฟ้าเพียงแค่เรียกใช้จาก CPU ผ่านบัสไปยังชิป RAM และด้านหลัง

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

ปัญหาเหล่านี้สามารถหลีกเลี่ยงได้หากมี RAM จำนวนมากตั้งอยู่บนชิป CPU โดยตรง ไม่จำเป็นต้องมีการจัดการพิเศษ: อาจวางชิปขนาด 1-4 GB ขึ้นอยู่กับคลาสและอนุญาตให้ติดตั้งหน่วยความจำเพิ่มเติมแยกต่างหาก

ฉันแน่ใจว่ามีเหตุผลที่ดีที่ Intel, AMD และสิ่งที่คล้ายกันไม่ได้ทำเช่นนี้ อะไรคือเหตุผลเหล่านี้ เป็นเพราะไม่มีที่ว่างบนชิปหรือไม่


29
แคชคือ RAM ช่องว่างและหมุดบนแม่พิมพ์อยู่ที่ระดับพรีเมี่ยม
ทองแดง

2
@ copper.hat Cache คือ RAM แต่ขนาดแคชเป็น RAM เพียงเล็กน้อยที่ติดตั้งไว้ (โดยทั่วไปเรากำลังพูดถึงช่วง MBytes กับ Gbytes) ฉันสงสัยว่าทำไมไม่ใส่ 1 GB ลงในชิป CPU
Hedgehog Lesser

5
โดยทั่วไปแล้วจะได้รับการปรับให้เหมาะสมสำหรับการผสมผสานการเรียนการสอน / ข้อมูล นอกจากนี้ข้อมูลบางส่วนจากไป / กลับจาก RAM จะต้องผ่าน CPU
ทองแดง

1
การตายง่ายกว่าคือราคาถูกกว่า นอกจากนี้ยังหมายความว่าคุณสามารถใช้ขนาดกระบวนการที่แตกต่างกันและวิธีการกระบวนการ
Geek

@LesserHedgehog มีการ จำกัด อัตราการเข้าถึงแคชของคุณโดยทั่วไปดังนั้นการเพิ่มแคชเพิ่มเติมไม่ได้ช่วยอะไรเลย ซีพียูจำนวนมากยังมี DRAM ที่ฝังตัวอยู่ในขณะนี้โดยเฉพาะอย่างยิ่งในพื้นที่มือถือ / พื้นที่ฝังตัว (เช่น SoC ที่ใช้ ARM หลายตัว)
ปุย

คำตอบ:


79

Haswell ของ Intel (หรืออย่างน้อยผลิตภัณฑ์เหล่านั้นที่รวม Iris Pro 5200 GPU) และ POWER7 และ POWER8 ของ IBM ทั้งหมดรวม DRAM ในตัว "eDRAM"

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

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

ยิ่งไปกว่านั้นในเรื่องเวลาแฝงที่เกี่ยวข้องส่วนใหญ่ของความยากลำบากคือสัญญาณระยะทางกายภาพจะต้องเดินทาง แสงเดินทางได้เพียง 10 ซม. ในช่วงเวลาของ CPU 3 GHz แน่นอนว่าสัญญาณไม่เดินทางเป็นเส้นตรงข้ามความตายและไม่มีการแพร่กระจายในทุกสิ่งที่ใกล้เคียงกับความเร็วของแสงเนื่องจากความต้องการบัฟเฟอร์และพัดลมออกซึ่งทำให้เกิดความล่าช้าในการแพร่กระจาย ดังนั้นระยะทางสูงสุดที่หน่วยความจำจะอยู่ห่างจากซีพียูเพื่อรักษารอบเวลา 1 รอบของเวลาแฝงคือไม่กี่เซนติเมตรที่มากที่สุดซึ่งจะ จำกัด จำนวนหน่วยความจำที่สามารถรองรับได้ในพื้นที่ที่มีอยู่ โปรเซสเซอร์ Nehalem ของ Intel ลดความจุแคช L2 กับ Penryn บางส่วนเพื่อปรับปรุงเวลาแฝงซึ่งนำไปสู่ประสิทธิภาพที่สูงขึ้น * หากเราไม่สนใจเรื่องเวลาแฝงมากนัก

ควรสังเกตว่าอัตราการเข้าชมแคชนั้นสูงมากสำหรับปริมาณงานส่วนใหญ่: สูงกว่า 90% ในเกือบทุกกรณีและไม่ผิดปกติแม้จะสูงกว่า 99% ดังนั้นข้อได้เปรียบของการรวมความทรงจำที่ใหญ่กว่าจึง จำกัด ให้ลดผลกระทบของการพลาดเพียงไม่กี่เปอร์เซ็นต์ โปรเซสเซอร์ที่มีไว้สำหรับตลาดเซิร์ฟเวอร์องค์กร (เช่น POWER) มักจะมีแคชจำนวนมหาศาลและสามารถทำกำไรได้รวม eDRAM เพราะมีประโยชน์ในการรองรับชุดการทำงานขนาดใหญ่ของปริมาณงานขององค์กรจำนวนมาก แฮสมีเพื่อรองรับ GPU เนื่องจากพื้นผิวมีขนาดใหญ่และไม่สามารถรองรับแคชได้ กรณีเหล่านี้เป็นกรณีการใช้งานสำหรับ eDRAM วันนี้ไม่ใช่เดสก์ท็อปทั่วไปหรือปริมาณงาน HPC ซึ่งให้บริการเป็นอย่างดีจากลำดับชั้นแคชทั่วไป

ในการแก้ไขปัญหาที่เกิดขึ้นในความคิดเห็น:

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

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

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


1
อธิบายได้ดี ,, @Oleksandr R. ในระยะสั้นดูเหมือนว่ามีบางอย่างเช่น "อิมพิแดนซ์ไม่ตรงกัน" ระหว่าง CPU และ DRAM ซึ่งทำให้การเชื่อมต่อทั้งสองเป็นเรื่องยาก
Hedgehog Lesser

3
และแน่นอน SRAM ยังคงมีขนาดใหญ่มาก - แม้แต่แคชขนาดเล็ก (เมื่อเทียบกับ RAM) ใช้พื้นที่ครึ่งหนึ่งของพื้นที่ตายบนซีพียูสมัยใหม่ (ดียกเว้นซีพียูที่มี GPU ในตัว: D)
Luaan

2
ฉันสงสัยว่ามีวิธีการทำงานโดยไม่มีหน่วยความจำหลักหรือไม่ 128MB น่าจะเพียงพอสำหรับการใช้งานลีนุกซ์รุ่นบาง (หรือ Windows รุ่นเก่า).
253751

เรียกว่า 'GPU-on-die' ไม่ใช่ 'GPU-on-package'
AStopher

4
@cybermonkey: คำแนะนำมาจากแคช L1 ไม่ใช่หน่วยความจำหลัก มันจะน่ากลัวที่จะดึงพวกเขาจากหน่วยความจำหลัก - รอบ 60 ns หรือประมาณนั้นซึ่ง จำกัด CPU ของคุณถึง 16 Mhz สำหรับการออกแบบแบบ single-core
MSalters

17

สาเหตุหลักของหน่วยความจำที่มีขนาดใหญ่กว่า (GB ของ DRAM) ไม่รวมอยู่ในซีพียูตัวเองส่วนใหญ่เกี่ยวกับค่าใช้จ่าย พื้นที่ CPU ตายตัวมีราคาแพงกว่าอย่างมากเนื่องจากกระบวนการผลิตที่จำเป็นในการสร้างคุณสมบัติที่มีขนาดเล็กมาก มันอาจเป็นไปไม่ได้ที่จะผลิตทั้งสองชิ้นในแม่พิมพ์เดียวกันแม้ว่าฉันจะไม่รู้รายละเอียดมากพอที่จะให้คำตอบที่ชัดเจนได้ที่นี่

เรามาประเมินความเป็นไปได้ในการใส่ DRAM จำนวนมากลงใน CPU โดยตรง

22

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

เทคนิคที่สมจริงสำหรับการเคลื่อนย้ายหน่วยความจำให้ใกล้กับ CPU มากขึ้น (โปรดทราบว่าสิ่งเหล่านี้มีการแลกเปลี่ยนกับเทคนิคดั้งเดิมด้วย):

  1. วางไว้บน CPU สิ่งนี้ทำกับ Raspberry Pi แล้วและเป็นส่วนหนึ่งของมาตรฐานหน่วยความจำ Wide I / O หน่วยความจำยังคงเป็นแม่พิมพ์แยกต่างหากที่ผลิตในกระบวนการแยกต่างหาก อย่างไรก็ตามนี่เป็นปัญหาที่ความร้อนใด ๆ ที่กระจายอยู่ใน CPU ต้องผ่านหน่วยความจำก่อนที่จะถึงฮีตซิงค์ ซึ่งหมายความว่ามันจะไม่ทำงานสำหรับโปรเซสเซอร์พลังงานสูงและสาเหตุที่แอปพลิเคชันหลักสำหรับเทคโนโลยีนี้อยู่ในโปรเซสเซอร์มือถือ / แอปพลิเคชันแบบฝังอื่น ๆ ที่ CPU ของคุณไม่ได้ใช้งานหลายสิบหรือหลายร้อยวัตต์

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


5
ฉันคาดหวังว่าอัตราผลตอบแทนจะลดลงเมื่อคุณลองและยัดทรานซิสเตอร์มากกว่าพันล้านครั้งบนแม่พิมพ์ชิ้นใหญ่หนึ่งอัน - ความน่าจะเป็นของความผิดพลาดหรือข้อบกพร่องจะเกิดขึ้นกับอุปกรณ์เสริมทุกชิ้น หากคุณแบ่งระบบออกเป็นชิ้นเล็ก ๆ หลาย ๆ ชิ้นโอกาสของความผิดพลาดที่ปรากฏบนชิ้นใดชิ้นหนึ่งจะลดลงอย่างมากและค่าใช้จ่ายในการทิ้งชิ้นส่วนที่ผิดพลาดนั้นก็จะต่ำลงเช่นกัน ฉันคิดว่าการตายครั้งใหญ่ครั้งยิ่งใหญ่นั้นจะยากกว่าที่จะประดิษฐ์ขึ้นมาทั้งหมดนี้เท่าเทียมกัน
John U

4
2

@JohnU - การใส่โมดูลซ้ำจำนวนมากบนแม่พิมพ์มีข้อได้เปรียบเมื่อเกิดข้อบกพร่องคุณสามารถปิดการใช้งานโมดูลมันเกิดขึ้นและปล่อยแม่พิมพ์ตามมาตรฐานต้นทุนที่ต่ำกว่า (สิ่งนี้เกิดขึ้นมากกับ DRAM กลับไปที่ยุค 80 เมื่อเครื่องจักรจำนวนมากที่มีโมดูล 32KB นั้นใช้ชิป 64K โดยที่ส่วนที่ผิดพลาดถูกปิดใช้งาน) นี่อาจหมายถึงว่าผลผลิตจะเพิ่มขึ้นเมื่อคุณรวม DRAM กับโปรเซสเซอร์ ...
Jules

7

มีสาเหตุหลายประการที่การเพิ่ม DRAM จำนวนมากไปยัง CPU อาจเป็นไปไม่ได้

  1. กระบวนการและ fab อาจไม่ได้รับการตั้งค่าสำหรับ DRAM DRAM ต้องการองค์ประกอบวงจรพิเศษที่ใช้ขั้นตอนการผลิตพิเศษในการผลิต สิ่งนี้จะเพิ่มต้นทุนการผลิต

  2. หน่วยความจำทั้งหมดนั้นจะต้องมีการทดสอบ การทดสอบหน่วยความจำเพิ่มเวลาทดสอบของคุณ นั่นเป็นการเพิ่มต้นทุนอีกครั้ง

  3. การขยายตัวของแม่พิมพ์เป็นการเพิ่มต้นทุนเนื่องจากมันหมายถึงการตายที่น้อยลงต่อเวเฟอร์ นอกจากนี้ยังส่งผลกระทบต่อผลผลิตด้วย - ข้อบกพร่องหนึ่งข้อจะทำให้ส่วนของเวเฟอร์ของคุณใหญ่ขึ้น สำหรับตัวอย่างที่ดีที่สุดในเรื่องนี้ให้ดูที่ราคาของเซ็นเซอร์ภาพฟูลเฟรม (35 มม.) ในกล้อง

  4. การพัฒนากระบวนการที่สามารถจัดการกับหน่วยความจำชนิดพิเศษต้องใช้เวลาเงินและการทำงานมากขึ้นและมีความเสี่ยงสูงที่จะเกิดความล้มเหลว ปัญหาใด ๆ กับ DRAM จะชะลอการเปิดตัวของ CPU เดสก์ท็อปซีพียูกำลังก้าวล้ำในการผลิตเซมิคอนดักเตอร์ดังนั้นความล่าช้าอาจเป็นข้อเสียของการแข่งขัน (ดู: AMD กับ Intel ในช่วงหลายปีที่ผ่านมา)

  5. DRAM ต้องการการตรวจจับแบบอะนาล็อกสำหรับการอ่านรวมถึงการรีเฟรชเป็นระยะ ฉันไม่ใช่ผู้เชี่ยวชาญ DRAM แต่ฉันสงสัยว่ามันอาจจะเร็วเท่ากับซีพียูระดับสูงไม่ว่าจะเป็นแบบ off-chip หรือ on-chip ดังนั้นคุณอาจจะยังคงติดอยู่กับการแคช SRAM

  6. แม้ว่าคุณจะสามารถเอาชนะปัญหาข้างต้นและบีบอัด DRAM สองสามกิกะไบต์ลงบน CPU die ได้ แต่ก็ยังไม่เพียงพอที่จะใช้คอมพิวเตอร์ตั้งโต๊ะแล็ปท็อปหรือเซิร์ฟเวอร์ดังนั้นคุณจะต้องมีหน่วยความจำแบบชิปอยู่แล้ว .


1
แคชส่วนใหญ่ใช้งานกับ ECC และโปรเซสเซอร์ Intel ล่าสุดบางรุ่นได้รวมเอา chipkill และ block redundancy for cache สิ่งนี้ช่วยลดความต้องการในการทดสอบและปรับปรุงผลผลิตอย่างมีนัยสำคัญสำหรับแม่พิมพ์ที่มีขนาดใหญ่ขึ้น ในทางตรงกันข้ามกับเซ็นเซอร์ภาพไม่มีความเป็นไปได้ในการแก้ไขข้อผิดพลาดเนื่องจากข้อมูลไม่เป็นที่รู้จักมาก่อนและเรายังไม่สามารถตัดสินใจได้ว่าเมื่อบล็อกพิกเซลทำงานไม่ถูกต้องเพียงแค่เพิกเฉยและใช้อะไหล่สำรองใน สถานที่
Oleksandr R.

จริงมันง่ายกว่าที่จะได้รับผลตอบแทนที่สูงขึ้นด้วยความทรงจำ อย่างที่ฉันบอกไปมันเป็นตัวอย่างที่สุดยอด
Adam Haun

3

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

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

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

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

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


ปัญหาหลักของคำตอบนี้คือการออกแบบ SoC สำหรับสมาร์ทโฟนนั้นมี RAM จริง ๆ สิ่งเหล่านี้ไม่ได้มีราคาแพงกว่าอย่างมากในความเป็นจริงพวกเขากำลังถูกกว่า
MSalters

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

2

เกือบทั้งหมดข้างต้น + อีกหนึ่งปัญหาเพิ่มเติม: ความร้อน

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


2

นอกเหนือจากคำตอบที่ให้ไปแล้วมีอีกหนึ่งด้านเพิ่มเติม: ของเสียเนื่องจากข้อบกพร่องในการผลิต:

สมมติว่า 1/100 ของซีพียูทั้งหมดของรุ่นที่ผลิตนั้นผิดพลาด (ในความเป็นจริงมันน้อยกว่าแน่นอนว่า 1/100 นั้นง่ายต่อการคำนวณ) และ 1/100 ของ RAM ทั้งหมดที่ผลิตนั้นผิดพลาด

หากส่วนประกอบทั้งสองจะถูกรวมเข้าด้วยกันในชิปตัวเดียวชิปทั้งหมด 1/100 จะมีซีพียูที่ชำรุดและชิปทั้งหมดใน 1/100 นั้นจะมี RAM ที่มีข้อบกพร่อง

นี่จะหมายถึง:

  • 1 ใน 10,000 ชิปจะมีทั้ง RAM และ CPU ที่มีข้อบกพร่อง
  • 99 ชิปจะมี RAM ชำรุด
  • 99 ชิปจะมี CPU ที่มีข้อบกพร่อง
  • ทั้งหมดใน 199 จาก 10,000 ชิ้นส่วนที่ผลิตจะเสีย

การผลิตชิปแยกการคำนวณมีดังต่อไปนี้:

  • RAM 50 จาก 5,000 ชำรุด
  • ซีพียู 50 จาก 5,000 ซีชำรุด
  • ชิ้นส่วนที่ผลิตได้ 100 จาก 10,000 ชิ้นจะเป็นของเสีย

โปรดทราบว่าโดยปกติ RAM หนึ่ง GB จะทำในรูปแบบของธนาคารที่ประกอบด้วยแปดชิปดังนั้นคุณไม่จำเป็นต้องรวมสองคอมโพเนนต์ แต่ 9 ชิ้นเข้าเป็นชิปเดียวหากคุณต้องการใส่ RAM และ CPU ไว้ในชิปเดียวกัน สิ่งนี้จะนำไปสู่ชิ้นส่วนที่ชำรุดประมาณ 865 ชิ้นจาก 10,000 รายการในตัวอย่างง่าย ๆ ข้างต้น

ซีพียู "IBM Cell" มีปัญหานี้อย่างแน่นอน คอนโซล "Playstation" ใช้ชิปซึ่งมีข้อบกพร่องบางส่วน ซอฟต์แวร์ Playstation ถูกเขียนขึ้นในลักษณะที่ไม่ได้ใช้งานแกนหลักและ SRAM ที่ชำรุด


1
AMD เสนอซีพียู 3 คอร์ในขณะเดียวกันด้วยเหตุผลเดียวกัน ฉันคิดว่าในทางปฏิบัติชิ้นส่วนต่างๆมักจะทำการทดสอบที่ระดับ Die ก่อนที่จะทำการบรรจุดังนั้นความกังวลของคุณจึงเหมาะสมกับซีพียูเสาหินและหน่วยความจำรวมกันมากที่สุด
Oleksandr R.

Darpa ได้ออกมาพร้อมกับรางวัลสำหรับการใช้พลังงานอย่างมีประสิทธิภาพ 50x โดยการเอาชนะกำแพงหน่วยความจำโดยใช้ 3dSoC ซึ่งเป็นดินแดนแฟนตาซีเมื่อเทียบกับวิศวกรของ Intel และ Qualcom ยกเว้น darpa คือ darpa monolithic3d.com/blog/… SoC's (ระบบบนชิป) ดีที่สุดสำหรับโปรเซสเซอร์แบบขนานซึ่งหมายความว่ามีกลุ่ม 1000ds มากกว่า 2/16
com.prehensible

1

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

หน่วยความจำแคชอยู่ใน RAM แบบคงที่ คุณสามารถเห็นว่าพวกเขามาในขนาด KB หรือ MB พวกมันเร็ว แต่ค่าใช้จ่ายสูง


ไม่อย่างนั้นใช่พวกมันเร็ว แต่ส่วนใหญ่เป็นเพราะข้อมูลระยะทางที่ต้องเดินทางนั้นน้อยกว่า DRAM
AStopher

3
ที่จริงแล้วเซลล์ SRAM นั้นเร็วกว่าเพราะมันง่ายกว่า มันเป็นวงจรดิจิตอลที่มีความเสถียร หากคุณตั้งใจจะตั้งค่าเป็นแบบอะนาล็อก 0.8 มันจะแก้ไขตัวเองโดยย้ายไปที่ตำแหน่งที่มั่นคง 1.0 DRAM ไม่มีสถานะที่มั่นคงดังกล่าว มันไม่ได้ย้ายออกจากรัฐระดับกลาง ยิ่งไปกว่านั้นมันยังเคลื่อนไปสู่สถานะดังกล่าวซึ่งเป็นสาเหตุที่คุณต้องมีวงจร "รีเฟรช" ที่ถูกต้องเป็นพิเศษ
MSalters

@MSalters: เซลล์ SRAM ไม่ใช่เรื่องง่ายกว่าเซลล์ DRAM คุณถูกต้องแล้วว่ามันมีเสถียรภาพมากขึ้นซึ่งทำให้การใช้ง่ายขึ้น (ทั้งในแง่ของวงจรสนับสนุนและไดอะแกรมกำหนดเวลา) แต่เซลล์ SRAM นั้นมีวงจรประมาณ 6 เท่าต่อบิตเท่ากับ DRAM
Ben Voigt

1
@BenVoigt: ในการนับจำนวนทรานซิสเตอร์ใช่ - 6T เทียบกับ 1T แต่ DRAM มีตัวเก็บประจุซึ่งเป็นองค์ประกอบที่ค่อนข้างแปลก SRAM เป็นเพียงทรานซิสเตอร์แบบมีสายเข้าด้วยกัน
MSalters

ตัวเก็บประจุใน DRAM กลายเป็นทรานซิสเตอร์ได้เช่นกัน
Ben Voigt

1

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

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

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


2
ปัจจุบันมีการใช้สถาปัตยกรรมหน่วยความจำที่ไม่สม่ำเสมอ (และทั่วไป) ในปัจจุบัน สำหรับ CPU ที่มีตัวควบคุมหน่วยความจำรวมที่ใช้ในระบบหลายโปรเซสเซอร์ข้อมูลที่เก็บไว้ในหน่วยความจำกายภาพของหน่วยประมวลผลอื่นจะอยู่ไกลกว่าและสามารถเข้าถึงได้ด้วยเวลาแฝงที่สูงกว่าใน RAM ที่เชื่อมต่อแบบโลคัล ในทางปฏิบัติสิ่งที่เกิดขึ้นในระบบเหล่านี้คือโปรเซสเซอร์มีระดับแคชเพิ่มเติมและปริมาณการเชื่อมโยงกันได้รับการจัดการโดยแฟบริคส่วนต่อเชื่อม POWER7 และ POWER8 เป็นประเภทนี้
Oleksandr R.

1

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

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


1

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

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

นอกจากนี้โปรดจำไว้ว่าการเรียก "Fetch" โดยทั่วไปจะเกิดขึ้นแม้ว่า RAM จะทำงานที่ความเร็วสัญญาณนาฬิกาของ CPU จะทำให้เกิดการทำเครื่องหมายที่ไม่ได้ใช้งานจำนวนมากบน CPU

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

ใช่เครื่องที่มี RAM ทั้งหมดบนชิปจะทำงานได้ดีในแอพพลิเคชั่นที่ทันสมัย ​​แต่เครื่องที่มี RAM อยู่บนชิปที่รันระบบปฏิบัติการมาตรฐานอาจไม่ให้ประสิทธิภาพที่เพิ่มขึ้นตามที่คุณคิด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.