Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Аппаратные средства измерения времени






В IBM PC/AT имеются аппаратные средства для измерения времени. Трехканалъ-ный счетчик-таймер, программно совместимый с 18254 (в XT — 8253), выполняет следующие функции:

♦ канал 0: — генерация аппаратных прерываний (IRQO) каждые 54, 936 мс (часто­та 18, 206 Гц), вызывающих инкремент системного таймера (счетчика в ячейке 40: 006Е BIOS Data Area);

♦ канал 1 — генерация запросов на регенерацию памяти;

♦ канал 2 — генерация звуковых сигналов или измерение времени.

Внутренние счетчики микросхемы имеют разрядность 16 бит, но общение с ними возможно только 8-битными операциями. При этом можно задавать значение толь­ко младшего байта счетчика (LSB), только старшего (MSB) или обоих (LSB/MSB), причем сначала передается младший, а потом старший байт. Программирование микросхемы осуществляется записью байт в управляющий регистр по отдельно­сти для каждого канала. Назначение регистров счетчиков-таймеров приведено в табл. 12.5. Входная частота для всех каналов 1, 19318 МГц. Штатно все каналы работают в режиме генерации импульсов. Счет для каналов 0 и 1 разрешен посто­янно. В канале 2 используется управляющий вход GATE, разрешающий счет, ко­торый управляется битом О (T2G, R/W) системного порта AT (061h). Выходной сигнал канала 2 может быть программно считан (Т20, бит 5 того же порта). При использовании канала 2 для измерения времени необходимо отключить форми­рование звука (обнулив бит SPK, R/W, бит 1 порта 061h).

Таблица 12,.5. Регистры счетчиков-таймеров Порт, R/W Назначение

040 RW Счетчик 0 — системные часы. Режим 011, LSB/MSB, Binary, константа счетчика

равна 0 (соответствует коэффициенту деления 65 536)

041 RW Счетчик 1 — регенерация памяти. Режим 010, LSB, Binary, константа счетчика

равна 12h (18)

042 RW Счетчик 2 — генератор звука, измерение времени. Вход GATE от бита 0 порта

В 8255 (061). Режим 011, LSB/MSB, Binary, значение счетчика определяет высоту тона


12.6. Аппаратные средства измерения времени____________________________ 477

Порт, R/W Назначение_____________________________________________________________

043 W Управляющий регистр. Биты 7, 6 — выбор счетчика 0, 1, 2. Биты 5, 4 — режим

, обращения: 00 — защелка текущего значения; 01 — LSB — только младший байт; 10 — MSB — только старший байт; 11 — LSB/MSB — сначала младший, затем старший байты. Биты 3-1 — режим счетчика: 000 — прерывание по счетчику; 001 — ждущий мультивибратор (одновибратор, у 8254 несколько отличается от 8253); х10 — генератор коротких импульсов заданной частоты; х11 — генератор меандра; 100 — счетчик событий с разрешением; 101 —счетчиксобытий с перезапуском. Бит 0 —0=Bin (двоичный счет), 1 =BCD — (двоично-десятичный счет)

Часы-колендаръ CMOS RTC являются частью комбинированной микросхемы МС146818 с батарейным питанием, используемой в IBM PC/AT для хранения ряда аппаратных настроек. Часы синхронизируются от собственного генератора (32, 768 кГц), они содержат:

♦ часы-календарь (год, месяц, число, час, минута, секунда);

♦ будильник, подающий сигнал в назначенный час, минуту и секунду;

♦ генератор меандра, позволяющий формировать запросы прерываний с задан­
ной частотой (как правило, 1024 Гц).

CMOS RTC является источником аппаратных прерываний (IRQ8). Прерывания могут возникать от будильника, генератора меандра и после смены времени в ча­сах. Отдельные источники прерывания идентифицируются чтением ячейки ОСЬ и разрешаются записью в ячейку OBh.

Доступ к ячейкам CMOS RTC осуществляется через порты ввода-вывода 070h (индекс ячейки) и 071h (данные). Заметим, что бит 7 порта 70h используется и для блокировки NMI (см. п. 12.4), так что диапазон адресов памяти CMOS ограничен пределами 0-7Fh. Поскольку эта память имеет быстродействие порядка единиц микросекунд, между командами записи адреса и чтения-записи данных необхо­дима программная задержка. Во время изменения состояния часов данные, счи­тываемые из ячеек 0-9, могут оказаться некорректными. Признаком этой ситуа­ции является единичное значение бита 7 ячейки OAh. Для определения момента окончания смены состояния часов можно пользоваться и разрешением соответ­ствующего источника прерывания. Назначение ячеек CMOS RTC, относящихся к таймерной части, приведено в табл. 12.6 (полное определение ячеек см. в [1]).

Таблица 12.6. Назначение ячеек таймерной части CMOS RTC Индекс Назначение

00h-09h, 32h Ячейки РТС в BCD-формате: 00 — секунды; 01 — секунды будильника;

(37 в PS/2) 02 — минуты; 03 — минуты будильника; 04 — часы; 05 — часы будильника; 06 — день недели; 07 — день месяца; 08 — месяц; 09 — год (2 младшие цифры); 32h — век-1 (2 старшие цифры года); 37h — век-1 (2 старшие цифры года) в PS/2

продолжение А


478______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Таблица 12.6 (продолжение) Индекс Назначение

OAh RTC Status Register А (регистр статуса А): бит 7 — обновление времени

(О — готов к чтению); биты [6: 4] — делитель частоты (для кварца на 32, 768 кГц — 010); биты [3: 0] — 0110 — выходная частота меандра 1024 Гц

OBh PTC Status Register В (регистр статуса В): бит 7 — остановка часов

(О — нормальный ход); бит 6 — разрешение периодических прерываний (О — запрещено); бит 5 — разрешение прерывания от будильника (О — запрещено); бит 4 — разрешение прерывания по окончании смены времени (0 — запрещено); бит 3 (см. также регистр OAh) — разрешение выходного меандра (0 — запрещено); бит 2 — формат BCD/BIN (0 — BCD); бит 1 — 12/24-часовой режим (1 — 24-часовой); бит 0 — зимнее/летнее время (О — переключение запрещено)

OCh RTC Status Register С (регистр статуса С): чтение флагов идентификаторов

прерывания: бит 7 — IRQF (общий запрос прерывания); бит 6 — PF (периодические прерывания); бит 5 — AF (прерывание от будильника); бит 4 — UF (прерывание по окончании смены времени); биты [3: 0] — зарезервированы

ODh RTC Status Register D (регистр статуса D): бит 7 — питание (1 — норма,

0 — разрядбатареи); биты [6: 0] —зарезервированы

Аппаратные таймеры имеют поддержку функциями BIOS (подробнее см. [1, 8, 9]). Сервисы BIOS Int I Ah позволяют считывать и модифицировать значения систем­ного таймера (ячейки 40: 006Eh в BIOS Data Area), а также даты, времени и бу­дильника CMOS RTC.

Функции BIOS Int 15 h позволяют с помощью CMOS RTC вводить задержку или запускать таймер установки флага (через заданное время установить бит 7 ука­занной ячейки памяти). Время задается в микросекундах, но минимальная вы­держка зависит от производительности ПК (достижимы единицы миллисекунд), максимальная выдержка — около 70 часов.

Начиная с процессоров Pentium, появилась возможность измерения времени с точ­ностью до такта ядра процессора. Для этого процессоры имеют внутренний 64-битный счетчик TSC (Time Stamp Counter), обнуляющийся по аппаратному сбросу (сигналом RESET*). Разрядность позволяет считать без переполнения в течение не­скольких столетий. Для доступа к счетчику имеется специальная инструкция RDTSC, правда, установкой флага TSD в управляющем регистре CR4 (процессора) ОС мо­жет сделать ее привилегированной (доступной только на нулевом уровне приви­легий). В этом случае приложение, исполняемое на уровне 3, может аварийно за­вершаться по отказу исполнения инструкции. ОС может и позволить обращение к этому регистру, но «подсовывая» программе угодное ей значение времени. За­метим, что из-за внутреннего умножения частоты в процессоре результат чтения счетчика может отставать от реального времени на число, достигающее коэффи­циента умножения частоты. Правда, такая точность никому и не нужна (она поте­ряется в измеряющих программах).


12.7. Способы запуска программ_____________________________________ 479






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.