Чому завантаження фрагментів даних у кеш-процесор є ефективним способом обробки?


-1

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


Чи можете ви уточнити трохи більше, що ви хочете? Тому що це схоже на питання програмування, і якщо так, вам потрібно бути на мережевому сайті.
LPChip

Я не дивлюся на надходження та керування кеша. Я хочу знати відповідь на головне вище питання ДУЖЕ загальні умови
user3324945

@ user3324945 - Наведене вище питання не ясно. Я б також сказав, що це насправді дуже неефективно для обробки фрагментів даних. Ваше власне питання не все так однозначно.
Рамхаунд

Відповіді:


-1

По-перше, "шматки" частини вашого питання ...

Зазвичай управління пам'яттю відбувається з патронами пам'яті. Немає сенсу керувати байтом пам'яті за байтом. Це тому, що для управління шматком пам'яті вам потрібна структура даних, яка містить інформацію про цей фрагмент пам'яті. Давайте подумаємо і скажемо, що ця структура даних становить 24 байти. Ви б не використовували 24-байтну структуру даних для управління 1 байтом пам'яті. Ви хочете "економію масштабу". Інакше ви отримуєте жахливо велику суму накладних витрат. Натомість ви одночасно керуєте 1 Кбайт / 32 Кбайт / 1 Мбіт /.

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

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

Запис у кеш - це приклад структури даних, про яку я згадував раніше.

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

Перегляньте запис у Вікіпедії нижче. У ньому є більше інформації.

http://en.wikipedia.org/wiki/CPU_cache

======

А тепер більш загальна відповідь про кеш процесора.

В основному, прискорення відбувається, тому що, коли процесор отримує доступ до кешу, він отримує інструкції / дані МНОГО! швидше, ніж коли це доступ до основної пам'яті.

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

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

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