Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 30
Текст из файла (страница 30)
Работа Е1)О 0КАМ начинается с активизации строки и столбца. Однако после нахождения элемента данных в памяти этого типа буфер данных остается включенным до обращения к следующему столбцу, т.е. устраняется состояние ожидания. Это позволяет сэкономить три такта при передаче пакета из четырех слов. Самой быстрой представляется синхронная динамическая память (Б1)ВАМ). Основная особенность ее состоит в способности синхронизировать все операции с тактовыми сигналами процессора. Это уменьшает время обращения к столбцу памяти. Внутри памяти 51)ВАМ находится счетчик, который увеличивается при адресации столбца, что инициирует новое обращение к памяти до завершения предыдущего. Все это позволяет затрачивать пять 157 тактов на чтение первого слова и по одному такту на чтение пос ледующих слов, т.е.
всего восемь тактов. В последнее время появилась синхронная динамическая память с удвоенной скоростью передачи данных РРК ЯЖАМ. В этой динамической памяти данные в пакетном режиме выдаются по обоим фронтам импульса синхронизации„за счет чего ее пропуск ная способность увеличивается вдвое. Этот тип динамической памяти в настоящее время является наиболее распространенным лля персональных компьютеров.
Несмотря на большое число различных разработанных видов динамической памяти, отличающихся помимо принципов построения способами поиска и передачи информации во внешние цепи, скорость ее работы существенно отстает от скорости процессора. При одновременном увеличении тактовой частоты и ширины выборки возникают проблемы с электромагнитной совместимостью, труднее обеспечить одновременность получения всех информационных битов, сложнее организовать широкую шину между памятью и процессором. Поэтому обычно используют широкую шину (до 64 и даже 128 бит) при ограниченной частоте шины.
В памяти КатЬпз 1)1гесг КАМ (РК1ЖАМ) ширина выборки уменьшена до 16 бит, но частота увеличена до 800 МГц (или до 1600 МГц). Передача осуществляется пакетами: существует три вида пакетов — данных, строк и столбцов. Пакеты строк и столбцов служат для передачи команд управления, которые заменяют обычные сигналы КАБ, САБ, %Е и С8. Однако память КатЬпз используется редко из-за дороговизны и возникающих технологических сложностей. Существует множество других видов динамической памяти, предназначенных для будущих персональных компьютеров, например Я.1ЖАМ, ЕЯЖАМ, С1)КАМ.
Эти виды памяти используют те же способы сокращения времени доступа, что и рассмотренные выше, но более высокая скорость передачи данных в них связана со значительным усложнением контроллера. Кэш-память. Для достижения более высокого быстродействия между сравнительно медленной основной памятью, использующей динамические элементы, и относительно быстрым процессором размещают буферную память, получившую название кэша, или кэш-памяти. Ее использование позволяет избегать циклов ожидания в работе процессора, которые снижают производительность всей системы.
Кэш-память предназначена для кратковременного хранения информации и выдачи ее в процессор. Она не является программно доступной и служит только для повышения производительности, но не увеличивает общую емкость памяти и не влияет на программирование. Кэш-память бывает нескольких уровней. Кэш первого уровня ь1 обычно интегрируется с процессором и слу- 158 „,нт для предварительной выборки команд и данных.
Во многих процессорах кэш первого уровня разделен на два: кэш команд и кэш данных (см. рис. 5.10). Его объем в современных процессорах составляет от 4 до 64 Кбайт (и даже до 128 Кбайт), а время обращения около 10 нс. Когда говорят о кэш-памяти, то обычно подразумевают кэш второго уровня, или Е2. Он служит для ускорения обращений процессора к программам и данным при их обработке.
Этот кэш строится на базе очень быстрой и довольно дорогой статической памяти (ЯВАМ) и хранит наиболее часто используемую процессором информацию. Физически кэш второго уровня выполняют в виде отдельной микросхемы или интегрированным с процессором в зависимости от возможностей технологии. Объем кэш-памяти второго уровня в процессорах разного назначения составляет от 256 Кбайт (в персональных компьютерах) до 8 Мбайт (в серверах), а время обращения 15 ...
20 нс. В некоторых компьютерах предусматривается также кэш третьего уровня ЕЗ, однако его эффективность невелика. Наличие кэш-памяти не должно вызывать затруднений при программировании и нарушать принятые принципы адресации. Чтобы скрьпь от программиста наличие кэш-памяти, в ней используют ассоциативный принцип хранения и поиска информации. В кэш-памяти располагается та же информация, что и в ОП. Любое обращение процессора к памяти вначале всегда направляется в кэш-память, и только при отсутствии в ней соответствующей информации продолжается ее поиск в ОП.
Найденное слово передается в процессор для обработки, но при этом из ОП забирается целый блок информации, состоящий из нескольких слов, которые заносятся в кэш-память. При повторном обращении процессора к данным или командам из этого блока они уже будут находиться в кэш-памяти. Так как и команды, и данные обычно занимают последовательные ячейки памяти, высока вероятность, что следующее обращение в кэш-память будет успешным.
При работе с кэш-памятью применяется ассоциативный принцип: старшие разряды адреса используются в качестве признака, а младшие — для выбора слова. Существует три вида организации кэш-памяти: с прямым отображением, полностью ассоциативная и множественно ассоциативная. В кэш-памяти с лрямым отображением информационный блок из ОП записывается всегда в одно и то же фиксированное место. При записи блока в кэш-память используются младшие разряды его адреса ОП. Они также записываются в виде тега вместе с информацией.
Для информации, хранящейся в ячейках ОП с одинаковыми младшими разрядами адреса, предназначен один блок кэшпамяти. Так, если ОП разделена на 16384 блока, а объем кэшпамяти позволяет разместить только 128 блоков, то в строке 0 159 кэш-памяти могут находиться данные из О, 128, 256,..., 16256 блоков ОП, в строке 1 — данные из 1, 129, 257, ..., 16 257 блоков ОП и т.д. Такая кэш-память наиболее дешева, но и требует очень частой замены блоков; вероятность «попадания» сравнительно ннз кая. Кэш с прямым отображением используется в простых недо рогих компьютерах. Если информационный блок ОП может быть помещен на лю бое место кэш-памяти, то она называется полносюью ассоциатяв ной.
Ее почти не используют из-за сложности схем управления. В множеппвенно ассоциативной кэш-памяти информационный блок ОП может располагаться на ограниченном числе мест. Обычно такое множество состоит из четырех каналов. В персональных компьютерах, как правило, используют именно четырехканальную множественно ассоциативную кэш-память. В ней сочетаются достоинства прямого и полностью ассоциативного отображения. На рис. 6.7 приведена одна из возможных организаций множественно ассоциативной кэш-памяти. Такая память состоит из собственно блочного запоминающего устройства (БЗУ), в котором хранятся копии взятых в ОП информационных блоков, таблицы адресов (ТА) и управляющих схем.
Рассмотрим операцию чтения. Поступающий из процессора адрес разбивается на три части: поле смещения (Ар), служащее для выбора нужного байта внутри блока, поле индекса(А„«,), определяющее номер множества, и поле тета (А,), т.е. А = А, А„ц„Ар. Обмен данными между кэш-памятью и ОП производится блоками. В таблице адресов (называемой также справочником) для каждого блока, расположенного в ЗУ по адресу А„, находятся адреса страниц, или тегов, А„тех блоков, которые были уже скопированы в кэш-память во время предыдущих операций чтения. При обращении процессора адрес запрашиваемой информации цп Рнс.
6.7. Одна нз возможных схем организации кэш-памятн 160 передается в регистр, где он разбивается на три части. Находящися в таблице адресов номера страниц сравниваются с номером траницы (т.е. старшими разрялами адреса) запрашиваемого бло„а. Если выявляется совпадение адресов страниц, то запрашиваемый блок находится в соответствующем разделе кэш-памяти. Производится выборка этого блока по адресу А = А„, Ав. Если совпадения номеров страниц не произошло, то искомый блок отсутствует в ассоциативной памяти, и адрес нужного слова передается ОП. (Для ускорения работы памяти обычно адрес передается в кэш-память и ОЗУ одновременно, но если искомое слово находится в кэш-памяти, то там оно будет найдено быстрее, поэтому результат поиска в ОЗУ будет не нужен.) Найденное слово из оперативной памяти передается в процессор для обработки, а весь блок переписывается в кэш-память.
При копировании блока он направляется в раздел кэш-памяти, адрес которого определяется с помощью таблицы активности блоков (на рисунке она не показана). Эта таблица содержит предысторию обращений к каждому блоку и служит для вытеснения из кэшпамяти неиспользуемых блоков. Применяется одна из двух стратегий — случайная или 1.К(3 (1еааг гесепг!у цзеб — заменяется блок, который дольше других не использовался). В первом случае новый блок вьпесняет из кэш-памяти любой блок, выбираемый случайным образом; эту стратегию значительно проще реализовать в аппаратуре. Во втором случае из кэш-памяти удаляется блок, к которому в течение последнего времени не было обращений.
Эта стратегия требует фиксации обращений в таблице активности, что может значительно усложнить ее реализацию. Обычно реализация этой стратегии выполняется с.помощью очереди, в которую заносятся ссылки на заполняемые строки кэш-памяти. При обращении к строке ссылка на нее перемещается в конец очереди. Таким образом, в начале очереди всегда будет находиться ссылка к строке, к которой обращение производилось раньше, чем к другим строкам. Операции записи в память встречаются намного реже операций чтения; обычно они составляют менее 10% общего числа опеРаций, но пренебрегать ими нельзя.
Существует две возможности: сквозная запись (впге гЬгоцяЬ), при которой запись осуществляется одновременно и в кэш-память, и в ОП. В этом случае наличие кэш-памяти никак не повлияет на скорость работы машины при записи обработанной информации в память. Время, необходимое для записи слова в ОП, превышает длительность записи в кэш-память, а пока не завершена запись результата предыдущей операции, продолжать работу невозможно; запись с обратным копированием (ттпге ЬасЬ), при которой запись информации при обработке производится только в кэшпамять. Это происходит быстро, но при этом в кэш-памяти и ОП ь ~ърнсц 161 могут храниться различающиеся копии одних и тех же данных Измененный блок из кэш-памяти передается в ОП только при его замещении.