Целочисленный процессор Х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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.