Смагин М.С. Вычислительные машины, системы и сети (1088253), страница 10
Текст из файла (страница 10)
Прочие ячейки будут отображаться по тому же принципу.При таком режиме работы процессору необходимо в каждый моментвремени понимать, какая из ячеек памяти находится в данный момент в тойили иной ячейке кэш. Для этого у каждой ячейки кэш-памяти имеется специальное поле тэгов, в которое заносится старшая часть адреса ячейки оперативной памяти. Значение поля тэгов вместе с адресом ячейки кэш позволяютоднозначно определить адрес ячейки памяти, записанной в кэш в данныймомент.
Пример работы кэш с прямым отображением приведён на рисунке.Рис.26 Пример работы кэш-памяти с прямым отображением.Данная дисциплина проста в реализации, однако часто приводит к неэффективному использованию ресурсов кэш-памяти в тех случаях, когда исполняемая программа постоянно обращается к разным блокам памяти, отображаиемым в одну и ту же строку кэша.65Такого недостатка лишён ассоциативный способ отображения. В этомслучае любая ячейка памяти может быть размещена в любой строке кэша.Соответственно, в поле тэгов будет храниться полный адрес ячейки памяти,которая в данный момент загружена в кэш. Процессору, при обращении кпамяти, приходится проверять тэги всех строк кэша, на предмет наличия внём информации о требуемой ячейке памяти, причём делать это одновременно по всем строкам. Данный способ является самым эффективным, но наиболее сложен в технической реализации.Рис.
Пример ассоциативного отображения данныхиз оперативной памяти в кэшКомпромиссом между двумя этими методами является секционированный ассоциативный метод. При использовании данного метода весь массивкэш-памяти делится на несколько секций, каждая из которых состоит из нескольких строк. Секции жестко закреплены за определёнными блоками памяти, но в пределах каждой секции используется ассоциативный способ отображения. Таким образом, адрес каждой ячейки памяти разбивается уже натри части – адрес ячейки кэш-памяти, номер блока и тэг.
Схема отображениядля ячеек кэш с адресами 00 и 11 представлена на рисунке.66Рис.27 Пример секцинированного ассоциативногоотображения данных из оперативной памяти в кэшСледующей важной характеристикой кэш-памяти является алгоритмзамены строк кэша. Он задаёт дисциплину в соответствии с которой будетосуществляться выбор строк кэша, в которые будут записываться новые данные из памяти. Наиболее широко используются четыре алгоритма – LRU,FIFO, LFU и алгоритм случайного выбора.LRU расшифровывается как Last Recently Used.
Согласно данному алгоритму удаляется та строка кэш, к которой дольше всего не было обращений. FIFO расшифровывается как First In First Out. Согласно этой дисциплинепод замену в кэш выбирается блок, записанный раньше остальных. LFU расшифровывается как Last Frequently Used. Согласно данной дисциплине, подзамену в кэш выбирается блок, к которому процессор обращался реже всего.И, наконец, в случае алгоритма случайного выбора, выбор строки кэш длязаписи в неё новых данных выбирается случайным образом. Как ни странно,данный алгоритм обладает лишь незначительно меньшей эффективностью,чем остальные, при том, что он гораздо проще в реализации.67Вопрос поддержания целостности данных в ОЗУ и кэш или, как ещёговорят, когерентности кэша, является одним из самых важных в работе кэшпамяти.
Особенно большое внимание ему уделяют при разработке многоядерных и многопроцессорных систем, где возможно одновременное обращение нескольких параллельно выполняемых процессов к одной и той жеячейке памяти.Самой простой дисциплиной поддержания целостности является дисциплина сквозной записи или по-английски «write-through». Согласно даннойдисциплине, всякое изменение данных в кэше автоматически приводит к изменению данных в ОЗУ.
Данная дисциплина порождает интенсивный обменданными между памятью и кэшем, который в значительной степени сводитна нет эффективность кэша.Альтернативной дисциплиной является дисциплина с обратной записью (write-back). Согласно данной дисциплине, изменение данных в ОЗУосуществляется только при выгрузке данных из кэша.
Данный способ болееэффективен, однако приводит к тому, что в течение какого-то времени в ОЗУхранятся неверные значения изменяемых данных.Разница в принципах работы двух описанных дисциплин может бытьпродемонстрирована на следующем примере. Предположим, имеется вычислительная система, состоящая из процессора, кэш-памяти, оперативной памяти и магистралей передачи данных между ними. Структура системы приведена на рисунке.Рис.28 Пример структуры системы «Процессор-кэш-ОЗУ»68Рассмотрим временные диаграммы передачи данных по магистралям«Процессор-кэш» и «кэш-ОЗУ» для дисциплин со сквозной и обратной записью. Для простоты будем считать, что процессор всё время проводит запись водну и ту же ячейку памяти.Рис.29 Временная диаграмма работы системы «Процессор-кэш-ОЗУ»при использовании дисциплин со сквозной или обратной записьюКак видно, при использовании дисциплины с обратной записью, нагрузка на магистраль «кэш-ОЗУ» гораздо ниже.Особенно остро проблема поддержания целостности данных в кэшвстает в многопроцессорных системах.
Множество процессоров, параллельноработающих над одной и той же задачей, осуществляют параллельный доступ к данным как по чтению, так и по записи. Неизбежна ситуация, когдаданные, необходимые одному процессору, могут параллельно модифицироваться другим, что приводит к ошибкам в вычислениях. Поскольку суперкомпьютеры часто используются для решения критических задач, ценой таких ошибок могут быть существенные материальные затраты и жизни людей.Поэтому в сложных вычислительных системах используются специализированные дисциплины поддержания когерентности кэша, обеспечивающие целостность данных при параллельной обработке.Сегментация кэш-памяти заключается в её разделении на нескольконесвязанных областей, в каждой из которых хранятся данные определённоготипа.
Чаще всего выполняется сегментация на кэш команд и кэш данных.69Сегментированная кэш-память сложнее в реализации и обладает меньшейэффективностью, чем не сегментированная. Однако ее важным достоинствомявляется отсутствие соперничества за ресурсы между функциональным блоком и блоком управления. Это приводит к общему росту производительностивычислительных устройств, особенно, если в них используется конвейернаяобработка.Оперативная памятьТеперь рассмотрим следующий вид памяти, оперативную память.
Этотвид памяти используется непосредственно для хранения выполняемых в текущий момент программ и данных для них. В СССР и России оперативнуюпамять ещё называют ОЗУ (оперативное запоминающее устройство), за рубежом же в обиходе прочно закрепилась аббревиатура RAM − Random Access Memory. Или, в переводе на русский, память с произвольным доступом.Оперативная память подразделяется на статическую и динамическую.Статическая память (SRAM) хранит записанные данные в течение всего времени работы, пока подаётся питание. Динамическая память (DRAM) со временем теряет хранимые значения и поэтому для неё требуются периодические циклы обновления хранимой информации. Очевидно, что, при равныхконструктивных характеристиках, статическая память будет работать быстрее динамической, однако она гораздо дороже и требует гораздо больше места на кристалле.Дело в том, что для хранения данных в статической памяти используются, как и в кэш-памяти, триггера, каждый из которых представляет собой4-5 элементов логического уровня (т.е.
элементов типа И-НЕ, ИЛИ-НЕ илиИ, ИЛИ, НЕ) или 15-20 транзисторов.Что же касается динамической памяти, то в ней каждый бит данныххранится в виде заряда на конденсаторе, связанном с одним-единственнымуправляющим транзистором.70Поскольку именно динамическая память позволяет добиться более высокой ёмкости запоминающих устройств при одинаковой стоимости, то оперативная память современных персональных ЭВМ чаще всего выполняетсяименно в виде динамической памяти.Следующим важным аспектом оперативной памяти современных персональных ЭВМ является, то, что для построения оперативных запоминающих устройств используется синхронная динамическая память, так называемая SDRAM.
Если в асинхронной DRAM устройству, осуществляющемучтение и запись в память, требовалось формировать, помимо сигналов чтенияили записи, дополнительный управляющий сигнал готовности данных, то всинхронной DRAM эта роль возложена на сигнал тактовой частоты, поступающий на соответствующий вход микросхемы памяти.Для ускорения обмена данными между процессором и памятью, в современных ЭВМ широко используется специальная дисциплина передачиданных, при которой считывание и запись осуществляются как по фронту,так и по срезу синхросигнала.
Поскольку при такой дисциплине можно за тоже время передать вдвое больше данных, чем при передаче только по фронту, она получила название «дисциплина с удвоенным потоком данных» илиDDR, что означает Double Data Rate. Иногда используется дисциплина QDR(Quad Data Rate – учетверённый поток данных), при которой за один тактсинхросигнала осуществляется 4 доступа к памяти, и даже ODR (Octal DataRate), при которой таких операций за такт выполняется восемь.Суммарная пропускная способность оперативной памяти вычисляетсякак произведение значений тактовой частоты, количества байт в одной передаваемой порции и количества передач, осуществляемых за время следования одного импульса тактовой частоты. Размер передаваемой порции в оперативной памяти, используемый в современных ПЭВМ, равняется 32 битамили 4 байтам.
Поэтому для микросхем оперативной памяти, работающий врежиме DDR с тактовой частотой 400 МГц, пропускная способность составит400·106·4·2=3200 мегабайт. Данные характеристики указываются в марки71ровке оперативной памяти при её продаже. Таким образом, память типаDDR400 (PC-3200) это память, работающая в режиме удвоенной передачиданных с тактовой частотой 400 мегагерц, которая обеспечивает пропускнуюспособность 3200 мегабайт в секунду.Основными характеристиками SDRAM являются рабочая тактовая частота и так называемые «тайминги». Если о рабочей частоте мы уже говорили,то по поводу таймингов следует поговорить особо.Физически, память SDRAM состоит из ячеек, созданных в полупроводниковом материале, в каждой из которых можно хранить определённыйобъём данных, от 1 до 4 бит.
Совокупность ячеек такой памяти образуют условный «прямоугольник», состоящий из определённого количества строк истолбцов. Один такой «прямоугольник» называется страницей или банком.Несколько банков образуют чип. Один или несколько чипов упаковываютсяв конструктивный модуль, – микросхему.Рис.30 Структура DRAMПри обращении к ячейке памяти контроллер определяет нужный чип инужную страницу в нём.