Смекни!
smekni.com

Подсистема памяти современных компьютеров (стр. 1 из 9)

Ростовский Государственный Университет

Кафедра радиофизики

Реферат на тему:

«Подсистема памяти современных компьютеров»

Студент: Илинич К.А.

Ростов-на-дону

2001 год


Содержание:

1. Иерархическая организация памяти..................................................... 3

a. Оперативная память........................................................................ 3

b. Дисковая память.............................................................................. 3

c. Память на внешних носителях....................................................... 3

d. Кэш-память....................................................................................... 3

e. Организация кэш-памяти............................................................... 4

I. Размещение блока в кэш-памяти....................................... 4

II. Поиск блока, находящегося в кэш-памяти....................... 5

III. Замещение блока кэш-памяти при промахе..................... 5

IV. Что происходит во время записи....................................... 6

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

3. Общий принцип доступа к данным........................................................ 8

4. Традиционная память с асинхронным интерфейсом......................... 9

a. Традиционная память...................................................................... 9

b. Память FPM с быстрым страничным доступом .......................... 9

c. Память EDO, расширенный вывод данных................................. 9

d. Память BEDO, пакетная передача данных................................... 9

5. Память с синхронным интерфейсом..................................................... 10

a. Синхронная динамическая память SDRAM................................. 10

b. Память DDR SDRAM, удвоенная скорость данных.................... 12

6. Организация оперативной памяти......................................................... 12

a. Банки памяти................................................................................... 12

b. Чередование банков........................................................................ 13

c. Пути увеличение производительности......................................... 13

7. Память Rambus DRAM............................................................................ 14

8. Модули памяти.......................................................................................... 18

9. Виртуальная память и организация защиты памяти....................... 19

a. Концепция виртуальной памяти................................................... 19

b. Страничная организация памяти................................................... 20

c. Сегментация памяти....................................................................... 21

10. Терминология............................................................................................. 22

11. Литература.................................................................................................. 26


Иерархическая организация памяти

Память компьютера имеет иерархическую структуру, центральным слоем которой является оперативная память — ОЗУ или RAM (Random Access Memory — память с произвольным доступом). Оперативная память непосредственно доступна процессору: в ней хранится исполняемая в данный момент часть программного кода и данные, к которым процессор может обращаться с помощью одной из многих команд. Произвольность доступа подразумевает, что процессор в любой момент может считать или записать любой байт (слово, двойное слово...) из этой памяти. 32-разрядные процессоры x86 способны адресовать до 4 Гбайт физической памяти (кроме 386SX, урезанных до 16 Мбайт), а процессоры P6 (Pentium Pro, Pentium II и старше) в режиме расширения адреса — до 64 Гбайт. Из этого потенциально доступного пространства именно для оперативной памяти используется только часть: большинство системных плат пока ограничивают объем устанавливаемого ОЗУ на уровне 256 Мбайт–1 Гбайт. В этом же пространстве располагается и постоянная память — ПЗУ, или ROM (Read Only Memory), которая в обычной работе только читается. В ПЗУ располагается BIOS (базовая система ввода-вывода) компьютера и некоторые другие элементы.

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

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

Мы перечислили программно-видимую часть “айсберга” памяти — доступную произвольно или поблочно, прямо или последовательно. Есть еще и “подводная” часть — кэш-память. Оперативная память по меркам современных процессоров обладает слишком низким быстродействием, и, обратившись за данными, процессор вынужден простаивать несколько тактов до готовности данных. Начиная с процессоров 80386, оперативную память стали кэшировать (эта идея использовалась и в “древних” больших машинах, где было СОЗУ — сверхоперативное ЗУ). Идея кэширования ОЗУ заключается в применении небольшого (по сравнению с ОЗУ) запоминающего устройства — кэш-памяти с более высоким быстродействием. Небольшого — потому, что по технико-экономическим причинам большой объем очень быстрой памяти обходится слишком дорого. В этой памяти хранится копия содержимого части ОЗУ, к которой в данный момент процессор наиболее интенсивно обращается. Определять, какую часть содержимого ОЗУ копировать в данный момент времени, должен контроллер кэша. Он это может делать, исходя из предположения о локальности обращений к данным и последовательности выборок команд. Кэш-память не дает дополнительного адресуемого пространства, ее присутствие для программы незаметно.


Организация кэш-памяти

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

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

Размер блока (строки) 4-128 байт
Время попадания (hit time) 1-4 такта синхронизации (обычно 1 такт)
Потери при промахе (miss penalty) (Время доступа - access time) (Время пересылки - transfer time) 8-32 такта синхронизации (6-10 тактов синхронизации) (2-22 такта синхронизации)
Доля промахов (miss rate) 1%-20%
Размер кэш-памяти 4 Кбайт - 16 Мбайт

Рассмотрим организацию кэш-памяти более детально, отвечая на четыре вопроса об иерархии памяти.

Размещение блока в кэш-памяти

Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:

Если каждый блок основной памяти имеет только одно фиксированное место, на котором он может появиться в кэш-памяти, то такая кэш-память называется кэшем с прямым отображением (direct mapped). Это наиболее простая организация кэш-памяти, при которой для отображение адресов блоков основной памяти на адреса кэш-памяти просто используются младшие разряды адреса блока. Таким образом, все блоки основной памяти, имеющие одинаковые младшие разряды в своем адресе, попадают в один блок кэш-памяти, т.е.

(адрес блока кэш-памяти) =

(адрес блока основной памяти) mod (число блоков в кэше)

Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative).

Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative). Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative). Для размещения блока прежде всего необходимо определить множество. Множество определяется младшими разрядами адреса блока памяти (индексом):

(адрес множества кэш-памяти) =

(адрес блока основной памяти) mod (число множеств в кэш-памяти)

Далее, блок может размещаться на любом месте данного множества.

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

Поиск блока находящегося в кэш-памяти

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

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

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