Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2007.doc
Скачиваний:
116
Добавлен:
20.05.2014
Размер:
3.24 Mб
Скачать

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

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

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

Динамическое ОЗУ со времени своего появления прошло несколько стадий роста и продолжает совершенствоваться. Вначале микросхемы динамического ОЗУ производились в DIP-корпусах. Затем их сменили модули SIPP, DIMM, SIMM и RIMM.

SIMM - модуль (Single In-Line Memory Module), модуль с однорядным расположением выводов, могут иметь объем 256 Кбайт, 1,2,4, 8, 16 и 32 Мбайт. Модули SIMM для соединения с системной платой имеют не штырьки, а позолоченные полоски (так называемые pin, пины). Первыми SIMM-модулями были 30-пиновые SIMM FPM DRAM, с частотой работы 29 МГц, затем 72-пиновые EDO RAM с частотой 50 МГц. Существенной особенностью ПК, собранных на Pentium является то, что они имеют 64-разрядную шину данных, а это означает, что 32-разрядные SIMM можно устанавливать только парами. В настоящее время SIMM-модули, как 30-пиновые, так и 72-пиновые заменяются модулями DIMM. DIMM (Dual Inline Memory Module) – модуль памяти с двойным расположением 168 выводов. Следует отметить, что разъем DIMM имеют много разновидностей DRAM.

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

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

Кэш-память

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

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

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

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

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

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

CPU

ОП

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

Запрос

КЭШ

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

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

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

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

№ блока строки кэш-памяти (байты данных)

4095------------------------4080

4079------------------------4064

_

_

_

_

_

_

_

31----------------------------16

15------------------------------0

0------------------------------------------ 15

255

254

2

1

0

Рис. 7.3 Структура ОП

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

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

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

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

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

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

111115,31…1111 1111 255

1110

- 0011 0000 48

-

-

01117,23,39,…0010 0001 33

-0010 0001 32

-

-

00011,17,33,…

00000,16,32,… 0001 0001 17

0001 0000 16

16 байт

0000 00011

0000 0000 0

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

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

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

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