Иерархия памяти, КЭШ-память

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

Например:

" Регистровая память - емкость 64-256 слов, время доступа - 1такт процессора.

• КЭШ первого уровня или внутренний КЭШ - емкость 8k слов, время доступа -1-2 такта процессора.

• КЭШ второго уровня или внешний КЭШ - емкость 256k слов, время доступа - 3-5 тактов процессора.

• ОЗУ - емкость до 4Г слов, время доступа - 12-55 тактов процессора, " Внешняя память - емкость до 200Г, время доступа значительно ниже.

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

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

В системах, оснащенных кэш-памятью, каждый запрос к «медленному» ЗУ выполня­ется в соответствии со следующим алгоритмом:

1. Просматривается содержимое кэш-памяти с целью определения, не находятся ли нужные данные в ней;

2. Если данные обнаруживаются в кэш-памяти, то они считываются из нее, и ре­зультат передается в процессор в более «быстрое» ЗУ

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

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

Принцип действия кэш-памяти основан на наличии у данных объективных свойств: пространственной и временной локальности.

Пространственная локальность состоит в следующем - если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.

Временная локальность состоит в следующем - если произошло обращение по неко­торому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.

3.2. Виртуальная память

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

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

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

• размещение данных в ЗУ разного типа, например, часть ОП, а часть на диске;

• перемещение по мере необходимости данные между ЗУ разного типа, например, подгрузка нужной части программы с диска в ОП;

• преобразование виртуальных адресов в физические.

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

3.3. Физическая организация памяти

Физически память делится на внутреннюю и внешнюю.

Внутренняя память выполняется, чаще всего, в виде микросхем высокой степени ин­теграции. Внутренняя или основная память может быть двух типов: оперативное запоми­нающее устройство (ОЗУ или RAM, Random Access Memory) или ЗУ с произвольной вы­боркой (ЗУПВ) и постоянное ЗУ (ПЗУ или ROM, Read Only Memory). В последнее время широкое распространение получила флэш (Р1азЬ)-память, имеющая особенности, как ОЗУ, так и ПЗУ. ОЗУ является энергозависимой памятью, поскольку вся содержащаяся в ней информация теряется при выключении питания и предназначена для временного хра­нения программ и данных. ПЗУ является энергонезависимой памятью, т.е. информация сохраняется и при выключении питания системы. ПЗУ предназначена для хранения управляющих работой ЭВМ стандартных программ (например, отвечающие за процедуру старта системы), констант, таблицы символов и т.д.

ПЗУ могут быть: масочными - запрограммированными на заводе изготовителе (ROM), однократно-программируемыми пользователем ППЗУ (PROM или ОТР), многократно-программируемыми (репрограммируемыми) пользователем РПЗУ с ультрафиоле­товым стиранием (EPROM) или с электрическим стиранием (EEPROM, Flash). Широкое распространение нашли также программируемые логические матрицы и устройства (PLM, PML, PLA, PAL, PLD, FPGA и т.д.) с большим выбором логических элементов и уст­ройств на одном кристалле.

ОЗУ подразделяются на статическую память (SRAM), динамическую (DRAM, здесь для хранения информации необходима ее регенерация) и регистровую (RG).

В качестве оперативной памяти современные ЭВМ оснащаются модулями SIMM, DIMM, DDR и RIM, которые является динамической памятью. Указанные модули памяти представляют собой небольшие платы с установленными на ней совместимыми чипами SDRAM (Sychronous DRAM - это новая технология микросхем динамической памяти. Основное отличие данного типа памяти от остальных заключается в том, что все операции синхронизированы с тактовой частотой процессора, то есть память и CPU работают син­хронно. Технология SDRAM позволяет сократить время, затрачиваемое на выполнение команд и передачу данных, за счет исключения циклов ожидания).

Модуль SIMM (Single In-line Memory Modyle) - 72-контактные модули, обычно обо­рудованные микросхемами памяти общей емкостью 8, 16 и 32 Мб.

Модуль DIMM (Dual In-line Memory Modyle) - 168-контактные модули памяти. DIMM обладают внутренней архитектурой, схожей с 72-контактными модулями SIMM, но благодаря более широкой шине обеспечивают повышенную производительность под­системы «ЦП - ОП».

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

Одной из наиболее быстродействующих является память RDRAM (Rambus RAM), разработанная американской компанией Rambus. Память RDRAM является 16-разрядной, тактируется частотой 400 МГц (результирующая частота за счет использования техноло­гии DDR составляет 800 МГц) и достигает пиковой скорости передачи данных 1.6 Гбайт/с. Использование узкой шины данных и сверхвысокой частоты значительно повышают эф­фективность использования и загрузку канала, максимально освобождая протокол от вре­менных задержек.

3.4. Внешняя память

Внешней называют память на магнитных (жесткие и гибкие диски), оптических но­сителях (CD-ROM) и т.п.

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

Дисковые накопители в зависимости от среды носителя и по применяемому методу записи (чтения) данных на (с) поверхность (и) могут подразделяться на магнитные, опти­ческие и магнитооптические.

Тип накопителя Емкость, Мб Время доступа, мс Скорость передачи, Кбайт /с Режим доступа
НГМД 1,2; 1,44 65 -100   Чтение/запись
НЖМД (Винчестер) 1000-18000 8-20 SOO-3000 Чтение/запись
CD-R 120-800 15-300 150-1500 Чтение/ однократная за­пись
CD-RW 120-800 15-150 150-1500 Чтение/Запись
НМОЦ 1.28-1300 15-150 300-2000 Ч те кие /запись

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

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

Перед осуществлением записи на магнитный диск он должен быть специальным об­разом инициализирован - отформатирован. В результате форматирования на поверхности образуются концентрические окружности (синхронизирующие метки диска), называемые дорожками (track). Количество дорожек зависит от типа диска. Дорожки разбиваются на участки фиксированной длины, называемые секторами. Количество секторов на дорожке определяется типом и форматом диска, и они в основном одинаковы для всех дорожек. IBM PC-совместимые ПК могут работать с несколькими размерами секторов от 128 до 1024 байт. Стандартным сектором считается сектор из 512 байт. Данные любого размера (разрядности) размещаются в секторах с фиксированным размером, а дисковые операции записи и считывания производятся с целыми секторами.

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

Контроллер накопителей на гибких дисках FDC (Floppy Drive Controller) является всегда внешним по отношению к накопителю и обычно располагается на одной плате с контроллером или адаптером жестких дисков.

Контроллер FDC XT поддерживает до четырех накопителей (FDD), хотя многие кон­троллеры имеют интерфейсные схемы только для одного шлейфа, то есть для двух нако­пителей. Эти контроллеры обеспечивают скорость передачи данных 250 и 300 Кбит/с.

Контроллер FDC AT поддерживает только два накопителя, но обеспечивает более высокую скорость 500 Кбит/с.

Современные контроллеры обеспечиваю скорость 1000 Кбит/с. В карте ресурсов AT имеется место под два контроллера НГМД.

Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS INT OEh) по окончании выполнения внутренних операций. Для обмена данными может использо­ваться канал DMA2.

Память на жестких магнитных дисках

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

Накопители на жестких магнитных дисках НЖМД (HDD), появились с машинами PC/XT. Первые накопители имели интерфейс, являющийся расширением интерфейса НГМД, и подключались к специальной плате контроллера с модулем дополнительной BIOS, хранящей всю информацию об установленных жестких дисках. В машинах класса AT поддержку стандартного контроллера включили в системную BIOS, параметры ис­пользуемых жестких дисков стали хранить в памяти CMOS.

Традиционные версии BIOS поддерживают до двух накопителей на жестких дисках и хранят их параметры в ячейках памяти CMOS. Расширенные версии BIOS для современ­ных двухканальных контроллеров АТА поддерживают 4 жестких диска и хранят их па­раметры.

Для дисков АТА используются следующие режимы адресации:

• CHS (целиндр-головка-сектор, традиционная трехмерная адресация данных на диске);

• ECHS (расширенная трехмерная адресация);

• LBA (линейная адресация данных на диске через логический адрес блока).

Учитывая, что в соответствии с форматом вызова функций дискового сервиса, одно устройство может иметь 210=1024 цилиндра, 28=256 головок, 26-1=63 сектора. Таким обра­зом, при трехмерной адресации (CHS) и размере сектора в 512 байт максимальный объем диска не может превышать 7.875 Гбайт.

HDDmaK(CHS] = [210 * 2а ' (26-1)1 * 512 = 136 902 082 560 байт = 7.875Gb (-8.4ГВ)

Все современные винчестеры используют LBA-адресацию. В режиме LBA парамет­ры стандартных вызовов транслируются в т.н. линейный адрес, который вычисляется од­нозначно в «естественном» порядке счета секторов, т.е. сектору с нулевым лог. адресом соответствует первый сектор нулевой головки нулевого цилиндра. В этом случае номер каждого сектора представляет собой 28-битное число и максимальным диском для LBA будет:

HDDmax(LBA) - 22S ' 512 = 137.4Gb (128ГБ]

В тоже время большинство ПО использует CHS-адресацию. Поэтому с появлением HDD с LBA адресацией, чтоб не модернизировать имеющееся ПО, поступили следующим образом. BIOS в случае определения LBA-винчестера, переводит его параметры в CHS-версию и ОС работает с ним с CHS-винчестером. Т.е. 28-битное значение адреса LBA «раскладывается» следующим образом: 16 бит - цилиндр, 8 бит - сектор, 4 бита - голов­ка. В результате, при получении запроса на работу с диском, BIOS переводит для кон­троллера это значение LBA-адрес:

В общем виде формулы вычисления такого адреса имеет вид:

LBft-(CYL'HDS'HD)*SPT+SEC-1

CYL - номер цилиндра

HD - номер головки

HDS - количество головок

SPT - количество секторов на треке

SEC - номер сектора

Для накопителей на жестких дисках используют интерфейсы ST-506/412, ESDI, ATA (неофициальное название IDE), SCSI. Накопители и контроллеры с интерфейсами ST-506/412 и ESDI практически не используются.

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

АТА-2 - расширенная спецификация АТА, включает 2 канала, 4 устройства, PIO Mode 3 (программированный ввод-вывод), DMA mode I, Block mode (пакетный обмен), объем диска до 8 Гбайт, поддержка LBA и CHS адресации.

Fast АТА-2 разрешает использовать DMA Mode 2 (13,3 Мбайт/с), PIO Mode 4.

АТА-3 — расширение, направленное на повышение надежности. Включает средства парольной зашиты, улучшенного управления питанием, самотестирования с предупреж­дением приближения отказа — SMART (Self Monitoring Analysis and Report Technology).

Ultra DMA/33 — версия AT A/IDE со скоростью обмена по шине 33 Мбайт/с. Устрой­ства АТА IDE, E-IDE, АТА-2, Fast АТА-2, АТА-3 и Ultra DMA/33 электрически совмести­мы.

Последние достижения в этой области - интерфейсы Ultra АТА/бб, Ultra ATA/100 и Ultra АТА/!33 позволяющие осуществлять передачу данных со скоростью ббМбай/сек, 100 Мбай/сек и 133 Мбай/сек соответственно.

Возможно также подключение дисковых устройств и к параллельному порту, но че­рез устройство, обеспечивающее один из вышеперечисленных интерфейсов. О дисках с интерфейсом USB говорить пока рано, а интерфейс FireWire является родственником SCSI-3.

Кэширование диска

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

Аппаратная кэш-память представляет собой значительный объем памяти и имеет ар­хитектуру полного ассоциативного отображения. Она строится на плате кэш-контроллера HDD с использованием модулей высокопроизводительной памяти и имеет собственный процессор.

Программная кэш-память — это некоторая область системной памяти, зарезервиро­ванная для дискового кэша и управляемая утилитой (например, Windows SmartDrive).Объем программной кэш-памяти рекомендуется ограничивать четвертью объ­ема системной памяти).

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: