Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KT-p22

.pdf
Скачиваний:
13
Добавлен:
30.05.2015
Размер:
830.32 Кб
Скачать

Элементы кэш-памяти

Кэш-память реализуется на дорогих элементах SRAM (static random access memory), доступ к которым происходит намного быстрее, чем к элементам DRAM (dynamic random access memory) на которых построе-

на оперативная память. Ячейкой в статической памяти является триггер - логический элемент с двумя устойчивыми состояниями (реализуется на основе 4-6 полевых транзисторов,тогда как элемент динамической памяти на 1-2 транзисторе), в любом из которых он сохраняется до тех пор,пока подается питание. Время срабатывания триггера составляет в современных микросхемах единицы наносекунд. Однако плотность компоновки ячеек SRAM существенно ниже, чем в микросхемах DRAM, a стоимость производства выше,поэтому статическая память применяется лишь в наиболее

ответственных компонентах.

В современных системах обычно используется конвейерный режим с пакетным способом передачи данных (Pipelined Burst Cache), организованный на микросхемах статической памяти с синхронным досту-

пом (SyncBurst SRAM).

Архитектура кэш-памяти

Архитектура кэш-памяти определяется тем,каким образом достаточно большая по размеру основная память отображается на сравнительно небольшой кэш. Существуют три разновидности отображения: кэш-память с прямым отображением (direct-mapped cache), частично,или наборно-ассо-

циативная (set-associative cache) и полностью ассоциативная (fully associative cache). Все эти архитектуры так или иначе используются для построения кэш-памяти современных микропроцессоров.

Кэш-память с прямым отображением. Самой простой организа-

цией обладает кэш-память с прямым отображением. В этом случае адрес

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

71

одной строке кэша,однако поскольку занимать ее в одно и то же время может только один изних,то для каждой строки используется специальный признак — тег (tag).

Д о - пустим, что гипотетический микропроцессор использует 10-разрядный адрес,размер кэша составляет 8 строк,а длина каждой строки — 8 байт. В какой-то момент времени процессор хочет прочитать два байта информации, хранимой в оперативной памяти,с адреса 0010001100. Для кэш-памяти этот адрес подразделяется на три части. В данном случае три младших разряда называются смещением (offset) и полностью определяют положение каждого из восьми байт в строке. Средние три разряда позволяют однозначно выбрать одну из восьми строк (line) кэша. Оставшиеся старшие разряды несут информацию о теге. И только в том случае. если тег строки кэша совпадает со значением,определяемым старшими разрядами адреса,байты информации считываются изкэш-памяти. В противном случае чтение должно

идти из основной памяти или информация в строке должна быть заменена. Разумеется,в случае ее замены меняется и значение ее тега.

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

Полностью ассоциативная архитектура.

72

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

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

П о количеству линий кэша, входящих в набор, подобная архитектура может называться 2-входовой (2-way set associative), 4-входовой (4-way set associative) и т.д.

Реализация кэш-памяти

В реальных процессорах кэш L1 обычно разделен на 2 части – кэш L1 для данных и L1 для инструкций. Это так называемая Гарвардская архитектура,в противоположность Принстонской с общим кэшем. Разделение кэшей позволяет оптимизировать каждый из них под определенные функции и разметить поближе к соответствующим функциональным блокам:

L1 инструкций - поближе к устройству выборки команд,а L1 для данных - поближе к исполнительным устройствам.

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

производиться одновременно. Тем не менее имеются и недостатки. Они проявляются,например,если вдруг одна из выполняемых программ потре-

73

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

TLB буфер (Translation Look-aside Buffer) является разновиднос-

тью кэш-памяти для кэширования адресов.

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

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

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

Уровни кэш-памяти

Разделение кэш-памяти на несколько уровней (до 3 в настоящее время) производится по следующему закону: кэш-память уровня N+1 всегда

больше по размеру и медленнее по скорости обращения,чем кэш-память уровня N.

Самой быстрой памятью является кэш-память первого уровня (она же L1-cache), по сути,она является неотъемлемой частью процессора,поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков,безнее процессор не сможет функционировать. Память L1 работает на частоте процессора и обращение к ней занимает в общем случае один такт ядра,объем этой памяти обычно невелик - не более 64Кб. Второй по быстродействию является L2 (в отличие от L1 ее можно отключить с сохранением работоспособности процессора), кэш второго уровня,она обычно расположена либо на кристалле,как и L1,либо в непосредственной близости от ядра. Объем L2 побольше – от 128Кб до нескольких Мб.

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

чем L1,данные сохраняются некоторое время в L2,до тех пор,пока не будут замещены и там. Если вдруг процессору понадобятся данные,которые

74

были выгружены из L1,есть вероятность что данные есть в L2,обращение к которому хоть и дольше по времени чем к L1,но все же намного быстрее чем обращение к основной памяти.

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

Функционирование кэш-памяти

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

Метод Write Through,называемый также методом сквозной записи, предполагает наличие двух копий данных — одной в основной памяти,а другой - в кэш-памяти. Каждый цикл записи процессора в память идет через кэш. Это обусловливает высокую загрузку системной шины,так как на каждую операцию модификации данных приходятся две операции записи.

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

следует отметить,что в основной памяти в этом случае всегда содержатся правильные данные.

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

пу FIFO (First Input-First Output - “первым вошел - первым вышел”). Таким

75

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

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

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

Обновление информации. Каждый раз, когда микропроцессору требуется информация,отсутствующая в кэше (cache-miss), он вынужден обращаться через системную шину к основной оперативной памяти. После этого обычно решается,должна ли происходить замена строки в кэш-памяти и какая конкретно строка кэша будетзаменена. В подавляющем большинстве случаев об этом заботится встроенный в контроллер LRU-алгоритм (Last Recently Used), который обновляет именно ту строку кэша,которая используется менее интенсивно.

2.Видео подсистема ПК

2.1.Видеоадаптер. Основные характеристики

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

2.1.1. Принцип работы видеоадаптера

CPU формируетцифровое изображение в виде матрицы N-M n-разряд- ных чисел и записывает его в видеопамять. Участок видеопамяти,отведенный для хранения цифрового образа текущего изображения (кадра), называется кадровым буфером,или фрейм-буфером (от англ. frame buffer — кадровый

буфер). Видеоадаптер последовательно считывает (сканирует) содержимое ячеек кадрового буфера и формирует на выходе видеосигнал,уровень ко-

76

торого в каждый момент времени пропорционален значению,хранящемуся в отдельной ячейке. Сканирование видеопамяти осуществляется синхронно с перемещением электронного луча по экрану ЭЛТ,В результате яркость каждого пиксела на экране монитора оказывается пропорциональной содержимому соответствующей ячейки памяти видеоадаптера. По окончании просмотра ячеек,соответствующих одной строке растра,видеоадаптер формирует импульсы строчной синхронизации H-Sync, инициирующие обратный ход луча по горизонтали,а по окончании сканирования кадрового буфера — сигнал V-Sync, вызывающий движение луча снизу вверх. Таким образом,частоты строчной и кадровой развертки монитора определяются скоростью сканирования содержимого видеопамяти,т. е. видеоадаптером. Очевидно,что блок разверток монитора должен поддерживать эти частоты. В противном случае изображение на экране монитора будет нестабильным или вовсе отсутствовать.

2.1.2. Режимы работы видеоадаптера

Графический режим

В графическом режиме содержимое каждой ячейки кадрового буфера (матрицы NxM n-разрядных чисел) является кодом цвета соответствующего пиксела экрана. Разрешение экрана при этом также равно NxM. Адресуеммым элементом экрана является минимальный элемент изображенияпик- сел. По этой причине графический режим называют также режимом ALA (All Point Addressable — Все точки адресуемы). Иногда число п называют

глубиной цвета. При этом количество одновременно отображаемых цветов равно 2n,а размер кадрового буфера,необходимый для хранения цветного изображения с разрешением NxM и глубиной цвета n, составит NxMxn бит.

Графический режим является основным режимом работы видеосистемы современного ПК,поскольку в этом режиме на экран монитора можно вывести текст,рисунок,фотографию,анимацию или видеосюжет. В частности, в таком режиме работает видеосистема ПК под управлением Windows.

Текстовый режим

В текстовом (символьном) режиме,как и в графическом,изображение на экране монитора представляет собой множество пикселов и характеризуется разрешением NxM. Однако все пикселы разбиты на группы,называемые знакоместами,или символьными позициями (Character positions, или Character boxes - Символьные ячейки) размером рха. В каждом из знакомест может быть отображен один из 256-и символов.

Изображение символа в пределах каждого знакоместа задается точеч-

ной матрицей (dot matrix). Размер матрицы зависит от типа видеоадаптера и текущего видеорежима. Чем больше точек используется для отображения

77

символа,тем выше качество изображения и лучше читается текст. Точки матрицы,формирующие изображение символа,называют передним планом (foreground), остальные - задним планом,или фоном (background).

Если считать,что темной клетке соответствует логическая единица,а светлой — логический ноль,то каждую строку символьной матрицы можно представить в виде двоичного числа. Следовательно,графическое изображение символа можно хранить в виде набора двоичных чисел. Для этой цели используется специальное ПЗУ,размещенное на плате видеоадаптера. Такое ПЗУ называют аппаратным знакогенератором (Hardware character generator). Совокупность изображений 256 символов называется шрифтом. Аппаратный знакогенератор хранит шрифт,который автоматически используется видеоадаптером сразу же после включения компьютера (обычно это буквы английского алфавита и набор специальных символов). Адресом ячейки знакогенератора является порядковый номер символа.

Для кодирования изображения символа на экране используется два байта: один - для задания номера символа,второй - для указания атрибу-

тов символа (цвета символа и фона,подчеркивания,мигания,отображения курсора).

Главная особенность текстового режима заключается в том,что адре-

суемым элементом экрана является не пиксел,а знакоместо. Иными словами, в текстовом режиме нельзя сформировать произвольное изображение в

78

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

2.1.3. Устройство видеоадаптера VGA

Видеоадаптер VGA содержит следующие элементы:

-видеопамять;

-ROM Video BIOS;

-контроллер элт;

-графический контроллер;

-контроллер атрибутов;

-секвенсор (sequencer);

-ramdac (random access memory digital-to-analog converter);

-синхронизатор;

-тактовые генераторы;

-интерфейс с шиной ввода/вывода;

-графический процессор (графический акселератор);

-разъем для подключения аналогового монитора,цифровой видеовыход

TMDS+DVI.

Большинство перечисленных выше элементов видеоадаптера содер-

жатспециальные 8-разрядные регистры,доступные центральному процессору для чтения/записи данных. Модифицируя содержимое этих регистров,CPU управляет работой видеоадаптера. Помимо регистров,входящих в состав

указанных элементов,видеоадаптер VGA имеет несколько общих регистров. Многоцелевой выходной регистр (предназначен для задания адресов портов ввода/вывода элементов видеоадаптера,начального адреса кадрбвого буфера и выбора тактового генератора). Регистр состояния (доступен только для чтения,используется для синхронизации процесса обновления кадрового буфера с обратным ходом кадровой развертки).

Конструктивно основные элементы видеоадаптера VGA, за исключением,видеопамяти,ROM Video BIOS, тактовых генераторов и схемы интерфейса с шиной ввода/вывода,реализованы в одной микросхеме.

Видеопамять

Видеопамять - это специализированное ОЗУ,размещенное на плате видеоадаптера, эту память часто называют видеобуфером. Центральный процессор компьютера направляет данные в видеопамять,а графический процессор видеокарты считывает оттуда информацию.

ОСновное назначение видеопамяти - хранение цифрового образа

формируемого изображения. Объем видеопамяти определяет максимальное разрешение и количество цветовых оттенков формируемого изображения. Часть видеопамяти, используемая для хранения цифрового изображения,

79

называется кадровым буфером (frame buffer). Как правило,размер кадрового буфера меньше,чем объем видеопамяти. Объем видеопамяти важен особенно для обработки трехмерных изображений с текстурами в высоком разрешении при большой глубине цвета.

Важной характеристикой видеопамяти является ее пропускная способность,определяемая как произведение разрядности шины видеопамяти на тактовую частоту шины. Современные видеокарты оснащаются памятью типа Graphics DDR3 объемом порядка 512 Мбайт,с рабочей частотой до 1300 МГц,шиной разрядностью 128-256 бит.

Видеоадаптеры первых поколений применяли однопортовую память - это разновидность динамической памяти, имеющей только один порт,через который осуществляется чтение/запись данных. Таким образом, одновременное выполнение операций чтения и записи невозможно. Это сильно ограничивает быстродействие видеоадаптера, так как процессор может начать обновление кадрового буфера лишь после того,как видеоконтроллер завершит чтение данных из буфера. Пример подобной памяти: SGRAM (Synchronous Graphics RAM — Синхронная графическая память), MDRAM (Multibank RAM— Мульти-банковая динамическая память).

Современные видеоадаптеры используют двухпортовую видеопамять, которая позволяетосуществлять одновременное выполнение операций чтения и записи данных,то есть к ней одновременно могут обращаться два устройства (например,графический процессор и RAMDAC). Двухпортовая видеопамять обеспечивает значительное ускорение работы видеоадаптера, особенно в режимах с высокими разрешением и глубиной цвета. Примерами двухпортовой памяти являются: VRAM (Video RAM), WRAM (Window RAM), Direct Rambus DRAM, 3D RAM, Cashed DRAM, Enhanced SDRAM, DDR SDRAM, DDR2 SDRAM, Graphics DDR3.

Video BIOS

Фактически Video BIOS — это набор подпрограмм, написанных в кодах команд центрального процессора и предназначенных для реализации основных функций видеосистемы. Набор этих функций принято называть видеосервисом.

Контроллер ЭЛТ

Контроллер ЭЛТ формирует сигналы горизонтальной и вертикальной

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

80

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