Чи існує відповідність між розміром кешу та затримкою доступу?


9

Чи існує відповідність між розмірами кешу та затримкою доступу? Якщо всі інші рівні, чи більший кеш-пам'ять працює повільніше? Якщо так, то чому? Наскільки повільніше?


1
Якщо ви зацікавлені в дослідженні деяких компромісів у дизайні кешу, HP розробила інструмент CACTI, який надає оцінки затримки та енергоспоживання на основі конструктивних характеристик. Веб - інтерфейс для версії 5.3 також доступний .
Пол А. Клейтон

Відповіді:


5

До предметів у ваших руках швидший доступ, ніж предмети у ваших кишенях, до яких швидше отримати доступ, ніж до предметів у вашому шафі, до яких швидше отримати доступ, ніж до предметів у Digikey. Кожен наступний тип пам’яті, який я перерахував, є більшим, але повільніше, ніж попередній.

Отже, давайте мати найкраще з обох світів, давайте зробимо ваші руки такими ж великими, як склад Digikey! Ні, це не працює, тому що зараз вони вже не є руками. Вони є гарматним вагом, який важить вашим пухом.

Причина доступу до більшого сховища - відстань . Більший обсяг пам’яті в середньому віддалений від вас. Це стосується фізичних предметів та оперативної пам'яті.

Пам'ять комп'ютера займає фізичний простір. З цієї причини більші спогади є фізично більшими, а деякі місця в цій пам'яті будуть фізично далі. До речі, які знаходяться далеко, потрібен довший доступ, через будь-які обмеження швидкості. Що стосується ваших кишень та Digikey, обмеження швидкості - це швидкість вашої зброї та обмеження швидкості на шосе.

У випадку оперативної пам’яті обмеження швидкості - це швидкість поширення електричних сигналів, затримка поширення воріт та драйверів, а також загальне використання синхронних годин. Навіть якби гроші не були предметом, і ви могли придбати стільки, скільки хочете, за найшвидшою технологією оперативної пам’яті, доступною сьогодні, ви не змогли б отримати користь від усіх цих можливостей. Викладіть, якщо вам подобається, аркуш кешу L1 розміром A4, і поставте свій центральний процесор прямо в центр. Коли процесор захоче отримати доступ до деякої пам’яті прямо в кутку пам’яті, для запиту потрапити буквально знадобиться наносекунда, і наносекунда повернеться назад. І це не включає всі затримки розповсюдження через і ворота та драйвери. Це серйозно сповільнить ваш процесор 3 ГГц.

Оскільки синхронну логіку набагато простіше спроектувати, ніж асинхронну логіку, один «блок» оперативної пам’яті буде синхронізований тим самим годинником. Якщо ви хочете зробити всю пам'ять кеш-пам'яттю L1, вам доведеться обробляти цілу партію повільним годинником, щоб впоратися з найгіршим випадком часу найбільш віддаленого місця в пам'яті. Це означає, що віддалені місця пам’яті тепер стримують локальні, які можна було швидше запустити. Отже, найкраще зробити, щоб зонувати пам'ять. Найближчий і найменший розділ кеша використовував би найшвидший годинник. Наступний найближчий і найменший розділ використовував би трохи повільніший годинник тощо.

А тепер у вас є кеші L1 & L2 та оперативна пам’ять.

Що призводить нас до наступної причини, споживання енергії.

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

Див. Компроміси з кеш-пам’яті для оптимізації потужності та працездатності: тематичне дослідження (Ching-Long Su та Alvin M. Despain, 1995).


1
+1 Мені подобається ваша відповідь. Переглядає всі відповідні пункти і також створює резервну копію. Легко читати
Густаво Литовський

це так? відповідь базується на затримці швидкості світла дюйма проти кількох дюймів?
Andyz Smith

1
Ця відповідь хороша як загальний огляд, але я підозрюю, що не відповідає на початкове запитання. Не слід бути експертом uArch, щоб зрозуміти, що кеш формату A4 не є практичним. Я вважаю, що ОП запитала про певне розумне збільшення розміру кешу і як це збільшення вплине на затримку доступу до кешу.
Василь

1
@AndyzSmith - Це велике перебільшення і надмірне спрощення, але я думаю, що це набуває загального сенсу, що в якийсь момент кеш L1 не можна збільшити на невизначений термін. У якийсь момент вступають закони фізики і сповільнюють її.
Rocketmagnet

Затримка сигналу на мікросхемі не є швидкістю світла, це більш складне значення, яке обчислюється, розглядаючи мережу / провід плюс керовану ємність затвора як мережу RLC. Це не так довго, щоб бути лінією електропередачі. Чим довша сітка, тим більшими повинні бути воротні воріти, або вам потрібно вставити буфери як ретранслятори. Все це також споживає більше енергії.
pjc50

4

Не залишаючи всіх економічних факторів / ефективності / споживання енергії, відповідь на ваше запитання: це залежить від багатьох мікро-архітектурних факторів.

Як приклад див. Цю посилання - вимірювана затримка доступу L1 для всіх процесорів, що перевіряються, становить 4 тактових цикли. Частоти процесорів майже однакові, але розміри кешу L1 відрізняються приблизно в 3 рази.

Причина постійної затримки L1 для декількох різних процесорів у вищевказаному тесті полягає в мікро-архітектурі кешу: сам доступ до кеш-пам'яті (отримання даних з пам'яті) займає лише один цикл тактової частоти. Додаткові три цикли витрачаються на розшифровку доступу, перевірку наявності даних та інше ... Кількість додаткових етапів однакове для процесорів у тесті, тому затримки доступу однакові.

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

Якщо припустити, що кеш-пам'ять, реалізована в SRAM, то модулями, на які впливає розмір кешу, найбільше: рядкові декодери та мюкс. Однак навіть для чутливих підсилювачів впливатимуть дуже великі кеші: менші перепади напруги на бітовій лінії через більшу ємність потребуватимуть «сильнішого» підсилювача. Сказав, що найсильніший вплив на швидкість логіки додасть ємність між провідними з'єднаннями - ця ємність має більше, ніж лінійна залежність від розміру SRAM. Точні деталі конкретні для впровадження.

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

Малюнок ускладнюється набагато більше, якщо врахувати багатоядерні процесори - вони мають додаткову логіку для забезпечення кеш-когерентності . Це призводить до додаткового чинника, який впливає на затримку доступу до кешу: історія доступу до пам'яті всіх ядер.

Підсумок

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

Для зацікавлених читачів:

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


Дякую за відповідь! Ваші відповіді та @ Rocketmagnet в значній мірі доповнюють один одного. Сподіваюся, я міг вибрати обидва. Я вже цитував свою копію посилання і останнім часом був дуже зацікавлений у цій темі, звідси і питання.
ivanmp

Чому логіка виконання операції зчитування залежить від розміру кешу .. Чому він стає занадто довгим при конкретній кількості адреси є дискретний стрибок. або якщо немає дискретного стрибка, яка формула часу доступу та розміру?
Andyz Smith

Ви можете конкретизувати, який саме компонент: "Критичний повтор, значить, є суматором, декодером, лінією SRAM слова, бітними лініями SRAM, підсилювачем (іми), сенсорами (байтами) керування байтом та обходом" мукси ». змушує логіка стати великою? en.wikipedia.org/wiki/Sum_address_decoder
Andyz Smith

@AndyzSmith, формулу часу доступу до розміру може дати лише хтось, хто проектує та моделює кеш. У посиланні, яке я опублікував, ви бачите, що для отримання даних з L1 потрібно 4 тактових тактики, але ніхто не намагається оцінити слабкість, пов'язану з цими показаннями. Просити формулу - це не практичне питання без великої кількості додаткової конкретної інформації щодо впровадження.
Василь

1
@AndyzSmith, якщо припустити, що кеш-пам'ять, реалізована в SRAM, модулями, на які найбільше впливає розмір кешу, є: рядкові декодери та мюкс. Однак, навіть чутливі підсилювачі впливатимуть на дуже великі кеші: менша гойдалка напруги на бітовій лінії через більшу ємність -> "сильніший" підсилювач. Сказав, що найсильніший вплив на швидкість логіки додасть ємність між провідними з'єднаннями - ця ємність має більше, ніж лінійна залежність від розміру SRAM. Знову ж таки, деталі конкретні для впровадження.
Василь

3

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

Погляньте на сторінку сімейства процесорів Ivy Bridge від Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge

У верхньому кінці Xeon поставляється 30 МБ кеша, має 12 ядер і коштує близько 2700 доларів. Нижній кінець i3 з 3 Мб кешу (i3-3217) коштує всього 500 доларів за весь ноутбук (я не можу знайти його окремо).

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


2
Дуже цікава відповідь. Але, як я заявляв у запитанні, я не шукаю економічної, очевидної, відповіді. Те, що я намагаюся зрозуміти, стосується продуктивності, пов’язаної з доступом до дуже (> 512 Мб) великого кешу. Чи погіршить би розмір продуктивність кешу?
ivanmp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.