10/12/94 09:00am
taymer.lek
П.Нортон, Р.Уилтон "IBM PC и PS/2
руководство по
программированию" перевод
В.Н.Григорьева М "Радио и
связь" 1994
Роберт Журден "Справочник
программиста на компьютере фирмы
IBM"
Часы, таймер и генерация звука.
Компьютер имеет возможность отслеживать временные интервалы и генерировать звуковые сигналы в широком диапазоне частот. Эта возможность используется:
Для ведения учета работы с файлами (время и дата модификации);
Для учета затрат процессорного времени (в многопользовательских системах);
Для организации чередования процессов (в многопрограммных системах);
Для синхронизации программ с внешнеими событиями (системы реального времени);
Для синхронизации работы внутреннего оборудования вычислительной системы (регенерация памяти, тактовое питание процессора и контроллеров).
Основные частоты.
Для работы многих микросхем требуется наличие внешних импульсов синхронизации, частота которых определяет скорость работы устройства. Реальные микросхемы могут работать при условии, что питающая частота лежит в некотором диапазоне. Конструктор выбирает реальную частоту исходя из соображений быстродействия и надежности.
На машинах IBM PC и PC/XT тактовая частота принята равной 4772727 Гц (около 4.77 МГц). Эта частота выбрана исходя из соображений удобства:
Базовая частота 14.31818 МГц используется в телевизионных сетях;
Делением ее на три получают базовую частоту процессора;
Делением на четыре получают 3.57955 МГц - частоту импульсов цветового сигнала в цветном телевидении и адаптере CGA.
Делением на двенадцать получают частоту достаточную для работы системных таймеров PC - 1.19318 МГц.
Более поздние модели процессоров могут работать на большей частоте, но основные частоты остались неизменными для сохранения совместимости.
Программируемый тактовый генератор.
Служит для отработки временнных интервалов заданной длительности. В компьютерах PC/XT/AT интервальный таймер имеет три 16-ти разрядных канала:
КАНАЛ 0 используется в качестве системных часов. Счетчик делит исходную частоту на 2^16 и на выходе получает пиблизительно 18.2 Гц. Сигнал поступает на контроллер прерываний (IRQ0) и вызывает прерывание 08h. Программа обслуживания прерывания подсчитывает сигналы в ячейке данных BIOS по адресу 0040:006Ch (четыре байта); кроме этого она уменьшает содержимое байта, отслеживающего время работы двигателя дисковода (0040:0040h).
КАНАЛ 1 определяет моменты регенерации динамической памяти компьютера. Период регенерации, обычно, равен 2..8 mС. Соответствующий выходной сигнал поступает на контроллер прямого доступа к памяти. Прикладными программами канал не используется. Уменьшение периода регенерации замедляют работу ВС, увеличение делает работу компьютера невозможной.
КАНАЛ 2 используется для управления динамиком компьютера. Загружаемое в него число определяет коэффициент деления исходной частоты (см. выше).
Поскольку любое загруженное число является коэффицинентом деления, педусмотрена возможность выключения звука (счет начинается при установке в единицу разряда 0 порта 61h). Канал может быть использован для генерации "случайных" чисел. Помимо этого канал может использоваться для синхронизации внешних устройств (выходной сигнал передается на динамик при установке в единицу разряда 1 порта 61h).
Машины серии PS/2 моделей 50, 60 и 80 имеют дополнительный КАНАЛ 3, связанный с немаскируемым прерыванием. Его сигналы используются в качестве "сторожа" для контроля состояния ВС в целом.
Часы реального времени.
Современные машины имеют часы реального времени с отдельным питанием. При загрузке ОС показания этих часов переводятся в "тикания" таймера и записываются в область данных BIOS. Микросхема хранит и текущую дату.
Возможно использование режима "будильника" микросхемы.