Чому ОЗУ (будь-якого типу) час доступу зменшується так повільно?


22

У цій статті показано, що DDR4 SDRAM має приблизно в 8 разів більше пропускної здатності DDR1 SDRAM. Але час від встановлення адреси стовпця до появи даних лише зменшився на 10% (13,5 с). Швидкий пошук показує, що час доступу найшвидшого асинхронізації. SRAM (18 років) - 7ns. Чому час доступу до SDRAM скорочується так повільно? Чи є причина економічною, технологічною чи фундаментальною?


1
Чи може бути іншою можливою причиною те, що це просто не так потрібно?
Себастіян ван ден Брук

Наприклад, потрібний низький час доступу для швидшого пошуку даних у пам'яті.
Арсеній

Я розумію, що додаткова швидкість завжди приємна, але, виходячи з точки зору розробника програмного забезпечення, можливо, порівняно з усіма іншими IO та архітектурою (включаючи мікросервіси, які можуть буквально працювати в різних центрах обробки даних), швидкість оперативної пам’яті просто не настільки вузьке місце більше. Іноді "достатньо добре" - це добре, або, принаймні, не вимагає, щоб додаткові НДДКР пришвидшили його. Я б вважав, що це також може бути причиною вашого запитання.
Себастіян ван ден Брук

1
Згідно з Вікіпедією DDR3-2200 має затримку першого слова 6,36 нс, тобто, скільки часу потрібно, щоб сигнал поширився близько 3 футів на FR4, я б сказав, що ми досить близькі до фізичних меж
Марк Омо

Відповіді:


33

Це тому, що простіше і дешевше збільшити пропускну здатність DRAM, ніж зменшити затримку. Щоб отримати дані з відкритого ряду оперативної пам’яті, необхідний нетривіальний обсяг роботи.

Адресу стовпця потрібно декодувати, мукси, вибираючи, до яких рядків для доступу потрібно керувати, а дані потрібно переміщувати через мікросхему до вихідних буферів. Це займає небагато часу, особливо якщо врахувати, що мікросхеми SDRAM виготовляються за процесом, адаптованим до високої щільності тара, а також не до великих логічних швидкостей. Щоб збільшити пропускну здатність, скажімо, за допомогою DDR (1,2,3 або 4), більша частина логіки може бути або розширеною, або конвеєрною, і може працювати з тією ж швидкістю, що і в попередньому поколінні. Єдине, що потрібно швидше - це драйвер вводу / виводу для контактів DDR.

На відміну від цього, щоб зменшити затримку, потрібно прискорити всю операцію, що набагато складніше. Швидше за все, частину оперативної пам'яті потрібно було б зробити за процесом, подібним до процесорів для швидкісних процесорів, істотно збільшивши вартість (швидкісний процес дорожчий, плюс кожен чіп повинен пройти два різні процеси).

Якщо порівнювати кеші процесора з оперативною пам’яттю та жорстким диском / SSD, існує обернена залежність між великим сховищем та швидким зберіганням. L1 $ дуже швидкий, але може містити лише між 32 і 256 КБ даних. Причина, чому це так швидко, полягає в тому, що вона невелика:

  • Його можна розмістити дуже близько до центрального процесора, використовуючи його, тобто дані повинні пройти коротшу відстань, щоб дістатися до нього
  • Провід на ньому може бути коротшим, що знову ж таки означає, що це потребує меншого часу, щоб дані могли подорожувати по ньому
  • Він не займає велику площу або багато транзисторів, тому виготовлення його за оптимізованою швидкістю та використання великої кількості енергії за біт, що зберігається, не так дорого

Коли ви рухаєтесь вгору за ієрархією, кожен варіант зберігання набуває більшої ємності, але також збільшується за площею і чимдалі від пристрою, що використовує його, тобто пристрій повинен отримувати повільніше.


21
Чудова відповідь. Я просто хочу наголосити на фізичному коефіцієнті відстані: при 10 см для найдальшої оперативної пам’яті, 1/3 до 1/2 швидкості світла як швидкості сигналу, а також додаткової довжини для маршруту та відповідності треків на друкованій платі, ви можете легко бути в 2ns кругової поїздки. Якщо ~ 15% вашої затримки викликано непорушним універсальним обмеженням швидкості ... ви, на мою думку, робите справді добре.
mbrig

1
L1 також організований унікально, знаходиться безпосередньо в ядрі, яке його використовує, і використовує SRAM.
ліс

@forest А також має досить суворий обмеження розміру - зробіть його занадто великим, і немає ніякого способу тримати його так швидко.
Луань

Кеш L1d також може бути сильно оптимізований для затримки, наприклад, вилучення тегів та даних паралельно для всіх способів у наборі. Отже, коли відповідність тегів просто примикає дані до виводу, замість того, щоб отримати його з SRAM. Це також може статися паралельно з пошуку TLB на високих бітах адреси, якщо біти індексу надходять із частини зміщення всередині сторінки. (Отже, це один жорсткий ліміт розміру, як-от @Luaan згадується: розмір / асоціативність <= розмір сторінки для цього VIPT = швидкість PIPT-хаку для роботи. Див. Кэш VIPT: Зв'язок між TLB & Cache? )
Пітер Кордес

6

C_Elegans дає одну частину відповіді - важко зменшити загальну затримку циклу пам'яті.

Інша частина відповіді полягає в тому, що в сучасних ієрархічних системах пам’яті (кілька рівнів кешування) пропускна здатність пам’яті значно сильніше впливає на загальну продуктивність системи, ніж затримка пам’яті , і тому саме тут були зосереджені всі останні зусилля з розробки.

Це справедливо як для загальних обчислень, де багато процесів / потоків працює паралельно, так і вбудованих систем. Наприклад, у відеороботі HD, який я роблю, я не переймаюся затримками порядку мілісекунд, але мені потрібно кілька гігабайт / секунду пропускної здатності.


І, безумовно, слід зазначити, що програмне забезпечення може бути спроектовано для «високої» затримки в більшості випадків досить легко, порівняно із складністю та вартістю зменшення затримки. І процесори, і їх програмне забезпечення дуже добре знімають ефективну затримку в більшості випадків. Зрештою, ви не досягаєте межі затримки так часто, як вам здається, якщо тільки ви не маєте поняття про те, як працює архітектура пам'яті та кешування / попереднє вилучення процесора тощо. Простий підхід зазвичай працює досить добре для більшості програмного забезпечення, особливо однопотокового.
Луань

У сучасних процесорних процесорах Intel затримка пам’яті є обмежуючим фактором для одноядерної пропускної здатності: пропускна здатність не може перевищувати max_concurrency / latency, а одне ядро ​​має обмежену потужність для непрофільних запитів під час польоту відразу. Багатоядерний Xeon (з більшою непостійною затримкою від більшої кількості стрибків на шині) має гіршу одноядерну пропускну здатність, ніж чотириядерний настільний чіп, незважаючи на те, що в ньому є більше контролерів DRAM. Чому Skylake настільки кращий, ніж Broadwell-E, для однопотокової пропускної здатності пам'яті? . Для насичення пам'яті B / W на багатоядерному Xeon потрібно багато інших потоків.
Пітер Кордес

Загалом, ваша основна думка є правильною: більшість звернень потрапляють у кеш-пам'ять із низькою затримкою, щоб уникнути затримки зворотнього зв'язку поза замовленням. Попередній вибір HW, як правило, просто потребує пропускної здатності, щоб не відставати від послідовного доступу та мати дані, готові до кешу, перш ніж ядро ​​потребує цього. Затримка DRAM - це сотні базових тактових циклів, тому ефективне програмне забезпечення повинно бути налаштоване на використання шаблонів доступу, які не кешують промахи, перемагаючи як просторову / тимчасову локальність, так і попереднє завантаження HW. Особливо для навантажень, тому що буфери магазинів можуть знімати затримку зберігання від решти вихідних програм, що не входять в режим замовлення.
Пітер Кордес

Що стосується вводу / виводу диска, затримки в мілісекундах мали б значення, якби у нас не було попереднього вибору попереднього перегляду, щоб приховати його для послідовного доступу. Але чим вище затримка, тим важче приховати. (Чим краще повинні бути алгоритми попереднього вибору, тим більш передбачуваними повинні бути ваші шаблони доступу.) І тим більше запитів / байтів даних потрібно тримати в польоті, щоб отримати потрібну пропускну здатність.
Пітер Кордес

2

У мене не так багато розумінь, але я думаю, що це трохи всього.

Економічний

Для більшості комп’ютерів / телефонів швидкість більш ніж достатня. Для більш швидкого зберігання даних був розроблений SSD. Люди можуть використовувати відео / музику та інші швидкісні завдання в (майже) реальному часі. Отже, не стільки потрібно більше швидкості (за винятком конкретних застосувань, таких як прогнозування погоди тощо).

Ще одна причина - це обробляти дуже високу швидкість оперативної пам’яті, потрібні швидкодіючі процесори. І це пов'язано з великим споживанням енергії. Оскільки тенденція використання їх у акумуляторних пристроях (наприклад, мобільних телефонах) перешкоджає використанню дуже швидкої оперативної пам’яті (та процесорів), що робить їх також економічно не корисним.

Технічні

Зі зменшенням розміру чіпів / ІС (рівень нм зараз) швидкість зростає, але не значно. Він частіше використовується для збільшення обсягу оперативної пам’яті, що потрібно більш важко (також економічна причина).

Фундаментальні

Як приклад (обидва схеми): найпростіший спосіб отримати більшу швидкість (використовується SSD) - це просто розподілити навантаження на декілька компонентів, таким чином швидкості «обробки» також збільшуються. Порівняйте, використовуючи одночасне читання 8 USB-накопичувачів та комбінуючи результати, замість того, щоб читати дані з 1 USB-накопичувача один за одним (займає 8 разів довше).


1
Що ж стосуються SSD з затримкою SDRAM?
C_Elegans

@C_Elegans вони обидві схеми, для цього "загального" питання я не думаю, що різниці є дуже багато.
Мішель Кейзерс

2
Час відкриття сторінки насправді не зменшилось настільки сильно через цикл підзарядки; кількість необхідної енергії сьогодні суттєво не відрізняється, ніж це було десятиліття тому. Це в моєму досвіді переважає час доступу.
Пітер Сміт

5
@MichelKeijzers Хоча вони є обома схемами, SSD та SDRAM обслуговують дуже різні випадки використання та використовують різні методи зберігання даних. Крім того, сказати, що процесори дійсно не потребують більш швидкої оперативної пам’яті, не має великого сенсу, вся причина, чому більшість сучасних процесорів має 3 рівні кеш-пам'яті, полягає в тому, що оперативної пам’яті не можна зробити досить швидко, щоб обслуговувати процесор.
C_Elegans

1
Ви сказали, що для більшого зберігання є SSD. Ви мали на увазі швидше ? Дорожче отримати таку ж кількість пам’яті в ssd, ніж hdd. Основна продажна точка SSD - це швидкість, а можливо, шум і надійність. За ємністю жорсткі диски все ж краще
user198712
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.