Лекция: Аппаратная часть таймеров

Таймеры(также называемые часами)очень важны для работы любой многозадач­ной системы по ряду причин. Среди многих других задач, они следят за временем суток и не позволяют одному процессу надолго занять центральный процессор.

В компьютерах широко применяются два типа таймеров. Обе схемы сильно отли­чаются от наручных и настольных часов. Наиболее простые компьютерные часы привязываются по частоте к линии питания переменного напряжения 110 или 220 В и вызывают прерывания при каждом цикле напряжения с частотой 50 или 60 Гц. Такие часы очень широко применялись ранее, но сейчас являются редкостью.

Другой тип часов состоит из трех компонентов: кварцевого генератора, счетчи­ка и регистра хранения, как показано на рисунке:

Если взять кусок кристалла квар­ца правильного размера и установить его в оправу под давлением, то можно заста­вить его колебаться и выдавать электрический сигнал с частотой в несколько сот мегагерц. Частота зависит от конкретного кристалла, но каждый кристалл выдер­живает эту частоту с достаточно высокой точностью. С помощью электроники эту частоту можно поднять до 1 ГГц или даже до еще более высокой частоты. По край­ней мере, одна такая схема обязательно присутствует в каждом компьютере, обес­печивая сигнал синхронизации для различных цепей компьютера. Этот сигнал подается на вход декрементного счетчика. Когда содержимое счетчика достигает нуля, он вызывает прерывание центрального процессора.

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

Преимущество программируемого таймера состоит в том, что частота преры­ваний от него может управляться программно. Если используется кристалл с ча­стотой колебаний 500 МГц, то счетчик получает импульс каждые 2 нс. При ис­пользовании 32-разрядного регистра можно запрограммировать возникновение прерываний через равные интервалы времени от 2 не до 8,6 с, называемые тиками. Микросхемы программируемых таймеров обычно содержат два или три незави­симо программируемых счетчика и помимо этого обладают целым рядом других функций (например, могут увеличивать, а не уменьшать значение счетчика, не инициировать прерываний и т. д.).

Чтобы показания таймера не терялись, пока питание компьютера выключено, часы большинства компьютеров питаются от аккумулятора. Показания часов считываются при загрузке операционной системы. Если таких часов у компьютера нет, операционная система может запросить дату и время при запуске. Кроме того, си­стема может узнать эти сведения по сети от удаленного хоста. В любом случае эти время и дата транслируются в количество интервалов таймера с какого-либо мо­мента, например полуночи 1 января 1970 года по всеобщему скоординированно­му времени (UTC, Universal Coordinated Time), как это делает, например, система UNIX. До 1928 года время UTC называлось средним временем по Гринвичу (GMT, Greenwich Mean Time). В системе Windows время отсчитывается от 1 января 1980 года. При каждом прерывании от таймера счетчик времени увеличивается на единицу. В операционной системе обычно присутствуют программы, позволяю­щие скорректировать показания системных часов.

еще рефераты
Еще работы по информатике