Вторник
28.05.2024, 21:32

Приветствую Вас Гость | RSS


Главная для чего нужна кэш-память в hdd - Форум решения ваших проблем Регистрация Вход

Каталог статей

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: slavik, Combine  
для чего нужна кэш-память в hdd
АспиринкаДата: Пятница, 12.03.2010, 23:37 | Сообщение # 1
VIP Platinum
Группа: Супермодераторы
Сообщений: 2454
Репутация: 356
Статус: Offline
Запоминающее устройство КЭШ (cache) таит в себе много загадок. Увеличенное количество КЭШ-памяти характерно для топовых моделей CPU. Чем его больше, тем дороже процессор. Однако что же это дает? Давай попробуем разобраться!
Иерархия памяти

Прежде чем добраться до АЛУ (Арифметико-Логического Устройства), данные и команды проходят долгий путь. А до АЛУ им нужно добежать поскорее, поскольку там-то и происходят все полезные вычисления. АЛУ – сердце любого процессора.
Устройства ввода/вывода

Вначале данные хранятся на бумаге или в голове. Их вводят посредством клавиатуры, мыши, сканера. Устройства ввода/вывода – самые медлительные. Довольно медленно работают сети. Но тут уже проблема не технологическая, а финансовая. Быстрые каналы связи стоят очень дорого, поэтому многие используют модемы и домашние сети, которые никак не могут сравниться по скорости работы с оперативной памятью. Чуть лучше дело обстоит с высокоскоростными интерфейсами типа USB 2.0 и FireWire, однако они передают данные на небольшие расстояния, ограниченные несколькими метрами.

Жесткие диски

Скорость передачи данных с жесткого диска ограничена скоростью его вращения, плотностью записи и количеством головок. Появление новых HDD с интерфейсом SATA и с частотой вращения 10000 оборотов в минуту не сильно изменило ситуацию. Параметры передачи данных улучшились не более чем на 50%.

Оперативная память

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

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

И, наконец, КЭШ. Его производительность должна расти вместе с процессором, поскольку теперь он располагается на кристалле и работает, как утверждают разработчики, на частоте CPU. Однако рекламные проспекты почему-то говорят нам об увеличении его объема!

Объем и скорость

Чем больше памяти, тем она медленнее. Окружающий мир хранит бесконечное количество информации, и тебе не хватит жизни, чтобы это все сфотографировать, нарисовать или описать. Весь Интернет за день не скачаешь. Чем ближе к АЛУ, тем меньше памяти: окружающий мир – сеть – HDD – оперативная память – КЭШ.

За последнее десятилетие частоты процессоров возросли от считанных мегагерц до нескольких гигагерц. Частоты оперативной памяти с трудом достигают 200 МГц, если не учитывать всевозможные дуальные режимы (типа DDR и Dual Channel DDR), что является в некотором роде рекламным трюком.

А вот объемы памяти возросли. Винчестеры от нескольких десятков мегабайт увеличились в объеме до сотен гигабайт. От нескольких мегабайт до нескольких гигабайт прибавила в весе оперативка. КЭШ увеличился от нескольких килобайт до нескольких мегабайт. То есть в индустрии памяти производители делают ставку совсем не на скорость работы памяти, а на ее объем. И вот почему...

Как работает КЭШ

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

Вот и стремятся разработчики к тому, чтобы на каждом уровне иерархии памяти ее было побольше. Чтобы загрузил один раз, и не пришлось больше обращаться на нижний уровень по тормозным каналам. То есть вместо того чтобы стремиться увеличить скорости между ступенями, они стараются воткнуть побольше памяти, которая и так уже быстрая. Больше винчестер, больше оперативки, больше КЭШ. А как же эффективность?

Эффективность КЭШ

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

Однако КЭШ не спасает от работы с большими массивами данных (видео, звук, графика, архивы). Такие файлы просто не помещаются в КЭШ, поэтому все время приходится обращаться к оперативной памяти, или даже к HDD. В таких случаях все преимущества исчезают. Это очень хорошо видно, например, если сравнить процессоры Intel Pentium 4 3.4E (Prescott, 1 Мб L2) и Intel Pentium 4 3.4 (Northwood 512 Кб L2). Или же, например, Athlon 64 3800+ (512 Кб L2)и Athlon 64 FX-53 (1 Мб L2) (http://www.ixbt.com/cpu/athlon64-3800plus-s939.shtml).

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

Показательны тут и результаты нашего тестирования в DOOM III. Выяснилось, что при увеличении объема оперативной памяти от 256 Мб до 1 Гб производительность выросла с 34 до 54 FPS (Frame Per Second). То есть всего в полтора раза, хотя объем памяти вырос в 4 раза! Использование DDR в двуканальном режиме дало жалкие 2 FPS против одноканального режима.

Тяжело КЭШ-памяти приходится, если обращения идут не к последовательным адресам, а к случайным. Тут вероятность того, что нужных данных не окажется, повышается. И снова CPU приходится простаивать в ожидании загрузки нужной ячейки из оперативки.

Итак, становится понятно, что увеличить быстродействие КЭШ и его объем недостаточно - нужно реформировать всю иерархию памяти ПК. А 1 Мб L2 КЭШ, или 1 Гб DDR погоды не сделают. Для большинства пользовательских приложений, включая самые современные игры, хватит и меньшего объема памяти!

SRAM и DDR SDRAM

Возникает вопрос: чем же отличаются оперативная память и КЭШ? Одно из таких различий – тип памяти. SRAM (Static Random Access Memory) – статическая память со случайным доступом. DDR SDRAM (Double Data Rate Synchronous Dynamic RAM) – синхронная динамическая память с удвоенной скоростью передачи данных. SDRAM сделана по принципу больше и дешевле. Поэтому на одну ячейку памяти приходится только один транзистор с конденсатором. Однако данные, хранящиеся в виде заряда на обкладках конденсатора, требуют частой регенерации, что замедляет доступ к ним. Чтение ячейки SDRAM происходит обычно в несколько тактов. Хоть рекламные проспекты и заявляют о том, что данные передаются с двойной частотой (DDR) 400 МГц, после адресации данные появляются только через несколько тактов работы системной шины. А процессор тем временем успевает отработать где-то в 10 раз тактов больше.

Ячейка SRAM состоит из нескольких транзисторов, образующих триггер, который не требует цикла регенерации. Благодаря чему адресация проходит намного быстрее - за один такт.

Расположение

КЭШ быстрее оперативной памяти, отчасти благодаря своему положению. Ведь линии связи, идущие по материнской плате, и разъем пагубно влияют на скорость. КЭШ современного персонального компьютера расположен прямо на процессоре, благодаря чему удалось сократить линии связи и улучшить их параметры. Однако на первых PC КЭШ тоже устанавливался на материнской плате и выигрывал только за счет преимуществ SRAM и работы с процессорной шиной. Кстати такой тип памяти более дорогой и энергоемкий, именно поэтому он до сих пор не вытеснил DDR SDRAM, даже в видеоадаптерах.

Начиная с Intel Pentium II, микросхемы КЭШ-памяти перекочевали поближе к процессору, на отдельную плату, которая вставлялась в Slot 1. А в Intel Pentium Pro они в виде отдельного кристалла монтировались вместе с процессором в одном корпусе. И вот совсем недавно КЭШ стали делать полностью на одном кристалле с процессором.

Стало заметно, что теперь оперативная память тоже подбирается поближе к CPU: например, в процессорах AMD Athlon 64 контроллер оперативной памяти находится на кристалле, что, конечно, улучшает работу всей иерархии памяти. Ведь до этого контроллер располагался в чипсете материнской платы. Налицо и архитектурные изменения: некоторые модели AMD Athlon 64 имеют два независимых порта для DDR, что позволяет ощутимо увеличить скорость обмена с оперативкой.

Типы КЭШ

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

Ассоциативный КЭШ

Fully Associative cache называется так благодаря своей организации. Допустим, что у тебя 512 Мб оперативки (ОП), а КЭШ всего 512 Кб. Как определить, какие именно адреса из ОП хранятся в КЭШ? Очень просто: их надо сохранять. Когда какие-то данные подкачиваются в КЭШ, сохраняется не только содержимое ячейки оперативной памяти но и ее адрес. Ячейка, где хранится адрес, называется тегом. То есть содержимое полностью ассоциативного КЭШ представляет собой набор избранных адресов из оперативки и данные, которые по ним хранятся.

Процессор такой КЭШ практически не замечает - он отсылает запросы по адресам в оперативной памяти, и если их копия имеется в КЭШ, то тег совпадает с адресом ОП, и очень быстро нужная инфа предоставляется для обработки. Если нужного тега с адресом ОП нет, значит нужно лезть в оперативку, теряя драгоценные кванты процессорного времени.

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

КЭШ прямого отображения

Direct Mapped cache – частный случай ассоциативного КЭШ. Только, чтобы избежать сложного поиска, разработчики разбили оперативную память на жесткие участки, по начальным битам адреса. То есть теперь оперативная память прямо отображается в КЭШ. А по начальным битам адреса можно точно узнать, где именно может находиться нужная ячейка. Естественно, данные хранятся не одни, а вместе с тегом, в котором есть остаток адреса. С помощью этого тега можно точно определить, какой именно адрес из жесткой области находится в КЭШ прямого отображения.

Такой КЭШ очень прост, но главный недостаток в том, что в него нельзя записать несколько последовательных массивов из оперативки. Из каждой области памяти может храниться только одна строка (несколько двоичных слов).

Это приводит к тому, что часть областей КЭШ пустует, в то время как другая постоянно обновляется из-за недостатка места.

Множественно-ассоциативный КЭШ

N-Way Set Associative cache получил наибольшее распространение в «настольных» процессорах. В нем память, так же, как в КЭШ прямого отображения, разбита на жесткие области, поэтому по начальным битам адреса сразу можно обнаружить область, где примерно может находиться нужная ячейка. Однако в каждой области находится не одна строка из ОП, а несколько. Ими управляют маленькие модули ассоциативного КЭШа. В рамках каждой области хранится небольшое количество адресов оперативной памяти, значит и тегов тоже немного, следовательно и поиск по ним организовать несложно. То есть не требуется каких-то навороченных технических решений, зато теперь есть возможность записывать в КЭШ по небольшому куску последовательных данных из каждой области памяти. А именно на последовательных данных небольшого размера КЭШ и дает преимущества в производительности!

Буфер записи

Из КЭШ можно не только читать данные, но и записывать их туда. Но тогда в оперативной памяти и в КЭШ будут разные значения. Для этого все изменения в КЭШ должны отражаться и на оперативке. Однако если после каждого изменения в КЭШ ждать пока они будут внесены в ОП (write-through), то прирост скорости сводится на нет. Поэтому используются буферы, в которых выставляются изменения. КЭШ продолжает нормально работать дальше, в то время как с буфера данные переписываются в оперативную память. Такой режим называется «write-back» (WB).

L1, L2, L3

Часто приходится видеть в прайсах, что один и тот же процессор с одинаковой тактовой частотой поставляется в двух вариантах, например с КЭШ L2 256 Кб и 512 Кб. Отсюда и цена разнится. Оказывается, внутри процессора есть также многоступенчатая иерархия памяти. L1 (Level 1) – это уровень самый близкий непосредственно к АЛУ. L2 обычно кэширует оперативную память, а L1 кэширует L2. В некоторых версиях процессоров между L2 и оперативной памятью добавляют уровень L3. Но в «настольных» процессорах на сегодняшний день чаще всего встречаются только два уровня: L1 и L2.

Чем же они отличаются? Последнее время производители в один голос утверждают, что оба уровня, а если есть третий, то и он тоже, работают на частоте ядра процессора. Однако L1, как правило, меньше по объему, чем L2. Раньше L2 выносился рядом с процессором на модуль для установки в SLOT 1. Перекочевав на кристалл CPU, L2 первоначально работал не на полной скорости процессора.

Производители не сознаются, но есть все основания предполагать, что L2 все же работает медленнее, чем L1. Ведь из-за увеличенного объема адресация должна идти дольше и сложнее. Как мы уже выяснили выше, в некоторых случаях оперативка может тормозить работу КЭШ, поэтому разумно разделить L2 и L1.

Но самое главное архитектурное различие в том, что L1 делится на КЭШ команд и КЭШ данных, в то время как в L2 находятся избранные копии содержимого оперативной памяти. Тут-то и начинаются игры производителей с производительностью. Например, на уровне L1 в процессоре Intel Pentium 4 находится Execution Trace cache, участвующий в работе разрекламированной технологии Hyper-Threading, которая превращает один физический процессор в два логических. У CPU AMD поколений K7 и K8 на уровне L1 происходит Predecode – предварительное декодирование команды, ускоряющее процесс ее выдачи.

Exclusive vs. Inclusive

В иерархии памяти обычно более быстрые уровни хранят избранные копии содержимого более медленных уровней. Например, в L2 КЭШе хранятся области из оперативной памяти, а в L1 хранятся области из L2. Такая архитектура называется инклюзивной (Inclusive).

Однако! Места на кристалле процессора мало, и приходится платить за каждый квадратный миллиметр кремниевой пластины. Несколько расточительно хранить на этом ограниченном пространстве две копии одних и тех же данных. Поэтому в эксклюзивной (Exclusive) архитектуре КЭШ после того как данные переданы из L2 в L1, их копия в L2 уничтожается. То есть в эксклюзивном КЭШе мы можем хранить объем информации L2+L1, а в инклюзивном только L2, так как в L1 находятся копии L2. Хотя в таком случае скорость КЭШа может уменьшаться, но эффективность увеличивается, по мнению компании AMD. Благодаря, кроме всего прочего, эксклюзивности КЭШ, процессоры AMD с меньшими тактовыми частотами смогли конкурировать с CPU Intel с более высокими частотами.

Влияние КЭШ на внешний вид CPU

Возьмем три процессора AMD K7, вот как зависит степень интеграции процессоров этого поколения от объема КЭШ L2:
25.2 миллионов транзисторов (152 Кб L1, 64 Кб L2)
37.2 миллионов транзисторов (152Кб L1, 256 Кб L2)
54.3 миллионов транзисторов (152Кб L1, 512 Кб L2)

(по данным сайта http://www.sandpile.org )

Нетрудно посчитать, что один килобайт КЭШ L2 увеличивает степень интеграции процессора примерно на 66 тысяч транзисторов. Причем 512 Кб КЭШ L2 занимает больше половины площади кристалла. Что хорошо видно на фотографиях ядер с большим объемом КЭШ. То есть вместо этого дополнительного КЭШ мы бы вполне могли вместить второй процессор!

Похожая ситуация наблюдается и у двух процессоров Intel Pentium 4:
42 миллионов транзисторов (12 Кб L1tc + 8 Кб L1d, 256 Кб L2)
55 миллионов транзисторов (12 Кб L1tc + 8 Кб L1d, 512 Кб L2)

Здесь на каждый дополнительный килобайт приходится где-то 50 тысяч транзисторов.

Обрати внимание, кстати, что у процессоров AMD Athlon XP КЭШ L1 значительно больше L1 у Intel Pentium 4.

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

Хотя производители часто предпочитают продавать процессоры с отключенным дополнительным объемом КЭШ. То есть ты имеешь, например, Intel Pentium 4 55 миллионов транзисторов с КЭШ L2 всего 256 Мб, при этом он греется сильнее, чем CPU со степенью интеграции 42 миллиона транзисторов.

Выводы

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

Однако разработчики, несмотря на явные тестовые результаты, будут рекламировать увеличенный объем КЭШ. Будут вынуждать нас приобретать новые еще более сильно греющиеся процессоры. Или, еще хуже того, появится тяжелый софт, требующий 1 Мб, а затем и 4 Мб КЭШ L2.

Хотя есть и другие пути развития: например, несколько процессоров на кристалле, или интеграция графического процессора с центральным.

Поживем – увидим, куда еще нас заведет научно-технический прогресс.


Как вставить картинку в пост?

Если Вы новичок первым делом Вам сюда!

За флуд жёстко наказываю!!!

 
У вас
fidelisДата: Суббота, 14.08.2010, 17:30 | Сообщение # 2
Активный новичок
Группа: Новички
Сообщений: 30
Репутация: 0
Статус: Offline
Спс)) Отличный пост)) + happy
 
У вас
666special666_2010Дата: Суббота, 14.08.2010, 19:04 | Сообщение # 3
Заслуженный мастер
Группа: Новички
Сообщений: 329
Репутация: 16
Статус: Offline
правда постарался. Очень много нового и полезного узнал. Почему то раньше даже не задумывался на эту тему
 
У вас
ProДата: Понедельник, 16.08.2010, 19:18 | Сообщение # 4
Участник
Группа: Изгнанные
Сообщений: 71
Репутация: 0
Статус: Offline
Спасибо. А то я не знал.
 
У вас
  • Страница 1 из 1
  • 1
Поиск:


Copyright by Shel © 2024