Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Состав программного обеспечения ПЗУ IBM PC AT



 

ПЗУ принадлежит области памяти. После аппаратного сброса МП выполняет первую команду, которая находится по адресу FFFF0, т.к. в CS загружается код FFFFh; в счётчик команд IP - 0000h.

В реальном режиме работы МП доступна память емкостью 1 Мбайт, т.к. шина адреса 20 бит, следовательно ПЗУ должно находиться в этом диапазоне.

Для ПЗУ выделяется пространство памяти емкостью 64 Кбайта с диапазоном адресов F0000h-FFFFFh.

ИМС системной ПЗУ имеет типовой объём равный 128 или 256 КБайт, который проецируется в окно 64 КБ страницами.

 


Состав ПЗУ:

 

1. Программа инициализации и тестирования аппаратных средств POST (Power On Self Test). Выполняет тестирование МП, памяти и инициализацию программируемых системных устройств, конфигурирование всех программно-управляемых аппаратных средств системной платы

 

Последовательность операций:

1. Тестирование регистров МП

2. Проверка контрольной суммы ПЗУ IBM

3. Проверка и инициализация таймера и системного порта, после этого доступна звуковая сигнализация.

4. Проверка и инициализация контроллера прямого доступа к памяти (DMA)

5. Проверка регенерации памяти

6. Тестирование 64 байта нижней памяти. Загрузка векторов прерываний.

7. Инициализация видеоадаптера.

8. Тестирование полного объёма памяти

9. Тестирование CMOS – памяти и часов

10. Инициализация COM и LPT портов

11. Инициализация и тестирование контроллеров НГМД (FDD)

12. Инициализация и тестирование контроллера НЖМД (HDD)

13. Сканирование области дополнительной ROM BIOS

14. Вызыв программы Bootstrap (Int 19h).

 

2. Bootstrap (программа начальной загрузки).

Программа обращается к диску и копирует в область ОП с адресами 0000: 7С00h- 0000: 7DFFh содержимое нулевого сектора диска. Если в конце этой области по адресу 7DFFh обнаружена сигнатура AA55h это означает, что диск системный, и управление передаётся на начало области по адресу 7С00h, и начинает работать программа, скопированная из нулевого сектора, которая обеспечивает загрузку операционной системы. Если диск не системный, то вызываются программное прерывания Int 18h и передается управление программе POST, которая снова передаёт управление программе начальной загрузки, изменив диск.

3. BIOS (Base Input Output System) (базовая система ввода – вывода).

Это драйверы стандартных устройств компьютера (клавиатуры, видеоадаптера, НГМД, НЖМД). BIOS предназначена для изоляции операционной системы и прикладных программ от специфических особенностей конкретной аппаратуры.

4. BIOS SETUP

Программа настройки и конфигурирования аппаратных средств. Для запуска этой программы надо нажать DEL при появлении соответствующего сообщения на экране

5. Сервисы BIOS

Это обработчики программных прерываний.

Например, INT 10h –видеосервис

INT 13h – дисковый сервис

INT 11h – чтение оборудования.

 

Система прерываний

 

Прерывание – это переход на специальную программу (обработчик прерывания) с последующим возвратом в прерванную программу.

1.Программные прерывания

Вызываются командой INT номер прерывания.

Например,

MOV AH, 4Ch

INT 21h

Завершить работу программы и передать управление операционной системе.

2. Исключения или ловушки

Этот вид прерывания формируется блоками МП (например, деление на нуль).

Фирма Intel для этого вида прерываний выделяет 32 вектора прерывания.

3. Аппаратные прерывания

Формируются аппаратурой компьютера.

Логический адрес обработчика прерывания хранится в векторе прерывания. Разрядность вектора прерывания 4 байта.

 

Младшее слово хранит относительный адрес, старшее слово - селектор.

Векторы прерывания размещаются в нулевом сегменте ОП, в ячейках с адресами 00000h-003FFh.Векторы прерывания в памяти размещает программа POST. Всего 256 векторов.

 

Аппаратные прерывания МП

Бывают: немаскируемые (запросы поступает на входы NMI и SMI МП) и маскируемые (запрос поступает на вход INTR МП)

Маскируемые аппаратные прерывания

Микропроцессору можно запретить реагировать на запрос, поступающий на вход INTR, обнулив флаг прерывания IF командой CLI.

Разрешить МП реагировать на прерывания можно, установив в «1» флаг IF командой STI.

 

Программируемый контроллер прерывания (ПКП)

В компьютере IBM PC AT ПКП состоит из двух ПКП.

- ведущий ПКП. К нему подключатся линии прерываний IRQ0- IRQ7.Из пространства ввода-вывода для него выделены адреса 20h- 21h

- ведомый ПКП. Подключается по второму входу ведущего ПКП. К ведомому ПКП подключаются линии IRQ8- IRQ15. Из пространства ввода-вывода за ним закрепляется адреса А0h; А1h.

Программная модель ПКП соответствует ИМС i8259.

Каждый ПКП содержит три восьми разрядных регистра:

1. IRR фиксирует запросы, поступившие на входы 7-0 ПКП

2. IMR – регистр масок. Хранит маскируемые (запрещённые) входы ПКП. Установка бита в «1» запрещает ПКП реагировать на соответствующий вход (в IRR запрос фиксируется)

3. ISR- регистр обслуживаемых прерываний.

Хранит обслуживаемые прерывания. Установка в «1» бита в регистре ISR предотвращает прерывание от этого входа и всех других входов с меньшими преритетами. После установки бита в регистре ISR соответствующий бит в регистре IRR обнуляется.

Функции ПКП

1. Принимает запросы в компьютере по линиями IRQ15 - IRQ0.

2. Присваивает фиксированные или циклически изменяемые приоритеты входам ПКП.

3. Формирует и передаёт по шине данных микропроцессору код команды CALL и адрес вектора прерывания (CALL – переход на подпрограмму).

Реакция системы прерывания на запрос.

Рассмотрим на примере прерывания от клавиатуры.

Поступил запрос от клавиатуры на первый вход ведущего ПКП (смотри рисунок). Этот запрос фиксируется в регистре ISR установкой в «1» первого разряда. Проверяется содержимое первого разряда регистра IMR. Если IMR [1] равен 0, то ПКП может реагировать на запрос и этот запрос поступает на шифратор приоритетов. Если запросов с более высоким приоритетом нет, то ПКП формирует сигнал на выходе INT, который поступает на вход INTR МП. МП проверяет флаг прерывания IF. Если IF равен 1, т.е. прерывания разрешены. МП завершает выполнение текущей команды и переходит на выполнения цикла магистрали – «подтверждение прерывания», формируя на выходах М/IO#- 0, D/C# - 0, W/R#- 0.

Системный контроллер по этому коду формирует сигнал, поступающий на вход INTА ПКП.

ПКП обнуляет первый разряд в регистре IRR и устанавливает в «1» первый разряд в регистре ISR. ПКП по шине данных передает МП код команды CALL и адрес вектора прерывания. Адрес вектора формирует ПКП, прибавляя к базовому адресу вектора 08h, который загружается в ПКП приказом инициализации ICW2, номер входа ПКП. Адрес вектора - 08h + 1 = 09h.

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

0000h: 0024h - логический адрес вектора прерывания.

 

 

МП считывает содержимое вектора прерывания. Младшее слово (относительный адрес) загружает в счётчик команд IP. Старшее слово (селектор) загружает в сегментный регистр CS. Диспетчер памяти формирует физический адрес первой команды обработчика прерывания, процессор считывает первую команд, таким образом осуществляется переход на выполнение обработчика.



Немаскируемые аппаратные прерывания

 

Обрабатываются МП не зависимо от состояния флага IF. К ним относятся прерывания, поступающие на входе INT МП. А для МП, поддерживающих режим системного управления ещё по линии SMI.

Немаскируемые прерывания NMI

Сигналы на входе NMI формируются схемами контроля по паритету памяти, либо схемами контроля шин расширения и поступают по линиям IOCHK шины ISA, SERR шины PCI.

Запретить запросам, поступающим от схем контроля, поступать на вход NMI можно, обнулив второй и третий разряды системного порта 61h. Обработчик прерывания NMI располагается по вектору с адресом 0h.

Обработчик прерывания определяет источник прерывания, анализируя разряды 7 и 6 порта 61h. Вложенности прерываний нет, т.е. если во время обработки немаскируемого прерывания снова появится сигнал NMI повторный вызов обработчика возможен только после выполнения команды IRET (выход из подпрограммы).

Немаскируемые прерывания SMI

Прерывания на входе SMI возникают от схем чипсетов, участвующих в управлении энергопотреблением. При возникновении прерывания МП переходит в режим SMM. В памяти SM RAM, а не в стеке сохраняется слово состояние микропроцессора (адрес следующей команды и регистр флагов). Затем начинается исполнение обработчика прерывания, расположенного по определенному адресу в памяти SM RAM. В режиме SMM прерывания запрещены, выход из режима SMM происходит при выполнении команды RSM, которая завершает обработчик прерывания.

 

Системный порт РС/АТ

 

Восьмибитный системный порт с адресом 61h пришел в архитектуру АТ на смену порту 8255, поскольку обслуживание клавиатуры перешло на микроконтроллер 8042, а переключатели конфигурации заменили на CMOS – память, функции системного порта РС/АТ свелись к следующим

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

- разрешение и идентификация немаскируемых аппаратных прерываний NMI.

 

Назначение бит системного порта АТ (061h):

-7R – РСК – ошибка четности ОЗУ или сигнал – SERR# на шине РСI;

- 6R – IOCHK- ошибка на шине;

- 5R – Т20 - выход второго канала системного таймера;

- 4R – RFD – регенерация памяти;

-3R/W –EIC – разрешение контроля канала;

-2R/ W – ERP – разрешение контроля ОЗУ и сигнала SERR# шины РСI;

-1 R/ W SPK – управление звуком;

-0 R/ W T2G – вход второго канала системного таймера;

(R – бит доступен для чтения; W – бит доступен для записи)

 

Системный таймер

В IBM PC с микропроцессорами до i286 использовались микросхемы 8253 и 8254, представляющие собой трехканальные программируемые счетчики – таймеры.

На системных платах с более современными микропроцессорами функции системного таймера берет на себя chipset (сверхбольшая интегральная микросхема).

Системный таймер содержит три канала. Каждый канал содержит регистр - защелку и счетчик, разрядность которых 16 бит.

Внутренние счетчики таймера имеют разрядность 16 бит, но обмен с ними возможен только 8 –битными данными.

При этом можно задавать значение только младшего байта счетчика (LSB), только старшего байта (MSB) или обоих (LSB/MSB), причем сначала передается младший, а потом старший байт.

Назначение каналов таймера

- генерация прерываний от системных часов;

- генерация запросов на регенерацию памяти;

- генерация звуковых сигналов.

Входная частота всех каналов 1, 19318 МГц. Программирование таймера осуществляется записью байт в управляющий регистр по отдельности для каждого канала. Адрес управляющего регистра 043h.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-28; Просмотров: 647; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.045 с.)
Главная | Случайная страница | Обратная связь