В РС ХТ аппаратная конфигурация РС (объем памяти, количество и типы дисководов, тип видеоподсистемы и т. п.) задавались DIP-переключателями, состояние которых опрашивалось системой BIOS перед выполнением POST-программы. При изменении аппаратной конфигурации (реконфигурировании АПС) требовалось изменять состояние этих переключателей на системной плате вручную, что не просто, т. к. их назначение и расположение на системной плате специфично для каждого ее типа. В РС/АТ, для хранения подобной информации, состав которой, кстати, заметно расширился, ввели специальную микросхему памяти небольшого объема, питание которой при выключенном компьютере осуществляется от специальной батарейки или аккумулятора. В ту же микросхему поместили и часы-календарь (чтобы часы не останавливались, когда компьютер выключен). А чтобы снизить потребление мощности от батарейки, выбрали структуру КМОП (CMOS - Complimentary Metal-Oxide-Semiconductor - комплиментарный полупроводник, выполненный по металло-оксидной технологии на полевых транзисторах). Эта память и часы - CMOS Memory and Real Time Clock (RTC) стали стандартным элементом архитектуры РС/АТ. Содержимое этой памяти, время и дату модифицировали сначала с помощью внешней загружаемой утилиты SetUp, а позже эту утилиту встроили в BIOS. Эта микросхема CMOS RTC имеет встроенную систему контроля питания, отслеживающую разряд батареи ниже допустимого уровня. При разряженной батарее BIOS при загрузке ОС выводит на монитор сообщение типа:
CMOS battery state low
CMOS display type mismatch
RUN SETUP UTILITY
Press <F1> to RESUME
(низкое напряжение батареи питания CMОS-памяти. Содержимое CMOS-памяти неправильно. Запустите утилиту SETUP. Нажмите F1 для ее вызова).
Отсутствие ошибок в CMOS-памяти, проверяет BIOS при загрузке ОС, с помощью контрольной суммы, формирующейся при модификации содержимого CMOS-памяти и хранящейся в ней же.
Доступ к ячейкам CMOS RTC осуществляется CPU через порты ввода-вывода 70h (адрес ячейки) и 71h (данные).
Назначение ячеек SMOS RTC приведено в таблице 1.5.
Таблица 1.5. Стандартное назначение ячеек CMOS RTC.
Адрес |
Назначение |
00 - 09h |
Ячейки RTC в BCD-формате: 00 - секунды 01 - секунды будильника |
0Ah |
RTC Status Register А (регистр состояния)Бит 7 - обновление времени (0- готов к чтению) Биты 6:4 - делитель частоты )для 32,768 КГц = 010 Биты 3:0 = 0110 - выходная частота меандра 1024 Гц |
0Bh |
RTC Status Register B ( регистр состояния)бит 7 - остановка часов (0= нормальный ход) |
0Ch |
RTC Status Register C - флаги прерываний:бит 7 - IRQF - общий запрос прерываний бит 6 - PF - периодические прерывания бит 5 - AF - прерывание от будильника бит 4 - UF - прерывание по смене времени биты 3 - 0 - зарезервированы |
0Dh |
RTC Status Register D Бит 7 - питание (1 - норма, 0 - разряд) Биты 6:0 - зарезервированы |
0Eh |
POST Diagnostic Status Byte Бит 7 - power Lost (терялось питание CMOS) Бит 6 - Checksum Bad Бит 5 - Bad config Бит 4 - RAM Size Error - определенный тестом размер ОЗУ не соответствует записи в CMOS Бит 3 - HDD Error Бит 2 - Time Valid- формальная ошибка часов-календаря (напр. 30 февраля, 25 часов) Биты 1:0 - зарезервированы |
0F |
Shutdown Code - используется POST для определения предыстории останова:00 - аппаратный или программный сброс 01 - размер памяти определен 02 - тест памяти прошел 03 - ошибка в тесте памяти 04 - POST завершен, идет загрузка системы05 - JMP FAR [0%0467h ] с инициализацией контроллера прерываний06 - тест защищенного режима прошел 07 - ошибка в тесте защищенного режима 08 - ошибка определения размера памяти 09 - перемещен блок Extended Memory (INT 15h) 0A - JMP FAR [0^0647h] без инициализации контроллера прерываний 0В - используется 80386 |
10h |
Типы НГМД: Биты 7:4 - дисковод А Биты 3:0 - дисковод В 0= нет, 1 = 360 Кбайт, 2 = 1,2 Мбайт, 3 = 720 Кбайт, 4 = 1,44Мбайт |
11h |
Зарезервирован |
12h |
Типы НЖМД: Биты 7:4 - привод 0 Биты 3:0 - привод 1 0 = нет, 1 - Eh = типы 1 - 14, Fh = тип в байте 19h (для второго привода - в 1Ah) |
13h |
Зарезервирован |
14h |
Установленное оборудование: Биты 7:6 - количество НГМД (00 = 1, 01 = 2) Биты 5:4 - тип первичного видеоадаптера (00 = RGA или VGA, 01 = CGA 40 столбцов, 10 = CGA 80 столбцов, 11 = MDA 80 столбцов)Биты 3:2 - зарезервированы Бит 1 = 1 - математический сопроцессор подключен Бит 0 = 1 - есть НГМД |
15 - 16h |
Размер базовой памяти, Кбайт (Low/High) 0280h = 640Кбайт |
17 - 18h |
Размер расширенной памяти, Кбайт (Low/High) |
19, 1Ah |
Расширенный тип диска C, D |
1B - 2Dh |
Зарезервированы |
2E - 2Fh |
Контрольная сумма CMOS c 10h по 20h (High/Low) |
30n - 31h |
Реальный размер расширенной памяти, Кбайт(Low/High) |
32 - 33h |
Используются в PS/2 |
33h |
Флаги POST: Бит 7 - наличие 128 Кбайт ОЗУ под границей 1 Мбайт (1 = есть, теневая память доступна) Бит 6 - флаг SetUp (1 = первая загрузка после выполнения флаг SetUp, обычно = 0) |
34 - 3Fh |
Зарезервированы (можно писать свою информацию для привязки ПО к машине) |
38 - 3Fh |
В PS/2 - пароль, доступ по несуществующим адресам 78 -7Fh |
Cвободные ячейки CMOS RTC 34-3Fh иногда используют для привязки программного обеспечения к конкретному компьютеру, которая выполняется в процессе инсталляции ПО. В этом случае, если не сохранять образ CMOS-памяти на диске, то, при разрушении информации в CMOS, право на использование данного ПО в данном компьютере потеряется.
Контрольные вопросы.
1. Как задавались параметры аппаратной конфигурации в РС/ХТ?
2. Где хранятся параметры конфигурации в РС\АТ?
3. Почему для CMOS RTC используются КМОП-структуры?
4. Как осуществляется доступ к ячейкам CMOS-памяти?
5. Как модифицируется содержимое CMOS-памяти?
6. Каким способом информация CMOS-памяти защищается от ошибок?
Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.
Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.
Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование "моря" двух компенсирующих друг друга энергий в вакууме - положительной и отрицательной, а также "моря" компенсирующих друг друга частиц - виртуальных (то есть кажущихся) электронов и позитронов в вакууме.
Однако такая постановка является внутренне противоречивой (виртуальные частицы ненаблюдаемы и их по произволу можно считать в одном случае отсутствующими, а в другом - присутствующими) и противоречащей релятивизму (то есть отрицанию эфира, так как при наличии таких частиц в вакууме релятивизм уже просто невозможен). Подробнее читайте в FAQ по эфирной физике.