Чому кеш L1 швидше, ніж кеш L2?


14

Я намагаюся зрозуміти, чому певні кеш-пам'яті процесора швидші, ніж інші. При порівнянні кеш-пам’яті з чимось на зразок основної пам’яті, існують відмінності у типі пам’яті (SRAM vs DRAM), а також у питаннях локальності (на мікросхемі проти переходу шини пам’яті), які можуть впливати на швидкість доступу. Але L1 і L2, як правило, на одному і тому ж мікросхемі або, принаймні, на одній штампі, і я думаю, що вони пам'яті одного типу. То чому L1 швидше?


9
Тому що він побудований саме так.
Ігнасіо Васкес-Абрамс

Існує кілька способів побудови оперативної пам'яті одного типу. Деякі способи призводять до оперативної пам'яті, яка є швидшою, ніж оперативна пам'ять, побудована іншими способами.
Ігнасіо Васкес-Абрамс

З тієї ж причини, чому ваша оперативна пам'ять DDR швидша, ніж ваш жорсткий диск ...
hassan789,

1
пов'язано: моя відповідь на питання ТА щодо розмірів кешу також пояснює деякі причини швидкості / споживання електроенергії для наявності багаторівневих кешів. В основному, створення надшвидкого кешу коштує енергії та області вимирання, щоб зробити більше паралельно, і є несумісним з великими розмірами / асоціативністю, які ви хочете використовувати в кеші останнього рівня.
Пітер Кордес

Відповіді:


24

Ні, вони не є одним типом оперативної пам’яті, хоча вони знаходяться на тому ж мікросхемі, що використовує той самий виробничий процес.

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


3
Це те, що я шукаю, дякую. Чи знаєте ви якісь хороші джерела, де я можу читати далі про відмінності?
ConditionRacer

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

10
L1 також менший, тобто поширення сигналу по ньому займає менше циклів тактових частот: часто розмір L1 визначається як найбільша пам'ять, доступна в 1 (або 2) тактових часах.
Брайан Драммонд

6
Крім точки Брайана Драммонда, L1 також зазвичай використовує паралельний доступ до тегів даних. Зазвичай L2 звертається до тегів спочатку (визначаючи, в який спосіб потрапляє), а потім до даних, збільшуючи затримку, але економлячи енергію (суттєво, враховуючи більший розмір, більшу асоціативність та більшу швидкість пропуску). (Доступ до L2 також зазвичай починається після підтвердження пропуску L1, що збільшує ефективну затримку.)
Пол А. Клейтон,

@BrianDrummond - менший, як з точки зору навантаження на дріт, так і з глибини воріт (я не думаю, що це очевидно з вашого коментаря).
Шон Хуліхане

5

L1 зазвичай використовується як сховище для декодованих інструкцій, тоді як L2 є загальним кешем для одного ядра. Чим менший кеш, тим менший розмір і тим швидше він є. Як грубе правило, для ПК-процесорів:

Кеш L1: доступ до 2-3 тактових циклів

Кеш L2: ~ 10 тактових циклів доступу

Кеш L3: ~ 20-30 тактового циклу доступу

Конструкція кешу L1 повинна бути максимальною, щоб швидкість звернення (ймовірність того, що потрібна адреса інструкції або адреса даних знаходиться в кеші), зберігаючи якнайменше затримку кешу. Intel використовує кеш L1 із затримкою в 3 цикли. Кеш L2 поділяється між одним або декількома кешами L1 і часто набагато, значно більше. Тоді як кеш L1 призначений для максимізації частоти показів, кеш L2 призначений для мінімізації штрафу за промах (затримка, яка виникає при пропущенні L1). Для мікросхем, які мають кеш-пам'ять L3, призначення є специфічним для дизайну мікросхеми. Для Intel кеші L3 вперше з'явилися у багатопроцесорних багатопроцесорних системах (процесори Pentium 4 Xeon MP) у 2002 році. Керування L3 в цьому сенсі значно скоротило затримки в багатопотокових середовищах і зняло навантаження з FSB. У той час

Цитата отримана тут з відповіді "Пінхеда".


1
L1 використовується також для даних загалом, але це правда, що часто дані L1 та інструкція L1 є окремими, тоді як L2 є спільним: programmers.stackexchange.com/questions/44731/… (одна з причин, чому це може бути спільним - це те, що у нього є більше способів ).
Гай Сіртон

1
У процесорах зазвичай є окремі кеші інструкцій та даних на рівні L1. Безумовно, що стосується пізніших чіпів x86 та SPARC. І деякі кеші інструкцій L1 не зберігають декодовані інструкції. Pentium 4 зберігає декодовані інструкції, але потім Intel повернувся до звичайних I-кешів, а потім нещодавно додав декодовані кешові інструкції назад у свої чіпи.
Крейг С. Андерсон

3

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


1

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

Цікаво відзначити, що для кеш-пам'яті L2 на великій частині (можливо, навіть більшість) час доступу обумовлений затримкою проводів. Це фізичне обмеження, яке може погіршитися лише зі збільшенням розміру кешу. Тільки скорочення процесу (наприклад, від 60 нм для Merom до 45 нм для Penryn у лінійці Intel) може покращити ці показники.


Я думаю, що це стосується здебільшого кеш-пам'яток - Це не стосується всіх типів процесорів (хоча затримка дротів є значною).
Шон Хуліхане
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.