Тарифы Услуги Сим-карты

Вычислительные системы с общей памятью. Информатика и вычислительная техника

Основная память

Основная память - это запоминающее устройство, напрямую связанное с процессором и предназначенное для хранения выполняемых программ и данных непосредственно участвующих в операциях. Она имеет достаточное быстродействие, но ограниченный объем. Основная память делится на различные виды, основными из которых являются оперативная память (ОЗУ) и постоянное запоминающее устройство (ПЗУ) (рис.1).

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

ОЗУ служит для приема, хранения и выдачи информации. Именно в нем процессор «берет» программы и исходные данные для обработки, в нее он записывает полученные результаты. Название «оперативная» это память получила потому, что она работает очень быстро, так что процессору практически не приходится ждать при чтении данных из памяти и записи в память. Однако содержащие в ней данные сохраняются только пока компьютер включен. При выключении компьютера содержимое оперативной памяти стирается. Таким образом ОЗУ - энергозависимая память.

Рис. 1. Основные виды основной памяти

Часто для оперативной памяти используют обозначение RAM (random access memory, т.е. память с произвольным доступом). Под произвольным доступом понимают возможность непосредственного доступа к любой (произвольной) заданной ячейки памяти, причем время доступа для любой ячейки одинаково.

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

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

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

Стоимость оперативной памяти в последнее время резко упала (с лета 1995 до лета 1996 г. - более чем в 4 раза), поэтому большие запросы многих программ и операционных систем к оперативной памяти с финансовой точки зрения стали менее обременительны.

Для ускорения доступа к оперативной памяти на быстродействующих компьютерах используется стабильная сверхбыстродействующая КЭШ-память, которая располагается, как бы «между» микропроцессором и оперативной памятью и хранит копии наиболее часто используемых участков оперативной памяти. При обращении микропроцессора к памяти сначала производится поиск нужных данных из КЭШ-памяти. Поскольку время доступа к КЭШ-памяти в несколько раз меньше, чем к обычной памяти, а в большинстве случаев необходимые микропроцессору данные уже хранятся в КЭШ-памяти, среднее время доступа к памяти уменьшается. КЭШ-память реализуется на микросхеме SRAM (статическая ОП).

Для компьютеров на основе Intel-386DX или 80386SX размер КЭШ-памяти в 64 Кбайт является удовлетворительным, а 128 Кбайт вполне достаточным. Компьютеры на основе Intel-80486DX, DX2, DX4 и Pentium обычно оснащаются КЭШ-памятью емкостью 256 Кбайт.

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

В микропроцессоре Pentium Pro КЭШ-память второго уровня содержится в едином корпусе с самим процессором (можно сказать она встроена в микропроцессор).

Не обязательно иметь всю память, информация в которой должна меняться. Часть наиболее важной информации лучше постоянно хранить в памяти компьютера. Эту память называют постоянной. Данные в постоянную память занесены при ее изготовлении. Как правило, эти данные не могут быть изменены, выполняемые на компьютере программы могут только их считывать. Такой вид памяти обычно называют ROM (read only mеmory, или память только для чтения), или ПЗУ (постоянное запоминающее устройство).

В IBM PC - совместимом компьютере в постоянное памяти хранятся программы для проверки оборудования, компьютера, инициирования загрузки операционной системы (ОС) и выполнения базовых функций по обслуживанию устройств компьютера. Поскольку большая часть этих программ связана с обслуживанием ввода-вывода, часто содержимое постоянной памяти называется BIOS (Basic Input - output System, или базовая система ввода -вывода).

Во многих компьютерах устанавливается BIOS на основе ФЛЕШ-памяти. Такая память может быть изменена программами, что позволяет обновлять BIOS с помощью специальных программ, без замены материнской платы или микросхемы BIOS.

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

Емкость ФЛЕШ-памяти от 32 Кбайт до 2 Мбайт, время доступа по считыванию 0,06 мкс, время записи одного байта примерно 10 мкс; ФЛЕШ-память - энергонезависимое ЗУ.

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

Таким образом, емкость основной памяти состоит из миллионов отдельных ячеек памяти емкостью 1 байт каждая. Общая емкость основной памяти современных ПК обычно лежит в пределах от 1 до 4 Гбайт. Емкость ОЗУ на один два порядка превышает емкость ПЗУ: ПЗУ занимает на новых системных платах до 2 Мбайт), остальное объем ОЗУ.

Тема 3.1Организация вычислений в вычислительных системах

Назначение и характеристики ВС. Организация вычислений в вычислительных системах. ЭВМ параллельного действия, понятия потока команд и потока данных. Ассоциативные системы. Матричные системы. Конвейеризация вычислений. Конвейер команд, конвейер данных. Суперскаляризация.

Студент должен

знать:

Понятие потока команд;

Понятие потока данных;

Типы вычислительных систем;

Архитектурные особенности вычислительных систем

Вычислительные системы

Вычислительная система (ВС) – совокупность взаимосвязанных и взаимодействующих процессоров или ЭВМ, периферийного оборудования и программного обеспечения, предназначенная для сбора, хранения, обработки и распределения информации.

Создание ВС преследует следующие основные цели:

· повышение производительности системы за счёт ускорения процессов обработки данных;

· повышение надёжности и достоверности вычислений;

· предоставление пользователю дополнительных сервисных услуг т.д.

Тема 3.2

Классификация ВС в зависимости от числа потоков команд и данных: ОКОД (SISD), ОКМД (SIMD), МКОД (MISD), МКМД (MIMD).

Классификация многопроцессорных ВС с разными способами реализации памяти совместного использования: UMA, NUMA, СОМА. Сравнительные характеристики, аппаратные и программные особенности.

Классификация многомашинных ВС: МРР, NDW и COW. Назначение, характеристики, особенности.

Примеры ВС различных типов. Преимущества и недостатки различных типов вычислительных систем.

Классификация вычислительных систем

Отличительной особенностью ВС по отношению к классическим ЭВМ является наличие в ней нескольких вычислителей, реализующих параллельную обработку .

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

Вычислительные системы можно разделить на две группы:

· многомашинные ;

· многопроцессорные .

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

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

Недостатком является возможность возникновения конфликтных ситуаций при обращении нескольких процессоров к одной области памяти.

Особенностью многопроцессорных вычислительных систем является наличие общей оперативной памяти в качестве общего ресурса (рисунок 11).

Рисунок 11 - Архитектура многопроцессорной вычислительной системы

Классификация Флинна

Среди всех рассматриваемых систем классификации ВС наибольшее распространение получила классификация, предложенная в 1966г М. Флинном. В её основу положено понятие потока , под которым понимается последовательность элементов команд или данных, обрабатываемая процессором. В зависимости от количества потоков команд и потоков данных Флинн выделяет 4 класса архитектур:

· ОКОД – одиночный поток команд - одиночный поток данных. К ним относятся классические фон – неймановские ВМ. Конвейерная обработка не имеет значения, поэтому в класс ОКОД попадают как ВМ 6600 со скалярными функциональными устройствами, так и 7600 с конвейерными.

· МКОД – множественный поток команд - одиночный поток данных. В этой архитектуре множество процессоров обрабатывают один и тот же поток данных. Примером могла бы служить ВС, на процессоры которой подаётся искажённый сигнал, а каждый из процессоров обрабатывает этот сигнал с помощью своего алгоритма фильтрации. Тем не менее ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не сумели представить реально существующей ВС, построенной на данном принципе. Ряд исследователей относят к этому классу конвейерные системы, однако это не нашло окончательного признания. Наличие пустого класса не следует считать недостатком классификации Флинна. Такие классы могут стать полезными при разработке новых концепций в теории и практике построения ВС.

· ОКМД – один поток команд – много потоков данных – команды выдаются одним управляющим процессором, а выполняются одновременно на всех обрабатывающих процессорах над локальными данными этих процессоров. SIMD (single instruction – multiple data)

· МКМД – много потоков команд - много потоков данных- совокупность компьютеров, работающих по своим программам со своими исходными данными. MIMD (multiple instruction – multiple data)

Схема классификации Флинна является наиболее распространённой при первоначальной оценке ВС, поскольку сразу позволяет оценить базовый принцип работы системы. Однако у классификации Флинна имеются и очевидные недостатки: например, неспособность однозначно отнести некоторые архитектуры к тому или иному классу. Второй недостаток - чрезмерная насыщенность класса MIMD.

Существующие вычислительные системы класса MIMD образуют три подкласса: симметричные мультипроцессоры (SMP) , кластеры и массово параллельные системы (MPP). В основе этой классификации лежит структурно – функциональный подход.

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

Использование SMP обеспечивает следующие возможности:

· масштабирование приложений при низких начальных затратах, путём применения без преобразования приложений на новых более производительных аппаратных средствах;

· создание приложений в привычных программных средах;

· одинаковое время доступа ко всей памяти;

· возможность пересылки сообщений с большой пропускной способностью;

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

Кластерная система образуется из модулей, объединённых системой связи или разделяемыми устройствами внешней памяти, например, дисковыми массивами.

Размер кластера варьируется от нескольких модулей до нескольких десятков модулей.

В рамках как совместно используемой, так и распределенной памяти реализуется несколько моделей архитектур системы памяти. На рисунке 12 приведена классификация таких моделей, применяемых в вычислительных системах класса MIMD (верна и для класса SIMD).

Рисунок 12 – Классификация моделей архитектур памяти вычислительных систем

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

Вычислительные системы с общей памятью, где доступ любого процессора к памяти производится единообразно и занимает одинаковое время, называют системами с однородным доступом к памяти и обозначают аббревиатурой UMA (Uniform Memory Access). Это наиболее распространенная архитектура памяти параллельных ВС с общей памятью

Технически UMА-системы предполагают наличие узла, соединяющего каждый из п процессоров с каждым из т модулей памяти. Простейший путь построения таких ВС - объединение нескольких процессоров (Р i .) с единой памятью (М P) посредством общей шины - показан на рисунке 12а. В этом случае, однако, в каждый момент времени обмен по шине может вести только один из процессоров, то есть процессоры должны соперничать за доступ к шине. Когда процессор Р i , выбирает из памяти команду, остальные процессоры Р j (i ≠ j )должны ожидать, пока шина освободится. Если в систему входят только два процессора, они в состоянии работать с производительностью, близкой к максимальной, поскольку их доступ к шине можно чередовать: пока один процессор декодирует и выполняет команду, другой вправе использовать шину для выборки из памяти следующей команды. Однако когда добавляется третий процессор, производительность начинает падать. При наличии на шине десяти процессоров кривая быстродействия шины (рисунок 12б)становится горизонтальной, так что добавление 11-го процессора уже не дает повышения производительности. Нижняя кривая на этом рисунке иллюстрирует тот факт, что память и шина обладают фиксированной пропускной способностью, определяемой комбинацией длительности цикла памяти и протоколом шины, и в многопроцессорной системе с общей шиной эта пропускная способность распределена между несколькими процессорами. Если длительность цикла процессора больше по сравнению с циклом памяти, к шине можно подключать много процессоров. Однако фактически процессор обычно намного быстрее памяти, поэтому данная схема широкого применения не находит.

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

К сожалению, архитектура UMA не очень хорошо масштабируется. Наиболее распространенные системы содержат 4-8 процессоров, значительно реже 32-64 процессора. Кроме того, подобные системы нельзя отнести к отказоустойчивым , так как отказ одного процессора или модуля памяти влечет отказ всей ВС.

Рисунок 13 - Общая память:

а)объединение процессоров с помощью шины и система с локальными кэшами;

б) производительность системы как функция от числа процессоров на шине;

в) многопроцессорная ВС с общей памятью, состоящей из отдельных модулей

Другим подходом к построению ВС с общей памятью является неоднородный доступ к памяти , обозначаемый как NUMA (Non-Uniform Memory Access). Здесь, по-прежнему, фигурирует единое адресное пространство, но каждый процессор имеет локальную память. Доступ процессора к собственной локальной памяти производится напрямую, что намного быстрее, чем доступ к удаленной памяти через коммутатор или сеть. Такая система может быть дополнена глобальной памятью, тогда локальные запоминающие устройства играют роль быстрой кэш-памяти для глобальной памяти. Подобная схема может улучшить производительность ВС, но не в состоянии неограниченно отсрочить выравнивание прямой производительности. При наличии у каждого процессора локальной кэш-памяти (рисунок 13а) существует высокая вероятность (р> 0,9) того, что нужные команда или данные уже находятся в локальной памяти. Разумная вероятность попадания в локальную память существенно уменьшает число обращений процессора к глобальной памяти и, таким образом, ведет к повышению эффективности. Место излома кривой производительности (верхняя кривая на рисунке 13б), соответствующее точке, в которой добавление процессоров еще остается эффективным, теперь перемещается в область 20 процессоров, а точка, где кривая становится горизонтальной, - в область 30 процессоров.

В рамках концепции NUMA реализуется несколько различных подходов, обозначаемых аббревиатурами СОМА, CC-NUMA и NCC-NUMA.

В архитектуре только с кэш-памятью (СОМА, Cache Only Memory Architecture) локальная память каждого процессора построена как большая кэш-память для быстрого доступа со стороны «своего» процессора. Кэши всех процессоров в совокупности рассматриваются как глобальная память системы. Собственно глобальная память отсутствует. Принципиальная особенность концепции СОМА выражается в динамике. Здесь данные не привязаны статически к определенному модулю памяти и не имеют уникального адреса, остающегося неизменным в течение всего времени существования переменной. В архитектуре СОМА данные переносятся в кэш-память того процессора, который последним их запросил, при этом переменная не фиксирована уникальным адресом и в каждый момент времени может размещаться в любой физической ячейке. Перенос данных из одного локального кэша в другой не требует участия в этом процессе операционной системы, но подразумевает сложную и дорогостоящую аппаратуру управления памятью. Для организации такого режима используют так называемые каталоги кэшей . Отметим также, что последняя копия элемента данных никогда из кэш-памяти не удаляется.

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

Модель кэш-когерентного доступа к неоднородной памяти (CC-NUMA, Cache Coherent Non-Uniform Memory Architecture) принципиально отличается от модели СОМА. В системе CC-NUMA используется не кэш-память, а обычная физически распределенная память. Не происходит никакого копирования страниц или данных между ячейками памяти. Нет никакой программно реализованной передачи сообщений. Существует просто одна карта памяти, с частями, физически связанными медным кабелем, и «умные» аппаратные средства. Аппаратно реализованная кэш-когерентность означает, что не требуется какого-либо программного обеспечения для сохранения множества копий обновленных данных или их передачи. Со всем этим справляется аппаратный уровень. Доступ к локальным модулям памяти в разных узлах системы может производиться одновременно и происходит быстрее, чем к удаленным модулям памяти.

Отличие модели с кэш-некогерентным доступом к неоднородной памяти (NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) от CC-NUMA очевидно из названия. Архитектура памяти предполагает единое адресное пространство, но не обеспечивает согласованности глобальных данных на аппаратном уровне. Управление использованием таких данных полностью возлагается на программное обеспечение (приложения или компиляторы). Несмотря на это обстоятельство, представляющееся недостатком архитектуры, она оказывается весьма полезной при повышении производительности вычислительных систем с архитектурой памяти типа DSM, рассматриваемой в разделе «Модели архитектур распределенной памяти».

В целом, ВС с общей памятью, построенные по схеме NUMA, называют архитектурами с виртуальной общей памятью (virtual shared memory architectures). Данный вид архитектуры, в частности CC-NUMA, в последнее время рассматривается как самостоятельный и довольно перспективный вид вычислительных систем класса M1MD.

Модели архитектур распределенной памяти. В системе с распределенной памятью каждый процессор обладает собственной памятью и способен адресоваться только к ней. Некоторые авторы называют этот тип систем многомашинными ВС или мультикомпьютерами , подчеркивая тот факт, "что блоки, из которых строится система, сами по себе являются небольшими вычислительными системами с процессором и памятью. Модели архитектур с распределенной памятью принято обозначать как архитектуры без прямого доступа к удаленной памяти (NORMA, No Remote Memory Access). Такое название следует из того факта, что каждый процессор имеет доступ только к своей локальной памяти. Доступ к удаленной памяти (локальной памяти другого процессора) возможен только путем обмена сообщениями с процессором, которому принадлежит адресуемая память.

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

Студент должен

знать:

Классификацию ВС;

Примеры ВС различных типов.

уметь:

- выбирать тип вычислительной системы в соответствии с решаемой задачей.


©2015-2019 сайт
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22

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

Из микросхем памяти (чипов) создаются модули памяти, которые устанавливаются в специальные слоты (разъемы) вычислительной системы. Сейчас наиболее распространены DIMM модули - модули памяти с двумя рядами контактов.

Разрядность адресной шины определяет адресное пространство, то есть количество ячеек памяти, которые могут адресоваться непосредственно. Если разрядность адресной шины - n, то количество всех возможных двоичных комбинаций (количество адресов) определится как N = 2n.

Рис. 1. Организация связи системы памяти с процессором

Память вычислительного устройства может выполнять три операции:

a) хранение информации;

b) запись информации;

c) чтение информации.

Характеристики памяти:

Емкость памяти определяет максимальное количество хранимой в памяти информации и измеряется в битах, байтах, килобайтах, мегабайтах, гигабайтах, терабайтах и т.д.

Удельная емкость определяется как отношение емкости памяти к физически занимаемому ею объему.

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

Время доступа к памяти. Быстродействие памяти определяется продолжительностью выполнения операций при обращении к памяти. Время обращения при записи и время обращения при чтении складывается из времени поиска ячейки памяти по заданному адресу и собственно записи или чтения соответственно.

Классификация памяти:

Память с произвольным доступом

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

Прямой циклический доступ

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

Последовательный доступ

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

Безадресная память

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

Классификация памяти по функциональному назначению:

ПЗУ - постоянные запоминающие устройства или ROM (Read Only- Memory), служат для хранения постоянных данных и служебных программ.

СОЗУ - сверхоперативное запоминающее устройство, это набор регистров общего назначения - РОН, предназначенных для хранения операндов и результатов выполнения операции в процессоре.

ОЗУ - оперативное запоминающее устройство или RAM (Random Access Memory - память с произвольной выборкой), служит для хранения выполняемой программы и оперативных данных. Если к любому регистру можно обратиться для записи/чтения по его адресу, то такая регистровая структура образует СОЗУ с произвольным доступом.

Классификация по способу хранения информации:

Статическая память

В статических запоминающих устройствах БИС выполнены на бистабильных триггерных элементах памяти (имеющих два стабильных состояния - отсюда и название памяти).

Динамическая память

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

Постоянная память

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

Голографическая память

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

Биологическая память

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

Память на магнитных носителях

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

Оптическая память

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

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

Прежде чем рассматривать технологию физической организации памяти в ЭВМ, необходимо отметить следующее:

1. Память в ЭВМ имеет многоуровневую организацию.

2.Память классифицируется по способу доступа к данным.

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

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

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

3. По способу хранения.

Статические

Динамические

Постоянные

Флэш память

4.Память в ЭВМ имеет модульную структуру. В основе которой лежит модульное построение, дающее возможность формирование переменного объема накопительного блока путем наращивания или уменьшения числа модулей в конфигурации.

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

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

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

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

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

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



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

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

Для уменьшения влияния циклов регенерации на производительность памяти стали использовать различные методы. Это, во-первых, использование модульной технологии построения ЗУ с организацией банков и чередованием адресов, то есть с размещением данных с четными и нечетными адресами в разных модулях(микросхемах) памяти к которым возможно одновременное обращение в цикле памяти, таким образом совмещая выборку данных в одном модуле с циклом регенерации в другом, при отсутствии режима пакетной выборки то есть одновременной выборки данных по четному и нечетному адресу.

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

Что касается архитектуры самих ЗУ, которые предназначены для хранения,

записи и считывания данных можно отметить следующее.

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

Увеличение емкости памяти

Увеличение быстродействия

Повышение надежности хранения и снижение энергоемкости памяти.

Если системная память современных 32х разрядных компьютеров,имеющих адресную шину обращения к памяти в 32 разряда, дает возможность наращивать свою емкость до 4ГБТ, то для ЭВМ 2и 3 поколений, имеющих ферритовую память, емкость даже суперкомпьютеров того времени исчислялась только десятками и сотнями кбт Так емкость памяти БЭСМ6 отечественного суперкомпьютера в свое время составляла около768кбт,даже не доходя до мегабайтной границы.

Скачок в объеме оперативной памяти произошел с введением полупроводниковой технологии при изготовлении запоминающих устройств памяти,благодаря которой емкость оперативной памяти перешагнула мегабайтный рубеж. Одной из первых ЭВМ, которая имела такую память была IBM7030 в1961году.Размер ее памяти составлял 2МГБТ. Конструкторские наработки в этой машине были использованы позже в известных сериях машин IBM360 и IBM370. Эти машины, имеющие адресные шины обращения к памяти в 24 разряда имели возможность наращивания объемов своих памятей до16 МГБТ. С внедрением 32х разрядной шины в таких ЭВМ как ESA370, IBM4381 память хоть и не перешла гигабайтную границу, но имела возможность наращивания от 16 до64мгбт.

Современные мейнфреймы Zархитектуры такие,например, как Z9BC имеют возможность наращивания до 64ГБТ,имея 64 разрядную шину, а ЭВМZ10 даже до 1,5ТРБТ.

Что же касается наших отечественных ЭВМ объем оперативной памяти машин ЕС Ряд 3(ЕС1046,ЕС1066) достиг 8Мгбт, машин которым суждено было закончить свой исторический путь развития на этом этапе.

Были еще ЭВМ класса суперкомпьютеров, предназначенных для оборонных целей системы ПРО,которые имели емкость памяти большего размера, например, проект М13(объем оперативной памяти этого суперкомпьютера имел возможность расширения до34мгбт).

Следующей одной из основных характеристик физической организации памяти является время выборки данных,которое составляло для ЭВМ 2ого поколения, имеющих память на магнитных сердечниках, 10-12мкск. И только с внедрением полупроводниковой памяти время выборки данных сократилось на порядок и стало от 1,5 до0,5мкск.

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

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

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

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

Реальная память стала разбиваться на физические страницы, размеры которых соответствовали размеру виртуальных страниц.

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим, какие аппаратные средства необходимы для преобразования логических адресов в физические.

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

Поэтапный механизм преобразования логического адреса в физический(при разбиении старшей части логического адреса на две части) происходит в следующем порядке:

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

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

3. Организуется цикл обращения в память к строке в таблице страниц. Адрес строки формируется путем сложения базового адреса, считанного из строки каталога и кода, соответствующего значению разрядов в группе, следующей за группой разрядов каталога.

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

И так в соответствии с вышеописанным алгоритмом аппаратными средствами поддержки преобразования логических адресов в физические являются:

1. Область оперативной памяти, выделяемой для хранения таблиц. Эта область является пространством, в котором не действует механизм преобразования.

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

3. Сумматор для выполнения операций сложения адресной арифметики.

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

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

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

Следует отметить, что идеология сегментации виртуальной памяти в вычислительных системах трактуется по- разному. Например, этап сегментации в процессе преобразования логических адресов в физические в системах фирмы IBM(IBM360,IBM370,сервера Zархитектуры) неотделим от этапа страничного преобразования, являясь предшествующим этапом перед этапом преобразования страниц также как в системахINTEL, он управляется только старшей частью адресов логического адреса, средняя часть адреса и младшая группа адресов участвует только при страничном преобразовании. Тем самым осуществляя неразделимую логическую связь между этапами, разбивая виртуальную память вначале на сегменты- области большого размера а потом сегменты на страницы.

В серверах Zархитектуры размер виртуального адреса был увеличен до64 разрядов, что дало возможность адресовать виртуальную память объемом до 16 эксабайт. Что же касается многомерности логической памяти в этих серверах, то аппаратная часть их дает возможность иметь до4х типов виртуальных независимых друг от друга адресных пространств с количеством пространств в двух из них по 64К и в двух оставшихся по 16 со своими табличными преобразованиями для каждого типа, которые используются для построения виртуальных логических образований- логических партиций,в каждой из которых функционирует своя операционная система. Каждый тип виртуальных адресов, связан с типом своей виртуальной памятью подвержен одному и тому же механизму преобразования со своими наборами таблиц. Следовательно, следуя понятиям и терминологии, рассмотренными выше, память в этих серверах можно считать набором из 4х типов одномерных виртуальных памятей с пятиэтапным преобразованием,имеющими пять видов областей: страница, сегмент, регион1, регион2, регион3.

Схема преобразования виртуальных адресов в серверах Zархитектуры

Организация подсистемы памяти в ПК

Запоминающие устройства (ЗУ) подсистемы памяти ПК можно выстроить в следующую иерархию (табл. 9.1):

Таблица 9.1. Иерархия подсистемы памяти ПК
Тип ЗУ 1985 г. 2000 г.
Время выборки Типичный объем Цена / байт Время выборки Типичный объем Цена / байт
Сверхоперативные ЗУ (регистры) 0,2 5 нс 16/32 бит $ 3 - 100 0,01 1 нс 32/64/128 бит $ 0,1 10
Быстродействующее буферное ЗУ (кэш) 20 100 нс 8Кб - 64Кб ~ $ 10 0,5 - 2 нс 32Кб 1Мб $ 0,1 - 0,5
Оперативное (основное) ЗУ ~ 0,5 мс 1Мб - 256Мб $ 0,02 1 2 нс 20 нс 128Мб - 4Гб $ 0,01 0,1
Внешние ЗУ (массовая память) 10 - 100 мс 1Мб - 1Гб $ 0,002 - 0,04 5 - 20 мс 1Гб - 0,5Тб $ 0,001 - 0,01

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

Кэш используется для согласования скорости работы ЦП и основной памяти. В вычислительных системах используют многоуровневый кэш: кэш I уровня (L1), кэш II уровня (L2) и т.д. В настольных системах обычно используется двухуровневый кэш, в серверных - трехуровневый. Кэш хранит команды или данные, которые с большой вероятностью в ближайшее время поступят процессору на обработку. Работа кэш-памяти прозрачна для программного обеспечения, поэтому кэш-память обычно программно недоступна.

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

Каждой ячейке оперативной памяти присвоен уникальный адрес. Организационные методы распределения памяти предоставляют программистам возможность эффективного использования всей компьютерной системы. К таким методам относят сплошную ("плоскую") модель памяти и сегментированную модель памяти. При использовании сплошной модели (flat model) памяти программа оперирует единым непрерывным адресным пространством линейным адресным пространством, в котором ячейки памяти нумеруются последовательно и непрерывно от 0 до 2n-1, где n - разрядность ЦП по адресу. При использовании сегментированной модели (segmented model) для программы память представляется группой независимых адресных блоков, называемых сегментами. Для адресации байта памяти программа должна использовать логический адрес, состоящий из селектора сегмента и смещения. Селектор сегмента выбирает определенный сегмент, а смещение указывает на конкретную ячейку в адресном пространстве выбранного сегмента.



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

Кроме реализации системы виртуальной памяти внешние ЗУ используются для долговременного хранения программ и данных в виде файлов.

Кэш-память

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



Если ЦП обратился к какому-либо объекту оперативной памяти, с высокой долей вероятности ЦП вскоре снова обратится к этому объекту. Примером этой ситуации может быть код или данные в циклах. Эта концепция описывается принципом временной локальности, в соответствии с которым часто используемые объекты оперативной памяти должны быть "ближе" к ЦП (в кэше).

Для согласования содержимого кэш-памяти и оперативной памяти используют три метода записи:

  • Сквозная запись (write through) - одновременно с кэш-памятью обновляется оперативная память.
  • Буферизованная сквозная запись (buffered write through) - информация задерживается в кэш-буфере перед записью в оперативную память и переписывается в оперативную память в те циклы, когда ЦП к ней не обращается.
  • Обратная запись (write back) - используется бит изменения в поле тега, и строка переписывается в оперативную память только в том случае, если бит изменения равен 1.

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

В структуре кэш-памяти выделяют два типа блоков данных:

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

Пространство памяти отображения данных в кэше разбивается на строки - блоки фиксированной длины (например, 32, 64 или 128 байт). Каждая строка кэша может содержать непрерывный выровненный блок байт из оперативной памяти. Какой именно блок оперативной памяти отображен на данную строку кэша, определяется тегом строки и алгоритмом отображения. По алгоритмам отображения оперативной памяти в кэш выделяют три типа кэш-памяти:

  • полностью ассоциативный кэш;
  • кэш прямого отображения;
  • множественный ассоциативный кэш.

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

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

Увеличить изображение
Рис. 9.1. Полностью ассоциативный кэш 8х8 для 10-битного адреса

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

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

Увеличить изображение
Рис. 9.2. Кэш прямого отображения 8х8 для 10-битного адреса

Несмотря на очевидные недостатки, данная технология нашла успешное применение, например, в МП Motorola MC68020, для организации кэша инструкций первого уровня (рис. 9.3). В данном микропроцессоре реализован кэш прямого отображения из 64 строк по 4 байт. Тег строки, кроме 24 бит, задающих адрес кэшированного блока, содержит бит значимости, определяющий действительность строки (если бит значимости 0, данная строка считается недействительной и не вызовет кэш-попадания). Обращения к данным не кэшируются.

Увеличить изображение
Рис. 9.3. Схема организации кэш-памяти в МП Motorola MC68020

Компромиссным вариантом между первыми двумя алгоритмами является множественный ассоциативный кэш или частично-ассоциативный кэш (рис. 9.4). При этом способе организации кэш-памяти строки объединяются в группы, в которые могут входить 2, 4, : строк. В соответствии с количеством строк в таких группах различают 2-входовый, 4-входовый и т.п. ассоциативный кэш. При обращении к памяти физический адрес разбивается на три части: смещение в блоке (строке кэша), номер группы (набора) и тег. Блок памяти, адрес которого соответствует определенной группе, может быть размещен в любой строке этой группы, и в теге строки размещается соответствующее значение. Очевидно, что в рамках выбранной группы соблюдается принцип ассоциативности. С другой стороны, тот или иной блок может попасть только в строго определенную группу, что перекликается с принципом организации кэша прямого отображения. Для того чтобы процессор смог идентифицировать кэш-промах, ему надо будет проверить теги лишь одной группы (2/4/8/: строк).

Увеличить изображение
Рис. 9.4. Двухвходовый ассоциативный кэш 8х8 для 10-битного адреса

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

Таблица 9.2. Характеристики подсистемы кэш-памяти у ЦП IA-32
Intel486 Pentium Pentium MMX P6 Pentium 4
L1 кэш команд
Тип 4-вх. ассоц. 2-вх. ассоц. 4-вх. ассоц. 4-вх. ассоц. 8-вх. ассоц.
Размер строки, байт -
Общий объем, Кбайт 8/16 8/16 12Кmops
L1 кэш данных
Тип Общий с кэш инструкций 2-вх. ассоц. 4-вх. ассоц. 2/4-вх. ассоц. 4-вх. ассоц.
Размер строки, байт
Общий объем, Кбайт 8/16
L2 кэш
Тип Внешний внешний 4-вх. ассоц. 4-вх. ассоц. 8-вх. ассоц.
Размер строки, байт
Общий объем, Кбайт 256/512 128-2048 256/512

Примечания: В Intel-486 используется единый кэш команд и данных первого уровня. В Pentium Pro L1 кэш данных - 8 Кбайт 2-входовый ассоциативный, в остальных моделях P6 - 16 Кбайт 4-входовый ассоциативный. В Pentium 4 вместо L1 кэша команд используется L1 кэш микроопераций (кэш трассы).

Для организации кэш-памяти можно использовать принстонскую архитектуру (смешанный кэш для команд и данных, например, в Intel-486). Это очевидное (и неизбежное для фон-неймановских систем с внешней по отношению к ЦП кэш-памятью) решение не всегда бывает самым эффективным. Разделение кэш-памяти на кэш команд и кэш данных (кэш гарвардской архитектуры) позволяет повысить эффективность работы кэша по следующим соображениям:

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

Именно поэтому все последние модели IA-32, начиная с Pentium, для организации кэш-памяти первого уровня используют гарвардскую архитектуру.

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

T ср = (T hit x R hit) + (T miss x (1 R hit))

где T hit - время доступа к кэш-памяти в случае попадания (включает время на идентификацию промаха или попадания), T miss - время, необходимое на загрузку блока из основной памяти в строку кэша в случае кэш-промаха и последующую доставку запрошенных данных в процессор, R hit - частота попаданий.

Очевидно, что чем ближе значение R hit к 1, тем ближе значение T ср к T hit . Частота попаданий определяется в основном архитектурой кэш-памяти и ее объемом. Влияние наличия и отсутствия кэш-памяти и ее объема на рост производительности ЦП показано в табл. 9.3.