Что каждый программист должен знать о памяти
Содержание:
- Что это такое — «кэш L1, L2, L3»?
- Настройки кэша в веб-обозревателях
- Что это такое
- Для чего нужен кэш в процессоре в современном мире?
- Объем кэш памяти процессора
- Остальные характеристики HDD
- Уровни кэша: L1, L2 и L3
- Иерархия памяти
- Уровни кэш-памяти процессора
- Различные типы жёстких дисков?
- История кэш-памяти
- Для чего нужен кэш, и насколько целесообразно его увеличение?
- Очистка кэша
- Кэширование на примере обычной библиотеки
- Сверхпамять
- Как очистить кэш и данные на Android
- Зачем и как чистят кэш
- Отсутствует кеш или данные не найдены
- Принцип работы жесткого диска
- Для чего нужна кэш-память процессора?
- Имеет ли значение размер кэша жёсткого диска?
- Зачем нужен кеш?
- Для чего нужна кэш-память процессора?
- Отсутствует кеш или данные не найдены
Что это такое — «кэш L1, L2, L3»?
Итак, инструкции программы попали в кэш процессора. Но тут есть собственная иерархия памяти, которая, также как и в компьютере, основывается на скорости функционирования кэша.
Получается, что кэш L1, L2, L3 — это иерархия памяти процессора
- L1 — это самый шустрый кэш процессора. В нем сохраняются те инструкции, которые могут понадобиться процессору для работы программы в любую секунду.
- L2 — это уже не такой шустрый кэш, как L1, однако он существенно превосходит его по объему. В данном кэше сохраняются инструкции, которые могут понадобиться процессору для работы программы в обозримом будущем.
- L3 — это самый медлительный и самый масштабный по объему кэш процессора. Этот тип кэша содержит в себе сведения, которые вряд ли понадобятся процессору в ближайшее время.
Наши инструкции вначале попадают в L3, потом — в L2 и в конце — в L1. Когда процессор ищет необходимые инструкции, то делает это в обратном порядке: сначала ищет в L1, потом — в L2 и в конце — в L3. Бывают случаи, когда процессор не находит необходимые инструкции в собственном кэше, тогда он делает запрос к оперативной памяти.
В общем, принцип прохождения инструкций для работы программы прост: они передаются от самой медленной памяти (hard-диск) к самой быстрой (кэш L1). А процессор посылает запросы в обратном порядке: от самой быстрой памяти к самой медленной.
Нужно отметить еще два понятия, связанных с кэшем:
- Попадание в кэш — это когда процессор находит нужные инструкции в каком-либо своем кэше: L1, L2, L3.
- Задержка — это время, необходимое процессору на поиск нужной инструкции в своем кэше. В L1 самая минимальная задержка, в L2 — больше, в L3 — еще больше, и дальше по иерархии.
Настройки кэша в веб-обозревателях
В браузерах тоже имеются настройки, относящиеся к кэшу. Соответственно, резервируемый объем можно изменить. Для этого используются соответствующие настройки. Правда, в зависимости от разработчика самого обозревателя они могут находиться в совершенно разных разделах.
Например, в старой версии «Оперы» опции выставляются в настройках истории. В новой модификации браузера следует использовать свойства ярлыка, а в пути к исполняемому файлу в поле типа объекта дописать сочетание —disk-cache-size=Объем и нужный размер кэша в килобайтах (например, для 1 Гб это будет 1073741824 Кб).
Что это такое
При выполнении любых вычислений (даже в режиме простоя компьютера, когда работают только системные службы) данные для обработки ЦП получает из оперативной памяти. Информация поступает небольшими блоками, после чего записывается промежуточный результат.
По характеристикам, а точнее скорости работы, самый медленный процессор многократно превосходит ОЗУ. В среднем, он шустрее в 15 раз. Добавьте сюда системную шину, которая может еще больше замедлять обработку данных. Получается совсем некрасивая картина: в таком режиме КПД системы слишком низок.
Хотя назначение MB — связать между собой все компоненты компа, часто рациональнее использовать дополнительную «Приблуду», которая возьмет на себя часть несвойственных функций.
Именно к таким технологиям относится кэш, который еще называют сверхоперативной памятью. Реализован он в виде отдельных микросхем типа SRAM. Благодаря такой особенности все промежуточные данные перезаписываются максимально быстро. Это благоприятно влияет на производительность работы в целом.
Для чего нужен кэш в процессоре в современном мире?
Исходя из всего написанного выше, можно заключить, что кэш нужен для того, чтобы ускорить взаимодействие между процессором и основной памятью. От скорости такого взаимодействия напрямую зависит общая производительность компьютера.
Именно поэтому многие компании процессоров улучшают архитектуру своих устройств и увеличивают объем кэша в процессоре, чтобы как можно больше было попаданий в кэш и чтобы уменьшить время задержек. По статистике, средний процент попаданий в кэш в современном процессоре составляет 94-96%. Чтобы увеличить этот процент, многие компании идут даже на эксперименты, например, компания Intel в один модельный ряд своих процессоров внедрила кэш L4, но все это пока так и осталось на уровне эксперимента.
Объем кэш памяти процессора
Кэш-память нынешних процессоров здорово увеличивает их производительность. Что такое кэш? Объясняем: кэш — это крайне быстрая память, которая помогает центральному процессору максимально быстро получить какие-либо данные, использующиеся при работе наиболее часто.
Кэш-память бывает нескольких уровней, а именно:
- кэш первого уровня. Он работает максимально быстро, однако его размер довольно строго ограничен;
- кэш второго уровня. По быстроте он немного уступает первому, однако он превосходит его по своему объему;
- кэш третьего уровня. Она, соответственно, менее быстрая, нежели память первого и второго уровня, но имеет увеличенный объем по сравнению с ними.
Даже кэш память третьего уровня работает на порядок быстрее, нежели оперативное запоминающее устройство. В данный момент объем кэш памяти третьего уровня уже достигает объема в 12-16 Мбайт. Ограничивается ее объем из-за того, что процесс ее производства очень сложен, что также сказывается и на ее стоимости.
Остальные характеристики HDD
Теперь тезисно и вкратце перечислим оставшиеся характеристики жестких дисков:
- Потребление энергии – потребляют жестки диски совсем немного. При чем, зачастую указывается максимальная потребляемая мощность, которая имеет место быть, только на промежуточных этапах работы во время пиковой загрузки. В среднем – это 1,5-4,5 Вт;
- Надежность (MTBF) – так называемое время наработки на отказ;
- Скорость передачи данных – с внешней зоны диска: от 60 до 114 Мб/c, а с внутренней – от 44,2 до 75 Мб/с;
- Количество операций ввода-вывода в секунду (IOPS) – у современных жестких дисков этот показатель составляет около 50/100 оп./c, при произвольном и последовательном доступе.
Вот мы и рассмотрели все характеристики жестких дисков с помощью небольшой серии статей. Естественно, что многие параметры пересекаются и, в некоторой мере, влияют друг на друга. Но, зато на основе информации относительно всех этих параметров, можно смоделировать для себя будущее устройство, и при выборе, четко понимать, какой из моделей следует отдать преимущество в вашем частном случае.
А вот такие игрушки могут получиться из старых жестких дисков, вернее из составляющих жесткого диска. К примеру, колеса сделаны из шпиндельного двигателя винчестера, который приводит в движение ось с головкой считывания.
Уровни кэша: L1, L2 и L3
Кэш процессора разделен на три основных уровня: L1, L2 и L3. Отличаются они скоростью доступа и размером.
- Кэш L1 (уровень 1) — это самая быстрая память которая присутствует в компьютере. С точки зрения приоритета, L1 содержит данные и команды, которые понадобятся в первую очередь. Размер обычно достигает 256 КБ, хотя некоторые топовые процессоры (типа Intel Xeon) могут иметь более 1 МБ.
- Кэш L2 (уровень 2) медленнее, но больше по размеру. Объем в диапазоне от 256 КБ до 8 МБ. Содержит данные, которые также могут скоро потребоваться, но не уместились в L1. Память первых двух уровней встроена прямо в ядро процессора. То есть, у каждого ядра она своя.
- Кэш L3 (уровень 3) — самая медленная из них, но и самая большая. Размер может достигать 62 МБ. Физически располагается внутри кристалла процессора, что позволяет обращаться к её содержимому намного быстрее, чем к ячейкам оперативной памяти.
Когда процессор ищет данные для выполнения операции, он последовательно начинает просматривать все уровни, начиная с L1 и заканчивая L3. Если поиск завершился неудачей, то приходиться обращаться к оперативной памяти, а это вызывает задержку в работе. Поэтому, чем объемней кэш, тем больше вероятность нахождения в нем нужных данных, а значит меньше задержек.
Иерархия памяти
Правила иерархии памяти очень ясны, она начинается с регистров процессора и заканчивается самой медленной из них и всегда следует одним и тем же правилам:
- Текущий уровень иерархии имеет большую емкость, чем предыдущий, но меньше, чем следующий.
- По мере удаления от ЦП задержка выполнения инструкций увеличивается.
- По мере удаления от ЦП пропускная способность данных уменьшается.
В конкретном случае уровней кэша они хранят все меньшие и меньшие части информации, но всегда содержат фрагмент следующего уровня. Таким образом, кэш L1 — это подмножество данных кэша L2, которое, в свою очередь, является надмножеством данных кеша L1 и подмножеством данных кеша L3, если таковые имеются.
Однако кэш последнего уровня, ближайший к памяти, не является подмножеством ОЗУ, а только копией страницы памяти или их набора, ближайшего к процессору.
Уровни кэш-памяти процессора
Современные процессоры, оснащены кэшем, который состоит, зачастую из 2–ух или 3-ёх уровней. Конечно же, бывают и исключения, но зачастую это именно так.
В общем, могут быть такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень). Теперь немного подробнее по каждому из них:
Кэш первого уровня (L1) – наиболее быстрый уровень кэш-памяти, который работает напрямую с ядром процессора, благодаря этому плотному взаимодействию, данный уровень обладает наименьшим временем доступа и работает на частотах близких процессору. Является буфером между процессором и кэш-памятью второго уровня.
Мы будем рассматривать объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)
Кэш второго уровня (L2) – второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.
blog comments powered by DISQUS
Различные типы жёстких дисков?
Было изобретено четыре различных типа накопителей: Serial ATA, PATA, SCSI и SSD. Самые ранние диски использовали PATA, который относится к типу интерфейса, используемого для соединения вашего компьютера с жёстким диском.
Около 40 или 80 ленточных кабелей использовались для параллельной передачи данных в 16-битные карманы. Эта система дисков PATA может быть научно обоснована для современных дисков.
Последовательный ATA или SATA
Жёсткие диски SATA теперь заменили PATA из-за его улучшенной производительности. Они могут передавать данные намного быстрее (более 150 из 600 мегабайт), в отличие от PATA (133 мегабайта), который потребляет очень мало энергии (250 мВ, чем 5 В), а кабели SATA более гибкие и тонкие.
Интерфейс малой компьютерной системы или SCSI
SCSI позволяет подключать различные периферийные устройства, такие как принтеры, жёсткие диски, компакт-диски, сканеры и многое другое. Приводы интерфейса малых компьютерных систем могут быть легко подключены как внутри, так и снаружи.
Твердотельные накопители или SSD
Твердотельные накопители — это новейшие типы накопителей, которые не состоят из движущихся частей. Это делает их менее восприимчивыми к какому-либо повреждению. Они используют микросхемы флэш-памяти вместо хранения данных и предлагают более быстрый доступ к данным. В наши дни они довольно распространены в ноутбуках. SSD-накопители также используются для мобильных переводов. Имеет общую совместимость как флешка. Используется дополнительный провод, обеспечивающий высокую совместимость с другими устройствами.
Теперь давайте продолжим и проверим типы технологий, используемых в жёстких дисках:
История кэш-памяти
Строго говоря, до того, как кэш-память перебралась на персоналки, она уже несколько десятилетий успешно использовалась в суперкомпьютерах.
Впервые кэш-память объемом всего в 16 КБ появилась в ПК на базе процессора i80386. На сегодняшний день современные процессоры используют различные уровни кэша, от первого (самый быстрый кэш самого маленького объема – как правило, 128 КБ) до третьего (самый медленный кэш самого большого объема – до десятков МБ).
Сначала внешняя кэш-память процессора размещалась на отдельном чипе. Со временем, однако, это привело к тому, что шина, расположенная между кэшем и процессором, стала узким местом, замедляющим обмен данными. В современных микропроцессорах и первый, и второй уровни кэш-памяти находятся в самом ядре процессора.
Долгое время в процессорах существовали всего два уровня кэша, но в CPU Intel Itanium впервые появилась кэш-память третьего уровня, общая для всех ядер процессора. Существуют и разработки процессоров с четырехуровневым кэшем.
Для чего нужен кэш, и насколько целесообразно его увеличение?
Начнем с того, что есть несколько видов кэша. Системный кэш, как уже понятно, используется под нужд Windows, а кэш программ предназначен для корректного функционирования приложений. Чаще всего с понятием кэша пользователи сталкиваются при работе с интернет-браузерами. Но что это такое и для чего нужно? Кэш, вне зависимости от типа, является своеобразным хранилищем временных файлов, за счет использования которых увеличивается скорость загрузки программы или открытие тех же страниц в Интернете. То есть пользователь имеет дело с неким резервируемым на жестком диске пространством, которое используется операционной системой или отдельно взятым приложением. Как увеличить системный кэш или кэш программ, пока не рассматриваем. Для начала давайте определимся, стоит ли это вообще делать? С одной стороны, нет ничего плохого в том, чтобы зарезервировать для хранения временных файлов побольше места на диске. Так думает большинство рядовых пользователей. Но на самом деле кэш можно увеличивать только до определенной степени, поскольку установка слишком большого размера приведет к тому, что системе при выполнении какой-то операции придется перебрать слишком много объектов для загрузки, пока она найдет необходимый. Соответственно, и время запуска программ существенно снизится
Кроме того, следует обратить внимание, что кэш резервируется на жестком диске, а скорость обращения к нему может существенно снижаться, например при возникновении ошибок, фрагментации файлов и т. д
Очистка кэша
С изменением размера кэша вроде бы все понятно. В завершение остается добавить, что производить очистку кэша рекомендуется если не постоянно, то хотя бы периодически, поскольку накопление временных файлов может существенно замедлять работу и системы, и программ. Производить эти действия в Windows можно путем обычной очистки системного диска, в браузерах – очисткой истории посещений, кэша и файлов Cookies.
Более удобным является использование всевозможных программ-оптимизаторов, в которых необходимо просто задействовать соответствующие модули оптимизации системы и очистки конфиденциальности в разделе выполнения проверки и устранения проблем в один клик.
Кэширование на примере обычной библиотеки
Чтобы понять основную идею рассматриваемой технологии, обратимся к простому примеру из жизни. Представим себе библиотекаря, который выдает читателям книги по их запросам. Читателю не приходится самому долгие часы бродить по гигантскому залу библиотеки и искать нужные книги.
Посетитель пришел в библиотеку и попросил выдать ему учебник по алгебре. Библиотекарь отправляется в зал, берет эту книгу с полки, возвращается на свое рабочее место и выдает книгу читателю. Проходит некоторое время и человек идет из читального зала к столу библиотекаря, чтобы вернуть книгу. Библиотекарь берет учебник и возвращает его на полку. И снова садится за свой стол, ожидая очередного читателя.
Новому посетителю может понадобиться все тот же учебник по алгебре. Библиотекарю придется снова пойти в книгохранилище, взять книгу с полки, вернуться на рабочее место и выдать ее человеку, которому она необходима.
Как мы видим на этом примере, для того чтобы выдать читателю литературу, библиотекарю приходится проделывать одну и ту же определенную последовательность действий, даже в том случае, когда речь идет о книге, которая пользуется повышенным спросом.
Есть ли способ облегчить библиотекарю его труд? Да! Для этого нужно создать «библиотечный кэш», и далее мы рассмотрим, как это сделать.
Для этого библиотекарю следует выдать сумку, в которой поместится, допустим, десять книг. В рамках компьютерной терминологии, можно сказать, что библиотекарь располагает «10-книжным кэшем». В эту сумку библиотекарь станет складывать возвращаемые ему читателями книги, но не более десяти. Это значит, что за наиболее популярными не придется каждый раз идти в хранилище, поскольку они всегда под рукой.
В начале рабочего дня «кэш-сумка» библиотекаря пуста. Приходит первый читатель и просит учебник алгебры. Библиотекарь отправляется в книгохранилище и возвращается с запрошенной книгой. Ничего нового, всё, как в предыдущем примере. Через некоторое время читатель возвращает учебник библиотекарю, но он не ставит его на полку в хранилище, а отправляет в сумку. Итак, кэш уже не пуст, в нем есть содержимое.
Приходит очередной читатель, которому необходим учебник алгебры. Вместо того, чтобы в очередной раз проделать путь от своего стола к полке, где находится книга, библиотекарь проверяет свою сумку и обнаруживает ее там. Ему достаточно извлечь книгу из сумки и выдать ее читателю. Утомительное путешествие в книгохранилище отменяется! Лишнее время не было потрачено и читатель получил книгу намного быстрее, чем в предыдущем примере.
Но может случиться так, что посетителю потребуется книга, которой в сумке нет. В этом случае кэш увеличит время поиска, поскольку библиотекарю понадобится сначала проверить свою сумку, а лишь затем (убедившись, что нужной книги там нет) отправиться в хранилище к соответствующей полке. Одна из самых сложных задач инженеров состоит в том, чтобы свести вызываемую проверкой кэша задержку к минимуму. Даже в рассмотренном нами примере, время, которое займет проверка сумки (время латентности), весьма невелико по сравнению с долгим путешествием в хранилище книг и обратно. В данном случае кэш невелик (всего 10 книг). К слову, латентность является одним из основных ограничений компьютерной памяти, о которых мы ранее .
Эти простые и понятные каждому примеры раскрывают нам некоторое факты, которые следует знать о технологии кэширования:
- В технологии кэширования задействована быстрая память сравнительно малого объема. Она работает в связке с более объемной, но при этом более медленной памятью
- Использование кэша предполагает проверку, находятся ли в нем нужные данные. Если они там обнаружены, то говорят о «попадании» (cache hit). Если нет, то это называют «потерпевшим неудачу поиском при обращении к кэшу» или попросту «промахе» (cache miss). В последнем случае компьютеру придется обратиться к медленной памяти большего размера
- Максимальный размер кэша намного меньше, чем у более ёмких хранилищ информации (например, оперативной памяти или, тем более, жесткого диска)
- Может быть несколько уровней кэша. В примере с библиотекарем, меньшим, но скоростным типом памяти является его сумка, а книгохранилище выступает в роли объемной, но сравнительно медленной памяти. Это пример одноуровневого кэша. Могут быть добавлены дополнительные слои кэша: например в виде полки на сотню книг непосредственно у стола библиотекаря. Сначала библиотекарь проверит сумку (кэш первого уровня, L1), затем расположенную под рукой полку. И только в том случае, если нужная книга не будет обнаружена ни там, ни там, он отправится в хранилище. Такой способ организации кэша называется двухуровневым
Сверхпамять
В современных процессорах используется многоуровневый кэш. По сравнению с прочими типами ОЗУ SRAM имеет намного большую скорость работы. Однако этот параметр зависит и от объема памяти каждого из таких блоков. По этой причине используется кэш, собранный из нескольких модулей SRAM. Его разделяют на уровни.
- L1. Память первого уровня. Наименьшая по объему, но самая быстрая микросхема. Как правило, не более пары десятков килобайт. Работает почти без задержек. Используется для хранения наиболее часто используемых данных. Количество микросхем обычно равно количеству ядер, а каждое ядро имеет доступ только к своей микросхеме.
- L2. Память второго уровня. Чуть более медленный модуль, но больший по объему (несколько сотен килобайт). Хранит реже используемую информацию.
- L3. Память третьего уровня. Самая медленная, но самая объемная микросхема. Счет уже идет на десятки мегабайт. В отличие от предыдущих, эта память общая для всех ядер. Служит для хранения информации с низкой вероятностью запроса.
Как очистить кэш и данные на Android
Точную инструкцию для каждого смартфона дать не получится, так как все зависит от производителя и версии ОС, но общие правила будут следующими.
Шаг 1: Запустите «Настройки» и перейдите в раздел «Хранилище» (или найдите его поиском). Так вы сможете узнать, сколько памяти вашего смартфона занято и чем.
Шаг 2. В разделе «Хранилище» найдите «Приложения» (или «Другие приложения») и выберите его. В нем будут перечислены все приложения, а также то, сколько места каждое из них занимает. В некоторых версиях ОС можно найти сортировку приложений по алфавиту или размеру.
Шаг 3: Зайдите внутрь приложения и удалите кэш или данные. Только надо понимать, что это действие необратимо.
Три простых шага для очистки кэша.
В отношении специальных приложений для очистки я очень категоричен и не рекомендую ими пользоваться. Несмотря на их обещания ускорить систему чуть ли не в разы, в лучшем случае они просто сделают то же, что я только что описал. Так почему бы не сделать это самому без установки сомнительных приложений, которые еще и будут собирать ваши данные? Единственное приложение-оптимизатор, которому я доверяю, это Google Файлы, но работает оно именно с хранилищем и чистит в первую очередь мусор. Хотя, на него тоже нельзя слепо полагаться, но оно сделано Google, а к ней доверия куда больше, чем к каким-то левым разработчикам.
Если вы все еще хотите установить подобное приложение, просто помните о том, что они работают в фоновом режиме и используют системные ресурсы. Даже если они что-то ускорят, то сразу замедлят обратно.
Зачем и как чистят кэш
Причин для чистки несколько. Первая – место на диске. При активном посещении одних и тех же сайтов с разных браузеров одна страница сохраняется сразу в нескольких папках. Это уменьшает объем свободного пространства на носителе. Из-за растущего количества временных интернет файлов программы на компьютере будут работать медленнее.
Вторая причина – устаревшие данные. На сайте информация обновилось, а программа берет неактуальную с жесткого диска. При посещении контента, который часто обновляется, может произойти конфликт. Кэш чистят для того, чтобы иметь свежие данные с сайтов, экономить место на жестком диске, повысить скорость работы приложения и компьютера.
Памятка как почистить cashe
Пользователи устанавливают на компьютер разные браузеры. У каждого свои настройки и сервис. Самые популярные приложения:
- Google Chrome;
- Internet Explorer;
- Opera;
- Mozilla Firefox.
Для каждого веб-обозревателя есть своя инструкция по очистке кэша.
Отсутствует кеш или данные не найдены
Одна из самых больших проблем с производительностью — это когда происходит промах в кэше, когда данные не найдены на уровне кеша. Это чрезвычайно опасно для производительности ЦП, вышедшего из строя, поскольку следствием этого является большое количество потерянных циклов процессора, но не менее опасно для ЦП, вышедшего из строя.
При проектировании ЦП тот факт, что общее время поиска всех промахов в кэше вместе со временем поиска больше, чем поиск данных непосредственно в кэше, является ошибкой. Многие проекты ЦП пришлось вернуться к таблице параметров из-за того, что время поиска больше, чем доступ к ОЗУ.
Вот почему архитекторы очень неохотно добавляют дополнительные уровни в архитектуру, потому что да, это должно быть оправдано перед лицом улучшенной производительности.
Принцип работы жесткого диска
HDD по сути является накопителем, на котором хранятся все пользовательские файлы, а также сама операционная система. Теоретически без этой детали можно обойтись, но тогда ОС придется загружать из съемного носителя или по сетевому соединению, а рабочие документы хранить на удаленном сервере.
Основа винчестера – круглая алюминиевая или стеклянная пластина. Она обладает достаточной степенью жесткости, поэтому деталь и называют жестким диском. Пластина покрыта слоем ферромагнетика (обычно это диоксид хрома), кластеры которой запоминают единицу или ноль благодаря намагничиванию и размагничиванию. На одной оси может быть несколько таких пластин. Для вращения используется небольшой высокооборотистый электромотор.
В отличие от граммофона, в котором игла касается пластинки, считывающие головки вплотную к дискам не примыкают, оставляя расстояние в несколько нанометров. Благодаря отсутствию механического контакта, срок службы такого устройства увеличивается.
Однако никакая деталь не служит вечно: со временем ферромагнетик теряет свойства, что значит, ведет к потере объема жесткого диска, обычно вместе с пользовательскими файлами.
Для чего нужна кэш-память процессора?
Как уже упоминалось выше, главное назначение кэш-памяти – это хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, (около 4-16 Мбайт) в современных процессорах, он дает значительный прирост производительности в любых приложениях.
Чтобы лучше понять необходимость кэш-памяти, давайте представим себе организацию памяти компьютера в виде офиса. Оперативная память будет являть собою шкаф с папками, к которым периодически обращается бухгалтер, чтобы извлечь большие блоки данных (то есть папки). А стол, будет являться кэш-памятью.
Есть такие элементы, которые размещены на столе бухгалтера, к которым он обращается в течение часа по несколько раз. Например, это могут быть номера телефонов, какие-то примеры документов. Данные виды информации находятся прямо на столе, что, в свою очередь,увеличивает скорость доступа к ним.
Точно так же, данные могут добавиться из тех больших блоков данных (папок), на стол, для быстрого использования, к примеру, какой-либо документ. Когда этот документ становится не нужным, его помещают назад в шкаф (в оперативную память), тем самым очищая стол (кэш-память) и освобождая этот стол для новых документов, которые будут использоваться в последующий отрезок времени.
Также и с кэш-памятью, если есть какие-то данные, к которым вероятнее всего будет повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто, это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих данных. То есть, здесь присутствует наличие предположений о том, что же будет использовано «после». Вот такие непростые принципы функционирования.
Имеет ли значение размер кэша жёсткого диска?
В бытовых жёстких дисках размер кэша составляет 32, 64, 128 и 256 МБ. Скорость доступа ко всем кешам одинакова. Размеры различаются и означают, что в кеше будет больше данных, доступ к которым будет осуществляться намного быстрее. Как правило, размер кэша имеет огромное значение для производительности, поскольку он может хранить больше.
Но если вы переносите небольшие файлы, размер которых меньше размера кеша, диск может сознательно изменить порядок файлов для повышения качества, и скорость передачи будет увеличена. Вот почему мы не можем полностью исключить из уравнения размер буферного кеша, который будет увеличен на следующем жёстком диске.
Если вы хотите купить жёсткий диск и немного запутались в спецификациях, которые вы хотите учитывать, вашим приоритетом должно быть «RPM», которое определяет скорость записи и чтения диска. Во-вторых, вас может беспокоить цена, по которой вы получаете жёсткий диск. Если разница в цене между обоими жёсткими дисками одинакова и единственная разница заключается в размере буфера, выберите более дешёвый, так как вы вряд ли найдёте разницу в них обоих.
Зачем нужен кеш?
Кеш-память необходима в связи с тем, что Оперативная память память слишком медленная, чтобы процессор мог выполнять свои инструкции с достаточной скоростью, и мы больше не можем ее ускорять. Решение? Добавьте внутреннюю память в процессор, что позволяет увеличивать масштаб последних данных и инструкций.
Проблема в том, что сделать это чрезвычайно сложно, поскольку заставляет сами программы делать это, тем самым увеличивая циклы процессора. Решение? Создайте память с механизмом, который копирует данные и инструкции, наиболее близкие к тому, что выполняется в данный момент.
Поскольку кеш находится внутри процессора, как только ЦП находит данные внутри него, он выполняет их намного быстрее, чем если бы у него был естественный доступ к ОЗУ.
Для чего нужна кэш-память процессора?
Как уже упоминалось выше, главное назначение кэш-памяти – это хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, (около 4-16 Мбайт) в современных процессорах, он дает значительный прирост производительности в любых приложениях.
Чтобы лучше понять необходимость кэш-памяти, давайте представим себе организацию памяти компьютера в виде офиса. Оперативная память будет являть собою шкаф с папками, к которым периодически обращается бухгалтер, чтобы извлечь большие блоки данных (то есть папки). А стол, будет являться кэш-памятью.
Есть такие элементы, которые размещены на столе бухгалтера, к которым он обращается в течение часа по несколько раз. Например, это могут быть номера телефонов, какие-то примеры документов. Данные виды информации находятся прямо на столе, что, в свою очередь,увеличивает скорость доступа к ним.
Точно так же, данные могут добавиться из тех больших блоков данных (папок), на стол, для быстрого использования, к примеру, какой-либо документ. Когда этот документ становится не нужным, его помещают назад в шкаф (в оперативную память), тем самым очищая стол (кэш-память) и освобождая этот стол для новых документов, которые будут использоваться в последующий отрезок времени.
Также и с кэш-памятью, если есть какие-то данные, к которым вероятнее всего будет повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто, это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих данных. То есть, здесь присутствует наличие предположений о том, что же будет использовано «после». Вот такие непростые принципы функционирования.
Отсутствует кеш или данные не найдены
Одна из самых больших проблем с производительностью — это когда происходит промах в кэше, когда данные не найдены на уровне кеша. Это чрезвычайно опасно для производительности ЦП, вышедшего из строя, поскольку следствием этого является большое количество потерянных циклов процессора, но не менее опасно для ЦП, вышедшего из строя.
При проектировании ЦП тот факт, что общее время поиска всех промахов в кэше вместе со временем поиска больше, чем поиск данных непосредственно в кэше, является ошибкой. Многие проекты ЦП пришлось вернуться к таблице параметров из-за того, что время поиска больше, чем доступ к ОЗУ.
Вот почему архитекторы очень неохотно добавляют дополнительные уровни в архитектуру, потому что да, это должно быть оправдано перед лицом улучшенной производительности.