Що таке дисковий кеш?

click fraud protection

Існує два основних класи кешу: кеш читання та кеш запису. Кеш читання — це інструмент, який забезпечує швидкий доступ до даних, доступ до яких інакше був би повільним. Кеш запису — це інструмент, який створює ілюзію високої швидкості запису, зазвичай приховуючи від користувача справжню повільну швидкість пристрою пам’яті.

Структура кешу

Як правило, кеш-пам’ять зберігається на один рівень пам’яті нижче фактичних даних. Однак дані з одного кешу можуть бути додатково кешовані на наступному рівні пам’яті. Існує чотири рівні пам’яті, причому кеш/реєстри процесора є найнижчим і найшвидшим рівнем, а архівне сховище – найвищим і найповільнішим рівнем. Від найнижчого до найвищого рівнів належать кеш/реєстри ЦП, системна оперативна пам’ять, накопичувачі та архівне сховище.

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

Примітка: Певною мірою хмарне сховище можна вважати різновидом архівного сховища. Він дуже багато в Інтернеті, але не обов'язково доступний відразу і, як правило, повільний для доступу. Змінні носії, такі як пам’ять USB, також дещо перетинають межу між накопичувачем і архівним сховищем.

Типи дискового кешу

Дисковий кеш відноситься до будь-якого кешу на «диску», тобто до накопичувачів, таких як SSD та HDD. Є три типи дискового кеша. Кеш читання передбачатиме тимчасове копіювання деяких даних з архівного сховища, щоб зробити доступ швидшим, поки це необхідно. Кеш запису може мати форму кешу SLC на SSD. Кеш вводу/виводу, як правило, — це флеш-пам’ять або DRAM, які використовуються для кешування операцій читання та запису. Визначальною особливістю всіх цих є те, що кеш знаходиться на самому диску.

Прочитати дисковий кеш

Версія кеша читання дискового кешу, ймовірно, найменш використовуваний тип дискового кешу. Архівне зберігання, за самим визначенням, рідко потрібне. Дані також можна зчитувати безпосередньо з архівних носіїв. Проблема в швидкості. Час доступу повільний, оскільки дані знаходяться в автономному режимі, тому потрібно ідентифікувати та підключити відповідний пристрій зберігання даних. Швидкість читання залежить від архівного носія, але, як правило, буде достатньою для більшості випадків. Але може бути не ідеальним для вимог до високої пропускної здатності, наприклад для перегляду відео високої чіткості. У цих сценаріях кеш-пам’ять диска для читання можна використовувати для кешування копії відеофайлу на носії даних, який може відтворювати його в режимі реального часу.

Записати дисковий кеш

Сучасні твердотільні накопичувачі надзвичайно швидкі, пропонуючи неймовірно високу швидкість читання та запису. Можливо, ви не усвідомлюєте, що технічно це неправда. Більшість твердотільних накопичувачів на ринку — це TLC, або тришарові комірки. Це означає, що кожна комірка пам'яті може зберігати три біти даних. Хоча це забезпечує втричі більшу щільність зберігання, ніж необроблені SLC (одношарові комірки) з одним бітом на комірку, це також набагато повільніше.

Порада: Спалах TLC все ще швидкий. Це у багато разів швидше, ніж пікова пропускна здатність шини SATA 3, яка використовується жорсткими дисками та ранніми SSD. Флеш-пам’ять QLC або Quad Level Cells навіть повільніші, у деяких тестах насправді працюють повільніше, ніж жорсткі диски.

SLC-кеш був винайдений, щоб приховати повільну швидкість запису від користувача. SLC-кеш просто обробляє флеш-пам’ять TLC як флеш-пам’ять SLC, дозволяючи їй працювати на підвищених швидкостях. Дані, записані в SLC-кеш, потім внутрішньо копіюються у формат TLC настільки швидко, наскільки це дозволяє швидкість запису. Ця техніка працює чудово, пропонуючи зростаючі швидкості, що зумовило необхідність розробки нових, швидших стандартів.

Однак кеші SLC мають деякі застереження. Розмір кешу SLC становить 1/3 вільного місця, що залишилося на SSD. Коли SSD заповнюється, розмір кешу SLC зменшується. Це не така велика проблема на великих порожніх дисках, але може виникнути на SSD меншого або близького об’єму. Коли кеш SLC заповнюється, користувач бачить, що швидкість запису різко падає, оскільки він піддається справжньому режиму запису TLC.

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

Кеш диска введення/виведення

Як правило, жорсткі диски працюють досить повільно, навіть при оптимальному робочому навантаженні. Щоб максимально приховати це від користувача, можна використовувати кеш введення/виведення. Кеш вводу/виводу кешує як операції читання, так і запису за потреби. Цей кеш зазвичай складається з флеш-пам’яті або DRAM у самому накопичувачі. Ємність зазвичай низька, хоча клас SSHD або твердотільних гібридних накопичувачів із флеш-пам’яттю пропонує значніші можливості, хоча й не порівнянні з сучасними SSD.

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

Кеш вводу/виводу повинен ретельно збалансувати потреби функцій читання та запису, особливо коли доступний лише невеликий кеш. Більші кеші дещо нівелюють цю проблему, хоча крайові випадки з великими наборами даних все ще можуть переповнювати флеш-кеш найбільших SSHD.

Примітка: SSD технічно також можуть використовувати свою вбудовану DRAM як кеш вводу-виводу. Однак зазвичай це переважно або виключно використовується для зберігання таблиці перетворення логічної адреси у фізичну, яка використовується для пошуку даних на SSD.

Висновок

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

Кеш-пам’ять є чудовим інструментом для зручності використання, але може спричинити деякі головні болі для користувачів, коли її вичерпано. Це особливо вірно для динамічних кешів запису, таких як кеш SLC. Оскільки нетехнічні користувачі можуть не розуміти, чому їхня швидкість запису така низька, і тому не зможуть їх виправити, вирішуючи проблеми з ємністю.