tema3dopoln

advertisement
Тема 3. Управление памятью. Файл 308832626
С. 1 из 2
5.6. Реализация кэширования
Описанный механизм может быть реализован программным либо программно-аппаратным путем.
Подчеркнем, что выше рассмотрен принцип кэширования, т.е. организация совместного функционирования устройств пары «основная память – кэш» с точки зрения уменьшения времени выборки
данных. При описании реализации кэш-памяти рассмотрения только этой пары устройств недостаточно. Следует взглянуть на ситуацию с несколько иной точки зрения. Вернемся к рис. 3.10, где
присутствуют три компонента, и рассмотрим, чем может быть источник запросов данных. Данные
запрашиваются в команде в ходе ее выполнения процессором, т.е. в конечном итоге должны быть
помещены в регистры процессора. Если «источником запросов» является процессор, то кэш –
промежуточное звено между ОП и регистровой памятью. При этом в «источнике запросов» основной интерес представляет как раз память, куда попадают запрашиваемые данные. Таким образом, при ближайшем рассмотрении на схеме присутствует три уровня памяти.
Итак, исходно имеется медленное устройство, из которого необходимо осуществить выборку данных, и быстрое устройство, куда заносятся выбранные данные. Учитывая характеристики решаемых задач и свойства данных, между ними этими двумя устройствами размещают третье – с промежуточной скоростью, где будут храниться наиболее часто выбираемые данные. Согласно пп.
5.1, 5.2, это среднее устройство будет кэш-памятью, а медленное – основной памятью. Быстрое
устройство – то, куда данные должны попасть в итоге. Например, винчестер – кэш винчестера –
ОП; ОП – кэш процессора – регистр.
Программная реализация подразумевает использование в качестве кэша части быстрой памяти.
Такой кэш правомочно назвать виртуальным. Его прототипом является буфер – часть памяти, посредством которой данные переносятся из более медленного устройства в остальную память.
При аппаратной реализации кэш-память в аппаратном исполнении придается одному из
устройств пары «быстрое – медленное», как правило, менее сложному.
Кратко рассмотрим самые типичные реализации кэша.
 Кэш процессора
Здесь наиболее иллюстративно выглядит ретроспективный обзор эволюции кэширования.
 Процессор I80286
Кэширования нет.
Процессор
Команды и
данные
Место, где процессор
выполняет операции
Регистры
ОП
 Процессор I80386
16 б для хранения конвейера (очереди) команд
Данные
Регистры
Процессор
«Память
операций»
Команды
Устройство опережающей выборки
ОП
 Процессор I80486
Имеются отдельные кэши для операций и для данных в составе процессора, на одном кристалле.
 Процессоры Pentium, AMD5x86 и т.д. (до AthlonXP)
Имеется вынесенный (выполненный вне процессора) контроллер оперативной памяти, который
может иметь свой кэш, встроенный или в виде съемного модуля.
Тема 3. Управление памятью. Файл 308832626
С. 2 из 2
Процессор также имеет встроенный кэш, возможно, двухуровневый.
Количество кэшей доходило до трех: один, которым ведал чипсет, на плате (1 мБ), один внешний
кэш в процессоре (256 кБ) и один (64 кБ) в ядре процессора (ядро – АЛУ + схема доступа к регистрам).
 Современные процессоры (Pentium IV, AthlonXP)
Имеют два кэша, оба убраны в процессор: L1 – полноскоростной, в ядре, и L2 – более медленный,
внешний. Функционируют в соответствии со схемой на рис. 3.11. Более детальная схема:
Процессор
Регистры
L1
L2
Чипсет
тоже может
иметь свой кэш
ОП
Объемы кэшей
AMD: L1 = 128 кБ, L2 = 164 кБ (Duron), 512 кБ (Barton), 1 мБ (Opteron)
Intel: L1 = 16 кБ, L2 = 256 или 512 кБ
 Тенденция: откат назад (~ к I80286) – возвращение процессору функций контроллера.
AMD Athlon 64 содержит в себе контроллер памяти. Путь к данным за счет исчезновения промежуточного звена – чипсета – становится короче.
 Кэш винчестера
Назначение – кэширование данных, передаваемых с диска в ОП.
 Программная реализация (виртуальный кэш)
Для кэширования жесткого диска отводится часть оперативной памяти. В ряде ОС параметры кэширования можно указать в явном виде. Например, для ОС семейства Windows 9x/ME в файле
System.ini (C:\ Windows\System.ini) в разделе [vcache] можно указать минимальный и максимальный размер Кэша (значения взяты для ОП в 128 мБ):
minfilecache=8192
maxfilecache=32768.
В ОС Windows NT, Windows 2000, Windows XP установить размер кэша можно путем редактирования
реестра,
задав
значение
параметра
IOPageLockLimit
в
разделе
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
(например, 8192).
 Аппаратная реализация
••• В электронику жесткого диска встроена память небольшого объема (2 – 8 мБ) с большим быстродействием, чем у диска.
••• Кэш встроен в контроллер диска. См., например, http://computers.otvet.ru/dm/15604/otvet.asp
(«Высокоскоростной дисковый кэш объемом 64 Мбайт ECC EDO для контроллеров SmartRAID
V/DPT SM4050-64.
Модули расширения для RAID-контроллеров SmartRAID V позволяют нарастить кеш-память (64
Мбайт»)).
Download