Чому за останні 20 років розмір кешу L1 не сильно збільшився?


35

I486 Intel має 8 кбайт кеша L1. Intel Nehalem має 32 кеш команд KB L1 і 32 кеша даних L1 KB на ядро.

Обсяг кешу L1 не збільшився майже на швидкість руху годинникової стрілки.

Чому ні?


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

Зайвий кеш і накладні витрати можуть уповільнити роботу системи. Вони знайшли солодке місце і там воно і залишиться.
Лабораторії Фіаско

Відповіді:


17

30K тексту Вікіпедії не так корисні, як пояснення того, чому занадто велика кількість кешу менш оптимальна. Коли кеш стає занадто великим, затримка для пошуку елемента в кеші (факторинг у кеші пропускає) починає наближатися до затримки пошуку елемента в основній пам'яті. Я не знаю, до яких пропорцій спрямовані дизайнери процесорів, але я думаю, що це щось аналогічне керівництву 80-20: Ви хочете знайти свої найпоширеніші дані в кеші 80% часу, а інші 20 % часу, щоб знайти його, вам доведеться перейти в основну пам'ять. (або будь-які пропорції дизайнерів процесора.)

EDIT: Я впевнений, що це близько 80% / 20%, тому замініть X і 1-X. :)


6
"Коли кеш стає занадто великим, затримка для пошуку елемента в кеші (факторинг у кеші пропускає) починає наближатися до затримки пошуку елемента в основній пам'яті." Ви впевнені в цьому? Наприклад, подвоєння обсягу встановленої оперативної пам’яті, безумовно, не збільшить її затримку, чому це стосується кешу? А також, чому б кеш L2 збільшувався за допомогою нових процесорів, якщо це проблема? Я не фахівець у цьому, дуже хочу знати :)
sYnfo

2
Я підготував великий, довгий опис кешування програмного забезпечення та вимірювання того, коли ваш кеш переросли сам і його слід скинути / перебудувати, але тоді я вирішив, що найкраще визнати, що я не дизайнер обладнання. :) У будь-якому випадку я підозрюю, що відповідь може бути підсумована законом зменшення прибутку. Тобто більше не завжди краще.
JMD

3
З моєї багаторічної історії спостереження за апаратними засобами на низьких рівнях, але насправді не будучи дизайнером, я б сказав, що затримка, схоже, пов'язана з тим, скільки способів кеш асоціативний, а не з розміром. Я гадаю, що додаткові транзистори, які потрапляли б у кеш, виявилися ефективнішими в іншому місці для загальної продуктивності.
Брайан Кноблауш

1
@JMD Я все ж зацікавився б цим описом;) Хоча коментарі, мабуть, не найкраще місце для цього, правда. @Brian Отже, якщо я правильно це зрозумів, вони вирішили помістити менше транзисторів у кеш L1 і в той же час помістити набагато більше в L2, що значно повільніше? Будь ласка, не ображайтесь, мені просто цікаво :)
sYnfo

10

Одним із факторів є те, що завантаження L1 починається до завершення трансляції TLB, щоб зменшити затримку. При достатньому невеликому кеші та досить високому рівні біти індексу для кешу будуть однаковими між віртуальними та фізичними адресами. Це, ймовірно, зменшує витрати на підтримку когерентності пам’яті за допомогою практично індексованого кешу, який має фізичний позначення.


1
найцікавіша відповідь :)
GameDeveloper

1
Я вважаю, що це причина, але дозвольте дати номер. Розмір сторінки в архітектурі x86 становить 4096 байт. Кеш хоче вибрати відро кеша, в якому шукати запис кеш-рядка (64 байти) до завершення трансляції сторінки. Було б дорого вирішувати між занадто великою кількістю записів у відрі, тому кожне відро має лише 8 записів. Як результат, за останні десять років усі дорогі процесори x86 мають у своєму кеш-даних L1 рівно 32768 байт (512 кеш-рядків).
b_jonas

Оскільки це так важко збільшити, процесор додає кеш середнього рівня, тому зараз у нас є окремі кеші L2 та L3. Також кеш коду L1 та кеш даних L1 є окремими, оскільки процесор знає, чи має він доступ до коду чи даних.
b_jonas

8

На розмір кешу впливає багато факторів:

  1. Швидкість електричних сигналів (повинна бути якщо не швидкість світла, то однакового порядку):

    • 300 метрів в одну мікросекунду.
    • 30 сантиметрів в одну наносекунд.
  2. Економічна вартість (схеми на різних рівнях кешу можуть бути різними, а певні розміри кешу можуть бути недостойними)

    • Подвоєння розміру кешу не подвоює продуктивність (навіть якщо фізика дозволила такому розміру працювати) для подвійних розмірів подвоєння дає набагато більше, ніж подвійне виконання, для великих розмірів подвоєння розміру кешу не дає майже ніякої додаткової продуктивності.
    • На wikipedia ви можете знайти діаграму, яка показує, наприклад, як недоцільно робити кеші більше 1 Мб (насправді існують більші кеші, але потрібно враховувати, що це багатопроцесорні ядра.)
    • Для кешів L1 повинні бути деякі інші діаграми (які постачальники не показують), які забезпечують зручні розміри 64 Кб.

Якщо розмір кешу L1 не змінився після 64 кб, це тому, що він більше не вартував. Також зауважте, що зараз існує більша «культура» щодо кешу, і багато програмістів пишуть код, сприятливий до кешу, та / або використовують інструкції prefetech, щоб зменшити затримку.

Я спробував одного разу створити просту програму, яка отримувала доступ до випадкових локацій у масиві (з декількох MegaBytes): ця програма майже заморозила комп'ютер, оскільки для кожного випадкового зчитування ціла сторінка була переміщена з оперативної пам’яті в кеш, і оскільки це робилося дуже часто, так просто Програма виснажувала всю пропускну здатність, залишаючи дійсно мало ресурсів для ОС.


6

Я вважаю, що це можна підсумувати, просто зазначивши, що чим більше кеш, тим повільніше буде доступ. Таким чином, більший кеш просто не допомагає, оскільки кеш призначений для зменшення повільного зв’язку шини з оперативною пам'яттю.

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

(Я хлопець із програмним забезпеченням, тому, сподіваюся, це не дуже страшно)


3

З кешу L1 :

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

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

Процесор P55 MMX від Intel, запущений на початку 1997 року, заслуговує уваги на збільшення розміру кешу 1 рівня до 32 КБ. Фішки AMD K6 та Cyrix M2, запущені пізніше того ж року, ще більше збільшили анте, забезпечивши кеші рівня 1 64 КБ. 64Kb залишився стандартним розміром кешу L1, хоча різні багатоядерні процесори можуть використовувати його по-різному.

EDIT: Зауважте, що ця відповідь отримана з 2009 року, і процесори розвивалися надзвичайно за останні 10 років. Якщо ви прийшли на цю посаду, не сприймайте тут усі наші відповіді занадто серйозно.


Типова комірка SRAM складається з шести MOSFET. Кожен біт в SRAM зберігається на чотирьох транзисторах (M1, M2, M3, M4), які утворюють два перехресно пов'язаних інвертора. Джерело Друге джерело
lukecampbell

Це лише опис ситуації, і нічого не пояснює чому.
Еоніл

@Eonil - Ми не змогли дати відповідь "чому", якби ми цього хотіли. Однак зниження прибутку від продуктивності є розумним поясненням. Коли питання було написане майже десятиліття тому, збільшити розмір, не включаючи хіт виконавства, було набагато дорожче. Ця відповідь намагалася принаймні дати відповідь на задане питання, яке було задано.
Рамхаунд

-4

Насправді розмір кешу L1 є найбільшим вузьким місцем для сучасних комп'ютерів. Патетично крихітні розміри кешу L1 можуть бути солодкою точкою за ціною, але не продуктивністю. До кешу L1 можна отримати доступ на частотах ГГц, таких же, як і в процесорах, на відміну від оперативної пам'яті на 400 разів повільніше. У поточному 2-х мірному дизайні це дорого і важко, однак, це технічно можливо, і перша компанія, яка це робить успішно, матиме комп'ютери в 100 разів швидше і все ще круто, що може спричинити великі нововведення для багатьох поля і наразі є доступними лише через дорогі і важкі для програмування конфігурації ASIC / FPGA. Деякі з цих питань пов'язані з власними проблемами / проблемами ІС та корпоративною жадібністю, що охоплює вже десятиліття, де хитрий і неефективний кадр інженерів - єдиний, хто має доступ до внутрішніх робочих місць, і яким в основному дають маршові накази вичавити економічно вигідні невмілі протекціоністські дурниці. Надмірно приватизовані дослідження завжди призводять до такого технологічного застою або заглушення (як ми бачили в аерокосмічному та автомашинобудуванні великих виробників, і незабаром це буде фармація). Відкритий джерело та більш розумне регулювання патентної та комерційної таємниці приносять користь винахідникам та громадськості (а не керівникам компаній та акціонерам). Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. і яким в основному дають маршові накази вичавити економічно вигідні протекціоністські дурниці. Надмірно приватизовані дослідження завжди призводять до такого технологічного застою або заглушення (як ми бачили в аерокосмічному та автомашинобудуванні великих виробників, і незабаром це буде фармація). Відкритий джерело та більш розумне регулювання патентної та комерційної таємниці приносять користь винахідникам та громадськості (а не керівникам компаній та акціонерам). Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. і яким в основному дають маршові накази вичавити економічно вигідні протекціоністські дурниці. Надмірно приватизовані дослідження завжди призводять до такого технологічного застою або заглушення (як ми бачили в аерокосмічному та автомашинобудуванні великих виробників, і незабаром це буде фармація). Відкритий джерело та більш розумне регулювання патентної та комерційної таємниці приносять користь винахідникам та громадськості (а не керівникам компаній та акціонерам). Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. Надмірно приватизовані дослідження завжди призводять до такого технологічного застою або заглушення (як ми бачили в аерокосмічному та автомашинобудуванні великих виробників, і незабаром це буде фармація). Відкритий джерело та більш розумне регулювання патентної та комерційної таємниці приносять користь винахідникам та громадськості (а не керівникам компаній та акціонерам). Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. Надмірно приватизовані дослідження завжди призводять до такого технологічного застою або заглушення (як ми бачили в аерокосмічному та автомашинобудуванні великих виробників, і незабаром це буде фармація). Відкритий джерело та більш розумне регулювання патентної та комерційної таємниці приносять користь винахідникам та громадськості (а не керівникам компаній та акціонерам). Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були. Розвиток кешів L1 повинен бути непродуманим, і це було та могло бути розроблено десятиліттями тому. Ми були б набагато далі вперед у комп’ютерах та багатьох наукових галузях, використовуючи їх, якби були.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.