Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / lections-rtf / lect04

.rtf
Скачиваний:
11
Добавлен:
16.04.2013
Размер:
547.17 Кб
Скачать
  1. Архитектура компьютера

Архитектура ЭВМ – это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организацию. Понятие архитектуры ЭВМ является комплексным и включает в себя следующее:

  • структурную схему ЭВМ;

  • средства и способы доступа к элементам структурной схемы;

  • набор и доступность регистров;

  • организацию и способы адресации памяти;

  • способы представления и форматы данных;

  • организацию и разрядность интерфейсов;

  • набор машинных команд;

  • форматы машинных команд;

  • обработку нештатных ситуаций (прерываний).

Программы могут взаимодействовать с устройствами разными способами:

  • используя вызовы функций операционной системы (DOS, API);

  • используя вызовы функций базовой системы ввода/вывода (BIOS);

  • непосредственно взаимодействуя с регистрами периферийных устройств или контроллеров интерфейсов.

Обилие вариантов взаимодействия связано с необходимостью совместимости с младшими моделями компьютера. Любой PC-совместимый компьютер имеет следующие характерные черты:

  • процессор, совместимый с семейством x86 фирмы Intel;

  • единую систему распределения пространства адресов памяти;

  • унифицированное распределение адресов пространства ввода/вывода с фиксированным положением обязательных портов;

  • систему аппаратных прерываний;

  • систему прямого доступа к памяти;

  • набор системных устройств и интерфейсов ввода/вывода;

  • унифицированные по конструктиву и интерфейсу шины расширения;

  • базовую систему ввода/вывода (BIOS).

Стандартная архитектура компьютера определяет набор обязательных средств ввода/вывода и средств поддержки периферии – системы аппаратных прерываний (i8259A) и прямого доступа к памяти (i8237A). К обязательным стандартизованным средствам ввода/вывода относятся:

  • трехканальный счетчик (XT – i8253, AT – i8254);

  • интерфейс клавиатуры и управления (XT – i8255, AT – i88042);

  • канал управления звуком;

  • графический адаптер

Рассмотрим сложившуюся архитектуру персонального компьютера.

Рис. 4.1. Структурная схема персонального компьютера.

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

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

  • набор регистров общего назначения (32 бита: eax, ax, ah, ala, d, с, b; ebp, bp bp, si, di, sp);

  • набор сегментных регистров (16 бит: cs, ds, ss, es, fs, gs);

  • набор регистров состояния и управления (32 бита: eip, eflags и т.д.);

  • пространство адресуемой памяти (236-1 Pro/II/III,232-1 i486/Pentium);

  • набор регистров устройства вычислений с плавающей точкой (сопроцессора) (80 бит: st(0)..st(7));

  • набор регистров целочисленного MMX-расширения (64 бит: mmx0…mmx7);

  • набор регистров MMX-расширения с плавающей точкой (128 бит: xmm0…xmm7);

  • программный стек.

Рис. 4.2. Основные наборы регистров.

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

  • eax/ax/ah/al (Accumulator register) – аккумулятор. Применяется для хранения промежуточных данных. В некоторых командах использование этого регистра обязательно;

  • ebx/bx/bh/bl (Base register) – базовый регистр. Применяется для хранения базового адреса объекта;

  • ecx/cx/ch/cl (Count register) – регистр-счетчик. Применяется в командах, производящих повторяющиеся действия;

  • edx/dx/dh/dl (Data register) – регистр данных. Так же как и регистр eax/ax/ah/al он хранит промежуточные данные;

  • esi/si (Source Index register) – индекс источника;

  • edi/di (Destination Index register) – индекс приемника;

  • esp/sp (Stack Pointer register) – регистр указателя стека. Содержит указатель вершины стека в текущем сегменте стека;

  • ebp/bp (Base Pointer register) – регистр указателя базы кадра стека.

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

  1. Сегмент кода. Содержит команды программы, которые микропроцессор загружает в конвейер. Для доступа к сегменту служит регистр cs (code segment register) – сегментный регистр кода.

  2. Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр ds (data segment register) – сегментный регистр данных, который хранит адрес сегмента данных текущей программы.

  3. Сегмент стека. Область памяти, в которую микропроцессор записывает данные по принципу LIFO (last-in-first-out) – последним вошел, первым вышел. Для доступа к этому сегменту служит регистр ss (stack segment register) – сегментный регистр стека, содержащий адрес сегмента стека.

  4. Дополнительный сегмент данных. Если программе не достаточно одного сегмента данных, то она имеет возможность использовать еще три дополнительных. Адреса дополнительных сегментов данных должны содержаться в регистрах es, gs, fs.

Регистры состояния и управления содержат информацию о текущем состоянии микропроцессора и команды, которая в данный момент загружена в конвейер:

  • регистр флагов eflags/flags (flag register). Регистр используется побитно, т.е. каждый бит имеет определенное функциональное назначение, который называется флагом;

  • регистр указателя программы eip/ip (instruction pointer register). Этот регистр непосредственно не доступен программисту и содержит смещение следующей подлежащей выполнению команды относительно содержимого сегментного регистра cs в текущем сегменте команд.

Организация памяти

Физическая память компьютера организована как последовательность ячеек – байтов. Каждому байту соответствует свой уникальный адрес, называемый физическим. Диапазон физических адресов зависит от разрядности шины адреса микропроцессора. Для i486 и Pentium он находится в пределах от 0 до 232-1 (4Гб). Для микропроцессоров семейства P6 – от 0 до 236–1 (64Гб). Аппаратно микропроцессор поддерживает две модели использования оперативной памяти:

  • сегментированная модель;

  • страничная модель – надстройка над сегментированной моделью. Основное применение связано с организацией виртуальной памяти, что позволяет операционной системе использовать пространство памяти больше, чем объем физической оперативной памяти,

и может работать в следующих режимах:

  • режим реальных адресов;

  • защищенный режим;

  • режим виртуального i8086;

  • режим системного управления.

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

Различают три модели логической организации памяти:

  • сегментированная модель памяти реального режима (MS-DOS);

  • сегментированная модель памяти защищенного режима (Windows 9x);

  • сплошная модель памяти защищенного режима (Windows NT).

Модель памяти реального режима

В реальном режиме диапазон изменения адреса от 0 до 1 Мбайт. Эта величина определяется шиной адреса процессора i8086 – 20 линий. А максимальный размер сегмента 64 Кбайт, что связано с 16-разрядной архитектурой этого процессора.

Логический адрес формируется из сегмента и смещения в таком виде: [сегмент: смещение]. Для обращения к конкретному адресу необходимо определить адрес начала сегмента (16-битное значение), поместив его в один из сегментных регистров, а также смещение внутри этого регистра. Смещение определяется в регистрах общего назначения и также является 16-разрядным. Механизм получения физического адреса в реальном режиме представлен на рис. 4.3.

Рис. 4.3. Получение физического адреса в реальном режиме работы процессора.

Схема преобразования адреса реального режима не позволяет адресовать больше 1 Мбайта памяти (рис. 4.4).

Рис. 4.4. Адресация памяти в MS-DOS.

Несмотря на то, что программы используют логические, а не физические адреса, преобразователь адреса реального режима позволяет программам легко сконструировать логический адрес для любого нужного ей физического адреса (рис. 4.5). В этом смысле можно говорить о возможности физической адресации памяти в реальном режиме. Другими словами, для программы, работающей под управлением MS-DOS, доступна вся память, включая системные области BIOS, вектор прерываний и т.д., что сказывается на надежности всей операционной системы.

Рис. 4.5. Преобразование логического адреса в физический.

Недостатки организации памяти реального режима:

  • сегменты бесконтрольно могут размещаться с любого адреса, кратного 16 (т.к. содержимое сегментного регистра аппаратно смещается на 4 разряда). Как следствие, программа может обращаться к любым адресам, в том числе и реально не существующим;

  • сегменты имеют максимальный размер 64 Кбайт;

  • сегменты могут перекрываться друг другом.

7

Соседние файлы в папке lections-rtf