Поле типа в байте доступа определяет назначение и особенности использования сегмента. Если бит S (System - бит 4 байта доступа) равен 1, то данный дескриптор описывает реальный сегмент памяти. Если S = 0, то этот дескриптор описывает специальный системный объект, который может и не быть сегментом памяти, например, шлюз вызова, используемый при переключении задач, или дескриптор локальной таблицы дескрипторов LDT.
В случае обращения за операндом смещение в сегменте формируется микропроцессором по режиму адресации операнда, заданному в команде. Смещение в сегменте кода извлекается из регистра - указателя команд EIP.
Сумма извлеченного из дескриптора начального адреса сегмента и сформированного смещения в сегменте дает линейный адрес (ЛА).
Если в микропроцессоре используется только сегментное представление адресного пространства, то полученный линейный адрес является также и физическим.
Если помимо сегментного используется и страничный механизм организации памяти, то линейный адрес представляется в виде двух полей: старшие разряды содержат номер виртуальной страницы, а младшие смещение в странице. Преобразование номера виртуальной страницы в номер физической проводится с помощью специальных системных таблиц: каталога таблиц страниц (КТС) и таблиц страниц (ТС). Положение каталога таблиц страниц в памяти определяется системным регистром CR3. Физический адрес вычисляется как сумма полученного из таблицы страниц адреса физической страницы и смещения в странице, полученного из линейного адреса.
Главные особенности формата команд МП с архитектурой IA-32 по сравнению с 16-разрядным микропроцессором:
- возможность использования любого из регистров общего назначения в любом из режимов адресации;
- возможность использования 32-разрядных непосредственных операндов и смещений при относительных режимах адресации наряду с имевшимися ранее 8- и 16-разрядными;
- добавление еще одного режима адресации - относительного базового индексного с масштабированием.
Программа размещается вместе с данными в основной памяти ЭВМ. Каждая команда хранится в отдельной ячейке памяти (или группе смежных ячеек) и имеет свой адрес. Все команды имеют одинаковую структуру. Они состоят из двух частей: кода операции и адресной части. Код операции определяет, какую команду нужно выполнить. Адресная часть определяет, где хранятся операнды, т.е. обрабатываемые данные, и куда необходимо поместить результат операции.
В зависимости от количества используемых в команде операндов различают одно-, двух-, трех-, четырехадресные и безадресные команд
В одноадресных командах указывается, где находится один из двух обрабатываемых операндов. Второй операнд должен быть помещен заранее в арифметическое устройство (для этого в систему команд вводятся специальные команды пересылки данных между устройствами).
В двухадресных командах оба операнда перед выполнением операции находятся в памяти, поэтому их адреса указываются в команде. После выполнения команды в один из этих адресов засылается результат, а находившийся там операнд теряется.
В трехадресных командах два адреса указывают, где находятся входные операнды, а третий — куда необходимо поместить результат.
В четырехадресных командах три адреса используются для указания исходных операндов и результата, а четвертый — для указания адреса следующей команды.
В безадресных командах обычно обрабатывается один операнд, который до и после операции находится в арифметическом устройстве (в память не пересылается).
Для организации разветвлений, циклического выполнения участков программы, есть команды, нарушающие естественный порядок. К ним относятся: безусловная передача управления (или безусловный переход), условная передача управления (т.е. переход, если выполняется заданное условие), обращение к подпрограмме (т.е. переход с возвратом), циклические операции. Кроме того, естественный порядок следования команд не соблюдается в машинах, использующих четырехадресные команды (в этом случае некоторые из команд передачи управления упраздняются).
При явном указании адреса следующей команды реализуется «принудительный» порядок следования команд. Он возможен только в том случае, если программа размещается в доступной процессору части основной памяти. Поскольку при этом команды ничем не отличаются от данных, в процессе выполнения программы ее команды можно изменять (модифицировать), что повышает гибкость программирования и универсальность ЭВМ.
Семейство микропроцессоров фирмы Intel имеет базовую систему команд, в состав которой входят следующие группы:
- команды пересылки данных:
- команды пересылки данных внутри МП
- команды ввода-вывода
- арифметические команды:
- основные (сложение, вычитание, умножение, деление);
- дополнительные
- логические команды (сдвиг, дизъюнкция, конъюнкция, и др.);
- команды обработки строковых данных (пересылка, сравнение, сканирование, слияние/разделение и др.);
- команды передачи управления (безусловный переход, условный переход, прерывания, переход с возвратом);
- команды управления («нет операции», «внешняя синхронизация и т.д.).
Каждая команда имеет большое число модификаций, чаще всего определяемых режимом адресации данных (операндов). Операнды бывают трех типов: регистровый, непосредственный и «операнд в памяти».
Регистровые операнды указываются именами используемых регистров МП.
Непосредственные операнды бывают всегда числовые. Числа могут быть представлены в различных системах счисления. Различаются они по последней букве, сопровождающей число: «b» двоичное, «q» — восьмеричное, «d”— десятичное, «h»— шестнадцатеричное.
Операнды в памяти могут указываться с помощью регистров символическими именами, константами. Различные комбинации этих элементов в команде называются способами адресации. Так, команда МОV (переслать число) может иметь следующие способы адресации
mov r,r mov sr, m
mov r,m mov sr, r
mov m,r mov m,sr
mov r,imed mov r,sr
mov, m,imed
где: r — регистр общего назначения микропроцессора; m — адрес в памяти; imed — число; sr - сегментный регистр.
При использовании «операндов в памяти» указание на физический
адрес ОП может производиться непосредственно, косвенно и со смещением.
При непосредственной адресации исполнительный адрес указывается в виде шестнадцатеричного числа, однозначно определяющий ячейку внутри заданного сегмента или в виде символического имени. Если адресуется ячейка текущего сегмента, то имя сегмента в адресной части команды не указывается (это связано с режимом умолчанию: текущим по умолчанию для адреса команды является регистр СS,
для адресации ячейки в стековом сегменте — SS, для адресации данных - DS). Это значит, что в команде безусловного перехода внутри того же сегмента нет необходимости указывать:
cs: исполнительный адрес
а при адресации данных:
ds: исполнительный адрес.
Только, если адрес ОП относится к сегменту, указанному в другом регистре (или не указанному в сегментных регистрах), его имя необходимо указывать в команде.
При косвенной адресации исполнительный адрес ОП хранится в одном из 16-битовых регистров МП, а в команде указывается имя этого регистра. В этом случае имя регистра, содержащего адрес, заключатся в квадратные скобки.
Косвенная адресация имеет несколько разновидностей, в зависимости от используемых регистров и от способа их использования. По способу использования различаются базовая, индексная и базово-индексная адресации.
Вопросы для самоконтроля[1,4]:
1. Режимы адресации?
2. Типы адресации МП?
3. Физическое адресное пространство?
4. Схема получения физического адреса
5. Как различают команды по количеству используемых операндов?
Раздел 4. Современные типы МП
Студент должен знать:
- характеристики и принцип построения МП фирмы Intel,
- характеристики и принцип построения МП фирмы AMD,
- особенности многоядерных процессоров
- отличия МП для ноутбуков от десктопных МП
Студент должен уметь:
- Умение идентифицировать МП различных фирм-производителей.
- Умение описывать функциональные узлы и управляющие сигналы МП фирм Intel, AMD
- Умение описывать узлы кэш-памяти МП
- Умение установки и подключения МП
Структурная организация и характеристики МП фирм Intel, AMD. Многоядерные процессоры: применение, производительность, развитие. МП для ноутбуков, карманных ПК.
Теоретическое обоснование
Мозг любого компьютера – это процессор, который оперирует всеми необходимыми вычислениями. С каждым годом ему требуется работать все быстрее и быстрее, потому что постоянно растут требования к нему. Мало того, ему необходимо выполнять несколько задач одновременно.
Чтобы наделить компьютерные системы новыми способностями, корпорация Intel предложила идеологию перехода к следующему этапу эволюционного развития цифровых полупроводниковых устройств – а именно, многоядерную архитектуру процессоров и соответствующих платформ. Весной 2005 года корпорация Intel объявила о выходе первых двухъядерных продуктов для настольных систем, созданных на базе 90-нм технологического процесса, – процессора Intel® Pentium® Extreme Edition 840, обладавшего способностью обрабатывать до 4 потоков инструкций за счет поддержки технологии Hyper-Threading, процессоров семейства Intel® Pentium® D серии 8xx, а также наборов микросхем семейства Intel® 945/955X Express с подержкой двухъядерных процессоров. Позднее, в самом начале 2006 года линейка двухъядерных процессоров была дополнена моделями, созданными на базе нового, 65-нм технологического процесса, – процессором Intel® Pentium® Extreme Edition 955 и процессорами Intel® Penium® D серии 9хх, а также набором микросхем Intel® 975X Express.
Многоядерный процессор содержит два или больше вычислительных ядер на одном кристалле. Он имеет один корпус и устанавливается в один разъем на системной плате, но операционная система воспринимает каждое его вычислительное ядро как отдельный процессор с полным набором вычислительных ресурсов. Например, двухъядерный процессор – это реализация многоядерности с двумя вычислительными ядрами.