Що робить кеш-пам'ять процесора набагато швидшою, ніж основна пам'ять? Я бачу певну користь у багаторівневій системі кешу. Має сенс, що менший кеш швидше шукати. Але повинно бути більше.
Що робить кеш-пам'ять процесора набагато швидшою, ніж основна пам'ять? Я бачу певну користь у багаторівневій системі кешу. Має сенс, що менший кеш швидше шукати. Але повинно бути більше.
Відповіді:
У випадку кешу процесора це швидше, оскільки він знаходиться на тій же штампі, що і процесор. Іншими словами, запитувані дані не повинні передаватися процесору; це вже є.
Що стосується кешу на жорсткому диску, це швидше, тому що він знаходиться в твердотілій пам'яті, а не все ще на обертових платах.
У випадку кешу на веб-сайті це відбувається швидше, оскільки дані вже отримані з бази даних (яка, в деяких випадках, може бути розміщена в будь-якій точці світу).
Тож переважно про місцевість . Кеш виключає етап передачі даних .
Місцевість - це вигадливий спосіб висловлювати дані "близько один до одного", або в часі, або в просторі. Кешування з меншою, швидшою (але, як правило, дорожчою) пам'яттю працює, тому що, як правило, порівняно невелика кількість загальних даних - це дані, до яких звертається найчастіше.
Подальше читання
кешу (обчислювальної техніки) у Вікіпедії
Це швидше, тому що і ближче, і тому, що це SRAM, а не DRAM.
SRAM є і може бути значно швидшим, ніж DRAM, значення зберігаються статично (S у S RAM), тому їх не потрібно оновлювати, що забирає цикли. DRAM є динамічним, як і крихітні акумуляторні батареї, вам доведеться регулярно підзаряджати акумулятори, щоб вони не стікали і не ставали нулями. Це краде час циклу, крім того, як ви маєте доступ до бітів тощо.
Перебуваючи на одній матриці або ближче, процесор зменшує зворотну поїздку, і L1, і L2 швидше, ніж DRAM з точки зору доступу.
SRAM швидше отримати доступ, ніж DRAM взяв яблука до яблук, і кеші, як правило, на мікросхемі або ближче або на більш швидких шинах, ніж DRAM, що робить час доступу також швидшим.
Одне, що слід чітко згадати, - це вплив швидкості світла. У цьому відео Грейс Хоппер демонструє шматочок дроту довжиною близько стопи, тобто про те, наскільки електричний сигнал може пройти за одну наносекунд *. Якщо процесор працює на частоті 3 ГГц, то це означає відстань 4 "на тактовий цикл. Це важкий фізичний обмеження швидкості доступу до пам'яті. Це велика частина того, чому близькість до процесора (як це кеш L1) дозволяє пам'ять, щоб бути швидше.
EDIT * насправді, наскільки далеко може пройти світло у вакуумі, відстань через мідь / кремній менше.
Інші відповіді вже охоплювали всі відповідні біти: місцеположення (і пов’язана з цим вартість передачі даних, ширина шини та годинник тощо); швидкість світла (знову ж таки, пов'язана з витратами на передачу та шириною шини та пропускною здатністю); різні технології пам'яті (SRAM vs.DRAM). Все це бачиться з урахуванням співвідношення витрат / ефективності .
Один біт, який був залишений, і він лише згадується в коментарі Darkhogg: більші кеші мають кращі показники показів, але триваліша затримка. Кілька рівнів кешу, де введено також для вирішення цього компромісу.
У цьому питанні є відмінне запитання та відповідь щодо електроніки SE
З відповідей мені здається, що слід виділити точку: логіка, яка виконує всі необхідні операції для кешу читання, не така проста (особливо якщо кеш задано асоціативний, як і більшість кешів сьогодні). Для цього потрібні ворота та логіка. Тож, навіть якщо ми виключимо вартість і помремо простір
Якщо хтось спробує реалізувати смішно великий кеш L1, логіка, яка виконує всі необхідні операції для зчитування кешу, також стане великою. У якийсь момент затримка розповсюдження через всю цю логіку була б занадто довгою, і операції, які раніше зайняли лише один тактовий цикл, повинні були бути розділені на кілька тактових циклів. Це підвищить затримку.
В інших відповідях є багато хороших моментів, але, здається, один фактор відсутній: затримка розшифровки адреси.
Далі йде велика спрощеність того, як працює декодування адрес пам'яті, але це дає хороше уявлення про те, чому великі мікросхеми DRAM, як правило, досить повільні.
Коли процесору потрібно отримати доступ до пам'яті, він надсилає команду в мікросхему пам'яті, щоб вибрати конкретне слово, яке воно хоче використовувати. Ця команда називається Вибір адреси стовпців (ми зараз ігноруємо адреси рядків). Тепер мікросхем пам'яті повинен активувати запитуваний стовпець, що він робить, надсилаючи адресу вниз по каскаду логічних воріт, щоб зробити єдине записування, яке з'єднується з усіма клітинками стовпця. Залежно від того, як він реалізований, буде певна кількість затримок для кожного біта адреси, поки результат не вийде з іншого кінця. Це називається затримкою пам'яті CAS. Оскільки ці біти доводиться досліджувати послідовно, цей процес займає набагато більше часу, ніж цикл процесора (який зазвичай має лише кілька транзисторів послідовно чекати). Це також займає набагато більше часу, ніж цикл шини (який, як правило, в кілька разів повільніше, ніж цикл процесора). Команда CAS на типовому мікросхемі пам'яті, швидше за все, набере порядку 5ns (IIRC - минув час, коли я дивився на таймінги), що на порядок більше, ніж цикл процесора.
На щастя, ми розбиваємо адреси на три частини (стовпець, рядок і банк), що дозволяє кожній частині бути меншою і обробляти ці частини одночасно, інакше затримка буде ще довшою.
Однак кеш процесора не має цієї проблеми. Він не тільки набагато менший, тому переклад адрес - це простіша робота, він фактично не потребує перекладу більше ніж невеликий фрагмент адреси (у деяких варіантах взагалі жодної), оскільки він асоціативний. Це означає, що поряд з кожною кешованою лінією пам’яті є додаткові комірки пам’яті, які зберігають частину (або всю) адреси. Очевидно, це робить кеш ще дорожчим, але це означає, що всі клітини можна запитувати, щоб побачити, чи є у них конкретна лінія пам'яті, яку ми хочемо одночасно, і тоді одна (сподіваємось), що має правильні дані, скидає її на шину, яка з'єднує всю пам'ять з основним процесорним ядром. Це відбувається менше, ніж за цикл, тому що це набагато простіше.
Однією з філософій, яку я вивчав, було апаратне рух отримати максимальну пропускну здатність в мінімумі, коли ми говоримо про будь-яку пам'ять, засновану на кеші, будь то кеш процесора, буфер кеш або кеш пам'яті для цієї мети. Основний мотив досягається тоді, коли найменше або немає апаратного руху для отримання / читання / запису даних і операція завершується швидше.
Передача даних з диска -> основна пам'ять (оперативна пам'ять) (тимчасове зберігання) -> кеш процесора (менший тимчасовий сховище біля процесора для часто доступних даних) -> процесор (обробка).
Кеш процесора - це менший, швидший простір пам’яті, який зберігає копії даних з останніх використовуваних головних місць пам'яті.
Буферний кеш - це основна область пам'яті, в якій зберігаються копії даних з останніх використовуваних дискових місць.
Кеш браузера - це каталог або подібний простір, який зберігає копії даних з останніх відвідуваних веб-сайтів користувачами.
Довідка: Як працює пам'ять комп’ютера