Основы микропроцессорной техники | |
Раздел 7. Организация персонального компьютера | |
| «Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения | |
| Раздел 7 - Страницы: «1 | 2 | 3 | 4 | 5 | 6 | 7 |» | |
7.4. Системные устройстваКроме микропроцессора и системной памяти на системной (материнской) плате располагаются и другие важные модули, обеспечивающие работоспособность компьютера: контроллеры прерываний и прямого доступа, тактовый генератор, системный таймер, буферные микросхемы, контроллер шины и т.д. В первых компьютерах семейства все эти функции выполняли отдельные специализированные микросхемы сравнительно низкой степени интеграции. В современных компьютерах применяются сверхбольшие интегральные схемы, которые, однако, обеспечивают полную программную и аппаратную совместимость с предыдущими моделями. Эти микросхемы называются набором микросхем или chipset (чипсет). Преимущества такого подхода - chipset занимает меньше места на плате, меньшая потребляемая мощность, значительно большая надежность. Компьютеры, выполненные на системных платах с chipset известных фирм, имеют лучшую репутацию. В большинство наборов микросхем входит так называемый периферийный контроллер, включающий два контроллера прерываний, два контроллера прямого доступа к памяти, таймер, часы реального времени, а также CMOS-память. 7.4.1. Тактовый генераторСистемный тактовый генератор генерирует сигналы синхронизации для работы микропроцессора, всех контроллеров и системной шины. Для обеспечения высокой стабильности тактовых частот и их независимости от температуры применяются кварцевые резонаторы, т.е. кристаллы кварца, имеющих высокостабильных частоту собственных колебаний. Как правило, в состав системной платы входит несколько кварцевых резонаторов, каждый из которых обеспечивает свой тактовый сигнал. Тактовую частоту процессора можно выбирать путем установки перемычек на системной плате. Это позволяет пользователю модернизировать компьютер путем замены процессора на другой, рассчитан на более высокую тактовую частоту. Иногда удается заставить процессор работать на более высокой тактовой частоте, чем та, на которую он рассчитан, но здесь нужно дотримуватсь осторожности, так как повышение частоты ведет не только к увеличению потребляемой мощности и перегрева микросхемы, но и к ошибок и сбоев в работе, причем таких, которые проявляются только в отдельных режимах, нап ример, в многозадачном. В компьютерах на базе процессоров 486 и Pentium применяется деление опорной тактовой частоты для синхронизации системной шины и внутреннее умножение частоты в процессорах. Например, в процессоре 486DX2-66 используется умножения на два тактовой частоты 33,3 МГц, а в процессорах семейства Pentium применяется умножения на 2,5 (при опорной частоте 60 МГц частота процессора составляет 150 МГц) или на 3 (при опорной частоте 66, 6 МГц частота процессора 200 МГц). В общем случае в компьютере существуют следующие тактовые частоты:
7.4.2. Контроллер прерыванийКонтроллеры радиальных прерываний в первых компьютерах выполнялись на микросхемах и8259, каждая из которых имела 8 входов запроса прерываний. В IBM PC AT применялось две таких микросхемы, в результате чего количество входов запросов прерываний увеличилось до 15. Режимы работы контроллеров прерываний определяются процессором путем записи соответствующих управляющих кодов по адресам в пространстве устройств ввода / вывода. О циклы обмена по прерываниям уже говорилось в разделе 2.2.2. При поступлении запроса прерывания на один из входов IRQ и удовлетворении этого запроса контроллер прерываний производит выходной сигнал запроса прерывания, поступающий на процессор. В ответ на это процессор спрашивает контроллер о том, прерывание по какому адресу вектора необходимо обслужить. Всего прерываний может быть 256 (от 00 до FF). Номер прерывания, полученный от контроллера, процессор умножает на 4 и получает, таким образом, адрес памяти, где хранится адрес начала программы обработки прерываний (вектор прерывания). Присваивание каждому из каналов IRQ своего номера процессор осуществляет на этапе инициализации контроллера. Контроллер прерываний может выполнять следующий набор операций:
Для маскировки прерываний используется внутренний регистр контроллера, программно доступен процессору как на запись, так и для чтения. Замаскированным может быть каждый запрос (каждой из линий IRQ), путем установки соответствующего бита маскировки в управляющем байте, который записывается в контроллер. Схема приоритетов прерываний может быть задана процессором программным путем. В базовом варианте все приоритеты фиксированные (т.е. IRQ0 имеет более высокий приоритет, а IRQ7 - ниже). Но в принципе более высокий уровень приоритета задается для каждого из входов запросов, можно также установить циклическое переключение приоритетов (последний обслужен запрос получает низший приоритет), обеспечивая тем самым всем запросам уровне приоритеты. Если во время обработки прерывания с меньшим уровнем приоритета приходит более приоритетный запрос, то процессор переходит на программу обработки более приоритетного запроса, а после ее выполнения возвращается в программу обработки менее приоритетного запроса. Отметим, что немаскковане прерывания NMI имеет приоритет выше любого другого аппаратного прерывания. Завершив выполнение программы обработки прерывания, процессору необходимо с помощью специальной команды известить об этом контроллеру прерываний, чтобы позволить ему дальнейшую работу, в частности, снова обрабатывать тот же самый запрос. Контролер 8259 предусматривает возможность выбора способа распознавания запроса прерывания - за фронтом сигнала IRQ и по уровню этого сигнала. В архитектуре компьютера типа PC используется запрос по фронтом. При каскадирования контроллеров основному контроллеру нужно указать, к какому из его входов подключен подчиненный контроллер, а подчиненному контроллеру необходимо указать, к какому входу основного контроллера подключен его выходной сигнал запроса. Все операции первоначальной настройки контроллеров прерываний выполняет BIOS, и пользователю нужно использовать программирования этих контроллеров только при необходимости смены режимов обслуживания или прерываний при написании собственной программы обработки аппаратных прерываний. 7.4.3. Контроллер прямого доступа к памятиКонтроллер прямого доступа к памяти имеет более сложную структуру по сравнению с контроллером прерываний, что связано с его более сложными функциями. На время ПДП контроллер ПДП становится Задатчики (активным устройством) системной шины, выставляя все основные сигналы шины самостоятельно. Однако все режимы работы контроллера ПДП, все его параметры устанавливаются процессором на этапе инициализации контроллера. В частности, процессор определяет тип решаемой задачи, задает начальную адрес переданного или принятого массива данных, а также размер этого массива. В персональном компьютере применяется два четырехканальная контроллеры ПДП типа и8237, обеспечивающих 7 каналов ПДП (один канал задействован под каскадирования контроллеров по тому же принципу, что и контроллера прерываний). Помимо собственно контроллеров ПДП в подсистему ПДП входят также программно доступны регистр старшего байта адреса и регистры страниц ПДП. О циклы обмена в режиме ПДП уже говорилось в разделе 2.2.3. Получив сигнал запроса ПДП по одной из линий DRQ, контроллер формирует запрос процессору на захват шины и, получив разрешение от процессора, сообщает о предоставлении ПДП устройства, пригласил прямой доступ, соответствующей линией DACK. После этого происходит цикл ПДП, во время которого данные с устройства ввода / вывода пересылаютс я в память или наоборот. При этом сам контроллер ПДП формирует только 16 младших разрядов адреса памяти, а восемь старших разрядов содержащиеся в регистре страниц. Свой собственный регистр страниц соответствует каждому из каналов ПДП. Передача данных в случае ПДП возможна в одном из следующих режимов:
Как и в случае контроллера прерываний, возможны две схемы приоритетов каналов ПДП, избираемых программно, - фиксированный и циклический. Исходная схема - фиксированные приоритеты, причем нулевой канал имеет максимальный приоритет, а седьмой - минимальный. Во время обслуживания любого запроса ПДП другие запросы не могут вмешаться, но после завершения обслуживания данного запроса будет обслуживаться запрос с наибольшим приоритетом. Как и в случае контроллера прерываний, возможно программное маскировки каждого канала ПДП. Перед началом работы каждому из каналов контроллера процессор должен указать режим, в котором он будет работать, базовую адрес памяти, с которой начнется обмен, количество переданных байте или слов, направление записи в память или чтения из памяти (от старших адресов в молодшоих или наоборот). Возможен режим автоинициализации, при котором после завершения пересылки всего массива данных контроллер автоматически восстанавливает все параметры, и для этого не требуется вмешательство процессора. Предусмотрена также возможность программного запроса ПДП, которая обслуживается так же, как и аппаратный запрос. 7.4.4. Системный таймер и часы реального времениВ качестве системного таймера компьютера используется микросхема трехканальной 16-разрядного таймера i8254 или ее аналог. Таймер предназначен для получения программно управляемых временных задержек и генерации сигналов заданной частоты. Таймер позволяет повысить эффективность программирования процессов управления и синхронизации внешних устройств, особенно в реальном времени. Таймер содержит три независимых канала (0, 1 и 2), каждый из которых может быть, в принципе, запрограммированный на работу в одном из шести режимов отсчета:
На каждый канал могут подаваться входные синхросигнала. С каждого канала можно получать сигнал с частотой, которая равна входной частоте, что разделена на произвольное 16-разрядное число. В компьютере на все входы поступают синхросигнала с частотой 1,19 МГц. Все каналы таймера в компьютере имеют специальное назначение, поэтому особых возможностей по выбору режима работы или переназначение функций у пользователя нет.
Таким образом, пользователь компьютера может задействовать только канал 2. Чаще всего его применяют для генерации звуков заданной частоты и длительности. Кроме того, выходной сигнал данного канала программно доступен для чтения с одной из разрядов параллельного порта. Это позволяет, запрограммировав таймер соответствующим образом, выдерживать нужны временные интервалы. Для этого следует программно разрешить генерацию (при отключенном динамике) и программно опрашивать выходной сигнал таймера и принимать решения относительно изменения его уровня. Подсистема часов реального времени в первых компьютерах выполнялась на микросхеме контроллера MC146818 фирмы Motorola. Этот контроллер содержит 64 байта СMOS-памяти, из которых первые 14 байт используются для часов реального времени, а остальные 50 байт хранят информацию о конфигурации системы. Для входного тактового сигнала контроллера применяется специальный "часовой" кварцевый генератор с частотой 32 768 кГц, что позволяет с помощью деления частоты получить импульсы с частотой 1 Гц. Контролер считает секунды, минуты, часы, дни недели, месяцы и годы. Причем работает он даже при отключении питания компьютера, питаясь от батареи или аккумулятора. Это позволяет сохранять информацию о текущем время постоянно. Кроме счетчика текущего времени, контроллер имеет в своем составе будильник. Будильник может формировать прерывание (IRQ8) с программно заданной периодичностью. Состояния всех счетчиков (секунд, минут, часов и т.д.) программно доступны как для чтения, так и для записи, что позволяет устанавливать нужное время и следить за ним. | |
| «Структура курса Раздел 7 - Страницы:« 1 | 2 | 3 | 4 | 5 | 6 | 7 | » | |