Статические ОЗУ с произвольным доступом
В статическом ОЗУ информация в ячейках памяти хранится до тех пор, пока подается напряжение питания. Типовым представителем статического ОЗУ с произвольным доступом (RAM – random access memory) являются микросхемы памяти серии КР537. В качестве примера рассмотрим структуру БИС КР537ЗУ3, условное обозначение которой изображено на рис.5.3,а.
Рисунок 5.3 – Условное обозначение и структура БИС ОЗУ с произвольным доступом |
Как видно из схемы ОЗУ, в нем содержится 212 = 4К однобитовых ячеек памяти. Выходная линия данных может быть переведена в состояние высокого импеданса (значок ◊) путем подачи высокого уровня на вход CS. Запись данных в ячейку памяти осуществляется при наличии нулевого уровня на входе WE (Write Enable).
Рисунок 5.4 - Схема организации матрицы запоминающих ячеек |
ОЗУ серии К537 выполнены на основе КМОП – технологии. В состав серии входят БИС: К537РУ2…РУ10. БИС РУ3 совместима с ТТЛ-схемами как по входам, так и по выходам. Особенности ОЗУ является способность сохранять информацию при пониженном напряжении источника питания.
Микросхемы памяти КР537РУ8 и РУ10 имеют организацию 2048´8 бит. Структурная схема ОЗУ с организацией 2048´8 бит показана на рисунке 4.3. Запоминающие ячейки ОЗУ организованы в виде матрицы размером 128 ´ 128 ячеек, состоящей из 128 строк и 16 столбцов, выбирающих по 8 триггеров. Структура матрицы запоминающих элементов показана на рисунке 5.4.
В состав БИС входят также адресные буферы BF строк и столбцов и соответствующие им дешифраторы DCS и DCK, усилители записи/чтения DD и блок управления CU. Схема однобитовой ячейки памяти статического ЗУ изображена на рисунке 4.5.
Она представляет собой статический триггер, состоящий из четырех МДП-транзисторов Т3-Т5, плечи которого через ключевые транзисторы Т1,Т2 и Т7,Т8 подключены к шинам данных ШД0 и ШД1. Подключение ячейки к шине данных происходит только при одновременной подаче единичных сигналов на линии выбора ячейки Х и У. Данные записываются в ячейку памяти и считываются из нее в парафазном коде (наличие уровней «0» и «1» одновременно). Работа ячейки подробно рассматривалась в курсе электроники.
ОЗУ динамического типа
В запоминающих устройствах динамического типа информация хранится в виде заряда на конденсаторе. Поэтому питание на ОЗУ подается не постоянно, а только в очень короткие промежутки времени. Оно используется для восстановления заряда на конденсаторах матрицы ОЗУ. Благодаря импульсному питанию динамические ОЗУ потребляют в тысячи раз меньше мощности, чем аналогичные по емкости статические.
В микросхемах динамической памяти функции запоминающих элементов выполняют электрические конденсаторы, образованные внутри МДП-структуры. Поскольку время сохранения заряда на конденсаторе ограничено, необходимо предусмотреть восстановление (регенерацию) записанной информации. Период регенерации для динамических ОЗУ равен нескольким миллисекундам (для микросхем серии К565 время регенерации 2 мс).
Микросхемы (МС) большинства динамических ОЗУ с целью уменьшения количества выводов построены с мультиплексированием кода адреса: вначале в МС вводят код строки А0 – А7, фиксируя его во входном регистре стробирующим сигналом RAS (Row Address Strobe), а затем код адреса столбца А8 – А13, фиксируя его во внутреннем регистре стробирующим сигналом CAS (Column Address Strobe).
В режиме регенерации микросхема ОЗУ изолируется от информационных входа и выхода за счет подачи сигнала CAS = 1. Следовательно, адресуются только строки, т.к. регенерация информации происходит во всех элементах памяти строки одновременно.
Перебирая адреса строк, устройство регенерации обеспечивает восстановление информации во всей матрице накопителя. Условное обозначение БИС динамического ОЗУ типа К565РУ5 и временная диаграмма функционирования показаны на рисунке 5.6.
Рисунок 5.6 – Условное обозначение и временная диаграмма функционирования динамического ОЗУ |
Схема динамической ячейки памяти на 8 транзисторах показана на рисунке 5.7. Она отличается от аналогичной ячейки статического ОЗУ только тем, что затворы транзисторов Т3 и Т6 соединены с генератором импульсов регенерации, а не с источником питания.
Рисунок 5.7 - Схема ячейки памяти динамического ОЗУ | Рисунок 5.8 – Схема однотранзисторной ячейки динамического ОЗУ |
Для хранения информации используются не специально встроенные конденсаторы, а конденсаторы, образованные паразитными емкостями затвор-сток и исток-сток транзисторов Т4 и Т5. Такая ячейка памяти использовалась только в первых образцах динамических ОЗУ. Очевидно, что для хранения одного бита достаточно одного конденсатора. Поэтому впоследствии схема ячейки была существенно упрощена и в настоящее время имеет вид, изображенный на рисунке 5.8. При записи на вертикальную линию подается напряжение уровня данных, а на горизонтальную – импульс выбора строки.
За счет уменьшения количества транзисторов на одну ячейку удалось существенно увеличить емкость динамической памяти, располагаемой на одном кристалле и снизить потребление энергии от источника питания.
5.5. Постоянные запоминающие устройства
Постоянные запоминающие устройства (ПЗУ) являются энергонезависимыми устройствами, служащими для хранения цифровых данных. ПЗУ могут быть построены на пассивных элементах (плавких перемычках П или диодах D) или активных (транзисторах). Схема ПЗУ представляет собой матрицу (рисунок 5.9) количество горизонтальных линий равно разрядности хранимого слова, а число вертикальных – количеству хранимых слов.
Как видно из схемы, при активации адресной линии вертикальная шина соединяется с сигнальной землей и диоды, подключенные к этой шине, шунтируют линии данных на "землю". Таким образом, если горизонтальная линии данных соединена с вертикальной через диод (или перемычку), то при выборе адресной линии, на выходе линии данных будет потенциал близкий к нулю, т. е. логический 0. Если диод или перемычка отсутствуют в данном узле, то на соответствующем выходе линии данных присутствует высокий потенциал, близкий к ЕП, т.е. логическая 1. Обычно такие ПЗУ изготавливаются со всеми диодами (или плавкими перемычками) в узлах матрицы. В тех узлах, в которых диод или перемычка должны отсутствовать, их убирают путем выжигания. Эта процедура выполняется в процессе программирования ПЗУ и называется "прожиганием ПЗУ". | |
Рисунок 5.9 – Схема матричного ПЗУ |
Запись информации в ПЗУ осуществляется пословно (побайтно). Для занесения информации в ячейку ПЗУ необходимо на линии данных, в которых должна быть "1", подать высокий потенциал (≈ 25 В) и выбрать соответствующую адресную линию, т.е. соединить ее с сигнальной землей. Протекающий ток расплавляет диод или плавкую перемычку, исключая тем самым шунтирующую цепь соответствующей линии данных.
Недостаток рассмотренной схемы ПЗУ состоит в том, что после занесения информации в это устройство ее нельзя изменить. То есть, при изменении программы, подлежащей хранению в ПЗУ, необходимо запрограммировать новое устройство. Для устранения этого недостатка разработаны полупостоянные электрически перепрограммируемые постоянные запоминающие устройства (ЭППЗУ). Схема ЭППЗУ подобна ПЗУ на основе МОП транзисторов, однако транзисторы в таком устройстве имеют "плавающий" затвор, который электрически изолирован оксидным слоем полупроводникового материала. Схема ЭППЗУ изображена на рисунке 5.10. При подаче на "плавающий" затвор (ПЗ) положительного потенциала по отношению к стоку транзистора на ПЗ индуцируется электрический заряд, который за счет высококачественной изоляции может сохраняться до 10 лет и более. Благодаря этому заряду транзистор находится в открытом состоянии, при котором сопротивление Сток-Исток становится близким к нулю.
За счет шунтирования соответствующей линии данных на ее выходе устанавливается потенциал логического нуля. При отсутствии заряда на ПЗ транзистор остается в закрытом состоянии и на выходе данных имеется потенциал. близкий к Еп (уровень логической 1). Полярность и значение напряжений при записи и стирании информации в ячейки ЭППЗУ показаны на схеме. | |
Рисунок 5.10 – Схема электрически перепрограммируемого запоминающего устройства |
Кэш-память и ее организация
Кэш-память ― это быстродействующая память, располагаемая между МП и основной памятью. Она предназначена для повышения производительности компьютеров. Быстродействующая память обычно является дорогостоящей, поэтому повышать быстродействие всей основной памяти большой емкости не выгодно. В связи, с чем предлагается реализовать память небольшой емкости с предельным быстродействием ― кэш-памяти. В кэш-память помещают текущие программы и данные, хранящиеся обычно в основной памяти. При выполнении программы процессор сначала передает адресный сигнал в кэш-память, с помощью которого можно осуществить запись–считывание. Наличие этого адреса в кэш-памяти называется совпадением КЭШа, а отсутствие ― несовпадением.
Кэш-память представляет собой быстродействующую память, в которую из основной памяти с умеренной скоростью переносятся команды и данные (выбранные участки ОЗУ копируются в кэш). Структурная схема системы подключения кэш-памяти в ЭВМ изображена на рисунке 5.11.
Кэш-память была предложена, когда появились процессоры, работающие значительно быстрее ОЗУ. Они вынуждены были ожидать, пока из памяти будут введены требуемые элементы данных. В системах с кэшированием информация пересылается из вторичной памяти (с жесткого диска) в основную память, а затем в кэш-память. Чтобы данные попали в кэш, нужно выполнить следующие действия:
В начале работы программа, обращаясь к своему адресному пространству, передает устройству управления памятью или микропрограмме виртуальный адрес. Если страница или сегмент, содержащие этот адрес, находятся в основной памяти, виртуальный адрес преобразуется в адрес основной памяти. В противном случае возникает отказ страницы, и страница или сегмент загружается в основную память.
После этого аппаратно проверяется, не находится ли требуемый блок уже в кэш-памяти. Если это так, то содержимое адресуемой ячейки извлекается из кэша (либо результат вычисления заносится в ячейку). В противном случае формируется отказ кэш-блока (аналогичный отказу страницы) и информация копируется из основной памяти в КЭШ. После загрузки блока в кэш-память команда выполняется повторно. Схема загрузки из основной в кэш-память управляется внешней (по отношению к ЦП) схемой – кэш-контроллером и без участия ОС.
Следует заметить, что использование кэш-памяти является возможным только потому, что команды и данные программ в большинстве случаев расположены в близлежащих ячейках памяти (локальность программы).
В последующих шагах, когда процессору требуется следующая команда или следующий элемент данных, он сначала обращается к кэш-памяти. Доступ, при котором данные обнаруживаются в кэш-памяти, называется кэш-попаданием. В противном случае фиксируется кэш-промах. Доля обращений, при котором имелось кэш-попадание, называется коэффициентом кэш-попаданий. На величину этого коэффициента влияют размеры и организация КЭШа, алгоритмы поиска и характеристики выполняемой программы. Кэш-память снабжается контроллером, который управляет ее ресурсами и обеспечивает максимальную эффективность доступа. Контроллер разбивает основную память на блоки с типичным размером 2, 4, 8 или 16 байт. 32 – разрядный процессор обычно использует блоки размером 2 или 4 слова. Когда фиксируется кэш-промах, кэш-контроллер перемещает в кэш-память из основной памяти требуемое слово с целым блоком, содержащим это слово. Обращение к любому байту блока приводит к копированию в кэш всего блока.
Существуют три способа организации кэша: полностью ассоциативный, с прямым отображением, частично ассоциативный.
Полностью ассоциативная кэш-память. В этом случае в кэше содержатся наиболее часто используемые процессором блоки данных и их полные адреса. Когда процессор запрашивает данные, кэш-контроллер сравнивает адрес требуемых данных с каждым адресом в кэш-памяти. Для ускорения поиска используют схемы с параллельным поиском, которые содержат компараторы и контроллеры.
Кэш-память с прямым отображением.Каждый блок из основной памяти может занимать одно единственное место в кэше. Это уменьшает число шагов поиска и сравнений, необходимых для фиксации попаданий и промахов. Основной недостаток – конфликтование в кэш-памяти ячеек ОЗУ, которые имеют одно и тоже место хранения в кэше. В этом случае каждый раз нужно будет осуществлять попеременно подкачку этих ячеек. Однако такие случаи встречаются довольно редко и эта кэш-память обладает приемлемой производительностью при невысокой стоимости.
Частично ассоциативная кэш-память.Этот способ кэширования является промежуточным между рассмотренными выше.
Частично ассоциативная кэш-память характеризуется наличием нескольких наборов блоков с прямым отображением, которые функционируют параллельно. Когда из основной памяти поступает блок данных, он может быть записан на соответствующее этому блоку место любого набора. При выборе нового блока кэш-контроллер должен решить, на место которого блока в кэш-памяти его записать. При этом может быть реализован:
§ случайный выбор;
§ запись в последовательном порядке;
§ на место блока, который не адресовался дольше других.
При использовании КЭШ-памяти имеется две копии данных – одна в КЭШ, а другая – в основной памяти. Одна из них может быть модифицирована, а другая нет, т.е. возникает два набора данных с одним адресом памяти.
Наличие двух копий требует механизма обновления, который предотвращал бы использование устаревших данных. Разработано несколько способов записи «новых» данных:
§ сквозная запись – контроллер сразу же после записи данных в кэш переносит их в основную память (потеря производительности);
§ буферизированная сквозная запись – запросы на запись в основную память буферизируются. Это позволяет процессору, не дожидаться окончания записи в основную память, приступить к новому циклу;
§ обратная запись – имеется поле признака каждого блока в кэш-памяти, которое включает бит, показывающий, был ли изменен блок. В основную память переносится только измененный блок. Этот способ обеспечивает максимальную скорость обмена.
В компьютерах на основе МП х386 используется кэш прямого отображения объемом 64 Кбайт на 16384 блока (строки по 4 байта каждая). Адрес в такой памяти имеет две части. Первая часть (поле кэш-индекса) содержит достаточно битов для того, чтобы определить место блока внутри кэш-памяти. Вторая часть (поле тега) содержит достаточно битов для того, чтобы отличить отдельный блок от других блоков, которые могут храниться в конкретном месте кэш-памяти. Каждый блок содержит 32 бит данных и 16 бит теговой информации.
В устройстве управления кэш-памятью используется два компаратора и две программируемые логические матрицы (ПЛМ).
В кэш-памяти прямого отображения МП 386 каждый элемент DRAM отображается в один элемент внутри кэш-памяти. Отображение осуществляется путем разделения 30-разрядного физического адреса процессора на две части: 16-разрядный тег и 14-разрядный индекс. Тег соответствует старшему адресу блока (строки из 4 байт) (А16 – А31), а индекс – младшему адресу строк (А2 – А15). Т.к. каждый элемент ДОЗУ (DRAM) с одинаковыми значениями А2 – А15 отображаются в одно и тоже место в кэше, то лишь один из этих блоков может присутствовать в кэше в любой момент времени. Поле тега и индекса совместно определяют место блока в основной памяти. В дополнение к этому индекс выбирает одно из 16384 мест в кэш-памяти. Самые младшие два бита адреса кодируются так, что становятся доступными все четыре байта слова. Бит А31 определяет различия между некэшируемыми адресами ЭППЗУ и кэшируемыми адресами ДОЗУ.
Если требуемые данные находятся в кэш-памяти, то чтение может быть выполнено за цикл в 2 такта. В противном случае чтение требует 6 тактов.
Кэш-память использует буферизированную сквозную запись для обновления ДОЗУ. кэш-память и ДОЗУ имеют свои собственные контроллеры, это позволяет совмещать буферизированную сквозную запись в ДОЗУ и цикл магистрали.