Більшість комп'ютерів стримується не по швидкості їх основного процесора, але до того часу, необхідне для переміщення даних в пам'ять і з пам'яті. Одним з найбільш важливих методів для отримання навколо цієї проблеми є кеш-пам'ять.
Ідея полягає в тому, щоб використовувати невелику кількість дуже швидких чіпів пам'яті як буфер або кеша між оперативної пам'яті і процесора. Всякий раз, коли процесор повинен прочитати дані, він виглядає в цій області кеша в першу чергу. Якщо він знаходить дані в кеші, то це зараховується як "кеші" і процесором не потрібно йти через більш трудомісткий процес зчитування даних з основної пам'яті. Тільки якщо дані не в кеші це потрібно, щоб отримати доступ до основної пам'яті, але в процесі того, що копіює все, що він знаходить в кеш, таким чином, що вона є готовий наступного разу це необхідно. Весь процес контролюється групою логічних схем під назвою кеш-контролер.
Один з головних завдань кеш-контролер є дбати "когерентності кеша", що означає забезпечення того, щоб будь-які зміни, записані в основній пам'яті відображаються в кеші, і навпаки. Є кілька методів для досягнення цієї мети, найбільш очевидні з яких для процесора писати прямо як в кеш-пам'яті і основної пам'яті, в той же час. Це відомо як «наскрізний записи" кеш і безпечним рішенням, але і самий повільний.
Основний альтернативою є "зворотного запису" кеш, який дозволяє процесору записати зміни тільки в кеш, а не в основній пам'яті. Записів кешу, які були змінені з позначкою «брудні» говорить кеш-контролер, щоб написати їх вміст назад в основну пам'ять, перш ніж використовувати простір для кешування нових даних. Кеш зі зворотним записом прискорює процес запису, але вимагає більш інтелектуальний контролер кеша.
Більшість кеш-контролери переміщення "лінію" даних, а не тільки одного елемента кожен раз, коли вони повинні передавати дані між основною пам'яттю і кеш-пам'яті. Це веде до поліпшення шансів на кеші оскільки більшість програми проводять свій час покрокового команд, що зберігаються в пам'яті послідовно, а не стрибаючи з одного району в інший. Обсяг даних, переданих кожен раз відомий як "розмір рядка».
đang được dịch, vui lòng đợi..
