Целочисленный процессор Х86 (СPU)
Базовая архитектура и программная модель 32-х разрядных процессоров, свойства регистров общего назначения. Поддержка битовых данных, применение указателей для обращения к объектам памяти. Характеристика системы команд, типы взаимодействия двух операндов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 28.01.2011 |
Размер файла | 40,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
12
ЦЕЛОЧИСЛЕННый ПРОЦЕССОР х86 (СPU)
1. АРХИТЕКТУРА 32-х РАЗРЯДНЫХ МИКРОПРОЦЕССОРОВ
386+
процессор регистр битовый указатель операнд
Базовая архитектура 32-х разрядных процессоров (обозначаемых: 386+) является общей для существующих на данный момент процессоров фирмы INTEL - 386, 486, PENTIUM и его модификаций.
МП состоит из 3 основных частей:
устройства обработки;
устройства управления ЗУ;
интерфейсного блока.
УСТРОЙСТВО ОБРАБОТКИ состоит из исполнительного устройства (операционной части) и блока команд (управляющей части). Содержит 8 32-х разрядных РОН, 64-х битовый циклический сдвигатель. Умножение и деление осуществляется на 1 бит за цикл. Алгоритм умножения такой, что процесс прекращается, когда наиболее значащий бит, умножается на все нули. Типичное время умножения 32-х разрядных чисел около 1 мкс (для процессора I80386).
УСТРОЙСТВО УПРАВЛЕНИЯ ЗУ состоит из сегментного и страничного блоков. Сегментный блок позволяет работать с логическими адресами со всеми вытекающими отсюда преимуществами. Страничная организация используется внутри сегмента и управляет физическими адресами. Каждая задача может иметь до 16381 (214) сегмента до 4 Гбайт каждый (232), т.е. виртуальная память может быть размером 64 Тбайт (246).
ИНТЕРФЕЙСНЫЙ БЛОК обеспечивает взаимодействие с внешними устройствами, включая автоматическое управление разрядностью шины, и формирование сигналов активности байтов.
МП 386+ могут функционировать в трех режимах:
Ш REAL ADDRESS MODE - режим реальной адресации (РРА) - характеризуется тем, что МП работает как очень быстрый 8086 с 32-битовым расширением; в этом режиме возможна адресация 1 Мбайта физической памяти (на самом деле, как у I80286, - почти на 64 Кбайта больше);
Ш PROTECTED ADDRESS MODE - режим защищенной виртуальной адресации (РВА) - реализует все достоинства МП (режим параллельного выполнения нескольких задач несколькими 8086 - по одному на задачу). На одном процессоре в таком режиме могут одновременно исполняться несколько задач с изолированными друг от друга реальными ресурсами. При этом использование физического адресного пространства памяти управляется механизмами сегментации и трансляции страниц. Попытки выполнения недопустимых команд, выхода за рамки отведенного пространства памяти и разрешенной области ввода-вывода контролируются системой защиты.
Ш VIRTUAL 8086 MODE - режим виртуального процессора 8086 (сокращенно - V86). Прикладная программа, которая выполняется в этом режиме, полагает, что она работает на процессоре 8086. Однако, некоторые команды, в основном связанные с управлением вводом-выводом, программе выполнять запрещается, поэтому при нарушении защиты генерируется прерывание и управление передается операционной системе.
2. ПРОГРАММНАЯ МОДЕЛЬ 32-х РАЗРЯДНЫХ ПРОЦЕССОРОВ
(386+)
МП 386+ имеет 31 регистр (у PENTIUM+ - 32 регистра), разбитые на следующие группы:
Ш регистры общего назначения;
Ш сегментные регистры;
Ш указатель команд и регистр флагов (признаков);
Ш управляющие регистры;
Ш регистры системных адресов;
Ш отладочные регистры;
Ш тестовые регистры.
Набор РЕГИСТРОВ ОБЩЕГО НАЗНАЧЕНИЯ (рис. 1) включает соответствующие регистры процессоров I8086 и I80286. Все эти регистры, кроме сегментных, имеют разрядность 32 бита и к прежнему обозначению их имен добавилась приставка «E» (Extended - расширенный). Отсутствие приставки «Е» в имени означает ссылку на младшие 16 бит расширенных регистров. Обратиться к старшим 16-ти битам расширенных регистров ни одна команда не может. Как и в I8086, возможно независимое обращение к младшему и старшему байтам регистров AX, BX, CX, DX.
Размещено на http://www.allbest.ru/
12
Архитектура МП 386+ позволяет непосредственно обращаться к 6 сегментам (размером до 4 Гбайт каждый) при помощи специальных селекторов, которые загружаются в сегментные регистры программно. Содержимое РОНов, селекторов, указателя команд и регистра флагов (признаков) зависит от выполняемой задачи и автоматически перегружается при переключении задач.
Остальные регистры МП используются, главным образом, для упрощения проектирования и отладки операционной системы.
Регистры общего назначения (РОН) - используются для хранения операндов и адресов. Могут работать с операндами, имеющими длину 1, 8, 16, 32 и 64 бита или с битовыми полями длиной от 1 до 32 бит.
УКАЗАТЕЛЬ КОМАНД - EIP - хранит смещение, которое всегда складывается со значением кодового сегментного регистра (CS) и определяет адрес следующей команды. При 16-ти битовой адресации используются только младшие 16 бит (IP).
РЕГИСТР ФЛАГОВ (признаков) - EFLAGS (рис. 2) - отражает состояние МП. При использовании только 16-ти младших разрядов - регистр флагов совместим.
На рис. 2 обозначены символами:
x - системный флаг;
s - флаг состояния;
c - управляющий флаг.
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
ID |
VI P |
VI F |
AC |
VM |
RF |
0 |
NT |
IO PL |
OF |
DF |
I F |
TF |
SF |
ZF |
0 |
AF |
0 |
PF |
1 |
CF |
||
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
c |
x |
x |
s |
s |
s |
s |
s |
Рис. 2. - Регистр флагов EFLAGS (признаков)
3. НАЗНАЧЕНИЕ БИТ РЕГИСТРА ФЛАГОВ (ПРИЗНАКОВ)
CF - (Carry Flag) - флаг переноса, показывающий перенос (заем) из старшего бита при арифметических операциях, а также значение выдвигаемого бита при сдвиге операнда;
AF - (Auxiliary Flag) - флаг вспомогательного переноса (заема) в младшей тетраде для десятичной арифметики;
OF - (Overflow Flag) - флаг арифметического переполнения, определяющий (при OF=1) выход знакового результата за границы диапазона;
ZF - (Zero Flag) - флаг нуля, показывающий (при ZF=1) нулевой результат команды;
SF - (Sign Flag) - флаг знака, дублирует значение старшего бита результата, который при использовании дополнительного кода соответствует знаку числа;
PF - (Parity Flag) - флаг паритета (четности), фиксирующий (при PF=1) наличие в младшем байте результата четного числа единичных бит.
IOPL (Input/Output Privilege Level) - используется только в РВА. IOPL указывает максимальную величину текущего приоритета, обеспечивающую выполнение команд ввода-вывода (В - В) без реакции на 13 ошибку. Этот признак также обеспечивает выбор IF, когда новое значение выталкивается из стека в регистр признаков. POPF и IRET могут изменять IOPL поле, когда IOPL = 0 (CPL=0). При переключении задач IOPL может изменяться всегда при переписи TSS (286+).
NT - (Nested Task Flag) - флаг вложенной задачи (286+);
ID (Id Flag) - флаг доступности команды идентификации CPUID (PENTIUM+ и некоторые 486+);
VIP (Virtual Intterruptt Pending) - виртуальный запрос прерывания (PENTIUM+);
VIF (Virtual Interrupt Flag) - виртуальная версия флага IF (разрешения прерывания) для многозадачных систем (PENTIUM+).
AC (Alignment Check) - флаг контроля выравнивания. При исполнении программ на уровне привилегий 3 в случае обращения к операнду, не выровненному по соответствующей границе (2,4,8 байт), и при установленном флаге АС произойдет исключение-отказ 17 с нулевым кодом ошибки. На уровнях привилегий 0,1,2 контроль выравнивания не производится (486+).
VM (Virtual 8086 Mode) - обеспечивает режим виртуального 8086 внутри режима виртуальной адресации. При VM = 1 МП будет переключен в режим виртуального I8086, при этом управление перезагрузкой сегментов будет осуществляться подобно I8086, но с исключением 13 недействительных привилегированных команд. VM может быть установлен в РВА командой IRET (если уровень приоритета = 0) и задача переключается на более низший уровень. Команда POPF не влияет на VM. Команда PUSHF всегда сбрасывает VM в 0, если она выполняется в режиме виртуального 8086. Содержимое регистра признаков будет копироваться при прерываниях или сохраняться при переключении задачи, если прерывание будет выполняться в режиме виртуального 8086 (386+).
RF (Resume Flag) - флаг возобновления - используется совместно с отладочными регистрами контрольных точек (прерываний) или пошагового режима. С его помощью проверяется ход выполнения команд в отладочном режиме (процесс отладки). Если установлен RF = 1, то это позволяет игнорировать ошибки, возникающие при отладке до следующей команды. RF автоматически сбрасывается в 0 при успешном выполнении команды (ошибки не обнаружены), за исключением команд IRET и POPF, а также JMP, CALL и INT при переключении задач. Эти команды устанавливают RF в состояние, определяемое состоянием памяти. Например, в конце выполнения подпрограммы обслуживания контрольной точки команда IRET может установить RF в состояние, соответствующее значению регистра признаков, хранимого в стеке без повторной установки RF в 1 (386+).
NT (Nested Task Flag) - флаг вложенной задачи (гнездования) используется только в режиме виртуального адреса (РВА). NT=1 указывает, что текущая задача является вложенной по отношению к другой задаче. Этот бит устанавливается и сбрасывается при вызове других задач. NT проверяется командой IRET для определения внутри заданного или внешнего по отношению к данной задаче возврата. Команды POPF и IRET будут устанавливать NT в соответствии с тем, что хранится в стеке для любого уровня привилегированности (286+).
МП 386+ содержат 6 16-ти битовых СЕГМЕНТНЫХ РЕГИСТРОВ (у предыдущих поколений - только 4 сегментных регистра), хранящих значение селектора и определяющих значения начальных (базовых) адресов сегментов. В РВА каждый сегмент может изменяться в диапазоне от одного байта до максимального значения физического адресного пространства 4 Гбайта. В РРА размеры сегмента ограничены размером 64 Кбайт.
ДЕСКРИПТОРНЫЕ РЕГИСТРЫ СЕГМЕНТОВ программно не видимы, но они неразрывно связаны с соответствующими сегментными регистрами (рис. 3). Каждый дескрипторный регистр хранит 32-х битовый базовый адрес сегмента, 20-ти битовый размер сегмента и другие необходимые атрибуты сегмента.
Когда значение селектора загружается в сегментный регистр, в режиме виртуальной адресации (РВА) соответствующий дескрипторный регистр автоматически загружается информацией из дескрипторной таблицы.
В РВА базовый адрес, размер и атрибуты сегментного дескриптора определяется селектором. 32-х битовый БАЗОВЫЙ АДРЕС сегмента становится компонентом формирования исполнительного адреса, 20-ти битовый РАЗМЕР СЕГМЕНТА используется для проверки границ рабочей области, а АТРИБУТЫ проверяются на соответствие типу запрашиваемой памяти (типу обращения).
В РРА непосредственно используется только базовый адрес (со сдвигом на 4 разряда влево), а размеры сегмента и атрибуты постоянны (фиксированы для РРА).
Размещено на http://www.allbest.ru/
12
4. ТИПЫ ДАННЫХ 32-х БИТОВЫХ ПРОЦЕССОРОВ 386+
32-х разрядные процессоры фирмы INTEL (386+) работают с целыми двоичными числами длиной 8, 16 или 32 бита и двоично-кодированными десятичными числами (BCD-числами) длиной 8 бит. Двоичные числа допускают интерпретацию как целых без знака и целых со знаком, а десятичные (BCD) - знака не имеют.
В ДВОИЧНЫХ ЦЕЛЫХ ЧИСЛАХ БЕЗ ЗНАКА все разряды считаются значащими (см. рис. 4). ДВОИЧНЫЕ ЦЕЛЫЕ ЧИСЛА СО ЗНАКОМ представляются в дополнительном коде. Старший бит является знаковым (рис. 4): S = 0 - число положительное, S = 1 - число отрицательное.
ДЕСЯТИЧНЫЕ ЧИСЛА представляются в упакованном и неупакованном форматах. Упакованный формат предполагает, что байт содержит две десятичные цифры в коде с весами 8421, занимающих младшую и старшую тетрады. Диапазон представимых BCD-чисел - 099 (рис. 4). В неупакованном формате байт содержит одну десятичную цифру, которая обычно изображается в символьном коде ASCII.
Новые команды процессоров 386+ поддерживают БИТОВЫЕ ДАННЫЕ:
· БИТ - одиночный двоичный разряд.
· БИТОВОЕ ПОЛЕ - группа до 32-х битов.
· ЦЕПОЧКА БИТОВ (СТРОКА) - набор последовательных битов, длиной до 4 Гбит.
Размещено на http://www.allbest.ru/
12
Процессор может легко оперировать с цепочками бит, байт, слов и двойных слов. Под ЦЕПОЧКОЙ (string) понимается последовательность практически любой длины отдельных, но взаимосвязанных элементов данных, ХРАНЯЩИХСЯ ПО СОСЕДНИМ АДРЕСАМ.
УКАЗАТЕЛИ применяются для обращения к некоторым объектам в памяти, например, адресам подпрограмм. Близкие (NEAR) или внутрисегментный указатель (см. рис. 4) - это 16-ти битовое или 32-х битовое смещение внутри текущего сегмента. Далекий (FAR) или межсегментный указатель применяется в тех случаях, когда программа осуществляет передачу управления в другой сегмент. Такой указатель определяет новый сегмент (с помощью селектора) и 16-ти или 32-х битовое смещение внутри этого сегмента.
При размещении операндов в памяти необходимо учитывать, что процессоры 386+ не накладывают ограничения на размещение данных. Однако производительность процессора повышается, если слова размещены по четным адресам, а двойные слова - по адресам, кратным четырем. Такой принцип называется ВЫРАВНИВАНИЕ АДРЕСОВ по границам слов или двойных слов. Выравнивание особенно важно для стека, который работает только со словами или двойными словами.
5 СИСТЕМА КОМАНД ПРОЦЕССОРОВ 386+
Система команд включает 9 групп команд:
1. передачи данных;
2. арифметические и логические;
3. сдвига;
4. обработки строк;
5. манипуляции битами;
6. передачи управления;
7. поддержки языков высокого уровня;
8. поддержки операционной системы;
9. управления процессором.
Команды могут содержать от 0 до 3 операндов, размещенных в регистрах, памяти или непосредственно в команде. Большинство безоперандных команд - однобайтовые. Однооперандные команды обычно - двухбайтовые. Средняя длина команды - 3,2 байта. Это позволяет хранить в среднем 5 команд в 16-ти байтовой ОЧЕРЕДИ КОМАНД БЛОКА ОПЕРЕЖАЮЩЕЙ ВЫБОРКИ.
При использовании двух операндов возможны следующие типы взаимодействия:
· регистр - регистр;
· память - регистр;
· регистр - память;
· непосредственный операнд - регистр;
· непосредственный операнд - память;
· память - память.
Операнды могут быть 8, 16 или 32-х разрядными. Когда выполняются команды, написанные для 386+, операнды имеют длину 8 или 32 бита, когда - для 80286 и 8086 - операнды 8 или 16 бит. Ко всем инструкциям могут добавляться префиксы, которые изменяют длину операндов (т.е. позволяют использовать 32-х битовые операнды в 16-ти битовых командах или 16-ти битовые операнды в 32-х битовых командах).
Размещено на Allbest.ru
Подобные документы
Использование пользовательских регистров. Регистры общего назначения. Элементарные и базовые типы данных. Язык микроопераций, ассемблер. Директивы резервирования памяти. Система команд, организация вычислений. Сложные структуры данных. Схемы ввода-вывода.
курс лекций [280,7 K], добавлен 02.12.2009Общая характеристика программной модели процессора Intel x86. Анализ особенностей регистров общего назначения. Назначение команд безусловной передачи управления, рассмотрение функций. Знакомство с проблемами программирования на языке Ассемблера.
курсовая работа [1,6 M], добавлен 04.02.2014Внутренняя архитектура микропроцессора Intel 486. Формат данных и команд. Регистры общего назначения. Программная модель устройства FPU, регистр флагов. Разработка структуры и микропрограммы микропроцессора, управляющего автомата с жесткой логикой.
курсовая работа [1,6 M], добавлен 27.05.2013Построение современных центральных процессоров на основе циклического процесса последовательной обработки информации. Архитектура двойного конвейера с общим вызовом команд. Основная идея создания кэш-памяти. Характеристика процессоров Core и Phenom.
реферат [1,6 M], добавлен 30.12.2010Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.
курс лекций [506,4 K], добавлен 03.05.2014Принцип работы ядра процессора, типы архитектур ядер операционных систем. Сокет(Socket), кэш-память, контроллер ОЗУ, северный мост. Внутренняя архитектура процессоров Intel и AMD: расшифровка названий, технологии процессоров, сравнение производительности.
реферат [214,9 K], добавлен 05.05.2014Принципы сегментации памяти. Классификация регистров по назначению и способу использования. "Перевернутое" представление данных в центральном процессоре. Адресация ввода/вывода информации. Программное, внутреннее и аппаратное прерывание выполнения команд.
презентация [107,4 K], добавлен 27.08.2013Типы системной памяти. ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство), "энергонезависимая память" (CMOS). Процессор. Основные шины. Адресные данные. Совокупность всех возможных команд - система команд процессора.
контрольная работа [24,3 K], добавлен 30.03.2009Исследование общих принципов программирования на языке Assembler для 32-х разрядных и 64-х разрядных процессоров. Изучение основных отличий архитектур i686 и amd64. Работа со стеком. Передача параметров в функции. Смена способа адресации внутри программы.
контрольная работа [118,2 K], добавлен 10.02.2015Процессор — транзисторная микросхема, главный вычислительный и управляющий элемент компьютера. Одноядерные и двуядерные процессоры; программная и аппаратная виртуализация, ее преимущества. Новые технологии: оптические, квантовые, молекулярные компьютеры.
реферат [612,5 K], добавлен 28.02.2011