Купить
 
 
Жанр: Учеба

Аппаратурная реализация персональных компьютеров

страница №3

в.

? регистр таблицы дескриптора прерываний IDTR, который содержит
32 - разрядный базовый адрес и 16 -разрядную границу сегмента
для таблицы дескрипторов прерываний. Когда происходит
прерывание, вектор прерывания используется в качестве индекса для
получения из данной таблицы дескриптора шлюза. Последний
сдержит указатель, используемый для запуска обработчика прерываний.

? регистр задачи TR, который содержит 32 - разрядный базовый
адрес, 16 - разрядную границу сегмента, атрибуты дескриптора
и 16 - разрядный селектор сегмента для текущей выполняемой задачи.
Он содержит ссылку на дескриптор сегмента состояния задачи,
находящийся в таблице глобального дескриптора.

Управляющие регистры CR0, CR1, CR2 и CR3. В большинстве
систем загрузка управляющих регистров из прикладных программ
невозможна (хотя в незащищенных системах такая загрузка разрешается).
Прикладные программы имеют возможность считывать
эти регистры для определения наличия математического сопроцессора.

Регистр CR0 содержит системные управляющие флаги, которые
управляют режимами или указывают на состояние процессора в
целом, а не относительно выполнения конкретных задач. Программа
не должна пытаться изменить состояние каких - либо битов
в зарезервированных позициях. Эти зарезервированные биты
всегда должны устанавливаться в то состояние, которое они имели
ранее при считывании.
Регистр CR1 резервируется для выполнения отдельных
программ, имеющих сложную структуру данных.
Регистр CR2 содержит 32 - разрядный линейный адрес, вызвавший
это исключение.
Регистр CR3 является базовым регистром страничного каталога.


Отладочные регистры дают микропроцессору 80486 расширенные
возможности отладки, включая контрольные точки данных и
средство устанавливать контрольные точки команд без модификации
кодовых сегментов (что может быть полезным при отладке ПЗУ -
резидентного программного обеспечения). Доступ к этим
регистрам имеют только программы с наивысшим уровнем
привилегированности.

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

Операции со стеком поддерживаются тремя регистрами микропроцессора:

? регистр сегмента стека SS. Стек размещается в памяти. Количество
стеков в системе ограничивается только максимальным
числом сегментов. Размер стека не может превышать 4 Гбайт, что
соответствует максимальному размеру сегмента для процессора
80486. В каждый момент времени доступен только тот стек, селектор
сегмента которого содержится в регистре SS. Этот стек называется
текущим. Регистр SS автоматически используется процессором для
выполнения всех операций со стеком.
? регистр указателя стека ESP. В регистре ESP содержится
относительный адрес вершины стека в текущем сегменте стека. Его
значение используется командами вызова подпрограмм и возврата,
исключениями и прерываниями. При занесении элемента в стек,
процессор уменьшает значение регистра ESP, а затем записывает
элемент по адресу новой вершины.
? регистр указателя базы кадра стека EBP. Данный регистр, как
правило, используется для доступа к структурам данных, содержащимся
в стеке. Например, при входе в подпрограмму стек содержит
адрес возврата и некоторое число параметров, передаваемых
в данную подпрограмму. Подпрограмма, при необходимости
создания временных локальных переменных, использует стек,
что приводит к изменению указателя стека по мере занесения и
удаления данных в стеке. Если перед началом выполнения операций
со стеком указатель стека копируется в базовый указатель кадра
стека, последний может быть использован для доступа к данным,
имеющим фиксированное смещение в сегменте стека. Если
этого не делать, доступ к структурам данных, имеющим фиксированное
смещение, может быть утерян в процессе занесения в стек и
удаления из стека временных переменных.

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

Указатель команд EIP содержит смещение в текущем сегменте
кода следующей подлежащей выполнению команды. Указатель команд
непосредственно не доступен программисту, но он управляется
явно командами управления потоком (переходы, возвраты и т.
д.), прерываниями и исключениями. Значение регистра EIP
увеличивается, указывая последовательно на границы исполняемых
команд.
Процессор 80486 не загружает команды поодиночке. Для загрузки
команд перед их фактическим использованием, существует
функция опережающего просмотра программы. Она обеспечивает
загрузку выровненного 128 - битного блока кода, команды которого
хранятся в процессоре в ожидании обработки. При этом выравнивание
блока производится обнулением четырех последних битов
его адреса. Данные блоки загружаются с игнорированием границ
между командами. Таким образом, во время начала исполнения команды,
она уже загружена в процессор и декодирована. Такой
способ загрузки команд значительно повышает производительность
процессора, т. к. позволяет совмещать выполнение команды, с
загрузкой и декодировать команд.

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

1. Сегментация памяти, как уже указывалось ранее, представляет
собой разбиение всего адресного пространства памяти на отдельные
блоки - сегменты. Доступ к сегментам управляется данными, в которых
описаны их размер, уровень привилегированности, который нужен
для доступа к ним, типы ссылок к памяти, применимые к этому
сегменту (выборка команды, помещение или извлечение из стека,
операция чтения, операция записи и т. д.), а также его присутствие в
памяти.
Сегментация используется, во-первых, для нахождения ошибок
при разработке программы, повышая тем самым надежность конечного
продукта, во-вторых, для упрощения компоновки объектных
модулей кода. Механизм сегментации делает ненужным создание
кодов, независимых от позиции в памяти, поскольку все ссылки к
памяти могут выполняться относительно базового адреса кодового
сегмента и сегмента данных модуля.
Сложная программная система может использовать все
средства, предоставляемые сегментацией. Например, система, в которой
программы разделяют данные в режиме реального времени,
может иметь возможность очень точно управлять доступом к этим
данным. Когда программа делает попытку неверного доступа к данным,
такая ошибка приводит к генерированию исключения. Это
может служить как вспомогательное отладочное средство при разработке
программы, а также может использоваться для запуска
восстановительных процедур при ошибке в системах, предназначенных
для конечного пользователя.
Аппаратное обеспечение сегментации транслирует сегментированный
(логический) адрес в адрес непрерывного, несегментированного
адресного пространства, который называется линейным
адресом. Если разрешена подкачка страниц, то аппаратное
обеспечение подкачки транслирует линейный адрес в физический
адрес. Если подкачка страниц не разрешена, то в качестве физического
адреса используется сразу линейный адрес.
Сегментация не прозрачна для прикладных программ. Эти
программы должны в процессе выполнения должны обращаться к
тем сегментам, которые были назначены для использования при разработке
этих программ.


2. Подкачка страниц используется для поддержки среды, в
которой большие адресные пространства моделируются на базе небольшой
области оперативной памяти и некоторой дисковой памяти.
Подкачка страниц обеспечивает доступ к структурам данных,
превышающим по размеру доступное пространство оперативной памяти,
благодаря тому, что часть таких структур держится в оперативной
памяти, а часть - на диске. Подкачка выполняется по блокам
размером в 4К, которые и называются страницами. Когда программа
пытается обратиться к странице, которая в этот момент находится
на диске, в программе происходит специальное прерывание. В
отличие от прочих исключений и прерываний, исключение, генерируемое
при транслировании адреса, восстанавливает содержимое регистров
процессора в значения, позволяющие повторить выполнение
команды, вызвавшей данное исключение. Такие специальные
действия носят названия перезапуска команды. Это позволяет операционной
системе прочесть страницу с диска, обновить отображение
линейных адресов в физические адреса для данной страницы и
перезапустить программу. Такой процесс прозрачен для программы.
Если операционной системой не разрешен механизм подкачки
страниц, то линейные адреса будут одновременно являться и физическими
адресами. Это может быть в тех случаях, когда разработка,
которая была сделана для 16 -разрядного процессора, адаптируется
для использования 32 - разрядного процессора.
Операционная система, написанная для 16 - разрядного процессора,
не использует механизма подкачки страниц, поскольку размер
ее адресного пространства настолько мал (64Кбайт), что гораздо
более эффективным является механизм свопинга между оперативной
памятью и диском целых сегментов, нежели отдельных
страниц памяти.
Подкачка страниц должна быть разрешена для операционных
систем, которые могут поддерживать виртуальную память с подкачкой
страниц. Подкачка страниц прозрачна для прикладного программного
обеспечения, поэтому операционная система, которая
должна поддерживать прикладные программы, написанные для 16
- битовых процессоров, может выполнять эти программы с разрешенной
подкачкой страниц.
Диспетчер памяти. Эффективный доступ к памяти осуществляется
диспетчером памяти. Его назначение заключается в
следующем. Прикладные программы не используют прямой
адресации к физической памяти, а адресуются к некоторой модели
памяти - виртуальной памяти. Диспетчер памяти поддерживает
механизмы сегментации и замещения страниц, то есть их подкачки.
Возможно использование одного из указанных механизмов или их
одновременное использование.
Адрес, используемый в программе, называется логическим адресом.
Устройство сегментации преобразует логический адрес в некоторый
промежуточный адрес несегментированного адресного пространства,
называемый линейным. Устройство замещения страниц
преобразует полученный линейный адрес в физический.
Логический адрес трактуется как смещение в сегменте и согласно
этому преобразуется в линейный. Каждый сегмент имеет
дескриптор, который содержит его базовый адрес и максимальный
размер. Если смещение меньше размера и нет препятствий для
чтения сегмента, линейный адрес получается сложением базового
адреса и смещения.
Линейный адрес, выработанный устройством сегментации,
используется непосредственно как физический адрес. Для преобразования
линейного адреса в физический используется устройство
подкачки страниц. Устройство подкачки страниц обеспечивает другой
уровень организации памяти. Оно разбивает линейное адресное
пространство на блоки фиксированной длины (4Кбайт) - страницы.
Логическое адресное пространство отображается в линейное адресное
пространство, которое отображается на несколько страниц.
Страницы могут находиться как в памяти, так и на диске.
При обращении программы по логическому адресу, он транслируется
в адрес на странице памяти, или генерируется исключение,
если данная страница отсутствует в памяти. При генерации исключения
управление передается операционной системе, которая в
этом случае пытается считать нужную страницу с диска и обновить
таблицу страниц. После этого, работа программы, которая вызвала
исключение, возобновляется без генерации исключения.
Алгоритмы замещения страниц в некоторых ситуациях могут
работать крайне неэффективно, что может быть исправлено специальной
прикладной программой. Архитектура процессора 80486 дает
свободу выбора модели памяти для каждой отдельной программы,
даже если эти программы выполняются одновременно.

Возможен выбор любой модели организации памяти, являющейся
промежуточной между двумя следующими моделями:
? несегментированное или "плоское" адресное пространство, при
котором пространства кодов, стека и данных отображаются в
общие линейные адреса. В этом случае сегментация игнорируется и
позволяется доступ любого типа указателя на память к любому типу
данных.
? сегментированное адресное пространство с различными
сегментами для пространств кода, данных и стека. Может быть
использовано до 16383 линейных адресных пространств, размером
до 4 Гбайт каждое.
Обе эти модели, кроме того, могут обеспечивать защиту памяти.

Несегментированная или "плоская" модель. Несегментированная
модель - это самая простая модель памяти. Эффективный доступ к
ячейкам памяти достигается отображением всех сегментов в
единое линейное адресное пространство. В результате этого все
операции с памятью обращаются к общему пространству памяти. В
плоской модели сегменты могут покрывать весь 4 Гбайт диапазон
физических адресов, или только те адреса, которые отображаются на
физическую память.
Преимущество модели заключается в том, что она обеспечивает
минимальный уровень аппаратной защиты от программных
ошибок.
Сегментированная модель. В сегментированной модели организации
памяти логическое адресное пространство содержит до
16383 сегментов, размером до 4 Гбайт каждый, т. е. общий объем
может достигать 246 байт (64 Тбайт). МП отображает это 64 -
терабайтовое логическое адресное пространство в физическое адресное
пространство (до 4 Гбайт).
Преимущество сегментированной модели заключается в том,
что смещение внутри каждого адресного пространства проверяется
отдельно и доступ к каждому сегменту контролируются индивидуально.
Размер сегмента определяется программистом, что позволяет
делать его равным размеру содержащегося в нем модуля.
Доступ к сегментированному адресному пространству осуществляется
с помощью указателя, который состоит из двух частей:
? 16 - разрядного поле селектора сегмента, которое идентифицирует
сегмент.
? смещения, которое представляет собой 32 -разрядный адрес
внутри сегмента.
Селектор сегмента используется для получения линейного
адреса начала сегмента, называемого базовым адресом. Он указывает
на информацию, определяющую сегмент, которая называется
дескриптором сегмента. В программе может использоваться больше
шести сегментов, селекторы которых занимают сегментные регистры.

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

Микропроцессоры
Pentium Р5
Выпуск высокопроизводительных
МП начат в 1993г., когда фирмой Intel
был разработан процессор Pentium P5 класса 80*86, использующий
архитектурную концепцию CISC (Completed Instruction Set Computer).
Корпус процессора квадратный с 321 контактными выводами матричного
типа, то есть выводы расположены по всему периметру корпуса
в несколько рядов (конструктив Socket 7).

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

Он имеет тактовую частоту до 100 МГц и более, выполнен по
субмикронной технологией (с шириной проводников менее 1 мкм),
позволившей разместить на кристалле около 3,1 млн. транзисторов.
Благодаря такой компактности сокращается время передачи данных
внутри микропроцессора, и тем самым обеспечивается более высокая
производительность работы системы в целом (до 200 млн. оп/с).
Процессор имеет выполненную на кристалле процессора кэшпамять
первого уровня (L1) объемом 32 Кбайт, разбитую на два банка:
кэш-память данных и кэш-памяти команд, каждая из которых имеет
объем 16 Кбайт. Кэш-память предназначена для временного хранения
многократно используемых программой команд и данных, что
позволяет процессору реже обращаться за ними к внешней медленнодействующей
основной памяти (ОП). Каждый банк памяти соединяется
с ядром собственной шиной и обеспечивает высокоскоростной обмен
информацией по двум физически разнесенным шинам. Такая архитектура
обеспечивает устранение конфликтов в системе при передаче
команд и данных.
Кэш-память L1 работает на частоте процессора, что характеризует
ее как самую быстродействующую память системы. От емкости L1
зависит быстродействие процессора, однако увеличение объема кэшпамяти
приводит к усложнению кристалла процессора и, как следствие,
к его удорожанию.
Несмотря на большую вычислительную мощность процессора
Р5, обработка программ трехмерной графики, число которых
неуклонно возрастает, является самым узким местом при обработке
команд. Увеличение же производительности процессора за счет
повышения тактовой частотой малоэффективно. Это связано с тем,
что повышение тактовой частоты в два раза ведет к увеличению
производительности в интервале 15 - 45%% в зависимости от
тактовой частоты (чем выше тактовая частота процессора, тем
меньше прирост производительности). Данное обстоятельство
поставило задачу поиска иных путей повышения производительности
процессоров.
Одним из таких путей является увеличение емкости кэш-памяти
первого уровня с 16 до 32 Кбайт, второй путь - внедрение технологии
ММХ (ММХ - Multi Media Extension).
Увеличения емкости кэш-памяти обеспечивает увеличение вероятности
нахождения данных в кэш-памяти при их считывании процессором.
Так при объеме кэш-памяти 8 Кбайт процессор в более чем
в 80% случаев обращения к памяти без "промаха" находит данные в
кэш-памяти. Двукратное увеличение объема кэш-памяти
обеспечивает 5% прирост "попаданий", а четырехкратное
увеличение - прирост около 8%. Очевидно, что дальнейшее
наращивание оказывается неоправданным: каждое последующее
удвоение объема приносит лишь процент (или менее) увеличения
вероятности "попадания". Иными словами, 32 Кбайт - оптимальный
объем, и поэтому кэш-память нового процессора Pentium была
увеличена только вдвое.
Кроме того, несколько изменена ее структура: она сделана четырехканальной,
что снизило вероятность остановки одного из конвейеров
при невозможности получить из нее данные.
В конвейер команд была введена дополнительная ступень определения
взаимозависимости инструкций, благодаря чему сказалось
возможным усовершенствовать механизм предсказания ветвлений.
Все описанные меры позволили увеличить производительность примерно
на 10-20%%.
Второй путь, связанный с внедрением технологии ММХ, обязан
широкому использованию мультимедийных программ. ММХ - это
архитектура процессора, обеспечивающая эффективное выполнение
команд трехмерной графики за счет высокоскоростной обработки вещественных
чисел (чисел с плавающей точкой). Она включает специальные
наборы команд и устройств, которые используют принцип
выполнения одного потока команд над множеством потоков данных -
SIMD (Single Instruction Multiplay Data). В этом случае
обеспечивается конвейеризация при выполнении команд: например,
в 64-разрядном арифметико-логическом устройстве одновременно
могут выполняться две 32 - разрядные, четыре 16-разрядные или
восемь 8 - разрядных операций; введены комбинированные команды
типа "умножение со сложением", инструкции упаковки - распаковки
данных и т.д.

Так, если для выполнения большинства офисных задач хватало
даже производительности 100 МГц Pentium, то полноразмерное экранное
видео с одновременной обработкой звуковой информации
оказывалось на пределе возможностей самых производительных
процессоров. В то же время обработку аудио- и видеоинформации
вполне можно было бы поручить специализированному встроенному
сопроцессору, подобно имеющемуся в Pentium для ускорения операций
с плавающей запятой. Для того, чтобы как можно меньше
переделывать устройство дешифрации команд, коды
мультимедийных инструкций были сделаны совпадающими с кодами
математического сопроцессора и запрещена его одновременная
работа со встроенным мультимедийным сопроцессором. В результате
при обработке мультимедиа информации включается одни
сопроцессор, при математических расчетах - другой. Переключение
осуществляется установкой или сбросом соответствующего флага.
Таким образом, подобный мультимедийный процессор может
работать с аудио- и видеоинформацией на 50-80%% быстрее своего
не мультимедийного аналога.
Первые мультимедийные процессоры на 166 МГц P5 ММХ и на
200 МГц P5 ММХ появились в январе 1997 г. Корпуса процессоров
P5 и P5 MMX аналогичны по исполнению Р5.
Архитектурно-структурные особенности. Характерной чертой
процессоров Р5 являются многочисленные архитектурноструктурные
особенности, которые включают следующие:
? использование суперскалярной архитектуры;
? раздельное кэширование программного кода и данных;
? наличие буфера адреса ветвления;
? использование высокопроизводительного блока вычислений с
плавающей запятой;
? наличие расширенной 64 - битовой шины данных;
? обеспечение поддержки многопроцессорного режима работы;
? применение средств задания размера страницы памяти;
? использование средств обнаружения ошибок и функциональной
избыточности;
? управление производительностью;
? наращиваемость с помощью Intel Overdrive процессора.

Суперскалярная архитектура. Суперскалярная архитектура Р5
представляет собой совместимую только с INTEL двухконвейерную
архитектуру, позволяющую процессору достигать новых уровней
производительности посредством выполнения более, чем одной команды
за один период тактовой частоты.
Термин "суперскалярная" обозначает микропроцессорную архитектуру,
которая содержит более одного вычислительного блока.
Эти вычислительные блоки, или конвейеры, являются узлами, где
происходят все основные процессы обработки данных и команд.
Возможность выполнять множество команд за один период
тактовой частоты существует благодаря тому, что Р5, имея два
конвейера, может выполнять две инструкции одновременно.
Двойной конвейер Р5 выполняет простую команду за пять этапов:
? предварительная подготовка,
? первое декодирование (декодирование команды),
? второе декодирование (генерация адреса),
? выполнение,
? обратная выгрузка.
Поэтапное выполнение команд позволяет нескольким командам
находиться в различных стадиях выполнения, увеличивая тем самым
вычислительную производительность.
Двухконвейерная обработка данных осуществляется двумя секциями
обработки данных - U и V (рис. 5).
Каждая из них включает блок формирования адреса и АЛУ. Первичная
U - секция может выполнять все операции над целыми числами
и операции с плавающей запятой. Вторичная V-секция может выполнять
только простые операции с целыми числами и частично -
операции с плавающей запятой. Входящие в секции блоки чтениязаписи
разделены на блоки чтения и блоки записи. Каждое из них
снабжено своим буфером-накопителем. Такое исполнение ядра процессора
позволяет последовательно идущие команды чтения и записи
вести одновременно, что полностью исключает конфликтные ситуации
в магистрали и повышает скорость при вводе-выводе команд.

Рис. 5. Архитектура микропроцессора Pentium Р5

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

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +3805044-68-872

© Ассоциация электронных библиотек Украины

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