Сделай Сам Свою Работу на 5

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





В 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

Способы запуска программ

Традиционным способом запуска программ является загрузка их с какого-либо устройства хранения (диска) в оперативную память и исполнение в ОЗУ. До того как пользователь получает возможность такого запуска, требуется множество предварительных действий. По включении питания (и аппаратному сбросу) про­цессор начинает исполнять процедуру POST (начальный запуск и самотестиро­вание) из ROM BIOS, причем большая часть кода исполняется прямо в ПЗУ. POST инициализирует стандартное оборудование ПК (о котором «знает» ROM BIOS системной платы), а также обнаруживает модули расширения ROM BIOS и запускает их процедуры инициализации. Далее POST определяет загрузочное устройство (обычно диск), ищет на нем загрузочную запись (сектор), загружает этот сектор в фиксированную область ОЗУ и передает управление на его началь­ный адрес. С этого момента, как правило, начинается процесс загрузки операци­онной системы с того же носителя: сначала базовой системы, а затем и всех не­обходимых дополнительных компонентов в виде драйверов и автоматически загружаемых программ. Только после этого пользователь может запускать требу­емые программы с любого доступного устройства хранения (в том числе и через сеть). Программы могут загружаться и автоматически, без участия пользователя, по предварительно составленному и сохраненному сценарию (файлы config.sys, autoexec.bat и т. п. средства).

Для ряда специальных применений ПК приходится нарушать эти традиции. Для срав­нительно простых систем можно отказаться от использования операционных систем. Программу функционирования компьютера можно «зашить» в ПЗУ, оформив в виде модуля расширения BIOS, и эта программа получит управление от POST. Можно и не связываться с ПЗУ, а загружать программу с устройства хранения простым загрузчиком, первая ступень которого должна совпадать со стандартным начальным загрузчиком. Однако не стоит отказываться от операционной системы без веских причин, поскольку она обеспечивает не только удобное операционное окружение, но и средства разработки и отладки программ. Операционную систему и необхо­димые программы можно загружать не только с привычных дисков (гибких, же­стких, оптических), но и с компактных твердотельных носителей (см. п. 9.3). Эти носители могут подключаться к обычным интерфейсам устройств хранения.

Интересный вариант «твердотельного диска» — DiskOnChip — для микрокомпью­теров и микроконтроллеров, не имеющих стандартных интерфейсов устройств хранения, предлагает фирма M-Systems. Это микросхема, имеющая интерфейс 8/16-битной статической памяти, легко подключаемый к шине ISA (или локальной шине). Модель Millenium Plus объемом 32 Мбайт содержит массив флэш-памяти архитектуры NAND, модуль статической памяти SRAM (1 Кбайт), интерфейсные схемы, логику защиты записи и чтения и схемы обнаружения и исправления оши­бок. Микросхема отображается на 8-Кбайтную страницу пространства памяти компьютера в области CSOOO-EFFFFh. По сигналу аппаратного сброса начальный блок из флэш-памяти выгружается в SRAM; если обнаруживается ошибка, то


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

берется следующий (резервный) блок. Этот блок содержит процедуру инициалы* зации «диска», которая обнаруживается тестом POST как модуль расширения BIOS. Процедура загружает из флэш-массива в системное ОЗУ драйвер своего «электронного диска» (блочного устройства), которое становится первым или по­следним логическим жестким диском (по выбору при конфигурировании). Далее к этому «диску» можно обращаться обычным способом (через Int 13h),c него же может и загружаться ОС. Интерфейс допускает каскадирование — объединение в единый диск до 4 микросхем, увеличивая его объем до 128 Мбайт, при этом все микросхемы отображаются через общее окно памяти (используют общий сигнал выборки). Встроенное ПО обеспечивает полную эмуляцию диска с прозрачным исправлением ошибок и переназначением дефектных секторов. Микросхема под­держивает длительную скорость записи 750 Кбайт/с, считывания — 2,4 Мбайт/с. Пиковая скорость считывания/записи достигает 20 Мбайт/с. В устройстве имеет­ся уникальный идентификационный номер, область для однократного програм­мирования (ОТР), возможность защиты от записи отдельных зон и возможность ограничения доступа по паролю (нечитаемому).

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.