24.12.2023

Как увеличить кэш диска за счет ОЗУ? Оптимизация работы жесткого диска Кэш жесткого диска в оперативной памяти


Хочу сразу сказать, что это не тупо мое мнение или мне кажется то, что дополнительный кэш ускоряет диск, так оно и есть на самом деле (недаром пользуюсь уже два года примерно). Но обо всем по порядку. Во-первых жесткий диск на самом деле не ускоряется, просто процесс работы Windows с файловой системой оптимизируется по максимуму.

Кэш есть кэш. Данные которыми вы пользовались недавно заносятся в него, программы которые ведут активную работу с файлами — в большинстве случаев записывают в кэш, он уже в определенный интервал скидывает их на жесткий диск. Этот процесс в новой версии софта уже НЕ глючит, то есть все проходит плавно (при использовании режима Idle-Flush).

Про утилиту PrimoCache

Я вот почему рассказываю об этой утилите, она кстати называется PrimoCache, и я ей пользуюсь с первой ее версии, и на сегодня она уже ну очень здорово усовершенствовалась.

Еще раз, это программное решение кэша выполнено в виде драйвера. Сам кэш создается из оперативной памяти, то есть чтобы его сделать у вас должно быть ее как бы немало, ну 4-8 гб хотя бы.

Программа НЕ бесплатная, но можно пользоваться 60-дней бесплатно, впрочем кому она реально станет очень полезной, то обойдут это ограничение не взламывая саму программу

Не знаю, стоит ли этот кэш ставить чтобы улучшить производительность игр — тут я не знаю, потому что они данные загрузили в оперативку и работают с ними. В игре я заметил вот что — первый раз уровень игры загружался как обычно, а потом, после получаса игры все уже как бы быстрее работало, прорисовывалось. Но файловая система вообще мало влияет на игру, тут только загрузка может увеличится, в игре важна видеокарта в первую очередь.

Особенности программы PrimoCache

В общем, не буду долго расписывать, а напишу все особенности программы в виде списка, так думаю будет удобнее.

  • Как я уже писал, для работы нужно немного свободной оперативки, хотя бы 1-2 Гб. Это позволит снять пиковые кратковременные нагрузки на жесткий диск, например одна из таких нагрузок может быть открытие кучу вкладок в браузере. Что это вообще происходит? Каждая вкладка, это страница и в ней есть картинки, скрипты ну и еще какие-то элементы. Почти все браузеры это кэшируют, так вот, все это записывается на жесткий диск, а это все мелкие файлы (!), и вот куча вкладок и создает процесс записи большого количества мелких файликов на диск! Когда есть кэш PrimoCache, то он принимает нагрузку эту всю на себя, а скорость работы оперативки куда выше чем жесткого диска, в итоге браузер работает немного быстрее.
  • По поводу кэширования Windows. Да, тут я не спорю, она также отлично кэширует, но делает она это куда проще — просто кэшируя файлы! А PrimoCache кэширует блоки файлов и ему все равно что это за блоки — просто программа какая-то или системные данные/библиотеки.
  • Риск потерять данные есть, но в новых версиях PrimoCache есть алгоритм работы такой, при котором данные будут скидываться в режиме простоя и постепенно. Тем не менее, если поставить интервал например 4 секунды, то сбрасывать данные будут почти сразу и при этом не мешая другим программам работать с диском. В общем у меня не было еще такого, чтобы я потерял данные, хотя использую утилиту около двух лет.
  • Еще одно преимущество такого кэша в том, что если система с таким кэшем работает уже долго, то все основные данные уже будут кэшированы. Если нужно будет открыть программу, которую вы НЕ открывали и разумеется ее в кэше НЕТ, то она откроется БЫСТРЕЕ, так как этому процессу никакие обращения к диску мешать НЕ будут, ибо все они будут кэшированы.
  • Драйвер программы (это и есть основной механизм) не нагружает процессор вообще, сколько я не тестировал и не проверял — нагрузки нет при любом обьеме.
  • При выключении Windows кэш будет также автоматически сбрасываться на диск, и только потом уже система выключится.
  • В качестве кэша также можно использовать SSD-накопитель, что даже плюс, так как в режиме постоянного плавного сброса можно использовать какой-то дешевый SSD, а потом если что — заменить. Но SSD дешевле да и больше обьем, чем у оперативки, и при этом обьема хватит чтобы кэшировать почти все то, чем вы пользуетесь ежедневно. Если использовать SSD-кэш на 128 Гб например, то вообще вы редко будете замечать скорость работы файловой системы, сопоставимую с жестким диском.
  • Программа работает стабильно — никаких глюков мной выявлено не было вообще, то есть не было такого что она зависала, даже в первое версии утилиты.
  • Те кто часто работают с виртуальными машинами, как например я, реально смогут оценить эффект от PrimoCache, который будет кэшировать в том числе блоки виртуального жесткого диска, что в свою очередь очень ускоряют файловую систему виртуальной машины (я лично пользуюсь VMware, но в VirtualBox думаю также ускорит). Кстати с таким кэшем, виртуальная машина в спящий режим переходит мгновенно.
  • Также эффект очень заметен при установке программ. Любая программа, особенно тяжелая со многими установочными файлами, папками, будет установлена намного быстрее с таким кэшем, чем без него (опять же, при установке записываются очень много мелких файлов на диск!). Я лично проверял на офисном пакете от Microsoft и OpenOffice.

Ну, примерно так все, еще раз напишу я программу не рекламирую, просто лично для меня она ну очень полезной оказалась.

Установка PrimoCache

Вроде бы все что нужно уже написал и можно приступать к установке, ничего сложного тут нет, переходим на эту страничку и оттуда скачиваем последнюю версию супер программки для ускорения жесткого диска.


У нас это версия v2.2.0, выбираем Desktop Edition, разницы с серверной версией почти нет, там она только в кэше который создается то ли для всех разделов, то ли для одного, честно говоря не помню, серверную лучше использовать на серверах Ну и еще одно отличие в поддержке, серверная как я понимаю имеет другой уровень поддержки как и совсем другую цену за лицензию.

В общем распаковали архив с утилитой, запускаем ее. Как обычно, нажимаем Next, потом принимаем лицензионное соглашение, снова Next, путь установки без причины не меняем:


Ну и снова Next В общем с установкой у вас проблем возникнуть не должно, все предельно просто. Я не написал еще одно, программа на английском, но уверяю вас что в ней вы сможете разобраться без проблем! Я же как-то разобрался, хотя и плохо знаю английский

После установки программы нужно будет перезагрузится.


В общем, я сделал перезагрузку, наверно вы тоже ну или читаете дальше, в общем проблем нет — все работает, драйвер уже в работе, но кэш для жесткого диска еще нужно настроить.

На рабочем столе будет ярлык PrimoCache, запускаем его и видим вот такой интерфейс программы:


Вверху кнопки, а внизу будет отображен статус работы. Чтобы создать кэш, нужно нажать на первую верхнюю кнопку с зелененьким плюсиком.

Теперь давайте создадим кэш, у меня на компе 2 Гб ОЗУ, что не так много, но любой кэш если и не будет ускорять жесткий диск, то точно продлит срок службы его, избавляя от многочисленных однотипных запросов к нему.

Итак первое, что вам нужно — это указать для какого диска вы хотите создать кэш. Сразу скажу, что вы можете не заморачиваться и выбрать все диски — то есть поставить везде главные галочки, вот тут:


Ну, если у вас там жестких дисков несколько, то и галочек будет несколько

Выбрали диски, нажимаем Next. Тут нужно выбрать стратегию — то есть какой режим кэша для жесткого диска вы хотите? Давайте я перечислю какие они могут быть.


Нажимаем Next, теперь уже будет открыто главное окно настроек. Теперь смотрите, перед тем как настраивать, давайте немного разберемся — сколько нужно отводить памяти для такого кэша жесткого диска?

  • Если у вас современная версия Windows, а это я имею ввиду семерка, восьмерка или десятка, то считаем так. Минимум откидываем 1 Гб на саму Windows, потом если у вас есть какие-то ресурсоемкие программы, то они тоже могут потребовать 1-2 Гб ОЗУ. Если у вас например 8 Гб, то можете дать на кэш 2 Гб или даже 4 Гб в зависимости от того, что вы делаете на компе.
  • Если у вас Windows XP, то на нее и на все программы думаю хватит 2 Гб, а остальное можно кинуть на кэш. В любом случае, не старайтесь задать тот размер, который программа не разрешает, это просто приведет к диким тормозам, так как начнет активно работать своппинг — то есть файл подкачки (из-за нехватки оперативки).
  • Сделайте так — запустите комп, включите все нужные программы, и потом уже задавайте кэш из той памяти, которая осталась.
  • У меня лично 8 Гб ОЗУ, и из них 4 Гб я выделил под кэш, так как мне важна быстрая работа виртуальной машины, при этом что-то ресурсоемкое чем офис я не запускаю.

В общем вы можете спокойно поэкспериментировать, даже минимальный кэш для жесткого будет очень полезным, так как ему будет просто легче работать.

Итак, как вы уже поняли, кэш задается вот тут:


Теперь настройки справа, там будет такое как Block Size, его нужно выставить таким, как у вашего жесткого диска, то есть я имею ввиду размер кластера. Если вы не знаете какой — не беда, пропускайте этот шаг, так как после запуска кэша будет инфа о том, какой у вас кластер и потом сможете изменить.

Cache Strategy — это выбор стратегии, но мы уже выбрали и другой тип использовать я не рекомендую, вам вряд ли он будет эффективнее.

Опция Enable Defer-Write. Это очень и очень важная опция, тут вы указываете через сколько секунд сбрасывать кэш на жесткий диск, по умолчанию стоит 10 секунд, можете это время не трогать, а можете установить меньше в целях безопасности. У меня стоит 8 секунд.

Теперь напротив этой опции будет кнопка, она означает за метод скидывания данных, вот эта кнопка:

Вот там есть меню Write Mode, в котором есть пять режимов, вы можете поэкспериментировать с ними, а можете сразу выставить тот, который советую я — это Idle-Flush. В этом режиме данные будут скидываться в то время, когда диск особо ничем не занят, и при этом скидываться будут не на полную скорость, чтобы не забивать скорость самого диска. Тип Native это просто чистый режим, то есть данные просто будут записываться через каждый указанный вами промежуток времени. Есть еще режим Intelligent, я его также пробовал и там также могут быть тормоза системы, в общем мне понравился только Idle-Flush.

Но почему могут быть тормоза системы при некоторых режима? Дело в том, что когда приходит время скидывания данных, то PrimoCache их записывает на диск с максимальной скоростью. А это может тупо забить диск и он будет в это время очень медленно работать, это время конечно будет очень малым, но все же это было основной проблемой первой версии программы, потом уже исправили.


Еще нужная опция это Free Cache on Written — очистка кэша, который был занят данными для записи. То есть те данные, которые были записаны в кэш, а потом уже на физический диск, то в кэше они уже будут удалены, так как просто не нужны. Это не относится к данным чтения. Эту галочку лучше включить.

Опция Flush on Sleep нужна для того, чтобы скидывать кэш перед переходом в режим сон.

Еще есть опция Prefetch Last Cache, это чтобы данные, которые были при выключении Windows, потом при включении автоматически заносились в кэш. С одной стороны опция полезна, а с другой, при старте Windows она и так что-то загружает, включает, в общем и при этом еще будет работать кэш, который возможно будет восстанавливать в кэш уже полу-просроченные данные или просто неактуальные. Эту опцию лично я не включал, можете попробовать

В общем я создал кэш на 256 мб, это тоже хорошо, в любом случае ЛУЧШЕ чем его нет, особенно если у вас старенький жесткий диск как у меня, моему то лет десять уже


Теперь можно нажать два раза по кэшу и выставить уже тот размер кластера, который у вашего жесткого диска (именно он и показан напротив раздела в созданном уже кэше!), то есть 4 кб в моем случае.


Внизу программы вы можете посмотреть статистику работы, в основном важны два параметра, это:

  • Deferred Blocks, тут будет указано количество блоков, которые в кэше и которых еще нет на жестком диске, но после того как они будут записаны, то тут цифра будет уменьшаться до нуля.
  • Free Cache — сколько свободного кэша у вас есть, то есть можно понять сколько примерно данных уже кэшировано.

Другие параметры уже не столь важны, самое главное чтобы не очень много было блоков Deferred Blocks, то есть этим хочу сказать чтобы указанный интервал был достаточный для того, чтобы там регулярно проводилось скидывание данных. Чтобы вы ничего не потеряли, мало ли, если свет выключится или зависнет Windows, ну, много может быть вариантов. Если у вас ИБП, то вообще супер, можно поставить хоть минуту. Но у меня есть ИБП, но все равно стоит 8 секунд


Вверху будет кнопка дополнительных настроек:


Можно включить опцию Launch PrimoCache GUI application at Windows startup — чтобы после включения Windows запускалась программа уже с открытым главным окном статистики, а также может вам будет интересна опция Minimize to the system tray when closed — это чтобы при закрытии главного окна она переходила в трей и там сидела со своим значком Остальные опции лучше не трогать.

А теперь еще кое о чем, я не советую при таком кэше использовать спящий режим, все таки не знаю насколько это стабильно будет все работать, лично я ни разу не пользовался спящим режимом. С опцией предварительной загрузки вы можете поэкспериментировать, если у вас ноутбук и вы просто сидите в интернете, пользуетесь браузерами, то вполне возможно что эта опция будет вам нужной. Вы включили ноутбук, загрузилась Windows, и уже скоро все данные в кэше. Все ваши браузеры откроются мгновенно, и остальные программы.

Ну и еще, если у вас очень большой кэш, например 8 Гб, то лучше не рисковать и выставить небольшой интервал скидывания данных, например десять секунд. Для надежной работы при использовании большого времени задержки работы Defer-Write для стационарного компьютера для безопасности от потери данных при внезапном отключении питания необходимо использовать UPS!

Ну, на этом все, надеюсь что вам статья была интересной и полезной, и вы может быть решили задачу о том, как ускорить жесткий диск хоть немного

15.01.2016

Кэш память – это сверх быстрая память, которая по сравнению с оперативной памятью имеет повышенное быстродействие.

Кэш память дополняет функциональное значение оперативной памяти.
При работе компьютера все вычисления происходят в процессоре, а данные для этих вычислений и их результаты хранятся в оперативной памяти. Скорость работы процессора в несколько раз превосходит скорость обмена информацией с оперативной памятью. Учитывая, что между двумя операциями процессора может выполняться одна или несколько операций с более медленной памятью, получаем, что процессор должен время от времени простаивать без работы и совокупная скорость компьютера падает.

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

Кэш память процессора выполняет примерно ту же функцию, что и оперативная память. Только кэш - это память встроенная в процессор и потому быстрее оперативной памяти, отчасти благодаря своему положению. Ведь линии связи, идущие по материнской плате, и разъем пагубно влияют на скорость. Кэш современного персонального компьютера расположен прямо на процессоре, благодаря чему удалось сократить линии связи и улучшить их параметры.

Кэш-память используется процессором для хранения информации. В ней буферизируются самые часто используемые данные, за счет чего, время очередного обращения к ним значительно сокращается.

Во всех современных процессорах имеется кэш (по-английски - cache) - массив сверхскоростной оперативной памяти, являющейся буфером между контроллером сравнительно медленной системной памяти и процессором. В этом буфере хранятся блоки данных, с которыми CPU работает в текущий момент, благодаря чему существенно уменьшается количество обращений процессора к чрезвычайно медленной (по сравнению со скоростью работы процессора) системной памяти.

Тем самым заметно увеличивается общая производительность процессора.
При этом в современных процессорах кэш давно не является единым массивом памяти, как раньше, а разделен на несколько уровней. Наиболее быстрый, но относительно небольшой по объему кэш первого уровня (обозначаемый как L1), с которым работает ядро процессора, чаще всего делится на две половины - кэш инструкций и кэш данных. С кэшем L1 взаимодействует кэш второго уровня - L2, который, как правило, гораздо больше по объему и является смешанным, без разделения на кэш команд и кэш данных.

Некоторые десктопные процессоры, по примеру серверных процессоров, также порой обзаводятся кэшем третьего уровня L3. Кэш L3 обычно еще больше по размеру, хотя и несколько медленнее, чем L2 (за счет того, что шина между L2 и L3 более узкая, чем шина между L1 и L2), однако его скорость, в любом случае, несоизмеримо выше, чем скорость системной памяти.

Кэш бывает двух типов: эксклюзивный и не инксклюзивный кэш. В первом случае информация в кэшах всех уровней четко разграничена - в каждом из них содержится исключительно оригинальная, тогда как в случае не инксклюзивного кэша информация может дублироваться на всех уровнях кэширования. Сегодня трудно сказать, какая из этих двух схем более правильная - и в той, и в другой имеются как минусы, так и плюсы. Эксклюзивная схема кэширования используется в процессорах AMD, тогда как не эксклюзивная - в процессорах Intel.

Эксклюзивная кэш-память

Эксклюзивная кэш-память предполагает уникальность информации, находящейся в L1 и L2.
При считывании информации из ОЗУ в кэш - информация сразу заносится в L1. Когда L1 заполнен, то, информация переносится из L1 в L2.
Если при считывании процессором информации из L1 нужная информация не найдена, то она ищется в L2. Если нужная информация найдена в L2, то кэши первого и второго уровня обмениваются между собой строками (самая "старая" строка из L1 помещается в L2, а на ее место записывается нужная строка из L2). Если нужная информация не найдена и в L2, то обращение идет к оперативной памяти.
Эксклюзивная архитектура применяется в системах, где разность между объемами кэшей первого и второго уровня относительно невелика.

Инклюзивная кэш-память

Инклюзивная архитектура предполагает дублирование информации, находящейся в L1 и L2.
Схема работы следующая. Во время копирования информации из ОЗУ в кэш делается две копии, одна копия заносится в L2, другая копия - в L1. Когда L1 полностью заполнен, информация замещается по принципу удаления наиболее "старых данных" - LRU (Least-Recently Used). Аналогично происходит и с кэшем второго уровня, но, поскольку его объем больше, то и информация хранится в нем дольше.

При считывании процессором информации из кэша, она берется из L1. Если нужной информации в кэше первого уровня нет, то она ищется в L2. Если нужная информация в кэше второго уровня найдена, то она дублируется в L1 (по принципу LRU), а затем, передается в процессор. Если нужная информация не найдена и в кэше второго уровня, то она считывается из ОЗУ.
Инклюзивная архитектура применяется в тех системах, где разница в объемах кэшей первого и второго уровня велика.

Однако Кэш-память малоэффективна при работе с большими массивами данных (видео, звук, графика, архивы). Такие файлы просто не помещаются в КЭШ, поэтому все время приходится обращаться к оперативной памяти, или даже к HDD. В таких случаях все преимущества исчезают.Потому-то бюджетные процессоры (например, Intel Celeron) с урезанным КЭШем так популярны, что на производительность в мультимедийных задачах (связанных с обработкой больших массивов данных) объем КЭШа сильно не влияет, даже несмотря на урезанную частоту работы шины Intel Celeron.

Кэш-память на жестком диске

Как правило, на всех современных жестких дисках есть собственная оперативная память, называемая кэш-памятью (cache memory) или просто кэшем. Производители жестких дисков часто называют эту память буферной. Размер и структура кэша у фирм-производителей и для различных моделей жестких дисков существенно отличаются.

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

Обычно кэш память используется как для записи данных так и для чтения, но на SCSI дисках иногда требуется принудительное разрешение кэширования записи, так обычно по умолчанию кэширование записи на диск для SCSI запрещено. Хоть это и противоречит вышесказанному, но размер кеш-памяти не является решающим для повышения эффективности работы.

Более важна организация обмена данными с кэшем для увеличения производительности диска в целом.
Кроме этого на производительность в целом влияет алгоритмы работы управляющей электроники, предотвращающие ошибки при работе с буфером (хранение неактуальных данных, сегментирование и т.д.)

В теории: чем больше будет объем кеш памяти, тем выше вероятность, что необходимые данные находятся в буфере и не нужно будет «беспокоить» жесткий диск. Но на практике случается, что диск с большим объемом кэш-памяти мало чем отличается по производительности от жесткого диска с меньшим объемом, такое случается при работе с файлами большого размера.

За последнее десятилетие само понятие компьютера изменилось очень сильно, но не от всех узких мест пока что получилось избавиться. Одно из таких бутылочных горлышек - жёсткий диск. Это его трудами операционная система часто не может загрузиться с холодного старта за 10 секунд. Есть, конечно, SSD, но использовать его как основное хранилище сложно из-за небольшого объёма. И получается что даже SSD не может сломать современную архитектуру: есть медленное хранилище и быстрая оперативная память.

Оперативная память хоть и быстрая, но энергозависимая. Жесткий диск надёжный, энергонезависимый, но медленный. А вот SSD и быстрее жёского диска и энергонезависимый. В будущем SSD (или его преемник) просто обязан заменить собой и оперативную память и жёсткий диск, а пока же при его помощи можно значительно ускорить работу компьютера.

В домашних компьютерах SSD уже не редкость. Часто на нём создают системный раздел, ставят на него ОС и тяжёлый софт (говорят, даже фотошоп начинает летать), а музыку и фильмы продолжают хранить на жёстком диске.

В серверах, когда надо чтобы база данных работала очень быстро, а в память её загнать уже нельзя, можно заказать себе в качестве носителя SSD и база оживает. Пока место на SSD не закончится. И начинается заказ хитрых RAID-массивов или сбор кластера.

В 2011 году компания Intel представила жаждущим до скорости людям технологию под названием Smart Response Technology (SRT), использующую SSD как кеширующий буфер между оперативной памятью и жёстким диском. Можно использовать SSD объемом до 64Гб, и кешируются не сами файлы, а запрашиваемые логические блоки с жёсткого диска, а если SSD вдруг заполнится, то ячейки, к котором давно не обращались, начнут заполняться новыми данными. Поступает этот SRT прямо как линукс с оперативной памятью, молодец.

Если с чтением всё понятно, то с записью дела обстоят интереснее и есть два режима использования: максимально быстрый и расширенный. В расширенном режиме данные записываются одновременно и на SSD, и на жёсткий диск. Этот режим медленнее первого, но надёжен и гарантирует, что данные будут сохранены на жёстком диске, что бы ни случилось. Естественно, данные сохраняются и на SSD и при последущем обращении, система их получает очень быстро.

В оптимизированном для скорости режиме данные сначала сохраняются на SSD, а на жёсткий диск с задержкой, когда для этого будет подходящий момент (называется «отложенная запись»). В этом режиме скорость сохранения данных ограничивается только скоростью записи на SSD, но целостность данных не гарантируется - в процессе записи может выключиться электричество (что для ноутбуков неактуально) или, вдруг, SSD выйдет из строя, и в таком случае часть данных, которая не успела записаться на жёсткий диск, будет утеряна. По поведению этот режим лично мне напоминает Redis : быстрый, умный и достаточно надёжный, но пользоваться надо с умом.

Кеширование реализовано через RAID-массив, в который в биосе надо добавить жёсткий диск и SSD, причём SSD надо явно указать как кеширующее устройство. Такая опция есть в биосе на материнских платах с чипсетом Z68.

В биосе кеширование надо только включить, а после этого можно сразу же забыть, как попасть в это страшное место. Intel делает продукты для людей, поэтому настраивается кеширование уже в самой системе при помощи простой графической утилиты:

Если в процессе работы SSD вдруг выйдет из строя, то, если не было операций записи в быстром режиме, пользователь ничего не заметит: SSD отвалится совершенно прозрачно, и всё просто начнёт работать очень медленно, будет всего лишь ощущение перехода с lan на dial-up.

Но использование только скорости чтения/записи SSD было бы кощунством, второй огромный бонус скрыт в энергонезависимости. Это значит, что после перезагрузки данные как были в кеше, так там и останутся, и если вы часто запускаете фотошоп, то долго он запускаться будет только в первый раз, а потом уже всегда быстро, даже после перезагрузок.

Есть прекрасное видео, где видно «незначительный» прирост скорости от использования Smart Response Technology:

Если вы хотите узнать, что такое кэш-память жесткого диска и как она работает, эта статья для вас. Вы узнаете, что это такое, какие функции он выполняет и как влияет на работу устройства, а также о достоинствах и недостатках кэша.

Понятие кэш-памяти жесткого диска

Жесткий диск сам по себе - довольно неторопливое устройство. По сравнению с оперативной памятью, жесткий диск работает на несколько порядков медленнее. Этим же обуславливается падение производительности компьютера при нехватке оперативной памяти, так как недостача компенсируется жестким диском.

Итак, кэш-память жесткого диска — это своеобразная оперативная память. Она встроена в винчестер и служит буфером для считанной информации и последующей передачи его в систему, а также содержит наиболее часто используемые данные.

Рассмотрим, для чего нужна кэш-память жесткого диска.

Как было отмечено выше, чтение информации с жесткого диска происходит весьма неторопливо, так как движение головки и нахождение необходимого сектора занимает много времени.

Необходимо уточнить, что под словом "медленно" имеются в виду миллисекунды. А для современных технологий миллисекунда - это очень много.

Поэтому, как и кэш жесткого диска хранит в себе данные, физически прочитанные с поверхности диска, а также считывает и хранит в себе секторы, которые вероятно будет запрошены позднее.

Таким образом уменьшается количество физических обращений к накопителю, при этом увеличивается производительность. Винчестер может работать, даже если хост-шина не свободна. Скорость передачи может увеличиваться в сотни раз при однотипных запросах.

Как работает кэш-память жесткого диска

На этом остановимся подробнее. Вы уже примерно представляете, для чего предназначена кэш-память жесткого диска. Теперь выясним, как она работает.

Представим себе, что жесткому диску приходит запрос на считывание информации в 512 КБ с одного блока. С диска берется и передается в кэш нужная информация, но вместе с запрашиваемыми данными заодно считывается несколько соседних блоков. Это называется предвыборкой. Когда поступает новый запрос на диск, то микроконтроллер накопителя сначала проверяет наличие этой информации в кэше и если он находит их, то мгновенно передает системе, не обращаясь к физической поверхности.

Так как память кэша ограничена, то самые старые блоки информации заменяются новыми. Это круговой кэш или цикличный буфер.

Методы повышения скорости работы жесткого диска за счет буферной памяти

  • Адаптивная сегментация. Кэш-память состоит из сегментов с одинаковыми объемами памяти. Так как размеры запрашиваемой информации не могут постоянно быть одинакового размера, то многие сегменты кэша будут использоваться нерационально. Поэтому производители начали делать кэш-память с возможностью замены размеров сегментов и их количества.
  • Предвыборка. Процессор винчестера анализирует запрошенные ранее и запрашиваемые на текущий момент данные. На основе анализа он переносит с физической поверхности информацию, которая с большей долей вероятности будет запрошена в следующий момент времени.
  • Контроль пользователя. Более продвинутые модели жестких дисков дают возможность пользователю контролировать выполняемые операции в кэше. Например: отключение кэша, установление размера сегментов, переключение функции адаптивной сегментации или отключение предвыборки.

Что дает устройству больший объем памяти кэша

Теперь узнаем какими объемами оснащают и что дает кэш-память в жестком диске.

Чаще всего можно встретить винчестеры с объемом кэша в 32 и 64 МБ. Но остались еще и на 8 и 16 МБ. В последнее время стали выпускаться лишь на 32 и 64 МБ. Значительный прорыв в быстродействии произошел, когда вместо 8 МБ стали использовать 16 МБ. А между кэшами объемом в 16 и 32 МБ особой разницы уже не чувствуется, как и между 32 и 64.

Среднестатистический пользователь компьютера не заметит разницы в производительности винчестеров с кэшем в 32 и 64 МБ. Но стоит отметить, что кэш-память периодически испытывает значительные нагрузки, поэтому лучше приобретать винчестер с более высоким объемом кэша, если есть финансовая возможность.

Основные достоинства кэш-памяти

Кэш-память имеет много достоинств. Мы рассмотрим лишь основные из них:


Недостатки кэш-памяти

  1. Не увеличивается скорость работы винчестера, если данные записаны на дисках случайным образом. Это делает невозможным предвыборку информации. Такой проблемы можно частично избежать, если периодически проводить дефрагментацию.
  2. Буфер бесполезен при чтении файлов, объемом большим, чем может поместиться в кэш-память. Так, при обращении к файлу размером в 100 МБ, кэш в 64 МБ будет бесполезен.

Дополнительная информация

Вы теперь знаете, жесткого диска и на что влияет. Что еще необходимо знать? В настоящее время существует новый тип накопителей - SSD (твердотельные). В них вместо дисковых пластин используется синхронная память, как во флешках. Такие накопители в десятки раз быстрее обычных винчестеров, потому наличие кэша бесполезно. Но и такие накопители имеют свои недостатки. Во-первых, цена таких устройств увеличивается пропорционально объему. Во-вторых, они имеют ограниченный запас цикла перезаписи ячеек памяти.

Еще существуют гибридные накопители: твердотельный накопитель с обычным жестким диском. Преимуществом является соотношение высокой скорости работы и большим объемом хранимой информации с относительно низкой стоимостью.


© 2024
maccase.ru - Android. Бренды. Железо. Новости