Смекни!
smekni.com

Техническая диагностика средств вычислительной техники (стр. 12 из 50)

- прежде всего, нужно хорошо понимать зачем, что и как следует делать с Flash-памятью;

- помнить, что EPROM имеет, хотя и достаточно большое (до 50), но все-таки ограниченное допустимое количество перезаписей, после чего характеристики хранения информации этой EPROM не гарантируются;

- наконец, при штатной эксплуатации, имеющаяся на системной плате в районе Flash-памяти перемычка перепрограммирования должна быть установлена в положение запрет программирования. Иначе, при некоторых видах сбоев электроники или программ, информация в ROM BIOS, выполненной на
флешь-памяти, может быть разрушена. И самое худшее, что может случиться, – это повреждение информации в подобной ROM BIOS, вследствие деструктивных действий некоторых компьютерных вирусов. При этом нормальное функционирование компьютера становится невозможным.

Таблица функций УВВ сохраняется в ОЗУ, в 256-байтной области (BIOS DATA AREA), сразу за векторами прерываний, впрочем, программы-менеджеры памяти могут ее перемещать в область верхней памяти (UpperMemory).

Доступ к ROM BIOS со стороны CPU по адресам, обеспечивается через шину расширения адреса ХА [23/00], а по данным – через буфер данных 82А305 (рисунок 1.3).

Теневые области оперативной памяти.

В компьютерах с микропроцессорами 386 и выше, обмен данными с памятью осуществляется по 32- или 64-разрядным шинам, а обращение к ПЗУ ROMBIOS – только по 16-разрядному тракту. Контроллеры с собственными ROMBIOS могут обращаться к системной плате лишь по 8-разрядному тракту, что существенно снижает общую производительность машины. Кроме того, быстродействие ПЗУ значительно ниже, чем у существующих микросхем динамического ОЗУ. Например, задержка выборки из лучших ИМС ПЗУ составляет 150-200 нсек, тогда как для современных ИМС ОЗУ – всего десятки и даже единицы наносекунд. Для преодоления этого недостатка, применяется копирование содержимого ROMBIOS в 32-разрядную основную память. Этот прием называется созданием теневой памяти (shadowing).

Теневая память создается внутренним устройством управления памятью MMU микропроцессора. MMU копирует код ПЗУ в определенную область ОЗУ и присваивает ей те же адреса, по которым она исходно располагалась в ПЗУ, после чего доступ к самим ИМС ПЗУ отключается. Эта часть ОЗУ теперь рассматривается тоже как ПЗУ и защищается от записи. Применение, для организации теневой памяти, менеджера верхней памяти, стоит потери участка расширенной памяти, объемом, равным объему ПЗУ, для которого эта теневая память создавалась. Иногда области ОЗУ, не используемые под теневую память, переадресуются так, чтобы не получалось разрывов в адресном пространстве памяти. Но переадресация возможна только по целым сегментам, с точностью до 16 Кбайт, так что приходится “выбрасывать” иногда вплоть до 384 Кбайт памяти, чтобы можно было организовать доступ к верхней памяти РС. Это особенно заметно, когда при выполнении процедуры POST для РС, с установленными физически 4 Мбайт памяти (4096 Кбайт), выводится сообщение о наличии всего 3712 Кбайт ОЗУ. Это значит: 4096 Кбайт – 3712 Кбайт = 384Кбайт “потерялись”. Это и есть созданная теневая память, которая физически существует, но исключена из нормальной работы ОЗУ, т. к. в ней хранятся копии системного, видео, жестких дисков и проч. ROMBIOS.

Контрольные вопросы.

1. На каких типах ПЗУ может быть организована подсистема ROM BIOS?

2. Для чего, главным образом, используется ROM BIOS?

3. Зачем ROM BIOS копируется в DRAM?

4. Что делается для защиты копии ROM BIOS в DRAM?

5. Как защищается от ошибок сама ROM BIOS?

6. В чем достоинства и недостатки flash-ROM BIOS?

7. Как ускоряется работа с ПЗУ ROMBIOS в РС?

1.4.5.4) Подсистема CMOS-памяти и часов реального времени RTC

В РС ХТ аппаратная конфигурация РС (объем памяти, количество и типы дисководов, тип видеоподсистемы и т. п.) задавались DIP-переключателями, состояние которых опрашивалось системой BIOS перед выполнением POST-программы. При изменении аппаратной конфигурации (реконфигурировании АПС) требовалось изменять состояние этих переключателей на системной плате вручную, что не просто, т. к. их назначение и расположение на системной плате специфично для каждого ее типа. В РС/АТ, для хранения подобной информации, состав которой, кстати, заметно расширился, ввели специальную микросхему памяти небольшого объема, питание которой при выключенном компьютере осуществляется от специальной батарейки или аккумулятора. В ту же микросхему поместили и часы-календарь (чтобы часы не останавливались, когда компьютер выключен). А чтобы снизить потребление мощности от батарейки, выбрали структуру КМОП (CMOS – ComplimentaryMetal-Oxide-Semiconductor – комплиментарный полупроводник, выполненный по металло-оксидной технологии на полевых транзисторах). Эта память и часы – CMOSMemoryandRealTimeClock (RTC) стали стандартным элементом архитектуры РС/АТ. Содержимое этой памяти, время и дату модифицировали сначала с помощью внешней загружаемой утилиты SetUp, а позже эту утилиту встроили в BIOS. Эта микросхема CMOSRTC имеет встроенную систему контроля питания, отслеживающую разряд батареи ниже допустимого уровня. При разряженной батарее BIOS при загрузке ОС выводит на монитор сообщение типа:

CMOS battery state low

CMOS display type mismatch

RUN SETUP UTILITY

Press <F1> to RESUME

(низкое напряжение батареи питания CMОS-памяти. Содержимое CMOS-памяти неправильно. Запустите утилиту SETUP. Нажмите F1 для ее вызова).

Отсутствие ошибок в CMOS-памяти, проверяет BIOS при загрузке ОС, с помощью контрольной суммы, формирующейся при модификации содержимого CMOS-памяти и хранящейся в ней же.

Доступ к ячейкам CMOSRTC осуществляется CPU через порты ввода-вывода 70h (адрес ячейки) и 71h (данные).

Назначение ячеек SMOSRTC приведено в таблице 1.5.

Таблица 1.5. Стандартное назначение ячеек CMOSRTC.

Адрес Назначение
00 -09h Ячейки RTC в BCD-формате:00 – секунды01 – секунды будильника02 – минуты03 – минуты будильника04 – часы05 – часы будильника06 – день недели07 – день месяца08 – месяц09 – год (2 младшие цифры)
0Ah RTCStatusRegister А (регистр состояния)Бит 7 – обновление времени (0- готов к чтению)Биты 6:4 – делитель частоты )для 32,768 КГц = 010Биты 3:0 = 0110 – выходная частота меандра 1024 Гц
0Bh RTC Status Register B (регистрсостояния)бит 7 – остановка часов (0= нормальный ход)бит 6 – разрешение прерываний (0= запрещено)бит 5 – разрешение прерываний от будильника (0= запрещено)бит 4 - разрешение прерываний по окончании смены времени (0=запрещено)бит 3 – разрешение выходного меандра (0=запрещено)бит2 – формат BIN/BCD#бит 1 – 24/12# -часовой режимбит 0 – зимнее/летнее время (0= переключение запрещено)
0Ch RTC Status Register C – флагипрерываний:бит 7 – IRQF – общий запрос прерыванийбит 6 – PF – периодические прерываниябит 5 – AF – прерывание от будильникабит 4 – UF – прерывание по смене временибиты 3 – 0 – зарезервированы
0Dh RTCStatusRegisterDБит 7 – питание (1 – норма, 0 – разряд)Биты 6:0 - зарезервированы
0Eh POST Diagnostic Status Byte^Бит 7 – power Lost (терялосьпитание CMOS)Бит 6 – Checksum BadБит 5 – Bad configБит 4 – RAMSizeError – определенный тестом размер ОЗУ не соответствует записи в CMOSБит 3 – HDDErrorБит 2 – TimeValid- формальная ошибка часов-календаря (напр. 30 февраля, 25 часов)Биты 1:0 – зарезервированы
0F ShutdownCodeиспользуется POST для определения предыстории останова:00 – аппаратный или программный сброс01 – размер памяти определен02 – тест памяти прошел03 – ошибка в тесте памяти04 – POST завершен, идет загрузка системы05 – JMPFAR [0%0467h] с инициализацией контроллера прерываний06 – тест защищенного режима прошел07 – ошибка в тесте защищенного режима08 – ошибка определения размера памяти09 – перемещен блок ExtendedMemory (INT 15h)0A – JMPFAR [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 – привод 10 = нет, 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 Контрольная сумма CMOSc 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вободные ячейки CMOSRTC 34-3Fh иногда используют для привязки программного обеспечения к конкретному компьютеру, которая выполняется в процессе инсталляции ПО. В этом случае, если не сохранять образ CMOS-памяти на диске, то, при разрушении информации в CMOS, право на использование данного ПО в данном компьютере потеряется.