Программная модель микропроцессора.

Программная модель – это часть компьютера, оставленная видимой и доступной для программирования на Ассемблере, содержит 32 регистра, доступных в той или иной мере программисту. Регистры делятся на 2 большие группы, в каждой из которых по 16 регистров:

1.Пользовательские: программист использует их при написании своих программ. Они делятся на 3 группы: а) 8 32-битных регистров – РОНы. Туда входят ЕАХ, ЕВХ, ЕСХ, EDX, EBP, ESI, EDI, ESP. Первый регистр – аккумулятор, применяется для хранения промежуточных данных, его использование обязательно. Второй – базовый, применяется для хранения базового адреса некоторого объекта в памяти. Третий – счетчик, применяется в командах, производящих некоторые повторяющиеся действия, часто используется неявно и скрыто. Четвертый – регистр данных, хранит промежуточные данные, в некоторых командах используется обязательно и неявно. Шестой и седьмой – регистры для поддержки цепочечных операций, шестой – индекс источника, седьмой – индекс приемника. Пятый и восьмой – регистры для работы со стеком, восьмой – регистр указателя стека, содержит указатель вершины стека в текущем сегменте, пятый – регистр-указатель базы стека, предназначен для произвольного доступа к данным в стеке.

б) 6 регистров сегментов – CS, DS, SS, ES, FS, GS. Первый – сегмент кода, содержит адрес сегмента программы, к которому имеет доступ микропроцессор. Второй – сегмент данных, содержит обрабатываемые данные. Третий – сегмент стека. Четвертый, пятый, шестой – дополнительные сегменты данных.

в) 2 регистра флагов – Eflags, EIP. Первый – отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Второй – содержит смещение относительно регистра входа. Их делят на 3 группы: 1)Восемь флагов состояния – флаги определяют состояние по результатам арифметических и логических операций (CF – флаг переноса, ZF – флаг нуля, SF – флаг знака); 2) Флаг управления – DF определяет направление обработки цепочечной операции. 3) Пять системных флагов, управляющих вводом/выводом и отладкой.

2.Системные.

Системы команд.

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

10 наиболее часто используемых команд.
1) загрузка (22%), 2) условные переходы (20%), 3) сравнение (16%), 4) запись данных (12%), 5) сложение (8%), 6) логическое И (6%), 7) вычитание (5%), 8) пересылка регистр в регистр (4%),

9) вызов подпрограмм (1%), 10) возврат в подпрограммы (1%).

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

CISC характеризуется следующим набором свойств: нефиксированное значение длины команды; арифметические действия выполняются одной инструкцией; небольшое число регистров.

Примерное количество команд – 100-200.

RISC характеризуется следующим набором свойств: архитектура позволяет удешевить процессор, поднять тактовую частоту и распараллелить исполнение команд; одинаковая длина команд облегчает их выборку из памяти, чтение идет за один такт; сокращенный набор действий над операндами, размещенными в памяти, используются простые способы адресации, что обеспечить доступ к памяти. Используется большое число РОНов, что уменьшает число обращений к памяти; все вычислительные операции выполняются над данными, находящимися в регистрах; относительно простые схемы управления, отсутствие микропрограмм внутри процессора.

Типичными представителями CISC является процессор на основе Х86 до Pentium 4. Однако процессоры, начиная с 486, являются CISC с ядром RISC.

Расширения стандартного набора команд.

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

Технология MMX – предназначена для поддержки приложений, ориентированных на обработку больших массивов данных целого типа, над которыми выполняются одинаковые операции (для обработки мультимедиа, потоков сетевых данных). Система команд ММХ содержит 57 инструкций и 4 новых типа данных и 8 ММХ-регистров по 64 бита каждый. Позволяет обрабатывать данные по 1, 2, 4 и 8 пакета.

SSE, SSE-2, SSE-3 – обновление технологии ММХ, оперирующие данными вещественного типа для геометрических расчетов в трехмерных приложениях. Инструкции содержат 70 новых команд (144 – для SSE-2). SSE-3 признано облегчить оптимизацию программ под SSE и SSE-2.

3DNow – аналогично предыдущим, предназначена для ускорения обработки мультимедиа и трехмерной графики. Представляет собой набор из 21 инструкции, используется в AMD.

Наши рекомендации