Чи існує відповідність між розмірами кешу та затримкою доступу? Якщо всі інші рівні, чи більший кеш-пам'ять працює повільніше? Якщо так, то чому? Наскільки повільніше?
Чи існує відповідність між розмірами кешу та затримкою доступу? Якщо всі інші рівні, чи більший кеш-пам'ять працює повільніше? Якщо так, то чому? Наскільки повільніше?
Відповіді:
До предметів у ваших руках швидший доступ, ніж предмети у ваших кишенях, до яких швидше отримати доступ, ніж до предметів у вашому шафі, до яких швидше отримати доступ, ніж до предметів у Digikey. Кожен наступний тип пам’яті, який я перерахував, є більшим, але повільніше, ніж попередній.
Отже, давайте мати найкраще з обох світів, давайте зробимо ваші руки такими ж великими, як склад Digikey! Ні, це не працює, тому що зараз вони вже не є руками. Вони є гарматним вагом, який важить вашим пухом.
Причина доступу до більшого сховища - відстань . Більший обсяг пам’яті в середньому віддалений від вас. Це стосується фізичних предметів та оперативної пам'яті.
Пам'ять комп'ютера займає фізичний простір. З цієї причини більші спогади є фізично більшими, а деякі місця в цій пам'яті будуть фізично далі. До речі, які знаходяться далеко, потрібен довший доступ, через будь-які обмеження швидкості. Що стосується ваших кишень та Digikey, обмеження швидкості - це швидкість вашої зброї та обмеження швидкості на шосе.
У випадку оперативної пам’яті обмеження швидкості - це швидкість поширення електричних сигналів, затримка поширення воріт та драйверів, а також загальне використання синхронних годин. Навіть якби гроші не були предметом, і ви могли придбати стільки, скільки хочете, за найшвидшою технологією оперативної пам’яті, доступною сьогодні, ви не змогли б отримати користь від усіх цих можливостей. Викладіть, якщо вам подобається, аркуш кешу L1 розміром A4, і поставте свій центральний процесор прямо в центр. Коли процесор захоче отримати доступ до деякої пам’яті прямо в кутку пам’яті, для запиту потрапити буквально знадобиться наносекунда, і наносекунда повернеться назад. І це не включає всі затримки розповсюдження через і ворота та драйвери. Це серйозно сповільнить ваш процесор 3 ГГц.
Оскільки синхронну логіку набагато простіше спроектувати, ніж асинхронну логіку, один «блок» оперативної пам’яті буде синхронізований тим самим годинником. Якщо ви хочете зробити всю пам'ять кеш-пам'яттю L1, вам доведеться обробляти цілу партію повільним годинником, щоб впоратися з найгіршим випадком часу найбільш віддаленого місця в пам'яті. Це означає, що віддалені місця пам’яті тепер стримують локальні, які можна було швидше запустити. Отже, найкраще зробити, щоб зонувати пам'ять. Найближчий і найменший розділ кеша використовував би найшвидший годинник. Наступний найближчий і найменший розділ використовував би трохи повільніший годинник тощо.
А тепер у вас є кеші L1 & L2 та оперативна пам’ять.
Що призводить нас до наступної причини, споживання енергії.
Кеш фактично споживає значну кількість енергії. Не тільки саму пам'ять, а й всю логіку, що її оточує, яка обробляє відображення між лініями кешу та основною пам'яттю. Підвищення продуктивності цієї додаткової логіки може призвести до збільшення споживання електроенергії. Тепер для деяких додатків (мобільних, вбудованих) у вас є ще більший стимул зберегти кеш-пам'ять невеликою.
Див. Компроміси з кеш-пам’яті для оптимізації потужності та працездатності: тематичне дослідження (Ching-Long Su та Alvin M. Despain, 1995).
Не залишаючи всіх економічних факторів / ефективності / споживання енергії, відповідь на ваше запитання: це залежить від багатьох мікро-архітектурних факторів.
Як приклад див. Цю посилання - вимірювана затримка доступу L1 для всіх процесорів, що перевіряються, становить 4 тактових цикли. Частоти процесорів майже однакові, але розміри кешу L1 відрізняються приблизно в 3 рази.
Причина постійної затримки L1 для декількох різних процесорів у вищевказаному тесті полягає в мікро-архітектурі кешу: сам доступ до кеш-пам'яті (отримання даних з пам'яті) займає лише один цикл тактової частоти. Додаткові три цикли витрачаються на розшифровку доступу, перевірку наявності даних та інше ... Кількість додаткових етапів однакове для процесорів у тесті, тому затримки доступу однакові.
Незважаючи на вищенаведений приклад, не можна прийти до висновку, що затримка кешу не залежить від розміру кешу. Якщо хтось спробує реалізувати смішно великий кеш L1, логіка, яка виконує всі необхідні операції для зчитування кешу, також стане великою. У якийсь момент затримка розповсюдження через всю цю логіку була б занадто довгою, і операції, які раніше зайняли лише один тактовий цикл, доведеться розділити на кілька тактових циклів. Це підвищить затримку.
Якщо припустити, що кеш-пам'ять, реалізована в SRAM, то модулями, на які впливає розмір кешу, найбільше: рядкові декодери та мюкс. Однак навіть для чутливих підсилювачів впливатимуть дуже великі кеші: менші перепади напруги на бітовій лінії через більшу ємність потребуватимуть «сильнішого» підсилювача. Сказав, що найсильніший вплив на швидкість логіки додасть ємність між провідними з'єднаннями - ця ємність має більше, ніж лінійна залежність від розміру SRAM. Точні деталі конкретні для впровадження.
Тепер кеші L1 досить стабільні у своїх затримках, оскільки їх продуктивність є найважливішою. Якщо ви спробуєте проаналізувати кеші L2 та L3, зображення значно ускладнюється.
Малюнок ускладнюється набагато більше, якщо врахувати багатоядерні процесори - вони мають додаткову логіку для забезпечення кеш-когерентності . Це призводить до додаткового чинника, який впливає на затримку доступу до кешу: історія доступу до пам'яті всіх ядер.
Підсумок
Як ви бачите, ваше запитання далеко не банальне і на нього не можна повністю відповісти. Однак якщо розглянути кешовані та ефективні кеші, то я б сказав, що їх розмір не вплине на затримку жодним помітним чином.
Для зацікавлених читачів:
Це посилання - це дуже глибокий аналіз факторів продуктивності сучасних процесорів. Там багато матеріалів, пов’язаних з кешем. Вимагає глибокого розуміння комп'ютерної архітектури та принципів мікро-архітектури (як альтернатива - хороший підсумок тем, які потрібно знати, щоб стати професіоналом у цій галузі).
Тут інженер тестування кеш-процесора - Дейв Твід в коментарях має правильні пояснення. Кеш розмір, щоб досягти максимальної продуктивності в очікуваній ціні процесора. Кеш, як правило, є найбільшим споживачем простору, і його розмір робить велику економічну (та продуктивність) різницю.
Погляньте на сторінку сімейства процесорів Ivy Bridge від Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge
У верхньому кінці Xeon поставляється 30 МБ кеша, має 12 ядер і коштує близько 2700 доларів. Нижній кінець i3 з 3 Мб кешу (i3-3217) коштує всього 500 доларів за весь ноутбук (я не можу знайти його окремо).
Xeon дає найкращі показники, але також витрачає більше на виготовлення та тестування. I3 коштує набагато дешевше, але компроміс - менший розмір штампів, найбільшу частину якого становить кеш.