Відмінності між версіями «Кеш у вінчестері»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: Буфер (кеш) жорсткого диска - це певна область, де зберігається остання використана інфор...)
 
 
(не показані 18 проміжних версій 3 учасників)
Рядок 1: Рядок 1:
Буфер (кеш) жорсткого диска - це певна область, де зберігається остання використана інформація. Наявність великої кешу значно спрощує роботу вінчестера.
+
Буфер (кеш) жорсткого диска - це певна область, де відбувається тимчасове зберігання результатів останнього читання з диска, а також превиборка інформації, на яку може бути запит дещо пізніше.<br>
Всі сучасні накопичувачі мають вбудований кеш, також званий буфером. Призначення цього кеша не таке, як у кеша процесора. Функція кеша - це буферизація між швидким і повільним пристроями. У разі жорстких дисків, кеш використовується для тимчасового зберігання результатів останнього читання з диска, а також для превиборкі інформації, яка може бути запитана дещо пізніше, наприклад, кілька секторів після поточного запитаного сектора.
+
Логіка роботи більшості вінчестерів зводиться до запису в буфер обміну не шматочка необхідної інформації, а цілком всієї доріжки або декількох доріжок відразу. І вже з буфера обміну дістається необхідна частина інформації і відправляється за призначенням.<br>
Розмір кешу вінчестера
+
Чим більше кеш пам'яті в жорсткому диску, тим більше система зможе помістити в тимчасове сховище найбільш важливої ​​інформації, тим самим, прискорюючи зчитування / відтворення в 10-1000 разів звернення до якої було вироблено повторно. Прийнято розрізняти вінчестери з кеш пам'яттю в діапазоні від 8 і до 32 мегабайт. Найбільш модернізовані SCSI диски мають кеш, що досягає обсягу в 16 мегабайт.<br>
 +
Головна причина такої важливості кешу вінчестера - це велика різниця між швидкістю роботи самого жорсткого диска і швидкістю роботи інтерфейсу жорсткого диска. При пошуку потрібного нам сектора проходять цілі мілісекунди, тому що витрачається час на пересування голівки, очікування потрібного сектора. У сучасних персональних комп'ютерах навіть одна мілісекунда це дуже багато. На типовому IDE/ATA накопичувачі час передачі 16-кілобайтного блоку даних з кеша в комп'ютер приблизно в сотні разів швидше, ніж час знаходження та зчитування його з поверхні. Ось тому всі жорсткі диски мають внутрішній кеш.<br>
 +
Інша ситуація, це запис даних на диск. Припустимо, що нам треба записати все той же 16-кілобайтний блок даних. Вінчестер миттєво перекидає цей блок даних у внутрішній кеш, і рапортує системі, що він знову вільний для запитів, паралельно з цим записуючи дані на поверхню магнітних дисків. У разі послідовного читання секторів з поверхні, кеш вже не відіграє великої ролі, тому що швидкості послідовного читання і швидкість інтерфейсу в даному випадку приблизно однакові.<br><hr>
 +
'''Рівні кеша вінчестера'''<br>
 +
[[Файл:Memory-cache.jpg |thumb|left]]
 +
Більшість жорстких дисків використовують один рівень кеш-пам'яті. Але кеш має два рівні, де рівень L1 менше і швидше, а рівень L2, трохи повільніше (але все одно швидше, ніж основна внутрішня пам'ять).<br>
 +
На прикладі бібліотеки розглянемо принцип роботи зовнішня пам'ять комп'ютера.<br>
 +
Розглянемо ящик бібліотекаря в якості кеша L1. Коли попит на книги високий, і в ящику вже досить багато книг (нема місця складати) і ймовірність того, що там знайдеться потрібна, знижується.<br>
 +
Тут і з'являється необхідність L2. Уявімо L2 як книжкову шафу біля столу бібліотекаря. Коли маленький ящик столу заповнений, бібліотекар починає ставити книги в цю шафу. І тепер, якщо книга не знайдена в ящику відразу, треба взяти її з шафи, не відходячи далеко.<br>
 +
Аналогічним чином, коли кеш L1 заповнений, дані зберігаються в L2. В першу чергу  йдезвернення до L1, якщо вони не будуть знайдені, то далы виконуэться запит до L2. Якщо там теж дані не знайдені в L2, то йде звернення до основної пам'яті.
  
І, наостанок, ще один фактор, неабиякою мірою впливає на нагрівання і надійність вінчестерів. Це розмір буфера кешу самого вінчестера. Буферна пам'ять більшості сучасних IDE-вінчестерів дорівнює 2 Мбайт, а в окремих екземплярів вже досягла і 8 Мбайт. Її розмір прямо впливає на ступінь навантаження контролера приводу головок вінчестера і, відповідно, на його нагрівання.
+
'''Принцип дії'''
  
Логіка роботи більшості вінчестерів зводиться до запису в буфер обміну не шматочка необхідної інформації, а цілком всієї доріжки або декількох доріжок відразу. І вже з буфера обміну дістається необхідна частина інформації і відправляється за призначенням. Виходячи з цього, стає ясна проблема перегріву контролера приводу головок деяких вінчестерів Quantum lct і IBM DTLA: у них не так давно був найменший в порівнянні з іншими вінчестерами розмір кеша - всього 128 Кбайт.
+
Кеш — це швидка буферна пам'ять невеликої місткості, що розташована поміж процесором і основною пам'яттю. Кеш працює на повній швидкості процесора і не пригальмовує його роботу. Кеш (cache в перекладі з англ. — тайник) лишається прозорим для програміста, тому що система інструкцій процесора, як правило, не містить команд роботи з кешем. При поясненні роботи кеша можна прийняти, що процесор також не «бачить» кеш і генерує адреси пам'яті так, ніби кеша немає. Проте кеш, як правило, існує, і на апаратному рівні перехоплює сигнали процесора читання/запис, а коли треба, то надає процесору швидкі копії інформаційних кодів, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш спроможний підмінити собою пам'ять (у понад 96-98 відсотків випадків), тоді він за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і залишається працювати на повній швидкості. Коли «підміна» пам'яті неможлива (менше від двох-чотирьох відсотків випадків), тоді кеш залучає до роботи пам'ять, обмін з якою суттєво пригальмовує процесор.
  
Давайте порівняємо, скільки разів необхідно переміститися зчитує голівці, наприклад, для перенесення файлу розміром 200 Мбайт з початку диска в кінець. При розмірі кешу 2 Мбайт - 100 раз (200:2), при 8 Мбайт - 25 разів (200:8), а при 128 Кбайт - 1600 разів (200:0,128)! Нерозумна економія на розмірі кешу привела до збільшення навантаження на контролер приводу головок вінчестера в десятки разів у порівнянні з сучасними моделями. Звідси і перегрів з усіма наслідками.
+
Усі завдання, пов'язані з перехопленням запитів від процесора на роботу із пам'яттю, вирішує частина апаратури кешу під назвою контролер кешу. Друга частина апаратури кешу містить невелику робочу пам'ять, де зберігають вміст копій комірок головної пам'яті, що брали участь в обслуговуванні останніх, тобто «найсвіжіших» запитів процесора. Важливо, що вміст комірок головної пам'яті копіюється до пам'яті кешу разом зі своїми адресами. Саме ці копійовані адреси і дозволяють контролеру кешу приймати рішення про спроможність буферної пам'яті задовольнити конкретний процесорний запит без залучення до обміну повільної головної пам'яті.
  
Щоб перевірити це умовивід, я поміряв температуру контролера приводу головок Quantum lct при перенесенні з першого диска С на останній Q трьох файлів розміром 3,2 Мбайт (0,128 х25), 12,8 Мбайт (0,128 х100) і 200 Мбайт (0,128 х1600). Вийшло якась імітація збільшення розміру кешу з 128 Кбайт до 2 і 8 Мбайт. Вона, звичайно, дає досить-таки умовне наближення до реальної ситуації зі збільшенням розміру кешу, але все одно результат вельми показовий.
+
'''Переваги''' кеша полягають в тому, що обробка даних не займає багато часу, тоді коли під час фізичного звернення до певного сектору, має пройти час поки головка диска знайде потрібну ділянку інформації і почне читання. Крім того, жорсткі диски з великим об'ємом кеша можуть значно розвантажувати процесор комп'ютера, адже для запиту інформації з кешу не потрібно фізичного звернення. Відповідно і робота процесора тут мінімальна.
 
+
 
+
 
+
 
+
Чим більше кеш пам'яті в жорсткому диску, тим більше система зможе помістити в тимчасове сховище найбільш важливої ​​інформації, тим самим, прискорюючи зчитування / відтворення в 10-1000 разів звернення до якої було вироблено повторно. Прийнято розрізняти вінчестери з кеш пам'яттю в діапазоні від 8 і до 32 мегабайт. Відповідно вінчестери з великим об'ємом кеш пам'яті коштуватимуть дорожче жорстких дисків з найменшим номіналом кеш пам'яті.
+

Поточна версія на 08:09, 18 січня 2012

Буфер (кеш) жорсткого диска - це певна область, де відбувається тимчасове зберігання результатів останнього читання з диска, а також превиборка інформації, на яку може бути запит дещо пізніше.
Логіка роботи більшості вінчестерів зводиться до запису в буфер обміну не шматочка необхідної інформації, а цілком всієї доріжки або декількох доріжок відразу. І вже з буфера обміну дістається необхідна частина інформації і відправляється за призначенням.
Чим більше кеш пам'яті в жорсткому диску, тим більше система зможе помістити в тимчасове сховище найбільш важливої ​​інформації, тим самим, прискорюючи зчитування / відтворення в 10-1000 разів звернення до якої було вироблено повторно. Прийнято розрізняти вінчестери з кеш пам'яттю в діапазоні від 8 і до 32 мегабайт. Найбільш модернізовані SCSI диски мають кеш, що досягає обсягу в 16 мегабайт.
Головна причина такої важливості кешу вінчестера - це велика різниця між швидкістю роботи самого жорсткого диска і швидкістю роботи інтерфейсу жорсткого диска. При пошуку потрібного нам сектора проходять цілі мілісекунди, тому що витрачається час на пересування голівки, очікування потрібного сектора. У сучасних персональних комп'ютерах навіть одна мілісекунда це дуже багато. На типовому IDE/ATA накопичувачі час передачі 16-кілобайтного блоку даних з кеша в комп'ютер приблизно в сотні разів швидше, ніж час знаходження та зчитування його з поверхні. Ось тому всі жорсткі диски мають внутрішній кеш.

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

Рівні кеша вінчестера

Memory-cache.jpg

Більшість жорстких дисків використовують один рівень кеш-пам'яті. Але кеш має два рівні, де рівень L1 менше і швидше, а рівень L2, трохи повільніше (але все одно швидше, ніж основна внутрішня пам'ять).
На прикладі бібліотеки розглянемо принцип роботи зовнішня пам'ять комп'ютера.
Розглянемо ящик бібліотекаря в якості кеша L1. Коли попит на книги високий, і в ящику вже досить багато книг (нема місця складати) і ймовірність того, що там знайдеться потрібна, знижується.
Тут і з'являється необхідність L2. Уявімо L2 як книжкову шафу біля столу бібліотекаря. Коли маленький ящик столу заповнений, бібліотекар починає ставити книги в цю шафу. І тепер, якщо книга не знайдена в ящику відразу, треба взяти її з шафи, не відходячи далеко.
Аналогічним чином, коли кеш L1 заповнений, дані зберігаються в L2. В першу чергу йдезвернення до L1, якщо вони не будуть знайдені, то далы виконуэться запит до L2. Якщо там теж дані не знайдені в L2, то йде звернення до основної пам'яті.

Принцип дії

Кеш — це швидка буферна пам'ять невеликої місткості, що розташована поміж процесором і основною пам'яттю. Кеш працює на повній швидкості процесора і не пригальмовує його роботу. Кеш (cache в перекладі з англ. — тайник) лишається прозорим для програміста, тому що система інструкцій процесора, як правило, не містить команд роботи з кешем. При поясненні роботи кеша можна прийняти, що процесор також не «бачить» кеш і генерує адреси пам'яті так, ніби кеша немає. Проте кеш, як правило, існує, і на апаратному рівні перехоплює сигнали процесора читання/запис, а коли треба, то надає процесору швидкі копії інформаційних кодів, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш спроможний підмінити собою пам'ять (у понад 96-98 відсотків випадків), тоді він за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і залишається працювати на повній швидкості. Коли «підміна» пам'яті неможлива (менше від двох-чотирьох відсотків випадків), тоді кеш залучає до роботи пам'ять, обмін з якою суттєво пригальмовує процесор.

Усі завдання, пов'язані з перехопленням запитів від процесора на роботу із пам'яттю, вирішує частина апаратури кешу під назвою контролер кешу. Друга частина апаратури кешу містить невелику робочу пам'ять, де зберігають вміст копій комірок головної пам'яті, що брали участь в обслуговуванні останніх, тобто «найсвіжіших» запитів процесора. Важливо, що вміст комірок головної пам'яті копіюється до пам'яті кешу разом зі своїми адресами. Саме ці копійовані адреси і дозволяють контролеру кешу приймати рішення про спроможність буферної пам'яті задовольнити конкретний процесорний запит без залучення до обміну повільної головної пам'яті.

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