Знакомство с архитектурой компьютера

Содержание

Слайд 2

Архитектура процессоров будет рассматриваться на базе IA-32 (Intel Architecture 32 bit)

Архитектура процессоров будет рассматриваться на базе IA-32 (Intel Architecture 32 bit)

– 32-разрядные процессоры семейства x86

Процессоры делятся на поколения. История семейства x86 фирмы Intel началась с 16разрядного процессора 8086, который относится к первому поколению (отсюда и сокращение x86). Начиная с процессора 80386 (третье поколение) все последующие модели процессоров являются 32-разрядными.

Смотреть деление процессоров Intel на поколения, а также года их выпусков, основные характеристики и общепринятые обозначения.

Слайд 3

1. Режимы работы процессора Процессор архитектуры IA-32 может работать в одном

1. Режимы работы процессора

Процессор архитектуры IA-32 может работать в одном

из пяти режимов и переключаться между ними очень быстро:

Реальный (незащищенный) режим (real address mode) — режим, в котором работал процессор 8086. В современных процессорах этот режим поддерживается в основном для совместимости с древним программным обеспечением (DOS программами).
Защищенный режим (protected mode) — режим, который впервые был реализован в 80286 процессоре. Все современные операционные системы (Windows, Linux и пр.) работают в защищенном режиме. Программы реального режима не могут функционировать в защищенном режиме.
Режим виртуального процессора 8086 (virtual-8086 mode, V86) — в этот режим можно перейти только из защищенного режима. Служит для обеспечения функционирования программ реального режима, причем дает возможность одновременной работы нескольких таких программ, что в реальном режиме невозможно. Режим V86 предоставляет аппаратные средства для формирования виртуальной машины, эмулирующей процессор 8086. Виртуальная машина формируется программными средствами операционной системы. В Windows такая виртуальная машина называется VDM (Virtual DOS Machine — виртуальная машина DOS). VDM перехватывает и обрабатывает системные вызовы от работающих DOS-приложений.
Нереальный режим (unreal mode, он же big real mode) — аналогичен реальному режиму, только позволяет получать доступ ко всей физической памяти, что невозможно в реальном режиме.
Режим системного управления System Management Mode (SMM) используется в служебных и отладочных целях.

Слайд 4

1. Режимы работы процессора При загрузке компьютера процессор всегда находится в

1. Режимы работы процессора

При загрузке компьютера процессор всегда находится в

реальном режиме, в этом режиме работали первые операционные системы, например MS-DOS, однако современные операционные системы, такие как Windows и Linux переводят процессор в защищенный режим.

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

Слайд 5

2.Регистры процессора В процессоре содержатся быстродействующие ячейки памяти, называемые регистрами, которые

2.Регистры процессора

В процессоре содержатся быстродействующие ячейки памяти, называемые регистрами,

которые может и должна использовать любая программа. Каждый регистр имеет свое уникальное имя. Именно с помощью регистров программисты манипулируют процессором в своих программах на ассемблере. Начиная с 386 процессора, регистры делятся на следующие группы:
16 пользовательских регистров;
16 системных регистров;
13 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей запятой (FPU/NPX);
В современных процессорах (PIII, P4) имеются дополнительные регистры: XMM (расширение SSE/SSE2).

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

Пользовательские регистры это основные регистры, которые использует программист на ассемблере. Системные регистры используются в защищенном режиме ассемблера. Регистры FPU, MMX и XMM необходимы для ускорения вычислений и чаще всего используются в графических приложениях ( в компьютерных играх).

Слайд 6

2.1. Пользовательские регистры Пользовательские регистры разделяются на регистры общего назначения, сегментные

2.1. Пользовательские регистры

Пользовательские регистры разделяются на регистры общего назначения,

сегментные регистры, регистры флагов и указателя команд

Расширения, которые появились в 32-разрядных процессорах, выделены на рис. серым цветом.

Слайд 7

2.1.1. Регистры общего назначения Наиболее интенсивно используемыми в процессоре являются регистры

2.1.1. Регистры общего назначения

Наиболее интенсивно используемыми в процессоре являются регистры

общего назначения. В процессорах первого поколения регистры общего назначения были 16 разрядными. Начиная с третьего поколения (с процессора 80386) регистры общего назначения стали 32-разрядными.

Именно из-за того, что регистры общего назначения являются 32-разрядными Intel-совместимые процессоры и называются 32-разрядными. Аналогично процессоры первого поколения назывались 16-разрядными потому, что имели 16-разрядные регистры общего назначения. Соответственно 64-разрядные процессоры Intel имеют 64-разрядные регистры общего назначения.

Из-за совместимости с процессорами первых поколений регистры общего назначения можно использовать, как полностью 32 бита (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP), так и только младшую половину 16 бит (AX, BX, CX , DX, SI, DI, BP, SP). В свою очередь младшая половина в некоторых регистрах общего назначения также может использоваться частями по 8 бит (AH, AL, BH, BL, CH, CL, DH, DL). Как видно названия 32-битных регистров отличаются от 16-битных только приставкой E (Extended — расширенный).

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

Слайд 8

2.1.1. Регистры общего назначения Краткое описание всех регистров общего назначения: EAX/AX/AH/AL

2.1.1. Регистры общего назначения

Краткое описание всех регистров общего назначения:
EAX/AX/AH/AL

(Accumulator register) — аккумулятор. В основном используется для хранения любых промежуточных данных. Только в некоторых командах использование этого регистра обязательно.
EBX/BX/BH/BL (Base register) — база. В основном используется для хранения любых промежуточных данных. Некоторые команды используют этот регистр при так называемой адресации по базе.
ECX/CX/CH/CL (Count register) — счетчик. В основном используется для хранения любых промежуточных данных. Использование этого регистра обязательно только в командах организации цикла (повторяющихся действий).
EDX/DX/DH/DL (Data register) — регистр данных. В основном используется для хранения любых промежуточных данных. Только в некоторых командах использование этого регистра обязательно.
ESI/SI (Source Index register) — индекс источника. Используется в цепочечных операциях (обычно цепочкой является строка символов) и содержит адрес элемента в цепочке-источника.
EDI/DI (Destination Index register) — индекс приемника (получателя). Используется в основном в цепочечных операциях (цепочкой обычно является строка символов) и содержит текущий адрес в цепочке-приемнике.
EBP/BP (Base Pointer register) — регистр указателя базы кадра стека. Предназначен для организации произвольного доступа к данным внутри стека.
ESP/SP (Stack Pointer register) — регистр указателя стека. Содержит указатель вершины стека.
Слайд 9

2.1.2. Сегментные регистры В реальном режиме работы процессора процессор может аппаратно

2.1.2. Сегментные регистры

В реальном режиме работы процессора процессор может аппаратно

делить программу в памяти на 3 части, которые прозвали сегментами, а сегментные регистры соответственно предназначены для доступа к этим сегментам:
Сегмент кода. В этом сегменте содержатся машинные команды. Для доступа к этому сегменту служит регистр CS (code segment register) — сегментный регистр кода.
Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр DS (data segment register) — сегментный регистр данных.
Сегмент стека. В этом сегменте содержится стек. Для доступа к этому сегменту служит регистр SS (stack segment register) — сегментный регистр стека.

Если программисту недостаточно одного сегмента данных адресуемого регистром DS, то он может задействовать в своей программе дополнительные сегменты данных с помощью сегментных регистров ES, GS, FS (extension data segment registers).

Слайд 10

2.1.3. Регистр флагов и указателя команд EIP/IP (Instruction Pointer register) —

2.1.3. Регистр флагов и указателя команд

EIP/IP (Instruction Pointer register) — указатель

команд. 32/16-разрядный регистр, который содержит адрес следующей машинной команды в памяти, подлежащей выполнению.
EFLAGS/FLAGS (flag register) — регистр флагов. Каждый отдельный бит этого 32/16-разрядного регистра называется флагом. Говорят флаг установлен, если соответствующий разряд содержит 1, и сброшен, если разряд содержит 0.

На рис. показано содержимое регистра EFLAGS,

Просмотреть названия и назначение каждого флага.

Слайд 11

2.2. Системные регистры Эти регистры используются для обеспечения работы защищенного режима

2.2. Системные регистры

Эти регистры используются для обеспечения работы защищенного режима

микропроцессора, поэтому редко используются программистами.

К системным регистрам относят:
четыре регистра системных адресов (GDTR, IDTR, TR, LDTR)
пять регистров управления (CR0 – CR4)
восемь регистров отладки (DR0 – DR7).

Слайд 12

2.3. Регистры FPU и MMX Регистры FPU (Floating Point Unit —

2.3. Регистры FPU и MMX

Регистры FPU (Floating Point Unit —

блок чисел с плавающей запятой) предназначены для ускорения операций с числами с плавающей запятой.

В первых поколениях процессоров эти регистры располагались в отдельной микросхеме, которая называлась сопроцессор на материнской плате. Для соответствующего поколения процессора был свой сопроцессор: 8087, 80287, 80387, 80487. Начиная с процессора 80486DX, сопроцессор располагается на одном кристалле с центральным процессором. В разных поколениях процессоров сопроцессор, называли, по-разному FPU или NPX (Numeric Processor eXtention — числовое расширение процессора), однако первое название получило наибольшее распространение.

Слайд 13

2.3. Регистры FPU и MMX В блок FPU входят пять вспомогательных

2.3. Регистры FPU и MMX

В блок FPU входят пять вспомогательных

регистров:
регистр состояния SWR (Status Word Register)
регистр управления CWR (Control Word Register)
регистр тегов TWR (Tags Word Register)
регистр-указатель команд IPR (Instruction Point Register)
регистр-указатель данных DPR (Data Point Register)

Регистры MMX (MultiMedia eXtensions — мультимедийные расширения) появились в пятом поколении процессоров Intel. MMX ускоряют работу с мультимедийными приложениями. Это достигается за счет одновременной обработки нескольких элементов данных за одну инструкцию — так называемая технология SIMD (Single Instruction — Multiple Data).

Регистры MMX и FPU/NPX являются одними и теми же регистрами сопроцессора, просто в программе при необходимости программист явно указывает, желает он использовать эти регистры для работы с мультимедийными приложениями (MMX) или для работы с числами с плавающей запятой (FPU/NPX).