Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OEVM_Lec_2011(1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.92 Mб
Скачать

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

Тип оперативной памяти важен постольку, поскольку технология изготовления и физические принципы ее функционирования определяют самый важный параметр – быстродействие. Чем выше быстродействие ОП, тем меньше время доступа к ней. В настоящее время наиболее распространены микросхемы памяти двух типов: статические ОЗУ – SRAM и динамические – DRAM. Разумеется, более быстрая память дороже стоит, поэтому SRAM используется, как правило, для кэш памяти, в регистрах микропроцессора и системах управления.

Конструктивное исполнение

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

В основе динамических ОЗУ (DRAM) используется заряд межэлектродных конденсаторов Cij емкостью менее 0.1 пФ и током заряда менее 10-10 А. Схема i-го разряда ячейки памяти динамического ОЗУ (DRAM) представлена на рис. 3.3. Для записи логической “1” в элемент памяти активизируются информационная шина Dj и адресная шина Аi. При этом униполярный (полевой) транзистор открывается и через него конденсатор Cij заряжается. При отсутствии открывающего напряжения на шине Аi транзистор закрыт, конденсатор Cij заряжен и хранит информацию. При подаче напряжения чтения на шину Аi транзистор VTij открывается и напряжение конденсатора Cij подается на шину Dj, и он разряжается. Ток разряда Cij усиливается и фиксируется в информационном регистре ОЗУ.

Рис. 7.3. Элемент динамического ОЗУ

В настоящее время все большее распространение получили - SDRAM (Synchronic DRAM) – динамическое ОЗУ с синхронным интерфейсом, работающие на частотах 143 МГц и выше. ESDRAM – динамические ОЗУ с синхронным интерфейсом, с кэшом на самом модуле, работающие на частотах 200 МГц и выше. SLDRAM – имеет в своем составе SRAM, работает на частоте до 400 МГц. RDRAM, RIMM – работает на частоте до 800 МГц.

Мы уже видели, что стоимость хранения данных в расчете на один бит увеличивается с ростом быстродействия. Однако пользователю хотелось бы иметь и недорогую, и быструю память. Кэш-память представляет некоторое компромиссное решение этой проблемы. Однако известно, рост производительности процессора составляет 60% в год, а уменьшение задержки памяти всего на 7%. Разрыв между быстродействием CPU и быстродействием памяти приводит к появлению «узкого горла». Кэш-память частично решает эту проблему, создавая новую – почти 50% площади кристалла отдается кэшу (например, Alpha 21164 компании Digital).

Кэш-память

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

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

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

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

Принцип действия кэш-памяти

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

CPU

ОП

Медленный ответ (кэш-промах)

Запрос

обмен информацией между КЭШем и ОП

КЭШ

Быстрый ответ

(кэш-попадание)

Рис. 7.4 Кэш-память и связь с процессором

Обычно содержимое кэш-памяти представляет собой совокупность записей обо всех загруженных в нее элементах данных из основной памяти. Строка кэш-памяти состоит из нескольких последовательных байтов (обычно от 4 до 64). Строки нумеруются, начиная с 0. Т.е. если размер строки составляет 16 байт, то строка 0 – это байты с 0 по 15, строка 1 – это байты с 16 по 31 и т.д. Возьмем в качестве примера некоторый микропроцессор с 12 разрядной шиной адреса (объем памяти 4Кбайт) и кэшем из 16 строк по 16 байт (Рис.7.5). В любой момент времени несколько строк находятся в кэш-памяти. Когда происходит обращение к памяти, контроллер кэша проверяет, есть ли нужное слово в данный момент в кэш-памяти, если нет тогда происходит загрузка необходимой строки из ОП. Существует множество вариаций данной схемы, различающихся временем доступа, производительностью и т.д.

Для обмена информацией между кэш и ОЗУ используют 3 способа:

- со сквозной записью;

- со сквозной буферной записью;

- с обратной записью.

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

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

Кэш-память прямого отображения

Самый простой тип кэш-памяти – это кэш прямого отображения, когда любая строка из ОП может появиться только на одном месте кэша. Пусть кэш-память содержит 16 строк по 16 байт. Каждый элемент кэша (строка) вмещает ровно одну строку из ОП. В этом случае мы имеем кэш-память объемом 256 байт на которую должен быть отображен объем 4 Кбайт ОП (Рис.7.5)

Кэш – 256 байт ОП – 4 Кбайт

Адрес строки кэша Адрес блока и строки

15…………………………0 байт 15……………………….0 байт

1 111 15,31… 1111 1111 255

1 110

- 0011 0000 48

-

-

0 111 7,23,39,… 0010 0001 33

- 0010 0001 32

-

-

0 001 1,17,33,…

0 000 0,16,32,… 0001 0001 17

0001 0000 16

16 байт

0000 0001 1

0000 0000 0

Тэг Строка Слово (байт)

Рис. 7.5 Отображение пространства ОП на пространство кэш-памяти.

Очевидно, что при таком отображении основной памяти на память кэша каждому блоку (по объему) ОП отводится одна строка кэш-памяти.

Предположим, процессор обращается по адресу 0010 0001 0110, в этом случае мы должны проверить 1-ую строку кэша (0001) и если в ней находится нужная строка памяти, то считать 5-ый байт (0110). Но в этой строке кэша могут быть представлены 1,17,33 и т.д. строки из основной памяти. Как же узнать, какая именно строка записана в кэш? Для этого служит информация представленная в тэге (tag), четыре бита в нашем случае (0010), т.е. это 33 строка (0010 0001) и никакая другая. Таким образом, физический адрес разбивается на несколько частей:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]