ทำไมเวลาในการเข้าถึง RAM (ชนิดใด ๆ ) จึงลดลงอย่างช้า ๆ


22

นี้แสดงให้เห็นว่าบทความ DDR4 SDRAM มีประมาณ 8x เพิ่มเติมแบนด์วิดธ์ DDR1 SDRAM แต่เวลาจากการตั้งค่าที่อยู่คอลัมน์เป็นเมื่อข้อมูลพร้อมใช้งานลดลงเพียง 10% (13.5ns) การค้นหาอย่างรวดเร็วแสดงให้เห็นว่าเวลาในการเข้าถึงของ async ที่เร็วที่สุด SRAM (อายุ 18 ปี) อายุ 7 ปี ทำไมเวลาการเข้าถึง SDRAM จึงลดลงช้ามาก? เหตุผลทางเศรษฐกิจเทคโนโลยีหรือพื้นฐานหรือไม่


1
อีกสาเหตุที่เป็นไปได้คือไม่จำเป็นหรือไม่
Sebastiaan van den Broek

ตัวอย่างเช่นจำเป็นต้องใช้เวลาในการเข้าถึงน้อยเพื่อให้การค้นหาข้อมูลในหน่วยความจำเร็วขึ้น
Arseniy

ฉันรู้ว่าความเร็วพิเศษนั้นดีเสมอ แต่มาจากมุมมองของนักพัฒนาซอฟต์แวร์อาจเปรียบเทียบกับ IO และสถาปัตยกรรมอื่น ๆ ทั้งหมด (รวมถึง microservices ที่สามารถทำงานในศูนย์ข้อมูลที่แตกต่างกัน) ความเร็ว RAM นั้นไม่มากนัก อีกต่อไป บางครั้ง 'ดีพอ' ดีหรืออย่างน้อยก็ไม่รับประกันการวิจัยและพัฒนาเพิ่มเติมเพื่อเร่งให้ดีขึ้น ฉันจะพิจารณาเพิ่มว่าเป็นเหตุผลที่เป็นไปได้ในคำถามของคุณด้วย
Sebastiaan van den Broek

1
ตามวิกิพีเดีย DDR3-2200 มีเวลาแฝงคำแรกที่ 6.36 ns นั่นคือระยะเวลาที่ใช้ในการส่งสัญญาณประมาณ 3 ฟุตใน FR4 ฉันจะบอกว่าเราค่อนข้างใกล้เคียงกับขีด จำกัด ทางกายภาพ
Mark Omo

คำตอบ:


33

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

ที่อยู่คอลัมน์จะต้องมีการถอดรหัส mux เลือกเส้นที่ต้องการเข้าถึงเพื่อขับเคลื่อนและข้อมูลต้องการย้ายข้ามชิปไปยังบัฟเฟอร์เอาต์พุต การทำเช่นนี้ใช้เวลาเล็กน้อยโดยเฉพาะอย่างยิ่งเนื่องจากชิป SDRAM นั้นผลิตขึ้นในกระบวนการที่ปรับให้เหมาะกับความหนาแน่นของหน่วยความจำสูงและไม่ใช่ความเร็วเชิงตรรกะที่สูง ในการเพิ่มแบนด์วิดท์ให้พูดโดยใช้ DDR (1,2,3 หรือ 4) ตรรกะส่วนใหญ่สามารถขยายได้หรือไพพ์ไลน์และสามารถทำงานที่ความเร็วเดียวกันกับในรุ่นก่อนหน้า สิ่งเดียวที่จะต้องมีเร็วกว่าคือไดรเวอร์ I / O สำหรับพิน DDR

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

หากคุณเปรียบเทียบแคชของ CPU กับ RAM และฮาร์ดดิสก์ / SSD จะมีความสัมพันธ์แบบผกผันระหว่างที่เก็บข้อมูลมีขนาดใหญ่และที่จัดเก็บข้อมูลมีความรวดเร็ว L1 $ เร็วมาก แต่สามารถเก็บข้อมูลได้ระหว่าง 32 ถึง 256kB เท่านั้น เหตุผลมันเร็วมากเพราะมันเล็ก:

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

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


21
คำตอบที่ดี ฉันต้องการเน้นปัจจัยระยะทางกายภาพ: ที่ 10 ซม. สำหรับ RAM ที่ติดมากที่สุด, 1/3 ถึง 1/2 ของความเร็วแสงเป็นความเร็วของสัญญาณ, บวกความยาวพิเศษในการกำหนดเส้นทางและจับคู่แทร็ก PCB, คุณสามารถ อยู่ที่ 2ns ตลอดเวลา หากความล่าช้าของคุณเกิดจากการ จำกัด ความเร็วสากลที่ไม่สามารถแตกได้ ~ 15% ... คุณทำได้ดีมากในความคิดของฉัน
mbrig

1
L1 มีการจัดระเบียบที่ไม่ซ้ำกันอยู่ในแกนกลางที่ใช้โดยตรงและใช้ SRAM
ป่า

@forest และยังมีข้อ จำกัด ด้านขนาดที่ค่อนข้างเข้มงวด - ทำให้มันใหญ่เกินไปและไม่มีทางที่จะทำให้มันเร็วนัก
Luaan

แคช L1d สามารถปรับให้เหมาะสมอย่างมากสำหรับเวลาในการตอบสนองเช่นการดึงแท็กและข้อมูลไปพร้อมกันสำหรับทุกวิธีในชุด ดังนั้นเมื่อแท็กตรงกันเพียงแค่การรวมข้อมูลเข้ากับเอาต์พุตแทนที่จะต้องดึงข้อมูลจาก SRAM สิ่งนี้สามารถเกิดขึ้นพร้อมกับการค้นหา TLB บนบิตสูงของแอดเดรสถ้าบิตดัชนีทั้งหมดมาจากส่วนออฟเซ็ตภายในหน้าของที่อยู่ (นั่นคือขนาดที่ จำกัด อย่างหนักอย่างที่ @Luaan พูดถึง: ขนาด / การเชื่อมโยง <= ขนาดหน้าสำหรับ VIPT นี้ = การแฮ็กความเร็ว PIPT ใช้งานได้ดูVIPT Cache: การเชื่อมต่อระหว่าง TLB และแคช? )
Peter Cordes

6

C_Elegansให้คำตอบหนึ่งส่วน - ยากที่จะลดเวลาแฝงโดยรวมของวงจรหน่วยความจำ

อีกส่วนหนึ่งของคำตอบก็คือว่าในปัจจุบันระบบหน่วยความจำแบบลำดับชั้น (หลายระดับของแคช), หน่วยความจำแบนด์วิดธ์มีอิทธิพลที่แข็งแกร่งมากในการทำงานของระบบโดยรวมกว่าหน่วยความจำแฝงและเพื่อให้ว่าที่ทั้งหมดของความพยายามพัฒนาล่าสุดได้รับการเน้น

สิ่งนี้เป็นจริงทั้งในการคำนวณทั่วไปที่กระบวนการ / เธรดจำนวนมากกำลังทำงานแบบขนานเช่นเดียวกับระบบฝังตัว ตัวอย่างเช่นในงานวิดีโอ HD ที่ฉันทำฉันไม่สนใจเวลาแฝงตามลำดับมิลลิวินาที แต่ฉันต้องการแบนด์วิดท์หลายกิกะไบต์ / วินาที


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

บน CPU ของ Intel ที่ทันสมัยความหน่วงแฝงของหน่วยความจำเป็นปัจจัย จำกัด สำหรับแบนด์วิดท์แบบ Single-Core : แบนด์วิดธ์ต้องไม่เกิน Max_concurrency / Latency และแกนเดียวมีความจุ จำกัด สำหรับการร้องขอแบบ Off-Core ในการบินพร้อมกัน Xeon แบบหลายคอร์ (ที่มีความหน่วงแฝงที่สูงกว่าจากฮ็อพเพิ่มเติมบนบัสบัส) มีแบนด์วิดท์แบบ Single-Core ที่แย่กว่าชิปเดสก์ท็อปแบบ quad-core แม้จะมีตัวควบคุม DRAM มากกว่า เหตุใด Skylake จึงดีกว่า Broadwell-E มากสำหรับการส่งผ่านหน่วยความจำเธรดเดียว? . ต้องใช้เธรดอื่น ๆ อีกมากมายในการทำให้อิ่มตัวหน่วยความจำ B / W ใน Xeon แบบหลายคอร์
Peter Cordes

โดยรวมแล้วประเด็นหลักของคุณนั้นถูกต้อง: การเข้าถึงแคชส่วนใหญ่มีความหน่วงแฝงต่ำเพื่อหลีกเลี่ยงการหยุดแบ็คเอนด์ที่ล้าสมัย HW prefetch ส่วนใหญ่ต้องการแบนด์วิดท์เพื่อให้ทันกับการเข้าถึงตามลำดับและเตรียมข้อมูลไว้ในแคชก่อนที่แกนประมวลผลต้องการ เวลาแฝงของ DRAM เป็นวงจรนาฬิกาหลักนับร้อยรอบดังนั้นจึงต้องปรับแต่งซอฟต์แวร์ที่มีประสิทธิภาพเพื่อใช้รูปแบบการเข้าถึงที่ไม่พลาดแคชโดยเอาชนะทั้งพื้นที่เชิงพื้นที่ / ชั่วขณะและการดึงข้อมูลล่วงหน้า HW โดยเฉพาะอย่างยิ่งสำหรับการโหลดเนื่องจากบัฟเฟอร์การจัดเก็บสามารถแยกเวลาแฝงการจัดเก็บออกจากส่วนที่เหลือของแบ็กเอนด์ที่ไม่เรียบร้อย
Peter Cordes

สำหรับดิสก์ I / O เวลาแฝงของมิลลิวินาทีจะมีความสำคัญหากเราไม่ได้อ่านล่วงหน้าสำหรับการซ่อนเพื่อการเข้าถึงตามลำดับ แต่ยิ่งเวลาแฝงมากเท่าไหร่ก็ยิ่งซ่อนได้ยากเท่านั้น (อัลกอริทึมการดึงข้อมูลล่วงหน้าของคุณจะต้องดีกว่าและยิ่งจำเป็นต้องคาดเดารูปแบบการเข้าถึงของคุณได้มากขึ้น) และยิ่งร้องขอ / data bytes มากเท่าไหร่คุณก็จำเป็นต้องทำการบินให้ได้แบนด์วิดท์ที่คุณต้องการ
Peter Cordes

2

ฉันไม่มีข้อมูลเชิงลึกมากนัก แต่ฉันคาดหวังว่ามันจะเป็นเรื่องเล็กน้อย

ด้านเศรษฐกิจ

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

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

วิชาการ

ด้วยขนาดที่ลดลงของชิป / ไอซี (ระดับ nm ตอนนี้) ความเร็วเพิ่มขึ้น แต่ไม่มากนัก มันมักจะใช้สำหรับการเพิ่มปริมาณของ RAM ซึ่งเป็นสิ่งจำเป็นมากขึ้น (เช่นเหตุผลทางเศรษฐกิจ)

พื้นฐาน

ตัวอย่าง (ทั้งสองวงจร): วิธีที่ง่ายที่สุดในการรับความเร็ว (ใช้โดย SSD) คือการกระจายโหลดไปยังหลาย ๆ องค์ประกอบวิธีนี้ความเร็วของ 'การประมวลผล' ก็เพิ่มขึ้นเช่นกัน เปรียบเทียบโดยใช้ USB 8 แท่งอ่านจากในเวลาเดียวกันและรวมผลลัพธ์แทนการอ่านข้อมูลจากแท่ง USB 1 อันต่อกัน (ใช้เวลานาน 8 ครั้ง)


1
SSD ต้องทำอะไรกับ SDRAM latency
C_Elegans

@C_Elegans พวกเขาทั้งสองวงจรสำหรับคำถาม 'ทั่วไป' นี้ฉันไม่คิดว่ามีความแตกต่างกันมาก
Michel Keijzers

2
ระยะเวลาในการเปิดหน้าไม่ได้ลดลงมากเนื่องจากรอบการเติมเงิน วันนี้ปริมาณของพลังงานที่ต้องการไม่แตกต่างจากเมื่อสิบปีก่อน นั่นครอบงำเวลาเข้าถึงในประสบการณ์ของฉัน
Peter Smith

5
@MichelKeijzers ในขณะที่ทั้งสองมีวงจร SSD และ SDRAM ให้บริการกรณีการใช้งานที่แตกต่างกันมากและใช้เทคนิคที่แตกต่างกันสำหรับการจัดเก็บข้อมูล นอกจากนี้การพูดว่า CPU ไม่ต้องการแรมเร็วกว่านั้นก็ไม่สมเหตุสมผลเหตุผลทั้งหมดที่ซีพียูสมัยใหม่ส่วนใหญ่มีแคช 3 ระดับคือ RAM ของพวกเขาไม่สามารถทำให้เร็วพอที่จะรองรับ CPU ได้
C_Elegans

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