Як працюють кеші L1 та L2, і чому вони є важливою частиною сучасних чіпів
Розвиток кешування та кешування є однією з найважливіших подій у історії обчислень. Практично кожен сучасний CPU Core з ультра-низьких електричних мікросхем, таких як ARM Cortex-A5 до найвищого кладу Intel Core I9, використовуючи кеші. Навіть у вищихкових мікроконтролерах часто мають невеликі кеші або пропонують їх як варіанти - переваги продуктивності занадто великі, щоб ігнорувати навіть у надвисоких силових конструкціях.
Кешування було винайдено вирішити значну проблему. На початку десятиліть обчислення, основна пам'ять була надзвичайно повільною та неймовірно дорогою, але і CPU не було особливо швидким. Починаючи з 1980-х років, розрив почав швидко розширюватися. Мікропроцесорні годинники швидкості зняла, але час доступу до пам'яті значно покращився набагато менш різко. Оскільки цей розрив виріс, став все більш зрозуміло, що для того, щоб подолати розрив швидкого пам'яті
Як працює кешування
CPU Cachees - це невеликі басейни пам'яті, яка зберігає інформацію, швидше за все, буде потрібно далі. Яка інформація завантажується в кеш, залежить від складних алгоритмів та певних припущень щодо коду програмування. Метою системи кеш-пам'яті полягає в тому, щоб забезпечити, щоб процесор має наступний біт даних, він буде потрібно вже завантажувати в кеш часу, коли він шукає його (також називається хітом кешу).
З іншого боку, кеш пропускає, означає, що CPU має рухтися, щоб знайти дані в іншому місці. Ось де потрапляє в гру L2 - поки це повільніше, це також набагато більше. Деякі процесори використовують інклюзивний дизайн кешу (тобто дані, що зберігаються у кеш-пам'яті L1, також дублюються в кеші L2), а інші - ексклюзивні (тобто два кеші ніколи не діляться даними). Якщо дані не можна знайти в кеші L2, процесор продовжує ланцюг до L3 (як правило, все ще померти), потім L4 (якщо він існує) та основна пам'ять (DRAM).
Цей графік показує зв'язок між кеш-пам'яткою L1 з постійною швидкістю удару, але більшим кеш-пам'яті L2. Зауважте, що загальна швидкість удару різко зростає, оскільки розмір L2 збільшується. Більше, повільніше, дешевше L2 може забезпечити всі переваги великого L1, але без штрафного розміру та споживання електроенергії. Більшість сучасних показників кеш-пам'яті L1 знаходяться далеко вище, ніж теоретичні 50-відсотки, показані тут - Intel та AMD, як правило, як правило, показники кеш-пам'яті 95 відсотків або вище.
Наступна важлива тема є встановлена асоціація. Кожен процесор містить певний тип оперативної пам'яті, що називається бараном тегів. Тег RAM - це запис усіх місць пам'яті, які можуть відображати до будь-якого заданого блоку кешу. Якщо кеш-пам'ять повністю асоціативний, це означає, що будь-який блок даних оперативної пам'яті можна зберігати в будь-якому блоці кешу. Перевага такої системи полягає в тому, що швидкість хіта висока, але час пошуку надзвичайно довгий - процесор повинен переглянути весь свій кеш, щоб дізнатись, чи присутні дані перед пошуком основної пам'яті.
На протилежному кінці спектру у нас є прямі кешування. Кеш-пам'ятник прямого, який є кеш-пам'ять, де кожен блок кешу може містити один і тільки один блок основної пам'яті. Цей тип кешу можна шукати надзвичайно швидко, але з моменту його карти 1: 1 до місць пам'яті, він має низьку швидкість хіту. Між цими двома крайностями є російсько-місцеві асоціативні кеші. 2-Way асоціативний кеш (L1 Piledriver's - 2-Way) означає, що кожен основний блок пам'яті може мати на один з двох блоків кеш-пам'яті. Восьмисторонній асоціативний кеш означає, що кожен блок основної пам'яті може бути в одному з восьми блоків кеш-пам'яті. Кеш інструкції Ryzen's L1 є 4-місцевим асоціативним, а кеш даних L1 - 8-канальний комплект асоціативних.
Наступні два слайди показують, як швидкість хіта покращується з встановленою асоційованою діяльністю. Майте на увазі, що речі, такі як швидкість хіта, є дуже конкретними - різні програми матимуть різні показники.
Чому кеші CPU продовжують отримувати більше
Отже, чому в першу чергу додайте постійно великі кеші? Оскільки кожен додатковий басейн пам'яті підштовхує необхідність доступу до основної пам'яті та може покращити продуктивність у конкретних випадках.
Ця діаграма з огляду Анандтеха є корисним, оскільки він ілюструє вплив ефективності додавання величезного (128 Мб) кешу L4, а також звичайних структур L1 / L2 / L3. Кожен крок сходу являє собою новий рівень кешу. Червона лінія - це чіп з L4 - Зауважте, що для великих розмірів файлів, це все ще майже вдвічі більше, ніж інші два чіпси Intel.
Це може здатися логічним, тоді, щоб присвятити величезну кількість ресурсів на кеш-пам'ять - але виявляється, що це зменшення граничного повернення до цього. Більші кеші - це повільніше, так і дорожче. При шести транзисторах за біт SRAM (6T) кеш також дорогий (з точки зору розміру вмирання, а отже, вартість долара). Минулий певний пункт, це має більше сенсу витрачати бюджет з питань енергетики та транзистора чіп на більш високих підрозділах виконання, кращого прогнозування галузі або додаткових ядер. У верхній частині історії ви можете побачити зображення чіпа Pentium M (Centrino / Dothan); Вся ліва сторона смерті присвячена масивному кеші L2. Це було в останні дні однопоточного процесора, тепер, коли у багатьох випадках у багатьох випадках у багатьох випадках у нас є багатоядерні чіпи та GPU, менший відсоток загального процесора, присвячений кеш-пам'яті.
Як кеш-дизайн впливає на продуктивність
Ефективність впливу додавання кешу процесора безпосередньо пов'язана з його ефективною або швидкістю хіти; Повторний пропуск кеш-пам'яті може мати катастрофічний вплив на ефективність процесора. Наступний приклад не спрощується, але повинні служити для ілюстрації точки.
Уявіть собі, що CPU має завантажувати дані з кешу L1 100 разів поспіль. Кеш L1 має затримку доступу до 1NS та 100 відсотків. Тому, отже, приймає нашу процесор 100 наносекунд для виконання цієї операції.
Тепер припустимо, що кеш має 99 відсотків, але дані КПУ фактично потребує для її 100-го доступу, сидить у L2, з затримкою доступу до 10-річного циклу (10NS). Це означає, що він приймає КПУ 99 наносекунд, щоб виконати перші 99 читання, а 10 наносекунд для виконання 100-го. 1 відсоток зменшення швидкості хіт тільки сповільнив процесор на 10 відсотків.
У реальному світі кеш L1 зазвичай має швидкість хіту з 95 до 97 відсотків, але вплив ефективності цих двох значень у нашому простому прикладі не є 2 відсотками - це 14 відсотків. Майте на увазі, ми припускаємо, що пропущені дані завжди сидять у кеш L2. Якщо дані були виселені з кеш-пам'яті та сидять у основній пам'яті, з затримкою доступу 80-120ns, різниця продуктивності між 95 та 97 відсотками може майже подвоїти загальний час, необхідний для виконання коду.
Назад, коли сім'я бульдозера AMD порівнювалася з процесорами Intel, тема дизайну кешу та впливу ефективності вийшло багато. Не зрозуміло, скільки результатів відсутності бульдозера може бути звинувачений у своїй відносно повільній підсистемі кеш-пам'яті - на додаток до відносно високих затоків, сім'я бульдозера також постраждала від великої кількості контенту кеш-пам'яті. Кожен бульдозер / модуль Piledriver / Steamroller поділяв свій кеш L1, як показано нижче:
Кеш контентується, коли написані два різних потоки та перезаписуються дані в тій же пам'яттю. Це боляче виконання обох ниток - кожна ядра змушена витрачати час написання власних бажаних даних у L1, лише для іншого ядра оперативно перезаписують цю інформацію. Старий Steamroller AMD все ще отримує удару цією проблемою, хоча AMD збільшив кеш L1 код до 96KB і зробив це тристоронній асоціативний замість двох. Пізніше Ryzen CPU не обходить кеш у цій моді і не страждає від цієї проблеми.
Цей графік показує, як швидкість удару Opteron 6276 (оригінальний бульдозерний процесор) випав, коли обидва ядра були активними, принаймні деякі тести. Очевидно, що конвертація кеш-пам'яті не є єдиною проблемою - 6276 історично боролися, щоб перевершити 6174, навіть коли обидва процесори мали рівні показники.
Дзен 2 не має таких видів слабких сторін, а загальний кеш-пам'ять та продуктивність пам'яті Дзен і Дзен 2 набагато краще, ніж стара архітектура старшого півночі.
Сучасний CPU також часто має дуже малий "L0" кеш, який часто є лише декількома КБ за розміром і використовується для зберігання мікро-операцій. AMD і Intel використовують такий вид кешу; Дзен мав кеш 2,048 мкк, тоді як ZEN 2 має 4 096 мкк-кеш. Ці крихітні басейни кеш-пам'яті працюють за тим самими загальними принципами, як L1 та L2, але являють собою рівномірне басейн пам'яті, що ЦП може отримати доступ до навіть нижчих закторів, ніж L1. Часто компанії будуть коригувати ці можливості один проти одного. ZEN 1 and Zen + (Ryzen 1xxx, 2xxx, 3xxx APUS) мають кеш інструкцій L1 64KB L1, який є 4-хляховим комплексом асоціатив та 2,048 мкм L0 кеш. ZEN 2 (Ryzen 3xxx настільний CPUS, Ryzen Mobile 4xxx) має кеш інструкцій з 32KB L1, який є 8-річним набором асоціатив та 4 096 мкк-кеш. Подвоєння встановленої асоційованості та розміру кешу мкп дозволяли AMD, щоб скоротити розмір кешу L1 навпіл. Ці види комбінації є спільними в конструкціях ЦП.
Майбутні нововведення
Останнім часом IBM дебютував свій мікропроцесор з цікавою та незвичайною структурою кешу. Telum має звичайний L1 і L2, але замість фізичної L3, процесор розгортає віртуальний L3. Замість того, щоб повністю вигнати дані L2, що процесор не вважає, що він більше потребує, процесор Next-Generation виступає в кеш L2 різного процесора на тому ж скибочку кремнію, і позначає його як дані L3. Кожен ядро має свій 32 Мб L2, а віртуальний L3 по всьому чіпі становить 256 Мб. IBM може навіть поділитися цією можливістю у кількох чіп-системах, створюючи віртуальний L4 загалом 8192 МБ зберігання даних.
Цей тип віртуальної кеш-системи - це щось унікальне - це не має еквівалента на стороні X86 року - і це цікавий приклад того, як компанії натискають конверт дизайну кешу. Хоча V-кеш AMD призначений для забезпечення додаткового L3, а не L2, ми не зможемо не згадати про це взагалі. Нещодавнє досягнення AMD та можливості, як очікується, з'явиться на майбутній дзен CPU, є великим кеш-пам'яті L3 вертикально встановлений на вершині існуючих хперів та пов'язаний з ними через померти кремнієві VIAS. Кеш може становити 40 років, але виробники та дизайнери все ще шукають шляхи вдосконалення та розширення своєї корисності.
Перекачування
Структура кешу та дизайну все ще є точно налаштованими, оскільки дослідники шукають способи вичавити більшу продуктивність з менших кеш-пам'яток. Поки що виробники, такі як Intel, і AMD, не різко підштовхнулися до великих кеш-пам'яток або вживаються конструкції до L4. Є певна процесор Intel з бортовим EDRAM, які мають те, що становить кеш L4, але цей підхід є незвичним. Ось чому ми використовували приклад, що має вище, хоча, хоча це старесний. Імовірно, переваги великого кешу L4 ще не перевищують витрати на більшість випадків.
Незалежно від того, дизайн кешу, споживання електроенергії та продуктивність буде вирішальним для виконання майбутніх процесорів, а основні вдосконалення поточних конструкцій можуть підвищити статус будь-якої компанії.
Читати далі
SpaceX запускає бета-версію "Краще від нічого"
Тим нечисленним щасливчикам, які отримали запрошення спробувати послугу, доведеться заплатити неабияку попередню вартість, і швидкість руху не вражає. Все-таки це супутникове Інтернет нового покоління.
Чому чіп M1 від Apple загрожує Intel та AMD
Власна історія Intel говорить про це, і AMD повинна дуже серйозно поставитися до нового SoC M1 від Apple.
Як працюють кеші процесорів L1 та L2 та чому вони є важливою частиною сучасних чіпів
Вам коли-небудь цікаво було, як працюють кеші L1 та L2? Ми раді, що ви запитали. Тут ми глибоко зануримось у структуру та природу одного з найважливіших обчислювальних проектів та інновацій.
4K проти UHD: в чому різниця?
Терміни UHD та 4K стали настільки суперечливими, що виробники телевізійних програм, мовники та технічні блоги використовують їх взаємозамінно - але це не одне й те саме.